vulkan_structs.hpp 4.1 MB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196219721982199220022012202220322042205220622072208220922102211221222132214221522162217221822192220222122222223222422252226222722282229223022312232223322342235223622372238223922402241224222432244224522462247224822492250225122522253225422552256225722582259226022612262226322642265226622672268226922702271227222732274227522762277227822792280228122822283228422852286228722882289229022912292229322942295229622972298229923002301230223032304230523062307230823092310231123122313231423152316231723182319232023212322232323242325232623272328232923302331233223332334233523362337233823392340234123422343234423452346234723482349235023512352235323542355235623572358235923602361236223632364236523662367236823692370237123722373237423752376237723782379238023812382238323842385238623872388238923902391239223932394239523962397239823992400240124022403240424052406240724082409241024112412241324142415241624172418241924202421242224232424242524262427242824292430243124322433243424352436243724382439244024412442244324442445244624472448244924502451245224532454245524562457245824592460246124622463246424652466246724682469247024712472247324742475247624772478247924802481248224832484248524862487248824892490249124922493249424952496249724982499250025012502250325042505250625072508250925102511251225132514251525162517251825192520252125222523252425252526252725282529253025312532253325342535253625372538253925402541254225432544254525462547254825492550255125522553255425552556255725582559256025612562256325642565256625672568256925702571257225732574257525762577257825792580258125822583258425852586258725882589259025912592259325942595259625972598259926002601260226032604260526062607260826092610261126122613261426152616261726182619262026212622262326242625262626272628262926302631263226332634263526362637263826392640264126422643264426452646264726482649265026512652265326542655265626572658265926602661266226632664266526662667266826692670267126722673267426752676267726782679268026812682268326842685268626872688268926902691269226932694269526962697269826992700270127022703270427052706270727082709271027112712271327142715271627172718271927202721272227232724272527262727272827292730273127322733273427352736273727382739274027412742274327442745274627472748274927502751275227532754275527562757275827592760276127622763276427652766276727682769277027712772277327742775277627772778277927802781278227832784278527862787278827892790279127922793279427952796279727982799280028012802280328042805280628072808280928102811281228132814281528162817281828192820282128222823282428252826282728282829283028312832283328342835283628372838283928402841284228432844284528462847284828492850285128522853285428552856285728582859286028612862286328642865286628672868286928702871287228732874287528762877287828792880288128822883288428852886288728882889289028912892289328942895289628972898289929002901290229032904290529062907290829092910291129122913291429152916291729182919292029212922292329242925292629272928292929302931293229332934293529362937293829392940294129422943294429452946294729482949295029512952295329542955295629572958295929602961296229632964296529662967296829692970297129722973297429752976297729782979298029812982298329842985298629872988298929902991299229932994299529962997299829993000300130023003300430053006300730083009301030113012301330143015301630173018301930203021302230233024302530263027302830293030303130323033303430353036303730383039304030413042304330443045304630473048304930503051305230533054305530563057305830593060306130623063306430653066306730683069307030713072307330743075307630773078307930803081308230833084308530863087308830893090309130923093309430953096309730983099310031013102310331043105310631073108310931103111311231133114311531163117311831193120312131223123312431253126312731283129313031313132313331343135313631373138313931403141314231433144314531463147314831493150315131523153315431553156315731583159316031613162316331643165316631673168316931703171317231733174317531763177317831793180318131823183318431853186318731883189319031913192319331943195319631973198319932003201320232033204320532063207320832093210321132123213321432153216321732183219322032213222322332243225322632273228322932303231323232333234323532363237323832393240324132423243324432453246324732483249325032513252325332543255325632573258325932603261326232633264326532663267326832693270327132723273327432753276327732783279328032813282328332843285328632873288328932903291329232933294329532963297329832993300330133023303330433053306330733083309331033113312331333143315331633173318331933203321332233233324332533263327332833293330333133323333333433353336333733383339334033413342334333443345334633473348334933503351335233533354335533563357335833593360336133623363336433653366336733683369337033713372337333743375337633773378337933803381338233833384338533863387338833893390339133923393339433953396339733983399340034013402340334043405340634073408340934103411341234133414341534163417341834193420342134223423342434253426342734283429343034313432343334343435343634373438343934403441344234433444344534463447344834493450345134523453345434553456345734583459346034613462346334643465346634673468346934703471347234733474347534763477347834793480348134823483348434853486348734883489349034913492349334943495349634973498349935003501350235033504350535063507350835093510351135123513351435153516351735183519352035213522352335243525352635273528352935303531353235333534353535363537353835393540354135423543354435453546354735483549355035513552355335543555355635573558355935603561356235633564356535663567356835693570357135723573357435753576357735783579358035813582358335843585358635873588358935903591359235933594359535963597359835993600360136023603360436053606360736083609361036113612361336143615361636173618361936203621362236233624362536263627362836293630363136323633363436353636363736383639364036413642364336443645364636473648364936503651365236533654365536563657365836593660366136623663366436653666366736683669367036713672367336743675367636773678367936803681368236833684368536863687368836893690369136923693369436953696369736983699370037013702370337043705370637073708370937103711371237133714371537163717371837193720372137223723372437253726372737283729373037313732373337343735373637373738373937403741374237433744374537463747374837493750375137523753375437553756375737583759376037613762376337643765376637673768376937703771377237733774377537763777377837793780378137823783378437853786378737883789379037913792379337943795379637973798379938003801380238033804380538063807380838093810381138123813381438153816381738183819382038213822382338243825382638273828382938303831383238333834383538363837383838393840384138423843384438453846384738483849385038513852385338543855385638573858385938603861386238633864386538663867386838693870387138723873387438753876387738783879388038813882388338843885388638873888388938903891389238933894389538963897389838993900390139023903390439053906390739083909391039113912391339143915391639173918391939203921392239233924392539263927392839293930393139323933393439353936393739383939394039413942394339443945394639473948394939503951395239533954395539563957395839593960396139623963396439653966396739683969397039713972397339743975397639773978397939803981398239833984398539863987398839893990399139923993399439953996399739983999400040014002400340044005400640074008400940104011401240134014401540164017401840194020402140224023402440254026402740284029403040314032403340344035403640374038403940404041404240434044404540464047404840494050405140524053405440554056405740584059406040614062406340644065406640674068406940704071407240734074407540764077407840794080408140824083408440854086408740884089409040914092409340944095409640974098409941004101410241034104410541064107410841094110411141124113411441154116411741184119412041214122412341244125412641274128412941304131413241334134413541364137413841394140414141424143414441454146414741484149415041514152415341544155415641574158415941604161416241634164416541664167416841694170417141724173417441754176417741784179418041814182418341844185418641874188418941904191419241934194419541964197419841994200420142024203420442054206420742084209421042114212421342144215421642174218421942204221422242234224422542264227422842294230423142324233423442354236423742384239424042414242424342444245424642474248424942504251425242534254425542564257425842594260426142624263426442654266426742684269427042714272427342744275427642774278427942804281428242834284428542864287428842894290429142924293429442954296429742984299430043014302430343044305430643074308430943104311431243134314431543164317431843194320432143224323432443254326432743284329433043314332433343344335433643374338433943404341434243434344434543464347434843494350435143524353435443554356435743584359436043614362436343644365436643674368436943704371437243734374437543764377437843794380438143824383438443854386438743884389439043914392439343944395439643974398439944004401440244034404440544064407440844094410441144124413441444154416441744184419442044214422442344244425442644274428442944304431443244334434443544364437443844394440444144424443444444454446444744484449445044514452445344544455445644574458445944604461446244634464446544664467446844694470447144724473447444754476447744784479448044814482448344844485448644874488448944904491449244934494449544964497449844994500450145024503450445054506450745084509451045114512451345144515451645174518451945204521452245234524452545264527452845294530453145324533453445354536453745384539454045414542454345444545454645474548454945504551455245534554455545564557455845594560456145624563456445654566456745684569457045714572457345744575457645774578457945804581458245834584458545864587458845894590459145924593459445954596459745984599460046014602460346044605460646074608460946104611461246134614461546164617461846194620462146224623462446254626462746284629463046314632463346344635463646374638463946404641464246434644464546464647464846494650465146524653465446554656465746584659466046614662466346644665466646674668466946704671467246734674467546764677467846794680468146824683468446854686468746884689469046914692469346944695469646974698469947004701470247034704470547064707470847094710471147124713471447154716471747184719472047214722472347244725472647274728472947304731473247334734473547364737473847394740474147424743474447454746474747484749475047514752475347544755475647574758475947604761476247634764476547664767476847694770477147724773477447754776477747784779478047814782478347844785478647874788478947904791479247934794479547964797479847994800480148024803480448054806480748084809481048114812481348144815481648174818481948204821482248234824482548264827482848294830483148324833483448354836483748384839484048414842484348444845484648474848484948504851485248534854485548564857485848594860486148624863486448654866486748684869487048714872487348744875487648774878487948804881488248834884488548864887488848894890489148924893489448954896489748984899490049014902490349044905490649074908490949104911491249134914491549164917491849194920492149224923492449254926492749284929493049314932493349344935493649374938493949404941494249434944494549464947494849494950495149524953495449554956495749584959496049614962496349644965496649674968496949704971497249734974497549764977497849794980498149824983498449854986498749884989499049914992499349944995499649974998499950005001500250035004500550065007500850095010501150125013501450155016501750185019502050215022502350245025502650275028502950305031503250335034503550365037503850395040504150425043504450455046504750485049505050515052505350545055505650575058505950605061506250635064506550665067506850695070507150725073507450755076507750785079508050815082508350845085508650875088508950905091509250935094509550965097509850995100510151025103510451055106510751085109511051115112511351145115511651175118511951205121512251235124512551265127512851295130513151325133513451355136513751385139514051415142514351445145514651475148514951505151515251535154515551565157515851595160516151625163516451655166516751685169517051715172517351745175517651775178517951805181518251835184518551865187518851895190519151925193519451955196519751985199520052015202520352045205520652075208520952105211521252135214521552165217521852195220522152225223522452255226522752285229523052315232523352345235523652375238523952405241524252435244524552465247524852495250525152525253525452555256525752585259526052615262526352645265526652675268526952705271527252735274527552765277527852795280528152825283528452855286528752885289529052915292529352945295529652975298529953005301530253035304530553065307530853095310531153125313531453155316531753185319532053215322532353245325532653275328532953305331533253335334533553365337533853395340534153425343534453455346534753485349535053515352535353545355535653575358535953605361536253635364536553665367536853695370537153725373537453755376537753785379538053815382538353845385538653875388538953905391539253935394539553965397539853995400540154025403540454055406540754085409541054115412541354145415541654175418541954205421542254235424542554265427542854295430543154325433543454355436543754385439544054415442544354445445544654475448544954505451545254535454545554565457545854595460546154625463546454655466546754685469547054715472547354745475547654775478547954805481548254835484548554865487548854895490549154925493549454955496549754985499550055015502550355045505550655075508550955105511551255135514551555165517551855195520552155225523552455255526552755285529553055315532553355345535553655375538553955405541554255435544554555465547554855495550555155525553555455555556555755585559556055615562556355645565556655675568556955705571557255735574557555765577557855795580558155825583558455855586558755885589559055915592559355945595559655975598559956005601560256035604560556065607560856095610561156125613561456155616561756185619562056215622562356245625562656275628562956305631563256335634563556365637563856395640564156425643564456455646564756485649565056515652565356545655565656575658565956605661566256635664566556665667566856695670567156725673567456755676567756785679568056815682568356845685568656875688568956905691569256935694569556965697569856995700570157025703570457055706570757085709571057115712571357145715571657175718571957205721572257235724572557265727572857295730573157325733573457355736573757385739574057415742574357445745574657475748574957505751575257535754575557565757575857595760576157625763576457655766576757685769577057715772577357745775577657775778577957805781578257835784578557865787578857895790579157925793579457955796579757985799580058015802580358045805580658075808580958105811581258135814581558165817581858195820582158225823582458255826582758285829583058315832583358345835583658375838583958405841584258435844584558465847584858495850585158525853585458555856585758585859586058615862586358645865586658675868586958705871587258735874587558765877587858795880588158825883588458855886588758885889589058915892589358945895589658975898589959005901590259035904590559065907590859095910591159125913591459155916591759185919592059215922592359245925592659275928592959305931593259335934593559365937593859395940594159425943594459455946594759485949595059515952595359545955595659575958595959605961596259635964596559665967596859695970597159725973597459755976597759785979598059815982598359845985598659875988598959905991599259935994599559965997599859996000600160026003600460056006600760086009601060116012601360146015601660176018601960206021602260236024602560266027602860296030603160326033603460356036603760386039604060416042604360446045604660476048604960506051605260536054605560566057605860596060606160626063606460656066606760686069607060716072607360746075607660776078607960806081608260836084608560866087608860896090609160926093609460956096609760986099610061016102610361046105610661076108610961106111611261136114611561166117611861196120612161226123612461256126612761286129613061316132613361346135613661376138613961406141614261436144614561466147614861496150615161526153615461556156615761586159616061616162616361646165616661676168616961706171617261736174617561766177617861796180618161826183618461856186618761886189619061916192619361946195619661976198619962006201620262036204620562066207620862096210621162126213621462156216621762186219622062216222622362246225622662276228622962306231623262336234623562366237623862396240624162426243624462456246624762486249625062516252625362546255625662576258625962606261626262636264626562666267626862696270627162726273627462756276627762786279628062816282628362846285628662876288628962906291629262936294629562966297629862996300630163026303630463056306630763086309631063116312631363146315631663176318631963206321632263236324632563266327632863296330633163326333633463356336633763386339634063416342634363446345634663476348634963506351635263536354635563566357635863596360636163626363636463656366636763686369637063716372637363746375637663776378637963806381638263836384638563866387638863896390639163926393639463956396639763986399640064016402640364046405640664076408640964106411641264136414641564166417641864196420642164226423642464256426642764286429643064316432643364346435643664376438643964406441644264436444644564466447644864496450645164526453645464556456645764586459646064616462646364646465646664676468646964706471647264736474647564766477647864796480648164826483648464856486648764886489649064916492649364946495649664976498649965006501650265036504650565066507650865096510651165126513651465156516651765186519652065216522652365246525652665276528652965306531653265336534653565366537653865396540654165426543654465456546654765486549655065516552655365546555655665576558655965606561656265636564656565666567656865696570657165726573657465756576657765786579658065816582658365846585658665876588658965906591659265936594659565966597659865996600660166026603660466056606660766086609661066116612661366146615661666176618661966206621662266236624662566266627662866296630663166326633663466356636663766386639664066416642664366446645664666476648664966506651665266536654665566566657665866596660666166626663666466656666666766686669667066716672667366746675667666776678667966806681668266836684668566866687668866896690669166926693669466956696669766986699670067016702670367046705670667076708670967106711671267136714671567166717671867196720672167226723672467256726672767286729673067316732673367346735673667376738673967406741674267436744674567466747674867496750675167526753675467556756675767586759676067616762676367646765676667676768676967706771677267736774677567766777677867796780678167826783678467856786678767886789679067916792679367946795679667976798679968006801680268036804680568066807680868096810681168126813681468156816681768186819682068216822682368246825682668276828682968306831683268336834683568366837683868396840684168426843684468456846684768486849685068516852685368546855685668576858685968606861686268636864686568666867686868696870687168726873687468756876687768786879688068816882688368846885688668876888688968906891689268936894689568966897689868996900690169026903690469056906690769086909691069116912691369146915691669176918691969206921692269236924692569266927692869296930693169326933693469356936693769386939694069416942694369446945694669476948694969506951695269536954695569566957695869596960696169626963696469656966696769686969697069716972697369746975697669776978697969806981698269836984698569866987698869896990699169926993699469956996699769986999700070017002700370047005700670077008700970107011701270137014701570167017701870197020702170227023702470257026702770287029703070317032703370347035703670377038703970407041704270437044704570467047704870497050705170527053705470557056705770587059706070617062706370647065706670677068706970707071707270737074707570767077707870797080708170827083708470857086708770887089709070917092709370947095709670977098709971007101710271037104710571067107710871097110711171127113711471157116711771187119712071217122712371247125712671277128712971307131713271337134713571367137713871397140714171427143714471457146714771487149715071517152715371547155715671577158715971607161716271637164716571667167716871697170717171727173717471757176717771787179718071817182718371847185718671877188718971907191719271937194719571967197719871997200720172027203720472057206720772087209721072117212721372147215721672177218721972207221722272237224722572267227722872297230723172327233723472357236723772387239724072417242724372447245724672477248724972507251725272537254725572567257725872597260726172627263726472657266726772687269727072717272727372747275727672777278727972807281728272837284728572867287728872897290729172927293729472957296729772987299730073017302730373047305730673077308730973107311731273137314731573167317731873197320732173227323732473257326732773287329733073317332733373347335733673377338733973407341734273437344734573467347734873497350735173527353735473557356735773587359736073617362736373647365736673677368736973707371737273737374737573767377737873797380738173827383738473857386738773887389739073917392739373947395739673977398739974007401740274037404740574067407740874097410741174127413741474157416741774187419742074217422742374247425742674277428742974307431743274337434743574367437743874397440744174427443744474457446744774487449745074517452745374547455745674577458745974607461746274637464746574667467746874697470747174727473747474757476747774787479748074817482748374847485748674877488748974907491749274937494749574967497749874997500750175027503750475057506750775087509751075117512751375147515751675177518751975207521752275237524752575267527752875297530753175327533753475357536753775387539754075417542754375447545754675477548754975507551755275537554755575567557755875597560756175627563756475657566756775687569757075717572757375747575757675777578757975807581758275837584758575867587758875897590759175927593759475957596759775987599760076017602760376047605760676077608760976107611761276137614761576167617761876197620762176227623762476257626762776287629763076317632763376347635763676377638763976407641764276437644764576467647764876497650765176527653765476557656765776587659766076617662766376647665766676677668766976707671767276737674767576767677767876797680768176827683768476857686768776887689769076917692769376947695769676977698769977007701770277037704770577067707770877097710771177127713771477157716771777187719772077217722772377247725772677277728772977307731773277337734773577367737773877397740774177427743774477457746774777487749775077517752775377547755775677577758775977607761776277637764776577667767776877697770777177727773777477757776777777787779778077817782778377847785778677877788778977907791779277937794779577967797779877997800780178027803780478057806780778087809781078117812781378147815781678177818781978207821782278237824782578267827782878297830783178327833783478357836783778387839784078417842784378447845784678477848784978507851785278537854785578567857785878597860786178627863786478657866786778687869787078717872787378747875787678777878787978807881788278837884788578867887788878897890789178927893789478957896789778987899790079017902790379047905790679077908790979107911791279137914791579167917791879197920792179227923792479257926792779287929793079317932793379347935793679377938793979407941794279437944794579467947794879497950795179527953795479557956795779587959796079617962796379647965796679677968796979707971797279737974797579767977797879797980798179827983798479857986798779887989799079917992799379947995799679977998799980008001800280038004800580068007800880098010801180128013801480158016801780188019802080218022802380248025802680278028802980308031803280338034803580368037803880398040804180428043804480458046804780488049805080518052805380548055805680578058805980608061806280638064806580668067806880698070807180728073807480758076807780788079808080818082808380848085808680878088808980908091809280938094809580968097809880998100810181028103810481058106810781088109811081118112811381148115811681178118811981208121812281238124812581268127812881298130813181328133813481358136813781388139814081418142814381448145814681478148814981508151815281538154815581568157815881598160816181628163816481658166816781688169817081718172817381748175817681778178817981808181818281838184818581868187818881898190819181928193819481958196819781988199820082018202820382048205820682078208820982108211821282138214821582168217821882198220822182228223822482258226822782288229823082318232823382348235823682378238823982408241824282438244824582468247824882498250825182528253825482558256825782588259826082618262826382648265826682678268826982708271827282738274827582768277827882798280828182828283828482858286828782888289829082918292829382948295829682978298829983008301830283038304830583068307830883098310831183128313831483158316831783188319832083218322832383248325832683278328832983308331833283338334833583368337833883398340834183428343834483458346834783488349835083518352835383548355835683578358835983608361836283638364836583668367836883698370837183728373837483758376837783788379838083818382838383848385838683878388838983908391839283938394839583968397839883998400840184028403840484058406840784088409841084118412841384148415841684178418841984208421842284238424842584268427842884298430843184328433843484358436843784388439844084418442844384448445844684478448844984508451845284538454845584568457845884598460846184628463846484658466846784688469847084718472847384748475847684778478847984808481848284838484848584868487848884898490849184928493849484958496849784988499850085018502850385048505850685078508850985108511851285138514851585168517851885198520852185228523852485258526852785288529853085318532853385348535853685378538853985408541854285438544854585468547854885498550855185528553855485558556855785588559856085618562856385648565856685678568856985708571857285738574857585768577857885798580858185828583858485858586858785888589859085918592859385948595859685978598859986008601860286038604860586068607860886098610861186128613861486158616861786188619862086218622862386248625862686278628862986308631863286338634863586368637863886398640864186428643864486458646864786488649865086518652865386548655865686578658865986608661866286638664866586668667866886698670867186728673867486758676867786788679868086818682868386848685868686878688868986908691869286938694869586968697869886998700870187028703870487058706870787088709871087118712871387148715871687178718871987208721872287238724872587268727872887298730873187328733873487358736873787388739874087418742874387448745874687478748874987508751875287538754875587568757875887598760876187628763876487658766876787688769877087718772877387748775877687778778877987808781878287838784878587868787878887898790879187928793879487958796879787988799880088018802880388048805880688078808880988108811881288138814881588168817881888198820882188228823882488258826882788288829883088318832883388348835883688378838883988408841884288438844884588468847884888498850885188528853885488558856885788588859886088618862886388648865886688678868886988708871887288738874887588768877887888798880888188828883888488858886888788888889889088918892889388948895889688978898889989008901890289038904890589068907890889098910891189128913891489158916891789188919892089218922892389248925892689278928892989308931893289338934893589368937893889398940894189428943894489458946894789488949895089518952895389548955895689578958895989608961896289638964896589668967896889698970897189728973897489758976897789788979898089818982898389848985898689878988898989908991899289938994899589968997899889999000900190029003900490059006900790089009901090119012901390149015901690179018901990209021902290239024902590269027902890299030903190329033903490359036903790389039904090419042904390449045904690479048904990509051905290539054905590569057905890599060906190629063906490659066906790689069907090719072907390749075907690779078907990809081908290839084908590869087908890899090909190929093909490959096909790989099910091019102910391049105910691079108910991109111911291139114911591169117911891199120912191229123912491259126912791289129913091319132913391349135913691379138913991409141914291439144914591469147914891499150915191529153915491559156915791589159916091619162916391649165916691679168916991709171917291739174917591769177917891799180918191829183918491859186918791889189919091919192919391949195919691979198919992009201920292039204920592069207920892099210921192129213921492159216921792189219922092219222922392249225922692279228922992309231923292339234923592369237923892399240924192429243924492459246924792489249925092519252925392549255925692579258925992609261926292639264926592669267926892699270927192729273927492759276927792789279928092819282928392849285928692879288928992909291929292939294929592969297929892999300930193029303930493059306930793089309931093119312931393149315931693179318931993209321932293239324932593269327932893299330933193329333933493359336933793389339934093419342934393449345934693479348934993509351935293539354935593569357935893599360936193629363936493659366936793689369937093719372937393749375937693779378937993809381938293839384938593869387938893899390939193929393939493959396939793989399940094019402940394049405940694079408940994109411941294139414941594169417941894199420942194229423942494259426942794289429943094319432943394349435943694379438943994409441944294439444944594469447944894499450945194529453945494559456945794589459946094619462946394649465946694679468946994709471947294739474947594769477947894799480948194829483948494859486948794889489949094919492949394949495949694979498949995009501950295039504950595069507950895099510951195129513951495159516951795189519952095219522952395249525952695279528952995309531953295339534953595369537953895399540954195429543954495459546954795489549955095519552955395549555955695579558955995609561956295639564956595669567956895699570957195729573957495759576957795789579958095819582958395849585958695879588958995909591959295939594959595969597959895999600960196029603960496059606960796089609961096119612961396149615961696179618961996209621962296239624962596269627962896299630963196329633963496359636963796389639964096419642964396449645964696479648964996509651965296539654965596569657965896599660966196629663966496659666966796689669967096719672967396749675967696779678967996809681968296839684968596869687968896899690969196929693969496959696969796989699970097019702970397049705970697079708970997109711971297139714971597169717971897199720972197229723972497259726972797289729973097319732973397349735973697379738973997409741974297439744974597469747974897499750975197529753975497559756975797589759976097619762976397649765976697679768976997709771977297739774977597769777977897799780978197829783978497859786978797889789979097919792979397949795979697979798979998009801980298039804980598069807980898099810981198129813981498159816981798189819982098219822982398249825982698279828982998309831983298339834983598369837983898399840984198429843984498459846984798489849985098519852985398549855985698579858985998609861986298639864986598669867986898699870987198729873987498759876987798789879988098819882988398849885988698879888988998909891989298939894989598969897989898999900990199029903990499059906990799089909991099119912991399149915991699179918991999209921992299239924992599269927992899299930993199329933993499359936993799389939994099419942994399449945994699479948994999509951995299539954995599569957995899599960996199629963996499659966996799689969997099719972997399749975997699779978997999809981998299839984998599869987998899899990999199929993999499959996999799989999100001000110002100031000410005100061000710008100091001010011100121001310014100151001610017100181001910020100211002210023100241002510026100271002810029100301003110032100331003410035100361003710038100391004010041100421004310044100451004610047100481004910050100511005210053100541005510056100571005810059100601006110062100631006410065100661006710068100691007010071100721007310074100751007610077100781007910080100811008210083100841008510086100871008810089100901009110092100931009410095100961009710098100991010010101101021010310104101051010610107101081010910110101111011210113101141011510116101171011810119101201012110122101231012410125101261012710128101291013010131101321013310134101351013610137101381013910140101411014210143101441014510146101471014810149101501015110152101531015410155101561015710158101591016010161101621016310164101651016610167101681016910170101711017210173101741017510176101771017810179101801018110182101831018410185101861018710188101891019010191101921019310194101951019610197101981019910200102011020210203102041020510206102071020810209102101021110212102131021410215102161021710218102191022010221102221022310224102251022610227102281022910230102311023210233102341023510236102371023810239102401024110242102431024410245102461024710248102491025010251102521025310254102551025610257102581025910260102611026210263102641026510266102671026810269102701027110272102731027410275102761027710278102791028010281102821028310284102851028610287102881028910290102911029210293102941029510296102971029810299103001030110302103031030410305103061030710308103091031010311103121031310314103151031610317103181031910320103211032210323103241032510326103271032810329103301033110332103331033410335103361033710338103391034010341103421034310344103451034610347103481034910350103511035210353103541035510356103571035810359103601036110362103631036410365103661036710368103691037010371103721037310374103751037610377103781037910380103811038210383103841038510386103871038810389103901039110392103931039410395103961039710398103991040010401104021040310404104051040610407104081040910410104111041210413104141041510416104171041810419104201042110422104231042410425104261042710428104291043010431104321043310434104351043610437104381043910440104411044210443104441044510446104471044810449104501045110452104531045410455104561045710458104591046010461104621046310464104651046610467104681046910470104711047210473104741047510476104771047810479104801048110482104831048410485104861048710488104891049010491104921049310494104951049610497104981049910500105011050210503105041050510506105071050810509105101051110512105131051410515105161051710518105191052010521105221052310524105251052610527105281052910530105311053210533105341053510536105371053810539105401054110542105431054410545105461054710548105491055010551105521055310554105551055610557105581055910560105611056210563105641056510566105671056810569105701057110572105731057410575105761057710578105791058010581105821058310584105851058610587105881058910590105911059210593105941059510596105971059810599106001060110602106031060410605106061060710608106091061010611106121061310614106151061610617106181061910620106211062210623106241062510626106271062810629106301063110632106331063410635106361063710638106391064010641106421064310644106451064610647106481064910650106511065210653106541065510656106571065810659106601066110662106631066410665106661066710668106691067010671106721067310674106751067610677106781067910680106811068210683106841068510686106871068810689106901069110692106931069410695106961069710698106991070010701107021070310704107051070610707107081070910710107111071210713107141071510716107171071810719107201072110722107231072410725107261072710728107291073010731107321073310734107351073610737107381073910740107411074210743107441074510746107471074810749107501075110752107531075410755107561075710758107591076010761107621076310764107651076610767107681076910770107711077210773107741077510776107771077810779107801078110782107831078410785107861078710788107891079010791107921079310794107951079610797107981079910800108011080210803108041080510806108071080810809108101081110812108131081410815108161081710818108191082010821108221082310824108251082610827108281082910830108311083210833108341083510836108371083810839108401084110842108431084410845108461084710848108491085010851108521085310854108551085610857108581085910860108611086210863108641086510866108671086810869108701087110872108731087410875108761087710878108791088010881108821088310884108851088610887108881088910890108911089210893108941089510896108971089810899109001090110902109031090410905109061090710908109091091010911109121091310914109151091610917109181091910920109211092210923109241092510926109271092810929109301093110932109331093410935109361093710938109391094010941109421094310944109451094610947109481094910950109511095210953109541095510956109571095810959109601096110962109631096410965109661096710968109691097010971109721097310974109751097610977109781097910980109811098210983109841098510986109871098810989109901099110992109931099410995109961099710998109991100011001110021100311004110051100611007110081100911010110111101211013110141101511016110171101811019110201102111022110231102411025110261102711028110291103011031110321103311034110351103611037110381103911040110411104211043110441104511046110471104811049110501105111052110531105411055110561105711058110591106011061110621106311064110651106611067110681106911070110711107211073110741107511076110771107811079110801108111082110831108411085110861108711088110891109011091110921109311094110951109611097110981109911100111011110211103111041110511106111071110811109111101111111112111131111411115111161111711118111191112011121111221112311124111251112611127111281112911130111311113211133111341113511136111371113811139111401114111142111431114411145111461114711148111491115011151111521115311154111551115611157111581115911160111611116211163111641116511166111671116811169111701117111172111731117411175111761117711178111791118011181111821118311184111851118611187111881118911190111911119211193111941119511196111971119811199112001120111202112031120411205112061120711208112091121011211112121121311214112151121611217112181121911220112211122211223112241122511226112271122811229112301123111232112331123411235112361123711238112391124011241112421124311244112451124611247112481124911250112511125211253112541125511256112571125811259112601126111262112631126411265112661126711268112691127011271112721127311274112751127611277112781127911280112811128211283112841128511286112871128811289112901129111292112931129411295112961129711298112991130011301113021130311304113051130611307113081130911310113111131211313113141131511316113171131811319113201132111322113231132411325113261132711328113291133011331113321133311334113351133611337113381133911340113411134211343113441134511346113471134811349113501135111352113531135411355113561135711358113591136011361113621136311364113651136611367113681136911370113711137211373113741137511376113771137811379113801138111382113831138411385113861138711388113891139011391113921139311394113951139611397113981139911400114011140211403114041140511406114071140811409114101141111412114131141411415114161141711418114191142011421114221142311424114251142611427114281142911430114311143211433114341143511436114371143811439114401144111442114431144411445114461144711448114491145011451114521145311454114551145611457114581145911460114611146211463114641146511466114671146811469114701147111472114731147411475114761147711478114791148011481114821148311484114851148611487114881148911490114911149211493114941149511496114971149811499115001150111502115031150411505115061150711508115091151011511115121151311514115151151611517115181151911520115211152211523115241152511526115271152811529115301153111532115331153411535115361153711538115391154011541115421154311544115451154611547115481154911550115511155211553115541155511556115571155811559115601156111562115631156411565115661156711568115691157011571115721157311574115751157611577115781157911580115811158211583115841158511586115871158811589115901159111592115931159411595115961159711598115991160011601116021160311604116051160611607116081160911610116111161211613116141161511616116171161811619116201162111622116231162411625116261162711628116291163011631116321163311634116351163611637116381163911640116411164211643116441164511646116471164811649116501165111652116531165411655116561165711658116591166011661116621166311664116651166611667116681166911670116711167211673116741167511676116771167811679116801168111682116831168411685116861168711688116891169011691116921169311694116951169611697116981169911700117011170211703117041170511706117071170811709117101171111712117131171411715117161171711718117191172011721117221172311724117251172611727117281172911730117311173211733117341173511736117371173811739117401174111742117431174411745117461174711748117491175011751117521175311754117551175611757117581175911760117611176211763117641176511766117671176811769117701177111772117731177411775117761177711778117791178011781117821178311784117851178611787117881178911790117911179211793117941179511796117971179811799118001180111802118031180411805118061180711808118091181011811118121181311814118151181611817118181181911820118211182211823118241182511826118271182811829118301183111832118331183411835118361183711838118391184011841118421184311844118451184611847118481184911850118511185211853118541185511856118571185811859118601186111862118631186411865118661186711868118691187011871118721187311874118751187611877118781187911880118811188211883118841188511886118871188811889118901189111892118931189411895118961189711898118991190011901119021190311904119051190611907119081190911910119111191211913119141191511916119171191811919119201192111922119231192411925119261192711928119291193011931119321193311934119351193611937119381193911940119411194211943119441194511946119471194811949119501195111952119531195411955119561195711958119591196011961119621196311964119651196611967119681196911970119711197211973119741197511976119771197811979119801198111982119831198411985119861198711988119891199011991119921199311994119951199611997119981199912000120011200212003120041200512006120071200812009120101201112012120131201412015120161201712018120191202012021120221202312024120251202612027120281202912030120311203212033120341203512036120371203812039120401204112042120431204412045120461204712048120491205012051120521205312054120551205612057120581205912060120611206212063120641206512066120671206812069120701207112072120731207412075120761207712078120791208012081120821208312084120851208612087120881208912090120911209212093120941209512096120971209812099121001210112102121031210412105121061210712108121091211012111121121211312114121151211612117121181211912120121211212212123121241212512126121271212812129121301213112132121331213412135121361213712138121391214012141121421214312144121451214612147121481214912150121511215212153121541215512156121571215812159121601216112162121631216412165121661216712168121691217012171121721217312174121751217612177121781217912180121811218212183121841218512186121871218812189121901219112192121931219412195121961219712198121991220012201122021220312204122051220612207122081220912210122111221212213122141221512216122171221812219122201222112222122231222412225122261222712228122291223012231122321223312234122351223612237122381223912240122411224212243122441224512246122471224812249122501225112252122531225412255122561225712258122591226012261122621226312264122651226612267122681226912270122711227212273122741227512276122771227812279122801228112282122831228412285122861228712288122891229012291122921229312294122951229612297122981229912300123011230212303123041230512306123071230812309123101231112312123131231412315123161231712318123191232012321123221232312324123251232612327123281232912330123311233212333123341233512336123371233812339123401234112342123431234412345123461234712348123491235012351123521235312354123551235612357123581235912360123611236212363123641236512366123671236812369123701237112372123731237412375123761237712378123791238012381123821238312384123851238612387123881238912390123911239212393123941239512396123971239812399124001240112402124031240412405124061240712408124091241012411124121241312414124151241612417124181241912420124211242212423124241242512426124271242812429124301243112432124331243412435124361243712438124391244012441124421244312444124451244612447124481244912450124511245212453124541245512456124571245812459124601246112462124631246412465124661246712468124691247012471124721247312474124751247612477124781247912480124811248212483124841248512486124871248812489124901249112492124931249412495124961249712498124991250012501125021250312504125051250612507125081250912510125111251212513125141251512516125171251812519125201252112522125231252412525125261252712528125291253012531125321253312534125351253612537125381253912540125411254212543125441254512546125471254812549125501255112552125531255412555125561255712558125591256012561125621256312564125651256612567125681256912570125711257212573125741257512576125771257812579125801258112582125831258412585125861258712588125891259012591125921259312594125951259612597125981259912600126011260212603126041260512606126071260812609126101261112612126131261412615126161261712618126191262012621126221262312624126251262612627126281262912630126311263212633126341263512636126371263812639126401264112642126431264412645126461264712648126491265012651126521265312654126551265612657126581265912660126611266212663126641266512666126671266812669126701267112672126731267412675126761267712678126791268012681126821268312684126851268612687126881268912690126911269212693126941269512696126971269812699127001270112702127031270412705127061270712708127091271012711127121271312714127151271612717127181271912720127211272212723127241272512726127271272812729127301273112732127331273412735127361273712738127391274012741127421274312744127451274612747127481274912750127511275212753127541275512756127571275812759127601276112762127631276412765127661276712768127691277012771127721277312774127751277612777127781277912780127811278212783127841278512786127871278812789127901279112792127931279412795127961279712798127991280012801128021280312804128051280612807128081280912810128111281212813128141281512816128171281812819128201282112822128231282412825128261282712828128291283012831128321283312834128351283612837128381283912840128411284212843128441284512846128471284812849128501285112852128531285412855128561285712858128591286012861128621286312864128651286612867128681286912870128711287212873128741287512876128771287812879128801288112882128831288412885128861288712888128891289012891128921289312894128951289612897128981289912900129011290212903129041290512906129071290812909129101291112912129131291412915129161291712918129191292012921129221292312924129251292612927129281292912930129311293212933129341293512936129371293812939129401294112942129431294412945129461294712948129491295012951129521295312954129551295612957129581295912960129611296212963129641296512966129671296812969129701297112972129731297412975129761297712978129791298012981129821298312984129851298612987129881298912990129911299212993129941299512996129971299812999130001300113002130031300413005130061300713008130091301013011130121301313014130151301613017130181301913020130211302213023130241302513026130271302813029130301303113032130331303413035130361303713038130391304013041130421304313044130451304613047130481304913050130511305213053130541305513056130571305813059130601306113062130631306413065130661306713068130691307013071130721307313074130751307613077130781307913080130811308213083130841308513086130871308813089130901309113092130931309413095130961309713098130991310013101131021310313104131051310613107131081310913110131111311213113131141311513116131171311813119131201312113122131231312413125131261312713128131291313013131131321313313134131351313613137131381313913140131411314213143131441314513146131471314813149131501315113152131531315413155131561315713158131591316013161131621316313164131651316613167131681316913170131711317213173131741317513176131771317813179131801318113182131831318413185131861318713188131891319013191131921319313194131951319613197131981319913200132011320213203132041320513206132071320813209132101321113212132131321413215132161321713218132191322013221132221322313224132251322613227132281322913230132311323213233132341323513236132371323813239132401324113242132431324413245132461324713248132491325013251132521325313254132551325613257132581325913260132611326213263132641326513266132671326813269132701327113272132731327413275132761327713278132791328013281132821328313284132851328613287132881328913290132911329213293132941329513296132971329813299133001330113302133031330413305133061330713308133091331013311133121331313314133151331613317133181331913320133211332213323133241332513326133271332813329133301333113332133331333413335133361333713338133391334013341133421334313344133451334613347133481334913350133511335213353133541335513356133571335813359133601336113362133631336413365133661336713368133691337013371133721337313374133751337613377133781337913380133811338213383133841338513386133871338813389133901339113392133931339413395133961339713398133991340013401134021340313404134051340613407134081340913410134111341213413134141341513416134171341813419134201342113422134231342413425134261342713428134291343013431134321343313434134351343613437134381343913440134411344213443134441344513446134471344813449134501345113452134531345413455134561345713458134591346013461134621346313464134651346613467134681346913470134711347213473134741347513476134771347813479134801348113482134831348413485134861348713488134891349013491134921349313494134951349613497134981349913500135011350213503135041350513506135071350813509135101351113512135131351413515135161351713518135191352013521135221352313524135251352613527135281352913530135311353213533135341353513536135371353813539135401354113542135431354413545135461354713548135491355013551135521355313554135551355613557135581355913560135611356213563135641356513566135671356813569135701357113572135731357413575135761357713578135791358013581135821358313584135851358613587135881358913590135911359213593135941359513596135971359813599136001360113602136031360413605136061360713608136091361013611136121361313614136151361613617136181361913620136211362213623136241362513626136271362813629136301363113632136331363413635136361363713638136391364013641136421364313644136451364613647136481364913650136511365213653136541365513656136571365813659136601366113662136631366413665136661366713668136691367013671136721367313674136751367613677136781367913680136811368213683136841368513686136871368813689136901369113692136931369413695136961369713698136991370013701137021370313704137051370613707137081370913710137111371213713137141371513716137171371813719137201372113722137231372413725137261372713728137291373013731137321373313734137351373613737137381373913740137411374213743137441374513746137471374813749137501375113752137531375413755137561375713758137591376013761137621376313764137651376613767137681376913770137711377213773137741377513776137771377813779137801378113782137831378413785137861378713788137891379013791137921379313794137951379613797137981379913800138011380213803138041380513806138071380813809138101381113812138131381413815138161381713818138191382013821138221382313824138251382613827138281382913830138311383213833138341383513836138371383813839138401384113842138431384413845138461384713848138491385013851138521385313854138551385613857138581385913860138611386213863138641386513866138671386813869138701387113872138731387413875138761387713878138791388013881138821388313884138851388613887138881388913890138911389213893138941389513896138971389813899139001390113902139031390413905139061390713908139091391013911139121391313914139151391613917139181391913920139211392213923139241392513926139271392813929139301393113932139331393413935139361393713938139391394013941139421394313944139451394613947139481394913950139511395213953139541395513956139571395813959139601396113962139631396413965139661396713968139691397013971139721397313974139751397613977139781397913980139811398213983139841398513986139871398813989139901399113992139931399413995139961399713998139991400014001140021400314004140051400614007140081400914010140111401214013140141401514016140171401814019140201402114022140231402414025140261402714028140291403014031140321403314034140351403614037140381403914040140411404214043140441404514046140471404814049140501405114052140531405414055140561405714058140591406014061140621406314064140651406614067140681406914070140711407214073140741407514076140771407814079140801408114082140831408414085140861408714088140891409014091140921409314094140951409614097140981409914100141011410214103141041410514106141071410814109141101411114112141131411414115141161411714118141191412014121141221412314124141251412614127141281412914130141311413214133141341413514136141371413814139141401414114142141431414414145141461414714148141491415014151141521415314154141551415614157141581415914160141611416214163141641416514166141671416814169141701417114172141731417414175141761417714178141791418014181141821418314184141851418614187141881418914190141911419214193141941419514196141971419814199142001420114202142031420414205142061420714208142091421014211142121421314214142151421614217142181421914220142211422214223142241422514226142271422814229142301423114232142331423414235142361423714238142391424014241142421424314244142451424614247142481424914250142511425214253142541425514256142571425814259142601426114262142631426414265142661426714268142691427014271142721427314274142751427614277142781427914280142811428214283142841428514286142871428814289142901429114292142931429414295142961429714298142991430014301143021430314304143051430614307143081430914310143111431214313143141431514316143171431814319143201432114322143231432414325143261432714328143291433014331143321433314334143351433614337143381433914340143411434214343143441434514346143471434814349143501435114352143531435414355143561435714358143591436014361143621436314364143651436614367143681436914370143711437214373143741437514376143771437814379143801438114382143831438414385143861438714388143891439014391143921439314394143951439614397143981439914400144011440214403144041440514406144071440814409144101441114412144131441414415144161441714418144191442014421144221442314424144251442614427144281442914430144311443214433144341443514436144371443814439144401444114442144431444414445144461444714448144491445014451144521445314454144551445614457144581445914460144611446214463144641446514466144671446814469144701447114472144731447414475144761447714478144791448014481144821448314484144851448614487144881448914490144911449214493144941449514496144971449814499145001450114502145031450414505145061450714508145091451014511145121451314514145151451614517145181451914520145211452214523145241452514526145271452814529145301453114532145331453414535145361453714538145391454014541145421454314544145451454614547145481454914550145511455214553145541455514556145571455814559145601456114562145631456414565145661456714568145691457014571145721457314574145751457614577145781457914580145811458214583145841458514586145871458814589145901459114592145931459414595145961459714598145991460014601146021460314604146051460614607146081460914610146111461214613146141461514616146171461814619146201462114622146231462414625146261462714628146291463014631146321463314634146351463614637146381463914640146411464214643146441464514646146471464814649146501465114652146531465414655146561465714658146591466014661146621466314664146651466614667146681466914670146711467214673146741467514676146771467814679146801468114682146831468414685146861468714688146891469014691146921469314694146951469614697146981469914700147011470214703147041470514706147071470814709147101471114712147131471414715147161471714718147191472014721147221472314724147251472614727147281472914730147311473214733147341473514736147371473814739147401474114742147431474414745147461474714748147491475014751147521475314754147551475614757147581475914760147611476214763147641476514766147671476814769147701477114772147731477414775147761477714778147791478014781147821478314784147851478614787147881478914790147911479214793147941479514796147971479814799148001480114802148031480414805148061480714808148091481014811148121481314814148151481614817148181481914820148211482214823148241482514826148271482814829148301483114832148331483414835148361483714838148391484014841148421484314844148451484614847148481484914850148511485214853148541485514856148571485814859148601486114862148631486414865148661486714868148691487014871148721487314874148751487614877148781487914880148811488214883148841488514886148871488814889148901489114892148931489414895148961489714898148991490014901149021490314904149051490614907149081490914910149111491214913149141491514916149171491814919149201492114922149231492414925149261492714928149291493014931149321493314934149351493614937149381493914940149411494214943149441494514946149471494814949149501495114952149531495414955149561495714958149591496014961149621496314964149651496614967149681496914970149711497214973149741497514976149771497814979149801498114982149831498414985149861498714988149891499014991149921499314994149951499614997149981499915000150011500215003150041500515006150071500815009150101501115012150131501415015150161501715018150191502015021150221502315024150251502615027150281502915030150311503215033150341503515036150371503815039150401504115042150431504415045150461504715048150491505015051150521505315054150551505615057150581505915060150611506215063150641506515066150671506815069150701507115072150731507415075150761507715078150791508015081150821508315084150851508615087150881508915090150911509215093150941509515096150971509815099151001510115102151031510415105151061510715108151091511015111151121511315114151151511615117151181511915120151211512215123151241512515126151271512815129151301513115132151331513415135151361513715138151391514015141151421514315144151451514615147151481514915150151511515215153151541515515156151571515815159151601516115162151631516415165151661516715168151691517015171151721517315174151751517615177151781517915180151811518215183151841518515186151871518815189151901519115192151931519415195151961519715198151991520015201152021520315204152051520615207152081520915210152111521215213152141521515216152171521815219152201522115222152231522415225152261522715228152291523015231152321523315234152351523615237152381523915240152411524215243152441524515246152471524815249152501525115252152531525415255152561525715258152591526015261152621526315264152651526615267152681526915270152711527215273152741527515276152771527815279152801528115282152831528415285152861528715288152891529015291152921529315294152951529615297152981529915300153011530215303153041530515306153071530815309153101531115312153131531415315153161531715318153191532015321153221532315324153251532615327153281532915330153311533215333153341533515336153371533815339153401534115342153431534415345153461534715348153491535015351153521535315354153551535615357153581535915360153611536215363153641536515366153671536815369153701537115372153731537415375153761537715378153791538015381153821538315384153851538615387153881538915390153911539215393153941539515396153971539815399154001540115402154031540415405154061540715408154091541015411154121541315414154151541615417154181541915420154211542215423154241542515426154271542815429154301543115432154331543415435154361543715438154391544015441154421544315444154451544615447154481544915450154511545215453154541545515456154571545815459154601546115462154631546415465154661546715468154691547015471154721547315474154751547615477154781547915480154811548215483154841548515486154871548815489154901549115492154931549415495154961549715498154991550015501155021550315504155051550615507155081550915510155111551215513155141551515516155171551815519155201552115522155231552415525155261552715528155291553015531155321553315534155351553615537155381553915540155411554215543155441554515546155471554815549155501555115552155531555415555155561555715558155591556015561155621556315564155651556615567155681556915570155711557215573155741557515576155771557815579155801558115582155831558415585155861558715588155891559015591155921559315594155951559615597155981559915600156011560215603156041560515606156071560815609156101561115612156131561415615156161561715618156191562015621156221562315624156251562615627156281562915630156311563215633156341563515636156371563815639156401564115642156431564415645156461564715648156491565015651156521565315654156551565615657156581565915660156611566215663156641566515666156671566815669156701567115672156731567415675156761567715678156791568015681156821568315684156851568615687156881568915690156911569215693156941569515696156971569815699157001570115702157031570415705157061570715708157091571015711157121571315714157151571615717157181571915720157211572215723157241572515726157271572815729157301573115732157331573415735157361573715738157391574015741157421574315744157451574615747157481574915750157511575215753157541575515756157571575815759157601576115762157631576415765157661576715768157691577015771157721577315774157751577615777157781577915780157811578215783157841578515786157871578815789157901579115792157931579415795157961579715798157991580015801158021580315804158051580615807158081580915810158111581215813158141581515816158171581815819158201582115822158231582415825158261582715828158291583015831158321583315834158351583615837158381583915840158411584215843158441584515846158471584815849158501585115852158531585415855158561585715858158591586015861158621586315864158651586615867158681586915870158711587215873158741587515876158771587815879158801588115882158831588415885158861588715888158891589015891158921589315894158951589615897158981589915900159011590215903159041590515906159071590815909159101591115912159131591415915159161591715918159191592015921159221592315924159251592615927159281592915930159311593215933159341593515936159371593815939159401594115942159431594415945159461594715948159491595015951159521595315954159551595615957159581595915960159611596215963159641596515966159671596815969159701597115972159731597415975159761597715978159791598015981159821598315984159851598615987159881598915990159911599215993159941599515996159971599815999160001600116002160031600416005160061600716008160091601016011160121601316014160151601616017160181601916020160211602216023160241602516026160271602816029160301603116032160331603416035160361603716038160391604016041160421604316044160451604616047160481604916050160511605216053160541605516056160571605816059160601606116062160631606416065160661606716068160691607016071160721607316074160751607616077160781607916080160811608216083160841608516086160871608816089160901609116092160931609416095160961609716098160991610016101161021610316104161051610616107161081610916110161111611216113161141611516116161171611816119161201612116122161231612416125161261612716128161291613016131161321613316134161351613616137161381613916140161411614216143161441614516146161471614816149161501615116152161531615416155161561615716158161591616016161161621616316164161651616616167161681616916170161711617216173161741617516176161771617816179161801618116182161831618416185161861618716188161891619016191161921619316194161951619616197161981619916200162011620216203162041620516206162071620816209162101621116212162131621416215162161621716218162191622016221162221622316224162251622616227162281622916230162311623216233162341623516236162371623816239162401624116242162431624416245162461624716248162491625016251162521625316254162551625616257162581625916260162611626216263162641626516266162671626816269162701627116272162731627416275162761627716278162791628016281162821628316284162851628616287162881628916290162911629216293162941629516296162971629816299163001630116302163031630416305163061630716308163091631016311163121631316314163151631616317163181631916320163211632216323163241632516326163271632816329163301633116332163331633416335163361633716338163391634016341163421634316344163451634616347163481634916350163511635216353163541635516356163571635816359163601636116362163631636416365163661636716368163691637016371163721637316374163751637616377163781637916380163811638216383163841638516386163871638816389163901639116392163931639416395163961639716398163991640016401164021640316404164051640616407164081640916410164111641216413164141641516416164171641816419164201642116422164231642416425164261642716428164291643016431164321643316434164351643616437164381643916440164411644216443164441644516446164471644816449164501645116452164531645416455164561645716458164591646016461164621646316464164651646616467164681646916470164711647216473164741647516476164771647816479164801648116482164831648416485164861648716488164891649016491164921649316494164951649616497164981649916500165011650216503165041650516506165071650816509165101651116512165131651416515165161651716518165191652016521165221652316524165251652616527165281652916530165311653216533165341653516536165371653816539165401654116542165431654416545165461654716548165491655016551165521655316554165551655616557165581655916560165611656216563165641656516566165671656816569165701657116572165731657416575165761657716578165791658016581165821658316584165851658616587165881658916590165911659216593165941659516596165971659816599166001660116602166031660416605166061660716608166091661016611166121661316614166151661616617166181661916620166211662216623166241662516626166271662816629166301663116632166331663416635166361663716638166391664016641166421664316644166451664616647166481664916650166511665216653166541665516656166571665816659166601666116662166631666416665166661666716668166691667016671166721667316674166751667616677166781667916680166811668216683166841668516686166871668816689166901669116692166931669416695166961669716698166991670016701167021670316704167051670616707167081670916710167111671216713167141671516716167171671816719167201672116722167231672416725167261672716728167291673016731167321673316734167351673616737167381673916740167411674216743167441674516746167471674816749167501675116752167531675416755167561675716758167591676016761167621676316764167651676616767167681676916770167711677216773167741677516776167771677816779167801678116782167831678416785167861678716788167891679016791167921679316794167951679616797167981679916800168011680216803168041680516806168071680816809168101681116812168131681416815168161681716818168191682016821168221682316824168251682616827168281682916830168311683216833168341683516836168371683816839168401684116842168431684416845168461684716848168491685016851168521685316854168551685616857168581685916860168611686216863168641686516866168671686816869168701687116872168731687416875168761687716878168791688016881168821688316884168851688616887168881688916890168911689216893168941689516896168971689816899169001690116902169031690416905169061690716908169091691016911169121691316914169151691616917169181691916920169211692216923169241692516926169271692816929169301693116932169331693416935169361693716938169391694016941169421694316944169451694616947169481694916950169511695216953169541695516956169571695816959169601696116962169631696416965169661696716968169691697016971169721697316974169751697616977169781697916980169811698216983169841698516986169871698816989169901699116992169931699416995169961699716998169991700017001170021700317004170051700617007170081700917010170111701217013170141701517016170171701817019170201702117022170231702417025170261702717028170291703017031170321703317034170351703617037170381703917040170411704217043170441704517046170471704817049170501705117052170531705417055170561705717058170591706017061170621706317064170651706617067170681706917070170711707217073170741707517076170771707817079170801708117082170831708417085170861708717088170891709017091170921709317094170951709617097170981709917100171011710217103171041710517106171071710817109171101711117112171131711417115171161711717118171191712017121171221712317124171251712617127171281712917130171311713217133171341713517136171371713817139171401714117142171431714417145171461714717148171491715017151171521715317154171551715617157171581715917160171611716217163171641716517166171671716817169171701717117172171731717417175171761717717178171791718017181171821718317184171851718617187171881718917190171911719217193171941719517196171971719817199172001720117202172031720417205172061720717208172091721017211172121721317214172151721617217172181721917220172211722217223172241722517226172271722817229172301723117232172331723417235172361723717238172391724017241172421724317244172451724617247172481724917250172511725217253172541725517256172571725817259172601726117262172631726417265172661726717268172691727017271172721727317274172751727617277172781727917280172811728217283172841728517286172871728817289172901729117292172931729417295172961729717298172991730017301173021730317304173051730617307173081730917310173111731217313173141731517316173171731817319173201732117322173231732417325173261732717328173291733017331173321733317334173351733617337173381733917340173411734217343173441734517346173471734817349173501735117352173531735417355173561735717358173591736017361173621736317364173651736617367173681736917370173711737217373173741737517376173771737817379173801738117382173831738417385173861738717388173891739017391173921739317394173951739617397173981739917400174011740217403174041740517406174071740817409174101741117412174131741417415174161741717418174191742017421174221742317424174251742617427174281742917430174311743217433174341743517436174371743817439174401744117442174431744417445174461744717448174491745017451174521745317454174551745617457174581745917460174611746217463174641746517466174671746817469174701747117472174731747417475174761747717478174791748017481174821748317484174851748617487174881748917490174911749217493174941749517496174971749817499175001750117502175031750417505175061750717508175091751017511175121751317514175151751617517175181751917520175211752217523175241752517526175271752817529175301753117532175331753417535175361753717538175391754017541175421754317544175451754617547175481754917550175511755217553175541755517556175571755817559175601756117562175631756417565175661756717568175691757017571175721757317574175751757617577175781757917580175811758217583175841758517586175871758817589175901759117592175931759417595175961759717598175991760017601176021760317604176051760617607176081760917610176111761217613176141761517616176171761817619176201762117622176231762417625176261762717628176291763017631176321763317634176351763617637176381763917640176411764217643176441764517646176471764817649176501765117652176531765417655176561765717658176591766017661176621766317664176651766617667176681766917670176711767217673176741767517676176771767817679176801768117682176831768417685176861768717688176891769017691176921769317694176951769617697176981769917700177011770217703177041770517706177071770817709177101771117712177131771417715177161771717718177191772017721177221772317724177251772617727177281772917730177311773217733177341773517736177371773817739177401774117742177431774417745177461774717748177491775017751177521775317754177551775617757177581775917760177611776217763177641776517766177671776817769177701777117772177731777417775177761777717778177791778017781177821778317784177851778617787177881778917790177911779217793177941779517796177971779817799178001780117802178031780417805178061780717808178091781017811178121781317814178151781617817178181781917820178211782217823178241782517826178271782817829178301783117832178331783417835178361783717838178391784017841178421784317844178451784617847178481784917850178511785217853178541785517856178571785817859178601786117862178631786417865178661786717868178691787017871178721787317874178751787617877178781787917880178811788217883178841788517886178871788817889178901789117892178931789417895178961789717898178991790017901179021790317904179051790617907179081790917910179111791217913179141791517916179171791817919179201792117922179231792417925179261792717928179291793017931179321793317934179351793617937179381793917940179411794217943179441794517946179471794817949179501795117952179531795417955179561795717958179591796017961179621796317964179651796617967179681796917970179711797217973179741797517976179771797817979179801798117982179831798417985179861798717988179891799017991179921799317994179951799617997179981799918000180011800218003180041800518006180071800818009180101801118012180131801418015180161801718018180191802018021180221802318024180251802618027180281802918030180311803218033180341803518036180371803818039180401804118042180431804418045180461804718048180491805018051180521805318054180551805618057180581805918060180611806218063180641806518066180671806818069180701807118072180731807418075180761807718078180791808018081180821808318084180851808618087180881808918090180911809218093180941809518096180971809818099181001810118102181031810418105181061810718108181091811018111181121811318114181151811618117181181811918120181211812218123181241812518126181271812818129181301813118132181331813418135181361813718138181391814018141181421814318144181451814618147181481814918150181511815218153181541815518156181571815818159181601816118162181631816418165181661816718168181691817018171181721817318174181751817618177181781817918180181811818218183181841818518186181871818818189181901819118192181931819418195181961819718198181991820018201182021820318204182051820618207182081820918210182111821218213182141821518216182171821818219182201822118222182231822418225182261822718228182291823018231182321823318234182351823618237182381823918240182411824218243182441824518246182471824818249182501825118252182531825418255182561825718258182591826018261182621826318264182651826618267182681826918270182711827218273182741827518276182771827818279182801828118282182831828418285182861828718288182891829018291182921829318294182951829618297182981829918300183011830218303183041830518306183071830818309183101831118312183131831418315183161831718318183191832018321183221832318324183251832618327183281832918330183311833218333183341833518336183371833818339183401834118342183431834418345183461834718348183491835018351183521835318354183551835618357183581835918360183611836218363183641836518366183671836818369183701837118372183731837418375183761837718378183791838018381183821838318384183851838618387183881838918390183911839218393183941839518396183971839818399184001840118402184031840418405184061840718408184091841018411184121841318414184151841618417184181841918420184211842218423184241842518426184271842818429184301843118432184331843418435184361843718438184391844018441184421844318444184451844618447184481844918450184511845218453184541845518456184571845818459184601846118462184631846418465184661846718468184691847018471184721847318474184751847618477184781847918480184811848218483184841848518486184871848818489184901849118492184931849418495184961849718498184991850018501185021850318504185051850618507185081850918510185111851218513185141851518516185171851818519185201852118522185231852418525185261852718528185291853018531185321853318534185351853618537185381853918540185411854218543185441854518546185471854818549185501855118552185531855418555185561855718558185591856018561185621856318564185651856618567185681856918570185711857218573185741857518576185771857818579185801858118582185831858418585185861858718588185891859018591185921859318594185951859618597185981859918600186011860218603186041860518606186071860818609186101861118612186131861418615186161861718618186191862018621186221862318624186251862618627186281862918630186311863218633186341863518636186371863818639186401864118642186431864418645186461864718648186491865018651186521865318654186551865618657186581865918660186611866218663186641866518666186671866818669186701867118672186731867418675186761867718678186791868018681186821868318684186851868618687186881868918690186911869218693186941869518696186971869818699187001870118702187031870418705187061870718708187091871018711187121871318714187151871618717187181871918720187211872218723187241872518726187271872818729187301873118732187331873418735187361873718738187391874018741187421874318744187451874618747187481874918750187511875218753187541875518756187571875818759187601876118762187631876418765187661876718768187691877018771187721877318774187751877618777187781877918780187811878218783187841878518786187871878818789187901879118792187931879418795187961879718798187991880018801188021880318804188051880618807188081880918810188111881218813188141881518816188171881818819188201882118822188231882418825188261882718828188291883018831188321883318834188351883618837188381883918840188411884218843188441884518846188471884818849188501885118852188531885418855188561885718858188591886018861188621886318864188651886618867188681886918870188711887218873188741887518876188771887818879188801888118882188831888418885188861888718888188891889018891188921889318894188951889618897188981889918900189011890218903189041890518906189071890818909189101891118912189131891418915189161891718918189191892018921189221892318924189251892618927189281892918930189311893218933189341893518936189371893818939189401894118942189431894418945189461894718948189491895018951189521895318954189551895618957189581895918960189611896218963189641896518966189671896818969189701897118972189731897418975189761897718978189791898018981189821898318984189851898618987189881898918990189911899218993189941899518996189971899818999190001900119002190031900419005190061900719008190091901019011190121901319014190151901619017190181901919020190211902219023190241902519026190271902819029190301903119032190331903419035190361903719038190391904019041190421904319044190451904619047190481904919050190511905219053190541905519056190571905819059190601906119062190631906419065190661906719068190691907019071190721907319074190751907619077190781907919080190811908219083190841908519086190871908819089190901909119092190931909419095190961909719098190991910019101191021910319104191051910619107191081910919110191111911219113191141911519116191171911819119191201912119122191231912419125191261912719128191291913019131191321913319134191351913619137191381913919140191411914219143191441914519146191471914819149191501915119152191531915419155191561915719158191591916019161191621916319164191651916619167191681916919170191711917219173191741917519176191771917819179191801918119182191831918419185191861918719188191891919019191191921919319194191951919619197191981919919200192011920219203192041920519206192071920819209192101921119212192131921419215192161921719218192191922019221192221922319224192251922619227192281922919230192311923219233192341923519236192371923819239192401924119242192431924419245192461924719248192491925019251192521925319254192551925619257192581925919260192611926219263192641926519266192671926819269192701927119272192731927419275192761927719278192791928019281192821928319284192851928619287192881928919290192911929219293192941929519296192971929819299193001930119302193031930419305193061930719308193091931019311193121931319314193151931619317193181931919320193211932219323193241932519326193271932819329193301933119332193331933419335193361933719338193391934019341193421934319344193451934619347193481934919350193511935219353193541935519356193571935819359193601936119362193631936419365193661936719368193691937019371193721937319374193751937619377193781937919380193811938219383193841938519386193871938819389193901939119392193931939419395193961939719398193991940019401194021940319404194051940619407194081940919410194111941219413194141941519416194171941819419194201942119422194231942419425194261942719428194291943019431194321943319434194351943619437194381943919440194411944219443194441944519446194471944819449194501945119452194531945419455194561945719458194591946019461194621946319464194651946619467194681946919470194711947219473194741947519476194771947819479194801948119482194831948419485194861948719488194891949019491194921949319494194951949619497194981949919500195011950219503195041950519506195071950819509195101951119512195131951419515195161951719518195191952019521195221952319524195251952619527195281952919530195311953219533195341953519536195371953819539195401954119542195431954419545195461954719548195491955019551195521955319554195551955619557195581955919560195611956219563195641956519566195671956819569195701957119572195731957419575195761957719578195791958019581195821958319584195851958619587195881958919590195911959219593195941959519596195971959819599196001960119602196031960419605196061960719608196091961019611196121961319614196151961619617196181961919620196211962219623196241962519626196271962819629196301963119632196331963419635196361963719638196391964019641196421964319644196451964619647196481964919650196511965219653196541965519656196571965819659196601966119662196631966419665196661966719668196691967019671196721967319674196751967619677196781967919680196811968219683196841968519686196871968819689196901969119692196931969419695196961969719698196991970019701197021970319704197051970619707197081970919710197111971219713197141971519716197171971819719197201972119722197231972419725197261972719728197291973019731197321973319734197351973619737197381973919740197411974219743197441974519746197471974819749197501975119752197531975419755197561975719758197591976019761197621976319764197651976619767197681976919770197711977219773197741977519776197771977819779197801978119782197831978419785197861978719788197891979019791197921979319794197951979619797197981979919800198011980219803198041980519806198071980819809198101981119812198131981419815198161981719818198191982019821198221982319824198251982619827198281982919830198311983219833198341983519836198371983819839198401984119842198431984419845198461984719848198491985019851198521985319854198551985619857198581985919860198611986219863198641986519866198671986819869198701987119872198731987419875198761987719878198791988019881198821988319884198851988619887198881988919890198911989219893198941989519896198971989819899199001990119902199031990419905199061990719908199091991019911199121991319914199151991619917199181991919920199211992219923199241992519926199271992819929199301993119932199331993419935199361993719938199391994019941199421994319944199451994619947199481994919950199511995219953199541995519956199571995819959199601996119962199631996419965199661996719968199691997019971199721997319974199751997619977199781997919980199811998219983199841998519986199871998819989199901999119992199931999419995199961999719998199992000020001200022000320004200052000620007200082000920010200112001220013200142001520016200172001820019200202002120022200232002420025200262002720028200292003020031200322003320034200352003620037200382003920040200412004220043200442004520046200472004820049200502005120052200532005420055200562005720058200592006020061200622006320064200652006620067200682006920070200712007220073200742007520076200772007820079200802008120082200832008420085200862008720088200892009020091200922009320094200952009620097200982009920100201012010220103201042010520106201072010820109201102011120112201132011420115201162011720118201192012020121201222012320124201252012620127201282012920130201312013220133201342013520136201372013820139201402014120142201432014420145201462014720148201492015020151201522015320154201552015620157201582015920160201612016220163201642016520166201672016820169201702017120172201732017420175201762017720178201792018020181201822018320184201852018620187201882018920190201912019220193201942019520196201972019820199202002020120202202032020420205202062020720208202092021020211202122021320214202152021620217202182021920220202212022220223202242022520226202272022820229202302023120232202332023420235202362023720238202392024020241202422024320244202452024620247202482024920250202512025220253202542025520256202572025820259202602026120262202632026420265202662026720268202692027020271202722027320274202752027620277202782027920280202812028220283202842028520286202872028820289202902029120292202932029420295202962029720298202992030020301203022030320304203052030620307203082030920310203112031220313203142031520316203172031820319203202032120322203232032420325203262032720328203292033020331203322033320334203352033620337203382033920340203412034220343203442034520346203472034820349203502035120352203532035420355203562035720358203592036020361203622036320364203652036620367203682036920370203712037220373203742037520376203772037820379203802038120382203832038420385203862038720388203892039020391203922039320394203952039620397203982039920400204012040220403204042040520406204072040820409204102041120412204132041420415204162041720418204192042020421204222042320424204252042620427204282042920430204312043220433204342043520436204372043820439204402044120442204432044420445204462044720448204492045020451204522045320454204552045620457204582045920460204612046220463204642046520466204672046820469204702047120472204732047420475204762047720478204792048020481204822048320484204852048620487204882048920490204912049220493204942049520496204972049820499205002050120502205032050420505205062050720508205092051020511205122051320514205152051620517205182051920520205212052220523205242052520526205272052820529205302053120532205332053420535205362053720538205392054020541205422054320544205452054620547205482054920550205512055220553205542055520556205572055820559205602056120562205632056420565205662056720568205692057020571205722057320574205752057620577205782057920580205812058220583205842058520586205872058820589205902059120592205932059420595205962059720598205992060020601206022060320604206052060620607206082060920610206112061220613206142061520616206172061820619206202062120622206232062420625206262062720628206292063020631206322063320634206352063620637206382063920640206412064220643206442064520646206472064820649206502065120652206532065420655206562065720658206592066020661206622066320664206652066620667206682066920670206712067220673206742067520676206772067820679206802068120682206832068420685206862068720688206892069020691206922069320694206952069620697206982069920700207012070220703207042070520706207072070820709207102071120712207132071420715207162071720718207192072020721207222072320724207252072620727207282072920730207312073220733207342073520736207372073820739207402074120742207432074420745207462074720748207492075020751207522075320754207552075620757207582075920760207612076220763207642076520766207672076820769207702077120772207732077420775207762077720778207792078020781207822078320784207852078620787207882078920790207912079220793207942079520796207972079820799208002080120802208032080420805208062080720808208092081020811208122081320814208152081620817208182081920820208212082220823208242082520826208272082820829208302083120832208332083420835208362083720838208392084020841208422084320844208452084620847208482084920850208512085220853208542085520856208572085820859208602086120862208632086420865208662086720868208692087020871208722087320874208752087620877208782087920880208812088220883208842088520886208872088820889208902089120892208932089420895208962089720898208992090020901209022090320904209052090620907209082090920910209112091220913209142091520916209172091820919209202092120922209232092420925209262092720928209292093020931209322093320934209352093620937209382093920940209412094220943209442094520946209472094820949209502095120952209532095420955209562095720958209592096020961209622096320964209652096620967209682096920970209712097220973209742097520976209772097820979209802098120982209832098420985209862098720988209892099020991209922099320994209952099620997209982099921000210012100221003210042100521006210072100821009210102101121012210132101421015210162101721018210192102021021210222102321024210252102621027210282102921030210312103221033210342103521036210372103821039210402104121042210432104421045210462104721048210492105021051210522105321054210552105621057210582105921060210612106221063210642106521066210672106821069210702107121072210732107421075210762107721078210792108021081210822108321084210852108621087210882108921090210912109221093210942109521096210972109821099211002110121102211032110421105211062110721108211092111021111211122111321114211152111621117211182111921120211212112221123211242112521126211272112821129211302113121132211332113421135211362113721138211392114021141211422114321144211452114621147211482114921150211512115221153211542115521156211572115821159211602116121162211632116421165211662116721168211692117021171211722117321174211752117621177211782117921180211812118221183211842118521186211872118821189211902119121192211932119421195211962119721198211992120021201212022120321204212052120621207212082120921210212112121221213212142121521216212172121821219212202122121222212232122421225212262122721228212292123021231212322123321234212352123621237212382123921240212412124221243212442124521246212472124821249212502125121252212532125421255212562125721258212592126021261212622126321264212652126621267212682126921270212712127221273212742127521276212772127821279212802128121282212832128421285212862128721288212892129021291212922129321294212952129621297212982129921300213012130221303213042130521306213072130821309213102131121312213132131421315213162131721318213192132021321213222132321324213252132621327213282132921330213312133221333213342133521336213372133821339213402134121342213432134421345213462134721348213492135021351213522135321354213552135621357213582135921360213612136221363213642136521366213672136821369213702137121372213732137421375213762137721378213792138021381213822138321384213852138621387213882138921390213912139221393213942139521396213972139821399214002140121402214032140421405214062140721408214092141021411214122141321414214152141621417214182141921420214212142221423214242142521426214272142821429214302143121432214332143421435214362143721438214392144021441214422144321444214452144621447214482144921450214512145221453214542145521456214572145821459214602146121462214632146421465214662146721468214692147021471214722147321474214752147621477214782147921480214812148221483214842148521486214872148821489214902149121492214932149421495214962149721498214992150021501215022150321504215052150621507215082150921510215112151221513215142151521516215172151821519215202152121522215232152421525215262152721528215292153021531215322153321534215352153621537215382153921540215412154221543215442154521546215472154821549215502155121552215532155421555215562155721558215592156021561215622156321564215652156621567215682156921570215712157221573215742157521576215772157821579215802158121582215832158421585215862158721588215892159021591215922159321594215952159621597215982159921600216012160221603216042160521606216072160821609216102161121612216132161421615216162161721618216192162021621216222162321624216252162621627216282162921630216312163221633216342163521636216372163821639216402164121642216432164421645216462164721648216492165021651216522165321654216552165621657216582165921660216612166221663216642166521666216672166821669216702167121672216732167421675216762167721678216792168021681216822168321684216852168621687216882168921690216912169221693216942169521696216972169821699217002170121702217032170421705217062170721708217092171021711217122171321714217152171621717217182171921720217212172221723217242172521726217272172821729217302173121732217332173421735217362173721738217392174021741217422174321744217452174621747217482174921750217512175221753217542175521756217572175821759217602176121762217632176421765217662176721768217692177021771217722177321774217752177621777217782177921780217812178221783217842178521786217872178821789217902179121792217932179421795217962179721798217992180021801218022180321804218052180621807218082180921810218112181221813218142181521816218172181821819218202182121822218232182421825218262182721828218292183021831218322183321834218352183621837218382183921840218412184221843218442184521846218472184821849218502185121852218532185421855218562185721858218592186021861218622186321864218652186621867218682186921870218712187221873218742187521876218772187821879218802188121882218832188421885218862188721888218892189021891218922189321894218952189621897218982189921900219012190221903219042190521906219072190821909219102191121912219132191421915219162191721918219192192021921219222192321924219252192621927219282192921930219312193221933219342193521936219372193821939219402194121942219432194421945219462194721948219492195021951219522195321954219552195621957219582195921960219612196221963219642196521966219672196821969219702197121972219732197421975219762197721978219792198021981219822198321984219852198621987219882198921990219912199221993219942199521996219972199821999220002200122002220032200422005220062200722008220092201022011220122201322014220152201622017220182201922020220212202222023220242202522026220272202822029220302203122032220332203422035220362203722038220392204022041220422204322044220452204622047220482204922050220512205222053220542205522056220572205822059220602206122062220632206422065220662206722068220692207022071220722207322074220752207622077220782207922080220812208222083220842208522086220872208822089220902209122092220932209422095220962209722098220992210022101221022210322104221052210622107221082210922110221112211222113221142211522116221172211822119221202212122122221232212422125221262212722128221292213022131221322213322134221352213622137221382213922140221412214222143221442214522146221472214822149221502215122152221532215422155221562215722158221592216022161221622216322164221652216622167221682216922170221712217222173221742217522176221772217822179221802218122182221832218422185221862218722188221892219022191221922219322194221952219622197221982219922200222012220222203222042220522206222072220822209222102221122212222132221422215222162221722218222192222022221222222222322224222252222622227222282222922230222312223222233222342223522236222372223822239222402224122242222432224422245222462224722248222492225022251222522225322254222552225622257222582225922260222612226222263222642226522266222672226822269222702227122272222732227422275222762227722278222792228022281222822228322284222852228622287222882228922290222912229222293222942229522296222972229822299223002230122302223032230422305223062230722308223092231022311223122231322314223152231622317223182231922320223212232222323223242232522326223272232822329223302233122332223332233422335223362233722338223392234022341223422234322344223452234622347223482234922350223512235222353223542235522356223572235822359223602236122362223632236422365223662236722368223692237022371223722237322374223752237622377223782237922380223812238222383223842238522386223872238822389223902239122392223932239422395223962239722398223992240022401224022240322404224052240622407224082240922410224112241222413224142241522416224172241822419224202242122422224232242422425224262242722428224292243022431224322243322434224352243622437224382243922440224412244222443224442244522446224472244822449224502245122452224532245422455224562245722458224592246022461224622246322464224652246622467224682246922470224712247222473224742247522476224772247822479224802248122482224832248422485224862248722488224892249022491224922249322494224952249622497224982249922500225012250222503225042250522506225072250822509225102251122512225132251422515225162251722518225192252022521225222252322524225252252622527225282252922530225312253222533225342253522536225372253822539225402254122542225432254422545225462254722548225492255022551225522255322554225552255622557225582255922560225612256222563225642256522566225672256822569225702257122572225732257422575225762257722578225792258022581225822258322584225852258622587225882258922590225912259222593225942259522596225972259822599226002260122602226032260422605226062260722608226092261022611226122261322614226152261622617226182261922620226212262222623226242262522626226272262822629226302263122632226332263422635226362263722638226392264022641226422264322644226452264622647226482264922650226512265222653226542265522656226572265822659226602266122662226632266422665226662266722668226692267022671226722267322674226752267622677226782267922680226812268222683226842268522686226872268822689226902269122692226932269422695226962269722698226992270022701227022270322704227052270622707227082270922710227112271222713227142271522716227172271822719227202272122722227232272422725227262272722728227292273022731227322273322734227352273622737227382273922740227412274222743227442274522746227472274822749227502275122752227532275422755227562275722758227592276022761227622276322764227652276622767227682276922770227712277222773227742277522776227772277822779227802278122782227832278422785227862278722788227892279022791227922279322794227952279622797227982279922800228012280222803228042280522806228072280822809228102281122812228132281422815228162281722818228192282022821228222282322824228252282622827228282282922830228312283222833228342283522836228372283822839228402284122842228432284422845228462284722848228492285022851228522285322854228552285622857228582285922860228612286222863228642286522866228672286822869228702287122872228732287422875228762287722878228792288022881228822288322884228852288622887228882288922890228912289222893228942289522896228972289822899229002290122902229032290422905229062290722908229092291022911229122291322914229152291622917229182291922920229212292222923229242292522926229272292822929229302293122932229332293422935229362293722938229392294022941229422294322944229452294622947229482294922950229512295222953229542295522956229572295822959229602296122962229632296422965229662296722968229692297022971229722297322974229752297622977229782297922980229812298222983229842298522986229872298822989229902299122992229932299422995229962299722998229992300023001230022300323004230052300623007230082300923010230112301223013230142301523016230172301823019230202302123022230232302423025230262302723028230292303023031230322303323034230352303623037230382303923040230412304223043230442304523046230472304823049230502305123052230532305423055230562305723058230592306023061230622306323064230652306623067230682306923070230712307223073230742307523076230772307823079230802308123082230832308423085230862308723088230892309023091230922309323094230952309623097230982309923100231012310223103231042310523106231072310823109231102311123112231132311423115231162311723118231192312023121231222312323124231252312623127231282312923130231312313223133231342313523136231372313823139231402314123142231432314423145231462314723148231492315023151231522315323154231552315623157231582315923160231612316223163231642316523166231672316823169231702317123172231732317423175231762317723178231792318023181231822318323184231852318623187231882318923190231912319223193231942319523196231972319823199232002320123202232032320423205232062320723208232092321023211232122321323214232152321623217232182321923220232212322223223232242322523226232272322823229232302323123232232332323423235232362323723238232392324023241232422324323244232452324623247232482324923250232512325223253232542325523256232572325823259232602326123262232632326423265232662326723268232692327023271232722327323274232752327623277232782327923280232812328223283232842328523286232872328823289232902329123292232932329423295232962329723298232992330023301233022330323304233052330623307233082330923310233112331223313233142331523316233172331823319233202332123322233232332423325233262332723328233292333023331233322333323334233352333623337233382333923340233412334223343233442334523346233472334823349233502335123352233532335423355233562335723358233592336023361233622336323364233652336623367233682336923370233712337223373233742337523376233772337823379233802338123382233832338423385233862338723388233892339023391233922339323394233952339623397233982339923400234012340223403234042340523406234072340823409234102341123412234132341423415234162341723418234192342023421234222342323424234252342623427234282342923430234312343223433234342343523436234372343823439234402344123442234432344423445234462344723448234492345023451234522345323454234552345623457234582345923460234612346223463234642346523466234672346823469234702347123472234732347423475234762347723478234792348023481234822348323484234852348623487234882348923490234912349223493234942349523496234972349823499235002350123502235032350423505235062350723508235092351023511235122351323514235152351623517235182351923520235212352223523235242352523526235272352823529235302353123532235332353423535235362353723538235392354023541235422354323544235452354623547235482354923550235512355223553235542355523556235572355823559235602356123562235632356423565235662356723568235692357023571235722357323574235752357623577235782357923580235812358223583235842358523586235872358823589235902359123592235932359423595235962359723598235992360023601236022360323604236052360623607236082360923610236112361223613236142361523616236172361823619236202362123622236232362423625236262362723628236292363023631236322363323634236352363623637236382363923640236412364223643236442364523646236472364823649236502365123652236532365423655236562365723658236592366023661236622366323664236652366623667236682366923670236712367223673236742367523676236772367823679236802368123682236832368423685236862368723688236892369023691236922369323694236952369623697236982369923700237012370223703237042370523706237072370823709237102371123712237132371423715237162371723718237192372023721237222372323724237252372623727237282372923730237312373223733237342373523736237372373823739237402374123742237432374423745237462374723748237492375023751237522375323754237552375623757237582375923760237612376223763237642376523766237672376823769237702377123772237732377423775237762377723778237792378023781237822378323784237852378623787237882378923790237912379223793237942379523796237972379823799238002380123802238032380423805238062380723808238092381023811238122381323814238152381623817238182381923820238212382223823238242382523826238272382823829238302383123832238332383423835238362383723838238392384023841238422384323844238452384623847238482384923850238512385223853238542385523856238572385823859238602386123862238632386423865238662386723868238692387023871238722387323874238752387623877238782387923880238812388223883238842388523886238872388823889238902389123892238932389423895238962389723898238992390023901239022390323904239052390623907239082390923910239112391223913239142391523916239172391823919239202392123922239232392423925239262392723928239292393023931239322393323934239352393623937239382393923940239412394223943239442394523946239472394823949239502395123952239532395423955239562395723958239592396023961239622396323964239652396623967239682396923970239712397223973239742397523976239772397823979239802398123982239832398423985239862398723988239892399023991239922399323994239952399623997239982399924000240012400224003240042400524006240072400824009240102401124012240132401424015240162401724018240192402024021240222402324024240252402624027240282402924030240312403224033240342403524036240372403824039240402404124042240432404424045240462404724048240492405024051240522405324054240552405624057240582405924060240612406224063240642406524066240672406824069240702407124072240732407424075240762407724078240792408024081240822408324084240852408624087240882408924090240912409224093240942409524096240972409824099241002410124102241032410424105241062410724108241092411024111241122411324114241152411624117241182411924120241212412224123241242412524126241272412824129241302413124132241332413424135241362413724138241392414024141241422414324144241452414624147241482414924150241512415224153241542415524156241572415824159241602416124162241632416424165241662416724168241692417024171241722417324174241752417624177241782417924180241812418224183241842418524186241872418824189241902419124192241932419424195241962419724198241992420024201242022420324204242052420624207242082420924210242112421224213242142421524216242172421824219242202422124222242232422424225242262422724228242292423024231242322423324234242352423624237242382423924240242412424224243242442424524246242472424824249242502425124252242532425424255242562425724258242592426024261242622426324264242652426624267242682426924270242712427224273242742427524276242772427824279242802428124282242832428424285242862428724288242892429024291242922429324294242952429624297242982429924300243012430224303243042430524306243072430824309243102431124312243132431424315243162431724318243192432024321243222432324324243252432624327243282432924330243312433224333243342433524336243372433824339243402434124342243432434424345243462434724348243492435024351243522435324354243552435624357243582435924360243612436224363243642436524366243672436824369243702437124372243732437424375243762437724378243792438024381243822438324384243852438624387243882438924390243912439224393243942439524396243972439824399244002440124402244032440424405244062440724408244092441024411244122441324414244152441624417244182441924420244212442224423244242442524426244272442824429244302443124432244332443424435244362443724438244392444024441244422444324444244452444624447244482444924450244512445224453244542445524456244572445824459244602446124462244632446424465244662446724468244692447024471244722447324474244752447624477244782447924480244812448224483244842448524486244872448824489244902449124492244932449424495244962449724498244992450024501245022450324504245052450624507245082450924510245112451224513245142451524516245172451824519245202452124522245232452424525245262452724528245292453024531245322453324534245352453624537245382453924540245412454224543245442454524546245472454824549245502455124552245532455424555245562455724558245592456024561245622456324564245652456624567245682456924570245712457224573245742457524576245772457824579245802458124582245832458424585245862458724588245892459024591245922459324594245952459624597245982459924600246012460224603246042460524606246072460824609246102461124612246132461424615246162461724618246192462024621246222462324624246252462624627246282462924630246312463224633246342463524636246372463824639246402464124642246432464424645246462464724648246492465024651246522465324654246552465624657246582465924660246612466224663246642466524666246672466824669246702467124672246732467424675246762467724678246792468024681246822468324684246852468624687246882468924690246912469224693246942469524696246972469824699247002470124702247032470424705247062470724708247092471024711247122471324714247152471624717247182471924720247212472224723247242472524726247272472824729247302473124732247332473424735247362473724738247392474024741247422474324744247452474624747247482474924750247512475224753247542475524756247572475824759247602476124762247632476424765247662476724768247692477024771247722477324774247752477624777247782477924780247812478224783247842478524786247872478824789247902479124792247932479424795247962479724798247992480024801248022480324804248052480624807248082480924810248112481224813248142481524816248172481824819248202482124822248232482424825248262482724828248292483024831248322483324834248352483624837248382483924840248412484224843248442484524846248472484824849248502485124852248532485424855248562485724858248592486024861248622486324864248652486624867248682486924870248712487224873248742487524876248772487824879248802488124882248832488424885248862488724888248892489024891248922489324894248952489624897248982489924900249012490224903249042490524906249072490824909249102491124912249132491424915249162491724918249192492024921249222492324924249252492624927249282492924930249312493224933249342493524936249372493824939249402494124942249432494424945249462494724948249492495024951249522495324954249552495624957249582495924960249612496224963249642496524966249672496824969249702497124972249732497424975249762497724978249792498024981249822498324984249852498624987249882498924990249912499224993249942499524996249972499824999250002500125002250032500425005250062500725008250092501025011250122501325014250152501625017250182501925020250212502225023250242502525026250272502825029250302503125032250332503425035250362503725038250392504025041250422504325044250452504625047250482504925050250512505225053250542505525056250572505825059250602506125062250632506425065250662506725068250692507025071250722507325074250752507625077250782507925080250812508225083250842508525086250872508825089250902509125092250932509425095250962509725098250992510025101251022510325104251052510625107251082510925110251112511225113251142511525116251172511825119251202512125122251232512425125251262512725128251292513025131251322513325134251352513625137251382513925140251412514225143251442514525146251472514825149251502515125152251532515425155251562515725158251592516025161251622516325164251652516625167251682516925170251712517225173251742517525176251772517825179251802518125182251832518425185251862518725188251892519025191251922519325194251952519625197251982519925200252012520225203252042520525206252072520825209252102521125212252132521425215252162521725218252192522025221252222522325224252252522625227252282522925230252312523225233252342523525236252372523825239252402524125242252432524425245252462524725248252492525025251252522525325254252552525625257252582525925260252612526225263252642526525266252672526825269252702527125272252732527425275252762527725278252792528025281252822528325284252852528625287252882528925290252912529225293252942529525296252972529825299253002530125302253032530425305253062530725308253092531025311253122531325314253152531625317253182531925320253212532225323253242532525326253272532825329253302533125332253332533425335253362533725338253392534025341253422534325344253452534625347253482534925350253512535225353253542535525356253572535825359253602536125362253632536425365253662536725368253692537025371253722537325374253752537625377253782537925380253812538225383253842538525386253872538825389253902539125392253932539425395253962539725398253992540025401254022540325404254052540625407254082540925410254112541225413254142541525416254172541825419254202542125422254232542425425254262542725428254292543025431254322543325434254352543625437254382543925440254412544225443254442544525446254472544825449254502545125452254532545425455254562545725458254592546025461254622546325464254652546625467254682546925470254712547225473254742547525476254772547825479254802548125482254832548425485254862548725488254892549025491254922549325494254952549625497254982549925500255012550225503255042550525506255072550825509255102551125512255132551425515255162551725518255192552025521255222552325524255252552625527255282552925530255312553225533255342553525536255372553825539255402554125542255432554425545255462554725548255492555025551255522555325554255552555625557255582555925560255612556225563255642556525566255672556825569255702557125572255732557425575255762557725578255792558025581255822558325584255852558625587255882558925590255912559225593255942559525596255972559825599256002560125602256032560425605256062560725608256092561025611256122561325614256152561625617256182561925620256212562225623256242562525626256272562825629256302563125632256332563425635256362563725638256392564025641256422564325644256452564625647256482564925650256512565225653256542565525656256572565825659256602566125662256632566425665256662566725668256692567025671256722567325674256752567625677256782567925680256812568225683256842568525686256872568825689256902569125692256932569425695256962569725698256992570025701257022570325704257052570625707257082570925710257112571225713257142571525716257172571825719257202572125722257232572425725257262572725728257292573025731257322573325734257352573625737257382573925740257412574225743257442574525746257472574825749257502575125752257532575425755257562575725758257592576025761257622576325764257652576625767257682576925770257712577225773257742577525776257772577825779257802578125782257832578425785257862578725788257892579025791257922579325794257952579625797257982579925800258012580225803258042580525806258072580825809258102581125812258132581425815258162581725818258192582025821258222582325824258252582625827258282582925830258312583225833258342583525836258372583825839258402584125842258432584425845258462584725848258492585025851258522585325854258552585625857258582585925860258612586225863258642586525866258672586825869258702587125872258732587425875258762587725878258792588025881258822588325884258852588625887258882588925890258912589225893258942589525896258972589825899259002590125902259032590425905259062590725908259092591025911259122591325914259152591625917259182591925920259212592225923259242592525926259272592825929259302593125932259332593425935259362593725938259392594025941259422594325944259452594625947259482594925950259512595225953259542595525956259572595825959259602596125962259632596425965259662596725968259692597025971259722597325974259752597625977259782597925980259812598225983259842598525986259872598825989259902599125992259932599425995259962599725998259992600026001260022600326004260052600626007260082600926010260112601226013260142601526016260172601826019260202602126022260232602426025260262602726028260292603026031260322603326034260352603626037260382603926040260412604226043260442604526046260472604826049260502605126052260532605426055260562605726058260592606026061260622606326064260652606626067260682606926070260712607226073260742607526076260772607826079260802608126082260832608426085260862608726088260892609026091260922609326094260952609626097260982609926100261012610226103261042610526106261072610826109261102611126112261132611426115261162611726118261192612026121261222612326124261252612626127261282612926130261312613226133261342613526136261372613826139261402614126142261432614426145261462614726148261492615026151261522615326154261552615626157261582615926160261612616226163261642616526166261672616826169261702617126172261732617426175261762617726178261792618026181261822618326184261852618626187261882618926190261912619226193261942619526196261972619826199262002620126202262032620426205262062620726208262092621026211262122621326214262152621626217262182621926220262212622226223262242622526226262272622826229262302623126232262332623426235262362623726238262392624026241262422624326244262452624626247262482624926250262512625226253262542625526256262572625826259262602626126262262632626426265262662626726268262692627026271262722627326274262752627626277262782627926280262812628226283262842628526286262872628826289262902629126292262932629426295262962629726298262992630026301263022630326304263052630626307263082630926310263112631226313263142631526316263172631826319263202632126322263232632426325263262632726328263292633026331263322633326334263352633626337263382633926340263412634226343263442634526346263472634826349263502635126352263532635426355263562635726358263592636026361263622636326364263652636626367263682636926370263712637226373263742637526376263772637826379263802638126382263832638426385263862638726388263892639026391263922639326394263952639626397263982639926400264012640226403264042640526406264072640826409264102641126412264132641426415264162641726418264192642026421264222642326424264252642626427264282642926430264312643226433264342643526436264372643826439264402644126442264432644426445264462644726448264492645026451264522645326454264552645626457264582645926460264612646226463264642646526466264672646826469264702647126472264732647426475264762647726478264792648026481264822648326484264852648626487264882648926490264912649226493264942649526496264972649826499265002650126502265032650426505265062650726508265092651026511265122651326514265152651626517265182651926520265212652226523265242652526526265272652826529265302653126532265332653426535265362653726538265392654026541265422654326544265452654626547265482654926550265512655226553265542655526556265572655826559265602656126562265632656426565265662656726568265692657026571265722657326574265752657626577265782657926580265812658226583265842658526586265872658826589265902659126592265932659426595265962659726598265992660026601266022660326604266052660626607266082660926610266112661226613266142661526616266172661826619266202662126622266232662426625266262662726628266292663026631266322663326634266352663626637266382663926640266412664226643266442664526646266472664826649266502665126652266532665426655266562665726658266592666026661266622666326664266652666626667266682666926670266712667226673266742667526676266772667826679266802668126682266832668426685266862668726688266892669026691266922669326694266952669626697266982669926700267012670226703267042670526706267072670826709267102671126712267132671426715267162671726718267192672026721267222672326724267252672626727267282672926730267312673226733267342673526736267372673826739267402674126742267432674426745267462674726748267492675026751267522675326754267552675626757267582675926760267612676226763267642676526766267672676826769267702677126772267732677426775267762677726778267792678026781267822678326784267852678626787267882678926790267912679226793267942679526796267972679826799268002680126802268032680426805268062680726808268092681026811268122681326814268152681626817268182681926820268212682226823268242682526826268272682826829268302683126832268332683426835268362683726838268392684026841268422684326844268452684626847268482684926850268512685226853268542685526856268572685826859268602686126862268632686426865268662686726868268692687026871268722687326874268752687626877268782687926880268812688226883268842688526886268872688826889268902689126892268932689426895268962689726898268992690026901269022690326904269052690626907269082690926910269112691226913269142691526916269172691826919269202692126922269232692426925269262692726928269292693026931269322693326934269352693626937269382693926940269412694226943269442694526946269472694826949269502695126952269532695426955269562695726958269592696026961269622696326964269652696626967269682696926970269712697226973269742697526976269772697826979269802698126982269832698426985269862698726988269892699026991269922699326994269952699626997269982699927000270012700227003270042700527006270072700827009270102701127012270132701427015270162701727018270192702027021270222702327024270252702627027270282702927030270312703227033270342703527036270372703827039270402704127042270432704427045270462704727048270492705027051270522705327054270552705627057270582705927060270612706227063270642706527066270672706827069270702707127072270732707427075270762707727078270792708027081270822708327084270852708627087270882708927090270912709227093270942709527096270972709827099271002710127102271032710427105271062710727108271092711027111271122711327114271152711627117271182711927120271212712227123271242712527126271272712827129271302713127132271332713427135271362713727138271392714027141271422714327144271452714627147271482714927150271512715227153271542715527156271572715827159271602716127162271632716427165271662716727168271692717027171271722717327174271752717627177271782717927180271812718227183271842718527186271872718827189271902719127192271932719427195271962719727198271992720027201272022720327204272052720627207272082720927210272112721227213272142721527216272172721827219272202722127222272232722427225272262722727228272292723027231272322723327234272352723627237272382723927240272412724227243272442724527246272472724827249272502725127252272532725427255272562725727258272592726027261272622726327264272652726627267272682726927270272712727227273272742727527276272772727827279272802728127282272832728427285272862728727288272892729027291272922729327294272952729627297272982729927300273012730227303273042730527306273072730827309273102731127312273132731427315273162731727318273192732027321273222732327324273252732627327273282732927330273312733227333273342733527336273372733827339273402734127342273432734427345273462734727348273492735027351273522735327354273552735627357273582735927360273612736227363273642736527366273672736827369273702737127372273732737427375273762737727378273792738027381273822738327384273852738627387273882738927390273912739227393273942739527396273972739827399274002740127402274032740427405274062740727408274092741027411274122741327414274152741627417274182741927420274212742227423274242742527426274272742827429274302743127432274332743427435274362743727438274392744027441274422744327444274452744627447274482744927450274512745227453274542745527456274572745827459274602746127462274632746427465274662746727468274692747027471274722747327474274752747627477274782747927480274812748227483274842748527486274872748827489274902749127492274932749427495274962749727498274992750027501275022750327504275052750627507275082750927510275112751227513275142751527516275172751827519275202752127522275232752427525275262752727528275292753027531275322753327534275352753627537275382753927540275412754227543275442754527546275472754827549275502755127552275532755427555275562755727558275592756027561275622756327564275652756627567275682756927570275712757227573275742757527576275772757827579275802758127582275832758427585275862758727588275892759027591275922759327594275952759627597275982759927600276012760227603276042760527606276072760827609276102761127612276132761427615276162761727618276192762027621276222762327624276252762627627276282762927630276312763227633276342763527636276372763827639276402764127642276432764427645276462764727648276492765027651276522765327654276552765627657276582765927660276612766227663276642766527666276672766827669276702767127672276732767427675276762767727678276792768027681276822768327684276852768627687276882768927690276912769227693276942769527696276972769827699277002770127702277032770427705277062770727708277092771027711277122771327714277152771627717277182771927720277212772227723277242772527726277272772827729277302773127732277332773427735277362773727738277392774027741277422774327744277452774627747277482774927750277512775227753277542775527756277572775827759277602776127762277632776427765277662776727768277692777027771277722777327774277752777627777277782777927780277812778227783277842778527786277872778827789277902779127792277932779427795277962779727798277992780027801278022780327804278052780627807278082780927810278112781227813278142781527816278172781827819278202782127822278232782427825278262782727828278292783027831278322783327834278352783627837278382783927840278412784227843278442784527846278472784827849278502785127852278532785427855278562785727858278592786027861278622786327864278652786627867278682786927870278712787227873278742787527876278772787827879278802788127882278832788427885278862788727888278892789027891278922789327894278952789627897278982789927900279012790227903279042790527906279072790827909279102791127912279132791427915279162791727918279192792027921279222792327924279252792627927279282792927930279312793227933279342793527936279372793827939279402794127942279432794427945279462794727948279492795027951279522795327954279552795627957279582795927960279612796227963279642796527966279672796827969279702797127972279732797427975279762797727978279792798027981279822798327984279852798627987279882798927990279912799227993279942799527996279972799827999280002800128002280032800428005280062800728008280092801028011280122801328014280152801628017280182801928020280212802228023280242802528026280272802828029280302803128032280332803428035280362803728038280392804028041280422804328044280452804628047280482804928050280512805228053280542805528056280572805828059280602806128062280632806428065280662806728068280692807028071280722807328074280752807628077280782807928080280812808228083280842808528086280872808828089280902809128092280932809428095280962809728098280992810028101281022810328104281052810628107281082810928110281112811228113281142811528116281172811828119281202812128122281232812428125281262812728128281292813028131281322813328134281352813628137281382813928140281412814228143281442814528146281472814828149281502815128152281532815428155281562815728158281592816028161281622816328164281652816628167281682816928170281712817228173281742817528176281772817828179281802818128182281832818428185281862818728188281892819028191281922819328194281952819628197281982819928200282012820228203282042820528206282072820828209282102821128212282132821428215282162821728218282192822028221282222822328224282252822628227282282822928230282312823228233282342823528236282372823828239282402824128242282432824428245282462824728248282492825028251282522825328254282552825628257282582825928260282612826228263282642826528266282672826828269282702827128272282732827428275282762827728278282792828028281282822828328284282852828628287282882828928290282912829228293282942829528296282972829828299283002830128302283032830428305283062830728308283092831028311283122831328314283152831628317283182831928320283212832228323283242832528326283272832828329283302833128332283332833428335283362833728338283392834028341283422834328344283452834628347283482834928350283512835228353283542835528356283572835828359283602836128362283632836428365283662836728368283692837028371283722837328374283752837628377283782837928380283812838228383283842838528386283872838828389283902839128392283932839428395283962839728398283992840028401284022840328404284052840628407284082840928410284112841228413284142841528416284172841828419284202842128422284232842428425284262842728428284292843028431284322843328434284352843628437284382843928440284412844228443284442844528446284472844828449284502845128452284532845428455284562845728458284592846028461284622846328464284652846628467284682846928470284712847228473284742847528476284772847828479284802848128482284832848428485284862848728488284892849028491284922849328494284952849628497284982849928500285012850228503285042850528506285072850828509285102851128512285132851428515285162851728518285192852028521285222852328524285252852628527285282852928530285312853228533285342853528536285372853828539285402854128542285432854428545285462854728548285492855028551285522855328554285552855628557285582855928560285612856228563285642856528566285672856828569285702857128572285732857428575285762857728578285792858028581285822858328584285852858628587285882858928590285912859228593285942859528596285972859828599286002860128602286032860428605286062860728608286092861028611286122861328614286152861628617286182861928620286212862228623286242862528626286272862828629286302863128632286332863428635286362863728638286392864028641286422864328644286452864628647286482864928650286512865228653286542865528656286572865828659286602866128662286632866428665286662866728668286692867028671286722867328674286752867628677286782867928680286812868228683286842868528686286872868828689286902869128692286932869428695286962869728698286992870028701287022870328704287052870628707287082870928710287112871228713287142871528716287172871828719287202872128722287232872428725287262872728728287292873028731287322873328734287352873628737287382873928740287412874228743287442874528746287472874828749287502875128752287532875428755287562875728758287592876028761287622876328764287652876628767287682876928770287712877228773287742877528776287772877828779287802878128782287832878428785287862878728788287892879028791287922879328794287952879628797287982879928800288012880228803288042880528806288072880828809288102881128812288132881428815288162881728818288192882028821288222882328824288252882628827288282882928830288312883228833288342883528836288372883828839288402884128842288432884428845288462884728848288492885028851288522885328854288552885628857288582885928860288612886228863288642886528866288672886828869288702887128872288732887428875288762887728878288792888028881288822888328884288852888628887288882888928890288912889228893288942889528896288972889828899289002890128902289032890428905289062890728908289092891028911289122891328914289152891628917289182891928920289212892228923289242892528926289272892828929289302893128932289332893428935289362893728938289392894028941289422894328944289452894628947289482894928950289512895228953289542895528956289572895828959289602896128962289632896428965289662896728968289692897028971289722897328974289752897628977289782897928980289812898228983289842898528986289872898828989289902899128992289932899428995289962899728998289992900029001290022900329004290052900629007290082900929010290112901229013290142901529016290172901829019290202902129022290232902429025290262902729028290292903029031290322903329034290352903629037290382903929040290412904229043290442904529046290472904829049290502905129052290532905429055290562905729058290592906029061290622906329064290652906629067290682906929070290712907229073290742907529076290772907829079290802908129082290832908429085290862908729088290892909029091290922909329094290952909629097290982909929100291012910229103291042910529106291072910829109291102911129112291132911429115291162911729118291192912029121291222912329124291252912629127291282912929130291312913229133291342913529136291372913829139291402914129142291432914429145291462914729148291492915029151291522915329154291552915629157291582915929160291612916229163291642916529166291672916829169291702917129172291732917429175291762917729178291792918029181291822918329184291852918629187291882918929190291912919229193291942919529196291972919829199292002920129202292032920429205292062920729208292092921029211292122921329214292152921629217292182921929220292212922229223292242922529226292272922829229292302923129232292332923429235292362923729238292392924029241292422924329244292452924629247292482924929250292512925229253292542925529256292572925829259292602926129262292632926429265292662926729268292692927029271292722927329274292752927629277292782927929280292812928229283292842928529286292872928829289292902929129292292932929429295292962929729298292992930029301293022930329304293052930629307293082930929310293112931229313293142931529316293172931829319293202932129322293232932429325293262932729328293292933029331293322933329334293352933629337293382933929340293412934229343293442934529346293472934829349293502935129352293532935429355293562935729358293592936029361293622936329364293652936629367293682936929370293712937229373293742937529376293772937829379293802938129382293832938429385293862938729388293892939029391293922939329394293952939629397293982939929400294012940229403294042940529406294072940829409294102941129412294132941429415294162941729418294192942029421294222942329424294252942629427294282942929430294312943229433294342943529436294372943829439294402944129442294432944429445294462944729448294492945029451294522945329454294552945629457294582945929460294612946229463294642946529466294672946829469294702947129472294732947429475294762947729478294792948029481294822948329484294852948629487294882948929490294912949229493294942949529496294972949829499295002950129502295032950429505295062950729508295092951029511295122951329514295152951629517295182951929520295212952229523295242952529526295272952829529295302953129532295332953429535295362953729538295392954029541295422954329544295452954629547295482954929550295512955229553295542955529556295572955829559295602956129562295632956429565295662956729568295692957029571295722957329574295752957629577295782957929580295812958229583295842958529586295872958829589295902959129592295932959429595295962959729598295992960029601296022960329604296052960629607296082960929610296112961229613296142961529616296172961829619296202962129622296232962429625296262962729628296292963029631296322963329634296352963629637296382963929640296412964229643296442964529646296472964829649296502965129652296532965429655296562965729658296592966029661296622966329664296652966629667296682966929670296712967229673296742967529676296772967829679296802968129682296832968429685296862968729688296892969029691296922969329694296952969629697296982969929700297012970229703297042970529706297072970829709297102971129712297132971429715297162971729718297192972029721297222972329724297252972629727297282972929730297312973229733297342973529736297372973829739297402974129742297432974429745297462974729748297492975029751297522975329754297552975629757297582975929760297612976229763297642976529766297672976829769297702977129772297732977429775297762977729778297792978029781297822978329784297852978629787297882978929790297912979229793297942979529796297972979829799298002980129802298032980429805298062980729808298092981029811298122981329814298152981629817298182981929820298212982229823298242982529826298272982829829298302983129832298332983429835298362983729838298392984029841298422984329844298452984629847298482984929850298512985229853298542985529856298572985829859298602986129862298632986429865298662986729868298692987029871298722987329874298752987629877298782987929880298812988229883298842988529886298872988829889298902989129892298932989429895298962989729898298992990029901299022990329904299052990629907299082990929910299112991229913299142991529916299172991829919299202992129922299232992429925299262992729928299292993029931299322993329934299352993629937299382993929940299412994229943299442994529946299472994829949299502995129952299532995429955299562995729958299592996029961299622996329964299652996629967299682996929970299712997229973299742997529976299772997829979299802998129982299832998429985299862998729988299892999029991299922999329994299952999629997299982999930000300013000230003300043000530006300073000830009300103001130012300133001430015300163001730018300193002030021300223002330024300253002630027300283002930030300313003230033300343003530036300373003830039300403004130042300433004430045300463004730048300493005030051300523005330054300553005630057300583005930060300613006230063300643006530066300673006830069300703007130072300733007430075300763007730078300793008030081300823008330084300853008630087300883008930090300913009230093300943009530096300973009830099301003010130102301033010430105301063010730108301093011030111301123011330114301153011630117301183011930120301213012230123301243012530126301273012830129301303013130132301333013430135301363013730138301393014030141301423014330144301453014630147301483014930150301513015230153301543015530156301573015830159301603016130162301633016430165301663016730168301693017030171301723017330174301753017630177301783017930180301813018230183301843018530186301873018830189301903019130192301933019430195301963019730198301993020030201302023020330204302053020630207302083020930210302113021230213302143021530216302173021830219302203022130222302233022430225302263022730228302293023030231302323023330234302353023630237302383023930240302413024230243302443024530246302473024830249302503025130252302533025430255302563025730258302593026030261302623026330264302653026630267302683026930270302713027230273302743027530276302773027830279302803028130282302833028430285302863028730288302893029030291302923029330294302953029630297302983029930300303013030230303303043030530306303073030830309303103031130312303133031430315303163031730318303193032030321303223032330324303253032630327303283032930330303313033230333303343033530336303373033830339303403034130342303433034430345303463034730348303493035030351303523035330354303553035630357303583035930360303613036230363303643036530366303673036830369303703037130372303733037430375303763037730378303793038030381303823038330384303853038630387303883038930390303913039230393303943039530396303973039830399304003040130402304033040430405304063040730408304093041030411304123041330414304153041630417304183041930420304213042230423304243042530426304273042830429304303043130432304333043430435304363043730438304393044030441304423044330444304453044630447304483044930450304513045230453304543045530456304573045830459304603046130462304633046430465304663046730468304693047030471304723047330474304753047630477304783047930480304813048230483304843048530486304873048830489304903049130492304933049430495304963049730498304993050030501305023050330504305053050630507305083050930510305113051230513305143051530516305173051830519305203052130522305233052430525305263052730528305293053030531305323053330534305353053630537305383053930540305413054230543305443054530546305473054830549305503055130552305533055430555305563055730558305593056030561305623056330564305653056630567305683056930570305713057230573305743057530576305773057830579305803058130582305833058430585305863058730588305893059030591305923059330594305953059630597305983059930600306013060230603306043060530606306073060830609306103061130612306133061430615306163061730618306193062030621306223062330624306253062630627306283062930630306313063230633306343063530636306373063830639306403064130642306433064430645306463064730648306493065030651306523065330654306553065630657306583065930660306613066230663306643066530666306673066830669306703067130672306733067430675306763067730678306793068030681306823068330684306853068630687306883068930690306913069230693306943069530696306973069830699307003070130702307033070430705307063070730708307093071030711307123071330714307153071630717307183071930720307213072230723307243072530726307273072830729307303073130732307333073430735307363073730738307393074030741307423074330744307453074630747307483074930750307513075230753307543075530756307573075830759307603076130762307633076430765307663076730768307693077030771307723077330774307753077630777307783077930780307813078230783307843078530786307873078830789307903079130792307933079430795307963079730798307993080030801308023080330804308053080630807308083080930810308113081230813308143081530816308173081830819308203082130822308233082430825308263082730828308293083030831308323083330834308353083630837308383083930840308413084230843308443084530846308473084830849308503085130852308533085430855308563085730858308593086030861308623086330864308653086630867308683086930870308713087230873308743087530876308773087830879308803088130882308833088430885308863088730888308893089030891308923089330894308953089630897308983089930900309013090230903309043090530906309073090830909309103091130912309133091430915309163091730918309193092030921309223092330924309253092630927309283092930930309313093230933309343093530936309373093830939309403094130942309433094430945309463094730948309493095030951309523095330954309553095630957309583095930960309613096230963309643096530966309673096830969309703097130972309733097430975309763097730978309793098030981309823098330984309853098630987309883098930990309913099230993309943099530996309973099830999310003100131002310033100431005310063100731008310093101031011310123101331014310153101631017310183101931020310213102231023310243102531026310273102831029310303103131032310333103431035310363103731038310393104031041310423104331044310453104631047310483104931050310513105231053310543105531056310573105831059310603106131062310633106431065310663106731068310693107031071310723107331074310753107631077310783107931080310813108231083310843108531086310873108831089310903109131092310933109431095310963109731098310993110031101311023110331104311053110631107311083110931110311113111231113311143111531116311173111831119311203112131122311233112431125311263112731128311293113031131311323113331134311353113631137311383113931140311413114231143311443114531146311473114831149311503115131152311533115431155311563115731158311593116031161311623116331164311653116631167311683116931170311713117231173311743117531176311773117831179311803118131182311833118431185311863118731188311893119031191311923119331194311953119631197311983119931200312013120231203312043120531206312073120831209312103121131212312133121431215312163121731218312193122031221312223122331224312253122631227312283122931230312313123231233312343123531236312373123831239312403124131242312433124431245312463124731248312493125031251312523125331254312553125631257312583125931260312613126231263312643126531266312673126831269312703127131272312733127431275312763127731278312793128031281312823128331284312853128631287312883128931290312913129231293312943129531296312973129831299313003130131302313033130431305313063130731308313093131031311313123131331314313153131631317313183131931320313213132231323313243132531326313273132831329313303133131332313333133431335313363133731338313393134031341313423134331344313453134631347313483134931350313513135231353313543135531356313573135831359313603136131362313633136431365313663136731368313693137031371313723137331374313753137631377313783137931380313813138231383313843138531386313873138831389313903139131392313933139431395313963139731398313993140031401314023140331404314053140631407314083140931410314113141231413314143141531416314173141831419314203142131422314233142431425314263142731428314293143031431314323143331434314353143631437314383143931440314413144231443314443144531446314473144831449314503145131452314533145431455314563145731458314593146031461314623146331464314653146631467314683146931470314713147231473314743147531476314773147831479314803148131482314833148431485314863148731488314893149031491314923149331494314953149631497314983149931500315013150231503315043150531506315073150831509315103151131512315133151431515315163151731518315193152031521315223152331524315253152631527315283152931530315313153231533315343153531536315373153831539315403154131542315433154431545315463154731548315493155031551315523155331554315553155631557315583155931560315613156231563315643156531566315673156831569315703157131572315733157431575315763157731578315793158031581315823158331584315853158631587315883158931590315913159231593315943159531596315973159831599316003160131602316033160431605316063160731608316093161031611316123161331614316153161631617316183161931620316213162231623316243162531626316273162831629316303163131632316333163431635316363163731638316393164031641316423164331644316453164631647316483164931650316513165231653316543165531656316573165831659316603166131662316633166431665316663166731668316693167031671316723167331674316753167631677316783167931680316813168231683316843168531686316873168831689316903169131692316933169431695316963169731698316993170031701317023170331704317053170631707317083170931710317113171231713317143171531716317173171831719317203172131722317233172431725317263172731728317293173031731317323173331734317353173631737317383173931740317413174231743317443174531746317473174831749317503175131752317533175431755317563175731758317593176031761317623176331764317653176631767317683176931770317713177231773317743177531776317773177831779317803178131782317833178431785317863178731788317893179031791317923179331794317953179631797317983179931800318013180231803318043180531806318073180831809318103181131812318133181431815318163181731818318193182031821318223182331824318253182631827318283182931830318313183231833318343183531836318373183831839318403184131842318433184431845318463184731848318493185031851318523185331854318553185631857318583185931860318613186231863318643186531866318673186831869318703187131872318733187431875318763187731878318793188031881318823188331884318853188631887318883188931890318913189231893318943189531896318973189831899319003190131902319033190431905319063190731908319093191031911319123191331914319153191631917319183191931920319213192231923319243192531926319273192831929319303193131932319333193431935319363193731938319393194031941319423194331944319453194631947319483194931950319513195231953319543195531956319573195831959319603196131962319633196431965319663196731968319693197031971319723197331974319753197631977319783197931980319813198231983319843198531986319873198831989319903199131992319933199431995319963199731998319993200032001320023200332004320053200632007320083200932010320113201232013320143201532016320173201832019320203202132022320233202432025320263202732028320293203032031320323203332034320353203632037320383203932040320413204232043320443204532046320473204832049320503205132052320533205432055320563205732058320593206032061320623206332064320653206632067320683206932070320713207232073320743207532076320773207832079320803208132082320833208432085320863208732088320893209032091320923209332094320953209632097320983209932100321013210232103321043210532106321073210832109321103211132112321133211432115321163211732118321193212032121321223212332124321253212632127321283212932130321313213232133321343213532136321373213832139321403214132142321433214432145321463214732148321493215032151321523215332154321553215632157321583215932160321613216232163321643216532166321673216832169321703217132172321733217432175321763217732178321793218032181321823218332184321853218632187321883218932190321913219232193321943219532196321973219832199322003220132202322033220432205322063220732208322093221032211322123221332214322153221632217322183221932220322213222232223322243222532226322273222832229322303223132232322333223432235322363223732238322393224032241322423224332244322453224632247322483224932250322513225232253322543225532256322573225832259322603226132262322633226432265322663226732268322693227032271322723227332274322753227632277322783227932280322813228232283322843228532286322873228832289322903229132292322933229432295322963229732298322993230032301323023230332304323053230632307323083230932310323113231232313323143231532316323173231832319323203232132322323233232432325323263232732328323293233032331323323233332334323353233632337323383233932340323413234232343323443234532346323473234832349323503235132352323533235432355323563235732358323593236032361323623236332364323653236632367323683236932370323713237232373323743237532376323773237832379323803238132382323833238432385323863238732388323893239032391323923239332394323953239632397323983239932400324013240232403324043240532406324073240832409324103241132412324133241432415324163241732418324193242032421324223242332424324253242632427324283242932430324313243232433324343243532436324373243832439324403244132442324433244432445324463244732448324493245032451324523245332454324553245632457324583245932460324613246232463324643246532466324673246832469324703247132472324733247432475324763247732478324793248032481324823248332484324853248632487324883248932490324913249232493324943249532496324973249832499325003250132502325033250432505325063250732508325093251032511325123251332514325153251632517325183251932520325213252232523325243252532526325273252832529325303253132532325333253432535325363253732538325393254032541325423254332544325453254632547325483254932550325513255232553325543255532556325573255832559325603256132562325633256432565325663256732568325693257032571325723257332574325753257632577325783257932580325813258232583325843258532586325873258832589325903259132592325933259432595325963259732598325993260032601326023260332604326053260632607326083260932610326113261232613326143261532616326173261832619326203262132622326233262432625326263262732628326293263032631326323263332634326353263632637326383263932640326413264232643326443264532646326473264832649326503265132652326533265432655326563265732658326593266032661326623266332664326653266632667326683266932670326713267232673326743267532676326773267832679326803268132682326833268432685326863268732688326893269032691326923269332694326953269632697326983269932700327013270232703327043270532706327073270832709327103271132712327133271432715327163271732718327193272032721327223272332724327253272632727327283272932730327313273232733327343273532736327373273832739327403274132742327433274432745327463274732748327493275032751327523275332754327553275632757327583275932760327613276232763327643276532766327673276832769327703277132772327733277432775327763277732778327793278032781327823278332784327853278632787327883278932790327913279232793327943279532796327973279832799328003280132802328033280432805328063280732808328093281032811328123281332814328153281632817328183281932820328213282232823328243282532826328273282832829328303283132832328333283432835328363283732838328393284032841328423284332844328453284632847328483284932850328513285232853328543285532856328573285832859328603286132862328633286432865328663286732868328693287032871328723287332874328753287632877328783287932880328813288232883328843288532886328873288832889328903289132892328933289432895328963289732898328993290032901329023290332904329053290632907329083290932910329113291232913329143291532916329173291832919329203292132922329233292432925329263292732928329293293032931329323293332934329353293632937329383293932940329413294232943329443294532946329473294832949329503295132952329533295432955329563295732958329593296032961329623296332964329653296632967329683296932970329713297232973329743297532976329773297832979329803298132982329833298432985329863298732988329893299032991329923299332994329953299632997329983299933000330013300233003330043300533006330073300833009330103301133012330133301433015330163301733018330193302033021330223302333024330253302633027330283302933030330313303233033330343303533036330373303833039330403304133042330433304433045330463304733048330493305033051330523305333054330553305633057330583305933060330613306233063330643306533066330673306833069330703307133072330733307433075330763307733078330793308033081330823308333084330853308633087330883308933090330913309233093330943309533096330973309833099331003310133102331033310433105331063310733108331093311033111331123311333114331153311633117331183311933120331213312233123331243312533126331273312833129331303313133132331333313433135331363313733138331393314033141331423314333144331453314633147331483314933150331513315233153331543315533156331573315833159331603316133162331633316433165331663316733168331693317033171331723317333174331753317633177331783317933180331813318233183331843318533186331873318833189331903319133192331933319433195331963319733198331993320033201332023320333204332053320633207332083320933210332113321233213332143321533216332173321833219332203322133222332233322433225332263322733228332293323033231332323323333234332353323633237332383323933240332413324233243332443324533246332473324833249332503325133252332533325433255332563325733258332593326033261332623326333264332653326633267332683326933270332713327233273332743327533276332773327833279332803328133282332833328433285332863328733288332893329033291332923329333294332953329633297332983329933300333013330233303333043330533306333073330833309333103331133312333133331433315333163331733318333193332033321333223332333324333253332633327333283332933330333313333233333333343333533336333373333833339333403334133342333433334433345333463334733348333493335033351333523335333354333553335633357333583335933360333613336233363333643336533366333673336833369333703337133372333733337433375333763337733378333793338033381333823338333384333853338633387333883338933390333913339233393333943339533396333973339833399334003340133402334033340433405334063340733408334093341033411334123341333414334153341633417334183341933420334213342233423334243342533426334273342833429334303343133432334333343433435334363343733438334393344033441334423344333444334453344633447334483344933450334513345233453334543345533456334573345833459334603346133462334633346433465334663346733468334693347033471334723347333474334753347633477334783347933480334813348233483334843348533486334873348833489334903349133492334933349433495334963349733498334993350033501335023350333504335053350633507335083350933510335113351233513335143351533516335173351833519335203352133522335233352433525335263352733528335293353033531335323353333534335353353633537335383353933540335413354233543335443354533546335473354833549335503355133552335533355433555335563355733558335593356033561335623356333564335653356633567335683356933570335713357233573335743357533576335773357833579335803358133582335833358433585335863358733588335893359033591335923359333594335953359633597335983359933600336013360233603336043360533606336073360833609336103361133612336133361433615336163361733618336193362033621336223362333624336253362633627336283362933630336313363233633336343363533636336373363833639336403364133642336433364433645336463364733648336493365033651336523365333654336553365633657336583365933660336613366233663336643366533666336673366833669336703367133672336733367433675336763367733678336793368033681336823368333684336853368633687336883368933690336913369233693336943369533696336973369833699337003370133702337033370433705337063370733708337093371033711337123371333714337153371633717337183371933720337213372233723337243372533726337273372833729337303373133732337333373433735337363373733738337393374033741337423374333744337453374633747337483374933750337513375233753337543375533756337573375833759337603376133762337633376433765337663376733768337693377033771337723377333774337753377633777337783377933780337813378233783337843378533786337873378833789337903379133792337933379433795337963379733798337993380033801338023380333804338053380633807338083380933810338113381233813338143381533816338173381833819338203382133822338233382433825338263382733828338293383033831338323383333834338353383633837338383383933840338413384233843338443384533846338473384833849338503385133852338533385433855338563385733858338593386033861338623386333864338653386633867338683386933870338713387233873338743387533876338773387833879338803388133882338833388433885338863388733888338893389033891338923389333894338953389633897338983389933900339013390233903339043390533906339073390833909339103391133912339133391433915339163391733918339193392033921339223392333924339253392633927339283392933930339313393233933339343393533936339373393833939339403394133942339433394433945339463394733948339493395033951339523395333954339553395633957339583395933960339613396233963339643396533966339673396833969339703397133972339733397433975339763397733978339793398033981339823398333984339853398633987339883398933990339913399233993339943399533996339973399833999340003400134002340033400434005340063400734008340093401034011340123401334014340153401634017340183401934020340213402234023340243402534026340273402834029340303403134032340333403434035340363403734038340393404034041340423404334044340453404634047340483404934050340513405234053340543405534056340573405834059340603406134062340633406434065340663406734068340693407034071340723407334074340753407634077340783407934080340813408234083340843408534086340873408834089340903409134092340933409434095340963409734098340993410034101341023410334104341053410634107341083410934110341113411234113341143411534116341173411834119341203412134122341233412434125341263412734128341293413034131341323413334134341353413634137341383413934140341413414234143341443414534146341473414834149341503415134152341533415434155341563415734158341593416034161341623416334164341653416634167341683416934170341713417234173341743417534176341773417834179341803418134182341833418434185341863418734188341893419034191341923419334194341953419634197341983419934200342013420234203342043420534206342073420834209342103421134212342133421434215342163421734218342193422034221342223422334224342253422634227342283422934230342313423234233342343423534236342373423834239342403424134242342433424434245342463424734248342493425034251342523425334254342553425634257342583425934260342613426234263342643426534266342673426834269342703427134272342733427434275342763427734278342793428034281342823428334284342853428634287342883428934290342913429234293342943429534296342973429834299343003430134302343033430434305343063430734308343093431034311343123431334314343153431634317343183431934320343213432234323343243432534326343273432834329343303433134332343333433434335343363433734338343393434034341343423434334344343453434634347343483434934350343513435234353343543435534356343573435834359343603436134362343633436434365343663436734368343693437034371343723437334374343753437634377343783437934380343813438234383343843438534386343873438834389343903439134392343933439434395343963439734398343993440034401344023440334404344053440634407344083440934410344113441234413344143441534416344173441834419344203442134422344233442434425344263442734428344293443034431344323443334434344353443634437344383443934440344413444234443344443444534446344473444834449344503445134452344533445434455344563445734458344593446034461344623446334464344653446634467344683446934470344713447234473344743447534476344773447834479344803448134482344833448434485344863448734488344893449034491344923449334494344953449634497344983449934500345013450234503345043450534506345073450834509345103451134512345133451434515345163451734518345193452034521345223452334524345253452634527345283452934530345313453234533345343453534536345373453834539345403454134542345433454434545345463454734548345493455034551345523455334554345553455634557345583455934560345613456234563345643456534566345673456834569345703457134572345733457434575345763457734578345793458034581345823458334584345853458634587345883458934590345913459234593345943459534596345973459834599346003460134602346033460434605346063460734608346093461034611346123461334614346153461634617346183461934620346213462234623346243462534626346273462834629346303463134632346333463434635346363463734638346393464034641346423464334644346453464634647346483464934650346513465234653346543465534656346573465834659346603466134662346633466434665346663466734668346693467034671346723467334674346753467634677346783467934680346813468234683346843468534686346873468834689346903469134692346933469434695346963469734698346993470034701347023470334704347053470634707347083470934710347113471234713347143471534716347173471834719347203472134722347233472434725347263472734728347293473034731347323473334734347353473634737347383473934740347413474234743347443474534746347473474834749347503475134752347533475434755347563475734758347593476034761347623476334764347653476634767347683476934770347713477234773347743477534776347773477834779347803478134782347833478434785347863478734788347893479034791347923479334794347953479634797347983479934800348013480234803348043480534806348073480834809348103481134812348133481434815348163481734818348193482034821348223482334824348253482634827348283482934830348313483234833348343483534836348373483834839348403484134842348433484434845348463484734848348493485034851348523485334854348553485634857348583485934860348613486234863348643486534866348673486834869348703487134872348733487434875348763487734878348793488034881348823488334884348853488634887348883488934890348913489234893348943489534896348973489834899349003490134902349033490434905349063490734908349093491034911349123491334914349153491634917349183491934920349213492234923349243492534926349273492834929349303493134932349333493434935349363493734938349393494034941349423494334944349453494634947349483494934950349513495234953349543495534956349573495834959349603496134962349633496434965349663496734968349693497034971349723497334974349753497634977349783497934980349813498234983349843498534986349873498834989349903499134992349933499434995349963499734998349993500035001350023500335004350053500635007350083500935010350113501235013350143501535016350173501835019350203502135022350233502435025350263502735028350293503035031350323503335034350353503635037350383503935040350413504235043350443504535046350473504835049350503505135052350533505435055350563505735058350593506035061350623506335064350653506635067350683506935070350713507235073350743507535076350773507835079350803508135082350833508435085350863508735088350893509035091350923509335094350953509635097350983509935100351013510235103351043510535106351073510835109351103511135112351133511435115351163511735118351193512035121351223512335124351253512635127351283512935130351313513235133351343513535136351373513835139351403514135142351433514435145351463514735148351493515035151351523515335154351553515635157351583515935160351613516235163351643516535166351673516835169351703517135172351733517435175351763517735178351793518035181351823518335184351853518635187351883518935190351913519235193351943519535196351973519835199352003520135202352033520435205352063520735208352093521035211352123521335214352153521635217352183521935220352213522235223352243522535226352273522835229352303523135232352333523435235352363523735238352393524035241352423524335244352453524635247352483524935250352513525235253352543525535256352573525835259352603526135262352633526435265352663526735268352693527035271352723527335274352753527635277352783527935280352813528235283352843528535286352873528835289352903529135292352933529435295352963529735298352993530035301353023530335304353053530635307353083530935310353113531235313353143531535316353173531835319353203532135322353233532435325353263532735328353293533035331353323533335334353353533635337353383533935340353413534235343353443534535346353473534835349353503535135352353533535435355353563535735358353593536035361353623536335364353653536635367353683536935370353713537235373353743537535376353773537835379353803538135382353833538435385353863538735388353893539035391353923539335394353953539635397353983539935400354013540235403354043540535406354073540835409354103541135412354133541435415354163541735418354193542035421354223542335424354253542635427354283542935430354313543235433354343543535436354373543835439354403544135442354433544435445354463544735448354493545035451354523545335454354553545635457354583545935460354613546235463354643546535466354673546835469354703547135472354733547435475354763547735478354793548035481354823548335484354853548635487354883548935490354913549235493354943549535496354973549835499355003550135502355033550435505355063550735508355093551035511355123551335514355153551635517355183551935520355213552235523355243552535526355273552835529355303553135532355333553435535355363553735538355393554035541355423554335544355453554635547355483554935550355513555235553355543555535556355573555835559355603556135562355633556435565355663556735568355693557035571355723557335574355753557635577355783557935580355813558235583355843558535586355873558835589355903559135592355933559435595355963559735598355993560035601356023560335604356053560635607356083560935610356113561235613356143561535616356173561835619356203562135622356233562435625356263562735628356293563035631356323563335634356353563635637356383563935640356413564235643356443564535646356473564835649356503565135652356533565435655356563565735658356593566035661356623566335664356653566635667356683566935670356713567235673356743567535676356773567835679356803568135682356833568435685356863568735688356893569035691356923569335694356953569635697356983569935700357013570235703357043570535706357073570835709357103571135712357133571435715357163571735718357193572035721357223572335724357253572635727357283572935730357313573235733357343573535736357373573835739357403574135742357433574435745357463574735748357493575035751357523575335754357553575635757357583575935760357613576235763357643576535766357673576835769357703577135772357733577435775357763577735778357793578035781357823578335784357853578635787357883578935790357913579235793357943579535796357973579835799358003580135802358033580435805358063580735808358093581035811358123581335814358153581635817358183581935820358213582235823358243582535826358273582835829358303583135832358333583435835358363583735838358393584035841358423584335844358453584635847358483584935850358513585235853358543585535856358573585835859358603586135862358633586435865358663586735868358693587035871358723587335874358753587635877358783587935880358813588235883358843588535886358873588835889358903589135892358933589435895358963589735898358993590035901359023590335904359053590635907359083590935910359113591235913359143591535916359173591835919359203592135922359233592435925359263592735928359293593035931359323593335934359353593635937359383593935940359413594235943359443594535946359473594835949359503595135952359533595435955359563595735958359593596035961359623596335964359653596635967359683596935970359713597235973359743597535976359773597835979359803598135982359833598435985359863598735988359893599035991359923599335994359953599635997359983599936000360013600236003360043600536006360073600836009360103601136012360133601436015360163601736018360193602036021360223602336024360253602636027360283602936030360313603236033360343603536036360373603836039360403604136042360433604436045360463604736048360493605036051360523605336054360553605636057360583605936060360613606236063360643606536066360673606836069360703607136072360733607436075360763607736078360793608036081360823608336084360853608636087360883608936090360913609236093360943609536096360973609836099361003610136102361033610436105361063610736108361093611036111361123611336114361153611636117361183611936120361213612236123361243612536126361273612836129361303613136132361333613436135361363613736138361393614036141361423614336144361453614636147361483614936150361513615236153361543615536156361573615836159361603616136162361633616436165361663616736168361693617036171361723617336174361753617636177361783617936180361813618236183361843618536186361873618836189361903619136192361933619436195361963619736198361993620036201362023620336204362053620636207362083620936210362113621236213362143621536216362173621836219362203622136222362233622436225362263622736228362293623036231362323623336234362353623636237362383623936240362413624236243362443624536246362473624836249362503625136252362533625436255362563625736258362593626036261362623626336264362653626636267362683626936270362713627236273362743627536276362773627836279362803628136282362833628436285362863628736288362893629036291362923629336294362953629636297362983629936300363013630236303363043630536306363073630836309363103631136312363133631436315363163631736318363193632036321363223632336324363253632636327363283632936330363313633236333363343633536336363373633836339363403634136342363433634436345363463634736348363493635036351363523635336354363553635636357363583635936360363613636236363363643636536366363673636836369363703637136372363733637436375363763637736378363793638036381363823638336384363853638636387363883638936390363913639236393363943639536396363973639836399364003640136402364033640436405364063640736408364093641036411364123641336414364153641636417364183641936420364213642236423364243642536426364273642836429364303643136432364333643436435364363643736438364393644036441364423644336444364453644636447364483644936450364513645236453364543645536456364573645836459364603646136462364633646436465364663646736468364693647036471364723647336474364753647636477364783647936480364813648236483364843648536486364873648836489364903649136492364933649436495364963649736498364993650036501365023650336504365053650636507365083650936510365113651236513365143651536516365173651836519365203652136522365233652436525365263652736528365293653036531365323653336534365353653636537365383653936540365413654236543365443654536546365473654836549365503655136552365533655436555365563655736558365593656036561365623656336564365653656636567365683656936570365713657236573365743657536576365773657836579365803658136582365833658436585365863658736588365893659036591365923659336594365953659636597365983659936600366013660236603366043660536606366073660836609366103661136612366133661436615366163661736618366193662036621366223662336624366253662636627366283662936630366313663236633366343663536636366373663836639366403664136642366433664436645366463664736648366493665036651366523665336654366553665636657366583665936660366613666236663366643666536666366673666836669366703667136672366733667436675366763667736678366793668036681366823668336684366853668636687366883668936690366913669236693366943669536696366973669836699367003670136702367033670436705367063670736708367093671036711367123671336714367153671636717367183671936720367213672236723367243672536726367273672836729367303673136732367333673436735367363673736738367393674036741367423674336744367453674636747367483674936750367513675236753367543675536756367573675836759367603676136762367633676436765367663676736768367693677036771367723677336774367753677636777367783677936780367813678236783367843678536786367873678836789367903679136792367933679436795367963679736798367993680036801368023680336804368053680636807368083680936810368113681236813368143681536816368173681836819368203682136822368233682436825368263682736828368293683036831368323683336834368353683636837368383683936840368413684236843368443684536846368473684836849368503685136852368533685436855368563685736858368593686036861368623686336864368653686636867368683686936870368713687236873368743687536876368773687836879368803688136882368833688436885368863688736888368893689036891368923689336894368953689636897368983689936900369013690236903369043690536906369073690836909369103691136912369133691436915369163691736918369193692036921369223692336924369253692636927369283692936930369313693236933369343693536936369373693836939369403694136942369433694436945369463694736948369493695036951369523695336954369553695636957369583695936960369613696236963369643696536966369673696836969369703697136972369733697436975369763697736978369793698036981369823698336984369853698636987369883698936990369913699236993369943699536996369973699836999370003700137002370033700437005370063700737008370093701037011370123701337014370153701637017370183701937020370213702237023370243702537026370273702837029370303703137032370333703437035370363703737038370393704037041370423704337044370453704637047370483704937050370513705237053370543705537056370573705837059370603706137062370633706437065370663706737068370693707037071370723707337074370753707637077370783707937080370813708237083370843708537086370873708837089370903709137092370933709437095370963709737098370993710037101371023710337104371053710637107371083710937110371113711237113371143711537116371173711837119371203712137122371233712437125371263712737128371293713037131371323713337134371353713637137371383713937140371413714237143371443714537146371473714837149371503715137152371533715437155371563715737158371593716037161371623716337164371653716637167371683716937170371713717237173371743717537176371773717837179371803718137182371833718437185371863718737188371893719037191371923719337194371953719637197371983719937200372013720237203372043720537206372073720837209372103721137212372133721437215372163721737218372193722037221372223722337224372253722637227372283722937230372313723237233372343723537236372373723837239372403724137242372433724437245372463724737248372493725037251372523725337254372553725637257372583725937260372613726237263372643726537266372673726837269372703727137272372733727437275372763727737278372793728037281372823728337284372853728637287372883728937290372913729237293372943729537296372973729837299373003730137302373033730437305373063730737308373093731037311373123731337314373153731637317373183731937320373213732237323373243732537326373273732837329373303733137332373333733437335373363733737338373393734037341373423734337344373453734637347373483734937350373513735237353373543735537356373573735837359373603736137362373633736437365373663736737368373693737037371373723737337374373753737637377373783737937380373813738237383373843738537386373873738837389373903739137392373933739437395373963739737398373993740037401374023740337404374053740637407374083740937410374113741237413374143741537416374173741837419374203742137422374233742437425374263742737428374293743037431374323743337434374353743637437374383743937440374413744237443374443744537446374473744837449374503745137452374533745437455374563745737458374593746037461374623746337464374653746637467374683746937470374713747237473374743747537476374773747837479374803748137482374833748437485374863748737488374893749037491374923749337494374953749637497374983749937500375013750237503375043750537506375073750837509375103751137512375133751437515375163751737518375193752037521375223752337524375253752637527375283752937530375313753237533375343753537536375373753837539375403754137542375433754437545375463754737548375493755037551375523755337554375553755637557375583755937560375613756237563375643756537566375673756837569375703757137572375733757437575375763757737578375793758037581375823758337584375853758637587375883758937590375913759237593375943759537596375973759837599376003760137602376033760437605376063760737608376093761037611376123761337614376153761637617376183761937620376213762237623376243762537626376273762837629376303763137632376333763437635376363763737638376393764037641376423764337644376453764637647376483764937650376513765237653376543765537656376573765837659376603766137662376633766437665376663766737668376693767037671376723767337674376753767637677376783767937680376813768237683376843768537686376873768837689376903769137692376933769437695376963769737698376993770037701377023770337704377053770637707377083770937710377113771237713377143771537716377173771837719377203772137722377233772437725377263772737728377293773037731377323773337734377353773637737377383773937740377413774237743377443774537746377473774837749377503775137752377533775437755377563775737758377593776037761377623776337764377653776637767377683776937770377713777237773377743777537776377773777837779377803778137782377833778437785377863778737788377893779037791377923779337794377953779637797377983779937800378013780237803378043780537806378073780837809378103781137812378133781437815378163781737818378193782037821378223782337824378253782637827378283782937830378313783237833378343783537836378373783837839378403784137842378433784437845378463784737848378493785037851378523785337854378553785637857378583785937860378613786237863378643786537866378673786837869378703787137872378733787437875378763787737878378793788037881378823788337884378853788637887378883788937890378913789237893378943789537896378973789837899379003790137902379033790437905379063790737908379093791037911379123791337914379153791637917379183791937920379213792237923379243792537926379273792837929379303793137932379333793437935379363793737938379393794037941379423794337944379453794637947379483794937950379513795237953379543795537956379573795837959379603796137962379633796437965379663796737968379693797037971379723797337974379753797637977379783797937980379813798237983379843798537986379873798837989379903799137992379933799437995379963799737998379993800038001380023800338004380053800638007380083800938010380113801238013380143801538016380173801838019380203802138022380233802438025380263802738028380293803038031380323803338034380353803638037380383803938040380413804238043380443804538046380473804838049380503805138052380533805438055380563805738058380593806038061380623806338064380653806638067380683806938070380713807238073380743807538076380773807838079380803808138082380833808438085380863808738088380893809038091380923809338094380953809638097380983809938100381013810238103381043810538106381073810838109381103811138112381133811438115381163811738118381193812038121381223812338124381253812638127381283812938130381313813238133381343813538136381373813838139381403814138142381433814438145381463814738148381493815038151381523815338154381553815638157381583815938160381613816238163381643816538166381673816838169381703817138172381733817438175381763817738178381793818038181381823818338184381853818638187381883818938190381913819238193381943819538196381973819838199382003820138202382033820438205382063820738208382093821038211382123821338214382153821638217382183821938220382213822238223382243822538226382273822838229382303823138232382333823438235382363823738238382393824038241382423824338244382453824638247382483824938250382513825238253382543825538256382573825838259382603826138262382633826438265382663826738268382693827038271382723827338274382753827638277382783827938280382813828238283382843828538286382873828838289382903829138292382933829438295382963829738298382993830038301383023830338304383053830638307383083830938310383113831238313383143831538316383173831838319383203832138322383233832438325383263832738328383293833038331383323833338334383353833638337383383833938340383413834238343383443834538346383473834838349383503835138352383533835438355383563835738358383593836038361383623836338364383653836638367383683836938370383713837238373383743837538376383773837838379383803838138382383833838438385383863838738388383893839038391383923839338394383953839638397383983839938400384013840238403384043840538406384073840838409384103841138412384133841438415384163841738418384193842038421384223842338424384253842638427384283842938430384313843238433384343843538436384373843838439384403844138442384433844438445384463844738448384493845038451384523845338454384553845638457384583845938460384613846238463384643846538466384673846838469384703847138472384733847438475384763847738478384793848038481384823848338484384853848638487384883848938490384913849238493384943849538496384973849838499385003850138502385033850438505385063850738508385093851038511385123851338514385153851638517385183851938520385213852238523385243852538526385273852838529385303853138532385333853438535385363853738538385393854038541385423854338544385453854638547385483854938550385513855238553385543855538556385573855838559385603856138562385633856438565385663856738568385693857038571385723857338574385753857638577385783857938580385813858238583385843858538586385873858838589385903859138592385933859438595385963859738598385993860038601386023860338604386053860638607386083860938610386113861238613386143861538616386173861838619386203862138622386233862438625386263862738628386293863038631386323863338634386353863638637386383863938640386413864238643386443864538646386473864838649386503865138652386533865438655386563865738658386593866038661386623866338664386653866638667386683866938670386713867238673386743867538676386773867838679386803868138682386833868438685386863868738688386893869038691386923869338694386953869638697386983869938700387013870238703387043870538706387073870838709387103871138712387133871438715387163871738718387193872038721387223872338724387253872638727387283872938730387313873238733387343873538736387373873838739387403874138742387433874438745387463874738748387493875038751387523875338754387553875638757387583875938760387613876238763387643876538766387673876838769387703877138772387733877438775387763877738778387793878038781387823878338784387853878638787387883878938790387913879238793387943879538796387973879838799388003880138802388033880438805388063880738808388093881038811388123881338814388153881638817388183881938820388213882238823388243882538826388273882838829388303883138832388333883438835388363883738838388393884038841388423884338844388453884638847388483884938850388513885238853388543885538856388573885838859388603886138862388633886438865388663886738868388693887038871388723887338874388753887638877388783887938880388813888238883388843888538886388873888838889388903889138892388933889438895388963889738898388993890038901389023890338904389053890638907389083890938910389113891238913389143891538916389173891838919389203892138922389233892438925389263892738928389293893038931389323893338934389353893638937389383893938940389413894238943389443894538946389473894838949389503895138952389533895438955389563895738958389593896038961389623896338964389653896638967389683896938970389713897238973389743897538976389773897838979389803898138982389833898438985389863898738988389893899038991389923899338994389953899638997389983899939000390013900239003390043900539006390073900839009390103901139012390133901439015390163901739018390193902039021390223902339024390253902639027390283902939030390313903239033390343903539036390373903839039390403904139042390433904439045390463904739048390493905039051390523905339054390553905639057390583905939060390613906239063390643906539066390673906839069390703907139072390733907439075390763907739078390793908039081390823908339084390853908639087390883908939090390913909239093390943909539096390973909839099391003910139102391033910439105391063910739108391093911039111391123911339114391153911639117391183911939120391213912239123391243912539126391273912839129391303913139132391333913439135391363913739138391393914039141391423914339144391453914639147391483914939150391513915239153391543915539156391573915839159391603916139162391633916439165391663916739168391693917039171391723917339174391753917639177391783917939180391813918239183391843918539186391873918839189391903919139192391933919439195391963919739198391993920039201392023920339204392053920639207392083920939210392113921239213392143921539216392173921839219392203922139222392233922439225392263922739228392293923039231392323923339234392353923639237392383923939240392413924239243392443924539246392473924839249392503925139252392533925439255392563925739258392593926039261392623926339264392653926639267392683926939270392713927239273392743927539276392773927839279392803928139282392833928439285392863928739288392893929039291392923929339294392953929639297392983929939300393013930239303393043930539306393073930839309393103931139312393133931439315393163931739318393193932039321393223932339324393253932639327393283932939330393313933239333393343933539336393373933839339393403934139342393433934439345393463934739348393493935039351393523935339354393553935639357393583935939360393613936239363393643936539366393673936839369393703937139372393733937439375393763937739378393793938039381393823938339384393853938639387393883938939390393913939239393393943939539396393973939839399394003940139402394033940439405394063940739408394093941039411394123941339414394153941639417394183941939420394213942239423394243942539426394273942839429394303943139432394333943439435394363943739438394393944039441394423944339444394453944639447394483944939450394513945239453394543945539456394573945839459394603946139462394633946439465394663946739468394693947039471394723947339474394753947639477394783947939480394813948239483394843948539486394873948839489394903949139492394933949439495394963949739498394993950039501395023950339504395053950639507395083950939510395113951239513395143951539516395173951839519395203952139522395233952439525395263952739528395293953039531395323953339534395353953639537395383953939540395413954239543395443954539546395473954839549395503955139552395533955439555395563955739558395593956039561395623956339564395653956639567395683956939570395713957239573395743957539576395773957839579395803958139582395833958439585395863958739588395893959039591395923959339594395953959639597395983959939600396013960239603396043960539606396073960839609396103961139612396133961439615396163961739618396193962039621396223962339624396253962639627396283962939630396313963239633396343963539636396373963839639396403964139642396433964439645396463964739648396493965039651396523965339654396553965639657396583965939660396613966239663396643966539666396673966839669396703967139672396733967439675396763967739678396793968039681396823968339684396853968639687396883968939690396913969239693396943969539696396973969839699397003970139702397033970439705397063970739708397093971039711397123971339714397153971639717397183971939720397213972239723397243972539726397273972839729397303973139732397333973439735397363973739738397393974039741397423974339744397453974639747397483974939750397513975239753397543975539756397573975839759397603976139762397633976439765397663976739768397693977039771397723977339774397753977639777397783977939780397813978239783397843978539786397873978839789397903979139792397933979439795397963979739798397993980039801398023980339804398053980639807398083980939810398113981239813398143981539816398173981839819398203982139822398233982439825398263982739828398293983039831398323983339834398353983639837398383983939840398413984239843398443984539846398473984839849398503985139852398533985439855398563985739858398593986039861398623986339864398653986639867398683986939870398713987239873398743987539876398773987839879398803988139882398833988439885398863988739888398893989039891398923989339894398953989639897398983989939900399013990239903399043990539906399073990839909399103991139912399133991439915399163991739918399193992039921399223992339924399253992639927399283992939930399313993239933399343993539936399373993839939399403994139942399433994439945399463994739948399493995039951399523995339954399553995639957399583995939960399613996239963399643996539966399673996839969399703997139972399733997439975399763997739978399793998039981399823998339984399853998639987399883998939990399913999239993399943999539996399973999839999400004000140002400034000440005400064000740008400094001040011400124001340014400154001640017400184001940020400214002240023400244002540026400274002840029400304003140032400334003440035400364003740038400394004040041400424004340044400454004640047400484004940050400514005240053400544005540056400574005840059400604006140062400634006440065400664006740068400694007040071400724007340074400754007640077400784007940080400814008240083400844008540086400874008840089400904009140092400934009440095400964009740098400994010040101401024010340104401054010640107401084010940110401114011240113401144011540116401174011840119401204012140122401234012440125401264012740128401294013040131401324013340134401354013640137401384013940140401414014240143401444014540146401474014840149401504015140152401534015440155401564015740158401594016040161401624016340164401654016640167401684016940170401714017240173401744017540176401774017840179401804018140182401834018440185401864018740188401894019040191401924019340194401954019640197401984019940200402014020240203402044020540206402074020840209402104021140212402134021440215402164021740218402194022040221402224022340224402254022640227402284022940230402314023240233402344023540236402374023840239402404024140242402434024440245402464024740248402494025040251402524025340254402554025640257402584025940260402614026240263402644026540266402674026840269402704027140272402734027440275402764027740278402794028040281402824028340284402854028640287402884028940290402914029240293402944029540296402974029840299403004030140302403034030440305403064030740308403094031040311403124031340314403154031640317403184031940320403214032240323403244032540326403274032840329403304033140332403334033440335403364033740338403394034040341403424034340344403454034640347403484034940350403514035240353403544035540356403574035840359403604036140362403634036440365403664036740368403694037040371403724037340374403754037640377403784037940380403814038240383403844038540386403874038840389403904039140392403934039440395403964039740398403994040040401404024040340404404054040640407404084040940410404114041240413404144041540416404174041840419404204042140422404234042440425404264042740428404294043040431404324043340434404354043640437404384043940440404414044240443404444044540446404474044840449404504045140452404534045440455404564045740458404594046040461404624046340464404654046640467404684046940470404714047240473404744047540476404774047840479404804048140482404834048440485404864048740488404894049040491404924049340494404954049640497404984049940500405014050240503405044050540506405074050840509405104051140512405134051440515405164051740518405194052040521405224052340524405254052640527405284052940530405314053240533405344053540536405374053840539405404054140542405434054440545405464054740548405494055040551405524055340554405554055640557405584055940560405614056240563405644056540566405674056840569405704057140572405734057440575405764057740578405794058040581405824058340584405854058640587405884058940590405914059240593405944059540596405974059840599406004060140602406034060440605406064060740608406094061040611406124061340614406154061640617406184061940620406214062240623406244062540626406274062840629406304063140632406334063440635406364063740638406394064040641406424064340644406454064640647406484064940650406514065240653406544065540656406574065840659406604066140662406634066440665406664066740668406694067040671406724067340674406754067640677406784067940680406814068240683406844068540686406874068840689406904069140692406934069440695406964069740698406994070040701407024070340704407054070640707407084070940710407114071240713407144071540716407174071840719407204072140722407234072440725407264072740728407294073040731407324073340734407354073640737407384073940740407414074240743407444074540746407474074840749407504075140752407534075440755407564075740758407594076040761407624076340764407654076640767407684076940770407714077240773407744077540776407774077840779407804078140782407834078440785407864078740788407894079040791407924079340794407954079640797407984079940800408014080240803408044080540806408074080840809408104081140812408134081440815408164081740818408194082040821408224082340824408254082640827408284082940830408314083240833408344083540836408374083840839408404084140842408434084440845408464084740848408494085040851408524085340854408554085640857408584085940860408614086240863408644086540866408674086840869408704087140872408734087440875408764087740878408794088040881408824088340884408854088640887408884088940890408914089240893408944089540896408974089840899409004090140902409034090440905409064090740908409094091040911409124091340914409154091640917409184091940920409214092240923409244092540926409274092840929409304093140932409334093440935409364093740938409394094040941409424094340944409454094640947409484094940950409514095240953409544095540956409574095840959409604096140962409634096440965409664096740968409694097040971409724097340974409754097640977409784097940980409814098240983409844098540986409874098840989409904099140992409934099440995409964099740998409994100041001410024100341004410054100641007410084100941010410114101241013410144101541016410174101841019410204102141022410234102441025410264102741028410294103041031410324103341034410354103641037410384103941040410414104241043410444104541046410474104841049410504105141052410534105441055410564105741058410594106041061410624106341064410654106641067410684106941070410714107241073410744107541076410774107841079410804108141082410834108441085410864108741088410894109041091410924109341094410954109641097410984109941100411014110241103411044110541106411074110841109411104111141112411134111441115411164111741118411194112041121411224112341124411254112641127411284112941130411314113241133411344113541136411374113841139411404114141142411434114441145411464114741148411494115041151411524115341154411554115641157411584115941160411614116241163411644116541166411674116841169411704117141172411734117441175411764117741178411794118041181411824118341184411854118641187411884118941190411914119241193411944119541196411974119841199412004120141202412034120441205412064120741208412094121041211412124121341214412154121641217412184121941220412214122241223412244122541226412274122841229412304123141232412334123441235412364123741238412394124041241412424124341244412454124641247412484124941250412514125241253412544125541256412574125841259412604126141262412634126441265412664126741268412694127041271412724127341274412754127641277412784127941280412814128241283412844128541286412874128841289412904129141292412934129441295412964129741298412994130041301413024130341304413054130641307413084130941310413114131241313413144131541316413174131841319413204132141322413234132441325413264132741328413294133041331413324133341334413354133641337413384133941340413414134241343413444134541346413474134841349413504135141352413534135441355413564135741358413594136041361413624136341364413654136641367413684136941370413714137241373413744137541376413774137841379413804138141382413834138441385413864138741388413894139041391413924139341394413954139641397413984139941400414014140241403414044140541406414074140841409414104141141412414134141441415414164141741418414194142041421414224142341424414254142641427414284142941430414314143241433414344143541436414374143841439414404144141442414434144441445414464144741448414494145041451414524145341454414554145641457414584145941460414614146241463414644146541466414674146841469414704147141472414734147441475414764147741478414794148041481414824148341484414854148641487414884148941490414914149241493414944149541496414974149841499415004150141502415034150441505415064150741508415094151041511415124151341514415154151641517415184151941520415214152241523415244152541526415274152841529415304153141532415334153441535415364153741538415394154041541415424154341544415454154641547415484154941550415514155241553415544155541556415574155841559415604156141562415634156441565415664156741568415694157041571415724157341574415754157641577415784157941580415814158241583415844158541586415874158841589415904159141592415934159441595415964159741598415994160041601416024160341604416054160641607416084160941610416114161241613416144161541616416174161841619416204162141622416234162441625416264162741628416294163041631416324163341634416354163641637416384163941640416414164241643416444164541646416474164841649416504165141652416534165441655416564165741658416594166041661416624166341664416654166641667416684166941670416714167241673416744167541676416774167841679416804168141682416834168441685416864168741688416894169041691416924169341694416954169641697416984169941700417014170241703417044170541706417074170841709417104171141712417134171441715417164171741718417194172041721417224172341724417254172641727417284172941730417314173241733417344173541736417374173841739417404174141742417434174441745417464174741748417494175041751417524175341754417554175641757417584175941760417614176241763417644176541766417674176841769417704177141772417734177441775417764177741778417794178041781417824178341784417854178641787417884178941790417914179241793417944179541796417974179841799418004180141802418034180441805418064180741808418094181041811418124181341814418154181641817418184181941820418214182241823418244182541826418274182841829418304183141832418334183441835418364183741838418394184041841418424184341844418454184641847418484184941850418514185241853418544185541856418574185841859418604186141862418634186441865418664186741868418694187041871418724187341874418754187641877418784187941880418814188241883418844188541886418874188841889418904189141892418934189441895418964189741898418994190041901419024190341904419054190641907419084190941910419114191241913419144191541916419174191841919419204192141922419234192441925419264192741928419294193041931419324193341934419354193641937419384193941940419414194241943419444194541946419474194841949419504195141952419534195441955419564195741958419594196041961419624196341964419654196641967419684196941970419714197241973419744197541976419774197841979419804198141982419834198441985419864198741988419894199041991419924199341994419954199641997419984199942000420014200242003420044200542006420074200842009420104201142012420134201442015420164201742018420194202042021420224202342024420254202642027420284202942030420314203242033420344203542036420374203842039420404204142042420434204442045420464204742048420494205042051420524205342054420554205642057420584205942060420614206242063420644206542066420674206842069420704207142072420734207442075420764207742078420794208042081420824208342084420854208642087420884208942090420914209242093420944209542096420974209842099421004210142102421034210442105421064210742108421094211042111421124211342114421154211642117421184211942120421214212242123421244212542126421274212842129421304213142132421334213442135421364213742138421394214042141421424214342144421454214642147421484214942150421514215242153421544215542156421574215842159421604216142162421634216442165421664216742168421694217042171421724217342174421754217642177421784217942180421814218242183421844218542186421874218842189421904219142192421934219442195421964219742198421994220042201422024220342204422054220642207422084220942210422114221242213422144221542216422174221842219422204222142222422234222442225422264222742228422294223042231422324223342234422354223642237422384223942240422414224242243422444224542246422474224842249422504225142252422534225442255422564225742258422594226042261422624226342264422654226642267422684226942270422714227242273422744227542276422774227842279422804228142282422834228442285422864228742288422894229042291422924229342294422954229642297422984229942300423014230242303423044230542306423074230842309423104231142312423134231442315423164231742318423194232042321423224232342324423254232642327423284232942330423314233242333423344233542336423374233842339423404234142342423434234442345423464234742348423494235042351423524235342354423554235642357423584235942360423614236242363423644236542366423674236842369423704237142372423734237442375423764237742378423794238042381423824238342384423854238642387423884238942390423914239242393423944239542396423974239842399424004240142402424034240442405424064240742408424094241042411424124241342414424154241642417424184241942420424214242242423424244242542426424274242842429424304243142432424334243442435424364243742438424394244042441424424244342444424454244642447424484244942450424514245242453424544245542456424574245842459424604246142462424634246442465424664246742468424694247042471424724247342474424754247642477424784247942480424814248242483424844248542486424874248842489424904249142492424934249442495424964249742498424994250042501425024250342504425054250642507425084250942510425114251242513425144251542516425174251842519425204252142522425234252442525425264252742528425294253042531425324253342534425354253642537425384253942540425414254242543425444254542546425474254842549425504255142552425534255442555425564255742558425594256042561425624256342564425654256642567425684256942570425714257242573425744257542576425774257842579425804258142582425834258442585425864258742588425894259042591425924259342594425954259642597425984259942600426014260242603426044260542606426074260842609426104261142612426134261442615426164261742618426194262042621426224262342624426254262642627426284262942630426314263242633426344263542636426374263842639426404264142642426434264442645426464264742648426494265042651426524265342654426554265642657426584265942660426614266242663426644266542666426674266842669426704267142672426734267442675426764267742678426794268042681426824268342684426854268642687426884268942690426914269242693426944269542696426974269842699427004270142702427034270442705427064270742708427094271042711427124271342714427154271642717427184271942720427214272242723427244272542726427274272842729427304273142732427334273442735427364273742738427394274042741427424274342744427454274642747427484274942750427514275242753427544275542756427574275842759427604276142762427634276442765427664276742768427694277042771427724277342774427754277642777427784277942780427814278242783427844278542786427874278842789427904279142792427934279442795427964279742798427994280042801428024280342804428054280642807428084280942810428114281242813428144281542816428174281842819428204282142822428234282442825428264282742828428294283042831428324283342834428354283642837428384283942840428414284242843428444284542846428474284842849428504285142852428534285442855428564285742858428594286042861428624286342864428654286642867428684286942870428714287242873428744287542876428774287842879428804288142882428834288442885428864288742888428894289042891428924289342894428954289642897428984289942900429014290242903429044290542906429074290842909429104291142912429134291442915429164291742918429194292042921429224292342924429254292642927429284292942930429314293242933429344293542936429374293842939429404294142942429434294442945429464294742948429494295042951429524295342954429554295642957429584295942960429614296242963429644296542966429674296842969429704297142972429734297442975429764297742978429794298042981429824298342984429854298642987429884298942990429914299242993429944299542996429974299842999430004300143002430034300443005430064300743008430094301043011430124301343014430154301643017430184301943020430214302243023430244302543026430274302843029430304303143032430334303443035430364303743038430394304043041430424304343044430454304643047430484304943050430514305243053430544305543056430574305843059430604306143062430634306443065430664306743068430694307043071430724307343074430754307643077430784307943080430814308243083430844308543086430874308843089430904309143092430934309443095430964309743098430994310043101431024310343104431054310643107431084310943110431114311243113431144311543116431174311843119431204312143122431234312443125431264312743128431294313043131431324313343134431354313643137431384313943140431414314243143431444314543146431474314843149431504315143152431534315443155431564315743158431594316043161431624316343164431654316643167431684316943170431714317243173431744317543176431774317843179431804318143182431834318443185431864318743188431894319043191431924319343194431954319643197431984319943200432014320243203432044320543206432074320843209432104321143212432134321443215432164321743218432194322043221432224322343224432254322643227432284322943230432314323243233432344323543236432374323843239432404324143242432434324443245432464324743248432494325043251432524325343254432554325643257432584325943260432614326243263432644326543266432674326843269432704327143272432734327443275432764327743278432794328043281432824328343284432854328643287432884328943290432914329243293432944329543296432974329843299433004330143302433034330443305433064330743308433094331043311433124331343314433154331643317433184331943320433214332243323433244332543326433274332843329433304333143332433334333443335433364333743338433394334043341433424334343344433454334643347433484334943350433514335243353433544335543356433574335843359433604336143362433634336443365433664336743368433694337043371433724337343374433754337643377433784337943380433814338243383433844338543386433874338843389433904339143392433934339443395433964339743398433994340043401434024340343404434054340643407434084340943410434114341243413434144341543416434174341843419434204342143422434234342443425434264342743428434294343043431434324343343434434354343643437434384343943440434414344243443434444344543446434474344843449434504345143452434534345443455434564345743458434594346043461434624346343464434654346643467434684346943470434714347243473434744347543476434774347843479434804348143482434834348443485434864348743488434894349043491434924349343494434954349643497434984349943500435014350243503435044350543506435074350843509435104351143512435134351443515435164351743518435194352043521435224352343524435254352643527435284352943530435314353243533435344353543536435374353843539435404354143542435434354443545435464354743548435494355043551435524355343554435554355643557435584355943560435614356243563435644356543566435674356843569435704357143572435734357443575435764357743578435794358043581435824358343584435854358643587435884358943590435914359243593435944359543596435974359843599436004360143602436034360443605436064360743608436094361043611436124361343614436154361643617436184361943620436214362243623436244362543626436274362843629436304363143632436334363443635436364363743638436394364043641436424364343644436454364643647436484364943650436514365243653436544365543656436574365843659436604366143662436634366443665436664366743668436694367043671436724367343674436754367643677436784367943680436814368243683436844368543686436874368843689436904369143692436934369443695436964369743698436994370043701437024370343704437054370643707437084370943710437114371243713437144371543716437174371843719437204372143722437234372443725437264372743728437294373043731437324373343734437354373643737437384373943740437414374243743437444374543746437474374843749437504375143752437534375443755437564375743758437594376043761437624376343764437654376643767437684376943770437714377243773437744377543776437774377843779437804378143782437834378443785437864378743788437894379043791437924379343794437954379643797437984379943800438014380243803438044380543806438074380843809438104381143812438134381443815438164381743818438194382043821438224382343824438254382643827438284382943830438314383243833438344383543836438374383843839438404384143842438434384443845438464384743848438494385043851438524385343854438554385643857438584385943860438614386243863438644386543866438674386843869438704387143872438734387443875438764387743878438794388043881438824388343884438854388643887438884388943890438914389243893438944389543896438974389843899439004390143902439034390443905439064390743908439094391043911439124391343914439154391643917439184391943920439214392243923439244392543926439274392843929439304393143932439334393443935439364393743938439394394043941439424394343944439454394643947439484394943950439514395243953439544395543956439574395843959439604396143962439634396443965439664396743968439694397043971439724397343974439754397643977439784397943980439814398243983439844398543986439874398843989439904399143992439934399443995439964399743998439994400044001440024400344004440054400644007440084400944010440114401244013440144401544016440174401844019440204402144022440234402444025440264402744028440294403044031440324403344034440354403644037440384403944040440414404244043440444404544046440474404844049440504405144052440534405444055440564405744058440594406044061440624406344064440654406644067440684406944070440714407244073440744407544076440774407844079440804408144082440834408444085440864408744088440894409044091440924409344094440954409644097440984409944100441014410244103441044410544106441074410844109441104411144112441134411444115441164411744118441194412044121441224412344124441254412644127441284412944130441314413244133441344413544136441374413844139441404414144142441434414444145441464414744148441494415044151441524415344154441554415644157441584415944160441614416244163441644416544166441674416844169441704417144172441734417444175441764417744178441794418044181441824418344184441854418644187441884418944190441914419244193441944419544196441974419844199442004420144202442034420444205442064420744208442094421044211442124421344214442154421644217442184421944220442214422244223442244422544226442274422844229442304423144232442334423444235442364423744238442394424044241442424424344244442454424644247442484424944250442514425244253442544425544256442574425844259442604426144262442634426444265442664426744268442694427044271442724427344274442754427644277442784427944280442814428244283442844428544286442874428844289442904429144292442934429444295442964429744298442994430044301443024430344304443054430644307443084430944310443114431244313443144431544316443174431844319443204432144322443234432444325443264432744328443294433044331443324433344334443354433644337443384433944340443414434244343443444434544346443474434844349443504435144352443534435444355443564435744358443594436044361443624436344364443654436644367443684436944370443714437244373443744437544376443774437844379443804438144382443834438444385443864438744388443894439044391443924439344394443954439644397443984439944400444014440244403444044440544406444074440844409444104441144412444134441444415444164441744418444194442044421444224442344424444254442644427444284442944430444314443244433444344443544436444374443844439444404444144442444434444444445444464444744448444494445044451444524445344454444554445644457444584445944460444614446244463444644446544466444674446844469444704447144472444734447444475444764447744478444794448044481444824448344484444854448644487444884448944490444914449244493444944449544496444974449844499445004450144502445034450444505445064450744508445094451044511445124451344514445154451644517445184451944520445214452244523445244452544526445274452844529445304453144532445334453444535445364453744538445394454044541445424454344544445454454644547445484454944550445514455244553445544455544556445574455844559445604456144562445634456444565445664456744568445694457044571445724457344574445754457644577445784457944580445814458244583445844458544586445874458844589445904459144592445934459444595445964459744598445994460044601446024460344604446054460644607446084460944610446114461244613446144461544616446174461844619446204462144622446234462444625446264462744628446294463044631446324463344634446354463644637446384463944640446414464244643446444464544646446474464844649446504465144652446534465444655446564465744658446594466044661446624466344664446654466644667446684466944670446714467244673446744467544676446774467844679446804468144682446834468444685446864468744688446894469044691446924469344694446954469644697446984469944700447014470244703447044470544706447074470844709447104471144712447134471444715447164471744718447194472044721447224472344724447254472644727447284472944730447314473244733447344473544736447374473844739447404474144742447434474444745447464474744748447494475044751447524475344754447554475644757447584475944760447614476244763447644476544766447674476844769447704477144772447734477444775447764477744778447794478044781447824478344784447854478644787447884478944790447914479244793447944479544796447974479844799448004480144802448034480444805448064480744808448094481044811448124481344814448154481644817448184481944820448214482244823448244482544826448274482844829448304483144832448334483444835448364483744838448394484044841448424484344844448454484644847448484484944850448514485244853448544485544856448574485844859448604486144862448634486444865448664486744868448694487044871448724487344874448754487644877448784487944880448814488244883448844488544886448874488844889448904489144892448934489444895448964489744898448994490044901449024490344904449054490644907449084490944910449114491244913449144491544916449174491844919449204492144922449234492444925449264492744928449294493044931449324493344934449354493644937449384493944940449414494244943449444494544946449474494844949449504495144952449534495444955449564495744958449594496044961449624496344964449654496644967449684496944970449714497244973449744497544976449774497844979449804498144982449834498444985449864498744988449894499044991449924499344994449954499644997449984499945000450014500245003450044500545006450074500845009450104501145012450134501445015450164501745018450194502045021450224502345024450254502645027450284502945030450314503245033450344503545036450374503845039450404504145042450434504445045450464504745048450494505045051450524505345054450554505645057450584505945060450614506245063450644506545066450674506845069450704507145072450734507445075450764507745078450794508045081450824508345084450854508645087450884508945090450914509245093450944509545096450974509845099451004510145102451034510445105451064510745108451094511045111451124511345114451154511645117451184511945120451214512245123451244512545126451274512845129451304513145132451334513445135451364513745138451394514045141451424514345144451454514645147451484514945150451514515245153451544515545156451574515845159451604516145162451634516445165451664516745168451694517045171451724517345174451754517645177451784517945180451814518245183451844518545186451874518845189451904519145192451934519445195451964519745198451994520045201452024520345204452054520645207452084520945210452114521245213452144521545216452174521845219452204522145222452234522445225452264522745228452294523045231452324523345234452354523645237452384523945240452414524245243452444524545246452474524845249452504525145252452534525445255452564525745258452594526045261452624526345264452654526645267452684526945270452714527245273452744527545276452774527845279452804528145282452834528445285452864528745288452894529045291452924529345294452954529645297452984529945300453014530245303453044530545306453074530845309453104531145312453134531445315453164531745318453194532045321453224532345324453254532645327453284532945330453314533245333453344533545336453374533845339453404534145342453434534445345453464534745348453494535045351453524535345354453554535645357453584535945360453614536245363453644536545366453674536845369453704537145372453734537445375453764537745378453794538045381453824538345384453854538645387453884538945390453914539245393453944539545396453974539845399454004540145402454034540445405454064540745408454094541045411454124541345414454154541645417454184541945420454214542245423454244542545426454274542845429454304543145432454334543445435454364543745438454394544045441454424544345444454454544645447454484544945450454514545245453454544545545456454574545845459454604546145462454634546445465454664546745468454694547045471454724547345474454754547645477454784547945480454814548245483454844548545486454874548845489454904549145492454934549445495454964549745498454994550045501455024550345504455054550645507455084550945510455114551245513455144551545516455174551845519455204552145522455234552445525455264552745528455294553045531455324553345534455354553645537455384553945540455414554245543455444554545546455474554845549455504555145552455534555445555455564555745558455594556045561455624556345564455654556645567455684556945570455714557245573455744557545576455774557845579455804558145582455834558445585455864558745588455894559045591455924559345594455954559645597455984559945600456014560245603456044560545606456074560845609456104561145612456134561445615456164561745618456194562045621456224562345624456254562645627456284562945630456314563245633456344563545636456374563845639456404564145642456434564445645456464564745648456494565045651456524565345654456554565645657456584565945660456614566245663456644566545666456674566845669456704567145672456734567445675456764567745678456794568045681456824568345684456854568645687456884568945690456914569245693456944569545696456974569845699457004570145702457034570445705457064570745708457094571045711457124571345714457154571645717457184571945720457214572245723457244572545726457274572845729457304573145732457334573445735457364573745738457394574045741457424574345744457454574645747457484574945750457514575245753457544575545756457574575845759457604576145762457634576445765457664576745768457694577045771457724577345774457754577645777457784577945780457814578245783457844578545786457874578845789457904579145792457934579445795457964579745798457994580045801458024580345804458054580645807458084580945810458114581245813458144581545816458174581845819458204582145822458234582445825458264582745828458294583045831458324583345834458354583645837458384583945840458414584245843458444584545846458474584845849458504585145852458534585445855458564585745858458594586045861458624586345864458654586645867458684586945870458714587245873458744587545876458774587845879458804588145882458834588445885458864588745888458894589045891458924589345894458954589645897458984589945900459014590245903459044590545906459074590845909459104591145912459134591445915459164591745918459194592045921459224592345924459254592645927459284592945930459314593245933459344593545936459374593845939459404594145942459434594445945459464594745948459494595045951459524595345954459554595645957459584595945960459614596245963459644596545966459674596845969459704597145972459734597445975459764597745978459794598045981459824598345984459854598645987459884598945990459914599245993459944599545996459974599845999460004600146002460034600446005460064600746008460094601046011460124601346014460154601646017460184601946020460214602246023460244602546026460274602846029460304603146032460334603446035460364603746038460394604046041460424604346044460454604646047460484604946050460514605246053460544605546056460574605846059460604606146062460634606446065460664606746068460694607046071460724607346074460754607646077460784607946080460814608246083460844608546086460874608846089460904609146092460934609446095460964609746098460994610046101461024610346104461054610646107461084610946110461114611246113461144611546116461174611846119461204612146122461234612446125461264612746128461294613046131461324613346134461354613646137461384613946140461414614246143461444614546146461474614846149461504615146152461534615446155461564615746158461594616046161461624616346164461654616646167461684616946170461714617246173461744617546176461774617846179461804618146182461834618446185461864618746188461894619046191461924619346194461954619646197461984619946200462014620246203462044620546206462074620846209462104621146212462134621446215462164621746218462194622046221462224622346224462254622646227462284622946230462314623246233462344623546236462374623846239462404624146242462434624446245462464624746248462494625046251462524625346254462554625646257462584625946260462614626246263462644626546266462674626846269462704627146272462734627446275462764627746278462794628046281462824628346284462854628646287462884628946290462914629246293462944629546296462974629846299463004630146302463034630446305463064630746308463094631046311463124631346314463154631646317463184631946320463214632246323463244632546326463274632846329463304633146332463334633446335463364633746338463394634046341463424634346344463454634646347463484634946350463514635246353463544635546356463574635846359463604636146362463634636446365463664636746368463694637046371463724637346374463754637646377463784637946380463814638246383463844638546386463874638846389463904639146392463934639446395463964639746398463994640046401464024640346404464054640646407464084640946410464114641246413464144641546416464174641846419464204642146422464234642446425464264642746428464294643046431464324643346434464354643646437464384643946440464414644246443464444644546446464474644846449464504645146452464534645446455464564645746458464594646046461464624646346464464654646646467464684646946470464714647246473464744647546476464774647846479464804648146482464834648446485464864648746488464894649046491464924649346494464954649646497464984649946500465014650246503465044650546506465074650846509465104651146512465134651446515465164651746518465194652046521465224652346524465254652646527465284652946530465314653246533465344653546536465374653846539465404654146542465434654446545465464654746548465494655046551465524655346554465554655646557465584655946560465614656246563465644656546566465674656846569465704657146572465734657446575465764657746578465794658046581465824658346584465854658646587465884658946590465914659246593465944659546596465974659846599466004660146602466034660446605466064660746608466094661046611466124661346614466154661646617466184661946620466214662246623466244662546626466274662846629466304663146632466334663446635466364663746638466394664046641466424664346644466454664646647466484664946650466514665246653466544665546656466574665846659466604666146662466634666446665466664666746668466694667046671466724667346674466754667646677466784667946680466814668246683466844668546686466874668846689466904669146692466934669446695466964669746698466994670046701467024670346704467054670646707467084670946710467114671246713467144671546716467174671846719467204672146722467234672446725467264672746728467294673046731467324673346734467354673646737467384673946740467414674246743467444674546746467474674846749467504675146752467534675446755467564675746758467594676046761467624676346764467654676646767467684676946770467714677246773467744677546776467774677846779467804678146782467834678446785467864678746788467894679046791467924679346794467954679646797467984679946800468014680246803468044680546806468074680846809468104681146812468134681446815468164681746818468194682046821468224682346824468254682646827468284682946830468314683246833468344683546836468374683846839468404684146842468434684446845468464684746848468494685046851468524685346854468554685646857468584685946860468614686246863468644686546866468674686846869468704687146872468734687446875468764687746878468794688046881468824688346884468854688646887468884688946890468914689246893468944689546896468974689846899469004690146902469034690446905469064690746908469094691046911469124691346914469154691646917469184691946920469214692246923469244692546926469274692846929469304693146932469334693446935469364693746938469394694046941469424694346944469454694646947469484694946950469514695246953469544695546956469574695846959469604696146962469634696446965469664696746968469694697046971469724697346974469754697646977469784697946980469814698246983469844698546986469874698846989469904699146992469934699446995469964699746998469994700047001470024700347004470054700647007470084700947010470114701247013470144701547016470174701847019470204702147022470234702447025470264702747028470294703047031470324703347034470354703647037470384703947040470414704247043470444704547046470474704847049470504705147052470534705447055470564705747058470594706047061470624706347064470654706647067470684706947070470714707247073470744707547076470774707847079470804708147082470834708447085470864708747088470894709047091470924709347094470954709647097470984709947100471014710247103471044710547106471074710847109471104711147112471134711447115471164711747118471194712047121471224712347124471254712647127471284712947130471314713247133471344713547136471374713847139471404714147142471434714447145471464714747148471494715047151471524715347154471554715647157471584715947160471614716247163471644716547166471674716847169471704717147172471734717447175471764717747178471794718047181471824718347184471854718647187471884718947190471914719247193471944719547196471974719847199472004720147202472034720447205472064720747208472094721047211472124721347214472154721647217472184721947220472214722247223472244722547226472274722847229472304723147232472334723447235472364723747238472394724047241472424724347244472454724647247472484724947250472514725247253472544725547256472574725847259472604726147262472634726447265472664726747268472694727047271472724727347274472754727647277472784727947280472814728247283472844728547286472874728847289472904729147292472934729447295472964729747298472994730047301473024730347304473054730647307473084730947310473114731247313473144731547316473174731847319473204732147322473234732447325473264732747328473294733047331473324733347334473354733647337473384733947340473414734247343473444734547346473474734847349473504735147352473534735447355473564735747358473594736047361473624736347364473654736647367473684736947370473714737247373473744737547376473774737847379473804738147382473834738447385473864738747388473894739047391473924739347394473954739647397473984739947400474014740247403474044740547406474074740847409474104741147412474134741447415474164741747418474194742047421474224742347424474254742647427474284742947430474314743247433474344743547436474374743847439474404744147442474434744447445474464744747448474494745047451474524745347454474554745647457474584745947460474614746247463474644746547466474674746847469474704747147472474734747447475474764747747478474794748047481474824748347484474854748647487474884748947490474914749247493474944749547496474974749847499475004750147502475034750447505475064750747508475094751047511475124751347514475154751647517475184751947520475214752247523475244752547526475274752847529475304753147532475334753447535475364753747538475394754047541475424754347544475454754647547475484754947550475514755247553475544755547556475574755847559475604756147562475634756447565475664756747568475694757047571475724757347574475754757647577475784757947580475814758247583475844758547586475874758847589475904759147592475934759447595475964759747598475994760047601476024760347604476054760647607476084760947610476114761247613476144761547616476174761847619476204762147622476234762447625476264762747628476294763047631476324763347634476354763647637476384763947640476414764247643476444764547646476474764847649476504765147652476534765447655476564765747658476594766047661476624766347664476654766647667476684766947670476714767247673476744767547676476774767847679476804768147682476834768447685476864768747688476894769047691476924769347694476954769647697476984769947700477014770247703477044770547706477074770847709477104771147712477134771447715477164771747718477194772047721477224772347724477254772647727477284772947730477314773247733477344773547736477374773847739477404774147742477434774447745477464774747748477494775047751477524775347754477554775647757477584775947760477614776247763477644776547766477674776847769477704777147772477734777447775477764777747778477794778047781477824778347784477854778647787477884778947790477914779247793477944779547796477974779847799478004780147802478034780447805478064780747808478094781047811478124781347814478154781647817478184781947820478214782247823478244782547826478274782847829478304783147832478334783447835478364783747838478394784047841478424784347844478454784647847478484784947850478514785247853478544785547856478574785847859478604786147862478634786447865478664786747868478694787047871478724787347874478754787647877478784787947880478814788247883478844788547886478874788847889478904789147892478934789447895478964789747898478994790047901479024790347904479054790647907479084790947910479114791247913479144791547916479174791847919479204792147922479234792447925479264792747928479294793047931479324793347934479354793647937479384793947940479414794247943479444794547946479474794847949479504795147952479534795447955479564795747958479594796047961479624796347964479654796647967479684796947970479714797247973479744797547976479774797847979479804798147982479834798447985479864798747988479894799047991479924799347994479954799647997479984799948000480014800248003480044800548006480074800848009480104801148012480134801448015480164801748018480194802048021480224802348024480254802648027480284802948030480314803248033480344803548036480374803848039480404804148042480434804448045480464804748048480494805048051480524805348054480554805648057480584805948060480614806248063480644806548066480674806848069480704807148072480734807448075480764807748078480794808048081480824808348084480854808648087480884808948090480914809248093480944809548096480974809848099481004810148102481034810448105481064810748108481094811048111481124811348114481154811648117481184811948120481214812248123481244812548126481274812848129481304813148132481334813448135481364813748138481394814048141481424814348144481454814648147481484814948150481514815248153481544815548156481574815848159481604816148162481634816448165481664816748168481694817048171481724817348174481754817648177481784817948180481814818248183481844818548186481874818848189481904819148192481934819448195481964819748198481994820048201482024820348204482054820648207482084820948210482114821248213482144821548216482174821848219482204822148222482234822448225482264822748228482294823048231482324823348234482354823648237482384823948240482414824248243482444824548246482474824848249482504825148252482534825448255482564825748258482594826048261482624826348264482654826648267482684826948270482714827248273482744827548276482774827848279482804828148282482834828448285482864828748288482894829048291482924829348294482954829648297482984829948300483014830248303483044830548306483074830848309483104831148312483134831448315483164831748318483194832048321483224832348324483254832648327483284832948330483314833248333483344833548336483374833848339483404834148342483434834448345483464834748348483494835048351483524835348354483554835648357483584835948360483614836248363483644836548366483674836848369483704837148372483734837448375483764837748378483794838048381483824838348384483854838648387483884838948390483914839248393483944839548396483974839848399484004840148402484034840448405484064840748408484094841048411484124841348414484154841648417484184841948420484214842248423484244842548426484274842848429484304843148432484334843448435484364843748438484394844048441484424844348444484454844648447484484844948450484514845248453484544845548456484574845848459484604846148462484634846448465484664846748468484694847048471484724847348474484754847648477484784847948480484814848248483484844848548486484874848848489484904849148492484934849448495484964849748498484994850048501485024850348504485054850648507485084850948510485114851248513485144851548516485174851848519485204852148522485234852448525485264852748528485294853048531485324853348534485354853648537485384853948540485414854248543485444854548546485474854848549485504855148552485534855448555485564855748558485594856048561485624856348564485654856648567485684856948570485714857248573485744857548576485774857848579485804858148582485834858448585485864858748588485894859048591485924859348594485954859648597485984859948600486014860248603486044860548606486074860848609486104861148612486134861448615486164861748618486194862048621486224862348624486254862648627486284862948630486314863248633486344863548636486374863848639486404864148642486434864448645486464864748648486494865048651486524865348654486554865648657486584865948660486614866248663486644866548666486674866848669486704867148672486734867448675486764867748678486794868048681486824868348684486854868648687486884868948690486914869248693486944869548696486974869848699487004870148702487034870448705487064870748708487094871048711487124871348714487154871648717487184871948720487214872248723487244872548726487274872848729487304873148732487334873448735487364873748738487394874048741487424874348744487454874648747487484874948750487514875248753487544875548756487574875848759487604876148762487634876448765487664876748768487694877048771487724877348774487754877648777487784877948780487814878248783487844878548786487874878848789487904879148792487934879448795487964879748798487994880048801488024880348804488054880648807488084880948810488114881248813488144881548816488174881848819488204882148822488234882448825488264882748828488294883048831488324883348834488354883648837488384883948840488414884248843488444884548846488474884848849488504885148852488534885448855488564885748858488594886048861488624886348864488654886648867488684886948870488714887248873488744887548876488774887848879488804888148882488834888448885488864888748888488894889048891488924889348894488954889648897488984889948900489014890248903489044890548906489074890848909489104891148912489134891448915489164891748918489194892048921489224892348924489254892648927489284892948930489314893248933489344893548936489374893848939489404894148942489434894448945489464894748948489494895048951489524895348954489554895648957489584895948960489614896248963489644896548966489674896848969489704897148972489734897448975489764897748978489794898048981489824898348984489854898648987489884898948990489914899248993489944899548996489974899848999490004900149002490034900449005490064900749008490094901049011490124901349014490154901649017490184901949020490214902249023490244902549026490274902849029490304903149032490334903449035490364903749038490394904049041490424904349044490454904649047490484904949050490514905249053490544905549056490574905849059490604906149062490634906449065490664906749068490694907049071490724907349074490754907649077490784907949080490814908249083490844908549086490874908849089490904909149092490934909449095490964909749098490994910049101491024910349104491054910649107491084910949110491114911249113491144911549116491174911849119491204912149122491234912449125491264912749128491294913049131491324913349134491354913649137491384913949140491414914249143491444914549146491474914849149491504915149152491534915449155491564915749158491594916049161491624916349164491654916649167491684916949170491714917249173491744917549176491774917849179491804918149182491834918449185491864918749188491894919049191491924919349194491954919649197491984919949200492014920249203492044920549206492074920849209492104921149212492134921449215492164921749218492194922049221492224922349224492254922649227492284922949230492314923249233492344923549236492374923849239492404924149242492434924449245492464924749248492494925049251492524925349254492554925649257492584925949260492614926249263492644926549266492674926849269492704927149272492734927449275492764927749278492794928049281492824928349284492854928649287492884928949290492914929249293492944929549296492974929849299493004930149302493034930449305493064930749308493094931049311493124931349314493154931649317493184931949320493214932249323493244932549326493274932849329493304933149332493334933449335493364933749338493394934049341493424934349344493454934649347493484934949350493514935249353493544935549356493574935849359493604936149362493634936449365493664936749368493694937049371493724937349374493754937649377493784937949380493814938249383493844938549386493874938849389493904939149392493934939449395493964939749398493994940049401494024940349404494054940649407494084940949410494114941249413494144941549416494174941849419494204942149422494234942449425494264942749428494294943049431494324943349434494354943649437494384943949440494414944249443494444944549446494474944849449494504945149452494534945449455494564945749458494594946049461494624946349464494654946649467494684946949470494714947249473494744947549476494774947849479494804948149482494834948449485494864948749488494894949049491494924949349494494954949649497494984949949500495014950249503495044950549506495074950849509495104951149512495134951449515495164951749518495194952049521495224952349524495254952649527495284952949530495314953249533495344953549536495374953849539495404954149542495434954449545495464954749548495494955049551495524955349554495554955649557495584955949560495614956249563495644956549566495674956849569495704957149572495734957449575495764957749578495794958049581495824958349584495854958649587495884958949590495914959249593495944959549596495974959849599496004960149602496034960449605496064960749608496094961049611496124961349614496154961649617496184961949620496214962249623496244962549626496274962849629496304963149632496334963449635496364963749638496394964049641496424964349644496454964649647496484964949650496514965249653496544965549656496574965849659496604966149662496634966449665496664966749668496694967049671496724967349674496754967649677496784967949680496814968249683496844968549686496874968849689496904969149692496934969449695496964969749698496994970049701497024970349704497054970649707497084970949710497114971249713497144971549716497174971849719497204972149722497234972449725497264972749728497294973049731497324973349734497354973649737497384973949740497414974249743497444974549746497474974849749497504975149752497534975449755497564975749758497594976049761497624976349764497654976649767497684976949770497714977249773497744977549776497774977849779497804978149782497834978449785497864978749788497894979049791497924979349794497954979649797497984979949800498014980249803498044980549806498074980849809498104981149812498134981449815498164981749818498194982049821498224982349824498254982649827498284982949830498314983249833498344983549836498374983849839498404984149842498434984449845498464984749848498494985049851498524985349854498554985649857498584985949860498614986249863498644986549866498674986849869498704987149872498734987449875498764987749878498794988049881498824988349884498854988649887498884988949890498914989249893498944989549896498974989849899499004990149902499034990449905499064990749908499094991049911499124991349914499154991649917499184991949920499214992249923499244992549926499274992849929499304993149932499334993449935499364993749938499394994049941499424994349944499454994649947499484994949950499514995249953499544995549956499574995849959499604996149962499634996449965499664996749968499694997049971499724997349974499754997649977499784997949980499814998249983499844998549986499874998849989499904999149992499934999449995499964999749998499995000050001500025000350004500055000650007500085000950010500115001250013500145001550016500175001850019500205002150022500235002450025500265002750028500295003050031500325003350034500355003650037500385003950040500415004250043500445004550046500475004850049500505005150052500535005450055500565005750058500595006050061500625006350064500655006650067500685006950070500715007250073500745007550076500775007850079500805008150082500835008450085500865008750088500895009050091500925009350094500955009650097500985009950100501015010250103501045010550106501075010850109501105011150112501135011450115501165011750118501195012050121501225012350124501255012650127501285012950130501315013250133501345013550136501375013850139501405014150142501435014450145501465014750148501495015050151501525015350154501555015650157501585015950160501615016250163501645016550166501675016850169501705017150172501735017450175501765017750178501795018050181501825018350184501855018650187501885018950190501915019250193501945019550196501975019850199502005020150202502035020450205502065020750208502095021050211502125021350214502155021650217502185021950220502215022250223502245022550226502275022850229502305023150232502335023450235502365023750238502395024050241502425024350244502455024650247502485024950250502515025250253502545025550256502575025850259502605026150262502635026450265502665026750268502695027050271502725027350274502755027650277502785027950280502815028250283502845028550286502875028850289502905029150292502935029450295502965029750298502995030050301503025030350304503055030650307503085030950310503115031250313503145031550316503175031850319503205032150322503235032450325503265032750328503295033050331503325033350334503355033650337503385033950340503415034250343503445034550346503475034850349503505035150352503535035450355503565035750358503595036050361503625036350364503655036650367503685036950370503715037250373503745037550376503775037850379503805038150382503835038450385503865038750388503895039050391503925039350394503955039650397503985039950400504015040250403504045040550406504075040850409504105041150412504135041450415504165041750418504195042050421504225042350424504255042650427504285042950430504315043250433504345043550436504375043850439504405044150442504435044450445504465044750448504495045050451504525045350454504555045650457504585045950460504615046250463504645046550466504675046850469504705047150472504735047450475504765047750478504795048050481504825048350484504855048650487504885048950490504915049250493504945049550496504975049850499505005050150502505035050450505505065050750508505095051050511505125051350514505155051650517505185051950520505215052250523505245052550526505275052850529505305053150532505335053450535505365053750538505395054050541505425054350544505455054650547505485054950550505515055250553505545055550556505575055850559505605056150562505635056450565505665056750568505695057050571505725057350574505755057650577505785057950580505815058250583505845058550586505875058850589505905059150592505935059450595505965059750598505995060050601506025060350604506055060650607506085060950610506115061250613506145061550616506175061850619506205062150622506235062450625506265062750628506295063050631506325063350634506355063650637506385063950640506415064250643506445064550646506475064850649506505065150652506535065450655506565065750658506595066050661506625066350664506655066650667506685066950670506715067250673506745067550676506775067850679506805068150682506835068450685506865068750688506895069050691506925069350694506955069650697506985069950700507015070250703507045070550706507075070850709507105071150712507135071450715507165071750718507195072050721507225072350724507255072650727507285072950730507315073250733507345073550736507375073850739507405074150742507435074450745507465074750748507495075050751507525075350754507555075650757507585075950760507615076250763507645076550766507675076850769507705077150772507735077450775507765077750778507795078050781507825078350784507855078650787507885078950790507915079250793507945079550796507975079850799508005080150802508035080450805508065080750808508095081050811508125081350814508155081650817508185081950820508215082250823508245082550826508275082850829508305083150832508335083450835508365083750838508395084050841508425084350844508455084650847508485084950850508515085250853508545085550856508575085850859508605086150862508635086450865508665086750868508695087050871508725087350874508755087650877508785087950880508815088250883508845088550886508875088850889508905089150892508935089450895508965089750898508995090050901509025090350904509055090650907509085090950910509115091250913509145091550916509175091850919509205092150922509235092450925509265092750928509295093050931509325093350934509355093650937509385093950940509415094250943509445094550946509475094850949509505095150952509535095450955509565095750958509595096050961509625096350964509655096650967509685096950970509715097250973509745097550976509775097850979509805098150982509835098450985509865098750988509895099050991509925099350994509955099650997509985099951000510015100251003510045100551006510075100851009510105101151012510135101451015510165101751018510195102051021510225102351024510255102651027510285102951030510315103251033510345103551036510375103851039510405104151042510435104451045510465104751048510495105051051510525105351054510555105651057510585105951060510615106251063510645106551066510675106851069510705107151072510735107451075510765107751078510795108051081510825108351084510855108651087510885108951090510915109251093510945109551096510975109851099511005110151102511035110451105511065110751108511095111051111511125111351114511155111651117511185111951120511215112251123511245112551126511275112851129511305113151132511335113451135511365113751138511395114051141511425114351144511455114651147511485114951150511515115251153511545115551156511575115851159511605116151162511635116451165511665116751168511695117051171511725117351174511755117651177511785117951180511815118251183511845118551186511875118851189511905119151192511935119451195511965119751198511995120051201512025120351204512055120651207512085120951210512115121251213512145121551216512175121851219512205122151222512235122451225512265122751228512295123051231512325123351234512355123651237512385123951240512415124251243512445124551246512475124851249512505125151252512535125451255512565125751258512595126051261512625126351264512655126651267512685126951270512715127251273512745127551276512775127851279512805128151282512835128451285512865128751288512895129051291512925129351294512955129651297512985129951300513015130251303513045130551306513075130851309513105131151312513135131451315513165131751318513195132051321513225132351324513255132651327513285132951330513315133251333513345133551336513375133851339513405134151342513435134451345513465134751348513495135051351513525135351354513555135651357513585135951360513615136251363513645136551366513675136851369513705137151372513735137451375513765137751378513795138051381513825138351384513855138651387513885138951390513915139251393513945139551396513975139851399514005140151402514035140451405514065140751408514095141051411514125141351414514155141651417514185141951420514215142251423514245142551426514275142851429514305143151432514335143451435514365143751438514395144051441514425144351444514455144651447514485144951450514515145251453514545145551456514575145851459514605146151462514635146451465514665146751468514695147051471514725147351474514755147651477514785147951480514815148251483514845148551486514875148851489514905149151492514935149451495514965149751498514995150051501515025150351504515055150651507515085150951510515115151251513515145151551516515175151851519515205152151522515235152451525515265152751528515295153051531515325153351534515355153651537515385153951540515415154251543515445154551546515475154851549515505155151552515535155451555515565155751558515595156051561515625156351564515655156651567515685156951570515715157251573515745157551576515775157851579515805158151582515835158451585515865158751588515895159051591515925159351594515955159651597515985159951600516015160251603516045160551606516075160851609516105161151612516135161451615516165161751618516195162051621516225162351624516255162651627516285162951630516315163251633516345163551636516375163851639516405164151642516435164451645516465164751648516495165051651516525165351654516555165651657516585165951660516615166251663516645166551666516675166851669516705167151672516735167451675516765167751678516795168051681516825168351684516855168651687516885168951690516915169251693516945169551696516975169851699517005170151702517035170451705517065170751708517095171051711517125171351714517155171651717517185171951720517215172251723517245172551726517275172851729517305173151732517335173451735517365173751738517395174051741517425174351744517455174651747517485174951750517515175251753517545175551756517575175851759517605176151762517635176451765517665176751768517695177051771517725177351774517755177651777517785177951780517815178251783517845178551786517875178851789517905179151792517935179451795517965179751798517995180051801518025180351804518055180651807518085180951810518115181251813518145181551816518175181851819518205182151822518235182451825518265182751828518295183051831518325183351834518355183651837518385183951840518415184251843518445184551846518475184851849518505185151852518535185451855518565185751858518595186051861518625186351864518655186651867518685186951870518715187251873518745187551876518775187851879518805188151882518835188451885518865188751888518895189051891518925189351894518955189651897518985189951900519015190251903519045190551906519075190851909519105191151912519135191451915519165191751918519195192051921519225192351924519255192651927519285192951930519315193251933519345193551936519375193851939519405194151942519435194451945519465194751948519495195051951519525195351954519555195651957519585195951960519615196251963519645196551966519675196851969519705197151972519735197451975519765197751978519795198051981519825198351984519855198651987519885198951990519915199251993519945199551996519975199851999520005200152002520035200452005520065200752008520095201052011520125201352014520155201652017520185201952020520215202252023520245202552026520275202852029520305203152032520335203452035520365203752038520395204052041520425204352044520455204652047520485204952050520515205252053520545205552056520575205852059520605206152062520635206452065520665206752068520695207052071520725207352074520755207652077520785207952080520815208252083520845208552086520875208852089520905209152092520935209452095520965209752098520995210052101521025210352104521055210652107521085210952110521115211252113521145211552116521175211852119521205212152122521235212452125521265212752128521295213052131521325213352134521355213652137521385213952140521415214252143521445214552146521475214852149521505215152152521535215452155521565215752158521595216052161521625216352164521655216652167521685216952170521715217252173521745217552176521775217852179521805218152182521835218452185521865218752188521895219052191521925219352194521955219652197521985219952200522015220252203522045220552206522075220852209522105221152212522135221452215522165221752218522195222052221522225222352224522255222652227522285222952230522315223252233522345223552236522375223852239522405224152242522435224452245522465224752248522495225052251522525225352254522555225652257522585225952260522615226252263522645226552266522675226852269522705227152272522735227452275522765227752278522795228052281522825228352284522855228652287522885228952290522915229252293522945229552296522975229852299523005230152302523035230452305523065230752308523095231052311523125231352314523155231652317523185231952320523215232252323523245232552326523275232852329523305233152332523335233452335523365233752338523395234052341523425234352344523455234652347523485234952350523515235252353523545235552356523575235852359523605236152362523635236452365523665236752368523695237052371523725237352374523755237652377523785237952380523815238252383523845238552386523875238852389523905239152392523935239452395523965239752398523995240052401524025240352404524055240652407524085240952410524115241252413524145241552416524175241852419524205242152422524235242452425524265242752428524295243052431524325243352434524355243652437524385243952440524415244252443524445244552446524475244852449524505245152452524535245452455524565245752458524595246052461524625246352464524655246652467524685246952470524715247252473524745247552476524775247852479524805248152482524835248452485524865248752488524895249052491524925249352494524955249652497524985249952500525015250252503525045250552506525075250852509525105251152512525135251452515525165251752518525195252052521525225252352524525255252652527525285252952530525315253252533525345253552536525375253852539525405254152542525435254452545525465254752548525495255052551525525255352554525555255652557525585255952560525615256252563525645256552566525675256852569525705257152572525735257452575525765257752578525795258052581525825258352584525855258652587525885258952590525915259252593525945259552596525975259852599526005260152602526035260452605526065260752608526095261052611526125261352614526155261652617526185261952620526215262252623526245262552626526275262852629526305263152632526335263452635526365263752638526395264052641526425264352644526455264652647526485264952650526515265252653526545265552656526575265852659526605266152662526635266452665526665266752668526695267052671526725267352674526755267652677526785267952680526815268252683526845268552686526875268852689526905269152692526935269452695526965269752698526995270052701527025270352704527055270652707527085270952710527115271252713527145271552716527175271852719527205272152722527235272452725527265272752728527295273052731527325273352734527355273652737527385273952740527415274252743527445274552746527475274852749527505275152752527535275452755527565275752758527595276052761527625276352764527655276652767527685276952770527715277252773527745277552776527775277852779527805278152782527835278452785527865278752788527895279052791527925279352794527955279652797527985279952800528015280252803528045280552806528075280852809528105281152812528135281452815528165281752818528195282052821528225282352824528255282652827528285282952830528315283252833528345283552836528375283852839528405284152842528435284452845528465284752848528495285052851528525285352854528555285652857528585285952860528615286252863528645286552866528675286852869528705287152872528735287452875528765287752878528795288052881528825288352884528855288652887528885288952890528915289252893528945289552896528975289852899529005290152902529035290452905529065290752908529095291052911529125291352914529155291652917529185291952920529215292252923529245292552926529275292852929529305293152932529335293452935529365293752938529395294052941529425294352944529455294652947529485294952950529515295252953529545295552956529575295852959529605296152962529635296452965529665296752968529695297052971529725297352974529755297652977529785297952980529815298252983529845298552986529875298852989529905299152992529935299452995529965299752998529995300053001530025300353004530055300653007530085300953010530115301253013530145301553016530175301853019530205302153022530235302453025530265302753028530295303053031530325303353034530355303653037530385303953040530415304253043530445304553046530475304853049530505305153052530535305453055530565305753058530595306053061530625306353064530655306653067530685306953070530715307253073530745307553076530775307853079530805308153082530835308453085530865308753088530895309053091530925309353094530955309653097530985309953100531015310253103531045310553106531075310853109531105311153112531135311453115531165311753118531195312053121531225312353124531255312653127531285312953130531315313253133531345313553136531375313853139531405314153142531435314453145531465314753148531495315053151531525315353154531555315653157531585315953160531615316253163531645316553166531675316853169531705317153172531735317453175531765317753178531795318053181531825318353184531855318653187531885318953190531915319253193531945319553196531975319853199532005320153202532035320453205532065320753208532095321053211532125321353214532155321653217532185321953220532215322253223532245322553226532275322853229532305323153232532335323453235532365323753238532395324053241532425324353244532455324653247532485324953250532515325253253532545325553256532575325853259532605326153262532635326453265532665326753268532695327053271532725327353274532755327653277532785327953280532815328253283532845328553286532875328853289532905329153292532935329453295532965329753298532995330053301533025330353304533055330653307533085330953310533115331253313533145331553316533175331853319533205332153322533235332453325533265332753328533295333053331533325333353334533355333653337533385333953340533415334253343533445334553346533475334853349533505335153352533535335453355533565335753358533595336053361533625336353364533655336653367533685336953370533715337253373533745337553376533775337853379533805338153382533835338453385533865338753388533895339053391533925339353394533955339653397533985339953400534015340253403534045340553406534075340853409534105341153412534135341453415534165341753418534195342053421534225342353424534255342653427534285342953430534315343253433534345343553436534375343853439534405344153442534435344453445534465344753448534495345053451534525345353454534555345653457534585345953460534615346253463534645346553466534675346853469534705347153472534735347453475534765347753478534795348053481534825348353484534855348653487534885348953490534915349253493534945349553496534975349853499535005350153502535035350453505535065350753508535095351053511535125351353514535155351653517535185351953520535215352253523535245352553526535275352853529535305353153532535335353453535535365353753538535395354053541535425354353544535455354653547535485354953550535515355253553535545355553556535575355853559535605356153562535635356453565535665356753568535695357053571535725357353574535755357653577535785357953580535815358253583535845358553586535875358853589535905359153592535935359453595535965359753598535995360053601536025360353604536055360653607536085360953610536115361253613536145361553616536175361853619536205362153622536235362453625536265362753628536295363053631536325363353634536355363653637536385363953640536415364253643536445364553646536475364853649536505365153652536535365453655536565365753658536595366053661536625366353664536655366653667536685366953670536715367253673536745367553676536775367853679536805368153682536835368453685536865368753688536895369053691536925369353694536955369653697536985369953700537015370253703537045370553706537075370853709537105371153712537135371453715537165371753718537195372053721537225372353724537255372653727537285372953730537315373253733537345373553736537375373853739537405374153742537435374453745537465374753748537495375053751537525375353754537555375653757537585375953760537615376253763537645376553766537675376853769537705377153772537735377453775537765377753778537795378053781537825378353784537855378653787537885378953790537915379253793537945379553796537975379853799538005380153802538035380453805538065380753808538095381053811538125381353814538155381653817538185381953820538215382253823538245382553826538275382853829538305383153832538335383453835538365383753838538395384053841538425384353844538455384653847538485384953850538515385253853538545385553856538575385853859538605386153862538635386453865538665386753868538695387053871538725387353874538755387653877538785387953880538815388253883538845388553886538875388853889538905389153892538935389453895538965389753898538995390053901539025390353904539055390653907539085390953910539115391253913539145391553916539175391853919539205392153922539235392453925539265392753928539295393053931539325393353934539355393653937539385393953940539415394253943539445394553946539475394853949539505395153952539535395453955539565395753958539595396053961539625396353964539655396653967539685396953970539715397253973539745397553976539775397853979539805398153982539835398453985539865398753988539895399053991539925399353994539955399653997539985399954000540015400254003540045400554006540075400854009540105401154012540135401454015540165401754018540195402054021540225402354024540255402654027540285402954030540315403254033540345403554036540375403854039540405404154042540435404454045540465404754048540495405054051540525405354054540555405654057540585405954060540615406254063540645406554066540675406854069540705407154072540735407454075540765407754078540795408054081540825408354084540855408654087540885408954090540915409254093540945409554096540975409854099541005410154102541035410454105541065410754108541095411054111541125411354114541155411654117541185411954120541215412254123541245412554126541275412854129541305413154132541335413454135541365413754138541395414054141541425414354144541455414654147541485414954150541515415254153541545415554156541575415854159541605416154162541635416454165541665416754168541695417054171541725417354174541755417654177541785417954180541815418254183541845418554186541875418854189541905419154192541935419454195541965419754198541995420054201542025420354204542055420654207542085420954210542115421254213542145421554216542175421854219542205422154222542235422454225542265422754228542295423054231542325423354234542355423654237542385423954240542415424254243542445424554246542475424854249542505425154252542535425454255542565425754258542595426054261542625426354264542655426654267542685426954270542715427254273542745427554276542775427854279542805428154282542835428454285542865428754288542895429054291542925429354294542955429654297542985429954300543015430254303543045430554306543075430854309543105431154312543135431454315543165431754318543195432054321543225432354324543255432654327543285432954330543315433254333543345433554336543375433854339543405434154342543435434454345543465434754348543495435054351543525435354354543555435654357543585435954360543615436254363543645436554366543675436854369543705437154372543735437454375543765437754378543795438054381543825438354384543855438654387543885438954390543915439254393543945439554396543975439854399544005440154402544035440454405544065440754408544095441054411544125441354414544155441654417544185441954420544215442254423544245442554426544275442854429544305443154432544335443454435544365443754438544395444054441544425444354444544455444654447544485444954450544515445254453544545445554456544575445854459544605446154462544635446454465544665446754468544695447054471544725447354474544755447654477544785447954480544815448254483544845448554486544875448854489544905449154492544935449454495544965449754498544995450054501545025450354504545055450654507545085450954510545115451254513545145451554516545175451854519545205452154522545235452454525545265452754528545295453054531545325453354534545355453654537545385453954540545415454254543545445454554546545475454854549545505455154552545535455454555545565455754558545595456054561545625456354564545655456654567545685456954570545715457254573545745457554576545775457854579545805458154582545835458454585545865458754588545895459054591545925459354594545955459654597545985459954600546015460254603546045460554606546075460854609546105461154612546135461454615546165461754618546195462054621546225462354624546255462654627546285462954630546315463254633546345463554636546375463854639546405464154642546435464454645546465464754648546495465054651546525465354654546555465654657546585465954660546615466254663546645466554666546675466854669546705467154672546735467454675546765467754678546795468054681546825468354684546855468654687546885468954690546915469254693546945469554696546975469854699547005470154702547035470454705547065470754708547095471054711547125471354714547155471654717547185471954720547215472254723547245472554726547275472854729547305473154732547335473454735547365473754738547395474054741547425474354744547455474654747547485474954750547515475254753547545475554756547575475854759547605476154762547635476454765547665476754768547695477054771547725477354774547755477654777547785477954780547815478254783547845478554786547875478854789547905479154792547935479454795547965479754798547995480054801548025480354804548055480654807548085480954810548115481254813548145481554816548175481854819548205482154822548235482454825548265482754828548295483054831548325483354834548355483654837548385483954840548415484254843548445484554846548475484854849548505485154852548535485454855548565485754858548595486054861548625486354864548655486654867548685486954870548715487254873548745487554876548775487854879548805488154882548835488454885548865488754888548895489054891548925489354894548955489654897548985489954900549015490254903549045490554906549075490854909549105491154912549135491454915549165491754918549195492054921549225492354924549255492654927549285492954930549315493254933549345493554936549375493854939549405494154942549435494454945549465494754948549495495054951549525495354954549555495654957549585495954960549615496254963549645496554966549675496854969549705497154972549735497454975549765497754978549795498054981549825498354984549855498654987549885498954990549915499254993549945499554996549975499854999550005500155002550035500455005550065500755008550095501055011550125501355014550155501655017550185501955020550215502255023550245502555026550275502855029550305503155032550335503455035550365503755038550395504055041550425504355044550455504655047550485504955050550515505255053550545505555056550575505855059550605506155062550635506455065550665506755068550695507055071550725507355074550755507655077550785507955080550815508255083550845508555086550875508855089550905509155092550935509455095550965509755098550995510055101551025510355104551055510655107551085510955110551115511255113551145511555116551175511855119551205512155122551235512455125551265512755128551295513055131551325513355134551355513655137551385513955140551415514255143551445514555146551475514855149551505515155152551535515455155551565515755158551595516055161551625516355164551655516655167551685516955170551715517255173551745517555176551775517855179551805518155182551835518455185551865518755188551895519055191551925519355194551955519655197551985519955200552015520255203552045520555206552075520855209552105521155212552135521455215552165521755218552195522055221552225522355224552255522655227552285522955230552315523255233552345523555236552375523855239552405524155242552435524455245552465524755248552495525055251552525525355254552555525655257552585525955260552615526255263552645526555266552675526855269552705527155272552735527455275552765527755278552795528055281552825528355284552855528655287552885528955290552915529255293552945529555296552975529855299553005530155302553035530455305553065530755308553095531055311553125531355314553155531655317553185531955320553215532255323553245532555326553275532855329553305533155332553335533455335553365533755338553395534055341553425534355344553455534655347553485534955350553515535255353553545535555356553575535855359553605536155362553635536455365553665536755368553695537055371553725537355374553755537655377553785537955380553815538255383553845538555386553875538855389553905539155392553935539455395553965539755398553995540055401554025540355404554055540655407554085540955410554115541255413554145541555416554175541855419554205542155422554235542455425554265542755428554295543055431554325543355434554355543655437554385543955440554415544255443554445544555446554475544855449554505545155452554535545455455554565545755458554595546055461554625546355464554655546655467554685546955470554715547255473554745547555476554775547855479554805548155482554835548455485554865548755488554895549055491554925549355494554955549655497554985549955500555015550255503555045550555506555075550855509555105551155512555135551455515555165551755518555195552055521555225552355524555255552655527555285552955530555315553255533555345553555536555375553855539555405554155542555435554455545555465554755548555495555055551555525555355554555555555655557555585555955560555615556255563555645556555566555675556855569555705557155572555735557455575555765557755578555795558055581555825558355584555855558655587555885558955590555915559255593555945559555596555975559855599556005560155602556035560455605556065560755608556095561055611556125561355614556155561655617556185561955620556215562255623556245562555626556275562855629556305563155632556335563455635556365563755638556395564055641556425564355644556455564655647556485564955650556515565255653556545565555656556575565855659556605566155662556635566455665556665566755668556695567055671556725567355674556755567655677556785567955680556815568255683556845568555686556875568855689556905569155692556935569455695556965569755698556995570055701557025570355704557055570655707557085570955710557115571255713557145571555716557175571855719557205572155722557235572455725557265572755728557295573055731557325573355734557355573655737557385573955740557415574255743557445574555746557475574855749557505575155752557535575455755557565575755758557595576055761557625576355764557655576655767557685576955770557715577255773557745577555776557775577855779557805578155782557835578455785557865578755788557895579055791557925579355794557955579655797557985579955800558015580255803558045580555806558075580855809558105581155812558135581455815558165581755818558195582055821558225582355824558255582655827558285582955830558315583255833558345583555836558375583855839558405584155842558435584455845558465584755848558495585055851558525585355854558555585655857558585585955860558615586255863558645586555866558675586855869558705587155872558735587455875558765587755878558795588055881558825588355884558855588655887558885588955890558915589255893558945589555896558975589855899559005590155902559035590455905559065590755908559095591055911559125591355914559155591655917559185591955920559215592255923559245592555926559275592855929559305593155932559335593455935559365593755938559395594055941559425594355944559455594655947559485594955950559515595255953559545595555956559575595855959559605596155962559635596455965559665596755968559695597055971559725597355974559755597655977559785597955980559815598255983559845598555986559875598855989559905599155992559935599455995559965599755998559995600056001560025600356004560055600656007560085600956010560115601256013560145601556016560175601856019560205602156022560235602456025560265602756028560295603056031560325603356034560355603656037560385603956040560415604256043560445604556046560475604856049560505605156052560535605456055560565605756058560595606056061560625606356064560655606656067560685606956070560715607256073560745607556076560775607856079560805608156082560835608456085560865608756088560895609056091560925609356094560955609656097560985609956100561015610256103561045610556106561075610856109561105611156112561135611456115561165611756118561195612056121561225612356124561255612656127561285612956130561315613256133561345613556136561375613856139561405614156142561435614456145561465614756148561495615056151561525615356154561555615656157561585615956160561615616256163561645616556166561675616856169561705617156172561735617456175561765617756178561795618056181561825618356184561855618656187561885618956190561915619256193561945619556196561975619856199562005620156202562035620456205562065620756208562095621056211562125621356214562155621656217562185621956220562215622256223562245622556226562275622856229562305623156232562335623456235562365623756238562395624056241562425624356244562455624656247562485624956250562515625256253562545625556256562575625856259562605626156262562635626456265562665626756268562695627056271562725627356274562755627656277562785627956280562815628256283562845628556286562875628856289562905629156292562935629456295562965629756298562995630056301563025630356304563055630656307563085630956310563115631256313563145631556316563175631856319563205632156322563235632456325563265632756328563295633056331563325633356334563355633656337563385633956340563415634256343563445634556346563475634856349563505635156352563535635456355563565635756358563595636056361563625636356364563655636656367563685636956370563715637256373563745637556376563775637856379563805638156382563835638456385563865638756388563895639056391563925639356394563955639656397563985639956400564015640256403564045640556406564075640856409564105641156412564135641456415564165641756418564195642056421564225642356424564255642656427564285642956430564315643256433564345643556436564375643856439564405644156442564435644456445564465644756448564495645056451564525645356454564555645656457564585645956460564615646256463564645646556466564675646856469564705647156472564735647456475564765647756478564795648056481564825648356484564855648656487564885648956490564915649256493564945649556496564975649856499565005650156502565035650456505565065650756508565095651056511565125651356514565155651656517565185651956520565215652256523565245652556526565275652856529565305653156532565335653456535565365653756538565395654056541565425654356544565455654656547565485654956550565515655256553565545655556556565575655856559565605656156562565635656456565565665656756568565695657056571565725657356574565755657656577565785657956580565815658256583565845658556586565875658856589565905659156592565935659456595565965659756598565995660056601566025660356604566055660656607566085660956610566115661256613566145661556616566175661856619566205662156622566235662456625566265662756628566295663056631566325663356634566355663656637566385663956640566415664256643566445664556646566475664856649566505665156652566535665456655566565665756658566595666056661566625666356664566655666656667566685666956670566715667256673566745667556676566775667856679566805668156682566835668456685566865668756688566895669056691566925669356694566955669656697566985669956700567015670256703567045670556706567075670856709567105671156712567135671456715567165671756718567195672056721567225672356724567255672656727567285672956730567315673256733567345673556736567375673856739567405674156742567435674456745567465674756748567495675056751567525675356754567555675656757567585675956760567615676256763567645676556766567675676856769567705677156772567735677456775567765677756778567795678056781567825678356784567855678656787567885678956790567915679256793567945679556796567975679856799568005680156802568035680456805568065680756808568095681056811568125681356814568155681656817568185681956820568215682256823568245682556826568275682856829568305683156832568335683456835568365683756838568395684056841568425684356844568455684656847568485684956850568515685256853568545685556856568575685856859568605686156862568635686456865568665686756868568695687056871568725687356874568755687656877568785687956880568815688256883568845688556886568875688856889568905689156892568935689456895568965689756898568995690056901569025690356904569055690656907569085690956910569115691256913569145691556916569175691856919569205692156922569235692456925569265692756928569295693056931569325693356934569355693656937569385693956940569415694256943569445694556946569475694856949569505695156952569535695456955569565695756958569595696056961569625696356964569655696656967569685696956970569715697256973569745697556976569775697856979569805698156982569835698456985569865698756988569895699056991569925699356994569955699656997569985699957000570015700257003570045700557006570075700857009570105701157012570135701457015570165701757018570195702057021570225702357024570255702657027570285702957030570315703257033570345703557036570375703857039570405704157042570435704457045570465704757048570495705057051570525705357054570555705657057570585705957060570615706257063570645706557066570675706857069570705707157072570735707457075570765707757078570795708057081570825708357084570855708657087570885708957090570915709257093570945709557096570975709857099571005710157102571035710457105571065710757108571095711057111571125711357114571155711657117571185711957120571215712257123571245712557126571275712857129571305713157132571335713457135571365713757138571395714057141571425714357144571455714657147571485714957150571515715257153571545715557156571575715857159571605716157162571635716457165571665716757168571695717057171571725717357174571755717657177571785717957180571815718257183571845718557186571875718857189571905719157192571935719457195571965719757198571995720057201572025720357204572055720657207572085720957210572115721257213572145721557216572175721857219572205722157222572235722457225572265722757228572295723057231572325723357234572355723657237572385723957240572415724257243572445724557246572475724857249572505725157252572535725457255572565725757258572595726057261572625726357264572655726657267572685726957270572715727257273572745727557276572775727857279572805728157282572835728457285572865728757288572895729057291572925729357294572955729657297572985729957300573015730257303573045730557306573075730857309573105731157312573135731457315573165731757318573195732057321573225732357324573255732657327573285732957330573315733257333573345733557336573375733857339573405734157342573435734457345573465734757348573495735057351573525735357354573555735657357573585735957360573615736257363573645736557366573675736857369573705737157372573735737457375573765737757378573795738057381573825738357384573855738657387573885738957390573915739257393573945739557396573975739857399574005740157402574035740457405574065740757408574095741057411574125741357414574155741657417574185741957420574215742257423574245742557426574275742857429574305743157432574335743457435574365743757438574395744057441574425744357444574455744657447574485744957450574515745257453574545745557456574575745857459574605746157462574635746457465574665746757468574695747057471574725747357474574755747657477574785747957480574815748257483574845748557486574875748857489574905749157492574935749457495574965749757498574995750057501575025750357504575055750657507575085750957510575115751257513575145751557516575175751857519575205752157522575235752457525575265752757528575295753057531575325753357534575355753657537575385753957540575415754257543575445754557546575475754857549575505755157552575535755457555575565755757558575595756057561575625756357564575655756657567575685756957570575715757257573575745757557576575775757857579575805758157582575835758457585575865758757588575895759057591575925759357594575955759657597575985759957600576015760257603576045760557606576075760857609576105761157612576135761457615576165761757618576195762057621576225762357624576255762657627576285762957630576315763257633576345763557636576375763857639576405764157642576435764457645576465764757648576495765057651576525765357654576555765657657576585765957660576615766257663576645766557666576675766857669576705767157672576735767457675576765767757678576795768057681576825768357684576855768657687576885768957690576915769257693576945769557696576975769857699577005770157702577035770457705577065770757708577095771057711577125771357714577155771657717577185771957720577215772257723577245772557726577275772857729577305773157732577335773457735577365773757738577395774057741577425774357744577455774657747577485774957750577515775257753577545775557756577575775857759577605776157762577635776457765577665776757768577695777057771577725777357774577755777657777577785777957780577815778257783577845778557786577875778857789577905779157792577935779457795577965779757798577995780057801578025780357804578055780657807578085780957810578115781257813578145781557816578175781857819578205782157822578235782457825578265782757828578295783057831578325783357834578355783657837578385783957840578415784257843578445784557846578475784857849578505785157852578535785457855578565785757858578595786057861578625786357864578655786657867578685786957870578715787257873578745787557876578775787857879578805788157882578835788457885578865788757888578895789057891578925789357894578955789657897578985789957900579015790257903579045790557906579075790857909579105791157912579135791457915579165791757918579195792057921579225792357924579255792657927579285792957930579315793257933579345793557936579375793857939579405794157942579435794457945579465794757948579495795057951579525795357954579555795657957579585795957960579615796257963579645796557966579675796857969579705797157972579735797457975579765797757978579795798057981579825798357984579855798657987579885798957990579915799257993579945799557996579975799857999580005800158002580035800458005580065800758008580095801058011580125801358014580155801658017580185801958020580215802258023580245802558026580275802858029580305803158032580335803458035580365803758038580395804058041580425804358044580455804658047580485804958050580515805258053580545805558056580575805858059580605806158062580635806458065580665806758068580695807058071580725807358074580755807658077580785807958080580815808258083580845808558086580875808858089580905809158092580935809458095580965809758098580995810058101581025810358104581055810658107581085810958110581115811258113581145811558116581175811858119581205812158122581235812458125581265812758128581295813058131581325813358134581355813658137581385813958140581415814258143581445814558146581475814858149581505815158152581535815458155581565815758158581595816058161581625816358164581655816658167581685816958170581715817258173581745817558176581775817858179581805818158182581835818458185581865818758188581895819058191581925819358194581955819658197581985819958200582015820258203582045820558206582075820858209582105821158212582135821458215582165821758218582195822058221582225822358224582255822658227582285822958230582315823258233582345823558236582375823858239582405824158242582435824458245582465824758248582495825058251582525825358254582555825658257582585825958260582615826258263582645826558266582675826858269582705827158272582735827458275582765827758278582795828058281582825828358284582855828658287582885828958290582915829258293582945829558296582975829858299583005830158302583035830458305583065830758308583095831058311583125831358314583155831658317583185831958320583215832258323583245832558326583275832858329583305833158332583335833458335583365833758338583395834058341583425834358344583455834658347583485834958350583515835258353583545835558356583575835858359583605836158362583635836458365583665836758368583695837058371583725837358374583755837658377583785837958380583815838258383583845838558386583875838858389583905839158392583935839458395583965839758398583995840058401584025840358404584055840658407584085840958410584115841258413584145841558416584175841858419584205842158422584235842458425584265842758428584295843058431584325843358434584355843658437584385843958440584415844258443584445844558446584475844858449584505845158452584535845458455584565845758458584595846058461584625846358464584655846658467584685846958470584715847258473584745847558476584775847858479584805848158482584835848458485584865848758488584895849058491584925849358494584955849658497584985849958500585015850258503585045850558506585075850858509585105851158512585135851458515585165851758518585195852058521585225852358524585255852658527585285852958530585315853258533585345853558536585375853858539585405854158542585435854458545585465854758548585495855058551585525855358554585555855658557585585855958560585615856258563585645856558566585675856858569585705857158572585735857458575585765857758578585795858058581585825858358584585855858658587585885858958590585915859258593585945859558596585975859858599586005860158602586035860458605586065860758608586095861058611586125861358614586155861658617586185861958620586215862258623586245862558626586275862858629586305863158632586335863458635586365863758638586395864058641586425864358644586455864658647586485864958650586515865258653586545865558656586575865858659586605866158662586635866458665586665866758668586695867058671586725867358674586755867658677586785867958680586815868258683586845868558686586875868858689586905869158692586935869458695586965869758698586995870058701587025870358704587055870658707587085870958710587115871258713587145871558716587175871858719587205872158722587235872458725587265872758728587295873058731587325873358734587355873658737587385873958740587415874258743587445874558746587475874858749587505875158752587535875458755587565875758758587595876058761587625876358764587655876658767587685876958770587715877258773587745877558776587775877858779587805878158782587835878458785587865878758788587895879058791587925879358794587955879658797587985879958800588015880258803588045880558806588075880858809588105881158812588135881458815588165881758818588195882058821588225882358824588255882658827588285882958830588315883258833588345883558836588375883858839588405884158842588435884458845588465884758848588495885058851588525885358854588555885658857588585885958860588615886258863588645886558866588675886858869588705887158872588735887458875588765887758878588795888058881588825888358884588855888658887588885888958890588915889258893588945889558896588975889858899589005890158902589035890458905589065890758908589095891058911589125891358914589155891658917589185891958920589215892258923589245892558926589275892858929589305893158932589335893458935589365893758938589395894058941589425894358944589455894658947589485894958950589515895258953589545895558956589575895858959589605896158962589635896458965589665896758968589695897058971589725897358974589755897658977589785897958980589815898258983589845898558986589875898858989589905899158992589935899458995589965899758998589995900059001590025900359004590055900659007590085900959010590115901259013590145901559016590175901859019590205902159022590235902459025590265902759028590295903059031590325903359034590355903659037590385903959040590415904259043590445904559046590475904859049590505905159052590535905459055590565905759058590595906059061590625906359064590655906659067590685906959070590715907259073590745907559076590775907859079590805908159082590835908459085590865908759088590895909059091590925909359094590955909659097590985909959100591015910259103591045910559106591075910859109591105911159112591135911459115591165911759118591195912059121591225912359124591255912659127591285912959130591315913259133591345913559136591375913859139591405914159142591435914459145591465914759148591495915059151591525915359154591555915659157591585915959160591615916259163591645916559166591675916859169591705917159172591735917459175591765917759178591795918059181591825918359184591855918659187591885918959190591915919259193591945919559196591975919859199592005920159202592035920459205592065920759208592095921059211592125921359214592155921659217592185921959220592215922259223592245922559226592275922859229592305923159232592335923459235592365923759238592395924059241592425924359244592455924659247592485924959250592515925259253592545925559256592575925859259592605926159262592635926459265592665926759268592695927059271592725927359274592755927659277592785927959280592815928259283592845928559286592875928859289592905929159292592935929459295592965929759298592995930059301593025930359304593055930659307593085930959310593115931259313593145931559316593175931859319593205932159322593235932459325593265932759328593295933059331593325933359334593355933659337593385933959340593415934259343593445934559346593475934859349593505935159352593535935459355593565935759358593595936059361593625936359364593655936659367593685936959370593715937259373593745937559376593775937859379593805938159382593835938459385593865938759388593895939059391593925939359394593955939659397593985939959400594015940259403594045940559406594075940859409594105941159412594135941459415594165941759418594195942059421594225942359424594255942659427594285942959430594315943259433594345943559436594375943859439594405944159442594435944459445594465944759448594495945059451594525945359454594555945659457594585945959460594615946259463594645946559466594675946859469594705947159472594735947459475594765947759478594795948059481594825948359484594855948659487594885948959490594915949259493594945949559496594975949859499595005950159502595035950459505595065950759508595095951059511595125951359514595155951659517595185951959520595215952259523595245952559526595275952859529595305953159532595335953459535595365953759538595395954059541595425954359544595455954659547595485954959550595515955259553595545955559556595575955859559595605956159562595635956459565595665956759568595695957059571595725957359574595755957659577595785957959580595815958259583595845958559586595875958859589595905959159592595935959459595595965959759598595995960059601596025960359604596055960659607596085960959610596115961259613596145961559616596175961859619596205962159622596235962459625596265962759628596295963059631596325963359634596355963659637596385963959640596415964259643596445964559646596475964859649596505965159652596535965459655596565965759658596595966059661596625966359664596655966659667596685966959670596715967259673596745967559676596775967859679596805968159682596835968459685596865968759688596895969059691596925969359694596955969659697596985969959700597015970259703597045970559706597075970859709597105971159712597135971459715597165971759718597195972059721597225972359724597255972659727597285972959730597315973259733597345973559736597375973859739597405974159742597435974459745597465974759748597495975059751597525975359754597555975659757597585975959760597615976259763597645976559766597675976859769597705977159772597735977459775597765977759778597795978059781597825978359784597855978659787597885978959790597915979259793597945979559796597975979859799598005980159802598035980459805598065980759808598095981059811598125981359814598155981659817598185981959820598215982259823598245982559826598275982859829598305983159832598335983459835598365983759838598395984059841598425984359844598455984659847598485984959850598515985259853598545985559856598575985859859598605986159862598635986459865598665986759868598695987059871598725987359874598755987659877598785987959880598815988259883598845988559886598875988859889598905989159892598935989459895598965989759898598995990059901599025990359904599055990659907599085990959910599115991259913599145991559916599175991859919599205992159922599235992459925599265992759928599295993059931599325993359934599355993659937599385993959940599415994259943599445994559946599475994859949599505995159952599535995459955599565995759958599595996059961599625996359964599655996659967599685996959970599715997259973599745997559976599775997859979599805998159982599835998459985599865998759988599895999059991599925999359994599955999659997599985999960000600016000260003600046000560006600076000860009600106001160012600136001460015600166001760018600196002060021600226002360024600256002660027600286002960030600316003260033600346003560036600376003860039600406004160042600436004460045600466004760048600496005060051600526005360054600556005660057600586005960060600616006260063600646006560066600676006860069600706007160072600736007460075600766007760078600796008060081600826008360084600856008660087600886008960090600916009260093600946009560096600976009860099601006010160102601036010460105601066010760108601096011060111601126011360114601156011660117601186011960120601216012260123601246012560126601276012860129601306013160132601336013460135601366013760138601396014060141601426014360144601456014660147601486014960150601516015260153601546015560156601576015860159601606016160162601636016460165601666016760168601696017060171601726017360174601756017660177601786017960180601816018260183601846018560186601876018860189601906019160192601936019460195601966019760198601996020060201602026020360204602056020660207602086020960210602116021260213602146021560216602176021860219602206022160222602236022460225602266022760228602296023060231602326023360234602356023660237602386023960240602416024260243602446024560246602476024860249602506025160252602536025460255602566025760258602596026060261602626026360264602656026660267602686026960270602716027260273602746027560276602776027860279602806028160282602836028460285602866028760288602896029060291602926029360294602956029660297602986029960300603016030260303603046030560306603076030860309603106031160312603136031460315603166031760318603196032060321603226032360324603256032660327603286032960330603316033260333603346033560336603376033860339603406034160342603436034460345603466034760348603496035060351603526035360354603556035660357603586035960360603616036260363603646036560366603676036860369603706037160372603736037460375603766037760378603796038060381603826038360384603856038660387603886038960390603916039260393603946039560396603976039860399604006040160402604036040460405604066040760408604096041060411604126041360414604156041660417604186041960420604216042260423604246042560426604276042860429604306043160432604336043460435604366043760438604396044060441604426044360444604456044660447604486044960450604516045260453604546045560456604576045860459604606046160462604636046460465604666046760468604696047060471604726047360474604756047660477604786047960480604816048260483604846048560486604876048860489604906049160492604936049460495604966049760498604996050060501605026050360504605056050660507605086050960510605116051260513605146051560516605176051860519605206052160522605236052460525605266052760528605296053060531605326053360534605356053660537605386053960540605416054260543605446054560546605476054860549605506055160552605536055460555605566055760558605596056060561605626056360564605656056660567605686056960570605716057260573605746057560576605776057860579605806058160582605836058460585605866058760588605896059060591605926059360594605956059660597605986059960600606016060260603606046060560606606076060860609606106061160612606136061460615606166061760618606196062060621606226062360624606256062660627606286062960630606316063260633606346063560636606376063860639606406064160642606436064460645606466064760648606496065060651606526065360654606556065660657606586065960660606616066260663606646066560666606676066860669606706067160672606736067460675606766067760678606796068060681606826068360684606856068660687606886068960690606916069260693606946069560696606976069860699607006070160702607036070460705607066070760708607096071060711607126071360714607156071660717607186071960720607216072260723607246072560726607276072860729607306073160732607336073460735607366073760738607396074060741607426074360744607456074660747607486074960750607516075260753607546075560756607576075860759607606076160762607636076460765607666076760768607696077060771607726077360774607756077660777607786077960780607816078260783607846078560786607876078860789607906079160792607936079460795607966079760798607996080060801608026080360804608056080660807608086080960810608116081260813608146081560816608176081860819608206082160822608236082460825608266082760828608296083060831608326083360834608356083660837608386083960840608416084260843608446084560846608476084860849608506085160852608536085460855608566085760858608596086060861608626086360864608656086660867608686086960870608716087260873608746087560876608776087860879608806088160882608836088460885608866088760888608896089060891608926089360894608956089660897608986089960900609016090260903609046090560906609076090860909609106091160912609136091460915609166091760918609196092060921609226092360924609256092660927609286092960930609316093260933609346093560936609376093860939609406094160942609436094460945609466094760948609496095060951609526095360954609556095660957609586095960960609616096260963609646096560966609676096860969609706097160972609736097460975609766097760978609796098060981609826098360984609856098660987609886098960990609916099260993609946099560996609976099860999610006100161002610036100461005610066100761008610096101061011610126101361014610156101661017610186101961020610216102261023610246102561026610276102861029610306103161032610336103461035610366103761038610396104061041610426104361044610456104661047610486104961050610516105261053610546105561056610576105861059610606106161062610636106461065610666106761068610696107061071610726107361074610756107661077610786107961080610816108261083610846108561086610876108861089610906109161092610936109461095610966109761098610996110061101611026110361104611056110661107611086110961110611116111261113611146111561116611176111861119611206112161122611236112461125611266112761128611296113061131611326113361134611356113661137611386113961140611416114261143611446114561146611476114861149611506115161152611536115461155611566115761158611596116061161611626116361164611656116661167611686116961170611716117261173611746117561176611776117861179611806118161182611836118461185611866118761188611896119061191611926119361194611956119661197611986119961200612016120261203612046120561206612076120861209612106121161212612136121461215612166121761218612196122061221612226122361224612256122661227612286122961230612316123261233612346123561236612376123861239612406124161242612436124461245612466124761248612496125061251612526125361254612556125661257612586125961260612616126261263612646126561266612676126861269612706127161272612736127461275612766127761278612796128061281612826128361284612856128661287612886128961290612916129261293612946129561296612976129861299613006130161302613036130461305613066130761308613096131061311613126131361314613156131661317613186131961320613216132261323613246132561326613276132861329613306133161332613336133461335613366133761338613396134061341613426134361344613456134661347613486134961350613516135261353613546135561356613576135861359613606136161362613636136461365613666136761368613696137061371613726137361374613756137661377613786137961380613816138261383613846138561386613876138861389613906139161392613936139461395613966139761398613996140061401614026140361404614056140661407614086140961410614116141261413614146141561416614176141861419614206142161422614236142461425614266142761428614296143061431614326143361434614356143661437614386143961440614416144261443614446144561446614476144861449614506145161452614536145461455614566145761458614596146061461614626146361464614656146661467614686146961470614716147261473614746147561476614776147861479614806148161482614836148461485614866148761488614896149061491614926149361494614956149661497614986149961500615016150261503615046150561506615076150861509615106151161512615136151461515615166151761518615196152061521615226152361524615256152661527615286152961530615316153261533615346153561536615376153861539615406154161542615436154461545615466154761548615496155061551615526155361554615556155661557615586155961560615616156261563615646156561566615676156861569615706157161572615736157461575615766157761578615796158061581615826158361584615856158661587615886158961590615916159261593615946159561596615976159861599616006160161602616036160461605616066160761608616096161061611616126161361614616156161661617616186161961620616216162261623616246162561626616276162861629616306163161632616336163461635616366163761638616396164061641616426164361644616456164661647616486164961650616516165261653616546165561656616576165861659616606166161662616636166461665616666166761668616696167061671616726167361674616756167661677616786167961680616816168261683616846168561686616876168861689616906169161692616936169461695616966169761698616996170061701617026170361704617056170661707617086170961710617116171261713617146171561716617176171861719617206172161722617236172461725617266172761728617296173061731617326173361734617356173661737617386173961740617416174261743617446174561746617476174861749617506175161752617536175461755617566175761758617596176061761617626176361764617656176661767617686176961770617716177261773617746177561776617776177861779617806178161782617836178461785617866178761788617896179061791617926179361794617956179661797617986179961800618016180261803618046180561806618076180861809618106181161812618136181461815618166181761818618196182061821618226182361824618256182661827618286182961830618316183261833618346183561836618376183861839618406184161842618436184461845618466184761848618496185061851618526185361854618556185661857618586185961860618616186261863618646186561866618676186861869618706187161872618736187461875618766187761878618796188061881618826188361884618856188661887618886188961890618916189261893618946189561896618976189861899619006190161902619036190461905619066190761908619096191061911619126191361914619156191661917619186191961920619216192261923619246192561926619276192861929619306193161932619336193461935619366193761938619396194061941619426194361944619456194661947619486194961950619516195261953619546195561956619576195861959619606196161962619636196461965619666196761968619696197061971619726197361974619756197661977619786197961980619816198261983619846198561986619876198861989619906199161992619936199461995619966199761998619996200062001620026200362004620056200662007620086200962010620116201262013620146201562016620176201862019620206202162022620236202462025620266202762028620296203062031620326203362034620356203662037620386203962040620416204262043620446204562046620476204862049620506205162052620536205462055620566205762058620596206062061620626206362064620656206662067620686206962070620716207262073620746207562076620776207862079620806208162082620836208462085620866208762088620896209062091620926209362094620956209662097620986209962100621016210262103621046210562106621076210862109621106211162112621136211462115621166211762118621196212062121621226212362124621256212662127621286212962130621316213262133621346213562136621376213862139621406214162142621436214462145621466214762148621496215062151621526215362154621556215662157621586215962160621616216262163621646216562166621676216862169621706217162172621736217462175621766217762178621796218062181621826218362184621856218662187621886218962190621916219262193621946219562196621976219862199622006220162202622036220462205622066220762208622096221062211622126221362214622156221662217622186221962220622216222262223622246222562226622276222862229622306223162232622336223462235622366223762238622396224062241622426224362244622456224662247622486224962250622516225262253622546225562256622576225862259622606226162262622636226462265622666226762268622696227062271622726227362274622756227662277622786227962280622816228262283622846228562286622876228862289622906229162292622936229462295622966229762298622996230062301623026230362304623056230662307623086230962310623116231262313623146231562316623176231862319623206232162322623236232462325623266232762328623296233062331623326233362334623356233662337623386233962340623416234262343623446234562346623476234862349623506235162352623536235462355623566235762358623596236062361623626236362364623656236662367623686236962370623716237262373623746237562376623776237862379623806238162382623836238462385623866238762388623896239062391623926239362394623956239662397623986239962400624016240262403624046240562406624076240862409624106241162412624136241462415624166241762418624196242062421624226242362424624256242662427624286242962430624316243262433624346243562436624376243862439624406244162442624436244462445624466244762448624496245062451624526245362454624556245662457624586245962460624616246262463624646246562466624676246862469624706247162472624736247462475624766247762478624796248062481624826248362484624856248662487624886248962490624916249262493624946249562496624976249862499625006250162502625036250462505625066250762508625096251062511625126251362514625156251662517625186251962520625216252262523625246252562526625276252862529625306253162532625336253462535625366253762538625396254062541625426254362544625456254662547625486254962550625516255262553625546255562556625576255862559625606256162562625636256462565625666256762568625696257062571625726257362574625756257662577625786257962580625816258262583625846258562586625876258862589625906259162592625936259462595625966259762598625996260062601626026260362604626056260662607626086260962610626116261262613626146261562616626176261862619626206262162622626236262462625626266262762628626296263062631626326263362634626356263662637626386263962640626416264262643626446264562646626476264862649626506265162652626536265462655626566265762658626596266062661626626266362664626656266662667626686266962670626716267262673626746267562676626776267862679626806268162682626836268462685626866268762688626896269062691626926269362694626956269662697626986269962700627016270262703627046270562706627076270862709627106271162712627136271462715627166271762718627196272062721627226272362724627256272662727627286272962730627316273262733627346273562736627376273862739627406274162742627436274462745627466274762748627496275062751627526275362754627556275662757627586275962760627616276262763627646276562766627676276862769627706277162772627736277462775627766277762778627796278062781627826278362784627856278662787627886278962790627916279262793627946279562796627976279862799628006280162802628036280462805628066280762808628096281062811628126281362814628156281662817628186281962820628216282262823628246282562826628276282862829628306283162832628336283462835628366283762838628396284062841628426284362844628456284662847628486284962850628516285262853628546285562856628576285862859628606286162862628636286462865628666286762868628696287062871628726287362874628756287662877628786287962880628816288262883628846288562886628876288862889628906289162892628936289462895628966289762898628996290062901629026290362904629056290662907629086290962910629116291262913629146291562916629176291862919629206292162922629236292462925629266292762928629296293062931629326293362934629356293662937629386293962940629416294262943629446294562946629476294862949629506295162952629536295462955629566295762958629596296062961629626296362964629656296662967629686296962970629716297262973629746297562976629776297862979629806298162982629836298462985629866298762988629896299062991629926299362994629956299662997629986299963000630016300263003630046300563006630076300863009630106301163012630136301463015630166301763018630196302063021630226302363024630256302663027630286302963030630316303263033630346303563036630376303863039630406304163042630436304463045630466304763048630496305063051630526305363054630556305663057630586305963060630616306263063630646306563066630676306863069630706307163072630736307463075630766307763078630796308063081630826308363084630856308663087630886308963090630916309263093630946309563096630976309863099631006310163102631036310463105631066310763108631096311063111631126311363114631156311663117631186311963120631216312263123631246312563126631276312863129631306313163132631336313463135631366313763138631396314063141631426314363144631456314663147631486314963150631516315263153631546315563156631576315863159631606316163162631636316463165631666316763168631696317063171631726317363174631756317663177631786317963180631816318263183631846318563186631876318863189631906319163192631936319463195631966319763198631996320063201632026320363204632056320663207632086320963210632116321263213632146321563216632176321863219632206322163222632236322463225632266322763228632296323063231632326323363234632356323663237632386323963240632416324263243632446324563246632476324863249632506325163252632536325463255632566325763258632596326063261632626326363264632656326663267632686326963270632716327263273632746327563276632776327863279632806328163282632836328463285632866328763288632896329063291632926329363294632956329663297632986329963300633016330263303633046330563306633076330863309633106331163312633136331463315633166331763318633196332063321633226332363324633256332663327633286332963330633316333263333633346333563336633376333863339633406334163342633436334463345633466334763348633496335063351633526335363354633556335663357633586335963360633616336263363633646336563366633676336863369633706337163372633736337463375633766337763378633796338063381633826338363384633856338663387633886338963390633916339263393633946339563396633976339863399634006340163402634036340463405634066340763408634096341063411634126341363414634156341663417634186341963420634216342263423634246342563426634276342863429634306343163432634336343463435634366343763438634396344063441634426344363444634456344663447634486344963450634516345263453634546345563456634576345863459634606346163462634636346463465634666346763468634696347063471634726347363474634756347663477634786347963480634816348263483634846348563486634876348863489634906349163492634936349463495634966349763498634996350063501635026350363504635056350663507635086350963510635116351263513635146351563516635176351863519635206352163522635236352463525635266352763528635296353063531635326353363534635356353663537635386353963540635416354263543635446354563546635476354863549635506355163552635536355463555635566355763558635596356063561635626356363564635656356663567635686356963570635716357263573635746357563576635776357863579635806358163582635836358463585635866358763588635896359063591635926359363594635956359663597635986359963600636016360263603636046360563606636076360863609636106361163612636136361463615636166361763618636196362063621636226362363624636256362663627636286362963630636316363263633636346363563636636376363863639636406364163642636436364463645636466364763648636496365063651636526365363654636556365663657636586365963660636616366263663636646366563666636676366863669636706367163672636736367463675636766367763678636796368063681636826368363684636856368663687636886368963690636916369263693636946369563696636976369863699637006370163702637036370463705637066370763708637096371063711637126371363714637156371663717637186371963720637216372263723637246372563726637276372863729637306373163732637336373463735637366373763738637396374063741637426374363744637456374663747637486374963750637516375263753637546375563756637576375863759637606376163762637636376463765637666376763768637696377063771637726377363774637756377663777637786377963780637816378263783637846378563786637876378863789637906379163792637936379463795637966379763798637996380063801638026380363804638056380663807638086380963810638116381263813638146381563816638176381863819638206382163822638236382463825638266382763828638296383063831638326383363834638356383663837638386383963840638416384263843638446384563846638476384863849638506385163852638536385463855638566385763858638596386063861638626386363864638656386663867638686386963870638716387263873638746387563876638776387863879638806388163882638836388463885638866388763888638896389063891638926389363894638956389663897638986389963900639016390263903639046390563906639076390863909639106391163912639136391463915639166391763918639196392063921639226392363924639256392663927639286392963930639316393263933639346393563936639376393863939639406394163942639436394463945639466394763948639496395063951639526395363954639556395663957639586395963960639616396263963639646396563966639676396863969639706397163972639736397463975639766397763978639796398063981639826398363984639856398663987639886398963990639916399263993639946399563996639976399863999640006400164002640036400464005640066400764008640096401064011640126401364014640156401664017640186401964020640216402264023640246402564026640276402864029640306403164032640336403464035640366403764038640396404064041640426404364044640456404664047640486404964050640516405264053640546405564056640576405864059640606406164062640636406464065640666406764068640696407064071640726407364074640756407664077640786407964080640816408264083640846408564086640876408864089640906409164092640936409464095640966409764098640996410064101641026410364104641056410664107641086410964110641116411264113641146411564116641176411864119641206412164122641236412464125641266412764128641296413064131641326413364134641356413664137641386413964140641416414264143641446414564146641476414864149641506415164152641536415464155641566415764158641596416064161641626416364164641656416664167641686416964170641716417264173641746417564176641776417864179641806418164182641836418464185641866418764188641896419064191641926419364194641956419664197641986419964200642016420264203642046420564206642076420864209642106421164212642136421464215642166421764218642196422064221642226422364224642256422664227642286422964230642316423264233642346423564236642376423864239642406424164242642436424464245642466424764248642496425064251642526425364254642556425664257642586425964260642616426264263642646426564266642676426864269642706427164272642736427464275642766427764278642796428064281642826428364284642856428664287642886428964290642916429264293642946429564296642976429864299643006430164302643036430464305643066430764308643096431064311643126431364314643156431664317643186431964320643216432264323643246432564326643276432864329643306433164332643336433464335643366433764338643396434064341643426434364344643456434664347643486434964350643516435264353643546435564356643576435864359643606436164362643636436464365643666436764368643696437064371643726437364374643756437664377643786437964380643816438264383643846438564386643876438864389643906439164392643936439464395643966439764398643996440064401644026440364404644056440664407644086440964410644116441264413644146441564416644176441864419644206442164422644236442464425644266442764428644296443064431644326443364434644356443664437644386443964440644416444264443644446444564446644476444864449644506445164452644536445464455644566445764458644596446064461644626446364464644656446664467644686446964470644716447264473644746447564476644776447864479644806448164482644836448464485644866448764488644896449064491644926449364494644956449664497644986449964500645016450264503645046450564506645076450864509645106451164512645136451464515645166451764518645196452064521645226452364524645256452664527645286452964530645316453264533645346453564536645376453864539645406454164542645436454464545645466454764548645496455064551645526455364554645556455664557645586455964560645616456264563645646456564566645676456864569645706457164572645736457464575645766457764578645796458064581645826458364584645856458664587645886458964590645916459264593645946459564596645976459864599646006460164602646036460464605646066460764608646096461064611646126461364614646156461664617646186461964620646216462264623646246462564626646276462864629646306463164632646336463464635646366463764638646396464064641646426464364644646456464664647646486464964650646516465264653646546465564656646576465864659646606466164662646636466464665646666466764668646696467064671646726467364674646756467664677646786467964680646816468264683646846468564686646876468864689646906469164692646936469464695646966469764698646996470064701647026470364704647056470664707647086470964710647116471264713647146471564716647176471864719647206472164722647236472464725647266472764728647296473064731647326473364734647356473664737647386473964740647416474264743647446474564746647476474864749647506475164752647536475464755647566475764758647596476064761647626476364764647656476664767647686476964770647716477264773647746477564776647776477864779647806478164782647836478464785647866478764788647896479064791647926479364794647956479664797647986479964800648016480264803648046480564806648076480864809648106481164812648136481464815648166481764818648196482064821648226482364824648256482664827648286482964830648316483264833648346483564836648376483864839648406484164842648436484464845648466484764848648496485064851648526485364854648556485664857648586485964860648616486264863648646486564866648676486864869648706487164872648736487464875648766487764878648796488064881648826488364884648856488664887648886488964890648916489264893648946489564896648976489864899649006490164902649036490464905649066490764908649096491064911649126491364914649156491664917649186491964920649216492264923649246492564926649276492864929649306493164932649336493464935649366493764938649396494064941649426494364944649456494664947649486494964950649516495264953649546495564956649576495864959649606496164962649636496464965649666496764968649696497064971649726497364974649756497664977649786497964980649816498264983649846498564986649876498864989649906499164992649936499464995649966499764998649996500065001650026500365004650056500665007650086500965010650116501265013650146501565016650176501865019650206502165022650236502465025650266502765028650296503065031650326503365034650356503665037650386503965040650416504265043650446504565046650476504865049650506505165052650536505465055650566505765058650596506065061650626506365064650656506665067650686506965070650716507265073650746507565076650776507865079650806508165082650836508465085650866508765088650896509065091650926509365094650956509665097650986509965100651016510265103651046510565106651076510865109651106511165112651136511465115651166511765118651196512065121651226512365124651256512665127651286512965130651316513265133651346513565136651376513865139651406514165142651436514465145651466514765148651496515065151651526515365154651556515665157651586515965160651616516265163651646516565166651676516865169651706517165172651736517465175651766517765178651796518065181651826518365184651856518665187651886518965190651916519265193651946519565196651976519865199652006520165202652036520465205652066520765208652096521065211652126521365214652156521665217652186521965220652216522265223652246522565226652276522865229652306523165232652336523465235652366523765238652396524065241652426524365244652456524665247652486524965250652516525265253652546525565256652576525865259652606526165262652636526465265652666526765268652696527065271652726527365274652756527665277652786527965280652816528265283652846528565286652876528865289652906529165292652936529465295652966529765298652996530065301653026530365304653056530665307653086530965310653116531265313653146531565316653176531865319653206532165322653236532465325653266532765328653296533065331653326533365334653356533665337653386533965340653416534265343653446534565346653476534865349653506535165352653536535465355653566535765358653596536065361653626536365364653656536665367653686536965370653716537265373653746537565376653776537865379653806538165382653836538465385653866538765388653896539065391653926539365394653956539665397653986539965400654016540265403654046540565406654076540865409654106541165412654136541465415654166541765418654196542065421654226542365424654256542665427654286542965430654316543265433654346543565436654376543865439654406544165442654436544465445654466544765448654496545065451654526545365454654556545665457654586545965460654616546265463654646546565466654676546865469654706547165472654736547465475654766547765478654796548065481654826548365484654856548665487654886548965490654916549265493654946549565496654976549865499655006550165502655036550465505655066550765508655096551065511655126551365514655156551665517655186551965520655216552265523655246552565526655276552865529655306553165532655336553465535655366553765538655396554065541655426554365544655456554665547655486554965550655516555265553655546555565556655576555865559655606556165562655636556465565655666556765568655696557065571655726557365574655756557665577655786557965580655816558265583655846558565586655876558865589655906559165592655936559465595655966559765598655996560065601656026560365604656056560665607656086560965610656116561265613656146561565616656176561865619656206562165622656236562465625656266562765628656296563065631656326563365634656356563665637656386563965640656416564265643656446564565646656476564865649656506565165652656536565465655656566565765658656596566065661656626566365664656656566665667656686566965670656716567265673656746567565676656776567865679656806568165682656836568465685656866568765688656896569065691656926569365694656956569665697656986569965700657016570265703657046570565706657076570865709657106571165712657136571465715657166571765718657196572065721657226572365724657256572665727657286572965730657316573265733657346573565736657376573865739657406574165742657436574465745657466574765748657496575065751657526575365754657556575665757657586575965760657616576265763657646576565766657676576865769657706577165772657736577465775657766577765778657796578065781657826578365784657856578665787657886578965790657916579265793657946579565796657976579865799658006580165802658036580465805658066580765808658096581065811658126581365814658156581665817658186581965820658216582265823658246582565826658276582865829658306583165832658336583465835658366583765838658396584065841658426584365844658456584665847658486584965850658516585265853658546585565856658576585865859658606586165862658636586465865658666586765868658696587065871658726587365874658756587665877658786587965880658816588265883658846588565886658876588865889658906589165892658936589465895658966589765898658996590065901659026590365904659056590665907659086590965910659116591265913659146591565916659176591865919659206592165922659236592465925659266592765928659296593065931659326593365934659356593665937659386593965940659416594265943659446594565946659476594865949659506595165952659536595465955659566595765958659596596065961659626596365964659656596665967659686596965970659716597265973659746597565976659776597865979659806598165982659836598465985659866598765988659896599065991659926599365994659956599665997659986599966000660016600266003660046600566006660076600866009660106601166012660136601466015660166601766018660196602066021660226602366024660256602666027660286602966030660316603266033660346603566036660376603866039660406604166042660436604466045660466604766048660496605066051660526605366054660556605666057660586605966060660616606266063660646606566066660676606866069660706607166072660736607466075660766607766078660796608066081660826608366084660856608666087660886608966090660916609266093660946609566096660976609866099661006610166102661036610466105661066610766108661096611066111661126611366114661156611666117661186611966120661216612266123661246612566126661276612866129661306613166132661336613466135661366613766138661396614066141661426614366144661456614666147661486614966150661516615266153661546615566156661576615866159661606616166162661636616466165661666616766168661696617066171661726617366174661756617666177661786617966180661816618266183661846618566186661876618866189661906619166192661936619466195661966619766198661996620066201662026620366204662056620666207662086620966210662116621266213662146621566216662176621866219662206622166222662236622466225662266622766228662296623066231662326623366234662356623666237662386623966240662416624266243662446624566246662476624866249662506625166252662536625466255662566625766258662596626066261662626626366264662656626666267662686626966270662716627266273662746627566276662776627866279662806628166282662836628466285662866628766288662896629066291662926629366294662956629666297662986629966300663016630266303663046630566306663076630866309663106631166312663136631466315663166631766318663196632066321663226632366324663256632666327663286632966330663316633266333663346633566336663376633866339663406634166342663436634466345663466634766348663496635066351663526635366354663556635666357663586635966360663616636266363663646636566366663676636866369663706637166372663736637466375663766637766378663796638066381663826638366384663856638666387663886638966390663916639266393663946639566396663976639866399664006640166402664036640466405664066640766408664096641066411664126641366414664156641666417664186641966420664216642266423664246642566426664276642866429664306643166432664336643466435664366643766438664396644066441664426644366444664456644666447664486644966450664516645266453664546645566456664576645866459664606646166462664636646466465664666646766468664696647066471664726647366474664756647666477664786647966480664816648266483664846648566486664876648866489664906649166492664936649466495664966649766498664996650066501665026650366504665056650666507665086650966510665116651266513665146651566516665176651866519665206652166522665236652466525665266652766528665296653066531665326653366534665356653666537665386653966540665416654266543665446654566546665476654866549665506655166552665536655466555665566655766558665596656066561665626656366564665656656666567665686656966570665716657266573665746657566576665776657866579665806658166582665836658466585665866658766588665896659066591665926659366594665956659666597665986659966600666016660266603666046660566606666076660866609666106661166612666136661466615666166661766618666196662066621666226662366624666256662666627666286662966630666316663266633666346663566636666376663866639666406664166642666436664466645666466664766648666496665066651666526665366654666556665666657666586665966660666616666266663666646666566666666676666866669666706667166672666736667466675666766667766678666796668066681666826668366684666856668666687666886668966690666916669266693666946669566696666976669866699667006670166702667036670466705667066670766708667096671066711667126671366714667156671666717667186671966720667216672266723667246672566726667276672866729667306673166732667336673466735667366673766738667396674066741667426674366744667456674666747667486674966750667516675266753667546675566756667576675866759667606676166762667636676466765667666676766768667696677066771667726677366774667756677666777667786677966780667816678266783667846678566786667876678866789667906679166792667936679466795667966679766798667996680066801668026680366804668056680666807668086680966810668116681266813668146681566816668176681866819668206682166822668236682466825668266682766828668296683066831668326683366834668356683666837668386683966840668416684266843668446684566846668476684866849668506685166852668536685466855668566685766858668596686066861668626686366864668656686666867668686686966870668716687266873668746687566876668776687866879668806688166882668836688466885668866688766888668896689066891668926689366894668956689666897668986689966900669016690266903669046690566906669076690866909669106691166912669136691466915669166691766918669196692066921669226692366924669256692666927669286692966930669316693266933669346693566936669376693866939669406694166942669436694466945669466694766948669496695066951669526695366954669556695666957669586695966960669616696266963669646696566966669676696866969669706697166972669736697466975669766697766978669796698066981669826698366984669856698666987669886698966990669916699266993669946699566996669976699866999670006700167002670036700467005670066700767008670096701067011670126701367014670156701667017670186701967020670216702267023670246702567026670276702867029670306703167032670336703467035670366703767038670396704067041670426704367044670456704667047670486704967050670516705267053670546705567056670576705867059670606706167062670636706467065670666706767068670696707067071670726707367074670756707667077670786707967080670816708267083670846708567086670876708867089670906709167092670936709467095670966709767098670996710067101671026710367104671056710667107671086710967110671116711267113671146711567116671176711867119671206712167122671236712467125671266712767128671296713067131671326713367134671356713667137671386713967140671416714267143671446714567146671476714867149671506715167152671536715467155671566715767158671596716067161671626716367164671656716667167671686716967170671716717267173671746717567176671776717867179671806718167182671836718467185671866718767188671896719067191671926719367194671956719667197671986719967200672016720267203672046720567206672076720867209672106721167212672136721467215672166721767218672196722067221672226722367224672256722667227672286722967230672316723267233672346723567236672376723867239672406724167242672436724467245672466724767248672496725067251672526725367254672556725667257672586725967260672616726267263672646726567266672676726867269672706727167272672736727467275672766727767278672796728067281672826728367284672856728667287672886728967290672916729267293672946729567296672976729867299673006730167302673036730467305673066730767308673096731067311673126731367314673156731667317673186731967320673216732267323673246732567326673276732867329673306733167332673336733467335673366733767338673396734067341673426734367344673456734667347673486734967350673516735267353673546735567356673576735867359673606736167362673636736467365673666736767368673696737067371673726737367374673756737667377673786737967380673816738267383673846738567386673876738867389673906739167392673936739467395673966739767398673996740067401674026740367404674056740667407674086740967410674116741267413674146741567416674176741867419674206742167422674236742467425674266742767428674296743067431674326743367434674356743667437674386743967440674416744267443674446744567446674476744867449674506745167452674536745467455674566745767458674596746067461674626746367464674656746667467674686746967470674716747267473674746747567476674776747867479674806748167482674836748467485674866748767488674896749067491674926749367494674956749667497674986749967500675016750267503675046750567506675076750867509675106751167512675136751467515675166751767518675196752067521675226752367524675256752667527675286752967530675316753267533675346753567536675376753867539675406754167542675436754467545675466754767548675496755067551675526755367554675556755667557675586755967560675616756267563675646756567566675676756867569675706757167572675736757467575675766757767578675796758067581675826758367584675856758667587675886758967590675916759267593675946759567596675976759867599676006760167602676036760467605676066760767608676096761067611676126761367614676156761667617676186761967620676216762267623676246762567626676276762867629676306763167632676336763467635676366763767638676396764067641676426764367644676456764667647676486764967650676516765267653676546765567656676576765867659676606766167662676636766467665676666766767668676696767067671676726767367674676756767667677676786767967680676816768267683676846768567686676876768867689676906769167692676936769467695676966769767698676996770067701677026770367704677056770667707677086770967710677116771267713677146771567716677176771867719677206772167722677236772467725677266772767728677296773067731677326773367734677356773667737677386773967740677416774267743677446774567746677476774867749677506775167752677536775467755677566775767758677596776067761677626776367764677656776667767677686776967770677716777267773677746777567776677776777867779677806778167782677836778467785677866778767788677896779067791677926779367794677956779667797677986779967800678016780267803678046780567806678076780867809678106781167812678136781467815678166781767818678196782067821678226782367824678256782667827678286782967830678316783267833678346783567836678376783867839678406784167842678436784467845678466784767848678496785067851678526785367854678556785667857678586785967860678616786267863678646786567866678676786867869678706787167872678736787467875678766787767878678796788067881678826788367884678856788667887678886788967890678916789267893678946789567896678976789867899679006790167902679036790467905679066790767908679096791067911679126791367914679156791667917679186791967920679216792267923679246792567926679276792867929679306793167932679336793467935679366793767938679396794067941679426794367944679456794667947679486794967950679516795267953679546795567956679576795867959679606796167962679636796467965679666796767968679696797067971679726797367974679756797667977679786797967980679816798267983679846798567986679876798867989679906799167992679936799467995679966799767998679996800068001680026800368004680056800668007680086800968010680116801268013680146801568016680176801868019680206802168022680236802468025680266802768028680296803068031680326803368034680356803668037680386803968040680416804268043680446804568046680476804868049680506805168052680536805468055680566805768058680596806068061680626806368064680656806668067680686806968070680716807268073680746807568076680776807868079680806808168082680836808468085680866808768088680896809068091680926809368094680956809668097680986809968100681016810268103681046810568106681076810868109681106811168112681136811468115681166811768118681196812068121681226812368124681256812668127681286812968130681316813268133681346813568136681376813868139681406814168142681436814468145681466814768148681496815068151681526815368154681556815668157681586815968160681616816268163681646816568166681676816868169681706817168172681736817468175681766817768178681796818068181681826818368184681856818668187681886818968190681916819268193681946819568196681976819868199682006820168202682036820468205682066820768208682096821068211682126821368214682156821668217682186821968220682216822268223682246822568226682276822868229682306823168232682336823468235682366823768238682396824068241682426824368244682456824668247682486824968250682516825268253682546825568256682576825868259682606826168262682636826468265682666826768268682696827068271682726827368274682756827668277682786827968280682816828268283682846828568286682876828868289682906829168292682936829468295682966829768298682996830068301683026830368304683056830668307683086830968310683116831268313683146831568316683176831868319683206832168322683236832468325683266832768328683296833068331683326833368334683356833668337683386833968340683416834268343683446834568346683476834868349683506835168352683536835468355683566835768358683596836068361683626836368364683656836668367683686836968370683716837268373683746837568376683776837868379683806838168382683836838468385683866838768388683896839068391683926839368394683956839668397683986839968400684016840268403684046840568406684076840868409684106841168412684136841468415684166841768418684196842068421684226842368424684256842668427684286842968430684316843268433684346843568436684376843868439684406844168442684436844468445684466844768448684496845068451684526845368454684556845668457684586845968460684616846268463684646846568466684676846868469684706847168472684736847468475684766847768478684796848068481684826848368484684856848668487684886848968490684916849268493684946849568496684976849868499685006850168502685036850468505685066850768508685096851068511685126851368514685156851668517685186851968520685216852268523685246852568526685276852868529685306853168532685336853468535685366853768538685396854068541685426854368544685456854668547685486854968550685516855268553685546855568556685576855868559685606856168562685636856468565685666856768568685696857068571685726857368574685756857668577685786857968580685816858268583685846858568586685876858868589685906859168592685936859468595685966859768598685996860068601686026860368604686056860668607686086860968610686116861268613686146861568616686176861868619686206862168622686236862468625686266862768628686296863068631686326863368634686356863668637686386863968640686416864268643686446864568646686476864868649686506865168652686536865468655686566865768658686596866068661686626866368664686656866668667686686866968670686716867268673686746867568676686776867868679686806868168682686836868468685686866868768688686896869068691686926869368694686956869668697686986869968700687016870268703687046870568706687076870868709687106871168712687136871468715687166871768718687196872068721687226872368724687256872668727687286872968730687316873268733687346873568736687376873868739687406874168742687436874468745687466874768748687496875068751687526875368754687556875668757687586875968760687616876268763687646876568766687676876868769687706877168772687736877468775687766877768778687796878068781687826878368784687856878668787687886878968790687916879268793687946879568796687976879868799688006880168802688036880468805688066880768808688096881068811688126881368814688156881668817688186881968820688216882268823688246882568826688276882868829688306883168832688336883468835688366883768838688396884068841688426884368844688456884668847688486884968850688516885268853688546885568856688576885868859688606886168862688636886468865688666886768868688696887068871688726887368874688756887668877688786887968880688816888268883688846888568886688876888868889688906889168892688936889468895688966889768898688996890068901689026890368904689056890668907689086890968910689116891268913689146891568916689176891868919689206892168922689236892468925689266892768928689296893068931689326893368934689356893668937689386893968940689416894268943689446894568946689476894868949689506895168952689536895468955689566895768958689596896068961689626896368964689656896668967689686896968970689716897268973689746897568976689776897868979689806898168982689836898468985689866898768988689896899068991689926899368994689956899668997689986899969000690016900269003690046900569006690076900869009690106901169012690136901469015690166901769018690196902069021690226902369024690256902669027690286902969030690316903269033690346903569036690376903869039690406904169042690436904469045690466904769048690496905069051690526905369054690556905669057690586905969060690616906269063690646906569066690676906869069690706907169072690736907469075690766907769078690796908069081690826908369084690856908669087690886908969090690916909269093690946909569096690976909869099691006910169102691036910469105691066910769108691096911069111691126911369114691156911669117691186911969120691216912269123691246912569126691276912869129691306913169132691336913469135691366913769138691396914069141691426914369144691456914669147691486914969150691516915269153691546915569156691576915869159691606916169162691636916469165691666916769168691696917069171691726917369174691756917669177691786917969180691816918269183691846918569186691876918869189691906919169192691936919469195691966919769198691996920069201692026920369204692056920669207692086920969210692116921269213692146921569216692176921869219692206922169222692236922469225692266922769228692296923069231692326923369234692356923669237692386923969240692416924269243692446924569246692476924869249692506925169252692536925469255692566925769258692596926069261692626926369264692656926669267692686926969270692716927269273692746927569276692776927869279692806928169282692836928469285692866928769288692896929069291692926929369294692956929669297692986929969300693016930269303693046930569306693076930869309693106931169312693136931469315693166931769318693196932069321693226932369324693256932669327693286932969330693316933269333693346933569336693376933869339693406934169342693436934469345693466934769348693496935069351693526935369354693556935669357693586935969360693616936269363693646936569366693676936869369693706937169372693736937469375693766937769378693796938069381693826938369384693856938669387693886938969390693916939269393693946939569396693976939869399694006940169402694036940469405694066940769408694096941069411694126941369414694156941669417694186941969420694216942269423694246942569426694276942869429694306943169432694336943469435694366943769438694396944069441694426944369444694456944669447694486944969450694516945269453694546945569456694576945869459694606946169462694636946469465694666946769468694696947069471694726947369474694756947669477694786947969480694816948269483694846948569486694876948869489694906949169492694936949469495694966949769498694996950069501695026950369504695056950669507695086950969510695116951269513695146951569516695176951869519695206952169522695236952469525695266952769528695296953069531695326953369534695356953669537695386953969540695416954269543695446954569546695476954869549695506955169552695536955469555695566955769558695596956069561695626956369564695656956669567695686956969570695716957269573695746957569576695776957869579695806958169582695836958469585695866958769588695896959069591695926959369594695956959669597695986959969600696016960269603696046960569606696076960869609696106961169612696136961469615696166961769618696196962069621696226962369624696256962669627696286962969630696316963269633696346963569636696376963869639696406964169642696436964469645696466964769648696496965069651696526965369654696556965669657696586965969660696616966269663696646966569666696676966869669696706967169672696736967469675696766967769678696796968069681696826968369684696856968669687696886968969690696916969269693696946969569696696976969869699697006970169702697036970469705697066970769708697096971069711697126971369714697156971669717697186971969720697216972269723697246972569726697276972869729697306973169732697336973469735697366973769738697396974069741697426974369744697456974669747697486974969750697516975269753697546975569756697576975869759697606976169762697636976469765697666976769768697696977069771697726977369774697756977669777697786977969780697816978269783697846978569786697876978869789697906979169792697936979469795697966979769798697996980069801698026980369804698056980669807698086980969810698116981269813698146981569816698176981869819698206982169822698236982469825698266982769828698296983069831698326983369834698356983669837698386983969840698416984269843698446984569846698476984869849698506985169852698536985469855698566985769858698596986069861698626986369864698656986669867698686986969870698716987269873698746987569876698776987869879698806988169882698836988469885698866988769888698896989069891698926989369894698956989669897698986989969900699016990269903699046990569906699076990869909699106991169912699136991469915699166991769918699196992069921699226992369924699256992669927699286992969930699316993269933699346993569936699376993869939699406994169942699436994469945699466994769948699496995069951699526995369954699556995669957699586995969960699616996269963699646996569966699676996869969699706997169972699736997469975699766997769978699796998069981699826998369984699856998669987699886998969990699916999269993699946999569996699976999869999700007000170002700037000470005700067000770008700097001070011700127001370014700157001670017700187001970020700217002270023700247002570026700277002870029700307003170032700337003470035700367003770038700397004070041700427004370044700457004670047700487004970050700517005270053700547005570056700577005870059700607006170062700637006470065700667006770068700697007070071700727007370074700757007670077700787007970080700817008270083700847008570086700877008870089700907009170092700937009470095700967009770098700997010070101701027010370104701057010670107701087010970110701117011270113701147011570116701177011870119701207012170122701237012470125701267012770128701297013070131701327013370134701357013670137701387013970140701417014270143701447014570146701477014870149701507015170152701537015470155701567015770158701597016070161701627016370164701657016670167701687016970170701717017270173701747017570176701777017870179701807018170182701837018470185701867018770188701897019070191701927019370194701957019670197701987019970200702017020270203702047020570206702077020870209702107021170212702137021470215702167021770218702197022070221702227022370224702257022670227702287022970230702317023270233702347023570236702377023870239702407024170242702437024470245702467024770248702497025070251702527025370254702557025670257702587025970260702617026270263702647026570266702677026870269702707027170272702737027470275702767027770278702797028070281702827028370284702857028670287702887028970290702917029270293702947029570296702977029870299703007030170302703037030470305703067030770308703097031070311703127031370314703157031670317703187031970320703217032270323703247032570326703277032870329703307033170332703337033470335703367033770338703397034070341703427034370344703457034670347703487034970350703517035270353703547035570356703577035870359703607036170362703637036470365703667036770368703697037070371703727037370374703757037670377703787037970380703817038270383703847038570386703877038870389703907039170392703937039470395703967039770398703997040070401704027040370404704057040670407704087040970410704117041270413704147041570416704177041870419704207042170422704237042470425704267042770428704297043070431704327043370434704357043670437704387043970440704417044270443704447044570446704477044870449704507045170452704537045470455704567045770458704597046070461704627046370464704657046670467704687046970470704717047270473704747047570476704777047870479704807048170482704837048470485704867048770488704897049070491704927049370494704957049670497704987049970500705017050270503705047050570506705077050870509705107051170512705137051470515705167051770518705197052070521705227052370524705257052670527705287052970530705317053270533705347053570536705377053870539705407054170542705437054470545705467054770548705497055070551705527055370554705557055670557705587055970560705617056270563705647056570566705677056870569705707057170572705737057470575705767057770578705797058070581705827058370584705857058670587705887058970590705917059270593705947059570596705977059870599706007060170602706037060470605706067060770608706097061070611706127061370614706157061670617706187061970620706217062270623706247062570626706277062870629706307063170632706337063470635706367063770638706397064070641706427064370644706457064670647706487064970650706517065270653706547065570656706577065870659706607066170662706637066470665706667066770668706697067070671706727067370674706757067670677706787067970680706817068270683706847068570686706877068870689706907069170692706937069470695706967069770698706997070070701707027070370704707057070670707707087070970710707117071270713707147071570716707177071870719707207072170722707237072470725707267072770728707297073070731707327073370734707357073670737707387073970740707417074270743707447074570746707477074870749707507075170752707537075470755707567075770758707597076070761707627076370764707657076670767707687076970770707717077270773707747077570776707777077870779707807078170782707837078470785707867078770788707897079070791707927079370794707957079670797707987079970800708017080270803708047080570806708077080870809708107081170812708137081470815708167081770818708197082070821708227082370824708257082670827708287082970830708317083270833708347083570836708377083870839708407084170842708437084470845708467084770848708497085070851708527085370854708557085670857708587085970860708617086270863708647086570866708677086870869708707087170872708737087470875708767087770878708797088070881708827088370884708857088670887708887088970890708917089270893708947089570896708977089870899709007090170902709037090470905709067090770908709097091070911709127091370914709157091670917709187091970920709217092270923709247092570926709277092870929709307093170932709337093470935709367093770938709397094070941709427094370944709457094670947709487094970950709517095270953709547095570956709577095870959709607096170962709637096470965709667096770968709697097070971709727097370974709757097670977709787097970980709817098270983709847098570986709877098870989709907099170992709937099470995709967099770998709997100071001710027100371004710057100671007710087100971010710117101271013710147101571016710177101871019710207102171022710237102471025710267102771028710297103071031710327103371034710357103671037710387103971040710417104271043710447104571046710477104871049710507105171052710537105471055710567105771058710597106071061710627106371064710657106671067710687106971070710717107271073710747107571076710777107871079710807108171082710837108471085710867108771088710897109071091710927109371094710957109671097710987109971100711017110271103711047110571106711077110871109711107111171112711137111471115711167111771118711197112071121711227112371124711257112671127711287112971130711317113271133711347113571136711377113871139711407114171142711437114471145711467114771148711497115071151711527115371154711557115671157711587115971160711617116271163711647116571166711677116871169711707117171172711737117471175711767117771178711797118071181711827118371184711857118671187711887118971190711917119271193711947119571196711977119871199712007120171202712037120471205712067120771208712097121071211712127121371214712157121671217712187121971220712217122271223712247122571226712277122871229712307123171232712337123471235712367123771238712397124071241712427124371244712457124671247712487124971250712517125271253712547125571256712577125871259712607126171262712637126471265712667126771268712697127071271712727127371274712757127671277712787127971280712817128271283712847128571286712877128871289712907129171292712937129471295712967129771298712997130071301713027130371304713057130671307713087130971310713117131271313713147131571316713177131871319713207132171322713237132471325713267132771328713297133071331713327133371334713357133671337713387133971340713417134271343713447134571346713477134871349713507135171352713537135471355713567135771358713597136071361713627136371364713657136671367713687136971370713717137271373713747137571376713777137871379713807138171382713837138471385713867138771388713897139071391713927139371394713957139671397713987139971400714017140271403714047140571406714077140871409714107141171412714137141471415714167141771418714197142071421714227142371424714257142671427714287142971430714317143271433714347143571436714377143871439714407144171442714437144471445714467144771448714497145071451714527145371454714557145671457714587145971460714617146271463714647146571466714677146871469714707147171472714737147471475714767147771478714797148071481714827148371484714857148671487714887148971490714917149271493714947149571496714977149871499715007150171502715037150471505715067150771508715097151071511715127151371514715157151671517715187151971520715217152271523715247152571526715277152871529715307153171532715337153471535715367153771538715397154071541715427154371544715457154671547715487154971550715517155271553715547155571556715577155871559715607156171562715637156471565715667156771568715697157071571715727157371574715757157671577715787157971580715817158271583715847158571586715877158871589715907159171592715937159471595715967159771598715997160071601716027160371604716057160671607716087160971610716117161271613716147161571616716177161871619716207162171622716237162471625716267162771628716297163071631716327163371634716357163671637716387163971640716417164271643716447164571646716477164871649716507165171652716537165471655716567165771658716597166071661716627166371664716657166671667716687166971670716717167271673716747167571676716777167871679716807168171682716837168471685716867168771688716897169071691716927169371694716957169671697716987169971700717017170271703717047170571706717077170871709717107171171712717137171471715717167171771718717197172071721717227172371724717257172671727717287172971730717317173271733717347173571736717377173871739717407174171742717437174471745717467174771748717497175071751717527175371754717557175671757717587175971760717617176271763717647176571766717677176871769717707177171772717737177471775717767177771778717797178071781717827178371784717857178671787717887178971790717917179271793717947179571796717977179871799718007180171802718037180471805718067180771808718097181071811718127181371814718157181671817718187181971820718217182271823718247182571826718277182871829718307183171832718337183471835718367183771838718397184071841718427184371844718457184671847718487184971850718517185271853718547185571856718577185871859718607186171862718637186471865718667186771868718697187071871718727187371874718757187671877718787187971880718817188271883718847188571886718877188871889718907189171892718937189471895718967189771898718997190071901719027190371904719057190671907719087190971910719117191271913719147191571916719177191871919719207192171922719237192471925719267192771928719297193071931719327193371934719357193671937719387193971940719417194271943719447194571946719477194871949719507195171952719537195471955719567195771958719597196071961719627196371964719657196671967719687196971970719717197271973719747197571976719777197871979719807198171982719837198471985719867198771988719897199071991719927199371994719957199671997719987199972000720017200272003720047200572006720077200872009720107201172012720137201472015720167201772018720197202072021720227202372024720257202672027720287202972030720317203272033720347203572036720377203872039720407204172042720437204472045720467204772048720497205072051720527205372054720557205672057720587205972060720617206272063720647206572066720677206872069720707207172072720737207472075720767207772078720797208072081720827208372084720857208672087720887208972090720917209272093720947209572096720977209872099721007210172102721037210472105721067210772108721097211072111721127211372114721157211672117721187211972120721217212272123721247212572126721277212872129721307213172132721337213472135721367213772138721397214072141721427214372144721457214672147721487214972150721517215272153721547215572156721577215872159721607216172162721637216472165721667216772168721697217072171721727217372174721757217672177721787217972180721817218272183721847218572186721877218872189721907219172192721937219472195721967219772198721997220072201722027220372204722057220672207722087220972210722117221272213722147221572216722177221872219722207222172222722237222472225722267222772228722297223072231722327223372234722357223672237722387223972240722417224272243722447224572246722477224872249722507225172252722537225472255722567225772258722597226072261722627226372264722657226672267722687226972270722717227272273722747227572276722777227872279722807228172282722837228472285722867228772288722897229072291722927229372294722957229672297722987229972300723017230272303723047230572306723077230872309723107231172312723137231472315723167231772318723197232072321723227232372324723257232672327723287232972330723317233272333723347233572336723377233872339723407234172342723437234472345723467234772348723497235072351723527235372354723557235672357723587235972360723617236272363723647236572366723677236872369723707237172372723737237472375723767237772378723797238072381723827238372384723857238672387723887238972390723917239272393723947239572396723977239872399724007240172402724037240472405724067240772408724097241072411724127241372414724157241672417724187241972420724217242272423724247242572426724277242872429724307243172432724337243472435724367243772438724397244072441724427244372444724457244672447724487244972450724517245272453724547245572456724577245872459724607246172462724637246472465724667246772468724697247072471724727247372474724757247672477724787247972480724817248272483724847248572486724877248872489724907249172492724937249472495724967249772498724997250072501725027250372504725057250672507725087250972510725117251272513725147251572516725177251872519725207252172522725237252472525725267252772528725297253072531725327253372534725357253672537725387253972540725417254272543725447254572546725477254872549725507255172552725537255472555725567255772558725597256072561725627256372564725657256672567725687256972570725717257272573725747257572576725777257872579725807258172582725837258472585725867258772588725897259072591725927259372594725957259672597725987259972600726017260272603726047260572606726077260872609726107261172612726137261472615726167261772618726197262072621726227262372624726257262672627726287262972630726317263272633726347263572636726377263872639726407264172642726437264472645726467264772648726497265072651726527265372654726557265672657726587265972660726617266272663726647266572666726677266872669726707267172672726737267472675726767267772678726797268072681726827268372684726857268672687726887268972690726917269272693726947269572696726977269872699727007270172702727037270472705727067270772708727097271072711727127271372714727157271672717727187271972720727217272272723727247272572726727277272872729727307273172732727337273472735727367273772738727397274072741727427274372744727457274672747727487274972750727517275272753727547275572756727577275872759727607276172762727637276472765727667276772768727697277072771727727277372774727757277672777727787277972780727817278272783727847278572786727877278872789727907279172792727937279472795727967279772798727997280072801728027280372804728057280672807728087280972810728117281272813728147281572816728177281872819728207282172822728237282472825728267282772828728297283072831728327283372834728357283672837728387283972840728417284272843728447284572846728477284872849728507285172852728537285472855728567285772858728597286072861728627286372864728657286672867728687286972870728717287272873728747287572876728777287872879728807288172882728837288472885728867288772888728897289072891728927289372894728957289672897728987289972900729017290272903729047290572906729077290872909729107291172912729137291472915729167291772918729197292072921729227292372924729257292672927729287292972930729317293272933729347293572936729377293872939729407294172942729437294472945729467294772948729497295072951729527295372954729557295672957729587295972960729617296272963729647296572966729677296872969729707297172972729737297472975729767297772978729797298072981729827298372984729857298672987729887298972990729917299272993729947299572996729977299872999730007300173002730037300473005730067300773008730097301073011730127301373014730157301673017730187301973020730217302273023730247302573026730277302873029730307303173032730337303473035730367303773038730397304073041730427304373044730457304673047730487304973050730517305273053730547305573056730577305873059730607306173062730637306473065730667306773068730697307073071730727307373074730757307673077730787307973080730817308273083730847308573086730877308873089730907309173092730937309473095730967309773098730997310073101731027310373104731057310673107731087310973110731117311273113731147311573116731177311873119731207312173122731237312473125731267312773128731297313073131731327313373134731357313673137731387313973140731417314273143731447314573146731477314873149731507315173152731537315473155731567315773158731597316073161731627316373164731657316673167731687316973170731717317273173731747317573176731777317873179731807318173182731837318473185731867318773188731897319073191731927319373194731957319673197731987319973200732017320273203732047320573206732077320873209732107321173212732137321473215732167321773218732197322073221732227322373224732257322673227732287322973230732317323273233732347323573236732377323873239732407324173242732437324473245732467324773248732497325073251732527325373254732557325673257732587325973260732617326273263732647326573266732677326873269732707327173272732737327473275732767327773278732797328073281732827328373284732857328673287732887328973290732917329273293732947329573296732977329873299733007330173302733037330473305733067330773308733097331073311733127331373314733157331673317733187331973320733217332273323733247332573326733277332873329733307333173332733337333473335733367333773338733397334073341733427334373344733457334673347733487334973350733517335273353733547335573356733577335873359733607336173362733637336473365733667336773368733697337073371733727337373374733757337673377733787337973380733817338273383733847338573386733877338873389733907339173392733937339473395733967339773398733997340073401734027340373404734057340673407734087340973410734117341273413734147341573416734177341873419734207342173422734237342473425734267342773428734297343073431734327343373434734357343673437734387343973440734417344273443734447344573446734477344873449734507345173452734537345473455734567345773458734597346073461734627346373464734657346673467734687346973470734717347273473734747347573476734777347873479734807348173482734837348473485734867348773488734897349073491734927349373494734957349673497734987349973500735017350273503735047350573506735077350873509735107351173512735137351473515735167351773518735197352073521735227352373524735257352673527735287352973530735317353273533735347353573536735377353873539735407354173542735437354473545735467354773548735497355073551735527355373554735557355673557735587355973560735617356273563735647356573566735677356873569735707357173572735737357473575735767357773578735797358073581735827358373584735857358673587735887358973590735917359273593735947359573596735977359873599736007360173602736037360473605736067360773608736097361073611736127361373614736157361673617736187361973620736217362273623736247362573626736277362873629736307363173632736337363473635736367363773638736397364073641736427364373644736457364673647736487364973650736517365273653736547365573656736577365873659736607366173662736637366473665736667366773668736697367073671736727367373674736757367673677736787367973680736817368273683736847368573686736877368873689736907369173692736937369473695736967369773698736997370073701737027370373704737057370673707737087370973710737117371273713737147371573716737177371873719737207372173722737237372473725737267372773728737297373073731737327373373734737357373673737737387373973740737417374273743737447374573746737477374873749737507375173752737537375473755737567375773758737597376073761737627376373764737657376673767737687376973770737717377273773737747377573776737777377873779737807378173782737837378473785737867378773788737897379073791737927379373794737957379673797737987379973800738017380273803738047380573806738077380873809738107381173812738137381473815738167381773818738197382073821738227382373824738257382673827738287382973830738317383273833738347383573836738377383873839738407384173842738437384473845738467384773848738497385073851738527385373854738557385673857738587385973860738617386273863738647386573866738677386873869738707387173872738737387473875738767387773878738797388073881738827388373884738857388673887738887388973890738917389273893738947389573896738977389873899739007390173902739037390473905739067390773908739097391073911739127391373914739157391673917739187391973920739217392273923739247392573926739277392873929739307393173932739337393473935739367393773938739397394073941739427394373944739457394673947739487394973950739517395273953739547395573956739577395873959739607396173962739637396473965739667396773968739697397073971739727397373974739757397673977739787397973980739817398273983739847398573986739877398873989739907399173992739937399473995739967399773998739997400074001740027400374004740057400674007740087400974010740117401274013740147401574016740177401874019740207402174022740237402474025740267402774028740297403074031740327403374034740357403674037740387403974040740417404274043740447404574046740477404874049740507405174052740537405474055740567405774058740597406074061740627406374064740657406674067740687406974070740717407274073740747407574076740777407874079740807408174082740837408474085740867408774088740897409074091740927409374094740957409674097740987409974100741017410274103741047410574106741077410874109741107411174112741137411474115741167411774118741197412074121741227412374124741257412674127741287412974130741317413274133741347413574136741377413874139741407414174142741437414474145741467414774148741497415074151741527415374154741557415674157741587415974160741617416274163741647416574166741677416874169741707417174172741737417474175741767417774178741797418074181741827418374184741857418674187741887418974190741917419274193741947419574196741977419874199742007420174202742037420474205742067420774208742097421074211742127421374214742157421674217742187421974220742217422274223742247422574226742277422874229742307423174232742337423474235742367423774238742397424074241742427424374244742457424674247742487424974250742517425274253742547425574256742577425874259742607426174262742637426474265742667426774268742697427074271742727427374274742757427674277742787427974280742817428274283742847428574286742877428874289742907429174292742937429474295742967429774298742997430074301743027430374304743057430674307743087430974310743117431274313743147431574316743177431874319743207432174322743237432474325743267432774328743297433074331743327433374334743357433674337743387433974340743417434274343743447434574346743477434874349743507435174352743537435474355743567435774358743597436074361743627436374364743657436674367743687436974370743717437274373743747437574376743777437874379743807438174382743837438474385743867438774388743897439074391743927439374394743957439674397743987439974400744017440274403744047440574406744077440874409744107441174412744137441474415744167441774418744197442074421744227442374424744257442674427744287442974430744317443274433744347443574436744377443874439744407444174442744437444474445744467444774448744497445074451744527445374454744557445674457744587445974460744617446274463744647446574466744677446874469744707447174472744737447474475744767447774478744797448074481744827448374484744857448674487744887448974490744917449274493744947449574496744977449874499745007450174502745037450474505745067450774508745097451074511745127451374514745157451674517745187451974520745217452274523745247452574526745277452874529745307453174532745337453474535745367453774538745397454074541745427454374544745457454674547745487454974550745517455274553745547455574556745577455874559745607456174562745637456474565745667456774568745697457074571745727457374574745757457674577745787457974580745817458274583745847458574586745877458874589745907459174592745937459474595745967459774598745997460074601746027460374604746057460674607746087460974610746117461274613746147461574616746177461874619746207462174622746237462474625746267462774628746297463074631746327463374634746357463674637746387463974640746417464274643746447464574646746477464874649746507465174652746537465474655746567465774658746597466074661746627466374664746657466674667746687466974670746717467274673746747467574676746777467874679746807468174682746837468474685746867468774688746897469074691746927469374694746957469674697746987469974700747017470274703747047470574706747077470874709747107471174712747137471474715747167471774718747197472074721747227472374724747257472674727747287472974730747317473274733747347473574736747377473874739747407474174742747437474474745747467474774748747497475074751747527475374754747557475674757747587475974760747617476274763747647476574766747677476874769747707477174772747737477474775747767477774778747797478074781747827478374784747857478674787747887478974790747917479274793747947479574796747977479874799748007480174802748037480474805748067480774808748097481074811748127481374814748157481674817748187481974820748217482274823748247482574826748277482874829748307483174832748337483474835748367483774838748397484074841748427484374844748457484674847748487484974850748517485274853748547485574856748577485874859748607486174862748637486474865748667486774868748697487074871748727487374874748757487674877748787487974880748817488274883748847488574886748877488874889748907489174892748937489474895748967489774898748997490074901749027490374904749057490674907749087490974910749117491274913749147491574916749177491874919749207492174922749237492474925749267492774928749297493074931749327493374934749357493674937749387493974940749417494274943749447494574946749477494874949749507495174952749537495474955749567495774958749597496074961749627496374964749657496674967749687496974970749717497274973749747497574976749777497874979749807498174982749837498474985749867498774988749897499074991749927499374994749957499674997749987499975000750017500275003750047500575006750077500875009750107501175012750137501475015750167501775018750197502075021750227502375024750257502675027750287502975030750317503275033750347503575036750377503875039750407504175042750437504475045750467504775048750497505075051750527505375054750557505675057750587505975060750617506275063750647506575066750677506875069750707507175072750737507475075750767507775078750797508075081750827508375084750857508675087750887508975090750917509275093750947509575096750977509875099751007510175102751037510475105751067510775108751097511075111751127511375114751157511675117751187511975120751217512275123751247512575126751277512875129751307513175132751337513475135751367513775138751397514075141751427514375144751457514675147751487514975150751517515275153751547515575156751577515875159751607516175162751637516475165751667516775168751697517075171751727517375174751757517675177751787517975180751817518275183751847518575186751877518875189751907519175192751937519475195751967519775198751997520075201752027520375204752057520675207752087520975210752117521275213752147521575216752177521875219752207522175222752237522475225752267522775228752297523075231752327523375234752357523675237752387523975240752417524275243752447524575246752477524875249752507525175252752537525475255752567525775258752597526075261752627526375264752657526675267752687526975270752717527275273752747527575276752777527875279752807528175282752837528475285752867528775288752897529075291752927529375294752957529675297752987529975300753017530275303753047530575306753077530875309753107531175312753137531475315753167531775318753197532075321753227532375324753257532675327753287532975330753317533275333753347533575336753377533875339753407534175342753437534475345753467534775348753497535075351753527535375354753557535675357753587535975360753617536275363753647536575366753677536875369753707537175372753737537475375753767537775378753797538075381753827538375384753857538675387753887538975390753917539275393753947539575396753977539875399754007540175402754037540475405754067540775408754097541075411754127541375414754157541675417754187541975420754217542275423754247542575426754277542875429754307543175432754337543475435754367543775438754397544075441754427544375444754457544675447754487544975450754517545275453754547545575456754577545875459754607546175462754637546475465754667546775468754697547075471754727547375474754757547675477754787547975480754817548275483754847548575486754877548875489754907549175492754937549475495754967549775498754997550075501755027550375504755057550675507755087550975510755117551275513755147551575516755177551875519755207552175522755237552475525755267552775528755297553075531755327553375534755357553675537755387553975540755417554275543755447554575546755477554875549755507555175552755537555475555755567555775558755597556075561755627556375564755657556675567755687556975570755717557275573755747557575576755777557875579755807558175582755837558475585755867558775588755897559075591755927559375594755957559675597755987559975600756017560275603756047560575606756077560875609756107561175612756137561475615756167561775618756197562075621756227562375624756257562675627756287562975630756317563275633756347563575636756377563875639756407564175642756437564475645756467564775648756497565075651756527565375654756557565675657756587565975660756617566275663756647566575666756677566875669756707567175672756737567475675756767567775678756797568075681756827568375684756857568675687756887568975690756917569275693756947569575696756977569875699757007570175702757037570475705757067570775708757097571075711757127571375714757157571675717757187571975720757217572275723757247572575726757277572875729757307573175732757337573475735757367573775738757397574075741757427574375744757457574675747757487574975750757517575275753757547575575756757577575875759757607576175762757637576475765757667576775768757697577075771757727577375774757757577675777757787577975780757817578275783757847578575786757877578875789757907579175792757937579475795757967579775798757997580075801758027580375804758057580675807758087580975810758117581275813758147581575816758177581875819758207582175822758237582475825758267582775828758297583075831758327583375834758357583675837758387583975840758417584275843758447584575846758477584875849758507585175852758537585475855758567585775858758597586075861758627586375864758657586675867758687586975870758717587275873758747587575876758777587875879758807588175882758837588475885758867588775888758897589075891758927589375894758957589675897758987589975900759017590275903759047590575906759077590875909759107591175912759137591475915759167591775918759197592075921759227592375924759257592675927759287592975930759317593275933759347593575936759377593875939759407594175942759437594475945759467594775948759497595075951759527595375954759557595675957759587595975960759617596275963759647596575966759677596875969759707597175972759737597475975759767597775978759797598075981759827598375984759857598675987759887598975990759917599275993759947599575996759977599875999760007600176002760037600476005760067600776008760097601076011760127601376014760157601676017760187601976020760217602276023760247602576026760277602876029760307603176032760337603476035760367603776038760397604076041760427604376044760457604676047760487604976050760517605276053760547605576056760577605876059760607606176062760637606476065760667606776068760697607076071760727607376074760757607676077760787607976080760817608276083760847608576086760877608876089760907609176092760937609476095760967609776098760997610076101761027610376104761057610676107761087610976110761117611276113761147611576116761177611876119761207612176122761237612476125761267612776128761297613076131761327613376134761357613676137761387613976140761417614276143761447614576146761477614876149761507615176152761537615476155761567615776158761597616076161761627616376164761657616676167761687616976170761717617276173761747617576176761777617876179761807618176182761837618476185761867618776188761897619076191761927619376194761957619676197761987619976200762017620276203762047620576206762077620876209762107621176212762137621476215762167621776218762197622076221762227622376224762257622676227762287622976230762317623276233762347623576236762377623876239762407624176242762437624476245762467624776248762497625076251762527625376254762557625676257762587625976260762617626276263762647626576266762677626876269762707627176272762737627476275762767627776278762797628076281762827628376284762857628676287762887628976290762917629276293762947629576296762977629876299763007630176302763037630476305763067630776308763097631076311763127631376314763157631676317763187631976320763217632276323763247632576326763277632876329763307633176332763337633476335763367633776338763397634076341763427634376344763457634676347763487634976350763517635276353763547635576356763577635876359763607636176362763637636476365763667636776368763697637076371763727637376374763757637676377763787637976380763817638276383763847638576386763877638876389763907639176392763937639476395763967639776398763997640076401764027640376404764057640676407764087640976410764117641276413764147641576416764177641876419764207642176422764237642476425764267642776428764297643076431764327643376434764357643676437764387643976440764417644276443764447644576446764477644876449764507645176452764537645476455764567645776458764597646076461764627646376464764657646676467764687646976470764717647276473764747647576476764777647876479764807648176482764837648476485764867648776488764897649076491764927649376494764957649676497764987649976500765017650276503765047650576506765077650876509765107651176512765137651476515765167651776518765197652076521765227652376524765257652676527765287652976530765317653276533765347653576536765377653876539765407654176542765437654476545765467654776548765497655076551765527655376554765557655676557765587655976560765617656276563765647656576566765677656876569765707657176572765737657476575765767657776578765797658076581765827658376584765857658676587765887658976590765917659276593765947659576596765977659876599766007660176602766037660476605766067660776608766097661076611766127661376614766157661676617766187661976620766217662276623766247662576626766277662876629766307663176632766337663476635766367663776638766397664076641766427664376644766457664676647766487664976650766517665276653766547665576656766577665876659766607666176662766637666476665766667666776668766697667076671766727667376674766757667676677766787667976680766817668276683766847668576686766877668876689766907669176692766937669476695766967669776698766997670076701767027670376704767057670676707767087670976710767117671276713767147671576716767177671876719767207672176722767237672476725767267672776728767297673076731767327673376734767357673676737767387673976740767417674276743767447674576746767477674876749767507675176752767537675476755767567675776758767597676076761767627676376764767657676676767767687676976770767717677276773767747677576776767777677876779767807678176782767837678476785767867678776788767897679076791767927679376794767957679676797767987679976800768017680276803768047680576806768077680876809768107681176812768137681476815768167681776818768197682076821768227682376824768257682676827768287682976830768317683276833768347683576836768377683876839768407684176842768437684476845768467684776848768497685076851768527685376854768557685676857768587685976860768617686276863768647686576866768677686876869768707687176872768737687476875768767687776878768797688076881768827688376884768857688676887768887688976890768917689276893768947689576896768977689876899769007690176902769037690476905769067690776908769097691076911769127691376914769157691676917769187691976920769217692276923769247692576926769277692876929769307693176932769337693476935769367693776938769397694076941769427694376944769457694676947769487694976950769517695276953769547695576956769577695876959769607696176962769637696476965769667696776968769697697076971769727697376974769757697676977769787697976980769817698276983769847698576986769877698876989769907699176992769937699476995769967699776998769997700077001770027700377004770057700677007770087700977010770117701277013770147701577016770177701877019770207702177022770237702477025770267702777028770297703077031770327703377034770357703677037770387703977040770417704277043770447704577046770477704877049770507705177052770537705477055770567705777058770597706077061770627706377064770657706677067770687706977070770717707277073770747707577076770777707877079770807708177082770837708477085770867708777088770897709077091770927709377094770957709677097770987709977100771017710277103771047710577106771077710877109771107711177112771137711477115771167711777118771197712077121771227712377124771257712677127771287712977130771317713277133771347713577136771377713877139771407714177142771437714477145771467714777148771497715077151771527715377154771557715677157771587715977160771617716277163771647716577166771677716877169771707717177172771737717477175771767717777178771797718077181771827718377184771857718677187771887718977190771917719277193771947719577196771977719877199772007720177202772037720477205772067720777208772097721077211772127721377214772157721677217772187721977220772217722277223772247722577226772277722877229772307723177232772337723477235772367723777238772397724077241772427724377244772457724677247772487724977250772517725277253772547725577256772577725877259772607726177262772637726477265772667726777268772697727077271772727727377274772757727677277772787727977280772817728277283772847728577286772877728877289772907729177292772937729477295772967729777298772997730077301773027730377304773057730677307773087730977310773117731277313773147731577316773177731877319773207732177322773237732477325773267732777328773297733077331773327733377334773357733677337773387733977340773417734277343773447734577346773477734877349773507735177352773537735477355773567735777358773597736077361773627736377364773657736677367773687736977370773717737277373773747737577376773777737877379773807738177382773837738477385773867738777388773897739077391773927739377394773957739677397773987739977400774017740277403774047740577406774077740877409774107741177412774137741477415774167741777418774197742077421774227742377424774257742677427774287742977430774317743277433774347743577436774377743877439774407744177442774437744477445774467744777448774497745077451774527745377454774557745677457774587745977460774617746277463774647746577466774677746877469774707747177472774737747477475774767747777478774797748077481774827748377484774857748677487774887748977490774917749277493774947749577496774977749877499775007750177502775037750477505775067750777508775097751077511775127751377514775157751677517775187751977520775217752277523775247752577526775277752877529775307753177532775337753477535775367753777538775397754077541775427754377544775457754677547775487754977550775517755277553775547755577556775577755877559775607756177562775637756477565775667756777568775697757077571775727757377574775757757677577775787757977580775817758277583775847758577586775877758877589775907759177592775937759477595775967759777598775997760077601776027760377604776057760677607776087760977610776117761277613776147761577616776177761877619776207762177622776237762477625776267762777628776297763077631776327763377634776357763677637776387763977640776417764277643776447764577646776477764877649776507765177652776537765477655776567765777658776597766077661776627766377664776657766677667776687766977670776717767277673776747767577676776777767877679776807768177682776837768477685776867768777688776897769077691776927769377694776957769677697776987769977700777017770277703777047770577706777077770877709777107771177712777137771477715777167771777718777197772077721777227772377724777257772677727777287772977730777317773277733777347773577736777377773877739777407774177742777437774477745777467774777748777497775077751777527775377754777557775677757777587775977760777617776277763777647776577766777677776877769777707777177772777737777477775777767777777778777797778077781777827778377784777857778677787777887778977790777917779277793777947779577796777977779877799778007780177802778037780477805778067780777808778097781077811778127781377814778157781677817778187781977820778217782277823778247782577826778277782877829778307783177832778337783477835778367783777838778397784077841778427784377844778457784677847778487784977850778517785277853778547785577856778577785877859778607786177862778637786477865778667786777868778697787077871778727787377874778757787677877778787787977880778817788277883778847788577886778877788877889778907789177892778937789477895778967789777898778997790077901779027790377904779057790677907779087790977910779117791277913779147791577916779177791877919779207792177922779237792477925779267792777928779297793077931779327793377934779357793677937779387793977940779417794277943779447794577946779477794877949779507795177952779537795477955779567795777958779597796077961779627796377964779657796677967779687796977970779717797277973779747797577976779777797877979779807798177982779837798477985779867798777988779897799077991779927799377994779957799677997779987799978000780017800278003780047800578006780077800878009780107801178012780137801478015780167801778018780197802078021780227802378024780257802678027780287802978030780317803278033780347803578036780377803878039780407804178042780437804478045780467804778048780497805078051780527805378054780557805678057780587805978060780617806278063780647806578066780677806878069780707807178072780737807478075780767807778078780797808078081780827808378084780857808678087780887808978090780917809278093780947809578096780977809878099781007810178102781037810478105781067810778108781097811078111781127811378114781157811678117781187811978120781217812278123781247812578126781277812878129781307813178132781337813478135781367813778138781397814078141781427814378144781457814678147781487814978150781517815278153781547815578156781577815878159781607816178162781637816478165781667816778168781697817078171781727817378174781757817678177781787817978180781817818278183781847818578186781877818878189781907819178192781937819478195781967819778198781997820078201782027820378204782057820678207782087820978210782117821278213782147821578216782177821878219782207822178222782237822478225782267822778228782297823078231782327823378234782357823678237782387823978240782417824278243782447824578246782477824878249782507825178252782537825478255782567825778258782597826078261782627826378264782657826678267782687826978270782717827278273782747827578276782777827878279782807828178282782837828478285782867828778288782897829078291782927829378294782957829678297782987829978300783017830278303783047830578306783077830878309783107831178312783137831478315783167831778318783197832078321783227832378324783257832678327783287832978330783317833278333783347833578336783377833878339783407834178342783437834478345783467834778348783497835078351783527835378354783557835678357783587835978360783617836278363783647836578366783677836878369783707837178372783737837478375783767837778378783797838078381783827838378384783857838678387783887838978390783917839278393783947839578396783977839878399784007840178402784037840478405784067840778408784097841078411784127841378414784157841678417784187841978420784217842278423784247842578426784277842878429784307843178432784337843478435784367843778438784397844078441784427844378444784457844678447784487844978450784517845278453784547845578456784577845878459784607846178462784637846478465784667846778468784697847078471784727847378474784757847678477784787847978480784817848278483784847848578486784877848878489784907849178492784937849478495784967849778498784997850078501785027850378504785057850678507785087850978510785117851278513785147851578516785177851878519785207852178522785237852478525785267852778528785297853078531785327853378534785357853678537785387853978540785417854278543785447854578546785477854878549785507855178552785537855478555785567855778558785597856078561785627856378564785657856678567785687856978570785717857278573785747857578576785777857878579785807858178582785837858478585785867858778588785897859078591785927859378594785957859678597785987859978600786017860278603786047860578606786077860878609786107861178612786137861478615786167861778618786197862078621786227862378624786257862678627786287862978630786317863278633786347863578636786377863878639786407864178642786437864478645786467864778648786497865078651786527865378654786557865678657786587865978660786617866278663786647866578666786677866878669786707867178672786737867478675786767867778678786797868078681786827868378684786857868678687786887868978690786917869278693786947869578696786977869878699787007870178702787037870478705787067870778708787097871078711787127871378714787157871678717787187871978720787217872278723787247872578726787277872878729787307873178732787337873478735787367873778738787397874078741787427874378744787457874678747787487874978750787517875278753787547875578756787577875878759787607876178762787637876478765787667876778768787697877078771787727877378774787757877678777787787877978780787817878278783787847878578786787877878878789787907879178792787937879478795787967879778798787997880078801788027880378804788057880678807788087880978810788117881278813788147881578816788177881878819788207882178822788237882478825788267882778828788297883078831788327883378834788357883678837788387883978840788417884278843788447884578846788477884878849788507885178852788537885478855788567885778858788597886078861788627886378864788657886678867788687886978870788717887278873788747887578876788777887878879788807888178882788837888478885788867888778888788897889078891788927889378894788957889678897788987889978900789017890278903789047890578906789077890878909789107891178912789137891478915789167891778918789197892078921789227892378924789257892678927789287892978930789317893278933789347893578936789377893878939789407894178942789437894478945789467894778948789497895078951789527895378954789557895678957789587895978960789617896278963789647896578966789677896878969789707897178972789737897478975789767897778978789797898078981789827898378984789857898678987789887898978990789917899278993789947899578996789977899878999790007900179002790037900479005790067900779008790097901079011790127901379014790157901679017790187901979020790217902279023790247902579026790277902879029790307903179032790337903479035790367903779038790397904079041790427904379044790457904679047790487904979050790517905279053790547905579056790577905879059790607906179062790637906479065790667906779068790697907079071790727907379074790757907679077790787907979080790817908279083790847908579086790877908879089790907909179092790937909479095790967909779098790997910079101791027910379104791057910679107791087910979110791117911279113791147911579116791177911879119791207912179122791237912479125791267912779128791297913079131791327913379134791357913679137791387913979140791417914279143791447914579146791477914879149791507915179152791537915479155791567915779158791597916079161791627916379164791657916679167791687916979170791717917279173791747917579176791777917879179791807918179182791837918479185791867918779188791897919079191791927919379194791957919679197791987919979200792017920279203792047920579206792077920879209792107921179212792137921479215792167921779218792197922079221792227922379224792257922679227792287922979230792317923279233792347923579236792377923879239792407924179242792437924479245792467924779248792497925079251792527925379254792557925679257792587925979260792617926279263792647926579266792677926879269792707927179272792737927479275792767927779278792797928079281792827928379284792857928679287792887928979290792917929279293792947929579296792977929879299793007930179302793037930479305793067930779308793097931079311793127931379314793157931679317793187931979320793217932279323793247932579326793277932879329793307933179332793337933479335793367933779338793397934079341793427934379344793457934679347793487934979350793517935279353793547935579356793577935879359793607936179362793637936479365793667936779368793697937079371793727937379374793757937679377793787937979380793817938279383793847938579386793877938879389793907939179392793937939479395793967939779398793997940079401794027940379404794057940679407794087940979410794117941279413794147941579416794177941879419794207942179422794237942479425794267942779428794297943079431794327943379434794357943679437794387943979440794417944279443794447944579446794477944879449794507945179452794537945479455794567945779458794597946079461794627946379464794657946679467794687946979470794717947279473794747947579476794777947879479794807948179482794837948479485794867948779488794897949079491794927949379494794957949679497794987949979500795017950279503795047950579506795077950879509795107951179512795137951479515795167951779518795197952079521795227952379524795257952679527795287952979530795317953279533795347953579536795377953879539795407954179542795437954479545795467954779548795497955079551795527955379554795557955679557795587955979560795617956279563795647956579566795677956879569795707957179572795737957479575795767957779578795797958079581795827958379584795857958679587795887958979590795917959279593795947959579596795977959879599796007960179602796037960479605796067960779608796097961079611796127961379614796157961679617796187961979620796217962279623796247962579626796277962879629796307963179632796337963479635796367963779638796397964079641796427964379644796457964679647796487964979650796517965279653796547965579656796577965879659796607966179662796637966479665796667966779668796697967079671796727967379674796757967679677796787967979680796817968279683796847968579686796877968879689796907969179692796937969479695796967969779698796997970079701797027970379704797057970679707797087970979710797117971279713797147971579716797177971879719797207972179722797237972479725797267972779728797297973079731797327973379734797357973679737797387973979740797417974279743797447974579746797477974879749797507975179752797537975479755797567975779758797597976079761797627976379764797657976679767797687976979770797717977279773797747977579776797777977879779797807978179782797837978479785797867978779788797897979079791797927979379794797957979679797797987979979800798017980279803798047980579806798077980879809798107981179812798137981479815798167981779818798197982079821798227982379824798257982679827798287982979830798317983279833798347983579836798377983879839798407984179842798437984479845798467984779848798497985079851798527985379854798557985679857798587985979860798617986279863798647986579866798677986879869798707987179872798737987479875798767987779878798797988079881798827988379884798857988679887798887988979890798917989279893798947989579896798977989879899799007990179902799037990479905799067990779908799097991079911799127991379914799157991679917799187991979920799217992279923799247992579926799277992879929799307993179932799337993479935799367993779938799397994079941799427994379944799457994679947799487994979950799517995279953799547995579956799577995879959799607996179962799637996479965799667996779968799697997079971799727997379974799757997679977799787997979980799817998279983799847998579986799877998879989799907999179992799937999479995799967999779998799998000080001800028000380004800058000680007800088000980010800118001280013800148001580016800178001880019800208002180022800238002480025800268002780028800298003080031800328003380034800358003680037800388003980040800418004280043800448004580046800478004880049800508005180052800538005480055800568005780058800598006080061800628006380064800658006680067800688006980070800718007280073800748007580076800778007880079800808008180082800838008480085800868008780088800898009080091800928009380094800958009680097800988009980100801018010280103801048010580106801078010880109801108011180112801138011480115801168011780118801198012080121801228012380124801258012680127801288012980130801318013280133801348013580136801378013880139801408014180142801438014480145801468014780148801498015080151801528015380154801558015680157801588015980160801618016280163801648016580166801678016880169801708017180172801738017480175801768017780178801798018080181801828018380184801858018680187801888018980190801918019280193801948019580196801978019880199802008020180202802038020480205802068020780208802098021080211802128021380214802158021680217802188021980220802218022280223802248022580226802278022880229802308023180232802338023480235802368023780238802398024080241802428024380244802458024680247802488024980250802518025280253802548025580256802578025880259802608026180262802638026480265802668026780268802698027080271802728027380274802758027680277802788027980280802818028280283802848028580286802878028880289802908029180292802938029480295802968029780298802998030080301803028030380304803058030680307803088030980310803118031280313803148031580316803178031880319803208032180322803238032480325803268032780328803298033080331803328033380334803358033680337803388033980340803418034280343803448034580346803478034880349803508035180352803538035480355803568035780358803598036080361803628036380364803658036680367803688036980370803718037280373803748037580376803778037880379803808038180382803838038480385803868038780388803898039080391803928039380394803958039680397803988039980400804018040280403804048040580406804078040880409804108041180412804138041480415804168041780418804198042080421804228042380424804258042680427804288042980430804318043280433804348043580436804378043880439804408044180442804438044480445804468044780448804498045080451804528045380454804558045680457804588045980460804618046280463804648046580466804678046880469804708047180472804738047480475804768047780478804798048080481804828048380484804858048680487804888048980490804918049280493804948049580496804978049880499805008050180502805038050480505805068050780508805098051080511805128051380514805158051680517805188051980520805218052280523805248052580526805278052880529805308053180532805338053480535805368053780538805398054080541805428054380544805458054680547805488054980550805518055280553805548055580556805578055880559805608056180562805638056480565805668056780568805698057080571805728057380574805758057680577805788057980580805818058280583805848058580586805878058880589805908059180592805938059480595805968059780598805998060080601806028060380604806058060680607806088060980610806118061280613806148061580616806178061880619806208062180622806238062480625806268062780628806298063080631806328063380634806358063680637806388063980640806418064280643806448064580646806478064880649806508065180652806538065480655806568065780658806598066080661806628066380664806658066680667806688066980670806718067280673806748067580676806778067880679806808068180682806838068480685806868068780688806898069080691806928069380694806958069680697806988069980700807018070280703807048070580706807078070880709807108071180712807138071480715807168071780718807198072080721807228072380724807258072680727807288072980730807318073280733807348073580736807378073880739807408074180742807438074480745807468074780748807498075080751807528075380754807558075680757807588075980760807618076280763807648076580766807678076880769807708077180772807738077480775807768077780778807798078080781807828078380784807858078680787807888078980790807918079280793807948079580796807978079880799808008080180802808038080480805808068080780808808098081080811808128081380814808158081680817808188081980820808218082280823808248082580826808278082880829808308083180832808338083480835808368083780838808398084080841808428084380844808458084680847808488084980850808518085280853808548085580856808578085880859808608086180862808638086480865808668086780868808698087080871808728087380874808758087680877808788087980880808818088280883808848088580886808878088880889808908089180892808938089480895808968089780898808998090080901809028090380904809058090680907809088090980910809118091280913809148091580916809178091880919809208092180922809238092480925809268092780928809298093080931809328093380934809358093680937809388093980940809418094280943809448094580946809478094880949809508095180952809538095480955809568095780958809598096080961809628096380964809658096680967809688096980970809718097280973809748097580976809778097880979809808098180982809838098480985809868098780988809898099080991809928099380994809958099680997809988099981000810018100281003810048100581006810078100881009810108101181012810138101481015810168101781018810198102081021810228102381024810258102681027810288102981030810318103281033810348103581036810378103881039810408104181042810438104481045810468104781048810498105081051810528105381054810558105681057810588105981060810618106281063810648106581066810678106881069810708107181072810738107481075810768107781078810798108081081810828108381084810858108681087810888108981090810918109281093810948109581096810978109881099811008110181102811038110481105811068110781108811098111081111811128111381114811158111681117811188111981120811218112281123811248112581126811278112881129811308113181132811338113481135811368113781138811398114081141811428114381144811458114681147811488114981150811518115281153811548115581156811578115881159811608116181162811638116481165811668116781168811698117081171811728117381174811758117681177811788117981180811818118281183811848118581186811878118881189811908119181192811938119481195811968119781198811998120081201812028120381204812058120681207812088120981210812118121281213812148121581216812178121881219812208122181222812238122481225812268122781228812298123081231812328123381234812358123681237812388123981240812418124281243812448124581246812478124881249812508125181252812538125481255812568125781258812598126081261812628126381264812658126681267812688126981270812718127281273812748127581276812778127881279812808128181282812838128481285812868128781288812898129081291812928129381294812958129681297812988129981300813018130281303813048130581306813078130881309813108131181312813138131481315813168131781318813198132081321813228132381324813258132681327813288132981330813318133281333813348133581336813378133881339813408134181342813438134481345813468134781348813498135081351813528135381354813558135681357813588135981360813618136281363813648136581366813678136881369813708137181372813738137481375813768137781378813798138081381813828138381384813858138681387813888138981390813918139281393813948139581396813978139881399814008140181402814038140481405814068140781408814098141081411814128141381414814158141681417814188141981420814218142281423814248142581426814278142881429814308143181432814338143481435814368143781438814398144081441814428144381444814458144681447814488144981450814518145281453814548145581456814578145881459814608146181462814638146481465814668146781468814698147081471814728147381474814758147681477814788147981480814818148281483814848148581486814878148881489814908149181492814938149481495814968149781498814998150081501815028150381504815058150681507815088150981510815118151281513815148151581516815178151881519815208152181522815238152481525815268152781528815298153081531815328153381534815358153681537815388153981540815418154281543815448154581546815478154881549815508155181552815538155481555815568155781558815598156081561815628156381564815658156681567815688156981570815718157281573815748157581576815778157881579815808158181582815838158481585815868158781588815898159081591815928159381594815958159681597815988159981600816018160281603816048160581606816078160881609816108161181612816138161481615816168161781618816198162081621816228162381624816258162681627816288162981630816318163281633816348163581636816378163881639816408164181642816438164481645816468164781648816498165081651816528165381654816558165681657816588165981660816618166281663816648166581666816678166881669816708167181672816738167481675816768167781678816798168081681816828168381684816858168681687816888168981690816918169281693816948169581696816978169881699817008170181702817038170481705817068170781708817098171081711817128171381714817158171681717817188171981720817218172281723817248172581726817278172881729817308173181732817338173481735817368173781738817398174081741817428174381744817458174681747817488174981750817518175281753817548175581756817578175881759817608176181762817638176481765817668176781768817698177081771817728177381774817758177681777817788177981780817818178281783817848178581786817878178881789817908179181792817938179481795817968179781798817998180081801818028180381804818058180681807818088180981810818118181281813818148181581816818178181881819818208182181822818238182481825818268182781828818298183081831818328183381834818358183681837818388183981840818418184281843818448184581846818478184881849818508185181852818538185481855818568185781858818598186081861818628186381864818658186681867818688186981870818718187281873818748187581876818778187881879818808188181882818838188481885818868188781888818898189081891818928189381894818958189681897818988189981900819018190281903819048190581906819078190881909819108191181912819138191481915819168191781918819198192081921819228192381924819258192681927819288192981930819318193281933819348193581936819378193881939819408194181942819438194481945819468194781948819498195081951819528195381954819558195681957819588195981960819618196281963819648196581966819678196881969819708197181972819738197481975819768197781978819798198081981819828198381984819858198681987819888198981990819918199281993819948199581996819978199881999820008200182002820038200482005820068200782008820098201082011820128201382014820158201682017820188201982020820218202282023820248202582026820278202882029820308203182032820338203482035820368203782038820398204082041820428204382044820458204682047820488204982050820518205282053820548205582056820578205882059820608206182062820638206482065820668206782068820698207082071820728207382074820758207682077820788207982080820818208282083820848208582086820878208882089820908209182092820938209482095820968209782098820998210082101821028210382104821058210682107821088210982110821118211282113821148211582116821178211882119821208212182122821238212482125821268212782128821298213082131821328213382134821358213682137821388213982140821418214282143821448214582146821478214882149821508215182152821538215482155821568215782158821598216082161821628216382164821658216682167821688216982170821718217282173821748217582176821778217882179821808218182182821838218482185821868218782188821898219082191821928219382194821958219682197821988219982200822018220282203822048220582206822078220882209822108221182212822138221482215822168221782218822198222082221822228222382224822258222682227822288222982230822318223282233822348223582236822378223882239822408224182242822438224482245822468224782248822498225082251822528225382254822558225682257822588225982260822618226282263822648226582266822678226882269822708227182272822738227482275822768227782278822798228082281822828228382284822858228682287822888228982290822918229282293822948229582296822978229882299823008230182302823038230482305823068230782308823098231082311823128231382314823158231682317823188231982320823218232282323823248232582326823278232882329823308233182332823338233482335823368233782338823398234082341823428234382344823458234682347823488234982350823518235282353823548235582356823578235882359823608236182362823638236482365823668236782368823698237082371823728237382374823758237682377823788237982380823818238282383823848238582386823878238882389823908239182392823938239482395823968239782398823998240082401824028240382404824058240682407824088240982410824118241282413824148241582416824178241882419824208242182422824238242482425824268242782428824298243082431824328243382434824358243682437824388243982440824418244282443824448244582446824478244882449824508245182452824538245482455824568245782458824598246082461824628246382464824658246682467824688246982470824718247282473824748247582476824778247882479824808248182482824838248482485824868248782488824898249082491824928249382494824958249682497824988249982500825018250282503825048250582506825078250882509825108251182512825138251482515825168251782518825198252082521825228252382524825258252682527825288252982530825318253282533825348253582536825378253882539825408254182542825438254482545825468254782548825498255082551825528255382554825558255682557825588255982560825618256282563825648256582566825678256882569825708257182572825738257482575825768257782578825798258082581825828258382584825858258682587825888258982590825918259282593825948259582596825978259882599826008260182602826038260482605826068260782608826098261082611826128261382614826158261682617826188261982620826218262282623826248262582626826278262882629826308263182632826338263482635826368263782638826398264082641826428264382644826458264682647826488264982650826518265282653826548265582656826578265882659826608266182662826638266482665826668266782668826698267082671826728267382674826758267682677826788267982680826818268282683826848268582686826878268882689826908269182692826938269482695826968269782698826998270082701827028270382704827058270682707827088270982710827118271282713827148271582716827178271882719827208272182722827238272482725827268272782728827298273082731827328273382734827358273682737827388273982740827418274282743827448274582746827478274882749827508275182752827538275482755827568275782758827598276082761827628276382764827658276682767827688276982770827718277282773827748277582776827778277882779827808278182782827838278482785827868278782788827898279082791827928279382794827958279682797827988279982800828018280282803828048280582806828078280882809828108281182812828138281482815828168281782818828198282082821828228282382824828258282682827828288282982830828318283282833828348283582836828378283882839828408284182842828438284482845828468284782848828498285082851828528285382854828558285682857828588285982860828618286282863828648286582866828678286882869828708287182872828738287482875828768287782878828798288082881828828288382884828858288682887828888288982890828918289282893828948289582896828978289882899829008290182902829038290482905829068290782908829098291082911829128291382914829158291682917829188291982920829218292282923829248292582926829278292882929829308293182932829338293482935829368293782938829398294082941829428294382944829458294682947829488294982950829518295282953829548295582956829578295882959829608296182962829638296482965829668296782968829698297082971829728297382974829758297682977829788297982980829818298282983829848298582986829878298882989829908299182992829938299482995829968299782998829998300083001830028300383004830058300683007830088300983010830118301283013830148301583016830178301883019830208302183022830238302483025830268302783028830298303083031830328303383034830358303683037830388303983040830418304283043830448304583046830478304883049830508305183052830538305483055830568305783058830598306083061830628306383064830658306683067830688306983070830718307283073830748307583076830778307883079830808308183082830838308483085830868308783088830898309083091830928309383094830958309683097830988309983100831018310283103831048310583106831078310883109831108311183112831138311483115831168311783118831198312083121831228312383124831258312683127831288312983130831318313283133831348313583136831378313883139831408314183142831438314483145831468314783148831498315083151831528315383154831558315683157831588315983160831618316283163831648316583166831678316883169831708317183172831738317483175831768317783178831798318083181831828318383184831858318683187831888318983190831918319283193831948319583196831978319883199832008320183202832038320483205832068320783208832098321083211832128321383214832158321683217832188321983220832218322283223832248322583226832278322883229832308323183232832338323483235832368323783238832398324083241832428324383244832458324683247832488324983250832518325283253832548325583256832578325883259832608326183262832638326483265832668326783268832698327083271832728327383274832758327683277832788327983280832818328283283832848328583286832878328883289832908329183292832938329483295832968329783298832998330083301833028330383304833058330683307833088330983310833118331283313833148331583316833178331883319833208332183322833238332483325833268332783328833298333083331833328333383334833358333683337833388333983340833418334283343833448334583346833478334883349833508335183352833538335483355833568335783358833598336083361833628336383364833658336683367833688336983370833718337283373833748337583376833778337883379833808338183382833838338483385833868338783388833898339083391833928339383394833958339683397833988339983400834018340283403834048340583406834078340883409834108341183412834138341483415834168341783418834198342083421834228342383424834258342683427834288342983430834318343283433834348343583436834378343883439834408344183442834438344483445834468344783448834498345083451834528345383454834558345683457834588345983460834618346283463834648346583466834678346883469834708347183472834738347483475834768347783478834798348083481834828348383484834858348683487834888348983490834918349283493834948349583496834978349883499835008350183502835038350483505835068350783508835098351083511835128351383514835158351683517835188351983520835218352283523835248352583526835278352883529835308353183532835338353483535835368353783538835398354083541835428354383544835458354683547835488354983550835518355283553835548355583556835578355883559835608356183562835638356483565835668356783568835698357083571835728357383574835758357683577835788357983580835818358283583835848358583586835878358883589835908359183592835938359483595835968359783598835998360083601836028360383604836058360683607836088360983610836118361283613836148361583616836178361883619836208362183622836238362483625836268362783628836298363083631836328363383634836358363683637836388363983640836418364283643836448364583646836478364883649836508365183652836538365483655836568365783658836598366083661836628366383664836658366683667836688366983670836718367283673836748367583676836778367883679836808368183682836838368483685836868368783688836898369083691836928369383694836958369683697836988369983700837018370283703837048370583706837078370883709837108371183712837138371483715837168371783718837198372083721837228372383724837258372683727837288372983730837318373283733837348373583736837378373883739837408374183742837438374483745837468374783748837498375083751837528375383754837558375683757837588375983760837618376283763837648376583766837678376883769837708377183772837738377483775837768377783778837798378083781837828378383784837858378683787837888378983790837918379283793837948379583796837978379883799838008380183802838038380483805838068380783808838098381083811838128381383814838158381683817838188381983820838218382283823838248382583826838278382883829838308383183832838338383483835838368383783838838398384083841838428384383844838458384683847838488384983850838518385283853838548385583856838578385883859838608386183862838638386483865838668386783868838698387083871838728387383874838758387683877838788387983880838818388283883838848388583886838878388883889838908389183892838938389483895838968389783898838998390083901839028390383904839058390683907839088390983910839118391283913839148391583916839178391883919839208392183922839238392483925839268392783928839298393083931839328393383934839358393683937839388393983940839418394283943839448394583946839478394883949839508395183952839538395483955839568395783958839598396083961839628396383964839658396683967839688396983970839718397283973839748397583976839778397883979839808398183982839838398483985839868398783988839898399083991839928399383994839958399683997839988399984000840018400284003840048400584006840078400884009840108401184012840138401484015840168401784018840198402084021840228402384024840258402684027840288402984030840318403284033840348403584036840378403884039840408404184042840438404484045840468404784048840498405084051840528405384054840558405684057840588405984060840618406284063840648406584066840678406884069840708407184072840738407484075840768407784078840798408084081840828408384084840858408684087840888408984090840918409284093840948409584096840978409884099841008410184102841038410484105841068410784108841098411084111841128411384114841158411684117841188411984120841218412284123841248412584126841278412884129841308413184132841338413484135841368413784138841398414084141841428414384144841458414684147841488414984150841518415284153841548415584156841578415884159841608416184162841638416484165841668416784168841698417084171841728417384174841758417684177841788417984180841818418284183841848418584186841878418884189841908419184192841938419484195841968419784198841998420084201842028420384204842058420684207842088420984210842118421284213842148421584216842178421884219842208422184222842238422484225842268422784228842298423084231842328423384234842358423684237842388423984240842418424284243842448424584246842478424884249842508425184252842538425484255842568425784258842598426084261842628426384264842658426684267842688426984270842718427284273842748427584276842778427884279842808428184282842838428484285842868428784288842898429084291842928429384294842958429684297842988429984300843018430284303843048430584306843078430884309843108431184312843138431484315843168431784318843198432084321843228432384324843258432684327843288432984330843318433284333843348433584336843378433884339843408434184342843438434484345843468434784348843498435084351843528435384354843558435684357843588435984360843618436284363843648436584366843678436884369843708437184372843738437484375843768437784378843798438084381843828438384384843858438684387843888438984390843918439284393843948439584396843978439884399844008440184402844038440484405844068440784408844098441084411844128441384414844158441684417844188441984420844218442284423844248442584426844278442884429844308443184432844338443484435844368443784438844398444084441844428444384444844458444684447844488444984450844518445284453844548445584456844578445884459844608446184462844638446484465844668446784468844698447084471844728447384474844758447684477844788447984480844818448284483844848448584486844878448884489844908449184492844938449484495844968449784498844998450084501845028450384504845058450684507845088450984510845118451284513845148451584516845178451884519845208452184522845238452484525845268452784528845298453084531845328453384534845358453684537845388453984540845418454284543845448454584546845478454884549845508455184552845538455484555845568455784558845598456084561845628456384564845658456684567845688456984570845718457284573845748457584576845778457884579845808458184582845838458484585845868458784588845898459084591845928459384594845958459684597845988459984600846018460284603846048460584606846078460884609846108461184612846138461484615846168461784618846198462084621846228462384624846258462684627846288462984630846318463284633846348463584636846378463884639846408464184642846438464484645846468464784648846498465084651846528465384654846558465684657846588465984660846618466284663846648466584666846678466884669846708467184672846738467484675846768467784678846798468084681846828468384684846858468684687846888468984690846918469284693846948469584696846978469884699847008470184702847038470484705847068470784708847098471084711847128471384714847158471684717847188471984720847218472284723847248472584726847278472884729847308473184732847338473484735847368473784738847398474084741847428474384744847458474684747847488474984750847518475284753847548475584756847578475884759847608476184762847638476484765847668476784768847698477084771847728477384774847758477684777847788477984780847818478284783847848478584786847878478884789847908479184792847938479484795847968479784798847998480084801848028480384804848058480684807848088480984810848118481284813848148481584816848178481884819848208482184822848238482484825848268482784828848298483084831848328483384834848358483684837848388483984840848418484284843848448484584846848478484884849848508485184852848538485484855848568485784858848598486084861848628486384864848658486684867848688486984870848718487284873848748487584876848778487884879848808488184882848838488484885848868488784888848898489084891848928489384894848958489684897848988489984900849018490284903849048490584906849078490884909849108491184912849138491484915849168491784918849198492084921849228492384924849258492684927849288492984930849318493284933849348493584936849378493884939849408494184942849438494484945849468494784948849498495084951849528495384954849558495684957849588495984960849618496284963849648496584966849678496884969849708497184972849738497484975849768497784978849798498084981849828498384984849858498684987849888498984990849918499284993849948499584996849978499884999850008500185002850038500485005850068500785008850098501085011850128501385014850158501685017850188501985020850218502285023850248502585026850278502885029850308503185032850338503485035850368503785038850398504085041850428504385044850458504685047850488504985050850518505285053850548505585056850578505885059850608506185062850638506485065850668506785068850698507085071850728507385074850758507685077850788507985080850818508285083850848508585086850878508885089850908509185092850938509485095850968509785098850998510085101851028510385104851058510685107851088510985110851118511285113851148511585116851178511885119851208512185122851238512485125851268512785128851298513085131851328513385134851358513685137851388513985140851418514285143851448514585146851478514885149851508515185152851538515485155851568515785158851598516085161851628516385164851658516685167851688516985170851718517285173851748517585176851778517885179851808518185182851838518485185851868518785188851898519085191851928519385194851958519685197851988519985200852018520285203852048520585206852078520885209852108521185212852138521485215852168521785218852198522085221852228522385224852258522685227852288522985230852318523285233852348523585236852378523885239852408524185242852438524485245852468524785248852498525085251852528525385254852558525685257852588525985260852618526285263852648526585266852678526885269852708527185272852738527485275852768527785278852798528085281852828528385284852858528685287852888528985290852918529285293852948529585296852978529885299853008530185302853038530485305853068530785308853098531085311853128531385314853158531685317853188531985320853218532285323853248532585326853278532885329853308533185332853338533485335853368533785338853398534085341853428534385344853458534685347853488534985350853518535285353853548535585356853578535885359853608536185362853638536485365853668536785368853698537085371853728537385374853758537685377853788537985380853818538285383853848538585386853878538885389853908539185392853938539485395853968539785398853998540085401854028540385404854058540685407854088540985410854118541285413854148541585416854178541885419854208542185422854238542485425854268542785428854298543085431854328543385434854358543685437854388543985440854418544285443854448544585446854478544885449854508545185452854538545485455854568545785458854598546085461854628546385464854658546685467854688546985470854718547285473854748547585476854778547885479854808548185482854838548485485854868548785488854898549085491854928549385494854958549685497854988549985500855018550285503855048550585506855078550885509855108551185512855138551485515855168551785518855198552085521855228552385524855258552685527855288552985530855318553285533855348553585536855378553885539855408554185542855438554485545855468554785548855498555085551855528555385554855558555685557855588555985560855618556285563855648556585566855678556885569855708557185572855738557485575855768557785578855798558085581855828558385584855858558685587855888558985590855918559285593855948559585596855978559885599856008560185602856038560485605856068560785608856098561085611856128561385614856158561685617856188561985620856218562285623856248562585626856278562885629856308563185632856338563485635856368563785638856398564085641856428564385644856458564685647856488564985650856518565285653856548565585656856578565885659856608566185662856638566485665856668566785668856698567085671856728567385674856758567685677856788567985680856818568285683856848568585686856878568885689856908569185692856938569485695856968569785698856998570085701857028570385704857058570685707857088570985710857118571285713857148571585716857178571885719857208572185722857238572485725857268572785728857298573085731857328573385734857358573685737857388573985740857418574285743857448574585746857478574885749857508575185752857538575485755857568575785758857598576085761857628576385764857658576685767857688576985770857718577285773857748577585776857778577885779857808578185782857838578485785857868578785788857898579085791857928579385794857958579685797857988579985800858018580285803858048580585806858078580885809858108581185812858138581485815858168581785818858198582085821858228582385824858258582685827858288582985830858318583285833858348583585836858378583885839858408584185842858438584485845858468584785848858498585085851858528585385854858558585685857858588585985860858618586285863858648586585866858678586885869858708587185872858738587485875858768587785878858798588085881858828588385884858858588685887858888588985890858918589285893858948589585896858978589885899859008590185902859038590485905859068590785908859098591085911859128591385914859158591685917859188591985920859218592285923859248592585926859278592885929859308593185932859338593485935859368593785938859398594085941859428594385944859458594685947859488594985950859518595285953859548595585956859578595885959859608596185962859638596485965859668596785968859698597085971859728597385974859758597685977859788597985980859818598285983859848598585986859878598885989859908599185992859938599485995859968599785998859998600086001860028600386004860058600686007860088600986010860118601286013860148601586016860178601886019860208602186022860238602486025860268602786028860298603086031860328603386034860358603686037860388603986040860418604286043860448604586046860478604886049860508605186052860538605486055860568605786058860598606086061860628606386064860658606686067860688606986070860718607286073860748607586076860778607886079860808608186082860838608486085860868608786088860898609086091860928609386094860958609686097860988609986100861018610286103861048610586106861078610886109861108611186112861138611486115861168611786118861198612086121861228612386124861258612686127861288612986130861318613286133861348613586136861378613886139861408614186142861438614486145861468614786148861498615086151861528615386154861558615686157861588615986160861618616286163861648616586166861678616886169861708617186172861738617486175861768617786178861798618086181861828618386184861858618686187861888618986190861918619286193861948619586196861978619886199862008620186202862038620486205862068620786208862098621086211862128621386214862158621686217862188621986220862218622286223862248622586226862278622886229862308623186232862338623486235862368623786238862398624086241862428624386244862458624686247862488624986250862518625286253862548625586256862578625886259862608626186262862638626486265862668626786268862698627086271862728627386274862758627686277862788627986280862818628286283862848628586286862878628886289862908629186292862938629486295862968629786298862998630086301863028630386304863058630686307863088630986310863118631286313863148631586316863178631886319863208632186322863238632486325863268632786328863298633086331863328633386334863358633686337863388633986340863418634286343863448634586346863478634886349863508635186352863538635486355863568635786358863598636086361863628636386364863658636686367863688636986370863718637286373863748637586376863778637886379863808638186382863838638486385863868638786388863898639086391863928639386394863958639686397863988639986400864018640286403864048640586406864078640886409864108641186412864138641486415864168641786418864198642086421864228642386424864258642686427864288642986430864318643286433864348643586436864378643886439864408644186442864438644486445864468644786448864498645086451864528645386454864558645686457864588645986460864618646286463864648646586466864678646886469864708647186472864738647486475864768647786478864798648086481864828648386484864858648686487864888648986490864918649286493864948649586496864978649886499865008650186502865038650486505865068650786508865098651086511865128651386514865158651686517865188651986520865218652286523865248652586526865278652886529865308653186532865338653486535865368653786538865398654086541865428654386544865458654686547865488654986550865518655286553865548655586556865578655886559865608656186562865638656486565865668656786568865698657086571865728657386574865758657686577865788657986580865818658286583865848658586586865878658886589865908659186592865938659486595865968659786598865998660086601866028660386604866058660686607866088660986610866118661286613866148661586616866178661886619866208662186622866238662486625866268662786628866298663086631866328663386634866358663686637866388663986640866418664286643866448664586646866478664886649866508665186652866538665486655866568665786658866598666086661866628666386664866658666686667866688666986670866718667286673866748667586676866778667886679866808668186682866838668486685866868668786688866898669086691866928669386694866958669686697866988669986700867018670286703867048670586706867078670886709867108671186712867138671486715867168671786718867198672086721867228672386724867258672686727867288672986730867318673286733867348673586736867378673886739867408674186742867438674486745867468674786748867498675086751867528675386754867558675686757867588675986760867618676286763867648676586766867678676886769867708677186772867738677486775867768677786778867798678086781867828678386784867858678686787867888678986790867918679286793867948679586796867978679886799868008680186802868038680486805868068680786808868098681086811868128681386814868158681686817868188681986820868218682286823868248682586826868278682886829868308683186832868338683486835868368683786838868398684086841868428684386844868458684686847868488684986850868518685286853868548685586856868578685886859868608686186862868638686486865868668686786868868698687086871868728687386874868758687686877868788687986880868818688286883868848688586886868878688886889868908689186892868938689486895868968689786898868998690086901869028690386904869058690686907869088690986910869118691286913869148691586916869178691886919869208692186922869238692486925869268692786928869298693086931869328693386934869358693686937869388693986940869418694286943869448694586946869478694886949869508695186952869538695486955869568695786958869598696086961869628696386964869658696686967869688696986970869718697286973869748697586976869778697886979869808698186982869838698486985869868698786988869898699086991869928699386994869958699686997869988699987000870018700287003870048700587006870078700887009870108701187012870138701487015870168701787018870198702087021870228702387024870258702687027870288702987030870318703287033870348703587036870378703887039870408704187042870438704487045870468704787048870498705087051870528705387054870558705687057870588705987060870618706287063870648706587066870678706887069870708707187072870738707487075870768707787078870798708087081870828708387084870858708687087870888708987090870918709287093870948709587096870978709887099871008710187102871038710487105871068710787108871098711087111871128711387114871158711687117871188711987120871218712287123871248712587126871278712887129871308713187132871338713487135871368713787138871398714087141871428714387144871458714687147871488714987150871518715287153871548715587156871578715887159871608716187162871638716487165871668716787168871698717087171871728717387174871758717687177871788717987180871818718287183871848718587186871878718887189871908719187192871938719487195871968719787198871998720087201872028720387204872058720687207872088720987210872118721287213872148721587216872178721887219872208722187222872238722487225872268722787228872298723087231872328723387234872358723687237872388723987240872418724287243872448724587246872478724887249872508725187252872538725487255872568725787258872598726087261872628726387264872658726687267872688726987270872718727287273872748727587276872778727887279872808728187282872838728487285872868728787288872898729087291872928729387294872958729687297872988729987300873018730287303873048730587306873078730887309873108731187312873138731487315873168731787318873198732087321873228732387324873258732687327873288732987330873318733287333873348733587336873378733887339873408734187342873438734487345873468734787348873498735087351873528735387354873558735687357873588735987360873618736287363873648736587366873678736887369873708737187372873738737487375873768737787378873798738087381873828738387384873858738687387873888738987390873918739287393873948739587396873978739887399874008740187402874038740487405874068740787408874098741087411874128741387414874158741687417874188741987420874218742287423874248742587426874278742887429874308743187432874338743487435874368743787438874398744087441874428744387444874458744687447874488744987450874518745287453874548745587456874578745887459874608746187462874638746487465874668746787468874698747087471874728747387474874758747687477874788747987480874818748287483874848748587486874878748887489874908749187492874938749487495874968749787498874998750087501875028750387504875058750687507875088750987510875118751287513875148751587516875178751887519875208752187522875238752487525875268752787528875298753087531875328753387534875358753687537875388753987540875418754287543875448754587546875478754887549875508755187552875538755487555875568755787558875598756087561875628756387564875658756687567875688756987570875718757287573875748757587576875778757887579875808758187582875838758487585875868758787588875898759087591875928759387594875958759687597875988759987600876018760287603876048760587606876078760887609876108761187612876138761487615876168761787618876198762087621876228762387624876258762687627876288762987630876318763287633876348763587636876378763887639876408764187642876438764487645876468764787648876498765087651876528765387654876558765687657876588765987660876618766287663876648766587666876678766887669876708767187672876738767487675876768767787678876798768087681876828768387684876858768687687876888768987690876918769287693876948769587696876978769887699877008770187702877038770487705877068770787708877098771087711877128771387714877158771687717877188771987720877218772287723877248772587726877278772887729877308773187732877338773487735877368773787738877398774087741877428774387744877458774687747877488774987750877518775287753877548775587756877578775887759877608776187762877638776487765877668776787768877698777087771877728777387774877758777687777877788777987780877818778287783877848778587786877878778887789877908779187792877938779487795877968779787798877998780087801878028780387804878058780687807878088780987810878118781287813878148781587816878178781887819878208782187822878238782487825878268782787828878298783087831878328783387834878358783687837878388783987840878418784287843878448784587846878478784887849878508785187852878538785487855878568785787858878598786087861878628786387864878658786687867878688786987870878718787287873878748787587876878778787887879878808788187882878838788487885878868788787888878898789087891878928789387894878958789687897878988789987900879018790287903879048790587906879078790887909879108791187912879138791487915879168791787918879198792087921879228792387924879258792687927879288792987930879318793287933879348793587936879378793887939879408794187942879438794487945879468794787948879498795087951879528795387954879558795687957879588795987960879618796287963879648796587966879678796887969879708797187972879738797487975879768797787978879798798087981879828798387984879858798687987879888798987990879918799287993879948799587996879978799887999880008800188002880038800488005880068800788008880098801088011880128801388014880158801688017880188801988020880218802288023880248802588026880278802888029880308803188032880338803488035880368803788038880398804088041880428804388044880458804688047880488804988050880518805288053880548805588056880578805888059880608806188062880638806488065880668806788068880698807088071880728807388074880758807688077880788807988080880818808288083880848808588086880878808888089880908809188092880938809488095880968809788098880998810088101881028810388104881058810688107881088810988110881118811288113881148811588116881178811888119881208812188122881238812488125881268812788128881298813088131881328813388134881358813688137881388813988140881418814288143881448814588146881478814888149881508815188152881538815488155881568815788158881598816088161881628816388164881658816688167881688816988170881718817288173881748817588176881778817888179881808818188182881838818488185881868818788188881898819088191881928819388194881958819688197881988819988200882018820288203882048820588206882078820888209882108821188212882138821488215882168821788218882198822088221882228822388224882258822688227882288822988230882318823288233882348823588236882378823888239882408824188242882438824488245882468824788248882498825088251882528825388254882558825688257882588825988260882618826288263882648826588266882678826888269882708827188272882738827488275882768827788278882798828088281882828828388284882858828688287882888828988290882918829288293882948829588296882978829888299883008830188302883038830488305883068830788308883098831088311883128831388314883158831688317883188831988320883218832288323883248832588326883278832888329883308833188332883338833488335883368833788338883398834088341883428834388344883458834688347883488834988350883518835288353883548835588356883578835888359883608836188362883638836488365883668836788368883698837088371883728837388374883758837688377883788837988380883818838288383883848838588386883878838888389883908839188392883938839488395883968839788398883998840088401884028840388404884058840688407884088840988410884118841288413884148841588416884178841888419884208842188422884238842488425884268842788428884298843088431884328843388434884358843688437884388843988440884418844288443884448844588446884478844888449884508845188452884538845488455884568845788458884598846088461884628846388464884658846688467884688846988470884718847288473884748847588476884778847888479884808848188482884838848488485884868848788488884898849088491884928849388494884958849688497884988849988500885018850288503885048850588506885078850888509885108851188512885138851488515885168851788518885198852088521885228852388524885258852688527885288852988530885318853288533885348853588536885378853888539885408854188542885438854488545885468854788548885498855088551885528855388554885558855688557885588855988560885618856288563885648856588566885678856888569885708857188572885738857488575885768857788578885798858088581885828858388584885858858688587885888858988590885918859288593885948859588596885978859888599886008860188602886038860488605886068860788608886098861088611886128861388614886158861688617886188861988620886218862288623886248862588626886278862888629886308863188632886338863488635886368863788638886398864088641886428864388644886458864688647886488864988650886518865288653886548865588656886578865888659886608866188662886638866488665886668866788668886698867088671886728867388674886758867688677886788867988680886818868288683886848868588686886878868888689886908869188692886938869488695886968869788698886998870088701887028870388704887058870688707887088870988710887118871288713887148871588716887178871888719887208872188722887238872488725887268872788728887298873088731887328873388734887358873688737887388873988740887418874288743887448874588746887478874888749887508875188752887538875488755887568875788758887598876088761887628876388764887658876688767887688876988770887718877288773887748877588776887778877888779887808878188782887838878488785887868878788788887898879088791887928879388794887958879688797887988879988800888018880288803888048880588806888078880888809888108881188812888138881488815888168881788818888198882088821888228882388824888258882688827888288882988830888318883288833888348883588836888378883888839888408884188842888438884488845888468884788848888498885088851888528885388854888558885688857888588885988860888618886288863888648886588866888678886888869888708887188872888738887488875888768887788878888798888088881888828888388884888858888688887888888888988890888918889288893888948889588896888978889888899889008890188902889038890488905889068890788908889098891088911889128891388914889158891688917889188891988920889218892288923889248892588926889278892888929889308893188932889338893488935889368893788938889398894088941889428894388944889458894688947889488894988950889518895288953889548895588956889578895888959889608896188962889638896488965889668896788968889698897088971889728897388974889758897688977889788897988980889818898288983889848898588986889878898888989889908899188992889938899488995889968899788998889998900089001890028900389004890058900689007890088900989010890118901289013890148901589016890178901889019890208902189022890238902489025890268902789028890298903089031890328903389034890358903689037890388903989040890418904289043890448904589046890478904889049890508905189052890538905489055890568905789058890598906089061890628906389064890658906689067890688906989070890718907289073890748907589076890778907889079890808908189082890838908489085890868908789088890898909089091890928909389094890958909689097890988909989100891018910289103891048910589106891078910889109891108911189112891138911489115891168911789118891198912089121891228912389124891258912689127891288912989130891318913289133891348913589136891378913889139891408914189142891438914489145891468914789148891498915089151891528915389154891558915689157891588915989160891618916289163891648916589166891678916889169891708917189172891738917489175891768917789178891798918089181891828918389184891858918689187891888918989190891918919289193891948919589196891978919889199892008920189202892038920489205892068920789208892098921089211892128921389214892158921689217892188921989220892218922289223892248922589226892278922889229892308923189232892338923489235892368923789238892398924089241892428924389244892458924689247892488924989250892518925289253892548925589256892578925889259892608926189262892638926489265892668926789268892698927089271892728927389274892758927689277892788927989280892818928289283892848928589286892878928889289892908929189292892938929489295892968929789298892998930089301893028930389304893058930689307893088930989310893118931289313893148931589316893178931889319893208932189322893238932489325893268932789328893298933089331893328933389334893358933689337893388933989340893418934289343893448934589346893478934889349893508935189352893538935489355893568935789358893598936089361893628936389364893658936689367893688936989370893718937289373893748937589376893778937889379893808938189382893838938489385893868938789388893898939089391893928939389394893958939689397893988939989400894018940289403894048940589406894078940889409894108941189412894138941489415894168941789418894198942089421894228942389424894258942689427894288942989430894318943289433894348943589436894378943889439894408944189442894438944489445894468944789448894498945089451894528945389454894558945689457894588945989460894618946289463894648946589466894678946889469894708947189472894738947489475894768947789478894798948089481894828948389484894858948689487894888948989490894918949289493894948949589496894978949889499895008950189502895038950489505895068950789508895098951089511895128951389514895158951689517895188951989520895218952289523895248952589526895278952889529895308953189532895338953489535895368953789538895398954089541895428954389544895458954689547895488954989550895518955289553895548955589556895578955889559895608956189562895638956489565895668956789568895698957089571895728957389574895758957689577895788957989580895818958289583895848958589586895878958889589895908959189592895938959489595895968959789598895998960089601896028960389604896058960689607896088960989610896118961289613896148961589616896178961889619896208962189622896238962489625896268962789628896298963089631896328963389634896358963689637896388963989640896418964289643896448964589646896478964889649896508965189652896538965489655896568965789658896598966089661896628966389664896658966689667896688966989670896718967289673896748967589676896778967889679896808968189682896838968489685896868968789688896898969089691896928969389694896958969689697896988969989700897018970289703897048970589706897078970889709897108971189712897138971489715897168971789718897198972089721897228972389724897258972689727897288972989730897318973289733897348973589736897378973889739897408974189742897438974489745897468974789748897498975089751897528975389754897558975689757897588975989760897618976289763897648976589766897678976889769897708977189772897738977489775897768977789778897798978089781897828978389784897858978689787897888978989790897918979289793897948979589796897978979889799898008980189802898038980489805898068980789808898098981089811898128981389814898158981689817898188981989820898218982289823898248982589826898278982889829898308983189832898338983489835898368983789838898398984089841898428984389844898458984689847898488984989850898518985289853898548985589856898578985889859898608986189862898638986489865898668986789868898698987089871898728987389874898758987689877898788987989880898818988289883898848988589886898878988889889898908989189892898938989489895898968989789898898998990089901899028990389904899058990689907899088990989910899118991289913899148991589916899178991889919899208992189922899238992489925899268992789928899298993089931899328993389934899358993689937899388993989940899418994289943899448994589946899478994889949899508995189952899538995489955899568995789958899598996089961899628996389964899658996689967899688996989970899718997289973899748997589976899778997889979899808998189982899838998489985899868998789988899898999089991899928999389994899958999689997899988999990000900019000290003900049000590006900079000890009900109001190012900139001490015900169001790018900199002090021900229002390024900259002690027900289002990030900319003290033900349003590036900379003890039900409004190042900439004490045900469004790048900499005090051900529005390054900559005690057900589005990060900619006290063900649006590066900679006890069900709007190072900739007490075900769007790078900799008090081900829008390084900859008690087900889008990090900919009290093900949009590096900979009890099901009010190102901039010490105901069010790108901099011090111901129011390114901159011690117901189011990120901219012290123901249012590126901279012890129901309013190132901339013490135901369013790138901399014090141901429014390144901459014690147901489014990150901519015290153901549015590156901579015890159901609016190162901639016490165901669016790168901699017090171901729017390174901759017690177901789017990180901819018290183901849018590186901879018890189901909019190192901939019490195901969019790198901999020090201902029020390204902059020690207902089020990210902119021290213902149021590216902179021890219902209022190222902239022490225902269022790228902299023090231902329023390234902359023690237902389023990240902419024290243902449024590246902479024890249902509025190252902539025490255902569025790258902599026090261902629026390264902659026690267902689026990270902719027290273902749027590276902779027890279902809028190282902839028490285902869028790288902899029090291902929029390294902959029690297902989029990300903019030290303903049030590306903079030890309903109031190312903139031490315903169031790318903199032090321903229032390324903259032690327903289032990330903319033290333903349033590336903379033890339903409034190342903439034490345903469034790348903499035090351903529035390354903559035690357903589035990360903619036290363903649036590366903679036890369903709037190372903739037490375903769037790378903799038090381903829038390384903859038690387903889038990390903919039290393903949039590396903979039890399904009040190402904039040490405904069040790408904099041090411904129041390414904159041690417904189041990420904219042290423904249042590426904279042890429904309043190432904339043490435904369043790438904399044090441904429044390444904459044690447904489044990450904519045290453904549045590456904579045890459904609046190462904639046490465904669046790468904699047090471904729047390474904759047690477904789047990480904819048290483904849048590486904879048890489904909049190492904939049490495904969049790498904999050090501905029050390504905059050690507905089050990510905119051290513905149051590516905179051890519905209052190522905239052490525905269052790528905299053090531905329053390534905359053690537905389053990540905419054290543905449054590546905479054890549905509055190552905539055490555905569055790558905599056090561905629056390564905659056690567905689056990570905719057290573905749057590576905779057890579905809058190582905839058490585905869058790588905899059090591905929059390594905959059690597905989059990600906019060290603906049060590606906079060890609906109061190612906139061490615906169061790618906199062090621906229062390624906259062690627906289062990630906319063290633906349063590636906379063890639906409064190642906439064490645906469064790648906499065090651906529065390654906559065690657906589065990660906619066290663906649066590666906679066890669906709067190672906739067490675906769067790678906799068090681906829068390684906859068690687906889068990690906919069290693906949069590696906979069890699907009070190702907039070490705907069070790708907099071090711907129071390714907159071690717907189071990720907219072290723907249072590726907279072890729907309073190732907339073490735907369073790738907399074090741907429074390744907459074690747907489074990750907519075290753907549075590756907579075890759907609076190762907639076490765907669076790768907699077090771907729077390774907759077690777907789077990780907819078290783907849078590786907879078890789907909079190792907939079490795907969079790798907999080090801908029080390804908059080690807908089080990810908119081290813908149081590816908179081890819908209082190822908239082490825908269082790828908299083090831908329083390834908359083690837908389083990840908419084290843908449084590846908479084890849908509085190852908539085490855908569085790858908599086090861908629086390864908659086690867908689086990870908719087290873908749087590876908779087890879908809088190882908839088490885908869088790888908899089090891908929089390894908959089690897908989089990900909019090290903909049090590906909079090890909909109091190912909139091490915909169091790918909199092090921909229092390924909259092690927909289092990930909319093290933909349093590936909379093890939909409094190942909439094490945909469094790948909499095090951909529095390954909559095690957909589095990960909619096290963909649096590966909679096890969909709097190972909739097490975909769097790978909799098090981909829098390984909859098690987909889098990990909919099290993909949099590996909979099890999910009100191002910039100491005910069100791008910099101091011910129101391014910159101691017910189101991020910219102291023910249102591026910279102891029910309103191032910339103491035910369103791038910399104091041910429104391044910459104691047910489104991050910519105291053910549105591056910579105891059910609106191062910639106491065910669106791068910699107091071910729107391074910759107691077910789107991080910819108291083910849108591086910879108891089910909109191092910939109491095910969109791098910999110091101911029110391104911059110691107911089110991110911119111291113911149111591116911179111891119911209112191122911239112491125911269112791128911299113091131911329113391134911359113691137911389113991140911419114291143911449114591146911479114891149911509115191152911539115491155911569115791158911599116091161911629116391164911659116691167911689116991170911719117291173911749117591176911779117891179911809118191182911839118491185911869118791188911899119091191911929119391194911959119691197911989119991200912019120291203912049120591206912079120891209912109121191212912139121491215912169121791218912199122091221912229122391224912259122691227912289122991230912319123291233912349123591236912379123891239912409124191242912439124491245912469124791248912499125091251912529125391254912559125691257912589125991260912619126291263912649126591266912679126891269912709127191272912739127491275912769127791278912799128091281912829128391284912859128691287912889128991290912919129291293912949129591296912979129891299913009130191302913039130491305913069130791308913099131091311913129131391314913159131691317913189131991320913219132291323913249132591326913279132891329913309133191332913339133491335913369133791338913399134091341913429134391344913459134691347913489134991350913519135291353913549135591356913579135891359913609136191362913639136491365913669136791368913699137091371913729137391374913759137691377913789137991380913819138291383913849138591386913879138891389913909139191392913939139491395913969139791398913999140091401914029140391404914059140691407914089140991410914119141291413914149141591416914179141891419914209142191422914239142491425914269142791428914299143091431914329143391434914359143691437914389143991440914419144291443914449144591446914479144891449914509145191452914539145491455914569145791458914599146091461914629146391464914659146691467914689146991470914719147291473914749147591476914779147891479914809148191482914839148491485914869148791488914899149091491914929149391494914959149691497914989149991500915019150291503915049150591506915079150891509915109151191512915139151491515915169151791518915199152091521915229152391524915259152691527915289152991530915319153291533915349153591536915379153891539915409154191542915439154491545915469154791548915499155091551915529155391554915559155691557915589155991560915619156291563915649156591566915679156891569915709157191572915739157491575915769157791578915799158091581915829158391584915859158691587915889158991590915919159291593915949159591596915979159891599916009160191602916039160491605916069160791608916099161091611916129161391614916159161691617916189161991620916219162291623916249162591626916279162891629916309163191632916339163491635916369163791638916399164091641916429164391644916459164691647916489164991650916519165291653916549165591656916579165891659916609166191662916639166491665916669166791668916699167091671916729167391674916759167691677916789167991680916819168291683916849168591686916879168891689916909169191692916939169491695916969169791698916999170091701917029170391704917059170691707917089170991710917119171291713917149171591716917179171891719917209172191722917239172491725917269172791728917299173091731917329173391734917359173691737917389173991740917419174291743917449174591746917479174891749917509175191752917539175491755917569175791758917599176091761917629176391764917659176691767917689176991770917719177291773917749177591776917779177891779917809178191782917839178491785917869178791788917899179091791917929179391794917959179691797917989179991800918019180291803918049180591806918079180891809918109181191812918139181491815918169181791818918199182091821918229182391824918259182691827918289182991830918319183291833918349183591836918379183891839918409184191842918439184491845918469184791848918499185091851918529185391854918559185691857918589185991860918619186291863918649186591866918679186891869918709187191872918739187491875918769187791878918799188091881918829188391884918859188691887918889188991890918919189291893918949189591896918979189891899919009190191902919039190491905919069190791908919099191091911919129191391914919159191691917919189191991920919219192291923919249192591926919279192891929919309193191932919339193491935919369193791938919399194091941919429194391944919459194691947919489194991950919519195291953919549195591956919579195891959919609196191962919639196491965919669196791968919699197091971919729197391974919759197691977919789197991980919819198291983919849198591986919879198891989919909199191992919939199491995919969199791998919999200092001920029200392004920059200692007920089200992010920119201292013920149201592016920179201892019920209202192022920239202492025920269202792028920299203092031920329203392034920359203692037920389203992040920419204292043920449204592046920479204892049920509205192052920539205492055920569205792058920599206092061920629206392064920659206692067920689206992070920719207292073920749207592076920779207892079920809208192082920839208492085920869208792088920899209092091920929209392094920959209692097920989209992100921019210292103921049210592106921079210892109921109211192112921139211492115921169211792118921199212092121921229212392124921259212692127921289212992130921319213292133921349213592136921379213892139921409214192142921439214492145921469214792148921499215092151921529215392154921559215692157921589215992160921619216292163921649216592166921679216892169921709217192172921739217492175921769217792178921799218092181921829218392184921859218692187921889218992190921919219292193921949219592196921979219892199922009220192202922039220492205922069220792208922099221092211922129221392214922159221692217922189221992220922219222292223922249222592226922279222892229922309223192232922339223492235922369223792238922399224092241922429224392244922459224692247922489224992250922519225292253922549225592256922579225892259922609226192262922639226492265922669226792268922699227092271922729227392274922759227692277922789227992280922819228292283922849228592286922879228892289922909229192292922939229492295922969229792298922999230092301923029230392304923059230692307923089230992310923119231292313923149231592316923179231892319923209232192322923239232492325923269232792328923299233092331923329233392334923359233692337923389233992340923419234292343923449234592346923479234892349923509235192352923539235492355923569235792358923599236092361923629236392364923659236692367923689236992370923719237292373923749237592376923779237892379923809238192382923839238492385923869238792388923899239092391923929239392394923959239692397923989239992400924019240292403924049240592406924079240892409924109241192412924139241492415924169241792418924199242092421924229242392424924259242692427924289242992430924319243292433924349243592436924379243892439924409244192442924439244492445924469244792448924499245092451924529245392454924559245692457924589245992460924619246292463924649246592466924679246892469924709247192472924739247492475924769247792478924799248092481924829248392484924859248692487924889248992490924919249292493924949249592496924979249892499925009250192502925039250492505925069250792508925099251092511925129251392514925159251692517925189251992520925219252292523925249252592526925279252892529925309253192532925339253492535925369253792538925399254092541925429254392544925459254692547925489254992550925519255292553925549255592556925579255892559925609256192562925639256492565925669256792568925699257092571925729257392574925759257692577925789257992580925819258292583925849258592586925879258892589925909259192592925939259492595925969259792598925999260092601926029260392604926059260692607926089260992610926119261292613926149261592616926179261892619926209262192622926239262492625926269262792628926299263092631926329263392634926359263692637926389263992640926419264292643926449264592646926479264892649926509265192652926539265492655926569265792658926599266092661926629266392664926659266692667926689266992670926719267292673926749267592676926779267892679926809268192682926839268492685926869268792688926899269092691926929269392694926959269692697926989269992700927019270292703927049270592706927079270892709927109271192712927139271492715927169271792718927199272092721927229272392724927259272692727927289272992730927319273292733927349273592736927379273892739927409274192742927439274492745927469274792748927499275092751927529275392754927559275692757927589275992760927619276292763927649276592766927679276892769927709277192772927739277492775927769277792778927799278092781927829278392784927859278692787927889278992790927919279292793927949279592796927979279892799928009280192802928039280492805928069280792808928099281092811928129281392814928159281692817928189281992820928219282292823928249282592826928279282892829928309283192832928339283492835928369283792838928399284092841928429284392844928459284692847928489284992850928519285292853928549285592856928579285892859928609286192862928639286492865928669286792868928699287092871928729287392874928759287692877928789287992880928819288292883928849288592886928879288892889928909289192892928939289492895928969289792898928999290092901929029290392904929059290692907929089290992910929119291292913929149291592916929179291892919929209292192922929239292492925929269292792928929299293092931929329293392934929359293692937929389293992940929419294292943929449294592946929479294892949929509295192952929539295492955929569295792958929599296092961929629296392964929659296692967929689296992970929719297292973929749297592976929779297892979929809298192982929839298492985929869298792988929899299092991929929299392994929959299692997929989299993000930019300293003930049300593006930079300893009930109301193012930139301493015930169301793018930199302093021930229302393024930259302693027930289302993030930319303293033930349303593036930379303893039930409304193042930439304493045930469304793048930499305093051930529305393054930559305693057930589305993060930619306293063930649306593066930679306893069930709307193072930739307493075930769307793078930799308093081930829308393084930859308693087930889308993090930919309293093930949309593096930979309893099931009310193102931039310493105931069310793108931099311093111931129311393114931159311693117931189311993120931219312293123931249312593126931279312893129931309313193132931339313493135931369313793138931399314093141931429314393144931459314693147931489314993150931519315293153931549315593156931579315893159931609316193162931639316493165931669316793168931699317093171931729317393174931759317693177931789317993180931819318293183931849318593186931879318893189931909319193192931939319493195931969319793198931999320093201932029320393204932059320693207932089320993210932119321293213932149321593216932179321893219932209322193222932239322493225932269322793228932299323093231932329323393234932359323693237932389323993240932419324293243932449324593246932479324893249932509325193252932539325493255932569325793258932599326093261932629326393264932659326693267932689326993270932719327293273932749327593276932779327893279932809328193282932839328493285932869328793288932899329093291932929329393294932959329693297932989329993300933019330293303933049330593306933079330893309933109331193312933139331493315933169331793318933199332093321933229332393324933259332693327933289332993330933319333293333933349333593336933379333893339933409334193342933439334493345933469334793348933499335093351933529335393354933559335693357933589335993360933619336293363933649336593366933679336893369933709337193372933739337493375933769337793378933799338093381933829338393384933859338693387933889338993390933919339293393933949339593396933979339893399934009340193402934039340493405934069340793408934099341093411934129341393414934159341693417934189341993420934219342293423934249342593426934279342893429934309343193432934339343493435934369343793438934399344093441934429344393444934459344693447934489344993450934519345293453934549345593456934579345893459934609346193462934639346493465934669346793468934699347093471934729347393474934759347693477934789347993480934819348293483934849348593486934879348893489934909349193492934939349493495934969349793498934999350093501935029350393504935059350693507935089350993510935119351293513935149351593516935179351893519935209352193522935239352493525935269352793528935299353093531935329353393534935359353693537935389353993540935419354293543935449354593546935479354893549935509355193552935539355493555935569355793558935599356093561935629356393564935659356693567935689356993570935719357293573935749357593576935779357893579935809358193582935839358493585935869358793588935899359093591935929359393594935959359693597935989359993600936019360293603936049360593606936079360893609936109361193612936139361493615936169361793618936199362093621936229362393624936259362693627936289362993630936319363293633936349363593636936379363893639936409364193642936439364493645936469364793648936499365093651936529365393654936559365693657936589365993660936619366293663936649366593666936679366893669936709367193672936739367493675936769367793678936799368093681936829368393684936859368693687936889368993690936919369293693936949369593696936979369893699937009370193702937039370493705937069370793708937099371093711937129371393714937159371693717937189371993720937219372293723937249372593726937279372893729937309373193732937339373493735937369373793738937399374093741937429374393744937459374693747937489374993750937519375293753937549375593756937579375893759937609376193762937639376493765937669376793768937699377093771937729377393774937759377693777937789377993780937819378293783937849378593786937879378893789937909379193792937939379493795937969379793798937999380093801938029380393804938059380693807938089380993810938119381293813938149381593816938179381893819938209382193822938239382493825938269382793828938299383093831938329383393834938359383693837938389383993840938419384293843938449384593846938479384893849938509385193852938539385493855938569385793858938599386093861938629386393864938659386693867938689386993870938719387293873938749387593876938779387893879938809388193882938839388493885938869388793888938899389093891938929389393894938959389693897938989389993900939019390293903939049390593906939079390893909939109391193912939139391493915939169391793918939199392093921939229392393924939259392693927939289392993930939319393293933939349393593936939379393893939939409394193942939439394493945939469394793948939499395093951939529395393954939559395693957939589395993960939619396293963939649396593966939679396893969939709397193972939739397493975939769397793978939799398093981939829398393984939859398693987939889398993990939919399293993939949399593996939979399893999940009400194002940039400494005940069400794008940099401094011940129401394014940159401694017940189401994020940219402294023940249402594026940279402894029940309403194032940339403494035940369403794038940399404094041940429404394044940459404694047940489404994050940519405294053940549405594056940579405894059940609406194062940639406494065940669406794068940699407094071940729407394074940759407694077940789407994080940819408294083940849408594086940879408894089940909409194092940939409494095940969409794098940999410094101941029410394104941059410694107941089410994110941119411294113941149411594116941179411894119941209412194122941239412494125941269412794128941299413094131941329413394134941359413694137941389413994140941419414294143941449414594146941479414894149941509415194152941539415494155941569415794158941599416094161941629416394164941659416694167941689416994170941719417294173941749417594176941779417894179941809418194182941839418494185941869418794188941899419094191941929419394194941959419694197941989419994200942019420294203942049420594206942079420894209942109421194212942139421494215942169421794218942199422094221942229422394224942259422694227942289422994230942319423294233942349423594236942379423894239942409424194242942439424494245942469424794248942499425094251942529425394254942559425694257942589425994260942619426294263942649426594266942679426894269942709427194272942739427494275942769427794278942799428094281942829428394284942859428694287942889428994290942919429294293942949429594296942979429894299943009430194302943039430494305943069430794308943099431094311943129431394314943159431694317943189431994320943219432294323943249432594326943279432894329943309433194332943339433494335943369433794338943399434094341943429434394344943459434694347943489434994350943519435294353943549435594356943579435894359943609436194362943639436494365943669436794368943699437094371943729437394374943759437694377943789437994380943819438294383943849438594386943879438894389943909439194392943939439494395943969439794398943999440094401944029440394404944059440694407944089440994410944119441294413944149441594416944179441894419944209442194422944239442494425944269442794428944299443094431944329443394434944359443694437944389443994440944419444294443944449444594446944479444894449944509445194452944539445494455944569445794458944599446094461944629446394464944659446694467944689446994470944719447294473944749447594476944779447894479944809448194482944839448494485944869448794488944899449094491944929449394494944959449694497944989449994500945019450294503945049450594506945079450894509945109451194512945139451494515945169451794518945199452094521945229452394524945259452694527945289452994530945319453294533945349453594536945379453894539945409454194542945439454494545945469454794548945499455094551945529455394554945559455694557945589455994560945619456294563945649456594566945679456894569945709457194572945739457494575945769457794578945799458094581945829458394584945859458694587945889458994590945919459294593945949459594596945979459894599946009460194602946039460494605946069460794608946099461094611946129461394614946159461694617946189461994620946219462294623946249462594626946279462894629946309463194632946339463494635946369463794638946399464094641946429464394644946459464694647946489464994650946519465294653946549465594656946579465894659946609466194662946639466494665946669466794668946699467094671946729467394674946759467694677946789467994680946819468294683946849468594686946879468894689946909469194692946939469494695946969469794698946999470094701947029470394704947059470694707947089470994710947119471294713947149471594716947179471894719947209472194722947239472494725947269472794728947299473094731947329473394734947359473694737947389473994740947419474294743947449474594746947479474894749947509475194752947539475494755947569475794758947599476094761947629476394764947659476694767947689476994770947719477294773947749477594776947779477894779947809478194782947839478494785947869478794788947899479094791947929479394794947959479694797947989479994800948019480294803948049480594806948079480894809948109481194812948139481494815948169481794818948199482094821948229482394824948259482694827948289482994830948319483294833948349483594836948379483894839948409484194842948439484494845948469484794848948499485094851948529485394854948559485694857948589485994860948619486294863948649486594866948679486894869948709487194872948739487494875948769487794878948799488094881948829488394884948859488694887948889488994890948919489294893948949489594896948979489894899949009490194902949039490494905949069490794908949099491094911949129491394914949159491694917949189491994920949219492294923949249492594926949279492894929949309493194932949339493494935949369493794938949399494094941949429494394944949459494694947949489494994950949519495294953949549495594956949579495894959949609496194962949639496494965949669496794968949699497094971949729497394974949759497694977949789497994980949819498294983949849498594986949879498894989949909499194992949939499494995949969499794998949999500095001950029500395004950059500695007950089500995010950119501295013950149501595016950179501895019950209502195022950239502495025950269502795028950299503095031950329503395034950359503695037950389503995040950419504295043950449504595046950479504895049950509505195052950539505495055950569505795058950599506095061950629506395064950659506695067950689506995070950719507295073950749507595076950779507895079950809508195082950839508495085950869508795088950899509095091950929509395094950959509695097950989509995100951019510295103951049510595106951079510895109951109511195112951139511495115951169511795118951199512095121951229512395124951259512695127951289512995130951319513295133951349513595136951379513895139951409514195142951439514495145951469514795148951499515095151951529515395154951559515695157951589515995160951619516295163951649516595166951679516895169951709517195172951739517495175951769517795178951799518095181951829518395184951859518695187951889518995190951919519295193951949519595196951979519895199952009520195202952039520495205952069520795208952099521095211952129521395214952159521695217952189521995220952219522295223952249522595226952279522895229952309523195232952339523495235952369523795238952399524095241952429524395244952459524695247952489524995250952519525295253952549525595256952579525895259952609526195262952639526495265952669526795268952699527095271952729527395274952759527695277952789527995280952819528295283952849528595286952879528895289952909529195292952939529495295952969529795298952999530095301953029530395304953059530695307953089530995310953119531295313953149531595316953179531895319953209532195322953239532495325953269532795328953299533095331953329533395334953359533695337953389533995340953419534295343953449534595346953479534895349953509535195352953539535495355953569535795358953599536095361953629536395364953659536695367953689536995370953719537295373953749537595376953779537895379953809538195382953839538495385953869538795388953899539095391953929539395394953959539695397953989539995400954019540295403954049540595406954079540895409954109541195412954139541495415954169541795418954199542095421954229542395424954259542695427954289542995430954319543295433954349543595436954379543895439954409544195442954439544495445954469544795448954499545095451954529545395454954559545695457954589545995460954619546295463954649546595466954679546895469954709547195472954739547495475954769547795478954799548095481954829548395484954859548695487954889548995490954919549295493954949549595496954979549895499955009550195502955039550495505955069550795508955099551095511955129551395514955159551695517955189551995520955219552295523955249552595526955279552895529955309553195532955339553495535955369553795538955399554095541955429554395544955459554695547955489554995550955519555295553955549555595556955579555895559955609556195562955639556495565955669556795568955699557095571955729557395574955759557695577955789557995580955819558295583955849558595586955879558895589955909559195592955939559495595955969559795598955999560095601956029560395604956059560695607956089560995610956119561295613956149561595616956179561895619956209562195622956239562495625956269562795628956299563095631956329563395634956359563695637956389563995640956419564295643956449564595646956479564895649956509565195652956539565495655956569565795658956599566095661956629566395664956659566695667956689566995670956719567295673956749567595676956779567895679956809568195682956839568495685956869568795688956899569095691956929569395694956959569695697956989569995700957019570295703957049570595706957079570895709957109571195712957139571495715957169571795718957199572095721957229572395724957259572695727957289572995730957319573295733957349573595736957379573895739957409574195742957439574495745957469574795748957499575095751957529575395754957559575695757957589575995760957619576295763957649576595766957679576895769957709577195772957739577495775957769577795778957799578095781957829578395784957859578695787957889578995790957919579295793957949579595796957979579895799958009580195802958039580495805958069580795808958099581095811958129581395814958159581695817958189581995820958219582295823958249582595826958279582895829958309583195832958339583495835958369583795838958399584095841958429584395844958459584695847958489584995850958519585295853958549585595856958579585895859958609586195862958639586495865958669586795868958699587095871958729587395874958759587695877958789587995880958819588295883958849588595886958879588895889958909589195892958939589495895958969589795898958999590095901959029590395904959059590695907959089590995910959119591295913959149591595916959179591895919959209592195922959239592495925959269592795928959299593095931959329593395934959359593695937959389593995940959419594295943959449594595946959479594895949959509595195952959539595495955959569595795958959599596095961959629596395964959659596695967959689596995970959719597295973959749597595976959779597895979959809598195982959839598495985959869598795988959899599095991959929599395994959959599695997959989599996000960019600296003960049600596006960079600896009960109601196012960139601496015960169601796018960199602096021960229602396024960259602696027960289602996030960319603296033960349603596036960379603896039960409604196042960439604496045960469604796048960499605096051960529605396054960559605696057960589605996060960619606296063960649606596066960679606896069960709607196072960739607496075960769607796078960799608096081960829608396084960859608696087960889608996090960919609296093960949609596096960979609896099961009610196102961039610496105961069610796108961099611096111961129611396114961159611696117961189611996120961219612296123961249612596126961279612896129961309613196132961339613496135961369613796138961399614096141961429614396144961459614696147961489614996150961519615296153961549615596156961579615896159961609616196162961639616496165961669616796168961699617096171961729617396174961759617696177961789617996180961819618296183961849618596186961879618896189961909619196192961939619496195961969619796198961999620096201962029620396204962059620696207962089620996210962119621296213962149621596216962179621896219962209622196222962239622496225962269622796228962299623096231962329623396234962359623696237962389623996240962419624296243962449624596246962479624896249962509625196252962539625496255962569625796258962599626096261962629626396264962659626696267962689626996270962719627296273962749627596276962779627896279962809628196282962839628496285962869628796288962899629096291962929629396294962959629696297962989629996300963019630296303963049630596306963079630896309963109631196312963139631496315963169631796318963199632096321963229632396324963259632696327963289632996330963319633296333963349633596336963379633896339963409634196342963439634496345963469634796348963499635096351963529635396354963559635696357963589635996360963619636296363963649636596366963679636896369963709637196372963739637496375963769637796378963799638096381963829638396384963859638696387963889638996390963919639296393963949639596396963979639896399964009640196402964039640496405964069640796408964099641096411964129641396414964159641696417964189641996420964219642296423964249642596426964279642896429964309643196432964339643496435964369643796438964399644096441964429644396444964459644696447964489644996450964519645296453964549645596456964579645896459964609646196462964639646496465964669646796468964699647096471964729647396474964759647696477964789647996480964819648296483964849648596486964879648896489964909649196492964939649496495964969649796498964999650096501965029650396504965059650696507965089650996510965119651296513965149651596516965179651896519965209652196522965239652496525965269652796528965299653096531965329653396534965359653696537965389653996540965419654296543965449654596546965479654896549965509655196552965539655496555965569655796558965599656096561965629656396564965659656696567965689656996570965719657296573965749657596576965779657896579965809658196582965839658496585965869658796588965899659096591965929659396594965959659696597965989659996600966019660296603966049660596606966079660896609966109661196612966139661496615966169661796618966199662096621966229662396624966259662696627966289662996630966319663296633966349663596636966379663896639966409664196642966439664496645966469664796648966499665096651966529665396654966559665696657966589665996660966619666296663966649666596666966679666896669966709667196672966739667496675966769667796678966799668096681966829668396684966859668696687966889668996690966919669296693966949669596696966979669896699967009670196702967039670496705967069670796708967099671096711967129671396714967159671696717967189671996720967219672296723967249672596726967279672896729967309673196732967339673496735967369673796738967399674096741967429674396744967459674696747967489674996750967519675296753967549675596756967579675896759967609676196762967639676496765967669676796768967699677096771967729677396774967759677696777967789677996780967819678296783967849678596786967879678896789967909679196792967939679496795967969679796798967999680096801968029680396804968059680696807968089680996810968119681296813968149681596816968179681896819968209682196822968239682496825968269682796828968299683096831968329683396834968359683696837968389683996840968419684296843968449684596846968479684896849968509685196852968539685496855968569685796858968599686096861968629686396864968659686696867968689686996870968719687296873968749687596876968779687896879968809688196882968839688496885968869688796888968899689096891968929689396894968959689696897968989689996900969019690296903969049690596906969079690896909969109691196912969139691496915969169691796918969199692096921969229692396924969259692696927969289692996930969319693296933969349693596936969379693896939969409694196942969439694496945969469694796948969499695096951969529695396954969559695696957969589695996960969619696296963969649696596966969679696896969969709697196972969739697496975969769697796978969799698096981969829698396984969859698696987969889698996990969919699296993969949699596996969979699896999970009700197002970039700497005970069700797008970099701097011970129701397014970159701697017970189701997020970219702297023970249702597026970279702897029970309703197032970339703497035970369703797038970399704097041970429704397044970459704697047970489704997050970519705297053970549705597056970579705897059970609706197062970639706497065970669706797068970699707097071970729707397074970759707697077970789707997080970819708297083970849708597086970879708897089970909709197092970939709497095970969709797098970999710097101971029710397104971059710697107971089710997110971119711297113971149711597116971179711897119971209712197122971239712497125971269712797128971299713097131971329713397134971359713697137971389713997140971419714297143971449714597146971479714897149971509715197152971539715497155971569715797158971599716097161971629716397164971659716697167971689716997170971719717297173971749717597176971779717897179971809718197182971839718497185971869718797188971899719097191971929719397194971959719697197971989719997200972019720297203972049720597206972079720897209972109721197212972139721497215972169721797218972199722097221972229722397224972259722697227972289722997230972319723297233972349723597236972379723897239972409724197242972439724497245972469724797248972499725097251972529725397254972559725697257972589725997260972619726297263972649726597266972679726897269972709727197272972739727497275972769727797278972799728097281972829728397284972859728697287972889728997290972919729297293972949729597296972979729897299973009730197302973039730497305973069730797308973099731097311973129731397314973159731697317973189731997320973219732297323973249732597326973279732897329973309733197332973339733497335973369733797338973399734097341973429734397344973459734697347973489734997350973519735297353973549735597356973579735897359973609736197362973639736497365973669736797368973699737097371973729737397374973759737697377973789737997380973819738297383973849738597386973879738897389973909739197392973939739497395973969739797398973999740097401974029740397404974059740697407974089740997410974119741297413974149741597416974179741897419974209742197422974239742497425974269742797428974299743097431974329743397434974359743697437974389743997440974419744297443974449744597446974479744897449974509745197452974539745497455974569745797458974599746097461974629746397464974659746697467974689746997470974719747297473974749747597476974779747897479974809748197482974839748497485974869748797488974899749097491974929749397494974959749697497974989749997500975019750297503975049750597506975079750897509975109751197512975139751497515975169751797518975199752097521975229752397524975259752697527975289752997530975319753297533975349753597536975379753897539975409754197542975439754497545975469754797548975499755097551975529755397554975559755697557975589755997560975619756297563975649756597566975679756897569975709757197572975739757497575975769757797578975799758097581975829758397584975859758697587975889758997590975919759297593975949759597596975979759897599976009760197602976039760497605976069760797608976099761097611976129761397614976159761697617976189761997620976219762297623976249762597626976279762897629976309763197632976339763497635976369763797638976399764097641976429764397644976459764697647976489764997650976519765297653976549765597656976579765897659976609766197662976639766497665976669766797668976699767097671976729767397674976759767697677976789767997680976819768297683976849768597686976879768897689976909769197692976939769497695976969769797698976999770097701977029770397704977059770697707977089770997710977119771297713977149771597716977179771897719977209772197722977239772497725977269772797728977299773097731977329773397734977359773697737977389773997740977419774297743977449774597746977479774897749977509775197752977539775497755977569775797758977599776097761977629776397764977659776697767977689776997770977719777297773977749777597776977779777897779977809778197782977839778497785977869778797788977899779097791977929779397794977959779697797977989779997800978019780297803978049780597806978079780897809978109781197812978139781497815978169781797818978199782097821978229782397824978259782697827978289782997830978319783297833978349783597836978379783897839978409784197842978439784497845978469784797848978499785097851978529785397854978559785697857978589785997860978619786297863978649786597866978679786897869978709787197872978739787497875978769787797878978799788097881978829788397884978859788697887978889788997890978919789297893978949789597896978979789897899979009790197902979039790497905979069790797908979099791097911979129791397914979159791697917979189791997920979219792297923979249792597926979279792897929979309793197932979339793497935979369793797938979399794097941979429794397944979459794697947979489794997950979519795297953979549795597956979579795897959979609796197962979639796497965979669796797968979699797097971979729797397974979759797697977979789797997980979819798297983979849798597986979879798897989979909799197992979939799497995979969799797998979999800098001980029800398004980059800698007980089800998010980119801298013980149801598016980179801898019980209802198022980239802498025980269802798028980299803098031980329803398034980359803698037980389803998040980419804298043980449804598046980479804898049980509805198052980539805498055980569805798058980599806098061980629806398064980659806698067980689806998070980719807298073980749807598076980779807898079980809808198082980839808498085980869808798088980899809098091980929809398094980959809698097980989809998100981019810298103981049810598106981079810898109981109811198112981139811498115981169811798118981199812098121981229812398124981259812698127981289812998130981319813298133981349813598136981379813898139981409814198142981439814498145981469814798148981499815098151981529815398154981559815698157981589815998160981619816298163981649816598166981679816898169981709817198172981739817498175981769817798178981799818098181981829818398184981859818698187981889818998190981919819298193981949819598196981979819898199982009820198202982039820498205982069820798208982099821098211982129821398214982159821698217982189821998220982219822298223982249822598226982279822898229982309823198232982339823498235982369823798238982399824098241982429824398244982459824698247982489824998250982519825298253982549825598256982579825898259982609826198262982639826498265982669826798268982699827098271982729827398274982759827698277982789827998280982819828298283982849828598286982879828898289982909829198292982939829498295982969829798298982999830098301983029830398304983059830698307983089830998310983119831298313983149831598316983179831898319983209832198322983239832498325983269832798328983299833098331983329833398334983359833698337983389833998340983419834298343983449834598346983479834898349983509835198352983539835498355983569835798358983599836098361983629836398364983659836698367983689836998370983719837298373983749837598376983779837898379983809838198382983839838498385983869838798388983899839098391983929839398394983959839698397983989839998400984019840298403984049840598406984079840898409984109841198412984139841498415984169841798418984199842098421984229842398424984259842698427984289842998430984319843298433984349843598436984379843898439984409844198442984439844498445984469844798448984499845098451984529845398454984559845698457984589845998460984619846298463984649846598466984679846898469984709847198472984739847498475984769847798478984799848098481984829848398484984859848698487984889848998490984919849298493984949849598496984979849898499985009850198502985039850498505985069850798508985099851098511985129851398514985159851698517985189851998520985219852298523985249852598526985279852898529985309853198532985339853498535985369853798538985399854098541985429854398544985459854698547985489854998550985519855298553985549855598556985579855898559985609856198562985639856498565985669856798568985699857098571985729857398574985759857698577985789857998580985819858298583985849858598586985879858898589985909859198592985939859498595985969859798598985999860098601986029860398604986059860698607986089860998610986119861298613986149861598616986179861898619986209862198622986239862498625986269862798628986299863098631986329863398634986359863698637986389863998640986419864298643986449864598646986479864898649986509865198652986539865498655986569865798658986599866098661986629866398664986659866698667986689866998670986719867298673986749867598676986779867898679986809868198682986839868498685986869868798688986899869098691986929869398694986959869698697986989869998700987019870298703987049870598706987079870898709987109871198712987139871498715987169871798718987199872098721987229872398724987259872698727987289872998730987319873298733987349873598736987379873898739987409874198742987439874498745987469874798748987499875098751987529875398754987559875698757987589875998760987619876298763987649876598766987679876898769987709877198772987739877498775987769877798778987799878098781987829878398784987859878698787987889878998790987919879298793987949879598796987979879898799988009880198802988039880498805988069880798808988099881098811988129881398814988159881698817988189881998820988219882298823988249882598826988279882898829988309883198832988339883498835988369883798838988399884098841988429884398844988459884698847988489884998850988519885298853988549885598856988579885898859988609886198862988639886498865988669886798868988699887098871988729887398874988759887698877988789887998880988819888298883988849888598886988879888898889988909889198892988939889498895988969889798898988999890098901989029890398904989059890698907989089890998910989119891298913989149891598916989179891898919989209892198922989239892498925989269892798928989299893098931989329893398934989359893698937989389893998940989419894298943989449894598946989479894898949989509895198952989539895498955989569895798958989599896098961989629896398964989659896698967989689896998970989719897298973989749897598976989779897898979989809898198982989839898498985989869898798988989899899098991989929899398994989959899698997989989899999000990019900299003990049900599006990079900899009990109901199012990139901499015990169901799018990199902099021990229902399024990259902699027990289902999030990319903299033990349903599036990379903899039990409904199042990439904499045990469904799048990499905099051990529905399054990559905699057990589905999060990619906299063990649906599066990679906899069990709907199072990739907499075990769907799078990799908099081990829908399084990859908699087990889908999090990919909299093990949909599096990979909899099991009910199102991039910499105991069910799108991099911099111991129911399114991159911699117991189911999120991219912299123991249912599126991279912899129991309913199132991339913499135991369913799138991399914099141991429914399144991459914699147991489914999150991519915299153991549915599156991579915899159991609916199162991639916499165991669916799168991699917099171991729917399174991759917699177991789917999180991819918299183991849918599186991879918899189991909919199192991939919499195991969919799198991999920099201992029920399204992059920699207992089920999210992119921299213992149921599216992179921899219992209922199222992239922499225992269922799228992299923099231992329923399234992359923699237992389923999240992419924299243992449924599246992479924899249992509925199252992539925499255992569925799258992599926099261992629926399264992659926699267992689926999270992719927299273992749927599276992779927899279992809928199282992839928499285992869928799288992899929099291992929929399294992959929699297992989929999300993019930299303993049930599306993079930899309993109931199312993139931499315993169931799318993199932099321993229932399324993259932699327993289932999330993319933299333993349933599336993379933899339993409934199342993439934499345993469934799348993499935099351993529935399354993559935699357993589935999360993619936299363993649936599366993679936899369993709937199372993739937499375993769937799378993799938099381993829938399384993859938699387993889938999390993919939299393993949939599396993979939899399994009940199402994039940499405994069940799408994099941099411994129941399414994159941699417994189941999420994219942299423994249942599426994279942899429994309943199432994339943499435994369943799438994399944099441994429944399444994459944699447994489944999450994519945299453994549945599456994579945899459994609946199462994639946499465994669946799468994699947099471994729947399474994759947699477994789947999480994819948299483994849948599486994879948899489994909949199492994939949499495994969949799498994999950099501995029950399504995059950699507995089950999510995119951299513995149951599516995179951899519995209952199522995239952499525995269952799528995299953099531995329953399534995359953699537995389953999540995419954299543995449954599546995479954899549995509955199552995539955499555995569955799558995599956099561995629956399564995659956699567995689956999570995719957299573995749957599576995779957899579995809958199582995839958499585995869958799588995899959099591995929959399594995959959699597995989959999600996019960299603996049960599606996079960899609996109961199612996139961499615996169961799618996199962099621996229962399624
  1. // Copyright 2015-2022 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. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  31. AabbPositionsKHR & operator=( AabbPositionsKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  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. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  180. AccelerationStructureGeometryTrianglesDataKHR & operator=( AccelerationStructureGeometryTrianglesDataKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  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. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  295. AccelerationStructureGeometryAabbsDataKHR & operator=( AccelerationStructureGeometryAabbsDataKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  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. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  373. AccelerationStructureGeometryInstancesDataKHR & operator=( AccelerationStructureGeometryInstancesDataKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  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. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  506. AccelerationStructureGeometryKHR & operator=( AccelerationStructureGeometryKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  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. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  674. AccelerationStructureBuildGeometryInfoKHR & operator=( AccelerationStructureBuildGeometryInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  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. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  826. AccelerationStructureBuildRangeInfoKHR & operator=( AccelerationStructureBuildRangeInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  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. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  918. AccelerationStructureBuildSizesInfoKHR & operator=( AccelerationStructureBuildSizesInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  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 AccelerationStructureCreateInfoKHR
  1002. {
  1003. using NativeType = VkAccelerationStructureCreateInfoKHR;
  1004. static const bool allowDuplicate = false;
  1005. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eAccelerationStructureCreateInfoKHR;
  1006. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  1007. VULKAN_HPP_CONSTEXPR AccelerationStructureCreateInfoKHR(
  1008. VULKAN_HPP_NAMESPACE::AccelerationStructureCreateFlagsKHR createFlags_ = {},
  1009. VULKAN_HPP_NAMESPACE::Buffer buffer_ = {},
  1010. VULKAN_HPP_NAMESPACE::DeviceSize offset_ = {},
  1011. VULKAN_HPP_NAMESPACE::DeviceSize size_ = {},
  1012. VULKAN_HPP_NAMESPACE::AccelerationStructureTypeKHR type_ = VULKAN_HPP_NAMESPACE::AccelerationStructureTypeKHR::eTopLevel,
  1013. VULKAN_HPP_NAMESPACE::DeviceAddress deviceAddress_ = {},
  1014. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  1015. : pNext( pNext_ )
  1016. , createFlags( createFlags_ )
  1017. , buffer( buffer_ )
  1018. , offset( offset_ )
  1019. , size( size_ )
  1020. , type( type_ )
  1021. , deviceAddress( deviceAddress_ )
  1022. {
  1023. }
  1024. VULKAN_HPP_CONSTEXPR AccelerationStructureCreateInfoKHR( AccelerationStructureCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  1025. AccelerationStructureCreateInfoKHR( VkAccelerationStructureCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  1026. : AccelerationStructureCreateInfoKHR( *reinterpret_cast<AccelerationStructureCreateInfoKHR const *>( &rhs ) )
  1027. {
  1028. }
  1029. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  1030. AccelerationStructureCreateInfoKHR & operator=( AccelerationStructureCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  1031. AccelerationStructureCreateInfoKHR & operator=( VkAccelerationStructureCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  1032. {
  1033. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::AccelerationStructureCreateInfoKHR const *>( &rhs );
  1034. return *this;
  1035. }
  1036. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  1037. VULKAN_HPP_CONSTEXPR_14 AccelerationStructureCreateInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  1038. {
  1039. pNext = pNext_;
  1040. return *this;
  1041. }
  1042. VULKAN_HPP_CONSTEXPR_14 AccelerationStructureCreateInfoKHR &
  1043. setCreateFlags( VULKAN_HPP_NAMESPACE::AccelerationStructureCreateFlagsKHR createFlags_ ) VULKAN_HPP_NOEXCEPT
  1044. {
  1045. createFlags = createFlags_;
  1046. return *this;
  1047. }
  1048. VULKAN_HPP_CONSTEXPR_14 AccelerationStructureCreateInfoKHR & setBuffer( VULKAN_HPP_NAMESPACE::Buffer buffer_ ) VULKAN_HPP_NOEXCEPT
  1049. {
  1050. buffer = buffer_;
  1051. return *this;
  1052. }
  1053. VULKAN_HPP_CONSTEXPR_14 AccelerationStructureCreateInfoKHR & setOffset( VULKAN_HPP_NAMESPACE::DeviceSize offset_ ) VULKAN_HPP_NOEXCEPT
  1054. {
  1055. offset = offset_;
  1056. return *this;
  1057. }
  1058. VULKAN_HPP_CONSTEXPR_14 AccelerationStructureCreateInfoKHR & setSize( VULKAN_HPP_NAMESPACE::DeviceSize size_ ) VULKAN_HPP_NOEXCEPT
  1059. {
  1060. size = size_;
  1061. return *this;
  1062. }
  1063. VULKAN_HPP_CONSTEXPR_14 AccelerationStructureCreateInfoKHR & setType( VULKAN_HPP_NAMESPACE::AccelerationStructureTypeKHR type_ ) VULKAN_HPP_NOEXCEPT
  1064. {
  1065. type = type_;
  1066. return *this;
  1067. }
  1068. VULKAN_HPP_CONSTEXPR_14 AccelerationStructureCreateInfoKHR & setDeviceAddress( VULKAN_HPP_NAMESPACE::DeviceAddress deviceAddress_ ) VULKAN_HPP_NOEXCEPT
  1069. {
  1070. deviceAddress = deviceAddress_;
  1071. return *this;
  1072. }
  1073. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  1074. operator VkAccelerationStructureCreateInfoKHR const &() const VULKAN_HPP_NOEXCEPT
  1075. {
  1076. return *reinterpret_cast<const VkAccelerationStructureCreateInfoKHR *>( this );
  1077. }
  1078. operator VkAccelerationStructureCreateInfoKHR &() VULKAN_HPP_NOEXCEPT
  1079. {
  1080. return *reinterpret_cast<VkAccelerationStructureCreateInfoKHR *>( this );
  1081. }
  1082. #if defined( VULKAN_HPP_USE_REFLECT )
  1083. # if 14 <= VULKAN_HPP_CPP_VERSION
  1084. auto
  1085. # else
  1086. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  1087. const void * const &,
  1088. VULKAN_HPP_NAMESPACE::AccelerationStructureCreateFlagsKHR const &,
  1089. VULKAN_HPP_NAMESPACE::Buffer const &,
  1090. VULKAN_HPP_NAMESPACE::DeviceSize const &,
  1091. VULKAN_HPP_NAMESPACE::DeviceSize const &,
  1092. VULKAN_HPP_NAMESPACE::AccelerationStructureTypeKHR const &,
  1093. VULKAN_HPP_NAMESPACE::DeviceAddress const &>
  1094. # endif
  1095. reflect() const VULKAN_HPP_NOEXCEPT
  1096. {
  1097. return std::tie( sType, pNext, createFlags, buffer, offset, size, type, deviceAddress );
  1098. }
  1099. #endif
  1100. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  1101. auto operator<=>( AccelerationStructureCreateInfoKHR const & ) const = default;
  1102. #else
  1103. bool operator==( AccelerationStructureCreateInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  1104. {
  1105. # if defined( VULKAN_HPP_USE_REFLECT )
  1106. return this->reflect() == rhs.reflect();
  1107. # else
  1108. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( createFlags == rhs.createFlags ) && ( buffer == rhs.buffer ) && ( offset == rhs.offset ) &&
  1109. ( size == rhs.size ) && ( type == rhs.type ) && ( deviceAddress == rhs.deviceAddress );
  1110. # endif
  1111. }
  1112. bool operator!=( AccelerationStructureCreateInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  1113. {
  1114. return !operator==( rhs );
  1115. }
  1116. #endif
  1117. public:
  1118. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eAccelerationStructureCreateInfoKHR;
  1119. const void * pNext = {};
  1120. VULKAN_HPP_NAMESPACE::AccelerationStructureCreateFlagsKHR createFlags = {};
  1121. VULKAN_HPP_NAMESPACE::Buffer buffer = {};
  1122. VULKAN_HPP_NAMESPACE::DeviceSize offset = {};
  1123. VULKAN_HPP_NAMESPACE::DeviceSize size = {};
  1124. VULKAN_HPP_NAMESPACE::AccelerationStructureTypeKHR type = VULKAN_HPP_NAMESPACE::AccelerationStructureTypeKHR::eTopLevel;
  1125. VULKAN_HPP_NAMESPACE::DeviceAddress deviceAddress = {};
  1126. };
  1127. template <>
  1128. struct CppType<StructureType, StructureType::eAccelerationStructureCreateInfoKHR>
  1129. {
  1130. using Type = AccelerationStructureCreateInfoKHR;
  1131. };
  1132. struct GeometryTrianglesNV
  1133. {
  1134. using NativeType = VkGeometryTrianglesNV;
  1135. static const bool allowDuplicate = false;
  1136. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eGeometryTrianglesNV;
  1137. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  1138. VULKAN_HPP_CONSTEXPR GeometryTrianglesNV( VULKAN_HPP_NAMESPACE::Buffer vertexData_ = {},
  1139. VULKAN_HPP_NAMESPACE::DeviceSize vertexOffset_ = {},
  1140. uint32_t vertexCount_ = {},
  1141. VULKAN_HPP_NAMESPACE::DeviceSize vertexStride_ = {},
  1142. VULKAN_HPP_NAMESPACE::Format vertexFormat_ = VULKAN_HPP_NAMESPACE::Format::eUndefined,
  1143. VULKAN_HPP_NAMESPACE::Buffer indexData_ = {},
  1144. VULKAN_HPP_NAMESPACE::DeviceSize indexOffset_ = {},
  1145. uint32_t indexCount_ = {},
  1146. VULKAN_HPP_NAMESPACE::IndexType indexType_ = VULKAN_HPP_NAMESPACE::IndexType::eUint16,
  1147. VULKAN_HPP_NAMESPACE::Buffer transformData_ = {},
  1148. VULKAN_HPP_NAMESPACE::DeviceSize transformOffset_ = {},
  1149. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  1150. : pNext( pNext_ )
  1151. , vertexData( vertexData_ )
  1152. , vertexOffset( vertexOffset_ )
  1153. , vertexCount( vertexCount_ )
  1154. , vertexStride( vertexStride_ )
  1155. , vertexFormat( vertexFormat_ )
  1156. , indexData( indexData_ )
  1157. , indexOffset( indexOffset_ )
  1158. , indexCount( indexCount_ )
  1159. , indexType( indexType_ )
  1160. , transformData( transformData_ )
  1161. , transformOffset( transformOffset_ )
  1162. {
  1163. }
  1164. VULKAN_HPP_CONSTEXPR GeometryTrianglesNV( GeometryTrianglesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  1165. GeometryTrianglesNV( VkGeometryTrianglesNV const & rhs ) VULKAN_HPP_NOEXCEPT : GeometryTrianglesNV( *reinterpret_cast<GeometryTrianglesNV const *>( &rhs ) )
  1166. {
  1167. }
  1168. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  1169. GeometryTrianglesNV & operator=( GeometryTrianglesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  1170. GeometryTrianglesNV & operator=( VkGeometryTrianglesNV const & rhs ) VULKAN_HPP_NOEXCEPT
  1171. {
  1172. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::GeometryTrianglesNV const *>( &rhs );
  1173. return *this;
  1174. }
  1175. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  1176. VULKAN_HPP_CONSTEXPR_14 GeometryTrianglesNV & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  1177. {
  1178. pNext = pNext_;
  1179. return *this;
  1180. }
  1181. VULKAN_HPP_CONSTEXPR_14 GeometryTrianglesNV & setVertexData( VULKAN_HPP_NAMESPACE::Buffer vertexData_ ) VULKAN_HPP_NOEXCEPT
  1182. {
  1183. vertexData = vertexData_;
  1184. return *this;
  1185. }
  1186. VULKAN_HPP_CONSTEXPR_14 GeometryTrianglesNV & setVertexOffset( VULKAN_HPP_NAMESPACE::DeviceSize vertexOffset_ ) VULKAN_HPP_NOEXCEPT
  1187. {
  1188. vertexOffset = vertexOffset_;
  1189. return *this;
  1190. }
  1191. VULKAN_HPP_CONSTEXPR_14 GeometryTrianglesNV & setVertexCount( uint32_t vertexCount_ ) VULKAN_HPP_NOEXCEPT
  1192. {
  1193. vertexCount = vertexCount_;
  1194. return *this;
  1195. }
  1196. VULKAN_HPP_CONSTEXPR_14 GeometryTrianglesNV & setVertexStride( VULKAN_HPP_NAMESPACE::DeviceSize vertexStride_ ) VULKAN_HPP_NOEXCEPT
  1197. {
  1198. vertexStride = vertexStride_;
  1199. return *this;
  1200. }
  1201. VULKAN_HPP_CONSTEXPR_14 GeometryTrianglesNV & setVertexFormat( VULKAN_HPP_NAMESPACE::Format vertexFormat_ ) VULKAN_HPP_NOEXCEPT
  1202. {
  1203. vertexFormat = vertexFormat_;
  1204. return *this;
  1205. }
  1206. VULKAN_HPP_CONSTEXPR_14 GeometryTrianglesNV & setIndexData( VULKAN_HPP_NAMESPACE::Buffer indexData_ ) VULKAN_HPP_NOEXCEPT
  1207. {
  1208. indexData = indexData_;
  1209. return *this;
  1210. }
  1211. VULKAN_HPP_CONSTEXPR_14 GeometryTrianglesNV & setIndexOffset( VULKAN_HPP_NAMESPACE::DeviceSize indexOffset_ ) VULKAN_HPP_NOEXCEPT
  1212. {
  1213. indexOffset = indexOffset_;
  1214. return *this;
  1215. }
  1216. VULKAN_HPP_CONSTEXPR_14 GeometryTrianglesNV & setIndexCount( uint32_t indexCount_ ) VULKAN_HPP_NOEXCEPT
  1217. {
  1218. indexCount = indexCount_;
  1219. return *this;
  1220. }
  1221. VULKAN_HPP_CONSTEXPR_14 GeometryTrianglesNV & setIndexType( VULKAN_HPP_NAMESPACE::IndexType indexType_ ) VULKAN_HPP_NOEXCEPT
  1222. {
  1223. indexType = indexType_;
  1224. return *this;
  1225. }
  1226. VULKAN_HPP_CONSTEXPR_14 GeometryTrianglesNV & setTransformData( VULKAN_HPP_NAMESPACE::Buffer transformData_ ) VULKAN_HPP_NOEXCEPT
  1227. {
  1228. transformData = transformData_;
  1229. return *this;
  1230. }
  1231. VULKAN_HPP_CONSTEXPR_14 GeometryTrianglesNV & setTransformOffset( VULKAN_HPP_NAMESPACE::DeviceSize transformOffset_ ) VULKAN_HPP_NOEXCEPT
  1232. {
  1233. transformOffset = transformOffset_;
  1234. return *this;
  1235. }
  1236. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  1237. operator VkGeometryTrianglesNV const &() const VULKAN_HPP_NOEXCEPT
  1238. {
  1239. return *reinterpret_cast<const VkGeometryTrianglesNV *>( this );
  1240. }
  1241. operator VkGeometryTrianglesNV &() VULKAN_HPP_NOEXCEPT
  1242. {
  1243. return *reinterpret_cast<VkGeometryTrianglesNV *>( this );
  1244. }
  1245. #if defined( VULKAN_HPP_USE_REFLECT )
  1246. # if 14 <= VULKAN_HPP_CPP_VERSION
  1247. auto
  1248. # else
  1249. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  1250. const void * const &,
  1251. VULKAN_HPP_NAMESPACE::Buffer const &,
  1252. VULKAN_HPP_NAMESPACE::DeviceSize const &,
  1253. uint32_t const &,
  1254. VULKAN_HPP_NAMESPACE::DeviceSize const &,
  1255. VULKAN_HPP_NAMESPACE::Format const &,
  1256. VULKAN_HPP_NAMESPACE::Buffer const &,
  1257. VULKAN_HPP_NAMESPACE::DeviceSize const &,
  1258. uint32_t const &,
  1259. VULKAN_HPP_NAMESPACE::IndexType const &,
  1260. VULKAN_HPP_NAMESPACE::Buffer const &,
  1261. VULKAN_HPP_NAMESPACE::DeviceSize const &>
  1262. # endif
  1263. reflect() const VULKAN_HPP_NOEXCEPT
  1264. {
  1265. return std::tie( sType,
  1266. pNext,
  1267. vertexData,
  1268. vertexOffset,
  1269. vertexCount,
  1270. vertexStride,
  1271. vertexFormat,
  1272. indexData,
  1273. indexOffset,
  1274. indexCount,
  1275. indexType,
  1276. transformData,
  1277. transformOffset );
  1278. }
  1279. #endif
  1280. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  1281. auto operator<=>( GeometryTrianglesNV const & ) const = default;
  1282. #else
  1283. bool operator==( GeometryTrianglesNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  1284. {
  1285. # if defined( VULKAN_HPP_USE_REFLECT )
  1286. return this->reflect() == rhs.reflect();
  1287. # else
  1288. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( vertexData == rhs.vertexData ) && ( vertexOffset == rhs.vertexOffset ) &&
  1289. ( vertexCount == rhs.vertexCount ) && ( vertexStride == rhs.vertexStride ) && ( vertexFormat == rhs.vertexFormat ) &&
  1290. ( indexData == rhs.indexData ) && ( indexOffset == rhs.indexOffset ) && ( indexCount == rhs.indexCount ) && ( indexType == rhs.indexType ) &&
  1291. ( transformData == rhs.transformData ) && ( transformOffset == rhs.transformOffset );
  1292. # endif
  1293. }
  1294. bool operator!=( GeometryTrianglesNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  1295. {
  1296. return !operator==( rhs );
  1297. }
  1298. #endif
  1299. public:
  1300. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eGeometryTrianglesNV;
  1301. const void * pNext = {};
  1302. VULKAN_HPP_NAMESPACE::Buffer vertexData = {};
  1303. VULKAN_HPP_NAMESPACE::DeviceSize vertexOffset = {};
  1304. uint32_t vertexCount = {};
  1305. VULKAN_HPP_NAMESPACE::DeviceSize vertexStride = {};
  1306. VULKAN_HPP_NAMESPACE::Format vertexFormat = VULKAN_HPP_NAMESPACE::Format::eUndefined;
  1307. VULKAN_HPP_NAMESPACE::Buffer indexData = {};
  1308. VULKAN_HPP_NAMESPACE::DeviceSize indexOffset = {};
  1309. uint32_t indexCount = {};
  1310. VULKAN_HPP_NAMESPACE::IndexType indexType = VULKAN_HPP_NAMESPACE::IndexType::eUint16;
  1311. VULKAN_HPP_NAMESPACE::Buffer transformData = {};
  1312. VULKAN_HPP_NAMESPACE::DeviceSize transformOffset = {};
  1313. };
  1314. template <>
  1315. struct CppType<StructureType, StructureType::eGeometryTrianglesNV>
  1316. {
  1317. using Type = GeometryTrianglesNV;
  1318. };
  1319. struct GeometryAABBNV
  1320. {
  1321. using NativeType = VkGeometryAABBNV;
  1322. static const bool allowDuplicate = false;
  1323. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eGeometryAabbNV;
  1324. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  1325. VULKAN_HPP_CONSTEXPR GeometryAABBNV( VULKAN_HPP_NAMESPACE::Buffer aabbData_ = {},
  1326. uint32_t numAABBs_ = {},
  1327. uint32_t stride_ = {},
  1328. VULKAN_HPP_NAMESPACE::DeviceSize offset_ = {},
  1329. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  1330. : pNext( pNext_ )
  1331. , aabbData( aabbData_ )
  1332. , numAABBs( numAABBs_ )
  1333. , stride( stride_ )
  1334. , offset( offset_ )
  1335. {
  1336. }
  1337. VULKAN_HPP_CONSTEXPR GeometryAABBNV( GeometryAABBNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  1338. GeometryAABBNV( VkGeometryAABBNV const & rhs ) VULKAN_HPP_NOEXCEPT : GeometryAABBNV( *reinterpret_cast<GeometryAABBNV const *>( &rhs ) ) {}
  1339. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  1340. GeometryAABBNV & operator=( GeometryAABBNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  1341. GeometryAABBNV & operator=( VkGeometryAABBNV const & rhs ) VULKAN_HPP_NOEXCEPT
  1342. {
  1343. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::GeometryAABBNV const *>( &rhs );
  1344. return *this;
  1345. }
  1346. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  1347. VULKAN_HPP_CONSTEXPR_14 GeometryAABBNV & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  1348. {
  1349. pNext = pNext_;
  1350. return *this;
  1351. }
  1352. VULKAN_HPP_CONSTEXPR_14 GeometryAABBNV & setAabbData( VULKAN_HPP_NAMESPACE::Buffer aabbData_ ) VULKAN_HPP_NOEXCEPT
  1353. {
  1354. aabbData = aabbData_;
  1355. return *this;
  1356. }
  1357. VULKAN_HPP_CONSTEXPR_14 GeometryAABBNV & setNumAABBs( uint32_t numAABBs_ ) VULKAN_HPP_NOEXCEPT
  1358. {
  1359. numAABBs = numAABBs_;
  1360. return *this;
  1361. }
  1362. VULKAN_HPP_CONSTEXPR_14 GeometryAABBNV & setStride( uint32_t stride_ ) VULKAN_HPP_NOEXCEPT
  1363. {
  1364. stride = stride_;
  1365. return *this;
  1366. }
  1367. VULKAN_HPP_CONSTEXPR_14 GeometryAABBNV & setOffset( VULKAN_HPP_NAMESPACE::DeviceSize offset_ ) VULKAN_HPP_NOEXCEPT
  1368. {
  1369. offset = offset_;
  1370. return *this;
  1371. }
  1372. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  1373. operator VkGeometryAABBNV const &() const VULKAN_HPP_NOEXCEPT
  1374. {
  1375. return *reinterpret_cast<const VkGeometryAABBNV *>( this );
  1376. }
  1377. operator VkGeometryAABBNV &() VULKAN_HPP_NOEXCEPT
  1378. {
  1379. return *reinterpret_cast<VkGeometryAABBNV *>( this );
  1380. }
  1381. #if defined( VULKAN_HPP_USE_REFLECT )
  1382. # if 14 <= VULKAN_HPP_CPP_VERSION
  1383. auto
  1384. # else
  1385. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  1386. const void * const &,
  1387. VULKAN_HPP_NAMESPACE::Buffer const &,
  1388. uint32_t const &,
  1389. uint32_t const &,
  1390. VULKAN_HPP_NAMESPACE::DeviceSize const &>
  1391. # endif
  1392. reflect() const VULKAN_HPP_NOEXCEPT
  1393. {
  1394. return std::tie( sType, pNext, aabbData, numAABBs, stride, offset );
  1395. }
  1396. #endif
  1397. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  1398. auto operator<=>( GeometryAABBNV const & ) const = default;
  1399. #else
  1400. bool operator==( GeometryAABBNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  1401. {
  1402. # if defined( VULKAN_HPP_USE_REFLECT )
  1403. return this->reflect() == rhs.reflect();
  1404. # else
  1405. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( aabbData == rhs.aabbData ) && ( numAABBs == rhs.numAABBs ) && ( stride == rhs.stride ) &&
  1406. ( offset == rhs.offset );
  1407. # endif
  1408. }
  1409. bool operator!=( GeometryAABBNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  1410. {
  1411. return !operator==( rhs );
  1412. }
  1413. #endif
  1414. public:
  1415. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eGeometryAabbNV;
  1416. const void * pNext = {};
  1417. VULKAN_HPP_NAMESPACE::Buffer aabbData = {};
  1418. uint32_t numAABBs = {};
  1419. uint32_t stride = {};
  1420. VULKAN_HPP_NAMESPACE::DeviceSize offset = {};
  1421. };
  1422. template <>
  1423. struct CppType<StructureType, StructureType::eGeometryAabbNV>
  1424. {
  1425. using Type = GeometryAABBNV;
  1426. };
  1427. struct GeometryDataNV
  1428. {
  1429. using NativeType = VkGeometryDataNV;
  1430. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  1431. VULKAN_HPP_CONSTEXPR GeometryDataNV( VULKAN_HPP_NAMESPACE::GeometryTrianglesNV triangles_ = {},
  1432. VULKAN_HPP_NAMESPACE::GeometryAABBNV aabbs_ = {} ) VULKAN_HPP_NOEXCEPT
  1433. : triangles( triangles_ )
  1434. , aabbs( aabbs_ )
  1435. {
  1436. }
  1437. VULKAN_HPP_CONSTEXPR GeometryDataNV( GeometryDataNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  1438. GeometryDataNV( VkGeometryDataNV const & rhs ) VULKAN_HPP_NOEXCEPT : GeometryDataNV( *reinterpret_cast<GeometryDataNV const *>( &rhs ) ) {}
  1439. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  1440. GeometryDataNV & operator=( GeometryDataNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  1441. GeometryDataNV & operator=( VkGeometryDataNV const & rhs ) VULKAN_HPP_NOEXCEPT
  1442. {
  1443. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::GeometryDataNV const *>( &rhs );
  1444. return *this;
  1445. }
  1446. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  1447. VULKAN_HPP_CONSTEXPR_14 GeometryDataNV & setTriangles( VULKAN_HPP_NAMESPACE::GeometryTrianglesNV const & triangles_ ) VULKAN_HPP_NOEXCEPT
  1448. {
  1449. triangles = triangles_;
  1450. return *this;
  1451. }
  1452. VULKAN_HPP_CONSTEXPR_14 GeometryDataNV & setAabbs( VULKAN_HPP_NAMESPACE::GeometryAABBNV const & aabbs_ ) VULKAN_HPP_NOEXCEPT
  1453. {
  1454. aabbs = aabbs_;
  1455. return *this;
  1456. }
  1457. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  1458. operator VkGeometryDataNV const &() const VULKAN_HPP_NOEXCEPT
  1459. {
  1460. return *reinterpret_cast<const VkGeometryDataNV *>( this );
  1461. }
  1462. operator VkGeometryDataNV &() VULKAN_HPP_NOEXCEPT
  1463. {
  1464. return *reinterpret_cast<VkGeometryDataNV *>( this );
  1465. }
  1466. #if defined( VULKAN_HPP_USE_REFLECT )
  1467. # if 14 <= VULKAN_HPP_CPP_VERSION
  1468. auto
  1469. # else
  1470. std::tuple<VULKAN_HPP_NAMESPACE::GeometryTrianglesNV const &, VULKAN_HPP_NAMESPACE::GeometryAABBNV const &>
  1471. # endif
  1472. reflect() const VULKAN_HPP_NOEXCEPT
  1473. {
  1474. return std::tie( triangles, aabbs );
  1475. }
  1476. #endif
  1477. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  1478. auto operator<=>( GeometryDataNV const & ) const = default;
  1479. #else
  1480. bool operator==( GeometryDataNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  1481. {
  1482. # if defined( VULKAN_HPP_USE_REFLECT )
  1483. return this->reflect() == rhs.reflect();
  1484. # else
  1485. return ( triangles == rhs.triangles ) && ( aabbs == rhs.aabbs );
  1486. # endif
  1487. }
  1488. bool operator!=( GeometryDataNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  1489. {
  1490. return !operator==( rhs );
  1491. }
  1492. #endif
  1493. public:
  1494. VULKAN_HPP_NAMESPACE::GeometryTrianglesNV triangles = {};
  1495. VULKAN_HPP_NAMESPACE::GeometryAABBNV aabbs = {};
  1496. };
  1497. struct GeometryNV
  1498. {
  1499. using NativeType = VkGeometryNV;
  1500. static const bool allowDuplicate = false;
  1501. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eGeometryNV;
  1502. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  1503. VULKAN_HPP_CONSTEXPR GeometryNV( VULKAN_HPP_NAMESPACE::GeometryTypeKHR geometryType_ = VULKAN_HPP_NAMESPACE::GeometryTypeKHR::eTriangles,
  1504. VULKAN_HPP_NAMESPACE::GeometryDataNV geometry_ = {},
  1505. VULKAN_HPP_NAMESPACE::GeometryFlagsKHR flags_ = {},
  1506. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  1507. : pNext( pNext_ )
  1508. , geometryType( geometryType_ )
  1509. , geometry( geometry_ )
  1510. , flags( flags_ )
  1511. {
  1512. }
  1513. VULKAN_HPP_CONSTEXPR GeometryNV( GeometryNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  1514. GeometryNV( VkGeometryNV const & rhs ) VULKAN_HPP_NOEXCEPT : GeometryNV( *reinterpret_cast<GeometryNV const *>( &rhs ) ) {}
  1515. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  1516. GeometryNV & operator=( GeometryNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  1517. GeometryNV & operator=( VkGeometryNV const & rhs ) VULKAN_HPP_NOEXCEPT
  1518. {
  1519. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::GeometryNV const *>( &rhs );
  1520. return *this;
  1521. }
  1522. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  1523. VULKAN_HPP_CONSTEXPR_14 GeometryNV & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  1524. {
  1525. pNext = pNext_;
  1526. return *this;
  1527. }
  1528. VULKAN_HPP_CONSTEXPR_14 GeometryNV & setGeometryType( VULKAN_HPP_NAMESPACE::GeometryTypeKHR geometryType_ ) VULKAN_HPP_NOEXCEPT
  1529. {
  1530. geometryType = geometryType_;
  1531. return *this;
  1532. }
  1533. VULKAN_HPP_CONSTEXPR_14 GeometryNV & setGeometry( VULKAN_HPP_NAMESPACE::GeometryDataNV const & geometry_ ) VULKAN_HPP_NOEXCEPT
  1534. {
  1535. geometry = geometry_;
  1536. return *this;
  1537. }
  1538. VULKAN_HPP_CONSTEXPR_14 GeometryNV & setFlags( VULKAN_HPP_NAMESPACE::GeometryFlagsKHR flags_ ) VULKAN_HPP_NOEXCEPT
  1539. {
  1540. flags = flags_;
  1541. return *this;
  1542. }
  1543. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  1544. operator VkGeometryNV const &() const VULKAN_HPP_NOEXCEPT
  1545. {
  1546. return *reinterpret_cast<const VkGeometryNV *>( this );
  1547. }
  1548. operator VkGeometryNV &() VULKAN_HPP_NOEXCEPT
  1549. {
  1550. return *reinterpret_cast<VkGeometryNV *>( this );
  1551. }
  1552. #if defined( VULKAN_HPP_USE_REFLECT )
  1553. # if 14 <= VULKAN_HPP_CPP_VERSION
  1554. auto
  1555. # else
  1556. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  1557. const void * const &,
  1558. VULKAN_HPP_NAMESPACE::GeometryTypeKHR const &,
  1559. VULKAN_HPP_NAMESPACE::GeometryDataNV const &,
  1560. VULKAN_HPP_NAMESPACE::GeometryFlagsKHR const &>
  1561. # endif
  1562. reflect() const VULKAN_HPP_NOEXCEPT
  1563. {
  1564. return std::tie( sType, pNext, geometryType, geometry, flags );
  1565. }
  1566. #endif
  1567. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  1568. auto operator<=>( GeometryNV const & ) const = default;
  1569. #else
  1570. bool operator==( GeometryNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  1571. {
  1572. # if defined( VULKAN_HPP_USE_REFLECT )
  1573. return this->reflect() == rhs.reflect();
  1574. # else
  1575. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( geometryType == rhs.geometryType ) && ( geometry == rhs.geometry ) && ( flags == rhs.flags );
  1576. # endif
  1577. }
  1578. bool operator!=( GeometryNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  1579. {
  1580. return !operator==( rhs );
  1581. }
  1582. #endif
  1583. public:
  1584. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eGeometryNV;
  1585. const void * pNext = {};
  1586. VULKAN_HPP_NAMESPACE::GeometryTypeKHR geometryType = VULKAN_HPP_NAMESPACE::GeometryTypeKHR::eTriangles;
  1587. VULKAN_HPP_NAMESPACE::GeometryDataNV geometry = {};
  1588. VULKAN_HPP_NAMESPACE::GeometryFlagsKHR flags = {};
  1589. };
  1590. template <>
  1591. struct CppType<StructureType, StructureType::eGeometryNV>
  1592. {
  1593. using Type = GeometryNV;
  1594. };
  1595. struct AccelerationStructureInfoNV
  1596. {
  1597. using NativeType = VkAccelerationStructureInfoNV;
  1598. static const bool allowDuplicate = false;
  1599. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eAccelerationStructureInfoNV;
  1600. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  1601. VULKAN_HPP_CONSTEXPR AccelerationStructureInfoNV( VULKAN_HPP_NAMESPACE::AccelerationStructureTypeNV type_ = {},
  1602. VULKAN_HPP_NAMESPACE::BuildAccelerationStructureFlagsNV flags_ = {},
  1603. uint32_t instanceCount_ = {},
  1604. uint32_t geometryCount_ = {},
  1605. const VULKAN_HPP_NAMESPACE::GeometryNV * pGeometries_ = {},
  1606. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  1607. : pNext( pNext_ )
  1608. , type( type_ )
  1609. , flags( flags_ )
  1610. , instanceCount( instanceCount_ )
  1611. , geometryCount( geometryCount_ )
  1612. , pGeometries( pGeometries_ )
  1613. {
  1614. }
  1615. VULKAN_HPP_CONSTEXPR AccelerationStructureInfoNV( AccelerationStructureInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  1616. AccelerationStructureInfoNV( VkAccelerationStructureInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
  1617. : AccelerationStructureInfoNV( *reinterpret_cast<AccelerationStructureInfoNV const *>( &rhs ) )
  1618. {
  1619. }
  1620. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  1621. AccelerationStructureInfoNV( VULKAN_HPP_NAMESPACE::AccelerationStructureTypeNV type_,
  1622. VULKAN_HPP_NAMESPACE::BuildAccelerationStructureFlagsNV flags_,
  1623. uint32_t instanceCount_,
  1624. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::GeometryNV> const & geometries_,
  1625. const void * pNext_ = nullptr )
  1626. : pNext( pNext_ )
  1627. , type( type_ )
  1628. , flags( flags_ )
  1629. , instanceCount( instanceCount_ )
  1630. , geometryCount( static_cast<uint32_t>( geometries_.size() ) )
  1631. , pGeometries( geometries_.data() )
  1632. {
  1633. }
  1634. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  1635. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  1636. AccelerationStructureInfoNV & operator=( AccelerationStructureInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  1637. AccelerationStructureInfoNV & operator=( VkAccelerationStructureInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
  1638. {
  1639. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::AccelerationStructureInfoNV const *>( &rhs );
  1640. return *this;
  1641. }
  1642. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  1643. VULKAN_HPP_CONSTEXPR_14 AccelerationStructureInfoNV & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  1644. {
  1645. pNext = pNext_;
  1646. return *this;
  1647. }
  1648. VULKAN_HPP_CONSTEXPR_14 AccelerationStructureInfoNV & setType( VULKAN_HPP_NAMESPACE::AccelerationStructureTypeNV type_ ) VULKAN_HPP_NOEXCEPT
  1649. {
  1650. type = type_;
  1651. return *this;
  1652. }
  1653. VULKAN_HPP_CONSTEXPR_14 AccelerationStructureInfoNV & setFlags( VULKAN_HPP_NAMESPACE::BuildAccelerationStructureFlagsNV flags_ ) VULKAN_HPP_NOEXCEPT
  1654. {
  1655. flags = flags_;
  1656. return *this;
  1657. }
  1658. VULKAN_HPP_CONSTEXPR_14 AccelerationStructureInfoNV & setInstanceCount( uint32_t instanceCount_ ) VULKAN_HPP_NOEXCEPT
  1659. {
  1660. instanceCount = instanceCount_;
  1661. return *this;
  1662. }
  1663. VULKAN_HPP_CONSTEXPR_14 AccelerationStructureInfoNV & setGeometryCount( uint32_t geometryCount_ ) VULKAN_HPP_NOEXCEPT
  1664. {
  1665. geometryCount = geometryCount_;
  1666. return *this;
  1667. }
  1668. VULKAN_HPP_CONSTEXPR_14 AccelerationStructureInfoNV & setPGeometries( const VULKAN_HPP_NAMESPACE::GeometryNV * pGeometries_ ) VULKAN_HPP_NOEXCEPT
  1669. {
  1670. pGeometries = pGeometries_;
  1671. return *this;
  1672. }
  1673. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  1674. AccelerationStructureInfoNV &
  1675. setGeometries( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::GeometryNV> const & geometries_ ) VULKAN_HPP_NOEXCEPT
  1676. {
  1677. geometryCount = static_cast<uint32_t>( geometries_.size() );
  1678. pGeometries = geometries_.data();
  1679. return *this;
  1680. }
  1681. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  1682. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  1683. operator VkAccelerationStructureInfoNV const &() const VULKAN_HPP_NOEXCEPT
  1684. {
  1685. return *reinterpret_cast<const VkAccelerationStructureInfoNV *>( this );
  1686. }
  1687. operator VkAccelerationStructureInfoNV &() VULKAN_HPP_NOEXCEPT
  1688. {
  1689. return *reinterpret_cast<VkAccelerationStructureInfoNV *>( this );
  1690. }
  1691. #if defined( VULKAN_HPP_USE_REFLECT )
  1692. # if 14 <= VULKAN_HPP_CPP_VERSION
  1693. auto
  1694. # else
  1695. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  1696. const void * const &,
  1697. VULKAN_HPP_NAMESPACE::AccelerationStructureTypeNV const &,
  1698. VULKAN_HPP_NAMESPACE::BuildAccelerationStructureFlagsNV const &,
  1699. uint32_t const &,
  1700. uint32_t const &,
  1701. const VULKAN_HPP_NAMESPACE::GeometryNV * const &>
  1702. # endif
  1703. reflect() const VULKAN_HPP_NOEXCEPT
  1704. {
  1705. return std::tie( sType, pNext, type, flags, instanceCount, geometryCount, pGeometries );
  1706. }
  1707. #endif
  1708. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  1709. auto operator<=>( AccelerationStructureInfoNV const & ) const = default;
  1710. #else
  1711. bool operator==( AccelerationStructureInfoNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  1712. {
  1713. # if defined( VULKAN_HPP_USE_REFLECT )
  1714. return this->reflect() == rhs.reflect();
  1715. # else
  1716. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( type == rhs.type ) && ( flags == rhs.flags ) && ( instanceCount == rhs.instanceCount ) &&
  1717. ( geometryCount == rhs.geometryCount ) && ( pGeometries == rhs.pGeometries );
  1718. # endif
  1719. }
  1720. bool operator!=( AccelerationStructureInfoNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  1721. {
  1722. return !operator==( rhs );
  1723. }
  1724. #endif
  1725. public:
  1726. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eAccelerationStructureInfoNV;
  1727. const void * pNext = {};
  1728. VULKAN_HPP_NAMESPACE::AccelerationStructureTypeNV type = {};
  1729. VULKAN_HPP_NAMESPACE::BuildAccelerationStructureFlagsNV flags = {};
  1730. uint32_t instanceCount = {};
  1731. uint32_t geometryCount = {};
  1732. const VULKAN_HPP_NAMESPACE::GeometryNV * pGeometries = {};
  1733. };
  1734. template <>
  1735. struct CppType<StructureType, StructureType::eAccelerationStructureInfoNV>
  1736. {
  1737. using Type = AccelerationStructureInfoNV;
  1738. };
  1739. struct AccelerationStructureCreateInfoNV
  1740. {
  1741. using NativeType = VkAccelerationStructureCreateInfoNV;
  1742. static const bool allowDuplicate = false;
  1743. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eAccelerationStructureCreateInfoNV;
  1744. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  1745. VULKAN_HPP_CONSTEXPR AccelerationStructureCreateInfoNV( VULKAN_HPP_NAMESPACE::DeviceSize compactedSize_ = {},
  1746. VULKAN_HPP_NAMESPACE::AccelerationStructureInfoNV info_ = {},
  1747. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  1748. : pNext( pNext_ )
  1749. , compactedSize( compactedSize_ )
  1750. , info( info_ )
  1751. {
  1752. }
  1753. VULKAN_HPP_CONSTEXPR AccelerationStructureCreateInfoNV( AccelerationStructureCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  1754. AccelerationStructureCreateInfoNV( VkAccelerationStructureCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
  1755. : AccelerationStructureCreateInfoNV( *reinterpret_cast<AccelerationStructureCreateInfoNV const *>( &rhs ) )
  1756. {
  1757. }
  1758. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  1759. AccelerationStructureCreateInfoNV & operator=( AccelerationStructureCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  1760. AccelerationStructureCreateInfoNV & operator=( VkAccelerationStructureCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
  1761. {
  1762. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::AccelerationStructureCreateInfoNV const *>( &rhs );
  1763. return *this;
  1764. }
  1765. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  1766. VULKAN_HPP_CONSTEXPR_14 AccelerationStructureCreateInfoNV & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  1767. {
  1768. pNext = pNext_;
  1769. return *this;
  1770. }
  1771. VULKAN_HPP_CONSTEXPR_14 AccelerationStructureCreateInfoNV & setCompactedSize( VULKAN_HPP_NAMESPACE::DeviceSize compactedSize_ ) VULKAN_HPP_NOEXCEPT
  1772. {
  1773. compactedSize = compactedSize_;
  1774. return *this;
  1775. }
  1776. VULKAN_HPP_CONSTEXPR_14 AccelerationStructureCreateInfoNV & setInfo( VULKAN_HPP_NAMESPACE::AccelerationStructureInfoNV const & info_ ) VULKAN_HPP_NOEXCEPT
  1777. {
  1778. info = info_;
  1779. return *this;
  1780. }
  1781. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  1782. operator VkAccelerationStructureCreateInfoNV const &() const VULKAN_HPP_NOEXCEPT
  1783. {
  1784. return *reinterpret_cast<const VkAccelerationStructureCreateInfoNV *>( this );
  1785. }
  1786. operator VkAccelerationStructureCreateInfoNV &() VULKAN_HPP_NOEXCEPT
  1787. {
  1788. return *reinterpret_cast<VkAccelerationStructureCreateInfoNV *>( this );
  1789. }
  1790. #if defined( VULKAN_HPP_USE_REFLECT )
  1791. # if 14 <= VULKAN_HPP_CPP_VERSION
  1792. auto
  1793. # else
  1794. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  1795. const void * const &,
  1796. VULKAN_HPP_NAMESPACE::DeviceSize const &,
  1797. VULKAN_HPP_NAMESPACE::AccelerationStructureInfoNV const &>
  1798. # endif
  1799. reflect() const VULKAN_HPP_NOEXCEPT
  1800. {
  1801. return std::tie( sType, pNext, compactedSize, info );
  1802. }
  1803. #endif
  1804. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  1805. auto operator<=>( AccelerationStructureCreateInfoNV const & ) const = default;
  1806. #else
  1807. bool operator==( AccelerationStructureCreateInfoNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  1808. {
  1809. # if defined( VULKAN_HPP_USE_REFLECT )
  1810. return this->reflect() == rhs.reflect();
  1811. # else
  1812. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( compactedSize == rhs.compactedSize ) && ( info == rhs.info );
  1813. # endif
  1814. }
  1815. bool operator!=( AccelerationStructureCreateInfoNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  1816. {
  1817. return !operator==( rhs );
  1818. }
  1819. #endif
  1820. public:
  1821. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eAccelerationStructureCreateInfoNV;
  1822. const void * pNext = {};
  1823. VULKAN_HPP_NAMESPACE::DeviceSize compactedSize = {};
  1824. VULKAN_HPP_NAMESPACE::AccelerationStructureInfoNV info = {};
  1825. };
  1826. template <>
  1827. struct CppType<StructureType, StructureType::eAccelerationStructureCreateInfoNV>
  1828. {
  1829. using Type = AccelerationStructureCreateInfoNV;
  1830. };
  1831. struct AccelerationStructureDeviceAddressInfoKHR
  1832. {
  1833. using NativeType = VkAccelerationStructureDeviceAddressInfoKHR;
  1834. static const bool allowDuplicate = false;
  1835. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eAccelerationStructureDeviceAddressInfoKHR;
  1836. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  1837. VULKAN_HPP_CONSTEXPR AccelerationStructureDeviceAddressInfoKHR( VULKAN_HPP_NAMESPACE::AccelerationStructureKHR accelerationStructure_ = {},
  1838. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  1839. : pNext( pNext_ )
  1840. , accelerationStructure( accelerationStructure_ )
  1841. {
  1842. }
  1843. VULKAN_HPP_CONSTEXPR AccelerationStructureDeviceAddressInfoKHR( AccelerationStructureDeviceAddressInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  1844. AccelerationStructureDeviceAddressInfoKHR( VkAccelerationStructureDeviceAddressInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  1845. : AccelerationStructureDeviceAddressInfoKHR( *reinterpret_cast<AccelerationStructureDeviceAddressInfoKHR const *>( &rhs ) )
  1846. {
  1847. }
  1848. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  1849. AccelerationStructureDeviceAddressInfoKHR & operator=( AccelerationStructureDeviceAddressInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  1850. AccelerationStructureDeviceAddressInfoKHR & operator=( VkAccelerationStructureDeviceAddressInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  1851. {
  1852. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::AccelerationStructureDeviceAddressInfoKHR const *>( &rhs );
  1853. return *this;
  1854. }
  1855. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  1856. VULKAN_HPP_CONSTEXPR_14 AccelerationStructureDeviceAddressInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  1857. {
  1858. pNext = pNext_;
  1859. return *this;
  1860. }
  1861. VULKAN_HPP_CONSTEXPR_14 AccelerationStructureDeviceAddressInfoKHR &
  1862. setAccelerationStructure( VULKAN_HPP_NAMESPACE::AccelerationStructureKHR accelerationStructure_ ) VULKAN_HPP_NOEXCEPT
  1863. {
  1864. accelerationStructure = accelerationStructure_;
  1865. return *this;
  1866. }
  1867. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  1868. operator VkAccelerationStructureDeviceAddressInfoKHR const &() const VULKAN_HPP_NOEXCEPT
  1869. {
  1870. return *reinterpret_cast<const VkAccelerationStructureDeviceAddressInfoKHR *>( this );
  1871. }
  1872. operator VkAccelerationStructureDeviceAddressInfoKHR &() VULKAN_HPP_NOEXCEPT
  1873. {
  1874. return *reinterpret_cast<VkAccelerationStructureDeviceAddressInfoKHR *>( this );
  1875. }
  1876. #if defined( VULKAN_HPP_USE_REFLECT )
  1877. # if 14 <= VULKAN_HPP_CPP_VERSION
  1878. auto
  1879. # else
  1880. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::AccelerationStructureKHR const &>
  1881. # endif
  1882. reflect() const VULKAN_HPP_NOEXCEPT
  1883. {
  1884. return std::tie( sType, pNext, accelerationStructure );
  1885. }
  1886. #endif
  1887. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  1888. auto operator<=>( AccelerationStructureDeviceAddressInfoKHR const & ) const = default;
  1889. #else
  1890. bool operator==( AccelerationStructureDeviceAddressInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  1891. {
  1892. # if defined( VULKAN_HPP_USE_REFLECT )
  1893. return this->reflect() == rhs.reflect();
  1894. # else
  1895. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( accelerationStructure == rhs.accelerationStructure );
  1896. # endif
  1897. }
  1898. bool operator!=( AccelerationStructureDeviceAddressInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  1899. {
  1900. return !operator==( rhs );
  1901. }
  1902. #endif
  1903. public:
  1904. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eAccelerationStructureDeviceAddressInfoKHR;
  1905. const void * pNext = {};
  1906. VULKAN_HPP_NAMESPACE::AccelerationStructureKHR accelerationStructure = {};
  1907. };
  1908. template <>
  1909. struct CppType<StructureType, StructureType::eAccelerationStructureDeviceAddressInfoKHR>
  1910. {
  1911. using Type = AccelerationStructureDeviceAddressInfoKHR;
  1912. };
  1913. struct AccelerationStructureGeometryMotionTrianglesDataNV
  1914. {
  1915. using NativeType = VkAccelerationStructureGeometryMotionTrianglesDataNV;
  1916. static const bool allowDuplicate = false;
  1917. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eAccelerationStructureGeometryMotionTrianglesDataNV;
  1918. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  1919. VULKAN_HPP_CONSTEXPR_14 AccelerationStructureGeometryMotionTrianglesDataNV( VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstKHR vertexData_ = {},
  1920. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  1921. : pNext( pNext_ )
  1922. , vertexData( vertexData_ )
  1923. {
  1924. }
  1925. VULKAN_HPP_CONSTEXPR_14
  1926. AccelerationStructureGeometryMotionTrianglesDataNV( AccelerationStructureGeometryMotionTrianglesDataNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  1927. AccelerationStructureGeometryMotionTrianglesDataNV( VkAccelerationStructureGeometryMotionTrianglesDataNV const & rhs ) VULKAN_HPP_NOEXCEPT
  1928. : AccelerationStructureGeometryMotionTrianglesDataNV( *reinterpret_cast<AccelerationStructureGeometryMotionTrianglesDataNV const *>( &rhs ) )
  1929. {
  1930. }
  1931. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  1932. AccelerationStructureGeometryMotionTrianglesDataNV &
  1933. operator=( AccelerationStructureGeometryMotionTrianglesDataNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  1934. AccelerationStructureGeometryMotionTrianglesDataNV & operator=( VkAccelerationStructureGeometryMotionTrianglesDataNV const & rhs ) VULKAN_HPP_NOEXCEPT
  1935. {
  1936. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryMotionTrianglesDataNV const *>( &rhs );
  1937. return *this;
  1938. }
  1939. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  1940. VULKAN_HPP_CONSTEXPR_14 AccelerationStructureGeometryMotionTrianglesDataNV & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  1941. {
  1942. pNext = pNext_;
  1943. return *this;
  1944. }
  1945. VULKAN_HPP_CONSTEXPR_14 AccelerationStructureGeometryMotionTrianglesDataNV &
  1946. setVertexData( VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstKHR const & vertexData_ ) VULKAN_HPP_NOEXCEPT
  1947. {
  1948. vertexData = vertexData_;
  1949. return *this;
  1950. }
  1951. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  1952. operator VkAccelerationStructureGeometryMotionTrianglesDataNV const &() const VULKAN_HPP_NOEXCEPT
  1953. {
  1954. return *reinterpret_cast<const VkAccelerationStructureGeometryMotionTrianglesDataNV *>( this );
  1955. }
  1956. operator VkAccelerationStructureGeometryMotionTrianglesDataNV &() VULKAN_HPP_NOEXCEPT
  1957. {
  1958. return *reinterpret_cast<VkAccelerationStructureGeometryMotionTrianglesDataNV *>( this );
  1959. }
  1960. #if defined( VULKAN_HPP_USE_REFLECT )
  1961. # if 14 <= VULKAN_HPP_CPP_VERSION
  1962. auto
  1963. # else
  1964. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstKHR const &>
  1965. # endif
  1966. reflect() const VULKAN_HPP_NOEXCEPT
  1967. {
  1968. return std::tie( sType, pNext, vertexData );
  1969. }
  1970. #endif
  1971. public:
  1972. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eAccelerationStructureGeometryMotionTrianglesDataNV;
  1973. const void * pNext = {};
  1974. VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstKHR vertexData = {};
  1975. };
  1976. template <>
  1977. struct CppType<StructureType, StructureType::eAccelerationStructureGeometryMotionTrianglesDataNV>
  1978. {
  1979. using Type = AccelerationStructureGeometryMotionTrianglesDataNV;
  1980. };
  1981. struct TransformMatrixKHR
  1982. {
  1983. using NativeType = VkTransformMatrixKHR;
  1984. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  1985. VULKAN_HPP_CONSTEXPR_14 TransformMatrixKHR( std::array<std::array<float, 4>, 3> const & matrix_ = {} ) VULKAN_HPP_NOEXCEPT : matrix( matrix_ ) {}
  1986. VULKAN_HPP_CONSTEXPR_14 TransformMatrixKHR( TransformMatrixKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  1987. TransformMatrixKHR( VkTransformMatrixKHR const & rhs ) VULKAN_HPP_NOEXCEPT : TransformMatrixKHR( *reinterpret_cast<TransformMatrixKHR const *>( &rhs ) ) {}
  1988. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  1989. TransformMatrixKHR & operator=( TransformMatrixKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  1990. TransformMatrixKHR & operator=( VkTransformMatrixKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  1991. {
  1992. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::TransformMatrixKHR const *>( &rhs );
  1993. return *this;
  1994. }
  1995. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  1996. VULKAN_HPP_CONSTEXPR_14 TransformMatrixKHR & setMatrix( std::array<std::array<float, 4>, 3> matrix_ ) VULKAN_HPP_NOEXCEPT
  1997. {
  1998. matrix = matrix_;
  1999. return *this;
  2000. }
  2001. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  2002. operator VkTransformMatrixKHR const &() const VULKAN_HPP_NOEXCEPT
  2003. {
  2004. return *reinterpret_cast<const VkTransformMatrixKHR *>( this );
  2005. }
  2006. operator VkTransformMatrixKHR &() VULKAN_HPP_NOEXCEPT
  2007. {
  2008. return *reinterpret_cast<VkTransformMatrixKHR *>( this );
  2009. }
  2010. #if defined( VULKAN_HPP_USE_REFLECT )
  2011. # if 14 <= VULKAN_HPP_CPP_VERSION
  2012. auto
  2013. # else
  2014. std::tuple<VULKAN_HPP_NAMESPACE::ArrayWrapper2D<float, 3, 4> const &>
  2015. # endif
  2016. reflect() const VULKAN_HPP_NOEXCEPT
  2017. {
  2018. return std::tie( matrix );
  2019. }
  2020. #endif
  2021. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  2022. auto operator<=>( TransformMatrixKHR const & ) const = default;
  2023. #else
  2024. bool operator==( TransformMatrixKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  2025. {
  2026. # if defined( VULKAN_HPP_USE_REFLECT )
  2027. return this->reflect() == rhs.reflect();
  2028. # else
  2029. return ( matrix == rhs.matrix );
  2030. # endif
  2031. }
  2032. bool operator!=( TransformMatrixKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  2033. {
  2034. return !operator==( rhs );
  2035. }
  2036. #endif
  2037. public:
  2038. VULKAN_HPP_NAMESPACE::ArrayWrapper2D<float, 3, 4> matrix = {};
  2039. };
  2040. using TransformMatrixNV = TransformMatrixKHR;
  2041. struct AccelerationStructureInstanceKHR
  2042. {
  2043. using NativeType = VkAccelerationStructureInstanceKHR;
  2044. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  2045. VULKAN_HPP_CONSTEXPR_14 AccelerationStructureInstanceKHR( VULKAN_HPP_NAMESPACE::TransformMatrixKHR transform_ = {},
  2046. uint32_t instanceCustomIndex_ = {},
  2047. uint32_t mask_ = {},
  2048. uint32_t instanceShaderBindingTableRecordOffset_ = {},
  2049. VULKAN_HPP_NAMESPACE::GeometryInstanceFlagsKHR flags_ = {},
  2050. uint64_t accelerationStructureReference_ = {} ) VULKAN_HPP_NOEXCEPT
  2051. : transform( transform_ )
  2052. , instanceCustomIndex( instanceCustomIndex_ )
  2053. , mask( mask_ )
  2054. , instanceShaderBindingTableRecordOffset( instanceShaderBindingTableRecordOffset_ )
  2055. , flags( flags_ )
  2056. , accelerationStructureReference( accelerationStructureReference_ )
  2057. {
  2058. }
  2059. VULKAN_HPP_CONSTEXPR_14 AccelerationStructureInstanceKHR( AccelerationStructureInstanceKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  2060. AccelerationStructureInstanceKHR( VkAccelerationStructureInstanceKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  2061. : AccelerationStructureInstanceKHR( *reinterpret_cast<AccelerationStructureInstanceKHR const *>( &rhs ) )
  2062. {
  2063. }
  2064. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  2065. AccelerationStructureInstanceKHR & operator=( AccelerationStructureInstanceKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  2066. AccelerationStructureInstanceKHR & operator=( VkAccelerationStructureInstanceKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  2067. {
  2068. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::AccelerationStructureInstanceKHR const *>( &rhs );
  2069. return *this;
  2070. }
  2071. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  2072. VULKAN_HPP_CONSTEXPR_14 AccelerationStructureInstanceKHR & setTransform( VULKAN_HPP_NAMESPACE::TransformMatrixKHR const & transform_ ) VULKAN_HPP_NOEXCEPT
  2073. {
  2074. transform = transform_;
  2075. return *this;
  2076. }
  2077. VULKAN_HPP_CONSTEXPR_14 AccelerationStructureInstanceKHR & setInstanceCustomIndex( uint32_t instanceCustomIndex_ ) VULKAN_HPP_NOEXCEPT
  2078. {
  2079. instanceCustomIndex = instanceCustomIndex_;
  2080. return *this;
  2081. }
  2082. VULKAN_HPP_CONSTEXPR_14 AccelerationStructureInstanceKHR & setMask( uint32_t mask_ ) VULKAN_HPP_NOEXCEPT
  2083. {
  2084. mask = mask_;
  2085. return *this;
  2086. }
  2087. VULKAN_HPP_CONSTEXPR_14 AccelerationStructureInstanceKHR &
  2088. setInstanceShaderBindingTableRecordOffset( uint32_t instanceShaderBindingTableRecordOffset_ ) VULKAN_HPP_NOEXCEPT
  2089. {
  2090. instanceShaderBindingTableRecordOffset = instanceShaderBindingTableRecordOffset_;
  2091. return *this;
  2092. }
  2093. AccelerationStructureInstanceKHR & setFlags( VULKAN_HPP_NAMESPACE::GeometryInstanceFlagsKHR flags_ ) VULKAN_HPP_NOEXCEPT
  2094. {
  2095. flags = *reinterpret_cast<VkGeometryInstanceFlagsKHR *>( &flags_ );
  2096. return *this;
  2097. }
  2098. VULKAN_HPP_CONSTEXPR_14 AccelerationStructureInstanceKHR & setAccelerationStructureReference( uint64_t accelerationStructureReference_ ) VULKAN_HPP_NOEXCEPT
  2099. {
  2100. accelerationStructureReference = accelerationStructureReference_;
  2101. return *this;
  2102. }
  2103. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  2104. operator VkAccelerationStructureInstanceKHR const &() const VULKAN_HPP_NOEXCEPT
  2105. {
  2106. return *reinterpret_cast<const VkAccelerationStructureInstanceKHR *>( this );
  2107. }
  2108. operator VkAccelerationStructureInstanceKHR &() VULKAN_HPP_NOEXCEPT
  2109. {
  2110. return *reinterpret_cast<VkAccelerationStructureInstanceKHR *>( this );
  2111. }
  2112. #if defined( VULKAN_HPP_USE_REFLECT )
  2113. # if 14 <= VULKAN_HPP_CPP_VERSION
  2114. auto
  2115. # else
  2116. std::tuple<VULKAN_HPP_NAMESPACE::TransformMatrixKHR const &,
  2117. uint32_t const &,
  2118. uint32_t const &,
  2119. uint32_t const &,
  2120. VkGeometryInstanceFlagsKHR const &,
  2121. uint64_t const &>
  2122. # endif
  2123. reflect() const VULKAN_HPP_NOEXCEPT
  2124. {
  2125. return std::tie( transform, instanceCustomIndex, mask, instanceShaderBindingTableRecordOffset, flags, accelerationStructureReference );
  2126. }
  2127. #endif
  2128. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  2129. auto operator<=>( AccelerationStructureInstanceKHR const & ) const = default;
  2130. #else
  2131. bool operator==( AccelerationStructureInstanceKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  2132. {
  2133. # if defined( VULKAN_HPP_USE_REFLECT )
  2134. return this->reflect() == rhs.reflect();
  2135. # else
  2136. return ( transform == rhs.transform ) && ( instanceCustomIndex == rhs.instanceCustomIndex ) && ( mask == rhs.mask ) &&
  2137. ( instanceShaderBindingTableRecordOffset == rhs.instanceShaderBindingTableRecordOffset ) && ( flags == rhs.flags ) &&
  2138. ( accelerationStructureReference == rhs.accelerationStructureReference );
  2139. # endif
  2140. }
  2141. bool operator!=( AccelerationStructureInstanceKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  2142. {
  2143. return !operator==( rhs );
  2144. }
  2145. #endif
  2146. public:
  2147. VULKAN_HPP_NAMESPACE::TransformMatrixKHR transform = {};
  2148. uint32_t instanceCustomIndex : 24;
  2149. uint32_t mask : 8;
  2150. uint32_t instanceShaderBindingTableRecordOffset : 24;
  2151. VkGeometryInstanceFlagsKHR flags : 8;
  2152. uint64_t accelerationStructureReference = {};
  2153. };
  2154. using AccelerationStructureInstanceNV = AccelerationStructureInstanceKHR;
  2155. struct AccelerationStructureMatrixMotionInstanceNV
  2156. {
  2157. using NativeType = VkAccelerationStructureMatrixMotionInstanceNV;
  2158. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  2159. VULKAN_HPP_CONSTEXPR_14 AccelerationStructureMatrixMotionInstanceNV( VULKAN_HPP_NAMESPACE::TransformMatrixKHR transformT0_ = {},
  2160. VULKAN_HPP_NAMESPACE::TransformMatrixKHR transformT1_ = {},
  2161. uint32_t instanceCustomIndex_ = {},
  2162. uint32_t mask_ = {},
  2163. uint32_t instanceShaderBindingTableRecordOffset_ = {},
  2164. VULKAN_HPP_NAMESPACE::GeometryInstanceFlagsKHR flags_ = {},
  2165. uint64_t accelerationStructureReference_ = {} ) VULKAN_HPP_NOEXCEPT
  2166. : transformT0( transformT0_ )
  2167. , transformT1( transformT1_ )
  2168. , instanceCustomIndex( instanceCustomIndex_ )
  2169. , mask( mask_ )
  2170. , instanceShaderBindingTableRecordOffset( instanceShaderBindingTableRecordOffset_ )
  2171. , flags( flags_ )
  2172. , accelerationStructureReference( accelerationStructureReference_ )
  2173. {
  2174. }
  2175. VULKAN_HPP_CONSTEXPR_14
  2176. AccelerationStructureMatrixMotionInstanceNV( AccelerationStructureMatrixMotionInstanceNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  2177. AccelerationStructureMatrixMotionInstanceNV( VkAccelerationStructureMatrixMotionInstanceNV const & rhs ) VULKAN_HPP_NOEXCEPT
  2178. : AccelerationStructureMatrixMotionInstanceNV( *reinterpret_cast<AccelerationStructureMatrixMotionInstanceNV const *>( &rhs ) )
  2179. {
  2180. }
  2181. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  2182. AccelerationStructureMatrixMotionInstanceNV & operator=( AccelerationStructureMatrixMotionInstanceNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  2183. AccelerationStructureMatrixMotionInstanceNV & operator=( VkAccelerationStructureMatrixMotionInstanceNV const & rhs ) VULKAN_HPP_NOEXCEPT
  2184. {
  2185. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::AccelerationStructureMatrixMotionInstanceNV const *>( &rhs );
  2186. return *this;
  2187. }
  2188. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  2189. VULKAN_HPP_CONSTEXPR_14 AccelerationStructureMatrixMotionInstanceNV &
  2190. setTransformT0( VULKAN_HPP_NAMESPACE::TransformMatrixKHR const & transformT0_ ) VULKAN_HPP_NOEXCEPT
  2191. {
  2192. transformT0 = transformT0_;
  2193. return *this;
  2194. }
  2195. VULKAN_HPP_CONSTEXPR_14 AccelerationStructureMatrixMotionInstanceNV &
  2196. setTransformT1( VULKAN_HPP_NAMESPACE::TransformMatrixKHR const & transformT1_ ) VULKAN_HPP_NOEXCEPT
  2197. {
  2198. transformT1 = transformT1_;
  2199. return *this;
  2200. }
  2201. VULKAN_HPP_CONSTEXPR_14 AccelerationStructureMatrixMotionInstanceNV & setInstanceCustomIndex( uint32_t instanceCustomIndex_ ) VULKAN_HPP_NOEXCEPT
  2202. {
  2203. instanceCustomIndex = instanceCustomIndex_;
  2204. return *this;
  2205. }
  2206. VULKAN_HPP_CONSTEXPR_14 AccelerationStructureMatrixMotionInstanceNV & setMask( uint32_t mask_ ) VULKAN_HPP_NOEXCEPT
  2207. {
  2208. mask = mask_;
  2209. return *this;
  2210. }
  2211. VULKAN_HPP_CONSTEXPR_14 AccelerationStructureMatrixMotionInstanceNV &
  2212. setInstanceShaderBindingTableRecordOffset( uint32_t instanceShaderBindingTableRecordOffset_ ) VULKAN_HPP_NOEXCEPT
  2213. {
  2214. instanceShaderBindingTableRecordOffset = instanceShaderBindingTableRecordOffset_;
  2215. return *this;
  2216. }
  2217. AccelerationStructureMatrixMotionInstanceNV & setFlags( VULKAN_HPP_NAMESPACE::GeometryInstanceFlagsKHR flags_ ) VULKAN_HPP_NOEXCEPT
  2218. {
  2219. flags = *reinterpret_cast<VkGeometryInstanceFlagsKHR *>( &flags_ );
  2220. return *this;
  2221. }
  2222. VULKAN_HPP_CONSTEXPR_14 AccelerationStructureMatrixMotionInstanceNV &
  2223. setAccelerationStructureReference( uint64_t accelerationStructureReference_ ) VULKAN_HPP_NOEXCEPT
  2224. {
  2225. accelerationStructureReference = accelerationStructureReference_;
  2226. return *this;
  2227. }
  2228. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  2229. operator VkAccelerationStructureMatrixMotionInstanceNV const &() const VULKAN_HPP_NOEXCEPT
  2230. {
  2231. return *reinterpret_cast<const VkAccelerationStructureMatrixMotionInstanceNV *>( this );
  2232. }
  2233. operator VkAccelerationStructureMatrixMotionInstanceNV &() VULKAN_HPP_NOEXCEPT
  2234. {
  2235. return *reinterpret_cast<VkAccelerationStructureMatrixMotionInstanceNV *>( this );
  2236. }
  2237. #if defined( VULKAN_HPP_USE_REFLECT )
  2238. # if 14 <= VULKAN_HPP_CPP_VERSION
  2239. auto
  2240. # else
  2241. std::tuple<VULKAN_HPP_NAMESPACE::TransformMatrixKHR const &,
  2242. VULKAN_HPP_NAMESPACE::TransformMatrixKHR const &,
  2243. uint32_t const &,
  2244. uint32_t const &,
  2245. uint32_t const &,
  2246. VkGeometryInstanceFlagsKHR const &,
  2247. uint64_t const &>
  2248. # endif
  2249. reflect() const VULKAN_HPP_NOEXCEPT
  2250. {
  2251. return std::tie( transformT0, transformT1, instanceCustomIndex, mask, instanceShaderBindingTableRecordOffset, flags, accelerationStructureReference );
  2252. }
  2253. #endif
  2254. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  2255. auto operator<=>( AccelerationStructureMatrixMotionInstanceNV const & ) const = default;
  2256. #else
  2257. bool operator==( AccelerationStructureMatrixMotionInstanceNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  2258. {
  2259. # if defined( VULKAN_HPP_USE_REFLECT )
  2260. return this->reflect() == rhs.reflect();
  2261. # else
  2262. return ( transformT0 == rhs.transformT0 ) && ( transformT1 == rhs.transformT1 ) && ( instanceCustomIndex == rhs.instanceCustomIndex ) &&
  2263. ( mask == rhs.mask ) && ( instanceShaderBindingTableRecordOffset == rhs.instanceShaderBindingTableRecordOffset ) && ( flags == rhs.flags ) &&
  2264. ( accelerationStructureReference == rhs.accelerationStructureReference );
  2265. # endif
  2266. }
  2267. bool operator!=( AccelerationStructureMatrixMotionInstanceNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  2268. {
  2269. return !operator==( rhs );
  2270. }
  2271. #endif
  2272. public:
  2273. VULKAN_HPP_NAMESPACE::TransformMatrixKHR transformT0 = {};
  2274. VULKAN_HPP_NAMESPACE::TransformMatrixKHR transformT1 = {};
  2275. uint32_t instanceCustomIndex : 24;
  2276. uint32_t mask : 8;
  2277. uint32_t instanceShaderBindingTableRecordOffset : 24;
  2278. VkGeometryInstanceFlagsKHR flags : 8;
  2279. uint64_t accelerationStructureReference = {};
  2280. };
  2281. struct AccelerationStructureMemoryRequirementsInfoNV
  2282. {
  2283. using NativeType = VkAccelerationStructureMemoryRequirementsInfoNV;
  2284. static const bool allowDuplicate = false;
  2285. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eAccelerationStructureMemoryRequirementsInfoNV;
  2286. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  2287. VULKAN_HPP_CONSTEXPR AccelerationStructureMemoryRequirementsInfoNV(
  2288. VULKAN_HPP_NAMESPACE::AccelerationStructureMemoryRequirementsTypeNV type_ = VULKAN_HPP_NAMESPACE::AccelerationStructureMemoryRequirementsTypeNV::eObject,
  2289. VULKAN_HPP_NAMESPACE::AccelerationStructureNV accelerationStructure_ = {},
  2290. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  2291. : pNext( pNext_ )
  2292. , type( type_ )
  2293. , accelerationStructure( accelerationStructure_ )
  2294. {
  2295. }
  2296. VULKAN_HPP_CONSTEXPR
  2297. AccelerationStructureMemoryRequirementsInfoNV( AccelerationStructureMemoryRequirementsInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  2298. AccelerationStructureMemoryRequirementsInfoNV( VkAccelerationStructureMemoryRequirementsInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
  2299. : AccelerationStructureMemoryRequirementsInfoNV( *reinterpret_cast<AccelerationStructureMemoryRequirementsInfoNV const *>( &rhs ) )
  2300. {
  2301. }
  2302. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  2303. AccelerationStructureMemoryRequirementsInfoNV & operator=( AccelerationStructureMemoryRequirementsInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  2304. AccelerationStructureMemoryRequirementsInfoNV & operator=( VkAccelerationStructureMemoryRequirementsInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
  2305. {
  2306. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::AccelerationStructureMemoryRequirementsInfoNV const *>( &rhs );
  2307. return *this;
  2308. }
  2309. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  2310. VULKAN_HPP_CONSTEXPR_14 AccelerationStructureMemoryRequirementsInfoNV & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  2311. {
  2312. pNext = pNext_;
  2313. return *this;
  2314. }
  2315. VULKAN_HPP_CONSTEXPR_14 AccelerationStructureMemoryRequirementsInfoNV &
  2316. setType( VULKAN_HPP_NAMESPACE::AccelerationStructureMemoryRequirementsTypeNV type_ ) VULKAN_HPP_NOEXCEPT
  2317. {
  2318. type = type_;
  2319. return *this;
  2320. }
  2321. VULKAN_HPP_CONSTEXPR_14 AccelerationStructureMemoryRequirementsInfoNV &
  2322. setAccelerationStructure( VULKAN_HPP_NAMESPACE::AccelerationStructureNV accelerationStructure_ ) VULKAN_HPP_NOEXCEPT
  2323. {
  2324. accelerationStructure = accelerationStructure_;
  2325. return *this;
  2326. }
  2327. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  2328. operator VkAccelerationStructureMemoryRequirementsInfoNV const &() const VULKAN_HPP_NOEXCEPT
  2329. {
  2330. return *reinterpret_cast<const VkAccelerationStructureMemoryRequirementsInfoNV *>( this );
  2331. }
  2332. operator VkAccelerationStructureMemoryRequirementsInfoNV &() VULKAN_HPP_NOEXCEPT
  2333. {
  2334. return *reinterpret_cast<VkAccelerationStructureMemoryRequirementsInfoNV *>( this );
  2335. }
  2336. #if defined( VULKAN_HPP_USE_REFLECT )
  2337. # if 14 <= VULKAN_HPP_CPP_VERSION
  2338. auto
  2339. # else
  2340. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  2341. const void * const &,
  2342. VULKAN_HPP_NAMESPACE::AccelerationStructureMemoryRequirementsTypeNV const &,
  2343. VULKAN_HPP_NAMESPACE::AccelerationStructureNV const &>
  2344. # endif
  2345. reflect() const VULKAN_HPP_NOEXCEPT
  2346. {
  2347. return std::tie( sType, pNext, type, accelerationStructure );
  2348. }
  2349. #endif
  2350. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  2351. auto operator<=>( AccelerationStructureMemoryRequirementsInfoNV const & ) const = default;
  2352. #else
  2353. bool operator==( AccelerationStructureMemoryRequirementsInfoNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  2354. {
  2355. # if defined( VULKAN_HPP_USE_REFLECT )
  2356. return this->reflect() == rhs.reflect();
  2357. # else
  2358. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( type == rhs.type ) && ( accelerationStructure == rhs.accelerationStructure );
  2359. # endif
  2360. }
  2361. bool operator!=( AccelerationStructureMemoryRequirementsInfoNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  2362. {
  2363. return !operator==( rhs );
  2364. }
  2365. #endif
  2366. public:
  2367. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eAccelerationStructureMemoryRequirementsInfoNV;
  2368. const void * pNext = {};
  2369. VULKAN_HPP_NAMESPACE::AccelerationStructureMemoryRequirementsTypeNV type = VULKAN_HPP_NAMESPACE::AccelerationStructureMemoryRequirementsTypeNV::eObject;
  2370. VULKAN_HPP_NAMESPACE::AccelerationStructureNV accelerationStructure = {};
  2371. };
  2372. template <>
  2373. struct CppType<StructureType, StructureType::eAccelerationStructureMemoryRequirementsInfoNV>
  2374. {
  2375. using Type = AccelerationStructureMemoryRequirementsInfoNV;
  2376. };
  2377. struct AccelerationStructureMotionInfoNV
  2378. {
  2379. using NativeType = VkAccelerationStructureMotionInfoNV;
  2380. static const bool allowDuplicate = false;
  2381. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eAccelerationStructureMotionInfoNV;
  2382. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  2383. VULKAN_HPP_CONSTEXPR AccelerationStructureMotionInfoNV( uint32_t maxInstances_ = {},
  2384. VULKAN_HPP_NAMESPACE::AccelerationStructureMotionInfoFlagsNV flags_ = {},
  2385. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  2386. : pNext( pNext_ )
  2387. , maxInstances( maxInstances_ )
  2388. , flags( flags_ )
  2389. {
  2390. }
  2391. VULKAN_HPP_CONSTEXPR AccelerationStructureMotionInfoNV( AccelerationStructureMotionInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  2392. AccelerationStructureMotionInfoNV( VkAccelerationStructureMotionInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
  2393. : AccelerationStructureMotionInfoNV( *reinterpret_cast<AccelerationStructureMotionInfoNV const *>( &rhs ) )
  2394. {
  2395. }
  2396. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  2397. AccelerationStructureMotionInfoNV & operator=( AccelerationStructureMotionInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  2398. AccelerationStructureMotionInfoNV & operator=( VkAccelerationStructureMotionInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
  2399. {
  2400. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::AccelerationStructureMotionInfoNV const *>( &rhs );
  2401. return *this;
  2402. }
  2403. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  2404. VULKAN_HPP_CONSTEXPR_14 AccelerationStructureMotionInfoNV & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  2405. {
  2406. pNext = pNext_;
  2407. return *this;
  2408. }
  2409. VULKAN_HPP_CONSTEXPR_14 AccelerationStructureMotionInfoNV & setMaxInstances( uint32_t maxInstances_ ) VULKAN_HPP_NOEXCEPT
  2410. {
  2411. maxInstances = maxInstances_;
  2412. return *this;
  2413. }
  2414. VULKAN_HPP_CONSTEXPR_14 AccelerationStructureMotionInfoNV &
  2415. setFlags( VULKAN_HPP_NAMESPACE::AccelerationStructureMotionInfoFlagsNV flags_ ) VULKAN_HPP_NOEXCEPT
  2416. {
  2417. flags = flags_;
  2418. return *this;
  2419. }
  2420. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  2421. operator VkAccelerationStructureMotionInfoNV const &() const VULKAN_HPP_NOEXCEPT
  2422. {
  2423. return *reinterpret_cast<const VkAccelerationStructureMotionInfoNV *>( this );
  2424. }
  2425. operator VkAccelerationStructureMotionInfoNV &() VULKAN_HPP_NOEXCEPT
  2426. {
  2427. return *reinterpret_cast<VkAccelerationStructureMotionInfoNV *>( this );
  2428. }
  2429. #if defined( VULKAN_HPP_USE_REFLECT )
  2430. # if 14 <= VULKAN_HPP_CPP_VERSION
  2431. auto
  2432. # else
  2433. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  2434. const void * const &,
  2435. uint32_t const &,
  2436. VULKAN_HPP_NAMESPACE::AccelerationStructureMotionInfoFlagsNV const &>
  2437. # endif
  2438. reflect() const VULKAN_HPP_NOEXCEPT
  2439. {
  2440. return std::tie( sType, pNext, maxInstances, flags );
  2441. }
  2442. #endif
  2443. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  2444. auto operator<=>( AccelerationStructureMotionInfoNV const & ) const = default;
  2445. #else
  2446. bool operator==( AccelerationStructureMotionInfoNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  2447. {
  2448. # if defined( VULKAN_HPP_USE_REFLECT )
  2449. return this->reflect() == rhs.reflect();
  2450. # else
  2451. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( maxInstances == rhs.maxInstances ) && ( flags == rhs.flags );
  2452. # endif
  2453. }
  2454. bool operator!=( AccelerationStructureMotionInfoNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  2455. {
  2456. return !operator==( rhs );
  2457. }
  2458. #endif
  2459. public:
  2460. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eAccelerationStructureMotionInfoNV;
  2461. const void * pNext = {};
  2462. uint32_t maxInstances = {};
  2463. VULKAN_HPP_NAMESPACE::AccelerationStructureMotionInfoFlagsNV flags = {};
  2464. };
  2465. template <>
  2466. struct CppType<StructureType, StructureType::eAccelerationStructureMotionInfoNV>
  2467. {
  2468. using Type = AccelerationStructureMotionInfoNV;
  2469. };
  2470. struct SRTDataNV
  2471. {
  2472. using NativeType = VkSRTDataNV;
  2473. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  2474. VULKAN_HPP_CONSTEXPR SRTDataNV( float sx_ = {},
  2475. float a_ = {},
  2476. float b_ = {},
  2477. float pvx_ = {},
  2478. float sy_ = {},
  2479. float c_ = {},
  2480. float pvy_ = {},
  2481. float sz_ = {},
  2482. float pvz_ = {},
  2483. float qx_ = {},
  2484. float qy_ = {},
  2485. float qz_ = {},
  2486. float qw_ = {},
  2487. float tx_ = {},
  2488. float ty_ = {},
  2489. float tz_ = {} ) VULKAN_HPP_NOEXCEPT
  2490. : sx( sx_ )
  2491. , a( a_ )
  2492. , b( b_ )
  2493. , pvx( pvx_ )
  2494. , sy( sy_ )
  2495. , c( c_ )
  2496. , pvy( pvy_ )
  2497. , sz( sz_ )
  2498. , pvz( pvz_ )
  2499. , qx( qx_ )
  2500. , qy( qy_ )
  2501. , qz( qz_ )
  2502. , qw( qw_ )
  2503. , tx( tx_ )
  2504. , ty( ty_ )
  2505. , tz( tz_ )
  2506. {
  2507. }
  2508. VULKAN_HPP_CONSTEXPR SRTDataNV( SRTDataNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  2509. SRTDataNV( VkSRTDataNV const & rhs ) VULKAN_HPP_NOEXCEPT : SRTDataNV( *reinterpret_cast<SRTDataNV const *>( &rhs ) ) {}
  2510. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  2511. SRTDataNV & operator=( SRTDataNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  2512. SRTDataNV & operator=( VkSRTDataNV const & rhs ) VULKAN_HPP_NOEXCEPT
  2513. {
  2514. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SRTDataNV const *>( &rhs );
  2515. return *this;
  2516. }
  2517. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  2518. VULKAN_HPP_CONSTEXPR_14 SRTDataNV & setSx( float sx_ ) VULKAN_HPP_NOEXCEPT
  2519. {
  2520. sx = sx_;
  2521. return *this;
  2522. }
  2523. VULKAN_HPP_CONSTEXPR_14 SRTDataNV & setA( float a_ ) VULKAN_HPP_NOEXCEPT
  2524. {
  2525. a = a_;
  2526. return *this;
  2527. }
  2528. VULKAN_HPP_CONSTEXPR_14 SRTDataNV & setB( float b_ ) VULKAN_HPP_NOEXCEPT
  2529. {
  2530. b = b_;
  2531. return *this;
  2532. }
  2533. VULKAN_HPP_CONSTEXPR_14 SRTDataNV & setPvx( float pvx_ ) VULKAN_HPP_NOEXCEPT
  2534. {
  2535. pvx = pvx_;
  2536. return *this;
  2537. }
  2538. VULKAN_HPP_CONSTEXPR_14 SRTDataNV & setSy( float sy_ ) VULKAN_HPP_NOEXCEPT
  2539. {
  2540. sy = sy_;
  2541. return *this;
  2542. }
  2543. VULKAN_HPP_CONSTEXPR_14 SRTDataNV & setC( float c_ ) VULKAN_HPP_NOEXCEPT
  2544. {
  2545. c = c_;
  2546. return *this;
  2547. }
  2548. VULKAN_HPP_CONSTEXPR_14 SRTDataNV & setPvy( float pvy_ ) VULKAN_HPP_NOEXCEPT
  2549. {
  2550. pvy = pvy_;
  2551. return *this;
  2552. }
  2553. VULKAN_HPP_CONSTEXPR_14 SRTDataNV & setSz( float sz_ ) VULKAN_HPP_NOEXCEPT
  2554. {
  2555. sz = sz_;
  2556. return *this;
  2557. }
  2558. VULKAN_HPP_CONSTEXPR_14 SRTDataNV & setPvz( float pvz_ ) VULKAN_HPP_NOEXCEPT
  2559. {
  2560. pvz = pvz_;
  2561. return *this;
  2562. }
  2563. VULKAN_HPP_CONSTEXPR_14 SRTDataNV & setQx( float qx_ ) VULKAN_HPP_NOEXCEPT
  2564. {
  2565. qx = qx_;
  2566. return *this;
  2567. }
  2568. VULKAN_HPP_CONSTEXPR_14 SRTDataNV & setQy( float qy_ ) VULKAN_HPP_NOEXCEPT
  2569. {
  2570. qy = qy_;
  2571. return *this;
  2572. }
  2573. VULKAN_HPP_CONSTEXPR_14 SRTDataNV & setQz( float qz_ ) VULKAN_HPP_NOEXCEPT
  2574. {
  2575. qz = qz_;
  2576. return *this;
  2577. }
  2578. VULKAN_HPP_CONSTEXPR_14 SRTDataNV & setQw( float qw_ ) VULKAN_HPP_NOEXCEPT
  2579. {
  2580. qw = qw_;
  2581. return *this;
  2582. }
  2583. VULKAN_HPP_CONSTEXPR_14 SRTDataNV & setTx( float tx_ ) VULKAN_HPP_NOEXCEPT
  2584. {
  2585. tx = tx_;
  2586. return *this;
  2587. }
  2588. VULKAN_HPP_CONSTEXPR_14 SRTDataNV & setTy( float ty_ ) VULKAN_HPP_NOEXCEPT
  2589. {
  2590. ty = ty_;
  2591. return *this;
  2592. }
  2593. VULKAN_HPP_CONSTEXPR_14 SRTDataNV & setTz( float tz_ ) VULKAN_HPP_NOEXCEPT
  2594. {
  2595. tz = tz_;
  2596. return *this;
  2597. }
  2598. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  2599. operator VkSRTDataNV const &() const VULKAN_HPP_NOEXCEPT
  2600. {
  2601. return *reinterpret_cast<const VkSRTDataNV *>( this );
  2602. }
  2603. operator VkSRTDataNV &() VULKAN_HPP_NOEXCEPT
  2604. {
  2605. return *reinterpret_cast<VkSRTDataNV *>( this );
  2606. }
  2607. #if defined( VULKAN_HPP_USE_REFLECT )
  2608. # if 14 <= VULKAN_HPP_CPP_VERSION
  2609. auto
  2610. # else
  2611. std::tuple<float const &,
  2612. float const &,
  2613. float const &,
  2614. float const &,
  2615. float const &,
  2616. float const &,
  2617. float const &,
  2618. float const &,
  2619. float const &,
  2620. float const &,
  2621. float const &,
  2622. float const &,
  2623. float const &,
  2624. float const &,
  2625. float const &,
  2626. float const &>
  2627. # endif
  2628. reflect() const VULKAN_HPP_NOEXCEPT
  2629. {
  2630. return std::tie( sx, a, b, pvx, sy, c, pvy, sz, pvz, qx, qy, qz, qw, tx, ty, tz );
  2631. }
  2632. #endif
  2633. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  2634. auto operator<=>( SRTDataNV const & ) const = default;
  2635. #else
  2636. bool operator==( SRTDataNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  2637. {
  2638. # if defined( VULKAN_HPP_USE_REFLECT )
  2639. return this->reflect() == rhs.reflect();
  2640. # else
  2641. return ( sx == rhs.sx ) && ( a == rhs.a ) && ( b == rhs.b ) && ( pvx == rhs.pvx ) && ( sy == rhs.sy ) && ( c == rhs.c ) && ( pvy == rhs.pvy ) &&
  2642. ( sz == rhs.sz ) && ( pvz == rhs.pvz ) && ( qx == rhs.qx ) && ( qy == rhs.qy ) && ( qz == rhs.qz ) && ( qw == rhs.qw ) && ( tx == rhs.tx ) &&
  2643. ( ty == rhs.ty ) && ( tz == rhs.tz );
  2644. # endif
  2645. }
  2646. bool operator!=( SRTDataNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  2647. {
  2648. return !operator==( rhs );
  2649. }
  2650. #endif
  2651. public:
  2652. float sx = {};
  2653. float a = {};
  2654. float b = {};
  2655. float pvx = {};
  2656. float sy = {};
  2657. float c = {};
  2658. float pvy = {};
  2659. float sz = {};
  2660. float pvz = {};
  2661. float qx = {};
  2662. float qy = {};
  2663. float qz = {};
  2664. float qw = {};
  2665. float tx = {};
  2666. float ty = {};
  2667. float tz = {};
  2668. };
  2669. struct AccelerationStructureSRTMotionInstanceNV
  2670. {
  2671. using NativeType = VkAccelerationStructureSRTMotionInstanceNV;
  2672. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  2673. VULKAN_HPP_CONSTEXPR AccelerationStructureSRTMotionInstanceNV( VULKAN_HPP_NAMESPACE::SRTDataNV transformT0_ = {},
  2674. VULKAN_HPP_NAMESPACE::SRTDataNV transformT1_ = {},
  2675. uint32_t instanceCustomIndex_ = {},
  2676. uint32_t mask_ = {},
  2677. uint32_t instanceShaderBindingTableRecordOffset_ = {},
  2678. VULKAN_HPP_NAMESPACE::GeometryInstanceFlagsKHR flags_ = {},
  2679. uint64_t accelerationStructureReference_ = {} ) VULKAN_HPP_NOEXCEPT
  2680. : transformT0( transformT0_ )
  2681. , transformT1( transformT1_ )
  2682. , instanceCustomIndex( instanceCustomIndex_ )
  2683. , mask( mask_ )
  2684. , instanceShaderBindingTableRecordOffset( instanceShaderBindingTableRecordOffset_ )
  2685. , flags( flags_ )
  2686. , accelerationStructureReference( accelerationStructureReference_ )
  2687. {
  2688. }
  2689. VULKAN_HPP_CONSTEXPR AccelerationStructureSRTMotionInstanceNV( AccelerationStructureSRTMotionInstanceNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  2690. AccelerationStructureSRTMotionInstanceNV( VkAccelerationStructureSRTMotionInstanceNV const & rhs ) VULKAN_HPP_NOEXCEPT
  2691. : AccelerationStructureSRTMotionInstanceNV( *reinterpret_cast<AccelerationStructureSRTMotionInstanceNV const *>( &rhs ) )
  2692. {
  2693. }
  2694. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  2695. AccelerationStructureSRTMotionInstanceNV & operator=( AccelerationStructureSRTMotionInstanceNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  2696. AccelerationStructureSRTMotionInstanceNV & operator=( VkAccelerationStructureSRTMotionInstanceNV const & rhs ) VULKAN_HPP_NOEXCEPT
  2697. {
  2698. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::AccelerationStructureSRTMotionInstanceNV const *>( &rhs );
  2699. return *this;
  2700. }
  2701. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  2702. VULKAN_HPP_CONSTEXPR_14 AccelerationStructureSRTMotionInstanceNV &
  2703. setTransformT0( VULKAN_HPP_NAMESPACE::SRTDataNV const & transformT0_ ) VULKAN_HPP_NOEXCEPT
  2704. {
  2705. transformT0 = transformT0_;
  2706. return *this;
  2707. }
  2708. VULKAN_HPP_CONSTEXPR_14 AccelerationStructureSRTMotionInstanceNV &
  2709. setTransformT1( VULKAN_HPP_NAMESPACE::SRTDataNV const & transformT1_ ) VULKAN_HPP_NOEXCEPT
  2710. {
  2711. transformT1 = transformT1_;
  2712. return *this;
  2713. }
  2714. VULKAN_HPP_CONSTEXPR_14 AccelerationStructureSRTMotionInstanceNV & setInstanceCustomIndex( uint32_t instanceCustomIndex_ ) VULKAN_HPP_NOEXCEPT
  2715. {
  2716. instanceCustomIndex = instanceCustomIndex_;
  2717. return *this;
  2718. }
  2719. VULKAN_HPP_CONSTEXPR_14 AccelerationStructureSRTMotionInstanceNV & setMask( uint32_t mask_ ) VULKAN_HPP_NOEXCEPT
  2720. {
  2721. mask = mask_;
  2722. return *this;
  2723. }
  2724. VULKAN_HPP_CONSTEXPR_14 AccelerationStructureSRTMotionInstanceNV &
  2725. setInstanceShaderBindingTableRecordOffset( uint32_t instanceShaderBindingTableRecordOffset_ ) VULKAN_HPP_NOEXCEPT
  2726. {
  2727. instanceShaderBindingTableRecordOffset = instanceShaderBindingTableRecordOffset_;
  2728. return *this;
  2729. }
  2730. AccelerationStructureSRTMotionInstanceNV & setFlags( VULKAN_HPP_NAMESPACE::GeometryInstanceFlagsKHR flags_ ) VULKAN_HPP_NOEXCEPT
  2731. {
  2732. flags = *reinterpret_cast<VkGeometryInstanceFlagsKHR *>( &flags_ );
  2733. return *this;
  2734. }
  2735. VULKAN_HPP_CONSTEXPR_14 AccelerationStructureSRTMotionInstanceNV &
  2736. setAccelerationStructureReference( uint64_t accelerationStructureReference_ ) VULKAN_HPP_NOEXCEPT
  2737. {
  2738. accelerationStructureReference = accelerationStructureReference_;
  2739. return *this;
  2740. }
  2741. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  2742. operator VkAccelerationStructureSRTMotionInstanceNV const &() const VULKAN_HPP_NOEXCEPT
  2743. {
  2744. return *reinterpret_cast<const VkAccelerationStructureSRTMotionInstanceNV *>( this );
  2745. }
  2746. operator VkAccelerationStructureSRTMotionInstanceNV &() VULKAN_HPP_NOEXCEPT
  2747. {
  2748. return *reinterpret_cast<VkAccelerationStructureSRTMotionInstanceNV *>( this );
  2749. }
  2750. #if defined( VULKAN_HPP_USE_REFLECT )
  2751. # if 14 <= VULKAN_HPP_CPP_VERSION
  2752. auto
  2753. # else
  2754. std::tuple<VULKAN_HPP_NAMESPACE::SRTDataNV const &,
  2755. VULKAN_HPP_NAMESPACE::SRTDataNV const &,
  2756. uint32_t const &,
  2757. uint32_t const &,
  2758. uint32_t const &,
  2759. VkGeometryInstanceFlagsKHR const &,
  2760. uint64_t const &>
  2761. # endif
  2762. reflect() const VULKAN_HPP_NOEXCEPT
  2763. {
  2764. return std::tie( transformT0, transformT1, instanceCustomIndex, mask, instanceShaderBindingTableRecordOffset, flags, accelerationStructureReference );
  2765. }
  2766. #endif
  2767. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  2768. auto operator<=>( AccelerationStructureSRTMotionInstanceNV const & ) const = default;
  2769. #else
  2770. bool operator==( AccelerationStructureSRTMotionInstanceNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  2771. {
  2772. # if defined( VULKAN_HPP_USE_REFLECT )
  2773. return this->reflect() == rhs.reflect();
  2774. # else
  2775. return ( transformT0 == rhs.transformT0 ) && ( transformT1 == rhs.transformT1 ) && ( instanceCustomIndex == rhs.instanceCustomIndex ) &&
  2776. ( mask == rhs.mask ) && ( instanceShaderBindingTableRecordOffset == rhs.instanceShaderBindingTableRecordOffset ) && ( flags == rhs.flags ) &&
  2777. ( accelerationStructureReference == rhs.accelerationStructureReference );
  2778. # endif
  2779. }
  2780. bool operator!=( AccelerationStructureSRTMotionInstanceNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  2781. {
  2782. return !operator==( rhs );
  2783. }
  2784. #endif
  2785. public:
  2786. VULKAN_HPP_NAMESPACE::SRTDataNV transformT0 = {};
  2787. VULKAN_HPP_NAMESPACE::SRTDataNV transformT1 = {};
  2788. uint32_t instanceCustomIndex : 24;
  2789. uint32_t mask : 8;
  2790. uint32_t instanceShaderBindingTableRecordOffset : 24;
  2791. VkGeometryInstanceFlagsKHR flags : 8;
  2792. uint64_t accelerationStructureReference = {};
  2793. };
  2794. union AccelerationStructureMotionInstanceDataNV
  2795. {
  2796. using NativeType = VkAccelerationStructureMotionInstanceDataNV;
  2797. #if !defined( VULKAN_HPP_NO_UNION_CONSTRUCTORS )
  2798. VULKAN_HPP_CONSTEXPR_14 AccelerationStructureMotionInstanceDataNV( VULKAN_HPP_NAMESPACE::AccelerationStructureInstanceKHR staticInstance_ = {} )
  2799. : staticInstance( staticInstance_ )
  2800. {
  2801. }
  2802. VULKAN_HPP_CONSTEXPR_14 AccelerationStructureMotionInstanceDataNV( VULKAN_HPP_NAMESPACE::AccelerationStructureMatrixMotionInstanceNV matrixMotionInstance_ )
  2803. : matrixMotionInstance( matrixMotionInstance_ )
  2804. {
  2805. }
  2806. VULKAN_HPP_CONSTEXPR_14 AccelerationStructureMotionInstanceDataNV( VULKAN_HPP_NAMESPACE::AccelerationStructureSRTMotionInstanceNV srtMotionInstance_ )
  2807. : srtMotionInstance( srtMotionInstance_ )
  2808. {
  2809. }
  2810. #endif /*VULKAN_HPP_NO_UNION_CONSTRUCTORS*/
  2811. #if !defined( VULKAN_HPP_NO_UNION_SETTERS )
  2812. VULKAN_HPP_CONSTEXPR_14 AccelerationStructureMotionInstanceDataNV &
  2813. setStaticInstance( VULKAN_HPP_NAMESPACE::AccelerationStructureInstanceKHR const & staticInstance_ ) VULKAN_HPP_NOEXCEPT
  2814. {
  2815. staticInstance = staticInstance_;
  2816. return *this;
  2817. }
  2818. VULKAN_HPP_CONSTEXPR_14 AccelerationStructureMotionInstanceDataNV &
  2819. setMatrixMotionInstance( VULKAN_HPP_NAMESPACE::AccelerationStructureMatrixMotionInstanceNV const & matrixMotionInstance_ ) VULKAN_HPP_NOEXCEPT
  2820. {
  2821. matrixMotionInstance = matrixMotionInstance_;
  2822. return *this;
  2823. }
  2824. VULKAN_HPP_CONSTEXPR_14 AccelerationStructureMotionInstanceDataNV &
  2825. setSrtMotionInstance( VULKAN_HPP_NAMESPACE::AccelerationStructureSRTMotionInstanceNV const & srtMotionInstance_ ) VULKAN_HPP_NOEXCEPT
  2826. {
  2827. srtMotionInstance = srtMotionInstance_;
  2828. return *this;
  2829. }
  2830. #endif /*VULKAN_HPP_NO_UNION_SETTERS*/
  2831. operator VkAccelerationStructureMotionInstanceDataNV const &() const
  2832. {
  2833. return *reinterpret_cast<const VkAccelerationStructureMotionInstanceDataNV *>( this );
  2834. }
  2835. operator VkAccelerationStructureMotionInstanceDataNV &()
  2836. {
  2837. return *reinterpret_cast<VkAccelerationStructureMotionInstanceDataNV *>( this );
  2838. }
  2839. #ifdef VULKAN_HPP_HAS_UNRESTRICTED_UNIONS
  2840. VULKAN_HPP_NAMESPACE::AccelerationStructureInstanceKHR staticInstance;
  2841. VULKAN_HPP_NAMESPACE::AccelerationStructureMatrixMotionInstanceNV matrixMotionInstance;
  2842. VULKAN_HPP_NAMESPACE::AccelerationStructureSRTMotionInstanceNV srtMotionInstance;
  2843. #else
  2844. VkAccelerationStructureInstanceKHR staticInstance;
  2845. VkAccelerationStructureMatrixMotionInstanceNV matrixMotionInstance;
  2846. VkAccelerationStructureSRTMotionInstanceNV srtMotionInstance;
  2847. #endif /*VULKAN_HPP_HAS_UNRESTRICTED_UNIONS*/
  2848. };
  2849. struct AccelerationStructureMotionInstanceNV
  2850. {
  2851. using NativeType = VkAccelerationStructureMotionInstanceNV;
  2852. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  2853. VULKAN_HPP_CONSTEXPR_14 AccelerationStructureMotionInstanceNV(
  2854. VULKAN_HPP_NAMESPACE::AccelerationStructureMotionInstanceTypeNV type_ = VULKAN_HPP_NAMESPACE::AccelerationStructureMotionInstanceTypeNV::eStatic,
  2855. VULKAN_HPP_NAMESPACE::AccelerationStructureMotionInstanceFlagsNV flags_ = {},
  2856. VULKAN_HPP_NAMESPACE::AccelerationStructureMotionInstanceDataNV data_ = {} ) VULKAN_HPP_NOEXCEPT
  2857. : type( type_ )
  2858. , flags( flags_ )
  2859. , data( data_ )
  2860. {
  2861. }
  2862. VULKAN_HPP_CONSTEXPR_14 AccelerationStructureMotionInstanceNV( AccelerationStructureMotionInstanceNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  2863. AccelerationStructureMotionInstanceNV( VkAccelerationStructureMotionInstanceNV const & rhs ) VULKAN_HPP_NOEXCEPT
  2864. : AccelerationStructureMotionInstanceNV( *reinterpret_cast<AccelerationStructureMotionInstanceNV const *>( &rhs ) )
  2865. {
  2866. }
  2867. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  2868. AccelerationStructureMotionInstanceNV & operator=( AccelerationStructureMotionInstanceNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  2869. AccelerationStructureMotionInstanceNV & operator=( VkAccelerationStructureMotionInstanceNV const & rhs ) VULKAN_HPP_NOEXCEPT
  2870. {
  2871. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::AccelerationStructureMotionInstanceNV const *>( &rhs );
  2872. return *this;
  2873. }
  2874. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  2875. VULKAN_HPP_CONSTEXPR_14 AccelerationStructureMotionInstanceNV &
  2876. setType( VULKAN_HPP_NAMESPACE::AccelerationStructureMotionInstanceTypeNV type_ ) VULKAN_HPP_NOEXCEPT
  2877. {
  2878. type = type_;
  2879. return *this;
  2880. }
  2881. VULKAN_HPP_CONSTEXPR_14 AccelerationStructureMotionInstanceNV &
  2882. setFlags( VULKAN_HPP_NAMESPACE::AccelerationStructureMotionInstanceFlagsNV flags_ ) VULKAN_HPP_NOEXCEPT
  2883. {
  2884. flags = flags_;
  2885. return *this;
  2886. }
  2887. VULKAN_HPP_CONSTEXPR_14 AccelerationStructureMotionInstanceNV &
  2888. setData( VULKAN_HPP_NAMESPACE::AccelerationStructureMotionInstanceDataNV const & data_ ) VULKAN_HPP_NOEXCEPT
  2889. {
  2890. data = data_;
  2891. return *this;
  2892. }
  2893. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  2894. operator VkAccelerationStructureMotionInstanceNV const &() const VULKAN_HPP_NOEXCEPT
  2895. {
  2896. return *reinterpret_cast<const VkAccelerationStructureMotionInstanceNV *>( this );
  2897. }
  2898. operator VkAccelerationStructureMotionInstanceNV &() VULKAN_HPP_NOEXCEPT
  2899. {
  2900. return *reinterpret_cast<VkAccelerationStructureMotionInstanceNV *>( this );
  2901. }
  2902. #if defined( VULKAN_HPP_USE_REFLECT )
  2903. # if 14 <= VULKAN_HPP_CPP_VERSION
  2904. auto
  2905. # else
  2906. std::tuple<VULKAN_HPP_NAMESPACE::AccelerationStructureMotionInstanceTypeNV const &,
  2907. VULKAN_HPP_NAMESPACE::AccelerationStructureMotionInstanceFlagsNV const &,
  2908. VULKAN_HPP_NAMESPACE::AccelerationStructureMotionInstanceDataNV const &>
  2909. # endif
  2910. reflect() const VULKAN_HPP_NOEXCEPT
  2911. {
  2912. return std::tie( type, flags, data );
  2913. }
  2914. #endif
  2915. public:
  2916. VULKAN_HPP_NAMESPACE::AccelerationStructureMotionInstanceTypeNV type = VULKAN_HPP_NAMESPACE::AccelerationStructureMotionInstanceTypeNV::eStatic;
  2917. VULKAN_HPP_NAMESPACE::AccelerationStructureMotionInstanceFlagsNV flags = {};
  2918. VULKAN_HPP_NAMESPACE::AccelerationStructureMotionInstanceDataNV data = {};
  2919. };
  2920. struct AccelerationStructureVersionInfoKHR
  2921. {
  2922. using NativeType = VkAccelerationStructureVersionInfoKHR;
  2923. static const bool allowDuplicate = false;
  2924. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eAccelerationStructureVersionInfoKHR;
  2925. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  2926. VULKAN_HPP_CONSTEXPR AccelerationStructureVersionInfoKHR( const uint8_t * pVersionData_ = {}, const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  2927. : pNext( pNext_ )
  2928. , pVersionData( pVersionData_ )
  2929. {
  2930. }
  2931. VULKAN_HPP_CONSTEXPR AccelerationStructureVersionInfoKHR( AccelerationStructureVersionInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  2932. AccelerationStructureVersionInfoKHR( VkAccelerationStructureVersionInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  2933. : AccelerationStructureVersionInfoKHR( *reinterpret_cast<AccelerationStructureVersionInfoKHR const *>( &rhs ) )
  2934. {
  2935. }
  2936. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  2937. AccelerationStructureVersionInfoKHR & operator=( AccelerationStructureVersionInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  2938. AccelerationStructureVersionInfoKHR & operator=( VkAccelerationStructureVersionInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  2939. {
  2940. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::AccelerationStructureVersionInfoKHR const *>( &rhs );
  2941. return *this;
  2942. }
  2943. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  2944. VULKAN_HPP_CONSTEXPR_14 AccelerationStructureVersionInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  2945. {
  2946. pNext = pNext_;
  2947. return *this;
  2948. }
  2949. VULKAN_HPP_CONSTEXPR_14 AccelerationStructureVersionInfoKHR & setPVersionData( const uint8_t * pVersionData_ ) VULKAN_HPP_NOEXCEPT
  2950. {
  2951. pVersionData = pVersionData_;
  2952. return *this;
  2953. }
  2954. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  2955. operator VkAccelerationStructureVersionInfoKHR const &() const VULKAN_HPP_NOEXCEPT
  2956. {
  2957. return *reinterpret_cast<const VkAccelerationStructureVersionInfoKHR *>( this );
  2958. }
  2959. operator VkAccelerationStructureVersionInfoKHR &() VULKAN_HPP_NOEXCEPT
  2960. {
  2961. return *reinterpret_cast<VkAccelerationStructureVersionInfoKHR *>( this );
  2962. }
  2963. #if defined( VULKAN_HPP_USE_REFLECT )
  2964. # if 14 <= VULKAN_HPP_CPP_VERSION
  2965. auto
  2966. # else
  2967. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, const uint8_t * const &>
  2968. # endif
  2969. reflect() const VULKAN_HPP_NOEXCEPT
  2970. {
  2971. return std::tie( sType, pNext, pVersionData );
  2972. }
  2973. #endif
  2974. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  2975. auto operator<=>( AccelerationStructureVersionInfoKHR const & ) const = default;
  2976. #else
  2977. bool operator==( AccelerationStructureVersionInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  2978. {
  2979. # if defined( VULKAN_HPP_USE_REFLECT )
  2980. return this->reflect() == rhs.reflect();
  2981. # else
  2982. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( pVersionData == rhs.pVersionData );
  2983. # endif
  2984. }
  2985. bool operator!=( AccelerationStructureVersionInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  2986. {
  2987. return !operator==( rhs );
  2988. }
  2989. #endif
  2990. public:
  2991. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eAccelerationStructureVersionInfoKHR;
  2992. const void * pNext = {};
  2993. const uint8_t * pVersionData = {};
  2994. };
  2995. template <>
  2996. struct CppType<StructureType, StructureType::eAccelerationStructureVersionInfoKHR>
  2997. {
  2998. using Type = AccelerationStructureVersionInfoKHR;
  2999. };
  3000. struct AcquireNextImageInfoKHR
  3001. {
  3002. using NativeType = VkAcquireNextImageInfoKHR;
  3003. static const bool allowDuplicate = false;
  3004. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eAcquireNextImageInfoKHR;
  3005. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  3006. VULKAN_HPP_CONSTEXPR AcquireNextImageInfoKHR( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain_ = {},
  3007. uint64_t timeout_ = {},
  3008. VULKAN_HPP_NAMESPACE::Semaphore semaphore_ = {},
  3009. VULKAN_HPP_NAMESPACE::Fence fence_ = {},
  3010. uint32_t deviceMask_ = {},
  3011. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  3012. : pNext( pNext_ )
  3013. , swapchain( swapchain_ )
  3014. , timeout( timeout_ )
  3015. , semaphore( semaphore_ )
  3016. , fence( fence_ )
  3017. , deviceMask( deviceMask_ )
  3018. {
  3019. }
  3020. VULKAN_HPP_CONSTEXPR AcquireNextImageInfoKHR( AcquireNextImageInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  3021. AcquireNextImageInfoKHR( VkAcquireNextImageInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  3022. : AcquireNextImageInfoKHR( *reinterpret_cast<AcquireNextImageInfoKHR const *>( &rhs ) )
  3023. {
  3024. }
  3025. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  3026. AcquireNextImageInfoKHR & operator=( AcquireNextImageInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  3027. AcquireNextImageInfoKHR & operator=( VkAcquireNextImageInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  3028. {
  3029. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::AcquireNextImageInfoKHR const *>( &rhs );
  3030. return *this;
  3031. }
  3032. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  3033. VULKAN_HPP_CONSTEXPR_14 AcquireNextImageInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  3034. {
  3035. pNext = pNext_;
  3036. return *this;
  3037. }
  3038. VULKAN_HPP_CONSTEXPR_14 AcquireNextImageInfoKHR & setSwapchain( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain_ ) VULKAN_HPP_NOEXCEPT
  3039. {
  3040. swapchain = swapchain_;
  3041. return *this;
  3042. }
  3043. VULKAN_HPP_CONSTEXPR_14 AcquireNextImageInfoKHR & setTimeout( uint64_t timeout_ ) VULKAN_HPP_NOEXCEPT
  3044. {
  3045. timeout = timeout_;
  3046. return *this;
  3047. }
  3048. VULKAN_HPP_CONSTEXPR_14 AcquireNextImageInfoKHR & setSemaphore( VULKAN_HPP_NAMESPACE::Semaphore semaphore_ ) VULKAN_HPP_NOEXCEPT
  3049. {
  3050. semaphore = semaphore_;
  3051. return *this;
  3052. }
  3053. VULKAN_HPP_CONSTEXPR_14 AcquireNextImageInfoKHR & setFence( VULKAN_HPP_NAMESPACE::Fence fence_ ) VULKAN_HPP_NOEXCEPT
  3054. {
  3055. fence = fence_;
  3056. return *this;
  3057. }
  3058. VULKAN_HPP_CONSTEXPR_14 AcquireNextImageInfoKHR & setDeviceMask( uint32_t deviceMask_ ) VULKAN_HPP_NOEXCEPT
  3059. {
  3060. deviceMask = deviceMask_;
  3061. return *this;
  3062. }
  3063. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  3064. operator VkAcquireNextImageInfoKHR const &() const VULKAN_HPP_NOEXCEPT
  3065. {
  3066. return *reinterpret_cast<const VkAcquireNextImageInfoKHR *>( this );
  3067. }
  3068. operator VkAcquireNextImageInfoKHR &() VULKAN_HPP_NOEXCEPT
  3069. {
  3070. return *reinterpret_cast<VkAcquireNextImageInfoKHR *>( this );
  3071. }
  3072. #if defined( VULKAN_HPP_USE_REFLECT )
  3073. # if 14 <= VULKAN_HPP_CPP_VERSION
  3074. auto
  3075. # else
  3076. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  3077. const void * const &,
  3078. VULKAN_HPP_NAMESPACE::SwapchainKHR const &,
  3079. uint64_t const &,
  3080. VULKAN_HPP_NAMESPACE::Semaphore const &,
  3081. VULKAN_HPP_NAMESPACE::Fence const &,
  3082. uint32_t const &>
  3083. # endif
  3084. reflect() const VULKAN_HPP_NOEXCEPT
  3085. {
  3086. return std::tie( sType, pNext, swapchain, timeout, semaphore, fence, deviceMask );
  3087. }
  3088. #endif
  3089. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  3090. auto operator<=>( AcquireNextImageInfoKHR const & ) const = default;
  3091. #else
  3092. bool operator==( AcquireNextImageInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  3093. {
  3094. # if defined( VULKAN_HPP_USE_REFLECT )
  3095. return this->reflect() == rhs.reflect();
  3096. # else
  3097. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( swapchain == rhs.swapchain ) && ( timeout == rhs.timeout ) &&
  3098. ( semaphore == rhs.semaphore ) && ( fence == rhs.fence ) && ( deviceMask == rhs.deviceMask );
  3099. # endif
  3100. }
  3101. bool operator!=( AcquireNextImageInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  3102. {
  3103. return !operator==( rhs );
  3104. }
  3105. #endif
  3106. public:
  3107. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eAcquireNextImageInfoKHR;
  3108. const void * pNext = {};
  3109. VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain = {};
  3110. uint64_t timeout = {};
  3111. VULKAN_HPP_NAMESPACE::Semaphore semaphore = {};
  3112. VULKAN_HPP_NAMESPACE::Fence fence = {};
  3113. uint32_t deviceMask = {};
  3114. };
  3115. template <>
  3116. struct CppType<StructureType, StructureType::eAcquireNextImageInfoKHR>
  3117. {
  3118. using Type = AcquireNextImageInfoKHR;
  3119. };
  3120. struct AcquireProfilingLockInfoKHR
  3121. {
  3122. using NativeType = VkAcquireProfilingLockInfoKHR;
  3123. static const bool allowDuplicate = false;
  3124. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eAcquireProfilingLockInfoKHR;
  3125. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  3126. VULKAN_HPP_CONSTEXPR AcquireProfilingLockInfoKHR( VULKAN_HPP_NAMESPACE::AcquireProfilingLockFlagsKHR flags_ = {},
  3127. uint64_t timeout_ = {},
  3128. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  3129. : pNext( pNext_ )
  3130. , flags( flags_ )
  3131. , timeout( timeout_ )
  3132. {
  3133. }
  3134. VULKAN_HPP_CONSTEXPR AcquireProfilingLockInfoKHR( AcquireProfilingLockInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  3135. AcquireProfilingLockInfoKHR( VkAcquireProfilingLockInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  3136. : AcquireProfilingLockInfoKHR( *reinterpret_cast<AcquireProfilingLockInfoKHR const *>( &rhs ) )
  3137. {
  3138. }
  3139. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  3140. AcquireProfilingLockInfoKHR & operator=( AcquireProfilingLockInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  3141. AcquireProfilingLockInfoKHR & operator=( VkAcquireProfilingLockInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  3142. {
  3143. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::AcquireProfilingLockInfoKHR const *>( &rhs );
  3144. return *this;
  3145. }
  3146. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  3147. VULKAN_HPP_CONSTEXPR_14 AcquireProfilingLockInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  3148. {
  3149. pNext = pNext_;
  3150. return *this;
  3151. }
  3152. VULKAN_HPP_CONSTEXPR_14 AcquireProfilingLockInfoKHR & setFlags( VULKAN_HPP_NAMESPACE::AcquireProfilingLockFlagsKHR flags_ ) VULKAN_HPP_NOEXCEPT
  3153. {
  3154. flags = flags_;
  3155. return *this;
  3156. }
  3157. VULKAN_HPP_CONSTEXPR_14 AcquireProfilingLockInfoKHR & setTimeout( uint64_t timeout_ ) VULKAN_HPP_NOEXCEPT
  3158. {
  3159. timeout = timeout_;
  3160. return *this;
  3161. }
  3162. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  3163. operator VkAcquireProfilingLockInfoKHR const &() const VULKAN_HPP_NOEXCEPT
  3164. {
  3165. return *reinterpret_cast<const VkAcquireProfilingLockInfoKHR *>( this );
  3166. }
  3167. operator VkAcquireProfilingLockInfoKHR &() VULKAN_HPP_NOEXCEPT
  3168. {
  3169. return *reinterpret_cast<VkAcquireProfilingLockInfoKHR *>( this );
  3170. }
  3171. #if defined( VULKAN_HPP_USE_REFLECT )
  3172. # if 14 <= VULKAN_HPP_CPP_VERSION
  3173. auto
  3174. # else
  3175. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::AcquireProfilingLockFlagsKHR const &, uint64_t const &>
  3176. # endif
  3177. reflect() const VULKAN_HPP_NOEXCEPT
  3178. {
  3179. return std::tie( sType, pNext, flags, timeout );
  3180. }
  3181. #endif
  3182. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  3183. auto operator<=>( AcquireProfilingLockInfoKHR const & ) const = default;
  3184. #else
  3185. bool operator==( AcquireProfilingLockInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  3186. {
  3187. # if defined( VULKAN_HPP_USE_REFLECT )
  3188. return this->reflect() == rhs.reflect();
  3189. # else
  3190. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( flags == rhs.flags ) && ( timeout == rhs.timeout );
  3191. # endif
  3192. }
  3193. bool operator!=( AcquireProfilingLockInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  3194. {
  3195. return !operator==( rhs );
  3196. }
  3197. #endif
  3198. public:
  3199. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eAcquireProfilingLockInfoKHR;
  3200. const void * pNext = {};
  3201. VULKAN_HPP_NAMESPACE::AcquireProfilingLockFlagsKHR flags = {};
  3202. uint64_t timeout = {};
  3203. };
  3204. template <>
  3205. struct CppType<StructureType, StructureType::eAcquireProfilingLockInfoKHR>
  3206. {
  3207. using Type = AcquireProfilingLockInfoKHR;
  3208. };
  3209. struct AllocationCallbacks
  3210. {
  3211. using NativeType = VkAllocationCallbacks;
  3212. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  3213. VULKAN_HPP_CONSTEXPR AllocationCallbacks( void * pUserData_ = {},
  3214. PFN_vkAllocationFunction pfnAllocation_ = {},
  3215. PFN_vkReallocationFunction pfnReallocation_ = {},
  3216. PFN_vkFreeFunction pfnFree_ = {},
  3217. PFN_vkInternalAllocationNotification pfnInternalAllocation_ = {},
  3218. PFN_vkInternalFreeNotification pfnInternalFree_ = {} ) VULKAN_HPP_NOEXCEPT
  3219. : pUserData( pUserData_ )
  3220. , pfnAllocation( pfnAllocation_ )
  3221. , pfnReallocation( pfnReallocation_ )
  3222. , pfnFree( pfnFree_ )
  3223. , pfnInternalAllocation( pfnInternalAllocation_ )
  3224. , pfnInternalFree( pfnInternalFree_ )
  3225. {
  3226. }
  3227. VULKAN_HPP_CONSTEXPR AllocationCallbacks( AllocationCallbacks const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  3228. AllocationCallbacks( VkAllocationCallbacks const & rhs ) VULKAN_HPP_NOEXCEPT : AllocationCallbacks( *reinterpret_cast<AllocationCallbacks const *>( &rhs ) )
  3229. {
  3230. }
  3231. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  3232. AllocationCallbacks & operator=( AllocationCallbacks const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  3233. AllocationCallbacks & operator=( VkAllocationCallbacks const & rhs ) VULKAN_HPP_NOEXCEPT
  3234. {
  3235. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::AllocationCallbacks const *>( &rhs );
  3236. return *this;
  3237. }
  3238. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  3239. VULKAN_HPP_CONSTEXPR_14 AllocationCallbacks & setPUserData( void * pUserData_ ) VULKAN_HPP_NOEXCEPT
  3240. {
  3241. pUserData = pUserData_;
  3242. return *this;
  3243. }
  3244. VULKAN_HPP_CONSTEXPR_14 AllocationCallbacks & setPfnAllocation( PFN_vkAllocationFunction pfnAllocation_ ) VULKAN_HPP_NOEXCEPT
  3245. {
  3246. pfnAllocation = pfnAllocation_;
  3247. return *this;
  3248. }
  3249. VULKAN_HPP_CONSTEXPR_14 AllocationCallbacks & setPfnReallocation( PFN_vkReallocationFunction pfnReallocation_ ) VULKAN_HPP_NOEXCEPT
  3250. {
  3251. pfnReallocation = pfnReallocation_;
  3252. return *this;
  3253. }
  3254. VULKAN_HPP_CONSTEXPR_14 AllocationCallbacks & setPfnFree( PFN_vkFreeFunction pfnFree_ ) VULKAN_HPP_NOEXCEPT
  3255. {
  3256. pfnFree = pfnFree_;
  3257. return *this;
  3258. }
  3259. VULKAN_HPP_CONSTEXPR_14 AllocationCallbacks & setPfnInternalAllocation( PFN_vkInternalAllocationNotification pfnInternalAllocation_ ) VULKAN_HPP_NOEXCEPT
  3260. {
  3261. pfnInternalAllocation = pfnInternalAllocation_;
  3262. return *this;
  3263. }
  3264. VULKAN_HPP_CONSTEXPR_14 AllocationCallbacks & setPfnInternalFree( PFN_vkInternalFreeNotification pfnInternalFree_ ) VULKAN_HPP_NOEXCEPT
  3265. {
  3266. pfnInternalFree = pfnInternalFree_;
  3267. return *this;
  3268. }
  3269. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  3270. operator VkAllocationCallbacks const &() const VULKAN_HPP_NOEXCEPT
  3271. {
  3272. return *reinterpret_cast<const VkAllocationCallbacks *>( this );
  3273. }
  3274. operator VkAllocationCallbacks &() VULKAN_HPP_NOEXCEPT
  3275. {
  3276. return *reinterpret_cast<VkAllocationCallbacks *>( this );
  3277. }
  3278. #if defined( VULKAN_HPP_USE_REFLECT )
  3279. # if 14 <= VULKAN_HPP_CPP_VERSION
  3280. auto
  3281. # else
  3282. std::tuple<void * const &,
  3283. PFN_vkAllocationFunction const &,
  3284. PFN_vkReallocationFunction const &,
  3285. PFN_vkFreeFunction const &,
  3286. PFN_vkInternalAllocationNotification const &,
  3287. PFN_vkInternalFreeNotification const &>
  3288. # endif
  3289. reflect() const VULKAN_HPP_NOEXCEPT
  3290. {
  3291. return std::tie( pUserData, pfnAllocation, pfnReallocation, pfnFree, pfnInternalAllocation, pfnInternalFree );
  3292. }
  3293. #endif
  3294. bool operator==( AllocationCallbacks const & rhs ) const VULKAN_HPP_NOEXCEPT
  3295. {
  3296. #if defined( VULKAN_HPP_USE_REFLECT )
  3297. return this->reflect() == rhs.reflect();
  3298. #else
  3299. return ( pUserData == rhs.pUserData ) && ( pfnAllocation == rhs.pfnAllocation ) && ( pfnReallocation == rhs.pfnReallocation ) &&
  3300. ( pfnFree == rhs.pfnFree ) && ( pfnInternalAllocation == rhs.pfnInternalAllocation ) && ( pfnInternalFree == rhs.pfnInternalFree );
  3301. #endif
  3302. }
  3303. bool operator!=( AllocationCallbacks const & rhs ) const VULKAN_HPP_NOEXCEPT
  3304. {
  3305. return !operator==( rhs );
  3306. }
  3307. public:
  3308. void * pUserData = {};
  3309. PFN_vkAllocationFunction pfnAllocation = {};
  3310. PFN_vkReallocationFunction pfnReallocation = {};
  3311. PFN_vkFreeFunction pfnFree = {};
  3312. PFN_vkInternalAllocationNotification pfnInternalAllocation = {};
  3313. PFN_vkInternalFreeNotification pfnInternalFree = {};
  3314. };
  3315. struct AmigoProfilingSubmitInfoSEC
  3316. {
  3317. using NativeType = VkAmigoProfilingSubmitInfoSEC;
  3318. static const bool allowDuplicate = false;
  3319. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eAmigoProfilingSubmitInfoSEC;
  3320. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  3321. VULKAN_HPP_CONSTEXPR
  3322. AmigoProfilingSubmitInfoSEC( uint64_t firstDrawTimestamp_ = {}, uint64_t swapBufferTimestamp_ = {}, const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  3323. : pNext( pNext_ )
  3324. , firstDrawTimestamp( firstDrawTimestamp_ )
  3325. , swapBufferTimestamp( swapBufferTimestamp_ )
  3326. {
  3327. }
  3328. VULKAN_HPP_CONSTEXPR AmigoProfilingSubmitInfoSEC( AmigoProfilingSubmitInfoSEC const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  3329. AmigoProfilingSubmitInfoSEC( VkAmigoProfilingSubmitInfoSEC const & rhs ) VULKAN_HPP_NOEXCEPT
  3330. : AmigoProfilingSubmitInfoSEC( *reinterpret_cast<AmigoProfilingSubmitInfoSEC const *>( &rhs ) )
  3331. {
  3332. }
  3333. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  3334. AmigoProfilingSubmitInfoSEC & operator=( AmigoProfilingSubmitInfoSEC const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  3335. AmigoProfilingSubmitInfoSEC & operator=( VkAmigoProfilingSubmitInfoSEC const & rhs ) VULKAN_HPP_NOEXCEPT
  3336. {
  3337. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::AmigoProfilingSubmitInfoSEC const *>( &rhs );
  3338. return *this;
  3339. }
  3340. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  3341. VULKAN_HPP_CONSTEXPR_14 AmigoProfilingSubmitInfoSEC & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  3342. {
  3343. pNext = pNext_;
  3344. return *this;
  3345. }
  3346. VULKAN_HPP_CONSTEXPR_14 AmigoProfilingSubmitInfoSEC & setFirstDrawTimestamp( uint64_t firstDrawTimestamp_ ) VULKAN_HPP_NOEXCEPT
  3347. {
  3348. firstDrawTimestamp = firstDrawTimestamp_;
  3349. return *this;
  3350. }
  3351. VULKAN_HPP_CONSTEXPR_14 AmigoProfilingSubmitInfoSEC & setSwapBufferTimestamp( uint64_t swapBufferTimestamp_ ) VULKAN_HPP_NOEXCEPT
  3352. {
  3353. swapBufferTimestamp = swapBufferTimestamp_;
  3354. return *this;
  3355. }
  3356. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  3357. operator VkAmigoProfilingSubmitInfoSEC const &() const VULKAN_HPP_NOEXCEPT
  3358. {
  3359. return *reinterpret_cast<const VkAmigoProfilingSubmitInfoSEC *>( this );
  3360. }
  3361. operator VkAmigoProfilingSubmitInfoSEC &() VULKAN_HPP_NOEXCEPT
  3362. {
  3363. return *reinterpret_cast<VkAmigoProfilingSubmitInfoSEC *>( this );
  3364. }
  3365. #if defined( VULKAN_HPP_USE_REFLECT )
  3366. # if 14 <= VULKAN_HPP_CPP_VERSION
  3367. auto
  3368. # else
  3369. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, uint64_t const &, uint64_t const &>
  3370. # endif
  3371. reflect() const VULKAN_HPP_NOEXCEPT
  3372. {
  3373. return std::tie( sType, pNext, firstDrawTimestamp, swapBufferTimestamp );
  3374. }
  3375. #endif
  3376. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  3377. auto operator<=>( AmigoProfilingSubmitInfoSEC const & ) const = default;
  3378. #else
  3379. bool operator==( AmigoProfilingSubmitInfoSEC const & rhs ) const VULKAN_HPP_NOEXCEPT
  3380. {
  3381. # if defined( VULKAN_HPP_USE_REFLECT )
  3382. return this->reflect() == rhs.reflect();
  3383. # else
  3384. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( firstDrawTimestamp == rhs.firstDrawTimestamp ) &&
  3385. ( swapBufferTimestamp == rhs.swapBufferTimestamp );
  3386. # endif
  3387. }
  3388. bool operator!=( AmigoProfilingSubmitInfoSEC const & rhs ) const VULKAN_HPP_NOEXCEPT
  3389. {
  3390. return !operator==( rhs );
  3391. }
  3392. #endif
  3393. public:
  3394. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eAmigoProfilingSubmitInfoSEC;
  3395. const void * pNext = {};
  3396. uint64_t firstDrawTimestamp = {};
  3397. uint64_t swapBufferTimestamp = {};
  3398. };
  3399. template <>
  3400. struct CppType<StructureType, StructureType::eAmigoProfilingSubmitInfoSEC>
  3401. {
  3402. using Type = AmigoProfilingSubmitInfoSEC;
  3403. };
  3404. struct ComponentMapping
  3405. {
  3406. using NativeType = VkComponentMapping;
  3407. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  3408. VULKAN_HPP_CONSTEXPR ComponentMapping( VULKAN_HPP_NAMESPACE::ComponentSwizzle r_ = VULKAN_HPP_NAMESPACE::ComponentSwizzle::eIdentity,
  3409. VULKAN_HPP_NAMESPACE::ComponentSwizzle g_ = VULKAN_HPP_NAMESPACE::ComponentSwizzle::eIdentity,
  3410. VULKAN_HPP_NAMESPACE::ComponentSwizzle b_ = VULKAN_HPP_NAMESPACE::ComponentSwizzle::eIdentity,
  3411. VULKAN_HPP_NAMESPACE::ComponentSwizzle a_ = VULKAN_HPP_NAMESPACE::ComponentSwizzle::eIdentity ) VULKAN_HPP_NOEXCEPT
  3412. : r( r_ )
  3413. , g( g_ )
  3414. , b( b_ )
  3415. , a( a_ )
  3416. {
  3417. }
  3418. VULKAN_HPP_CONSTEXPR ComponentMapping( ComponentMapping const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  3419. ComponentMapping( VkComponentMapping const & rhs ) VULKAN_HPP_NOEXCEPT : ComponentMapping( *reinterpret_cast<ComponentMapping const *>( &rhs ) ) {}
  3420. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  3421. ComponentMapping & operator=( ComponentMapping const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  3422. ComponentMapping & operator=( VkComponentMapping const & rhs ) VULKAN_HPP_NOEXCEPT
  3423. {
  3424. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ComponentMapping const *>( &rhs );
  3425. return *this;
  3426. }
  3427. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  3428. VULKAN_HPP_CONSTEXPR_14 ComponentMapping & setR( VULKAN_HPP_NAMESPACE::ComponentSwizzle r_ ) VULKAN_HPP_NOEXCEPT
  3429. {
  3430. r = r_;
  3431. return *this;
  3432. }
  3433. VULKAN_HPP_CONSTEXPR_14 ComponentMapping & setG( VULKAN_HPP_NAMESPACE::ComponentSwizzle g_ ) VULKAN_HPP_NOEXCEPT
  3434. {
  3435. g = g_;
  3436. return *this;
  3437. }
  3438. VULKAN_HPP_CONSTEXPR_14 ComponentMapping & setB( VULKAN_HPP_NAMESPACE::ComponentSwizzle b_ ) VULKAN_HPP_NOEXCEPT
  3439. {
  3440. b = b_;
  3441. return *this;
  3442. }
  3443. VULKAN_HPP_CONSTEXPR_14 ComponentMapping & setA( VULKAN_HPP_NAMESPACE::ComponentSwizzle a_ ) VULKAN_HPP_NOEXCEPT
  3444. {
  3445. a = a_;
  3446. return *this;
  3447. }
  3448. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  3449. operator VkComponentMapping const &() const VULKAN_HPP_NOEXCEPT
  3450. {
  3451. return *reinterpret_cast<const VkComponentMapping *>( this );
  3452. }
  3453. operator VkComponentMapping &() VULKAN_HPP_NOEXCEPT
  3454. {
  3455. return *reinterpret_cast<VkComponentMapping *>( this );
  3456. }
  3457. #if defined( VULKAN_HPP_USE_REFLECT )
  3458. # if 14 <= VULKAN_HPP_CPP_VERSION
  3459. auto
  3460. # else
  3461. std::tuple<VULKAN_HPP_NAMESPACE::ComponentSwizzle const &,
  3462. VULKAN_HPP_NAMESPACE::ComponentSwizzle const &,
  3463. VULKAN_HPP_NAMESPACE::ComponentSwizzle const &,
  3464. VULKAN_HPP_NAMESPACE::ComponentSwizzle const &>
  3465. # endif
  3466. reflect() const VULKAN_HPP_NOEXCEPT
  3467. {
  3468. return std::tie( r, g, b, a );
  3469. }
  3470. #endif
  3471. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  3472. auto operator<=>( ComponentMapping const & ) const = default;
  3473. #else
  3474. bool operator==( ComponentMapping const & rhs ) const VULKAN_HPP_NOEXCEPT
  3475. {
  3476. # if defined( VULKAN_HPP_USE_REFLECT )
  3477. return this->reflect() == rhs.reflect();
  3478. # else
  3479. return ( r == rhs.r ) && ( g == rhs.g ) && ( b == rhs.b ) && ( a == rhs.a );
  3480. # endif
  3481. }
  3482. bool operator!=( ComponentMapping const & rhs ) const VULKAN_HPP_NOEXCEPT
  3483. {
  3484. return !operator==( rhs );
  3485. }
  3486. #endif
  3487. public:
  3488. VULKAN_HPP_NAMESPACE::ComponentSwizzle r = VULKAN_HPP_NAMESPACE::ComponentSwizzle::eIdentity;
  3489. VULKAN_HPP_NAMESPACE::ComponentSwizzle g = VULKAN_HPP_NAMESPACE::ComponentSwizzle::eIdentity;
  3490. VULKAN_HPP_NAMESPACE::ComponentSwizzle b = VULKAN_HPP_NAMESPACE::ComponentSwizzle::eIdentity;
  3491. VULKAN_HPP_NAMESPACE::ComponentSwizzle a = VULKAN_HPP_NAMESPACE::ComponentSwizzle::eIdentity;
  3492. };
  3493. #if defined( VK_USE_PLATFORM_ANDROID_KHR )
  3494. struct AndroidHardwareBufferFormatProperties2ANDROID
  3495. {
  3496. using NativeType = VkAndroidHardwareBufferFormatProperties2ANDROID;
  3497. static const bool allowDuplicate = false;
  3498. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eAndroidHardwareBufferFormatProperties2ANDROID;
  3499. # if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  3500. VULKAN_HPP_CONSTEXPR AndroidHardwareBufferFormatProperties2ANDROID(
  3501. VULKAN_HPP_NAMESPACE::Format format_ = VULKAN_HPP_NAMESPACE::Format::eUndefined,
  3502. uint64_t externalFormat_ = {},
  3503. VULKAN_HPP_NAMESPACE::FormatFeatureFlags2 formatFeatures_ = {},
  3504. VULKAN_HPP_NAMESPACE::ComponentMapping samplerYcbcrConversionComponents_ = {},
  3505. VULKAN_HPP_NAMESPACE::SamplerYcbcrModelConversion suggestedYcbcrModel_ = VULKAN_HPP_NAMESPACE::SamplerYcbcrModelConversion::eRgbIdentity,
  3506. VULKAN_HPP_NAMESPACE::SamplerYcbcrRange suggestedYcbcrRange_ = VULKAN_HPP_NAMESPACE::SamplerYcbcrRange::eItuFull,
  3507. VULKAN_HPP_NAMESPACE::ChromaLocation suggestedXChromaOffset_ = VULKAN_HPP_NAMESPACE::ChromaLocation::eCositedEven,
  3508. VULKAN_HPP_NAMESPACE::ChromaLocation suggestedYChromaOffset_ = VULKAN_HPP_NAMESPACE::ChromaLocation::eCositedEven,
  3509. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  3510. : pNext( pNext_ )
  3511. , format( format_ )
  3512. , externalFormat( externalFormat_ )
  3513. , formatFeatures( formatFeatures_ )
  3514. , samplerYcbcrConversionComponents( samplerYcbcrConversionComponents_ )
  3515. , suggestedYcbcrModel( suggestedYcbcrModel_ )
  3516. , suggestedYcbcrRange( suggestedYcbcrRange_ )
  3517. , suggestedXChromaOffset( suggestedXChromaOffset_ )
  3518. , suggestedYChromaOffset( suggestedYChromaOffset_ )
  3519. {
  3520. }
  3521. VULKAN_HPP_CONSTEXPR
  3522. AndroidHardwareBufferFormatProperties2ANDROID( AndroidHardwareBufferFormatProperties2ANDROID const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  3523. AndroidHardwareBufferFormatProperties2ANDROID( VkAndroidHardwareBufferFormatProperties2ANDROID const & rhs ) VULKAN_HPP_NOEXCEPT
  3524. : AndroidHardwareBufferFormatProperties2ANDROID( *reinterpret_cast<AndroidHardwareBufferFormatProperties2ANDROID const *>( &rhs ) )
  3525. {
  3526. }
  3527. # endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  3528. AndroidHardwareBufferFormatProperties2ANDROID & operator=( AndroidHardwareBufferFormatProperties2ANDROID const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  3529. AndroidHardwareBufferFormatProperties2ANDROID & operator=( VkAndroidHardwareBufferFormatProperties2ANDROID const & rhs ) VULKAN_HPP_NOEXCEPT
  3530. {
  3531. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::AndroidHardwareBufferFormatProperties2ANDROID const *>( &rhs );
  3532. return *this;
  3533. }
  3534. operator VkAndroidHardwareBufferFormatProperties2ANDROID const &() const VULKAN_HPP_NOEXCEPT
  3535. {
  3536. return *reinterpret_cast<const VkAndroidHardwareBufferFormatProperties2ANDROID *>( this );
  3537. }
  3538. operator VkAndroidHardwareBufferFormatProperties2ANDROID &() VULKAN_HPP_NOEXCEPT
  3539. {
  3540. return *reinterpret_cast<VkAndroidHardwareBufferFormatProperties2ANDROID *>( this );
  3541. }
  3542. # if defined( VULKAN_HPP_USE_REFLECT )
  3543. # if 14 <= VULKAN_HPP_CPP_VERSION
  3544. auto
  3545. # else
  3546. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  3547. void * const &,
  3548. VULKAN_HPP_NAMESPACE::Format const &,
  3549. uint64_t const &,
  3550. VULKAN_HPP_NAMESPACE::FormatFeatureFlags2 const &,
  3551. VULKAN_HPP_NAMESPACE::ComponentMapping const &,
  3552. VULKAN_HPP_NAMESPACE::SamplerYcbcrModelConversion const &,
  3553. VULKAN_HPP_NAMESPACE::SamplerYcbcrRange const &,
  3554. VULKAN_HPP_NAMESPACE::ChromaLocation const &,
  3555. VULKAN_HPP_NAMESPACE::ChromaLocation const &>
  3556. # endif
  3557. reflect() const VULKAN_HPP_NOEXCEPT
  3558. {
  3559. return std::tie( sType,
  3560. pNext,
  3561. format,
  3562. externalFormat,
  3563. formatFeatures,
  3564. samplerYcbcrConversionComponents,
  3565. suggestedYcbcrModel,
  3566. suggestedYcbcrRange,
  3567. suggestedXChromaOffset,
  3568. suggestedYChromaOffset );
  3569. }
  3570. # endif
  3571. # if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  3572. auto operator<=>( AndroidHardwareBufferFormatProperties2ANDROID const & ) const = default;
  3573. # else
  3574. bool operator==( AndroidHardwareBufferFormatProperties2ANDROID const & rhs ) const VULKAN_HPP_NOEXCEPT
  3575. {
  3576. # if defined( VULKAN_HPP_USE_REFLECT )
  3577. return this->reflect() == rhs.reflect();
  3578. # else
  3579. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( format == rhs.format ) && ( externalFormat == rhs.externalFormat ) &&
  3580. ( formatFeatures == rhs.formatFeatures ) && ( samplerYcbcrConversionComponents == rhs.samplerYcbcrConversionComponents ) &&
  3581. ( suggestedYcbcrModel == rhs.suggestedYcbcrModel ) && ( suggestedYcbcrRange == rhs.suggestedYcbcrRange ) &&
  3582. ( suggestedXChromaOffset == rhs.suggestedXChromaOffset ) && ( suggestedYChromaOffset == rhs.suggestedYChromaOffset );
  3583. # endif
  3584. }
  3585. bool operator!=( AndroidHardwareBufferFormatProperties2ANDROID const & rhs ) const VULKAN_HPP_NOEXCEPT
  3586. {
  3587. return !operator==( rhs );
  3588. }
  3589. # endif
  3590. public:
  3591. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eAndroidHardwareBufferFormatProperties2ANDROID;
  3592. void * pNext = {};
  3593. VULKAN_HPP_NAMESPACE::Format format = VULKAN_HPP_NAMESPACE::Format::eUndefined;
  3594. uint64_t externalFormat = {};
  3595. VULKAN_HPP_NAMESPACE::FormatFeatureFlags2 formatFeatures = {};
  3596. VULKAN_HPP_NAMESPACE::ComponentMapping samplerYcbcrConversionComponents = {};
  3597. VULKAN_HPP_NAMESPACE::SamplerYcbcrModelConversion suggestedYcbcrModel = VULKAN_HPP_NAMESPACE::SamplerYcbcrModelConversion::eRgbIdentity;
  3598. VULKAN_HPP_NAMESPACE::SamplerYcbcrRange suggestedYcbcrRange = VULKAN_HPP_NAMESPACE::SamplerYcbcrRange::eItuFull;
  3599. VULKAN_HPP_NAMESPACE::ChromaLocation suggestedXChromaOffset = VULKAN_HPP_NAMESPACE::ChromaLocation::eCositedEven;
  3600. VULKAN_HPP_NAMESPACE::ChromaLocation suggestedYChromaOffset = VULKAN_HPP_NAMESPACE::ChromaLocation::eCositedEven;
  3601. };
  3602. template <>
  3603. struct CppType<StructureType, StructureType::eAndroidHardwareBufferFormatProperties2ANDROID>
  3604. {
  3605. using Type = AndroidHardwareBufferFormatProperties2ANDROID;
  3606. };
  3607. #endif /*VK_USE_PLATFORM_ANDROID_KHR*/
  3608. #if defined( VK_USE_PLATFORM_ANDROID_KHR )
  3609. struct AndroidHardwareBufferFormatPropertiesANDROID
  3610. {
  3611. using NativeType = VkAndroidHardwareBufferFormatPropertiesANDROID;
  3612. static const bool allowDuplicate = false;
  3613. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eAndroidHardwareBufferFormatPropertiesANDROID;
  3614. # if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  3615. VULKAN_HPP_CONSTEXPR AndroidHardwareBufferFormatPropertiesANDROID(
  3616. VULKAN_HPP_NAMESPACE::Format format_ = VULKAN_HPP_NAMESPACE::Format::eUndefined,
  3617. uint64_t externalFormat_ = {},
  3618. VULKAN_HPP_NAMESPACE::FormatFeatureFlags formatFeatures_ = {},
  3619. VULKAN_HPP_NAMESPACE::ComponentMapping samplerYcbcrConversionComponents_ = {},
  3620. VULKAN_HPP_NAMESPACE::SamplerYcbcrModelConversion suggestedYcbcrModel_ = VULKAN_HPP_NAMESPACE::SamplerYcbcrModelConversion::eRgbIdentity,
  3621. VULKAN_HPP_NAMESPACE::SamplerYcbcrRange suggestedYcbcrRange_ = VULKAN_HPP_NAMESPACE::SamplerYcbcrRange::eItuFull,
  3622. VULKAN_HPP_NAMESPACE::ChromaLocation suggestedXChromaOffset_ = VULKAN_HPP_NAMESPACE::ChromaLocation::eCositedEven,
  3623. VULKAN_HPP_NAMESPACE::ChromaLocation suggestedYChromaOffset_ = VULKAN_HPP_NAMESPACE::ChromaLocation::eCositedEven,
  3624. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  3625. : pNext( pNext_ )
  3626. , format( format_ )
  3627. , externalFormat( externalFormat_ )
  3628. , formatFeatures( formatFeatures_ )
  3629. , samplerYcbcrConversionComponents( samplerYcbcrConversionComponents_ )
  3630. , suggestedYcbcrModel( suggestedYcbcrModel_ )
  3631. , suggestedYcbcrRange( suggestedYcbcrRange_ )
  3632. , suggestedXChromaOffset( suggestedXChromaOffset_ )
  3633. , suggestedYChromaOffset( suggestedYChromaOffset_ )
  3634. {
  3635. }
  3636. VULKAN_HPP_CONSTEXPR AndroidHardwareBufferFormatPropertiesANDROID( AndroidHardwareBufferFormatPropertiesANDROID const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  3637. AndroidHardwareBufferFormatPropertiesANDROID( VkAndroidHardwareBufferFormatPropertiesANDROID const & rhs ) VULKAN_HPP_NOEXCEPT
  3638. : AndroidHardwareBufferFormatPropertiesANDROID( *reinterpret_cast<AndroidHardwareBufferFormatPropertiesANDROID const *>( &rhs ) )
  3639. {
  3640. }
  3641. # endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  3642. AndroidHardwareBufferFormatPropertiesANDROID & operator=( AndroidHardwareBufferFormatPropertiesANDROID const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  3643. AndroidHardwareBufferFormatPropertiesANDROID & operator=( VkAndroidHardwareBufferFormatPropertiesANDROID const & rhs ) VULKAN_HPP_NOEXCEPT
  3644. {
  3645. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::AndroidHardwareBufferFormatPropertiesANDROID const *>( &rhs );
  3646. return *this;
  3647. }
  3648. operator VkAndroidHardwareBufferFormatPropertiesANDROID const &() const VULKAN_HPP_NOEXCEPT
  3649. {
  3650. return *reinterpret_cast<const VkAndroidHardwareBufferFormatPropertiesANDROID *>( this );
  3651. }
  3652. operator VkAndroidHardwareBufferFormatPropertiesANDROID &() VULKAN_HPP_NOEXCEPT
  3653. {
  3654. return *reinterpret_cast<VkAndroidHardwareBufferFormatPropertiesANDROID *>( this );
  3655. }
  3656. # if defined( VULKAN_HPP_USE_REFLECT )
  3657. # if 14 <= VULKAN_HPP_CPP_VERSION
  3658. auto
  3659. # else
  3660. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  3661. void * const &,
  3662. VULKAN_HPP_NAMESPACE::Format const &,
  3663. uint64_t const &,
  3664. VULKAN_HPP_NAMESPACE::FormatFeatureFlags const &,
  3665. VULKAN_HPP_NAMESPACE::ComponentMapping const &,
  3666. VULKAN_HPP_NAMESPACE::SamplerYcbcrModelConversion const &,
  3667. VULKAN_HPP_NAMESPACE::SamplerYcbcrRange const &,
  3668. VULKAN_HPP_NAMESPACE::ChromaLocation const &,
  3669. VULKAN_HPP_NAMESPACE::ChromaLocation const &>
  3670. # endif
  3671. reflect() const VULKAN_HPP_NOEXCEPT
  3672. {
  3673. return std::tie( sType,
  3674. pNext,
  3675. format,
  3676. externalFormat,
  3677. formatFeatures,
  3678. samplerYcbcrConversionComponents,
  3679. suggestedYcbcrModel,
  3680. suggestedYcbcrRange,
  3681. suggestedXChromaOffset,
  3682. suggestedYChromaOffset );
  3683. }
  3684. # endif
  3685. # if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  3686. auto operator<=>( AndroidHardwareBufferFormatPropertiesANDROID const & ) const = default;
  3687. # else
  3688. bool operator==( AndroidHardwareBufferFormatPropertiesANDROID const & rhs ) const VULKAN_HPP_NOEXCEPT
  3689. {
  3690. # if defined( VULKAN_HPP_USE_REFLECT )
  3691. return this->reflect() == rhs.reflect();
  3692. # else
  3693. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( format == rhs.format ) && ( externalFormat == rhs.externalFormat ) &&
  3694. ( formatFeatures == rhs.formatFeatures ) && ( samplerYcbcrConversionComponents == rhs.samplerYcbcrConversionComponents ) &&
  3695. ( suggestedYcbcrModel == rhs.suggestedYcbcrModel ) && ( suggestedYcbcrRange == rhs.suggestedYcbcrRange ) &&
  3696. ( suggestedXChromaOffset == rhs.suggestedXChromaOffset ) && ( suggestedYChromaOffset == rhs.suggestedYChromaOffset );
  3697. # endif
  3698. }
  3699. bool operator!=( AndroidHardwareBufferFormatPropertiesANDROID const & rhs ) const VULKAN_HPP_NOEXCEPT
  3700. {
  3701. return !operator==( rhs );
  3702. }
  3703. # endif
  3704. public:
  3705. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eAndroidHardwareBufferFormatPropertiesANDROID;
  3706. void * pNext = {};
  3707. VULKAN_HPP_NAMESPACE::Format format = VULKAN_HPP_NAMESPACE::Format::eUndefined;
  3708. uint64_t externalFormat = {};
  3709. VULKAN_HPP_NAMESPACE::FormatFeatureFlags formatFeatures = {};
  3710. VULKAN_HPP_NAMESPACE::ComponentMapping samplerYcbcrConversionComponents = {};
  3711. VULKAN_HPP_NAMESPACE::SamplerYcbcrModelConversion suggestedYcbcrModel = VULKAN_HPP_NAMESPACE::SamplerYcbcrModelConversion::eRgbIdentity;
  3712. VULKAN_HPP_NAMESPACE::SamplerYcbcrRange suggestedYcbcrRange = VULKAN_HPP_NAMESPACE::SamplerYcbcrRange::eItuFull;
  3713. VULKAN_HPP_NAMESPACE::ChromaLocation suggestedXChromaOffset = VULKAN_HPP_NAMESPACE::ChromaLocation::eCositedEven;
  3714. VULKAN_HPP_NAMESPACE::ChromaLocation suggestedYChromaOffset = VULKAN_HPP_NAMESPACE::ChromaLocation::eCositedEven;
  3715. };
  3716. template <>
  3717. struct CppType<StructureType, StructureType::eAndroidHardwareBufferFormatPropertiesANDROID>
  3718. {
  3719. using Type = AndroidHardwareBufferFormatPropertiesANDROID;
  3720. };
  3721. #endif /*VK_USE_PLATFORM_ANDROID_KHR*/
  3722. #if defined( VK_USE_PLATFORM_ANDROID_KHR )
  3723. struct AndroidHardwareBufferPropertiesANDROID
  3724. {
  3725. using NativeType = VkAndroidHardwareBufferPropertiesANDROID;
  3726. static const bool allowDuplicate = false;
  3727. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eAndroidHardwareBufferPropertiesANDROID;
  3728. # if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  3729. VULKAN_HPP_CONSTEXPR AndroidHardwareBufferPropertiesANDROID( VULKAN_HPP_NAMESPACE::DeviceSize allocationSize_ = {},
  3730. uint32_t memoryTypeBits_ = {},
  3731. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  3732. : pNext( pNext_ )
  3733. , allocationSize( allocationSize_ )
  3734. , memoryTypeBits( memoryTypeBits_ )
  3735. {
  3736. }
  3737. VULKAN_HPP_CONSTEXPR AndroidHardwareBufferPropertiesANDROID( AndroidHardwareBufferPropertiesANDROID const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  3738. AndroidHardwareBufferPropertiesANDROID( VkAndroidHardwareBufferPropertiesANDROID const & rhs ) VULKAN_HPP_NOEXCEPT
  3739. : AndroidHardwareBufferPropertiesANDROID( *reinterpret_cast<AndroidHardwareBufferPropertiesANDROID const *>( &rhs ) )
  3740. {
  3741. }
  3742. # endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  3743. AndroidHardwareBufferPropertiesANDROID & operator=( AndroidHardwareBufferPropertiesANDROID const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  3744. AndroidHardwareBufferPropertiesANDROID & operator=( VkAndroidHardwareBufferPropertiesANDROID const & rhs ) VULKAN_HPP_NOEXCEPT
  3745. {
  3746. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::AndroidHardwareBufferPropertiesANDROID const *>( &rhs );
  3747. return *this;
  3748. }
  3749. operator VkAndroidHardwareBufferPropertiesANDROID const &() const VULKAN_HPP_NOEXCEPT
  3750. {
  3751. return *reinterpret_cast<const VkAndroidHardwareBufferPropertiesANDROID *>( this );
  3752. }
  3753. operator VkAndroidHardwareBufferPropertiesANDROID &() VULKAN_HPP_NOEXCEPT
  3754. {
  3755. return *reinterpret_cast<VkAndroidHardwareBufferPropertiesANDROID *>( this );
  3756. }
  3757. # if defined( VULKAN_HPP_USE_REFLECT )
  3758. # if 14 <= VULKAN_HPP_CPP_VERSION
  3759. auto
  3760. # else
  3761. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::DeviceSize const &, uint32_t const &>
  3762. # endif
  3763. reflect() const VULKAN_HPP_NOEXCEPT
  3764. {
  3765. return std::tie( sType, pNext, allocationSize, memoryTypeBits );
  3766. }
  3767. # endif
  3768. # if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  3769. auto operator<=>( AndroidHardwareBufferPropertiesANDROID const & ) const = default;
  3770. # else
  3771. bool operator==( AndroidHardwareBufferPropertiesANDROID const & rhs ) const VULKAN_HPP_NOEXCEPT
  3772. {
  3773. # if defined( VULKAN_HPP_USE_REFLECT )
  3774. return this->reflect() == rhs.reflect();
  3775. # else
  3776. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( allocationSize == rhs.allocationSize ) && ( memoryTypeBits == rhs.memoryTypeBits );
  3777. # endif
  3778. }
  3779. bool operator!=( AndroidHardwareBufferPropertiesANDROID const & rhs ) const VULKAN_HPP_NOEXCEPT
  3780. {
  3781. return !operator==( rhs );
  3782. }
  3783. # endif
  3784. public:
  3785. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eAndroidHardwareBufferPropertiesANDROID;
  3786. void * pNext = {};
  3787. VULKAN_HPP_NAMESPACE::DeviceSize allocationSize = {};
  3788. uint32_t memoryTypeBits = {};
  3789. };
  3790. template <>
  3791. struct CppType<StructureType, StructureType::eAndroidHardwareBufferPropertiesANDROID>
  3792. {
  3793. using Type = AndroidHardwareBufferPropertiesANDROID;
  3794. };
  3795. #endif /*VK_USE_PLATFORM_ANDROID_KHR*/
  3796. #if defined( VK_USE_PLATFORM_ANDROID_KHR )
  3797. struct AndroidHardwareBufferUsageANDROID
  3798. {
  3799. using NativeType = VkAndroidHardwareBufferUsageANDROID;
  3800. static const bool allowDuplicate = false;
  3801. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eAndroidHardwareBufferUsageANDROID;
  3802. # if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  3803. VULKAN_HPP_CONSTEXPR AndroidHardwareBufferUsageANDROID( uint64_t androidHardwareBufferUsage_ = {}, void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  3804. : pNext( pNext_ )
  3805. , androidHardwareBufferUsage( androidHardwareBufferUsage_ )
  3806. {
  3807. }
  3808. VULKAN_HPP_CONSTEXPR AndroidHardwareBufferUsageANDROID( AndroidHardwareBufferUsageANDROID const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  3809. AndroidHardwareBufferUsageANDROID( VkAndroidHardwareBufferUsageANDROID const & rhs ) VULKAN_HPP_NOEXCEPT
  3810. : AndroidHardwareBufferUsageANDROID( *reinterpret_cast<AndroidHardwareBufferUsageANDROID const *>( &rhs ) )
  3811. {
  3812. }
  3813. # endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  3814. AndroidHardwareBufferUsageANDROID & operator=( AndroidHardwareBufferUsageANDROID const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  3815. AndroidHardwareBufferUsageANDROID & operator=( VkAndroidHardwareBufferUsageANDROID const & rhs ) VULKAN_HPP_NOEXCEPT
  3816. {
  3817. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::AndroidHardwareBufferUsageANDROID const *>( &rhs );
  3818. return *this;
  3819. }
  3820. operator VkAndroidHardwareBufferUsageANDROID const &() const VULKAN_HPP_NOEXCEPT
  3821. {
  3822. return *reinterpret_cast<const VkAndroidHardwareBufferUsageANDROID *>( this );
  3823. }
  3824. operator VkAndroidHardwareBufferUsageANDROID &() VULKAN_HPP_NOEXCEPT
  3825. {
  3826. return *reinterpret_cast<VkAndroidHardwareBufferUsageANDROID *>( this );
  3827. }
  3828. # if defined( VULKAN_HPP_USE_REFLECT )
  3829. # if 14 <= VULKAN_HPP_CPP_VERSION
  3830. auto
  3831. # else
  3832. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, uint64_t const &>
  3833. # endif
  3834. reflect() const VULKAN_HPP_NOEXCEPT
  3835. {
  3836. return std::tie( sType, pNext, androidHardwareBufferUsage );
  3837. }
  3838. # endif
  3839. # if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  3840. auto operator<=>( AndroidHardwareBufferUsageANDROID const & ) const = default;
  3841. # else
  3842. bool operator==( AndroidHardwareBufferUsageANDROID const & rhs ) const VULKAN_HPP_NOEXCEPT
  3843. {
  3844. # if defined( VULKAN_HPP_USE_REFLECT )
  3845. return this->reflect() == rhs.reflect();
  3846. # else
  3847. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( androidHardwareBufferUsage == rhs.androidHardwareBufferUsage );
  3848. # endif
  3849. }
  3850. bool operator!=( AndroidHardwareBufferUsageANDROID const & rhs ) const VULKAN_HPP_NOEXCEPT
  3851. {
  3852. return !operator==( rhs );
  3853. }
  3854. # endif
  3855. public:
  3856. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eAndroidHardwareBufferUsageANDROID;
  3857. void * pNext = {};
  3858. uint64_t androidHardwareBufferUsage = {};
  3859. };
  3860. template <>
  3861. struct CppType<StructureType, StructureType::eAndroidHardwareBufferUsageANDROID>
  3862. {
  3863. using Type = AndroidHardwareBufferUsageANDROID;
  3864. };
  3865. #endif /*VK_USE_PLATFORM_ANDROID_KHR*/
  3866. #if defined( VK_USE_PLATFORM_ANDROID_KHR )
  3867. struct AndroidSurfaceCreateInfoKHR
  3868. {
  3869. using NativeType = VkAndroidSurfaceCreateInfoKHR;
  3870. static const bool allowDuplicate = false;
  3871. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eAndroidSurfaceCreateInfoKHR;
  3872. # if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  3873. VULKAN_HPP_CONSTEXPR AndroidSurfaceCreateInfoKHR( VULKAN_HPP_NAMESPACE::AndroidSurfaceCreateFlagsKHR flags_ = {},
  3874. struct ANativeWindow * window_ = {},
  3875. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  3876. : pNext( pNext_ )
  3877. , flags( flags_ )
  3878. , window( window_ )
  3879. {
  3880. }
  3881. VULKAN_HPP_CONSTEXPR AndroidSurfaceCreateInfoKHR( AndroidSurfaceCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  3882. AndroidSurfaceCreateInfoKHR( VkAndroidSurfaceCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  3883. : AndroidSurfaceCreateInfoKHR( *reinterpret_cast<AndroidSurfaceCreateInfoKHR const *>( &rhs ) )
  3884. {
  3885. }
  3886. # endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  3887. AndroidSurfaceCreateInfoKHR & operator=( AndroidSurfaceCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  3888. AndroidSurfaceCreateInfoKHR & operator=( VkAndroidSurfaceCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  3889. {
  3890. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::AndroidSurfaceCreateInfoKHR const *>( &rhs );
  3891. return *this;
  3892. }
  3893. # if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  3894. VULKAN_HPP_CONSTEXPR_14 AndroidSurfaceCreateInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  3895. {
  3896. pNext = pNext_;
  3897. return *this;
  3898. }
  3899. VULKAN_HPP_CONSTEXPR_14 AndroidSurfaceCreateInfoKHR & setFlags( VULKAN_HPP_NAMESPACE::AndroidSurfaceCreateFlagsKHR flags_ ) VULKAN_HPP_NOEXCEPT
  3900. {
  3901. flags = flags_;
  3902. return *this;
  3903. }
  3904. VULKAN_HPP_CONSTEXPR_14 AndroidSurfaceCreateInfoKHR & setWindow( struct ANativeWindow * window_ ) VULKAN_HPP_NOEXCEPT
  3905. {
  3906. window = window_;
  3907. return *this;
  3908. }
  3909. # endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  3910. operator VkAndroidSurfaceCreateInfoKHR const &() const VULKAN_HPP_NOEXCEPT
  3911. {
  3912. return *reinterpret_cast<const VkAndroidSurfaceCreateInfoKHR *>( this );
  3913. }
  3914. operator VkAndroidSurfaceCreateInfoKHR &() VULKAN_HPP_NOEXCEPT
  3915. {
  3916. return *reinterpret_cast<VkAndroidSurfaceCreateInfoKHR *>( this );
  3917. }
  3918. # if defined( VULKAN_HPP_USE_REFLECT )
  3919. # if 14 <= VULKAN_HPP_CPP_VERSION
  3920. auto
  3921. # else
  3922. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  3923. const void * const &,
  3924. VULKAN_HPP_NAMESPACE::AndroidSurfaceCreateFlagsKHR const &,
  3925. struct ANativeWindow * const &>
  3926. # endif
  3927. reflect() const VULKAN_HPP_NOEXCEPT
  3928. {
  3929. return std::tie( sType, pNext, flags, window );
  3930. }
  3931. # endif
  3932. # if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  3933. auto operator<=>( AndroidSurfaceCreateInfoKHR const & ) const = default;
  3934. # else
  3935. bool operator==( AndroidSurfaceCreateInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  3936. {
  3937. # if defined( VULKAN_HPP_USE_REFLECT )
  3938. return this->reflect() == rhs.reflect();
  3939. # else
  3940. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( flags == rhs.flags ) && ( window == rhs.window );
  3941. # endif
  3942. }
  3943. bool operator!=( AndroidSurfaceCreateInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  3944. {
  3945. return !operator==( rhs );
  3946. }
  3947. # endif
  3948. public:
  3949. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eAndroidSurfaceCreateInfoKHR;
  3950. const void * pNext = {};
  3951. VULKAN_HPP_NAMESPACE::AndroidSurfaceCreateFlagsKHR flags = {};
  3952. struct ANativeWindow * window = {};
  3953. };
  3954. template <>
  3955. struct CppType<StructureType, StructureType::eAndroidSurfaceCreateInfoKHR>
  3956. {
  3957. using Type = AndroidSurfaceCreateInfoKHR;
  3958. };
  3959. #endif /*VK_USE_PLATFORM_ANDROID_KHR*/
  3960. struct ApplicationInfo
  3961. {
  3962. using NativeType = VkApplicationInfo;
  3963. static const bool allowDuplicate = false;
  3964. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eApplicationInfo;
  3965. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  3966. VULKAN_HPP_CONSTEXPR ApplicationInfo( const char * pApplicationName_ = {},
  3967. uint32_t applicationVersion_ = {},
  3968. const char * pEngineName_ = {},
  3969. uint32_t engineVersion_ = {},
  3970. uint32_t apiVersion_ = {},
  3971. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  3972. : pNext( pNext_ )
  3973. , pApplicationName( pApplicationName_ )
  3974. , applicationVersion( applicationVersion_ )
  3975. , pEngineName( pEngineName_ )
  3976. , engineVersion( engineVersion_ )
  3977. , apiVersion( apiVersion_ )
  3978. {
  3979. }
  3980. VULKAN_HPP_CONSTEXPR ApplicationInfo( ApplicationInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  3981. ApplicationInfo( VkApplicationInfo const & rhs ) VULKAN_HPP_NOEXCEPT : ApplicationInfo( *reinterpret_cast<ApplicationInfo const *>( &rhs ) ) {}
  3982. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  3983. ApplicationInfo & operator=( ApplicationInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  3984. ApplicationInfo & operator=( VkApplicationInfo const & rhs ) VULKAN_HPP_NOEXCEPT
  3985. {
  3986. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ApplicationInfo const *>( &rhs );
  3987. return *this;
  3988. }
  3989. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  3990. VULKAN_HPP_CONSTEXPR_14 ApplicationInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  3991. {
  3992. pNext = pNext_;
  3993. return *this;
  3994. }
  3995. VULKAN_HPP_CONSTEXPR_14 ApplicationInfo & setPApplicationName( const char * pApplicationName_ ) VULKAN_HPP_NOEXCEPT
  3996. {
  3997. pApplicationName = pApplicationName_;
  3998. return *this;
  3999. }
  4000. VULKAN_HPP_CONSTEXPR_14 ApplicationInfo & setApplicationVersion( uint32_t applicationVersion_ ) VULKAN_HPP_NOEXCEPT
  4001. {
  4002. applicationVersion = applicationVersion_;
  4003. return *this;
  4004. }
  4005. VULKAN_HPP_CONSTEXPR_14 ApplicationInfo & setPEngineName( const char * pEngineName_ ) VULKAN_HPP_NOEXCEPT
  4006. {
  4007. pEngineName = pEngineName_;
  4008. return *this;
  4009. }
  4010. VULKAN_HPP_CONSTEXPR_14 ApplicationInfo & setEngineVersion( uint32_t engineVersion_ ) VULKAN_HPP_NOEXCEPT
  4011. {
  4012. engineVersion = engineVersion_;
  4013. return *this;
  4014. }
  4015. VULKAN_HPP_CONSTEXPR_14 ApplicationInfo & setApiVersion( uint32_t apiVersion_ ) VULKAN_HPP_NOEXCEPT
  4016. {
  4017. apiVersion = apiVersion_;
  4018. return *this;
  4019. }
  4020. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  4021. operator VkApplicationInfo const &() const VULKAN_HPP_NOEXCEPT
  4022. {
  4023. return *reinterpret_cast<const VkApplicationInfo *>( this );
  4024. }
  4025. operator VkApplicationInfo &() VULKAN_HPP_NOEXCEPT
  4026. {
  4027. return *reinterpret_cast<VkApplicationInfo *>( this );
  4028. }
  4029. #if defined( VULKAN_HPP_USE_REFLECT )
  4030. # if 14 <= VULKAN_HPP_CPP_VERSION
  4031. auto
  4032. # else
  4033. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  4034. const void * const &,
  4035. const char * const &,
  4036. uint32_t const &,
  4037. const char * const &,
  4038. uint32_t const &,
  4039. uint32_t const &>
  4040. # endif
  4041. reflect() const VULKAN_HPP_NOEXCEPT
  4042. {
  4043. return std::tie( sType, pNext, pApplicationName, applicationVersion, pEngineName, engineVersion, apiVersion );
  4044. }
  4045. #endif
  4046. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  4047. std::strong_ordering operator<=>( ApplicationInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  4048. {
  4049. if ( auto cmp = sType <=> rhs.sType; cmp != 0 )
  4050. return cmp;
  4051. if ( auto cmp = pNext <=> rhs.pNext; cmp != 0 )
  4052. return cmp;
  4053. if ( pApplicationName != rhs.pApplicationName )
  4054. if ( auto cmp = strcmp( pApplicationName, rhs.pApplicationName ); cmp != 0 )
  4055. return ( cmp < 0 ) ? std::strong_ordering::less : std::strong_ordering::greater;
  4056. if ( auto cmp = applicationVersion <=> rhs.applicationVersion; cmp != 0 )
  4057. return cmp;
  4058. if ( pEngineName != rhs.pEngineName )
  4059. if ( auto cmp = strcmp( pEngineName, rhs.pEngineName ); cmp != 0 )
  4060. return ( cmp < 0 ) ? std::strong_ordering::less : std::strong_ordering::greater;
  4061. if ( auto cmp = engineVersion <=> rhs.engineVersion; cmp != 0 )
  4062. return cmp;
  4063. if ( auto cmp = apiVersion <=> rhs.apiVersion; cmp != 0 )
  4064. return cmp;
  4065. return std::strong_ordering::equivalent;
  4066. }
  4067. #endif
  4068. bool operator==( ApplicationInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  4069. {
  4070. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) &&
  4071. ( ( pApplicationName == rhs.pApplicationName ) || ( strcmp( pApplicationName, rhs.pApplicationName ) == 0 ) ) &&
  4072. ( applicationVersion == rhs.applicationVersion ) && ( ( pEngineName == rhs.pEngineName ) || ( strcmp( pEngineName, rhs.pEngineName ) == 0 ) ) &&
  4073. ( engineVersion == rhs.engineVersion ) && ( apiVersion == rhs.apiVersion );
  4074. }
  4075. bool operator!=( ApplicationInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  4076. {
  4077. return !operator==( rhs );
  4078. }
  4079. public:
  4080. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eApplicationInfo;
  4081. const void * pNext = {};
  4082. const char * pApplicationName = {};
  4083. uint32_t applicationVersion = {};
  4084. const char * pEngineName = {};
  4085. uint32_t engineVersion = {};
  4086. uint32_t apiVersion = {};
  4087. };
  4088. template <>
  4089. struct CppType<StructureType, StructureType::eApplicationInfo>
  4090. {
  4091. using Type = ApplicationInfo;
  4092. };
  4093. struct AttachmentDescription
  4094. {
  4095. using NativeType = VkAttachmentDescription;
  4096. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  4097. VULKAN_HPP_CONSTEXPR
  4098. AttachmentDescription( VULKAN_HPP_NAMESPACE::AttachmentDescriptionFlags flags_ = {},
  4099. VULKAN_HPP_NAMESPACE::Format format_ = VULKAN_HPP_NAMESPACE::Format::eUndefined,
  4100. VULKAN_HPP_NAMESPACE::SampleCountFlagBits samples_ = VULKAN_HPP_NAMESPACE::SampleCountFlagBits::e1,
  4101. VULKAN_HPP_NAMESPACE::AttachmentLoadOp loadOp_ = VULKAN_HPP_NAMESPACE::AttachmentLoadOp::eLoad,
  4102. VULKAN_HPP_NAMESPACE::AttachmentStoreOp storeOp_ = VULKAN_HPP_NAMESPACE::AttachmentStoreOp::eStore,
  4103. VULKAN_HPP_NAMESPACE::AttachmentLoadOp stencilLoadOp_ = VULKAN_HPP_NAMESPACE::AttachmentLoadOp::eLoad,
  4104. VULKAN_HPP_NAMESPACE::AttachmentStoreOp stencilStoreOp_ = VULKAN_HPP_NAMESPACE::AttachmentStoreOp::eStore,
  4105. VULKAN_HPP_NAMESPACE::ImageLayout initialLayout_ = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined,
  4106. VULKAN_HPP_NAMESPACE::ImageLayout finalLayout_ = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined ) VULKAN_HPP_NOEXCEPT
  4107. : flags( flags_ )
  4108. , format( format_ )
  4109. , samples( samples_ )
  4110. , loadOp( loadOp_ )
  4111. , storeOp( storeOp_ )
  4112. , stencilLoadOp( stencilLoadOp_ )
  4113. , stencilStoreOp( stencilStoreOp_ )
  4114. , initialLayout( initialLayout_ )
  4115. , finalLayout( finalLayout_ )
  4116. {
  4117. }
  4118. VULKAN_HPP_CONSTEXPR AttachmentDescription( AttachmentDescription const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  4119. AttachmentDescription( VkAttachmentDescription const & rhs ) VULKAN_HPP_NOEXCEPT
  4120. : AttachmentDescription( *reinterpret_cast<AttachmentDescription const *>( &rhs ) )
  4121. {
  4122. }
  4123. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  4124. AttachmentDescription & operator=( AttachmentDescription const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  4125. AttachmentDescription & operator=( VkAttachmentDescription const & rhs ) VULKAN_HPP_NOEXCEPT
  4126. {
  4127. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::AttachmentDescription const *>( &rhs );
  4128. return *this;
  4129. }
  4130. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  4131. VULKAN_HPP_CONSTEXPR_14 AttachmentDescription & setFlags( VULKAN_HPP_NAMESPACE::AttachmentDescriptionFlags flags_ ) VULKAN_HPP_NOEXCEPT
  4132. {
  4133. flags = flags_;
  4134. return *this;
  4135. }
  4136. VULKAN_HPP_CONSTEXPR_14 AttachmentDescription & setFormat( VULKAN_HPP_NAMESPACE::Format format_ ) VULKAN_HPP_NOEXCEPT
  4137. {
  4138. format = format_;
  4139. return *this;
  4140. }
  4141. VULKAN_HPP_CONSTEXPR_14 AttachmentDescription & setSamples( VULKAN_HPP_NAMESPACE::SampleCountFlagBits samples_ ) VULKAN_HPP_NOEXCEPT
  4142. {
  4143. samples = samples_;
  4144. return *this;
  4145. }
  4146. VULKAN_HPP_CONSTEXPR_14 AttachmentDescription & setLoadOp( VULKAN_HPP_NAMESPACE::AttachmentLoadOp loadOp_ ) VULKAN_HPP_NOEXCEPT
  4147. {
  4148. loadOp = loadOp_;
  4149. return *this;
  4150. }
  4151. VULKAN_HPP_CONSTEXPR_14 AttachmentDescription & setStoreOp( VULKAN_HPP_NAMESPACE::AttachmentStoreOp storeOp_ ) VULKAN_HPP_NOEXCEPT
  4152. {
  4153. storeOp = storeOp_;
  4154. return *this;
  4155. }
  4156. VULKAN_HPP_CONSTEXPR_14 AttachmentDescription & setStencilLoadOp( VULKAN_HPP_NAMESPACE::AttachmentLoadOp stencilLoadOp_ ) VULKAN_HPP_NOEXCEPT
  4157. {
  4158. stencilLoadOp = stencilLoadOp_;
  4159. return *this;
  4160. }
  4161. VULKAN_HPP_CONSTEXPR_14 AttachmentDescription & setStencilStoreOp( VULKAN_HPP_NAMESPACE::AttachmentStoreOp stencilStoreOp_ ) VULKAN_HPP_NOEXCEPT
  4162. {
  4163. stencilStoreOp = stencilStoreOp_;
  4164. return *this;
  4165. }
  4166. VULKAN_HPP_CONSTEXPR_14 AttachmentDescription & setInitialLayout( VULKAN_HPP_NAMESPACE::ImageLayout initialLayout_ ) VULKAN_HPP_NOEXCEPT
  4167. {
  4168. initialLayout = initialLayout_;
  4169. return *this;
  4170. }
  4171. VULKAN_HPP_CONSTEXPR_14 AttachmentDescription & setFinalLayout( VULKAN_HPP_NAMESPACE::ImageLayout finalLayout_ ) VULKAN_HPP_NOEXCEPT
  4172. {
  4173. finalLayout = finalLayout_;
  4174. return *this;
  4175. }
  4176. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  4177. operator VkAttachmentDescription const &() const VULKAN_HPP_NOEXCEPT
  4178. {
  4179. return *reinterpret_cast<const VkAttachmentDescription *>( this );
  4180. }
  4181. operator VkAttachmentDescription &() VULKAN_HPP_NOEXCEPT
  4182. {
  4183. return *reinterpret_cast<VkAttachmentDescription *>( this );
  4184. }
  4185. #if defined( VULKAN_HPP_USE_REFLECT )
  4186. # if 14 <= VULKAN_HPP_CPP_VERSION
  4187. auto
  4188. # else
  4189. std::tuple<VULKAN_HPP_NAMESPACE::AttachmentDescriptionFlags const &,
  4190. VULKAN_HPP_NAMESPACE::Format const &,
  4191. VULKAN_HPP_NAMESPACE::SampleCountFlagBits const &,
  4192. VULKAN_HPP_NAMESPACE::AttachmentLoadOp const &,
  4193. VULKAN_HPP_NAMESPACE::AttachmentStoreOp const &,
  4194. VULKAN_HPP_NAMESPACE::AttachmentLoadOp const &,
  4195. VULKAN_HPP_NAMESPACE::AttachmentStoreOp const &,
  4196. VULKAN_HPP_NAMESPACE::ImageLayout const &,
  4197. VULKAN_HPP_NAMESPACE::ImageLayout const &>
  4198. # endif
  4199. reflect() const VULKAN_HPP_NOEXCEPT
  4200. {
  4201. return std::tie( flags, format, samples, loadOp, storeOp, stencilLoadOp, stencilStoreOp, initialLayout, finalLayout );
  4202. }
  4203. #endif
  4204. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  4205. auto operator<=>( AttachmentDescription const & ) const = default;
  4206. #else
  4207. bool operator==( AttachmentDescription const & rhs ) const VULKAN_HPP_NOEXCEPT
  4208. {
  4209. # if defined( VULKAN_HPP_USE_REFLECT )
  4210. return this->reflect() == rhs.reflect();
  4211. # else
  4212. return ( flags == rhs.flags ) && ( format == rhs.format ) && ( samples == rhs.samples ) && ( loadOp == rhs.loadOp ) && ( storeOp == rhs.storeOp ) &&
  4213. ( stencilLoadOp == rhs.stencilLoadOp ) && ( stencilStoreOp == rhs.stencilStoreOp ) && ( initialLayout == rhs.initialLayout ) &&
  4214. ( finalLayout == rhs.finalLayout );
  4215. # endif
  4216. }
  4217. bool operator!=( AttachmentDescription const & rhs ) const VULKAN_HPP_NOEXCEPT
  4218. {
  4219. return !operator==( rhs );
  4220. }
  4221. #endif
  4222. public:
  4223. VULKAN_HPP_NAMESPACE::AttachmentDescriptionFlags flags = {};
  4224. VULKAN_HPP_NAMESPACE::Format format = VULKAN_HPP_NAMESPACE::Format::eUndefined;
  4225. VULKAN_HPP_NAMESPACE::SampleCountFlagBits samples = VULKAN_HPP_NAMESPACE::SampleCountFlagBits::e1;
  4226. VULKAN_HPP_NAMESPACE::AttachmentLoadOp loadOp = VULKAN_HPP_NAMESPACE::AttachmentLoadOp::eLoad;
  4227. VULKAN_HPP_NAMESPACE::AttachmentStoreOp storeOp = VULKAN_HPP_NAMESPACE::AttachmentStoreOp::eStore;
  4228. VULKAN_HPP_NAMESPACE::AttachmentLoadOp stencilLoadOp = VULKAN_HPP_NAMESPACE::AttachmentLoadOp::eLoad;
  4229. VULKAN_HPP_NAMESPACE::AttachmentStoreOp stencilStoreOp = VULKAN_HPP_NAMESPACE::AttachmentStoreOp::eStore;
  4230. VULKAN_HPP_NAMESPACE::ImageLayout initialLayout = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined;
  4231. VULKAN_HPP_NAMESPACE::ImageLayout finalLayout = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined;
  4232. };
  4233. struct AttachmentDescription2
  4234. {
  4235. using NativeType = VkAttachmentDescription2;
  4236. static const bool allowDuplicate = false;
  4237. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eAttachmentDescription2;
  4238. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  4239. VULKAN_HPP_CONSTEXPR AttachmentDescription2( VULKAN_HPP_NAMESPACE::AttachmentDescriptionFlags flags_ = {},
  4240. VULKAN_HPP_NAMESPACE::Format format_ = VULKAN_HPP_NAMESPACE::Format::eUndefined,
  4241. VULKAN_HPP_NAMESPACE::SampleCountFlagBits samples_ = VULKAN_HPP_NAMESPACE::SampleCountFlagBits::e1,
  4242. VULKAN_HPP_NAMESPACE::AttachmentLoadOp loadOp_ = VULKAN_HPP_NAMESPACE::AttachmentLoadOp::eLoad,
  4243. VULKAN_HPP_NAMESPACE::AttachmentStoreOp storeOp_ = VULKAN_HPP_NAMESPACE::AttachmentStoreOp::eStore,
  4244. VULKAN_HPP_NAMESPACE::AttachmentLoadOp stencilLoadOp_ = VULKAN_HPP_NAMESPACE::AttachmentLoadOp::eLoad,
  4245. VULKAN_HPP_NAMESPACE::AttachmentStoreOp stencilStoreOp_ = VULKAN_HPP_NAMESPACE::AttachmentStoreOp::eStore,
  4246. VULKAN_HPP_NAMESPACE::ImageLayout initialLayout_ = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined,
  4247. VULKAN_HPP_NAMESPACE::ImageLayout finalLayout_ = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined,
  4248. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  4249. : pNext( pNext_ )
  4250. , flags( flags_ )
  4251. , format( format_ )
  4252. , samples( samples_ )
  4253. , loadOp( loadOp_ )
  4254. , storeOp( storeOp_ )
  4255. , stencilLoadOp( stencilLoadOp_ )
  4256. , stencilStoreOp( stencilStoreOp_ )
  4257. , initialLayout( initialLayout_ )
  4258. , finalLayout( finalLayout_ )
  4259. {
  4260. }
  4261. VULKAN_HPP_CONSTEXPR AttachmentDescription2( AttachmentDescription2 const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  4262. AttachmentDescription2( VkAttachmentDescription2 const & rhs ) VULKAN_HPP_NOEXCEPT
  4263. : AttachmentDescription2( *reinterpret_cast<AttachmentDescription2 const *>( &rhs ) )
  4264. {
  4265. }
  4266. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  4267. AttachmentDescription2 & operator=( AttachmentDescription2 const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  4268. AttachmentDescription2 & operator=( VkAttachmentDescription2 const & rhs ) VULKAN_HPP_NOEXCEPT
  4269. {
  4270. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::AttachmentDescription2 const *>( &rhs );
  4271. return *this;
  4272. }
  4273. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  4274. VULKAN_HPP_CONSTEXPR_14 AttachmentDescription2 & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  4275. {
  4276. pNext = pNext_;
  4277. return *this;
  4278. }
  4279. VULKAN_HPP_CONSTEXPR_14 AttachmentDescription2 & setFlags( VULKAN_HPP_NAMESPACE::AttachmentDescriptionFlags flags_ ) VULKAN_HPP_NOEXCEPT
  4280. {
  4281. flags = flags_;
  4282. return *this;
  4283. }
  4284. VULKAN_HPP_CONSTEXPR_14 AttachmentDescription2 & setFormat( VULKAN_HPP_NAMESPACE::Format format_ ) VULKAN_HPP_NOEXCEPT
  4285. {
  4286. format = format_;
  4287. return *this;
  4288. }
  4289. VULKAN_HPP_CONSTEXPR_14 AttachmentDescription2 & setSamples( VULKAN_HPP_NAMESPACE::SampleCountFlagBits samples_ ) VULKAN_HPP_NOEXCEPT
  4290. {
  4291. samples = samples_;
  4292. return *this;
  4293. }
  4294. VULKAN_HPP_CONSTEXPR_14 AttachmentDescription2 & setLoadOp( VULKAN_HPP_NAMESPACE::AttachmentLoadOp loadOp_ ) VULKAN_HPP_NOEXCEPT
  4295. {
  4296. loadOp = loadOp_;
  4297. return *this;
  4298. }
  4299. VULKAN_HPP_CONSTEXPR_14 AttachmentDescription2 & setStoreOp( VULKAN_HPP_NAMESPACE::AttachmentStoreOp storeOp_ ) VULKAN_HPP_NOEXCEPT
  4300. {
  4301. storeOp = storeOp_;
  4302. return *this;
  4303. }
  4304. VULKAN_HPP_CONSTEXPR_14 AttachmentDescription2 & setStencilLoadOp( VULKAN_HPP_NAMESPACE::AttachmentLoadOp stencilLoadOp_ ) VULKAN_HPP_NOEXCEPT
  4305. {
  4306. stencilLoadOp = stencilLoadOp_;
  4307. return *this;
  4308. }
  4309. VULKAN_HPP_CONSTEXPR_14 AttachmentDescription2 & setStencilStoreOp( VULKAN_HPP_NAMESPACE::AttachmentStoreOp stencilStoreOp_ ) VULKAN_HPP_NOEXCEPT
  4310. {
  4311. stencilStoreOp = stencilStoreOp_;
  4312. return *this;
  4313. }
  4314. VULKAN_HPP_CONSTEXPR_14 AttachmentDescription2 & setInitialLayout( VULKAN_HPP_NAMESPACE::ImageLayout initialLayout_ ) VULKAN_HPP_NOEXCEPT
  4315. {
  4316. initialLayout = initialLayout_;
  4317. return *this;
  4318. }
  4319. VULKAN_HPP_CONSTEXPR_14 AttachmentDescription2 & setFinalLayout( VULKAN_HPP_NAMESPACE::ImageLayout finalLayout_ ) VULKAN_HPP_NOEXCEPT
  4320. {
  4321. finalLayout = finalLayout_;
  4322. return *this;
  4323. }
  4324. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  4325. operator VkAttachmentDescription2 const &() const VULKAN_HPP_NOEXCEPT
  4326. {
  4327. return *reinterpret_cast<const VkAttachmentDescription2 *>( this );
  4328. }
  4329. operator VkAttachmentDescription2 &() VULKAN_HPP_NOEXCEPT
  4330. {
  4331. return *reinterpret_cast<VkAttachmentDescription2 *>( this );
  4332. }
  4333. #if defined( VULKAN_HPP_USE_REFLECT )
  4334. # if 14 <= VULKAN_HPP_CPP_VERSION
  4335. auto
  4336. # else
  4337. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  4338. const void * const &,
  4339. VULKAN_HPP_NAMESPACE::AttachmentDescriptionFlags const &,
  4340. VULKAN_HPP_NAMESPACE::Format const &,
  4341. VULKAN_HPP_NAMESPACE::SampleCountFlagBits const &,
  4342. VULKAN_HPP_NAMESPACE::AttachmentLoadOp const &,
  4343. VULKAN_HPP_NAMESPACE::AttachmentStoreOp const &,
  4344. VULKAN_HPP_NAMESPACE::AttachmentLoadOp const &,
  4345. VULKAN_HPP_NAMESPACE::AttachmentStoreOp const &,
  4346. VULKAN_HPP_NAMESPACE::ImageLayout const &,
  4347. VULKAN_HPP_NAMESPACE::ImageLayout const &>
  4348. # endif
  4349. reflect() const VULKAN_HPP_NOEXCEPT
  4350. {
  4351. return std::tie( sType, pNext, flags, format, samples, loadOp, storeOp, stencilLoadOp, stencilStoreOp, initialLayout, finalLayout );
  4352. }
  4353. #endif
  4354. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  4355. auto operator<=>( AttachmentDescription2 const & ) const = default;
  4356. #else
  4357. bool operator==( AttachmentDescription2 const & rhs ) const VULKAN_HPP_NOEXCEPT
  4358. {
  4359. # if defined( VULKAN_HPP_USE_REFLECT )
  4360. return this->reflect() == rhs.reflect();
  4361. # else
  4362. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( flags == rhs.flags ) && ( format == rhs.format ) && ( samples == rhs.samples ) &&
  4363. ( loadOp == rhs.loadOp ) && ( storeOp == rhs.storeOp ) && ( stencilLoadOp == rhs.stencilLoadOp ) && ( stencilStoreOp == rhs.stencilStoreOp ) &&
  4364. ( initialLayout == rhs.initialLayout ) && ( finalLayout == rhs.finalLayout );
  4365. # endif
  4366. }
  4367. bool operator!=( AttachmentDescription2 const & rhs ) const VULKAN_HPP_NOEXCEPT
  4368. {
  4369. return !operator==( rhs );
  4370. }
  4371. #endif
  4372. public:
  4373. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eAttachmentDescription2;
  4374. const void * pNext = {};
  4375. VULKAN_HPP_NAMESPACE::AttachmentDescriptionFlags flags = {};
  4376. VULKAN_HPP_NAMESPACE::Format format = VULKAN_HPP_NAMESPACE::Format::eUndefined;
  4377. VULKAN_HPP_NAMESPACE::SampleCountFlagBits samples = VULKAN_HPP_NAMESPACE::SampleCountFlagBits::e1;
  4378. VULKAN_HPP_NAMESPACE::AttachmentLoadOp loadOp = VULKAN_HPP_NAMESPACE::AttachmentLoadOp::eLoad;
  4379. VULKAN_HPP_NAMESPACE::AttachmentStoreOp storeOp = VULKAN_HPP_NAMESPACE::AttachmentStoreOp::eStore;
  4380. VULKAN_HPP_NAMESPACE::AttachmentLoadOp stencilLoadOp = VULKAN_HPP_NAMESPACE::AttachmentLoadOp::eLoad;
  4381. VULKAN_HPP_NAMESPACE::AttachmentStoreOp stencilStoreOp = VULKAN_HPP_NAMESPACE::AttachmentStoreOp::eStore;
  4382. VULKAN_HPP_NAMESPACE::ImageLayout initialLayout = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined;
  4383. VULKAN_HPP_NAMESPACE::ImageLayout finalLayout = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined;
  4384. };
  4385. template <>
  4386. struct CppType<StructureType, StructureType::eAttachmentDescription2>
  4387. {
  4388. using Type = AttachmentDescription2;
  4389. };
  4390. using AttachmentDescription2KHR = AttachmentDescription2;
  4391. struct AttachmentDescriptionStencilLayout
  4392. {
  4393. using NativeType = VkAttachmentDescriptionStencilLayout;
  4394. static const bool allowDuplicate = false;
  4395. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eAttachmentDescriptionStencilLayout;
  4396. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  4397. VULKAN_HPP_CONSTEXPR
  4398. AttachmentDescriptionStencilLayout( VULKAN_HPP_NAMESPACE::ImageLayout stencilInitialLayout_ = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined,
  4399. VULKAN_HPP_NAMESPACE::ImageLayout stencilFinalLayout_ = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined,
  4400. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  4401. : pNext( pNext_ )
  4402. , stencilInitialLayout( stencilInitialLayout_ )
  4403. , stencilFinalLayout( stencilFinalLayout_ )
  4404. {
  4405. }
  4406. VULKAN_HPP_CONSTEXPR AttachmentDescriptionStencilLayout( AttachmentDescriptionStencilLayout const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  4407. AttachmentDescriptionStencilLayout( VkAttachmentDescriptionStencilLayout const & rhs ) VULKAN_HPP_NOEXCEPT
  4408. : AttachmentDescriptionStencilLayout( *reinterpret_cast<AttachmentDescriptionStencilLayout const *>( &rhs ) )
  4409. {
  4410. }
  4411. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  4412. AttachmentDescriptionStencilLayout & operator=( AttachmentDescriptionStencilLayout const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  4413. AttachmentDescriptionStencilLayout & operator=( VkAttachmentDescriptionStencilLayout const & rhs ) VULKAN_HPP_NOEXCEPT
  4414. {
  4415. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::AttachmentDescriptionStencilLayout const *>( &rhs );
  4416. return *this;
  4417. }
  4418. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  4419. VULKAN_HPP_CONSTEXPR_14 AttachmentDescriptionStencilLayout & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
  4420. {
  4421. pNext = pNext_;
  4422. return *this;
  4423. }
  4424. VULKAN_HPP_CONSTEXPR_14 AttachmentDescriptionStencilLayout &
  4425. setStencilInitialLayout( VULKAN_HPP_NAMESPACE::ImageLayout stencilInitialLayout_ ) VULKAN_HPP_NOEXCEPT
  4426. {
  4427. stencilInitialLayout = stencilInitialLayout_;
  4428. return *this;
  4429. }
  4430. VULKAN_HPP_CONSTEXPR_14 AttachmentDescriptionStencilLayout &
  4431. setStencilFinalLayout( VULKAN_HPP_NAMESPACE::ImageLayout stencilFinalLayout_ ) VULKAN_HPP_NOEXCEPT
  4432. {
  4433. stencilFinalLayout = stencilFinalLayout_;
  4434. return *this;
  4435. }
  4436. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  4437. operator VkAttachmentDescriptionStencilLayout const &() const VULKAN_HPP_NOEXCEPT
  4438. {
  4439. return *reinterpret_cast<const VkAttachmentDescriptionStencilLayout *>( this );
  4440. }
  4441. operator VkAttachmentDescriptionStencilLayout &() VULKAN_HPP_NOEXCEPT
  4442. {
  4443. return *reinterpret_cast<VkAttachmentDescriptionStencilLayout *>( this );
  4444. }
  4445. #if defined( VULKAN_HPP_USE_REFLECT )
  4446. # if 14 <= VULKAN_HPP_CPP_VERSION
  4447. auto
  4448. # else
  4449. std::
  4450. tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::ImageLayout const &, VULKAN_HPP_NAMESPACE::ImageLayout const &>
  4451. # endif
  4452. reflect() const VULKAN_HPP_NOEXCEPT
  4453. {
  4454. return std::tie( sType, pNext, stencilInitialLayout, stencilFinalLayout );
  4455. }
  4456. #endif
  4457. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  4458. auto operator<=>( AttachmentDescriptionStencilLayout const & ) const = default;
  4459. #else
  4460. bool operator==( AttachmentDescriptionStencilLayout const & rhs ) const VULKAN_HPP_NOEXCEPT
  4461. {
  4462. # if defined( VULKAN_HPP_USE_REFLECT )
  4463. return this->reflect() == rhs.reflect();
  4464. # else
  4465. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( stencilInitialLayout == rhs.stencilInitialLayout ) &&
  4466. ( stencilFinalLayout == rhs.stencilFinalLayout );
  4467. # endif
  4468. }
  4469. bool operator!=( AttachmentDescriptionStencilLayout const & rhs ) const VULKAN_HPP_NOEXCEPT
  4470. {
  4471. return !operator==( rhs );
  4472. }
  4473. #endif
  4474. public:
  4475. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eAttachmentDescriptionStencilLayout;
  4476. void * pNext = {};
  4477. VULKAN_HPP_NAMESPACE::ImageLayout stencilInitialLayout = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined;
  4478. VULKAN_HPP_NAMESPACE::ImageLayout stencilFinalLayout = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined;
  4479. };
  4480. template <>
  4481. struct CppType<StructureType, StructureType::eAttachmentDescriptionStencilLayout>
  4482. {
  4483. using Type = AttachmentDescriptionStencilLayout;
  4484. };
  4485. using AttachmentDescriptionStencilLayoutKHR = AttachmentDescriptionStencilLayout;
  4486. struct AttachmentReference
  4487. {
  4488. using NativeType = VkAttachmentReference;
  4489. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  4490. VULKAN_HPP_CONSTEXPR AttachmentReference( uint32_t attachment_ = {},
  4491. VULKAN_HPP_NAMESPACE::ImageLayout layout_ = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined ) VULKAN_HPP_NOEXCEPT
  4492. : attachment( attachment_ )
  4493. , layout( layout_ )
  4494. {
  4495. }
  4496. VULKAN_HPP_CONSTEXPR AttachmentReference( AttachmentReference const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  4497. AttachmentReference( VkAttachmentReference const & rhs ) VULKAN_HPP_NOEXCEPT : AttachmentReference( *reinterpret_cast<AttachmentReference const *>( &rhs ) )
  4498. {
  4499. }
  4500. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  4501. AttachmentReference & operator=( AttachmentReference const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  4502. AttachmentReference & operator=( VkAttachmentReference const & rhs ) VULKAN_HPP_NOEXCEPT
  4503. {
  4504. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::AttachmentReference const *>( &rhs );
  4505. return *this;
  4506. }
  4507. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  4508. VULKAN_HPP_CONSTEXPR_14 AttachmentReference & setAttachment( uint32_t attachment_ ) VULKAN_HPP_NOEXCEPT
  4509. {
  4510. attachment = attachment_;
  4511. return *this;
  4512. }
  4513. VULKAN_HPP_CONSTEXPR_14 AttachmentReference & setLayout( VULKAN_HPP_NAMESPACE::ImageLayout layout_ ) VULKAN_HPP_NOEXCEPT
  4514. {
  4515. layout = layout_;
  4516. return *this;
  4517. }
  4518. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  4519. operator VkAttachmentReference const &() const VULKAN_HPP_NOEXCEPT
  4520. {
  4521. return *reinterpret_cast<const VkAttachmentReference *>( this );
  4522. }
  4523. operator VkAttachmentReference &() VULKAN_HPP_NOEXCEPT
  4524. {
  4525. return *reinterpret_cast<VkAttachmentReference *>( this );
  4526. }
  4527. #if defined( VULKAN_HPP_USE_REFLECT )
  4528. # if 14 <= VULKAN_HPP_CPP_VERSION
  4529. auto
  4530. # else
  4531. std::tuple<uint32_t const &, VULKAN_HPP_NAMESPACE::ImageLayout const &>
  4532. # endif
  4533. reflect() const VULKAN_HPP_NOEXCEPT
  4534. {
  4535. return std::tie( attachment, layout );
  4536. }
  4537. #endif
  4538. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  4539. auto operator<=>( AttachmentReference const & ) const = default;
  4540. #else
  4541. bool operator==( AttachmentReference const & rhs ) const VULKAN_HPP_NOEXCEPT
  4542. {
  4543. # if defined( VULKAN_HPP_USE_REFLECT )
  4544. return this->reflect() == rhs.reflect();
  4545. # else
  4546. return ( attachment == rhs.attachment ) && ( layout == rhs.layout );
  4547. # endif
  4548. }
  4549. bool operator!=( AttachmentReference const & rhs ) const VULKAN_HPP_NOEXCEPT
  4550. {
  4551. return !operator==( rhs );
  4552. }
  4553. #endif
  4554. public:
  4555. uint32_t attachment = {};
  4556. VULKAN_HPP_NAMESPACE::ImageLayout layout = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined;
  4557. };
  4558. struct AttachmentReference2
  4559. {
  4560. using NativeType = VkAttachmentReference2;
  4561. static const bool allowDuplicate = false;
  4562. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eAttachmentReference2;
  4563. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  4564. VULKAN_HPP_CONSTEXPR AttachmentReference2( uint32_t attachment_ = {},
  4565. VULKAN_HPP_NAMESPACE::ImageLayout layout_ = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined,
  4566. VULKAN_HPP_NAMESPACE::ImageAspectFlags aspectMask_ = {},
  4567. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  4568. : pNext( pNext_ )
  4569. , attachment( attachment_ )
  4570. , layout( layout_ )
  4571. , aspectMask( aspectMask_ )
  4572. {
  4573. }
  4574. VULKAN_HPP_CONSTEXPR AttachmentReference2( AttachmentReference2 const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  4575. AttachmentReference2( VkAttachmentReference2 const & rhs ) VULKAN_HPP_NOEXCEPT
  4576. : AttachmentReference2( *reinterpret_cast<AttachmentReference2 const *>( &rhs ) )
  4577. {
  4578. }
  4579. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  4580. AttachmentReference2 & operator=( AttachmentReference2 const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  4581. AttachmentReference2 & operator=( VkAttachmentReference2 const & rhs ) VULKAN_HPP_NOEXCEPT
  4582. {
  4583. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::AttachmentReference2 const *>( &rhs );
  4584. return *this;
  4585. }
  4586. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  4587. VULKAN_HPP_CONSTEXPR_14 AttachmentReference2 & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  4588. {
  4589. pNext = pNext_;
  4590. return *this;
  4591. }
  4592. VULKAN_HPP_CONSTEXPR_14 AttachmentReference2 & setAttachment( uint32_t attachment_ ) VULKAN_HPP_NOEXCEPT
  4593. {
  4594. attachment = attachment_;
  4595. return *this;
  4596. }
  4597. VULKAN_HPP_CONSTEXPR_14 AttachmentReference2 & setLayout( VULKAN_HPP_NAMESPACE::ImageLayout layout_ ) VULKAN_HPP_NOEXCEPT
  4598. {
  4599. layout = layout_;
  4600. return *this;
  4601. }
  4602. VULKAN_HPP_CONSTEXPR_14 AttachmentReference2 & setAspectMask( VULKAN_HPP_NAMESPACE::ImageAspectFlags aspectMask_ ) VULKAN_HPP_NOEXCEPT
  4603. {
  4604. aspectMask = aspectMask_;
  4605. return *this;
  4606. }
  4607. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  4608. operator VkAttachmentReference2 const &() const VULKAN_HPP_NOEXCEPT
  4609. {
  4610. return *reinterpret_cast<const VkAttachmentReference2 *>( this );
  4611. }
  4612. operator VkAttachmentReference2 &() VULKAN_HPP_NOEXCEPT
  4613. {
  4614. return *reinterpret_cast<VkAttachmentReference2 *>( this );
  4615. }
  4616. #if defined( VULKAN_HPP_USE_REFLECT )
  4617. # if 14 <= VULKAN_HPP_CPP_VERSION
  4618. auto
  4619. # else
  4620. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  4621. const void * const &,
  4622. uint32_t const &,
  4623. VULKAN_HPP_NAMESPACE::ImageLayout const &,
  4624. VULKAN_HPP_NAMESPACE::ImageAspectFlags const &>
  4625. # endif
  4626. reflect() const VULKAN_HPP_NOEXCEPT
  4627. {
  4628. return std::tie( sType, pNext, attachment, layout, aspectMask );
  4629. }
  4630. #endif
  4631. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  4632. auto operator<=>( AttachmentReference2 const & ) const = default;
  4633. #else
  4634. bool operator==( AttachmentReference2 const & rhs ) const VULKAN_HPP_NOEXCEPT
  4635. {
  4636. # if defined( VULKAN_HPP_USE_REFLECT )
  4637. return this->reflect() == rhs.reflect();
  4638. # else
  4639. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( attachment == rhs.attachment ) && ( layout == rhs.layout ) &&
  4640. ( aspectMask == rhs.aspectMask );
  4641. # endif
  4642. }
  4643. bool operator!=( AttachmentReference2 const & rhs ) const VULKAN_HPP_NOEXCEPT
  4644. {
  4645. return !operator==( rhs );
  4646. }
  4647. #endif
  4648. public:
  4649. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eAttachmentReference2;
  4650. const void * pNext = {};
  4651. uint32_t attachment = {};
  4652. VULKAN_HPP_NAMESPACE::ImageLayout layout = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined;
  4653. VULKAN_HPP_NAMESPACE::ImageAspectFlags aspectMask = {};
  4654. };
  4655. template <>
  4656. struct CppType<StructureType, StructureType::eAttachmentReference2>
  4657. {
  4658. using Type = AttachmentReference2;
  4659. };
  4660. using AttachmentReference2KHR = AttachmentReference2;
  4661. struct AttachmentReferenceStencilLayout
  4662. {
  4663. using NativeType = VkAttachmentReferenceStencilLayout;
  4664. static const bool allowDuplicate = false;
  4665. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eAttachmentReferenceStencilLayout;
  4666. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  4667. VULKAN_HPP_CONSTEXPR AttachmentReferenceStencilLayout( VULKAN_HPP_NAMESPACE::ImageLayout stencilLayout_ = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined,
  4668. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  4669. : pNext( pNext_ )
  4670. , stencilLayout( stencilLayout_ )
  4671. {
  4672. }
  4673. VULKAN_HPP_CONSTEXPR AttachmentReferenceStencilLayout( AttachmentReferenceStencilLayout const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  4674. AttachmentReferenceStencilLayout( VkAttachmentReferenceStencilLayout const & rhs ) VULKAN_HPP_NOEXCEPT
  4675. : AttachmentReferenceStencilLayout( *reinterpret_cast<AttachmentReferenceStencilLayout const *>( &rhs ) )
  4676. {
  4677. }
  4678. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  4679. AttachmentReferenceStencilLayout & operator=( AttachmentReferenceStencilLayout const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  4680. AttachmentReferenceStencilLayout & operator=( VkAttachmentReferenceStencilLayout const & rhs ) VULKAN_HPP_NOEXCEPT
  4681. {
  4682. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::AttachmentReferenceStencilLayout const *>( &rhs );
  4683. return *this;
  4684. }
  4685. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  4686. VULKAN_HPP_CONSTEXPR_14 AttachmentReferenceStencilLayout & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
  4687. {
  4688. pNext = pNext_;
  4689. return *this;
  4690. }
  4691. VULKAN_HPP_CONSTEXPR_14 AttachmentReferenceStencilLayout & setStencilLayout( VULKAN_HPP_NAMESPACE::ImageLayout stencilLayout_ ) VULKAN_HPP_NOEXCEPT
  4692. {
  4693. stencilLayout = stencilLayout_;
  4694. return *this;
  4695. }
  4696. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  4697. operator VkAttachmentReferenceStencilLayout const &() const VULKAN_HPP_NOEXCEPT
  4698. {
  4699. return *reinterpret_cast<const VkAttachmentReferenceStencilLayout *>( this );
  4700. }
  4701. operator VkAttachmentReferenceStencilLayout &() VULKAN_HPP_NOEXCEPT
  4702. {
  4703. return *reinterpret_cast<VkAttachmentReferenceStencilLayout *>( this );
  4704. }
  4705. #if defined( VULKAN_HPP_USE_REFLECT )
  4706. # if 14 <= VULKAN_HPP_CPP_VERSION
  4707. auto
  4708. # else
  4709. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::ImageLayout const &>
  4710. # endif
  4711. reflect() const VULKAN_HPP_NOEXCEPT
  4712. {
  4713. return std::tie( sType, pNext, stencilLayout );
  4714. }
  4715. #endif
  4716. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  4717. auto operator<=>( AttachmentReferenceStencilLayout const & ) const = default;
  4718. #else
  4719. bool operator==( AttachmentReferenceStencilLayout const & rhs ) const VULKAN_HPP_NOEXCEPT
  4720. {
  4721. # if defined( VULKAN_HPP_USE_REFLECT )
  4722. return this->reflect() == rhs.reflect();
  4723. # else
  4724. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( stencilLayout == rhs.stencilLayout );
  4725. # endif
  4726. }
  4727. bool operator!=( AttachmentReferenceStencilLayout const & rhs ) const VULKAN_HPP_NOEXCEPT
  4728. {
  4729. return !operator==( rhs );
  4730. }
  4731. #endif
  4732. public:
  4733. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eAttachmentReferenceStencilLayout;
  4734. void * pNext = {};
  4735. VULKAN_HPP_NAMESPACE::ImageLayout stencilLayout = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined;
  4736. };
  4737. template <>
  4738. struct CppType<StructureType, StructureType::eAttachmentReferenceStencilLayout>
  4739. {
  4740. using Type = AttachmentReferenceStencilLayout;
  4741. };
  4742. using AttachmentReferenceStencilLayoutKHR = AttachmentReferenceStencilLayout;
  4743. struct AttachmentSampleCountInfoAMD
  4744. {
  4745. using NativeType = VkAttachmentSampleCountInfoAMD;
  4746. static const bool allowDuplicate = false;
  4747. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eAttachmentSampleCountInfoAMD;
  4748. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  4749. VULKAN_HPP_CONSTEXPR
  4750. AttachmentSampleCountInfoAMD( uint32_t colorAttachmentCount_ = {},
  4751. const VULKAN_HPP_NAMESPACE::SampleCountFlagBits * pColorAttachmentSamples_ = {},
  4752. VULKAN_HPP_NAMESPACE::SampleCountFlagBits depthStencilAttachmentSamples_ = VULKAN_HPP_NAMESPACE::SampleCountFlagBits::e1,
  4753. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  4754. : pNext( pNext_ )
  4755. , colorAttachmentCount( colorAttachmentCount_ )
  4756. , pColorAttachmentSamples( pColorAttachmentSamples_ )
  4757. , depthStencilAttachmentSamples( depthStencilAttachmentSamples_ )
  4758. {
  4759. }
  4760. VULKAN_HPP_CONSTEXPR AttachmentSampleCountInfoAMD( AttachmentSampleCountInfoAMD const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  4761. AttachmentSampleCountInfoAMD( VkAttachmentSampleCountInfoAMD const & rhs ) VULKAN_HPP_NOEXCEPT
  4762. : AttachmentSampleCountInfoAMD( *reinterpret_cast<AttachmentSampleCountInfoAMD const *>( &rhs ) )
  4763. {
  4764. }
  4765. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  4766. AttachmentSampleCountInfoAMD(
  4767. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::SampleCountFlagBits> const & colorAttachmentSamples_,
  4768. VULKAN_HPP_NAMESPACE::SampleCountFlagBits depthStencilAttachmentSamples_ = VULKAN_HPP_NAMESPACE::SampleCountFlagBits::e1,
  4769. const void * pNext_ = nullptr )
  4770. : pNext( pNext_ )
  4771. , colorAttachmentCount( static_cast<uint32_t>( colorAttachmentSamples_.size() ) )
  4772. , pColorAttachmentSamples( colorAttachmentSamples_.data() )
  4773. , depthStencilAttachmentSamples( depthStencilAttachmentSamples_ )
  4774. {
  4775. }
  4776. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  4777. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  4778. AttachmentSampleCountInfoAMD & operator=( AttachmentSampleCountInfoAMD const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  4779. AttachmentSampleCountInfoAMD & operator=( VkAttachmentSampleCountInfoAMD const & rhs ) VULKAN_HPP_NOEXCEPT
  4780. {
  4781. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::AttachmentSampleCountInfoAMD const *>( &rhs );
  4782. return *this;
  4783. }
  4784. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  4785. VULKAN_HPP_CONSTEXPR_14 AttachmentSampleCountInfoAMD & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  4786. {
  4787. pNext = pNext_;
  4788. return *this;
  4789. }
  4790. VULKAN_HPP_CONSTEXPR_14 AttachmentSampleCountInfoAMD & setColorAttachmentCount( uint32_t colorAttachmentCount_ ) VULKAN_HPP_NOEXCEPT
  4791. {
  4792. colorAttachmentCount = colorAttachmentCount_;
  4793. return *this;
  4794. }
  4795. VULKAN_HPP_CONSTEXPR_14 AttachmentSampleCountInfoAMD &
  4796. setPColorAttachmentSamples( const VULKAN_HPP_NAMESPACE::SampleCountFlagBits * pColorAttachmentSamples_ ) VULKAN_HPP_NOEXCEPT
  4797. {
  4798. pColorAttachmentSamples = pColorAttachmentSamples_;
  4799. return *this;
  4800. }
  4801. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  4802. AttachmentSampleCountInfoAMD & setColorAttachmentSamples(
  4803. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::SampleCountFlagBits> const & colorAttachmentSamples_ ) VULKAN_HPP_NOEXCEPT
  4804. {
  4805. colorAttachmentCount = static_cast<uint32_t>( colorAttachmentSamples_.size() );
  4806. pColorAttachmentSamples = colorAttachmentSamples_.data();
  4807. return *this;
  4808. }
  4809. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  4810. VULKAN_HPP_CONSTEXPR_14 AttachmentSampleCountInfoAMD &
  4811. setDepthStencilAttachmentSamples( VULKAN_HPP_NAMESPACE::SampleCountFlagBits depthStencilAttachmentSamples_ ) VULKAN_HPP_NOEXCEPT
  4812. {
  4813. depthStencilAttachmentSamples = depthStencilAttachmentSamples_;
  4814. return *this;
  4815. }
  4816. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  4817. operator VkAttachmentSampleCountInfoAMD const &() const VULKAN_HPP_NOEXCEPT
  4818. {
  4819. return *reinterpret_cast<const VkAttachmentSampleCountInfoAMD *>( this );
  4820. }
  4821. operator VkAttachmentSampleCountInfoAMD &() VULKAN_HPP_NOEXCEPT
  4822. {
  4823. return *reinterpret_cast<VkAttachmentSampleCountInfoAMD *>( this );
  4824. }
  4825. #if defined( VULKAN_HPP_USE_REFLECT )
  4826. # if 14 <= VULKAN_HPP_CPP_VERSION
  4827. auto
  4828. # else
  4829. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  4830. const void * const &,
  4831. uint32_t const &,
  4832. const VULKAN_HPP_NAMESPACE::SampleCountFlagBits * const &,
  4833. VULKAN_HPP_NAMESPACE::SampleCountFlagBits const &>
  4834. # endif
  4835. reflect() const VULKAN_HPP_NOEXCEPT
  4836. {
  4837. return std::tie( sType, pNext, colorAttachmentCount, pColorAttachmentSamples, depthStencilAttachmentSamples );
  4838. }
  4839. #endif
  4840. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  4841. auto operator<=>( AttachmentSampleCountInfoAMD const & ) const = default;
  4842. #else
  4843. bool operator==( AttachmentSampleCountInfoAMD const & rhs ) const VULKAN_HPP_NOEXCEPT
  4844. {
  4845. # if defined( VULKAN_HPP_USE_REFLECT )
  4846. return this->reflect() == rhs.reflect();
  4847. # else
  4848. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( colorAttachmentCount == rhs.colorAttachmentCount ) &&
  4849. ( pColorAttachmentSamples == rhs.pColorAttachmentSamples ) && ( depthStencilAttachmentSamples == rhs.depthStencilAttachmentSamples );
  4850. # endif
  4851. }
  4852. bool operator!=( AttachmentSampleCountInfoAMD const & rhs ) const VULKAN_HPP_NOEXCEPT
  4853. {
  4854. return !operator==( rhs );
  4855. }
  4856. #endif
  4857. public:
  4858. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eAttachmentSampleCountInfoAMD;
  4859. const void * pNext = {};
  4860. uint32_t colorAttachmentCount = {};
  4861. const VULKAN_HPP_NAMESPACE::SampleCountFlagBits * pColorAttachmentSamples = {};
  4862. VULKAN_HPP_NAMESPACE::SampleCountFlagBits depthStencilAttachmentSamples = VULKAN_HPP_NAMESPACE::SampleCountFlagBits::e1;
  4863. };
  4864. template <>
  4865. struct CppType<StructureType, StructureType::eAttachmentSampleCountInfoAMD>
  4866. {
  4867. using Type = AttachmentSampleCountInfoAMD;
  4868. };
  4869. using AttachmentSampleCountInfoNV = AttachmentSampleCountInfoAMD;
  4870. struct Extent2D
  4871. {
  4872. using NativeType = VkExtent2D;
  4873. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  4874. VULKAN_HPP_CONSTEXPR Extent2D( uint32_t width_ = {}, uint32_t height_ = {} ) VULKAN_HPP_NOEXCEPT
  4875. : width( width_ )
  4876. , height( height_ )
  4877. {
  4878. }
  4879. VULKAN_HPP_CONSTEXPR Extent2D( Extent2D const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  4880. Extent2D( VkExtent2D const & rhs ) VULKAN_HPP_NOEXCEPT : Extent2D( *reinterpret_cast<Extent2D const *>( &rhs ) ) {}
  4881. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  4882. Extent2D & operator=( Extent2D const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  4883. Extent2D & operator=( VkExtent2D const & rhs ) VULKAN_HPP_NOEXCEPT
  4884. {
  4885. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::Extent2D const *>( &rhs );
  4886. return *this;
  4887. }
  4888. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  4889. VULKAN_HPP_CONSTEXPR_14 Extent2D & setWidth( uint32_t width_ ) VULKAN_HPP_NOEXCEPT
  4890. {
  4891. width = width_;
  4892. return *this;
  4893. }
  4894. VULKAN_HPP_CONSTEXPR_14 Extent2D & setHeight( uint32_t height_ ) VULKAN_HPP_NOEXCEPT
  4895. {
  4896. height = height_;
  4897. return *this;
  4898. }
  4899. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  4900. operator VkExtent2D const &() const VULKAN_HPP_NOEXCEPT
  4901. {
  4902. return *reinterpret_cast<const VkExtent2D *>( this );
  4903. }
  4904. operator VkExtent2D &() VULKAN_HPP_NOEXCEPT
  4905. {
  4906. return *reinterpret_cast<VkExtent2D *>( this );
  4907. }
  4908. #if defined( VULKAN_HPP_USE_REFLECT )
  4909. # if 14 <= VULKAN_HPP_CPP_VERSION
  4910. auto
  4911. # else
  4912. std::tuple<uint32_t const &, uint32_t const &>
  4913. # endif
  4914. reflect() const VULKAN_HPP_NOEXCEPT
  4915. {
  4916. return std::tie( width, height );
  4917. }
  4918. #endif
  4919. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  4920. auto operator<=>( Extent2D const & ) const = default;
  4921. #else
  4922. bool operator==( Extent2D const & rhs ) const VULKAN_HPP_NOEXCEPT
  4923. {
  4924. # if defined( VULKAN_HPP_USE_REFLECT )
  4925. return this->reflect() == rhs.reflect();
  4926. # else
  4927. return ( width == rhs.width ) && ( height == rhs.height );
  4928. # endif
  4929. }
  4930. bool operator!=( Extent2D const & rhs ) const VULKAN_HPP_NOEXCEPT
  4931. {
  4932. return !operator==( rhs );
  4933. }
  4934. #endif
  4935. public:
  4936. uint32_t width = {};
  4937. uint32_t height = {};
  4938. };
  4939. struct SampleLocationEXT
  4940. {
  4941. using NativeType = VkSampleLocationEXT;
  4942. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  4943. VULKAN_HPP_CONSTEXPR SampleLocationEXT( float x_ = {}, float y_ = {} ) VULKAN_HPP_NOEXCEPT
  4944. : x( x_ )
  4945. , y( y_ )
  4946. {
  4947. }
  4948. VULKAN_HPP_CONSTEXPR SampleLocationEXT( SampleLocationEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  4949. SampleLocationEXT( VkSampleLocationEXT const & rhs ) VULKAN_HPP_NOEXCEPT : SampleLocationEXT( *reinterpret_cast<SampleLocationEXT const *>( &rhs ) ) {}
  4950. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  4951. SampleLocationEXT & operator=( SampleLocationEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  4952. SampleLocationEXT & operator=( VkSampleLocationEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  4953. {
  4954. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SampleLocationEXT const *>( &rhs );
  4955. return *this;
  4956. }
  4957. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  4958. VULKAN_HPP_CONSTEXPR_14 SampleLocationEXT & setX( float x_ ) VULKAN_HPP_NOEXCEPT
  4959. {
  4960. x = x_;
  4961. return *this;
  4962. }
  4963. VULKAN_HPP_CONSTEXPR_14 SampleLocationEXT & setY( float y_ ) VULKAN_HPP_NOEXCEPT
  4964. {
  4965. y = y_;
  4966. return *this;
  4967. }
  4968. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  4969. operator VkSampleLocationEXT const &() const VULKAN_HPP_NOEXCEPT
  4970. {
  4971. return *reinterpret_cast<const VkSampleLocationEXT *>( this );
  4972. }
  4973. operator VkSampleLocationEXT &() VULKAN_HPP_NOEXCEPT
  4974. {
  4975. return *reinterpret_cast<VkSampleLocationEXT *>( this );
  4976. }
  4977. #if defined( VULKAN_HPP_USE_REFLECT )
  4978. # if 14 <= VULKAN_HPP_CPP_VERSION
  4979. auto
  4980. # else
  4981. std::tuple<float const &, float const &>
  4982. # endif
  4983. reflect() const VULKAN_HPP_NOEXCEPT
  4984. {
  4985. return std::tie( x, y );
  4986. }
  4987. #endif
  4988. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  4989. auto operator<=>( SampleLocationEXT const & ) const = default;
  4990. #else
  4991. bool operator==( SampleLocationEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  4992. {
  4993. # if defined( VULKAN_HPP_USE_REFLECT )
  4994. return this->reflect() == rhs.reflect();
  4995. # else
  4996. return ( x == rhs.x ) && ( y == rhs.y );
  4997. # endif
  4998. }
  4999. bool operator!=( SampleLocationEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  5000. {
  5001. return !operator==( rhs );
  5002. }
  5003. #endif
  5004. public:
  5005. float x = {};
  5006. float y = {};
  5007. };
  5008. struct SampleLocationsInfoEXT
  5009. {
  5010. using NativeType = VkSampleLocationsInfoEXT;
  5011. static const bool allowDuplicate = false;
  5012. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSampleLocationsInfoEXT;
  5013. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  5014. VULKAN_HPP_CONSTEXPR
  5015. SampleLocationsInfoEXT( VULKAN_HPP_NAMESPACE::SampleCountFlagBits sampleLocationsPerPixel_ = VULKAN_HPP_NAMESPACE::SampleCountFlagBits::e1,
  5016. VULKAN_HPP_NAMESPACE::Extent2D sampleLocationGridSize_ = {},
  5017. uint32_t sampleLocationsCount_ = {},
  5018. const VULKAN_HPP_NAMESPACE::SampleLocationEXT * pSampleLocations_ = {},
  5019. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  5020. : pNext( pNext_ )
  5021. , sampleLocationsPerPixel( sampleLocationsPerPixel_ )
  5022. , sampleLocationGridSize( sampleLocationGridSize_ )
  5023. , sampleLocationsCount( sampleLocationsCount_ )
  5024. , pSampleLocations( pSampleLocations_ )
  5025. {
  5026. }
  5027. VULKAN_HPP_CONSTEXPR SampleLocationsInfoEXT( SampleLocationsInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  5028. SampleLocationsInfoEXT( VkSampleLocationsInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  5029. : SampleLocationsInfoEXT( *reinterpret_cast<SampleLocationsInfoEXT const *>( &rhs ) )
  5030. {
  5031. }
  5032. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  5033. SampleLocationsInfoEXT( VULKAN_HPP_NAMESPACE::SampleCountFlagBits sampleLocationsPerPixel_,
  5034. VULKAN_HPP_NAMESPACE::Extent2D sampleLocationGridSize_,
  5035. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::SampleLocationEXT> const & sampleLocations_,
  5036. const void * pNext_ = nullptr )
  5037. : pNext( pNext_ )
  5038. , sampleLocationsPerPixel( sampleLocationsPerPixel_ )
  5039. , sampleLocationGridSize( sampleLocationGridSize_ )
  5040. , sampleLocationsCount( static_cast<uint32_t>( sampleLocations_.size() ) )
  5041. , pSampleLocations( sampleLocations_.data() )
  5042. {
  5043. }
  5044. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  5045. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  5046. SampleLocationsInfoEXT & operator=( SampleLocationsInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  5047. SampleLocationsInfoEXT & operator=( VkSampleLocationsInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  5048. {
  5049. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SampleLocationsInfoEXT const *>( &rhs );
  5050. return *this;
  5051. }
  5052. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  5053. VULKAN_HPP_CONSTEXPR_14 SampleLocationsInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  5054. {
  5055. pNext = pNext_;
  5056. return *this;
  5057. }
  5058. VULKAN_HPP_CONSTEXPR_14 SampleLocationsInfoEXT &
  5059. setSampleLocationsPerPixel( VULKAN_HPP_NAMESPACE::SampleCountFlagBits sampleLocationsPerPixel_ ) VULKAN_HPP_NOEXCEPT
  5060. {
  5061. sampleLocationsPerPixel = sampleLocationsPerPixel_;
  5062. return *this;
  5063. }
  5064. VULKAN_HPP_CONSTEXPR_14 SampleLocationsInfoEXT &
  5065. setSampleLocationGridSize( VULKAN_HPP_NAMESPACE::Extent2D const & sampleLocationGridSize_ ) VULKAN_HPP_NOEXCEPT
  5066. {
  5067. sampleLocationGridSize = sampleLocationGridSize_;
  5068. return *this;
  5069. }
  5070. VULKAN_HPP_CONSTEXPR_14 SampleLocationsInfoEXT & setSampleLocationsCount( uint32_t sampleLocationsCount_ ) VULKAN_HPP_NOEXCEPT
  5071. {
  5072. sampleLocationsCount = sampleLocationsCount_;
  5073. return *this;
  5074. }
  5075. VULKAN_HPP_CONSTEXPR_14 SampleLocationsInfoEXT &
  5076. setPSampleLocations( const VULKAN_HPP_NAMESPACE::SampleLocationEXT * pSampleLocations_ ) VULKAN_HPP_NOEXCEPT
  5077. {
  5078. pSampleLocations = pSampleLocations_;
  5079. return *this;
  5080. }
  5081. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  5082. SampleLocationsInfoEXT & setSampleLocations(
  5083. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::SampleLocationEXT> const & sampleLocations_ ) VULKAN_HPP_NOEXCEPT
  5084. {
  5085. sampleLocationsCount = static_cast<uint32_t>( sampleLocations_.size() );
  5086. pSampleLocations = sampleLocations_.data();
  5087. return *this;
  5088. }
  5089. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  5090. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  5091. operator VkSampleLocationsInfoEXT const &() const VULKAN_HPP_NOEXCEPT
  5092. {
  5093. return *reinterpret_cast<const VkSampleLocationsInfoEXT *>( this );
  5094. }
  5095. operator VkSampleLocationsInfoEXT &() VULKAN_HPP_NOEXCEPT
  5096. {
  5097. return *reinterpret_cast<VkSampleLocationsInfoEXT *>( this );
  5098. }
  5099. #if defined( VULKAN_HPP_USE_REFLECT )
  5100. # if 14 <= VULKAN_HPP_CPP_VERSION
  5101. auto
  5102. # else
  5103. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  5104. const void * const &,
  5105. VULKAN_HPP_NAMESPACE::SampleCountFlagBits const &,
  5106. VULKAN_HPP_NAMESPACE::Extent2D const &,
  5107. uint32_t const &,
  5108. const VULKAN_HPP_NAMESPACE::SampleLocationEXT * const &>
  5109. # endif
  5110. reflect() const VULKAN_HPP_NOEXCEPT
  5111. {
  5112. return std::tie( sType, pNext, sampleLocationsPerPixel, sampleLocationGridSize, sampleLocationsCount, pSampleLocations );
  5113. }
  5114. #endif
  5115. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  5116. auto operator<=>( SampleLocationsInfoEXT const & ) const = default;
  5117. #else
  5118. bool operator==( SampleLocationsInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  5119. {
  5120. # if defined( VULKAN_HPP_USE_REFLECT )
  5121. return this->reflect() == rhs.reflect();
  5122. # else
  5123. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( sampleLocationsPerPixel == rhs.sampleLocationsPerPixel ) &&
  5124. ( sampleLocationGridSize == rhs.sampleLocationGridSize ) && ( sampleLocationsCount == rhs.sampleLocationsCount ) &&
  5125. ( pSampleLocations == rhs.pSampleLocations );
  5126. # endif
  5127. }
  5128. bool operator!=( SampleLocationsInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  5129. {
  5130. return !operator==( rhs );
  5131. }
  5132. #endif
  5133. public:
  5134. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSampleLocationsInfoEXT;
  5135. const void * pNext = {};
  5136. VULKAN_HPP_NAMESPACE::SampleCountFlagBits sampleLocationsPerPixel = VULKAN_HPP_NAMESPACE::SampleCountFlagBits::e1;
  5137. VULKAN_HPP_NAMESPACE::Extent2D sampleLocationGridSize = {};
  5138. uint32_t sampleLocationsCount = {};
  5139. const VULKAN_HPP_NAMESPACE::SampleLocationEXT * pSampleLocations = {};
  5140. };
  5141. template <>
  5142. struct CppType<StructureType, StructureType::eSampleLocationsInfoEXT>
  5143. {
  5144. using Type = SampleLocationsInfoEXT;
  5145. };
  5146. struct AttachmentSampleLocationsEXT
  5147. {
  5148. using NativeType = VkAttachmentSampleLocationsEXT;
  5149. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  5150. VULKAN_HPP_CONSTEXPR AttachmentSampleLocationsEXT( uint32_t attachmentIndex_ = {},
  5151. VULKAN_HPP_NAMESPACE::SampleLocationsInfoEXT sampleLocationsInfo_ = {} ) VULKAN_HPP_NOEXCEPT
  5152. : attachmentIndex( attachmentIndex_ )
  5153. , sampleLocationsInfo( sampleLocationsInfo_ )
  5154. {
  5155. }
  5156. VULKAN_HPP_CONSTEXPR AttachmentSampleLocationsEXT( AttachmentSampleLocationsEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  5157. AttachmentSampleLocationsEXT( VkAttachmentSampleLocationsEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  5158. : AttachmentSampleLocationsEXT( *reinterpret_cast<AttachmentSampleLocationsEXT const *>( &rhs ) )
  5159. {
  5160. }
  5161. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  5162. AttachmentSampleLocationsEXT & operator=( AttachmentSampleLocationsEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  5163. AttachmentSampleLocationsEXT & operator=( VkAttachmentSampleLocationsEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  5164. {
  5165. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::AttachmentSampleLocationsEXT const *>( &rhs );
  5166. return *this;
  5167. }
  5168. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  5169. VULKAN_HPP_CONSTEXPR_14 AttachmentSampleLocationsEXT & setAttachmentIndex( uint32_t attachmentIndex_ ) VULKAN_HPP_NOEXCEPT
  5170. {
  5171. attachmentIndex = attachmentIndex_;
  5172. return *this;
  5173. }
  5174. VULKAN_HPP_CONSTEXPR_14 AttachmentSampleLocationsEXT &
  5175. setSampleLocationsInfo( VULKAN_HPP_NAMESPACE::SampleLocationsInfoEXT const & sampleLocationsInfo_ ) VULKAN_HPP_NOEXCEPT
  5176. {
  5177. sampleLocationsInfo = sampleLocationsInfo_;
  5178. return *this;
  5179. }
  5180. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  5181. operator VkAttachmentSampleLocationsEXT const &() const VULKAN_HPP_NOEXCEPT
  5182. {
  5183. return *reinterpret_cast<const VkAttachmentSampleLocationsEXT *>( this );
  5184. }
  5185. operator VkAttachmentSampleLocationsEXT &() VULKAN_HPP_NOEXCEPT
  5186. {
  5187. return *reinterpret_cast<VkAttachmentSampleLocationsEXT *>( this );
  5188. }
  5189. #if defined( VULKAN_HPP_USE_REFLECT )
  5190. # if 14 <= VULKAN_HPP_CPP_VERSION
  5191. auto
  5192. # else
  5193. std::tuple<uint32_t const &, VULKAN_HPP_NAMESPACE::SampleLocationsInfoEXT const &>
  5194. # endif
  5195. reflect() const VULKAN_HPP_NOEXCEPT
  5196. {
  5197. return std::tie( attachmentIndex, sampleLocationsInfo );
  5198. }
  5199. #endif
  5200. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  5201. auto operator<=>( AttachmentSampleLocationsEXT const & ) const = default;
  5202. #else
  5203. bool operator==( AttachmentSampleLocationsEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  5204. {
  5205. # if defined( VULKAN_HPP_USE_REFLECT )
  5206. return this->reflect() == rhs.reflect();
  5207. # else
  5208. return ( attachmentIndex == rhs.attachmentIndex ) && ( sampleLocationsInfo == rhs.sampleLocationsInfo );
  5209. # endif
  5210. }
  5211. bool operator!=( AttachmentSampleLocationsEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  5212. {
  5213. return !operator==( rhs );
  5214. }
  5215. #endif
  5216. public:
  5217. uint32_t attachmentIndex = {};
  5218. VULKAN_HPP_NAMESPACE::SampleLocationsInfoEXT sampleLocationsInfo = {};
  5219. };
  5220. struct BaseInStructure
  5221. {
  5222. using NativeType = VkBaseInStructure;
  5223. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  5224. BaseInStructure( VULKAN_HPP_NAMESPACE::StructureType sType_ = VULKAN_HPP_NAMESPACE::StructureType::eApplicationInfo,
  5225. const struct VULKAN_HPP_NAMESPACE::BaseInStructure * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  5226. : sType( sType_ )
  5227. , pNext( pNext_ )
  5228. {
  5229. }
  5230. BaseInStructure( BaseInStructure const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  5231. BaseInStructure( VkBaseInStructure const & rhs ) VULKAN_HPP_NOEXCEPT : BaseInStructure( *reinterpret_cast<BaseInStructure const *>( &rhs ) ) {}
  5232. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  5233. BaseInStructure & operator=( BaseInStructure const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  5234. BaseInStructure & operator=( VkBaseInStructure const & rhs ) VULKAN_HPP_NOEXCEPT
  5235. {
  5236. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::BaseInStructure const *>( &rhs );
  5237. return *this;
  5238. }
  5239. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  5240. VULKAN_HPP_CONSTEXPR_14 BaseInStructure & setPNext( const struct VULKAN_HPP_NAMESPACE::BaseInStructure * pNext_ ) VULKAN_HPP_NOEXCEPT
  5241. {
  5242. pNext = pNext_;
  5243. return *this;
  5244. }
  5245. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  5246. operator VkBaseInStructure const &() const VULKAN_HPP_NOEXCEPT
  5247. {
  5248. return *reinterpret_cast<const VkBaseInStructure *>( this );
  5249. }
  5250. operator VkBaseInStructure &() VULKAN_HPP_NOEXCEPT
  5251. {
  5252. return *reinterpret_cast<VkBaseInStructure *>( this );
  5253. }
  5254. #if defined( VULKAN_HPP_USE_REFLECT )
  5255. # if 14 <= VULKAN_HPP_CPP_VERSION
  5256. auto
  5257. # else
  5258. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const struct VULKAN_HPP_NAMESPACE::BaseInStructure * const &>
  5259. # endif
  5260. reflect() const VULKAN_HPP_NOEXCEPT
  5261. {
  5262. return std::tie( sType, pNext );
  5263. }
  5264. #endif
  5265. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  5266. auto operator<=>( BaseInStructure const & ) const = default;
  5267. #else
  5268. bool operator==( BaseInStructure const & rhs ) const VULKAN_HPP_NOEXCEPT
  5269. {
  5270. # if defined( VULKAN_HPP_USE_REFLECT )
  5271. return this->reflect() == rhs.reflect();
  5272. # else
  5273. return ( sType == rhs.sType ) && ( pNext == rhs.pNext );
  5274. # endif
  5275. }
  5276. bool operator!=( BaseInStructure const & rhs ) const VULKAN_HPP_NOEXCEPT
  5277. {
  5278. return !operator==( rhs );
  5279. }
  5280. #endif
  5281. public:
  5282. VULKAN_HPP_NAMESPACE::StructureType sType = VULKAN_HPP_NAMESPACE::StructureType::eApplicationInfo;
  5283. const struct VULKAN_HPP_NAMESPACE::BaseInStructure * pNext = {};
  5284. };
  5285. struct BaseOutStructure
  5286. {
  5287. using NativeType = VkBaseOutStructure;
  5288. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  5289. BaseOutStructure( VULKAN_HPP_NAMESPACE::StructureType sType_ = VULKAN_HPP_NAMESPACE::StructureType::eApplicationInfo,
  5290. struct VULKAN_HPP_NAMESPACE::BaseOutStructure * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  5291. : sType( sType_ )
  5292. , pNext( pNext_ )
  5293. {
  5294. }
  5295. BaseOutStructure( BaseOutStructure const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  5296. BaseOutStructure( VkBaseOutStructure const & rhs ) VULKAN_HPP_NOEXCEPT : BaseOutStructure( *reinterpret_cast<BaseOutStructure const *>( &rhs ) ) {}
  5297. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  5298. BaseOutStructure & operator=( BaseOutStructure const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  5299. BaseOutStructure & operator=( VkBaseOutStructure const & rhs ) VULKAN_HPP_NOEXCEPT
  5300. {
  5301. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::BaseOutStructure const *>( &rhs );
  5302. return *this;
  5303. }
  5304. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  5305. VULKAN_HPP_CONSTEXPR_14 BaseOutStructure & setPNext( struct VULKAN_HPP_NAMESPACE::BaseOutStructure * pNext_ ) VULKAN_HPP_NOEXCEPT
  5306. {
  5307. pNext = pNext_;
  5308. return *this;
  5309. }
  5310. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  5311. operator VkBaseOutStructure const &() const VULKAN_HPP_NOEXCEPT
  5312. {
  5313. return *reinterpret_cast<const VkBaseOutStructure *>( this );
  5314. }
  5315. operator VkBaseOutStructure &() VULKAN_HPP_NOEXCEPT
  5316. {
  5317. return *reinterpret_cast<VkBaseOutStructure *>( this );
  5318. }
  5319. #if defined( VULKAN_HPP_USE_REFLECT )
  5320. # if 14 <= VULKAN_HPP_CPP_VERSION
  5321. auto
  5322. # else
  5323. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, struct VULKAN_HPP_NAMESPACE::BaseOutStructure * const &>
  5324. # endif
  5325. reflect() const VULKAN_HPP_NOEXCEPT
  5326. {
  5327. return std::tie( sType, pNext );
  5328. }
  5329. #endif
  5330. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  5331. auto operator<=>( BaseOutStructure const & ) const = default;
  5332. #else
  5333. bool operator==( BaseOutStructure const & rhs ) const VULKAN_HPP_NOEXCEPT
  5334. {
  5335. # if defined( VULKAN_HPP_USE_REFLECT )
  5336. return this->reflect() == rhs.reflect();
  5337. # else
  5338. return ( sType == rhs.sType ) && ( pNext == rhs.pNext );
  5339. # endif
  5340. }
  5341. bool operator!=( BaseOutStructure const & rhs ) const VULKAN_HPP_NOEXCEPT
  5342. {
  5343. return !operator==( rhs );
  5344. }
  5345. #endif
  5346. public:
  5347. VULKAN_HPP_NAMESPACE::StructureType sType = VULKAN_HPP_NAMESPACE::StructureType::eApplicationInfo;
  5348. struct VULKAN_HPP_NAMESPACE::BaseOutStructure * pNext = {};
  5349. };
  5350. struct BindAccelerationStructureMemoryInfoNV
  5351. {
  5352. using NativeType = VkBindAccelerationStructureMemoryInfoNV;
  5353. static const bool allowDuplicate = false;
  5354. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eBindAccelerationStructureMemoryInfoNV;
  5355. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  5356. VULKAN_HPP_CONSTEXPR BindAccelerationStructureMemoryInfoNV( VULKAN_HPP_NAMESPACE::AccelerationStructureNV accelerationStructure_ = {},
  5357. VULKAN_HPP_NAMESPACE::DeviceMemory memory_ = {},
  5358. VULKAN_HPP_NAMESPACE::DeviceSize memoryOffset_ = {},
  5359. uint32_t deviceIndexCount_ = {},
  5360. const uint32_t * pDeviceIndices_ = {},
  5361. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  5362. : pNext( pNext_ )
  5363. , accelerationStructure( accelerationStructure_ )
  5364. , memory( memory_ )
  5365. , memoryOffset( memoryOffset_ )
  5366. , deviceIndexCount( deviceIndexCount_ )
  5367. , pDeviceIndices( pDeviceIndices_ )
  5368. {
  5369. }
  5370. VULKAN_HPP_CONSTEXPR BindAccelerationStructureMemoryInfoNV( BindAccelerationStructureMemoryInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  5371. BindAccelerationStructureMemoryInfoNV( VkBindAccelerationStructureMemoryInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
  5372. : BindAccelerationStructureMemoryInfoNV( *reinterpret_cast<BindAccelerationStructureMemoryInfoNV const *>( &rhs ) )
  5373. {
  5374. }
  5375. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  5376. BindAccelerationStructureMemoryInfoNV( VULKAN_HPP_NAMESPACE::AccelerationStructureNV accelerationStructure_,
  5377. VULKAN_HPP_NAMESPACE::DeviceMemory memory_,
  5378. VULKAN_HPP_NAMESPACE::DeviceSize memoryOffset_,
  5379. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint32_t> const & deviceIndices_,
  5380. const void * pNext_ = nullptr )
  5381. : pNext( pNext_ )
  5382. , accelerationStructure( accelerationStructure_ )
  5383. , memory( memory_ )
  5384. , memoryOffset( memoryOffset_ )
  5385. , deviceIndexCount( static_cast<uint32_t>( deviceIndices_.size() ) )
  5386. , pDeviceIndices( deviceIndices_.data() )
  5387. {
  5388. }
  5389. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  5390. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  5391. BindAccelerationStructureMemoryInfoNV & operator=( BindAccelerationStructureMemoryInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  5392. BindAccelerationStructureMemoryInfoNV & operator=( VkBindAccelerationStructureMemoryInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
  5393. {
  5394. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::BindAccelerationStructureMemoryInfoNV const *>( &rhs );
  5395. return *this;
  5396. }
  5397. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  5398. VULKAN_HPP_CONSTEXPR_14 BindAccelerationStructureMemoryInfoNV & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  5399. {
  5400. pNext = pNext_;
  5401. return *this;
  5402. }
  5403. VULKAN_HPP_CONSTEXPR_14 BindAccelerationStructureMemoryInfoNV &
  5404. setAccelerationStructure( VULKAN_HPP_NAMESPACE::AccelerationStructureNV accelerationStructure_ ) VULKAN_HPP_NOEXCEPT
  5405. {
  5406. accelerationStructure = accelerationStructure_;
  5407. return *this;
  5408. }
  5409. VULKAN_HPP_CONSTEXPR_14 BindAccelerationStructureMemoryInfoNV & setMemory( VULKAN_HPP_NAMESPACE::DeviceMemory memory_ ) VULKAN_HPP_NOEXCEPT
  5410. {
  5411. memory = memory_;
  5412. return *this;
  5413. }
  5414. VULKAN_HPP_CONSTEXPR_14 BindAccelerationStructureMemoryInfoNV & setMemoryOffset( VULKAN_HPP_NAMESPACE::DeviceSize memoryOffset_ ) VULKAN_HPP_NOEXCEPT
  5415. {
  5416. memoryOffset = memoryOffset_;
  5417. return *this;
  5418. }
  5419. VULKAN_HPP_CONSTEXPR_14 BindAccelerationStructureMemoryInfoNV & setDeviceIndexCount( uint32_t deviceIndexCount_ ) VULKAN_HPP_NOEXCEPT
  5420. {
  5421. deviceIndexCount = deviceIndexCount_;
  5422. return *this;
  5423. }
  5424. VULKAN_HPP_CONSTEXPR_14 BindAccelerationStructureMemoryInfoNV & setPDeviceIndices( const uint32_t * pDeviceIndices_ ) VULKAN_HPP_NOEXCEPT
  5425. {
  5426. pDeviceIndices = pDeviceIndices_;
  5427. return *this;
  5428. }
  5429. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  5430. BindAccelerationStructureMemoryInfoNV &
  5431. setDeviceIndices( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint32_t> const & deviceIndices_ ) VULKAN_HPP_NOEXCEPT
  5432. {
  5433. deviceIndexCount = static_cast<uint32_t>( deviceIndices_.size() );
  5434. pDeviceIndices = deviceIndices_.data();
  5435. return *this;
  5436. }
  5437. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  5438. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  5439. operator VkBindAccelerationStructureMemoryInfoNV const &() const VULKAN_HPP_NOEXCEPT
  5440. {
  5441. return *reinterpret_cast<const VkBindAccelerationStructureMemoryInfoNV *>( this );
  5442. }
  5443. operator VkBindAccelerationStructureMemoryInfoNV &() VULKAN_HPP_NOEXCEPT
  5444. {
  5445. return *reinterpret_cast<VkBindAccelerationStructureMemoryInfoNV *>( this );
  5446. }
  5447. #if defined( VULKAN_HPP_USE_REFLECT )
  5448. # if 14 <= VULKAN_HPP_CPP_VERSION
  5449. auto
  5450. # else
  5451. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  5452. const void * const &,
  5453. VULKAN_HPP_NAMESPACE::AccelerationStructureNV const &,
  5454. VULKAN_HPP_NAMESPACE::DeviceMemory const &,
  5455. VULKAN_HPP_NAMESPACE::DeviceSize const &,
  5456. uint32_t const &,
  5457. const uint32_t * const &>
  5458. # endif
  5459. reflect() const VULKAN_HPP_NOEXCEPT
  5460. {
  5461. return std::tie( sType, pNext, accelerationStructure, memory, memoryOffset, deviceIndexCount, pDeviceIndices );
  5462. }
  5463. #endif
  5464. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  5465. auto operator<=>( BindAccelerationStructureMemoryInfoNV const & ) const = default;
  5466. #else
  5467. bool operator==( BindAccelerationStructureMemoryInfoNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  5468. {
  5469. # if defined( VULKAN_HPP_USE_REFLECT )
  5470. return this->reflect() == rhs.reflect();
  5471. # else
  5472. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( accelerationStructure == rhs.accelerationStructure ) && ( memory == rhs.memory ) &&
  5473. ( memoryOffset == rhs.memoryOffset ) && ( deviceIndexCount == rhs.deviceIndexCount ) && ( pDeviceIndices == rhs.pDeviceIndices );
  5474. # endif
  5475. }
  5476. bool operator!=( BindAccelerationStructureMemoryInfoNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  5477. {
  5478. return !operator==( rhs );
  5479. }
  5480. #endif
  5481. public:
  5482. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eBindAccelerationStructureMemoryInfoNV;
  5483. const void * pNext = {};
  5484. VULKAN_HPP_NAMESPACE::AccelerationStructureNV accelerationStructure = {};
  5485. VULKAN_HPP_NAMESPACE::DeviceMemory memory = {};
  5486. VULKAN_HPP_NAMESPACE::DeviceSize memoryOffset = {};
  5487. uint32_t deviceIndexCount = {};
  5488. const uint32_t * pDeviceIndices = {};
  5489. };
  5490. template <>
  5491. struct CppType<StructureType, StructureType::eBindAccelerationStructureMemoryInfoNV>
  5492. {
  5493. using Type = BindAccelerationStructureMemoryInfoNV;
  5494. };
  5495. struct BindBufferMemoryDeviceGroupInfo
  5496. {
  5497. using NativeType = VkBindBufferMemoryDeviceGroupInfo;
  5498. static const bool allowDuplicate = false;
  5499. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eBindBufferMemoryDeviceGroupInfo;
  5500. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  5501. VULKAN_HPP_CONSTEXPR BindBufferMemoryDeviceGroupInfo( uint32_t deviceIndexCount_ = {},
  5502. const uint32_t * pDeviceIndices_ = {},
  5503. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  5504. : pNext( pNext_ )
  5505. , deviceIndexCount( deviceIndexCount_ )
  5506. , pDeviceIndices( pDeviceIndices_ )
  5507. {
  5508. }
  5509. VULKAN_HPP_CONSTEXPR BindBufferMemoryDeviceGroupInfo( BindBufferMemoryDeviceGroupInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  5510. BindBufferMemoryDeviceGroupInfo( VkBindBufferMemoryDeviceGroupInfo const & rhs ) VULKAN_HPP_NOEXCEPT
  5511. : BindBufferMemoryDeviceGroupInfo( *reinterpret_cast<BindBufferMemoryDeviceGroupInfo const *>( &rhs ) )
  5512. {
  5513. }
  5514. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  5515. BindBufferMemoryDeviceGroupInfo( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint32_t> const & deviceIndices_, const void * pNext_ = nullptr )
  5516. : pNext( pNext_ ), deviceIndexCount( static_cast<uint32_t>( deviceIndices_.size() ) ), pDeviceIndices( deviceIndices_.data() )
  5517. {
  5518. }
  5519. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  5520. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  5521. BindBufferMemoryDeviceGroupInfo & operator=( BindBufferMemoryDeviceGroupInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  5522. BindBufferMemoryDeviceGroupInfo & operator=( VkBindBufferMemoryDeviceGroupInfo const & rhs ) VULKAN_HPP_NOEXCEPT
  5523. {
  5524. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::BindBufferMemoryDeviceGroupInfo const *>( &rhs );
  5525. return *this;
  5526. }
  5527. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  5528. VULKAN_HPP_CONSTEXPR_14 BindBufferMemoryDeviceGroupInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  5529. {
  5530. pNext = pNext_;
  5531. return *this;
  5532. }
  5533. VULKAN_HPP_CONSTEXPR_14 BindBufferMemoryDeviceGroupInfo & setDeviceIndexCount( uint32_t deviceIndexCount_ ) VULKAN_HPP_NOEXCEPT
  5534. {
  5535. deviceIndexCount = deviceIndexCount_;
  5536. return *this;
  5537. }
  5538. VULKAN_HPP_CONSTEXPR_14 BindBufferMemoryDeviceGroupInfo & setPDeviceIndices( const uint32_t * pDeviceIndices_ ) VULKAN_HPP_NOEXCEPT
  5539. {
  5540. pDeviceIndices = pDeviceIndices_;
  5541. return *this;
  5542. }
  5543. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  5544. BindBufferMemoryDeviceGroupInfo &
  5545. setDeviceIndices( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint32_t> const & deviceIndices_ ) VULKAN_HPP_NOEXCEPT
  5546. {
  5547. deviceIndexCount = static_cast<uint32_t>( deviceIndices_.size() );
  5548. pDeviceIndices = deviceIndices_.data();
  5549. return *this;
  5550. }
  5551. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  5552. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  5553. operator VkBindBufferMemoryDeviceGroupInfo const &() const VULKAN_HPP_NOEXCEPT
  5554. {
  5555. return *reinterpret_cast<const VkBindBufferMemoryDeviceGroupInfo *>( this );
  5556. }
  5557. operator VkBindBufferMemoryDeviceGroupInfo &() VULKAN_HPP_NOEXCEPT
  5558. {
  5559. return *reinterpret_cast<VkBindBufferMemoryDeviceGroupInfo *>( this );
  5560. }
  5561. #if defined( VULKAN_HPP_USE_REFLECT )
  5562. # if 14 <= VULKAN_HPP_CPP_VERSION
  5563. auto
  5564. # else
  5565. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, uint32_t const &, const uint32_t * const &>
  5566. # endif
  5567. reflect() const VULKAN_HPP_NOEXCEPT
  5568. {
  5569. return std::tie( sType, pNext, deviceIndexCount, pDeviceIndices );
  5570. }
  5571. #endif
  5572. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  5573. auto operator<=>( BindBufferMemoryDeviceGroupInfo const & ) const = default;
  5574. #else
  5575. bool operator==( BindBufferMemoryDeviceGroupInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  5576. {
  5577. # if defined( VULKAN_HPP_USE_REFLECT )
  5578. return this->reflect() == rhs.reflect();
  5579. # else
  5580. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( deviceIndexCount == rhs.deviceIndexCount ) && ( pDeviceIndices == rhs.pDeviceIndices );
  5581. # endif
  5582. }
  5583. bool operator!=( BindBufferMemoryDeviceGroupInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  5584. {
  5585. return !operator==( rhs );
  5586. }
  5587. #endif
  5588. public:
  5589. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eBindBufferMemoryDeviceGroupInfo;
  5590. const void * pNext = {};
  5591. uint32_t deviceIndexCount = {};
  5592. const uint32_t * pDeviceIndices = {};
  5593. };
  5594. template <>
  5595. struct CppType<StructureType, StructureType::eBindBufferMemoryDeviceGroupInfo>
  5596. {
  5597. using Type = BindBufferMemoryDeviceGroupInfo;
  5598. };
  5599. using BindBufferMemoryDeviceGroupInfoKHR = BindBufferMemoryDeviceGroupInfo;
  5600. struct BindBufferMemoryInfo
  5601. {
  5602. using NativeType = VkBindBufferMemoryInfo;
  5603. static const bool allowDuplicate = false;
  5604. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eBindBufferMemoryInfo;
  5605. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  5606. VULKAN_HPP_CONSTEXPR BindBufferMemoryInfo( VULKAN_HPP_NAMESPACE::Buffer buffer_ = {},
  5607. VULKAN_HPP_NAMESPACE::DeviceMemory memory_ = {},
  5608. VULKAN_HPP_NAMESPACE::DeviceSize memoryOffset_ = {},
  5609. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  5610. : pNext( pNext_ )
  5611. , buffer( buffer_ )
  5612. , memory( memory_ )
  5613. , memoryOffset( memoryOffset_ )
  5614. {
  5615. }
  5616. VULKAN_HPP_CONSTEXPR BindBufferMemoryInfo( BindBufferMemoryInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  5617. BindBufferMemoryInfo( VkBindBufferMemoryInfo const & rhs ) VULKAN_HPP_NOEXCEPT
  5618. : BindBufferMemoryInfo( *reinterpret_cast<BindBufferMemoryInfo const *>( &rhs ) )
  5619. {
  5620. }
  5621. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  5622. BindBufferMemoryInfo & operator=( BindBufferMemoryInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  5623. BindBufferMemoryInfo & operator=( VkBindBufferMemoryInfo const & rhs ) VULKAN_HPP_NOEXCEPT
  5624. {
  5625. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::BindBufferMemoryInfo const *>( &rhs );
  5626. return *this;
  5627. }
  5628. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  5629. VULKAN_HPP_CONSTEXPR_14 BindBufferMemoryInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  5630. {
  5631. pNext = pNext_;
  5632. return *this;
  5633. }
  5634. VULKAN_HPP_CONSTEXPR_14 BindBufferMemoryInfo & setBuffer( VULKAN_HPP_NAMESPACE::Buffer buffer_ ) VULKAN_HPP_NOEXCEPT
  5635. {
  5636. buffer = buffer_;
  5637. return *this;
  5638. }
  5639. VULKAN_HPP_CONSTEXPR_14 BindBufferMemoryInfo & setMemory( VULKAN_HPP_NAMESPACE::DeviceMemory memory_ ) VULKAN_HPP_NOEXCEPT
  5640. {
  5641. memory = memory_;
  5642. return *this;
  5643. }
  5644. VULKAN_HPP_CONSTEXPR_14 BindBufferMemoryInfo & setMemoryOffset( VULKAN_HPP_NAMESPACE::DeviceSize memoryOffset_ ) VULKAN_HPP_NOEXCEPT
  5645. {
  5646. memoryOffset = memoryOffset_;
  5647. return *this;
  5648. }
  5649. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  5650. operator VkBindBufferMemoryInfo const &() const VULKAN_HPP_NOEXCEPT
  5651. {
  5652. return *reinterpret_cast<const VkBindBufferMemoryInfo *>( this );
  5653. }
  5654. operator VkBindBufferMemoryInfo &() VULKAN_HPP_NOEXCEPT
  5655. {
  5656. return *reinterpret_cast<VkBindBufferMemoryInfo *>( this );
  5657. }
  5658. #if defined( VULKAN_HPP_USE_REFLECT )
  5659. # if 14 <= VULKAN_HPP_CPP_VERSION
  5660. auto
  5661. # else
  5662. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  5663. const void * const &,
  5664. VULKAN_HPP_NAMESPACE::Buffer const &,
  5665. VULKAN_HPP_NAMESPACE::DeviceMemory const &,
  5666. VULKAN_HPP_NAMESPACE::DeviceSize const &>
  5667. # endif
  5668. reflect() const VULKAN_HPP_NOEXCEPT
  5669. {
  5670. return std::tie( sType, pNext, buffer, memory, memoryOffset );
  5671. }
  5672. #endif
  5673. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  5674. auto operator<=>( BindBufferMemoryInfo const & ) const = default;
  5675. #else
  5676. bool operator==( BindBufferMemoryInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  5677. {
  5678. # if defined( VULKAN_HPP_USE_REFLECT )
  5679. return this->reflect() == rhs.reflect();
  5680. # else
  5681. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( buffer == rhs.buffer ) && ( memory == rhs.memory ) && ( memoryOffset == rhs.memoryOffset );
  5682. # endif
  5683. }
  5684. bool operator!=( BindBufferMemoryInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  5685. {
  5686. return !operator==( rhs );
  5687. }
  5688. #endif
  5689. public:
  5690. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eBindBufferMemoryInfo;
  5691. const void * pNext = {};
  5692. VULKAN_HPP_NAMESPACE::Buffer buffer = {};
  5693. VULKAN_HPP_NAMESPACE::DeviceMemory memory = {};
  5694. VULKAN_HPP_NAMESPACE::DeviceSize memoryOffset = {};
  5695. };
  5696. template <>
  5697. struct CppType<StructureType, StructureType::eBindBufferMemoryInfo>
  5698. {
  5699. using Type = BindBufferMemoryInfo;
  5700. };
  5701. using BindBufferMemoryInfoKHR = BindBufferMemoryInfo;
  5702. struct Offset2D
  5703. {
  5704. using NativeType = VkOffset2D;
  5705. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  5706. VULKAN_HPP_CONSTEXPR Offset2D( int32_t x_ = {}, int32_t y_ = {} ) VULKAN_HPP_NOEXCEPT
  5707. : x( x_ )
  5708. , y( y_ )
  5709. {
  5710. }
  5711. VULKAN_HPP_CONSTEXPR Offset2D( Offset2D const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  5712. Offset2D( VkOffset2D const & rhs ) VULKAN_HPP_NOEXCEPT : Offset2D( *reinterpret_cast<Offset2D const *>( &rhs ) ) {}
  5713. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  5714. Offset2D & operator=( Offset2D const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  5715. Offset2D & operator=( VkOffset2D const & rhs ) VULKAN_HPP_NOEXCEPT
  5716. {
  5717. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::Offset2D const *>( &rhs );
  5718. return *this;
  5719. }
  5720. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  5721. VULKAN_HPP_CONSTEXPR_14 Offset2D & setX( int32_t x_ ) VULKAN_HPP_NOEXCEPT
  5722. {
  5723. x = x_;
  5724. return *this;
  5725. }
  5726. VULKAN_HPP_CONSTEXPR_14 Offset2D & setY( int32_t y_ ) VULKAN_HPP_NOEXCEPT
  5727. {
  5728. y = y_;
  5729. return *this;
  5730. }
  5731. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  5732. operator VkOffset2D const &() const VULKAN_HPP_NOEXCEPT
  5733. {
  5734. return *reinterpret_cast<const VkOffset2D *>( this );
  5735. }
  5736. operator VkOffset2D &() VULKAN_HPP_NOEXCEPT
  5737. {
  5738. return *reinterpret_cast<VkOffset2D *>( this );
  5739. }
  5740. #if defined( VULKAN_HPP_USE_REFLECT )
  5741. # if 14 <= VULKAN_HPP_CPP_VERSION
  5742. auto
  5743. # else
  5744. std::tuple<int32_t const &, int32_t const &>
  5745. # endif
  5746. reflect() const VULKAN_HPP_NOEXCEPT
  5747. {
  5748. return std::tie( x, y );
  5749. }
  5750. #endif
  5751. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  5752. auto operator<=>( Offset2D const & ) const = default;
  5753. #else
  5754. bool operator==( Offset2D const & rhs ) const VULKAN_HPP_NOEXCEPT
  5755. {
  5756. # if defined( VULKAN_HPP_USE_REFLECT )
  5757. return this->reflect() == rhs.reflect();
  5758. # else
  5759. return ( x == rhs.x ) && ( y == rhs.y );
  5760. # endif
  5761. }
  5762. bool operator!=( Offset2D const & rhs ) const VULKAN_HPP_NOEXCEPT
  5763. {
  5764. return !operator==( rhs );
  5765. }
  5766. #endif
  5767. public:
  5768. int32_t x = {};
  5769. int32_t y = {};
  5770. };
  5771. struct Rect2D
  5772. {
  5773. using NativeType = VkRect2D;
  5774. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  5775. VULKAN_HPP_CONSTEXPR Rect2D( VULKAN_HPP_NAMESPACE::Offset2D offset_ = {}, VULKAN_HPP_NAMESPACE::Extent2D extent_ = {} ) VULKAN_HPP_NOEXCEPT
  5776. : offset( offset_ )
  5777. , extent( extent_ )
  5778. {
  5779. }
  5780. VULKAN_HPP_CONSTEXPR Rect2D( Rect2D const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  5781. Rect2D( VkRect2D const & rhs ) VULKAN_HPP_NOEXCEPT : Rect2D( *reinterpret_cast<Rect2D const *>( &rhs ) ) {}
  5782. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  5783. Rect2D & operator=( Rect2D const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  5784. Rect2D & operator=( VkRect2D const & rhs ) VULKAN_HPP_NOEXCEPT
  5785. {
  5786. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::Rect2D const *>( &rhs );
  5787. return *this;
  5788. }
  5789. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  5790. VULKAN_HPP_CONSTEXPR_14 Rect2D & setOffset( VULKAN_HPP_NAMESPACE::Offset2D const & offset_ ) VULKAN_HPP_NOEXCEPT
  5791. {
  5792. offset = offset_;
  5793. return *this;
  5794. }
  5795. VULKAN_HPP_CONSTEXPR_14 Rect2D & setExtent( VULKAN_HPP_NAMESPACE::Extent2D const & extent_ ) VULKAN_HPP_NOEXCEPT
  5796. {
  5797. extent = extent_;
  5798. return *this;
  5799. }
  5800. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  5801. operator VkRect2D const &() const VULKAN_HPP_NOEXCEPT
  5802. {
  5803. return *reinterpret_cast<const VkRect2D *>( this );
  5804. }
  5805. operator VkRect2D &() VULKAN_HPP_NOEXCEPT
  5806. {
  5807. return *reinterpret_cast<VkRect2D *>( this );
  5808. }
  5809. #if defined( VULKAN_HPP_USE_REFLECT )
  5810. # if 14 <= VULKAN_HPP_CPP_VERSION
  5811. auto
  5812. # else
  5813. std::tuple<VULKAN_HPP_NAMESPACE::Offset2D const &, VULKAN_HPP_NAMESPACE::Extent2D const &>
  5814. # endif
  5815. reflect() const VULKAN_HPP_NOEXCEPT
  5816. {
  5817. return std::tie( offset, extent );
  5818. }
  5819. #endif
  5820. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  5821. auto operator<=>( Rect2D const & ) const = default;
  5822. #else
  5823. bool operator==( Rect2D const & rhs ) const VULKAN_HPP_NOEXCEPT
  5824. {
  5825. # if defined( VULKAN_HPP_USE_REFLECT )
  5826. return this->reflect() == rhs.reflect();
  5827. # else
  5828. return ( offset == rhs.offset ) && ( extent == rhs.extent );
  5829. # endif
  5830. }
  5831. bool operator!=( Rect2D const & rhs ) const VULKAN_HPP_NOEXCEPT
  5832. {
  5833. return !operator==( rhs );
  5834. }
  5835. #endif
  5836. public:
  5837. VULKAN_HPP_NAMESPACE::Offset2D offset = {};
  5838. VULKAN_HPP_NAMESPACE::Extent2D extent = {};
  5839. };
  5840. struct BindImageMemoryDeviceGroupInfo
  5841. {
  5842. using NativeType = VkBindImageMemoryDeviceGroupInfo;
  5843. static const bool allowDuplicate = false;
  5844. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eBindImageMemoryDeviceGroupInfo;
  5845. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  5846. VULKAN_HPP_CONSTEXPR BindImageMemoryDeviceGroupInfo( uint32_t deviceIndexCount_ = {},
  5847. const uint32_t * pDeviceIndices_ = {},
  5848. uint32_t splitInstanceBindRegionCount_ = {},
  5849. const VULKAN_HPP_NAMESPACE::Rect2D * pSplitInstanceBindRegions_ = {},
  5850. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  5851. : pNext( pNext_ )
  5852. , deviceIndexCount( deviceIndexCount_ )
  5853. , pDeviceIndices( pDeviceIndices_ )
  5854. , splitInstanceBindRegionCount( splitInstanceBindRegionCount_ )
  5855. , pSplitInstanceBindRegions( pSplitInstanceBindRegions_ )
  5856. {
  5857. }
  5858. VULKAN_HPP_CONSTEXPR BindImageMemoryDeviceGroupInfo( BindImageMemoryDeviceGroupInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  5859. BindImageMemoryDeviceGroupInfo( VkBindImageMemoryDeviceGroupInfo const & rhs ) VULKAN_HPP_NOEXCEPT
  5860. : BindImageMemoryDeviceGroupInfo( *reinterpret_cast<BindImageMemoryDeviceGroupInfo const *>( &rhs ) )
  5861. {
  5862. }
  5863. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  5864. BindImageMemoryDeviceGroupInfo( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint32_t> const & deviceIndices_,
  5865. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::Rect2D> const & splitInstanceBindRegions_ = {},
  5866. const void * pNext_ = nullptr )
  5867. : pNext( pNext_ )
  5868. , deviceIndexCount( static_cast<uint32_t>( deviceIndices_.size() ) )
  5869. , pDeviceIndices( deviceIndices_.data() )
  5870. , splitInstanceBindRegionCount( static_cast<uint32_t>( splitInstanceBindRegions_.size() ) )
  5871. , pSplitInstanceBindRegions( splitInstanceBindRegions_.data() )
  5872. {
  5873. }
  5874. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  5875. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  5876. BindImageMemoryDeviceGroupInfo & operator=( BindImageMemoryDeviceGroupInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  5877. BindImageMemoryDeviceGroupInfo & operator=( VkBindImageMemoryDeviceGroupInfo const & rhs ) VULKAN_HPP_NOEXCEPT
  5878. {
  5879. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::BindImageMemoryDeviceGroupInfo const *>( &rhs );
  5880. return *this;
  5881. }
  5882. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  5883. VULKAN_HPP_CONSTEXPR_14 BindImageMemoryDeviceGroupInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  5884. {
  5885. pNext = pNext_;
  5886. return *this;
  5887. }
  5888. VULKAN_HPP_CONSTEXPR_14 BindImageMemoryDeviceGroupInfo & setDeviceIndexCount( uint32_t deviceIndexCount_ ) VULKAN_HPP_NOEXCEPT
  5889. {
  5890. deviceIndexCount = deviceIndexCount_;
  5891. return *this;
  5892. }
  5893. VULKAN_HPP_CONSTEXPR_14 BindImageMemoryDeviceGroupInfo & setPDeviceIndices( const uint32_t * pDeviceIndices_ ) VULKAN_HPP_NOEXCEPT
  5894. {
  5895. pDeviceIndices = pDeviceIndices_;
  5896. return *this;
  5897. }
  5898. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  5899. BindImageMemoryDeviceGroupInfo &
  5900. setDeviceIndices( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint32_t> const & deviceIndices_ ) VULKAN_HPP_NOEXCEPT
  5901. {
  5902. deviceIndexCount = static_cast<uint32_t>( deviceIndices_.size() );
  5903. pDeviceIndices = deviceIndices_.data();
  5904. return *this;
  5905. }
  5906. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  5907. VULKAN_HPP_CONSTEXPR_14 BindImageMemoryDeviceGroupInfo & setSplitInstanceBindRegionCount( uint32_t splitInstanceBindRegionCount_ ) VULKAN_HPP_NOEXCEPT
  5908. {
  5909. splitInstanceBindRegionCount = splitInstanceBindRegionCount_;
  5910. return *this;
  5911. }
  5912. VULKAN_HPP_CONSTEXPR_14 BindImageMemoryDeviceGroupInfo &
  5913. setPSplitInstanceBindRegions( const VULKAN_HPP_NAMESPACE::Rect2D * pSplitInstanceBindRegions_ ) VULKAN_HPP_NOEXCEPT
  5914. {
  5915. pSplitInstanceBindRegions = pSplitInstanceBindRegions_;
  5916. return *this;
  5917. }
  5918. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  5919. BindImageMemoryDeviceGroupInfo & setSplitInstanceBindRegions(
  5920. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::Rect2D> const & splitInstanceBindRegions_ ) VULKAN_HPP_NOEXCEPT
  5921. {
  5922. splitInstanceBindRegionCount = static_cast<uint32_t>( splitInstanceBindRegions_.size() );
  5923. pSplitInstanceBindRegions = splitInstanceBindRegions_.data();
  5924. return *this;
  5925. }
  5926. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  5927. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  5928. operator VkBindImageMemoryDeviceGroupInfo const &() const VULKAN_HPP_NOEXCEPT
  5929. {
  5930. return *reinterpret_cast<const VkBindImageMemoryDeviceGroupInfo *>( this );
  5931. }
  5932. operator VkBindImageMemoryDeviceGroupInfo &() VULKAN_HPP_NOEXCEPT
  5933. {
  5934. return *reinterpret_cast<VkBindImageMemoryDeviceGroupInfo *>( this );
  5935. }
  5936. #if defined( VULKAN_HPP_USE_REFLECT )
  5937. # if 14 <= VULKAN_HPP_CPP_VERSION
  5938. auto
  5939. # else
  5940. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  5941. const void * const &,
  5942. uint32_t const &,
  5943. const uint32_t * const &,
  5944. uint32_t const &,
  5945. const VULKAN_HPP_NAMESPACE::Rect2D * const &>
  5946. # endif
  5947. reflect() const VULKAN_HPP_NOEXCEPT
  5948. {
  5949. return std::tie( sType, pNext, deviceIndexCount, pDeviceIndices, splitInstanceBindRegionCount, pSplitInstanceBindRegions );
  5950. }
  5951. #endif
  5952. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  5953. auto operator<=>( BindImageMemoryDeviceGroupInfo const & ) const = default;
  5954. #else
  5955. bool operator==( BindImageMemoryDeviceGroupInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  5956. {
  5957. # if defined( VULKAN_HPP_USE_REFLECT )
  5958. return this->reflect() == rhs.reflect();
  5959. # else
  5960. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( deviceIndexCount == rhs.deviceIndexCount ) && ( pDeviceIndices == rhs.pDeviceIndices ) &&
  5961. ( splitInstanceBindRegionCount == rhs.splitInstanceBindRegionCount ) && ( pSplitInstanceBindRegions == rhs.pSplitInstanceBindRegions );
  5962. # endif
  5963. }
  5964. bool operator!=( BindImageMemoryDeviceGroupInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  5965. {
  5966. return !operator==( rhs );
  5967. }
  5968. #endif
  5969. public:
  5970. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eBindImageMemoryDeviceGroupInfo;
  5971. const void * pNext = {};
  5972. uint32_t deviceIndexCount = {};
  5973. const uint32_t * pDeviceIndices = {};
  5974. uint32_t splitInstanceBindRegionCount = {};
  5975. const VULKAN_HPP_NAMESPACE::Rect2D * pSplitInstanceBindRegions = {};
  5976. };
  5977. template <>
  5978. struct CppType<StructureType, StructureType::eBindImageMemoryDeviceGroupInfo>
  5979. {
  5980. using Type = BindImageMemoryDeviceGroupInfo;
  5981. };
  5982. using BindImageMemoryDeviceGroupInfoKHR = BindImageMemoryDeviceGroupInfo;
  5983. struct BindImageMemoryInfo
  5984. {
  5985. using NativeType = VkBindImageMemoryInfo;
  5986. static const bool allowDuplicate = false;
  5987. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eBindImageMemoryInfo;
  5988. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  5989. VULKAN_HPP_CONSTEXPR BindImageMemoryInfo( VULKAN_HPP_NAMESPACE::Image image_ = {},
  5990. VULKAN_HPP_NAMESPACE::DeviceMemory memory_ = {},
  5991. VULKAN_HPP_NAMESPACE::DeviceSize memoryOffset_ = {},
  5992. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  5993. : pNext( pNext_ )
  5994. , image( image_ )
  5995. , memory( memory_ )
  5996. , memoryOffset( memoryOffset_ )
  5997. {
  5998. }
  5999. VULKAN_HPP_CONSTEXPR BindImageMemoryInfo( BindImageMemoryInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  6000. BindImageMemoryInfo( VkBindImageMemoryInfo const & rhs ) VULKAN_HPP_NOEXCEPT : BindImageMemoryInfo( *reinterpret_cast<BindImageMemoryInfo const *>( &rhs ) )
  6001. {
  6002. }
  6003. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  6004. BindImageMemoryInfo & operator=( BindImageMemoryInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  6005. BindImageMemoryInfo & operator=( VkBindImageMemoryInfo const & rhs ) VULKAN_HPP_NOEXCEPT
  6006. {
  6007. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::BindImageMemoryInfo const *>( &rhs );
  6008. return *this;
  6009. }
  6010. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  6011. VULKAN_HPP_CONSTEXPR_14 BindImageMemoryInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  6012. {
  6013. pNext = pNext_;
  6014. return *this;
  6015. }
  6016. VULKAN_HPP_CONSTEXPR_14 BindImageMemoryInfo & setImage( VULKAN_HPP_NAMESPACE::Image image_ ) VULKAN_HPP_NOEXCEPT
  6017. {
  6018. image = image_;
  6019. return *this;
  6020. }
  6021. VULKAN_HPP_CONSTEXPR_14 BindImageMemoryInfo & setMemory( VULKAN_HPP_NAMESPACE::DeviceMemory memory_ ) VULKAN_HPP_NOEXCEPT
  6022. {
  6023. memory = memory_;
  6024. return *this;
  6025. }
  6026. VULKAN_HPP_CONSTEXPR_14 BindImageMemoryInfo & setMemoryOffset( VULKAN_HPP_NAMESPACE::DeviceSize memoryOffset_ ) VULKAN_HPP_NOEXCEPT
  6027. {
  6028. memoryOffset = memoryOffset_;
  6029. return *this;
  6030. }
  6031. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  6032. operator VkBindImageMemoryInfo const &() const VULKAN_HPP_NOEXCEPT
  6033. {
  6034. return *reinterpret_cast<const VkBindImageMemoryInfo *>( this );
  6035. }
  6036. operator VkBindImageMemoryInfo &() VULKAN_HPP_NOEXCEPT
  6037. {
  6038. return *reinterpret_cast<VkBindImageMemoryInfo *>( this );
  6039. }
  6040. #if defined( VULKAN_HPP_USE_REFLECT )
  6041. # if 14 <= VULKAN_HPP_CPP_VERSION
  6042. auto
  6043. # else
  6044. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  6045. const void * const &,
  6046. VULKAN_HPP_NAMESPACE::Image const &,
  6047. VULKAN_HPP_NAMESPACE::DeviceMemory const &,
  6048. VULKAN_HPP_NAMESPACE::DeviceSize const &>
  6049. # endif
  6050. reflect() const VULKAN_HPP_NOEXCEPT
  6051. {
  6052. return std::tie( sType, pNext, image, memory, memoryOffset );
  6053. }
  6054. #endif
  6055. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  6056. auto operator<=>( BindImageMemoryInfo const & ) const = default;
  6057. #else
  6058. bool operator==( BindImageMemoryInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  6059. {
  6060. # if defined( VULKAN_HPP_USE_REFLECT )
  6061. return this->reflect() == rhs.reflect();
  6062. # else
  6063. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( image == rhs.image ) && ( memory == rhs.memory ) && ( memoryOffset == rhs.memoryOffset );
  6064. # endif
  6065. }
  6066. bool operator!=( BindImageMemoryInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  6067. {
  6068. return !operator==( rhs );
  6069. }
  6070. #endif
  6071. public:
  6072. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eBindImageMemoryInfo;
  6073. const void * pNext = {};
  6074. VULKAN_HPP_NAMESPACE::Image image = {};
  6075. VULKAN_HPP_NAMESPACE::DeviceMemory memory = {};
  6076. VULKAN_HPP_NAMESPACE::DeviceSize memoryOffset = {};
  6077. };
  6078. template <>
  6079. struct CppType<StructureType, StructureType::eBindImageMemoryInfo>
  6080. {
  6081. using Type = BindImageMemoryInfo;
  6082. };
  6083. using BindImageMemoryInfoKHR = BindImageMemoryInfo;
  6084. struct BindImageMemorySwapchainInfoKHR
  6085. {
  6086. using NativeType = VkBindImageMemorySwapchainInfoKHR;
  6087. static const bool allowDuplicate = false;
  6088. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eBindImageMemorySwapchainInfoKHR;
  6089. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  6090. VULKAN_HPP_CONSTEXPR BindImageMemorySwapchainInfoKHR( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain_ = {},
  6091. uint32_t imageIndex_ = {},
  6092. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  6093. : pNext( pNext_ )
  6094. , swapchain( swapchain_ )
  6095. , imageIndex( imageIndex_ )
  6096. {
  6097. }
  6098. VULKAN_HPP_CONSTEXPR BindImageMemorySwapchainInfoKHR( BindImageMemorySwapchainInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  6099. BindImageMemorySwapchainInfoKHR( VkBindImageMemorySwapchainInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  6100. : BindImageMemorySwapchainInfoKHR( *reinterpret_cast<BindImageMemorySwapchainInfoKHR const *>( &rhs ) )
  6101. {
  6102. }
  6103. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  6104. BindImageMemorySwapchainInfoKHR & operator=( BindImageMemorySwapchainInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  6105. BindImageMemorySwapchainInfoKHR & operator=( VkBindImageMemorySwapchainInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  6106. {
  6107. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::BindImageMemorySwapchainInfoKHR const *>( &rhs );
  6108. return *this;
  6109. }
  6110. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  6111. VULKAN_HPP_CONSTEXPR_14 BindImageMemorySwapchainInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  6112. {
  6113. pNext = pNext_;
  6114. return *this;
  6115. }
  6116. VULKAN_HPP_CONSTEXPR_14 BindImageMemorySwapchainInfoKHR & setSwapchain( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain_ ) VULKAN_HPP_NOEXCEPT
  6117. {
  6118. swapchain = swapchain_;
  6119. return *this;
  6120. }
  6121. VULKAN_HPP_CONSTEXPR_14 BindImageMemorySwapchainInfoKHR & setImageIndex( uint32_t imageIndex_ ) VULKAN_HPP_NOEXCEPT
  6122. {
  6123. imageIndex = imageIndex_;
  6124. return *this;
  6125. }
  6126. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  6127. operator VkBindImageMemorySwapchainInfoKHR const &() const VULKAN_HPP_NOEXCEPT
  6128. {
  6129. return *reinterpret_cast<const VkBindImageMemorySwapchainInfoKHR *>( this );
  6130. }
  6131. operator VkBindImageMemorySwapchainInfoKHR &() VULKAN_HPP_NOEXCEPT
  6132. {
  6133. return *reinterpret_cast<VkBindImageMemorySwapchainInfoKHR *>( this );
  6134. }
  6135. #if defined( VULKAN_HPP_USE_REFLECT )
  6136. # if 14 <= VULKAN_HPP_CPP_VERSION
  6137. auto
  6138. # else
  6139. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::SwapchainKHR const &, uint32_t const &>
  6140. # endif
  6141. reflect() const VULKAN_HPP_NOEXCEPT
  6142. {
  6143. return std::tie( sType, pNext, swapchain, imageIndex );
  6144. }
  6145. #endif
  6146. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  6147. auto operator<=>( BindImageMemorySwapchainInfoKHR const & ) const = default;
  6148. #else
  6149. bool operator==( BindImageMemorySwapchainInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  6150. {
  6151. # if defined( VULKAN_HPP_USE_REFLECT )
  6152. return this->reflect() == rhs.reflect();
  6153. # else
  6154. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( swapchain == rhs.swapchain ) && ( imageIndex == rhs.imageIndex );
  6155. # endif
  6156. }
  6157. bool operator!=( BindImageMemorySwapchainInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  6158. {
  6159. return !operator==( rhs );
  6160. }
  6161. #endif
  6162. public:
  6163. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eBindImageMemorySwapchainInfoKHR;
  6164. const void * pNext = {};
  6165. VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain = {};
  6166. uint32_t imageIndex = {};
  6167. };
  6168. template <>
  6169. struct CppType<StructureType, StructureType::eBindImageMemorySwapchainInfoKHR>
  6170. {
  6171. using Type = BindImageMemorySwapchainInfoKHR;
  6172. };
  6173. struct BindImagePlaneMemoryInfo
  6174. {
  6175. using NativeType = VkBindImagePlaneMemoryInfo;
  6176. static const bool allowDuplicate = false;
  6177. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eBindImagePlaneMemoryInfo;
  6178. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  6179. VULKAN_HPP_CONSTEXPR BindImagePlaneMemoryInfo( VULKAN_HPP_NAMESPACE::ImageAspectFlagBits planeAspect_ = VULKAN_HPP_NAMESPACE::ImageAspectFlagBits::eColor,
  6180. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  6181. : pNext( pNext_ )
  6182. , planeAspect( planeAspect_ )
  6183. {
  6184. }
  6185. VULKAN_HPP_CONSTEXPR BindImagePlaneMemoryInfo( BindImagePlaneMemoryInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  6186. BindImagePlaneMemoryInfo( VkBindImagePlaneMemoryInfo const & rhs ) VULKAN_HPP_NOEXCEPT
  6187. : BindImagePlaneMemoryInfo( *reinterpret_cast<BindImagePlaneMemoryInfo const *>( &rhs ) )
  6188. {
  6189. }
  6190. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  6191. BindImagePlaneMemoryInfo & operator=( BindImagePlaneMemoryInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  6192. BindImagePlaneMemoryInfo & operator=( VkBindImagePlaneMemoryInfo const & rhs ) VULKAN_HPP_NOEXCEPT
  6193. {
  6194. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::BindImagePlaneMemoryInfo const *>( &rhs );
  6195. return *this;
  6196. }
  6197. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  6198. VULKAN_HPP_CONSTEXPR_14 BindImagePlaneMemoryInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  6199. {
  6200. pNext = pNext_;
  6201. return *this;
  6202. }
  6203. VULKAN_HPP_CONSTEXPR_14 BindImagePlaneMemoryInfo & setPlaneAspect( VULKAN_HPP_NAMESPACE::ImageAspectFlagBits planeAspect_ ) VULKAN_HPP_NOEXCEPT
  6204. {
  6205. planeAspect = planeAspect_;
  6206. return *this;
  6207. }
  6208. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  6209. operator VkBindImagePlaneMemoryInfo const &() const VULKAN_HPP_NOEXCEPT
  6210. {
  6211. return *reinterpret_cast<const VkBindImagePlaneMemoryInfo *>( this );
  6212. }
  6213. operator VkBindImagePlaneMemoryInfo &() VULKAN_HPP_NOEXCEPT
  6214. {
  6215. return *reinterpret_cast<VkBindImagePlaneMemoryInfo *>( this );
  6216. }
  6217. #if defined( VULKAN_HPP_USE_REFLECT )
  6218. # if 14 <= VULKAN_HPP_CPP_VERSION
  6219. auto
  6220. # else
  6221. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::ImageAspectFlagBits const &>
  6222. # endif
  6223. reflect() const VULKAN_HPP_NOEXCEPT
  6224. {
  6225. return std::tie( sType, pNext, planeAspect );
  6226. }
  6227. #endif
  6228. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  6229. auto operator<=>( BindImagePlaneMemoryInfo const & ) const = default;
  6230. #else
  6231. bool operator==( BindImagePlaneMemoryInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  6232. {
  6233. # if defined( VULKAN_HPP_USE_REFLECT )
  6234. return this->reflect() == rhs.reflect();
  6235. # else
  6236. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( planeAspect == rhs.planeAspect );
  6237. # endif
  6238. }
  6239. bool operator!=( BindImagePlaneMemoryInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  6240. {
  6241. return !operator==( rhs );
  6242. }
  6243. #endif
  6244. public:
  6245. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eBindImagePlaneMemoryInfo;
  6246. const void * pNext = {};
  6247. VULKAN_HPP_NAMESPACE::ImageAspectFlagBits planeAspect = VULKAN_HPP_NAMESPACE::ImageAspectFlagBits::eColor;
  6248. };
  6249. template <>
  6250. struct CppType<StructureType, StructureType::eBindImagePlaneMemoryInfo>
  6251. {
  6252. using Type = BindImagePlaneMemoryInfo;
  6253. };
  6254. using BindImagePlaneMemoryInfoKHR = BindImagePlaneMemoryInfo;
  6255. struct BindIndexBufferIndirectCommandNV
  6256. {
  6257. using NativeType = VkBindIndexBufferIndirectCommandNV;
  6258. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  6259. VULKAN_HPP_CONSTEXPR
  6260. BindIndexBufferIndirectCommandNV( VULKAN_HPP_NAMESPACE::DeviceAddress bufferAddress_ = {},
  6261. uint32_t size_ = {},
  6262. VULKAN_HPP_NAMESPACE::IndexType indexType_ = VULKAN_HPP_NAMESPACE::IndexType::eUint16 ) VULKAN_HPP_NOEXCEPT
  6263. : bufferAddress( bufferAddress_ )
  6264. , size( size_ )
  6265. , indexType( indexType_ )
  6266. {
  6267. }
  6268. VULKAN_HPP_CONSTEXPR BindIndexBufferIndirectCommandNV( BindIndexBufferIndirectCommandNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  6269. BindIndexBufferIndirectCommandNV( VkBindIndexBufferIndirectCommandNV const & rhs ) VULKAN_HPP_NOEXCEPT
  6270. : BindIndexBufferIndirectCommandNV( *reinterpret_cast<BindIndexBufferIndirectCommandNV const *>( &rhs ) )
  6271. {
  6272. }
  6273. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  6274. BindIndexBufferIndirectCommandNV & operator=( BindIndexBufferIndirectCommandNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  6275. BindIndexBufferIndirectCommandNV & operator=( VkBindIndexBufferIndirectCommandNV const & rhs ) VULKAN_HPP_NOEXCEPT
  6276. {
  6277. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::BindIndexBufferIndirectCommandNV const *>( &rhs );
  6278. return *this;
  6279. }
  6280. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  6281. VULKAN_HPP_CONSTEXPR_14 BindIndexBufferIndirectCommandNV & setBufferAddress( VULKAN_HPP_NAMESPACE::DeviceAddress bufferAddress_ ) VULKAN_HPP_NOEXCEPT
  6282. {
  6283. bufferAddress = bufferAddress_;
  6284. return *this;
  6285. }
  6286. VULKAN_HPP_CONSTEXPR_14 BindIndexBufferIndirectCommandNV & setSize( uint32_t size_ ) VULKAN_HPP_NOEXCEPT
  6287. {
  6288. size = size_;
  6289. return *this;
  6290. }
  6291. VULKAN_HPP_CONSTEXPR_14 BindIndexBufferIndirectCommandNV & setIndexType( VULKAN_HPP_NAMESPACE::IndexType indexType_ ) VULKAN_HPP_NOEXCEPT
  6292. {
  6293. indexType = indexType_;
  6294. return *this;
  6295. }
  6296. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  6297. operator VkBindIndexBufferIndirectCommandNV const &() const VULKAN_HPP_NOEXCEPT
  6298. {
  6299. return *reinterpret_cast<const VkBindIndexBufferIndirectCommandNV *>( this );
  6300. }
  6301. operator VkBindIndexBufferIndirectCommandNV &() VULKAN_HPP_NOEXCEPT
  6302. {
  6303. return *reinterpret_cast<VkBindIndexBufferIndirectCommandNV *>( this );
  6304. }
  6305. #if defined( VULKAN_HPP_USE_REFLECT )
  6306. # if 14 <= VULKAN_HPP_CPP_VERSION
  6307. auto
  6308. # else
  6309. std::tuple<VULKAN_HPP_NAMESPACE::DeviceAddress const &, uint32_t const &, VULKAN_HPP_NAMESPACE::IndexType const &>
  6310. # endif
  6311. reflect() const VULKAN_HPP_NOEXCEPT
  6312. {
  6313. return std::tie( bufferAddress, size, indexType );
  6314. }
  6315. #endif
  6316. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  6317. auto operator<=>( BindIndexBufferIndirectCommandNV const & ) const = default;
  6318. #else
  6319. bool operator==( BindIndexBufferIndirectCommandNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  6320. {
  6321. # if defined( VULKAN_HPP_USE_REFLECT )
  6322. return this->reflect() == rhs.reflect();
  6323. # else
  6324. return ( bufferAddress == rhs.bufferAddress ) && ( size == rhs.size ) && ( indexType == rhs.indexType );
  6325. # endif
  6326. }
  6327. bool operator!=( BindIndexBufferIndirectCommandNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  6328. {
  6329. return !operator==( rhs );
  6330. }
  6331. #endif
  6332. public:
  6333. VULKAN_HPP_NAMESPACE::DeviceAddress bufferAddress = {};
  6334. uint32_t size = {};
  6335. VULKAN_HPP_NAMESPACE::IndexType indexType = VULKAN_HPP_NAMESPACE::IndexType::eUint16;
  6336. };
  6337. struct BindShaderGroupIndirectCommandNV
  6338. {
  6339. using NativeType = VkBindShaderGroupIndirectCommandNV;
  6340. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  6341. VULKAN_HPP_CONSTEXPR BindShaderGroupIndirectCommandNV( uint32_t groupIndex_ = {} ) VULKAN_HPP_NOEXCEPT : groupIndex( groupIndex_ ) {}
  6342. VULKAN_HPP_CONSTEXPR BindShaderGroupIndirectCommandNV( BindShaderGroupIndirectCommandNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  6343. BindShaderGroupIndirectCommandNV( VkBindShaderGroupIndirectCommandNV const & rhs ) VULKAN_HPP_NOEXCEPT
  6344. : BindShaderGroupIndirectCommandNV( *reinterpret_cast<BindShaderGroupIndirectCommandNV const *>( &rhs ) )
  6345. {
  6346. }
  6347. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  6348. BindShaderGroupIndirectCommandNV & operator=( BindShaderGroupIndirectCommandNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  6349. BindShaderGroupIndirectCommandNV & operator=( VkBindShaderGroupIndirectCommandNV const & rhs ) VULKAN_HPP_NOEXCEPT
  6350. {
  6351. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::BindShaderGroupIndirectCommandNV const *>( &rhs );
  6352. return *this;
  6353. }
  6354. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  6355. VULKAN_HPP_CONSTEXPR_14 BindShaderGroupIndirectCommandNV & setGroupIndex( uint32_t groupIndex_ ) VULKAN_HPP_NOEXCEPT
  6356. {
  6357. groupIndex = groupIndex_;
  6358. return *this;
  6359. }
  6360. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  6361. operator VkBindShaderGroupIndirectCommandNV const &() const VULKAN_HPP_NOEXCEPT
  6362. {
  6363. return *reinterpret_cast<const VkBindShaderGroupIndirectCommandNV *>( this );
  6364. }
  6365. operator VkBindShaderGroupIndirectCommandNV &() VULKAN_HPP_NOEXCEPT
  6366. {
  6367. return *reinterpret_cast<VkBindShaderGroupIndirectCommandNV *>( this );
  6368. }
  6369. #if defined( VULKAN_HPP_USE_REFLECT )
  6370. # if 14 <= VULKAN_HPP_CPP_VERSION
  6371. auto
  6372. # else
  6373. std::tuple<uint32_t const &>
  6374. # endif
  6375. reflect() const VULKAN_HPP_NOEXCEPT
  6376. {
  6377. return std::tie( groupIndex );
  6378. }
  6379. #endif
  6380. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  6381. auto operator<=>( BindShaderGroupIndirectCommandNV const & ) const = default;
  6382. #else
  6383. bool operator==( BindShaderGroupIndirectCommandNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  6384. {
  6385. # if defined( VULKAN_HPP_USE_REFLECT )
  6386. return this->reflect() == rhs.reflect();
  6387. # else
  6388. return ( groupIndex == rhs.groupIndex );
  6389. # endif
  6390. }
  6391. bool operator!=( BindShaderGroupIndirectCommandNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  6392. {
  6393. return !operator==( rhs );
  6394. }
  6395. #endif
  6396. public:
  6397. uint32_t groupIndex = {};
  6398. };
  6399. struct SparseMemoryBind
  6400. {
  6401. using NativeType = VkSparseMemoryBind;
  6402. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  6403. VULKAN_HPP_CONSTEXPR SparseMemoryBind( VULKAN_HPP_NAMESPACE::DeviceSize resourceOffset_ = {},
  6404. VULKAN_HPP_NAMESPACE::DeviceSize size_ = {},
  6405. VULKAN_HPP_NAMESPACE::DeviceMemory memory_ = {},
  6406. VULKAN_HPP_NAMESPACE::DeviceSize memoryOffset_ = {},
  6407. VULKAN_HPP_NAMESPACE::SparseMemoryBindFlags flags_ = {} ) VULKAN_HPP_NOEXCEPT
  6408. : resourceOffset( resourceOffset_ )
  6409. , size( size_ )
  6410. , memory( memory_ )
  6411. , memoryOffset( memoryOffset_ )
  6412. , flags( flags_ )
  6413. {
  6414. }
  6415. VULKAN_HPP_CONSTEXPR SparseMemoryBind( SparseMemoryBind const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  6416. SparseMemoryBind( VkSparseMemoryBind const & rhs ) VULKAN_HPP_NOEXCEPT : SparseMemoryBind( *reinterpret_cast<SparseMemoryBind const *>( &rhs ) ) {}
  6417. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  6418. SparseMemoryBind & operator=( SparseMemoryBind const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  6419. SparseMemoryBind & operator=( VkSparseMemoryBind const & rhs ) VULKAN_HPP_NOEXCEPT
  6420. {
  6421. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SparseMemoryBind const *>( &rhs );
  6422. return *this;
  6423. }
  6424. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  6425. VULKAN_HPP_CONSTEXPR_14 SparseMemoryBind & setResourceOffset( VULKAN_HPP_NAMESPACE::DeviceSize resourceOffset_ ) VULKAN_HPP_NOEXCEPT
  6426. {
  6427. resourceOffset = resourceOffset_;
  6428. return *this;
  6429. }
  6430. VULKAN_HPP_CONSTEXPR_14 SparseMemoryBind & setSize( VULKAN_HPP_NAMESPACE::DeviceSize size_ ) VULKAN_HPP_NOEXCEPT
  6431. {
  6432. size = size_;
  6433. return *this;
  6434. }
  6435. VULKAN_HPP_CONSTEXPR_14 SparseMemoryBind & setMemory( VULKAN_HPP_NAMESPACE::DeviceMemory memory_ ) VULKAN_HPP_NOEXCEPT
  6436. {
  6437. memory = memory_;
  6438. return *this;
  6439. }
  6440. VULKAN_HPP_CONSTEXPR_14 SparseMemoryBind & setMemoryOffset( VULKAN_HPP_NAMESPACE::DeviceSize memoryOffset_ ) VULKAN_HPP_NOEXCEPT
  6441. {
  6442. memoryOffset = memoryOffset_;
  6443. return *this;
  6444. }
  6445. VULKAN_HPP_CONSTEXPR_14 SparseMemoryBind & setFlags( VULKAN_HPP_NAMESPACE::SparseMemoryBindFlags flags_ ) VULKAN_HPP_NOEXCEPT
  6446. {
  6447. flags = flags_;
  6448. return *this;
  6449. }
  6450. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  6451. operator VkSparseMemoryBind const &() const VULKAN_HPP_NOEXCEPT
  6452. {
  6453. return *reinterpret_cast<const VkSparseMemoryBind *>( this );
  6454. }
  6455. operator VkSparseMemoryBind &() VULKAN_HPP_NOEXCEPT
  6456. {
  6457. return *reinterpret_cast<VkSparseMemoryBind *>( this );
  6458. }
  6459. #if defined( VULKAN_HPP_USE_REFLECT )
  6460. # if 14 <= VULKAN_HPP_CPP_VERSION
  6461. auto
  6462. # else
  6463. std::tuple<VULKAN_HPP_NAMESPACE::DeviceSize const &,
  6464. VULKAN_HPP_NAMESPACE::DeviceSize const &,
  6465. VULKAN_HPP_NAMESPACE::DeviceMemory const &,
  6466. VULKAN_HPP_NAMESPACE::DeviceSize const &,
  6467. VULKAN_HPP_NAMESPACE::SparseMemoryBindFlags const &>
  6468. # endif
  6469. reflect() const VULKAN_HPP_NOEXCEPT
  6470. {
  6471. return std::tie( resourceOffset, size, memory, memoryOffset, flags );
  6472. }
  6473. #endif
  6474. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  6475. auto operator<=>( SparseMemoryBind const & ) const = default;
  6476. #else
  6477. bool operator==( SparseMemoryBind const & rhs ) const VULKAN_HPP_NOEXCEPT
  6478. {
  6479. # if defined( VULKAN_HPP_USE_REFLECT )
  6480. return this->reflect() == rhs.reflect();
  6481. # else
  6482. return ( resourceOffset == rhs.resourceOffset ) && ( size == rhs.size ) && ( memory == rhs.memory ) && ( memoryOffset == rhs.memoryOffset ) &&
  6483. ( flags == rhs.flags );
  6484. # endif
  6485. }
  6486. bool operator!=( SparseMemoryBind const & rhs ) const VULKAN_HPP_NOEXCEPT
  6487. {
  6488. return !operator==( rhs );
  6489. }
  6490. #endif
  6491. public:
  6492. VULKAN_HPP_NAMESPACE::DeviceSize resourceOffset = {};
  6493. VULKAN_HPP_NAMESPACE::DeviceSize size = {};
  6494. VULKAN_HPP_NAMESPACE::DeviceMemory memory = {};
  6495. VULKAN_HPP_NAMESPACE::DeviceSize memoryOffset = {};
  6496. VULKAN_HPP_NAMESPACE::SparseMemoryBindFlags flags = {};
  6497. };
  6498. struct SparseBufferMemoryBindInfo
  6499. {
  6500. using NativeType = VkSparseBufferMemoryBindInfo;
  6501. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  6502. VULKAN_HPP_CONSTEXPR SparseBufferMemoryBindInfo( VULKAN_HPP_NAMESPACE::Buffer buffer_ = {},
  6503. uint32_t bindCount_ = {},
  6504. const VULKAN_HPP_NAMESPACE::SparseMemoryBind * pBinds_ = {} ) VULKAN_HPP_NOEXCEPT
  6505. : buffer( buffer_ )
  6506. , bindCount( bindCount_ )
  6507. , pBinds( pBinds_ )
  6508. {
  6509. }
  6510. VULKAN_HPP_CONSTEXPR SparseBufferMemoryBindInfo( SparseBufferMemoryBindInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  6511. SparseBufferMemoryBindInfo( VkSparseBufferMemoryBindInfo const & rhs ) VULKAN_HPP_NOEXCEPT
  6512. : SparseBufferMemoryBindInfo( *reinterpret_cast<SparseBufferMemoryBindInfo const *>( &rhs ) )
  6513. {
  6514. }
  6515. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  6516. SparseBufferMemoryBindInfo( VULKAN_HPP_NAMESPACE::Buffer buffer_,
  6517. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::SparseMemoryBind> const & binds_ )
  6518. : buffer( buffer_ ), bindCount( static_cast<uint32_t>( binds_.size() ) ), pBinds( binds_.data() )
  6519. {
  6520. }
  6521. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  6522. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  6523. SparseBufferMemoryBindInfo & operator=( SparseBufferMemoryBindInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  6524. SparseBufferMemoryBindInfo & operator=( VkSparseBufferMemoryBindInfo const & rhs ) VULKAN_HPP_NOEXCEPT
  6525. {
  6526. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SparseBufferMemoryBindInfo const *>( &rhs );
  6527. return *this;
  6528. }
  6529. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  6530. VULKAN_HPP_CONSTEXPR_14 SparseBufferMemoryBindInfo & setBuffer( VULKAN_HPP_NAMESPACE::Buffer buffer_ ) VULKAN_HPP_NOEXCEPT
  6531. {
  6532. buffer = buffer_;
  6533. return *this;
  6534. }
  6535. VULKAN_HPP_CONSTEXPR_14 SparseBufferMemoryBindInfo & setBindCount( uint32_t bindCount_ ) VULKAN_HPP_NOEXCEPT
  6536. {
  6537. bindCount = bindCount_;
  6538. return *this;
  6539. }
  6540. VULKAN_HPP_CONSTEXPR_14 SparseBufferMemoryBindInfo & setPBinds( const VULKAN_HPP_NAMESPACE::SparseMemoryBind * pBinds_ ) VULKAN_HPP_NOEXCEPT
  6541. {
  6542. pBinds = pBinds_;
  6543. return *this;
  6544. }
  6545. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  6546. SparseBufferMemoryBindInfo &
  6547. setBinds( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::SparseMemoryBind> const & binds_ ) VULKAN_HPP_NOEXCEPT
  6548. {
  6549. bindCount = static_cast<uint32_t>( binds_.size() );
  6550. pBinds = binds_.data();
  6551. return *this;
  6552. }
  6553. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  6554. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  6555. operator VkSparseBufferMemoryBindInfo const &() const VULKAN_HPP_NOEXCEPT
  6556. {
  6557. return *reinterpret_cast<const VkSparseBufferMemoryBindInfo *>( this );
  6558. }
  6559. operator VkSparseBufferMemoryBindInfo &() VULKAN_HPP_NOEXCEPT
  6560. {
  6561. return *reinterpret_cast<VkSparseBufferMemoryBindInfo *>( this );
  6562. }
  6563. #if defined( VULKAN_HPP_USE_REFLECT )
  6564. # if 14 <= VULKAN_HPP_CPP_VERSION
  6565. auto
  6566. # else
  6567. std::tuple<VULKAN_HPP_NAMESPACE::Buffer const &, uint32_t const &, const VULKAN_HPP_NAMESPACE::SparseMemoryBind * const &>
  6568. # endif
  6569. reflect() const VULKAN_HPP_NOEXCEPT
  6570. {
  6571. return std::tie( buffer, bindCount, pBinds );
  6572. }
  6573. #endif
  6574. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  6575. auto operator<=>( SparseBufferMemoryBindInfo const & ) const = default;
  6576. #else
  6577. bool operator==( SparseBufferMemoryBindInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  6578. {
  6579. # if defined( VULKAN_HPP_USE_REFLECT )
  6580. return this->reflect() == rhs.reflect();
  6581. # else
  6582. return ( buffer == rhs.buffer ) && ( bindCount == rhs.bindCount ) && ( pBinds == rhs.pBinds );
  6583. # endif
  6584. }
  6585. bool operator!=( SparseBufferMemoryBindInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  6586. {
  6587. return !operator==( rhs );
  6588. }
  6589. #endif
  6590. public:
  6591. VULKAN_HPP_NAMESPACE::Buffer buffer = {};
  6592. uint32_t bindCount = {};
  6593. const VULKAN_HPP_NAMESPACE::SparseMemoryBind * pBinds = {};
  6594. };
  6595. struct SparseImageOpaqueMemoryBindInfo
  6596. {
  6597. using NativeType = VkSparseImageOpaqueMemoryBindInfo;
  6598. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  6599. VULKAN_HPP_CONSTEXPR SparseImageOpaqueMemoryBindInfo( VULKAN_HPP_NAMESPACE::Image image_ = {},
  6600. uint32_t bindCount_ = {},
  6601. const VULKAN_HPP_NAMESPACE::SparseMemoryBind * pBinds_ = {} ) VULKAN_HPP_NOEXCEPT
  6602. : image( image_ )
  6603. , bindCount( bindCount_ )
  6604. , pBinds( pBinds_ )
  6605. {
  6606. }
  6607. VULKAN_HPP_CONSTEXPR SparseImageOpaqueMemoryBindInfo( SparseImageOpaqueMemoryBindInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  6608. SparseImageOpaqueMemoryBindInfo( VkSparseImageOpaqueMemoryBindInfo const & rhs ) VULKAN_HPP_NOEXCEPT
  6609. : SparseImageOpaqueMemoryBindInfo( *reinterpret_cast<SparseImageOpaqueMemoryBindInfo const *>( &rhs ) )
  6610. {
  6611. }
  6612. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  6613. SparseImageOpaqueMemoryBindInfo( VULKAN_HPP_NAMESPACE::Image image_,
  6614. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::SparseMemoryBind> const & binds_ )
  6615. : image( image_ ), bindCount( static_cast<uint32_t>( binds_.size() ) ), pBinds( binds_.data() )
  6616. {
  6617. }
  6618. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  6619. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  6620. SparseImageOpaqueMemoryBindInfo & operator=( SparseImageOpaqueMemoryBindInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  6621. SparseImageOpaqueMemoryBindInfo & operator=( VkSparseImageOpaqueMemoryBindInfo const & rhs ) VULKAN_HPP_NOEXCEPT
  6622. {
  6623. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SparseImageOpaqueMemoryBindInfo const *>( &rhs );
  6624. return *this;
  6625. }
  6626. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  6627. VULKAN_HPP_CONSTEXPR_14 SparseImageOpaqueMemoryBindInfo & setImage( VULKAN_HPP_NAMESPACE::Image image_ ) VULKAN_HPP_NOEXCEPT
  6628. {
  6629. image = image_;
  6630. return *this;
  6631. }
  6632. VULKAN_HPP_CONSTEXPR_14 SparseImageOpaqueMemoryBindInfo & setBindCount( uint32_t bindCount_ ) VULKAN_HPP_NOEXCEPT
  6633. {
  6634. bindCount = bindCount_;
  6635. return *this;
  6636. }
  6637. VULKAN_HPP_CONSTEXPR_14 SparseImageOpaqueMemoryBindInfo & setPBinds( const VULKAN_HPP_NAMESPACE::SparseMemoryBind * pBinds_ ) VULKAN_HPP_NOEXCEPT
  6638. {
  6639. pBinds = pBinds_;
  6640. return *this;
  6641. }
  6642. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  6643. SparseImageOpaqueMemoryBindInfo &
  6644. setBinds( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::SparseMemoryBind> const & binds_ ) VULKAN_HPP_NOEXCEPT
  6645. {
  6646. bindCount = static_cast<uint32_t>( binds_.size() );
  6647. pBinds = binds_.data();
  6648. return *this;
  6649. }
  6650. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  6651. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  6652. operator VkSparseImageOpaqueMemoryBindInfo const &() const VULKAN_HPP_NOEXCEPT
  6653. {
  6654. return *reinterpret_cast<const VkSparseImageOpaqueMemoryBindInfo *>( this );
  6655. }
  6656. operator VkSparseImageOpaqueMemoryBindInfo &() VULKAN_HPP_NOEXCEPT
  6657. {
  6658. return *reinterpret_cast<VkSparseImageOpaqueMemoryBindInfo *>( this );
  6659. }
  6660. #if defined( VULKAN_HPP_USE_REFLECT )
  6661. # if 14 <= VULKAN_HPP_CPP_VERSION
  6662. auto
  6663. # else
  6664. std::tuple<VULKAN_HPP_NAMESPACE::Image const &, uint32_t const &, const VULKAN_HPP_NAMESPACE::SparseMemoryBind * const &>
  6665. # endif
  6666. reflect() const VULKAN_HPP_NOEXCEPT
  6667. {
  6668. return std::tie( image, bindCount, pBinds );
  6669. }
  6670. #endif
  6671. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  6672. auto operator<=>( SparseImageOpaqueMemoryBindInfo const & ) const = default;
  6673. #else
  6674. bool operator==( SparseImageOpaqueMemoryBindInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  6675. {
  6676. # if defined( VULKAN_HPP_USE_REFLECT )
  6677. return this->reflect() == rhs.reflect();
  6678. # else
  6679. return ( image == rhs.image ) && ( bindCount == rhs.bindCount ) && ( pBinds == rhs.pBinds );
  6680. # endif
  6681. }
  6682. bool operator!=( SparseImageOpaqueMemoryBindInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  6683. {
  6684. return !operator==( rhs );
  6685. }
  6686. #endif
  6687. public:
  6688. VULKAN_HPP_NAMESPACE::Image image = {};
  6689. uint32_t bindCount = {};
  6690. const VULKAN_HPP_NAMESPACE::SparseMemoryBind * pBinds = {};
  6691. };
  6692. struct ImageSubresource
  6693. {
  6694. using NativeType = VkImageSubresource;
  6695. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  6696. VULKAN_HPP_CONSTEXPR
  6697. ImageSubresource( VULKAN_HPP_NAMESPACE::ImageAspectFlags aspectMask_ = {}, uint32_t mipLevel_ = {}, uint32_t arrayLayer_ = {} ) VULKAN_HPP_NOEXCEPT
  6698. : aspectMask( aspectMask_ )
  6699. , mipLevel( mipLevel_ )
  6700. , arrayLayer( arrayLayer_ )
  6701. {
  6702. }
  6703. VULKAN_HPP_CONSTEXPR ImageSubresource( ImageSubresource const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  6704. ImageSubresource( VkImageSubresource const & rhs ) VULKAN_HPP_NOEXCEPT : ImageSubresource( *reinterpret_cast<ImageSubresource const *>( &rhs ) ) {}
  6705. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  6706. ImageSubresource & operator=( ImageSubresource const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  6707. ImageSubresource & operator=( VkImageSubresource const & rhs ) VULKAN_HPP_NOEXCEPT
  6708. {
  6709. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ImageSubresource const *>( &rhs );
  6710. return *this;
  6711. }
  6712. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  6713. VULKAN_HPP_CONSTEXPR_14 ImageSubresource & setAspectMask( VULKAN_HPP_NAMESPACE::ImageAspectFlags aspectMask_ ) VULKAN_HPP_NOEXCEPT
  6714. {
  6715. aspectMask = aspectMask_;
  6716. return *this;
  6717. }
  6718. VULKAN_HPP_CONSTEXPR_14 ImageSubresource & setMipLevel( uint32_t mipLevel_ ) VULKAN_HPP_NOEXCEPT
  6719. {
  6720. mipLevel = mipLevel_;
  6721. return *this;
  6722. }
  6723. VULKAN_HPP_CONSTEXPR_14 ImageSubresource & setArrayLayer( uint32_t arrayLayer_ ) VULKAN_HPP_NOEXCEPT
  6724. {
  6725. arrayLayer = arrayLayer_;
  6726. return *this;
  6727. }
  6728. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  6729. operator VkImageSubresource const &() const VULKAN_HPP_NOEXCEPT
  6730. {
  6731. return *reinterpret_cast<const VkImageSubresource *>( this );
  6732. }
  6733. operator VkImageSubresource &() VULKAN_HPP_NOEXCEPT
  6734. {
  6735. return *reinterpret_cast<VkImageSubresource *>( this );
  6736. }
  6737. #if defined( VULKAN_HPP_USE_REFLECT )
  6738. # if 14 <= VULKAN_HPP_CPP_VERSION
  6739. auto
  6740. # else
  6741. std::tuple<VULKAN_HPP_NAMESPACE::ImageAspectFlags const &, uint32_t const &, uint32_t const &>
  6742. # endif
  6743. reflect() const VULKAN_HPP_NOEXCEPT
  6744. {
  6745. return std::tie( aspectMask, mipLevel, arrayLayer );
  6746. }
  6747. #endif
  6748. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  6749. auto operator<=>( ImageSubresource const & ) const = default;
  6750. #else
  6751. bool operator==( ImageSubresource const & rhs ) const VULKAN_HPP_NOEXCEPT
  6752. {
  6753. # if defined( VULKAN_HPP_USE_REFLECT )
  6754. return this->reflect() == rhs.reflect();
  6755. # else
  6756. return ( aspectMask == rhs.aspectMask ) && ( mipLevel == rhs.mipLevel ) && ( arrayLayer == rhs.arrayLayer );
  6757. # endif
  6758. }
  6759. bool operator!=( ImageSubresource const & rhs ) const VULKAN_HPP_NOEXCEPT
  6760. {
  6761. return !operator==( rhs );
  6762. }
  6763. #endif
  6764. public:
  6765. VULKAN_HPP_NAMESPACE::ImageAspectFlags aspectMask = {};
  6766. uint32_t mipLevel = {};
  6767. uint32_t arrayLayer = {};
  6768. };
  6769. struct Offset3D
  6770. {
  6771. using NativeType = VkOffset3D;
  6772. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  6773. VULKAN_HPP_CONSTEXPR Offset3D( int32_t x_ = {}, int32_t y_ = {}, int32_t z_ = {} ) VULKAN_HPP_NOEXCEPT
  6774. : x( x_ )
  6775. , y( y_ )
  6776. , z( z_ )
  6777. {
  6778. }
  6779. VULKAN_HPP_CONSTEXPR Offset3D( Offset3D const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  6780. Offset3D( VkOffset3D const & rhs ) VULKAN_HPP_NOEXCEPT : Offset3D( *reinterpret_cast<Offset3D const *>( &rhs ) ) {}
  6781. explicit Offset3D( Offset2D const & offset2D, int32_t z_ = {} ) : x( offset2D.x ), y( offset2D.y ), z( z_ ) {}
  6782. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  6783. Offset3D & operator=( Offset3D const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  6784. Offset3D & operator=( VkOffset3D const & rhs ) VULKAN_HPP_NOEXCEPT
  6785. {
  6786. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::Offset3D const *>( &rhs );
  6787. return *this;
  6788. }
  6789. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  6790. VULKAN_HPP_CONSTEXPR_14 Offset3D & setX( int32_t x_ ) VULKAN_HPP_NOEXCEPT
  6791. {
  6792. x = x_;
  6793. return *this;
  6794. }
  6795. VULKAN_HPP_CONSTEXPR_14 Offset3D & setY( int32_t y_ ) VULKAN_HPP_NOEXCEPT
  6796. {
  6797. y = y_;
  6798. return *this;
  6799. }
  6800. VULKAN_HPP_CONSTEXPR_14 Offset3D & setZ( int32_t z_ ) VULKAN_HPP_NOEXCEPT
  6801. {
  6802. z = z_;
  6803. return *this;
  6804. }
  6805. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  6806. operator VkOffset3D const &() const VULKAN_HPP_NOEXCEPT
  6807. {
  6808. return *reinterpret_cast<const VkOffset3D *>( this );
  6809. }
  6810. operator VkOffset3D &() VULKAN_HPP_NOEXCEPT
  6811. {
  6812. return *reinterpret_cast<VkOffset3D *>( this );
  6813. }
  6814. #if defined( VULKAN_HPP_USE_REFLECT )
  6815. # if 14 <= VULKAN_HPP_CPP_VERSION
  6816. auto
  6817. # else
  6818. std::tuple<int32_t const &, int32_t const &, int32_t const &>
  6819. # endif
  6820. reflect() const VULKAN_HPP_NOEXCEPT
  6821. {
  6822. return std::tie( x, y, z );
  6823. }
  6824. #endif
  6825. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  6826. auto operator<=>( Offset3D const & ) const = default;
  6827. #else
  6828. bool operator==( Offset3D const & rhs ) const VULKAN_HPP_NOEXCEPT
  6829. {
  6830. # if defined( VULKAN_HPP_USE_REFLECT )
  6831. return this->reflect() == rhs.reflect();
  6832. # else
  6833. return ( x == rhs.x ) && ( y == rhs.y ) && ( z == rhs.z );
  6834. # endif
  6835. }
  6836. bool operator!=( Offset3D const & rhs ) const VULKAN_HPP_NOEXCEPT
  6837. {
  6838. return !operator==( rhs );
  6839. }
  6840. #endif
  6841. public:
  6842. int32_t x = {};
  6843. int32_t y = {};
  6844. int32_t z = {};
  6845. };
  6846. struct Extent3D
  6847. {
  6848. using NativeType = VkExtent3D;
  6849. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  6850. VULKAN_HPP_CONSTEXPR Extent3D( uint32_t width_ = {}, uint32_t height_ = {}, uint32_t depth_ = {} ) VULKAN_HPP_NOEXCEPT
  6851. : width( width_ )
  6852. , height( height_ )
  6853. , depth( depth_ )
  6854. {
  6855. }
  6856. VULKAN_HPP_CONSTEXPR Extent3D( Extent3D const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  6857. Extent3D( VkExtent3D const & rhs ) VULKAN_HPP_NOEXCEPT : Extent3D( *reinterpret_cast<Extent3D const *>( &rhs ) ) {}
  6858. explicit Extent3D( Extent2D const & extent2D, uint32_t depth_ = {} ) : width( extent2D.width ), height( extent2D.height ), depth( depth_ ) {}
  6859. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  6860. Extent3D & operator=( Extent3D const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  6861. Extent3D & operator=( VkExtent3D const & rhs ) VULKAN_HPP_NOEXCEPT
  6862. {
  6863. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::Extent3D const *>( &rhs );
  6864. return *this;
  6865. }
  6866. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  6867. VULKAN_HPP_CONSTEXPR_14 Extent3D & setWidth( uint32_t width_ ) VULKAN_HPP_NOEXCEPT
  6868. {
  6869. width = width_;
  6870. return *this;
  6871. }
  6872. VULKAN_HPP_CONSTEXPR_14 Extent3D & setHeight( uint32_t height_ ) VULKAN_HPP_NOEXCEPT
  6873. {
  6874. height = height_;
  6875. return *this;
  6876. }
  6877. VULKAN_HPP_CONSTEXPR_14 Extent3D & setDepth( uint32_t depth_ ) VULKAN_HPP_NOEXCEPT
  6878. {
  6879. depth = depth_;
  6880. return *this;
  6881. }
  6882. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  6883. operator VkExtent3D const &() const VULKAN_HPP_NOEXCEPT
  6884. {
  6885. return *reinterpret_cast<const VkExtent3D *>( this );
  6886. }
  6887. operator VkExtent3D &() VULKAN_HPP_NOEXCEPT
  6888. {
  6889. return *reinterpret_cast<VkExtent3D *>( this );
  6890. }
  6891. #if defined( VULKAN_HPP_USE_REFLECT )
  6892. # if 14 <= VULKAN_HPP_CPP_VERSION
  6893. auto
  6894. # else
  6895. std::tuple<uint32_t const &, uint32_t const &, uint32_t const &>
  6896. # endif
  6897. reflect() const VULKAN_HPP_NOEXCEPT
  6898. {
  6899. return std::tie( width, height, depth );
  6900. }
  6901. #endif
  6902. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  6903. auto operator<=>( Extent3D const & ) const = default;
  6904. #else
  6905. bool operator==( Extent3D const & rhs ) const VULKAN_HPP_NOEXCEPT
  6906. {
  6907. # if defined( VULKAN_HPP_USE_REFLECT )
  6908. return this->reflect() == rhs.reflect();
  6909. # else
  6910. return ( width == rhs.width ) && ( height == rhs.height ) && ( depth == rhs.depth );
  6911. # endif
  6912. }
  6913. bool operator!=( Extent3D const & rhs ) const VULKAN_HPP_NOEXCEPT
  6914. {
  6915. return !operator==( rhs );
  6916. }
  6917. #endif
  6918. public:
  6919. uint32_t width = {};
  6920. uint32_t height = {};
  6921. uint32_t depth = {};
  6922. };
  6923. struct SparseImageMemoryBind
  6924. {
  6925. using NativeType = VkSparseImageMemoryBind;
  6926. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  6927. VULKAN_HPP_CONSTEXPR SparseImageMemoryBind( VULKAN_HPP_NAMESPACE::ImageSubresource subresource_ = {},
  6928. VULKAN_HPP_NAMESPACE::Offset3D offset_ = {},
  6929. VULKAN_HPP_NAMESPACE::Extent3D extent_ = {},
  6930. VULKAN_HPP_NAMESPACE::DeviceMemory memory_ = {},
  6931. VULKAN_HPP_NAMESPACE::DeviceSize memoryOffset_ = {},
  6932. VULKAN_HPP_NAMESPACE::SparseMemoryBindFlags flags_ = {} ) VULKAN_HPP_NOEXCEPT
  6933. : subresource( subresource_ )
  6934. , offset( offset_ )
  6935. , extent( extent_ )
  6936. , memory( memory_ )
  6937. , memoryOffset( memoryOffset_ )
  6938. , flags( flags_ )
  6939. {
  6940. }
  6941. VULKAN_HPP_CONSTEXPR SparseImageMemoryBind( SparseImageMemoryBind const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  6942. SparseImageMemoryBind( VkSparseImageMemoryBind const & rhs ) VULKAN_HPP_NOEXCEPT
  6943. : SparseImageMemoryBind( *reinterpret_cast<SparseImageMemoryBind const *>( &rhs ) )
  6944. {
  6945. }
  6946. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  6947. SparseImageMemoryBind & operator=( SparseImageMemoryBind const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  6948. SparseImageMemoryBind & operator=( VkSparseImageMemoryBind const & rhs ) VULKAN_HPP_NOEXCEPT
  6949. {
  6950. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SparseImageMemoryBind const *>( &rhs );
  6951. return *this;
  6952. }
  6953. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  6954. VULKAN_HPP_CONSTEXPR_14 SparseImageMemoryBind & setSubresource( VULKAN_HPP_NAMESPACE::ImageSubresource const & subresource_ ) VULKAN_HPP_NOEXCEPT
  6955. {
  6956. subresource = subresource_;
  6957. return *this;
  6958. }
  6959. VULKAN_HPP_CONSTEXPR_14 SparseImageMemoryBind & setOffset( VULKAN_HPP_NAMESPACE::Offset3D const & offset_ ) VULKAN_HPP_NOEXCEPT
  6960. {
  6961. offset = offset_;
  6962. return *this;
  6963. }
  6964. VULKAN_HPP_CONSTEXPR_14 SparseImageMemoryBind & setExtent( VULKAN_HPP_NAMESPACE::Extent3D const & extent_ ) VULKAN_HPP_NOEXCEPT
  6965. {
  6966. extent = extent_;
  6967. return *this;
  6968. }
  6969. VULKAN_HPP_CONSTEXPR_14 SparseImageMemoryBind & setMemory( VULKAN_HPP_NAMESPACE::DeviceMemory memory_ ) VULKAN_HPP_NOEXCEPT
  6970. {
  6971. memory = memory_;
  6972. return *this;
  6973. }
  6974. VULKAN_HPP_CONSTEXPR_14 SparseImageMemoryBind & setMemoryOffset( VULKAN_HPP_NAMESPACE::DeviceSize memoryOffset_ ) VULKAN_HPP_NOEXCEPT
  6975. {
  6976. memoryOffset = memoryOffset_;
  6977. return *this;
  6978. }
  6979. VULKAN_HPP_CONSTEXPR_14 SparseImageMemoryBind & setFlags( VULKAN_HPP_NAMESPACE::SparseMemoryBindFlags flags_ ) VULKAN_HPP_NOEXCEPT
  6980. {
  6981. flags = flags_;
  6982. return *this;
  6983. }
  6984. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  6985. operator VkSparseImageMemoryBind const &() const VULKAN_HPP_NOEXCEPT
  6986. {
  6987. return *reinterpret_cast<const VkSparseImageMemoryBind *>( this );
  6988. }
  6989. operator VkSparseImageMemoryBind &() VULKAN_HPP_NOEXCEPT
  6990. {
  6991. return *reinterpret_cast<VkSparseImageMemoryBind *>( this );
  6992. }
  6993. #if defined( VULKAN_HPP_USE_REFLECT )
  6994. # if 14 <= VULKAN_HPP_CPP_VERSION
  6995. auto
  6996. # else
  6997. std::tuple<VULKAN_HPP_NAMESPACE::ImageSubresource const &,
  6998. VULKAN_HPP_NAMESPACE::Offset3D const &,
  6999. VULKAN_HPP_NAMESPACE::Extent3D const &,
  7000. VULKAN_HPP_NAMESPACE::DeviceMemory const &,
  7001. VULKAN_HPP_NAMESPACE::DeviceSize const &,
  7002. VULKAN_HPP_NAMESPACE::SparseMemoryBindFlags const &>
  7003. # endif
  7004. reflect() const VULKAN_HPP_NOEXCEPT
  7005. {
  7006. return std::tie( subresource, offset, extent, memory, memoryOffset, flags );
  7007. }
  7008. #endif
  7009. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  7010. auto operator<=>( SparseImageMemoryBind const & ) const = default;
  7011. #else
  7012. bool operator==( SparseImageMemoryBind const & rhs ) const VULKAN_HPP_NOEXCEPT
  7013. {
  7014. # if defined( VULKAN_HPP_USE_REFLECT )
  7015. return this->reflect() == rhs.reflect();
  7016. # else
  7017. return ( subresource == rhs.subresource ) && ( offset == rhs.offset ) && ( extent == rhs.extent ) && ( memory == rhs.memory ) &&
  7018. ( memoryOffset == rhs.memoryOffset ) && ( flags == rhs.flags );
  7019. # endif
  7020. }
  7021. bool operator!=( SparseImageMemoryBind const & rhs ) const VULKAN_HPP_NOEXCEPT
  7022. {
  7023. return !operator==( rhs );
  7024. }
  7025. #endif
  7026. public:
  7027. VULKAN_HPP_NAMESPACE::ImageSubresource subresource = {};
  7028. VULKAN_HPP_NAMESPACE::Offset3D offset = {};
  7029. VULKAN_HPP_NAMESPACE::Extent3D extent = {};
  7030. VULKAN_HPP_NAMESPACE::DeviceMemory memory = {};
  7031. VULKAN_HPP_NAMESPACE::DeviceSize memoryOffset = {};
  7032. VULKAN_HPP_NAMESPACE::SparseMemoryBindFlags flags = {};
  7033. };
  7034. struct SparseImageMemoryBindInfo
  7035. {
  7036. using NativeType = VkSparseImageMemoryBindInfo;
  7037. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  7038. VULKAN_HPP_CONSTEXPR SparseImageMemoryBindInfo( VULKAN_HPP_NAMESPACE::Image image_ = {},
  7039. uint32_t bindCount_ = {},
  7040. const VULKAN_HPP_NAMESPACE::SparseImageMemoryBind * pBinds_ = {} ) VULKAN_HPP_NOEXCEPT
  7041. : image( image_ )
  7042. , bindCount( bindCount_ )
  7043. , pBinds( pBinds_ )
  7044. {
  7045. }
  7046. VULKAN_HPP_CONSTEXPR SparseImageMemoryBindInfo( SparseImageMemoryBindInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  7047. SparseImageMemoryBindInfo( VkSparseImageMemoryBindInfo const & rhs ) VULKAN_HPP_NOEXCEPT
  7048. : SparseImageMemoryBindInfo( *reinterpret_cast<SparseImageMemoryBindInfo const *>( &rhs ) )
  7049. {
  7050. }
  7051. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  7052. SparseImageMemoryBindInfo( VULKAN_HPP_NAMESPACE::Image image_,
  7053. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::SparseImageMemoryBind> const & binds_ )
  7054. : image( image_ ), bindCount( static_cast<uint32_t>( binds_.size() ) ), pBinds( binds_.data() )
  7055. {
  7056. }
  7057. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  7058. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  7059. SparseImageMemoryBindInfo & operator=( SparseImageMemoryBindInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  7060. SparseImageMemoryBindInfo & operator=( VkSparseImageMemoryBindInfo const & rhs ) VULKAN_HPP_NOEXCEPT
  7061. {
  7062. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SparseImageMemoryBindInfo const *>( &rhs );
  7063. return *this;
  7064. }
  7065. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  7066. VULKAN_HPP_CONSTEXPR_14 SparseImageMemoryBindInfo & setImage( VULKAN_HPP_NAMESPACE::Image image_ ) VULKAN_HPP_NOEXCEPT
  7067. {
  7068. image = image_;
  7069. return *this;
  7070. }
  7071. VULKAN_HPP_CONSTEXPR_14 SparseImageMemoryBindInfo & setBindCount( uint32_t bindCount_ ) VULKAN_HPP_NOEXCEPT
  7072. {
  7073. bindCount = bindCount_;
  7074. return *this;
  7075. }
  7076. VULKAN_HPP_CONSTEXPR_14 SparseImageMemoryBindInfo & setPBinds( const VULKAN_HPP_NAMESPACE::SparseImageMemoryBind * pBinds_ ) VULKAN_HPP_NOEXCEPT
  7077. {
  7078. pBinds = pBinds_;
  7079. return *this;
  7080. }
  7081. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  7082. SparseImageMemoryBindInfo &
  7083. setBinds( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::SparseImageMemoryBind> const & binds_ ) VULKAN_HPP_NOEXCEPT
  7084. {
  7085. bindCount = static_cast<uint32_t>( binds_.size() );
  7086. pBinds = binds_.data();
  7087. return *this;
  7088. }
  7089. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  7090. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  7091. operator VkSparseImageMemoryBindInfo const &() const VULKAN_HPP_NOEXCEPT
  7092. {
  7093. return *reinterpret_cast<const VkSparseImageMemoryBindInfo *>( this );
  7094. }
  7095. operator VkSparseImageMemoryBindInfo &() VULKAN_HPP_NOEXCEPT
  7096. {
  7097. return *reinterpret_cast<VkSparseImageMemoryBindInfo *>( this );
  7098. }
  7099. #if defined( VULKAN_HPP_USE_REFLECT )
  7100. # if 14 <= VULKAN_HPP_CPP_VERSION
  7101. auto
  7102. # else
  7103. std::tuple<VULKAN_HPP_NAMESPACE::Image const &, uint32_t const &, const VULKAN_HPP_NAMESPACE::SparseImageMemoryBind * const &>
  7104. # endif
  7105. reflect() const VULKAN_HPP_NOEXCEPT
  7106. {
  7107. return std::tie( image, bindCount, pBinds );
  7108. }
  7109. #endif
  7110. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  7111. auto operator<=>( SparseImageMemoryBindInfo const & ) const = default;
  7112. #else
  7113. bool operator==( SparseImageMemoryBindInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  7114. {
  7115. # if defined( VULKAN_HPP_USE_REFLECT )
  7116. return this->reflect() == rhs.reflect();
  7117. # else
  7118. return ( image == rhs.image ) && ( bindCount == rhs.bindCount ) && ( pBinds == rhs.pBinds );
  7119. # endif
  7120. }
  7121. bool operator!=( SparseImageMemoryBindInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  7122. {
  7123. return !operator==( rhs );
  7124. }
  7125. #endif
  7126. public:
  7127. VULKAN_HPP_NAMESPACE::Image image = {};
  7128. uint32_t bindCount = {};
  7129. const VULKAN_HPP_NAMESPACE::SparseImageMemoryBind * pBinds = {};
  7130. };
  7131. struct BindSparseInfo
  7132. {
  7133. using NativeType = VkBindSparseInfo;
  7134. static const bool allowDuplicate = false;
  7135. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eBindSparseInfo;
  7136. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  7137. VULKAN_HPP_CONSTEXPR BindSparseInfo( uint32_t waitSemaphoreCount_ = {},
  7138. const VULKAN_HPP_NAMESPACE::Semaphore * pWaitSemaphores_ = {},
  7139. uint32_t bufferBindCount_ = {},
  7140. const VULKAN_HPP_NAMESPACE::SparseBufferMemoryBindInfo * pBufferBinds_ = {},
  7141. uint32_t imageOpaqueBindCount_ = {},
  7142. const VULKAN_HPP_NAMESPACE::SparseImageOpaqueMemoryBindInfo * pImageOpaqueBinds_ = {},
  7143. uint32_t imageBindCount_ = {},
  7144. const VULKAN_HPP_NAMESPACE::SparseImageMemoryBindInfo * pImageBinds_ = {},
  7145. uint32_t signalSemaphoreCount_ = {},
  7146. const VULKAN_HPP_NAMESPACE::Semaphore * pSignalSemaphores_ = {},
  7147. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  7148. : pNext( pNext_ )
  7149. , waitSemaphoreCount( waitSemaphoreCount_ )
  7150. , pWaitSemaphores( pWaitSemaphores_ )
  7151. , bufferBindCount( bufferBindCount_ )
  7152. , pBufferBinds( pBufferBinds_ )
  7153. , imageOpaqueBindCount( imageOpaqueBindCount_ )
  7154. , pImageOpaqueBinds( pImageOpaqueBinds_ )
  7155. , imageBindCount( imageBindCount_ )
  7156. , pImageBinds( pImageBinds_ )
  7157. , signalSemaphoreCount( signalSemaphoreCount_ )
  7158. , pSignalSemaphores( pSignalSemaphores_ )
  7159. {
  7160. }
  7161. VULKAN_HPP_CONSTEXPR BindSparseInfo( BindSparseInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  7162. BindSparseInfo( VkBindSparseInfo const & rhs ) VULKAN_HPP_NOEXCEPT : BindSparseInfo( *reinterpret_cast<BindSparseInfo const *>( &rhs ) ) {}
  7163. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  7164. BindSparseInfo( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::Semaphore> const & waitSemaphores_,
  7165. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::SparseBufferMemoryBindInfo> const & bufferBinds_ = {},
  7166. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::SparseImageOpaqueMemoryBindInfo> const & imageOpaqueBinds_ = {},
  7167. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::SparseImageMemoryBindInfo> const & imageBinds_ = {},
  7168. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::Semaphore> const & signalSemaphores_ = {},
  7169. const void * pNext_ = nullptr )
  7170. : pNext( pNext_ )
  7171. , waitSemaphoreCount( static_cast<uint32_t>( waitSemaphores_.size() ) )
  7172. , pWaitSemaphores( waitSemaphores_.data() )
  7173. , bufferBindCount( static_cast<uint32_t>( bufferBinds_.size() ) )
  7174. , pBufferBinds( bufferBinds_.data() )
  7175. , imageOpaqueBindCount( static_cast<uint32_t>( imageOpaqueBinds_.size() ) )
  7176. , pImageOpaqueBinds( imageOpaqueBinds_.data() )
  7177. , imageBindCount( static_cast<uint32_t>( imageBinds_.size() ) )
  7178. , pImageBinds( imageBinds_.data() )
  7179. , signalSemaphoreCount( static_cast<uint32_t>( signalSemaphores_.size() ) )
  7180. , pSignalSemaphores( signalSemaphores_.data() )
  7181. {
  7182. }
  7183. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  7184. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  7185. BindSparseInfo & operator=( BindSparseInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  7186. BindSparseInfo & operator=( VkBindSparseInfo const & rhs ) VULKAN_HPP_NOEXCEPT
  7187. {
  7188. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::BindSparseInfo const *>( &rhs );
  7189. return *this;
  7190. }
  7191. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  7192. VULKAN_HPP_CONSTEXPR_14 BindSparseInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  7193. {
  7194. pNext = pNext_;
  7195. return *this;
  7196. }
  7197. VULKAN_HPP_CONSTEXPR_14 BindSparseInfo & setWaitSemaphoreCount( uint32_t waitSemaphoreCount_ ) VULKAN_HPP_NOEXCEPT
  7198. {
  7199. waitSemaphoreCount = waitSemaphoreCount_;
  7200. return *this;
  7201. }
  7202. VULKAN_HPP_CONSTEXPR_14 BindSparseInfo & setPWaitSemaphores( const VULKAN_HPP_NAMESPACE::Semaphore * pWaitSemaphores_ ) VULKAN_HPP_NOEXCEPT
  7203. {
  7204. pWaitSemaphores = pWaitSemaphores_;
  7205. return *this;
  7206. }
  7207. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  7208. BindSparseInfo &
  7209. setWaitSemaphores( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::Semaphore> const & waitSemaphores_ ) VULKAN_HPP_NOEXCEPT
  7210. {
  7211. waitSemaphoreCount = static_cast<uint32_t>( waitSemaphores_.size() );
  7212. pWaitSemaphores = waitSemaphores_.data();
  7213. return *this;
  7214. }
  7215. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  7216. VULKAN_HPP_CONSTEXPR_14 BindSparseInfo & setBufferBindCount( uint32_t bufferBindCount_ ) VULKAN_HPP_NOEXCEPT
  7217. {
  7218. bufferBindCount = bufferBindCount_;
  7219. return *this;
  7220. }
  7221. VULKAN_HPP_CONSTEXPR_14 BindSparseInfo & setPBufferBinds( const VULKAN_HPP_NAMESPACE::SparseBufferMemoryBindInfo * pBufferBinds_ ) VULKAN_HPP_NOEXCEPT
  7222. {
  7223. pBufferBinds = pBufferBinds_;
  7224. return *this;
  7225. }
  7226. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  7227. BindSparseInfo & setBufferBinds(
  7228. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::SparseBufferMemoryBindInfo> const & bufferBinds_ ) VULKAN_HPP_NOEXCEPT
  7229. {
  7230. bufferBindCount = static_cast<uint32_t>( bufferBinds_.size() );
  7231. pBufferBinds = bufferBinds_.data();
  7232. return *this;
  7233. }
  7234. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  7235. VULKAN_HPP_CONSTEXPR_14 BindSparseInfo & setImageOpaqueBindCount( uint32_t imageOpaqueBindCount_ ) VULKAN_HPP_NOEXCEPT
  7236. {
  7237. imageOpaqueBindCount = imageOpaqueBindCount_;
  7238. return *this;
  7239. }
  7240. VULKAN_HPP_CONSTEXPR_14 BindSparseInfo &
  7241. setPImageOpaqueBinds( const VULKAN_HPP_NAMESPACE::SparseImageOpaqueMemoryBindInfo * pImageOpaqueBinds_ ) VULKAN_HPP_NOEXCEPT
  7242. {
  7243. pImageOpaqueBinds = pImageOpaqueBinds_;
  7244. return *this;
  7245. }
  7246. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  7247. BindSparseInfo & setImageOpaqueBinds(
  7248. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::SparseImageOpaqueMemoryBindInfo> const & imageOpaqueBinds_ ) VULKAN_HPP_NOEXCEPT
  7249. {
  7250. imageOpaqueBindCount = static_cast<uint32_t>( imageOpaqueBinds_.size() );
  7251. pImageOpaqueBinds = imageOpaqueBinds_.data();
  7252. return *this;
  7253. }
  7254. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  7255. VULKAN_HPP_CONSTEXPR_14 BindSparseInfo & setImageBindCount( uint32_t imageBindCount_ ) VULKAN_HPP_NOEXCEPT
  7256. {
  7257. imageBindCount = imageBindCount_;
  7258. return *this;
  7259. }
  7260. VULKAN_HPP_CONSTEXPR_14 BindSparseInfo & setPImageBinds( const VULKAN_HPP_NAMESPACE::SparseImageMemoryBindInfo * pImageBinds_ ) VULKAN_HPP_NOEXCEPT
  7261. {
  7262. pImageBinds = pImageBinds_;
  7263. return *this;
  7264. }
  7265. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  7266. BindSparseInfo & setImageBinds( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::SparseImageMemoryBindInfo> const & imageBinds_ )
  7267. VULKAN_HPP_NOEXCEPT
  7268. {
  7269. imageBindCount = static_cast<uint32_t>( imageBinds_.size() );
  7270. pImageBinds = imageBinds_.data();
  7271. return *this;
  7272. }
  7273. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  7274. VULKAN_HPP_CONSTEXPR_14 BindSparseInfo & setSignalSemaphoreCount( uint32_t signalSemaphoreCount_ ) VULKAN_HPP_NOEXCEPT
  7275. {
  7276. signalSemaphoreCount = signalSemaphoreCount_;
  7277. return *this;
  7278. }
  7279. VULKAN_HPP_CONSTEXPR_14 BindSparseInfo & setPSignalSemaphores( const VULKAN_HPP_NAMESPACE::Semaphore * pSignalSemaphores_ ) VULKAN_HPP_NOEXCEPT
  7280. {
  7281. pSignalSemaphores = pSignalSemaphores_;
  7282. return *this;
  7283. }
  7284. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  7285. BindSparseInfo &
  7286. setSignalSemaphores( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::Semaphore> const & signalSemaphores_ ) VULKAN_HPP_NOEXCEPT
  7287. {
  7288. signalSemaphoreCount = static_cast<uint32_t>( signalSemaphores_.size() );
  7289. pSignalSemaphores = signalSemaphores_.data();
  7290. return *this;
  7291. }
  7292. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  7293. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  7294. operator VkBindSparseInfo const &() const VULKAN_HPP_NOEXCEPT
  7295. {
  7296. return *reinterpret_cast<const VkBindSparseInfo *>( this );
  7297. }
  7298. operator VkBindSparseInfo &() VULKAN_HPP_NOEXCEPT
  7299. {
  7300. return *reinterpret_cast<VkBindSparseInfo *>( this );
  7301. }
  7302. #if defined( VULKAN_HPP_USE_REFLECT )
  7303. # if 14 <= VULKAN_HPP_CPP_VERSION
  7304. auto
  7305. # else
  7306. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  7307. const void * const &,
  7308. uint32_t const &,
  7309. const VULKAN_HPP_NAMESPACE::Semaphore * const &,
  7310. uint32_t const &,
  7311. const VULKAN_HPP_NAMESPACE::SparseBufferMemoryBindInfo * const &,
  7312. uint32_t const &,
  7313. const VULKAN_HPP_NAMESPACE::SparseImageOpaqueMemoryBindInfo * const &,
  7314. uint32_t const &,
  7315. const VULKAN_HPP_NAMESPACE::SparseImageMemoryBindInfo * const &,
  7316. uint32_t const &,
  7317. const VULKAN_HPP_NAMESPACE::Semaphore * const &>
  7318. # endif
  7319. reflect() const VULKAN_HPP_NOEXCEPT
  7320. {
  7321. return std::tie( sType,
  7322. pNext,
  7323. waitSemaphoreCount,
  7324. pWaitSemaphores,
  7325. bufferBindCount,
  7326. pBufferBinds,
  7327. imageOpaqueBindCount,
  7328. pImageOpaqueBinds,
  7329. imageBindCount,
  7330. pImageBinds,
  7331. signalSemaphoreCount,
  7332. pSignalSemaphores );
  7333. }
  7334. #endif
  7335. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  7336. auto operator<=>( BindSparseInfo const & ) const = default;
  7337. #else
  7338. bool operator==( BindSparseInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  7339. {
  7340. # if defined( VULKAN_HPP_USE_REFLECT )
  7341. return this->reflect() == rhs.reflect();
  7342. # else
  7343. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( waitSemaphoreCount == rhs.waitSemaphoreCount ) &&
  7344. ( pWaitSemaphores == rhs.pWaitSemaphores ) && ( bufferBindCount == rhs.bufferBindCount ) && ( pBufferBinds == rhs.pBufferBinds ) &&
  7345. ( imageOpaqueBindCount == rhs.imageOpaqueBindCount ) && ( pImageOpaqueBinds == rhs.pImageOpaqueBinds ) &&
  7346. ( imageBindCount == rhs.imageBindCount ) && ( pImageBinds == rhs.pImageBinds ) && ( signalSemaphoreCount == rhs.signalSemaphoreCount ) &&
  7347. ( pSignalSemaphores == rhs.pSignalSemaphores );
  7348. # endif
  7349. }
  7350. bool operator!=( BindSparseInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  7351. {
  7352. return !operator==( rhs );
  7353. }
  7354. #endif
  7355. public:
  7356. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eBindSparseInfo;
  7357. const void * pNext = {};
  7358. uint32_t waitSemaphoreCount = {};
  7359. const VULKAN_HPP_NAMESPACE::Semaphore * pWaitSemaphores = {};
  7360. uint32_t bufferBindCount = {};
  7361. const VULKAN_HPP_NAMESPACE::SparseBufferMemoryBindInfo * pBufferBinds = {};
  7362. uint32_t imageOpaqueBindCount = {};
  7363. const VULKAN_HPP_NAMESPACE::SparseImageOpaqueMemoryBindInfo * pImageOpaqueBinds = {};
  7364. uint32_t imageBindCount = {};
  7365. const VULKAN_HPP_NAMESPACE::SparseImageMemoryBindInfo * pImageBinds = {};
  7366. uint32_t signalSemaphoreCount = {};
  7367. const VULKAN_HPP_NAMESPACE::Semaphore * pSignalSemaphores = {};
  7368. };
  7369. template <>
  7370. struct CppType<StructureType, StructureType::eBindSparseInfo>
  7371. {
  7372. using Type = BindSparseInfo;
  7373. };
  7374. struct BindVertexBufferIndirectCommandNV
  7375. {
  7376. using NativeType = VkBindVertexBufferIndirectCommandNV;
  7377. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  7378. VULKAN_HPP_CONSTEXPR BindVertexBufferIndirectCommandNV( VULKAN_HPP_NAMESPACE::DeviceAddress bufferAddress_ = {},
  7379. uint32_t size_ = {},
  7380. uint32_t stride_ = {} ) VULKAN_HPP_NOEXCEPT
  7381. : bufferAddress( bufferAddress_ )
  7382. , size( size_ )
  7383. , stride( stride_ )
  7384. {
  7385. }
  7386. VULKAN_HPP_CONSTEXPR BindVertexBufferIndirectCommandNV( BindVertexBufferIndirectCommandNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  7387. BindVertexBufferIndirectCommandNV( VkBindVertexBufferIndirectCommandNV const & rhs ) VULKAN_HPP_NOEXCEPT
  7388. : BindVertexBufferIndirectCommandNV( *reinterpret_cast<BindVertexBufferIndirectCommandNV const *>( &rhs ) )
  7389. {
  7390. }
  7391. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  7392. BindVertexBufferIndirectCommandNV & operator=( BindVertexBufferIndirectCommandNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  7393. BindVertexBufferIndirectCommandNV & operator=( VkBindVertexBufferIndirectCommandNV const & rhs ) VULKAN_HPP_NOEXCEPT
  7394. {
  7395. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::BindVertexBufferIndirectCommandNV const *>( &rhs );
  7396. return *this;
  7397. }
  7398. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  7399. VULKAN_HPP_CONSTEXPR_14 BindVertexBufferIndirectCommandNV & setBufferAddress( VULKAN_HPP_NAMESPACE::DeviceAddress bufferAddress_ ) VULKAN_HPP_NOEXCEPT
  7400. {
  7401. bufferAddress = bufferAddress_;
  7402. return *this;
  7403. }
  7404. VULKAN_HPP_CONSTEXPR_14 BindVertexBufferIndirectCommandNV & setSize( uint32_t size_ ) VULKAN_HPP_NOEXCEPT
  7405. {
  7406. size = size_;
  7407. return *this;
  7408. }
  7409. VULKAN_HPP_CONSTEXPR_14 BindVertexBufferIndirectCommandNV & setStride( uint32_t stride_ ) VULKAN_HPP_NOEXCEPT
  7410. {
  7411. stride = stride_;
  7412. return *this;
  7413. }
  7414. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  7415. operator VkBindVertexBufferIndirectCommandNV const &() const VULKAN_HPP_NOEXCEPT
  7416. {
  7417. return *reinterpret_cast<const VkBindVertexBufferIndirectCommandNV *>( this );
  7418. }
  7419. operator VkBindVertexBufferIndirectCommandNV &() VULKAN_HPP_NOEXCEPT
  7420. {
  7421. return *reinterpret_cast<VkBindVertexBufferIndirectCommandNV *>( this );
  7422. }
  7423. #if defined( VULKAN_HPP_USE_REFLECT )
  7424. # if 14 <= VULKAN_HPP_CPP_VERSION
  7425. auto
  7426. # else
  7427. std::tuple<VULKAN_HPP_NAMESPACE::DeviceAddress const &, uint32_t const &, uint32_t const &>
  7428. # endif
  7429. reflect() const VULKAN_HPP_NOEXCEPT
  7430. {
  7431. return std::tie( bufferAddress, size, stride );
  7432. }
  7433. #endif
  7434. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  7435. auto operator<=>( BindVertexBufferIndirectCommandNV const & ) const = default;
  7436. #else
  7437. bool operator==( BindVertexBufferIndirectCommandNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  7438. {
  7439. # if defined( VULKAN_HPP_USE_REFLECT )
  7440. return this->reflect() == rhs.reflect();
  7441. # else
  7442. return ( bufferAddress == rhs.bufferAddress ) && ( size == rhs.size ) && ( stride == rhs.stride );
  7443. # endif
  7444. }
  7445. bool operator!=( BindVertexBufferIndirectCommandNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  7446. {
  7447. return !operator==( rhs );
  7448. }
  7449. #endif
  7450. public:
  7451. VULKAN_HPP_NAMESPACE::DeviceAddress bufferAddress = {};
  7452. uint32_t size = {};
  7453. uint32_t stride = {};
  7454. };
  7455. #if defined( VK_ENABLE_BETA_EXTENSIONS )
  7456. struct BindVideoSessionMemoryInfoKHR
  7457. {
  7458. using NativeType = VkBindVideoSessionMemoryInfoKHR;
  7459. static const bool allowDuplicate = false;
  7460. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eBindVideoSessionMemoryInfoKHR;
  7461. # if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  7462. VULKAN_HPP_CONSTEXPR BindVideoSessionMemoryInfoKHR( uint32_t memoryBindIndex_ = {},
  7463. VULKAN_HPP_NAMESPACE::DeviceMemory memory_ = {},
  7464. VULKAN_HPP_NAMESPACE::DeviceSize memoryOffset_ = {},
  7465. VULKAN_HPP_NAMESPACE::DeviceSize memorySize_ = {},
  7466. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  7467. : pNext( pNext_ )
  7468. , memoryBindIndex( memoryBindIndex_ )
  7469. , memory( memory_ )
  7470. , memoryOffset( memoryOffset_ )
  7471. , memorySize( memorySize_ )
  7472. {
  7473. }
  7474. VULKAN_HPP_CONSTEXPR BindVideoSessionMemoryInfoKHR( BindVideoSessionMemoryInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  7475. BindVideoSessionMemoryInfoKHR( VkBindVideoSessionMemoryInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  7476. : BindVideoSessionMemoryInfoKHR( *reinterpret_cast<BindVideoSessionMemoryInfoKHR const *>( &rhs ) )
  7477. {
  7478. }
  7479. # endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  7480. BindVideoSessionMemoryInfoKHR & operator=( BindVideoSessionMemoryInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  7481. BindVideoSessionMemoryInfoKHR & operator=( VkBindVideoSessionMemoryInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  7482. {
  7483. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::BindVideoSessionMemoryInfoKHR const *>( &rhs );
  7484. return *this;
  7485. }
  7486. # if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  7487. VULKAN_HPP_CONSTEXPR_14 BindVideoSessionMemoryInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  7488. {
  7489. pNext = pNext_;
  7490. return *this;
  7491. }
  7492. VULKAN_HPP_CONSTEXPR_14 BindVideoSessionMemoryInfoKHR & setMemoryBindIndex( uint32_t memoryBindIndex_ ) VULKAN_HPP_NOEXCEPT
  7493. {
  7494. memoryBindIndex = memoryBindIndex_;
  7495. return *this;
  7496. }
  7497. VULKAN_HPP_CONSTEXPR_14 BindVideoSessionMemoryInfoKHR & setMemory( VULKAN_HPP_NAMESPACE::DeviceMemory memory_ ) VULKAN_HPP_NOEXCEPT
  7498. {
  7499. memory = memory_;
  7500. return *this;
  7501. }
  7502. VULKAN_HPP_CONSTEXPR_14 BindVideoSessionMemoryInfoKHR & setMemoryOffset( VULKAN_HPP_NAMESPACE::DeviceSize memoryOffset_ ) VULKAN_HPP_NOEXCEPT
  7503. {
  7504. memoryOffset = memoryOffset_;
  7505. return *this;
  7506. }
  7507. VULKAN_HPP_CONSTEXPR_14 BindVideoSessionMemoryInfoKHR & setMemorySize( VULKAN_HPP_NAMESPACE::DeviceSize memorySize_ ) VULKAN_HPP_NOEXCEPT
  7508. {
  7509. memorySize = memorySize_;
  7510. return *this;
  7511. }
  7512. # endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  7513. operator VkBindVideoSessionMemoryInfoKHR const &() const VULKAN_HPP_NOEXCEPT
  7514. {
  7515. return *reinterpret_cast<const VkBindVideoSessionMemoryInfoKHR *>( this );
  7516. }
  7517. operator VkBindVideoSessionMemoryInfoKHR &() VULKAN_HPP_NOEXCEPT
  7518. {
  7519. return *reinterpret_cast<VkBindVideoSessionMemoryInfoKHR *>( this );
  7520. }
  7521. # if defined( VULKAN_HPP_USE_REFLECT )
  7522. # if 14 <= VULKAN_HPP_CPP_VERSION
  7523. auto
  7524. # else
  7525. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  7526. const void * const &,
  7527. uint32_t const &,
  7528. VULKAN_HPP_NAMESPACE::DeviceMemory const &,
  7529. VULKAN_HPP_NAMESPACE::DeviceSize const &,
  7530. VULKAN_HPP_NAMESPACE::DeviceSize const &>
  7531. # endif
  7532. reflect() const VULKAN_HPP_NOEXCEPT
  7533. {
  7534. return std::tie( sType, pNext, memoryBindIndex, memory, memoryOffset, memorySize );
  7535. }
  7536. # endif
  7537. # if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  7538. auto operator<=>( BindVideoSessionMemoryInfoKHR const & ) const = default;
  7539. # else
  7540. bool operator==( BindVideoSessionMemoryInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  7541. {
  7542. # if defined( VULKAN_HPP_USE_REFLECT )
  7543. return this->reflect() == rhs.reflect();
  7544. # else
  7545. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( memoryBindIndex == rhs.memoryBindIndex ) && ( memory == rhs.memory ) &&
  7546. ( memoryOffset == rhs.memoryOffset ) && ( memorySize == rhs.memorySize );
  7547. # endif
  7548. }
  7549. bool operator!=( BindVideoSessionMemoryInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  7550. {
  7551. return !operator==( rhs );
  7552. }
  7553. # endif
  7554. public:
  7555. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eBindVideoSessionMemoryInfoKHR;
  7556. const void * pNext = {};
  7557. uint32_t memoryBindIndex = {};
  7558. VULKAN_HPP_NAMESPACE::DeviceMemory memory = {};
  7559. VULKAN_HPP_NAMESPACE::DeviceSize memoryOffset = {};
  7560. VULKAN_HPP_NAMESPACE::DeviceSize memorySize = {};
  7561. };
  7562. template <>
  7563. struct CppType<StructureType, StructureType::eBindVideoSessionMemoryInfoKHR>
  7564. {
  7565. using Type = BindVideoSessionMemoryInfoKHR;
  7566. };
  7567. #endif /*VK_ENABLE_BETA_EXTENSIONS*/
  7568. struct ImageSubresourceLayers
  7569. {
  7570. using NativeType = VkImageSubresourceLayers;
  7571. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  7572. VULKAN_HPP_CONSTEXPR ImageSubresourceLayers( VULKAN_HPP_NAMESPACE::ImageAspectFlags aspectMask_ = {},
  7573. uint32_t mipLevel_ = {},
  7574. uint32_t baseArrayLayer_ = {},
  7575. uint32_t layerCount_ = {} ) VULKAN_HPP_NOEXCEPT
  7576. : aspectMask( aspectMask_ )
  7577. , mipLevel( mipLevel_ )
  7578. , baseArrayLayer( baseArrayLayer_ )
  7579. , layerCount( layerCount_ )
  7580. {
  7581. }
  7582. VULKAN_HPP_CONSTEXPR ImageSubresourceLayers( ImageSubresourceLayers const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  7583. ImageSubresourceLayers( VkImageSubresourceLayers const & rhs ) VULKAN_HPP_NOEXCEPT
  7584. : ImageSubresourceLayers( *reinterpret_cast<ImageSubresourceLayers const *>( &rhs ) )
  7585. {
  7586. }
  7587. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  7588. ImageSubresourceLayers & operator=( ImageSubresourceLayers const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  7589. ImageSubresourceLayers & operator=( VkImageSubresourceLayers const & rhs ) VULKAN_HPP_NOEXCEPT
  7590. {
  7591. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ImageSubresourceLayers const *>( &rhs );
  7592. return *this;
  7593. }
  7594. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  7595. VULKAN_HPP_CONSTEXPR_14 ImageSubresourceLayers & setAspectMask( VULKAN_HPP_NAMESPACE::ImageAspectFlags aspectMask_ ) VULKAN_HPP_NOEXCEPT
  7596. {
  7597. aspectMask = aspectMask_;
  7598. return *this;
  7599. }
  7600. VULKAN_HPP_CONSTEXPR_14 ImageSubresourceLayers & setMipLevel( uint32_t mipLevel_ ) VULKAN_HPP_NOEXCEPT
  7601. {
  7602. mipLevel = mipLevel_;
  7603. return *this;
  7604. }
  7605. VULKAN_HPP_CONSTEXPR_14 ImageSubresourceLayers & setBaseArrayLayer( uint32_t baseArrayLayer_ ) VULKAN_HPP_NOEXCEPT
  7606. {
  7607. baseArrayLayer = baseArrayLayer_;
  7608. return *this;
  7609. }
  7610. VULKAN_HPP_CONSTEXPR_14 ImageSubresourceLayers & setLayerCount( uint32_t layerCount_ ) VULKAN_HPP_NOEXCEPT
  7611. {
  7612. layerCount = layerCount_;
  7613. return *this;
  7614. }
  7615. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  7616. operator VkImageSubresourceLayers const &() const VULKAN_HPP_NOEXCEPT
  7617. {
  7618. return *reinterpret_cast<const VkImageSubresourceLayers *>( this );
  7619. }
  7620. operator VkImageSubresourceLayers &() VULKAN_HPP_NOEXCEPT
  7621. {
  7622. return *reinterpret_cast<VkImageSubresourceLayers *>( this );
  7623. }
  7624. #if defined( VULKAN_HPP_USE_REFLECT )
  7625. # if 14 <= VULKAN_HPP_CPP_VERSION
  7626. auto
  7627. # else
  7628. std::tuple<VULKAN_HPP_NAMESPACE::ImageAspectFlags const &, uint32_t const &, uint32_t const &, uint32_t const &>
  7629. # endif
  7630. reflect() const VULKAN_HPP_NOEXCEPT
  7631. {
  7632. return std::tie( aspectMask, mipLevel, baseArrayLayer, layerCount );
  7633. }
  7634. #endif
  7635. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  7636. auto operator<=>( ImageSubresourceLayers const & ) const = default;
  7637. #else
  7638. bool operator==( ImageSubresourceLayers const & rhs ) const VULKAN_HPP_NOEXCEPT
  7639. {
  7640. # if defined( VULKAN_HPP_USE_REFLECT )
  7641. return this->reflect() == rhs.reflect();
  7642. # else
  7643. return ( aspectMask == rhs.aspectMask ) && ( mipLevel == rhs.mipLevel ) && ( baseArrayLayer == rhs.baseArrayLayer ) && ( layerCount == rhs.layerCount );
  7644. # endif
  7645. }
  7646. bool operator!=( ImageSubresourceLayers const & rhs ) const VULKAN_HPP_NOEXCEPT
  7647. {
  7648. return !operator==( rhs );
  7649. }
  7650. #endif
  7651. public:
  7652. VULKAN_HPP_NAMESPACE::ImageAspectFlags aspectMask = {};
  7653. uint32_t mipLevel = {};
  7654. uint32_t baseArrayLayer = {};
  7655. uint32_t layerCount = {};
  7656. };
  7657. struct ImageBlit2
  7658. {
  7659. using NativeType = VkImageBlit2;
  7660. static const bool allowDuplicate = false;
  7661. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eImageBlit2;
  7662. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  7663. VULKAN_HPP_CONSTEXPR_14 ImageBlit2( VULKAN_HPP_NAMESPACE::ImageSubresourceLayers srcSubresource_ = {},
  7664. std::array<VULKAN_HPP_NAMESPACE::Offset3D, 2> const & srcOffsets_ = {},
  7665. VULKAN_HPP_NAMESPACE::ImageSubresourceLayers dstSubresource_ = {},
  7666. std::array<VULKAN_HPP_NAMESPACE::Offset3D, 2> const & dstOffsets_ = {},
  7667. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  7668. : pNext( pNext_ )
  7669. , srcSubresource( srcSubresource_ )
  7670. , srcOffsets( srcOffsets_ )
  7671. , dstSubresource( dstSubresource_ )
  7672. , dstOffsets( dstOffsets_ )
  7673. {
  7674. }
  7675. VULKAN_HPP_CONSTEXPR_14 ImageBlit2( ImageBlit2 const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  7676. ImageBlit2( VkImageBlit2 const & rhs ) VULKAN_HPP_NOEXCEPT : ImageBlit2( *reinterpret_cast<ImageBlit2 const *>( &rhs ) ) {}
  7677. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  7678. ImageBlit2 & operator=( ImageBlit2 const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  7679. ImageBlit2 & operator=( VkImageBlit2 const & rhs ) VULKAN_HPP_NOEXCEPT
  7680. {
  7681. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ImageBlit2 const *>( &rhs );
  7682. return *this;
  7683. }
  7684. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  7685. VULKAN_HPP_CONSTEXPR_14 ImageBlit2 & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  7686. {
  7687. pNext = pNext_;
  7688. return *this;
  7689. }
  7690. VULKAN_HPP_CONSTEXPR_14 ImageBlit2 & setSrcSubresource( VULKAN_HPP_NAMESPACE::ImageSubresourceLayers const & srcSubresource_ ) VULKAN_HPP_NOEXCEPT
  7691. {
  7692. srcSubresource = srcSubresource_;
  7693. return *this;
  7694. }
  7695. VULKAN_HPP_CONSTEXPR_14 ImageBlit2 & setSrcOffsets( std::array<VULKAN_HPP_NAMESPACE::Offset3D, 2> const & srcOffsets_ ) VULKAN_HPP_NOEXCEPT
  7696. {
  7697. srcOffsets = srcOffsets_;
  7698. return *this;
  7699. }
  7700. VULKAN_HPP_CONSTEXPR_14 ImageBlit2 & setDstSubresource( VULKAN_HPP_NAMESPACE::ImageSubresourceLayers const & dstSubresource_ ) VULKAN_HPP_NOEXCEPT
  7701. {
  7702. dstSubresource = dstSubresource_;
  7703. return *this;
  7704. }
  7705. VULKAN_HPP_CONSTEXPR_14 ImageBlit2 & setDstOffsets( std::array<VULKAN_HPP_NAMESPACE::Offset3D, 2> const & dstOffsets_ ) VULKAN_HPP_NOEXCEPT
  7706. {
  7707. dstOffsets = dstOffsets_;
  7708. return *this;
  7709. }
  7710. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  7711. operator VkImageBlit2 const &() const VULKAN_HPP_NOEXCEPT
  7712. {
  7713. return *reinterpret_cast<const VkImageBlit2 *>( this );
  7714. }
  7715. operator VkImageBlit2 &() VULKAN_HPP_NOEXCEPT
  7716. {
  7717. return *reinterpret_cast<VkImageBlit2 *>( this );
  7718. }
  7719. #if defined( VULKAN_HPP_USE_REFLECT )
  7720. # if 14 <= VULKAN_HPP_CPP_VERSION
  7721. auto
  7722. # else
  7723. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  7724. const void * const &,
  7725. VULKAN_HPP_NAMESPACE::ImageSubresourceLayers const &,
  7726. VULKAN_HPP_NAMESPACE::ArrayWrapper1D<VULKAN_HPP_NAMESPACE::Offset3D, 2> const &,
  7727. VULKAN_HPP_NAMESPACE::ImageSubresourceLayers const &,
  7728. VULKAN_HPP_NAMESPACE::ArrayWrapper1D<VULKAN_HPP_NAMESPACE::Offset3D, 2> const &>
  7729. # endif
  7730. reflect() const VULKAN_HPP_NOEXCEPT
  7731. {
  7732. return std::tie( sType, pNext, srcSubresource, srcOffsets, dstSubresource, dstOffsets );
  7733. }
  7734. #endif
  7735. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  7736. auto operator<=>( ImageBlit2 const & ) const = default;
  7737. #else
  7738. bool operator==( ImageBlit2 const & rhs ) const VULKAN_HPP_NOEXCEPT
  7739. {
  7740. # if defined( VULKAN_HPP_USE_REFLECT )
  7741. return this->reflect() == rhs.reflect();
  7742. # else
  7743. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( srcSubresource == rhs.srcSubresource ) && ( srcOffsets == rhs.srcOffsets ) &&
  7744. ( dstSubresource == rhs.dstSubresource ) && ( dstOffsets == rhs.dstOffsets );
  7745. # endif
  7746. }
  7747. bool operator!=( ImageBlit2 const & rhs ) const VULKAN_HPP_NOEXCEPT
  7748. {
  7749. return !operator==( rhs );
  7750. }
  7751. #endif
  7752. public:
  7753. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImageBlit2;
  7754. const void * pNext = {};
  7755. VULKAN_HPP_NAMESPACE::ImageSubresourceLayers srcSubresource = {};
  7756. VULKAN_HPP_NAMESPACE::ArrayWrapper1D<VULKAN_HPP_NAMESPACE::Offset3D, 2> srcOffsets = {};
  7757. VULKAN_HPP_NAMESPACE::ImageSubresourceLayers dstSubresource = {};
  7758. VULKAN_HPP_NAMESPACE::ArrayWrapper1D<VULKAN_HPP_NAMESPACE::Offset3D, 2> dstOffsets = {};
  7759. };
  7760. template <>
  7761. struct CppType<StructureType, StructureType::eImageBlit2>
  7762. {
  7763. using Type = ImageBlit2;
  7764. };
  7765. using ImageBlit2KHR = ImageBlit2;
  7766. struct BlitImageInfo2
  7767. {
  7768. using NativeType = VkBlitImageInfo2;
  7769. static const bool allowDuplicate = false;
  7770. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eBlitImageInfo2;
  7771. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  7772. VULKAN_HPP_CONSTEXPR_14 BlitImageInfo2( VULKAN_HPP_NAMESPACE::Image srcImage_ = {},
  7773. VULKAN_HPP_NAMESPACE::ImageLayout srcImageLayout_ = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined,
  7774. VULKAN_HPP_NAMESPACE::Image dstImage_ = {},
  7775. VULKAN_HPP_NAMESPACE::ImageLayout dstImageLayout_ = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined,
  7776. uint32_t regionCount_ = {},
  7777. const VULKAN_HPP_NAMESPACE::ImageBlit2 * pRegions_ = {},
  7778. VULKAN_HPP_NAMESPACE::Filter filter_ = VULKAN_HPP_NAMESPACE::Filter::eNearest,
  7779. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  7780. : pNext( pNext_ )
  7781. , srcImage( srcImage_ )
  7782. , srcImageLayout( srcImageLayout_ )
  7783. , dstImage( dstImage_ )
  7784. , dstImageLayout( dstImageLayout_ )
  7785. , regionCount( regionCount_ )
  7786. , pRegions( pRegions_ )
  7787. , filter( filter_ )
  7788. {
  7789. }
  7790. VULKAN_HPP_CONSTEXPR_14 BlitImageInfo2( BlitImageInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  7791. BlitImageInfo2( VkBlitImageInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT : BlitImageInfo2( *reinterpret_cast<BlitImageInfo2 const *>( &rhs ) ) {}
  7792. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  7793. BlitImageInfo2( VULKAN_HPP_NAMESPACE::Image srcImage_,
  7794. VULKAN_HPP_NAMESPACE::ImageLayout srcImageLayout_,
  7795. VULKAN_HPP_NAMESPACE::Image dstImage_,
  7796. VULKAN_HPP_NAMESPACE::ImageLayout dstImageLayout_,
  7797. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::ImageBlit2> const & regions_,
  7798. VULKAN_HPP_NAMESPACE::Filter filter_ = VULKAN_HPP_NAMESPACE::Filter::eNearest,
  7799. const void * pNext_ = nullptr )
  7800. : pNext( pNext_ )
  7801. , srcImage( srcImage_ )
  7802. , srcImageLayout( srcImageLayout_ )
  7803. , dstImage( dstImage_ )
  7804. , dstImageLayout( dstImageLayout_ )
  7805. , regionCount( static_cast<uint32_t>( regions_.size() ) )
  7806. , pRegions( regions_.data() )
  7807. , filter( filter_ )
  7808. {
  7809. }
  7810. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  7811. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  7812. BlitImageInfo2 & operator=( BlitImageInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  7813. BlitImageInfo2 & operator=( VkBlitImageInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT
  7814. {
  7815. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::BlitImageInfo2 const *>( &rhs );
  7816. return *this;
  7817. }
  7818. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  7819. VULKAN_HPP_CONSTEXPR_14 BlitImageInfo2 & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  7820. {
  7821. pNext = pNext_;
  7822. return *this;
  7823. }
  7824. VULKAN_HPP_CONSTEXPR_14 BlitImageInfo2 & setSrcImage( VULKAN_HPP_NAMESPACE::Image srcImage_ ) VULKAN_HPP_NOEXCEPT
  7825. {
  7826. srcImage = srcImage_;
  7827. return *this;
  7828. }
  7829. VULKAN_HPP_CONSTEXPR_14 BlitImageInfo2 & setSrcImageLayout( VULKAN_HPP_NAMESPACE::ImageLayout srcImageLayout_ ) VULKAN_HPP_NOEXCEPT
  7830. {
  7831. srcImageLayout = srcImageLayout_;
  7832. return *this;
  7833. }
  7834. VULKAN_HPP_CONSTEXPR_14 BlitImageInfo2 & setDstImage( VULKAN_HPP_NAMESPACE::Image dstImage_ ) VULKAN_HPP_NOEXCEPT
  7835. {
  7836. dstImage = dstImage_;
  7837. return *this;
  7838. }
  7839. VULKAN_HPP_CONSTEXPR_14 BlitImageInfo2 & setDstImageLayout( VULKAN_HPP_NAMESPACE::ImageLayout dstImageLayout_ ) VULKAN_HPP_NOEXCEPT
  7840. {
  7841. dstImageLayout = dstImageLayout_;
  7842. return *this;
  7843. }
  7844. VULKAN_HPP_CONSTEXPR_14 BlitImageInfo2 & setRegionCount( uint32_t regionCount_ ) VULKAN_HPP_NOEXCEPT
  7845. {
  7846. regionCount = regionCount_;
  7847. return *this;
  7848. }
  7849. VULKAN_HPP_CONSTEXPR_14 BlitImageInfo2 & setPRegions( const VULKAN_HPP_NAMESPACE::ImageBlit2 * pRegions_ ) VULKAN_HPP_NOEXCEPT
  7850. {
  7851. pRegions = pRegions_;
  7852. return *this;
  7853. }
  7854. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  7855. BlitImageInfo2 & setRegions( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::ImageBlit2> const & regions_ ) VULKAN_HPP_NOEXCEPT
  7856. {
  7857. regionCount = static_cast<uint32_t>( regions_.size() );
  7858. pRegions = regions_.data();
  7859. return *this;
  7860. }
  7861. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  7862. VULKAN_HPP_CONSTEXPR_14 BlitImageInfo2 & setFilter( VULKAN_HPP_NAMESPACE::Filter filter_ ) VULKAN_HPP_NOEXCEPT
  7863. {
  7864. filter = filter_;
  7865. return *this;
  7866. }
  7867. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  7868. operator VkBlitImageInfo2 const &() const VULKAN_HPP_NOEXCEPT
  7869. {
  7870. return *reinterpret_cast<const VkBlitImageInfo2 *>( this );
  7871. }
  7872. operator VkBlitImageInfo2 &() VULKAN_HPP_NOEXCEPT
  7873. {
  7874. return *reinterpret_cast<VkBlitImageInfo2 *>( this );
  7875. }
  7876. #if defined( VULKAN_HPP_USE_REFLECT )
  7877. # if 14 <= VULKAN_HPP_CPP_VERSION
  7878. auto
  7879. # else
  7880. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  7881. const void * const &,
  7882. VULKAN_HPP_NAMESPACE::Image const &,
  7883. VULKAN_HPP_NAMESPACE::ImageLayout const &,
  7884. VULKAN_HPP_NAMESPACE::Image const &,
  7885. VULKAN_HPP_NAMESPACE::ImageLayout const &,
  7886. uint32_t const &,
  7887. const VULKAN_HPP_NAMESPACE::ImageBlit2 * const &,
  7888. VULKAN_HPP_NAMESPACE::Filter const &>
  7889. # endif
  7890. reflect() const VULKAN_HPP_NOEXCEPT
  7891. {
  7892. return std::tie( sType, pNext, srcImage, srcImageLayout, dstImage, dstImageLayout, regionCount, pRegions, filter );
  7893. }
  7894. #endif
  7895. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  7896. auto operator<=>( BlitImageInfo2 const & ) const = default;
  7897. #else
  7898. bool operator==( BlitImageInfo2 const & rhs ) const VULKAN_HPP_NOEXCEPT
  7899. {
  7900. # if defined( VULKAN_HPP_USE_REFLECT )
  7901. return this->reflect() == rhs.reflect();
  7902. # else
  7903. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( srcImage == rhs.srcImage ) && ( srcImageLayout == rhs.srcImageLayout ) &&
  7904. ( dstImage == rhs.dstImage ) && ( dstImageLayout == rhs.dstImageLayout ) && ( regionCount == rhs.regionCount ) && ( pRegions == rhs.pRegions ) &&
  7905. ( filter == rhs.filter );
  7906. # endif
  7907. }
  7908. bool operator!=( BlitImageInfo2 const & rhs ) const VULKAN_HPP_NOEXCEPT
  7909. {
  7910. return !operator==( rhs );
  7911. }
  7912. #endif
  7913. public:
  7914. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eBlitImageInfo2;
  7915. const void * pNext = {};
  7916. VULKAN_HPP_NAMESPACE::Image srcImage = {};
  7917. VULKAN_HPP_NAMESPACE::ImageLayout srcImageLayout = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined;
  7918. VULKAN_HPP_NAMESPACE::Image dstImage = {};
  7919. VULKAN_HPP_NAMESPACE::ImageLayout dstImageLayout = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined;
  7920. uint32_t regionCount = {};
  7921. const VULKAN_HPP_NAMESPACE::ImageBlit2 * pRegions = {};
  7922. VULKAN_HPP_NAMESPACE::Filter filter = VULKAN_HPP_NAMESPACE::Filter::eNearest;
  7923. };
  7924. template <>
  7925. struct CppType<StructureType, StructureType::eBlitImageInfo2>
  7926. {
  7927. using Type = BlitImageInfo2;
  7928. };
  7929. using BlitImageInfo2KHR = BlitImageInfo2;
  7930. #if defined( VK_USE_PLATFORM_FUCHSIA )
  7931. struct BufferCollectionBufferCreateInfoFUCHSIA
  7932. {
  7933. using NativeType = VkBufferCollectionBufferCreateInfoFUCHSIA;
  7934. static const bool allowDuplicate = false;
  7935. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eBufferCollectionBufferCreateInfoFUCHSIA;
  7936. # if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  7937. VULKAN_HPP_CONSTEXPR BufferCollectionBufferCreateInfoFUCHSIA( VULKAN_HPP_NAMESPACE::BufferCollectionFUCHSIA collection_ = {},
  7938. uint32_t index_ = {},
  7939. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  7940. : pNext( pNext_ )
  7941. , collection( collection_ )
  7942. , index( index_ )
  7943. {
  7944. }
  7945. VULKAN_HPP_CONSTEXPR BufferCollectionBufferCreateInfoFUCHSIA( BufferCollectionBufferCreateInfoFUCHSIA const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  7946. BufferCollectionBufferCreateInfoFUCHSIA( VkBufferCollectionBufferCreateInfoFUCHSIA const & rhs ) VULKAN_HPP_NOEXCEPT
  7947. : BufferCollectionBufferCreateInfoFUCHSIA( *reinterpret_cast<BufferCollectionBufferCreateInfoFUCHSIA const *>( &rhs ) )
  7948. {
  7949. }
  7950. # endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  7951. BufferCollectionBufferCreateInfoFUCHSIA & operator=( BufferCollectionBufferCreateInfoFUCHSIA const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  7952. BufferCollectionBufferCreateInfoFUCHSIA & operator=( VkBufferCollectionBufferCreateInfoFUCHSIA const & rhs ) VULKAN_HPP_NOEXCEPT
  7953. {
  7954. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::BufferCollectionBufferCreateInfoFUCHSIA const *>( &rhs );
  7955. return *this;
  7956. }
  7957. # if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  7958. VULKAN_HPP_CONSTEXPR_14 BufferCollectionBufferCreateInfoFUCHSIA & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  7959. {
  7960. pNext = pNext_;
  7961. return *this;
  7962. }
  7963. VULKAN_HPP_CONSTEXPR_14 BufferCollectionBufferCreateInfoFUCHSIA &
  7964. setCollection( VULKAN_HPP_NAMESPACE::BufferCollectionFUCHSIA collection_ ) VULKAN_HPP_NOEXCEPT
  7965. {
  7966. collection = collection_;
  7967. return *this;
  7968. }
  7969. VULKAN_HPP_CONSTEXPR_14 BufferCollectionBufferCreateInfoFUCHSIA & setIndex( uint32_t index_ ) VULKAN_HPP_NOEXCEPT
  7970. {
  7971. index = index_;
  7972. return *this;
  7973. }
  7974. # endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  7975. operator VkBufferCollectionBufferCreateInfoFUCHSIA const &() const VULKAN_HPP_NOEXCEPT
  7976. {
  7977. return *reinterpret_cast<const VkBufferCollectionBufferCreateInfoFUCHSIA *>( this );
  7978. }
  7979. operator VkBufferCollectionBufferCreateInfoFUCHSIA &() VULKAN_HPP_NOEXCEPT
  7980. {
  7981. return *reinterpret_cast<VkBufferCollectionBufferCreateInfoFUCHSIA *>( this );
  7982. }
  7983. # if defined( VULKAN_HPP_USE_REFLECT )
  7984. # if 14 <= VULKAN_HPP_CPP_VERSION
  7985. auto
  7986. # else
  7987. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::BufferCollectionFUCHSIA const &, uint32_t const &>
  7988. # endif
  7989. reflect() const VULKAN_HPP_NOEXCEPT
  7990. {
  7991. return std::tie( sType, pNext, collection, index );
  7992. }
  7993. # endif
  7994. # if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  7995. auto operator<=>( BufferCollectionBufferCreateInfoFUCHSIA const & ) const = default;
  7996. # else
  7997. bool operator==( BufferCollectionBufferCreateInfoFUCHSIA const & rhs ) const VULKAN_HPP_NOEXCEPT
  7998. {
  7999. # if defined( VULKAN_HPP_USE_REFLECT )
  8000. return this->reflect() == rhs.reflect();
  8001. # else
  8002. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( collection == rhs.collection ) && ( index == rhs.index );
  8003. # endif
  8004. }
  8005. bool operator!=( BufferCollectionBufferCreateInfoFUCHSIA const & rhs ) const VULKAN_HPP_NOEXCEPT
  8006. {
  8007. return !operator==( rhs );
  8008. }
  8009. # endif
  8010. public:
  8011. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eBufferCollectionBufferCreateInfoFUCHSIA;
  8012. const void * pNext = {};
  8013. VULKAN_HPP_NAMESPACE::BufferCollectionFUCHSIA collection = {};
  8014. uint32_t index = {};
  8015. };
  8016. template <>
  8017. struct CppType<StructureType, StructureType::eBufferCollectionBufferCreateInfoFUCHSIA>
  8018. {
  8019. using Type = BufferCollectionBufferCreateInfoFUCHSIA;
  8020. };
  8021. #endif /*VK_USE_PLATFORM_FUCHSIA*/
  8022. #if defined( VK_USE_PLATFORM_FUCHSIA )
  8023. struct BufferCollectionConstraintsInfoFUCHSIA
  8024. {
  8025. using NativeType = VkBufferCollectionConstraintsInfoFUCHSIA;
  8026. static const bool allowDuplicate = false;
  8027. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eBufferCollectionConstraintsInfoFUCHSIA;
  8028. # if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  8029. VULKAN_HPP_CONSTEXPR BufferCollectionConstraintsInfoFUCHSIA( uint32_t minBufferCount_ = {},
  8030. uint32_t maxBufferCount_ = {},
  8031. uint32_t minBufferCountForCamping_ = {},
  8032. uint32_t minBufferCountForDedicatedSlack_ = {},
  8033. uint32_t minBufferCountForSharedSlack_ = {},
  8034. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  8035. : pNext( pNext_ )
  8036. , minBufferCount( minBufferCount_ )
  8037. , maxBufferCount( maxBufferCount_ )
  8038. , minBufferCountForCamping( minBufferCountForCamping_ )
  8039. , minBufferCountForDedicatedSlack( minBufferCountForDedicatedSlack_ )
  8040. , minBufferCountForSharedSlack( minBufferCountForSharedSlack_ )
  8041. {
  8042. }
  8043. VULKAN_HPP_CONSTEXPR BufferCollectionConstraintsInfoFUCHSIA( BufferCollectionConstraintsInfoFUCHSIA const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  8044. BufferCollectionConstraintsInfoFUCHSIA( VkBufferCollectionConstraintsInfoFUCHSIA const & rhs ) VULKAN_HPP_NOEXCEPT
  8045. : BufferCollectionConstraintsInfoFUCHSIA( *reinterpret_cast<BufferCollectionConstraintsInfoFUCHSIA const *>( &rhs ) )
  8046. {
  8047. }
  8048. # endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  8049. BufferCollectionConstraintsInfoFUCHSIA & operator=( BufferCollectionConstraintsInfoFUCHSIA const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  8050. BufferCollectionConstraintsInfoFUCHSIA & operator=( VkBufferCollectionConstraintsInfoFUCHSIA const & rhs ) VULKAN_HPP_NOEXCEPT
  8051. {
  8052. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::BufferCollectionConstraintsInfoFUCHSIA const *>( &rhs );
  8053. return *this;
  8054. }
  8055. # if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  8056. VULKAN_HPP_CONSTEXPR_14 BufferCollectionConstraintsInfoFUCHSIA & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  8057. {
  8058. pNext = pNext_;
  8059. return *this;
  8060. }
  8061. VULKAN_HPP_CONSTEXPR_14 BufferCollectionConstraintsInfoFUCHSIA & setMinBufferCount( uint32_t minBufferCount_ ) VULKAN_HPP_NOEXCEPT
  8062. {
  8063. minBufferCount = minBufferCount_;
  8064. return *this;
  8065. }
  8066. VULKAN_HPP_CONSTEXPR_14 BufferCollectionConstraintsInfoFUCHSIA & setMaxBufferCount( uint32_t maxBufferCount_ ) VULKAN_HPP_NOEXCEPT
  8067. {
  8068. maxBufferCount = maxBufferCount_;
  8069. return *this;
  8070. }
  8071. VULKAN_HPP_CONSTEXPR_14 BufferCollectionConstraintsInfoFUCHSIA & setMinBufferCountForCamping( uint32_t minBufferCountForCamping_ ) VULKAN_HPP_NOEXCEPT
  8072. {
  8073. minBufferCountForCamping = minBufferCountForCamping_;
  8074. return *this;
  8075. }
  8076. VULKAN_HPP_CONSTEXPR_14 BufferCollectionConstraintsInfoFUCHSIA &
  8077. setMinBufferCountForDedicatedSlack( uint32_t minBufferCountForDedicatedSlack_ ) VULKAN_HPP_NOEXCEPT
  8078. {
  8079. minBufferCountForDedicatedSlack = minBufferCountForDedicatedSlack_;
  8080. return *this;
  8081. }
  8082. VULKAN_HPP_CONSTEXPR_14 BufferCollectionConstraintsInfoFUCHSIA &
  8083. setMinBufferCountForSharedSlack( uint32_t minBufferCountForSharedSlack_ ) VULKAN_HPP_NOEXCEPT
  8084. {
  8085. minBufferCountForSharedSlack = minBufferCountForSharedSlack_;
  8086. return *this;
  8087. }
  8088. # endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  8089. operator VkBufferCollectionConstraintsInfoFUCHSIA const &() const VULKAN_HPP_NOEXCEPT
  8090. {
  8091. return *reinterpret_cast<const VkBufferCollectionConstraintsInfoFUCHSIA *>( this );
  8092. }
  8093. operator VkBufferCollectionConstraintsInfoFUCHSIA &() VULKAN_HPP_NOEXCEPT
  8094. {
  8095. return *reinterpret_cast<VkBufferCollectionConstraintsInfoFUCHSIA *>( this );
  8096. }
  8097. # if defined( VULKAN_HPP_USE_REFLECT )
  8098. # if 14 <= VULKAN_HPP_CPP_VERSION
  8099. auto
  8100. # else
  8101. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  8102. const void * const &,
  8103. uint32_t const &,
  8104. uint32_t const &,
  8105. uint32_t const &,
  8106. uint32_t const &,
  8107. uint32_t const &>
  8108. # endif
  8109. reflect() const VULKAN_HPP_NOEXCEPT
  8110. {
  8111. return std::tie( sType, pNext, minBufferCount, maxBufferCount, minBufferCountForCamping, minBufferCountForDedicatedSlack, minBufferCountForSharedSlack );
  8112. }
  8113. # endif
  8114. # if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  8115. auto operator<=>( BufferCollectionConstraintsInfoFUCHSIA const & ) const = default;
  8116. # else
  8117. bool operator==( BufferCollectionConstraintsInfoFUCHSIA const & rhs ) const VULKAN_HPP_NOEXCEPT
  8118. {
  8119. # if defined( VULKAN_HPP_USE_REFLECT )
  8120. return this->reflect() == rhs.reflect();
  8121. # else
  8122. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( minBufferCount == rhs.minBufferCount ) && ( maxBufferCount == rhs.maxBufferCount ) &&
  8123. ( minBufferCountForCamping == rhs.minBufferCountForCamping ) && ( minBufferCountForDedicatedSlack == rhs.minBufferCountForDedicatedSlack ) &&
  8124. ( minBufferCountForSharedSlack == rhs.minBufferCountForSharedSlack );
  8125. # endif
  8126. }
  8127. bool operator!=( BufferCollectionConstraintsInfoFUCHSIA const & rhs ) const VULKAN_HPP_NOEXCEPT
  8128. {
  8129. return !operator==( rhs );
  8130. }
  8131. # endif
  8132. public:
  8133. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eBufferCollectionConstraintsInfoFUCHSIA;
  8134. const void * pNext = {};
  8135. uint32_t minBufferCount = {};
  8136. uint32_t maxBufferCount = {};
  8137. uint32_t minBufferCountForCamping = {};
  8138. uint32_t minBufferCountForDedicatedSlack = {};
  8139. uint32_t minBufferCountForSharedSlack = {};
  8140. };
  8141. template <>
  8142. struct CppType<StructureType, StructureType::eBufferCollectionConstraintsInfoFUCHSIA>
  8143. {
  8144. using Type = BufferCollectionConstraintsInfoFUCHSIA;
  8145. };
  8146. #endif /*VK_USE_PLATFORM_FUCHSIA*/
  8147. #if defined( VK_USE_PLATFORM_FUCHSIA )
  8148. struct BufferCollectionCreateInfoFUCHSIA
  8149. {
  8150. using NativeType = VkBufferCollectionCreateInfoFUCHSIA;
  8151. static const bool allowDuplicate = false;
  8152. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eBufferCollectionCreateInfoFUCHSIA;
  8153. # if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  8154. VULKAN_HPP_CONSTEXPR BufferCollectionCreateInfoFUCHSIA( zx_handle_t collectionToken_ = {}, const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  8155. : pNext( pNext_ )
  8156. , collectionToken( collectionToken_ )
  8157. {
  8158. }
  8159. VULKAN_HPP_CONSTEXPR BufferCollectionCreateInfoFUCHSIA( BufferCollectionCreateInfoFUCHSIA const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  8160. BufferCollectionCreateInfoFUCHSIA( VkBufferCollectionCreateInfoFUCHSIA const & rhs ) VULKAN_HPP_NOEXCEPT
  8161. : BufferCollectionCreateInfoFUCHSIA( *reinterpret_cast<BufferCollectionCreateInfoFUCHSIA const *>( &rhs ) )
  8162. {
  8163. }
  8164. # endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  8165. BufferCollectionCreateInfoFUCHSIA & operator=( BufferCollectionCreateInfoFUCHSIA const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  8166. BufferCollectionCreateInfoFUCHSIA & operator=( VkBufferCollectionCreateInfoFUCHSIA const & rhs ) VULKAN_HPP_NOEXCEPT
  8167. {
  8168. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::BufferCollectionCreateInfoFUCHSIA const *>( &rhs );
  8169. return *this;
  8170. }
  8171. # if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  8172. VULKAN_HPP_CONSTEXPR_14 BufferCollectionCreateInfoFUCHSIA & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  8173. {
  8174. pNext = pNext_;
  8175. return *this;
  8176. }
  8177. VULKAN_HPP_CONSTEXPR_14 BufferCollectionCreateInfoFUCHSIA & setCollectionToken( zx_handle_t collectionToken_ ) VULKAN_HPP_NOEXCEPT
  8178. {
  8179. collectionToken = collectionToken_;
  8180. return *this;
  8181. }
  8182. # endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  8183. operator VkBufferCollectionCreateInfoFUCHSIA const &() const VULKAN_HPP_NOEXCEPT
  8184. {
  8185. return *reinterpret_cast<const VkBufferCollectionCreateInfoFUCHSIA *>( this );
  8186. }
  8187. operator VkBufferCollectionCreateInfoFUCHSIA &() VULKAN_HPP_NOEXCEPT
  8188. {
  8189. return *reinterpret_cast<VkBufferCollectionCreateInfoFUCHSIA *>( this );
  8190. }
  8191. # if defined( VULKAN_HPP_USE_REFLECT )
  8192. # if 14 <= VULKAN_HPP_CPP_VERSION
  8193. auto
  8194. # else
  8195. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, zx_handle_t const &>
  8196. # endif
  8197. reflect() const VULKAN_HPP_NOEXCEPT
  8198. {
  8199. return std::tie( sType, pNext, collectionToken );
  8200. }
  8201. # endif
  8202. # if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  8203. std::strong_ordering operator<=>( BufferCollectionCreateInfoFUCHSIA const & rhs ) const VULKAN_HPP_NOEXCEPT
  8204. {
  8205. if ( auto cmp = sType <=> rhs.sType; cmp != 0 )
  8206. return cmp;
  8207. if ( auto cmp = pNext <=> rhs.pNext; cmp != 0 )
  8208. return cmp;
  8209. if ( auto cmp = memcmp( &collectionToken, &rhs.collectionToken, sizeof( zx_handle_t ) ); cmp != 0 )
  8210. return ( cmp < 0 ) ? std::strong_ordering::less : std::strong_ordering::greater;
  8211. return std::strong_ordering::equivalent;
  8212. }
  8213. # endif
  8214. bool operator==( BufferCollectionCreateInfoFUCHSIA const & rhs ) const VULKAN_HPP_NOEXCEPT
  8215. {
  8216. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( memcmp( &collectionToken, &rhs.collectionToken, sizeof( zx_handle_t ) ) == 0 );
  8217. }
  8218. bool operator!=( BufferCollectionCreateInfoFUCHSIA const & rhs ) const VULKAN_HPP_NOEXCEPT
  8219. {
  8220. return !operator==( rhs );
  8221. }
  8222. public:
  8223. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eBufferCollectionCreateInfoFUCHSIA;
  8224. const void * pNext = {};
  8225. zx_handle_t collectionToken = {};
  8226. };
  8227. template <>
  8228. struct CppType<StructureType, StructureType::eBufferCollectionCreateInfoFUCHSIA>
  8229. {
  8230. using Type = BufferCollectionCreateInfoFUCHSIA;
  8231. };
  8232. #endif /*VK_USE_PLATFORM_FUCHSIA*/
  8233. #if defined( VK_USE_PLATFORM_FUCHSIA )
  8234. struct BufferCollectionImageCreateInfoFUCHSIA
  8235. {
  8236. using NativeType = VkBufferCollectionImageCreateInfoFUCHSIA;
  8237. static const bool allowDuplicate = false;
  8238. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eBufferCollectionImageCreateInfoFUCHSIA;
  8239. # if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  8240. VULKAN_HPP_CONSTEXPR BufferCollectionImageCreateInfoFUCHSIA( VULKAN_HPP_NAMESPACE::BufferCollectionFUCHSIA collection_ = {},
  8241. uint32_t index_ = {},
  8242. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  8243. : pNext( pNext_ )
  8244. , collection( collection_ )
  8245. , index( index_ )
  8246. {
  8247. }
  8248. VULKAN_HPP_CONSTEXPR BufferCollectionImageCreateInfoFUCHSIA( BufferCollectionImageCreateInfoFUCHSIA const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  8249. BufferCollectionImageCreateInfoFUCHSIA( VkBufferCollectionImageCreateInfoFUCHSIA const & rhs ) VULKAN_HPP_NOEXCEPT
  8250. : BufferCollectionImageCreateInfoFUCHSIA( *reinterpret_cast<BufferCollectionImageCreateInfoFUCHSIA const *>( &rhs ) )
  8251. {
  8252. }
  8253. # endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  8254. BufferCollectionImageCreateInfoFUCHSIA & operator=( BufferCollectionImageCreateInfoFUCHSIA const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  8255. BufferCollectionImageCreateInfoFUCHSIA & operator=( VkBufferCollectionImageCreateInfoFUCHSIA const & rhs ) VULKAN_HPP_NOEXCEPT
  8256. {
  8257. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::BufferCollectionImageCreateInfoFUCHSIA const *>( &rhs );
  8258. return *this;
  8259. }
  8260. # if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  8261. VULKAN_HPP_CONSTEXPR_14 BufferCollectionImageCreateInfoFUCHSIA & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  8262. {
  8263. pNext = pNext_;
  8264. return *this;
  8265. }
  8266. VULKAN_HPP_CONSTEXPR_14 BufferCollectionImageCreateInfoFUCHSIA &
  8267. setCollection( VULKAN_HPP_NAMESPACE::BufferCollectionFUCHSIA collection_ ) VULKAN_HPP_NOEXCEPT
  8268. {
  8269. collection = collection_;
  8270. return *this;
  8271. }
  8272. VULKAN_HPP_CONSTEXPR_14 BufferCollectionImageCreateInfoFUCHSIA & setIndex( uint32_t index_ ) VULKAN_HPP_NOEXCEPT
  8273. {
  8274. index = index_;
  8275. return *this;
  8276. }
  8277. # endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  8278. operator VkBufferCollectionImageCreateInfoFUCHSIA const &() const VULKAN_HPP_NOEXCEPT
  8279. {
  8280. return *reinterpret_cast<const VkBufferCollectionImageCreateInfoFUCHSIA *>( this );
  8281. }
  8282. operator VkBufferCollectionImageCreateInfoFUCHSIA &() VULKAN_HPP_NOEXCEPT
  8283. {
  8284. return *reinterpret_cast<VkBufferCollectionImageCreateInfoFUCHSIA *>( this );
  8285. }
  8286. # if defined( VULKAN_HPP_USE_REFLECT )
  8287. # if 14 <= VULKAN_HPP_CPP_VERSION
  8288. auto
  8289. # else
  8290. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::BufferCollectionFUCHSIA const &, uint32_t const &>
  8291. # endif
  8292. reflect() const VULKAN_HPP_NOEXCEPT
  8293. {
  8294. return std::tie( sType, pNext, collection, index );
  8295. }
  8296. # endif
  8297. # if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  8298. auto operator<=>( BufferCollectionImageCreateInfoFUCHSIA const & ) const = default;
  8299. # else
  8300. bool operator==( BufferCollectionImageCreateInfoFUCHSIA const & rhs ) const VULKAN_HPP_NOEXCEPT
  8301. {
  8302. # if defined( VULKAN_HPP_USE_REFLECT )
  8303. return this->reflect() == rhs.reflect();
  8304. # else
  8305. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( collection == rhs.collection ) && ( index == rhs.index );
  8306. # endif
  8307. }
  8308. bool operator!=( BufferCollectionImageCreateInfoFUCHSIA const & rhs ) const VULKAN_HPP_NOEXCEPT
  8309. {
  8310. return !operator==( rhs );
  8311. }
  8312. # endif
  8313. public:
  8314. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eBufferCollectionImageCreateInfoFUCHSIA;
  8315. const void * pNext = {};
  8316. VULKAN_HPP_NAMESPACE::BufferCollectionFUCHSIA collection = {};
  8317. uint32_t index = {};
  8318. };
  8319. template <>
  8320. struct CppType<StructureType, StructureType::eBufferCollectionImageCreateInfoFUCHSIA>
  8321. {
  8322. using Type = BufferCollectionImageCreateInfoFUCHSIA;
  8323. };
  8324. #endif /*VK_USE_PLATFORM_FUCHSIA*/
  8325. #if defined( VK_USE_PLATFORM_FUCHSIA )
  8326. struct SysmemColorSpaceFUCHSIA
  8327. {
  8328. using NativeType = VkSysmemColorSpaceFUCHSIA;
  8329. static const bool allowDuplicate = false;
  8330. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSysmemColorSpaceFUCHSIA;
  8331. # if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  8332. VULKAN_HPP_CONSTEXPR SysmemColorSpaceFUCHSIA( uint32_t colorSpace_ = {}, const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  8333. : pNext( pNext_ )
  8334. , colorSpace( colorSpace_ )
  8335. {
  8336. }
  8337. VULKAN_HPP_CONSTEXPR SysmemColorSpaceFUCHSIA( SysmemColorSpaceFUCHSIA const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  8338. SysmemColorSpaceFUCHSIA( VkSysmemColorSpaceFUCHSIA const & rhs ) VULKAN_HPP_NOEXCEPT
  8339. : SysmemColorSpaceFUCHSIA( *reinterpret_cast<SysmemColorSpaceFUCHSIA const *>( &rhs ) )
  8340. {
  8341. }
  8342. # endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  8343. SysmemColorSpaceFUCHSIA & operator=( SysmemColorSpaceFUCHSIA const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  8344. SysmemColorSpaceFUCHSIA & operator=( VkSysmemColorSpaceFUCHSIA const & rhs ) VULKAN_HPP_NOEXCEPT
  8345. {
  8346. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SysmemColorSpaceFUCHSIA const *>( &rhs );
  8347. return *this;
  8348. }
  8349. # if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  8350. VULKAN_HPP_CONSTEXPR_14 SysmemColorSpaceFUCHSIA & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  8351. {
  8352. pNext = pNext_;
  8353. return *this;
  8354. }
  8355. VULKAN_HPP_CONSTEXPR_14 SysmemColorSpaceFUCHSIA & setColorSpace( uint32_t colorSpace_ ) VULKAN_HPP_NOEXCEPT
  8356. {
  8357. colorSpace = colorSpace_;
  8358. return *this;
  8359. }
  8360. # endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  8361. operator VkSysmemColorSpaceFUCHSIA const &() const VULKAN_HPP_NOEXCEPT
  8362. {
  8363. return *reinterpret_cast<const VkSysmemColorSpaceFUCHSIA *>( this );
  8364. }
  8365. operator VkSysmemColorSpaceFUCHSIA &() VULKAN_HPP_NOEXCEPT
  8366. {
  8367. return *reinterpret_cast<VkSysmemColorSpaceFUCHSIA *>( this );
  8368. }
  8369. # if defined( VULKAN_HPP_USE_REFLECT )
  8370. # if 14 <= VULKAN_HPP_CPP_VERSION
  8371. auto
  8372. # else
  8373. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, uint32_t const &>
  8374. # endif
  8375. reflect() const VULKAN_HPP_NOEXCEPT
  8376. {
  8377. return std::tie( sType, pNext, colorSpace );
  8378. }
  8379. # endif
  8380. # if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  8381. auto operator<=>( SysmemColorSpaceFUCHSIA const & ) const = default;
  8382. # else
  8383. bool operator==( SysmemColorSpaceFUCHSIA const & rhs ) const VULKAN_HPP_NOEXCEPT
  8384. {
  8385. # if defined( VULKAN_HPP_USE_REFLECT )
  8386. return this->reflect() == rhs.reflect();
  8387. # else
  8388. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( colorSpace == rhs.colorSpace );
  8389. # endif
  8390. }
  8391. bool operator!=( SysmemColorSpaceFUCHSIA const & rhs ) const VULKAN_HPP_NOEXCEPT
  8392. {
  8393. return !operator==( rhs );
  8394. }
  8395. # endif
  8396. public:
  8397. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSysmemColorSpaceFUCHSIA;
  8398. const void * pNext = {};
  8399. uint32_t colorSpace = {};
  8400. };
  8401. template <>
  8402. struct CppType<StructureType, StructureType::eSysmemColorSpaceFUCHSIA>
  8403. {
  8404. using Type = SysmemColorSpaceFUCHSIA;
  8405. };
  8406. #endif /*VK_USE_PLATFORM_FUCHSIA*/
  8407. #if defined( VK_USE_PLATFORM_FUCHSIA )
  8408. struct BufferCollectionPropertiesFUCHSIA
  8409. {
  8410. using NativeType = VkBufferCollectionPropertiesFUCHSIA;
  8411. static const bool allowDuplicate = false;
  8412. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eBufferCollectionPropertiesFUCHSIA;
  8413. # if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  8414. VULKAN_HPP_CONSTEXPR BufferCollectionPropertiesFUCHSIA(
  8415. uint32_t memoryTypeBits_ = {},
  8416. uint32_t bufferCount_ = {},
  8417. uint32_t createInfoIndex_ = {},
  8418. uint64_t sysmemPixelFormat_ = {},
  8419. VULKAN_HPP_NAMESPACE::FormatFeatureFlags formatFeatures_ = {},
  8420. VULKAN_HPP_NAMESPACE::SysmemColorSpaceFUCHSIA sysmemColorSpaceIndex_ = {},
  8421. VULKAN_HPP_NAMESPACE::ComponentMapping samplerYcbcrConversionComponents_ = {},
  8422. VULKAN_HPP_NAMESPACE::SamplerYcbcrModelConversion suggestedYcbcrModel_ = VULKAN_HPP_NAMESPACE::SamplerYcbcrModelConversion::eRgbIdentity,
  8423. VULKAN_HPP_NAMESPACE::SamplerYcbcrRange suggestedYcbcrRange_ = VULKAN_HPP_NAMESPACE::SamplerYcbcrRange::eItuFull,
  8424. VULKAN_HPP_NAMESPACE::ChromaLocation suggestedXChromaOffset_ = VULKAN_HPP_NAMESPACE::ChromaLocation::eCositedEven,
  8425. VULKAN_HPP_NAMESPACE::ChromaLocation suggestedYChromaOffset_ = VULKAN_HPP_NAMESPACE::ChromaLocation::eCositedEven,
  8426. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  8427. : pNext( pNext_ )
  8428. , memoryTypeBits( memoryTypeBits_ )
  8429. , bufferCount( bufferCount_ )
  8430. , createInfoIndex( createInfoIndex_ )
  8431. , sysmemPixelFormat( sysmemPixelFormat_ )
  8432. , formatFeatures( formatFeatures_ )
  8433. , sysmemColorSpaceIndex( sysmemColorSpaceIndex_ )
  8434. , samplerYcbcrConversionComponents( samplerYcbcrConversionComponents_ )
  8435. , suggestedYcbcrModel( suggestedYcbcrModel_ )
  8436. , suggestedYcbcrRange( suggestedYcbcrRange_ )
  8437. , suggestedXChromaOffset( suggestedXChromaOffset_ )
  8438. , suggestedYChromaOffset( suggestedYChromaOffset_ )
  8439. {
  8440. }
  8441. VULKAN_HPP_CONSTEXPR BufferCollectionPropertiesFUCHSIA( BufferCollectionPropertiesFUCHSIA const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  8442. BufferCollectionPropertiesFUCHSIA( VkBufferCollectionPropertiesFUCHSIA const & rhs ) VULKAN_HPP_NOEXCEPT
  8443. : BufferCollectionPropertiesFUCHSIA( *reinterpret_cast<BufferCollectionPropertiesFUCHSIA const *>( &rhs ) )
  8444. {
  8445. }
  8446. # endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  8447. BufferCollectionPropertiesFUCHSIA & operator=( BufferCollectionPropertiesFUCHSIA const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  8448. BufferCollectionPropertiesFUCHSIA & operator=( VkBufferCollectionPropertiesFUCHSIA const & rhs ) VULKAN_HPP_NOEXCEPT
  8449. {
  8450. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::BufferCollectionPropertiesFUCHSIA const *>( &rhs );
  8451. return *this;
  8452. }
  8453. # if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  8454. VULKAN_HPP_CONSTEXPR_14 BufferCollectionPropertiesFUCHSIA & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
  8455. {
  8456. pNext = pNext_;
  8457. return *this;
  8458. }
  8459. VULKAN_HPP_CONSTEXPR_14 BufferCollectionPropertiesFUCHSIA & setMemoryTypeBits( uint32_t memoryTypeBits_ ) VULKAN_HPP_NOEXCEPT
  8460. {
  8461. memoryTypeBits = memoryTypeBits_;
  8462. return *this;
  8463. }
  8464. VULKAN_HPP_CONSTEXPR_14 BufferCollectionPropertiesFUCHSIA & setBufferCount( uint32_t bufferCount_ ) VULKAN_HPP_NOEXCEPT
  8465. {
  8466. bufferCount = bufferCount_;
  8467. return *this;
  8468. }
  8469. VULKAN_HPP_CONSTEXPR_14 BufferCollectionPropertiesFUCHSIA & setCreateInfoIndex( uint32_t createInfoIndex_ ) VULKAN_HPP_NOEXCEPT
  8470. {
  8471. createInfoIndex = createInfoIndex_;
  8472. return *this;
  8473. }
  8474. VULKAN_HPP_CONSTEXPR_14 BufferCollectionPropertiesFUCHSIA & setSysmemPixelFormat( uint64_t sysmemPixelFormat_ ) VULKAN_HPP_NOEXCEPT
  8475. {
  8476. sysmemPixelFormat = sysmemPixelFormat_;
  8477. return *this;
  8478. }
  8479. VULKAN_HPP_CONSTEXPR_14 BufferCollectionPropertiesFUCHSIA &
  8480. setFormatFeatures( VULKAN_HPP_NAMESPACE::FormatFeatureFlags formatFeatures_ ) VULKAN_HPP_NOEXCEPT
  8481. {
  8482. formatFeatures = formatFeatures_;
  8483. return *this;
  8484. }
  8485. VULKAN_HPP_CONSTEXPR_14 BufferCollectionPropertiesFUCHSIA &
  8486. setSysmemColorSpaceIndex( VULKAN_HPP_NAMESPACE::SysmemColorSpaceFUCHSIA const & sysmemColorSpaceIndex_ ) VULKAN_HPP_NOEXCEPT
  8487. {
  8488. sysmemColorSpaceIndex = sysmemColorSpaceIndex_;
  8489. return *this;
  8490. }
  8491. VULKAN_HPP_CONSTEXPR_14 BufferCollectionPropertiesFUCHSIA &
  8492. setSamplerYcbcrConversionComponents( VULKAN_HPP_NAMESPACE::ComponentMapping const & samplerYcbcrConversionComponents_ ) VULKAN_HPP_NOEXCEPT
  8493. {
  8494. samplerYcbcrConversionComponents = samplerYcbcrConversionComponents_;
  8495. return *this;
  8496. }
  8497. VULKAN_HPP_CONSTEXPR_14 BufferCollectionPropertiesFUCHSIA &
  8498. setSuggestedYcbcrModel( VULKAN_HPP_NAMESPACE::SamplerYcbcrModelConversion suggestedYcbcrModel_ ) VULKAN_HPP_NOEXCEPT
  8499. {
  8500. suggestedYcbcrModel = suggestedYcbcrModel_;
  8501. return *this;
  8502. }
  8503. VULKAN_HPP_CONSTEXPR_14 BufferCollectionPropertiesFUCHSIA &
  8504. setSuggestedYcbcrRange( VULKAN_HPP_NAMESPACE::SamplerYcbcrRange suggestedYcbcrRange_ ) VULKAN_HPP_NOEXCEPT
  8505. {
  8506. suggestedYcbcrRange = suggestedYcbcrRange_;
  8507. return *this;
  8508. }
  8509. VULKAN_HPP_CONSTEXPR_14 BufferCollectionPropertiesFUCHSIA &
  8510. setSuggestedXChromaOffset( VULKAN_HPP_NAMESPACE::ChromaLocation suggestedXChromaOffset_ ) VULKAN_HPP_NOEXCEPT
  8511. {
  8512. suggestedXChromaOffset = suggestedXChromaOffset_;
  8513. return *this;
  8514. }
  8515. VULKAN_HPP_CONSTEXPR_14 BufferCollectionPropertiesFUCHSIA &
  8516. setSuggestedYChromaOffset( VULKAN_HPP_NAMESPACE::ChromaLocation suggestedYChromaOffset_ ) VULKAN_HPP_NOEXCEPT
  8517. {
  8518. suggestedYChromaOffset = suggestedYChromaOffset_;
  8519. return *this;
  8520. }
  8521. # endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  8522. operator VkBufferCollectionPropertiesFUCHSIA const &() const VULKAN_HPP_NOEXCEPT
  8523. {
  8524. return *reinterpret_cast<const VkBufferCollectionPropertiesFUCHSIA *>( this );
  8525. }
  8526. operator VkBufferCollectionPropertiesFUCHSIA &() VULKAN_HPP_NOEXCEPT
  8527. {
  8528. return *reinterpret_cast<VkBufferCollectionPropertiesFUCHSIA *>( this );
  8529. }
  8530. # if defined( VULKAN_HPP_USE_REFLECT )
  8531. # if 14 <= VULKAN_HPP_CPP_VERSION
  8532. auto
  8533. # else
  8534. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  8535. void * const &,
  8536. uint32_t const &,
  8537. uint32_t const &,
  8538. uint32_t const &,
  8539. uint64_t const &,
  8540. VULKAN_HPP_NAMESPACE::FormatFeatureFlags const &,
  8541. VULKAN_HPP_NAMESPACE::SysmemColorSpaceFUCHSIA const &,
  8542. VULKAN_HPP_NAMESPACE::ComponentMapping const &,
  8543. VULKAN_HPP_NAMESPACE::SamplerYcbcrModelConversion const &,
  8544. VULKAN_HPP_NAMESPACE::SamplerYcbcrRange const &,
  8545. VULKAN_HPP_NAMESPACE::ChromaLocation const &,
  8546. VULKAN_HPP_NAMESPACE::ChromaLocation const &>
  8547. # endif
  8548. reflect() const VULKAN_HPP_NOEXCEPT
  8549. {
  8550. return std::tie( sType,
  8551. pNext,
  8552. memoryTypeBits,
  8553. bufferCount,
  8554. createInfoIndex,
  8555. sysmemPixelFormat,
  8556. formatFeatures,
  8557. sysmemColorSpaceIndex,
  8558. samplerYcbcrConversionComponents,
  8559. suggestedYcbcrModel,
  8560. suggestedYcbcrRange,
  8561. suggestedXChromaOffset,
  8562. suggestedYChromaOffset );
  8563. }
  8564. # endif
  8565. # if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  8566. auto operator<=>( BufferCollectionPropertiesFUCHSIA const & ) const = default;
  8567. # else
  8568. bool operator==( BufferCollectionPropertiesFUCHSIA const & rhs ) const VULKAN_HPP_NOEXCEPT
  8569. {
  8570. # if defined( VULKAN_HPP_USE_REFLECT )
  8571. return this->reflect() == rhs.reflect();
  8572. # else
  8573. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( memoryTypeBits == rhs.memoryTypeBits ) && ( bufferCount == rhs.bufferCount ) &&
  8574. ( createInfoIndex == rhs.createInfoIndex ) && ( sysmemPixelFormat == rhs.sysmemPixelFormat ) && ( formatFeatures == rhs.formatFeatures ) &&
  8575. ( sysmemColorSpaceIndex == rhs.sysmemColorSpaceIndex ) && ( samplerYcbcrConversionComponents == rhs.samplerYcbcrConversionComponents ) &&
  8576. ( suggestedYcbcrModel == rhs.suggestedYcbcrModel ) && ( suggestedYcbcrRange == rhs.suggestedYcbcrRange ) &&
  8577. ( suggestedXChromaOffset == rhs.suggestedXChromaOffset ) && ( suggestedYChromaOffset == rhs.suggestedYChromaOffset );
  8578. # endif
  8579. }
  8580. bool operator!=( BufferCollectionPropertiesFUCHSIA const & rhs ) const VULKAN_HPP_NOEXCEPT
  8581. {
  8582. return !operator==( rhs );
  8583. }
  8584. # endif
  8585. public:
  8586. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eBufferCollectionPropertiesFUCHSIA;
  8587. void * pNext = {};
  8588. uint32_t memoryTypeBits = {};
  8589. uint32_t bufferCount = {};
  8590. uint32_t createInfoIndex = {};
  8591. uint64_t sysmemPixelFormat = {};
  8592. VULKAN_HPP_NAMESPACE::FormatFeatureFlags formatFeatures = {};
  8593. VULKAN_HPP_NAMESPACE::SysmemColorSpaceFUCHSIA sysmemColorSpaceIndex = {};
  8594. VULKAN_HPP_NAMESPACE::ComponentMapping samplerYcbcrConversionComponents = {};
  8595. VULKAN_HPP_NAMESPACE::SamplerYcbcrModelConversion suggestedYcbcrModel = VULKAN_HPP_NAMESPACE::SamplerYcbcrModelConversion::eRgbIdentity;
  8596. VULKAN_HPP_NAMESPACE::SamplerYcbcrRange suggestedYcbcrRange = VULKAN_HPP_NAMESPACE::SamplerYcbcrRange::eItuFull;
  8597. VULKAN_HPP_NAMESPACE::ChromaLocation suggestedXChromaOffset = VULKAN_HPP_NAMESPACE::ChromaLocation::eCositedEven;
  8598. VULKAN_HPP_NAMESPACE::ChromaLocation suggestedYChromaOffset = VULKAN_HPP_NAMESPACE::ChromaLocation::eCositedEven;
  8599. };
  8600. template <>
  8601. struct CppType<StructureType, StructureType::eBufferCollectionPropertiesFUCHSIA>
  8602. {
  8603. using Type = BufferCollectionPropertiesFUCHSIA;
  8604. };
  8605. #endif /*VK_USE_PLATFORM_FUCHSIA*/
  8606. struct BufferCreateInfo
  8607. {
  8608. using NativeType = VkBufferCreateInfo;
  8609. static const bool allowDuplicate = false;
  8610. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eBufferCreateInfo;
  8611. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  8612. VULKAN_HPP_CONSTEXPR BufferCreateInfo( VULKAN_HPP_NAMESPACE::BufferCreateFlags flags_ = {},
  8613. VULKAN_HPP_NAMESPACE::DeviceSize size_ = {},
  8614. VULKAN_HPP_NAMESPACE::BufferUsageFlags usage_ = {},
  8615. VULKAN_HPP_NAMESPACE::SharingMode sharingMode_ = VULKAN_HPP_NAMESPACE::SharingMode::eExclusive,
  8616. uint32_t queueFamilyIndexCount_ = {},
  8617. const uint32_t * pQueueFamilyIndices_ = {},
  8618. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  8619. : pNext( pNext_ )
  8620. , flags( flags_ )
  8621. , size( size_ )
  8622. , usage( usage_ )
  8623. , sharingMode( sharingMode_ )
  8624. , queueFamilyIndexCount( queueFamilyIndexCount_ )
  8625. , pQueueFamilyIndices( pQueueFamilyIndices_ )
  8626. {
  8627. }
  8628. VULKAN_HPP_CONSTEXPR BufferCreateInfo( BufferCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  8629. BufferCreateInfo( VkBufferCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT : BufferCreateInfo( *reinterpret_cast<BufferCreateInfo const *>( &rhs ) ) {}
  8630. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  8631. BufferCreateInfo( VULKAN_HPP_NAMESPACE::BufferCreateFlags flags_,
  8632. VULKAN_HPP_NAMESPACE::DeviceSize size_,
  8633. VULKAN_HPP_NAMESPACE::BufferUsageFlags usage_,
  8634. VULKAN_HPP_NAMESPACE::SharingMode sharingMode_,
  8635. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint32_t> const & queueFamilyIndices_,
  8636. const void * pNext_ = nullptr )
  8637. : pNext( pNext_ )
  8638. , flags( flags_ )
  8639. , size( size_ )
  8640. , usage( usage_ )
  8641. , sharingMode( sharingMode_ )
  8642. , queueFamilyIndexCount( static_cast<uint32_t>( queueFamilyIndices_.size() ) )
  8643. , pQueueFamilyIndices( queueFamilyIndices_.data() )
  8644. {
  8645. }
  8646. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  8647. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  8648. BufferCreateInfo & operator=( BufferCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  8649. BufferCreateInfo & operator=( VkBufferCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
  8650. {
  8651. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::BufferCreateInfo const *>( &rhs );
  8652. return *this;
  8653. }
  8654. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  8655. VULKAN_HPP_CONSTEXPR_14 BufferCreateInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  8656. {
  8657. pNext = pNext_;
  8658. return *this;
  8659. }
  8660. VULKAN_HPP_CONSTEXPR_14 BufferCreateInfo & setFlags( VULKAN_HPP_NAMESPACE::BufferCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT
  8661. {
  8662. flags = flags_;
  8663. return *this;
  8664. }
  8665. VULKAN_HPP_CONSTEXPR_14 BufferCreateInfo & setSize( VULKAN_HPP_NAMESPACE::DeviceSize size_ ) VULKAN_HPP_NOEXCEPT
  8666. {
  8667. size = size_;
  8668. return *this;
  8669. }
  8670. VULKAN_HPP_CONSTEXPR_14 BufferCreateInfo & setUsage( VULKAN_HPP_NAMESPACE::BufferUsageFlags usage_ ) VULKAN_HPP_NOEXCEPT
  8671. {
  8672. usage = usage_;
  8673. return *this;
  8674. }
  8675. VULKAN_HPP_CONSTEXPR_14 BufferCreateInfo & setSharingMode( VULKAN_HPP_NAMESPACE::SharingMode sharingMode_ ) VULKAN_HPP_NOEXCEPT
  8676. {
  8677. sharingMode = sharingMode_;
  8678. return *this;
  8679. }
  8680. VULKAN_HPP_CONSTEXPR_14 BufferCreateInfo & setQueueFamilyIndexCount( uint32_t queueFamilyIndexCount_ ) VULKAN_HPP_NOEXCEPT
  8681. {
  8682. queueFamilyIndexCount = queueFamilyIndexCount_;
  8683. return *this;
  8684. }
  8685. VULKAN_HPP_CONSTEXPR_14 BufferCreateInfo & setPQueueFamilyIndices( const uint32_t * pQueueFamilyIndices_ ) VULKAN_HPP_NOEXCEPT
  8686. {
  8687. pQueueFamilyIndices = pQueueFamilyIndices_;
  8688. return *this;
  8689. }
  8690. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  8691. BufferCreateInfo & setQueueFamilyIndices( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint32_t> const & queueFamilyIndices_ ) VULKAN_HPP_NOEXCEPT
  8692. {
  8693. queueFamilyIndexCount = static_cast<uint32_t>( queueFamilyIndices_.size() );
  8694. pQueueFamilyIndices = queueFamilyIndices_.data();
  8695. return *this;
  8696. }
  8697. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  8698. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  8699. operator VkBufferCreateInfo const &() const VULKAN_HPP_NOEXCEPT
  8700. {
  8701. return *reinterpret_cast<const VkBufferCreateInfo *>( this );
  8702. }
  8703. operator VkBufferCreateInfo &() VULKAN_HPP_NOEXCEPT
  8704. {
  8705. return *reinterpret_cast<VkBufferCreateInfo *>( this );
  8706. }
  8707. #if defined( VULKAN_HPP_USE_REFLECT )
  8708. # if 14 <= VULKAN_HPP_CPP_VERSION
  8709. auto
  8710. # else
  8711. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  8712. const void * const &,
  8713. VULKAN_HPP_NAMESPACE::BufferCreateFlags const &,
  8714. VULKAN_HPP_NAMESPACE::DeviceSize const &,
  8715. VULKAN_HPP_NAMESPACE::BufferUsageFlags const &,
  8716. VULKAN_HPP_NAMESPACE::SharingMode const &,
  8717. uint32_t const &,
  8718. const uint32_t * const &>
  8719. # endif
  8720. reflect() const VULKAN_HPP_NOEXCEPT
  8721. {
  8722. return std::tie( sType, pNext, flags, size, usage, sharingMode, queueFamilyIndexCount, pQueueFamilyIndices );
  8723. }
  8724. #endif
  8725. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  8726. auto operator<=>( BufferCreateInfo const & ) const = default;
  8727. #else
  8728. bool operator==( BufferCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  8729. {
  8730. # if defined( VULKAN_HPP_USE_REFLECT )
  8731. return this->reflect() == rhs.reflect();
  8732. # else
  8733. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( flags == rhs.flags ) && ( size == rhs.size ) && ( usage == rhs.usage ) &&
  8734. ( sharingMode == rhs.sharingMode ) && ( queueFamilyIndexCount == rhs.queueFamilyIndexCount ) && ( pQueueFamilyIndices == rhs.pQueueFamilyIndices );
  8735. # endif
  8736. }
  8737. bool operator!=( BufferCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  8738. {
  8739. return !operator==( rhs );
  8740. }
  8741. #endif
  8742. public:
  8743. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eBufferCreateInfo;
  8744. const void * pNext = {};
  8745. VULKAN_HPP_NAMESPACE::BufferCreateFlags flags = {};
  8746. VULKAN_HPP_NAMESPACE::DeviceSize size = {};
  8747. VULKAN_HPP_NAMESPACE::BufferUsageFlags usage = {};
  8748. VULKAN_HPP_NAMESPACE::SharingMode sharingMode = VULKAN_HPP_NAMESPACE::SharingMode::eExclusive;
  8749. uint32_t queueFamilyIndexCount = {};
  8750. const uint32_t * pQueueFamilyIndices = {};
  8751. };
  8752. template <>
  8753. struct CppType<StructureType, StructureType::eBufferCreateInfo>
  8754. {
  8755. using Type = BufferCreateInfo;
  8756. };
  8757. #if defined( VK_USE_PLATFORM_FUCHSIA )
  8758. struct BufferConstraintsInfoFUCHSIA
  8759. {
  8760. using NativeType = VkBufferConstraintsInfoFUCHSIA;
  8761. static const bool allowDuplicate = false;
  8762. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eBufferConstraintsInfoFUCHSIA;
  8763. # if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  8764. VULKAN_HPP_CONSTEXPR BufferConstraintsInfoFUCHSIA( VULKAN_HPP_NAMESPACE::BufferCreateInfo createInfo_ = {},
  8765. VULKAN_HPP_NAMESPACE::FormatFeatureFlags requiredFormatFeatures_ = {},
  8766. VULKAN_HPP_NAMESPACE::BufferCollectionConstraintsInfoFUCHSIA bufferCollectionConstraints_ = {},
  8767. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  8768. : pNext( pNext_ )
  8769. , createInfo( createInfo_ )
  8770. , requiredFormatFeatures( requiredFormatFeatures_ )
  8771. , bufferCollectionConstraints( bufferCollectionConstraints_ )
  8772. {
  8773. }
  8774. VULKAN_HPP_CONSTEXPR BufferConstraintsInfoFUCHSIA( BufferConstraintsInfoFUCHSIA const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  8775. BufferConstraintsInfoFUCHSIA( VkBufferConstraintsInfoFUCHSIA const & rhs ) VULKAN_HPP_NOEXCEPT
  8776. : BufferConstraintsInfoFUCHSIA( *reinterpret_cast<BufferConstraintsInfoFUCHSIA const *>( &rhs ) )
  8777. {
  8778. }
  8779. # endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  8780. BufferConstraintsInfoFUCHSIA & operator=( BufferConstraintsInfoFUCHSIA const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  8781. BufferConstraintsInfoFUCHSIA & operator=( VkBufferConstraintsInfoFUCHSIA const & rhs ) VULKAN_HPP_NOEXCEPT
  8782. {
  8783. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::BufferConstraintsInfoFUCHSIA const *>( &rhs );
  8784. return *this;
  8785. }
  8786. # if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  8787. VULKAN_HPP_CONSTEXPR_14 BufferConstraintsInfoFUCHSIA & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  8788. {
  8789. pNext = pNext_;
  8790. return *this;
  8791. }
  8792. VULKAN_HPP_CONSTEXPR_14 BufferConstraintsInfoFUCHSIA & setCreateInfo( VULKAN_HPP_NAMESPACE::BufferCreateInfo const & createInfo_ ) VULKAN_HPP_NOEXCEPT
  8793. {
  8794. createInfo = createInfo_;
  8795. return *this;
  8796. }
  8797. VULKAN_HPP_CONSTEXPR_14 BufferConstraintsInfoFUCHSIA &
  8798. setRequiredFormatFeatures( VULKAN_HPP_NAMESPACE::FormatFeatureFlags requiredFormatFeatures_ ) VULKAN_HPP_NOEXCEPT
  8799. {
  8800. requiredFormatFeatures = requiredFormatFeatures_;
  8801. return *this;
  8802. }
  8803. VULKAN_HPP_CONSTEXPR_14 BufferConstraintsInfoFUCHSIA &
  8804. setBufferCollectionConstraints( VULKAN_HPP_NAMESPACE::BufferCollectionConstraintsInfoFUCHSIA const & bufferCollectionConstraints_ ) VULKAN_HPP_NOEXCEPT
  8805. {
  8806. bufferCollectionConstraints = bufferCollectionConstraints_;
  8807. return *this;
  8808. }
  8809. # endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  8810. operator VkBufferConstraintsInfoFUCHSIA const &() const VULKAN_HPP_NOEXCEPT
  8811. {
  8812. return *reinterpret_cast<const VkBufferConstraintsInfoFUCHSIA *>( this );
  8813. }
  8814. operator VkBufferConstraintsInfoFUCHSIA &() VULKAN_HPP_NOEXCEPT
  8815. {
  8816. return *reinterpret_cast<VkBufferConstraintsInfoFUCHSIA *>( this );
  8817. }
  8818. # if defined( VULKAN_HPP_USE_REFLECT )
  8819. # if 14 <= VULKAN_HPP_CPP_VERSION
  8820. auto
  8821. # else
  8822. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  8823. const void * const &,
  8824. VULKAN_HPP_NAMESPACE::BufferCreateInfo const &,
  8825. VULKAN_HPP_NAMESPACE::FormatFeatureFlags const &,
  8826. VULKAN_HPP_NAMESPACE::BufferCollectionConstraintsInfoFUCHSIA const &>
  8827. # endif
  8828. reflect() const VULKAN_HPP_NOEXCEPT
  8829. {
  8830. return std::tie( sType, pNext, createInfo, requiredFormatFeatures, bufferCollectionConstraints );
  8831. }
  8832. # endif
  8833. # if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  8834. auto operator<=>( BufferConstraintsInfoFUCHSIA const & ) const = default;
  8835. # else
  8836. bool operator==( BufferConstraintsInfoFUCHSIA const & rhs ) const VULKAN_HPP_NOEXCEPT
  8837. {
  8838. # if defined( VULKAN_HPP_USE_REFLECT )
  8839. return this->reflect() == rhs.reflect();
  8840. # else
  8841. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( createInfo == rhs.createInfo ) && ( requiredFormatFeatures == rhs.requiredFormatFeatures ) &&
  8842. ( bufferCollectionConstraints == rhs.bufferCollectionConstraints );
  8843. # endif
  8844. }
  8845. bool operator!=( BufferConstraintsInfoFUCHSIA const & rhs ) const VULKAN_HPP_NOEXCEPT
  8846. {
  8847. return !operator==( rhs );
  8848. }
  8849. # endif
  8850. public:
  8851. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eBufferConstraintsInfoFUCHSIA;
  8852. const void * pNext = {};
  8853. VULKAN_HPP_NAMESPACE::BufferCreateInfo createInfo = {};
  8854. VULKAN_HPP_NAMESPACE::FormatFeatureFlags requiredFormatFeatures = {};
  8855. VULKAN_HPP_NAMESPACE::BufferCollectionConstraintsInfoFUCHSIA bufferCollectionConstraints = {};
  8856. };
  8857. template <>
  8858. struct CppType<StructureType, StructureType::eBufferConstraintsInfoFUCHSIA>
  8859. {
  8860. using Type = BufferConstraintsInfoFUCHSIA;
  8861. };
  8862. #endif /*VK_USE_PLATFORM_FUCHSIA*/
  8863. struct BufferCopy
  8864. {
  8865. using NativeType = VkBufferCopy;
  8866. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  8867. VULKAN_HPP_CONSTEXPR BufferCopy( VULKAN_HPP_NAMESPACE::DeviceSize srcOffset_ = {},
  8868. VULKAN_HPP_NAMESPACE::DeviceSize dstOffset_ = {},
  8869. VULKAN_HPP_NAMESPACE::DeviceSize size_ = {} ) VULKAN_HPP_NOEXCEPT
  8870. : srcOffset( srcOffset_ )
  8871. , dstOffset( dstOffset_ )
  8872. , size( size_ )
  8873. {
  8874. }
  8875. VULKAN_HPP_CONSTEXPR BufferCopy( BufferCopy const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  8876. BufferCopy( VkBufferCopy const & rhs ) VULKAN_HPP_NOEXCEPT : BufferCopy( *reinterpret_cast<BufferCopy const *>( &rhs ) ) {}
  8877. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  8878. BufferCopy & operator=( BufferCopy const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  8879. BufferCopy & operator=( VkBufferCopy const & rhs ) VULKAN_HPP_NOEXCEPT
  8880. {
  8881. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::BufferCopy const *>( &rhs );
  8882. return *this;
  8883. }
  8884. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  8885. VULKAN_HPP_CONSTEXPR_14 BufferCopy & setSrcOffset( VULKAN_HPP_NAMESPACE::DeviceSize srcOffset_ ) VULKAN_HPP_NOEXCEPT
  8886. {
  8887. srcOffset = srcOffset_;
  8888. return *this;
  8889. }
  8890. VULKAN_HPP_CONSTEXPR_14 BufferCopy & setDstOffset( VULKAN_HPP_NAMESPACE::DeviceSize dstOffset_ ) VULKAN_HPP_NOEXCEPT
  8891. {
  8892. dstOffset = dstOffset_;
  8893. return *this;
  8894. }
  8895. VULKAN_HPP_CONSTEXPR_14 BufferCopy & setSize( VULKAN_HPP_NAMESPACE::DeviceSize size_ ) VULKAN_HPP_NOEXCEPT
  8896. {
  8897. size = size_;
  8898. return *this;
  8899. }
  8900. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  8901. operator VkBufferCopy const &() const VULKAN_HPP_NOEXCEPT
  8902. {
  8903. return *reinterpret_cast<const VkBufferCopy *>( this );
  8904. }
  8905. operator VkBufferCopy &() VULKAN_HPP_NOEXCEPT
  8906. {
  8907. return *reinterpret_cast<VkBufferCopy *>( this );
  8908. }
  8909. #if defined( VULKAN_HPP_USE_REFLECT )
  8910. # if 14 <= VULKAN_HPP_CPP_VERSION
  8911. auto
  8912. # else
  8913. std::tuple<VULKAN_HPP_NAMESPACE::DeviceSize const &, VULKAN_HPP_NAMESPACE::DeviceSize const &, VULKAN_HPP_NAMESPACE::DeviceSize const &>
  8914. # endif
  8915. reflect() const VULKAN_HPP_NOEXCEPT
  8916. {
  8917. return std::tie( srcOffset, dstOffset, size );
  8918. }
  8919. #endif
  8920. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  8921. auto operator<=>( BufferCopy const & ) const = default;
  8922. #else
  8923. bool operator==( BufferCopy const & rhs ) const VULKAN_HPP_NOEXCEPT
  8924. {
  8925. # if defined( VULKAN_HPP_USE_REFLECT )
  8926. return this->reflect() == rhs.reflect();
  8927. # else
  8928. return ( srcOffset == rhs.srcOffset ) && ( dstOffset == rhs.dstOffset ) && ( size == rhs.size );
  8929. # endif
  8930. }
  8931. bool operator!=( BufferCopy const & rhs ) const VULKAN_HPP_NOEXCEPT
  8932. {
  8933. return !operator==( rhs );
  8934. }
  8935. #endif
  8936. public:
  8937. VULKAN_HPP_NAMESPACE::DeviceSize srcOffset = {};
  8938. VULKAN_HPP_NAMESPACE::DeviceSize dstOffset = {};
  8939. VULKAN_HPP_NAMESPACE::DeviceSize size = {};
  8940. };
  8941. struct BufferCopy2
  8942. {
  8943. using NativeType = VkBufferCopy2;
  8944. static const bool allowDuplicate = false;
  8945. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eBufferCopy2;
  8946. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  8947. VULKAN_HPP_CONSTEXPR BufferCopy2( VULKAN_HPP_NAMESPACE::DeviceSize srcOffset_ = {},
  8948. VULKAN_HPP_NAMESPACE::DeviceSize dstOffset_ = {},
  8949. VULKAN_HPP_NAMESPACE::DeviceSize size_ = {},
  8950. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  8951. : pNext( pNext_ )
  8952. , srcOffset( srcOffset_ )
  8953. , dstOffset( dstOffset_ )
  8954. , size( size_ )
  8955. {
  8956. }
  8957. VULKAN_HPP_CONSTEXPR BufferCopy2( BufferCopy2 const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  8958. BufferCopy2( VkBufferCopy2 const & rhs ) VULKAN_HPP_NOEXCEPT : BufferCopy2( *reinterpret_cast<BufferCopy2 const *>( &rhs ) ) {}
  8959. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  8960. BufferCopy2 & operator=( BufferCopy2 const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  8961. BufferCopy2 & operator=( VkBufferCopy2 const & rhs ) VULKAN_HPP_NOEXCEPT
  8962. {
  8963. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::BufferCopy2 const *>( &rhs );
  8964. return *this;
  8965. }
  8966. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  8967. VULKAN_HPP_CONSTEXPR_14 BufferCopy2 & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  8968. {
  8969. pNext = pNext_;
  8970. return *this;
  8971. }
  8972. VULKAN_HPP_CONSTEXPR_14 BufferCopy2 & setSrcOffset( VULKAN_HPP_NAMESPACE::DeviceSize srcOffset_ ) VULKAN_HPP_NOEXCEPT
  8973. {
  8974. srcOffset = srcOffset_;
  8975. return *this;
  8976. }
  8977. VULKAN_HPP_CONSTEXPR_14 BufferCopy2 & setDstOffset( VULKAN_HPP_NAMESPACE::DeviceSize dstOffset_ ) VULKAN_HPP_NOEXCEPT
  8978. {
  8979. dstOffset = dstOffset_;
  8980. return *this;
  8981. }
  8982. VULKAN_HPP_CONSTEXPR_14 BufferCopy2 & setSize( VULKAN_HPP_NAMESPACE::DeviceSize size_ ) VULKAN_HPP_NOEXCEPT
  8983. {
  8984. size = size_;
  8985. return *this;
  8986. }
  8987. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  8988. operator VkBufferCopy2 const &() const VULKAN_HPP_NOEXCEPT
  8989. {
  8990. return *reinterpret_cast<const VkBufferCopy2 *>( this );
  8991. }
  8992. operator VkBufferCopy2 &() VULKAN_HPP_NOEXCEPT
  8993. {
  8994. return *reinterpret_cast<VkBufferCopy2 *>( this );
  8995. }
  8996. #if defined( VULKAN_HPP_USE_REFLECT )
  8997. # if 14 <= VULKAN_HPP_CPP_VERSION
  8998. auto
  8999. # else
  9000. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  9001. const void * const &,
  9002. VULKAN_HPP_NAMESPACE::DeviceSize const &,
  9003. VULKAN_HPP_NAMESPACE::DeviceSize const &,
  9004. VULKAN_HPP_NAMESPACE::DeviceSize const &>
  9005. # endif
  9006. reflect() const VULKAN_HPP_NOEXCEPT
  9007. {
  9008. return std::tie( sType, pNext, srcOffset, dstOffset, size );
  9009. }
  9010. #endif
  9011. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  9012. auto operator<=>( BufferCopy2 const & ) const = default;
  9013. #else
  9014. bool operator==( BufferCopy2 const & rhs ) const VULKAN_HPP_NOEXCEPT
  9015. {
  9016. # if defined( VULKAN_HPP_USE_REFLECT )
  9017. return this->reflect() == rhs.reflect();
  9018. # else
  9019. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( srcOffset == rhs.srcOffset ) && ( dstOffset == rhs.dstOffset ) && ( size == rhs.size );
  9020. # endif
  9021. }
  9022. bool operator!=( BufferCopy2 const & rhs ) const VULKAN_HPP_NOEXCEPT
  9023. {
  9024. return !operator==( rhs );
  9025. }
  9026. #endif
  9027. public:
  9028. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eBufferCopy2;
  9029. const void * pNext = {};
  9030. VULKAN_HPP_NAMESPACE::DeviceSize srcOffset = {};
  9031. VULKAN_HPP_NAMESPACE::DeviceSize dstOffset = {};
  9032. VULKAN_HPP_NAMESPACE::DeviceSize size = {};
  9033. };
  9034. template <>
  9035. struct CppType<StructureType, StructureType::eBufferCopy2>
  9036. {
  9037. using Type = BufferCopy2;
  9038. };
  9039. using BufferCopy2KHR = BufferCopy2;
  9040. struct BufferDeviceAddressCreateInfoEXT
  9041. {
  9042. using NativeType = VkBufferDeviceAddressCreateInfoEXT;
  9043. static const bool allowDuplicate = false;
  9044. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eBufferDeviceAddressCreateInfoEXT;
  9045. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  9046. VULKAN_HPP_CONSTEXPR BufferDeviceAddressCreateInfoEXT( VULKAN_HPP_NAMESPACE::DeviceAddress deviceAddress_ = {},
  9047. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  9048. : pNext( pNext_ )
  9049. , deviceAddress( deviceAddress_ )
  9050. {
  9051. }
  9052. VULKAN_HPP_CONSTEXPR BufferDeviceAddressCreateInfoEXT( BufferDeviceAddressCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  9053. BufferDeviceAddressCreateInfoEXT( VkBufferDeviceAddressCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  9054. : BufferDeviceAddressCreateInfoEXT( *reinterpret_cast<BufferDeviceAddressCreateInfoEXT const *>( &rhs ) )
  9055. {
  9056. }
  9057. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  9058. BufferDeviceAddressCreateInfoEXT & operator=( BufferDeviceAddressCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  9059. BufferDeviceAddressCreateInfoEXT & operator=( VkBufferDeviceAddressCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  9060. {
  9061. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::BufferDeviceAddressCreateInfoEXT const *>( &rhs );
  9062. return *this;
  9063. }
  9064. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  9065. VULKAN_HPP_CONSTEXPR_14 BufferDeviceAddressCreateInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  9066. {
  9067. pNext = pNext_;
  9068. return *this;
  9069. }
  9070. VULKAN_HPP_CONSTEXPR_14 BufferDeviceAddressCreateInfoEXT & setDeviceAddress( VULKAN_HPP_NAMESPACE::DeviceAddress deviceAddress_ ) VULKAN_HPP_NOEXCEPT
  9071. {
  9072. deviceAddress = deviceAddress_;
  9073. return *this;
  9074. }
  9075. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  9076. operator VkBufferDeviceAddressCreateInfoEXT const &() const VULKAN_HPP_NOEXCEPT
  9077. {
  9078. return *reinterpret_cast<const VkBufferDeviceAddressCreateInfoEXT *>( this );
  9079. }
  9080. operator VkBufferDeviceAddressCreateInfoEXT &() VULKAN_HPP_NOEXCEPT
  9081. {
  9082. return *reinterpret_cast<VkBufferDeviceAddressCreateInfoEXT *>( this );
  9083. }
  9084. #if defined( VULKAN_HPP_USE_REFLECT )
  9085. # if 14 <= VULKAN_HPP_CPP_VERSION
  9086. auto
  9087. # else
  9088. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::DeviceAddress const &>
  9089. # endif
  9090. reflect() const VULKAN_HPP_NOEXCEPT
  9091. {
  9092. return std::tie( sType, pNext, deviceAddress );
  9093. }
  9094. #endif
  9095. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  9096. auto operator<=>( BufferDeviceAddressCreateInfoEXT const & ) const = default;
  9097. #else
  9098. bool operator==( BufferDeviceAddressCreateInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  9099. {
  9100. # if defined( VULKAN_HPP_USE_REFLECT )
  9101. return this->reflect() == rhs.reflect();
  9102. # else
  9103. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( deviceAddress == rhs.deviceAddress );
  9104. # endif
  9105. }
  9106. bool operator!=( BufferDeviceAddressCreateInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  9107. {
  9108. return !operator==( rhs );
  9109. }
  9110. #endif
  9111. public:
  9112. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eBufferDeviceAddressCreateInfoEXT;
  9113. const void * pNext = {};
  9114. VULKAN_HPP_NAMESPACE::DeviceAddress deviceAddress = {};
  9115. };
  9116. template <>
  9117. struct CppType<StructureType, StructureType::eBufferDeviceAddressCreateInfoEXT>
  9118. {
  9119. using Type = BufferDeviceAddressCreateInfoEXT;
  9120. };
  9121. struct BufferDeviceAddressInfo
  9122. {
  9123. using NativeType = VkBufferDeviceAddressInfo;
  9124. static const bool allowDuplicate = false;
  9125. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eBufferDeviceAddressInfo;
  9126. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  9127. VULKAN_HPP_CONSTEXPR BufferDeviceAddressInfo( VULKAN_HPP_NAMESPACE::Buffer buffer_ = {}, const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  9128. : pNext( pNext_ )
  9129. , buffer( buffer_ )
  9130. {
  9131. }
  9132. VULKAN_HPP_CONSTEXPR BufferDeviceAddressInfo( BufferDeviceAddressInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  9133. BufferDeviceAddressInfo( VkBufferDeviceAddressInfo const & rhs ) VULKAN_HPP_NOEXCEPT
  9134. : BufferDeviceAddressInfo( *reinterpret_cast<BufferDeviceAddressInfo const *>( &rhs ) )
  9135. {
  9136. }
  9137. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  9138. BufferDeviceAddressInfo & operator=( BufferDeviceAddressInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  9139. BufferDeviceAddressInfo & operator=( VkBufferDeviceAddressInfo const & rhs ) VULKAN_HPP_NOEXCEPT
  9140. {
  9141. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::BufferDeviceAddressInfo const *>( &rhs );
  9142. return *this;
  9143. }
  9144. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  9145. VULKAN_HPP_CONSTEXPR_14 BufferDeviceAddressInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  9146. {
  9147. pNext = pNext_;
  9148. return *this;
  9149. }
  9150. VULKAN_HPP_CONSTEXPR_14 BufferDeviceAddressInfo & setBuffer( VULKAN_HPP_NAMESPACE::Buffer buffer_ ) VULKAN_HPP_NOEXCEPT
  9151. {
  9152. buffer = buffer_;
  9153. return *this;
  9154. }
  9155. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  9156. operator VkBufferDeviceAddressInfo const &() const VULKAN_HPP_NOEXCEPT
  9157. {
  9158. return *reinterpret_cast<const VkBufferDeviceAddressInfo *>( this );
  9159. }
  9160. operator VkBufferDeviceAddressInfo &() VULKAN_HPP_NOEXCEPT
  9161. {
  9162. return *reinterpret_cast<VkBufferDeviceAddressInfo *>( this );
  9163. }
  9164. #if defined( VULKAN_HPP_USE_REFLECT )
  9165. # if 14 <= VULKAN_HPP_CPP_VERSION
  9166. auto
  9167. # else
  9168. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::Buffer const &>
  9169. # endif
  9170. reflect() const VULKAN_HPP_NOEXCEPT
  9171. {
  9172. return std::tie( sType, pNext, buffer );
  9173. }
  9174. #endif
  9175. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  9176. auto operator<=>( BufferDeviceAddressInfo const & ) const = default;
  9177. #else
  9178. bool operator==( BufferDeviceAddressInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  9179. {
  9180. # if defined( VULKAN_HPP_USE_REFLECT )
  9181. return this->reflect() == rhs.reflect();
  9182. # else
  9183. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( buffer == rhs.buffer );
  9184. # endif
  9185. }
  9186. bool operator!=( BufferDeviceAddressInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  9187. {
  9188. return !operator==( rhs );
  9189. }
  9190. #endif
  9191. public:
  9192. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eBufferDeviceAddressInfo;
  9193. const void * pNext = {};
  9194. VULKAN_HPP_NAMESPACE::Buffer buffer = {};
  9195. };
  9196. template <>
  9197. struct CppType<StructureType, StructureType::eBufferDeviceAddressInfo>
  9198. {
  9199. using Type = BufferDeviceAddressInfo;
  9200. };
  9201. using BufferDeviceAddressInfoEXT = BufferDeviceAddressInfo;
  9202. using BufferDeviceAddressInfoKHR = BufferDeviceAddressInfo;
  9203. struct BufferImageCopy
  9204. {
  9205. using NativeType = VkBufferImageCopy;
  9206. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  9207. VULKAN_HPP_CONSTEXPR BufferImageCopy( VULKAN_HPP_NAMESPACE::DeviceSize bufferOffset_ = {},
  9208. uint32_t bufferRowLength_ = {},
  9209. uint32_t bufferImageHeight_ = {},
  9210. VULKAN_HPP_NAMESPACE::ImageSubresourceLayers imageSubresource_ = {},
  9211. VULKAN_HPP_NAMESPACE::Offset3D imageOffset_ = {},
  9212. VULKAN_HPP_NAMESPACE::Extent3D imageExtent_ = {} ) VULKAN_HPP_NOEXCEPT
  9213. : bufferOffset( bufferOffset_ )
  9214. , bufferRowLength( bufferRowLength_ )
  9215. , bufferImageHeight( bufferImageHeight_ )
  9216. , imageSubresource( imageSubresource_ )
  9217. , imageOffset( imageOffset_ )
  9218. , imageExtent( imageExtent_ )
  9219. {
  9220. }
  9221. VULKAN_HPP_CONSTEXPR BufferImageCopy( BufferImageCopy const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  9222. BufferImageCopy( VkBufferImageCopy const & rhs ) VULKAN_HPP_NOEXCEPT : BufferImageCopy( *reinterpret_cast<BufferImageCopy const *>( &rhs ) ) {}
  9223. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  9224. BufferImageCopy & operator=( BufferImageCopy const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  9225. BufferImageCopy & operator=( VkBufferImageCopy const & rhs ) VULKAN_HPP_NOEXCEPT
  9226. {
  9227. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::BufferImageCopy const *>( &rhs );
  9228. return *this;
  9229. }
  9230. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  9231. VULKAN_HPP_CONSTEXPR_14 BufferImageCopy & setBufferOffset( VULKAN_HPP_NAMESPACE::DeviceSize bufferOffset_ ) VULKAN_HPP_NOEXCEPT
  9232. {
  9233. bufferOffset = bufferOffset_;
  9234. return *this;
  9235. }
  9236. VULKAN_HPP_CONSTEXPR_14 BufferImageCopy & setBufferRowLength( uint32_t bufferRowLength_ ) VULKAN_HPP_NOEXCEPT
  9237. {
  9238. bufferRowLength = bufferRowLength_;
  9239. return *this;
  9240. }
  9241. VULKAN_HPP_CONSTEXPR_14 BufferImageCopy & setBufferImageHeight( uint32_t bufferImageHeight_ ) VULKAN_HPP_NOEXCEPT
  9242. {
  9243. bufferImageHeight = bufferImageHeight_;
  9244. return *this;
  9245. }
  9246. VULKAN_HPP_CONSTEXPR_14 BufferImageCopy & setImageSubresource( VULKAN_HPP_NAMESPACE::ImageSubresourceLayers const & imageSubresource_ ) VULKAN_HPP_NOEXCEPT
  9247. {
  9248. imageSubresource = imageSubresource_;
  9249. return *this;
  9250. }
  9251. VULKAN_HPP_CONSTEXPR_14 BufferImageCopy & setImageOffset( VULKAN_HPP_NAMESPACE::Offset3D const & imageOffset_ ) VULKAN_HPP_NOEXCEPT
  9252. {
  9253. imageOffset = imageOffset_;
  9254. return *this;
  9255. }
  9256. VULKAN_HPP_CONSTEXPR_14 BufferImageCopy & setImageExtent( VULKAN_HPP_NAMESPACE::Extent3D const & imageExtent_ ) VULKAN_HPP_NOEXCEPT
  9257. {
  9258. imageExtent = imageExtent_;
  9259. return *this;
  9260. }
  9261. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  9262. operator VkBufferImageCopy const &() const VULKAN_HPP_NOEXCEPT
  9263. {
  9264. return *reinterpret_cast<const VkBufferImageCopy *>( this );
  9265. }
  9266. operator VkBufferImageCopy &() VULKAN_HPP_NOEXCEPT
  9267. {
  9268. return *reinterpret_cast<VkBufferImageCopy *>( this );
  9269. }
  9270. #if defined( VULKAN_HPP_USE_REFLECT )
  9271. # if 14 <= VULKAN_HPP_CPP_VERSION
  9272. auto
  9273. # else
  9274. std::tuple<VULKAN_HPP_NAMESPACE::DeviceSize const &,
  9275. uint32_t const &,
  9276. uint32_t const &,
  9277. VULKAN_HPP_NAMESPACE::ImageSubresourceLayers const &,
  9278. VULKAN_HPP_NAMESPACE::Offset3D const &,
  9279. VULKAN_HPP_NAMESPACE::Extent3D const &>
  9280. # endif
  9281. reflect() const VULKAN_HPP_NOEXCEPT
  9282. {
  9283. return std::tie( bufferOffset, bufferRowLength, bufferImageHeight, imageSubresource, imageOffset, imageExtent );
  9284. }
  9285. #endif
  9286. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  9287. auto operator<=>( BufferImageCopy const & ) const = default;
  9288. #else
  9289. bool operator==( BufferImageCopy const & rhs ) const VULKAN_HPP_NOEXCEPT
  9290. {
  9291. # if defined( VULKAN_HPP_USE_REFLECT )
  9292. return this->reflect() == rhs.reflect();
  9293. # else
  9294. return ( bufferOffset == rhs.bufferOffset ) && ( bufferRowLength == rhs.bufferRowLength ) && ( bufferImageHeight == rhs.bufferImageHeight ) &&
  9295. ( imageSubresource == rhs.imageSubresource ) && ( imageOffset == rhs.imageOffset ) && ( imageExtent == rhs.imageExtent );
  9296. # endif
  9297. }
  9298. bool operator!=( BufferImageCopy const & rhs ) const VULKAN_HPP_NOEXCEPT
  9299. {
  9300. return !operator==( rhs );
  9301. }
  9302. #endif
  9303. public:
  9304. VULKAN_HPP_NAMESPACE::DeviceSize bufferOffset = {};
  9305. uint32_t bufferRowLength = {};
  9306. uint32_t bufferImageHeight = {};
  9307. VULKAN_HPP_NAMESPACE::ImageSubresourceLayers imageSubresource = {};
  9308. VULKAN_HPP_NAMESPACE::Offset3D imageOffset = {};
  9309. VULKAN_HPP_NAMESPACE::Extent3D imageExtent = {};
  9310. };
  9311. struct BufferImageCopy2
  9312. {
  9313. using NativeType = VkBufferImageCopy2;
  9314. static const bool allowDuplicate = false;
  9315. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eBufferImageCopy2;
  9316. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  9317. VULKAN_HPP_CONSTEXPR BufferImageCopy2( VULKAN_HPP_NAMESPACE::DeviceSize bufferOffset_ = {},
  9318. uint32_t bufferRowLength_ = {},
  9319. uint32_t bufferImageHeight_ = {},
  9320. VULKAN_HPP_NAMESPACE::ImageSubresourceLayers imageSubresource_ = {},
  9321. VULKAN_HPP_NAMESPACE::Offset3D imageOffset_ = {},
  9322. VULKAN_HPP_NAMESPACE::Extent3D imageExtent_ = {},
  9323. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  9324. : pNext( pNext_ )
  9325. , bufferOffset( bufferOffset_ )
  9326. , bufferRowLength( bufferRowLength_ )
  9327. , bufferImageHeight( bufferImageHeight_ )
  9328. , imageSubresource( imageSubresource_ )
  9329. , imageOffset( imageOffset_ )
  9330. , imageExtent( imageExtent_ )
  9331. {
  9332. }
  9333. VULKAN_HPP_CONSTEXPR BufferImageCopy2( BufferImageCopy2 const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  9334. BufferImageCopy2( VkBufferImageCopy2 const & rhs ) VULKAN_HPP_NOEXCEPT : BufferImageCopy2( *reinterpret_cast<BufferImageCopy2 const *>( &rhs ) ) {}
  9335. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  9336. BufferImageCopy2 & operator=( BufferImageCopy2 const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  9337. BufferImageCopy2 & operator=( VkBufferImageCopy2 const & rhs ) VULKAN_HPP_NOEXCEPT
  9338. {
  9339. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::BufferImageCopy2 const *>( &rhs );
  9340. return *this;
  9341. }
  9342. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  9343. VULKAN_HPP_CONSTEXPR_14 BufferImageCopy2 & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  9344. {
  9345. pNext = pNext_;
  9346. return *this;
  9347. }
  9348. VULKAN_HPP_CONSTEXPR_14 BufferImageCopy2 & setBufferOffset( VULKAN_HPP_NAMESPACE::DeviceSize bufferOffset_ ) VULKAN_HPP_NOEXCEPT
  9349. {
  9350. bufferOffset = bufferOffset_;
  9351. return *this;
  9352. }
  9353. VULKAN_HPP_CONSTEXPR_14 BufferImageCopy2 & setBufferRowLength( uint32_t bufferRowLength_ ) VULKAN_HPP_NOEXCEPT
  9354. {
  9355. bufferRowLength = bufferRowLength_;
  9356. return *this;
  9357. }
  9358. VULKAN_HPP_CONSTEXPR_14 BufferImageCopy2 & setBufferImageHeight( uint32_t bufferImageHeight_ ) VULKAN_HPP_NOEXCEPT
  9359. {
  9360. bufferImageHeight = bufferImageHeight_;
  9361. return *this;
  9362. }
  9363. VULKAN_HPP_CONSTEXPR_14 BufferImageCopy2 & setImageSubresource( VULKAN_HPP_NAMESPACE::ImageSubresourceLayers const & imageSubresource_ ) VULKAN_HPP_NOEXCEPT
  9364. {
  9365. imageSubresource = imageSubresource_;
  9366. return *this;
  9367. }
  9368. VULKAN_HPP_CONSTEXPR_14 BufferImageCopy2 & setImageOffset( VULKAN_HPP_NAMESPACE::Offset3D const & imageOffset_ ) VULKAN_HPP_NOEXCEPT
  9369. {
  9370. imageOffset = imageOffset_;
  9371. return *this;
  9372. }
  9373. VULKAN_HPP_CONSTEXPR_14 BufferImageCopy2 & setImageExtent( VULKAN_HPP_NAMESPACE::Extent3D const & imageExtent_ ) VULKAN_HPP_NOEXCEPT
  9374. {
  9375. imageExtent = imageExtent_;
  9376. return *this;
  9377. }
  9378. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  9379. operator VkBufferImageCopy2 const &() const VULKAN_HPP_NOEXCEPT
  9380. {
  9381. return *reinterpret_cast<const VkBufferImageCopy2 *>( this );
  9382. }
  9383. operator VkBufferImageCopy2 &() VULKAN_HPP_NOEXCEPT
  9384. {
  9385. return *reinterpret_cast<VkBufferImageCopy2 *>( this );
  9386. }
  9387. #if defined( VULKAN_HPP_USE_REFLECT )
  9388. # if 14 <= VULKAN_HPP_CPP_VERSION
  9389. auto
  9390. # else
  9391. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  9392. const void * const &,
  9393. VULKAN_HPP_NAMESPACE::DeviceSize const &,
  9394. uint32_t const &,
  9395. uint32_t const &,
  9396. VULKAN_HPP_NAMESPACE::ImageSubresourceLayers const &,
  9397. VULKAN_HPP_NAMESPACE::Offset3D const &,
  9398. VULKAN_HPP_NAMESPACE::Extent3D const &>
  9399. # endif
  9400. reflect() const VULKAN_HPP_NOEXCEPT
  9401. {
  9402. return std::tie( sType, pNext, bufferOffset, bufferRowLength, bufferImageHeight, imageSubresource, imageOffset, imageExtent );
  9403. }
  9404. #endif
  9405. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  9406. auto operator<=>( BufferImageCopy2 const & ) const = default;
  9407. #else
  9408. bool operator==( BufferImageCopy2 const & rhs ) const VULKAN_HPP_NOEXCEPT
  9409. {
  9410. # if defined( VULKAN_HPP_USE_REFLECT )
  9411. return this->reflect() == rhs.reflect();
  9412. # else
  9413. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( bufferOffset == rhs.bufferOffset ) && ( bufferRowLength == rhs.bufferRowLength ) &&
  9414. ( bufferImageHeight == rhs.bufferImageHeight ) && ( imageSubresource == rhs.imageSubresource ) && ( imageOffset == rhs.imageOffset ) &&
  9415. ( imageExtent == rhs.imageExtent );
  9416. # endif
  9417. }
  9418. bool operator!=( BufferImageCopy2 const & rhs ) const VULKAN_HPP_NOEXCEPT
  9419. {
  9420. return !operator==( rhs );
  9421. }
  9422. #endif
  9423. public:
  9424. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eBufferImageCopy2;
  9425. const void * pNext = {};
  9426. VULKAN_HPP_NAMESPACE::DeviceSize bufferOffset = {};
  9427. uint32_t bufferRowLength = {};
  9428. uint32_t bufferImageHeight = {};
  9429. VULKAN_HPP_NAMESPACE::ImageSubresourceLayers imageSubresource = {};
  9430. VULKAN_HPP_NAMESPACE::Offset3D imageOffset = {};
  9431. VULKAN_HPP_NAMESPACE::Extent3D imageExtent = {};
  9432. };
  9433. template <>
  9434. struct CppType<StructureType, StructureType::eBufferImageCopy2>
  9435. {
  9436. using Type = BufferImageCopy2;
  9437. };
  9438. using BufferImageCopy2KHR = BufferImageCopy2;
  9439. struct BufferMemoryBarrier
  9440. {
  9441. using NativeType = VkBufferMemoryBarrier;
  9442. static const bool allowDuplicate = false;
  9443. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eBufferMemoryBarrier;
  9444. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  9445. VULKAN_HPP_CONSTEXPR BufferMemoryBarrier( VULKAN_HPP_NAMESPACE::AccessFlags srcAccessMask_ = {},
  9446. VULKAN_HPP_NAMESPACE::AccessFlags dstAccessMask_ = {},
  9447. uint32_t srcQueueFamilyIndex_ = {},
  9448. uint32_t dstQueueFamilyIndex_ = {},
  9449. VULKAN_HPP_NAMESPACE::Buffer buffer_ = {},
  9450. VULKAN_HPP_NAMESPACE::DeviceSize offset_ = {},
  9451. VULKAN_HPP_NAMESPACE::DeviceSize size_ = {},
  9452. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  9453. : pNext( pNext_ )
  9454. , srcAccessMask( srcAccessMask_ )
  9455. , dstAccessMask( dstAccessMask_ )
  9456. , srcQueueFamilyIndex( srcQueueFamilyIndex_ )
  9457. , dstQueueFamilyIndex( dstQueueFamilyIndex_ )
  9458. , buffer( buffer_ )
  9459. , offset( offset_ )
  9460. , size( size_ )
  9461. {
  9462. }
  9463. VULKAN_HPP_CONSTEXPR BufferMemoryBarrier( BufferMemoryBarrier const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  9464. BufferMemoryBarrier( VkBufferMemoryBarrier const & rhs ) VULKAN_HPP_NOEXCEPT : BufferMemoryBarrier( *reinterpret_cast<BufferMemoryBarrier const *>( &rhs ) )
  9465. {
  9466. }
  9467. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  9468. BufferMemoryBarrier & operator=( BufferMemoryBarrier const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  9469. BufferMemoryBarrier & operator=( VkBufferMemoryBarrier const & rhs ) VULKAN_HPP_NOEXCEPT
  9470. {
  9471. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::BufferMemoryBarrier const *>( &rhs );
  9472. return *this;
  9473. }
  9474. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  9475. VULKAN_HPP_CONSTEXPR_14 BufferMemoryBarrier & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  9476. {
  9477. pNext = pNext_;
  9478. return *this;
  9479. }
  9480. VULKAN_HPP_CONSTEXPR_14 BufferMemoryBarrier & setSrcAccessMask( VULKAN_HPP_NAMESPACE::AccessFlags srcAccessMask_ ) VULKAN_HPP_NOEXCEPT
  9481. {
  9482. srcAccessMask = srcAccessMask_;
  9483. return *this;
  9484. }
  9485. VULKAN_HPP_CONSTEXPR_14 BufferMemoryBarrier & setDstAccessMask( VULKAN_HPP_NAMESPACE::AccessFlags dstAccessMask_ ) VULKAN_HPP_NOEXCEPT
  9486. {
  9487. dstAccessMask = dstAccessMask_;
  9488. return *this;
  9489. }
  9490. VULKAN_HPP_CONSTEXPR_14 BufferMemoryBarrier & setSrcQueueFamilyIndex( uint32_t srcQueueFamilyIndex_ ) VULKAN_HPP_NOEXCEPT
  9491. {
  9492. srcQueueFamilyIndex = srcQueueFamilyIndex_;
  9493. return *this;
  9494. }
  9495. VULKAN_HPP_CONSTEXPR_14 BufferMemoryBarrier & setDstQueueFamilyIndex( uint32_t dstQueueFamilyIndex_ ) VULKAN_HPP_NOEXCEPT
  9496. {
  9497. dstQueueFamilyIndex = dstQueueFamilyIndex_;
  9498. return *this;
  9499. }
  9500. VULKAN_HPP_CONSTEXPR_14 BufferMemoryBarrier & setBuffer( VULKAN_HPP_NAMESPACE::Buffer buffer_ ) VULKAN_HPP_NOEXCEPT
  9501. {
  9502. buffer = buffer_;
  9503. return *this;
  9504. }
  9505. VULKAN_HPP_CONSTEXPR_14 BufferMemoryBarrier & setOffset( VULKAN_HPP_NAMESPACE::DeviceSize offset_ ) VULKAN_HPP_NOEXCEPT
  9506. {
  9507. offset = offset_;
  9508. return *this;
  9509. }
  9510. VULKAN_HPP_CONSTEXPR_14 BufferMemoryBarrier & setSize( VULKAN_HPP_NAMESPACE::DeviceSize size_ ) VULKAN_HPP_NOEXCEPT
  9511. {
  9512. size = size_;
  9513. return *this;
  9514. }
  9515. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  9516. operator VkBufferMemoryBarrier const &() const VULKAN_HPP_NOEXCEPT
  9517. {
  9518. return *reinterpret_cast<const VkBufferMemoryBarrier *>( this );
  9519. }
  9520. operator VkBufferMemoryBarrier &() VULKAN_HPP_NOEXCEPT
  9521. {
  9522. return *reinterpret_cast<VkBufferMemoryBarrier *>( this );
  9523. }
  9524. #if defined( VULKAN_HPP_USE_REFLECT )
  9525. # if 14 <= VULKAN_HPP_CPP_VERSION
  9526. auto
  9527. # else
  9528. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  9529. const void * const &,
  9530. VULKAN_HPP_NAMESPACE::AccessFlags const &,
  9531. VULKAN_HPP_NAMESPACE::AccessFlags const &,
  9532. uint32_t const &,
  9533. uint32_t const &,
  9534. VULKAN_HPP_NAMESPACE::Buffer const &,
  9535. VULKAN_HPP_NAMESPACE::DeviceSize const &,
  9536. VULKAN_HPP_NAMESPACE::DeviceSize const &>
  9537. # endif
  9538. reflect() const VULKAN_HPP_NOEXCEPT
  9539. {
  9540. return std::tie( sType, pNext, srcAccessMask, dstAccessMask, srcQueueFamilyIndex, dstQueueFamilyIndex, buffer, offset, size );
  9541. }
  9542. #endif
  9543. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  9544. auto operator<=>( BufferMemoryBarrier const & ) const = default;
  9545. #else
  9546. bool operator==( BufferMemoryBarrier const & rhs ) const VULKAN_HPP_NOEXCEPT
  9547. {
  9548. # if defined( VULKAN_HPP_USE_REFLECT )
  9549. return this->reflect() == rhs.reflect();
  9550. # else
  9551. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( srcAccessMask == rhs.srcAccessMask ) && ( dstAccessMask == rhs.dstAccessMask ) &&
  9552. ( srcQueueFamilyIndex == rhs.srcQueueFamilyIndex ) && ( dstQueueFamilyIndex == rhs.dstQueueFamilyIndex ) && ( buffer == rhs.buffer ) &&
  9553. ( offset == rhs.offset ) && ( size == rhs.size );
  9554. # endif
  9555. }
  9556. bool operator!=( BufferMemoryBarrier const & rhs ) const VULKAN_HPP_NOEXCEPT
  9557. {
  9558. return !operator==( rhs );
  9559. }
  9560. #endif
  9561. public:
  9562. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eBufferMemoryBarrier;
  9563. const void * pNext = {};
  9564. VULKAN_HPP_NAMESPACE::AccessFlags srcAccessMask = {};
  9565. VULKAN_HPP_NAMESPACE::AccessFlags dstAccessMask = {};
  9566. uint32_t srcQueueFamilyIndex = {};
  9567. uint32_t dstQueueFamilyIndex = {};
  9568. VULKAN_HPP_NAMESPACE::Buffer buffer = {};
  9569. VULKAN_HPP_NAMESPACE::DeviceSize offset = {};
  9570. VULKAN_HPP_NAMESPACE::DeviceSize size = {};
  9571. };
  9572. template <>
  9573. struct CppType<StructureType, StructureType::eBufferMemoryBarrier>
  9574. {
  9575. using Type = BufferMemoryBarrier;
  9576. };
  9577. struct BufferMemoryBarrier2
  9578. {
  9579. using NativeType = VkBufferMemoryBarrier2;
  9580. static const bool allowDuplicate = false;
  9581. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eBufferMemoryBarrier2;
  9582. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  9583. VULKAN_HPP_CONSTEXPR BufferMemoryBarrier2( VULKAN_HPP_NAMESPACE::PipelineStageFlags2 srcStageMask_ = {},
  9584. VULKAN_HPP_NAMESPACE::AccessFlags2 srcAccessMask_ = {},
  9585. VULKAN_HPP_NAMESPACE::PipelineStageFlags2 dstStageMask_ = {},
  9586. VULKAN_HPP_NAMESPACE::AccessFlags2 dstAccessMask_ = {},
  9587. uint32_t srcQueueFamilyIndex_ = {},
  9588. uint32_t dstQueueFamilyIndex_ = {},
  9589. VULKAN_HPP_NAMESPACE::Buffer buffer_ = {},
  9590. VULKAN_HPP_NAMESPACE::DeviceSize offset_ = {},
  9591. VULKAN_HPP_NAMESPACE::DeviceSize size_ = {},
  9592. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  9593. : pNext( pNext_ )
  9594. , srcStageMask( srcStageMask_ )
  9595. , srcAccessMask( srcAccessMask_ )
  9596. , dstStageMask( dstStageMask_ )
  9597. , dstAccessMask( dstAccessMask_ )
  9598. , srcQueueFamilyIndex( srcQueueFamilyIndex_ )
  9599. , dstQueueFamilyIndex( dstQueueFamilyIndex_ )
  9600. , buffer( buffer_ )
  9601. , offset( offset_ )
  9602. , size( size_ )
  9603. {
  9604. }
  9605. VULKAN_HPP_CONSTEXPR BufferMemoryBarrier2( BufferMemoryBarrier2 const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  9606. BufferMemoryBarrier2( VkBufferMemoryBarrier2 const & rhs ) VULKAN_HPP_NOEXCEPT
  9607. : BufferMemoryBarrier2( *reinterpret_cast<BufferMemoryBarrier2 const *>( &rhs ) )
  9608. {
  9609. }
  9610. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  9611. BufferMemoryBarrier2 & operator=( BufferMemoryBarrier2 const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  9612. BufferMemoryBarrier2 & operator=( VkBufferMemoryBarrier2 const & rhs ) VULKAN_HPP_NOEXCEPT
  9613. {
  9614. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::BufferMemoryBarrier2 const *>( &rhs );
  9615. return *this;
  9616. }
  9617. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  9618. VULKAN_HPP_CONSTEXPR_14 BufferMemoryBarrier2 & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  9619. {
  9620. pNext = pNext_;
  9621. return *this;
  9622. }
  9623. VULKAN_HPP_CONSTEXPR_14 BufferMemoryBarrier2 & setSrcStageMask( VULKAN_HPP_NAMESPACE::PipelineStageFlags2 srcStageMask_ ) VULKAN_HPP_NOEXCEPT
  9624. {
  9625. srcStageMask = srcStageMask_;
  9626. return *this;
  9627. }
  9628. VULKAN_HPP_CONSTEXPR_14 BufferMemoryBarrier2 & setSrcAccessMask( VULKAN_HPP_NAMESPACE::AccessFlags2 srcAccessMask_ ) VULKAN_HPP_NOEXCEPT
  9629. {
  9630. srcAccessMask = srcAccessMask_;
  9631. return *this;
  9632. }
  9633. VULKAN_HPP_CONSTEXPR_14 BufferMemoryBarrier2 & setDstStageMask( VULKAN_HPP_NAMESPACE::PipelineStageFlags2 dstStageMask_ ) VULKAN_HPP_NOEXCEPT
  9634. {
  9635. dstStageMask = dstStageMask_;
  9636. return *this;
  9637. }
  9638. VULKAN_HPP_CONSTEXPR_14 BufferMemoryBarrier2 & setDstAccessMask( VULKAN_HPP_NAMESPACE::AccessFlags2 dstAccessMask_ ) VULKAN_HPP_NOEXCEPT
  9639. {
  9640. dstAccessMask = dstAccessMask_;
  9641. return *this;
  9642. }
  9643. VULKAN_HPP_CONSTEXPR_14 BufferMemoryBarrier2 & setSrcQueueFamilyIndex( uint32_t srcQueueFamilyIndex_ ) VULKAN_HPP_NOEXCEPT
  9644. {
  9645. srcQueueFamilyIndex = srcQueueFamilyIndex_;
  9646. return *this;
  9647. }
  9648. VULKAN_HPP_CONSTEXPR_14 BufferMemoryBarrier2 & setDstQueueFamilyIndex( uint32_t dstQueueFamilyIndex_ ) VULKAN_HPP_NOEXCEPT
  9649. {
  9650. dstQueueFamilyIndex = dstQueueFamilyIndex_;
  9651. return *this;
  9652. }
  9653. VULKAN_HPP_CONSTEXPR_14 BufferMemoryBarrier2 & setBuffer( VULKAN_HPP_NAMESPACE::Buffer buffer_ ) VULKAN_HPP_NOEXCEPT
  9654. {
  9655. buffer = buffer_;
  9656. return *this;
  9657. }
  9658. VULKAN_HPP_CONSTEXPR_14 BufferMemoryBarrier2 & setOffset( VULKAN_HPP_NAMESPACE::DeviceSize offset_ ) VULKAN_HPP_NOEXCEPT
  9659. {
  9660. offset = offset_;
  9661. return *this;
  9662. }
  9663. VULKAN_HPP_CONSTEXPR_14 BufferMemoryBarrier2 & setSize( VULKAN_HPP_NAMESPACE::DeviceSize size_ ) VULKAN_HPP_NOEXCEPT
  9664. {
  9665. size = size_;
  9666. return *this;
  9667. }
  9668. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  9669. operator VkBufferMemoryBarrier2 const &() const VULKAN_HPP_NOEXCEPT
  9670. {
  9671. return *reinterpret_cast<const VkBufferMemoryBarrier2 *>( this );
  9672. }
  9673. operator VkBufferMemoryBarrier2 &() VULKAN_HPP_NOEXCEPT
  9674. {
  9675. return *reinterpret_cast<VkBufferMemoryBarrier2 *>( this );
  9676. }
  9677. #if defined( VULKAN_HPP_USE_REFLECT )
  9678. # if 14 <= VULKAN_HPP_CPP_VERSION
  9679. auto
  9680. # else
  9681. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  9682. const void * const &,
  9683. VULKAN_HPP_NAMESPACE::PipelineStageFlags2 const &,
  9684. VULKAN_HPP_NAMESPACE::AccessFlags2 const &,
  9685. VULKAN_HPP_NAMESPACE::PipelineStageFlags2 const &,
  9686. VULKAN_HPP_NAMESPACE::AccessFlags2 const &,
  9687. uint32_t const &,
  9688. uint32_t const &,
  9689. VULKAN_HPP_NAMESPACE::Buffer const &,
  9690. VULKAN_HPP_NAMESPACE::DeviceSize const &,
  9691. VULKAN_HPP_NAMESPACE::DeviceSize const &>
  9692. # endif
  9693. reflect() const VULKAN_HPP_NOEXCEPT
  9694. {
  9695. return std::tie( sType, pNext, srcStageMask, srcAccessMask, dstStageMask, dstAccessMask, srcQueueFamilyIndex, dstQueueFamilyIndex, buffer, offset, size );
  9696. }
  9697. #endif
  9698. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  9699. auto operator<=>( BufferMemoryBarrier2 const & ) const = default;
  9700. #else
  9701. bool operator==( BufferMemoryBarrier2 const & rhs ) const VULKAN_HPP_NOEXCEPT
  9702. {
  9703. # if defined( VULKAN_HPP_USE_REFLECT )
  9704. return this->reflect() == rhs.reflect();
  9705. # else
  9706. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( srcStageMask == rhs.srcStageMask ) && ( srcAccessMask == rhs.srcAccessMask ) &&
  9707. ( dstStageMask == rhs.dstStageMask ) && ( dstAccessMask == rhs.dstAccessMask ) && ( srcQueueFamilyIndex == rhs.srcQueueFamilyIndex ) &&
  9708. ( dstQueueFamilyIndex == rhs.dstQueueFamilyIndex ) && ( buffer == rhs.buffer ) && ( offset == rhs.offset ) && ( size == rhs.size );
  9709. # endif
  9710. }
  9711. bool operator!=( BufferMemoryBarrier2 const & rhs ) const VULKAN_HPP_NOEXCEPT
  9712. {
  9713. return !operator==( rhs );
  9714. }
  9715. #endif
  9716. public:
  9717. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eBufferMemoryBarrier2;
  9718. const void * pNext = {};
  9719. VULKAN_HPP_NAMESPACE::PipelineStageFlags2 srcStageMask = {};
  9720. VULKAN_HPP_NAMESPACE::AccessFlags2 srcAccessMask = {};
  9721. VULKAN_HPP_NAMESPACE::PipelineStageFlags2 dstStageMask = {};
  9722. VULKAN_HPP_NAMESPACE::AccessFlags2 dstAccessMask = {};
  9723. uint32_t srcQueueFamilyIndex = {};
  9724. uint32_t dstQueueFamilyIndex = {};
  9725. VULKAN_HPP_NAMESPACE::Buffer buffer = {};
  9726. VULKAN_HPP_NAMESPACE::DeviceSize offset = {};
  9727. VULKAN_HPP_NAMESPACE::DeviceSize size = {};
  9728. };
  9729. template <>
  9730. struct CppType<StructureType, StructureType::eBufferMemoryBarrier2>
  9731. {
  9732. using Type = BufferMemoryBarrier2;
  9733. };
  9734. using BufferMemoryBarrier2KHR = BufferMemoryBarrier2;
  9735. struct BufferMemoryRequirementsInfo2
  9736. {
  9737. using NativeType = VkBufferMemoryRequirementsInfo2;
  9738. static const bool allowDuplicate = false;
  9739. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eBufferMemoryRequirementsInfo2;
  9740. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  9741. VULKAN_HPP_CONSTEXPR BufferMemoryRequirementsInfo2( VULKAN_HPP_NAMESPACE::Buffer buffer_ = {}, const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  9742. : pNext( pNext_ )
  9743. , buffer( buffer_ )
  9744. {
  9745. }
  9746. VULKAN_HPP_CONSTEXPR BufferMemoryRequirementsInfo2( BufferMemoryRequirementsInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  9747. BufferMemoryRequirementsInfo2( VkBufferMemoryRequirementsInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT
  9748. : BufferMemoryRequirementsInfo2( *reinterpret_cast<BufferMemoryRequirementsInfo2 const *>( &rhs ) )
  9749. {
  9750. }
  9751. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  9752. BufferMemoryRequirementsInfo2 & operator=( BufferMemoryRequirementsInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  9753. BufferMemoryRequirementsInfo2 & operator=( VkBufferMemoryRequirementsInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT
  9754. {
  9755. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::BufferMemoryRequirementsInfo2 const *>( &rhs );
  9756. return *this;
  9757. }
  9758. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  9759. VULKAN_HPP_CONSTEXPR_14 BufferMemoryRequirementsInfo2 & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  9760. {
  9761. pNext = pNext_;
  9762. return *this;
  9763. }
  9764. VULKAN_HPP_CONSTEXPR_14 BufferMemoryRequirementsInfo2 & setBuffer( VULKAN_HPP_NAMESPACE::Buffer buffer_ ) VULKAN_HPP_NOEXCEPT
  9765. {
  9766. buffer = buffer_;
  9767. return *this;
  9768. }
  9769. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  9770. operator VkBufferMemoryRequirementsInfo2 const &() const VULKAN_HPP_NOEXCEPT
  9771. {
  9772. return *reinterpret_cast<const VkBufferMemoryRequirementsInfo2 *>( this );
  9773. }
  9774. operator VkBufferMemoryRequirementsInfo2 &() VULKAN_HPP_NOEXCEPT
  9775. {
  9776. return *reinterpret_cast<VkBufferMemoryRequirementsInfo2 *>( this );
  9777. }
  9778. #if defined( VULKAN_HPP_USE_REFLECT )
  9779. # if 14 <= VULKAN_HPP_CPP_VERSION
  9780. auto
  9781. # else
  9782. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::Buffer const &>
  9783. # endif
  9784. reflect() const VULKAN_HPP_NOEXCEPT
  9785. {
  9786. return std::tie( sType, pNext, buffer );
  9787. }
  9788. #endif
  9789. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  9790. auto operator<=>( BufferMemoryRequirementsInfo2 const & ) const = default;
  9791. #else
  9792. bool operator==( BufferMemoryRequirementsInfo2 const & rhs ) const VULKAN_HPP_NOEXCEPT
  9793. {
  9794. # if defined( VULKAN_HPP_USE_REFLECT )
  9795. return this->reflect() == rhs.reflect();
  9796. # else
  9797. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( buffer == rhs.buffer );
  9798. # endif
  9799. }
  9800. bool operator!=( BufferMemoryRequirementsInfo2 const & rhs ) const VULKAN_HPP_NOEXCEPT
  9801. {
  9802. return !operator==( rhs );
  9803. }
  9804. #endif
  9805. public:
  9806. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eBufferMemoryRequirementsInfo2;
  9807. const void * pNext = {};
  9808. VULKAN_HPP_NAMESPACE::Buffer buffer = {};
  9809. };
  9810. template <>
  9811. struct CppType<StructureType, StructureType::eBufferMemoryRequirementsInfo2>
  9812. {
  9813. using Type = BufferMemoryRequirementsInfo2;
  9814. };
  9815. using BufferMemoryRequirementsInfo2KHR = BufferMemoryRequirementsInfo2;
  9816. struct BufferOpaqueCaptureAddressCreateInfo
  9817. {
  9818. using NativeType = VkBufferOpaqueCaptureAddressCreateInfo;
  9819. static const bool allowDuplicate = false;
  9820. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eBufferOpaqueCaptureAddressCreateInfo;
  9821. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  9822. VULKAN_HPP_CONSTEXPR BufferOpaqueCaptureAddressCreateInfo( uint64_t opaqueCaptureAddress_ = {}, const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  9823. : pNext( pNext_ )
  9824. , opaqueCaptureAddress( opaqueCaptureAddress_ )
  9825. {
  9826. }
  9827. VULKAN_HPP_CONSTEXPR BufferOpaqueCaptureAddressCreateInfo( BufferOpaqueCaptureAddressCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  9828. BufferOpaqueCaptureAddressCreateInfo( VkBufferOpaqueCaptureAddressCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
  9829. : BufferOpaqueCaptureAddressCreateInfo( *reinterpret_cast<BufferOpaqueCaptureAddressCreateInfo const *>( &rhs ) )
  9830. {
  9831. }
  9832. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  9833. BufferOpaqueCaptureAddressCreateInfo & operator=( BufferOpaqueCaptureAddressCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  9834. BufferOpaqueCaptureAddressCreateInfo & operator=( VkBufferOpaqueCaptureAddressCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
  9835. {
  9836. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::BufferOpaqueCaptureAddressCreateInfo const *>( &rhs );
  9837. return *this;
  9838. }
  9839. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  9840. VULKAN_HPP_CONSTEXPR_14 BufferOpaqueCaptureAddressCreateInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  9841. {
  9842. pNext = pNext_;
  9843. return *this;
  9844. }
  9845. VULKAN_HPP_CONSTEXPR_14 BufferOpaqueCaptureAddressCreateInfo & setOpaqueCaptureAddress( uint64_t opaqueCaptureAddress_ ) VULKAN_HPP_NOEXCEPT
  9846. {
  9847. opaqueCaptureAddress = opaqueCaptureAddress_;
  9848. return *this;
  9849. }
  9850. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  9851. operator VkBufferOpaqueCaptureAddressCreateInfo const &() const VULKAN_HPP_NOEXCEPT
  9852. {
  9853. return *reinterpret_cast<const VkBufferOpaqueCaptureAddressCreateInfo *>( this );
  9854. }
  9855. operator VkBufferOpaqueCaptureAddressCreateInfo &() VULKAN_HPP_NOEXCEPT
  9856. {
  9857. return *reinterpret_cast<VkBufferOpaqueCaptureAddressCreateInfo *>( this );
  9858. }
  9859. #if defined( VULKAN_HPP_USE_REFLECT )
  9860. # if 14 <= VULKAN_HPP_CPP_VERSION
  9861. auto
  9862. # else
  9863. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, uint64_t const &>
  9864. # endif
  9865. reflect() const VULKAN_HPP_NOEXCEPT
  9866. {
  9867. return std::tie( sType, pNext, opaqueCaptureAddress );
  9868. }
  9869. #endif
  9870. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  9871. auto operator<=>( BufferOpaqueCaptureAddressCreateInfo const & ) const = default;
  9872. #else
  9873. bool operator==( BufferOpaqueCaptureAddressCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  9874. {
  9875. # if defined( VULKAN_HPP_USE_REFLECT )
  9876. return this->reflect() == rhs.reflect();
  9877. # else
  9878. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( opaqueCaptureAddress == rhs.opaqueCaptureAddress );
  9879. # endif
  9880. }
  9881. bool operator!=( BufferOpaqueCaptureAddressCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  9882. {
  9883. return !operator==( rhs );
  9884. }
  9885. #endif
  9886. public:
  9887. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eBufferOpaqueCaptureAddressCreateInfo;
  9888. const void * pNext = {};
  9889. uint64_t opaqueCaptureAddress = {};
  9890. };
  9891. template <>
  9892. struct CppType<StructureType, StructureType::eBufferOpaqueCaptureAddressCreateInfo>
  9893. {
  9894. using Type = BufferOpaqueCaptureAddressCreateInfo;
  9895. };
  9896. using BufferOpaqueCaptureAddressCreateInfoKHR = BufferOpaqueCaptureAddressCreateInfo;
  9897. struct BufferViewCreateInfo
  9898. {
  9899. using NativeType = VkBufferViewCreateInfo;
  9900. static const bool allowDuplicate = false;
  9901. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eBufferViewCreateInfo;
  9902. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  9903. VULKAN_HPP_CONSTEXPR BufferViewCreateInfo( VULKAN_HPP_NAMESPACE::BufferViewCreateFlags flags_ = {},
  9904. VULKAN_HPP_NAMESPACE::Buffer buffer_ = {},
  9905. VULKAN_HPP_NAMESPACE::Format format_ = VULKAN_HPP_NAMESPACE::Format::eUndefined,
  9906. VULKAN_HPP_NAMESPACE::DeviceSize offset_ = {},
  9907. VULKAN_HPP_NAMESPACE::DeviceSize range_ = {},
  9908. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  9909. : pNext( pNext_ )
  9910. , flags( flags_ )
  9911. , buffer( buffer_ )
  9912. , format( format_ )
  9913. , offset( offset_ )
  9914. , range( range_ )
  9915. {
  9916. }
  9917. VULKAN_HPP_CONSTEXPR BufferViewCreateInfo( BufferViewCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  9918. BufferViewCreateInfo( VkBufferViewCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
  9919. : BufferViewCreateInfo( *reinterpret_cast<BufferViewCreateInfo const *>( &rhs ) )
  9920. {
  9921. }
  9922. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  9923. BufferViewCreateInfo & operator=( BufferViewCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  9924. BufferViewCreateInfo & operator=( VkBufferViewCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
  9925. {
  9926. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::BufferViewCreateInfo const *>( &rhs );
  9927. return *this;
  9928. }
  9929. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  9930. VULKAN_HPP_CONSTEXPR_14 BufferViewCreateInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  9931. {
  9932. pNext = pNext_;
  9933. return *this;
  9934. }
  9935. VULKAN_HPP_CONSTEXPR_14 BufferViewCreateInfo & setFlags( VULKAN_HPP_NAMESPACE::BufferViewCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT
  9936. {
  9937. flags = flags_;
  9938. return *this;
  9939. }
  9940. VULKAN_HPP_CONSTEXPR_14 BufferViewCreateInfo & setBuffer( VULKAN_HPP_NAMESPACE::Buffer buffer_ ) VULKAN_HPP_NOEXCEPT
  9941. {
  9942. buffer = buffer_;
  9943. return *this;
  9944. }
  9945. VULKAN_HPP_CONSTEXPR_14 BufferViewCreateInfo & setFormat( VULKAN_HPP_NAMESPACE::Format format_ ) VULKAN_HPP_NOEXCEPT
  9946. {
  9947. format = format_;
  9948. return *this;
  9949. }
  9950. VULKAN_HPP_CONSTEXPR_14 BufferViewCreateInfo & setOffset( VULKAN_HPP_NAMESPACE::DeviceSize offset_ ) VULKAN_HPP_NOEXCEPT
  9951. {
  9952. offset = offset_;
  9953. return *this;
  9954. }
  9955. VULKAN_HPP_CONSTEXPR_14 BufferViewCreateInfo & setRange( VULKAN_HPP_NAMESPACE::DeviceSize range_ ) VULKAN_HPP_NOEXCEPT
  9956. {
  9957. range = range_;
  9958. return *this;
  9959. }
  9960. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  9961. operator VkBufferViewCreateInfo const &() const VULKAN_HPP_NOEXCEPT
  9962. {
  9963. return *reinterpret_cast<const VkBufferViewCreateInfo *>( this );
  9964. }
  9965. operator VkBufferViewCreateInfo &() VULKAN_HPP_NOEXCEPT
  9966. {
  9967. return *reinterpret_cast<VkBufferViewCreateInfo *>( this );
  9968. }
  9969. #if defined( VULKAN_HPP_USE_REFLECT )
  9970. # if 14 <= VULKAN_HPP_CPP_VERSION
  9971. auto
  9972. # else
  9973. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  9974. const void * const &,
  9975. VULKAN_HPP_NAMESPACE::BufferViewCreateFlags const &,
  9976. VULKAN_HPP_NAMESPACE::Buffer const &,
  9977. VULKAN_HPP_NAMESPACE::Format const &,
  9978. VULKAN_HPP_NAMESPACE::DeviceSize const &,
  9979. VULKAN_HPP_NAMESPACE::DeviceSize const &>
  9980. # endif
  9981. reflect() const VULKAN_HPP_NOEXCEPT
  9982. {
  9983. return std::tie( sType, pNext, flags, buffer, format, offset, range );
  9984. }
  9985. #endif
  9986. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  9987. auto operator<=>( BufferViewCreateInfo const & ) const = default;
  9988. #else
  9989. bool operator==( BufferViewCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  9990. {
  9991. # if defined( VULKAN_HPP_USE_REFLECT )
  9992. return this->reflect() == rhs.reflect();
  9993. # else
  9994. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( flags == rhs.flags ) && ( buffer == rhs.buffer ) && ( format == rhs.format ) &&
  9995. ( offset == rhs.offset ) && ( range == rhs.range );
  9996. # endif
  9997. }
  9998. bool operator!=( BufferViewCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  9999. {
  10000. return !operator==( rhs );
  10001. }
  10002. #endif
  10003. public:
  10004. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eBufferViewCreateInfo;
  10005. const void * pNext = {};
  10006. VULKAN_HPP_NAMESPACE::BufferViewCreateFlags flags = {};
  10007. VULKAN_HPP_NAMESPACE::Buffer buffer = {};
  10008. VULKAN_HPP_NAMESPACE::Format format = VULKAN_HPP_NAMESPACE::Format::eUndefined;
  10009. VULKAN_HPP_NAMESPACE::DeviceSize offset = {};
  10010. VULKAN_HPP_NAMESPACE::DeviceSize range = {};
  10011. };
  10012. template <>
  10013. struct CppType<StructureType, StructureType::eBufferViewCreateInfo>
  10014. {
  10015. using Type = BufferViewCreateInfo;
  10016. };
  10017. struct CalibratedTimestampInfoEXT
  10018. {
  10019. using NativeType = VkCalibratedTimestampInfoEXT;
  10020. static const bool allowDuplicate = false;
  10021. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eCalibratedTimestampInfoEXT;
  10022. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  10023. VULKAN_HPP_CONSTEXPR CalibratedTimestampInfoEXT( VULKAN_HPP_NAMESPACE::TimeDomainEXT timeDomain_ = VULKAN_HPP_NAMESPACE::TimeDomainEXT::eDevice,
  10024. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  10025. : pNext( pNext_ )
  10026. , timeDomain( timeDomain_ )
  10027. {
  10028. }
  10029. VULKAN_HPP_CONSTEXPR CalibratedTimestampInfoEXT( CalibratedTimestampInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  10030. CalibratedTimestampInfoEXT( VkCalibratedTimestampInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  10031. : CalibratedTimestampInfoEXT( *reinterpret_cast<CalibratedTimestampInfoEXT const *>( &rhs ) )
  10032. {
  10033. }
  10034. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  10035. CalibratedTimestampInfoEXT & operator=( CalibratedTimestampInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  10036. CalibratedTimestampInfoEXT & operator=( VkCalibratedTimestampInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  10037. {
  10038. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::CalibratedTimestampInfoEXT const *>( &rhs );
  10039. return *this;
  10040. }
  10041. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  10042. VULKAN_HPP_CONSTEXPR_14 CalibratedTimestampInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  10043. {
  10044. pNext = pNext_;
  10045. return *this;
  10046. }
  10047. VULKAN_HPP_CONSTEXPR_14 CalibratedTimestampInfoEXT & setTimeDomain( VULKAN_HPP_NAMESPACE::TimeDomainEXT timeDomain_ ) VULKAN_HPP_NOEXCEPT
  10048. {
  10049. timeDomain = timeDomain_;
  10050. return *this;
  10051. }
  10052. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  10053. operator VkCalibratedTimestampInfoEXT const &() const VULKAN_HPP_NOEXCEPT
  10054. {
  10055. return *reinterpret_cast<const VkCalibratedTimestampInfoEXT *>( this );
  10056. }
  10057. operator VkCalibratedTimestampInfoEXT &() VULKAN_HPP_NOEXCEPT
  10058. {
  10059. return *reinterpret_cast<VkCalibratedTimestampInfoEXT *>( this );
  10060. }
  10061. #if defined( VULKAN_HPP_USE_REFLECT )
  10062. # if 14 <= VULKAN_HPP_CPP_VERSION
  10063. auto
  10064. # else
  10065. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::TimeDomainEXT const &>
  10066. # endif
  10067. reflect() const VULKAN_HPP_NOEXCEPT
  10068. {
  10069. return std::tie( sType, pNext, timeDomain );
  10070. }
  10071. #endif
  10072. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  10073. auto operator<=>( CalibratedTimestampInfoEXT const & ) const = default;
  10074. #else
  10075. bool operator==( CalibratedTimestampInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  10076. {
  10077. # if defined( VULKAN_HPP_USE_REFLECT )
  10078. return this->reflect() == rhs.reflect();
  10079. # else
  10080. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( timeDomain == rhs.timeDomain );
  10081. # endif
  10082. }
  10083. bool operator!=( CalibratedTimestampInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  10084. {
  10085. return !operator==( rhs );
  10086. }
  10087. #endif
  10088. public:
  10089. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eCalibratedTimestampInfoEXT;
  10090. const void * pNext = {};
  10091. VULKAN_HPP_NAMESPACE::TimeDomainEXT timeDomain = VULKAN_HPP_NAMESPACE::TimeDomainEXT::eDevice;
  10092. };
  10093. template <>
  10094. struct CppType<StructureType, StructureType::eCalibratedTimestampInfoEXT>
  10095. {
  10096. using Type = CalibratedTimestampInfoEXT;
  10097. };
  10098. struct CheckpointData2NV
  10099. {
  10100. using NativeType = VkCheckpointData2NV;
  10101. static const bool allowDuplicate = false;
  10102. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eCheckpointData2NV;
  10103. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  10104. VULKAN_HPP_CONSTEXPR
  10105. CheckpointData2NV( VULKAN_HPP_NAMESPACE::PipelineStageFlags2 stage_ = {}, void * pCheckpointMarker_ = {}, void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  10106. : pNext( pNext_ )
  10107. , stage( stage_ )
  10108. , pCheckpointMarker( pCheckpointMarker_ )
  10109. {
  10110. }
  10111. VULKAN_HPP_CONSTEXPR CheckpointData2NV( CheckpointData2NV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  10112. CheckpointData2NV( VkCheckpointData2NV const & rhs ) VULKAN_HPP_NOEXCEPT : CheckpointData2NV( *reinterpret_cast<CheckpointData2NV const *>( &rhs ) ) {}
  10113. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  10114. CheckpointData2NV & operator=( CheckpointData2NV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  10115. CheckpointData2NV & operator=( VkCheckpointData2NV const & rhs ) VULKAN_HPP_NOEXCEPT
  10116. {
  10117. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::CheckpointData2NV const *>( &rhs );
  10118. return *this;
  10119. }
  10120. operator VkCheckpointData2NV const &() const VULKAN_HPP_NOEXCEPT
  10121. {
  10122. return *reinterpret_cast<const VkCheckpointData2NV *>( this );
  10123. }
  10124. operator VkCheckpointData2NV &() VULKAN_HPP_NOEXCEPT
  10125. {
  10126. return *reinterpret_cast<VkCheckpointData2NV *>( this );
  10127. }
  10128. #if defined( VULKAN_HPP_USE_REFLECT )
  10129. # if 14 <= VULKAN_HPP_CPP_VERSION
  10130. auto
  10131. # else
  10132. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::PipelineStageFlags2 const &, void * const &>
  10133. # endif
  10134. reflect() const VULKAN_HPP_NOEXCEPT
  10135. {
  10136. return std::tie( sType, pNext, stage, pCheckpointMarker );
  10137. }
  10138. #endif
  10139. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  10140. auto operator<=>( CheckpointData2NV const & ) const = default;
  10141. #else
  10142. bool operator==( CheckpointData2NV const & rhs ) const VULKAN_HPP_NOEXCEPT
  10143. {
  10144. # if defined( VULKAN_HPP_USE_REFLECT )
  10145. return this->reflect() == rhs.reflect();
  10146. # else
  10147. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( stage == rhs.stage ) && ( pCheckpointMarker == rhs.pCheckpointMarker );
  10148. # endif
  10149. }
  10150. bool operator!=( CheckpointData2NV const & rhs ) const VULKAN_HPP_NOEXCEPT
  10151. {
  10152. return !operator==( rhs );
  10153. }
  10154. #endif
  10155. public:
  10156. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eCheckpointData2NV;
  10157. void * pNext = {};
  10158. VULKAN_HPP_NAMESPACE::PipelineStageFlags2 stage = {};
  10159. void * pCheckpointMarker = {};
  10160. };
  10161. template <>
  10162. struct CppType<StructureType, StructureType::eCheckpointData2NV>
  10163. {
  10164. using Type = CheckpointData2NV;
  10165. };
  10166. struct CheckpointDataNV
  10167. {
  10168. using NativeType = VkCheckpointDataNV;
  10169. static const bool allowDuplicate = false;
  10170. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eCheckpointDataNV;
  10171. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  10172. VULKAN_HPP_CONSTEXPR CheckpointDataNV( VULKAN_HPP_NAMESPACE::PipelineStageFlagBits stage_ = VULKAN_HPP_NAMESPACE::PipelineStageFlagBits::eTopOfPipe,
  10173. void * pCheckpointMarker_ = {},
  10174. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  10175. : pNext( pNext_ )
  10176. , stage( stage_ )
  10177. , pCheckpointMarker( pCheckpointMarker_ )
  10178. {
  10179. }
  10180. VULKAN_HPP_CONSTEXPR CheckpointDataNV( CheckpointDataNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  10181. CheckpointDataNV( VkCheckpointDataNV const & rhs ) VULKAN_HPP_NOEXCEPT : CheckpointDataNV( *reinterpret_cast<CheckpointDataNV const *>( &rhs ) ) {}
  10182. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  10183. CheckpointDataNV & operator=( CheckpointDataNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  10184. CheckpointDataNV & operator=( VkCheckpointDataNV const & rhs ) VULKAN_HPP_NOEXCEPT
  10185. {
  10186. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::CheckpointDataNV const *>( &rhs );
  10187. return *this;
  10188. }
  10189. operator VkCheckpointDataNV const &() const VULKAN_HPP_NOEXCEPT
  10190. {
  10191. return *reinterpret_cast<const VkCheckpointDataNV *>( this );
  10192. }
  10193. operator VkCheckpointDataNV &() VULKAN_HPP_NOEXCEPT
  10194. {
  10195. return *reinterpret_cast<VkCheckpointDataNV *>( this );
  10196. }
  10197. #if defined( VULKAN_HPP_USE_REFLECT )
  10198. # if 14 <= VULKAN_HPP_CPP_VERSION
  10199. auto
  10200. # else
  10201. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::PipelineStageFlagBits const &, void * const &>
  10202. # endif
  10203. reflect() const VULKAN_HPP_NOEXCEPT
  10204. {
  10205. return std::tie( sType, pNext, stage, pCheckpointMarker );
  10206. }
  10207. #endif
  10208. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  10209. auto operator<=>( CheckpointDataNV const & ) const = default;
  10210. #else
  10211. bool operator==( CheckpointDataNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  10212. {
  10213. # if defined( VULKAN_HPP_USE_REFLECT )
  10214. return this->reflect() == rhs.reflect();
  10215. # else
  10216. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( stage == rhs.stage ) && ( pCheckpointMarker == rhs.pCheckpointMarker );
  10217. # endif
  10218. }
  10219. bool operator!=( CheckpointDataNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  10220. {
  10221. return !operator==( rhs );
  10222. }
  10223. #endif
  10224. public:
  10225. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eCheckpointDataNV;
  10226. void * pNext = {};
  10227. VULKAN_HPP_NAMESPACE::PipelineStageFlagBits stage = VULKAN_HPP_NAMESPACE::PipelineStageFlagBits::eTopOfPipe;
  10228. void * pCheckpointMarker = {};
  10229. };
  10230. template <>
  10231. struct CppType<StructureType, StructureType::eCheckpointDataNV>
  10232. {
  10233. using Type = CheckpointDataNV;
  10234. };
  10235. union ClearColorValue
  10236. {
  10237. using NativeType = VkClearColorValue;
  10238. #if !defined( VULKAN_HPP_NO_UNION_CONSTRUCTORS )
  10239. VULKAN_HPP_CONSTEXPR_14 ClearColorValue( const std::array<float, 4> & float32_ = {} ) : float32( float32_ ) {}
  10240. VULKAN_HPP_CONSTEXPR_14 ClearColorValue( const std::array<int32_t, 4> & int32_ ) : int32( int32_ ) {}
  10241. VULKAN_HPP_CONSTEXPR_14 ClearColorValue( const std::array<uint32_t, 4> & uint32_ ) : uint32( uint32_ ) {}
  10242. #endif /*VULKAN_HPP_NO_UNION_CONSTRUCTORS*/
  10243. #if !defined( VULKAN_HPP_NO_UNION_SETTERS )
  10244. VULKAN_HPP_CONSTEXPR_14 ClearColorValue & setFloat32( std::array<float, 4> float32_ ) VULKAN_HPP_NOEXCEPT
  10245. {
  10246. float32 = float32_;
  10247. return *this;
  10248. }
  10249. VULKAN_HPP_CONSTEXPR_14 ClearColorValue & setInt32( std::array<int32_t, 4> int32_ ) VULKAN_HPP_NOEXCEPT
  10250. {
  10251. int32 = int32_;
  10252. return *this;
  10253. }
  10254. VULKAN_HPP_CONSTEXPR_14 ClearColorValue & setUint32( std::array<uint32_t, 4> uint32_ ) VULKAN_HPP_NOEXCEPT
  10255. {
  10256. uint32 = uint32_;
  10257. return *this;
  10258. }
  10259. #endif /*VULKAN_HPP_NO_UNION_SETTERS*/
  10260. operator VkClearColorValue const &() const
  10261. {
  10262. return *reinterpret_cast<const VkClearColorValue *>( this );
  10263. }
  10264. operator VkClearColorValue &()
  10265. {
  10266. return *reinterpret_cast<VkClearColorValue *>( this );
  10267. }
  10268. VULKAN_HPP_NAMESPACE::ArrayWrapper1D<float, 4> float32;
  10269. VULKAN_HPP_NAMESPACE::ArrayWrapper1D<int32_t, 4> int32;
  10270. VULKAN_HPP_NAMESPACE::ArrayWrapper1D<uint32_t, 4> uint32;
  10271. };
  10272. struct ClearDepthStencilValue
  10273. {
  10274. using NativeType = VkClearDepthStencilValue;
  10275. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  10276. VULKAN_HPP_CONSTEXPR ClearDepthStencilValue( float depth_ = {}, uint32_t stencil_ = {} ) VULKAN_HPP_NOEXCEPT
  10277. : depth( depth_ )
  10278. , stencil( stencil_ )
  10279. {
  10280. }
  10281. VULKAN_HPP_CONSTEXPR ClearDepthStencilValue( ClearDepthStencilValue const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  10282. ClearDepthStencilValue( VkClearDepthStencilValue const & rhs ) VULKAN_HPP_NOEXCEPT
  10283. : ClearDepthStencilValue( *reinterpret_cast<ClearDepthStencilValue const *>( &rhs ) )
  10284. {
  10285. }
  10286. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  10287. ClearDepthStencilValue & operator=( ClearDepthStencilValue const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  10288. ClearDepthStencilValue & operator=( VkClearDepthStencilValue const & rhs ) VULKAN_HPP_NOEXCEPT
  10289. {
  10290. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ClearDepthStencilValue const *>( &rhs );
  10291. return *this;
  10292. }
  10293. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  10294. VULKAN_HPP_CONSTEXPR_14 ClearDepthStencilValue & setDepth( float depth_ ) VULKAN_HPP_NOEXCEPT
  10295. {
  10296. depth = depth_;
  10297. return *this;
  10298. }
  10299. VULKAN_HPP_CONSTEXPR_14 ClearDepthStencilValue & setStencil( uint32_t stencil_ ) VULKAN_HPP_NOEXCEPT
  10300. {
  10301. stencil = stencil_;
  10302. return *this;
  10303. }
  10304. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  10305. operator VkClearDepthStencilValue const &() const VULKAN_HPP_NOEXCEPT
  10306. {
  10307. return *reinterpret_cast<const VkClearDepthStencilValue *>( this );
  10308. }
  10309. operator VkClearDepthStencilValue &() VULKAN_HPP_NOEXCEPT
  10310. {
  10311. return *reinterpret_cast<VkClearDepthStencilValue *>( this );
  10312. }
  10313. #if defined( VULKAN_HPP_USE_REFLECT )
  10314. # if 14 <= VULKAN_HPP_CPP_VERSION
  10315. auto
  10316. # else
  10317. std::tuple<float const &, uint32_t const &>
  10318. # endif
  10319. reflect() const VULKAN_HPP_NOEXCEPT
  10320. {
  10321. return std::tie( depth, stencil );
  10322. }
  10323. #endif
  10324. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  10325. auto operator<=>( ClearDepthStencilValue const & ) const = default;
  10326. #else
  10327. bool operator==( ClearDepthStencilValue const & rhs ) const VULKAN_HPP_NOEXCEPT
  10328. {
  10329. # if defined( VULKAN_HPP_USE_REFLECT )
  10330. return this->reflect() == rhs.reflect();
  10331. # else
  10332. return ( depth == rhs.depth ) && ( stencil == rhs.stencil );
  10333. # endif
  10334. }
  10335. bool operator!=( ClearDepthStencilValue const & rhs ) const VULKAN_HPP_NOEXCEPT
  10336. {
  10337. return !operator==( rhs );
  10338. }
  10339. #endif
  10340. public:
  10341. float depth = {};
  10342. uint32_t stencil = {};
  10343. };
  10344. union ClearValue
  10345. {
  10346. using NativeType = VkClearValue;
  10347. #if !defined( VULKAN_HPP_NO_UNION_CONSTRUCTORS )
  10348. VULKAN_HPP_CONSTEXPR_14 ClearValue( VULKAN_HPP_NAMESPACE::ClearColorValue color_ = {} ) : color( color_ ) {}
  10349. VULKAN_HPP_CONSTEXPR_14 ClearValue( VULKAN_HPP_NAMESPACE::ClearDepthStencilValue depthStencil_ ) : depthStencil( depthStencil_ ) {}
  10350. #endif /*VULKAN_HPP_NO_UNION_CONSTRUCTORS*/
  10351. #if !defined( VULKAN_HPP_NO_UNION_SETTERS )
  10352. VULKAN_HPP_CONSTEXPR_14 ClearValue & setColor( VULKAN_HPP_NAMESPACE::ClearColorValue const & color_ ) VULKAN_HPP_NOEXCEPT
  10353. {
  10354. color = color_;
  10355. return *this;
  10356. }
  10357. VULKAN_HPP_CONSTEXPR_14 ClearValue & setDepthStencil( VULKAN_HPP_NAMESPACE::ClearDepthStencilValue const & depthStencil_ ) VULKAN_HPP_NOEXCEPT
  10358. {
  10359. depthStencil = depthStencil_;
  10360. return *this;
  10361. }
  10362. #endif /*VULKAN_HPP_NO_UNION_SETTERS*/
  10363. operator VkClearValue const &() const
  10364. {
  10365. return *reinterpret_cast<const VkClearValue *>( this );
  10366. }
  10367. operator VkClearValue &()
  10368. {
  10369. return *reinterpret_cast<VkClearValue *>( this );
  10370. }
  10371. #ifdef VULKAN_HPP_HAS_UNRESTRICTED_UNIONS
  10372. VULKAN_HPP_NAMESPACE::ClearColorValue color;
  10373. VULKAN_HPP_NAMESPACE::ClearDepthStencilValue depthStencil;
  10374. #else
  10375. VkClearColorValue color;
  10376. VkClearDepthStencilValue depthStencil;
  10377. #endif /*VULKAN_HPP_HAS_UNRESTRICTED_UNIONS*/
  10378. };
  10379. struct ClearAttachment
  10380. {
  10381. using NativeType = VkClearAttachment;
  10382. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  10383. VULKAN_HPP_CONSTEXPR_14 ClearAttachment( VULKAN_HPP_NAMESPACE::ImageAspectFlags aspectMask_ = {},
  10384. uint32_t colorAttachment_ = {},
  10385. VULKAN_HPP_NAMESPACE::ClearValue clearValue_ = {} ) VULKAN_HPP_NOEXCEPT
  10386. : aspectMask( aspectMask_ )
  10387. , colorAttachment( colorAttachment_ )
  10388. , clearValue( clearValue_ )
  10389. {
  10390. }
  10391. VULKAN_HPP_CONSTEXPR_14 ClearAttachment( ClearAttachment const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  10392. ClearAttachment( VkClearAttachment const & rhs ) VULKAN_HPP_NOEXCEPT : ClearAttachment( *reinterpret_cast<ClearAttachment const *>( &rhs ) ) {}
  10393. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  10394. ClearAttachment & operator=( ClearAttachment const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  10395. ClearAttachment & operator=( VkClearAttachment const & rhs ) VULKAN_HPP_NOEXCEPT
  10396. {
  10397. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ClearAttachment const *>( &rhs );
  10398. return *this;
  10399. }
  10400. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  10401. VULKAN_HPP_CONSTEXPR_14 ClearAttachment & setAspectMask( VULKAN_HPP_NAMESPACE::ImageAspectFlags aspectMask_ ) VULKAN_HPP_NOEXCEPT
  10402. {
  10403. aspectMask = aspectMask_;
  10404. return *this;
  10405. }
  10406. VULKAN_HPP_CONSTEXPR_14 ClearAttachment & setColorAttachment( uint32_t colorAttachment_ ) VULKAN_HPP_NOEXCEPT
  10407. {
  10408. colorAttachment = colorAttachment_;
  10409. return *this;
  10410. }
  10411. VULKAN_HPP_CONSTEXPR_14 ClearAttachment & setClearValue( VULKAN_HPP_NAMESPACE::ClearValue const & clearValue_ ) VULKAN_HPP_NOEXCEPT
  10412. {
  10413. clearValue = clearValue_;
  10414. return *this;
  10415. }
  10416. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  10417. operator VkClearAttachment const &() const VULKAN_HPP_NOEXCEPT
  10418. {
  10419. return *reinterpret_cast<const VkClearAttachment *>( this );
  10420. }
  10421. operator VkClearAttachment &() VULKAN_HPP_NOEXCEPT
  10422. {
  10423. return *reinterpret_cast<VkClearAttachment *>( this );
  10424. }
  10425. #if defined( VULKAN_HPP_USE_REFLECT )
  10426. # if 14 <= VULKAN_HPP_CPP_VERSION
  10427. auto
  10428. # else
  10429. std::tuple<VULKAN_HPP_NAMESPACE::ImageAspectFlags const &, uint32_t const &, VULKAN_HPP_NAMESPACE::ClearValue const &>
  10430. # endif
  10431. reflect() const VULKAN_HPP_NOEXCEPT
  10432. {
  10433. return std::tie( aspectMask, colorAttachment, clearValue );
  10434. }
  10435. #endif
  10436. public:
  10437. VULKAN_HPP_NAMESPACE::ImageAspectFlags aspectMask = {};
  10438. uint32_t colorAttachment = {};
  10439. VULKAN_HPP_NAMESPACE::ClearValue clearValue = {};
  10440. };
  10441. struct ClearRect
  10442. {
  10443. using NativeType = VkClearRect;
  10444. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  10445. VULKAN_HPP_CONSTEXPR ClearRect( VULKAN_HPP_NAMESPACE::Rect2D rect_ = {}, uint32_t baseArrayLayer_ = {}, uint32_t layerCount_ = {} ) VULKAN_HPP_NOEXCEPT
  10446. : rect( rect_ )
  10447. , baseArrayLayer( baseArrayLayer_ )
  10448. , layerCount( layerCount_ )
  10449. {
  10450. }
  10451. VULKAN_HPP_CONSTEXPR ClearRect( ClearRect const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  10452. ClearRect( VkClearRect const & rhs ) VULKAN_HPP_NOEXCEPT : ClearRect( *reinterpret_cast<ClearRect const *>( &rhs ) ) {}
  10453. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  10454. ClearRect & operator=( ClearRect const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  10455. ClearRect & operator=( VkClearRect const & rhs ) VULKAN_HPP_NOEXCEPT
  10456. {
  10457. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ClearRect const *>( &rhs );
  10458. return *this;
  10459. }
  10460. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  10461. VULKAN_HPP_CONSTEXPR_14 ClearRect & setRect( VULKAN_HPP_NAMESPACE::Rect2D const & rect_ ) VULKAN_HPP_NOEXCEPT
  10462. {
  10463. rect = rect_;
  10464. return *this;
  10465. }
  10466. VULKAN_HPP_CONSTEXPR_14 ClearRect & setBaseArrayLayer( uint32_t baseArrayLayer_ ) VULKAN_HPP_NOEXCEPT
  10467. {
  10468. baseArrayLayer = baseArrayLayer_;
  10469. return *this;
  10470. }
  10471. VULKAN_HPP_CONSTEXPR_14 ClearRect & setLayerCount( uint32_t layerCount_ ) VULKAN_HPP_NOEXCEPT
  10472. {
  10473. layerCount = layerCount_;
  10474. return *this;
  10475. }
  10476. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  10477. operator VkClearRect const &() const VULKAN_HPP_NOEXCEPT
  10478. {
  10479. return *reinterpret_cast<const VkClearRect *>( this );
  10480. }
  10481. operator VkClearRect &() VULKAN_HPP_NOEXCEPT
  10482. {
  10483. return *reinterpret_cast<VkClearRect *>( this );
  10484. }
  10485. #if defined( VULKAN_HPP_USE_REFLECT )
  10486. # if 14 <= VULKAN_HPP_CPP_VERSION
  10487. auto
  10488. # else
  10489. std::tuple<VULKAN_HPP_NAMESPACE::Rect2D const &, uint32_t const &, uint32_t const &>
  10490. # endif
  10491. reflect() const VULKAN_HPP_NOEXCEPT
  10492. {
  10493. return std::tie( rect, baseArrayLayer, layerCount );
  10494. }
  10495. #endif
  10496. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  10497. auto operator<=>( ClearRect const & ) const = default;
  10498. #else
  10499. bool operator==( ClearRect const & rhs ) const VULKAN_HPP_NOEXCEPT
  10500. {
  10501. # if defined( VULKAN_HPP_USE_REFLECT )
  10502. return this->reflect() == rhs.reflect();
  10503. # else
  10504. return ( rect == rhs.rect ) && ( baseArrayLayer == rhs.baseArrayLayer ) && ( layerCount == rhs.layerCount );
  10505. # endif
  10506. }
  10507. bool operator!=( ClearRect const & rhs ) const VULKAN_HPP_NOEXCEPT
  10508. {
  10509. return !operator==( rhs );
  10510. }
  10511. #endif
  10512. public:
  10513. VULKAN_HPP_NAMESPACE::Rect2D rect = {};
  10514. uint32_t baseArrayLayer = {};
  10515. uint32_t layerCount = {};
  10516. };
  10517. struct CoarseSampleLocationNV
  10518. {
  10519. using NativeType = VkCoarseSampleLocationNV;
  10520. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  10521. VULKAN_HPP_CONSTEXPR CoarseSampleLocationNV( uint32_t pixelX_ = {}, uint32_t pixelY_ = {}, uint32_t sample_ = {} ) VULKAN_HPP_NOEXCEPT
  10522. : pixelX( pixelX_ )
  10523. , pixelY( pixelY_ )
  10524. , sample( sample_ )
  10525. {
  10526. }
  10527. VULKAN_HPP_CONSTEXPR CoarseSampleLocationNV( CoarseSampleLocationNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  10528. CoarseSampleLocationNV( VkCoarseSampleLocationNV const & rhs ) VULKAN_HPP_NOEXCEPT
  10529. : CoarseSampleLocationNV( *reinterpret_cast<CoarseSampleLocationNV const *>( &rhs ) )
  10530. {
  10531. }
  10532. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  10533. CoarseSampleLocationNV & operator=( CoarseSampleLocationNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  10534. CoarseSampleLocationNV & operator=( VkCoarseSampleLocationNV const & rhs ) VULKAN_HPP_NOEXCEPT
  10535. {
  10536. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::CoarseSampleLocationNV const *>( &rhs );
  10537. return *this;
  10538. }
  10539. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  10540. VULKAN_HPP_CONSTEXPR_14 CoarseSampleLocationNV & setPixelX( uint32_t pixelX_ ) VULKAN_HPP_NOEXCEPT
  10541. {
  10542. pixelX = pixelX_;
  10543. return *this;
  10544. }
  10545. VULKAN_HPP_CONSTEXPR_14 CoarseSampleLocationNV & setPixelY( uint32_t pixelY_ ) VULKAN_HPP_NOEXCEPT
  10546. {
  10547. pixelY = pixelY_;
  10548. return *this;
  10549. }
  10550. VULKAN_HPP_CONSTEXPR_14 CoarseSampleLocationNV & setSample( uint32_t sample_ ) VULKAN_HPP_NOEXCEPT
  10551. {
  10552. sample = sample_;
  10553. return *this;
  10554. }
  10555. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  10556. operator VkCoarseSampleLocationNV const &() const VULKAN_HPP_NOEXCEPT
  10557. {
  10558. return *reinterpret_cast<const VkCoarseSampleLocationNV *>( this );
  10559. }
  10560. operator VkCoarseSampleLocationNV &() VULKAN_HPP_NOEXCEPT
  10561. {
  10562. return *reinterpret_cast<VkCoarseSampleLocationNV *>( this );
  10563. }
  10564. #if defined( VULKAN_HPP_USE_REFLECT )
  10565. # if 14 <= VULKAN_HPP_CPP_VERSION
  10566. auto
  10567. # else
  10568. std::tuple<uint32_t const &, uint32_t const &, uint32_t const &>
  10569. # endif
  10570. reflect() const VULKAN_HPP_NOEXCEPT
  10571. {
  10572. return std::tie( pixelX, pixelY, sample );
  10573. }
  10574. #endif
  10575. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  10576. auto operator<=>( CoarseSampleLocationNV const & ) const = default;
  10577. #else
  10578. bool operator==( CoarseSampleLocationNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  10579. {
  10580. # if defined( VULKAN_HPP_USE_REFLECT )
  10581. return this->reflect() == rhs.reflect();
  10582. # else
  10583. return ( pixelX == rhs.pixelX ) && ( pixelY == rhs.pixelY ) && ( sample == rhs.sample );
  10584. # endif
  10585. }
  10586. bool operator!=( CoarseSampleLocationNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  10587. {
  10588. return !operator==( rhs );
  10589. }
  10590. #endif
  10591. public:
  10592. uint32_t pixelX = {};
  10593. uint32_t pixelY = {};
  10594. uint32_t sample = {};
  10595. };
  10596. struct CoarseSampleOrderCustomNV
  10597. {
  10598. using NativeType = VkCoarseSampleOrderCustomNV;
  10599. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  10600. VULKAN_HPP_CONSTEXPR
  10601. CoarseSampleOrderCustomNV( VULKAN_HPP_NAMESPACE::ShadingRatePaletteEntryNV shadingRate_ = VULKAN_HPP_NAMESPACE::ShadingRatePaletteEntryNV::eNoInvocations,
  10602. uint32_t sampleCount_ = {},
  10603. uint32_t sampleLocationCount_ = {},
  10604. const VULKAN_HPP_NAMESPACE::CoarseSampleLocationNV * pSampleLocations_ = {} ) VULKAN_HPP_NOEXCEPT
  10605. : shadingRate( shadingRate_ )
  10606. , sampleCount( sampleCount_ )
  10607. , sampleLocationCount( sampleLocationCount_ )
  10608. , pSampleLocations( pSampleLocations_ )
  10609. {
  10610. }
  10611. VULKAN_HPP_CONSTEXPR CoarseSampleOrderCustomNV( CoarseSampleOrderCustomNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  10612. CoarseSampleOrderCustomNV( VkCoarseSampleOrderCustomNV const & rhs ) VULKAN_HPP_NOEXCEPT
  10613. : CoarseSampleOrderCustomNV( *reinterpret_cast<CoarseSampleOrderCustomNV const *>( &rhs ) )
  10614. {
  10615. }
  10616. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  10617. CoarseSampleOrderCustomNV( VULKAN_HPP_NAMESPACE::ShadingRatePaletteEntryNV shadingRate_,
  10618. uint32_t sampleCount_,
  10619. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::CoarseSampleLocationNV> const & sampleLocations_ )
  10620. : shadingRate( shadingRate_ )
  10621. , sampleCount( sampleCount_ )
  10622. , sampleLocationCount( static_cast<uint32_t>( sampleLocations_.size() ) )
  10623. , pSampleLocations( sampleLocations_.data() )
  10624. {
  10625. }
  10626. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  10627. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  10628. CoarseSampleOrderCustomNV & operator=( CoarseSampleOrderCustomNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  10629. CoarseSampleOrderCustomNV & operator=( VkCoarseSampleOrderCustomNV const & rhs ) VULKAN_HPP_NOEXCEPT
  10630. {
  10631. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::CoarseSampleOrderCustomNV const *>( &rhs );
  10632. return *this;
  10633. }
  10634. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  10635. VULKAN_HPP_CONSTEXPR_14 CoarseSampleOrderCustomNV & setShadingRate( VULKAN_HPP_NAMESPACE::ShadingRatePaletteEntryNV shadingRate_ ) VULKAN_HPP_NOEXCEPT
  10636. {
  10637. shadingRate = shadingRate_;
  10638. return *this;
  10639. }
  10640. VULKAN_HPP_CONSTEXPR_14 CoarseSampleOrderCustomNV & setSampleCount( uint32_t sampleCount_ ) VULKAN_HPP_NOEXCEPT
  10641. {
  10642. sampleCount = sampleCount_;
  10643. return *this;
  10644. }
  10645. VULKAN_HPP_CONSTEXPR_14 CoarseSampleOrderCustomNV & setSampleLocationCount( uint32_t sampleLocationCount_ ) VULKAN_HPP_NOEXCEPT
  10646. {
  10647. sampleLocationCount = sampleLocationCount_;
  10648. return *this;
  10649. }
  10650. VULKAN_HPP_CONSTEXPR_14 CoarseSampleOrderCustomNV &
  10651. setPSampleLocations( const VULKAN_HPP_NAMESPACE::CoarseSampleLocationNV * pSampleLocations_ ) VULKAN_HPP_NOEXCEPT
  10652. {
  10653. pSampleLocations = pSampleLocations_;
  10654. return *this;
  10655. }
  10656. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  10657. CoarseSampleOrderCustomNV & setSampleLocations(
  10658. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::CoarseSampleLocationNV> const & sampleLocations_ ) VULKAN_HPP_NOEXCEPT
  10659. {
  10660. sampleLocationCount = static_cast<uint32_t>( sampleLocations_.size() );
  10661. pSampleLocations = sampleLocations_.data();
  10662. return *this;
  10663. }
  10664. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  10665. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  10666. operator VkCoarseSampleOrderCustomNV const &() const VULKAN_HPP_NOEXCEPT
  10667. {
  10668. return *reinterpret_cast<const VkCoarseSampleOrderCustomNV *>( this );
  10669. }
  10670. operator VkCoarseSampleOrderCustomNV &() VULKAN_HPP_NOEXCEPT
  10671. {
  10672. return *reinterpret_cast<VkCoarseSampleOrderCustomNV *>( this );
  10673. }
  10674. #if defined( VULKAN_HPP_USE_REFLECT )
  10675. # if 14 <= VULKAN_HPP_CPP_VERSION
  10676. auto
  10677. # else
  10678. std::tuple<VULKAN_HPP_NAMESPACE::ShadingRatePaletteEntryNV const &,
  10679. uint32_t const &,
  10680. uint32_t const &,
  10681. const VULKAN_HPP_NAMESPACE::CoarseSampleLocationNV * const &>
  10682. # endif
  10683. reflect() const VULKAN_HPP_NOEXCEPT
  10684. {
  10685. return std::tie( shadingRate, sampleCount, sampleLocationCount, pSampleLocations );
  10686. }
  10687. #endif
  10688. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  10689. auto operator<=>( CoarseSampleOrderCustomNV const & ) const = default;
  10690. #else
  10691. bool operator==( CoarseSampleOrderCustomNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  10692. {
  10693. # if defined( VULKAN_HPP_USE_REFLECT )
  10694. return this->reflect() == rhs.reflect();
  10695. # else
  10696. return ( shadingRate == rhs.shadingRate ) && ( sampleCount == rhs.sampleCount ) && ( sampleLocationCount == rhs.sampleLocationCount ) &&
  10697. ( pSampleLocations == rhs.pSampleLocations );
  10698. # endif
  10699. }
  10700. bool operator!=( CoarseSampleOrderCustomNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  10701. {
  10702. return !operator==( rhs );
  10703. }
  10704. #endif
  10705. public:
  10706. VULKAN_HPP_NAMESPACE::ShadingRatePaletteEntryNV shadingRate = VULKAN_HPP_NAMESPACE::ShadingRatePaletteEntryNV::eNoInvocations;
  10707. uint32_t sampleCount = {};
  10708. uint32_t sampleLocationCount = {};
  10709. const VULKAN_HPP_NAMESPACE::CoarseSampleLocationNV * pSampleLocations = {};
  10710. };
  10711. struct CommandBufferAllocateInfo
  10712. {
  10713. using NativeType = VkCommandBufferAllocateInfo;
  10714. static const bool allowDuplicate = false;
  10715. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eCommandBufferAllocateInfo;
  10716. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  10717. VULKAN_HPP_CONSTEXPR CommandBufferAllocateInfo( VULKAN_HPP_NAMESPACE::CommandPool commandPool_ = {},
  10718. VULKAN_HPP_NAMESPACE::CommandBufferLevel level_ = VULKAN_HPP_NAMESPACE::CommandBufferLevel::ePrimary,
  10719. uint32_t commandBufferCount_ = {},
  10720. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  10721. : pNext( pNext_ )
  10722. , commandPool( commandPool_ )
  10723. , level( level_ )
  10724. , commandBufferCount( commandBufferCount_ )
  10725. {
  10726. }
  10727. VULKAN_HPP_CONSTEXPR CommandBufferAllocateInfo( CommandBufferAllocateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  10728. CommandBufferAllocateInfo( VkCommandBufferAllocateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
  10729. : CommandBufferAllocateInfo( *reinterpret_cast<CommandBufferAllocateInfo const *>( &rhs ) )
  10730. {
  10731. }
  10732. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  10733. CommandBufferAllocateInfo & operator=( CommandBufferAllocateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  10734. CommandBufferAllocateInfo & operator=( VkCommandBufferAllocateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
  10735. {
  10736. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::CommandBufferAllocateInfo const *>( &rhs );
  10737. return *this;
  10738. }
  10739. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  10740. VULKAN_HPP_CONSTEXPR_14 CommandBufferAllocateInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  10741. {
  10742. pNext = pNext_;
  10743. return *this;
  10744. }
  10745. VULKAN_HPP_CONSTEXPR_14 CommandBufferAllocateInfo & setCommandPool( VULKAN_HPP_NAMESPACE::CommandPool commandPool_ ) VULKAN_HPP_NOEXCEPT
  10746. {
  10747. commandPool = commandPool_;
  10748. return *this;
  10749. }
  10750. VULKAN_HPP_CONSTEXPR_14 CommandBufferAllocateInfo & setLevel( VULKAN_HPP_NAMESPACE::CommandBufferLevel level_ ) VULKAN_HPP_NOEXCEPT
  10751. {
  10752. level = level_;
  10753. return *this;
  10754. }
  10755. VULKAN_HPP_CONSTEXPR_14 CommandBufferAllocateInfo & setCommandBufferCount( uint32_t commandBufferCount_ ) VULKAN_HPP_NOEXCEPT
  10756. {
  10757. commandBufferCount = commandBufferCount_;
  10758. return *this;
  10759. }
  10760. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  10761. operator VkCommandBufferAllocateInfo const &() const VULKAN_HPP_NOEXCEPT
  10762. {
  10763. return *reinterpret_cast<const VkCommandBufferAllocateInfo *>( this );
  10764. }
  10765. operator VkCommandBufferAllocateInfo &() VULKAN_HPP_NOEXCEPT
  10766. {
  10767. return *reinterpret_cast<VkCommandBufferAllocateInfo *>( this );
  10768. }
  10769. #if defined( VULKAN_HPP_USE_REFLECT )
  10770. # if 14 <= VULKAN_HPP_CPP_VERSION
  10771. auto
  10772. # else
  10773. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  10774. const void * const &,
  10775. VULKAN_HPP_NAMESPACE::CommandPool const &,
  10776. VULKAN_HPP_NAMESPACE::CommandBufferLevel const &,
  10777. uint32_t const &>
  10778. # endif
  10779. reflect() const VULKAN_HPP_NOEXCEPT
  10780. {
  10781. return std::tie( sType, pNext, commandPool, level, commandBufferCount );
  10782. }
  10783. #endif
  10784. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  10785. auto operator<=>( CommandBufferAllocateInfo const & ) const = default;
  10786. #else
  10787. bool operator==( CommandBufferAllocateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  10788. {
  10789. # if defined( VULKAN_HPP_USE_REFLECT )
  10790. return this->reflect() == rhs.reflect();
  10791. # else
  10792. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( commandPool == rhs.commandPool ) && ( level == rhs.level ) &&
  10793. ( commandBufferCount == rhs.commandBufferCount );
  10794. # endif
  10795. }
  10796. bool operator!=( CommandBufferAllocateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  10797. {
  10798. return !operator==( rhs );
  10799. }
  10800. #endif
  10801. public:
  10802. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eCommandBufferAllocateInfo;
  10803. const void * pNext = {};
  10804. VULKAN_HPP_NAMESPACE::CommandPool commandPool = {};
  10805. VULKAN_HPP_NAMESPACE::CommandBufferLevel level = VULKAN_HPP_NAMESPACE::CommandBufferLevel::ePrimary;
  10806. uint32_t commandBufferCount = {};
  10807. };
  10808. template <>
  10809. struct CppType<StructureType, StructureType::eCommandBufferAllocateInfo>
  10810. {
  10811. using Type = CommandBufferAllocateInfo;
  10812. };
  10813. struct CommandBufferInheritanceInfo
  10814. {
  10815. using NativeType = VkCommandBufferInheritanceInfo;
  10816. static const bool allowDuplicate = false;
  10817. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eCommandBufferInheritanceInfo;
  10818. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  10819. VULKAN_HPP_CONSTEXPR CommandBufferInheritanceInfo( VULKAN_HPP_NAMESPACE::RenderPass renderPass_ = {},
  10820. uint32_t subpass_ = {},
  10821. VULKAN_HPP_NAMESPACE::Framebuffer framebuffer_ = {},
  10822. VULKAN_HPP_NAMESPACE::Bool32 occlusionQueryEnable_ = {},
  10823. VULKAN_HPP_NAMESPACE::QueryControlFlags queryFlags_ = {},
  10824. VULKAN_HPP_NAMESPACE::QueryPipelineStatisticFlags pipelineStatistics_ = {},
  10825. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  10826. : pNext( pNext_ )
  10827. , renderPass( renderPass_ )
  10828. , subpass( subpass_ )
  10829. , framebuffer( framebuffer_ )
  10830. , occlusionQueryEnable( occlusionQueryEnable_ )
  10831. , queryFlags( queryFlags_ )
  10832. , pipelineStatistics( pipelineStatistics_ )
  10833. {
  10834. }
  10835. VULKAN_HPP_CONSTEXPR CommandBufferInheritanceInfo( CommandBufferInheritanceInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  10836. CommandBufferInheritanceInfo( VkCommandBufferInheritanceInfo const & rhs ) VULKAN_HPP_NOEXCEPT
  10837. : CommandBufferInheritanceInfo( *reinterpret_cast<CommandBufferInheritanceInfo const *>( &rhs ) )
  10838. {
  10839. }
  10840. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  10841. CommandBufferInheritanceInfo & operator=( CommandBufferInheritanceInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  10842. CommandBufferInheritanceInfo & operator=( VkCommandBufferInheritanceInfo const & rhs ) VULKAN_HPP_NOEXCEPT
  10843. {
  10844. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::CommandBufferInheritanceInfo const *>( &rhs );
  10845. return *this;
  10846. }
  10847. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  10848. VULKAN_HPP_CONSTEXPR_14 CommandBufferInheritanceInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  10849. {
  10850. pNext = pNext_;
  10851. return *this;
  10852. }
  10853. VULKAN_HPP_CONSTEXPR_14 CommandBufferInheritanceInfo & setRenderPass( VULKAN_HPP_NAMESPACE::RenderPass renderPass_ ) VULKAN_HPP_NOEXCEPT
  10854. {
  10855. renderPass = renderPass_;
  10856. return *this;
  10857. }
  10858. VULKAN_HPP_CONSTEXPR_14 CommandBufferInheritanceInfo & setSubpass( uint32_t subpass_ ) VULKAN_HPP_NOEXCEPT
  10859. {
  10860. subpass = subpass_;
  10861. return *this;
  10862. }
  10863. VULKAN_HPP_CONSTEXPR_14 CommandBufferInheritanceInfo & setFramebuffer( VULKAN_HPP_NAMESPACE::Framebuffer framebuffer_ ) VULKAN_HPP_NOEXCEPT
  10864. {
  10865. framebuffer = framebuffer_;
  10866. return *this;
  10867. }
  10868. VULKAN_HPP_CONSTEXPR_14 CommandBufferInheritanceInfo & setOcclusionQueryEnable( VULKAN_HPP_NAMESPACE::Bool32 occlusionQueryEnable_ ) VULKAN_HPP_NOEXCEPT
  10869. {
  10870. occlusionQueryEnable = occlusionQueryEnable_;
  10871. return *this;
  10872. }
  10873. VULKAN_HPP_CONSTEXPR_14 CommandBufferInheritanceInfo & setQueryFlags( VULKAN_HPP_NAMESPACE::QueryControlFlags queryFlags_ ) VULKAN_HPP_NOEXCEPT
  10874. {
  10875. queryFlags = queryFlags_;
  10876. return *this;
  10877. }
  10878. VULKAN_HPP_CONSTEXPR_14 CommandBufferInheritanceInfo &
  10879. setPipelineStatistics( VULKAN_HPP_NAMESPACE::QueryPipelineStatisticFlags pipelineStatistics_ ) VULKAN_HPP_NOEXCEPT
  10880. {
  10881. pipelineStatistics = pipelineStatistics_;
  10882. return *this;
  10883. }
  10884. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  10885. operator VkCommandBufferInheritanceInfo const &() const VULKAN_HPP_NOEXCEPT
  10886. {
  10887. return *reinterpret_cast<const VkCommandBufferInheritanceInfo *>( this );
  10888. }
  10889. operator VkCommandBufferInheritanceInfo &() VULKAN_HPP_NOEXCEPT
  10890. {
  10891. return *reinterpret_cast<VkCommandBufferInheritanceInfo *>( this );
  10892. }
  10893. #if defined( VULKAN_HPP_USE_REFLECT )
  10894. # if 14 <= VULKAN_HPP_CPP_VERSION
  10895. auto
  10896. # else
  10897. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  10898. const void * const &,
  10899. VULKAN_HPP_NAMESPACE::RenderPass const &,
  10900. uint32_t const &,
  10901. VULKAN_HPP_NAMESPACE::Framebuffer const &,
  10902. VULKAN_HPP_NAMESPACE::Bool32 const &,
  10903. VULKAN_HPP_NAMESPACE::QueryControlFlags const &,
  10904. VULKAN_HPP_NAMESPACE::QueryPipelineStatisticFlags const &>
  10905. # endif
  10906. reflect() const VULKAN_HPP_NOEXCEPT
  10907. {
  10908. return std::tie( sType, pNext, renderPass, subpass, framebuffer, occlusionQueryEnable, queryFlags, pipelineStatistics );
  10909. }
  10910. #endif
  10911. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  10912. auto operator<=>( CommandBufferInheritanceInfo const & ) const = default;
  10913. #else
  10914. bool operator==( CommandBufferInheritanceInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  10915. {
  10916. # if defined( VULKAN_HPP_USE_REFLECT )
  10917. return this->reflect() == rhs.reflect();
  10918. # else
  10919. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( renderPass == rhs.renderPass ) && ( subpass == rhs.subpass ) &&
  10920. ( framebuffer == rhs.framebuffer ) && ( occlusionQueryEnable == rhs.occlusionQueryEnable ) && ( queryFlags == rhs.queryFlags ) &&
  10921. ( pipelineStatistics == rhs.pipelineStatistics );
  10922. # endif
  10923. }
  10924. bool operator!=( CommandBufferInheritanceInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  10925. {
  10926. return !operator==( rhs );
  10927. }
  10928. #endif
  10929. public:
  10930. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eCommandBufferInheritanceInfo;
  10931. const void * pNext = {};
  10932. VULKAN_HPP_NAMESPACE::RenderPass renderPass = {};
  10933. uint32_t subpass = {};
  10934. VULKAN_HPP_NAMESPACE::Framebuffer framebuffer = {};
  10935. VULKAN_HPP_NAMESPACE::Bool32 occlusionQueryEnable = {};
  10936. VULKAN_HPP_NAMESPACE::QueryControlFlags queryFlags = {};
  10937. VULKAN_HPP_NAMESPACE::QueryPipelineStatisticFlags pipelineStatistics = {};
  10938. };
  10939. template <>
  10940. struct CppType<StructureType, StructureType::eCommandBufferInheritanceInfo>
  10941. {
  10942. using Type = CommandBufferInheritanceInfo;
  10943. };
  10944. struct CommandBufferBeginInfo
  10945. {
  10946. using NativeType = VkCommandBufferBeginInfo;
  10947. static const bool allowDuplicate = false;
  10948. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eCommandBufferBeginInfo;
  10949. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  10950. VULKAN_HPP_CONSTEXPR CommandBufferBeginInfo( VULKAN_HPP_NAMESPACE::CommandBufferUsageFlags flags_ = {},
  10951. const VULKAN_HPP_NAMESPACE::CommandBufferInheritanceInfo * pInheritanceInfo_ = {},
  10952. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  10953. : pNext( pNext_ )
  10954. , flags( flags_ )
  10955. , pInheritanceInfo( pInheritanceInfo_ )
  10956. {
  10957. }
  10958. VULKAN_HPP_CONSTEXPR CommandBufferBeginInfo( CommandBufferBeginInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  10959. CommandBufferBeginInfo( VkCommandBufferBeginInfo const & rhs ) VULKAN_HPP_NOEXCEPT
  10960. : CommandBufferBeginInfo( *reinterpret_cast<CommandBufferBeginInfo const *>( &rhs ) )
  10961. {
  10962. }
  10963. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  10964. CommandBufferBeginInfo & operator=( CommandBufferBeginInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  10965. CommandBufferBeginInfo & operator=( VkCommandBufferBeginInfo const & rhs ) VULKAN_HPP_NOEXCEPT
  10966. {
  10967. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::CommandBufferBeginInfo const *>( &rhs );
  10968. return *this;
  10969. }
  10970. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  10971. VULKAN_HPP_CONSTEXPR_14 CommandBufferBeginInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  10972. {
  10973. pNext = pNext_;
  10974. return *this;
  10975. }
  10976. VULKAN_HPP_CONSTEXPR_14 CommandBufferBeginInfo & setFlags( VULKAN_HPP_NAMESPACE::CommandBufferUsageFlags flags_ ) VULKAN_HPP_NOEXCEPT
  10977. {
  10978. flags = flags_;
  10979. return *this;
  10980. }
  10981. VULKAN_HPP_CONSTEXPR_14 CommandBufferBeginInfo &
  10982. setPInheritanceInfo( const VULKAN_HPP_NAMESPACE::CommandBufferInheritanceInfo * pInheritanceInfo_ ) VULKAN_HPP_NOEXCEPT
  10983. {
  10984. pInheritanceInfo = pInheritanceInfo_;
  10985. return *this;
  10986. }
  10987. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  10988. operator VkCommandBufferBeginInfo const &() const VULKAN_HPP_NOEXCEPT
  10989. {
  10990. return *reinterpret_cast<const VkCommandBufferBeginInfo *>( this );
  10991. }
  10992. operator VkCommandBufferBeginInfo &() VULKAN_HPP_NOEXCEPT
  10993. {
  10994. return *reinterpret_cast<VkCommandBufferBeginInfo *>( this );
  10995. }
  10996. #if defined( VULKAN_HPP_USE_REFLECT )
  10997. # if 14 <= VULKAN_HPP_CPP_VERSION
  10998. auto
  10999. # else
  11000. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  11001. const void * const &,
  11002. VULKAN_HPP_NAMESPACE::CommandBufferUsageFlags const &,
  11003. const VULKAN_HPP_NAMESPACE::CommandBufferInheritanceInfo * const &>
  11004. # endif
  11005. reflect() const VULKAN_HPP_NOEXCEPT
  11006. {
  11007. return std::tie( sType, pNext, flags, pInheritanceInfo );
  11008. }
  11009. #endif
  11010. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  11011. auto operator<=>( CommandBufferBeginInfo const & ) const = default;
  11012. #else
  11013. bool operator==( CommandBufferBeginInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  11014. {
  11015. # if defined( VULKAN_HPP_USE_REFLECT )
  11016. return this->reflect() == rhs.reflect();
  11017. # else
  11018. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( flags == rhs.flags ) && ( pInheritanceInfo == rhs.pInheritanceInfo );
  11019. # endif
  11020. }
  11021. bool operator!=( CommandBufferBeginInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  11022. {
  11023. return !operator==( rhs );
  11024. }
  11025. #endif
  11026. public:
  11027. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eCommandBufferBeginInfo;
  11028. const void * pNext = {};
  11029. VULKAN_HPP_NAMESPACE::CommandBufferUsageFlags flags = {};
  11030. const VULKAN_HPP_NAMESPACE::CommandBufferInheritanceInfo * pInheritanceInfo = {};
  11031. };
  11032. template <>
  11033. struct CppType<StructureType, StructureType::eCommandBufferBeginInfo>
  11034. {
  11035. using Type = CommandBufferBeginInfo;
  11036. };
  11037. struct CommandBufferInheritanceConditionalRenderingInfoEXT
  11038. {
  11039. using NativeType = VkCommandBufferInheritanceConditionalRenderingInfoEXT;
  11040. static const bool allowDuplicate = false;
  11041. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eCommandBufferInheritanceConditionalRenderingInfoEXT;
  11042. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  11043. VULKAN_HPP_CONSTEXPR CommandBufferInheritanceConditionalRenderingInfoEXT( VULKAN_HPP_NAMESPACE::Bool32 conditionalRenderingEnable_ = {},
  11044. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  11045. : pNext( pNext_ )
  11046. , conditionalRenderingEnable( conditionalRenderingEnable_ )
  11047. {
  11048. }
  11049. VULKAN_HPP_CONSTEXPR
  11050. CommandBufferInheritanceConditionalRenderingInfoEXT( CommandBufferInheritanceConditionalRenderingInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  11051. CommandBufferInheritanceConditionalRenderingInfoEXT( VkCommandBufferInheritanceConditionalRenderingInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  11052. : CommandBufferInheritanceConditionalRenderingInfoEXT( *reinterpret_cast<CommandBufferInheritanceConditionalRenderingInfoEXT const *>( &rhs ) )
  11053. {
  11054. }
  11055. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  11056. CommandBufferInheritanceConditionalRenderingInfoEXT &
  11057. operator=( CommandBufferInheritanceConditionalRenderingInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  11058. CommandBufferInheritanceConditionalRenderingInfoEXT & operator=( VkCommandBufferInheritanceConditionalRenderingInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  11059. {
  11060. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::CommandBufferInheritanceConditionalRenderingInfoEXT const *>( &rhs );
  11061. return *this;
  11062. }
  11063. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  11064. VULKAN_HPP_CONSTEXPR_14 CommandBufferInheritanceConditionalRenderingInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  11065. {
  11066. pNext = pNext_;
  11067. return *this;
  11068. }
  11069. VULKAN_HPP_CONSTEXPR_14 CommandBufferInheritanceConditionalRenderingInfoEXT &
  11070. setConditionalRenderingEnable( VULKAN_HPP_NAMESPACE::Bool32 conditionalRenderingEnable_ ) VULKAN_HPP_NOEXCEPT
  11071. {
  11072. conditionalRenderingEnable = conditionalRenderingEnable_;
  11073. return *this;
  11074. }
  11075. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  11076. operator VkCommandBufferInheritanceConditionalRenderingInfoEXT const &() const VULKAN_HPP_NOEXCEPT
  11077. {
  11078. return *reinterpret_cast<const VkCommandBufferInheritanceConditionalRenderingInfoEXT *>( this );
  11079. }
  11080. operator VkCommandBufferInheritanceConditionalRenderingInfoEXT &() VULKAN_HPP_NOEXCEPT
  11081. {
  11082. return *reinterpret_cast<VkCommandBufferInheritanceConditionalRenderingInfoEXT *>( this );
  11083. }
  11084. #if defined( VULKAN_HPP_USE_REFLECT )
  11085. # if 14 <= VULKAN_HPP_CPP_VERSION
  11086. auto
  11087. # else
  11088. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
  11089. # endif
  11090. reflect() const VULKAN_HPP_NOEXCEPT
  11091. {
  11092. return std::tie( sType, pNext, conditionalRenderingEnable );
  11093. }
  11094. #endif
  11095. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  11096. auto operator<=>( CommandBufferInheritanceConditionalRenderingInfoEXT const & ) const = default;
  11097. #else
  11098. bool operator==( CommandBufferInheritanceConditionalRenderingInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  11099. {
  11100. # if defined( VULKAN_HPP_USE_REFLECT )
  11101. return this->reflect() == rhs.reflect();
  11102. # else
  11103. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( conditionalRenderingEnable == rhs.conditionalRenderingEnable );
  11104. # endif
  11105. }
  11106. bool operator!=( CommandBufferInheritanceConditionalRenderingInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  11107. {
  11108. return !operator==( rhs );
  11109. }
  11110. #endif
  11111. public:
  11112. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eCommandBufferInheritanceConditionalRenderingInfoEXT;
  11113. const void * pNext = {};
  11114. VULKAN_HPP_NAMESPACE::Bool32 conditionalRenderingEnable = {};
  11115. };
  11116. template <>
  11117. struct CppType<StructureType, StructureType::eCommandBufferInheritanceConditionalRenderingInfoEXT>
  11118. {
  11119. using Type = CommandBufferInheritanceConditionalRenderingInfoEXT;
  11120. };
  11121. struct CommandBufferInheritanceRenderPassTransformInfoQCOM
  11122. {
  11123. using NativeType = VkCommandBufferInheritanceRenderPassTransformInfoQCOM;
  11124. static const bool allowDuplicate = false;
  11125. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eCommandBufferInheritanceRenderPassTransformInfoQCOM;
  11126. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  11127. VULKAN_HPP_CONSTEXPR CommandBufferInheritanceRenderPassTransformInfoQCOM(
  11128. VULKAN_HPP_NAMESPACE::SurfaceTransformFlagBitsKHR transform_ = VULKAN_HPP_NAMESPACE::SurfaceTransformFlagBitsKHR::eIdentity,
  11129. VULKAN_HPP_NAMESPACE::Rect2D renderArea_ = {},
  11130. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  11131. : pNext( pNext_ )
  11132. , transform( transform_ )
  11133. , renderArea( renderArea_ )
  11134. {
  11135. }
  11136. VULKAN_HPP_CONSTEXPR
  11137. CommandBufferInheritanceRenderPassTransformInfoQCOM( CommandBufferInheritanceRenderPassTransformInfoQCOM const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  11138. CommandBufferInheritanceRenderPassTransformInfoQCOM( VkCommandBufferInheritanceRenderPassTransformInfoQCOM const & rhs ) VULKAN_HPP_NOEXCEPT
  11139. : CommandBufferInheritanceRenderPassTransformInfoQCOM( *reinterpret_cast<CommandBufferInheritanceRenderPassTransformInfoQCOM const *>( &rhs ) )
  11140. {
  11141. }
  11142. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  11143. CommandBufferInheritanceRenderPassTransformInfoQCOM &
  11144. operator=( CommandBufferInheritanceRenderPassTransformInfoQCOM const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  11145. CommandBufferInheritanceRenderPassTransformInfoQCOM & operator=( VkCommandBufferInheritanceRenderPassTransformInfoQCOM const & rhs ) VULKAN_HPP_NOEXCEPT
  11146. {
  11147. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::CommandBufferInheritanceRenderPassTransformInfoQCOM const *>( &rhs );
  11148. return *this;
  11149. }
  11150. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  11151. VULKAN_HPP_CONSTEXPR_14 CommandBufferInheritanceRenderPassTransformInfoQCOM & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
  11152. {
  11153. pNext = pNext_;
  11154. return *this;
  11155. }
  11156. VULKAN_HPP_CONSTEXPR_14 CommandBufferInheritanceRenderPassTransformInfoQCOM &
  11157. setTransform( VULKAN_HPP_NAMESPACE::SurfaceTransformFlagBitsKHR transform_ ) VULKAN_HPP_NOEXCEPT
  11158. {
  11159. transform = transform_;
  11160. return *this;
  11161. }
  11162. VULKAN_HPP_CONSTEXPR_14 CommandBufferInheritanceRenderPassTransformInfoQCOM &
  11163. setRenderArea( VULKAN_HPP_NAMESPACE::Rect2D const & renderArea_ ) VULKAN_HPP_NOEXCEPT
  11164. {
  11165. renderArea = renderArea_;
  11166. return *this;
  11167. }
  11168. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  11169. operator VkCommandBufferInheritanceRenderPassTransformInfoQCOM const &() const VULKAN_HPP_NOEXCEPT
  11170. {
  11171. return *reinterpret_cast<const VkCommandBufferInheritanceRenderPassTransformInfoQCOM *>( this );
  11172. }
  11173. operator VkCommandBufferInheritanceRenderPassTransformInfoQCOM &() VULKAN_HPP_NOEXCEPT
  11174. {
  11175. return *reinterpret_cast<VkCommandBufferInheritanceRenderPassTransformInfoQCOM *>( this );
  11176. }
  11177. #if defined( VULKAN_HPP_USE_REFLECT )
  11178. # if 14 <= VULKAN_HPP_CPP_VERSION
  11179. auto
  11180. # else
  11181. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  11182. void * const &,
  11183. VULKAN_HPP_NAMESPACE::SurfaceTransformFlagBitsKHR const &,
  11184. VULKAN_HPP_NAMESPACE::Rect2D const &>
  11185. # endif
  11186. reflect() const VULKAN_HPP_NOEXCEPT
  11187. {
  11188. return std::tie( sType, pNext, transform, renderArea );
  11189. }
  11190. #endif
  11191. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  11192. auto operator<=>( CommandBufferInheritanceRenderPassTransformInfoQCOM const & ) const = default;
  11193. #else
  11194. bool operator==( CommandBufferInheritanceRenderPassTransformInfoQCOM const & rhs ) const VULKAN_HPP_NOEXCEPT
  11195. {
  11196. # if defined( VULKAN_HPP_USE_REFLECT )
  11197. return this->reflect() == rhs.reflect();
  11198. # else
  11199. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( transform == rhs.transform ) && ( renderArea == rhs.renderArea );
  11200. # endif
  11201. }
  11202. bool operator!=( CommandBufferInheritanceRenderPassTransformInfoQCOM const & rhs ) const VULKAN_HPP_NOEXCEPT
  11203. {
  11204. return !operator==( rhs );
  11205. }
  11206. #endif
  11207. public:
  11208. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eCommandBufferInheritanceRenderPassTransformInfoQCOM;
  11209. void * pNext = {};
  11210. VULKAN_HPP_NAMESPACE::SurfaceTransformFlagBitsKHR transform = VULKAN_HPP_NAMESPACE::SurfaceTransformFlagBitsKHR::eIdentity;
  11211. VULKAN_HPP_NAMESPACE::Rect2D renderArea = {};
  11212. };
  11213. template <>
  11214. struct CppType<StructureType, StructureType::eCommandBufferInheritanceRenderPassTransformInfoQCOM>
  11215. {
  11216. using Type = CommandBufferInheritanceRenderPassTransformInfoQCOM;
  11217. };
  11218. struct CommandBufferInheritanceRenderingInfo
  11219. {
  11220. using NativeType = VkCommandBufferInheritanceRenderingInfo;
  11221. static const bool allowDuplicate = false;
  11222. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eCommandBufferInheritanceRenderingInfo;
  11223. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  11224. VULKAN_HPP_CONSTEXPR
  11225. CommandBufferInheritanceRenderingInfo( VULKAN_HPP_NAMESPACE::RenderingFlags flags_ = {},
  11226. uint32_t viewMask_ = {},
  11227. uint32_t colorAttachmentCount_ = {},
  11228. const VULKAN_HPP_NAMESPACE::Format * pColorAttachmentFormats_ = {},
  11229. VULKAN_HPP_NAMESPACE::Format depthAttachmentFormat_ = VULKAN_HPP_NAMESPACE::Format::eUndefined,
  11230. VULKAN_HPP_NAMESPACE::Format stencilAttachmentFormat_ = VULKAN_HPP_NAMESPACE::Format::eUndefined,
  11231. VULKAN_HPP_NAMESPACE::SampleCountFlagBits rasterizationSamples_ = VULKAN_HPP_NAMESPACE::SampleCountFlagBits::e1,
  11232. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  11233. : pNext( pNext_ )
  11234. , flags( flags_ )
  11235. , viewMask( viewMask_ )
  11236. , colorAttachmentCount( colorAttachmentCount_ )
  11237. , pColorAttachmentFormats( pColorAttachmentFormats_ )
  11238. , depthAttachmentFormat( depthAttachmentFormat_ )
  11239. , stencilAttachmentFormat( stencilAttachmentFormat_ )
  11240. , rasterizationSamples( rasterizationSamples_ )
  11241. {
  11242. }
  11243. VULKAN_HPP_CONSTEXPR CommandBufferInheritanceRenderingInfo( CommandBufferInheritanceRenderingInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  11244. CommandBufferInheritanceRenderingInfo( VkCommandBufferInheritanceRenderingInfo const & rhs ) VULKAN_HPP_NOEXCEPT
  11245. : CommandBufferInheritanceRenderingInfo( *reinterpret_cast<CommandBufferInheritanceRenderingInfo const *>( &rhs ) )
  11246. {
  11247. }
  11248. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  11249. CommandBufferInheritanceRenderingInfo( VULKAN_HPP_NAMESPACE::RenderingFlags flags_,
  11250. uint32_t viewMask_,
  11251. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::Format> const & colorAttachmentFormats_,
  11252. VULKAN_HPP_NAMESPACE::Format depthAttachmentFormat_ = VULKAN_HPP_NAMESPACE::Format::eUndefined,
  11253. VULKAN_HPP_NAMESPACE::Format stencilAttachmentFormat_ = VULKAN_HPP_NAMESPACE::Format::eUndefined,
  11254. VULKAN_HPP_NAMESPACE::SampleCountFlagBits rasterizationSamples_ = VULKAN_HPP_NAMESPACE::SampleCountFlagBits::e1,
  11255. const void * pNext_ = nullptr )
  11256. : pNext( pNext_ )
  11257. , flags( flags_ )
  11258. , viewMask( viewMask_ )
  11259. , colorAttachmentCount( static_cast<uint32_t>( colorAttachmentFormats_.size() ) )
  11260. , pColorAttachmentFormats( colorAttachmentFormats_.data() )
  11261. , depthAttachmentFormat( depthAttachmentFormat_ )
  11262. , stencilAttachmentFormat( stencilAttachmentFormat_ )
  11263. , rasterizationSamples( rasterizationSamples_ )
  11264. {
  11265. }
  11266. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  11267. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  11268. CommandBufferInheritanceRenderingInfo & operator=( CommandBufferInheritanceRenderingInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  11269. CommandBufferInheritanceRenderingInfo & operator=( VkCommandBufferInheritanceRenderingInfo const & rhs ) VULKAN_HPP_NOEXCEPT
  11270. {
  11271. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::CommandBufferInheritanceRenderingInfo const *>( &rhs );
  11272. return *this;
  11273. }
  11274. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  11275. VULKAN_HPP_CONSTEXPR_14 CommandBufferInheritanceRenderingInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  11276. {
  11277. pNext = pNext_;
  11278. return *this;
  11279. }
  11280. VULKAN_HPP_CONSTEXPR_14 CommandBufferInheritanceRenderingInfo & setFlags( VULKAN_HPP_NAMESPACE::RenderingFlags flags_ ) VULKAN_HPP_NOEXCEPT
  11281. {
  11282. flags = flags_;
  11283. return *this;
  11284. }
  11285. VULKAN_HPP_CONSTEXPR_14 CommandBufferInheritanceRenderingInfo & setViewMask( uint32_t viewMask_ ) VULKAN_HPP_NOEXCEPT
  11286. {
  11287. viewMask = viewMask_;
  11288. return *this;
  11289. }
  11290. VULKAN_HPP_CONSTEXPR_14 CommandBufferInheritanceRenderingInfo & setColorAttachmentCount( uint32_t colorAttachmentCount_ ) VULKAN_HPP_NOEXCEPT
  11291. {
  11292. colorAttachmentCount = colorAttachmentCount_;
  11293. return *this;
  11294. }
  11295. VULKAN_HPP_CONSTEXPR_14 CommandBufferInheritanceRenderingInfo &
  11296. setPColorAttachmentFormats( const VULKAN_HPP_NAMESPACE::Format * pColorAttachmentFormats_ ) VULKAN_HPP_NOEXCEPT
  11297. {
  11298. pColorAttachmentFormats = pColorAttachmentFormats_;
  11299. return *this;
  11300. }
  11301. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  11302. CommandBufferInheritanceRenderingInfo & setColorAttachmentFormats(
  11303. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::Format> const & colorAttachmentFormats_ ) VULKAN_HPP_NOEXCEPT
  11304. {
  11305. colorAttachmentCount = static_cast<uint32_t>( colorAttachmentFormats_.size() );
  11306. pColorAttachmentFormats = colorAttachmentFormats_.data();
  11307. return *this;
  11308. }
  11309. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  11310. VULKAN_HPP_CONSTEXPR_14 CommandBufferInheritanceRenderingInfo &
  11311. setDepthAttachmentFormat( VULKAN_HPP_NAMESPACE::Format depthAttachmentFormat_ ) VULKAN_HPP_NOEXCEPT
  11312. {
  11313. depthAttachmentFormat = depthAttachmentFormat_;
  11314. return *this;
  11315. }
  11316. VULKAN_HPP_CONSTEXPR_14 CommandBufferInheritanceRenderingInfo &
  11317. setStencilAttachmentFormat( VULKAN_HPP_NAMESPACE::Format stencilAttachmentFormat_ ) VULKAN_HPP_NOEXCEPT
  11318. {
  11319. stencilAttachmentFormat = stencilAttachmentFormat_;
  11320. return *this;
  11321. }
  11322. VULKAN_HPP_CONSTEXPR_14 CommandBufferInheritanceRenderingInfo &
  11323. setRasterizationSamples( VULKAN_HPP_NAMESPACE::SampleCountFlagBits rasterizationSamples_ ) VULKAN_HPP_NOEXCEPT
  11324. {
  11325. rasterizationSamples = rasterizationSamples_;
  11326. return *this;
  11327. }
  11328. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  11329. operator VkCommandBufferInheritanceRenderingInfo const &() const VULKAN_HPP_NOEXCEPT
  11330. {
  11331. return *reinterpret_cast<const VkCommandBufferInheritanceRenderingInfo *>( this );
  11332. }
  11333. operator VkCommandBufferInheritanceRenderingInfo &() VULKAN_HPP_NOEXCEPT
  11334. {
  11335. return *reinterpret_cast<VkCommandBufferInheritanceRenderingInfo *>( this );
  11336. }
  11337. #if defined( VULKAN_HPP_USE_REFLECT )
  11338. # if 14 <= VULKAN_HPP_CPP_VERSION
  11339. auto
  11340. # else
  11341. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  11342. const void * const &,
  11343. VULKAN_HPP_NAMESPACE::RenderingFlags const &,
  11344. uint32_t const &,
  11345. uint32_t const &,
  11346. const VULKAN_HPP_NAMESPACE::Format * const &,
  11347. VULKAN_HPP_NAMESPACE::Format const &,
  11348. VULKAN_HPP_NAMESPACE::Format const &,
  11349. VULKAN_HPP_NAMESPACE::SampleCountFlagBits const &>
  11350. # endif
  11351. reflect() const VULKAN_HPP_NOEXCEPT
  11352. {
  11353. return std::tie(
  11354. sType, pNext, flags, viewMask, colorAttachmentCount, pColorAttachmentFormats, depthAttachmentFormat, stencilAttachmentFormat, rasterizationSamples );
  11355. }
  11356. #endif
  11357. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  11358. auto operator<=>( CommandBufferInheritanceRenderingInfo const & ) const = default;
  11359. #else
  11360. bool operator==( CommandBufferInheritanceRenderingInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  11361. {
  11362. # if defined( VULKAN_HPP_USE_REFLECT )
  11363. return this->reflect() == rhs.reflect();
  11364. # else
  11365. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( flags == rhs.flags ) && ( viewMask == rhs.viewMask ) &&
  11366. ( colorAttachmentCount == rhs.colorAttachmentCount ) && ( pColorAttachmentFormats == rhs.pColorAttachmentFormats ) &&
  11367. ( depthAttachmentFormat == rhs.depthAttachmentFormat ) && ( stencilAttachmentFormat == rhs.stencilAttachmentFormat ) &&
  11368. ( rasterizationSamples == rhs.rasterizationSamples );
  11369. # endif
  11370. }
  11371. bool operator!=( CommandBufferInheritanceRenderingInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  11372. {
  11373. return !operator==( rhs );
  11374. }
  11375. #endif
  11376. public:
  11377. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eCommandBufferInheritanceRenderingInfo;
  11378. const void * pNext = {};
  11379. VULKAN_HPP_NAMESPACE::RenderingFlags flags = {};
  11380. uint32_t viewMask = {};
  11381. uint32_t colorAttachmentCount = {};
  11382. const VULKAN_HPP_NAMESPACE::Format * pColorAttachmentFormats = {};
  11383. VULKAN_HPP_NAMESPACE::Format depthAttachmentFormat = VULKAN_HPP_NAMESPACE::Format::eUndefined;
  11384. VULKAN_HPP_NAMESPACE::Format stencilAttachmentFormat = VULKAN_HPP_NAMESPACE::Format::eUndefined;
  11385. VULKAN_HPP_NAMESPACE::SampleCountFlagBits rasterizationSamples = VULKAN_HPP_NAMESPACE::SampleCountFlagBits::e1;
  11386. };
  11387. template <>
  11388. struct CppType<StructureType, StructureType::eCommandBufferInheritanceRenderingInfo>
  11389. {
  11390. using Type = CommandBufferInheritanceRenderingInfo;
  11391. };
  11392. using CommandBufferInheritanceRenderingInfoKHR = CommandBufferInheritanceRenderingInfo;
  11393. struct Viewport
  11394. {
  11395. using NativeType = VkViewport;
  11396. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  11397. VULKAN_HPP_CONSTEXPR
  11398. Viewport( float x_ = {}, float y_ = {}, float width_ = {}, float height_ = {}, float minDepth_ = {}, float maxDepth_ = {} ) VULKAN_HPP_NOEXCEPT
  11399. : x( x_ )
  11400. , y( y_ )
  11401. , width( width_ )
  11402. , height( height_ )
  11403. , minDepth( minDepth_ )
  11404. , maxDepth( maxDepth_ )
  11405. {
  11406. }
  11407. VULKAN_HPP_CONSTEXPR Viewport( Viewport const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  11408. Viewport( VkViewport const & rhs ) VULKAN_HPP_NOEXCEPT : Viewport( *reinterpret_cast<Viewport const *>( &rhs ) ) {}
  11409. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  11410. Viewport & operator=( Viewport const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  11411. Viewport & operator=( VkViewport const & rhs ) VULKAN_HPP_NOEXCEPT
  11412. {
  11413. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::Viewport const *>( &rhs );
  11414. return *this;
  11415. }
  11416. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  11417. VULKAN_HPP_CONSTEXPR_14 Viewport & setX( float x_ ) VULKAN_HPP_NOEXCEPT
  11418. {
  11419. x = x_;
  11420. return *this;
  11421. }
  11422. VULKAN_HPP_CONSTEXPR_14 Viewport & setY( float y_ ) VULKAN_HPP_NOEXCEPT
  11423. {
  11424. y = y_;
  11425. return *this;
  11426. }
  11427. VULKAN_HPP_CONSTEXPR_14 Viewport & setWidth( float width_ ) VULKAN_HPP_NOEXCEPT
  11428. {
  11429. width = width_;
  11430. return *this;
  11431. }
  11432. VULKAN_HPP_CONSTEXPR_14 Viewport & setHeight( float height_ ) VULKAN_HPP_NOEXCEPT
  11433. {
  11434. height = height_;
  11435. return *this;
  11436. }
  11437. VULKAN_HPP_CONSTEXPR_14 Viewport & setMinDepth( float minDepth_ ) VULKAN_HPP_NOEXCEPT
  11438. {
  11439. minDepth = minDepth_;
  11440. return *this;
  11441. }
  11442. VULKAN_HPP_CONSTEXPR_14 Viewport & setMaxDepth( float maxDepth_ ) VULKAN_HPP_NOEXCEPT
  11443. {
  11444. maxDepth = maxDepth_;
  11445. return *this;
  11446. }
  11447. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  11448. operator VkViewport const &() const VULKAN_HPP_NOEXCEPT
  11449. {
  11450. return *reinterpret_cast<const VkViewport *>( this );
  11451. }
  11452. operator VkViewport &() VULKAN_HPP_NOEXCEPT
  11453. {
  11454. return *reinterpret_cast<VkViewport *>( this );
  11455. }
  11456. #if defined( VULKAN_HPP_USE_REFLECT )
  11457. # if 14 <= VULKAN_HPP_CPP_VERSION
  11458. auto
  11459. # else
  11460. std::tuple<float const &, float const &, float const &, float const &, float const &, float const &>
  11461. # endif
  11462. reflect() const VULKAN_HPP_NOEXCEPT
  11463. {
  11464. return std::tie( x, y, width, height, minDepth, maxDepth );
  11465. }
  11466. #endif
  11467. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  11468. auto operator<=>( Viewport const & ) const = default;
  11469. #else
  11470. bool operator==( Viewport const & rhs ) const VULKAN_HPP_NOEXCEPT
  11471. {
  11472. # if defined( VULKAN_HPP_USE_REFLECT )
  11473. return this->reflect() == rhs.reflect();
  11474. # else
  11475. return ( x == rhs.x ) && ( y == rhs.y ) && ( width == rhs.width ) && ( height == rhs.height ) && ( minDepth == rhs.minDepth ) &&
  11476. ( maxDepth == rhs.maxDepth );
  11477. # endif
  11478. }
  11479. bool operator!=( Viewport const & rhs ) const VULKAN_HPP_NOEXCEPT
  11480. {
  11481. return !operator==( rhs );
  11482. }
  11483. #endif
  11484. public:
  11485. float x = {};
  11486. float y = {};
  11487. float width = {};
  11488. float height = {};
  11489. float minDepth = {};
  11490. float maxDepth = {};
  11491. };
  11492. struct CommandBufferInheritanceViewportScissorInfoNV
  11493. {
  11494. using NativeType = VkCommandBufferInheritanceViewportScissorInfoNV;
  11495. static const bool allowDuplicate = false;
  11496. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eCommandBufferInheritanceViewportScissorInfoNV;
  11497. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  11498. VULKAN_HPP_CONSTEXPR CommandBufferInheritanceViewportScissorInfoNV( VULKAN_HPP_NAMESPACE::Bool32 viewportScissor2D_ = {},
  11499. uint32_t viewportDepthCount_ = {},
  11500. const VULKAN_HPP_NAMESPACE::Viewport * pViewportDepths_ = {},
  11501. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  11502. : pNext( pNext_ )
  11503. , viewportScissor2D( viewportScissor2D_ )
  11504. , viewportDepthCount( viewportDepthCount_ )
  11505. , pViewportDepths( pViewportDepths_ )
  11506. {
  11507. }
  11508. VULKAN_HPP_CONSTEXPR
  11509. CommandBufferInheritanceViewportScissorInfoNV( CommandBufferInheritanceViewportScissorInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  11510. CommandBufferInheritanceViewportScissorInfoNV( VkCommandBufferInheritanceViewportScissorInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
  11511. : CommandBufferInheritanceViewportScissorInfoNV( *reinterpret_cast<CommandBufferInheritanceViewportScissorInfoNV const *>( &rhs ) )
  11512. {
  11513. }
  11514. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  11515. CommandBufferInheritanceViewportScissorInfoNV & operator=( CommandBufferInheritanceViewportScissorInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  11516. CommandBufferInheritanceViewportScissorInfoNV & operator=( VkCommandBufferInheritanceViewportScissorInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
  11517. {
  11518. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::CommandBufferInheritanceViewportScissorInfoNV const *>( &rhs );
  11519. return *this;
  11520. }
  11521. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  11522. VULKAN_HPP_CONSTEXPR_14 CommandBufferInheritanceViewportScissorInfoNV & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  11523. {
  11524. pNext = pNext_;
  11525. return *this;
  11526. }
  11527. VULKAN_HPP_CONSTEXPR_14 CommandBufferInheritanceViewportScissorInfoNV &
  11528. setViewportScissor2D( VULKAN_HPP_NAMESPACE::Bool32 viewportScissor2D_ ) VULKAN_HPP_NOEXCEPT
  11529. {
  11530. viewportScissor2D = viewportScissor2D_;
  11531. return *this;
  11532. }
  11533. VULKAN_HPP_CONSTEXPR_14 CommandBufferInheritanceViewportScissorInfoNV & setViewportDepthCount( uint32_t viewportDepthCount_ ) VULKAN_HPP_NOEXCEPT
  11534. {
  11535. viewportDepthCount = viewportDepthCount_;
  11536. return *this;
  11537. }
  11538. VULKAN_HPP_CONSTEXPR_14 CommandBufferInheritanceViewportScissorInfoNV &
  11539. setPViewportDepths( const VULKAN_HPP_NAMESPACE::Viewport * pViewportDepths_ ) VULKAN_HPP_NOEXCEPT
  11540. {
  11541. pViewportDepths = pViewportDepths_;
  11542. return *this;
  11543. }
  11544. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  11545. operator VkCommandBufferInheritanceViewportScissorInfoNV const &() const VULKAN_HPP_NOEXCEPT
  11546. {
  11547. return *reinterpret_cast<const VkCommandBufferInheritanceViewportScissorInfoNV *>( this );
  11548. }
  11549. operator VkCommandBufferInheritanceViewportScissorInfoNV &() VULKAN_HPP_NOEXCEPT
  11550. {
  11551. return *reinterpret_cast<VkCommandBufferInheritanceViewportScissorInfoNV *>( this );
  11552. }
  11553. #if defined( VULKAN_HPP_USE_REFLECT )
  11554. # if 14 <= VULKAN_HPP_CPP_VERSION
  11555. auto
  11556. # else
  11557. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  11558. const void * const &,
  11559. VULKAN_HPP_NAMESPACE::Bool32 const &,
  11560. uint32_t const &,
  11561. const VULKAN_HPP_NAMESPACE::Viewport * const &>
  11562. # endif
  11563. reflect() const VULKAN_HPP_NOEXCEPT
  11564. {
  11565. return std::tie( sType, pNext, viewportScissor2D, viewportDepthCount, pViewportDepths );
  11566. }
  11567. #endif
  11568. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  11569. auto operator<=>( CommandBufferInheritanceViewportScissorInfoNV const & ) const = default;
  11570. #else
  11571. bool operator==( CommandBufferInheritanceViewportScissorInfoNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  11572. {
  11573. # if defined( VULKAN_HPP_USE_REFLECT )
  11574. return this->reflect() == rhs.reflect();
  11575. # else
  11576. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( viewportScissor2D == rhs.viewportScissor2D ) &&
  11577. ( viewportDepthCount == rhs.viewportDepthCount ) && ( pViewportDepths == rhs.pViewportDepths );
  11578. # endif
  11579. }
  11580. bool operator!=( CommandBufferInheritanceViewportScissorInfoNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  11581. {
  11582. return !operator==( rhs );
  11583. }
  11584. #endif
  11585. public:
  11586. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eCommandBufferInheritanceViewportScissorInfoNV;
  11587. const void * pNext = {};
  11588. VULKAN_HPP_NAMESPACE::Bool32 viewportScissor2D = {};
  11589. uint32_t viewportDepthCount = {};
  11590. const VULKAN_HPP_NAMESPACE::Viewport * pViewportDepths = {};
  11591. };
  11592. template <>
  11593. struct CppType<StructureType, StructureType::eCommandBufferInheritanceViewportScissorInfoNV>
  11594. {
  11595. using Type = CommandBufferInheritanceViewportScissorInfoNV;
  11596. };
  11597. struct CommandBufferSubmitInfo
  11598. {
  11599. using NativeType = VkCommandBufferSubmitInfo;
  11600. static const bool allowDuplicate = false;
  11601. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eCommandBufferSubmitInfo;
  11602. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  11603. VULKAN_HPP_CONSTEXPR CommandBufferSubmitInfo( VULKAN_HPP_NAMESPACE::CommandBuffer commandBuffer_ = {},
  11604. uint32_t deviceMask_ = {},
  11605. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  11606. : pNext( pNext_ )
  11607. , commandBuffer( commandBuffer_ )
  11608. , deviceMask( deviceMask_ )
  11609. {
  11610. }
  11611. VULKAN_HPP_CONSTEXPR CommandBufferSubmitInfo( CommandBufferSubmitInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  11612. CommandBufferSubmitInfo( VkCommandBufferSubmitInfo const & rhs ) VULKAN_HPP_NOEXCEPT
  11613. : CommandBufferSubmitInfo( *reinterpret_cast<CommandBufferSubmitInfo const *>( &rhs ) )
  11614. {
  11615. }
  11616. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  11617. CommandBufferSubmitInfo & operator=( CommandBufferSubmitInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  11618. CommandBufferSubmitInfo & operator=( VkCommandBufferSubmitInfo const & rhs ) VULKAN_HPP_NOEXCEPT
  11619. {
  11620. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::CommandBufferSubmitInfo const *>( &rhs );
  11621. return *this;
  11622. }
  11623. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  11624. VULKAN_HPP_CONSTEXPR_14 CommandBufferSubmitInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  11625. {
  11626. pNext = pNext_;
  11627. return *this;
  11628. }
  11629. VULKAN_HPP_CONSTEXPR_14 CommandBufferSubmitInfo & setCommandBuffer( VULKAN_HPP_NAMESPACE::CommandBuffer commandBuffer_ ) VULKAN_HPP_NOEXCEPT
  11630. {
  11631. commandBuffer = commandBuffer_;
  11632. return *this;
  11633. }
  11634. VULKAN_HPP_CONSTEXPR_14 CommandBufferSubmitInfo & setDeviceMask( uint32_t deviceMask_ ) VULKAN_HPP_NOEXCEPT
  11635. {
  11636. deviceMask = deviceMask_;
  11637. return *this;
  11638. }
  11639. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  11640. operator VkCommandBufferSubmitInfo const &() const VULKAN_HPP_NOEXCEPT
  11641. {
  11642. return *reinterpret_cast<const VkCommandBufferSubmitInfo *>( this );
  11643. }
  11644. operator VkCommandBufferSubmitInfo &() VULKAN_HPP_NOEXCEPT
  11645. {
  11646. return *reinterpret_cast<VkCommandBufferSubmitInfo *>( this );
  11647. }
  11648. #if defined( VULKAN_HPP_USE_REFLECT )
  11649. # if 14 <= VULKAN_HPP_CPP_VERSION
  11650. auto
  11651. # else
  11652. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::CommandBuffer const &, uint32_t const &>
  11653. # endif
  11654. reflect() const VULKAN_HPP_NOEXCEPT
  11655. {
  11656. return std::tie( sType, pNext, commandBuffer, deviceMask );
  11657. }
  11658. #endif
  11659. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  11660. auto operator<=>( CommandBufferSubmitInfo const & ) const = default;
  11661. #else
  11662. bool operator==( CommandBufferSubmitInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  11663. {
  11664. # if defined( VULKAN_HPP_USE_REFLECT )
  11665. return this->reflect() == rhs.reflect();
  11666. # else
  11667. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( commandBuffer == rhs.commandBuffer ) && ( deviceMask == rhs.deviceMask );
  11668. # endif
  11669. }
  11670. bool operator!=( CommandBufferSubmitInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  11671. {
  11672. return !operator==( rhs );
  11673. }
  11674. #endif
  11675. public:
  11676. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eCommandBufferSubmitInfo;
  11677. const void * pNext = {};
  11678. VULKAN_HPP_NAMESPACE::CommandBuffer commandBuffer = {};
  11679. uint32_t deviceMask = {};
  11680. };
  11681. template <>
  11682. struct CppType<StructureType, StructureType::eCommandBufferSubmitInfo>
  11683. {
  11684. using Type = CommandBufferSubmitInfo;
  11685. };
  11686. using CommandBufferSubmitInfoKHR = CommandBufferSubmitInfo;
  11687. struct CommandPoolCreateInfo
  11688. {
  11689. using NativeType = VkCommandPoolCreateInfo;
  11690. static const bool allowDuplicate = false;
  11691. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eCommandPoolCreateInfo;
  11692. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  11693. VULKAN_HPP_CONSTEXPR CommandPoolCreateInfo( VULKAN_HPP_NAMESPACE::CommandPoolCreateFlags flags_ = {},
  11694. uint32_t queueFamilyIndex_ = {},
  11695. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  11696. : pNext( pNext_ )
  11697. , flags( flags_ )
  11698. , queueFamilyIndex( queueFamilyIndex_ )
  11699. {
  11700. }
  11701. VULKAN_HPP_CONSTEXPR CommandPoolCreateInfo( CommandPoolCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  11702. CommandPoolCreateInfo( VkCommandPoolCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
  11703. : CommandPoolCreateInfo( *reinterpret_cast<CommandPoolCreateInfo const *>( &rhs ) )
  11704. {
  11705. }
  11706. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  11707. CommandPoolCreateInfo & operator=( CommandPoolCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  11708. CommandPoolCreateInfo & operator=( VkCommandPoolCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
  11709. {
  11710. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::CommandPoolCreateInfo const *>( &rhs );
  11711. return *this;
  11712. }
  11713. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  11714. VULKAN_HPP_CONSTEXPR_14 CommandPoolCreateInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  11715. {
  11716. pNext = pNext_;
  11717. return *this;
  11718. }
  11719. VULKAN_HPP_CONSTEXPR_14 CommandPoolCreateInfo & setFlags( VULKAN_HPP_NAMESPACE::CommandPoolCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT
  11720. {
  11721. flags = flags_;
  11722. return *this;
  11723. }
  11724. VULKAN_HPP_CONSTEXPR_14 CommandPoolCreateInfo & setQueueFamilyIndex( uint32_t queueFamilyIndex_ ) VULKAN_HPP_NOEXCEPT
  11725. {
  11726. queueFamilyIndex = queueFamilyIndex_;
  11727. return *this;
  11728. }
  11729. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  11730. operator VkCommandPoolCreateInfo const &() const VULKAN_HPP_NOEXCEPT
  11731. {
  11732. return *reinterpret_cast<const VkCommandPoolCreateInfo *>( this );
  11733. }
  11734. operator VkCommandPoolCreateInfo &() VULKAN_HPP_NOEXCEPT
  11735. {
  11736. return *reinterpret_cast<VkCommandPoolCreateInfo *>( this );
  11737. }
  11738. #if defined( VULKAN_HPP_USE_REFLECT )
  11739. # if 14 <= VULKAN_HPP_CPP_VERSION
  11740. auto
  11741. # else
  11742. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::CommandPoolCreateFlags const &, uint32_t const &>
  11743. # endif
  11744. reflect() const VULKAN_HPP_NOEXCEPT
  11745. {
  11746. return std::tie( sType, pNext, flags, queueFamilyIndex );
  11747. }
  11748. #endif
  11749. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  11750. auto operator<=>( CommandPoolCreateInfo const & ) const = default;
  11751. #else
  11752. bool operator==( CommandPoolCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  11753. {
  11754. # if defined( VULKAN_HPP_USE_REFLECT )
  11755. return this->reflect() == rhs.reflect();
  11756. # else
  11757. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( flags == rhs.flags ) && ( queueFamilyIndex == rhs.queueFamilyIndex );
  11758. # endif
  11759. }
  11760. bool operator!=( CommandPoolCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  11761. {
  11762. return !operator==( rhs );
  11763. }
  11764. #endif
  11765. public:
  11766. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eCommandPoolCreateInfo;
  11767. const void * pNext = {};
  11768. VULKAN_HPP_NAMESPACE::CommandPoolCreateFlags flags = {};
  11769. uint32_t queueFamilyIndex = {};
  11770. };
  11771. template <>
  11772. struct CppType<StructureType, StructureType::eCommandPoolCreateInfo>
  11773. {
  11774. using Type = CommandPoolCreateInfo;
  11775. };
  11776. struct SpecializationMapEntry
  11777. {
  11778. using NativeType = VkSpecializationMapEntry;
  11779. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  11780. VULKAN_HPP_CONSTEXPR SpecializationMapEntry( uint32_t constantID_ = {}, uint32_t offset_ = {}, size_t size_ = {} ) VULKAN_HPP_NOEXCEPT
  11781. : constantID( constantID_ )
  11782. , offset( offset_ )
  11783. , size( size_ )
  11784. {
  11785. }
  11786. VULKAN_HPP_CONSTEXPR SpecializationMapEntry( SpecializationMapEntry const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  11787. SpecializationMapEntry( VkSpecializationMapEntry const & rhs ) VULKAN_HPP_NOEXCEPT
  11788. : SpecializationMapEntry( *reinterpret_cast<SpecializationMapEntry const *>( &rhs ) )
  11789. {
  11790. }
  11791. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  11792. SpecializationMapEntry & operator=( SpecializationMapEntry const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  11793. SpecializationMapEntry & operator=( VkSpecializationMapEntry const & rhs ) VULKAN_HPP_NOEXCEPT
  11794. {
  11795. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SpecializationMapEntry const *>( &rhs );
  11796. return *this;
  11797. }
  11798. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  11799. VULKAN_HPP_CONSTEXPR_14 SpecializationMapEntry & setConstantID( uint32_t constantID_ ) VULKAN_HPP_NOEXCEPT
  11800. {
  11801. constantID = constantID_;
  11802. return *this;
  11803. }
  11804. VULKAN_HPP_CONSTEXPR_14 SpecializationMapEntry & setOffset( uint32_t offset_ ) VULKAN_HPP_NOEXCEPT
  11805. {
  11806. offset = offset_;
  11807. return *this;
  11808. }
  11809. VULKAN_HPP_CONSTEXPR_14 SpecializationMapEntry & setSize( size_t size_ ) VULKAN_HPP_NOEXCEPT
  11810. {
  11811. size = size_;
  11812. return *this;
  11813. }
  11814. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  11815. operator VkSpecializationMapEntry const &() const VULKAN_HPP_NOEXCEPT
  11816. {
  11817. return *reinterpret_cast<const VkSpecializationMapEntry *>( this );
  11818. }
  11819. operator VkSpecializationMapEntry &() VULKAN_HPP_NOEXCEPT
  11820. {
  11821. return *reinterpret_cast<VkSpecializationMapEntry *>( this );
  11822. }
  11823. #if defined( VULKAN_HPP_USE_REFLECT )
  11824. # if 14 <= VULKAN_HPP_CPP_VERSION
  11825. auto
  11826. # else
  11827. std::tuple<uint32_t const &, uint32_t const &, size_t const &>
  11828. # endif
  11829. reflect() const VULKAN_HPP_NOEXCEPT
  11830. {
  11831. return std::tie( constantID, offset, size );
  11832. }
  11833. #endif
  11834. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  11835. auto operator<=>( SpecializationMapEntry const & ) const = default;
  11836. #else
  11837. bool operator==( SpecializationMapEntry const & rhs ) const VULKAN_HPP_NOEXCEPT
  11838. {
  11839. # if defined( VULKAN_HPP_USE_REFLECT )
  11840. return this->reflect() == rhs.reflect();
  11841. # else
  11842. return ( constantID == rhs.constantID ) && ( offset == rhs.offset ) && ( size == rhs.size );
  11843. # endif
  11844. }
  11845. bool operator!=( SpecializationMapEntry const & rhs ) const VULKAN_HPP_NOEXCEPT
  11846. {
  11847. return !operator==( rhs );
  11848. }
  11849. #endif
  11850. public:
  11851. uint32_t constantID = {};
  11852. uint32_t offset = {};
  11853. size_t size = {};
  11854. };
  11855. struct SpecializationInfo
  11856. {
  11857. using NativeType = VkSpecializationInfo;
  11858. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  11859. VULKAN_HPP_CONSTEXPR SpecializationInfo( uint32_t mapEntryCount_ = {},
  11860. const VULKAN_HPP_NAMESPACE::SpecializationMapEntry * pMapEntries_ = {},
  11861. size_t dataSize_ = {},
  11862. const void * pData_ = {} ) VULKAN_HPP_NOEXCEPT
  11863. : mapEntryCount( mapEntryCount_ )
  11864. , pMapEntries( pMapEntries_ )
  11865. , dataSize( dataSize_ )
  11866. , pData( pData_ )
  11867. {
  11868. }
  11869. VULKAN_HPP_CONSTEXPR SpecializationInfo( SpecializationInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  11870. SpecializationInfo( VkSpecializationInfo const & rhs ) VULKAN_HPP_NOEXCEPT : SpecializationInfo( *reinterpret_cast<SpecializationInfo const *>( &rhs ) ) {}
  11871. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  11872. template <typename T>
  11873. SpecializationInfo( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::SpecializationMapEntry> const & mapEntries_,
  11874. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const T> const & data_ = {} )
  11875. : mapEntryCount( static_cast<uint32_t>( mapEntries_.size() ) )
  11876. , pMapEntries( mapEntries_.data() )
  11877. , dataSize( data_.size() * sizeof( T ) )
  11878. , pData( data_.data() )
  11879. {
  11880. }
  11881. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  11882. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  11883. SpecializationInfo & operator=( SpecializationInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  11884. SpecializationInfo & operator=( VkSpecializationInfo const & rhs ) VULKAN_HPP_NOEXCEPT
  11885. {
  11886. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SpecializationInfo const *>( &rhs );
  11887. return *this;
  11888. }
  11889. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  11890. VULKAN_HPP_CONSTEXPR_14 SpecializationInfo & setMapEntryCount( uint32_t mapEntryCount_ ) VULKAN_HPP_NOEXCEPT
  11891. {
  11892. mapEntryCount = mapEntryCount_;
  11893. return *this;
  11894. }
  11895. VULKAN_HPP_CONSTEXPR_14 SpecializationInfo & setPMapEntries( const VULKAN_HPP_NAMESPACE::SpecializationMapEntry * pMapEntries_ ) VULKAN_HPP_NOEXCEPT
  11896. {
  11897. pMapEntries = pMapEntries_;
  11898. return *this;
  11899. }
  11900. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  11901. SpecializationInfo &
  11902. setMapEntries( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::SpecializationMapEntry> const & mapEntries_ ) VULKAN_HPP_NOEXCEPT
  11903. {
  11904. mapEntryCount = static_cast<uint32_t>( mapEntries_.size() );
  11905. pMapEntries = mapEntries_.data();
  11906. return *this;
  11907. }
  11908. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  11909. VULKAN_HPP_CONSTEXPR_14 SpecializationInfo & setDataSize( size_t dataSize_ ) VULKAN_HPP_NOEXCEPT
  11910. {
  11911. dataSize = dataSize_;
  11912. return *this;
  11913. }
  11914. VULKAN_HPP_CONSTEXPR_14 SpecializationInfo & setPData( const void * pData_ ) VULKAN_HPP_NOEXCEPT
  11915. {
  11916. pData = pData_;
  11917. return *this;
  11918. }
  11919. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  11920. template <typename T>
  11921. SpecializationInfo & setData( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const T> const & data_ ) VULKAN_HPP_NOEXCEPT
  11922. {
  11923. dataSize = data_.size() * sizeof( T );
  11924. pData = data_.data();
  11925. return *this;
  11926. }
  11927. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  11928. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  11929. operator VkSpecializationInfo const &() const VULKAN_HPP_NOEXCEPT
  11930. {
  11931. return *reinterpret_cast<const VkSpecializationInfo *>( this );
  11932. }
  11933. operator VkSpecializationInfo &() VULKAN_HPP_NOEXCEPT
  11934. {
  11935. return *reinterpret_cast<VkSpecializationInfo *>( this );
  11936. }
  11937. #if defined( VULKAN_HPP_USE_REFLECT )
  11938. # if 14 <= VULKAN_HPP_CPP_VERSION
  11939. auto
  11940. # else
  11941. std::tuple<uint32_t const &, const VULKAN_HPP_NAMESPACE::SpecializationMapEntry * const &, size_t const &, const void * const &>
  11942. # endif
  11943. reflect() const VULKAN_HPP_NOEXCEPT
  11944. {
  11945. return std::tie( mapEntryCount, pMapEntries, dataSize, pData );
  11946. }
  11947. #endif
  11948. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  11949. auto operator<=>( SpecializationInfo const & ) const = default;
  11950. #else
  11951. bool operator==( SpecializationInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  11952. {
  11953. # if defined( VULKAN_HPP_USE_REFLECT )
  11954. return this->reflect() == rhs.reflect();
  11955. # else
  11956. return ( mapEntryCount == rhs.mapEntryCount ) && ( pMapEntries == rhs.pMapEntries ) && ( dataSize == rhs.dataSize ) && ( pData == rhs.pData );
  11957. # endif
  11958. }
  11959. bool operator!=( SpecializationInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  11960. {
  11961. return !operator==( rhs );
  11962. }
  11963. #endif
  11964. public:
  11965. uint32_t mapEntryCount = {};
  11966. const VULKAN_HPP_NAMESPACE::SpecializationMapEntry * pMapEntries = {};
  11967. size_t dataSize = {};
  11968. const void * pData = {};
  11969. };
  11970. struct PipelineShaderStageCreateInfo
  11971. {
  11972. using NativeType = VkPipelineShaderStageCreateInfo;
  11973. static const bool allowDuplicate = false;
  11974. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineShaderStageCreateInfo;
  11975. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  11976. VULKAN_HPP_CONSTEXPR PipelineShaderStageCreateInfo( VULKAN_HPP_NAMESPACE::PipelineShaderStageCreateFlags flags_ = {},
  11977. VULKAN_HPP_NAMESPACE::ShaderStageFlagBits stage_ = VULKAN_HPP_NAMESPACE::ShaderStageFlagBits::eVertex,
  11978. VULKAN_HPP_NAMESPACE::ShaderModule module_ = {},
  11979. const char * pName_ = {},
  11980. const VULKAN_HPP_NAMESPACE::SpecializationInfo * pSpecializationInfo_ = {},
  11981. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  11982. : pNext( pNext_ )
  11983. , flags( flags_ )
  11984. , stage( stage_ )
  11985. , module( module_ )
  11986. , pName( pName_ )
  11987. , pSpecializationInfo( pSpecializationInfo_ )
  11988. {
  11989. }
  11990. VULKAN_HPP_CONSTEXPR PipelineShaderStageCreateInfo( PipelineShaderStageCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  11991. PipelineShaderStageCreateInfo( VkPipelineShaderStageCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
  11992. : PipelineShaderStageCreateInfo( *reinterpret_cast<PipelineShaderStageCreateInfo const *>( &rhs ) )
  11993. {
  11994. }
  11995. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  11996. PipelineShaderStageCreateInfo & operator=( PipelineShaderStageCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  11997. PipelineShaderStageCreateInfo & operator=( VkPipelineShaderStageCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
  11998. {
  11999. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PipelineShaderStageCreateInfo const *>( &rhs );
  12000. return *this;
  12001. }
  12002. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  12003. VULKAN_HPP_CONSTEXPR_14 PipelineShaderStageCreateInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  12004. {
  12005. pNext = pNext_;
  12006. return *this;
  12007. }
  12008. VULKAN_HPP_CONSTEXPR_14 PipelineShaderStageCreateInfo & setFlags( VULKAN_HPP_NAMESPACE::PipelineShaderStageCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT
  12009. {
  12010. flags = flags_;
  12011. return *this;
  12012. }
  12013. VULKAN_HPP_CONSTEXPR_14 PipelineShaderStageCreateInfo & setStage( VULKAN_HPP_NAMESPACE::ShaderStageFlagBits stage_ ) VULKAN_HPP_NOEXCEPT
  12014. {
  12015. stage = stage_;
  12016. return *this;
  12017. }
  12018. VULKAN_HPP_CONSTEXPR_14 PipelineShaderStageCreateInfo & setModule( VULKAN_HPP_NAMESPACE::ShaderModule module_ ) VULKAN_HPP_NOEXCEPT
  12019. {
  12020. module = module_;
  12021. return *this;
  12022. }
  12023. VULKAN_HPP_CONSTEXPR_14 PipelineShaderStageCreateInfo & setPName( const char * pName_ ) VULKAN_HPP_NOEXCEPT
  12024. {
  12025. pName = pName_;
  12026. return *this;
  12027. }
  12028. VULKAN_HPP_CONSTEXPR_14 PipelineShaderStageCreateInfo &
  12029. setPSpecializationInfo( const VULKAN_HPP_NAMESPACE::SpecializationInfo * pSpecializationInfo_ ) VULKAN_HPP_NOEXCEPT
  12030. {
  12031. pSpecializationInfo = pSpecializationInfo_;
  12032. return *this;
  12033. }
  12034. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  12035. operator VkPipelineShaderStageCreateInfo const &() const VULKAN_HPP_NOEXCEPT
  12036. {
  12037. return *reinterpret_cast<const VkPipelineShaderStageCreateInfo *>( this );
  12038. }
  12039. operator VkPipelineShaderStageCreateInfo &() VULKAN_HPP_NOEXCEPT
  12040. {
  12041. return *reinterpret_cast<VkPipelineShaderStageCreateInfo *>( this );
  12042. }
  12043. #if defined( VULKAN_HPP_USE_REFLECT )
  12044. # if 14 <= VULKAN_HPP_CPP_VERSION
  12045. auto
  12046. # else
  12047. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  12048. const void * const &,
  12049. VULKAN_HPP_NAMESPACE::PipelineShaderStageCreateFlags const &,
  12050. VULKAN_HPP_NAMESPACE::ShaderStageFlagBits const &,
  12051. VULKAN_HPP_NAMESPACE::ShaderModule const &,
  12052. const char * const &,
  12053. const VULKAN_HPP_NAMESPACE::SpecializationInfo * const &>
  12054. # endif
  12055. reflect() const VULKAN_HPP_NOEXCEPT
  12056. {
  12057. return std::tie( sType, pNext, flags, stage, module, pName, pSpecializationInfo );
  12058. }
  12059. #endif
  12060. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  12061. std::strong_ordering operator<=>( PipelineShaderStageCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  12062. {
  12063. if ( auto cmp = sType <=> rhs.sType; cmp != 0 )
  12064. return cmp;
  12065. if ( auto cmp = pNext <=> rhs.pNext; cmp != 0 )
  12066. return cmp;
  12067. if ( auto cmp = flags <=> rhs.flags; cmp != 0 )
  12068. return cmp;
  12069. if ( auto cmp = stage <=> rhs.stage; cmp != 0 )
  12070. return cmp;
  12071. if ( auto cmp = module <=> rhs.module; cmp != 0 )
  12072. return cmp;
  12073. if ( pName != rhs.pName )
  12074. if ( auto cmp = strcmp( pName, rhs.pName ); cmp != 0 )
  12075. return ( cmp < 0 ) ? std::strong_ordering::less : std::strong_ordering::greater;
  12076. if ( auto cmp = pSpecializationInfo <=> rhs.pSpecializationInfo; cmp != 0 )
  12077. return cmp;
  12078. return std::strong_ordering::equivalent;
  12079. }
  12080. #endif
  12081. bool operator==( PipelineShaderStageCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  12082. {
  12083. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( flags == rhs.flags ) && ( stage == rhs.stage ) && ( module == rhs.module ) &&
  12084. ( ( pName == rhs.pName ) || ( strcmp( pName, rhs.pName ) == 0 ) ) && ( pSpecializationInfo == rhs.pSpecializationInfo );
  12085. }
  12086. bool operator!=( PipelineShaderStageCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  12087. {
  12088. return !operator==( rhs );
  12089. }
  12090. public:
  12091. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineShaderStageCreateInfo;
  12092. const void * pNext = {};
  12093. VULKAN_HPP_NAMESPACE::PipelineShaderStageCreateFlags flags = {};
  12094. VULKAN_HPP_NAMESPACE::ShaderStageFlagBits stage = VULKAN_HPP_NAMESPACE::ShaderStageFlagBits::eVertex;
  12095. VULKAN_HPP_NAMESPACE::ShaderModule module = {};
  12096. const char * pName = {};
  12097. const VULKAN_HPP_NAMESPACE::SpecializationInfo * pSpecializationInfo = {};
  12098. };
  12099. template <>
  12100. struct CppType<StructureType, StructureType::ePipelineShaderStageCreateInfo>
  12101. {
  12102. using Type = PipelineShaderStageCreateInfo;
  12103. };
  12104. struct ComputePipelineCreateInfo
  12105. {
  12106. using NativeType = VkComputePipelineCreateInfo;
  12107. static const bool allowDuplicate = false;
  12108. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eComputePipelineCreateInfo;
  12109. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  12110. VULKAN_HPP_CONSTEXPR ComputePipelineCreateInfo( VULKAN_HPP_NAMESPACE::PipelineCreateFlags flags_ = {},
  12111. VULKAN_HPP_NAMESPACE::PipelineShaderStageCreateInfo stage_ = {},
  12112. VULKAN_HPP_NAMESPACE::PipelineLayout layout_ = {},
  12113. VULKAN_HPP_NAMESPACE::Pipeline basePipelineHandle_ = {},
  12114. int32_t basePipelineIndex_ = {},
  12115. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  12116. : pNext( pNext_ )
  12117. , flags( flags_ )
  12118. , stage( stage_ )
  12119. , layout( layout_ )
  12120. , basePipelineHandle( basePipelineHandle_ )
  12121. , basePipelineIndex( basePipelineIndex_ )
  12122. {
  12123. }
  12124. VULKAN_HPP_CONSTEXPR ComputePipelineCreateInfo( ComputePipelineCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  12125. ComputePipelineCreateInfo( VkComputePipelineCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
  12126. : ComputePipelineCreateInfo( *reinterpret_cast<ComputePipelineCreateInfo const *>( &rhs ) )
  12127. {
  12128. }
  12129. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  12130. ComputePipelineCreateInfo & operator=( ComputePipelineCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  12131. ComputePipelineCreateInfo & operator=( VkComputePipelineCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
  12132. {
  12133. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ComputePipelineCreateInfo const *>( &rhs );
  12134. return *this;
  12135. }
  12136. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  12137. VULKAN_HPP_CONSTEXPR_14 ComputePipelineCreateInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  12138. {
  12139. pNext = pNext_;
  12140. return *this;
  12141. }
  12142. VULKAN_HPP_CONSTEXPR_14 ComputePipelineCreateInfo & setFlags( VULKAN_HPP_NAMESPACE::PipelineCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT
  12143. {
  12144. flags = flags_;
  12145. return *this;
  12146. }
  12147. VULKAN_HPP_CONSTEXPR_14 ComputePipelineCreateInfo & setStage( VULKAN_HPP_NAMESPACE::PipelineShaderStageCreateInfo const & stage_ ) VULKAN_HPP_NOEXCEPT
  12148. {
  12149. stage = stage_;
  12150. return *this;
  12151. }
  12152. VULKAN_HPP_CONSTEXPR_14 ComputePipelineCreateInfo & setLayout( VULKAN_HPP_NAMESPACE::PipelineLayout layout_ ) VULKAN_HPP_NOEXCEPT
  12153. {
  12154. layout = layout_;
  12155. return *this;
  12156. }
  12157. VULKAN_HPP_CONSTEXPR_14 ComputePipelineCreateInfo & setBasePipelineHandle( VULKAN_HPP_NAMESPACE::Pipeline basePipelineHandle_ ) VULKAN_HPP_NOEXCEPT
  12158. {
  12159. basePipelineHandle = basePipelineHandle_;
  12160. return *this;
  12161. }
  12162. VULKAN_HPP_CONSTEXPR_14 ComputePipelineCreateInfo & setBasePipelineIndex( int32_t basePipelineIndex_ ) VULKAN_HPP_NOEXCEPT
  12163. {
  12164. basePipelineIndex = basePipelineIndex_;
  12165. return *this;
  12166. }
  12167. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  12168. operator VkComputePipelineCreateInfo const &() const VULKAN_HPP_NOEXCEPT
  12169. {
  12170. return *reinterpret_cast<const VkComputePipelineCreateInfo *>( this );
  12171. }
  12172. operator VkComputePipelineCreateInfo &() VULKAN_HPP_NOEXCEPT
  12173. {
  12174. return *reinterpret_cast<VkComputePipelineCreateInfo *>( this );
  12175. }
  12176. #if defined( VULKAN_HPP_USE_REFLECT )
  12177. # if 14 <= VULKAN_HPP_CPP_VERSION
  12178. auto
  12179. # else
  12180. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  12181. const void * const &,
  12182. VULKAN_HPP_NAMESPACE::PipelineCreateFlags const &,
  12183. VULKAN_HPP_NAMESPACE::PipelineShaderStageCreateInfo const &,
  12184. VULKAN_HPP_NAMESPACE::PipelineLayout const &,
  12185. VULKAN_HPP_NAMESPACE::Pipeline const &,
  12186. int32_t const &>
  12187. # endif
  12188. reflect() const VULKAN_HPP_NOEXCEPT
  12189. {
  12190. return std::tie( sType, pNext, flags, stage, layout, basePipelineHandle, basePipelineIndex );
  12191. }
  12192. #endif
  12193. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  12194. auto operator<=>( ComputePipelineCreateInfo const & ) const = default;
  12195. #else
  12196. bool operator==( ComputePipelineCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  12197. {
  12198. # if defined( VULKAN_HPP_USE_REFLECT )
  12199. return this->reflect() == rhs.reflect();
  12200. # else
  12201. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( flags == rhs.flags ) && ( stage == rhs.stage ) && ( layout == rhs.layout ) &&
  12202. ( basePipelineHandle == rhs.basePipelineHandle ) && ( basePipelineIndex == rhs.basePipelineIndex );
  12203. # endif
  12204. }
  12205. bool operator!=( ComputePipelineCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  12206. {
  12207. return !operator==( rhs );
  12208. }
  12209. #endif
  12210. public:
  12211. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eComputePipelineCreateInfo;
  12212. const void * pNext = {};
  12213. VULKAN_HPP_NAMESPACE::PipelineCreateFlags flags = {};
  12214. VULKAN_HPP_NAMESPACE::PipelineShaderStageCreateInfo stage = {};
  12215. VULKAN_HPP_NAMESPACE::PipelineLayout layout = {};
  12216. VULKAN_HPP_NAMESPACE::Pipeline basePipelineHandle = {};
  12217. int32_t basePipelineIndex = {};
  12218. };
  12219. template <>
  12220. struct CppType<StructureType, StructureType::eComputePipelineCreateInfo>
  12221. {
  12222. using Type = ComputePipelineCreateInfo;
  12223. };
  12224. struct ConditionalRenderingBeginInfoEXT
  12225. {
  12226. using NativeType = VkConditionalRenderingBeginInfoEXT;
  12227. static const bool allowDuplicate = false;
  12228. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eConditionalRenderingBeginInfoEXT;
  12229. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  12230. VULKAN_HPP_CONSTEXPR ConditionalRenderingBeginInfoEXT( VULKAN_HPP_NAMESPACE::Buffer buffer_ = {},
  12231. VULKAN_HPP_NAMESPACE::DeviceSize offset_ = {},
  12232. VULKAN_HPP_NAMESPACE::ConditionalRenderingFlagsEXT flags_ = {},
  12233. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  12234. : pNext( pNext_ )
  12235. , buffer( buffer_ )
  12236. , offset( offset_ )
  12237. , flags( flags_ )
  12238. {
  12239. }
  12240. VULKAN_HPP_CONSTEXPR ConditionalRenderingBeginInfoEXT( ConditionalRenderingBeginInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  12241. ConditionalRenderingBeginInfoEXT( VkConditionalRenderingBeginInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  12242. : ConditionalRenderingBeginInfoEXT( *reinterpret_cast<ConditionalRenderingBeginInfoEXT const *>( &rhs ) )
  12243. {
  12244. }
  12245. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  12246. ConditionalRenderingBeginInfoEXT & operator=( ConditionalRenderingBeginInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  12247. ConditionalRenderingBeginInfoEXT & operator=( VkConditionalRenderingBeginInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  12248. {
  12249. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ConditionalRenderingBeginInfoEXT const *>( &rhs );
  12250. return *this;
  12251. }
  12252. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  12253. VULKAN_HPP_CONSTEXPR_14 ConditionalRenderingBeginInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  12254. {
  12255. pNext = pNext_;
  12256. return *this;
  12257. }
  12258. VULKAN_HPP_CONSTEXPR_14 ConditionalRenderingBeginInfoEXT & setBuffer( VULKAN_HPP_NAMESPACE::Buffer buffer_ ) VULKAN_HPP_NOEXCEPT
  12259. {
  12260. buffer = buffer_;
  12261. return *this;
  12262. }
  12263. VULKAN_HPP_CONSTEXPR_14 ConditionalRenderingBeginInfoEXT & setOffset( VULKAN_HPP_NAMESPACE::DeviceSize offset_ ) VULKAN_HPP_NOEXCEPT
  12264. {
  12265. offset = offset_;
  12266. return *this;
  12267. }
  12268. VULKAN_HPP_CONSTEXPR_14 ConditionalRenderingBeginInfoEXT & setFlags( VULKAN_HPP_NAMESPACE::ConditionalRenderingFlagsEXT flags_ ) VULKAN_HPP_NOEXCEPT
  12269. {
  12270. flags = flags_;
  12271. return *this;
  12272. }
  12273. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  12274. operator VkConditionalRenderingBeginInfoEXT const &() const VULKAN_HPP_NOEXCEPT
  12275. {
  12276. return *reinterpret_cast<const VkConditionalRenderingBeginInfoEXT *>( this );
  12277. }
  12278. operator VkConditionalRenderingBeginInfoEXT &() VULKAN_HPP_NOEXCEPT
  12279. {
  12280. return *reinterpret_cast<VkConditionalRenderingBeginInfoEXT *>( this );
  12281. }
  12282. #if defined( VULKAN_HPP_USE_REFLECT )
  12283. # if 14 <= VULKAN_HPP_CPP_VERSION
  12284. auto
  12285. # else
  12286. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  12287. const void * const &,
  12288. VULKAN_HPP_NAMESPACE::Buffer const &,
  12289. VULKAN_HPP_NAMESPACE::DeviceSize const &,
  12290. VULKAN_HPP_NAMESPACE::ConditionalRenderingFlagsEXT const &>
  12291. # endif
  12292. reflect() const VULKAN_HPP_NOEXCEPT
  12293. {
  12294. return std::tie( sType, pNext, buffer, offset, flags );
  12295. }
  12296. #endif
  12297. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  12298. auto operator<=>( ConditionalRenderingBeginInfoEXT const & ) const = default;
  12299. #else
  12300. bool operator==( ConditionalRenderingBeginInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  12301. {
  12302. # if defined( VULKAN_HPP_USE_REFLECT )
  12303. return this->reflect() == rhs.reflect();
  12304. # else
  12305. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( buffer == rhs.buffer ) && ( offset == rhs.offset ) && ( flags == rhs.flags );
  12306. # endif
  12307. }
  12308. bool operator!=( ConditionalRenderingBeginInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  12309. {
  12310. return !operator==( rhs );
  12311. }
  12312. #endif
  12313. public:
  12314. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eConditionalRenderingBeginInfoEXT;
  12315. const void * pNext = {};
  12316. VULKAN_HPP_NAMESPACE::Buffer buffer = {};
  12317. VULKAN_HPP_NAMESPACE::DeviceSize offset = {};
  12318. VULKAN_HPP_NAMESPACE::ConditionalRenderingFlagsEXT flags = {};
  12319. };
  12320. template <>
  12321. struct CppType<StructureType, StructureType::eConditionalRenderingBeginInfoEXT>
  12322. {
  12323. using Type = ConditionalRenderingBeginInfoEXT;
  12324. };
  12325. struct ConformanceVersion
  12326. {
  12327. using NativeType = VkConformanceVersion;
  12328. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  12329. VULKAN_HPP_CONSTEXPR ConformanceVersion( uint8_t major_ = {}, uint8_t minor_ = {}, uint8_t subminor_ = {}, uint8_t patch_ = {} ) VULKAN_HPP_NOEXCEPT
  12330. : major( major_ )
  12331. , minor( minor_ )
  12332. , subminor( subminor_ )
  12333. , patch( patch_ )
  12334. {
  12335. }
  12336. VULKAN_HPP_CONSTEXPR ConformanceVersion( ConformanceVersion const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  12337. ConformanceVersion( VkConformanceVersion const & rhs ) VULKAN_HPP_NOEXCEPT : ConformanceVersion( *reinterpret_cast<ConformanceVersion const *>( &rhs ) ) {}
  12338. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  12339. ConformanceVersion & operator=( ConformanceVersion const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  12340. ConformanceVersion & operator=( VkConformanceVersion const & rhs ) VULKAN_HPP_NOEXCEPT
  12341. {
  12342. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ConformanceVersion const *>( &rhs );
  12343. return *this;
  12344. }
  12345. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  12346. VULKAN_HPP_CONSTEXPR_14 ConformanceVersion & setMajor( uint8_t major_ ) VULKAN_HPP_NOEXCEPT
  12347. {
  12348. major = major_;
  12349. return *this;
  12350. }
  12351. VULKAN_HPP_CONSTEXPR_14 ConformanceVersion & setMinor( uint8_t minor_ ) VULKAN_HPP_NOEXCEPT
  12352. {
  12353. minor = minor_;
  12354. return *this;
  12355. }
  12356. VULKAN_HPP_CONSTEXPR_14 ConformanceVersion & setSubminor( uint8_t subminor_ ) VULKAN_HPP_NOEXCEPT
  12357. {
  12358. subminor = subminor_;
  12359. return *this;
  12360. }
  12361. VULKAN_HPP_CONSTEXPR_14 ConformanceVersion & setPatch( uint8_t patch_ ) VULKAN_HPP_NOEXCEPT
  12362. {
  12363. patch = patch_;
  12364. return *this;
  12365. }
  12366. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  12367. operator VkConformanceVersion const &() const VULKAN_HPP_NOEXCEPT
  12368. {
  12369. return *reinterpret_cast<const VkConformanceVersion *>( this );
  12370. }
  12371. operator VkConformanceVersion &() VULKAN_HPP_NOEXCEPT
  12372. {
  12373. return *reinterpret_cast<VkConformanceVersion *>( this );
  12374. }
  12375. #if defined( VULKAN_HPP_USE_REFLECT )
  12376. # if 14 <= VULKAN_HPP_CPP_VERSION
  12377. auto
  12378. # else
  12379. std::tuple<uint8_t const &, uint8_t const &, uint8_t const &, uint8_t const &>
  12380. # endif
  12381. reflect() const VULKAN_HPP_NOEXCEPT
  12382. {
  12383. return std::tie( major, minor, subminor, patch );
  12384. }
  12385. #endif
  12386. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  12387. auto operator<=>( ConformanceVersion const & ) const = default;
  12388. #else
  12389. bool operator==( ConformanceVersion const & rhs ) const VULKAN_HPP_NOEXCEPT
  12390. {
  12391. # if defined( VULKAN_HPP_USE_REFLECT )
  12392. return this->reflect() == rhs.reflect();
  12393. # else
  12394. return ( major == rhs.major ) && ( minor == rhs.minor ) && ( subminor == rhs.subminor ) && ( patch == rhs.patch );
  12395. # endif
  12396. }
  12397. bool operator!=( ConformanceVersion const & rhs ) const VULKAN_HPP_NOEXCEPT
  12398. {
  12399. return !operator==( rhs );
  12400. }
  12401. #endif
  12402. public:
  12403. uint8_t major = {};
  12404. uint8_t minor = {};
  12405. uint8_t subminor = {};
  12406. uint8_t patch = {};
  12407. };
  12408. using ConformanceVersionKHR = ConformanceVersion;
  12409. struct CooperativeMatrixPropertiesNV
  12410. {
  12411. using NativeType = VkCooperativeMatrixPropertiesNV;
  12412. static const bool allowDuplicate = false;
  12413. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eCooperativeMatrixPropertiesNV;
  12414. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  12415. VULKAN_HPP_CONSTEXPR CooperativeMatrixPropertiesNV( uint32_t MSize_ = {},
  12416. uint32_t NSize_ = {},
  12417. uint32_t KSize_ = {},
  12418. VULKAN_HPP_NAMESPACE::ComponentTypeNV AType_ = VULKAN_HPP_NAMESPACE::ComponentTypeNV::eFloat16,
  12419. VULKAN_HPP_NAMESPACE::ComponentTypeNV BType_ = VULKAN_HPP_NAMESPACE::ComponentTypeNV::eFloat16,
  12420. VULKAN_HPP_NAMESPACE::ComponentTypeNV CType_ = VULKAN_HPP_NAMESPACE::ComponentTypeNV::eFloat16,
  12421. VULKAN_HPP_NAMESPACE::ComponentTypeNV DType_ = VULKAN_HPP_NAMESPACE::ComponentTypeNV::eFloat16,
  12422. VULKAN_HPP_NAMESPACE::ScopeNV scope_ = VULKAN_HPP_NAMESPACE::ScopeNV::eDevice,
  12423. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  12424. : pNext( pNext_ )
  12425. , MSize( MSize_ )
  12426. , NSize( NSize_ )
  12427. , KSize( KSize_ )
  12428. , AType( AType_ )
  12429. , BType( BType_ )
  12430. , CType( CType_ )
  12431. , DType( DType_ )
  12432. , scope( scope_ )
  12433. {
  12434. }
  12435. VULKAN_HPP_CONSTEXPR CooperativeMatrixPropertiesNV( CooperativeMatrixPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  12436. CooperativeMatrixPropertiesNV( VkCooperativeMatrixPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT
  12437. : CooperativeMatrixPropertiesNV( *reinterpret_cast<CooperativeMatrixPropertiesNV const *>( &rhs ) )
  12438. {
  12439. }
  12440. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  12441. CooperativeMatrixPropertiesNV & operator=( CooperativeMatrixPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  12442. CooperativeMatrixPropertiesNV & operator=( VkCooperativeMatrixPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT
  12443. {
  12444. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::CooperativeMatrixPropertiesNV const *>( &rhs );
  12445. return *this;
  12446. }
  12447. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  12448. VULKAN_HPP_CONSTEXPR_14 CooperativeMatrixPropertiesNV & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
  12449. {
  12450. pNext = pNext_;
  12451. return *this;
  12452. }
  12453. VULKAN_HPP_CONSTEXPR_14 CooperativeMatrixPropertiesNV & setMSize( uint32_t MSize_ ) VULKAN_HPP_NOEXCEPT
  12454. {
  12455. MSize = MSize_;
  12456. return *this;
  12457. }
  12458. VULKAN_HPP_CONSTEXPR_14 CooperativeMatrixPropertiesNV & setNSize( uint32_t NSize_ ) VULKAN_HPP_NOEXCEPT
  12459. {
  12460. NSize = NSize_;
  12461. return *this;
  12462. }
  12463. VULKAN_HPP_CONSTEXPR_14 CooperativeMatrixPropertiesNV & setKSize( uint32_t KSize_ ) VULKAN_HPP_NOEXCEPT
  12464. {
  12465. KSize = KSize_;
  12466. return *this;
  12467. }
  12468. VULKAN_HPP_CONSTEXPR_14 CooperativeMatrixPropertiesNV & setAType( VULKAN_HPP_NAMESPACE::ComponentTypeNV AType_ ) VULKAN_HPP_NOEXCEPT
  12469. {
  12470. AType = AType_;
  12471. return *this;
  12472. }
  12473. VULKAN_HPP_CONSTEXPR_14 CooperativeMatrixPropertiesNV & setBType( VULKAN_HPP_NAMESPACE::ComponentTypeNV BType_ ) VULKAN_HPP_NOEXCEPT
  12474. {
  12475. BType = BType_;
  12476. return *this;
  12477. }
  12478. VULKAN_HPP_CONSTEXPR_14 CooperativeMatrixPropertiesNV & setCType( VULKAN_HPP_NAMESPACE::ComponentTypeNV CType_ ) VULKAN_HPP_NOEXCEPT
  12479. {
  12480. CType = CType_;
  12481. return *this;
  12482. }
  12483. VULKAN_HPP_CONSTEXPR_14 CooperativeMatrixPropertiesNV & setDType( VULKAN_HPP_NAMESPACE::ComponentTypeNV DType_ ) VULKAN_HPP_NOEXCEPT
  12484. {
  12485. DType = DType_;
  12486. return *this;
  12487. }
  12488. VULKAN_HPP_CONSTEXPR_14 CooperativeMatrixPropertiesNV & setScope( VULKAN_HPP_NAMESPACE::ScopeNV scope_ ) VULKAN_HPP_NOEXCEPT
  12489. {
  12490. scope = scope_;
  12491. return *this;
  12492. }
  12493. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  12494. operator VkCooperativeMatrixPropertiesNV const &() const VULKAN_HPP_NOEXCEPT
  12495. {
  12496. return *reinterpret_cast<const VkCooperativeMatrixPropertiesNV *>( this );
  12497. }
  12498. operator VkCooperativeMatrixPropertiesNV &() VULKAN_HPP_NOEXCEPT
  12499. {
  12500. return *reinterpret_cast<VkCooperativeMatrixPropertiesNV *>( this );
  12501. }
  12502. #if defined( VULKAN_HPP_USE_REFLECT )
  12503. # if 14 <= VULKAN_HPP_CPP_VERSION
  12504. auto
  12505. # else
  12506. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  12507. void * const &,
  12508. uint32_t const &,
  12509. uint32_t const &,
  12510. uint32_t const &,
  12511. VULKAN_HPP_NAMESPACE::ComponentTypeNV const &,
  12512. VULKAN_HPP_NAMESPACE::ComponentTypeNV const &,
  12513. VULKAN_HPP_NAMESPACE::ComponentTypeNV const &,
  12514. VULKAN_HPP_NAMESPACE::ComponentTypeNV const &,
  12515. VULKAN_HPP_NAMESPACE::ScopeNV const &>
  12516. # endif
  12517. reflect() const VULKAN_HPP_NOEXCEPT
  12518. {
  12519. return std::tie( sType, pNext, MSize, NSize, KSize, AType, BType, CType, DType, scope );
  12520. }
  12521. #endif
  12522. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  12523. auto operator<=>( CooperativeMatrixPropertiesNV const & ) const = default;
  12524. #else
  12525. bool operator==( CooperativeMatrixPropertiesNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  12526. {
  12527. # if defined( VULKAN_HPP_USE_REFLECT )
  12528. return this->reflect() == rhs.reflect();
  12529. # else
  12530. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( MSize == rhs.MSize ) && ( NSize == rhs.NSize ) && ( KSize == rhs.KSize ) &&
  12531. ( AType == rhs.AType ) && ( BType == rhs.BType ) && ( CType == rhs.CType ) && ( DType == rhs.DType ) && ( scope == rhs.scope );
  12532. # endif
  12533. }
  12534. bool operator!=( CooperativeMatrixPropertiesNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  12535. {
  12536. return !operator==( rhs );
  12537. }
  12538. #endif
  12539. public:
  12540. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eCooperativeMatrixPropertiesNV;
  12541. void * pNext = {};
  12542. uint32_t MSize = {};
  12543. uint32_t NSize = {};
  12544. uint32_t KSize = {};
  12545. VULKAN_HPP_NAMESPACE::ComponentTypeNV AType = VULKAN_HPP_NAMESPACE::ComponentTypeNV::eFloat16;
  12546. VULKAN_HPP_NAMESPACE::ComponentTypeNV BType = VULKAN_HPP_NAMESPACE::ComponentTypeNV::eFloat16;
  12547. VULKAN_HPP_NAMESPACE::ComponentTypeNV CType = VULKAN_HPP_NAMESPACE::ComponentTypeNV::eFloat16;
  12548. VULKAN_HPP_NAMESPACE::ComponentTypeNV DType = VULKAN_HPP_NAMESPACE::ComponentTypeNV::eFloat16;
  12549. VULKAN_HPP_NAMESPACE::ScopeNV scope = VULKAN_HPP_NAMESPACE::ScopeNV::eDevice;
  12550. };
  12551. template <>
  12552. struct CppType<StructureType, StructureType::eCooperativeMatrixPropertiesNV>
  12553. {
  12554. using Type = CooperativeMatrixPropertiesNV;
  12555. };
  12556. struct CopyAccelerationStructureInfoKHR
  12557. {
  12558. using NativeType = VkCopyAccelerationStructureInfoKHR;
  12559. static const bool allowDuplicate = false;
  12560. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eCopyAccelerationStructureInfoKHR;
  12561. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  12562. VULKAN_HPP_CONSTEXPR CopyAccelerationStructureInfoKHR(
  12563. VULKAN_HPP_NAMESPACE::AccelerationStructureKHR src_ = {},
  12564. VULKAN_HPP_NAMESPACE::AccelerationStructureKHR dst_ = {},
  12565. VULKAN_HPP_NAMESPACE::CopyAccelerationStructureModeKHR mode_ = VULKAN_HPP_NAMESPACE::CopyAccelerationStructureModeKHR::eClone,
  12566. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  12567. : pNext( pNext_ )
  12568. , src( src_ )
  12569. , dst( dst_ )
  12570. , mode( mode_ )
  12571. {
  12572. }
  12573. VULKAN_HPP_CONSTEXPR CopyAccelerationStructureInfoKHR( CopyAccelerationStructureInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  12574. CopyAccelerationStructureInfoKHR( VkCopyAccelerationStructureInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  12575. : CopyAccelerationStructureInfoKHR( *reinterpret_cast<CopyAccelerationStructureInfoKHR const *>( &rhs ) )
  12576. {
  12577. }
  12578. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  12579. CopyAccelerationStructureInfoKHR & operator=( CopyAccelerationStructureInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  12580. CopyAccelerationStructureInfoKHR & operator=( VkCopyAccelerationStructureInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  12581. {
  12582. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::CopyAccelerationStructureInfoKHR const *>( &rhs );
  12583. return *this;
  12584. }
  12585. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  12586. VULKAN_HPP_CONSTEXPR_14 CopyAccelerationStructureInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  12587. {
  12588. pNext = pNext_;
  12589. return *this;
  12590. }
  12591. VULKAN_HPP_CONSTEXPR_14 CopyAccelerationStructureInfoKHR & setSrc( VULKAN_HPP_NAMESPACE::AccelerationStructureKHR src_ ) VULKAN_HPP_NOEXCEPT
  12592. {
  12593. src = src_;
  12594. return *this;
  12595. }
  12596. VULKAN_HPP_CONSTEXPR_14 CopyAccelerationStructureInfoKHR & setDst( VULKAN_HPP_NAMESPACE::AccelerationStructureKHR dst_ ) VULKAN_HPP_NOEXCEPT
  12597. {
  12598. dst = dst_;
  12599. return *this;
  12600. }
  12601. VULKAN_HPP_CONSTEXPR_14 CopyAccelerationStructureInfoKHR & setMode( VULKAN_HPP_NAMESPACE::CopyAccelerationStructureModeKHR mode_ ) VULKAN_HPP_NOEXCEPT
  12602. {
  12603. mode = mode_;
  12604. return *this;
  12605. }
  12606. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  12607. operator VkCopyAccelerationStructureInfoKHR const &() const VULKAN_HPP_NOEXCEPT
  12608. {
  12609. return *reinterpret_cast<const VkCopyAccelerationStructureInfoKHR *>( this );
  12610. }
  12611. operator VkCopyAccelerationStructureInfoKHR &() VULKAN_HPP_NOEXCEPT
  12612. {
  12613. return *reinterpret_cast<VkCopyAccelerationStructureInfoKHR *>( this );
  12614. }
  12615. #if defined( VULKAN_HPP_USE_REFLECT )
  12616. # if 14 <= VULKAN_HPP_CPP_VERSION
  12617. auto
  12618. # else
  12619. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  12620. const void * const &,
  12621. VULKAN_HPP_NAMESPACE::AccelerationStructureKHR const &,
  12622. VULKAN_HPP_NAMESPACE::AccelerationStructureKHR const &,
  12623. VULKAN_HPP_NAMESPACE::CopyAccelerationStructureModeKHR const &>
  12624. # endif
  12625. reflect() const VULKAN_HPP_NOEXCEPT
  12626. {
  12627. return std::tie( sType, pNext, src, dst, mode );
  12628. }
  12629. #endif
  12630. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  12631. auto operator<=>( CopyAccelerationStructureInfoKHR const & ) const = default;
  12632. #else
  12633. bool operator==( CopyAccelerationStructureInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  12634. {
  12635. # if defined( VULKAN_HPP_USE_REFLECT )
  12636. return this->reflect() == rhs.reflect();
  12637. # else
  12638. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( src == rhs.src ) && ( dst == rhs.dst ) && ( mode == rhs.mode );
  12639. # endif
  12640. }
  12641. bool operator!=( CopyAccelerationStructureInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  12642. {
  12643. return !operator==( rhs );
  12644. }
  12645. #endif
  12646. public:
  12647. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eCopyAccelerationStructureInfoKHR;
  12648. const void * pNext = {};
  12649. VULKAN_HPP_NAMESPACE::AccelerationStructureKHR src = {};
  12650. VULKAN_HPP_NAMESPACE::AccelerationStructureKHR dst = {};
  12651. VULKAN_HPP_NAMESPACE::CopyAccelerationStructureModeKHR mode = VULKAN_HPP_NAMESPACE::CopyAccelerationStructureModeKHR::eClone;
  12652. };
  12653. template <>
  12654. struct CppType<StructureType, StructureType::eCopyAccelerationStructureInfoKHR>
  12655. {
  12656. using Type = CopyAccelerationStructureInfoKHR;
  12657. };
  12658. struct CopyAccelerationStructureToMemoryInfoKHR
  12659. {
  12660. using NativeType = VkCopyAccelerationStructureToMemoryInfoKHR;
  12661. static const bool allowDuplicate = false;
  12662. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eCopyAccelerationStructureToMemoryInfoKHR;
  12663. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  12664. VULKAN_HPP_CONSTEXPR_14 CopyAccelerationStructureToMemoryInfoKHR(
  12665. VULKAN_HPP_NAMESPACE::AccelerationStructureKHR src_ = {},
  12666. VULKAN_HPP_NAMESPACE::DeviceOrHostAddressKHR dst_ = {},
  12667. VULKAN_HPP_NAMESPACE::CopyAccelerationStructureModeKHR mode_ = VULKAN_HPP_NAMESPACE::CopyAccelerationStructureModeKHR::eClone,
  12668. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  12669. : pNext( pNext_ )
  12670. , src( src_ )
  12671. , dst( dst_ )
  12672. , mode( mode_ )
  12673. {
  12674. }
  12675. VULKAN_HPP_CONSTEXPR_14 CopyAccelerationStructureToMemoryInfoKHR( CopyAccelerationStructureToMemoryInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  12676. CopyAccelerationStructureToMemoryInfoKHR( VkCopyAccelerationStructureToMemoryInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  12677. : CopyAccelerationStructureToMemoryInfoKHR( *reinterpret_cast<CopyAccelerationStructureToMemoryInfoKHR const *>( &rhs ) )
  12678. {
  12679. }
  12680. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  12681. CopyAccelerationStructureToMemoryInfoKHR & operator=( CopyAccelerationStructureToMemoryInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  12682. CopyAccelerationStructureToMemoryInfoKHR & operator=( VkCopyAccelerationStructureToMemoryInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  12683. {
  12684. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::CopyAccelerationStructureToMemoryInfoKHR const *>( &rhs );
  12685. return *this;
  12686. }
  12687. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  12688. VULKAN_HPP_CONSTEXPR_14 CopyAccelerationStructureToMemoryInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  12689. {
  12690. pNext = pNext_;
  12691. return *this;
  12692. }
  12693. VULKAN_HPP_CONSTEXPR_14 CopyAccelerationStructureToMemoryInfoKHR & setSrc( VULKAN_HPP_NAMESPACE::AccelerationStructureKHR src_ ) VULKAN_HPP_NOEXCEPT
  12694. {
  12695. src = src_;
  12696. return *this;
  12697. }
  12698. VULKAN_HPP_CONSTEXPR_14 CopyAccelerationStructureToMemoryInfoKHR & setDst( VULKAN_HPP_NAMESPACE::DeviceOrHostAddressKHR const & dst_ ) VULKAN_HPP_NOEXCEPT
  12699. {
  12700. dst = dst_;
  12701. return *this;
  12702. }
  12703. VULKAN_HPP_CONSTEXPR_14 CopyAccelerationStructureToMemoryInfoKHR &
  12704. setMode( VULKAN_HPP_NAMESPACE::CopyAccelerationStructureModeKHR mode_ ) VULKAN_HPP_NOEXCEPT
  12705. {
  12706. mode = mode_;
  12707. return *this;
  12708. }
  12709. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  12710. operator VkCopyAccelerationStructureToMemoryInfoKHR const &() const VULKAN_HPP_NOEXCEPT
  12711. {
  12712. return *reinterpret_cast<const VkCopyAccelerationStructureToMemoryInfoKHR *>( this );
  12713. }
  12714. operator VkCopyAccelerationStructureToMemoryInfoKHR &() VULKAN_HPP_NOEXCEPT
  12715. {
  12716. return *reinterpret_cast<VkCopyAccelerationStructureToMemoryInfoKHR *>( this );
  12717. }
  12718. #if defined( VULKAN_HPP_USE_REFLECT )
  12719. # if 14 <= VULKAN_HPP_CPP_VERSION
  12720. auto
  12721. # else
  12722. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  12723. const void * const &,
  12724. VULKAN_HPP_NAMESPACE::AccelerationStructureKHR const &,
  12725. VULKAN_HPP_NAMESPACE::DeviceOrHostAddressKHR const &,
  12726. VULKAN_HPP_NAMESPACE::CopyAccelerationStructureModeKHR const &>
  12727. # endif
  12728. reflect() const VULKAN_HPP_NOEXCEPT
  12729. {
  12730. return std::tie( sType, pNext, src, dst, mode );
  12731. }
  12732. #endif
  12733. public:
  12734. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eCopyAccelerationStructureToMemoryInfoKHR;
  12735. const void * pNext = {};
  12736. VULKAN_HPP_NAMESPACE::AccelerationStructureKHR src = {};
  12737. VULKAN_HPP_NAMESPACE::DeviceOrHostAddressKHR dst = {};
  12738. VULKAN_HPP_NAMESPACE::CopyAccelerationStructureModeKHR mode = VULKAN_HPP_NAMESPACE::CopyAccelerationStructureModeKHR::eClone;
  12739. };
  12740. template <>
  12741. struct CppType<StructureType, StructureType::eCopyAccelerationStructureToMemoryInfoKHR>
  12742. {
  12743. using Type = CopyAccelerationStructureToMemoryInfoKHR;
  12744. };
  12745. struct CopyBufferInfo2
  12746. {
  12747. using NativeType = VkCopyBufferInfo2;
  12748. static const bool allowDuplicate = false;
  12749. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eCopyBufferInfo2;
  12750. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  12751. VULKAN_HPP_CONSTEXPR CopyBufferInfo2( VULKAN_HPP_NAMESPACE::Buffer srcBuffer_ = {},
  12752. VULKAN_HPP_NAMESPACE::Buffer dstBuffer_ = {},
  12753. uint32_t regionCount_ = {},
  12754. const VULKAN_HPP_NAMESPACE::BufferCopy2 * pRegions_ = {},
  12755. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  12756. : pNext( pNext_ )
  12757. , srcBuffer( srcBuffer_ )
  12758. , dstBuffer( dstBuffer_ )
  12759. , regionCount( regionCount_ )
  12760. , pRegions( pRegions_ )
  12761. {
  12762. }
  12763. VULKAN_HPP_CONSTEXPR CopyBufferInfo2( CopyBufferInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  12764. CopyBufferInfo2( VkCopyBufferInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT : CopyBufferInfo2( *reinterpret_cast<CopyBufferInfo2 const *>( &rhs ) ) {}
  12765. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  12766. CopyBufferInfo2( VULKAN_HPP_NAMESPACE::Buffer srcBuffer_,
  12767. VULKAN_HPP_NAMESPACE::Buffer dstBuffer_,
  12768. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::BufferCopy2> const & regions_,
  12769. const void * pNext_ = nullptr )
  12770. : pNext( pNext_ ), srcBuffer( srcBuffer_ ), dstBuffer( dstBuffer_ ), regionCount( static_cast<uint32_t>( regions_.size() ) ), pRegions( regions_.data() )
  12771. {
  12772. }
  12773. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  12774. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  12775. CopyBufferInfo2 & operator=( CopyBufferInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  12776. CopyBufferInfo2 & operator=( VkCopyBufferInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT
  12777. {
  12778. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::CopyBufferInfo2 const *>( &rhs );
  12779. return *this;
  12780. }
  12781. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  12782. VULKAN_HPP_CONSTEXPR_14 CopyBufferInfo2 & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  12783. {
  12784. pNext = pNext_;
  12785. return *this;
  12786. }
  12787. VULKAN_HPP_CONSTEXPR_14 CopyBufferInfo2 & setSrcBuffer( VULKAN_HPP_NAMESPACE::Buffer srcBuffer_ ) VULKAN_HPP_NOEXCEPT
  12788. {
  12789. srcBuffer = srcBuffer_;
  12790. return *this;
  12791. }
  12792. VULKAN_HPP_CONSTEXPR_14 CopyBufferInfo2 & setDstBuffer( VULKAN_HPP_NAMESPACE::Buffer dstBuffer_ ) VULKAN_HPP_NOEXCEPT
  12793. {
  12794. dstBuffer = dstBuffer_;
  12795. return *this;
  12796. }
  12797. VULKAN_HPP_CONSTEXPR_14 CopyBufferInfo2 & setRegionCount( uint32_t regionCount_ ) VULKAN_HPP_NOEXCEPT
  12798. {
  12799. regionCount = regionCount_;
  12800. return *this;
  12801. }
  12802. VULKAN_HPP_CONSTEXPR_14 CopyBufferInfo2 & setPRegions( const VULKAN_HPP_NAMESPACE::BufferCopy2 * pRegions_ ) VULKAN_HPP_NOEXCEPT
  12803. {
  12804. pRegions = pRegions_;
  12805. return *this;
  12806. }
  12807. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  12808. CopyBufferInfo2 & setRegions( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::BufferCopy2> const & regions_ ) VULKAN_HPP_NOEXCEPT
  12809. {
  12810. regionCount = static_cast<uint32_t>( regions_.size() );
  12811. pRegions = regions_.data();
  12812. return *this;
  12813. }
  12814. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  12815. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  12816. operator VkCopyBufferInfo2 const &() const VULKAN_HPP_NOEXCEPT
  12817. {
  12818. return *reinterpret_cast<const VkCopyBufferInfo2 *>( this );
  12819. }
  12820. operator VkCopyBufferInfo2 &() VULKAN_HPP_NOEXCEPT
  12821. {
  12822. return *reinterpret_cast<VkCopyBufferInfo2 *>( this );
  12823. }
  12824. #if defined( VULKAN_HPP_USE_REFLECT )
  12825. # if 14 <= VULKAN_HPP_CPP_VERSION
  12826. auto
  12827. # else
  12828. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  12829. const void * const &,
  12830. VULKAN_HPP_NAMESPACE::Buffer const &,
  12831. VULKAN_HPP_NAMESPACE::Buffer const &,
  12832. uint32_t const &,
  12833. const VULKAN_HPP_NAMESPACE::BufferCopy2 * const &>
  12834. # endif
  12835. reflect() const VULKAN_HPP_NOEXCEPT
  12836. {
  12837. return std::tie( sType, pNext, srcBuffer, dstBuffer, regionCount, pRegions );
  12838. }
  12839. #endif
  12840. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  12841. auto operator<=>( CopyBufferInfo2 const & ) const = default;
  12842. #else
  12843. bool operator==( CopyBufferInfo2 const & rhs ) const VULKAN_HPP_NOEXCEPT
  12844. {
  12845. # if defined( VULKAN_HPP_USE_REFLECT )
  12846. return this->reflect() == rhs.reflect();
  12847. # else
  12848. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( srcBuffer == rhs.srcBuffer ) && ( dstBuffer == rhs.dstBuffer ) &&
  12849. ( regionCount == rhs.regionCount ) && ( pRegions == rhs.pRegions );
  12850. # endif
  12851. }
  12852. bool operator!=( CopyBufferInfo2 const & rhs ) const VULKAN_HPP_NOEXCEPT
  12853. {
  12854. return !operator==( rhs );
  12855. }
  12856. #endif
  12857. public:
  12858. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eCopyBufferInfo2;
  12859. const void * pNext = {};
  12860. VULKAN_HPP_NAMESPACE::Buffer srcBuffer = {};
  12861. VULKAN_HPP_NAMESPACE::Buffer dstBuffer = {};
  12862. uint32_t regionCount = {};
  12863. const VULKAN_HPP_NAMESPACE::BufferCopy2 * pRegions = {};
  12864. };
  12865. template <>
  12866. struct CppType<StructureType, StructureType::eCopyBufferInfo2>
  12867. {
  12868. using Type = CopyBufferInfo2;
  12869. };
  12870. using CopyBufferInfo2KHR = CopyBufferInfo2;
  12871. struct CopyBufferToImageInfo2
  12872. {
  12873. using NativeType = VkCopyBufferToImageInfo2;
  12874. static const bool allowDuplicate = false;
  12875. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eCopyBufferToImageInfo2;
  12876. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  12877. VULKAN_HPP_CONSTEXPR CopyBufferToImageInfo2( VULKAN_HPP_NAMESPACE::Buffer srcBuffer_ = {},
  12878. VULKAN_HPP_NAMESPACE::Image dstImage_ = {},
  12879. VULKAN_HPP_NAMESPACE::ImageLayout dstImageLayout_ = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined,
  12880. uint32_t regionCount_ = {},
  12881. const VULKAN_HPP_NAMESPACE::BufferImageCopy2 * pRegions_ = {},
  12882. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  12883. : pNext( pNext_ )
  12884. , srcBuffer( srcBuffer_ )
  12885. , dstImage( dstImage_ )
  12886. , dstImageLayout( dstImageLayout_ )
  12887. , regionCount( regionCount_ )
  12888. , pRegions( pRegions_ )
  12889. {
  12890. }
  12891. VULKAN_HPP_CONSTEXPR CopyBufferToImageInfo2( CopyBufferToImageInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  12892. CopyBufferToImageInfo2( VkCopyBufferToImageInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT
  12893. : CopyBufferToImageInfo2( *reinterpret_cast<CopyBufferToImageInfo2 const *>( &rhs ) )
  12894. {
  12895. }
  12896. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  12897. CopyBufferToImageInfo2( VULKAN_HPP_NAMESPACE::Buffer srcBuffer_,
  12898. VULKAN_HPP_NAMESPACE::Image dstImage_,
  12899. VULKAN_HPP_NAMESPACE::ImageLayout dstImageLayout_,
  12900. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::BufferImageCopy2> const & regions_,
  12901. const void * pNext_ = nullptr )
  12902. : pNext( pNext_ )
  12903. , srcBuffer( srcBuffer_ )
  12904. , dstImage( dstImage_ )
  12905. , dstImageLayout( dstImageLayout_ )
  12906. , regionCount( static_cast<uint32_t>( regions_.size() ) )
  12907. , pRegions( regions_.data() )
  12908. {
  12909. }
  12910. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  12911. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  12912. CopyBufferToImageInfo2 & operator=( CopyBufferToImageInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  12913. CopyBufferToImageInfo2 & operator=( VkCopyBufferToImageInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT
  12914. {
  12915. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::CopyBufferToImageInfo2 const *>( &rhs );
  12916. return *this;
  12917. }
  12918. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  12919. VULKAN_HPP_CONSTEXPR_14 CopyBufferToImageInfo2 & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  12920. {
  12921. pNext = pNext_;
  12922. return *this;
  12923. }
  12924. VULKAN_HPP_CONSTEXPR_14 CopyBufferToImageInfo2 & setSrcBuffer( VULKAN_HPP_NAMESPACE::Buffer srcBuffer_ ) VULKAN_HPP_NOEXCEPT
  12925. {
  12926. srcBuffer = srcBuffer_;
  12927. return *this;
  12928. }
  12929. VULKAN_HPP_CONSTEXPR_14 CopyBufferToImageInfo2 & setDstImage( VULKAN_HPP_NAMESPACE::Image dstImage_ ) VULKAN_HPP_NOEXCEPT
  12930. {
  12931. dstImage = dstImage_;
  12932. return *this;
  12933. }
  12934. VULKAN_HPP_CONSTEXPR_14 CopyBufferToImageInfo2 & setDstImageLayout( VULKAN_HPP_NAMESPACE::ImageLayout dstImageLayout_ ) VULKAN_HPP_NOEXCEPT
  12935. {
  12936. dstImageLayout = dstImageLayout_;
  12937. return *this;
  12938. }
  12939. VULKAN_HPP_CONSTEXPR_14 CopyBufferToImageInfo2 & setRegionCount( uint32_t regionCount_ ) VULKAN_HPP_NOEXCEPT
  12940. {
  12941. regionCount = regionCount_;
  12942. return *this;
  12943. }
  12944. VULKAN_HPP_CONSTEXPR_14 CopyBufferToImageInfo2 & setPRegions( const VULKAN_HPP_NAMESPACE::BufferImageCopy2 * pRegions_ ) VULKAN_HPP_NOEXCEPT
  12945. {
  12946. pRegions = pRegions_;
  12947. return *this;
  12948. }
  12949. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  12950. CopyBufferToImageInfo2 &
  12951. setRegions( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::BufferImageCopy2> const & regions_ ) VULKAN_HPP_NOEXCEPT
  12952. {
  12953. regionCount = static_cast<uint32_t>( regions_.size() );
  12954. pRegions = regions_.data();
  12955. return *this;
  12956. }
  12957. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  12958. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  12959. operator VkCopyBufferToImageInfo2 const &() const VULKAN_HPP_NOEXCEPT
  12960. {
  12961. return *reinterpret_cast<const VkCopyBufferToImageInfo2 *>( this );
  12962. }
  12963. operator VkCopyBufferToImageInfo2 &() VULKAN_HPP_NOEXCEPT
  12964. {
  12965. return *reinterpret_cast<VkCopyBufferToImageInfo2 *>( this );
  12966. }
  12967. #if defined( VULKAN_HPP_USE_REFLECT )
  12968. # if 14 <= VULKAN_HPP_CPP_VERSION
  12969. auto
  12970. # else
  12971. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  12972. const void * const &,
  12973. VULKAN_HPP_NAMESPACE::Buffer const &,
  12974. VULKAN_HPP_NAMESPACE::Image const &,
  12975. VULKAN_HPP_NAMESPACE::ImageLayout const &,
  12976. uint32_t const &,
  12977. const VULKAN_HPP_NAMESPACE::BufferImageCopy2 * const &>
  12978. # endif
  12979. reflect() const VULKAN_HPP_NOEXCEPT
  12980. {
  12981. return std::tie( sType, pNext, srcBuffer, dstImage, dstImageLayout, regionCount, pRegions );
  12982. }
  12983. #endif
  12984. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  12985. auto operator<=>( CopyBufferToImageInfo2 const & ) const = default;
  12986. #else
  12987. bool operator==( CopyBufferToImageInfo2 const & rhs ) const VULKAN_HPP_NOEXCEPT
  12988. {
  12989. # if defined( VULKAN_HPP_USE_REFLECT )
  12990. return this->reflect() == rhs.reflect();
  12991. # else
  12992. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( srcBuffer == rhs.srcBuffer ) && ( dstImage == rhs.dstImage ) &&
  12993. ( dstImageLayout == rhs.dstImageLayout ) && ( regionCount == rhs.regionCount ) && ( pRegions == rhs.pRegions );
  12994. # endif
  12995. }
  12996. bool operator!=( CopyBufferToImageInfo2 const & rhs ) const VULKAN_HPP_NOEXCEPT
  12997. {
  12998. return !operator==( rhs );
  12999. }
  13000. #endif
  13001. public:
  13002. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eCopyBufferToImageInfo2;
  13003. const void * pNext = {};
  13004. VULKAN_HPP_NAMESPACE::Buffer srcBuffer = {};
  13005. VULKAN_HPP_NAMESPACE::Image dstImage = {};
  13006. VULKAN_HPP_NAMESPACE::ImageLayout dstImageLayout = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined;
  13007. uint32_t regionCount = {};
  13008. const VULKAN_HPP_NAMESPACE::BufferImageCopy2 * pRegions = {};
  13009. };
  13010. template <>
  13011. struct CppType<StructureType, StructureType::eCopyBufferToImageInfo2>
  13012. {
  13013. using Type = CopyBufferToImageInfo2;
  13014. };
  13015. using CopyBufferToImageInfo2KHR = CopyBufferToImageInfo2;
  13016. struct CopyCommandTransformInfoQCOM
  13017. {
  13018. using NativeType = VkCopyCommandTransformInfoQCOM;
  13019. static const bool allowDuplicate = false;
  13020. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eCopyCommandTransformInfoQCOM;
  13021. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  13022. VULKAN_HPP_CONSTEXPR
  13023. CopyCommandTransformInfoQCOM( VULKAN_HPP_NAMESPACE::SurfaceTransformFlagBitsKHR transform_ = VULKAN_HPP_NAMESPACE::SurfaceTransformFlagBitsKHR::eIdentity,
  13024. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  13025. : pNext( pNext_ )
  13026. , transform( transform_ )
  13027. {
  13028. }
  13029. VULKAN_HPP_CONSTEXPR CopyCommandTransformInfoQCOM( CopyCommandTransformInfoQCOM const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  13030. CopyCommandTransformInfoQCOM( VkCopyCommandTransformInfoQCOM const & rhs ) VULKAN_HPP_NOEXCEPT
  13031. : CopyCommandTransformInfoQCOM( *reinterpret_cast<CopyCommandTransformInfoQCOM const *>( &rhs ) )
  13032. {
  13033. }
  13034. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  13035. CopyCommandTransformInfoQCOM & operator=( CopyCommandTransformInfoQCOM const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  13036. CopyCommandTransformInfoQCOM & operator=( VkCopyCommandTransformInfoQCOM const & rhs ) VULKAN_HPP_NOEXCEPT
  13037. {
  13038. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::CopyCommandTransformInfoQCOM const *>( &rhs );
  13039. return *this;
  13040. }
  13041. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  13042. VULKAN_HPP_CONSTEXPR_14 CopyCommandTransformInfoQCOM & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  13043. {
  13044. pNext = pNext_;
  13045. return *this;
  13046. }
  13047. VULKAN_HPP_CONSTEXPR_14 CopyCommandTransformInfoQCOM & setTransform( VULKAN_HPP_NAMESPACE::SurfaceTransformFlagBitsKHR transform_ ) VULKAN_HPP_NOEXCEPT
  13048. {
  13049. transform = transform_;
  13050. return *this;
  13051. }
  13052. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  13053. operator VkCopyCommandTransformInfoQCOM const &() const VULKAN_HPP_NOEXCEPT
  13054. {
  13055. return *reinterpret_cast<const VkCopyCommandTransformInfoQCOM *>( this );
  13056. }
  13057. operator VkCopyCommandTransformInfoQCOM &() VULKAN_HPP_NOEXCEPT
  13058. {
  13059. return *reinterpret_cast<VkCopyCommandTransformInfoQCOM *>( this );
  13060. }
  13061. #if defined( VULKAN_HPP_USE_REFLECT )
  13062. # if 14 <= VULKAN_HPP_CPP_VERSION
  13063. auto
  13064. # else
  13065. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::SurfaceTransformFlagBitsKHR const &>
  13066. # endif
  13067. reflect() const VULKAN_HPP_NOEXCEPT
  13068. {
  13069. return std::tie( sType, pNext, transform );
  13070. }
  13071. #endif
  13072. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  13073. auto operator<=>( CopyCommandTransformInfoQCOM const & ) const = default;
  13074. #else
  13075. bool operator==( CopyCommandTransformInfoQCOM const & rhs ) const VULKAN_HPP_NOEXCEPT
  13076. {
  13077. # if defined( VULKAN_HPP_USE_REFLECT )
  13078. return this->reflect() == rhs.reflect();
  13079. # else
  13080. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( transform == rhs.transform );
  13081. # endif
  13082. }
  13083. bool operator!=( CopyCommandTransformInfoQCOM const & rhs ) const VULKAN_HPP_NOEXCEPT
  13084. {
  13085. return !operator==( rhs );
  13086. }
  13087. #endif
  13088. public:
  13089. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eCopyCommandTransformInfoQCOM;
  13090. const void * pNext = {};
  13091. VULKAN_HPP_NAMESPACE::SurfaceTransformFlagBitsKHR transform = VULKAN_HPP_NAMESPACE::SurfaceTransformFlagBitsKHR::eIdentity;
  13092. };
  13093. template <>
  13094. struct CppType<StructureType, StructureType::eCopyCommandTransformInfoQCOM>
  13095. {
  13096. using Type = CopyCommandTransformInfoQCOM;
  13097. };
  13098. struct CopyDescriptorSet
  13099. {
  13100. using NativeType = VkCopyDescriptorSet;
  13101. static const bool allowDuplicate = false;
  13102. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eCopyDescriptorSet;
  13103. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  13104. VULKAN_HPP_CONSTEXPR CopyDescriptorSet( VULKAN_HPP_NAMESPACE::DescriptorSet srcSet_ = {},
  13105. uint32_t srcBinding_ = {},
  13106. uint32_t srcArrayElement_ = {},
  13107. VULKAN_HPP_NAMESPACE::DescriptorSet dstSet_ = {},
  13108. uint32_t dstBinding_ = {},
  13109. uint32_t dstArrayElement_ = {},
  13110. uint32_t descriptorCount_ = {},
  13111. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  13112. : pNext( pNext_ )
  13113. , srcSet( srcSet_ )
  13114. , srcBinding( srcBinding_ )
  13115. , srcArrayElement( srcArrayElement_ )
  13116. , dstSet( dstSet_ )
  13117. , dstBinding( dstBinding_ )
  13118. , dstArrayElement( dstArrayElement_ )
  13119. , descriptorCount( descriptorCount_ )
  13120. {
  13121. }
  13122. VULKAN_HPP_CONSTEXPR CopyDescriptorSet( CopyDescriptorSet const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  13123. CopyDescriptorSet( VkCopyDescriptorSet const & rhs ) VULKAN_HPP_NOEXCEPT : CopyDescriptorSet( *reinterpret_cast<CopyDescriptorSet const *>( &rhs ) ) {}
  13124. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  13125. CopyDescriptorSet & operator=( CopyDescriptorSet const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  13126. CopyDescriptorSet & operator=( VkCopyDescriptorSet const & rhs ) VULKAN_HPP_NOEXCEPT
  13127. {
  13128. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::CopyDescriptorSet const *>( &rhs );
  13129. return *this;
  13130. }
  13131. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  13132. VULKAN_HPP_CONSTEXPR_14 CopyDescriptorSet & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  13133. {
  13134. pNext = pNext_;
  13135. return *this;
  13136. }
  13137. VULKAN_HPP_CONSTEXPR_14 CopyDescriptorSet & setSrcSet( VULKAN_HPP_NAMESPACE::DescriptorSet srcSet_ ) VULKAN_HPP_NOEXCEPT
  13138. {
  13139. srcSet = srcSet_;
  13140. return *this;
  13141. }
  13142. VULKAN_HPP_CONSTEXPR_14 CopyDescriptorSet & setSrcBinding( uint32_t srcBinding_ ) VULKAN_HPP_NOEXCEPT
  13143. {
  13144. srcBinding = srcBinding_;
  13145. return *this;
  13146. }
  13147. VULKAN_HPP_CONSTEXPR_14 CopyDescriptorSet & setSrcArrayElement( uint32_t srcArrayElement_ ) VULKAN_HPP_NOEXCEPT
  13148. {
  13149. srcArrayElement = srcArrayElement_;
  13150. return *this;
  13151. }
  13152. VULKAN_HPP_CONSTEXPR_14 CopyDescriptorSet & setDstSet( VULKAN_HPP_NAMESPACE::DescriptorSet dstSet_ ) VULKAN_HPP_NOEXCEPT
  13153. {
  13154. dstSet = dstSet_;
  13155. return *this;
  13156. }
  13157. VULKAN_HPP_CONSTEXPR_14 CopyDescriptorSet & setDstBinding( uint32_t dstBinding_ ) VULKAN_HPP_NOEXCEPT
  13158. {
  13159. dstBinding = dstBinding_;
  13160. return *this;
  13161. }
  13162. VULKAN_HPP_CONSTEXPR_14 CopyDescriptorSet & setDstArrayElement( uint32_t dstArrayElement_ ) VULKAN_HPP_NOEXCEPT
  13163. {
  13164. dstArrayElement = dstArrayElement_;
  13165. return *this;
  13166. }
  13167. VULKAN_HPP_CONSTEXPR_14 CopyDescriptorSet & setDescriptorCount( uint32_t descriptorCount_ ) VULKAN_HPP_NOEXCEPT
  13168. {
  13169. descriptorCount = descriptorCount_;
  13170. return *this;
  13171. }
  13172. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  13173. operator VkCopyDescriptorSet const &() const VULKAN_HPP_NOEXCEPT
  13174. {
  13175. return *reinterpret_cast<const VkCopyDescriptorSet *>( this );
  13176. }
  13177. operator VkCopyDescriptorSet &() VULKAN_HPP_NOEXCEPT
  13178. {
  13179. return *reinterpret_cast<VkCopyDescriptorSet *>( this );
  13180. }
  13181. #if defined( VULKAN_HPP_USE_REFLECT )
  13182. # if 14 <= VULKAN_HPP_CPP_VERSION
  13183. auto
  13184. # else
  13185. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  13186. const void * const &,
  13187. VULKAN_HPP_NAMESPACE::DescriptorSet const &,
  13188. uint32_t const &,
  13189. uint32_t const &,
  13190. VULKAN_HPP_NAMESPACE::DescriptorSet const &,
  13191. uint32_t const &,
  13192. uint32_t const &,
  13193. uint32_t const &>
  13194. # endif
  13195. reflect() const VULKAN_HPP_NOEXCEPT
  13196. {
  13197. return std::tie( sType, pNext, srcSet, srcBinding, srcArrayElement, dstSet, dstBinding, dstArrayElement, descriptorCount );
  13198. }
  13199. #endif
  13200. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  13201. auto operator<=>( CopyDescriptorSet const & ) const = default;
  13202. #else
  13203. bool operator==( CopyDescriptorSet const & rhs ) const VULKAN_HPP_NOEXCEPT
  13204. {
  13205. # if defined( VULKAN_HPP_USE_REFLECT )
  13206. return this->reflect() == rhs.reflect();
  13207. # else
  13208. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( srcSet == rhs.srcSet ) && ( srcBinding == rhs.srcBinding ) &&
  13209. ( srcArrayElement == rhs.srcArrayElement ) && ( dstSet == rhs.dstSet ) && ( dstBinding == rhs.dstBinding ) &&
  13210. ( dstArrayElement == rhs.dstArrayElement ) && ( descriptorCount == rhs.descriptorCount );
  13211. # endif
  13212. }
  13213. bool operator!=( CopyDescriptorSet const & rhs ) const VULKAN_HPP_NOEXCEPT
  13214. {
  13215. return !operator==( rhs );
  13216. }
  13217. #endif
  13218. public:
  13219. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eCopyDescriptorSet;
  13220. const void * pNext = {};
  13221. VULKAN_HPP_NAMESPACE::DescriptorSet srcSet = {};
  13222. uint32_t srcBinding = {};
  13223. uint32_t srcArrayElement = {};
  13224. VULKAN_HPP_NAMESPACE::DescriptorSet dstSet = {};
  13225. uint32_t dstBinding = {};
  13226. uint32_t dstArrayElement = {};
  13227. uint32_t descriptorCount = {};
  13228. };
  13229. template <>
  13230. struct CppType<StructureType, StructureType::eCopyDescriptorSet>
  13231. {
  13232. using Type = CopyDescriptorSet;
  13233. };
  13234. struct ImageCopy2
  13235. {
  13236. using NativeType = VkImageCopy2;
  13237. static const bool allowDuplicate = false;
  13238. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eImageCopy2;
  13239. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  13240. VULKAN_HPP_CONSTEXPR ImageCopy2( VULKAN_HPP_NAMESPACE::ImageSubresourceLayers srcSubresource_ = {},
  13241. VULKAN_HPP_NAMESPACE::Offset3D srcOffset_ = {},
  13242. VULKAN_HPP_NAMESPACE::ImageSubresourceLayers dstSubresource_ = {},
  13243. VULKAN_HPP_NAMESPACE::Offset3D dstOffset_ = {},
  13244. VULKAN_HPP_NAMESPACE::Extent3D extent_ = {},
  13245. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  13246. : pNext( pNext_ )
  13247. , srcSubresource( srcSubresource_ )
  13248. , srcOffset( srcOffset_ )
  13249. , dstSubresource( dstSubresource_ )
  13250. , dstOffset( dstOffset_ )
  13251. , extent( extent_ )
  13252. {
  13253. }
  13254. VULKAN_HPP_CONSTEXPR ImageCopy2( ImageCopy2 const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  13255. ImageCopy2( VkImageCopy2 const & rhs ) VULKAN_HPP_NOEXCEPT : ImageCopy2( *reinterpret_cast<ImageCopy2 const *>( &rhs ) ) {}
  13256. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  13257. ImageCopy2 & operator=( ImageCopy2 const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  13258. ImageCopy2 & operator=( VkImageCopy2 const & rhs ) VULKAN_HPP_NOEXCEPT
  13259. {
  13260. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ImageCopy2 const *>( &rhs );
  13261. return *this;
  13262. }
  13263. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  13264. VULKAN_HPP_CONSTEXPR_14 ImageCopy2 & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  13265. {
  13266. pNext = pNext_;
  13267. return *this;
  13268. }
  13269. VULKAN_HPP_CONSTEXPR_14 ImageCopy2 & setSrcSubresource( VULKAN_HPP_NAMESPACE::ImageSubresourceLayers const & srcSubresource_ ) VULKAN_HPP_NOEXCEPT
  13270. {
  13271. srcSubresource = srcSubresource_;
  13272. return *this;
  13273. }
  13274. VULKAN_HPP_CONSTEXPR_14 ImageCopy2 & setSrcOffset( VULKAN_HPP_NAMESPACE::Offset3D const & srcOffset_ ) VULKAN_HPP_NOEXCEPT
  13275. {
  13276. srcOffset = srcOffset_;
  13277. return *this;
  13278. }
  13279. VULKAN_HPP_CONSTEXPR_14 ImageCopy2 & setDstSubresource( VULKAN_HPP_NAMESPACE::ImageSubresourceLayers const & dstSubresource_ ) VULKAN_HPP_NOEXCEPT
  13280. {
  13281. dstSubresource = dstSubresource_;
  13282. return *this;
  13283. }
  13284. VULKAN_HPP_CONSTEXPR_14 ImageCopy2 & setDstOffset( VULKAN_HPP_NAMESPACE::Offset3D const & dstOffset_ ) VULKAN_HPP_NOEXCEPT
  13285. {
  13286. dstOffset = dstOffset_;
  13287. return *this;
  13288. }
  13289. VULKAN_HPP_CONSTEXPR_14 ImageCopy2 & setExtent( VULKAN_HPP_NAMESPACE::Extent3D const & extent_ ) VULKAN_HPP_NOEXCEPT
  13290. {
  13291. extent = extent_;
  13292. return *this;
  13293. }
  13294. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  13295. operator VkImageCopy2 const &() const VULKAN_HPP_NOEXCEPT
  13296. {
  13297. return *reinterpret_cast<const VkImageCopy2 *>( this );
  13298. }
  13299. operator VkImageCopy2 &() VULKAN_HPP_NOEXCEPT
  13300. {
  13301. return *reinterpret_cast<VkImageCopy2 *>( this );
  13302. }
  13303. #if defined( VULKAN_HPP_USE_REFLECT )
  13304. # if 14 <= VULKAN_HPP_CPP_VERSION
  13305. auto
  13306. # else
  13307. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  13308. const void * const &,
  13309. VULKAN_HPP_NAMESPACE::ImageSubresourceLayers const &,
  13310. VULKAN_HPP_NAMESPACE::Offset3D const &,
  13311. VULKAN_HPP_NAMESPACE::ImageSubresourceLayers const &,
  13312. VULKAN_HPP_NAMESPACE::Offset3D const &,
  13313. VULKAN_HPP_NAMESPACE::Extent3D const &>
  13314. # endif
  13315. reflect() const VULKAN_HPP_NOEXCEPT
  13316. {
  13317. return std::tie( sType, pNext, srcSubresource, srcOffset, dstSubresource, dstOffset, extent );
  13318. }
  13319. #endif
  13320. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  13321. auto operator<=>( ImageCopy2 const & ) const = default;
  13322. #else
  13323. bool operator==( ImageCopy2 const & rhs ) const VULKAN_HPP_NOEXCEPT
  13324. {
  13325. # if defined( VULKAN_HPP_USE_REFLECT )
  13326. return this->reflect() == rhs.reflect();
  13327. # else
  13328. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( srcSubresource == rhs.srcSubresource ) && ( srcOffset == rhs.srcOffset ) &&
  13329. ( dstSubresource == rhs.dstSubresource ) && ( dstOffset == rhs.dstOffset ) && ( extent == rhs.extent );
  13330. # endif
  13331. }
  13332. bool operator!=( ImageCopy2 const & rhs ) const VULKAN_HPP_NOEXCEPT
  13333. {
  13334. return !operator==( rhs );
  13335. }
  13336. #endif
  13337. public:
  13338. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImageCopy2;
  13339. const void * pNext = {};
  13340. VULKAN_HPP_NAMESPACE::ImageSubresourceLayers srcSubresource = {};
  13341. VULKAN_HPP_NAMESPACE::Offset3D srcOffset = {};
  13342. VULKAN_HPP_NAMESPACE::ImageSubresourceLayers dstSubresource = {};
  13343. VULKAN_HPP_NAMESPACE::Offset3D dstOffset = {};
  13344. VULKAN_HPP_NAMESPACE::Extent3D extent = {};
  13345. };
  13346. template <>
  13347. struct CppType<StructureType, StructureType::eImageCopy2>
  13348. {
  13349. using Type = ImageCopy2;
  13350. };
  13351. using ImageCopy2KHR = ImageCopy2;
  13352. struct CopyImageInfo2
  13353. {
  13354. using NativeType = VkCopyImageInfo2;
  13355. static const bool allowDuplicate = false;
  13356. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eCopyImageInfo2;
  13357. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  13358. VULKAN_HPP_CONSTEXPR CopyImageInfo2( VULKAN_HPP_NAMESPACE::Image srcImage_ = {},
  13359. VULKAN_HPP_NAMESPACE::ImageLayout srcImageLayout_ = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined,
  13360. VULKAN_HPP_NAMESPACE::Image dstImage_ = {},
  13361. VULKAN_HPP_NAMESPACE::ImageLayout dstImageLayout_ = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined,
  13362. uint32_t regionCount_ = {},
  13363. const VULKAN_HPP_NAMESPACE::ImageCopy2 * pRegions_ = {},
  13364. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  13365. : pNext( pNext_ )
  13366. , srcImage( srcImage_ )
  13367. , srcImageLayout( srcImageLayout_ )
  13368. , dstImage( dstImage_ )
  13369. , dstImageLayout( dstImageLayout_ )
  13370. , regionCount( regionCount_ )
  13371. , pRegions( pRegions_ )
  13372. {
  13373. }
  13374. VULKAN_HPP_CONSTEXPR CopyImageInfo2( CopyImageInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  13375. CopyImageInfo2( VkCopyImageInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT : CopyImageInfo2( *reinterpret_cast<CopyImageInfo2 const *>( &rhs ) ) {}
  13376. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  13377. CopyImageInfo2( VULKAN_HPP_NAMESPACE::Image srcImage_,
  13378. VULKAN_HPP_NAMESPACE::ImageLayout srcImageLayout_,
  13379. VULKAN_HPP_NAMESPACE::Image dstImage_,
  13380. VULKAN_HPP_NAMESPACE::ImageLayout dstImageLayout_,
  13381. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::ImageCopy2> const & regions_,
  13382. const void * pNext_ = nullptr )
  13383. : pNext( pNext_ )
  13384. , srcImage( srcImage_ )
  13385. , srcImageLayout( srcImageLayout_ )
  13386. , dstImage( dstImage_ )
  13387. , dstImageLayout( dstImageLayout_ )
  13388. , regionCount( static_cast<uint32_t>( regions_.size() ) )
  13389. , pRegions( regions_.data() )
  13390. {
  13391. }
  13392. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  13393. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  13394. CopyImageInfo2 & operator=( CopyImageInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  13395. CopyImageInfo2 & operator=( VkCopyImageInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT
  13396. {
  13397. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::CopyImageInfo2 const *>( &rhs );
  13398. return *this;
  13399. }
  13400. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  13401. VULKAN_HPP_CONSTEXPR_14 CopyImageInfo2 & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  13402. {
  13403. pNext = pNext_;
  13404. return *this;
  13405. }
  13406. VULKAN_HPP_CONSTEXPR_14 CopyImageInfo2 & setSrcImage( VULKAN_HPP_NAMESPACE::Image srcImage_ ) VULKAN_HPP_NOEXCEPT
  13407. {
  13408. srcImage = srcImage_;
  13409. return *this;
  13410. }
  13411. VULKAN_HPP_CONSTEXPR_14 CopyImageInfo2 & setSrcImageLayout( VULKAN_HPP_NAMESPACE::ImageLayout srcImageLayout_ ) VULKAN_HPP_NOEXCEPT
  13412. {
  13413. srcImageLayout = srcImageLayout_;
  13414. return *this;
  13415. }
  13416. VULKAN_HPP_CONSTEXPR_14 CopyImageInfo2 & setDstImage( VULKAN_HPP_NAMESPACE::Image dstImage_ ) VULKAN_HPP_NOEXCEPT
  13417. {
  13418. dstImage = dstImage_;
  13419. return *this;
  13420. }
  13421. VULKAN_HPP_CONSTEXPR_14 CopyImageInfo2 & setDstImageLayout( VULKAN_HPP_NAMESPACE::ImageLayout dstImageLayout_ ) VULKAN_HPP_NOEXCEPT
  13422. {
  13423. dstImageLayout = dstImageLayout_;
  13424. return *this;
  13425. }
  13426. VULKAN_HPP_CONSTEXPR_14 CopyImageInfo2 & setRegionCount( uint32_t regionCount_ ) VULKAN_HPP_NOEXCEPT
  13427. {
  13428. regionCount = regionCount_;
  13429. return *this;
  13430. }
  13431. VULKAN_HPP_CONSTEXPR_14 CopyImageInfo2 & setPRegions( const VULKAN_HPP_NAMESPACE::ImageCopy2 * pRegions_ ) VULKAN_HPP_NOEXCEPT
  13432. {
  13433. pRegions = pRegions_;
  13434. return *this;
  13435. }
  13436. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  13437. CopyImageInfo2 & setRegions( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::ImageCopy2> const & regions_ ) VULKAN_HPP_NOEXCEPT
  13438. {
  13439. regionCount = static_cast<uint32_t>( regions_.size() );
  13440. pRegions = regions_.data();
  13441. return *this;
  13442. }
  13443. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  13444. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  13445. operator VkCopyImageInfo2 const &() const VULKAN_HPP_NOEXCEPT
  13446. {
  13447. return *reinterpret_cast<const VkCopyImageInfo2 *>( this );
  13448. }
  13449. operator VkCopyImageInfo2 &() VULKAN_HPP_NOEXCEPT
  13450. {
  13451. return *reinterpret_cast<VkCopyImageInfo2 *>( this );
  13452. }
  13453. #if defined( VULKAN_HPP_USE_REFLECT )
  13454. # if 14 <= VULKAN_HPP_CPP_VERSION
  13455. auto
  13456. # else
  13457. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  13458. const void * const &,
  13459. VULKAN_HPP_NAMESPACE::Image const &,
  13460. VULKAN_HPP_NAMESPACE::ImageLayout const &,
  13461. VULKAN_HPP_NAMESPACE::Image const &,
  13462. VULKAN_HPP_NAMESPACE::ImageLayout const &,
  13463. uint32_t const &,
  13464. const VULKAN_HPP_NAMESPACE::ImageCopy2 * const &>
  13465. # endif
  13466. reflect() const VULKAN_HPP_NOEXCEPT
  13467. {
  13468. return std::tie( sType, pNext, srcImage, srcImageLayout, dstImage, dstImageLayout, regionCount, pRegions );
  13469. }
  13470. #endif
  13471. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  13472. auto operator<=>( CopyImageInfo2 const & ) const = default;
  13473. #else
  13474. bool operator==( CopyImageInfo2 const & rhs ) const VULKAN_HPP_NOEXCEPT
  13475. {
  13476. # if defined( VULKAN_HPP_USE_REFLECT )
  13477. return this->reflect() == rhs.reflect();
  13478. # else
  13479. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( srcImage == rhs.srcImage ) && ( srcImageLayout == rhs.srcImageLayout ) &&
  13480. ( dstImage == rhs.dstImage ) && ( dstImageLayout == rhs.dstImageLayout ) && ( regionCount == rhs.regionCount ) && ( pRegions == rhs.pRegions );
  13481. # endif
  13482. }
  13483. bool operator!=( CopyImageInfo2 const & rhs ) const VULKAN_HPP_NOEXCEPT
  13484. {
  13485. return !operator==( rhs );
  13486. }
  13487. #endif
  13488. public:
  13489. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eCopyImageInfo2;
  13490. const void * pNext = {};
  13491. VULKAN_HPP_NAMESPACE::Image srcImage = {};
  13492. VULKAN_HPP_NAMESPACE::ImageLayout srcImageLayout = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined;
  13493. VULKAN_HPP_NAMESPACE::Image dstImage = {};
  13494. VULKAN_HPP_NAMESPACE::ImageLayout dstImageLayout = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined;
  13495. uint32_t regionCount = {};
  13496. const VULKAN_HPP_NAMESPACE::ImageCopy2 * pRegions = {};
  13497. };
  13498. template <>
  13499. struct CppType<StructureType, StructureType::eCopyImageInfo2>
  13500. {
  13501. using Type = CopyImageInfo2;
  13502. };
  13503. using CopyImageInfo2KHR = CopyImageInfo2;
  13504. struct CopyImageToBufferInfo2
  13505. {
  13506. using NativeType = VkCopyImageToBufferInfo2;
  13507. static const bool allowDuplicate = false;
  13508. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eCopyImageToBufferInfo2;
  13509. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  13510. VULKAN_HPP_CONSTEXPR CopyImageToBufferInfo2( VULKAN_HPP_NAMESPACE::Image srcImage_ = {},
  13511. VULKAN_HPP_NAMESPACE::ImageLayout srcImageLayout_ = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined,
  13512. VULKAN_HPP_NAMESPACE::Buffer dstBuffer_ = {},
  13513. uint32_t regionCount_ = {},
  13514. const VULKAN_HPP_NAMESPACE::BufferImageCopy2 * pRegions_ = {},
  13515. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  13516. : pNext( pNext_ )
  13517. , srcImage( srcImage_ )
  13518. , srcImageLayout( srcImageLayout_ )
  13519. , dstBuffer( dstBuffer_ )
  13520. , regionCount( regionCount_ )
  13521. , pRegions( pRegions_ )
  13522. {
  13523. }
  13524. VULKAN_HPP_CONSTEXPR CopyImageToBufferInfo2( CopyImageToBufferInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  13525. CopyImageToBufferInfo2( VkCopyImageToBufferInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT
  13526. : CopyImageToBufferInfo2( *reinterpret_cast<CopyImageToBufferInfo2 const *>( &rhs ) )
  13527. {
  13528. }
  13529. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  13530. CopyImageToBufferInfo2( VULKAN_HPP_NAMESPACE::Image srcImage_,
  13531. VULKAN_HPP_NAMESPACE::ImageLayout srcImageLayout_,
  13532. VULKAN_HPP_NAMESPACE::Buffer dstBuffer_,
  13533. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::BufferImageCopy2> const & regions_,
  13534. const void * pNext_ = nullptr )
  13535. : pNext( pNext_ )
  13536. , srcImage( srcImage_ )
  13537. , srcImageLayout( srcImageLayout_ )
  13538. , dstBuffer( dstBuffer_ )
  13539. , regionCount( static_cast<uint32_t>( regions_.size() ) )
  13540. , pRegions( regions_.data() )
  13541. {
  13542. }
  13543. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  13544. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  13545. CopyImageToBufferInfo2 & operator=( CopyImageToBufferInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  13546. CopyImageToBufferInfo2 & operator=( VkCopyImageToBufferInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT
  13547. {
  13548. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::CopyImageToBufferInfo2 const *>( &rhs );
  13549. return *this;
  13550. }
  13551. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  13552. VULKAN_HPP_CONSTEXPR_14 CopyImageToBufferInfo2 & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  13553. {
  13554. pNext = pNext_;
  13555. return *this;
  13556. }
  13557. VULKAN_HPP_CONSTEXPR_14 CopyImageToBufferInfo2 & setSrcImage( VULKAN_HPP_NAMESPACE::Image srcImage_ ) VULKAN_HPP_NOEXCEPT
  13558. {
  13559. srcImage = srcImage_;
  13560. return *this;
  13561. }
  13562. VULKAN_HPP_CONSTEXPR_14 CopyImageToBufferInfo2 & setSrcImageLayout( VULKAN_HPP_NAMESPACE::ImageLayout srcImageLayout_ ) VULKAN_HPP_NOEXCEPT
  13563. {
  13564. srcImageLayout = srcImageLayout_;
  13565. return *this;
  13566. }
  13567. VULKAN_HPP_CONSTEXPR_14 CopyImageToBufferInfo2 & setDstBuffer( VULKAN_HPP_NAMESPACE::Buffer dstBuffer_ ) VULKAN_HPP_NOEXCEPT
  13568. {
  13569. dstBuffer = dstBuffer_;
  13570. return *this;
  13571. }
  13572. VULKAN_HPP_CONSTEXPR_14 CopyImageToBufferInfo2 & setRegionCount( uint32_t regionCount_ ) VULKAN_HPP_NOEXCEPT
  13573. {
  13574. regionCount = regionCount_;
  13575. return *this;
  13576. }
  13577. VULKAN_HPP_CONSTEXPR_14 CopyImageToBufferInfo2 & setPRegions( const VULKAN_HPP_NAMESPACE::BufferImageCopy2 * pRegions_ ) VULKAN_HPP_NOEXCEPT
  13578. {
  13579. pRegions = pRegions_;
  13580. return *this;
  13581. }
  13582. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  13583. CopyImageToBufferInfo2 &
  13584. setRegions( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::BufferImageCopy2> const & regions_ ) VULKAN_HPP_NOEXCEPT
  13585. {
  13586. regionCount = static_cast<uint32_t>( regions_.size() );
  13587. pRegions = regions_.data();
  13588. return *this;
  13589. }
  13590. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  13591. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  13592. operator VkCopyImageToBufferInfo2 const &() const VULKAN_HPP_NOEXCEPT
  13593. {
  13594. return *reinterpret_cast<const VkCopyImageToBufferInfo2 *>( this );
  13595. }
  13596. operator VkCopyImageToBufferInfo2 &() VULKAN_HPP_NOEXCEPT
  13597. {
  13598. return *reinterpret_cast<VkCopyImageToBufferInfo2 *>( this );
  13599. }
  13600. #if defined( VULKAN_HPP_USE_REFLECT )
  13601. # if 14 <= VULKAN_HPP_CPP_VERSION
  13602. auto
  13603. # else
  13604. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  13605. const void * const &,
  13606. VULKAN_HPP_NAMESPACE::Image const &,
  13607. VULKAN_HPP_NAMESPACE::ImageLayout const &,
  13608. VULKAN_HPP_NAMESPACE::Buffer const &,
  13609. uint32_t const &,
  13610. const VULKAN_HPP_NAMESPACE::BufferImageCopy2 * const &>
  13611. # endif
  13612. reflect() const VULKAN_HPP_NOEXCEPT
  13613. {
  13614. return std::tie( sType, pNext, srcImage, srcImageLayout, dstBuffer, regionCount, pRegions );
  13615. }
  13616. #endif
  13617. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  13618. auto operator<=>( CopyImageToBufferInfo2 const & ) const = default;
  13619. #else
  13620. bool operator==( CopyImageToBufferInfo2 const & rhs ) const VULKAN_HPP_NOEXCEPT
  13621. {
  13622. # if defined( VULKAN_HPP_USE_REFLECT )
  13623. return this->reflect() == rhs.reflect();
  13624. # else
  13625. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( srcImage == rhs.srcImage ) && ( srcImageLayout == rhs.srcImageLayout ) &&
  13626. ( dstBuffer == rhs.dstBuffer ) && ( regionCount == rhs.regionCount ) && ( pRegions == rhs.pRegions );
  13627. # endif
  13628. }
  13629. bool operator!=( CopyImageToBufferInfo2 const & rhs ) const VULKAN_HPP_NOEXCEPT
  13630. {
  13631. return !operator==( rhs );
  13632. }
  13633. #endif
  13634. public:
  13635. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eCopyImageToBufferInfo2;
  13636. const void * pNext = {};
  13637. VULKAN_HPP_NAMESPACE::Image srcImage = {};
  13638. VULKAN_HPP_NAMESPACE::ImageLayout srcImageLayout = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined;
  13639. VULKAN_HPP_NAMESPACE::Buffer dstBuffer = {};
  13640. uint32_t regionCount = {};
  13641. const VULKAN_HPP_NAMESPACE::BufferImageCopy2 * pRegions = {};
  13642. };
  13643. template <>
  13644. struct CppType<StructureType, StructureType::eCopyImageToBufferInfo2>
  13645. {
  13646. using Type = CopyImageToBufferInfo2;
  13647. };
  13648. using CopyImageToBufferInfo2KHR = CopyImageToBufferInfo2;
  13649. struct CopyMemoryToAccelerationStructureInfoKHR
  13650. {
  13651. using NativeType = VkCopyMemoryToAccelerationStructureInfoKHR;
  13652. static const bool allowDuplicate = false;
  13653. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eCopyMemoryToAccelerationStructureInfoKHR;
  13654. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  13655. VULKAN_HPP_CONSTEXPR_14 CopyMemoryToAccelerationStructureInfoKHR(
  13656. VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstKHR src_ = {},
  13657. VULKAN_HPP_NAMESPACE::AccelerationStructureKHR dst_ = {},
  13658. VULKAN_HPP_NAMESPACE::CopyAccelerationStructureModeKHR mode_ = VULKAN_HPP_NAMESPACE::CopyAccelerationStructureModeKHR::eClone,
  13659. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  13660. : pNext( pNext_ )
  13661. , src( src_ )
  13662. , dst( dst_ )
  13663. , mode( mode_ )
  13664. {
  13665. }
  13666. VULKAN_HPP_CONSTEXPR_14 CopyMemoryToAccelerationStructureInfoKHR( CopyMemoryToAccelerationStructureInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  13667. CopyMemoryToAccelerationStructureInfoKHR( VkCopyMemoryToAccelerationStructureInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  13668. : CopyMemoryToAccelerationStructureInfoKHR( *reinterpret_cast<CopyMemoryToAccelerationStructureInfoKHR const *>( &rhs ) )
  13669. {
  13670. }
  13671. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  13672. CopyMemoryToAccelerationStructureInfoKHR & operator=( CopyMemoryToAccelerationStructureInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  13673. CopyMemoryToAccelerationStructureInfoKHR & operator=( VkCopyMemoryToAccelerationStructureInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  13674. {
  13675. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::CopyMemoryToAccelerationStructureInfoKHR const *>( &rhs );
  13676. return *this;
  13677. }
  13678. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  13679. VULKAN_HPP_CONSTEXPR_14 CopyMemoryToAccelerationStructureInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  13680. {
  13681. pNext = pNext_;
  13682. return *this;
  13683. }
  13684. VULKAN_HPP_CONSTEXPR_14 CopyMemoryToAccelerationStructureInfoKHR &
  13685. setSrc( VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstKHR const & src_ ) VULKAN_HPP_NOEXCEPT
  13686. {
  13687. src = src_;
  13688. return *this;
  13689. }
  13690. VULKAN_HPP_CONSTEXPR_14 CopyMemoryToAccelerationStructureInfoKHR & setDst( VULKAN_HPP_NAMESPACE::AccelerationStructureKHR dst_ ) VULKAN_HPP_NOEXCEPT
  13691. {
  13692. dst = dst_;
  13693. return *this;
  13694. }
  13695. VULKAN_HPP_CONSTEXPR_14 CopyMemoryToAccelerationStructureInfoKHR &
  13696. setMode( VULKAN_HPP_NAMESPACE::CopyAccelerationStructureModeKHR mode_ ) VULKAN_HPP_NOEXCEPT
  13697. {
  13698. mode = mode_;
  13699. return *this;
  13700. }
  13701. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  13702. operator VkCopyMemoryToAccelerationStructureInfoKHR const &() const VULKAN_HPP_NOEXCEPT
  13703. {
  13704. return *reinterpret_cast<const VkCopyMemoryToAccelerationStructureInfoKHR *>( this );
  13705. }
  13706. operator VkCopyMemoryToAccelerationStructureInfoKHR &() VULKAN_HPP_NOEXCEPT
  13707. {
  13708. return *reinterpret_cast<VkCopyMemoryToAccelerationStructureInfoKHR *>( this );
  13709. }
  13710. #if defined( VULKAN_HPP_USE_REFLECT )
  13711. # if 14 <= VULKAN_HPP_CPP_VERSION
  13712. auto
  13713. # else
  13714. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  13715. const void * const &,
  13716. VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstKHR const &,
  13717. VULKAN_HPP_NAMESPACE::AccelerationStructureKHR const &,
  13718. VULKAN_HPP_NAMESPACE::CopyAccelerationStructureModeKHR const &>
  13719. # endif
  13720. reflect() const VULKAN_HPP_NOEXCEPT
  13721. {
  13722. return std::tie( sType, pNext, src, dst, mode );
  13723. }
  13724. #endif
  13725. public:
  13726. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eCopyMemoryToAccelerationStructureInfoKHR;
  13727. const void * pNext = {};
  13728. VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstKHR src = {};
  13729. VULKAN_HPP_NAMESPACE::AccelerationStructureKHR dst = {};
  13730. VULKAN_HPP_NAMESPACE::CopyAccelerationStructureModeKHR mode = VULKAN_HPP_NAMESPACE::CopyAccelerationStructureModeKHR::eClone;
  13731. };
  13732. template <>
  13733. struct CppType<StructureType, StructureType::eCopyMemoryToAccelerationStructureInfoKHR>
  13734. {
  13735. using Type = CopyMemoryToAccelerationStructureInfoKHR;
  13736. };
  13737. struct CuFunctionCreateInfoNVX
  13738. {
  13739. using NativeType = VkCuFunctionCreateInfoNVX;
  13740. static const bool allowDuplicate = false;
  13741. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eCuFunctionCreateInfoNVX;
  13742. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  13743. VULKAN_HPP_CONSTEXPR
  13744. CuFunctionCreateInfoNVX( VULKAN_HPP_NAMESPACE::CuModuleNVX module_ = {}, const char * pName_ = {}, const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  13745. : pNext( pNext_ )
  13746. , module( module_ )
  13747. , pName( pName_ )
  13748. {
  13749. }
  13750. VULKAN_HPP_CONSTEXPR CuFunctionCreateInfoNVX( CuFunctionCreateInfoNVX const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  13751. CuFunctionCreateInfoNVX( VkCuFunctionCreateInfoNVX const & rhs ) VULKAN_HPP_NOEXCEPT
  13752. : CuFunctionCreateInfoNVX( *reinterpret_cast<CuFunctionCreateInfoNVX const *>( &rhs ) )
  13753. {
  13754. }
  13755. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  13756. CuFunctionCreateInfoNVX & operator=( CuFunctionCreateInfoNVX const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  13757. CuFunctionCreateInfoNVX & operator=( VkCuFunctionCreateInfoNVX const & rhs ) VULKAN_HPP_NOEXCEPT
  13758. {
  13759. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::CuFunctionCreateInfoNVX const *>( &rhs );
  13760. return *this;
  13761. }
  13762. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  13763. VULKAN_HPP_CONSTEXPR_14 CuFunctionCreateInfoNVX & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  13764. {
  13765. pNext = pNext_;
  13766. return *this;
  13767. }
  13768. VULKAN_HPP_CONSTEXPR_14 CuFunctionCreateInfoNVX & setModule( VULKAN_HPP_NAMESPACE::CuModuleNVX module_ ) VULKAN_HPP_NOEXCEPT
  13769. {
  13770. module = module_;
  13771. return *this;
  13772. }
  13773. VULKAN_HPP_CONSTEXPR_14 CuFunctionCreateInfoNVX & setPName( const char * pName_ ) VULKAN_HPP_NOEXCEPT
  13774. {
  13775. pName = pName_;
  13776. return *this;
  13777. }
  13778. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  13779. operator VkCuFunctionCreateInfoNVX const &() const VULKAN_HPP_NOEXCEPT
  13780. {
  13781. return *reinterpret_cast<const VkCuFunctionCreateInfoNVX *>( this );
  13782. }
  13783. operator VkCuFunctionCreateInfoNVX &() VULKAN_HPP_NOEXCEPT
  13784. {
  13785. return *reinterpret_cast<VkCuFunctionCreateInfoNVX *>( this );
  13786. }
  13787. #if defined( VULKAN_HPP_USE_REFLECT )
  13788. # if 14 <= VULKAN_HPP_CPP_VERSION
  13789. auto
  13790. # else
  13791. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::CuModuleNVX const &, const char * const &>
  13792. # endif
  13793. reflect() const VULKAN_HPP_NOEXCEPT
  13794. {
  13795. return std::tie( sType, pNext, module, pName );
  13796. }
  13797. #endif
  13798. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  13799. std::strong_ordering operator<=>( CuFunctionCreateInfoNVX const & rhs ) const VULKAN_HPP_NOEXCEPT
  13800. {
  13801. if ( auto cmp = sType <=> rhs.sType; cmp != 0 )
  13802. return cmp;
  13803. if ( auto cmp = pNext <=> rhs.pNext; cmp != 0 )
  13804. return cmp;
  13805. if ( auto cmp = module <=> rhs.module; cmp != 0 )
  13806. return cmp;
  13807. if ( pName != rhs.pName )
  13808. if ( auto cmp = strcmp( pName, rhs.pName ); cmp != 0 )
  13809. return ( cmp < 0 ) ? std::strong_ordering::less : std::strong_ordering::greater;
  13810. return std::strong_ordering::equivalent;
  13811. }
  13812. #endif
  13813. bool operator==( CuFunctionCreateInfoNVX const & rhs ) const VULKAN_HPP_NOEXCEPT
  13814. {
  13815. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( module == rhs.module ) && ( ( pName == rhs.pName ) || ( strcmp( pName, rhs.pName ) == 0 ) );
  13816. }
  13817. bool operator!=( CuFunctionCreateInfoNVX const & rhs ) const VULKAN_HPP_NOEXCEPT
  13818. {
  13819. return !operator==( rhs );
  13820. }
  13821. public:
  13822. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eCuFunctionCreateInfoNVX;
  13823. const void * pNext = {};
  13824. VULKAN_HPP_NAMESPACE::CuModuleNVX module = {};
  13825. const char * pName = {};
  13826. };
  13827. template <>
  13828. struct CppType<StructureType, StructureType::eCuFunctionCreateInfoNVX>
  13829. {
  13830. using Type = CuFunctionCreateInfoNVX;
  13831. };
  13832. struct CuLaunchInfoNVX
  13833. {
  13834. using NativeType = VkCuLaunchInfoNVX;
  13835. static const bool allowDuplicate = false;
  13836. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eCuLaunchInfoNVX;
  13837. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  13838. VULKAN_HPP_CONSTEXPR CuLaunchInfoNVX( VULKAN_HPP_NAMESPACE::CuFunctionNVX function_ = {},
  13839. uint32_t gridDimX_ = {},
  13840. uint32_t gridDimY_ = {},
  13841. uint32_t gridDimZ_ = {},
  13842. uint32_t blockDimX_ = {},
  13843. uint32_t blockDimY_ = {},
  13844. uint32_t blockDimZ_ = {},
  13845. uint32_t sharedMemBytes_ = {},
  13846. size_t paramCount_ = {},
  13847. const void * const * pParams_ = {},
  13848. size_t extraCount_ = {},
  13849. const void * const * pExtras_ = {},
  13850. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  13851. : pNext( pNext_ )
  13852. , function( function_ )
  13853. , gridDimX( gridDimX_ )
  13854. , gridDimY( gridDimY_ )
  13855. , gridDimZ( gridDimZ_ )
  13856. , blockDimX( blockDimX_ )
  13857. , blockDimY( blockDimY_ )
  13858. , blockDimZ( blockDimZ_ )
  13859. , sharedMemBytes( sharedMemBytes_ )
  13860. , paramCount( paramCount_ )
  13861. , pParams( pParams_ )
  13862. , extraCount( extraCount_ )
  13863. , pExtras( pExtras_ )
  13864. {
  13865. }
  13866. VULKAN_HPP_CONSTEXPR CuLaunchInfoNVX( CuLaunchInfoNVX const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  13867. CuLaunchInfoNVX( VkCuLaunchInfoNVX const & rhs ) VULKAN_HPP_NOEXCEPT : CuLaunchInfoNVX( *reinterpret_cast<CuLaunchInfoNVX const *>( &rhs ) ) {}
  13868. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  13869. CuLaunchInfoNVX( VULKAN_HPP_NAMESPACE::CuFunctionNVX function_,
  13870. uint32_t gridDimX_,
  13871. uint32_t gridDimY_,
  13872. uint32_t gridDimZ_,
  13873. uint32_t blockDimX_,
  13874. uint32_t blockDimY_,
  13875. uint32_t blockDimZ_,
  13876. uint32_t sharedMemBytes_,
  13877. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const void * const> const & params_,
  13878. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const void * const> const & extras_ = {},
  13879. const void * pNext_ = nullptr )
  13880. : pNext( pNext_ )
  13881. , function( function_ )
  13882. , gridDimX( gridDimX_ )
  13883. , gridDimY( gridDimY_ )
  13884. , gridDimZ( gridDimZ_ )
  13885. , blockDimX( blockDimX_ )
  13886. , blockDimY( blockDimY_ )
  13887. , blockDimZ( blockDimZ_ )
  13888. , sharedMemBytes( sharedMemBytes_ )
  13889. , paramCount( params_.size() )
  13890. , pParams( params_.data() )
  13891. , extraCount( extras_.size() )
  13892. , pExtras( extras_.data() )
  13893. {
  13894. }
  13895. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  13896. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  13897. CuLaunchInfoNVX & operator=( CuLaunchInfoNVX const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  13898. CuLaunchInfoNVX & operator=( VkCuLaunchInfoNVX const & rhs ) VULKAN_HPP_NOEXCEPT
  13899. {
  13900. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::CuLaunchInfoNVX const *>( &rhs );
  13901. return *this;
  13902. }
  13903. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  13904. VULKAN_HPP_CONSTEXPR_14 CuLaunchInfoNVX & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  13905. {
  13906. pNext = pNext_;
  13907. return *this;
  13908. }
  13909. VULKAN_HPP_CONSTEXPR_14 CuLaunchInfoNVX & setFunction( VULKAN_HPP_NAMESPACE::CuFunctionNVX function_ ) VULKAN_HPP_NOEXCEPT
  13910. {
  13911. function = function_;
  13912. return *this;
  13913. }
  13914. VULKAN_HPP_CONSTEXPR_14 CuLaunchInfoNVX & setGridDimX( uint32_t gridDimX_ ) VULKAN_HPP_NOEXCEPT
  13915. {
  13916. gridDimX = gridDimX_;
  13917. return *this;
  13918. }
  13919. VULKAN_HPP_CONSTEXPR_14 CuLaunchInfoNVX & setGridDimY( uint32_t gridDimY_ ) VULKAN_HPP_NOEXCEPT
  13920. {
  13921. gridDimY = gridDimY_;
  13922. return *this;
  13923. }
  13924. VULKAN_HPP_CONSTEXPR_14 CuLaunchInfoNVX & setGridDimZ( uint32_t gridDimZ_ ) VULKAN_HPP_NOEXCEPT
  13925. {
  13926. gridDimZ = gridDimZ_;
  13927. return *this;
  13928. }
  13929. VULKAN_HPP_CONSTEXPR_14 CuLaunchInfoNVX & setBlockDimX( uint32_t blockDimX_ ) VULKAN_HPP_NOEXCEPT
  13930. {
  13931. blockDimX = blockDimX_;
  13932. return *this;
  13933. }
  13934. VULKAN_HPP_CONSTEXPR_14 CuLaunchInfoNVX & setBlockDimY( uint32_t blockDimY_ ) VULKAN_HPP_NOEXCEPT
  13935. {
  13936. blockDimY = blockDimY_;
  13937. return *this;
  13938. }
  13939. VULKAN_HPP_CONSTEXPR_14 CuLaunchInfoNVX & setBlockDimZ( uint32_t blockDimZ_ ) VULKAN_HPP_NOEXCEPT
  13940. {
  13941. blockDimZ = blockDimZ_;
  13942. return *this;
  13943. }
  13944. VULKAN_HPP_CONSTEXPR_14 CuLaunchInfoNVX & setSharedMemBytes( uint32_t sharedMemBytes_ ) VULKAN_HPP_NOEXCEPT
  13945. {
  13946. sharedMemBytes = sharedMemBytes_;
  13947. return *this;
  13948. }
  13949. VULKAN_HPP_CONSTEXPR_14 CuLaunchInfoNVX & setParamCount( size_t paramCount_ ) VULKAN_HPP_NOEXCEPT
  13950. {
  13951. paramCount = paramCount_;
  13952. return *this;
  13953. }
  13954. VULKAN_HPP_CONSTEXPR_14 CuLaunchInfoNVX & setPParams( const void * const * pParams_ ) VULKAN_HPP_NOEXCEPT
  13955. {
  13956. pParams = pParams_;
  13957. return *this;
  13958. }
  13959. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  13960. CuLaunchInfoNVX & setParams( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const void * const> const & params_ ) VULKAN_HPP_NOEXCEPT
  13961. {
  13962. paramCount = params_.size();
  13963. pParams = params_.data();
  13964. return *this;
  13965. }
  13966. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  13967. VULKAN_HPP_CONSTEXPR_14 CuLaunchInfoNVX & setExtraCount( size_t extraCount_ ) VULKAN_HPP_NOEXCEPT
  13968. {
  13969. extraCount = extraCount_;
  13970. return *this;
  13971. }
  13972. VULKAN_HPP_CONSTEXPR_14 CuLaunchInfoNVX & setPExtras( const void * const * pExtras_ ) VULKAN_HPP_NOEXCEPT
  13973. {
  13974. pExtras = pExtras_;
  13975. return *this;
  13976. }
  13977. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  13978. CuLaunchInfoNVX & setExtras( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const void * const> const & extras_ ) VULKAN_HPP_NOEXCEPT
  13979. {
  13980. extraCount = extras_.size();
  13981. pExtras = extras_.data();
  13982. return *this;
  13983. }
  13984. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  13985. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  13986. operator VkCuLaunchInfoNVX const &() const VULKAN_HPP_NOEXCEPT
  13987. {
  13988. return *reinterpret_cast<const VkCuLaunchInfoNVX *>( this );
  13989. }
  13990. operator VkCuLaunchInfoNVX &() VULKAN_HPP_NOEXCEPT
  13991. {
  13992. return *reinterpret_cast<VkCuLaunchInfoNVX *>( this );
  13993. }
  13994. #if defined( VULKAN_HPP_USE_REFLECT )
  13995. # if 14 <= VULKAN_HPP_CPP_VERSION
  13996. auto
  13997. # else
  13998. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  13999. const void * const &,
  14000. VULKAN_HPP_NAMESPACE::CuFunctionNVX const &,
  14001. uint32_t const &,
  14002. uint32_t const &,
  14003. uint32_t const &,
  14004. uint32_t const &,
  14005. uint32_t const &,
  14006. uint32_t const &,
  14007. uint32_t const &,
  14008. size_t const &,
  14009. const void * const * const &,
  14010. size_t const &,
  14011. const void * const * const &>
  14012. # endif
  14013. reflect() const VULKAN_HPP_NOEXCEPT
  14014. {
  14015. return std::tie(
  14016. sType, pNext, function, gridDimX, gridDimY, gridDimZ, blockDimX, blockDimY, blockDimZ, sharedMemBytes, paramCount, pParams, extraCount, pExtras );
  14017. }
  14018. #endif
  14019. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  14020. auto operator<=>( CuLaunchInfoNVX const & ) const = default;
  14021. #else
  14022. bool operator==( CuLaunchInfoNVX const & rhs ) const VULKAN_HPP_NOEXCEPT
  14023. {
  14024. # if defined( VULKAN_HPP_USE_REFLECT )
  14025. return this->reflect() == rhs.reflect();
  14026. # else
  14027. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( function == rhs.function ) && ( gridDimX == rhs.gridDimX ) && ( gridDimY == rhs.gridDimY ) &&
  14028. ( gridDimZ == rhs.gridDimZ ) && ( blockDimX == rhs.blockDimX ) && ( blockDimY == rhs.blockDimY ) && ( blockDimZ == rhs.blockDimZ ) &&
  14029. ( sharedMemBytes == rhs.sharedMemBytes ) && ( paramCount == rhs.paramCount ) && ( pParams == rhs.pParams ) && ( extraCount == rhs.extraCount ) &&
  14030. ( pExtras == rhs.pExtras );
  14031. # endif
  14032. }
  14033. bool operator!=( CuLaunchInfoNVX const & rhs ) const VULKAN_HPP_NOEXCEPT
  14034. {
  14035. return !operator==( rhs );
  14036. }
  14037. #endif
  14038. public:
  14039. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eCuLaunchInfoNVX;
  14040. const void * pNext = {};
  14041. VULKAN_HPP_NAMESPACE::CuFunctionNVX function = {};
  14042. uint32_t gridDimX = {};
  14043. uint32_t gridDimY = {};
  14044. uint32_t gridDimZ = {};
  14045. uint32_t blockDimX = {};
  14046. uint32_t blockDimY = {};
  14047. uint32_t blockDimZ = {};
  14048. uint32_t sharedMemBytes = {};
  14049. size_t paramCount = {};
  14050. const void * const * pParams = {};
  14051. size_t extraCount = {};
  14052. const void * const * pExtras = {};
  14053. };
  14054. template <>
  14055. struct CppType<StructureType, StructureType::eCuLaunchInfoNVX>
  14056. {
  14057. using Type = CuLaunchInfoNVX;
  14058. };
  14059. struct CuModuleCreateInfoNVX
  14060. {
  14061. using NativeType = VkCuModuleCreateInfoNVX;
  14062. static const bool allowDuplicate = false;
  14063. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eCuModuleCreateInfoNVX;
  14064. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  14065. VULKAN_HPP_CONSTEXPR CuModuleCreateInfoNVX( size_t dataSize_ = {}, const void * pData_ = {}, const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  14066. : pNext( pNext_ )
  14067. , dataSize( dataSize_ )
  14068. , pData( pData_ )
  14069. {
  14070. }
  14071. VULKAN_HPP_CONSTEXPR CuModuleCreateInfoNVX( CuModuleCreateInfoNVX const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  14072. CuModuleCreateInfoNVX( VkCuModuleCreateInfoNVX const & rhs ) VULKAN_HPP_NOEXCEPT
  14073. : CuModuleCreateInfoNVX( *reinterpret_cast<CuModuleCreateInfoNVX const *>( &rhs ) )
  14074. {
  14075. }
  14076. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  14077. template <typename T>
  14078. CuModuleCreateInfoNVX( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const T> const & data_, const void * pNext_ = nullptr )
  14079. : pNext( pNext_ ), dataSize( data_.size() * sizeof( T ) ), pData( data_.data() )
  14080. {
  14081. }
  14082. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  14083. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  14084. CuModuleCreateInfoNVX & operator=( CuModuleCreateInfoNVX const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  14085. CuModuleCreateInfoNVX & operator=( VkCuModuleCreateInfoNVX const & rhs ) VULKAN_HPP_NOEXCEPT
  14086. {
  14087. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::CuModuleCreateInfoNVX const *>( &rhs );
  14088. return *this;
  14089. }
  14090. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  14091. VULKAN_HPP_CONSTEXPR_14 CuModuleCreateInfoNVX & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  14092. {
  14093. pNext = pNext_;
  14094. return *this;
  14095. }
  14096. VULKAN_HPP_CONSTEXPR_14 CuModuleCreateInfoNVX & setDataSize( size_t dataSize_ ) VULKAN_HPP_NOEXCEPT
  14097. {
  14098. dataSize = dataSize_;
  14099. return *this;
  14100. }
  14101. VULKAN_HPP_CONSTEXPR_14 CuModuleCreateInfoNVX & setPData( const void * pData_ ) VULKAN_HPP_NOEXCEPT
  14102. {
  14103. pData = pData_;
  14104. return *this;
  14105. }
  14106. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  14107. template <typename T>
  14108. CuModuleCreateInfoNVX & setData( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const T> const & data_ ) VULKAN_HPP_NOEXCEPT
  14109. {
  14110. dataSize = data_.size() * sizeof( T );
  14111. pData = data_.data();
  14112. return *this;
  14113. }
  14114. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  14115. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  14116. operator VkCuModuleCreateInfoNVX const &() const VULKAN_HPP_NOEXCEPT
  14117. {
  14118. return *reinterpret_cast<const VkCuModuleCreateInfoNVX *>( this );
  14119. }
  14120. operator VkCuModuleCreateInfoNVX &() VULKAN_HPP_NOEXCEPT
  14121. {
  14122. return *reinterpret_cast<VkCuModuleCreateInfoNVX *>( this );
  14123. }
  14124. #if defined( VULKAN_HPP_USE_REFLECT )
  14125. # if 14 <= VULKAN_HPP_CPP_VERSION
  14126. auto
  14127. # else
  14128. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, size_t const &, const void * const &>
  14129. # endif
  14130. reflect() const VULKAN_HPP_NOEXCEPT
  14131. {
  14132. return std::tie( sType, pNext, dataSize, pData );
  14133. }
  14134. #endif
  14135. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  14136. auto operator<=>( CuModuleCreateInfoNVX const & ) const = default;
  14137. #else
  14138. bool operator==( CuModuleCreateInfoNVX const & rhs ) const VULKAN_HPP_NOEXCEPT
  14139. {
  14140. # if defined( VULKAN_HPP_USE_REFLECT )
  14141. return this->reflect() == rhs.reflect();
  14142. # else
  14143. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( dataSize == rhs.dataSize ) && ( pData == rhs.pData );
  14144. # endif
  14145. }
  14146. bool operator!=( CuModuleCreateInfoNVX const & rhs ) const VULKAN_HPP_NOEXCEPT
  14147. {
  14148. return !operator==( rhs );
  14149. }
  14150. #endif
  14151. public:
  14152. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eCuModuleCreateInfoNVX;
  14153. const void * pNext = {};
  14154. size_t dataSize = {};
  14155. const void * pData = {};
  14156. };
  14157. template <>
  14158. struct CppType<StructureType, StructureType::eCuModuleCreateInfoNVX>
  14159. {
  14160. using Type = CuModuleCreateInfoNVX;
  14161. };
  14162. #if defined( VK_USE_PLATFORM_WIN32_KHR )
  14163. struct D3D12FenceSubmitInfoKHR
  14164. {
  14165. using NativeType = VkD3D12FenceSubmitInfoKHR;
  14166. static const bool allowDuplicate = false;
  14167. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eD3D12FenceSubmitInfoKHR;
  14168. # if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  14169. VULKAN_HPP_CONSTEXPR D3D12FenceSubmitInfoKHR( uint32_t waitSemaphoreValuesCount_ = {},
  14170. const uint64_t * pWaitSemaphoreValues_ = {},
  14171. uint32_t signalSemaphoreValuesCount_ = {},
  14172. const uint64_t * pSignalSemaphoreValues_ = {},
  14173. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  14174. : pNext( pNext_ )
  14175. , waitSemaphoreValuesCount( waitSemaphoreValuesCount_ )
  14176. , pWaitSemaphoreValues( pWaitSemaphoreValues_ )
  14177. , signalSemaphoreValuesCount( signalSemaphoreValuesCount_ )
  14178. , pSignalSemaphoreValues( pSignalSemaphoreValues_ )
  14179. {
  14180. }
  14181. VULKAN_HPP_CONSTEXPR D3D12FenceSubmitInfoKHR( D3D12FenceSubmitInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  14182. D3D12FenceSubmitInfoKHR( VkD3D12FenceSubmitInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  14183. : D3D12FenceSubmitInfoKHR( *reinterpret_cast<D3D12FenceSubmitInfoKHR const *>( &rhs ) )
  14184. {
  14185. }
  14186. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  14187. D3D12FenceSubmitInfoKHR( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint64_t> const & waitSemaphoreValues_,
  14188. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint64_t> const & signalSemaphoreValues_ = {},
  14189. const void * pNext_ = nullptr )
  14190. : pNext( pNext_ )
  14191. , waitSemaphoreValuesCount( static_cast<uint32_t>( waitSemaphoreValues_.size() ) )
  14192. , pWaitSemaphoreValues( waitSemaphoreValues_.data() )
  14193. , signalSemaphoreValuesCount( static_cast<uint32_t>( signalSemaphoreValues_.size() ) )
  14194. , pSignalSemaphoreValues( signalSemaphoreValues_.data() )
  14195. {
  14196. }
  14197. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  14198. # endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  14199. D3D12FenceSubmitInfoKHR & operator=( D3D12FenceSubmitInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  14200. D3D12FenceSubmitInfoKHR & operator=( VkD3D12FenceSubmitInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  14201. {
  14202. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::D3D12FenceSubmitInfoKHR const *>( &rhs );
  14203. return *this;
  14204. }
  14205. # if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  14206. VULKAN_HPP_CONSTEXPR_14 D3D12FenceSubmitInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  14207. {
  14208. pNext = pNext_;
  14209. return *this;
  14210. }
  14211. VULKAN_HPP_CONSTEXPR_14 D3D12FenceSubmitInfoKHR & setWaitSemaphoreValuesCount( uint32_t waitSemaphoreValuesCount_ ) VULKAN_HPP_NOEXCEPT
  14212. {
  14213. waitSemaphoreValuesCount = waitSemaphoreValuesCount_;
  14214. return *this;
  14215. }
  14216. VULKAN_HPP_CONSTEXPR_14 D3D12FenceSubmitInfoKHR & setPWaitSemaphoreValues( const uint64_t * pWaitSemaphoreValues_ ) VULKAN_HPP_NOEXCEPT
  14217. {
  14218. pWaitSemaphoreValues = pWaitSemaphoreValues_;
  14219. return *this;
  14220. }
  14221. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  14222. D3D12FenceSubmitInfoKHR &
  14223. setWaitSemaphoreValues( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint64_t> const & waitSemaphoreValues_ ) VULKAN_HPP_NOEXCEPT
  14224. {
  14225. waitSemaphoreValuesCount = static_cast<uint32_t>( waitSemaphoreValues_.size() );
  14226. pWaitSemaphoreValues = waitSemaphoreValues_.data();
  14227. return *this;
  14228. }
  14229. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  14230. VULKAN_HPP_CONSTEXPR_14 D3D12FenceSubmitInfoKHR & setSignalSemaphoreValuesCount( uint32_t signalSemaphoreValuesCount_ ) VULKAN_HPP_NOEXCEPT
  14231. {
  14232. signalSemaphoreValuesCount = signalSemaphoreValuesCount_;
  14233. return *this;
  14234. }
  14235. VULKAN_HPP_CONSTEXPR_14 D3D12FenceSubmitInfoKHR & setPSignalSemaphoreValues( const uint64_t * pSignalSemaphoreValues_ ) VULKAN_HPP_NOEXCEPT
  14236. {
  14237. pSignalSemaphoreValues = pSignalSemaphoreValues_;
  14238. return *this;
  14239. }
  14240. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  14241. D3D12FenceSubmitInfoKHR &
  14242. setSignalSemaphoreValues( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint64_t> const & signalSemaphoreValues_ ) VULKAN_HPP_NOEXCEPT
  14243. {
  14244. signalSemaphoreValuesCount = static_cast<uint32_t>( signalSemaphoreValues_.size() );
  14245. pSignalSemaphoreValues = signalSemaphoreValues_.data();
  14246. return *this;
  14247. }
  14248. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  14249. # endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  14250. operator VkD3D12FenceSubmitInfoKHR const &() const VULKAN_HPP_NOEXCEPT
  14251. {
  14252. return *reinterpret_cast<const VkD3D12FenceSubmitInfoKHR *>( this );
  14253. }
  14254. operator VkD3D12FenceSubmitInfoKHR &() VULKAN_HPP_NOEXCEPT
  14255. {
  14256. return *reinterpret_cast<VkD3D12FenceSubmitInfoKHR *>( this );
  14257. }
  14258. # if defined( VULKAN_HPP_USE_REFLECT )
  14259. # if 14 <= VULKAN_HPP_CPP_VERSION
  14260. auto
  14261. # else
  14262. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  14263. const void * const &,
  14264. uint32_t const &,
  14265. const uint64_t * const &,
  14266. uint32_t const &,
  14267. const uint64_t * const &>
  14268. # endif
  14269. reflect() const VULKAN_HPP_NOEXCEPT
  14270. {
  14271. return std::tie( sType, pNext, waitSemaphoreValuesCount, pWaitSemaphoreValues, signalSemaphoreValuesCount, pSignalSemaphoreValues );
  14272. }
  14273. # endif
  14274. # if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  14275. auto operator<=>( D3D12FenceSubmitInfoKHR const & ) const = default;
  14276. # else
  14277. bool operator==( D3D12FenceSubmitInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  14278. {
  14279. # if defined( VULKAN_HPP_USE_REFLECT )
  14280. return this->reflect() == rhs.reflect();
  14281. # else
  14282. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( waitSemaphoreValuesCount == rhs.waitSemaphoreValuesCount ) &&
  14283. ( pWaitSemaphoreValues == rhs.pWaitSemaphoreValues ) && ( signalSemaphoreValuesCount == rhs.signalSemaphoreValuesCount ) &&
  14284. ( pSignalSemaphoreValues == rhs.pSignalSemaphoreValues );
  14285. # endif
  14286. }
  14287. bool operator!=( D3D12FenceSubmitInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  14288. {
  14289. return !operator==( rhs );
  14290. }
  14291. # endif
  14292. public:
  14293. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eD3D12FenceSubmitInfoKHR;
  14294. const void * pNext = {};
  14295. uint32_t waitSemaphoreValuesCount = {};
  14296. const uint64_t * pWaitSemaphoreValues = {};
  14297. uint32_t signalSemaphoreValuesCount = {};
  14298. const uint64_t * pSignalSemaphoreValues = {};
  14299. };
  14300. template <>
  14301. struct CppType<StructureType, StructureType::eD3D12FenceSubmitInfoKHR>
  14302. {
  14303. using Type = D3D12FenceSubmitInfoKHR;
  14304. };
  14305. #endif /*VK_USE_PLATFORM_WIN32_KHR*/
  14306. struct DebugMarkerMarkerInfoEXT
  14307. {
  14308. using NativeType = VkDebugMarkerMarkerInfoEXT;
  14309. static const bool allowDuplicate = false;
  14310. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDebugMarkerMarkerInfoEXT;
  14311. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  14312. VULKAN_HPP_CONSTEXPR_14
  14313. DebugMarkerMarkerInfoEXT( const char * pMarkerName_ = {}, std::array<float, 4> const & color_ = {}, const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  14314. : pNext( pNext_ )
  14315. , pMarkerName( pMarkerName_ )
  14316. , color( color_ )
  14317. {
  14318. }
  14319. VULKAN_HPP_CONSTEXPR_14 DebugMarkerMarkerInfoEXT( DebugMarkerMarkerInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  14320. DebugMarkerMarkerInfoEXT( VkDebugMarkerMarkerInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  14321. : DebugMarkerMarkerInfoEXT( *reinterpret_cast<DebugMarkerMarkerInfoEXT const *>( &rhs ) )
  14322. {
  14323. }
  14324. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  14325. DebugMarkerMarkerInfoEXT & operator=( DebugMarkerMarkerInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  14326. DebugMarkerMarkerInfoEXT & operator=( VkDebugMarkerMarkerInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  14327. {
  14328. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DebugMarkerMarkerInfoEXT const *>( &rhs );
  14329. return *this;
  14330. }
  14331. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  14332. VULKAN_HPP_CONSTEXPR_14 DebugMarkerMarkerInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  14333. {
  14334. pNext = pNext_;
  14335. return *this;
  14336. }
  14337. VULKAN_HPP_CONSTEXPR_14 DebugMarkerMarkerInfoEXT & setPMarkerName( const char * pMarkerName_ ) VULKAN_HPP_NOEXCEPT
  14338. {
  14339. pMarkerName = pMarkerName_;
  14340. return *this;
  14341. }
  14342. VULKAN_HPP_CONSTEXPR_14 DebugMarkerMarkerInfoEXT & setColor( std::array<float, 4> color_ ) VULKAN_HPP_NOEXCEPT
  14343. {
  14344. color = color_;
  14345. return *this;
  14346. }
  14347. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  14348. operator VkDebugMarkerMarkerInfoEXT const &() const VULKAN_HPP_NOEXCEPT
  14349. {
  14350. return *reinterpret_cast<const VkDebugMarkerMarkerInfoEXT *>( this );
  14351. }
  14352. operator VkDebugMarkerMarkerInfoEXT &() VULKAN_HPP_NOEXCEPT
  14353. {
  14354. return *reinterpret_cast<VkDebugMarkerMarkerInfoEXT *>( this );
  14355. }
  14356. #if defined( VULKAN_HPP_USE_REFLECT )
  14357. # if 14 <= VULKAN_HPP_CPP_VERSION
  14358. auto
  14359. # else
  14360. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, const char * const &, VULKAN_HPP_NAMESPACE::ArrayWrapper1D<float, 4> const &>
  14361. # endif
  14362. reflect() const VULKAN_HPP_NOEXCEPT
  14363. {
  14364. return std::tie( sType, pNext, pMarkerName, color );
  14365. }
  14366. #endif
  14367. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  14368. std::partial_ordering operator<=>( DebugMarkerMarkerInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  14369. {
  14370. if ( auto cmp = sType <=> rhs.sType; cmp != 0 )
  14371. return cmp;
  14372. if ( auto cmp = pNext <=> rhs.pNext; cmp != 0 )
  14373. return cmp;
  14374. if ( pMarkerName != rhs.pMarkerName )
  14375. if ( auto cmp = strcmp( pMarkerName, rhs.pMarkerName ); cmp != 0 )
  14376. return ( cmp < 0 ) ? std::partial_ordering::less : std::partial_ordering::greater;
  14377. if ( auto cmp = color <=> rhs.color; cmp != 0 )
  14378. return cmp;
  14379. return std::partial_ordering::equivalent;
  14380. }
  14381. #endif
  14382. bool operator==( DebugMarkerMarkerInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  14383. {
  14384. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( ( pMarkerName == rhs.pMarkerName ) || ( strcmp( pMarkerName, rhs.pMarkerName ) == 0 ) ) &&
  14385. ( color == rhs.color );
  14386. }
  14387. bool operator!=( DebugMarkerMarkerInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  14388. {
  14389. return !operator==( rhs );
  14390. }
  14391. public:
  14392. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDebugMarkerMarkerInfoEXT;
  14393. const void * pNext = {};
  14394. const char * pMarkerName = {};
  14395. VULKAN_HPP_NAMESPACE::ArrayWrapper1D<float, 4> color = {};
  14396. };
  14397. template <>
  14398. struct CppType<StructureType, StructureType::eDebugMarkerMarkerInfoEXT>
  14399. {
  14400. using Type = DebugMarkerMarkerInfoEXT;
  14401. };
  14402. struct DebugMarkerObjectNameInfoEXT
  14403. {
  14404. using NativeType = VkDebugMarkerObjectNameInfoEXT;
  14405. static const bool allowDuplicate = false;
  14406. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDebugMarkerObjectNameInfoEXT;
  14407. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  14408. VULKAN_HPP_CONSTEXPR
  14409. DebugMarkerObjectNameInfoEXT( VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT objectType_ = VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eUnknown,
  14410. uint64_t object_ = {},
  14411. const char * pObjectName_ = {},
  14412. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  14413. : pNext( pNext_ )
  14414. , objectType( objectType_ )
  14415. , object( object_ )
  14416. , pObjectName( pObjectName_ )
  14417. {
  14418. }
  14419. VULKAN_HPP_CONSTEXPR DebugMarkerObjectNameInfoEXT( DebugMarkerObjectNameInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  14420. DebugMarkerObjectNameInfoEXT( VkDebugMarkerObjectNameInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  14421. : DebugMarkerObjectNameInfoEXT( *reinterpret_cast<DebugMarkerObjectNameInfoEXT const *>( &rhs ) )
  14422. {
  14423. }
  14424. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  14425. DebugMarkerObjectNameInfoEXT & operator=( DebugMarkerObjectNameInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  14426. DebugMarkerObjectNameInfoEXT & operator=( VkDebugMarkerObjectNameInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  14427. {
  14428. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DebugMarkerObjectNameInfoEXT const *>( &rhs );
  14429. return *this;
  14430. }
  14431. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  14432. VULKAN_HPP_CONSTEXPR_14 DebugMarkerObjectNameInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  14433. {
  14434. pNext = pNext_;
  14435. return *this;
  14436. }
  14437. VULKAN_HPP_CONSTEXPR_14 DebugMarkerObjectNameInfoEXT & setObjectType( VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT objectType_ ) VULKAN_HPP_NOEXCEPT
  14438. {
  14439. objectType = objectType_;
  14440. return *this;
  14441. }
  14442. VULKAN_HPP_CONSTEXPR_14 DebugMarkerObjectNameInfoEXT & setObject( uint64_t object_ ) VULKAN_HPP_NOEXCEPT
  14443. {
  14444. object = object_;
  14445. return *this;
  14446. }
  14447. VULKAN_HPP_CONSTEXPR_14 DebugMarkerObjectNameInfoEXT & setPObjectName( const char * pObjectName_ ) VULKAN_HPP_NOEXCEPT
  14448. {
  14449. pObjectName = pObjectName_;
  14450. return *this;
  14451. }
  14452. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  14453. operator VkDebugMarkerObjectNameInfoEXT const &() const VULKAN_HPP_NOEXCEPT
  14454. {
  14455. return *reinterpret_cast<const VkDebugMarkerObjectNameInfoEXT *>( this );
  14456. }
  14457. operator VkDebugMarkerObjectNameInfoEXT &() VULKAN_HPP_NOEXCEPT
  14458. {
  14459. return *reinterpret_cast<VkDebugMarkerObjectNameInfoEXT *>( this );
  14460. }
  14461. #if defined( VULKAN_HPP_USE_REFLECT )
  14462. # if 14 <= VULKAN_HPP_CPP_VERSION
  14463. auto
  14464. # else
  14465. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  14466. const void * const &,
  14467. VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT const &,
  14468. uint64_t const &,
  14469. const char * const &>
  14470. # endif
  14471. reflect() const VULKAN_HPP_NOEXCEPT
  14472. {
  14473. return std::tie( sType, pNext, objectType, object, pObjectName );
  14474. }
  14475. #endif
  14476. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  14477. std::strong_ordering operator<=>( DebugMarkerObjectNameInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  14478. {
  14479. if ( auto cmp = sType <=> rhs.sType; cmp != 0 )
  14480. return cmp;
  14481. if ( auto cmp = pNext <=> rhs.pNext; cmp != 0 )
  14482. return cmp;
  14483. if ( auto cmp = objectType <=> rhs.objectType; cmp != 0 )
  14484. return cmp;
  14485. if ( auto cmp = object <=> rhs.object; cmp != 0 )
  14486. return cmp;
  14487. if ( pObjectName != rhs.pObjectName )
  14488. if ( auto cmp = strcmp( pObjectName, rhs.pObjectName ); cmp != 0 )
  14489. return ( cmp < 0 ) ? std::strong_ordering::less : std::strong_ordering::greater;
  14490. return std::strong_ordering::equivalent;
  14491. }
  14492. #endif
  14493. bool operator==( DebugMarkerObjectNameInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  14494. {
  14495. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( objectType == rhs.objectType ) && ( object == rhs.object ) &&
  14496. ( ( pObjectName == rhs.pObjectName ) || ( strcmp( pObjectName, rhs.pObjectName ) == 0 ) );
  14497. }
  14498. bool operator!=( DebugMarkerObjectNameInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  14499. {
  14500. return !operator==( rhs );
  14501. }
  14502. public:
  14503. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDebugMarkerObjectNameInfoEXT;
  14504. const void * pNext = {};
  14505. VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT objectType = VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eUnknown;
  14506. uint64_t object = {};
  14507. const char * pObjectName = {};
  14508. };
  14509. template <>
  14510. struct CppType<StructureType, StructureType::eDebugMarkerObjectNameInfoEXT>
  14511. {
  14512. using Type = DebugMarkerObjectNameInfoEXT;
  14513. };
  14514. struct DebugMarkerObjectTagInfoEXT
  14515. {
  14516. using NativeType = VkDebugMarkerObjectTagInfoEXT;
  14517. static const bool allowDuplicate = false;
  14518. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDebugMarkerObjectTagInfoEXT;
  14519. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  14520. VULKAN_HPP_CONSTEXPR
  14521. DebugMarkerObjectTagInfoEXT( VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT objectType_ = VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eUnknown,
  14522. uint64_t object_ = {},
  14523. uint64_t tagName_ = {},
  14524. size_t tagSize_ = {},
  14525. const void * pTag_ = {},
  14526. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  14527. : pNext( pNext_ )
  14528. , objectType( objectType_ )
  14529. , object( object_ )
  14530. , tagName( tagName_ )
  14531. , tagSize( tagSize_ )
  14532. , pTag( pTag_ )
  14533. {
  14534. }
  14535. VULKAN_HPP_CONSTEXPR DebugMarkerObjectTagInfoEXT( DebugMarkerObjectTagInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  14536. DebugMarkerObjectTagInfoEXT( VkDebugMarkerObjectTagInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  14537. : DebugMarkerObjectTagInfoEXT( *reinterpret_cast<DebugMarkerObjectTagInfoEXT const *>( &rhs ) )
  14538. {
  14539. }
  14540. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  14541. template <typename T>
  14542. DebugMarkerObjectTagInfoEXT( VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT objectType_,
  14543. uint64_t object_,
  14544. uint64_t tagName_,
  14545. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const T> const & tag_,
  14546. const void * pNext_ = nullptr )
  14547. : pNext( pNext_ ), objectType( objectType_ ), object( object_ ), tagName( tagName_ ), tagSize( tag_.size() * sizeof( T ) ), pTag( tag_.data() )
  14548. {
  14549. }
  14550. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  14551. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  14552. DebugMarkerObjectTagInfoEXT & operator=( DebugMarkerObjectTagInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  14553. DebugMarkerObjectTagInfoEXT & operator=( VkDebugMarkerObjectTagInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  14554. {
  14555. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DebugMarkerObjectTagInfoEXT const *>( &rhs );
  14556. return *this;
  14557. }
  14558. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  14559. VULKAN_HPP_CONSTEXPR_14 DebugMarkerObjectTagInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  14560. {
  14561. pNext = pNext_;
  14562. return *this;
  14563. }
  14564. VULKAN_HPP_CONSTEXPR_14 DebugMarkerObjectTagInfoEXT & setObjectType( VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT objectType_ ) VULKAN_HPP_NOEXCEPT
  14565. {
  14566. objectType = objectType_;
  14567. return *this;
  14568. }
  14569. VULKAN_HPP_CONSTEXPR_14 DebugMarkerObjectTagInfoEXT & setObject( uint64_t object_ ) VULKAN_HPP_NOEXCEPT
  14570. {
  14571. object = object_;
  14572. return *this;
  14573. }
  14574. VULKAN_HPP_CONSTEXPR_14 DebugMarkerObjectTagInfoEXT & setTagName( uint64_t tagName_ ) VULKAN_HPP_NOEXCEPT
  14575. {
  14576. tagName = tagName_;
  14577. return *this;
  14578. }
  14579. VULKAN_HPP_CONSTEXPR_14 DebugMarkerObjectTagInfoEXT & setTagSize( size_t tagSize_ ) VULKAN_HPP_NOEXCEPT
  14580. {
  14581. tagSize = tagSize_;
  14582. return *this;
  14583. }
  14584. VULKAN_HPP_CONSTEXPR_14 DebugMarkerObjectTagInfoEXT & setPTag( const void * pTag_ ) VULKAN_HPP_NOEXCEPT
  14585. {
  14586. pTag = pTag_;
  14587. return *this;
  14588. }
  14589. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  14590. template <typename T>
  14591. DebugMarkerObjectTagInfoEXT & setTag( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const T> const & tag_ ) VULKAN_HPP_NOEXCEPT
  14592. {
  14593. tagSize = tag_.size() * sizeof( T );
  14594. pTag = tag_.data();
  14595. return *this;
  14596. }
  14597. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  14598. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  14599. operator VkDebugMarkerObjectTagInfoEXT const &() const VULKAN_HPP_NOEXCEPT
  14600. {
  14601. return *reinterpret_cast<const VkDebugMarkerObjectTagInfoEXT *>( this );
  14602. }
  14603. operator VkDebugMarkerObjectTagInfoEXT &() VULKAN_HPP_NOEXCEPT
  14604. {
  14605. return *reinterpret_cast<VkDebugMarkerObjectTagInfoEXT *>( this );
  14606. }
  14607. #if defined( VULKAN_HPP_USE_REFLECT )
  14608. # if 14 <= VULKAN_HPP_CPP_VERSION
  14609. auto
  14610. # else
  14611. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  14612. const void * const &,
  14613. VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT const &,
  14614. uint64_t const &,
  14615. uint64_t const &,
  14616. size_t const &,
  14617. const void * const &>
  14618. # endif
  14619. reflect() const VULKAN_HPP_NOEXCEPT
  14620. {
  14621. return std::tie( sType, pNext, objectType, object, tagName, tagSize, pTag );
  14622. }
  14623. #endif
  14624. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  14625. auto operator<=>( DebugMarkerObjectTagInfoEXT const & ) const = default;
  14626. #else
  14627. bool operator==( DebugMarkerObjectTagInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  14628. {
  14629. # if defined( VULKAN_HPP_USE_REFLECT )
  14630. return this->reflect() == rhs.reflect();
  14631. # else
  14632. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( objectType == rhs.objectType ) && ( object == rhs.object ) && ( tagName == rhs.tagName ) &&
  14633. ( tagSize == rhs.tagSize ) && ( pTag == rhs.pTag );
  14634. # endif
  14635. }
  14636. bool operator!=( DebugMarkerObjectTagInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  14637. {
  14638. return !operator==( rhs );
  14639. }
  14640. #endif
  14641. public:
  14642. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDebugMarkerObjectTagInfoEXT;
  14643. const void * pNext = {};
  14644. VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT objectType = VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eUnknown;
  14645. uint64_t object = {};
  14646. uint64_t tagName = {};
  14647. size_t tagSize = {};
  14648. const void * pTag = {};
  14649. };
  14650. template <>
  14651. struct CppType<StructureType, StructureType::eDebugMarkerObjectTagInfoEXT>
  14652. {
  14653. using Type = DebugMarkerObjectTagInfoEXT;
  14654. };
  14655. struct DebugReportCallbackCreateInfoEXT
  14656. {
  14657. using NativeType = VkDebugReportCallbackCreateInfoEXT;
  14658. static const bool allowDuplicate = false;
  14659. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDebugReportCallbackCreateInfoEXT;
  14660. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  14661. VULKAN_HPP_CONSTEXPR DebugReportCallbackCreateInfoEXT( VULKAN_HPP_NAMESPACE::DebugReportFlagsEXT flags_ = {},
  14662. PFN_vkDebugReportCallbackEXT pfnCallback_ = {},
  14663. void * pUserData_ = {},
  14664. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  14665. : pNext( pNext_ )
  14666. , flags( flags_ )
  14667. , pfnCallback( pfnCallback_ )
  14668. , pUserData( pUserData_ )
  14669. {
  14670. }
  14671. VULKAN_HPP_CONSTEXPR DebugReportCallbackCreateInfoEXT( DebugReportCallbackCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  14672. DebugReportCallbackCreateInfoEXT( VkDebugReportCallbackCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  14673. : DebugReportCallbackCreateInfoEXT( *reinterpret_cast<DebugReportCallbackCreateInfoEXT const *>( &rhs ) )
  14674. {
  14675. }
  14676. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  14677. DebugReportCallbackCreateInfoEXT & operator=( DebugReportCallbackCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  14678. DebugReportCallbackCreateInfoEXT & operator=( VkDebugReportCallbackCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  14679. {
  14680. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DebugReportCallbackCreateInfoEXT const *>( &rhs );
  14681. return *this;
  14682. }
  14683. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  14684. VULKAN_HPP_CONSTEXPR_14 DebugReportCallbackCreateInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  14685. {
  14686. pNext = pNext_;
  14687. return *this;
  14688. }
  14689. VULKAN_HPP_CONSTEXPR_14 DebugReportCallbackCreateInfoEXT & setFlags( VULKAN_HPP_NAMESPACE::DebugReportFlagsEXT flags_ ) VULKAN_HPP_NOEXCEPT
  14690. {
  14691. flags = flags_;
  14692. return *this;
  14693. }
  14694. VULKAN_HPP_CONSTEXPR_14 DebugReportCallbackCreateInfoEXT & setPfnCallback( PFN_vkDebugReportCallbackEXT pfnCallback_ ) VULKAN_HPP_NOEXCEPT
  14695. {
  14696. pfnCallback = pfnCallback_;
  14697. return *this;
  14698. }
  14699. VULKAN_HPP_CONSTEXPR_14 DebugReportCallbackCreateInfoEXT & setPUserData( void * pUserData_ ) VULKAN_HPP_NOEXCEPT
  14700. {
  14701. pUserData = pUserData_;
  14702. return *this;
  14703. }
  14704. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  14705. operator VkDebugReportCallbackCreateInfoEXT const &() const VULKAN_HPP_NOEXCEPT
  14706. {
  14707. return *reinterpret_cast<const VkDebugReportCallbackCreateInfoEXT *>( this );
  14708. }
  14709. operator VkDebugReportCallbackCreateInfoEXT &() VULKAN_HPP_NOEXCEPT
  14710. {
  14711. return *reinterpret_cast<VkDebugReportCallbackCreateInfoEXT *>( this );
  14712. }
  14713. #if defined( VULKAN_HPP_USE_REFLECT )
  14714. # if 14 <= VULKAN_HPP_CPP_VERSION
  14715. auto
  14716. # else
  14717. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  14718. const void * const &,
  14719. VULKAN_HPP_NAMESPACE::DebugReportFlagsEXT const &,
  14720. PFN_vkDebugReportCallbackEXT const &,
  14721. void * const &>
  14722. # endif
  14723. reflect() const VULKAN_HPP_NOEXCEPT
  14724. {
  14725. return std::tie( sType, pNext, flags, pfnCallback, pUserData );
  14726. }
  14727. #endif
  14728. bool operator==( DebugReportCallbackCreateInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  14729. {
  14730. #if defined( VULKAN_HPP_USE_REFLECT )
  14731. return this->reflect() == rhs.reflect();
  14732. #else
  14733. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( flags == rhs.flags ) && ( pfnCallback == rhs.pfnCallback ) && ( pUserData == rhs.pUserData );
  14734. #endif
  14735. }
  14736. bool operator!=( DebugReportCallbackCreateInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  14737. {
  14738. return !operator==( rhs );
  14739. }
  14740. public:
  14741. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDebugReportCallbackCreateInfoEXT;
  14742. const void * pNext = {};
  14743. VULKAN_HPP_NAMESPACE::DebugReportFlagsEXT flags = {};
  14744. PFN_vkDebugReportCallbackEXT pfnCallback = {};
  14745. void * pUserData = {};
  14746. };
  14747. template <>
  14748. struct CppType<StructureType, StructureType::eDebugReportCallbackCreateInfoEXT>
  14749. {
  14750. using Type = DebugReportCallbackCreateInfoEXT;
  14751. };
  14752. struct DebugUtilsLabelEXT
  14753. {
  14754. using NativeType = VkDebugUtilsLabelEXT;
  14755. static const bool allowDuplicate = false;
  14756. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDebugUtilsLabelEXT;
  14757. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  14758. VULKAN_HPP_CONSTEXPR_14
  14759. DebugUtilsLabelEXT( const char * pLabelName_ = {}, std::array<float, 4> const & color_ = {}, const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  14760. : pNext( pNext_ )
  14761. , pLabelName( pLabelName_ )
  14762. , color( color_ )
  14763. {
  14764. }
  14765. VULKAN_HPP_CONSTEXPR_14 DebugUtilsLabelEXT( DebugUtilsLabelEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  14766. DebugUtilsLabelEXT( VkDebugUtilsLabelEXT const & rhs ) VULKAN_HPP_NOEXCEPT : DebugUtilsLabelEXT( *reinterpret_cast<DebugUtilsLabelEXT const *>( &rhs ) ) {}
  14767. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  14768. DebugUtilsLabelEXT & operator=( DebugUtilsLabelEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  14769. DebugUtilsLabelEXT & operator=( VkDebugUtilsLabelEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  14770. {
  14771. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DebugUtilsLabelEXT const *>( &rhs );
  14772. return *this;
  14773. }
  14774. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  14775. VULKAN_HPP_CONSTEXPR_14 DebugUtilsLabelEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  14776. {
  14777. pNext = pNext_;
  14778. return *this;
  14779. }
  14780. VULKAN_HPP_CONSTEXPR_14 DebugUtilsLabelEXT & setPLabelName( const char * pLabelName_ ) VULKAN_HPP_NOEXCEPT
  14781. {
  14782. pLabelName = pLabelName_;
  14783. return *this;
  14784. }
  14785. VULKAN_HPP_CONSTEXPR_14 DebugUtilsLabelEXT & setColor( std::array<float, 4> color_ ) VULKAN_HPP_NOEXCEPT
  14786. {
  14787. color = color_;
  14788. return *this;
  14789. }
  14790. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  14791. operator VkDebugUtilsLabelEXT const &() const VULKAN_HPP_NOEXCEPT
  14792. {
  14793. return *reinterpret_cast<const VkDebugUtilsLabelEXT *>( this );
  14794. }
  14795. operator VkDebugUtilsLabelEXT &() VULKAN_HPP_NOEXCEPT
  14796. {
  14797. return *reinterpret_cast<VkDebugUtilsLabelEXT *>( this );
  14798. }
  14799. #if defined( VULKAN_HPP_USE_REFLECT )
  14800. # if 14 <= VULKAN_HPP_CPP_VERSION
  14801. auto
  14802. # else
  14803. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, const char * const &, VULKAN_HPP_NAMESPACE::ArrayWrapper1D<float, 4> const &>
  14804. # endif
  14805. reflect() const VULKAN_HPP_NOEXCEPT
  14806. {
  14807. return std::tie( sType, pNext, pLabelName, color );
  14808. }
  14809. #endif
  14810. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  14811. std::partial_ordering operator<=>( DebugUtilsLabelEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  14812. {
  14813. if ( auto cmp = sType <=> rhs.sType; cmp != 0 )
  14814. return cmp;
  14815. if ( auto cmp = pNext <=> rhs.pNext; cmp != 0 )
  14816. return cmp;
  14817. if ( pLabelName != rhs.pLabelName )
  14818. if ( auto cmp = strcmp( pLabelName, rhs.pLabelName ); cmp != 0 )
  14819. return ( cmp < 0 ) ? std::partial_ordering::less : std::partial_ordering::greater;
  14820. if ( auto cmp = color <=> rhs.color; cmp != 0 )
  14821. return cmp;
  14822. return std::partial_ordering::equivalent;
  14823. }
  14824. #endif
  14825. bool operator==( DebugUtilsLabelEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  14826. {
  14827. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( ( pLabelName == rhs.pLabelName ) || ( strcmp( pLabelName, rhs.pLabelName ) == 0 ) ) &&
  14828. ( color == rhs.color );
  14829. }
  14830. bool operator!=( DebugUtilsLabelEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  14831. {
  14832. return !operator==( rhs );
  14833. }
  14834. public:
  14835. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDebugUtilsLabelEXT;
  14836. const void * pNext = {};
  14837. const char * pLabelName = {};
  14838. VULKAN_HPP_NAMESPACE::ArrayWrapper1D<float, 4> color = {};
  14839. };
  14840. template <>
  14841. struct CppType<StructureType, StructureType::eDebugUtilsLabelEXT>
  14842. {
  14843. using Type = DebugUtilsLabelEXT;
  14844. };
  14845. struct DebugUtilsObjectNameInfoEXT
  14846. {
  14847. using NativeType = VkDebugUtilsObjectNameInfoEXT;
  14848. static const bool allowDuplicate = false;
  14849. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDebugUtilsObjectNameInfoEXT;
  14850. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  14851. VULKAN_HPP_CONSTEXPR DebugUtilsObjectNameInfoEXT( VULKAN_HPP_NAMESPACE::ObjectType objectType_ = VULKAN_HPP_NAMESPACE::ObjectType::eUnknown,
  14852. uint64_t objectHandle_ = {},
  14853. const char * pObjectName_ = {},
  14854. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  14855. : pNext( pNext_ )
  14856. , objectType( objectType_ )
  14857. , objectHandle( objectHandle_ )
  14858. , pObjectName( pObjectName_ )
  14859. {
  14860. }
  14861. VULKAN_HPP_CONSTEXPR DebugUtilsObjectNameInfoEXT( DebugUtilsObjectNameInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  14862. DebugUtilsObjectNameInfoEXT( VkDebugUtilsObjectNameInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  14863. : DebugUtilsObjectNameInfoEXT( *reinterpret_cast<DebugUtilsObjectNameInfoEXT const *>( &rhs ) )
  14864. {
  14865. }
  14866. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  14867. DebugUtilsObjectNameInfoEXT & operator=( DebugUtilsObjectNameInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  14868. DebugUtilsObjectNameInfoEXT & operator=( VkDebugUtilsObjectNameInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  14869. {
  14870. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DebugUtilsObjectNameInfoEXT const *>( &rhs );
  14871. return *this;
  14872. }
  14873. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  14874. VULKAN_HPP_CONSTEXPR_14 DebugUtilsObjectNameInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  14875. {
  14876. pNext = pNext_;
  14877. return *this;
  14878. }
  14879. VULKAN_HPP_CONSTEXPR_14 DebugUtilsObjectNameInfoEXT & setObjectType( VULKAN_HPP_NAMESPACE::ObjectType objectType_ ) VULKAN_HPP_NOEXCEPT
  14880. {
  14881. objectType = objectType_;
  14882. return *this;
  14883. }
  14884. VULKAN_HPP_CONSTEXPR_14 DebugUtilsObjectNameInfoEXT & setObjectHandle( uint64_t objectHandle_ ) VULKAN_HPP_NOEXCEPT
  14885. {
  14886. objectHandle = objectHandle_;
  14887. return *this;
  14888. }
  14889. VULKAN_HPP_CONSTEXPR_14 DebugUtilsObjectNameInfoEXT & setPObjectName( const char * pObjectName_ ) VULKAN_HPP_NOEXCEPT
  14890. {
  14891. pObjectName = pObjectName_;
  14892. return *this;
  14893. }
  14894. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  14895. operator VkDebugUtilsObjectNameInfoEXT const &() const VULKAN_HPP_NOEXCEPT
  14896. {
  14897. return *reinterpret_cast<const VkDebugUtilsObjectNameInfoEXT *>( this );
  14898. }
  14899. operator VkDebugUtilsObjectNameInfoEXT &() VULKAN_HPP_NOEXCEPT
  14900. {
  14901. return *reinterpret_cast<VkDebugUtilsObjectNameInfoEXT *>( this );
  14902. }
  14903. #if defined( VULKAN_HPP_USE_REFLECT )
  14904. # if 14 <= VULKAN_HPP_CPP_VERSION
  14905. auto
  14906. # else
  14907. std::
  14908. tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::ObjectType const &, uint64_t const &, const char * const &>
  14909. # endif
  14910. reflect() const VULKAN_HPP_NOEXCEPT
  14911. {
  14912. return std::tie( sType, pNext, objectType, objectHandle, pObjectName );
  14913. }
  14914. #endif
  14915. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  14916. std::strong_ordering operator<=>( DebugUtilsObjectNameInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  14917. {
  14918. if ( auto cmp = sType <=> rhs.sType; cmp != 0 )
  14919. return cmp;
  14920. if ( auto cmp = pNext <=> rhs.pNext; cmp != 0 )
  14921. return cmp;
  14922. if ( auto cmp = objectType <=> rhs.objectType; cmp != 0 )
  14923. return cmp;
  14924. if ( auto cmp = objectHandle <=> rhs.objectHandle; cmp != 0 )
  14925. return cmp;
  14926. if ( pObjectName != rhs.pObjectName )
  14927. if ( auto cmp = strcmp( pObjectName, rhs.pObjectName ); cmp != 0 )
  14928. return ( cmp < 0 ) ? std::strong_ordering::less : std::strong_ordering::greater;
  14929. return std::strong_ordering::equivalent;
  14930. }
  14931. #endif
  14932. bool operator==( DebugUtilsObjectNameInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  14933. {
  14934. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( objectType == rhs.objectType ) && ( objectHandle == rhs.objectHandle ) &&
  14935. ( ( pObjectName == rhs.pObjectName ) || ( strcmp( pObjectName, rhs.pObjectName ) == 0 ) );
  14936. }
  14937. bool operator!=( DebugUtilsObjectNameInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  14938. {
  14939. return !operator==( rhs );
  14940. }
  14941. public:
  14942. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDebugUtilsObjectNameInfoEXT;
  14943. const void * pNext = {};
  14944. VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eUnknown;
  14945. uint64_t objectHandle = {};
  14946. const char * pObjectName = {};
  14947. };
  14948. template <>
  14949. struct CppType<StructureType, StructureType::eDebugUtilsObjectNameInfoEXT>
  14950. {
  14951. using Type = DebugUtilsObjectNameInfoEXT;
  14952. };
  14953. struct DebugUtilsMessengerCallbackDataEXT
  14954. {
  14955. using NativeType = VkDebugUtilsMessengerCallbackDataEXT;
  14956. static const bool allowDuplicate = false;
  14957. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDebugUtilsMessengerCallbackDataEXT;
  14958. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  14959. VULKAN_HPP_CONSTEXPR_14 DebugUtilsMessengerCallbackDataEXT( VULKAN_HPP_NAMESPACE::DebugUtilsMessengerCallbackDataFlagsEXT flags_ = {},
  14960. const char * pMessageIdName_ = {},
  14961. int32_t messageIdNumber_ = {},
  14962. const char * pMessage_ = {},
  14963. uint32_t queueLabelCount_ = {},
  14964. const VULKAN_HPP_NAMESPACE::DebugUtilsLabelEXT * pQueueLabels_ = {},
  14965. uint32_t cmdBufLabelCount_ = {},
  14966. const VULKAN_HPP_NAMESPACE::DebugUtilsLabelEXT * pCmdBufLabels_ = {},
  14967. uint32_t objectCount_ = {},
  14968. const VULKAN_HPP_NAMESPACE::DebugUtilsObjectNameInfoEXT * pObjects_ = {},
  14969. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  14970. : pNext( pNext_ )
  14971. , flags( flags_ )
  14972. , pMessageIdName( pMessageIdName_ )
  14973. , messageIdNumber( messageIdNumber_ )
  14974. , pMessage( pMessage_ )
  14975. , queueLabelCount( queueLabelCount_ )
  14976. , pQueueLabels( pQueueLabels_ )
  14977. , cmdBufLabelCount( cmdBufLabelCount_ )
  14978. , pCmdBufLabels( pCmdBufLabels_ )
  14979. , objectCount( objectCount_ )
  14980. , pObjects( pObjects_ )
  14981. {
  14982. }
  14983. VULKAN_HPP_CONSTEXPR_14 DebugUtilsMessengerCallbackDataEXT( DebugUtilsMessengerCallbackDataEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  14984. DebugUtilsMessengerCallbackDataEXT( VkDebugUtilsMessengerCallbackDataEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  14985. : DebugUtilsMessengerCallbackDataEXT( *reinterpret_cast<DebugUtilsMessengerCallbackDataEXT const *>( &rhs ) )
  14986. {
  14987. }
  14988. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  14989. DebugUtilsMessengerCallbackDataEXT(
  14990. VULKAN_HPP_NAMESPACE::DebugUtilsMessengerCallbackDataFlagsEXT flags_,
  14991. const char * pMessageIdName_,
  14992. int32_t messageIdNumber_,
  14993. const char * pMessage_,
  14994. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::DebugUtilsLabelEXT> const & queueLabels_,
  14995. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::DebugUtilsLabelEXT> const & cmdBufLabels_ = {},
  14996. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::DebugUtilsObjectNameInfoEXT> const & objects_ = {},
  14997. const void * pNext_ = nullptr )
  14998. : pNext( pNext_ )
  14999. , flags( flags_ )
  15000. , pMessageIdName( pMessageIdName_ )
  15001. , messageIdNumber( messageIdNumber_ )
  15002. , pMessage( pMessage_ )
  15003. , queueLabelCount( static_cast<uint32_t>( queueLabels_.size() ) )
  15004. , pQueueLabels( queueLabels_.data() )
  15005. , cmdBufLabelCount( static_cast<uint32_t>( cmdBufLabels_.size() ) )
  15006. , pCmdBufLabels( cmdBufLabels_.data() )
  15007. , objectCount( static_cast<uint32_t>( objects_.size() ) )
  15008. , pObjects( objects_.data() )
  15009. {
  15010. }
  15011. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  15012. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  15013. DebugUtilsMessengerCallbackDataEXT & operator=( DebugUtilsMessengerCallbackDataEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  15014. DebugUtilsMessengerCallbackDataEXT & operator=( VkDebugUtilsMessengerCallbackDataEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  15015. {
  15016. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DebugUtilsMessengerCallbackDataEXT const *>( &rhs );
  15017. return *this;
  15018. }
  15019. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  15020. VULKAN_HPP_CONSTEXPR_14 DebugUtilsMessengerCallbackDataEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  15021. {
  15022. pNext = pNext_;
  15023. return *this;
  15024. }
  15025. VULKAN_HPP_CONSTEXPR_14 DebugUtilsMessengerCallbackDataEXT &
  15026. setFlags( VULKAN_HPP_NAMESPACE::DebugUtilsMessengerCallbackDataFlagsEXT flags_ ) VULKAN_HPP_NOEXCEPT
  15027. {
  15028. flags = flags_;
  15029. return *this;
  15030. }
  15031. VULKAN_HPP_CONSTEXPR_14 DebugUtilsMessengerCallbackDataEXT & setPMessageIdName( const char * pMessageIdName_ ) VULKAN_HPP_NOEXCEPT
  15032. {
  15033. pMessageIdName = pMessageIdName_;
  15034. return *this;
  15035. }
  15036. VULKAN_HPP_CONSTEXPR_14 DebugUtilsMessengerCallbackDataEXT & setMessageIdNumber( int32_t messageIdNumber_ ) VULKAN_HPP_NOEXCEPT
  15037. {
  15038. messageIdNumber = messageIdNumber_;
  15039. return *this;
  15040. }
  15041. VULKAN_HPP_CONSTEXPR_14 DebugUtilsMessengerCallbackDataEXT & setPMessage( const char * pMessage_ ) VULKAN_HPP_NOEXCEPT
  15042. {
  15043. pMessage = pMessage_;
  15044. return *this;
  15045. }
  15046. VULKAN_HPP_CONSTEXPR_14 DebugUtilsMessengerCallbackDataEXT & setQueueLabelCount( uint32_t queueLabelCount_ ) VULKAN_HPP_NOEXCEPT
  15047. {
  15048. queueLabelCount = queueLabelCount_;
  15049. return *this;
  15050. }
  15051. VULKAN_HPP_CONSTEXPR_14 DebugUtilsMessengerCallbackDataEXT &
  15052. setPQueueLabels( const VULKAN_HPP_NAMESPACE::DebugUtilsLabelEXT * pQueueLabels_ ) VULKAN_HPP_NOEXCEPT
  15053. {
  15054. pQueueLabels = pQueueLabels_;
  15055. return *this;
  15056. }
  15057. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  15058. DebugUtilsMessengerCallbackDataEXT &
  15059. setQueueLabels( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::DebugUtilsLabelEXT> const & queueLabels_ ) VULKAN_HPP_NOEXCEPT
  15060. {
  15061. queueLabelCount = static_cast<uint32_t>( queueLabels_.size() );
  15062. pQueueLabels = queueLabels_.data();
  15063. return *this;
  15064. }
  15065. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  15066. VULKAN_HPP_CONSTEXPR_14 DebugUtilsMessengerCallbackDataEXT & setCmdBufLabelCount( uint32_t cmdBufLabelCount_ ) VULKAN_HPP_NOEXCEPT
  15067. {
  15068. cmdBufLabelCount = cmdBufLabelCount_;
  15069. return *this;
  15070. }
  15071. VULKAN_HPP_CONSTEXPR_14 DebugUtilsMessengerCallbackDataEXT &
  15072. setPCmdBufLabels( const VULKAN_HPP_NAMESPACE::DebugUtilsLabelEXT * pCmdBufLabels_ ) VULKAN_HPP_NOEXCEPT
  15073. {
  15074. pCmdBufLabels = pCmdBufLabels_;
  15075. return *this;
  15076. }
  15077. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  15078. DebugUtilsMessengerCallbackDataEXT &
  15079. setCmdBufLabels( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::DebugUtilsLabelEXT> const & cmdBufLabels_ ) VULKAN_HPP_NOEXCEPT
  15080. {
  15081. cmdBufLabelCount = static_cast<uint32_t>( cmdBufLabels_.size() );
  15082. pCmdBufLabels = cmdBufLabels_.data();
  15083. return *this;
  15084. }
  15085. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  15086. VULKAN_HPP_CONSTEXPR_14 DebugUtilsMessengerCallbackDataEXT & setObjectCount( uint32_t objectCount_ ) VULKAN_HPP_NOEXCEPT
  15087. {
  15088. objectCount = objectCount_;
  15089. return *this;
  15090. }
  15091. VULKAN_HPP_CONSTEXPR_14 DebugUtilsMessengerCallbackDataEXT &
  15092. setPObjects( const VULKAN_HPP_NAMESPACE::DebugUtilsObjectNameInfoEXT * pObjects_ ) VULKAN_HPP_NOEXCEPT
  15093. {
  15094. pObjects = pObjects_;
  15095. return *this;
  15096. }
  15097. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  15098. DebugUtilsMessengerCallbackDataEXT &
  15099. setObjects( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::DebugUtilsObjectNameInfoEXT> const & objects_ ) VULKAN_HPP_NOEXCEPT
  15100. {
  15101. objectCount = static_cast<uint32_t>( objects_.size() );
  15102. pObjects = objects_.data();
  15103. return *this;
  15104. }
  15105. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  15106. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  15107. operator VkDebugUtilsMessengerCallbackDataEXT const &() const VULKAN_HPP_NOEXCEPT
  15108. {
  15109. return *reinterpret_cast<const VkDebugUtilsMessengerCallbackDataEXT *>( this );
  15110. }
  15111. operator VkDebugUtilsMessengerCallbackDataEXT &() VULKAN_HPP_NOEXCEPT
  15112. {
  15113. return *reinterpret_cast<VkDebugUtilsMessengerCallbackDataEXT *>( this );
  15114. }
  15115. #if defined( VULKAN_HPP_USE_REFLECT )
  15116. # if 14 <= VULKAN_HPP_CPP_VERSION
  15117. auto
  15118. # else
  15119. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  15120. const void * const &,
  15121. VULKAN_HPP_NAMESPACE::DebugUtilsMessengerCallbackDataFlagsEXT const &,
  15122. const char * const &,
  15123. int32_t const &,
  15124. const char * const &,
  15125. uint32_t const &,
  15126. const VULKAN_HPP_NAMESPACE::DebugUtilsLabelEXT * const &,
  15127. uint32_t const &,
  15128. const VULKAN_HPP_NAMESPACE::DebugUtilsLabelEXT * const &,
  15129. uint32_t const &,
  15130. const VULKAN_HPP_NAMESPACE::DebugUtilsObjectNameInfoEXT * const &>
  15131. # endif
  15132. reflect() const VULKAN_HPP_NOEXCEPT
  15133. {
  15134. return std::tie(
  15135. sType, pNext, flags, pMessageIdName, messageIdNumber, pMessage, queueLabelCount, pQueueLabels, cmdBufLabelCount, pCmdBufLabels, objectCount, pObjects );
  15136. }
  15137. #endif
  15138. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  15139. std::strong_ordering operator<=>( DebugUtilsMessengerCallbackDataEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  15140. {
  15141. if ( auto cmp = sType <=> rhs.sType; cmp != 0 )
  15142. return cmp;
  15143. if ( auto cmp = pNext <=> rhs.pNext; cmp != 0 )
  15144. return cmp;
  15145. if ( auto cmp = flags <=> rhs.flags; cmp != 0 )
  15146. return cmp;
  15147. if ( pMessageIdName != rhs.pMessageIdName )
  15148. if ( auto cmp = strcmp( pMessageIdName, rhs.pMessageIdName ); cmp != 0 )
  15149. return ( cmp < 0 ) ? std::strong_ordering::less : std::strong_ordering::greater;
  15150. if ( auto cmp = messageIdNumber <=> rhs.messageIdNumber; cmp != 0 )
  15151. return cmp;
  15152. if ( pMessage != rhs.pMessage )
  15153. if ( auto cmp = strcmp( pMessage, rhs.pMessage ); cmp != 0 )
  15154. return ( cmp < 0 ) ? std::strong_ordering::less : std::strong_ordering::greater;
  15155. if ( auto cmp = queueLabelCount <=> rhs.queueLabelCount; cmp != 0 )
  15156. return cmp;
  15157. if ( auto cmp = pQueueLabels <=> rhs.pQueueLabels; cmp != 0 )
  15158. return cmp;
  15159. if ( auto cmp = cmdBufLabelCount <=> rhs.cmdBufLabelCount; cmp != 0 )
  15160. return cmp;
  15161. if ( auto cmp = pCmdBufLabels <=> rhs.pCmdBufLabels; cmp != 0 )
  15162. return cmp;
  15163. if ( auto cmp = objectCount <=> rhs.objectCount; cmp != 0 )
  15164. return cmp;
  15165. if ( auto cmp = pObjects <=> rhs.pObjects; cmp != 0 )
  15166. return cmp;
  15167. return std::strong_ordering::equivalent;
  15168. }
  15169. #endif
  15170. bool operator==( DebugUtilsMessengerCallbackDataEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  15171. {
  15172. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( flags == rhs.flags ) &&
  15173. ( ( pMessageIdName == rhs.pMessageIdName ) || ( strcmp( pMessageIdName, rhs.pMessageIdName ) == 0 ) ) &&
  15174. ( messageIdNumber == rhs.messageIdNumber ) && ( ( pMessage == rhs.pMessage ) || ( strcmp( pMessage, rhs.pMessage ) == 0 ) ) &&
  15175. ( queueLabelCount == rhs.queueLabelCount ) && ( pQueueLabels == rhs.pQueueLabels ) && ( cmdBufLabelCount == rhs.cmdBufLabelCount ) &&
  15176. ( pCmdBufLabels == rhs.pCmdBufLabels ) && ( objectCount == rhs.objectCount ) && ( pObjects == rhs.pObjects );
  15177. }
  15178. bool operator!=( DebugUtilsMessengerCallbackDataEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  15179. {
  15180. return !operator==( rhs );
  15181. }
  15182. public:
  15183. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDebugUtilsMessengerCallbackDataEXT;
  15184. const void * pNext = {};
  15185. VULKAN_HPP_NAMESPACE::DebugUtilsMessengerCallbackDataFlagsEXT flags = {};
  15186. const char * pMessageIdName = {};
  15187. int32_t messageIdNumber = {};
  15188. const char * pMessage = {};
  15189. uint32_t queueLabelCount = {};
  15190. const VULKAN_HPP_NAMESPACE::DebugUtilsLabelEXT * pQueueLabels = {};
  15191. uint32_t cmdBufLabelCount = {};
  15192. const VULKAN_HPP_NAMESPACE::DebugUtilsLabelEXT * pCmdBufLabels = {};
  15193. uint32_t objectCount = {};
  15194. const VULKAN_HPP_NAMESPACE::DebugUtilsObjectNameInfoEXT * pObjects = {};
  15195. };
  15196. template <>
  15197. struct CppType<StructureType, StructureType::eDebugUtilsMessengerCallbackDataEXT>
  15198. {
  15199. using Type = DebugUtilsMessengerCallbackDataEXT;
  15200. };
  15201. struct DebugUtilsMessengerCreateInfoEXT
  15202. {
  15203. using NativeType = VkDebugUtilsMessengerCreateInfoEXT;
  15204. static const bool allowDuplicate = true;
  15205. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDebugUtilsMessengerCreateInfoEXT;
  15206. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  15207. VULKAN_HPP_CONSTEXPR DebugUtilsMessengerCreateInfoEXT( VULKAN_HPP_NAMESPACE::DebugUtilsMessengerCreateFlagsEXT flags_ = {},
  15208. VULKAN_HPP_NAMESPACE::DebugUtilsMessageSeverityFlagsEXT messageSeverity_ = {},
  15209. VULKAN_HPP_NAMESPACE::DebugUtilsMessageTypeFlagsEXT messageType_ = {},
  15210. PFN_vkDebugUtilsMessengerCallbackEXT pfnUserCallback_ = {},
  15211. void * pUserData_ = {},
  15212. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  15213. : pNext( pNext_ )
  15214. , flags( flags_ )
  15215. , messageSeverity( messageSeverity_ )
  15216. , messageType( messageType_ )
  15217. , pfnUserCallback( pfnUserCallback_ )
  15218. , pUserData( pUserData_ )
  15219. {
  15220. }
  15221. VULKAN_HPP_CONSTEXPR DebugUtilsMessengerCreateInfoEXT( DebugUtilsMessengerCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  15222. DebugUtilsMessengerCreateInfoEXT( VkDebugUtilsMessengerCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  15223. : DebugUtilsMessengerCreateInfoEXT( *reinterpret_cast<DebugUtilsMessengerCreateInfoEXT const *>( &rhs ) )
  15224. {
  15225. }
  15226. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  15227. DebugUtilsMessengerCreateInfoEXT & operator=( DebugUtilsMessengerCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  15228. DebugUtilsMessengerCreateInfoEXT & operator=( VkDebugUtilsMessengerCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  15229. {
  15230. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DebugUtilsMessengerCreateInfoEXT const *>( &rhs );
  15231. return *this;
  15232. }
  15233. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  15234. VULKAN_HPP_CONSTEXPR_14 DebugUtilsMessengerCreateInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  15235. {
  15236. pNext = pNext_;
  15237. return *this;
  15238. }
  15239. VULKAN_HPP_CONSTEXPR_14 DebugUtilsMessengerCreateInfoEXT & setFlags( VULKAN_HPP_NAMESPACE::DebugUtilsMessengerCreateFlagsEXT flags_ ) VULKAN_HPP_NOEXCEPT
  15240. {
  15241. flags = flags_;
  15242. return *this;
  15243. }
  15244. VULKAN_HPP_CONSTEXPR_14 DebugUtilsMessengerCreateInfoEXT &
  15245. setMessageSeverity( VULKAN_HPP_NAMESPACE::DebugUtilsMessageSeverityFlagsEXT messageSeverity_ ) VULKAN_HPP_NOEXCEPT
  15246. {
  15247. messageSeverity = messageSeverity_;
  15248. return *this;
  15249. }
  15250. VULKAN_HPP_CONSTEXPR_14 DebugUtilsMessengerCreateInfoEXT &
  15251. setMessageType( VULKAN_HPP_NAMESPACE::DebugUtilsMessageTypeFlagsEXT messageType_ ) VULKAN_HPP_NOEXCEPT
  15252. {
  15253. messageType = messageType_;
  15254. return *this;
  15255. }
  15256. VULKAN_HPP_CONSTEXPR_14 DebugUtilsMessengerCreateInfoEXT & setPfnUserCallback( PFN_vkDebugUtilsMessengerCallbackEXT pfnUserCallback_ ) VULKAN_HPP_NOEXCEPT
  15257. {
  15258. pfnUserCallback = pfnUserCallback_;
  15259. return *this;
  15260. }
  15261. VULKAN_HPP_CONSTEXPR_14 DebugUtilsMessengerCreateInfoEXT & setPUserData( void * pUserData_ ) VULKAN_HPP_NOEXCEPT
  15262. {
  15263. pUserData = pUserData_;
  15264. return *this;
  15265. }
  15266. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  15267. operator VkDebugUtilsMessengerCreateInfoEXT const &() const VULKAN_HPP_NOEXCEPT
  15268. {
  15269. return *reinterpret_cast<const VkDebugUtilsMessengerCreateInfoEXT *>( this );
  15270. }
  15271. operator VkDebugUtilsMessengerCreateInfoEXT &() VULKAN_HPP_NOEXCEPT
  15272. {
  15273. return *reinterpret_cast<VkDebugUtilsMessengerCreateInfoEXT *>( this );
  15274. }
  15275. #if defined( VULKAN_HPP_USE_REFLECT )
  15276. # if 14 <= VULKAN_HPP_CPP_VERSION
  15277. auto
  15278. # else
  15279. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  15280. const void * const &,
  15281. VULKAN_HPP_NAMESPACE::DebugUtilsMessengerCreateFlagsEXT const &,
  15282. VULKAN_HPP_NAMESPACE::DebugUtilsMessageSeverityFlagsEXT const &,
  15283. VULKAN_HPP_NAMESPACE::DebugUtilsMessageTypeFlagsEXT const &,
  15284. PFN_vkDebugUtilsMessengerCallbackEXT const &,
  15285. void * const &>
  15286. # endif
  15287. reflect() const VULKAN_HPP_NOEXCEPT
  15288. {
  15289. return std::tie( sType, pNext, flags, messageSeverity, messageType, pfnUserCallback, pUserData );
  15290. }
  15291. #endif
  15292. bool operator==( DebugUtilsMessengerCreateInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  15293. {
  15294. #if defined( VULKAN_HPP_USE_REFLECT )
  15295. return this->reflect() == rhs.reflect();
  15296. #else
  15297. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( flags == rhs.flags ) && ( messageSeverity == rhs.messageSeverity ) &&
  15298. ( messageType == rhs.messageType ) && ( pfnUserCallback == rhs.pfnUserCallback ) && ( pUserData == rhs.pUserData );
  15299. #endif
  15300. }
  15301. bool operator!=( DebugUtilsMessengerCreateInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  15302. {
  15303. return !operator==( rhs );
  15304. }
  15305. public:
  15306. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDebugUtilsMessengerCreateInfoEXT;
  15307. const void * pNext = {};
  15308. VULKAN_HPP_NAMESPACE::DebugUtilsMessengerCreateFlagsEXT flags = {};
  15309. VULKAN_HPP_NAMESPACE::DebugUtilsMessageSeverityFlagsEXT messageSeverity = {};
  15310. VULKAN_HPP_NAMESPACE::DebugUtilsMessageTypeFlagsEXT messageType = {};
  15311. PFN_vkDebugUtilsMessengerCallbackEXT pfnUserCallback = {};
  15312. void * pUserData = {};
  15313. };
  15314. template <>
  15315. struct CppType<StructureType, StructureType::eDebugUtilsMessengerCreateInfoEXT>
  15316. {
  15317. using Type = DebugUtilsMessengerCreateInfoEXT;
  15318. };
  15319. struct DebugUtilsObjectTagInfoEXT
  15320. {
  15321. using NativeType = VkDebugUtilsObjectTagInfoEXT;
  15322. static const bool allowDuplicate = false;
  15323. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDebugUtilsObjectTagInfoEXT;
  15324. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  15325. VULKAN_HPP_CONSTEXPR DebugUtilsObjectTagInfoEXT( VULKAN_HPP_NAMESPACE::ObjectType objectType_ = VULKAN_HPP_NAMESPACE::ObjectType::eUnknown,
  15326. uint64_t objectHandle_ = {},
  15327. uint64_t tagName_ = {},
  15328. size_t tagSize_ = {},
  15329. const void * pTag_ = {},
  15330. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  15331. : pNext( pNext_ )
  15332. , objectType( objectType_ )
  15333. , objectHandle( objectHandle_ )
  15334. , tagName( tagName_ )
  15335. , tagSize( tagSize_ )
  15336. , pTag( pTag_ )
  15337. {
  15338. }
  15339. VULKAN_HPP_CONSTEXPR DebugUtilsObjectTagInfoEXT( DebugUtilsObjectTagInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  15340. DebugUtilsObjectTagInfoEXT( VkDebugUtilsObjectTagInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  15341. : DebugUtilsObjectTagInfoEXT( *reinterpret_cast<DebugUtilsObjectTagInfoEXT const *>( &rhs ) )
  15342. {
  15343. }
  15344. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  15345. template <typename T>
  15346. DebugUtilsObjectTagInfoEXT( VULKAN_HPP_NAMESPACE::ObjectType objectType_,
  15347. uint64_t objectHandle_,
  15348. uint64_t tagName_,
  15349. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const T> const & tag_,
  15350. const void * pNext_ = nullptr )
  15351. : pNext( pNext_ )
  15352. , objectType( objectType_ )
  15353. , objectHandle( objectHandle_ )
  15354. , tagName( tagName_ )
  15355. , tagSize( tag_.size() * sizeof( T ) )
  15356. , pTag( tag_.data() )
  15357. {
  15358. }
  15359. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  15360. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  15361. DebugUtilsObjectTagInfoEXT & operator=( DebugUtilsObjectTagInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  15362. DebugUtilsObjectTagInfoEXT & operator=( VkDebugUtilsObjectTagInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  15363. {
  15364. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DebugUtilsObjectTagInfoEXT const *>( &rhs );
  15365. return *this;
  15366. }
  15367. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  15368. VULKAN_HPP_CONSTEXPR_14 DebugUtilsObjectTagInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  15369. {
  15370. pNext = pNext_;
  15371. return *this;
  15372. }
  15373. VULKAN_HPP_CONSTEXPR_14 DebugUtilsObjectTagInfoEXT & setObjectType( VULKAN_HPP_NAMESPACE::ObjectType objectType_ ) VULKAN_HPP_NOEXCEPT
  15374. {
  15375. objectType = objectType_;
  15376. return *this;
  15377. }
  15378. VULKAN_HPP_CONSTEXPR_14 DebugUtilsObjectTagInfoEXT & setObjectHandle( uint64_t objectHandle_ ) VULKAN_HPP_NOEXCEPT
  15379. {
  15380. objectHandle = objectHandle_;
  15381. return *this;
  15382. }
  15383. VULKAN_HPP_CONSTEXPR_14 DebugUtilsObjectTagInfoEXT & setTagName( uint64_t tagName_ ) VULKAN_HPP_NOEXCEPT
  15384. {
  15385. tagName = tagName_;
  15386. return *this;
  15387. }
  15388. VULKAN_HPP_CONSTEXPR_14 DebugUtilsObjectTagInfoEXT & setTagSize( size_t tagSize_ ) VULKAN_HPP_NOEXCEPT
  15389. {
  15390. tagSize = tagSize_;
  15391. return *this;
  15392. }
  15393. VULKAN_HPP_CONSTEXPR_14 DebugUtilsObjectTagInfoEXT & setPTag( const void * pTag_ ) VULKAN_HPP_NOEXCEPT
  15394. {
  15395. pTag = pTag_;
  15396. return *this;
  15397. }
  15398. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  15399. template <typename T>
  15400. DebugUtilsObjectTagInfoEXT & setTag( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const T> const & tag_ ) VULKAN_HPP_NOEXCEPT
  15401. {
  15402. tagSize = tag_.size() * sizeof( T );
  15403. pTag = tag_.data();
  15404. return *this;
  15405. }
  15406. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  15407. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  15408. operator VkDebugUtilsObjectTagInfoEXT const &() const VULKAN_HPP_NOEXCEPT
  15409. {
  15410. return *reinterpret_cast<const VkDebugUtilsObjectTagInfoEXT *>( this );
  15411. }
  15412. operator VkDebugUtilsObjectTagInfoEXT &() VULKAN_HPP_NOEXCEPT
  15413. {
  15414. return *reinterpret_cast<VkDebugUtilsObjectTagInfoEXT *>( this );
  15415. }
  15416. #if defined( VULKAN_HPP_USE_REFLECT )
  15417. # if 14 <= VULKAN_HPP_CPP_VERSION
  15418. auto
  15419. # else
  15420. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  15421. const void * const &,
  15422. VULKAN_HPP_NAMESPACE::ObjectType const &,
  15423. uint64_t const &,
  15424. uint64_t const &,
  15425. size_t const &,
  15426. const void * const &>
  15427. # endif
  15428. reflect() const VULKAN_HPP_NOEXCEPT
  15429. {
  15430. return std::tie( sType, pNext, objectType, objectHandle, tagName, tagSize, pTag );
  15431. }
  15432. #endif
  15433. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  15434. auto operator<=>( DebugUtilsObjectTagInfoEXT const & ) const = default;
  15435. #else
  15436. bool operator==( DebugUtilsObjectTagInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  15437. {
  15438. # if defined( VULKAN_HPP_USE_REFLECT )
  15439. return this->reflect() == rhs.reflect();
  15440. # else
  15441. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( objectType == rhs.objectType ) && ( objectHandle == rhs.objectHandle ) &&
  15442. ( tagName == rhs.tagName ) && ( tagSize == rhs.tagSize ) && ( pTag == rhs.pTag );
  15443. # endif
  15444. }
  15445. bool operator!=( DebugUtilsObjectTagInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  15446. {
  15447. return !operator==( rhs );
  15448. }
  15449. #endif
  15450. public:
  15451. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDebugUtilsObjectTagInfoEXT;
  15452. const void * pNext = {};
  15453. VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eUnknown;
  15454. uint64_t objectHandle = {};
  15455. uint64_t tagName = {};
  15456. size_t tagSize = {};
  15457. const void * pTag = {};
  15458. };
  15459. template <>
  15460. struct CppType<StructureType, StructureType::eDebugUtilsObjectTagInfoEXT>
  15461. {
  15462. using Type = DebugUtilsObjectTagInfoEXT;
  15463. };
  15464. struct DedicatedAllocationBufferCreateInfoNV
  15465. {
  15466. using NativeType = VkDedicatedAllocationBufferCreateInfoNV;
  15467. static const bool allowDuplicate = false;
  15468. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDedicatedAllocationBufferCreateInfoNV;
  15469. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  15470. VULKAN_HPP_CONSTEXPR DedicatedAllocationBufferCreateInfoNV( VULKAN_HPP_NAMESPACE::Bool32 dedicatedAllocation_ = {},
  15471. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  15472. : pNext( pNext_ )
  15473. , dedicatedAllocation( dedicatedAllocation_ )
  15474. {
  15475. }
  15476. VULKAN_HPP_CONSTEXPR DedicatedAllocationBufferCreateInfoNV( DedicatedAllocationBufferCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  15477. DedicatedAllocationBufferCreateInfoNV( VkDedicatedAllocationBufferCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
  15478. : DedicatedAllocationBufferCreateInfoNV( *reinterpret_cast<DedicatedAllocationBufferCreateInfoNV const *>( &rhs ) )
  15479. {
  15480. }
  15481. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  15482. DedicatedAllocationBufferCreateInfoNV & operator=( DedicatedAllocationBufferCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  15483. DedicatedAllocationBufferCreateInfoNV & operator=( VkDedicatedAllocationBufferCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
  15484. {
  15485. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DedicatedAllocationBufferCreateInfoNV const *>( &rhs );
  15486. return *this;
  15487. }
  15488. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  15489. VULKAN_HPP_CONSTEXPR_14 DedicatedAllocationBufferCreateInfoNV & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  15490. {
  15491. pNext = pNext_;
  15492. return *this;
  15493. }
  15494. VULKAN_HPP_CONSTEXPR_14 DedicatedAllocationBufferCreateInfoNV &
  15495. setDedicatedAllocation( VULKAN_HPP_NAMESPACE::Bool32 dedicatedAllocation_ ) VULKAN_HPP_NOEXCEPT
  15496. {
  15497. dedicatedAllocation = dedicatedAllocation_;
  15498. return *this;
  15499. }
  15500. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  15501. operator VkDedicatedAllocationBufferCreateInfoNV const &() const VULKAN_HPP_NOEXCEPT
  15502. {
  15503. return *reinterpret_cast<const VkDedicatedAllocationBufferCreateInfoNV *>( this );
  15504. }
  15505. operator VkDedicatedAllocationBufferCreateInfoNV &() VULKAN_HPP_NOEXCEPT
  15506. {
  15507. return *reinterpret_cast<VkDedicatedAllocationBufferCreateInfoNV *>( this );
  15508. }
  15509. #if defined( VULKAN_HPP_USE_REFLECT )
  15510. # if 14 <= VULKAN_HPP_CPP_VERSION
  15511. auto
  15512. # else
  15513. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
  15514. # endif
  15515. reflect() const VULKAN_HPP_NOEXCEPT
  15516. {
  15517. return std::tie( sType, pNext, dedicatedAllocation );
  15518. }
  15519. #endif
  15520. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  15521. auto operator<=>( DedicatedAllocationBufferCreateInfoNV const & ) const = default;
  15522. #else
  15523. bool operator==( DedicatedAllocationBufferCreateInfoNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  15524. {
  15525. # if defined( VULKAN_HPP_USE_REFLECT )
  15526. return this->reflect() == rhs.reflect();
  15527. # else
  15528. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( dedicatedAllocation == rhs.dedicatedAllocation );
  15529. # endif
  15530. }
  15531. bool operator!=( DedicatedAllocationBufferCreateInfoNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  15532. {
  15533. return !operator==( rhs );
  15534. }
  15535. #endif
  15536. public:
  15537. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDedicatedAllocationBufferCreateInfoNV;
  15538. const void * pNext = {};
  15539. VULKAN_HPP_NAMESPACE::Bool32 dedicatedAllocation = {};
  15540. };
  15541. template <>
  15542. struct CppType<StructureType, StructureType::eDedicatedAllocationBufferCreateInfoNV>
  15543. {
  15544. using Type = DedicatedAllocationBufferCreateInfoNV;
  15545. };
  15546. struct DedicatedAllocationImageCreateInfoNV
  15547. {
  15548. using NativeType = VkDedicatedAllocationImageCreateInfoNV;
  15549. static const bool allowDuplicate = false;
  15550. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDedicatedAllocationImageCreateInfoNV;
  15551. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  15552. VULKAN_HPP_CONSTEXPR DedicatedAllocationImageCreateInfoNV( VULKAN_HPP_NAMESPACE::Bool32 dedicatedAllocation_ = {},
  15553. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  15554. : pNext( pNext_ )
  15555. , dedicatedAllocation( dedicatedAllocation_ )
  15556. {
  15557. }
  15558. VULKAN_HPP_CONSTEXPR DedicatedAllocationImageCreateInfoNV( DedicatedAllocationImageCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  15559. DedicatedAllocationImageCreateInfoNV( VkDedicatedAllocationImageCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
  15560. : DedicatedAllocationImageCreateInfoNV( *reinterpret_cast<DedicatedAllocationImageCreateInfoNV const *>( &rhs ) )
  15561. {
  15562. }
  15563. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  15564. DedicatedAllocationImageCreateInfoNV & operator=( DedicatedAllocationImageCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  15565. DedicatedAllocationImageCreateInfoNV & operator=( VkDedicatedAllocationImageCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
  15566. {
  15567. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DedicatedAllocationImageCreateInfoNV const *>( &rhs );
  15568. return *this;
  15569. }
  15570. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  15571. VULKAN_HPP_CONSTEXPR_14 DedicatedAllocationImageCreateInfoNV & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  15572. {
  15573. pNext = pNext_;
  15574. return *this;
  15575. }
  15576. VULKAN_HPP_CONSTEXPR_14 DedicatedAllocationImageCreateInfoNV &
  15577. setDedicatedAllocation( VULKAN_HPP_NAMESPACE::Bool32 dedicatedAllocation_ ) VULKAN_HPP_NOEXCEPT
  15578. {
  15579. dedicatedAllocation = dedicatedAllocation_;
  15580. return *this;
  15581. }
  15582. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  15583. operator VkDedicatedAllocationImageCreateInfoNV const &() const VULKAN_HPP_NOEXCEPT
  15584. {
  15585. return *reinterpret_cast<const VkDedicatedAllocationImageCreateInfoNV *>( this );
  15586. }
  15587. operator VkDedicatedAllocationImageCreateInfoNV &() VULKAN_HPP_NOEXCEPT
  15588. {
  15589. return *reinterpret_cast<VkDedicatedAllocationImageCreateInfoNV *>( this );
  15590. }
  15591. #if defined( VULKAN_HPP_USE_REFLECT )
  15592. # if 14 <= VULKAN_HPP_CPP_VERSION
  15593. auto
  15594. # else
  15595. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
  15596. # endif
  15597. reflect() const VULKAN_HPP_NOEXCEPT
  15598. {
  15599. return std::tie( sType, pNext, dedicatedAllocation );
  15600. }
  15601. #endif
  15602. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  15603. auto operator<=>( DedicatedAllocationImageCreateInfoNV const & ) const = default;
  15604. #else
  15605. bool operator==( DedicatedAllocationImageCreateInfoNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  15606. {
  15607. # if defined( VULKAN_HPP_USE_REFLECT )
  15608. return this->reflect() == rhs.reflect();
  15609. # else
  15610. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( dedicatedAllocation == rhs.dedicatedAllocation );
  15611. # endif
  15612. }
  15613. bool operator!=( DedicatedAllocationImageCreateInfoNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  15614. {
  15615. return !operator==( rhs );
  15616. }
  15617. #endif
  15618. public:
  15619. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDedicatedAllocationImageCreateInfoNV;
  15620. const void * pNext = {};
  15621. VULKAN_HPP_NAMESPACE::Bool32 dedicatedAllocation = {};
  15622. };
  15623. template <>
  15624. struct CppType<StructureType, StructureType::eDedicatedAllocationImageCreateInfoNV>
  15625. {
  15626. using Type = DedicatedAllocationImageCreateInfoNV;
  15627. };
  15628. struct DedicatedAllocationMemoryAllocateInfoNV
  15629. {
  15630. using NativeType = VkDedicatedAllocationMemoryAllocateInfoNV;
  15631. static const bool allowDuplicate = false;
  15632. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDedicatedAllocationMemoryAllocateInfoNV;
  15633. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  15634. VULKAN_HPP_CONSTEXPR DedicatedAllocationMemoryAllocateInfoNV( VULKAN_HPP_NAMESPACE::Image image_ = {},
  15635. VULKAN_HPP_NAMESPACE::Buffer buffer_ = {},
  15636. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  15637. : pNext( pNext_ )
  15638. , image( image_ )
  15639. , buffer( buffer_ )
  15640. {
  15641. }
  15642. VULKAN_HPP_CONSTEXPR DedicatedAllocationMemoryAllocateInfoNV( DedicatedAllocationMemoryAllocateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  15643. DedicatedAllocationMemoryAllocateInfoNV( VkDedicatedAllocationMemoryAllocateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
  15644. : DedicatedAllocationMemoryAllocateInfoNV( *reinterpret_cast<DedicatedAllocationMemoryAllocateInfoNV const *>( &rhs ) )
  15645. {
  15646. }
  15647. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  15648. DedicatedAllocationMemoryAllocateInfoNV & operator=( DedicatedAllocationMemoryAllocateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  15649. DedicatedAllocationMemoryAllocateInfoNV & operator=( VkDedicatedAllocationMemoryAllocateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
  15650. {
  15651. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DedicatedAllocationMemoryAllocateInfoNV const *>( &rhs );
  15652. return *this;
  15653. }
  15654. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  15655. VULKAN_HPP_CONSTEXPR_14 DedicatedAllocationMemoryAllocateInfoNV & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  15656. {
  15657. pNext = pNext_;
  15658. return *this;
  15659. }
  15660. VULKAN_HPP_CONSTEXPR_14 DedicatedAllocationMemoryAllocateInfoNV & setImage( VULKAN_HPP_NAMESPACE::Image image_ ) VULKAN_HPP_NOEXCEPT
  15661. {
  15662. image = image_;
  15663. return *this;
  15664. }
  15665. VULKAN_HPP_CONSTEXPR_14 DedicatedAllocationMemoryAllocateInfoNV & setBuffer( VULKAN_HPP_NAMESPACE::Buffer buffer_ ) VULKAN_HPP_NOEXCEPT
  15666. {
  15667. buffer = buffer_;
  15668. return *this;
  15669. }
  15670. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  15671. operator VkDedicatedAllocationMemoryAllocateInfoNV const &() const VULKAN_HPP_NOEXCEPT
  15672. {
  15673. return *reinterpret_cast<const VkDedicatedAllocationMemoryAllocateInfoNV *>( this );
  15674. }
  15675. operator VkDedicatedAllocationMemoryAllocateInfoNV &() VULKAN_HPP_NOEXCEPT
  15676. {
  15677. return *reinterpret_cast<VkDedicatedAllocationMemoryAllocateInfoNV *>( this );
  15678. }
  15679. #if defined( VULKAN_HPP_USE_REFLECT )
  15680. # if 14 <= VULKAN_HPP_CPP_VERSION
  15681. auto
  15682. # else
  15683. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::Image const &, VULKAN_HPP_NAMESPACE::Buffer const &>
  15684. # endif
  15685. reflect() const VULKAN_HPP_NOEXCEPT
  15686. {
  15687. return std::tie( sType, pNext, image, buffer );
  15688. }
  15689. #endif
  15690. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  15691. auto operator<=>( DedicatedAllocationMemoryAllocateInfoNV const & ) const = default;
  15692. #else
  15693. bool operator==( DedicatedAllocationMemoryAllocateInfoNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  15694. {
  15695. # if defined( VULKAN_HPP_USE_REFLECT )
  15696. return this->reflect() == rhs.reflect();
  15697. # else
  15698. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( image == rhs.image ) && ( buffer == rhs.buffer );
  15699. # endif
  15700. }
  15701. bool operator!=( DedicatedAllocationMemoryAllocateInfoNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  15702. {
  15703. return !operator==( rhs );
  15704. }
  15705. #endif
  15706. public:
  15707. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDedicatedAllocationMemoryAllocateInfoNV;
  15708. const void * pNext = {};
  15709. VULKAN_HPP_NAMESPACE::Image image = {};
  15710. VULKAN_HPP_NAMESPACE::Buffer buffer = {};
  15711. };
  15712. template <>
  15713. struct CppType<StructureType, StructureType::eDedicatedAllocationMemoryAllocateInfoNV>
  15714. {
  15715. using Type = DedicatedAllocationMemoryAllocateInfoNV;
  15716. };
  15717. struct MemoryBarrier2
  15718. {
  15719. using NativeType = VkMemoryBarrier2;
  15720. static const bool allowDuplicate = false;
  15721. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eMemoryBarrier2;
  15722. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  15723. VULKAN_HPP_CONSTEXPR MemoryBarrier2( VULKAN_HPP_NAMESPACE::PipelineStageFlags2 srcStageMask_ = {},
  15724. VULKAN_HPP_NAMESPACE::AccessFlags2 srcAccessMask_ = {},
  15725. VULKAN_HPP_NAMESPACE::PipelineStageFlags2 dstStageMask_ = {},
  15726. VULKAN_HPP_NAMESPACE::AccessFlags2 dstAccessMask_ = {},
  15727. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  15728. : pNext( pNext_ )
  15729. , srcStageMask( srcStageMask_ )
  15730. , srcAccessMask( srcAccessMask_ )
  15731. , dstStageMask( dstStageMask_ )
  15732. , dstAccessMask( dstAccessMask_ )
  15733. {
  15734. }
  15735. VULKAN_HPP_CONSTEXPR MemoryBarrier2( MemoryBarrier2 const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  15736. MemoryBarrier2( VkMemoryBarrier2 const & rhs ) VULKAN_HPP_NOEXCEPT : MemoryBarrier2( *reinterpret_cast<MemoryBarrier2 const *>( &rhs ) ) {}
  15737. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  15738. MemoryBarrier2 & operator=( MemoryBarrier2 const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  15739. MemoryBarrier2 & operator=( VkMemoryBarrier2 const & rhs ) VULKAN_HPP_NOEXCEPT
  15740. {
  15741. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::MemoryBarrier2 const *>( &rhs );
  15742. return *this;
  15743. }
  15744. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  15745. VULKAN_HPP_CONSTEXPR_14 MemoryBarrier2 & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  15746. {
  15747. pNext = pNext_;
  15748. return *this;
  15749. }
  15750. VULKAN_HPP_CONSTEXPR_14 MemoryBarrier2 & setSrcStageMask( VULKAN_HPP_NAMESPACE::PipelineStageFlags2 srcStageMask_ ) VULKAN_HPP_NOEXCEPT
  15751. {
  15752. srcStageMask = srcStageMask_;
  15753. return *this;
  15754. }
  15755. VULKAN_HPP_CONSTEXPR_14 MemoryBarrier2 & setSrcAccessMask( VULKAN_HPP_NAMESPACE::AccessFlags2 srcAccessMask_ ) VULKAN_HPP_NOEXCEPT
  15756. {
  15757. srcAccessMask = srcAccessMask_;
  15758. return *this;
  15759. }
  15760. VULKAN_HPP_CONSTEXPR_14 MemoryBarrier2 & setDstStageMask( VULKAN_HPP_NAMESPACE::PipelineStageFlags2 dstStageMask_ ) VULKAN_HPP_NOEXCEPT
  15761. {
  15762. dstStageMask = dstStageMask_;
  15763. return *this;
  15764. }
  15765. VULKAN_HPP_CONSTEXPR_14 MemoryBarrier2 & setDstAccessMask( VULKAN_HPP_NAMESPACE::AccessFlags2 dstAccessMask_ ) VULKAN_HPP_NOEXCEPT
  15766. {
  15767. dstAccessMask = dstAccessMask_;
  15768. return *this;
  15769. }
  15770. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  15771. operator VkMemoryBarrier2 const &() const VULKAN_HPP_NOEXCEPT
  15772. {
  15773. return *reinterpret_cast<const VkMemoryBarrier2 *>( this );
  15774. }
  15775. operator VkMemoryBarrier2 &() VULKAN_HPP_NOEXCEPT
  15776. {
  15777. return *reinterpret_cast<VkMemoryBarrier2 *>( this );
  15778. }
  15779. #if defined( VULKAN_HPP_USE_REFLECT )
  15780. # if 14 <= VULKAN_HPP_CPP_VERSION
  15781. auto
  15782. # else
  15783. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  15784. const void * const &,
  15785. VULKAN_HPP_NAMESPACE::PipelineStageFlags2 const &,
  15786. VULKAN_HPP_NAMESPACE::AccessFlags2 const &,
  15787. VULKAN_HPP_NAMESPACE::PipelineStageFlags2 const &,
  15788. VULKAN_HPP_NAMESPACE::AccessFlags2 const &>
  15789. # endif
  15790. reflect() const VULKAN_HPP_NOEXCEPT
  15791. {
  15792. return std::tie( sType, pNext, srcStageMask, srcAccessMask, dstStageMask, dstAccessMask );
  15793. }
  15794. #endif
  15795. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  15796. auto operator<=>( MemoryBarrier2 const & ) const = default;
  15797. #else
  15798. bool operator==( MemoryBarrier2 const & rhs ) const VULKAN_HPP_NOEXCEPT
  15799. {
  15800. # if defined( VULKAN_HPP_USE_REFLECT )
  15801. return this->reflect() == rhs.reflect();
  15802. # else
  15803. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( srcStageMask == rhs.srcStageMask ) && ( srcAccessMask == rhs.srcAccessMask ) &&
  15804. ( dstStageMask == rhs.dstStageMask ) && ( dstAccessMask == rhs.dstAccessMask );
  15805. # endif
  15806. }
  15807. bool operator!=( MemoryBarrier2 const & rhs ) const VULKAN_HPP_NOEXCEPT
  15808. {
  15809. return !operator==( rhs );
  15810. }
  15811. #endif
  15812. public:
  15813. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eMemoryBarrier2;
  15814. const void * pNext = {};
  15815. VULKAN_HPP_NAMESPACE::PipelineStageFlags2 srcStageMask = {};
  15816. VULKAN_HPP_NAMESPACE::AccessFlags2 srcAccessMask = {};
  15817. VULKAN_HPP_NAMESPACE::PipelineStageFlags2 dstStageMask = {};
  15818. VULKAN_HPP_NAMESPACE::AccessFlags2 dstAccessMask = {};
  15819. };
  15820. template <>
  15821. struct CppType<StructureType, StructureType::eMemoryBarrier2>
  15822. {
  15823. using Type = MemoryBarrier2;
  15824. };
  15825. using MemoryBarrier2KHR = MemoryBarrier2;
  15826. struct ImageSubresourceRange
  15827. {
  15828. using NativeType = VkImageSubresourceRange;
  15829. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  15830. VULKAN_HPP_CONSTEXPR ImageSubresourceRange( VULKAN_HPP_NAMESPACE::ImageAspectFlags aspectMask_ = {},
  15831. uint32_t baseMipLevel_ = {},
  15832. uint32_t levelCount_ = {},
  15833. uint32_t baseArrayLayer_ = {},
  15834. uint32_t layerCount_ = {} ) VULKAN_HPP_NOEXCEPT
  15835. : aspectMask( aspectMask_ )
  15836. , baseMipLevel( baseMipLevel_ )
  15837. , levelCount( levelCount_ )
  15838. , baseArrayLayer( baseArrayLayer_ )
  15839. , layerCount( layerCount_ )
  15840. {
  15841. }
  15842. VULKAN_HPP_CONSTEXPR ImageSubresourceRange( ImageSubresourceRange const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  15843. ImageSubresourceRange( VkImageSubresourceRange const & rhs ) VULKAN_HPP_NOEXCEPT
  15844. : ImageSubresourceRange( *reinterpret_cast<ImageSubresourceRange const *>( &rhs ) )
  15845. {
  15846. }
  15847. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  15848. ImageSubresourceRange & operator=( ImageSubresourceRange const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  15849. ImageSubresourceRange & operator=( VkImageSubresourceRange const & rhs ) VULKAN_HPP_NOEXCEPT
  15850. {
  15851. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ImageSubresourceRange const *>( &rhs );
  15852. return *this;
  15853. }
  15854. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  15855. VULKAN_HPP_CONSTEXPR_14 ImageSubresourceRange & setAspectMask( VULKAN_HPP_NAMESPACE::ImageAspectFlags aspectMask_ ) VULKAN_HPP_NOEXCEPT
  15856. {
  15857. aspectMask = aspectMask_;
  15858. return *this;
  15859. }
  15860. VULKAN_HPP_CONSTEXPR_14 ImageSubresourceRange & setBaseMipLevel( uint32_t baseMipLevel_ ) VULKAN_HPP_NOEXCEPT
  15861. {
  15862. baseMipLevel = baseMipLevel_;
  15863. return *this;
  15864. }
  15865. VULKAN_HPP_CONSTEXPR_14 ImageSubresourceRange & setLevelCount( uint32_t levelCount_ ) VULKAN_HPP_NOEXCEPT
  15866. {
  15867. levelCount = levelCount_;
  15868. return *this;
  15869. }
  15870. VULKAN_HPP_CONSTEXPR_14 ImageSubresourceRange & setBaseArrayLayer( uint32_t baseArrayLayer_ ) VULKAN_HPP_NOEXCEPT
  15871. {
  15872. baseArrayLayer = baseArrayLayer_;
  15873. return *this;
  15874. }
  15875. VULKAN_HPP_CONSTEXPR_14 ImageSubresourceRange & setLayerCount( uint32_t layerCount_ ) VULKAN_HPP_NOEXCEPT
  15876. {
  15877. layerCount = layerCount_;
  15878. return *this;
  15879. }
  15880. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  15881. operator VkImageSubresourceRange const &() const VULKAN_HPP_NOEXCEPT
  15882. {
  15883. return *reinterpret_cast<const VkImageSubresourceRange *>( this );
  15884. }
  15885. operator VkImageSubresourceRange &() VULKAN_HPP_NOEXCEPT
  15886. {
  15887. return *reinterpret_cast<VkImageSubresourceRange *>( this );
  15888. }
  15889. #if defined( VULKAN_HPP_USE_REFLECT )
  15890. # if 14 <= VULKAN_HPP_CPP_VERSION
  15891. auto
  15892. # else
  15893. std::tuple<VULKAN_HPP_NAMESPACE::ImageAspectFlags const &, uint32_t const &, uint32_t const &, uint32_t const &, uint32_t const &>
  15894. # endif
  15895. reflect() const VULKAN_HPP_NOEXCEPT
  15896. {
  15897. return std::tie( aspectMask, baseMipLevel, levelCount, baseArrayLayer, layerCount );
  15898. }
  15899. #endif
  15900. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  15901. auto operator<=>( ImageSubresourceRange const & ) const = default;
  15902. #else
  15903. bool operator==( ImageSubresourceRange const & rhs ) const VULKAN_HPP_NOEXCEPT
  15904. {
  15905. # if defined( VULKAN_HPP_USE_REFLECT )
  15906. return this->reflect() == rhs.reflect();
  15907. # else
  15908. return ( aspectMask == rhs.aspectMask ) && ( baseMipLevel == rhs.baseMipLevel ) && ( levelCount == rhs.levelCount ) &&
  15909. ( baseArrayLayer == rhs.baseArrayLayer ) && ( layerCount == rhs.layerCount );
  15910. # endif
  15911. }
  15912. bool operator!=( ImageSubresourceRange const & rhs ) const VULKAN_HPP_NOEXCEPT
  15913. {
  15914. return !operator==( rhs );
  15915. }
  15916. #endif
  15917. public:
  15918. VULKAN_HPP_NAMESPACE::ImageAspectFlags aspectMask = {};
  15919. uint32_t baseMipLevel = {};
  15920. uint32_t levelCount = {};
  15921. uint32_t baseArrayLayer = {};
  15922. uint32_t layerCount = {};
  15923. };
  15924. struct ImageMemoryBarrier2
  15925. {
  15926. using NativeType = VkImageMemoryBarrier2;
  15927. static const bool allowDuplicate = false;
  15928. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eImageMemoryBarrier2;
  15929. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  15930. VULKAN_HPP_CONSTEXPR ImageMemoryBarrier2( VULKAN_HPP_NAMESPACE::PipelineStageFlags2 srcStageMask_ = {},
  15931. VULKAN_HPP_NAMESPACE::AccessFlags2 srcAccessMask_ = {},
  15932. VULKAN_HPP_NAMESPACE::PipelineStageFlags2 dstStageMask_ = {},
  15933. VULKAN_HPP_NAMESPACE::AccessFlags2 dstAccessMask_ = {},
  15934. VULKAN_HPP_NAMESPACE::ImageLayout oldLayout_ = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined,
  15935. VULKAN_HPP_NAMESPACE::ImageLayout newLayout_ = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined,
  15936. uint32_t srcQueueFamilyIndex_ = {},
  15937. uint32_t dstQueueFamilyIndex_ = {},
  15938. VULKAN_HPP_NAMESPACE::Image image_ = {},
  15939. VULKAN_HPP_NAMESPACE::ImageSubresourceRange subresourceRange_ = {},
  15940. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  15941. : pNext( pNext_ )
  15942. , srcStageMask( srcStageMask_ )
  15943. , srcAccessMask( srcAccessMask_ )
  15944. , dstStageMask( dstStageMask_ )
  15945. , dstAccessMask( dstAccessMask_ )
  15946. , oldLayout( oldLayout_ )
  15947. , newLayout( newLayout_ )
  15948. , srcQueueFamilyIndex( srcQueueFamilyIndex_ )
  15949. , dstQueueFamilyIndex( dstQueueFamilyIndex_ )
  15950. , image( image_ )
  15951. , subresourceRange( subresourceRange_ )
  15952. {
  15953. }
  15954. VULKAN_HPP_CONSTEXPR ImageMemoryBarrier2( ImageMemoryBarrier2 const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  15955. ImageMemoryBarrier2( VkImageMemoryBarrier2 const & rhs ) VULKAN_HPP_NOEXCEPT : ImageMemoryBarrier2( *reinterpret_cast<ImageMemoryBarrier2 const *>( &rhs ) )
  15956. {
  15957. }
  15958. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  15959. ImageMemoryBarrier2 & operator=( ImageMemoryBarrier2 const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  15960. ImageMemoryBarrier2 & operator=( VkImageMemoryBarrier2 const & rhs ) VULKAN_HPP_NOEXCEPT
  15961. {
  15962. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ImageMemoryBarrier2 const *>( &rhs );
  15963. return *this;
  15964. }
  15965. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  15966. VULKAN_HPP_CONSTEXPR_14 ImageMemoryBarrier2 & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  15967. {
  15968. pNext = pNext_;
  15969. return *this;
  15970. }
  15971. VULKAN_HPP_CONSTEXPR_14 ImageMemoryBarrier2 & setSrcStageMask( VULKAN_HPP_NAMESPACE::PipelineStageFlags2 srcStageMask_ ) VULKAN_HPP_NOEXCEPT
  15972. {
  15973. srcStageMask = srcStageMask_;
  15974. return *this;
  15975. }
  15976. VULKAN_HPP_CONSTEXPR_14 ImageMemoryBarrier2 & setSrcAccessMask( VULKAN_HPP_NAMESPACE::AccessFlags2 srcAccessMask_ ) VULKAN_HPP_NOEXCEPT
  15977. {
  15978. srcAccessMask = srcAccessMask_;
  15979. return *this;
  15980. }
  15981. VULKAN_HPP_CONSTEXPR_14 ImageMemoryBarrier2 & setDstStageMask( VULKAN_HPP_NAMESPACE::PipelineStageFlags2 dstStageMask_ ) VULKAN_HPP_NOEXCEPT
  15982. {
  15983. dstStageMask = dstStageMask_;
  15984. return *this;
  15985. }
  15986. VULKAN_HPP_CONSTEXPR_14 ImageMemoryBarrier2 & setDstAccessMask( VULKAN_HPP_NAMESPACE::AccessFlags2 dstAccessMask_ ) VULKAN_HPP_NOEXCEPT
  15987. {
  15988. dstAccessMask = dstAccessMask_;
  15989. return *this;
  15990. }
  15991. VULKAN_HPP_CONSTEXPR_14 ImageMemoryBarrier2 & setOldLayout( VULKAN_HPP_NAMESPACE::ImageLayout oldLayout_ ) VULKAN_HPP_NOEXCEPT
  15992. {
  15993. oldLayout = oldLayout_;
  15994. return *this;
  15995. }
  15996. VULKAN_HPP_CONSTEXPR_14 ImageMemoryBarrier2 & setNewLayout( VULKAN_HPP_NAMESPACE::ImageLayout newLayout_ ) VULKAN_HPP_NOEXCEPT
  15997. {
  15998. newLayout = newLayout_;
  15999. return *this;
  16000. }
  16001. VULKAN_HPP_CONSTEXPR_14 ImageMemoryBarrier2 & setSrcQueueFamilyIndex( uint32_t srcQueueFamilyIndex_ ) VULKAN_HPP_NOEXCEPT
  16002. {
  16003. srcQueueFamilyIndex = srcQueueFamilyIndex_;
  16004. return *this;
  16005. }
  16006. VULKAN_HPP_CONSTEXPR_14 ImageMemoryBarrier2 & setDstQueueFamilyIndex( uint32_t dstQueueFamilyIndex_ ) VULKAN_HPP_NOEXCEPT
  16007. {
  16008. dstQueueFamilyIndex = dstQueueFamilyIndex_;
  16009. return *this;
  16010. }
  16011. VULKAN_HPP_CONSTEXPR_14 ImageMemoryBarrier2 & setImage( VULKAN_HPP_NAMESPACE::Image image_ ) VULKAN_HPP_NOEXCEPT
  16012. {
  16013. image = image_;
  16014. return *this;
  16015. }
  16016. VULKAN_HPP_CONSTEXPR_14 ImageMemoryBarrier2 &
  16017. setSubresourceRange( VULKAN_HPP_NAMESPACE::ImageSubresourceRange const & subresourceRange_ ) VULKAN_HPP_NOEXCEPT
  16018. {
  16019. subresourceRange = subresourceRange_;
  16020. return *this;
  16021. }
  16022. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  16023. operator VkImageMemoryBarrier2 const &() const VULKAN_HPP_NOEXCEPT
  16024. {
  16025. return *reinterpret_cast<const VkImageMemoryBarrier2 *>( this );
  16026. }
  16027. operator VkImageMemoryBarrier2 &() VULKAN_HPP_NOEXCEPT
  16028. {
  16029. return *reinterpret_cast<VkImageMemoryBarrier2 *>( this );
  16030. }
  16031. #if defined( VULKAN_HPP_USE_REFLECT )
  16032. # if 14 <= VULKAN_HPP_CPP_VERSION
  16033. auto
  16034. # else
  16035. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  16036. const void * const &,
  16037. VULKAN_HPP_NAMESPACE::PipelineStageFlags2 const &,
  16038. VULKAN_HPP_NAMESPACE::AccessFlags2 const &,
  16039. VULKAN_HPP_NAMESPACE::PipelineStageFlags2 const &,
  16040. VULKAN_HPP_NAMESPACE::AccessFlags2 const &,
  16041. VULKAN_HPP_NAMESPACE::ImageLayout const &,
  16042. VULKAN_HPP_NAMESPACE::ImageLayout const &,
  16043. uint32_t const &,
  16044. uint32_t const &,
  16045. VULKAN_HPP_NAMESPACE::Image const &,
  16046. VULKAN_HPP_NAMESPACE::ImageSubresourceRange const &>
  16047. # endif
  16048. reflect() const VULKAN_HPP_NOEXCEPT
  16049. {
  16050. return std::tie( sType,
  16051. pNext,
  16052. srcStageMask,
  16053. srcAccessMask,
  16054. dstStageMask,
  16055. dstAccessMask,
  16056. oldLayout,
  16057. newLayout,
  16058. srcQueueFamilyIndex,
  16059. dstQueueFamilyIndex,
  16060. image,
  16061. subresourceRange );
  16062. }
  16063. #endif
  16064. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  16065. auto operator<=>( ImageMemoryBarrier2 const & ) const = default;
  16066. #else
  16067. bool operator==( ImageMemoryBarrier2 const & rhs ) const VULKAN_HPP_NOEXCEPT
  16068. {
  16069. # if defined( VULKAN_HPP_USE_REFLECT )
  16070. return this->reflect() == rhs.reflect();
  16071. # else
  16072. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( srcStageMask == rhs.srcStageMask ) && ( srcAccessMask == rhs.srcAccessMask ) &&
  16073. ( dstStageMask == rhs.dstStageMask ) && ( dstAccessMask == rhs.dstAccessMask ) && ( oldLayout == rhs.oldLayout ) &&
  16074. ( newLayout == rhs.newLayout ) && ( srcQueueFamilyIndex == rhs.srcQueueFamilyIndex ) && ( dstQueueFamilyIndex == rhs.dstQueueFamilyIndex ) &&
  16075. ( image == rhs.image ) && ( subresourceRange == rhs.subresourceRange );
  16076. # endif
  16077. }
  16078. bool operator!=( ImageMemoryBarrier2 const & rhs ) const VULKAN_HPP_NOEXCEPT
  16079. {
  16080. return !operator==( rhs );
  16081. }
  16082. #endif
  16083. public:
  16084. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImageMemoryBarrier2;
  16085. const void * pNext = {};
  16086. VULKAN_HPP_NAMESPACE::PipelineStageFlags2 srcStageMask = {};
  16087. VULKAN_HPP_NAMESPACE::AccessFlags2 srcAccessMask = {};
  16088. VULKAN_HPP_NAMESPACE::PipelineStageFlags2 dstStageMask = {};
  16089. VULKAN_HPP_NAMESPACE::AccessFlags2 dstAccessMask = {};
  16090. VULKAN_HPP_NAMESPACE::ImageLayout oldLayout = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined;
  16091. VULKAN_HPP_NAMESPACE::ImageLayout newLayout = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined;
  16092. uint32_t srcQueueFamilyIndex = {};
  16093. uint32_t dstQueueFamilyIndex = {};
  16094. VULKAN_HPP_NAMESPACE::Image image = {};
  16095. VULKAN_HPP_NAMESPACE::ImageSubresourceRange subresourceRange = {};
  16096. };
  16097. template <>
  16098. struct CppType<StructureType, StructureType::eImageMemoryBarrier2>
  16099. {
  16100. using Type = ImageMemoryBarrier2;
  16101. };
  16102. using ImageMemoryBarrier2KHR = ImageMemoryBarrier2;
  16103. struct DependencyInfo
  16104. {
  16105. using NativeType = VkDependencyInfo;
  16106. static const bool allowDuplicate = false;
  16107. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDependencyInfo;
  16108. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  16109. VULKAN_HPP_CONSTEXPR DependencyInfo( VULKAN_HPP_NAMESPACE::DependencyFlags dependencyFlags_ = {},
  16110. uint32_t memoryBarrierCount_ = {},
  16111. const VULKAN_HPP_NAMESPACE::MemoryBarrier2 * pMemoryBarriers_ = {},
  16112. uint32_t bufferMemoryBarrierCount_ = {},
  16113. const VULKAN_HPP_NAMESPACE::BufferMemoryBarrier2 * pBufferMemoryBarriers_ = {},
  16114. uint32_t imageMemoryBarrierCount_ = {},
  16115. const VULKAN_HPP_NAMESPACE::ImageMemoryBarrier2 * pImageMemoryBarriers_ = {},
  16116. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  16117. : pNext( pNext_ )
  16118. , dependencyFlags( dependencyFlags_ )
  16119. , memoryBarrierCount( memoryBarrierCount_ )
  16120. , pMemoryBarriers( pMemoryBarriers_ )
  16121. , bufferMemoryBarrierCount( bufferMemoryBarrierCount_ )
  16122. , pBufferMemoryBarriers( pBufferMemoryBarriers_ )
  16123. , imageMemoryBarrierCount( imageMemoryBarrierCount_ )
  16124. , pImageMemoryBarriers( pImageMemoryBarriers_ )
  16125. {
  16126. }
  16127. VULKAN_HPP_CONSTEXPR DependencyInfo( DependencyInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  16128. DependencyInfo( VkDependencyInfo const & rhs ) VULKAN_HPP_NOEXCEPT : DependencyInfo( *reinterpret_cast<DependencyInfo const *>( &rhs ) ) {}
  16129. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  16130. DependencyInfo( VULKAN_HPP_NAMESPACE::DependencyFlags dependencyFlags_,
  16131. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::MemoryBarrier2> const & memoryBarriers_,
  16132. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::BufferMemoryBarrier2> const & bufferMemoryBarriers_ = {},
  16133. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::ImageMemoryBarrier2> const & imageMemoryBarriers_ = {},
  16134. const void * pNext_ = nullptr )
  16135. : pNext( pNext_ )
  16136. , dependencyFlags( dependencyFlags_ )
  16137. , memoryBarrierCount( static_cast<uint32_t>( memoryBarriers_.size() ) )
  16138. , pMemoryBarriers( memoryBarriers_.data() )
  16139. , bufferMemoryBarrierCount( static_cast<uint32_t>( bufferMemoryBarriers_.size() ) )
  16140. , pBufferMemoryBarriers( bufferMemoryBarriers_.data() )
  16141. , imageMemoryBarrierCount( static_cast<uint32_t>( imageMemoryBarriers_.size() ) )
  16142. , pImageMemoryBarriers( imageMemoryBarriers_.data() )
  16143. {
  16144. }
  16145. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  16146. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  16147. DependencyInfo & operator=( DependencyInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  16148. DependencyInfo & operator=( VkDependencyInfo const & rhs ) VULKAN_HPP_NOEXCEPT
  16149. {
  16150. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DependencyInfo const *>( &rhs );
  16151. return *this;
  16152. }
  16153. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  16154. VULKAN_HPP_CONSTEXPR_14 DependencyInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  16155. {
  16156. pNext = pNext_;
  16157. return *this;
  16158. }
  16159. VULKAN_HPP_CONSTEXPR_14 DependencyInfo & setDependencyFlags( VULKAN_HPP_NAMESPACE::DependencyFlags dependencyFlags_ ) VULKAN_HPP_NOEXCEPT
  16160. {
  16161. dependencyFlags = dependencyFlags_;
  16162. return *this;
  16163. }
  16164. VULKAN_HPP_CONSTEXPR_14 DependencyInfo & setMemoryBarrierCount( uint32_t memoryBarrierCount_ ) VULKAN_HPP_NOEXCEPT
  16165. {
  16166. memoryBarrierCount = memoryBarrierCount_;
  16167. return *this;
  16168. }
  16169. VULKAN_HPP_CONSTEXPR_14 DependencyInfo & setPMemoryBarriers( const VULKAN_HPP_NAMESPACE::MemoryBarrier2 * pMemoryBarriers_ ) VULKAN_HPP_NOEXCEPT
  16170. {
  16171. pMemoryBarriers = pMemoryBarriers_;
  16172. return *this;
  16173. }
  16174. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  16175. DependencyInfo &
  16176. setMemoryBarriers( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::MemoryBarrier2> const & memoryBarriers_ ) VULKAN_HPP_NOEXCEPT
  16177. {
  16178. memoryBarrierCount = static_cast<uint32_t>( memoryBarriers_.size() );
  16179. pMemoryBarriers = memoryBarriers_.data();
  16180. return *this;
  16181. }
  16182. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  16183. VULKAN_HPP_CONSTEXPR_14 DependencyInfo & setBufferMemoryBarrierCount( uint32_t bufferMemoryBarrierCount_ ) VULKAN_HPP_NOEXCEPT
  16184. {
  16185. bufferMemoryBarrierCount = bufferMemoryBarrierCount_;
  16186. return *this;
  16187. }
  16188. VULKAN_HPP_CONSTEXPR_14 DependencyInfo &
  16189. setPBufferMemoryBarriers( const VULKAN_HPP_NAMESPACE::BufferMemoryBarrier2 * pBufferMemoryBarriers_ ) VULKAN_HPP_NOEXCEPT
  16190. {
  16191. pBufferMemoryBarriers = pBufferMemoryBarriers_;
  16192. return *this;
  16193. }
  16194. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  16195. DependencyInfo & setBufferMemoryBarriers(
  16196. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::BufferMemoryBarrier2> const & bufferMemoryBarriers_ ) VULKAN_HPP_NOEXCEPT
  16197. {
  16198. bufferMemoryBarrierCount = static_cast<uint32_t>( bufferMemoryBarriers_.size() );
  16199. pBufferMemoryBarriers = bufferMemoryBarriers_.data();
  16200. return *this;
  16201. }
  16202. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  16203. VULKAN_HPP_CONSTEXPR_14 DependencyInfo & setImageMemoryBarrierCount( uint32_t imageMemoryBarrierCount_ ) VULKAN_HPP_NOEXCEPT
  16204. {
  16205. imageMemoryBarrierCount = imageMemoryBarrierCount_;
  16206. return *this;
  16207. }
  16208. VULKAN_HPP_CONSTEXPR_14 DependencyInfo &
  16209. setPImageMemoryBarriers( const VULKAN_HPP_NAMESPACE::ImageMemoryBarrier2 * pImageMemoryBarriers_ ) VULKAN_HPP_NOEXCEPT
  16210. {
  16211. pImageMemoryBarriers = pImageMemoryBarriers_;
  16212. return *this;
  16213. }
  16214. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  16215. DependencyInfo & setImageMemoryBarriers(
  16216. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::ImageMemoryBarrier2> const & imageMemoryBarriers_ ) VULKAN_HPP_NOEXCEPT
  16217. {
  16218. imageMemoryBarrierCount = static_cast<uint32_t>( imageMemoryBarriers_.size() );
  16219. pImageMemoryBarriers = imageMemoryBarriers_.data();
  16220. return *this;
  16221. }
  16222. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  16223. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  16224. operator VkDependencyInfo const &() const VULKAN_HPP_NOEXCEPT
  16225. {
  16226. return *reinterpret_cast<const VkDependencyInfo *>( this );
  16227. }
  16228. operator VkDependencyInfo &() VULKAN_HPP_NOEXCEPT
  16229. {
  16230. return *reinterpret_cast<VkDependencyInfo *>( this );
  16231. }
  16232. #if defined( VULKAN_HPP_USE_REFLECT )
  16233. # if 14 <= VULKAN_HPP_CPP_VERSION
  16234. auto
  16235. # else
  16236. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  16237. const void * const &,
  16238. VULKAN_HPP_NAMESPACE::DependencyFlags const &,
  16239. uint32_t const &,
  16240. const VULKAN_HPP_NAMESPACE::MemoryBarrier2 * const &,
  16241. uint32_t const &,
  16242. const VULKAN_HPP_NAMESPACE::BufferMemoryBarrier2 * const &,
  16243. uint32_t const &,
  16244. const VULKAN_HPP_NAMESPACE::ImageMemoryBarrier2 * const &>
  16245. # endif
  16246. reflect() const VULKAN_HPP_NOEXCEPT
  16247. {
  16248. return std::tie( sType,
  16249. pNext,
  16250. dependencyFlags,
  16251. memoryBarrierCount,
  16252. pMemoryBarriers,
  16253. bufferMemoryBarrierCount,
  16254. pBufferMemoryBarriers,
  16255. imageMemoryBarrierCount,
  16256. pImageMemoryBarriers );
  16257. }
  16258. #endif
  16259. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  16260. auto operator<=>( DependencyInfo const & ) const = default;
  16261. #else
  16262. bool operator==( DependencyInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  16263. {
  16264. # if defined( VULKAN_HPP_USE_REFLECT )
  16265. return this->reflect() == rhs.reflect();
  16266. # else
  16267. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( dependencyFlags == rhs.dependencyFlags ) &&
  16268. ( memoryBarrierCount == rhs.memoryBarrierCount ) && ( pMemoryBarriers == rhs.pMemoryBarriers ) &&
  16269. ( bufferMemoryBarrierCount == rhs.bufferMemoryBarrierCount ) && ( pBufferMemoryBarriers == rhs.pBufferMemoryBarriers ) &&
  16270. ( imageMemoryBarrierCount == rhs.imageMemoryBarrierCount ) && ( pImageMemoryBarriers == rhs.pImageMemoryBarriers );
  16271. # endif
  16272. }
  16273. bool operator!=( DependencyInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  16274. {
  16275. return !operator==( rhs );
  16276. }
  16277. #endif
  16278. public:
  16279. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDependencyInfo;
  16280. const void * pNext = {};
  16281. VULKAN_HPP_NAMESPACE::DependencyFlags dependencyFlags = {};
  16282. uint32_t memoryBarrierCount = {};
  16283. const VULKAN_HPP_NAMESPACE::MemoryBarrier2 * pMemoryBarriers = {};
  16284. uint32_t bufferMemoryBarrierCount = {};
  16285. const VULKAN_HPP_NAMESPACE::BufferMemoryBarrier2 * pBufferMemoryBarriers = {};
  16286. uint32_t imageMemoryBarrierCount = {};
  16287. const VULKAN_HPP_NAMESPACE::ImageMemoryBarrier2 * pImageMemoryBarriers = {};
  16288. };
  16289. template <>
  16290. struct CppType<StructureType, StructureType::eDependencyInfo>
  16291. {
  16292. using Type = DependencyInfo;
  16293. };
  16294. using DependencyInfoKHR = DependencyInfo;
  16295. struct DescriptorBufferInfo
  16296. {
  16297. using NativeType = VkDescriptorBufferInfo;
  16298. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  16299. VULKAN_HPP_CONSTEXPR DescriptorBufferInfo( VULKAN_HPP_NAMESPACE::Buffer buffer_ = {},
  16300. VULKAN_HPP_NAMESPACE::DeviceSize offset_ = {},
  16301. VULKAN_HPP_NAMESPACE::DeviceSize range_ = {} ) VULKAN_HPP_NOEXCEPT
  16302. : buffer( buffer_ )
  16303. , offset( offset_ )
  16304. , range( range_ )
  16305. {
  16306. }
  16307. VULKAN_HPP_CONSTEXPR DescriptorBufferInfo( DescriptorBufferInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  16308. DescriptorBufferInfo( VkDescriptorBufferInfo const & rhs ) VULKAN_HPP_NOEXCEPT
  16309. : DescriptorBufferInfo( *reinterpret_cast<DescriptorBufferInfo const *>( &rhs ) )
  16310. {
  16311. }
  16312. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  16313. DescriptorBufferInfo & operator=( DescriptorBufferInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  16314. DescriptorBufferInfo & operator=( VkDescriptorBufferInfo const & rhs ) VULKAN_HPP_NOEXCEPT
  16315. {
  16316. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DescriptorBufferInfo const *>( &rhs );
  16317. return *this;
  16318. }
  16319. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  16320. VULKAN_HPP_CONSTEXPR_14 DescriptorBufferInfo & setBuffer( VULKAN_HPP_NAMESPACE::Buffer buffer_ ) VULKAN_HPP_NOEXCEPT
  16321. {
  16322. buffer = buffer_;
  16323. return *this;
  16324. }
  16325. VULKAN_HPP_CONSTEXPR_14 DescriptorBufferInfo & setOffset( VULKAN_HPP_NAMESPACE::DeviceSize offset_ ) VULKAN_HPP_NOEXCEPT
  16326. {
  16327. offset = offset_;
  16328. return *this;
  16329. }
  16330. VULKAN_HPP_CONSTEXPR_14 DescriptorBufferInfo & setRange( VULKAN_HPP_NAMESPACE::DeviceSize range_ ) VULKAN_HPP_NOEXCEPT
  16331. {
  16332. range = range_;
  16333. return *this;
  16334. }
  16335. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  16336. operator VkDescriptorBufferInfo const &() const VULKAN_HPP_NOEXCEPT
  16337. {
  16338. return *reinterpret_cast<const VkDescriptorBufferInfo *>( this );
  16339. }
  16340. operator VkDescriptorBufferInfo &() VULKAN_HPP_NOEXCEPT
  16341. {
  16342. return *reinterpret_cast<VkDescriptorBufferInfo *>( this );
  16343. }
  16344. #if defined( VULKAN_HPP_USE_REFLECT )
  16345. # if 14 <= VULKAN_HPP_CPP_VERSION
  16346. auto
  16347. # else
  16348. std::tuple<VULKAN_HPP_NAMESPACE::Buffer const &, VULKAN_HPP_NAMESPACE::DeviceSize const &, VULKAN_HPP_NAMESPACE::DeviceSize const &>
  16349. # endif
  16350. reflect() const VULKAN_HPP_NOEXCEPT
  16351. {
  16352. return std::tie( buffer, offset, range );
  16353. }
  16354. #endif
  16355. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  16356. auto operator<=>( DescriptorBufferInfo const & ) const = default;
  16357. #else
  16358. bool operator==( DescriptorBufferInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  16359. {
  16360. # if defined( VULKAN_HPP_USE_REFLECT )
  16361. return this->reflect() == rhs.reflect();
  16362. # else
  16363. return ( buffer == rhs.buffer ) && ( offset == rhs.offset ) && ( range == rhs.range );
  16364. # endif
  16365. }
  16366. bool operator!=( DescriptorBufferInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  16367. {
  16368. return !operator==( rhs );
  16369. }
  16370. #endif
  16371. public:
  16372. VULKAN_HPP_NAMESPACE::Buffer buffer = {};
  16373. VULKAN_HPP_NAMESPACE::DeviceSize offset = {};
  16374. VULKAN_HPP_NAMESPACE::DeviceSize range = {};
  16375. };
  16376. struct DescriptorImageInfo
  16377. {
  16378. using NativeType = VkDescriptorImageInfo;
  16379. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  16380. VULKAN_HPP_CONSTEXPR
  16381. DescriptorImageInfo( VULKAN_HPP_NAMESPACE::Sampler sampler_ = {},
  16382. VULKAN_HPP_NAMESPACE::ImageView imageView_ = {},
  16383. VULKAN_HPP_NAMESPACE::ImageLayout imageLayout_ = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined ) VULKAN_HPP_NOEXCEPT
  16384. : sampler( sampler_ )
  16385. , imageView( imageView_ )
  16386. , imageLayout( imageLayout_ )
  16387. {
  16388. }
  16389. VULKAN_HPP_CONSTEXPR DescriptorImageInfo( DescriptorImageInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  16390. DescriptorImageInfo( VkDescriptorImageInfo const & rhs ) VULKAN_HPP_NOEXCEPT : DescriptorImageInfo( *reinterpret_cast<DescriptorImageInfo const *>( &rhs ) )
  16391. {
  16392. }
  16393. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  16394. DescriptorImageInfo & operator=( DescriptorImageInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  16395. DescriptorImageInfo & operator=( VkDescriptorImageInfo const & rhs ) VULKAN_HPP_NOEXCEPT
  16396. {
  16397. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DescriptorImageInfo const *>( &rhs );
  16398. return *this;
  16399. }
  16400. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  16401. VULKAN_HPP_CONSTEXPR_14 DescriptorImageInfo & setSampler( VULKAN_HPP_NAMESPACE::Sampler sampler_ ) VULKAN_HPP_NOEXCEPT
  16402. {
  16403. sampler = sampler_;
  16404. return *this;
  16405. }
  16406. VULKAN_HPP_CONSTEXPR_14 DescriptorImageInfo & setImageView( VULKAN_HPP_NAMESPACE::ImageView imageView_ ) VULKAN_HPP_NOEXCEPT
  16407. {
  16408. imageView = imageView_;
  16409. return *this;
  16410. }
  16411. VULKAN_HPP_CONSTEXPR_14 DescriptorImageInfo & setImageLayout( VULKAN_HPP_NAMESPACE::ImageLayout imageLayout_ ) VULKAN_HPP_NOEXCEPT
  16412. {
  16413. imageLayout = imageLayout_;
  16414. return *this;
  16415. }
  16416. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  16417. operator VkDescriptorImageInfo const &() const VULKAN_HPP_NOEXCEPT
  16418. {
  16419. return *reinterpret_cast<const VkDescriptorImageInfo *>( this );
  16420. }
  16421. operator VkDescriptorImageInfo &() VULKAN_HPP_NOEXCEPT
  16422. {
  16423. return *reinterpret_cast<VkDescriptorImageInfo *>( this );
  16424. }
  16425. #if defined( VULKAN_HPP_USE_REFLECT )
  16426. # if 14 <= VULKAN_HPP_CPP_VERSION
  16427. auto
  16428. # else
  16429. std::tuple<VULKAN_HPP_NAMESPACE::Sampler const &, VULKAN_HPP_NAMESPACE::ImageView const &, VULKAN_HPP_NAMESPACE::ImageLayout const &>
  16430. # endif
  16431. reflect() const VULKAN_HPP_NOEXCEPT
  16432. {
  16433. return std::tie( sampler, imageView, imageLayout );
  16434. }
  16435. #endif
  16436. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  16437. auto operator<=>( DescriptorImageInfo const & ) const = default;
  16438. #else
  16439. bool operator==( DescriptorImageInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  16440. {
  16441. # if defined( VULKAN_HPP_USE_REFLECT )
  16442. return this->reflect() == rhs.reflect();
  16443. # else
  16444. return ( sampler == rhs.sampler ) && ( imageView == rhs.imageView ) && ( imageLayout == rhs.imageLayout );
  16445. # endif
  16446. }
  16447. bool operator!=( DescriptorImageInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  16448. {
  16449. return !operator==( rhs );
  16450. }
  16451. #endif
  16452. public:
  16453. VULKAN_HPP_NAMESPACE::Sampler sampler = {};
  16454. VULKAN_HPP_NAMESPACE::ImageView imageView = {};
  16455. VULKAN_HPP_NAMESPACE::ImageLayout imageLayout = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined;
  16456. };
  16457. struct DescriptorPoolSize
  16458. {
  16459. using NativeType = VkDescriptorPoolSize;
  16460. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  16461. VULKAN_HPP_CONSTEXPR DescriptorPoolSize( VULKAN_HPP_NAMESPACE::DescriptorType type_ = VULKAN_HPP_NAMESPACE::DescriptorType::eSampler,
  16462. uint32_t descriptorCount_ = {} ) VULKAN_HPP_NOEXCEPT
  16463. : type( type_ )
  16464. , descriptorCount( descriptorCount_ )
  16465. {
  16466. }
  16467. VULKAN_HPP_CONSTEXPR DescriptorPoolSize( DescriptorPoolSize const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  16468. DescriptorPoolSize( VkDescriptorPoolSize const & rhs ) VULKAN_HPP_NOEXCEPT : DescriptorPoolSize( *reinterpret_cast<DescriptorPoolSize const *>( &rhs ) ) {}
  16469. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  16470. DescriptorPoolSize & operator=( DescriptorPoolSize const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  16471. DescriptorPoolSize & operator=( VkDescriptorPoolSize const & rhs ) VULKAN_HPP_NOEXCEPT
  16472. {
  16473. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DescriptorPoolSize const *>( &rhs );
  16474. return *this;
  16475. }
  16476. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  16477. VULKAN_HPP_CONSTEXPR_14 DescriptorPoolSize & setType( VULKAN_HPP_NAMESPACE::DescriptorType type_ ) VULKAN_HPP_NOEXCEPT
  16478. {
  16479. type = type_;
  16480. return *this;
  16481. }
  16482. VULKAN_HPP_CONSTEXPR_14 DescriptorPoolSize & setDescriptorCount( uint32_t descriptorCount_ ) VULKAN_HPP_NOEXCEPT
  16483. {
  16484. descriptorCount = descriptorCount_;
  16485. return *this;
  16486. }
  16487. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  16488. operator VkDescriptorPoolSize const &() const VULKAN_HPP_NOEXCEPT
  16489. {
  16490. return *reinterpret_cast<const VkDescriptorPoolSize *>( this );
  16491. }
  16492. operator VkDescriptorPoolSize &() VULKAN_HPP_NOEXCEPT
  16493. {
  16494. return *reinterpret_cast<VkDescriptorPoolSize *>( 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::DescriptorType const &, uint32_t const &>
  16501. # endif
  16502. reflect() const VULKAN_HPP_NOEXCEPT
  16503. {
  16504. return std::tie( type, descriptorCount );
  16505. }
  16506. #endif
  16507. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  16508. auto operator<=>( DescriptorPoolSize const & ) const = default;
  16509. #else
  16510. bool operator==( DescriptorPoolSize const & rhs ) const VULKAN_HPP_NOEXCEPT
  16511. {
  16512. # if defined( VULKAN_HPP_USE_REFLECT )
  16513. return this->reflect() == rhs.reflect();
  16514. # else
  16515. return ( type == rhs.type ) && ( descriptorCount == rhs.descriptorCount );
  16516. # endif
  16517. }
  16518. bool operator!=( DescriptorPoolSize const & rhs ) const VULKAN_HPP_NOEXCEPT
  16519. {
  16520. return !operator==( rhs );
  16521. }
  16522. #endif
  16523. public:
  16524. VULKAN_HPP_NAMESPACE::DescriptorType type = VULKAN_HPP_NAMESPACE::DescriptorType::eSampler;
  16525. uint32_t descriptorCount = {};
  16526. };
  16527. struct DescriptorPoolCreateInfo
  16528. {
  16529. using NativeType = VkDescriptorPoolCreateInfo;
  16530. static const bool allowDuplicate = false;
  16531. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDescriptorPoolCreateInfo;
  16532. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  16533. VULKAN_HPP_CONSTEXPR DescriptorPoolCreateInfo( VULKAN_HPP_NAMESPACE::DescriptorPoolCreateFlags flags_ = {},
  16534. uint32_t maxSets_ = {},
  16535. uint32_t poolSizeCount_ = {},
  16536. const VULKAN_HPP_NAMESPACE::DescriptorPoolSize * pPoolSizes_ = {},
  16537. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  16538. : pNext( pNext_ )
  16539. , flags( flags_ )
  16540. , maxSets( maxSets_ )
  16541. , poolSizeCount( poolSizeCount_ )
  16542. , pPoolSizes( pPoolSizes_ )
  16543. {
  16544. }
  16545. VULKAN_HPP_CONSTEXPR DescriptorPoolCreateInfo( DescriptorPoolCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  16546. DescriptorPoolCreateInfo( VkDescriptorPoolCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
  16547. : DescriptorPoolCreateInfo( *reinterpret_cast<DescriptorPoolCreateInfo const *>( &rhs ) )
  16548. {
  16549. }
  16550. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  16551. DescriptorPoolCreateInfo( VULKAN_HPP_NAMESPACE::DescriptorPoolCreateFlags flags_,
  16552. uint32_t maxSets_,
  16553. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::DescriptorPoolSize> const & poolSizes_,
  16554. const void * pNext_ = nullptr )
  16555. : pNext( pNext_ ), flags( flags_ ), maxSets( maxSets_ ), poolSizeCount( static_cast<uint32_t>( poolSizes_.size() ) ), pPoolSizes( poolSizes_.data() )
  16556. {
  16557. }
  16558. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  16559. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  16560. DescriptorPoolCreateInfo & operator=( DescriptorPoolCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  16561. DescriptorPoolCreateInfo & operator=( VkDescriptorPoolCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
  16562. {
  16563. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DescriptorPoolCreateInfo const *>( &rhs );
  16564. return *this;
  16565. }
  16566. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  16567. VULKAN_HPP_CONSTEXPR_14 DescriptorPoolCreateInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  16568. {
  16569. pNext = pNext_;
  16570. return *this;
  16571. }
  16572. VULKAN_HPP_CONSTEXPR_14 DescriptorPoolCreateInfo & setFlags( VULKAN_HPP_NAMESPACE::DescriptorPoolCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT
  16573. {
  16574. flags = flags_;
  16575. return *this;
  16576. }
  16577. VULKAN_HPP_CONSTEXPR_14 DescriptorPoolCreateInfo & setMaxSets( uint32_t maxSets_ ) VULKAN_HPP_NOEXCEPT
  16578. {
  16579. maxSets = maxSets_;
  16580. return *this;
  16581. }
  16582. VULKAN_HPP_CONSTEXPR_14 DescriptorPoolCreateInfo & setPoolSizeCount( uint32_t poolSizeCount_ ) VULKAN_HPP_NOEXCEPT
  16583. {
  16584. poolSizeCount = poolSizeCount_;
  16585. return *this;
  16586. }
  16587. VULKAN_HPP_CONSTEXPR_14 DescriptorPoolCreateInfo & setPPoolSizes( const VULKAN_HPP_NAMESPACE::DescriptorPoolSize * pPoolSizes_ ) VULKAN_HPP_NOEXCEPT
  16588. {
  16589. pPoolSizes = pPoolSizes_;
  16590. return *this;
  16591. }
  16592. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  16593. DescriptorPoolCreateInfo &
  16594. setPoolSizes( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::DescriptorPoolSize> const & poolSizes_ ) VULKAN_HPP_NOEXCEPT
  16595. {
  16596. poolSizeCount = static_cast<uint32_t>( poolSizes_.size() );
  16597. pPoolSizes = poolSizes_.data();
  16598. return *this;
  16599. }
  16600. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  16601. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  16602. operator VkDescriptorPoolCreateInfo const &() const VULKAN_HPP_NOEXCEPT
  16603. {
  16604. return *reinterpret_cast<const VkDescriptorPoolCreateInfo *>( this );
  16605. }
  16606. operator VkDescriptorPoolCreateInfo &() VULKAN_HPP_NOEXCEPT
  16607. {
  16608. return *reinterpret_cast<VkDescriptorPoolCreateInfo *>( this );
  16609. }
  16610. #if defined( VULKAN_HPP_USE_REFLECT )
  16611. # if 14 <= VULKAN_HPP_CPP_VERSION
  16612. auto
  16613. # else
  16614. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  16615. const void * const &,
  16616. VULKAN_HPP_NAMESPACE::DescriptorPoolCreateFlags const &,
  16617. uint32_t const &,
  16618. uint32_t const &,
  16619. const VULKAN_HPP_NAMESPACE::DescriptorPoolSize * const &>
  16620. # endif
  16621. reflect() const VULKAN_HPP_NOEXCEPT
  16622. {
  16623. return std::tie( sType, pNext, flags, maxSets, poolSizeCount, pPoolSizes );
  16624. }
  16625. #endif
  16626. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  16627. auto operator<=>( DescriptorPoolCreateInfo const & ) const = default;
  16628. #else
  16629. bool operator==( DescriptorPoolCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  16630. {
  16631. # if defined( VULKAN_HPP_USE_REFLECT )
  16632. return this->reflect() == rhs.reflect();
  16633. # else
  16634. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( flags == rhs.flags ) && ( maxSets == rhs.maxSets ) &&
  16635. ( poolSizeCount == rhs.poolSizeCount ) && ( pPoolSizes == rhs.pPoolSizes );
  16636. # endif
  16637. }
  16638. bool operator!=( DescriptorPoolCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  16639. {
  16640. return !operator==( rhs );
  16641. }
  16642. #endif
  16643. public:
  16644. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDescriptorPoolCreateInfo;
  16645. const void * pNext = {};
  16646. VULKAN_HPP_NAMESPACE::DescriptorPoolCreateFlags flags = {};
  16647. uint32_t maxSets = {};
  16648. uint32_t poolSizeCount = {};
  16649. const VULKAN_HPP_NAMESPACE::DescriptorPoolSize * pPoolSizes = {};
  16650. };
  16651. template <>
  16652. struct CppType<StructureType, StructureType::eDescriptorPoolCreateInfo>
  16653. {
  16654. using Type = DescriptorPoolCreateInfo;
  16655. };
  16656. struct DescriptorPoolInlineUniformBlockCreateInfo
  16657. {
  16658. using NativeType = VkDescriptorPoolInlineUniformBlockCreateInfo;
  16659. static const bool allowDuplicate = false;
  16660. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDescriptorPoolInlineUniformBlockCreateInfo;
  16661. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  16662. VULKAN_HPP_CONSTEXPR DescriptorPoolInlineUniformBlockCreateInfo( uint32_t maxInlineUniformBlockBindings_ = {},
  16663. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  16664. : pNext( pNext_ )
  16665. , maxInlineUniformBlockBindings( maxInlineUniformBlockBindings_ )
  16666. {
  16667. }
  16668. VULKAN_HPP_CONSTEXPR DescriptorPoolInlineUniformBlockCreateInfo( DescriptorPoolInlineUniformBlockCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  16669. DescriptorPoolInlineUniformBlockCreateInfo( VkDescriptorPoolInlineUniformBlockCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
  16670. : DescriptorPoolInlineUniformBlockCreateInfo( *reinterpret_cast<DescriptorPoolInlineUniformBlockCreateInfo const *>( &rhs ) )
  16671. {
  16672. }
  16673. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  16674. DescriptorPoolInlineUniformBlockCreateInfo & operator=( DescriptorPoolInlineUniformBlockCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  16675. DescriptorPoolInlineUniformBlockCreateInfo & operator=( VkDescriptorPoolInlineUniformBlockCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
  16676. {
  16677. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DescriptorPoolInlineUniformBlockCreateInfo const *>( &rhs );
  16678. return *this;
  16679. }
  16680. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  16681. VULKAN_HPP_CONSTEXPR_14 DescriptorPoolInlineUniformBlockCreateInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  16682. {
  16683. pNext = pNext_;
  16684. return *this;
  16685. }
  16686. VULKAN_HPP_CONSTEXPR_14 DescriptorPoolInlineUniformBlockCreateInfo &
  16687. setMaxInlineUniformBlockBindings( uint32_t maxInlineUniformBlockBindings_ ) VULKAN_HPP_NOEXCEPT
  16688. {
  16689. maxInlineUniformBlockBindings = maxInlineUniformBlockBindings_;
  16690. return *this;
  16691. }
  16692. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  16693. operator VkDescriptorPoolInlineUniformBlockCreateInfo const &() const VULKAN_HPP_NOEXCEPT
  16694. {
  16695. return *reinterpret_cast<const VkDescriptorPoolInlineUniformBlockCreateInfo *>( this );
  16696. }
  16697. operator VkDescriptorPoolInlineUniformBlockCreateInfo &() VULKAN_HPP_NOEXCEPT
  16698. {
  16699. return *reinterpret_cast<VkDescriptorPoolInlineUniformBlockCreateInfo *>( this );
  16700. }
  16701. #if defined( VULKAN_HPP_USE_REFLECT )
  16702. # if 14 <= VULKAN_HPP_CPP_VERSION
  16703. auto
  16704. # else
  16705. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, uint32_t const &>
  16706. # endif
  16707. reflect() const VULKAN_HPP_NOEXCEPT
  16708. {
  16709. return std::tie( sType, pNext, maxInlineUniformBlockBindings );
  16710. }
  16711. #endif
  16712. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  16713. auto operator<=>( DescriptorPoolInlineUniformBlockCreateInfo const & ) const = default;
  16714. #else
  16715. bool operator==( DescriptorPoolInlineUniformBlockCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  16716. {
  16717. # if defined( VULKAN_HPP_USE_REFLECT )
  16718. return this->reflect() == rhs.reflect();
  16719. # else
  16720. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( maxInlineUniformBlockBindings == rhs.maxInlineUniformBlockBindings );
  16721. # endif
  16722. }
  16723. bool operator!=( DescriptorPoolInlineUniformBlockCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  16724. {
  16725. return !operator==( rhs );
  16726. }
  16727. #endif
  16728. public:
  16729. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDescriptorPoolInlineUniformBlockCreateInfo;
  16730. const void * pNext = {};
  16731. uint32_t maxInlineUniformBlockBindings = {};
  16732. };
  16733. template <>
  16734. struct CppType<StructureType, StructureType::eDescriptorPoolInlineUniformBlockCreateInfo>
  16735. {
  16736. using Type = DescriptorPoolInlineUniformBlockCreateInfo;
  16737. };
  16738. using DescriptorPoolInlineUniformBlockCreateInfoEXT = DescriptorPoolInlineUniformBlockCreateInfo;
  16739. struct DescriptorSetAllocateInfo
  16740. {
  16741. using NativeType = VkDescriptorSetAllocateInfo;
  16742. static const bool allowDuplicate = false;
  16743. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDescriptorSetAllocateInfo;
  16744. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  16745. VULKAN_HPP_CONSTEXPR DescriptorSetAllocateInfo( VULKAN_HPP_NAMESPACE::DescriptorPool descriptorPool_ = {},
  16746. uint32_t descriptorSetCount_ = {},
  16747. const VULKAN_HPP_NAMESPACE::DescriptorSetLayout * pSetLayouts_ = {},
  16748. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  16749. : pNext( pNext_ )
  16750. , descriptorPool( descriptorPool_ )
  16751. , descriptorSetCount( descriptorSetCount_ )
  16752. , pSetLayouts( pSetLayouts_ )
  16753. {
  16754. }
  16755. VULKAN_HPP_CONSTEXPR DescriptorSetAllocateInfo( DescriptorSetAllocateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  16756. DescriptorSetAllocateInfo( VkDescriptorSetAllocateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
  16757. : DescriptorSetAllocateInfo( *reinterpret_cast<DescriptorSetAllocateInfo const *>( &rhs ) )
  16758. {
  16759. }
  16760. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  16761. DescriptorSetAllocateInfo( VULKAN_HPP_NAMESPACE::DescriptorPool descriptorPool_,
  16762. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::DescriptorSetLayout> const & setLayouts_,
  16763. const void * pNext_ = nullptr )
  16764. : pNext( pNext_ ), descriptorPool( descriptorPool_ ), descriptorSetCount( static_cast<uint32_t>( setLayouts_.size() ) ), pSetLayouts( setLayouts_.data() )
  16765. {
  16766. }
  16767. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  16768. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  16769. DescriptorSetAllocateInfo & operator=( DescriptorSetAllocateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  16770. DescriptorSetAllocateInfo & operator=( VkDescriptorSetAllocateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
  16771. {
  16772. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DescriptorSetAllocateInfo const *>( &rhs );
  16773. return *this;
  16774. }
  16775. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  16776. VULKAN_HPP_CONSTEXPR_14 DescriptorSetAllocateInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  16777. {
  16778. pNext = pNext_;
  16779. return *this;
  16780. }
  16781. VULKAN_HPP_CONSTEXPR_14 DescriptorSetAllocateInfo & setDescriptorPool( VULKAN_HPP_NAMESPACE::DescriptorPool descriptorPool_ ) VULKAN_HPP_NOEXCEPT
  16782. {
  16783. descriptorPool = descriptorPool_;
  16784. return *this;
  16785. }
  16786. VULKAN_HPP_CONSTEXPR_14 DescriptorSetAllocateInfo & setDescriptorSetCount( uint32_t descriptorSetCount_ ) VULKAN_HPP_NOEXCEPT
  16787. {
  16788. descriptorSetCount = descriptorSetCount_;
  16789. return *this;
  16790. }
  16791. VULKAN_HPP_CONSTEXPR_14 DescriptorSetAllocateInfo & setPSetLayouts( const VULKAN_HPP_NAMESPACE::DescriptorSetLayout * pSetLayouts_ ) VULKAN_HPP_NOEXCEPT
  16792. {
  16793. pSetLayouts = pSetLayouts_;
  16794. return *this;
  16795. }
  16796. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  16797. DescriptorSetAllocateInfo &
  16798. setSetLayouts( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::DescriptorSetLayout> const & setLayouts_ ) VULKAN_HPP_NOEXCEPT
  16799. {
  16800. descriptorSetCount = static_cast<uint32_t>( setLayouts_.size() );
  16801. pSetLayouts = setLayouts_.data();
  16802. return *this;
  16803. }
  16804. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  16805. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  16806. operator VkDescriptorSetAllocateInfo const &() const VULKAN_HPP_NOEXCEPT
  16807. {
  16808. return *reinterpret_cast<const VkDescriptorSetAllocateInfo *>( this );
  16809. }
  16810. operator VkDescriptorSetAllocateInfo &() VULKAN_HPP_NOEXCEPT
  16811. {
  16812. return *reinterpret_cast<VkDescriptorSetAllocateInfo *>( this );
  16813. }
  16814. #if defined( VULKAN_HPP_USE_REFLECT )
  16815. # if 14 <= VULKAN_HPP_CPP_VERSION
  16816. auto
  16817. # else
  16818. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  16819. const void * const &,
  16820. VULKAN_HPP_NAMESPACE::DescriptorPool const &,
  16821. uint32_t const &,
  16822. const VULKAN_HPP_NAMESPACE::DescriptorSetLayout * const &>
  16823. # endif
  16824. reflect() const VULKAN_HPP_NOEXCEPT
  16825. {
  16826. return std::tie( sType, pNext, descriptorPool, descriptorSetCount, pSetLayouts );
  16827. }
  16828. #endif
  16829. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  16830. auto operator<=>( DescriptorSetAllocateInfo const & ) const = default;
  16831. #else
  16832. bool operator==( DescriptorSetAllocateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  16833. {
  16834. # if defined( VULKAN_HPP_USE_REFLECT )
  16835. return this->reflect() == rhs.reflect();
  16836. # else
  16837. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( descriptorPool == rhs.descriptorPool ) && ( descriptorSetCount == rhs.descriptorSetCount ) &&
  16838. ( pSetLayouts == rhs.pSetLayouts );
  16839. # endif
  16840. }
  16841. bool operator!=( DescriptorSetAllocateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  16842. {
  16843. return !operator==( rhs );
  16844. }
  16845. #endif
  16846. public:
  16847. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDescriptorSetAllocateInfo;
  16848. const void * pNext = {};
  16849. VULKAN_HPP_NAMESPACE::DescriptorPool descriptorPool = {};
  16850. uint32_t descriptorSetCount = {};
  16851. const VULKAN_HPP_NAMESPACE::DescriptorSetLayout * pSetLayouts = {};
  16852. };
  16853. template <>
  16854. struct CppType<StructureType, StructureType::eDescriptorSetAllocateInfo>
  16855. {
  16856. using Type = DescriptorSetAllocateInfo;
  16857. };
  16858. struct DescriptorSetBindingReferenceVALVE
  16859. {
  16860. using NativeType = VkDescriptorSetBindingReferenceVALVE;
  16861. static const bool allowDuplicate = false;
  16862. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDescriptorSetBindingReferenceVALVE;
  16863. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  16864. VULKAN_HPP_CONSTEXPR DescriptorSetBindingReferenceVALVE( VULKAN_HPP_NAMESPACE::DescriptorSetLayout descriptorSetLayout_ = {},
  16865. uint32_t binding_ = {},
  16866. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  16867. : pNext( pNext_ )
  16868. , descriptorSetLayout( descriptorSetLayout_ )
  16869. , binding( binding_ )
  16870. {
  16871. }
  16872. VULKAN_HPP_CONSTEXPR DescriptorSetBindingReferenceVALVE( DescriptorSetBindingReferenceVALVE const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  16873. DescriptorSetBindingReferenceVALVE( VkDescriptorSetBindingReferenceVALVE const & rhs ) VULKAN_HPP_NOEXCEPT
  16874. : DescriptorSetBindingReferenceVALVE( *reinterpret_cast<DescriptorSetBindingReferenceVALVE const *>( &rhs ) )
  16875. {
  16876. }
  16877. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  16878. DescriptorSetBindingReferenceVALVE & operator=( DescriptorSetBindingReferenceVALVE const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  16879. DescriptorSetBindingReferenceVALVE & operator=( VkDescriptorSetBindingReferenceVALVE const & rhs ) VULKAN_HPP_NOEXCEPT
  16880. {
  16881. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DescriptorSetBindingReferenceVALVE const *>( &rhs );
  16882. return *this;
  16883. }
  16884. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  16885. VULKAN_HPP_CONSTEXPR_14 DescriptorSetBindingReferenceVALVE & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  16886. {
  16887. pNext = pNext_;
  16888. return *this;
  16889. }
  16890. VULKAN_HPP_CONSTEXPR_14 DescriptorSetBindingReferenceVALVE &
  16891. setDescriptorSetLayout( VULKAN_HPP_NAMESPACE::DescriptorSetLayout descriptorSetLayout_ ) VULKAN_HPP_NOEXCEPT
  16892. {
  16893. descriptorSetLayout = descriptorSetLayout_;
  16894. return *this;
  16895. }
  16896. VULKAN_HPP_CONSTEXPR_14 DescriptorSetBindingReferenceVALVE & setBinding( uint32_t binding_ ) VULKAN_HPP_NOEXCEPT
  16897. {
  16898. binding = binding_;
  16899. return *this;
  16900. }
  16901. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  16902. operator VkDescriptorSetBindingReferenceVALVE const &() const VULKAN_HPP_NOEXCEPT
  16903. {
  16904. return *reinterpret_cast<const VkDescriptorSetBindingReferenceVALVE *>( this );
  16905. }
  16906. operator VkDescriptorSetBindingReferenceVALVE &() VULKAN_HPP_NOEXCEPT
  16907. {
  16908. return *reinterpret_cast<VkDescriptorSetBindingReferenceVALVE *>( this );
  16909. }
  16910. #if defined( VULKAN_HPP_USE_REFLECT )
  16911. # if 14 <= VULKAN_HPP_CPP_VERSION
  16912. auto
  16913. # else
  16914. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::DescriptorSetLayout const &, uint32_t const &>
  16915. # endif
  16916. reflect() const VULKAN_HPP_NOEXCEPT
  16917. {
  16918. return std::tie( sType, pNext, descriptorSetLayout, binding );
  16919. }
  16920. #endif
  16921. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  16922. auto operator<=>( DescriptorSetBindingReferenceVALVE const & ) const = default;
  16923. #else
  16924. bool operator==( DescriptorSetBindingReferenceVALVE const & rhs ) const VULKAN_HPP_NOEXCEPT
  16925. {
  16926. # if defined( VULKAN_HPP_USE_REFLECT )
  16927. return this->reflect() == rhs.reflect();
  16928. # else
  16929. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( descriptorSetLayout == rhs.descriptorSetLayout ) && ( binding == rhs.binding );
  16930. # endif
  16931. }
  16932. bool operator!=( DescriptorSetBindingReferenceVALVE const & rhs ) const VULKAN_HPP_NOEXCEPT
  16933. {
  16934. return !operator==( rhs );
  16935. }
  16936. #endif
  16937. public:
  16938. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDescriptorSetBindingReferenceVALVE;
  16939. const void * pNext = {};
  16940. VULKAN_HPP_NAMESPACE::DescriptorSetLayout descriptorSetLayout = {};
  16941. uint32_t binding = {};
  16942. };
  16943. template <>
  16944. struct CppType<StructureType, StructureType::eDescriptorSetBindingReferenceVALVE>
  16945. {
  16946. using Type = DescriptorSetBindingReferenceVALVE;
  16947. };
  16948. struct DescriptorSetLayoutBinding
  16949. {
  16950. using NativeType = VkDescriptorSetLayoutBinding;
  16951. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  16952. VULKAN_HPP_CONSTEXPR DescriptorSetLayoutBinding( uint32_t binding_ = {},
  16953. VULKAN_HPP_NAMESPACE::DescriptorType descriptorType_ = VULKAN_HPP_NAMESPACE::DescriptorType::eSampler,
  16954. uint32_t descriptorCount_ = {},
  16955. VULKAN_HPP_NAMESPACE::ShaderStageFlags stageFlags_ = {},
  16956. const VULKAN_HPP_NAMESPACE::Sampler * pImmutableSamplers_ = {} ) VULKAN_HPP_NOEXCEPT
  16957. : binding( binding_ )
  16958. , descriptorType( descriptorType_ )
  16959. , descriptorCount( descriptorCount_ )
  16960. , stageFlags( stageFlags_ )
  16961. , pImmutableSamplers( pImmutableSamplers_ )
  16962. {
  16963. }
  16964. VULKAN_HPP_CONSTEXPR DescriptorSetLayoutBinding( DescriptorSetLayoutBinding const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  16965. DescriptorSetLayoutBinding( VkDescriptorSetLayoutBinding const & rhs ) VULKAN_HPP_NOEXCEPT
  16966. : DescriptorSetLayoutBinding( *reinterpret_cast<DescriptorSetLayoutBinding const *>( &rhs ) )
  16967. {
  16968. }
  16969. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  16970. DescriptorSetLayoutBinding( uint32_t binding_,
  16971. VULKAN_HPP_NAMESPACE::DescriptorType descriptorType_,
  16972. VULKAN_HPP_NAMESPACE::ShaderStageFlags stageFlags_,
  16973. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::Sampler> const & immutableSamplers_ )
  16974. : binding( binding_ )
  16975. , descriptorType( descriptorType_ )
  16976. , descriptorCount( static_cast<uint32_t>( immutableSamplers_.size() ) )
  16977. , stageFlags( stageFlags_ )
  16978. , pImmutableSamplers( immutableSamplers_.data() )
  16979. {
  16980. }
  16981. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  16982. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  16983. DescriptorSetLayoutBinding & operator=( DescriptorSetLayoutBinding const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  16984. DescriptorSetLayoutBinding & operator=( VkDescriptorSetLayoutBinding const & rhs ) VULKAN_HPP_NOEXCEPT
  16985. {
  16986. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DescriptorSetLayoutBinding const *>( &rhs );
  16987. return *this;
  16988. }
  16989. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  16990. VULKAN_HPP_CONSTEXPR_14 DescriptorSetLayoutBinding & setBinding( uint32_t binding_ ) VULKAN_HPP_NOEXCEPT
  16991. {
  16992. binding = binding_;
  16993. return *this;
  16994. }
  16995. VULKAN_HPP_CONSTEXPR_14 DescriptorSetLayoutBinding & setDescriptorType( VULKAN_HPP_NAMESPACE::DescriptorType descriptorType_ ) VULKAN_HPP_NOEXCEPT
  16996. {
  16997. descriptorType = descriptorType_;
  16998. return *this;
  16999. }
  17000. VULKAN_HPP_CONSTEXPR_14 DescriptorSetLayoutBinding & setDescriptorCount( uint32_t descriptorCount_ ) VULKAN_HPP_NOEXCEPT
  17001. {
  17002. descriptorCount = descriptorCount_;
  17003. return *this;
  17004. }
  17005. VULKAN_HPP_CONSTEXPR_14 DescriptorSetLayoutBinding & setStageFlags( VULKAN_HPP_NAMESPACE::ShaderStageFlags stageFlags_ ) VULKAN_HPP_NOEXCEPT
  17006. {
  17007. stageFlags = stageFlags_;
  17008. return *this;
  17009. }
  17010. VULKAN_HPP_CONSTEXPR_14 DescriptorSetLayoutBinding & setPImmutableSamplers( const VULKAN_HPP_NAMESPACE::Sampler * pImmutableSamplers_ ) VULKAN_HPP_NOEXCEPT
  17011. {
  17012. pImmutableSamplers = pImmutableSamplers_;
  17013. return *this;
  17014. }
  17015. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  17016. DescriptorSetLayoutBinding &
  17017. setImmutableSamplers( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::Sampler> const & immutableSamplers_ ) VULKAN_HPP_NOEXCEPT
  17018. {
  17019. descriptorCount = static_cast<uint32_t>( immutableSamplers_.size() );
  17020. pImmutableSamplers = immutableSamplers_.data();
  17021. return *this;
  17022. }
  17023. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  17024. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  17025. operator VkDescriptorSetLayoutBinding const &() const VULKAN_HPP_NOEXCEPT
  17026. {
  17027. return *reinterpret_cast<const VkDescriptorSetLayoutBinding *>( this );
  17028. }
  17029. operator VkDescriptorSetLayoutBinding &() VULKAN_HPP_NOEXCEPT
  17030. {
  17031. return *reinterpret_cast<VkDescriptorSetLayoutBinding *>( this );
  17032. }
  17033. #if defined( VULKAN_HPP_USE_REFLECT )
  17034. # if 14 <= VULKAN_HPP_CPP_VERSION
  17035. auto
  17036. # else
  17037. std::tuple<uint32_t const &,
  17038. VULKAN_HPP_NAMESPACE::DescriptorType const &,
  17039. uint32_t const &,
  17040. VULKAN_HPP_NAMESPACE::ShaderStageFlags const &,
  17041. const VULKAN_HPP_NAMESPACE::Sampler * const &>
  17042. # endif
  17043. reflect() const VULKAN_HPP_NOEXCEPT
  17044. {
  17045. return std::tie( binding, descriptorType, descriptorCount, stageFlags, pImmutableSamplers );
  17046. }
  17047. #endif
  17048. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  17049. auto operator<=>( DescriptorSetLayoutBinding const & ) const = default;
  17050. #else
  17051. bool operator==( DescriptorSetLayoutBinding const & rhs ) const VULKAN_HPP_NOEXCEPT
  17052. {
  17053. # if defined( VULKAN_HPP_USE_REFLECT )
  17054. return this->reflect() == rhs.reflect();
  17055. # else
  17056. return ( binding == rhs.binding ) && ( descriptorType == rhs.descriptorType ) && ( descriptorCount == rhs.descriptorCount ) &&
  17057. ( stageFlags == rhs.stageFlags ) && ( pImmutableSamplers == rhs.pImmutableSamplers );
  17058. # endif
  17059. }
  17060. bool operator!=( DescriptorSetLayoutBinding const & rhs ) const VULKAN_HPP_NOEXCEPT
  17061. {
  17062. return !operator==( rhs );
  17063. }
  17064. #endif
  17065. public:
  17066. uint32_t binding = {};
  17067. VULKAN_HPP_NAMESPACE::DescriptorType descriptorType = VULKAN_HPP_NAMESPACE::DescriptorType::eSampler;
  17068. uint32_t descriptorCount = {};
  17069. VULKAN_HPP_NAMESPACE::ShaderStageFlags stageFlags = {};
  17070. const VULKAN_HPP_NAMESPACE::Sampler * pImmutableSamplers = {};
  17071. };
  17072. struct DescriptorSetLayoutBindingFlagsCreateInfo
  17073. {
  17074. using NativeType = VkDescriptorSetLayoutBindingFlagsCreateInfo;
  17075. static const bool allowDuplicate = false;
  17076. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDescriptorSetLayoutBindingFlagsCreateInfo;
  17077. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  17078. VULKAN_HPP_CONSTEXPR DescriptorSetLayoutBindingFlagsCreateInfo( uint32_t bindingCount_ = {},
  17079. const VULKAN_HPP_NAMESPACE::DescriptorBindingFlags * pBindingFlags_ = {},
  17080. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  17081. : pNext( pNext_ )
  17082. , bindingCount( bindingCount_ )
  17083. , pBindingFlags( pBindingFlags_ )
  17084. {
  17085. }
  17086. VULKAN_HPP_CONSTEXPR DescriptorSetLayoutBindingFlagsCreateInfo( DescriptorSetLayoutBindingFlagsCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  17087. DescriptorSetLayoutBindingFlagsCreateInfo( VkDescriptorSetLayoutBindingFlagsCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
  17088. : DescriptorSetLayoutBindingFlagsCreateInfo( *reinterpret_cast<DescriptorSetLayoutBindingFlagsCreateInfo const *>( &rhs ) )
  17089. {
  17090. }
  17091. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  17092. DescriptorSetLayoutBindingFlagsCreateInfo(
  17093. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::DescriptorBindingFlags> const & bindingFlags_, const void * pNext_ = nullptr )
  17094. : pNext( pNext_ ), bindingCount( static_cast<uint32_t>( bindingFlags_.size() ) ), pBindingFlags( bindingFlags_.data() )
  17095. {
  17096. }
  17097. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  17098. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  17099. DescriptorSetLayoutBindingFlagsCreateInfo & operator=( DescriptorSetLayoutBindingFlagsCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  17100. DescriptorSetLayoutBindingFlagsCreateInfo & operator=( VkDescriptorSetLayoutBindingFlagsCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
  17101. {
  17102. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DescriptorSetLayoutBindingFlagsCreateInfo const *>( &rhs );
  17103. return *this;
  17104. }
  17105. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  17106. VULKAN_HPP_CONSTEXPR_14 DescriptorSetLayoutBindingFlagsCreateInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  17107. {
  17108. pNext = pNext_;
  17109. return *this;
  17110. }
  17111. VULKAN_HPP_CONSTEXPR_14 DescriptorSetLayoutBindingFlagsCreateInfo & setBindingCount( uint32_t bindingCount_ ) VULKAN_HPP_NOEXCEPT
  17112. {
  17113. bindingCount = bindingCount_;
  17114. return *this;
  17115. }
  17116. VULKAN_HPP_CONSTEXPR_14 DescriptorSetLayoutBindingFlagsCreateInfo &
  17117. setPBindingFlags( const VULKAN_HPP_NAMESPACE::DescriptorBindingFlags * pBindingFlags_ ) VULKAN_HPP_NOEXCEPT
  17118. {
  17119. pBindingFlags = pBindingFlags_;
  17120. return *this;
  17121. }
  17122. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  17123. DescriptorSetLayoutBindingFlagsCreateInfo & setBindingFlags(
  17124. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::DescriptorBindingFlags> const & bindingFlags_ ) VULKAN_HPP_NOEXCEPT
  17125. {
  17126. bindingCount = static_cast<uint32_t>( bindingFlags_.size() );
  17127. pBindingFlags = bindingFlags_.data();
  17128. return *this;
  17129. }
  17130. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  17131. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  17132. operator VkDescriptorSetLayoutBindingFlagsCreateInfo const &() const VULKAN_HPP_NOEXCEPT
  17133. {
  17134. return *reinterpret_cast<const VkDescriptorSetLayoutBindingFlagsCreateInfo *>( this );
  17135. }
  17136. operator VkDescriptorSetLayoutBindingFlagsCreateInfo &() VULKAN_HPP_NOEXCEPT
  17137. {
  17138. return *reinterpret_cast<VkDescriptorSetLayoutBindingFlagsCreateInfo *>( this );
  17139. }
  17140. #if defined( VULKAN_HPP_USE_REFLECT )
  17141. # if 14 <= VULKAN_HPP_CPP_VERSION
  17142. auto
  17143. # else
  17144. std::
  17145. tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, uint32_t const &, const VULKAN_HPP_NAMESPACE::DescriptorBindingFlags * const &>
  17146. # endif
  17147. reflect() const VULKAN_HPP_NOEXCEPT
  17148. {
  17149. return std::tie( sType, pNext, bindingCount, pBindingFlags );
  17150. }
  17151. #endif
  17152. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  17153. auto operator<=>( DescriptorSetLayoutBindingFlagsCreateInfo const & ) const = default;
  17154. #else
  17155. bool operator==( DescriptorSetLayoutBindingFlagsCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  17156. {
  17157. # if defined( VULKAN_HPP_USE_REFLECT )
  17158. return this->reflect() == rhs.reflect();
  17159. # else
  17160. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( bindingCount == rhs.bindingCount ) && ( pBindingFlags == rhs.pBindingFlags );
  17161. # endif
  17162. }
  17163. bool operator!=( DescriptorSetLayoutBindingFlagsCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  17164. {
  17165. return !operator==( rhs );
  17166. }
  17167. #endif
  17168. public:
  17169. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDescriptorSetLayoutBindingFlagsCreateInfo;
  17170. const void * pNext = {};
  17171. uint32_t bindingCount = {};
  17172. const VULKAN_HPP_NAMESPACE::DescriptorBindingFlags * pBindingFlags = {};
  17173. };
  17174. template <>
  17175. struct CppType<StructureType, StructureType::eDescriptorSetLayoutBindingFlagsCreateInfo>
  17176. {
  17177. using Type = DescriptorSetLayoutBindingFlagsCreateInfo;
  17178. };
  17179. using DescriptorSetLayoutBindingFlagsCreateInfoEXT = DescriptorSetLayoutBindingFlagsCreateInfo;
  17180. struct DescriptorSetLayoutCreateInfo
  17181. {
  17182. using NativeType = VkDescriptorSetLayoutCreateInfo;
  17183. static const bool allowDuplicate = false;
  17184. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDescriptorSetLayoutCreateInfo;
  17185. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  17186. VULKAN_HPP_CONSTEXPR DescriptorSetLayoutCreateInfo( VULKAN_HPP_NAMESPACE::DescriptorSetLayoutCreateFlags flags_ = {},
  17187. uint32_t bindingCount_ = {},
  17188. const VULKAN_HPP_NAMESPACE::DescriptorSetLayoutBinding * pBindings_ = {},
  17189. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  17190. : pNext( pNext_ )
  17191. , flags( flags_ )
  17192. , bindingCount( bindingCount_ )
  17193. , pBindings( pBindings_ )
  17194. {
  17195. }
  17196. VULKAN_HPP_CONSTEXPR DescriptorSetLayoutCreateInfo( DescriptorSetLayoutCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  17197. DescriptorSetLayoutCreateInfo( VkDescriptorSetLayoutCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
  17198. : DescriptorSetLayoutCreateInfo( *reinterpret_cast<DescriptorSetLayoutCreateInfo const *>( &rhs ) )
  17199. {
  17200. }
  17201. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  17202. DescriptorSetLayoutCreateInfo( VULKAN_HPP_NAMESPACE::DescriptorSetLayoutCreateFlags flags_,
  17203. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::DescriptorSetLayoutBinding> const & bindings_,
  17204. const void * pNext_ = nullptr )
  17205. : pNext( pNext_ ), flags( flags_ ), bindingCount( static_cast<uint32_t>( bindings_.size() ) ), pBindings( bindings_.data() )
  17206. {
  17207. }
  17208. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  17209. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  17210. DescriptorSetLayoutCreateInfo & operator=( DescriptorSetLayoutCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  17211. DescriptorSetLayoutCreateInfo & operator=( VkDescriptorSetLayoutCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
  17212. {
  17213. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DescriptorSetLayoutCreateInfo const *>( &rhs );
  17214. return *this;
  17215. }
  17216. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  17217. VULKAN_HPP_CONSTEXPR_14 DescriptorSetLayoutCreateInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  17218. {
  17219. pNext = pNext_;
  17220. return *this;
  17221. }
  17222. VULKAN_HPP_CONSTEXPR_14 DescriptorSetLayoutCreateInfo & setFlags( VULKAN_HPP_NAMESPACE::DescriptorSetLayoutCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT
  17223. {
  17224. flags = flags_;
  17225. return *this;
  17226. }
  17227. VULKAN_HPP_CONSTEXPR_14 DescriptorSetLayoutCreateInfo & setBindingCount( uint32_t bindingCount_ ) VULKAN_HPP_NOEXCEPT
  17228. {
  17229. bindingCount = bindingCount_;
  17230. return *this;
  17231. }
  17232. VULKAN_HPP_CONSTEXPR_14 DescriptorSetLayoutCreateInfo &
  17233. setPBindings( const VULKAN_HPP_NAMESPACE::DescriptorSetLayoutBinding * pBindings_ ) VULKAN_HPP_NOEXCEPT
  17234. {
  17235. pBindings = pBindings_;
  17236. return *this;
  17237. }
  17238. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  17239. DescriptorSetLayoutCreateInfo &
  17240. setBindings( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::DescriptorSetLayoutBinding> const & bindings_ ) VULKAN_HPP_NOEXCEPT
  17241. {
  17242. bindingCount = static_cast<uint32_t>( bindings_.size() );
  17243. pBindings = bindings_.data();
  17244. return *this;
  17245. }
  17246. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  17247. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  17248. operator VkDescriptorSetLayoutCreateInfo const &() const VULKAN_HPP_NOEXCEPT
  17249. {
  17250. return *reinterpret_cast<const VkDescriptorSetLayoutCreateInfo *>( this );
  17251. }
  17252. operator VkDescriptorSetLayoutCreateInfo &() VULKAN_HPP_NOEXCEPT
  17253. {
  17254. return *reinterpret_cast<VkDescriptorSetLayoutCreateInfo *>( this );
  17255. }
  17256. #if defined( VULKAN_HPP_USE_REFLECT )
  17257. # if 14 <= VULKAN_HPP_CPP_VERSION
  17258. auto
  17259. # else
  17260. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  17261. const void * const &,
  17262. VULKAN_HPP_NAMESPACE::DescriptorSetLayoutCreateFlags const &,
  17263. uint32_t const &,
  17264. const VULKAN_HPP_NAMESPACE::DescriptorSetLayoutBinding * const &>
  17265. # endif
  17266. reflect() const VULKAN_HPP_NOEXCEPT
  17267. {
  17268. return std::tie( sType, pNext, flags, bindingCount, pBindings );
  17269. }
  17270. #endif
  17271. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  17272. auto operator<=>( DescriptorSetLayoutCreateInfo const & ) const = default;
  17273. #else
  17274. bool operator==( DescriptorSetLayoutCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  17275. {
  17276. # if defined( VULKAN_HPP_USE_REFLECT )
  17277. return this->reflect() == rhs.reflect();
  17278. # else
  17279. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( flags == rhs.flags ) && ( bindingCount == rhs.bindingCount ) &&
  17280. ( pBindings == rhs.pBindings );
  17281. # endif
  17282. }
  17283. bool operator!=( DescriptorSetLayoutCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  17284. {
  17285. return !operator==( rhs );
  17286. }
  17287. #endif
  17288. public:
  17289. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDescriptorSetLayoutCreateInfo;
  17290. const void * pNext = {};
  17291. VULKAN_HPP_NAMESPACE::DescriptorSetLayoutCreateFlags flags = {};
  17292. uint32_t bindingCount = {};
  17293. const VULKAN_HPP_NAMESPACE::DescriptorSetLayoutBinding * pBindings = {};
  17294. };
  17295. template <>
  17296. struct CppType<StructureType, StructureType::eDescriptorSetLayoutCreateInfo>
  17297. {
  17298. using Type = DescriptorSetLayoutCreateInfo;
  17299. };
  17300. struct DescriptorSetLayoutHostMappingInfoVALVE
  17301. {
  17302. using NativeType = VkDescriptorSetLayoutHostMappingInfoVALVE;
  17303. static const bool allowDuplicate = false;
  17304. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDescriptorSetLayoutHostMappingInfoVALVE;
  17305. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  17306. VULKAN_HPP_CONSTEXPR
  17307. DescriptorSetLayoutHostMappingInfoVALVE( size_t descriptorOffset_ = {}, uint32_t descriptorSize_ = {}, void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  17308. : pNext( pNext_ )
  17309. , descriptorOffset( descriptorOffset_ )
  17310. , descriptorSize( descriptorSize_ )
  17311. {
  17312. }
  17313. VULKAN_HPP_CONSTEXPR DescriptorSetLayoutHostMappingInfoVALVE( DescriptorSetLayoutHostMappingInfoVALVE const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  17314. DescriptorSetLayoutHostMappingInfoVALVE( VkDescriptorSetLayoutHostMappingInfoVALVE const & rhs ) VULKAN_HPP_NOEXCEPT
  17315. : DescriptorSetLayoutHostMappingInfoVALVE( *reinterpret_cast<DescriptorSetLayoutHostMappingInfoVALVE const *>( &rhs ) )
  17316. {
  17317. }
  17318. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  17319. DescriptorSetLayoutHostMappingInfoVALVE & operator=( DescriptorSetLayoutHostMappingInfoVALVE const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  17320. DescriptorSetLayoutHostMappingInfoVALVE & operator=( VkDescriptorSetLayoutHostMappingInfoVALVE const & rhs ) VULKAN_HPP_NOEXCEPT
  17321. {
  17322. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DescriptorSetLayoutHostMappingInfoVALVE const *>( &rhs );
  17323. return *this;
  17324. }
  17325. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  17326. VULKAN_HPP_CONSTEXPR_14 DescriptorSetLayoutHostMappingInfoVALVE & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
  17327. {
  17328. pNext = pNext_;
  17329. return *this;
  17330. }
  17331. VULKAN_HPP_CONSTEXPR_14 DescriptorSetLayoutHostMappingInfoVALVE & setDescriptorOffset( size_t descriptorOffset_ ) VULKAN_HPP_NOEXCEPT
  17332. {
  17333. descriptorOffset = descriptorOffset_;
  17334. return *this;
  17335. }
  17336. VULKAN_HPP_CONSTEXPR_14 DescriptorSetLayoutHostMappingInfoVALVE & setDescriptorSize( uint32_t descriptorSize_ ) VULKAN_HPP_NOEXCEPT
  17337. {
  17338. descriptorSize = descriptorSize_;
  17339. return *this;
  17340. }
  17341. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  17342. operator VkDescriptorSetLayoutHostMappingInfoVALVE const &() const VULKAN_HPP_NOEXCEPT
  17343. {
  17344. return *reinterpret_cast<const VkDescriptorSetLayoutHostMappingInfoVALVE *>( this );
  17345. }
  17346. operator VkDescriptorSetLayoutHostMappingInfoVALVE &() VULKAN_HPP_NOEXCEPT
  17347. {
  17348. return *reinterpret_cast<VkDescriptorSetLayoutHostMappingInfoVALVE *>( this );
  17349. }
  17350. #if defined( VULKAN_HPP_USE_REFLECT )
  17351. # if 14 <= VULKAN_HPP_CPP_VERSION
  17352. auto
  17353. # else
  17354. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, size_t const &, uint32_t const &>
  17355. # endif
  17356. reflect() const VULKAN_HPP_NOEXCEPT
  17357. {
  17358. return std::tie( sType, pNext, descriptorOffset, descriptorSize );
  17359. }
  17360. #endif
  17361. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  17362. auto operator<=>( DescriptorSetLayoutHostMappingInfoVALVE const & ) const = default;
  17363. #else
  17364. bool operator==( DescriptorSetLayoutHostMappingInfoVALVE const & rhs ) const VULKAN_HPP_NOEXCEPT
  17365. {
  17366. # if defined( VULKAN_HPP_USE_REFLECT )
  17367. return this->reflect() == rhs.reflect();
  17368. # else
  17369. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( descriptorOffset == rhs.descriptorOffset ) && ( descriptorSize == rhs.descriptorSize );
  17370. # endif
  17371. }
  17372. bool operator!=( DescriptorSetLayoutHostMappingInfoVALVE const & rhs ) const VULKAN_HPP_NOEXCEPT
  17373. {
  17374. return !operator==( rhs );
  17375. }
  17376. #endif
  17377. public:
  17378. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDescriptorSetLayoutHostMappingInfoVALVE;
  17379. void * pNext = {};
  17380. size_t descriptorOffset = {};
  17381. uint32_t descriptorSize = {};
  17382. };
  17383. template <>
  17384. struct CppType<StructureType, StructureType::eDescriptorSetLayoutHostMappingInfoVALVE>
  17385. {
  17386. using Type = DescriptorSetLayoutHostMappingInfoVALVE;
  17387. };
  17388. struct DescriptorSetLayoutSupport
  17389. {
  17390. using NativeType = VkDescriptorSetLayoutSupport;
  17391. static const bool allowDuplicate = false;
  17392. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDescriptorSetLayoutSupport;
  17393. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  17394. VULKAN_HPP_CONSTEXPR DescriptorSetLayoutSupport( VULKAN_HPP_NAMESPACE::Bool32 supported_ = {}, void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  17395. : pNext( pNext_ )
  17396. , supported( supported_ )
  17397. {
  17398. }
  17399. VULKAN_HPP_CONSTEXPR DescriptorSetLayoutSupport( DescriptorSetLayoutSupport const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  17400. DescriptorSetLayoutSupport( VkDescriptorSetLayoutSupport const & rhs ) VULKAN_HPP_NOEXCEPT
  17401. : DescriptorSetLayoutSupport( *reinterpret_cast<DescriptorSetLayoutSupport const *>( &rhs ) )
  17402. {
  17403. }
  17404. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  17405. DescriptorSetLayoutSupport & operator=( DescriptorSetLayoutSupport const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  17406. DescriptorSetLayoutSupport & operator=( VkDescriptorSetLayoutSupport const & rhs ) VULKAN_HPP_NOEXCEPT
  17407. {
  17408. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DescriptorSetLayoutSupport const *>( &rhs );
  17409. return *this;
  17410. }
  17411. operator VkDescriptorSetLayoutSupport const &() const VULKAN_HPP_NOEXCEPT
  17412. {
  17413. return *reinterpret_cast<const VkDescriptorSetLayoutSupport *>( this );
  17414. }
  17415. operator VkDescriptorSetLayoutSupport &() VULKAN_HPP_NOEXCEPT
  17416. {
  17417. return *reinterpret_cast<VkDescriptorSetLayoutSupport *>( this );
  17418. }
  17419. #if defined( VULKAN_HPP_USE_REFLECT )
  17420. # if 14 <= VULKAN_HPP_CPP_VERSION
  17421. auto
  17422. # else
  17423. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
  17424. # endif
  17425. reflect() const VULKAN_HPP_NOEXCEPT
  17426. {
  17427. return std::tie( sType, pNext, supported );
  17428. }
  17429. #endif
  17430. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  17431. auto operator<=>( DescriptorSetLayoutSupport const & ) const = default;
  17432. #else
  17433. bool operator==( DescriptorSetLayoutSupport const & rhs ) const VULKAN_HPP_NOEXCEPT
  17434. {
  17435. # if defined( VULKAN_HPP_USE_REFLECT )
  17436. return this->reflect() == rhs.reflect();
  17437. # else
  17438. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( supported == rhs.supported );
  17439. # endif
  17440. }
  17441. bool operator!=( DescriptorSetLayoutSupport const & rhs ) const VULKAN_HPP_NOEXCEPT
  17442. {
  17443. return !operator==( rhs );
  17444. }
  17445. #endif
  17446. public:
  17447. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDescriptorSetLayoutSupport;
  17448. void * pNext = {};
  17449. VULKAN_HPP_NAMESPACE::Bool32 supported = {};
  17450. };
  17451. template <>
  17452. struct CppType<StructureType, StructureType::eDescriptorSetLayoutSupport>
  17453. {
  17454. using Type = DescriptorSetLayoutSupport;
  17455. };
  17456. using DescriptorSetLayoutSupportKHR = DescriptorSetLayoutSupport;
  17457. struct DescriptorSetVariableDescriptorCountAllocateInfo
  17458. {
  17459. using NativeType = VkDescriptorSetVariableDescriptorCountAllocateInfo;
  17460. static const bool allowDuplicate = false;
  17461. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDescriptorSetVariableDescriptorCountAllocateInfo;
  17462. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  17463. VULKAN_HPP_CONSTEXPR DescriptorSetVariableDescriptorCountAllocateInfo( uint32_t descriptorSetCount_ = {},
  17464. const uint32_t * pDescriptorCounts_ = {},
  17465. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  17466. : pNext( pNext_ )
  17467. , descriptorSetCount( descriptorSetCount_ )
  17468. , pDescriptorCounts( pDescriptorCounts_ )
  17469. {
  17470. }
  17471. VULKAN_HPP_CONSTEXPR
  17472. DescriptorSetVariableDescriptorCountAllocateInfo( DescriptorSetVariableDescriptorCountAllocateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  17473. DescriptorSetVariableDescriptorCountAllocateInfo( VkDescriptorSetVariableDescriptorCountAllocateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
  17474. : DescriptorSetVariableDescriptorCountAllocateInfo( *reinterpret_cast<DescriptorSetVariableDescriptorCountAllocateInfo const *>( &rhs ) )
  17475. {
  17476. }
  17477. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  17478. DescriptorSetVariableDescriptorCountAllocateInfo( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint32_t> const & descriptorCounts_,
  17479. const void * pNext_ = nullptr )
  17480. : pNext( pNext_ ), descriptorSetCount( static_cast<uint32_t>( descriptorCounts_.size() ) ), pDescriptorCounts( descriptorCounts_.data() )
  17481. {
  17482. }
  17483. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  17484. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  17485. DescriptorSetVariableDescriptorCountAllocateInfo & operator=( DescriptorSetVariableDescriptorCountAllocateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  17486. DescriptorSetVariableDescriptorCountAllocateInfo & operator=( VkDescriptorSetVariableDescriptorCountAllocateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
  17487. {
  17488. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DescriptorSetVariableDescriptorCountAllocateInfo const *>( &rhs );
  17489. return *this;
  17490. }
  17491. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  17492. VULKAN_HPP_CONSTEXPR_14 DescriptorSetVariableDescriptorCountAllocateInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  17493. {
  17494. pNext = pNext_;
  17495. return *this;
  17496. }
  17497. VULKAN_HPP_CONSTEXPR_14 DescriptorSetVariableDescriptorCountAllocateInfo & setDescriptorSetCount( uint32_t descriptorSetCount_ ) VULKAN_HPP_NOEXCEPT
  17498. {
  17499. descriptorSetCount = descriptorSetCount_;
  17500. return *this;
  17501. }
  17502. VULKAN_HPP_CONSTEXPR_14 DescriptorSetVariableDescriptorCountAllocateInfo & setPDescriptorCounts( const uint32_t * pDescriptorCounts_ ) VULKAN_HPP_NOEXCEPT
  17503. {
  17504. pDescriptorCounts = pDescriptorCounts_;
  17505. return *this;
  17506. }
  17507. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  17508. DescriptorSetVariableDescriptorCountAllocateInfo &
  17509. setDescriptorCounts( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint32_t> const & descriptorCounts_ ) VULKAN_HPP_NOEXCEPT
  17510. {
  17511. descriptorSetCount = static_cast<uint32_t>( descriptorCounts_.size() );
  17512. pDescriptorCounts = descriptorCounts_.data();
  17513. return *this;
  17514. }
  17515. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  17516. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  17517. operator VkDescriptorSetVariableDescriptorCountAllocateInfo const &() const VULKAN_HPP_NOEXCEPT
  17518. {
  17519. return *reinterpret_cast<const VkDescriptorSetVariableDescriptorCountAllocateInfo *>( this );
  17520. }
  17521. operator VkDescriptorSetVariableDescriptorCountAllocateInfo &() VULKAN_HPP_NOEXCEPT
  17522. {
  17523. return *reinterpret_cast<VkDescriptorSetVariableDescriptorCountAllocateInfo *>( this );
  17524. }
  17525. #if defined( VULKAN_HPP_USE_REFLECT )
  17526. # if 14 <= VULKAN_HPP_CPP_VERSION
  17527. auto
  17528. # else
  17529. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, uint32_t const &, const uint32_t * const &>
  17530. # endif
  17531. reflect() const VULKAN_HPP_NOEXCEPT
  17532. {
  17533. return std::tie( sType, pNext, descriptorSetCount, pDescriptorCounts );
  17534. }
  17535. #endif
  17536. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  17537. auto operator<=>( DescriptorSetVariableDescriptorCountAllocateInfo const & ) const = default;
  17538. #else
  17539. bool operator==( DescriptorSetVariableDescriptorCountAllocateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  17540. {
  17541. # if defined( VULKAN_HPP_USE_REFLECT )
  17542. return this->reflect() == rhs.reflect();
  17543. # else
  17544. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( descriptorSetCount == rhs.descriptorSetCount ) &&
  17545. ( pDescriptorCounts == rhs.pDescriptorCounts );
  17546. # endif
  17547. }
  17548. bool operator!=( DescriptorSetVariableDescriptorCountAllocateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  17549. {
  17550. return !operator==( rhs );
  17551. }
  17552. #endif
  17553. public:
  17554. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDescriptorSetVariableDescriptorCountAllocateInfo;
  17555. const void * pNext = {};
  17556. uint32_t descriptorSetCount = {};
  17557. const uint32_t * pDescriptorCounts = {};
  17558. };
  17559. template <>
  17560. struct CppType<StructureType, StructureType::eDescriptorSetVariableDescriptorCountAllocateInfo>
  17561. {
  17562. using Type = DescriptorSetVariableDescriptorCountAllocateInfo;
  17563. };
  17564. using DescriptorSetVariableDescriptorCountAllocateInfoEXT = DescriptorSetVariableDescriptorCountAllocateInfo;
  17565. struct DescriptorSetVariableDescriptorCountLayoutSupport
  17566. {
  17567. using NativeType = VkDescriptorSetVariableDescriptorCountLayoutSupport;
  17568. static const bool allowDuplicate = false;
  17569. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDescriptorSetVariableDescriptorCountLayoutSupport;
  17570. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  17571. VULKAN_HPP_CONSTEXPR DescriptorSetVariableDescriptorCountLayoutSupport( uint32_t maxVariableDescriptorCount_ = {},
  17572. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  17573. : pNext( pNext_ )
  17574. , maxVariableDescriptorCount( maxVariableDescriptorCount_ )
  17575. {
  17576. }
  17577. VULKAN_HPP_CONSTEXPR
  17578. DescriptorSetVariableDescriptorCountLayoutSupport( DescriptorSetVariableDescriptorCountLayoutSupport const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  17579. DescriptorSetVariableDescriptorCountLayoutSupport( VkDescriptorSetVariableDescriptorCountLayoutSupport const & rhs ) VULKAN_HPP_NOEXCEPT
  17580. : DescriptorSetVariableDescriptorCountLayoutSupport( *reinterpret_cast<DescriptorSetVariableDescriptorCountLayoutSupport const *>( &rhs ) )
  17581. {
  17582. }
  17583. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  17584. DescriptorSetVariableDescriptorCountLayoutSupport &
  17585. operator=( DescriptorSetVariableDescriptorCountLayoutSupport const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  17586. DescriptorSetVariableDescriptorCountLayoutSupport & operator=( VkDescriptorSetVariableDescriptorCountLayoutSupport const & rhs ) VULKAN_HPP_NOEXCEPT
  17587. {
  17588. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DescriptorSetVariableDescriptorCountLayoutSupport const *>( &rhs );
  17589. return *this;
  17590. }
  17591. operator VkDescriptorSetVariableDescriptorCountLayoutSupport const &() const VULKAN_HPP_NOEXCEPT
  17592. {
  17593. return *reinterpret_cast<const VkDescriptorSetVariableDescriptorCountLayoutSupport *>( this );
  17594. }
  17595. operator VkDescriptorSetVariableDescriptorCountLayoutSupport &() VULKAN_HPP_NOEXCEPT
  17596. {
  17597. return *reinterpret_cast<VkDescriptorSetVariableDescriptorCountLayoutSupport *>( this );
  17598. }
  17599. #if defined( VULKAN_HPP_USE_REFLECT )
  17600. # if 14 <= VULKAN_HPP_CPP_VERSION
  17601. auto
  17602. # else
  17603. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, uint32_t const &>
  17604. # endif
  17605. reflect() const VULKAN_HPP_NOEXCEPT
  17606. {
  17607. return std::tie( sType, pNext, maxVariableDescriptorCount );
  17608. }
  17609. #endif
  17610. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  17611. auto operator<=>( DescriptorSetVariableDescriptorCountLayoutSupport const & ) const = default;
  17612. #else
  17613. bool operator==( DescriptorSetVariableDescriptorCountLayoutSupport const & rhs ) const VULKAN_HPP_NOEXCEPT
  17614. {
  17615. # if defined( VULKAN_HPP_USE_REFLECT )
  17616. return this->reflect() == rhs.reflect();
  17617. # else
  17618. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( maxVariableDescriptorCount == rhs.maxVariableDescriptorCount );
  17619. # endif
  17620. }
  17621. bool operator!=( DescriptorSetVariableDescriptorCountLayoutSupport const & rhs ) const VULKAN_HPP_NOEXCEPT
  17622. {
  17623. return !operator==( rhs );
  17624. }
  17625. #endif
  17626. public:
  17627. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDescriptorSetVariableDescriptorCountLayoutSupport;
  17628. void * pNext = {};
  17629. uint32_t maxVariableDescriptorCount = {};
  17630. };
  17631. template <>
  17632. struct CppType<StructureType, StructureType::eDescriptorSetVariableDescriptorCountLayoutSupport>
  17633. {
  17634. using Type = DescriptorSetVariableDescriptorCountLayoutSupport;
  17635. };
  17636. using DescriptorSetVariableDescriptorCountLayoutSupportEXT = DescriptorSetVariableDescriptorCountLayoutSupport;
  17637. struct DescriptorUpdateTemplateEntry
  17638. {
  17639. using NativeType = VkDescriptorUpdateTemplateEntry;
  17640. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  17641. VULKAN_HPP_CONSTEXPR DescriptorUpdateTemplateEntry( uint32_t dstBinding_ = {},
  17642. uint32_t dstArrayElement_ = {},
  17643. uint32_t descriptorCount_ = {},
  17644. VULKAN_HPP_NAMESPACE::DescriptorType descriptorType_ = VULKAN_HPP_NAMESPACE::DescriptorType::eSampler,
  17645. size_t offset_ = {},
  17646. size_t stride_ = {} ) VULKAN_HPP_NOEXCEPT
  17647. : dstBinding( dstBinding_ )
  17648. , dstArrayElement( dstArrayElement_ )
  17649. , descriptorCount( descriptorCount_ )
  17650. , descriptorType( descriptorType_ )
  17651. , offset( offset_ )
  17652. , stride( stride_ )
  17653. {
  17654. }
  17655. VULKAN_HPP_CONSTEXPR DescriptorUpdateTemplateEntry( DescriptorUpdateTemplateEntry const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  17656. DescriptorUpdateTemplateEntry( VkDescriptorUpdateTemplateEntry const & rhs ) VULKAN_HPP_NOEXCEPT
  17657. : DescriptorUpdateTemplateEntry( *reinterpret_cast<DescriptorUpdateTemplateEntry const *>( &rhs ) )
  17658. {
  17659. }
  17660. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  17661. DescriptorUpdateTemplateEntry & operator=( DescriptorUpdateTemplateEntry const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  17662. DescriptorUpdateTemplateEntry & operator=( VkDescriptorUpdateTemplateEntry const & rhs ) VULKAN_HPP_NOEXCEPT
  17663. {
  17664. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateEntry const *>( &rhs );
  17665. return *this;
  17666. }
  17667. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  17668. VULKAN_HPP_CONSTEXPR_14 DescriptorUpdateTemplateEntry & setDstBinding( uint32_t dstBinding_ ) VULKAN_HPP_NOEXCEPT
  17669. {
  17670. dstBinding = dstBinding_;
  17671. return *this;
  17672. }
  17673. VULKAN_HPP_CONSTEXPR_14 DescriptorUpdateTemplateEntry & setDstArrayElement( uint32_t dstArrayElement_ ) VULKAN_HPP_NOEXCEPT
  17674. {
  17675. dstArrayElement = dstArrayElement_;
  17676. return *this;
  17677. }
  17678. VULKAN_HPP_CONSTEXPR_14 DescriptorUpdateTemplateEntry & setDescriptorCount( uint32_t descriptorCount_ ) VULKAN_HPP_NOEXCEPT
  17679. {
  17680. descriptorCount = descriptorCount_;
  17681. return *this;
  17682. }
  17683. VULKAN_HPP_CONSTEXPR_14 DescriptorUpdateTemplateEntry & setDescriptorType( VULKAN_HPP_NAMESPACE::DescriptorType descriptorType_ ) VULKAN_HPP_NOEXCEPT
  17684. {
  17685. descriptorType = descriptorType_;
  17686. return *this;
  17687. }
  17688. VULKAN_HPP_CONSTEXPR_14 DescriptorUpdateTemplateEntry & setOffset( size_t offset_ ) VULKAN_HPP_NOEXCEPT
  17689. {
  17690. offset = offset_;
  17691. return *this;
  17692. }
  17693. VULKAN_HPP_CONSTEXPR_14 DescriptorUpdateTemplateEntry & setStride( size_t stride_ ) VULKAN_HPP_NOEXCEPT
  17694. {
  17695. stride = stride_;
  17696. return *this;
  17697. }
  17698. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  17699. operator VkDescriptorUpdateTemplateEntry const &() const VULKAN_HPP_NOEXCEPT
  17700. {
  17701. return *reinterpret_cast<const VkDescriptorUpdateTemplateEntry *>( this );
  17702. }
  17703. operator VkDescriptorUpdateTemplateEntry &() VULKAN_HPP_NOEXCEPT
  17704. {
  17705. return *reinterpret_cast<VkDescriptorUpdateTemplateEntry *>( this );
  17706. }
  17707. #if defined( VULKAN_HPP_USE_REFLECT )
  17708. # if 14 <= VULKAN_HPP_CPP_VERSION
  17709. auto
  17710. # else
  17711. std::tuple<uint32_t const &, uint32_t const &, uint32_t const &, VULKAN_HPP_NAMESPACE::DescriptorType const &, size_t const &, size_t const &>
  17712. # endif
  17713. reflect() const VULKAN_HPP_NOEXCEPT
  17714. {
  17715. return std::tie( dstBinding, dstArrayElement, descriptorCount, descriptorType, offset, stride );
  17716. }
  17717. #endif
  17718. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  17719. auto operator<=>( DescriptorUpdateTemplateEntry const & ) const = default;
  17720. #else
  17721. bool operator==( DescriptorUpdateTemplateEntry const & rhs ) const VULKAN_HPP_NOEXCEPT
  17722. {
  17723. # if defined( VULKAN_HPP_USE_REFLECT )
  17724. return this->reflect() == rhs.reflect();
  17725. # else
  17726. return ( dstBinding == rhs.dstBinding ) && ( dstArrayElement == rhs.dstArrayElement ) && ( descriptorCount == rhs.descriptorCount ) &&
  17727. ( descriptorType == rhs.descriptorType ) && ( offset == rhs.offset ) && ( stride == rhs.stride );
  17728. # endif
  17729. }
  17730. bool operator!=( DescriptorUpdateTemplateEntry const & rhs ) const VULKAN_HPP_NOEXCEPT
  17731. {
  17732. return !operator==( rhs );
  17733. }
  17734. #endif
  17735. public:
  17736. uint32_t dstBinding = {};
  17737. uint32_t dstArrayElement = {};
  17738. uint32_t descriptorCount = {};
  17739. VULKAN_HPP_NAMESPACE::DescriptorType descriptorType = VULKAN_HPP_NAMESPACE::DescriptorType::eSampler;
  17740. size_t offset = {};
  17741. size_t stride = {};
  17742. };
  17743. using DescriptorUpdateTemplateEntryKHR = DescriptorUpdateTemplateEntry;
  17744. struct DescriptorUpdateTemplateCreateInfo
  17745. {
  17746. using NativeType = VkDescriptorUpdateTemplateCreateInfo;
  17747. static const bool allowDuplicate = false;
  17748. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDescriptorUpdateTemplateCreateInfo;
  17749. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  17750. VULKAN_HPP_CONSTEXPR DescriptorUpdateTemplateCreateInfo(
  17751. VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateCreateFlags flags_ = {},
  17752. uint32_t descriptorUpdateEntryCount_ = {},
  17753. const VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateEntry * pDescriptorUpdateEntries_ = {},
  17754. VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateType templateType_ = VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateType::eDescriptorSet,
  17755. VULKAN_HPP_NAMESPACE::DescriptorSetLayout descriptorSetLayout_ = {},
  17756. VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint_ = VULKAN_HPP_NAMESPACE::PipelineBindPoint::eGraphics,
  17757. VULKAN_HPP_NAMESPACE::PipelineLayout pipelineLayout_ = {},
  17758. uint32_t set_ = {},
  17759. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  17760. : pNext( pNext_ )
  17761. , flags( flags_ )
  17762. , descriptorUpdateEntryCount( descriptorUpdateEntryCount_ )
  17763. , pDescriptorUpdateEntries( pDescriptorUpdateEntries_ )
  17764. , templateType( templateType_ )
  17765. , descriptorSetLayout( descriptorSetLayout_ )
  17766. , pipelineBindPoint( pipelineBindPoint_ )
  17767. , pipelineLayout( pipelineLayout_ )
  17768. , set( set_ )
  17769. {
  17770. }
  17771. VULKAN_HPP_CONSTEXPR DescriptorUpdateTemplateCreateInfo( DescriptorUpdateTemplateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  17772. DescriptorUpdateTemplateCreateInfo( VkDescriptorUpdateTemplateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
  17773. : DescriptorUpdateTemplateCreateInfo( *reinterpret_cast<DescriptorUpdateTemplateCreateInfo const *>( &rhs ) )
  17774. {
  17775. }
  17776. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  17777. DescriptorUpdateTemplateCreateInfo(
  17778. VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateCreateFlags flags_,
  17779. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateEntry> const & descriptorUpdateEntries_,
  17780. VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateType templateType_ = VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateType::eDescriptorSet,
  17781. VULKAN_HPP_NAMESPACE::DescriptorSetLayout descriptorSetLayout_ = {},
  17782. VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint_ = VULKAN_HPP_NAMESPACE::PipelineBindPoint::eGraphics,
  17783. VULKAN_HPP_NAMESPACE::PipelineLayout pipelineLayout_ = {},
  17784. uint32_t set_ = {},
  17785. const void * pNext_ = nullptr )
  17786. : pNext( pNext_ )
  17787. , flags( flags_ )
  17788. , descriptorUpdateEntryCount( static_cast<uint32_t>( descriptorUpdateEntries_.size() ) )
  17789. , pDescriptorUpdateEntries( descriptorUpdateEntries_.data() )
  17790. , templateType( templateType_ )
  17791. , descriptorSetLayout( descriptorSetLayout_ )
  17792. , pipelineBindPoint( pipelineBindPoint_ )
  17793. , pipelineLayout( pipelineLayout_ )
  17794. , set( set_ )
  17795. {
  17796. }
  17797. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  17798. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  17799. DescriptorUpdateTemplateCreateInfo & operator=( DescriptorUpdateTemplateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  17800. DescriptorUpdateTemplateCreateInfo & operator=( VkDescriptorUpdateTemplateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
  17801. {
  17802. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateCreateInfo const *>( &rhs );
  17803. return *this;
  17804. }
  17805. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  17806. VULKAN_HPP_CONSTEXPR_14 DescriptorUpdateTemplateCreateInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  17807. {
  17808. pNext = pNext_;
  17809. return *this;
  17810. }
  17811. VULKAN_HPP_CONSTEXPR_14 DescriptorUpdateTemplateCreateInfo &
  17812. setFlags( VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT
  17813. {
  17814. flags = flags_;
  17815. return *this;
  17816. }
  17817. VULKAN_HPP_CONSTEXPR_14 DescriptorUpdateTemplateCreateInfo & setDescriptorUpdateEntryCount( uint32_t descriptorUpdateEntryCount_ ) VULKAN_HPP_NOEXCEPT
  17818. {
  17819. descriptorUpdateEntryCount = descriptorUpdateEntryCount_;
  17820. return *this;
  17821. }
  17822. VULKAN_HPP_CONSTEXPR_14 DescriptorUpdateTemplateCreateInfo &
  17823. setPDescriptorUpdateEntries( const VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateEntry * pDescriptorUpdateEntries_ ) VULKAN_HPP_NOEXCEPT
  17824. {
  17825. pDescriptorUpdateEntries = pDescriptorUpdateEntries_;
  17826. return *this;
  17827. }
  17828. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  17829. DescriptorUpdateTemplateCreateInfo & setDescriptorUpdateEntries(
  17830. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateEntry> const & descriptorUpdateEntries_ )
  17831. VULKAN_HPP_NOEXCEPT
  17832. {
  17833. descriptorUpdateEntryCount = static_cast<uint32_t>( descriptorUpdateEntries_.size() );
  17834. pDescriptorUpdateEntries = descriptorUpdateEntries_.data();
  17835. return *this;
  17836. }
  17837. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  17838. VULKAN_HPP_CONSTEXPR_14 DescriptorUpdateTemplateCreateInfo &
  17839. setTemplateType( VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateType templateType_ ) VULKAN_HPP_NOEXCEPT
  17840. {
  17841. templateType = templateType_;
  17842. return *this;
  17843. }
  17844. VULKAN_HPP_CONSTEXPR_14 DescriptorUpdateTemplateCreateInfo &
  17845. setDescriptorSetLayout( VULKAN_HPP_NAMESPACE::DescriptorSetLayout descriptorSetLayout_ ) VULKAN_HPP_NOEXCEPT
  17846. {
  17847. descriptorSetLayout = descriptorSetLayout_;
  17848. return *this;
  17849. }
  17850. VULKAN_HPP_CONSTEXPR_14 DescriptorUpdateTemplateCreateInfo &
  17851. setPipelineBindPoint( VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint_ ) VULKAN_HPP_NOEXCEPT
  17852. {
  17853. pipelineBindPoint = pipelineBindPoint_;
  17854. return *this;
  17855. }
  17856. VULKAN_HPP_CONSTEXPR_14 DescriptorUpdateTemplateCreateInfo & setPipelineLayout( VULKAN_HPP_NAMESPACE::PipelineLayout pipelineLayout_ ) VULKAN_HPP_NOEXCEPT
  17857. {
  17858. pipelineLayout = pipelineLayout_;
  17859. return *this;
  17860. }
  17861. VULKAN_HPP_CONSTEXPR_14 DescriptorUpdateTemplateCreateInfo & setSet( uint32_t set_ ) VULKAN_HPP_NOEXCEPT
  17862. {
  17863. set = set_;
  17864. return *this;
  17865. }
  17866. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  17867. operator VkDescriptorUpdateTemplateCreateInfo const &() const VULKAN_HPP_NOEXCEPT
  17868. {
  17869. return *reinterpret_cast<const VkDescriptorUpdateTemplateCreateInfo *>( this );
  17870. }
  17871. operator VkDescriptorUpdateTemplateCreateInfo &() VULKAN_HPP_NOEXCEPT
  17872. {
  17873. return *reinterpret_cast<VkDescriptorUpdateTemplateCreateInfo *>( this );
  17874. }
  17875. #if defined( VULKAN_HPP_USE_REFLECT )
  17876. # if 14 <= VULKAN_HPP_CPP_VERSION
  17877. auto
  17878. # else
  17879. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  17880. const void * const &,
  17881. VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateCreateFlags const &,
  17882. uint32_t const &,
  17883. const VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateEntry * const &,
  17884. VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateType const &,
  17885. VULKAN_HPP_NAMESPACE::DescriptorSetLayout const &,
  17886. VULKAN_HPP_NAMESPACE::PipelineBindPoint const &,
  17887. VULKAN_HPP_NAMESPACE::PipelineLayout const &,
  17888. uint32_t const &>
  17889. # endif
  17890. reflect() const VULKAN_HPP_NOEXCEPT
  17891. {
  17892. return std::tie(
  17893. sType, pNext, flags, descriptorUpdateEntryCount, pDescriptorUpdateEntries, templateType, descriptorSetLayout, pipelineBindPoint, pipelineLayout, set );
  17894. }
  17895. #endif
  17896. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  17897. auto operator<=>( DescriptorUpdateTemplateCreateInfo const & ) const = default;
  17898. #else
  17899. bool operator==( DescriptorUpdateTemplateCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  17900. {
  17901. # if defined( VULKAN_HPP_USE_REFLECT )
  17902. return this->reflect() == rhs.reflect();
  17903. # else
  17904. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( flags == rhs.flags ) && ( descriptorUpdateEntryCount == rhs.descriptorUpdateEntryCount ) &&
  17905. ( pDescriptorUpdateEntries == rhs.pDescriptorUpdateEntries ) && ( templateType == rhs.templateType ) &&
  17906. ( descriptorSetLayout == rhs.descriptorSetLayout ) && ( pipelineBindPoint == rhs.pipelineBindPoint ) && ( pipelineLayout == rhs.pipelineLayout ) &&
  17907. ( set == rhs.set );
  17908. # endif
  17909. }
  17910. bool operator!=( DescriptorUpdateTemplateCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  17911. {
  17912. return !operator==( rhs );
  17913. }
  17914. #endif
  17915. public:
  17916. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDescriptorUpdateTemplateCreateInfo;
  17917. const void * pNext = {};
  17918. VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateCreateFlags flags = {};
  17919. uint32_t descriptorUpdateEntryCount = {};
  17920. const VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateEntry * pDescriptorUpdateEntries = {};
  17921. VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateType templateType = VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateType::eDescriptorSet;
  17922. VULKAN_HPP_NAMESPACE::DescriptorSetLayout descriptorSetLayout = {};
  17923. VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint = VULKAN_HPP_NAMESPACE::PipelineBindPoint::eGraphics;
  17924. VULKAN_HPP_NAMESPACE::PipelineLayout pipelineLayout = {};
  17925. uint32_t set = {};
  17926. };
  17927. template <>
  17928. struct CppType<StructureType, StructureType::eDescriptorUpdateTemplateCreateInfo>
  17929. {
  17930. using Type = DescriptorUpdateTemplateCreateInfo;
  17931. };
  17932. using DescriptorUpdateTemplateCreateInfoKHR = DescriptorUpdateTemplateCreateInfo;
  17933. struct DeviceBufferMemoryRequirements
  17934. {
  17935. using NativeType = VkDeviceBufferMemoryRequirements;
  17936. static const bool allowDuplicate = false;
  17937. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDeviceBufferMemoryRequirements;
  17938. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  17939. VULKAN_HPP_CONSTEXPR DeviceBufferMemoryRequirements( const VULKAN_HPP_NAMESPACE::BufferCreateInfo * pCreateInfo_ = {},
  17940. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  17941. : pNext( pNext_ )
  17942. , pCreateInfo( pCreateInfo_ )
  17943. {
  17944. }
  17945. VULKAN_HPP_CONSTEXPR DeviceBufferMemoryRequirements( DeviceBufferMemoryRequirements const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  17946. DeviceBufferMemoryRequirements( VkDeviceBufferMemoryRequirements const & rhs ) VULKAN_HPP_NOEXCEPT
  17947. : DeviceBufferMemoryRequirements( *reinterpret_cast<DeviceBufferMemoryRequirements const *>( &rhs ) )
  17948. {
  17949. }
  17950. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  17951. DeviceBufferMemoryRequirements & operator=( DeviceBufferMemoryRequirements const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  17952. DeviceBufferMemoryRequirements & operator=( VkDeviceBufferMemoryRequirements const & rhs ) VULKAN_HPP_NOEXCEPT
  17953. {
  17954. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DeviceBufferMemoryRequirements const *>( &rhs );
  17955. return *this;
  17956. }
  17957. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  17958. VULKAN_HPP_CONSTEXPR_14 DeviceBufferMemoryRequirements & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  17959. {
  17960. pNext = pNext_;
  17961. return *this;
  17962. }
  17963. VULKAN_HPP_CONSTEXPR_14 DeviceBufferMemoryRequirements & setPCreateInfo( const VULKAN_HPP_NAMESPACE::BufferCreateInfo * pCreateInfo_ ) VULKAN_HPP_NOEXCEPT
  17964. {
  17965. pCreateInfo = pCreateInfo_;
  17966. return *this;
  17967. }
  17968. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  17969. operator VkDeviceBufferMemoryRequirements const &() const VULKAN_HPP_NOEXCEPT
  17970. {
  17971. return *reinterpret_cast<const VkDeviceBufferMemoryRequirements *>( this );
  17972. }
  17973. operator VkDeviceBufferMemoryRequirements &() VULKAN_HPP_NOEXCEPT
  17974. {
  17975. return *reinterpret_cast<VkDeviceBufferMemoryRequirements *>( this );
  17976. }
  17977. #if defined( VULKAN_HPP_USE_REFLECT )
  17978. # if 14 <= VULKAN_HPP_CPP_VERSION
  17979. auto
  17980. # else
  17981. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, const VULKAN_HPP_NAMESPACE::BufferCreateInfo * const &>
  17982. # endif
  17983. reflect() const VULKAN_HPP_NOEXCEPT
  17984. {
  17985. return std::tie( sType, pNext, pCreateInfo );
  17986. }
  17987. #endif
  17988. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  17989. auto operator<=>( DeviceBufferMemoryRequirements const & ) const = default;
  17990. #else
  17991. bool operator==( DeviceBufferMemoryRequirements const & rhs ) const VULKAN_HPP_NOEXCEPT
  17992. {
  17993. # if defined( VULKAN_HPP_USE_REFLECT )
  17994. return this->reflect() == rhs.reflect();
  17995. # else
  17996. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( pCreateInfo == rhs.pCreateInfo );
  17997. # endif
  17998. }
  17999. bool operator!=( DeviceBufferMemoryRequirements const & rhs ) const VULKAN_HPP_NOEXCEPT
  18000. {
  18001. return !operator==( rhs );
  18002. }
  18003. #endif
  18004. public:
  18005. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDeviceBufferMemoryRequirements;
  18006. const void * pNext = {};
  18007. const VULKAN_HPP_NAMESPACE::BufferCreateInfo * pCreateInfo = {};
  18008. };
  18009. template <>
  18010. struct CppType<StructureType, StructureType::eDeviceBufferMemoryRequirements>
  18011. {
  18012. using Type = DeviceBufferMemoryRequirements;
  18013. };
  18014. using DeviceBufferMemoryRequirementsKHR = DeviceBufferMemoryRequirements;
  18015. struct DeviceQueueCreateInfo
  18016. {
  18017. using NativeType = VkDeviceQueueCreateInfo;
  18018. static const bool allowDuplicate = false;
  18019. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDeviceQueueCreateInfo;
  18020. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  18021. VULKAN_HPP_CONSTEXPR DeviceQueueCreateInfo( VULKAN_HPP_NAMESPACE::DeviceQueueCreateFlags flags_ = {},
  18022. uint32_t queueFamilyIndex_ = {},
  18023. uint32_t queueCount_ = {},
  18024. const float * pQueuePriorities_ = {},
  18025. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  18026. : pNext( pNext_ )
  18027. , flags( flags_ )
  18028. , queueFamilyIndex( queueFamilyIndex_ )
  18029. , queueCount( queueCount_ )
  18030. , pQueuePriorities( pQueuePriorities_ )
  18031. {
  18032. }
  18033. VULKAN_HPP_CONSTEXPR DeviceQueueCreateInfo( DeviceQueueCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  18034. DeviceQueueCreateInfo( VkDeviceQueueCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
  18035. : DeviceQueueCreateInfo( *reinterpret_cast<DeviceQueueCreateInfo const *>( &rhs ) )
  18036. {
  18037. }
  18038. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  18039. DeviceQueueCreateInfo( VULKAN_HPP_NAMESPACE::DeviceQueueCreateFlags flags_,
  18040. uint32_t queueFamilyIndex_,
  18041. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const float> const & queuePriorities_,
  18042. const void * pNext_ = nullptr )
  18043. : pNext( pNext_ )
  18044. , flags( flags_ )
  18045. , queueFamilyIndex( queueFamilyIndex_ )
  18046. , queueCount( static_cast<uint32_t>( queuePriorities_.size() ) )
  18047. , pQueuePriorities( queuePriorities_.data() )
  18048. {
  18049. }
  18050. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  18051. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  18052. DeviceQueueCreateInfo & operator=( DeviceQueueCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  18053. DeviceQueueCreateInfo & operator=( VkDeviceQueueCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
  18054. {
  18055. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DeviceQueueCreateInfo const *>( &rhs );
  18056. return *this;
  18057. }
  18058. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  18059. VULKAN_HPP_CONSTEXPR_14 DeviceQueueCreateInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  18060. {
  18061. pNext = pNext_;
  18062. return *this;
  18063. }
  18064. VULKAN_HPP_CONSTEXPR_14 DeviceQueueCreateInfo & setFlags( VULKAN_HPP_NAMESPACE::DeviceQueueCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT
  18065. {
  18066. flags = flags_;
  18067. return *this;
  18068. }
  18069. VULKAN_HPP_CONSTEXPR_14 DeviceQueueCreateInfo & setQueueFamilyIndex( uint32_t queueFamilyIndex_ ) VULKAN_HPP_NOEXCEPT
  18070. {
  18071. queueFamilyIndex = queueFamilyIndex_;
  18072. return *this;
  18073. }
  18074. VULKAN_HPP_CONSTEXPR_14 DeviceQueueCreateInfo & setQueueCount( uint32_t queueCount_ ) VULKAN_HPP_NOEXCEPT
  18075. {
  18076. queueCount = queueCount_;
  18077. return *this;
  18078. }
  18079. VULKAN_HPP_CONSTEXPR_14 DeviceQueueCreateInfo & setPQueuePriorities( const float * pQueuePriorities_ ) VULKAN_HPP_NOEXCEPT
  18080. {
  18081. pQueuePriorities = pQueuePriorities_;
  18082. return *this;
  18083. }
  18084. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  18085. DeviceQueueCreateInfo & setQueuePriorities( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const float> const & queuePriorities_ ) VULKAN_HPP_NOEXCEPT
  18086. {
  18087. queueCount = static_cast<uint32_t>( queuePriorities_.size() );
  18088. pQueuePriorities = queuePriorities_.data();
  18089. return *this;
  18090. }
  18091. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  18092. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  18093. operator VkDeviceQueueCreateInfo const &() const VULKAN_HPP_NOEXCEPT
  18094. {
  18095. return *reinterpret_cast<const VkDeviceQueueCreateInfo *>( this );
  18096. }
  18097. operator VkDeviceQueueCreateInfo &() VULKAN_HPP_NOEXCEPT
  18098. {
  18099. return *reinterpret_cast<VkDeviceQueueCreateInfo *>( this );
  18100. }
  18101. #if defined( VULKAN_HPP_USE_REFLECT )
  18102. # if 14 <= VULKAN_HPP_CPP_VERSION
  18103. auto
  18104. # else
  18105. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  18106. const void * const &,
  18107. VULKAN_HPP_NAMESPACE::DeviceQueueCreateFlags const &,
  18108. uint32_t const &,
  18109. uint32_t const &,
  18110. const float * const &>
  18111. # endif
  18112. reflect() const VULKAN_HPP_NOEXCEPT
  18113. {
  18114. return std::tie( sType, pNext, flags, queueFamilyIndex, queueCount, pQueuePriorities );
  18115. }
  18116. #endif
  18117. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  18118. auto operator<=>( DeviceQueueCreateInfo const & ) const = default;
  18119. #else
  18120. bool operator==( DeviceQueueCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  18121. {
  18122. # if defined( VULKAN_HPP_USE_REFLECT )
  18123. return this->reflect() == rhs.reflect();
  18124. # else
  18125. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( flags == rhs.flags ) && ( queueFamilyIndex == rhs.queueFamilyIndex ) &&
  18126. ( queueCount == rhs.queueCount ) && ( pQueuePriorities == rhs.pQueuePriorities );
  18127. # endif
  18128. }
  18129. bool operator!=( DeviceQueueCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  18130. {
  18131. return !operator==( rhs );
  18132. }
  18133. #endif
  18134. public:
  18135. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDeviceQueueCreateInfo;
  18136. const void * pNext = {};
  18137. VULKAN_HPP_NAMESPACE::DeviceQueueCreateFlags flags = {};
  18138. uint32_t queueFamilyIndex = {};
  18139. uint32_t queueCount = {};
  18140. const float * pQueuePriorities = {};
  18141. };
  18142. template <>
  18143. struct CppType<StructureType, StructureType::eDeviceQueueCreateInfo>
  18144. {
  18145. using Type = DeviceQueueCreateInfo;
  18146. };
  18147. struct PhysicalDeviceFeatures
  18148. {
  18149. using NativeType = VkPhysicalDeviceFeatures;
  18150. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  18151. VULKAN_HPP_CONSTEXPR PhysicalDeviceFeatures( VULKAN_HPP_NAMESPACE::Bool32 robustBufferAccess_ = {},
  18152. VULKAN_HPP_NAMESPACE::Bool32 fullDrawIndexUint32_ = {},
  18153. VULKAN_HPP_NAMESPACE::Bool32 imageCubeArray_ = {},
  18154. VULKAN_HPP_NAMESPACE::Bool32 independentBlend_ = {},
  18155. VULKAN_HPP_NAMESPACE::Bool32 geometryShader_ = {},
  18156. VULKAN_HPP_NAMESPACE::Bool32 tessellationShader_ = {},
  18157. VULKAN_HPP_NAMESPACE::Bool32 sampleRateShading_ = {},
  18158. VULKAN_HPP_NAMESPACE::Bool32 dualSrcBlend_ = {},
  18159. VULKAN_HPP_NAMESPACE::Bool32 logicOp_ = {},
  18160. VULKAN_HPP_NAMESPACE::Bool32 multiDrawIndirect_ = {},
  18161. VULKAN_HPP_NAMESPACE::Bool32 drawIndirectFirstInstance_ = {},
  18162. VULKAN_HPP_NAMESPACE::Bool32 depthClamp_ = {},
  18163. VULKAN_HPP_NAMESPACE::Bool32 depthBiasClamp_ = {},
  18164. VULKAN_HPP_NAMESPACE::Bool32 fillModeNonSolid_ = {},
  18165. VULKAN_HPP_NAMESPACE::Bool32 depthBounds_ = {},
  18166. VULKAN_HPP_NAMESPACE::Bool32 wideLines_ = {},
  18167. VULKAN_HPP_NAMESPACE::Bool32 largePoints_ = {},
  18168. VULKAN_HPP_NAMESPACE::Bool32 alphaToOne_ = {},
  18169. VULKAN_HPP_NAMESPACE::Bool32 multiViewport_ = {},
  18170. VULKAN_HPP_NAMESPACE::Bool32 samplerAnisotropy_ = {},
  18171. VULKAN_HPP_NAMESPACE::Bool32 textureCompressionETC2_ = {},
  18172. VULKAN_HPP_NAMESPACE::Bool32 textureCompressionASTC_LDR_ = {},
  18173. VULKAN_HPP_NAMESPACE::Bool32 textureCompressionBC_ = {},
  18174. VULKAN_HPP_NAMESPACE::Bool32 occlusionQueryPrecise_ = {},
  18175. VULKAN_HPP_NAMESPACE::Bool32 pipelineStatisticsQuery_ = {},
  18176. VULKAN_HPP_NAMESPACE::Bool32 vertexPipelineStoresAndAtomics_ = {},
  18177. VULKAN_HPP_NAMESPACE::Bool32 fragmentStoresAndAtomics_ = {},
  18178. VULKAN_HPP_NAMESPACE::Bool32 shaderTessellationAndGeometryPointSize_ = {},
  18179. VULKAN_HPP_NAMESPACE::Bool32 shaderImageGatherExtended_ = {},
  18180. VULKAN_HPP_NAMESPACE::Bool32 shaderStorageImageExtendedFormats_ = {},
  18181. VULKAN_HPP_NAMESPACE::Bool32 shaderStorageImageMultisample_ = {},
  18182. VULKAN_HPP_NAMESPACE::Bool32 shaderStorageImageReadWithoutFormat_ = {},
  18183. VULKAN_HPP_NAMESPACE::Bool32 shaderStorageImageWriteWithoutFormat_ = {},
  18184. VULKAN_HPP_NAMESPACE::Bool32 shaderUniformBufferArrayDynamicIndexing_ = {},
  18185. VULKAN_HPP_NAMESPACE::Bool32 shaderSampledImageArrayDynamicIndexing_ = {},
  18186. VULKAN_HPP_NAMESPACE::Bool32 shaderStorageBufferArrayDynamicIndexing_ = {},
  18187. VULKAN_HPP_NAMESPACE::Bool32 shaderStorageImageArrayDynamicIndexing_ = {},
  18188. VULKAN_HPP_NAMESPACE::Bool32 shaderClipDistance_ = {},
  18189. VULKAN_HPP_NAMESPACE::Bool32 shaderCullDistance_ = {},
  18190. VULKAN_HPP_NAMESPACE::Bool32 shaderFloat64_ = {},
  18191. VULKAN_HPP_NAMESPACE::Bool32 shaderInt64_ = {},
  18192. VULKAN_HPP_NAMESPACE::Bool32 shaderInt16_ = {},
  18193. VULKAN_HPP_NAMESPACE::Bool32 shaderResourceResidency_ = {},
  18194. VULKAN_HPP_NAMESPACE::Bool32 shaderResourceMinLod_ = {},
  18195. VULKAN_HPP_NAMESPACE::Bool32 sparseBinding_ = {},
  18196. VULKAN_HPP_NAMESPACE::Bool32 sparseResidencyBuffer_ = {},
  18197. VULKAN_HPP_NAMESPACE::Bool32 sparseResidencyImage2D_ = {},
  18198. VULKAN_HPP_NAMESPACE::Bool32 sparseResidencyImage3D_ = {},
  18199. VULKAN_HPP_NAMESPACE::Bool32 sparseResidency2Samples_ = {},
  18200. VULKAN_HPP_NAMESPACE::Bool32 sparseResidency4Samples_ = {},
  18201. VULKAN_HPP_NAMESPACE::Bool32 sparseResidency8Samples_ = {},
  18202. VULKAN_HPP_NAMESPACE::Bool32 sparseResidency16Samples_ = {},
  18203. VULKAN_HPP_NAMESPACE::Bool32 sparseResidencyAliased_ = {},
  18204. VULKAN_HPP_NAMESPACE::Bool32 variableMultisampleRate_ = {},
  18205. VULKAN_HPP_NAMESPACE::Bool32 inheritedQueries_ = {} ) VULKAN_HPP_NOEXCEPT
  18206. : robustBufferAccess( robustBufferAccess_ )
  18207. , fullDrawIndexUint32( fullDrawIndexUint32_ )
  18208. , imageCubeArray( imageCubeArray_ )
  18209. , independentBlend( independentBlend_ )
  18210. , geometryShader( geometryShader_ )
  18211. , tessellationShader( tessellationShader_ )
  18212. , sampleRateShading( sampleRateShading_ )
  18213. , dualSrcBlend( dualSrcBlend_ )
  18214. , logicOp( logicOp_ )
  18215. , multiDrawIndirect( multiDrawIndirect_ )
  18216. , drawIndirectFirstInstance( drawIndirectFirstInstance_ )
  18217. , depthClamp( depthClamp_ )
  18218. , depthBiasClamp( depthBiasClamp_ )
  18219. , fillModeNonSolid( fillModeNonSolid_ )
  18220. , depthBounds( depthBounds_ )
  18221. , wideLines( wideLines_ )
  18222. , largePoints( largePoints_ )
  18223. , alphaToOne( alphaToOne_ )
  18224. , multiViewport( multiViewport_ )
  18225. , samplerAnisotropy( samplerAnisotropy_ )
  18226. , textureCompressionETC2( textureCompressionETC2_ )
  18227. , textureCompressionASTC_LDR( textureCompressionASTC_LDR_ )
  18228. , textureCompressionBC( textureCompressionBC_ )
  18229. , occlusionQueryPrecise( occlusionQueryPrecise_ )
  18230. , pipelineStatisticsQuery( pipelineStatisticsQuery_ )
  18231. , vertexPipelineStoresAndAtomics( vertexPipelineStoresAndAtomics_ )
  18232. , fragmentStoresAndAtomics( fragmentStoresAndAtomics_ )
  18233. , shaderTessellationAndGeometryPointSize( shaderTessellationAndGeometryPointSize_ )
  18234. , shaderImageGatherExtended( shaderImageGatherExtended_ )
  18235. , shaderStorageImageExtendedFormats( shaderStorageImageExtendedFormats_ )
  18236. , shaderStorageImageMultisample( shaderStorageImageMultisample_ )
  18237. , shaderStorageImageReadWithoutFormat( shaderStorageImageReadWithoutFormat_ )
  18238. , shaderStorageImageWriteWithoutFormat( shaderStorageImageWriteWithoutFormat_ )
  18239. , shaderUniformBufferArrayDynamicIndexing( shaderUniformBufferArrayDynamicIndexing_ )
  18240. , shaderSampledImageArrayDynamicIndexing( shaderSampledImageArrayDynamicIndexing_ )
  18241. , shaderStorageBufferArrayDynamicIndexing( shaderStorageBufferArrayDynamicIndexing_ )
  18242. , shaderStorageImageArrayDynamicIndexing( shaderStorageImageArrayDynamicIndexing_ )
  18243. , shaderClipDistance( shaderClipDistance_ )
  18244. , shaderCullDistance( shaderCullDistance_ )
  18245. , shaderFloat64( shaderFloat64_ )
  18246. , shaderInt64( shaderInt64_ )
  18247. , shaderInt16( shaderInt16_ )
  18248. , shaderResourceResidency( shaderResourceResidency_ )
  18249. , shaderResourceMinLod( shaderResourceMinLod_ )
  18250. , sparseBinding( sparseBinding_ )
  18251. , sparseResidencyBuffer( sparseResidencyBuffer_ )
  18252. , sparseResidencyImage2D( sparseResidencyImage2D_ )
  18253. , sparseResidencyImage3D( sparseResidencyImage3D_ )
  18254. , sparseResidency2Samples( sparseResidency2Samples_ )
  18255. , sparseResidency4Samples( sparseResidency4Samples_ )
  18256. , sparseResidency8Samples( sparseResidency8Samples_ )
  18257. , sparseResidency16Samples( sparseResidency16Samples_ )
  18258. , sparseResidencyAliased( sparseResidencyAliased_ )
  18259. , variableMultisampleRate( variableMultisampleRate_ )
  18260. , inheritedQueries( inheritedQueries_ )
  18261. {
  18262. }
  18263. VULKAN_HPP_CONSTEXPR PhysicalDeviceFeatures( PhysicalDeviceFeatures const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  18264. PhysicalDeviceFeatures( VkPhysicalDeviceFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
  18265. : PhysicalDeviceFeatures( *reinterpret_cast<PhysicalDeviceFeatures const *>( &rhs ) )
  18266. {
  18267. }
  18268. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  18269. PhysicalDeviceFeatures & operator=( PhysicalDeviceFeatures const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  18270. PhysicalDeviceFeatures & operator=( VkPhysicalDeviceFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
  18271. {
  18272. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures const *>( &rhs );
  18273. return *this;
  18274. }
  18275. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  18276. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceFeatures & setRobustBufferAccess( VULKAN_HPP_NAMESPACE::Bool32 robustBufferAccess_ ) VULKAN_HPP_NOEXCEPT
  18277. {
  18278. robustBufferAccess = robustBufferAccess_;
  18279. return *this;
  18280. }
  18281. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceFeatures & setFullDrawIndexUint32( VULKAN_HPP_NAMESPACE::Bool32 fullDrawIndexUint32_ ) VULKAN_HPP_NOEXCEPT
  18282. {
  18283. fullDrawIndexUint32 = fullDrawIndexUint32_;
  18284. return *this;
  18285. }
  18286. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceFeatures & setImageCubeArray( VULKAN_HPP_NAMESPACE::Bool32 imageCubeArray_ ) VULKAN_HPP_NOEXCEPT
  18287. {
  18288. imageCubeArray = imageCubeArray_;
  18289. return *this;
  18290. }
  18291. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceFeatures & setIndependentBlend( VULKAN_HPP_NAMESPACE::Bool32 independentBlend_ ) VULKAN_HPP_NOEXCEPT
  18292. {
  18293. independentBlend = independentBlend_;
  18294. return *this;
  18295. }
  18296. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceFeatures & setGeometryShader( VULKAN_HPP_NAMESPACE::Bool32 geometryShader_ ) VULKAN_HPP_NOEXCEPT
  18297. {
  18298. geometryShader = geometryShader_;
  18299. return *this;
  18300. }
  18301. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceFeatures & setTessellationShader( VULKAN_HPP_NAMESPACE::Bool32 tessellationShader_ ) VULKAN_HPP_NOEXCEPT
  18302. {
  18303. tessellationShader = tessellationShader_;
  18304. return *this;
  18305. }
  18306. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceFeatures & setSampleRateShading( VULKAN_HPP_NAMESPACE::Bool32 sampleRateShading_ ) VULKAN_HPP_NOEXCEPT
  18307. {
  18308. sampleRateShading = sampleRateShading_;
  18309. return *this;
  18310. }
  18311. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceFeatures & setDualSrcBlend( VULKAN_HPP_NAMESPACE::Bool32 dualSrcBlend_ ) VULKAN_HPP_NOEXCEPT
  18312. {
  18313. dualSrcBlend = dualSrcBlend_;
  18314. return *this;
  18315. }
  18316. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceFeatures & setLogicOp( VULKAN_HPP_NAMESPACE::Bool32 logicOp_ ) VULKAN_HPP_NOEXCEPT
  18317. {
  18318. logicOp = logicOp_;
  18319. return *this;
  18320. }
  18321. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceFeatures & setMultiDrawIndirect( VULKAN_HPP_NAMESPACE::Bool32 multiDrawIndirect_ ) VULKAN_HPP_NOEXCEPT
  18322. {
  18323. multiDrawIndirect = multiDrawIndirect_;
  18324. return *this;
  18325. }
  18326. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceFeatures & setDrawIndirectFirstInstance( VULKAN_HPP_NAMESPACE::Bool32 drawIndirectFirstInstance_ ) VULKAN_HPP_NOEXCEPT
  18327. {
  18328. drawIndirectFirstInstance = drawIndirectFirstInstance_;
  18329. return *this;
  18330. }
  18331. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceFeatures & setDepthClamp( VULKAN_HPP_NAMESPACE::Bool32 depthClamp_ ) VULKAN_HPP_NOEXCEPT
  18332. {
  18333. depthClamp = depthClamp_;
  18334. return *this;
  18335. }
  18336. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceFeatures & setDepthBiasClamp( VULKAN_HPP_NAMESPACE::Bool32 depthBiasClamp_ ) VULKAN_HPP_NOEXCEPT
  18337. {
  18338. depthBiasClamp = depthBiasClamp_;
  18339. return *this;
  18340. }
  18341. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceFeatures & setFillModeNonSolid( VULKAN_HPP_NAMESPACE::Bool32 fillModeNonSolid_ ) VULKAN_HPP_NOEXCEPT
  18342. {
  18343. fillModeNonSolid = fillModeNonSolid_;
  18344. return *this;
  18345. }
  18346. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceFeatures & setDepthBounds( VULKAN_HPP_NAMESPACE::Bool32 depthBounds_ ) VULKAN_HPP_NOEXCEPT
  18347. {
  18348. depthBounds = depthBounds_;
  18349. return *this;
  18350. }
  18351. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceFeatures & setWideLines( VULKAN_HPP_NAMESPACE::Bool32 wideLines_ ) VULKAN_HPP_NOEXCEPT
  18352. {
  18353. wideLines = wideLines_;
  18354. return *this;
  18355. }
  18356. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceFeatures & setLargePoints( VULKAN_HPP_NAMESPACE::Bool32 largePoints_ ) VULKAN_HPP_NOEXCEPT
  18357. {
  18358. largePoints = largePoints_;
  18359. return *this;
  18360. }
  18361. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceFeatures & setAlphaToOne( VULKAN_HPP_NAMESPACE::Bool32 alphaToOne_ ) VULKAN_HPP_NOEXCEPT
  18362. {
  18363. alphaToOne = alphaToOne_;
  18364. return *this;
  18365. }
  18366. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceFeatures & setMultiViewport( VULKAN_HPP_NAMESPACE::Bool32 multiViewport_ ) VULKAN_HPP_NOEXCEPT
  18367. {
  18368. multiViewport = multiViewport_;
  18369. return *this;
  18370. }
  18371. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceFeatures & setSamplerAnisotropy( VULKAN_HPP_NAMESPACE::Bool32 samplerAnisotropy_ ) VULKAN_HPP_NOEXCEPT
  18372. {
  18373. samplerAnisotropy = samplerAnisotropy_;
  18374. return *this;
  18375. }
  18376. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceFeatures & setTextureCompressionETC2( VULKAN_HPP_NAMESPACE::Bool32 textureCompressionETC2_ ) VULKAN_HPP_NOEXCEPT
  18377. {
  18378. textureCompressionETC2 = textureCompressionETC2_;
  18379. return *this;
  18380. }
  18381. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceFeatures &
  18382. setTextureCompressionASTC_LDR( VULKAN_HPP_NAMESPACE::Bool32 textureCompressionASTC_LDR_ ) VULKAN_HPP_NOEXCEPT
  18383. {
  18384. textureCompressionASTC_LDR = textureCompressionASTC_LDR_;
  18385. return *this;
  18386. }
  18387. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceFeatures & setTextureCompressionBC( VULKAN_HPP_NAMESPACE::Bool32 textureCompressionBC_ ) VULKAN_HPP_NOEXCEPT
  18388. {
  18389. textureCompressionBC = textureCompressionBC_;
  18390. return *this;
  18391. }
  18392. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceFeatures & setOcclusionQueryPrecise( VULKAN_HPP_NAMESPACE::Bool32 occlusionQueryPrecise_ ) VULKAN_HPP_NOEXCEPT
  18393. {
  18394. occlusionQueryPrecise = occlusionQueryPrecise_;
  18395. return *this;
  18396. }
  18397. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceFeatures & setPipelineStatisticsQuery( VULKAN_HPP_NAMESPACE::Bool32 pipelineStatisticsQuery_ ) VULKAN_HPP_NOEXCEPT
  18398. {
  18399. pipelineStatisticsQuery = pipelineStatisticsQuery_;
  18400. return *this;
  18401. }
  18402. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceFeatures &
  18403. setVertexPipelineStoresAndAtomics( VULKAN_HPP_NAMESPACE::Bool32 vertexPipelineStoresAndAtomics_ ) VULKAN_HPP_NOEXCEPT
  18404. {
  18405. vertexPipelineStoresAndAtomics = vertexPipelineStoresAndAtomics_;
  18406. return *this;
  18407. }
  18408. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceFeatures & setFragmentStoresAndAtomics( VULKAN_HPP_NAMESPACE::Bool32 fragmentStoresAndAtomics_ ) VULKAN_HPP_NOEXCEPT
  18409. {
  18410. fragmentStoresAndAtomics = fragmentStoresAndAtomics_;
  18411. return *this;
  18412. }
  18413. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceFeatures &
  18414. setShaderTessellationAndGeometryPointSize( VULKAN_HPP_NAMESPACE::Bool32 shaderTessellationAndGeometryPointSize_ ) VULKAN_HPP_NOEXCEPT
  18415. {
  18416. shaderTessellationAndGeometryPointSize = shaderTessellationAndGeometryPointSize_;
  18417. return *this;
  18418. }
  18419. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceFeatures & setShaderImageGatherExtended( VULKAN_HPP_NAMESPACE::Bool32 shaderImageGatherExtended_ ) VULKAN_HPP_NOEXCEPT
  18420. {
  18421. shaderImageGatherExtended = shaderImageGatherExtended_;
  18422. return *this;
  18423. }
  18424. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceFeatures &
  18425. setShaderStorageImageExtendedFormats( VULKAN_HPP_NAMESPACE::Bool32 shaderStorageImageExtendedFormats_ ) VULKAN_HPP_NOEXCEPT
  18426. {
  18427. shaderStorageImageExtendedFormats = shaderStorageImageExtendedFormats_;
  18428. return *this;
  18429. }
  18430. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceFeatures &
  18431. setShaderStorageImageMultisample( VULKAN_HPP_NAMESPACE::Bool32 shaderStorageImageMultisample_ ) VULKAN_HPP_NOEXCEPT
  18432. {
  18433. shaderStorageImageMultisample = shaderStorageImageMultisample_;
  18434. return *this;
  18435. }
  18436. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceFeatures &
  18437. setShaderStorageImageReadWithoutFormat( VULKAN_HPP_NAMESPACE::Bool32 shaderStorageImageReadWithoutFormat_ ) VULKAN_HPP_NOEXCEPT
  18438. {
  18439. shaderStorageImageReadWithoutFormat = shaderStorageImageReadWithoutFormat_;
  18440. return *this;
  18441. }
  18442. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceFeatures &
  18443. setShaderStorageImageWriteWithoutFormat( VULKAN_HPP_NAMESPACE::Bool32 shaderStorageImageWriteWithoutFormat_ ) VULKAN_HPP_NOEXCEPT
  18444. {
  18445. shaderStorageImageWriteWithoutFormat = shaderStorageImageWriteWithoutFormat_;
  18446. return *this;
  18447. }
  18448. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceFeatures &
  18449. setShaderUniformBufferArrayDynamicIndexing( VULKAN_HPP_NAMESPACE::Bool32 shaderUniformBufferArrayDynamicIndexing_ ) VULKAN_HPP_NOEXCEPT
  18450. {
  18451. shaderUniformBufferArrayDynamicIndexing = shaderUniformBufferArrayDynamicIndexing_;
  18452. return *this;
  18453. }
  18454. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceFeatures &
  18455. setShaderSampledImageArrayDynamicIndexing( VULKAN_HPP_NAMESPACE::Bool32 shaderSampledImageArrayDynamicIndexing_ ) VULKAN_HPP_NOEXCEPT
  18456. {
  18457. shaderSampledImageArrayDynamicIndexing = shaderSampledImageArrayDynamicIndexing_;
  18458. return *this;
  18459. }
  18460. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceFeatures &
  18461. setShaderStorageBufferArrayDynamicIndexing( VULKAN_HPP_NAMESPACE::Bool32 shaderStorageBufferArrayDynamicIndexing_ ) VULKAN_HPP_NOEXCEPT
  18462. {
  18463. shaderStorageBufferArrayDynamicIndexing = shaderStorageBufferArrayDynamicIndexing_;
  18464. return *this;
  18465. }
  18466. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceFeatures &
  18467. setShaderStorageImageArrayDynamicIndexing( VULKAN_HPP_NAMESPACE::Bool32 shaderStorageImageArrayDynamicIndexing_ ) VULKAN_HPP_NOEXCEPT
  18468. {
  18469. shaderStorageImageArrayDynamicIndexing = shaderStorageImageArrayDynamicIndexing_;
  18470. return *this;
  18471. }
  18472. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceFeatures & setShaderClipDistance( VULKAN_HPP_NAMESPACE::Bool32 shaderClipDistance_ ) VULKAN_HPP_NOEXCEPT
  18473. {
  18474. shaderClipDistance = shaderClipDistance_;
  18475. return *this;
  18476. }
  18477. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceFeatures & setShaderCullDistance( VULKAN_HPP_NAMESPACE::Bool32 shaderCullDistance_ ) VULKAN_HPP_NOEXCEPT
  18478. {
  18479. shaderCullDistance = shaderCullDistance_;
  18480. return *this;
  18481. }
  18482. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceFeatures & setShaderFloat64( VULKAN_HPP_NAMESPACE::Bool32 shaderFloat64_ ) VULKAN_HPP_NOEXCEPT
  18483. {
  18484. shaderFloat64 = shaderFloat64_;
  18485. return *this;
  18486. }
  18487. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceFeatures & setShaderInt64( VULKAN_HPP_NAMESPACE::Bool32 shaderInt64_ ) VULKAN_HPP_NOEXCEPT
  18488. {
  18489. shaderInt64 = shaderInt64_;
  18490. return *this;
  18491. }
  18492. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceFeatures & setShaderInt16( VULKAN_HPP_NAMESPACE::Bool32 shaderInt16_ ) VULKAN_HPP_NOEXCEPT
  18493. {
  18494. shaderInt16 = shaderInt16_;
  18495. return *this;
  18496. }
  18497. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceFeatures & setShaderResourceResidency( VULKAN_HPP_NAMESPACE::Bool32 shaderResourceResidency_ ) VULKAN_HPP_NOEXCEPT
  18498. {
  18499. shaderResourceResidency = shaderResourceResidency_;
  18500. return *this;
  18501. }
  18502. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceFeatures & setShaderResourceMinLod( VULKAN_HPP_NAMESPACE::Bool32 shaderResourceMinLod_ ) VULKAN_HPP_NOEXCEPT
  18503. {
  18504. shaderResourceMinLod = shaderResourceMinLod_;
  18505. return *this;
  18506. }
  18507. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceFeatures & setSparseBinding( VULKAN_HPP_NAMESPACE::Bool32 sparseBinding_ ) VULKAN_HPP_NOEXCEPT
  18508. {
  18509. sparseBinding = sparseBinding_;
  18510. return *this;
  18511. }
  18512. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceFeatures & setSparseResidencyBuffer( VULKAN_HPP_NAMESPACE::Bool32 sparseResidencyBuffer_ ) VULKAN_HPP_NOEXCEPT
  18513. {
  18514. sparseResidencyBuffer = sparseResidencyBuffer_;
  18515. return *this;
  18516. }
  18517. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceFeatures & setSparseResidencyImage2D( VULKAN_HPP_NAMESPACE::Bool32 sparseResidencyImage2D_ ) VULKAN_HPP_NOEXCEPT
  18518. {
  18519. sparseResidencyImage2D = sparseResidencyImage2D_;
  18520. return *this;
  18521. }
  18522. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceFeatures & setSparseResidencyImage3D( VULKAN_HPP_NAMESPACE::Bool32 sparseResidencyImage3D_ ) VULKAN_HPP_NOEXCEPT
  18523. {
  18524. sparseResidencyImage3D = sparseResidencyImage3D_;
  18525. return *this;
  18526. }
  18527. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceFeatures & setSparseResidency2Samples( VULKAN_HPP_NAMESPACE::Bool32 sparseResidency2Samples_ ) VULKAN_HPP_NOEXCEPT
  18528. {
  18529. sparseResidency2Samples = sparseResidency2Samples_;
  18530. return *this;
  18531. }
  18532. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceFeatures & setSparseResidency4Samples( VULKAN_HPP_NAMESPACE::Bool32 sparseResidency4Samples_ ) VULKAN_HPP_NOEXCEPT
  18533. {
  18534. sparseResidency4Samples = sparseResidency4Samples_;
  18535. return *this;
  18536. }
  18537. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceFeatures & setSparseResidency8Samples( VULKAN_HPP_NAMESPACE::Bool32 sparseResidency8Samples_ ) VULKAN_HPP_NOEXCEPT
  18538. {
  18539. sparseResidency8Samples = sparseResidency8Samples_;
  18540. return *this;
  18541. }
  18542. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceFeatures & setSparseResidency16Samples( VULKAN_HPP_NAMESPACE::Bool32 sparseResidency16Samples_ ) VULKAN_HPP_NOEXCEPT
  18543. {
  18544. sparseResidency16Samples = sparseResidency16Samples_;
  18545. return *this;
  18546. }
  18547. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceFeatures & setSparseResidencyAliased( VULKAN_HPP_NAMESPACE::Bool32 sparseResidencyAliased_ ) VULKAN_HPP_NOEXCEPT
  18548. {
  18549. sparseResidencyAliased = sparseResidencyAliased_;
  18550. return *this;
  18551. }
  18552. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceFeatures & setVariableMultisampleRate( VULKAN_HPP_NAMESPACE::Bool32 variableMultisampleRate_ ) VULKAN_HPP_NOEXCEPT
  18553. {
  18554. variableMultisampleRate = variableMultisampleRate_;
  18555. return *this;
  18556. }
  18557. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceFeatures & setInheritedQueries( VULKAN_HPP_NAMESPACE::Bool32 inheritedQueries_ ) VULKAN_HPP_NOEXCEPT
  18558. {
  18559. inheritedQueries = inheritedQueries_;
  18560. return *this;
  18561. }
  18562. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  18563. operator VkPhysicalDeviceFeatures const &() const VULKAN_HPP_NOEXCEPT
  18564. {
  18565. return *reinterpret_cast<const VkPhysicalDeviceFeatures *>( this );
  18566. }
  18567. operator VkPhysicalDeviceFeatures &() VULKAN_HPP_NOEXCEPT
  18568. {
  18569. return *reinterpret_cast<VkPhysicalDeviceFeatures *>( this );
  18570. }
  18571. #if defined( VULKAN_HPP_USE_REFLECT )
  18572. # if 14 <= VULKAN_HPP_CPP_VERSION
  18573. auto
  18574. # else
  18575. std::tuple<VULKAN_HPP_NAMESPACE::Bool32 const &,
  18576. VULKAN_HPP_NAMESPACE::Bool32 const &,
  18577. VULKAN_HPP_NAMESPACE::Bool32 const &,
  18578. VULKAN_HPP_NAMESPACE::Bool32 const &,
  18579. VULKAN_HPP_NAMESPACE::Bool32 const &,
  18580. VULKAN_HPP_NAMESPACE::Bool32 const &,
  18581. VULKAN_HPP_NAMESPACE::Bool32 const &,
  18582. VULKAN_HPP_NAMESPACE::Bool32 const &,
  18583. VULKAN_HPP_NAMESPACE::Bool32 const &,
  18584. VULKAN_HPP_NAMESPACE::Bool32 const &,
  18585. VULKAN_HPP_NAMESPACE::Bool32 const &,
  18586. VULKAN_HPP_NAMESPACE::Bool32 const &,
  18587. VULKAN_HPP_NAMESPACE::Bool32 const &,
  18588. VULKAN_HPP_NAMESPACE::Bool32 const &,
  18589. VULKAN_HPP_NAMESPACE::Bool32 const &,
  18590. VULKAN_HPP_NAMESPACE::Bool32 const &,
  18591. VULKAN_HPP_NAMESPACE::Bool32 const &,
  18592. VULKAN_HPP_NAMESPACE::Bool32 const &,
  18593. VULKAN_HPP_NAMESPACE::Bool32 const &,
  18594. VULKAN_HPP_NAMESPACE::Bool32 const &,
  18595. VULKAN_HPP_NAMESPACE::Bool32 const &,
  18596. VULKAN_HPP_NAMESPACE::Bool32 const &,
  18597. VULKAN_HPP_NAMESPACE::Bool32 const &,
  18598. VULKAN_HPP_NAMESPACE::Bool32 const &,
  18599. VULKAN_HPP_NAMESPACE::Bool32 const &,
  18600. VULKAN_HPP_NAMESPACE::Bool32 const &,
  18601. VULKAN_HPP_NAMESPACE::Bool32 const &,
  18602. VULKAN_HPP_NAMESPACE::Bool32 const &,
  18603. VULKAN_HPP_NAMESPACE::Bool32 const &,
  18604. VULKAN_HPP_NAMESPACE::Bool32 const &,
  18605. VULKAN_HPP_NAMESPACE::Bool32 const &,
  18606. VULKAN_HPP_NAMESPACE::Bool32 const &,
  18607. VULKAN_HPP_NAMESPACE::Bool32 const &,
  18608. VULKAN_HPP_NAMESPACE::Bool32 const &,
  18609. VULKAN_HPP_NAMESPACE::Bool32 const &,
  18610. VULKAN_HPP_NAMESPACE::Bool32 const &,
  18611. VULKAN_HPP_NAMESPACE::Bool32 const &,
  18612. VULKAN_HPP_NAMESPACE::Bool32 const &,
  18613. VULKAN_HPP_NAMESPACE::Bool32 const &,
  18614. VULKAN_HPP_NAMESPACE::Bool32 const &,
  18615. VULKAN_HPP_NAMESPACE::Bool32 const &,
  18616. VULKAN_HPP_NAMESPACE::Bool32 const &,
  18617. VULKAN_HPP_NAMESPACE::Bool32 const &,
  18618. VULKAN_HPP_NAMESPACE::Bool32 const &,
  18619. VULKAN_HPP_NAMESPACE::Bool32 const &,
  18620. VULKAN_HPP_NAMESPACE::Bool32 const &,
  18621. VULKAN_HPP_NAMESPACE::Bool32 const &,
  18622. VULKAN_HPP_NAMESPACE::Bool32 const &,
  18623. VULKAN_HPP_NAMESPACE::Bool32 const &,
  18624. VULKAN_HPP_NAMESPACE::Bool32 const &,
  18625. VULKAN_HPP_NAMESPACE::Bool32 const &,
  18626. VULKAN_HPP_NAMESPACE::Bool32 const &,
  18627. VULKAN_HPP_NAMESPACE::Bool32 const &,
  18628. VULKAN_HPP_NAMESPACE::Bool32 const &,
  18629. VULKAN_HPP_NAMESPACE::Bool32 const &>
  18630. # endif
  18631. reflect() const VULKAN_HPP_NOEXCEPT
  18632. {
  18633. return std::tie( robustBufferAccess,
  18634. fullDrawIndexUint32,
  18635. imageCubeArray,
  18636. independentBlend,
  18637. geometryShader,
  18638. tessellationShader,
  18639. sampleRateShading,
  18640. dualSrcBlend,
  18641. logicOp,
  18642. multiDrawIndirect,
  18643. drawIndirectFirstInstance,
  18644. depthClamp,
  18645. depthBiasClamp,
  18646. fillModeNonSolid,
  18647. depthBounds,
  18648. wideLines,
  18649. largePoints,
  18650. alphaToOne,
  18651. multiViewport,
  18652. samplerAnisotropy,
  18653. textureCompressionETC2,
  18654. textureCompressionASTC_LDR,
  18655. textureCompressionBC,
  18656. occlusionQueryPrecise,
  18657. pipelineStatisticsQuery,
  18658. vertexPipelineStoresAndAtomics,
  18659. fragmentStoresAndAtomics,
  18660. shaderTessellationAndGeometryPointSize,
  18661. shaderImageGatherExtended,
  18662. shaderStorageImageExtendedFormats,
  18663. shaderStorageImageMultisample,
  18664. shaderStorageImageReadWithoutFormat,
  18665. shaderStorageImageWriteWithoutFormat,
  18666. shaderUniformBufferArrayDynamicIndexing,
  18667. shaderSampledImageArrayDynamicIndexing,
  18668. shaderStorageBufferArrayDynamicIndexing,
  18669. shaderStorageImageArrayDynamicIndexing,
  18670. shaderClipDistance,
  18671. shaderCullDistance,
  18672. shaderFloat64,
  18673. shaderInt64,
  18674. shaderInt16,
  18675. shaderResourceResidency,
  18676. shaderResourceMinLod,
  18677. sparseBinding,
  18678. sparseResidencyBuffer,
  18679. sparseResidencyImage2D,
  18680. sparseResidencyImage3D,
  18681. sparseResidency2Samples,
  18682. sparseResidency4Samples,
  18683. sparseResidency8Samples,
  18684. sparseResidency16Samples,
  18685. sparseResidencyAliased,
  18686. variableMultisampleRate,
  18687. inheritedQueries );
  18688. }
  18689. #endif
  18690. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  18691. auto operator<=>( PhysicalDeviceFeatures const & ) const = default;
  18692. #else
  18693. bool operator==( PhysicalDeviceFeatures const & rhs ) const VULKAN_HPP_NOEXCEPT
  18694. {
  18695. # if defined( VULKAN_HPP_USE_REFLECT )
  18696. return this->reflect() == rhs.reflect();
  18697. # else
  18698. return ( robustBufferAccess == rhs.robustBufferAccess ) && ( fullDrawIndexUint32 == rhs.fullDrawIndexUint32 ) &&
  18699. ( imageCubeArray == rhs.imageCubeArray ) && ( independentBlend == rhs.independentBlend ) && ( geometryShader == rhs.geometryShader ) &&
  18700. ( tessellationShader == rhs.tessellationShader ) && ( sampleRateShading == rhs.sampleRateShading ) && ( dualSrcBlend == rhs.dualSrcBlend ) &&
  18701. ( logicOp == rhs.logicOp ) && ( multiDrawIndirect == rhs.multiDrawIndirect ) && ( drawIndirectFirstInstance == rhs.drawIndirectFirstInstance ) &&
  18702. ( depthClamp == rhs.depthClamp ) && ( depthBiasClamp == rhs.depthBiasClamp ) && ( fillModeNonSolid == rhs.fillModeNonSolid ) &&
  18703. ( depthBounds == rhs.depthBounds ) && ( wideLines == rhs.wideLines ) && ( largePoints == rhs.largePoints ) && ( alphaToOne == rhs.alphaToOne ) &&
  18704. ( multiViewport == rhs.multiViewport ) && ( samplerAnisotropy == rhs.samplerAnisotropy ) &&
  18705. ( textureCompressionETC2 == rhs.textureCompressionETC2 ) && ( textureCompressionASTC_LDR == rhs.textureCompressionASTC_LDR ) &&
  18706. ( textureCompressionBC == rhs.textureCompressionBC ) && ( occlusionQueryPrecise == rhs.occlusionQueryPrecise ) &&
  18707. ( pipelineStatisticsQuery == rhs.pipelineStatisticsQuery ) && ( vertexPipelineStoresAndAtomics == rhs.vertexPipelineStoresAndAtomics ) &&
  18708. ( fragmentStoresAndAtomics == rhs.fragmentStoresAndAtomics ) &&
  18709. ( shaderTessellationAndGeometryPointSize == rhs.shaderTessellationAndGeometryPointSize ) &&
  18710. ( shaderImageGatherExtended == rhs.shaderImageGatherExtended ) && ( shaderStorageImageExtendedFormats == rhs.shaderStorageImageExtendedFormats ) &&
  18711. ( shaderStorageImageMultisample == rhs.shaderStorageImageMultisample ) &&
  18712. ( shaderStorageImageReadWithoutFormat == rhs.shaderStorageImageReadWithoutFormat ) &&
  18713. ( shaderStorageImageWriteWithoutFormat == rhs.shaderStorageImageWriteWithoutFormat ) &&
  18714. ( shaderUniformBufferArrayDynamicIndexing == rhs.shaderUniformBufferArrayDynamicIndexing ) &&
  18715. ( shaderSampledImageArrayDynamicIndexing == rhs.shaderSampledImageArrayDynamicIndexing ) &&
  18716. ( shaderStorageBufferArrayDynamicIndexing == rhs.shaderStorageBufferArrayDynamicIndexing ) &&
  18717. ( shaderStorageImageArrayDynamicIndexing == rhs.shaderStorageImageArrayDynamicIndexing ) && ( shaderClipDistance == rhs.shaderClipDistance ) &&
  18718. ( shaderCullDistance == rhs.shaderCullDistance ) && ( shaderFloat64 == rhs.shaderFloat64 ) && ( shaderInt64 == rhs.shaderInt64 ) &&
  18719. ( shaderInt16 == rhs.shaderInt16 ) && ( shaderResourceResidency == rhs.shaderResourceResidency ) &&
  18720. ( shaderResourceMinLod == rhs.shaderResourceMinLod ) && ( sparseBinding == rhs.sparseBinding ) &&
  18721. ( sparseResidencyBuffer == rhs.sparseResidencyBuffer ) && ( sparseResidencyImage2D == rhs.sparseResidencyImage2D ) &&
  18722. ( sparseResidencyImage3D == rhs.sparseResidencyImage3D ) && ( sparseResidency2Samples == rhs.sparseResidency2Samples ) &&
  18723. ( sparseResidency4Samples == rhs.sparseResidency4Samples ) && ( sparseResidency8Samples == rhs.sparseResidency8Samples ) &&
  18724. ( sparseResidency16Samples == rhs.sparseResidency16Samples ) && ( sparseResidencyAliased == rhs.sparseResidencyAliased ) &&
  18725. ( variableMultisampleRate == rhs.variableMultisampleRate ) && ( inheritedQueries == rhs.inheritedQueries );
  18726. # endif
  18727. }
  18728. bool operator!=( PhysicalDeviceFeatures const & rhs ) const VULKAN_HPP_NOEXCEPT
  18729. {
  18730. return !operator==( rhs );
  18731. }
  18732. #endif
  18733. public:
  18734. VULKAN_HPP_NAMESPACE::Bool32 robustBufferAccess = {};
  18735. VULKAN_HPP_NAMESPACE::Bool32 fullDrawIndexUint32 = {};
  18736. VULKAN_HPP_NAMESPACE::Bool32 imageCubeArray = {};
  18737. VULKAN_HPP_NAMESPACE::Bool32 independentBlend = {};
  18738. VULKAN_HPP_NAMESPACE::Bool32 geometryShader = {};
  18739. VULKAN_HPP_NAMESPACE::Bool32 tessellationShader = {};
  18740. VULKAN_HPP_NAMESPACE::Bool32 sampleRateShading = {};
  18741. VULKAN_HPP_NAMESPACE::Bool32 dualSrcBlend = {};
  18742. VULKAN_HPP_NAMESPACE::Bool32 logicOp = {};
  18743. VULKAN_HPP_NAMESPACE::Bool32 multiDrawIndirect = {};
  18744. VULKAN_HPP_NAMESPACE::Bool32 drawIndirectFirstInstance = {};
  18745. VULKAN_HPP_NAMESPACE::Bool32 depthClamp = {};
  18746. VULKAN_HPP_NAMESPACE::Bool32 depthBiasClamp = {};
  18747. VULKAN_HPP_NAMESPACE::Bool32 fillModeNonSolid = {};
  18748. VULKAN_HPP_NAMESPACE::Bool32 depthBounds = {};
  18749. VULKAN_HPP_NAMESPACE::Bool32 wideLines = {};
  18750. VULKAN_HPP_NAMESPACE::Bool32 largePoints = {};
  18751. VULKAN_HPP_NAMESPACE::Bool32 alphaToOne = {};
  18752. VULKAN_HPP_NAMESPACE::Bool32 multiViewport = {};
  18753. VULKAN_HPP_NAMESPACE::Bool32 samplerAnisotropy = {};
  18754. VULKAN_HPP_NAMESPACE::Bool32 textureCompressionETC2 = {};
  18755. VULKAN_HPP_NAMESPACE::Bool32 textureCompressionASTC_LDR = {};
  18756. VULKAN_HPP_NAMESPACE::Bool32 textureCompressionBC = {};
  18757. VULKAN_HPP_NAMESPACE::Bool32 occlusionQueryPrecise = {};
  18758. VULKAN_HPP_NAMESPACE::Bool32 pipelineStatisticsQuery = {};
  18759. VULKAN_HPP_NAMESPACE::Bool32 vertexPipelineStoresAndAtomics = {};
  18760. VULKAN_HPP_NAMESPACE::Bool32 fragmentStoresAndAtomics = {};
  18761. VULKAN_HPP_NAMESPACE::Bool32 shaderTessellationAndGeometryPointSize = {};
  18762. VULKAN_HPP_NAMESPACE::Bool32 shaderImageGatherExtended = {};
  18763. VULKAN_HPP_NAMESPACE::Bool32 shaderStorageImageExtendedFormats = {};
  18764. VULKAN_HPP_NAMESPACE::Bool32 shaderStorageImageMultisample = {};
  18765. VULKAN_HPP_NAMESPACE::Bool32 shaderStorageImageReadWithoutFormat = {};
  18766. VULKAN_HPP_NAMESPACE::Bool32 shaderStorageImageWriteWithoutFormat = {};
  18767. VULKAN_HPP_NAMESPACE::Bool32 shaderUniformBufferArrayDynamicIndexing = {};
  18768. VULKAN_HPP_NAMESPACE::Bool32 shaderSampledImageArrayDynamicIndexing = {};
  18769. VULKAN_HPP_NAMESPACE::Bool32 shaderStorageBufferArrayDynamicIndexing = {};
  18770. VULKAN_HPP_NAMESPACE::Bool32 shaderStorageImageArrayDynamicIndexing = {};
  18771. VULKAN_HPP_NAMESPACE::Bool32 shaderClipDistance = {};
  18772. VULKAN_HPP_NAMESPACE::Bool32 shaderCullDistance = {};
  18773. VULKAN_HPP_NAMESPACE::Bool32 shaderFloat64 = {};
  18774. VULKAN_HPP_NAMESPACE::Bool32 shaderInt64 = {};
  18775. VULKAN_HPP_NAMESPACE::Bool32 shaderInt16 = {};
  18776. VULKAN_HPP_NAMESPACE::Bool32 shaderResourceResidency = {};
  18777. VULKAN_HPP_NAMESPACE::Bool32 shaderResourceMinLod = {};
  18778. VULKAN_HPP_NAMESPACE::Bool32 sparseBinding = {};
  18779. VULKAN_HPP_NAMESPACE::Bool32 sparseResidencyBuffer = {};
  18780. VULKAN_HPP_NAMESPACE::Bool32 sparseResidencyImage2D = {};
  18781. VULKAN_HPP_NAMESPACE::Bool32 sparseResidencyImage3D = {};
  18782. VULKAN_HPP_NAMESPACE::Bool32 sparseResidency2Samples = {};
  18783. VULKAN_HPP_NAMESPACE::Bool32 sparseResidency4Samples = {};
  18784. VULKAN_HPP_NAMESPACE::Bool32 sparseResidency8Samples = {};
  18785. VULKAN_HPP_NAMESPACE::Bool32 sparseResidency16Samples = {};
  18786. VULKAN_HPP_NAMESPACE::Bool32 sparseResidencyAliased = {};
  18787. VULKAN_HPP_NAMESPACE::Bool32 variableMultisampleRate = {};
  18788. VULKAN_HPP_NAMESPACE::Bool32 inheritedQueries = {};
  18789. };
  18790. struct DeviceCreateInfo
  18791. {
  18792. using NativeType = VkDeviceCreateInfo;
  18793. static const bool allowDuplicate = false;
  18794. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDeviceCreateInfo;
  18795. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  18796. VULKAN_HPP_CONSTEXPR DeviceCreateInfo( VULKAN_HPP_NAMESPACE::DeviceCreateFlags flags_ = {},
  18797. uint32_t queueCreateInfoCount_ = {},
  18798. const VULKAN_HPP_NAMESPACE::DeviceQueueCreateInfo * pQueueCreateInfos_ = {},
  18799. uint32_t enabledLayerCount_ = {},
  18800. const char * const * ppEnabledLayerNames_ = {},
  18801. uint32_t enabledExtensionCount_ = {},
  18802. const char * const * ppEnabledExtensionNames_ = {},
  18803. const VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures * pEnabledFeatures_ = {},
  18804. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  18805. : pNext( pNext_ )
  18806. , flags( flags_ )
  18807. , queueCreateInfoCount( queueCreateInfoCount_ )
  18808. , pQueueCreateInfos( pQueueCreateInfos_ )
  18809. , enabledLayerCount( enabledLayerCount_ )
  18810. , ppEnabledLayerNames( ppEnabledLayerNames_ )
  18811. , enabledExtensionCount( enabledExtensionCount_ )
  18812. , ppEnabledExtensionNames( ppEnabledExtensionNames_ )
  18813. , pEnabledFeatures( pEnabledFeatures_ )
  18814. {
  18815. }
  18816. VULKAN_HPP_CONSTEXPR DeviceCreateInfo( DeviceCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  18817. DeviceCreateInfo( VkDeviceCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT : DeviceCreateInfo( *reinterpret_cast<DeviceCreateInfo const *>( &rhs ) ) {}
  18818. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  18819. DeviceCreateInfo( VULKAN_HPP_NAMESPACE::DeviceCreateFlags flags_,
  18820. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::DeviceQueueCreateInfo> const & queueCreateInfos_,
  18821. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const char * const> const & pEnabledLayerNames_ = {},
  18822. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const char * const> const & pEnabledExtensionNames_ = {},
  18823. const VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures * pEnabledFeatures_ = {},
  18824. const void * pNext_ = nullptr )
  18825. : pNext( pNext_ )
  18826. , flags( flags_ )
  18827. , queueCreateInfoCount( static_cast<uint32_t>( queueCreateInfos_.size() ) )
  18828. , pQueueCreateInfos( queueCreateInfos_.data() )
  18829. , enabledLayerCount( static_cast<uint32_t>( pEnabledLayerNames_.size() ) )
  18830. , ppEnabledLayerNames( pEnabledLayerNames_.data() )
  18831. , enabledExtensionCount( static_cast<uint32_t>( pEnabledExtensionNames_.size() ) )
  18832. , ppEnabledExtensionNames( pEnabledExtensionNames_.data() )
  18833. , pEnabledFeatures( pEnabledFeatures_ )
  18834. {
  18835. }
  18836. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  18837. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  18838. DeviceCreateInfo & operator=( DeviceCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  18839. DeviceCreateInfo & operator=( VkDeviceCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
  18840. {
  18841. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DeviceCreateInfo const *>( &rhs );
  18842. return *this;
  18843. }
  18844. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  18845. VULKAN_HPP_CONSTEXPR_14 DeviceCreateInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  18846. {
  18847. pNext = pNext_;
  18848. return *this;
  18849. }
  18850. VULKAN_HPP_CONSTEXPR_14 DeviceCreateInfo & setFlags( VULKAN_HPP_NAMESPACE::DeviceCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT
  18851. {
  18852. flags = flags_;
  18853. return *this;
  18854. }
  18855. VULKAN_HPP_CONSTEXPR_14 DeviceCreateInfo & setQueueCreateInfoCount( uint32_t queueCreateInfoCount_ ) VULKAN_HPP_NOEXCEPT
  18856. {
  18857. queueCreateInfoCount = queueCreateInfoCount_;
  18858. return *this;
  18859. }
  18860. VULKAN_HPP_CONSTEXPR_14 DeviceCreateInfo &
  18861. setPQueueCreateInfos( const VULKAN_HPP_NAMESPACE::DeviceQueueCreateInfo * pQueueCreateInfos_ ) VULKAN_HPP_NOEXCEPT
  18862. {
  18863. pQueueCreateInfos = pQueueCreateInfos_;
  18864. return *this;
  18865. }
  18866. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  18867. DeviceCreateInfo & setQueueCreateInfos(
  18868. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::DeviceQueueCreateInfo> const & queueCreateInfos_ ) VULKAN_HPP_NOEXCEPT
  18869. {
  18870. queueCreateInfoCount = static_cast<uint32_t>( queueCreateInfos_.size() );
  18871. pQueueCreateInfos = queueCreateInfos_.data();
  18872. return *this;
  18873. }
  18874. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  18875. VULKAN_HPP_CONSTEXPR_14 DeviceCreateInfo & setEnabledLayerCount( uint32_t enabledLayerCount_ ) VULKAN_HPP_NOEXCEPT
  18876. {
  18877. enabledLayerCount = enabledLayerCount_;
  18878. return *this;
  18879. }
  18880. VULKAN_HPP_CONSTEXPR_14 DeviceCreateInfo & setPpEnabledLayerNames( const char * const * ppEnabledLayerNames_ ) VULKAN_HPP_NOEXCEPT
  18881. {
  18882. ppEnabledLayerNames = ppEnabledLayerNames_;
  18883. return *this;
  18884. }
  18885. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  18886. DeviceCreateInfo &
  18887. setPEnabledLayerNames( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const char * const> const & pEnabledLayerNames_ ) VULKAN_HPP_NOEXCEPT
  18888. {
  18889. enabledLayerCount = static_cast<uint32_t>( pEnabledLayerNames_.size() );
  18890. ppEnabledLayerNames = pEnabledLayerNames_.data();
  18891. return *this;
  18892. }
  18893. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  18894. VULKAN_HPP_CONSTEXPR_14 DeviceCreateInfo & setEnabledExtensionCount( uint32_t enabledExtensionCount_ ) VULKAN_HPP_NOEXCEPT
  18895. {
  18896. enabledExtensionCount = enabledExtensionCount_;
  18897. return *this;
  18898. }
  18899. VULKAN_HPP_CONSTEXPR_14 DeviceCreateInfo & setPpEnabledExtensionNames( const char * const * ppEnabledExtensionNames_ ) VULKAN_HPP_NOEXCEPT
  18900. {
  18901. ppEnabledExtensionNames = ppEnabledExtensionNames_;
  18902. return *this;
  18903. }
  18904. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  18905. DeviceCreateInfo &
  18906. setPEnabledExtensionNames( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const char * const> const & pEnabledExtensionNames_ ) VULKAN_HPP_NOEXCEPT
  18907. {
  18908. enabledExtensionCount = static_cast<uint32_t>( pEnabledExtensionNames_.size() );
  18909. ppEnabledExtensionNames = pEnabledExtensionNames_.data();
  18910. return *this;
  18911. }
  18912. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  18913. VULKAN_HPP_CONSTEXPR_14 DeviceCreateInfo & setPEnabledFeatures( const VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures * pEnabledFeatures_ ) VULKAN_HPP_NOEXCEPT
  18914. {
  18915. pEnabledFeatures = pEnabledFeatures_;
  18916. return *this;
  18917. }
  18918. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  18919. operator VkDeviceCreateInfo const &() const VULKAN_HPP_NOEXCEPT
  18920. {
  18921. return *reinterpret_cast<const VkDeviceCreateInfo *>( this );
  18922. }
  18923. operator VkDeviceCreateInfo &() VULKAN_HPP_NOEXCEPT
  18924. {
  18925. return *reinterpret_cast<VkDeviceCreateInfo *>( this );
  18926. }
  18927. #if defined( VULKAN_HPP_USE_REFLECT )
  18928. # if 14 <= VULKAN_HPP_CPP_VERSION
  18929. auto
  18930. # else
  18931. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  18932. const void * const &,
  18933. VULKAN_HPP_NAMESPACE::DeviceCreateFlags const &,
  18934. uint32_t const &,
  18935. const VULKAN_HPP_NAMESPACE::DeviceQueueCreateInfo * const &,
  18936. uint32_t const &,
  18937. const char * const * const &,
  18938. uint32_t const &,
  18939. const char * const * const &,
  18940. const VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures * const &>
  18941. # endif
  18942. reflect() const VULKAN_HPP_NOEXCEPT
  18943. {
  18944. return std::tie( sType,
  18945. pNext,
  18946. flags,
  18947. queueCreateInfoCount,
  18948. pQueueCreateInfos,
  18949. enabledLayerCount,
  18950. ppEnabledLayerNames,
  18951. enabledExtensionCount,
  18952. ppEnabledExtensionNames,
  18953. pEnabledFeatures );
  18954. }
  18955. #endif
  18956. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  18957. std::strong_ordering operator<=>( DeviceCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  18958. {
  18959. if ( auto cmp = sType <=> rhs.sType; cmp != 0 )
  18960. return cmp;
  18961. if ( auto cmp = pNext <=> rhs.pNext; cmp != 0 )
  18962. return cmp;
  18963. if ( auto cmp = flags <=> rhs.flags; cmp != 0 )
  18964. return cmp;
  18965. if ( auto cmp = queueCreateInfoCount <=> rhs.queueCreateInfoCount; cmp != 0 )
  18966. return cmp;
  18967. if ( auto cmp = pQueueCreateInfos <=> rhs.pQueueCreateInfos; cmp != 0 )
  18968. return cmp;
  18969. if ( auto cmp = enabledLayerCount <=> rhs.enabledLayerCount; cmp != 0 )
  18970. return cmp;
  18971. for ( size_t i = 0; i < enabledLayerCount; ++i )
  18972. {
  18973. if ( ppEnabledLayerNames[i] != rhs.ppEnabledLayerNames[i] )
  18974. if ( auto cmp = strcmp( ppEnabledLayerNames[i], rhs.ppEnabledLayerNames[i] ); cmp != 0 )
  18975. return cmp < 0 ? std::strong_ordering::less : std::strong_ordering::greater;
  18976. }
  18977. if ( auto cmp = enabledExtensionCount <=> rhs.enabledExtensionCount; cmp != 0 )
  18978. return cmp;
  18979. for ( size_t i = 0; i < enabledExtensionCount; ++i )
  18980. {
  18981. if ( ppEnabledExtensionNames[i] != rhs.ppEnabledExtensionNames[i] )
  18982. if ( auto cmp = strcmp( ppEnabledExtensionNames[i], rhs.ppEnabledExtensionNames[i] ); cmp != 0 )
  18983. return cmp < 0 ? std::strong_ordering::less : std::strong_ordering::greater;
  18984. }
  18985. if ( auto cmp = pEnabledFeatures <=> rhs.pEnabledFeatures; cmp != 0 )
  18986. return cmp;
  18987. return std::strong_ordering::equivalent;
  18988. }
  18989. #endif
  18990. bool operator==( DeviceCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  18991. {
  18992. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( flags == rhs.flags ) && ( queueCreateInfoCount == rhs.queueCreateInfoCount ) &&
  18993. ( pQueueCreateInfos == rhs.pQueueCreateInfos ) && ( enabledLayerCount == rhs.enabledLayerCount ) &&
  18994. [this, rhs]
  18995. {
  18996. bool equal = true;
  18997. for ( size_t i = 0; equal && ( i < enabledLayerCount ); ++i )
  18998. {
  18999. equal = ( ( ppEnabledLayerNames[i] == rhs.ppEnabledLayerNames[i] ) || ( strcmp( ppEnabledLayerNames[i], rhs.ppEnabledLayerNames[i] ) == 0 ) );
  19000. }
  19001. return equal;
  19002. }() && ( enabledExtensionCount == rhs.enabledExtensionCount ) &&
  19003. [this, rhs]
  19004. {
  19005. bool equal = true;
  19006. for ( size_t i = 0; equal && ( i < enabledExtensionCount ); ++i )
  19007. {
  19008. equal = ( ( ppEnabledExtensionNames[i] == rhs.ppEnabledExtensionNames[i] ) ||
  19009. ( strcmp( ppEnabledExtensionNames[i], rhs.ppEnabledExtensionNames[i] ) == 0 ) );
  19010. }
  19011. return equal;
  19012. }() && ( pEnabledFeatures == rhs.pEnabledFeatures );
  19013. }
  19014. bool operator!=( DeviceCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  19015. {
  19016. return !operator==( rhs );
  19017. }
  19018. public:
  19019. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDeviceCreateInfo;
  19020. const void * pNext = {};
  19021. VULKAN_HPP_NAMESPACE::DeviceCreateFlags flags = {};
  19022. uint32_t queueCreateInfoCount = {};
  19023. const VULKAN_HPP_NAMESPACE::DeviceQueueCreateInfo * pQueueCreateInfos = {};
  19024. uint32_t enabledLayerCount = {};
  19025. const char * const * ppEnabledLayerNames = {};
  19026. uint32_t enabledExtensionCount = {};
  19027. const char * const * ppEnabledExtensionNames = {};
  19028. const VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures * pEnabledFeatures = {};
  19029. };
  19030. template <>
  19031. struct CppType<StructureType, StructureType::eDeviceCreateInfo>
  19032. {
  19033. using Type = DeviceCreateInfo;
  19034. };
  19035. struct DeviceDeviceMemoryReportCreateInfoEXT
  19036. {
  19037. using NativeType = VkDeviceDeviceMemoryReportCreateInfoEXT;
  19038. static const bool allowDuplicate = true;
  19039. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDeviceDeviceMemoryReportCreateInfoEXT;
  19040. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  19041. VULKAN_HPP_CONSTEXPR DeviceDeviceMemoryReportCreateInfoEXT( VULKAN_HPP_NAMESPACE::DeviceMemoryReportFlagsEXT flags_ = {},
  19042. PFN_vkDeviceMemoryReportCallbackEXT pfnUserCallback_ = {},
  19043. void * pUserData_ = {},
  19044. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  19045. : pNext( pNext_ )
  19046. , flags( flags_ )
  19047. , pfnUserCallback( pfnUserCallback_ )
  19048. , pUserData( pUserData_ )
  19049. {
  19050. }
  19051. VULKAN_HPP_CONSTEXPR DeviceDeviceMemoryReportCreateInfoEXT( DeviceDeviceMemoryReportCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  19052. DeviceDeviceMemoryReportCreateInfoEXT( VkDeviceDeviceMemoryReportCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  19053. : DeviceDeviceMemoryReportCreateInfoEXT( *reinterpret_cast<DeviceDeviceMemoryReportCreateInfoEXT const *>( &rhs ) )
  19054. {
  19055. }
  19056. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  19057. DeviceDeviceMemoryReportCreateInfoEXT & operator=( DeviceDeviceMemoryReportCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  19058. DeviceDeviceMemoryReportCreateInfoEXT & operator=( VkDeviceDeviceMemoryReportCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  19059. {
  19060. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DeviceDeviceMemoryReportCreateInfoEXT const *>( &rhs );
  19061. return *this;
  19062. }
  19063. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  19064. VULKAN_HPP_CONSTEXPR_14 DeviceDeviceMemoryReportCreateInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  19065. {
  19066. pNext = pNext_;
  19067. return *this;
  19068. }
  19069. VULKAN_HPP_CONSTEXPR_14 DeviceDeviceMemoryReportCreateInfoEXT & setFlags( VULKAN_HPP_NAMESPACE::DeviceMemoryReportFlagsEXT flags_ ) VULKAN_HPP_NOEXCEPT
  19070. {
  19071. flags = flags_;
  19072. return *this;
  19073. }
  19074. VULKAN_HPP_CONSTEXPR_14 DeviceDeviceMemoryReportCreateInfoEXT &
  19075. setPfnUserCallback( PFN_vkDeviceMemoryReportCallbackEXT pfnUserCallback_ ) VULKAN_HPP_NOEXCEPT
  19076. {
  19077. pfnUserCallback = pfnUserCallback_;
  19078. return *this;
  19079. }
  19080. VULKAN_HPP_CONSTEXPR_14 DeviceDeviceMemoryReportCreateInfoEXT & setPUserData( void * pUserData_ ) VULKAN_HPP_NOEXCEPT
  19081. {
  19082. pUserData = pUserData_;
  19083. return *this;
  19084. }
  19085. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  19086. operator VkDeviceDeviceMemoryReportCreateInfoEXT const &() const VULKAN_HPP_NOEXCEPT
  19087. {
  19088. return *reinterpret_cast<const VkDeviceDeviceMemoryReportCreateInfoEXT *>( this );
  19089. }
  19090. operator VkDeviceDeviceMemoryReportCreateInfoEXT &() VULKAN_HPP_NOEXCEPT
  19091. {
  19092. return *reinterpret_cast<VkDeviceDeviceMemoryReportCreateInfoEXT *>( this );
  19093. }
  19094. #if defined( VULKAN_HPP_USE_REFLECT )
  19095. # if 14 <= VULKAN_HPP_CPP_VERSION
  19096. auto
  19097. # else
  19098. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  19099. const void * const &,
  19100. VULKAN_HPP_NAMESPACE::DeviceMemoryReportFlagsEXT const &,
  19101. PFN_vkDeviceMemoryReportCallbackEXT const &,
  19102. void * const &>
  19103. # endif
  19104. reflect() const VULKAN_HPP_NOEXCEPT
  19105. {
  19106. return std::tie( sType, pNext, flags, pfnUserCallback, pUserData );
  19107. }
  19108. #endif
  19109. bool operator==( DeviceDeviceMemoryReportCreateInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  19110. {
  19111. #if defined( VULKAN_HPP_USE_REFLECT )
  19112. return this->reflect() == rhs.reflect();
  19113. #else
  19114. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( flags == rhs.flags ) && ( pfnUserCallback == rhs.pfnUserCallback ) &&
  19115. ( pUserData == rhs.pUserData );
  19116. #endif
  19117. }
  19118. bool operator!=( DeviceDeviceMemoryReportCreateInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  19119. {
  19120. return !operator==( rhs );
  19121. }
  19122. public:
  19123. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDeviceDeviceMemoryReportCreateInfoEXT;
  19124. const void * pNext = {};
  19125. VULKAN_HPP_NAMESPACE::DeviceMemoryReportFlagsEXT flags = {};
  19126. PFN_vkDeviceMemoryReportCallbackEXT pfnUserCallback = {};
  19127. void * pUserData = {};
  19128. };
  19129. template <>
  19130. struct CppType<StructureType, StructureType::eDeviceDeviceMemoryReportCreateInfoEXT>
  19131. {
  19132. using Type = DeviceDeviceMemoryReportCreateInfoEXT;
  19133. };
  19134. struct DeviceDiagnosticsConfigCreateInfoNV
  19135. {
  19136. using NativeType = VkDeviceDiagnosticsConfigCreateInfoNV;
  19137. static const bool allowDuplicate = false;
  19138. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDeviceDiagnosticsConfigCreateInfoNV;
  19139. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  19140. VULKAN_HPP_CONSTEXPR DeviceDiagnosticsConfigCreateInfoNV( VULKAN_HPP_NAMESPACE::DeviceDiagnosticsConfigFlagsNV flags_ = {},
  19141. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  19142. : pNext( pNext_ )
  19143. , flags( flags_ )
  19144. {
  19145. }
  19146. VULKAN_HPP_CONSTEXPR DeviceDiagnosticsConfigCreateInfoNV( DeviceDiagnosticsConfigCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  19147. DeviceDiagnosticsConfigCreateInfoNV( VkDeviceDiagnosticsConfigCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
  19148. : DeviceDiagnosticsConfigCreateInfoNV( *reinterpret_cast<DeviceDiagnosticsConfigCreateInfoNV const *>( &rhs ) )
  19149. {
  19150. }
  19151. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  19152. DeviceDiagnosticsConfigCreateInfoNV & operator=( DeviceDiagnosticsConfigCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  19153. DeviceDiagnosticsConfigCreateInfoNV & operator=( VkDeviceDiagnosticsConfigCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
  19154. {
  19155. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DeviceDiagnosticsConfigCreateInfoNV const *>( &rhs );
  19156. return *this;
  19157. }
  19158. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  19159. VULKAN_HPP_CONSTEXPR_14 DeviceDiagnosticsConfigCreateInfoNV & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  19160. {
  19161. pNext = pNext_;
  19162. return *this;
  19163. }
  19164. VULKAN_HPP_CONSTEXPR_14 DeviceDiagnosticsConfigCreateInfoNV & setFlags( VULKAN_HPP_NAMESPACE::DeviceDiagnosticsConfigFlagsNV flags_ ) VULKAN_HPP_NOEXCEPT
  19165. {
  19166. flags = flags_;
  19167. return *this;
  19168. }
  19169. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  19170. operator VkDeviceDiagnosticsConfigCreateInfoNV const &() const VULKAN_HPP_NOEXCEPT
  19171. {
  19172. return *reinterpret_cast<const VkDeviceDiagnosticsConfigCreateInfoNV *>( this );
  19173. }
  19174. operator VkDeviceDiagnosticsConfigCreateInfoNV &() VULKAN_HPP_NOEXCEPT
  19175. {
  19176. return *reinterpret_cast<VkDeviceDiagnosticsConfigCreateInfoNV *>( this );
  19177. }
  19178. #if defined( VULKAN_HPP_USE_REFLECT )
  19179. # if 14 <= VULKAN_HPP_CPP_VERSION
  19180. auto
  19181. # else
  19182. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::DeviceDiagnosticsConfigFlagsNV const &>
  19183. # endif
  19184. reflect() const VULKAN_HPP_NOEXCEPT
  19185. {
  19186. return std::tie( sType, pNext, flags );
  19187. }
  19188. #endif
  19189. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  19190. auto operator<=>( DeviceDiagnosticsConfigCreateInfoNV const & ) const = default;
  19191. #else
  19192. bool operator==( DeviceDiagnosticsConfigCreateInfoNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  19193. {
  19194. # if defined( VULKAN_HPP_USE_REFLECT )
  19195. return this->reflect() == rhs.reflect();
  19196. # else
  19197. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( flags == rhs.flags );
  19198. # endif
  19199. }
  19200. bool operator!=( DeviceDiagnosticsConfigCreateInfoNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  19201. {
  19202. return !operator==( rhs );
  19203. }
  19204. #endif
  19205. public:
  19206. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDeviceDiagnosticsConfigCreateInfoNV;
  19207. const void * pNext = {};
  19208. VULKAN_HPP_NAMESPACE::DeviceDiagnosticsConfigFlagsNV flags = {};
  19209. };
  19210. template <>
  19211. struct CppType<StructureType, StructureType::eDeviceDiagnosticsConfigCreateInfoNV>
  19212. {
  19213. using Type = DeviceDiagnosticsConfigCreateInfoNV;
  19214. };
  19215. struct DeviceEventInfoEXT
  19216. {
  19217. using NativeType = VkDeviceEventInfoEXT;
  19218. static const bool allowDuplicate = false;
  19219. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDeviceEventInfoEXT;
  19220. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  19221. VULKAN_HPP_CONSTEXPR DeviceEventInfoEXT( VULKAN_HPP_NAMESPACE::DeviceEventTypeEXT deviceEvent_ = VULKAN_HPP_NAMESPACE::DeviceEventTypeEXT::eDisplayHotplug,
  19222. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  19223. : pNext( pNext_ )
  19224. , deviceEvent( deviceEvent_ )
  19225. {
  19226. }
  19227. VULKAN_HPP_CONSTEXPR DeviceEventInfoEXT( DeviceEventInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  19228. DeviceEventInfoEXT( VkDeviceEventInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT : DeviceEventInfoEXT( *reinterpret_cast<DeviceEventInfoEXT const *>( &rhs ) ) {}
  19229. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  19230. DeviceEventInfoEXT & operator=( DeviceEventInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  19231. DeviceEventInfoEXT & operator=( VkDeviceEventInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  19232. {
  19233. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DeviceEventInfoEXT const *>( &rhs );
  19234. return *this;
  19235. }
  19236. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  19237. VULKAN_HPP_CONSTEXPR_14 DeviceEventInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  19238. {
  19239. pNext = pNext_;
  19240. return *this;
  19241. }
  19242. VULKAN_HPP_CONSTEXPR_14 DeviceEventInfoEXT & setDeviceEvent( VULKAN_HPP_NAMESPACE::DeviceEventTypeEXT deviceEvent_ ) VULKAN_HPP_NOEXCEPT
  19243. {
  19244. deviceEvent = deviceEvent_;
  19245. return *this;
  19246. }
  19247. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  19248. operator VkDeviceEventInfoEXT const &() const VULKAN_HPP_NOEXCEPT
  19249. {
  19250. return *reinterpret_cast<const VkDeviceEventInfoEXT *>( this );
  19251. }
  19252. operator VkDeviceEventInfoEXT &() VULKAN_HPP_NOEXCEPT
  19253. {
  19254. return *reinterpret_cast<VkDeviceEventInfoEXT *>( this );
  19255. }
  19256. #if defined( VULKAN_HPP_USE_REFLECT )
  19257. # if 14 <= VULKAN_HPP_CPP_VERSION
  19258. auto
  19259. # else
  19260. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::DeviceEventTypeEXT const &>
  19261. # endif
  19262. reflect() const VULKAN_HPP_NOEXCEPT
  19263. {
  19264. return std::tie( sType, pNext, deviceEvent );
  19265. }
  19266. #endif
  19267. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  19268. auto operator<=>( DeviceEventInfoEXT const & ) const = default;
  19269. #else
  19270. bool operator==( DeviceEventInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  19271. {
  19272. # if defined( VULKAN_HPP_USE_REFLECT )
  19273. return this->reflect() == rhs.reflect();
  19274. # else
  19275. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( deviceEvent == rhs.deviceEvent );
  19276. # endif
  19277. }
  19278. bool operator!=( DeviceEventInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  19279. {
  19280. return !operator==( rhs );
  19281. }
  19282. #endif
  19283. public:
  19284. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDeviceEventInfoEXT;
  19285. const void * pNext = {};
  19286. VULKAN_HPP_NAMESPACE::DeviceEventTypeEXT deviceEvent = VULKAN_HPP_NAMESPACE::DeviceEventTypeEXT::eDisplayHotplug;
  19287. };
  19288. template <>
  19289. struct CppType<StructureType, StructureType::eDeviceEventInfoEXT>
  19290. {
  19291. using Type = DeviceEventInfoEXT;
  19292. };
  19293. struct DeviceGroupBindSparseInfo
  19294. {
  19295. using NativeType = VkDeviceGroupBindSparseInfo;
  19296. static const bool allowDuplicate = false;
  19297. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDeviceGroupBindSparseInfo;
  19298. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  19299. VULKAN_HPP_CONSTEXPR
  19300. DeviceGroupBindSparseInfo( uint32_t resourceDeviceIndex_ = {}, uint32_t memoryDeviceIndex_ = {}, const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  19301. : pNext( pNext_ )
  19302. , resourceDeviceIndex( resourceDeviceIndex_ )
  19303. , memoryDeviceIndex( memoryDeviceIndex_ )
  19304. {
  19305. }
  19306. VULKAN_HPP_CONSTEXPR DeviceGroupBindSparseInfo( DeviceGroupBindSparseInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  19307. DeviceGroupBindSparseInfo( VkDeviceGroupBindSparseInfo const & rhs ) VULKAN_HPP_NOEXCEPT
  19308. : DeviceGroupBindSparseInfo( *reinterpret_cast<DeviceGroupBindSparseInfo const *>( &rhs ) )
  19309. {
  19310. }
  19311. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  19312. DeviceGroupBindSparseInfo & operator=( DeviceGroupBindSparseInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  19313. DeviceGroupBindSparseInfo & operator=( VkDeviceGroupBindSparseInfo const & rhs ) VULKAN_HPP_NOEXCEPT
  19314. {
  19315. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DeviceGroupBindSparseInfo const *>( &rhs );
  19316. return *this;
  19317. }
  19318. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  19319. VULKAN_HPP_CONSTEXPR_14 DeviceGroupBindSparseInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  19320. {
  19321. pNext = pNext_;
  19322. return *this;
  19323. }
  19324. VULKAN_HPP_CONSTEXPR_14 DeviceGroupBindSparseInfo & setResourceDeviceIndex( uint32_t resourceDeviceIndex_ ) VULKAN_HPP_NOEXCEPT
  19325. {
  19326. resourceDeviceIndex = resourceDeviceIndex_;
  19327. return *this;
  19328. }
  19329. VULKAN_HPP_CONSTEXPR_14 DeviceGroupBindSparseInfo & setMemoryDeviceIndex( uint32_t memoryDeviceIndex_ ) VULKAN_HPP_NOEXCEPT
  19330. {
  19331. memoryDeviceIndex = memoryDeviceIndex_;
  19332. return *this;
  19333. }
  19334. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  19335. operator VkDeviceGroupBindSparseInfo const &() const VULKAN_HPP_NOEXCEPT
  19336. {
  19337. return *reinterpret_cast<const VkDeviceGroupBindSparseInfo *>( this );
  19338. }
  19339. operator VkDeviceGroupBindSparseInfo &() VULKAN_HPP_NOEXCEPT
  19340. {
  19341. return *reinterpret_cast<VkDeviceGroupBindSparseInfo *>( this );
  19342. }
  19343. #if defined( VULKAN_HPP_USE_REFLECT )
  19344. # if 14 <= VULKAN_HPP_CPP_VERSION
  19345. auto
  19346. # else
  19347. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, uint32_t const &, uint32_t const &>
  19348. # endif
  19349. reflect() const VULKAN_HPP_NOEXCEPT
  19350. {
  19351. return std::tie( sType, pNext, resourceDeviceIndex, memoryDeviceIndex );
  19352. }
  19353. #endif
  19354. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  19355. auto operator<=>( DeviceGroupBindSparseInfo const & ) const = default;
  19356. #else
  19357. bool operator==( DeviceGroupBindSparseInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  19358. {
  19359. # if defined( VULKAN_HPP_USE_REFLECT )
  19360. return this->reflect() == rhs.reflect();
  19361. # else
  19362. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( resourceDeviceIndex == rhs.resourceDeviceIndex ) &&
  19363. ( memoryDeviceIndex == rhs.memoryDeviceIndex );
  19364. # endif
  19365. }
  19366. bool operator!=( DeviceGroupBindSparseInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  19367. {
  19368. return !operator==( rhs );
  19369. }
  19370. #endif
  19371. public:
  19372. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDeviceGroupBindSparseInfo;
  19373. const void * pNext = {};
  19374. uint32_t resourceDeviceIndex = {};
  19375. uint32_t memoryDeviceIndex = {};
  19376. };
  19377. template <>
  19378. struct CppType<StructureType, StructureType::eDeviceGroupBindSparseInfo>
  19379. {
  19380. using Type = DeviceGroupBindSparseInfo;
  19381. };
  19382. using DeviceGroupBindSparseInfoKHR = DeviceGroupBindSparseInfo;
  19383. struct DeviceGroupCommandBufferBeginInfo
  19384. {
  19385. using NativeType = VkDeviceGroupCommandBufferBeginInfo;
  19386. static const bool allowDuplicate = false;
  19387. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDeviceGroupCommandBufferBeginInfo;
  19388. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  19389. VULKAN_HPP_CONSTEXPR DeviceGroupCommandBufferBeginInfo( uint32_t deviceMask_ = {}, const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  19390. : pNext( pNext_ )
  19391. , deviceMask( deviceMask_ )
  19392. {
  19393. }
  19394. VULKAN_HPP_CONSTEXPR DeviceGroupCommandBufferBeginInfo( DeviceGroupCommandBufferBeginInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  19395. DeviceGroupCommandBufferBeginInfo( VkDeviceGroupCommandBufferBeginInfo const & rhs ) VULKAN_HPP_NOEXCEPT
  19396. : DeviceGroupCommandBufferBeginInfo( *reinterpret_cast<DeviceGroupCommandBufferBeginInfo const *>( &rhs ) )
  19397. {
  19398. }
  19399. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  19400. DeviceGroupCommandBufferBeginInfo & operator=( DeviceGroupCommandBufferBeginInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  19401. DeviceGroupCommandBufferBeginInfo & operator=( VkDeviceGroupCommandBufferBeginInfo const & rhs ) VULKAN_HPP_NOEXCEPT
  19402. {
  19403. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DeviceGroupCommandBufferBeginInfo const *>( &rhs );
  19404. return *this;
  19405. }
  19406. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  19407. VULKAN_HPP_CONSTEXPR_14 DeviceGroupCommandBufferBeginInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  19408. {
  19409. pNext = pNext_;
  19410. return *this;
  19411. }
  19412. VULKAN_HPP_CONSTEXPR_14 DeviceGroupCommandBufferBeginInfo & setDeviceMask( uint32_t deviceMask_ ) VULKAN_HPP_NOEXCEPT
  19413. {
  19414. deviceMask = deviceMask_;
  19415. return *this;
  19416. }
  19417. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  19418. operator VkDeviceGroupCommandBufferBeginInfo const &() const VULKAN_HPP_NOEXCEPT
  19419. {
  19420. return *reinterpret_cast<const VkDeviceGroupCommandBufferBeginInfo *>( this );
  19421. }
  19422. operator VkDeviceGroupCommandBufferBeginInfo &() VULKAN_HPP_NOEXCEPT
  19423. {
  19424. return *reinterpret_cast<VkDeviceGroupCommandBufferBeginInfo *>( this );
  19425. }
  19426. #if defined( VULKAN_HPP_USE_REFLECT )
  19427. # if 14 <= VULKAN_HPP_CPP_VERSION
  19428. auto
  19429. # else
  19430. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, uint32_t const &>
  19431. # endif
  19432. reflect() const VULKAN_HPP_NOEXCEPT
  19433. {
  19434. return std::tie( sType, pNext, deviceMask );
  19435. }
  19436. #endif
  19437. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  19438. auto operator<=>( DeviceGroupCommandBufferBeginInfo const & ) const = default;
  19439. #else
  19440. bool operator==( DeviceGroupCommandBufferBeginInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  19441. {
  19442. # if defined( VULKAN_HPP_USE_REFLECT )
  19443. return this->reflect() == rhs.reflect();
  19444. # else
  19445. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( deviceMask == rhs.deviceMask );
  19446. # endif
  19447. }
  19448. bool operator!=( DeviceGroupCommandBufferBeginInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  19449. {
  19450. return !operator==( rhs );
  19451. }
  19452. #endif
  19453. public:
  19454. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDeviceGroupCommandBufferBeginInfo;
  19455. const void * pNext = {};
  19456. uint32_t deviceMask = {};
  19457. };
  19458. template <>
  19459. struct CppType<StructureType, StructureType::eDeviceGroupCommandBufferBeginInfo>
  19460. {
  19461. using Type = DeviceGroupCommandBufferBeginInfo;
  19462. };
  19463. using DeviceGroupCommandBufferBeginInfoKHR = DeviceGroupCommandBufferBeginInfo;
  19464. struct DeviceGroupDeviceCreateInfo
  19465. {
  19466. using NativeType = VkDeviceGroupDeviceCreateInfo;
  19467. static const bool allowDuplicate = false;
  19468. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDeviceGroupDeviceCreateInfo;
  19469. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  19470. VULKAN_HPP_CONSTEXPR DeviceGroupDeviceCreateInfo( uint32_t physicalDeviceCount_ = {},
  19471. const VULKAN_HPP_NAMESPACE::PhysicalDevice * pPhysicalDevices_ = {},
  19472. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  19473. : pNext( pNext_ )
  19474. , physicalDeviceCount( physicalDeviceCount_ )
  19475. , pPhysicalDevices( pPhysicalDevices_ )
  19476. {
  19477. }
  19478. VULKAN_HPP_CONSTEXPR DeviceGroupDeviceCreateInfo( DeviceGroupDeviceCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  19479. DeviceGroupDeviceCreateInfo( VkDeviceGroupDeviceCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
  19480. : DeviceGroupDeviceCreateInfo( *reinterpret_cast<DeviceGroupDeviceCreateInfo const *>( &rhs ) )
  19481. {
  19482. }
  19483. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  19484. DeviceGroupDeviceCreateInfo( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::PhysicalDevice> const & physicalDevices_,
  19485. const void * pNext_ = nullptr )
  19486. : pNext( pNext_ ), physicalDeviceCount( static_cast<uint32_t>( physicalDevices_.size() ) ), pPhysicalDevices( physicalDevices_.data() )
  19487. {
  19488. }
  19489. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  19490. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  19491. DeviceGroupDeviceCreateInfo & operator=( DeviceGroupDeviceCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  19492. DeviceGroupDeviceCreateInfo & operator=( VkDeviceGroupDeviceCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
  19493. {
  19494. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DeviceGroupDeviceCreateInfo const *>( &rhs );
  19495. return *this;
  19496. }
  19497. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  19498. VULKAN_HPP_CONSTEXPR_14 DeviceGroupDeviceCreateInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  19499. {
  19500. pNext = pNext_;
  19501. return *this;
  19502. }
  19503. VULKAN_HPP_CONSTEXPR_14 DeviceGroupDeviceCreateInfo & setPhysicalDeviceCount( uint32_t physicalDeviceCount_ ) VULKAN_HPP_NOEXCEPT
  19504. {
  19505. physicalDeviceCount = physicalDeviceCount_;
  19506. return *this;
  19507. }
  19508. VULKAN_HPP_CONSTEXPR_14 DeviceGroupDeviceCreateInfo &
  19509. setPPhysicalDevices( const VULKAN_HPP_NAMESPACE::PhysicalDevice * pPhysicalDevices_ ) VULKAN_HPP_NOEXCEPT
  19510. {
  19511. pPhysicalDevices = pPhysicalDevices_;
  19512. return *this;
  19513. }
  19514. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  19515. DeviceGroupDeviceCreateInfo & setPhysicalDevices(
  19516. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::PhysicalDevice> const & physicalDevices_ ) VULKAN_HPP_NOEXCEPT
  19517. {
  19518. physicalDeviceCount = static_cast<uint32_t>( physicalDevices_.size() );
  19519. pPhysicalDevices = physicalDevices_.data();
  19520. return *this;
  19521. }
  19522. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  19523. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  19524. operator VkDeviceGroupDeviceCreateInfo const &() const VULKAN_HPP_NOEXCEPT
  19525. {
  19526. return *reinterpret_cast<const VkDeviceGroupDeviceCreateInfo *>( this );
  19527. }
  19528. operator VkDeviceGroupDeviceCreateInfo &() VULKAN_HPP_NOEXCEPT
  19529. {
  19530. return *reinterpret_cast<VkDeviceGroupDeviceCreateInfo *>( this );
  19531. }
  19532. #if defined( VULKAN_HPP_USE_REFLECT )
  19533. # if 14 <= VULKAN_HPP_CPP_VERSION
  19534. auto
  19535. # else
  19536. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, uint32_t const &, const VULKAN_HPP_NAMESPACE::PhysicalDevice * const &>
  19537. # endif
  19538. reflect() const VULKAN_HPP_NOEXCEPT
  19539. {
  19540. return std::tie( sType, pNext, physicalDeviceCount, pPhysicalDevices );
  19541. }
  19542. #endif
  19543. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  19544. auto operator<=>( DeviceGroupDeviceCreateInfo const & ) const = default;
  19545. #else
  19546. bool operator==( DeviceGroupDeviceCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  19547. {
  19548. # if defined( VULKAN_HPP_USE_REFLECT )
  19549. return this->reflect() == rhs.reflect();
  19550. # else
  19551. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( physicalDeviceCount == rhs.physicalDeviceCount ) &&
  19552. ( pPhysicalDevices == rhs.pPhysicalDevices );
  19553. # endif
  19554. }
  19555. bool operator!=( DeviceGroupDeviceCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  19556. {
  19557. return !operator==( rhs );
  19558. }
  19559. #endif
  19560. public:
  19561. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDeviceGroupDeviceCreateInfo;
  19562. const void * pNext = {};
  19563. uint32_t physicalDeviceCount = {};
  19564. const VULKAN_HPP_NAMESPACE::PhysicalDevice * pPhysicalDevices = {};
  19565. };
  19566. template <>
  19567. struct CppType<StructureType, StructureType::eDeviceGroupDeviceCreateInfo>
  19568. {
  19569. using Type = DeviceGroupDeviceCreateInfo;
  19570. };
  19571. using DeviceGroupDeviceCreateInfoKHR = DeviceGroupDeviceCreateInfo;
  19572. struct DeviceGroupPresentCapabilitiesKHR
  19573. {
  19574. using NativeType = VkDeviceGroupPresentCapabilitiesKHR;
  19575. static const bool allowDuplicate = false;
  19576. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDeviceGroupPresentCapabilitiesKHR;
  19577. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  19578. VULKAN_HPP_CONSTEXPR_14 DeviceGroupPresentCapabilitiesKHR( std::array<uint32_t, VK_MAX_DEVICE_GROUP_SIZE> const & presentMask_ = {},
  19579. VULKAN_HPP_NAMESPACE::DeviceGroupPresentModeFlagsKHR modes_ = {},
  19580. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  19581. : pNext( pNext_ )
  19582. , presentMask( presentMask_ )
  19583. , modes( modes_ )
  19584. {
  19585. }
  19586. VULKAN_HPP_CONSTEXPR_14 DeviceGroupPresentCapabilitiesKHR( DeviceGroupPresentCapabilitiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  19587. DeviceGroupPresentCapabilitiesKHR( VkDeviceGroupPresentCapabilitiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  19588. : DeviceGroupPresentCapabilitiesKHR( *reinterpret_cast<DeviceGroupPresentCapabilitiesKHR const *>( &rhs ) )
  19589. {
  19590. }
  19591. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  19592. DeviceGroupPresentCapabilitiesKHR & operator=( DeviceGroupPresentCapabilitiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  19593. DeviceGroupPresentCapabilitiesKHR & operator=( VkDeviceGroupPresentCapabilitiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  19594. {
  19595. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DeviceGroupPresentCapabilitiesKHR const *>( &rhs );
  19596. return *this;
  19597. }
  19598. operator VkDeviceGroupPresentCapabilitiesKHR const &() const VULKAN_HPP_NOEXCEPT
  19599. {
  19600. return *reinterpret_cast<const VkDeviceGroupPresentCapabilitiesKHR *>( this );
  19601. }
  19602. operator VkDeviceGroupPresentCapabilitiesKHR &() VULKAN_HPP_NOEXCEPT
  19603. {
  19604. return *reinterpret_cast<VkDeviceGroupPresentCapabilitiesKHR *>( this );
  19605. }
  19606. #if defined( VULKAN_HPP_USE_REFLECT )
  19607. # if 14 <= VULKAN_HPP_CPP_VERSION
  19608. auto
  19609. # else
  19610. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  19611. void * const &,
  19612. VULKAN_HPP_NAMESPACE::ArrayWrapper1D<uint32_t, VK_MAX_DEVICE_GROUP_SIZE> const &,
  19613. VULKAN_HPP_NAMESPACE::DeviceGroupPresentModeFlagsKHR const &>
  19614. # endif
  19615. reflect() const VULKAN_HPP_NOEXCEPT
  19616. {
  19617. return std::tie( sType, pNext, presentMask, modes );
  19618. }
  19619. #endif
  19620. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  19621. auto operator<=>( DeviceGroupPresentCapabilitiesKHR const & ) const = default;
  19622. #else
  19623. bool operator==( DeviceGroupPresentCapabilitiesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  19624. {
  19625. # if defined( VULKAN_HPP_USE_REFLECT )
  19626. return this->reflect() == rhs.reflect();
  19627. # else
  19628. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( presentMask == rhs.presentMask ) && ( modes == rhs.modes );
  19629. # endif
  19630. }
  19631. bool operator!=( DeviceGroupPresentCapabilitiesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  19632. {
  19633. return !operator==( rhs );
  19634. }
  19635. #endif
  19636. public:
  19637. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDeviceGroupPresentCapabilitiesKHR;
  19638. void * pNext = {};
  19639. VULKAN_HPP_NAMESPACE::ArrayWrapper1D<uint32_t, VK_MAX_DEVICE_GROUP_SIZE> presentMask = {};
  19640. VULKAN_HPP_NAMESPACE::DeviceGroupPresentModeFlagsKHR modes = {};
  19641. };
  19642. template <>
  19643. struct CppType<StructureType, StructureType::eDeviceGroupPresentCapabilitiesKHR>
  19644. {
  19645. using Type = DeviceGroupPresentCapabilitiesKHR;
  19646. };
  19647. struct DeviceGroupPresentInfoKHR
  19648. {
  19649. using NativeType = VkDeviceGroupPresentInfoKHR;
  19650. static const bool allowDuplicate = false;
  19651. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDeviceGroupPresentInfoKHR;
  19652. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  19653. VULKAN_HPP_CONSTEXPR DeviceGroupPresentInfoKHR(
  19654. uint32_t swapchainCount_ = {},
  19655. const uint32_t * pDeviceMasks_ = {},
  19656. VULKAN_HPP_NAMESPACE::DeviceGroupPresentModeFlagBitsKHR mode_ = VULKAN_HPP_NAMESPACE::DeviceGroupPresentModeFlagBitsKHR::eLocal,
  19657. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  19658. : pNext( pNext_ )
  19659. , swapchainCount( swapchainCount_ )
  19660. , pDeviceMasks( pDeviceMasks_ )
  19661. , mode( mode_ )
  19662. {
  19663. }
  19664. VULKAN_HPP_CONSTEXPR DeviceGroupPresentInfoKHR( DeviceGroupPresentInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  19665. DeviceGroupPresentInfoKHR( VkDeviceGroupPresentInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  19666. : DeviceGroupPresentInfoKHR( *reinterpret_cast<DeviceGroupPresentInfoKHR const *>( &rhs ) )
  19667. {
  19668. }
  19669. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  19670. DeviceGroupPresentInfoKHR( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint32_t> const & deviceMasks_,
  19671. VULKAN_HPP_NAMESPACE::DeviceGroupPresentModeFlagBitsKHR mode_ = VULKAN_HPP_NAMESPACE::DeviceGroupPresentModeFlagBitsKHR::eLocal,
  19672. const void * pNext_ = nullptr )
  19673. : pNext( pNext_ ), swapchainCount( static_cast<uint32_t>( deviceMasks_.size() ) ), pDeviceMasks( deviceMasks_.data() ), mode( mode_ )
  19674. {
  19675. }
  19676. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  19677. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  19678. DeviceGroupPresentInfoKHR & operator=( DeviceGroupPresentInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  19679. DeviceGroupPresentInfoKHR & operator=( VkDeviceGroupPresentInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  19680. {
  19681. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DeviceGroupPresentInfoKHR const *>( &rhs );
  19682. return *this;
  19683. }
  19684. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  19685. VULKAN_HPP_CONSTEXPR_14 DeviceGroupPresentInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  19686. {
  19687. pNext = pNext_;
  19688. return *this;
  19689. }
  19690. VULKAN_HPP_CONSTEXPR_14 DeviceGroupPresentInfoKHR & setSwapchainCount( uint32_t swapchainCount_ ) VULKAN_HPP_NOEXCEPT
  19691. {
  19692. swapchainCount = swapchainCount_;
  19693. return *this;
  19694. }
  19695. VULKAN_HPP_CONSTEXPR_14 DeviceGroupPresentInfoKHR & setPDeviceMasks( const uint32_t * pDeviceMasks_ ) VULKAN_HPP_NOEXCEPT
  19696. {
  19697. pDeviceMasks = pDeviceMasks_;
  19698. return *this;
  19699. }
  19700. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  19701. DeviceGroupPresentInfoKHR & setDeviceMasks( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint32_t> const & deviceMasks_ ) VULKAN_HPP_NOEXCEPT
  19702. {
  19703. swapchainCount = static_cast<uint32_t>( deviceMasks_.size() );
  19704. pDeviceMasks = deviceMasks_.data();
  19705. return *this;
  19706. }
  19707. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  19708. VULKAN_HPP_CONSTEXPR_14 DeviceGroupPresentInfoKHR & setMode( VULKAN_HPP_NAMESPACE::DeviceGroupPresentModeFlagBitsKHR mode_ ) VULKAN_HPP_NOEXCEPT
  19709. {
  19710. mode = mode_;
  19711. return *this;
  19712. }
  19713. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  19714. operator VkDeviceGroupPresentInfoKHR const &() const VULKAN_HPP_NOEXCEPT
  19715. {
  19716. return *reinterpret_cast<const VkDeviceGroupPresentInfoKHR *>( this );
  19717. }
  19718. operator VkDeviceGroupPresentInfoKHR &() VULKAN_HPP_NOEXCEPT
  19719. {
  19720. return *reinterpret_cast<VkDeviceGroupPresentInfoKHR *>( this );
  19721. }
  19722. #if defined( VULKAN_HPP_USE_REFLECT )
  19723. # if 14 <= VULKAN_HPP_CPP_VERSION
  19724. auto
  19725. # else
  19726. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  19727. const void * const &,
  19728. uint32_t const &,
  19729. const uint32_t * const &,
  19730. VULKAN_HPP_NAMESPACE::DeviceGroupPresentModeFlagBitsKHR const &>
  19731. # endif
  19732. reflect() const VULKAN_HPP_NOEXCEPT
  19733. {
  19734. return std::tie( sType, pNext, swapchainCount, pDeviceMasks, mode );
  19735. }
  19736. #endif
  19737. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  19738. auto operator<=>( DeviceGroupPresentInfoKHR const & ) const = default;
  19739. #else
  19740. bool operator==( DeviceGroupPresentInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  19741. {
  19742. # if defined( VULKAN_HPP_USE_REFLECT )
  19743. return this->reflect() == rhs.reflect();
  19744. # else
  19745. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( swapchainCount == rhs.swapchainCount ) && ( pDeviceMasks == rhs.pDeviceMasks ) &&
  19746. ( mode == rhs.mode );
  19747. # endif
  19748. }
  19749. bool operator!=( DeviceGroupPresentInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  19750. {
  19751. return !operator==( rhs );
  19752. }
  19753. #endif
  19754. public:
  19755. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDeviceGroupPresentInfoKHR;
  19756. const void * pNext = {};
  19757. uint32_t swapchainCount = {};
  19758. const uint32_t * pDeviceMasks = {};
  19759. VULKAN_HPP_NAMESPACE::DeviceGroupPresentModeFlagBitsKHR mode = VULKAN_HPP_NAMESPACE::DeviceGroupPresentModeFlagBitsKHR::eLocal;
  19760. };
  19761. template <>
  19762. struct CppType<StructureType, StructureType::eDeviceGroupPresentInfoKHR>
  19763. {
  19764. using Type = DeviceGroupPresentInfoKHR;
  19765. };
  19766. struct DeviceGroupRenderPassBeginInfo
  19767. {
  19768. using NativeType = VkDeviceGroupRenderPassBeginInfo;
  19769. static const bool allowDuplicate = false;
  19770. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDeviceGroupRenderPassBeginInfo;
  19771. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  19772. VULKAN_HPP_CONSTEXPR DeviceGroupRenderPassBeginInfo( uint32_t deviceMask_ = {},
  19773. uint32_t deviceRenderAreaCount_ = {},
  19774. const VULKAN_HPP_NAMESPACE::Rect2D * pDeviceRenderAreas_ = {},
  19775. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  19776. : pNext( pNext_ )
  19777. , deviceMask( deviceMask_ )
  19778. , deviceRenderAreaCount( deviceRenderAreaCount_ )
  19779. , pDeviceRenderAreas( pDeviceRenderAreas_ )
  19780. {
  19781. }
  19782. VULKAN_HPP_CONSTEXPR DeviceGroupRenderPassBeginInfo( DeviceGroupRenderPassBeginInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  19783. DeviceGroupRenderPassBeginInfo( VkDeviceGroupRenderPassBeginInfo const & rhs ) VULKAN_HPP_NOEXCEPT
  19784. : DeviceGroupRenderPassBeginInfo( *reinterpret_cast<DeviceGroupRenderPassBeginInfo const *>( &rhs ) )
  19785. {
  19786. }
  19787. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  19788. DeviceGroupRenderPassBeginInfo( uint32_t deviceMask_,
  19789. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::Rect2D> const & deviceRenderAreas_,
  19790. const void * pNext_ = nullptr )
  19791. : pNext( pNext_ )
  19792. , deviceMask( deviceMask_ )
  19793. , deviceRenderAreaCount( static_cast<uint32_t>( deviceRenderAreas_.size() ) )
  19794. , pDeviceRenderAreas( deviceRenderAreas_.data() )
  19795. {
  19796. }
  19797. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  19798. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  19799. DeviceGroupRenderPassBeginInfo & operator=( DeviceGroupRenderPassBeginInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  19800. DeviceGroupRenderPassBeginInfo & operator=( VkDeviceGroupRenderPassBeginInfo const & rhs ) VULKAN_HPP_NOEXCEPT
  19801. {
  19802. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DeviceGroupRenderPassBeginInfo const *>( &rhs );
  19803. return *this;
  19804. }
  19805. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  19806. VULKAN_HPP_CONSTEXPR_14 DeviceGroupRenderPassBeginInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  19807. {
  19808. pNext = pNext_;
  19809. return *this;
  19810. }
  19811. VULKAN_HPP_CONSTEXPR_14 DeviceGroupRenderPassBeginInfo & setDeviceMask( uint32_t deviceMask_ ) VULKAN_HPP_NOEXCEPT
  19812. {
  19813. deviceMask = deviceMask_;
  19814. return *this;
  19815. }
  19816. VULKAN_HPP_CONSTEXPR_14 DeviceGroupRenderPassBeginInfo & setDeviceRenderAreaCount( uint32_t deviceRenderAreaCount_ ) VULKAN_HPP_NOEXCEPT
  19817. {
  19818. deviceRenderAreaCount = deviceRenderAreaCount_;
  19819. return *this;
  19820. }
  19821. VULKAN_HPP_CONSTEXPR_14 DeviceGroupRenderPassBeginInfo &
  19822. setPDeviceRenderAreas( const VULKAN_HPP_NAMESPACE::Rect2D * pDeviceRenderAreas_ ) VULKAN_HPP_NOEXCEPT
  19823. {
  19824. pDeviceRenderAreas = pDeviceRenderAreas_;
  19825. return *this;
  19826. }
  19827. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  19828. DeviceGroupRenderPassBeginInfo &
  19829. setDeviceRenderAreas( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::Rect2D> const & deviceRenderAreas_ ) VULKAN_HPP_NOEXCEPT
  19830. {
  19831. deviceRenderAreaCount = static_cast<uint32_t>( deviceRenderAreas_.size() );
  19832. pDeviceRenderAreas = deviceRenderAreas_.data();
  19833. return *this;
  19834. }
  19835. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  19836. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  19837. operator VkDeviceGroupRenderPassBeginInfo const &() const VULKAN_HPP_NOEXCEPT
  19838. {
  19839. return *reinterpret_cast<const VkDeviceGroupRenderPassBeginInfo *>( this );
  19840. }
  19841. operator VkDeviceGroupRenderPassBeginInfo &() VULKAN_HPP_NOEXCEPT
  19842. {
  19843. return *reinterpret_cast<VkDeviceGroupRenderPassBeginInfo *>( this );
  19844. }
  19845. #if defined( VULKAN_HPP_USE_REFLECT )
  19846. # if 14 <= VULKAN_HPP_CPP_VERSION
  19847. auto
  19848. # else
  19849. std::
  19850. tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, uint32_t const &, uint32_t const &, const VULKAN_HPP_NAMESPACE::Rect2D * const &>
  19851. # endif
  19852. reflect() const VULKAN_HPP_NOEXCEPT
  19853. {
  19854. return std::tie( sType, pNext, deviceMask, deviceRenderAreaCount, pDeviceRenderAreas );
  19855. }
  19856. #endif
  19857. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  19858. auto operator<=>( DeviceGroupRenderPassBeginInfo const & ) const = default;
  19859. #else
  19860. bool operator==( DeviceGroupRenderPassBeginInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  19861. {
  19862. # if defined( VULKAN_HPP_USE_REFLECT )
  19863. return this->reflect() == rhs.reflect();
  19864. # else
  19865. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( deviceMask == rhs.deviceMask ) && ( deviceRenderAreaCount == rhs.deviceRenderAreaCount ) &&
  19866. ( pDeviceRenderAreas == rhs.pDeviceRenderAreas );
  19867. # endif
  19868. }
  19869. bool operator!=( DeviceGroupRenderPassBeginInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  19870. {
  19871. return !operator==( rhs );
  19872. }
  19873. #endif
  19874. public:
  19875. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDeviceGroupRenderPassBeginInfo;
  19876. const void * pNext = {};
  19877. uint32_t deviceMask = {};
  19878. uint32_t deviceRenderAreaCount = {};
  19879. const VULKAN_HPP_NAMESPACE::Rect2D * pDeviceRenderAreas = {};
  19880. };
  19881. template <>
  19882. struct CppType<StructureType, StructureType::eDeviceGroupRenderPassBeginInfo>
  19883. {
  19884. using Type = DeviceGroupRenderPassBeginInfo;
  19885. };
  19886. using DeviceGroupRenderPassBeginInfoKHR = DeviceGroupRenderPassBeginInfo;
  19887. struct DeviceGroupSubmitInfo
  19888. {
  19889. using NativeType = VkDeviceGroupSubmitInfo;
  19890. static const bool allowDuplicate = false;
  19891. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDeviceGroupSubmitInfo;
  19892. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  19893. VULKAN_HPP_CONSTEXPR DeviceGroupSubmitInfo( uint32_t waitSemaphoreCount_ = {},
  19894. const uint32_t * pWaitSemaphoreDeviceIndices_ = {},
  19895. uint32_t commandBufferCount_ = {},
  19896. const uint32_t * pCommandBufferDeviceMasks_ = {},
  19897. uint32_t signalSemaphoreCount_ = {},
  19898. const uint32_t * pSignalSemaphoreDeviceIndices_ = {},
  19899. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  19900. : pNext( pNext_ )
  19901. , waitSemaphoreCount( waitSemaphoreCount_ )
  19902. , pWaitSemaphoreDeviceIndices( pWaitSemaphoreDeviceIndices_ )
  19903. , commandBufferCount( commandBufferCount_ )
  19904. , pCommandBufferDeviceMasks( pCommandBufferDeviceMasks_ )
  19905. , signalSemaphoreCount( signalSemaphoreCount_ )
  19906. , pSignalSemaphoreDeviceIndices( pSignalSemaphoreDeviceIndices_ )
  19907. {
  19908. }
  19909. VULKAN_HPP_CONSTEXPR DeviceGroupSubmitInfo( DeviceGroupSubmitInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  19910. DeviceGroupSubmitInfo( VkDeviceGroupSubmitInfo const & rhs ) VULKAN_HPP_NOEXCEPT
  19911. : DeviceGroupSubmitInfo( *reinterpret_cast<DeviceGroupSubmitInfo const *>( &rhs ) )
  19912. {
  19913. }
  19914. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  19915. DeviceGroupSubmitInfo( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint32_t> const & waitSemaphoreDeviceIndices_,
  19916. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint32_t> const & commandBufferDeviceMasks_ = {},
  19917. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint32_t> const & signalSemaphoreDeviceIndices_ = {},
  19918. const void * pNext_ = nullptr )
  19919. : pNext( pNext_ )
  19920. , waitSemaphoreCount( static_cast<uint32_t>( waitSemaphoreDeviceIndices_.size() ) )
  19921. , pWaitSemaphoreDeviceIndices( waitSemaphoreDeviceIndices_.data() )
  19922. , commandBufferCount( static_cast<uint32_t>( commandBufferDeviceMasks_.size() ) )
  19923. , pCommandBufferDeviceMasks( commandBufferDeviceMasks_.data() )
  19924. , signalSemaphoreCount( static_cast<uint32_t>( signalSemaphoreDeviceIndices_.size() ) )
  19925. , pSignalSemaphoreDeviceIndices( signalSemaphoreDeviceIndices_.data() )
  19926. {
  19927. }
  19928. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  19929. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  19930. DeviceGroupSubmitInfo & operator=( DeviceGroupSubmitInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  19931. DeviceGroupSubmitInfo & operator=( VkDeviceGroupSubmitInfo const & rhs ) VULKAN_HPP_NOEXCEPT
  19932. {
  19933. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DeviceGroupSubmitInfo const *>( &rhs );
  19934. return *this;
  19935. }
  19936. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  19937. VULKAN_HPP_CONSTEXPR_14 DeviceGroupSubmitInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  19938. {
  19939. pNext = pNext_;
  19940. return *this;
  19941. }
  19942. VULKAN_HPP_CONSTEXPR_14 DeviceGroupSubmitInfo & setWaitSemaphoreCount( uint32_t waitSemaphoreCount_ ) VULKAN_HPP_NOEXCEPT
  19943. {
  19944. waitSemaphoreCount = waitSemaphoreCount_;
  19945. return *this;
  19946. }
  19947. VULKAN_HPP_CONSTEXPR_14 DeviceGroupSubmitInfo & setPWaitSemaphoreDeviceIndices( const uint32_t * pWaitSemaphoreDeviceIndices_ ) VULKAN_HPP_NOEXCEPT
  19948. {
  19949. pWaitSemaphoreDeviceIndices = pWaitSemaphoreDeviceIndices_;
  19950. return *this;
  19951. }
  19952. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  19953. DeviceGroupSubmitInfo &
  19954. setWaitSemaphoreDeviceIndices( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint32_t> const & waitSemaphoreDeviceIndices_ ) VULKAN_HPP_NOEXCEPT
  19955. {
  19956. waitSemaphoreCount = static_cast<uint32_t>( waitSemaphoreDeviceIndices_.size() );
  19957. pWaitSemaphoreDeviceIndices = waitSemaphoreDeviceIndices_.data();
  19958. return *this;
  19959. }
  19960. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  19961. VULKAN_HPP_CONSTEXPR_14 DeviceGroupSubmitInfo & setCommandBufferCount( uint32_t commandBufferCount_ ) VULKAN_HPP_NOEXCEPT
  19962. {
  19963. commandBufferCount = commandBufferCount_;
  19964. return *this;
  19965. }
  19966. VULKAN_HPP_CONSTEXPR_14 DeviceGroupSubmitInfo & setPCommandBufferDeviceMasks( const uint32_t * pCommandBufferDeviceMasks_ ) VULKAN_HPP_NOEXCEPT
  19967. {
  19968. pCommandBufferDeviceMasks = pCommandBufferDeviceMasks_;
  19969. return *this;
  19970. }
  19971. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  19972. DeviceGroupSubmitInfo &
  19973. setCommandBufferDeviceMasks( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint32_t> const & commandBufferDeviceMasks_ ) VULKAN_HPP_NOEXCEPT
  19974. {
  19975. commandBufferCount = static_cast<uint32_t>( commandBufferDeviceMasks_.size() );
  19976. pCommandBufferDeviceMasks = commandBufferDeviceMasks_.data();
  19977. return *this;
  19978. }
  19979. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  19980. VULKAN_HPP_CONSTEXPR_14 DeviceGroupSubmitInfo & setSignalSemaphoreCount( uint32_t signalSemaphoreCount_ ) VULKAN_HPP_NOEXCEPT
  19981. {
  19982. signalSemaphoreCount = signalSemaphoreCount_;
  19983. return *this;
  19984. }
  19985. VULKAN_HPP_CONSTEXPR_14 DeviceGroupSubmitInfo & setPSignalSemaphoreDeviceIndices( const uint32_t * pSignalSemaphoreDeviceIndices_ ) VULKAN_HPP_NOEXCEPT
  19986. {
  19987. pSignalSemaphoreDeviceIndices = pSignalSemaphoreDeviceIndices_;
  19988. return *this;
  19989. }
  19990. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  19991. DeviceGroupSubmitInfo &
  19992. setSignalSemaphoreDeviceIndices( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint32_t> const & signalSemaphoreDeviceIndices_ ) VULKAN_HPP_NOEXCEPT
  19993. {
  19994. signalSemaphoreCount = static_cast<uint32_t>( signalSemaphoreDeviceIndices_.size() );
  19995. pSignalSemaphoreDeviceIndices = signalSemaphoreDeviceIndices_.data();
  19996. return *this;
  19997. }
  19998. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  19999. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  20000. operator VkDeviceGroupSubmitInfo const &() const VULKAN_HPP_NOEXCEPT
  20001. {
  20002. return *reinterpret_cast<const VkDeviceGroupSubmitInfo *>( this );
  20003. }
  20004. operator VkDeviceGroupSubmitInfo &() VULKAN_HPP_NOEXCEPT
  20005. {
  20006. return *reinterpret_cast<VkDeviceGroupSubmitInfo *>( this );
  20007. }
  20008. #if defined( VULKAN_HPP_USE_REFLECT )
  20009. # if 14 <= VULKAN_HPP_CPP_VERSION
  20010. auto
  20011. # else
  20012. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  20013. const void * const &,
  20014. uint32_t const &,
  20015. const uint32_t * const &,
  20016. uint32_t const &,
  20017. const uint32_t * const &,
  20018. uint32_t const &,
  20019. const uint32_t * const &>
  20020. # endif
  20021. reflect() const VULKAN_HPP_NOEXCEPT
  20022. {
  20023. return std::tie( sType,
  20024. pNext,
  20025. waitSemaphoreCount,
  20026. pWaitSemaphoreDeviceIndices,
  20027. commandBufferCount,
  20028. pCommandBufferDeviceMasks,
  20029. signalSemaphoreCount,
  20030. pSignalSemaphoreDeviceIndices );
  20031. }
  20032. #endif
  20033. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  20034. auto operator<=>( DeviceGroupSubmitInfo const & ) const = default;
  20035. #else
  20036. bool operator==( DeviceGroupSubmitInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  20037. {
  20038. # if defined( VULKAN_HPP_USE_REFLECT )
  20039. return this->reflect() == rhs.reflect();
  20040. # else
  20041. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( waitSemaphoreCount == rhs.waitSemaphoreCount ) &&
  20042. ( pWaitSemaphoreDeviceIndices == rhs.pWaitSemaphoreDeviceIndices ) && ( commandBufferCount == rhs.commandBufferCount ) &&
  20043. ( pCommandBufferDeviceMasks == rhs.pCommandBufferDeviceMasks ) && ( signalSemaphoreCount == rhs.signalSemaphoreCount ) &&
  20044. ( pSignalSemaphoreDeviceIndices == rhs.pSignalSemaphoreDeviceIndices );
  20045. # endif
  20046. }
  20047. bool operator!=( DeviceGroupSubmitInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  20048. {
  20049. return !operator==( rhs );
  20050. }
  20051. #endif
  20052. public:
  20053. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDeviceGroupSubmitInfo;
  20054. const void * pNext = {};
  20055. uint32_t waitSemaphoreCount = {};
  20056. const uint32_t * pWaitSemaphoreDeviceIndices = {};
  20057. uint32_t commandBufferCount = {};
  20058. const uint32_t * pCommandBufferDeviceMasks = {};
  20059. uint32_t signalSemaphoreCount = {};
  20060. const uint32_t * pSignalSemaphoreDeviceIndices = {};
  20061. };
  20062. template <>
  20063. struct CppType<StructureType, StructureType::eDeviceGroupSubmitInfo>
  20064. {
  20065. using Type = DeviceGroupSubmitInfo;
  20066. };
  20067. using DeviceGroupSubmitInfoKHR = DeviceGroupSubmitInfo;
  20068. struct DeviceGroupSwapchainCreateInfoKHR
  20069. {
  20070. using NativeType = VkDeviceGroupSwapchainCreateInfoKHR;
  20071. static const bool allowDuplicate = false;
  20072. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDeviceGroupSwapchainCreateInfoKHR;
  20073. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  20074. VULKAN_HPP_CONSTEXPR DeviceGroupSwapchainCreateInfoKHR( VULKAN_HPP_NAMESPACE::DeviceGroupPresentModeFlagsKHR modes_ = {},
  20075. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  20076. : pNext( pNext_ )
  20077. , modes( modes_ )
  20078. {
  20079. }
  20080. VULKAN_HPP_CONSTEXPR DeviceGroupSwapchainCreateInfoKHR( DeviceGroupSwapchainCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  20081. DeviceGroupSwapchainCreateInfoKHR( VkDeviceGroupSwapchainCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  20082. : DeviceGroupSwapchainCreateInfoKHR( *reinterpret_cast<DeviceGroupSwapchainCreateInfoKHR const *>( &rhs ) )
  20083. {
  20084. }
  20085. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  20086. DeviceGroupSwapchainCreateInfoKHR & operator=( DeviceGroupSwapchainCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  20087. DeviceGroupSwapchainCreateInfoKHR & operator=( VkDeviceGroupSwapchainCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  20088. {
  20089. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DeviceGroupSwapchainCreateInfoKHR const *>( &rhs );
  20090. return *this;
  20091. }
  20092. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  20093. VULKAN_HPP_CONSTEXPR_14 DeviceGroupSwapchainCreateInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  20094. {
  20095. pNext = pNext_;
  20096. return *this;
  20097. }
  20098. VULKAN_HPP_CONSTEXPR_14 DeviceGroupSwapchainCreateInfoKHR & setModes( VULKAN_HPP_NAMESPACE::DeviceGroupPresentModeFlagsKHR modes_ ) VULKAN_HPP_NOEXCEPT
  20099. {
  20100. modes = modes_;
  20101. return *this;
  20102. }
  20103. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  20104. operator VkDeviceGroupSwapchainCreateInfoKHR const &() const VULKAN_HPP_NOEXCEPT
  20105. {
  20106. return *reinterpret_cast<const VkDeviceGroupSwapchainCreateInfoKHR *>( this );
  20107. }
  20108. operator VkDeviceGroupSwapchainCreateInfoKHR &() VULKAN_HPP_NOEXCEPT
  20109. {
  20110. return *reinterpret_cast<VkDeviceGroupSwapchainCreateInfoKHR *>( this );
  20111. }
  20112. #if defined( VULKAN_HPP_USE_REFLECT )
  20113. # if 14 <= VULKAN_HPP_CPP_VERSION
  20114. auto
  20115. # else
  20116. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::DeviceGroupPresentModeFlagsKHR const &>
  20117. # endif
  20118. reflect() const VULKAN_HPP_NOEXCEPT
  20119. {
  20120. return std::tie( sType, pNext, modes );
  20121. }
  20122. #endif
  20123. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  20124. auto operator<=>( DeviceGroupSwapchainCreateInfoKHR const & ) const = default;
  20125. #else
  20126. bool operator==( DeviceGroupSwapchainCreateInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  20127. {
  20128. # if defined( VULKAN_HPP_USE_REFLECT )
  20129. return this->reflect() == rhs.reflect();
  20130. # else
  20131. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( modes == rhs.modes );
  20132. # endif
  20133. }
  20134. bool operator!=( DeviceGroupSwapchainCreateInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  20135. {
  20136. return !operator==( rhs );
  20137. }
  20138. #endif
  20139. public:
  20140. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDeviceGroupSwapchainCreateInfoKHR;
  20141. const void * pNext = {};
  20142. VULKAN_HPP_NAMESPACE::DeviceGroupPresentModeFlagsKHR modes = {};
  20143. };
  20144. template <>
  20145. struct CppType<StructureType, StructureType::eDeviceGroupSwapchainCreateInfoKHR>
  20146. {
  20147. using Type = DeviceGroupSwapchainCreateInfoKHR;
  20148. };
  20149. struct ImageCreateInfo
  20150. {
  20151. using NativeType = VkImageCreateInfo;
  20152. static const bool allowDuplicate = false;
  20153. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eImageCreateInfo;
  20154. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  20155. VULKAN_HPP_CONSTEXPR ImageCreateInfo( VULKAN_HPP_NAMESPACE::ImageCreateFlags flags_ = {},
  20156. VULKAN_HPP_NAMESPACE::ImageType imageType_ = VULKAN_HPP_NAMESPACE::ImageType::e1D,
  20157. VULKAN_HPP_NAMESPACE::Format format_ = VULKAN_HPP_NAMESPACE::Format::eUndefined,
  20158. VULKAN_HPP_NAMESPACE::Extent3D extent_ = {},
  20159. uint32_t mipLevels_ = {},
  20160. uint32_t arrayLayers_ = {},
  20161. VULKAN_HPP_NAMESPACE::SampleCountFlagBits samples_ = VULKAN_HPP_NAMESPACE::SampleCountFlagBits::e1,
  20162. VULKAN_HPP_NAMESPACE::ImageTiling tiling_ = VULKAN_HPP_NAMESPACE::ImageTiling::eOptimal,
  20163. VULKAN_HPP_NAMESPACE::ImageUsageFlags usage_ = {},
  20164. VULKAN_HPP_NAMESPACE::SharingMode sharingMode_ = VULKAN_HPP_NAMESPACE::SharingMode::eExclusive,
  20165. uint32_t queueFamilyIndexCount_ = {},
  20166. const uint32_t * pQueueFamilyIndices_ = {},
  20167. VULKAN_HPP_NAMESPACE::ImageLayout initialLayout_ = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined,
  20168. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  20169. : pNext( pNext_ )
  20170. , flags( flags_ )
  20171. , imageType( imageType_ )
  20172. , format( format_ )
  20173. , extent( extent_ )
  20174. , mipLevels( mipLevels_ )
  20175. , arrayLayers( arrayLayers_ )
  20176. , samples( samples_ )
  20177. , tiling( tiling_ )
  20178. , usage( usage_ )
  20179. , sharingMode( sharingMode_ )
  20180. , queueFamilyIndexCount( queueFamilyIndexCount_ )
  20181. , pQueueFamilyIndices( pQueueFamilyIndices_ )
  20182. , initialLayout( initialLayout_ )
  20183. {
  20184. }
  20185. VULKAN_HPP_CONSTEXPR ImageCreateInfo( ImageCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  20186. ImageCreateInfo( VkImageCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT : ImageCreateInfo( *reinterpret_cast<ImageCreateInfo const *>( &rhs ) ) {}
  20187. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  20188. ImageCreateInfo( VULKAN_HPP_NAMESPACE::ImageCreateFlags flags_,
  20189. VULKAN_HPP_NAMESPACE::ImageType imageType_,
  20190. VULKAN_HPP_NAMESPACE::Format format_,
  20191. VULKAN_HPP_NAMESPACE::Extent3D extent_,
  20192. uint32_t mipLevels_,
  20193. uint32_t arrayLayers_,
  20194. VULKAN_HPP_NAMESPACE::SampleCountFlagBits samples_,
  20195. VULKAN_HPP_NAMESPACE::ImageTiling tiling_,
  20196. VULKAN_HPP_NAMESPACE::ImageUsageFlags usage_,
  20197. VULKAN_HPP_NAMESPACE::SharingMode sharingMode_,
  20198. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint32_t> const & queueFamilyIndices_,
  20199. VULKAN_HPP_NAMESPACE::ImageLayout initialLayout_ = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined,
  20200. const void * pNext_ = nullptr )
  20201. : pNext( pNext_ )
  20202. , flags( flags_ )
  20203. , imageType( imageType_ )
  20204. , format( format_ )
  20205. , extent( extent_ )
  20206. , mipLevels( mipLevels_ )
  20207. , arrayLayers( arrayLayers_ )
  20208. , samples( samples_ )
  20209. , tiling( tiling_ )
  20210. , usage( usage_ )
  20211. , sharingMode( sharingMode_ )
  20212. , queueFamilyIndexCount( static_cast<uint32_t>( queueFamilyIndices_.size() ) )
  20213. , pQueueFamilyIndices( queueFamilyIndices_.data() )
  20214. , initialLayout( initialLayout_ )
  20215. {
  20216. }
  20217. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  20218. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  20219. ImageCreateInfo & operator=( ImageCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  20220. ImageCreateInfo & operator=( VkImageCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
  20221. {
  20222. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ImageCreateInfo const *>( &rhs );
  20223. return *this;
  20224. }
  20225. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  20226. VULKAN_HPP_CONSTEXPR_14 ImageCreateInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  20227. {
  20228. pNext = pNext_;
  20229. return *this;
  20230. }
  20231. VULKAN_HPP_CONSTEXPR_14 ImageCreateInfo & setFlags( VULKAN_HPP_NAMESPACE::ImageCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT
  20232. {
  20233. flags = flags_;
  20234. return *this;
  20235. }
  20236. VULKAN_HPP_CONSTEXPR_14 ImageCreateInfo & setImageType( VULKAN_HPP_NAMESPACE::ImageType imageType_ ) VULKAN_HPP_NOEXCEPT
  20237. {
  20238. imageType = imageType_;
  20239. return *this;
  20240. }
  20241. VULKAN_HPP_CONSTEXPR_14 ImageCreateInfo & setFormat( VULKAN_HPP_NAMESPACE::Format format_ ) VULKAN_HPP_NOEXCEPT
  20242. {
  20243. format = format_;
  20244. return *this;
  20245. }
  20246. VULKAN_HPP_CONSTEXPR_14 ImageCreateInfo & setExtent( VULKAN_HPP_NAMESPACE::Extent3D const & extent_ ) VULKAN_HPP_NOEXCEPT
  20247. {
  20248. extent = extent_;
  20249. return *this;
  20250. }
  20251. VULKAN_HPP_CONSTEXPR_14 ImageCreateInfo & setMipLevels( uint32_t mipLevels_ ) VULKAN_HPP_NOEXCEPT
  20252. {
  20253. mipLevels = mipLevels_;
  20254. return *this;
  20255. }
  20256. VULKAN_HPP_CONSTEXPR_14 ImageCreateInfo & setArrayLayers( uint32_t arrayLayers_ ) VULKAN_HPP_NOEXCEPT
  20257. {
  20258. arrayLayers = arrayLayers_;
  20259. return *this;
  20260. }
  20261. VULKAN_HPP_CONSTEXPR_14 ImageCreateInfo & setSamples( VULKAN_HPP_NAMESPACE::SampleCountFlagBits samples_ ) VULKAN_HPP_NOEXCEPT
  20262. {
  20263. samples = samples_;
  20264. return *this;
  20265. }
  20266. VULKAN_HPP_CONSTEXPR_14 ImageCreateInfo & setTiling( VULKAN_HPP_NAMESPACE::ImageTiling tiling_ ) VULKAN_HPP_NOEXCEPT
  20267. {
  20268. tiling = tiling_;
  20269. return *this;
  20270. }
  20271. VULKAN_HPP_CONSTEXPR_14 ImageCreateInfo & setUsage( VULKAN_HPP_NAMESPACE::ImageUsageFlags usage_ ) VULKAN_HPP_NOEXCEPT
  20272. {
  20273. usage = usage_;
  20274. return *this;
  20275. }
  20276. VULKAN_HPP_CONSTEXPR_14 ImageCreateInfo & setSharingMode( VULKAN_HPP_NAMESPACE::SharingMode sharingMode_ ) VULKAN_HPP_NOEXCEPT
  20277. {
  20278. sharingMode = sharingMode_;
  20279. return *this;
  20280. }
  20281. VULKAN_HPP_CONSTEXPR_14 ImageCreateInfo & setQueueFamilyIndexCount( uint32_t queueFamilyIndexCount_ ) VULKAN_HPP_NOEXCEPT
  20282. {
  20283. queueFamilyIndexCount = queueFamilyIndexCount_;
  20284. return *this;
  20285. }
  20286. VULKAN_HPP_CONSTEXPR_14 ImageCreateInfo & setPQueueFamilyIndices( const uint32_t * pQueueFamilyIndices_ ) VULKAN_HPP_NOEXCEPT
  20287. {
  20288. pQueueFamilyIndices = pQueueFamilyIndices_;
  20289. return *this;
  20290. }
  20291. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  20292. ImageCreateInfo & setQueueFamilyIndices( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint32_t> const & queueFamilyIndices_ ) VULKAN_HPP_NOEXCEPT
  20293. {
  20294. queueFamilyIndexCount = static_cast<uint32_t>( queueFamilyIndices_.size() );
  20295. pQueueFamilyIndices = queueFamilyIndices_.data();
  20296. return *this;
  20297. }
  20298. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  20299. VULKAN_HPP_CONSTEXPR_14 ImageCreateInfo & setInitialLayout( VULKAN_HPP_NAMESPACE::ImageLayout initialLayout_ ) VULKAN_HPP_NOEXCEPT
  20300. {
  20301. initialLayout = initialLayout_;
  20302. return *this;
  20303. }
  20304. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  20305. operator VkImageCreateInfo const &() const VULKAN_HPP_NOEXCEPT
  20306. {
  20307. return *reinterpret_cast<const VkImageCreateInfo *>( this );
  20308. }
  20309. operator VkImageCreateInfo &() VULKAN_HPP_NOEXCEPT
  20310. {
  20311. return *reinterpret_cast<VkImageCreateInfo *>( this );
  20312. }
  20313. #if defined( VULKAN_HPP_USE_REFLECT )
  20314. # if 14 <= VULKAN_HPP_CPP_VERSION
  20315. auto
  20316. # else
  20317. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  20318. const void * const &,
  20319. VULKAN_HPP_NAMESPACE::ImageCreateFlags const &,
  20320. VULKAN_HPP_NAMESPACE::ImageType const &,
  20321. VULKAN_HPP_NAMESPACE::Format const &,
  20322. VULKAN_HPP_NAMESPACE::Extent3D const &,
  20323. uint32_t const &,
  20324. uint32_t const &,
  20325. VULKAN_HPP_NAMESPACE::SampleCountFlagBits const &,
  20326. VULKAN_HPP_NAMESPACE::ImageTiling const &,
  20327. VULKAN_HPP_NAMESPACE::ImageUsageFlags const &,
  20328. VULKAN_HPP_NAMESPACE::SharingMode const &,
  20329. uint32_t const &,
  20330. const uint32_t * const &,
  20331. VULKAN_HPP_NAMESPACE::ImageLayout const &>
  20332. # endif
  20333. reflect() const VULKAN_HPP_NOEXCEPT
  20334. {
  20335. return std::tie( sType,
  20336. pNext,
  20337. flags,
  20338. imageType,
  20339. format,
  20340. extent,
  20341. mipLevels,
  20342. arrayLayers,
  20343. samples,
  20344. tiling,
  20345. usage,
  20346. sharingMode,
  20347. queueFamilyIndexCount,
  20348. pQueueFamilyIndices,
  20349. initialLayout );
  20350. }
  20351. #endif
  20352. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  20353. auto operator<=>( ImageCreateInfo const & ) const = default;
  20354. #else
  20355. bool operator==( ImageCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  20356. {
  20357. # if defined( VULKAN_HPP_USE_REFLECT )
  20358. return this->reflect() == rhs.reflect();
  20359. # else
  20360. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( flags == rhs.flags ) && ( imageType == rhs.imageType ) && ( format == rhs.format ) &&
  20361. ( extent == rhs.extent ) && ( mipLevels == rhs.mipLevels ) && ( arrayLayers == rhs.arrayLayers ) && ( samples == rhs.samples ) &&
  20362. ( tiling == rhs.tiling ) && ( usage == rhs.usage ) && ( sharingMode == rhs.sharingMode ) &&
  20363. ( queueFamilyIndexCount == rhs.queueFamilyIndexCount ) && ( pQueueFamilyIndices == rhs.pQueueFamilyIndices ) &&
  20364. ( initialLayout == rhs.initialLayout );
  20365. # endif
  20366. }
  20367. bool operator!=( ImageCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  20368. {
  20369. return !operator==( rhs );
  20370. }
  20371. #endif
  20372. public:
  20373. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImageCreateInfo;
  20374. const void * pNext = {};
  20375. VULKAN_HPP_NAMESPACE::ImageCreateFlags flags = {};
  20376. VULKAN_HPP_NAMESPACE::ImageType imageType = VULKAN_HPP_NAMESPACE::ImageType::e1D;
  20377. VULKAN_HPP_NAMESPACE::Format format = VULKAN_HPP_NAMESPACE::Format::eUndefined;
  20378. VULKAN_HPP_NAMESPACE::Extent3D extent = {};
  20379. uint32_t mipLevels = {};
  20380. uint32_t arrayLayers = {};
  20381. VULKAN_HPP_NAMESPACE::SampleCountFlagBits samples = VULKAN_HPP_NAMESPACE::SampleCountFlagBits::e1;
  20382. VULKAN_HPP_NAMESPACE::ImageTiling tiling = VULKAN_HPP_NAMESPACE::ImageTiling::eOptimal;
  20383. VULKAN_HPP_NAMESPACE::ImageUsageFlags usage = {};
  20384. VULKAN_HPP_NAMESPACE::SharingMode sharingMode = VULKAN_HPP_NAMESPACE::SharingMode::eExclusive;
  20385. uint32_t queueFamilyIndexCount = {};
  20386. const uint32_t * pQueueFamilyIndices = {};
  20387. VULKAN_HPP_NAMESPACE::ImageLayout initialLayout = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined;
  20388. };
  20389. template <>
  20390. struct CppType<StructureType, StructureType::eImageCreateInfo>
  20391. {
  20392. using Type = ImageCreateInfo;
  20393. };
  20394. struct DeviceImageMemoryRequirements
  20395. {
  20396. using NativeType = VkDeviceImageMemoryRequirements;
  20397. static const bool allowDuplicate = false;
  20398. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDeviceImageMemoryRequirements;
  20399. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  20400. VULKAN_HPP_CONSTEXPR
  20401. DeviceImageMemoryRequirements( const VULKAN_HPP_NAMESPACE::ImageCreateInfo * pCreateInfo_ = {},
  20402. VULKAN_HPP_NAMESPACE::ImageAspectFlagBits planeAspect_ = VULKAN_HPP_NAMESPACE::ImageAspectFlagBits::eColor,
  20403. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  20404. : pNext( pNext_ )
  20405. , pCreateInfo( pCreateInfo_ )
  20406. , planeAspect( planeAspect_ )
  20407. {
  20408. }
  20409. VULKAN_HPP_CONSTEXPR DeviceImageMemoryRequirements( DeviceImageMemoryRequirements const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  20410. DeviceImageMemoryRequirements( VkDeviceImageMemoryRequirements const & rhs ) VULKAN_HPP_NOEXCEPT
  20411. : DeviceImageMemoryRequirements( *reinterpret_cast<DeviceImageMemoryRequirements const *>( &rhs ) )
  20412. {
  20413. }
  20414. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  20415. DeviceImageMemoryRequirements & operator=( DeviceImageMemoryRequirements const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  20416. DeviceImageMemoryRequirements & operator=( VkDeviceImageMemoryRequirements const & rhs ) VULKAN_HPP_NOEXCEPT
  20417. {
  20418. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DeviceImageMemoryRequirements const *>( &rhs );
  20419. return *this;
  20420. }
  20421. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  20422. VULKAN_HPP_CONSTEXPR_14 DeviceImageMemoryRequirements & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  20423. {
  20424. pNext = pNext_;
  20425. return *this;
  20426. }
  20427. VULKAN_HPP_CONSTEXPR_14 DeviceImageMemoryRequirements & setPCreateInfo( const VULKAN_HPP_NAMESPACE::ImageCreateInfo * pCreateInfo_ ) VULKAN_HPP_NOEXCEPT
  20428. {
  20429. pCreateInfo = pCreateInfo_;
  20430. return *this;
  20431. }
  20432. VULKAN_HPP_CONSTEXPR_14 DeviceImageMemoryRequirements & setPlaneAspect( VULKAN_HPP_NAMESPACE::ImageAspectFlagBits planeAspect_ ) VULKAN_HPP_NOEXCEPT
  20433. {
  20434. planeAspect = planeAspect_;
  20435. return *this;
  20436. }
  20437. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  20438. operator VkDeviceImageMemoryRequirements const &() const VULKAN_HPP_NOEXCEPT
  20439. {
  20440. return *reinterpret_cast<const VkDeviceImageMemoryRequirements *>( this );
  20441. }
  20442. operator VkDeviceImageMemoryRequirements &() VULKAN_HPP_NOEXCEPT
  20443. {
  20444. return *reinterpret_cast<VkDeviceImageMemoryRequirements *>( this );
  20445. }
  20446. #if defined( VULKAN_HPP_USE_REFLECT )
  20447. # if 14 <= VULKAN_HPP_CPP_VERSION
  20448. auto
  20449. # else
  20450. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  20451. const void * const &,
  20452. const VULKAN_HPP_NAMESPACE::ImageCreateInfo * const &,
  20453. VULKAN_HPP_NAMESPACE::ImageAspectFlagBits const &>
  20454. # endif
  20455. reflect() const VULKAN_HPP_NOEXCEPT
  20456. {
  20457. return std::tie( sType, pNext, pCreateInfo, planeAspect );
  20458. }
  20459. #endif
  20460. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  20461. auto operator<=>( DeviceImageMemoryRequirements const & ) const = default;
  20462. #else
  20463. bool operator==( DeviceImageMemoryRequirements const & rhs ) const VULKAN_HPP_NOEXCEPT
  20464. {
  20465. # if defined( VULKAN_HPP_USE_REFLECT )
  20466. return this->reflect() == rhs.reflect();
  20467. # else
  20468. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( pCreateInfo == rhs.pCreateInfo ) && ( planeAspect == rhs.planeAspect );
  20469. # endif
  20470. }
  20471. bool operator!=( DeviceImageMemoryRequirements const & rhs ) const VULKAN_HPP_NOEXCEPT
  20472. {
  20473. return !operator==( rhs );
  20474. }
  20475. #endif
  20476. public:
  20477. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDeviceImageMemoryRequirements;
  20478. const void * pNext = {};
  20479. const VULKAN_HPP_NAMESPACE::ImageCreateInfo * pCreateInfo = {};
  20480. VULKAN_HPP_NAMESPACE::ImageAspectFlagBits planeAspect = VULKAN_HPP_NAMESPACE::ImageAspectFlagBits::eColor;
  20481. };
  20482. template <>
  20483. struct CppType<StructureType, StructureType::eDeviceImageMemoryRequirements>
  20484. {
  20485. using Type = DeviceImageMemoryRequirements;
  20486. };
  20487. using DeviceImageMemoryRequirementsKHR = DeviceImageMemoryRequirements;
  20488. struct DeviceMemoryOpaqueCaptureAddressInfo
  20489. {
  20490. using NativeType = VkDeviceMemoryOpaqueCaptureAddressInfo;
  20491. static const bool allowDuplicate = false;
  20492. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDeviceMemoryOpaqueCaptureAddressInfo;
  20493. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  20494. VULKAN_HPP_CONSTEXPR DeviceMemoryOpaqueCaptureAddressInfo( VULKAN_HPP_NAMESPACE::DeviceMemory memory_ = {},
  20495. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  20496. : pNext( pNext_ )
  20497. , memory( memory_ )
  20498. {
  20499. }
  20500. VULKAN_HPP_CONSTEXPR DeviceMemoryOpaqueCaptureAddressInfo( DeviceMemoryOpaqueCaptureAddressInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  20501. DeviceMemoryOpaqueCaptureAddressInfo( VkDeviceMemoryOpaqueCaptureAddressInfo const & rhs ) VULKAN_HPP_NOEXCEPT
  20502. : DeviceMemoryOpaqueCaptureAddressInfo( *reinterpret_cast<DeviceMemoryOpaqueCaptureAddressInfo const *>( &rhs ) )
  20503. {
  20504. }
  20505. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  20506. DeviceMemoryOpaqueCaptureAddressInfo & operator=( DeviceMemoryOpaqueCaptureAddressInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  20507. DeviceMemoryOpaqueCaptureAddressInfo & operator=( VkDeviceMemoryOpaqueCaptureAddressInfo const & rhs ) VULKAN_HPP_NOEXCEPT
  20508. {
  20509. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DeviceMemoryOpaqueCaptureAddressInfo const *>( &rhs );
  20510. return *this;
  20511. }
  20512. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  20513. VULKAN_HPP_CONSTEXPR_14 DeviceMemoryOpaqueCaptureAddressInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  20514. {
  20515. pNext = pNext_;
  20516. return *this;
  20517. }
  20518. VULKAN_HPP_CONSTEXPR_14 DeviceMemoryOpaqueCaptureAddressInfo & setMemory( VULKAN_HPP_NAMESPACE::DeviceMemory memory_ ) VULKAN_HPP_NOEXCEPT
  20519. {
  20520. memory = memory_;
  20521. return *this;
  20522. }
  20523. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  20524. operator VkDeviceMemoryOpaqueCaptureAddressInfo const &() const VULKAN_HPP_NOEXCEPT
  20525. {
  20526. return *reinterpret_cast<const VkDeviceMemoryOpaqueCaptureAddressInfo *>( this );
  20527. }
  20528. operator VkDeviceMemoryOpaqueCaptureAddressInfo &() VULKAN_HPP_NOEXCEPT
  20529. {
  20530. return *reinterpret_cast<VkDeviceMemoryOpaqueCaptureAddressInfo *>( this );
  20531. }
  20532. #if defined( VULKAN_HPP_USE_REFLECT )
  20533. # if 14 <= VULKAN_HPP_CPP_VERSION
  20534. auto
  20535. # else
  20536. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::DeviceMemory const &>
  20537. # endif
  20538. reflect() const VULKAN_HPP_NOEXCEPT
  20539. {
  20540. return std::tie( sType, pNext, memory );
  20541. }
  20542. #endif
  20543. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  20544. auto operator<=>( DeviceMemoryOpaqueCaptureAddressInfo const & ) const = default;
  20545. #else
  20546. bool operator==( DeviceMemoryOpaqueCaptureAddressInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  20547. {
  20548. # if defined( VULKAN_HPP_USE_REFLECT )
  20549. return this->reflect() == rhs.reflect();
  20550. # else
  20551. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( memory == rhs.memory );
  20552. # endif
  20553. }
  20554. bool operator!=( DeviceMemoryOpaqueCaptureAddressInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  20555. {
  20556. return !operator==( rhs );
  20557. }
  20558. #endif
  20559. public:
  20560. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDeviceMemoryOpaqueCaptureAddressInfo;
  20561. const void * pNext = {};
  20562. VULKAN_HPP_NAMESPACE::DeviceMemory memory = {};
  20563. };
  20564. template <>
  20565. struct CppType<StructureType, StructureType::eDeviceMemoryOpaqueCaptureAddressInfo>
  20566. {
  20567. using Type = DeviceMemoryOpaqueCaptureAddressInfo;
  20568. };
  20569. using DeviceMemoryOpaqueCaptureAddressInfoKHR = DeviceMemoryOpaqueCaptureAddressInfo;
  20570. struct DeviceMemoryOverallocationCreateInfoAMD
  20571. {
  20572. using NativeType = VkDeviceMemoryOverallocationCreateInfoAMD;
  20573. static const bool allowDuplicate = false;
  20574. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDeviceMemoryOverallocationCreateInfoAMD;
  20575. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  20576. VULKAN_HPP_CONSTEXPR DeviceMemoryOverallocationCreateInfoAMD(
  20577. VULKAN_HPP_NAMESPACE::MemoryOverallocationBehaviorAMD overallocationBehavior_ = VULKAN_HPP_NAMESPACE::MemoryOverallocationBehaviorAMD::eDefault,
  20578. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  20579. : pNext( pNext_ )
  20580. , overallocationBehavior( overallocationBehavior_ )
  20581. {
  20582. }
  20583. VULKAN_HPP_CONSTEXPR DeviceMemoryOverallocationCreateInfoAMD( DeviceMemoryOverallocationCreateInfoAMD const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  20584. DeviceMemoryOverallocationCreateInfoAMD( VkDeviceMemoryOverallocationCreateInfoAMD const & rhs ) VULKAN_HPP_NOEXCEPT
  20585. : DeviceMemoryOverallocationCreateInfoAMD( *reinterpret_cast<DeviceMemoryOverallocationCreateInfoAMD const *>( &rhs ) )
  20586. {
  20587. }
  20588. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  20589. DeviceMemoryOverallocationCreateInfoAMD & operator=( DeviceMemoryOverallocationCreateInfoAMD const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  20590. DeviceMemoryOverallocationCreateInfoAMD & operator=( VkDeviceMemoryOverallocationCreateInfoAMD const & rhs ) VULKAN_HPP_NOEXCEPT
  20591. {
  20592. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DeviceMemoryOverallocationCreateInfoAMD const *>( &rhs );
  20593. return *this;
  20594. }
  20595. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  20596. VULKAN_HPP_CONSTEXPR_14 DeviceMemoryOverallocationCreateInfoAMD & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  20597. {
  20598. pNext = pNext_;
  20599. return *this;
  20600. }
  20601. VULKAN_HPP_CONSTEXPR_14 DeviceMemoryOverallocationCreateInfoAMD &
  20602. setOverallocationBehavior( VULKAN_HPP_NAMESPACE::MemoryOverallocationBehaviorAMD overallocationBehavior_ ) VULKAN_HPP_NOEXCEPT
  20603. {
  20604. overallocationBehavior = overallocationBehavior_;
  20605. return *this;
  20606. }
  20607. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  20608. operator VkDeviceMemoryOverallocationCreateInfoAMD const &() const VULKAN_HPP_NOEXCEPT
  20609. {
  20610. return *reinterpret_cast<const VkDeviceMemoryOverallocationCreateInfoAMD *>( this );
  20611. }
  20612. operator VkDeviceMemoryOverallocationCreateInfoAMD &() VULKAN_HPP_NOEXCEPT
  20613. {
  20614. return *reinterpret_cast<VkDeviceMemoryOverallocationCreateInfoAMD *>( this );
  20615. }
  20616. #if defined( VULKAN_HPP_USE_REFLECT )
  20617. # if 14 <= VULKAN_HPP_CPP_VERSION
  20618. auto
  20619. # else
  20620. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::MemoryOverallocationBehaviorAMD const &>
  20621. # endif
  20622. reflect() const VULKAN_HPP_NOEXCEPT
  20623. {
  20624. return std::tie( sType, pNext, overallocationBehavior );
  20625. }
  20626. #endif
  20627. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  20628. auto operator<=>( DeviceMemoryOverallocationCreateInfoAMD const & ) const = default;
  20629. #else
  20630. bool operator==( DeviceMemoryOverallocationCreateInfoAMD const & rhs ) const VULKAN_HPP_NOEXCEPT
  20631. {
  20632. # if defined( VULKAN_HPP_USE_REFLECT )
  20633. return this->reflect() == rhs.reflect();
  20634. # else
  20635. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( overallocationBehavior == rhs.overallocationBehavior );
  20636. # endif
  20637. }
  20638. bool operator!=( DeviceMemoryOverallocationCreateInfoAMD const & rhs ) const VULKAN_HPP_NOEXCEPT
  20639. {
  20640. return !operator==( rhs );
  20641. }
  20642. #endif
  20643. public:
  20644. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDeviceMemoryOverallocationCreateInfoAMD;
  20645. const void * pNext = {};
  20646. VULKAN_HPP_NAMESPACE::MemoryOverallocationBehaviorAMD overallocationBehavior = VULKAN_HPP_NAMESPACE::MemoryOverallocationBehaviorAMD::eDefault;
  20647. };
  20648. template <>
  20649. struct CppType<StructureType, StructureType::eDeviceMemoryOverallocationCreateInfoAMD>
  20650. {
  20651. using Type = DeviceMemoryOverallocationCreateInfoAMD;
  20652. };
  20653. struct DeviceMemoryReportCallbackDataEXT
  20654. {
  20655. using NativeType = VkDeviceMemoryReportCallbackDataEXT;
  20656. static const bool allowDuplicate = false;
  20657. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDeviceMemoryReportCallbackDataEXT;
  20658. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  20659. VULKAN_HPP_CONSTEXPR DeviceMemoryReportCallbackDataEXT(
  20660. VULKAN_HPP_NAMESPACE::DeviceMemoryReportFlagsEXT flags_ = {},
  20661. VULKAN_HPP_NAMESPACE::DeviceMemoryReportEventTypeEXT type_ = VULKAN_HPP_NAMESPACE::DeviceMemoryReportEventTypeEXT::eAllocate,
  20662. uint64_t memoryObjectId_ = {},
  20663. VULKAN_HPP_NAMESPACE::DeviceSize size_ = {},
  20664. VULKAN_HPP_NAMESPACE::ObjectType objectType_ = VULKAN_HPP_NAMESPACE::ObjectType::eUnknown,
  20665. uint64_t objectHandle_ = {},
  20666. uint32_t heapIndex_ = {},
  20667. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  20668. : pNext( pNext_ )
  20669. , flags( flags_ )
  20670. , type( type_ )
  20671. , memoryObjectId( memoryObjectId_ )
  20672. , size( size_ )
  20673. , objectType( objectType_ )
  20674. , objectHandle( objectHandle_ )
  20675. , heapIndex( heapIndex_ )
  20676. {
  20677. }
  20678. VULKAN_HPP_CONSTEXPR DeviceMemoryReportCallbackDataEXT( DeviceMemoryReportCallbackDataEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  20679. DeviceMemoryReportCallbackDataEXT( VkDeviceMemoryReportCallbackDataEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  20680. : DeviceMemoryReportCallbackDataEXT( *reinterpret_cast<DeviceMemoryReportCallbackDataEXT const *>( &rhs ) )
  20681. {
  20682. }
  20683. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  20684. DeviceMemoryReportCallbackDataEXT & operator=( DeviceMemoryReportCallbackDataEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  20685. DeviceMemoryReportCallbackDataEXT & operator=( VkDeviceMemoryReportCallbackDataEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  20686. {
  20687. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DeviceMemoryReportCallbackDataEXT const *>( &rhs );
  20688. return *this;
  20689. }
  20690. operator VkDeviceMemoryReportCallbackDataEXT const &() const VULKAN_HPP_NOEXCEPT
  20691. {
  20692. return *reinterpret_cast<const VkDeviceMemoryReportCallbackDataEXT *>( this );
  20693. }
  20694. operator VkDeviceMemoryReportCallbackDataEXT &() VULKAN_HPP_NOEXCEPT
  20695. {
  20696. return *reinterpret_cast<VkDeviceMemoryReportCallbackDataEXT *>( this );
  20697. }
  20698. #if defined( VULKAN_HPP_USE_REFLECT )
  20699. # if 14 <= VULKAN_HPP_CPP_VERSION
  20700. auto
  20701. # else
  20702. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  20703. void * const &,
  20704. VULKAN_HPP_NAMESPACE::DeviceMemoryReportFlagsEXT const &,
  20705. VULKAN_HPP_NAMESPACE::DeviceMemoryReportEventTypeEXT const &,
  20706. uint64_t const &,
  20707. VULKAN_HPP_NAMESPACE::DeviceSize const &,
  20708. VULKAN_HPP_NAMESPACE::ObjectType const &,
  20709. uint64_t const &,
  20710. uint32_t const &>
  20711. # endif
  20712. reflect() const VULKAN_HPP_NOEXCEPT
  20713. {
  20714. return std::tie( sType, pNext, flags, type, memoryObjectId, size, objectType, objectHandle, heapIndex );
  20715. }
  20716. #endif
  20717. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  20718. auto operator<=>( DeviceMemoryReportCallbackDataEXT const & ) const = default;
  20719. #else
  20720. bool operator==( DeviceMemoryReportCallbackDataEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  20721. {
  20722. # if defined( VULKAN_HPP_USE_REFLECT )
  20723. return this->reflect() == rhs.reflect();
  20724. # else
  20725. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( flags == rhs.flags ) && ( type == rhs.type ) && ( memoryObjectId == rhs.memoryObjectId ) &&
  20726. ( size == rhs.size ) && ( objectType == rhs.objectType ) && ( objectHandle == rhs.objectHandle ) && ( heapIndex == rhs.heapIndex );
  20727. # endif
  20728. }
  20729. bool operator!=( DeviceMemoryReportCallbackDataEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  20730. {
  20731. return !operator==( rhs );
  20732. }
  20733. #endif
  20734. public:
  20735. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDeviceMemoryReportCallbackDataEXT;
  20736. void * pNext = {};
  20737. VULKAN_HPP_NAMESPACE::DeviceMemoryReportFlagsEXT flags = {};
  20738. VULKAN_HPP_NAMESPACE::DeviceMemoryReportEventTypeEXT type = VULKAN_HPP_NAMESPACE::DeviceMemoryReportEventTypeEXT::eAllocate;
  20739. uint64_t memoryObjectId = {};
  20740. VULKAN_HPP_NAMESPACE::DeviceSize size = {};
  20741. VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eUnknown;
  20742. uint64_t objectHandle = {};
  20743. uint32_t heapIndex = {};
  20744. };
  20745. template <>
  20746. struct CppType<StructureType, StructureType::eDeviceMemoryReportCallbackDataEXT>
  20747. {
  20748. using Type = DeviceMemoryReportCallbackDataEXT;
  20749. };
  20750. struct DevicePrivateDataCreateInfo
  20751. {
  20752. using NativeType = VkDevicePrivateDataCreateInfo;
  20753. static const bool allowDuplicate = true;
  20754. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDevicePrivateDataCreateInfo;
  20755. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  20756. VULKAN_HPP_CONSTEXPR DevicePrivateDataCreateInfo( uint32_t privateDataSlotRequestCount_ = {}, const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  20757. : pNext( pNext_ )
  20758. , privateDataSlotRequestCount( privateDataSlotRequestCount_ )
  20759. {
  20760. }
  20761. VULKAN_HPP_CONSTEXPR DevicePrivateDataCreateInfo( DevicePrivateDataCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  20762. DevicePrivateDataCreateInfo( VkDevicePrivateDataCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
  20763. : DevicePrivateDataCreateInfo( *reinterpret_cast<DevicePrivateDataCreateInfo const *>( &rhs ) )
  20764. {
  20765. }
  20766. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  20767. DevicePrivateDataCreateInfo & operator=( DevicePrivateDataCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  20768. DevicePrivateDataCreateInfo & operator=( VkDevicePrivateDataCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
  20769. {
  20770. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DevicePrivateDataCreateInfo const *>( &rhs );
  20771. return *this;
  20772. }
  20773. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  20774. VULKAN_HPP_CONSTEXPR_14 DevicePrivateDataCreateInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  20775. {
  20776. pNext = pNext_;
  20777. return *this;
  20778. }
  20779. VULKAN_HPP_CONSTEXPR_14 DevicePrivateDataCreateInfo & setPrivateDataSlotRequestCount( uint32_t privateDataSlotRequestCount_ ) VULKAN_HPP_NOEXCEPT
  20780. {
  20781. privateDataSlotRequestCount = privateDataSlotRequestCount_;
  20782. return *this;
  20783. }
  20784. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  20785. operator VkDevicePrivateDataCreateInfo const &() const VULKAN_HPP_NOEXCEPT
  20786. {
  20787. return *reinterpret_cast<const VkDevicePrivateDataCreateInfo *>( this );
  20788. }
  20789. operator VkDevicePrivateDataCreateInfo &() VULKAN_HPP_NOEXCEPT
  20790. {
  20791. return *reinterpret_cast<VkDevicePrivateDataCreateInfo *>( this );
  20792. }
  20793. #if defined( VULKAN_HPP_USE_REFLECT )
  20794. # if 14 <= VULKAN_HPP_CPP_VERSION
  20795. auto
  20796. # else
  20797. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, uint32_t const &>
  20798. # endif
  20799. reflect() const VULKAN_HPP_NOEXCEPT
  20800. {
  20801. return std::tie( sType, pNext, privateDataSlotRequestCount );
  20802. }
  20803. #endif
  20804. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  20805. auto operator<=>( DevicePrivateDataCreateInfo const & ) const = default;
  20806. #else
  20807. bool operator==( DevicePrivateDataCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  20808. {
  20809. # if defined( VULKAN_HPP_USE_REFLECT )
  20810. return this->reflect() == rhs.reflect();
  20811. # else
  20812. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( privateDataSlotRequestCount == rhs.privateDataSlotRequestCount );
  20813. # endif
  20814. }
  20815. bool operator!=( DevicePrivateDataCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  20816. {
  20817. return !operator==( rhs );
  20818. }
  20819. #endif
  20820. public:
  20821. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDevicePrivateDataCreateInfo;
  20822. const void * pNext = {};
  20823. uint32_t privateDataSlotRequestCount = {};
  20824. };
  20825. template <>
  20826. struct CppType<StructureType, StructureType::eDevicePrivateDataCreateInfo>
  20827. {
  20828. using Type = DevicePrivateDataCreateInfo;
  20829. };
  20830. using DevicePrivateDataCreateInfoEXT = DevicePrivateDataCreateInfo;
  20831. struct DeviceQueueGlobalPriorityCreateInfoKHR
  20832. {
  20833. using NativeType = VkDeviceQueueGlobalPriorityCreateInfoKHR;
  20834. static const bool allowDuplicate = false;
  20835. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDeviceQueueGlobalPriorityCreateInfoKHR;
  20836. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  20837. VULKAN_HPP_CONSTEXPR
  20838. DeviceQueueGlobalPriorityCreateInfoKHR( VULKAN_HPP_NAMESPACE::QueueGlobalPriorityKHR globalPriority_ = VULKAN_HPP_NAMESPACE::QueueGlobalPriorityKHR::eLow,
  20839. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  20840. : pNext( pNext_ )
  20841. , globalPriority( globalPriority_ )
  20842. {
  20843. }
  20844. VULKAN_HPP_CONSTEXPR DeviceQueueGlobalPriorityCreateInfoKHR( DeviceQueueGlobalPriorityCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  20845. DeviceQueueGlobalPriorityCreateInfoKHR( VkDeviceQueueGlobalPriorityCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  20846. : DeviceQueueGlobalPriorityCreateInfoKHR( *reinterpret_cast<DeviceQueueGlobalPriorityCreateInfoKHR const *>( &rhs ) )
  20847. {
  20848. }
  20849. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  20850. DeviceQueueGlobalPriorityCreateInfoKHR & operator=( DeviceQueueGlobalPriorityCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  20851. DeviceQueueGlobalPriorityCreateInfoKHR & operator=( VkDeviceQueueGlobalPriorityCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  20852. {
  20853. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DeviceQueueGlobalPriorityCreateInfoKHR const *>( &rhs );
  20854. return *this;
  20855. }
  20856. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  20857. VULKAN_HPP_CONSTEXPR_14 DeviceQueueGlobalPriorityCreateInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  20858. {
  20859. pNext = pNext_;
  20860. return *this;
  20861. }
  20862. VULKAN_HPP_CONSTEXPR_14 DeviceQueueGlobalPriorityCreateInfoKHR &
  20863. setGlobalPriority( VULKAN_HPP_NAMESPACE::QueueGlobalPriorityKHR globalPriority_ ) VULKAN_HPP_NOEXCEPT
  20864. {
  20865. globalPriority = globalPriority_;
  20866. return *this;
  20867. }
  20868. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  20869. operator VkDeviceQueueGlobalPriorityCreateInfoKHR const &() const VULKAN_HPP_NOEXCEPT
  20870. {
  20871. return *reinterpret_cast<const VkDeviceQueueGlobalPriorityCreateInfoKHR *>( this );
  20872. }
  20873. operator VkDeviceQueueGlobalPriorityCreateInfoKHR &() VULKAN_HPP_NOEXCEPT
  20874. {
  20875. return *reinterpret_cast<VkDeviceQueueGlobalPriorityCreateInfoKHR *>( this );
  20876. }
  20877. #if defined( VULKAN_HPP_USE_REFLECT )
  20878. # if 14 <= VULKAN_HPP_CPP_VERSION
  20879. auto
  20880. # else
  20881. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::QueueGlobalPriorityKHR const &>
  20882. # endif
  20883. reflect() const VULKAN_HPP_NOEXCEPT
  20884. {
  20885. return std::tie( sType, pNext, globalPriority );
  20886. }
  20887. #endif
  20888. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  20889. auto operator<=>( DeviceQueueGlobalPriorityCreateInfoKHR const & ) const = default;
  20890. #else
  20891. bool operator==( DeviceQueueGlobalPriorityCreateInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  20892. {
  20893. # if defined( VULKAN_HPP_USE_REFLECT )
  20894. return this->reflect() == rhs.reflect();
  20895. # else
  20896. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( globalPriority == rhs.globalPriority );
  20897. # endif
  20898. }
  20899. bool operator!=( DeviceQueueGlobalPriorityCreateInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  20900. {
  20901. return !operator==( rhs );
  20902. }
  20903. #endif
  20904. public:
  20905. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDeviceQueueGlobalPriorityCreateInfoKHR;
  20906. const void * pNext = {};
  20907. VULKAN_HPP_NAMESPACE::QueueGlobalPriorityKHR globalPriority = VULKAN_HPP_NAMESPACE::QueueGlobalPriorityKHR::eLow;
  20908. };
  20909. template <>
  20910. struct CppType<StructureType, StructureType::eDeviceQueueGlobalPriorityCreateInfoKHR>
  20911. {
  20912. using Type = DeviceQueueGlobalPriorityCreateInfoKHR;
  20913. };
  20914. using DeviceQueueGlobalPriorityCreateInfoEXT = DeviceQueueGlobalPriorityCreateInfoKHR;
  20915. struct DeviceQueueInfo2
  20916. {
  20917. using NativeType = VkDeviceQueueInfo2;
  20918. static const bool allowDuplicate = false;
  20919. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDeviceQueueInfo2;
  20920. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  20921. VULKAN_HPP_CONSTEXPR DeviceQueueInfo2( VULKAN_HPP_NAMESPACE::DeviceQueueCreateFlags flags_ = {},
  20922. uint32_t queueFamilyIndex_ = {},
  20923. uint32_t queueIndex_ = {},
  20924. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  20925. : pNext( pNext_ )
  20926. , flags( flags_ )
  20927. , queueFamilyIndex( queueFamilyIndex_ )
  20928. , queueIndex( queueIndex_ )
  20929. {
  20930. }
  20931. VULKAN_HPP_CONSTEXPR DeviceQueueInfo2( DeviceQueueInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  20932. DeviceQueueInfo2( VkDeviceQueueInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT : DeviceQueueInfo2( *reinterpret_cast<DeviceQueueInfo2 const *>( &rhs ) ) {}
  20933. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  20934. DeviceQueueInfo2 & operator=( DeviceQueueInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  20935. DeviceQueueInfo2 & operator=( VkDeviceQueueInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT
  20936. {
  20937. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DeviceQueueInfo2 const *>( &rhs );
  20938. return *this;
  20939. }
  20940. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  20941. VULKAN_HPP_CONSTEXPR_14 DeviceQueueInfo2 & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  20942. {
  20943. pNext = pNext_;
  20944. return *this;
  20945. }
  20946. VULKAN_HPP_CONSTEXPR_14 DeviceQueueInfo2 & setFlags( VULKAN_HPP_NAMESPACE::DeviceQueueCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT
  20947. {
  20948. flags = flags_;
  20949. return *this;
  20950. }
  20951. VULKAN_HPP_CONSTEXPR_14 DeviceQueueInfo2 & setQueueFamilyIndex( uint32_t queueFamilyIndex_ ) VULKAN_HPP_NOEXCEPT
  20952. {
  20953. queueFamilyIndex = queueFamilyIndex_;
  20954. return *this;
  20955. }
  20956. VULKAN_HPP_CONSTEXPR_14 DeviceQueueInfo2 & setQueueIndex( uint32_t queueIndex_ ) VULKAN_HPP_NOEXCEPT
  20957. {
  20958. queueIndex = queueIndex_;
  20959. return *this;
  20960. }
  20961. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  20962. operator VkDeviceQueueInfo2 const &() const VULKAN_HPP_NOEXCEPT
  20963. {
  20964. return *reinterpret_cast<const VkDeviceQueueInfo2 *>( this );
  20965. }
  20966. operator VkDeviceQueueInfo2 &() VULKAN_HPP_NOEXCEPT
  20967. {
  20968. return *reinterpret_cast<VkDeviceQueueInfo2 *>( this );
  20969. }
  20970. #if defined( VULKAN_HPP_USE_REFLECT )
  20971. # if 14 <= VULKAN_HPP_CPP_VERSION
  20972. auto
  20973. # else
  20974. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  20975. const void * const &,
  20976. VULKAN_HPP_NAMESPACE::DeviceQueueCreateFlags const &,
  20977. uint32_t const &,
  20978. uint32_t const &>
  20979. # endif
  20980. reflect() const VULKAN_HPP_NOEXCEPT
  20981. {
  20982. return std::tie( sType, pNext, flags, queueFamilyIndex, queueIndex );
  20983. }
  20984. #endif
  20985. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  20986. auto operator<=>( DeviceQueueInfo2 const & ) const = default;
  20987. #else
  20988. bool operator==( DeviceQueueInfo2 const & rhs ) const VULKAN_HPP_NOEXCEPT
  20989. {
  20990. # if defined( VULKAN_HPP_USE_REFLECT )
  20991. return this->reflect() == rhs.reflect();
  20992. # else
  20993. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( flags == rhs.flags ) && ( queueFamilyIndex == rhs.queueFamilyIndex ) &&
  20994. ( queueIndex == rhs.queueIndex );
  20995. # endif
  20996. }
  20997. bool operator!=( DeviceQueueInfo2 const & rhs ) const VULKAN_HPP_NOEXCEPT
  20998. {
  20999. return !operator==( rhs );
  21000. }
  21001. #endif
  21002. public:
  21003. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDeviceQueueInfo2;
  21004. const void * pNext = {};
  21005. VULKAN_HPP_NAMESPACE::DeviceQueueCreateFlags flags = {};
  21006. uint32_t queueFamilyIndex = {};
  21007. uint32_t queueIndex = {};
  21008. };
  21009. template <>
  21010. struct CppType<StructureType, StructureType::eDeviceQueueInfo2>
  21011. {
  21012. using Type = DeviceQueueInfo2;
  21013. };
  21014. #if defined( VK_USE_PLATFORM_DIRECTFB_EXT )
  21015. struct DirectFBSurfaceCreateInfoEXT
  21016. {
  21017. using NativeType = VkDirectFBSurfaceCreateInfoEXT;
  21018. static const bool allowDuplicate = false;
  21019. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDirectfbSurfaceCreateInfoEXT;
  21020. # if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  21021. VULKAN_HPP_CONSTEXPR DirectFBSurfaceCreateInfoEXT( VULKAN_HPP_NAMESPACE::DirectFBSurfaceCreateFlagsEXT flags_ = {},
  21022. IDirectFB * dfb_ = {},
  21023. IDirectFBSurface * surface_ = {},
  21024. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  21025. : pNext( pNext_ )
  21026. , flags( flags_ )
  21027. , dfb( dfb_ )
  21028. , surface( surface_ )
  21029. {
  21030. }
  21031. VULKAN_HPP_CONSTEXPR DirectFBSurfaceCreateInfoEXT( DirectFBSurfaceCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  21032. DirectFBSurfaceCreateInfoEXT( VkDirectFBSurfaceCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  21033. : DirectFBSurfaceCreateInfoEXT( *reinterpret_cast<DirectFBSurfaceCreateInfoEXT const *>( &rhs ) )
  21034. {
  21035. }
  21036. # endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  21037. DirectFBSurfaceCreateInfoEXT & operator=( DirectFBSurfaceCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  21038. DirectFBSurfaceCreateInfoEXT & operator=( VkDirectFBSurfaceCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  21039. {
  21040. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DirectFBSurfaceCreateInfoEXT const *>( &rhs );
  21041. return *this;
  21042. }
  21043. # if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  21044. VULKAN_HPP_CONSTEXPR_14 DirectFBSurfaceCreateInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  21045. {
  21046. pNext = pNext_;
  21047. return *this;
  21048. }
  21049. VULKAN_HPP_CONSTEXPR_14 DirectFBSurfaceCreateInfoEXT & setFlags( VULKAN_HPP_NAMESPACE::DirectFBSurfaceCreateFlagsEXT flags_ ) VULKAN_HPP_NOEXCEPT
  21050. {
  21051. flags = flags_;
  21052. return *this;
  21053. }
  21054. VULKAN_HPP_CONSTEXPR_14 DirectFBSurfaceCreateInfoEXT & setDfb( IDirectFB * dfb_ ) VULKAN_HPP_NOEXCEPT
  21055. {
  21056. dfb = dfb_;
  21057. return *this;
  21058. }
  21059. VULKAN_HPP_CONSTEXPR_14 DirectFBSurfaceCreateInfoEXT & setSurface( IDirectFBSurface * surface_ ) VULKAN_HPP_NOEXCEPT
  21060. {
  21061. surface = surface_;
  21062. return *this;
  21063. }
  21064. # endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  21065. operator VkDirectFBSurfaceCreateInfoEXT const &() const VULKAN_HPP_NOEXCEPT
  21066. {
  21067. return *reinterpret_cast<const VkDirectFBSurfaceCreateInfoEXT *>( this );
  21068. }
  21069. operator VkDirectFBSurfaceCreateInfoEXT &() VULKAN_HPP_NOEXCEPT
  21070. {
  21071. return *reinterpret_cast<VkDirectFBSurfaceCreateInfoEXT *>( this );
  21072. }
  21073. # if defined( VULKAN_HPP_USE_REFLECT )
  21074. # if 14 <= VULKAN_HPP_CPP_VERSION
  21075. auto
  21076. # else
  21077. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  21078. const void * const &,
  21079. VULKAN_HPP_NAMESPACE::DirectFBSurfaceCreateFlagsEXT const &,
  21080. IDirectFB * const &,
  21081. IDirectFBSurface * const &>
  21082. # endif
  21083. reflect() const VULKAN_HPP_NOEXCEPT
  21084. {
  21085. return std::tie( sType, pNext, flags, dfb, surface );
  21086. }
  21087. # endif
  21088. # if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  21089. auto operator<=>( DirectFBSurfaceCreateInfoEXT const & ) const = default;
  21090. # else
  21091. bool operator==( DirectFBSurfaceCreateInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  21092. {
  21093. # if defined( VULKAN_HPP_USE_REFLECT )
  21094. return this->reflect() == rhs.reflect();
  21095. # else
  21096. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( flags == rhs.flags ) && ( dfb == rhs.dfb ) && ( surface == rhs.surface );
  21097. # endif
  21098. }
  21099. bool operator!=( DirectFBSurfaceCreateInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  21100. {
  21101. return !operator==( rhs );
  21102. }
  21103. # endif
  21104. public:
  21105. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDirectfbSurfaceCreateInfoEXT;
  21106. const void * pNext = {};
  21107. VULKAN_HPP_NAMESPACE::DirectFBSurfaceCreateFlagsEXT flags = {};
  21108. IDirectFB * dfb = {};
  21109. IDirectFBSurface * surface = {};
  21110. };
  21111. template <>
  21112. struct CppType<StructureType, StructureType::eDirectfbSurfaceCreateInfoEXT>
  21113. {
  21114. using Type = DirectFBSurfaceCreateInfoEXT;
  21115. };
  21116. #endif /*VK_USE_PLATFORM_DIRECTFB_EXT*/
  21117. struct DispatchIndirectCommand
  21118. {
  21119. using NativeType = VkDispatchIndirectCommand;
  21120. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  21121. VULKAN_HPP_CONSTEXPR DispatchIndirectCommand( uint32_t x_ = {}, uint32_t y_ = {}, uint32_t z_ = {} ) VULKAN_HPP_NOEXCEPT
  21122. : x( x_ )
  21123. , y( y_ )
  21124. , z( z_ )
  21125. {
  21126. }
  21127. VULKAN_HPP_CONSTEXPR DispatchIndirectCommand( DispatchIndirectCommand const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  21128. DispatchIndirectCommand( VkDispatchIndirectCommand const & rhs ) VULKAN_HPP_NOEXCEPT
  21129. : DispatchIndirectCommand( *reinterpret_cast<DispatchIndirectCommand const *>( &rhs ) )
  21130. {
  21131. }
  21132. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  21133. DispatchIndirectCommand & operator=( DispatchIndirectCommand const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  21134. DispatchIndirectCommand & operator=( VkDispatchIndirectCommand const & rhs ) VULKAN_HPP_NOEXCEPT
  21135. {
  21136. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DispatchIndirectCommand const *>( &rhs );
  21137. return *this;
  21138. }
  21139. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  21140. VULKAN_HPP_CONSTEXPR_14 DispatchIndirectCommand & setX( uint32_t x_ ) VULKAN_HPP_NOEXCEPT
  21141. {
  21142. x = x_;
  21143. return *this;
  21144. }
  21145. VULKAN_HPP_CONSTEXPR_14 DispatchIndirectCommand & setY( uint32_t y_ ) VULKAN_HPP_NOEXCEPT
  21146. {
  21147. y = y_;
  21148. return *this;
  21149. }
  21150. VULKAN_HPP_CONSTEXPR_14 DispatchIndirectCommand & setZ( uint32_t z_ ) VULKAN_HPP_NOEXCEPT
  21151. {
  21152. z = z_;
  21153. return *this;
  21154. }
  21155. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  21156. operator VkDispatchIndirectCommand const &() const VULKAN_HPP_NOEXCEPT
  21157. {
  21158. return *reinterpret_cast<const VkDispatchIndirectCommand *>( this );
  21159. }
  21160. operator VkDispatchIndirectCommand &() VULKAN_HPP_NOEXCEPT
  21161. {
  21162. return *reinterpret_cast<VkDispatchIndirectCommand *>( 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 &>
  21169. # endif
  21170. reflect() const VULKAN_HPP_NOEXCEPT
  21171. {
  21172. return std::tie( x, y, z );
  21173. }
  21174. #endif
  21175. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  21176. auto operator<=>( DispatchIndirectCommand const & ) const = default;
  21177. #else
  21178. bool operator==( DispatchIndirectCommand const & rhs ) const VULKAN_HPP_NOEXCEPT
  21179. {
  21180. # if defined( VULKAN_HPP_USE_REFLECT )
  21181. return this->reflect() == rhs.reflect();
  21182. # else
  21183. return ( x == rhs.x ) && ( y == rhs.y ) && ( z == rhs.z );
  21184. # endif
  21185. }
  21186. bool operator!=( DispatchIndirectCommand const & rhs ) const VULKAN_HPP_NOEXCEPT
  21187. {
  21188. return !operator==( rhs );
  21189. }
  21190. #endif
  21191. public:
  21192. uint32_t x = {};
  21193. uint32_t y = {};
  21194. uint32_t z = {};
  21195. };
  21196. struct DisplayEventInfoEXT
  21197. {
  21198. using NativeType = VkDisplayEventInfoEXT;
  21199. static const bool allowDuplicate = false;
  21200. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDisplayEventInfoEXT;
  21201. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  21202. VULKAN_HPP_CONSTEXPR
  21203. DisplayEventInfoEXT( VULKAN_HPP_NAMESPACE::DisplayEventTypeEXT displayEvent_ = VULKAN_HPP_NAMESPACE::DisplayEventTypeEXT::eFirstPixelOut,
  21204. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  21205. : pNext( pNext_ )
  21206. , displayEvent( displayEvent_ )
  21207. {
  21208. }
  21209. VULKAN_HPP_CONSTEXPR DisplayEventInfoEXT( DisplayEventInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  21210. DisplayEventInfoEXT( VkDisplayEventInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT : DisplayEventInfoEXT( *reinterpret_cast<DisplayEventInfoEXT const *>( &rhs ) )
  21211. {
  21212. }
  21213. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  21214. DisplayEventInfoEXT & operator=( DisplayEventInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  21215. DisplayEventInfoEXT & operator=( VkDisplayEventInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  21216. {
  21217. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DisplayEventInfoEXT const *>( &rhs );
  21218. return *this;
  21219. }
  21220. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  21221. VULKAN_HPP_CONSTEXPR_14 DisplayEventInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  21222. {
  21223. pNext = pNext_;
  21224. return *this;
  21225. }
  21226. VULKAN_HPP_CONSTEXPR_14 DisplayEventInfoEXT & setDisplayEvent( VULKAN_HPP_NAMESPACE::DisplayEventTypeEXT displayEvent_ ) VULKAN_HPP_NOEXCEPT
  21227. {
  21228. displayEvent = displayEvent_;
  21229. return *this;
  21230. }
  21231. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  21232. operator VkDisplayEventInfoEXT const &() const VULKAN_HPP_NOEXCEPT
  21233. {
  21234. return *reinterpret_cast<const VkDisplayEventInfoEXT *>( this );
  21235. }
  21236. operator VkDisplayEventInfoEXT &() VULKAN_HPP_NOEXCEPT
  21237. {
  21238. return *reinterpret_cast<VkDisplayEventInfoEXT *>( this );
  21239. }
  21240. #if defined( VULKAN_HPP_USE_REFLECT )
  21241. # if 14 <= VULKAN_HPP_CPP_VERSION
  21242. auto
  21243. # else
  21244. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::DisplayEventTypeEXT const &>
  21245. # endif
  21246. reflect() const VULKAN_HPP_NOEXCEPT
  21247. {
  21248. return std::tie( sType, pNext, displayEvent );
  21249. }
  21250. #endif
  21251. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  21252. auto operator<=>( DisplayEventInfoEXT const & ) const = default;
  21253. #else
  21254. bool operator==( DisplayEventInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  21255. {
  21256. # if defined( VULKAN_HPP_USE_REFLECT )
  21257. return this->reflect() == rhs.reflect();
  21258. # else
  21259. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( displayEvent == rhs.displayEvent );
  21260. # endif
  21261. }
  21262. bool operator!=( DisplayEventInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  21263. {
  21264. return !operator==( rhs );
  21265. }
  21266. #endif
  21267. public:
  21268. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDisplayEventInfoEXT;
  21269. const void * pNext = {};
  21270. VULKAN_HPP_NAMESPACE::DisplayEventTypeEXT displayEvent = VULKAN_HPP_NAMESPACE::DisplayEventTypeEXT::eFirstPixelOut;
  21271. };
  21272. template <>
  21273. struct CppType<StructureType, StructureType::eDisplayEventInfoEXT>
  21274. {
  21275. using Type = DisplayEventInfoEXT;
  21276. };
  21277. struct DisplayModeParametersKHR
  21278. {
  21279. using NativeType = VkDisplayModeParametersKHR;
  21280. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  21281. VULKAN_HPP_CONSTEXPR DisplayModeParametersKHR( VULKAN_HPP_NAMESPACE::Extent2D visibleRegion_ = {}, uint32_t refreshRate_ = {} ) VULKAN_HPP_NOEXCEPT
  21282. : visibleRegion( visibleRegion_ )
  21283. , refreshRate( refreshRate_ )
  21284. {
  21285. }
  21286. VULKAN_HPP_CONSTEXPR DisplayModeParametersKHR( DisplayModeParametersKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  21287. DisplayModeParametersKHR( VkDisplayModeParametersKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  21288. : DisplayModeParametersKHR( *reinterpret_cast<DisplayModeParametersKHR const *>( &rhs ) )
  21289. {
  21290. }
  21291. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  21292. DisplayModeParametersKHR & operator=( DisplayModeParametersKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  21293. DisplayModeParametersKHR & operator=( VkDisplayModeParametersKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  21294. {
  21295. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DisplayModeParametersKHR const *>( &rhs );
  21296. return *this;
  21297. }
  21298. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  21299. VULKAN_HPP_CONSTEXPR_14 DisplayModeParametersKHR & setVisibleRegion( VULKAN_HPP_NAMESPACE::Extent2D const & visibleRegion_ ) VULKAN_HPP_NOEXCEPT
  21300. {
  21301. visibleRegion = visibleRegion_;
  21302. return *this;
  21303. }
  21304. VULKAN_HPP_CONSTEXPR_14 DisplayModeParametersKHR & setRefreshRate( uint32_t refreshRate_ ) VULKAN_HPP_NOEXCEPT
  21305. {
  21306. refreshRate = refreshRate_;
  21307. return *this;
  21308. }
  21309. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  21310. operator VkDisplayModeParametersKHR const &() const VULKAN_HPP_NOEXCEPT
  21311. {
  21312. return *reinterpret_cast<const VkDisplayModeParametersKHR *>( this );
  21313. }
  21314. operator VkDisplayModeParametersKHR &() VULKAN_HPP_NOEXCEPT
  21315. {
  21316. return *reinterpret_cast<VkDisplayModeParametersKHR *>( this );
  21317. }
  21318. #if defined( VULKAN_HPP_USE_REFLECT )
  21319. # if 14 <= VULKAN_HPP_CPP_VERSION
  21320. auto
  21321. # else
  21322. std::tuple<VULKAN_HPP_NAMESPACE::Extent2D const &, uint32_t const &>
  21323. # endif
  21324. reflect() const VULKAN_HPP_NOEXCEPT
  21325. {
  21326. return std::tie( visibleRegion, refreshRate );
  21327. }
  21328. #endif
  21329. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  21330. auto operator<=>( DisplayModeParametersKHR const & ) const = default;
  21331. #else
  21332. bool operator==( DisplayModeParametersKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  21333. {
  21334. # if defined( VULKAN_HPP_USE_REFLECT )
  21335. return this->reflect() == rhs.reflect();
  21336. # else
  21337. return ( visibleRegion == rhs.visibleRegion ) && ( refreshRate == rhs.refreshRate );
  21338. # endif
  21339. }
  21340. bool operator!=( DisplayModeParametersKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  21341. {
  21342. return !operator==( rhs );
  21343. }
  21344. #endif
  21345. public:
  21346. VULKAN_HPP_NAMESPACE::Extent2D visibleRegion = {};
  21347. uint32_t refreshRate = {};
  21348. };
  21349. struct DisplayModeCreateInfoKHR
  21350. {
  21351. using NativeType = VkDisplayModeCreateInfoKHR;
  21352. static const bool allowDuplicate = false;
  21353. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDisplayModeCreateInfoKHR;
  21354. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  21355. VULKAN_HPP_CONSTEXPR DisplayModeCreateInfoKHR( VULKAN_HPP_NAMESPACE::DisplayModeCreateFlagsKHR flags_ = {},
  21356. VULKAN_HPP_NAMESPACE::DisplayModeParametersKHR parameters_ = {},
  21357. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  21358. : pNext( pNext_ )
  21359. , flags( flags_ )
  21360. , parameters( parameters_ )
  21361. {
  21362. }
  21363. VULKAN_HPP_CONSTEXPR DisplayModeCreateInfoKHR( DisplayModeCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  21364. DisplayModeCreateInfoKHR( VkDisplayModeCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  21365. : DisplayModeCreateInfoKHR( *reinterpret_cast<DisplayModeCreateInfoKHR const *>( &rhs ) )
  21366. {
  21367. }
  21368. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  21369. DisplayModeCreateInfoKHR & operator=( DisplayModeCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  21370. DisplayModeCreateInfoKHR & operator=( VkDisplayModeCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  21371. {
  21372. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DisplayModeCreateInfoKHR const *>( &rhs );
  21373. return *this;
  21374. }
  21375. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  21376. VULKAN_HPP_CONSTEXPR_14 DisplayModeCreateInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  21377. {
  21378. pNext = pNext_;
  21379. return *this;
  21380. }
  21381. VULKAN_HPP_CONSTEXPR_14 DisplayModeCreateInfoKHR & setFlags( VULKAN_HPP_NAMESPACE::DisplayModeCreateFlagsKHR flags_ ) VULKAN_HPP_NOEXCEPT
  21382. {
  21383. flags = flags_;
  21384. return *this;
  21385. }
  21386. VULKAN_HPP_CONSTEXPR_14 DisplayModeCreateInfoKHR & setParameters( VULKAN_HPP_NAMESPACE::DisplayModeParametersKHR const & parameters_ ) VULKAN_HPP_NOEXCEPT
  21387. {
  21388. parameters = parameters_;
  21389. return *this;
  21390. }
  21391. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  21392. operator VkDisplayModeCreateInfoKHR const &() const VULKAN_HPP_NOEXCEPT
  21393. {
  21394. return *reinterpret_cast<const VkDisplayModeCreateInfoKHR *>( this );
  21395. }
  21396. operator VkDisplayModeCreateInfoKHR &() VULKAN_HPP_NOEXCEPT
  21397. {
  21398. return *reinterpret_cast<VkDisplayModeCreateInfoKHR *>( this );
  21399. }
  21400. #if defined( VULKAN_HPP_USE_REFLECT )
  21401. # if 14 <= VULKAN_HPP_CPP_VERSION
  21402. auto
  21403. # else
  21404. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  21405. const void * const &,
  21406. VULKAN_HPP_NAMESPACE::DisplayModeCreateFlagsKHR const &,
  21407. VULKAN_HPP_NAMESPACE::DisplayModeParametersKHR const &>
  21408. # endif
  21409. reflect() const VULKAN_HPP_NOEXCEPT
  21410. {
  21411. return std::tie( sType, pNext, flags, parameters );
  21412. }
  21413. #endif
  21414. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  21415. auto operator<=>( DisplayModeCreateInfoKHR const & ) const = default;
  21416. #else
  21417. bool operator==( DisplayModeCreateInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  21418. {
  21419. # if defined( VULKAN_HPP_USE_REFLECT )
  21420. return this->reflect() == rhs.reflect();
  21421. # else
  21422. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( flags == rhs.flags ) && ( parameters == rhs.parameters );
  21423. # endif
  21424. }
  21425. bool operator!=( DisplayModeCreateInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  21426. {
  21427. return !operator==( rhs );
  21428. }
  21429. #endif
  21430. public:
  21431. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDisplayModeCreateInfoKHR;
  21432. const void * pNext = {};
  21433. VULKAN_HPP_NAMESPACE::DisplayModeCreateFlagsKHR flags = {};
  21434. VULKAN_HPP_NAMESPACE::DisplayModeParametersKHR parameters = {};
  21435. };
  21436. template <>
  21437. struct CppType<StructureType, StructureType::eDisplayModeCreateInfoKHR>
  21438. {
  21439. using Type = DisplayModeCreateInfoKHR;
  21440. };
  21441. struct DisplayModePropertiesKHR
  21442. {
  21443. using NativeType = VkDisplayModePropertiesKHR;
  21444. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  21445. VULKAN_HPP_CONSTEXPR DisplayModePropertiesKHR( VULKAN_HPP_NAMESPACE::DisplayModeKHR displayMode_ = {},
  21446. VULKAN_HPP_NAMESPACE::DisplayModeParametersKHR parameters_ = {} ) VULKAN_HPP_NOEXCEPT
  21447. : displayMode( displayMode_ )
  21448. , parameters( parameters_ )
  21449. {
  21450. }
  21451. VULKAN_HPP_CONSTEXPR DisplayModePropertiesKHR( DisplayModePropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  21452. DisplayModePropertiesKHR( VkDisplayModePropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  21453. : DisplayModePropertiesKHR( *reinterpret_cast<DisplayModePropertiesKHR const *>( &rhs ) )
  21454. {
  21455. }
  21456. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  21457. DisplayModePropertiesKHR & operator=( DisplayModePropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  21458. DisplayModePropertiesKHR & operator=( VkDisplayModePropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  21459. {
  21460. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DisplayModePropertiesKHR const *>( &rhs );
  21461. return *this;
  21462. }
  21463. operator VkDisplayModePropertiesKHR const &() const VULKAN_HPP_NOEXCEPT
  21464. {
  21465. return *reinterpret_cast<const VkDisplayModePropertiesKHR *>( this );
  21466. }
  21467. operator VkDisplayModePropertiesKHR &() VULKAN_HPP_NOEXCEPT
  21468. {
  21469. return *reinterpret_cast<VkDisplayModePropertiesKHR *>( this );
  21470. }
  21471. #if defined( VULKAN_HPP_USE_REFLECT )
  21472. # if 14 <= VULKAN_HPP_CPP_VERSION
  21473. auto
  21474. # else
  21475. std::tuple<VULKAN_HPP_NAMESPACE::DisplayModeKHR const &, VULKAN_HPP_NAMESPACE::DisplayModeParametersKHR const &>
  21476. # endif
  21477. reflect() const VULKAN_HPP_NOEXCEPT
  21478. {
  21479. return std::tie( displayMode, parameters );
  21480. }
  21481. #endif
  21482. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  21483. auto operator<=>( DisplayModePropertiesKHR const & ) const = default;
  21484. #else
  21485. bool operator==( DisplayModePropertiesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  21486. {
  21487. # if defined( VULKAN_HPP_USE_REFLECT )
  21488. return this->reflect() == rhs.reflect();
  21489. # else
  21490. return ( displayMode == rhs.displayMode ) && ( parameters == rhs.parameters );
  21491. # endif
  21492. }
  21493. bool operator!=( DisplayModePropertiesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  21494. {
  21495. return !operator==( rhs );
  21496. }
  21497. #endif
  21498. public:
  21499. VULKAN_HPP_NAMESPACE::DisplayModeKHR displayMode = {};
  21500. VULKAN_HPP_NAMESPACE::DisplayModeParametersKHR parameters = {};
  21501. };
  21502. struct DisplayModeProperties2KHR
  21503. {
  21504. using NativeType = VkDisplayModeProperties2KHR;
  21505. static const bool allowDuplicate = false;
  21506. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDisplayModeProperties2KHR;
  21507. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  21508. VULKAN_HPP_CONSTEXPR DisplayModeProperties2KHR( VULKAN_HPP_NAMESPACE::DisplayModePropertiesKHR displayModeProperties_ = {},
  21509. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  21510. : pNext( pNext_ )
  21511. , displayModeProperties( displayModeProperties_ )
  21512. {
  21513. }
  21514. VULKAN_HPP_CONSTEXPR DisplayModeProperties2KHR( DisplayModeProperties2KHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  21515. DisplayModeProperties2KHR( VkDisplayModeProperties2KHR const & rhs ) VULKAN_HPP_NOEXCEPT
  21516. : DisplayModeProperties2KHR( *reinterpret_cast<DisplayModeProperties2KHR const *>( &rhs ) )
  21517. {
  21518. }
  21519. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  21520. DisplayModeProperties2KHR & operator=( DisplayModeProperties2KHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  21521. DisplayModeProperties2KHR & operator=( VkDisplayModeProperties2KHR const & rhs ) VULKAN_HPP_NOEXCEPT
  21522. {
  21523. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DisplayModeProperties2KHR const *>( &rhs );
  21524. return *this;
  21525. }
  21526. operator VkDisplayModeProperties2KHR const &() const VULKAN_HPP_NOEXCEPT
  21527. {
  21528. return *reinterpret_cast<const VkDisplayModeProperties2KHR *>( this );
  21529. }
  21530. operator VkDisplayModeProperties2KHR &() VULKAN_HPP_NOEXCEPT
  21531. {
  21532. return *reinterpret_cast<VkDisplayModeProperties2KHR *>( this );
  21533. }
  21534. #if defined( VULKAN_HPP_USE_REFLECT )
  21535. # if 14 <= VULKAN_HPP_CPP_VERSION
  21536. auto
  21537. # else
  21538. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::DisplayModePropertiesKHR const &>
  21539. # endif
  21540. reflect() const VULKAN_HPP_NOEXCEPT
  21541. {
  21542. return std::tie( sType, pNext, displayModeProperties );
  21543. }
  21544. #endif
  21545. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  21546. auto operator<=>( DisplayModeProperties2KHR const & ) const = default;
  21547. #else
  21548. bool operator==( DisplayModeProperties2KHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  21549. {
  21550. # if defined( VULKAN_HPP_USE_REFLECT )
  21551. return this->reflect() == rhs.reflect();
  21552. # else
  21553. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( displayModeProperties == rhs.displayModeProperties );
  21554. # endif
  21555. }
  21556. bool operator!=( DisplayModeProperties2KHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  21557. {
  21558. return !operator==( rhs );
  21559. }
  21560. #endif
  21561. public:
  21562. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDisplayModeProperties2KHR;
  21563. void * pNext = {};
  21564. VULKAN_HPP_NAMESPACE::DisplayModePropertiesKHR displayModeProperties = {};
  21565. };
  21566. template <>
  21567. struct CppType<StructureType, StructureType::eDisplayModeProperties2KHR>
  21568. {
  21569. using Type = DisplayModeProperties2KHR;
  21570. };
  21571. struct DisplayNativeHdrSurfaceCapabilitiesAMD
  21572. {
  21573. using NativeType = VkDisplayNativeHdrSurfaceCapabilitiesAMD;
  21574. static const bool allowDuplicate = false;
  21575. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDisplayNativeHdrSurfaceCapabilitiesAMD;
  21576. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  21577. VULKAN_HPP_CONSTEXPR DisplayNativeHdrSurfaceCapabilitiesAMD( VULKAN_HPP_NAMESPACE::Bool32 localDimmingSupport_ = {},
  21578. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  21579. : pNext( pNext_ )
  21580. , localDimmingSupport( localDimmingSupport_ )
  21581. {
  21582. }
  21583. VULKAN_HPP_CONSTEXPR DisplayNativeHdrSurfaceCapabilitiesAMD( DisplayNativeHdrSurfaceCapabilitiesAMD const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  21584. DisplayNativeHdrSurfaceCapabilitiesAMD( VkDisplayNativeHdrSurfaceCapabilitiesAMD const & rhs ) VULKAN_HPP_NOEXCEPT
  21585. : DisplayNativeHdrSurfaceCapabilitiesAMD( *reinterpret_cast<DisplayNativeHdrSurfaceCapabilitiesAMD const *>( &rhs ) )
  21586. {
  21587. }
  21588. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  21589. DisplayNativeHdrSurfaceCapabilitiesAMD & operator=( DisplayNativeHdrSurfaceCapabilitiesAMD const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  21590. DisplayNativeHdrSurfaceCapabilitiesAMD & operator=( VkDisplayNativeHdrSurfaceCapabilitiesAMD const & rhs ) VULKAN_HPP_NOEXCEPT
  21591. {
  21592. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DisplayNativeHdrSurfaceCapabilitiesAMD const *>( &rhs );
  21593. return *this;
  21594. }
  21595. operator VkDisplayNativeHdrSurfaceCapabilitiesAMD const &() const VULKAN_HPP_NOEXCEPT
  21596. {
  21597. return *reinterpret_cast<const VkDisplayNativeHdrSurfaceCapabilitiesAMD *>( this );
  21598. }
  21599. operator VkDisplayNativeHdrSurfaceCapabilitiesAMD &() VULKAN_HPP_NOEXCEPT
  21600. {
  21601. return *reinterpret_cast<VkDisplayNativeHdrSurfaceCapabilitiesAMD *>( this );
  21602. }
  21603. #if defined( VULKAN_HPP_USE_REFLECT )
  21604. # if 14 <= VULKAN_HPP_CPP_VERSION
  21605. auto
  21606. # else
  21607. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
  21608. # endif
  21609. reflect() const VULKAN_HPP_NOEXCEPT
  21610. {
  21611. return std::tie( sType, pNext, localDimmingSupport );
  21612. }
  21613. #endif
  21614. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  21615. auto operator<=>( DisplayNativeHdrSurfaceCapabilitiesAMD const & ) const = default;
  21616. #else
  21617. bool operator==( DisplayNativeHdrSurfaceCapabilitiesAMD const & rhs ) const VULKAN_HPP_NOEXCEPT
  21618. {
  21619. # if defined( VULKAN_HPP_USE_REFLECT )
  21620. return this->reflect() == rhs.reflect();
  21621. # else
  21622. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( localDimmingSupport == rhs.localDimmingSupport );
  21623. # endif
  21624. }
  21625. bool operator!=( DisplayNativeHdrSurfaceCapabilitiesAMD const & rhs ) const VULKAN_HPP_NOEXCEPT
  21626. {
  21627. return !operator==( rhs );
  21628. }
  21629. #endif
  21630. public:
  21631. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDisplayNativeHdrSurfaceCapabilitiesAMD;
  21632. void * pNext = {};
  21633. VULKAN_HPP_NAMESPACE::Bool32 localDimmingSupport = {};
  21634. };
  21635. template <>
  21636. struct CppType<StructureType, StructureType::eDisplayNativeHdrSurfaceCapabilitiesAMD>
  21637. {
  21638. using Type = DisplayNativeHdrSurfaceCapabilitiesAMD;
  21639. };
  21640. struct DisplayPlaneCapabilitiesKHR
  21641. {
  21642. using NativeType = VkDisplayPlaneCapabilitiesKHR;
  21643. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  21644. VULKAN_HPP_CONSTEXPR DisplayPlaneCapabilitiesKHR( VULKAN_HPP_NAMESPACE::DisplayPlaneAlphaFlagsKHR supportedAlpha_ = {},
  21645. VULKAN_HPP_NAMESPACE::Offset2D minSrcPosition_ = {},
  21646. VULKAN_HPP_NAMESPACE::Offset2D maxSrcPosition_ = {},
  21647. VULKAN_HPP_NAMESPACE::Extent2D minSrcExtent_ = {},
  21648. VULKAN_HPP_NAMESPACE::Extent2D maxSrcExtent_ = {},
  21649. VULKAN_HPP_NAMESPACE::Offset2D minDstPosition_ = {},
  21650. VULKAN_HPP_NAMESPACE::Offset2D maxDstPosition_ = {},
  21651. VULKAN_HPP_NAMESPACE::Extent2D minDstExtent_ = {},
  21652. VULKAN_HPP_NAMESPACE::Extent2D maxDstExtent_ = {} ) VULKAN_HPP_NOEXCEPT
  21653. : supportedAlpha( supportedAlpha_ )
  21654. , minSrcPosition( minSrcPosition_ )
  21655. , maxSrcPosition( maxSrcPosition_ )
  21656. , minSrcExtent( minSrcExtent_ )
  21657. , maxSrcExtent( maxSrcExtent_ )
  21658. , minDstPosition( minDstPosition_ )
  21659. , maxDstPosition( maxDstPosition_ )
  21660. , minDstExtent( minDstExtent_ )
  21661. , maxDstExtent( maxDstExtent_ )
  21662. {
  21663. }
  21664. VULKAN_HPP_CONSTEXPR DisplayPlaneCapabilitiesKHR( DisplayPlaneCapabilitiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  21665. DisplayPlaneCapabilitiesKHR( VkDisplayPlaneCapabilitiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  21666. : DisplayPlaneCapabilitiesKHR( *reinterpret_cast<DisplayPlaneCapabilitiesKHR const *>( &rhs ) )
  21667. {
  21668. }
  21669. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  21670. DisplayPlaneCapabilitiesKHR & operator=( DisplayPlaneCapabilitiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  21671. DisplayPlaneCapabilitiesKHR & operator=( VkDisplayPlaneCapabilitiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  21672. {
  21673. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DisplayPlaneCapabilitiesKHR const *>( &rhs );
  21674. return *this;
  21675. }
  21676. operator VkDisplayPlaneCapabilitiesKHR const &() const VULKAN_HPP_NOEXCEPT
  21677. {
  21678. return *reinterpret_cast<const VkDisplayPlaneCapabilitiesKHR *>( this );
  21679. }
  21680. operator VkDisplayPlaneCapabilitiesKHR &() VULKAN_HPP_NOEXCEPT
  21681. {
  21682. return *reinterpret_cast<VkDisplayPlaneCapabilitiesKHR *>( this );
  21683. }
  21684. #if defined( VULKAN_HPP_USE_REFLECT )
  21685. # if 14 <= VULKAN_HPP_CPP_VERSION
  21686. auto
  21687. # else
  21688. std::tuple<VULKAN_HPP_NAMESPACE::DisplayPlaneAlphaFlagsKHR const &,
  21689. VULKAN_HPP_NAMESPACE::Offset2D const &,
  21690. VULKAN_HPP_NAMESPACE::Offset2D const &,
  21691. VULKAN_HPP_NAMESPACE::Extent2D const &,
  21692. VULKAN_HPP_NAMESPACE::Extent2D const &,
  21693. VULKAN_HPP_NAMESPACE::Offset2D const &,
  21694. VULKAN_HPP_NAMESPACE::Offset2D const &,
  21695. VULKAN_HPP_NAMESPACE::Extent2D const &,
  21696. VULKAN_HPP_NAMESPACE::Extent2D const &>
  21697. # endif
  21698. reflect() const VULKAN_HPP_NOEXCEPT
  21699. {
  21700. return std::tie( supportedAlpha, minSrcPosition, maxSrcPosition, minSrcExtent, maxSrcExtent, minDstPosition, maxDstPosition, minDstExtent, maxDstExtent );
  21701. }
  21702. #endif
  21703. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  21704. auto operator<=>( DisplayPlaneCapabilitiesKHR const & ) const = default;
  21705. #else
  21706. bool operator==( DisplayPlaneCapabilitiesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  21707. {
  21708. # if defined( VULKAN_HPP_USE_REFLECT )
  21709. return this->reflect() == rhs.reflect();
  21710. # else
  21711. return ( supportedAlpha == rhs.supportedAlpha ) && ( minSrcPosition == rhs.minSrcPosition ) && ( maxSrcPosition == rhs.maxSrcPosition ) &&
  21712. ( minSrcExtent == rhs.minSrcExtent ) && ( maxSrcExtent == rhs.maxSrcExtent ) && ( minDstPosition == rhs.minDstPosition ) &&
  21713. ( maxDstPosition == rhs.maxDstPosition ) && ( minDstExtent == rhs.minDstExtent ) && ( maxDstExtent == rhs.maxDstExtent );
  21714. # endif
  21715. }
  21716. bool operator!=( DisplayPlaneCapabilitiesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  21717. {
  21718. return !operator==( rhs );
  21719. }
  21720. #endif
  21721. public:
  21722. VULKAN_HPP_NAMESPACE::DisplayPlaneAlphaFlagsKHR supportedAlpha = {};
  21723. VULKAN_HPP_NAMESPACE::Offset2D minSrcPosition = {};
  21724. VULKAN_HPP_NAMESPACE::Offset2D maxSrcPosition = {};
  21725. VULKAN_HPP_NAMESPACE::Extent2D minSrcExtent = {};
  21726. VULKAN_HPP_NAMESPACE::Extent2D maxSrcExtent = {};
  21727. VULKAN_HPP_NAMESPACE::Offset2D minDstPosition = {};
  21728. VULKAN_HPP_NAMESPACE::Offset2D maxDstPosition = {};
  21729. VULKAN_HPP_NAMESPACE::Extent2D minDstExtent = {};
  21730. VULKAN_HPP_NAMESPACE::Extent2D maxDstExtent = {};
  21731. };
  21732. struct DisplayPlaneCapabilities2KHR
  21733. {
  21734. using NativeType = VkDisplayPlaneCapabilities2KHR;
  21735. static const bool allowDuplicate = false;
  21736. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDisplayPlaneCapabilities2KHR;
  21737. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  21738. VULKAN_HPP_CONSTEXPR DisplayPlaneCapabilities2KHR( VULKAN_HPP_NAMESPACE::DisplayPlaneCapabilitiesKHR capabilities_ = {},
  21739. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  21740. : pNext( pNext_ )
  21741. , capabilities( capabilities_ )
  21742. {
  21743. }
  21744. VULKAN_HPP_CONSTEXPR DisplayPlaneCapabilities2KHR( DisplayPlaneCapabilities2KHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  21745. DisplayPlaneCapabilities2KHR( VkDisplayPlaneCapabilities2KHR const & rhs ) VULKAN_HPP_NOEXCEPT
  21746. : DisplayPlaneCapabilities2KHR( *reinterpret_cast<DisplayPlaneCapabilities2KHR const *>( &rhs ) )
  21747. {
  21748. }
  21749. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  21750. DisplayPlaneCapabilities2KHR & operator=( DisplayPlaneCapabilities2KHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  21751. DisplayPlaneCapabilities2KHR & operator=( VkDisplayPlaneCapabilities2KHR const & rhs ) VULKAN_HPP_NOEXCEPT
  21752. {
  21753. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DisplayPlaneCapabilities2KHR const *>( &rhs );
  21754. return *this;
  21755. }
  21756. operator VkDisplayPlaneCapabilities2KHR const &() const VULKAN_HPP_NOEXCEPT
  21757. {
  21758. return *reinterpret_cast<const VkDisplayPlaneCapabilities2KHR *>( this );
  21759. }
  21760. operator VkDisplayPlaneCapabilities2KHR &() VULKAN_HPP_NOEXCEPT
  21761. {
  21762. return *reinterpret_cast<VkDisplayPlaneCapabilities2KHR *>( this );
  21763. }
  21764. #if defined( VULKAN_HPP_USE_REFLECT )
  21765. # if 14 <= VULKAN_HPP_CPP_VERSION
  21766. auto
  21767. # else
  21768. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::DisplayPlaneCapabilitiesKHR const &>
  21769. # endif
  21770. reflect() const VULKAN_HPP_NOEXCEPT
  21771. {
  21772. return std::tie( sType, pNext, capabilities );
  21773. }
  21774. #endif
  21775. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  21776. auto operator<=>( DisplayPlaneCapabilities2KHR const & ) const = default;
  21777. #else
  21778. bool operator==( DisplayPlaneCapabilities2KHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  21779. {
  21780. # if defined( VULKAN_HPP_USE_REFLECT )
  21781. return this->reflect() == rhs.reflect();
  21782. # else
  21783. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( capabilities == rhs.capabilities );
  21784. # endif
  21785. }
  21786. bool operator!=( DisplayPlaneCapabilities2KHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  21787. {
  21788. return !operator==( rhs );
  21789. }
  21790. #endif
  21791. public:
  21792. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDisplayPlaneCapabilities2KHR;
  21793. void * pNext = {};
  21794. VULKAN_HPP_NAMESPACE::DisplayPlaneCapabilitiesKHR capabilities = {};
  21795. };
  21796. template <>
  21797. struct CppType<StructureType, StructureType::eDisplayPlaneCapabilities2KHR>
  21798. {
  21799. using Type = DisplayPlaneCapabilities2KHR;
  21800. };
  21801. struct DisplayPlaneInfo2KHR
  21802. {
  21803. using NativeType = VkDisplayPlaneInfo2KHR;
  21804. static const bool allowDuplicate = false;
  21805. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDisplayPlaneInfo2KHR;
  21806. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  21807. VULKAN_HPP_CONSTEXPR
  21808. DisplayPlaneInfo2KHR( VULKAN_HPP_NAMESPACE::DisplayModeKHR mode_ = {}, uint32_t planeIndex_ = {}, const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  21809. : pNext( pNext_ )
  21810. , mode( mode_ )
  21811. , planeIndex( planeIndex_ )
  21812. {
  21813. }
  21814. VULKAN_HPP_CONSTEXPR DisplayPlaneInfo2KHR( DisplayPlaneInfo2KHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  21815. DisplayPlaneInfo2KHR( VkDisplayPlaneInfo2KHR const & rhs ) VULKAN_HPP_NOEXCEPT
  21816. : DisplayPlaneInfo2KHR( *reinterpret_cast<DisplayPlaneInfo2KHR const *>( &rhs ) )
  21817. {
  21818. }
  21819. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  21820. DisplayPlaneInfo2KHR & operator=( DisplayPlaneInfo2KHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  21821. DisplayPlaneInfo2KHR & operator=( VkDisplayPlaneInfo2KHR const & rhs ) VULKAN_HPP_NOEXCEPT
  21822. {
  21823. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DisplayPlaneInfo2KHR const *>( &rhs );
  21824. return *this;
  21825. }
  21826. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  21827. VULKAN_HPP_CONSTEXPR_14 DisplayPlaneInfo2KHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  21828. {
  21829. pNext = pNext_;
  21830. return *this;
  21831. }
  21832. VULKAN_HPP_CONSTEXPR_14 DisplayPlaneInfo2KHR & setMode( VULKAN_HPP_NAMESPACE::DisplayModeKHR mode_ ) VULKAN_HPP_NOEXCEPT
  21833. {
  21834. mode = mode_;
  21835. return *this;
  21836. }
  21837. VULKAN_HPP_CONSTEXPR_14 DisplayPlaneInfo2KHR & setPlaneIndex( uint32_t planeIndex_ ) VULKAN_HPP_NOEXCEPT
  21838. {
  21839. planeIndex = planeIndex_;
  21840. return *this;
  21841. }
  21842. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  21843. operator VkDisplayPlaneInfo2KHR const &() const VULKAN_HPP_NOEXCEPT
  21844. {
  21845. return *reinterpret_cast<const VkDisplayPlaneInfo2KHR *>( this );
  21846. }
  21847. operator VkDisplayPlaneInfo2KHR &() VULKAN_HPP_NOEXCEPT
  21848. {
  21849. return *reinterpret_cast<VkDisplayPlaneInfo2KHR *>( this );
  21850. }
  21851. #if defined( VULKAN_HPP_USE_REFLECT )
  21852. # if 14 <= VULKAN_HPP_CPP_VERSION
  21853. auto
  21854. # else
  21855. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::DisplayModeKHR const &, uint32_t const &>
  21856. # endif
  21857. reflect() const VULKAN_HPP_NOEXCEPT
  21858. {
  21859. return std::tie( sType, pNext, mode, planeIndex );
  21860. }
  21861. #endif
  21862. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  21863. auto operator<=>( DisplayPlaneInfo2KHR const & ) const = default;
  21864. #else
  21865. bool operator==( DisplayPlaneInfo2KHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  21866. {
  21867. # if defined( VULKAN_HPP_USE_REFLECT )
  21868. return this->reflect() == rhs.reflect();
  21869. # else
  21870. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( mode == rhs.mode ) && ( planeIndex == rhs.planeIndex );
  21871. # endif
  21872. }
  21873. bool operator!=( DisplayPlaneInfo2KHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  21874. {
  21875. return !operator==( rhs );
  21876. }
  21877. #endif
  21878. public:
  21879. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDisplayPlaneInfo2KHR;
  21880. const void * pNext = {};
  21881. VULKAN_HPP_NAMESPACE::DisplayModeKHR mode = {};
  21882. uint32_t planeIndex = {};
  21883. };
  21884. template <>
  21885. struct CppType<StructureType, StructureType::eDisplayPlaneInfo2KHR>
  21886. {
  21887. using Type = DisplayPlaneInfo2KHR;
  21888. };
  21889. struct DisplayPlanePropertiesKHR
  21890. {
  21891. using NativeType = VkDisplayPlanePropertiesKHR;
  21892. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  21893. VULKAN_HPP_CONSTEXPR DisplayPlanePropertiesKHR( VULKAN_HPP_NAMESPACE::DisplayKHR currentDisplay_ = {},
  21894. uint32_t currentStackIndex_ = {} ) VULKAN_HPP_NOEXCEPT
  21895. : currentDisplay( currentDisplay_ )
  21896. , currentStackIndex( currentStackIndex_ )
  21897. {
  21898. }
  21899. VULKAN_HPP_CONSTEXPR DisplayPlanePropertiesKHR( DisplayPlanePropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  21900. DisplayPlanePropertiesKHR( VkDisplayPlanePropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  21901. : DisplayPlanePropertiesKHR( *reinterpret_cast<DisplayPlanePropertiesKHR const *>( &rhs ) )
  21902. {
  21903. }
  21904. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  21905. DisplayPlanePropertiesKHR & operator=( DisplayPlanePropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  21906. DisplayPlanePropertiesKHR & operator=( VkDisplayPlanePropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  21907. {
  21908. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DisplayPlanePropertiesKHR const *>( &rhs );
  21909. return *this;
  21910. }
  21911. operator VkDisplayPlanePropertiesKHR const &() const VULKAN_HPP_NOEXCEPT
  21912. {
  21913. return *reinterpret_cast<const VkDisplayPlanePropertiesKHR *>( this );
  21914. }
  21915. operator VkDisplayPlanePropertiesKHR &() VULKAN_HPP_NOEXCEPT
  21916. {
  21917. return *reinterpret_cast<VkDisplayPlanePropertiesKHR *>( this );
  21918. }
  21919. #if defined( VULKAN_HPP_USE_REFLECT )
  21920. # if 14 <= VULKAN_HPP_CPP_VERSION
  21921. auto
  21922. # else
  21923. std::tuple<VULKAN_HPP_NAMESPACE::DisplayKHR const &, uint32_t const &>
  21924. # endif
  21925. reflect() const VULKAN_HPP_NOEXCEPT
  21926. {
  21927. return std::tie( currentDisplay, currentStackIndex );
  21928. }
  21929. #endif
  21930. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  21931. auto operator<=>( DisplayPlanePropertiesKHR const & ) const = default;
  21932. #else
  21933. bool operator==( DisplayPlanePropertiesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  21934. {
  21935. # if defined( VULKAN_HPP_USE_REFLECT )
  21936. return this->reflect() == rhs.reflect();
  21937. # else
  21938. return ( currentDisplay == rhs.currentDisplay ) && ( currentStackIndex == rhs.currentStackIndex );
  21939. # endif
  21940. }
  21941. bool operator!=( DisplayPlanePropertiesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  21942. {
  21943. return !operator==( rhs );
  21944. }
  21945. #endif
  21946. public:
  21947. VULKAN_HPP_NAMESPACE::DisplayKHR currentDisplay = {};
  21948. uint32_t currentStackIndex = {};
  21949. };
  21950. struct DisplayPlaneProperties2KHR
  21951. {
  21952. using NativeType = VkDisplayPlaneProperties2KHR;
  21953. static const bool allowDuplicate = false;
  21954. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDisplayPlaneProperties2KHR;
  21955. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  21956. VULKAN_HPP_CONSTEXPR DisplayPlaneProperties2KHR( VULKAN_HPP_NAMESPACE::DisplayPlanePropertiesKHR displayPlaneProperties_ = {},
  21957. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  21958. : pNext( pNext_ )
  21959. , displayPlaneProperties( displayPlaneProperties_ )
  21960. {
  21961. }
  21962. VULKAN_HPP_CONSTEXPR DisplayPlaneProperties2KHR( DisplayPlaneProperties2KHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  21963. DisplayPlaneProperties2KHR( VkDisplayPlaneProperties2KHR const & rhs ) VULKAN_HPP_NOEXCEPT
  21964. : DisplayPlaneProperties2KHR( *reinterpret_cast<DisplayPlaneProperties2KHR const *>( &rhs ) )
  21965. {
  21966. }
  21967. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  21968. DisplayPlaneProperties2KHR & operator=( DisplayPlaneProperties2KHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  21969. DisplayPlaneProperties2KHR & operator=( VkDisplayPlaneProperties2KHR const & rhs ) VULKAN_HPP_NOEXCEPT
  21970. {
  21971. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DisplayPlaneProperties2KHR const *>( &rhs );
  21972. return *this;
  21973. }
  21974. operator VkDisplayPlaneProperties2KHR const &() const VULKAN_HPP_NOEXCEPT
  21975. {
  21976. return *reinterpret_cast<const VkDisplayPlaneProperties2KHR *>( this );
  21977. }
  21978. operator VkDisplayPlaneProperties2KHR &() VULKAN_HPP_NOEXCEPT
  21979. {
  21980. return *reinterpret_cast<VkDisplayPlaneProperties2KHR *>( this );
  21981. }
  21982. #if defined( VULKAN_HPP_USE_REFLECT )
  21983. # if 14 <= VULKAN_HPP_CPP_VERSION
  21984. auto
  21985. # else
  21986. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::DisplayPlanePropertiesKHR const &>
  21987. # endif
  21988. reflect() const VULKAN_HPP_NOEXCEPT
  21989. {
  21990. return std::tie( sType, pNext, displayPlaneProperties );
  21991. }
  21992. #endif
  21993. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  21994. auto operator<=>( DisplayPlaneProperties2KHR const & ) const = default;
  21995. #else
  21996. bool operator==( DisplayPlaneProperties2KHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  21997. {
  21998. # if defined( VULKAN_HPP_USE_REFLECT )
  21999. return this->reflect() == rhs.reflect();
  22000. # else
  22001. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( displayPlaneProperties == rhs.displayPlaneProperties );
  22002. # endif
  22003. }
  22004. bool operator!=( DisplayPlaneProperties2KHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  22005. {
  22006. return !operator==( rhs );
  22007. }
  22008. #endif
  22009. public:
  22010. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDisplayPlaneProperties2KHR;
  22011. void * pNext = {};
  22012. VULKAN_HPP_NAMESPACE::DisplayPlanePropertiesKHR displayPlaneProperties = {};
  22013. };
  22014. template <>
  22015. struct CppType<StructureType, StructureType::eDisplayPlaneProperties2KHR>
  22016. {
  22017. using Type = DisplayPlaneProperties2KHR;
  22018. };
  22019. struct DisplayPowerInfoEXT
  22020. {
  22021. using NativeType = VkDisplayPowerInfoEXT;
  22022. static const bool allowDuplicate = false;
  22023. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDisplayPowerInfoEXT;
  22024. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  22025. VULKAN_HPP_CONSTEXPR DisplayPowerInfoEXT( VULKAN_HPP_NAMESPACE::DisplayPowerStateEXT powerState_ = VULKAN_HPP_NAMESPACE::DisplayPowerStateEXT::eOff,
  22026. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  22027. : pNext( pNext_ )
  22028. , powerState( powerState_ )
  22029. {
  22030. }
  22031. VULKAN_HPP_CONSTEXPR DisplayPowerInfoEXT( DisplayPowerInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  22032. DisplayPowerInfoEXT( VkDisplayPowerInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT : DisplayPowerInfoEXT( *reinterpret_cast<DisplayPowerInfoEXT const *>( &rhs ) )
  22033. {
  22034. }
  22035. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  22036. DisplayPowerInfoEXT & operator=( DisplayPowerInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  22037. DisplayPowerInfoEXT & operator=( VkDisplayPowerInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  22038. {
  22039. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DisplayPowerInfoEXT const *>( &rhs );
  22040. return *this;
  22041. }
  22042. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  22043. VULKAN_HPP_CONSTEXPR_14 DisplayPowerInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  22044. {
  22045. pNext = pNext_;
  22046. return *this;
  22047. }
  22048. VULKAN_HPP_CONSTEXPR_14 DisplayPowerInfoEXT & setPowerState( VULKAN_HPP_NAMESPACE::DisplayPowerStateEXT powerState_ ) VULKAN_HPP_NOEXCEPT
  22049. {
  22050. powerState = powerState_;
  22051. return *this;
  22052. }
  22053. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  22054. operator VkDisplayPowerInfoEXT const &() const VULKAN_HPP_NOEXCEPT
  22055. {
  22056. return *reinterpret_cast<const VkDisplayPowerInfoEXT *>( this );
  22057. }
  22058. operator VkDisplayPowerInfoEXT &() VULKAN_HPP_NOEXCEPT
  22059. {
  22060. return *reinterpret_cast<VkDisplayPowerInfoEXT *>( this );
  22061. }
  22062. #if defined( VULKAN_HPP_USE_REFLECT )
  22063. # if 14 <= VULKAN_HPP_CPP_VERSION
  22064. auto
  22065. # else
  22066. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::DisplayPowerStateEXT const &>
  22067. # endif
  22068. reflect() const VULKAN_HPP_NOEXCEPT
  22069. {
  22070. return std::tie( sType, pNext, powerState );
  22071. }
  22072. #endif
  22073. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  22074. auto operator<=>( DisplayPowerInfoEXT const & ) const = default;
  22075. #else
  22076. bool operator==( DisplayPowerInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  22077. {
  22078. # if defined( VULKAN_HPP_USE_REFLECT )
  22079. return this->reflect() == rhs.reflect();
  22080. # else
  22081. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( powerState == rhs.powerState );
  22082. # endif
  22083. }
  22084. bool operator!=( DisplayPowerInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  22085. {
  22086. return !operator==( rhs );
  22087. }
  22088. #endif
  22089. public:
  22090. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDisplayPowerInfoEXT;
  22091. const void * pNext = {};
  22092. VULKAN_HPP_NAMESPACE::DisplayPowerStateEXT powerState = VULKAN_HPP_NAMESPACE::DisplayPowerStateEXT::eOff;
  22093. };
  22094. template <>
  22095. struct CppType<StructureType, StructureType::eDisplayPowerInfoEXT>
  22096. {
  22097. using Type = DisplayPowerInfoEXT;
  22098. };
  22099. struct DisplayPresentInfoKHR
  22100. {
  22101. using NativeType = VkDisplayPresentInfoKHR;
  22102. static const bool allowDuplicate = false;
  22103. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDisplayPresentInfoKHR;
  22104. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  22105. VULKAN_HPP_CONSTEXPR DisplayPresentInfoKHR( VULKAN_HPP_NAMESPACE::Rect2D srcRect_ = {},
  22106. VULKAN_HPP_NAMESPACE::Rect2D dstRect_ = {},
  22107. VULKAN_HPP_NAMESPACE::Bool32 persistent_ = {},
  22108. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  22109. : pNext( pNext_ )
  22110. , srcRect( srcRect_ )
  22111. , dstRect( dstRect_ )
  22112. , persistent( persistent_ )
  22113. {
  22114. }
  22115. VULKAN_HPP_CONSTEXPR DisplayPresentInfoKHR( DisplayPresentInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  22116. DisplayPresentInfoKHR( VkDisplayPresentInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  22117. : DisplayPresentInfoKHR( *reinterpret_cast<DisplayPresentInfoKHR const *>( &rhs ) )
  22118. {
  22119. }
  22120. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  22121. DisplayPresentInfoKHR & operator=( DisplayPresentInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  22122. DisplayPresentInfoKHR & operator=( VkDisplayPresentInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  22123. {
  22124. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DisplayPresentInfoKHR const *>( &rhs );
  22125. return *this;
  22126. }
  22127. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  22128. VULKAN_HPP_CONSTEXPR_14 DisplayPresentInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  22129. {
  22130. pNext = pNext_;
  22131. return *this;
  22132. }
  22133. VULKAN_HPP_CONSTEXPR_14 DisplayPresentInfoKHR & setSrcRect( VULKAN_HPP_NAMESPACE::Rect2D const & srcRect_ ) VULKAN_HPP_NOEXCEPT
  22134. {
  22135. srcRect = srcRect_;
  22136. return *this;
  22137. }
  22138. VULKAN_HPP_CONSTEXPR_14 DisplayPresentInfoKHR & setDstRect( VULKAN_HPP_NAMESPACE::Rect2D const & dstRect_ ) VULKAN_HPP_NOEXCEPT
  22139. {
  22140. dstRect = dstRect_;
  22141. return *this;
  22142. }
  22143. VULKAN_HPP_CONSTEXPR_14 DisplayPresentInfoKHR & setPersistent( VULKAN_HPP_NAMESPACE::Bool32 persistent_ ) VULKAN_HPP_NOEXCEPT
  22144. {
  22145. persistent = persistent_;
  22146. return *this;
  22147. }
  22148. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  22149. operator VkDisplayPresentInfoKHR const &() const VULKAN_HPP_NOEXCEPT
  22150. {
  22151. return *reinterpret_cast<const VkDisplayPresentInfoKHR *>( this );
  22152. }
  22153. operator VkDisplayPresentInfoKHR &() VULKAN_HPP_NOEXCEPT
  22154. {
  22155. return *reinterpret_cast<VkDisplayPresentInfoKHR *>( this );
  22156. }
  22157. #if defined( VULKAN_HPP_USE_REFLECT )
  22158. # if 14 <= VULKAN_HPP_CPP_VERSION
  22159. auto
  22160. # else
  22161. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  22162. const void * const &,
  22163. VULKAN_HPP_NAMESPACE::Rect2D const &,
  22164. VULKAN_HPP_NAMESPACE::Rect2D const &,
  22165. VULKAN_HPP_NAMESPACE::Bool32 const &>
  22166. # endif
  22167. reflect() const VULKAN_HPP_NOEXCEPT
  22168. {
  22169. return std::tie( sType, pNext, srcRect, dstRect, persistent );
  22170. }
  22171. #endif
  22172. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  22173. auto operator<=>( DisplayPresentInfoKHR const & ) const = default;
  22174. #else
  22175. bool operator==( DisplayPresentInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  22176. {
  22177. # if defined( VULKAN_HPP_USE_REFLECT )
  22178. return this->reflect() == rhs.reflect();
  22179. # else
  22180. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( srcRect == rhs.srcRect ) && ( dstRect == rhs.dstRect ) && ( persistent == rhs.persistent );
  22181. # endif
  22182. }
  22183. bool operator!=( DisplayPresentInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  22184. {
  22185. return !operator==( rhs );
  22186. }
  22187. #endif
  22188. public:
  22189. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDisplayPresentInfoKHR;
  22190. const void * pNext = {};
  22191. VULKAN_HPP_NAMESPACE::Rect2D srcRect = {};
  22192. VULKAN_HPP_NAMESPACE::Rect2D dstRect = {};
  22193. VULKAN_HPP_NAMESPACE::Bool32 persistent = {};
  22194. };
  22195. template <>
  22196. struct CppType<StructureType, StructureType::eDisplayPresentInfoKHR>
  22197. {
  22198. using Type = DisplayPresentInfoKHR;
  22199. };
  22200. struct DisplayPropertiesKHR
  22201. {
  22202. using NativeType = VkDisplayPropertiesKHR;
  22203. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  22204. VULKAN_HPP_CONSTEXPR DisplayPropertiesKHR( VULKAN_HPP_NAMESPACE::DisplayKHR display_ = {},
  22205. const char * displayName_ = {},
  22206. VULKAN_HPP_NAMESPACE::Extent2D physicalDimensions_ = {},
  22207. VULKAN_HPP_NAMESPACE::Extent2D physicalResolution_ = {},
  22208. VULKAN_HPP_NAMESPACE::SurfaceTransformFlagsKHR supportedTransforms_ = {},
  22209. VULKAN_HPP_NAMESPACE::Bool32 planeReorderPossible_ = {},
  22210. VULKAN_HPP_NAMESPACE::Bool32 persistentContent_ = {} ) VULKAN_HPP_NOEXCEPT
  22211. : display( display_ )
  22212. , displayName( displayName_ )
  22213. , physicalDimensions( physicalDimensions_ )
  22214. , physicalResolution( physicalResolution_ )
  22215. , supportedTransforms( supportedTransforms_ )
  22216. , planeReorderPossible( planeReorderPossible_ )
  22217. , persistentContent( persistentContent_ )
  22218. {
  22219. }
  22220. VULKAN_HPP_CONSTEXPR DisplayPropertiesKHR( DisplayPropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  22221. DisplayPropertiesKHR( VkDisplayPropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  22222. : DisplayPropertiesKHR( *reinterpret_cast<DisplayPropertiesKHR const *>( &rhs ) )
  22223. {
  22224. }
  22225. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  22226. DisplayPropertiesKHR & operator=( DisplayPropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  22227. DisplayPropertiesKHR & operator=( VkDisplayPropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  22228. {
  22229. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DisplayPropertiesKHR const *>( &rhs );
  22230. return *this;
  22231. }
  22232. operator VkDisplayPropertiesKHR const &() const VULKAN_HPP_NOEXCEPT
  22233. {
  22234. return *reinterpret_cast<const VkDisplayPropertiesKHR *>( this );
  22235. }
  22236. operator VkDisplayPropertiesKHR &() VULKAN_HPP_NOEXCEPT
  22237. {
  22238. return *reinterpret_cast<VkDisplayPropertiesKHR *>( this );
  22239. }
  22240. #if defined( VULKAN_HPP_USE_REFLECT )
  22241. # if 14 <= VULKAN_HPP_CPP_VERSION
  22242. auto
  22243. # else
  22244. std::tuple<VULKAN_HPP_NAMESPACE::DisplayKHR const &,
  22245. const char * const &,
  22246. VULKAN_HPP_NAMESPACE::Extent2D const &,
  22247. VULKAN_HPP_NAMESPACE::Extent2D const &,
  22248. VULKAN_HPP_NAMESPACE::SurfaceTransformFlagsKHR const &,
  22249. VULKAN_HPP_NAMESPACE::Bool32 const &,
  22250. VULKAN_HPP_NAMESPACE::Bool32 const &>
  22251. # endif
  22252. reflect() const VULKAN_HPP_NOEXCEPT
  22253. {
  22254. return std::tie( display, displayName, physicalDimensions, physicalResolution, supportedTransforms, planeReorderPossible, persistentContent );
  22255. }
  22256. #endif
  22257. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  22258. std::strong_ordering operator<=>( DisplayPropertiesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  22259. {
  22260. if ( auto cmp = display <=> rhs.display; cmp != 0 )
  22261. return cmp;
  22262. if ( displayName != rhs.displayName )
  22263. if ( auto cmp = strcmp( displayName, rhs.displayName ); cmp != 0 )
  22264. return ( cmp < 0 ) ? std::strong_ordering::less : std::strong_ordering::greater;
  22265. if ( auto cmp = physicalDimensions <=> rhs.physicalDimensions; cmp != 0 )
  22266. return cmp;
  22267. if ( auto cmp = physicalResolution <=> rhs.physicalResolution; cmp != 0 )
  22268. return cmp;
  22269. if ( auto cmp = supportedTransforms <=> rhs.supportedTransforms; cmp != 0 )
  22270. return cmp;
  22271. if ( auto cmp = planeReorderPossible <=> rhs.planeReorderPossible; cmp != 0 )
  22272. return cmp;
  22273. if ( auto cmp = persistentContent <=> rhs.persistentContent; cmp != 0 )
  22274. return cmp;
  22275. return std::strong_ordering::equivalent;
  22276. }
  22277. #endif
  22278. bool operator==( DisplayPropertiesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  22279. {
  22280. return ( display == rhs.display ) && ( ( displayName == rhs.displayName ) || ( strcmp( displayName, rhs.displayName ) == 0 ) ) &&
  22281. ( physicalDimensions == rhs.physicalDimensions ) && ( physicalResolution == rhs.physicalResolution ) &&
  22282. ( supportedTransforms == rhs.supportedTransforms ) && ( planeReorderPossible == rhs.planeReorderPossible ) &&
  22283. ( persistentContent == rhs.persistentContent );
  22284. }
  22285. bool operator!=( DisplayPropertiesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  22286. {
  22287. return !operator==( rhs );
  22288. }
  22289. public:
  22290. VULKAN_HPP_NAMESPACE::DisplayKHR display = {};
  22291. const char * displayName = {};
  22292. VULKAN_HPP_NAMESPACE::Extent2D physicalDimensions = {};
  22293. VULKAN_HPP_NAMESPACE::Extent2D physicalResolution = {};
  22294. VULKAN_HPP_NAMESPACE::SurfaceTransformFlagsKHR supportedTransforms = {};
  22295. VULKAN_HPP_NAMESPACE::Bool32 planeReorderPossible = {};
  22296. VULKAN_HPP_NAMESPACE::Bool32 persistentContent = {};
  22297. };
  22298. struct DisplayProperties2KHR
  22299. {
  22300. using NativeType = VkDisplayProperties2KHR;
  22301. static const bool allowDuplicate = false;
  22302. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDisplayProperties2KHR;
  22303. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  22304. VULKAN_HPP_CONSTEXPR DisplayProperties2KHR( VULKAN_HPP_NAMESPACE::DisplayPropertiesKHR displayProperties_ = {},
  22305. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  22306. : pNext( pNext_ )
  22307. , displayProperties( displayProperties_ )
  22308. {
  22309. }
  22310. VULKAN_HPP_CONSTEXPR DisplayProperties2KHR( DisplayProperties2KHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  22311. DisplayProperties2KHR( VkDisplayProperties2KHR const & rhs ) VULKAN_HPP_NOEXCEPT
  22312. : DisplayProperties2KHR( *reinterpret_cast<DisplayProperties2KHR const *>( &rhs ) )
  22313. {
  22314. }
  22315. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  22316. DisplayProperties2KHR & operator=( DisplayProperties2KHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  22317. DisplayProperties2KHR & operator=( VkDisplayProperties2KHR const & rhs ) VULKAN_HPP_NOEXCEPT
  22318. {
  22319. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DisplayProperties2KHR const *>( &rhs );
  22320. return *this;
  22321. }
  22322. operator VkDisplayProperties2KHR const &() const VULKAN_HPP_NOEXCEPT
  22323. {
  22324. return *reinterpret_cast<const VkDisplayProperties2KHR *>( this );
  22325. }
  22326. operator VkDisplayProperties2KHR &() VULKAN_HPP_NOEXCEPT
  22327. {
  22328. return *reinterpret_cast<VkDisplayProperties2KHR *>( this );
  22329. }
  22330. #if defined( VULKAN_HPP_USE_REFLECT )
  22331. # if 14 <= VULKAN_HPP_CPP_VERSION
  22332. auto
  22333. # else
  22334. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::DisplayPropertiesKHR const &>
  22335. # endif
  22336. reflect() const VULKAN_HPP_NOEXCEPT
  22337. {
  22338. return std::tie( sType, pNext, displayProperties );
  22339. }
  22340. #endif
  22341. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  22342. auto operator<=>( DisplayProperties2KHR const & ) const = default;
  22343. #else
  22344. bool operator==( DisplayProperties2KHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  22345. {
  22346. # if defined( VULKAN_HPP_USE_REFLECT )
  22347. return this->reflect() == rhs.reflect();
  22348. # else
  22349. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( displayProperties == rhs.displayProperties );
  22350. # endif
  22351. }
  22352. bool operator!=( DisplayProperties2KHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  22353. {
  22354. return !operator==( rhs );
  22355. }
  22356. #endif
  22357. public:
  22358. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDisplayProperties2KHR;
  22359. void * pNext = {};
  22360. VULKAN_HPP_NAMESPACE::DisplayPropertiesKHR displayProperties = {};
  22361. };
  22362. template <>
  22363. struct CppType<StructureType, StructureType::eDisplayProperties2KHR>
  22364. {
  22365. using Type = DisplayProperties2KHR;
  22366. };
  22367. struct DisplaySurfaceCreateInfoKHR
  22368. {
  22369. using NativeType = VkDisplaySurfaceCreateInfoKHR;
  22370. static const bool allowDuplicate = false;
  22371. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDisplaySurfaceCreateInfoKHR;
  22372. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  22373. VULKAN_HPP_CONSTEXPR
  22374. DisplaySurfaceCreateInfoKHR( VULKAN_HPP_NAMESPACE::DisplaySurfaceCreateFlagsKHR flags_ = {},
  22375. VULKAN_HPP_NAMESPACE::DisplayModeKHR displayMode_ = {},
  22376. uint32_t planeIndex_ = {},
  22377. uint32_t planeStackIndex_ = {},
  22378. VULKAN_HPP_NAMESPACE::SurfaceTransformFlagBitsKHR transform_ = VULKAN_HPP_NAMESPACE::SurfaceTransformFlagBitsKHR::eIdentity,
  22379. float globalAlpha_ = {},
  22380. VULKAN_HPP_NAMESPACE::DisplayPlaneAlphaFlagBitsKHR alphaMode_ = VULKAN_HPP_NAMESPACE::DisplayPlaneAlphaFlagBitsKHR::eOpaque,
  22381. VULKAN_HPP_NAMESPACE::Extent2D imageExtent_ = {},
  22382. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  22383. : pNext( pNext_ )
  22384. , flags( flags_ )
  22385. , displayMode( displayMode_ )
  22386. , planeIndex( planeIndex_ )
  22387. , planeStackIndex( planeStackIndex_ )
  22388. , transform( transform_ )
  22389. , globalAlpha( globalAlpha_ )
  22390. , alphaMode( alphaMode_ )
  22391. , imageExtent( imageExtent_ )
  22392. {
  22393. }
  22394. VULKAN_HPP_CONSTEXPR DisplaySurfaceCreateInfoKHR( DisplaySurfaceCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  22395. DisplaySurfaceCreateInfoKHR( VkDisplaySurfaceCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  22396. : DisplaySurfaceCreateInfoKHR( *reinterpret_cast<DisplaySurfaceCreateInfoKHR const *>( &rhs ) )
  22397. {
  22398. }
  22399. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  22400. DisplaySurfaceCreateInfoKHR & operator=( DisplaySurfaceCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  22401. DisplaySurfaceCreateInfoKHR & operator=( VkDisplaySurfaceCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  22402. {
  22403. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DisplaySurfaceCreateInfoKHR const *>( &rhs );
  22404. return *this;
  22405. }
  22406. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  22407. VULKAN_HPP_CONSTEXPR_14 DisplaySurfaceCreateInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  22408. {
  22409. pNext = pNext_;
  22410. return *this;
  22411. }
  22412. VULKAN_HPP_CONSTEXPR_14 DisplaySurfaceCreateInfoKHR & setFlags( VULKAN_HPP_NAMESPACE::DisplaySurfaceCreateFlagsKHR flags_ ) VULKAN_HPP_NOEXCEPT
  22413. {
  22414. flags = flags_;
  22415. return *this;
  22416. }
  22417. VULKAN_HPP_CONSTEXPR_14 DisplaySurfaceCreateInfoKHR & setDisplayMode( VULKAN_HPP_NAMESPACE::DisplayModeKHR displayMode_ ) VULKAN_HPP_NOEXCEPT
  22418. {
  22419. displayMode = displayMode_;
  22420. return *this;
  22421. }
  22422. VULKAN_HPP_CONSTEXPR_14 DisplaySurfaceCreateInfoKHR & setPlaneIndex( uint32_t planeIndex_ ) VULKAN_HPP_NOEXCEPT
  22423. {
  22424. planeIndex = planeIndex_;
  22425. return *this;
  22426. }
  22427. VULKAN_HPP_CONSTEXPR_14 DisplaySurfaceCreateInfoKHR & setPlaneStackIndex( uint32_t planeStackIndex_ ) VULKAN_HPP_NOEXCEPT
  22428. {
  22429. planeStackIndex = planeStackIndex_;
  22430. return *this;
  22431. }
  22432. VULKAN_HPP_CONSTEXPR_14 DisplaySurfaceCreateInfoKHR & setTransform( VULKAN_HPP_NAMESPACE::SurfaceTransformFlagBitsKHR transform_ ) VULKAN_HPP_NOEXCEPT
  22433. {
  22434. transform = transform_;
  22435. return *this;
  22436. }
  22437. VULKAN_HPP_CONSTEXPR_14 DisplaySurfaceCreateInfoKHR & setGlobalAlpha( float globalAlpha_ ) VULKAN_HPP_NOEXCEPT
  22438. {
  22439. globalAlpha = globalAlpha_;
  22440. return *this;
  22441. }
  22442. VULKAN_HPP_CONSTEXPR_14 DisplaySurfaceCreateInfoKHR & setAlphaMode( VULKAN_HPP_NAMESPACE::DisplayPlaneAlphaFlagBitsKHR alphaMode_ ) VULKAN_HPP_NOEXCEPT
  22443. {
  22444. alphaMode = alphaMode_;
  22445. return *this;
  22446. }
  22447. VULKAN_HPP_CONSTEXPR_14 DisplaySurfaceCreateInfoKHR & setImageExtent( VULKAN_HPP_NAMESPACE::Extent2D const & imageExtent_ ) VULKAN_HPP_NOEXCEPT
  22448. {
  22449. imageExtent = imageExtent_;
  22450. return *this;
  22451. }
  22452. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  22453. operator VkDisplaySurfaceCreateInfoKHR const &() const VULKAN_HPP_NOEXCEPT
  22454. {
  22455. return *reinterpret_cast<const VkDisplaySurfaceCreateInfoKHR *>( this );
  22456. }
  22457. operator VkDisplaySurfaceCreateInfoKHR &() VULKAN_HPP_NOEXCEPT
  22458. {
  22459. return *reinterpret_cast<VkDisplaySurfaceCreateInfoKHR *>( this );
  22460. }
  22461. #if defined( VULKAN_HPP_USE_REFLECT )
  22462. # if 14 <= VULKAN_HPP_CPP_VERSION
  22463. auto
  22464. # else
  22465. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  22466. const void * const &,
  22467. VULKAN_HPP_NAMESPACE::DisplaySurfaceCreateFlagsKHR const &,
  22468. VULKAN_HPP_NAMESPACE::DisplayModeKHR const &,
  22469. uint32_t const &,
  22470. uint32_t const &,
  22471. VULKAN_HPP_NAMESPACE::SurfaceTransformFlagBitsKHR const &,
  22472. float const &,
  22473. VULKAN_HPP_NAMESPACE::DisplayPlaneAlphaFlagBitsKHR const &,
  22474. VULKAN_HPP_NAMESPACE::Extent2D const &>
  22475. # endif
  22476. reflect() const VULKAN_HPP_NOEXCEPT
  22477. {
  22478. return std::tie( sType, pNext, flags, displayMode, planeIndex, planeStackIndex, transform, globalAlpha, alphaMode, imageExtent );
  22479. }
  22480. #endif
  22481. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  22482. auto operator<=>( DisplaySurfaceCreateInfoKHR const & ) const = default;
  22483. #else
  22484. bool operator==( DisplaySurfaceCreateInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  22485. {
  22486. # if defined( VULKAN_HPP_USE_REFLECT )
  22487. return this->reflect() == rhs.reflect();
  22488. # else
  22489. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( flags == rhs.flags ) && ( displayMode == rhs.displayMode ) &&
  22490. ( planeIndex == rhs.planeIndex ) && ( planeStackIndex == rhs.planeStackIndex ) && ( transform == rhs.transform ) &&
  22491. ( globalAlpha == rhs.globalAlpha ) && ( alphaMode == rhs.alphaMode ) && ( imageExtent == rhs.imageExtent );
  22492. # endif
  22493. }
  22494. bool operator!=( DisplaySurfaceCreateInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  22495. {
  22496. return !operator==( rhs );
  22497. }
  22498. #endif
  22499. public:
  22500. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDisplaySurfaceCreateInfoKHR;
  22501. const void * pNext = {};
  22502. VULKAN_HPP_NAMESPACE::DisplaySurfaceCreateFlagsKHR flags = {};
  22503. VULKAN_HPP_NAMESPACE::DisplayModeKHR displayMode = {};
  22504. uint32_t planeIndex = {};
  22505. uint32_t planeStackIndex = {};
  22506. VULKAN_HPP_NAMESPACE::SurfaceTransformFlagBitsKHR transform = VULKAN_HPP_NAMESPACE::SurfaceTransformFlagBitsKHR::eIdentity;
  22507. float globalAlpha = {};
  22508. VULKAN_HPP_NAMESPACE::DisplayPlaneAlphaFlagBitsKHR alphaMode = VULKAN_HPP_NAMESPACE::DisplayPlaneAlphaFlagBitsKHR::eOpaque;
  22509. VULKAN_HPP_NAMESPACE::Extent2D imageExtent = {};
  22510. };
  22511. template <>
  22512. struct CppType<StructureType, StructureType::eDisplaySurfaceCreateInfoKHR>
  22513. {
  22514. using Type = DisplaySurfaceCreateInfoKHR;
  22515. };
  22516. struct DrawIndexedIndirectCommand
  22517. {
  22518. using NativeType = VkDrawIndexedIndirectCommand;
  22519. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  22520. VULKAN_HPP_CONSTEXPR DrawIndexedIndirectCommand( uint32_t indexCount_ = {},
  22521. uint32_t instanceCount_ = {},
  22522. uint32_t firstIndex_ = {},
  22523. int32_t vertexOffset_ = {},
  22524. uint32_t firstInstance_ = {} ) VULKAN_HPP_NOEXCEPT
  22525. : indexCount( indexCount_ )
  22526. , instanceCount( instanceCount_ )
  22527. , firstIndex( firstIndex_ )
  22528. , vertexOffset( vertexOffset_ )
  22529. , firstInstance( firstInstance_ )
  22530. {
  22531. }
  22532. VULKAN_HPP_CONSTEXPR DrawIndexedIndirectCommand( DrawIndexedIndirectCommand const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  22533. DrawIndexedIndirectCommand( VkDrawIndexedIndirectCommand const & rhs ) VULKAN_HPP_NOEXCEPT
  22534. : DrawIndexedIndirectCommand( *reinterpret_cast<DrawIndexedIndirectCommand const *>( &rhs ) )
  22535. {
  22536. }
  22537. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  22538. DrawIndexedIndirectCommand & operator=( DrawIndexedIndirectCommand const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  22539. DrawIndexedIndirectCommand & operator=( VkDrawIndexedIndirectCommand const & rhs ) VULKAN_HPP_NOEXCEPT
  22540. {
  22541. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DrawIndexedIndirectCommand const *>( &rhs );
  22542. return *this;
  22543. }
  22544. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  22545. VULKAN_HPP_CONSTEXPR_14 DrawIndexedIndirectCommand & setIndexCount( uint32_t indexCount_ ) VULKAN_HPP_NOEXCEPT
  22546. {
  22547. indexCount = indexCount_;
  22548. return *this;
  22549. }
  22550. VULKAN_HPP_CONSTEXPR_14 DrawIndexedIndirectCommand & setInstanceCount( uint32_t instanceCount_ ) VULKAN_HPP_NOEXCEPT
  22551. {
  22552. instanceCount = instanceCount_;
  22553. return *this;
  22554. }
  22555. VULKAN_HPP_CONSTEXPR_14 DrawIndexedIndirectCommand & setFirstIndex( uint32_t firstIndex_ ) VULKAN_HPP_NOEXCEPT
  22556. {
  22557. firstIndex = firstIndex_;
  22558. return *this;
  22559. }
  22560. VULKAN_HPP_CONSTEXPR_14 DrawIndexedIndirectCommand & setVertexOffset( int32_t vertexOffset_ ) VULKAN_HPP_NOEXCEPT
  22561. {
  22562. vertexOffset = vertexOffset_;
  22563. return *this;
  22564. }
  22565. VULKAN_HPP_CONSTEXPR_14 DrawIndexedIndirectCommand & setFirstInstance( uint32_t firstInstance_ ) VULKAN_HPP_NOEXCEPT
  22566. {
  22567. firstInstance = firstInstance_;
  22568. return *this;
  22569. }
  22570. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  22571. operator VkDrawIndexedIndirectCommand const &() const VULKAN_HPP_NOEXCEPT
  22572. {
  22573. return *reinterpret_cast<const VkDrawIndexedIndirectCommand *>( this );
  22574. }
  22575. operator VkDrawIndexedIndirectCommand &() VULKAN_HPP_NOEXCEPT
  22576. {
  22577. return *reinterpret_cast<VkDrawIndexedIndirectCommand *>( this );
  22578. }
  22579. #if defined( VULKAN_HPP_USE_REFLECT )
  22580. # if 14 <= VULKAN_HPP_CPP_VERSION
  22581. auto
  22582. # else
  22583. std::tuple<uint32_t const &, uint32_t const &, uint32_t const &, int32_t const &, uint32_t const &>
  22584. # endif
  22585. reflect() const VULKAN_HPP_NOEXCEPT
  22586. {
  22587. return std::tie( indexCount, instanceCount, firstIndex, vertexOffset, firstInstance );
  22588. }
  22589. #endif
  22590. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  22591. auto operator<=>( DrawIndexedIndirectCommand const & ) const = default;
  22592. #else
  22593. bool operator==( DrawIndexedIndirectCommand const & rhs ) const VULKAN_HPP_NOEXCEPT
  22594. {
  22595. # if defined( VULKAN_HPP_USE_REFLECT )
  22596. return this->reflect() == rhs.reflect();
  22597. # else
  22598. return ( indexCount == rhs.indexCount ) && ( instanceCount == rhs.instanceCount ) && ( firstIndex == rhs.firstIndex ) &&
  22599. ( vertexOffset == rhs.vertexOffset ) && ( firstInstance == rhs.firstInstance );
  22600. # endif
  22601. }
  22602. bool operator!=( DrawIndexedIndirectCommand const & rhs ) const VULKAN_HPP_NOEXCEPT
  22603. {
  22604. return !operator==( rhs );
  22605. }
  22606. #endif
  22607. public:
  22608. uint32_t indexCount = {};
  22609. uint32_t instanceCount = {};
  22610. uint32_t firstIndex = {};
  22611. int32_t vertexOffset = {};
  22612. uint32_t firstInstance = {};
  22613. };
  22614. struct DrawIndirectCommand
  22615. {
  22616. using NativeType = VkDrawIndirectCommand;
  22617. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  22618. VULKAN_HPP_CONSTEXPR DrawIndirectCommand( uint32_t vertexCount_ = {},
  22619. uint32_t instanceCount_ = {},
  22620. uint32_t firstVertex_ = {},
  22621. uint32_t firstInstance_ = {} ) VULKAN_HPP_NOEXCEPT
  22622. : vertexCount( vertexCount_ )
  22623. , instanceCount( instanceCount_ )
  22624. , firstVertex( firstVertex_ )
  22625. , firstInstance( firstInstance_ )
  22626. {
  22627. }
  22628. VULKAN_HPP_CONSTEXPR DrawIndirectCommand( DrawIndirectCommand const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  22629. DrawIndirectCommand( VkDrawIndirectCommand const & rhs ) VULKAN_HPP_NOEXCEPT : DrawIndirectCommand( *reinterpret_cast<DrawIndirectCommand const *>( &rhs ) )
  22630. {
  22631. }
  22632. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  22633. DrawIndirectCommand & operator=( DrawIndirectCommand const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  22634. DrawIndirectCommand & operator=( VkDrawIndirectCommand const & rhs ) VULKAN_HPP_NOEXCEPT
  22635. {
  22636. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DrawIndirectCommand const *>( &rhs );
  22637. return *this;
  22638. }
  22639. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  22640. VULKAN_HPP_CONSTEXPR_14 DrawIndirectCommand & setVertexCount( uint32_t vertexCount_ ) VULKAN_HPP_NOEXCEPT
  22641. {
  22642. vertexCount = vertexCount_;
  22643. return *this;
  22644. }
  22645. VULKAN_HPP_CONSTEXPR_14 DrawIndirectCommand & setInstanceCount( uint32_t instanceCount_ ) VULKAN_HPP_NOEXCEPT
  22646. {
  22647. instanceCount = instanceCount_;
  22648. return *this;
  22649. }
  22650. VULKAN_HPP_CONSTEXPR_14 DrawIndirectCommand & setFirstVertex( uint32_t firstVertex_ ) VULKAN_HPP_NOEXCEPT
  22651. {
  22652. firstVertex = firstVertex_;
  22653. return *this;
  22654. }
  22655. VULKAN_HPP_CONSTEXPR_14 DrawIndirectCommand & setFirstInstance( uint32_t firstInstance_ ) VULKAN_HPP_NOEXCEPT
  22656. {
  22657. firstInstance = firstInstance_;
  22658. return *this;
  22659. }
  22660. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  22661. operator VkDrawIndirectCommand const &() const VULKAN_HPP_NOEXCEPT
  22662. {
  22663. return *reinterpret_cast<const VkDrawIndirectCommand *>( this );
  22664. }
  22665. operator VkDrawIndirectCommand &() VULKAN_HPP_NOEXCEPT
  22666. {
  22667. return *reinterpret_cast<VkDrawIndirectCommand *>( this );
  22668. }
  22669. #if defined( VULKAN_HPP_USE_REFLECT )
  22670. # if 14 <= VULKAN_HPP_CPP_VERSION
  22671. auto
  22672. # else
  22673. std::tuple<uint32_t const &, uint32_t const &, uint32_t const &, uint32_t const &>
  22674. # endif
  22675. reflect() const VULKAN_HPP_NOEXCEPT
  22676. {
  22677. return std::tie( vertexCount, instanceCount, firstVertex, firstInstance );
  22678. }
  22679. #endif
  22680. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  22681. auto operator<=>( DrawIndirectCommand const & ) const = default;
  22682. #else
  22683. bool operator==( DrawIndirectCommand const & rhs ) const VULKAN_HPP_NOEXCEPT
  22684. {
  22685. # if defined( VULKAN_HPP_USE_REFLECT )
  22686. return this->reflect() == rhs.reflect();
  22687. # else
  22688. return ( vertexCount == rhs.vertexCount ) && ( instanceCount == rhs.instanceCount ) && ( firstVertex == rhs.firstVertex ) &&
  22689. ( firstInstance == rhs.firstInstance );
  22690. # endif
  22691. }
  22692. bool operator!=( DrawIndirectCommand const & rhs ) const VULKAN_HPP_NOEXCEPT
  22693. {
  22694. return !operator==( rhs );
  22695. }
  22696. #endif
  22697. public:
  22698. uint32_t vertexCount = {};
  22699. uint32_t instanceCount = {};
  22700. uint32_t firstVertex = {};
  22701. uint32_t firstInstance = {};
  22702. };
  22703. struct DrawMeshTasksIndirectCommandEXT
  22704. {
  22705. using NativeType = VkDrawMeshTasksIndirectCommandEXT;
  22706. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  22707. VULKAN_HPP_CONSTEXPR
  22708. DrawMeshTasksIndirectCommandEXT( uint32_t groupCountX_ = {}, uint32_t groupCountY_ = {}, uint32_t groupCountZ_ = {} ) VULKAN_HPP_NOEXCEPT
  22709. : groupCountX( groupCountX_ )
  22710. , groupCountY( groupCountY_ )
  22711. , groupCountZ( groupCountZ_ )
  22712. {
  22713. }
  22714. VULKAN_HPP_CONSTEXPR DrawMeshTasksIndirectCommandEXT( DrawMeshTasksIndirectCommandEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  22715. DrawMeshTasksIndirectCommandEXT( VkDrawMeshTasksIndirectCommandEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  22716. : DrawMeshTasksIndirectCommandEXT( *reinterpret_cast<DrawMeshTasksIndirectCommandEXT const *>( &rhs ) )
  22717. {
  22718. }
  22719. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  22720. DrawMeshTasksIndirectCommandEXT & operator=( DrawMeshTasksIndirectCommandEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  22721. DrawMeshTasksIndirectCommandEXT & operator=( VkDrawMeshTasksIndirectCommandEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  22722. {
  22723. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DrawMeshTasksIndirectCommandEXT const *>( &rhs );
  22724. return *this;
  22725. }
  22726. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  22727. VULKAN_HPP_CONSTEXPR_14 DrawMeshTasksIndirectCommandEXT & setGroupCountX( uint32_t groupCountX_ ) VULKAN_HPP_NOEXCEPT
  22728. {
  22729. groupCountX = groupCountX_;
  22730. return *this;
  22731. }
  22732. VULKAN_HPP_CONSTEXPR_14 DrawMeshTasksIndirectCommandEXT & setGroupCountY( uint32_t groupCountY_ ) VULKAN_HPP_NOEXCEPT
  22733. {
  22734. groupCountY = groupCountY_;
  22735. return *this;
  22736. }
  22737. VULKAN_HPP_CONSTEXPR_14 DrawMeshTasksIndirectCommandEXT & setGroupCountZ( uint32_t groupCountZ_ ) VULKAN_HPP_NOEXCEPT
  22738. {
  22739. groupCountZ = groupCountZ_;
  22740. return *this;
  22741. }
  22742. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  22743. operator VkDrawMeshTasksIndirectCommandEXT const &() const VULKAN_HPP_NOEXCEPT
  22744. {
  22745. return *reinterpret_cast<const VkDrawMeshTasksIndirectCommandEXT *>( this );
  22746. }
  22747. operator VkDrawMeshTasksIndirectCommandEXT &() VULKAN_HPP_NOEXCEPT
  22748. {
  22749. return *reinterpret_cast<VkDrawMeshTasksIndirectCommandEXT *>( this );
  22750. }
  22751. #if defined( VULKAN_HPP_USE_REFLECT )
  22752. # if 14 <= VULKAN_HPP_CPP_VERSION
  22753. auto
  22754. # else
  22755. std::tuple<uint32_t const &, uint32_t const &, uint32_t const &>
  22756. # endif
  22757. reflect() const VULKAN_HPP_NOEXCEPT
  22758. {
  22759. return std::tie( groupCountX, groupCountY, groupCountZ );
  22760. }
  22761. #endif
  22762. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  22763. auto operator<=>( DrawMeshTasksIndirectCommandEXT const & ) const = default;
  22764. #else
  22765. bool operator==( DrawMeshTasksIndirectCommandEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  22766. {
  22767. # if defined( VULKAN_HPP_USE_REFLECT )
  22768. return this->reflect() == rhs.reflect();
  22769. # else
  22770. return ( groupCountX == rhs.groupCountX ) && ( groupCountY == rhs.groupCountY ) && ( groupCountZ == rhs.groupCountZ );
  22771. # endif
  22772. }
  22773. bool operator!=( DrawMeshTasksIndirectCommandEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  22774. {
  22775. return !operator==( rhs );
  22776. }
  22777. #endif
  22778. public:
  22779. uint32_t groupCountX = {};
  22780. uint32_t groupCountY = {};
  22781. uint32_t groupCountZ = {};
  22782. };
  22783. struct DrawMeshTasksIndirectCommandNV
  22784. {
  22785. using NativeType = VkDrawMeshTasksIndirectCommandNV;
  22786. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  22787. VULKAN_HPP_CONSTEXPR DrawMeshTasksIndirectCommandNV( uint32_t taskCount_ = {}, uint32_t firstTask_ = {} ) VULKAN_HPP_NOEXCEPT
  22788. : taskCount( taskCount_ )
  22789. , firstTask( firstTask_ )
  22790. {
  22791. }
  22792. VULKAN_HPP_CONSTEXPR DrawMeshTasksIndirectCommandNV( DrawMeshTasksIndirectCommandNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  22793. DrawMeshTasksIndirectCommandNV( VkDrawMeshTasksIndirectCommandNV const & rhs ) VULKAN_HPP_NOEXCEPT
  22794. : DrawMeshTasksIndirectCommandNV( *reinterpret_cast<DrawMeshTasksIndirectCommandNV const *>( &rhs ) )
  22795. {
  22796. }
  22797. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  22798. DrawMeshTasksIndirectCommandNV & operator=( DrawMeshTasksIndirectCommandNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  22799. DrawMeshTasksIndirectCommandNV & operator=( VkDrawMeshTasksIndirectCommandNV const & rhs ) VULKAN_HPP_NOEXCEPT
  22800. {
  22801. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DrawMeshTasksIndirectCommandNV const *>( &rhs );
  22802. return *this;
  22803. }
  22804. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  22805. VULKAN_HPP_CONSTEXPR_14 DrawMeshTasksIndirectCommandNV & setTaskCount( uint32_t taskCount_ ) VULKAN_HPP_NOEXCEPT
  22806. {
  22807. taskCount = taskCount_;
  22808. return *this;
  22809. }
  22810. VULKAN_HPP_CONSTEXPR_14 DrawMeshTasksIndirectCommandNV & setFirstTask( uint32_t firstTask_ ) VULKAN_HPP_NOEXCEPT
  22811. {
  22812. firstTask = firstTask_;
  22813. return *this;
  22814. }
  22815. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  22816. operator VkDrawMeshTasksIndirectCommandNV const &() const VULKAN_HPP_NOEXCEPT
  22817. {
  22818. return *reinterpret_cast<const VkDrawMeshTasksIndirectCommandNV *>( this );
  22819. }
  22820. operator VkDrawMeshTasksIndirectCommandNV &() VULKAN_HPP_NOEXCEPT
  22821. {
  22822. return *reinterpret_cast<VkDrawMeshTasksIndirectCommandNV *>( this );
  22823. }
  22824. #if defined( VULKAN_HPP_USE_REFLECT )
  22825. # if 14 <= VULKAN_HPP_CPP_VERSION
  22826. auto
  22827. # else
  22828. std::tuple<uint32_t const &, uint32_t const &>
  22829. # endif
  22830. reflect() const VULKAN_HPP_NOEXCEPT
  22831. {
  22832. return std::tie( taskCount, firstTask );
  22833. }
  22834. #endif
  22835. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  22836. auto operator<=>( DrawMeshTasksIndirectCommandNV const & ) const = default;
  22837. #else
  22838. bool operator==( DrawMeshTasksIndirectCommandNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  22839. {
  22840. # if defined( VULKAN_HPP_USE_REFLECT )
  22841. return this->reflect() == rhs.reflect();
  22842. # else
  22843. return ( taskCount == rhs.taskCount ) && ( firstTask == rhs.firstTask );
  22844. # endif
  22845. }
  22846. bool operator!=( DrawMeshTasksIndirectCommandNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  22847. {
  22848. return !operator==( rhs );
  22849. }
  22850. #endif
  22851. public:
  22852. uint32_t taskCount = {};
  22853. uint32_t firstTask = {};
  22854. };
  22855. struct DrmFormatModifierProperties2EXT
  22856. {
  22857. using NativeType = VkDrmFormatModifierProperties2EXT;
  22858. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  22859. VULKAN_HPP_CONSTEXPR DrmFormatModifierProperties2EXT( uint64_t drmFormatModifier_ = {},
  22860. uint32_t drmFormatModifierPlaneCount_ = {},
  22861. VULKAN_HPP_NAMESPACE::FormatFeatureFlags2 drmFormatModifierTilingFeatures_ = {} ) VULKAN_HPP_NOEXCEPT
  22862. : drmFormatModifier( drmFormatModifier_ )
  22863. , drmFormatModifierPlaneCount( drmFormatModifierPlaneCount_ )
  22864. , drmFormatModifierTilingFeatures( drmFormatModifierTilingFeatures_ )
  22865. {
  22866. }
  22867. VULKAN_HPP_CONSTEXPR DrmFormatModifierProperties2EXT( DrmFormatModifierProperties2EXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  22868. DrmFormatModifierProperties2EXT( VkDrmFormatModifierProperties2EXT const & rhs ) VULKAN_HPP_NOEXCEPT
  22869. : DrmFormatModifierProperties2EXT( *reinterpret_cast<DrmFormatModifierProperties2EXT const *>( &rhs ) )
  22870. {
  22871. }
  22872. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  22873. DrmFormatModifierProperties2EXT & operator=( DrmFormatModifierProperties2EXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  22874. DrmFormatModifierProperties2EXT & operator=( VkDrmFormatModifierProperties2EXT const & rhs ) VULKAN_HPP_NOEXCEPT
  22875. {
  22876. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DrmFormatModifierProperties2EXT const *>( &rhs );
  22877. return *this;
  22878. }
  22879. operator VkDrmFormatModifierProperties2EXT const &() const VULKAN_HPP_NOEXCEPT
  22880. {
  22881. return *reinterpret_cast<const VkDrmFormatModifierProperties2EXT *>( this );
  22882. }
  22883. operator VkDrmFormatModifierProperties2EXT &() VULKAN_HPP_NOEXCEPT
  22884. {
  22885. return *reinterpret_cast<VkDrmFormatModifierProperties2EXT *>( this );
  22886. }
  22887. #if defined( VULKAN_HPP_USE_REFLECT )
  22888. # if 14 <= VULKAN_HPP_CPP_VERSION
  22889. auto
  22890. # else
  22891. std::tuple<uint64_t const &, uint32_t const &, VULKAN_HPP_NAMESPACE::FormatFeatureFlags2 const &>
  22892. # endif
  22893. reflect() const VULKAN_HPP_NOEXCEPT
  22894. {
  22895. return std::tie( drmFormatModifier, drmFormatModifierPlaneCount, drmFormatModifierTilingFeatures );
  22896. }
  22897. #endif
  22898. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  22899. auto operator<=>( DrmFormatModifierProperties2EXT const & ) const = default;
  22900. #else
  22901. bool operator==( DrmFormatModifierProperties2EXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  22902. {
  22903. # if defined( VULKAN_HPP_USE_REFLECT )
  22904. return this->reflect() == rhs.reflect();
  22905. # else
  22906. return ( drmFormatModifier == rhs.drmFormatModifier ) && ( drmFormatModifierPlaneCount == rhs.drmFormatModifierPlaneCount ) &&
  22907. ( drmFormatModifierTilingFeatures == rhs.drmFormatModifierTilingFeatures );
  22908. # endif
  22909. }
  22910. bool operator!=( DrmFormatModifierProperties2EXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  22911. {
  22912. return !operator==( rhs );
  22913. }
  22914. #endif
  22915. public:
  22916. uint64_t drmFormatModifier = {};
  22917. uint32_t drmFormatModifierPlaneCount = {};
  22918. VULKAN_HPP_NAMESPACE::FormatFeatureFlags2 drmFormatModifierTilingFeatures = {};
  22919. };
  22920. struct DrmFormatModifierPropertiesEXT
  22921. {
  22922. using NativeType = VkDrmFormatModifierPropertiesEXT;
  22923. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  22924. VULKAN_HPP_CONSTEXPR DrmFormatModifierPropertiesEXT( uint64_t drmFormatModifier_ = {},
  22925. uint32_t drmFormatModifierPlaneCount_ = {},
  22926. VULKAN_HPP_NAMESPACE::FormatFeatureFlags drmFormatModifierTilingFeatures_ = {} ) VULKAN_HPP_NOEXCEPT
  22927. : drmFormatModifier( drmFormatModifier_ )
  22928. , drmFormatModifierPlaneCount( drmFormatModifierPlaneCount_ )
  22929. , drmFormatModifierTilingFeatures( drmFormatModifierTilingFeatures_ )
  22930. {
  22931. }
  22932. VULKAN_HPP_CONSTEXPR DrmFormatModifierPropertiesEXT( DrmFormatModifierPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  22933. DrmFormatModifierPropertiesEXT( VkDrmFormatModifierPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  22934. : DrmFormatModifierPropertiesEXT( *reinterpret_cast<DrmFormatModifierPropertiesEXT const *>( &rhs ) )
  22935. {
  22936. }
  22937. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  22938. DrmFormatModifierPropertiesEXT & operator=( DrmFormatModifierPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  22939. DrmFormatModifierPropertiesEXT & operator=( VkDrmFormatModifierPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  22940. {
  22941. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DrmFormatModifierPropertiesEXT const *>( &rhs );
  22942. return *this;
  22943. }
  22944. operator VkDrmFormatModifierPropertiesEXT const &() const VULKAN_HPP_NOEXCEPT
  22945. {
  22946. return *reinterpret_cast<const VkDrmFormatModifierPropertiesEXT *>( this );
  22947. }
  22948. operator VkDrmFormatModifierPropertiesEXT &() VULKAN_HPP_NOEXCEPT
  22949. {
  22950. return *reinterpret_cast<VkDrmFormatModifierPropertiesEXT *>( this );
  22951. }
  22952. #if defined( VULKAN_HPP_USE_REFLECT )
  22953. # if 14 <= VULKAN_HPP_CPP_VERSION
  22954. auto
  22955. # else
  22956. std::tuple<uint64_t const &, uint32_t const &, VULKAN_HPP_NAMESPACE::FormatFeatureFlags const &>
  22957. # endif
  22958. reflect() const VULKAN_HPP_NOEXCEPT
  22959. {
  22960. return std::tie( drmFormatModifier, drmFormatModifierPlaneCount, drmFormatModifierTilingFeatures );
  22961. }
  22962. #endif
  22963. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  22964. auto operator<=>( DrmFormatModifierPropertiesEXT const & ) const = default;
  22965. #else
  22966. bool operator==( DrmFormatModifierPropertiesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  22967. {
  22968. # if defined( VULKAN_HPP_USE_REFLECT )
  22969. return this->reflect() == rhs.reflect();
  22970. # else
  22971. return ( drmFormatModifier == rhs.drmFormatModifier ) && ( drmFormatModifierPlaneCount == rhs.drmFormatModifierPlaneCount ) &&
  22972. ( drmFormatModifierTilingFeatures == rhs.drmFormatModifierTilingFeatures );
  22973. # endif
  22974. }
  22975. bool operator!=( DrmFormatModifierPropertiesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  22976. {
  22977. return !operator==( rhs );
  22978. }
  22979. #endif
  22980. public:
  22981. uint64_t drmFormatModifier = {};
  22982. uint32_t drmFormatModifierPlaneCount = {};
  22983. VULKAN_HPP_NAMESPACE::FormatFeatureFlags drmFormatModifierTilingFeatures = {};
  22984. };
  22985. struct DrmFormatModifierPropertiesList2EXT
  22986. {
  22987. using NativeType = VkDrmFormatModifierPropertiesList2EXT;
  22988. static const bool allowDuplicate = false;
  22989. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDrmFormatModifierPropertiesList2EXT;
  22990. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  22991. VULKAN_HPP_CONSTEXPR DrmFormatModifierPropertiesList2EXT( uint32_t drmFormatModifierCount_ = {},
  22992. VULKAN_HPP_NAMESPACE::DrmFormatModifierProperties2EXT * pDrmFormatModifierProperties_ = {},
  22993. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  22994. : pNext( pNext_ )
  22995. , drmFormatModifierCount( drmFormatModifierCount_ )
  22996. , pDrmFormatModifierProperties( pDrmFormatModifierProperties_ )
  22997. {
  22998. }
  22999. VULKAN_HPP_CONSTEXPR DrmFormatModifierPropertiesList2EXT( DrmFormatModifierPropertiesList2EXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  23000. DrmFormatModifierPropertiesList2EXT( VkDrmFormatModifierPropertiesList2EXT const & rhs ) VULKAN_HPP_NOEXCEPT
  23001. : DrmFormatModifierPropertiesList2EXT( *reinterpret_cast<DrmFormatModifierPropertiesList2EXT const *>( &rhs ) )
  23002. {
  23003. }
  23004. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  23005. DrmFormatModifierPropertiesList2EXT(
  23006. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<VULKAN_HPP_NAMESPACE::DrmFormatModifierProperties2EXT> const & drmFormatModifierProperties_,
  23007. void * pNext_ = nullptr )
  23008. : pNext( pNext_ )
  23009. , drmFormatModifierCount( static_cast<uint32_t>( drmFormatModifierProperties_.size() ) )
  23010. , pDrmFormatModifierProperties( drmFormatModifierProperties_.data() )
  23011. {
  23012. }
  23013. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  23014. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  23015. DrmFormatModifierPropertiesList2EXT & operator=( DrmFormatModifierPropertiesList2EXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  23016. DrmFormatModifierPropertiesList2EXT & operator=( VkDrmFormatModifierPropertiesList2EXT const & rhs ) VULKAN_HPP_NOEXCEPT
  23017. {
  23018. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DrmFormatModifierPropertiesList2EXT const *>( &rhs );
  23019. return *this;
  23020. }
  23021. operator VkDrmFormatModifierPropertiesList2EXT const &() const VULKAN_HPP_NOEXCEPT
  23022. {
  23023. return *reinterpret_cast<const VkDrmFormatModifierPropertiesList2EXT *>( this );
  23024. }
  23025. operator VkDrmFormatModifierPropertiesList2EXT &() VULKAN_HPP_NOEXCEPT
  23026. {
  23027. return *reinterpret_cast<VkDrmFormatModifierPropertiesList2EXT *>( this );
  23028. }
  23029. #if defined( VULKAN_HPP_USE_REFLECT )
  23030. # if 14 <= VULKAN_HPP_CPP_VERSION
  23031. auto
  23032. # else
  23033. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, uint32_t const &, VULKAN_HPP_NAMESPACE::DrmFormatModifierProperties2EXT * const &>
  23034. # endif
  23035. reflect() const VULKAN_HPP_NOEXCEPT
  23036. {
  23037. return std::tie( sType, pNext, drmFormatModifierCount, pDrmFormatModifierProperties );
  23038. }
  23039. #endif
  23040. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  23041. auto operator<=>( DrmFormatModifierPropertiesList2EXT const & ) const = default;
  23042. #else
  23043. bool operator==( DrmFormatModifierPropertiesList2EXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  23044. {
  23045. # if defined( VULKAN_HPP_USE_REFLECT )
  23046. return this->reflect() == rhs.reflect();
  23047. # else
  23048. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( drmFormatModifierCount == rhs.drmFormatModifierCount ) &&
  23049. ( pDrmFormatModifierProperties == rhs.pDrmFormatModifierProperties );
  23050. # endif
  23051. }
  23052. bool operator!=( DrmFormatModifierPropertiesList2EXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  23053. {
  23054. return !operator==( rhs );
  23055. }
  23056. #endif
  23057. public:
  23058. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDrmFormatModifierPropertiesList2EXT;
  23059. void * pNext = {};
  23060. uint32_t drmFormatModifierCount = {};
  23061. VULKAN_HPP_NAMESPACE::DrmFormatModifierProperties2EXT * pDrmFormatModifierProperties = {};
  23062. };
  23063. template <>
  23064. struct CppType<StructureType, StructureType::eDrmFormatModifierPropertiesList2EXT>
  23065. {
  23066. using Type = DrmFormatModifierPropertiesList2EXT;
  23067. };
  23068. struct DrmFormatModifierPropertiesListEXT
  23069. {
  23070. using NativeType = VkDrmFormatModifierPropertiesListEXT;
  23071. static const bool allowDuplicate = false;
  23072. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDrmFormatModifierPropertiesListEXT;
  23073. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  23074. VULKAN_HPP_CONSTEXPR DrmFormatModifierPropertiesListEXT( uint32_t drmFormatModifierCount_ = {},
  23075. VULKAN_HPP_NAMESPACE::DrmFormatModifierPropertiesEXT * pDrmFormatModifierProperties_ = {},
  23076. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  23077. : pNext( pNext_ )
  23078. , drmFormatModifierCount( drmFormatModifierCount_ )
  23079. , pDrmFormatModifierProperties( pDrmFormatModifierProperties_ )
  23080. {
  23081. }
  23082. VULKAN_HPP_CONSTEXPR DrmFormatModifierPropertiesListEXT( DrmFormatModifierPropertiesListEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  23083. DrmFormatModifierPropertiesListEXT( VkDrmFormatModifierPropertiesListEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  23084. : DrmFormatModifierPropertiesListEXT( *reinterpret_cast<DrmFormatModifierPropertiesListEXT const *>( &rhs ) )
  23085. {
  23086. }
  23087. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  23088. DrmFormatModifierPropertiesListEXT(
  23089. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<VULKAN_HPP_NAMESPACE::DrmFormatModifierPropertiesEXT> const & drmFormatModifierProperties_,
  23090. void * pNext_ = nullptr )
  23091. : pNext( pNext_ )
  23092. , drmFormatModifierCount( static_cast<uint32_t>( drmFormatModifierProperties_.size() ) )
  23093. , pDrmFormatModifierProperties( drmFormatModifierProperties_.data() )
  23094. {
  23095. }
  23096. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  23097. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  23098. DrmFormatModifierPropertiesListEXT & operator=( DrmFormatModifierPropertiesListEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  23099. DrmFormatModifierPropertiesListEXT & operator=( VkDrmFormatModifierPropertiesListEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  23100. {
  23101. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DrmFormatModifierPropertiesListEXT const *>( &rhs );
  23102. return *this;
  23103. }
  23104. operator VkDrmFormatModifierPropertiesListEXT const &() const VULKAN_HPP_NOEXCEPT
  23105. {
  23106. return *reinterpret_cast<const VkDrmFormatModifierPropertiesListEXT *>( this );
  23107. }
  23108. operator VkDrmFormatModifierPropertiesListEXT &() VULKAN_HPP_NOEXCEPT
  23109. {
  23110. return *reinterpret_cast<VkDrmFormatModifierPropertiesListEXT *>( this );
  23111. }
  23112. #if defined( VULKAN_HPP_USE_REFLECT )
  23113. # if 14 <= VULKAN_HPP_CPP_VERSION
  23114. auto
  23115. # else
  23116. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, uint32_t const &, VULKAN_HPP_NAMESPACE::DrmFormatModifierPropertiesEXT * const &>
  23117. # endif
  23118. reflect() const VULKAN_HPP_NOEXCEPT
  23119. {
  23120. return std::tie( sType, pNext, drmFormatModifierCount, pDrmFormatModifierProperties );
  23121. }
  23122. #endif
  23123. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  23124. auto operator<=>( DrmFormatModifierPropertiesListEXT const & ) const = default;
  23125. #else
  23126. bool operator==( DrmFormatModifierPropertiesListEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  23127. {
  23128. # if defined( VULKAN_HPP_USE_REFLECT )
  23129. return this->reflect() == rhs.reflect();
  23130. # else
  23131. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( drmFormatModifierCount == rhs.drmFormatModifierCount ) &&
  23132. ( pDrmFormatModifierProperties == rhs.pDrmFormatModifierProperties );
  23133. # endif
  23134. }
  23135. bool operator!=( DrmFormatModifierPropertiesListEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  23136. {
  23137. return !operator==( rhs );
  23138. }
  23139. #endif
  23140. public:
  23141. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDrmFormatModifierPropertiesListEXT;
  23142. void * pNext = {};
  23143. uint32_t drmFormatModifierCount = {};
  23144. VULKAN_HPP_NAMESPACE::DrmFormatModifierPropertiesEXT * pDrmFormatModifierProperties = {};
  23145. };
  23146. template <>
  23147. struct CppType<StructureType, StructureType::eDrmFormatModifierPropertiesListEXT>
  23148. {
  23149. using Type = DrmFormatModifierPropertiesListEXT;
  23150. };
  23151. struct EventCreateInfo
  23152. {
  23153. using NativeType = VkEventCreateInfo;
  23154. static const bool allowDuplicate = false;
  23155. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eEventCreateInfo;
  23156. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  23157. VULKAN_HPP_CONSTEXPR EventCreateInfo( VULKAN_HPP_NAMESPACE::EventCreateFlags flags_ = {}, const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  23158. : pNext( pNext_ )
  23159. , flags( flags_ )
  23160. {
  23161. }
  23162. VULKAN_HPP_CONSTEXPR EventCreateInfo( EventCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  23163. EventCreateInfo( VkEventCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT : EventCreateInfo( *reinterpret_cast<EventCreateInfo const *>( &rhs ) ) {}
  23164. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  23165. EventCreateInfo & operator=( EventCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  23166. EventCreateInfo & operator=( VkEventCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
  23167. {
  23168. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::EventCreateInfo const *>( &rhs );
  23169. return *this;
  23170. }
  23171. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  23172. VULKAN_HPP_CONSTEXPR_14 EventCreateInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  23173. {
  23174. pNext = pNext_;
  23175. return *this;
  23176. }
  23177. VULKAN_HPP_CONSTEXPR_14 EventCreateInfo & setFlags( VULKAN_HPP_NAMESPACE::EventCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT
  23178. {
  23179. flags = flags_;
  23180. return *this;
  23181. }
  23182. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  23183. operator VkEventCreateInfo const &() const VULKAN_HPP_NOEXCEPT
  23184. {
  23185. return *reinterpret_cast<const VkEventCreateInfo *>( this );
  23186. }
  23187. operator VkEventCreateInfo &() VULKAN_HPP_NOEXCEPT
  23188. {
  23189. return *reinterpret_cast<VkEventCreateInfo *>( this );
  23190. }
  23191. #if defined( VULKAN_HPP_USE_REFLECT )
  23192. # if 14 <= VULKAN_HPP_CPP_VERSION
  23193. auto
  23194. # else
  23195. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::EventCreateFlags const &>
  23196. # endif
  23197. reflect() const VULKAN_HPP_NOEXCEPT
  23198. {
  23199. return std::tie( sType, pNext, flags );
  23200. }
  23201. #endif
  23202. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  23203. auto operator<=>( EventCreateInfo const & ) const = default;
  23204. #else
  23205. bool operator==( EventCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  23206. {
  23207. # if defined( VULKAN_HPP_USE_REFLECT )
  23208. return this->reflect() == rhs.reflect();
  23209. # else
  23210. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( flags == rhs.flags );
  23211. # endif
  23212. }
  23213. bool operator!=( EventCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  23214. {
  23215. return !operator==( rhs );
  23216. }
  23217. #endif
  23218. public:
  23219. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eEventCreateInfo;
  23220. const void * pNext = {};
  23221. VULKAN_HPP_NAMESPACE::EventCreateFlags flags = {};
  23222. };
  23223. template <>
  23224. struct CppType<StructureType, StructureType::eEventCreateInfo>
  23225. {
  23226. using Type = EventCreateInfo;
  23227. };
  23228. struct ExportFenceCreateInfo
  23229. {
  23230. using NativeType = VkExportFenceCreateInfo;
  23231. static const bool allowDuplicate = false;
  23232. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eExportFenceCreateInfo;
  23233. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  23234. VULKAN_HPP_CONSTEXPR ExportFenceCreateInfo( VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlags handleTypes_ = {},
  23235. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  23236. : pNext( pNext_ )
  23237. , handleTypes( handleTypes_ )
  23238. {
  23239. }
  23240. VULKAN_HPP_CONSTEXPR ExportFenceCreateInfo( ExportFenceCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  23241. ExportFenceCreateInfo( VkExportFenceCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
  23242. : ExportFenceCreateInfo( *reinterpret_cast<ExportFenceCreateInfo const *>( &rhs ) )
  23243. {
  23244. }
  23245. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  23246. ExportFenceCreateInfo & operator=( ExportFenceCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  23247. ExportFenceCreateInfo & operator=( VkExportFenceCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
  23248. {
  23249. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ExportFenceCreateInfo const *>( &rhs );
  23250. return *this;
  23251. }
  23252. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  23253. VULKAN_HPP_CONSTEXPR_14 ExportFenceCreateInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  23254. {
  23255. pNext = pNext_;
  23256. return *this;
  23257. }
  23258. VULKAN_HPP_CONSTEXPR_14 ExportFenceCreateInfo & setHandleTypes( VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlags handleTypes_ ) VULKAN_HPP_NOEXCEPT
  23259. {
  23260. handleTypes = handleTypes_;
  23261. return *this;
  23262. }
  23263. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  23264. operator VkExportFenceCreateInfo const &() const VULKAN_HPP_NOEXCEPT
  23265. {
  23266. return *reinterpret_cast<const VkExportFenceCreateInfo *>( this );
  23267. }
  23268. operator VkExportFenceCreateInfo &() VULKAN_HPP_NOEXCEPT
  23269. {
  23270. return *reinterpret_cast<VkExportFenceCreateInfo *>( this );
  23271. }
  23272. #if defined( VULKAN_HPP_USE_REFLECT )
  23273. # if 14 <= VULKAN_HPP_CPP_VERSION
  23274. auto
  23275. # else
  23276. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlags const &>
  23277. # endif
  23278. reflect() const VULKAN_HPP_NOEXCEPT
  23279. {
  23280. return std::tie( sType, pNext, handleTypes );
  23281. }
  23282. #endif
  23283. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  23284. auto operator<=>( ExportFenceCreateInfo const & ) const = default;
  23285. #else
  23286. bool operator==( ExportFenceCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  23287. {
  23288. # if defined( VULKAN_HPP_USE_REFLECT )
  23289. return this->reflect() == rhs.reflect();
  23290. # else
  23291. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( handleTypes == rhs.handleTypes );
  23292. # endif
  23293. }
  23294. bool operator!=( ExportFenceCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  23295. {
  23296. return !operator==( rhs );
  23297. }
  23298. #endif
  23299. public:
  23300. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eExportFenceCreateInfo;
  23301. const void * pNext = {};
  23302. VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlags handleTypes = {};
  23303. };
  23304. template <>
  23305. struct CppType<StructureType, StructureType::eExportFenceCreateInfo>
  23306. {
  23307. using Type = ExportFenceCreateInfo;
  23308. };
  23309. using ExportFenceCreateInfoKHR = ExportFenceCreateInfo;
  23310. #if defined( VK_USE_PLATFORM_WIN32_KHR )
  23311. struct ExportFenceWin32HandleInfoKHR
  23312. {
  23313. using NativeType = VkExportFenceWin32HandleInfoKHR;
  23314. static const bool allowDuplicate = false;
  23315. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eExportFenceWin32HandleInfoKHR;
  23316. # if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  23317. VULKAN_HPP_CONSTEXPR ExportFenceWin32HandleInfoKHR( const SECURITY_ATTRIBUTES * pAttributes_ = {},
  23318. DWORD dwAccess_ = {},
  23319. LPCWSTR name_ = {},
  23320. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  23321. : pNext( pNext_ )
  23322. , pAttributes( pAttributes_ )
  23323. , dwAccess( dwAccess_ )
  23324. , name( name_ )
  23325. {
  23326. }
  23327. VULKAN_HPP_CONSTEXPR ExportFenceWin32HandleInfoKHR( ExportFenceWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  23328. ExportFenceWin32HandleInfoKHR( VkExportFenceWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  23329. : ExportFenceWin32HandleInfoKHR( *reinterpret_cast<ExportFenceWin32HandleInfoKHR const *>( &rhs ) )
  23330. {
  23331. }
  23332. # endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  23333. ExportFenceWin32HandleInfoKHR & operator=( ExportFenceWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  23334. ExportFenceWin32HandleInfoKHR & operator=( VkExportFenceWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  23335. {
  23336. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ExportFenceWin32HandleInfoKHR const *>( &rhs );
  23337. return *this;
  23338. }
  23339. # if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  23340. VULKAN_HPP_CONSTEXPR_14 ExportFenceWin32HandleInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  23341. {
  23342. pNext = pNext_;
  23343. return *this;
  23344. }
  23345. VULKAN_HPP_CONSTEXPR_14 ExportFenceWin32HandleInfoKHR & setPAttributes( const SECURITY_ATTRIBUTES * pAttributes_ ) VULKAN_HPP_NOEXCEPT
  23346. {
  23347. pAttributes = pAttributes_;
  23348. return *this;
  23349. }
  23350. VULKAN_HPP_CONSTEXPR_14 ExportFenceWin32HandleInfoKHR & setDwAccess( DWORD dwAccess_ ) VULKAN_HPP_NOEXCEPT
  23351. {
  23352. dwAccess = dwAccess_;
  23353. return *this;
  23354. }
  23355. VULKAN_HPP_CONSTEXPR_14 ExportFenceWin32HandleInfoKHR & setName( LPCWSTR name_ ) VULKAN_HPP_NOEXCEPT
  23356. {
  23357. name = name_;
  23358. return *this;
  23359. }
  23360. # endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  23361. operator VkExportFenceWin32HandleInfoKHR const &() const VULKAN_HPP_NOEXCEPT
  23362. {
  23363. return *reinterpret_cast<const VkExportFenceWin32HandleInfoKHR *>( this );
  23364. }
  23365. operator VkExportFenceWin32HandleInfoKHR &() VULKAN_HPP_NOEXCEPT
  23366. {
  23367. return *reinterpret_cast<VkExportFenceWin32HandleInfoKHR *>( this );
  23368. }
  23369. # if defined( VULKAN_HPP_USE_REFLECT )
  23370. # if 14 <= VULKAN_HPP_CPP_VERSION
  23371. auto
  23372. # else
  23373. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, const SECURITY_ATTRIBUTES * const &, DWORD const &, LPCWSTR const &>
  23374. # endif
  23375. reflect() const VULKAN_HPP_NOEXCEPT
  23376. {
  23377. return std::tie( sType, pNext, pAttributes, dwAccess, name );
  23378. }
  23379. # endif
  23380. # if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  23381. auto operator<=>( ExportFenceWin32HandleInfoKHR const & ) const = default;
  23382. # else
  23383. bool operator==( ExportFenceWin32HandleInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  23384. {
  23385. # if defined( VULKAN_HPP_USE_REFLECT )
  23386. return this->reflect() == rhs.reflect();
  23387. # else
  23388. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( pAttributes == rhs.pAttributes ) && ( dwAccess == rhs.dwAccess ) && ( name == rhs.name );
  23389. # endif
  23390. }
  23391. bool operator!=( ExportFenceWin32HandleInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  23392. {
  23393. return !operator==( rhs );
  23394. }
  23395. # endif
  23396. public:
  23397. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eExportFenceWin32HandleInfoKHR;
  23398. const void * pNext = {};
  23399. const SECURITY_ATTRIBUTES * pAttributes = {};
  23400. DWORD dwAccess = {};
  23401. LPCWSTR name = {};
  23402. };
  23403. template <>
  23404. struct CppType<StructureType, StructureType::eExportFenceWin32HandleInfoKHR>
  23405. {
  23406. using Type = ExportFenceWin32HandleInfoKHR;
  23407. };
  23408. #endif /*VK_USE_PLATFORM_WIN32_KHR*/
  23409. struct ExportMemoryAllocateInfo
  23410. {
  23411. using NativeType = VkExportMemoryAllocateInfo;
  23412. static const bool allowDuplicate = false;
  23413. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eExportMemoryAllocateInfo;
  23414. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  23415. VULKAN_HPP_CONSTEXPR ExportMemoryAllocateInfo( VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlags handleTypes_ = {},
  23416. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  23417. : pNext( pNext_ )
  23418. , handleTypes( handleTypes_ )
  23419. {
  23420. }
  23421. VULKAN_HPP_CONSTEXPR ExportMemoryAllocateInfo( ExportMemoryAllocateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  23422. ExportMemoryAllocateInfo( VkExportMemoryAllocateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
  23423. : ExportMemoryAllocateInfo( *reinterpret_cast<ExportMemoryAllocateInfo const *>( &rhs ) )
  23424. {
  23425. }
  23426. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  23427. ExportMemoryAllocateInfo & operator=( ExportMemoryAllocateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  23428. ExportMemoryAllocateInfo & operator=( VkExportMemoryAllocateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
  23429. {
  23430. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ExportMemoryAllocateInfo const *>( &rhs );
  23431. return *this;
  23432. }
  23433. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  23434. VULKAN_HPP_CONSTEXPR_14 ExportMemoryAllocateInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  23435. {
  23436. pNext = pNext_;
  23437. return *this;
  23438. }
  23439. VULKAN_HPP_CONSTEXPR_14 ExportMemoryAllocateInfo & setHandleTypes( VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlags handleTypes_ ) VULKAN_HPP_NOEXCEPT
  23440. {
  23441. handleTypes = handleTypes_;
  23442. return *this;
  23443. }
  23444. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  23445. operator VkExportMemoryAllocateInfo const &() const VULKAN_HPP_NOEXCEPT
  23446. {
  23447. return *reinterpret_cast<const VkExportMemoryAllocateInfo *>( this );
  23448. }
  23449. operator VkExportMemoryAllocateInfo &() VULKAN_HPP_NOEXCEPT
  23450. {
  23451. return *reinterpret_cast<VkExportMemoryAllocateInfo *>( this );
  23452. }
  23453. #if defined( VULKAN_HPP_USE_REFLECT )
  23454. # if 14 <= VULKAN_HPP_CPP_VERSION
  23455. auto
  23456. # else
  23457. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlags const &>
  23458. # endif
  23459. reflect() const VULKAN_HPP_NOEXCEPT
  23460. {
  23461. return std::tie( sType, pNext, handleTypes );
  23462. }
  23463. #endif
  23464. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  23465. auto operator<=>( ExportMemoryAllocateInfo const & ) const = default;
  23466. #else
  23467. bool operator==( ExportMemoryAllocateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  23468. {
  23469. # if defined( VULKAN_HPP_USE_REFLECT )
  23470. return this->reflect() == rhs.reflect();
  23471. # else
  23472. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( handleTypes == rhs.handleTypes );
  23473. # endif
  23474. }
  23475. bool operator!=( ExportMemoryAllocateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  23476. {
  23477. return !operator==( rhs );
  23478. }
  23479. #endif
  23480. public:
  23481. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eExportMemoryAllocateInfo;
  23482. const void * pNext = {};
  23483. VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlags handleTypes = {};
  23484. };
  23485. template <>
  23486. struct CppType<StructureType, StructureType::eExportMemoryAllocateInfo>
  23487. {
  23488. using Type = ExportMemoryAllocateInfo;
  23489. };
  23490. using ExportMemoryAllocateInfoKHR = ExportMemoryAllocateInfo;
  23491. struct ExportMemoryAllocateInfoNV
  23492. {
  23493. using NativeType = VkExportMemoryAllocateInfoNV;
  23494. static const bool allowDuplicate = false;
  23495. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eExportMemoryAllocateInfoNV;
  23496. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  23497. VULKAN_HPP_CONSTEXPR ExportMemoryAllocateInfoNV( VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagsNV handleTypes_ = {},
  23498. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  23499. : pNext( pNext_ )
  23500. , handleTypes( handleTypes_ )
  23501. {
  23502. }
  23503. VULKAN_HPP_CONSTEXPR ExportMemoryAllocateInfoNV( ExportMemoryAllocateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  23504. ExportMemoryAllocateInfoNV( VkExportMemoryAllocateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
  23505. : ExportMemoryAllocateInfoNV( *reinterpret_cast<ExportMemoryAllocateInfoNV const *>( &rhs ) )
  23506. {
  23507. }
  23508. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  23509. ExportMemoryAllocateInfoNV & operator=( ExportMemoryAllocateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  23510. ExportMemoryAllocateInfoNV & operator=( VkExportMemoryAllocateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
  23511. {
  23512. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ExportMemoryAllocateInfoNV const *>( &rhs );
  23513. return *this;
  23514. }
  23515. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  23516. VULKAN_HPP_CONSTEXPR_14 ExportMemoryAllocateInfoNV & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  23517. {
  23518. pNext = pNext_;
  23519. return *this;
  23520. }
  23521. VULKAN_HPP_CONSTEXPR_14 ExportMemoryAllocateInfoNV &
  23522. setHandleTypes( VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagsNV handleTypes_ ) VULKAN_HPP_NOEXCEPT
  23523. {
  23524. handleTypes = handleTypes_;
  23525. return *this;
  23526. }
  23527. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  23528. operator VkExportMemoryAllocateInfoNV const &() const VULKAN_HPP_NOEXCEPT
  23529. {
  23530. return *reinterpret_cast<const VkExportMemoryAllocateInfoNV *>( this );
  23531. }
  23532. operator VkExportMemoryAllocateInfoNV &() VULKAN_HPP_NOEXCEPT
  23533. {
  23534. return *reinterpret_cast<VkExportMemoryAllocateInfoNV *>( this );
  23535. }
  23536. #if defined( VULKAN_HPP_USE_REFLECT )
  23537. # if 14 <= VULKAN_HPP_CPP_VERSION
  23538. auto
  23539. # else
  23540. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagsNV const &>
  23541. # endif
  23542. reflect() const VULKAN_HPP_NOEXCEPT
  23543. {
  23544. return std::tie( sType, pNext, handleTypes );
  23545. }
  23546. #endif
  23547. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  23548. auto operator<=>( ExportMemoryAllocateInfoNV const & ) const = default;
  23549. #else
  23550. bool operator==( ExportMemoryAllocateInfoNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  23551. {
  23552. # if defined( VULKAN_HPP_USE_REFLECT )
  23553. return this->reflect() == rhs.reflect();
  23554. # else
  23555. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( handleTypes == rhs.handleTypes );
  23556. # endif
  23557. }
  23558. bool operator!=( ExportMemoryAllocateInfoNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  23559. {
  23560. return !operator==( rhs );
  23561. }
  23562. #endif
  23563. public:
  23564. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eExportMemoryAllocateInfoNV;
  23565. const void * pNext = {};
  23566. VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagsNV handleTypes = {};
  23567. };
  23568. template <>
  23569. struct CppType<StructureType, StructureType::eExportMemoryAllocateInfoNV>
  23570. {
  23571. using Type = ExportMemoryAllocateInfoNV;
  23572. };
  23573. #if defined( VK_USE_PLATFORM_WIN32_KHR )
  23574. struct ExportMemoryWin32HandleInfoKHR
  23575. {
  23576. using NativeType = VkExportMemoryWin32HandleInfoKHR;
  23577. static const bool allowDuplicate = false;
  23578. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eExportMemoryWin32HandleInfoKHR;
  23579. # if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  23580. VULKAN_HPP_CONSTEXPR ExportMemoryWin32HandleInfoKHR( const SECURITY_ATTRIBUTES * pAttributes_ = {},
  23581. DWORD dwAccess_ = {},
  23582. LPCWSTR name_ = {},
  23583. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  23584. : pNext( pNext_ )
  23585. , pAttributes( pAttributes_ )
  23586. , dwAccess( dwAccess_ )
  23587. , name( name_ )
  23588. {
  23589. }
  23590. VULKAN_HPP_CONSTEXPR ExportMemoryWin32HandleInfoKHR( ExportMemoryWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  23591. ExportMemoryWin32HandleInfoKHR( VkExportMemoryWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  23592. : ExportMemoryWin32HandleInfoKHR( *reinterpret_cast<ExportMemoryWin32HandleInfoKHR const *>( &rhs ) )
  23593. {
  23594. }
  23595. # endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  23596. ExportMemoryWin32HandleInfoKHR & operator=( ExportMemoryWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  23597. ExportMemoryWin32HandleInfoKHR & operator=( VkExportMemoryWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  23598. {
  23599. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ExportMemoryWin32HandleInfoKHR const *>( &rhs );
  23600. return *this;
  23601. }
  23602. # if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  23603. VULKAN_HPP_CONSTEXPR_14 ExportMemoryWin32HandleInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  23604. {
  23605. pNext = pNext_;
  23606. return *this;
  23607. }
  23608. VULKAN_HPP_CONSTEXPR_14 ExportMemoryWin32HandleInfoKHR & setPAttributes( const SECURITY_ATTRIBUTES * pAttributes_ ) VULKAN_HPP_NOEXCEPT
  23609. {
  23610. pAttributes = pAttributes_;
  23611. return *this;
  23612. }
  23613. VULKAN_HPP_CONSTEXPR_14 ExportMemoryWin32HandleInfoKHR & setDwAccess( DWORD dwAccess_ ) VULKAN_HPP_NOEXCEPT
  23614. {
  23615. dwAccess = dwAccess_;
  23616. return *this;
  23617. }
  23618. VULKAN_HPP_CONSTEXPR_14 ExportMemoryWin32HandleInfoKHR & setName( LPCWSTR name_ ) VULKAN_HPP_NOEXCEPT
  23619. {
  23620. name = name_;
  23621. return *this;
  23622. }
  23623. # endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  23624. operator VkExportMemoryWin32HandleInfoKHR const &() const VULKAN_HPP_NOEXCEPT
  23625. {
  23626. return *reinterpret_cast<const VkExportMemoryWin32HandleInfoKHR *>( this );
  23627. }
  23628. operator VkExportMemoryWin32HandleInfoKHR &() VULKAN_HPP_NOEXCEPT
  23629. {
  23630. return *reinterpret_cast<VkExportMemoryWin32HandleInfoKHR *>( this );
  23631. }
  23632. # if defined( VULKAN_HPP_USE_REFLECT )
  23633. # if 14 <= VULKAN_HPP_CPP_VERSION
  23634. auto
  23635. # else
  23636. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, const SECURITY_ATTRIBUTES * const &, DWORD const &, LPCWSTR const &>
  23637. # endif
  23638. reflect() const VULKAN_HPP_NOEXCEPT
  23639. {
  23640. return std::tie( sType, pNext, pAttributes, dwAccess, name );
  23641. }
  23642. # endif
  23643. # if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  23644. auto operator<=>( ExportMemoryWin32HandleInfoKHR const & ) const = default;
  23645. # else
  23646. bool operator==( ExportMemoryWin32HandleInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  23647. {
  23648. # if defined( VULKAN_HPP_USE_REFLECT )
  23649. return this->reflect() == rhs.reflect();
  23650. # else
  23651. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( pAttributes == rhs.pAttributes ) && ( dwAccess == rhs.dwAccess ) && ( name == rhs.name );
  23652. # endif
  23653. }
  23654. bool operator!=( ExportMemoryWin32HandleInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  23655. {
  23656. return !operator==( rhs );
  23657. }
  23658. # endif
  23659. public:
  23660. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eExportMemoryWin32HandleInfoKHR;
  23661. const void * pNext = {};
  23662. const SECURITY_ATTRIBUTES * pAttributes = {};
  23663. DWORD dwAccess = {};
  23664. LPCWSTR name = {};
  23665. };
  23666. template <>
  23667. struct CppType<StructureType, StructureType::eExportMemoryWin32HandleInfoKHR>
  23668. {
  23669. using Type = ExportMemoryWin32HandleInfoKHR;
  23670. };
  23671. #endif /*VK_USE_PLATFORM_WIN32_KHR*/
  23672. #if defined( VK_USE_PLATFORM_WIN32_KHR )
  23673. struct ExportMemoryWin32HandleInfoNV
  23674. {
  23675. using NativeType = VkExportMemoryWin32HandleInfoNV;
  23676. static const bool allowDuplicate = false;
  23677. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eExportMemoryWin32HandleInfoNV;
  23678. # if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  23679. VULKAN_HPP_CONSTEXPR
  23680. ExportMemoryWin32HandleInfoNV( const SECURITY_ATTRIBUTES * pAttributes_ = {}, DWORD dwAccess_ = {}, const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  23681. : pNext( pNext_ )
  23682. , pAttributes( pAttributes_ )
  23683. , dwAccess( dwAccess_ )
  23684. {
  23685. }
  23686. VULKAN_HPP_CONSTEXPR ExportMemoryWin32HandleInfoNV( ExportMemoryWin32HandleInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  23687. ExportMemoryWin32HandleInfoNV( VkExportMemoryWin32HandleInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
  23688. : ExportMemoryWin32HandleInfoNV( *reinterpret_cast<ExportMemoryWin32HandleInfoNV const *>( &rhs ) )
  23689. {
  23690. }
  23691. # endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  23692. ExportMemoryWin32HandleInfoNV & operator=( ExportMemoryWin32HandleInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  23693. ExportMemoryWin32HandleInfoNV & operator=( VkExportMemoryWin32HandleInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
  23694. {
  23695. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ExportMemoryWin32HandleInfoNV const *>( &rhs );
  23696. return *this;
  23697. }
  23698. # if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  23699. VULKAN_HPP_CONSTEXPR_14 ExportMemoryWin32HandleInfoNV & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  23700. {
  23701. pNext = pNext_;
  23702. return *this;
  23703. }
  23704. VULKAN_HPP_CONSTEXPR_14 ExportMemoryWin32HandleInfoNV & setPAttributes( const SECURITY_ATTRIBUTES * pAttributes_ ) VULKAN_HPP_NOEXCEPT
  23705. {
  23706. pAttributes = pAttributes_;
  23707. return *this;
  23708. }
  23709. VULKAN_HPP_CONSTEXPR_14 ExportMemoryWin32HandleInfoNV & setDwAccess( DWORD dwAccess_ ) VULKAN_HPP_NOEXCEPT
  23710. {
  23711. dwAccess = dwAccess_;
  23712. return *this;
  23713. }
  23714. # endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  23715. operator VkExportMemoryWin32HandleInfoNV const &() const VULKAN_HPP_NOEXCEPT
  23716. {
  23717. return *reinterpret_cast<const VkExportMemoryWin32HandleInfoNV *>( this );
  23718. }
  23719. operator VkExportMemoryWin32HandleInfoNV &() VULKAN_HPP_NOEXCEPT
  23720. {
  23721. return *reinterpret_cast<VkExportMemoryWin32HandleInfoNV *>( this );
  23722. }
  23723. # if defined( VULKAN_HPP_USE_REFLECT )
  23724. # if 14 <= VULKAN_HPP_CPP_VERSION
  23725. auto
  23726. # else
  23727. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, const SECURITY_ATTRIBUTES * const &, DWORD const &>
  23728. # endif
  23729. reflect() const VULKAN_HPP_NOEXCEPT
  23730. {
  23731. return std::tie( sType, pNext, pAttributes, dwAccess );
  23732. }
  23733. # endif
  23734. # if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  23735. auto operator<=>( ExportMemoryWin32HandleInfoNV const & ) const = default;
  23736. # else
  23737. bool operator==( ExportMemoryWin32HandleInfoNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  23738. {
  23739. # if defined( VULKAN_HPP_USE_REFLECT )
  23740. return this->reflect() == rhs.reflect();
  23741. # else
  23742. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( pAttributes == rhs.pAttributes ) && ( dwAccess == rhs.dwAccess );
  23743. # endif
  23744. }
  23745. bool operator!=( ExportMemoryWin32HandleInfoNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  23746. {
  23747. return !operator==( rhs );
  23748. }
  23749. # endif
  23750. public:
  23751. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eExportMemoryWin32HandleInfoNV;
  23752. const void * pNext = {};
  23753. const SECURITY_ATTRIBUTES * pAttributes = {};
  23754. DWORD dwAccess = {};
  23755. };
  23756. template <>
  23757. struct CppType<StructureType, StructureType::eExportMemoryWin32HandleInfoNV>
  23758. {
  23759. using Type = ExportMemoryWin32HandleInfoNV;
  23760. };
  23761. #endif /*VK_USE_PLATFORM_WIN32_KHR*/
  23762. #if defined( VK_USE_PLATFORM_METAL_EXT )
  23763. struct ExportMetalBufferInfoEXT
  23764. {
  23765. using NativeType = VkExportMetalBufferInfoEXT;
  23766. static const bool allowDuplicate = true;
  23767. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eExportMetalBufferInfoEXT;
  23768. # if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  23769. VULKAN_HPP_CONSTEXPR ExportMetalBufferInfoEXT( VULKAN_HPP_NAMESPACE::DeviceMemory memory_ = {},
  23770. MTLBuffer_id mtlBuffer_ = {},
  23771. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  23772. : pNext( pNext_ )
  23773. , memory( memory_ )
  23774. , mtlBuffer( mtlBuffer_ )
  23775. {
  23776. }
  23777. VULKAN_HPP_CONSTEXPR ExportMetalBufferInfoEXT( ExportMetalBufferInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  23778. ExportMetalBufferInfoEXT( VkExportMetalBufferInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  23779. : ExportMetalBufferInfoEXT( *reinterpret_cast<ExportMetalBufferInfoEXT const *>( &rhs ) )
  23780. {
  23781. }
  23782. # endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  23783. ExportMetalBufferInfoEXT & operator=( ExportMetalBufferInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  23784. ExportMetalBufferInfoEXT & operator=( VkExportMetalBufferInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  23785. {
  23786. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ExportMetalBufferInfoEXT const *>( &rhs );
  23787. return *this;
  23788. }
  23789. # if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  23790. VULKAN_HPP_CONSTEXPR_14 ExportMetalBufferInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  23791. {
  23792. pNext = pNext_;
  23793. return *this;
  23794. }
  23795. VULKAN_HPP_CONSTEXPR_14 ExportMetalBufferInfoEXT & setMemory( VULKAN_HPP_NAMESPACE::DeviceMemory memory_ ) VULKAN_HPP_NOEXCEPT
  23796. {
  23797. memory = memory_;
  23798. return *this;
  23799. }
  23800. VULKAN_HPP_CONSTEXPR_14 ExportMetalBufferInfoEXT & setMtlBuffer( MTLBuffer_id mtlBuffer_ ) VULKAN_HPP_NOEXCEPT
  23801. {
  23802. mtlBuffer = mtlBuffer_;
  23803. return *this;
  23804. }
  23805. # endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  23806. operator VkExportMetalBufferInfoEXT const &() const VULKAN_HPP_NOEXCEPT
  23807. {
  23808. return *reinterpret_cast<const VkExportMetalBufferInfoEXT *>( this );
  23809. }
  23810. operator VkExportMetalBufferInfoEXT &() VULKAN_HPP_NOEXCEPT
  23811. {
  23812. return *reinterpret_cast<VkExportMetalBufferInfoEXT *>( this );
  23813. }
  23814. # if defined( VULKAN_HPP_USE_REFLECT )
  23815. # if 14 <= VULKAN_HPP_CPP_VERSION
  23816. auto
  23817. # else
  23818. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::DeviceMemory const &, MTLBuffer_id const &>
  23819. # endif
  23820. reflect() const VULKAN_HPP_NOEXCEPT
  23821. {
  23822. return std::tie( sType, pNext, memory, mtlBuffer );
  23823. }
  23824. # endif
  23825. # if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  23826. auto operator<=>( ExportMetalBufferInfoEXT const & ) const = default;
  23827. # else
  23828. bool operator==( ExportMetalBufferInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  23829. {
  23830. # if defined( VULKAN_HPP_USE_REFLECT )
  23831. return this->reflect() == rhs.reflect();
  23832. # else
  23833. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( memory == rhs.memory ) && ( mtlBuffer == rhs.mtlBuffer );
  23834. # endif
  23835. }
  23836. bool operator!=( ExportMetalBufferInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  23837. {
  23838. return !operator==( rhs );
  23839. }
  23840. # endif
  23841. public:
  23842. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eExportMetalBufferInfoEXT;
  23843. const void * pNext = {};
  23844. VULKAN_HPP_NAMESPACE::DeviceMemory memory = {};
  23845. MTLBuffer_id mtlBuffer = {};
  23846. };
  23847. template <>
  23848. struct CppType<StructureType, StructureType::eExportMetalBufferInfoEXT>
  23849. {
  23850. using Type = ExportMetalBufferInfoEXT;
  23851. };
  23852. #endif /*VK_USE_PLATFORM_METAL_EXT*/
  23853. #if defined( VK_USE_PLATFORM_METAL_EXT )
  23854. struct ExportMetalCommandQueueInfoEXT
  23855. {
  23856. using NativeType = VkExportMetalCommandQueueInfoEXT;
  23857. static const bool allowDuplicate = true;
  23858. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eExportMetalCommandQueueInfoEXT;
  23859. # if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  23860. VULKAN_HPP_CONSTEXPR ExportMetalCommandQueueInfoEXT( VULKAN_HPP_NAMESPACE::Queue queue_ = {},
  23861. MTLCommandQueue_id mtlCommandQueue_ = {},
  23862. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  23863. : pNext( pNext_ )
  23864. , queue( queue_ )
  23865. , mtlCommandQueue( mtlCommandQueue_ )
  23866. {
  23867. }
  23868. VULKAN_HPP_CONSTEXPR ExportMetalCommandQueueInfoEXT( ExportMetalCommandQueueInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  23869. ExportMetalCommandQueueInfoEXT( VkExportMetalCommandQueueInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  23870. : ExportMetalCommandQueueInfoEXT( *reinterpret_cast<ExportMetalCommandQueueInfoEXT const *>( &rhs ) )
  23871. {
  23872. }
  23873. # endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  23874. ExportMetalCommandQueueInfoEXT & operator=( ExportMetalCommandQueueInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  23875. ExportMetalCommandQueueInfoEXT & operator=( VkExportMetalCommandQueueInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  23876. {
  23877. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ExportMetalCommandQueueInfoEXT const *>( &rhs );
  23878. return *this;
  23879. }
  23880. # if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  23881. VULKAN_HPP_CONSTEXPR_14 ExportMetalCommandQueueInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  23882. {
  23883. pNext = pNext_;
  23884. return *this;
  23885. }
  23886. VULKAN_HPP_CONSTEXPR_14 ExportMetalCommandQueueInfoEXT & setQueue( VULKAN_HPP_NAMESPACE::Queue queue_ ) VULKAN_HPP_NOEXCEPT
  23887. {
  23888. queue = queue_;
  23889. return *this;
  23890. }
  23891. VULKAN_HPP_CONSTEXPR_14 ExportMetalCommandQueueInfoEXT & setMtlCommandQueue( MTLCommandQueue_id mtlCommandQueue_ ) VULKAN_HPP_NOEXCEPT
  23892. {
  23893. mtlCommandQueue = mtlCommandQueue_;
  23894. return *this;
  23895. }
  23896. # endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  23897. operator VkExportMetalCommandQueueInfoEXT const &() const VULKAN_HPP_NOEXCEPT
  23898. {
  23899. return *reinterpret_cast<const VkExportMetalCommandQueueInfoEXT *>( this );
  23900. }
  23901. operator VkExportMetalCommandQueueInfoEXT &() VULKAN_HPP_NOEXCEPT
  23902. {
  23903. return *reinterpret_cast<VkExportMetalCommandQueueInfoEXT *>( this );
  23904. }
  23905. # if defined( VULKAN_HPP_USE_REFLECT )
  23906. # if 14 <= VULKAN_HPP_CPP_VERSION
  23907. auto
  23908. # else
  23909. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::Queue const &, MTLCommandQueue_id const &>
  23910. # endif
  23911. reflect() const VULKAN_HPP_NOEXCEPT
  23912. {
  23913. return std::tie( sType, pNext, queue, mtlCommandQueue );
  23914. }
  23915. # endif
  23916. # if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  23917. auto operator<=>( ExportMetalCommandQueueInfoEXT const & ) const = default;
  23918. # else
  23919. bool operator==( ExportMetalCommandQueueInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  23920. {
  23921. # if defined( VULKAN_HPP_USE_REFLECT )
  23922. return this->reflect() == rhs.reflect();
  23923. # else
  23924. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( queue == rhs.queue ) && ( mtlCommandQueue == rhs.mtlCommandQueue );
  23925. # endif
  23926. }
  23927. bool operator!=( ExportMetalCommandQueueInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  23928. {
  23929. return !operator==( rhs );
  23930. }
  23931. # endif
  23932. public:
  23933. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eExportMetalCommandQueueInfoEXT;
  23934. const void * pNext = {};
  23935. VULKAN_HPP_NAMESPACE::Queue queue = {};
  23936. MTLCommandQueue_id mtlCommandQueue = {};
  23937. };
  23938. template <>
  23939. struct CppType<StructureType, StructureType::eExportMetalCommandQueueInfoEXT>
  23940. {
  23941. using Type = ExportMetalCommandQueueInfoEXT;
  23942. };
  23943. #endif /*VK_USE_PLATFORM_METAL_EXT*/
  23944. #if defined( VK_USE_PLATFORM_METAL_EXT )
  23945. struct ExportMetalDeviceInfoEXT
  23946. {
  23947. using NativeType = VkExportMetalDeviceInfoEXT;
  23948. static const bool allowDuplicate = false;
  23949. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eExportMetalDeviceInfoEXT;
  23950. # if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  23951. VULKAN_HPP_CONSTEXPR ExportMetalDeviceInfoEXT( MTLDevice_id mtlDevice_ = {}, const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  23952. : pNext( pNext_ )
  23953. , mtlDevice( mtlDevice_ )
  23954. {
  23955. }
  23956. VULKAN_HPP_CONSTEXPR ExportMetalDeviceInfoEXT( ExportMetalDeviceInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  23957. ExportMetalDeviceInfoEXT( VkExportMetalDeviceInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  23958. : ExportMetalDeviceInfoEXT( *reinterpret_cast<ExportMetalDeviceInfoEXT const *>( &rhs ) )
  23959. {
  23960. }
  23961. # endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  23962. ExportMetalDeviceInfoEXT & operator=( ExportMetalDeviceInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  23963. ExportMetalDeviceInfoEXT & operator=( VkExportMetalDeviceInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  23964. {
  23965. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ExportMetalDeviceInfoEXT const *>( &rhs );
  23966. return *this;
  23967. }
  23968. # if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  23969. VULKAN_HPP_CONSTEXPR_14 ExportMetalDeviceInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  23970. {
  23971. pNext = pNext_;
  23972. return *this;
  23973. }
  23974. VULKAN_HPP_CONSTEXPR_14 ExportMetalDeviceInfoEXT & setMtlDevice( MTLDevice_id mtlDevice_ ) VULKAN_HPP_NOEXCEPT
  23975. {
  23976. mtlDevice = mtlDevice_;
  23977. return *this;
  23978. }
  23979. # endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  23980. operator VkExportMetalDeviceInfoEXT const &() const VULKAN_HPP_NOEXCEPT
  23981. {
  23982. return *reinterpret_cast<const VkExportMetalDeviceInfoEXT *>( this );
  23983. }
  23984. operator VkExportMetalDeviceInfoEXT &() VULKAN_HPP_NOEXCEPT
  23985. {
  23986. return *reinterpret_cast<VkExportMetalDeviceInfoEXT *>( this );
  23987. }
  23988. # if defined( VULKAN_HPP_USE_REFLECT )
  23989. # if 14 <= VULKAN_HPP_CPP_VERSION
  23990. auto
  23991. # else
  23992. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, MTLDevice_id const &>
  23993. # endif
  23994. reflect() const VULKAN_HPP_NOEXCEPT
  23995. {
  23996. return std::tie( sType, pNext, mtlDevice );
  23997. }
  23998. # endif
  23999. # if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  24000. auto operator<=>( ExportMetalDeviceInfoEXT const & ) const = default;
  24001. # else
  24002. bool operator==( ExportMetalDeviceInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  24003. {
  24004. # if defined( VULKAN_HPP_USE_REFLECT )
  24005. return this->reflect() == rhs.reflect();
  24006. # else
  24007. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( mtlDevice == rhs.mtlDevice );
  24008. # endif
  24009. }
  24010. bool operator!=( ExportMetalDeviceInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  24011. {
  24012. return !operator==( rhs );
  24013. }
  24014. # endif
  24015. public:
  24016. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eExportMetalDeviceInfoEXT;
  24017. const void * pNext = {};
  24018. MTLDevice_id mtlDevice = {};
  24019. };
  24020. template <>
  24021. struct CppType<StructureType, StructureType::eExportMetalDeviceInfoEXT>
  24022. {
  24023. using Type = ExportMetalDeviceInfoEXT;
  24024. };
  24025. #endif /*VK_USE_PLATFORM_METAL_EXT*/
  24026. #if defined( VK_USE_PLATFORM_METAL_EXT )
  24027. struct ExportMetalIOSurfaceInfoEXT
  24028. {
  24029. using NativeType = VkExportMetalIOSurfaceInfoEXT;
  24030. static const bool allowDuplicate = true;
  24031. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eExportMetalIoSurfaceInfoEXT;
  24032. # if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  24033. VULKAN_HPP_CONSTEXPR
  24034. ExportMetalIOSurfaceInfoEXT( VULKAN_HPP_NAMESPACE::Image image_ = {}, IOSurfaceRef ioSurface_ = {}, const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  24035. : pNext( pNext_ )
  24036. , image( image_ )
  24037. , ioSurface( ioSurface_ )
  24038. {
  24039. }
  24040. VULKAN_HPP_CONSTEXPR ExportMetalIOSurfaceInfoEXT( ExportMetalIOSurfaceInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  24041. ExportMetalIOSurfaceInfoEXT( VkExportMetalIOSurfaceInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  24042. : ExportMetalIOSurfaceInfoEXT( *reinterpret_cast<ExportMetalIOSurfaceInfoEXT const *>( &rhs ) )
  24043. {
  24044. }
  24045. # endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  24046. ExportMetalIOSurfaceInfoEXT & operator=( ExportMetalIOSurfaceInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  24047. ExportMetalIOSurfaceInfoEXT & operator=( VkExportMetalIOSurfaceInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  24048. {
  24049. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ExportMetalIOSurfaceInfoEXT const *>( &rhs );
  24050. return *this;
  24051. }
  24052. # if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  24053. VULKAN_HPP_CONSTEXPR_14 ExportMetalIOSurfaceInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  24054. {
  24055. pNext = pNext_;
  24056. return *this;
  24057. }
  24058. VULKAN_HPP_CONSTEXPR_14 ExportMetalIOSurfaceInfoEXT & setImage( VULKAN_HPP_NAMESPACE::Image image_ ) VULKAN_HPP_NOEXCEPT
  24059. {
  24060. image = image_;
  24061. return *this;
  24062. }
  24063. VULKAN_HPP_CONSTEXPR_14 ExportMetalIOSurfaceInfoEXT & setIoSurface( IOSurfaceRef ioSurface_ ) VULKAN_HPP_NOEXCEPT
  24064. {
  24065. ioSurface = ioSurface_;
  24066. return *this;
  24067. }
  24068. # endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  24069. operator VkExportMetalIOSurfaceInfoEXT const &() const VULKAN_HPP_NOEXCEPT
  24070. {
  24071. return *reinterpret_cast<const VkExportMetalIOSurfaceInfoEXT *>( this );
  24072. }
  24073. operator VkExportMetalIOSurfaceInfoEXT &() VULKAN_HPP_NOEXCEPT
  24074. {
  24075. return *reinterpret_cast<VkExportMetalIOSurfaceInfoEXT *>( this );
  24076. }
  24077. # if defined( VULKAN_HPP_USE_REFLECT )
  24078. # if 14 <= VULKAN_HPP_CPP_VERSION
  24079. auto
  24080. # else
  24081. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::Image const &, IOSurfaceRef const &>
  24082. # endif
  24083. reflect() const VULKAN_HPP_NOEXCEPT
  24084. {
  24085. return std::tie( sType, pNext, image, ioSurface );
  24086. }
  24087. # endif
  24088. # if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  24089. auto operator<=>( ExportMetalIOSurfaceInfoEXT const & ) const = default;
  24090. # else
  24091. bool operator==( ExportMetalIOSurfaceInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  24092. {
  24093. # if defined( VULKAN_HPP_USE_REFLECT )
  24094. return this->reflect() == rhs.reflect();
  24095. # else
  24096. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( image == rhs.image ) && ( ioSurface == rhs.ioSurface );
  24097. # endif
  24098. }
  24099. bool operator!=( ExportMetalIOSurfaceInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  24100. {
  24101. return !operator==( rhs );
  24102. }
  24103. # endif
  24104. public:
  24105. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eExportMetalIoSurfaceInfoEXT;
  24106. const void * pNext = {};
  24107. VULKAN_HPP_NAMESPACE::Image image = {};
  24108. IOSurfaceRef ioSurface = {};
  24109. };
  24110. template <>
  24111. struct CppType<StructureType, StructureType::eExportMetalIoSurfaceInfoEXT>
  24112. {
  24113. using Type = ExportMetalIOSurfaceInfoEXT;
  24114. };
  24115. #endif /*VK_USE_PLATFORM_METAL_EXT*/
  24116. #if defined( VK_USE_PLATFORM_METAL_EXT )
  24117. struct ExportMetalObjectCreateInfoEXT
  24118. {
  24119. using NativeType = VkExportMetalObjectCreateInfoEXT;
  24120. static const bool allowDuplicate = true;
  24121. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eExportMetalObjectCreateInfoEXT;
  24122. # if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  24123. VULKAN_HPP_CONSTEXPR ExportMetalObjectCreateInfoEXT(
  24124. VULKAN_HPP_NAMESPACE::ExportMetalObjectTypeFlagBitsEXT exportObjectType_ = VULKAN_HPP_NAMESPACE::ExportMetalObjectTypeFlagBitsEXT::eMetalDevice,
  24125. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  24126. : pNext( pNext_ )
  24127. , exportObjectType( exportObjectType_ )
  24128. {
  24129. }
  24130. VULKAN_HPP_CONSTEXPR ExportMetalObjectCreateInfoEXT( ExportMetalObjectCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  24131. ExportMetalObjectCreateInfoEXT( VkExportMetalObjectCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  24132. : ExportMetalObjectCreateInfoEXT( *reinterpret_cast<ExportMetalObjectCreateInfoEXT const *>( &rhs ) )
  24133. {
  24134. }
  24135. # endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  24136. ExportMetalObjectCreateInfoEXT & operator=( ExportMetalObjectCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  24137. ExportMetalObjectCreateInfoEXT & operator=( VkExportMetalObjectCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  24138. {
  24139. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ExportMetalObjectCreateInfoEXT const *>( &rhs );
  24140. return *this;
  24141. }
  24142. # if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  24143. VULKAN_HPP_CONSTEXPR_14 ExportMetalObjectCreateInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  24144. {
  24145. pNext = pNext_;
  24146. return *this;
  24147. }
  24148. VULKAN_HPP_CONSTEXPR_14 ExportMetalObjectCreateInfoEXT &
  24149. setExportObjectType( VULKAN_HPP_NAMESPACE::ExportMetalObjectTypeFlagBitsEXT exportObjectType_ ) VULKAN_HPP_NOEXCEPT
  24150. {
  24151. exportObjectType = exportObjectType_;
  24152. return *this;
  24153. }
  24154. # endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  24155. operator VkExportMetalObjectCreateInfoEXT const &() const VULKAN_HPP_NOEXCEPT
  24156. {
  24157. return *reinterpret_cast<const VkExportMetalObjectCreateInfoEXT *>( this );
  24158. }
  24159. operator VkExportMetalObjectCreateInfoEXT &() VULKAN_HPP_NOEXCEPT
  24160. {
  24161. return *reinterpret_cast<VkExportMetalObjectCreateInfoEXT *>( this );
  24162. }
  24163. # if defined( VULKAN_HPP_USE_REFLECT )
  24164. # if 14 <= VULKAN_HPP_CPP_VERSION
  24165. auto
  24166. # else
  24167. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::ExportMetalObjectTypeFlagBitsEXT const &>
  24168. # endif
  24169. reflect() const VULKAN_HPP_NOEXCEPT
  24170. {
  24171. return std::tie( sType, pNext, exportObjectType );
  24172. }
  24173. # endif
  24174. # if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  24175. auto operator<=>( ExportMetalObjectCreateInfoEXT const & ) const = default;
  24176. # else
  24177. bool operator==( ExportMetalObjectCreateInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  24178. {
  24179. # if defined( VULKAN_HPP_USE_REFLECT )
  24180. return this->reflect() == rhs.reflect();
  24181. # else
  24182. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( exportObjectType == rhs.exportObjectType );
  24183. # endif
  24184. }
  24185. bool operator!=( ExportMetalObjectCreateInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  24186. {
  24187. return !operator==( rhs );
  24188. }
  24189. # endif
  24190. public:
  24191. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eExportMetalObjectCreateInfoEXT;
  24192. const void * pNext = {};
  24193. VULKAN_HPP_NAMESPACE::ExportMetalObjectTypeFlagBitsEXT exportObjectType = VULKAN_HPP_NAMESPACE::ExportMetalObjectTypeFlagBitsEXT::eMetalDevice;
  24194. };
  24195. template <>
  24196. struct CppType<StructureType, StructureType::eExportMetalObjectCreateInfoEXT>
  24197. {
  24198. using Type = ExportMetalObjectCreateInfoEXT;
  24199. };
  24200. #endif /*VK_USE_PLATFORM_METAL_EXT*/
  24201. #if defined( VK_USE_PLATFORM_METAL_EXT )
  24202. struct ExportMetalObjectsInfoEXT
  24203. {
  24204. using NativeType = VkExportMetalObjectsInfoEXT;
  24205. static const bool allowDuplicate = false;
  24206. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eExportMetalObjectsInfoEXT;
  24207. # if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  24208. VULKAN_HPP_CONSTEXPR ExportMetalObjectsInfoEXT( const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT : pNext( pNext_ ) {}
  24209. VULKAN_HPP_CONSTEXPR ExportMetalObjectsInfoEXT( ExportMetalObjectsInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  24210. ExportMetalObjectsInfoEXT( VkExportMetalObjectsInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  24211. : ExportMetalObjectsInfoEXT( *reinterpret_cast<ExportMetalObjectsInfoEXT const *>( &rhs ) )
  24212. {
  24213. }
  24214. # endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  24215. ExportMetalObjectsInfoEXT & operator=( ExportMetalObjectsInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  24216. ExportMetalObjectsInfoEXT & operator=( VkExportMetalObjectsInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  24217. {
  24218. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ExportMetalObjectsInfoEXT const *>( &rhs );
  24219. return *this;
  24220. }
  24221. # if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  24222. VULKAN_HPP_CONSTEXPR_14 ExportMetalObjectsInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  24223. {
  24224. pNext = pNext_;
  24225. return *this;
  24226. }
  24227. # endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  24228. operator VkExportMetalObjectsInfoEXT const &() const VULKAN_HPP_NOEXCEPT
  24229. {
  24230. return *reinterpret_cast<const VkExportMetalObjectsInfoEXT *>( this );
  24231. }
  24232. operator VkExportMetalObjectsInfoEXT &() VULKAN_HPP_NOEXCEPT
  24233. {
  24234. return *reinterpret_cast<VkExportMetalObjectsInfoEXT *>( this );
  24235. }
  24236. # if defined( VULKAN_HPP_USE_REFLECT )
  24237. # if 14 <= VULKAN_HPP_CPP_VERSION
  24238. auto
  24239. # else
  24240. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &>
  24241. # endif
  24242. reflect() const VULKAN_HPP_NOEXCEPT
  24243. {
  24244. return std::tie( sType, pNext );
  24245. }
  24246. # endif
  24247. # if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  24248. auto operator<=>( ExportMetalObjectsInfoEXT const & ) const = default;
  24249. # else
  24250. bool operator==( ExportMetalObjectsInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  24251. {
  24252. # if defined( VULKAN_HPP_USE_REFLECT )
  24253. return this->reflect() == rhs.reflect();
  24254. # else
  24255. return ( sType == rhs.sType ) && ( pNext == rhs.pNext );
  24256. # endif
  24257. }
  24258. bool operator!=( ExportMetalObjectsInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  24259. {
  24260. return !operator==( rhs );
  24261. }
  24262. # endif
  24263. public:
  24264. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eExportMetalObjectsInfoEXT;
  24265. const void * pNext = {};
  24266. };
  24267. template <>
  24268. struct CppType<StructureType, StructureType::eExportMetalObjectsInfoEXT>
  24269. {
  24270. using Type = ExportMetalObjectsInfoEXT;
  24271. };
  24272. #endif /*VK_USE_PLATFORM_METAL_EXT*/
  24273. #if defined( VK_USE_PLATFORM_METAL_EXT )
  24274. struct ExportMetalSharedEventInfoEXT
  24275. {
  24276. using NativeType = VkExportMetalSharedEventInfoEXT;
  24277. static const bool allowDuplicate = true;
  24278. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eExportMetalSharedEventInfoEXT;
  24279. # if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  24280. VULKAN_HPP_CONSTEXPR ExportMetalSharedEventInfoEXT( VULKAN_HPP_NAMESPACE::Semaphore semaphore_ = {},
  24281. VULKAN_HPP_NAMESPACE::Event event_ = {},
  24282. MTLSharedEvent_id mtlSharedEvent_ = {},
  24283. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  24284. : pNext( pNext_ )
  24285. , semaphore( semaphore_ )
  24286. , event( event_ )
  24287. , mtlSharedEvent( mtlSharedEvent_ )
  24288. {
  24289. }
  24290. VULKAN_HPP_CONSTEXPR ExportMetalSharedEventInfoEXT( ExportMetalSharedEventInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  24291. ExportMetalSharedEventInfoEXT( VkExportMetalSharedEventInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  24292. : ExportMetalSharedEventInfoEXT( *reinterpret_cast<ExportMetalSharedEventInfoEXT const *>( &rhs ) )
  24293. {
  24294. }
  24295. # endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  24296. ExportMetalSharedEventInfoEXT & operator=( ExportMetalSharedEventInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  24297. ExportMetalSharedEventInfoEXT & operator=( VkExportMetalSharedEventInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  24298. {
  24299. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ExportMetalSharedEventInfoEXT const *>( &rhs );
  24300. return *this;
  24301. }
  24302. # if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  24303. VULKAN_HPP_CONSTEXPR_14 ExportMetalSharedEventInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  24304. {
  24305. pNext = pNext_;
  24306. return *this;
  24307. }
  24308. VULKAN_HPP_CONSTEXPR_14 ExportMetalSharedEventInfoEXT & setSemaphore( VULKAN_HPP_NAMESPACE::Semaphore semaphore_ ) VULKAN_HPP_NOEXCEPT
  24309. {
  24310. semaphore = semaphore_;
  24311. return *this;
  24312. }
  24313. VULKAN_HPP_CONSTEXPR_14 ExportMetalSharedEventInfoEXT & setEvent( VULKAN_HPP_NAMESPACE::Event event_ ) VULKAN_HPP_NOEXCEPT
  24314. {
  24315. event = event_;
  24316. return *this;
  24317. }
  24318. VULKAN_HPP_CONSTEXPR_14 ExportMetalSharedEventInfoEXT & setMtlSharedEvent( MTLSharedEvent_id mtlSharedEvent_ ) VULKAN_HPP_NOEXCEPT
  24319. {
  24320. mtlSharedEvent = mtlSharedEvent_;
  24321. return *this;
  24322. }
  24323. # endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  24324. operator VkExportMetalSharedEventInfoEXT const &() const VULKAN_HPP_NOEXCEPT
  24325. {
  24326. return *reinterpret_cast<const VkExportMetalSharedEventInfoEXT *>( this );
  24327. }
  24328. operator VkExportMetalSharedEventInfoEXT &() VULKAN_HPP_NOEXCEPT
  24329. {
  24330. return *reinterpret_cast<VkExportMetalSharedEventInfoEXT *>( this );
  24331. }
  24332. # if defined( VULKAN_HPP_USE_REFLECT )
  24333. # if 14 <= VULKAN_HPP_CPP_VERSION
  24334. auto
  24335. # else
  24336. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  24337. const void * const &,
  24338. VULKAN_HPP_NAMESPACE::Semaphore const &,
  24339. VULKAN_HPP_NAMESPACE::Event const &,
  24340. MTLSharedEvent_id const &>
  24341. # endif
  24342. reflect() const VULKAN_HPP_NOEXCEPT
  24343. {
  24344. return std::tie( sType, pNext, semaphore, event, mtlSharedEvent );
  24345. }
  24346. # endif
  24347. # if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  24348. auto operator<=>( ExportMetalSharedEventInfoEXT const & ) const = default;
  24349. # else
  24350. bool operator==( ExportMetalSharedEventInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  24351. {
  24352. # if defined( VULKAN_HPP_USE_REFLECT )
  24353. return this->reflect() == rhs.reflect();
  24354. # else
  24355. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( semaphore == rhs.semaphore ) && ( event == rhs.event ) &&
  24356. ( mtlSharedEvent == rhs.mtlSharedEvent );
  24357. # endif
  24358. }
  24359. bool operator!=( ExportMetalSharedEventInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  24360. {
  24361. return !operator==( rhs );
  24362. }
  24363. # endif
  24364. public:
  24365. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eExportMetalSharedEventInfoEXT;
  24366. const void * pNext = {};
  24367. VULKAN_HPP_NAMESPACE::Semaphore semaphore = {};
  24368. VULKAN_HPP_NAMESPACE::Event event = {};
  24369. MTLSharedEvent_id mtlSharedEvent = {};
  24370. };
  24371. template <>
  24372. struct CppType<StructureType, StructureType::eExportMetalSharedEventInfoEXT>
  24373. {
  24374. using Type = ExportMetalSharedEventInfoEXT;
  24375. };
  24376. #endif /*VK_USE_PLATFORM_METAL_EXT*/
  24377. #if defined( VK_USE_PLATFORM_METAL_EXT )
  24378. struct ExportMetalTextureInfoEXT
  24379. {
  24380. using NativeType = VkExportMetalTextureInfoEXT;
  24381. static const bool allowDuplicate = true;
  24382. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eExportMetalTextureInfoEXT;
  24383. # if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  24384. VULKAN_HPP_CONSTEXPR ExportMetalTextureInfoEXT( VULKAN_HPP_NAMESPACE::Image image_ = {},
  24385. VULKAN_HPP_NAMESPACE::ImageView imageView_ = {},
  24386. VULKAN_HPP_NAMESPACE::BufferView bufferView_ = {},
  24387. VULKAN_HPP_NAMESPACE::ImageAspectFlagBits plane_ = VULKAN_HPP_NAMESPACE::ImageAspectFlagBits::eColor,
  24388. MTLTexture_id mtlTexture_ = {},
  24389. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  24390. : pNext( pNext_ )
  24391. , image( image_ )
  24392. , imageView( imageView_ )
  24393. , bufferView( bufferView_ )
  24394. , plane( plane_ )
  24395. , mtlTexture( mtlTexture_ )
  24396. {
  24397. }
  24398. VULKAN_HPP_CONSTEXPR ExportMetalTextureInfoEXT( ExportMetalTextureInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  24399. ExportMetalTextureInfoEXT( VkExportMetalTextureInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  24400. : ExportMetalTextureInfoEXT( *reinterpret_cast<ExportMetalTextureInfoEXT const *>( &rhs ) )
  24401. {
  24402. }
  24403. # endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  24404. ExportMetalTextureInfoEXT & operator=( ExportMetalTextureInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  24405. ExportMetalTextureInfoEXT & operator=( VkExportMetalTextureInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  24406. {
  24407. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ExportMetalTextureInfoEXT const *>( &rhs );
  24408. return *this;
  24409. }
  24410. # if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  24411. VULKAN_HPP_CONSTEXPR_14 ExportMetalTextureInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  24412. {
  24413. pNext = pNext_;
  24414. return *this;
  24415. }
  24416. VULKAN_HPP_CONSTEXPR_14 ExportMetalTextureInfoEXT & setImage( VULKAN_HPP_NAMESPACE::Image image_ ) VULKAN_HPP_NOEXCEPT
  24417. {
  24418. image = image_;
  24419. return *this;
  24420. }
  24421. VULKAN_HPP_CONSTEXPR_14 ExportMetalTextureInfoEXT & setImageView( VULKAN_HPP_NAMESPACE::ImageView imageView_ ) VULKAN_HPP_NOEXCEPT
  24422. {
  24423. imageView = imageView_;
  24424. return *this;
  24425. }
  24426. VULKAN_HPP_CONSTEXPR_14 ExportMetalTextureInfoEXT & setBufferView( VULKAN_HPP_NAMESPACE::BufferView bufferView_ ) VULKAN_HPP_NOEXCEPT
  24427. {
  24428. bufferView = bufferView_;
  24429. return *this;
  24430. }
  24431. VULKAN_HPP_CONSTEXPR_14 ExportMetalTextureInfoEXT & setPlane( VULKAN_HPP_NAMESPACE::ImageAspectFlagBits plane_ ) VULKAN_HPP_NOEXCEPT
  24432. {
  24433. plane = plane_;
  24434. return *this;
  24435. }
  24436. VULKAN_HPP_CONSTEXPR_14 ExportMetalTextureInfoEXT & setMtlTexture( MTLTexture_id mtlTexture_ ) VULKAN_HPP_NOEXCEPT
  24437. {
  24438. mtlTexture = mtlTexture_;
  24439. return *this;
  24440. }
  24441. # endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  24442. operator VkExportMetalTextureInfoEXT const &() const VULKAN_HPP_NOEXCEPT
  24443. {
  24444. return *reinterpret_cast<const VkExportMetalTextureInfoEXT *>( this );
  24445. }
  24446. operator VkExportMetalTextureInfoEXT &() VULKAN_HPP_NOEXCEPT
  24447. {
  24448. return *reinterpret_cast<VkExportMetalTextureInfoEXT *>( this );
  24449. }
  24450. # if defined( VULKAN_HPP_USE_REFLECT )
  24451. # if 14 <= VULKAN_HPP_CPP_VERSION
  24452. auto
  24453. # else
  24454. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  24455. const void * const &,
  24456. VULKAN_HPP_NAMESPACE::Image const &,
  24457. VULKAN_HPP_NAMESPACE::ImageView const &,
  24458. VULKAN_HPP_NAMESPACE::BufferView const &,
  24459. VULKAN_HPP_NAMESPACE::ImageAspectFlagBits const &,
  24460. MTLTexture_id const &>
  24461. # endif
  24462. reflect() const VULKAN_HPP_NOEXCEPT
  24463. {
  24464. return std::tie( sType, pNext, image, imageView, bufferView, plane, mtlTexture );
  24465. }
  24466. # endif
  24467. # if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  24468. auto operator<=>( ExportMetalTextureInfoEXT const & ) const = default;
  24469. # else
  24470. bool operator==( ExportMetalTextureInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  24471. {
  24472. # if defined( VULKAN_HPP_USE_REFLECT )
  24473. return this->reflect() == rhs.reflect();
  24474. # else
  24475. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( image == rhs.image ) && ( imageView == rhs.imageView ) && ( bufferView == rhs.bufferView ) &&
  24476. ( plane == rhs.plane ) && ( mtlTexture == rhs.mtlTexture );
  24477. # endif
  24478. }
  24479. bool operator!=( ExportMetalTextureInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  24480. {
  24481. return !operator==( rhs );
  24482. }
  24483. # endif
  24484. public:
  24485. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eExportMetalTextureInfoEXT;
  24486. const void * pNext = {};
  24487. VULKAN_HPP_NAMESPACE::Image image = {};
  24488. VULKAN_HPP_NAMESPACE::ImageView imageView = {};
  24489. VULKAN_HPP_NAMESPACE::BufferView bufferView = {};
  24490. VULKAN_HPP_NAMESPACE::ImageAspectFlagBits plane = VULKAN_HPP_NAMESPACE::ImageAspectFlagBits::eColor;
  24491. MTLTexture_id mtlTexture = {};
  24492. };
  24493. template <>
  24494. struct CppType<StructureType, StructureType::eExportMetalTextureInfoEXT>
  24495. {
  24496. using Type = ExportMetalTextureInfoEXT;
  24497. };
  24498. #endif /*VK_USE_PLATFORM_METAL_EXT*/
  24499. struct ExportSemaphoreCreateInfo
  24500. {
  24501. using NativeType = VkExportSemaphoreCreateInfo;
  24502. static const bool allowDuplicate = false;
  24503. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eExportSemaphoreCreateInfo;
  24504. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  24505. VULKAN_HPP_CONSTEXPR ExportSemaphoreCreateInfo( VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlags handleTypes_ = {},
  24506. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  24507. : pNext( pNext_ )
  24508. , handleTypes( handleTypes_ )
  24509. {
  24510. }
  24511. VULKAN_HPP_CONSTEXPR ExportSemaphoreCreateInfo( ExportSemaphoreCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  24512. ExportSemaphoreCreateInfo( VkExportSemaphoreCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
  24513. : ExportSemaphoreCreateInfo( *reinterpret_cast<ExportSemaphoreCreateInfo const *>( &rhs ) )
  24514. {
  24515. }
  24516. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  24517. ExportSemaphoreCreateInfo & operator=( ExportSemaphoreCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  24518. ExportSemaphoreCreateInfo & operator=( VkExportSemaphoreCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
  24519. {
  24520. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ExportSemaphoreCreateInfo const *>( &rhs );
  24521. return *this;
  24522. }
  24523. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  24524. VULKAN_HPP_CONSTEXPR_14 ExportSemaphoreCreateInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  24525. {
  24526. pNext = pNext_;
  24527. return *this;
  24528. }
  24529. VULKAN_HPP_CONSTEXPR_14 ExportSemaphoreCreateInfo &
  24530. setHandleTypes( VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlags handleTypes_ ) VULKAN_HPP_NOEXCEPT
  24531. {
  24532. handleTypes = handleTypes_;
  24533. return *this;
  24534. }
  24535. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  24536. operator VkExportSemaphoreCreateInfo const &() const VULKAN_HPP_NOEXCEPT
  24537. {
  24538. return *reinterpret_cast<const VkExportSemaphoreCreateInfo *>( this );
  24539. }
  24540. operator VkExportSemaphoreCreateInfo &() VULKAN_HPP_NOEXCEPT
  24541. {
  24542. return *reinterpret_cast<VkExportSemaphoreCreateInfo *>( this );
  24543. }
  24544. #if defined( VULKAN_HPP_USE_REFLECT )
  24545. # if 14 <= VULKAN_HPP_CPP_VERSION
  24546. auto
  24547. # else
  24548. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlags const &>
  24549. # endif
  24550. reflect() const VULKAN_HPP_NOEXCEPT
  24551. {
  24552. return std::tie( sType, pNext, handleTypes );
  24553. }
  24554. #endif
  24555. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  24556. auto operator<=>( ExportSemaphoreCreateInfo const & ) const = default;
  24557. #else
  24558. bool operator==( ExportSemaphoreCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  24559. {
  24560. # if defined( VULKAN_HPP_USE_REFLECT )
  24561. return this->reflect() == rhs.reflect();
  24562. # else
  24563. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( handleTypes == rhs.handleTypes );
  24564. # endif
  24565. }
  24566. bool operator!=( ExportSemaphoreCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  24567. {
  24568. return !operator==( rhs );
  24569. }
  24570. #endif
  24571. public:
  24572. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eExportSemaphoreCreateInfo;
  24573. const void * pNext = {};
  24574. VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlags handleTypes = {};
  24575. };
  24576. template <>
  24577. struct CppType<StructureType, StructureType::eExportSemaphoreCreateInfo>
  24578. {
  24579. using Type = ExportSemaphoreCreateInfo;
  24580. };
  24581. using ExportSemaphoreCreateInfoKHR = ExportSemaphoreCreateInfo;
  24582. #if defined( VK_USE_PLATFORM_WIN32_KHR )
  24583. struct ExportSemaphoreWin32HandleInfoKHR
  24584. {
  24585. using NativeType = VkExportSemaphoreWin32HandleInfoKHR;
  24586. static const bool allowDuplicate = false;
  24587. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eExportSemaphoreWin32HandleInfoKHR;
  24588. # if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  24589. VULKAN_HPP_CONSTEXPR ExportSemaphoreWin32HandleInfoKHR( const SECURITY_ATTRIBUTES * pAttributes_ = {},
  24590. DWORD dwAccess_ = {},
  24591. LPCWSTR name_ = {},
  24592. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  24593. : pNext( pNext_ )
  24594. , pAttributes( pAttributes_ )
  24595. , dwAccess( dwAccess_ )
  24596. , name( name_ )
  24597. {
  24598. }
  24599. VULKAN_HPP_CONSTEXPR ExportSemaphoreWin32HandleInfoKHR( ExportSemaphoreWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  24600. ExportSemaphoreWin32HandleInfoKHR( VkExportSemaphoreWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  24601. : ExportSemaphoreWin32HandleInfoKHR( *reinterpret_cast<ExportSemaphoreWin32HandleInfoKHR const *>( &rhs ) )
  24602. {
  24603. }
  24604. # endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  24605. ExportSemaphoreWin32HandleInfoKHR & operator=( ExportSemaphoreWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  24606. ExportSemaphoreWin32HandleInfoKHR & operator=( VkExportSemaphoreWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  24607. {
  24608. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ExportSemaphoreWin32HandleInfoKHR const *>( &rhs );
  24609. return *this;
  24610. }
  24611. # if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  24612. VULKAN_HPP_CONSTEXPR_14 ExportSemaphoreWin32HandleInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  24613. {
  24614. pNext = pNext_;
  24615. return *this;
  24616. }
  24617. VULKAN_HPP_CONSTEXPR_14 ExportSemaphoreWin32HandleInfoKHR & setPAttributes( const SECURITY_ATTRIBUTES * pAttributes_ ) VULKAN_HPP_NOEXCEPT
  24618. {
  24619. pAttributes = pAttributes_;
  24620. return *this;
  24621. }
  24622. VULKAN_HPP_CONSTEXPR_14 ExportSemaphoreWin32HandleInfoKHR & setDwAccess( DWORD dwAccess_ ) VULKAN_HPP_NOEXCEPT
  24623. {
  24624. dwAccess = dwAccess_;
  24625. return *this;
  24626. }
  24627. VULKAN_HPP_CONSTEXPR_14 ExportSemaphoreWin32HandleInfoKHR & setName( LPCWSTR name_ ) VULKAN_HPP_NOEXCEPT
  24628. {
  24629. name = name_;
  24630. return *this;
  24631. }
  24632. # endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  24633. operator VkExportSemaphoreWin32HandleInfoKHR const &() const VULKAN_HPP_NOEXCEPT
  24634. {
  24635. return *reinterpret_cast<const VkExportSemaphoreWin32HandleInfoKHR *>( this );
  24636. }
  24637. operator VkExportSemaphoreWin32HandleInfoKHR &() VULKAN_HPP_NOEXCEPT
  24638. {
  24639. return *reinterpret_cast<VkExportSemaphoreWin32HandleInfoKHR *>( this );
  24640. }
  24641. # if defined( VULKAN_HPP_USE_REFLECT )
  24642. # if 14 <= VULKAN_HPP_CPP_VERSION
  24643. auto
  24644. # else
  24645. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, const SECURITY_ATTRIBUTES * const &, DWORD const &, LPCWSTR const &>
  24646. # endif
  24647. reflect() const VULKAN_HPP_NOEXCEPT
  24648. {
  24649. return std::tie( sType, pNext, pAttributes, dwAccess, name );
  24650. }
  24651. # endif
  24652. # if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  24653. auto operator<=>( ExportSemaphoreWin32HandleInfoKHR const & ) const = default;
  24654. # else
  24655. bool operator==( ExportSemaphoreWin32HandleInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  24656. {
  24657. # if defined( VULKAN_HPP_USE_REFLECT )
  24658. return this->reflect() == rhs.reflect();
  24659. # else
  24660. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( pAttributes == rhs.pAttributes ) && ( dwAccess == rhs.dwAccess ) && ( name == rhs.name );
  24661. # endif
  24662. }
  24663. bool operator!=( ExportSemaphoreWin32HandleInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  24664. {
  24665. return !operator==( rhs );
  24666. }
  24667. # endif
  24668. public:
  24669. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eExportSemaphoreWin32HandleInfoKHR;
  24670. const void * pNext = {};
  24671. const SECURITY_ATTRIBUTES * pAttributes = {};
  24672. DWORD dwAccess = {};
  24673. LPCWSTR name = {};
  24674. };
  24675. template <>
  24676. struct CppType<StructureType, StructureType::eExportSemaphoreWin32HandleInfoKHR>
  24677. {
  24678. using Type = ExportSemaphoreWin32HandleInfoKHR;
  24679. };
  24680. #endif /*VK_USE_PLATFORM_WIN32_KHR*/
  24681. struct ExtensionProperties
  24682. {
  24683. using NativeType = VkExtensionProperties;
  24684. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  24685. VULKAN_HPP_CONSTEXPR_14 ExtensionProperties( std::array<char, VK_MAX_EXTENSION_NAME_SIZE> const & extensionName_ = {},
  24686. uint32_t specVersion_ = {} ) VULKAN_HPP_NOEXCEPT
  24687. : extensionName( extensionName_ )
  24688. , specVersion( specVersion_ )
  24689. {
  24690. }
  24691. VULKAN_HPP_CONSTEXPR_14 ExtensionProperties( ExtensionProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  24692. ExtensionProperties( VkExtensionProperties const & rhs ) VULKAN_HPP_NOEXCEPT : ExtensionProperties( *reinterpret_cast<ExtensionProperties const *>( &rhs ) )
  24693. {
  24694. }
  24695. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  24696. ExtensionProperties & operator=( ExtensionProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  24697. ExtensionProperties & operator=( VkExtensionProperties const & rhs ) VULKAN_HPP_NOEXCEPT
  24698. {
  24699. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ExtensionProperties const *>( &rhs );
  24700. return *this;
  24701. }
  24702. operator VkExtensionProperties const &() const VULKAN_HPP_NOEXCEPT
  24703. {
  24704. return *reinterpret_cast<const VkExtensionProperties *>( this );
  24705. }
  24706. operator VkExtensionProperties &() VULKAN_HPP_NOEXCEPT
  24707. {
  24708. return *reinterpret_cast<VkExtensionProperties *>( this );
  24709. }
  24710. #if defined( VULKAN_HPP_USE_REFLECT )
  24711. # if 14 <= VULKAN_HPP_CPP_VERSION
  24712. auto
  24713. # else
  24714. std::tuple<VULKAN_HPP_NAMESPACE::ArrayWrapper1D<char, VK_MAX_EXTENSION_NAME_SIZE> const &, uint32_t const &>
  24715. # endif
  24716. reflect() const VULKAN_HPP_NOEXCEPT
  24717. {
  24718. return std::tie( extensionName, specVersion );
  24719. }
  24720. #endif
  24721. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  24722. auto operator<=>( ExtensionProperties const & ) const = default;
  24723. #else
  24724. bool operator==( ExtensionProperties const & rhs ) const VULKAN_HPP_NOEXCEPT
  24725. {
  24726. # if defined( VULKAN_HPP_USE_REFLECT )
  24727. return this->reflect() == rhs.reflect();
  24728. # else
  24729. return ( extensionName == rhs.extensionName ) && ( specVersion == rhs.specVersion );
  24730. # endif
  24731. }
  24732. bool operator!=( ExtensionProperties const & rhs ) const VULKAN_HPP_NOEXCEPT
  24733. {
  24734. return !operator==( rhs );
  24735. }
  24736. #endif
  24737. public:
  24738. VULKAN_HPP_NAMESPACE::ArrayWrapper1D<char, VK_MAX_EXTENSION_NAME_SIZE> extensionName = {};
  24739. uint32_t specVersion = {};
  24740. };
  24741. struct ExternalMemoryProperties
  24742. {
  24743. using NativeType = VkExternalMemoryProperties;
  24744. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  24745. VULKAN_HPP_CONSTEXPR ExternalMemoryProperties( VULKAN_HPP_NAMESPACE::ExternalMemoryFeatureFlags externalMemoryFeatures_ = {},
  24746. VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlags exportFromImportedHandleTypes_ = {},
  24747. VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlags compatibleHandleTypes_ = {} ) VULKAN_HPP_NOEXCEPT
  24748. : externalMemoryFeatures( externalMemoryFeatures_ )
  24749. , exportFromImportedHandleTypes( exportFromImportedHandleTypes_ )
  24750. , compatibleHandleTypes( compatibleHandleTypes_ )
  24751. {
  24752. }
  24753. VULKAN_HPP_CONSTEXPR ExternalMemoryProperties( ExternalMemoryProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  24754. ExternalMemoryProperties( VkExternalMemoryProperties const & rhs ) VULKAN_HPP_NOEXCEPT
  24755. : ExternalMemoryProperties( *reinterpret_cast<ExternalMemoryProperties const *>( &rhs ) )
  24756. {
  24757. }
  24758. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  24759. ExternalMemoryProperties & operator=( ExternalMemoryProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  24760. ExternalMemoryProperties & operator=( VkExternalMemoryProperties const & rhs ) VULKAN_HPP_NOEXCEPT
  24761. {
  24762. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ExternalMemoryProperties const *>( &rhs );
  24763. return *this;
  24764. }
  24765. operator VkExternalMemoryProperties const &() const VULKAN_HPP_NOEXCEPT
  24766. {
  24767. return *reinterpret_cast<const VkExternalMemoryProperties *>( this );
  24768. }
  24769. operator VkExternalMemoryProperties &() VULKAN_HPP_NOEXCEPT
  24770. {
  24771. return *reinterpret_cast<VkExternalMemoryProperties *>( this );
  24772. }
  24773. #if defined( VULKAN_HPP_USE_REFLECT )
  24774. # if 14 <= VULKAN_HPP_CPP_VERSION
  24775. auto
  24776. # else
  24777. std::tuple<VULKAN_HPP_NAMESPACE::ExternalMemoryFeatureFlags const &,
  24778. VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlags const &,
  24779. VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlags const &>
  24780. # endif
  24781. reflect() const VULKAN_HPP_NOEXCEPT
  24782. {
  24783. return std::tie( externalMemoryFeatures, exportFromImportedHandleTypes, compatibleHandleTypes );
  24784. }
  24785. #endif
  24786. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  24787. auto operator<=>( ExternalMemoryProperties const & ) const = default;
  24788. #else
  24789. bool operator==( ExternalMemoryProperties const & rhs ) const VULKAN_HPP_NOEXCEPT
  24790. {
  24791. # if defined( VULKAN_HPP_USE_REFLECT )
  24792. return this->reflect() == rhs.reflect();
  24793. # else
  24794. return ( externalMemoryFeatures == rhs.externalMemoryFeatures ) && ( exportFromImportedHandleTypes == rhs.exportFromImportedHandleTypes ) &&
  24795. ( compatibleHandleTypes == rhs.compatibleHandleTypes );
  24796. # endif
  24797. }
  24798. bool operator!=( ExternalMemoryProperties const & rhs ) const VULKAN_HPP_NOEXCEPT
  24799. {
  24800. return !operator==( rhs );
  24801. }
  24802. #endif
  24803. public:
  24804. VULKAN_HPP_NAMESPACE::ExternalMemoryFeatureFlags externalMemoryFeatures = {};
  24805. VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlags exportFromImportedHandleTypes = {};
  24806. VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlags compatibleHandleTypes = {};
  24807. };
  24808. using ExternalMemoryPropertiesKHR = ExternalMemoryProperties;
  24809. struct ExternalBufferProperties
  24810. {
  24811. using NativeType = VkExternalBufferProperties;
  24812. static const bool allowDuplicate = false;
  24813. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eExternalBufferProperties;
  24814. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  24815. VULKAN_HPP_CONSTEXPR ExternalBufferProperties( VULKAN_HPP_NAMESPACE::ExternalMemoryProperties externalMemoryProperties_ = {},
  24816. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  24817. : pNext( pNext_ )
  24818. , externalMemoryProperties( externalMemoryProperties_ )
  24819. {
  24820. }
  24821. VULKAN_HPP_CONSTEXPR ExternalBufferProperties( ExternalBufferProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  24822. ExternalBufferProperties( VkExternalBufferProperties const & rhs ) VULKAN_HPP_NOEXCEPT
  24823. : ExternalBufferProperties( *reinterpret_cast<ExternalBufferProperties const *>( &rhs ) )
  24824. {
  24825. }
  24826. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  24827. ExternalBufferProperties & operator=( ExternalBufferProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  24828. ExternalBufferProperties & operator=( VkExternalBufferProperties const & rhs ) VULKAN_HPP_NOEXCEPT
  24829. {
  24830. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ExternalBufferProperties const *>( &rhs );
  24831. return *this;
  24832. }
  24833. operator VkExternalBufferProperties const &() const VULKAN_HPP_NOEXCEPT
  24834. {
  24835. return *reinterpret_cast<const VkExternalBufferProperties *>( this );
  24836. }
  24837. operator VkExternalBufferProperties &() VULKAN_HPP_NOEXCEPT
  24838. {
  24839. return *reinterpret_cast<VkExternalBufferProperties *>( this );
  24840. }
  24841. #if defined( VULKAN_HPP_USE_REFLECT )
  24842. # if 14 <= VULKAN_HPP_CPP_VERSION
  24843. auto
  24844. # else
  24845. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::ExternalMemoryProperties const &>
  24846. # endif
  24847. reflect() const VULKAN_HPP_NOEXCEPT
  24848. {
  24849. return std::tie( sType, pNext, externalMemoryProperties );
  24850. }
  24851. #endif
  24852. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  24853. auto operator<=>( ExternalBufferProperties const & ) const = default;
  24854. #else
  24855. bool operator==( ExternalBufferProperties const & rhs ) const VULKAN_HPP_NOEXCEPT
  24856. {
  24857. # if defined( VULKAN_HPP_USE_REFLECT )
  24858. return this->reflect() == rhs.reflect();
  24859. # else
  24860. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( externalMemoryProperties == rhs.externalMemoryProperties );
  24861. # endif
  24862. }
  24863. bool operator!=( ExternalBufferProperties const & rhs ) const VULKAN_HPP_NOEXCEPT
  24864. {
  24865. return !operator==( rhs );
  24866. }
  24867. #endif
  24868. public:
  24869. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eExternalBufferProperties;
  24870. void * pNext = {};
  24871. VULKAN_HPP_NAMESPACE::ExternalMemoryProperties externalMemoryProperties = {};
  24872. };
  24873. template <>
  24874. struct CppType<StructureType, StructureType::eExternalBufferProperties>
  24875. {
  24876. using Type = ExternalBufferProperties;
  24877. };
  24878. using ExternalBufferPropertiesKHR = ExternalBufferProperties;
  24879. struct ExternalFenceProperties
  24880. {
  24881. using NativeType = VkExternalFenceProperties;
  24882. static const bool allowDuplicate = false;
  24883. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eExternalFenceProperties;
  24884. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  24885. VULKAN_HPP_CONSTEXPR ExternalFenceProperties( VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlags exportFromImportedHandleTypes_ = {},
  24886. VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlags compatibleHandleTypes_ = {},
  24887. VULKAN_HPP_NAMESPACE::ExternalFenceFeatureFlags externalFenceFeatures_ = {},
  24888. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  24889. : pNext( pNext_ )
  24890. , exportFromImportedHandleTypes( exportFromImportedHandleTypes_ )
  24891. , compatibleHandleTypes( compatibleHandleTypes_ )
  24892. , externalFenceFeatures( externalFenceFeatures_ )
  24893. {
  24894. }
  24895. VULKAN_HPP_CONSTEXPR ExternalFenceProperties( ExternalFenceProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  24896. ExternalFenceProperties( VkExternalFenceProperties const & rhs ) VULKAN_HPP_NOEXCEPT
  24897. : ExternalFenceProperties( *reinterpret_cast<ExternalFenceProperties const *>( &rhs ) )
  24898. {
  24899. }
  24900. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  24901. ExternalFenceProperties & operator=( ExternalFenceProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  24902. ExternalFenceProperties & operator=( VkExternalFenceProperties const & rhs ) VULKAN_HPP_NOEXCEPT
  24903. {
  24904. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ExternalFenceProperties const *>( &rhs );
  24905. return *this;
  24906. }
  24907. operator VkExternalFenceProperties const &() const VULKAN_HPP_NOEXCEPT
  24908. {
  24909. return *reinterpret_cast<const VkExternalFenceProperties *>( this );
  24910. }
  24911. operator VkExternalFenceProperties &() VULKAN_HPP_NOEXCEPT
  24912. {
  24913. return *reinterpret_cast<VkExternalFenceProperties *>( this );
  24914. }
  24915. #if defined( VULKAN_HPP_USE_REFLECT )
  24916. # if 14 <= VULKAN_HPP_CPP_VERSION
  24917. auto
  24918. # else
  24919. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  24920. void * const &,
  24921. VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlags const &,
  24922. VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlags const &,
  24923. VULKAN_HPP_NAMESPACE::ExternalFenceFeatureFlags const &>
  24924. # endif
  24925. reflect() const VULKAN_HPP_NOEXCEPT
  24926. {
  24927. return std::tie( sType, pNext, exportFromImportedHandleTypes, compatibleHandleTypes, externalFenceFeatures );
  24928. }
  24929. #endif
  24930. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  24931. auto operator<=>( ExternalFenceProperties const & ) const = default;
  24932. #else
  24933. bool operator==( ExternalFenceProperties const & rhs ) const VULKAN_HPP_NOEXCEPT
  24934. {
  24935. # if defined( VULKAN_HPP_USE_REFLECT )
  24936. return this->reflect() == rhs.reflect();
  24937. # else
  24938. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( exportFromImportedHandleTypes == rhs.exportFromImportedHandleTypes ) &&
  24939. ( compatibleHandleTypes == rhs.compatibleHandleTypes ) && ( externalFenceFeatures == rhs.externalFenceFeatures );
  24940. # endif
  24941. }
  24942. bool operator!=( ExternalFenceProperties const & rhs ) const VULKAN_HPP_NOEXCEPT
  24943. {
  24944. return !operator==( rhs );
  24945. }
  24946. #endif
  24947. public:
  24948. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eExternalFenceProperties;
  24949. void * pNext = {};
  24950. VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlags exportFromImportedHandleTypes = {};
  24951. VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlags compatibleHandleTypes = {};
  24952. VULKAN_HPP_NAMESPACE::ExternalFenceFeatureFlags externalFenceFeatures = {};
  24953. };
  24954. template <>
  24955. struct CppType<StructureType, StructureType::eExternalFenceProperties>
  24956. {
  24957. using Type = ExternalFenceProperties;
  24958. };
  24959. using ExternalFencePropertiesKHR = ExternalFenceProperties;
  24960. #if defined( VK_USE_PLATFORM_ANDROID_KHR )
  24961. struct ExternalFormatANDROID
  24962. {
  24963. using NativeType = VkExternalFormatANDROID;
  24964. static const bool allowDuplicate = false;
  24965. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eExternalFormatANDROID;
  24966. # if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  24967. VULKAN_HPP_CONSTEXPR ExternalFormatANDROID( uint64_t externalFormat_ = {}, void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  24968. : pNext( pNext_ )
  24969. , externalFormat( externalFormat_ )
  24970. {
  24971. }
  24972. VULKAN_HPP_CONSTEXPR ExternalFormatANDROID( ExternalFormatANDROID const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  24973. ExternalFormatANDROID( VkExternalFormatANDROID const & rhs ) VULKAN_HPP_NOEXCEPT
  24974. : ExternalFormatANDROID( *reinterpret_cast<ExternalFormatANDROID const *>( &rhs ) )
  24975. {
  24976. }
  24977. # endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  24978. ExternalFormatANDROID & operator=( ExternalFormatANDROID const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  24979. ExternalFormatANDROID & operator=( VkExternalFormatANDROID const & rhs ) VULKAN_HPP_NOEXCEPT
  24980. {
  24981. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ExternalFormatANDROID const *>( &rhs );
  24982. return *this;
  24983. }
  24984. # if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  24985. VULKAN_HPP_CONSTEXPR_14 ExternalFormatANDROID & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
  24986. {
  24987. pNext = pNext_;
  24988. return *this;
  24989. }
  24990. VULKAN_HPP_CONSTEXPR_14 ExternalFormatANDROID & setExternalFormat( uint64_t externalFormat_ ) VULKAN_HPP_NOEXCEPT
  24991. {
  24992. externalFormat = externalFormat_;
  24993. return *this;
  24994. }
  24995. # endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  24996. operator VkExternalFormatANDROID const &() const VULKAN_HPP_NOEXCEPT
  24997. {
  24998. return *reinterpret_cast<const VkExternalFormatANDROID *>( this );
  24999. }
  25000. operator VkExternalFormatANDROID &() VULKAN_HPP_NOEXCEPT
  25001. {
  25002. return *reinterpret_cast<VkExternalFormatANDROID *>( this );
  25003. }
  25004. # if defined( VULKAN_HPP_USE_REFLECT )
  25005. # if 14 <= VULKAN_HPP_CPP_VERSION
  25006. auto
  25007. # else
  25008. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, uint64_t const &>
  25009. # endif
  25010. reflect() const VULKAN_HPP_NOEXCEPT
  25011. {
  25012. return std::tie( sType, pNext, externalFormat );
  25013. }
  25014. # endif
  25015. # if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  25016. auto operator<=>( ExternalFormatANDROID const & ) const = default;
  25017. # else
  25018. bool operator==( ExternalFormatANDROID const & rhs ) const VULKAN_HPP_NOEXCEPT
  25019. {
  25020. # if defined( VULKAN_HPP_USE_REFLECT )
  25021. return this->reflect() == rhs.reflect();
  25022. # else
  25023. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( externalFormat == rhs.externalFormat );
  25024. # endif
  25025. }
  25026. bool operator!=( ExternalFormatANDROID const & rhs ) const VULKAN_HPP_NOEXCEPT
  25027. {
  25028. return !operator==( rhs );
  25029. }
  25030. # endif
  25031. public:
  25032. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eExternalFormatANDROID;
  25033. void * pNext = {};
  25034. uint64_t externalFormat = {};
  25035. };
  25036. template <>
  25037. struct CppType<StructureType, StructureType::eExternalFormatANDROID>
  25038. {
  25039. using Type = ExternalFormatANDROID;
  25040. };
  25041. #endif /*VK_USE_PLATFORM_ANDROID_KHR*/
  25042. struct ExternalImageFormatProperties
  25043. {
  25044. using NativeType = VkExternalImageFormatProperties;
  25045. static const bool allowDuplicate = false;
  25046. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eExternalImageFormatProperties;
  25047. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  25048. VULKAN_HPP_CONSTEXPR ExternalImageFormatProperties( VULKAN_HPP_NAMESPACE::ExternalMemoryProperties externalMemoryProperties_ = {},
  25049. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  25050. : pNext( pNext_ )
  25051. , externalMemoryProperties( externalMemoryProperties_ )
  25052. {
  25053. }
  25054. VULKAN_HPP_CONSTEXPR ExternalImageFormatProperties( ExternalImageFormatProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  25055. ExternalImageFormatProperties( VkExternalImageFormatProperties const & rhs ) VULKAN_HPP_NOEXCEPT
  25056. : ExternalImageFormatProperties( *reinterpret_cast<ExternalImageFormatProperties const *>( &rhs ) )
  25057. {
  25058. }
  25059. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  25060. ExternalImageFormatProperties & operator=( ExternalImageFormatProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  25061. ExternalImageFormatProperties & operator=( VkExternalImageFormatProperties const & rhs ) VULKAN_HPP_NOEXCEPT
  25062. {
  25063. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ExternalImageFormatProperties const *>( &rhs );
  25064. return *this;
  25065. }
  25066. operator VkExternalImageFormatProperties const &() const VULKAN_HPP_NOEXCEPT
  25067. {
  25068. return *reinterpret_cast<const VkExternalImageFormatProperties *>( this );
  25069. }
  25070. operator VkExternalImageFormatProperties &() VULKAN_HPP_NOEXCEPT
  25071. {
  25072. return *reinterpret_cast<VkExternalImageFormatProperties *>( this );
  25073. }
  25074. #if defined( VULKAN_HPP_USE_REFLECT )
  25075. # if 14 <= VULKAN_HPP_CPP_VERSION
  25076. auto
  25077. # else
  25078. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::ExternalMemoryProperties const &>
  25079. # endif
  25080. reflect() const VULKAN_HPP_NOEXCEPT
  25081. {
  25082. return std::tie( sType, pNext, externalMemoryProperties );
  25083. }
  25084. #endif
  25085. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  25086. auto operator<=>( ExternalImageFormatProperties const & ) const = default;
  25087. #else
  25088. bool operator==( ExternalImageFormatProperties const & rhs ) const VULKAN_HPP_NOEXCEPT
  25089. {
  25090. # if defined( VULKAN_HPP_USE_REFLECT )
  25091. return this->reflect() == rhs.reflect();
  25092. # else
  25093. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( externalMemoryProperties == rhs.externalMemoryProperties );
  25094. # endif
  25095. }
  25096. bool operator!=( ExternalImageFormatProperties const & rhs ) const VULKAN_HPP_NOEXCEPT
  25097. {
  25098. return !operator==( rhs );
  25099. }
  25100. #endif
  25101. public:
  25102. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eExternalImageFormatProperties;
  25103. void * pNext = {};
  25104. VULKAN_HPP_NAMESPACE::ExternalMemoryProperties externalMemoryProperties = {};
  25105. };
  25106. template <>
  25107. struct CppType<StructureType, StructureType::eExternalImageFormatProperties>
  25108. {
  25109. using Type = ExternalImageFormatProperties;
  25110. };
  25111. using ExternalImageFormatPropertiesKHR = ExternalImageFormatProperties;
  25112. struct ImageFormatProperties
  25113. {
  25114. using NativeType = VkImageFormatProperties;
  25115. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  25116. VULKAN_HPP_CONSTEXPR ImageFormatProperties( VULKAN_HPP_NAMESPACE::Extent3D maxExtent_ = {},
  25117. uint32_t maxMipLevels_ = {},
  25118. uint32_t maxArrayLayers_ = {},
  25119. VULKAN_HPP_NAMESPACE::SampleCountFlags sampleCounts_ = {},
  25120. VULKAN_HPP_NAMESPACE::DeviceSize maxResourceSize_ = {} ) VULKAN_HPP_NOEXCEPT
  25121. : maxExtent( maxExtent_ )
  25122. , maxMipLevels( maxMipLevels_ )
  25123. , maxArrayLayers( maxArrayLayers_ )
  25124. , sampleCounts( sampleCounts_ )
  25125. , maxResourceSize( maxResourceSize_ )
  25126. {
  25127. }
  25128. VULKAN_HPP_CONSTEXPR ImageFormatProperties( ImageFormatProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  25129. ImageFormatProperties( VkImageFormatProperties const & rhs ) VULKAN_HPP_NOEXCEPT
  25130. : ImageFormatProperties( *reinterpret_cast<ImageFormatProperties const *>( &rhs ) )
  25131. {
  25132. }
  25133. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  25134. ImageFormatProperties & operator=( ImageFormatProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  25135. ImageFormatProperties & operator=( VkImageFormatProperties const & rhs ) VULKAN_HPP_NOEXCEPT
  25136. {
  25137. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ImageFormatProperties const *>( &rhs );
  25138. return *this;
  25139. }
  25140. operator VkImageFormatProperties const &() const VULKAN_HPP_NOEXCEPT
  25141. {
  25142. return *reinterpret_cast<const VkImageFormatProperties *>( this );
  25143. }
  25144. operator VkImageFormatProperties &() VULKAN_HPP_NOEXCEPT
  25145. {
  25146. return *reinterpret_cast<VkImageFormatProperties *>( this );
  25147. }
  25148. #if defined( VULKAN_HPP_USE_REFLECT )
  25149. # if 14 <= VULKAN_HPP_CPP_VERSION
  25150. auto
  25151. # else
  25152. std::tuple<VULKAN_HPP_NAMESPACE::Extent3D const &,
  25153. uint32_t const &,
  25154. uint32_t const &,
  25155. VULKAN_HPP_NAMESPACE::SampleCountFlags const &,
  25156. VULKAN_HPP_NAMESPACE::DeviceSize const &>
  25157. # endif
  25158. reflect() const VULKAN_HPP_NOEXCEPT
  25159. {
  25160. return std::tie( maxExtent, maxMipLevels, maxArrayLayers, sampleCounts, maxResourceSize );
  25161. }
  25162. #endif
  25163. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  25164. auto operator<=>( ImageFormatProperties const & ) const = default;
  25165. #else
  25166. bool operator==( ImageFormatProperties const & rhs ) const VULKAN_HPP_NOEXCEPT
  25167. {
  25168. # if defined( VULKAN_HPP_USE_REFLECT )
  25169. return this->reflect() == rhs.reflect();
  25170. # else
  25171. return ( maxExtent == rhs.maxExtent ) && ( maxMipLevels == rhs.maxMipLevels ) && ( maxArrayLayers == rhs.maxArrayLayers ) &&
  25172. ( sampleCounts == rhs.sampleCounts ) && ( maxResourceSize == rhs.maxResourceSize );
  25173. # endif
  25174. }
  25175. bool operator!=( ImageFormatProperties const & rhs ) const VULKAN_HPP_NOEXCEPT
  25176. {
  25177. return !operator==( rhs );
  25178. }
  25179. #endif
  25180. public:
  25181. VULKAN_HPP_NAMESPACE::Extent3D maxExtent = {};
  25182. uint32_t maxMipLevels = {};
  25183. uint32_t maxArrayLayers = {};
  25184. VULKAN_HPP_NAMESPACE::SampleCountFlags sampleCounts = {};
  25185. VULKAN_HPP_NAMESPACE::DeviceSize maxResourceSize = {};
  25186. };
  25187. struct ExternalImageFormatPropertiesNV
  25188. {
  25189. using NativeType = VkExternalImageFormatPropertiesNV;
  25190. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  25191. VULKAN_HPP_CONSTEXPR
  25192. ExternalImageFormatPropertiesNV( VULKAN_HPP_NAMESPACE::ImageFormatProperties imageFormatProperties_ = {},
  25193. VULKAN_HPP_NAMESPACE::ExternalMemoryFeatureFlagsNV externalMemoryFeatures_ = {},
  25194. VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagsNV exportFromImportedHandleTypes_ = {},
  25195. VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagsNV compatibleHandleTypes_ = {} ) VULKAN_HPP_NOEXCEPT
  25196. : imageFormatProperties( imageFormatProperties_ )
  25197. , externalMemoryFeatures( externalMemoryFeatures_ )
  25198. , exportFromImportedHandleTypes( exportFromImportedHandleTypes_ )
  25199. , compatibleHandleTypes( compatibleHandleTypes_ )
  25200. {
  25201. }
  25202. VULKAN_HPP_CONSTEXPR ExternalImageFormatPropertiesNV( ExternalImageFormatPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  25203. ExternalImageFormatPropertiesNV( VkExternalImageFormatPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT
  25204. : ExternalImageFormatPropertiesNV( *reinterpret_cast<ExternalImageFormatPropertiesNV const *>( &rhs ) )
  25205. {
  25206. }
  25207. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  25208. ExternalImageFormatPropertiesNV & operator=( ExternalImageFormatPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  25209. ExternalImageFormatPropertiesNV & operator=( VkExternalImageFormatPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT
  25210. {
  25211. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ExternalImageFormatPropertiesNV const *>( &rhs );
  25212. return *this;
  25213. }
  25214. operator VkExternalImageFormatPropertiesNV const &() const VULKAN_HPP_NOEXCEPT
  25215. {
  25216. return *reinterpret_cast<const VkExternalImageFormatPropertiesNV *>( this );
  25217. }
  25218. operator VkExternalImageFormatPropertiesNV &() VULKAN_HPP_NOEXCEPT
  25219. {
  25220. return *reinterpret_cast<VkExternalImageFormatPropertiesNV *>( this );
  25221. }
  25222. #if defined( VULKAN_HPP_USE_REFLECT )
  25223. # if 14 <= VULKAN_HPP_CPP_VERSION
  25224. auto
  25225. # else
  25226. std::tuple<VULKAN_HPP_NAMESPACE::ImageFormatProperties const &,
  25227. VULKAN_HPP_NAMESPACE::ExternalMemoryFeatureFlagsNV const &,
  25228. VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagsNV const &,
  25229. VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagsNV const &>
  25230. # endif
  25231. reflect() const VULKAN_HPP_NOEXCEPT
  25232. {
  25233. return std::tie( imageFormatProperties, externalMemoryFeatures, exportFromImportedHandleTypes, compatibleHandleTypes );
  25234. }
  25235. #endif
  25236. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  25237. auto operator<=>( ExternalImageFormatPropertiesNV const & ) const = default;
  25238. #else
  25239. bool operator==( ExternalImageFormatPropertiesNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  25240. {
  25241. # if defined( VULKAN_HPP_USE_REFLECT )
  25242. return this->reflect() == rhs.reflect();
  25243. # else
  25244. return ( imageFormatProperties == rhs.imageFormatProperties ) && ( externalMemoryFeatures == rhs.externalMemoryFeatures ) &&
  25245. ( exportFromImportedHandleTypes == rhs.exportFromImportedHandleTypes ) && ( compatibleHandleTypes == rhs.compatibleHandleTypes );
  25246. # endif
  25247. }
  25248. bool operator!=( ExternalImageFormatPropertiesNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  25249. {
  25250. return !operator==( rhs );
  25251. }
  25252. #endif
  25253. public:
  25254. VULKAN_HPP_NAMESPACE::ImageFormatProperties imageFormatProperties = {};
  25255. VULKAN_HPP_NAMESPACE::ExternalMemoryFeatureFlagsNV externalMemoryFeatures = {};
  25256. VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagsNV exportFromImportedHandleTypes = {};
  25257. VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagsNV compatibleHandleTypes = {};
  25258. };
  25259. struct ExternalMemoryBufferCreateInfo
  25260. {
  25261. using NativeType = VkExternalMemoryBufferCreateInfo;
  25262. static const bool allowDuplicate = false;
  25263. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eExternalMemoryBufferCreateInfo;
  25264. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  25265. VULKAN_HPP_CONSTEXPR ExternalMemoryBufferCreateInfo( VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlags handleTypes_ = {},
  25266. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  25267. : pNext( pNext_ )
  25268. , handleTypes( handleTypes_ )
  25269. {
  25270. }
  25271. VULKAN_HPP_CONSTEXPR ExternalMemoryBufferCreateInfo( ExternalMemoryBufferCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  25272. ExternalMemoryBufferCreateInfo( VkExternalMemoryBufferCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
  25273. : ExternalMemoryBufferCreateInfo( *reinterpret_cast<ExternalMemoryBufferCreateInfo const *>( &rhs ) )
  25274. {
  25275. }
  25276. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  25277. ExternalMemoryBufferCreateInfo & operator=( ExternalMemoryBufferCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  25278. ExternalMemoryBufferCreateInfo & operator=( VkExternalMemoryBufferCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
  25279. {
  25280. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ExternalMemoryBufferCreateInfo const *>( &rhs );
  25281. return *this;
  25282. }
  25283. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  25284. VULKAN_HPP_CONSTEXPR_14 ExternalMemoryBufferCreateInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  25285. {
  25286. pNext = pNext_;
  25287. return *this;
  25288. }
  25289. VULKAN_HPP_CONSTEXPR_14 ExternalMemoryBufferCreateInfo &
  25290. setHandleTypes( VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlags handleTypes_ ) VULKAN_HPP_NOEXCEPT
  25291. {
  25292. handleTypes = handleTypes_;
  25293. return *this;
  25294. }
  25295. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  25296. operator VkExternalMemoryBufferCreateInfo const &() const VULKAN_HPP_NOEXCEPT
  25297. {
  25298. return *reinterpret_cast<const VkExternalMemoryBufferCreateInfo *>( this );
  25299. }
  25300. operator VkExternalMemoryBufferCreateInfo &() VULKAN_HPP_NOEXCEPT
  25301. {
  25302. return *reinterpret_cast<VkExternalMemoryBufferCreateInfo *>( this );
  25303. }
  25304. #if defined( VULKAN_HPP_USE_REFLECT )
  25305. # if 14 <= VULKAN_HPP_CPP_VERSION
  25306. auto
  25307. # else
  25308. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlags const &>
  25309. # endif
  25310. reflect() const VULKAN_HPP_NOEXCEPT
  25311. {
  25312. return std::tie( sType, pNext, handleTypes );
  25313. }
  25314. #endif
  25315. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  25316. auto operator<=>( ExternalMemoryBufferCreateInfo const & ) const = default;
  25317. #else
  25318. bool operator==( ExternalMemoryBufferCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  25319. {
  25320. # if defined( VULKAN_HPP_USE_REFLECT )
  25321. return this->reflect() == rhs.reflect();
  25322. # else
  25323. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( handleTypes == rhs.handleTypes );
  25324. # endif
  25325. }
  25326. bool operator!=( ExternalMemoryBufferCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  25327. {
  25328. return !operator==( rhs );
  25329. }
  25330. #endif
  25331. public:
  25332. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eExternalMemoryBufferCreateInfo;
  25333. const void * pNext = {};
  25334. VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlags handleTypes = {};
  25335. };
  25336. template <>
  25337. struct CppType<StructureType, StructureType::eExternalMemoryBufferCreateInfo>
  25338. {
  25339. using Type = ExternalMemoryBufferCreateInfo;
  25340. };
  25341. using ExternalMemoryBufferCreateInfoKHR = ExternalMemoryBufferCreateInfo;
  25342. struct ExternalMemoryImageCreateInfo
  25343. {
  25344. using NativeType = VkExternalMemoryImageCreateInfo;
  25345. static const bool allowDuplicate = false;
  25346. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eExternalMemoryImageCreateInfo;
  25347. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  25348. VULKAN_HPP_CONSTEXPR ExternalMemoryImageCreateInfo( VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlags handleTypes_ = {},
  25349. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  25350. : pNext( pNext_ )
  25351. , handleTypes( handleTypes_ )
  25352. {
  25353. }
  25354. VULKAN_HPP_CONSTEXPR ExternalMemoryImageCreateInfo( ExternalMemoryImageCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  25355. ExternalMemoryImageCreateInfo( VkExternalMemoryImageCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
  25356. : ExternalMemoryImageCreateInfo( *reinterpret_cast<ExternalMemoryImageCreateInfo const *>( &rhs ) )
  25357. {
  25358. }
  25359. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  25360. ExternalMemoryImageCreateInfo & operator=( ExternalMemoryImageCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  25361. ExternalMemoryImageCreateInfo & operator=( VkExternalMemoryImageCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
  25362. {
  25363. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ExternalMemoryImageCreateInfo const *>( &rhs );
  25364. return *this;
  25365. }
  25366. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  25367. VULKAN_HPP_CONSTEXPR_14 ExternalMemoryImageCreateInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  25368. {
  25369. pNext = pNext_;
  25370. return *this;
  25371. }
  25372. VULKAN_HPP_CONSTEXPR_14 ExternalMemoryImageCreateInfo &
  25373. setHandleTypes( VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlags handleTypes_ ) VULKAN_HPP_NOEXCEPT
  25374. {
  25375. handleTypes = handleTypes_;
  25376. return *this;
  25377. }
  25378. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  25379. operator VkExternalMemoryImageCreateInfo const &() const VULKAN_HPP_NOEXCEPT
  25380. {
  25381. return *reinterpret_cast<const VkExternalMemoryImageCreateInfo *>( this );
  25382. }
  25383. operator VkExternalMemoryImageCreateInfo &() VULKAN_HPP_NOEXCEPT
  25384. {
  25385. return *reinterpret_cast<VkExternalMemoryImageCreateInfo *>( this );
  25386. }
  25387. #if defined( VULKAN_HPP_USE_REFLECT )
  25388. # if 14 <= VULKAN_HPP_CPP_VERSION
  25389. auto
  25390. # else
  25391. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlags const &>
  25392. # endif
  25393. reflect() const VULKAN_HPP_NOEXCEPT
  25394. {
  25395. return std::tie( sType, pNext, handleTypes );
  25396. }
  25397. #endif
  25398. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  25399. auto operator<=>( ExternalMemoryImageCreateInfo const & ) const = default;
  25400. #else
  25401. bool operator==( ExternalMemoryImageCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  25402. {
  25403. # if defined( VULKAN_HPP_USE_REFLECT )
  25404. return this->reflect() == rhs.reflect();
  25405. # else
  25406. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( handleTypes == rhs.handleTypes );
  25407. # endif
  25408. }
  25409. bool operator!=( ExternalMemoryImageCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  25410. {
  25411. return !operator==( rhs );
  25412. }
  25413. #endif
  25414. public:
  25415. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eExternalMemoryImageCreateInfo;
  25416. const void * pNext = {};
  25417. VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlags handleTypes = {};
  25418. };
  25419. template <>
  25420. struct CppType<StructureType, StructureType::eExternalMemoryImageCreateInfo>
  25421. {
  25422. using Type = ExternalMemoryImageCreateInfo;
  25423. };
  25424. using ExternalMemoryImageCreateInfoKHR = ExternalMemoryImageCreateInfo;
  25425. struct ExternalMemoryImageCreateInfoNV
  25426. {
  25427. using NativeType = VkExternalMemoryImageCreateInfoNV;
  25428. static const bool allowDuplicate = false;
  25429. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eExternalMemoryImageCreateInfoNV;
  25430. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  25431. VULKAN_HPP_CONSTEXPR ExternalMemoryImageCreateInfoNV( VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagsNV handleTypes_ = {},
  25432. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  25433. : pNext( pNext_ )
  25434. , handleTypes( handleTypes_ )
  25435. {
  25436. }
  25437. VULKAN_HPP_CONSTEXPR ExternalMemoryImageCreateInfoNV( ExternalMemoryImageCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  25438. ExternalMemoryImageCreateInfoNV( VkExternalMemoryImageCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
  25439. : ExternalMemoryImageCreateInfoNV( *reinterpret_cast<ExternalMemoryImageCreateInfoNV const *>( &rhs ) )
  25440. {
  25441. }
  25442. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  25443. ExternalMemoryImageCreateInfoNV & operator=( ExternalMemoryImageCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  25444. ExternalMemoryImageCreateInfoNV & operator=( VkExternalMemoryImageCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
  25445. {
  25446. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ExternalMemoryImageCreateInfoNV const *>( &rhs );
  25447. return *this;
  25448. }
  25449. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  25450. VULKAN_HPP_CONSTEXPR_14 ExternalMemoryImageCreateInfoNV & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  25451. {
  25452. pNext = pNext_;
  25453. return *this;
  25454. }
  25455. VULKAN_HPP_CONSTEXPR_14 ExternalMemoryImageCreateInfoNV &
  25456. setHandleTypes( VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagsNV handleTypes_ ) VULKAN_HPP_NOEXCEPT
  25457. {
  25458. handleTypes = handleTypes_;
  25459. return *this;
  25460. }
  25461. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  25462. operator VkExternalMemoryImageCreateInfoNV const &() const VULKAN_HPP_NOEXCEPT
  25463. {
  25464. return *reinterpret_cast<const VkExternalMemoryImageCreateInfoNV *>( this );
  25465. }
  25466. operator VkExternalMemoryImageCreateInfoNV &() VULKAN_HPP_NOEXCEPT
  25467. {
  25468. return *reinterpret_cast<VkExternalMemoryImageCreateInfoNV *>( this );
  25469. }
  25470. #if defined( VULKAN_HPP_USE_REFLECT )
  25471. # if 14 <= VULKAN_HPP_CPP_VERSION
  25472. auto
  25473. # else
  25474. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagsNV const &>
  25475. # endif
  25476. reflect() const VULKAN_HPP_NOEXCEPT
  25477. {
  25478. return std::tie( sType, pNext, handleTypes );
  25479. }
  25480. #endif
  25481. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  25482. auto operator<=>( ExternalMemoryImageCreateInfoNV const & ) const = default;
  25483. #else
  25484. bool operator==( ExternalMemoryImageCreateInfoNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  25485. {
  25486. # if defined( VULKAN_HPP_USE_REFLECT )
  25487. return this->reflect() == rhs.reflect();
  25488. # else
  25489. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( handleTypes == rhs.handleTypes );
  25490. # endif
  25491. }
  25492. bool operator!=( ExternalMemoryImageCreateInfoNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  25493. {
  25494. return !operator==( rhs );
  25495. }
  25496. #endif
  25497. public:
  25498. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eExternalMemoryImageCreateInfoNV;
  25499. const void * pNext = {};
  25500. VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagsNV handleTypes = {};
  25501. };
  25502. template <>
  25503. struct CppType<StructureType, StructureType::eExternalMemoryImageCreateInfoNV>
  25504. {
  25505. using Type = ExternalMemoryImageCreateInfoNV;
  25506. };
  25507. struct ExternalSemaphoreProperties
  25508. {
  25509. using NativeType = VkExternalSemaphoreProperties;
  25510. static const bool allowDuplicate = false;
  25511. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eExternalSemaphoreProperties;
  25512. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  25513. VULKAN_HPP_CONSTEXPR ExternalSemaphoreProperties( VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlags exportFromImportedHandleTypes_ = {},
  25514. VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlags compatibleHandleTypes_ = {},
  25515. VULKAN_HPP_NAMESPACE::ExternalSemaphoreFeatureFlags externalSemaphoreFeatures_ = {},
  25516. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  25517. : pNext( pNext_ )
  25518. , exportFromImportedHandleTypes( exportFromImportedHandleTypes_ )
  25519. , compatibleHandleTypes( compatibleHandleTypes_ )
  25520. , externalSemaphoreFeatures( externalSemaphoreFeatures_ )
  25521. {
  25522. }
  25523. VULKAN_HPP_CONSTEXPR ExternalSemaphoreProperties( ExternalSemaphoreProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  25524. ExternalSemaphoreProperties( VkExternalSemaphoreProperties const & rhs ) VULKAN_HPP_NOEXCEPT
  25525. : ExternalSemaphoreProperties( *reinterpret_cast<ExternalSemaphoreProperties const *>( &rhs ) )
  25526. {
  25527. }
  25528. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  25529. ExternalSemaphoreProperties & operator=( ExternalSemaphoreProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  25530. ExternalSemaphoreProperties & operator=( VkExternalSemaphoreProperties const & rhs ) VULKAN_HPP_NOEXCEPT
  25531. {
  25532. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ExternalSemaphoreProperties const *>( &rhs );
  25533. return *this;
  25534. }
  25535. operator VkExternalSemaphoreProperties const &() const VULKAN_HPP_NOEXCEPT
  25536. {
  25537. return *reinterpret_cast<const VkExternalSemaphoreProperties *>( this );
  25538. }
  25539. operator VkExternalSemaphoreProperties &() VULKAN_HPP_NOEXCEPT
  25540. {
  25541. return *reinterpret_cast<VkExternalSemaphoreProperties *>( this );
  25542. }
  25543. #if defined( VULKAN_HPP_USE_REFLECT )
  25544. # if 14 <= VULKAN_HPP_CPP_VERSION
  25545. auto
  25546. # else
  25547. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  25548. void * const &,
  25549. VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlags const &,
  25550. VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlags const &,
  25551. VULKAN_HPP_NAMESPACE::ExternalSemaphoreFeatureFlags const &>
  25552. # endif
  25553. reflect() const VULKAN_HPP_NOEXCEPT
  25554. {
  25555. return std::tie( sType, pNext, exportFromImportedHandleTypes, compatibleHandleTypes, externalSemaphoreFeatures );
  25556. }
  25557. #endif
  25558. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  25559. auto operator<=>( ExternalSemaphoreProperties const & ) const = default;
  25560. #else
  25561. bool operator==( ExternalSemaphoreProperties const & rhs ) const VULKAN_HPP_NOEXCEPT
  25562. {
  25563. # if defined( VULKAN_HPP_USE_REFLECT )
  25564. return this->reflect() == rhs.reflect();
  25565. # else
  25566. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( exportFromImportedHandleTypes == rhs.exportFromImportedHandleTypes ) &&
  25567. ( compatibleHandleTypes == rhs.compatibleHandleTypes ) && ( externalSemaphoreFeatures == rhs.externalSemaphoreFeatures );
  25568. # endif
  25569. }
  25570. bool operator!=( ExternalSemaphoreProperties const & rhs ) const VULKAN_HPP_NOEXCEPT
  25571. {
  25572. return !operator==( rhs );
  25573. }
  25574. #endif
  25575. public:
  25576. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eExternalSemaphoreProperties;
  25577. void * pNext = {};
  25578. VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlags exportFromImportedHandleTypes = {};
  25579. VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlags compatibleHandleTypes = {};
  25580. VULKAN_HPP_NAMESPACE::ExternalSemaphoreFeatureFlags externalSemaphoreFeatures = {};
  25581. };
  25582. template <>
  25583. struct CppType<StructureType, StructureType::eExternalSemaphoreProperties>
  25584. {
  25585. using Type = ExternalSemaphoreProperties;
  25586. };
  25587. using ExternalSemaphorePropertiesKHR = ExternalSemaphoreProperties;
  25588. struct FenceCreateInfo
  25589. {
  25590. using NativeType = VkFenceCreateInfo;
  25591. static const bool allowDuplicate = false;
  25592. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eFenceCreateInfo;
  25593. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  25594. VULKAN_HPP_CONSTEXPR FenceCreateInfo( VULKAN_HPP_NAMESPACE::FenceCreateFlags flags_ = {}, const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  25595. : pNext( pNext_ )
  25596. , flags( flags_ )
  25597. {
  25598. }
  25599. VULKAN_HPP_CONSTEXPR FenceCreateInfo( FenceCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  25600. FenceCreateInfo( VkFenceCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT : FenceCreateInfo( *reinterpret_cast<FenceCreateInfo const *>( &rhs ) ) {}
  25601. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  25602. FenceCreateInfo & operator=( FenceCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  25603. FenceCreateInfo & operator=( VkFenceCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
  25604. {
  25605. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::FenceCreateInfo const *>( &rhs );
  25606. return *this;
  25607. }
  25608. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  25609. VULKAN_HPP_CONSTEXPR_14 FenceCreateInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  25610. {
  25611. pNext = pNext_;
  25612. return *this;
  25613. }
  25614. VULKAN_HPP_CONSTEXPR_14 FenceCreateInfo & setFlags( VULKAN_HPP_NAMESPACE::FenceCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT
  25615. {
  25616. flags = flags_;
  25617. return *this;
  25618. }
  25619. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  25620. operator VkFenceCreateInfo const &() const VULKAN_HPP_NOEXCEPT
  25621. {
  25622. return *reinterpret_cast<const VkFenceCreateInfo *>( this );
  25623. }
  25624. operator VkFenceCreateInfo &() VULKAN_HPP_NOEXCEPT
  25625. {
  25626. return *reinterpret_cast<VkFenceCreateInfo *>( this );
  25627. }
  25628. #if defined( VULKAN_HPP_USE_REFLECT )
  25629. # if 14 <= VULKAN_HPP_CPP_VERSION
  25630. auto
  25631. # else
  25632. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::FenceCreateFlags const &>
  25633. # endif
  25634. reflect() const VULKAN_HPP_NOEXCEPT
  25635. {
  25636. return std::tie( sType, pNext, flags );
  25637. }
  25638. #endif
  25639. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  25640. auto operator<=>( FenceCreateInfo const & ) const = default;
  25641. #else
  25642. bool operator==( FenceCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  25643. {
  25644. # if defined( VULKAN_HPP_USE_REFLECT )
  25645. return this->reflect() == rhs.reflect();
  25646. # else
  25647. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( flags == rhs.flags );
  25648. # endif
  25649. }
  25650. bool operator!=( FenceCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  25651. {
  25652. return !operator==( rhs );
  25653. }
  25654. #endif
  25655. public:
  25656. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eFenceCreateInfo;
  25657. const void * pNext = {};
  25658. VULKAN_HPP_NAMESPACE::FenceCreateFlags flags = {};
  25659. };
  25660. template <>
  25661. struct CppType<StructureType, StructureType::eFenceCreateInfo>
  25662. {
  25663. using Type = FenceCreateInfo;
  25664. };
  25665. struct FenceGetFdInfoKHR
  25666. {
  25667. using NativeType = VkFenceGetFdInfoKHR;
  25668. static const bool allowDuplicate = false;
  25669. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eFenceGetFdInfoKHR;
  25670. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  25671. VULKAN_HPP_CONSTEXPR
  25672. FenceGetFdInfoKHR( VULKAN_HPP_NAMESPACE::Fence fence_ = {},
  25673. VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlagBits handleType_ = VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlagBits::eOpaqueFd,
  25674. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  25675. : pNext( pNext_ )
  25676. , fence( fence_ )
  25677. , handleType( handleType_ )
  25678. {
  25679. }
  25680. VULKAN_HPP_CONSTEXPR FenceGetFdInfoKHR( FenceGetFdInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  25681. FenceGetFdInfoKHR( VkFenceGetFdInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT : FenceGetFdInfoKHR( *reinterpret_cast<FenceGetFdInfoKHR const *>( &rhs ) ) {}
  25682. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  25683. FenceGetFdInfoKHR & operator=( FenceGetFdInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  25684. FenceGetFdInfoKHR & operator=( VkFenceGetFdInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  25685. {
  25686. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::FenceGetFdInfoKHR const *>( &rhs );
  25687. return *this;
  25688. }
  25689. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  25690. VULKAN_HPP_CONSTEXPR_14 FenceGetFdInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  25691. {
  25692. pNext = pNext_;
  25693. return *this;
  25694. }
  25695. VULKAN_HPP_CONSTEXPR_14 FenceGetFdInfoKHR & setFence( VULKAN_HPP_NAMESPACE::Fence fence_ ) VULKAN_HPP_NOEXCEPT
  25696. {
  25697. fence = fence_;
  25698. return *this;
  25699. }
  25700. VULKAN_HPP_CONSTEXPR_14 FenceGetFdInfoKHR & setHandleType( VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlagBits handleType_ ) VULKAN_HPP_NOEXCEPT
  25701. {
  25702. handleType = handleType_;
  25703. return *this;
  25704. }
  25705. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  25706. operator VkFenceGetFdInfoKHR const &() const VULKAN_HPP_NOEXCEPT
  25707. {
  25708. return *reinterpret_cast<const VkFenceGetFdInfoKHR *>( this );
  25709. }
  25710. operator VkFenceGetFdInfoKHR &() VULKAN_HPP_NOEXCEPT
  25711. {
  25712. return *reinterpret_cast<VkFenceGetFdInfoKHR *>( this );
  25713. }
  25714. #if defined( VULKAN_HPP_USE_REFLECT )
  25715. # if 14 <= VULKAN_HPP_CPP_VERSION
  25716. auto
  25717. # else
  25718. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  25719. const void * const &,
  25720. VULKAN_HPP_NAMESPACE::Fence const &,
  25721. VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlagBits const &>
  25722. # endif
  25723. reflect() const VULKAN_HPP_NOEXCEPT
  25724. {
  25725. return std::tie( sType, pNext, fence, handleType );
  25726. }
  25727. #endif
  25728. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  25729. auto operator<=>( FenceGetFdInfoKHR const & ) const = default;
  25730. #else
  25731. bool operator==( FenceGetFdInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  25732. {
  25733. # if defined( VULKAN_HPP_USE_REFLECT )
  25734. return this->reflect() == rhs.reflect();
  25735. # else
  25736. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( fence == rhs.fence ) && ( handleType == rhs.handleType );
  25737. # endif
  25738. }
  25739. bool operator!=( FenceGetFdInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  25740. {
  25741. return !operator==( rhs );
  25742. }
  25743. #endif
  25744. public:
  25745. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eFenceGetFdInfoKHR;
  25746. const void * pNext = {};
  25747. VULKAN_HPP_NAMESPACE::Fence fence = {};
  25748. VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlagBits handleType = VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlagBits::eOpaqueFd;
  25749. };
  25750. template <>
  25751. struct CppType<StructureType, StructureType::eFenceGetFdInfoKHR>
  25752. {
  25753. using Type = FenceGetFdInfoKHR;
  25754. };
  25755. #if defined( VK_USE_PLATFORM_WIN32_KHR )
  25756. struct FenceGetWin32HandleInfoKHR
  25757. {
  25758. using NativeType = VkFenceGetWin32HandleInfoKHR;
  25759. static const bool allowDuplicate = false;
  25760. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eFenceGetWin32HandleInfoKHR;
  25761. # if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  25762. VULKAN_HPP_CONSTEXPR FenceGetWin32HandleInfoKHR(
  25763. VULKAN_HPP_NAMESPACE::Fence fence_ = {},
  25764. VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlagBits handleType_ = VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlagBits::eOpaqueFd,
  25765. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  25766. : pNext( pNext_ )
  25767. , fence( fence_ )
  25768. , handleType( handleType_ )
  25769. {
  25770. }
  25771. VULKAN_HPP_CONSTEXPR FenceGetWin32HandleInfoKHR( FenceGetWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  25772. FenceGetWin32HandleInfoKHR( VkFenceGetWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  25773. : FenceGetWin32HandleInfoKHR( *reinterpret_cast<FenceGetWin32HandleInfoKHR const *>( &rhs ) )
  25774. {
  25775. }
  25776. # endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  25777. FenceGetWin32HandleInfoKHR & operator=( FenceGetWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  25778. FenceGetWin32HandleInfoKHR & operator=( VkFenceGetWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  25779. {
  25780. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::FenceGetWin32HandleInfoKHR const *>( &rhs );
  25781. return *this;
  25782. }
  25783. # if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  25784. VULKAN_HPP_CONSTEXPR_14 FenceGetWin32HandleInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  25785. {
  25786. pNext = pNext_;
  25787. return *this;
  25788. }
  25789. VULKAN_HPP_CONSTEXPR_14 FenceGetWin32HandleInfoKHR & setFence( VULKAN_HPP_NAMESPACE::Fence fence_ ) VULKAN_HPP_NOEXCEPT
  25790. {
  25791. fence = fence_;
  25792. return *this;
  25793. }
  25794. VULKAN_HPP_CONSTEXPR_14 FenceGetWin32HandleInfoKHR & setHandleType( VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlagBits handleType_ ) VULKAN_HPP_NOEXCEPT
  25795. {
  25796. handleType = handleType_;
  25797. return *this;
  25798. }
  25799. # endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  25800. operator VkFenceGetWin32HandleInfoKHR const &() const VULKAN_HPP_NOEXCEPT
  25801. {
  25802. return *reinterpret_cast<const VkFenceGetWin32HandleInfoKHR *>( this );
  25803. }
  25804. operator VkFenceGetWin32HandleInfoKHR &() VULKAN_HPP_NOEXCEPT
  25805. {
  25806. return *reinterpret_cast<VkFenceGetWin32HandleInfoKHR *>( this );
  25807. }
  25808. # if defined( VULKAN_HPP_USE_REFLECT )
  25809. # if 14 <= VULKAN_HPP_CPP_VERSION
  25810. auto
  25811. # else
  25812. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  25813. const void * const &,
  25814. VULKAN_HPP_NAMESPACE::Fence const &,
  25815. VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlagBits const &>
  25816. # endif
  25817. reflect() const VULKAN_HPP_NOEXCEPT
  25818. {
  25819. return std::tie( sType, pNext, fence, handleType );
  25820. }
  25821. # endif
  25822. # if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  25823. auto operator<=>( FenceGetWin32HandleInfoKHR const & ) const = default;
  25824. # else
  25825. bool operator==( FenceGetWin32HandleInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  25826. {
  25827. # if defined( VULKAN_HPP_USE_REFLECT )
  25828. return this->reflect() == rhs.reflect();
  25829. # else
  25830. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( fence == rhs.fence ) && ( handleType == rhs.handleType );
  25831. # endif
  25832. }
  25833. bool operator!=( FenceGetWin32HandleInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  25834. {
  25835. return !operator==( rhs );
  25836. }
  25837. # endif
  25838. public:
  25839. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eFenceGetWin32HandleInfoKHR;
  25840. const void * pNext = {};
  25841. VULKAN_HPP_NAMESPACE::Fence fence = {};
  25842. VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlagBits handleType = VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlagBits::eOpaqueFd;
  25843. };
  25844. template <>
  25845. struct CppType<StructureType, StructureType::eFenceGetWin32HandleInfoKHR>
  25846. {
  25847. using Type = FenceGetWin32HandleInfoKHR;
  25848. };
  25849. #endif /*VK_USE_PLATFORM_WIN32_KHR*/
  25850. struct FilterCubicImageViewImageFormatPropertiesEXT
  25851. {
  25852. using NativeType = VkFilterCubicImageViewImageFormatPropertiesEXT;
  25853. static const bool allowDuplicate = false;
  25854. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eFilterCubicImageViewImageFormatPropertiesEXT;
  25855. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  25856. VULKAN_HPP_CONSTEXPR FilterCubicImageViewImageFormatPropertiesEXT( VULKAN_HPP_NAMESPACE::Bool32 filterCubic_ = {},
  25857. VULKAN_HPP_NAMESPACE::Bool32 filterCubicMinmax_ = {},
  25858. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  25859. : pNext( pNext_ )
  25860. , filterCubic( filterCubic_ )
  25861. , filterCubicMinmax( filterCubicMinmax_ )
  25862. {
  25863. }
  25864. VULKAN_HPP_CONSTEXPR FilterCubicImageViewImageFormatPropertiesEXT( FilterCubicImageViewImageFormatPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  25865. FilterCubicImageViewImageFormatPropertiesEXT( VkFilterCubicImageViewImageFormatPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  25866. : FilterCubicImageViewImageFormatPropertiesEXT( *reinterpret_cast<FilterCubicImageViewImageFormatPropertiesEXT const *>( &rhs ) )
  25867. {
  25868. }
  25869. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  25870. FilterCubicImageViewImageFormatPropertiesEXT & operator=( FilterCubicImageViewImageFormatPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  25871. FilterCubicImageViewImageFormatPropertiesEXT & operator=( VkFilterCubicImageViewImageFormatPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  25872. {
  25873. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::FilterCubicImageViewImageFormatPropertiesEXT const *>( &rhs );
  25874. return *this;
  25875. }
  25876. operator VkFilterCubicImageViewImageFormatPropertiesEXT const &() const VULKAN_HPP_NOEXCEPT
  25877. {
  25878. return *reinterpret_cast<const VkFilterCubicImageViewImageFormatPropertiesEXT *>( this );
  25879. }
  25880. operator VkFilterCubicImageViewImageFormatPropertiesEXT &() VULKAN_HPP_NOEXCEPT
  25881. {
  25882. return *reinterpret_cast<VkFilterCubicImageViewImageFormatPropertiesEXT *>( this );
  25883. }
  25884. #if defined( VULKAN_HPP_USE_REFLECT )
  25885. # if 14 <= VULKAN_HPP_CPP_VERSION
  25886. auto
  25887. # else
  25888. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
  25889. # endif
  25890. reflect() const VULKAN_HPP_NOEXCEPT
  25891. {
  25892. return std::tie( sType, pNext, filterCubic, filterCubicMinmax );
  25893. }
  25894. #endif
  25895. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  25896. auto operator<=>( FilterCubicImageViewImageFormatPropertiesEXT const & ) const = default;
  25897. #else
  25898. bool operator==( FilterCubicImageViewImageFormatPropertiesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  25899. {
  25900. # if defined( VULKAN_HPP_USE_REFLECT )
  25901. return this->reflect() == rhs.reflect();
  25902. # else
  25903. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( filterCubic == rhs.filterCubic ) && ( filterCubicMinmax == rhs.filterCubicMinmax );
  25904. # endif
  25905. }
  25906. bool operator!=( FilterCubicImageViewImageFormatPropertiesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  25907. {
  25908. return !operator==( rhs );
  25909. }
  25910. #endif
  25911. public:
  25912. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eFilterCubicImageViewImageFormatPropertiesEXT;
  25913. void * pNext = {};
  25914. VULKAN_HPP_NAMESPACE::Bool32 filterCubic = {};
  25915. VULKAN_HPP_NAMESPACE::Bool32 filterCubicMinmax = {};
  25916. };
  25917. template <>
  25918. struct CppType<StructureType, StructureType::eFilterCubicImageViewImageFormatPropertiesEXT>
  25919. {
  25920. using Type = FilterCubicImageViewImageFormatPropertiesEXT;
  25921. };
  25922. struct FormatProperties
  25923. {
  25924. using NativeType = VkFormatProperties;
  25925. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  25926. VULKAN_HPP_CONSTEXPR FormatProperties( VULKAN_HPP_NAMESPACE::FormatFeatureFlags linearTilingFeatures_ = {},
  25927. VULKAN_HPP_NAMESPACE::FormatFeatureFlags optimalTilingFeatures_ = {},
  25928. VULKAN_HPP_NAMESPACE::FormatFeatureFlags bufferFeatures_ = {} ) VULKAN_HPP_NOEXCEPT
  25929. : linearTilingFeatures( linearTilingFeatures_ )
  25930. , optimalTilingFeatures( optimalTilingFeatures_ )
  25931. , bufferFeatures( bufferFeatures_ )
  25932. {
  25933. }
  25934. VULKAN_HPP_CONSTEXPR FormatProperties( FormatProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  25935. FormatProperties( VkFormatProperties const & rhs ) VULKAN_HPP_NOEXCEPT : FormatProperties( *reinterpret_cast<FormatProperties const *>( &rhs ) ) {}
  25936. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  25937. FormatProperties & operator=( FormatProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  25938. FormatProperties & operator=( VkFormatProperties const & rhs ) VULKAN_HPP_NOEXCEPT
  25939. {
  25940. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::FormatProperties const *>( &rhs );
  25941. return *this;
  25942. }
  25943. operator VkFormatProperties const &() const VULKAN_HPP_NOEXCEPT
  25944. {
  25945. return *reinterpret_cast<const VkFormatProperties *>( this );
  25946. }
  25947. operator VkFormatProperties &() VULKAN_HPP_NOEXCEPT
  25948. {
  25949. return *reinterpret_cast<VkFormatProperties *>( this );
  25950. }
  25951. #if defined( VULKAN_HPP_USE_REFLECT )
  25952. # if 14 <= VULKAN_HPP_CPP_VERSION
  25953. auto
  25954. # else
  25955. std::tuple<VULKAN_HPP_NAMESPACE::FormatFeatureFlags const &,
  25956. VULKAN_HPP_NAMESPACE::FormatFeatureFlags const &,
  25957. VULKAN_HPP_NAMESPACE::FormatFeatureFlags const &>
  25958. # endif
  25959. reflect() const VULKAN_HPP_NOEXCEPT
  25960. {
  25961. return std::tie( linearTilingFeatures, optimalTilingFeatures, bufferFeatures );
  25962. }
  25963. #endif
  25964. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  25965. auto operator<=>( FormatProperties const & ) const = default;
  25966. #else
  25967. bool operator==( FormatProperties const & rhs ) const VULKAN_HPP_NOEXCEPT
  25968. {
  25969. # if defined( VULKAN_HPP_USE_REFLECT )
  25970. return this->reflect() == rhs.reflect();
  25971. # else
  25972. return ( linearTilingFeatures == rhs.linearTilingFeatures ) && ( optimalTilingFeatures == rhs.optimalTilingFeatures ) &&
  25973. ( bufferFeatures == rhs.bufferFeatures );
  25974. # endif
  25975. }
  25976. bool operator!=( FormatProperties const & rhs ) const VULKAN_HPP_NOEXCEPT
  25977. {
  25978. return !operator==( rhs );
  25979. }
  25980. #endif
  25981. public:
  25982. VULKAN_HPP_NAMESPACE::FormatFeatureFlags linearTilingFeatures = {};
  25983. VULKAN_HPP_NAMESPACE::FormatFeatureFlags optimalTilingFeatures = {};
  25984. VULKAN_HPP_NAMESPACE::FormatFeatureFlags bufferFeatures = {};
  25985. };
  25986. struct FormatProperties2
  25987. {
  25988. using NativeType = VkFormatProperties2;
  25989. static const bool allowDuplicate = false;
  25990. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eFormatProperties2;
  25991. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  25992. VULKAN_HPP_CONSTEXPR FormatProperties2( VULKAN_HPP_NAMESPACE::FormatProperties formatProperties_ = {}, void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  25993. : pNext( pNext_ )
  25994. , formatProperties( formatProperties_ )
  25995. {
  25996. }
  25997. VULKAN_HPP_CONSTEXPR FormatProperties2( FormatProperties2 const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  25998. FormatProperties2( VkFormatProperties2 const & rhs ) VULKAN_HPP_NOEXCEPT : FormatProperties2( *reinterpret_cast<FormatProperties2 const *>( &rhs ) ) {}
  25999. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  26000. FormatProperties2 & operator=( FormatProperties2 const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  26001. FormatProperties2 & operator=( VkFormatProperties2 const & rhs ) VULKAN_HPP_NOEXCEPT
  26002. {
  26003. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::FormatProperties2 const *>( &rhs );
  26004. return *this;
  26005. }
  26006. operator VkFormatProperties2 const &() const VULKAN_HPP_NOEXCEPT
  26007. {
  26008. return *reinterpret_cast<const VkFormatProperties2 *>( this );
  26009. }
  26010. operator VkFormatProperties2 &() VULKAN_HPP_NOEXCEPT
  26011. {
  26012. return *reinterpret_cast<VkFormatProperties2 *>( this );
  26013. }
  26014. #if defined( VULKAN_HPP_USE_REFLECT )
  26015. # if 14 <= VULKAN_HPP_CPP_VERSION
  26016. auto
  26017. # else
  26018. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::FormatProperties const &>
  26019. # endif
  26020. reflect() const VULKAN_HPP_NOEXCEPT
  26021. {
  26022. return std::tie( sType, pNext, formatProperties );
  26023. }
  26024. #endif
  26025. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  26026. auto operator<=>( FormatProperties2 const & ) const = default;
  26027. #else
  26028. bool operator==( FormatProperties2 const & rhs ) const VULKAN_HPP_NOEXCEPT
  26029. {
  26030. # if defined( VULKAN_HPP_USE_REFLECT )
  26031. return this->reflect() == rhs.reflect();
  26032. # else
  26033. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( formatProperties == rhs.formatProperties );
  26034. # endif
  26035. }
  26036. bool operator!=( FormatProperties2 const & rhs ) const VULKAN_HPP_NOEXCEPT
  26037. {
  26038. return !operator==( rhs );
  26039. }
  26040. #endif
  26041. public:
  26042. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eFormatProperties2;
  26043. void * pNext = {};
  26044. VULKAN_HPP_NAMESPACE::FormatProperties formatProperties = {};
  26045. };
  26046. template <>
  26047. struct CppType<StructureType, StructureType::eFormatProperties2>
  26048. {
  26049. using Type = FormatProperties2;
  26050. };
  26051. using FormatProperties2KHR = FormatProperties2;
  26052. struct FormatProperties3
  26053. {
  26054. using NativeType = VkFormatProperties3;
  26055. static const bool allowDuplicate = false;
  26056. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eFormatProperties3;
  26057. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  26058. VULKAN_HPP_CONSTEXPR FormatProperties3( VULKAN_HPP_NAMESPACE::FormatFeatureFlags2 linearTilingFeatures_ = {},
  26059. VULKAN_HPP_NAMESPACE::FormatFeatureFlags2 optimalTilingFeatures_ = {},
  26060. VULKAN_HPP_NAMESPACE::FormatFeatureFlags2 bufferFeatures_ = {},
  26061. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  26062. : pNext( pNext_ )
  26063. , linearTilingFeatures( linearTilingFeatures_ )
  26064. , optimalTilingFeatures( optimalTilingFeatures_ )
  26065. , bufferFeatures( bufferFeatures_ )
  26066. {
  26067. }
  26068. VULKAN_HPP_CONSTEXPR FormatProperties3( FormatProperties3 const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  26069. FormatProperties3( VkFormatProperties3 const & rhs ) VULKAN_HPP_NOEXCEPT : FormatProperties3( *reinterpret_cast<FormatProperties3 const *>( &rhs ) ) {}
  26070. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  26071. FormatProperties3 & operator=( FormatProperties3 const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  26072. FormatProperties3 & operator=( VkFormatProperties3 const & rhs ) VULKAN_HPP_NOEXCEPT
  26073. {
  26074. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::FormatProperties3 const *>( &rhs );
  26075. return *this;
  26076. }
  26077. operator VkFormatProperties3 const &() const VULKAN_HPP_NOEXCEPT
  26078. {
  26079. return *reinterpret_cast<const VkFormatProperties3 *>( this );
  26080. }
  26081. operator VkFormatProperties3 &() VULKAN_HPP_NOEXCEPT
  26082. {
  26083. return *reinterpret_cast<VkFormatProperties3 *>( this );
  26084. }
  26085. #if defined( VULKAN_HPP_USE_REFLECT )
  26086. # if 14 <= VULKAN_HPP_CPP_VERSION
  26087. auto
  26088. # else
  26089. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  26090. void * const &,
  26091. VULKAN_HPP_NAMESPACE::FormatFeatureFlags2 const &,
  26092. VULKAN_HPP_NAMESPACE::FormatFeatureFlags2 const &,
  26093. VULKAN_HPP_NAMESPACE::FormatFeatureFlags2 const &>
  26094. # endif
  26095. reflect() const VULKAN_HPP_NOEXCEPT
  26096. {
  26097. return std::tie( sType, pNext, linearTilingFeatures, optimalTilingFeatures, bufferFeatures );
  26098. }
  26099. #endif
  26100. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  26101. auto operator<=>( FormatProperties3 const & ) const = default;
  26102. #else
  26103. bool operator==( FormatProperties3 const & rhs ) const VULKAN_HPP_NOEXCEPT
  26104. {
  26105. # if defined( VULKAN_HPP_USE_REFLECT )
  26106. return this->reflect() == rhs.reflect();
  26107. # else
  26108. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( linearTilingFeatures == rhs.linearTilingFeatures ) &&
  26109. ( optimalTilingFeatures == rhs.optimalTilingFeatures ) && ( bufferFeatures == rhs.bufferFeatures );
  26110. # endif
  26111. }
  26112. bool operator!=( FormatProperties3 const & rhs ) const VULKAN_HPP_NOEXCEPT
  26113. {
  26114. return !operator==( rhs );
  26115. }
  26116. #endif
  26117. public:
  26118. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eFormatProperties3;
  26119. void * pNext = {};
  26120. VULKAN_HPP_NAMESPACE::FormatFeatureFlags2 linearTilingFeatures = {};
  26121. VULKAN_HPP_NAMESPACE::FormatFeatureFlags2 optimalTilingFeatures = {};
  26122. VULKAN_HPP_NAMESPACE::FormatFeatureFlags2 bufferFeatures = {};
  26123. };
  26124. template <>
  26125. struct CppType<StructureType, StructureType::eFormatProperties3>
  26126. {
  26127. using Type = FormatProperties3;
  26128. };
  26129. using FormatProperties3KHR = FormatProperties3;
  26130. struct FragmentShadingRateAttachmentInfoKHR
  26131. {
  26132. using NativeType = VkFragmentShadingRateAttachmentInfoKHR;
  26133. static const bool allowDuplicate = false;
  26134. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eFragmentShadingRateAttachmentInfoKHR;
  26135. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  26136. VULKAN_HPP_CONSTEXPR FragmentShadingRateAttachmentInfoKHR( const VULKAN_HPP_NAMESPACE::AttachmentReference2 * pFragmentShadingRateAttachment_ = {},
  26137. VULKAN_HPP_NAMESPACE::Extent2D shadingRateAttachmentTexelSize_ = {},
  26138. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  26139. : pNext( pNext_ )
  26140. , pFragmentShadingRateAttachment( pFragmentShadingRateAttachment_ )
  26141. , shadingRateAttachmentTexelSize( shadingRateAttachmentTexelSize_ )
  26142. {
  26143. }
  26144. VULKAN_HPP_CONSTEXPR FragmentShadingRateAttachmentInfoKHR( FragmentShadingRateAttachmentInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  26145. FragmentShadingRateAttachmentInfoKHR( VkFragmentShadingRateAttachmentInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  26146. : FragmentShadingRateAttachmentInfoKHR( *reinterpret_cast<FragmentShadingRateAttachmentInfoKHR const *>( &rhs ) )
  26147. {
  26148. }
  26149. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  26150. FragmentShadingRateAttachmentInfoKHR & operator=( FragmentShadingRateAttachmentInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  26151. FragmentShadingRateAttachmentInfoKHR & operator=( VkFragmentShadingRateAttachmentInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  26152. {
  26153. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::FragmentShadingRateAttachmentInfoKHR const *>( &rhs );
  26154. return *this;
  26155. }
  26156. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  26157. VULKAN_HPP_CONSTEXPR_14 FragmentShadingRateAttachmentInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  26158. {
  26159. pNext = pNext_;
  26160. return *this;
  26161. }
  26162. VULKAN_HPP_CONSTEXPR_14 FragmentShadingRateAttachmentInfoKHR &
  26163. setPFragmentShadingRateAttachment( const VULKAN_HPP_NAMESPACE::AttachmentReference2 * pFragmentShadingRateAttachment_ ) VULKAN_HPP_NOEXCEPT
  26164. {
  26165. pFragmentShadingRateAttachment = pFragmentShadingRateAttachment_;
  26166. return *this;
  26167. }
  26168. VULKAN_HPP_CONSTEXPR_14 FragmentShadingRateAttachmentInfoKHR &
  26169. setShadingRateAttachmentTexelSize( VULKAN_HPP_NAMESPACE::Extent2D const & shadingRateAttachmentTexelSize_ ) VULKAN_HPP_NOEXCEPT
  26170. {
  26171. shadingRateAttachmentTexelSize = shadingRateAttachmentTexelSize_;
  26172. return *this;
  26173. }
  26174. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  26175. operator VkFragmentShadingRateAttachmentInfoKHR const &() const VULKAN_HPP_NOEXCEPT
  26176. {
  26177. return *reinterpret_cast<const VkFragmentShadingRateAttachmentInfoKHR *>( this );
  26178. }
  26179. operator VkFragmentShadingRateAttachmentInfoKHR &() VULKAN_HPP_NOEXCEPT
  26180. {
  26181. return *reinterpret_cast<VkFragmentShadingRateAttachmentInfoKHR *>( this );
  26182. }
  26183. #if defined( VULKAN_HPP_USE_REFLECT )
  26184. # if 14 <= VULKAN_HPP_CPP_VERSION
  26185. auto
  26186. # else
  26187. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  26188. const void * const &,
  26189. const VULKAN_HPP_NAMESPACE::AttachmentReference2 * const &,
  26190. VULKAN_HPP_NAMESPACE::Extent2D const &>
  26191. # endif
  26192. reflect() const VULKAN_HPP_NOEXCEPT
  26193. {
  26194. return std::tie( sType, pNext, pFragmentShadingRateAttachment, shadingRateAttachmentTexelSize );
  26195. }
  26196. #endif
  26197. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  26198. auto operator<=>( FragmentShadingRateAttachmentInfoKHR const & ) const = default;
  26199. #else
  26200. bool operator==( FragmentShadingRateAttachmentInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  26201. {
  26202. # if defined( VULKAN_HPP_USE_REFLECT )
  26203. return this->reflect() == rhs.reflect();
  26204. # else
  26205. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( pFragmentShadingRateAttachment == rhs.pFragmentShadingRateAttachment ) &&
  26206. ( shadingRateAttachmentTexelSize == rhs.shadingRateAttachmentTexelSize );
  26207. # endif
  26208. }
  26209. bool operator!=( FragmentShadingRateAttachmentInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  26210. {
  26211. return !operator==( rhs );
  26212. }
  26213. #endif
  26214. public:
  26215. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eFragmentShadingRateAttachmentInfoKHR;
  26216. const void * pNext = {};
  26217. const VULKAN_HPP_NAMESPACE::AttachmentReference2 * pFragmentShadingRateAttachment = {};
  26218. VULKAN_HPP_NAMESPACE::Extent2D shadingRateAttachmentTexelSize = {};
  26219. };
  26220. template <>
  26221. struct CppType<StructureType, StructureType::eFragmentShadingRateAttachmentInfoKHR>
  26222. {
  26223. using Type = FragmentShadingRateAttachmentInfoKHR;
  26224. };
  26225. struct FramebufferAttachmentImageInfo
  26226. {
  26227. using NativeType = VkFramebufferAttachmentImageInfo;
  26228. static const bool allowDuplicate = false;
  26229. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eFramebufferAttachmentImageInfo;
  26230. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  26231. VULKAN_HPP_CONSTEXPR FramebufferAttachmentImageInfo( VULKAN_HPP_NAMESPACE::ImageCreateFlags flags_ = {},
  26232. VULKAN_HPP_NAMESPACE::ImageUsageFlags usage_ = {},
  26233. uint32_t width_ = {},
  26234. uint32_t height_ = {},
  26235. uint32_t layerCount_ = {},
  26236. uint32_t viewFormatCount_ = {},
  26237. const VULKAN_HPP_NAMESPACE::Format * pViewFormats_ = {},
  26238. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  26239. : pNext( pNext_ )
  26240. , flags( flags_ )
  26241. , usage( usage_ )
  26242. , width( width_ )
  26243. , height( height_ )
  26244. , layerCount( layerCount_ )
  26245. , viewFormatCount( viewFormatCount_ )
  26246. , pViewFormats( pViewFormats_ )
  26247. {
  26248. }
  26249. VULKAN_HPP_CONSTEXPR FramebufferAttachmentImageInfo( FramebufferAttachmentImageInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  26250. FramebufferAttachmentImageInfo( VkFramebufferAttachmentImageInfo const & rhs ) VULKAN_HPP_NOEXCEPT
  26251. : FramebufferAttachmentImageInfo( *reinterpret_cast<FramebufferAttachmentImageInfo const *>( &rhs ) )
  26252. {
  26253. }
  26254. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  26255. FramebufferAttachmentImageInfo( VULKAN_HPP_NAMESPACE::ImageCreateFlags flags_,
  26256. VULKAN_HPP_NAMESPACE::ImageUsageFlags usage_,
  26257. uint32_t width_,
  26258. uint32_t height_,
  26259. uint32_t layerCount_,
  26260. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::Format> const & viewFormats_,
  26261. const void * pNext_ = nullptr )
  26262. : pNext( pNext_ )
  26263. , flags( flags_ )
  26264. , usage( usage_ )
  26265. , width( width_ )
  26266. , height( height_ )
  26267. , layerCount( layerCount_ )
  26268. , viewFormatCount( static_cast<uint32_t>( viewFormats_.size() ) )
  26269. , pViewFormats( viewFormats_.data() )
  26270. {
  26271. }
  26272. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  26273. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  26274. FramebufferAttachmentImageInfo & operator=( FramebufferAttachmentImageInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  26275. FramebufferAttachmentImageInfo & operator=( VkFramebufferAttachmentImageInfo const & rhs ) VULKAN_HPP_NOEXCEPT
  26276. {
  26277. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::FramebufferAttachmentImageInfo const *>( &rhs );
  26278. return *this;
  26279. }
  26280. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  26281. VULKAN_HPP_CONSTEXPR_14 FramebufferAttachmentImageInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  26282. {
  26283. pNext = pNext_;
  26284. return *this;
  26285. }
  26286. VULKAN_HPP_CONSTEXPR_14 FramebufferAttachmentImageInfo & setFlags( VULKAN_HPP_NAMESPACE::ImageCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT
  26287. {
  26288. flags = flags_;
  26289. return *this;
  26290. }
  26291. VULKAN_HPP_CONSTEXPR_14 FramebufferAttachmentImageInfo & setUsage( VULKAN_HPP_NAMESPACE::ImageUsageFlags usage_ ) VULKAN_HPP_NOEXCEPT
  26292. {
  26293. usage = usage_;
  26294. return *this;
  26295. }
  26296. VULKAN_HPP_CONSTEXPR_14 FramebufferAttachmentImageInfo & setWidth( uint32_t width_ ) VULKAN_HPP_NOEXCEPT
  26297. {
  26298. width = width_;
  26299. return *this;
  26300. }
  26301. VULKAN_HPP_CONSTEXPR_14 FramebufferAttachmentImageInfo & setHeight( uint32_t height_ ) VULKAN_HPP_NOEXCEPT
  26302. {
  26303. height = height_;
  26304. return *this;
  26305. }
  26306. VULKAN_HPP_CONSTEXPR_14 FramebufferAttachmentImageInfo & setLayerCount( uint32_t layerCount_ ) VULKAN_HPP_NOEXCEPT
  26307. {
  26308. layerCount = layerCount_;
  26309. return *this;
  26310. }
  26311. VULKAN_HPP_CONSTEXPR_14 FramebufferAttachmentImageInfo & setViewFormatCount( uint32_t viewFormatCount_ ) VULKAN_HPP_NOEXCEPT
  26312. {
  26313. viewFormatCount = viewFormatCount_;
  26314. return *this;
  26315. }
  26316. VULKAN_HPP_CONSTEXPR_14 FramebufferAttachmentImageInfo & setPViewFormats( const VULKAN_HPP_NAMESPACE::Format * pViewFormats_ ) VULKAN_HPP_NOEXCEPT
  26317. {
  26318. pViewFormats = pViewFormats_;
  26319. return *this;
  26320. }
  26321. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  26322. FramebufferAttachmentImageInfo &
  26323. setViewFormats( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::Format> const & viewFormats_ ) VULKAN_HPP_NOEXCEPT
  26324. {
  26325. viewFormatCount = static_cast<uint32_t>( viewFormats_.size() );
  26326. pViewFormats = viewFormats_.data();
  26327. return *this;
  26328. }
  26329. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  26330. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  26331. operator VkFramebufferAttachmentImageInfo const &() const VULKAN_HPP_NOEXCEPT
  26332. {
  26333. return *reinterpret_cast<const VkFramebufferAttachmentImageInfo *>( this );
  26334. }
  26335. operator VkFramebufferAttachmentImageInfo &() VULKAN_HPP_NOEXCEPT
  26336. {
  26337. return *reinterpret_cast<VkFramebufferAttachmentImageInfo *>( this );
  26338. }
  26339. #if defined( VULKAN_HPP_USE_REFLECT )
  26340. # if 14 <= VULKAN_HPP_CPP_VERSION
  26341. auto
  26342. # else
  26343. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  26344. const void * const &,
  26345. VULKAN_HPP_NAMESPACE::ImageCreateFlags const &,
  26346. VULKAN_HPP_NAMESPACE::ImageUsageFlags const &,
  26347. uint32_t const &,
  26348. uint32_t const &,
  26349. uint32_t const &,
  26350. uint32_t const &,
  26351. const VULKAN_HPP_NAMESPACE::Format * const &>
  26352. # endif
  26353. reflect() const VULKAN_HPP_NOEXCEPT
  26354. {
  26355. return std::tie( sType, pNext, flags, usage, width, height, layerCount, viewFormatCount, pViewFormats );
  26356. }
  26357. #endif
  26358. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  26359. auto operator<=>( FramebufferAttachmentImageInfo const & ) const = default;
  26360. #else
  26361. bool operator==( FramebufferAttachmentImageInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  26362. {
  26363. # if defined( VULKAN_HPP_USE_REFLECT )
  26364. return this->reflect() == rhs.reflect();
  26365. # else
  26366. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( flags == rhs.flags ) && ( usage == rhs.usage ) && ( width == rhs.width ) &&
  26367. ( height == rhs.height ) && ( layerCount == rhs.layerCount ) && ( viewFormatCount == rhs.viewFormatCount ) && ( pViewFormats == rhs.pViewFormats );
  26368. # endif
  26369. }
  26370. bool operator!=( FramebufferAttachmentImageInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  26371. {
  26372. return !operator==( rhs );
  26373. }
  26374. #endif
  26375. public:
  26376. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eFramebufferAttachmentImageInfo;
  26377. const void * pNext = {};
  26378. VULKAN_HPP_NAMESPACE::ImageCreateFlags flags = {};
  26379. VULKAN_HPP_NAMESPACE::ImageUsageFlags usage = {};
  26380. uint32_t width = {};
  26381. uint32_t height = {};
  26382. uint32_t layerCount = {};
  26383. uint32_t viewFormatCount = {};
  26384. const VULKAN_HPP_NAMESPACE::Format * pViewFormats = {};
  26385. };
  26386. template <>
  26387. struct CppType<StructureType, StructureType::eFramebufferAttachmentImageInfo>
  26388. {
  26389. using Type = FramebufferAttachmentImageInfo;
  26390. };
  26391. using FramebufferAttachmentImageInfoKHR = FramebufferAttachmentImageInfo;
  26392. struct FramebufferAttachmentsCreateInfo
  26393. {
  26394. using NativeType = VkFramebufferAttachmentsCreateInfo;
  26395. static const bool allowDuplicate = false;
  26396. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eFramebufferAttachmentsCreateInfo;
  26397. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  26398. VULKAN_HPP_CONSTEXPR FramebufferAttachmentsCreateInfo( uint32_t attachmentImageInfoCount_ = {},
  26399. const VULKAN_HPP_NAMESPACE::FramebufferAttachmentImageInfo * pAttachmentImageInfos_ = {},
  26400. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  26401. : pNext( pNext_ )
  26402. , attachmentImageInfoCount( attachmentImageInfoCount_ )
  26403. , pAttachmentImageInfos( pAttachmentImageInfos_ )
  26404. {
  26405. }
  26406. VULKAN_HPP_CONSTEXPR FramebufferAttachmentsCreateInfo( FramebufferAttachmentsCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  26407. FramebufferAttachmentsCreateInfo( VkFramebufferAttachmentsCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
  26408. : FramebufferAttachmentsCreateInfo( *reinterpret_cast<FramebufferAttachmentsCreateInfo const *>( &rhs ) )
  26409. {
  26410. }
  26411. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  26412. FramebufferAttachmentsCreateInfo(
  26413. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::FramebufferAttachmentImageInfo> const & attachmentImageInfos_,
  26414. const void * pNext_ = nullptr )
  26415. : pNext( pNext_ )
  26416. , attachmentImageInfoCount( static_cast<uint32_t>( attachmentImageInfos_.size() ) )
  26417. , pAttachmentImageInfos( attachmentImageInfos_.data() )
  26418. {
  26419. }
  26420. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  26421. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  26422. FramebufferAttachmentsCreateInfo & operator=( FramebufferAttachmentsCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  26423. FramebufferAttachmentsCreateInfo & operator=( VkFramebufferAttachmentsCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
  26424. {
  26425. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::FramebufferAttachmentsCreateInfo const *>( &rhs );
  26426. return *this;
  26427. }
  26428. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  26429. VULKAN_HPP_CONSTEXPR_14 FramebufferAttachmentsCreateInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  26430. {
  26431. pNext = pNext_;
  26432. return *this;
  26433. }
  26434. VULKAN_HPP_CONSTEXPR_14 FramebufferAttachmentsCreateInfo & setAttachmentImageInfoCount( uint32_t attachmentImageInfoCount_ ) VULKAN_HPP_NOEXCEPT
  26435. {
  26436. attachmentImageInfoCount = attachmentImageInfoCount_;
  26437. return *this;
  26438. }
  26439. VULKAN_HPP_CONSTEXPR_14 FramebufferAttachmentsCreateInfo &
  26440. setPAttachmentImageInfos( const VULKAN_HPP_NAMESPACE::FramebufferAttachmentImageInfo * pAttachmentImageInfos_ ) VULKAN_HPP_NOEXCEPT
  26441. {
  26442. pAttachmentImageInfos = pAttachmentImageInfos_;
  26443. return *this;
  26444. }
  26445. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  26446. FramebufferAttachmentsCreateInfo & setAttachmentImageInfos(
  26447. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::FramebufferAttachmentImageInfo> const & attachmentImageInfos_ )
  26448. VULKAN_HPP_NOEXCEPT
  26449. {
  26450. attachmentImageInfoCount = static_cast<uint32_t>( attachmentImageInfos_.size() );
  26451. pAttachmentImageInfos = attachmentImageInfos_.data();
  26452. return *this;
  26453. }
  26454. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  26455. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  26456. operator VkFramebufferAttachmentsCreateInfo const &() const VULKAN_HPP_NOEXCEPT
  26457. {
  26458. return *reinterpret_cast<const VkFramebufferAttachmentsCreateInfo *>( this );
  26459. }
  26460. operator VkFramebufferAttachmentsCreateInfo &() VULKAN_HPP_NOEXCEPT
  26461. {
  26462. return *reinterpret_cast<VkFramebufferAttachmentsCreateInfo *>( this );
  26463. }
  26464. #if defined( VULKAN_HPP_USE_REFLECT )
  26465. # if 14 <= VULKAN_HPP_CPP_VERSION
  26466. auto
  26467. # else
  26468. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  26469. const void * const &,
  26470. uint32_t const &,
  26471. const VULKAN_HPP_NAMESPACE::FramebufferAttachmentImageInfo * const &>
  26472. # endif
  26473. reflect() const VULKAN_HPP_NOEXCEPT
  26474. {
  26475. return std::tie( sType, pNext, attachmentImageInfoCount, pAttachmentImageInfos );
  26476. }
  26477. #endif
  26478. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  26479. auto operator<=>( FramebufferAttachmentsCreateInfo const & ) const = default;
  26480. #else
  26481. bool operator==( FramebufferAttachmentsCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  26482. {
  26483. # if defined( VULKAN_HPP_USE_REFLECT )
  26484. return this->reflect() == rhs.reflect();
  26485. # else
  26486. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( attachmentImageInfoCount == rhs.attachmentImageInfoCount ) &&
  26487. ( pAttachmentImageInfos == rhs.pAttachmentImageInfos );
  26488. # endif
  26489. }
  26490. bool operator!=( FramebufferAttachmentsCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  26491. {
  26492. return !operator==( rhs );
  26493. }
  26494. #endif
  26495. public:
  26496. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eFramebufferAttachmentsCreateInfo;
  26497. const void * pNext = {};
  26498. uint32_t attachmentImageInfoCount = {};
  26499. const VULKAN_HPP_NAMESPACE::FramebufferAttachmentImageInfo * pAttachmentImageInfos = {};
  26500. };
  26501. template <>
  26502. struct CppType<StructureType, StructureType::eFramebufferAttachmentsCreateInfo>
  26503. {
  26504. using Type = FramebufferAttachmentsCreateInfo;
  26505. };
  26506. using FramebufferAttachmentsCreateInfoKHR = FramebufferAttachmentsCreateInfo;
  26507. struct FramebufferCreateInfo
  26508. {
  26509. using NativeType = VkFramebufferCreateInfo;
  26510. static const bool allowDuplicate = false;
  26511. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eFramebufferCreateInfo;
  26512. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  26513. VULKAN_HPP_CONSTEXPR FramebufferCreateInfo( VULKAN_HPP_NAMESPACE::FramebufferCreateFlags flags_ = {},
  26514. VULKAN_HPP_NAMESPACE::RenderPass renderPass_ = {},
  26515. uint32_t attachmentCount_ = {},
  26516. const VULKAN_HPP_NAMESPACE::ImageView * pAttachments_ = {},
  26517. uint32_t width_ = {},
  26518. uint32_t height_ = {},
  26519. uint32_t layers_ = {},
  26520. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  26521. : pNext( pNext_ )
  26522. , flags( flags_ )
  26523. , renderPass( renderPass_ )
  26524. , attachmentCount( attachmentCount_ )
  26525. , pAttachments( pAttachments_ )
  26526. , width( width_ )
  26527. , height( height_ )
  26528. , layers( layers_ )
  26529. {
  26530. }
  26531. VULKAN_HPP_CONSTEXPR FramebufferCreateInfo( FramebufferCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  26532. FramebufferCreateInfo( VkFramebufferCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
  26533. : FramebufferCreateInfo( *reinterpret_cast<FramebufferCreateInfo const *>( &rhs ) )
  26534. {
  26535. }
  26536. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  26537. FramebufferCreateInfo( VULKAN_HPP_NAMESPACE::FramebufferCreateFlags flags_,
  26538. VULKAN_HPP_NAMESPACE::RenderPass renderPass_,
  26539. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::ImageView> const & attachments_,
  26540. uint32_t width_ = {},
  26541. uint32_t height_ = {},
  26542. uint32_t layers_ = {},
  26543. const void * pNext_ = nullptr )
  26544. : pNext( pNext_ )
  26545. , flags( flags_ )
  26546. , renderPass( renderPass_ )
  26547. , attachmentCount( static_cast<uint32_t>( attachments_.size() ) )
  26548. , pAttachments( attachments_.data() )
  26549. , width( width_ )
  26550. , height( height_ )
  26551. , layers( layers_ )
  26552. {
  26553. }
  26554. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  26555. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  26556. FramebufferCreateInfo & operator=( FramebufferCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  26557. FramebufferCreateInfo & operator=( VkFramebufferCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
  26558. {
  26559. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::FramebufferCreateInfo const *>( &rhs );
  26560. return *this;
  26561. }
  26562. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  26563. VULKAN_HPP_CONSTEXPR_14 FramebufferCreateInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  26564. {
  26565. pNext = pNext_;
  26566. return *this;
  26567. }
  26568. VULKAN_HPP_CONSTEXPR_14 FramebufferCreateInfo & setFlags( VULKAN_HPP_NAMESPACE::FramebufferCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT
  26569. {
  26570. flags = flags_;
  26571. return *this;
  26572. }
  26573. VULKAN_HPP_CONSTEXPR_14 FramebufferCreateInfo & setRenderPass( VULKAN_HPP_NAMESPACE::RenderPass renderPass_ ) VULKAN_HPP_NOEXCEPT
  26574. {
  26575. renderPass = renderPass_;
  26576. return *this;
  26577. }
  26578. VULKAN_HPP_CONSTEXPR_14 FramebufferCreateInfo & setAttachmentCount( uint32_t attachmentCount_ ) VULKAN_HPP_NOEXCEPT
  26579. {
  26580. attachmentCount = attachmentCount_;
  26581. return *this;
  26582. }
  26583. VULKAN_HPP_CONSTEXPR_14 FramebufferCreateInfo & setPAttachments( const VULKAN_HPP_NAMESPACE::ImageView * pAttachments_ ) VULKAN_HPP_NOEXCEPT
  26584. {
  26585. pAttachments = pAttachments_;
  26586. return *this;
  26587. }
  26588. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  26589. FramebufferCreateInfo &
  26590. setAttachments( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::ImageView> const & attachments_ ) VULKAN_HPP_NOEXCEPT
  26591. {
  26592. attachmentCount = static_cast<uint32_t>( attachments_.size() );
  26593. pAttachments = attachments_.data();
  26594. return *this;
  26595. }
  26596. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  26597. VULKAN_HPP_CONSTEXPR_14 FramebufferCreateInfo & setWidth( uint32_t width_ ) VULKAN_HPP_NOEXCEPT
  26598. {
  26599. width = width_;
  26600. return *this;
  26601. }
  26602. VULKAN_HPP_CONSTEXPR_14 FramebufferCreateInfo & setHeight( uint32_t height_ ) VULKAN_HPP_NOEXCEPT
  26603. {
  26604. height = height_;
  26605. return *this;
  26606. }
  26607. VULKAN_HPP_CONSTEXPR_14 FramebufferCreateInfo & setLayers( uint32_t layers_ ) VULKAN_HPP_NOEXCEPT
  26608. {
  26609. layers = layers_;
  26610. return *this;
  26611. }
  26612. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  26613. operator VkFramebufferCreateInfo const &() const VULKAN_HPP_NOEXCEPT
  26614. {
  26615. return *reinterpret_cast<const VkFramebufferCreateInfo *>( this );
  26616. }
  26617. operator VkFramebufferCreateInfo &() VULKAN_HPP_NOEXCEPT
  26618. {
  26619. return *reinterpret_cast<VkFramebufferCreateInfo *>( this );
  26620. }
  26621. #if defined( VULKAN_HPP_USE_REFLECT )
  26622. # if 14 <= VULKAN_HPP_CPP_VERSION
  26623. auto
  26624. # else
  26625. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  26626. const void * const &,
  26627. VULKAN_HPP_NAMESPACE::FramebufferCreateFlags const &,
  26628. VULKAN_HPP_NAMESPACE::RenderPass const &,
  26629. uint32_t const &,
  26630. const VULKAN_HPP_NAMESPACE::ImageView * const &,
  26631. uint32_t const &,
  26632. uint32_t const &,
  26633. uint32_t const &>
  26634. # endif
  26635. reflect() const VULKAN_HPP_NOEXCEPT
  26636. {
  26637. return std::tie( sType, pNext, flags, renderPass, attachmentCount, pAttachments, width, height, layers );
  26638. }
  26639. #endif
  26640. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  26641. auto operator<=>( FramebufferCreateInfo const & ) const = default;
  26642. #else
  26643. bool operator==( FramebufferCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  26644. {
  26645. # if defined( VULKAN_HPP_USE_REFLECT )
  26646. return this->reflect() == rhs.reflect();
  26647. # else
  26648. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( flags == rhs.flags ) && ( renderPass == rhs.renderPass ) &&
  26649. ( attachmentCount == rhs.attachmentCount ) && ( pAttachments == rhs.pAttachments ) && ( width == rhs.width ) && ( height == rhs.height ) &&
  26650. ( layers == rhs.layers );
  26651. # endif
  26652. }
  26653. bool operator!=( FramebufferCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  26654. {
  26655. return !operator==( rhs );
  26656. }
  26657. #endif
  26658. public:
  26659. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eFramebufferCreateInfo;
  26660. const void * pNext = {};
  26661. VULKAN_HPP_NAMESPACE::FramebufferCreateFlags flags = {};
  26662. VULKAN_HPP_NAMESPACE::RenderPass renderPass = {};
  26663. uint32_t attachmentCount = {};
  26664. const VULKAN_HPP_NAMESPACE::ImageView * pAttachments = {};
  26665. uint32_t width = {};
  26666. uint32_t height = {};
  26667. uint32_t layers = {};
  26668. };
  26669. template <>
  26670. struct CppType<StructureType, StructureType::eFramebufferCreateInfo>
  26671. {
  26672. using Type = FramebufferCreateInfo;
  26673. };
  26674. struct FramebufferMixedSamplesCombinationNV
  26675. {
  26676. using NativeType = VkFramebufferMixedSamplesCombinationNV;
  26677. static const bool allowDuplicate = false;
  26678. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eFramebufferMixedSamplesCombinationNV;
  26679. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  26680. VULKAN_HPP_CONSTEXPR FramebufferMixedSamplesCombinationNV(
  26681. VULKAN_HPP_NAMESPACE::CoverageReductionModeNV coverageReductionMode_ = VULKAN_HPP_NAMESPACE::CoverageReductionModeNV::eMerge,
  26682. VULKAN_HPP_NAMESPACE::SampleCountFlagBits rasterizationSamples_ = VULKAN_HPP_NAMESPACE::SampleCountFlagBits::e1,
  26683. VULKAN_HPP_NAMESPACE::SampleCountFlags depthStencilSamples_ = {},
  26684. VULKAN_HPP_NAMESPACE::SampleCountFlags colorSamples_ = {},
  26685. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  26686. : pNext( pNext_ )
  26687. , coverageReductionMode( coverageReductionMode_ )
  26688. , rasterizationSamples( rasterizationSamples_ )
  26689. , depthStencilSamples( depthStencilSamples_ )
  26690. , colorSamples( colorSamples_ )
  26691. {
  26692. }
  26693. VULKAN_HPP_CONSTEXPR FramebufferMixedSamplesCombinationNV( FramebufferMixedSamplesCombinationNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  26694. FramebufferMixedSamplesCombinationNV( VkFramebufferMixedSamplesCombinationNV const & rhs ) VULKAN_HPP_NOEXCEPT
  26695. : FramebufferMixedSamplesCombinationNV( *reinterpret_cast<FramebufferMixedSamplesCombinationNV const *>( &rhs ) )
  26696. {
  26697. }
  26698. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  26699. FramebufferMixedSamplesCombinationNV & operator=( FramebufferMixedSamplesCombinationNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  26700. FramebufferMixedSamplesCombinationNV & operator=( VkFramebufferMixedSamplesCombinationNV const & rhs ) VULKAN_HPP_NOEXCEPT
  26701. {
  26702. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::FramebufferMixedSamplesCombinationNV const *>( &rhs );
  26703. return *this;
  26704. }
  26705. operator VkFramebufferMixedSamplesCombinationNV const &() const VULKAN_HPP_NOEXCEPT
  26706. {
  26707. return *reinterpret_cast<const VkFramebufferMixedSamplesCombinationNV *>( this );
  26708. }
  26709. operator VkFramebufferMixedSamplesCombinationNV &() VULKAN_HPP_NOEXCEPT
  26710. {
  26711. return *reinterpret_cast<VkFramebufferMixedSamplesCombinationNV *>( this );
  26712. }
  26713. #if defined( VULKAN_HPP_USE_REFLECT )
  26714. # if 14 <= VULKAN_HPP_CPP_VERSION
  26715. auto
  26716. # else
  26717. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  26718. void * const &,
  26719. VULKAN_HPP_NAMESPACE::CoverageReductionModeNV const &,
  26720. VULKAN_HPP_NAMESPACE::SampleCountFlagBits const &,
  26721. VULKAN_HPP_NAMESPACE::SampleCountFlags const &,
  26722. VULKAN_HPP_NAMESPACE::SampleCountFlags const &>
  26723. # endif
  26724. reflect() const VULKAN_HPP_NOEXCEPT
  26725. {
  26726. return std::tie( sType, pNext, coverageReductionMode, rasterizationSamples, depthStencilSamples, colorSamples );
  26727. }
  26728. #endif
  26729. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  26730. auto operator<=>( FramebufferMixedSamplesCombinationNV const & ) const = default;
  26731. #else
  26732. bool operator==( FramebufferMixedSamplesCombinationNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  26733. {
  26734. # if defined( VULKAN_HPP_USE_REFLECT )
  26735. return this->reflect() == rhs.reflect();
  26736. # else
  26737. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( coverageReductionMode == rhs.coverageReductionMode ) &&
  26738. ( rasterizationSamples == rhs.rasterizationSamples ) && ( depthStencilSamples == rhs.depthStencilSamples ) && ( colorSamples == rhs.colorSamples );
  26739. # endif
  26740. }
  26741. bool operator!=( FramebufferMixedSamplesCombinationNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  26742. {
  26743. return !operator==( rhs );
  26744. }
  26745. #endif
  26746. public:
  26747. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eFramebufferMixedSamplesCombinationNV;
  26748. void * pNext = {};
  26749. VULKAN_HPP_NAMESPACE::CoverageReductionModeNV coverageReductionMode = VULKAN_HPP_NAMESPACE::CoverageReductionModeNV::eMerge;
  26750. VULKAN_HPP_NAMESPACE::SampleCountFlagBits rasterizationSamples = VULKAN_HPP_NAMESPACE::SampleCountFlagBits::e1;
  26751. VULKAN_HPP_NAMESPACE::SampleCountFlags depthStencilSamples = {};
  26752. VULKAN_HPP_NAMESPACE::SampleCountFlags colorSamples = {};
  26753. };
  26754. template <>
  26755. struct CppType<StructureType, StructureType::eFramebufferMixedSamplesCombinationNV>
  26756. {
  26757. using Type = FramebufferMixedSamplesCombinationNV;
  26758. };
  26759. struct IndirectCommandsStreamNV
  26760. {
  26761. using NativeType = VkIndirectCommandsStreamNV;
  26762. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  26763. VULKAN_HPP_CONSTEXPR IndirectCommandsStreamNV( VULKAN_HPP_NAMESPACE::Buffer buffer_ = {},
  26764. VULKAN_HPP_NAMESPACE::DeviceSize offset_ = {} ) VULKAN_HPP_NOEXCEPT
  26765. : buffer( buffer_ )
  26766. , offset( offset_ )
  26767. {
  26768. }
  26769. VULKAN_HPP_CONSTEXPR IndirectCommandsStreamNV( IndirectCommandsStreamNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  26770. IndirectCommandsStreamNV( VkIndirectCommandsStreamNV const & rhs ) VULKAN_HPP_NOEXCEPT
  26771. : IndirectCommandsStreamNV( *reinterpret_cast<IndirectCommandsStreamNV const *>( &rhs ) )
  26772. {
  26773. }
  26774. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  26775. IndirectCommandsStreamNV & operator=( IndirectCommandsStreamNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  26776. IndirectCommandsStreamNV & operator=( VkIndirectCommandsStreamNV const & rhs ) VULKAN_HPP_NOEXCEPT
  26777. {
  26778. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::IndirectCommandsStreamNV const *>( &rhs );
  26779. return *this;
  26780. }
  26781. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  26782. VULKAN_HPP_CONSTEXPR_14 IndirectCommandsStreamNV & setBuffer( VULKAN_HPP_NAMESPACE::Buffer buffer_ ) VULKAN_HPP_NOEXCEPT
  26783. {
  26784. buffer = buffer_;
  26785. return *this;
  26786. }
  26787. VULKAN_HPP_CONSTEXPR_14 IndirectCommandsStreamNV & setOffset( VULKAN_HPP_NAMESPACE::DeviceSize offset_ ) VULKAN_HPP_NOEXCEPT
  26788. {
  26789. offset = offset_;
  26790. return *this;
  26791. }
  26792. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  26793. operator VkIndirectCommandsStreamNV const &() const VULKAN_HPP_NOEXCEPT
  26794. {
  26795. return *reinterpret_cast<const VkIndirectCommandsStreamNV *>( this );
  26796. }
  26797. operator VkIndirectCommandsStreamNV &() VULKAN_HPP_NOEXCEPT
  26798. {
  26799. return *reinterpret_cast<VkIndirectCommandsStreamNV *>( this );
  26800. }
  26801. #if defined( VULKAN_HPP_USE_REFLECT )
  26802. # if 14 <= VULKAN_HPP_CPP_VERSION
  26803. auto
  26804. # else
  26805. std::tuple<VULKAN_HPP_NAMESPACE::Buffer const &, VULKAN_HPP_NAMESPACE::DeviceSize const &>
  26806. # endif
  26807. reflect() const VULKAN_HPP_NOEXCEPT
  26808. {
  26809. return std::tie( buffer, offset );
  26810. }
  26811. #endif
  26812. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  26813. auto operator<=>( IndirectCommandsStreamNV const & ) const = default;
  26814. #else
  26815. bool operator==( IndirectCommandsStreamNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  26816. {
  26817. # if defined( VULKAN_HPP_USE_REFLECT )
  26818. return this->reflect() == rhs.reflect();
  26819. # else
  26820. return ( buffer == rhs.buffer ) && ( offset == rhs.offset );
  26821. # endif
  26822. }
  26823. bool operator!=( IndirectCommandsStreamNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  26824. {
  26825. return !operator==( rhs );
  26826. }
  26827. #endif
  26828. public:
  26829. VULKAN_HPP_NAMESPACE::Buffer buffer = {};
  26830. VULKAN_HPP_NAMESPACE::DeviceSize offset = {};
  26831. };
  26832. struct GeneratedCommandsInfoNV
  26833. {
  26834. using NativeType = VkGeneratedCommandsInfoNV;
  26835. static const bool allowDuplicate = false;
  26836. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eGeneratedCommandsInfoNV;
  26837. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  26838. VULKAN_HPP_CONSTEXPR
  26839. GeneratedCommandsInfoNV( VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint_ = VULKAN_HPP_NAMESPACE::PipelineBindPoint::eGraphics,
  26840. VULKAN_HPP_NAMESPACE::Pipeline pipeline_ = {},
  26841. VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutNV indirectCommandsLayout_ = {},
  26842. uint32_t streamCount_ = {},
  26843. const VULKAN_HPP_NAMESPACE::IndirectCommandsStreamNV * pStreams_ = {},
  26844. uint32_t sequencesCount_ = {},
  26845. VULKAN_HPP_NAMESPACE::Buffer preprocessBuffer_ = {},
  26846. VULKAN_HPP_NAMESPACE::DeviceSize preprocessOffset_ = {},
  26847. VULKAN_HPP_NAMESPACE::DeviceSize preprocessSize_ = {},
  26848. VULKAN_HPP_NAMESPACE::Buffer sequencesCountBuffer_ = {},
  26849. VULKAN_HPP_NAMESPACE::DeviceSize sequencesCountOffset_ = {},
  26850. VULKAN_HPP_NAMESPACE::Buffer sequencesIndexBuffer_ = {},
  26851. VULKAN_HPP_NAMESPACE::DeviceSize sequencesIndexOffset_ = {},
  26852. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  26853. : pNext( pNext_ )
  26854. , pipelineBindPoint( pipelineBindPoint_ )
  26855. , pipeline( pipeline_ )
  26856. , indirectCommandsLayout( indirectCommandsLayout_ )
  26857. , streamCount( streamCount_ )
  26858. , pStreams( pStreams_ )
  26859. , sequencesCount( sequencesCount_ )
  26860. , preprocessBuffer( preprocessBuffer_ )
  26861. , preprocessOffset( preprocessOffset_ )
  26862. , preprocessSize( preprocessSize_ )
  26863. , sequencesCountBuffer( sequencesCountBuffer_ )
  26864. , sequencesCountOffset( sequencesCountOffset_ )
  26865. , sequencesIndexBuffer( sequencesIndexBuffer_ )
  26866. , sequencesIndexOffset( sequencesIndexOffset_ )
  26867. {
  26868. }
  26869. VULKAN_HPP_CONSTEXPR GeneratedCommandsInfoNV( GeneratedCommandsInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  26870. GeneratedCommandsInfoNV( VkGeneratedCommandsInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
  26871. : GeneratedCommandsInfoNV( *reinterpret_cast<GeneratedCommandsInfoNV const *>( &rhs ) )
  26872. {
  26873. }
  26874. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  26875. GeneratedCommandsInfoNV( VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint_,
  26876. VULKAN_HPP_NAMESPACE::Pipeline pipeline_,
  26877. VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutNV indirectCommandsLayout_,
  26878. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::IndirectCommandsStreamNV> const & streams_,
  26879. uint32_t sequencesCount_ = {},
  26880. VULKAN_HPP_NAMESPACE::Buffer preprocessBuffer_ = {},
  26881. VULKAN_HPP_NAMESPACE::DeviceSize preprocessOffset_ = {},
  26882. VULKAN_HPP_NAMESPACE::DeviceSize preprocessSize_ = {},
  26883. VULKAN_HPP_NAMESPACE::Buffer sequencesCountBuffer_ = {},
  26884. VULKAN_HPP_NAMESPACE::DeviceSize sequencesCountOffset_ = {},
  26885. VULKAN_HPP_NAMESPACE::Buffer sequencesIndexBuffer_ = {},
  26886. VULKAN_HPP_NAMESPACE::DeviceSize sequencesIndexOffset_ = {},
  26887. const void * pNext_ = nullptr )
  26888. : pNext( pNext_ )
  26889. , pipelineBindPoint( pipelineBindPoint_ )
  26890. , pipeline( pipeline_ )
  26891. , indirectCommandsLayout( indirectCommandsLayout_ )
  26892. , streamCount( static_cast<uint32_t>( streams_.size() ) )
  26893. , pStreams( streams_.data() )
  26894. , sequencesCount( sequencesCount_ )
  26895. , preprocessBuffer( preprocessBuffer_ )
  26896. , preprocessOffset( preprocessOffset_ )
  26897. , preprocessSize( preprocessSize_ )
  26898. , sequencesCountBuffer( sequencesCountBuffer_ )
  26899. , sequencesCountOffset( sequencesCountOffset_ )
  26900. , sequencesIndexBuffer( sequencesIndexBuffer_ )
  26901. , sequencesIndexOffset( sequencesIndexOffset_ )
  26902. {
  26903. }
  26904. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  26905. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  26906. GeneratedCommandsInfoNV & operator=( GeneratedCommandsInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  26907. GeneratedCommandsInfoNV & operator=( VkGeneratedCommandsInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
  26908. {
  26909. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::GeneratedCommandsInfoNV const *>( &rhs );
  26910. return *this;
  26911. }
  26912. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  26913. VULKAN_HPP_CONSTEXPR_14 GeneratedCommandsInfoNV & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  26914. {
  26915. pNext = pNext_;
  26916. return *this;
  26917. }
  26918. VULKAN_HPP_CONSTEXPR_14 GeneratedCommandsInfoNV & setPipelineBindPoint( VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint_ ) VULKAN_HPP_NOEXCEPT
  26919. {
  26920. pipelineBindPoint = pipelineBindPoint_;
  26921. return *this;
  26922. }
  26923. VULKAN_HPP_CONSTEXPR_14 GeneratedCommandsInfoNV & setPipeline( VULKAN_HPP_NAMESPACE::Pipeline pipeline_ ) VULKAN_HPP_NOEXCEPT
  26924. {
  26925. pipeline = pipeline_;
  26926. return *this;
  26927. }
  26928. VULKAN_HPP_CONSTEXPR_14 GeneratedCommandsInfoNV &
  26929. setIndirectCommandsLayout( VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutNV indirectCommandsLayout_ ) VULKAN_HPP_NOEXCEPT
  26930. {
  26931. indirectCommandsLayout = indirectCommandsLayout_;
  26932. return *this;
  26933. }
  26934. VULKAN_HPP_CONSTEXPR_14 GeneratedCommandsInfoNV & setStreamCount( uint32_t streamCount_ ) VULKAN_HPP_NOEXCEPT
  26935. {
  26936. streamCount = streamCount_;
  26937. return *this;
  26938. }
  26939. VULKAN_HPP_CONSTEXPR_14 GeneratedCommandsInfoNV & setPStreams( const VULKAN_HPP_NAMESPACE::IndirectCommandsStreamNV * pStreams_ ) VULKAN_HPP_NOEXCEPT
  26940. {
  26941. pStreams = pStreams_;
  26942. return *this;
  26943. }
  26944. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  26945. GeneratedCommandsInfoNV &
  26946. setStreams( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::IndirectCommandsStreamNV> const & streams_ ) VULKAN_HPP_NOEXCEPT
  26947. {
  26948. streamCount = static_cast<uint32_t>( streams_.size() );
  26949. pStreams = streams_.data();
  26950. return *this;
  26951. }
  26952. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  26953. VULKAN_HPP_CONSTEXPR_14 GeneratedCommandsInfoNV & setSequencesCount( uint32_t sequencesCount_ ) VULKAN_HPP_NOEXCEPT
  26954. {
  26955. sequencesCount = sequencesCount_;
  26956. return *this;
  26957. }
  26958. VULKAN_HPP_CONSTEXPR_14 GeneratedCommandsInfoNV & setPreprocessBuffer( VULKAN_HPP_NAMESPACE::Buffer preprocessBuffer_ ) VULKAN_HPP_NOEXCEPT
  26959. {
  26960. preprocessBuffer = preprocessBuffer_;
  26961. return *this;
  26962. }
  26963. VULKAN_HPP_CONSTEXPR_14 GeneratedCommandsInfoNV & setPreprocessOffset( VULKAN_HPP_NAMESPACE::DeviceSize preprocessOffset_ ) VULKAN_HPP_NOEXCEPT
  26964. {
  26965. preprocessOffset = preprocessOffset_;
  26966. return *this;
  26967. }
  26968. VULKAN_HPP_CONSTEXPR_14 GeneratedCommandsInfoNV & setPreprocessSize( VULKAN_HPP_NAMESPACE::DeviceSize preprocessSize_ ) VULKAN_HPP_NOEXCEPT
  26969. {
  26970. preprocessSize = preprocessSize_;
  26971. return *this;
  26972. }
  26973. VULKAN_HPP_CONSTEXPR_14 GeneratedCommandsInfoNV & setSequencesCountBuffer( VULKAN_HPP_NAMESPACE::Buffer sequencesCountBuffer_ ) VULKAN_HPP_NOEXCEPT
  26974. {
  26975. sequencesCountBuffer = sequencesCountBuffer_;
  26976. return *this;
  26977. }
  26978. VULKAN_HPP_CONSTEXPR_14 GeneratedCommandsInfoNV & setSequencesCountOffset( VULKAN_HPP_NAMESPACE::DeviceSize sequencesCountOffset_ ) VULKAN_HPP_NOEXCEPT
  26979. {
  26980. sequencesCountOffset = sequencesCountOffset_;
  26981. return *this;
  26982. }
  26983. VULKAN_HPP_CONSTEXPR_14 GeneratedCommandsInfoNV & setSequencesIndexBuffer( VULKAN_HPP_NAMESPACE::Buffer sequencesIndexBuffer_ ) VULKAN_HPP_NOEXCEPT
  26984. {
  26985. sequencesIndexBuffer = sequencesIndexBuffer_;
  26986. return *this;
  26987. }
  26988. VULKAN_HPP_CONSTEXPR_14 GeneratedCommandsInfoNV & setSequencesIndexOffset( VULKAN_HPP_NAMESPACE::DeviceSize sequencesIndexOffset_ ) VULKAN_HPP_NOEXCEPT
  26989. {
  26990. sequencesIndexOffset = sequencesIndexOffset_;
  26991. return *this;
  26992. }
  26993. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  26994. operator VkGeneratedCommandsInfoNV const &() const VULKAN_HPP_NOEXCEPT
  26995. {
  26996. return *reinterpret_cast<const VkGeneratedCommandsInfoNV *>( this );
  26997. }
  26998. operator VkGeneratedCommandsInfoNV &() VULKAN_HPP_NOEXCEPT
  26999. {
  27000. return *reinterpret_cast<VkGeneratedCommandsInfoNV *>( this );
  27001. }
  27002. #if defined( VULKAN_HPP_USE_REFLECT )
  27003. # if 14 <= VULKAN_HPP_CPP_VERSION
  27004. auto
  27005. # else
  27006. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  27007. const void * const &,
  27008. VULKAN_HPP_NAMESPACE::PipelineBindPoint const &,
  27009. VULKAN_HPP_NAMESPACE::Pipeline const &,
  27010. VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutNV const &,
  27011. uint32_t const &,
  27012. const VULKAN_HPP_NAMESPACE::IndirectCommandsStreamNV * const &,
  27013. uint32_t const &,
  27014. VULKAN_HPP_NAMESPACE::Buffer const &,
  27015. VULKAN_HPP_NAMESPACE::DeviceSize const &,
  27016. VULKAN_HPP_NAMESPACE::DeviceSize const &,
  27017. VULKAN_HPP_NAMESPACE::Buffer const &,
  27018. VULKAN_HPP_NAMESPACE::DeviceSize const &,
  27019. VULKAN_HPP_NAMESPACE::Buffer const &,
  27020. VULKAN_HPP_NAMESPACE::DeviceSize const &>
  27021. # endif
  27022. reflect() const VULKAN_HPP_NOEXCEPT
  27023. {
  27024. return std::tie( sType,
  27025. pNext,
  27026. pipelineBindPoint,
  27027. pipeline,
  27028. indirectCommandsLayout,
  27029. streamCount,
  27030. pStreams,
  27031. sequencesCount,
  27032. preprocessBuffer,
  27033. preprocessOffset,
  27034. preprocessSize,
  27035. sequencesCountBuffer,
  27036. sequencesCountOffset,
  27037. sequencesIndexBuffer,
  27038. sequencesIndexOffset );
  27039. }
  27040. #endif
  27041. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  27042. auto operator<=>( GeneratedCommandsInfoNV const & ) const = default;
  27043. #else
  27044. bool operator==( GeneratedCommandsInfoNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  27045. {
  27046. # if defined( VULKAN_HPP_USE_REFLECT )
  27047. return this->reflect() == rhs.reflect();
  27048. # else
  27049. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( pipelineBindPoint == rhs.pipelineBindPoint ) && ( pipeline == rhs.pipeline ) &&
  27050. ( indirectCommandsLayout == rhs.indirectCommandsLayout ) && ( streamCount == rhs.streamCount ) && ( pStreams == rhs.pStreams ) &&
  27051. ( sequencesCount == rhs.sequencesCount ) && ( preprocessBuffer == rhs.preprocessBuffer ) && ( preprocessOffset == rhs.preprocessOffset ) &&
  27052. ( preprocessSize == rhs.preprocessSize ) && ( sequencesCountBuffer == rhs.sequencesCountBuffer ) &&
  27053. ( sequencesCountOffset == rhs.sequencesCountOffset ) && ( sequencesIndexBuffer == rhs.sequencesIndexBuffer ) &&
  27054. ( sequencesIndexOffset == rhs.sequencesIndexOffset );
  27055. # endif
  27056. }
  27057. bool operator!=( GeneratedCommandsInfoNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  27058. {
  27059. return !operator==( rhs );
  27060. }
  27061. #endif
  27062. public:
  27063. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eGeneratedCommandsInfoNV;
  27064. const void * pNext = {};
  27065. VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint = VULKAN_HPP_NAMESPACE::PipelineBindPoint::eGraphics;
  27066. VULKAN_HPP_NAMESPACE::Pipeline pipeline = {};
  27067. VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutNV indirectCommandsLayout = {};
  27068. uint32_t streamCount = {};
  27069. const VULKAN_HPP_NAMESPACE::IndirectCommandsStreamNV * pStreams = {};
  27070. uint32_t sequencesCount = {};
  27071. VULKAN_HPP_NAMESPACE::Buffer preprocessBuffer = {};
  27072. VULKAN_HPP_NAMESPACE::DeviceSize preprocessOffset = {};
  27073. VULKAN_HPP_NAMESPACE::DeviceSize preprocessSize = {};
  27074. VULKAN_HPP_NAMESPACE::Buffer sequencesCountBuffer = {};
  27075. VULKAN_HPP_NAMESPACE::DeviceSize sequencesCountOffset = {};
  27076. VULKAN_HPP_NAMESPACE::Buffer sequencesIndexBuffer = {};
  27077. VULKAN_HPP_NAMESPACE::DeviceSize sequencesIndexOffset = {};
  27078. };
  27079. template <>
  27080. struct CppType<StructureType, StructureType::eGeneratedCommandsInfoNV>
  27081. {
  27082. using Type = GeneratedCommandsInfoNV;
  27083. };
  27084. struct GeneratedCommandsMemoryRequirementsInfoNV
  27085. {
  27086. using NativeType = VkGeneratedCommandsMemoryRequirementsInfoNV;
  27087. static const bool allowDuplicate = false;
  27088. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eGeneratedCommandsMemoryRequirementsInfoNV;
  27089. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  27090. VULKAN_HPP_CONSTEXPR GeneratedCommandsMemoryRequirementsInfoNV(
  27091. VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint_ = VULKAN_HPP_NAMESPACE::PipelineBindPoint::eGraphics,
  27092. VULKAN_HPP_NAMESPACE::Pipeline pipeline_ = {},
  27093. VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutNV indirectCommandsLayout_ = {},
  27094. uint32_t maxSequencesCount_ = {},
  27095. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  27096. : pNext( pNext_ )
  27097. , pipelineBindPoint( pipelineBindPoint_ )
  27098. , pipeline( pipeline_ )
  27099. , indirectCommandsLayout( indirectCommandsLayout_ )
  27100. , maxSequencesCount( maxSequencesCount_ )
  27101. {
  27102. }
  27103. VULKAN_HPP_CONSTEXPR GeneratedCommandsMemoryRequirementsInfoNV( GeneratedCommandsMemoryRequirementsInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  27104. GeneratedCommandsMemoryRequirementsInfoNV( VkGeneratedCommandsMemoryRequirementsInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
  27105. : GeneratedCommandsMemoryRequirementsInfoNV( *reinterpret_cast<GeneratedCommandsMemoryRequirementsInfoNV const *>( &rhs ) )
  27106. {
  27107. }
  27108. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  27109. GeneratedCommandsMemoryRequirementsInfoNV & operator=( GeneratedCommandsMemoryRequirementsInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  27110. GeneratedCommandsMemoryRequirementsInfoNV & operator=( VkGeneratedCommandsMemoryRequirementsInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
  27111. {
  27112. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::GeneratedCommandsMemoryRequirementsInfoNV const *>( &rhs );
  27113. return *this;
  27114. }
  27115. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  27116. VULKAN_HPP_CONSTEXPR_14 GeneratedCommandsMemoryRequirementsInfoNV & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  27117. {
  27118. pNext = pNext_;
  27119. return *this;
  27120. }
  27121. VULKAN_HPP_CONSTEXPR_14 GeneratedCommandsMemoryRequirementsInfoNV &
  27122. setPipelineBindPoint( VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint_ ) VULKAN_HPP_NOEXCEPT
  27123. {
  27124. pipelineBindPoint = pipelineBindPoint_;
  27125. return *this;
  27126. }
  27127. VULKAN_HPP_CONSTEXPR_14 GeneratedCommandsMemoryRequirementsInfoNV & setPipeline( VULKAN_HPP_NAMESPACE::Pipeline pipeline_ ) VULKAN_HPP_NOEXCEPT
  27128. {
  27129. pipeline = pipeline_;
  27130. return *this;
  27131. }
  27132. VULKAN_HPP_CONSTEXPR_14 GeneratedCommandsMemoryRequirementsInfoNV &
  27133. setIndirectCommandsLayout( VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutNV indirectCommandsLayout_ ) VULKAN_HPP_NOEXCEPT
  27134. {
  27135. indirectCommandsLayout = indirectCommandsLayout_;
  27136. return *this;
  27137. }
  27138. VULKAN_HPP_CONSTEXPR_14 GeneratedCommandsMemoryRequirementsInfoNV & setMaxSequencesCount( uint32_t maxSequencesCount_ ) VULKAN_HPP_NOEXCEPT
  27139. {
  27140. maxSequencesCount = maxSequencesCount_;
  27141. return *this;
  27142. }
  27143. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  27144. operator VkGeneratedCommandsMemoryRequirementsInfoNV const &() const VULKAN_HPP_NOEXCEPT
  27145. {
  27146. return *reinterpret_cast<const VkGeneratedCommandsMemoryRequirementsInfoNV *>( this );
  27147. }
  27148. operator VkGeneratedCommandsMemoryRequirementsInfoNV &() VULKAN_HPP_NOEXCEPT
  27149. {
  27150. return *reinterpret_cast<VkGeneratedCommandsMemoryRequirementsInfoNV *>( this );
  27151. }
  27152. #if defined( VULKAN_HPP_USE_REFLECT )
  27153. # if 14 <= VULKAN_HPP_CPP_VERSION
  27154. auto
  27155. # else
  27156. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  27157. const void * const &,
  27158. VULKAN_HPP_NAMESPACE::PipelineBindPoint const &,
  27159. VULKAN_HPP_NAMESPACE::Pipeline const &,
  27160. VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutNV const &,
  27161. uint32_t const &>
  27162. # endif
  27163. reflect() const VULKAN_HPP_NOEXCEPT
  27164. {
  27165. return std::tie( sType, pNext, pipelineBindPoint, pipeline, indirectCommandsLayout, maxSequencesCount );
  27166. }
  27167. #endif
  27168. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  27169. auto operator<=>( GeneratedCommandsMemoryRequirementsInfoNV const & ) const = default;
  27170. #else
  27171. bool operator==( GeneratedCommandsMemoryRequirementsInfoNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  27172. {
  27173. # if defined( VULKAN_HPP_USE_REFLECT )
  27174. return this->reflect() == rhs.reflect();
  27175. # else
  27176. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( pipelineBindPoint == rhs.pipelineBindPoint ) && ( pipeline == rhs.pipeline ) &&
  27177. ( indirectCommandsLayout == rhs.indirectCommandsLayout ) && ( maxSequencesCount == rhs.maxSequencesCount );
  27178. # endif
  27179. }
  27180. bool operator!=( GeneratedCommandsMemoryRequirementsInfoNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  27181. {
  27182. return !operator==( rhs );
  27183. }
  27184. #endif
  27185. public:
  27186. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eGeneratedCommandsMemoryRequirementsInfoNV;
  27187. const void * pNext = {};
  27188. VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint = VULKAN_HPP_NAMESPACE::PipelineBindPoint::eGraphics;
  27189. VULKAN_HPP_NAMESPACE::Pipeline pipeline = {};
  27190. VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutNV indirectCommandsLayout = {};
  27191. uint32_t maxSequencesCount = {};
  27192. };
  27193. template <>
  27194. struct CppType<StructureType, StructureType::eGeneratedCommandsMemoryRequirementsInfoNV>
  27195. {
  27196. using Type = GeneratedCommandsMemoryRequirementsInfoNV;
  27197. };
  27198. struct VertexInputBindingDescription
  27199. {
  27200. using NativeType = VkVertexInputBindingDescription;
  27201. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  27202. VULKAN_HPP_CONSTEXPR
  27203. VertexInputBindingDescription( uint32_t binding_ = {},
  27204. uint32_t stride_ = {},
  27205. VULKAN_HPP_NAMESPACE::VertexInputRate inputRate_ = VULKAN_HPP_NAMESPACE::VertexInputRate::eVertex ) VULKAN_HPP_NOEXCEPT
  27206. : binding( binding_ )
  27207. , stride( stride_ )
  27208. , inputRate( inputRate_ )
  27209. {
  27210. }
  27211. VULKAN_HPP_CONSTEXPR VertexInputBindingDescription( VertexInputBindingDescription const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  27212. VertexInputBindingDescription( VkVertexInputBindingDescription const & rhs ) VULKAN_HPP_NOEXCEPT
  27213. : VertexInputBindingDescription( *reinterpret_cast<VertexInputBindingDescription const *>( &rhs ) )
  27214. {
  27215. }
  27216. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  27217. VertexInputBindingDescription & operator=( VertexInputBindingDescription const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  27218. VertexInputBindingDescription & operator=( VkVertexInputBindingDescription const & rhs ) VULKAN_HPP_NOEXCEPT
  27219. {
  27220. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::VertexInputBindingDescription const *>( &rhs );
  27221. return *this;
  27222. }
  27223. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  27224. VULKAN_HPP_CONSTEXPR_14 VertexInputBindingDescription & setBinding( uint32_t binding_ ) VULKAN_HPP_NOEXCEPT
  27225. {
  27226. binding = binding_;
  27227. return *this;
  27228. }
  27229. VULKAN_HPP_CONSTEXPR_14 VertexInputBindingDescription & setStride( uint32_t stride_ ) VULKAN_HPP_NOEXCEPT
  27230. {
  27231. stride = stride_;
  27232. return *this;
  27233. }
  27234. VULKAN_HPP_CONSTEXPR_14 VertexInputBindingDescription & setInputRate( VULKAN_HPP_NAMESPACE::VertexInputRate inputRate_ ) VULKAN_HPP_NOEXCEPT
  27235. {
  27236. inputRate = inputRate_;
  27237. return *this;
  27238. }
  27239. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  27240. operator VkVertexInputBindingDescription const &() const VULKAN_HPP_NOEXCEPT
  27241. {
  27242. return *reinterpret_cast<const VkVertexInputBindingDescription *>( this );
  27243. }
  27244. operator VkVertexInputBindingDescription &() VULKAN_HPP_NOEXCEPT
  27245. {
  27246. return *reinterpret_cast<VkVertexInputBindingDescription *>( this );
  27247. }
  27248. #if defined( VULKAN_HPP_USE_REFLECT )
  27249. # if 14 <= VULKAN_HPP_CPP_VERSION
  27250. auto
  27251. # else
  27252. std::tuple<uint32_t const &, uint32_t const &, VULKAN_HPP_NAMESPACE::VertexInputRate const &>
  27253. # endif
  27254. reflect() const VULKAN_HPP_NOEXCEPT
  27255. {
  27256. return std::tie( binding, stride, inputRate );
  27257. }
  27258. #endif
  27259. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  27260. auto operator<=>( VertexInputBindingDescription const & ) const = default;
  27261. #else
  27262. bool operator==( VertexInputBindingDescription const & rhs ) const VULKAN_HPP_NOEXCEPT
  27263. {
  27264. # if defined( VULKAN_HPP_USE_REFLECT )
  27265. return this->reflect() == rhs.reflect();
  27266. # else
  27267. return ( binding == rhs.binding ) && ( stride == rhs.stride ) && ( inputRate == rhs.inputRate );
  27268. # endif
  27269. }
  27270. bool operator!=( VertexInputBindingDescription const & rhs ) const VULKAN_HPP_NOEXCEPT
  27271. {
  27272. return !operator==( rhs );
  27273. }
  27274. #endif
  27275. public:
  27276. uint32_t binding = {};
  27277. uint32_t stride = {};
  27278. VULKAN_HPP_NAMESPACE::VertexInputRate inputRate = VULKAN_HPP_NAMESPACE::VertexInputRate::eVertex;
  27279. };
  27280. struct VertexInputAttributeDescription
  27281. {
  27282. using NativeType = VkVertexInputAttributeDescription;
  27283. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  27284. VULKAN_HPP_CONSTEXPR VertexInputAttributeDescription( uint32_t location_ = {},
  27285. uint32_t binding_ = {},
  27286. VULKAN_HPP_NAMESPACE::Format format_ = VULKAN_HPP_NAMESPACE::Format::eUndefined,
  27287. uint32_t offset_ = {} ) VULKAN_HPP_NOEXCEPT
  27288. : location( location_ )
  27289. , binding( binding_ )
  27290. , format( format_ )
  27291. , offset( offset_ )
  27292. {
  27293. }
  27294. VULKAN_HPP_CONSTEXPR VertexInputAttributeDescription( VertexInputAttributeDescription const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  27295. VertexInputAttributeDescription( VkVertexInputAttributeDescription const & rhs ) VULKAN_HPP_NOEXCEPT
  27296. : VertexInputAttributeDescription( *reinterpret_cast<VertexInputAttributeDescription const *>( &rhs ) )
  27297. {
  27298. }
  27299. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  27300. VertexInputAttributeDescription & operator=( VertexInputAttributeDescription const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  27301. VertexInputAttributeDescription & operator=( VkVertexInputAttributeDescription const & rhs ) VULKAN_HPP_NOEXCEPT
  27302. {
  27303. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::VertexInputAttributeDescription const *>( &rhs );
  27304. return *this;
  27305. }
  27306. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  27307. VULKAN_HPP_CONSTEXPR_14 VertexInputAttributeDescription & setLocation( uint32_t location_ ) VULKAN_HPP_NOEXCEPT
  27308. {
  27309. location = location_;
  27310. return *this;
  27311. }
  27312. VULKAN_HPP_CONSTEXPR_14 VertexInputAttributeDescription & setBinding( uint32_t binding_ ) VULKAN_HPP_NOEXCEPT
  27313. {
  27314. binding = binding_;
  27315. return *this;
  27316. }
  27317. VULKAN_HPP_CONSTEXPR_14 VertexInputAttributeDescription & setFormat( VULKAN_HPP_NAMESPACE::Format format_ ) VULKAN_HPP_NOEXCEPT
  27318. {
  27319. format = format_;
  27320. return *this;
  27321. }
  27322. VULKAN_HPP_CONSTEXPR_14 VertexInputAttributeDescription & setOffset( uint32_t offset_ ) VULKAN_HPP_NOEXCEPT
  27323. {
  27324. offset = offset_;
  27325. return *this;
  27326. }
  27327. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  27328. operator VkVertexInputAttributeDescription const &() const VULKAN_HPP_NOEXCEPT
  27329. {
  27330. return *reinterpret_cast<const VkVertexInputAttributeDescription *>( this );
  27331. }
  27332. operator VkVertexInputAttributeDescription &() VULKAN_HPP_NOEXCEPT
  27333. {
  27334. return *reinterpret_cast<VkVertexInputAttributeDescription *>( this );
  27335. }
  27336. #if defined( VULKAN_HPP_USE_REFLECT )
  27337. # if 14 <= VULKAN_HPP_CPP_VERSION
  27338. auto
  27339. # else
  27340. std::tuple<uint32_t const &, uint32_t const &, VULKAN_HPP_NAMESPACE::Format const &, uint32_t const &>
  27341. # endif
  27342. reflect() const VULKAN_HPP_NOEXCEPT
  27343. {
  27344. return std::tie( location, binding, format, offset );
  27345. }
  27346. #endif
  27347. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  27348. auto operator<=>( VertexInputAttributeDescription const & ) const = default;
  27349. #else
  27350. bool operator==( VertexInputAttributeDescription const & rhs ) const VULKAN_HPP_NOEXCEPT
  27351. {
  27352. # if defined( VULKAN_HPP_USE_REFLECT )
  27353. return this->reflect() == rhs.reflect();
  27354. # else
  27355. return ( location == rhs.location ) && ( binding == rhs.binding ) && ( format == rhs.format ) && ( offset == rhs.offset );
  27356. # endif
  27357. }
  27358. bool operator!=( VertexInputAttributeDescription const & rhs ) const VULKAN_HPP_NOEXCEPT
  27359. {
  27360. return !operator==( rhs );
  27361. }
  27362. #endif
  27363. public:
  27364. uint32_t location = {};
  27365. uint32_t binding = {};
  27366. VULKAN_HPP_NAMESPACE::Format format = VULKAN_HPP_NAMESPACE::Format::eUndefined;
  27367. uint32_t offset = {};
  27368. };
  27369. struct PipelineVertexInputStateCreateInfo
  27370. {
  27371. using NativeType = VkPipelineVertexInputStateCreateInfo;
  27372. static const bool allowDuplicate = false;
  27373. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineVertexInputStateCreateInfo;
  27374. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  27375. VULKAN_HPP_CONSTEXPR PipelineVertexInputStateCreateInfo( VULKAN_HPP_NAMESPACE::PipelineVertexInputStateCreateFlags flags_ = {},
  27376. uint32_t vertexBindingDescriptionCount_ = {},
  27377. const VULKAN_HPP_NAMESPACE::VertexInputBindingDescription * pVertexBindingDescriptions_ = {},
  27378. uint32_t vertexAttributeDescriptionCount_ = {},
  27379. const VULKAN_HPP_NAMESPACE::VertexInputAttributeDescription * pVertexAttributeDescriptions_ = {},
  27380. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  27381. : pNext( pNext_ )
  27382. , flags( flags_ )
  27383. , vertexBindingDescriptionCount( vertexBindingDescriptionCount_ )
  27384. , pVertexBindingDescriptions( pVertexBindingDescriptions_ )
  27385. , vertexAttributeDescriptionCount( vertexAttributeDescriptionCount_ )
  27386. , pVertexAttributeDescriptions( pVertexAttributeDescriptions_ )
  27387. {
  27388. }
  27389. VULKAN_HPP_CONSTEXPR PipelineVertexInputStateCreateInfo( PipelineVertexInputStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  27390. PipelineVertexInputStateCreateInfo( VkPipelineVertexInputStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
  27391. : PipelineVertexInputStateCreateInfo( *reinterpret_cast<PipelineVertexInputStateCreateInfo const *>( &rhs ) )
  27392. {
  27393. }
  27394. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  27395. PipelineVertexInputStateCreateInfo(
  27396. VULKAN_HPP_NAMESPACE::PipelineVertexInputStateCreateFlags flags_,
  27397. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::VertexInputBindingDescription> const & vertexBindingDescriptions_,
  27398. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::VertexInputAttributeDescription> const & vertexAttributeDescriptions_ = {},
  27399. const void * pNext_ = nullptr )
  27400. : pNext( pNext_ )
  27401. , flags( flags_ )
  27402. , vertexBindingDescriptionCount( static_cast<uint32_t>( vertexBindingDescriptions_.size() ) )
  27403. , pVertexBindingDescriptions( vertexBindingDescriptions_.data() )
  27404. , vertexAttributeDescriptionCount( static_cast<uint32_t>( vertexAttributeDescriptions_.size() ) )
  27405. , pVertexAttributeDescriptions( vertexAttributeDescriptions_.data() )
  27406. {
  27407. }
  27408. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  27409. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  27410. PipelineVertexInputStateCreateInfo & operator=( PipelineVertexInputStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  27411. PipelineVertexInputStateCreateInfo & operator=( VkPipelineVertexInputStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
  27412. {
  27413. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PipelineVertexInputStateCreateInfo const *>( &rhs );
  27414. return *this;
  27415. }
  27416. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  27417. VULKAN_HPP_CONSTEXPR_14 PipelineVertexInputStateCreateInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  27418. {
  27419. pNext = pNext_;
  27420. return *this;
  27421. }
  27422. VULKAN_HPP_CONSTEXPR_14 PipelineVertexInputStateCreateInfo &
  27423. setFlags( VULKAN_HPP_NAMESPACE::PipelineVertexInputStateCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT
  27424. {
  27425. flags = flags_;
  27426. return *this;
  27427. }
  27428. VULKAN_HPP_CONSTEXPR_14 PipelineVertexInputStateCreateInfo & setVertexBindingDescriptionCount( uint32_t vertexBindingDescriptionCount_ ) VULKAN_HPP_NOEXCEPT
  27429. {
  27430. vertexBindingDescriptionCount = vertexBindingDescriptionCount_;
  27431. return *this;
  27432. }
  27433. VULKAN_HPP_CONSTEXPR_14 PipelineVertexInputStateCreateInfo &
  27434. setPVertexBindingDescriptions( const VULKAN_HPP_NAMESPACE::VertexInputBindingDescription * pVertexBindingDescriptions_ ) VULKAN_HPP_NOEXCEPT
  27435. {
  27436. pVertexBindingDescriptions = pVertexBindingDescriptions_;
  27437. return *this;
  27438. }
  27439. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  27440. PipelineVertexInputStateCreateInfo & setVertexBindingDescriptions(
  27441. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::VertexInputBindingDescription> const & vertexBindingDescriptions_ )
  27442. VULKAN_HPP_NOEXCEPT
  27443. {
  27444. vertexBindingDescriptionCount = static_cast<uint32_t>( vertexBindingDescriptions_.size() );
  27445. pVertexBindingDescriptions = vertexBindingDescriptions_.data();
  27446. return *this;
  27447. }
  27448. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  27449. VULKAN_HPP_CONSTEXPR_14 PipelineVertexInputStateCreateInfo &
  27450. setVertexAttributeDescriptionCount( uint32_t vertexAttributeDescriptionCount_ ) VULKAN_HPP_NOEXCEPT
  27451. {
  27452. vertexAttributeDescriptionCount = vertexAttributeDescriptionCount_;
  27453. return *this;
  27454. }
  27455. VULKAN_HPP_CONSTEXPR_14 PipelineVertexInputStateCreateInfo &
  27456. setPVertexAttributeDescriptions( const VULKAN_HPP_NAMESPACE::VertexInputAttributeDescription * pVertexAttributeDescriptions_ ) VULKAN_HPP_NOEXCEPT
  27457. {
  27458. pVertexAttributeDescriptions = pVertexAttributeDescriptions_;
  27459. return *this;
  27460. }
  27461. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  27462. PipelineVertexInputStateCreateInfo & setVertexAttributeDescriptions(
  27463. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::VertexInputAttributeDescription> const & vertexAttributeDescriptions_ )
  27464. VULKAN_HPP_NOEXCEPT
  27465. {
  27466. vertexAttributeDescriptionCount = static_cast<uint32_t>( vertexAttributeDescriptions_.size() );
  27467. pVertexAttributeDescriptions = vertexAttributeDescriptions_.data();
  27468. return *this;
  27469. }
  27470. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  27471. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  27472. operator VkPipelineVertexInputStateCreateInfo const &() const VULKAN_HPP_NOEXCEPT
  27473. {
  27474. return *reinterpret_cast<const VkPipelineVertexInputStateCreateInfo *>( this );
  27475. }
  27476. operator VkPipelineVertexInputStateCreateInfo &() VULKAN_HPP_NOEXCEPT
  27477. {
  27478. return *reinterpret_cast<VkPipelineVertexInputStateCreateInfo *>( this );
  27479. }
  27480. #if defined( VULKAN_HPP_USE_REFLECT )
  27481. # if 14 <= VULKAN_HPP_CPP_VERSION
  27482. auto
  27483. # else
  27484. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  27485. const void * const &,
  27486. VULKAN_HPP_NAMESPACE::PipelineVertexInputStateCreateFlags const &,
  27487. uint32_t const &,
  27488. const VULKAN_HPP_NAMESPACE::VertexInputBindingDescription * const &,
  27489. uint32_t const &,
  27490. const VULKAN_HPP_NAMESPACE::VertexInputAttributeDescription * const &>
  27491. # endif
  27492. reflect() const VULKAN_HPP_NOEXCEPT
  27493. {
  27494. return std::tie(
  27495. sType, pNext, flags, vertexBindingDescriptionCount, pVertexBindingDescriptions, vertexAttributeDescriptionCount, pVertexAttributeDescriptions );
  27496. }
  27497. #endif
  27498. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  27499. auto operator<=>( PipelineVertexInputStateCreateInfo const & ) const = default;
  27500. #else
  27501. bool operator==( PipelineVertexInputStateCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  27502. {
  27503. # if defined( VULKAN_HPP_USE_REFLECT )
  27504. return this->reflect() == rhs.reflect();
  27505. # else
  27506. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( flags == rhs.flags ) &&
  27507. ( vertexBindingDescriptionCount == rhs.vertexBindingDescriptionCount ) && ( pVertexBindingDescriptions == rhs.pVertexBindingDescriptions ) &&
  27508. ( vertexAttributeDescriptionCount == rhs.vertexAttributeDescriptionCount ) && ( pVertexAttributeDescriptions == rhs.pVertexAttributeDescriptions );
  27509. # endif
  27510. }
  27511. bool operator!=( PipelineVertexInputStateCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  27512. {
  27513. return !operator==( rhs );
  27514. }
  27515. #endif
  27516. public:
  27517. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineVertexInputStateCreateInfo;
  27518. const void * pNext = {};
  27519. VULKAN_HPP_NAMESPACE::PipelineVertexInputStateCreateFlags flags = {};
  27520. uint32_t vertexBindingDescriptionCount = {};
  27521. const VULKAN_HPP_NAMESPACE::VertexInputBindingDescription * pVertexBindingDescriptions = {};
  27522. uint32_t vertexAttributeDescriptionCount = {};
  27523. const VULKAN_HPP_NAMESPACE::VertexInputAttributeDescription * pVertexAttributeDescriptions = {};
  27524. };
  27525. template <>
  27526. struct CppType<StructureType, StructureType::ePipelineVertexInputStateCreateInfo>
  27527. {
  27528. using Type = PipelineVertexInputStateCreateInfo;
  27529. };
  27530. struct PipelineInputAssemblyStateCreateInfo
  27531. {
  27532. using NativeType = VkPipelineInputAssemblyStateCreateInfo;
  27533. static const bool allowDuplicate = false;
  27534. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineInputAssemblyStateCreateInfo;
  27535. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  27536. VULKAN_HPP_CONSTEXPR
  27537. PipelineInputAssemblyStateCreateInfo( VULKAN_HPP_NAMESPACE::PipelineInputAssemblyStateCreateFlags flags_ = {},
  27538. VULKAN_HPP_NAMESPACE::PrimitiveTopology topology_ = VULKAN_HPP_NAMESPACE::PrimitiveTopology::ePointList,
  27539. VULKAN_HPP_NAMESPACE::Bool32 primitiveRestartEnable_ = {},
  27540. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  27541. : pNext( pNext_ )
  27542. , flags( flags_ )
  27543. , topology( topology_ )
  27544. , primitiveRestartEnable( primitiveRestartEnable_ )
  27545. {
  27546. }
  27547. VULKAN_HPP_CONSTEXPR PipelineInputAssemblyStateCreateInfo( PipelineInputAssemblyStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  27548. PipelineInputAssemblyStateCreateInfo( VkPipelineInputAssemblyStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
  27549. : PipelineInputAssemblyStateCreateInfo( *reinterpret_cast<PipelineInputAssemblyStateCreateInfo const *>( &rhs ) )
  27550. {
  27551. }
  27552. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  27553. PipelineInputAssemblyStateCreateInfo & operator=( PipelineInputAssemblyStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  27554. PipelineInputAssemblyStateCreateInfo & operator=( VkPipelineInputAssemblyStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
  27555. {
  27556. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PipelineInputAssemblyStateCreateInfo const *>( &rhs );
  27557. return *this;
  27558. }
  27559. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  27560. VULKAN_HPP_CONSTEXPR_14 PipelineInputAssemblyStateCreateInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  27561. {
  27562. pNext = pNext_;
  27563. return *this;
  27564. }
  27565. VULKAN_HPP_CONSTEXPR_14 PipelineInputAssemblyStateCreateInfo &
  27566. setFlags( VULKAN_HPP_NAMESPACE::PipelineInputAssemblyStateCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT
  27567. {
  27568. flags = flags_;
  27569. return *this;
  27570. }
  27571. VULKAN_HPP_CONSTEXPR_14 PipelineInputAssemblyStateCreateInfo & setTopology( VULKAN_HPP_NAMESPACE::PrimitiveTopology topology_ ) VULKAN_HPP_NOEXCEPT
  27572. {
  27573. topology = topology_;
  27574. return *this;
  27575. }
  27576. VULKAN_HPP_CONSTEXPR_14 PipelineInputAssemblyStateCreateInfo &
  27577. setPrimitiveRestartEnable( VULKAN_HPP_NAMESPACE::Bool32 primitiveRestartEnable_ ) VULKAN_HPP_NOEXCEPT
  27578. {
  27579. primitiveRestartEnable = primitiveRestartEnable_;
  27580. return *this;
  27581. }
  27582. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  27583. operator VkPipelineInputAssemblyStateCreateInfo const &() const VULKAN_HPP_NOEXCEPT
  27584. {
  27585. return *reinterpret_cast<const VkPipelineInputAssemblyStateCreateInfo *>( this );
  27586. }
  27587. operator VkPipelineInputAssemblyStateCreateInfo &() VULKAN_HPP_NOEXCEPT
  27588. {
  27589. return *reinterpret_cast<VkPipelineInputAssemblyStateCreateInfo *>( this );
  27590. }
  27591. #if defined( VULKAN_HPP_USE_REFLECT )
  27592. # if 14 <= VULKAN_HPP_CPP_VERSION
  27593. auto
  27594. # else
  27595. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  27596. const void * const &,
  27597. VULKAN_HPP_NAMESPACE::PipelineInputAssemblyStateCreateFlags const &,
  27598. VULKAN_HPP_NAMESPACE::PrimitiveTopology const &,
  27599. VULKAN_HPP_NAMESPACE::Bool32 const &>
  27600. # endif
  27601. reflect() const VULKAN_HPP_NOEXCEPT
  27602. {
  27603. return std::tie( sType, pNext, flags, topology, primitiveRestartEnable );
  27604. }
  27605. #endif
  27606. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  27607. auto operator<=>( PipelineInputAssemblyStateCreateInfo const & ) const = default;
  27608. #else
  27609. bool operator==( PipelineInputAssemblyStateCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  27610. {
  27611. # if defined( VULKAN_HPP_USE_REFLECT )
  27612. return this->reflect() == rhs.reflect();
  27613. # else
  27614. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( flags == rhs.flags ) && ( topology == rhs.topology ) &&
  27615. ( primitiveRestartEnable == rhs.primitiveRestartEnable );
  27616. # endif
  27617. }
  27618. bool operator!=( PipelineInputAssemblyStateCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  27619. {
  27620. return !operator==( rhs );
  27621. }
  27622. #endif
  27623. public:
  27624. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineInputAssemblyStateCreateInfo;
  27625. const void * pNext = {};
  27626. VULKAN_HPP_NAMESPACE::PipelineInputAssemblyStateCreateFlags flags = {};
  27627. VULKAN_HPP_NAMESPACE::PrimitiveTopology topology = VULKAN_HPP_NAMESPACE::PrimitiveTopology::ePointList;
  27628. VULKAN_HPP_NAMESPACE::Bool32 primitiveRestartEnable = {};
  27629. };
  27630. template <>
  27631. struct CppType<StructureType, StructureType::ePipelineInputAssemblyStateCreateInfo>
  27632. {
  27633. using Type = PipelineInputAssemblyStateCreateInfo;
  27634. };
  27635. struct PipelineTessellationStateCreateInfo
  27636. {
  27637. using NativeType = VkPipelineTessellationStateCreateInfo;
  27638. static const bool allowDuplicate = false;
  27639. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineTessellationStateCreateInfo;
  27640. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  27641. VULKAN_HPP_CONSTEXPR PipelineTessellationStateCreateInfo( VULKAN_HPP_NAMESPACE::PipelineTessellationStateCreateFlags flags_ = {},
  27642. uint32_t patchControlPoints_ = {},
  27643. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  27644. : pNext( pNext_ )
  27645. , flags( flags_ )
  27646. , patchControlPoints( patchControlPoints_ )
  27647. {
  27648. }
  27649. VULKAN_HPP_CONSTEXPR PipelineTessellationStateCreateInfo( PipelineTessellationStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  27650. PipelineTessellationStateCreateInfo( VkPipelineTessellationStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
  27651. : PipelineTessellationStateCreateInfo( *reinterpret_cast<PipelineTessellationStateCreateInfo const *>( &rhs ) )
  27652. {
  27653. }
  27654. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  27655. PipelineTessellationStateCreateInfo & operator=( PipelineTessellationStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  27656. PipelineTessellationStateCreateInfo & operator=( VkPipelineTessellationStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
  27657. {
  27658. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PipelineTessellationStateCreateInfo const *>( &rhs );
  27659. return *this;
  27660. }
  27661. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  27662. VULKAN_HPP_CONSTEXPR_14 PipelineTessellationStateCreateInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  27663. {
  27664. pNext = pNext_;
  27665. return *this;
  27666. }
  27667. VULKAN_HPP_CONSTEXPR_14 PipelineTessellationStateCreateInfo &
  27668. setFlags( VULKAN_HPP_NAMESPACE::PipelineTessellationStateCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT
  27669. {
  27670. flags = flags_;
  27671. return *this;
  27672. }
  27673. VULKAN_HPP_CONSTEXPR_14 PipelineTessellationStateCreateInfo & setPatchControlPoints( uint32_t patchControlPoints_ ) VULKAN_HPP_NOEXCEPT
  27674. {
  27675. patchControlPoints = patchControlPoints_;
  27676. return *this;
  27677. }
  27678. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  27679. operator VkPipelineTessellationStateCreateInfo const &() const VULKAN_HPP_NOEXCEPT
  27680. {
  27681. return *reinterpret_cast<const VkPipelineTessellationStateCreateInfo *>( this );
  27682. }
  27683. operator VkPipelineTessellationStateCreateInfo &() VULKAN_HPP_NOEXCEPT
  27684. {
  27685. return *reinterpret_cast<VkPipelineTessellationStateCreateInfo *>( this );
  27686. }
  27687. #if defined( VULKAN_HPP_USE_REFLECT )
  27688. # if 14 <= VULKAN_HPP_CPP_VERSION
  27689. auto
  27690. # else
  27691. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  27692. const void * const &,
  27693. VULKAN_HPP_NAMESPACE::PipelineTessellationStateCreateFlags const &,
  27694. uint32_t const &>
  27695. # endif
  27696. reflect() const VULKAN_HPP_NOEXCEPT
  27697. {
  27698. return std::tie( sType, pNext, flags, patchControlPoints );
  27699. }
  27700. #endif
  27701. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  27702. auto operator<=>( PipelineTessellationStateCreateInfo const & ) const = default;
  27703. #else
  27704. bool operator==( PipelineTessellationStateCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  27705. {
  27706. # if defined( VULKAN_HPP_USE_REFLECT )
  27707. return this->reflect() == rhs.reflect();
  27708. # else
  27709. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( flags == rhs.flags ) && ( patchControlPoints == rhs.patchControlPoints );
  27710. # endif
  27711. }
  27712. bool operator!=( PipelineTessellationStateCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  27713. {
  27714. return !operator==( rhs );
  27715. }
  27716. #endif
  27717. public:
  27718. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineTessellationStateCreateInfo;
  27719. const void * pNext = {};
  27720. VULKAN_HPP_NAMESPACE::PipelineTessellationStateCreateFlags flags = {};
  27721. uint32_t patchControlPoints = {};
  27722. };
  27723. template <>
  27724. struct CppType<StructureType, StructureType::ePipelineTessellationStateCreateInfo>
  27725. {
  27726. using Type = PipelineTessellationStateCreateInfo;
  27727. };
  27728. struct PipelineViewportStateCreateInfo
  27729. {
  27730. using NativeType = VkPipelineViewportStateCreateInfo;
  27731. static const bool allowDuplicate = false;
  27732. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineViewportStateCreateInfo;
  27733. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  27734. VULKAN_HPP_CONSTEXPR PipelineViewportStateCreateInfo( VULKAN_HPP_NAMESPACE::PipelineViewportStateCreateFlags flags_ = {},
  27735. uint32_t viewportCount_ = {},
  27736. const VULKAN_HPP_NAMESPACE::Viewport * pViewports_ = {},
  27737. uint32_t scissorCount_ = {},
  27738. const VULKAN_HPP_NAMESPACE::Rect2D * pScissors_ = {},
  27739. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  27740. : pNext( pNext_ )
  27741. , flags( flags_ )
  27742. , viewportCount( viewportCount_ )
  27743. , pViewports( pViewports_ )
  27744. , scissorCount( scissorCount_ )
  27745. , pScissors( pScissors_ )
  27746. {
  27747. }
  27748. VULKAN_HPP_CONSTEXPR PipelineViewportStateCreateInfo( PipelineViewportStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  27749. PipelineViewportStateCreateInfo( VkPipelineViewportStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
  27750. : PipelineViewportStateCreateInfo( *reinterpret_cast<PipelineViewportStateCreateInfo const *>( &rhs ) )
  27751. {
  27752. }
  27753. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  27754. PipelineViewportStateCreateInfo( VULKAN_HPP_NAMESPACE::PipelineViewportStateCreateFlags flags_,
  27755. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::Viewport> const & viewports_,
  27756. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::Rect2D> const & scissors_ = {},
  27757. const void * pNext_ = nullptr )
  27758. : pNext( pNext_ )
  27759. , flags( flags_ )
  27760. , viewportCount( static_cast<uint32_t>( viewports_.size() ) )
  27761. , pViewports( viewports_.data() )
  27762. , scissorCount( static_cast<uint32_t>( scissors_.size() ) )
  27763. , pScissors( scissors_.data() )
  27764. {
  27765. }
  27766. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  27767. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  27768. PipelineViewportStateCreateInfo & operator=( PipelineViewportStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  27769. PipelineViewportStateCreateInfo & operator=( VkPipelineViewportStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
  27770. {
  27771. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PipelineViewportStateCreateInfo const *>( &rhs );
  27772. return *this;
  27773. }
  27774. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  27775. VULKAN_HPP_CONSTEXPR_14 PipelineViewportStateCreateInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  27776. {
  27777. pNext = pNext_;
  27778. return *this;
  27779. }
  27780. VULKAN_HPP_CONSTEXPR_14 PipelineViewportStateCreateInfo & setFlags( VULKAN_HPP_NAMESPACE::PipelineViewportStateCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT
  27781. {
  27782. flags = flags_;
  27783. return *this;
  27784. }
  27785. VULKAN_HPP_CONSTEXPR_14 PipelineViewportStateCreateInfo & setViewportCount( uint32_t viewportCount_ ) VULKAN_HPP_NOEXCEPT
  27786. {
  27787. viewportCount = viewportCount_;
  27788. return *this;
  27789. }
  27790. VULKAN_HPP_CONSTEXPR_14 PipelineViewportStateCreateInfo & setPViewports( const VULKAN_HPP_NAMESPACE::Viewport * pViewports_ ) VULKAN_HPP_NOEXCEPT
  27791. {
  27792. pViewports = pViewports_;
  27793. return *this;
  27794. }
  27795. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  27796. PipelineViewportStateCreateInfo &
  27797. setViewports( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::Viewport> const & viewports_ ) VULKAN_HPP_NOEXCEPT
  27798. {
  27799. viewportCount = static_cast<uint32_t>( viewports_.size() );
  27800. pViewports = viewports_.data();
  27801. return *this;
  27802. }
  27803. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  27804. VULKAN_HPP_CONSTEXPR_14 PipelineViewportStateCreateInfo & setScissorCount( uint32_t scissorCount_ ) VULKAN_HPP_NOEXCEPT
  27805. {
  27806. scissorCount = scissorCount_;
  27807. return *this;
  27808. }
  27809. VULKAN_HPP_CONSTEXPR_14 PipelineViewportStateCreateInfo & setPScissors( const VULKAN_HPP_NAMESPACE::Rect2D * pScissors_ ) VULKAN_HPP_NOEXCEPT
  27810. {
  27811. pScissors = pScissors_;
  27812. return *this;
  27813. }
  27814. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  27815. PipelineViewportStateCreateInfo &
  27816. setScissors( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::Rect2D> const & scissors_ ) VULKAN_HPP_NOEXCEPT
  27817. {
  27818. scissorCount = static_cast<uint32_t>( scissors_.size() );
  27819. pScissors = scissors_.data();
  27820. return *this;
  27821. }
  27822. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  27823. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  27824. operator VkPipelineViewportStateCreateInfo const &() const VULKAN_HPP_NOEXCEPT
  27825. {
  27826. return *reinterpret_cast<const VkPipelineViewportStateCreateInfo *>( this );
  27827. }
  27828. operator VkPipelineViewportStateCreateInfo &() VULKAN_HPP_NOEXCEPT
  27829. {
  27830. return *reinterpret_cast<VkPipelineViewportStateCreateInfo *>( this );
  27831. }
  27832. #if defined( VULKAN_HPP_USE_REFLECT )
  27833. # if 14 <= VULKAN_HPP_CPP_VERSION
  27834. auto
  27835. # else
  27836. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  27837. const void * const &,
  27838. VULKAN_HPP_NAMESPACE::PipelineViewportStateCreateFlags const &,
  27839. uint32_t const &,
  27840. const VULKAN_HPP_NAMESPACE::Viewport * const &,
  27841. uint32_t const &,
  27842. const VULKAN_HPP_NAMESPACE::Rect2D * const &>
  27843. # endif
  27844. reflect() const VULKAN_HPP_NOEXCEPT
  27845. {
  27846. return std::tie( sType, pNext, flags, viewportCount, pViewports, scissorCount, pScissors );
  27847. }
  27848. #endif
  27849. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  27850. auto operator<=>( PipelineViewportStateCreateInfo const & ) const = default;
  27851. #else
  27852. bool operator==( PipelineViewportStateCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  27853. {
  27854. # if defined( VULKAN_HPP_USE_REFLECT )
  27855. return this->reflect() == rhs.reflect();
  27856. # else
  27857. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( flags == rhs.flags ) && ( viewportCount == rhs.viewportCount ) &&
  27858. ( pViewports == rhs.pViewports ) && ( scissorCount == rhs.scissorCount ) && ( pScissors == rhs.pScissors );
  27859. # endif
  27860. }
  27861. bool operator!=( PipelineViewportStateCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  27862. {
  27863. return !operator==( rhs );
  27864. }
  27865. #endif
  27866. public:
  27867. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineViewportStateCreateInfo;
  27868. const void * pNext = {};
  27869. VULKAN_HPP_NAMESPACE::PipelineViewportStateCreateFlags flags = {};
  27870. uint32_t viewportCount = {};
  27871. const VULKAN_HPP_NAMESPACE::Viewport * pViewports = {};
  27872. uint32_t scissorCount = {};
  27873. const VULKAN_HPP_NAMESPACE::Rect2D * pScissors = {};
  27874. };
  27875. template <>
  27876. struct CppType<StructureType, StructureType::ePipelineViewportStateCreateInfo>
  27877. {
  27878. using Type = PipelineViewportStateCreateInfo;
  27879. };
  27880. struct PipelineRasterizationStateCreateInfo
  27881. {
  27882. using NativeType = VkPipelineRasterizationStateCreateInfo;
  27883. static const bool allowDuplicate = false;
  27884. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineRasterizationStateCreateInfo;
  27885. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  27886. VULKAN_HPP_CONSTEXPR PipelineRasterizationStateCreateInfo( VULKAN_HPP_NAMESPACE::PipelineRasterizationStateCreateFlags flags_ = {},
  27887. VULKAN_HPP_NAMESPACE::Bool32 depthClampEnable_ = {},
  27888. VULKAN_HPP_NAMESPACE::Bool32 rasterizerDiscardEnable_ = {},
  27889. VULKAN_HPP_NAMESPACE::PolygonMode polygonMode_ = VULKAN_HPP_NAMESPACE::PolygonMode::eFill,
  27890. VULKAN_HPP_NAMESPACE::CullModeFlags cullMode_ = {},
  27891. VULKAN_HPP_NAMESPACE::FrontFace frontFace_ = VULKAN_HPP_NAMESPACE::FrontFace::eCounterClockwise,
  27892. VULKAN_HPP_NAMESPACE::Bool32 depthBiasEnable_ = {},
  27893. float depthBiasConstantFactor_ = {},
  27894. float depthBiasClamp_ = {},
  27895. float depthBiasSlopeFactor_ = {},
  27896. float lineWidth_ = {},
  27897. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  27898. : pNext( pNext_ )
  27899. , flags( flags_ )
  27900. , depthClampEnable( depthClampEnable_ )
  27901. , rasterizerDiscardEnable( rasterizerDiscardEnable_ )
  27902. , polygonMode( polygonMode_ )
  27903. , cullMode( cullMode_ )
  27904. , frontFace( frontFace_ )
  27905. , depthBiasEnable( depthBiasEnable_ )
  27906. , depthBiasConstantFactor( depthBiasConstantFactor_ )
  27907. , depthBiasClamp( depthBiasClamp_ )
  27908. , depthBiasSlopeFactor( depthBiasSlopeFactor_ )
  27909. , lineWidth( lineWidth_ )
  27910. {
  27911. }
  27912. VULKAN_HPP_CONSTEXPR PipelineRasterizationStateCreateInfo( PipelineRasterizationStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  27913. PipelineRasterizationStateCreateInfo( VkPipelineRasterizationStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
  27914. : PipelineRasterizationStateCreateInfo( *reinterpret_cast<PipelineRasterizationStateCreateInfo const *>( &rhs ) )
  27915. {
  27916. }
  27917. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  27918. PipelineRasterizationStateCreateInfo & operator=( PipelineRasterizationStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  27919. PipelineRasterizationStateCreateInfo & operator=( VkPipelineRasterizationStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
  27920. {
  27921. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PipelineRasterizationStateCreateInfo const *>( &rhs );
  27922. return *this;
  27923. }
  27924. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  27925. VULKAN_HPP_CONSTEXPR_14 PipelineRasterizationStateCreateInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  27926. {
  27927. pNext = pNext_;
  27928. return *this;
  27929. }
  27930. VULKAN_HPP_CONSTEXPR_14 PipelineRasterizationStateCreateInfo &
  27931. setFlags( VULKAN_HPP_NAMESPACE::PipelineRasterizationStateCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT
  27932. {
  27933. flags = flags_;
  27934. return *this;
  27935. }
  27936. VULKAN_HPP_CONSTEXPR_14 PipelineRasterizationStateCreateInfo & setDepthClampEnable( VULKAN_HPP_NAMESPACE::Bool32 depthClampEnable_ ) VULKAN_HPP_NOEXCEPT
  27937. {
  27938. depthClampEnable = depthClampEnable_;
  27939. return *this;
  27940. }
  27941. VULKAN_HPP_CONSTEXPR_14 PipelineRasterizationStateCreateInfo &
  27942. setRasterizerDiscardEnable( VULKAN_HPP_NAMESPACE::Bool32 rasterizerDiscardEnable_ ) VULKAN_HPP_NOEXCEPT
  27943. {
  27944. rasterizerDiscardEnable = rasterizerDiscardEnable_;
  27945. return *this;
  27946. }
  27947. VULKAN_HPP_CONSTEXPR_14 PipelineRasterizationStateCreateInfo & setPolygonMode( VULKAN_HPP_NAMESPACE::PolygonMode polygonMode_ ) VULKAN_HPP_NOEXCEPT
  27948. {
  27949. polygonMode = polygonMode_;
  27950. return *this;
  27951. }
  27952. VULKAN_HPP_CONSTEXPR_14 PipelineRasterizationStateCreateInfo & setCullMode( VULKAN_HPP_NAMESPACE::CullModeFlags cullMode_ ) VULKAN_HPP_NOEXCEPT
  27953. {
  27954. cullMode = cullMode_;
  27955. return *this;
  27956. }
  27957. VULKAN_HPP_CONSTEXPR_14 PipelineRasterizationStateCreateInfo & setFrontFace( VULKAN_HPP_NAMESPACE::FrontFace frontFace_ ) VULKAN_HPP_NOEXCEPT
  27958. {
  27959. frontFace = frontFace_;
  27960. return *this;
  27961. }
  27962. VULKAN_HPP_CONSTEXPR_14 PipelineRasterizationStateCreateInfo & setDepthBiasEnable( VULKAN_HPP_NAMESPACE::Bool32 depthBiasEnable_ ) VULKAN_HPP_NOEXCEPT
  27963. {
  27964. depthBiasEnable = depthBiasEnable_;
  27965. return *this;
  27966. }
  27967. VULKAN_HPP_CONSTEXPR_14 PipelineRasterizationStateCreateInfo & setDepthBiasConstantFactor( float depthBiasConstantFactor_ ) VULKAN_HPP_NOEXCEPT
  27968. {
  27969. depthBiasConstantFactor = depthBiasConstantFactor_;
  27970. return *this;
  27971. }
  27972. VULKAN_HPP_CONSTEXPR_14 PipelineRasterizationStateCreateInfo & setDepthBiasClamp( float depthBiasClamp_ ) VULKAN_HPP_NOEXCEPT
  27973. {
  27974. depthBiasClamp = depthBiasClamp_;
  27975. return *this;
  27976. }
  27977. VULKAN_HPP_CONSTEXPR_14 PipelineRasterizationStateCreateInfo & setDepthBiasSlopeFactor( float depthBiasSlopeFactor_ ) VULKAN_HPP_NOEXCEPT
  27978. {
  27979. depthBiasSlopeFactor = depthBiasSlopeFactor_;
  27980. return *this;
  27981. }
  27982. VULKAN_HPP_CONSTEXPR_14 PipelineRasterizationStateCreateInfo & setLineWidth( float lineWidth_ ) VULKAN_HPP_NOEXCEPT
  27983. {
  27984. lineWidth = lineWidth_;
  27985. return *this;
  27986. }
  27987. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  27988. operator VkPipelineRasterizationStateCreateInfo const &() const VULKAN_HPP_NOEXCEPT
  27989. {
  27990. return *reinterpret_cast<const VkPipelineRasterizationStateCreateInfo *>( this );
  27991. }
  27992. operator VkPipelineRasterizationStateCreateInfo &() VULKAN_HPP_NOEXCEPT
  27993. {
  27994. return *reinterpret_cast<VkPipelineRasterizationStateCreateInfo *>( this );
  27995. }
  27996. #if defined( VULKAN_HPP_USE_REFLECT )
  27997. # if 14 <= VULKAN_HPP_CPP_VERSION
  27998. auto
  27999. # else
  28000. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  28001. const void * const &,
  28002. VULKAN_HPP_NAMESPACE::PipelineRasterizationStateCreateFlags const &,
  28003. VULKAN_HPP_NAMESPACE::Bool32 const &,
  28004. VULKAN_HPP_NAMESPACE::Bool32 const &,
  28005. VULKAN_HPP_NAMESPACE::PolygonMode const &,
  28006. VULKAN_HPP_NAMESPACE::CullModeFlags const &,
  28007. VULKAN_HPP_NAMESPACE::FrontFace const &,
  28008. VULKAN_HPP_NAMESPACE::Bool32 const &,
  28009. float const &,
  28010. float const &,
  28011. float const &,
  28012. float const &>
  28013. # endif
  28014. reflect() const VULKAN_HPP_NOEXCEPT
  28015. {
  28016. return std::tie( sType,
  28017. pNext,
  28018. flags,
  28019. depthClampEnable,
  28020. rasterizerDiscardEnable,
  28021. polygonMode,
  28022. cullMode,
  28023. frontFace,
  28024. depthBiasEnable,
  28025. depthBiasConstantFactor,
  28026. depthBiasClamp,
  28027. depthBiasSlopeFactor,
  28028. lineWidth );
  28029. }
  28030. #endif
  28031. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  28032. auto operator<=>( PipelineRasterizationStateCreateInfo const & ) const = default;
  28033. #else
  28034. bool operator==( PipelineRasterizationStateCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  28035. {
  28036. # if defined( VULKAN_HPP_USE_REFLECT )
  28037. return this->reflect() == rhs.reflect();
  28038. # else
  28039. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( flags == rhs.flags ) && ( depthClampEnable == rhs.depthClampEnable ) &&
  28040. ( rasterizerDiscardEnable == rhs.rasterizerDiscardEnable ) && ( polygonMode == rhs.polygonMode ) && ( cullMode == rhs.cullMode ) &&
  28041. ( frontFace == rhs.frontFace ) && ( depthBiasEnable == rhs.depthBiasEnable ) && ( depthBiasConstantFactor == rhs.depthBiasConstantFactor ) &&
  28042. ( depthBiasClamp == rhs.depthBiasClamp ) && ( depthBiasSlopeFactor == rhs.depthBiasSlopeFactor ) && ( lineWidth == rhs.lineWidth );
  28043. # endif
  28044. }
  28045. bool operator!=( PipelineRasterizationStateCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  28046. {
  28047. return !operator==( rhs );
  28048. }
  28049. #endif
  28050. public:
  28051. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineRasterizationStateCreateInfo;
  28052. const void * pNext = {};
  28053. VULKAN_HPP_NAMESPACE::PipelineRasterizationStateCreateFlags flags = {};
  28054. VULKAN_HPP_NAMESPACE::Bool32 depthClampEnable = {};
  28055. VULKAN_HPP_NAMESPACE::Bool32 rasterizerDiscardEnable = {};
  28056. VULKAN_HPP_NAMESPACE::PolygonMode polygonMode = VULKAN_HPP_NAMESPACE::PolygonMode::eFill;
  28057. VULKAN_HPP_NAMESPACE::CullModeFlags cullMode = {};
  28058. VULKAN_HPP_NAMESPACE::FrontFace frontFace = VULKAN_HPP_NAMESPACE::FrontFace::eCounterClockwise;
  28059. VULKAN_HPP_NAMESPACE::Bool32 depthBiasEnable = {};
  28060. float depthBiasConstantFactor = {};
  28061. float depthBiasClamp = {};
  28062. float depthBiasSlopeFactor = {};
  28063. float lineWidth = {};
  28064. };
  28065. template <>
  28066. struct CppType<StructureType, StructureType::ePipelineRasterizationStateCreateInfo>
  28067. {
  28068. using Type = PipelineRasterizationStateCreateInfo;
  28069. };
  28070. struct PipelineMultisampleStateCreateInfo
  28071. {
  28072. using NativeType = VkPipelineMultisampleStateCreateInfo;
  28073. static const bool allowDuplicate = false;
  28074. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineMultisampleStateCreateInfo;
  28075. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  28076. VULKAN_HPP_CONSTEXPR
  28077. PipelineMultisampleStateCreateInfo( VULKAN_HPP_NAMESPACE::PipelineMultisampleStateCreateFlags flags_ = {},
  28078. VULKAN_HPP_NAMESPACE::SampleCountFlagBits rasterizationSamples_ = VULKAN_HPP_NAMESPACE::SampleCountFlagBits::e1,
  28079. VULKAN_HPP_NAMESPACE::Bool32 sampleShadingEnable_ = {},
  28080. float minSampleShading_ = {},
  28081. const VULKAN_HPP_NAMESPACE::SampleMask * pSampleMask_ = {},
  28082. VULKAN_HPP_NAMESPACE::Bool32 alphaToCoverageEnable_ = {},
  28083. VULKAN_HPP_NAMESPACE::Bool32 alphaToOneEnable_ = {},
  28084. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  28085. : pNext( pNext_ )
  28086. , flags( flags_ )
  28087. , rasterizationSamples( rasterizationSamples_ )
  28088. , sampleShadingEnable( sampleShadingEnable_ )
  28089. , minSampleShading( minSampleShading_ )
  28090. , pSampleMask( pSampleMask_ )
  28091. , alphaToCoverageEnable( alphaToCoverageEnable_ )
  28092. , alphaToOneEnable( alphaToOneEnable_ )
  28093. {
  28094. }
  28095. VULKAN_HPP_CONSTEXPR PipelineMultisampleStateCreateInfo( PipelineMultisampleStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  28096. PipelineMultisampleStateCreateInfo( VkPipelineMultisampleStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
  28097. : PipelineMultisampleStateCreateInfo( *reinterpret_cast<PipelineMultisampleStateCreateInfo const *>( &rhs ) )
  28098. {
  28099. }
  28100. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  28101. PipelineMultisampleStateCreateInfo & operator=( PipelineMultisampleStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  28102. PipelineMultisampleStateCreateInfo & operator=( VkPipelineMultisampleStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
  28103. {
  28104. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PipelineMultisampleStateCreateInfo const *>( &rhs );
  28105. return *this;
  28106. }
  28107. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  28108. VULKAN_HPP_CONSTEXPR_14 PipelineMultisampleStateCreateInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  28109. {
  28110. pNext = pNext_;
  28111. return *this;
  28112. }
  28113. VULKAN_HPP_CONSTEXPR_14 PipelineMultisampleStateCreateInfo &
  28114. setFlags( VULKAN_HPP_NAMESPACE::PipelineMultisampleStateCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT
  28115. {
  28116. flags = flags_;
  28117. return *this;
  28118. }
  28119. VULKAN_HPP_CONSTEXPR_14 PipelineMultisampleStateCreateInfo &
  28120. setRasterizationSamples( VULKAN_HPP_NAMESPACE::SampleCountFlagBits rasterizationSamples_ ) VULKAN_HPP_NOEXCEPT
  28121. {
  28122. rasterizationSamples = rasterizationSamples_;
  28123. return *this;
  28124. }
  28125. VULKAN_HPP_CONSTEXPR_14 PipelineMultisampleStateCreateInfo & setSampleShadingEnable( VULKAN_HPP_NAMESPACE::Bool32 sampleShadingEnable_ ) VULKAN_HPP_NOEXCEPT
  28126. {
  28127. sampleShadingEnable = sampleShadingEnable_;
  28128. return *this;
  28129. }
  28130. VULKAN_HPP_CONSTEXPR_14 PipelineMultisampleStateCreateInfo & setMinSampleShading( float minSampleShading_ ) VULKAN_HPP_NOEXCEPT
  28131. {
  28132. minSampleShading = minSampleShading_;
  28133. return *this;
  28134. }
  28135. VULKAN_HPP_CONSTEXPR_14 PipelineMultisampleStateCreateInfo & setPSampleMask( const VULKAN_HPP_NAMESPACE::SampleMask * pSampleMask_ ) VULKAN_HPP_NOEXCEPT
  28136. {
  28137. pSampleMask = pSampleMask_;
  28138. return *this;
  28139. }
  28140. VULKAN_HPP_CONSTEXPR_14 PipelineMultisampleStateCreateInfo &
  28141. setAlphaToCoverageEnable( VULKAN_HPP_NAMESPACE::Bool32 alphaToCoverageEnable_ ) VULKAN_HPP_NOEXCEPT
  28142. {
  28143. alphaToCoverageEnable = alphaToCoverageEnable_;
  28144. return *this;
  28145. }
  28146. VULKAN_HPP_CONSTEXPR_14 PipelineMultisampleStateCreateInfo & setAlphaToOneEnable( VULKAN_HPP_NAMESPACE::Bool32 alphaToOneEnable_ ) VULKAN_HPP_NOEXCEPT
  28147. {
  28148. alphaToOneEnable = alphaToOneEnable_;
  28149. return *this;
  28150. }
  28151. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  28152. operator VkPipelineMultisampleStateCreateInfo const &() const VULKAN_HPP_NOEXCEPT
  28153. {
  28154. return *reinterpret_cast<const VkPipelineMultisampleStateCreateInfo *>( this );
  28155. }
  28156. operator VkPipelineMultisampleStateCreateInfo &() VULKAN_HPP_NOEXCEPT
  28157. {
  28158. return *reinterpret_cast<VkPipelineMultisampleStateCreateInfo *>( this );
  28159. }
  28160. #if defined( VULKAN_HPP_USE_REFLECT )
  28161. # if 14 <= VULKAN_HPP_CPP_VERSION
  28162. auto
  28163. # else
  28164. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  28165. const void * const &,
  28166. VULKAN_HPP_NAMESPACE::PipelineMultisampleStateCreateFlags const &,
  28167. VULKAN_HPP_NAMESPACE::SampleCountFlagBits const &,
  28168. VULKAN_HPP_NAMESPACE::Bool32 const &,
  28169. float const &,
  28170. const VULKAN_HPP_NAMESPACE::SampleMask * const &,
  28171. VULKAN_HPP_NAMESPACE::Bool32 const &,
  28172. VULKAN_HPP_NAMESPACE::Bool32 const &>
  28173. # endif
  28174. reflect() const VULKAN_HPP_NOEXCEPT
  28175. {
  28176. return std::tie( sType, pNext, flags, rasterizationSamples, sampleShadingEnable, minSampleShading, pSampleMask, alphaToCoverageEnable, alphaToOneEnable );
  28177. }
  28178. #endif
  28179. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  28180. auto operator<=>( PipelineMultisampleStateCreateInfo const & ) const = default;
  28181. #else
  28182. bool operator==( PipelineMultisampleStateCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  28183. {
  28184. # if defined( VULKAN_HPP_USE_REFLECT )
  28185. return this->reflect() == rhs.reflect();
  28186. # else
  28187. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( flags == rhs.flags ) && ( rasterizationSamples == rhs.rasterizationSamples ) &&
  28188. ( sampleShadingEnable == rhs.sampleShadingEnable ) && ( minSampleShading == rhs.minSampleShading ) && ( pSampleMask == rhs.pSampleMask ) &&
  28189. ( alphaToCoverageEnable == rhs.alphaToCoverageEnable ) && ( alphaToOneEnable == rhs.alphaToOneEnable );
  28190. # endif
  28191. }
  28192. bool operator!=( PipelineMultisampleStateCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  28193. {
  28194. return !operator==( rhs );
  28195. }
  28196. #endif
  28197. public:
  28198. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineMultisampleStateCreateInfo;
  28199. const void * pNext = {};
  28200. VULKAN_HPP_NAMESPACE::PipelineMultisampleStateCreateFlags flags = {};
  28201. VULKAN_HPP_NAMESPACE::SampleCountFlagBits rasterizationSamples = VULKAN_HPP_NAMESPACE::SampleCountFlagBits::e1;
  28202. VULKAN_HPP_NAMESPACE::Bool32 sampleShadingEnable = {};
  28203. float minSampleShading = {};
  28204. const VULKAN_HPP_NAMESPACE::SampleMask * pSampleMask = {};
  28205. VULKAN_HPP_NAMESPACE::Bool32 alphaToCoverageEnable = {};
  28206. VULKAN_HPP_NAMESPACE::Bool32 alphaToOneEnable = {};
  28207. };
  28208. template <>
  28209. struct CppType<StructureType, StructureType::ePipelineMultisampleStateCreateInfo>
  28210. {
  28211. using Type = PipelineMultisampleStateCreateInfo;
  28212. };
  28213. struct StencilOpState
  28214. {
  28215. using NativeType = VkStencilOpState;
  28216. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  28217. VULKAN_HPP_CONSTEXPR StencilOpState( VULKAN_HPP_NAMESPACE::StencilOp failOp_ = VULKAN_HPP_NAMESPACE::StencilOp::eKeep,
  28218. VULKAN_HPP_NAMESPACE::StencilOp passOp_ = VULKAN_HPP_NAMESPACE::StencilOp::eKeep,
  28219. VULKAN_HPP_NAMESPACE::StencilOp depthFailOp_ = VULKAN_HPP_NAMESPACE::StencilOp::eKeep,
  28220. VULKAN_HPP_NAMESPACE::CompareOp compareOp_ = VULKAN_HPP_NAMESPACE::CompareOp::eNever,
  28221. uint32_t compareMask_ = {},
  28222. uint32_t writeMask_ = {},
  28223. uint32_t reference_ = {} ) VULKAN_HPP_NOEXCEPT
  28224. : failOp( failOp_ )
  28225. , passOp( passOp_ )
  28226. , depthFailOp( depthFailOp_ )
  28227. , compareOp( compareOp_ )
  28228. , compareMask( compareMask_ )
  28229. , writeMask( writeMask_ )
  28230. , reference( reference_ )
  28231. {
  28232. }
  28233. VULKAN_HPP_CONSTEXPR StencilOpState( StencilOpState const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  28234. StencilOpState( VkStencilOpState const & rhs ) VULKAN_HPP_NOEXCEPT : StencilOpState( *reinterpret_cast<StencilOpState const *>( &rhs ) ) {}
  28235. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  28236. StencilOpState & operator=( StencilOpState const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  28237. StencilOpState & operator=( VkStencilOpState const & rhs ) VULKAN_HPP_NOEXCEPT
  28238. {
  28239. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::StencilOpState const *>( &rhs );
  28240. return *this;
  28241. }
  28242. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  28243. VULKAN_HPP_CONSTEXPR_14 StencilOpState & setFailOp( VULKAN_HPP_NAMESPACE::StencilOp failOp_ ) VULKAN_HPP_NOEXCEPT
  28244. {
  28245. failOp = failOp_;
  28246. return *this;
  28247. }
  28248. VULKAN_HPP_CONSTEXPR_14 StencilOpState & setPassOp( VULKAN_HPP_NAMESPACE::StencilOp passOp_ ) VULKAN_HPP_NOEXCEPT
  28249. {
  28250. passOp = passOp_;
  28251. return *this;
  28252. }
  28253. VULKAN_HPP_CONSTEXPR_14 StencilOpState & setDepthFailOp( VULKAN_HPP_NAMESPACE::StencilOp depthFailOp_ ) VULKAN_HPP_NOEXCEPT
  28254. {
  28255. depthFailOp = depthFailOp_;
  28256. return *this;
  28257. }
  28258. VULKAN_HPP_CONSTEXPR_14 StencilOpState & setCompareOp( VULKAN_HPP_NAMESPACE::CompareOp compareOp_ ) VULKAN_HPP_NOEXCEPT
  28259. {
  28260. compareOp = compareOp_;
  28261. return *this;
  28262. }
  28263. VULKAN_HPP_CONSTEXPR_14 StencilOpState & setCompareMask( uint32_t compareMask_ ) VULKAN_HPP_NOEXCEPT
  28264. {
  28265. compareMask = compareMask_;
  28266. return *this;
  28267. }
  28268. VULKAN_HPP_CONSTEXPR_14 StencilOpState & setWriteMask( uint32_t writeMask_ ) VULKAN_HPP_NOEXCEPT
  28269. {
  28270. writeMask = writeMask_;
  28271. return *this;
  28272. }
  28273. VULKAN_HPP_CONSTEXPR_14 StencilOpState & setReference( uint32_t reference_ ) VULKAN_HPP_NOEXCEPT
  28274. {
  28275. reference = reference_;
  28276. return *this;
  28277. }
  28278. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  28279. operator VkStencilOpState const &() const VULKAN_HPP_NOEXCEPT
  28280. {
  28281. return *reinterpret_cast<const VkStencilOpState *>( this );
  28282. }
  28283. operator VkStencilOpState &() VULKAN_HPP_NOEXCEPT
  28284. {
  28285. return *reinterpret_cast<VkStencilOpState *>( this );
  28286. }
  28287. #if defined( VULKAN_HPP_USE_REFLECT )
  28288. # if 14 <= VULKAN_HPP_CPP_VERSION
  28289. auto
  28290. # else
  28291. std::tuple<VULKAN_HPP_NAMESPACE::StencilOp const &,
  28292. VULKAN_HPP_NAMESPACE::StencilOp const &,
  28293. VULKAN_HPP_NAMESPACE::StencilOp const &,
  28294. VULKAN_HPP_NAMESPACE::CompareOp const &,
  28295. uint32_t const &,
  28296. uint32_t const &,
  28297. uint32_t const &>
  28298. # endif
  28299. reflect() const VULKAN_HPP_NOEXCEPT
  28300. {
  28301. return std::tie( failOp, passOp, depthFailOp, compareOp, compareMask, writeMask, reference );
  28302. }
  28303. #endif
  28304. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  28305. auto operator<=>( StencilOpState const & ) const = default;
  28306. #else
  28307. bool operator==( StencilOpState const & rhs ) const VULKAN_HPP_NOEXCEPT
  28308. {
  28309. # if defined( VULKAN_HPP_USE_REFLECT )
  28310. return this->reflect() == rhs.reflect();
  28311. # else
  28312. return ( failOp == rhs.failOp ) && ( passOp == rhs.passOp ) && ( depthFailOp == rhs.depthFailOp ) && ( compareOp == rhs.compareOp ) &&
  28313. ( compareMask == rhs.compareMask ) && ( writeMask == rhs.writeMask ) && ( reference == rhs.reference );
  28314. # endif
  28315. }
  28316. bool operator!=( StencilOpState const & rhs ) const VULKAN_HPP_NOEXCEPT
  28317. {
  28318. return !operator==( rhs );
  28319. }
  28320. #endif
  28321. public:
  28322. VULKAN_HPP_NAMESPACE::StencilOp failOp = VULKAN_HPP_NAMESPACE::StencilOp::eKeep;
  28323. VULKAN_HPP_NAMESPACE::StencilOp passOp = VULKAN_HPP_NAMESPACE::StencilOp::eKeep;
  28324. VULKAN_HPP_NAMESPACE::StencilOp depthFailOp = VULKAN_HPP_NAMESPACE::StencilOp::eKeep;
  28325. VULKAN_HPP_NAMESPACE::CompareOp compareOp = VULKAN_HPP_NAMESPACE::CompareOp::eNever;
  28326. uint32_t compareMask = {};
  28327. uint32_t writeMask = {};
  28328. uint32_t reference = {};
  28329. };
  28330. struct PipelineDepthStencilStateCreateInfo
  28331. {
  28332. using NativeType = VkPipelineDepthStencilStateCreateInfo;
  28333. static const bool allowDuplicate = false;
  28334. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineDepthStencilStateCreateInfo;
  28335. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  28336. VULKAN_HPP_CONSTEXPR PipelineDepthStencilStateCreateInfo( VULKAN_HPP_NAMESPACE::PipelineDepthStencilStateCreateFlags flags_ = {},
  28337. VULKAN_HPP_NAMESPACE::Bool32 depthTestEnable_ = {},
  28338. VULKAN_HPP_NAMESPACE::Bool32 depthWriteEnable_ = {},
  28339. VULKAN_HPP_NAMESPACE::CompareOp depthCompareOp_ = VULKAN_HPP_NAMESPACE::CompareOp::eNever,
  28340. VULKAN_HPP_NAMESPACE::Bool32 depthBoundsTestEnable_ = {},
  28341. VULKAN_HPP_NAMESPACE::Bool32 stencilTestEnable_ = {},
  28342. VULKAN_HPP_NAMESPACE::StencilOpState front_ = {},
  28343. VULKAN_HPP_NAMESPACE::StencilOpState back_ = {},
  28344. float minDepthBounds_ = {},
  28345. float maxDepthBounds_ = {},
  28346. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  28347. : pNext( pNext_ )
  28348. , flags( flags_ )
  28349. , depthTestEnable( depthTestEnable_ )
  28350. , depthWriteEnable( depthWriteEnable_ )
  28351. , depthCompareOp( depthCompareOp_ )
  28352. , depthBoundsTestEnable( depthBoundsTestEnable_ )
  28353. , stencilTestEnable( stencilTestEnable_ )
  28354. , front( front_ )
  28355. , back( back_ )
  28356. , minDepthBounds( minDepthBounds_ )
  28357. , maxDepthBounds( maxDepthBounds_ )
  28358. {
  28359. }
  28360. VULKAN_HPP_CONSTEXPR PipelineDepthStencilStateCreateInfo( PipelineDepthStencilStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  28361. PipelineDepthStencilStateCreateInfo( VkPipelineDepthStencilStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
  28362. : PipelineDepthStencilStateCreateInfo( *reinterpret_cast<PipelineDepthStencilStateCreateInfo const *>( &rhs ) )
  28363. {
  28364. }
  28365. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  28366. PipelineDepthStencilStateCreateInfo & operator=( PipelineDepthStencilStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  28367. PipelineDepthStencilStateCreateInfo & operator=( VkPipelineDepthStencilStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
  28368. {
  28369. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PipelineDepthStencilStateCreateInfo const *>( &rhs );
  28370. return *this;
  28371. }
  28372. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  28373. VULKAN_HPP_CONSTEXPR_14 PipelineDepthStencilStateCreateInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  28374. {
  28375. pNext = pNext_;
  28376. return *this;
  28377. }
  28378. VULKAN_HPP_CONSTEXPR_14 PipelineDepthStencilStateCreateInfo &
  28379. setFlags( VULKAN_HPP_NAMESPACE::PipelineDepthStencilStateCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT
  28380. {
  28381. flags = flags_;
  28382. return *this;
  28383. }
  28384. VULKAN_HPP_CONSTEXPR_14 PipelineDepthStencilStateCreateInfo & setDepthTestEnable( VULKAN_HPP_NAMESPACE::Bool32 depthTestEnable_ ) VULKAN_HPP_NOEXCEPT
  28385. {
  28386. depthTestEnable = depthTestEnable_;
  28387. return *this;
  28388. }
  28389. VULKAN_HPP_CONSTEXPR_14 PipelineDepthStencilStateCreateInfo & setDepthWriteEnable( VULKAN_HPP_NAMESPACE::Bool32 depthWriteEnable_ ) VULKAN_HPP_NOEXCEPT
  28390. {
  28391. depthWriteEnable = depthWriteEnable_;
  28392. return *this;
  28393. }
  28394. VULKAN_HPP_CONSTEXPR_14 PipelineDepthStencilStateCreateInfo & setDepthCompareOp( VULKAN_HPP_NAMESPACE::CompareOp depthCompareOp_ ) VULKAN_HPP_NOEXCEPT
  28395. {
  28396. depthCompareOp = depthCompareOp_;
  28397. return *this;
  28398. }
  28399. VULKAN_HPP_CONSTEXPR_14 PipelineDepthStencilStateCreateInfo &
  28400. setDepthBoundsTestEnable( VULKAN_HPP_NAMESPACE::Bool32 depthBoundsTestEnable_ ) VULKAN_HPP_NOEXCEPT
  28401. {
  28402. depthBoundsTestEnable = depthBoundsTestEnable_;
  28403. return *this;
  28404. }
  28405. VULKAN_HPP_CONSTEXPR_14 PipelineDepthStencilStateCreateInfo & setStencilTestEnable( VULKAN_HPP_NAMESPACE::Bool32 stencilTestEnable_ ) VULKAN_HPP_NOEXCEPT
  28406. {
  28407. stencilTestEnable = stencilTestEnable_;
  28408. return *this;
  28409. }
  28410. VULKAN_HPP_CONSTEXPR_14 PipelineDepthStencilStateCreateInfo & setFront( VULKAN_HPP_NAMESPACE::StencilOpState const & front_ ) VULKAN_HPP_NOEXCEPT
  28411. {
  28412. front = front_;
  28413. return *this;
  28414. }
  28415. VULKAN_HPP_CONSTEXPR_14 PipelineDepthStencilStateCreateInfo & setBack( VULKAN_HPP_NAMESPACE::StencilOpState const & back_ ) VULKAN_HPP_NOEXCEPT
  28416. {
  28417. back = back_;
  28418. return *this;
  28419. }
  28420. VULKAN_HPP_CONSTEXPR_14 PipelineDepthStencilStateCreateInfo & setMinDepthBounds( float minDepthBounds_ ) VULKAN_HPP_NOEXCEPT
  28421. {
  28422. minDepthBounds = minDepthBounds_;
  28423. return *this;
  28424. }
  28425. VULKAN_HPP_CONSTEXPR_14 PipelineDepthStencilStateCreateInfo & setMaxDepthBounds( float maxDepthBounds_ ) VULKAN_HPP_NOEXCEPT
  28426. {
  28427. maxDepthBounds = maxDepthBounds_;
  28428. return *this;
  28429. }
  28430. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  28431. operator VkPipelineDepthStencilStateCreateInfo const &() const VULKAN_HPP_NOEXCEPT
  28432. {
  28433. return *reinterpret_cast<const VkPipelineDepthStencilStateCreateInfo *>( this );
  28434. }
  28435. operator VkPipelineDepthStencilStateCreateInfo &() VULKAN_HPP_NOEXCEPT
  28436. {
  28437. return *reinterpret_cast<VkPipelineDepthStencilStateCreateInfo *>( this );
  28438. }
  28439. #if defined( VULKAN_HPP_USE_REFLECT )
  28440. # if 14 <= VULKAN_HPP_CPP_VERSION
  28441. auto
  28442. # else
  28443. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  28444. const void * const &,
  28445. VULKAN_HPP_NAMESPACE::PipelineDepthStencilStateCreateFlags const &,
  28446. VULKAN_HPP_NAMESPACE::Bool32 const &,
  28447. VULKAN_HPP_NAMESPACE::Bool32 const &,
  28448. VULKAN_HPP_NAMESPACE::CompareOp const &,
  28449. VULKAN_HPP_NAMESPACE::Bool32 const &,
  28450. VULKAN_HPP_NAMESPACE::Bool32 const &,
  28451. VULKAN_HPP_NAMESPACE::StencilOpState const &,
  28452. VULKAN_HPP_NAMESPACE::StencilOpState const &,
  28453. float const &,
  28454. float const &>
  28455. # endif
  28456. reflect() const VULKAN_HPP_NOEXCEPT
  28457. {
  28458. return std::tie( sType,
  28459. pNext,
  28460. flags,
  28461. depthTestEnable,
  28462. depthWriteEnable,
  28463. depthCompareOp,
  28464. depthBoundsTestEnable,
  28465. stencilTestEnable,
  28466. front,
  28467. back,
  28468. minDepthBounds,
  28469. maxDepthBounds );
  28470. }
  28471. #endif
  28472. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  28473. auto operator<=>( PipelineDepthStencilStateCreateInfo const & ) const = default;
  28474. #else
  28475. bool operator==( PipelineDepthStencilStateCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  28476. {
  28477. # if defined( VULKAN_HPP_USE_REFLECT )
  28478. return this->reflect() == rhs.reflect();
  28479. # else
  28480. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( flags == rhs.flags ) && ( depthTestEnable == rhs.depthTestEnable ) &&
  28481. ( depthWriteEnable == rhs.depthWriteEnable ) && ( depthCompareOp == rhs.depthCompareOp ) &&
  28482. ( depthBoundsTestEnable == rhs.depthBoundsTestEnable ) && ( stencilTestEnable == rhs.stencilTestEnable ) && ( front == rhs.front ) &&
  28483. ( back == rhs.back ) && ( minDepthBounds == rhs.minDepthBounds ) && ( maxDepthBounds == rhs.maxDepthBounds );
  28484. # endif
  28485. }
  28486. bool operator!=( PipelineDepthStencilStateCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  28487. {
  28488. return !operator==( rhs );
  28489. }
  28490. #endif
  28491. public:
  28492. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineDepthStencilStateCreateInfo;
  28493. const void * pNext = {};
  28494. VULKAN_HPP_NAMESPACE::PipelineDepthStencilStateCreateFlags flags = {};
  28495. VULKAN_HPP_NAMESPACE::Bool32 depthTestEnable = {};
  28496. VULKAN_HPP_NAMESPACE::Bool32 depthWriteEnable = {};
  28497. VULKAN_HPP_NAMESPACE::CompareOp depthCompareOp = VULKAN_HPP_NAMESPACE::CompareOp::eNever;
  28498. VULKAN_HPP_NAMESPACE::Bool32 depthBoundsTestEnable = {};
  28499. VULKAN_HPP_NAMESPACE::Bool32 stencilTestEnable = {};
  28500. VULKAN_HPP_NAMESPACE::StencilOpState front = {};
  28501. VULKAN_HPP_NAMESPACE::StencilOpState back = {};
  28502. float minDepthBounds = {};
  28503. float maxDepthBounds = {};
  28504. };
  28505. template <>
  28506. struct CppType<StructureType, StructureType::ePipelineDepthStencilStateCreateInfo>
  28507. {
  28508. using Type = PipelineDepthStencilStateCreateInfo;
  28509. };
  28510. struct PipelineColorBlendAttachmentState
  28511. {
  28512. using NativeType = VkPipelineColorBlendAttachmentState;
  28513. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  28514. VULKAN_HPP_CONSTEXPR PipelineColorBlendAttachmentState( VULKAN_HPP_NAMESPACE::Bool32 blendEnable_ = {},
  28515. VULKAN_HPP_NAMESPACE::BlendFactor srcColorBlendFactor_ = VULKAN_HPP_NAMESPACE::BlendFactor::eZero,
  28516. VULKAN_HPP_NAMESPACE::BlendFactor dstColorBlendFactor_ = VULKAN_HPP_NAMESPACE::BlendFactor::eZero,
  28517. VULKAN_HPP_NAMESPACE::BlendOp colorBlendOp_ = VULKAN_HPP_NAMESPACE::BlendOp::eAdd,
  28518. VULKAN_HPP_NAMESPACE::BlendFactor srcAlphaBlendFactor_ = VULKAN_HPP_NAMESPACE::BlendFactor::eZero,
  28519. VULKAN_HPP_NAMESPACE::BlendFactor dstAlphaBlendFactor_ = VULKAN_HPP_NAMESPACE::BlendFactor::eZero,
  28520. VULKAN_HPP_NAMESPACE::BlendOp alphaBlendOp_ = VULKAN_HPP_NAMESPACE::BlendOp::eAdd,
  28521. VULKAN_HPP_NAMESPACE::ColorComponentFlags colorWriteMask_ = {} ) VULKAN_HPP_NOEXCEPT
  28522. : blendEnable( blendEnable_ )
  28523. , srcColorBlendFactor( srcColorBlendFactor_ )
  28524. , dstColorBlendFactor( dstColorBlendFactor_ )
  28525. , colorBlendOp( colorBlendOp_ )
  28526. , srcAlphaBlendFactor( srcAlphaBlendFactor_ )
  28527. , dstAlphaBlendFactor( dstAlphaBlendFactor_ )
  28528. , alphaBlendOp( alphaBlendOp_ )
  28529. , colorWriteMask( colorWriteMask_ )
  28530. {
  28531. }
  28532. VULKAN_HPP_CONSTEXPR PipelineColorBlendAttachmentState( PipelineColorBlendAttachmentState const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  28533. PipelineColorBlendAttachmentState( VkPipelineColorBlendAttachmentState const & rhs ) VULKAN_HPP_NOEXCEPT
  28534. : PipelineColorBlendAttachmentState( *reinterpret_cast<PipelineColorBlendAttachmentState const *>( &rhs ) )
  28535. {
  28536. }
  28537. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  28538. PipelineColorBlendAttachmentState & operator=( PipelineColorBlendAttachmentState const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  28539. PipelineColorBlendAttachmentState & operator=( VkPipelineColorBlendAttachmentState const & rhs ) VULKAN_HPP_NOEXCEPT
  28540. {
  28541. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PipelineColorBlendAttachmentState const *>( &rhs );
  28542. return *this;
  28543. }
  28544. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  28545. VULKAN_HPP_CONSTEXPR_14 PipelineColorBlendAttachmentState & setBlendEnable( VULKAN_HPP_NAMESPACE::Bool32 blendEnable_ ) VULKAN_HPP_NOEXCEPT
  28546. {
  28547. blendEnable = blendEnable_;
  28548. return *this;
  28549. }
  28550. VULKAN_HPP_CONSTEXPR_14 PipelineColorBlendAttachmentState &
  28551. setSrcColorBlendFactor( VULKAN_HPP_NAMESPACE::BlendFactor srcColorBlendFactor_ ) VULKAN_HPP_NOEXCEPT
  28552. {
  28553. srcColorBlendFactor = srcColorBlendFactor_;
  28554. return *this;
  28555. }
  28556. VULKAN_HPP_CONSTEXPR_14 PipelineColorBlendAttachmentState &
  28557. setDstColorBlendFactor( VULKAN_HPP_NAMESPACE::BlendFactor dstColorBlendFactor_ ) VULKAN_HPP_NOEXCEPT
  28558. {
  28559. dstColorBlendFactor = dstColorBlendFactor_;
  28560. return *this;
  28561. }
  28562. VULKAN_HPP_CONSTEXPR_14 PipelineColorBlendAttachmentState & setColorBlendOp( VULKAN_HPP_NAMESPACE::BlendOp colorBlendOp_ ) VULKAN_HPP_NOEXCEPT
  28563. {
  28564. colorBlendOp = colorBlendOp_;
  28565. return *this;
  28566. }
  28567. VULKAN_HPP_CONSTEXPR_14 PipelineColorBlendAttachmentState &
  28568. setSrcAlphaBlendFactor( VULKAN_HPP_NAMESPACE::BlendFactor srcAlphaBlendFactor_ ) VULKAN_HPP_NOEXCEPT
  28569. {
  28570. srcAlphaBlendFactor = srcAlphaBlendFactor_;
  28571. return *this;
  28572. }
  28573. VULKAN_HPP_CONSTEXPR_14 PipelineColorBlendAttachmentState &
  28574. setDstAlphaBlendFactor( VULKAN_HPP_NAMESPACE::BlendFactor dstAlphaBlendFactor_ ) VULKAN_HPP_NOEXCEPT
  28575. {
  28576. dstAlphaBlendFactor = dstAlphaBlendFactor_;
  28577. return *this;
  28578. }
  28579. VULKAN_HPP_CONSTEXPR_14 PipelineColorBlendAttachmentState & setAlphaBlendOp( VULKAN_HPP_NAMESPACE::BlendOp alphaBlendOp_ ) VULKAN_HPP_NOEXCEPT
  28580. {
  28581. alphaBlendOp = alphaBlendOp_;
  28582. return *this;
  28583. }
  28584. VULKAN_HPP_CONSTEXPR_14 PipelineColorBlendAttachmentState &
  28585. setColorWriteMask( VULKAN_HPP_NAMESPACE::ColorComponentFlags colorWriteMask_ ) VULKAN_HPP_NOEXCEPT
  28586. {
  28587. colorWriteMask = colorWriteMask_;
  28588. return *this;
  28589. }
  28590. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  28591. operator VkPipelineColorBlendAttachmentState const &() const VULKAN_HPP_NOEXCEPT
  28592. {
  28593. return *reinterpret_cast<const VkPipelineColorBlendAttachmentState *>( this );
  28594. }
  28595. operator VkPipelineColorBlendAttachmentState &() VULKAN_HPP_NOEXCEPT
  28596. {
  28597. return *reinterpret_cast<VkPipelineColorBlendAttachmentState *>( this );
  28598. }
  28599. #if defined( VULKAN_HPP_USE_REFLECT )
  28600. # if 14 <= VULKAN_HPP_CPP_VERSION
  28601. auto
  28602. # else
  28603. std::tuple<VULKAN_HPP_NAMESPACE::Bool32 const &,
  28604. VULKAN_HPP_NAMESPACE::BlendFactor const &,
  28605. VULKAN_HPP_NAMESPACE::BlendFactor const &,
  28606. VULKAN_HPP_NAMESPACE::BlendOp const &,
  28607. VULKAN_HPP_NAMESPACE::BlendFactor const &,
  28608. VULKAN_HPP_NAMESPACE::BlendFactor const &,
  28609. VULKAN_HPP_NAMESPACE::BlendOp const &,
  28610. VULKAN_HPP_NAMESPACE::ColorComponentFlags const &>
  28611. # endif
  28612. reflect() const VULKAN_HPP_NOEXCEPT
  28613. {
  28614. return std::tie(
  28615. blendEnable, srcColorBlendFactor, dstColorBlendFactor, colorBlendOp, srcAlphaBlendFactor, dstAlphaBlendFactor, alphaBlendOp, colorWriteMask );
  28616. }
  28617. #endif
  28618. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  28619. auto operator<=>( PipelineColorBlendAttachmentState const & ) const = default;
  28620. #else
  28621. bool operator==( PipelineColorBlendAttachmentState const & rhs ) const VULKAN_HPP_NOEXCEPT
  28622. {
  28623. # if defined( VULKAN_HPP_USE_REFLECT )
  28624. return this->reflect() == rhs.reflect();
  28625. # else
  28626. return ( blendEnable == rhs.blendEnable ) && ( srcColorBlendFactor == rhs.srcColorBlendFactor ) && ( dstColorBlendFactor == rhs.dstColorBlendFactor ) &&
  28627. ( colorBlendOp == rhs.colorBlendOp ) && ( srcAlphaBlendFactor == rhs.srcAlphaBlendFactor ) && ( dstAlphaBlendFactor == rhs.dstAlphaBlendFactor ) &&
  28628. ( alphaBlendOp == rhs.alphaBlendOp ) && ( colorWriteMask == rhs.colorWriteMask );
  28629. # endif
  28630. }
  28631. bool operator!=( PipelineColorBlendAttachmentState const & rhs ) const VULKAN_HPP_NOEXCEPT
  28632. {
  28633. return !operator==( rhs );
  28634. }
  28635. #endif
  28636. public:
  28637. VULKAN_HPP_NAMESPACE::Bool32 blendEnable = {};
  28638. VULKAN_HPP_NAMESPACE::BlendFactor srcColorBlendFactor = VULKAN_HPP_NAMESPACE::BlendFactor::eZero;
  28639. VULKAN_HPP_NAMESPACE::BlendFactor dstColorBlendFactor = VULKAN_HPP_NAMESPACE::BlendFactor::eZero;
  28640. VULKAN_HPP_NAMESPACE::BlendOp colorBlendOp = VULKAN_HPP_NAMESPACE::BlendOp::eAdd;
  28641. VULKAN_HPP_NAMESPACE::BlendFactor srcAlphaBlendFactor = VULKAN_HPP_NAMESPACE::BlendFactor::eZero;
  28642. VULKAN_HPP_NAMESPACE::BlendFactor dstAlphaBlendFactor = VULKAN_HPP_NAMESPACE::BlendFactor::eZero;
  28643. VULKAN_HPP_NAMESPACE::BlendOp alphaBlendOp = VULKAN_HPP_NAMESPACE::BlendOp::eAdd;
  28644. VULKAN_HPP_NAMESPACE::ColorComponentFlags colorWriteMask = {};
  28645. };
  28646. struct PipelineColorBlendStateCreateInfo
  28647. {
  28648. using NativeType = VkPipelineColorBlendStateCreateInfo;
  28649. static const bool allowDuplicate = false;
  28650. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineColorBlendStateCreateInfo;
  28651. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  28652. VULKAN_HPP_CONSTEXPR_14 PipelineColorBlendStateCreateInfo( VULKAN_HPP_NAMESPACE::PipelineColorBlendStateCreateFlags flags_ = {},
  28653. VULKAN_HPP_NAMESPACE::Bool32 logicOpEnable_ = {},
  28654. VULKAN_HPP_NAMESPACE::LogicOp logicOp_ = VULKAN_HPP_NAMESPACE::LogicOp::eClear,
  28655. uint32_t attachmentCount_ = {},
  28656. const VULKAN_HPP_NAMESPACE::PipelineColorBlendAttachmentState * pAttachments_ = {},
  28657. std::array<float, 4> const & blendConstants_ = {},
  28658. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  28659. : pNext( pNext_ )
  28660. , flags( flags_ )
  28661. , logicOpEnable( logicOpEnable_ )
  28662. , logicOp( logicOp_ )
  28663. , attachmentCount( attachmentCount_ )
  28664. , pAttachments( pAttachments_ )
  28665. , blendConstants( blendConstants_ )
  28666. {
  28667. }
  28668. VULKAN_HPP_CONSTEXPR_14 PipelineColorBlendStateCreateInfo( PipelineColorBlendStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  28669. PipelineColorBlendStateCreateInfo( VkPipelineColorBlendStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
  28670. : PipelineColorBlendStateCreateInfo( *reinterpret_cast<PipelineColorBlendStateCreateInfo const *>( &rhs ) )
  28671. {
  28672. }
  28673. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  28674. PipelineColorBlendStateCreateInfo(
  28675. VULKAN_HPP_NAMESPACE::PipelineColorBlendStateCreateFlags flags_,
  28676. VULKAN_HPP_NAMESPACE::Bool32 logicOpEnable_,
  28677. VULKAN_HPP_NAMESPACE::LogicOp logicOp_,
  28678. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::PipelineColorBlendAttachmentState> const & attachments_,
  28679. std::array<float, 4> const & blendConstants_ = {},
  28680. const void * pNext_ = nullptr )
  28681. : pNext( pNext_ )
  28682. , flags( flags_ )
  28683. , logicOpEnable( logicOpEnable_ )
  28684. , logicOp( logicOp_ )
  28685. , attachmentCount( static_cast<uint32_t>( attachments_.size() ) )
  28686. , pAttachments( attachments_.data() )
  28687. , blendConstants( blendConstants_ )
  28688. {
  28689. }
  28690. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  28691. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  28692. PipelineColorBlendStateCreateInfo & operator=( PipelineColorBlendStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  28693. PipelineColorBlendStateCreateInfo & operator=( VkPipelineColorBlendStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
  28694. {
  28695. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PipelineColorBlendStateCreateInfo const *>( &rhs );
  28696. return *this;
  28697. }
  28698. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  28699. VULKAN_HPP_CONSTEXPR_14 PipelineColorBlendStateCreateInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  28700. {
  28701. pNext = pNext_;
  28702. return *this;
  28703. }
  28704. VULKAN_HPP_CONSTEXPR_14 PipelineColorBlendStateCreateInfo & setFlags( VULKAN_HPP_NAMESPACE::PipelineColorBlendStateCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT
  28705. {
  28706. flags = flags_;
  28707. return *this;
  28708. }
  28709. VULKAN_HPP_CONSTEXPR_14 PipelineColorBlendStateCreateInfo & setLogicOpEnable( VULKAN_HPP_NAMESPACE::Bool32 logicOpEnable_ ) VULKAN_HPP_NOEXCEPT
  28710. {
  28711. logicOpEnable = logicOpEnable_;
  28712. return *this;
  28713. }
  28714. VULKAN_HPP_CONSTEXPR_14 PipelineColorBlendStateCreateInfo & setLogicOp( VULKAN_HPP_NAMESPACE::LogicOp logicOp_ ) VULKAN_HPP_NOEXCEPT
  28715. {
  28716. logicOp = logicOp_;
  28717. return *this;
  28718. }
  28719. VULKAN_HPP_CONSTEXPR_14 PipelineColorBlendStateCreateInfo & setAttachmentCount( uint32_t attachmentCount_ ) VULKAN_HPP_NOEXCEPT
  28720. {
  28721. attachmentCount = attachmentCount_;
  28722. return *this;
  28723. }
  28724. VULKAN_HPP_CONSTEXPR_14 PipelineColorBlendStateCreateInfo &
  28725. setPAttachments( const VULKAN_HPP_NAMESPACE::PipelineColorBlendAttachmentState * pAttachments_ ) VULKAN_HPP_NOEXCEPT
  28726. {
  28727. pAttachments = pAttachments_;
  28728. return *this;
  28729. }
  28730. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  28731. PipelineColorBlendStateCreateInfo & setAttachments(
  28732. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::PipelineColorBlendAttachmentState> const & attachments_ ) VULKAN_HPP_NOEXCEPT
  28733. {
  28734. attachmentCount = static_cast<uint32_t>( attachments_.size() );
  28735. pAttachments = attachments_.data();
  28736. return *this;
  28737. }
  28738. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  28739. VULKAN_HPP_CONSTEXPR_14 PipelineColorBlendStateCreateInfo & setBlendConstants( std::array<float, 4> blendConstants_ ) VULKAN_HPP_NOEXCEPT
  28740. {
  28741. blendConstants = blendConstants_;
  28742. return *this;
  28743. }
  28744. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  28745. operator VkPipelineColorBlendStateCreateInfo const &() const VULKAN_HPP_NOEXCEPT
  28746. {
  28747. return *reinterpret_cast<const VkPipelineColorBlendStateCreateInfo *>( this );
  28748. }
  28749. operator VkPipelineColorBlendStateCreateInfo &() VULKAN_HPP_NOEXCEPT
  28750. {
  28751. return *reinterpret_cast<VkPipelineColorBlendStateCreateInfo *>( this );
  28752. }
  28753. #if defined( VULKAN_HPP_USE_REFLECT )
  28754. # if 14 <= VULKAN_HPP_CPP_VERSION
  28755. auto
  28756. # else
  28757. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  28758. const void * const &,
  28759. VULKAN_HPP_NAMESPACE::PipelineColorBlendStateCreateFlags const &,
  28760. VULKAN_HPP_NAMESPACE::Bool32 const &,
  28761. VULKAN_HPP_NAMESPACE::LogicOp const &,
  28762. uint32_t const &,
  28763. const VULKAN_HPP_NAMESPACE::PipelineColorBlendAttachmentState * const &,
  28764. VULKAN_HPP_NAMESPACE::ArrayWrapper1D<float, 4> const &>
  28765. # endif
  28766. reflect() const VULKAN_HPP_NOEXCEPT
  28767. {
  28768. return std::tie( sType, pNext, flags, logicOpEnable, logicOp, attachmentCount, pAttachments, blendConstants );
  28769. }
  28770. #endif
  28771. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  28772. auto operator<=>( PipelineColorBlendStateCreateInfo const & ) const = default;
  28773. #else
  28774. bool operator==( PipelineColorBlendStateCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  28775. {
  28776. # if defined( VULKAN_HPP_USE_REFLECT )
  28777. return this->reflect() == rhs.reflect();
  28778. # else
  28779. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( flags == rhs.flags ) && ( logicOpEnable == rhs.logicOpEnable ) &&
  28780. ( logicOp == rhs.logicOp ) && ( attachmentCount == rhs.attachmentCount ) && ( pAttachments == rhs.pAttachments ) &&
  28781. ( blendConstants == rhs.blendConstants );
  28782. # endif
  28783. }
  28784. bool operator!=( PipelineColorBlendStateCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  28785. {
  28786. return !operator==( rhs );
  28787. }
  28788. #endif
  28789. public:
  28790. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineColorBlendStateCreateInfo;
  28791. const void * pNext = {};
  28792. VULKAN_HPP_NAMESPACE::PipelineColorBlendStateCreateFlags flags = {};
  28793. VULKAN_HPP_NAMESPACE::Bool32 logicOpEnable = {};
  28794. VULKAN_HPP_NAMESPACE::LogicOp logicOp = VULKAN_HPP_NAMESPACE::LogicOp::eClear;
  28795. uint32_t attachmentCount = {};
  28796. const VULKAN_HPP_NAMESPACE::PipelineColorBlendAttachmentState * pAttachments = {};
  28797. VULKAN_HPP_NAMESPACE::ArrayWrapper1D<float, 4> blendConstants = {};
  28798. };
  28799. template <>
  28800. struct CppType<StructureType, StructureType::ePipelineColorBlendStateCreateInfo>
  28801. {
  28802. using Type = PipelineColorBlendStateCreateInfo;
  28803. };
  28804. struct PipelineDynamicStateCreateInfo
  28805. {
  28806. using NativeType = VkPipelineDynamicStateCreateInfo;
  28807. static const bool allowDuplicate = false;
  28808. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineDynamicStateCreateInfo;
  28809. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  28810. VULKAN_HPP_CONSTEXPR PipelineDynamicStateCreateInfo( VULKAN_HPP_NAMESPACE::PipelineDynamicStateCreateFlags flags_ = {},
  28811. uint32_t dynamicStateCount_ = {},
  28812. const VULKAN_HPP_NAMESPACE::DynamicState * pDynamicStates_ = {},
  28813. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  28814. : pNext( pNext_ )
  28815. , flags( flags_ )
  28816. , dynamicStateCount( dynamicStateCount_ )
  28817. , pDynamicStates( pDynamicStates_ )
  28818. {
  28819. }
  28820. VULKAN_HPP_CONSTEXPR PipelineDynamicStateCreateInfo( PipelineDynamicStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  28821. PipelineDynamicStateCreateInfo( VkPipelineDynamicStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
  28822. : PipelineDynamicStateCreateInfo( *reinterpret_cast<PipelineDynamicStateCreateInfo const *>( &rhs ) )
  28823. {
  28824. }
  28825. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  28826. PipelineDynamicStateCreateInfo( VULKAN_HPP_NAMESPACE::PipelineDynamicStateCreateFlags flags_,
  28827. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::DynamicState> const & dynamicStates_,
  28828. const void * pNext_ = nullptr )
  28829. : pNext( pNext_ ), flags( flags_ ), dynamicStateCount( static_cast<uint32_t>( dynamicStates_.size() ) ), pDynamicStates( dynamicStates_.data() )
  28830. {
  28831. }
  28832. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  28833. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  28834. PipelineDynamicStateCreateInfo & operator=( PipelineDynamicStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  28835. PipelineDynamicStateCreateInfo & operator=( VkPipelineDynamicStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
  28836. {
  28837. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PipelineDynamicStateCreateInfo const *>( &rhs );
  28838. return *this;
  28839. }
  28840. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  28841. VULKAN_HPP_CONSTEXPR_14 PipelineDynamicStateCreateInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  28842. {
  28843. pNext = pNext_;
  28844. return *this;
  28845. }
  28846. VULKAN_HPP_CONSTEXPR_14 PipelineDynamicStateCreateInfo & setFlags( VULKAN_HPP_NAMESPACE::PipelineDynamicStateCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT
  28847. {
  28848. flags = flags_;
  28849. return *this;
  28850. }
  28851. VULKAN_HPP_CONSTEXPR_14 PipelineDynamicStateCreateInfo & setDynamicStateCount( uint32_t dynamicStateCount_ ) VULKAN_HPP_NOEXCEPT
  28852. {
  28853. dynamicStateCount = dynamicStateCount_;
  28854. return *this;
  28855. }
  28856. VULKAN_HPP_CONSTEXPR_14 PipelineDynamicStateCreateInfo & setPDynamicStates( const VULKAN_HPP_NAMESPACE::DynamicState * pDynamicStates_ ) VULKAN_HPP_NOEXCEPT
  28857. {
  28858. pDynamicStates = pDynamicStates_;
  28859. return *this;
  28860. }
  28861. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  28862. PipelineDynamicStateCreateInfo &
  28863. setDynamicStates( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::DynamicState> const & dynamicStates_ ) VULKAN_HPP_NOEXCEPT
  28864. {
  28865. dynamicStateCount = static_cast<uint32_t>( dynamicStates_.size() );
  28866. pDynamicStates = dynamicStates_.data();
  28867. return *this;
  28868. }
  28869. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  28870. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  28871. operator VkPipelineDynamicStateCreateInfo const &() const VULKAN_HPP_NOEXCEPT
  28872. {
  28873. return *reinterpret_cast<const VkPipelineDynamicStateCreateInfo *>( this );
  28874. }
  28875. operator VkPipelineDynamicStateCreateInfo &() VULKAN_HPP_NOEXCEPT
  28876. {
  28877. return *reinterpret_cast<VkPipelineDynamicStateCreateInfo *>( this );
  28878. }
  28879. #if defined( VULKAN_HPP_USE_REFLECT )
  28880. # if 14 <= VULKAN_HPP_CPP_VERSION
  28881. auto
  28882. # else
  28883. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  28884. const void * const &,
  28885. VULKAN_HPP_NAMESPACE::PipelineDynamicStateCreateFlags const &,
  28886. uint32_t const &,
  28887. const VULKAN_HPP_NAMESPACE::DynamicState * const &>
  28888. # endif
  28889. reflect() const VULKAN_HPP_NOEXCEPT
  28890. {
  28891. return std::tie( sType, pNext, flags, dynamicStateCount, pDynamicStates );
  28892. }
  28893. #endif
  28894. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  28895. auto operator<=>( PipelineDynamicStateCreateInfo const & ) const = default;
  28896. #else
  28897. bool operator==( PipelineDynamicStateCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  28898. {
  28899. # if defined( VULKAN_HPP_USE_REFLECT )
  28900. return this->reflect() == rhs.reflect();
  28901. # else
  28902. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( flags == rhs.flags ) && ( dynamicStateCount == rhs.dynamicStateCount ) &&
  28903. ( pDynamicStates == rhs.pDynamicStates );
  28904. # endif
  28905. }
  28906. bool operator!=( PipelineDynamicStateCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  28907. {
  28908. return !operator==( rhs );
  28909. }
  28910. #endif
  28911. public:
  28912. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineDynamicStateCreateInfo;
  28913. const void * pNext = {};
  28914. VULKAN_HPP_NAMESPACE::PipelineDynamicStateCreateFlags flags = {};
  28915. uint32_t dynamicStateCount = {};
  28916. const VULKAN_HPP_NAMESPACE::DynamicState * pDynamicStates = {};
  28917. };
  28918. template <>
  28919. struct CppType<StructureType, StructureType::ePipelineDynamicStateCreateInfo>
  28920. {
  28921. using Type = PipelineDynamicStateCreateInfo;
  28922. };
  28923. struct GraphicsPipelineCreateInfo
  28924. {
  28925. using NativeType = VkGraphicsPipelineCreateInfo;
  28926. static const bool allowDuplicate = false;
  28927. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eGraphicsPipelineCreateInfo;
  28928. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  28929. VULKAN_HPP_CONSTEXPR_14 GraphicsPipelineCreateInfo( VULKAN_HPP_NAMESPACE::PipelineCreateFlags flags_ = {},
  28930. uint32_t stageCount_ = {},
  28931. const VULKAN_HPP_NAMESPACE::PipelineShaderStageCreateInfo * pStages_ = {},
  28932. const VULKAN_HPP_NAMESPACE::PipelineVertexInputStateCreateInfo * pVertexInputState_ = {},
  28933. const VULKAN_HPP_NAMESPACE::PipelineInputAssemblyStateCreateInfo * pInputAssemblyState_ = {},
  28934. const VULKAN_HPP_NAMESPACE::PipelineTessellationStateCreateInfo * pTessellationState_ = {},
  28935. const VULKAN_HPP_NAMESPACE::PipelineViewportStateCreateInfo * pViewportState_ = {},
  28936. const VULKAN_HPP_NAMESPACE::PipelineRasterizationStateCreateInfo * pRasterizationState_ = {},
  28937. const VULKAN_HPP_NAMESPACE::PipelineMultisampleStateCreateInfo * pMultisampleState_ = {},
  28938. const VULKAN_HPP_NAMESPACE::PipelineDepthStencilStateCreateInfo * pDepthStencilState_ = {},
  28939. const VULKAN_HPP_NAMESPACE::PipelineColorBlendStateCreateInfo * pColorBlendState_ = {},
  28940. const VULKAN_HPP_NAMESPACE::PipelineDynamicStateCreateInfo * pDynamicState_ = {},
  28941. VULKAN_HPP_NAMESPACE::PipelineLayout layout_ = {},
  28942. VULKAN_HPP_NAMESPACE::RenderPass renderPass_ = {},
  28943. uint32_t subpass_ = {},
  28944. VULKAN_HPP_NAMESPACE::Pipeline basePipelineHandle_ = {},
  28945. int32_t basePipelineIndex_ = {},
  28946. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  28947. : pNext( pNext_ )
  28948. , flags( flags_ )
  28949. , stageCount( stageCount_ )
  28950. , pStages( pStages_ )
  28951. , pVertexInputState( pVertexInputState_ )
  28952. , pInputAssemblyState( pInputAssemblyState_ )
  28953. , pTessellationState( pTessellationState_ )
  28954. , pViewportState( pViewportState_ )
  28955. , pRasterizationState( pRasterizationState_ )
  28956. , pMultisampleState( pMultisampleState_ )
  28957. , pDepthStencilState( pDepthStencilState_ )
  28958. , pColorBlendState( pColorBlendState_ )
  28959. , pDynamicState( pDynamicState_ )
  28960. , layout( layout_ )
  28961. , renderPass( renderPass_ )
  28962. , subpass( subpass_ )
  28963. , basePipelineHandle( basePipelineHandle_ )
  28964. , basePipelineIndex( basePipelineIndex_ )
  28965. {
  28966. }
  28967. VULKAN_HPP_CONSTEXPR_14 GraphicsPipelineCreateInfo( GraphicsPipelineCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  28968. GraphicsPipelineCreateInfo( VkGraphicsPipelineCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
  28969. : GraphicsPipelineCreateInfo( *reinterpret_cast<GraphicsPipelineCreateInfo const *>( &rhs ) )
  28970. {
  28971. }
  28972. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  28973. GraphicsPipelineCreateInfo( VULKAN_HPP_NAMESPACE::PipelineCreateFlags flags_,
  28974. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::PipelineShaderStageCreateInfo> const & stages_,
  28975. const VULKAN_HPP_NAMESPACE::PipelineVertexInputStateCreateInfo * pVertexInputState_ = {},
  28976. const VULKAN_HPP_NAMESPACE::PipelineInputAssemblyStateCreateInfo * pInputAssemblyState_ = {},
  28977. const VULKAN_HPP_NAMESPACE::PipelineTessellationStateCreateInfo * pTessellationState_ = {},
  28978. const VULKAN_HPP_NAMESPACE::PipelineViewportStateCreateInfo * pViewportState_ = {},
  28979. const VULKAN_HPP_NAMESPACE::PipelineRasterizationStateCreateInfo * pRasterizationState_ = {},
  28980. const VULKAN_HPP_NAMESPACE::PipelineMultisampleStateCreateInfo * pMultisampleState_ = {},
  28981. const VULKAN_HPP_NAMESPACE::PipelineDepthStencilStateCreateInfo * pDepthStencilState_ = {},
  28982. const VULKAN_HPP_NAMESPACE::PipelineColorBlendStateCreateInfo * pColorBlendState_ = {},
  28983. const VULKAN_HPP_NAMESPACE::PipelineDynamicStateCreateInfo * pDynamicState_ = {},
  28984. VULKAN_HPP_NAMESPACE::PipelineLayout layout_ = {},
  28985. VULKAN_HPP_NAMESPACE::RenderPass renderPass_ = {},
  28986. uint32_t subpass_ = {},
  28987. VULKAN_HPP_NAMESPACE::Pipeline basePipelineHandle_ = {},
  28988. int32_t basePipelineIndex_ = {},
  28989. const void * pNext_ = nullptr )
  28990. : pNext( pNext_ )
  28991. , flags( flags_ )
  28992. , stageCount( static_cast<uint32_t>( stages_.size() ) )
  28993. , pStages( stages_.data() )
  28994. , pVertexInputState( pVertexInputState_ )
  28995. , pInputAssemblyState( pInputAssemblyState_ )
  28996. , pTessellationState( pTessellationState_ )
  28997. , pViewportState( pViewportState_ )
  28998. , pRasterizationState( pRasterizationState_ )
  28999. , pMultisampleState( pMultisampleState_ )
  29000. , pDepthStencilState( pDepthStencilState_ )
  29001. , pColorBlendState( pColorBlendState_ )
  29002. , pDynamicState( pDynamicState_ )
  29003. , layout( layout_ )
  29004. , renderPass( renderPass_ )
  29005. , subpass( subpass_ )
  29006. , basePipelineHandle( basePipelineHandle_ )
  29007. , basePipelineIndex( basePipelineIndex_ )
  29008. {
  29009. }
  29010. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  29011. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  29012. GraphicsPipelineCreateInfo & operator=( GraphicsPipelineCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  29013. GraphicsPipelineCreateInfo & operator=( VkGraphicsPipelineCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
  29014. {
  29015. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::GraphicsPipelineCreateInfo const *>( &rhs );
  29016. return *this;
  29017. }
  29018. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  29019. VULKAN_HPP_CONSTEXPR_14 GraphicsPipelineCreateInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  29020. {
  29021. pNext = pNext_;
  29022. return *this;
  29023. }
  29024. VULKAN_HPP_CONSTEXPR_14 GraphicsPipelineCreateInfo & setFlags( VULKAN_HPP_NAMESPACE::PipelineCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT
  29025. {
  29026. flags = flags_;
  29027. return *this;
  29028. }
  29029. VULKAN_HPP_CONSTEXPR_14 GraphicsPipelineCreateInfo & setStageCount( uint32_t stageCount_ ) VULKAN_HPP_NOEXCEPT
  29030. {
  29031. stageCount = stageCount_;
  29032. return *this;
  29033. }
  29034. VULKAN_HPP_CONSTEXPR_14 GraphicsPipelineCreateInfo & setPStages( const VULKAN_HPP_NAMESPACE::PipelineShaderStageCreateInfo * pStages_ ) VULKAN_HPP_NOEXCEPT
  29035. {
  29036. pStages = pStages_;
  29037. return *this;
  29038. }
  29039. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  29040. GraphicsPipelineCreateInfo &
  29041. setStages( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::PipelineShaderStageCreateInfo> const & stages_ ) VULKAN_HPP_NOEXCEPT
  29042. {
  29043. stageCount = static_cast<uint32_t>( stages_.size() );
  29044. pStages = stages_.data();
  29045. return *this;
  29046. }
  29047. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  29048. VULKAN_HPP_CONSTEXPR_14 GraphicsPipelineCreateInfo &
  29049. setPVertexInputState( const VULKAN_HPP_NAMESPACE::PipelineVertexInputStateCreateInfo * pVertexInputState_ ) VULKAN_HPP_NOEXCEPT
  29050. {
  29051. pVertexInputState = pVertexInputState_;
  29052. return *this;
  29053. }
  29054. VULKAN_HPP_CONSTEXPR_14 GraphicsPipelineCreateInfo &
  29055. setPInputAssemblyState( const VULKAN_HPP_NAMESPACE::PipelineInputAssemblyStateCreateInfo * pInputAssemblyState_ ) VULKAN_HPP_NOEXCEPT
  29056. {
  29057. pInputAssemblyState = pInputAssemblyState_;
  29058. return *this;
  29059. }
  29060. VULKAN_HPP_CONSTEXPR_14 GraphicsPipelineCreateInfo &
  29061. setPTessellationState( const VULKAN_HPP_NAMESPACE::PipelineTessellationStateCreateInfo * pTessellationState_ ) VULKAN_HPP_NOEXCEPT
  29062. {
  29063. pTessellationState = pTessellationState_;
  29064. return *this;
  29065. }
  29066. VULKAN_HPP_CONSTEXPR_14 GraphicsPipelineCreateInfo &
  29067. setPViewportState( const VULKAN_HPP_NAMESPACE::PipelineViewportStateCreateInfo * pViewportState_ ) VULKAN_HPP_NOEXCEPT
  29068. {
  29069. pViewportState = pViewportState_;
  29070. return *this;
  29071. }
  29072. VULKAN_HPP_CONSTEXPR_14 GraphicsPipelineCreateInfo &
  29073. setPRasterizationState( const VULKAN_HPP_NAMESPACE::PipelineRasterizationStateCreateInfo * pRasterizationState_ ) VULKAN_HPP_NOEXCEPT
  29074. {
  29075. pRasterizationState = pRasterizationState_;
  29076. return *this;
  29077. }
  29078. VULKAN_HPP_CONSTEXPR_14 GraphicsPipelineCreateInfo &
  29079. setPMultisampleState( const VULKAN_HPP_NAMESPACE::PipelineMultisampleStateCreateInfo * pMultisampleState_ ) VULKAN_HPP_NOEXCEPT
  29080. {
  29081. pMultisampleState = pMultisampleState_;
  29082. return *this;
  29083. }
  29084. VULKAN_HPP_CONSTEXPR_14 GraphicsPipelineCreateInfo &
  29085. setPDepthStencilState( const VULKAN_HPP_NAMESPACE::PipelineDepthStencilStateCreateInfo * pDepthStencilState_ ) VULKAN_HPP_NOEXCEPT
  29086. {
  29087. pDepthStencilState = pDepthStencilState_;
  29088. return *this;
  29089. }
  29090. VULKAN_HPP_CONSTEXPR_14 GraphicsPipelineCreateInfo &
  29091. setPColorBlendState( const VULKAN_HPP_NAMESPACE::PipelineColorBlendStateCreateInfo * pColorBlendState_ ) VULKAN_HPP_NOEXCEPT
  29092. {
  29093. pColorBlendState = pColorBlendState_;
  29094. return *this;
  29095. }
  29096. VULKAN_HPP_CONSTEXPR_14 GraphicsPipelineCreateInfo &
  29097. setPDynamicState( const VULKAN_HPP_NAMESPACE::PipelineDynamicStateCreateInfo * pDynamicState_ ) VULKAN_HPP_NOEXCEPT
  29098. {
  29099. pDynamicState = pDynamicState_;
  29100. return *this;
  29101. }
  29102. VULKAN_HPP_CONSTEXPR_14 GraphicsPipelineCreateInfo & setLayout( VULKAN_HPP_NAMESPACE::PipelineLayout layout_ ) VULKAN_HPP_NOEXCEPT
  29103. {
  29104. layout = layout_;
  29105. return *this;
  29106. }
  29107. VULKAN_HPP_CONSTEXPR_14 GraphicsPipelineCreateInfo & setRenderPass( VULKAN_HPP_NAMESPACE::RenderPass renderPass_ ) VULKAN_HPP_NOEXCEPT
  29108. {
  29109. renderPass = renderPass_;
  29110. return *this;
  29111. }
  29112. VULKAN_HPP_CONSTEXPR_14 GraphicsPipelineCreateInfo & setSubpass( uint32_t subpass_ ) VULKAN_HPP_NOEXCEPT
  29113. {
  29114. subpass = subpass_;
  29115. return *this;
  29116. }
  29117. VULKAN_HPP_CONSTEXPR_14 GraphicsPipelineCreateInfo & setBasePipelineHandle( VULKAN_HPP_NAMESPACE::Pipeline basePipelineHandle_ ) VULKAN_HPP_NOEXCEPT
  29118. {
  29119. basePipelineHandle = basePipelineHandle_;
  29120. return *this;
  29121. }
  29122. VULKAN_HPP_CONSTEXPR_14 GraphicsPipelineCreateInfo & setBasePipelineIndex( int32_t basePipelineIndex_ ) VULKAN_HPP_NOEXCEPT
  29123. {
  29124. basePipelineIndex = basePipelineIndex_;
  29125. return *this;
  29126. }
  29127. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  29128. operator VkGraphicsPipelineCreateInfo const &() const VULKAN_HPP_NOEXCEPT
  29129. {
  29130. return *reinterpret_cast<const VkGraphicsPipelineCreateInfo *>( this );
  29131. }
  29132. operator VkGraphicsPipelineCreateInfo &() VULKAN_HPP_NOEXCEPT
  29133. {
  29134. return *reinterpret_cast<VkGraphicsPipelineCreateInfo *>( this );
  29135. }
  29136. #if defined( VULKAN_HPP_USE_REFLECT )
  29137. # if 14 <= VULKAN_HPP_CPP_VERSION
  29138. auto
  29139. # else
  29140. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  29141. const void * const &,
  29142. VULKAN_HPP_NAMESPACE::PipelineCreateFlags const &,
  29143. uint32_t const &,
  29144. const VULKAN_HPP_NAMESPACE::PipelineShaderStageCreateInfo * const &,
  29145. const VULKAN_HPP_NAMESPACE::PipelineVertexInputStateCreateInfo * const &,
  29146. const VULKAN_HPP_NAMESPACE::PipelineInputAssemblyStateCreateInfo * const &,
  29147. const VULKAN_HPP_NAMESPACE::PipelineTessellationStateCreateInfo * const &,
  29148. const VULKAN_HPP_NAMESPACE::PipelineViewportStateCreateInfo * const &,
  29149. const VULKAN_HPP_NAMESPACE::PipelineRasterizationStateCreateInfo * const &,
  29150. const VULKAN_HPP_NAMESPACE::PipelineMultisampleStateCreateInfo * const &,
  29151. const VULKAN_HPP_NAMESPACE::PipelineDepthStencilStateCreateInfo * const &,
  29152. const VULKAN_HPP_NAMESPACE::PipelineColorBlendStateCreateInfo * const &,
  29153. const VULKAN_HPP_NAMESPACE::PipelineDynamicStateCreateInfo * const &,
  29154. VULKAN_HPP_NAMESPACE::PipelineLayout const &,
  29155. VULKAN_HPP_NAMESPACE::RenderPass const &,
  29156. uint32_t const &,
  29157. VULKAN_HPP_NAMESPACE::Pipeline const &,
  29158. int32_t const &>
  29159. # endif
  29160. reflect() const VULKAN_HPP_NOEXCEPT
  29161. {
  29162. return std::tie( sType,
  29163. pNext,
  29164. flags,
  29165. stageCount,
  29166. pStages,
  29167. pVertexInputState,
  29168. pInputAssemblyState,
  29169. pTessellationState,
  29170. pViewportState,
  29171. pRasterizationState,
  29172. pMultisampleState,
  29173. pDepthStencilState,
  29174. pColorBlendState,
  29175. pDynamicState,
  29176. layout,
  29177. renderPass,
  29178. subpass,
  29179. basePipelineHandle,
  29180. basePipelineIndex );
  29181. }
  29182. #endif
  29183. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  29184. auto operator<=>( GraphicsPipelineCreateInfo const & ) const = default;
  29185. #else
  29186. bool operator==( GraphicsPipelineCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  29187. {
  29188. # if defined( VULKAN_HPP_USE_REFLECT )
  29189. return this->reflect() == rhs.reflect();
  29190. # else
  29191. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( flags == rhs.flags ) && ( stageCount == rhs.stageCount ) && ( pStages == rhs.pStages ) &&
  29192. ( pVertexInputState == rhs.pVertexInputState ) && ( pInputAssemblyState == rhs.pInputAssemblyState ) &&
  29193. ( pTessellationState == rhs.pTessellationState ) && ( pViewportState == rhs.pViewportState ) &&
  29194. ( pRasterizationState == rhs.pRasterizationState ) && ( pMultisampleState == rhs.pMultisampleState ) &&
  29195. ( pDepthStencilState == rhs.pDepthStencilState ) && ( pColorBlendState == rhs.pColorBlendState ) && ( pDynamicState == rhs.pDynamicState ) &&
  29196. ( layout == rhs.layout ) && ( renderPass == rhs.renderPass ) && ( subpass == rhs.subpass ) && ( basePipelineHandle == rhs.basePipelineHandle ) &&
  29197. ( basePipelineIndex == rhs.basePipelineIndex );
  29198. # endif
  29199. }
  29200. bool operator!=( GraphicsPipelineCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  29201. {
  29202. return !operator==( rhs );
  29203. }
  29204. #endif
  29205. public:
  29206. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eGraphicsPipelineCreateInfo;
  29207. const void * pNext = {};
  29208. VULKAN_HPP_NAMESPACE::PipelineCreateFlags flags = {};
  29209. uint32_t stageCount = {};
  29210. const VULKAN_HPP_NAMESPACE::PipelineShaderStageCreateInfo * pStages = {};
  29211. const VULKAN_HPP_NAMESPACE::PipelineVertexInputStateCreateInfo * pVertexInputState = {};
  29212. const VULKAN_HPP_NAMESPACE::PipelineInputAssemblyStateCreateInfo * pInputAssemblyState = {};
  29213. const VULKAN_HPP_NAMESPACE::PipelineTessellationStateCreateInfo * pTessellationState = {};
  29214. const VULKAN_HPP_NAMESPACE::PipelineViewportStateCreateInfo * pViewportState = {};
  29215. const VULKAN_HPP_NAMESPACE::PipelineRasterizationStateCreateInfo * pRasterizationState = {};
  29216. const VULKAN_HPP_NAMESPACE::PipelineMultisampleStateCreateInfo * pMultisampleState = {};
  29217. const VULKAN_HPP_NAMESPACE::PipelineDepthStencilStateCreateInfo * pDepthStencilState = {};
  29218. const VULKAN_HPP_NAMESPACE::PipelineColorBlendStateCreateInfo * pColorBlendState = {};
  29219. const VULKAN_HPP_NAMESPACE::PipelineDynamicStateCreateInfo * pDynamicState = {};
  29220. VULKAN_HPP_NAMESPACE::PipelineLayout layout = {};
  29221. VULKAN_HPP_NAMESPACE::RenderPass renderPass = {};
  29222. uint32_t subpass = {};
  29223. VULKAN_HPP_NAMESPACE::Pipeline basePipelineHandle = {};
  29224. int32_t basePipelineIndex = {};
  29225. };
  29226. template <>
  29227. struct CppType<StructureType, StructureType::eGraphicsPipelineCreateInfo>
  29228. {
  29229. using Type = GraphicsPipelineCreateInfo;
  29230. };
  29231. struct GraphicsPipelineLibraryCreateInfoEXT
  29232. {
  29233. using NativeType = VkGraphicsPipelineLibraryCreateInfoEXT;
  29234. static const bool allowDuplicate = false;
  29235. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eGraphicsPipelineLibraryCreateInfoEXT;
  29236. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  29237. VULKAN_HPP_CONSTEXPR GraphicsPipelineLibraryCreateInfoEXT( VULKAN_HPP_NAMESPACE::GraphicsPipelineLibraryFlagsEXT flags_ = {},
  29238. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  29239. : pNext( pNext_ )
  29240. , flags( flags_ )
  29241. {
  29242. }
  29243. VULKAN_HPP_CONSTEXPR GraphicsPipelineLibraryCreateInfoEXT( GraphicsPipelineLibraryCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  29244. GraphicsPipelineLibraryCreateInfoEXT( VkGraphicsPipelineLibraryCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  29245. : GraphicsPipelineLibraryCreateInfoEXT( *reinterpret_cast<GraphicsPipelineLibraryCreateInfoEXT const *>( &rhs ) )
  29246. {
  29247. }
  29248. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  29249. GraphicsPipelineLibraryCreateInfoEXT & operator=( GraphicsPipelineLibraryCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  29250. GraphicsPipelineLibraryCreateInfoEXT & operator=( VkGraphicsPipelineLibraryCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  29251. {
  29252. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::GraphicsPipelineLibraryCreateInfoEXT const *>( &rhs );
  29253. return *this;
  29254. }
  29255. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  29256. VULKAN_HPP_CONSTEXPR_14 GraphicsPipelineLibraryCreateInfoEXT & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
  29257. {
  29258. pNext = pNext_;
  29259. return *this;
  29260. }
  29261. VULKAN_HPP_CONSTEXPR_14 GraphicsPipelineLibraryCreateInfoEXT & setFlags( VULKAN_HPP_NAMESPACE::GraphicsPipelineLibraryFlagsEXT flags_ ) VULKAN_HPP_NOEXCEPT
  29262. {
  29263. flags = flags_;
  29264. return *this;
  29265. }
  29266. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  29267. operator VkGraphicsPipelineLibraryCreateInfoEXT const &() const VULKAN_HPP_NOEXCEPT
  29268. {
  29269. return *reinterpret_cast<const VkGraphicsPipelineLibraryCreateInfoEXT *>( this );
  29270. }
  29271. operator VkGraphicsPipelineLibraryCreateInfoEXT &() VULKAN_HPP_NOEXCEPT
  29272. {
  29273. return *reinterpret_cast<VkGraphicsPipelineLibraryCreateInfoEXT *>( this );
  29274. }
  29275. #if defined( VULKAN_HPP_USE_REFLECT )
  29276. # if 14 <= VULKAN_HPP_CPP_VERSION
  29277. auto
  29278. # else
  29279. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::GraphicsPipelineLibraryFlagsEXT const &>
  29280. # endif
  29281. reflect() const VULKAN_HPP_NOEXCEPT
  29282. {
  29283. return std::tie( sType, pNext, flags );
  29284. }
  29285. #endif
  29286. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  29287. auto operator<=>( GraphicsPipelineLibraryCreateInfoEXT const & ) const = default;
  29288. #else
  29289. bool operator==( GraphicsPipelineLibraryCreateInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  29290. {
  29291. # if defined( VULKAN_HPP_USE_REFLECT )
  29292. return this->reflect() == rhs.reflect();
  29293. # else
  29294. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( flags == rhs.flags );
  29295. # endif
  29296. }
  29297. bool operator!=( GraphicsPipelineLibraryCreateInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  29298. {
  29299. return !operator==( rhs );
  29300. }
  29301. #endif
  29302. public:
  29303. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eGraphicsPipelineLibraryCreateInfoEXT;
  29304. void * pNext = {};
  29305. VULKAN_HPP_NAMESPACE::GraphicsPipelineLibraryFlagsEXT flags = {};
  29306. };
  29307. template <>
  29308. struct CppType<StructureType, StructureType::eGraphicsPipelineLibraryCreateInfoEXT>
  29309. {
  29310. using Type = GraphicsPipelineLibraryCreateInfoEXT;
  29311. };
  29312. struct GraphicsShaderGroupCreateInfoNV
  29313. {
  29314. using NativeType = VkGraphicsShaderGroupCreateInfoNV;
  29315. static const bool allowDuplicate = false;
  29316. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eGraphicsShaderGroupCreateInfoNV;
  29317. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  29318. VULKAN_HPP_CONSTEXPR GraphicsShaderGroupCreateInfoNV( uint32_t stageCount_ = {},
  29319. const VULKAN_HPP_NAMESPACE::PipelineShaderStageCreateInfo * pStages_ = {},
  29320. const VULKAN_HPP_NAMESPACE::PipelineVertexInputStateCreateInfo * pVertexInputState_ = {},
  29321. const VULKAN_HPP_NAMESPACE::PipelineTessellationStateCreateInfo * pTessellationState_ = {},
  29322. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  29323. : pNext( pNext_ )
  29324. , stageCount( stageCount_ )
  29325. , pStages( pStages_ )
  29326. , pVertexInputState( pVertexInputState_ )
  29327. , pTessellationState( pTessellationState_ )
  29328. {
  29329. }
  29330. VULKAN_HPP_CONSTEXPR GraphicsShaderGroupCreateInfoNV( GraphicsShaderGroupCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  29331. GraphicsShaderGroupCreateInfoNV( VkGraphicsShaderGroupCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
  29332. : GraphicsShaderGroupCreateInfoNV( *reinterpret_cast<GraphicsShaderGroupCreateInfoNV const *>( &rhs ) )
  29333. {
  29334. }
  29335. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  29336. GraphicsShaderGroupCreateInfoNV( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::PipelineShaderStageCreateInfo> const & stages_,
  29337. const VULKAN_HPP_NAMESPACE::PipelineVertexInputStateCreateInfo * pVertexInputState_ = {},
  29338. const VULKAN_HPP_NAMESPACE::PipelineTessellationStateCreateInfo * pTessellationState_ = {},
  29339. const void * pNext_ = nullptr )
  29340. : pNext( pNext_ )
  29341. , stageCount( static_cast<uint32_t>( stages_.size() ) )
  29342. , pStages( stages_.data() )
  29343. , pVertexInputState( pVertexInputState_ )
  29344. , pTessellationState( pTessellationState_ )
  29345. {
  29346. }
  29347. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  29348. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  29349. GraphicsShaderGroupCreateInfoNV & operator=( GraphicsShaderGroupCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  29350. GraphicsShaderGroupCreateInfoNV & operator=( VkGraphicsShaderGroupCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
  29351. {
  29352. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::GraphicsShaderGroupCreateInfoNV const *>( &rhs );
  29353. return *this;
  29354. }
  29355. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  29356. VULKAN_HPP_CONSTEXPR_14 GraphicsShaderGroupCreateInfoNV & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  29357. {
  29358. pNext = pNext_;
  29359. return *this;
  29360. }
  29361. VULKAN_HPP_CONSTEXPR_14 GraphicsShaderGroupCreateInfoNV & setStageCount( uint32_t stageCount_ ) VULKAN_HPP_NOEXCEPT
  29362. {
  29363. stageCount = stageCount_;
  29364. return *this;
  29365. }
  29366. VULKAN_HPP_CONSTEXPR_14 GraphicsShaderGroupCreateInfoNV &
  29367. setPStages( const VULKAN_HPP_NAMESPACE::PipelineShaderStageCreateInfo * pStages_ ) VULKAN_HPP_NOEXCEPT
  29368. {
  29369. pStages = pStages_;
  29370. return *this;
  29371. }
  29372. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  29373. GraphicsShaderGroupCreateInfoNV &
  29374. setStages( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::PipelineShaderStageCreateInfo> const & stages_ ) VULKAN_HPP_NOEXCEPT
  29375. {
  29376. stageCount = static_cast<uint32_t>( stages_.size() );
  29377. pStages = stages_.data();
  29378. return *this;
  29379. }
  29380. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  29381. VULKAN_HPP_CONSTEXPR_14 GraphicsShaderGroupCreateInfoNV &
  29382. setPVertexInputState( const VULKAN_HPP_NAMESPACE::PipelineVertexInputStateCreateInfo * pVertexInputState_ ) VULKAN_HPP_NOEXCEPT
  29383. {
  29384. pVertexInputState = pVertexInputState_;
  29385. return *this;
  29386. }
  29387. VULKAN_HPP_CONSTEXPR_14 GraphicsShaderGroupCreateInfoNV &
  29388. setPTessellationState( const VULKAN_HPP_NAMESPACE::PipelineTessellationStateCreateInfo * pTessellationState_ ) VULKAN_HPP_NOEXCEPT
  29389. {
  29390. pTessellationState = pTessellationState_;
  29391. return *this;
  29392. }
  29393. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  29394. operator VkGraphicsShaderGroupCreateInfoNV const &() const VULKAN_HPP_NOEXCEPT
  29395. {
  29396. return *reinterpret_cast<const VkGraphicsShaderGroupCreateInfoNV *>( this );
  29397. }
  29398. operator VkGraphicsShaderGroupCreateInfoNV &() VULKAN_HPP_NOEXCEPT
  29399. {
  29400. return *reinterpret_cast<VkGraphicsShaderGroupCreateInfoNV *>( this );
  29401. }
  29402. #if defined( VULKAN_HPP_USE_REFLECT )
  29403. # if 14 <= VULKAN_HPP_CPP_VERSION
  29404. auto
  29405. # else
  29406. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  29407. const void * const &,
  29408. uint32_t const &,
  29409. const VULKAN_HPP_NAMESPACE::PipelineShaderStageCreateInfo * const &,
  29410. const VULKAN_HPP_NAMESPACE::PipelineVertexInputStateCreateInfo * const &,
  29411. const VULKAN_HPP_NAMESPACE::PipelineTessellationStateCreateInfo * const &>
  29412. # endif
  29413. reflect() const VULKAN_HPP_NOEXCEPT
  29414. {
  29415. return std::tie( sType, pNext, stageCount, pStages, pVertexInputState, pTessellationState );
  29416. }
  29417. #endif
  29418. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  29419. auto operator<=>( GraphicsShaderGroupCreateInfoNV const & ) const = default;
  29420. #else
  29421. bool operator==( GraphicsShaderGroupCreateInfoNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  29422. {
  29423. # if defined( VULKAN_HPP_USE_REFLECT )
  29424. return this->reflect() == rhs.reflect();
  29425. # else
  29426. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( stageCount == rhs.stageCount ) && ( pStages == rhs.pStages ) &&
  29427. ( pVertexInputState == rhs.pVertexInputState ) && ( pTessellationState == rhs.pTessellationState );
  29428. # endif
  29429. }
  29430. bool operator!=( GraphicsShaderGroupCreateInfoNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  29431. {
  29432. return !operator==( rhs );
  29433. }
  29434. #endif
  29435. public:
  29436. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eGraphicsShaderGroupCreateInfoNV;
  29437. const void * pNext = {};
  29438. uint32_t stageCount = {};
  29439. const VULKAN_HPP_NAMESPACE::PipelineShaderStageCreateInfo * pStages = {};
  29440. const VULKAN_HPP_NAMESPACE::PipelineVertexInputStateCreateInfo * pVertexInputState = {};
  29441. const VULKAN_HPP_NAMESPACE::PipelineTessellationStateCreateInfo * pTessellationState = {};
  29442. };
  29443. template <>
  29444. struct CppType<StructureType, StructureType::eGraphicsShaderGroupCreateInfoNV>
  29445. {
  29446. using Type = GraphicsShaderGroupCreateInfoNV;
  29447. };
  29448. struct GraphicsPipelineShaderGroupsCreateInfoNV
  29449. {
  29450. using NativeType = VkGraphicsPipelineShaderGroupsCreateInfoNV;
  29451. static const bool allowDuplicate = false;
  29452. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eGraphicsPipelineShaderGroupsCreateInfoNV;
  29453. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  29454. VULKAN_HPP_CONSTEXPR GraphicsPipelineShaderGroupsCreateInfoNV( uint32_t groupCount_ = {},
  29455. const VULKAN_HPP_NAMESPACE::GraphicsShaderGroupCreateInfoNV * pGroups_ = {},
  29456. uint32_t pipelineCount_ = {},
  29457. const VULKAN_HPP_NAMESPACE::Pipeline * pPipelines_ = {},
  29458. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  29459. : pNext( pNext_ )
  29460. , groupCount( groupCount_ )
  29461. , pGroups( pGroups_ )
  29462. , pipelineCount( pipelineCount_ )
  29463. , pPipelines( pPipelines_ )
  29464. {
  29465. }
  29466. VULKAN_HPP_CONSTEXPR GraphicsPipelineShaderGroupsCreateInfoNV( GraphicsPipelineShaderGroupsCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  29467. GraphicsPipelineShaderGroupsCreateInfoNV( VkGraphicsPipelineShaderGroupsCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
  29468. : GraphicsPipelineShaderGroupsCreateInfoNV( *reinterpret_cast<GraphicsPipelineShaderGroupsCreateInfoNV const *>( &rhs ) )
  29469. {
  29470. }
  29471. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  29472. GraphicsPipelineShaderGroupsCreateInfoNV(
  29473. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::GraphicsShaderGroupCreateInfoNV> const & groups_,
  29474. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::Pipeline> const & pipelines_ = {},
  29475. const void * pNext_ = nullptr )
  29476. : pNext( pNext_ )
  29477. , groupCount( static_cast<uint32_t>( groups_.size() ) )
  29478. , pGroups( groups_.data() )
  29479. , pipelineCount( static_cast<uint32_t>( pipelines_.size() ) )
  29480. , pPipelines( pipelines_.data() )
  29481. {
  29482. }
  29483. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  29484. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  29485. GraphicsPipelineShaderGroupsCreateInfoNV & operator=( GraphicsPipelineShaderGroupsCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  29486. GraphicsPipelineShaderGroupsCreateInfoNV & operator=( VkGraphicsPipelineShaderGroupsCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
  29487. {
  29488. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::GraphicsPipelineShaderGroupsCreateInfoNV const *>( &rhs );
  29489. return *this;
  29490. }
  29491. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  29492. VULKAN_HPP_CONSTEXPR_14 GraphicsPipelineShaderGroupsCreateInfoNV & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  29493. {
  29494. pNext = pNext_;
  29495. return *this;
  29496. }
  29497. VULKAN_HPP_CONSTEXPR_14 GraphicsPipelineShaderGroupsCreateInfoNV & setGroupCount( uint32_t groupCount_ ) VULKAN_HPP_NOEXCEPT
  29498. {
  29499. groupCount = groupCount_;
  29500. return *this;
  29501. }
  29502. VULKAN_HPP_CONSTEXPR_14 GraphicsPipelineShaderGroupsCreateInfoNV &
  29503. setPGroups( const VULKAN_HPP_NAMESPACE::GraphicsShaderGroupCreateInfoNV * pGroups_ ) VULKAN_HPP_NOEXCEPT
  29504. {
  29505. pGroups = pGroups_;
  29506. return *this;
  29507. }
  29508. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  29509. GraphicsPipelineShaderGroupsCreateInfoNV & setGroups(
  29510. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::GraphicsShaderGroupCreateInfoNV> const & groups_ ) VULKAN_HPP_NOEXCEPT
  29511. {
  29512. groupCount = static_cast<uint32_t>( groups_.size() );
  29513. pGroups = groups_.data();
  29514. return *this;
  29515. }
  29516. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  29517. VULKAN_HPP_CONSTEXPR_14 GraphicsPipelineShaderGroupsCreateInfoNV & setPipelineCount( uint32_t pipelineCount_ ) VULKAN_HPP_NOEXCEPT
  29518. {
  29519. pipelineCount = pipelineCount_;
  29520. return *this;
  29521. }
  29522. VULKAN_HPP_CONSTEXPR_14 GraphicsPipelineShaderGroupsCreateInfoNV & setPPipelines( const VULKAN_HPP_NAMESPACE::Pipeline * pPipelines_ ) VULKAN_HPP_NOEXCEPT
  29523. {
  29524. pPipelines = pPipelines_;
  29525. return *this;
  29526. }
  29527. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  29528. GraphicsPipelineShaderGroupsCreateInfoNV &
  29529. setPipelines( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::Pipeline> const & pipelines_ ) VULKAN_HPP_NOEXCEPT
  29530. {
  29531. pipelineCount = static_cast<uint32_t>( pipelines_.size() );
  29532. pPipelines = pipelines_.data();
  29533. return *this;
  29534. }
  29535. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  29536. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  29537. operator VkGraphicsPipelineShaderGroupsCreateInfoNV const &() const VULKAN_HPP_NOEXCEPT
  29538. {
  29539. return *reinterpret_cast<const VkGraphicsPipelineShaderGroupsCreateInfoNV *>( this );
  29540. }
  29541. operator VkGraphicsPipelineShaderGroupsCreateInfoNV &() VULKAN_HPP_NOEXCEPT
  29542. {
  29543. return *reinterpret_cast<VkGraphicsPipelineShaderGroupsCreateInfoNV *>( this );
  29544. }
  29545. #if defined( VULKAN_HPP_USE_REFLECT )
  29546. # if 14 <= VULKAN_HPP_CPP_VERSION
  29547. auto
  29548. # else
  29549. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  29550. const void * const &,
  29551. uint32_t const &,
  29552. const VULKAN_HPP_NAMESPACE::GraphicsShaderGroupCreateInfoNV * const &,
  29553. uint32_t const &,
  29554. const VULKAN_HPP_NAMESPACE::Pipeline * const &>
  29555. # endif
  29556. reflect() const VULKAN_HPP_NOEXCEPT
  29557. {
  29558. return std::tie( sType, pNext, groupCount, pGroups, pipelineCount, pPipelines );
  29559. }
  29560. #endif
  29561. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  29562. auto operator<=>( GraphicsPipelineShaderGroupsCreateInfoNV const & ) const = default;
  29563. #else
  29564. bool operator==( GraphicsPipelineShaderGroupsCreateInfoNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  29565. {
  29566. # if defined( VULKAN_HPP_USE_REFLECT )
  29567. return this->reflect() == rhs.reflect();
  29568. # else
  29569. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( groupCount == rhs.groupCount ) && ( pGroups == rhs.pGroups ) &&
  29570. ( pipelineCount == rhs.pipelineCount ) && ( pPipelines == rhs.pPipelines );
  29571. # endif
  29572. }
  29573. bool operator!=( GraphicsPipelineShaderGroupsCreateInfoNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  29574. {
  29575. return !operator==( rhs );
  29576. }
  29577. #endif
  29578. public:
  29579. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eGraphicsPipelineShaderGroupsCreateInfoNV;
  29580. const void * pNext = {};
  29581. uint32_t groupCount = {};
  29582. const VULKAN_HPP_NAMESPACE::GraphicsShaderGroupCreateInfoNV * pGroups = {};
  29583. uint32_t pipelineCount = {};
  29584. const VULKAN_HPP_NAMESPACE::Pipeline * pPipelines = {};
  29585. };
  29586. template <>
  29587. struct CppType<StructureType, StructureType::eGraphicsPipelineShaderGroupsCreateInfoNV>
  29588. {
  29589. using Type = GraphicsPipelineShaderGroupsCreateInfoNV;
  29590. };
  29591. struct XYColorEXT
  29592. {
  29593. using NativeType = VkXYColorEXT;
  29594. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  29595. VULKAN_HPP_CONSTEXPR XYColorEXT( float x_ = {}, float y_ = {} ) VULKAN_HPP_NOEXCEPT
  29596. : x( x_ )
  29597. , y( y_ )
  29598. {
  29599. }
  29600. VULKAN_HPP_CONSTEXPR XYColorEXT( XYColorEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  29601. XYColorEXT( VkXYColorEXT const & rhs ) VULKAN_HPP_NOEXCEPT : XYColorEXT( *reinterpret_cast<XYColorEXT const *>( &rhs ) ) {}
  29602. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  29603. XYColorEXT & operator=( XYColorEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  29604. XYColorEXT & operator=( VkXYColorEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  29605. {
  29606. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::XYColorEXT const *>( &rhs );
  29607. return *this;
  29608. }
  29609. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  29610. VULKAN_HPP_CONSTEXPR_14 XYColorEXT & setX( float x_ ) VULKAN_HPP_NOEXCEPT
  29611. {
  29612. x = x_;
  29613. return *this;
  29614. }
  29615. VULKAN_HPP_CONSTEXPR_14 XYColorEXT & setY( float y_ ) VULKAN_HPP_NOEXCEPT
  29616. {
  29617. y = y_;
  29618. return *this;
  29619. }
  29620. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  29621. operator VkXYColorEXT const &() const VULKAN_HPP_NOEXCEPT
  29622. {
  29623. return *reinterpret_cast<const VkXYColorEXT *>( this );
  29624. }
  29625. operator VkXYColorEXT &() VULKAN_HPP_NOEXCEPT
  29626. {
  29627. return *reinterpret_cast<VkXYColorEXT *>( this );
  29628. }
  29629. #if defined( VULKAN_HPP_USE_REFLECT )
  29630. # if 14 <= VULKAN_HPP_CPP_VERSION
  29631. auto
  29632. # else
  29633. std::tuple<float const &, float const &>
  29634. # endif
  29635. reflect() const VULKAN_HPP_NOEXCEPT
  29636. {
  29637. return std::tie( x, y );
  29638. }
  29639. #endif
  29640. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  29641. auto operator<=>( XYColorEXT const & ) const = default;
  29642. #else
  29643. bool operator==( XYColorEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  29644. {
  29645. # if defined( VULKAN_HPP_USE_REFLECT )
  29646. return this->reflect() == rhs.reflect();
  29647. # else
  29648. return ( x == rhs.x ) && ( y == rhs.y );
  29649. # endif
  29650. }
  29651. bool operator!=( XYColorEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  29652. {
  29653. return !operator==( rhs );
  29654. }
  29655. #endif
  29656. public:
  29657. float x = {};
  29658. float y = {};
  29659. };
  29660. struct HdrMetadataEXT
  29661. {
  29662. using NativeType = VkHdrMetadataEXT;
  29663. static const bool allowDuplicate = false;
  29664. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eHdrMetadataEXT;
  29665. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  29666. VULKAN_HPP_CONSTEXPR HdrMetadataEXT( VULKAN_HPP_NAMESPACE::XYColorEXT displayPrimaryRed_ = {},
  29667. VULKAN_HPP_NAMESPACE::XYColorEXT displayPrimaryGreen_ = {},
  29668. VULKAN_HPP_NAMESPACE::XYColorEXT displayPrimaryBlue_ = {},
  29669. VULKAN_HPP_NAMESPACE::XYColorEXT whitePoint_ = {},
  29670. float maxLuminance_ = {},
  29671. float minLuminance_ = {},
  29672. float maxContentLightLevel_ = {},
  29673. float maxFrameAverageLightLevel_ = {},
  29674. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  29675. : pNext( pNext_ )
  29676. , displayPrimaryRed( displayPrimaryRed_ )
  29677. , displayPrimaryGreen( displayPrimaryGreen_ )
  29678. , displayPrimaryBlue( displayPrimaryBlue_ )
  29679. , whitePoint( whitePoint_ )
  29680. , maxLuminance( maxLuminance_ )
  29681. , minLuminance( minLuminance_ )
  29682. , maxContentLightLevel( maxContentLightLevel_ )
  29683. , maxFrameAverageLightLevel( maxFrameAverageLightLevel_ )
  29684. {
  29685. }
  29686. VULKAN_HPP_CONSTEXPR HdrMetadataEXT( HdrMetadataEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  29687. HdrMetadataEXT( VkHdrMetadataEXT const & rhs ) VULKAN_HPP_NOEXCEPT : HdrMetadataEXT( *reinterpret_cast<HdrMetadataEXT const *>( &rhs ) ) {}
  29688. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  29689. HdrMetadataEXT & operator=( HdrMetadataEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  29690. HdrMetadataEXT & operator=( VkHdrMetadataEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  29691. {
  29692. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::HdrMetadataEXT const *>( &rhs );
  29693. return *this;
  29694. }
  29695. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  29696. VULKAN_HPP_CONSTEXPR_14 HdrMetadataEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  29697. {
  29698. pNext = pNext_;
  29699. return *this;
  29700. }
  29701. VULKAN_HPP_CONSTEXPR_14 HdrMetadataEXT & setDisplayPrimaryRed( VULKAN_HPP_NAMESPACE::XYColorEXT const & displayPrimaryRed_ ) VULKAN_HPP_NOEXCEPT
  29702. {
  29703. displayPrimaryRed = displayPrimaryRed_;
  29704. return *this;
  29705. }
  29706. VULKAN_HPP_CONSTEXPR_14 HdrMetadataEXT & setDisplayPrimaryGreen( VULKAN_HPP_NAMESPACE::XYColorEXT const & displayPrimaryGreen_ ) VULKAN_HPP_NOEXCEPT
  29707. {
  29708. displayPrimaryGreen = displayPrimaryGreen_;
  29709. return *this;
  29710. }
  29711. VULKAN_HPP_CONSTEXPR_14 HdrMetadataEXT & setDisplayPrimaryBlue( VULKAN_HPP_NAMESPACE::XYColorEXT const & displayPrimaryBlue_ ) VULKAN_HPP_NOEXCEPT
  29712. {
  29713. displayPrimaryBlue = displayPrimaryBlue_;
  29714. return *this;
  29715. }
  29716. VULKAN_HPP_CONSTEXPR_14 HdrMetadataEXT & setWhitePoint( VULKAN_HPP_NAMESPACE::XYColorEXT const & whitePoint_ ) VULKAN_HPP_NOEXCEPT
  29717. {
  29718. whitePoint = whitePoint_;
  29719. return *this;
  29720. }
  29721. VULKAN_HPP_CONSTEXPR_14 HdrMetadataEXT & setMaxLuminance( float maxLuminance_ ) VULKAN_HPP_NOEXCEPT
  29722. {
  29723. maxLuminance = maxLuminance_;
  29724. return *this;
  29725. }
  29726. VULKAN_HPP_CONSTEXPR_14 HdrMetadataEXT & setMinLuminance( float minLuminance_ ) VULKAN_HPP_NOEXCEPT
  29727. {
  29728. minLuminance = minLuminance_;
  29729. return *this;
  29730. }
  29731. VULKAN_HPP_CONSTEXPR_14 HdrMetadataEXT & setMaxContentLightLevel( float maxContentLightLevel_ ) VULKAN_HPP_NOEXCEPT
  29732. {
  29733. maxContentLightLevel = maxContentLightLevel_;
  29734. return *this;
  29735. }
  29736. VULKAN_HPP_CONSTEXPR_14 HdrMetadataEXT & setMaxFrameAverageLightLevel( float maxFrameAverageLightLevel_ ) VULKAN_HPP_NOEXCEPT
  29737. {
  29738. maxFrameAverageLightLevel = maxFrameAverageLightLevel_;
  29739. return *this;
  29740. }
  29741. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  29742. operator VkHdrMetadataEXT const &() const VULKAN_HPP_NOEXCEPT
  29743. {
  29744. return *reinterpret_cast<const VkHdrMetadataEXT *>( this );
  29745. }
  29746. operator VkHdrMetadataEXT &() VULKAN_HPP_NOEXCEPT
  29747. {
  29748. return *reinterpret_cast<VkHdrMetadataEXT *>( this );
  29749. }
  29750. #if defined( VULKAN_HPP_USE_REFLECT )
  29751. # if 14 <= VULKAN_HPP_CPP_VERSION
  29752. auto
  29753. # else
  29754. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  29755. const void * const &,
  29756. VULKAN_HPP_NAMESPACE::XYColorEXT const &,
  29757. VULKAN_HPP_NAMESPACE::XYColorEXT const &,
  29758. VULKAN_HPP_NAMESPACE::XYColorEXT const &,
  29759. VULKAN_HPP_NAMESPACE::XYColorEXT const &,
  29760. float const &,
  29761. float const &,
  29762. float const &,
  29763. float const &>
  29764. # endif
  29765. reflect() const VULKAN_HPP_NOEXCEPT
  29766. {
  29767. return std::tie( sType,
  29768. pNext,
  29769. displayPrimaryRed,
  29770. displayPrimaryGreen,
  29771. displayPrimaryBlue,
  29772. whitePoint,
  29773. maxLuminance,
  29774. minLuminance,
  29775. maxContentLightLevel,
  29776. maxFrameAverageLightLevel );
  29777. }
  29778. #endif
  29779. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  29780. auto operator<=>( HdrMetadataEXT const & ) const = default;
  29781. #else
  29782. bool operator==( HdrMetadataEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  29783. {
  29784. # if defined( VULKAN_HPP_USE_REFLECT )
  29785. return this->reflect() == rhs.reflect();
  29786. # else
  29787. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( displayPrimaryRed == rhs.displayPrimaryRed ) &&
  29788. ( displayPrimaryGreen == rhs.displayPrimaryGreen ) && ( displayPrimaryBlue == rhs.displayPrimaryBlue ) && ( whitePoint == rhs.whitePoint ) &&
  29789. ( maxLuminance == rhs.maxLuminance ) && ( minLuminance == rhs.minLuminance ) && ( maxContentLightLevel == rhs.maxContentLightLevel ) &&
  29790. ( maxFrameAverageLightLevel == rhs.maxFrameAverageLightLevel );
  29791. # endif
  29792. }
  29793. bool operator!=( HdrMetadataEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  29794. {
  29795. return !operator==( rhs );
  29796. }
  29797. #endif
  29798. public:
  29799. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eHdrMetadataEXT;
  29800. const void * pNext = {};
  29801. VULKAN_HPP_NAMESPACE::XYColorEXT displayPrimaryRed = {};
  29802. VULKAN_HPP_NAMESPACE::XYColorEXT displayPrimaryGreen = {};
  29803. VULKAN_HPP_NAMESPACE::XYColorEXT displayPrimaryBlue = {};
  29804. VULKAN_HPP_NAMESPACE::XYColorEXT whitePoint = {};
  29805. float maxLuminance = {};
  29806. float minLuminance = {};
  29807. float maxContentLightLevel = {};
  29808. float maxFrameAverageLightLevel = {};
  29809. };
  29810. template <>
  29811. struct CppType<StructureType, StructureType::eHdrMetadataEXT>
  29812. {
  29813. using Type = HdrMetadataEXT;
  29814. };
  29815. struct HeadlessSurfaceCreateInfoEXT
  29816. {
  29817. using NativeType = VkHeadlessSurfaceCreateInfoEXT;
  29818. static const bool allowDuplicate = false;
  29819. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eHeadlessSurfaceCreateInfoEXT;
  29820. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  29821. VULKAN_HPP_CONSTEXPR HeadlessSurfaceCreateInfoEXT( VULKAN_HPP_NAMESPACE::HeadlessSurfaceCreateFlagsEXT flags_ = {},
  29822. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  29823. : pNext( pNext_ )
  29824. , flags( flags_ )
  29825. {
  29826. }
  29827. VULKAN_HPP_CONSTEXPR HeadlessSurfaceCreateInfoEXT( HeadlessSurfaceCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  29828. HeadlessSurfaceCreateInfoEXT( VkHeadlessSurfaceCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  29829. : HeadlessSurfaceCreateInfoEXT( *reinterpret_cast<HeadlessSurfaceCreateInfoEXT const *>( &rhs ) )
  29830. {
  29831. }
  29832. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  29833. HeadlessSurfaceCreateInfoEXT & operator=( HeadlessSurfaceCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  29834. HeadlessSurfaceCreateInfoEXT & operator=( VkHeadlessSurfaceCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  29835. {
  29836. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::HeadlessSurfaceCreateInfoEXT const *>( &rhs );
  29837. return *this;
  29838. }
  29839. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  29840. VULKAN_HPP_CONSTEXPR_14 HeadlessSurfaceCreateInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  29841. {
  29842. pNext = pNext_;
  29843. return *this;
  29844. }
  29845. VULKAN_HPP_CONSTEXPR_14 HeadlessSurfaceCreateInfoEXT & setFlags( VULKAN_HPP_NAMESPACE::HeadlessSurfaceCreateFlagsEXT flags_ ) VULKAN_HPP_NOEXCEPT
  29846. {
  29847. flags = flags_;
  29848. return *this;
  29849. }
  29850. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  29851. operator VkHeadlessSurfaceCreateInfoEXT const &() const VULKAN_HPP_NOEXCEPT
  29852. {
  29853. return *reinterpret_cast<const VkHeadlessSurfaceCreateInfoEXT *>( this );
  29854. }
  29855. operator VkHeadlessSurfaceCreateInfoEXT &() VULKAN_HPP_NOEXCEPT
  29856. {
  29857. return *reinterpret_cast<VkHeadlessSurfaceCreateInfoEXT *>( this );
  29858. }
  29859. #if defined( VULKAN_HPP_USE_REFLECT )
  29860. # if 14 <= VULKAN_HPP_CPP_VERSION
  29861. auto
  29862. # else
  29863. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::HeadlessSurfaceCreateFlagsEXT const &>
  29864. # endif
  29865. reflect() const VULKAN_HPP_NOEXCEPT
  29866. {
  29867. return std::tie( sType, pNext, flags );
  29868. }
  29869. #endif
  29870. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  29871. auto operator<=>( HeadlessSurfaceCreateInfoEXT const & ) const = default;
  29872. #else
  29873. bool operator==( HeadlessSurfaceCreateInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  29874. {
  29875. # if defined( VULKAN_HPP_USE_REFLECT )
  29876. return this->reflect() == rhs.reflect();
  29877. # else
  29878. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( flags == rhs.flags );
  29879. # endif
  29880. }
  29881. bool operator!=( HeadlessSurfaceCreateInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  29882. {
  29883. return !operator==( rhs );
  29884. }
  29885. #endif
  29886. public:
  29887. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eHeadlessSurfaceCreateInfoEXT;
  29888. const void * pNext = {};
  29889. VULKAN_HPP_NAMESPACE::HeadlessSurfaceCreateFlagsEXT flags = {};
  29890. };
  29891. template <>
  29892. struct CppType<StructureType, StructureType::eHeadlessSurfaceCreateInfoEXT>
  29893. {
  29894. using Type = HeadlessSurfaceCreateInfoEXT;
  29895. };
  29896. #if defined( VK_USE_PLATFORM_IOS_MVK )
  29897. struct IOSSurfaceCreateInfoMVK
  29898. {
  29899. using NativeType = VkIOSSurfaceCreateInfoMVK;
  29900. static const bool allowDuplicate = false;
  29901. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eIosSurfaceCreateInfoMVK;
  29902. # if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  29903. VULKAN_HPP_CONSTEXPR IOSSurfaceCreateInfoMVK( VULKAN_HPP_NAMESPACE::IOSSurfaceCreateFlagsMVK flags_ = {},
  29904. const void * pView_ = {},
  29905. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  29906. : pNext( pNext_ )
  29907. , flags( flags_ )
  29908. , pView( pView_ )
  29909. {
  29910. }
  29911. VULKAN_HPP_CONSTEXPR IOSSurfaceCreateInfoMVK( IOSSurfaceCreateInfoMVK const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  29912. IOSSurfaceCreateInfoMVK( VkIOSSurfaceCreateInfoMVK const & rhs ) VULKAN_HPP_NOEXCEPT
  29913. : IOSSurfaceCreateInfoMVK( *reinterpret_cast<IOSSurfaceCreateInfoMVK const *>( &rhs ) )
  29914. {
  29915. }
  29916. # endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  29917. IOSSurfaceCreateInfoMVK & operator=( IOSSurfaceCreateInfoMVK const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  29918. IOSSurfaceCreateInfoMVK & operator=( VkIOSSurfaceCreateInfoMVK const & rhs ) VULKAN_HPP_NOEXCEPT
  29919. {
  29920. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::IOSSurfaceCreateInfoMVK const *>( &rhs );
  29921. return *this;
  29922. }
  29923. # if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  29924. VULKAN_HPP_CONSTEXPR_14 IOSSurfaceCreateInfoMVK & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  29925. {
  29926. pNext = pNext_;
  29927. return *this;
  29928. }
  29929. VULKAN_HPP_CONSTEXPR_14 IOSSurfaceCreateInfoMVK & setFlags( VULKAN_HPP_NAMESPACE::IOSSurfaceCreateFlagsMVK flags_ ) VULKAN_HPP_NOEXCEPT
  29930. {
  29931. flags = flags_;
  29932. return *this;
  29933. }
  29934. VULKAN_HPP_CONSTEXPR_14 IOSSurfaceCreateInfoMVK & setPView( const void * pView_ ) VULKAN_HPP_NOEXCEPT
  29935. {
  29936. pView = pView_;
  29937. return *this;
  29938. }
  29939. # endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  29940. operator VkIOSSurfaceCreateInfoMVK const &() const VULKAN_HPP_NOEXCEPT
  29941. {
  29942. return *reinterpret_cast<const VkIOSSurfaceCreateInfoMVK *>( this );
  29943. }
  29944. operator VkIOSSurfaceCreateInfoMVK &() VULKAN_HPP_NOEXCEPT
  29945. {
  29946. return *reinterpret_cast<VkIOSSurfaceCreateInfoMVK *>( this );
  29947. }
  29948. # if defined( VULKAN_HPP_USE_REFLECT )
  29949. # if 14 <= VULKAN_HPP_CPP_VERSION
  29950. auto
  29951. # else
  29952. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::IOSSurfaceCreateFlagsMVK const &, const void * const &>
  29953. # endif
  29954. reflect() const VULKAN_HPP_NOEXCEPT
  29955. {
  29956. return std::tie( sType, pNext, flags, pView );
  29957. }
  29958. # endif
  29959. # if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  29960. auto operator<=>( IOSSurfaceCreateInfoMVK const & ) const = default;
  29961. # else
  29962. bool operator==( IOSSurfaceCreateInfoMVK const & rhs ) const VULKAN_HPP_NOEXCEPT
  29963. {
  29964. # if defined( VULKAN_HPP_USE_REFLECT )
  29965. return this->reflect() == rhs.reflect();
  29966. # else
  29967. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( flags == rhs.flags ) && ( pView == rhs.pView );
  29968. # endif
  29969. }
  29970. bool operator!=( IOSSurfaceCreateInfoMVK const & rhs ) const VULKAN_HPP_NOEXCEPT
  29971. {
  29972. return !operator==( rhs );
  29973. }
  29974. # endif
  29975. public:
  29976. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eIosSurfaceCreateInfoMVK;
  29977. const void * pNext = {};
  29978. VULKAN_HPP_NAMESPACE::IOSSurfaceCreateFlagsMVK flags = {};
  29979. const void * pView = {};
  29980. };
  29981. template <>
  29982. struct CppType<StructureType, StructureType::eIosSurfaceCreateInfoMVK>
  29983. {
  29984. using Type = IOSSurfaceCreateInfoMVK;
  29985. };
  29986. #endif /*VK_USE_PLATFORM_IOS_MVK*/
  29987. struct ImageBlit
  29988. {
  29989. using NativeType = VkImageBlit;
  29990. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  29991. VULKAN_HPP_CONSTEXPR_14 ImageBlit( VULKAN_HPP_NAMESPACE::ImageSubresourceLayers srcSubresource_ = {},
  29992. std::array<VULKAN_HPP_NAMESPACE::Offset3D, 2> const & srcOffsets_ = {},
  29993. VULKAN_HPP_NAMESPACE::ImageSubresourceLayers dstSubresource_ = {},
  29994. std::array<VULKAN_HPP_NAMESPACE::Offset3D, 2> const & dstOffsets_ = {} ) VULKAN_HPP_NOEXCEPT
  29995. : srcSubresource( srcSubresource_ )
  29996. , srcOffsets( srcOffsets_ )
  29997. , dstSubresource( dstSubresource_ )
  29998. , dstOffsets( dstOffsets_ )
  29999. {
  30000. }
  30001. VULKAN_HPP_CONSTEXPR_14 ImageBlit( ImageBlit const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  30002. ImageBlit( VkImageBlit const & rhs ) VULKAN_HPP_NOEXCEPT : ImageBlit( *reinterpret_cast<ImageBlit const *>( &rhs ) ) {}
  30003. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  30004. ImageBlit & operator=( ImageBlit const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  30005. ImageBlit & operator=( VkImageBlit const & rhs ) VULKAN_HPP_NOEXCEPT
  30006. {
  30007. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ImageBlit const *>( &rhs );
  30008. return *this;
  30009. }
  30010. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  30011. VULKAN_HPP_CONSTEXPR_14 ImageBlit & setSrcSubresource( VULKAN_HPP_NAMESPACE::ImageSubresourceLayers const & srcSubresource_ ) VULKAN_HPP_NOEXCEPT
  30012. {
  30013. srcSubresource = srcSubresource_;
  30014. return *this;
  30015. }
  30016. VULKAN_HPP_CONSTEXPR_14 ImageBlit & setSrcOffsets( std::array<VULKAN_HPP_NAMESPACE::Offset3D, 2> const & srcOffsets_ ) VULKAN_HPP_NOEXCEPT
  30017. {
  30018. srcOffsets = srcOffsets_;
  30019. return *this;
  30020. }
  30021. VULKAN_HPP_CONSTEXPR_14 ImageBlit & setDstSubresource( VULKAN_HPP_NAMESPACE::ImageSubresourceLayers const & dstSubresource_ ) VULKAN_HPP_NOEXCEPT
  30022. {
  30023. dstSubresource = dstSubresource_;
  30024. return *this;
  30025. }
  30026. VULKAN_HPP_CONSTEXPR_14 ImageBlit & setDstOffsets( std::array<VULKAN_HPP_NAMESPACE::Offset3D, 2> const & dstOffsets_ ) VULKAN_HPP_NOEXCEPT
  30027. {
  30028. dstOffsets = dstOffsets_;
  30029. return *this;
  30030. }
  30031. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  30032. operator VkImageBlit const &() const VULKAN_HPP_NOEXCEPT
  30033. {
  30034. return *reinterpret_cast<const VkImageBlit *>( this );
  30035. }
  30036. operator VkImageBlit &() VULKAN_HPP_NOEXCEPT
  30037. {
  30038. return *reinterpret_cast<VkImageBlit *>( this );
  30039. }
  30040. #if defined( VULKAN_HPP_USE_REFLECT )
  30041. # if 14 <= VULKAN_HPP_CPP_VERSION
  30042. auto
  30043. # else
  30044. std::tuple<VULKAN_HPP_NAMESPACE::ImageSubresourceLayers const &,
  30045. VULKAN_HPP_NAMESPACE::ArrayWrapper1D<VULKAN_HPP_NAMESPACE::Offset3D, 2> const &,
  30046. VULKAN_HPP_NAMESPACE::ImageSubresourceLayers const &,
  30047. VULKAN_HPP_NAMESPACE::ArrayWrapper1D<VULKAN_HPP_NAMESPACE::Offset3D, 2> const &>
  30048. # endif
  30049. reflect() const VULKAN_HPP_NOEXCEPT
  30050. {
  30051. return std::tie( srcSubresource, srcOffsets, dstSubresource, dstOffsets );
  30052. }
  30053. #endif
  30054. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  30055. auto operator<=>( ImageBlit const & ) const = default;
  30056. #else
  30057. bool operator==( ImageBlit const & rhs ) const VULKAN_HPP_NOEXCEPT
  30058. {
  30059. # if defined( VULKAN_HPP_USE_REFLECT )
  30060. return this->reflect() == rhs.reflect();
  30061. # else
  30062. return ( srcSubresource == rhs.srcSubresource ) && ( srcOffsets == rhs.srcOffsets ) && ( dstSubresource == rhs.dstSubresource ) &&
  30063. ( dstOffsets == rhs.dstOffsets );
  30064. # endif
  30065. }
  30066. bool operator!=( ImageBlit const & rhs ) const VULKAN_HPP_NOEXCEPT
  30067. {
  30068. return !operator==( rhs );
  30069. }
  30070. #endif
  30071. public:
  30072. VULKAN_HPP_NAMESPACE::ImageSubresourceLayers srcSubresource = {};
  30073. VULKAN_HPP_NAMESPACE::ArrayWrapper1D<VULKAN_HPP_NAMESPACE::Offset3D, 2> srcOffsets = {};
  30074. VULKAN_HPP_NAMESPACE::ImageSubresourceLayers dstSubresource = {};
  30075. VULKAN_HPP_NAMESPACE::ArrayWrapper1D<VULKAN_HPP_NAMESPACE::Offset3D, 2> dstOffsets = {};
  30076. };
  30077. struct ImageCompressionControlEXT
  30078. {
  30079. using NativeType = VkImageCompressionControlEXT;
  30080. static const bool allowDuplicate = false;
  30081. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eImageCompressionControlEXT;
  30082. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  30083. VULKAN_HPP_CONSTEXPR ImageCompressionControlEXT( VULKAN_HPP_NAMESPACE::ImageCompressionFlagsEXT flags_ = {},
  30084. uint32_t compressionControlPlaneCount_ = {},
  30085. VULKAN_HPP_NAMESPACE::ImageCompressionFixedRateFlagsEXT * pFixedRateFlags_ = {},
  30086. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  30087. : pNext( pNext_ )
  30088. , flags( flags_ )
  30089. , compressionControlPlaneCount( compressionControlPlaneCount_ )
  30090. , pFixedRateFlags( pFixedRateFlags_ )
  30091. {
  30092. }
  30093. VULKAN_HPP_CONSTEXPR ImageCompressionControlEXT( ImageCompressionControlEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  30094. ImageCompressionControlEXT( VkImageCompressionControlEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  30095. : ImageCompressionControlEXT( *reinterpret_cast<ImageCompressionControlEXT const *>( &rhs ) )
  30096. {
  30097. }
  30098. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  30099. ImageCompressionControlEXT( VULKAN_HPP_NAMESPACE::ImageCompressionFlagsEXT flags_,
  30100. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<VULKAN_HPP_NAMESPACE::ImageCompressionFixedRateFlagsEXT> const & fixedRateFlags_,
  30101. const void * pNext_ = nullptr )
  30102. : pNext( pNext_ )
  30103. , flags( flags_ )
  30104. , compressionControlPlaneCount( static_cast<uint32_t>( fixedRateFlags_.size() ) )
  30105. , pFixedRateFlags( fixedRateFlags_.data() )
  30106. {
  30107. }
  30108. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  30109. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  30110. ImageCompressionControlEXT & operator=( ImageCompressionControlEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  30111. ImageCompressionControlEXT & operator=( VkImageCompressionControlEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  30112. {
  30113. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ImageCompressionControlEXT const *>( &rhs );
  30114. return *this;
  30115. }
  30116. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  30117. VULKAN_HPP_CONSTEXPR_14 ImageCompressionControlEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  30118. {
  30119. pNext = pNext_;
  30120. return *this;
  30121. }
  30122. VULKAN_HPP_CONSTEXPR_14 ImageCompressionControlEXT & setFlags( VULKAN_HPP_NAMESPACE::ImageCompressionFlagsEXT flags_ ) VULKAN_HPP_NOEXCEPT
  30123. {
  30124. flags = flags_;
  30125. return *this;
  30126. }
  30127. VULKAN_HPP_CONSTEXPR_14 ImageCompressionControlEXT & setCompressionControlPlaneCount( uint32_t compressionControlPlaneCount_ ) VULKAN_HPP_NOEXCEPT
  30128. {
  30129. compressionControlPlaneCount = compressionControlPlaneCount_;
  30130. return *this;
  30131. }
  30132. VULKAN_HPP_CONSTEXPR_14 ImageCompressionControlEXT &
  30133. setPFixedRateFlags( VULKAN_HPP_NAMESPACE::ImageCompressionFixedRateFlagsEXT * pFixedRateFlags_ ) VULKAN_HPP_NOEXCEPT
  30134. {
  30135. pFixedRateFlags = pFixedRateFlags_;
  30136. return *this;
  30137. }
  30138. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  30139. ImageCompressionControlEXT & setFixedRateFlags(
  30140. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<VULKAN_HPP_NAMESPACE::ImageCompressionFixedRateFlagsEXT> const & fixedRateFlags_ ) VULKAN_HPP_NOEXCEPT
  30141. {
  30142. compressionControlPlaneCount = static_cast<uint32_t>( fixedRateFlags_.size() );
  30143. pFixedRateFlags = fixedRateFlags_.data();
  30144. return *this;
  30145. }
  30146. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  30147. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  30148. operator VkImageCompressionControlEXT const &() const VULKAN_HPP_NOEXCEPT
  30149. {
  30150. return *reinterpret_cast<const VkImageCompressionControlEXT *>( this );
  30151. }
  30152. operator VkImageCompressionControlEXT &() VULKAN_HPP_NOEXCEPT
  30153. {
  30154. return *reinterpret_cast<VkImageCompressionControlEXT *>( this );
  30155. }
  30156. #if defined( VULKAN_HPP_USE_REFLECT )
  30157. # if 14 <= VULKAN_HPP_CPP_VERSION
  30158. auto
  30159. # else
  30160. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  30161. const void * const &,
  30162. VULKAN_HPP_NAMESPACE::ImageCompressionFlagsEXT const &,
  30163. uint32_t const &,
  30164. VULKAN_HPP_NAMESPACE::ImageCompressionFixedRateFlagsEXT * const &>
  30165. # endif
  30166. reflect() const VULKAN_HPP_NOEXCEPT
  30167. {
  30168. return std::tie( sType, pNext, flags, compressionControlPlaneCount, pFixedRateFlags );
  30169. }
  30170. #endif
  30171. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  30172. auto operator<=>( ImageCompressionControlEXT const & ) const = default;
  30173. #else
  30174. bool operator==( ImageCompressionControlEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  30175. {
  30176. # if defined( VULKAN_HPP_USE_REFLECT )
  30177. return this->reflect() == rhs.reflect();
  30178. # else
  30179. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( flags == rhs.flags ) &&
  30180. ( compressionControlPlaneCount == rhs.compressionControlPlaneCount ) && ( pFixedRateFlags == rhs.pFixedRateFlags );
  30181. # endif
  30182. }
  30183. bool operator!=( ImageCompressionControlEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  30184. {
  30185. return !operator==( rhs );
  30186. }
  30187. #endif
  30188. public:
  30189. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImageCompressionControlEXT;
  30190. const void * pNext = {};
  30191. VULKAN_HPP_NAMESPACE::ImageCompressionFlagsEXT flags = {};
  30192. uint32_t compressionControlPlaneCount = {};
  30193. VULKAN_HPP_NAMESPACE::ImageCompressionFixedRateFlagsEXT * pFixedRateFlags = {};
  30194. };
  30195. template <>
  30196. struct CppType<StructureType, StructureType::eImageCompressionControlEXT>
  30197. {
  30198. using Type = ImageCompressionControlEXT;
  30199. };
  30200. struct ImageCompressionPropertiesEXT
  30201. {
  30202. using NativeType = VkImageCompressionPropertiesEXT;
  30203. static const bool allowDuplicate = false;
  30204. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eImageCompressionPropertiesEXT;
  30205. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  30206. VULKAN_HPP_CONSTEXPR ImageCompressionPropertiesEXT( VULKAN_HPP_NAMESPACE::ImageCompressionFlagsEXT imageCompressionFlags_ = {},
  30207. VULKAN_HPP_NAMESPACE::ImageCompressionFixedRateFlagsEXT imageCompressionFixedRateFlags_ = {},
  30208. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  30209. : pNext( pNext_ )
  30210. , imageCompressionFlags( imageCompressionFlags_ )
  30211. , imageCompressionFixedRateFlags( imageCompressionFixedRateFlags_ )
  30212. {
  30213. }
  30214. VULKAN_HPP_CONSTEXPR ImageCompressionPropertiesEXT( ImageCompressionPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  30215. ImageCompressionPropertiesEXT( VkImageCompressionPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  30216. : ImageCompressionPropertiesEXT( *reinterpret_cast<ImageCompressionPropertiesEXT const *>( &rhs ) )
  30217. {
  30218. }
  30219. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  30220. ImageCompressionPropertiesEXT & operator=( ImageCompressionPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  30221. ImageCompressionPropertiesEXT & operator=( VkImageCompressionPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  30222. {
  30223. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ImageCompressionPropertiesEXT const *>( &rhs );
  30224. return *this;
  30225. }
  30226. operator VkImageCompressionPropertiesEXT const &() const VULKAN_HPP_NOEXCEPT
  30227. {
  30228. return *reinterpret_cast<const VkImageCompressionPropertiesEXT *>( this );
  30229. }
  30230. operator VkImageCompressionPropertiesEXT &() VULKAN_HPP_NOEXCEPT
  30231. {
  30232. return *reinterpret_cast<VkImageCompressionPropertiesEXT *>( this );
  30233. }
  30234. #if defined( VULKAN_HPP_USE_REFLECT )
  30235. # if 14 <= VULKAN_HPP_CPP_VERSION
  30236. auto
  30237. # else
  30238. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  30239. void * const &,
  30240. VULKAN_HPP_NAMESPACE::ImageCompressionFlagsEXT const &,
  30241. VULKAN_HPP_NAMESPACE::ImageCompressionFixedRateFlagsEXT const &>
  30242. # endif
  30243. reflect() const VULKAN_HPP_NOEXCEPT
  30244. {
  30245. return std::tie( sType, pNext, imageCompressionFlags, imageCompressionFixedRateFlags );
  30246. }
  30247. #endif
  30248. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  30249. auto operator<=>( ImageCompressionPropertiesEXT const & ) const = default;
  30250. #else
  30251. bool operator==( ImageCompressionPropertiesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  30252. {
  30253. # if defined( VULKAN_HPP_USE_REFLECT )
  30254. return this->reflect() == rhs.reflect();
  30255. # else
  30256. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( imageCompressionFlags == rhs.imageCompressionFlags ) &&
  30257. ( imageCompressionFixedRateFlags == rhs.imageCompressionFixedRateFlags );
  30258. # endif
  30259. }
  30260. bool operator!=( ImageCompressionPropertiesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  30261. {
  30262. return !operator==( rhs );
  30263. }
  30264. #endif
  30265. public:
  30266. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImageCompressionPropertiesEXT;
  30267. void * pNext = {};
  30268. VULKAN_HPP_NAMESPACE::ImageCompressionFlagsEXT imageCompressionFlags = {};
  30269. VULKAN_HPP_NAMESPACE::ImageCompressionFixedRateFlagsEXT imageCompressionFixedRateFlags = {};
  30270. };
  30271. template <>
  30272. struct CppType<StructureType, StructureType::eImageCompressionPropertiesEXT>
  30273. {
  30274. using Type = ImageCompressionPropertiesEXT;
  30275. };
  30276. #if defined( VK_USE_PLATFORM_FUCHSIA )
  30277. struct ImageFormatConstraintsInfoFUCHSIA
  30278. {
  30279. using NativeType = VkImageFormatConstraintsInfoFUCHSIA;
  30280. static const bool allowDuplicate = false;
  30281. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eImageFormatConstraintsInfoFUCHSIA;
  30282. # if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  30283. VULKAN_HPP_CONSTEXPR ImageFormatConstraintsInfoFUCHSIA( VULKAN_HPP_NAMESPACE::ImageCreateInfo imageCreateInfo_ = {},
  30284. VULKAN_HPP_NAMESPACE::FormatFeatureFlags requiredFormatFeatures_ = {},
  30285. VULKAN_HPP_NAMESPACE::ImageFormatConstraintsFlagsFUCHSIA flags_ = {},
  30286. uint64_t sysmemPixelFormat_ = {},
  30287. uint32_t colorSpaceCount_ = {},
  30288. const VULKAN_HPP_NAMESPACE::SysmemColorSpaceFUCHSIA * pColorSpaces_ = {},
  30289. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  30290. : pNext( pNext_ )
  30291. , imageCreateInfo( imageCreateInfo_ )
  30292. , requiredFormatFeatures( requiredFormatFeatures_ )
  30293. , flags( flags_ )
  30294. , sysmemPixelFormat( sysmemPixelFormat_ )
  30295. , colorSpaceCount( colorSpaceCount_ )
  30296. , pColorSpaces( pColorSpaces_ )
  30297. {
  30298. }
  30299. VULKAN_HPP_CONSTEXPR ImageFormatConstraintsInfoFUCHSIA( ImageFormatConstraintsInfoFUCHSIA const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  30300. ImageFormatConstraintsInfoFUCHSIA( VkImageFormatConstraintsInfoFUCHSIA const & rhs ) VULKAN_HPP_NOEXCEPT
  30301. : ImageFormatConstraintsInfoFUCHSIA( *reinterpret_cast<ImageFormatConstraintsInfoFUCHSIA const *>( &rhs ) )
  30302. {
  30303. }
  30304. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  30305. ImageFormatConstraintsInfoFUCHSIA( VULKAN_HPP_NAMESPACE::ImageCreateInfo imageCreateInfo_,
  30306. VULKAN_HPP_NAMESPACE::FormatFeatureFlags requiredFormatFeatures_,
  30307. VULKAN_HPP_NAMESPACE::ImageFormatConstraintsFlagsFUCHSIA flags_,
  30308. uint64_t sysmemPixelFormat_,
  30309. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::SysmemColorSpaceFUCHSIA> const & colorSpaces_,
  30310. const void * pNext_ = nullptr )
  30311. : pNext( pNext_ )
  30312. , imageCreateInfo( imageCreateInfo_ )
  30313. , requiredFormatFeatures( requiredFormatFeatures_ )
  30314. , flags( flags_ )
  30315. , sysmemPixelFormat( sysmemPixelFormat_ )
  30316. , colorSpaceCount( static_cast<uint32_t>( colorSpaces_.size() ) )
  30317. , pColorSpaces( colorSpaces_.data() )
  30318. {
  30319. }
  30320. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  30321. # endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  30322. ImageFormatConstraintsInfoFUCHSIA & operator=( ImageFormatConstraintsInfoFUCHSIA const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  30323. ImageFormatConstraintsInfoFUCHSIA & operator=( VkImageFormatConstraintsInfoFUCHSIA const & rhs ) VULKAN_HPP_NOEXCEPT
  30324. {
  30325. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ImageFormatConstraintsInfoFUCHSIA const *>( &rhs );
  30326. return *this;
  30327. }
  30328. # if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  30329. VULKAN_HPP_CONSTEXPR_14 ImageFormatConstraintsInfoFUCHSIA & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  30330. {
  30331. pNext = pNext_;
  30332. return *this;
  30333. }
  30334. VULKAN_HPP_CONSTEXPR_14 ImageFormatConstraintsInfoFUCHSIA &
  30335. setImageCreateInfo( VULKAN_HPP_NAMESPACE::ImageCreateInfo const & imageCreateInfo_ ) VULKAN_HPP_NOEXCEPT
  30336. {
  30337. imageCreateInfo = imageCreateInfo_;
  30338. return *this;
  30339. }
  30340. VULKAN_HPP_CONSTEXPR_14 ImageFormatConstraintsInfoFUCHSIA &
  30341. setRequiredFormatFeatures( VULKAN_HPP_NAMESPACE::FormatFeatureFlags requiredFormatFeatures_ ) VULKAN_HPP_NOEXCEPT
  30342. {
  30343. requiredFormatFeatures = requiredFormatFeatures_;
  30344. return *this;
  30345. }
  30346. VULKAN_HPP_CONSTEXPR_14 ImageFormatConstraintsInfoFUCHSIA & setFlags( VULKAN_HPP_NAMESPACE::ImageFormatConstraintsFlagsFUCHSIA flags_ ) VULKAN_HPP_NOEXCEPT
  30347. {
  30348. flags = flags_;
  30349. return *this;
  30350. }
  30351. VULKAN_HPP_CONSTEXPR_14 ImageFormatConstraintsInfoFUCHSIA & setSysmemPixelFormat( uint64_t sysmemPixelFormat_ ) VULKAN_HPP_NOEXCEPT
  30352. {
  30353. sysmemPixelFormat = sysmemPixelFormat_;
  30354. return *this;
  30355. }
  30356. VULKAN_HPP_CONSTEXPR_14 ImageFormatConstraintsInfoFUCHSIA & setColorSpaceCount( uint32_t colorSpaceCount_ ) VULKAN_HPP_NOEXCEPT
  30357. {
  30358. colorSpaceCount = colorSpaceCount_;
  30359. return *this;
  30360. }
  30361. VULKAN_HPP_CONSTEXPR_14 ImageFormatConstraintsInfoFUCHSIA &
  30362. setPColorSpaces( const VULKAN_HPP_NAMESPACE::SysmemColorSpaceFUCHSIA * pColorSpaces_ ) VULKAN_HPP_NOEXCEPT
  30363. {
  30364. pColorSpaces = pColorSpaces_;
  30365. return *this;
  30366. }
  30367. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  30368. ImageFormatConstraintsInfoFUCHSIA & setColorSpaces(
  30369. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::SysmemColorSpaceFUCHSIA> const & colorSpaces_ ) VULKAN_HPP_NOEXCEPT
  30370. {
  30371. colorSpaceCount = static_cast<uint32_t>( colorSpaces_.size() );
  30372. pColorSpaces = colorSpaces_.data();
  30373. return *this;
  30374. }
  30375. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  30376. # endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  30377. operator VkImageFormatConstraintsInfoFUCHSIA const &() const VULKAN_HPP_NOEXCEPT
  30378. {
  30379. return *reinterpret_cast<const VkImageFormatConstraintsInfoFUCHSIA *>( this );
  30380. }
  30381. operator VkImageFormatConstraintsInfoFUCHSIA &() VULKAN_HPP_NOEXCEPT
  30382. {
  30383. return *reinterpret_cast<VkImageFormatConstraintsInfoFUCHSIA *>( this );
  30384. }
  30385. # if defined( VULKAN_HPP_USE_REFLECT )
  30386. # if 14 <= VULKAN_HPP_CPP_VERSION
  30387. auto
  30388. # else
  30389. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  30390. const void * const &,
  30391. VULKAN_HPP_NAMESPACE::ImageCreateInfo const &,
  30392. VULKAN_HPP_NAMESPACE::FormatFeatureFlags const &,
  30393. VULKAN_HPP_NAMESPACE::ImageFormatConstraintsFlagsFUCHSIA const &,
  30394. uint64_t const &,
  30395. uint32_t const &,
  30396. const VULKAN_HPP_NAMESPACE::SysmemColorSpaceFUCHSIA * const &>
  30397. # endif
  30398. reflect() const VULKAN_HPP_NOEXCEPT
  30399. {
  30400. return std::tie( sType, pNext, imageCreateInfo, requiredFormatFeatures, flags, sysmemPixelFormat, colorSpaceCount, pColorSpaces );
  30401. }
  30402. # endif
  30403. # if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  30404. auto operator<=>( ImageFormatConstraintsInfoFUCHSIA const & ) const = default;
  30405. # else
  30406. bool operator==( ImageFormatConstraintsInfoFUCHSIA const & rhs ) const VULKAN_HPP_NOEXCEPT
  30407. {
  30408. # if defined( VULKAN_HPP_USE_REFLECT )
  30409. return this->reflect() == rhs.reflect();
  30410. # else
  30411. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( imageCreateInfo == rhs.imageCreateInfo ) &&
  30412. ( requiredFormatFeatures == rhs.requiredFormatFeatures ) && ( flags == rhs.flags ) && ( sysmemPixelFormat == rhs.sysmemPixelFormat ) &&
  30413. ( colorSpaceCount == rhs.colorSpaceCount ) && ( pColorSpaces == rhs.pColorSpaces );
  30414. # endif
  30415. }
  30416. bool operator!=( ImageFormatConstraintsInfoFUCHSIA const & rhs ) const VULKAN_HPP_NOEXCEPT
  30417. {
  30418. return !operator==( rhs );
  30419. }
  30420. # endif
  30421. public:
  30422. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImageFormatConstraintsInfoFUCHSIA;
  30423. const void * pNext = {};
  30424. VULKAN_HPP_NAMESPACE::ImageCreateInfo imageCreateInfo = {};
  30425. VULKAN_HPP_NAMESPACE::FormatFeatureFlags requiredFormatFeatures = {};
  30426. VULKAN_HPP_NAMESPACE::ImageFormatConstraintsFlagsFUCHSIA flags = {};
  30427. uint64_t sysmemPixelFormat = {};
  30428. uint32_t colorSpaceCount = {};
  30429. const VULKAN_HPP_NAMESPACE::SysmemColorSpaceFUCHSIA * pColorSpaces = {};
  30430. };
  30431. template <>
  30432. struct CppType<StructureType, StructureType::eImageFormatConstraintsInfoFUCHSIA>
  30433. {
  30434. using Type = ImageFormatConstraintsInfoFUCHSIA;
  30435. };
  30436. #endif /*VK_USE_PLATFORM_FUCHSIA*/
  30437. #if defined( VK_USE_PLATFORM_FUCHSIA )
  30438. struct ImageConstraintsInfoFUCHSIA
  30439. {
  30440. using NativeType = VkImageConstraintsInfoFUCHSIA;
  30441. static const bool allowDuplicate = false;
  30442. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eImageConstraintsInfoFUCHSIA;
  30443. # if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  30444. VULKAN_HPP_CONSTEXPR ImageConstraintsInfoFUCHSIA( uint32_t formatConstraintsCount_ = {},
  30445. const VULKAN_HPP_NAMESPACE::ImageFormatConstraintsInfoFUCHSIA * pFormatConstraints_ = {},
  30446. VULKAN_HPP_NAMESPACE::BufferCollectionConstraintsInfoFUCHSIA bufferCollectionConstraints_ = {},
  30447. VULKAN_HPP_NAMESPACE::ImageConstraintsInfoFlagsFUCHSIA flags_ = {},
  30448. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  30449. : pNext( pNext_ )
  30450. , formatConstraintsCount( formatConstraintsCount_ )
  30451. , pFormatConstraints( pFormatConstraints_ )
  30452. , bufferCollectionConstraints( bufferCollectionConstraints_ )
  30453. , flags( flags_ )
  30454. {
  30455. }
  30456. VULKAN_HPP_CONSTEXPR ImageConstraintsInfoFUCHSIA( ImageConstraintsInfoFUCHSIA const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  30457. ImageConstraintsInfoFUCHSIA( VkImageConstraintsInfoFUCHSIA const & rhs ) VULKAN_HPP_NOEXCEPT
  30458. : ImageConstraintsInfoFUCHSIA( *reinterpret_cast<ImageConstraintsInfoFUCHSIA const *>( &rhs ) )
  30459. {
  30460. }
  30461. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  30462. ImageConstraintsInfoFUCHSIA(
  30463. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::ImageFormatConstraintsInfoFUCHSIA> const & formatConstraints_,
  30464. VULKAN_HPP_NAMESPACE::BufferCollectionConstraintsInfoFUCHSIA bufferCollectionConstraints_ = {},
  30465. VULKAN_HPP_NAMESPACE::ImageConstraintsInfoFlagsFUCHSIA flags_ = {},
  30466. const void * pNext_ = nullptr )
  30467. : pNext( pNext_ )
  30468. , formatConstraintsCount( static_cast<uint32_t>( formatConstraints_.size() ) )
  30469. , pFormatConstraints( formatConstraints_.data() )
  30470. , bufferCollectionConstraints( bufferCollectionConstraints_ )
  30471. , flags( flags_ )
  30472. {
  30473. }
  30474. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  30475. # endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  30476. ImageConstraintsInfoFUCHSIA & operator=( ImageConstraintsInfoFUCHSIA const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  30477. ImageConstraintsInfoFUCHSIA & operator=( VkImageConstraintsInfoFUCHSIA const & rhs ) VULKAN_HPP_NOEXCEPT
  30478. {
  30479. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ImageConstraintsInfoFUCHSIA const *>( &rhs );
  30480. return *this;
  30481. }
  30482. # if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  30483. VULKAN_HPP_CONSTEXPR_14 ImageConstraintsInfoFUCHSIA & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  30484. {
  30485. pNext = pNext_;
  30486. return *this;
  30487. }
  30488. VULKAN_HPP_CONSTEXPR_14 ImageConstraintsInfoFUCHSIA & setFormatConstraintsCount( uint32_t formatConstraintsCount_ ) VULKAN_HPP_NOEXCEPT
  30489. {
  30490. formatConstraintsCount = formatConstraintsCount_;
  30491. return *this;
  30492. }
  30493. VULKAN_HPP_CONSTEXPR_14 ImageConstraintsInfoFUCHSIA &
  30494. setPFormatConstraints( const VULKAN_HPP_NAMESPACE::ImageFormatConstraintsInfoFUCHSIA * pFormatConstraints_ ) VULKAN_HPP_NOEXCEPT
  30495. {
  30496. pFormatConstraints = pFormatConstraints_;
  30497. return *this;
  30498. }
  30499. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  30500. ImageConstraintsInfoFUCHSIA & setFormatConstraints(
  30501. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::ImageFormatConstraintsInfoFUCHSIA> const & formatConstraints_ )
  30502. VULKAN_HPP_NOEXCEPT
  30503. {
  30504. formatConstraintsCount = static_cast<uint32_t>( formatConstraints_.size() );
  30505. pFormatConstraints = formatConstraints_.data();
  30506. return *this;
  30507. }
  30508. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  30509. VULKAN_HPP_CONSTEXPR_14 ImageConstraintsInfoFUCHSIA &
  30510. setBufferCollectionConstraints( VULKAN_HPP_NAMESPACE::BufferCollectionConstraintsInfoFUCHSIA const & bufferCollectionConstraints_ ) VULKAN_HPP_NOEXCEPT
  30511. {
  30512. bufferCollectionConstraints = bufferCollectionConstraints_;
  30513. return *this;
  30514. }
  30515. VULKAN_HPP_CONSTEXPR_14 ImageConstraintsInfoFUCHSIA & setFlags( VULKAN_HPP_NAMESPACE::ImageConstraintsInfoFlagsFUCHSIA flags_ ) VULKAN_HPP_NOEXCEPT
  30516. {
  30517. flags = flags_;
  30518. return *this;
  30519. }
  30520. # endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  30521. operator VkImageConstraintsInfoFUCHSIA const &() const VULKAN_HPP_NOEXCEPT
  30522. {
  30523. return *reinterpret_cast<const VkImageConstraintsInfoFUCHSIA *>( this );
  30524. }
  30525. operator VkImageConstraintsInfoFUCHSIA &() VULKAN_HPP_NOEXCEPT
  30526. {
  30527. return *reinterpret_cast<VkImageConstraintsInfoFUCHSIA *>( this );
  30528. }
  30529. # if defined( VULKAN_HPP_USE_REFLECT )
  30530. # if 14 <= VULKAN_HPP_CPP_VERSION
  30531. auto
  30532. # else
  30533. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  30534. const void * const &,
  30535. uint32_t const &,
  30536. const VULKAN_HPP_NAMESPACE::ImageFormatConstraintsInfoFUCHSIA * const &,
  30537. VULKAN_HPP_NAMESPACE::BufferCollectionConstraintsInfoFUCHSIA const &,
  30538. VULKAN_HPP_NAMESPACE::ImageConstraintsInfoFlagsFUCHSIA const &>
  30539. # endif
  30540. reflect() const VULKAN_HPP_NOEXCEPT
  30541. {
  30542. return std::tie( sType, pNext, formatConstraintsCount, pFormatConstraints, bufferCollectionConstraints, flags );
  30543. }
  30544. # endif
  30545. # if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  30546. auto operator<=>( ImageConstraintsInfoFUCHSIA const & ) const = default;
  30547. # else
  30548. bool operator==( ImageConstraintsInfoFUCHSIA const & rhs ) const VULKAN_HPP_NOEXCEPT
  30549. {
  30550. # if defined( VULKAN_HPP_USE_REFLECT )
  30551. return this->reflect() == rhs.reflect();
  30552. # else
  30553. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( formatConstraintsCount == rhs.formatConstraintsCount ) &&
  30554. ( pFormatConstraints == rhs.pFormatConstraints ) && ( bufferCollectionConstraints == rhs.bufferCollectionConstraints ) && ( flags == rhs.flags );
  30555. # endif
  30556. }
  30557. bool operator!=( ImageConstraintsInfoFUCHSIA const & rhs ) const VULKAN_HPP_NOEXCEPT
  30558. {
  30559. return !operator==( rhs );
  30560. }
  30561. # endif
  30562. public:
  30563. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImageConstraintsInfoFUCHSIA;
  30564. const void * pNext = {};
  30565. uint32_t formatConstraintsCount = {};
  30566. const VULKAN_HPP_NAMESPACE::ImageFormatConstraintsInfoFUCHSIA * pFormatConstraints = {};
  30567. VULKAN_HPP_NAMESPACE::BufferCollectionConstraintsInfoFUCHSIA bufferCollectionConstraints = {};
  30568. VULKAN_HPP_NAMESPACE::ImageConstraintsInfoFlagsFUCHSIA flags = {};
  30569. };
  30570. template <>
  30571. struct CppType<StructureType, StructureType::eImageConstraintsInfoFUCHSIA>
  30572. {
  30573. using Type = ImageConstraintsInfoFUCHSIA;
  30574. };
  30575. #endif /*VK_USE_PLATFORM_FUCHSIA*/
  30576. struct ImageCopy
  30577. {
  30578. using NativeType = VkImageCopy;
  30579. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  30580. VULKAN_HPP_CONSTEXPR ImageCopy( VULKAN_HPP_NAMESPACE::ImageSubresourceLayers srcSubresource_ = {},
  30581. VULKAN_HPP_NAMESPACE::Offset3D srcOffset_ = {},
  30582. VULKAN_HPP_NAMESPACE::ImageSubresourceLayers dstSubresource_ = {},
  30583. VULKAN_HPP_NAMESPACE::Offset3D dstOffset_ = {},
  30584. VULKAN_HPP_NAMESPACE::Extent3D extent_ = {} ) VULKAN_HPP_NOEXCEPT
  30585. : srcSubresource( srcSubresource_ )
  30586. , srcOffset( srcOffset_ )
  30587. , dstSubresource( dstSubresource_ )
  30588. , dstOffset( dstOffset_ )
  30589. , extent( extent_ )
  30590. {
  30591. }
  30592. VULKAN_HPP_CONSTEXPR ImageCopy( ImageCopy const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  30593. ImageCopy( VkImageCopy const & rhs ) VULKAN_HPP_NOEXCEPT : ImageCopy( *reinterpret_cast<ImageCopy const *>( &rhs ) ) {}
  30594. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  30595. ImageCopy & operator=( ImageCopy const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  30596. ImageCopy & operator=( VkImageCopy const & rhs ) VULKAN_HPP_NOEXCEPT
  30597. {
  30598. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ImageCopy const *>( &rhs );
  30599. return *this;
  30600. }
  30601. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  30602. VULKAN_HPP_CONSTEXPR_14 ImageCopy & setSrcSubresource( VULKAN_HPP_NAMESPACE::ImageSubresourceLayers const & srcSubresource_ ) VULKAN_HPP_NOEXCEPT
  30603. {
  30604. srcSubresource = srcSubresource_;
  30605. return *this;
  30606. }
  30607. VULKAN_HPP_CONSTEXPR_14 ImageCopy & setSrcOffset( VULKAN_HPP_NAMESPACE::Offset3D const & srcOffset_ ) VULKAN_HPP_NOEXCEPT
  30608. {
  30609. srcOffset = srcOffset_;
  30610. return *this;
  30611. }
  30612. VULKAN_HPP_CONSTEXPR_14 ImageCopy & setDstSubresource( VULKAN_HPP_NAMESPACE::ImageSubresourceLayers const & dstSubresource_ ) VULKAN_HPP_NOEXCEPT
  30613. {
  30614. dstSubresource = dstSubresource_;
  30615. return *this;
  30616. }
  30617. VULKAN_HPP_CONSTEXPR_14 ImageCopy & setDstOffset( VULKAN_HPP_NAMESPACE::Offset3D const & dstOffset_ ) VULKAN_HPP_NOEXCEPT
  30618. {
  30619. dstOffset = dstOffset_;
  30620. return *this;
  30621. }
  30622. VULKAN_HPP_CONSTEXPR_14 ImageCopy & setExtent( VULKAN_HPP_NAMESPACE::Extent3D const & extent_ ) VULKAN_HPP_NOEXCEPT
  30623. {
  30624. extent = extent_;
  30625. return *this;
  30626. }
  30627. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  30628. operator VkImageCopy const &() const VULKAN_HPP_NOEXCEPT
  30629. {
  30630. return *reinterpret_cast<const VkImageCopy *>( this );
  30631. }
  30632. operator VkImageCopy &() VULKAN_HPP_NOEXCEPT
  30633. {
  30634. return *reinterpret_cast<VkImageCopy *>( this );
  30635. }
  30636. #if defined( VULKAN_HPP_USE_REFLECT )
  30637. # if 14 <= VULKAN_HPP_CPP_VERSION
  30638. auto
  30639. # else
  30640. std::tuple<VULKAN_HPP_NAMESPACE::ImageSubresourceLayers const &,
  30641. VULKAN_HPP_NAMESPACE::Offset3D const &,
  30642. VULKAN_HPP_NAMESPACE::ImageSubresourceLayers const &,
  30643. VULKAN_HPP_NAMESPACE::Offset3D const &,
  30644. VULKAN_HPP_NAMESPACE::Extent3D const &>
  30645. # endif
  30646. reflect() const VULKAN_HPP_NOEXCEPT
  30647. {
  30648. return std::tie( srcSubresource, srcOffset, dstSubresource, dstOffset, extent );
  30649. }
  30650. #endif
  30651. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  30652. auto operator<=>( ImageCopy const & ) const = default;
  30653. #else
  30654. bool operator==( ImageCopy const & rhs ) const VULKAN_HPP_NOEXCEPT
  30655. {
  30656. # if defined( VULKAN_HPP_USE_REFLECT )
  30657. return this->reflect() == rhs.reflect();
  30658. # else
  30659. return ( srcSubresource == rhs.srcSubresource ) && ( srcOffset == rhs.srcOffset ) && ( dstSubresource == rhs.dstSubresource ) &&
  30660. ( dstOffset == rhs.dstOffset ) && ( extent == rhs.extent );
  30661. # endif
  30662. }
  30663. bool operator!=( ImageCopy const & rhs ) const VULKAN_HPP_NOEXCEPT
  30664. {
  30665. return !operator==( rhs );
  30666. }
  30667. #endif
  30668. public:
  30669. VULKAN_HPP_NAMESPACE::ImageSubresourceLayers srcSubresource = {};
  30670. VULKAN_HPP_NAMESPACE::Offset3D srcOffset = {};
  30671. VULKAN_HPP_NAMESPACE::ImageSubresourceLayers dstSubresource = {};
  30672. VULKAN_HPP_NAMESPACE::Offset3D dstOffset = {};
  30673. VULKAN_HPP_NAMESPACE::Extent3D extent = {};
  30674. };
  30675. struct SubresourceLayout
  30676. {
  30677. using NativeType = VkSubresourceLayout;
  30678. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  30679. VULKAN_HPP_CONSTEXPR SubresourceLayout( VULKAN_HPP_NAMESPACE::DeviceSize offset_ = {},
  30680. VULKAN_HPP_NAMESPACE::DeviceSize size_ = {},
  30681. VULKAN_HPP_NAMESPACE::DeviceSize rowPitch_ = {},
  30682. VULKAN_HPP_NAMESPACE::DeviceSize arrayPitch_ = {},
  30683. VULKAN_HPP_NAMESPACE::DeviceSize depthPitch_ = {} ) VULKAN_HPP_NOEXCEPT
  30684. : offset( offset_ )
  30685. , size( size_ )
  30686. , rowPitch( rowPitch_ )
  30687. , arrayPitch( arrayPitch_ )
  30688. , depthPitch( depthPitch_ )
  30689. {
  30690. }
  30691. VULKAN_HPP_CONSTEXPR SubresourceLayout( SubresourceLayout const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  30692. SubresourceLayout( VkSubresourceLayout const & rhs ) VULKAN_HPP_NOEXCEPT : SubresourceLayout( *reinterpret_cast<SubresourceLayout const *>( &rhs ) ) {}
  30693. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  30694. SubresourceLayout & operator=( SubresourceLayout const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  30695. SubresourceLayout & operator=( VkSubresourceLayout const & rhs ) VULKAN_HPP_NOEXCEPT
  30696. {
  30697. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SubresourceLayout const *>( &rhs );
  30698. return *this;
  30699. }
  30700. operator VkSubresourceLayout const &() const VULKAN_HPP_NOEXCEPT
  30701. {
  30702. return *reinterpret_cast<const VkSubresourceLayout *>( this );
  30703. }
  30704. operator VkSubresourceLayout &() VULKAN_HPP_NOEXCEPT
  30705. {
  30706. return *reinterpret_cast<VkSubresourceLayout *>( this );
  30707. }
  30708. #if defined( VULKAN_HPP_USE_REFLECT )
  30709. # if 14 <= VULKAN_HPP_CPP_VERSION
  30710. auto
  30711. # else
  30712. std::tuple<VULKAN_HPP_NAMESPACE::DeviceSize const &,
  30713. VULKAN_HPP_NAMESPACE::DeviceSize const &,
  30714. VULKAN_HPP_NAMESPACE::DeviceSize const &,
  30715. VULKAN_HPP_NAMESPACE::DeviceSize const &,
  30716. VULKAN_HPP_NAMESPACE::DeviceSize const &>
  30717. # endif
  30718. reflect() const VULKAN_HPP_NOEXCEPT
  30719. {
  30720. return std::tie( offset, size, rowPitch, arrayPitch, depthPitch );
  30721. }
  30722. #endif
  30723. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  30724. auto operator<=>( SubresourceLayout const & ) const = default;
  30725. #else
  30726. bool operator==( SubresourceLayout const & rhs ) const VULKAN_HPP_NOEXCEPT
  30727. {
  30728. # if defined( VULKAN_HPP_USE_REFLECT )
  30729. return this->reflect() == rhs.reflect();
  30730. # else
  30731. return ( offset == rhs.offset ) && ( size == rhs.size ) && ( rowPitch == rhs.rowPitch ) && ( arrayPitch == rhs.arrayPitch ) &&
  30732. ( depthPitch == rhs.depthPitch );
  30733. # endif
  30734. }
  30735. bool operator!=( SubresourceLayout const & rhs ) const VULKAN_HPP_NOEXCEPT
  30736. {
  30737. return !operator==( rhs );
  30738. }
  30739. #endif
  30740. public:
  30741. VULKAN_HPP_NAMESPACE::DeviceSize offset = {};
  30742. VULKAN_HPP_NAMESPACE::DeviceSize size = {};
  30743. VULKAN_HPP_NAMESPACE::DeviceSize rowPitch = {};
  30744. VULKAN_HPP_NAMESPACE::DeviceSize arrayPitch = {};
  30745. VULKAN_HPP_NAMESPACE::DeviceSize depthPitch = {};
  30746. };
  30747. struct ImageDrmFormatModifierExplicitCreateInfoEXT
  30748. {
  30749. using NativeType = VkImageDrmFormatModifierExplicitCreateInfoEXT;
  30750. static const bool allowDuplicate = false;
  30751. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eImageDrmFormatModifierExplicitCreateInfoEXT;
  30752. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  30753. VULKAN_HPP_CONSTEXPR ImageDrmFormatModifierExplicitCreateInfoEXT( uint64_t drmFormatModifier_ = {},
  30754. uint32_t drmFormatModifierPlaneCount_ = {},
  30755. const VULKAN_HPP_NAMESPACE::SubresourceLayout * pPlaneLayouts_ = {},
  30756. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  30757. : pNext( pNext_ )
  30758. , drmFormatModifier( drmFormatModifier_ )
  30759. , drmFormatModifierPlaneCount( drmFormatModifierPlaneCount_ )
  30760. , pPlaneLayouts( pPlaneLayouts_ )
  30761. {
  30762. }
  30763. VULKAN_HPP_CONSTEXPR ImageDrmFormatModifierExplicitCreateInfoEXT( ImageDrmFormatModifierExplicitCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  30764. ImageDrmFormatModifierExplicitCreateInfoEXT( VkImageDrmFormatModifierExplicitCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  30765. : ImageDrmFormatModifierExplicitCreateInfoEXT( *reinterpret_cast<ImageDrmFormatModifierExplicitCreateInfoEXT const *>( &rhs ) )
  30766. {
  30767. }
  30768. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  30769. ImageDrmFormatModifierExplicitCreateInfoEXT(
  30770. uint64_t drmFormatModifier_,
  30771. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::SubresourceLayout> const & planeLayouts_,
  30772. const void * pNext_ = nullptr )
  30773. : pNext( pNext_ )
  30774. , drmFormatModifier( drmFormatModifier_ )
  30775. , drmFormatModifierPlaneCount( static_cast<uint32_t>( planeLayouts_.size() ) )
  30776. , pPlaneLayouts( planeLayouts_.data() )
  30777. {
  30778. }
  30779. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  30780. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  30781. ImageDrmFormatModifierExplicitCreateInfoEXT & operator=( ImageDrmFormatModifierExplicitCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  30782. ImageDrmFormatModifierExplicitCreateInfoEXT & operator=( VkImageDrmFormatModifierExplicitCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  30783. {
  30784. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ImageDrmFormatModifierExplicitCreateInfoEXT const *>( &rhs );
  30785. return *this;
  30786. }
  30787. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  30788. VULKAN_HPP_CONSTEXPR_14 ImageDrmFormatModifierExplicitCreateInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  30789. {
  30790. pNext = pNext_;
  30791. return *this;
  30792. }
  30793. VULKAN_HPP_CONSTEXPR_14 ImageDrmFormatModifierExplicitCreateInfoEXT & setDrmFormatModifier( uint64_t drmFormatModifier_ ) VULKAN_HPP_NOEXCEPT
  30794. {
  30795. drmFormatModifier = drmFormatModifier_;
  30796. return *this;
  30797. }
  30798. VULKAN_HPP_CONSTEXPR_14 ImageDrmFormatModifierExplicitCreateInfoEXT &
  30799. setDrmFormatModifierPlaneCount( uint32_t drmFormatModifierPlaneCount_ ) VULKAN_HPP_NOEXCEPT
  30800. {
  30801. drmFormatModifierPlaneCount = drmFormatModifierPlaneCount_;
  30802. return *this;
  30803. }
  30804. VULKAN_HPP_CONSTEXPR_14 ImageDrmFormatModifierExplicitCreateInfoEXT &
  30805. setPPlaneLayouts( const VULKAN_HPP_NAMESPACE::SubresourceLayout * pPlaneLayouts_ ) VULKAN_HPP_NOEXCEPT
  30806. {
  30807. pPlaneLayouts = pPlaneLayouts_;
  30808. return *this;
  30809. }
  30810. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  30811. ImageDrmFormatModifierExplicitCreateInfoEXT &
  30812. setPlaneLayouts( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::SubresourceLayout> const & planeLayouts_ ) VULKAN_HPP_NOEXCEPT
  30813. {
  30814. drmFormatModifierPlaneCount = static_cast<uint32_t>( planeLayouts_.size() );
  30815. pPlaneLayouts = planeLayouts_.data();
  30816. return *this;
  30817. }
  30818. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  30819. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  30820. operator VkImageDrmFormatModifierExplicitCreateInfoEXT const &() const VULKAN_HPP_NOEXCEPT
  30821. {
  30822. return *reinterpret_cast<const VkImageDrmFormatModifierExplicitCreateInfoEXT *>( this );
  30823. }
  30824. operator VkImageDrmFormatModifierExplicitCreateInfoEXT &() VULKAN_HPP_NOEXCEPT
  30825. {
  30826. return *reinterpret_cast<VkImageDrmFormatModifierExplicitCreateInfoEXT *>( this );
  30827. }
  30828. #if defined( VULKAN_HPP_USE_REFLECT )
  30829. # if 14 <= VULKAN_HPP_CPP_VERSION
  30830. auto
  30831. # else
  30832. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  30833. const void * const &,
  30834. uint64_t const &,
  30835. uint32_t const &,
  30836. const VULKAN_HPP_NAMESPACE::SubresourceLayout * const &>
  30837. # endif
  30838. reflect() const VULKAN_HPP_NOEXCEPT
  30839. {
  30840. return std::tie( sType, pNext, drmFormatModifier, drmFormatModifierPlaneCount, pPlaneLayouts );
  30841. }
  30842. #endif
  30843. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  30844. auto operator<=>( ImageDrmFormatModifierExplicitCreateInfoEXT const & ) const = default;
  30845. #else
  30846. bool operator==( ImageDrmFormatModifierExplicitCreateInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  30847. {
  30848. # if defined( VULKAN_HPP_USE_REFLECT )
  30849. return this->reflect() == rhs.reflect();
  30850. # else
  30851. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( drmFormatModifier == rhs.drmFormatModifier ) &&
  30852. ( drmFormatModifierPlaneCount == rhs.drmFormatModifierPlaneCount ) && ( pPlaneLayouts == rhs.pPlaneLayouts );
  30853. # endif
  30854. }
  30855. bool operator!=( ImageDrmFormatModifierExplicitCreateInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  30856. {
  30857. return !operator==( rhs );
  30858. }
  30859. #endif
  30860. public:
  30861. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImageDrmFormatModifierExplicitCreateInfoEXT;
  30862. const void * pNext = {};
  30863. uint64_t drmFormatModifier = {};
  30864. uint32_t drmFormatModifierPlaneCount = {};
  30865. const VULKAN_HPP_NAMESPACE::SubresourceLayout * pPlaneLayouts = {};
  30866. };
  30867. template <>
  30868. struct CppType<StructureType, StructureType::eImageDrmFormatModifierExplicitCreateInfoEXT>
  30869. {
  30870. using Type = ImageDrmFormatModifierExplicitCreateInfoEXT;
  30871. };
  30872. struct ImageDrmFormatModifierListCreateInfoEXT
  30873. {
  30874. using NativeType = VkImageDrmFormatModifierListCreateInfoEXT;
  30875. static const bool allowDuplicate = false;
  30876. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eImageDrmFormatModifierListCreateInfoEXT;
  30877. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  30878. VULKAN_HPP_CONSTEXPR ImageDrmFormatModifierListCreateInfoEXT( uint32_t drmFormatModifierCount_ = {},
  30879. const uint64_t * pDrmFormatModifiers_ = {},
  30880. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  30881. : pNext( pNext_ )
  30882. , drmFormatModifierCount( drmFormatModifierCount_ )
  30883. , pDrmFormatModifiers( pDrmFormatModifiers_ )
  30884. {
  30885. }
  30886. VULKAN_HPP_CONSTEXPR ImageDrmFormatModifierListCreateInfoEXT( ImageDrmFormatModifierListCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  30887. ImageDrmFormatModifierListCreateInfoEXT( VkImageDrmFormatModifierListCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  30888. : ImageDrmFormatModifierListCreateInfoEXT( *reinterpret_cast<ImageDrmFormatModifierListCreateInfoEXT const *>( &rhs ) )
  30889. {
  30890. }
  30891. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  30892. ImageDrmFormatModifierListCreateInfoEXT( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint64_t> const & drmFormatModifiers_,
  30893. const void * pNext_ = nullptr )
  30894. : pNext( pNext_ ), drmFormatModifierCount( static_cast<uint32_t>( drmFormatModifiers_.size() ) ), pDrmFormatModifiers( drmFormatModifiers_.data() )
  30895. {
  30896. }
  30897. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  30898. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  30899. ImageDrmFormatModifierListCreateInfoEXT & operator=( ImageDrmFormatModifierListCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  30900. ImageDrmFormatModifierListCreateInfoEXT & operator=( VkImageDrmFormatModifierListCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  30901. {
  30902. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ImageDrmFormatModifierListCreateInfoEXT const *>( &rhs );
  30903. return *this;
  30904. }
  30905. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  30906. VULKAN_HPP_CONSTEXPR_14 ImageDrmFormatModifierListCreateInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  30907. {
  30908. pNext = pNext_;
  30909. return *this;
  30910. }
  30911. VULKAN_HPP_CONSTEXPR_14 ImageDrmFormatModifierListCreateInfoEXT & setDrmFormatModifierCount( uint32_t drmFormatModifierCount_ ) VULKAN_HPP_NOEXCEPT
  30912. {
  30913. drmFormatModifierCount = drmFormatModifierCount_;
  30914. return *this;
  30915. }
  30916. VULKAN_HPP_CONSTEXPR_14 ImageDrmFormatModifierListCreateInfoEXT & setPDrmFormatModifiers( const uint64_t * pDrmFormatModifiers_ ) VULKAN_HPP_NOEXCEPT
  30917. {
  30918. pDrmFormatModifiers = pDrmFormatModifiers_;
  30919. return *this;
  30920. }
  30921. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  30922. ImageDrmFormatModifierListCreateInfoEXT &
  30923. setDrmFormatModifiers( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint64_t> const & drmFormatModifiers_ ) VULKAN_HPP_NOEXCEPT
  30924. {
  30925. drmFormatModifierCount = static_cast<uint32_t>( drmFormatModifiers_.size() );
  30926. pDrmFormatModifiers = drmFormatModifiers_.data();
  30927. return *this;
  30928. }
  30929. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  30930. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  30931. operator VkImageDrmFormatModifierListCreateInfoEXT const &() const VULKAN_HPP_NOEXCEPT
  30932. {
  30933. return *reinterpret_cast<const VkImageDrmFormatModifierListCreateInfoEXT *>( this );
  30934. }
  30935. operator VkImageDrmFormatModifierListCreateInfoEXT &() VULKAN_HPP_NOEXCEPT
  30936. {
  30937. return *reinterpret_cast<VkImageDrmFormatModifierListCreateInfoEXT *>( this );
  30938. }
  30939. #if defined( VULKAN_HPP_USE_REFLECT )
  30940. # if 14 <= VULKAN_HPP_CPP_VERSION
  30941. auto
  30942. # else
  30943. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, uint32_t const &, const uint64_t * const &>
  30944. # endif
  30945. reflect() const VULKAN_HPP_NOEXCEPT
  30946. {
  30947. return std::tie( sType, pNext, drmFormatModifierCount, pDrmFormatModifiers );
  30948. }
  30949. #endif
  30950. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  30951. auto operator<=>( ImageDrmFormatModifierListCreateInfoEXT const & ) const = default;
  30952. #else
  30953. bool operator==( ImageDrmFormatModifierListCreateInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  30954. {
  30955. # if defined( VULKAN_HPP_USE_REFLECT )
  30956. return this->reflect() == rhs.reflect();
  30957. # else
  30958. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( drmFormatModifierCount == rhs.drmFormatModifierCount ) &&
  30959. ( pDrmFormatModifiers == rhs.pDrmFormatModifiers );
  30960. # endif
  30961. }
  30962. bool operator!=( ImageDrmFormatModifierListCreateInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  30963. {
  30964. return !operator==( rhs );
  30965. }
  30966. #endif
  30967. public:
  30968. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImageDrmFormatModifierListCreateInfoEXT;
  30969. const void * pNext = {};
  30970. uint32_t drmFormatModifierCount = {};
  30971. const uint64_t * pDrmFormatModifiers = {};
  30972. };
  30973. template <>
  30974. struct CppType<StructureType, StructureType::eImageDrmFormatModifierListCreateInfoEXT>
  30975. {
  30976. using Type = ImageDrmFormatModifierListCreateInfoEXT;
  30977. };
  30978. struct ImageDrmFormatModifierPropertiesEXT
  30979. {
  30980. using NativeType = VkImageDrmFormatModifierPropertiesEXT;
  30981. static const bool allowDuplicate = false;
  30982. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eImageDrmFormatModifierPropertiesEXT;
  30983. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  30984. VULKAN_HPP_CONSTEXPR ImageDrmFormatModifierPropertiesEXT( uint64_t drmFormatModifier_ = {}, void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  30985. : pNext( pNext_ )
  30986. , drmFormatModifier( drmFormatModifier_ )
  30987. {
  30988. }
  30989. VULKAN_HPP_CONSTEXPR ImageDrmFormatModifierPropertiesEXT( ImageDrmFormatModifierPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  30990. ImageDrmFormatModifierPropertiesEXT( VkImageDrmFormatModifierPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  30991. : ImageDrmFormatModifierPropertiesEXT( *reinterpret_cast<ImageDrmFormatModifierPropertiesEXT const *>( &rhs ) )
  30992. {
  30993. }
  30994. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  30995. ImageDrmFormatModifierPropertiesEXT & operator=( ImageDrmFormatModifierPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  30996. ImageDrmFormatModifierPropertiesEXT & operator=( VkImageDrmFormatModifierPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  30997. {
  30998. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ImageDrmFormatModifierPropertiesEXT const *>( &rhs );
  30999. return *this;
  31000. }
  31001. operator VkImageDrmFormatModifierPropertiesEXT const &() const VULKAN_HPP_NOEXCEPT
  31002. {
  31003. return *reinterpret_cast<const VkImageDrmFormatModifierPropertiesEXT *>( this );
  31004. }
  31005. operator VkImageDrmFormatModifierPropertiesEXT &() VULKAN_HPP_NOEXCEPT
  31006. {
  31007. return *reinterpret_cast<VkImageDrmFormatModifierPropertiesEXT *>( this );
  31008. }
  31009. #if defined( VULKAN_HPP_USE_REFLECT )
  31010. # if 14 <= VULKAN_HPP_CPP_VERSION
  31011. auto
  31012. # else
  31013. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, uint64_t const &>
  31014. # endif
  31015. reflect() const VULKAN_HPP_NOEXCEPT
  31016. {
  31017. return std::tie( sType, pNext, drmFormatModifier );
  31018. }
  31019. #endif
  31020. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  31021. auto operator<=>( ImageDrmFormatModifierPropertiesEXT const & ) const = default;
  31022. #else
  31023. bool operator==( ImageDrmFormatModifierPropertiesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  31024. {
  31025. # if defined( VULKAN_HPP_USE_REFLECT )
  31026. return this->reflect() == rhs.reflect();
  31027. # else
  31028. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( drmFormatModifier == rhs.drmFormatModifier );
  31029. # endif
  31030. }
  31031. bool operator!=( ImageDrmFormatModifierPropertiesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  31032. {
  31033. return !operator==( rhs );
  31034. }
  31035. #endif
  31036. public:
  31037. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImageDrmFormatModifierPropertiesEXT;
  31038. void * pNext = {};
  31039. uint64_t drmFormatModifier = {};
  31040. };
  31041. template <>
  31042. struct CppType<StructureType, StructureType::eImageDrmFormatModifierPropertiesEXT>
  31043. {
  31044. using Type = ImageDrmFormatModifierPropertiesEXT;
  31045. };
  31046. struct ImageFormatListCreateInfo
  31047. {
  31048. using NativeType = VkImageFormatListCreateInfo;
  31049. static const bool allowDuplicate = false;
  31050. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eImageFormatListCreateInfo;
  31051. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  31052. VULKAN_HPP_CONSTEXPR ImageFormatListCreateInfo( uint32_t viewFormatCount_ = {},
  31053. const VULKAN_HPP_NAMESPACE::Format * pViewFormats_ = {},
  31054. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  31055. : pNext( pNext_ )
  31056. , viewFormatCount( viewFormatCount_ )
  31057. , pViewFormats( pViewFormats_ )
  31058. {
  31059. }
  31060. VULKAN_HPP_CONSTEXPR ImageFormatListCreateInfo( ImageFormatListCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  31061. ImageFormatListCreateInfo( VkImageFormatListCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
  31062. : ImageFormatListCreateInfo( *reinterpret_cast<ImageFormatListCreateInfo const *>( &rhs ) )
  31063. {
  31064. }
  31065. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  31066. ImageFormatListCreateInfo( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::Format> const & viewFormats_,
  31067. const void * pNext_ = nullptr )
  31068. : pNext( pNext_ ), viewFormatCount( static_cast<uint32_t>( viewFormats_.size() ) ), pViewFormats( viewFormats_.data() )
  31069. {
  31070. }
  31071. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  31072. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  31073. ImageFormatListCreateInfo & operator=( ImageFormatListCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  31074. ImageFormatListCreateInfo & operator=( VkImageFormatListCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
  31075. {
  31076. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ImageFormatListCreateInfo const *>( &rhs );
  31077. return *this;
  31078. }
  31079. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  31080. VULKAN_HPP_CONSTEXPR_14 ImageFormatListCreateInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  31081. {
  31082. pNext = pNext_;
  31083. return *this;
  31084. }
  31085. VULKAN_HPP_CONSTEXPR_14 ImageFormatListCreateInfo & setViewFormatCount( uint32_t viewFormatCount_ ) VULKAN_HPP_NOEXCEPT
  31086. {
  31087. viewFormatCount = viewFormatCount_;
  31088. return *this;
  31089. }
  31090. VULKAN_HPP_CONSTEXPR_14 ImageFormatListCreateInfo & setPViewFormats( const VULKAN_HPP_NAMESPACE::Format * pViewFormats_ ) VULKAN_HPP_NOEXCEPT
  31091. {
  31092. pViewFormats = pViewFormats_;
  31093. return *this;
  31094. }
  31095. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  31096. ImageFormatListCreateInfo &
  31097. setViewFormats( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::Format> const & viewFormats_ ) VULKAN_HPP_NOEXCEPT
  31098. {
  31099. viewFormatCount = static_cast<uint32_t>( viewFormats_.size() );
  31100. pViewFormats = viewFormats_.data();
  31101. return *this;
  31102. }
  31103. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  31104. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  31105. operator VkImageFormatListCreateInfo const &() const VULKAN_HPP_NOEXCEPT
  31106. {
  31107. return *reinterpret_cast<const VkImageFormatListCreateInfo *>( this );
  31108. }
  31109. operator VkImageFormatListCreateInfo &() VULKAN_HPP_NOEXCEPT
  31110. {
  31111. return *reinterpret_cast<VkImageFormatListCreateInfo *>( this );
  31112. }
  31113. #if defined( VULKAN_HPP_USE_REFLECT )
  31114. # if 14 <= VULKAN_HPP_CPP_VERSION
  31115. auto
  31116. # else
  31117. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, uint32_t const &, const VULKAN_HPP_NAMESPACE::Format * const &>
  31118. # endif
  31119. reflect() const VULKAN_HPP_NOEXCEPT
  31120. {
  31121. return std::tie( sType, pNext, viewFormatCount, pViewFormats );
  31122. }
  31123. #endif
  31124. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  31125. auto operator<=>( ImageFormatListCreateInfo const & ) const = default;
  31126. #else
  31127. bool operator==( ImageFormatListCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  31128. {
  31129. # if defined( VULKAN_HPP_USE_REFLECT )
  31130. return this->reflect() == rhs.reflect();
  31131. # else
  31132. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( viewFormatCount == rhs.viewFormatCount ) && ( pViewFormats == rhs.pViewFormats );
  31133. # endif
  31134. }
  31135. bool operator!=( ImageFormatListCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  31136. {
  31137. return !operator==( rhs );
  31138. }
  31139. #endif
  31140. public:
  31141. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImageFormatListCreateInfo;
  31142. const void * pNext = {};
  31143. uint32_t viewFormatCount = {};
  31144. const VULKAN_HPP_NAMESPACE::Format * pViewFormats = {};
  31145. };
  31146. template <>
  31147. struct CppType<StructureType, StructureType::eImageFormatListCreateInfo>
  31148. {
  31149. using Type = ImageFormatListCreateInfo;
  31150. };
  31151. using ImageFormatListCreateInfoKHR = ImageFormatListCreateInfo;
  31152. struct ImageFormatProperties2
  31153. {
  31154. using NativeType = VkImageFormatProperties2;
  31155. static const bool allowDuplicate = false;
  31156. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eImageFormatProperties2;
  31157. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  31158. VULKAN_HPP_CONSTEXPR ImageFormatProperties2( VULKAN_HPP_NAMESPACE::ImageFormatProperties imageFormatProperties_ = {},
  31159. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  31160. : pNext( pNext_ )
  31161. , imageFormatProperties( imageFormatProperties_ )
  31162. {
  31163. }
  31164. VULKAN_HPP_CONSTEXPR ImageFormatProperties2( ImageFormatProperties2 const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  31165. ImageFormatProperties2( VkImageFormatProperties2 const & rhs ) VULKAN_HPP_NOEXCEPT
  31166. : ImageFormatProperties2( *reinterpret_cast<ImageFormatProperties2 const *>( &rhs ) )
  31167. {
  31168. }
  31169. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  31170. ImageFormatProperties2 & operator=( ImageFormatProperties2 const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  31171. ImageFormatProperties2 & operator=( VkImageFormatProperties2 const & rhs ) VULKAN_HPP_NOEXCEPT
  31172. {
  31173. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ImageFormatProperties2 const *>( &rhs );
  31174. return *this;
  31175. }
  31176. operator VkImageFormatProperties2 const &() const VULKAN_HPP_NOEXCEPT
  31177. {
  31178. return *reinterpret_cast<const VkImageFormatProperties2 *>( this );
  31179. }
  31180. operator VkImageFormatProperties2 &() VULKAN_HPP_NOEXCEPT
  31181. {
  31182. return *reinterpret_cast<VkImageFormatProperties2 *>( this );
  31183. }
  31184. #if defined( VULKAN_HPP_USE_REFLECT )
  31185. # if 14 <= VULKAN_HPP_CPP_VERSION
  31186. auto
  31187. # else
  31188. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::ImageFormatProperties const &>
  31189. # endif
  31190. reflect() const VULKAN_HPP_NOEXCEPT
  31191. {
  31192. return std::tie( sType, pNext, imageFormatProperties );
  31193. }
  31194. #endif
  31195. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  31196. auto operator<=>( ImageFormatProperties2 const & ) const = default;
  31197. #else
  31198. bool operator==( ImageFormatProperties2 const & rhs ) const VULKAN_HPP_NOEXCEPT
  31199. {
  31200. # if defined( VULKAN_HPP_USE_REFLECT )
  31201. return this->reflect() == rhs.reflect();
  31202. # else
  31203. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( imageFormatProperties == rhs.imageFormatProperties );
  31204. # endif
  31205. }
  31206. bool operator!=( ImageFormatProperties2 const & rhs ) const VULKAN_HPP_NOEXCEPT
  31207. {
  31208. return !operator==( rhs );
  31209. }
  31210. #endif
  31211. public:
  31212. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImageFormatProperties2;
  31213. void * pNext = {};
  31214. VULKAN_HPP_NAMESPACE::ImageFormatProperties imageFormatProperties = {};
  31215. };
  31216. template <>
  31217. struct CppType<StructureType, StructureType::eImageFormatProperties2>
  31218. {
  31219. using Type = ImageFormatProperties2;
  31220. };
  31221. using ImageFormatProperties2KHR = ImageFormatProperties2;
  31222. struct ImageMemoryBarrier
  31223. {
  31224. using NativeType = VkImageMemoryBarrier;
  31225. static const bool allowDuplicate = false;
  31226. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eImageMemoryBarrier;
  31227. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  31228. VULKAN_HPP_CONSTEXPR ImageMemoryBarrier( VULKAN_HPP_NAMESPACE::AccessFlags srcAccessMask_ = {},
  31229. VULKAN_HPP_NAMESPACE::AccessFlags dstAccessMask_ = {},
  31230. VULKAN_HPP_NAMESPACE::ImageLayout oldLayout_ = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined,
  31231. VULKAN_HPP_NAMESPACE::ImageLayout newLayout_ = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined,
  31232. uint32_t srcQueueFamilyIndex_ = {},
  31233. uint32_t dstQueueFamilyIndex_ = {},
  31234. VULKAN_HPP_NAMESPACE::Image image_ = {},
  31235. VULKAN_HPP_NAMESPACE::ImageSubresourceRange subresourceRange_ = {},
  31236. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  31237. : pNext( pNext_ )
  31238. , srcAccessMask( srcAccessMask_ )
  31239. , dstAccessMask( dstAccessMask_ )
  31240. , oldLayout( oldLayout_ )
  31241. , newLayout( newLayout_ )
  31242. , srcQueueFamilyIndex( srcQueueFamilyIndex_ )
  31243. , dstQueueFamilyIndex( dstQueueFamilyIndex_ )
  31244. , image( image_ )
  31245. , subresourceRange( subresourceRange_ )
  31246. {
  31247. }
  31248. VULKAN_HPP_CONSTEXPR ImageMemoryBarrier( ImageMemoryBarrier const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  31249. ImageMemoryBarrier( VkImageMemoryBarrier const & rhs ) VULKAN_HPP_NOEXCEPT : ImageMemoryBarrier( *reinterpret_cast<ImageMemoryBarrier const *>( &rhs ) ) {}
  31250. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  31251. ImageMemoryBarrier & operator=( ImageMemoryBarrier const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  31252. ImageMemoryBarrier & operator=( VkImageMemoryBarrier const & rhs ) VULKAN_HPP_NOEXCEPT
  31253. {
  31254. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ImageMemoryBarrier const *>( &rhs );
  31255. return *this;
  31256. }
  31257. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  31258. VULKAN_HPP_CONSTEXPR_14 ImageMemoryBarrier & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  31259. {
  31260. pNext = pNext_;
  31261. return *this;
  31262. }
  31263. VULKAN_HPP_CONSTEXPR_14 ImageMemoryBarrier & setSrcAccessMask( VULKAN_HPP_NAMESPACE::AccessFlags srcAccessMask_ ) VULKAN_HPP_NOEXCEPT
  31264. {
  31265. srcAccessMask = srcAccessMask_;
  31266. return *this;
  31267. }
  31268. VULKAN_HPP_CONSTEXPR_14 ImageMemoryBarrier & setDstAccessMask( VULKAN_HPP_NAMESPACE::AccessFlags dstAccessMask_ ) VULKAN_HPP_NOEXCEPT
  31269. {
  31270. dstAccessMask = dstAccessMask_;
  31271. return *this;
  31272. }
  31273. VULKAN_HPP_CONSTEXPR_14 ImageMemoryBarrier & setOldLayout( VULKAN_HPP_NAMESPACE::ImageLayout oldLayout_ ) VULKAN_HPP_NOEXCEPT
  31274. {
  31275. oldLayout = oldLayout_;
  31276. return *this;
  31277. }
  31278. VULKAN_HPP_CONSTEXPR_14 ImageMemoryBarrier & setNewLayout( VULKAN_HPP_NAMESPACE::ImageLayout newLayout_ ) VULKAN_HPP_NOEXCEPT
  31279. {
  31280. newLayout = newLayout_;
  31281. return *this;
  31282. }
  31283. VULKAN_HPP_CONSTEXPR_14 ImageMemoryBarrier & setSrcQueueFamilyIndex( uint32_t srcQueueFamilyIndex_ ) VULKAN_HPP_NOEXCEPT
  31284. {
  31285. srcQueueFamilyIndex = srcQueueFamilyIndex_;
  31286. return *this;
  31287. }
  31288. VULKAN_HPP_CONSTEXPR_14 ImageMemoryBarrier & setDstQueueFamilyIndex( uint32_t dstQueueFamilyIndex_ ) VULKAN_HPP_NOEXCEPT
  31289. {
  31290. dstQueueFamilyIndex = dstQueueFamilyIndex_;
  31291. return *this;
  31292. }
  31293. VULKAN_HPP_CONSTEXPR_14 ImageMemoryBarrier & setImage( VULKAN_HPP_NAMESPACE::Image image_ ) VULKAN_HPP_NOEXCEPT
  31294. {
  31295. image = image_;
  31296. return *this;
  31297. }
  31298. VULKAN_HPP_CONSTEXPR_14 ImageMemoryBarrier &
  31299. setSubresourceRange( VULKAN_HPP_NAMESPACE::ImageSubresourceRange const & subresourceRange_ ) VULKAN_HPP_NOEXCEPT
  31300. {
  31301. subresourceRange = subresourceRange_;
  31302. return *this;
  31303. }
  31304. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  31305. operator VkImageMemoryBarrier const &() const VULKAN_HPP_NOEXCEPT
  31306. {
  31307. return *reinterpret_cast<const VkImageMemoryBarrier *>( this );
  31308. }
  31309. operator VkImageMemoryBarrier &() VULKAN_HPP_NOEXCEPT
  31310. {
  31311. return *reinterpret_cast<VkImageMemoryBarrier *>( this );
  31312. }
  31313. #if defined( VULKAN_HPP_USE_REFLECT )
  31314. # if 14 <= VULKAN_HPP_CPP_VERSION
  31315. auto
  31316. # else
  31317. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  31318. const void * const &,
  31319. VULKAN_HPP_NAMESPACE::AccessFlags const &,
  31320. VULKAN_HPP_NAMESPACE::AccessFlags const &,
  31321. VULKAN_HPP_NAMESPACE::ImageLayout const &,
  31322. VULKAN_HPP_NAMESPACE::ImageLayout const &,
  31323. uint32_t const &,
  31324. uint32_t const &,
  31325. VULKAN_HPP_NAMESPACE::Image const &,
  31326. VULKAN_HPP_NAMESPACE::ImageSubresourceRange const &>
  31327. # endif
  31328. reflect() const VULKAN_HPP_NOEXCEPT
  31329. {
  31330. return std::tie( sType, pNext, srcAccessMask, dstAccessMask, oldLayout, newLayout, srcQueueFamilyIndex, dstQueueFamilyIndex, image, subresourceRange );
  31331. }
  31332. #endif
  31333. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  31334. auto operator<=>( ImageMemoryBarrier const & ) const = default;
  31335. #else
  31336. bool operator==( ImageMemoryBarrier const & rhs ) const VULKAN_HPP_NOEXCEPT
  31337. {
  31338. # if defined( VULKAN_HPP_USE_REFLECT )
  31339. return this->reflect() == rhs.reflect();
  31340. # else
  31341. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( srcAccessMask == rhs.srcAccessMask ) && ( dstAccessMask == rhs.dstAccessMask ) &&
  31342. ( oldLayout == rhs.oldLayout ) && ( newLayout == rhs.newLayout ) && ( srcQueueFamilyIndex == rhs.srcQueueFamilyIndex ) &&
  31343. ( dstQueueFamilyIndex == rhs.dstQueueFamilyIndex ) && ( image == rhs.image ) && ( subresourceRange == rhs.subresourceRange );
  31344. # endif
  31345. }
  31346. bool operator!=( ImageMemoryBarrier const & rhs ) const VULKAN_HPP_NOEXCEPT
  31347. {
  31348. return !operator==( rhs );
  31349. }
  31350. #endif
  31351. public:
  31352. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImageMemoryBarrier;
  31353. const void * pNext = {};
  31354. VULKAN_HPP_NAMESPACE::AccessFlags srcAccessMask = {};
  31355. VULKAN_HPP_NAMESPACE::AccessFlags dstAccessMask = {};
  31356. VULKAN_HPP_NAMESPACE::ImageLayout oldLayout = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined;
  31357. VULKAN_HPP_NAMESPACE::ImageLayout newLayout = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined;
  31358. uint32_t srcQueueFamilyIndex = {};
  31359. uint32_t dstQueueFamilyIndex = {};
  31360. VULKAN_HPP_NAMESPACE::Image image = {};
  31361. VULKAN_HPP_NAMESPACE::ImageSubresourceRange subresourceRange = {};
  31362. };
  31363. template <>
  31364. struct CppType<StructureType, StructureType::eImageMemoryBarrier>
  31365. {
  31366. using Type = ImageMemoryBarrier;
  31367. };
  31368. struct ImageMemoryRequirementsInfo2
  31369. {
  31370. using NativeType = VkImageMemoryRequirementsInfo2;
  31371. static const bool allowDuplicate = false;
  31372. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eImageMemoryRequirementsInfo2;
  31373. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  31374. VULKAN_HPP_CONSTEXPR ImageMemoryRequirementsInfo2( VULKAN_HPP_NAMESPACE::Image image_ = {}, const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  31375. : pNext( pNext_ )
  31376. , image( image_ )
  31377. {
  31378. }
  31379. VULKAN_HPP_CONSTEXPR ImageMemoryRequirementsInfo2( ImageMemoryRequirementsInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  31380. ImageMemoryRequirementsInfo2( VkImageMemoryRequirementsInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT
  31381. : ImageMemoryRequirementsInfo2( *reinterpret_cast<ImageMemoryRequirementsInfo2 const *>( &rhs ) )
  31382. {
  31383. }
  31384. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  31385. ImageMemoryRequirementsInfo2 & operator=( ImageMemoryRequirementsInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  31386. ImageMemoryRequirementsInfo2 & operator=( VkImageMemoryRequirementsInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT
  31387. {
  31388. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ImageMemoryRequirementsInfo2 const *>( &rhs );
  31389. return *this;
  31390. }
  31391. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  31392. VULKAN_HPP_CONSTEXPR_14 ImageMemoryRequirementsInfo2 & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  31393. {
  31394. pNext = pNext_;
  31395. return *this;
  31396. }
  31397. VULKAN_HPP_CONSTEXPR_14 ImageMemoryRequirementsInfo2 & setImage( VULKAN_HPP_NAMESPACE::Image image_ ) VULKAN_HPP_NOEXCEPT
  31398. {
  31399. image = image_;
  31400. return *this;
  31401. }
  31402. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  31403. operator VkImageMemoryRequirementsInfo2 const &() const VULKAN_HPP_NOEXCEPT
  31404. {
  31405. return *reinterpret_cast<const VkImageMemoryRequirementsInfo2 *>( this );
  31406. }
  31407. operator VkImageMemoryRequirementsInfo2 &() VULKAN_HPP_NOEXCEPT
  31408. {
  31409. return *reinterpret_cast<VkImageMemoryRequirementsInfo2 *>( this );
  31410. }
  31411. #if defined( VULKAN_HPP_USE_REFLECT )
  31412. # if 14 <= VULKAN_HPP_CPP_VERSION
  31413. auto
  31414. # else
  31415. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::Image const &>
  31416. # endif
  31417. reflect() const VULKAN_HPP_NOEXCEPT
  31418. {
  31419. return std::tie( sType, pNext, image );
  31420. }
  31421. #endif
  31422. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  31423. auto operator<=>( ImageMemoryRequirementsInfo2 const & ) const = default;
  31424. #else
  31425. bool operator==( ImageMemoryRequirementsInfo2 const & rhs ) const VULKAN_HPP_NOEXCEPT
  31426. {
  31427. # if defined( VULKAN_HPP_USE_REFLECT )
  31428. return this->reflect() == rhs.reflect();
  31429. # else
  31430. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( image == rhs.image );
  31431. # endif
  31432. }
  31433. bool operator!=( ImageMemoryRequirementsInfo2 const & rhs ) const VULKAN_HPP_NOEXCEPT
  31434. {
  31435. return !operator==( rhs );
  31436. }
  31437. #endif
  31438. public:
  31439. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImageMemoryRequirementsInfo2;
  31440. const void * pNext = {};
  31441. VULKAN_HPP_NAMESPACE::Image image = {};
  31442. };
  31443. template <>
  31444. struct CppType<StructureType, StructureType::eImageMemoryRequirementsInfo2>
  31445. {
  31446. using Type = ImageMemoryRequirementsInfo2;
  31447. };
  31448. using ImageMemoryRequirementsInfo2KHR = ImageMemoryRequirementsInfo2;
  31449. #if defined( VK_USE_PLATFORM_FUCHSIA )
  31450. struct ImagePipeSurfaceCreateInfoFUCHSIA
  31451. {
  31452. using NativeType = VkImagePipeSurfaceCreateInfoFUCHSIA;
  31453. static const bool allowDuplicate = false;
  31454. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eImagepipeSurfaceCreateInfoFUCHSIA;
  31455. # if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  31456. VULKAN_HPP_CONSTEXPR ImagePipeSurfaceCreateInfoFUCHSIA( VULKAN_HPP_NAMESPACE::ImagePipeSurfaceCreateFlagsFUCHSIA flags_ = {},
  31457. zx_handle_t imagePipeHandle_ = {},
  31458. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  31459. : pNext( pNext_ )
  31460. , flags( flags_ )
  31461. , imagePipeHandle( imagePipeHandle_ )
  31462. {
  31463. }
  31464. VULKAN_HPP_CONSTEXPR ImagePipeSurfaceCreateInfoFUCHSIA( ImagePipeSurfaceCreateInfoFUCHSIA const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  31465. ImagePipeSurfaceCreateInfoFUCHSIA( VkImagePipeSurfaceCreateInfoFUCHSIA const & rhs ) VULKAN_HPP_NOEXCEPT
  31466. : ImagePipeSurfaceCreateInfoFUCHSIA( *reinterpret_cast<ImagePipeSurfaceCreateInfoFUCHSIA const *>( &rhs ) )
  31467. {
  31468. }
  31469. # endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  31470. ImagePipeSurfaceCreateInfoFUCHSIA & operator=( ImagePipeSurfaceCreateInfoFUCHSIA const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  31471. ImagePipeSurfaceCreateInfoFUCHSIA & operator=( VkImagePipeSurfaceCreateInfoFUCHSIA const & rhs ) VULKAN_HPP_NOEXCEPT
  31472. {
  31473. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ImagePipeSurfaceCreateInfoFUCHSIA const *>( &rhs );
  31474. return *this;
  31475. }
  31476. # if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  31477. VULKAN_HPP_CONSTEXPR_14 ImagePipeSurfaceCreateInfoFUCHSIA & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  31478. {
  31479. pNext = pNext_;
  31480. return *this;
  31481. }
  31482. VULKAN_HPP_CONSTEXPR_14 ImagePipeSurfaceCreateInfoFUCHSIA & setFlags( VULKAN_HPP_NAMESPACE::ImagePipeSurfaceCreateFlagsFUCHSIA flags_ ) VULKAN_HPP_NOEXCEPT
  31483. {
  31484. flags = flags_;
  31485. return *this;
  31486. }
  31487. VULKAN_HPP_CONSTEXPR_14 ImagePipeSurfaceCreateInfoFUCHSIA & setImagePipeHandle( zx_handle_t imagePipeHandle_ ) VULKAN_HPP_NOEXCEPT
  31488. {
  31489. imagePipeHandle = imagePipeHandle_;
  31490. return *this;
  31491. }
  31492. # endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  31493. operator VkImagePipeSurfaceCreateInfoFUCHSIA const &() const VULKAN_HPP_NOEXCEPT
  31494. {
  31495. return *reinterpret_cast<const VkImagePipeSurfaceCreateInfoFUCHSIA *>( this );
  31496. }
  31497. operator VkImagePipeSurfaceCreateInfoFUCHSIA &() VULKAN_HPP_NOEXCEPT
  31498. {
  31499. return *reinterpret_cast<VkImagePipeSurfaceCreateInfoFUCHSIA *>( this );
  31500. }
  31501. # if defined( VULKAN_HPP_USE_REFLECT )
  31502. # if 14 <= VULKAN_HPP_CPP_VERSION
  31503. auto
  31504. # else
  31505. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  31506. const void * const &,
  31507. VULKAN_HPP_NAMESPACE::ImagePipeSurfaceCreateFlagsFUCHSIA const &,
  31508. zx_handle_t const &>
  31509. # endif
  31510. reflect() const VULKAN_HPP_NOEXCEPT
  31511. {
  31512. return std::tie( sType, pNext, flags, imagePipeHandle );
  31513. }
  31514. # endif
  31515. # if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  31516. std::strong_ordering operator<=>( ImagePipeSurfaceCreateInfoFUCHSIA const & rhs ) const VULKAN_HPP_NOEXCEPT
  31517. {
  31518. if ( auto cmp = sType <=> rhs.sType; cmp != 0 )
  31519. return cmp;
  31520. if ( auto cmp = pNext <=> rhs.pNext; cmp != 0 )
  31521. return cmp;
  31522. if ( auto cmp = flags <=> rhs.flags; cmp != 0 )
  31523. return cmp;
  31524. if ( auto cmp = memcmp( &imagePipeHandle, &rhs.imagePipeHandle, sizeof( zx_handle_t ) ); cmp != 0 )
  31525. return ( cmp < 0 ) ? std::strong_ordering::less : std::strong_ordering::greater;
  31526. return std::strong_ordering::equivalent;
  31527. }
  31528. # endif
  31529. bool operator==( ImagePipeSurfaceCreateInfoFUCHSIA const & rhs ) const VULKAN_HPP_NOEXCEPT
  31530. {
  31531. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( flags == rhs.flags ) &&
  31532. ( memcmp( &imagePipeHandle, &rhs.imagePipeHandle, sizeof( zx_handle_t ) ) == 0 );
  31533. }
  31534. bool operator!=( ImagePipeSurfaceCreateInfoFUCHSIA const & rhs ) const VULKAN_HPP_NOEXCEPT
  31535. {
  31536. return !operator==( rhs );
  31537. }
  31538. public:
  31539. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImagepipeSurfaceCreateInfoFUCHSIA;
  31540. const void * pNext = {};
  31541. VULKAN_HPP_NAMESPACE::ImagePipeSurfaceCreateFlagsFUCHSIA flags = {};
  31542. zx_handle_t imagePipeHandle = {};
  31543. };
  31544. template <>
  31545. struct CppType<StructureType, StructureType::eImagepipeSurfaceCreateInfoFUCHSIA>
  31546. {
  31547. using Type = ImagePipeSurfaceCreateInfoFUCHSIA;
  31548. };
  31549. #endif /*VK_USE_PLATFORM_FUCHSIA*/
  31550. struct ImagePlaneMemoryRequirementsInfo
  31551. {
  31552. using NativeType = VkImagePlaneMemoryRequirementsInfo;
  31553. static const bool allowDuplicate = false;
  31554. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eImagePlaneMemoryRequirementsInfo;
  31555. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  31556. VULKAN_HPP_CONSTEXPR
  31557. ImagePlaneMemoryRequirementsInfo( VULKAN_HPP_NAMESPACE::ImageAspectFlagBits planeAspect_ = VULKAN_HPP_NAMESPACE::ImageAspectFlagBits::eColor,
  31558. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  31559. : pNext( pNext_ )
  31560. , planeAspect( planeAspect_ )
  31561. {
  31562. }
  31563. VULKAN_HPP_CONSTEXPR ImagePlaneMemoryRequirementsInfo( ImagePlaneMemoryRequirementsInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  31564. ImagePlaneMemoryRequirementsInfo( VkImagePlaneMemoryRequirementsInfo const & rhs ) VULKAN_HPP_NOEXCEPT
  31565. : ImagePlaneMemoryRequirementsInfo( *reinterpret_cast<ImagePlaneMemoryRequirementsInfo const *>( &rhs ) )
  31566. {
  31567. }
  31568. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  31569. ImagePlaneMemoryRequirementsInfo & operator=( ImagePlaneMemoryRequirementsInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  31570. ImagePlaneMemoryRequirementsInfo & operator=( VkImagePlaneMemoryRequirementsInfo const & rhs ) VULKAN_HPP_NOEXCEPT
  31571. {
  31572. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ImagePlaneMemoryRequirementsInfo const *>( &rhs );
  31573. return *this;
  31574. }
  31575. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  31576. VULKAN_HPP_CONSTEXPR_14 ImagePlaneMemoryRequirementsInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  31577. {
  31578. pNext = pNext_;
  31579. return *this;
  31580. }
  31581. VULKAN_HPP_CONSTEXPR_14 ImagePlaneMemoryRequirementsInfo & setPlaneAspect( VULKAN_HPP_NAMESPACE::ImageAspectFlagBits planeAspect_ ) VULKAN_HPP_NOEXCEPT
  31582. {
  31583. planeAspect = planeAspect_;
  31584. return *this;
  31585. }
  31586. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  31587. operator VkImagePlaneMemoryRequirementsInfo const &() const VULKAN_HPP_NOEXCEPT
  31588. {
  31589. return *reinterpret_cast<const VkImagePlaneMemoryRequirementsInfo *>( this );
  31590. }
  31591. operator VkImagePlaneMemoryRequirementsInfo &() VULKAN_HPP_NOEXCEPT
  31592. {
  31593. return *reinterpret_cast<VkImagePlaneMemoryRequirementsInfo *>( this );
  31594. }
  31595. #if defined( VULKAN_HPP_USE_REFLECT )
  31596. # if 14 <= VULKAN_HPP_CPP_VERSION
  31597. auto
  31598. # else
  31599. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::ImageAspectFlagBits const &>
  31600. # endif
  31601. reflect() const VULKAN_HPP_NOEXCEPT
  31602. {
  31603. return std::tie( sType, pNext, planeAspect );
  31604. }
  31605. #endif
  31606. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  31607. auto operator<=>( ImagePlaneMemoryRequirementsInfo const & ) const = default;
  31608. #else
  31609. bool operator==( ImagePlaneMemoryRequirementsInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  31610. {
  31611. # if defined( VULKAN_HPP_USE_REFLECT )
  31612. return this->reflect() == rhs.reflect();
  31613. # else
  31614. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( planeAspect == rhs.planeAspect );
  31615. # endif
  31616. }
  31617. bool operator!=( ImagePlaneMemoryRequirementsInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  31618. {
  31619. return !operator==( rhs );
  31620. }
  31621. #endif
  31622. public:
  31623. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImagePlaneMemoryRequirementsInfo;
  31624. const void * pNext = {};
  31625. VULKAN_HPP_NAMESPACE::ImageAspectFlagBits planeAspect = VULKAN_HPP_NAMESPACE::ImageAspectFlagBits::eColor;
  31626. };
  31627. template <>
  31628. struct CppType<StructureType, StructureType::eImagePlaneMemoryRequirementsInfo>
  31629. {
  31630. using Type = ImagePlaneMemoryRequirementsInfo;
  31631. };
  31632. using ImagePlaneMemoryRequirementsInfoKHR = ImagePlaneMemoryRequirementsInfo;
  31633. struct ImageResolve
  31634. {
  31635. using NativeType = VkImageResolve;
  31636. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  31637. VULKAN_HPP_CONSTEXPR ImageResolve( VULKAN_HPP_NAMESPACE::ImageSubresourceLayers srcSubresource_ = {},
  31638. VULKAN_HPP_NAMESPACE::Offset3D srcOffset_ = {},
  31639. VULKAN_HPP_NAMESPACE::ImageSubresourceLayers dstSubresource_ = {},
  31640. VULKAN_HPP_NAMESPACE::Offset3D dstOffset_ = {},
  31641. VULKAN_HPP_NAMESPACE::Extent3D extent_ = {} ) VULKAN_HPP_NOEXCEPT
  31642. : srcSubresource( srcSubresource_ )
  31643. , srcOffset( srcOffset_ )
  31644. , dstSubresource( dstSubresource_ )
  31645. , dstOffset( dstOffset_ )
  31646. , extent( extent_ )
  31647. {
  31648. }
  31649. VULKAN_HPP_CONSTEXPR ImageResolve( ImageResolve const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  31650. ImageResolve( VkImageResolve const & rhs ) VULKAN_HPP_NOEXCEPT : ImageResolve( *reinterpret_cast<ImageResolve const *>( &rhs ) ) {}
  31651. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  31652. ImageResolve & operator=( ImageResolve const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  31653. ImageResolve & operator=( VkImageResolve const & rhs ) VULKAN_HPP_NOEXCEPT
  31654. {
  31655. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ImageResolve const *>( &rhs );
  31656. return *this;
  31657. }
  31658. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  31659. VULKAN_HPP_CONSTEXPR_14 ImageResolve & setSrcSubresource( VULKAN_HPP_NAMESPACE::ImageSubresourceLayers const & srcSubresource_ ) VULKAN_HPP_NOEXCEPT
  31660. {
  31661. srcSubresource = srcSubresource_;
  31662. return *this;
  31663. }
  31664. VULKAN_HPP_CONSTEXPR_14 ImageResolve & setSrcOffset( VULKAN_HPP_NAMESPACE::Offset3D const & srcOffset_ ) VULKAN_HPP_NOEXCEPT
  31665. {
  31666. srcOffset = srcOffset_;
  31667. return *this;
  31668. }
  31669. VULKAN_HPP_CONSTEXPR_14 ImageResolve & setDstSubresource( VULKAN_HPP_NAMESPACE::ImageSubresourceLayers const & dstSubresource_ ) VULKAN_HPP_NOEXCEPT
  31670. {
  31671. dstSubresource = dstSubresource_;
  31672. return *this;
  31673. }
  31674. VULKAN_HPP_CONSTEXPR_14 ImageResolve & setDstOffset( VULKAN_HPP_NAMESPACE::Offset3D const & dstOffset_ ) VULKAN_HPP_NOEXCEPT
  31675. {
  31676. dstOffset = dstOffset_;
  31677. return *this;
  31678. }
  31679. VULKAN_HPP_CONSTEXPR_14 ImageResolve & setExtent( VULKAN_HPP_NAMESPACE::Extent3D const & extent_ ) VULKAN_HPP_NOEXCEPT
  31680. {
  31681. extent = extent_;
  31682. return *this;
  31683. }
  31684. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  31685. operator VkImageResolve const &() const VULKAN_HPP_NOEXCEPT
  31686. {
  31687. return *reinterpret_cast<const VkImageResolve *>( this );
  31688. }
  31689. operator VkImageResolve &() VULKAN_HPP_NOEXCEPT
  31690. {
  31691. return *reinterpret_cast<VkImageResolve *>( this );
  31692. }
  31693. #if defined( VULKAN_HPP_USE_REFLECT )
  31694. # if 14 <= VULKAN_HPP_CPP_VERSION
  31695. auto
  31696. # else
  31697. std::tuple<VULKAN_HPP_NAMESPACE::ImageSubresourceLayers const &,
  31698. VULKAN_HPP_NAMESPACE::Offset3D const &,
  31699. VULKAN_HPP_NAMESPACE::ImageSubresourceLayers const &,
  31700. VULKAN_HPP_NAMESPACE::Offset3D const &,
  31701. VULKAN_HPP_NAMESPACE::Extent3D const &>
  31702. # endif
  31703. reflect() const VULKAN_HPP_NOEXCEPT
  31704. {
  31705. return std::tie( srcSubresource, srcOffset, dstSubresource, dstOffset, extent );
  31706. }
  31707. #endif
  31708. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  31709. auto operator<=>( ImageResolve const & ) const = default;
  31710. #else
  31711. bool operator==( ImageResolve const & rhs ) const VULKAN_HPP_NOEXCEPT
  31712. {
  31713. # if defined( VULKAN_HPP_USE_REFLECT )
  31714. return this->reflect() == rhs.reflect();
  31715. # else
  31716. return ( srcSubresource == rhs.srcSubresource ) && ( srcOffset == rhs.srcOffset ) && ( dstSubresource == rhs.dstSubresource ) &&
  31717. ( dstOffset == rhs.dstOffset ) && ( extent == rhs.extent );
  31718. # endif
  31719. }
  31720. bool operator!=( ImageResolve const & rhs ) const VULKAN_HPP_NOEXCEPT
  31721. {
  31722. return !operator==( rhs );
  31723. }
  31724. #endif
  31725. public:
  31726. VULKAN_HPP_NAMESPACE::ImageSubresourceLayers srcSubresource = {};
  31727. VULKAN_HPP_NAMESPACE::Offset3D srcOffset = {};
  31728. VULKAN_HPP_NAMESPACE::ImageSubresourceLayers dstSubresource = {};
  31729. VULKAN_HPP_NAMESPACE::Offset3D dstOffset = {};
  31730. VULKAN_HPP_NAMESPACE::Extent3D extent = {};
  31731. };
  31732. struct ImageResolve2
  31733. {
  31734. using NativeType = VkImageResolve2;
  31735. static const bool allowDuplicate = false;
  31736. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eImageResolve2;
  31737. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  31738. VULKAN_HPP_CONSTEXPR ImageResolve2( VULKAN_HPP_NAMESPACE::ImageSubresourceLayers srcSubresource_ = {},
  31739. VULKAN_HPP_NAMESPACE::Offset3D srcOffset_ = {},
  31740. VULKAN_HPP_NAMESPACE::ImageSubresourceLayers dstSubresource_ = {},
  31741. VULKAN_HPP_NAMESPACE::Offset3D dstOffset_ = {},
  31742. VULKAN_HPP_NAMESPACE::Extent3D extent_ = {},
  31743. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  31744. : pNext( pNext_ )
  31745. , srcSubresource( srcSubresource_ )
  31746. , srcOffset( srcOffset_ )
  31747. , dstSubresource( dstSubresource_ )
  31748. , dstOffset( dstOffset_ )
  31749. , extent( extent_ )
  31750. {
  31751. }
  31752. VULKAN_HPP_CONSTEXPR ImageResolve2( ImageResolve2 const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  31753. ImageResolve2( VkImageResolve2 const & rhs ) VULKAN_HPP_NOEXCEPT : ImageResolve2( *reinterpret_cast<ImageResolve2 const *>( &rhs ) ) {}
  31754. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  31755. ImageResolve2 & operator=( ImageResolve2 const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  31756. ImageResolve2 & operator=( VkImageResolve2 const & rhs ) VULKAN_HPP_NOEXCEPT
  31757. {
  31758. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ImageResolve2 const *>( &rhs );
  31759. return *this;
  31760. }
  31761. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  31762. VULKAN_HPP_CONSTEXPR_14 ImageResolve2 & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  31763. {
  31764. pNext = pNext_;
  31765. return *this;
  31766. }
  31767. VULKAN_HPP_CONSTEXPR_14 ImageResolve2 & setSrcSubresource( VULKAN_HPP_NAMESPACE::ImageSubresourceLayers const & srcSubresource_ ) VULKAN_HPP_NOEXCEPT
  31768. {
  31769. srcSubresource = srcSubresource_;
  31770. return *this;
  31771. }
  31772. VULKAN_HPP_CONSTEXPR_14 ImageResolve2 & setSrcOffset( VULKAN_HPP_NAMESPACE::Offset3D const & srcOffset_ ) VULKAN_HPP_NOEXCEPT
  31773. {
  31774. srcOffset = srcOffset_;
  31775. return *this;
  31776. }
  31777. VULKAN_HPP_CONSTEXPR_14 ImageResolve2 & setDstSubresource( VULKAN_HPP_NAMESPACE::ImageSubresourceLayers const & dstSubresource_ ) VULKAN_HPP_NOEXCEPT
  31778. {
  31779. dstSubresource = dstSubresource_;
  31780. return *this;
  31781. }
  31782. VULKAN_HPP_CONSTEXPR_14 ImageResolve2 & setDstOffset( VULKAN_HPP_NAMESPACE::Offset3D const & dstOffset_ ) VULKAN_HPP_NOEXCEPT
  31783. {
  31784. dstOffset = dstOffset_;
  31785. return *this;
  31786. }
  31787. VULKAN_HPP_CONSTEXPR_14 ImageResolve2 & setExtent( VULKAN_HPP_NAMESPACE::Extent3D const & extent_ ) VULKAN_HPP_NOEXCEPT
  31788. {
  31789. extent = extent_;
  31790. return *this;
  31791. }
  31792. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  31793. operator VkImageResolve2 const &() const VULKAN_HPP_NOEXCEPT
  31794. {
  31795. return *reinterpret_cast<const VkImageResolve2 *>( this );
  31796. }
  31797. operator VkImageResolve2 &() VULKAN_HPP_NOEXCEPT
  31798. {
  31799. return *reinterpret_cast<VkImageResolve2 *>( this );
  31800. }
  31801. #if defined( VULKAN_HPP_USE_REFLECT )
  31802. # if 14 <= VULKAN_HPP_CPP_VERSION
  31803. auto
  31804. # else
  31805. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  31806. const void * const &,
  31807. VULKAN_HPP_NAMESPACE::ImageSubresourceLayers const &,
  31808. VULKAN_HPP_NAMESPACE::Offset3D const &,
  31809. VULKAN_HPP_NAMESPACE::ImageSubresourceLayers const &,
  31810. VULKAN_HPP_NAMESPACE::Offset3D const &,
  31811. VULKAN_HPP_NAMESPACE::Extent3D const &>
  31812. # endif
  31813. reflect() const VULKAN_HPP_NOEXCEPT
  31814. {
  31815. return std::tie( sType, pNext, srcSubresource, srcOffset, dstSubresource, dstOffset, extent );
  31816. }
  31817. #endif
  31818. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  31819. auto operator<=>( ImageResolve2 const & ) const = default;
  31820. #else
  31821. bool operator==( ImageResolve2 const & rhs ) const VULKAN_HPP_NOEXCEPT
  31822. {
  31823. # if defined( VULKAN_HPP_USE_REFLECT )
  31824. return this->reflect() == rhs.reflect();
  31825. # else
  31826. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( srcSubresource == rhs.srcSubresource ) && ( srcOffset == rhs.srcOffset ) &&
  31827. ( dstSubresource == rhs.dstSubresource ) && ( dstOffset == rhs.dstOffset ) && ( extent == rhs.extent );
  31828. # endif
  31829. }
  31830. bool operator!=( ImageResolve2 const & rhs ) const VULKAN_HPP_NOEXCEPT
  31831. {
  31832. return !operator==( rhs );
  31833. }
  31834. #endif
  31835. public:
  31836. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImageResolve2;
  31837. const void * pNext = {};
  31838. VULKAN_HPP_NAMESPACE::ImageSubresourceLayers srcSubresource = {};
  31839. VULKAN_HPP_NAMESPACE::Offset3D srcOffset = {};
  31840. VULKAN_HPP_NAMESPACE::ImageSubresourceLayers dstSubresource = {};
  31841. VULKAN_HPP_NAMESPACE::Offset3D dstOffset = {};
  31842. VULKAN_HPP_NAMESPACE::Extent3D extent = {};
  31843. };
  31844. template <>
  31845. struct CppType<StructureType, StructureType::eImageResolve2>
  31846. {
  31847. using Type = ImageResolve2;
  31848. };
  31849. using ImageResolve2KHR = ImageResolve2;
  31850. struct ImageSparseMemoryRequirementsInfo2
  31851. {
  31852. using NativeType = VkImageSparseMemoryRequirementsInfo2;
  31853. static const bool allowDuplicate = false;
  31854. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eImageSparseMemoryRequirementsInfo2;
  31855. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  31856. VULKAN_HPP_CONSTEXPR ImageSparseMemoryRequirementsInfo2( VULKAN_HPP_NAMESPACE::Image image_ = {}, const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  31857. : pNext( pNext_ )
  31858. , image( image_ )
  31859. {
  31860. }
  31861. VULKAN_HPP_CONSTEXPR ImageSparseMemoryRequirementsInfo2( ImageSparseMemoryRequirementsInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  31862. ImageSparseMemoryRequirementsInfo2( VkImageSparseMemoryRequirementsInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT
  31863. : ImageSparseMemoryRequirementsInfo2( *reinterpret_cast<ImageSparseMemoryRequirementsInfo2 const *>( &rhs ) )
  31864. {
  31865. }
  31866. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  31867. ImageSparseMemoryRequirementsInfo2 & operator=( ImageSparseMemoryRequirementsInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  31868. ImageSparseMemoryRequirementsInfo2 & operator=( VkImageSparseMemoryRequirementsInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT
  31869. {
  31870. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ImageSparseMemoryRequirementsInfo2 const *>( &rhs );
  31871. return *this;
  31872. }
  31873. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  31874. VULKAN_HPP_CONSTEXPR_14 ImageSparseMemoryRequirementsInfo2 & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  31875. {
  31876. pNext = pNext_;
  31877. return *this;
  31878. }
  31879. VULKAN_HPP_CONSTEXPR_14 ImageSparseMemoryRequirementsInfo2 & setImage( VULKAN_HPP_NAMESPACE::Image image_ ) VULKAN_HPP_NOEXCEPT
  31880. {
  31881. image = image_;
  31882. return *this;
  31883. }
  31884. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  31885. operator VkImageSparseMemoryRequirementsInfo2 const &() const VULKAN_HPP_NOEXCEPT
  31886. {
  31887. return *reinterpret_cast<const VkImageSparseMemoryRequirementsInfo2 *>( this );
  31888. }
  31889. operator VkImageSparseMemoryRequirementsInfo2 &() VULKAN_HPP_NOEXCEPT
  31890. {
  31891. return *reinterpret_cast<VkImageSparseMemoryRequirementsInfo2 *>( this );
  31892. }
  31893. #if defined( VULKAN_HPP_USE_REFLECT )
  31894. # if 14 <= VULKAN_HPP_CPP_VERSION
  31895. auto
  31896. # else
  31897. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::Image const &>
  31898. # endif
  31899. reflect() const VULKAN_HPP_NOEXCEPT
  31900. {
  31901. return std::tie( sType, pNext, image );
  31902. }
  31903. #endif
  31904. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  31905. auto operator<=>( ImageSparseMemoryRequirementsInfo2 const & ) const = default;
  31906. #else
  31907. bool operator==( ImageSparseMemoryRequirementsInfo2 const & rhs ) const VULKAN_HPP_NOEXCEPT
  31908. {
  31909. # if defined( VULKAN_HPP_USE_REFLECT )
  31910. return this->reflect() == rhs.reflect();
  31911. # else
  31912. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( image == rhs.image );
  31913. # endif
  31914. }
  31915. bool operator!=( ImageSparseMemoryRequirementsInfo2 const & rhs ) const VULKAN_HPP_NOEXCEPT
  31916. {
  31917. return !operator==( rhs );
  31918. }
  31919. #endif
  31920. public:
  31921. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImageSparseMemoryRequirementsInfo2;
  31922. const void * pNext = {};
  31923. VULKAN_HPP_NAMESPACE::Image image = {};
  31924. };
  31925. template <>
  31926. struct CppType<StructureType, StructureType::eImageSparseMemoryRequirementsInfo2>
  31927. {
  31928. using Type = ImageSparseMemoryRequirementsInfo2;
  31929. };
  31930. using ImageSparseMemoryRequirementsInfo2KHR = ImageSparseMemoryRequirementsInfo2;
  31931. struct ImageStencilUsageCreateInfo
  31932. {
  31933. using NativeType = VkImageStencilUsageCreateInfo;
  31934. static const bool allowDuplicate = false;
  31935. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eImageStencilUsageCreateInfo;
  31936. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  31937. VULKAN_HPP_CONSTEXPR ImageStencilUsageCreateInfo( VULKAN_HPP_NAMESPACE::ImageUsageFlags stencilUsage_ = {},
  31938. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  31939. : pNext( pNext_ )
  31940. , stencilUsage( stencilUsage_ )
  31941. {
  31942. }
  31943. VULKAN_HPP_CONSTEXPR ImageStencilUsageCreateInfo( ImageStencilUsageCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  31944. ImageStencilUsageCreateInfo( VkImageStencilUsageCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
  31945. : ImageStencilUsageCreateInfo( *reinterpret_cast<ImageStencilUsageCreateInfo const *>( &rhs ) )
  31946. {
  31947. }
  31948. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  31949. ImageStencilUsageCreateInfo & operator=( ImageStencilUsageCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  31950. ImageStencilUsageCreateInfo & operator=( VkImageStencilUsageCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
  31951. {
  31952. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ImageStencilUsageCreateInfo const *>( &rhs );
  31953. return *this;
  31954. }
  31955. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  31956. VULKAN_HPP_CONSTEXPR_14 ImageStencilUsageCreateInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  31957. {
  31958. pNext = pNext_;
  31959. return *this;
  31960. }
  31961. VULKAN_HPP_CONSTEXPR_14 ImageStencilUsageCreateInfo & setStencilUsage( VULKAN_HPP_NAMESPACE::ImageUsageFlags stencilUsage_ ) VULKAN_HPP_NOEXCEPT
  31962. {
  31963. stencilUsage = stencilUsage_;
  31964. return *this;
  31965. }
  31966. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  31967. operator VkImageStencilUsageCreateInfo const &() const VULKAN_HPP_NOEXCEPT
  31968. {
  31969. return *reinterpret_cast<const VkImageStencilUsageCreateInfo *>( this );
  31970. }
  31971. operator VkImageStencilUsageCreateInfo &() VULKAN_HPP_NOEXCEPT
  31972. {
  31973. return *reinterpret_cast<VkImageStencilUsageCreateInfo *>( this );
  31974. }
  31975. #if defined( VULKAN_HPP_USE_REFLECT )
  31976. # if 14 <= VULKAN_HPP_CPP_VERSION
  31977. auto
  31978. # else
  31979. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::ImageUsageFlags const &>
  31980. # endif
  31981. reflect() const VULKAN_HPP_NOEXCEPT
  31982. {
  31983. return std::tie( sType, pNext, stencilUsage );
  31984. }
  31985. #endif
  31986. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  31987. auto operator<=>( ImageStencilUsageCreateInfo const & ) const = default;
  31988. #else
  31989. bool operator==( ImageStencilUsageCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  31990. {
  31991. # if defined( VULKAN_HPP_USE_REFLECT )
  31992. return this->reflect() == rhs.reflect();
  31993. # else
  31994. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( stencilUsage == rhs.stencilUsage );
  31995. # endif
  31996. }
  31997. bool operator!=( ImageStencilUsageCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  31998. {
  31999. return !operator==( rhs );
  32000. }
  32001. #endif
  32002. public:
  32003. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImageStencilUsageCreateInfo;
  32004. const void * pNext = {};
  32005. VULKAN_HPP_NAMESPACE::ImageUsageFlags stencilUsage = {};
  32006. };
  32007. template <>
  32008. struct CppType<StructureType, StructureType::eImageStencilUsageCreateInfo>
  32009. {
  32010. using Type = ImageStencilUsageCreateInfo;
  32011. };
  32012. using ImageStencilUsageCreateInfoEXT = ImageStencilUsageCreateInfo;
  32013. struct ImageSubresource2EXT
  32014. {
  32015. using NativeType = VkImageSubresource2EXT;
  32016. static const bool allowDuplicate = false;
  32017. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eImageSubresource2EXT;
  32018. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  32019. VULKAN_HPP_CONSTEXPR ImageSubresource2EXT( VULKAN_HPP_NAMESPACE::ImageSubresource imageSubresource_ = {}, void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  32020. : pNext( pNext_ )
  32021. , imageSubresource( imageSubresource_ )
  32022. {
  32023. }
  32024. VULKAN_HPP_CONSTEXPR ImageSubresource2EXT( ImageSubresource2EXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  32025. ImageSubresource2EXT( VkImageSubresource2EXT const & rhs ) VULKAN_HPP_NOEXCEPT
  32026. : ImageSubresource2EXT( *reinterpret_cast<ImageSubresource2EXT const *>( &rhs ) )
  32027. {
  32028. }
  32029. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  32030. ImageSubresource2EXT & operator=( ImageSubresource2EXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  32031. ImageSubresource2EXT & operator=( VkImageSubresource2EXT const & rhs ) VULKAN_HPP_NOEXCEPT
  32032. {
  32033. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ImageSubresource2EXT const *>( &rhs );
  32034. return *this;
  32035. }
  32036. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  32037. VULKAN_HPP_CONSTEXPR_14 ImageSubresource2EXT & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
  32038. {
  32039. pNext = pNext_;
  32040. return *this;
  32041. }
  32042. VULKAN_HPP_CONSTEXPR_14 ImageSubresource2EXT & setImageSubresource( VULKAN_HPP_NAMESPACE::ImageSubresource const & imageSubresource_ ) VULKAN_HPP_NOEXCEPT
  32043. {
  32044. imageSubresource = imageSubresource_;
  32045. return *this;
  32046. }
  32047. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  32048. operator VkImageSubresource2EXT const &() const VULKAN_HPP_NOEXCEPT
  32049. {
  32050. return *reinterpret_cast<const VkImageSubresource2EXT *>( this );
  32051. }
  32052. operator VkImageSubresource2EXT &() VULKAN_HPP_NOEXCEPT
  32053. {
  32054. return *reinterpret_cast<VkImageSubresource2EXT *>( this );
  32055. }
  32056. #if defined( VULKAN_HPP_USE_REFLECT )
  32057. # if 14 <= VULKAN_HPP_CPP_VERSION
  32058. auto
  32059. # else
  32060. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::ImageSubresource const &>
  32061. # endif
  32062. reflect() const VULKAN_HPP_NOEXCEPT
  32063. {
  32064. return std::tie( sType, pNext, imageSubresource );
  32065. }
  32066. #endif
  32067. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  32068. auto operator<=>( ImageSubresource2EXT const & ) const = default;
  32069. #else
  32070. bool operator==( ImageSubresource2EXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  32071. {
  32072. # if defined( VULKAN_HPP_USE_REFLECT )
  32073. return this->reflect() == rhs.reflect();
  32074. # else
  32075. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( imageSubresource == rhs.imageSubresource );
  32076. # endif
  32077. }
  32078. bool operator!=( ImageSubresource2EXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  32079. {
  32080. return !operator==( rhs );
  32081. }
  32082. #endif
  32083. public:
  32084. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImageSubresource2EXT;
  32085. void * pNext = {};
  32086. VULKAN_HPP_NAMESPACE::ImageSubresource imageSubresource = {};
  32087. };
  32088. template <>
  32089. struct CppType<StructureType, StructureType::eImageSubresource2EXT>
  32090. {
  32091. using Type = ImageSubresource2EXT;
  32092. };
  32093. struct ImageSwapchainCreateInfoKHR
  32094. {
  32095. using NativeType = VkImageSwapchainCreateInfoKHR;
  32096. static const bool allowDuplicate = false;
  32097. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eImageSwapchainCreateInfoKHR;
  32098. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  32099. VULKAN_HPP_CONSTEXPR ImageSwapchainCreateInfoKHR( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain_ = {}, const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  32100. : pNext( pNext_ )
  32101. , swapchain( swapchain_ )
  32102. {
  32103. }
  32104. VULKAN_HPP_CONSTEXPR ImageSwapchainCreateInfoKHR( ImageSwapchainCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  32105. ImageSwapchainCreateInfoKHR( VkImageSwapchainCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  32106. : ImageSwapchainCreateInfoKHR( *reinterpret_cast<ImageSwapchainCreateInfoKHR const *>( &rhs ) )
  32107. {
  32108. }
  32109. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  32110. ImageSwapchainCreateInfoKHR & operator=( ImageSwapchainCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  32111. ImageSwapchainCreateInfoKHR & operator=( VkImageSwapchainCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  32112. {
  32113. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ImageSwapchainCreateInfoKHR const *>( &rhs );
  32114. return *this;
  32115. }
  32116. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  32117. VULKAN_HPP_CONSTEXPR_14 ImageSwapchainCreateInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  32118. {
  32119. pNext = pNext_;
  32120. return *this;
  32121. }
  32122. VULKAN_HPP_CONSTEXPR_14 ImageSwapchainCreateInfoKHR & setSwapchain( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain_ ) VULKAN_HPP_NOEXCEPT
  32123. {
  32124. swapchain = swapchain_;
  32125. return *this;
  32126. }
  32127. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  32128. operator VkImageSwapchainCreateInfoKHR const &() const VULKAN_HPP_NOEXCEPT
  32129. {
  32130. return *reinterpret_cast<const VkImageSwapchainCreateInfoKHR *>( this );
  32131. }
  32132. operator VkImageSwapchainCreateInfoKHR &() VULKAN_HPP_NOEXCEPT
  32133. {
  32134. return *reinterpret_cast<VkImageSwapchainCreateInfoKHR *>( this );
  32135. }
  32136. #if defined( VULKAN_HPP_USE_REFLECT )
  32137. # if 14 <= VULKAN_HPP_CPP_VERSION
  32138. auto
  32139. # else
  32140. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::SwapchainKHR const &>
  32141. # endif
  32142. reflect() const VULKAN_HPP_NOEXCEPT
  32143. {
  32144. return std::tie( sType, pNext, swapchain );
  32145. }
  32146. #endif
  32147. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  32148. auto operator<=>( ImageSwapchainCreateInfoKHR const & ) const = default;
  32149. #else
  32150. bool operator==( ImageSwapchainCreateInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  32151. {
  32152. # if defined( VULKAN_HPP_USE_REFLECT )
  32153. return this->reflect() == rhs.reflect();
  32154. # else
  32155. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( swapchain == rhs.swapchain );
  32156. # endif
  32157. }
  32158. bool operator!=( ImageSwapchainCreateInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  32159. {
  32160. return !operator==( rhs );
  32161. }
  32162. #endif
  32163. public:
  32164. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImageSwapchainCreateInfoKHR;
  32165. const void * pNext = {};
  32166. VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain = {};
  32167. };
  32168. template <>
  32169. struct CppType<StructureType, StructureType::eImageSwapchainCreateInfoKHR>
  32170. {
  32171. using Type = ImageSwapchainCreateInfoKHR;
  32172. };
  32173. struct ImageViewASTCDecodeModeEXT
  32174. {
  32175. using NativeType = VkImageViewASTCDecodeModeEXT;
  32176. static const bool allowDuplicate = false;
  32177. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eImageViewAstcDecodeModeEXT;
  32178. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  32179. VULKAN_HPP_CONSTEXPR ImageViewASTCDecodeModeEXT( VULKAN_HPP_NAMESPACE::Format decodeMode_ = VULKAN_HPP_NAMESPACE::Format::eUndefined,
  32180. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  32181. : pNext( pNext_ )
  32182. , decodeMode( decodeMode_ )
  32183. {
  32184. }
  32185. VULKAN_HPP_CONSTEXPR ImageViewASTCDecodeModeEXT( ImageViewASTCDecodeModeEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  32186. ImageViewASTCDecodeModeEXT( VkImageViewASTCDecodeModeEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  32187. : ImageViewASTCDecodeModeEXT( *reinterpret_cast<ImageViewASTCDecodeModeEXT const *>( &rhs ) )
  32188. {
  32189. }
  32190. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  32191. ImageViewASTCDecodeModeEXT & operator=( ImageViewASTCDecodeModeEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  32192. ImageViewASTCDecodeModeEXT & operator=( VkImageViewASTCDecodeModeEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  32193. {
  32194. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ImageViewASTCDecodeModeEXT const *>( &rhs );
  32195. return *this;
  32196. }
  32197. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  32198. VULKAN_HPP_CONSTEXPR_14 ImageViewASTCDecodeModeEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  32199. {
  32200. pNext = pNext_;
  32201. return *this;
  32202. }
  32203. VULKAN_HPP_CONSTEXPR_14 ImageViewASTCDecodeModeEXT & setDecodeMode( VULKAN_HPP_NAMESPACE::Format decodeMode_ ) VULKAN_HPP_NOEXCEPT
  32204. {
  32205. decodeMode = decodeMode_;
  32206. return *this;
  32207. }
  32208. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  32209. operator VkImageViewASTCDecodeModeEXT const &() const VULKAN_HPP_NOEXCEPT
  32210. {
  32211. return *reinterpret_cast<const VkImageViewASTCDecodeModeEXT *>( this );
  32212. }
  32213. operator VkImageViewASTCDecodeModeEXT &() VULKAN_HPP_NOEXCEPT
  32214. {
  32215. return *reinterpret_cast<VkImageViewASTCDecodeModeEXT *>( this );
  32216. }
  32217. #if defined( VULKAN_HPP_USE_REFLECT )
  32218. # if 14 <= VULKAN_HPP_CPP_VERSION
  32219. auto
  32220. # else
  32221. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::Format const &>
  32222. # endif
  32223. reflect() const VULKAN_HPP_NOEXCEPT
  32224. {
  32225. return std::tie( sType, pNext, decodeMode );
  32226. }
  32227. #endif
  32228. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  32229. auto operator<=>( ImageViewASTCDecodeModeEXT const & ) const = default;
  32230. #else
  32231. bool operator==( ImageViewASTCDecodeModeEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  32232. {
  32233. # if defined( VULKAN_HPP_USE_REFLECT )
  32234. return this->reflect() == rhs.reflect();
  32235. # else
  32236. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( decodeMode == rhs.decodeMode );
  32237. # endif
  32238. }
  32239. bool operator!=( ImageViewASTCDecodeModeEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  32240. {
  32241. return !operator==( rhs );
  32242. }
  32243. #endif
  32244. public:
  32245. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImageViewAstcDecodeModeEXT;
  32246. const void * pNext = {};
  32247. VULKAN_HPP_NAMESPACE::Format decodeMode = VULKAN_HPP_NAMESPACE::Format::eUndefined;
  32248. };
  32249. template <>
  32250. struct CppType<StructureType, StructureType::eImageViewAstcDecodeModeEXT>
  32251. {
  32252. using Type = ImageViewASTCDecodeModeEXT;
  32253. };
  32254. struct ImageViewAddressPropertiesNVX
  32255. {
  32256. using NativeType = VkImageViewAddressPropertiesNVX;
  32257. static const bool allowDuplicate = false;
  32258. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eImageViewAddressPropertiesNVX;
  32259. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  32260. VULKAN_HPP_CONSTEXPR ImageViewAddressPropertiesNVX( VULKAN_HPP_NAMESPACE::DeviceAddress deviceAddress_ = {},
  32261. VULKAN_HPP_NAMESPACE::DeviceSize size_ = {},
  32262. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  32263. : pNext( pNext_ )
  32264. , deviceAddress( deviceAddress_ )
  32265. , size( size_ )
  32266. {
  32267. }
  32268. VULKAN_HPP_CONSTEXPR ImageViewAddressPropertiesNVX( ImageViewAddressPropertiesNVX const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  32269. ImageViewAddressPropertiesNVX( VkImageViewAddressPropertiesNVX const & rhs ) VULKAN_HPP_NOEXCEPT
  32270. : ImageViewAddressPropertiesNVX( *reinterpret_cast<ImageViewAddressPropertiesNVX const *>( &rhs ) )
  32271. {
  32272. }
  32273. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  32274. ImageViewAddressPropertiesNVX & operator=( ImageViewAddressPropertiesNVX const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  32275. ImageViewAddressPropertiesNVX & operator=( VkImageViewAddressPropertiesNVX const & rhs ) VULKAN_HPP_NOEXCEPT
  32276. {
  32277. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ImageViewAddressPropertiesNVX const *>( &rhs );
  32278. return *this;
  32279. }
  32280. operator VkImageViewAddressPropertiesNVX const &() const VULKAN_HPP_NOEXCEPT
  32281. {
  32282. return *reinterpret_cast<const VkImageViewAddressPropertiesNVX *>( this );
  32283. }
  32284. operator VkImageViewAddressPropertiesNVX &() VULKAN_HPP_NOEXCEPT
  32285. {
  32286. return *reinterpret_cast<VkImageViewAddressPropertiesNVX *>( this );
  32287. }
  32288. #if defined( VULKAN_HPP_USE_REFLECT )
  32289. # if 14 <= VULKAN_HPP_CPP_VERSION
  32290. auto
  32291. # else
  32292. std::
  32293. tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::DeviceAddress const &, VULKAN_HPP_NAMESPACE::DeviceSize const &>
  32294. # endif
  32295. reflect() const VULKAN_HPP_NOEXCEPT
  32296. {
  32297. return std::tie( sType, pNext, deviceAddress, size );
  32298. }
  32299. #endif
  32300. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  32301. auto operator<=>( ImageViewAddressPropertiesNVX const & ) const = default;
  32302. #else
  32303. bool operator==( ImageViewAddressPropertiesNVX const & rhs ) const VULKAN_HPP_NOEXCEPT
  32304. {
  32305. # if defined( VULKAN_HPP_USE_REFLECT )
  32306. return this->reflect() == rhs.reflect();
  32307. # else
  32308. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( deviceAddress == rhs.deviceAddress ) && ( size == rhs.size );
  32309. # endif
  32310. }
  32311. bool operator!=( ImageViewAddressPropertiesNVX const & rhs ) const VULKAN_HPP_NOEXCEPT
  32312. {
  32313. return !operator==( rhs );
  32314. }
  32315. #endif
  32316. public:
  32317. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImageViewAddressPropertiesNVX;
  32318. void * pNext = {};
  32319. VULKAN_HPP_NAMESPACE::DeviceAddress deviceAddress = {};
  32320. VULKAN_HPP_NAMESPACE::DeviceSize size = {};
  32321. };
  32322. template <>
  32323. struct CppType<StructureType, StructureType::eImageViewAddressPropertiesNVX>
  32324. {
  32325. using Type = ImageViewAddressPropertiesNVX;
  32326. };
  32327. struct ImageViewCreateInfo
  32328. {
  32329. using NativeType = VkImageViewCreateInfo;
  32330. static const bool allowDuplicate = false;
  32331. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eImageViewCreateInfo;
  32332. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  32333. VULKAN_HPP_CONSTEXPR ImageViewCreateInfo( VULKAN_HPP_NAMESPACE::ImageViewCreateFlags flags_ = {},
  32334. VULKAN_HPP_NAMESPACE::Image image_ = {},
  32335. VULKAN_HPP_NAMESPACE::ImageViewType viewType_ = VULKAN_HPP_NAMESPACE::ImageViewType::e1D,
  32336. VULKAN_HPP_NAMESPACE::Format format_ = VULKAN_HPP_NAMESPACE::Format::eUndefined,
  32337. VULKAN_HPP_NAMESPACE::ComponentMapping components_ = {},
  32338. VULKAN_HPP_NAMESPACE::ImageSubresourceRange subresourceRange_ = {},
  32339. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  32340. : pNext( pNext_ )
  32341. , flags( flags_ )
  32342. , image( image_ )
  32343. , viewType( viewType_ )
  32344. , format( format_ )
  32345. , components( components_ )
  32346. , subresourceRange( subresourceRange_ )
  32347. {
  32348. }
  32349. VULKAN_HPP_CONSTEXPR ImageViewCreateInfo( ImageViewCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  32350. ImageViewCreateInfo( VkImageViewCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT : ImageViewCreateInfo( *reinterpret_cast<ImageViewCreateInfo const *>( &rhs ) )
  32351. {
  32352. }
  32353. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  32354. ImageViewCreateInfo & operator=( ImageViewCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  32355. ImageViewCreateInfo & operator=( VkImageViewCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
  32356. {
  32357. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ImageViewCreateInfo const *>( &rhs );
  32358. return *this;
  32359. }
  32360. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  32361. VULKAN_HPP_CONSTEXPR_14 ImageViewCreateInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  32362. {
  32363. pNext = pNext_;
  32364. return *this;
  32365. }
  32366. VULKAN_HPP_CONSTEXPR_14 ImageViewCreateInfo & setFlags( VULKAN_HPP_NAMESPACE::ImageViewCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT
  32367. {
  32368. flags = flags_;
  32369. return *this;
  32370. }
  32371. VULKAN_HPP_CONSTEXPR_14 ImageViewCreateInfo & setImage( VULKAN_HPP_NAMESPACE::Image image_ ) VULKAN_HPP_NOEXCEPT
  32372. {
  32373. image = image_;
  32374. return *this;
  32375. }
  32376. VULKAN_HPP_CONSTEXPR_14 ImageViewCreateInfo & setViewType( VULKAN_HPP_NAMESPACE::ImageViewType viewType_ ) VULKAN_HPP_NOEXCEPT
  32377. {
  32378. viewType = viewType_;
  32379. return *this;
  32380. }
  32381. VULKAN_HPP_CONSTEXPR_14 ImageViewCreateInfo & setFormat( VULKAN_HPP_NAMESPACE::Format format_ ) VULKAN_HPP_NOEXCEPT
  32382. {
  32383. format = format_;
  32384. return *this;
  32385. }
  32386. VULKAN_HPP_CONSTEXPR_14 ImageViewCreateInfo & setComponents( VULKAN_HPP_NAMESPACE::ComponentMapping const & components_ ) VULKAN_HPP_NOEXCEPT
  32387. {
  32388. components = components_;
  32389. return *this;
  32390. }
  32391. VULKAN_HPP_CONSTEXPR_14 ImageViewCreateInfo &
  32392. setSubresourceRange( VULKAN_HPP_NAMESPACE::ImageSubresourceRange const & subresourceRange_ ) VULKAN_HPP_NOEXCEPT
  32393. {
  32394. subresourceRange = subresourceRange_;
  32395. return *this;
  32396. }
  32397. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  32398. operator VkImageViewCreateInfo const &() const VULKAN_HPP_NOEXCEPT
  32399. {
  32400. return *reinterpret_cast<const VkImageViewCreateInfo *>( this );
  32401. }
  32402. operator VkImageViewCreateInfo &() VULKAN_HPP_NOEXCEPT
  32403. {
  32404. return *reinterpret_cast<VkImageViewCreateInfo *>( this );
  32405. }
  32406. #if defined( VULKAN_HPP_USE_REFLECT )
  32407. # if 14 <= VULKAN_HPP_CPP_VERSION
  32408. auto
  32409. # else
  32410. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  32411. const void * const &,
  32412. VULKAN_HPP_NAMESPACE::ImageViewCreateFlags const &,
  32413. VULKAN_HPP_NAMESPACE::Image const &,
  32414. VULKAN_HPP_NAMESPACE::ImageViewType const &,
  32415. VULKAN_HPP_NAMESPACE::Format const &,
  32416. VULKAN_HPP_NAMESPACE::ComponentMapping const &,
  32417. VULKAN_HPP_NAMESPACE::ImageSubresourceRange const &>
  32418. # endif
  32419. reflect() const VULKAN_HPP_NOEXCEPT
  32420. {
  32421. return std::tie( sType, pNext, flags, image, viewType, format, components, subresourceRange );
  32422. }
  32423. #endif
  32424. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  32425. auto operator<=>( ImageViewCreateInfo const & ) const = default;
  32426. #else
  32427. bool operator==( ImageViewCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  32428. {
  32429. # if defined( VULKAN_HPP_USE_REFLECT )
  32430. return this->reflect() == rhs.reflect();
  32431. # else
  32432. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( flags == rhs.flags ) && ( image == rhs.image ) && ( viewType == rhs.viewType ) &&
  32433. ( format == rhs.format ) && ( components == rhs.components ) && ( subresourceRange == rhs.subresourceRange );
  32434. # endif
  32435. }
  32436. bool operator!=( ImageViewCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  32437. {
  32438. return !operator==( rhs );
  32439. }
  32440. #endif
  32441. public:
  32442. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImageViewCreateInfo;
  32443. const void * pNext = {};
  32444. VULKAN_HPP_NAMESPACE::ImageViewCreateFlags flags = {};
  32445. VULKAN_HPP_NAMESPACE::Image image = {};
  32446. VULKAN_HPP_NAMESPACE::ImageViewType viewType = VULKAN_HPP_NAMESPACE::ImageViewType::e1D;
  32447. VULKAN_HPP_NAMESPACE::Format format = VULKAN_HPP_NAMESPACE::Format::eUndefined;
  32448. VULKAN_HPP_NAMESPACE::ComponentMapping components = {};
  32449. VULKAN_HPP_NAMESPACE::ImageSubresourceRange subresourceRange = {};
  32450. };
  32451. template <>
  32452. struct CppType<StructureType, StructureType::eImageViewCreateInfo>
  32453. {
  32454. using Type = ImageViewCreateInfo;
  32455. };
  32456. struct ImageViewHandleInfoNVX
  32457. {
  32458. using NativeType = VkImageViewHandleInfoNVX;
  32459. static const bool allowDuplicate = false;
  32460. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eImageViewHandleInfoNVX;
  32461. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  32462. VULKAN_HPP_CONSTEXPR ImageViewHandleInfoNVX( VULKAN_HPP_NAMESPACE::ImageView imageView_ = {},
  32463. VULKAN_HPP_NAMESPACE::DescriptorType descriptorType_ = VULKAN_HPP_NAMESPACE::DescriptorType::eSampler,
  32464. VULKAN_HPP_NAMESPACE::Sampler sampler_ = {},
  32465. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  32466. : pNext( pNext_ )
  32467. , imageView( imageView_ )
  32468. , descriptorType( descriptorType_ )
  32469. , sampler( sampler_ )
  32470. {
  32471. }
  32472. VULKAN_HPP_CONSTEXPR ImageViewHandleInfoNVX( ImageViewHandleInfoNVX const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  32473. ImageViewHandleInfoNVX( VkImageViewHandleInfoNVX const & rhs ) VULKAN_HPP_NOEXCEPT
  32474. : ImageViewHandleInfoNVX( *reinterpret_cast<ImageViewHandleInfoNVX const *>( &rhs ) )
  32475. {
  32476. }
  32477. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  32478. ImageViewHandleInfoNVX & operator=( ImageViewHandleInfoNVX const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  32479. ImageViewHandleInfoNVX & operator=( VkImageViewHandleInfoNVX const & rhs ) VULKAN_HPP_NOEXCEPT
  32480. {
  32481. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ImageViewHandleInfoNVX const *>( &rhs );
  32482. return *this;
  32483. }
  32484. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  32485. VULKAN_HPP_CONSTEXPR_14 ImageViewHandleInfoNVX & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  32486. {
  32487. pNext = pNext_;
  32488. return *this;
  32489. }
  32490. VULKAN_HPP_CONSTEXPR_14 ImageViewHandleInfoNVX & setImageView( VULKAN_HPP_NAMESPACE::ImageView imageView_ ) VULKAN_HPP_NOEXCEPT
  32491. {
  32492. imageView = imageView_;
  32493. return *this;
  32494. }
  32495. VULKAN_HPP_CONSTEXPR_14 ImageViewHandleInfoNVX & setDescriptorType( VULKAN_HPP_NAMESPACE::DescriptorType descriptorType_ ) VULKAN_HPP_NOEXCEPT
  32496. {
  32497. descriptorType = descriptorType_;
  32498. return *this;
  32499. }
  32500. VULKAN_HPP_CONSTEXPR_14 ImageViewHandleInfoNVX & setSampler( VULKAN_HPP_NAMESPACE::Sampler sampler_ ) VULKAN_HPP_NOEXCEPT
  32501. {
  32502. sampler = sampler_;
  32503. return *this;
  32504. }
  32505. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  32506. operator VkImageViewHandleInfoNVX const &() const VULKAN_HPP_NOEXCEPT
  32507. {
  32508. return *reinterpret_cast<const VkImageViewHandleInfoNVX *>( this );
  32509. }
  32510. operator VkImageViewHandleInfoNVX &() VULKAN_HPP_NOEXCEPT
  32511. {
  32512. return *reinterpret_cast<VkImageViewHandleInfoNVX *>( this );
  32513. }
  32514. #if defined( VULKAN_HPP_USE_REFLECT )
  32515. # if 14 <= VULKAN_HPP_CPP_VERSION
  32516. auto
  32517. # else
  32518. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  32519. const void * const &,
  32520. VULKAN_HPP_NAMESPACE::ImageView const &,
  32521. VULKAN_HPP_NAMESPACE::DescriptorType const &,
  32522. VULKAN_HPP_NAMESPACE::Sampler const &>
  32523. # endif
  32524. reflect() const VULKAN_HPP_NOEXCEPT
  32525. {
  32526. return std::tie( sType, pNext, imageView, descriptorType, sampler );
  32527. }
  32528. #endif
  32529. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  32530. auto operator<=>( ImageViewHandleInfoNVX const & ) const = default;
  32531. #else
  32532. bool operator==( ImageViewHandleInfoNVX const & rhs ) const VULKAN_HPP_NOEXCEPT
  32533. {
  32534. # if defined( VULKAN_HPP_USE_REFLECT )
  32535. return this->reflect() == rhs.reflect();
  32536. # else
  32537. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( imageView == rhs.imageView ) && ( descriptorType == rhs.descriptorType ) &&
  32538. ( sampler == rhs.sampler );
  32539. # endif
  32540. }
  32541. bool operator!=( ImageViewHandleInfoNVX const & rhs ) const VULKAN_HPP_NOEXCEPT
  32542. {
  32543. return !operator==( rhs );
  32544. }
  32545. #endif
  32546. public:
  32547. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImageViewHandleInfoNVX;
  32548. const void * pNext = {};
  32549. VULKAN_HPP_NAMESPACE::ImageView imageView = {};
  32550. VULKAN_HPP_NAMESPACE::DescriptorType descriptorType = VULKAN_HPP_NAMESPACE::DescriptorType::eSampler;
  32551. VULKAN_HPP_NAMESPACE::Sampler sampler = {};
  32552. };
  32553. template <>
  32554. struct CppType<StructureType, StructureType::eImageViewHandleInfoNVX>
  32555. {
  32556. using Type = ImageViewHandleInfoNVX;
  32557. };
  32558. struct ImageViewMinLodCreateInfoEXT
  32559. {
  32560. using NativeType = VkImageViewMinLodCreateInfoEXT;
  32561. static const bool allowDuplicate = false;
  32562. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eImageViewMinLodCreateInfoEXT;
  32563. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  32564. VULKAN_HPP_CONSTEXPR ImageViewMinLodCreateInfoEXT( float minLod_ = {}, const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  32565. : pNext( pNext_ )
  32566. , minLod( minLod_ )
  32567. {
  32568. }
  32569. VULKAN_HPP_CONSTEXPR ImageViewMinLodCreateInfoEXT( ImageViewMinLodCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  32570. ImageViewMinLodCreateInfoEXT( VkImageViewMinLodCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  32571. : ImageViewMinLodCreateInfoEXT( *reinterpret_cast<ImageViewMinLodCreateInfoEXT const *>( &rhs ) )
  32572. {
  32573. }
  32574. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  32575. ImageViewMinLodCreateInfoEXT & operator=( ImageViewMinLodCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  32576. ImageViewMinLodCreateInfoEXT & operator=( VkImageViewMinLodCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  32577. {
  32578. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ImageViewMinLodCreateInfoEXT const *>( &rhs );
  32579. return *this;
  32580. }
  32581. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  32582. VULKAN_HPP_CONSTEXPR_14 ImageViewMinLodCreateInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  32583. {
  32584. pNext = pNext_;
  32585. return *this;
  32586. }
  32587. VULKAN_HPP_CONSTEXPR_14 ImageViewMinLodCreateInfoEXT & setMinLod( float minLod_ ) VULKAN_HPP_NOEXCEPT
  32588. {
  32589. minLod = minLod_;
  32590. return *this;
  32591. }
  32592. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  32593. operator VkImageViewMinLodCreateInfoEXT const &() const VULKAN_HPP_NOEXCEPT
  32594. {
  32595. return *reinterpret_cast<const VkImageViewMinLodCreateInfoEXT *>( this );
  32596. }
  32597. operator VkImageViewMinLodCreateInfoEXT &() VULKAN_HPP_NOEXCEPT
  32598. {
  32599. return *reinterpret_cast<VkImageViewMinLodCreateInfoEXT *>( this );
  32600. }
  32601. #if defined( VULKAN_HPP_USE_REFLECT )
  32602. # if 14 <= VULKAN_HPP_CPP_VERSION
  32603. auto
  32604. # else
  32605. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, float const &>
  32606. # endif
  32607. reflect() const VULKAN_HPP_NOEXCEPT
  32608. {
  32609. return std::tie( sType, pNext, minLod );
  32610. }
  32611. #endif
  32612. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  32613. auto operator<=>( ImageViewMinLodCreateInfoEXT const & ) const = default;
  32614. #else
  32615. bool operator==( ImageViewMinLodCreateInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  32616. {
  32617. # if defined( VULKAN_HPP_USE_REFLECT )
  32618. return this->reflect() == rhs.reflect();
  32619. # else
  32620. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( minLod == rhs.minLod );
  32621. # endif
  32622. }
  32623. bool operator!=( ImageViewMinLodCreateInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  32624. {
  32625. return !operator==( rhs );
  32626. }
  32627. #endif
  32628. public:
  32629. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImageViewMinLodCreateInfoEXT;
  32630. const void * pNext = {};
  32631. float minLod = {};
  32632. };
  32633. template <>
  32634. struct CppType<StructureType, StructureType::eImageViewMinLodCreateInfoEXT>
  32635. {
  32636. using Type = ImageViewMinLodCreateInfoEXT;
  32637. };
  32638. struct ImageViewSampleWeightCreateInfoQCOM
  32639. {
  32640. using NativeType = VkImageViewSampleWeightCreateInfoQCOM;
  32641. static const bool allowDuplicate = false;
  32642. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eImageViewSampleWeightCreateInfoQCOM;
  32643. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  32644. VULKAN_HPP_CONSTEXPR ImageViewSampleWeightCreateInfoQCOM( VULKAN_HPP_NAMESPACE::Offset2D filterCenter_ = {},
  32645. VULKAN_HPP_NAMESPACE::Extent2D filterSize_ = {},
  32646. uint32_t numPhases_ = {},
  32647. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  32648. : pNext( pNext_ )
  32649. , filterCenter( filterCenter_ )
  32650. , filterSize( filterSize_ )
  32651. , numPhases( numPhases_ )
  32652. {
  32653. }
  32654. VULKAN_HPP_CONSTEXPR ImageViewSampleWeightCreateInfoQCOM( ImageViewSampleWeightCreateInfoQCOM const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  32655. ImageViewSampleWeightCreateInfoQCOM( VkImageViewSampleWeightCreateInfoQCOM const & rhs ) VULKAN_HPP_NOEXCEPT
  32656. : ImageViewSampleWeightCreateInfoQCOM( *reinterpret_cast<ImageViewSampleWeightCreateInfoQCOM const *>( &rhs ) )
  32657. {
  32658. }
  32659. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  32660. ImageViewSampleWeightCreateInfoQCOM & operator=( ImageViewSampleWeightCreateInfoQCOM const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  32661. ImageViewSampleWeightCreateInfoQCOM & operator=( VkImageViewSampleWeightCreateInfoQCOM const & rhs ) VULKAN_HPP_NOEXCEPT
  32662. {
  32663. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ImageViewSampleWeightCreateInfoQCOM const *>( &rhs );
  32664. return *this;
  32665. }
  32666. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  32667. VULKAN_HPP_CONSTEXPR_14 ImageViewSampleWeightCreateInfoQCOM & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  32668. {
  32669. pNext = pNext_;
  32670. return *this;
  32671. }
  32672. VULKAN_HPP_CONSTEXPR_14 ImageViewSampleWeightCreateInfoQCOM & setFilterCenter( VULKAN_HPP_NAMESPACE::Offset2D const & filterCenter_ ) VULKAN_HPP_NOEXCEPT
  32673. {
  32674. filterCenter = filterCenter_;
  32675. return *this;
  32676. }
  32677. VULKAN_HPP_CONSTEXPR_14 ImageViewSampleWeightCreateInfoQCOM & setFilterSize( VULKAN_HPP_NAMESPACE::Extent2D const & filterSize_ ) VULKAN_HPP_NOEXCEPT
  32678. {
  32679. filterSize = filterSize_;
  32680. return *this;
  32681. }
  32682. VULKAN_HPP_CONSTEXPR_14 ImageViewSampleWeightCreateInfoQCOM & setNumPhases( uint32_t numPhases_ ) VULKAN_HPP_NOEXCEPT
  32683. {
  32684. numPhases = numPhases_;
  32685. return *this;
  32686. }
  32687. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  32688. operator VkImageViewSampleWeightCreateInfoQCOM const &() const VULKAN_HPP_NOEXCEPT
  32689. {
  32690. return *reinterpret_cast<const VkImageViewSampleWeightCreateInfoQCOM *>( this );
  32691. }
  32692. operator VkImageViewSampleWeightCreateInfoQCOM &() VULKAN_HPP_NOEXCEPT
  32693. {
  32694. return *reinterpret_cast<VkImageViewSampleWeightCreateInfoQCOM *>( this );
  32695. }
  32696. #if defined( VULKAN_HPP_USE_REFLECT )
  32697. # if 14 <= VULKAN_HPP_CPP_VERSION
  32698. auto
  32699. # else
  32700. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  32701. const void * const &,
  32702. VULKAN_HPP_NAMESPACE::Offset2D const &,
  32703. VULKAN_HPP_NAMESPACE::Extent2D const &,
  32704. uint32_t const &>
  32705. # endif
  32706. reflect() const VULKAN_HPP_NOEXCEPT
  32707. {
  32708. return std::tie( sType, pNext, filterCenter, filterSize, numPhases );
  32709. }
  32710. #endif
  32711. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  32712. auto operator<=>( ImageViewSampleWeightCreateInfoQCOM const & ) const = default;
  32713. #else
  32714. bool operator==( ImageViewSampleWeightCreateInfoQCOM const & rhs ) const VULKAN_HPP_NOEXCEPT
  32715. {
  32716. # if defined( VULKAN_HPP_USE_REFLECT )
  32717. return this->reflect() == rhs.reflect();
  32718. # else
  32719. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( filterCenter == rhs.filterCenter ) && ( filterSize == rhs.filterSize ) &&
  32720. ( numPhases == rhs.numPhases );
  32721. # endif
  32722. }
  32723. bool operator!=( ImageViewSampleWeightCreateInfoQCOM const & rhs ) const VULKAN_HPP_NOEXCEPT
  32724. {
  32725. return !operator==( rhs );
  32726. }
  32727. #endif
  32728. public:
  32729. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImageViewSampleWeightCreateInfoQCOM;
  32730. const void * pNext = {};
  32731. VULKAN_HPP_NAMESPACE::Offset2D filterCenter = {};
  32732. VULKAN_HPP_NAMESPACE::Extent2D filterSize = {};
  32733. uint32_t numPhases = {};
  32734. };
  32735. template <>
  32736. struct CppType<StructureType, StructureType::eImageViewSampleWeightCreateInfoQCOM>
  32737. {
  32738. using Type = ImageViewSampleWeightCreateInfoQCOM;
  32739. };
  32740. struct ImageViewUsageCreateInfo
  32741. {
  32742. using NativeType = VkImageViewUsageCreateInfo;
  32743. static const bool allowDuplicate = false;
  32744. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eImageViewUsageCreateInfo;
  32745. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  32746. VULKAN_HPP_CONSTEXPR ImageViewUsageCreateInfo( VULKAN_HPP_NAMESPACE::ImageUsageFlags usage_ = {}, const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  32747. : pNext( pNext_ )
  32748. , usage( usage_ )
  32749. {
  32750. }
  32751. VULKAN_HPP_CONSTEXPR ImageViewUsageCreateInfo( ImageViewUsageCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  32752. ImageViewUsageCreateInfo( VkImageViewUsageCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
  32753. : ImageViewUsageCreateInfo( *reinterpret_cast<ImageViewUsageCreateInfo const *>( &rhs ) )
  32754. {
  32755. }
  32756. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  32757. ImageViewUsageCreateInfo & operator=( ImageViewUsageCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  32758. ImageViewUsageCreateInfo & operator=( VkImageViewUsageCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
  32759. {
  32760. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ImageViewUsageCreateInfo const *>( &rhs );
  32761. return *this;
  32762. }
  32763. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  32764. VULKAN_HPP_CONSTEXPR_14 ImageViewUsageCreateInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  32765. {
  32766. pNext = pNext_;
  32767. return *this;
  32768. }
  32769. VULKAN_HPP_CONSTEXPR_14 ImageViewUsageCreateInfo & setUsage( VULKAN_HPP_NAMESPACE::ImageUsageFlags usage_ ) VULKAN_HPP_NOEXCEPT
  32770. {
  32771. usage = usage_;
  32772. return *this;
  32773. }
  32774. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  32775. operator VkImageViewUsageCreateInfo const &() const VULKAN_HPP_NOEXCEPT
  32776. {
  32777. return *reinterpret_cast<const VkImageViewUsageCreateInfo *>( this );
  32778. }
  32779. operator VkImageViewUsageCreateInfo &() VULKAN_HPP_NOEXCEPT
  32780. {
  32781. return *reinterpret_cast<VkImageViewUsageCreateInfo *>( this );
  32782. }
  32783. #if defined( VULKAN_HPP_USE_REFLECT )
  32784. # if 14 <= VULKAN_HPP_CPP_VERSION
  32785. auto
  32786. # else
  32787. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::ImageUsageFlags const &>
  32788. # endif
  32789. reflect() const VULKAN_HPP_NOEXCEPT
  32790. {
  32791. return std::tie( sType, pNext, usage );
  32792. }
  32793. #endif
  32794. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  32795. auto operator<=>( ImageViewUsageCreateInfo const & ) const = default;
  32796. #else
  32797. bool operator==( ImageViewUsageCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  32798. {
  32799. # if defined( VULKAN_HPP_USE_REFLECT )
  32800. return this->reflect() == rhs.reflect();
  32801. # else
  32802. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( usage == rhs.usage );
  32803. # endif
  32804. }
  32805. bool operator!=( ImageViewUsageCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  32806. {
  32807. return !operator==( rhs );
  32808. }
  32809. #endif
  32810. public:
  32811. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImageViewUsageCreateInfo;
  32812. const void * pNext = {};
  32813. VULKAN_HPP_NAMESPACE::ImageUsageFlags usage = {};
  32814. };
  32815. template <>
  32816. struct CppType<StructureType, StructureType::eImageViewUsageCreateInfo>
  32817. {
  32818. using Type = ImageViewUsageCreateInfo;
  32819. };
  32820. using ImageViewUsageCreateInfoKHR = ImageViewUsageCreateInfo;
  32821. #if defined( VK_USE_PLATFORM_ANDROID_KHR )
  32822. struct ImportAndroidHardwareBufferInfoANDROID
  32823. {
  32824. using NativeType = VkImportAndroidHardwareBufferInfoANDROID;
  32825. static const bool allowDuplicate = false;
  32826. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eImportAndroidHardwareBufferInfoANDROID;
  32827. # if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  32828. VULKAN_HPP_CONSTEXPR ImportAndroidHardwareBufferInfoANDROID( struct AHardwareBuffer * buffer_ = {}, const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  32829. : pNext( pNext_ )
  32830. , buffer( buffer_ )
  32831. {
  32832. }
  32833. VULKAN_HPP_CONSTEXPR ImportAndroidHardwareBufferInfoANDROID( ImportAndroidHardwareBufferInfoANDROID const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  32834. ImportAndroidHardwareBufferInfoANDROID( VkImportAndroidHardwareBufferInfoANDROID const & rhs ) VULKAN_HPP_NOEXCEPT
  32835. : ImportAndroidHardwareBufferInfoANDROID( *reinterpret_cast<ImportAndroidHardwareBufferInfoANDROID const *>( &rhs ) )
  32836. {
  32837. }
  32838. # endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  32839. ImportAndroidHardwareBufferInfoANDROID & operator=( ImportAndroidHardwareBufferInfoANDROID const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  32840. ImportAndroidHardwareBufferInfoANDROID & operator=( VkImportAndroidHardwareBufferInfoANDROID const & rhs ) VULKAN_HPP_NOEXCEPT
  32841. {
  32842. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ImportAndroidHardwareBufferInfoANDROID const *>( &rhs );
  32843. return *this;
  32844. }
  32845. # if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  32846. VULKAN_HPP_CONSTEXPR_14 ImportAndroidHardwareBufferInfoANDROID & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  32847. {
  32848. pNext = pNext_;
  32849. return *this;
  32850. }
  32851. VULKAN_HPP_CONSTEXPR_14 ImportAndroidHardwareBufferInfoANDROID & setBuffer( struct AHardwareBuffer * buffer_ ) VULKAN_HPP_NOEXCEPT
  32852. {
  32853. buffer = buffer_;
  32854. return *this;
  32855. }
  32856. # endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  32857. operator VkImportAndroidHardwareBufferInfoANDROID const &() const VULKAN_HPP_NOEXCEPT
  32858. {
  32859. return *reinterpret_cast<const VkImportAndroidHardwareBufferInfoANDROID *>( this );
  32860. }
  32861. operator VkImportAndroidHardwareBufferInfoANDROID &() VULKAN_HPP_NOEXCEPT
  32862. {
  32863. return *reinterpret_cast<VkImportAndroidHardwareBufferInfoANDROID *>( this );
  32864. }
  32865. # if defined( VULKAN_HPP_USE_REFLECT )
  32866. # if 14 <= VULKAN_HPP_CPP_VERSION
  32867. auto
  32868. # else
  32869. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, struct AHardwareBuffer * const &>
  32870. # endif
  32871. reflect() const VULKAN_HPP_NOEXCEPT
  32872. {
  32873. return std::tie( sType, pNext, buffer );
  32874. }
  32875. # endif
  32876. # if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  32877. auto operator<=>( ImportAndroidHardwareBufferInfoANDROID const & ) const = default;
  32878. # else
  32879. bool operator==( ImportAndroidHardwareBufferInfoANDROID const & rhs ) const VULKAN_HPP_NOEXCEPT
  32880. {
  32881. # if defined( VULKAN_HPP_USE_REFLECT )
  32882. return this->reflect() == rhs.reflect();
  32883. # else
  32884. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( buffer == rhs.buffer );
  32885. # endif
  32886. }
  32887. bool operator!=( ImportAndroidHardwareBufferInfoANDROID const & rhs ) const VULKAN_HPP_NOEXCEPT
  32888. {
  32889. return !operator==( rhs );
  32890. }
  32891. # endif
  32892. public:
  32893. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImportAndroidHardwareBufferInfoANDROID;
  32894. const void * pNext = {};
  32895. struct AHardwareBuffer * buffer = {};
  32896. };
  32897. template <>
  32898. struct CppType<StructureType, StructureType::eImportAndroidHardwareBufferInfoANDROID>
  32899. {
  32900. using Type = ImportAndroidHardwareBufferInfoANDROID;
  32901. };
  32902. #endif /*VK_USE_PLATFORM_ANDROID_KHR*/
  32903. struct ImportFenceFdInfoKHR
  32904. {
  32905. using NativeType = VkImportFenceFdInfoKHR;
  32906. static const bool allowDuplicate = false;
  32907. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eImportFenceFdInfoKHR;
  32908. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  32909. VULKAN_HPP_CONSTEXPR ImportFenceFdInfoKHR(
  32910. VULKAN_HPP_NAMESPACE::Fence fence_ = {},
  32911. VULKAN_HPP_NAMESPACE::FenceImportFlags flags_ = {},
  32912. VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlagBits handleType_ = VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlagBits::eOpaqueFd,
  32913. int fd_ = {},
  32914. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  32915. : pNext( pNext_ )
  32916. , fence( fence_ )
  32917. , flags( flags_ )
  32918. , handleType( handleType_ )
  32919. , fd( fd_ )
  32920. {
  32921. }
  32922. VULKAN_HPP_CONSTEXPR ImportFenceFdInfoKHR( ImportFenceFdInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  32923. ImportFenceFdInfoKHR( VkImportFenceFdInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  32924. : ImportFenceFdInfoKHR( *reinterpret_cast<ImportFenceFdInfoKHR const *>( &rhs ) )
  32925. {
  32926. }
  32927. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  32928. ImportFenceFdInfoKHR & operator=( ImportFenceFdInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  32929. ImportFenceFdInfoKHR & operator=( VkImportFenceFdInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  32930. {
  32931. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ImportFenceFdInfoKHR const *>( &rhs );
  32932. return *this;
  32933. }
  32934. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  32935. VULKAN_HPP_CONSTEXPR_14 ImportFenceFdInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  32936. {
  32937. pNext = pNext_;
  32938. return *this;
  32939. }
  32940. VULKAN_HPP_CONSTEXPR_14 ImportFenceFdInfoKHR & setFence( VULKAN_HPP_NAMESPACE::Fence fence_ ) VULKAN_HPP_NOEXCEPT
  32941. {
  32942. fence = fence_;
  32943. return *this;
  32944. }
  32945. VULKAN_HPP_CONSTEXPR_14 ImportFenceFdInfoKHR & setFlags( VULKAN_HPP_NAMESPACE::FenceImportFlags flags_ ) VULKAN_HPP_NOEXCEPT
  32946. {
  32947. flags = flags_;
  32948. return *this;
  32949. }
  32950. VULKAN_HPP_CONSTEXPR_14 ImportFenceFdInfoKHR & setHandleType( VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlagBits handleType_ ) VULKAN_HPP_NOEXCEPT
  32951. {
  32952. handleType = handleType_;
  32953. return *this;
  32954. }
  32955. VULKAN_HPP_CONSTEXPR_14 ImportFenceFdInfoKHR & setFd( int fd_ ) VULKAN_HPP_NOEXCEPT
  32956. {
  32957. fd = fd_;
  32958. return *this;
  32959. }
  32960. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  32961. operator VkImportFenceFdInfoKHR const &() const VULKAN_HPP_NOEXCEPT
  32962. {
  32963. return *reinterpret_cast<const VkImportFenceFdInfoKHR *>( this );
  32964. }
  32965. operator VkImportFenceFdInfoKHR &() VULKAN_HPP_NOEXCEPT
  32966. {
  32967. return *reinterpret_cast<VkImportFenceFdInfoKHR *>( this );
  32968. }
  32969. #if defined( VULKAN_HPP_USE_REFLECT )
  32970. # if 14 <= VULKAN_HPP_CPP_VERSION
  32971. auto
  32972. # else
  32973. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  32974. const void * const &,
  32975. VULKAN_HPP_NAMESPACE::Fence const &,
  32976. VULKAN_HPP_NAMESPACE::FenceImportFlags const &,
  32977. VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlagBits const &,
  32978. int const &>
  32979. # endif
  32980. reflect() const VULKAN_HPP_NOEXCEPT
  32981. {
  32982. return std::tie( sType, pNext, fence, flags, handleType, fd );
  32983. }
  32984. #endif
  32985. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  32986. auto operator<=>( ImportFenceFdInfoKHR const & ) const = default;
  32987. #else
  32988. bool operator==( ImportFenceFdInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  32989. {
  32990. # if defined( VULKAN_HPP_USE_REFLECT )
  32991. return this->reflect() == rhs.reflect();
  32992. # else
  32993. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( fence == rhs.fence ) && ( flags == rhs.flags ) && ( handleType == rhs.handleType ) &&
  32994. ( fd == rhs.fd );
  32995. # endif
  32996. }
  32997. bool operator!=( ImportFenceFdInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  32998. {
  32999. return !operator==( rhs );
  33000. }
  33001. #endif
  33002. public:
  33003. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImportFenceFdInfoKHR;
  33004. const void * pNext = {};
  33005. VULKAN_HPP_NAMESPACE::Fence fence = {};
  33006. VULKAN_HPP_NAMESPACE::FenceImportFlags flags = {};
  33007. VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlagBits handleType = VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlagBits::eOpaqueFd;
  33008. int fd = {};
  33009. };
  33010. template <>
  33011. struct CppType<StructureType, StructureType::eImportFenceFdInfoKHR>
  33012. {
  33013. using Type = ImportFenceFdInfoKHR;
  33014. };
  33015. #if defined( VK_USE_PLATFORM_WIN32_KHR )
  33016. struct ImportFenceWin32HandleInfoKHR
  33017. {
  33018. using NativeType = VkImportFenceWin32HandleInfoKHR;
  33019. static const bool allowDuplicate = false;
  33020. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eImportFenceWin32HandleInfoKHR;
  33021. # if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  33022. VULKAN_HPP_CONSTEXPR ImportFenceWin32HandleInfoKHR(
  33023. VULKAN_HPP_NAMESPACE::Fence fence_ = {},
  33024. VULKAN_HPP_NAMESPACE::FenceImportFlags flags_ = {},
  33025. VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlagBits handleType_ = VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlagBits::eOpaqueFd,
  33026. HANDLE handle_ = {},
  33027. LPCWSTR name_ = {},
  33028. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  33029. : pNext( pNext_ )
  33030. , fence( fence_ )
  33031. , flags( flags_ )
  33032. , handleType( handleType_ )
  33033. , handle( handle_ )
  33034. , name( name_ )
  33035. {
  33036. }
  33037. VULKAN_HPP_CONSTEXPR ImportFenceWin32HandleInfoKHR( ImportFenceWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  33038. ImportFenceWin32HandleInfoKHR( VkImportFenceWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  33039. : ImportFenceWin32HandleInfoKHR( *reinterpret_cast<ImportFenceWin32HandleInfoKHR const *>( &rhs ) )
  33040. {
  33041. }
  33042. # endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  33043. ImportFenceWin32HandleInfoKHR & operator=( ImportFenceWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  33044. ImportFenceWin32HandleInfoKHR & operator=( VkImportFenceWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  33045. {
  33046. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ImportFenceWin32HandleInfoKHR const *>( &rhs );
  33047. return *this;
  33048. }
  33049. # if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  33050. VULKAN_HPP_CONSTEXPR_14 ImportFenceWin32HandleInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  33051. {
  33052. pNext = pNext_;
  33053. return *this;
  33054. }
  33055. VULKAN_HPP_CONSTEXPR_14 ImportFenceWin32HandleInfoKHR & setFence( VULKAN_HPP_NAMESPACE::Fence fence_ ) VULKAN_HPP_NOEXCEPT
  33056. {
  33057. fence = fence_;
  33058. return *this;
  33059. }
  33060. VULKAN_HPP_CONSTEXPR_14 ImportFenceWin32HandleInfoKHR & setFlags( VULKAN_HPP_NAMESPACE::FenceImportFlags flags_ ) VULKAN_HPP_NOEXCEPT
  33061. {
  33062. flags = flags_;
  33063. return *this;
  33064. }
  33065. VULKAN_HPP_CONSTEXPR_14 ImportFenceWin32HandleInfoKHR &
  33066. setHandleType( VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlagBits handleType_ ) VULKAN_HPP_NOEXCEPT
  33067. {
  33068. handleType = handleType_;
  33069. return *this;
  33070. }
  33071. VULKAN_HPP_CONSTEXPR_14 ImportFenceWin32HandleInfoKHR & setHandle( HANDLE handle_ ) VULKAN_HPP_NOEXCEPT
  33072. {
  33073. handle = handle_;
  33074. return *this;
  33075. }
  33076. VULKAN_HPP_CONSTEXPR_14 ImportFenceWin32HandleInfoKHR & setName( LPCWSTR name_ ) VULKAN_HPP_NOEXCEPT
  33077. {
  33078. name = name_;
  33079. return *this;
  33080. }
  33081. # endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  33082. operator VkImportFenceWin32HandleInfoKHR const &() const VULKAN_HPP_NOEXCEPT
  33083. {
  33084. return *reinterpret_cast<const VkImportFenceWin32HandleInfoKHR *>( this );
  33085. }
  33086. operator VkImportFenceWin32HandleInfoKHR &() VULKAN_HPP_NOEXCEPT
  33087. {
  33088. return *reinterpret_cast<VkImportFenceWin32HandleInfoKHR *>( this );
  33089. }
  33090. # if defined( VULKAN_HPP_USE_REFLECT )
  33091. # if 14 <= VULKAN_HPP_CPP_VERSION
  33092. auto
  33093. # else
  33094. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  33095. const void * const &,
  33096. VULKAN_HPP_NAMESPACE::Fence const &,
  33097. VULKAN_HPP_NAMESPACE::FenceImportFlags const &,
  33098. VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlagBits const &,
  33099. HANDLE const &,
  33100. LPCWSTR const &>
  33101. # endif
  33102. reflect() const VULKAN_HPP_NOEXCEPT
  33103. {
  33104. return std::tie( sType, pNext, fence, flags, handleType, handle, name );
  33105. }
  33106. # endif
  33107. # if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  33108. auto operator<=>( ImportFenceWin32HandleInfoKHR const & ) const = default;
  33109. # else
  33110. bool operator==( ImportFenceWin32HandleInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  33111. {
  33112. # if defined( VULKAN_HPP_USE_REFLECT )
  33113. return this->reflect() == rhs.reflect();
  33114. # else
  33115. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( fence == rhs.fence ) && ( flags == rhs.flags ) && ( handleType == rhs.handleType ) &&
  33116. ( handle == rhs.handle ) && ( name == rhs.name );
  33117. # endif
  33118. }
  33119. bool operator!=( ImportFenceWin32HandleInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  33120. {
  33121. return !operator==( rhs );
  33122. }
  33123. # endif
  33124. public:
  33125. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImportFenceWin32HandleInfoKHR;
  33126. const void * pNext = {};
  33127. VULKAN_HPP_NAMESPACE::Fence fence = {};
  33128. VULKAN_HPP_NAMESPACE::FenceImportFlags flags = {};
  33129. VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlagBits handleType = VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlagBits::eOpaqueFd;
  33130. HANDLE handle = {};
  33131. LPCWSTR name = {};
  33132. };
  33133. template <>
  33134. struct CppType<StructureType, StructureType::eImportFenceWin32HandleInfoKHR>
  33135. {
  33136. using Type = ImportFenceWin32HandleInfoKHR;
  33137. };
  33138. #endif /*VK_USE_PLATFORM_WIN32_KHR*/
  33139. #if defined( VK_USE_PLATFORM_FUCHSIA )
  33140. struct ImportMemoryBufferCollectionFUCHSIA
  33141. {
  33142. using NativeType = VkImportMemoryBufferCollectionFUCHSIA;
  33143. static const bool allowDuplicate = false;
  33144. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eImportMemoryBufferCollectionFUCHSIA;
  33145. # if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  33146. VULKAN_HPP_CONSTEXPR ImportMemoryBufferCollectionFUCHSIA( VULKAN_HPP_NAMESPACE::BufferCollectionFUCHSIA collection_ = {},
  33147. uint32_t index_ = {},
  33148. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  33149. : pNext( pNext_ )
  33150. , collection( collection_ )
  33151. , index( index_ )
  33152. {
  33153. }
  33154. VULKAN_HPP_CONSTEXPR ImportMemoryBufferCollectionFUCHSIA( ImportMemoryBufferCollectionFUCHSIA const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  33155. ImportMemoryBufferCollectionFUCHSIA( VkImportMemoryBufferCollectionFUCHSIA const & rhs ) VULKAN_HPP_NOEXCEPT
  33156. : ImportMemoryBufferCollectionFUCHSIA( *reinterpret_cast<ImportMemoryBufferCollectionFUCHSIA const *>( &rhs ) )
  33157. {
  33158. }
  33159. # endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  33160. ImportMemoryBufferCollectionFUCHSIA & operator=( ImportMemoryBufferCollectionFUCHSIA const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  33161. ImportMemoryBufferCollectionFUCHSIA & operator=( VkImportMemoryBufferCollectionFUCHSIA const & rhs ) VULKAN_HPP_NOEXCEPT
  33162. {
  33163. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ImportMemoryBufferCollectionFUCHSIA const *>( &rhs );
  33164. return *this;
  33165. }
  33166. # if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  33167. VULKAN_HPP_CONSTEXPR_14 ImportMemoryBufferCollectionFUCHSIA & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  33168. {
  33169. pNext = pNext_;
  33170. return *this;
  33171. }
  33172. VULKAN_HPP_CONSTEXPR_14 ImportMemoryBufferCollectionFUCHSIA & setCollection( VULKAN_HPP_NAMESPACE::BufferCollectionFUCHSIA collection_ ) VULKAN_HPP_NOEXCEPT
  33173. {
  33174. collection = collection_;
  33175. return *this;
  33176. }
  33177. VULKAN_HPP_CONSTEXPR_14 ImportMemoryBufferCollectionFUCHSIA & setIndex( uint32_t index_ ) VULKAN_HPP_NOEXCEPT
  33178. {
  33179. index = index_;
  33180. return *this;
  33181. }
  33182. # endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  33183. operator VkImportMemoryBufferCollectionFUCHSIA const &() const VULKAN_HPP_NOEXCEPT
  33184. {
  33185. return *reinterpret_cast<const VkImportMemoryBufferCollectionFUCHSIA *>( this );
  33186. }
  33187. operator VkImportMemoryBufferCollectionFUCHSIA &() VULKAN_HPP_NOEXCEPT
  33188. {
  33189. return *reinterpret_cast<VkImportMemoryBufferCollectionFUCHSIA *>( this );
  33190. }
  33191. # if defined( VULKAN_HPP_USE_REFLECT )
  33192. # if 14 <= VULKAN_HPP_CPP_VERSION
  33193. auto
  33194. # else
  33195. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::BufferCollectionFUCHSIA const &, uint32_t const &>
  33196. # endif
  33197. reflect() const VULKAN_HPP_NOEXCEPT
  33198. {
  33199. return std::tie( sType, pNext, collection, index );
  33200. }
  33201. # endif
  33202. # if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  33203. auto operator<=>( ImportMemoryBufferCollectionFUCHSIA const & ) const = default;
  33204. # else
  33205. bool operator==( ImportMemoryBufferCollectionFUCHSIA const & rhs ) const VULKAN_HPP_NOEXCEPT
  33206. {
  33207. # if defined( VULKAN_HPP_USE_REFLECT )
  33208. return this->reflect() == rhs.reflect();
  33209. # else
  33210. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( collection == rhs.collection ) && ( index == rhs.index );
  33211. # endif
  33212. }
  33213. bool operator!=( ImportMemoryBufferCollectionFUCHSIA const & rhs ) const VULKAN_HPP_NOEXCEPT
  33214. {
  33215. return !operator==( rhs );
  33216. }
  33217. # endif
  33218. public:
  33219. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImportMemoryBufferCollectionFUCHSIA;
  33220. const void * pNext = {};
  33221. VULKAN_HPP_NAMESPACE::BufferCollectionFUCHSIA collection = {};
  33222. uint32_t index = {};
  33223. };
  33224. template <>
  33225. struct CppType<StructureType, StructureType::eImportMemoryBufferCollectionFUCHSIA>
  33226. {
  33227. using Type = ImportMemoryBufferCollectionFUCHSIA;
  33228. };
  33229. #endif /*VK_USE_PLATFORM_FUCHSIA*/
  33230. struct ImportMemoryFdInfoKHR
  33231. {
  33232. using NativeType = VkImportMemoryFdInfoKHR;
  33233. static const bool allowDuplicate = false;
  33234. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eImportMemoryFdInfoKHR;
  33235. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  33236. VULKAN_HPP_CONSTEXPR ImportMemoryFdInfoKHR(
  33237. VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType_ = VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits::eOpaqueFd,
  33238. int fd_ = {},
  33239. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  33240. : pNext( pNext_ )
  33241. , handleType( handleType_ )
  33242. , fd( fd_ )
  33243. {
  33244. }
  33245. VULKAN_HPP_CONSTEXPR ImportMemoryFdInfoKHR( ImportMemoryFdInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  33246. ImportMemoryFdInfoKHR( VkImportMemoryFdInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  33247. : ImportMemoryFdInfoKHR( *reinterpret_cast<ImportMemoryFdInfoKHR const *>( &rhs ) )
  33248. {
  33249. }
  33250. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  33251. ImportMemoryFdInfoKHR & operator=( ImportMemoryFdInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  33252. ImportMemoryFdInfoKHR & operator=( VkImportMemoryFdInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  33253. {
  33254. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ImportMemoryFdInfoKHR const *>( &rhs );
  33255. return *this;
  33256. }
  33257. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  33258. VULKAN_HPP_CONSTEXPR_14 ImportMemoryFdInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  33259. {
  33260. pNext = pNext_;
  33261. return *this;
  33262. }
  33263. VULKAN_HPP_CONSTEXPR_14 ImportMemoryFdInfoKHR & setHandleType( VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType_ ) VULKAN_HPP_NOEXCEPT
  33264. {
  33265. handleType = handleType_;
  33266. return *this;
  33267. }
  33268. VULKAN_HPP_CONSTEXPR_14 ImportMemoryFdInfoKHR & setFd( int fd_ ) VULKAN_HPP_NOEXCEPT
  33269. {
  33270. fd = fd_;
  33271. return *this;
  33272. }
  33273. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  33274. operator VkImportMemoryFdInfoKHR const &() const VULKAN_HPP_NOEXCEPT
  33275. {
  33276. return *reinterpret_cast<const VkImportMemoryFdInfoKHR *>( this );
  33277. }
  33278. operator VkImportMemoryFdInfoKHR &() VULKAN_HPP_NOEXCEPT
  33279. {
  33280. return *reinterpret_cast<VkImportMemoryFdInfoKHR *>( this );
  33281. }
  33282. #if defined( VULKAN_HPP_USE_REFLECT )
  33283. # if 14 <= VULKAN_HPP_CPP_VERSION
  33284. auto
  33285. # else
  33286. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits const &, int const &>
  33287. # endif
  33288. reflect() const VULKAN_HPP_NOEXCEPT
  33289. {
  33290. return std::tie( sType, pNext, handleType, fd );
  33291. }
  33292. #endif
  33293. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  33294. auto operator<=>( ImportMemoryFdInfoKHR const & ) const = default;
  33295. #else
  33296. bool operator==( ImportMemoryFdInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  33297. {
  33298. # if defined( VULKAN_HPP_USE_REFLECT )
  33299. return this->reflect() == rhs.reflect();
  33300. # else
  33301. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( handleType == rhs.handleType ) && ( fd == rhs.fd );
  33302. # endif
  33303. }
  33304. bool operator!=( ImportMemoryFdInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  33305. {
  33306. return !operator==( rhs );
  33307. }
  33308. #endif
  33309. public:
  33310. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImportMemoryFdInfoKHR;
  33311. const void * pNext = {};
  33312. VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType = VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits::eOpaqueFd;
  33313. int fd = {};
  33314. };
  33315. template <>
  33316. struct CppType<StructureType, StructureType::eImportMemoryFdInfoKHR>
  33317. {
  33318. using Type = ImportMemoryFdInfoKHR;
  33319. };
  33320. struct ImportMemoryHostPointerInfoEXT
  33321. {
  33322. using NativeType = VkImportMemoryHostPointerInfoEXT;
  33323. static const bool allowDuplicate = false;
  33324. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eImportMemoryHostPointerInfoEXT;
  33325. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  33326. VULKAN_HPP_CONSTEXPR ImportMemoryHostPointerInfoEXT(
  33327. VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType_ = VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits::eOpaqueFd,
  33328. void * pHostPointer_ = {},
  33329. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  33330. : pNext( pNext_ )
  33331. , handleType( handleType_ )
  33332. , pHostPointer( pHostPointer_ )
  33333. {
  33334. }
  33335. VULKAN_HPP_CONSTEXPR ImportMemoryHostPointerInfoEXT( ImportMemoryHostPointerInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  33336. ImportMemoryHostPointerInfoEXT( VkImportMemoryHostPointerInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  33337. : ImportMemoryHostPointerInfoEXT( *reinterpret_cast<ImportMemoryHostPointerInfoEXT const *>( &rhs ) )
  33338. {
  33339. }
  33340. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  33341. ImportMemoryHostPointerInfoEXT & operator=( ImportMemoryHostPointerInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  33342. ImportMemoryHostPointerInfoEXT & operator=( VkImportMemoryHostPointerInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  33343. {
  33344. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ImportMemoryHostPointerInfoEXT const *>( &rhs );
  33345. return *this;
  33346. }
  33347. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  33348. VULKAN_HPP_CONSTEXPR_14 ImportMemoryHostPointerInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  33349. {
  33350. pNext = pNext_;
  33351. return *this;
  33352. }
  33353. VULKAN_HPP_CONSTEXPR_14 ImportMemoryHostPointerInfoEXT &
  33354. setHandleType( VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType_ ) VULKAN_HPP_NOEXCEPT
  33355. {
  33356. handleType = handleType_;
  33357. return *this;
  33358. }
  33359. VULKAN_HPP_CONSTEXPR_14 ImportMemoryHostPointerInfoEXT & setPHostPointer( void * pHostPointer_ ) VULKAN_HPP_NOEXCEPT
  33360. {
  33361. pHostPointer = pHostPointer_;
  33362. return *this;
  33363. }
  33364. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  33365. operator VkImportMemoryHostPointerInfoEXT const &() const VULKAN_HPP_NOEXCEPT
  33366. {
  33367. return *reinterpret_cast<const VkImportMemoryHostPointerInfoEXT *>( this );
  33368. }
  33369. operator VkImportMemoryHostPointerInfoEXT &() VULKAN_HPP_NOEXCEPT
  33370. {
  33371. return *reinterpret_cast<VkImportMemoryHostPointerInfoEXT *>( this );
  33372. }
  33373. #if defined( VULKAN_HPP_USE_REFLECT )
  33374. # if 14 <= VULKAN_HPP_CPP_VERSION
  33375. auto
  33376. # else
  33377. std::
  33378. tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits const &, void * const &>
  33379. # endif
  33380. reflect() const VULKAN_HPP_NOEXCEPT
  33381. {
  33382. return std::tie( sType, pNext, handleType, pHostPointer );
  33383. }
  33384. #endif
  33385. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  33386. auto operator<=>( ImportMemoryHostPointerInfoEXT const & ) const = default;
  33387. #else
  33388. bool operator==( ImportMemoryHostPointerInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  33389. {
  33390. # if defined( VULKAN_HPP_USE_REFLECT )
  33391. return this->reflect() == rhs.reflect();
  33392. # else
  33393. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( handleType == rhs.handleType ) && ( pHostPointer == rhs.pHostPointer );
  33394. # endif
  33395. }
  33396. bool operator!=( ImportMemoryHostPointerInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  33397. {
  33398. return !operator==( rhs );
  33399. }
  33400. #endif
  33401. public:
  33402. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImportMemoryHostPointerInfoEXT;
  33403. const void * pNext = {};
  33404. VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType = VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits::eOpaqueFd;
  33405. void * pHostPointer = {};
  33406. };
  33407. template <>
  33408. struct CppType<StructureType, StructureType::eImportMemoryHostPointerInfoEXT>
  33409. {
  33410. using Type = ImportMemoryHostPointerInfoEXT;
  33411. };
  33412. #if defined( VK_USE_PLATFORM_WIN32_KHR )
  33413. struct ImportMemoryWin32HandleInfoKHR
  33414. {
  33415. using NativeType = VkImportMemoryWin32HandleInfoKHR;
  33416. static const bool allowDuplicate = false;
  33417. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eImportMemoryWin32HandleInfoKHR;
  33418. # if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  33419. VULKAN_HPP_CONSTEXPR ImportMemoryWin32HandleInfoKHR(
  33420. VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType_ = VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits::eOpaqueFd,
  33421. HANDLE handle_ = {},
  33422. LPCWSTR name_ = {},
  33423. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  33424. : pNext( pNext_ )
  33425. , handleType( handleType_ )
  33426. , handle( handle_ )
  33427. , name( name_ )
  33428. {
  33429. }
  33430. VULKAN_HPP_CONSTEXPR ImportMemoryWin32HandleInfoKHR( ImportMemoryWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  33431. ImportMemoryWin32HandleInfoKHR( VkImportMemoryWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  33432. : ImportMemoryWin32HandleInfoKHR( *reinterpret_cast<ImportMemoryWin32HandleInfoKHR const *>( &rhs ) )
  33433. {
  33434. }
  33435. # endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  33436. ImportMemoryWin32HandleInfoKHR & operator=( ImportMemoryWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  33437. ImportMemoryWin32HandleInfoKHR & operator=( VkImportMemoryWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  33438. {
  33439. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ImportMemoryWin32HandleInfoKHR const *>( &rhs );
  33440. return *this;
  33441. }
  33442. # if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  33443. VULKAN_HPP_CONSTEXPR_14 ImportMemoryWin32HandleInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  33444. {
  33445. pNext = pNext_;
  33446. return *this;
  33447. }
  33448. VULKAN_HPP_CONSTEXPR_14 ImportMemoryWin32HandleInfoKHR &
  33449. setHandleType( VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType_ ) VULKAN_HPP_NOEXCEPT
  33450. {
  33451. handleType = handleType_;
  33452. return *this;
  33453. }
  33454. VULKAN_HPP_CONSTEXPR_14 ImportMemoryWin32HandleInfoKHR & setHandle( HANDLE handle_ ) VULKAN_HPP_NOEXCEPT
  33455. {
  33456. handle = handle_;
  33457. return *this;
  33458. }
  33459. VULKAN_HPP_CONSTEXPR_14 ImportMemoryWin32HandleInfoKHR & setName( LPCWSTR name_ ) VULKAN_HPP_NOEXCEPT
  33460. {
  33461. name = name_;
  33462. return *this;
  33463. }
  33464. # endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  33465. operator VkImportMemoryWin32HandleInfoKHR const &() const VULKAN_HPP_NOEXCEPT
  33466. {
  33467. return *reinterpret_cast<const VkImportMemoryWin32HandleInfoKHR *>( this );
  33468. }
  33469. operator VkImportMemoryWin32HandleInfoKHR &() VULKAN_HPP_NOEXCEPT
  33470. {
  33471. return *reinterpret_cast<VkImportMemoryWin32HandleInfoKHR *>( this );
  33472. }
  33473. # if defined( VULKAN_HPP_USE_REFLECT )
  33474. # if 14 <= VULKAN_HPP_CPP_VERSION
  33475. auto
  33476. # else
  33477. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  33478. const void * const &,
  33479. VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits const &,
  33480. HANDLE const &,
  33481. LPCWSTR const &>
  33482. # endif
  33483. reflect() const VULKAN_HPP_NOEXCEPT
  33484. {
  33485. return std::tie( sType, pNext, handleType, handle, name );
  33486. }
  33487. # endif
  33488. # if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  33489. auto operator<=>( ImportMemoryWin32HandleInfoKHR const & ) const = default;
  33490. # else
  33491. bool operator==( ImportMemoryWin32HandleInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  33492. {
  33493. # if defined( VULKAN_HPP_USE_REFLECT )
  33494. return this->reflect() == rhs.reflect();
  33495. # else
  33496. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( handleType == rhs.handleType ) && ( handle == rhs.handle ) && ( name == rhs.name );
  33497. # endif
  33498. }
  33499. bool operator!=( ImportMemoryWin32HandleInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  33500. {
  33501. return !operator==( rhs );
  33502. }
  33503. # endif
  33504. public:
  33505. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImportMemoryWin32HandleInfoKHR;
  33506. const void * pNext = {};
  33507. VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType = VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits::eOpaqueFd;
  33508. HANDLE handle = {};
  33509. LPCWSTR name = {};
  33510. };
  33511. template <>
  33512. struct CppType<StructureType, StructureType::eImportMemoryWin32HandleInfoKHR>
  33513. {
  33514. using Type = ImportMemoryWin32HandleInfoKHR;
  33515. };
  33516. #endif /*VK_USE_PLATFORM_WIN32_KHR*/
  33517. #if defined( VK_USE_PLATFORM_WIN32_KHR )
  33518. struct ImportMemoryWin32HandleInfoNV
  33519. {
  33520. using NativeType = VkImportMemoryWin32HandleInfoNV;
  33521. static const bool allowDuplicate = false;
  33522. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eImportMemoryWin32HandleInfoNV;
  33523. # if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  33524. VULKAN_HPP_CONSTEXPR ImportMemoryWin32HandleInfoNV( VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagsNV handleType_ = {},
  33525. HANDLE handle_ = {},
  33526. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  33527. : pNext( pNext_ )
  33528. , handleType( handleType_ )
  33529. , handle( handle_ )
  33530. {
  33531. }
  33532. VULKAN_HPP_CONSTEXPR ImportMemoryWin32HandleInfoNV( ImportMemoryWin32HandleInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  33533. ImportMemoryWin32HandleInfoNV( VkImportMemoryWin32HandleInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
  33534. : ImportMemoryWin32HandleInfoNV( *reinterpret_cast<ImportMemoryWin32HandleInfoNV const *>( &rhs ) )
  33535. {
  33536. }
  33537. # endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  33538. ImportMemoryWin32HandleInfoNV & operator=( ImportMemoryWin32HandleInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  33539. ImportMemoryWin32HandleInfoNV & operator=( VkImportMemoryWin32HandleInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
  33540. {
  33541. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ImportMemoryWin32HandleInfoNV const *>( &rhs );
  33542. return *this;
  33543. }
  33544. # if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  33545. VULKAN_HPP_CONSTEXPR_14 ImportMemoryWin32HandleInfoNV & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  33546. {
  33547. pNext = pNext_;
  33548. return *this;
  33549. }
  33550. VULKAN_HPP_CONSTEXPR_14 ImportMemoryWin32HandleInfoNV &
  33551. setHandleType( VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagsNV handleType_ ) VULKAN_HPP_NOEXCEPT
  33552. {
  33553. handleType = handleType_;
  33554. return *this;
  33555. }
  33556. VULKAN_HPP_CONSTEXPR_14 ImportMemoryWin32HandleInfoNV & setHandle( HANDLE handle_ ) VULKAN_HPP_NOEXCEPT
  33557. {
  33558. handle = handle_;
  33559. return *this;
  33560. }
  33561. # endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  33562. operator VkImportMemoryWin32HandleInfoNV const &() const VULKAN_HPP_NOEXCEPT
  33563. {
  33564. return *reinterpret_cast<const VkImportMemoryWin32HandleInfoNV *>( this );
  33565. }
  33566. operator VkImportMemoryWin32HandleInfoNV &() VULKAN_HPP_NOEXCEPT
  33567. {
  33568. return *reinterpret_cast<VkImportMemoryWin32HandleInfoNV *>( this );
  33569. }
  33570. # if defined( VULKAN_HPP_USE_REFLECT )
  33571. # if 14 <= VULKAN_HPP_CPP_VERSION
  33572. auto
  33573. # else
  33574. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagsNV const &, HANDLE const &>
  33575. # endif
  33576. reflect() const VULKAN_HPP_NOEXCEPT
  33577. {
  33578. return std::tie( sType, pNext, handleType, handle );
  33579. }
  33580. # endif
  33581. # if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  33582. auto operator<=>( ImportMemoryWin32HandleInfoNV const & ) const = default;
  33583. # else
  33584. bool operator==( ImportMemoryWin32HandleInfoNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  33585. {
  33586. # if defined( VULKAN_HPP_USE_REFLECT )
  33587. return this->reflect() == rhs.reflect();
  33588. # else
  33589. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( handleType == rhs.handleType ) && ( handle == rhs.handle );
  33590. # endif
  33591. }
  33592. bool operator!=( ImportMemoryWin32HandleInfoNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  33593. {
  33594. return !operator==( rhs );
  33595. }
  33596. # endif
  33597. public:
  33598. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImportMemoryWin32HandleInfoNV;
  33599. const void * pNext = {};
  33600. VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagsNV handleType = {};
  33601. HANDLE handle = {};
  33602. };
  33603. template <>
  33604. struct CppType<StructureType, StructureType::eImportMemoryWin32HandleInfoNV>
  33605. {
  33606. using Type = ImportMemoryWin32HandleInfoNV;
  33607. };
  33608. #endif /*VK_USE_PLATFORM_WIN32_KHR*/
  33609. #if defined( VK_USE_PLATFORM_FUCHSIA )
  33610. struct ImportMemoryZirconHandleInfoFUCHSIA
  33611. {
  33612. using NativeType = VkImportMemoryZirconHandleInfoFUCHSIA;
  33613. static const bool allowDuplicate = false;
  33614. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eImportMemoryZirconHandleInfoFUCHSIA;
  33615. # if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  33616. VULKAN_HPP_CONSTEXPR ImportMemoryZirconHandleInfoFUCHSIA(
  33617. VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType_ = VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits::eOpaqueFd,
  33618. zx_handle_t handle_ = {},
  33619. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  33620. : pNext( pNext_ )
  33621. , handleType( handleType_ )
  33622. , handle( handle_ )
  33623. {
  33624. }
  33625. VULKAN_HPP_CONSTEXPR ImportMemoryZirconHandleInfoFUCHSIA( ImportMemoryZirconHandleInfoFUCHSIA const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  33626. ImportMemoryZirconHandleInfoFUCHSIA( VkImportMemoryZirconHandleInfoFUCHSIA const & rhs ) VULKAN_HPP_NOEXCEPT
  33627. : ImportMemoryZirconHandleInfoFUCHSIA( *reinterpret_cast<ImportMemoryZirconHandleInfoFUCHSIA const *>( &rhs ) )
  33628. {
  33629. }
  33630. # endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  33631. ImportMemoryZirconHandleInfoFUCHSIA & operator=( ImportMemoryZirconHandleInfoFUCHSIA const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  33632. ImportMemoryZirconHandleInfoFUCHSIA & operator=( VkImportMemoryZirconHandleInfoFUCHSIA const & rhs ) VULKAN_HPP_NOEXCEPT
  33633. {
  33634. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ImportMemoryZirconHandleInfoFUCHSIA const *>( &rhs );
  33635. return *this;
  33636. }
  33637. # if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  33638. VULKAN_HPP_CONSTEXPR_14 ImportMemoryZirconHandleInfoFUCHSIA & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  33639. {
  33640. pNext = pNext_;
  33641. return *this;
  33642. }
  33643. VULKAN_HPP_CONSTEXPR_14 ImportMemoryZirconHandleInfoFUCHSIA &
  33644. setHandleType( VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType_ ) VULKAN_HPP_NOEXCEPT
  33645. {
  33646. handleType = handleType_;
  33647. return *this;
  33648. }
  33649. VULKAN_HPP_CONSTEXPR_14 ImportMemoryZirconHandleInfoFUCHSIA & setHandle( zx_handle_t handle_ ) VULKAN_HPP_NOEXCEPT
  33650. {
  33651. handle = handle_;
  33652. return *this;
  33653. }
  33654. # endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  33655. operator VkImportMemoryZirconHandleInfoFUCHSIA const &() const VULKAN_HPP_NOEXCEPT
  33656. {
  33657. return *reinterpret_cast<const VkImportMemoryZirconHandleInfoFUCHSIA *>( this );
  33658. }
  33659. operator VkImportMemoryZirconHandleInfoFUCHSIA &() VULKAN_HPP_NOEXCEPT
  33660. {
  33661. return *reinterpret_cast<VkImportMemoryZirconHandleInfoFUCHSIA *>( this );
  33662. }
  33663. # if defined( VULKAN_HPP_USE_REFLECT )
  33664. # if 14 <= VULKAN_HPP_CPP_VERSION
  33665. auto
  33666. # else
  33667. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  33668. const void * const &,
  33669. VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits const &,
  33670. zx_handle_t const &>
  33671. # endif
  33672. reflect() const VULKAN_HPP_NOEXCEPT
  33673. {
  33674. return std::tie( sType, pNext, handleType, handle );
  33675. }
  33676. # endif
  33677. # if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  33678. std::strong_ordering operator<=>( ImportMemoryZirconHandleInfoFUCHSIA const & rhs ) const VULKAN_HPP_NOEXCEPT
  33679. {
  33680. if ( auto cmp = sType <=> rhs.sType; cmp != 0 )
  33681. return cmp;
  33682. if ( auto cmp = pNext <=> rhs.pNext; cmp != 0 )
  33683. return cmp;
  33684. if ( auto cmp = handleType <=> rhs.handleType; cmp != 0 )
  33685. return cmp;
  33686. if ( auto cmp = memcmp( &handle, &rhs.handle, sizeof( zx_handle_t ) ); cmp != 0 )
  33687. return ( cmp < 0 ) ? std::strong_ordering::less : std::strong_ordering::greater;
  33688. return std::strong_ordering::equivalent;
  33689. }
  33690. # endif
  33691. bool operator==( ImportMemoryZirconHandleInfoFUCHSIA const & rhs ) const VULKAN_HPP_NOEXCEPT
  33692. {
  33693. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( handleType == rhs.handleType ) &&
  33694. ( memcmp( &handle, &rhs.handle, sizeof( zx_handle_t ) ) == 0 );
  33695. }
  33696. bool operator!=( ImportMemoryZirconHandleInfoFUCHSIA const & rhs ) const VULKAN_HPP_NOEXCEPT
  33697. {
  33698. return !operator==( rhs );
  33699. }
  33700. public:
  33701. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImportMemoryZirconHandleInfoFUCHSIA;
  33702. const void * pNext = {};
  33703. VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType = VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits::eOpaqueFd;
  33704. zx_handle_t handle = {};
  33705. };
  33706. template <>
  33707. struct CppType<StructureType, StructureType::eImportMemoryZirconHandleInfoFUCHSIA>
  33708. {
  33709. using Type = ImportMemoryZirconHandleInfoFUCHSIA;
  33710. };
  33711. #endif /*VK_USE_PLATFORM_FUCHSIA*/
  33712. #if defined( VK_USE_PLATFORM_METAL_EXT )
  33713. struct ImportMetalBufferInfoEXT
  33714. {
  33715. using NativeType = VkImportMetalBufferInfoEXT;
  33716. static const bool allowDuplicate = false;
  33717. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eImportMetalBufferInfoEXT;
  33718. # if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  33719. VULKAN_HPP_CONSTEXPR ImportMetalBufferInfoEXT( MTLBuffer_id mtlBuffer_ = {}, const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  33720. : pNext( pNext_ )
  33721. , mtlBuffer( mtlBuffer_ )
  33722. {
  33723. }
  33724. VULKAN_HPP_CONSTEXPR ImportMetalBufferInfoEXT( ImportMetalBufferInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  33725. ImportMetalBufferInfoEXT( VkImportMetalBufferInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  33726. : ImportMetalBufferInfoEXT( *reinterpret_cast<ImportMetalBufferInfoEXT const *>( &rhs ) )
  33727. {
  33728. }
  33729. # endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  33730. ImportMetalBufferInfoEXT & operator=( ImportMetalBufferInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  33731. ImportMetalBufferInfoEXT & operator=( VkImportMetalBufferInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  33732. {
  33733. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ImportMetalBufferInfoEXT const *>( &rhs );
  33734. return *this;
  33735. }
  33736. # if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  33737. VULKAN_HPP_CONSTEXPR_14 ImportMetalBufferInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  33738. {
  33739. pNext = pNext_;
  33740. return *this;
  33741. }
  33742. VULKAN_HPP_CONSTEXPR_14 ImportMetalBufferInfoEXT & setMtlBuffer( MTLBuffer_id mtlBuffer_ ) VULKAN_HPP_NOEXCEPT
  33743. {
  33744. mtlBuffer = mtlBuffer_;
  33745. return *this;
  33746. }
  33747. # endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  33748. operator VkImportMetalBufferInfoEXT const &() const VULKAN_HPP_NOEXCEPT
  33749. {
  33750. return *reinterpret_cast<const VkImportMetalBufferInfoEXT *>( this );
  33751. }
  33752. operator VkImportMetalBufferInfoEXT &() VULKAN_HPP_NOEXCEPT
  33753. {
  33754. return *reinterpret_cast<VkImportMetalBufferInfoEXT *>( this );
  33755. }
  33756. # if defined( VULKAN_HPP_USE_REFLECT )
  33757. # if 14 <= VULKAN_HPP_CPP_VERSION
  33758. auto
  33759. # else
  33760. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, MTLBuffer_id const &>
  33761. # endif
  33762. reflect() const VULKAN_HPP_NOEXCEPT
  33763. {
  33764. return std::tie( sType, pNext, mtlBuffer );
  33765. }
  33766. # endif
  33767. # if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  33768. auto operator<=>( ImportMetalBufferInfoEXT const & ) const = default;
  33769. # else
  33770. bool operator==( ImportMetalBufferInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  33771. {
  33772. # if defined( VULKAN_HPP_USE_REFLECT )
  33773. return this->reflect() == rhs.reflect();
  33774. # else
  33775. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( mtlBuffer == rhs.mtlBuffer );
  33776. # endif
  33777. }
  33778. bool operator!=( ImportMetalBufferInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  33779. {
  33780. return !operator==( rhs );
  33781. }
  33782. # endif
  33783. public:
  33784. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImportMetalBufferInfoEXT;
  33785. const void * pNext = {};
  33786. MTLBuffer_id mtlBuffer = {};
  33787. };
  33788. template <>
  33789. struct CppType<StructureType, StructureType::eImportMetalBufferInfoEXT>
  33790. {
  33791. using Type = ImportMetalBufferInfoEXT;
  33792. };
  33793. #endif /*VK_USE_PLATFORM_METAL_EXT*/
  33794. #if defined( VK_USE_PLATFORM_METAL_EXT )
  33795. struct ImportMetalIOSurfaceInfoEXT
  33796. {
  33797. using NativeType = VkImportMetalIOSurfaceInfoEXT;
  33798. static const bool allowDuplicate = false;
  33799. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eImportMetalIoSurfaceInfoEXT;
  33800. # if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  33801. VULKAN_HPP_CONSTEXPR ImportMetalIOSurfaceInfoEXT( IOSurfaceRef ioSurface_ = {}, const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  33802. : pNext( pNext_ )
  33803. , ioSurface( ioSurface_ )
  33804. {
  33805. }
  33806. VULKAN_HPP_CONSTEXPR ImportMetalIOSurfaceInfoEXT( ImportMetalIOSurfaceInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  33807. ImportMetalIOSurfaceInfoEXT( VkImportMetalIOSurfaceInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  33808. : ImportMetalIOSurfaceInfoEXT( *reinterpret_cast<ImportMetalIOSurfaceInfoEXT const *>( &rhs ) )
  33809. {
  33810. }
  33811. # endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  33812. ImportMetalIOSurfaceInfoEXT & operator=( ImportMetalIOSurfaceInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  33813. ImportMetalIOSurfaceInfoEXT & operator=( VkImportMetalIOSurfaceInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  33814. {
  33815. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ImportMetalIOSurfaceInfoEXT const *>( &rhs );
  33816. return *this;
  33817. }
  33818. # if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  33819. VULKAN_HPP_CONSTEXPR_14 ImportMetalIOSurfaceInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  33820. {
  33821. pNext = pNext_;
  33822. return *this;
  33823. }
  33824. VULKAN_HPP_CONSTEXPR_14 ImportMetalIOSurfaceInfoEXT & setIoSurface( IOSurfaceRef ioSurface_ ) VULKAN_HPP_NOEXCEPT
  33825. {
  33826. ioSurface = ioSurface_;
  33827. return *this;
  33828. }
  33829. # endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  33830. operator VkImportMetalIOSurfaceInfoEXT const &() const VULKAN_HPP_NOEXCEPT
  33831. {
  33832. return *reinterpret_cast<const VkImportMetalIOSurfaceInfoEXT *>( this );
  33833. }
  33834. operator VkImportMetalIOSurfaceInfoEXT &() VULKAN_HPP_NOEXCEPT
  33835. {
  33836. return *reinterpret_cast<VkImportMetalIOSurfaceInfoEXT *>( this );
  33837. }
  33838. # if defined( VULKAN_HPP_USE_REFLECT )
  33839. # if 14 <= VULKAN_HPP_CPP_VERSION
  33840. auto
  33841. # else
  33842. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, IOSurfaceRef const &>
  33843. # endif
  33844. reflect() const VULKAN_HPP_NOEXCEPT
  33845. {
  33846. return std::tie( sType, pNext, ioSurface );
  33847. }
  33848. # endif
  33849. # if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  33850. auto operator<=>( ImportMetalIOSurfaceInfoEXT const & ) const = default;
  33851. # else
  33852. bool operator==( ImportMetalIOSurfaceInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  33853. {
  33854. # if defined( VULKAN_HPP_USE_REFLECT )
  33855. return this->reflect() == rhs.reflect();
  33856. # else
  33857. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( ioSurface == rhs.ioSurface );
  33858. # endif
  33859. }
  33860. bool operator!=( ImportMetalIOSurfaceInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  33861. {
  33862. return !operator==( rhs );
  33863. }
  33864. # endif
  33865. public:
  33866. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImportMetalIoSurfaceInfoEXT;
  33867. const void * pNext = {};
  33868. IOSurfaceRef ioSurface = {};
  33869. };
  33870. template <>
  33871. struct CppType<StructureType, StructureType::eImportMetalIoSurfaceInfoEXT>
  33872. {
  33873. using Type = ImportMetalIOSurfaceInfoEXT;
  33874. };
  33875. #endif /*VK_USE_PLATFORM_METAL_EXT*/
  33876. #if defined( VK_USE_PLATFORM_METAL_EXT )
  33877. struct ImportMetalSharedEventInfoEXT
  33878. {
  33879. using NativeType = VkImportMetalSharedEventInfoEXT;
  33880. static const bool allowDuplicate = false;
  33881. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eImportMetalSharedEventInfoEXT;
  33882. # if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  33883. VULKAN_HPP_CONSTEXPR ImportMetalSharedEventInfoEXT( MTLSharedEvent_id mtlSharedEvent_ = {}, const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  33884. : pNext( pNext_ )
  33885. , mtlSharedEvent( mtlSharedEvent_ )
  33886. {
  33887. }
  33888. VULKAN_HPP_CONSTEXPR ImportMetalSharedEventInfoEXT( ImportMetalSharedEventInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  33889. ImportMetalSharedEventInfoEXT( VkImportMetalSharedEventInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  33890. : ImportMetalSharedEventInfoEXT( *reinterpret_cast<ImportMetalSharedEventInfoEXT const *>( &rhs ) )
  33891. {
  33892. }
  33893. # endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  33894. ImportMetalSharedEventInfoEXT & operator=( ImportMetalSharedEventInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  33895. ImportMetalSharedEventInfoEXT & operator=( VkImportMetalSharedEventInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  33896. {
  33897. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ImportMetalSharedEventInfoEXT const *>( &rhs );
  33898. return *this;
  33899. }
  33900. # if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  33901. VULKAN_HPP_CONSTEXPR_14 ImportMetalSharedEventInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  33902. {
  33903. pNext = pNext_;
  33904. return *this;
  33905. }
  33906. VULKAN_HPP_CONSTEXPR_14 ImportMetalSharedEventInfoEXT & setMtlSharedEvent( MTLSharedEvent_id mtlSharedEvent_ ) VULKAN_HPP_NOEXCEPT
  33907. {
  33908. mtlSharedEvent = mtlSharedEvent_;
  33909. return *this;
  33910. }
  33911. # endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  33912. operator VkImportMetalSharedEventInfoEXT const &() const VULKAN_HPP_NOEXCEPT
  33913. {
  33914. return *reinterpret_cast<const VkImportMetalSharedEventInfoEXT *>( this );
  33915. }
  33916. operator VkImportMetalSharedEventInfoEXT &() VULKAN_HPP_NOEXCEPT
  33917. {
  33918. return *reinterpret_cast<VkImportMetalSharedEventInfoEXT *>( this );
  33919. }
  33920. # if defined( VULKAN_HPP_USE_REFLECT )
  33921. # if 14 <= VULKAN_HPP_CPP_VERSION
  33922. auto
  33923. # else
  33924. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, MTLSharedEvent_id const &>
  33925. # endif
  33926. reflect() const VULKAN_HPP_NOEXCEPT
  33927. {
  33928. return std::tie( sType, pNext, mtlSharedEvent );
  33929. }
  33930. # endif
  33931. # if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  33932. auto operator<=>( ImportMetalSharedEventInfoEXT const & ) const = default;
  33933. # else
  33934. bool operator==( ImportMetalSharedEventInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  33935. {
  33936. # if defined( VULKAN_HPP_USE_REFLECT )
  33937. return this->reflect() == rhs.reflect();
  33938. # else
  33939. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( mtlSharedEvent == rhs.mtlSharedEvent );
  33940. # endif
  33941. }
  33942. bool operator!=( ImportMetalSharedEventInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  33943. {
  33944. return !operator==( rhs );
  33945. }
  33946. # endif
  33947. public:
  33948. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImportMetalSharedEventInfoEXT;
  33949. const void * pNext = {};
  33950. MTLSharedEvent_id mtlSharedEvent = {};
  33951. };
  33952. template <>
  33953. struct CppType<StructureType, StructureType::eImportMetalSharedEventInfoEXT>
  33954. {
  33955. using Type = ImportMetalSharedEventInfoEXT;
  33956. };
  33957. #endif /*VK_USE_PLATFORM_METAL_EXT*/
  33958. #if defined( VK_USE_PLATFORM_METAL_EXT )
  33959. struct ImportMetalTextureInfoEXT
  33960. {
  33961. using NativeType = VkImportMetalTextureInfoEXT;
  33962. static const bool allowDuplicate = true;
  33963. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eImportMetalTextureInfoEXT;
  33964. # if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  33965. VULKAN_HPP_CONSTEXPR ImportMetalTextureInfoEXT( VULKAN_HPP_NAMESPACE::ImageAspectFlagBits plane_ = VULKAN_HPP_NAMESPACE::ImageAspectFlagBits::eColor,
  33966. MTLTexture_id mtlTexture_ = {},
  33967. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  33968. : pNext( pNext_ )
  33969. , plane( plane_ )
  33970. , mtlTexture( mtlTexture_ )
  33971. {
  33972. }
  33973. VULKAN_HPP_CONSTEXPR ImportMetalTextureInfoEXT( ImportMetalTextureInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  33974. ImportMetalTextureInfoEXT( VkImportMetalTextureInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  33975. : ImportMetalTextureInfoEXT( *reinterpret_cast<ImportMetalTextureInfoEXT const *>( &rhs ) )
  33976. {
  33977. }
  33978. # endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  33979. ImportMetalTextureInfoEXT & operator=( ImportMetalTextureInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  33980. ImportMetalTextureInfoEXT & operator=( VkImportMetalTextureInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  33981. {
  33982. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ImportMetalTextureInfoEXT const *>( &rhs );
  33983. return *this;
  33984. }
  33985. # if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  33986. VULKAN_HPP_CONSTEXPR_14 ImportMetalTextureInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  33987. {
  33988. pNext = pNext_;
  33989. return *this;
  33990. }
  33991. VULKAN_HPP_CONSTEXPR_14 ImportMetalTextureInfoEXT & setPlane( VULKAN_HPP_NAMESPACE::ImageAspectFlagBits plane_ ) VULKAN_HPP_NOEXCEPT
  33992. {
  33993. plane = plane_;
  33994. return *this;
  33995. }
  33996. VULKAN_HPP_CONSTEXPR_14 ImportMetalTextureInfoEXT & setMtlTexture( MTLTexture_id mtlTexture_ ) VULKAN_HPP_NOEXCEPT
  33997. {
  33998. mtlTexture = mtlTexture_;
  33999. return *this;
  34000. }
  34001. # endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  34002. operator VkImportMetalTextureInfoEXT const &() const VULKAN_HPP_NOEXCEPT
  34003. {
  34004. return *reinterpret_cast<const VkImportMetalTextureInfoEXT *>( this );
  34005. }
  34006. operator VkImportMetalTextureInfoEXT &() VULKAN_HPP_NOEXCEPT
  34007. {
  34008. return *reinterpret_cast<VkImportMetalTextureInfoEXT *>( this );
  34009. }
  34010. # if defined( VULKAN_HPP_USE_REFLECT )
  34011. # if 14 <= VULKAN_HPP_CPP_VERSION
  34012. auto
  34013. # else
  34014. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::ImageAspectFlagBits const &, MTLTexture_id const &>
  34015. # endif
  34016. reflect() const VULKAN_HPP_NOEXCEPT
  34017. {
  34018. return std::tie( sType, pNext, plane, mtlTexture );
  34019. }
  34020. # endif
  34021. # if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  34022. auto operator<=>( ImportMetalTextureInfoEXT const & ) const = default;
  34023. # else
  34024. bool operator==( ImportMetalTextureInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  34025. {
  34026. # if defined( VULKAN_HPP_USE_REFLECT )
  34027. return this->reflect() == rhs.reflect();
  34028. # else
  34029. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( plane == rhs.plane ) && ( mtlTexture == rhs.mtlTexture );
  34030. # endif
  34031. }
  34032. bool operator!=( ImportMetalTextureInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  34033. {
  34034. return !operator==( rhs );
  34035. }
  34036. # endif
  34037. public:
  34038. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImportMetalTextureInfoEXT;
  34039. const void * pNext = {};
  34040. VULKAN_HPP_NAMESPACE::ImageAspectFlagBits plane = VULKAN_HPP_NAMESPACE::ImageAspectFlagBits::eColor;
  34041. MTLTexture_id mtlTexture = {};
  34042. };
  34043. template <>
  34044. struct CppType<StructureType, StructureType::eImportMetalTextureInfoEXT>
  34045. {
  34046. using Type = ImportMetalTextureInfoEXT;
  34047. };
  34048. #endif /*VK_USE_PLATFORM_METAL_EXT*/
  34049. struct ImportSemaphoreFdInfoKHR
  34050. {
  34051. using NativeType = VkImportSemaphoreFdInfoKHR;
  34052. static const bool allowDuplicate = false;
  34053. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eImportSemaphoreFdInfoKHR;
  34054. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  34055. VULKAN_HPP_CONSTEXPR ImportSemaphoreFdInfoKHR(
  34056. VULKAN_HPP_NAMESPACE::Semaphore semaphore_ = {},
  34057. VULKAN_HPP_NAMESPACE::SemaphoreImportFlags flags_ = {},
  34058. VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlagBits handleType_ = VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlagBits::eOpaqueFd,
  34059. int fd_ = {},
  34060. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  34061. : pNext( pNext_ )
  34062. , semaphore( semaphore_ )
  34063. , flags( flags_ )
  34064. , handleType( handleType_ )
  34065. , fd( fd_ )
  34066. {
  34067. }
  34068. VULKAN_HPP_CONSTEXPR ImportSemaphoreFdInfoKHR( ImportSemaphoreFdInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  34069. ImportSemaphoreFdInfoKHR( VkImportSemaphoreFdInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  34070. : ImportSemaphoreFdInfoKHR( *reinterpret_cast<ImportSemaphoreFdInfoKHR const *>( &rhs ) )
  34071. {
  34072. }
  34073. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  34074. ImportSemaphoreFdInfoKHR & operator=( ImportSemaphoreFdInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  34075. ImportSemaphoreFdInfoKHR & operator=( VkImportSemaphoreFdInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  34076. {
  34077. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ImportSemaphoreFdInfoKHR const *>( &rhs );
  34078. return *this;
  34079. }
  34080. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  34081. VULKAN_HPP_CONSTEXPR_14 ImportSemaphoreFdInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  34082. {
  34083. pNext = pNext_;
  34084. return *this;
  34085. }
  34086. VULKAN_HPP_CONSTEXPR_14 ImportSemaphoreFdInfoKHR & setSemaphore( VULKAN_HPP_NAMESPACE::Semaphore semaphore_ ) VULKAN_HPP_NOEXCEPT
  34087. {
  34088. semaphore = semaphore_;
  34089. return *this;
  34090. }
  34091. VULKAN_HPP_CONSTEXPR_14 ImportSemaphoreFdInfoKHR & setFlags( VULKAN_HPP_NAMESPACE::SemaphoreImportFlags flags_ ) VULKAN_HPP_NOEXCEPT
  34092. {
  34093. flags = flags_;
  34094. return *this;
  34095. }
  34096. VULKAN_HPP_CONSTEXPR_14 ImportSemaphoreFdInfoKHR &
  34097. setHandleType( VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlagBits handleType_ ) VULKAN_HPP_NOEXCEPT
  34098. {
  34099. handleType = handleType_;
  34100. return *this;
  34101. }
  34102. VULKAN_HPP_CONSTEXPR_14 ImportSemaphoreFdInfoKHR & setFd( int fd_ ) VULKAN_HPP_NOEXCEPT
  34103. {
  34104. fd = fd_;
  34105. return *this;
  34106. }
  34107. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  34108. operator VkImportSemaphoreFdInfoKHR const &() const VULKAN_HPP_NOEXCEPT
  34109. {
  34110. return *reinterpret_cast<const VkImportSemaphoreFdInfoKHR *>( this );
  34111. }
  34112. operator VkImportSemaphoreFdInfoKHR &() VULKAN_HPP_NOEXCEPT
  34113. {
  34114. return *reinterpret_cast<VkImportSemaphoreFdInfoKHR *>( this );
  34115. }
  34116. #if defined( VULKAN_HPP_USE_REFLECT )
  34117. # if 14 <= VULKAN_HPP_CPP_VERSION
  34118. auto
  34119. # else
  34120. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  34121. const void * const &,
  34122. VULKAN_HPP_NAMESPACE::Semaphore const &,
  34123. VULKAN_HPP_NAMESPACE::SemaphoreImportFlags const &,
  34124. VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlagBits const &,
  34125. int const &>
  34126. # endif
  34127. reflect() const VULKAN_HPP_NOEXCEPT
  34128. {
  34129. return std::tie( sType, pNext, semaphore, flags, handleType, fd );
  34130. }
  34131. #endif
  34132. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  34133. auto operator<=>( ImportSemaphoreFdInfoKHR const & ) const = default;
  34134. #else
  34135. bool operator==( ImportSemaphoreFdInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  34136. {
  34137. # if defined( VULKAN_HPP_USE_REFLECT )
  34138. return this->reflect() == rhs.reflect();
  34139. # else
  34140. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( semaphore == rhs.semaphore ) && ( flags == rhs.flags ) && ( handleType == rhs.handleType ) &&
  34141. ( fd == rhs.fd );
  34142. # endif
  34143. }
  34144. bool operator!=( ImportSemaphoreFdInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  34145. {
  34146. return !operator==( rhs );
  34147. }
  34148. #endif
  34149. public:
  34150. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImportSemaphoreFdInfoKHR;
  34151. const void * pNext = {};
  34152. VULKAN_HPP_NAMESPACE::Semaphore semaphore = {};
  34153. VULKAN_HPP_NAMESPACE::SemaphoreImportFlags flags = {};
  34154. VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlagBits handleType = VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlagBits::eOpaqueFd;
  34155. int fd = {};
  34156. };
  34157. template <>
  34158. struct CppType<StructureType, StructureType::eImportSemaphoreFdInfoKHR>
  34159. {
  34160. using Type = ImportSemaphoreFdInfoKHR;
  34161. };
  34162. #if defined( VK_USE_PLATFORM_WIN32_KHR )
  34163. struct ImportSemaphoreWin32HandleInfoKHR
  34164. {
  34165. using NativeType = VkImportSemaphoreWin32HandleInfoKHR;
  34166. static const bool allowDuplicate = false;
  34167. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eImportSemaphoreWin32HandleInfoKHR;
  34168. # if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  34169. VULKAN_HPP_CONSTEXPR ImportSemaphoreWin32HandleInfoKHR(
  34170. VULKAN_HPP_NAMESPACE::Semaphore semaphore_ = {},
  34171. VULKAN_HPP_NAMESPACE::SemaphoreImportFlags flags_ = {},
  34172. VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlagBits handleType_ = VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlagBits::eOpaqueFd,
  34173. HANDLE handle_ = {},
  34174. LPCWSTR name_ = {},
  34175. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  34176. : pNext( pNext_ )
  34177. , semaphore( semaphore_ )
  34178. , flags( flags_ )
  34179. , handleType( handleType_ )
  34180. , handle( handle_ )
  34181. , name( name_ )
  34182. {
  34183. }
  34184. VULKAN_HPP_CONSTEXPR ImportSemaphoreWin32HandleInfoKHR( ImportSemaphoreWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  34185. ImportSemaphoreWin32HandleInfoKHR( VkImportSemaphoreWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  34186. : ImportSemaphoreWin32HandleInfoKHR( *reinterpret_cast<ImportSemaphoreWin32HandleInfoKHR const *>( &rhs ) )
  34187. {
  34188. }
  34189. # endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  34190. ImportSemaphoreWin32HandleInfoKHR & operator=( ImportSemaphoreWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  34191. ImportSemaphoreWin32HandleInfoKHR & operator=( VkImportSemaphoreWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  34192. {
  34193. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ImportSemaphoreWin32HandleInfoKHR const *>( &rhs );
  34194. return *this;
  34195. }
  34196. # if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  34197. VULKAN_HPP_CONSTEXPR_14 ImportSemaphoreWin32HandleInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  34198. {
  34199. pNext = pNext_;
  34200. return *this;
  34201. }
  34202. VULKAN_HPP_CONSTEXPR_14 ImportSemaphoreWin32HandleInfoKHR & setSemaphore( VULKAN_HPP_NAMESPACE::Semaphore semaphore_ ) VULKAN_HPP_NOEXCEPT
  34203. {
  34204. semaphore = semaphore_;
  34205. return *this;
  34206. }
  34207. VULKAN_HPP_CONSTEXPR_14 ImportSemaphoreWin32HandleInfoKHR & setFlags( VULKAN_HPP_NAMESPACE::SemaphoreImportFlags flags_ ) VULKAN_HPP_NOEXCEPT
  34208. {
  34209. flags = flags_;
  34210. return *this;
  34211. }
  34212. VULKAN_HPP_CONSTEXPR_14 ImportSemaphoreWin32HandleInfoKHR &
  34213. setHandleType( VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlagBits handleType_ ) VULKAN_HPP_NOEXCEPT
  34214. {
  34215. handleType = handleType_;
  34216. return *this;
  34217. }
  34218. VULKAN_HPP_CONSTEXPR_14 ImportSemaphoreWin32HandleInfoKHR & setHandle( HANDLE handle_ ) VULKAN_HPP_NOEXCEPT
  34219. {
  34220. handle = handle_;
  34221. return *this;
  34222. }
  34223. VULKAN_HPP_CONSTEXPR_14 ImportSemaphoreWin32HandleInfoKHR & setName( LPCWSTR name_ ) VULKAN_HPP_NOEXCEPT
  34224. {
  34225. name = name_;
  34226. return *this;
  34227. }
  34228. # endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  34229. operator VkImportSemaphoreWin32HandleInfoKHR const &() const VULKAN_HPP_NOEXCEPT
  34230. {
  34231. return *reinterpret_cast<const VkImportSemaphoreWin32HandleInfoKHR *>( this );
  34232. }
  34233. operator VkImportSemaphoreWin32HandleInfoKHR &() VULKAN_HPP_NOEXCEPT
  34234. {
  34235. return *reinterpret_cast<VkImportSemaphoreWin32HandleInfoKHR *>( this );
  34236. }
  34237. # if defined( VULKAN_HPP_USE_REFLECT )
  34238. # if 14 <= VULKAN_HPP_CPP_VERSION
  34239. auto
  34240. # else
  34241. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  34242. const void * const &,
  34243. VULKAN_HPP_NAMESPACE::Semaphore const &,
  34244. VULKAN_HPP_NAMESPACE::SemaphoreImportFlags const &,
  34245. VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlagBits const &,
  34246. HANDLE const &,
  34247. LPCWSTR const &>
  34248. # endif
  34249. reflect() const VULKAN_HPP_NOEXCEPT
  34250. {
  34251. return std::tie( sType, pNext, semaphore, flags, handleType, handle, name );
  34252. }
  34253. # endif
  34254. # if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  34255. auto operator<=>( ImportSemaphoreWin32HandleInfoKHR const & ) const = default;
  34256. # else
  34257. bool operator==( ImportSemaphoreWin32HandleInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  34258. {
  34259. # if defined( VULKAN_HPP_USE_REFLECT )
  34260. return this->reflect() == rhs.reflect();
  34261. # else
  34262. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( semaphore == rhs.semaphore ) && ( flags == rhs.flags ) && ( handleType == rhs.handleType ) &&
  34263. ( handle == rhs.handle ) && ( name == rhs.name );
  34264. # endif
  34265. }
  34266. bool operator!=( ImportSemaphoreWin32HandleInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  34267. {
  34268. return !operator==( rhs );
  34269. }
  34270. # endif
  34271. public:
  34272. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImportSemaphoreWin32HandleInfoKHR;
  34273. const void * pNext = {};
  34274. VULKAN_HPP_NAMESPACE::Semaphore semaphore = {};
  34275. VULKAN_HPP_NAMESPACE::SemaphoreImportFlags flags = {};
  34276. VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlagBits handleType = VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlagBits::eOpaqueFd;
  34277. HANDLE handle = {};
  34278. LPCWSTR name = {};
  34279. };
  34280. template <>
  34281. struct CppType<StructureType, StructureType::eImportSemaphoreWin32HandleInfoKHR>
  34282. {
  34283. using Type = ImportSemaphoreWin32HandleInfoKHR;
  34284. };
  34285. #endif /*VK_USE_PLATFORM_WIN32_KHR*/
  34286. #if defined( VK_USE_PLATFORM_FUCHSIA )
  34287. struct ImportSemaphoreZirconHandleInfoFUCHSIA
  34288. {
  34289. using NativeType = VkImportSemaphoreZirconHandleInfoFUCHSIA;
  34290. static const bool allowDuplicate = false;
  34291. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eImportSemaphoreZirconHandleInfoFUCHSIA;
  34292. # if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  34293. VULKAN_HPP_CONSTEXPR ImportSemaphoreZirconHandleInfoFUCHSIA(
  34294. VULKAN_HPP_NAMESPACE::Semaphore semaphore_ = {},
  34295. VULKAN_HPP_NAMESPACE::SemaphoreImportFlags flags_ = {},
  34296. VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlagBits handleType_ = VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlagBits::eOpaqueFd,
  34297. zx_handle_t zirconHandle_ = {},
  34298. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  34299. : pNext( pNext_ )
  34300. , semaphore( semaphore_ )
  34301. , flags( flags_ )
  34302. , handleType( handleType_ )
  34303. , zirconHandle( zirconHandle_ )
  34304. {
  34305. }
  34306. VULKAN_HPP_CONSTEXPR ImportSemaphoreZirconHandleInfoFUCHSIA( ImportSemaphoreZirconHandleInfoFUCHSIA const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  34307. ImportSemaphoreZirconHandleInfoFUCHSIA( VkImportSemaphoreZirconHandleInfoFUCHSIA const & rhs ) VULKAN_HPP_NOEXCEPT
  34308. : ImportSemaphoreZirconHandleInfoFUCHSIA( *reinterpret_cast<ImportSemaphoreZirconHandleInfoFUCHSIA const *>( &rhs ) )
  34309. {
  34310. }
  34311. # endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  34312. ImportSemaphoreZirconHandleInfoFUCHSIA & operator=( ImportSemaphoreZirconHandleInfoFUCHSIA const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  34313. ImportSemaphoreZirconHandleInfoFUCHSIA & operator=( VkImportSemaphoreZirconHandleInfoFUCHSIA const & rhs ) VULKAN_HPP_NOEXCEPT
  34314. {
  34315. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ImportSemaphoreZirconHandleInfoFUCHSIA const *>( &rhs );
  34316. return *this;
  34317. }
  34318. # if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  34319. VULKAN_HPP_CONSTEXPR_14 ImportSemaphoreZirconHandleInfoFUCHSIA & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  34320. {
  34321. pNext = pNext_;
  34322. return *this;
  34323. }
  34324. VULKAN_HPP_CONSTEXPR_14 ImportSemaphoreZirconHandleInfoFUCHSIA & setSemaphore( VULKAN_HPP_NAMESPACE::Semaphore semaphore_ ) VULKAN_HPP_NOEXCEPT
  34325. {
  34326. semaphore = semaphore_;
  34327. return *this;
  34328. }
  34329. VULKAN_HPP_CONSTEXPR_14 ImportSemaphoreZirconHandleInfoFUCHSIA & setFlags( VULKAN_HPP_NAMESPACE::SemaphoreImportFlags flags_ ) VULKAN_HPP_NOEXCEPT
  34330. {
  34331. flags = flags_;
  34332. return *this;
  34333. }
  34334. VULKAN_HPP_CONSTEXPR_14 ImportSemaphoreZirconHandleInfoFUCHSIA &
  34335. setHandleType( VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlagBits handleType_ ) VULKAN_HPP_NOEXCEPT
  34336. {
  34337. handleType = handleType_;
  34338. return *this;
  34339. }
  34340. VULKAN_HPP_CONSTEXPR_14 ImportSemaphoreZirconHandleInfoFUCHSIA & setZirconHandle( zx_handle_t zirconHandle_ ) VULKAN_HPP_NOEXCEPT
  34341. {
  34342. zirconHandle = zirconHandle_;
  34343. return *this;
  34344. }
  34345. # endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  34346. operator VkImportSemaphoreZirconHandleInfoFUCHSIA const &() const VULKAN_HPP_NOEXCEPT
  34347. {
  34348. return *reinterpret_cast<const VkImportSemaphoreZirconHandleInfoFUCHSIA *>( this );
  34349. }
  34350. operator VkImportSemaphoreZirconHandleInfoFUCHSIA &() VULKAN_HPP_NOEXCEPT
  34351. {
  34352. return *reinterpret_cast<VkImportSemaphoreZirconHandleInfoFUCHSIA *>( this );
  34353. }
  34354. # if defined( VULKAN_HPP_USE_REFLECT )
  34355. # if 14 <= VULKAN_HPP_CPP_VERSION
  34356. auto
  34357. # else
  34358. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  34359. const void * const &,
  34360. VULKAN_HPP_NAMESPACE::Semaphore const &,
  34361. VULKAN_HPP_NAMESPACE::SemaphoreImportFlags const &,
  34362. VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlagBits const &,
  34363. zx_handle_t const &>
  34364. # endif
  34365. reflect() const VULKAN_HPP_NOEXCEPT
  34366. {
  34367. return std::tie( sType, pNext, semaphore, flags, handleType, zirconHandle );
  34368. }
  34369. # endif
  34370. # if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  34371. std::strong_ordering operator<=>( ImportSemaphoreZirconHandleInfoFUCHSIA const & rhs ) const VULKAN_HPP_NOEXCEPT
  34372. {
  34373. if ( auto cmp = sType <=> rhs.sType; cmp != 0 )
  34374. return cmp;
  34375. if ( auto cmp = pNext <=> rhs.pNext; cmp != 0 )
  34376. return cmp;
  34377. if ( auto cmp = semaphore <=> rhs.semaphore; cmp != 0 )
  34378. return cmp;
  34379. if ( auto cmp = flags <=> rhs.flags; cmp != 0 )
  34380. return cmp;
  34381. if ( auto cmp = handleType <=> rhs.handleType; cmp != 0 )
  34382. return cmp;
  34383. if ( auto cmp = memcmp( &zirconHandle, &rhs.zirconHandle, sizeof( zx_handle_t ) ); cmp != 0 )
  34384. return ( cmp < 0 ) ? std::strong_ordering::less : std::strong_ordering::greater;
  34385. return std::strong_ordering::equivalent;
  34386. }
  34387. # endif
  34388. bool operator==( ImportSemaphoreZirconHandleInfoFUCHSIA const & rhs ) const VULKAN_HPP_NOEXCEPT
  34389. {
  34390. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( semaphore == rhs.semaphore ) && ( flags == rhs.flags ) && ( handleType == rhs.handleType ) &&
  34391. ( memcmp( &zirconHandle, &rhs.zirconHandle, sizeof( zx_handle_t ) ) == 0 );
  34392. }
  34393. bool operator!=( ImportSemaphoreZirconHandleInfoFUCHSIA const & rhs ) const VULKAN_HPP_NOEXCEPT
  34394. {
  34395. return !operator==( rhs );
  34396. }
  34397. public:
  34398. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImportSemaphoreZirconHandleInfoFUCHSIA;
  34399. const void * pNext = {};
  34400. VULKAN_HPP_NAMESPACE::Semaphore semaphore = {};
  34401. VULKAN_HPP_NAMESPACE::SemaphoreImportFlags flags = {};
  34402. VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlagBits handleType = VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlagBits::eOpaqueFd;
  34403. zx_handle_t zirconHandle = {};
  34404. };
  34405. template <>
  34406. struct CppType<StructureType, StructureType::eImportSemaphoreZirconHandleInfoFUCHSIA>
  34407. {
  34408. using Type = ImportSemaphoreZirconHandleInfoFUCHSIA;
  34409. };
  34410. #endif /*VK_USE_PLATFORM_FUCHSIA*/
  34411. struct IndirectCommandsLayoutTokenNV
  34412. {
  34413. using NativeType = VkIndirectCommandsLayoutTokenNV;
  34414. static const bool allowDuplicate = false;
  34415. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eIndirectCommandsLayoutTokenNV;
  34416. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  34417. VULKAN_HPP_CONSTEXPR IndirectCommandsLayoutTokenNV(
  34418. VULKAN_HPP_NAMESPACE::IndirectCommandsTokenTypeNV tokenType_ = VULKAN_HPP_NAMESPACE::IndirectCommandsTokenTypeNV::eShaderGroup,
  34419. uint32_t stream_ = {},
  34420. uint32_t offset_ = {},
  34421. uint32_t vertexBindingUnit_ = {},
  34422. VULKAN_HPP_NAMESPACE::Bool32 vertexDynamicStride_ = {},
  34423. VULKAN_HPP_NAMESPACE::PipelineLayout pushconstantPipelineLayout_ = {},
  34424. VULKAN_HPP_NAMESPACE::ShaderStageFlags pushconstantShaderStageFlags_ = {},
  34425. uint32_t pushconstantOffset_ = {},
  34426. uint32_t pushconstantSize_ = {},
  34427. VULKAN_HPP_NAMESPACE::IndirectStateFlagsNV indirectStateFlags_ = {},
  34428. uint32_t indexTypeCount_ = {},
  34429. const VULKAN_HPP_NAMESPACE::IndexType * pIndexTypes_ = {},
  34430. const uint32_t * pIndexTypeValues_ = {},
  34431. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  34432. : pNext( pNext_ )
  34433. , tokenType( tokenType_ )
  34434. , stream( stream_ )
  34435. , offset( offset_ )
  34436. , vertexBindingUnit( vertexBindingUnit_ )
  34437. , vertexDynamicStride( vertexDynamicStride_ )
  34438. , pushconstantPipelineLayout( pushconstantPipelineLayout_ )
  34439. , pushconstantShaderStageFlags( pushconstantShaderStageFlags_ )
  34440. , pushconstantOffset( pushconstantOffset_ )
  34441. , pushconstantSize( pushconstantSize_ )
  34442. , indirectStateFlags( indirectStateFlags_ )
  34443. , indexTypeCount( indexTypeCount_ )
  34444. , pIndexTypes( pIndexTypes_ )
  34445. , pIndexTypeValues( pIndexTypeValues_ )
  34446. {
  34447. }
  34448. VULKAN_HPP_CONSTEXPR IndirectCommandsLayoutTokenNV( IndirectCommandsLayoutTokenNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  34449. IndirectCommandsLayoutTokenNV( VkIndirectCommandsLayoutTokenNV const & rhs ) VULKAN_HPP_NOEXCEPT
  34450. : IndirectCommandsLayoutTokenNV( *reinterpret_cast<IndirectCommandsLayoutTokenNV const *>( &rhs ) )
  34451. {
  34452. }
  34453. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  34454. IndirectCommandsLayoutTokenNV( VULKAN_HPP_NAMESPACE::IndirectCommandsTokenTypeNV tokenType_,
  34455. uint32_t stream_,
  34456. uint32_t offset_,
  34457. uint32_t vertexBindingUnit_,
  34458. VULKAN_HPP_NAMESPACE::Bool32 vertexDynamicStride_,
  34459. VULKAN_HPP_NAMESPACE::PipelineLayout pushconstantPipelineLayout_,
  34460. VULKAN_HPP_NAMESPACE::ShaderStageFlags pushconstantShaderStageFlags_,
  34461. uint32_t pushconstantOffset_,
  34462. uint32_t pushconstantSize_,
  34463. VULKAN_HPP_NAMESPACE::IndirectStateFlagsNV indirectStateFlags_,
  34464. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::IndexType> const & indexTypes_,
  34465. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint32_t> const & indexTypeValues_ = {},
  34466. const void * pNext_ = nullptr )
  34467. : pNext( pNext_ )
  34468. , tokenType( tokenType_ )
  34469. , stream( stream_ )
  34470. , offset( offset_ )
  34471. , vertexBindingUnit( vertexBindingUnit_ )
  34472. , vertexDynamicStride( vertexDynamicStride_ )
  34473. , pushconstantPipelineLayout( pushconstantPipelineLayout_ )
  34474. , pushconstantShaderStageFlags( pushconstantShaderStageFlags_ )
  34475. , pushconstantOffset( pushconstantOffset_ )
  34476. , pushconstantSize( pushconstantSize_ )
  34477. , indirectStateFlags( indirectStateFlags_ )
  34478. , indexTypeCount( static_cast<uint32_t>( indexTypes_.size() ) )
  34479. , pIndexTypes( indexTypes_.data() )
  34480. , pIndexTypeValues( indexTypeValues_.data() )
  34481. {
  34482. # ifdef VULKAN_HPP_NO_EXCEPTIONS
  34483. VULKAN_HPP_ASSERT( indexTypes_.size() == indexTypeValues_.size() );
  34484. # else
  34485. if ( indexTypes_.size() != indexTypeValues_.size() )
  34486. {
  34487. throw LogicError( VULKAN_HPP_NAMESPACE_STRING
  34488. "::IndirectCommandsLayoutTokenNV::IndirectCommandsLayoutTokenNV: indexTypes_.size() != indexTypeValues_.size()" );
  34489. }
  34490. # endif /*VULKAN_HPP_NO_EXCEPTIONS*/
  34491. }
  34492. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  34493. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  34494. IndirectCommandsLayoutTokenNV & operator=( IndirectCommandsLayoutTokenNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  34495. IndirectCommandsLayoutTokenNV & operator=( VkIndirectCommandsLayoutTokenNV const & rhs ) VULKAN_HPP_NOEXCEPT
  34496. {
  34497. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutTokenNV const *>( &rhs );
  34498. return *this;
  34499. }
  34500. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  34501. VULKAN_HPP_CONSTEXPR_14 IndirectCommandsLayoutTokenNV & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  34502. {
  34503. pNext = pNext_;
  34504. return *this;
  34505. }
  34506. VULKAN_HPP_CONSTEXPR_14 IndirectCommandsLayoutTokenNV & setTokenType( VULKAN_HPP_NAMESPACE::IndirectCommandsTokenTypeNV tokenType_ ) VULKAN_HPP_NOEXCEPT
  34507. {
  34508. tokenType = tokenType_;
  34509. return *this;
  34510. }
  34511. VULKAN_HPP_CONSTEXPR_14 IndirectCommandsLayoutTokenNV & setStream( uint32_t stream_ ) VULKAN_HPP_NOEXCEPT
  34512. {
  34513. stream = stream_;
  34514. return *this;
  34515. }
  34516. VULKAN_HPP_CONSTEXPR_14 IndirectCommandsLayoutTokenNV & setOffset( uint32_t offset_ ) VULKAN_HPP_NOEXCEPT
  34517. {
  34518. offset = offset_;
  34519. return *this;
  34520. }
  34521. VULKAN_HPP_CONSTEXPR_14 IndirectCommandsLayoutTokenNV & setVertexBindingUnit( uint32_t vertexBindingUnit_ ) VULKAN_HPP_NOEXCEPT
  34522. {
  34523. vertexBindingUnit = vertexBindingUnit_;
  34524. return *this;
  34525. }
  34526. VULKAN_HPP_CONSTEXPR_14 IndirectCommandsLayoutTokenNV & setVertexDynamicStride( VULKAN_HPP_NAMESPACE::Bool32 vertexDynamicStride_ ) VULKAN_HPP_NOEXCEPT
  34527. {
  34528. vertexDynamicStride = vertexDynamicStride_;
  34529. return *this;
  34530. }
  34531. VULKAN_HPP_CONSTEXPR_14 IndirectCommandsLayoutTokenNV &
  34532. setPushconstantPipelineLayout( VULKAN_HPP_NAMESPACE::PipelineLayout pushconstantPipelineLayout_ ) VULKAN_HPP_NOEXCEPT
  34533. {
  34534. pushconstantPipelineLayout = pushconstantPipelineLayout_;
  34535. return *this;
  34536. }
  34537. VULKAN_HPP_CONSTEXPR_14 IndirectCommandsLayoutTokenNV &
  34538. setPushconstantShaderStageFlags( VULKAN_HPP_NAMESPACE::ShaderStageFlags pushconstantShaderStageFlags_ ) VULKAN_HPP_NOEXCEPT
  34539. {
  34540. pushconstantShaderStageFlags = pushconstantShaderStageFlags_;
  34541. return *this;
  34542. }
  34543. VULKAN_HPP_CONSTEXPR_14 IndirectCommandsLayoutTokenNV & setPushconstantOffset( uint32_t pushconstantOffset_ ) VULKAN_HPP_NOEXCEPT
  34544. {
  34545. pushconstantOffset = pushconstantOffset_;
  34546. return *this;
  34547. }
  34548. VULKAN_HPP_CONSTEXPR_14 IndirectCommandsLayoutTokenNV & setPushconstantSize( uint32_t pushconstantSize_ ) VULKAN_HPP_NOEXCEPT
  34549. {
  34550. pushconstantSize = pushconstantSize_;
  34551. return *this;
  34552. }
  34553. VULKAN_HPP_CONSTEXPR_14 IndirectCommandsLayoutTokenNV &
  34554. setIndirectStateFlags( VULKAN_HPP_NAMESPACE::IndirectStateFlagsNV indirectStateFlags_ ) VULKAN_HPP_NOEXCEPT
  34555. {
  34556. indirectStateFlags = indirectStateFlags_;
  34557. return *this;
  34558. }
  34559. VULKAN_HPP_CONSTEXPR_14 IndirectCommandsLayoutTokenNV & setIndexTypeCount( uint32_t indexTypeCount_ ) VULKAN_HPP_NOEXCEPT
  34560. {
  34561. indexTypeCount = indexTypeCount_;
  34562. return *this;
  34563. }
  34564. VULKAN_HPP_CONSTEXPR_14 IndirectCommandsLayoutTokenNV & setPIndexTypes( const VULKAN_HPP_NAMESPACE::IndexType * pIndexTypes_ ) VULKAN_HPP_NOEXCEPT
  34565. {
  34566. pIndexTypes = pIndexTypes_;
  34567. return *this;
  34568. }
  34569. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  34570. IndirectCommandsLayoutTokenNV &
  34571. setIndexTypes( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::IndexType> const & indexTypes_ ) VULKAN_HPP_NOEXCEPT
  34572. {
  34573. indexTypeCount = static_cast<uint32_t>( indexTypes_.size() );
  34574. pIndexTypes = indexTypes_.data();
  34575. return *this;
  34576. }
  34577. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  34578. VULKAN_HPP_CONSTEXPR_14 IndirectCommandsLayoutTokenNV & setPIndexTypeValues( const uint32_t * pIndexTypeValues_ ) VULKAN_HPP_NOEXCEPT
  34579. {
  34580. pIndexTypeValues = pIndexTypeValues_;
  34581. return *this;
  34582. }
  34583. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  34584. IndirectCommandsLayoutTokenNV &
  34585. setIndexTypeValues( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint32_t> const & indexTypeValues_ ) VULKAN_HPP_NOEXCEPT
  34586. {
  34587. indexTypeCount = static_cast<uint32_t>( indexTypeValues_.size() );
  34588. pIndexTypeValues = indexTypeValues_.data();
  34589. return *this;
  34590. }
  34591. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  34592. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  34593. operator VkIndirectCommandsLayoutTokenNV const &() const VULKAN_HPP_NOEXCEPT
  34594. {
  34595. return *reinterpret_cast<const VkIndirectCommandsLayoutTokenNV *>( this );
  34596. }
  34597. operator VkIndirectCommandsLayoutTokenNV &() VULKAN_HPP_NOEXCEPT
  34598. {
  34599. return *reinterpret_cast<VkIndirectCommandsLayoutTokenNV *>( this );
  34600. }
  34601. #if defined( VULKAN_HPP_USE_REFLECT )
  34602. # if 14 <= VULKAN_HPP_CPP_VERSION
  34603. auto
  34604. # else
  34605. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  34606. const void * const &,
  34607. VULKAN_HPP_NAMESPACE::IndirectCommandsTokenTypeNV const &,
  34608. uint32_t const &,
  34609. uint32_t const &,
  34610. uint32_t const &,
  34611. VULKAN_HPP_NAMESPACE::Bool32 const &,
  34612. VULKAN_HPP_NAMESPACE::PipelineLayout const &,
  34613. VULKAN_HPP_NAMESPACE::ShaderStageFlags const &,
  34614. uint32_t const &,
  34615. uint32_t const &,
  34616. VULKAN_HPP_NAMESPACE::IndirectStateFlagsNV const &,
  34617. uint32_t const &,
  34618. const VULKAN_HPP_NAMESPACE::IndexType * const &,
  34619. const uint32_t * const &>
  34620. # endif
  34621. reflect() const VULKAN_HPP_NOEXCEPT
  34622. {
  34623. return std::tie( sType,
  34624. pNext,
  34625. tokenType,
  34626. stream,
  34627. offset,
  34628. vertexBindingUnit,
  34629. vertexDynamicStride,
  34630. pushconstantPipelineLayout,
  34631. pushconstantShaderStageFlags,
  34632. pushconstantOffset,
  34633. pushconstantSize,
  34634. indirectStateFlags,
  34635. indexTypeCount,
  34636. pIndexTypes,
  34637. pIndexTypeValues );
  34638. }
  34639. #endif
  34640. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  34641. auto operator<=>( IndirectCommandsLayoutTokenNV const & ) const = default;
  34642. #else
  34643. bool operator==( IndirectCommandsLayoutTokenNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  34644. {
  34645. # if defined( VULKAN_HPP_USE_REFLECT )
  34646. return this->reflect() == rhs.reflect();
  34647. # else
  34648. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( tokenType == rhs.tokenType ) && ( stream == rhs.stream ) && ( offset == rhs.offset ) &&
  34649. ( vertexBindingUnit == rhs.vertexBindingUnit ) && ( vertexDynamicStride == rhs.vertexDynamicStride ) &&
  34650. ( pushconstantPipelineLayout == rhs.pushconstantPipelineLayout ) && ( pushconstantShaderStageFlags == rhs.pushconstantShaderStageFlags ) &&
  34651. ( pushconstantOffset == rhs.pushconstantOffset ) && ( pushconstantSize == rhs.pushconstantSize ) &&
  34652. ( indirectStateFlags == rhs.indirectStateFlags ) && ( indexTypeCount == rhs.indexTypeCount ) && ( pIndexTypes == rhs.pIndexTypes ) &&
  34653. ( pIndexTypeValues == rhs.pIndexTypeValues );
  34654. # endif
  34655. }
  34656. bool operator!=( IndirectCommandsLayoutTokenNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  34657. {
  34658. return !operator==( rhs );
  34659. }
  34660. #endif
  34661. public:
  34662. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eIndirectCommandsLayoutTokenNV;
  34663. const void * pNext = {};
  34664. VULKAN_HPP_NAMESPACE::IndirectCommandsTokenTypeNV tokenType = VULKAN_HPP_NAMESPACE::IndirectCommandsTokenTypeNV::eShaderGroup;
  34665. uint32_t stream = {};
  34666. uint32_t offset = {};
  34667. uint32_t vertexBindingUnit = {};
  34668. VULKAN_HPP_NAMESPACE::Bool32 vertexDynamicStride = {};
  34669. VULKAN_HPP_NAMESPACE::PipelineLayout pushconstantPipelineLayout = {};
  34670. VULKAN_HPP_NAMESPACE::ShaderStageFlags pushconstantShaderStageFlags = {};
  34671. uint32_t pushconstantOffset = {};
  34672. uint32_t pushconstantSize = {};
  34673. VULKAN_HPP_NAMESPACE::IndirectStateFlagsNV indirectStateFlags = {};
  34674. uint32_t indexTypeCount = {};
  34675. const VULKAN_HPP_NAMESPACE::IndexType * pIndexTypes = {};
  34676. const uint32_t * pIndexTypeValues = {};
  34677. };
  34678. template <>
  34679. struct CppType<StructureType, StructureType::eIndirectCommandsLayoutTokenNV>
  34680. {
  34681. using Type = IndirectCommandsLayoutTokenNV;
  34682. };
  34683. struct IndirectCommandsLayoutCreateInfoNV
  34684. {
  34685. using NativeType = VkIndirectCommandsLayoutCreateInfoNV;
  34686. static const bool allowDuplicate = false;
  34687. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eIndirectCommandsLayoutCreateInfoNV;
  34688. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  34689. VULKAN_HPP_CONSTEXPR
  34690. IndirectCommandsLayoutCreateInfoNV( VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutUsageFlagsNV flags_ = {},
  34691. VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint_ = VULKAN_HPP_NAMESPACE::PipelineBindPoint::eGraphics,
  34692. uint32_t tokenCount_ = {},
  34693. const VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutTokenNV * pTokens_ = {},
  34694. uint32_t streamCount_ = {},
  34695. const uint32_t * pStreamStrides_ = {},
  34696. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  34697. : pNext( pNext_ )
  34698. , flags( flags_ )
  34699. , pipelineBindPoint( pipelineBindPoint_ )
  34700. , tokenCount( tokenCount_ )
  34701. , pTokens( pTokens_ )
  34702. , streamCount( streamCount_ )
  34703. , pStreamStrides( pStreamStrides_ )
  34704. {
  34705. }
  34706. VULKAN_HPP_CONSTEXPR IndirectCommandsLayoutCreateInfoNV( IndirectCommandsLayoutCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  34707. IndirectCommandsLayoutCreateInfoNV( VkIndirectCommandsLayoutCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
  34708. : IndirectCommandsLayoutCreateInfoNV( *reinterpret_cast<IndirectCommandsLayoutCreateInfoNV const *>( &rhs ) )
  34709. {
  34710. }
  34711. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  34712. IndirectCommandsLayoutCreateInfoNV(
  34713. VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutUsageFlagsNV flags_,
  34714. VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint_,
  34715. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutTokenNV> const & tokens_,
  34716. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint32_t> const & streamStrides_ = {},
  34717. const void * pNext_ = nullptr )
  34718. : pNext( pNext_ )
  34719. , flags( flags_ )
  34720. , pipelineBindPoint( pipelineBindPoint_ )
  34721. , tokenCount( static_cast<uint32_t>( tokens_.size() ) )
  34722. , pTokens( tokens_.data() )
  34723. , streamCount( static_cast<uint32_t>( streamStrides_.size() ) )
  34724. , pStreamStrides( streamStrides_.data() )
  34725. {
  34726. }
  34727. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  34728. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  34729. IndirectCommandsLayoutCreateInfoNV & operator=( IndirectCommandsLayoutCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  34730. IndirectCommandsLayoutCreateInfoNV & operator=( VkIndirectCommandsLayoutCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
  34731. {
  34732. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutCreateInfoNV const *>( &rhs );
  34733. return *this;
  34734. }
  34735. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  34736. VULKAN_HPP_CONSTEXPR_14 IndirectCommandsLayoutCreateInfoNV & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  34737. {
  34738. pNext = pNext_;
  34739. return *this;
  34740. }
  34741. VULKAN_HPP_CONSTEXPR_14 IndirectCommandsLayoutCreateInfoNV & setFlags( VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutUsageFlagsNV flags_ ) VULKAN_HPP_NOEXCEPT
  34742. {
  34743. flags = flags_;
  34744. return *this;
  34745. }
  34746. VULKAN_HPP_CONSTEXPR_14 IndirectCommandsLayoutCreateInfoNV &
  34747. setPipelineBindPoint( VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint_ ) VULKAN_HPP_NOEXCEPT
  34748. {
  34749. pipelineBindPoint = pipelineBindPoint_;
  34750. return *this;
  34751. }
  34752. VULKAN_HPP_CONSTEXPR_14 IndirectCommandsLayoutCreateInfoNV & setTokenCount( uint32_t tokenCount_ ) VULKAN_HPP_NOEXCEPT
  34753. {
  34754. tokenCount = tokenCount_;
  34755. return *this;
  34756. }
  34757. VULKAN_HPP_CONSTEXPR_14 IndirectCommandsLayoutCreateInfoNV &
  34758. setPTokens( const VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutTokenNV * pTokens_ ) VULKAN_HPP_NOEXCEPT
  34759. {
  34760. pTokens = pTokens_;
  34761. return *this;
  34762. }
  34763. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  34764. IndirectCommandsLayoutCreateInfoNV &
  34765. setTokens( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutTokenNV> const & tokens_ ) VULKAN_HPP_NOEXCEPT
  34766. {
  34767. tokenCount = static_cast<uint32_t>( tokens_.size() );
  34768. pTokens = tokens_.data();
  34769. return *this;
  34770. }
  34771. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  34772. VULKAN_HPP_CONSTEXPR_14 IndirectCommandsLayoutCreateInfoNV & setStreamCount( uint32_t streamCount_ ) VULKAN_HPP_NOEXCEPT
  34773. {
  34774. streamCount = streamCount_;
  34775. return *this;
  34776. }
  34777. VULKAN_HPP_CONSTEXPR_14 IndirectCommandsLayoutCreateInfoNV & setPStreamStrides( const uint32_t * pStreamStrides_ ) VULKAN_HPP_NOEXCEPT
  34778. {
  34779. pStreamStrides = pStreamStrides_;
  34780. return *this;
  34781. }
  34782. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  34783. IndirectCommandsLayoutCreateInfoNV &
  34784. setStreamStrides( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint32_t> const & streamStrides_ ) VULKAN_HPP_NOEXCEPT
  34785. {
  34786. streamCount = static_cast<uint32_t>( streamStrides_.size() );
  34787. pStreamStrides = streamStrides_.data();
  34788. return *this;
  34789. }
  34790. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  34791. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  34792. operator VkIndirectCommandsLayoutCreateInfoNV const &() const VULKAN_HPP_NOEXCEPT
  34793. {
  34794. return *reinterpret_cast<const VkIndirectCommandsLayoutCreateInfoNV *>( this );
  34795. }
  34796. operator VkIndirectCommandsLayoutCreateInfoNV &() VULKAN_HPP_NOEXCEPT
  34797. {
  34798. return *reinterpret_cast<VkIndirectCommandsLayoutCreateInfoNV *>( this );
  34799. }
  34800. #if defined( VULKAN_HPP_USE_REFLECT )
  34801. # if 14 <= VULKAN_HPP_CPP_VERSION
  34802. auto
  34803. # else
  34804. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  34805. const void * const &,
  34806. VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutUsageFlagsNV const &,
  34807. VULKAN_HPP_NAMESPACE::PipelineBindPoint const &,
  34808. uint32_t const &,
  34809. const VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutTokenNV * const &,
  34810. uint32_t const &,
  34811. const uint32_t * const &>
  34812. # endif
  34813. reflect() const VULKAN_HPP_NOEXCEPT
  34814. {
  34815. return std::tie( sType, pNext, flags, pipelineBindPoint, tokenCount, pTokens, streamCount, pStreamStrides );
  34816. }
  34817. #endif
  34818. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  34819. auto operator<=>( IndirectCommandsLayoutCreateInfoNV const & ) const = default;
  34820. #else
  34821. bool operator==( IndirectCommandsLayoutCreateInfoNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  34822. {
  34823. # if defined( VULKAN_HPP_USE_REFLECT )
  34824. return this->reflect() == rhs.reflect();
  34825. # else
  34826. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( flags == rhs.flags ) && ( pipelineBindPoint == rhs.pipelineBindPoint ) &&
  34827. ( tokenCount == rhs.tokenCount ) && ( pTokens == rhs.pTokens ) && ( streamCount == rhs.streamCount ) && ( pStreamStrides == rhs.pStreamStrides );
  34828. # endif
  34829. }
  34830. bool operator!=( IndirectCommandsLayoutCreateInfoNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  34831. {
  34832. return !operator==( rhs );
  34833. }
  34834. #endif
  34835. public:
  34836. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eIndirectCommandsLayoutCreateInfoNV;
  34837. const void * pNext = {};
  34838. VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutUsageFlagsNV flags = {};
  34839. VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint = VULKAN_HPP_NAMESPACE::PipelineBindPoint::eGraphics;
  34840. uint32_t tokenCount = {};
  34841. const VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutTokenNV * pTokens = {};
  34842. uint32_t streamCount = {};
  34843. const uint32_t * pStreamStrides = {};
  34844. };
  34845. template <>
  34846. struct CppType<StructureType, StructureType::eIndirectCommandsLayoutCreateInfoNV>
  34847. {
  34848. using Type = IndirectCommandsLayoutCreateInfoNV;
  34849. };
  34850. struct InitializePerformanceApiInfoINTEL
  34851. {
  34852. using NativeType = VkInitializePerformanceApiInfoINTEL;
  34853. static const bool allowDuplicate = false;
  34854. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eInitializePerformanceApiInfoINTEL;
  34855. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  34856. VULKAN_HPP_CONSTEXPR InitializePerformanceApiInfoINTEL( void * pUserData_ = {}, const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  34857. : pNext( pNext_ )
  34858. , pUserData( pUserData_ )
  34859. {
  34860. }
  34861. VULKAN_HPP_CONSTEXPR InitializePerformanceApiInfoINTEL( InitializePerformanceApiInfoINTEL const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  34862. InitializePerformanceApiInfoINTEL( VkInitializePerformanceApiInfoINTEL const & rhs ) VULKAN_HPP_NOEXCEPT
  34863. : InitializePerformanceApiInfoINTEL( *reinterpret_cast<InitializePerformanceApiInfoINTEL const *>( &rhs ) )
  34864. {
  34865. }
  34866. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  34867. InitializePerformanceApiInfoINTEL & operator=( InitializePerformanceApiInfoINTEL const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  34868. InitializePerformanceApiInfoINTEL & operator=( VkInitializePerformanceApiInfoINTEL const & rhs ) VULKAN_HPP_NOEXCEPT
  34869. {
  34870. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::InitializePerformanceApiInfoINTEL const *>( &rhs );
  34871. return *this;
  34872. }
  34873. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  34874. VULKAN_HPP_CONSTEXPR_14 InitializePerformanceApiInfoINTEL & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  34875. {
  34876. pNext = pNext_;
  34877. return *this;
  34878. }
  34879. VULKAN_HPP_CONSTEXPR_14 InitializePerformanceApiInfoINTEL & setPUserData( void * pUserData_ ) VULKAN_HPP_NOEXCEPT
  34880. {
  34881. pUserData = pUserData_;
  34882. return *this;
  34883. }
  34884. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  34885. operator VkInitializePerformanceApiInfoINTEL const &() const VULKAN_HPP_NOEXCEPT
  34886. {
  34887. return *reinterpret_cast<const VkInitializePerformanceApiInfoINTEL *>( this );
  34888. }
  34889. operator VkInitializePerformanceApiInfoINTEL &() VULKAN_HPP_NOEXCEPT
  34890. {
  34891. return *reinterpret_cast<VkInitializePerformanceApiInfoINTEL *>( this );
  34892. }
  34893. #if defined( VULKAN_HPP_USE_REFLECT )
  34894. # if 14 <= VULKAN_HPP_CPP_VERSION
  34895. auto
  34896. # else
  34897. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, void * const &>
  34898. # endif
  34899. reflect() const VULKAN_HPP_NOEXCEPT
  34900. {
  34901. return std::tie( sType, pNext, pUserData );
  34902. }
  34903. #endif
  34904. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  34905. auto operator<=>( InitializePerformanceApiInfoINTEL const & ) const = default;
  34906. #else
  34907. bool operator==( InitializePerformanceApiInfoINTEL const & rhs ) const VULKAN_HPP_NOEXCEPT
  34908. {
  34909. # if defined( VULKAN_HPP_USE_REFLECT )
  34910. return this->reflect() == rhs.reflect();
  34911. # else
  34912. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( pUserData == rhs.pUserData );
  34913. # endif
  34914. }
  34915. bool operator!=( InitializePerformanceApiInfoINTEL const & rhs ) const VULKAN_HPP_NOEXCEPT
  34916. {
  34917. return !operator==( rhs );
  34918. }
  34919. #endif
  34920. public:
  34921. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eInitializePerformanceApiInfoINTEL;
  34922. const void * pNext = {};
  34923. void * pUserData = {};
  34924. };
  34925. template <>
  34926. struct CppType<StructureType, StructureType::eInitializePerformanceApiInfoINTEL>
  34927. {
  34928. using Type = InitializePerformanceApiInfoINTEL;
  34929. };
  34930. struct InputAttachmentAspectReference
  34931. {
  34932. using NativeType = VkInputAttachmentAspectReference;
  34933. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  34934. VULKAN_HPP_CONSTEXPR InputAttachmentAspectReference( uint32_t subpass_ = {},
  34935. uint32_t inputAttachmentIndex_ = {},
  34936. VULKAN_HPP_NAMESPACE::ImageAspectFlags aspectMask_ = {} ) VULKAN_HPP_NOEXCEPT
  34937. : subpass( subpass_ )
  34938. , inputAttachmentIndex( inputAttachmentIndex_ )
  34939. , aspectMask( aspectMask_ )
  34940. {
  34941. }
  34942. VULKAN_HPP_CONSTEXPR InputAttachmentAspectReference( InputAttachmentAspectReference const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  34943. InputAttachmentAspectReference( VkInputAttachmentAspectReference const & rhs ) VULKAN_HPP_NOEXCEPT
  34944. : InputAttachmentAspectReference( *reinterpret_cast<InputAttachmentAspectReference const *>( &rhs ) )
  34945. {
  34946. }
  34947. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  34948. InputAttachmentAspectReference & operator=( InputAttachmentAspectReference const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  34949. InputAttachmentAspectReference & operator=( VkInputAttachmentAspectReference const & rhs ) VULKAN_HPP_NOEXCEPT
  34950. {
  34951. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::InputAttachmentAspectReference const *>( &rhs );
  34952. return *this;
  34953. }
  34954. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  34955. VULKAN_HPP_CONSTEXPR_14 InputAttachmentAspectReference & setSubpass( uint32_t subpass_ ) VULKAN_HPP_NOEXCEPT
  34956. {
  34957. subpass = subpass_;
  34958. return *this;
  34959. }
  34960. VULKAN_HPP_CONSTEXPR_14 InputAttachmentAspectReference & setInputAttachmentIndex( uint32_t inputAttachmentIndex_ ) VULKAN_HPP_NOEXCEPT
  34961. {
  34962. inputAttachmentIndex = inputAttachmentIndex_;
  34963. return *this;
  34964. }
  34965. VULKAN_HPP_CONSTEXPR_14 InputAttachmentAspectReference & setAspectMask( VULKAN_HPP_NAMESPACE::ImageAspectFlags aspectMask_ ) VULKAN_HPP_NOEXCEPT
  34966. {
  34967. aspectMask = aspectMask_;
  34968. return *this;
  34969. }
  34970. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  34971. operator VkInputAttachmentAspectReference const &() const VULKAN_HPP_NOEXCEPT
  34972. {
  34973. return *reinterpret_cast<const VkInputAttachmentAspectReference *>( this );
  34974. }
  34975. operator VkInputAttachmentAspectReference &() VULKAN_HPP_NOEXCEPT
  34976. {
  34977. return *reinterpret_cast<VkInputAttachmentAspectReference *>( this );
  34978. }
  34979. #if defined( VULKAN_HPP_USE_REFLECT )
  34980. # if 14 <= VULKAN_HPP_CPP_VERSION
  34981. auto
  34982. # else
  34983. std::tuple<uint32_t const &, uint32_t const &, VULKAN_HPP_NAMESPACE::ImageAspectFlags const &>
  34984. # endif
  34985. reflect() const VULKAN_HPP_NOEXCEPT
  34986. {
  34987. return std::tie( subpass, inputAttachmentIndex, aspectMask );
  34988. }
  34989. #endif
  34990. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  34991. auto operator<=>( InputAttachmentAspectReference const & ) const = default;
  34992. #else
  34993. bool operator==( InputAttachmentAspectReference const & rhs ) const VULKAN_HPP_NOEXCEPT
  34994. {
  34995. # if defined( VULKAN_HPP_USE_REFLECT )
  34996. return this->reflect() == rhs.reflect();
  34997. # else
  34998. return ( subpass == rhs.subpass ) && ( inputAttachmentIndex == rhs.inputAttachmentIndex ) && ( aspectMask == rhs.aspectMask );
  34999. # endif
  35000. }
  35001. bool operator!=( InputAttachmentAspectReference const & rhs ) const VULKAN_HPP_NOEXCEPT
  35002. {
  35003. return !operator==( rhs );
  35004. }
  35005. #endif
  35006. public:
  35007. uint32_t subpass = {};
  35008. uint32_t inputAttachmentIndex = {};
  35009. VULKAN_HPP_NAMESPACE::ImageAspectFlags aspectMask = {};
  35010. };
  35011. using InputAttachmentAspectReferenceKHR = InputAttachmentAspectReference;
  35012. struct InstanceCreateInfo
  35013. {
  35014. using NativeType = VkInstanceCreateInfo;
  35015. static const bool allowDuplicate = false;
  35016. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eInstanceCreateInfo;
  35017. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  35018. VULKAN_HPP_CONSTEXPR InstanceCreateInfo( VULKAN_HPP_NAMESPACE::InstanceCreateFlags flags_ = {},
  35019. const VULKAN_HPP_NAMESPACE::ApplicationInfo * pApplicationInfo_ = {},
  35020. uint32_t enabledLayerCount_ = {},
  35021. const char * const * ppEnabledLayerNames_ = {},
  35022. uint32_t enabledExtensionCount_ = {},
  35023. const char * const * ppEnabledExtensionNames_ = {},
  35024. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  35025. : pNext( pNext_ )
  35026. , flags( flags_ )
  35027. , pApplicationInfo( pApplicationInfo_ )
  35028. , enabledLayerCount( enabledLayerCount_ )
  35029. , ppEnabledLayerNames( ppEnabledLayerNames_ )
  35030. , enabledExtensionCount( enabledExtensionCount_ )
  35031. , ppEnabledExtensionNames( ppEnabledExtensionNames_ )
  35032. {
  35033. }
  35034. VULKAN_HPP_CONSTEXPR InstanceCreateInfo( InstanceCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  35035. InstanceCreateInfo( VkInstanceCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT : InstanceCreateInfo( *reinterpret_cast<InstanceCreateInfo const *>( &rhs ) ) {}
  35036. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  35037. InstanceCreateInfo( VULKAN_HPP_NAMESPACE::InstanceCreateFlags flags_,
  35038. const VULKAN_HPP_NAMESPACE::ApplicationInfo * pApplicationInfo_,
  35039. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const char * const> const & pEnabledLayerNames_,
  35040. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const char * const> const & pEnabledExtensionNames_ = {},
  35041. const void * pNext_ = nullptr )
  35042. : pNext( pNext_ )
  35043. , flags( flags_ )
  35044. , pApplicationInfo( pApplicationInfo_ )
  35045. , enabledLayerCount( static_cast<uint32_t>( pEnabledLayerNames_.size() ) )
  35046. , ppEnabledLayerNames( pEnabledLayerNames_.data() )
  35047. , enabledExtensionCount( static_cast<uint32_t>( pEnabledExtensionNames_.size() ) )
  35048. , ppEnabledExtensionNames( pEnabledExtensionNames_.data() )
  35049. {
  35050. }
  35051. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  35052. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  35053. InstanceCreateInfo & operator=( InstanceCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  35054. InstanceCreateInfo & operator=( VkInstanceCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
  35055. {
  35056. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::InstanceCreateInfo const *>( &rhs );
  35057. return *this;
  35058. }
  35059. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  35060. VULKAN_HPP_CONSTEXPR_14 InstanceCreateInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  35061. {
  35062. pNext = pNext_;
  35063. return *this;
  35064. }
  35065. VULKAN_HPP_CONSTEXPR_14 InstanceCreateInfo & setFlags( VULKAN_HPP_NAMESPACE::InstanceCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT
  35066. {
  35067. flags = flags_;
  35068. return *this;
  35069. }
  35070. VULKAN_HPP_CONSTEXPR_14 InstanceCreateInfo & setPApplicationInfo( const VULKAN_HPP_NAMESPACE::ApplicationInfo * pApplicationInfo_ ) VULKAN_HPP_NOEXCEPT
  35071. {
  35072. pApplicationInfo = pApplicationInfo_;
  35073. return *this;
  35074. }
  35075. VULKAN_HPP_CONSTEXPR_14 InstanceCreateInfo & setEnabledLayerCount( uint32_t enabledLayerCount_ ) VULKAN_HPP_NOEXCEPT
  35076. {
  35077. enabledLayerCount = enabledLayerCount_;
  35078. return *this;
  35079. }
  35080. VULKAN_HPP_CONSTEXPR_14 InstanceCreateInfo & setPpEnabledLayerNames( const char * const * ppEnabledLayerNames_ ) VULKAN_HPP_NOEXCEPT
  35081. {
  35082. ppEnabledLayerNames = ppEnabledLayerNames_;
  35083. return *this;
  35084. }
  35085. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  35086. InstanceCreateInfo &
  35087. setPEnabledLayerNames( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const char * const> const & pEnabledLayerNames_ ) VULKAN_HPP_NOEXCEPT
  35088. {
  35089. enabledLayerCount = static_cast<uint32_t>( pEnabledLayerNames_.size() );
  35090. ppEnabledLayerNames = pEnabledLayerNames_.data();
  35091. return *this;
  35092. }
  35093. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  35094. VULKAN_HPP_CONSTEXPR_14 InstanceCreateInfo & setEnabledExtensionCount( uint32_t enabledExtensionCount_ ) VULKAN_HPP_NOEXCEPT
  35095. {
  35096. enabledExtensionCount = enabledExtensionCount_;
  35097. return *this;
  35098. }
  35099. VULKAN_HPP_CONSTEXPR_14 InstanceCreateInfo & setPpEnabledExtensionNames( const char * const * ppEnabledExtensionNames_ ) VULKAN_HPP_NOEXCEPT
  35100. {
  35101. ppEnabledExtensionNames = ppEnabledExtensionNames_;
  35102. return *this;
  35103. }
  35104. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  35105. InstanceCreateInfo &
  35106. setPEnabledExtensionNames( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const char * const> const & pEnabledExtensionNames_ ) VULKAN_HPP_NOEXCEPT
  35107. {
  35108. enabledExtensionCount = static_cast<uint32_t>( pEnabledExtensionNames_.size() );
  35109. ppEnabledExtensionNames = pEnabledExtensionNames_.data();
  35110. return *this;
  35111. }
  35112. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  35113. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  35114. operator VkInstanceCreateInfo const &() const VULKAN_HPP_NOEXCEPT
  35115. {
  35116. return *reinterpret_cast<const VkInstanceCreateInfo *>( this );
  35117. }
  35118. operator VkInstanceCreateInfo &() VULKAN_HPP_NOEXCEPT
  35119. {
  35120. return *reinterpret_cast<VkInstanceCreateInfo *>( this );
  35121. }
  35122. #if defined( VULKAN_HPP_USE_REFLECT )
  35123. # if 14 <= VULKAN_HPP_CPP_VERSION
  35124. auto
  35125. # else
  35126. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  35127. const void * const &,
  35128. VULKAN_HPP_NAMESPACE::InstanceCreateFlags const &,
  35129. const VULKAN_HPP_NAMESPACE::ApplicationInfo * const &,
  35130. uint32_t const &,
  35131. const char * const * const &,
  35132. uint32_t const &,
  35133. const char * const * const &>
  35134. # endif
  35135. reflect() const VULKAN_HPP_NOEXCEPT
  35136. {
  35137. return std::tie( sType, pNext, flags, pApplicationInfo, enabledLayerCount, ppEnabledLayerNames, enabledExtensionCount, ppEnabledExtensionNames );
  35138. }
  35139. #endif
  35140. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  35141. std::strong_ordering operator<=>( InstanceCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  35142. {
  35143. if ( auto cmp = sType <=> rhs.sType; cmp != 0 )
  35144. return cmp;
  35145. if ( auto cmp = pNext <=> rhs.pNext; cmp != 0 )
  35146. return cmp;
  35147. if ( auto cmp = flags <=> rhs.flags; cmp != 0 )
  35148. return cmp;
  35149. if ( auto cmp = pApplicationInfo <=> rhs.pApplicationInfo; cmp != 0 )
  35150. return cmp;
  35151. if ( auto cmp = enabledLayerCount <=> rhs.enabledLayerCount; cmp != 0 )
  35152. return cmp;
  35153. for ( size_t i = 0; i < enabledLayerCount; ++i )
  35154. {
  35155. if ( ppEnabledLayerNames[i] != rhs.ppEnabledLayerNames[i] )
  35156. if ( auto cmp = strcmp( ppEnabledLayerNames[i], rhs.ppEnabledLayerNames[i] ); cmp != 0 )
  35157. return cmp < 0 ? std::strong_ordering::less : std::strong_ordering::greater;
  35158. }
  35159. if ( auto cmp = enabledExtensionCount <=> rhs.enabledExtensionCount; cmp != 0 )
  35160. return cmp;
  35161. for ( size_t i = 0; i < enabledExtensionCount; ++i )
  35162. {
  35163. if ( ppEnabledExtensionNames[i] != rhs.ppEnabledExtensionNames[i] )
  35164. if ( auto cmp = strcmp( ppEnabledExtensionNames[i], rhs.ppEnabledExtensionNames[i] ); cmp != 0 )
  35165. return cmp < 0 ? std::strong_ordering::less : std::strong_ordering::greater;
  35166. }
  35167. return std::strong_ordering::equivalent;
  35168. }
  35169. #endif
  35170. bool operator==( InstanceCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  35171. {
  35172. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( flags == rhs.flags ) && ( pApplicationInfo == rhs.pApplicationInfo ) &&
  35173. ( enabledLayerCount == rhs.enabledLayerCount ) &&
  35174. [this, rhs]
  35175. {
  35176. bool equal = true;
  35177. for ( size_t i = 0; equal && ( i < enabledLayerCount ); ++i )
  35178. {
  35179. equal = ( ( ppEnabledLayerNames[i] == rhs.ppEnabledLayerNames[i] ) || ( strcmp( ppEnabledLayerNames[i], rhs.ppEnabledLayerNames[i] ) == 0 ) );
  35180. }
  35181. return equal;
  35182. }() && ( enabledExtensionCount == rhs.enabledExtensionCount ) &&
  35183. [this, rhs]
  35184. {
  35185. bool equal = true;
  35186. for ( size_t i = 0; equal && ( i < enabledExtensionCount ); ++i )
  35187. {
  35188. equal = ( ( ppEnabledExtensionNames[i] == rhs.ppEnabledExtensionNames[i] ) ||
  35189. ( strcmp( ppEnabledExtensionNames[i], rhs.ppEnabledExtensionNames[i] ) == 0 ) );
  35190. }
  35191. return equal;
  35192. }();
  35193. }
  35194. bool operator!=( InstanceCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  35195. {
  35196. return !operator==( rhs );
  35197. }
  35198. public:
  35199. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eInstanceCreateInfo;
  35200. const void * pNext = {};
  35201. VULKAN_HPP_NAMESPACE::InstanceCreateFlags flags = {};
  35202. const VULKAN_HPP_NAMESPACE::ApplicationInfo * pApplicationInfo = {};
  35203. uint32_t enabledLayerCount = {};
  35204. const char * const * ppEnabledLayerNames = {};
  35205. uint32_t enabledExtensionCount = {};
  35206. const char * const * ppEnabledExtensionNames = {};
  35207. };
  35208. template <>
  35209. struct CppType<StructureType, StructureType::eInstanceCreateInfo>
  35210. {
  35211. using Type = InstanceCreateInfo;
  35212. };
  35213. struct LayerProperties
  35214. {
  35215. using NativeType = VkLayerProperties;
  35216. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  35217. VULKAN_HPP_CONSTEXPR_14 LayerProperties( std::array<char, VK_MAX_EXTENSION_NAME_SIZE> const & layerName_ = {},
  35218. uint32_t specVersion_ = {},
  35219. uint32_t implementationVersion_ = {},
  35220. std::array<char, VK_MAX_DESCRIPTION_SIZE> const & description_ = {} ) VULKAN_HPP_NOEXCEPT
  35221. : layerName( layerName_ )
  35222. , specVersion( specVersion_ )
  35223. , implementationVersion( implementationVersion_ )
  35224. , description( description_ )
  35225. {
  35226. }
  35227. VULKAN_HPP_CONSTEXPR_14 LayerProperties( LayerProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  35228. LayerProperties( VkLayerProperties const & rhs ) VULKAN_HPP_NOEXCEPT : LayerProperties( *reinterpret_cast<LayerProperties const *>( &rhs ) ) {}
  35229. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  35230. LayerProperties & operator=( LayerProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  35231. LayerProperties & operator=( VkLayerProperties const & rhs ) VULKAN_HPP_NOEXCEPT
  35232. {
  35233. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::LayerProperties const *>( &rhs );
  35234. return *this;
  35235. }
  35236. operator VkLayerProperties const &() const VULKAN_HPP_NOEXCEPT
  35237. {
  35238. return *reinterpret_cast<const VkLayerProperties *>( this );
  35239. }
  35240. operator VkLayerProperties &() VULKAN_HPP_NOEXCEPT
  35241. {
  35242. return *reinterpret_cast<VkLayerProperties *>( this );
  35243. }
  35244. #if defined( VULKAN_HPP_USE_REFLECT )
  35245. # if 14 <= VULKAN_HPP_CPP_VERSION
  35246. auto
  35247. # else
  35248. std::tuple<VULKAN_HPP_NAMESPACE::ArrayWrapper1D<char, VK_MAX_EXTENSION_NAME_SIZE> const &,
  35249. uint32_t const &,
  35250. uint32_t const &,
  35251. VULKAN_HPP_NAMESPACE::ArrayWrapper1D<char, VK_MAX_DESCRIPTION_SIZE> const &>
  35252. # endif
  35253. reflect() const VULKAN_HPP_NOEXCEPT
  35254. {
  35255. return std::tie( layerName, specVersion, implementationVersion, description );
  35256. }
  35257. #endif
  35258. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  35259. auto operator<=>( LayerProperties const & ) const = default;
  35260. #else
  35261. bool operator==( LayerProperties const & rhs ) const VULKAN_HPP_NOEXCEPT
  35262. {
  35263. # if defined( VULKAN_HPP_USE_REFLECT )
  35264. return this->reflect() == rhs.reflect();
  35265. # else
  35266. return ( layerName == rhs.layerName ) && ( specVersion == rhs.specVersion ) && ( implementationVersion == rhs.implementationVersion ) &&
  35267. ( description == rhs.description );
  35268. # endif
  35269. }
  35270. bool operator!=( LayerProperties const & rhs ) const VULKAN_HPP_NOEXCEPT
  35271. {
  35272. return !operator==( rhs );
  35273. }
  35274. #endif
  35275. public:
  35276. VULKAN_HPP_NAMESPACE::ArrayWrapper1D<char, VK_MAX_EXTENSION_NAME_SIZE> layerName = {};
  35277. uint32_t specVersion = {};
  35278. uint32_t implementationVersion = {};
  35279. VULKAN_HPP_NAMESPACE::ArrayWrapper1D<char, VK_MAX_DESCRIPTION_SIZE> description = {};
  35280. };
  35281. #if defined( VK_USE_PLATFORM_MACOS_MVK )
  35282. struct MacOSSurfaceCreateInfoMVK
  35283. {
  35284. using NativeType = VkMacOSSurfaceCreateInfoMVK;
  35285. static const bool allowDuplicate = false;
  35286. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eMacosSurfaceCreateInfoMVK;
  35287. # if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  35288. VULKAN_HPP_CONSTEXPR MacOSSurfaceCreateInfoMVK( VULKAN_HPP_NAMESPACE::MacOSSurfaceCreateFlagsMVK flags_ = {},
  35289. const void * pView_ = {},
  35290. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  35291. : pNext( pNext_ )
  35292. , flags( flags_ )
  35293. , pView( pView_ )
  35294. {
  35295. }
  35296. VULKAN_HPP_CONSTEXPR MacOSSurfaceCreateInfoMVK( MacOSSurfaceCreateInfoMVK const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  35297. MacOSSurfaceCreateInfoMVK( VkMacOSSurfaceCreateInfoMVK const & rhs ) VULKAN_HPP_NOEXCEPT
  35298. : MacOSSurfaceCreateInfoMVK( *reinterpret_cast<MacOSSurfaceCreateInfoMVK const *>( &rhs ) )
  35299. {
  35300. }
  35301. # endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  35302. MacOSSurfaceCreateInfoMVK & operator=( MacOSSurfaceCreateInfoMVK const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  35303. MacOSSurfaceCreateInfoMVK & operator=( VkMacOSSurfaceCreateInfoMVK const & rhs ) VULKAN_HPP_NOEXCEPT
  35304. {
  35305. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::MacOSSurfaceCreateInfoMVK const *>( &rhs );
  35306. return *this;
  35307. }
  35308. # if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  35309. VULKAN_HPP_CONSTEXPR_14 MacOSSurfaceCreateInfoMVK & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  35310. {
  35311. pNext = pNext_;
  35312. return *this;
  35313. }
  35314. VULKAN_HPP_CONSTEXPR_14 MacOSSurfaceCreateInfoMVK & setFlags( VULKAN_HPP_NAMESPACE::MacOSSurfaceCreateFlagsMVK flags_ ) VULKAN_HPP_NOEXCEPT
  35315. {
  35316. flags = flags_;
  35317. return *this;
  35318. }
  35319. VULKAN_HPP_CONSTEXPR_14 MacOSSurfaceCreateInfoMVK & setPView( const void * pView_ ) VULKAN_HPP_NOEXCEPT
  35320. {
  35321. pView = pView_;
  35322. return *this;
  35323. }
  35324. # endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  35325. operator VkMacOSSurfaceCreateInfoMVK const &() const VULKAN_HPP_NOEXCEPT
  35326. {
  35327. return *reinterpret_cast<const VkMacOSSurfaceCreateInfoMVK *>( this );
  35328. }
  35329. operator VkMacOSSurfaceCreateInfoMVK &() VULKAN_HPP_NOEXCEPT
  35330. {
  35331. return *reinterpret_cast<VkMacOSSurfaceCreateInfoMVK *>( this );
  35332. }
  35333. # if defined( VULKAN_HPP_USE_REFLECT )
  35334. # if 14 <= VULKAN_HPP_CPP_VERSION
  35335. auto
  35336. # else
  35337. std::
  35338. tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::MacOSSurfaceCreateFlagsMVK const &, const void * const &>
  35339. # endif
  35340. reflect() const VULKAN_HPP_NOEXCEPT
  35341. {
  35342. return std::tie( sType, pNext, flags, pView );
  35343. }
  35344. # endif
  35345. # if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  35346. auto operator<=>( MacOSSurfaceCreateInfoMVK const & ) const = default;
  35347. # else
  35348. bool operator==( MacOSSurfaceCreateInfoMVK const & rhs ) const VULKAN_HPP_NOEXCEPT
  35349. {
  35350. # if defined( VULKAN_HPP_USE_REFLECT )
  35351. return this->reflect() == rhs.reflect();
  35352. # else
  35353. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( flags == rhs.flags ) && ( pView == rhs.pView );
  35354. # endif
  35355. }
  35356. bool operator!=( MacOSSurfaceCreateInfoMVK const & rhs ) const VULKAN_HPP_NOEXCEPT
  35357. {
  35358. return !operator==( rhs );
  35359. }
  35360. # endif
  35361. public:
  35362. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eMacosSurfaceCreateInfoMVK;
  35363. const void * pNext = {};
  35364. VULKAN_HPP_NAMESPACE::MacOSSurfaceCreateFlagsMVK flags = {};
  35365. const void * pView = {};
  35366. };
  35367. template <>
  35368. struct CppType<StructureType, StructureType::eMacosSurfaceCreateInfoMVK>
  35369. {
  35370. using Type = MacOSSurfaceCreateInfoMVK;
  35371. };
  35372. #endif /*VK_USE_PLATFORM_MACOS_MVK*/
  35373. struct MappedMemoryRange
  35374. {
  35375. using NativeType = VkMappedMemoryRange;
  35376. static const bool allowDuplicate = false;
  35377. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eMappedMemoryRange;
  35378. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  35379. VULKAN_HPP_CONSTEXPR MappedMemoryRange( VULKAN_HPP_NAMESPACE::DeviceMemory memory_ = {},
  35380. VULKAN_HPP_NAMESPACE::DeviceSize offset_ = {},
  35381. VULKAN_HPP_NAMESPACE::DeviceSize size_ = {},
  35382. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  35383. : pNext( pNext_ )
  35384. , memory( memory_ )
  35385. , offset( offset_ )
  35386. , size( size_ )
  35387. {
  35388. }
  35389. VULKAN_HPP_CONSTEXPR MappedMemoryRange( MappedMemoryRange const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  35390. MappedMemoryRange( VkMappedMemoryRange const & rhs ) VULKAN_HPP_NOEXCEPT : MappedMemoryRange( *reinterpret_cast<MappedMemoryRange const *>( &rhs ) ) {}
  35391. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  35392. MappedMemoryRange & operator=( MappedMemoryRange const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  35393. MappedMemoryRange & operator=( VkMappedMemoryRange const & rhs ) VULKAN_HPP_NOEXCEPT
  35394. {
  35395. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::MappedMemoryRange const *>( &rhs );
  35396. return *this;
  35397. }
  35398. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  35399. VULKAN_HPP_CONSTEXPR_14 MappedMemoryRange & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  35400. {
  35401. pNext = pNext_;
  35402. return *this;
  35403. }
  35404. VULKAN_HPP_CONSTEXPR_14 MappedMemoryRange & setMemory( VULKAN_HPP_NAMESPACE::DeviceMemory memory_ ) VULKAN_HPP_NOEXCEPT
  35405. {
  35406. memory = memory_;
  35407. return *this;
  35408. }
  35409. VULKAN_HPP_CONSTEXPR_14 MappedMemoryRange & setOffset( VULKAN_HPP_NAMESPACE::DeviceSize offset_ ) VULKAN_HPP_NOEXCEPT
  35410. {
  35411. offset = offset_;
  35412. return *this;
  35413. }
  35414. VULKAN_HPP_CONSTEXPR_14 MappedMemoryRange & setSize( VULKAN_HPP_NAMESPACE::DeviceSize size_ ) VULKAN_HPP_NOEXCEPT
  35415. {
  35416. size = size_;
  35417. return *this;
  35418. }
  35419. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  35420. operator VkMappedMemoryRange const &() const VULKAN_HPP_NOEXCEPT
  35421. {
  35422. return *reinterpret_cast<const VkMappedMemoryRange *>( this );
  35423. }
  35424. operator VkMappedMemoryRange &() VULKAN_HPP_NOEXCEPT
  35425. {
  35426. return *reinterpret_cast<VkMappedMemoryRange *>( this );
  35427. }
  35428. #if defined( VULKAN_HPP_USE_REFLECT )
  35429. # if 14 <= VULKAN_HPP_CPP_VERSION
  35430. auto
  35431. # else
  35432. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  35433. const void * const &,
  35434. VULKAN_HPP_NAMESPACE::DeviceMemory const &,
  35435. VULKAN_HPP_NAMESPACE::DeviceSize const &,
  35436. VULKAN_HPP_NAMESPACE::DeviceSize const &>
  35437. # endif
  35438. reflect() const VULKAN_HPP_NOEXCEPT
  35439. {
  35440. return std::tie( sType, pNext, memory, offset, size );
  35441. }
  35442. #endif
  35443. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  35444. auto operator<=>( MappedMemoryRange const & ) const = default;
  35445. #else
  35446. bool operator==( MappedMemoryRange const & rhs ) const VULKAN_HPP_NOEXCEPT
  35447. {
  35448. # if defined( VULKAN_HPP_USE_REFLECT )
  35449. return this->reflect() == rhs.reflect();
  35450. # else
  35451. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( memory == rhs.memory ) && ( offset == rhs.offset ) && ( size == rhs.size );
  35452. # endif
  35453. }
  35454. bool operator!=( MappedMemoryRange const & rhs ) const VULKAN_HPP_NOEXCEPT
  35455. {
  35456. return !operator==( rhs );
  35457. }
  35458. #endif
  35459. public:
  35460. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eMappedMemoryRange;
  35461. const void * pNext = {};
  35462. VULKAN_HPP_NAMESPACE::DeviceMemory memory = {};
  35463. VULKAN_HPP_NAMESPACE::DeviceSize offset = {};
  35464. VULKAN_HPP_NAMESPACE::DeviceSize size = {};
  35465. };
  35466. template <>
  35467. struct CppType<StructureType, StructureType::eMappedMemoryRange>
  35468. {
  35469. using Type = MappedMemoryRange;
  35470. };
  35471. struct MemoryAllocateFlagsInfo
  35472. {
  35473. using NativeType = VkMemoryAllocateFlagsInfo;
  35474. static const bool allowDuplicate = false;
  35475. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eMemoryAllocateFlagsInfo;
  35476. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  35477. VULKAN_HPP_CONSTEXPR MemoryAllocateFlagsInfo( VULKAN_HPP_NAMESPACE::MemoryAllocateFlags flags_ = {},
  35478. uint32_t deviceMask_ = {},
  35479. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  35480. : pNext( pNext_ )
  35481. , flags( flags_ )
  35482. , deviceMask( deviceMask_ )
  35483. {
  35484. }
  35485. VULKAN_HPP_CONSTEXPR MemoryAllocateFlagsInfo( MemoryAllocateFlagsInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  35486. MemoryAllocateFlagsInfo( VkMemoryAllocateFlagsInfo const & rhs ) VULKAN_HPP_NOEXCEPT
  35487. : MemoryAllocateFlagsInfo( *reinterpret_cast<MemoryAllocateFlagsInfo const *>( &rhs ) )
  35488. {
  35489. }
  35490. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  35491. MemoryAllocateFlagsInfo & operator=( MemoryAllocateFlagsInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  35492. MemoryAllocateFlagsInfo & operator=( VkMemoryAllocateFlagsInfo const & rhs ) VULKAN_HPP_NOEXCEPT
  35493. {
  35494. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::MemoryAllocateFlagsInfo const *>( &rhs );
  35495. return *this;
  35496. }
  35497. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  35498. VULKAN_HPP_CONSTEXPR_14 MemoryAllocateFlagsInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  35499. {
  35500. pNext = pNext_;
  35501. return *this;
  35502. }
  35503. VULKAN_HPP_CONSTEXPR_14 MemoryAllocateFlagsInfo & setFlags( VULKAN_HPP_NAMESPACE::MemoryAllocateFlags flags_ ) VULKAN_HPP_NOEXCEPT
  35504. {
  35505. flags = flags_;
  35506. return *this;
  35507. }
  35508. VULKAN_HPP_CONSTEXPR_14 MemoryAllocateFlagsInfo & setDeviceMask( uint32_t deviceMask_ ) VULKAN_HPP_NOEXCEPT
  35509. {
  35510. deviceMask = deviceMask_;
  35511. return *this;
  35512. }
  35513. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  35514. operator VkMemoryAllocateFlagsInfo const &() const VULKAN_HPP_NOEXCEPT
  35515. {
  35516. return *reinterpret_cast<const VkMemoryAllocateFlagsInfo *>( this );
  35517. }
  35518. operator VkMemoryAllocateFlagsInfo &() VULKAN_HPP_NOEXCEPT
  35519. {
  35520. return *reinterpret_cast<VkMemoryAllocateFlagsInfo *>( this );
  35521. }
  35522. #if defined( VULKAN_HPP_USE_REFLECT )
  35523. # if 14 <= VULKAN_HPP_CPP_VERSION
  35524. auto
  35525. # else
  35526. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::MemoryAllocateFlags const &, uint32_t const &>
  35527. # endif
  35528. reflect() const VULKAN_HPP_NOEXCEPT
  35529. {
  35530. return std::tie( sType, pNext, flags, deviceMask );
  35531. }
  35532. #endif
  35533. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  35534. auto operator<=>( MemoryAllocateFlagsInfo const & ) const = default;
  35535. #else
  35536. bool operator==( MemoryAllocateFlagsInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  35537. {
  35538. # if defined( VULKAN_HPP_USE_REFLECT )
  35539. return this->reflect() == rhs.reflect();
  35540. # else
  35541. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( flags == rhs.flags ) && ( deviceMask == rhs.deviceMask );
  35542. # endif
  35543. }
  35544. bool operator!=( MemoryAllocateFlagsInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  35545. {
  35546. return !operator==( rhs );
  35547. }
  35548. #endif
  35549. public:
  35550. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eMemoryAllocateFlagsInfo;
  35551. const void * pNext = {};
  35552. VULKAN_HPP_NAMESPACE::MemoryAllocateFlags flags = {};
  35553. uint32_t deviceMask = {};
  35554. };
  35555. template <>
  35556. struct CppType<StructureType, StructureType::eMemoryAllocateFlagsInfo>
  35557. {
  35558. using Type = MemoryAllocateFlagsInfo;
  35559. };
  35560. using MemoryAllocateFlagsInfoKHR = MemoryAllocateFlagsInfo;
  35561. struct MemoryAllocateInfo
  35562. {
  35563. using NativeType = VkMemoryAllocateInfo;
  35564. static const bool allowDuplicate = false;
  35565. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eMemoryAllocateInfo;
  35566. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  35567. VULKAN_HPP_CONSTEXPR MemoryAllocateInfo( VULKAN_HPP_NAMESPACE::DeviceSize allocationSize_ = {},
  35568. uint32_t memoryTypeIndex_ = {},
  35569. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  35570. : pNext( pNext_ )
  35571. , allocationSize( allocationSize_ )
  35572. , memoryTypeIndex( memoryTypeIndex_ )
  35573. {
  35574. }
  35575. VULKAN_HPP_CONSTEXPR MemoryAllocateInfo( MemoryAllocateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  35576. MemoryAllocateInfo( VkMemoryAllocateInfo const & rhs ) VULKAN_HPP_NOEXCEPT : MemoryAllocateInfo( *reinterpret_cast<MemoryAllocateInfo const *>( &rhs ) ) {}
  35577. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  35578. MemoryAllocateInfo & operator=( MemoryAllocateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  35579. MemoryAllocateInfo & operator=( VkMemoryAllocateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
  35580. {
  35581. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::MemoryAllocateInfo const *>( &rhs );
  35582. return *this;
  35583. }
  35584. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  35585. VULKAN_HPP_CONSTEXPR_14 MemoryAllocateInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  35586. {
  35587. pNext = pNext_;
  35588. return *this;
  35589. }
  35590. VULKAN_HPP_CONSTEXPR_14 MemoryAllocateInfo & setAllocationSize( VULKAN_HPP_NAMESPACE::DeviceSize allocationSize_ ) VULKAN_HPP_NOEXCEPT
  35591. {
  35592. allocationSize = allocationSize_;
  35593. return *this;
  35594. }
  35595. VULKAN_HPP_CONSTEXPR_14 MemoryAllocateInfo & setMemoryTypeIndex( uint32_t memoryTypeIndex_ ) VULKAN_HPP_NOEXCEPT
  35596. {
  35597. memoryTypeIndex = memoryTypeIndex_;
  35598. return *this;
  35599. }
  35600. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  35601. operator VkMemoryAllocateInfo const &() const VULKAN_HPP_NOEXCEPT
  35602. {
  35603. return *reinterpret_cast<const VkMemoryAllocateInfo *>( this );
  35604. }
  35605. operator VkMemoryAllocateInfo &() VULKAN_HPP_NOEXCEPT
  35606. {
  35607. return *reinterpret_cast<VkMemoryAllocateInfo *>( this );
  35608. }
  35609. #if defined( VULKAN_HPP_USE_REFLECT )
  35610. # if 14 <= VULKAN_HPP_CPP_VERSION
  35611. auto
  35612. # else
  35613. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::DeviceSize const &, uint32_t const &>
  35614. # endif
  35615. reflect() const VULKAN_HPP_NOEXCEPT
  35616. {
  35617. return std::tie( sType, pNext, allocationSize, memoryTypeIndex );
  35618. }
  35619. #endif
  35620. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  35621. auto operator<=>( MemoryAllocateInfo const & ) const = default;
  35622. #else
  35623. bool operator==( MemoryAllocateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  35624. {
  35625. # if defined( VULKAN_HPP_USE_REFLECT )
  35626. return this->reflect() == rhs.reflect();
  35627. # else
  35628. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( allocationSize == rhs.allocationSize ) && ( memoryTypeIndex == rhs.memoryTypeIndex );
  35629. # endif
  35630. }
  35631. bool operator!=( MemoryAllocateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  35632. {
  35633. return !operator==( rhs );
  35634. }
  35635. #endif
  35636. public:
  35637. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eMemoryAllocateInfo;
  35638. const void * pNext = {};
  35639. VULKAN_HPP_NAMESPACE::DeviceSize allocationSize = {};
  35640. uint32_t memoryTypeIndex = {};
  35641. };
  35642. template <>
  35643. struct CppType<StructureType, StructureType::eMemoryAllocateInfo>
  35644. {
  35645. using Type = MemoryAllocateInfo;
  35646. };
  35647. struct MemoryBarrier
  35648. {
  35649. using NativeType = VkMemoryBarrier;
  35650. static const bool allowDuplicate = false;
  35651. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eMemoryBarrier;
  35652. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  35653. VULKAN_HPP_CONSTEXPR MemoryBarrier( VULKAN_HPP_NAMESPACE::AccessFlags srcAccessMask_ = {},
  35654. VULKAN_HPP_NAMESPACE::AccessFlags dstAccessMask_ = {},
  35655. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  35656. : pNext( pNext_ )
  35657. , srcAccessMask( srcAccessMask_ )
  35658. , dstAccessMask( dstAccessMask_ )
  35659. {
  35660. }
  35661. VULKAN_HPP_CONSTEXPR MemoryBarrier( MemoryBarrier const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  35662. MemoryBarrier( VkMemoryBarrier const & rhs ) VULKAN_HPP_NOEXCEPT : MemoryBarrier( *reinterpret_cast<MemoryBarrier const *>( &rhs ) ) {}
  35663. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  35664. MemoryBarrier & operator=( MemoryBarrier const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  35665. MemoryBarrier & operator=( VkMemoryBarrier const & rhs ) VULKAN_HPP_NOEXCEPT
  35666. {
  35667. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::MemoryBarrier const *>( &rhs );
  35668. return *this;
  35669. }
  35670. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  35671. VULKAN_HPP_CONSTEXPR_14 MemoryBarrier & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  35672. {
  35673. pNext = pNext_;
  35674. return *this;
  35675. }
  35676. VULKAN_HPP_CONSTEXPR_14 MemoryBarrier & setSrcAccessMask( VULKAN_HPP_NAMESPACE::AccessFlags srcAccessMask_ ) VULKAN_HPP_NOEXCEPT
  35677. {
  35678. srcAccessMask = srcAccessMask_;
  35679. return *this;
  35680. }
  35681. VULKAN_HPP_CONSTEXPR_14 MemoryBarrier & setDstAccessMask( VULKAN_HPP_NAMESPACE::AccessFlags dstAccessMask_ ) VULKAN_HPP_NOEXCEPT
  35682. {
  35683. dstAccessMask = dstAccessMask_;
  35684. return *this;
  35685. }
  35686. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  35687. operator VkMemoryBarrier const &() const VULKAN_HPP_NOEXCEPT
  35688. {
  35689. return *reinterpret_cast<const VkMemoryBarrier *>( this );
  35690. }
  35691. operator VkMemoryBarrier &() VULKAN_HPP_NOEXCEPT
  35692. {
  35693. return *reinterpret_cast<VkMemoryBarrier *>( this );
  35694. }
  35695. #if defined( VULKAN_HPP_USE_REFLECT )
  35696. # if 14 <= VULKAN_HPP_CPP_VERSION
  35697. auto
  35698. # else
  35699. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  35700. const void * const &,
  35701. VULKAN_HPP_NAMESPACE::AccessFlags const &,
  35702. VULKAN_HPP_NAMESPACE::AccessFlags const &>
  35703. # endif
  35704. reflect() const VULKAN_HPP_NOEXCEPT
  35705. {
  35706. return std::tie( sType, pNext, srcAccessMask, dstAccessMask );
  35707. }
  35708. #endif
  35709. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  35710. auto operator<=>( MemoryBarrier const & ) const = default;
  35711. #else
  35712. bool operator==( MemoryBarrier const & rhs ) const VULKAN_HPP_NOEXCEPT
  35713. {
  35714. # if defined( VULKAN_HPP_USE_REFLECT )
  35715. return this->reflect() == rhs.reflect();
  35716. # else
  35717. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( srcAccessMask == rhs.srcAccessMask ) && ( dstAccessMask == rhs.dstAccessMask );
  35718. # endif
  35719. }
  35720. bool operator!=( MemoryBarrier const & rhs ) const VULKAN_HPP_NOEXCEPT
  35721. {
  35722. return !operator==( rhs );
  35723. }
  35724. #endif
  35725. public:
  35726. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eMemoryBarrier;
  35727. const void * pNext = {};
  35728. VULKAN_HPP_NAMESPACE::AccessFlags srcAccessMask = {};
  35729. VULKAN_HPP_NAMESPACE::AccessFlags dstAccessMask = {};
  35730. };
  35731. template <>
  35732. struct CppType<StructureType, StructureType::eMemoryBarrier>
  35733. {
  35734. using Type = MemoryBarrier;
  35735. };
  35736. struct MemoryDedicatedAllocateInfo
  35737. {
  35738. using NativeType = VkMemoryDedicatedAllocateInfo;
  35739. static const bool allowDuplicate = false;
  35740. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eMemoryDedicatedAllocateInfo;
  35741. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  35742. VULKAN_HPP_CONSTEXPR MemoryDedicatedAllocateInfo( VULKAN_HPP_NAMESPACE::Image image_ = {},
  35743. VULKAN_HPP_NAMESPACE::Buffer buffer_ = {},
  35744. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  35745. : pNext( pNext_ )
  35746. , image( image_ )
  35747. , buffer( buffer_ )
  35748. {
  35749. }
  35750. VULKAN_HPP_CONSTEXPR MemoryDedicatedAllocateInfo( MemoryDedicatedAllocateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  35751. MemoryDedicatedAllocateInfo( VkMemoryDedicatedAllocateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
  35752. : MemoryDedicatedAllocateInfo( *reinterpret_cast<MemoryDedicatedAllocateInfo const *>( &rhs ) )
  35753. {
  35754. }
  35755. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  35756. MemoryDedicatedAllocateInfo & operator=( MemoryDedicatedAllocateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  35757. MemoryDedicatedAllocateInfo & operator=( VkMemoryDedicatedAllocateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
  35758. {
  35759. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::MemoryDedicatedAllocateInfo const *>( &rhs );
  35760. return *this;
  35761. }
  35762. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  35763. VULKAN_HPP_CONSTEXPR_14 MemoryDedicatedAllocateInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  35764. {
  35765. pNext = pNext_;
  35766. return *this;
  35767. }
  35768. VULKAN_HPP_CONSTEXPR_14 MemoryDedicatedAllocateInfo & setImage( VULKAN_HPP_NAMESPACE::Image image_ ) VULKAN_HPP_NOEXCEPT
  35769. {
  35770. image = image_;
  35771. return *this;
  35772. }
  35773. VULKAN_HPP_CONSTEXPR_14 MemoryDedicatedAllocateInfo & setBuffer( VULKAN_HPP_NAMESPACE::Buffer buffer_ ) VULKAN_HPP_NOEXCEPT
  35774. {
  35775. buffer = buffer_;
  35776. return *this;
  35777. }
  35778. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  35779. operator VkMemoryDedicatedAllocateInfo const &() const VULKAN_HPP_NOEXCEPT
  35780. {
  35781. return *reinterpret_cast<const VkMemoryDedicatedAllocateInfo *>( this );
  35782. }
  35783. operator VkMemoryDedicatedAllocateInfo &() VULKAN_HPP_NOEXCEPT
  35784. {
  35785. return *reinterpret_cast<VkMemoryDedicatedAllocateInfo *>( this );
  35786. }
  35787. #if defined( VULKAN_HPP_USE_REFLECT )
  35788. # if 14 <= VULKAN_HPP_CPP_VERSION
  35789. auto
  35790. # else
  35791. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::Image const &, VULKAN_HPP_NAMESPACE::Buffer const &>
  35792. # endif
  35793. reflect() const VULKAN_HPP_NOEXCEPT
  35794. {
  35795. return std::tie( sType, pNext, image, buffer );
  35796. }
  35797. #endif
  35798. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  35799. auto operator<=>( MemoryDedicatedAllocateInfo const & ) const = default;
  35800. #else
  35801. bool operator==( MemoryDedicatedAllocateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  35802. {
  35803. # if defined( VULKAN_HPP_USE_REFLECT )
  35804. return this->reflect() == rhs.reflect();
  35805. # else
  35806. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( image == rhs.image ) && ( buffer == rhs.buffer );
  35807. # endif
  35808. }
  35809. bool operator!=( MemoryDedicatedAllocateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  35810. {
  35811. return !operator==( rhs );
  35812. }
  35813. #endif
  35814. public:
  35815. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eMemoryDedicatedAllocateInfo;
  35816. const void * pNext = {};
  35817. VULKAN_HPP_NAMESPACE::Image image = {};
  35818. VULKAN_HPP_NAMESPACE::Buffer buffer = {};
  35819. };
  35820. template <>
  35821. struct CppType<StructureType, StructureType::eMemoryDedicatedAllocateInfo>
  35822. {
  35823. using Type = MemoryDedicatedAllocateInfo;
  35824. };
  35825. using MemoryDedicatedAllocateInfoKHR = MemoryDedicatedAllocateInfo;
  35826. struct MemoryDedicatedRequirements
  35827. {
  35828. using NativeType = VkMemoryDedicatedRequirements;
  35829. static const bool allowDuplicate = false;
  35830. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eMemoryDedicatedRequirements;
  35831. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  35832. VULKAN_HPP_CONSTEXPR MemoryDedicatedRequirements( VULKAN_HPP_NAMESPACE::Bool32 prefersDedicatedAllocation_ = {},
  35833. VULKAN_HPP_NAMESPACE::Bool32 requiresDedicatedAllocation_ = {},
  35834. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  35835. : pNext( pNext_ )
  35836. , prefersDedicatedAllocation( prefersDedicatedAllocation_ )
  35837. , requiresDedicatedAllocation( requiresDedicatedAllocation_ )
  35838. {
  35839. }
  35840. VULKAN_HPP_CONSTEXPR MemoryDedicatedRequirements( MemoryDedicatedRequirements const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  35841. MemoryDedicatedRequirements( VkMemoryDedicatedRequirements const & rhs ) VULKAN_HPP_NOEXCEPT
  35842. : MemoryDedicatedRequirements( *reinterpret_cast<MemoryDedicatedRequirements const *>( &rhs ) )
  35843. {
  35844. }
  35845. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  35846. MemoryDedicatedRequirements & operator=( MemoryDedicatedRequirements const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  35847. MemoryDedicatedRequirements & operator=( VkMemoryDedicatedRequirements const & rhs ) VULKAN_HPP_NOEXCEPT
  35848. {
  35849. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::MemoryDedicatedRequirements const *>( &rhs );
  35850. return *this;
  35851. }
  35852. operator VkMemoryDedicatedRequirements const &() const VULKAN_HPP_NOEXCEPT
  35853. {
  35854. return *reinterpret_cast<const VkMemoryDedicatedRequirements *>( this );
  35855. }
  35856. operator VkMemoryDedicatedRequirements &() VULKAN_HPP_NOEXCEPT
  35857. {
  35858. return *reinterpret_cast<VkMemoryDedicatedRequirements *>( this );
  35859. }
  35860. #if defined( VULKAN_HPP_USE_REFLECT )
  35861. # if 14 <= VULKAN_HPP_CPP_VERSION
  35862. auto
  35863. # else
  35864. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
  35865. # endif
  35866. reflect() const VULKAN_HPP_NOEXCEPT
  35867. {
  35868. return std::tie( sType, pNext, prefersDedicatedAllocation, requiresDedicatedAllocation );
  35869. }
  35870. #endif
  35871. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  35872. auto operator<=>( MemoryDedicatedRequirements const & ) const = default;
  35873. #else
  35874. bool operator==( MemoryDedicatedRequirements const & rhs ) const VULKAN_HPP_NOEXCEPT
  35875. {
  35876. # if defined( VULKAN_HPP_USE_REFLECT )
  35877. return this->reflect() == rhs.reflect();
  35878. # else
  35879. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( prefersDedicatedAllocation == rhs.prefersDedicatedAllocation ) &&
  35880. ( requiresDedicatedAllocation == rhs.requiresDedicatedAllocation );
  35881. # endif
  35882. }
  35883. bool operator!=( MemoryDedicatedRequirements const & rhs ) const VULKAN_HPP_NOEXCEPT
  35884. {
  35885. return !operator==( rhs );
  35886. }
  35887. #endif
  35888. public:
  35889. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eMemoryDedicatedRequirements;
  35890. void * pNext = {};
  35891. VULKAN_HPP_NAMESPACE::Bool32 prefersDedicatedAllocation = {};
  35892. VULKAN_HPP_NAMESPACE::Bool32 requiresDedicatedAllocation = {};
  35893. };
  35894. template <>
  35895. struct CppType<StructureType, StructureType::eMemoryDedicatedRequirements>
  35896. {
  35897. using Type = MemoryDedicatedRequirements;
  35898. };
  35899. using MemoryDedicatedRequirementsKHR = MemoryDedicatedRequirements;
  35900. struct MemoryFdPropertiesKHR
  35901. {
  35902. using NativeType = VkMemoryFdPropertiesKHR;
  35903. static const bool allowDuplicate = false;
  35904. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eMemoryFdPropertiesKHR;
  35905. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  35906. VULKAN_HPP_CONSTEXPR MemoryFdPropertiesKHR( uint32_t memoryTypeBits_ = {}, void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  35907. : pNext( pNext_ )
  35908. , memoryTypeBits( memoryTypeBits_ )
  35909. {
  35910. }
  35911. VULKAN_HPP_CONSTEXPR MemoryFdPropertiesKHR( MemoryFdPropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  35912. MemoryFdPropertiesKHR( VkMemoryFdPropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  35913. : MemoryFdPropertiesKHR( *reinterpret_cast<MemoryFdPropertiesKHR const *>( &rhs ) )
  35914. {
  35915. }
  35916. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  35917. MemoryFdPropertiesKHR & operator=( MemoryFdPropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  35918. MemoryFdPropertiesKHR & operator=( VkMemoryFdPropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  35919. {
  35920. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::MemoryFdPropertiesKHR const *>( &rhs );
  35921. return *this;
  35922. }
  35923. operator VkMemoryFdPropertiesKHR const &() const VULKAN_HPP_NOEXCEPT
  35924. {
  35925. return *reinterpret_cast<const VkMemoryFdPropertiesKHR *>( this );
  35926. }
  35927. operator VkMemoryFdPropertiesKHR &() VULKAN_HPP_NOEXCEPT
  35928. {
  35929. return *reinterpret_cast<VkMemoryFdPropertiesKHR *>( this );
  35930. }
  35931. #if defined( VULKAN_HPP_USE_REFLECT )
  35932. # if 14 <= VULKAN_HPP_CPP_VERSION
  35933. auto
  35934. # else
  35935. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, uint32_t const &>
  35936. # endif
  35937. reflect() const VULKAN_HPP_NOEXCEPT
  35938. {
  35939. return std::tie( sType, pNext, memoryTypeBits );
  35940. }
  35941. #endif
  35942. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  35943. auto operator<=>( MemoryFdPropertiesKHR const & ) const = default;
  35944. #else
  35945. bool operator==( MemoryFdPropertiesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  35946. {
  35947. # if defined( VULKAN_HPP_USE_REFLECT )
  35948. return this->reflect() == rhs.reflect();
  35949. # else
  35950. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( memoryTypeBits == rhs.memoryTypeBits );
  35951. # endif
  35952. }
  35953. bool operator!=( MemoryFdPropertiesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  35954. {
  35955. return !operator==( rhs );
  35956. }
  35957. #endif
  35958. public:
  35959. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eMemoryFdPropertiesKHR;
  35960. void * pNext = {};
  35961. uint32_t memoryTypeBits = {};
  35962. };
  35963. template <>
  35964. struct CppType<StructureType, StructureType::eMemoryFdPropertiesKHR>
  35965. {
  35966. using Type = MemoryFdPropertiesKHR;
  35967. };
  35968. #if defined( VK_USE_PLATFORM_ANDROID_KHR )
  35969. struct MemoryGetAndroidHardwareBufferInfoANDROID
  35970. {
  35971. using NativeType = VkMemoryGetAndroidHardwareBufferInfoANDROID;
  35972. static const bool allowDuplicate = false;
  35973. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eMemoryGetAndroidHardwareBufferInfoANDROID;
  35974. # if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  35975. VULKAN_HPP_CONSTEXPR MemoryGetAndroidHardwareBufferInfoANDROID( VULKAN_HPP_NAMESPACE::DeviceMemory memory_ = {},
  35976. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  35977. : pNext( pNext_ )
  35978. , memory( memory_ )
  35979. {
  35980. }
  35981. VULKAN_HPP_CONSTEXPR MemoryGetAndroidHardwareBufferInfoANDROID( MemoryGetAndroidHardwareBufferInfoANDROID const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  35982. MemoryGetAndroidHardwareBufferInfoANDROID( VkMemoryGetAndroidHardwareBufferInfoANDROID const & rhs ) VULKAN_HPP_NOEXCEPT
  35983. : MemoryGetAndroidHardwareBufferInfoANDROID( *reinterpret_cast<MemoryGetAndroidHardwareBufferInfoANDROID const *>( &rhs ) )
  35984. {
  35985. }
  35986. # endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  35987. MemoryGetAndroidHardwareBufferInfoANDROID & operator=( MemoryGetAndroidHardwareBufferInfoANDROID const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  35988. MemoryGetAndroidHardwareBufferInfoANDROID & operator=( VkMemoryGetAndroidHardwareBufferInfoANDROID const & rhs ) VULKAN_HPP_NOEXCEPT
  35989. {
  35990. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::MemoryGetAndroidHardwareBufferInfoANDROID const *>( &rhs );
  35991. return *this;
  35992. }
  35993. # if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  35994. VULKAN_HPP_CONSTEXPR_14 MemoryGetAndroidHardwareBufferInfoANDROID & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  35995. {
  35996. pNext = pNext_;
  35997. return *this;
  35998. }
  35999. VULKAN_HPP_CONSTEXPR_14 MemoryGetAndroidHardwareBufferInfoANDROID & setMemory( VULKAN_HPP_NAMESPACE::DeviceMemory memory_ ) VULKAN_HPP_NOEXCEPT
  36000. {
  36001. memory = memory_;
  36002. return *this;
  36003. }
  36004. # endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  36005. operator VkMemoryGetAndroidHardwareBufferInfoANDROID const &() const VULKAN_HPP_NOEXCEPT
  36006. {
  36007. return *reinterpret_cast<const VkMemoryGetAndroidHardwareBufferInfoANDROID *>( this );
  36008. }
  36009. operator VkMemoryGetAndroidHardwareBufferInfoANDROID &() VULKAN_HPP_NOEXCEPT
  36010. {
  36011. return *reinterpret_cast<VkMemoryGetAndroidHardwareBufferInfoANDROID *>( this );
  36012. }
  36013. # if defined( VULKAN_HPP_USE_REFLECT )
  36014. # if 14 <= VULKAN_HPP_CPP_VERSION
  36015. auto
  36016. # else
  36017. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::DeviceMemory const &>
  36018. # endif
  36019. reflect() const VULKAN_HPP_NOEXCEPT
  36020. {
  36021. return std::tie( sType, pNext, memory );
  36022. }
  36023. # endif
  36024. # if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  36025. auto operator<=>( MemoryGetAndroidHardwareBufferInfoANDROID const & ) const = default;
  36026. # else
  36027. bool operator==( MemoryGetAndroidHardwareBufferInfoANDROID const & rhs ) const VULKAN_HPP_NOEXCEPT
  36028. {
  36029. # if defined( VULKAN_HPP_USE_REFLECT )
  36030. return this->reflect() == rhs.reflect();
  36031. # else
  36032. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( memory == rhs.memory );
  36033. # endif
  36034. }
  36035. bool operator!=( MemoryGetAndroidHardwareBufferInfoANDROID const & rhs ) const VULKAN_HPP_NOEXCEPT
  36036. {
  36037. return !operator==( rhs );
  36038. }
  36039. # endif
  36040. public:
  36041. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eMemoryGetAndroidHardwareBufferInfoANDROID;
  36042. const void * pNext = {};
  36043. VULKAN_HPP_NAMESPACE::DeviceMemory memory = {};
  36044. };
  36045. template <>
  36046. struct CppType<StructureType, StructureType::eMemoryGetAndroidHardwareBufferInfoANDROID>
  36047. {
  36048. using Type = MemoryGetAndroidHardwareBufferInfoANDROID;
  36049. };
  36050. #endif /*VK_USE_PLATFORM_ANDROID_KHR*/
  36051. struct MemoryGetFdInfoKHR
  36052. {
  36053. using NativeType = VkMemoryGetFdInfoKHR;
  36054. static const bool allowDuplicate = false;
  36055. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eMemoryGetFdInfoKHR;
  36056. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  36057. VULKAN_HPP_CONSTEXPR MemoryGetFdInfoKHR(
  36058. VULKAN_HPP_NAMESPACE::DeviceMemory memory_ = {},
  36059. VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType_ = VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits::eOpaqueFd,
  36060. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  36061. : pNext( pNext_ )
  36062. , memory( memory_ )
  36063. , handleType( handleType_ )
  36064. {
  36065. }
  36066. VULKAN_HPP_CONSTEXPR MemoryGetFdInfoKHR( MemoryGetFdInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  36067. MemoryGetFdInfoKHR( VkMemoryGetFdInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT : MemoryGetFdInfoKHR( *reinterpret_cast<MemoryGetFdInfoKHR const *>( &rhs ) ) {}
  36068. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  36069. MemoryGetFdInfoKHR & operator=( MemoryGetFdInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  36070. MemoryGetFdInfoKHR & operator=( VkMemoryGetFdInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  36071. {
  36072. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::MemoryGetFdInfoKHR const *>( &rhs );
  36073. return *this;
  36074. }
  36075. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  36076. VULKAN_HPP_CONSTEXPR_14 MemoryGetFdInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  36077. {
  36078. pNext = pNext_;
  36079. return *this;
  36080. }
  36081. VULKAN_HPP_CONSTEXPR_14 MemoryGetFdInfoKHR & setMemory( VULKAN_HPP_NAMESPACE::DeviceMemory memory_ ) VULKAN_HPP_NOEXCEPT
  36082. {
  36083. memory = memory_;
  36084. return *this;
  36085. }
  36086. VULKAN_HPP_CONSTEXPR_14 MemoryGetFdInfoKHR & setHandleType( VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType_ ) VULKAN_HPP_NOEXCEPT
  36087. {
  36088. handleType = handleType_;
  36089. return *this;
  36090. }
  36091. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  36092. operator VkMemoryGetFdInfoKHR const &() const VULKAN_HPP_NOEXCEPT
  36093. {
  36094. return *reinterpret_cast<const VkMemoryGetFdInfoKHR *>( this );
  36095. }
  36096. operator VkMemoryGetFdInfoKHR &() VULKAN_HPP_NOEXCEPT
  36097. {
  36098. return *reinterpret_cast<VkMemoryGetFdInfoKHR *>( this );
  36099. }
  36100. #if defined( VULKAN_HPP_USE_REFLECT )
  36101. # if 14 <= VULKAN_HPP_CPP_VERSION
  36102. auto
  36103. # else
  36104. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  36105. const void * const &,
  36106. VULKAN_HPP_NAMESPACE::DeviceMemory const &,
  36107. VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits const &>
  36108. # endif
  36109. reflect() const VULKAN_HPP_NOEXCEPT
  36110. {
  36111. return std::tie( sType, pNext, memory, handleType );
  36112. }
  36113. #endif
  36114. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  36115. auto operator<=>( MemoryGetFdInfoKHR const & ) const = default;
  36116. #else
  36117. bool operator==( MemoryGetFdInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  36118. {
  36119. # if defined( VULKAN_HPP_USE_REFLECT )
  36120. return this->reflect() == rhs.reflect();
  36121. # else
  36122. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( memory == rhs.memory ) && ( handleType == rhs.handleType );
  36123. # endif
  36124. }
  36125. bool operator!=( MemoryGetFdInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  36126. {
  36127. return !operator==( rhs );
  36128. }
  36129. #endif
  36130. public:
  36131. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eMemoryGetFdInfoKHR;
  36132. const void * pNext = {};
  36133. VULKAN_HPP_NAMESPACE::DeviceMemory memory = {};
  36134. VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType = VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits::eOpaqueFd;
  36135. };
  36136. template <>
  36137. struct CppType<StructureType, StructureType::eMemoryGetFdInfoKHR>
  36138. {
  36139. using Type = MemoryGetFdInfoKHR;
  36140. };
  36141. struct MemoryGetRemoteAddressInfoNV
  36142. {
  36143. using NativeType = VkMemoryGetRemoteAddressInfoNV;
  36144. static const bool allowDuplicate = false;
  36145. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eMemoryGetRemoteAddressInfoNV;
  36146. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  36147. VULKAN_HPP_CONSTEXPR MemoryGetRemoteAddressInfoNV(
  36148. VULKAN_HPP_NAMESPACE::DeviceMemory memory_ = {},
  36149. VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType_ = VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits::eOpaqueFd,
  36150. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  36151. : pNext( pNext_ )
  36152. , memory( memory_ )
  36153. , handleType( handleType_ )
  36154. {
  36155. }
  36156. VULKAN_HPP_CONSTEXPR MemoryGetRemoteAddressInfoNV( MemoryGetRemoteAddressInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  36157. MemoryGetRemoteAddressInfoNV( VkMemoryGetRemoteAddressInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
  36158. : MemoryGetRemoteAddressInfoNV( *reinterpret_cast<MemoryGetRemoteAddressInfoNV const *>( &rhs ) )
  36159. {
  36160. }
  36161. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  36162. MemoryGetRemoteAddressInfoNV & operator=( MemoryGetRemoteAddressInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  36163. MemoryGetRemoteAddressInfoNV & operator=( VkMemoryGetRemoteAddressInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
  36164. {
  36165. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::MemoryGetRemoteAddressInfoNV const *>( &rhs );
  36166. return *this;
  36167. }
  36168. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  36169. VULKAN_HPP_CONSTEXPR_14 MemoryGetRemoteAddressInfoNV & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  36170. {
  36171. pNext = pNext_;
  36172. return *this;
  36173. }
  36174. VULKAN_HPP_CONSTEXPR_14 MemoryGetRemoteAddressInfoNV & setMemory( VULKAN_HPP_NAMESPACE::DeviceMemory memory_ ) VULKAN_HPP_NOEXCEPT
  36175. {
  36176. memory = memory_;
  36177. return *this;
  36178. }
  36179. VULKAN_HPP_CONSTEXPR_14 MemoryGetRemoteAddressInfoNV &
  36180. setHandleType( VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType_ ) VULKAN_HPP_NOEXCEPT
  36181. {
  36182. handleType = handleType_;
  36183. return *this;
  36184. }
  36185. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  36186. operator VkMemoryGetRemoteAddressInfoNV const &() const VULKAN_HPP_NOEXCEPT
  36187. {
  36188. return *reinterpret_cast<const VkMemoryGetRemoteAddressInfoNV *>( this );
  36189. }
  36190. operator VkMemoryGetRemoteAddressInfoNV &() VULKAN_HPP_NOEXCEPT
  36191. {
  36192. return *reinterpret_cast<VkMemoryGetRemoteAddressInfoNV *>( this );
  36193. }
  36194. #if defined( VULKAN_HPP_USE_REFLECT )
  36195. # if 14 <= VULKAN_HPP_CPP_VERSION
  36196. auto
  36197. # else
  36198. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  36199. const void * const &,
  36200. VULKAN_HPP_NAMESPACE::DeviceMemory const &,
  36201. VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits const &>
  36202. # endif
  36203. reflect() const VULKAN_HPP_NOEXCEPT
  36204. {
  36205. return std::tie( sType, pNext, memory, handleType );
  36206. }
  36207. #endif
  36208. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  36209. auto operator<=>( MemoryGetRemoteAddressInfoNV const & ) const = default;
  36210. #else
  36211. bool operator==( MemoryGetRemoteAddressInfoNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  36212. {
  36213. # if defined( VULKAN_HPP_USE_REFLECT )
  36214. return this->reflect() == rhs.reflect();
  36215. # else
  36216. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( memory == rhs.memory ) && ( handleType == rhs.handleType );
  36217. # endif
  36218. }
  36219. bool operator!=( MemoryGetRemoteAddressInfoNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  36220. {
  36221. return !operator==( rhs );
  36222. }
  36223. #endif
  36224. public:
  36225. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eMemoryGetRemoteAddressInfoNV;
  36226. const void * pNext = {};
  36227. VULKAN_HPP_NAMESPACE::DeviceMemory memory = {};
  36228. VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType = VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits::eOpaqueFd;
  36229. };
  36230. template <>
  36231. struct CppType<StructureType, StructureType::eMemoryGetRemoteAddressInfoNV>
  36232. {
  36233. using Type = MemoryGetRemoteAddressInfoNV;
  36234. };
  36235. #if defined( VK_USE_PLATFORM_WIN32_KHR )
  36236. struct MemoryGetWin32HandleInfoKHR
  36237. {
  36238. using NativeType = VkMemoryGetWin32HandleInfoKHR;
  36239. static const bool allowDuplicate = false;
  36240. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eMemoryGetWin32HandleInfoKHR;
  36241. # if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  36242. VULKAN_HPP_CONSTEXPR MemoryGetWin32HandleInfoKHR(
  36243. VULKAN_HPP_NAMESPACE::DeviceMemory memory_ = {},
  36244. VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType_ = VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits::eOpaqueFd,
  36245. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  36246. : pNext( pNext_ )
  36247. , memory( memory_ )
  36248. , handleType( handleType_ )
  36249. {
  36250. }
  36251. VULKAN_HPP_CONSTEXPR MemoryGetWin32HandleInfoKHR( MemoryGetWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  36252. MemoryGetWin32HandleInfoKHR( VkMemoryGetWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  36253. : MemoryGetWin32HandleInfoKHR( *reinterpret_cast<MemoryGetWin32HandleInfoKHR const *>( &rhs ) )
  36254. {
  36255. }
  36256. # endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  36257. MemoryGetWin32HandleInfoKHR & operator=( MemoryGetWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  36258. MemoryGetWin32HandleInfoKHR & operator=( VkMemoryGetWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  36259. {
  36260. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::MemoryGetWin32HandleInfoKHR const *>( &rhs );
  36261. return *this;
  36262. }
  36263. # if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  36264. VULKAN_HPP_CONSTEXPR_14 MemoryGetWin32HandleInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  36265. {
  36266. pNext = pNext_;
  36267. return *this;
  36268. }
  36269. VULKAN_HPP_CONSTEXPR_14 MemoryGetWin32HandleInfoKHR & setMemory( VULKAN_HPP_NAMESPACE::DeviceMemory memory_ ) VULKAN_HPP_NOEXCEPT
  36270. {
  36271. memory = memory_;
  36272. return *this;
  36273. }
  36274. VULKAN_HPP_CONSTEXPR_14 MemoryGetWin32HandleInfoKHR &
  36275. setHandleType( VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType_ ) VULKAN_HPP_NOEXCEPT
  36276. {
  36277. handleType = handleType_;
  36278. return *this;
  36279. }
  36280. # endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  36281. operator VkMemoryGetWin32HandleInfoKHR const &() const VULKAN_HPP_NOEXCEPT
  36282. {
  36283. return *reinterpret_cast<const VkMemoryGetWin32HandleInfoKHR *>( this );
  36284. }
  36285. operator VkMemoryGetWin32HandleInfoKHR &() VULKAN_HPP_NOEXCEPT
  36286. {
  36287. return *reinterpret_cast<VkMemoryGetWin32HandleInfoKHR *>( this );
  36288. }
  36289. # if defined( VULKAN_HPP_USE_REFLECT )
  36290. # if 14 <= VULKAN_HPP_CPP_VERSION
  36291. auto
  36292. # else
  36293. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  36294. const void * const &,
  36295. VULKAN_HPP_NAMESPACE::DeviceMemory const &,
  36296. VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits const &>
  36297. # endif
  36298. reflect() const VULKAN_HPP_NOEXCEPT
  36299. {
  36300. return std::tie( sType, pNext, memory, handleType );
  36301. }
  36302. # endif
  36303. # if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  36304. auto operator<=>( MemoryGetWin32HandleInfoKHR const & ) const = default;
  36305. # else
  36306. bool operator==( MemoryGetWin32HandleInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  36307. {
  36308. # if defined( VULKAN_HPP_USE_REFLECT )
  36309. return this->reflect() == rhs.reflect();
  36310. # else
  36311. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( memory == rhs.memory ) && ( handleType == rhs.handleType );
  36312. # endif
  36313. }
  36314. bool operator!=( MemoryGetWin32HandleInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  36315. {
  36316. return !operator==( rhs );
  36317. }
  36318. # endif
  36319. public:
  36320. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eMemoryGetWin32HandleInfoKHR;
  36321. const void * pNext = {};
  36322. VULKAN_HPP_NAMESPACE::DeviceMemory memory = {};
  36323. VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType = VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits::eOpaqueFd;
  36324. };
  36325. template <>
  36326. struct CppType<StructureType, StructureType::eMemoryGetWin32HandleInfoKHR>
  36327. {
  36328. using Type = MemoryGetWin32HandleInfoKHR;
  36329. };
  36330. #endif /*VK_USE_PLATFORM_WIN32_KHR*/
  36331. #if defined( VK_USE_PLATFORM_FUCHSIA )
  36332. struct MemoryGetZirconHandleInfoFUCHSIA
  36333. {
  36334. using NativeType = VkMemoryGetZirconHandleInfoFUCHSIA;
  36335. static const bool allowDuplicate = false;
  36336. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eMemoryGetZirconHandleInfoFUCHSIA;
  36337. # if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  36338. VULKAN_HPP_CONSTEXPR MemoryGetZirconHandleInfoFUCHSIA(
  36339. VULKAN_HPP_NAMESPACE::DeviceMemory memory_ = {},
  36340. VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType_ = VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits::eOpaqueFd,
  36341. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  36342. : pNext( pNext_ )
  36343. , memory( memory_ )
  36344. , handleType( handleType_ )
  36345. {
  36346. }
  36347. VULKAN_HPP_CONSTEXPR MemoryGetZirconHandleInfoFUCHSIA( MemoryGetZirconHandleInfoFUCHSIA const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  36348. MemoryGetZirconHandleInfoFUCHSIA( VkMemoryGetZirconHandleInfoFUCHSIA const & rhs ) VULKAN_HPP_NOEXCEPT
  36349. : MemoryGetZirconHandleInfoFUCHSIA( *reinterpret_cast<MemoryGetZirconHandleInfoFUCHSIA const *>( &rhs ) )
  36350. {
  36351. }
  36352. # endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  36353. MemoryGetZirconHandleInfoFUCHSIA & operator=( MemoryGetZirconHandleInfoFUCHSIA const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  36354. MemoryGetZirconHandleInfoFUCHSIA & operator=( VkMemoryGetZirconHandleInfoFUCHSIA const & rhs ) VULKAN_HPP_NOEXCEPT
  36355. {
  36356. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::MemoryGetZirconHandleInfoFUCHSIA const *>( &rhs );
  36357. return *this;
  36358. }
  36359. # if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  36360. VULKAN_HPP_CONSTEXPR_14 MemoryGetZirconHandleInfoFUCHSIA & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  36361. {
  36362. pNext = pNext_;
  36363. return *this;
  36364. }
  36365. VULKAN_HPP_CONSTEXPR_14 MemoryGetZirconHandleInfoFUCHSIA & setMemory( VULKAN_HPP_NAMESPACE::DeviceMemory memory_ ) VULKAN_HPP_NOEXCEPT
  36366. {
  36367. memory = memory_;
  36368. return *this;
  36369. }
  36370. VULKAN_HPP_CONSTEXPR_14 MemoryGetZirconHandleInfoFUCHSIA &
  36371. setHandleType( VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType_ ) VULKAN_HPP_NOEXCEPT
  36372. {
  36373. handleType = handleType_;
  36374. return *this;
  36375. }
  36376. # endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  36377. operator VkMemoryGetZirconHandleInfoFUCHSIA const &() const VULKAN_HPP_NOEXCEPT
  36378. {
  36379. return *reinterpret_cast<const VkMemoryGetZirconHandleInfoFUCHSIA *>( this );
  36380. }
  36381. operator VkMemoryGetZirconHandleInfoFUCHSIA &() VULKAN_HPP_NOEXCEPT
  36382. {
  36383. return *reinterpret_cast<VkMemoryGetZirconHandleInfoFUCHSIA *>( this );
  36384. }
  36385. # if defined( VULKAN_HPP_USE_REFLECT )
  36386. # if 14 <= VULKAN_HPP_CPP_VERSION
  36387. auto
  36388. # else
  36389. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  36390. const void * const &,
  36391. VULKAN_HPP_NAMESPACE::DeviceMemory const &,
  36392. VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits const &>
  36393. # endif
  36394. reflect() const VULKAN_HPP_NOEXCEPT
  36395. {
  36396. return std::tie( sType, pNext, memory, handleType );
  36397. }
  36398. # endif
  36399. # if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  36400. auto operator<=>( MemoryGetZirconHandleInfoFUCHSIA const & ) const = default;
  36401. # else
  36402. bool operator==( MemoryGetZirconHandleInfoFUCHSIA const & rhs ) const VULKAN_HPP_NOEXCEPT
  36403. {
  36404. # if defined( VULKAN_HPP_USE_REFLECT )
  36405. return this->reflect() == rhs.reflect();
  36406. # else
  36407. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( memory == rhs.memory ) && ( handleType == rhs.handleType );
  36408. # endif
  36409. }
  36410. bool operator!=( MemoryGetZirconHandleInfoFUCHSIA const & rhs ) const VULKAN_HPP_NOEXCEPT
  36411. {
  36412. return !operator==( rhs );
  36413. }
  36414. # endif
  36415. public:
  36416. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eMemoryGetZirconHandleInfoFUCHSIA;
  36417. const void * pNext = {};
  36418. VULKAN_HPP_NAMESPACE::DeviceMemory memory = {};
  36419. VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType = VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits::eOpaqueFd;
  36420. };
  36421. template <>
  36422. struct CppType<StructureType, StructureType::eMemoryGetZirconHandleInfoFUCHSIA>
  36423. {
  36424. using Type = MemoryGetZirconHandleInfoFUCHSIA;
  36425. };
  36426. #endif /*VK_USE_PLATFORM_FUCHSIA*/
  36427. struct MemoryHeap
  36428. {
  36429. using NativeType = VkMemoryHeap;
  36430. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  36431. VULKAN_HPP_CONSTEXPR MemoryHeap( VULKAN_HPP_NAMESPACE::DeviceSize size_ = {}, VULKAN_HPP_NAMESPACE::MemoryHeapFlags flags_ = {} ) VULKAN_HPP_NOEXCEPT
  36432. : size( size_ )
  36433. , flags( flags_ )
  36434. {
  36435. }
  36436. VULKAN_HPP_CONSTEXPR MemoryHeap( MemoryHeap const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  36437. MemoryHeap( VkMemoryHeap const & rhs ) VULKAN_HPP_NOEXCEPT : MemoryHeap( *reinterpret_cast<MemoryHeap const *>( &rhs ) ) {}
  36438. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  36439. MemoryHeap & operator=( MemoryHeap const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  36440. MemoryHeap & operator=( VkMemoryHeap const & rhs ) VULKAN_HPP_NOEXCEPT
  36441. {
  36442. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::MemoryHeap const *>( &rhs );
  36443. return *this;
  36444. }
  36445. operator VkMemoryHeap const &() const VULKAN_HPP_NOEXCEPT
  36446. {
  36447. return *reinterpret_cast<const VkMemoryHeap *>( this );
  36448. }
  36449. operator VkMemoryHeap &() VULKAN_HPP_NOEXCEPT
  36450. {
  36451. return *reinterpret_cast<VkMemoryHeap *>( this );
  36452. }
  36453. #if defined( VULKAN_HPP_USE_REFLECT )
  36454. # if 14 <= VULKAN_HPP_CPP_VERSION
  36455. auto
  36456. # else
  36457. std::tuple<VULKAN_HPP_NAMESPACE::DeviceSize const &, VULKAN_HPP_NAMESPACE::MemoryHeapFlags const &>
  36458. # endif
  36459. reflect() const VULKAN_HPP_NOEXCEPT
  36460. {
  36461. return std::tie( size, flags );
  36462. }
  36463. #endif
  36464. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  36465. auto operator<=>( MemoryHeap const & ) const = default;
  36466. #else
  36467. bool operator==( MemoryHeap const & rhs ) const VULKAN_HPP_NOEXCEPT
  36468. {
  36469. # if defined( VULKAN_HPP_USE_REFLECT )
  36470. return this->reflect() == rhs.reflect();
  36471. # else
  36472. return ( size == rhs.size ) && ( flags == rhs.flags );
  36473. # endif
  36474. }
  36475. bool operator!=( MemoryHeap const & rhs ) const VULKAN_HPP_NOEXCEPT
  36476. {
  36477. return !operator==( rhs );
  36478. }
  36479. #endif
  36480. public:
  36481. VULKAN_HPP_NAMESPACE::DeviceSize size = {};
  36482. VULKAN_HPP_NAMESPACE::MemoryHeapFlags flags = {};
  36483. };
  36484. struct MemoryHostPointerPropertiesEXT
  36485. {
  36486. using NativeType = VkMemoryHostPointerPropertiesEXT;
  36487. static const bool allowDuplicate = false;
  36488. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eMemoryHostPointerPropertiesEXT;
  36489. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  36490. VULKAN_HPP_CONSTEXPR MemoryHostPointerPropertiesEXT( uint32_t memoryTypeBits_ = {}, void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  36491. : pNext( pNext_ )
  36492. , memoryTypeBits( memoryTypeBits_ )
  36493. {
  36494. }
  36495. VULKAN_HPP_CONSTEXPR MemoryHostPointerPropertiesEXT( MemoryHostPointerPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  36496. MemoryHostPointerPropertiesEXT( VkMemoryHostPointerPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  36497. : MemoryHostPointerPropertiesEXT( *reinterpret_cast<MemoryHostPointerPropertiesEXT const *>( &rhs ) )
  36498. {
  36499. }
  36500. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  36501. MemoryHostPointerPropertiesEXT & operator=( MemoryHostPointerPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  36502. MemoryHostPointerPropertiesEXT & operator=( VkMemoryHostPointerPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  36503. {
  36504. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::MemoryHostPointerPropertiesEXT const *>( &rhs );
  36505. return *this;
  36506. }
  36507. operator VkMemoryHostPointerPropertiesEXT const &() const VULKAN_HPP_NOEXCEPT
  36508. {
  36509. return *reinterpret_cast<const VkMemoryHostPointerPropertiesEXT *>( this );
  36510. }
  36511. operator VkMemoryHostPointerPropertiesEXT &() VULKAN_HPP_NOEXCEPT
  36512. {
  36513. return *reinterpret_cast<VkMemoryHostPointerPropertiesEXT *>( this );
  36514. }
  36515. #if defined( VULKAN_HPP_USE_REFLECT )
  36516. # if 14 <= VULKAN_HPP_CPP_VERSION
  36517. auto
  36518. # else
  36519. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, uint32_t const &>
  36520. # endif
  36521. reflect() const VULKAN_HPP_NOEXCEPT
  36522. {
  36523. return std::tie( sType, pNext, memoryTypeBits );
  36524. }
  36525. #endif
  36526. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  36527. auto operator<=>( MemoryHostPointerPropertiesEXT const & ) const = default;
  36528. #else
  36529. bool operator==( MemoryHostPointerPropertiesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  36530. {
  36531. # if defined( VULKAN_HPP_USE_REFLECT )
  36532. return this->reflect() == rhs.reflect();
  36533. # else
  36534. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( memoryTypeBits == rhs.memoryTypeBits );
  36535. # endif
  36536. }
  36537. bool operator!=( MemoryHostPointerPropertiesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  36538. {
  36539. return !operator==( rhs );
  36540. }
  36541. #endif
  36542. public:
  36543. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eMemoryHostPointerPropertiesEXT;
  36544. void * pNext = {};
  36545. uint32_t memoryTypeBits = {};
  36546. };
  36547. template <>
  36548. struct CppType<StructureType, StructureType::eMemoryHostPointerPropertiesEXT>
  36549. {
  36550. using Type = MemoryHostPointerPropertiesEXT;
  36551. };
  36552. struct MemoryOpaqueCaptureAddressAllocateInfo
  36553. {
  36554. using NativeType = VkMemoryOpaqueCaptureAddressAllocateInfo;
  36555. static const bool allowDuplicate = false;
  36556. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eMemoryOpaqueCaptureAddressAllocateInfo;
  36557. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  36558. VULKAN_HPP_CONSTEXPR MemoryOpaqueCaptureAddressAllocateInfo( uint64_t opaqueCaptureAddress_ = {}, const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  36559. : pNext( pNext_ )
  36560. , opaqueCaptureAddress( opaqueCaptureAddress_ )
  36561. {
  36562. }
  36563. VULKAN_HPP_CONSTEXPR MemoryOpaqueCaptureAddressAllocateInfo( MemoryOpaqueCaptureAddressAllocateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  36564. MemoryOpaqueCaptureAddressAllocateInfo( VkMemoryOpaqueCaptureAddressAllocateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
  36565. : MemoryOpaqueCaptureAddressAllocateInfo( *reinterpret_cast<MemoryOpaqueCaptureAddressAllocateInfo const *>( &rhs ) )
  36566. {
  36567. }
  36568. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  36569. MemoryOpaqueCaptureAddressAllocateInfo & operator=( MemoryOpaqueCaptureAddressAllocateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  36570. MemoryOpaqueCaptureAddressAllocateInfo & operator=( VkMemoryOpaqueCaptureAddressAllocateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
  36571. {
  36572. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::MemoryOpaqueCaptureAddressAllocateInfo const *>( &rhs );
  36573. return *this;
  36574. }
  36575. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  36576. VULKAN_HPP_CONSTEXPR_14 MemoryOpaqueCaptureAddressAllocateInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  36577. {
  36578. pNext = pNext_;
  36579. return *this;
  36580. }
  36581. VULKAN_HPP_CONSTEXPR_14 MemoryOpaqueCaptureAddressAllocateInfo & setOpaqueCaptureAddress( uint64_t opaqueCaptureAddress_ ) VULKAN_HPP_NOEXCEPT
  36582. {
  36583. opaqueCaptureAddress = opaqueCaptureAddress_;
  36584. return *this;
  36585. }
  36586. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  36587. operator VkMemoryOpaqueCaptureAddressAllocateInfo const &() const VULKAN_HPP_NOEXCEPT
  36588. {
  36589. return *reinterpret_cast<const VkMemoryOpaqueCaptureAddressAllocateInfo *>( this );
  36590. }
  36591. operator VkMemoryOpaqueCaptureAddressAllocateInfo &() VULKAN_HPP_NOEXCEPT
  36592. {
  36593. return *reinterpret_cast<VkMemoryOpaqueCaptureAddressAllocateInfo *>( this );
  36594. }
  36595. #if defined( VULKAN_HPP_USE_REFLECT )
  36596. # if 14 <= VULKAN_HPP_CPP_VERSION
  36597. auto
  36598. # else
  36599. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, uint64_t const &>
  36600. # endif
  36601. reflect() const VULKAN_HPP_NOEXCEPT
  36602. {
  36603. return std::tie( sType, pNext, opaqueCaptureAddress );
  36604. }
  36605. #endif
  36606. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  36607. auto operator<=>( MemoryOpaqueCaptureAddressAllocateInfo const & ) const = default;
  36608. #else
  36609. bool operator==( MemoryOpaqueCaptureAddressAllocateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  36610. {
  36611. # if defined( VULKAN_HPP_USE_REFLECT )
  36612. return this->reflect() == rhs.reflect();
  36613. # else
  36614. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( opaqueCaptureAddress == rhs.opaqueCaptureAddress );
  36615. # endif
  36616. }
  36617. bool operator!=( MemoryOpaqueCaptureAddressAllocateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  36618. {
  36619. return !operator==( rhs );
  36620. }
  36621. #endif
  36622. public:
  36623. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eMemoryOpaqueCaptureAddressAllocateInfo;
  36624. const void * pNext = {};
  36625. uint64_t opaqueCaptureAddress = {};
  36626. };
  36627. template <>
  36628. struct CppType<StructureType, StructureType::eMemoryOpaqueCaptureAddressAllocateInfo>
  36629. {
  36630. using Type = MemoryOpaqueCaptureAddressAllocateInfo;
  36631. };
  36632. using MemoryOpaqueCaptureAddressAllocateInfoKHR = MemoryOpaqueCaptureAddressAllocateInfo;
  36633. struct MemoryPriorityAllocateInfoEXT
  36634. {
  36635. using NativeType = VkMemoryPriorityAllocateInfoEXT;
  36636. static const bool allowDuplicate = false;
  36637. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eMemoryPriorityAllocateInfoEXT;
  36638. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  36639. VULKAN_HPP_CONSTEXPR MemoryPriorityAllocateInfoEXT( float priority_ = {}, const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  36640. : pNext( pNext_ )
  36641. , priority( priority_ )
  36642. {
  36643. }
  36644. VULKAN_HPP_CONSTEXPR MemoryPriorityAllocateInfoEXT( MemoryPriorityAllocateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  36645. MemoryPriorityAllocateInfoEXT( VkMemoryPriorityAllocateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  36646. : MemoryPriorityAllocateInfoEXT( *reinterpret_cast<MemoryPriorityAllocateInfoEXT const *>( &rhs ) )
  36647. {
  36648. }
  36649. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  36650. MemoryPriorityAllocateInfoEXT & operator=( MemoryPriorityAllocateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  36651. MemoryPriorityAllocateInfoEXT & operator=( VkMemoryPriorityAllocateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  36652. {
  36653. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::MemoryPriorityAllocateInfoEXT const *>( &rhs );
  36654. return *this;
  36655. }
  36656. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  36657. VULKAN_HPP_CONSTEXPR_14 MemoryPriorityAllocateInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  36658. {
  36659. pNext = pNext_;
  36660. return *this;
  36661. }
  36662. VULKAN_HPP_CONSTEXPR_14 MemoryPriorityAllocateInfoEXT & setPriority( float priority_ ) VULKAN_HPP_NOEXCEPT
  36663. {
  36664. priority = priority_;
  36665. return *this;
  36666. }
  36667. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  36668. operator VkMemoryPriorityAllocateInfoEXT const &() const VULKAN_HPP_NOEXCEPT
  36669. {
  36670. return *reinterpret_cast<const VkMemoryPriorityAllocateInfoEXT *>( this );
  36671. }
  36672. operator VkMemoryPriorityAllocateInfoEXT &() VULKAN_HPP_NOEXCEPT
  36673. {
  36674. return *reinterpret_cast<VkMemoryPriorityAllocateInfoEXT *>( this );
  36675. }
  36676. #if defined( VULKAN_HPP_USE_REFLECT )
  36677. # if 14 <= VULKAN_HPP_CPP_VERSION
  36678. auto
  36679. # else
  36680. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, float const &>
  36681. # endif
  36682. reflect() const VULKAN_HPP_NOEXCEPT
  36683. {
  36684. return std::tie( sType, pNext, priority );
  36685. }
  36686. #endif
  36687. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  36688. auto operator<=>( MemoryPriorityAllocateInfoEXT const & ) const = default;
  36689. #else
  36690. bool operator==( MemoryPriorityAllocateInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  36691. {
  36692. # if defined( VULKAN_HPP_USE_REFLECT )
  36693. return this->reflect() == rhs.reflect();
  36694. # else
  36695. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( priority == rhs.priority );
  36696. # endif
  36697. }
  36698. bool operator!=( MemoryPriorityAllocateInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  36699. {
  36700. return !operator==( rhs );
  36701. }
  36702. #endif
  36703. public:
  36704. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eMemoryPriorityAllocateInfoEXT;
  36705. const void * pNext = {};
  36706. float priority = {};
  36707. };
  36708. template <>
  36709. struct CppType<StructureType, StructureType::eMemoryPriorityAllocateInfoEXT>
  36710. {
  36711. using Type = MemoryPriorityAllocateInfoEXT;
  36712. };
  36713. struct MemoryRequirements
  36714. {
  36715. using NativeType = VkMemoryRequirements;
  36716. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  36717. VULKAN_HPP_CONSTEXPR MemoryRequirements( VULKAN_HPP_NAMESPACE::DeviceSize size_ = {},
  36718. VULKAN_HPP_NAMESPACE::DeviceSize alignment_ = {},
  36719. uint32_t memoryTypeBits_ = {} ) VULKAN_HPP_NOEXCEPT
  36720. : size( size_ )
  36721. , alignment( alignment_ )
  36722. , memoryTypeBits( memoryTypeBits_ )
  36723. {
  36724. }
  36725. VULKAN_HPP_CONSTEXPR MemoryRequirements( MemoryRequirements const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  36726. MemoryRequirements( VkMemoryRequirements const & rhs ) VULKAN_HPP_NOEXCEPT : MemoryRequirements( *reinterpret_cast<MemoryRequirements const *>( &rhs ) ) {}
  36727. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  36728. MemoryRequirements & operator=( MemoryRequirements const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  36729. MemoryRequirements & operator=( VkMemoryRequirements const & rhs ) VULKAN_HPP_NOEXCEPT
  36730. {
  36731. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::MemoryRequirements const *>( &rhs );
  36732. return *this;
  36733. }
  36734. operator VkMemoryRequirements const &() const VULKAN_HPP_NOEXCEPT
  36735. {
  36736. return *reinterpret_cast<const VkMemoryRequirements *>( this );
  36737. }
  36738. operator VkMemoryRequirements &() VULKAN_HPP_NOEXCEPT
  36739. {
  36740. return *reinterpret_cast<VkMemoryRequirements *>( this );
  36741. }
  36742. #if defined( VULKAN_HPP_USE_REFLECT )
  36743. # if 14 <= VULKAN_HPP_CPP_VERSION
  36744. auto
  36745. # else
  36746. std::tuple<VULKAN_HPP_NAMESPACE::DeviceSize const &, VULKAN_HPP_NAMESPACE::DeviceSize const &, uint32_t const &>
  36747. # endif
  36748. reflect() const VULKAN_HPP_NOEXCEPT
  36749. {
  36750. return std::tie( size, alignment, memoryTypeBits );
  36751. }
  36752. #endif
  36753. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  36754. auto operator<=>( MemoryRequirements const & ) const = default;
  36755. #else
  36756. bool operator==( MemoryRequirements const & rhs ) const VULKAN_HPP_NOEXCEPT
  36757. {
  36758. # if defined( VULKAN_HPP_USE_REFLECT )
  36759. return this->reflect() == rhs.reflect();
  36760. # else
  36761. return ( size == rhs.size ) && ( alignment == rhs.alignment ) && ( memoryTypeBits == rhs.memoryTypeBits );
  36762. # endif
  36763. }
  36764. bool operator!=( MemoryRequirements const & rhs ) const VULKAN_HPP_NOEXCEPT
  36765. {
  36766. return !operator==( rhs );
  36767. }
  36768. #endif
  36769. public:
  36770. VULKAN_HPP_NAMESPACE::DeviceSize size = {};
  36771. VULKAN_HPP_NAMESPACE::DeviceSize alignment = {};
  36772. uint32_t memoryTypeBits = {};
  36773. };
  36774. struct MemoryRequirements2
  36775. {
  36776. using NativeType = VkMemoryRequirements2;
  36777. static const bool allowDuplicate = false;
  36778. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eMemoryRequirements2;
  36779. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  36780. VULKAN_HPP_CONSTEXPR MemoryRequirements2( VULKAN_HPP_NAMESPACE::MemoryRequirements memoryRequirements_ = {}, void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  36781. : pNext( pNext_ )
  36782. , memoryRequirements( memoryRequirements_ )
  36783. {
  36784. }
  36785. VULKAN_HPP_CONSTEXPR MemoryRequirements2( MemoryRequirements2 const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  36786. MemoryRequirements2( VkMemoryRequirements2 const & rhs ) VULKAN_HPP_NOEXCEPT : MemoryRequirements2( *reinterpret_cast<MemoryRequirements2 const *>( &rhs ) )
  36787. {
  36788. }
  36789. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  36790. MemoryRequirements2 & operator=( MemoryRequirements2 const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  36791. MemoryRequirements2 & operator=( VkMemoryRequirements2 const & rhs ) VULKAN_HPP_NOEXCEPT
  36792. {
  36793. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::MemoryRequirements2 const *>( &rhs );
  36794. return *this;
  36795. }
  36796. operator VkMemoryRequirements2 const &() const VULKAN_HPP_NOEXCEPT
  36797. {
  36798. return *reinterpret_cast<const VkMemoryRequirements2 *>( this );
  36799. }
  36800. operator VkMemoryRequirements2 &() VULKAN_HPP_NOEXCEPT
  36801. {
  36802. return *reinterpret_cast<VkMemoryRequirements2 *>( this );
  36803. }
  36804. #if defined( VULKAN_HPP_USE_REFLECT )
  36805. # if 14 <= VULKAN_HPP_CPP_VERSION
  36806. auto
  36807. # else
  36808. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::MemoryRequirements const &>
  36809. # endif
  36810. reflect() const VULKAN_HPP_NOEXCEPT
  36811. {
  36812. return std::tie( sType, pNext, memoryRequirements );
  36813. }
  36814. #endif
  36815. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  36816. auto operator<=>( MemoryRequirements2 const & ) const = default;
  36817. #else
  36818. bool operator==( MemoryRequirements2 const & rhs ) const VULKAN_HPP_NOEXCEPT
  36819. {
  36820. # if defined( VULKAN_HPP_USE_REFLECT )
  36821. return this->reflect() == rhs.reflect();
  36822. # else
  36823. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( memoryRequirements == rhs.memoryRequirements );
  36824. # endif
  36825. }
  36826. bool operator!=( MemoryRequirements2 const & rhs ) const VULKAN_HPP_NOEXCEPT
  36827. {
  36828. return !operator==( rhs );
  36829. }
  36830. #endif
  36831. public:
  36832. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eMemoryRequirements2;
  36833. void * pNext = {};
  36834. VULKAN_HPP_NAMESPACE::MemoryRequirements memoryRequirements = {};
  36835. };
  36836. template <>
  36837. struct CppType<StructureType, StructureType::eMemoryRequirements2>
  36838. {
  36839. using Type = MemoryRequirements2;
  36840. };
  36841. using MemoryRequirements2KHR = MemoryRequirements2;
  36842. struct MemoryType
  36843. {
  36844. using NativeType = VkMemoryType;
  36845. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  36846. VULKAN_HPP_CONSTEXPR MemoryType( VULKAN_HPP_NAMESPACE::MemoryPropertyFlags propertyFlags_ = {}, uint32_t heapIndex_ = {} ) VULKAN_HPP_NOEXCEPT
  36847. : propertyFlags( propertyFlags_ )
  36848. , heapIndex( heapIndex_ )
  36849. {
  36850. }
  36851. VULKAN_HPP_CONSTEXPR MemoryType( MemoryType const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  36852. MemoryType( VkMemoryType const & rhs ) VULKAN_HPP_NOEXCEPT : MemoryType( *reinterpret_cast<MemoryType const *>( &rhs ) ) {}
  36853. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  36854. MemoryType & operator=( MemoryType const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  36855. MemoryType & operator=( VkMemoryType const & rhs ) VULKAN_HPP_NOEXCEPT
  36856. {
  36857. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::MemoryType const *>( &rhs );
  36858. return *this;
  36859. }
  36860. operator VkMemoryType const &() const VULKAN_HPP_NOEXCEPT
  36861. {
  36862. return *reinterpret_cast<const VkMemoryType *>( this );
  36863. }
  36864. operator VkMemoryType &() VULKAN_HPP_NOEXCEPT
  36865. {
  36866. return *reinterpret_cast<VkMemoryType *>( this );
  36867. }
  36868. #if defined( VULKAN_HPP_USE_REFLECT )
  36869. # if 14 <= VULKAN_HPP_CPP_VERSION
  36870. auto
  36871. # else
  36872. std::tuple<VULKAN_HPP_NAMESPACE::MemoryPropertyFlags const &, uint32_t const &>
  36873. # endif
  36874. reflect() const VULKAN_HPP_NOEXCEPT
  36875. {
  36876. return std::tie( propertyFlags, heapIndex );
  36877. }
  36878. #endif
  36879. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  36880. auto operator<=>( MemoryType const & ) const = default;
  36881. #else
  36882. bool operator==( MemoryType const & rhs ) const VULKAN_HPP_NOEXCEPT
  36883. {
  36884. # if defined( VULKAN_HPP_USE_REFLECT )
  36885. return this->reflect() == rhs.reflect();
  36886. # else
  36887. return ( propertyFlags == rhs.propertyFlags ) && ( heapIndex == rhs.heapIndex );
  36888. # endif
  36889. }
  36890. bool operator!=( MemoryType const & rhs ) const VULKAN_HPP_NOEXCEPT
  36891. {
  36892. return !operator==( rhs );
  36893. }
  36894. #endif
  36895. public:
  36896. VULKAN_HPP_NAMESPACE::MemoryPropertyFlags propertyFlags = {};
  36897. uint32_t heapIndex = {};
  36898. };
  36899. #if defined( VK_USE_PLATFORM_WIN32_KHR )
  36900. struct MemoryWin32HandlePropertiesKHR
  36901. {
  36902. using NativeType = VkMemoryWin32HandlePropertiesKHR;
  36903. static const bool allowDuplicate = false;
  36904. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eMemoryWin32HandlePropertiesKHR;
  36905. # if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  36906. VULKAN_HPP_CONSTEXPR MemoryWin32HandlePropertiesKHR( uint32_t memoryTypeBits_ = {}, void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  36907. : pNext( pNext_ )
  36908. , memoryTypeBits( memoryTypeBits_ )
  36909. {
  36910. }
  36911. VULKAN_HPP_CONSTEXPR MemoryWin32HandlePropertiesKHR( MemoryWin32HandlePropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  36912. MemoryWin32HandlePropertiesKHR( VkMemoryWin32HandlePropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  36913. : MemoryWin32HandlePropertiesKHR( *reinterpret_cast<MemoryWin32HandlePropertiesKHR const *>( &rhs ) )
  36914. {
  36915. }
  36916. # endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  36917. MemoryWin32HandlePropertiesKHR & operator=( MemoryWin32HandlePropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  36918. MemoryWin32HandlePropertiesKHR & operator=( VkMemoryWin32HandlePropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  36919. {
  36920. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::MemoryWin32HandlePropertiesKHR const *>( &rhs );
  36921. return *this;
  36922. }
  36923. operator VkMemoryWin32HandlePropertiesKHR const &() const VULKAN_HPP_NOEXCEPT
  36924. {
  36925. return *reinterpret_cast<const VkMemoryWin32HandlePropertiesKHR *>( this );
  36926. }
  36927. operator VkMemoryWin32HandlePropertiesKHR &() VULKAN_HPP_NOEXCEPT
  36928. {
  36929. return *reinterpret_cast<VkMemoryWin32HandlePropertiesKHR *>( this );
  36930. }
  36931. # if defined( VULKAN_HPP_USE_REFLECT )
  36932. # if 14 <= VULKAN_HPP_CPP_VERSION
  36933. auto
  36934. # else
  36935. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, uint32_t const &>
  36936. # endif
  36937. reflect() const VULKAN_HPP_NOEXCEPT
  36938. {
  36939. return std::tie( sType, pNext, memoryTypeBits );
  36940. }
  36941. # endif
  36942. # if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  36943. auto operator<=>( MemoryWin32HandlePropertiesKHR const & ) const = default;
  36944. # else
  36945. bool operator==( MemoryWin32HandlePropertiesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  36946. {
  36947. # if defined( VULKAN_HPP_USE_REFLECT )
  36948. return this->reflect() == rhs.reflect();
  36949. # else
  36950. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( memoryTypeBits == rhs.memoryTypeBits );
  36951. # endif
  36952. }
  36953. bool operator!=( MemoryWin32HandlePropertiesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  36954. {
  36955. return !operator==( rhs );
  36956. }
  36957. # endif
  36958. public:
  36959. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eMemoryWin32HandlePropertiesKHR;
  36960. void * pNext = {};
  36961. uint32_t memoryTypeBits = {};
  36962. };
  36963. template <>
  36964. struct CppType<StructureType, StructureType::eMemoryWin32HandlePropertiesKHR>
  36965. {
  36966. using Type = MemoryWin32HandlePropertiesKHR;
  36967. };
  36968. #endif /*VK_USE_PLATFORM_WIN32_KHR*/
  36969. #if defined( VK_USE_PLATFORM_FUCHSIA )
  36970. struct MemoryZirconHandlePropertiesFUCHSIA
  36971. {
  36972. using NativeType = VkMemoryZirconHandlePropertiesFUCHSIA;
  36973. static const bool allowDuplicate = false;
  36974. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eMemoryZirconHandlePropertiesFUCHSIA;
  36975. # if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  36976. VULKAN_HPP_CONSTEXPR MemoryZirconHandlePropertiesFUCHSIA( uint32_t memoryTypeBits_ = {}, void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  36977. : pNext( pNext_ )
  36978. , memoryTypeBits( memoryTypeBits_ )
  36979. {
  36980. }
  36981. VULKAN_HPP_CONSTEXPR MemoryZirconHandlePropertiesFUCHSIA( MemoryZirconHandlePropertiesFUCHSIA const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  36982. MemoryZirconHandlePropertiesFUCHSIA( VkMemoryZirconHandlePropertiesFUCHSIA const & rhs ) VULKAN_HPP_NOEXCEPT
  36983. : MemoryZirconHandlePropertiesFUCHSIA( *reinterpret_cast<MemoryZirconHandlePropertiesFUCHSIA const *>( &rhs ) )
  36984. {
  36985. }
  36986. # endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  36987. MemoryZirconHandlePropertiesFUCHSIA & operator=( MemoryZirconHandlePropertiesFUCHSIA const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  36988. MemoryZirconHandlePropertiesFUCHSIA & operator=( VkMemoryZirconHandlePropertiesFUCHSIA const & rhs ) VULKAN_HPP_NOEXCEPT
  36989. {
  36990. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::MemoryZirconHandlePropertiesFUCHSIA const *>( &rhs );
  36991. return *this;
  36992. }
  36993. operator VkMemoryZirconHandlePropertiesFUCHSIA const &() const VULKAN_HPP_NOEXCEPT
  36994. {
  36995. return *reinterpret_cast<const VkMemoryZirconHandlePropertiesFUCHSIA *>( this );
  36996. }
  36997. operator VkMemoryZirconHandlePropertiesFUCHSIA &() VULKAN_HPP_NOEXCEPT
  36998. {
  36999. return *reinterpret_cast<VkMemoryZirconHandlePropertiesFUCHSIA *>( this );
  37000. }
  37001. # if defined( VULKAN_HPP_USE_REFLECT )
  37002. # if 14 <= VULKAN_HPP_CPP_VERSION
  37003. auto
  37004. # else
  37005. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, uint32_t const &>
  37006. # endif
  37007. reflect() const VULKAN_HPP_NOEXCEPT
  37008. {
  37009. return std::tie( sType, pNext, memoryTypeBits );
  37010. }
  37011. # endif
  37012. # if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  37013. auto operator<=>( MemoryZirconHandlePropertiesFUCHSIA const & ) const = default;
  37014. # else
  37015. bool operator==( MemoryZirconHandlePropertiesFUCHSIA const & rhs ) const VULKAN_HPP_NOEXCEPT
  37016. {
  37017. # if defined( VULKAN_HPP_USE_REFLECT )
  37018. return this->reflect() == rhs.reflect();
  37019. # else
  37020. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( memoryTypeBits == rhs.memoryTypeBits );
  37021. # endif
  37022. }
  37023. bool operator!=( MemoryZirconHandlePropertiesFUCHSIA const & rhs ) const VULKAN_HPP_NOEXCEPT
  37024. {
  37025. return !operator==( rhs );
  37026. }
  37027. # endif
  37028. public:
  37029. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eMemoryZirconHandlePropertiesFUCHSIA;
  37030. void * pNext = {};
  37031. uint32_t memoryTypeBits = {};
  37032. };
  37033. template <>
  37034. struct CppType<StructureType, StructureType::eMemoryZirconHandlePropertiesFUCHSIA>
  37035. {
  37036. using Type = MemoryZirconHandlePropertiesFUCHSIA;
  37037. };
  37038. #endif /*VK_USE_PLATFORM_FUCHSIA*/
  37039. #if defined( VK_USE_PLATFORM_METAL_EXT )
  37040. struct MetalSurfaceCreateInfoEXT
  37041. {
  37042. using NativeType = VkMetalSurfaceCreateInfoEXT;
  37043. static const bool allowDuplicate = false;
  37044. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eMetalSurfaceCreateInfoEXT;
  37045. # if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  37046. VULKAN_HPP_CONSTEXPR MetalSurfaceCreateInfoEXT( VULKAN_HPP_NAMESPACE::MetalSurfaceCreateFlagsEXT flags_ = {},
  37047. const CAMetalLayer * pLayer_ = {},
  37048. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  37049. : pNext( pNext_ )
  37050. , flags( flags_ )
  37051. , pLayer( pLayer_ )
  37052. {
  37053. }
  37054. VULKAN_HPP_CONSTEXPR MetalSurfaceCreateInfoEXT( MetalSurfaceCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  37055. MetalSurfaceCreateInfoEXT( VkMetalSurfaceCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  37056. : MetalSurfaceCreateInfoEXT( *reinterpret_cast<MetalSurfaceCreateInfoEXT const *>( &rhs ) )
  37057. {
  37058. }
  37059. # endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  37060. MetalSurfaceCreateInfoEXT & operator=( MetalSurfaceCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  37061. MetalSurfaceCreateInfoEXT & operator=( VkMetalSurfaceCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  37062. {
  37063. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::MetalSurfaceCreateInfoEXT const *>( &rhs );
  37064. return *this;
  37065. }
  37066. # if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  37067. VULKAN_HPP_CONSTEXPR_14 MetalSurfaceCreateInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  37068. {
  37069. pNext = pNext_;
  37070. return *this;
  37071. }
  37072. VULKAN_HPP_CONSTEXPR_14 MetalSurfaceCreateInfoEXT & setFlags( VULKAN_HPP_NAMESPACE::MetalSurfaceCreateFlagsEXT flags_ ) VULKAN_HPP_NOEXCEPT
  37073. {
  37074. flags = flags_;
  37075. return *this;
  37076. }
  37077. VULKAN_HPP_CONSTEXPR_14 MetalSurfaceCreateInfoEXT & setPLayer( const CAMetalLayer * pLayer_ ) VULKAN_HPP_NOEXCEPT
  37078. {
  37079. pLayer = pLayer_;
  37080. return *this;
  37081. }
  37082. # endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  37083. operator VkMetalSurfaceCreateInfoEXT const &() const VULKAN_HPP_NOEXCEPT
  37084. {
  37085. return *reinterpret_cast<const VkMetalSurfaceCreateInfoEXT *>( this );
  37086. }
  37087. operator VkMetalSurfaceCreateInfoEXT &() VULKAN_HPP_NOEXCEPT
  37088. {
  37089. return *reinterpret_cast<VkMetalSurfaceCreateInfoEXT *>( this );
  37090. }
  37091. # if defined( VULKAN_HPP_USE_REFLECT )
  37092. # if 14 <= VULKAN_HPP_CPP_VERSION
  37093. auto
  37094. # else
  37095. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  37096. const void * const &,
  37097. VULKAN_HPP_NAMESPACE::MetalSurfaceCreateFlagsEXT const &,
  37098. const CAMetalLayer * const &>
  37099. # endif
  37100. reflect() const VULKAN_HPP_NOEXCEPT
  37101. {
  37102. return std::tie( sType, pNext, flags, pLayer );
  37103. }
  37104. # endif
  37105. # if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  37106. auto operator<=>( MetalSurfaceCreateInfoEXT const & ) const = default;
  37107. # else
  37108. bool operator==( MetalSurfaceCreateInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  37109. {
  37110. # if defined( VULKAN_HPP_USE_REFLECT )
  37111. return this->reflect() == rhs.reflect();
  37112. # else
  37113. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( flags == rhs.flags ) && ( pLayer == rhs.pLayer );
  37114. # endif
  37115. }
  37116. bool operator!=( MetalSurfaceCreateInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  37117. {
  37118. return !operator==( rhs );
  37119. }
  37120. # endif
  37121. public:
  37122. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eMetalSurfaceCreateInfoEXT;
  37123. const void * pNext = {};
  37124. VULKAN_HPP_NAMESPACE::MetalSurfaceCreateFlagsEXT flags = {};
  37125. const CAMetalLayer * pLayer = {};
  37126. };
  37127. template <>
  37128. struct CppType<StructureType, StructureType::eMetalSurfaceCreateInfoEXT>
  37129. {
  37130. using Type = MetalSurfaceCreateInfoEXT;
  37131. };
  37132. #endif /*VK_USE_PLATFORM_METAL_EXT*/
  37133. struct MultiDrawIndexedInfoEXT
  37134. {
  37135. using NativeType = VkMultiDrawIndexedInfoEXT;
  37136. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  37137. VULKAN_HPP_CONSTEXPR MultiDrawIndexedInfoEXT( uint32_t firstIndex_ = {}, uint32_t indexCount_ = {}, int32_t vertexOffset_ = {} ) VULKAN_HPP_NOEXCEPT
  37138. : firstIndex( firstIndex_ )
  37139. , indexCount( indexCount_ )
  37140. , vertexOffset( vertexOffset_ )
  37141. {
  37142. }
  37143. VULKAN_HPP_CONSTEXPR MultiDrawIndexedInfoEXT( MultiDrawIndexedInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  37144. MultiDrawIndexedInfoEXT( VkMultiDrawIndexedInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  37145. : MultiDrawIndexedInfoEXT( *reinterpret_cast<MultiDrawIndexedInfoEXT const *>( &rhs ) )
  37146. {
  37147. }
  37148. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  37149. MultiDrawIndexedInfoEXT & operator=( MultiDrawIndexedInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  37150. MultiDrawIndexedInfoEXT & operator=( VkMultiDrawIndexedInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  37151. {
  37152. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::MultiDrawIndexedInfoEXT const *>( &rhs );
  37153. return *this;
  37154. }
  37155. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  37156. VULKAN_HPP_CONSTEXPR_14 MultiDrawIndexedInfoEXT & setFirstIndex( uint32_t firstIndex_ ) VULKAN_HPP_NOEXCEPT
  37157. {
  37158. firstIndex = firstIndex_;
  37159. return *this;
  37160. }
  37161. VULKAN_HPP_CONSTEXPR_14 MultiDrawIndexedInfoEXT & setIndexCount( uint32_t indexCount_ ) VULKAN_HPP_NOEXCEPT
  37162. {
  37163. indexCount = indexCount_;
  37164. return *this;
  37165. }
  37166. VULKAN_HPP_CONSTEXPR_14 MultiDrawIndexedInfoEXT & setVertexOffset( int32_t vertexOffset_ ) VULKAN_HPP_NOEXCEPT
  37167. {
  37168. vertexOffset = vertexOffset_;
  37169. return *this;
  37170. }
  37171. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  37172. operator VkMultiDrawIndexedInfoEXT const &() const VULKAN_HPP_NOEXCEPT
  37173. {
  37174. return *reinterpret_cast<const VkMultiDrawIndexedInfoEXT *>( this );
  37175. }
  37176. operator VkMultiDrawIndexedInfoEXT &() VULKAN_HPP_NOEXCEPT
  37177. {
  37178. return *reinterpret_cast<VkMultiDrawIndexedInfoEXT *>( this );
  37179. }
  37180. #if defined( VULKAN_HPP_USE_REFLECT )
  37181. # if 14 <= VULKAN_HPP_CPP_VERSION
  37182. auto
  37183. # else
  37184. std::tuple<uint32_t const &, uint32_t const &, int32_t const &>
  37185. # endif
  37186. reflect() const VULKAN_HPP_NOEXCEPT
  37187. {
  37188. return std::tie( firstIndex, indexCount, vertexOffset );
  37189. }
  37190. #endif
  37191. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  37192. auto operator<=>( MultiDrawIndexedInfoEXT const & ) const = default;
  37193. #else
  37194. bool operator==( MultiDrawIndexedInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  37195. {
  37196. # if defined( VULKAN_HPP_USE_REFLECT )
  37197. return this->reflect() == rhs.reflect();
  37198. # else
  37199. return ( firstIndex == rhs.firstIndex ) && ( indexCount == rhs.indexCount ) && ( vertexOffset == rhs.vertexOffset );
  37200. # endif
  37201. }
  37202. bool operator!=( MultiDrawIndexedInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  37203. {
  37204. return !operator==( rhs );
  37205. }
  37206. #endif
  37207. public:
  37208. uint32_t firstIndex = {};
  37209. uint32_t indexCount = {};
  37210. int32_t vertexOffset = {};
  37211. };
  37212. struct MultiDrawInfoEXT
  37213. {
  37214. using NativeType = VkMultiDrawInfoEXT;
  37215. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  37216. VULKAN_HPP_CONSTEXPR MultiDrawInfoEXT( uint32_t firstVertex_ = {}, uint32_t vertexCount_ = {} ) VULKAN_HPP_NOEXCEPT
  37217. : firstVertex( firstVertex_ )
  37218. , vertexCount( vertexCount_ )
  37219. {
  37220. }
  37221. VULKAN_HPP_CONSTEXPR MultiDrawInfoEXT( MultiDrawInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  37222. MultiDrawInfoEXT( VkMultiDrawInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT : MultiDrawInfoEXT( *reinterpret_cast<MultiDrawInfoEXT const *>( &rhs ) ) {}
  37223. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  37224. MultiDrawInfoEXT & operator=( MultiDrawInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  37225. MultiDrawInfoEXT & operator=( VkMultiDrawInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  37226. {
  37227. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::MultiDrawInfoEXT const *>( &rhs );
  37228. return *this;
  37229. }
  37230. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  37231. VULKAN_HPP_CONSTEXPR_14 MultiDrawInfoEXT & setFirstVertex( uint32_t firstVertex_ ) VULKAN_HPP_NOEXCEPT
  37232. {
  37233. firstVertex = firstVertex_;
  37234. return *this;
  37235. }
  37236. VULKAN_HPP_CONSTEXPR_14 MultiDrawInfoEXT & setVertexCount( uint32_t vertexCount_ ) VULKAN_HPP_NOEXCEPT
  37237. {
  37238. vertexCount = vertexCount_;
  37239. return *this;
  37240. }
  37241. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  37242. operator VkMultiDrawInfoEXT const &() const VULKAN_HPP_NOEXCEPT
  37243. {
  37244. return *reinterpret_cast<const VkMultiDrawInfoEXT *>( this );
  37245. }
  37246. operator VkMultiDrawInfoEXT &() VULKAN_HPP_NOEXCEPT
  37247. {
  37248. return *reinterpret_cast<VkMultiDrawInfoEXT *>( this );
  37249. }
  37250. #if defined( VULKAN_HPP_USE_REFLECT )
  37251. # if 14 <= VULKAN_HPP_CPP_VERSION
  37252. auto
  37253. # else
  37254. std::tuple<uint32_t const &, uint32_t const &>
  37255. # endif
  37256. reflect() const VULKAN_HPP_NOEXCEPT
  37257. {
  37258. return std::tie( firstVertex, vertexCount );
  37259. }
  37260. #endif
  37261. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  37262. auto operator<=>( MultiDrawInfoEXT const & ) const = default;
  37263. #else
  37264. bool operator==( MultiDrawInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  37265. {
  37266. # if defined( VULKAN_HPP_USE_REFLECT )
  37267. return this->reflect() == rhs.reflect();
  37268. # else
  37269. return ( firstVertex == rhs.firstVertex ) && ( vertexCount == rhs.vertexCount );
  37270. # endif
  37271. }
  37272. bool operator!=( MultiDrawInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  37273. {
  37274. return !operator==( rhs );
  37275. }
  37276. #endif
  37277. public:
  37278. uint32_t firstVertex = {};
  37279. uint32_t vertexCount = {};
  37280. };
  37281. struct MultisamplePropertiesEXT
  37282. {
  37283. using NativeType = VkMultisamplePropertiesEXT;
  37284. static const bool allowDuplicate = false;
  37285. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eMultisamplePropertiesEXT;
  37286. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  37287. VULKAN_HPP_CONSTEXPR MultisamplePropertiesEXT( VULKAN_HPP_NAMESPACE::Extent2D maxSampleLocationGridSize_ = {}, void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  37288. : pNext( pNext_ )
  37289. , maxSampleLocationGridSize( maxSampleLocationGridSize_ )
  37290. {
  37291. }
  37292. VULKAN_HPP_CONSTEXPR MultisamplePropertiesEXT( MultisamplePropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  37293. MultisamplePropertiesEXT( VkMultisamplePropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  37294. : MultisamplePropertiesEXT( *reinterpret_cast<MultisamplePropertiesEXT const *>( &rhs ) )
  37295. {
  37296. }
  37297. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  37298. MultisamplePropertiesEXT & operator=( MultisamplePropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  37299. MultisamplePropertiesEXT & operator=( VkMultisamplePropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  37300. {
  37301. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::MultisamplePropertiesEXT const *>( &rhs );
  37302. return *this;
  37303. }
  37304. operator VkMultisamplePropertiesEXT const &() const VULKAN_HPP_NOEXCEPT
  37305. {
  37306. return *reinterpret_cast<const VkMultisamplePropertiesEXT *>( this );
  37307. }
  37308. operator VkMultisamplePropertiesEXT &() VULKAN_HPP_NOEXCEPT
  37309. {
  37310. return *reinterpret_cast<VkMultisamplePropertiesEXT *>( this );
  37311. }
  37312. #if defined( VULKAN_HPP_USE_REFLECT )
  37313. # if 14 <= VULKAN_HPP_CPP_VERSION
  37314. auto
  37315. # else
  37316. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Extent2D const &>
  37317. # endif
  37318. reflect() const VULKAN_HPP_NOEXCEPT
  37319. {
  37320. return std::tie( sType, pNext, maxSampleLocationGridSize );
  37321. }
  37322. #endif
  37323. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  37324. auto operator<=>( MultisamplePropertiesEXT const & ) const = default;
  37325. #else
  37326. bool operator==( MultisamplePropertiesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  37327. {
  37328. # if defined( VULKAN_HPP_USE_REFLECT )
  37329. return this->reflect() == rhs.reflect();
  37330. # else
  37331. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( maxSampleLocationGridSize == rhs.maxSampleLocationGridSize );
  37332. # endif
  37333. }
  37334. bool operator!=( MultisamplePropertiesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  37335. {
  37336. return !operator==( rhs );
  37337. }
  37338. #endif
  37339. public:
  37340. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eMultisamplePropertiesEXT;
  37341. void * pNext = {};
  37342. VULKAN_HPP_NAMESPACE::Extent2D maxSampleLocationGridSize = {};
  37343. };
  37344. template <>
  37345. struct CppType<StructureType, StructureType::eMultisamplePropertiesEXT>
  37346. {
  37347. using Type = MultisamplePropertiesEXT;
  37348. };
  37349. struct MultisampledRenderToSingleSampledInfoEXT
  37350. {
  37351. using NativeType = VkMultisampledRenderToSingleSampledInfoEXT;
  37352. static const bool allowDuplicate = false;
  37353. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eMultisampledRenderToSingleSampledInfoEXT;
  37354. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  37355. VULKAN_HPP_CONSTEXPR
  37356. MultisampledRenderToSingleSampledInfoEXT( VULKAN_HPP_NAMESPACE::Bool32 multisampledRenderToSingleSampledEnable_ = {},
  37357. VULKAN_HPP_NAMESPACE::SampleCountFlagBits rasterizationSamples_ = VULKAN_HPP_NAMESPACE::SampleCountFlagBits::e1,
  37358. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  37359. : pNext( pNext_ )
  37360. , multisampledRenderToSingleSampledEnable( multisampledRenderToSingleSampledEnable_ )
  37361. , rasterizationSamples( rasterizationSamples_ )
  37362. {
  37363. }
  37364. VULKAN_HPP_CONSTEXPR MultisampledRenderToSingleSampledInfoEXT( MultisampledRenderToSingleSampledInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  37365. MultisampledRenderToSingleSampledInfoEXT( VkMultisampledRenderToSingleSampledInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  37366. : MultisampledRenderToSingleSampledInfoEXT( *reinterpret_cast<MultisampledRenderToSingleSampledInfoEXT const *>( &rhs ) )
  37367. {
  37368. }
  37369. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  37370. MultisampledRenderToSingleSampledInfoEXT & operator=( MultisampledRenderToSingleSampledInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  37371. MultisampledRenderToSingleSampledInfoEXT & operator=( VkMultisampledRenderToSingleSampledInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  37372. {
  37373. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::MultisampledRenderToSingleSampledInfoEXT const *>( &rhs );
  37374. return *this;
  37375. }
  37376. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  37377. VULKAN_HPP_CONSTEXPR_14 MultisampledRenderToSingleSampledInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  37378. {
  37379. pNext = pNext_;
  37380. return *this;
  37381. }
  37382. VULKAN_HPP_CONSTEXPR_14 MultisampledRenderToSingleSampledInfoEXT &
  37383. setMultisampledRenderToSingleSampledEnable( VULKAN_HPP_NAMESPACE::Bool32 multisampledRenderToSingleSampledEnable_ ) VULKAN_HPP_NOEXCEPT
  37384. {
  37385. multisampledRenderToSingleSampledEnable = multisampledRenderToSingleSampledEnable_;
  37386. return *this;
  37387. }
  37388. VULKAN_HPP_CONSTEXPR_14 MultisampledRenderToSingleSampledInfoEXT &
  37389. setRasterizationSamples( VULKAN_HPP_NAMESPACE::SampleCountFlagBits rasterizationSamples_ ) VULKAN_HPP_NOEXCEPT
  37390. {
  37391. rasterizationSamples = rasterizationSamples_;
  37392. return *this;
  37393. }
  37394. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  37395. operator VkMultisampledRenderToSingleSampledInfoEXT const &() const VULKAN_HPP_NOEXCEPT
  37396. {
  37397. return *reinterpret_cast<const VkMultisampledRenderToSingleSampledInfoEXT *>( this );
  37398. }
  37399. operator VkMultisampledRenderToSingleSampledInfoEXT &() VULKAN_HPP_NOEXCEPT
  37400. {
  37401. return *reinterpret_cast<VkMultisampledRenderToSingleSampledInfoEXT *>( this );
  37402. }
  37403. #if defined( VULKAN_HPP_USE_REFLECT )
  37404. # if 14 <= VULKAN_HPP_CPP_VERSION
  37405. auto
  37406. # else
  37407. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  37408. const void * const &,
  37409. VULKAN_HPP_NAMESPACE::Bool32 const &,
  37410. VULKAN_HPP_NAMESPACE::SampleCountFlagBits const &>
  37411. # endif
  37412. reflect() const VULKAN_HPP_NOEXCEPT
  37413. {
  37414. return std::tie( sType, pNext, multisampledRenderToSingleSampledEnable, rasterizationSamples );
  37415. }
  37416. #endif
  37417. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  37418. auto operator<=>( MultisampledRenderToSingleSampledInfoEXT const & ) const = default;
  37419. #else
  37420. bool operator==( MultisampledRenderToSingleSampledInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  37421. {
  37422. # if defined( VULKAN_HPP_USE_REFLECT )
  37423. return this->reflect() == rhs.reflect();
  37424. # else
  37425. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( multisampledRenderToSingleSampledEnable == rhs.multisampledRenderToSingleSampledEnable ) &&
  37426. ( rasterizationSamples == rhs.rasterizationSamples );
  37427. # endif
  37428. }
  37429. bool operator!=( MultisampledRenderToSingleSampledInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  37430. {
  37431. return !operator==( rhs );
  37432. }
  37433. #endif
  37434. public:
  37435. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eMultisampledRenderToSingleSampledInfoEXT;
  37436. const void * pNext = {};
  37437. VULKAN_HPP_NAMESPACE::Bool32 multisampledRenderToSingleSampledEnable = {};
  37438. VULKAN_HPP_NAMESPACE::SampleCountFlagBits rasterizationSamples = VULKAN_HPP_NAMESPACE::SampleCountFlagBits::e1;
  37439. };
  37440. template <>
  37441. struct CppType<StructureType, StructureType::eMultisampledRenderToSingleSampledInfoEXT>
  37442. {
  37443. using Type = MultisampledRenderToSingleSampledInfoEXT;
  37444. };
  37445. struct MultiviewPerViewAttributesInfoNVX
  37446. {
  37447. using NativeType = VkMultiviewPerViewAttributesInfoNVX;
  37448. static const bool allowDuplicate = false;
  37449. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eMultiviewPerViewAttributesInfoNVX;
  37450. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  37451. VULKAN_HPP_CONSTEXPR MultiviewPerViewAttributesInfoNVX( VULKAN_HPP_NAMESPACE::Bool32 perViewAttributes_ = {},
  37452. VULKAN_HPP_NAMESPACE::Bool32 perViewAttributesPositionXOnly_ = {},
  37453. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  37454. : pNext( pNext_ )
  37455. , perViewAttributes( perViewAttributes_ )
  37456. , perViewAttributesPositionXOnly( perViewAttributesPositionXOnly_ )
  37457. {
  37458. }
  37459. VULKAN_HPP_CONSTEXPR MultiviewPerViewAttributesInfoNVX( MultiviewPerViewAttributesInfoNVX const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  37460. MultiviewPerViewAttributesInfoNVX( VkMultiviewPerViewAttributesInfoNVX const & rhs ) VULKAN_HPP_NOEXCEPT
  37461. : MultiviewPerViewAttributesInfoNVX( *reinterpret_cast<MultiviewPerViewAttributesInfoNVX const *>( &rhs ) )
  37462. {
  37463. }
  37464. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  37465. MultiviewPerViewAttributesInfoNVX & operator=( MultiviewPerViewAttributesInfoNVX const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  37466. MultiviewPerViewAttributesInfoNVX & operator=( VkMultiviewPerViewAttributesInfoNVX const & rhs ) VULKAN_HPP_NOEXCEPT
  37467. {
  37468. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::MultiviewPerViewAttributesInfoNVX const *>( &rhs );
  37469. return *this;
  37470. }
  37471. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  37472. VULKAN_HPP_CONSTEXPR_14 MultiviewPerViewAttributesInfoNVX & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  37473. {
  37474. pNext = pNext_;
  37475. return *this;
  37476. }
  37477. VULKAN_HPP_CONSTEXPR_14 MultiviewPerViewAttributesInfoNVX & setPerViewAttributes( VULKAN_HPP_NAMESPACE::Bool32 perViewAttributes_ ) VULKAN_HPP_NOEXCEPT
  37478. {
  37479. perViewAttributes = perViewAttributes_;
  37480. return *this;
  37481. }
  37482. VULKAN_HPP_CONSTEXPR_14 MultiviewPerViewAttributesInfoNVX &
  37483. setPerViewAttributesPositionXOnly( VULKAN_HPP_NAMESPACE::Bool32 perViewAttributesPositionXOnly_ ) VULKAN_HPP_NOEXCEPT
  37484. {
  37485. perViewAttributesPositionXOnly = perViewAttributesPositionXOnly_;
  37486. return *this;
  37487. }
  37488. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  37489. operator VkMultiviewPerViewAttributesInfoNVX const &() const VULKAN_HPP_NOEXCEPT
  37490. {
  37491. return *reinterpret_cast<const VkMultiviewPerViewAttributesInfoNVX *>( this );
  37492. }
  37493. operator VkMultiviewPerViewAttributesInfoNVX &() VULKAN_HPP_NOEXCEPT
  37494. {
  37495. return *reinterpret_cast<VkMultiviewPerViewAttributesInfoNVX *>( this );
  37496. }
  37497. #if defined( VULKAN_HPP_USE_REFLECT )
  37498. # if 14 <= VULKAN_HPP_CPP_VERSION
  37499. auto
  37500. # else
  37501. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
  37502. # endif
  37503. reflect() const VULKAN_HPP_NOEXCEPT
  37504. {
  37505. return std::tie( sType, pNext, perViewAttributes, perViewAttributesPositionXOnly );
  37506. }
  37507. #endif
  37508. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  37509. auto operator<=>( MultiviewPerViewAttributesInfoNVX const & ) const = default;
  37510. #else
  37511. bool operator==( MultiviewPerViewAttributesInfoNVX const & rhs ) const VULKAN_HPP_NOEXCEPT
  37512. {
  37513. # if defined( VULKAN_HPP_USE_REFLECT )
  37514. return this->reflect() == rhs.reflect();
  37515. # else
  37516. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( perViewAttributes == rhs.perViewAttributes ) &&
  37517. ( perViewAttributesPositionXOnly == rhs.perViewAttributesPositionXOnly );
  37518. # endif
  37519. }
  37520. bool operator!=( MultiviewPerViewAttributesInfoNVX const & rhs ) const VULKAN_HPP_NOEXCEPT
  37521. {
  37522. return !operator==( rhs );
  37523. }
  37524. #endif
  37525. public:
  37526. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eMultiviewPerViewAttributesInfoNVX;
  37527. const void * pNext = {};
  37528. VULKAN_HPP_NAMESPACE::Bool32 perViewAttributes = {};
  37529. VULKAN_HPP_NAMESPACE::Bool32 perViewAttributesPositionXOnly = {};
  37530. };
  37531. template <>
  37532. struct CppType<StructureType, StructureType::eMultiviewPerViewAttributesInfoNVX>
  37533. {
  37534. using Type = MultiviewPerViewAttributesInfoNVX;
  37535. };
  37536. struct MutableDescriptorTypeListVALVE
  37537. {
  37538. using NativeType = VkMutableDescriptorTypeListVALVE;
  37539. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  37540. VULKAN_HPP_CONSTEXPR MutableDescriptorTypeListVALVE( uint32_t descriptorTypeCount_ = {},
  37541. const VULKAN_HPP_NAMESPACE::DescriptorType * pDescriptorTypes_ = {} ) VULKAN_HPP_NOEXCEPT
  37542. : descriptorTypeCount( descriptorTypeCount_ )
  37543. , pDescriptorTypes( pDescriptorTypes_ )
  37544. {
  37545. }
  37546. VULKAN_HPP_CONSTEXPR MutableDescriptorTypeListVALVE( MutableDescriptorTypeListVALVE const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  37547. MutableDescriptorTypeListVALVE( VkMutableDescriptorTypeListVALVE const & rhs ) VULKAN_HPP_NOEXCEPT
  37548. : MutableDescriptorTypeListVALVE( *reinterpret_cast<MutableDescriptorTypeListVALVE const *>( &rhs ) )
  37549. {
  37550. }
  37551. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  37552. MutableDescriptorTypeListVALVE( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::DescriptorType> const & descriptorTypes_ )
  37553. : descriptorTypeCount( static_cast<uint32_t>( descriptorTypes_.size() ) ), pDescriptorTypes( descriptorTypes_.data() )
  37554. {
  37555. }
  37556. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  37557. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  37558. MutableDescriptorTypeListVALVE & operator=( MutableDescriptorTypeListVALVE const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  37559. MutableDescriptorTypeListVALVE & operator=( VkMutableDescriptorTypeListVALVE const & rhs ) VULKAN_HPP_NOEXCEPT
  37560. {
  37561. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::MutableDescriptorTypeListVALVE const *>( &rhs );
  37562. return *this;
  37563. }
  37564. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  37565. VULKAN_HPP_CONSTEXPR_14 MutableDescriptorTypeListVALVE & setDescriptorTypeCount( uint32_t descriptorTypeCount_ ) VULKAN_HPP_NOEXCEPT
  37566. {
  37567. descriptorTypeCount = descriptorTypeCount_;
  37568. return *this;
  37569. }
  37570. VULKAN_HPP_CONSTEXPR_14 MutableDescriptorTypeListVALVE &
  37571. setPDescriptorTypes( const VULKAN_HPP_NAMESPACE::DescriptorType * pDescriptorTypes_ ) VULKAN_HPP_NOEXCEPT
  37572. {
  37573. pDescriptorTypes = pDescriptorTypes_;
  37574. return *this;
  37575. }
  37576. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  37577. MutableDescriptorTypeListVALVE & setDescriptorTypes(
  37578. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::DescriptorType> const & descriptorTypes_ ) VULKAN_HPP_NOEXCEPT
  37579. {
  37580. descriptorTypeCount = static_cast<uint32_t>( descriptorTypes_.size() );
  37581. pDescriptorTypes = descriptorTypes_.data();
  37582. return *this;
  37583. }
  37584. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  37585. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  37586. operator VkMutableDescriptorTypeListVALVE const &() const VULKAN_HPP_NOEXCEPT
  37587. {
  37588. return *reinterpret_cast<const VkMutableDescriptorTypeListVALVE *>( this );
  37589. }
  37590. operator VkMutableDescriptorTypeListVALVE &() VULKAN_HPP_NOEXCEPT
  37591. {
  37592. return *reinterpret_cast<VkMutableDescriptorTypeListVALVE *>( this );
  37593. }
  37594. #if defined( VULKAN_HPP_USE_REFLECT )
  37595. # if 14 <= VULKAN_HPP_CPP_VERSION
  37596. auto
  37597. # else
  37598. std::tuple<uint32_t const &, const VULKAN_HPP_NAMESPACE::DescriptorType * const &>
  37599. # endif
  37600. reflect() const VULKAN_HPP_NOEXCEPT
  37601. {
  37602. return std::tie( descriptorTypeCount, pDescriptorTypes );
  37603. }
  37604. #endif
  37605. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  37606. auto operator<=>( MutableDescriptorTypeListVALVE const & ) const = default;
  37607. #else
  37608. bool operator==( MutableDescriptorTypeListVALVE const & rhs ) const VULKAN_HPP_NOEXCEPT
  37609. {
  37610. # if defined( VULKAN_HPP_USE_REFLECT )
  37611. return this->reflect() == rhs.reflect();
  37612. # else
  37613. return ( descriptorTypeCount == rhs.descriptorTypeCount ) && ( pDescriptorTypes == rhs.pDescriptorTypes );
  37614. # endif
  37615. }
  37616. bool operator!=( MutableDescriptorTypeListVALVE const & rhs ) const VULKAN_HPP_NOEXCEPT
  37617. {
  37618. return !operator==( rhs );
  37619. }
  37620. #endif
  37621. public:
  37622. uint32_t descriptorTypeCount = {};
  37623. const VULKAN_HPP_NAMESPACE::DescriptorType * pDescriptorTypes = {};
  37624. };
  37625. struct MutableDescriptorTypeCreateInfoVALVE
  37626. {
  37627. using NativeType = VkMutableDescriptorTypeCreateInfoVALVE;
  37628. static const bool allowDuplicate = false;
  37629. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eMutableDescriptorTypeCreateInfoVALVE;
  37630. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  37631. VULKAN_HPP_CONSTEXPR MutableDescriptorTypeCreateInfoVALVE( uint32_t mutableDescriptorTypeListCount_ = {},
  37632. const VULKAN_HPP_NAMESPACE::MutableDescriptorTypeListVALVE * pMutableDescriptorTypeLists_ = {},
  37633. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  37634. : pNext( pNext_ )
  37635. , mutableDescriptorTypeListCount( mutableDescriptorTypeListCount_ )
  37636. , pMutableDescriptorTypeLists( pMutableDescriptorTypeLists_ )
  37637. {
  37638. }
  37639. VULKAN_HPP_CONSTEXPR MutableDescriptorTypeCreateInfoVALVE( MutableDescriptorTypeCreateInfoVALVE const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  37640. MutableDescriptorTypeCreateInfoVALVE( VkMutableDescriptorTypeCreateInfoVALVE const & rhs ) VULKAN_HPP_NOEXCEPT
  37641. : MutableDescriptorTypeCreateInfoVALVE( *reinterpret_cast<MutableDescriptorTypeCreateInfoVALVE const *>( &rhs ) )
  37642. {
  37643. }
  37644. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  37645. MutableDescriptorTypeCreateInfoVALVE(
  37646. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::MutableDescriptorTypeListVALVE> const & mutableDescriptorTypeLists_,
  37647. const void * pNext_ = nullptr )
  37648. : pNext( pNext_ )
  37649. , mutableDescriptorTypeListCount( static_cast<uint32_t>( mutableDescriptorTypeLists_.size() ) )
  37650. , pMutableDescriptorTypeLists( mutableDescriptorTypeLists_.data() )
  37651. {
  37652. }
  37653. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  37654. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  37655. MutableDescriptorTypeCreateInfoVALVE & operator=( MutableDescriptorTypeCreateInfoVALVE const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  37656. MutableDescriptorTypeCreateInfoVALVE & operator=( VkMutableDescriptorTypeCreateInfoVALVE const & rhs ) VULKAN_HPP_NOEXCEPT
  37657. {
  37658. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::MutableDescriptorTypeCreateInfoVALVE const *>( &rhs );
  37659. return *this;
  37660. }
  37661. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  37662. VULKAN_HPP_CONSTEXPR_14 MutableDescriptorTypeCreateInfoVALVE & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  37663. {
  37664. pNext = pNext_;
  37665. return *this;
  37666. }
  37667. VULKAN_HPP_CONSTEXPR_14 MutableDescriptorTypeCreateInfoVALVE &
  37668. setMutableDescriptorTypeListCount( uint32_t mutableDescriptorTypeListCount_ ) VULKAN_HPP_NOEXCEPT
  37669. {
  37670. mutableDescriptorTypeListCount = mutableDescriptorTypeListCount_;
  37671. return *this;
  37672. }
  37673. VULKAN_HPP_CONSTEXPR_14 MutableDescriptorTypeCreateInfoVALVE &
  37674. setPMutableDescriptorTypeLists( const VULKAN_HPP_NAMESPACE::MutableDescriptorTypeListVALVE * pMutableDescriptorTypeLists_ ) VULKAN_HPP_NOEXCEPT
  37675. {
  37676. pMutableDescriptorTypeLists = pMutableDescriptorTypeLists_;
  37677. return *this;
  37678. }
  37679. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  37680. MutableDescriptorTypeCreateInfoVALVE & setMutableDescriptorTypeLists(
  37681. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::MutableDescriptorTypeListVALVE> const & mutableDescriptorTypeLists_ )
  37682. VULKAN_HPP_NOEXCEPT
  37683. {
  37684. mutableDescriptorTypeListCount = static_cast<uint32_t>( mutableDescriptorTypeLists_.size() );
  37685. pMutableDescriptorTypeLists = mutableDescriptorTypeLists_.data();
  37686. return *this;
  37687. }
  37688. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  37689. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  37690. operator VkMutableDescriptorTypeCreateInfoVALVE const &() const VULKAN_HPP_NOEXCEPT
  37691. {
  37692. return *reinterpret_cast<const VkMutableDescriptorTypeCreateInfoVALVE *>( this );
  37693. }
  37694. operator VkMutableDescriptorTypeCreateInfoVALVE &() VULKAN_HPP_NOEXCEPT
  37695. {
  37696. return *reinterpret_cast<VkMutableDescriptorTypeCreateInfoVALVE *>( this );
  37697. }
  37698. #if defined( VULKAN_HPP_USE_REFLECT )
  37699. # if 14 <= VULKAN_HPP_CPP_VERSION
  37700. auto
  37701. # else
  37702. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  37703. const void * const &,
  37704. uint32_t const &,
  37705. const VULKAN_HPP_NAMESPACE::MutableDescriptorTypeListVALVE * const &>
  37706. # endif
  37707. reflect() const VULKAN_HPP_NOEXCEPT
  37708. {
  37709. return std::tie( sType, pNext, mutableDescriptorTypeListCount, pMutableDescriptorTypeLists );
  37710. }
  37711. #endif
  37712. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  37713. auto operator<=>( MutableDescriptorTypeCreateInfoVALVE const & ) const = default;
  37714. #else
  37715. bool operator==( MutableDescriptorTypeCreateInfoVALVE const & rhs ) const VULKAN_HPP_NOEXCEPT
  37716. {
  37717. # if defined( VULKAN_HPP_USE_REFLECT )
  37718. return this->reflect() == rhs.reflect();
  37719. # else
  37720. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( mutableDescriptorTypeListCount == rhs.mutableDescriptorTypeListCount ) &&
  37721. ( pMutableDescriptorTypeLists == rhs.pMutableDescriptorTypeLists );
  37722. # endif
  37723. }
  37724. bool operator!=( MutableDescriptorTypeCreateInfoVALVE const & rhs ) const VULKAN_HPP_NOEXCEPT
  37725. {
  37726. return !operator==( rhs );
  37727. }
  37728. #endif
  37729. public:
  37730. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eMutableDescriptorTypeCreateInfoVALVE;
  37731. const void * pNext = {};
  37732. uint32_t mutableDescriptorTypeListCount = {};
  37733. const VULKAN_HPP_NAMESPACE::MutableDescriptorTypeListVALVE * pMutableDescriptorTypeLists = {};
  37734. };
  37735. template <>
  37736. struct CppType<StructureType, StructureType::eMutableDescriptorTypeCreateInfoVALVE>
  37737. {
  37738. using Type = MutableDescriptorTypeCreateInfoVALVE;
  37739. };
  37740. struct PastPresentationTimingGOOGLE
  37741. {
  37742. using NativeType = VkPastPresentationTimingGOOGLE;
  37743. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  37744. VULKAN_HPP_CONSTEXPR PastPresentationTimingGOOGLE( uint32_t presentID_ = {},
  37745. uint64_t desiredPresentTime_ = {},
  37746. uint64_t actualPresentTime_ = {},
  37747. uint64_t earliestPresentTime_ = {},
  37748. uint64_t presentMargin_ = {} ) VULKAN_HPP_NOEXCEPT
  37749. : presentID( presentID_ )
  37750. , desiredPresentTime( desiredPresentTime_ )
  37751. , actualPresentTime( actualPresentTime_ )
  37752. , earliestPresentTime( earliestPresentTime_ )
  37753. , presentMargin( presentMargin_ )
  37754. {
  37755. }
  37756. VULKAN_HPP_CONSTEXPR PastPresentationTimingGOOGLE( PastPresentationTimingGOOGLE const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  37757. PastPresentationTimingGOOGLE( VkPastPresentationTimingGOOGLE const & rhs ) VULKAN_HPP_NOEXCEPT
  37758. : PastPresentationTimingGOOGLE( *reinterpret_cast<PastPresentationTimingGOOGLE const *>( &rhs ) )
  37759. {
  37760. }
  37761. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  37762. PastPresentationTimingGOOGLE & operator=( PastPresentationTimingGOOGLE const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  37763. PastPresentationTimingGOOGLE & operator=( VkPastPresentationTimingGOOGLE const & rhs ) VULKAN_HPP_NOEXCEPT
  37764. {
  37765. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PastPresentationTimingGOOGLE const *>( &rhs );
  37766. return *this;
  37767. }
  37768. operator VkPastPresentationTimingGOOGLE const &() const VULKAN_HPP_NOEXCEPT
  37769. {
  37770. return *reinterpret_cast<const VkPastPresentationTimingGOOGLE *>( this );
  37771. }
  37772. operator VkPastPresentationTimingGOOGLE &() VULKAN_HPP_NOEXCEPT
  37773. {
  37774. return *reinterpret_cast<VkPastPresentationTimingGOOGLE *>( this );
  37775. }
  37776. #if defined( VULKAN_HPP_USE_REFLECT )
  37777. # if 14 <= VULKAN_HPP_CPP_VERSION
  37778. auto
  37779. # else
  37780. std::tuple<uint32_t const &, uint64_t const &, uint64_t const &, uint64_t const &, uint64_t const &>
  37781. # endif
  37782. reflect() const VULKAN_HPP_NOEXCEPT
  37783. {
  37784. return std::tie( presentID, desiredPresentTime, actualPresentTime, earliestPresentTime, presentMargin );
  37785. }
  37786. #endif
  37787. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  37788. auto operator<=>( PastPresentationTimingGOOGLE const & ) const = default;
  37789. #else
  37790. bool operator==( PastPresentationTimingGOOGLE const & rhs ) const VULKAN_HPP_NOEXCEPT
  37791. {
  37792. # if defined( VULKAN_HPP_USE_REFLECT )
  37793. return this->reflect() == rhs.reflect();
  37794. # else
  37795. return ( presentID == rhs.presentID ) && ( desiredPresentTime == rhs.desiredPresentTime ) && ( actualPresentTime == rhs.actualPresentTime ) &&
  37796. ( earliestPresentTime == rhs.earliestPresentTime ) && ( presentMargin == rhs.presentMargin );
  37797. # endif
  37798. }
  37799. bool operator!=( PastPresentationTimingGOOGLE const & rhs ) const VULKAN_HPP_NOEXCEPT
  37800. {
  37801. return !operator==( rhs );
  37802. }
  37803. #endif
  37804. public:
  37805. uint32_t presentID = {};
  37806. uint64_t desiredPresentTime = {};
  37807. uint64_t actualPresentTime = {};
  37808. uint64_t earliestPresentTime = {};
  37809. uint64_t presentMargin = {};
  37810. };
  37811. struct PerformanceConfigurationAcquireInfoINTEL
  37812. {
  37813. using NativeType = VkPerformanceConfigurationAcquireInfoINTEL;
  37814. static const bool allowDuplicate = false;
  37815. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePerformanceConfigurationAcquireInfoINTEL;
  37816. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  37817. VULKAN_HPP_CONSTEXPR
  37818. PerformanceConfigurationAcquireInfoINTEL( VULKAN_HPP_NAMESPACE::PerformanceConfigurationTypeINTEL type_ =
  37819. VULKAN_HPP_NAMESPACE::PerformanceConfigurationTypeINTEL::eCommandQueueMetricsDiscoveryActivated,
  37820. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  37821. : pNext( pNext_ )
  37822. , type( type_ )
  37823. {
  37824. }
  37825. VULKAN_HPP_CONSTEXPR PerformanceConfigurationAcquireInfoINTEL( PerformanceConfigurationAcquireInfoINTEL const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  37826. PerformanceConfigurationAcquireInfoINTEL( VkPerformanceConfigurationAcquireInfoINTEL const & rhs ) VULKAN_HPP_NOEXCEPT
  37827. : PerformanceConfigurationAcquireInfoINTEL( *reinterpret_cast<PerformanceConfigurationAcquireInfoINTEL const *>( &rhs ) )
  37828. {
  37829. }
  37830. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  37831. PerformanceConfigurationAcquireInfoINTEL & operator=( PerformanceConfigurationAcquireInfoINTEL const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  37832. PerformanceConfigurationAcquireInfoINTEL & operator=( VkPerformanceConfigurationAcquireInfoINTEL const & rhs ) VULKAN_HPP_NOEXCEPT
  37833. {
  37834. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PerformanceConfigurationAcquireInfoINTEL const *>( &rhs );
  37835. return *this;
  37836. }
  37837. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  37838. VULKAN_HPP_CONSTEXPR_14 PerformanceConfigurationAcquireInfoINTEL & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  37839. {
  37840. pNext = pNext_;
  37841. return *this;
  37842. }
  37843. VULKAN_HPP_CONSTEXPR_14 PerformanceConfigurationAcquireInfoINTEL &
  37844. setType( VULKAN_HPP_NAMESPACE::PerformanceConfigurationTypeINTEL type_ ) VULKAN_HPP_NOEXCEPT
  37845. {
  37846. type = type_;
  37847. return *this;
  37848. }
  37849. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  37850. operator VkPerformanceConfigurationAcquireInfoINTEL const &() const VULKAN_HPP_NOEXCEPT
  37851. {
  37852. return *reinterpret_cast<const VkPerformanceConfigurationAcquireInfoINTEL *>( this );
  37853. }
  37854. operator VkPerformanceConfigurationAcquireInfoINTEL &() VULKAN_HPP_NOEXCEPT
  37855. {
  37856. return *reinterpret_cast<VkPerformanceConfigurationAcquireInfoINTEL *>( this );
  37857. }
  37858. #if defined( VULKAN_HPP_USE_REFLECT )
  37859. # if 14 <= VULKAN_HPP_CPP_VERSION
  37860. auto
  37861. # else
  37862. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::PerformanceConfigurationTypeINTEL const &>
  37863. # endif
  37864. reflect() const VULKAN_HPP_NOEXCEPT
  37865. {
  37866. return std::tie( sType, pNext, type );
  37867. }
  37868. #endif
  37869. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  37870. auto operator<=>( PerformanceConfigurationAcquireInfoINTEL const & ) const = default;
  37871. #else
  37872. bool operator==( PerformanceConfigurationAcquireInfoINTEL const & rhs ) const VULKAN_HPP_NOEXCEPT
  37873. {
  37874. # if defined( VULKAN_HPP_USE_REFLECT )
  37875. return this->reflect() == rhs.reflect();
  37876. # else
  37877. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( type == rhs.type );
  37878. # endif
  37879. }
  37880. bool operator!=( PerformanceConfigurationAcquireInfoINTEL const & rhs ) const VULKAN_HPP_NOEXCEPT
  37881. {
  37882. return !operator==( rhs );
  37883. }
  37884. #endif
  37885. public:
  37886. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePerformanceConfigurationAcquireInfoINTEL;
  37887. const void * pNext = {};
  37888. VULKAN_HPP_NAMESPACE::PerformanceConfigurationTypeINTEL type =
  37889. VULKAN_HPP_NAMESPACE::PerformanceConfigurationTypeINTEL::eCommandQueueMetricsDiscoveryActivated;
  37890. };
  37891. template <>
  37892. struct CppType<StructureType, StructureType::ePerformanceConfigurationAcquireInfoINTEL>
  37893. {
  37894. using Type = PerformanceConfigurationAcquireInfoINTEL;
  37895. };
  37896. struct PerformanceCounterDescriptionKHR
  37897. {
  37898. using NativeType = VkPerformanceCounterDescriptionKHR;
  37899. static const bool allowDuplicate = false;
  37900. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePerformanceCounterDescriptionKHR;
  37901. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  37902. VULKAN_HPP_CONSTEXPR_14 PerformanceCounterDescriptionKHR( VULKAN_HPP_NAMESPACE::PerformanceCounterDescriptionFlagsKHR flags_ = {},
  37903. std::array<char, VK_MAX_DESCRIPTION_SIZE> const & name_ = {},
  37904. std::array<char, VK_MAX_DESCRIPTION_SIZE> const & category_ = {},
  37905. std::array<char, VK_MAX_DESCRIPTION_SIZE> const & description_ = {},
  37906. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  37907. : pNext( pNext_ )
  37908. , flags( flags_ )
  37909. , name( name_ )
  37910. , category( category_ )
  37911. , description( description_ )
  37912. {
  37913. }
  37914. VULKAN_HPP_CONSTEXPR_14 PerformanceCounterDescriptionKHR( PerformanceCounterDescriptionKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  37915. PerformanceCounterDescriptionKHR( VkPerformanceCounterDescriptionKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  37916. : PerformanceCounterDescriptionKHR( *reinterpret_cast<PerformanceCounterDescriptionKHR const *>( &rhs ) )
  37917. {
  37918. }
  37919. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  37920. PerformanceCounterDescriptionKHR & operator=( PerformanceCounterDescriptionKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  37921. PerformanceCounterDescriptionKHR & operator=( VkPerformanceCounterDescriptionKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  37922. {
  37923. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PerformanceCounterDescriptionKHR const *>( &rhs );
  37924. return *this;
  37925. }
  37926. operator VkPerformanceCounterDescriptionKHR const &() const VULKAN_HPP_NOEXCEPT
  37927. {
  37928. return *reinterpret_cast<const VkPerformanceCounterDescriptionKHR *>( this );
  37929. }
  37930. operator VkPerformanceCounterDescriptionKHR &() VULKAN_HPP_NOEXCEPT
  37931. {
  37932. return *reinterpret_cast<VkPerformanceCounterDescriptionKHR *>( this );
  37933. }
  37934. #if defined( VULKAN_HPP_USE_REFLECT )
  37935. # if 14 <= VULKAN_HPP_CPP_VERSION
  37936. auto
  37937. # else
  37938. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  37939. void * const &,
  37940. VULKAN_HPP_NAMESPACE::PerformanceCounterDescriptionFlagsKHR const &,
  37941. VULKAN_HPP_NAMESPACE::ArrayWrapper1D<char, VK_MAX_DESCRIPTION_SIZE> const &,
  37942. VULKAN_HPP_NAMESPACE::ArrayWrapper1D<char, VK_MAX_DESCRIPTION_SIZE> const &,
  37943. VULKAN_HPP_NAMESPACE::ArrayWrapper1D<char, VK_MAX_DESCRIPTION_SIZE> const &>
  37944. # endif
  37945. reflect() const VULKAN_HPP_NOEXCEPT
  37946. {
  37947. return std::tie( sType, pNext, flags, name, category, description );
  37948. }
  37949. #endif
  37950. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  37951. auto operator<=>( PerformanceCounterDescriptionKHR const & ) const = default;
  37952. #else
  37953. bool operator==( PerformanceCounterDescriptionKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  37954. {
  37955. # if defined( VULKAN_HPP_USE_REFLECT )
  37956. return this->reflect() == rhs.reflect();
  37957. # else
  37958. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( flags == rhs.flags ) && ( name == rhs.name ) && ( category == rhs.category ) &&
  37959. ( description == rhs.description );
  37960. # endif
  37961. }
  37962. bool operator!=( PerformanceCounterDescriptionKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  37963. {
  37964. return !operator==( rhs );
  37965. }
  37966. #endif
  37967. public:
  37968. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePerformanceCounterDescriptionKHR;
  37969. void * pNext = {};
  37970. VULKAN_HPP_NAMESPACE::PerformanceCounterDescriptionFlagsKHR flags = {};
  37971. VULKAN_HPP_NAMESPACE::ArrayWrapper1D<char, VK_MAX_DESCRIPTION_SIZE> name = {};
  37972. VULKAN_HPP_NAMESPACE::ArrayWrapper1D<char, VK_MAX_DESCRIPTION_SIZE> category = {};
  37973. VULKAN_HPP_NAMESPACE::ArrayWrapper1D<char, VK_MAX_DESCRIPTION_SIZE> description = {};
  37974. };
  37975. template <>
  37976. struct CppType<StructureType, StructureType::ePerformanceCounterDescriptionKHR>
  37977. {
  37978. using Type = PerformanceCounterDescriptionKHR;
  37979. };
  37980. struct PerformanceCounterKHR
  37981. {
  37982. using NativeType = VkPerformanceCounterKHR;
  37983. static const bool allowDuplicate = false;
  37984. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePerformanceCounterKHR;
  37985. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  37986. VULKAN_HPP_CONSTEXPR_14
  37987. PerformanceCounterKHR( VULKAN_HPP_NAMESPACE::PerformanceCounterUnitKHR unit_ = VULKAN_HPP_NAMESPACE::PerformanceCounterUnitKHR::eGeneric,
  37988. VULKAN_HPP_NAMESPACE::PerformanceCounterScopeKHR scope_ = VULKAN_HPP_NAMESPACE::PerformanceCounterScopeKHR::eCommandBuffer,
  37989. VULKAN_HPP_NAMESPACE::PerformanceCounterStorageKHR storage_ = VULKAN_HPP_NAMESPACE::PerformanceCounterStorageKHR::eInt32,
  37990. std::array<uint8_t, VK_UUID_SIZE> const & uuid_ = {},
  37991. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  37992. : pNext( pNext_ )
  37993. , unit( unit_ )
  37994. , scope( scope_ )
  37995. , storage( storage_ )
  37996. , uuid( uuid_ )
  37997. {
  37998. }
  37999. VULKAN_HPP_CONSTEXPR_14 PerformanceCounterKHR( PerformanceCounterKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  38000. PerformanceCounterKHR( VkPerformanceCounterKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  38001. : PerformanceCounterKHR( *reinterpret_cast<PerformanceCounterKHR const *>( &rhs ) )
  38002. {
  38003. }
  38004. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  38005. PerformanceCounterKHR & operator=( PerformanceCounterKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  38006. PerformanceCounterKHR & operator=( VkPerformanceCounterKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  38007. {
  38008. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PerformanceCounterKHR const *>( &rhs );
  38009. return *this;
  38010. }
  38011. operator VkPerformanceCounterKHR const &() const VULKAN_HPP_NOEXCEPT
  38012. {
  38013. return *reinterpret_cast<const VkPerformanceCounterKHR *>( this );
  38014. }
  38015. operator VkPerformanceCounterKHR &() VULKAN_HPP_NOEXCEPT
  38016. {
  38017. return *reinterpret_cast<VkPerformanceCounterKHR *>( this );
  38018. }
  38019. #if defined( VULKAN_HPP_USE_REFLECT )
  38020. # if 14 <= VULKAN_HPP_CPP_VERSION
  38021. auto
  38022. # else
  38023. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  38024. void * const &,
  38025. VULKAN_HPP_NAMESPACE::PerformanceCounterUnitKHR const &,
  38026. VULKAN_HPP_NAMESPACE::PerformanceCounterScopeKHR const &,
  38027. VULKAN_HPP_NAMESPACE::PerformanceCounterStorageKHR const &,
  38028. VULKAN_HPP_NAMESPACE::ArrayWrapper1D<uint8_t, VK_UUID_SIZE> const &>
  38029. # endif
  38030. reflect() const VULKAN_HPP_NOEXCEPT
  38031. {
  38032. return std::tie( sType, pNext, unit, scope, storage, uuid );
  38033. }
  38034. #endif
  38035. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  38036. auto operator<=>( PerformanceCounterKHR const & ) const = default;
  38037. #else
  38038. bool operator==( PerformanceCounterKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  38039. {
  38040. # if defined( VULKAN_HPP_USE_REFLECT )
  38041. return this->reflect() == rhs.reflect();
  38042. # else
  38043. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( unit == rhs.unit ) && ( scope == rhs.scope ) && ( storage == rhs.storage ) &&
  38044. ( uuid == rhs.uuid );
  38045. # endif
  38046. }
  38047. bool operator!=( PerformanceCounterKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  38048. {
  38049. return !operator==( rhs );
  38050. }
  38051. #endif
  38052. public:
  38053. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePerformanceCounterKHR;
  38054. void * pNext = {};
  38055. VULKAN_HPP_NAMESPACE::PerformanceCounterUnitKHR unit = VULKAN_HPP_NAMESPACE::PerformanceCounterUnitKHR::eGeneric;
  38056. VULKAN_HPP_NAMESPACE::PerformanceCounterScopeKHR scope = VULKAN_HPP_NAMESPACE::PerformanceCounterScopeKHR::eCommandBuffer;
  38057. VULKAN_HPP_NAMESPACE::PerformanceCounterStorageKHR storage = VULKAN_HPP_NAMESPACE::PerformanceCounterStorageKHR::eInt32;
  38058. VULKAN_HPP_NAMESPACE::ArrayWrapper1D<uint8_t, VK_UUID_SIZE> uuid = {};
  38059. };
  38060. template <>
  38061. struct CppType<StructureType, StructureType::ePerformanceCounterKHR>
  38062. {
  38063. using Type = PerformanceCounterKHR;
  38064. };
  38065. union PerformanceCounterResultKHR
  38066. {
  38067. using NativeType = VkPerformanceCounterResultKHR;
  38068. #if !defined( VULKAN_HPP_NO_UNION_CONSTRUCTORS )
  38069. VULKAN_HPP_CONSTEXPR_14 PerformanceCounterResultKHR( int32_t int32_ = {} ) : int32( int32_ ) {}
  38070. VULKAN_HPP_CONSTEXPR_14 PerformanceCounterResultKHR( int64_t int64_ ) : int64( int64_ ) {}
  38071. VULKAN_HPP_CONSTEXPR_14 PerformanceCounterResultKHR( uint32_t uint32_ ) : uint32( uint32_ ) {}
  38072. VULKAN_HPP_CONSTEXPR_14 PerformanceCounterResultKHR( uint64_t uint64_ ) : uint64( uint64_ ) {}
  38073. VULKAN_HPP_CONSTEXPR_14 PerformanceCounterResultKHR( float float32_ ) : float32( float32_ ) {}
  38074. VULKAN_HPP_CONSTEXPR_14 PerformanceCounterResultKHR( double float64_ ) : float64( float64_ ) {}
  38075. #endif /*VULKAN_HPP_NO_UNION_CONSTRUCTORS*/
  38076. #if !defined( VULKAN_HPP_NO_UNION_SETTERS )
  38077. VULKAN_HPP_CONSTEXPR_14 PerformanceCounterResultKHR & setInt32( int32_t int32_ ) VULKAN_HPP_NOEXCEPT
  38078. {
  38079. int32 = int32_;
  38080. return *this;
  38081. }
  38082. VULKAN_HPP_CONSTEXPR_14 PerformanceCounterResultKHR & setInt64( int64_t int64_ ) VULKAN_HPP_NOEXCEPT
  38083. {
  38084. int64 = int64_;
  38085. return *this;
  38086. }
  38087. VULKAN_HPP_CONSTEXPR_14 PerformanceCounterResultKHR & setUint32( uint32_t uint32_ ) VULKAN_HPP_NOEXCEPT
  38088. {
  38089. uint32 = uint32_;
  38090. return *this;
  38091. }
  38092. VULKAN_HPP_CONSTEXPR_14 PerformanceCounterResultKHR & setUint64( uint64_t uint64_ ) VULKAN_HPP_NOEXCEPT
  38093. {
  38094. uint64 = uint64_;
  38095. return *this;
  38096. }
  38097. VULKAN_HPP_CONSTEXPR_14 PerformanceCounterResultKHR & setFloat32( float float32_ ) VULKAN_HPP_NOEXCEPT
  38098. {
  38099. float32 = float32_;
  38100. return *this;
  38101. }
  38102. VULKAN_HPP_CONSTEXPR_14 PerformanceCounterResultKHR & setFloat64( double float64_ ) VULKAN_HPP_NOEXCEPT
  38103. {
  38104. float64 = float64_;
  38105. return *this;
  38106. }
  38107. #endif /*VULKAN_HPP_NO_UNION_SETTERS*/
  38108. operator VkPerformanceCounterResultKHR const &() const
  38109. {
  38110. return *reinterpret_cast<const VkPerformanceCounterResultKHR *>( this );
  38111. }
  38112. operator VkPerformanceCounterResultKHR &()
  38113. {
  38114. return *reinterpret_cast<VkPerformanceCounterResultKHR *>( this );
  38115. }
  38116. int32_t int32;
  38117. int64_t int64;
  38118. uint32_t uint32;
  38119. uint64_t uint64;
  38120. float float32;
  38121. double float64;
  38122. };
  38123. struct PerformanceMarkerInfoINTEL
  38124. {
  38125. using NativeType = VkPerformanceMarkerInfoINTEL;
  38126. static const bool allowDuplicate = false;
  38127. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePerformanceMarkerInfoINTEL;
  38128. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  38129. VULKAN_HPP_CONSTEXPR PerformanceMarkerInfoINTEL( uint64_t marker_ = {}, const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  38130. : pNext( pNext_ )
  38131. , marker( marker_ )
  38132. {
  38133. }
  38134. VULKAN_HPP_CONSTEXPR PerformanceMarkerInfoINTEL( PerformanceMarkerInfoINTEL const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  38135. PerformanceMarkerInfoINTEL( VkPerformanceMarkerInfoINTEL const & rhs ) VULKAN_HPP_NOEXCEPT
  38136. : PerformanceMarkerInfoINTEL( *reinterpret_cast<PerformanceMarkerInfoINTEL const *>( &rhs ) )
  38137. {
  38138. }
  38139. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  38140. PerformanceMarkerInfoINTEL & operator=( PerformanceMarkerInfoINTEL const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  38141. PerformanceMarkerInfoINTEL & operator=( VkPerformanceMarkerInfoINTEL const & rhs ) VULKAN_HPP_NOEXCEPT
  38142. {
  38143. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PerformanceMarkerInfoINTEL const *>( &rhs );
  38144. return *this;
  38145. }
  38146. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  38147. VULKAN_HPP_CONSTEXPR_14 PerformanceMarkerInfoINTEL & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  38148. {
  38149. pNext = pNext_;
  38150. return *this;
  38151. }
  38152. VULKAN_HPP_CONSTEXPR_14 PerformanceMarkerInfoINTEL & setMarker( uint64_t marker_ ) VULKAN_HPP_NOEXCEPT
  38153. {
  38154. marker = marker_;
  38155. return *this;
  38156. }
  38157. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  38158. operator VkPerformanceMarkerInfoINTEL const &() const VULKAN_HPP_NOEXCEPT
  38159. {
  38160. return *reinterpret_cast<const VkPerformanceMarkerInfoINTEL *>( this );
  38161. }
  38162. operator VkPerformanceMarkerInfoINTEL &() VULKAN_HPP_NOEXCEPT
  38163. {
  38164. return *reinterpret_cast<VkPerformanceMarkerInfoINTEL *>( this );
  38165. }
  38166. #if defined( VULKAN_HPP_USE_REFLECT )
  38167. # if 14 <= VULKAN_HPP_CPP_VERSION
  38168. auto
  38169. # else
  38170. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, uint64_t const &>
  38171. # endif
  38172. reflect() const VULKAN_HPP_NOEXCEPT
  38173. {
  38174. return std::tie( sType, pNext, marker );
  38175. }
  38176. #endif
  38177. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  38178. auto operator<=>( PerformanceMarkerInfoINTEL const & ) const = default;
  38179. #else
  38180. bool operator==( PerformanceMarkerInfoINTEL const & rhs ) const VULKAN_HPP_NOEXCEPT
  38181. {
  38182. # if defined( VULKAN_HPP_USE_REFLECT )
  38183. return this->reflect() == rhs.reflect();
  38184. # else
  38185. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( marker == rhs.marker );
  38186. # endif
  38187. }
  38188. bool operator!=( PerformanceMarkerInfoINTEL const & rhs ) const VULKAN_HPP_NOEXCEPT
  38189. {
  38190. return !operator==( rhs );
  38191. }
  38192. #endif
  38193. public:
  38194. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePerformanceMarkerInfoINTEL;
  38195. const void * pNext = {};
  38196. uint64_t marker = {};
  38197. };
  38198. template <>
  38199. struct CppType<StructureType, StructureType::ePerformanceMarkerInfoINTEL>
  38200. {
  38201. using Type = PerformanceMarkerInfoINTEL;
  38202. };
  38203. struct PerformanceOverrideInfoINTEL
  38204. {
  38205. using NativeType = VkPerformanceOverrideInfoINTEL;
  38206. static const bool allowDuplicate = false;
  38207. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePerformanceOverrideInfoINTEL;
  38208. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  38209. VULKAN_HPP_CONSTEXPR PerformanceOverrideInfoINTEL(
  38210. VULKAN_HPP_NAMESPACE::PerformanceOverrideTypeINTEL type_ = VULKAN_HPP_NAMESPACE::PerformanceOverrideTypeINTEL::eNullHardware,
  38211. VULKAN_HPP_NAMESPACE::Bool32 enable_ = {},
  38212. uint64_t parameter_ = {},
  38213. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  38214. : pNext( pNext_ )
  38215. , type( type_ )
  38216. , enable( enable_ )
  38217. , parameter( parameter_ )
  38218. {
  38219. }
  38220. VULKAN_HPP_CONSTEXPR PerformanceOverrideInfoINTEL( PerformanceOverrideInfoINTEL const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  38221. PerformanceOverrideInfoINTEL( VkPerformanceOverrideInfoINTEL const & rhs ) VULKAN_HPP_NOEXCEPT
  38222. : PerformanceOverrideInfoINTEL( *reinterpret_cast<PerformanceOverrideInfoINTEL const *>( &rhs ) )
  38223. {
  38224. }
  38225. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  38226. PerformanceOverrideInfoINTEL & operator=( PerformanceOverrideInfoINTEL const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  38227. PerformanceOverrideInfoINTEL & operator=( VkPerformanceOverrideInfoINTEL const & rhs ) VULKAN_HPP_NOEXCEPT
  38228. {
  38229. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PerformanceOverrideInfoINTEL const *>( &rhs );
  38230. return *this;
  38231. }
  38232. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  38233. VULKAN_HPP_CONSTEXPR_14 PerformanceOverrideInfoINTEL & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  38234. {
  38235. pNext = pNext_;
  38236. return *this;
  38237. }
  38238. VULKAN_HPP_CONSTEXPR_14 PerformanceOverrideInfoINTEL & setType( VULKAN_HPP_NAMESPACE::PerformanceOverrideTypeINTEL type_ ) VULKAN_HPP_NOEXCEPT
  38239. {
  38240. type = type_;
  38241. return *this;
  38242. }
  38243. VULKAN_HPP_CONSTEXPR_14 PerformanceOverrideInfoINTEL & setEnable( VULKAN_HPP_NAMESPACE::Bool32 enable_ ) VULKAN_HPP_NOEXCEPT
  38244. {
  38245. enable = enable_;
  38246. return *this;
  38247. }
  38248. VULKAN_HPP_CONSTEXPR_14 PerformanceOverrideInfoINTEL & setParameter( uint64_t parameter_ ) VULKAN_HPP_NOEXCEPT
  38249. {
  38250. parameter = parameter_;
  38251. return *this;
  38252. }
  38253. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  38254. operator VkPerformanceOverrideInfoINTEL const &() const VULKAN_HPP_NOEXCEPT
  38255. {
  38256. return *reinterpret_cast<const VkPerformanceOverrideInfoINTEL *>( this );
  38257. }
  38258. operator VkPerformanceOverrideInfoINTEL &() VULKAN_HPP_NOEXCEPT
  38259. {
  38260. return *reinterpret_cast<VkPerformanceOverrideInfoINTEL *>( this );
  38261. }
  38262. #if defined( VULKAN_HPP_USE_REFLECT )
  38263. # if 14 <= VULKAN_HPP_CPP_VERSION
  38264. auto
  38265. # else
  38266. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  38267. const void * const &,
  38268. VULKAN_HPP_NAMESPACE::PerformanceOverrideTypeINTEL const &,
  38269. VULKAN_HPP_NAMESPACE::Bool32 const &,
  38270. uint64_t const &>
  38271. # endif
  38272. reflect() const VULKAN_HPP_NOEXCEPT
  38273. {
  38274. return std::tie( sType, pNext, type, enable, parameter );
  38275. }
  38276. #endif
  38277. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  38278. auto operator<=>( PerformanceOverrideInfoINTEL const & ) const = default;
  38279. #else
  38280. bool operator==( PerformanceOverrideInfoINTEL const & rhs ) const VULKAN_HPP_NOEXCEPT
  38281. {
  38282. # if defined( VULKAN_HPP_USE_REFLECT )
  38283. return this->reflect() == rhs.reflect();
  38284. # else
  38285. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( type == rhs.type ) && ( enable == rhs.enable ) && ( parameter == rhs.parameter );
  38286. # endif
  38287. }
  38288. bool operator!=( PerformanceOverrideInfoINTEL const & rhs ) const VULKAN_HPP_NOEXCEPT
  38289. {
  38290. return !operator==( rhs );
  38291. }
  38292. #endif
  38293. public:
  38294. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePerformanceOverrideInfoINTEL;
  38295. const void * pNext = {};
  38296. VULKAN_HPP_NAMESPACE::PerformanceOverrideTypeINTEL type = VULKAN_HPP_NAMESPACE::PerformanceOverrideTypeINTEL::eNullHardware;
  38297. VULKAN_HPP_NAMESPACE::Bool32 enable = {};
  38298. uint64_t parameter = {};
  38299. };
  38300. template <>
  38301. struct CppType<StructureType, StructureType::ePerformanceOverrideInfoINTEL>
  38302. {
  38303. using Type = PerformanceOverrideInfoINTEL;
  38304. };
  38305. struct PerformanceQuerySubmitInfoKHR
  38306. {
  38307. using NativeType = VkPerformanceQuerySubmitInfoKHR;
  38308. static const bool allowDuplicate = false;
  38309. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePerformanceQuerySubmitInfoKHR;
  38310. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  38311. VULKAN_HPP_CONSTEXPR PerformanceQuerySubmitInfoKHR( uint32_t counterPassIndex_ = {}, const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  38312. : pNext( pNext_ )
  38313. , counterPassIndex( counterPassIndex_ )
  38314. {
  38315. }
  38316. VULKAN_HPP_CONSTEXPR PerformanceQuerySubmitInfoKHR( PerformanceQuerySubmitInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  38317. PerformanceQuerySubmitInfoKHR( VkPerformanceQuerySubmitInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  38318. : PerformanceQuerySubmitInfoKHR( *reinterpret_cast<PerformanceQuerySubmitInfoKHR const *>( &rhs ) )
  38319. {
  38320. }
  38321. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  38322. PerformanceQuerySubmitInfoKHR & operator=( PerformanceQuerySubmitInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  38323. PerformanceQuerySubmitInfoKHR & operator=( VkPerformanceQuerySubmitInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  38324. {
  38325. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PerformanceQuerySubmitInfoKHR const *>( &rhs );
  38326. return *this;
  38327. }
  38328. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  38329. VULKAN_HPP_CONSTEXPR_14 PerformanceQuerySubmitInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  38330. {
  38331. pNext = pNext_;
  38332. return *this;
  38333. }
  38334. VULKAN_HPP_CONSTEXPR_14 PerformanceQuerySubmitInfoKHR & setCounterPassIndex( uint32_t counterPassIndex_ ) VULKAN_HPP_NOEXCEPT
  38335. {
  38336. counterPassIndex = counterPassIndex_;
  38337. return *this;
  38338. }
  38339. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  38340. operator VkPerformanceQuerySubmitInfoKHR const &() const VULKAN_HPP_NOEXCEPT
  38341. {
  38342. return *reinterpret_cast<const VkPerformanceQuerySubmitInfoKHR *>( this );
  38343. }
  38344. operator VkPerformanceQuerySubmitInfoKHR &() VULKAN_HPP_NOEXCEPT
  38345. {
  38346. return *reinterpret_cast<VkPerformanceQuerySubmitInfoKHR *>( this );
  38347. }
  38348. #if defined( VULKAN_HPP_USE_REFLECT )
  38349. # if 14 <= VULKAN_HPP_CPP_VERSION
  38350. auto
  38351. # else
  38352. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, uint32_t const &>
  38353. # endif
  38354. reflect() const VULKAN_HPP_NOEXCEPT
  38355. {
  38356. return std::tie( sType, pNext, counterPassIndex );
  38357. }
  38358. #endif
  38359. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  38360. auto operator<=>( PerformanceQuerySubmitInfoKHR const & ) const = default;
  38361. #else
  38362. bool operator==( PerformanceQuerySubmitInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  38363. {
  38364. # if defined( VULKAN_HPP_USE_REFLECT )
  38365. return this->reflect() == rhs.reflect();
  38366. # else
  38367. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( counterPassIndex == rhs.counterPassIndex );
  38368. # endif
  38369. }
  38370. bool operator!=( PerformanceQuerySubmitInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  38371. {
  38372. return !operator==( rhs );
  38373. }
  38374. #endif
  38375. public:
  38376. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePerformanceQuerySubmitInfoKHR;
  38377. const void * pNext = {};
  38378. uint32_t counterPassIndex = {};
  38379. };
  38380. template <>
  38381. struct CppType<StructureType, StructureType::ePerformanceQuerySubmitInfoKHR>
  38382. {
  38383. using Type = PerformanceQuerySubmitInfoKHR;
  38384. };
  38385. struct PerformanceStreamMarkerInfoINTEL
  38386. {
  38387. using NativeType = VkPerformanceStreamMarkerInfoINTEL;
  38388. static const bool allowDuplicate = false;
  38389. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePerformanceStreamMarkerInfoINTEL;
  38390. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  38391. VULKAN_HPP_CONSTEXPR PerformanceStreamMarkerInfoINTEL( uint32_t marker_ = {}, const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  38392. : pNext( pNext_ )
  38393. , marker( marker_ )
  38394. {
  38395. }
  38396. VULKAN_HPP_CONSTEXPR PerformanceStreamMarkerInfoINTEL( PerformanceStreamMarkerInfoINTEL const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  38397. PerformanceStreamMarkerInfoINTEL( VkPerformanceStreamMarkerInfoINTEL const & rhs ) VULKAN_HPP_NOEXCEPT
  38398. : PerformanceStreamMarkerInfoINTEL( *reinterpret_cast<PerformanceStreamMarkerInfoINTEL const *>( &rhs ) )
  38399. {
  38400. }
  38401. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  38402. PerformanceStreamMarkerInfoINTEL & operator=( PerformanceStreamMarkerInfoINTEL const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  38403. PerformanceStreamMarkerInfoINTEL & operator=( VkPerformanceStreamMarkerInfoINTEL const & rhs ) VULKAN_HPP_NOEXCEPT
  38404. {
  38405. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PerformanceStreamMarkerInfoINTEL const *>( &rhs );
  38406. return *this;
  38407. }
  38408. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  38409. VULKAN_HPP_CONSTEXPR_14 PerformanceStreamMarkerInfoINTEL & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  38410. {
  38411. pNext = pNext_;
  38412. return *this;
  38413. }
  38414. VULKAN_HPP_CONSTEXPR_14 PerformanceStreamMarkerInfoINTEL & setMarker( uint32_t marker_ ) VULKAN_HPP_NOEXCEPT
  38415. {
  38416. marker = marker_;
  38417. return *this;
  38418. }
  38419. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  38420. operator VkPerformanceStreamMarkerInfoINTEL const &() const VULKAN_HPP_NOEXCEPT
  38421. {
  38422. return *reinterpret_cast<const VkPerformanceStreamMarkerInfoINTEL *>( this );
  38423. }
  38424. operator VkPerformanceStreamMarkerInfoINTEL &() VULKAN_HPP_NOEXCEPT
  38425. {
  38426. return *reinterpret_cast<VkPerformanceStreamMarkerInfoINTEL *>( this );
  38427. }
  38428. #if defined( VULKAN_HPP_USE_REFLECT )
  38429. # if 14 <= VULKAN_HPP_CPP_VERSION
  38430. auto
  38431. # else
  38432. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, uint32_t const &>
  38433. # endif
  38434. reflect() const VULKAN_HPP_NOEXCEPT
  38435. {
  38436. return std::tie( sType, pNext, marker );
  38437. }
  38438. #endif
  38439. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  38440. auto operator<=>( PerformanceStreamMarkerInfoINTEL const & ) const = default;
  38441. #else
  38442. bool operator==( PerformanceStreamMarkerInfoINTEL const & rhs ) const VULKAN_HPP_NOEXCEPT
  38443. {
  38444. # if defined( VULKAN_HPP_USE_REFLECT )
  38445. return this->reflect() == rhs.reflect();
  38446. # else
  38447. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( marker == rhs.marker );
  38448. # endif
  38449. }
  38450. bool operator!=( PerformanceStreamMarkerInfoINTEL const & rhs ) const VULKAN_HPP_NOEXCEPT
  38451. {
  38452. return !operator==( rhs );
  38453. }
  38454. #endif
  38455. public:
  38456. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePerformanceStreamMarkerInfoINTEL;
  38457. const void * pNext = {};
  38458. uint32_t marker = {};
  38459. };
  38460. template <>
  38461. struct CppType<StructureType, StructureType::ePerformanceStreamMarkerInfoINTEL>
  38462. {
  38463. using Type = PerformanceStreamMarkerInfoINTEL;
  38464. };
  38465. union PerformanceValueDataINTEL
  38466. {
  38467. using NativeType = VkPerformanceValueDataINTEL;
  38468. #if !defined( VULKAN_HPP_NO_UNION_CONSTRUCTORS )
  38469. VULKAN_HPP_CONSTEXPR_14 PerformanceValueDataINTEL( uint32_t value32_ = {} ) : value32( value32_ ) {}
  38470. VULKAN_HPP_CONSTEXPR_14 PerformanceValueDataINTEL( uint64_t value64_ ) : value64( value64_ ) {}
  38471. VULKAN_HPP_CONSTEXPR_14 PerformanceValueDataINTEL( float valueFloat_ ) : valueFloat( valueFloat_ ) {}
  38472. VULKAN_HPP_CONSTEXPR_14 PerformanceValueDataINTEL( const char * valueString_ ) : valueString( valueString_ ) {}
  38473. #endif /*VULKAN_HPP_NO_UNION_CONSTRUCTORS*/
  38474. #if !defined( VULKAN_HPP_NO_UNION_SETTERS )
  38475. VULKAN_HPP_CONSTEXPR_14 PerformanceValueDataINTEL & setValue32( uint32_t value32_ ) VULKAN_HPP_NOEXCEPT
  38476. {
  38477. value32 = value32_;
  38478. return *this;
  38479. }
  38480. VULKAN_HPP_CONSTEXPR_14 PerformanceValueDataINTEL & setValue64( uint64_t value64_ ) VULKAN_HPP_NOEXCEPT
  38481. {
  38482. value64 = value64_;
  38483. return *this;
  38484. }
  38485. VULKAN_HPP_CONSTEXPR_14 PerformanceValueDataINTEL & setValueFloat( float valueFloat_ ) VULKAN_HPP_NOEXCEPT
  38486. {
  38487. valueFloat = valueFloat_;
  38488. return *this;
  38489. }
  38490. VULKAN_HPP_CONSTEXPR_14 PerformanceValueDataINTEL & setValueBool( VULKAN_HPP_NAMESPACE::Bool32 valueBool_ ) VULKAN_HPP_NOEXCEPT
  38491. {
  38492. valueBool = valueBool_;
  38493. return *this;
  38494. }
  38495. VULKAN_HPP_CONSTEXPR_14 PerformanceValueDataINTEL & setValueString( const char * valueString_ ) VULKAN_HPP_NOEXCEPT
  38496. {
  38497. valueString = valueString_;
  38498. return *this;
  38499. }
  38500. #endif /*VULKAN_HPP_NO_UNION_SETTERS*/
  38501. operator VkPerformanceValueDataINTEL const &() const
  38502. {
  38503. return *reinterpret_cast<const VkPerformanceValueDataINTEL *>( this );
  38504. }
  38505. operator VkPerformanceValueDataINTEL &()
  38506. {
  38507. return *reinterpret_cast<VkPerformanceValueDataINTEL *>( this );
  38508. }
  38509. #ifdef VULKAN_HPP_HAS_UNRESTRICTED_UNIONS
  38510. uint32_t value32;
  38511. uint64_t value64;
  38512. float valueFloat;
  38513. VULKAN_HPP_NAMESPACE::Bool32 valueBool;
  38514. const char * valueString;
  38515. #else
  38516. uint32_t value32;
  38517. uint64_t value64;
  38518. float valueFloat;
  38519. VkBool32 valueBool;
  38520. const char * valueString;
  38521. #endif /*VULKAN_HPP_HAS_UNRESTRICTED_UNIONS*/
  38522. };
  38523. struct PerformanceValueINTEL
  38524. {
  38525. using NativeType = VkPerformanceValueINTEL;
  38526. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  38527. VULKAN_HPP_CONSTEXPR_14
  38528. PerformanceValueINTEL( VULKAN_HPP_NAMESPACE::PerformanceValueTypeINTEL type_ = VULKAN_HPP_NAMESPACE::PerformanceValueTypeINTEL::eUint32,
  38529. VULKAN_HPP_NAMESPACE::PerformanceValueDataINTEL data_ = {} ) VULKAN_HPP_NOEXCEPT
  38530. : type( type_ )
  38531. , data( data_ )
  38532. {
  38533. }
  38534. VULKAN_HPP_CONSTEXPR_14 PerformanceValueINTEL( PerformanceValueINTEL const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  38535. PerformanceValueINTEL( VkPerformanceValueINTEL const & rhs ) VULKAN_HPP_NOEXCEPT
  38536. : PerformanceValueINTEL( *reinterpret_cast<PerformanceValueINTEL const *>( &rhs ) )
  38537. {
  38538. }
  38539. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  38540. PerformanceValueINTEL & operator=( PerformanceValueINTEL const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  38541. PerformanceValueINTEL & operator=( VkPerformanceValueINTEL const & rhs ) VULKAN_HPP_NOEXCEPT
  38542. {
  38543. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PerformanceValueINTEL const *>( &rhs );
  38544. return *this;
  38545. }
  38546. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  38547. VULKAN_HPP_CONSTEXPR_14 PerformanceValueINTEL & setType( VULKAN_HPP_NAMESPACE::PerformanceValueTypeINTEL type_ ) VULKAN_HPP_NOEXCEPT
  38548. {
  38549. type = type_;
  38550. return *this;
  38551. }
  38552. VULKAN_HPP_CONSTEXPR_14 PerformanceValueINTEL & setData( VULKAN_HPP_NAMESPACE::PerformanceValueDataINTEL const & data_ ) VULKAN_HPP_NOEXCEPT
  38553. {
  38554. data = data_;
  38555. return *this;
  38556. }
  38557. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  38558. operator VkPerformanceValueINTEL const &() const VULKAN_HPP_NOEXCEPT
  38559. {
  38560. return *reinterpret_cast<const VkPerformanceValueINTEL *>( this );
  38561. }
  38562. operator VkPerformanceValueINTEL &() VULKAN_HPP_NOEXCEPT
  38563. {
  38564. return *reinterpret_cast<VkPerformanceValueINTEL *>( this );
  38565. }
  38566. #if defined( VULKAN_HPP_USE_REFLECT )
  38567. # if 14 <= VULKAN_HPP_CPP_VERSION
  38568. auto
  38569. # else
  38570. std::tuple<VULKAN_HPP_NAMESPACE::PerformanceValueTypeINTEL const &, VULKAN_HPP_NAMESPACE::PerformanceValueDataINTEL const &>
  38571. # endif
  38572. reflect() const VULKAN_HPP_NOEXCEPT
  38573. {
  38574. return std::tie( type, data );
  38575. }
  38576. #endif
  38577. public:
  38578. VULKAN_HPP_NAMESPACE::PerformanceValueTypeINTEL type = VULKAN_HPP_NAMESPACE::PerformanceValueTypeINTEL::eUint32;
  38579. VULKAN_HPP_NAMESPACE::PerformanceValueDataINTEL data = {};
  38580. };
  38581. struct PhysicalDevice16BitStorageFeatures
  38582. {
  38583. using NativeType = VkPhysicalDevice16BitStorageFeatures;
  38584. static const bool allowDuplicate = false;
  38585. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDevice16BitStorageFeatures;
  38586. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  38587. VULKAN_HPP_CONSTEXPR PhysicalDevice16BitStorageFeatures( VULKAN_HPP_NAMESPACE::Bool32 storageBuffer16BitAccess_ = {},
  38588. VULKAN_HPP_NAMESPACE::Bool32 uniformAndStorageBuffer16BitAccess_ = {},
  38589. VULKAN_HPP_NAMESPACE::Bool32 storagePushConstant16_ = {},
  38590. VULKAN_HPP_NAMESPACE::Bool32 storageInputOutput16_ = {},
  38591. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  38592. : pNext( pNext_ )
  38593. , storageBuffer16BitAccess( storageBuffer16BitAccess_ )
  38594. , uniformAndStorageBuffer16BitAccess( uniformAndStorageBuffer16BitAccess_ )
  38595. , storagePushConstant16( storagePushConstant16_ )
  38596. , storageInputOutput16( storageInputOutput16_ )
  38597. {
  38598. }
  38599. VULKAN_HPP_CONSTEXPR PhysicalDevice16BitStorageFeatures( PhysicalDevice16BitStorageFeatures const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  38600. PhysicalDevice16BitStorageFeatures( VkPhysicalDevice16BitStorageFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
  38601. : PhysicalDevice16BitStorageFeatures( *reinterpret_cast<PhysicalDevice16BitStorageFeatures const *>( &rhs ) )
  38602. {
  38603. }
  38604. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  38605. PhysicalDevice16BitStorageFeatures & operator=( PhysicalDevice16BitStorageFeatures const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  38606. PhysicalDevice16BitStorageFeatures & operator=( VkPhysicalDevice16BitStorageFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
  38607. {
  38608. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDevice16BitStorageFeatures const *>( &rhs );
  38609. return *this;
  38610. }
  38611. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  38612. VULKAN_HPP_CONSTEXPR_14 PhysicalDevice16BitStorageFeatures & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
  38613. {
  38614. pNext = pNext_;
  38615. return *this;
  38616. }
  38617. VULKAN_HPP_CONSTEXPR_14 PhysicalDevice16BitStorageFeatures &
  38618. setStorageBuffer16BitAccess( VULKAN_HPP_NAMESPACE::Bool32 storageBuffer16BitAccess_ ) VULKAN_HPP_NOEXCEPT
  38619. {
  38620. storageBuffer16BitAccess = storageBuffer16BitAccess_;
  38621. return *this;
  38622. }
  38623. VULKAN_HPP_CONSTEXPR_14 PhysicalDevice16BitStorageFeatures &
  38624. setUniformAndStorageBuffer16BitAccess( VULKAN_HPP_NAMESPACE::Bool32 uniformAndStorageBuffer16BitAccess_ ) VULKAN_HPP_NOEXCEPT
  38625. {
  38626. uniformAndStorageBuffer16BitAccess = uniformAndStorageBuffer16BitAccess_;
  38627. return *this;
  38628. }
  38629. VULKAN_HPP_CONSTEXPR_14 PhysicalDevice16BitStorageFeatures &
  38630. setStoragePushConstant16( VULKAN_HPP_NAMESPACE::Bool32 storagePushConstant16_ ) VULKAN_HPP_NOEXCEPT
  38631. {
  38632. storagePushConstant16 = storagePushConstant16_;
  38633. return *this;
  38634. }
  38635. VULKAN_HPP_CONSTEXPR_14 PhysicalDevice16BitStorageFeatures &
  38636. setStorageInputOutput16( VULKAN_HPP_NAMESPACE::Bool32 storageInputOutput16_ ) VULKAN_HPP_NOEXCEPT
  38637. {
  38638. storageInputOutput16 = storageInputOutput16_;
  38639. return *this;
  38640. }
  38641. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  38642. operator VkPhysicalDevice16BitStorageFeatures const &() const VULKAN_HPP_NOEXCEPT
  38643. {
  38644. return *reinterpret_cast<const VkPhysicalDevice16BitStorageFeatures *>( this );
  38645. }
  38646. operator VkPhysicalDevice16BitStorageFeatures &() VULKAN_HPP_NOEXCEPT
  38647. {
  38648. return *reinterpret_cast<VkPhysicalDevice16BitStorageFeatures *>( this );
  38649. }
  38650. #if defined( VULKAN_HPP_USE_REFLECT )
  38651. # if 14 <= VULKAN_HPP_CPP_VERSION
  38652. auto
  38653. # else
  38654. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  38655. void * const &,
  38656. VULKAN_HPP_NAMESPACE::Bool32 const &,
  38657. VULKAN_HPP_NAMESPACE::Bool32 const &,
  38658. VULKAN_HPP_NAMESPACE::Bool32 const &,
  38659. VULKAN_HPP_NAMESPACE::Bool32 const &>
  38660. # endif
  38661. reflect() const VULKAN_HPP_NOEXCEPT
  38662. {
  38663. return std::tie( sType, pNext, storageBuffer16BitAccess, uniformAndStorageBuffer16BitAccess, storagePushConstant16, storageInputOutput16 );
  38664. }
  38665. #endif
  38666. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  38667. auto operator<=>( PhysicalDevice16BitStorageFeatures const & ) const = default;
  38668. #else
  38669. bool operator==( PhysicalDevice16BitStorageFeatures const & rhs ) const VULKAN_HPP_NOEXCEPT
  38670. {
  38671. # if defined( VULKAN_HPP_USE_REFLECT )
  38672. return this->reflect() == rhs.reflect();
  38673. # else
  38674. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( storageBuffer16BitAccess == rhs.storageBuffer16BitAccess ) &&
  38675. ( uniformAndStorageBuffer16BitAccess == rhs.uniformAndStorageBuffer16BitAccess ) && ( storagePushConstant16 == rhs.storagePushConstant16 ) &&
  38676. ( storageInputOutput16 == rhs.storageInputOutput16 );
  38677. # endif
  38678. }
  38679. bool operator!=( PhysicalDevice16BitStorageFeatures const & rhs ) const VULKAN_HPP_NOEXCEPT
  38680. {
  38681. return !operator==( rhs );
  38682. }
  38683. #endif
  38684. public:
  38685. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDevice16BitStorageFeatures;
  38686. void * pNext = {};
  38687. VULKAN_HPP_NAMESPACE::Bool32 storageBuffer16BitAccess = {};
  38688. VULKAN_HPP_NAMESPACE::Bool32 uniformAndStorageBuffer16BitAccess = {};
  38689. VULKAN_HPP_NAMESPACE::Bool32 storagePushConstant16 = {};
  38690. VULKAN_HPP_NAMESPACE::Bool32 storageInputOutput16 = {};
  38691. };
  38692. template <>
  38693. struct CppType<StructureType, StructureType::ePhysicalDevice16BitStorageFeatures>
  38694. {
  38695. using Type = PhysicalDevice16BitStorageFeatures;
  38696. };
  38697. using PhysicalDevice16BitStorageFeaturesKHR = PhysicalDevice16BitStorageFeatures;
  38698. struct PhysicalDevice4444FormatsFeaturesEXT
  38699. {
  38700. using NativeType = VkPhysicalDevice4444FormatsFeaturesEXT;
  38701. static const bool allowDuplicate = false;
  38702. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDevice4444FormatsFeaturesEXT;
  38703. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  38704. VULKAN_HPP_CONSTEXPR PhysicalDevice4444FormatsFeaturesEXT( VULKAN_HPP_NAMESPACE::Bool32 formatA4R4G4B4_ = {},
  38705. VULKAN_HPP_NAMESPACE::Bool32 formatA4B4G4R4_ = {},
  38706. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  38707. : pNext( pNext_ )
  38708. , formatA4R4G4B4( formatA4R4G4B4_ )
  38709. , formatA4B4G4R4( formatA4B4G4R4_ )
  38710. {
  38711. }
  38712. VULKAN_HPP_CONSTEXPR PhysicalDevice4444FormatsFeaturesEXT( PhysicalDevice4444FormatsFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  38713. PhysicalDevice4444FormatsFeaturesEXT( VkPhysicalDevice4444FormatsFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  38714. : PhysicalDevice4444FormatsFeaturesEXT( *reinterpret_cast<PhysicalDevice4444FormatsFeaturesEXT const *>( &rhs ) )
  38715. {
  38716. }
  38717. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  38718. PhysicalDevice4444FormatsFeaturesEXT & operator=( PhysicalDevice4444FormatsFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  38719. PhysicalDevice4444FormatsFeaturesEXT & operator=( VkPhysicalDevice4444FormatsFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  38720. {
  38721. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDevice4444FormatsFeaturesEXT const *>( &rhs );
  38722. return *this;
  38723. }
  38724. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  38725. VULKAN_HPP_CONSTEXPR_14 PhysicalDevice4444FormatsFeaturesEXT & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
  38726. {
  38727. pNext = pNext_;
  38728. return *this;
  38729. }
  38730. VULKAN_HPP_CONSTEXPR_14 PhysicalDevice4444FormatsFeaturesEXT & setFormatA4R4G4B4( VULKAN_HPP_NAMESPACE::Bool32 formatA4R4G4B4_ ) VULKAN_HPP_NOEXCEPT
  38731. {
  38732. formatA4R4G4B4 = formatA4R4G4B4_;
  38733. return *this;
  38734. }
  38735. VULKAN_HPP_CONSTEXPR_14 PhysicalDevice4444FormatsFeaturesEXT & setFormatA4B4G4R4( VULKAN_HPP_NAMESPACE::Bool32 formatA4B4G4R4_ ) VULKAN_HPP_NOEXCEPT
  38736. {
  38737. formatA4B4G4R4 = formatA4B4G4R4_;
  38738. return *this;
  38739. }
  38740. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  38741. operator VkPhysicalDevice4444FormatsFeaturesEXT const &() const VULKAN_HPP_NOEXCEPT
  38742. {
  38743. return *reinterpret_cast<const VkPhysicalDevice4444FormatsFeaturesEXT *>( this );
  38744. }
  38745. operator VkPhysicalDevice4444FormatsFeaturesEXT &() VULKAN_HPP_NOEXCEPT
  38746. {
  38747. return *reinterpret_cast<VkPhysicalDevice4444FormatsFeaturesEXT *>( this );
  38748. }
  38749. #if defined( VULKAN_HPP_USE_REFLECT )
  38750. # if 14 <= VULKAN_HPP_CPP_VERSION
  38751. auto
  38752. # else
  38753. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
  38754. # endif
  38755. reflect() const VULKAN_HPP_NOEXCEPT
  38756. {
  38757. return std::tie( sType, pNext, formatA4R4G4B4, formatA4B4G4R4 );
  38758. }
  38759. #endif
  38760. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  38761. auto operator<=>( PhysicalDevice4444FormatsFeaturesEXT const & ) const = default;
  38762. #else
  38763. bool operator==( PhysicalDevice4444FormatsFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  38764. {
  38765. # if defined( VULKAN_HPP_USE_REFLECT )
  38766. return this->reflect() == rhs.reflect();
  38767. # else
  38768. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( formatA4R4G4B4 == rhs.formatA4R4G4B4 ) && ( formatA4B4G4R4 == rhs.formatA4B4G4R4 );
  38769. # endif
  38770. }
  38771. bool operator!=( PhysicalDevice4444FormatsFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  38772. {
  38773. return !operator==( rhs );
  38774. }
  38775. #endif
  38776. public:
  38777. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDevice4444FormatsFeaturesEXT;
  38778. void * pNext = {};
  38779. VULKAN_HPP_NAMESPACE::Bool32 formatA4R4G4B4 = {};
  38780. VULKAN_HPP_NAMESPACE::Bool32 formatA4B4G4R4 = {};
  38781. };
  38782. template <>
  38783. struct CppType<StructureType, StructureType::ePhysicalDevice4444FormatsFeaturesEXT>
  38784. {
  38785. using Type = PhysicalDevice4444FormatsFeaturesEXT;
  38786. };
  38787. struct PhysicalDevice8BitStorageFeatures
  38788. {
  38789. using NativeType = VkPhysicalDevice8BitStorageFeatures;
  38790. static const bool allowDuplicate = false;
  38791. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDevice8BitStorageFeatures;
  38792. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  38793. VULKAN_HPP_CONSTEXPR PhysicalDevice8BitStorageFeatures( VULKAN_HPP_NAMESPACE::Bool32 storageBuffer8BitAccess_ = {},
  38794. VULKAN_HPP_NAMESPACE::Bool32 uniformAndStorageBuffer8BitAccess_ = {},
  38795. VULKAN_HPP_NAMESPACE::Bool32 storagePushConstant8_ = {},
  38796. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  38797. : pNext( pNext_ )
  38798. , storageBuffer8BitAccess( storageBuffer8BitAccess_ )
  38799. , uniformAndStorageBuffer8BitAccess( uniformAndStorageBuffer8BitAccess_ )
  38800. , storagePushConstant8( storagePushConstant8_ )
  38801. {
  38802. }
  38803. VULKAN_HPP_CONSTEXPR PhysicalDevice8BitStorageFeatures( PhysicalDevice8BitStorageFeatures const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  38804. PhysicalDevice8BitStorageFeatures( VkPhysicalDevice8BitStorageFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
  38805. : PhysicalDevice8BitStorageFeatures( *reinterpret_cast<PhysicalDevice8BitStorageFeatures const *>( &rhs ) )
  38806. {
  38807. }
  38808. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  38809. PhysicalDevice8BitStorageFeatures & operator=( PhysicalDevice8BitStorageFeatures const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  38810. PhysicalDevice8BitStorageFeatures & operator=( VkPhysicalDevice8BitStorageFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
  38811. {
  38812. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDevice8BitStorageFeatures const *>( &rhs );
  38813. return *this;
  38814. }
  38815. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  38816. VULKAN_HPP_CONSTEXPR_14 PhysicalDevice8BitStorageFeatures & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
  38817. {
  38818. pNext = pNext_;
  38819. return *this;
  38820. }
  38821. VULKAN_HPP_CONSTEXPR_14 PhysicalDevice8BitStorageFeatures &
  38822. setStorageBuffer8BitAccess( VULKAN_HPP_NAMESPACE::Bool32 storageBuffer8BitAccess_ ) VULKAN_HPP_NOEXCEPT
  38823. {
  38824. storageBuffer8BitAccess = storageBuffer8BitAccess_;
  38825. return *this;
  38826. }
  38827. VULKAN_HPP_CONSTEXPR_14 PhysicalDevice8BitStorageFeatures &
  38828. setUniformAndStorageBuffer8BitAccess( VULKAN_HPP_NAMESPACE::Bool32 uniformAndStorageBuffer8BitAccess_ ) VULKAN_HPP_NOEXCEPT
  38829. {
  38830. uniformAndStorageBuffer8BitAccess = uniformAndStorageBuffer8BitAccess_;
  38831. return *this;
  38832. }
  38833. VULKAN_HPP_CONSTEXPR_14 PhysicalDevice8BitStorageFeatures &
  38834. setStoragePushConstant8( VULKAN_HPP_NAMESPACE::Bool32 storagePushConstant8_ ) VULKAN_HPP_NOEXCEPT
  38835. {
  38836. storagePushConstant8 = storagePushConstant8_;
  38837. return *this;
  38838. }
  38839. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  38840. operator VkPhysicalDevice8BitStorageFeatures const &() const VULKAN_HPP_NOEXCEPT
  38841. {
  38842. return *reinterpret_cast<const VkPhysicalDevice8BitStorageFeatures *>( this );
  38843. }
  38844. operator VkPhysicalDevice8BitStorageFeatures &() VULKAN_HPP_NOEXCEPT
  38845. {
  38846. return *reinterpret_cast<VkPhysicalDevice8BitStorageFeatures *>( this );
  38847. }
  38848. #if defined( VULKAN_HPP_USE_REFLECT )
  38849. # if 14 <= VULKAN_HPP_CPP_VERSION
  38850. auto
  38851. # else
  38852. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  38853. void * const &,
  38854. VULKAN_HPP_NAMESPACE::Bool32 const &,
  38855. VULKAN_HPP_NAMESPACE::Bool32 const &,
  38856. VULKAN_HPP_NAMESPACE::Bool32 const &>
  38857. # endif
  38858. reflect() const VULKAN_HPP_NOEXCEPT
  38859. {
  38860. return std::tie( sType, pNext, storageBuffer8BitAccess, uniformAndStorageBuffer8BitAccess, storagePushConstant8 );
  38861. }
  38862. #endif
  38863. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  38864. auto operator<=>( PhysicalDevice8BitStorageFeatures const & ) const = default;
  38865. #else
  38866. bool operator==( PhysicalDevice8BitStorageFeatures const & rhs ) const VULKAN_HPP_NOEXCEPT
  38867. {
  38868. # if defined( VULKAN_HPP_USE_REFLECT )
  38869. return this->reflect() == rhs.reflect();
  38870. # else
  38871. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( storageBuffer8BitAccess == rhs.storageBuffer8BitAccess ) &&
  38872. ( uniformAndStorageBuffer8BitAccess == rhs.uniformAndStorageBuffer8BitAccess ) && ( storagePushConstant8 == rhs.storagePushConstant8 );
  38873. # endif
  38874. }
  38875. bool operator!=( PhysicalDevice8BitStorageFeatures const & rhs ) const VULKAN_HPP_NOEXCEPT
  38876. {
  38877. return !operator==( rhs );
  38878. }
  38879. #endif
  38880. public:
  38881. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDevice8BitStorageFeatures;
  38882. void * pNext = {};
  38883. VULKAN_HPP_NAMESPACE::Bool32 storageBuffer8BitAccess = {};
  38884. VULKAN_HPP_NAMESPACE::Bool32 uniformAndStorageBuffer8BitAccess = {};
  38885. VULKAN_HPP_NAMESPACE::Bool32 storagePushConstant8 = {};
  38886. };
  38887. template <>
  38888. struct CppType<StructureType, StructureType::ePhysicalDevice8BitStorageFeatures>
  38889. {
  38890. using Type = PhysicalDevice8BitStorageFeatures;
  38891. };
  38892. using PhysicalDevice8BitStorageFeaturesKHR = PhysicalDevice8BitStorageFeatures;
  38893. struct PhysicalDeviceASTCDecodeFeaturesEXT
  38894. {
  38895. using NativeType = VkPhysicalDeviceASTCDecodeFeaturesEXT;
  38896. static const bool allowDuplicate = false;
  38897. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceAstcDecodeFeaturesEXT;
  38898. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  38899. VULKAN_HPP_CONSTEXPR PhysicalDeviceASTCDecodeFeaturesEXT( VULKAN_HPP_NAMESPACE::Bool32 decodeModeSharedExponent_ = {},
  38900. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  38901. : pNext( pNext_ )
  38902. , decodeModeSharedExponent( decodeModeSharedExponent_ )
  38903. {
  38904. }
  38905. VULKAN_HPP_CONSTEXPR PhysicalDeviceASTCDecodeFeaturesEXT( PhysicalDeviceASTCDecodeFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  38906. PhysicalDeviceASTCDecodeFeaturesEXT( VkPhysicalDeviceASTCDecodeFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  38907. : PhysicalDeviceASTCDecodeFeaturesEXT( *reinterpret_cast<PhysicalDeviceASTCDecodeFeaturesEXT const *>( &rhs ) )
  38908. {
  38909. }
  38910. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  38911. PhysicalDeviceASTCDecodeFeaturesEXT & operator=( PhysicalDeviceASTCDecodeFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  38912. PhysicalDeviceASTCDecodeFeaturesEXT & operator=( VkPhysicalDeviceASTCDecodeFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  38913. {
  38914. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceASTCDecodeFeaturesEXT const *>( &rhs );
  38915. return *this;
  38916. }
  38917. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  38918. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceASTCDecodeFeaturesEXT & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
  38919. {
  38920. pNext = pNext_;
  38921. return *this;
  38922. }
  38923. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceASTCDecodeFeaturesEXT &
  38924. setDecodeModeSharedExponent( VULKAN_HPP_NAMESPACE::Bool32 decodeModeSharedExponent_ ) VULKAN_HPP_NOEXCEPT
  38925. {
  38926. decodeModeSharedExponent = decodeModeSharedExponent_;
  38927. return *this;
  38928. }
  38929. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  38930. operator VkPhysicalDeviceASTCDecodeFeaturesEXT const &() const VULKAN_HPP_NOEXCEPT
  38931. {
  38932. return *reinterpret_cast<const VkPhysicalDeviceASTCDecodeFeaturesEXT *>( this );
  38933. }
  38934. operator VkPhysicalDeviceASTCDecodeFeaturesEXT &() VULKAN_HPP_NOEXCEPT
  38935. {
  38936. return *reinterpret_cast<VkPhysicalDeviceASTCDecodeFeaturesEXT *>( this );
  38937. }
  38938. #if defined( VULKAN_HPP_USE_REFLECT )
  38939. # if 14 <= VULKAN_HPP_CPP_VERSION
  38940. auto
  38941. # else
  38942. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
  38943. # endif
  38944. reflect() const VULKAN_HPP_NOEXCEPT
  38945. {
  38946. return std::tie( sType, pNext, decodeModeSharedExponent );
  38947. }
  38948. #endif
  38949. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  38950. auto operator<=>( PhysicalDeviceASTCDecodeFeaturesEXT const & ) const = default;
  38951. #else
  38952. bool operator==( PhysicalDeviceASTCDecodeFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  38953. {
  38954. # if defined( VULKAN_HPP_USE_REFLECT )
  38955. return this->reflect() == rhs.reflect();
  38956. # else
  38957. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( decodeModeSharedExponent == rhs.decodeModeSharedExponent );
  38958. # endif
  38959. }
  38960. bool operator!=( PhysicalDeviceASTCDecodeFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  38961. {
  38962. return !operator==( rhs );
  38963. }
  38964. #endif
  38965. public:
  38966. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceAstcDecodeFeaturesEXT;
  38967. void * pNext = {};
  38968. VULKAN_HPP_NAMESPACE::Bool32 decodeModeSharedExponent = {};
  38969. };
  38970. template <>
  38971. struct CppType<StructureType, StructureType::ePhysicalDeviceAstcDecodeFeaturesEXT>
  38972. {
  38973. using Type = PhysicalDeviceASTCDecodeFeaturesEXT;
  38974. };
  38975. struct PhysicalDeviceAccelerationStructureFeaturesKHR
  38976. {
  38977. using NativeType = VkPhysicalDeviceAccelerationStructureFeaturesKHR;
  38978. static const bool allowDuplicate = false;
  38979. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceAccelerationStructureFeaturesKHR;
  38980. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  38981. VULKAN_HPP_CONSTEXPR
  38982. PhysicalDeviceAccelerationStructureFeaturesKHR( VULKAN_HPP_NAMESPACE::Bool32 accelerationStructure_ = {},
  38983. VULKAN_HPP_NAMESPACE::Bool32 accelerationStructureCaptureReplay_ = {},
  38984. VULKAN_HPP_NAMESPACE::Bool32 accelerationStructureIndirectBuild_ = {},
  38985. VULKAN_HPP_NAMESPACE::Bool32 accelerationStructureHostCommands_ = {},
  38986. VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingAccelerationStructureUpdateAfterBind_ = {},
  38987. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  38988. : pNext( pNext_ )
  38989. , accelerationStructure( accelerationStructure_ )
  38990. , accelerationStructureCaptureReplay( accelerationStructureCaptureReplay_ )
  38991. , accelerationStructureIndirectBuild( accelerationStructureIndirectBuild_ )
  38992. , accelerationStructureHostCommands( accelerationStructureHostCommands_ )
  38993. , descriptorBindingAccelerationStructureUpdateAfterBind( descriptorBindingAccelerationStructureUpdateAfterBind_ )
  38994. {
  38995. }
  38996. VULKAN_HPP_CONSTEXPR
  38997. PhysicalDeviceAccelerationStructureFeaturesKHR( PhysicalDeviceAccelerationStructureFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  38998. PhysicalDeviceAccelerationStructureFeaturesKHR( VkPhysicalDeviceAccelerationStructureFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  38999. : PhysicalDeviceAccelerationStructureFeaturesKHR( *reinterpret_cast<PhysicalDeviceAccelerationStructureFeaturesKHR const *>( &rhs ) )
  39000. {
  39001. }
  39002. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  39003. PhysicalDeviceAccelerationStructureFeaturesKHR & operator=( PhysicalDeviceAccelerationStructureFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  39004. PhysicalDeviceAccelerationStructureFeaturesKHR & operator=( VkPhysicalDeviceAccelerationStructureFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  39005. {
  39006. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceAccelerationStructureFeaturesKHR const *>( &rhs );
  39007. return *this;
  39008. }
  39009. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  39010. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceAccelerationStructureFeaturesKHR & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
  39011. {
  39012. pNext = pNext_;
  39013. return *this;
  39014. }
  39015. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceAccelerationStructureFeaturesKHR &
  39016. setAccelerationStructure( VULKAN_HPP_NAMESPACE::Bool32 accelerationStructure_ ) VULKAN_HPP_NOEXCEPT
  39017. {
  39018. accelerationStructure = accelerationStructure_;
  39019. return *this;
  39020. }
  39021. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceAccelerationStructureFeaturesKHR &
  39022. setAccelerationStructureCaptureReplay( VULKAN_HPP_NAMESPACE::Bool32 accelerationStructureCaptureReplay_ ) VULKAN_HPP_NOEXCEPT
  39023. {
  39024. accelerationStructureCaptureReplay = accelerationStructureCaptureReplay_;
  39025. return *this;
  39026. }
  39027. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceAccelerationStructureFeaturesKHR &
  39028. setAccelerationStructureIndirectBuild( VULKAN_HPP_NAMESPACE::Bool32 accelerationStructureIndirectBuild_ ) VULKAN_HPP_NOEXCEPT
  39029. {
  39030. accelerationStructureIndirectBuild = accelerationStructureIndirectBuild_;
  39031. return *this;
  39032. }
  39033. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceAccelerationStructureFeaturesKHR &
  39034. setAccelerationStructureHostCommands( VULKAN_HPP_NAMESPACE::Bool32 accelerationStructureHostCommands_ ) VULKAN_HPP_NOEXCEPT
  39035. {
  39036. accelerationStructureHostCommands = accelerationStructureHostCommands_;
  39037. return *this;
  39038. }
  39039. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceAccelerationStructureFeaturesKHR & setDescriptorBindingAccelerationStructureUpdateAfterBind(
  39040. VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingAccelerationStructureUpdateAfterBind_ ) VULKAN_HPP_NOEXCEPT
  39041. {
  39042. descriptorBindingAccelerationStructureUpdateAfterBind = descriptorBindingAccelerationStructureUpdateAfterBind_;
  39043. return *this;
  39044. }
  39045. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  39046. operator VkPhysicalDeviceAccelerationStructureFeaturesKHR const &() const VULKAN_HPP_NOEXCEPT
  39047. {
  39048. return *reinterpret_cast<const VkPhysicalDeviceAccelerationStructureFeaturesKHR *>( this );
  39049. }
  39050. operator VkPhysicalDeviceAccelerationStructureFeaturesKHR &() VULKAN_HPP_NOEXCEPT
  39051. {
  39052. return *reinterpret_cast<VkPhysicalDeviceAccelerationStructureFeaturesKHR *>( this );
  39053. }
  39054. #if defined( VULKAN_HPP_USE_REFLECT )
  39055. # if 14 <= VULKAN_HPP_CPP_VERSION
  39056. auto
  39057. # else
  39058. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  39059. void * const &,
  39060. VULKAN_HPP_NAMESPACE::Bool32 const &,
  39061. VULKAN_HPP_NAMESPACE::Bool32 const &,
  39062. VULKAN_HPP_NAMESPACE::Bool32 const &,
  39063. VULKAN_HPP_NAMESPACE::Bool32 const &,
  39064. VULKAN_HPP_NAMESPACE::Bool32 const &>
  39065. # endif
  39066. reflect() const VULKAN_HPP_NOEXCEPT
  39067. {
  39068. return std::tie( sType,
  39069. pNext,
  39070. accelerationStructure,
  39071. accelerationStructureCaptureReplay,
  39072. accelerationStructureIndirectBuild,
  39073. accelerationStructureHostCommands,
  39074. descriptorBindingAccelerationStructureUpdateAfterBind );
  39075. }
  39076. #endif
  39077. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  39078. auto operator<=>( PhysicalDeviceAccelerationStructureFeaturesKHR const & ) const = default;
  39079. #else
  39080. bool operator==( PhysicalDeviceAccelerationStructureFeaturesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  39081. {
  39082. # if defined( VULKAN_HPP_USE_REFLECT )
  39083. return this->reflect() == rhs.reflect();
  39084. # else
  39085. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( accelerationStructure == rhs.accelerationStructure ) &&
  39086. ( accelerationStructureCaptureReplay == rhs.accelerationStructureCaptureReplay ) &&
  39087. ( accelerationStructureIndirectBuild == rhs.accelerationStructureIndirectBuild ) &&
  39088. ( accelerationStructureHostCommands == rhs.accelerationStructureHostCommands ) &&
  39089. ( descriptorBindingAccelerationStructureUpdateAfterBind == rhs.descriptorBindingAccelerationStructureUpdateAfterBind );
  39090. # endif
  39091. }
  39092. bool operator!=( PhysicalDeviceAccelerationStructureFeaturesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  39093. {
  39094. return !operator==( rhs );
  39095. }
  39096. #endif
  39097. public:
  39098. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceAccelerationStructureFeaturesKHR;
  39099. void * pNext = {};
  39100. VULKAN_HPP_NAMESPACE::Bool32 accelerationStructure = {};
  39101. VULKAN_HPP_NAMESPACE::Bool32 accelerationStructureCaptureReplay = {};
  39102. VULKAN_HPP_NAMESPACE::Bool32 accelerationStructureIndirectBuild = {};
  39103. VULKAN_HPP_NAMESPACE::Bool32 accelerationStructureHostCommands = {};
  39104. VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingAccelerationStructureUpdateAfterBind = {};
  39105. };
  39106. template <>
  39107. struct CppType<StructureType, StructureType::ePhysicalDeviceAccelerationStructureFeaturesKHR>
  39108. {
  39109. using Type = PhysicalDeviceAccelerationStructureFeaturesKHR;
  39110. };
  39111. struct PhysicalDeviceAccelerationStructurePropertiesKHR
  39112. {
  39113. using NativeType = VkPhysicalDeviceAccelerationStructurePropertiesKHR;
  39114. static const bool allowDuplicate = false;
  39115. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceAccelerationStructurePropertiesKHR;
  39116. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  39117. VULKAN_HPP_CONSTEXPR PhysicalDeviceAccelerationStructurePropertiesKHR( uint64_t maxGeometryCount_ = {},
  39118. uint64_t maxInstanceCount_ = {},
  39119. uint64_t maxPrimitiveCount_ = {},
  39120. uint32_t maxPerStageDescriptorAccelerationStructures_ = {},
  39121. uint32_t maxPerStageDescriptorUpdateAfterBindAccelerationStructures_ = {},
  39122. uint32_t maxDescriptorSetAccelerationStructures_ = {},
  39123. uint32_t maxDescriptorSetUpdateAfterBindAccelerationStructures_ = {},
  39124. uint32_t minAccelerationStructureScratchOffsetAlignment_ = {},
  39125. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  39126. : pNext( pNext_ )
  39127. , maxGeometryCount( maxGeometryCount_ )
  39128. , maxInstanceCount( maxInstanceCount_ )
  39129. , maxPrimitiveCount( maxPrimitiveCount_ )
  39130. , maxPerStageDescriptorAccelerationStructures( maxPerStageDescriptorAccelerationStructures_ )
  39131. , maxPerStageDescriptorUpdateAfterBindAccelerationStructures( maxPerStageDescriptorUpdateAfterBindAccelerationStructures_ )
  39132. , maxDescriptorSetAccelerationStructures( maxDescriptorSetAccelerationStructures_ )
  39133. , maxDescriptorSetUpdateAfterBindAccelerationStructures( maxDescriptorSetUpdateAfterBindAccelerationStructures_ )
  39134. , minAccelerationStructureScratchOffsetAlignment( minAccelerationStructureScratchOffsetAlignment_ )
  39135. {
  39136. }
  39137. VULKAN_HPP_CONSTEXPR
  39138. PhysicalDeviceAccelerationStructurePropertiesKHR( PhysicalDeviceAccelerationStructurePropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  39139. PhysicalDeviceAccelerationStructurePropertiesKHR( VkPhysicalDeviceAccelerationStructurePropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  39140. : PhysicalDeviceAccelerationStructurePropertiesKHR( *reinterpret_cast<PhysicalDeviceAccelerationStructurePropertiesKHR const *>( &rhs ) )
  39141. {
  39142. }
  39143. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  39144. PhysicalDeviceAccelerationStructurePropertiesKHR & operator=( PhysicalDeviceAccelerationStructurePropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  39145. PhysicalDeviceAccelerationStructurePropertiesKHR & operator=( VkPhysicalDeviceAccelerationStructurePropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  39146. {
  39147. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceAccelerationStructurePropertiesKHR const *>( &rhs );
  39148. return *this;
  39149. }
  39150. operator VkPhysicalDeviceAccelerationStructurePropertiesKHR const &() const VULKAN_HPP_NOEXCEPT
  39151. {
  39152. return *reinterpret_cast<const VkPhysicalDeviceAccelerationStructurePropertiesKHR *>( this );
  39153. }
  39154. operator VkPhysicalDeviceAccelerationStructurePropertiesKHR &() VULKAN_HPP_NOEXCEPT
  39155. {
  39156. return *reinterpret_cast<VkPhysicalDeviceAccelerationStructurePropertiesKHR *>( this );
  39157. }
  39158. #if defined( VULKAN_HPP_USE_REFLECT )
  39159. # if 14 <= VULKAN_HPP_CPP_VERSION
  39160. auto
  39161. # else
  39162. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  39163. void * const &,
  39164. uint64_t const &,
  39165. uint64_t const &,
  39166. uint64_t const &,
  39167. uint32_t const &,
  39168. uint32_t const &,
  39169. uint32_t const &,
  39170. uint32_t const &,
  39171. uint32_t const &>
  39172. # endif
  39173. reflect() const VULKAN_HPP_NOEXCEPT
  39174. {
  39175. return std::tie( sType,
  39176. pNext,
  39177. maxGeometryCount,
  39178. maxInstanceCount,
  39179. maxPrimitiveCount,
  39180. maxPerStageDescriptorAccelerationStructures,
  39181. maxPerStageDescriptorUpdateAfterBindAccelerationStructures,
  39182. maxDescriptorSetAccelerationStructures,
  39183. maxDescriptorSetUpdateAfterBindAccelerationStructures,
  39184. minAccelerationStructureScratchOffsetAlignment );
  39185. }
  39186. #endif
  39187. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  39188. auto operator<=>( PhysicalDeviceAccelerationStructurePropertiesKHR const & ) const = default;
  39189. #else
  39190. bool operator==( PhysicalDeviceAccelerationStructurePropertiesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  39191. {
  39192. # if defined( VULKAN_HPP_USE_REFLECT )
  39193. return this->reflect() == rhs.reflect();
  39194. # else
  39195. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( maxGeometryCount == rhs.maxGeometryCount ) && ( maxInstanceCount == rhs.maxInstanceCount ) &&
  39196. ( maxPrimitiveCount == rhs.maxPrimitiveCount ) &&
  39197. ( maxPerStageDescriptorAccelerationStructures == rhs.maxPerStageDescriptorAccelerationStructures ) &&
  39198. ( maxPerStageDescriptorUpdateAfterBindAccelerationStructures == rhs.maxPerStageDescriptorUpdateAfterBindAccelerationStructures ) &&
  39199. ( maxDescriptorSetAccelerationStructures == rhs.maxDescriptorSetAccelerationStructures ) &&
  39200. ( maxDescriptorSetUpdateAfterBindAccelerationStructures == rhs.maxDescriptorSetUpdateAfterBindAccelerationStructures ) &&
  39201. ( minAccelerationStructureScratchOffsetAlignment == rhs.minAccelerationStructureScratchOffsetAlignment );
  39202. # endif
  39203. }
  39204. bool operator!=( PhysicalDeviceAccelerationStructurePropertiesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  39205. {
  39206. return !operator==( rhs );
  39207. }
  39208. #endif
  39209. public:
  39210. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceAccelerationStructurePropertiesKHR;
  39211. void * pNext = {};
  39212. uint64_t maxGeometryCount = {};
  39213. uint64_t maxInstanceCount = {};
  39214. uint64_t maxPrimitiveCount = {};
  39215. uint32_t maxPerStageDescriptorAccelerationStructures = {};
  39216. uint32_t maxPerStageDescriptorUpdateAfterBindAccelerationStructures = {};
  39217. uint32_t maxDescriptorSetAccelerationStructures = {};
  39218. uint32_t maxDescriptorSetUpdateAfterBindAccelerationStructures = {};
  39219. uint32_t minAccelerationStructureScratchOffsetAlignment = {};
  39220. };
  39221. template <>
  39222. struct CppType<StructureType, StructureType::ePhysicalDeviceAccelerationStructurePropertiesKHR>
  39223. {
  39224. using Type = PhysicalDeviceAccelerationStructurePropertiesKHR;
  39225. };
  39226. struct PhysicalDeviceAmigoProfilingFeaturesSEC
  39227. {
  39228. using NativeType = VkPhysicalDeviceAmigoProfilingFeaturesSEC;
  39229. static const bool allowDuplicate = false;
  39230. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceAmigoProfilingFeaturesSEC;
  39231. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  39232. VULKAN_HPP_CONSTEXPR PhysicalDeviceAmigoProfilingFeaturesSEC( VULKAN_HPP_NAMESPACE::Bool32 amigoProfiling_ = {},
  39233. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  39234. : pNext( pNext_ )
  39235. , amigoProfiling( amigoProfiling_ )
  39236. {
  39237. }
  39238. VULKAN_HPP_CONSTEXPR PhysicalDeviceAmigoProfilingFeaturesSEC( PhysicalDeviceAmigoProfilingFeaturesSEC const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  39239. PhysicalDeviceAmigoProfilingFeaturesSEC( VkPhysicalDeviceAmigoProfilingFeaturesSEC const & rhs ) VULKAN_HPP_NOEXCEPT
  39240. : PhysicalDeviceAmigoProfilingFeaturesSEC( *reinterpret_cast<PhysicalDeviceAmigoProfilingFeaturesSEC const *>( &rhs ) )
  39241. {
  39242. }
  39243. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  39244. PhysicalDeviceAmigoProfilingFeaturesSEC & operator=( PhysicalDeviceAmigoProfilingFeaturesSEC const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  39245. PhysicalDeviceAmigoProfilingFeaturesSEC & operator=( VkPhysicalDeviceAmigoProfilingFeaturesSEC const & rhs ) VULKAN_HPP_NOEXCEPT
  39246. {
  39247. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceAmigoProfilingFeaturesSEC const *>( &rhs );
  39248. return *this;
  39249. }
  39250. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  39251. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceAmigoProfilingFeaturesSEC & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
  39252. {
  39253. pNext = pNext_;
  39254. return *this;
  39255. }
  39256. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceAmigoProfilingFeaturesSEC & setAmigoProfiling( VULKAN_HPP_NAMESPACE::Bool32 amigoProfiling_ ) VULKAN_HPP_NOEXCEPT
  39257. {
  39258. amigoProfiling = amigoProfiling_;
  39259. return *this;
  39260. }
  39261. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  39262. operator VkPhysicalDeviceAmigoProfilingFeaturesSEC const &() const VULKAN_HPP_NOEXCEPT
  39263. {
  39264. return *reinterpret_cast<const VkPhysicalDeviceAmigoProfilingFeaturesSEC *>( this );
  39265. }
  39266. operator VkPhysicalDeviceAmigoProfilingFeaturesSEC &() VULKAN_HPP_NOEXCEPT
  39267. {
  39268. return *reinterpret_cast<VkPhysicalDeviceAmigoProfilingFeaturesSEC *>( this );
  39269. }
  39270. #if defined( VULKAN_HPP_USE_REFLECT )
  39271. # if 14 <= VULKAN_HPP_CPP_VERSION
  39272. auto
  39273. # else
  39274. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
  39275. # endif
  39276. reflect() const VULKAN_HPP_NOEXCEPT
  39277. {
  39278. return std::tie( sType, pNext, amigoProfiling );
  39279. }
  39280. #endif
  39281. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  39282. auto operator<=>( PhysicalDeviceAmigoProfilingFeaturesSEC const & ) const = default;
  39283. #else
  39284. bool operator==( PhysicalDeviceAmigoProfilingFeaturesSEC const & rhs ) const VULKAN_HPP_NOEXCEPT
  39285. {
  39286. # if defined( VULKAN_HPP_USE_REFLECT )
  39287. return this->reflect() == rhs.reflect();
  39288. # else
  39289. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( amigoProfiling == rhs.amigoProfiling );
  39290. # endif
  39291. }
  39292. bool operator!=( PhysicalDeviceAmigoProfilingFeaturesSEC const & rhs ) const VULKAN_HPP_NOEXCEPT
  39293. {
  39294. return !operator==( rhs );
  39295. }
  39296. #endif
  39297. public:
  39298. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceAmigoProfilingFeaturesSEC;
  39299. void * pNext = {};
  39300. VULKAN_HPP_NAMESPACE::Bool32 amigoProfiling = {};
  39301. };
  39302. template <>
  39303. struct CppType<StructureType, StructureType::ePhysicalDeviceAmigoProfilingFeaturesSEC>
  39304. {
  39305. using Type = PhysicalDeviceAmigoProfilingFeaturesSEC;
  39306. };
  39307. struct PhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT
  39308. {
  39309. using NativeType = VkPhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT;
  39310. static const bool allowDuplicate = false;
  39311. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT;
  39312. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  39313. VULKAN_HPP_CONSTEXPR PhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT( VULKAN_HPP_NAMESPACE::Bool32 attachmentFeedbackLoopLayout_ = {},
  39314. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  39315. : pNext( pNext_ )
  39316. , attachmentFeedbackLoopLayout( attachmentFeedbackLoopLayout_ )
  39317. {
  39318. }
  39319. VULKAN_HPP_CONSTEXPR
  39320. PhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT( PhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  39321. PhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT( VkPhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  39322. : PhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT( *reinterpret_cast<PhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT const *>( &rhs ) )
  39323. {
  39324. }
  39325. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  39326. PhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT &
  39327. operator=( PhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  39328. PhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT & operator=( VkPhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  39329. {
  39330. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT const *>( &rhs );
  39331. return *this;
  39332. }
  39333. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  39334. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
  39335. {
  39336. pNext = pNext_;
  39337. return *this;
  39338. }
  39339. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT &
  39340. setAttachmentFeedbackLoopLayout( VULKAN_HPP_NAMESPACE::Bool32 attachmentFeedbackLoopLayout_ ) VULKAN_HPP_NOEXCEPT
  39341. {
  39342. attachmentFeedbackLoopLayout = attachmentFeedbackLoopLayout_;
  39343. return *this;
  39344. }
  39345. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  39346. operator VkPhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT const &() const VULKAN_HPP_NOEXCEPT
  39347. {
  39348. return *reinterpret_cast<const VkPhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT *>( this );
  39349. }
  39350. operator VkPhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT &() VULKAN_HPP_NOEXCEPT
  39351. {
  39352. return *reinterpret_cast<VkPhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT *>( this );
  39353. }
  39354. #if defined( VULKAN_HPP_USE_REFLECT )
  39355. # if 14 <= VULKAN_HPP_CPP_VERSION
  39356. auto
  39357. # else
  39358. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
  39359. # endif
  39360. reflect() const VULKAN_HPP_NOEXCEPT
  39361. {
  39362. return std::tie( sType, pNext, attachmentFeedbackLoopLayout );
  39363. }
  39364. #endif
  39365. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  39366. auto operator<=>( PhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT const & ) const = default;
  39367. #else
  39368. bool operator==( PhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  39369. {
  39370. # if defined( VULKAN_HPP_USE_REFLECT )
  39371. return this->reflect() == rhs.reflect();
  39372. # else
  39373. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( attachmentFeedbackLoopLayout == rhs.attachmentFeedbackLoopLayout );
  39374. # endif
  39375. }
  39376. bool operator!=( PhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  39377. {
  39378. return !operator==( rhs );
  39379. }
  39380. #endif
  39381. public:
  39382. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT;
  39383. void * pNext = {};
  39384. VULKAN_HPP_NAMESPACE::Bool32 attachmentFeedbackLoopLayout = {};
  39385. };
  39386. template <>
  39387. struct CppType<StructureType, StructureType::ePhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT>
  39388. {
  39389. using Type = PhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT;
  39390. };
  39391. struct PhysicalDeviceBlendOperationAdvancedFeaturesEXT
  39392. {
  39393. using NativeType = VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT;
  39394. static const bool allowDuplicate = false;
  39395. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceBlendOperationAdvancedFeaturesEXT;
  39396. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  39397. VULKAN_HPP_CONSTEXPR PhysicalDeviceBlendOperationAdvancedFeaturesEXT( VULKAN_HPP_NAMESPACE::Bool32 advancedBlendCoherentOperations_ = {},
  39398. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  39399. : pNext( pNext_ )
  39400. , advancedBlendCoherentOperations( advancedBlendCoherentOperations_ )
  39401. {
  39402. }
  39403. VULKAN_HPP_CONSTEXPR
  39404. PhysicalDeviceBlendOperationAdvancedFeaturesEXT( PhysicalDeviceBlendOperationAdvancedFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  39405. PhysicalDeviceBlendOperationAdvancedFeaturesEXT( VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  39406. : PhysicalDeviceBlendOperationAdvancedFeaturesEXT( *reinterpret_cast<PhysicalDeviceBlendOperationAdvancedFeaturesEXT const *>( &rhs ) )
  39407. {
  39408. }
  39409. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  39410. PhysicalDeviceBlendOperationAdvancedFeaturesEXT & operator=( PhysicalDeviceBlendOperationAdvancedFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  39411. PhysicalDeviceBlendOperationAdvancedFeaturesEXT & operator=( VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  39412. {
  39413. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceBlendOperationAdvancedFeaturesEXT const *>( &rhs );
  39414. return *this;
  39415. }
  39416. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  39417. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceBlendOperationAdvancedFeaturesEXT & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
  39418. {
  39419. pNext = pNext_;
  39420. return *this;
  39421. }
  39422. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceBlendOperationAdvancedFeaturesEXT &
  39423. setAdvancedBlendCoherentOperations( VULKAN_HPP_NAMESPACE::Bool32 advancedBlendCoherentOperations_ ) VULKAN_HPP_NOEXCEPT
  39424. {
  39425. advancedBlendCoherentOperations = advancedBlendCoherentOperations_;
  39426. return *this;
  39427. }
  39428. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  39429. operator VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT const &() const VULKAN_HPP_NOEXCEPT
  39430. {
  39431. return *reinterpret_cast<const VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT *>( this );
  39432. }
  39433. operator VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT &() VULKAN_HPP_NOEXCEPT
  39434. {
  39435. return *reinterpret_cast<VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT *>( this );
  39436. }
  39437. #if defined( VULKAN_HPP_USE_REFLECT )
  39438. # if 14 <= VULKAN_HPP_CPP_VERSION
  39439. auto
  39440. # else
  39441. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
  39442. # endif
  39443. reflect() const VULKAN_HPP_NOEXCEPT
  39444. {
  39445. return std::tie( sType, pNext, advancedBlendCoherentOperations );
  39446. }
  39447. #endif
  39448. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  39449. auto operator<=>( PhysicalDeviceBlendOperationAdvancedFeaturesEXT const & ) const = default;
  39450. #else
  39451. bool operator==( PhysicalDeviceBlendOperationAdvancedFeaturesEXT 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 ) && ( advancedBlendCoherentOperations == rhs.advancedBlendCoherentOperations );
  39457. # endif
  39458. }
  39459. bool operator!=( PhysicalDeviceBlendOperationAdvancedFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  39460. {
  39461. return !operator==( rhs );
  39462. }
  39463. #endif
  39464. public:
  39465. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceBlendOperationAdvancedFeaturesEXT;
  39466. void * pNext = {};
  39467. VULKAN_HPP_NAMESPACE::Bool32 advancedBlendCoherentOperations = {};
  39468. };
  39469. template <>
  39470. struct CppType<StructureType, StructureType::ePhysicalDeviceBlendOperationAdvancedFeaturesEXT>
  39471. {
  39472. using Type = PhysicalDeviceBlendOperationAdvancedFeaturesEXT;
  39473. };
  39474. struct PhysicalDeviceBlendOperationAdvancedPropertiesEXT
  39475. {
  39476. using NativeType = VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT;
  39477. static const bool allowDuplicate = false;
  39478. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceBlendOperationAdvancedPropertiesEXT;
  39479. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  39480. VULKAN_HPP_CONSTEXPR PhysicalDeviceBlendOperationAdvancedPropertiesEXT( uint32_t advancedBlendMaxColorAttachments_ = {},
  39481. VULKAN_HPP_NAMESPACE::Bool32 advancedBlendIndependentBlend_ = {},
  39482. VULKAN_HPP_NAMESPACE::Bool32 advancedBlendNonPremultipliedSrcColor_ = {},
  39483. VULKAN_HPP_NAMESPACE::Bool32 advancedBlendNonPremultipliedDstColor_ = {},
  39484. VULKAN_HPP_NAMESPACE::Bool32 advancedBlendCorrelatedOverlap_ = {},
  39485. VULKAN_HPP_NAMESPACE::Bool32 advancedBlendAllOperations_ = {},
  39486. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  39487. : pNext( pNext_ )
  39488. , advancedBlendMaxColorAttachments( advancedBlendMaxColorAttachments_ )
  39489. , advancedBlendIndependentBlend( advancedBlendIndependentBlend_ )
  39490. , advancedBlendNonPremultipliedSrcColor( advancedBlendNonPremultipliedSrcColor_ )
  39491. , advancedBlendNonPremultipliedDstColor( advancedBlendNonPremultipliedDstColor_ )
  39492. , advancedBlendCorrelatedOverlap( advancedBlendCorrelatedOverlap_ )
  39493. , advancedBlendAllOperations( advancedBlendAllOperations_ )
  39494. {
  39495. }
  39496. VULKAN_HPP_CONSTEXPR
  39497. PhysicalDeviceBlendOperationAdvancedPropertiesEXT( PhysicalDeviceBlendOperationAdvancedPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  39498. PhysicalDeviceBlendOperationAdvancedPropertiesEXT( VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  39499. : PhysicalDeviceBlendOperationAdvancedPropertiesEXT( *reinterpret_cast<PhysicalDeviceBlendOperationAdvancedPropertiesEXT const *>( &rhs ) )
  39500. {
  39501. }
  39502. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  39503. PhysicalDeviceBlendOperationAdvancedPropertiesEXT &
  39504. operator=( PhysicalDeviceBlendOperationAdvancedPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  39505. PhysicalDeviceBlendOperationAdvancedPropertiesEXT & operator=( VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  39506. {
  39507. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceBlendOperationAdvancedPropertiesEXT const *>( &rhs );
  39508. return *this;
  39509. }
  39510. operator VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT const &() const VULKAN_HPP_NOEXCEPT
  39511. {
  39512. return *reinterpret_cast<const VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT *>( this );
  39513. }
  39514. operator VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT &() VULKAN_HPP_NOEXCEPT
  39515. {
  39516. return *reinterpret_cast<VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT *>( this );
  39517. }
  39518. #if defined( VULKAN_HPP_USE_REFLECT )
  39519. # if 14 <= VULKAN_HPP_CPP_VERSION
  39520. auto
  39521. # else
  39522. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  39523. void * const &,
  39524. uint32_t const &,
  39525. VULKAN_HPP_NAMESPACE::Bool32 const &,
  39526. VULKAN_HPP_NAMESPACE::Bool32 const &,
  39527. VULKAN_HPP_NAMESPACE::Bool32 const &,
  39528. VULKAN_HPP_NAMESPACE::Bool32 const &,
  39529. VULKAN_HPP_NAMESPACE::Bool32 const &>
  39530. # endif
  39531. reflect() const VULKAN_HPP_NOEXCEPT
  39532. {
  39533. return std::tie( sType,
  39534. pNext,
  39535. advancedBlendMaxColorAttachments,
  39536. advancedBlendIndependentBlend,
  39537. advancedBlendNonPremultipliedSrcColor,
  39538. advancedBlendNonPremultipliedDstColor,
  39539. advancedBlendCorrelatedOverlap,
  39540. advancedBlendAllOperations );
  39541. }
  39542. #endif
  39543. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  39544. auto operator<=>( PhysicalDeviceBlendOperationAdvancedPropertiesEXT const & ) const = default;
  39545. #else
  39546. bool operator==( PhysicalDeviceBlendOperationAdvancedPropertiesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  39547. {
  39548. # if defined( VULKAN_HPP_USE_REFLECT )
  39549. return this->reflect() == rhs.reflect();
  39550. # else
  39551. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( advancedBlendMaxColorAttachments == rhs.advancedBlendMaxColorAttachments ) &&
  39552. ( advancedBlendIndependentBlend == rhs.advancedBlendIndependentBlend ) &&
  39553. ( advancedBlendNonPremultipliedSrcColor == rhs.advancedBlendNonPremultipliedSrcColor ) &&
  39554. ( advancedBlendNonPremultipliedDstColor == rhs.advancedBlendNonPremultipliedDstColor ) &&
  39555. ( advancedBlendCorrelatedOverlap == rhs.advancedBlendCorrelatedOverlap ) && ( advancedBlendAllOperations == rhs.advancedBlendAllOperations );
  39556. # endif
  39557. }
  39558. bool operator!=( PhysicalDeviceBlendOperationAdvancedPropertiesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  39559. {
  39560. return !operator==( rhs );
  39561. }
  39562. #endif
  39563. public:
  39564. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceBlendOperationAdvancedPropertiesEXT;
  39565. void * pNext = {};
  39566. uint32_t advancedBlendMaxColorAttachments = {};
  39567. VULKAN_HPP_NAMESPACE::Bool32 advancedBlendIndependentBlend = {};
  39568. VULKAN_HPP_NAMESPACE::Bool32 advancedBlendNonPremultipliedSrcColor = {};
  39569. VULKAN_HPP_NAMESPACE::Bool32 advancedBlendNonPremultipliedDstColor = {};
  39570. VULKAN_HPP_NAMESPACE::Bool32 advancedBlendCorrelatedOverlap = {};
  39571. VULKAN_HPP_NAMESPACE::Bool32 advancedBlendAllOperations = {};
  39572. };
  39573. template <>
  39574. struct CppType<StructureType, StructureType::ePhysicalDeviceBlendOperationAdvancedPropertiesEXT>
  39575. {
  39576. using Type = PhysicalDeviceBlendOperationAdvancedPropertiesEXT;
  39577. };
  39578. struct PhysicalDeviceBorderColorSwizzleFeaturesEXT
  39579. {
  39580. using NativeType = VkPhysicalDeviceBorderColorSwizzleFeaturesEXT;
  39581. static const bool allowDuplicate = false;
  39582. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceBorderColorSwizzleFeaturesEXT;
  39583. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  39584. VULKAN_HPP_CONSTEXPR PhysicalDeviceBorderColorSwizzleFeaturesEXT( VULKAN_HPP_NAMESPACE::Bool32 borderColorSwizzle_ = {},
  39585. VULKAN_HPP_NAMESPACE::Bool32 borderColorSwizzleFromImage_ = {},
  39586. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  39587. : pNext( pNext_ )
  39588. , borderColorSwizzle( borderColorSwizzle_ )
  39589. , borderColorSwizzleFromImage( borderColorSwizzleFromImage_ )
  39590. {
  39591. }
  39592. VULKAN_HPP_CONSTEXPR PhysicalDeviceBorderColorSwizzleFeaturesEXT( PhysicalDeviceBorderColorSwizzleFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  39593. PhysicalDeviceBorderColorSwizzleFeaturesEXT( VkPhysicalDeviceBorderColorSwizzleFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  39594. : PhysicalDeviceBorderColorSwizzleFeaturesEXT( *reinterpret_cast<PhysicalDeviceBorderColorSwizzleFeaturesEXT const *>( &rhs ) )
  39595. {
  39596. }
  39597. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  39598. PhysicalDeviceBorderColorSwizzleFeaturesEXT & operator=( PhysicalDeviceBorderColorSwizzleFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  39599. PhysicalDeviceBorderColorSwizzleFeaturesEXT & operator=( VkPhysicalDeviceBorderColorSwizzleFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  39600. {
  39601. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceBorderColorSwizzleFeaturesEXT const *>( &rhs );
  39602. return *this;
  39603. }
  39604. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  39605. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceBorderColorSwizzleFeaturesEXT & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
  39606. {
  39607. pNext = pNext_;
  39608. return *this;
  39609. }
  39610. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceBorderColorSwizzleFeaturesEXT &
  39611. setBorderColorSwizzle( VULKAN_HPP_NAMESPACE::Bool32 borderColorSwizzle_ ) VULKAN_HPP_NOEXCEPT
  39612. {
  39613. borderColorSwizzle = borderColorSwizzle_;
  39614. return *this;
  39615. }
  39616. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceBorderColorSwizzleFeaturesEXT &
  39617. setBorderColorSwizzleFromImage( VULKAN_HPP_NAMESPACE::Bool32 borderColorSwizzleFromImage_ ) VULKAN_HPP_NOEXCEPT
  39618. {
  39619. borderColorSwizzleFromImage = borderColorSwizzleFromImage_;
  39620. return *this;
  39621. }
  39622. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  39623. operator VkPhysicalDeviceBorderColorSwizzleFeaturesEXT const &() const VULKAN_HPP_NOEXCEPT
  39624. {
  39625. return *reinterpret_cast<const VkPhysicalDeviceBorderColorSwizzleFeaturesEXT *>( this );
  39626. }
  39627. operator VkPhysicalDeviceBorderColorSwizzleFeaturesEXT &() VULKAN_HPP_NOEXCEPT
  39628. {
  39629. return *reinterpret_cast<VkPhysicalDeviceBorderColorSwizzleFeaturesEXT *>( this );
  39630. }
  39631. #if defined( VULKAN_HPP_USE_REFLECT )
  39632. # if 14 <= VULKAN_HPP_CPP_VERSION
  39633. auto
  39634. # else
  39635. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
  39636. # endif
  39637. reflect() const VULKAN_HPP_NOEXCEPT
  39638. {
  39639. return std::tie( sType, pNext, borderColorSwizzle, borderColorSwizzleFromImage );
  39640. }
  39641. #endif
  39642. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  39643. auto operator<=>( PhysicalDeviceBorderColorSwizzleFeaturesEXT const & ) const = default;
  39644. #else
  39645. bool operator==( PhysicalDeviceBorderColorSwizzleFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  39646. {
  39647. # if defined( VULKAN_HPP_USE_REFLECT )
  39648. return this->reflect() == rhs.reflect();
  39649. # else
  39650. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( borderColorSwizzle == rhs.borderColorSwizzle ) &&
  39651. ( borderColorSwizzleFromImage == rhs.borderColorSwizzleFromImage );
  39652. # endif
  39653. }
  39654. bool operator!=( PhysicalDeviceBorderColorSwizzleFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  39655. {
  39656. return !operator==( rhs );
  39657. }
  39658. #endif
  39659. public:
  39660. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceBorderColorSwizzleFeaturesEXT;
  39661. void * pNext = {};
  39662. VULKAN_HPP_NAMESPACE::Bool32 borderColorSwizzle = {};
  39663. VULKAN_HPP_NAMESPACE::Bool32 borderColorSwizzleFromImage = {};
  39664. };
  39665. template <>
  39666. struct CppType<StructureType, StructureType::ePhysicalDeviceBorderColorSwizzleFeaturesEXT>
  39667. {
  39668. using Type = PhysicalDeviceBorderColorSwizzleFeaturesEXT;
  39669. };
  39670. struct PhysicalDeviceBufferDeviceAddressFeatures
  39671. {
  39672. using NativeType = VkPhysicalDeviceBufferDeviceAddressFeatures;
  39673. static const bool allowDuplicate = false;
  39674. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceBufferDeviceAddressFeatures;
  39675. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  39676. VULKAN_HPP_CONSTEXPR PhysicalDeviceBufferDeviceAddressFeatures( VULKAN_HPP_NAMESPACE::Bool32 bufferDeviceAddress_ = {},
  39677. VULKAN_HPP_NAMESPACE::Bool32 bufferDeviceAddressCaptureReplay_ = {},
  39678. VULKAN_HPP_NAMESPACE::Bool32 bufferDeviceAddressMultiDevice_ = {},
  39679. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  39680. : pNext( pNext_ )
  39681. , bufferDeviceAddress( bufferDeviceAddress_ )
  39682. , bufferDeviceAddressCaptureReplay( bufferDeviceAddressCaptureReplay_ )
  39683. , bufferDeviceAddressMultiDevice( bufferDeviceAddressMultiDevice_ )
  39684. {
  39685. }
  39686. VULKAN_HPP_CONSTEXPR PhysicalDeviceBufferDeviceAddressFeatures( PhysicalDeviceBufferDeviceAddressFeatures const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  39687. PhysicalDeviceBufferDeviceAddressFeatures( VkPhysicalDeviceBufferDeviceAddressFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
  39688. : PhysicalDeviceBufferDeviceAddressFeatures( *reinterpret_cast<PhysicalDeviceBufferDeviceAddressFeatures const *>( &rhs ) )
  39689. {
  39690. }
  39691. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  39692. PhysicalDeviceBufferDeviceAddressFeatures & operator=( PhysicalDeviceBufferDeviceAddressFeatures const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  39693. PhysicalDeviceBufferDeviceAddressFeatures & operator=( VkPhysicalDeviceBufferDeviceAddressFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
  39694. {
  39695. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceBufferDeviceAddressFeatures const *>( &rhs );
  39696. return *this;
  39697. }
  39698. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  39699. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceBufferDeviceAddressFeatures & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
  39700. {
  39701. pNext = pNext_;
  39702. return *this;
  39703. }
  39704. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceBufferDeviceAddressFeatures &
  39705. setBufferDeviceAddress( VULKAN_HPP_NAMESPACE::Bool32 bufferDeviceAddress_ ) VULKAN_HPP_NOEXCEPT
  39706. {
  39707. bufferDeviceAddress = bufferDeviceAddress_;
  39708. return *this;
  39709. }
  39710. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceBufferDeviceAddressFeatures &
  39711. setBufferDeviceAddressCaptureReplay( VULKAN_HPP_NAMESPACE::Bool32 bufferDeviceAddressCaptureReplay_ ) VULKAN_HPP_NOEXCEPT
  39712. {
  39713. bufferDeviceAddressCaptureReplay = bufferDeviceAddressCaptureReplay_;
  39714. return *this;
  39715. }
  39716. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceBufferDeviceAddressFeatures &
  39717. setBufferDeviceAddressMultiDevice( VULKAN_HPP_NAMESPACE::Bool32 bufferDeviceAddressMultiDevice_ ) VULKAN_HPP_NOEXCEPT
  39718. {
  39719. bufferDeviceAddressMultiDevice = bufferDeviceAddressMultiDevice_;
  39720. return *this;
  39721. }
  39722. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  39723. operator VkPhysicalDeviceBufferDeviceAddressFeatures const &() const VULKAN_HPP_NOEXCEPT
  39724. {
  39725. return *reinterpret_cast<const VkPhysicalDeviceBufferDeviceAddressFeatures *>( this );
  39726. }
  39727. operator VkPhysicalDeviceBufferDeviceAddressFeatures &() VULKAN_HPP_NOEXCEPT
  39728. {
  39729. return *reinterpret_cast<VkPhysicalDeviceBufferDeviceAddressFeatures *>( this );
  39730. }
  39731. #if defined( VULKAN_HPP_USE_REFLECT )
  39732. # if 14 <= VULKAN_HPP_CPP_VERSION
  39733. auto
  39734. # else
  39735. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  39736. void * const &,
  39737. VULKAN_HPP_NAMESPACE::Bool32 const &,
  39738. VULKAN_HPP_NAMESPACE::Bool32 const &,
  39739. VULKAN_HPP_NAMESPACE::Bool32 const &>
  39740. # endif
  39741. reflect() const VULKAN_HPP_NOEXCEPT
  39742. {
  39743. return std::tie( sType, pNext, bufferDeviceAddress, bufferDeviceAddressCaptureReplay, bufferDeviceAddressMultiDevice );
  39744. }
  39745. #endif
  39746. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  39747. auto operator<=>( PhysicalDeviceBufferDeviceAddressFeatures const & ) const = default;
  39748. #else
  39749. bool operator==( PhysicalDeviceBufferDeviceAddressFeatures const & rhs ) const VULKAN_HPP_NOEXCEPT
  39750. {
  39751. # if defined( VULKAN_HPP_USE_REFLECT )
  39752. return this->reflect() == rhs.reflect();
  39753. # else
  39754. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( bufferDeviceAddress == rhs.bufferDeviceAddress ) &&
  39755. ( bufferDeviceAddressCaptureReplay == rhs.bufferDeviceAddressCaptureReplay ) &&
  39756. ( bufferDeviceAddressMultiDevice == rhs.bufferDeviceAddressMultiDevice );
  39757. # endif
  39758. }
  39759. bool operator!=( PhysicalDeviceBufferDeviceAddressFeatures const & rhs ) const VULKAN_HPP_NOEXCEPT
  39760. {
  39761. return !operator==( rhs );
  39762. }
  39763. #endif
  39764. public:
  39765. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceBufferDeviceAddressFeatures;
  39766. void * pNext = {};
  39767. VULKAN_HPP_NAMESPACE::Bool32 bufferDeviceAddress = {};
  39768. VULKAN_HPP_NAMESPACE::Bool32 bufferDeviceAddressCaptureReplay = {};
  39769. VULKAN_HPP_NAMESPACE::Bool32 bufferDeviceAddressMultiDevice = {};
  39770. };
  39771. template <>
  39772. struct CppType<StructureType, StructureType::ePhysicalDeviceBufferDeviceAddressFeatures>
  39773. {
  39774. using Type = PhysicalDeviceBufferDeviceAddressFeatures;
  39775. };
  39776. using PhysicalDeviceBufferDeviceAddressFeaturesKHR = PhysicalDeviceBufferDeviceAddressFeatures;
  39777. struct PhysicalDeviceBufferDeviceAddressFeaturesEXT
  39778. {
  39779. using NativeType = VkPhysicalDeviceBufferDeviceAddressFeaturesEXT;
  39780. static const bool allowDuplicate = false;
  39781. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceBufferDeviceAddressFeaturesEXT;
  39782. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  39783. VULKAN_HPP_CONSTEXPR PhysicalDeviceBufferDeviceAddressFeaturesEXT( VULKAN_HPP_NAMESPACE::Bool32 bufferDeviceAddress_ = {},
  39784. VULKAN_HPP_NAMESPACE::Bool32 bufferDeviceAddressCaptureReplay_ = {},
  39785. VULKAN_HPP_NAMESPACE::Bool32 bufferDeviceAddressMultiDevice_ = {},
  39786. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  39787. : pNext( pNext_ )
  39788. , bufferDeviceAddress( bufferDeviceAddress_ )
  39789. , bufferDeviceAddressCaptureReplay( bufferDeviceAddressCaptureReplay_ )
  39790. , bufferDeviceAddressMultiDevice( bufferDeviceAddressMultiDevice_ )
  39791. {
  39792. }
  39793. VULKAN_HPP_CONSTEXPR PhysicalDeviceBufferDeviceAddressFeaturesEXT( PhysicalDeviceBufferDeviceAddressFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  39794. PhysicalDeviceBufferDeviceAddressFeaturesEXT( VkPhysicalDeviceBufferDeviceAddressFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  39795. : PhysicalDeviceBufferDeviceAddressFeaturesEXT( *reinterpret_cast<PhysicalDeviceBufferDeviceAddressFeaturesEXT const *>( &rhs ) )
  39796. {
  39797. }
  39798. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  39799. PhysicalDeviceBufferDeviceAddressFeaturesEXT & operator=( PhysicalDeviceBufferDeviceAddressFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  39800. PhysicalDeviceBufferDeviceAddressFeaturesEXT & operator=( VkPhysicalDeviceBufferDeviceAddressFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  39801. {
  39802. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceBufferDeviceAddressFeaturesEXT const *>( &rhs );
  39803. return *this;
  39804. }
  39805. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  39806. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceBufferDeviceAddressFeaturesEXT & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
  39807. {
  39808. pNext = pNext_;
  39809. return *this;
  39810. }
  39811. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceBufferDeviceAddressFeaturesEXT &
  39812. setBufferDeviceAddress( VULKAN_HPP_NAMESPACE::Bool32 bufferDeviceAddress_ ) VULKAN_HPP_NOEXCEPT
  39813. {
  39814. bufferDeviceAddress = bufferDeviceAddress_;
  39815. return *this;
  39816. }
  39817. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceBufferDeviceAddressFeaturesEXT &
  39818. setBufferDeviceAddressCaptureReplay( VULKAN_HPP_NAMESPACE::Bool32 bufferDeviceAddressCaptureReplay_ ) VULKAN_HPP_NOEXCEPT
  39819. {
  39820. bufferDeviceAddressCaptureReplay = bufferDeviceAddressCaptureReplay_;
  39821. return *this;
  39822. }
  39823. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceBufferDeviceAddressFeaturesEXT &
  39824. setBufferDeviceAddressMultiDevice( VULKAN_HPP_NAMESPACE::Bool32 bufferDeviceAddressMultiDevice_ ) VULKAN_HPP_NOEXCEPT
  39825. {
  39826. bufferDeviceAddressMultiDevice = bufferDeviceAddressMultiDevice_;
  39827. return *this;
  39828. }
  39829. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  39830. operator VkPhysicalDeviceBufferDeviceAddressFeaturesEXT const &() const VULKAN_HPP_NOEXCEPT
  39831. {
  39832. return *reinterpret_cast<const VkPhysicalDeviceBufferDeviceAddressFeaturesEXT *>( this );
  39833. }
  39834. operator VkPhysicalDeviceBufferDeviceAddressFeaturesEXT &() VULKAN_HPP_NOEXCEPT
  39835. {
  39836. return *reinterpret_cast<VkPhysicalDeviceBufferDeviceAddressFeaturesEXT *>( this );
  39837. }
  39838. #if defined( VULKAN_HPP_USE_REFLECT )
  39839. # if 14 <= VULKAN_HPP_CPP_VERSION
  39840. auto
  39841. # else
  39842. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  39843. void * const &,
  39844. VULKAN_HPP_NAMESPACE::Bool32 const &,
  39845. VULKAN_HPP_NAMESPACE::Bool32 const &,
  39846. VULKAN_HPP_NAMESPACE::Bool32 const &>
  39847. # endif
  39848. reflect() const VULKAN_HPP_NOEXCEPT
  39849. {
  39850. return std::tie( sType, pNext, bufferDeviceAddress, bufferDeviceAddressCaptureReplay, bufferDeviceAddressMultiDevice );
  39851. }
  39852. #endif
  39853. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  39854. auto operator<=>( PhysicalDeviceBufferDeviceAddressFeaturesEXT const & ) const = default;
  39855. #else
  39856. bool operator==( PhysicalDeviceBufferDeviceAddressFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  39857. {
  39858. # if defined( VULKAN_HPP_USE_REFLECT )
  39859. return this->reflect() == rhs.reflect();
  39860. # else
  39861. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( bufferDeviceAddress == rhs.bufferDeviceAddress ) &&
  39862. ( bufferDeviceAddressCaptureReplay == rhs.bufferDeviceAddressCaptureReplay ) &&
  39863. ( bufferDeviceAddressMultiDevice == rhs.bufferDeviceAddressMultiDevice );
  39864. # endif
  39865. }
  39866. bool operator!=( PhysicalDeviceBufferDeviceAddressFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  39867. {
  39868. return !operator==( rhs );
  39869. }
  39870. #endif
  39871. public:
  39872. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceBufferDeviceAddressFeaturesEXT;
  39873. void * pNext = {};
  39874. VULKAN_HPP_NAMESPACE::Bool32 bufferDeviceAddress = {};
  39875. VULKAN_HPP_NAMESPACE::Bool32 bufferDeviceAddressCaptureReplay = {};
  39876. VULKAN_HPP_NAMESPACE::Bool32 bufferDeviceAddressMultiDevice = {};
  39877. };
  39878. template <>
  39879. struct CppType<StructureType, StructureType::ePhysicalDeviceBufferDeviceAddressFeaturesEXT>
  39880. {
  39881. using Type = PhysicalDeviceBufferDeviceAddressFeaturesEXT;
  39882. };
  39883. using PhysicalDeviceBufferAddressFeaturesEXT = PhysicalDeviceBufferDeviceAddressFeaturesEXT;
  39884. struct PhysicalDeviceCoherentMemoryFeaturesAMD
  39885. {
  39886. using NativeType = VkPhysicalDeviceCoherentMemoryFeaturesAMD;
  39887. static const bool allowDuplicate = false;
  39888. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceCoherentMemoryFeaturesAMD;
  39889. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  39890. VULKAN_HPP_CONSTEXPR PhysicalDeviceCoherentMemoryFeaturesAMD( VULKAN_HPP_NAMESPACE::Bool32 deviceCoherentMemory_ = {},
  39891. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  39892. : pNext( pNext_ )
  39893. , deviceCoherentMemory( deviceCoherentMemory_ )
  39894. {
  39895. }
  39896. VULKAN_HPP_CONSTEXPR PhysicalDeviceCoherentMemoryFeaturesAMD( PhysicalDeviceCoherentMemoryFeaturesAMD const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  39897. PhysicalDeviceCoherentMemoryFeaturesAMD( VkPhysicalDeviceCoherentMemoryFeaturesAMD const & rhs ) VULKAN_HPP_NOEXCEPT
  39898. : PhysicalDeviceCoherentMemoryFeaturesAMD( *reinterpret_cast<PhysicalDeviceCoherentMemoryFeaturesAMD const *>( &rhs ) )
  39899. {
  39900. }
  39901. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  39902. PhysicalDeviceCoherentMemoryFeaturesAMD & operator=( PhysicalDeviceCoherentMemoryFeaturesAMD const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  39903. PhysicalDeviceCoherentMemoryFeaturesAMD & operator=( VkPhysicalDeviceCoherentMemoryFeaturesAMD const & rhs ) VULKAN_HPP_NOEXCEPT
  39904. {
  39905. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceCoherentMemoryFeaturesAMD const *>( &rhs );
  39906. return *this;
  39907. }
  39908. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  39909. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceCoherentMemoryFeaturesAMD & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
  39910. {
  39911. pNext = pNext_;
  39912. return *this;
  39913. }
  39914. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceCoherentMemoryFeaturesAMD &
  39915. setDeviceCoherentMemory( VULKAN_HPP_NAMESPACE::Bool32 deviceCoherentMemory_ ) VULKAN_HPP_NOEXCEPT
  39916. {
  39917. deviceCoherentMemory = deviceCoherentMemory_;
  39918. return *this;
  39919. }
  39920. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  39921. operator VkPhysicalDeviceCoherentMemoryFeaturesAMD const &() const VULKAN_HPP_NOEXCEPT
  39922. {
  39923. return *reinterpret_cast<const VkPhysicalDeviceCoherentMemoryFeaturesAMD *>( this );
  39924. }
  39925. operator VkPhysicalDeviceCoherentMemoryFeaturesAMD &() VULKAN_HPP_NOEXCEPT
  39926. {
  39927. return *reinterpret_cast<VkPhysicalDeviceCoherentMemoryFeaturesAMD *>( this );
  39928. }
  39929. #if defined( VULKAN_HPP_USE_REFLECT )
  39930. # if 14 <= VULKAN_HPP_CPP_VERSION
  39931. auto
  39932. # else
  39933. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
  39934. # endif
  39935. reflect() const VULKAN_HPP_NOEXCEPT
  39936. {
  39937. return std::tie( sType, pNext, deviceCoherentMemory );
  39938. }
  39939. #endif
  39940. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  39941. auto operator<=>( PhysicalDeviceCoherentMemoryFeaturesAMD const & ) const = default;
  39942. #else
  39943. bool operator==( PhysicalDeviceCoherentMemoryFeaturesAMD const & rhs ) const VULKAN_HPP_NOEXCEPT
  39944. {
  39945. # if defined( VULKAN_HPP_USE_REFLECT )
  39946. return this->reflect() == rhs.reflect();
  39947. # else
  39948. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( deviceCoherentMemory == rhs.deviceCoherentMemory );
  39949. # endif
  39950. }
  39951. bool operator!=( PhysicalDeviceCoherentMemoryFeaturesAMD const & rhs ) const VULKAN_HPP_NOEXCEPT
  39952. {
  39953. return !operator==( rhs );
  39954. }
  39955. #endif
  39956. public:
  39957. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceCoherentMemoryFeaturesAMD;
  39958. void * pNext = {};
  39959. VULKAN_HPP_NAMESPACE::Bool32 deviceCoherentMemory = {};
  39960. };
  39961. template <>
  39962. struct CppType<StructureType, StructureType::ePhysicalDeviceCoherentMemoryFeaturesAMD>
  39963. {
  39964. using Type = PhysicalDeviceCoherentMemoryFeaturesAMD;
  39965. };
  39966. struct PhysicalDeviceColorWriteEnableFeaturesEXT
  39967. {
  39968. using NativeType = VkPhysicalDeviceColorWriteEnableFeaturesEXT;
  39969. static const bool allowDuplicate = false;
  39970. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceColorWriteEnableFeaturesEXT;
  39971. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  39972. VULKAN_HPP_CONSTEXPR PhysicalDeviceColorWriteEnableFeaturesEXT( VULKAN_HPP_NAMESPACE::Bool32 colorWriteEnable_ = {},
  39973. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  39974. : pNext( pNext_ )
  39975. , colorWriteEnable( colorWriteEnable_ )
  39976. {
  39977. }
  39978. VULKAN_HPP_CONSTEXPR PhysicalDeviceColorWriteEnableFeaturesEXT( PhysicalDeviceColorWriteEnableFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  39979. PhysicalDeviceColorWriteEnableFeaturesEXT( VkPhysicalDeviceColorWriteEnableFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  39980. : PhysicalDeviceColorWriteEnableFeaturesEXT( *reinterpret_cast<PhysicalDeviceColorWriteEnableFeaturesEXT const *>( &rhs ) )
  39981. {
  39982. }
  39983. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  39984. PhysicalDeviceColorWriteEnableFeaturesEXT & operator=( PhysicalDeviceColorWriteEnableFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  39985. PhysicalDeviceColorWriteEnableFeaturesEXT & operator=( VkPhysicalDeviceColorWriteEnableFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  39986. {
  39987. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceColorWriteEnableFeaturesEXT const *>( &rhs );
  39988. return *this;
  39989. }
  39990. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  39991. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceColorWriteEnableFeaturesEXT & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
  39992. {
  39993. pNext = pNext_;
  39994. return *this;
  39995. }
  39996. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceColorWriteEnableFeaturesEXT &
  39997. setColorWriteEnable( VULKAN_HPP_NAMESPACE::Bool32 colorWriteEnable_ ) VULKAN_HPP_NOEXCEPT
  39998. {
  39999. colorWriteEnable = colorWriteEnable_;
  40000. return *this;
  40001. }
  40002. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  40003. operator VkPhysicalDeviceColorWriteEnableFeaturesEXT const &() const VULKAN_HPP_NOEXCEPT
  40004. {
  40005. return *reinterpret_cast<const VkPhysicalDeviceColorWriteEnableFeaturesEXT *>( this );
  40006. }
  40007. operator VkPhysicalDeviceColorWriteEnableFeaturesEXT &() VULKAN_HPP_NOEXCEPT
  40008. {
  40009. return *reinterpret_cast<VkPhysicalDeviceColorWriteEnableFeaturesEXT *>( this );
  40010. }
  40011. #if defined( VULKAN_HPP_USE_REFLECT )
  40012. # if 14 <= VULKAN_HPP_CPP_VERSION
  40013. auto
  40014. # else
  40015. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
  40016. # endif
  40017. reflect() const VULKAN_HPP_NOEXCEPT
  40018. {
  40019. return std::tie( sType, pNext, colorWriteEnable );
  40020. }
  40021. #endif
  40022. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  40023. auto operator<=>( PhysicalDeviceColorWriteEnableFeaturesEXT const & ) const = default;
  40024. #else
  40025. bool operator==( PhysicalDeviceColorWriteEnableFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  40026. {
  40027. # if defined( VULKAN_HPP_USE_REFLECT )
  40028. return this->reflect() == rhs.reflect();
  40029. # else
  40030. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( colorWriteEnable == rhs.colorWriteEnable );
  40031. # endif
  40032. }
  40033. bool operator!=( PhysicalDeviceColorWriteEnableFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  40034. {
  40035. return !operator==( rhs );
  40036. }
  40037. #endif
  40038. public:
  40039. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceColorWriteEnableFeaturesEXT;
  40040. void * pNext = {};
  40041. VULKAN_HPP_NAMESPACE::Bool32 colorWriteEnable = {};
  40042. };
  40043. template <>
  40044. struct CppType<StructureType, StructureType::ePhysicalDeviceColorWriteEnableFeaturesEXT>
  40045. {
  40046. using Type = PhysicalDeviceColorWriteEnableFeaturesEXT;
  40047. };
  40048. struct PhysicalDeviceComputeShaderDerivativesFeaturesNV
  40049. {
  40050. using NativeType = VkPhysicalDeviceComputeShaderDerivativesFeaturesNV;
  40051. static const bool allowDuplicate = false;
  40052. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceComputeShaderDerivativesFeaturesNV;
  40053. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  40054. VULKAN_HPP_CONSTEXPR PhysicalDeviceComputeShaderDerivativesFeaturesNV( VULKAN_HPP_NAMESPACE::Bool32 computeDerivativeGroupQuads_ = {},
  40055. VULKAN_HPP_NAMESPACE::Bool32 computeDerivativeGroupLinear_ = {},
  40056. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  40057. : pNext( pNext_ )
  40058. , computeDerivativeGroupQuads( computeDerivativeGroupQuads_ )
  40059. , computeDerivativeGroupLinear( computeDerivativeGroupLinear_ )
  40060. {
  40061. }
  40062. VULKAN_HPP_CONSTEXPR
  40063. PhysicalDeviceComputeShaderDerivativesFeaturesNV( PhysicalDeviceComputeShaderDerivativesFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  40064. PhysicalDeviceComputeShaderDerivativesFeaturesNV( VkPhysicalDeviceComputeShaderDerivativesFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT
  40065. : PhysicalDeviceComputeShaderDerivativesFeaturesNV( *reinterpret_cast<PhysicalDeviceComputeShaderDerivativesFeaturesNV const *>( &rhs ) )
  40066. {
  40067. }
  40068. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  40069. PhysicalDeviceComputeShaderDerivativesFeaturesNV & operator=( PhysicalDeviceComputeShaderDerivativesFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  40070. PhysicalDeviceComputeShaderDerivativesFeaturesNV & operator=( VkPhysicalDeviceComputeShaderDerivativesFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT
  40071. {
  40072. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceComputeShaderDerivativesFeaturesNV const *>( &rhs );
  40073. return *this;
  40074. }
  40075. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  40076. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceComputeShaderDerivativesFeaturesNV & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
  40077. {
  40078. pNext = pNext_;
  40079. return *this;
  40080. }
  40081. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceComputeShaderDerivativesFeaturesNV &
  40082. setComputeDerivativeGroupQuads( VULKAN_HPP_NAMESPACE::Bool32 computeDerivativeGroupQuads_ ) VULKAN_HPP_NOEXCEPT
  40083. {
  40084. computeDerivativeGroupQuads = computeDerivativeGroupQuads_;
  40085. return *this;
  40086. }
  40087. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceComputeShaderDerivativesFeaturesNV &
  40088. setComputeDerivativeGroupLinear( VULKAN_HPP_NAMESPACE::Bool32 computeDerivativeGroupLinear_ ) VULKAN_HPP_NOEXCEPT
  40089. {
  40090. computeDerivativeGroupLinear = computeDerivativeGroupLinear_;
  40091. return *this;
  40092. }
  40093. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  40094. operator VkPhysicalDeviceComputeShaderDerivativesFeaturesNV const &() const VULKAN_HPP_NOEXCEPT
  40095. {
  40096. return *reinterpret_cast<const VkPhysicalDeviceComputeShaderDerivativesFeaturesNV *>( this );
  40097. }
  40098. operator VkPhysicalDeviceComputeShaderDerivativesFeaturesNV &() VULKAN_HPP_NOEXCEPT
  40099. {
  40100. return *reinterpret_cast<VkPhysicalDeviceComputeShaderDerivativesFeaturesNV *>( this );
  40101. }
  40102. #if defined( VULKAN_HPP_USE_REFLECT )
  40103. # if 14 <= VULKAN_HPP_CPP_VERSION
  40104. auto
  40105. # else
  40106. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
  40107. # endif
  40108. reflect() const VULKAN_HPP_NOEXCEPT
  40109. {
  40110. return std::tie( sType, pNext, computeDerivativeGroupQuads, computeDerivativeGroupLinear );
  40111. }
  40112. #endif
  40113. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  40114. auto operator<=>( PhysicalDeviceComputeShaderDerivativesFeaturesNV const & ) const = default;
  40115. #else
  40116. bool operator==( PhysicalDeviceComputeShaderDerivativesFeaturesNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  40117. {
  40118. # if defined( VULKAN_HPP_USE_REFLECT )
  40119. return this->reflect() == rhs.reflect();
  40120. # else
  40121. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( computeDerivativeGroupQuads == rhs.computeDerivativeGroupQuads ) &&
  40122. ( computeDerivativeGroupLinear == rhs.computeDerivativeGroupLinear );
  40123. # endif
  40124. }
  40125. bool operator!=( PhysicalDeviceComputeShaderDerivativesFeaturesNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  40126. {
  40127. return !operator==( rhs );
  40128. }
  40129. #endif
  40130. public:
  40131. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceComputeShaderDerivativesFeaturesNV;
  40132. void * pNext = {};
  40133. VULKAN_HPP_NAMESPACE::Bool32 computeDerivativeGroupQuads = {};
  40134. VULKAN_HPP_NAMESPACE::Bool32 computeDerivativeGroupLinear = {};
  40135. };
  40136. template <>
  40137. struct CppType<StructureType, StructureType::ePhysicalDeviceComputeShaderDerivativesFeaturesNV>
  40138. {
  40139. using Type = PhysicalDeviceComputeShaderDerivativesFeaturesNV;
  40140. };
  40141. struct PhysicalDeviceConditionalRenderingFeaturesEXT
  40142. {
  40143. using NativeType = VkPhysicalDeviceConditionalRenderingFeaturesEXT;
  40144. static const bool allowDuplicate = false;
  40145. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceConditionalRenderingFeaturesEXT;
  40146. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  40147. VULKAN_HPP_CONSTEXPR PhysicalDeviceConditionalRenderingFeaturesEXT( VULKAN_HPP_NAMESPACE::Bool32 conditionalRendering_ = {},
  40148. VULKAN_HPP_NAMESPACE::Bool32 inheritedConditionalRendering_ = {},
  40149. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  40150. : pNext( pNext_ )
  40151. , conditionalRendering( conditionalRendering_ )
  40152. , inheritedConditionalRendering( inheritedConditionalRendering_ )
  40153. {
  40154. }
  40155. VULKAN_HPP_CONSTEXPR
  40156. PhysicalDeviceConditionalRenderingFeaturesEXT( PhysicalDeviceConditionalRenderingFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  40157. PhysicalDeviceConditionalRenderingFeaturesEXT( VkPhysicalDeviceConditionalRenderingFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  40158. : PhysicalDeviceConditionalRenderingFeaturesEXT( *reinterpret_cast<PhysicalDeviceConditionalRenderingFeaturesEXT const *>( &rhs ) )
  40159. {
  40160. }
  40161. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  40162. PhysicalDeviceConditionalRenderingFeaturesEXT & operator=( PhysicalDeviceConditionalRenderingFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  40163. PhysicalDeviceConditionalRenderingFeaturesEXT & operator=( VkPhysicalDeviceConditionalRenderingFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  40164. {
  40165. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceConditionalRenderingFeaturesEXT const *>( &rhs );
  40166. return *this;
  40167. }
  40168. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  40169. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceConditionalRenderingFeaturesEXT & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
  40170. {
  40171. pNext = pNext_;
  40172. return *this;
  40173. }
  40174. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceConditionalRenderingFeaturesEXT &
  40175. setConditionalRendering( VULKAN_HPP_NAMESPACE::Bool32 conditionalRendering_ ) VULKAN_HPP_NOEXCEPT
  40176. {
  40177. conditionalRendering = conditionalRendering_;
  40178. return *this;
  40179. }
  40180. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceConditionalRenderingFeaturesEXT &
  40181. setInheritedConditionalRendering( VULKAN_HPP_NAMESPACE::Bool32 inheritedConditionalRendering_ ) VULKAN_HPP_NOEXCEPT
  40182. {
  40183. inheritedConditionalRendering = inheritedConditionalRendering_;
  40184. return *this;
  40185. }
  40186. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  40187. operator VkPhysicalDeviceConditionalRenderingFeaturesEXT const &() const VULKAN_HPP_NOEXCEPT
  40188. {
  40189. return *reinterpret_cast<const VkPhysicalDeviceConditionalRenderingFeaturesEXT *>( this );
  40190. }
  40191. operator VkPhysicalDeviceConditionalRenderingFeaturesEXT &() VULKAN_HPP_NOEXCEPT
  40192. {
  40193. return *reinterpret_cast<VkPhysicalDeviceConditionalRenderingFeaturesEXT *>( this );
  40194. }
  40195. #if defined( VULKAN_HPP_USE_REFLECT )
  40196. # if 14 <= VULKAN_HPP_CPP_VERSION
  40197. auto
  40198. # else
  40199. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
  40200. # endif
  40201. reflect() const VULKAN_HPP_NOEXCEPT
  40202. {
  40203. return std::tie( sType, pNext, conditionalRendering, inheritedConditionalRendering );
  40204. }
  40205. #endif
  40206. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  40207. auto operator<=>( PhysicalDeviceConditionalRenderingFeaturesEXT const & ) const = default;
  40208. #else
  40209. bool operator==( PhysicalDeviceConditionalRenderingFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  40210. {
  40211. # if defined( VULKAN_HPP_USE_REFLECT )
  40212. return this->reflect() == rhs.reflect();
  40213. # else
  40214. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( conditionalRendering == rhs.conditionalRendering ) &&
  40215. ( inheritedConditionalRendering == rhs.inheritedConditionalRendering );
  40216. # endif
  40217. }
  40218. bool operator!=( PhysicalDeviceConditionalRenderingFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  40219. {
  40220. return !operator==( rhs );
  40221. }
  40222. #endif
  40223. public:
  40224. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceConditionalRenderingFeaturesEXT;
  40225. void * pNext = {};
  40226. VULKAN_HPP_NAMESPACE::Bool32 conditionalRendering = {};
  40227. VULKAN_HPP_NAMESPACE::Bool32 inheritedConditionalRendering = {};
  40228. };
  40229. template <>
  40230. struct CppType<StructureType, StructureType::ePhysicalDeviceConditionalRenderingFeaturesEXT>
  40231. {
  40232. using Type = PhysicalDeviceConditionalRenderingFeaturesEXT;
  40233. };
  40234. struct PhysicalDeviceConservativeRasterizationPropertiesEXT
  40235. {
  40236. using NativeType = VkPhysicalDeviceConservativeRasterizationPropertiesEXT;
  40237. static const bool allowDuplicate = false;
  40238. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceConservativeRasterizationPropertiesEXT;
  40239. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  40240. VULKAN_HPP_CONSTEXPR PhysicalDeviceConservativeRasterizationPropertiesEXT( float primitiveOverestimationSize_ = {},
  40241. float maxExtraPrimitiveOverestimationSize_ = {},
  40242. float extraPrimitiveOverestimationSizeGranularity_ = {},
  40243. VULKAN_HPP_NAMESPACE::Bool32 primitiveUnderestimation_ = {},
  40244. VULKAN_HPP_NAMESPACE::Bool32 conservativePointAndLineRasterization_ = {},
  40245. VULKAN_HPP_NAMESPACE::Bool32 degenerateTrianglesRasterized_ = {},
  40246. VULKAN_HPP_NAMESPACE::Bool32 degenerateLinesRasterized_ = {},
  40247. VULKAN_HPP_NAMESPACE::Bool32 fullyCoveredFragmentShaderInputVariable_ = {},
  40248. VULKAN_HPP_NAMESPACE::Bool32 conservativeRasterizationPostDepthCoverage_ = {},
  40249. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  40250. : pNext( pNext_ )
  40251. , primitiveOverestimationSize( primitiveOverestimationSize_ )
  40252. , maxExtraPrimitiveOverestimationSize( maxExtraPrimitiveOverestimationSize_ )
  40253. , extraPrimitiveOverestimationSizeGranularity( extraPrimitiveOverestimationSizeGranularity_ )
  40254. , primitiveUnderestimation( primitiveUnderestimation_ )
  40255. , conservativePointAndLineRasterization( conservativePointAndLineRasterization_ )
  40256. , degenerateTrianglesRasterized( degenerateTrianglesRasterized_ )
  40257. , degenerateLinesRasterized( degenerateLinesRasterized_ )
  40258. , fullyCoveredFragmentShaderInputVariable( fullyCoveredFragmentShaderInputVariable_ )
  40259. , conservativeRasterizationPostDepthCoverage( conservativeRasterizationPostDepthCoverage_ )
  40260. {
  40261. }
  40262. VULKAN_HPP_CONSTEXPR
  40263. PhysicalDeviceConservativeRasterizationPropertiesEXT( PhysicalDeviceConservativeRasterizationPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  40264. PhysicalDeviceConservativeRasterizationPropertiesEXT( VkPhysicalDeviceConservativeRasterizationPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  40265. : PhysicalDeviceConservativeRasterizationPropertiesEXT( *reinterpret_cast<PhysicalDeviceConservativeRasterizationPropertiesEXT const *>( &rhs ) )
  40266. {
  40267. }
  40268. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  40269. PhysicalDeviceConservativeRasterizationPropertiesEXT &
  40270. operator=( PhysicalDeviceConservativeRasterizationPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  40271. PhysicalDeviceConservativeRasterizationPropertiesEXT & operator=( VkPhysicalDeviceConservativeRasterizationPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  40272. {
  40273. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceConservativeRasterizationPropertiesEXT const *>( &rhs );
  40274. return *this;
  40275. }
  40276. operator VkPhysicalDeviceConservativeRasterizationPropertiesEXT const &() const VULKAN_HPP_NOEXCEPT
  40277. {
  40278. return *reinterpret_cast<const VkPhysicalDeviceConservativeRasterizationPropertiesEXT *>( this );
  40279. }
  40280. operator VkPhysicalDeviceConservativeRasterizationPropertiesEXT &() VULKAN_HPP_NOEXCEPT
  40281. {
  40282. return *reinterpret_cast<VkPhysicalDeviceConservativeRasterizationPropertiesEXT *>( this );
  40283. }
  40284. #if defined( VULKAN_HPP_USE_REFLECT )
  40285. # if 14 <= VULKAN_HPP_CPP_VERSION
  40286. auto
  40287. # else
  40288. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  40289. void * const &,
  40290. float const &,
  40291. float const &,
  40292. float const &,
  40293. VULKAN_HPP_NAMESPACE::Bool32 const &,
  40294. VULKAN_HPP_NAMESPACE::Bool32 const &,
  40295. VULKAN_HPP_NAMESPACE::Bool32 const &,
  40296. VULKAN_HPP_NAMESPACE::Bool32 const &,
  40297. VULKAN_HPP_NAMESPACE::Bool32 const &,
  40298. VULKAN_HPP_NAMESPACE::Bool32 const &>
  40299. # endif
  40300. reflect() const VULKAN_HPP_NOEXCEPT
  40301. {
  40302. return std::tie( sType,
  40303. pNext,
  40304. primitiveOverestimationSize,
  40305. maxExtraPrimitiveOverestimationSize,
  40306. extraPrimitiveOverestimationSizeGranularity,
  40307. primitiveUnderestimation,
  40308. conservativePointAndLineRasterization,
  40309. degenerateTrianglesRasterized,
  40310. degenerateLinesRasterized,
  40311. fullyCoveredFragmentShaderInputVariable,
  40312. conservativeRasterizationPostDepthCoverage );
  40313. }
  40314. #endif
  40315. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  40316. auto operator<=>( PhysicalDeviceConservativeRasterizationPropertiesEXT const & ) const = default;
  40317. #else
  40318. bool operator==( PhysicalDeviceConservativeRasterizationPropertiesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  40319. {
  40320. # if defined( VULKAN_HPP_USE_REFLECT )
  40321. return this->reflect() == rhs.reflect();
  40322. # else
  40323. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( primitiveOverestimationSize == rhs.primitiveOverestimationSize ) &&
  40324. ( maxExtraPrimitiveOverestimationSize == rhs.maxExtraPrimitiveOverestimationSize ) &&
  40325. ( extraPrimitiveOverestimationSizeGranularity == rhs.extraPrimitiveOverestimationSizeGranularity ) &&
  40326. ( primitiveUnderestimation == rhs.primitiveUnderestimation ) &&
  40327. ( conservativePointAndLineRasterization == rhs.conservativePointAndLineRasterization ) &&
  40328. ( degenerateTrianglesRasterized == rhs.degenerateTrianglesRasterized ) && ( degenerateLinesRasterized == rhs.degenerateLinesRasterized ) &&
  40329. ( fullyCoveredFragmentShaderInputVariable == rhs.fullyCoveredFragmentShaderInputVariable ) &&
  40330. ( conservativeRasterizationPostDepthCoverage == rhs.conservativeRasterizationPostDepthCoverage );
  40331. # endif
  40332. }
  40333. bool operator!=( PhysicalDeviceConservativeRasterizationPropertiesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  40334. {
  40335. return !operator==( rhs );
  40336. }
  40337. #endif
  40338. public:
  40339. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceConservativeRasterizationPropertiesEXT;
  40340. void * pNext = {};
  40341. float primitiveOverestimationSize = {};
  40342. float maxExtraPrimitiveOverestimationSize = {};
  40343. float extraPrimitiveOverestimationSizeGranularity = {};
  40344. VULKAN_HPP_NAMESPACE::Bool32 primitiveUnderestimation = {};
  40345. VULKAN_HPP_NAMESPACE::Bool32 conservativePointAndLineRasterization = {};
  40346. VULKAN_HPP_NAMESPACE::Bool32 degenerateTrianglesRasterized = {};
  40347. VULKAN_HPP_NAMESPACE::Bool32 degenerateLinesRasterized = {};
  40348. VULKAN_HPP_NAMESPACE::Bool32 fullyCoveredFragmentShaderInputVariable = {};
  40349. VULKAN_HPP_NAMESPACE::Bool32 conservativeRasterizationPostDepthCoverage = {};
  40350. };
  40351. template <>
  40352. struct CppType<StructureType, StructureType::ePhysicalDeviceConservativeRasterizationPropertiesEXT>
  40353. {
  40354. using Type = PhysicalDeviceConservativeRasterizationPropertiesEXT;
  40355. };
  40356. struct PhysicalDeviceCooperativeMatrixFeaturesNV
  40357. {
  40358. using NativeType = VkPhysicalDeviceCooperativeMatrixFeaturesNV;
  40359. static const bool allowDuplicate = false;
  40360. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceCooperativeMatrixFeaturesNV;
  40361. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  40362. VULKAN_HPP_CONSTEXPR PhysicalDeviceCooperativeMatrixFeaturesNV( VULKAN_HPP_NAMESPACE::Bool32 cooperativeMatrix_ = {},
  40363. VULKAN_HPP_NAMESPACE::Bool32 cooperativeMatrixRobustBufferAccess_ = {},
  40364. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  40365. : pNext( pNext_ )
  40366. , cooperativeMatrix( cooperativeMatrix_ )
  40367. , cooperativeMatrixRobustBufferAccess( cooperativeMatrixRobustBufferAccess_ )
  40368. {
  40369. }
  40370. VULKAN_HPP_CONSTEXPR PhysicalDeviceCooperativeMatrixFeaturesNV( PhysicalDeviceCooperativeMatrixFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  40371. PhysicalDeviceCooperativeMatrixFeaturesNV( VkPhysicalDeviceCooperativeMatrixFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT
  40372. : PhysicalDeviceCooperativeMatrixFeaturesNV( *reinterpret_cast<PhysicalDeviceCooperativeMatrixFeaturesNV const *>( &rhs ) )
  40373. {
  40374. }
  40375. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  40376. PhysicalDeviceCooperativeMatrixFeaturesNV & operator=( PhysicalDeviceCooperativeMatrixFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  40377. PhysicalDeviceCooperativeMatrixFeaturesNV & operator=( VkPhysicalDeviceCooperativeMatrixFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT
  40378. {
  40379. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceCooperativeMatrixFeaturesNV const *>( &rhs );
  40380. return *this;
  40381. }
  40382. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  40383. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceCooperativeMatrixFeaturesNV & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
  40384. {
  40385. pNext = pNext_;
  40386. return *this;
  40387. }
  40388. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceCooperativeMatrixFeaturesNV &
  40389. setCooperativeMatrix( VULKAN_HPP_NAMESPACE::Bool32 cooperativeMatrix_ ) VULKAN_HPP_NOEXCEPT
  40390. {
  40391. cooperativeMatrix = cooperativeMatrix_;
  40392. return *this;
  40393. }
  40394. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceCooperativeMatrixFeaturesNV &
  40395. setCooperativeMatrixRobustBufferAccess( VULKAN_HPP_NAMESPACE::Bool32 cooperativeMatrixRobustBufferAccess_ ) VULKAN_HPP_NOEXCEPT
  40396. {
  40397. cooperativeMatrixRobustBufferAccess = cooperativeMatrixRobustBufferAccess_;
  40398. return *this;
  40399. }
  40400. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  40401. operator VkPhysicalDeviceCooperativeMatrixFeaturesNV const &() const VULKAN_HPP_NOEXCEPT
  40402. {
  40403. return *reinterpret_cast<const VkPhysicalDeviceCooperativeMatrixFeaturesNV *>( this );
  40404. }
  40405. operator VkPhysicalDeviceCooperativeMatrixFeaturesNV &() VULKAN_HPP_NOEXCEPT
  40406. {
  40407. return *reinterpret_cast<VkPhysicalDeviceCooperativeMatrixFeaturesNV *>( this );
  40408. }
  40409. #if defined( VULKAN_HPP_USE_REFLECT )
  40410. # if 14 <= VULKAN_HPP_CPP_VERSION
  40411. auto
  40412. # else
  40413. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
  40414. # endif
  40415. reflect() const VULKAN_HPP_NOEXCEPT
  40416. {
  40417. return std::tie( sType, pNext, cooperativeMatrix, cooperativeMatrixRobustBufferAccess );
  40418. }
  40419. #endif
  40420. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  40421. auto operator<=>( PhysicalDeviceCooperativeMatrixFeaturesNV const & ) const = default;
  40422. #else
  40423. bool operator==( PhysicalDeviceCooperativeMatrixFeaturesNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  40424. {
  40425. # if defined( VULKAN_HPP_USE_REFLECT )
  40426. return this->reflect() == rhs.reflect();
  40427. # else
  40428. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( cooperativeMatrix == rhs.cooperativeMatrix ) &&
  40429. ( cooperativeMatrixRobustBufferAccess == rhs.cooperativeMatrixRobustBufferAccess );
  40430. # endif
  40431. }
  40432. bool operator!=( PhysicalDeviceCooperativeMatrixFeaturesNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  40433. {
  40434. return !operator==( rhs );
  40435. }
  40436. #endif
  40437. public:
  40438. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceCooperativeMatrixFeaturesNV;
  40439. void * pNext = {};
  40440. VULKAN_HPP_NAMESPACE::Bool32 cooperativeMatrix = {};
  40441. VULKAN_HPP_NAMESPACE::Bool32 cooperativeMatrixRobustBufferAccess = {};
  40442. };
  40443. template <>
  40444. struct CppType<StructureType, StructureType::ePhysicalDeviceCooperativeMatrixFeaturesNV>
  40445. {
  40446. using Type = PhysicalDeviceCooperativeMatrixFeaturesNV;
  40447. };
  40448. struct PhysicalDeviceCooperativeMatrixPropertiesNV
  40449. {
  40450. using NativeType = VkPhysicalDeviceCooperativeMatrixPropertiesNV;
  40451. static const bool allowDuplicate = false;
  40452. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceCooperativeMatrixPropertiesNV;
  40453. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  40454. VULKAN_HPP_CONSTEXPR PhysicalDeviceCooperativeMatrixPropertiesNV( VULKAN_HPP_NAMESPACE::ShaderStageFlags cooperativeMatrixSupportedStages_ = {},
  40455. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  40456. : pNext( pNext_ )
  40457. , cooperativeMatrixSupportedStages( cooperativeMatrixSupportedStages_ )
  40458. {
  40459. }
  40460. VULKAN_HPP_CONSTEXPR PhysicalDeviceCooperativeMatrixPropertiesNV( PhysicalDeviceCooperativeMatrixPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  40461. PhysicalDeviceCooperativeMatrixPropertiesNV( VkPhysicalDeviceCooperativeMatrixPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT
  40462. : PhysicalDeviceCooperativeMatrixPropertiesNV( *reinterpret_cast<PhysicalDeviceCooperativeMatrixPropertiesNV const *>( &rhs ) )
  40463. {
  40464. }
  40465. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  40466. PhysicalDeviceCooperativeMatrixPropertiesNV & operator=( PhysicalDeviceCooperativeMatrixPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  40467. PhysicalDeviceCooperativeMatrixPropertiesNV & operator=( VkPhysicalDeviceCooperativeMatrixPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT
  40468. {
  40469. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceCooperativeMatrixPropertiesNV const *>( &rhs );
  40470. return *this;
  40471. }
  40472. operator VkPhysicalDeviceCooperativeMatrixPropertiesNV const &() const VULKAN_HPP_NOEXCEPT
  40473. {
  40474. return *reinterpret_cast<const VkPhysicalDeviceCooperativeMatrixPropertiesNV *>( this );
  40475. }
  40476. operator VkPhysicalDeviceCooperativeMatrixPropertiesNV &() VULKAN_HPP_NOEXCEPT
  40477. {
  40478. return *reinterpret_cast<VkPhysicalDeviceCooperativeMatrixPropertiesNV *>( this );
  40479. }
  40480. #if defined( VULKAN_HPP_USE_REFLECT )
  40481. # if 14 <= VULKAN_HPP_CPP_VERSION
  40482. auto
  40483. # else
  40484. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::ShaderStageFlags const &>
  40485. # endif
  40486. reflect() const VULKAN_HPP_NOEXCEPT
  40487. {
  40488. return std::tie( sType, pNext, cooperativeMatrixSupportedStages );
  40489. }
  40490. #endif
  40491. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  40492. auto operator<=>( PhysicalDeviceCooperativeMatrixPropertiesNV const & ) const = default;
  40493. #else
  40494. bool operator==( PhysicalDeviceCooperativeMatrixPropertiesNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  40495. {
  40496. # if defined( VULKAN_HPP_USE_REFLECT )
  40497. return this->reflect() == rhs.reflect();
  40498. # else
  40499. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( cooperativeMatrixSupportedStages == rhs.cooperativeMatrixSupportedStages );
  40500. # endif
  40501. }
  40502. bool operator!=( PhysicalDeviceCooperativeMatrixPropertiesNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  40503. {
  40504. return !operator==( rhs );
  40505. }
  40506. #endif
  40507. public:
  40508. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceCooperativeMatrixPropertiesNV;
  40509. void * pNext = {};
  40510. VULKAN_HPP_NAMESPACE::ShaderStageFlags cooperativeMatrixSupportedStages = {};
  40511. };
  40512. template <>
  40513. struct CppType<StructureType, StructureType::ePhysicalDeviceCooperativeMatrixPropertiesNV>
  40514. {
  40515. using Type = PhysicalDeviceCooperativeMatrixPropertiesNV;
  40516. };
  40517. struct PhysicalDeviceCornerSampledImageFeaturesNV
  40518. {
  40519. using NativeType = VkPhysicalDeviceCornerSampledImageFeaturesNV;
  40520. static const bool allowDuplicate = false;
  40521. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceCornerSampledImageFeaturesNV;
  40522. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  40523. VULKAN_HPP_CONSTEXPR PhysicalDeviceCornerSampledImageFeaturesNV( VULKAN_HPP_NAMESPACE::Bool32 cornerSampledImage_ = {},
  40524. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  40525. : pNext( pNext_ )
  40526. , cornerSampledImage( cornerSampledImage_ )
  40527. {
  40528. }
  40529. VULKAN_HPP_CONSTEXPR PhysicalDeviceCornerSampledImageFeaturesNV( PhysicalDeviceCornerSampledImageFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  40530. PhysicalDeviceCornerSampledImageFeaturesNV( VkPhysicalDeviceCornerSampledImageFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT
  40531. : PhysicalDeviceCornerSampledImageFeaturesNV( *reinterpret_cast<PhysicalDeviceCornerSampledImageFeaturesNV const *>( &rhs ) )
  40532. {
  40533. }
  40534. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  40535. PhysicalDeviceCornerSampledImageFeaturesNV & operator=( PhysicalDeviceCornerSampledImageFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  40536. PhysicalDeviceCornerSampledImageFeaturesNV & operator=( VkPhysicalDeviceCornerSampledImageFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT
  40537. {
  40538. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceCornerSampledImageFeaturesNV const *>( &rhs );
  40539. return *this;
  40540. }
  40541. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  40542. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceCornerSampledImageFeaturesNV & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
  40543. {
  40544. pNext = pNext_;
  40545. return *this;
  40546. }
  40547. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceCornerSampledImageFeaturesNV &
  40548. setCornerSampledImage( VULKAN_HPP_NAMESPACE::Bool32 cornerSampledImage_ ) VULKAN_HPP_NOEXCEPT
  40549. {
  40550. cornerSampledImage = cornerSampledImage_;
  40551. return *this;
  40552. }
  40553. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  40554. operator VkPhysicalDeviceCornerSampledImageFeaturesNV const &() const VULKAN_HPP_NOEXCEPT
  40555. {
  40556. return *reinterpret_cast<const VkPhysicalDeviceCornerSampledImageFeaturesNV *>( this );
  40557. }
  40558. operator VkPhysicalDeviceCornerSampledImageFeaturesNV &() VULKAN_HPP_NOEXCEPT
  40559. {
  40560. return *reinterpret_cast<VkPhysicalDeviceCornerSampledImageFeaturesNV *>( this );
  40561. }
  40562. #if defined( VULKAN_HPP_USE_REFLECT )
  40563. # if 14 <= VULKAN_HPP_CPP_VERSION
  40564. auto
  40565. # else
  40566. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
  40567. # endif
  40568. reflect() const VULKAN_HPP_NOEXCEPT
  40569. {
  40570. return std::tie( sType, pNext, cornerSampledImage );
  40571. }
  40572. #endif
  40573. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  40574. auto operator<=>( PhysicalDeviceCornerSampledImageFeaturesNV const & ) const = default;
  40575. #else
  40576. bool operator==( PhysicalDeviceCornerSampledImageFeaturesNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  40577. {
  40578. # if defined( VULKAN_HPP_USE_REFLECT )
  40579. return this->reflect() == rhs.reflect();
  40580. # else
  40581. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( cornerSampledImage == rhs.cornerSampledImage );
  40582. # endif
  40583. }
  40584. bool operator!=( PhysicalDeviceCornerSampledImageFeaturesNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  40585. {
  40586. return !operator==( rhs );
  40587. }
  40588. #endif
  40589. public:
  40590. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceCornerSampledImageFeaturesNV;
  40591. void * pNext = {};
  40592. VULKAN_HPP_NAMESPACE::Bool32 cornerSampledImage = {};
  40593. };
  40594. template <>
  40595. struct CppType<StructureType, StructureType::ePhysicalDeviceCornerSampledImageFeaturesNV>
  40596. {
  40597. using Type = PhysicalDeviceCornerSampledImageFeaturesNV;
  40598. };
  40599. struct PhysicalDeviceCoverageReductionModeFeaturesNV
  40600. {
  40601. using NativeType = VkPhysicalDeviceCoverageReductionModeFeaturesNV;
  40602. static const bool allowDuplicate = false;
  40603. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceCoverageReductionModeFeaturesNV;
  40604. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  40605. VULKAN_HPP_CONSTEXPR PhysicalDeviceCoverageReductionModeFeaturesNV( VULKAN_HPP_NAMESPACE::Bool32 coverageReductionMode_ = {},
  40606. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  40607. : pNext( pNext_ )
  40608. , coverageReductionMode( coverageReductionMode_ )
  40609. {
  40610. }
  40611. VULKAN_HPP_CONSTEXPR
  40612. PhysicalDeviceCoverageReductionModeFeaturesNV( PhysicalDeviceCoverageReductionModeFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  40613. PhysicalDeviceCoverageReductionModeFeaturesNV( VkPhysicalDeviceCoverageReductionModeFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT
  40614. : PhysicalDeviceCoverageReductionModeFeaturesNV( *reinterpret_cast<PhysicalDeviceCoverageReductionModeFeaturesNV const *>( &rhs ) )
  40615. {
  40616. }
  40617. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  40618. PhysicalDeviceCoverageReductionModeFeaturesNV & operator=( PhysicalDeviceCoverageReductionModeFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  40619. PhysicalDeviceCoverageReductionModeFeaturesNV & operator=( VkPhysicalDeviceCoverageReductionModeFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT
  40620. {
  40621. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceCoverageReductionModeFeaturesNV const *>( &rhs );
  40622. return *this;
  40623. }
  40624. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  40625. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceCoverageReductionModeFeaturesNV & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
  40626. {
  40627. pNext = pNext_;
  40628. return *this;
  40629. }
  40630. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceCoverageReductionModeFeaturesNV &
  40631. setCoverageReductionMode( VULKAN_HPP_NAMESPACE::Bool32 coverageReductionMode_ ) VULKAN_HPP_NOEXCEPT
  40632. {
  40633. coverageReductionMode = coverageReductionMode_;
  40634. return *this;
  40635. }
  40636. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  40637. operator VkPhysicalDeviceCoverageReductionModeFeaturesNV const &() const VULKAN_HPP_NOEXCEPT
  40638. {
  40639. return *reinterpret_cast<const VkPhysicalDeviceCoverageReductionModeFeaturesNV *>( this );
  40640. }
  40641. operator VkPhysicalDeviceCoverageReductionModeFeaturesNV &() VULKAN_HPP_NOEXCEPT
  40642. {
  40643. return *reinterpret_cast<VkPhysicalDeviceCoverageReductionModeFeaturesNV *>( this );
  40644. }
  40645. #if defined( VULKAN_HPP_USE_REFLECT )
  40646. # if 14 <= VULKAN_HPP_CPP_VERSION
  40647. auto
  40648. # else
  40649. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
  40650. # endif
  40651. reflect() const VULKAN_HPP_NOEXCEPT
  40652. {
  40653. return std::tie( sType, pNext, coverageReductionMode );
  40654. }
  40655. #endif
  40656. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  40657. auto operator<=>( PhysicalDeviceCoverageReductionModeFeaturesNV const & ) const = default;
  40658. #else
  40659. bool operator==( PhysicalDeviceCoverageReductionModeFeaturesNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  40660. {
  40661. # if defined( VULKAN_HPP_USE_REFLECT )
  40662. return this->reflect() == rhs.reflect();
  40663. # else
  40664. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( coverageReductionMode == rhs.coverageReductionMode );
  40665. # endif
  40666. }
  40667. bool operator!=( PhysicalDeviceCoverageReductionModeFeaturesNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  40668. {
  40669. return !operator==( rhs );
  40670. }
  40671. #endif
  40672. public:
  40673. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceCoverageReductionModeFeaturesNV;
  40674. void * pNext = {};
  40675. VULKAN_HPP_NAMESPACE::Bool32 coverageReductionMode = {};
  40676. };
  40677. template <>
  40678. struct CppType<StructureType, StructureType::ePhysicalDeviceCoverageReductionModeFeaturesNV>
  40679. {
  40680. using Type = PhysicalDeviceCoverageReductionModeFeaturesNV;
  40681. };
  40682. struct PhysicalDeviceCustomBorderColorFeaturesEXT
  40683. {
  40684. using NativeType = VkPhysicalDeviceCustomBorderColorFeaturesEXT;
  40685. static const bool allowDuplicate = false;
  40686. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceCustomBorderColorFeaturesEXT;
  40687. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  40688. VULKAN_HPP_CONSTEXPR PhysicalDeviceCustomBorderColorFeaturesEXT( VULKAN_HPP_NAMESPACE::Bool32 customBorderColors_ = {},
  40689. VULKAN_HPP_NAMESPACE::Bool32 customBorderColorWithoutFormat_ = {},
  40690. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  40691. : pNext( pNext_ )
  40692. , customBorderColors( customBorderColors_ )
  40693. , customBorderColorWithoutFormat( customBorderColorWithoutFormat_ )
  40694. {
  40695. }
  40696. VULKAN_HPP_CONSTEXPR PhysicalDeviceCustomBorderColorFeaturesEXT( PhysicalDeviceCustomBorderColorFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  40697. PhysicalDeviceCustomBorderColorFeaturesEXT( VkPhysicalDeviceCustomBorderColorFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  40698. : PhysicalDeviceCustomBorderColorFeaturesEXT( *reinterpret_cast<PhysicalDeviceCustomBorderColorFeaturesEXT const *>( &rhs ) )
  40699. {
  40700. }
  40701. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  40702. PhysicalDeviceCustomBorderColorFeaturesEXT & operator=( PhysicalDeviceCustomBorderColorFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  40703. PhysicalDeviceCustomBorderColorFeaturesEXT & operator=( VkPhysicalDeviceCustomBorderColorFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  40704. {
  40705. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceCustomBorderColorFeaturesEXT const *>( &rhs );
  40706. return *this;
  40707. }
  40708. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  40709. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceCustomBorderColorFeaturesEXT & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
  40710. {
  40711. pNext = pNext_;
  40712. return *this;
  40713. }
  40714. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceCustomBorderColorFeaturesEXT &
  40715. setCustomBorderColors( VULKAN_HPP_NAMESPACE::Bool32 customBorderColors_ ) VULKAN_HPP_NOEXCEPT
  40716. {
  40717. customBorderColors = customBorderColors_;
  40718. return *this;
  40719. }
  40720. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceCustomBorderColorFeaturesEXT &
  40721. setCustomBorderColorWithoutFormat( VULKAN_HPP_NAMESPACE::Bool32 customBorderColorWithoutFormat_ ) VULKAN_HPP_NOEXCEPT
  40722. {
  40723. customBorderColorWithoutFormat = customBorderColorWithoutFormat_;
  40724. return *this;
  40725. }
  40726. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  40727. operator VkPhysicalDeviceCustomBorderColorFeaturesEXT const &() const VULKAN_HPP_NOEXCEPT
  40728. {
  40729. return *reinterpret_cast<const VkPhysicalDeviceCustomBorderColorFeaturesEXT *>( this );
  40730. }
  40731. operator VkPhysicalDeviceCustomBorderColorFeaturesEXT &() VULKAN_HPP_NOEXCEPT
  40732. {
  40733. return *reinterpret_cast<VkPhysicalDeviceCustomBorderColorFeaturesEXT *>( this );
  40734. }
  40735. #if defined( VULKAN_HPP_USE_REFLECT )
  40736. # if 14 <= VULKAN_HPP_CPP_VERSION
  40737. auto
  40738. # else
  40739. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
  40740. # endif
  40741. reflect() const VULKAN_HPP_NOEXCEPT
  40742. {
  40743. return std::tie( sType, pNext, customBorderColors, customBorderColorWithoutFormat );
  40744. }
  40745. #endif
  40746. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  40747. auto operator<=>( PhysicalDeviceCustomBorderColorFeaturesEXT const & ) const = default;
  40748. #else
  40749. bool operator==( PhysicalDeviceCustomBorderColorFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  40750. {
  40751. # if defined( VULKAN_HPP_USE_REFLECT )
  40752. return this->reflect() == rhs.reflect();
  40753. # else
  40754. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( customBorderColors == rhs.customBorderColors ) &&
  40755. ( customBorderColorWithoutFormat == rhs.customBorderColorWithoutFormat );
  40756. # endif
  40757. }
  40758. bool operator!=( PhysicalDeviceCustomBorderColorFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  40759. {
  40760. return !operator==( rhs );
  40761. }
  40762. #endif
  40763. public:
  40764. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceCustomBorderColorFeaturesEXT;
  40765. void * pNext = {};
  40766. VULKAN_HPP_NAMESPACE::Bool32 customBorderColors = {};
  40767. VULKAN_HPP_NAMESPACE::Bool32 customBorderColorWithoutFormat = {};
  40768. };
  40769. template <>
  40770. struct CppType<StructureType, StructureType::ePhysicalDeviceCustomBorderColorFeaturesEXT>
  40771. {
  40772. using Type = PhysicalDeviceCustomBorderColorFeaturesEXT;
  40773. };
  40774. struct PhysicalDeviceCustomBorderColorPropertiesEXT
  40775. {
  40776. using NativeType = VkPhysicalDeviceCustomBorderColorPropertiesEXT;
  40777. static const bool allowDuplicate = false;
  40778. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceCustomBorderColorPropertiesEXT;
  40779. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  40780. VULKAN_HPP_CONSTEXPR PhysicalDeviceCustomBorderColorPropertiesEXT( uint32_t maxCustomBorderColorSamplers_ = {},
  40781. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  40782. : pNext( pNext_ )
  40783. , maxCustomBorderColorSamplers( maxCustomBorderColorSamplers_ )
  40784. {
  40785. }
  40786. VULKAN_HPP_CONSTEXPR PhysicalDeviceCustomBorderColorPropertiesEXT( PhysicalDeviceCustomBorderColorPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  40787. PhysicalDeviceCustomBorderColorPropertiesEXT( VkPhysicalDeviceCustomBorderColorPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  40788. : PhysicalDeviceCustomBorderColorPropertiesEXT( *reinterpret_cast<PhysicalDeviceCustomBorderColorPropertiesEXT const *>( &rhs ) )
  40789. {
  40790. }
  40791. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  40792. PhysicalDeviceCustomBorderColorPropertiesEXT & operator=( PhysicalDeviceCustomBorderColorPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  40793. PhysicalDeviceCustomBorderColorPropertiesEXT & operator=( VkPhysicalDeviceCustomBorderColorPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  40794. {
  40795. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceCustomBorderColorPropertiesEXT const *>( &rhs );
  40796. return *this;
  40797. }
  40798. operator VkPhysicalDeviceCustomBorderColorPropertiesEXT const &() const VULKAN_HPP_NOEXCEPT
  40799. {
  40800. return *reinterpret_cast<const VkPhysicalDeviceCustomBorderColorPropertiesEXT *>( this );
  40801. }
  40802. operator VkPhysicalDeviceCustomBorderColorPropertiesEXT &() VULKAN_HPP_NOEXCEPT
  40803. {
  40804. return *reinterpret_cast<VkPhysicalDeviceCustomBorderColorPropertiesEXT *>( this );
  40805. }
  40806. #if defined( VULKAN_HPP_USE_REFLECT )
  40807. # if 14 <= VULKAN_HPP_CPP_VERSION
  40808. auto
  40809. # else
  40810. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, uint32_t const &>
  40811. # endif
  40812. reflect() const VULKAN_HPP_NOEXCEPT
  40813. {
  40814. return std::tie( sType, pNext, maxCustomBorderColorSamplers );
  40815. }
  40816. #endif
  40817. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  40818. auto operator<=>( PhysicalDeviceCustomBorderColorPropertiesEXT const & ) const = default;
  40819. #else
  40820. bool operator==( PhysicalDeviceCustomBorderColorPropertiesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  40821. {
  40822. # if defined( VULKAN_HPP_USE_REFLECT )
  40823. return this->reflect() == rhs.reflect();
  40824. # else
  40825. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( maxCustomBorderColorSamplers == rhs.maxCustomBorderColorSamplers );
  40826. # endif
  40827. }
  40828. bool operator!=( PhysicalDeviceCustomBorderColorPropertiesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  40829. {
  40830. return !operator==( rhs );
  40831. }
  40832. #endif
  40833. public:
  40834. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceCustomBorderColorPropertiesEXT;
  40835. void * pNext = {};
  40836. uint32_t maxCustomBorderColorSamplers = {};
  40837. };
  40838. template <>
  40839. struct CppType<StructureType, StructureType::ePhysicalDeviceCustomBorderColorPropertiesEXT>
  40840. {
  40841. using Type = PhysicalDeviceCustomBorderColorPropertiesEXT;
  40842. };
  40843. struct PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV
  40844. {
  40845. using NativeType = VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV;
  40846. static const bool allowDuplicate = false;
  40847. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV;
  40848. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  40849. VULKAN_HPP_CONSTEXPR PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV( VULKAN_HPP_NAMESPACE::Bool32 dedicatedAllocationImageAliasing_ = {},
  40850. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  40851. : pNext( pNext_ )
  40852. , dedicatedAllocationImageAliasing( dedicatedAllocationImageAliasing_ )
  40853. {
  40854. }
  40855. VULKAN_HPP_CONSTEXPR PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV( PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV const & rhs )
  40856. VULKAN_HPP_NOEXCEPT = default;
  40857. PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV( VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT
  40858. : PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV( *reinterpret_cast<PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV const *>( &rhs ) )
  40859. {
  40860. }
  40861. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  40862. PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV &
  40863. operator=( PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  40864. PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV &
  40865. operator=( VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT
  40866. {
  40867. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV const *>( &rhs );
  40868. return *this;
  40869. }
  40870. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  40871. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
  40872. {
  40873. pNext = pNext_;
  40874. return *this;
  40875. }
  40876. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV &
  40877. setDedicatedAllocationImageAliasing( VULKAN_HPP_NAMESPACE::Bool32 dedicatedAllocationImageAliasing_ ) VULKAN_HPP_NOEXCEPT
  40878. {
  40879. dedicatedAllocationImageAliasing = dedicatedAllocationImageAliasing_;
  40880. return *this;
  40881. }
  40882. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  40883. operator VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV const &() const VULKAN_HPP_NOEXCEPT
  40884. {
  40885. return *reinterpret_cast<const VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV *>( this );
  40886. }
  40887. operator VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV &() VULKAN_HPP_NOEXCEPT
  40888. {
  40889. return *reinterpret_cast<VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV *>( this );
  40890. }
  40891. #if defined( VULKAN_HPP_USE_REFLECT )
  40892. # if 14 <= VULKAN_HPP_CPP_VERSION
  40893. auto
  40894. # else
  40895. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
  40896. # endif
  40897. reflect() const VULKAN_HPP_NOEXCEPT
  40898. {
  40899. return std::tie( sType, pNext, dedicatedAllocationImageAliasing );
  40900. }
  40901. #endif
  40902. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  40903. auto operator<=>( PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV const & ) const = default;
  40904. #else
  40905. bool operator==( PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  40906. {
  40907. # if defined( VULKAN_HPP_USE_REFLECT )
  40908. return this->reflect() == rhs.reflect();
  40909. # else
  40910. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( dedicatedAllocationImageAliasing == rhs.dedicatedAllocationImageAliasing );
  40911. # endif
  40912. }
  40913. bool operator!=( PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  40914. {
  40915. return !operator==( rhs );
  40916. }
  40917. #endif
  40918. public:
  40919. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV;
  40920. void * pNext = {};
  40921. VULKAN_HPP_NAMESPACE::Bool32 dedicatedAllocationImageAliasing = {};
  40922. };
  40923. template <>
  40924. struct CppType<StructureType, StructureType::ePhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV>
  40925. {
  40926. using Type = PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV;
  40927. };
  40928. struct PhysicalDeviceDepthClampZeroOneFeaturesEXT
  40929. {
  40930. using NativeType = VkPhysicalDeviceDepthClampZeroOneFeaturesEXT;
  40931. static const bool allowDuplicate = false;
  40932. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceDepthClampZeroOneFeaturesEXT;
  40933. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  40934. VULKAN_HPP_CONSTEXPR PhysicalDeviceDepthClampZeroOneFeaturesEXT( VULKAN_HPP_NAMESPACE::Bool32 depthClampZeroOne_ = {},
  40935. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  40936. : pNext( pNext_ )
  40937. , depthClampZeroOne( depthClampZeroOne_ )
  40938. {
  40939. }
  40940. VULKAN_HPP_CONSTEXPR PhysicalDeviceDepthClampZeroOneFeaturesEXT( PhysicalDeviceDepthClampZeroOneFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  40941. PhysicalDeviceDepthClampZeroOneFeaturesEXT( VkPhysicalDeviceDepthClampZeroOneFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  40942. : PhysicalDeviceDepthClampZeroOneFeaturesEXT( *reinterpret_cast<PhysicalDeviceDepthClampZeroOneFeaturesEXT const *>( &rhs ) )
  40943. {
  40944. }
  40945. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  40946. PhysicalDeviceDepthClampZeroOneFeaturesEXT & operator=( PhysicalDeviceDepthClampZeroOneFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  40947. PhysicalDeviceDepthClampZeroOneFeaturesEXT & operator=( VkPhysicalDeviceDepthClampZeroOneFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  40948. {
  40949. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceDepthClampZeroOneFeaturesEXT const *>( &rhs );
  40950. return *this;
  40951. }
  40952. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  40953. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceDepthClampZeroOneFeaturesEXT & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
  40954. {
  40955. pNext = pNext_;
  40956. return *this;
  40957. }
  40958. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceDepthClampZeroOneFeaturesEXT &
  40959. setDepthClampZeroOne( VULKAN_HPP_NAMESPACE::Bool32 depthClampZeroOne_ ) VULKAN_HPP_NOEXCEPT
  40960. {
  40961. depthClampZeroOne = depthClampZeroOne_;
  40962. return *this;
  40963. }
  40964. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  40965. operator VkPhysicalDeviceDepthClampZeroOneFeaturesEXT const &() const VULKAN_HPP_NOEXCEPT
  40966. {
  40967. return *reinterpret_cast<const VkPhysicalDeviceDepthClampZeroOneFeaturesEXT *>( this );
  40968. }
  40969. operator VkPhysicalDeviceDepthClampZeroOneFeaturesEXT &() VULKAN_HPP_NOEXCEPT
  40970. {
  40971. return *reinterpret_cast<VkPhysicalDeviceDepthClampZeroOneFeaturesEXT *>( this );
  40972. }
  40973. #if defined( VULKAN_HPP_USE_REFLECT )
  40974. # if 14 <= VULKAN_HPP_CPP_VERSION
  40975. auto
  40976. # else
  40977. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
  40978. # endif
  40979. reflect() const VULKAN_HPP_NOEXCEPT
  40980. {
  40981. return std::tie( sType, pNext, depthClampZeroOne );
  40982. }
  40983. #endif
  40984. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  40985. auto operator<=>( PhysicalDeviceDepthClampZeroOneFeaturesEXT const & ) const = default;
  40986. #else
  40987. bool operator==( PhysicalDeviceDepthClampZeroOneFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  40988. {
  40989. # if defined( VULKAN_HPP_USE_REFLECT )
  40990. return this->reflect() == rhs.reflect();
  40991. # else
  40992. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( depthClampZeroOne == rhs.depthClampZeroOne );
  40993. # endif
  40994. }
  40995. bool operator!=( PhysicalDeviceDepthClampZeroOneFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  40996. {
  40997. return !operator==( rhs );
  40998. }
  40999. #endif
  41000. public:
  41001. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceDepthClampZeroOneFeaturesEXT;
  41002. void * pNext = {};
  41003. VULKAN_HPP_NAMESPACE::Bool32 depthClampZeroOne = {};
  41004. };
  41005. template <>
  41006. struct CppType<StructureType, StructureType::ePhysicalDeviceDepthClampZeroOneFeaturesEXT>
  41007. {
  41008. using Type = PhysicalDeviceDepthClampZeroOneFeaturesEXT;
  41009. };
  41010. struct PhysicalDeviceDepthClipControlFeaturesEXT
  41011. {
  41012. using NativeType = VkPhysicalDeviceDepthClipControlFeaturesEXT;
  41013. static const bool allowDuplicate = false;
  41014. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceDepthClipControlFeaturesEXT;
  41015. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  41016. VULKAN_HPP_CONSTEXPR PhysicalDeviceDepthClipControlFeaturesEXT( VULKAN_HPP_NAMESPACE::Bool32 depthClipControl_ = {},
  41017. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  41018. : pNext( pNext_ )
  41019. , depthClipControl( depthClipControl_ )
  41020. {
  41021. }
  41022. VULKAN_HPP_CONSTEXPR PhysicalDeviceDepthClipControlFeaturesEXT( PhysicalDeviceDepthClipControlFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  41023. PhysicalDeviceDepthClipControlFeaturesEXT( VkPhysicalDeviceDepthClipControlFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  41024. : PhysicalDeviceDepthClipControlFeaturesEXT( *reinterpret_cast<PhysicalDeviceDepthClipControlFeaturesEXT const *>( &rhs ) )
  41025. {
  41026. }
  41027. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  41028. PhysicalDeviceDepthClipControlFeaturesEXT & operator=( PhysicalDeviceDepthClipControlFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  41029. PhysicalDeviceDepthClipControlFeaturesEXT & operator=( VkPhysicalDeviceDepthClipControlFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  41030. {
  41031. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceDepthClipControlFeaturesEXT const *>( &rhs );
  41032. return *this;
  41033. }
  41034. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  41035. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceDepthClipControlFeaturesEXT & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
  41036. {
  41037. pNext = pNext_;
  41038. return *this;
  41039. }
  41040. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceDepthClipControlFeaturesEXT &
  41041. setDepthClipControl( VULKAN_HPP_NAMESPACE::Bool32 depthClipControl_ ) VULKAN_HPP_NOEXCEPT
  41042. {
  41043. depthClipControl = depthClipControl_;
  41044. return *this;
  41045. }
  41046. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  41047. operator VkPhysicalDeviceDepthClipControlFeaturesEXT const &() const VULKAN_HPP_NOEXCEPT
  41048. {
  41049. return *reinterpret_cast<const VkPhysicalDeviceDepthClipControlFeaturesEXT *>( this );
  41050. }
  41051. operator VkPhysicalDeviceDepthClipControlFeaturesEXT &() VULKAN_HPP_NOEXCEPT
  41052. {
  41053. return *reinterpret_cast<VkPhysicalDeviceDepthClipControlFeaturesEXT *>( this );
  41054. }
  41055. #if defined( VULKAN_HPP_USE_REFLECT )
  41056. # if 14 <= VULKAN_HPP_CPP_VERSION
  41057. auto
  41058. # else
  41059. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
  41060. # endif
  41061. reflect() const VULKAN_HPP_NOEXCEPT
  41062. {
  41063. return std::tie( sType, pNext, depthClipControl );
  41064. }
  41065. #endif
  41066. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  41067. auto operator<=>( PhysicalDeviceDepthClipControlFeaturesEXT const & ) const = default;
  41068. #else
  41069. bool operator==( PhysicalDeviceDepthClipControlFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  41070. {
  41071. # if defined( VULKAN_HPP_USE_REFLECT )
  41072. return this->reflect() == rhs.reflect();
  41073. # else
  41074. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( depthClipControl == rhs.depthClipControl );
  41075. # endif
  41076. }
  41077. bool operator!=( PhysicalDeviceDepthClipControlFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  41078. {
  41079. return !operator==( rhs );
  41080. }
  41081. #endif
  41082. public:
  41083. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceDepthClipControlFeaturesEXT;
  41084. void * pNext = {};
  41085. VULKAN_HPP_NAMESPACE::Bool32 depthClipControl = {};
  41086. };
  41087. template <>
  41088. struct CppType<StructureType, StructureType::ePhysicalDeviceDepthClipControlFeaturesEXT>
  41089. {
  41090. using Type = PhysicalDeviceDepthClipControlFeaturesEXT;
  41091. };
  41092. struct PhysicalDeviceDepthClipEnableFeaturesEXT
  41093. {
  41094. using NativeType = VkPhysicalDeviceDepthClipEnableFeaturesEXT;
  41095. static const bool allowDuplicate = false;
  41096. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceDepthClipEnableFeaturesEXT;
  41097. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  41098. VULKAN_HPP_CONSTEXPR PhysicalDeviceDepthClipEnableFeaturesEXT( VULKAN_HPP_NAMESPACE::Bool32 depthClipEnable_ = {},
  41099. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  41100. : pNext( pNext_ )
  41101. , depthClipEnable( depthClipEnable_ )
  41102. {
  41103. }
  41104. VULKAN_HPP_CONSTEXPR PhysicalDeviceDepthClipEnableFeaturesEXT( PhysicalDeviceDepthClipEnableFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  41105. PhysicalDeviceDepthClipEnableFeaturesEXT( VkPhysicalDeviceDepthClipEnableFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  41106. : PhysicalDeviceDepthClipEnableFeaturesEXT( *reinterpret_cast<PhysicalDeviceDepthClipEnableFeaturesEXT const *>( &rhs ) )
  41107. {
  41108. }
  41109. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  41110. PhysicalDeviceDepthClipEnableFeaturesEXT & operator=( PhysicalDeviceDepthClipEnableFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  41111. PhysicalDeviceDepthClipEnableFeaturesEXT & operator=( VkPhysicalDeviceDepthClipEnableFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  41112. {
  41113. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceDepthClipEnableFeaturesEXT const *>( &rhs );
  41114. return *this;
  41115. }
  41116. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  41117. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceDepthClipEnableFeaturesEXT & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
  41118. {
  41119. pNext = pNext_;
  41120. return *this;
  41121. }
  41122. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceDepthClipEnableFeaturesEXT & setDepthClipEnable( VULKAN_HPP_NAMESPACE::Bool32 depthClipEnable_ ) VULKAN_HPP_NOEXCEPT
  41123. {
  41124. depthClipEnable = depthClipEnable_;
  41125. return *this;
  41126. }
  41127. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  41128. operator VkPhysicalDeviceDepthClipEnableFeaturesEXT const &() const VULKAN_HPP_NOEXCEPT
  41129. {
  41130. return *reinterpret_cast<const VkPhysicalDeviceDepthClipEnableFeaturesEXT *>( this );
  41131. }
  41132. operator VkPhysicalDeviceDepthClipEnableFeaturesEXT &() VULKAN_HPP_NOEXCEPT
  41133. {
  41134. return *reinterpret_cast<VkPhysicalDeviceDepthClipEnableFeaturesEXT *>( this );
  41135. }
  41136. #if defined( VULKAN_HPP_USE_REFLECT )
  41137. # if 14 <= VULKAN_HPP_CPP_VERSION
  41138. auto
  41139. # else
  41140. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
  41141. # endif
  41142. reflect() const VULKAN_HPP_NOEXCEPT
  41143. {
  41144. return std::tie( sType, pNext, depthClipEnable );
  41145. }
  41146. #endif
  41147. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  41148. auto operator<=>( PhysicalDeviceDepthClipEnableFeaturesEXT const & ) const = default;
  41149. #else
  41150. bool operator==( PhysicalDeviceDepthClipEnableFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  41151. {
  41152. # if defined( VULKAN_HPP_USE_REFLECT )
  41153. return this->reflect() == rhs.reflect();
  41154. # else
  41155. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( depthClipEnable == rhs.depthClipEnable );
  41156. # endif
  41157. }
  41158. bool operator!=( PhysicalDeviceDepthClipEnableFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  41159. {
  41160. return !operator==( rhs );
  41161. }
  41162. #endif
  41163. public:
  41164. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceDepthClipEnableFeaturesEXT;
  41165. void * pNext = {};
  41166. VULKAN_HPP_NAMESPACE::Bool32 depthClipEnable = {};
  41167. };
  41168. template <>
  41169. struct CppType<StructureType, StructureType::ePhysicalDeviceDepthClipEnableFeaturesEXT>
  41170. {
  41171. using Type = PhysicalDeviceDepthClipEnableFeaturesEXT;
  41172. };
  41173. struct PhysicalDeviceDepthStencilResolveProperties
  41174. {
  41175. using NativeType = VkPhysicalDeviceDepthStencilResolveProperties;
  41176. static const bool allowDuplicate = false;
  41177. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceDepthStencilResolveProperties;
  41178. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  41179. VULKAN_HPP_CONSTEXPR PhysicalDeviceDepthStencilResolveProperties( VULKAN_HPP_NAMESPACE::ResolveModeFlags supportedDepthResolveModes_ = {},
  41180. VULKAN_HPP_NAMESPACE::ResolveModeFlags supportedStencilResolveModes_ = {},
  41181. VULKAN_HPP_NAMESPACE::Bool32 independentResolveNone_ = {},
  41182. VULKAN_HPP_NAMESPACE::Bool32 independentResolve_ = {},
  41183. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  41184. : pNext( pNext_ )
  41185. , supportedDepthResolveModes( supportedDepthResolveModes_ )
  41186. , supportedStencilResolveModes( supportedStencilResolveModes_ )
  41187. , independentResolveNone( independentResolveNone_ )
  41188. , independentResolve( independentResolve_ )
  41189. {
  41190. }
  41191. VULKAN_HPP_CONSTEXPR PhysicalDeviceDepthStencilResolveProperties( PhysicalDeviceDepthStencilResolveProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  41192. PhysicalDeviceDepthStencilResolveProperties( VkPhysicalDeviceDepthStencilResolveProperties const & rhs ) VULKAN_HPP_NOEXCEPT
  41193. : PhysicalDeviceDepthStencilResolveProperties( *reinterpret_cast<PhysicalDeviceDepthStencilResolveProperties const *>( &rhs ) )
  41194. {
  41195. }
  41196. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  41197. PhysicalDeviceDepthStencilResolveProperties & operator=( PhysicalDeviceDepthStencilResolveProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  41198. PhysicalDeviceDepthStencilResolveProperties & operator=( VkPhysicalDeviceDepthStencilResolveProperties const & rhs ) VULKAN_HPP_NOEXCEPT
  41199. {
  41200. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceDepthStencilResolveProperties const *>( &rhs );
  41201. return *this;
  41202. }
  41203. operator VkPhysicalDeviceDepthStencilResolveProperties const &() const VULKAN_HPP_NOEXCEPT
  41204. {
  41205. return *reinterpret_cast<const VkPhysicalDeviceDepthStencilResolveProperties *>( this );
  41206. }
  41207. operator VkPhysicalDeviceDepthStencilResolveProperties &() VULKAN_HPP_NOEXCEPT
  41208. {
  41209. return *reinterpret_cast<VkPhysicalDeviceDepthStencilResolveProperties *>( this );
  41210. }
  41211. #if defined( VULKAN_HPP_USE_REFLECT )
  41212. # if 14 <= VULKAN_HPP_CPP_VERSION
  41213. auto
  41214. # else
  41215. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  41216. void * const &,
  41217. VULKAN_HPP_NAMESPACE::ResolveModeFlags const &,
  41218. VULKAN_HPP_NAMESPACE::ResolveModeFlags const &,
  41219. VULKAN_HPP_NAMESPACE::Bool32 const &,
  41220. VULKAN_HPP_NAMESPACE::Bool32 const &>
  41221. # endif
  41222. reflect() const VULKAN_HPP_NOEXCEPT
  41223. {
  41224. return std::tie( sType, pNext, supportedDepthResolveModes, supportedStencilResolveModes, independentResolveNone, independentResolve );
  41225. }
  41226. #endif
  41227. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  41228. auto operator<=>( PhysicalDeviceDepthStencilResolveProperties const & ) const = default;
  41229. #else
  41230. bool operator==( PhysicalDeviceDepthStencilResolveProperties const & rhs ) const VULKAN_HPP_NOEXCEPT
  41231. {
  41232. # if defined( VULKAN_HPP_USE_REFLECT )
  41233. return this->reflect() == rhs.reflect();
  41234. # else
  41235. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( supportedDepthResolveModes == rhs.supportedDepthResolveModes ) &&
  41236. ( supportedStencilResolveModes == rhs.supportedStencilResolveModes ) && ( independentResolveNone == rhs.independentResolveNone ) &&
  41237. ( independentResolve == rhs.independentResolve );
  41238. # endif
  41239. }
  41240. bool operator!=( PhysicalDeviceDepthStencilResolveProperties const & rhs ) const VULKAN_HPP_NOEXCEPT
  41241. {
  41242. return !operator==( rhs );
  41243. }
  41244. #endif
  41245. public:
  41246. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceDepthStencilResolveProperties;
  41247. void * pNext = {};
  41248. VULKAN_HPP_NAMESPACE::ResolveModeFlags supportedDepthResolveModes = {};
  41249. VULKAN_HPP_NAMESPACE::ResolveModeFlags supportedStencilResolveModes = {};
  41250. VULKAN_HPP_NAMESPACE::Bool32 independentResolveNone = {};
  41251. VULKAN_HPP_NAMESPACE::Bool32 independentResolve = {};
  41252. };
  41253. template <>
  41254. struct CppType<StructureType, StructureType::ePhysicalDeviceDepthStencilResolveProperties>
  41255. {
  41256. using Type = PhysicalDeviceDepthStencilResolveProperties;
  41257. };
  41258. using PhysicalDeviceDepthStencilResolvePropertiesKHR = PhysicalDeviceDepthStencilResolveProperties;
  41259. struct PhysicalDeviceDescriptorIndexingFeatures
  41260. {
  41261. using NativeType = VkPhysicalDeviceDescriptorIndexingFeatures;
  41262. static const bool allowDuplicate = false;
  41263. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceDescriptorIndexingFeatures;
  41264. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  41265. VULKAN_HPP_CONSTEXPR PhysicalDeviceDescriptorIndexingFeatures( VULKAN_HPP_NAMESPACE::Bool32 shaderInputAttachmentArrayDynamicIndexing_ = {},
  41266. VULKAN_HPP_NAMESPACE::Bool32 shaderUniformTexelBufferArrayDynamicIndexing_ = {},
  41267. VULKAN_HPP_NAMESPACE::Bool32 shaderStorageTexelBufferArrayDynamicIndexing_ = {},
  41268. VULKAN_HPP_NAMESPACE::Bool32 shaderUniformBufferArrayNonUniformIndexing_ = {},
  41269. VULKAN_HPP_NAMESPACE::Bool32 shaderSampledImageArrayNonUniformIndexing_ = {},
  41270. VULKAN_HPP_NAMESPACE::Bool32 shaderStorageBufferArrayNonUniformIndexing_ = {},
  41271. VULKAN_HPP_NAMESPACE::Bool32 shaderStorageImageArrayNonUniformIndexing_ = {},
  41272. VULKAN_HPP_NAMESPACE::Bool32 shaderInputAttachmentArrayNonUniformIndexing_ = {},
  41273. VULKAN_HPP_NAMESPACE::Bool32 shaderUniformTexelBufferArrayNonUniformIndexing_ = {},
  41274. VULKAN_HPP_NAMESPACE::Bool32 shaderStorageTexelBufferArrayNonUniformIndexing_ = {},
  41275. VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingUniformBufferUpdateAfterBind_ = {},
  41276. VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingSampledImageUpdateAfterBind_ = {},
  41277. VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingStorageImageUpdateAfterBind_ = {},
  41278. VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingStorageBufferUpdateAfterBind_ = {},
  41279. VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingUniformTexelBufferUpdateAfterBind_ = {},
  41280. VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingStorageTexelBufferUpdateAfterBind_ = {},
  41281. VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingUpdateUnusedWhilePending_ = {},
  41282. VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingPartiallyBound_ = {},
  41283. VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingVariableDescriptorCount_ = {},
  41284. VULKAN_HPP_NAMESPACE::Bool32 runtimeDescriptorArray_ = {},
  41285. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  41286. : pNext( pNext_ )
  41287. , shaderInputAttachmentArrayDynamicIndexing( shaderInputAttachmentArrayDynamicIndexing_ )
  41288. , shaderUniformTexelBufferArrayDynamicIndexing( shaderUniformTexelBufferArrayDynamicIndexing_ )
  41289. , shaderStorageTexelBufferArrayDynamicIndexing( shaderStorageTexelBufferArrayDynamicIndexing_ )
  41290. , shaderUniformBufferArrayNonUniformIndexing( shaderUniformBufferArrayNonUniformIndexing_ )
  41291. , shaderSampledImageArrayNonUniformIndexing( shaderSampledImageArrayNonUniformIndexing_ )
  41292. , shaderStorageBufferArrayNonUniformIndexing( shaderStorageBufferArrayNonUniformIndexing_ )
  41293. , shaderStorageImageArrayNonUniformIndexing( shaderStorageImageArrayNonUniformIndexing_ )
  41294. , shaderInputAttachmentArrayNonUniformIndexing( shaderInputAttachmentArrayNonUniformIndexing_ )
  41295. , shaderUniformTexelBufferArrayNonUniformIndexing( shaderUniformTexelBufferArrayNonUniformIndexing_ )
  41296. , shaderStorageTexelBufferArrayNonUniformIndexing( shaderStorageTexelBufferArrayNonUniformIndexing_ )
  41297. , descriptorBindingUniformBufferUpdateAfterBind( descriptorBindingUniformBufferUpdateAfterBind_ )
  41298. , descriptorBindingSampledImageUpdateAfterBind( descriptorBindingSampledImageUpdateAfterBind_ )
  41299. , descriptorBindingStorageImageUpdateAfterBind( descriptorBindingStorageImageUpdateAfterBind_ )
  41300. , descriptorBindingStorageBufferUpdateAfterBind( descriptorBindingStorageBufferUpdateAfterBind_ )
  41301. , descriptorBindingUniformTexelBufferUpdateAfterBind( descriptorBindingUniformTexelBufferUpdateAfterBind_ )
  41302. , descriptorBindingStorageTexelBufferUpdateAfterBind( descriptorBindingStorageTexelBufferUpdateAfterBind_ )
  41303. , descriptorBindingUpdateUnusedWhilePending( descriptorBindingUpdateUnusedWhilePending_ )
  41304. , descriptorBindingPartiallyBound( descriptorBindingPartiallyBound_ )
  41305. , descriptorBindingVariableDescriptorCount( descriptorBindingVariableDescriptorCount_ )
  41306. , runtimeDescriptorArray( runtimeDescriptorArray_ )
  41307. {
  41308. }
  41309. VULKAN_HPP_CONSTEXPR PhysicalDeviceDescriptorIndexingFeatures( PhysicalDeviceDescriptorIndexingFeatures const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  41310. PhysicalDeviceDescriptorIndexingFeatures( VkPhysicalDeviceDescriptorIndexingFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
  41311. : PhysicalDeviceDescriptorIndexingFeatures( *reinterpret_cast<PhysicalDeviceDescriptorIndexingFeatures const *>( &rhs ) )
  41312. {
  41313. }
  41314. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  41315. PhysicalDeviceDescriptorIndexingFeatures & operator=( PhysicalDeviceDescriptorIndexingFeatures const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  41316. PhysicalDeviceDescriptorIndexingFeatures & operator=( VkPhysicalDeviceDescriptorIndexingFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
  41317. {
  41318. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceDescriptorIndexingFeatures const *>( &rhs );
  41319. return *this;
  41320. }
  41321. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  41322. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceDescriptorIndexingFeatures & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
  41323. {
  41324. pNext = pNext_;
  41325. return *this;
  41326. }
  41327. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceDescriptorIndexingFeatures &
  41328. setShaderInputAttachmentArrayDynamicIndexing( VULKAN_HPP_NAMESPACE::Bool32 shaderInputAttachmentArrayDynamicIndexing_ ) VULKAN_HPP_NOEXCEPT
  41329. {
  41330. shaderInputAttachmentArrayDynamicIndexing = shaderInputAttachmentArrayDynamicIndexing_;
  41331. return *this;
  41332. }
  41333. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceDescriptorIndexingFeatures &
  41334. setShaderUniformTexelBufferArrayDynamicIndexing( VULKAN_HPP_NAMESPACE::Bool32 shaderUniformTexelBufferArrayDynamicIndexing_ ) VULKAN_HPP_NOEXCEPT
  41335. {
  41336. shaderUniformTexelBufferArrayDynamicIndexing = shaderUniformTexelBufferArrayDynamicIndexing_;
  41337. return *this;
  41338. }
  41339. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceDescriptorIndexingFeatures &
  41340. setShaderStorageTexelBufferArrayDynamicIndexing( VULKAN_HPP_NAMESPACE::Bool32 shaderStorageTexelBufferArrayDynamicIndexing_ ) VULKAN_HPP_NOEXCEPT
  41341. {
  41342. shaderStorageTexelBufferArrayDynamicIndexing = shaderStorageTexelBufferArrayDynamicIndexing_;
  41343. return *this;
  41344. }
  41345. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceDescriptorIndexingFeatures &
  41346. setShaderUniformBufferArrayNonUniformIndexing( VULKAN_HPP_NAMESPACE::Bool32 shaderUniformBufferArrayNonUniformIndexing_ ) VULKAN_HPP_NOEXCEPT
  41347. {
  41348. shaderUniformBufferArrayNonUniformIndexing = shaderUniformBufferArrayNonUniformIndexing_;
  41349. return *this;
  41350. }
  41351. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceDescriptorIndexingFeatures &
  41352. setShaderSampledImageArrayNonUniformIndexing( VULKAN_HPP_NAMESPACE::Bool32 shaderSampledImageArrayNonUniformIndexing_ ) VULKAN_HPP_NOEXCEPT
  41353. {
  41354. shaderSampledImageArrayNonUniformIndexing = shaderSampledImageArrayNonUniformIndexing_;
  41355. return *this;
  41356. }
  41357. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceDescriptorIndexingFeatures &
  41358. setShaderStorageBufferArrayNonUniformIndexing( VULKAN_HPP_NAMESPACE::Bool32 shaderStorageBufferArrayNonUniformIndexing_ ) VULKAN_HPP_NOEXCEPT
  41359. {
  41360. shaderStorageBufferArrayNonUniformIndexing = shaderStorageBufferArrayNonUniformIndexing_;
  41361. return *this;
  41362. }
  41363. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceDescriptorIndexingFeatures &
  41364. setShaderStorageImageArrayNonUniformIndexing( VULKAN_HPP_NAMESPACE::Bool32 shaderStorageImageArrayNonUniformIndexing_ ) VULKAN_HPP_NOEXCEPT
  41365. {
  41366. shaderStorageImageArrayNonUniformIndexing = shaderStorageImageArrayNonUniformIndexing_;
  41367. return *this;
  41368. }
  41369. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceDescriptorIndexingFeatures &
  41370. setShaderInputAttachmentArrayNonUniformIndexing( VULKAN_HPP_NAMESPACE::Bool32 shaderInputAttachmentArrayNonUniformIndexing_ ) VULKAN_HPP_NOEXCEPT
  41371. {
  41372. shaderInputAttachmentArrayNonUniformIndexing = shaderInputAttachmentArrayNonUniformIndexing_;
  41373. return *this;
  41374. }
  41375. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceDescriptorIndexingFeatures &
  41376. setShaderUniformTexelBufferArrayNonUniformIndexing( VULKAN_HPP_NAMESPACE::Bool32 shaderUniformTexelBufferArrayNonUniformIndexing_ ) VULKAN_HPP_NOEXCEPT
  41377. {
  41378. shaderUniformTexelBufferArrayNonUniformIndexing = shaderUniformTexelBufferArrayNonUniformIndexing_;
  41379. return *this;
  41380. }
  41381. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceDescriptorIndexingFeatures &
  41382. setShaderStorageTexelBufferArrayNonUniformIndexing( VULKAN_HPP_NAMESPACE::Bool32 shaderStorageTexelBufferArrayNonUniformIndexing_ ) VULKAN_HPP_NOEXCEPT
  41383. {
  41384. shaderStorageTexelBufferArrayNonUniformIndexing = shaderStorageTexelBufferArrayNonUniformIndexing_;
  41385. return *this;
  41386. }
  41387. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceDescriptorIndexingFeatures &
  41388. setDescriptorBindingUniformBufferUpdateAfterBind( VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingUniformBufferUpdateAfterBind_ ) VULKAN_HPP_NOEXCEPT
  41389. {
  41390. descriptorBindingUniformBufferUpdateAfterBind = descriptorBindingUniformBufferUpdateAfterBind_;
  41391. return *this;
  41392. }
  41393. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceDescriptorIndexingFeatures &
  41394. setDescriptorBindingSampledImageUpdateAfterBind( VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingSampledImageUpdateAfterBind_ ) VULKAN_HPP_NOEXCEPT
  41395. {
  41396. descriptorBindingSampledImageUpdateAfterBind = descriptorBindingSampledImageUpdateAfterBind_;
  41397. return *this;
  41398. }
  41399. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceDescriptorIndexingFeatures &
  41400. setDescriptorBindingStorageImageUpdateAfterBind( VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingStorageImageUpdateAfterBind_ ) VULKAN_HPP_NOEXCEPT
  41401. {
  41402. descriptorBindingStorageImageUpdateAfterBind = descriptorBindingStorageImageUpdateAfterBind_;
  41403. return *this;
  41404. }
  41405. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceDescriptorIndexingFeatures &
  41406. setDescriptorBindingStorageBufferUpdateAfterBind( VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingStorageBufferUpdateAfterBind_ ) VULKAN_HPP_NOEXCEPT
  41407. {
  41408. descriptorBindingStorageBufferUpdateAfterBind = descriptorBindingStorageBufferUpdateAfterBind_;
  41409. return *this;
  41410. }
  41411. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceDescriptorIndexingFeatures & setDescriptorBindingUniformTexelBufferUpdateAfterBind(
  41412. VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingUniformTexelBufferUpdateAfterBind_ ) VULKAN_HPP_NOEXCEPT
  41413. {
  41414. descriptorBindingUniformTexelBufferUpdateAfterBind = descriptorBindingUniformTexelBufferUpdateAfterBind_;
  41415. return *this;
  41416. }
  41417. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceDescriptorIndexingFeatures & setDescriptorBindingStorageTexelBufferUpdateAfterBind(
  41418. VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingStorageTexelBufferUpdateAfterBind_ ) VULKAN_HPP_NOEXCEPT
  41419. {
  41420. descriptorBindingStorageTexelBufferUpdateAfterBind = descriptorBindingStorageTexelBufferUpdateAfterBind_;
  41421. return *this;
  41422. }
  41423. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceDescriptorIndexingFeatures &
  41424. setDescriptorBindingUpdateUnusedWhilePending( VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingUpdateUnusedWhilePending_ ) VULKAN_HPP_NOEXCEPT
  41425. {
  41426. descriptorBindingUpdateUnusedWhilePending = descriptorBindingUpdateUnusedWhilePending_;
  41427. return *this;
  41428. }
  41429. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceDescriptorIndexingFeatures &
  41430. setDescriptorBindingPartiallyBound( VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingPartiallyBound_ ) VULKAN_HPP_NOEXCEPT
  41431. {
  41432. descriptorBindingPartiallyBound = descriptorBindingPartiallyBound_;
  41433. return *this;
  41434. }
  41435. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceDescriptorIndexingFeatures &
  41436. setDescriptorBindingVariableDescriptorCount( VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingVariableDescriptorCount_ ) VULKAN_HPP_NOEXCEPT
  41437. {
  41438. descriptorBindingVariableDescriptorCount = descriptorBindingVariableDescriptorCount_;
  41439. return *this;
  41440. }
  41441. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceDescriptorIndexingFeatures &
  41442. setRuntimeDescriptorArray( VULKAN_HPP_NAMESPACE::Bool32 runtimeDescriptorArray_ ) VULKAN_HPP_NOEXCEPT
  41443. {
  41444. runtimeDescriptorArray = runtimeDescriptorArray_;
  41445. return *this;
  41446. }
  41447. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  41448. operator VkPhysicalDeviceDescriptorIndexingFeatures const &() const VULKAN_HPP_NOEXCEPT
  41449. {
  41450. return *reinterpret_cast<const VkPhysicalDeviceDescriptorIndexingFeatures *>( this );
  41451. }
  41452. operator VkPhysicalDeviceDescriptorIndexingFeatures &() VULKAN_HPP_NOEXCEPT
  41453. {
  41454. return *reinterpret_cast<VkPhysicalDeviceDescriptorIndexingFeatures *>( this );
  41455. }
  41456. #if defined( VULKAN_HPP_USE_REFLECT )
  41457. # if 14 <= VULKAN_HPP_CPP_VERSION
  41458. auto
  41459. # else
  41460. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  41461. void * const &,
  41462. VULKAN_HPP_NAMESPACE::Bool32 const &,
  41463. VULKAN_HPP_NAMESPACE::Bool32 const &,
  41464. VULKAN_HPP_NAMESPACE::Bool32 const &,
  41465. VULKAN_HPP_NAMESPACE::Bool32 const &,
  41466. VULKAN_HPP_NAMESPACE::Bool32 const &,
  41467. VULKAN_HPP_NAMESPACE::Bool32 const &,
  41468. VULKAN_HPP_NAMESPACE::Bool32 const &,
  41469. VULKAN_HPP_NAMESPACE::Bool32 const &,
  41470. VULKAN_HPP_NAMESPACE::Bool32 const &,
  41471. VULKAN_HPP_NAMESPACE::Bool32 const &,
  41472. VULKAN_HPP_NAMESPACE::Bool32 const &,
  41473. VULKAN_HPP_NAMESPACE::Bool32 const &,
  41474. VULKAN_HPP_NAMESPACE::Bool32 const &,
  41475. VULKAN_HPP_NAMESPACE::Bool32 const &,
  41476. VULKAN_HPP_NAMESPACE::Bool32 const &,
  41477. VULKAN_HPP_NAMESPACE::Bool32 const &,
  41478. VULKAN_HPP_NAMESPACE::Bool32 const &,
  41479. VULKAN_HPP_NAMESPACE::Bool32 const &,
  41480. VULKAN_HPP_NAMESPACE::Bool32 const &,
  41481. VULKAN_HPP_NAMESPACE::Bool32 const &>
  41482. # endif
  41483. reflect() const VULKAN_HPP_NOEXCEPT
  41484. {
  41485. return std::tie( sType,
  41486. pNext,
  41487. shaderInputAttachmentArrayDynamicIndexing,
  41488. shaderUniformTexelBufferArrayDynamicIndexing,
  41489. shaderStorageTexelBufferArrayDynamicIndexing,
  41490. shaderUniformBufferArrayNonUniformIndexing,
  41491. shaderSampledImageArrayNonUniformIndexing,
  41492. shaderStorageBufferArrayNonUniformIndexing,
  41493. shaderStorageImageArrayNonUniformIndexing,
  41494. shaderInputAttachmentArrayNonUniformIndexing,
  41495. shaderUniformTexelBufferArrayNonUniformIndexing,
  41496. shaderStorageTexelBufferArrayNonUniformIndexing,
  41497. descriptorBindingUniformBufferUpdateAfterBind,
  41498. descriptorBindingSampledImageUpdateAfterBind,
  41499. descriptorBindingStorageImageUpdateAfterBind,
  41500. descriptorBindingStorageBufferUpdateAfterBind,
  41501. descriptorBindingUniformTexelBufferUpdateAfterBind,
  41502. descriptorBindingStorageTexelBufferUpdateAfterBind,
  41503. descriptorBindingUpdateUnusedWhilePending,
  41504. descriptorBindingPartiallyBound,
  41505. descriptorBindingVariableDescriptorCount,
  41506. runtimeDescriptorArray );
  41507. }
  41508. #endif
  41509. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  41510. auto operator<=>( PhysicalDeviceDescriptorIndexingFeatures const & ) const = default;
  41511. #else
  41512. bool operator==( PhysicalDeviceDescriptorIndexingFeatures const & rhs ) const VULKAN_HPP_NOEXCEPT
  41513. {
  41514. # if defined( VULKAN_HPP_USE_REFLECT )
  41515. return this->reflect() == rhs.reflect();
  41516. # else
  41517. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) &&
  41518. ( shaderInputAttachmentArrayDynamicIndexing == rhs.shaderInputAttachmentArrayDynamicIndexing ) &&
  41519. ( shaderUniformTexelBufferArrayDynamicIndexing == rhs.shaderUniformTexelBufferArrayDynamicIndexing ) &&
  41520. ( shaderStorageTexelBufferArrayDynamicIndexing == rhs.shaderStorageTexelBufferArrayDynamicIndexing ) &&
  41521. ( shaderUniformBufferArrayNonUniformIndexing == rhs.shaderUniformBufferArrayNonUniformIndexing ) &&
  41522. ( shaderSampledImageArrayNonUniformIndexing == rhs.shaderSampledImageArrayNonUniformIndexing ) &&
  41523. ( shaderStorageBufferArrayNonUniformIndexing == rhs.shaderStorageBufferArrayNonUniformIndexing ) &&
  41524. ( shaderStorageImageArrayNonUniformIndexing == rhs.shaderStorageImageArrayNonUniformIndexing ) &&
  41525. ( shaderInputAttachmentArrayNonUniformIndexing == rhs.shaderInputAttachmentArrayNonUniformIndexing ) &&
  41526. ( shaderUniformTexelBufferArrayNonUniformIndexing == rhs.shaderUniformTexelBufferArrayNonUniformIndexing ) &&
  41527. ( shaderStorageTexelBufferArrayNonUniformIndexing == rhs.shaderStorageTexelBufferArrayNonUniformIndexing ) &&
  41528. ( descriptorBindingUniformBufferUpdateAfterBind == rhs.descriptorBindingUniformBufferUpdateAfterBind ) &&
  41529. ( descriptorBindingSampledImageUpdateAfterBind == rhs.descriptorBindingSampledImageUpdateAfterBind ) &&
  41530. ( descriptorBindingStorageImageUpdateAfterBind == rhs.descriptorBindingStorageImageUpdateAfterBind ) &&
  41531. ( descriptorBindingStorageBufferUpdateAfterBind == rhs.descriptorBindingStorageBufferUpdateAfterBind ) &&
  41532. ( descriptorBindingUniformTexelBufferUpdateAfterBind == rhs.descriptorBindingUniformTexelBufferUpdateAfterBind ) &&
  41533. ( descriptorBindingStorageTexelBufferUpdateAfterBind == rhs.descriptorBindingStorageTexelBufferUpdateAfterBind ) &&
  41534. ( descriptorBindingUpdateUnusedWhilePending == rhs.descriptorBindingUpdateUnusedWhilePending ) &&
  41535. ( descriptorBindingPartiallyBound == rhs.descriptorBindingPartiallyBound ) &&
  41536. ( descriptorBindingVariableDescriptorCount == rhs.descriptorBindingVariableDescriptorCount ) &&
  41537. ( runtimeDescriptorArray == rhs.runtimeDescriptorArray );
  41538. # endif
  41539. }
  41540. bool operator!=( PhysicalDeviceDescriptorIndexingFeatures const & rhs ) const VULKAN_HPP_NOEXCEPT
  41541. {
  41542. return !operator==( rhs );
  41543. }
  41544. #endif
  41545. public:
  41546. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceDescriptorIndexingFeatures;
  41547. void * pNext = {};
  41548. VULKAN_HPP_NAMESPACE::Bool32 shaderInputAttachmentArrayDynamicIndexing = {};
  41549. VULKAN_HPP_NAMESPACE::Bool32 shaderUniformTexelBufferArrayDynamicIndexing = {};
  41550. VULKAN_HPP_NAMESPACE::Bool32 shaderStorageTexelBufferArrayDynamicIndexing = {};
  41551. VULKAN_HPP_NAMESPACE::Bool32 shaderUniformBufferArrayNonUniformIndexing = {};
  41552. VULKAN_HPP_NAMESPACE::Bool32 shaderSampledImageArrayNonUniformIndexing = {};
  41553. VULKAN_HPP_NAMESPACE::Bool32 shaderStorageBufferArrayNonUniformIndexing = {};
  41554. VULKAN_HPP_NAMESPACE::Bool32 shaderStorageImageArrayNonUniformIndexing = {};
  41555. VULKAN_HPP_NAMESPACE::Bool32 shaderInputAttachmentArrayNonUniformIndexing = {};
  41556. VULKAN_HPP_NAMESPACE::Bool32 shaderUniformTexelBufferArrayNonUniformIndexing = {};
  41557. VULKAN_HPP_NAMESPACE::Bool32 shaderStorageTexelBufferArrayNonUniformIndexing = {};
  41558. VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingUniformBufferUpdateAfterBind = {};
  41559. VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingSampledImageUpdateAfterBind = {};
  41560. VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingStorageImageUpdateAfterBind = {};
  41561. VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingStorageBufferUpdateAfterBind = {};
  41562. VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingUniformTexelBufferUpdateAfterBind = {};
  41563. VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingStorageTexelBufferUpdateAfterBind = {};
  41564. VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingUpdateUnusedWhilePending = {};
  41565. VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingPartiallyBound = {};
  41566. VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingVariableDescriptorCount = {};
  41567. VULKAN_HPP_NAMESPACE::Bool32 runtimeDescriptorArray = {};
  41568. };
  41569. template <>
  41570. struct CppType<StructureType, StructureType::ePhysicalDeviceDescriptorIndexingFeatures>
  41571. {
  41572. using Type = PhysicalDeviceDescriptorIndexingFeatures;
  41573. };
  41574. using PhysicalDeviceDescriptorIndexingFeaturesEXT = PhysicalDeviceDescriptorIndexingFeatures;
  41575. struct PhysicalDeviceDescriptorIndexingProperties
  41576. {
  41577. using NativeType = VkPhysicalDeviceDescriptorIndexingProperties;
  41578. static const bool allowDuplicate = false;
  41579. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceDescriptorIndexingProperties;
  41580. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  41581. VULKAN_HPP_CONSTEXPR PhysicalDeviceDescriptorIndexingProperties( uint32_t maxUpdateAfterBindDescriptorsInAllPools_ = {},
  41582. VULKAN_HPP_NAMESPACE::Bool32 shaderUniformBufferArrayNonUniformIndexingNative_ = {},
  41583. VULKAN_HPP_NAMESPACE::Bool32 shaderSampledImageArrayNonUniformIndexingNative_ = {},
  41584. VULKAN_HPP_NAMESPACE::Bool32 shaderStorageBufferArrayNonUniformIndexingNative_ = {},
  41585. VULKAN_HPP_NAMESPACE::Bool32 shaderStorageImageArrayNonUniformIndexingNative_ = {},
  41586. VULKAN_HPP_NAMESPACE::Bool32 shaderInputAttachmentArrayNonUniformIndexingNative_ = {},
  41587. VULKAN_HPP_NAMESPACE::Bool32 robustBufferAccessUpdateAfterBind_ = {},
  41588. VULKAN_HPP_NAMESPACE::Bool32 quadDivergentImplicitLod_ = {},
  41589. uint32_t maxPerStageDescriptorUpdateAfterBindSamplers_ = {},
  41590. uint32_t maxPerStageDescriptorUpdateAfterBindUniformBuffers_ = {},
  41591. uint32_t maxPerStageDescriptorUpdateAfterBindStorageBuffers_ = {},
  41592. uint32_t maxPerStageDescriptorUpdateAfterBindSampledImages_ = {},
  41593. uint32_t maxPerStageDescriptorUpdateAfterBindStorageImages_ = {},
  41594. uint32_t maxPerStageDescriptorUpdateAfterBindInputAttachments_ = {},
  41595. uint32_t maxPerStageUpdateAfterBindResources_ = {},
  41596. uint32_t maxDescriptorSetUpdateAfterBindSamplers_ = {},
  41597. uint32_t maxDescriptorSetUpdateAfterBindUniformBuffers_ = {},
  41598. uint32_t maxDescriptorSetUpdateAfterBindUniformBuffersDynamic_ = {},
  41599. uint32_t maxDescriptorSetUpdateAfterBindStorageBuffers_ = {},
  41600. uint32_t maxDescriptorSetUpdateAfterBindStorageBuffersDynamic_ = {},
  41601. uint32_t maxDescriptorSetUpdateAfterBindSampledImages_ = {},
  41602. uint32_t maxDescriptorSetUpdateAfterBindStorageImages_ = {},
  41603. uint32_t maxDescriptorSetUpdateAfterBindInputAttachments_ = {},
  41604. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  41605. : pNext( pNext_ )
  41606. , maxUpdateAfterBindDescriptorsInAllPools( maxUpdateAfterBindDescriptorsInAllPools_ )
  41607. , shaderUniformBufferArrayNonUniformIndexingNative( shaderUniformBufferArrayNonUniformIndexingNative_ )
  41608. , shaderSampledImageArrayNonUniformIndexingNative( shaderSampledImageArrayNonUniformIndexingNative_ )
  41609. , shaderStorageBufferArrayNonUniformIndexingNative( shaderStorageBufferArrayNonUniformIndexingNative_ )
  41610. , shaderStorageImageArrayNonUniformIndexingNative( shaderStorageImageArrayNonUniformIndexingNative_ )
  41611. , shaderInputAttachmentArrayNonUniformIndexingNative( shaderInputAttachmentArrayNonUniformIndexingNative_ )
  41612. , robustBufferAccessUpdateAfterBind( robustBufferAccessUpdateAfterBind_ )
  41613. , quadDivergentImplicitLod( quadDivergentImplicitLod_ )
  41614. , maxPerStageDescriptorUpdateAfterBindSamplers( maxPerStageDescriptorUpdateAfterBindSamplers_ )
  41615. , maxPerStageDescriptorUpdateAfterBindUniformBuffers( maxPerStageDescriptorUpdateAfterBindUniformBuffers_ )
  41616. , maxPerStageDescriptorUpdateAfterBindStorageBuffers( maxPerStageDescriptorUpdateAfterBindStorageBuffers_ )
  41617. , maxPerStageDescriptorUpdateAfterBindSampledImages( maxPerStageDescriptorUpdateAfterBindSampledImages_ )
  41618. , maxPerStageDescriptorUpdateAfterBindStorageImages( maxPerStageDescriptorUpdateAfterBindStorageImages_ )
  41619. , maxPerStageDescriptorUpdateAfterBindInputAttachments( maxPerStageDescriptorUpdateAfterBindInputAttachments_ )
  41620. , maxPerStageUpdateAfterBindResources( maxPerStageUpdateAfterBindResources_ )
  41621. , maxDescriptorSetUpdateAfterBindSamplers( maxDescriptorSetUpdateAfterBindSamplers_ )
  41622. , maxDescriptorSetUpdateAfterBindUniformBuffers( maxDescriptorSetUpdateAfterBindUniformBuffers_ )
  41623. , maxDescriptorSetUpdateAfterBindUniformBuffersDynamic( maxDescriptorSetUpdateAfterBindUniformBuffersDynamic_ )
  41624. , maxDescriptorSetUpdateAfterBindStorageBuffers( maxDescriptorSetUpdateAfterBindStorageBuffers_ )
  41625. , maxDescriptorSetUpdateAfterBindStorageBuffersDynamic( maxDescriptorSetUpdateAfterBindStorageBuffersDynamic_ )
  41626. , maxDescriptorSetUpdateAfterBindSampledImages( maxDescriptorSetUpdateAfterBindSampledImages_ )
  41627. , maxDescriptorSetUpdateAfterBindStorageImages( maxDescriptorSetUpdateAfterBindStorageImages_ )
  41628. , maxDescriptorSetUpdateAfterBindInputAttachments( maxDescriptorSetUpdateAfterBindInputAttachments_ )
  41629. {
  41630. }
  41631. VULKAN_HPP_CONSTEXPR PhysicalDeviceDescriptorIndexingProperties( PhysicalDeviceDescriptorIndexingProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  41632. PhysicalDeviceDescriptorIndexingProperties( VkPhysicalDeviceDescriptorIndexingProperties const & rhs ) VULKAN_HPP_NOEXCEPT
  41633. : PhysicalDeviceDescriptorIndexingProperties( *reinterpret_cast<PhysicalDeviceDescriptorIndexingProperties const *>( &rhs ) )
  41634. {
  41635. }
  41636. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  41637. PhysicalDeviceDescriptorIndexingProperties & operator=( PhysicalDeviceDescriptorIndexingProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  41638. PhysicalDeviceDescriptorIndexingProperties & operator=( VkPhysicalDeviceDescriptorIndexingProperties const & rhs ) VULKAN_HPP_NOEXCEPT
  41639. {
  41640. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceDescriptorIndexingProperties const *>( &rhs );
  41641. return *this;
  41642. }
  41643. operator VkPhysicalDeviceDescriptorIndexingProperties const &() const VULKAN_HPP_NOEXCEPT
  41644. {
  41645. return *reinterpret_cast<const VkPhysicalDeviceDescriptorIndexingProperties *>( this );
  41646. }
  41647. operator VkPhysicalDeviceDescriptorIndexingProperties &() VULKAN_HPP_NOEXCEPT
  41648. {
  41649. return *reinterpret_cast<VkPhysicalDeviceDescriptorIndexingProperties *>( this );
  41650. }
  41651. #if defined( VULKAN_HPP_USE_REFLECT )
  41652. # if 14 <= VULKAN_HPP_CPP_VERSION
  41653. auto
  41654. # else
  41655. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  41656. void * const &,
  41657. uint32_t const &,
  41658. VULKAN_HPP_NAMESPACE::Bool32 const &,
  41659. VULKAN_HPP_NAMESPACE::Bool32 const &,
  41660. VULKAN_HPP_NAMESPACE::Bool32 const &,
  41661. VULKAN_HPP_NAMESPACE::Bool32 const &,
  41662. VULKAN_HPP_NAMESPACE::Bool32 const &,
  41663. VULKAN_HPP_NAMESPACE::Bool32 const &,
  41664. VULKAN_HPP_NAMESPACE::Bool32 const &,
  41665. uint32_t const &,
  41666. uint32_t const &,
  41667. uint32_t const &,
  41668. uint32_t const &,
  41669. uint32_t const &,
  41670. uint32_t const &,
  41671. uint32_t const &,
  41672. uint32_t const &,
  41673. uint32_t const &,
  41674. uint32_t const &,
  41675. uint32_t const &,
  41676. uint32_t const &,
  41677. uint32_t const &,
  41678. uint32_t const &,
  41679. uint32_t const &>
  41680. # endif
  41681. reflect() const VULKAN_HPP_NOEXCEPT
  41682. {
  41683. return std::tie( sType,
  41684. pNext,
  41685. maxUpdateAfterBindDescriptorsInAllPools,
  41686. shaderUniformBufferArrayNonUniformIndexingNative,
  41687. shaderSampledImageArrayNonUniformIndexingNative,
  41688. shaderStorageBufferArrayNonUniformIndexingNative,
  41689. shaderStorageImageArrayNonUniformIndexingNative,
  41690. shaderInputAttachmentArrayNonUniformIndexingNative,
  41691. robustBufferAccessUpdateAfterBind,
  41692. quadDivergentImplicitLod,
  41693. maxPerStageDescriptorUpdateAfterBindSamplers,
  41694. maxPerStageDescriptorUpdateAfterBindUniformBuffers,
  41695. maxPerStageDescriptorUpdateAfterBindStorageBuffers,
  41696. maxPerStageDescriptorUpdateAfterBindSampledImages,
  41697. maxPerStageDescriptorUpdateAfterBindStorageImages,
  41698. maxPerStageDescriptorUpdateAfterBindInputAttachments,
  41699. maxPerStageUpdateAfterBindResources,
  41700. maxDescriptorSetUpdateAfterBindSamplers,
  41701. maxDescriptorSetUpdateAfterBindUniformBuffers,
  41702. maxDescriptorSetUpdateAfterBindUniformBuffersDynamic,
  41703. maxDescriptorSetUpdateAfterBindStorageBuffers,
  41704. maxDescriptorSetUpdateAfterBindStorageBuffersDynamic,
  41705. maxDescriptorSetUpdateAfterBindSampledImages,
  41706. maxDescriptorSetUpdateAfterBindStorageImages,
  41707. maxDescriptorSetUpdateAfterBindInputAttachments );
  41708. }
  41709. #endif
  41710. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  41711. auto operator<=>( PhysicalDeviceDescriptorIndexingProperties const & ) const = default;
  41712. #else
  41713. bool operator==( PhysicalDeviceDescriptorIndexingProperties const & rhs ) const VULKAN_HPP_NOEXCEPT
  41714. {
  41715. # if defined( VULKAN_HPP_USE_REFLECT )
  41716. return this->reflect() == rhs.reflect();
  41717. # else
  41718. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( maxUpdateAfterBindDescriptorsInAllPools == rhs.maxUpdateAfterBindDescriptorsInAllPools ) &&
  41719. ( shaderUniformBufferArrayNonUniformIndexingNative == rhs.shaderUniformBufferArrayNonUniformIndexingNative ) &&
  41720. ( shaderSampledImageArrayNonUniformIndexingNative == rhs.shaderSampledImageArrayNonUniformIndexingNative ) &&
  41721. ( shaderStorageBufferArrayNonUniformIndexingNative == rhs.shaderStorageBufferArrayNonUniformIndexingNative ) &&
  41722. ( shaderStorageImageArrayNonUniformIndexingNative == rhs.shaderStorageImageArrayNonUniformIndexingNative ) &&
  41723. ( shaderInputAttachmentArrayNonUniformIndexingNative == rhs.shaderInputAttachmentArrayNonUniformIndexingNative ) &&
  41724. ( robustBufferAccessUpdateAfterBind == rhs.robustBufferAccessUpdateAfterBind ) && ( quadDivergentImplicitLod == rhs.quadDivergentImplicitLod ) &&
  41725. ( maxPerStageDescriptorUpdateAfterBindSamplers == rhs.maxPerStageDescriptorUpdateAfterBindSamplers ) &&
  41726. ( maxPerStageDescriptorUpdateAfterBindUniformBuffers == rhs.maxPerStageDescriptorUpdateAfterBindUniformBuffers ) &&
  41727. ( maxPerStageDescriptorUpdateAfterBindStorageBuffers == rhs.maxPerStageDescriptorUpdateAfterBindStorageBuffers ) &&
  41728. ( maxPerStageDescriptorUpdateAfterBindSampledImages == rhs.maxPerStageDescriptorUpdateAfterBindSampledImages ) &&
  41729. ( maxPerStageDescriptorUpdateAfterBindStorageImages == rhs.maxPerStageDescriptorUpdateAfterBindStorageImages ) &&
  41730. ( maxPerStageDescriptorUpdateAfterBindInputAttachments == rhs.maxPerStageDescriptorUpdateAfterBindInputAttachments ) &&
  41731. ( maxPerStageUpdateAfterBindResources == rhs.maxPerStageUpdateAfterBindResources ) &&
  41732. ( maxDescriptorSetUpdateAfterBindSamplers == rhs.maxDescriptorSetUpdateAfterBindSamplers ) &&
  41733. ( maxDescriptorSetUpdateAfterBindUniformBuffers == rhs.maxDescriptorSetUpdateAfterBindUniformBuffers ) &&
  41734. ( maxDescriptorSetUpdateAfterBindUniformBuffersDynamic == rhs.maxDescriptorSetUpdateAfterBindUniformBuffersDynamic ) &&
  41735. ( maxDescriptorSetUpdateAfterBindStorageBuffers == rhs.maxDescriptorSetUpdateAfterBindStorageBuffers ) &&
  41736. ( maxDescriptorSetUpdateAfterBindStorageBuffersDynamic == rhs.maxDescriptorSetUpdateAfterBindStorageBuffersDynamic ) &&
  41737. ( maxDescriptorSetUpdateAfterBindSampledImages == rhs.maxDescriptorSetUpdateAfterBindSampledImages ) &&
  41738. ( maxDescriptorSetUpdateAfterBindStorageImages == rhs.maxDescriptorSetUpdateAfterBindStorageImages ) &&
  41739. ( maxDescriptorSetUpdateAfterBindInputAttachments == rhs.maxDescriptorSetUpdateAfterBindInputAttachments );
  41740. # endif
  41741. }
  41742. bool operator!=( PhysicalDeviceDescriptorIndexingProperties const & rhs ) const VULKAN_HPP_NOEXCEPT
  41743. {
  41744. return !operator==( rhs );
  41745. }
  41746. #endif
  41747. public:
  41748. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceDescriptorIndexingProperties;
  41749. void * pNext = {};
  41750. uint32_t maxUpdateAfterBindDescriptorsInAllPools = {};
  41751. VULKAN_HPP_NAMESPACE::Bool32 shaderUniformBufferArrayNonUniformIndexingNative = {};
  41752. VULKAN_HPP_NAMESPACE::Bool32 shaderSampledImageArrayNonUniformIndexingNative = {};
  41753. VULKAN_HPP_NAMESPACE::Bool32 shaderStorageBufferArrayNonUniformIndexingNative = {};
  41754. VULKAN_HPP_NAMESPACE::Bool32 shaderStorageImageArrayNonUniformIndexingNative = {};
  41755. VULKAN_HPP_NAMESPACE::Bool32 shaderInputAttachmentArrayNonUniformIndexingNative = {};
  41756. VULKAN_HPP_NAMESPACE::Bool32 robustBufferAccessUpdateAfterBind = {};
  41757. VULKAN_HPP_NAMESPACE::Bool32 quadDivergentImplicitLod = {};
  41758. uint32_t maxPerStageDescriptorUpdateAfterBindSamplers = {};
  41759. uint32_t maxPerStageDescriptorUpdateAfterBindUniformBuffers = {};
  41760. uint32_t maxPerStageDescriptorUpdateAfterBindStorageBuffers = {};
  41761. uint32_t maxPerStageDescriptorUpdateAfterBindSampledImages = {};
  41762. uint32_t maxPerStageDescriptorUpdateAfterBindStorageImages = {};
  41763. uint32_t maxPerStageDescriptorUpdateAfterBindInputAttachments = {};
  41764. uint32_t maxPerStageUpdateAfterBindResources = {};
  41765. uint32_t maxDescriptorSetUpdateAfterBindSamplers = {};
  41766. uint32_t maxDescriptorSetUpdateAfterBindUniformBuffers = {};
  41767. uint32_t maxDescriptorSetUpdateAfterBindUniformBuffersDynamic = {};
  41768. uint32_t maxDescriptorSetUpdateAfterBindStorageBuffers = {};
  41769. uint32_t maxDescriptorSetUpdateAfterBindStorageBuffersDynamic = {};
  41770. uint32_t maxDescriptorSetUpdateAfterBindSampledImages = {};
  41771. uint32_t maxDescriptorSetUpdateAfterBindStorageImages = {};
  41772. uint32_t maxDescriptorSetUpdateAfterBindInputAttachments = {};
  41773. };
  41774. template <>
  41775. struct CppType<StructureType, StructureType::ePhysicalDeviceDescriptorIndexingProperties>
  41776. {
  41777. using Type = PhysicalDeviceDescriptorIndexingProperties;
  41778. };
  41779. using PhysicalDeviceDescriptorIndexingPropertiesEXT = PhysicalDeviceDescriptorIndexingProperties;
  41780. struct PhysicalDeviceDescriptorSetHostMappingFeaturesVALVE
  41781. {
  41782. using NativeType = VkPhysicalDeviceDescriptorSetHostMappingFeaturesVALVE;
  41783. static const bool allowDuplicate = false;
  41784. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceDescriptorSetHostMappingFeaturesVALVE;
  41785. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  41786. VULKAN_HPP_CONSTEXPR PhysicalDeviceDescriptorSetHostMappingFeaturesVALVE( VULKAN_HPP_NAMESPACE::Bool32 descriptorSetHostMapping_ = {},
  41787. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  41788. : pNext( pNext_ )
  41789. , descriptorSetHostMapping( descriptorSetHostMapping_ )
  41790. {
  41791. }
  41792. VULKAN_HPP_CONSTEXPR
  41793. PhysicalDeviceDescriptorSetHostMappingFeaturesVALVE( PhysicalDeviceDescriptorSetHostMappingFeaturesVALVE const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  41794. PhysicalDeviceDescriptorSetHostMappingFeaturesVALVE( VkPhysicalDeviceDescriptorSetHostMappingFeaturesVALVE const & rhs ) VULKAN_HPP_NOEXCEPT
  41795. : PhysicalDeviceDescriptorSetHostMappingFeaturesVALVE( *reinterpret_cast<PhysicalDeviceDescriptorSetHostMappingFeaturesVALVE const *>( &rhs ) )
  41796. {
  41797. }
  41798. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  41799. PhysicalDeviceDescriptorSetHostMappingFeaturesVALVE &
  41800. operator=( PhysicalDeviceDescriptorSetHostMappingFeaturesVALVE const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  41801. PhysicalDeviceDescriptorSetHostMappingFeaturesVALVE & operator=( VkPhysicalDeviceDescriptorSetHostMappingFeaturesVALVE const & rhs ) VULKAN_HPP_NOEXCEPT
  41802. {
  41803. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceDescriptorSetHostMappingFeaturesVALVE const *>( &rhs );
  41804. return *this;
  41805. }
  41806. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  41807. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceDescriptorSetHostMappingFeaturesVALVE & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
  41808. {
  41809. pNext = pNext_;
  41810. return *this;
  41811. }
  41812. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceDescriptorSetHostMappingFeaturesVALVE &
  41813. setDescriptorSetHostMapping( VULKAN_HPP_NAMESPACE::Bool32 descriptorSetHostMapping_ ) VULKAN_HPP_NOEXCEPT
  41814. {
  41815. descriptorSetHostMapping = descriptorSetHostMapping_;
  41816. return *this;
  41817. }
  41818. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  41819. operator VkPhysicalDeviceDescriptorSetHostMappingFeaturesVALVE const &() const VULKAN_HPP_NOEXCEPT
  41820. {
  41821. return *reinterpret_cast<const VkPhysicalDeviceDescriptorSetHostMappingFeaturesVALVE *>( this );
  41822. }
  41823. operator VkPhysicalDeviceDescriptorSetHostMappingFeaturesVALVE &() VULKAN_HPP_NOEXCEPT
  41824. {
  41825. return *reinterpret_cast<VkPhysicalDeviceDescriptorSetHostMappingFeaturesVALVE *>( this );
  41826. }
  41827. #if defined( VULKAN_HPP_USE_REFLECT )
  41828. # if 14 <= VULKAN_HPP_CPP_VERSION
  41829. auto
  41830. # else
  41831. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
  41832. # endif
  41833. reflect() const VULKAN_HPP_NOEXCEPT
  41834. {
  41835. return std::tie( sType, pNext, descriptorSetHostMapping );
  41836. }
  41837. #endif
  41838. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  41839. auto operator<=>( PhysicalDeviceDescriptorSetHostMappingFeaturesVALVE const & ) const = default;
  41840. #else
  41841. bool operator==( PhysicalDeviceDescriptorSetHostMappingFeaturesVALVE const & rhs ) const VULKAN_HPP_NOEXCEPT
  41842. {
  41843. # if defined( VULKAN_HPP_USE_REFLECT )
  41844. return this->reflect() == rhs.reflect();
  41845. # else
  41846. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( descriptorSetHostMapping == rhs.descriptorSetHostMapping );
  41847. # endif
  41848. }
  41849. bool operator!=( PhysicalDeviceDescriptorSetHostMappingFeaturesVALVE const & rhs ) const VULKAN_HPP_NOEXCEPT
  41850. {
  41851. return !operator==( rhs );
  41852. }
  41853. #endif
  41854. public:
  41855. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceDescriptorSetHostMappingFeaturesVALVE;
  41856. void * pNext = {};
  41857. VULKAN_HPP_NAMESPACE::Bool32 descriptorSetHostMapping = {};
  41858. };
  41859. template <>
  41860. struct CppType<StructureType, StructureType::ePhysicalDeviceDescriptorSetHostMappingFeaturesVALVE>
  41861. {
  41862. using Type = PhysicalDeviceDescriptorSetHostMappingFeaturesVALVE;
  41863. };
  41864. struct PhysicalDeviceDeviceGeneratedCommandsFeaturesNV
  41865. {
  41866. using NativeType = VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV;
  41867. static const bool allowDuplicate = false;
  41868. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceDeviceGeneratedCommandsFeaturesNV;
  41869. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  41870. VULKAN_HPP_CONSTEXPR PhysicalDeviceDeviceGeneratedCommandsFeaturesNV( VULKAN_HPP_NAMESPACE::Bool32 deviceGeneratedCommands_ = {},
  41871. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  41872. : pNext( pNext_ )
  41873. , deviceGeneratedCommands( deviceGeneratedCommands_ )
  41874. {
  41875. }
  41876. VULKAN_HPP_CONSTEXPR
  41877. PhysicalDeviceDeviceGeneratedCommandsFeaturesNV( PhysicalDeviceDeviceGeneratedCommandsFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  41878. PhysicalDeviceDeviceGeneratedCommandsFeaturesNV( VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT
  41879. : PhysicalDeviceDeviceGeneratedCommandsFeaturesNV( *reinterpret_cast<PhysicalDeviceDeviceGeneratedCommandsFeaturesNV const *>( &rhs ) )
  41880. {
  41881. }
  41882. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  41883. PhysicalDeviceDeviceGeneratedCommandsFeaturesNV & operator=( PhysicalDeviceDeviceGeneratedCommandsFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  41884. PhysicalDeviceDeviceGeneratedCommandsFeaturesNV & operator=( VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT
  41885. {
  41886. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceDeviceGeneratedCommandsFeaturesNV const *>( &rhs );
  41887. return *this;
  41888. }
  41889. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  41890. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceDeviceGeneratedCommandsFeaturesNV & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
  41891. {
  41892. pNext = pNext_;
  41893. return *this;
  41894. }
  41895. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceDeviceGeneratedCommandsFeaturesNV &
  41896. setDeviceGeneratedCommands( VULKAN_HPP_NAMESPACE::Bool32 deviceGeneratedCommands_ ) VULKAN_HPP_NOEXCEPT
  41897. {
  41898. deviceGeneratedCommands = deviceGeneratedCommands_;
  41899. return *this;
  41900. }
  41901. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  41902. operator VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV const &() const VULKAN_HPP_NOEXCEPT
  41903. {
  41904. return *reinterpret_cast<const VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV *>( this );
  41905. }
  41906. operator VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV &() VULKAN_HPP_NOEXCEPT
  41907. {
  41908. return *reinterpret_cast<VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV *>( this );
  41909. }
  41910. #if defined( VULKAN_HPP_USE_REFLECT )
  41911. # if 14 <= VULKAN_HPP_CPP_VERSION
  41912. auto
  41913. # else
  41914. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
  41915. # endif
  41916. reflect() const VULKAN_HPP_NOEXCEPT
  41917. {
  41918. return std::tie( sType, pNext, deviceGeneratedCommands );
  41919. }
  41920. #endif
  41921. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  41922. auto operator<=>( PhysicalDeviceDeviceGeneratedCommandsFeaturesNV const & ) const = default;
  41923. #else
  41924. bool operator==( PhysicalDeviceDeviceGeneratedCommandsFeaturesNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  41925. {
  41926. # if defined( VULKAN_HPP_USE_REFLECT )
  41927. return this->reflect() == rhs.reflect();
  41928. # else
  41929. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( deviceGeneratedCommands == rhs.deviceGeneratedCommands );
  41930. # endif
  41931. }
  41932. bool operator!=( PhysicalDeviceDeviceGeneratedCommandsFeaturesNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  41933. {
  41934. return !operator==( rhs );
  41935. }
  41936. #endif
  41937. public:
  41938. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceDeviceGeneratedCommandsFeaturesNV;
  41939. void * pNext = {};
  41940. VULKAN_HPP_NAMESPACE::Bool32 deviceGeneratedCommands = {};
  41941. };
  41942. template <>
  41943. struct CppType<StructureType, StructureType::ePhysicalDeviceDeviceGeneratedCommandsFeaturesNV>
  41944. {
  41945. using Type = PhysicalDeviceDeviceGeneratedCommandsFeaturesNV;
  41946. };
  41947. struct PhysicalDeviceDeviceGeneratedCommandsPropertiesNV
  41948. {
  41949. using NativeType = VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV;
  41950. static const bool allowDuplicate = false;
  41951. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceDeviceGeneratedCommandsPropertiesNV;
  41952. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  41953. VULKAN_HPP_CONSTEXPR PhysicalDeviceDeviceGeneratedCommandsPropertiesNV( uint32_t maxGraphicsShaderGroupCount_ = {},
  41954. uint32_t maxIndirectSequenceCount_ = {},
  41955. uint32_t maxIndirectCommandsTokenCount_ = {},
  41956. uint32_t maxIndirectCommandsStreamCount_ = {},
  41957. uint32_t maxIndirectCommandsTokenOffset_ = {},
  41958. uint32_t maxIndirectCommandsStreamStride_ = {},
  41959. uint32_t minSequencesCountBufferOffsetAlignment_ = {},
  41960. uint32_t minSequencesIndexBufferOffsetAlignment_ = {},
  41961. uint32_t minIndirectCommandsBufferOffsetAlignment_ = {},
  41962. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  41963. : pNext( pNext_ )
  41964. , maxGraphicsShaderGroupCount( maxGraphicsShaderGroupCount_ )
  41965. , maxIndirectSequenceCount( maxIndirectSequenceCount_ )
  41966. , maxIndirectCommandsTokenCount( maxIndirectCommandsTokenCount_ )
  41967. , maxIndirectCommandsStreamCount( maxIndirectCommandsStreamCount_ )
  41968. , maxIndirectCommandsTokenOffset( maxIndirectCommandsTokenOffset_ )
  41969. , maxIndirectCommandsStreamStride( maxIndirectCommandsStreamStride_ )
  41970. , minSequencesCountBufferOffsetAlignment( minSequencesCountBufferOffsetAlignment_ )
  41971. , minSequencesIndexBufferOffsetAlignment( minSequencesIndexBufferOffsetAlignment_ )
  41972. , minIndirectCommandsBufferOffsetAlignment( minIndirectCommandsBufferOffsetAlignment_ )
  41973. {
  41974. }
  41975. VULKAN_HPP_CONSTEXPR
  41976. PhysicalDeviceDeviceGeneratedCommandsPropertiesNV( PhysicalDeviceDeviceGeneratedCommandsPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  41977. PhysicalDeviceDeviceGeneratedCommandsPropertiesNV( VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT
  41978. : PhysicalDeviceDeviceGeneratedCommandsPropertiesNV( *reinterpret_cast<PhysicalDeviceDeviceGeneratedCommandsPropertiesNV const *>( &rhs ) )
  41979. {
  41980. }
  41981. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  41982. PhysicalDeviceDeviceGeneratedCommandsPropertiesNV &
  41983. operator=( PhysicalDeviceDeviceGeneratedCommandsPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  41984. PhysicalDeviceDeviceGeneratedCommandsPropertiesNV & operator=( VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT
  41985. {
  41986. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceDeviceGeneratedCommandsPropertiesNV const *>( &rhs );
  41987. return *this;
  41988. }
  41989. operator VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV const &() const VULKAN_HPP_NOEXCEPT
  41990. {
  41991. return *reinterpret_cast<const VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV *>( this );
  41992. }
  41993. operator VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV &() VULKAN_HPP_NOEXCEPT
  41994. {
  41995. return *reinterpret_cast<VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV *>( this );
  41996. }
  41997. #if defined( VULKAN_HPP_USE_REFLECT )
  41998. # if 14 <= VULKAN_HPP_CPP_VERSION
  41999. auto
  42000. # else
  42001. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  42002. void * const &,
  42003. uint32_t const &,
  42004. uint32_t const &,
  42005. uint32_t const &,
  42006. uint32_t const &,
  42007. uint32_t const &,
  42008. uint32_t const &,
  42009. uint32_t const &,
  42010. uint32_t const &,
  42011. uint32_t const &>
  42012. # endif
  42013. reflect() const VULKAN_HPP_NOEXCEPT
  42014. {
  42015. return std::tie( sType,
  42016. pNext,
  42017. maxGraphicsShaderGroupCount,
  42018. maxIndirectSequenceCount,
  42019. maxIndirectCommandsTokenCount,
  42020. maxIndirectCommandsStreamCount,
  42021. maxIndirectCommandsTokenOffset,
  42022. maxIndirectCommandsStreamStride,
  42023. minSequencesCountBufferOffsetAlignment,
  42024. minSequencesIndexBufferOffsetAlignment,
  42025. minIndirectCommandsBufferOffsetAlignment );
  42026. }
  42027. #endif
  42028. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  42029. auto operator<=>( PhysicalDeviceDeviceGeneratedCommandsPropertiesNV const & ) const = default;
  42030. #else
  42031. bool operator==( PhysicalDeviceDeviceGeneratedCommandsPropertiesNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  42032. {
  42033. # if defined( VULKAN_HPP_USE_REFLECT )
  42034. return this->reflect() == rhs.reflect();
  42035. # else
  42036. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( maxGraphicsShaderGroupCount == rhs.maxGraphicsShaderGroupCount ) &&
  42037. ( maxIndirectSequenceCount == rhs.maxIndirectSequenceCount ) && ( maxIndirectCommandsTokenCount == rhs.maxIndirectCommandsTokenCount ) &&
  42038. ( maxIndirectCommandsStreamCount == rhs.maxIndirectCommandsStreamCount ) &&
  42039. ( maxIndirectCommandsTokenOffset == rhs.maxIndirectCommandsTokenOffset ) &&
  42040. ( maxIndirectCommandsStreamStride == rhs.maxIndirectCommandsStreamStride ) &&
  42041. ( minSequencesCountBufferOffsetAlignment == rhs.minSequencesCountBufferOffsetAlignment ) &&
  42042. ( minSequencesIndexBufferOffsetAlignment == rhs.minSequencesIndexBufferOffsetAlignment ) &&
  42043. ( minIndirectCommandsBufferOffsetAlignment == rhs.minIndirectCommandsBufferOffsetAlignment );
  42044. # endif
  42045. }
  42046. bool operator!=( PhysicalDeviceDeviceGeneratedCommandsPropertiesNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  42047. {
  42048. return !operator==( rhs );
  42049. }
  42050. #endif
  42051. public:
  42052. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceDeviceGeneratedCommandsPropertiesNV;
  42053. void * pNext = {};
  42054. uint32_t maxGraphicsShaderGroupCount = {};
  42055. uint32_t maxIndirectSequenceCount = {};
  42056. uint32_t maxIndirectCommandsTokenCount = {};
  42057. uint32_t maxIndirectCommandsStreamCount = {};
  42058. uint32_t maxIndirectCommandsTokenOffset = {};
  42059. uint32_t maxIndirectCommandsStreamStride = {};
  42060. uint32_t minSequencesCountBufferOffsetAlignment = {};
  42061. uint32_t minSequencesIndexBufferOffsetAlignment = {};
  42062. uint32_t minIndirectCommandsBufferOffsetAlignment = {};
  42063. };
  42064. template <>
  42065. struct CppType<StructureType, StructureType::ePhysicalDeviceDeviceGeneratedCommandsPropertiesNV>
  42066. {
  42067. using Type = PhysicalDeviceDeviceGeneratedCommandsPropertiesNV;
  42068. };
  42069. struct PhysicalDeviceDeviceMemoryReportFeaturesEXT
  42070. {
  42071. using NativeType = VkPhysicalDeviceDeviceMemoryReportFeaturesEXT;
  42072. static const bool allowDuplicate = false;
  42073. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceDeviceMemoryReportFeaturesEXT;
  42074. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  42075. VULKAN_HPP_CONSTEXPR PhysicalDeviceDeviceMemoryReportFeaturesEXT( VULKAN_HPP_NAMESPACE::Bool32 deviceMemoryReport_ = {},
  42076. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  42077. : pNext( pNext_ )
  42078. , deviceMemoryReport( deviceMemoryReport_ )
  42079. {
  42080. }
  42081. VULKAN_HPP_CONSTEXPR PhysicalDeviceDeviceMemoryReportFeaturesEXT( PhysicalDeviceDeviceMemoryReportFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  42082. PhysicalDeviceDeviceMemoryReportFeaturesEXT( VkPhysicalDeviceDeviceMemoryReportFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  42083. : PhysicalDeviceDeviceMemoryReportFeaturesEXT( *reinterpret_cast<PhysicalDeviceDeviceMemoryReportFeaturesEXT const *>( &rhs ) )
  42084. {
  42085. }
  42086. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  42087. PhysicalDeviceDeviceMemoryReportFeaturesEXT & operator=( PhysicalDeviceDeviceMemoryReportFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  42088. PhysicalDeviceDeviceMemoryReportFeaturesEXT & operator=( VkPhysicalDeviceDeviceMemoryReportFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  42089. {
  42090. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceDeviceMemoryReportFeaturesEXT const *>( &rhs );
  42091. return *this;
  42092. }
  42093. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  42094. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceDeviceMemoryReportFeaturesEXT & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
  42095. {
  42096. pNext = pNext_;
  42097. return *this;
  42098. }
  42099. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceDeviceMemoryReportFeaturesEXT &
  42100. setDeviceMemoryReport( VULKAN_HPP_NAMESPACE::Bool32 deviceMemoryReport_ ) VULKAN_HPP_NOEXCEPT
  42101. {
  42102. deviceMemoryReport = deviceMemoryReport_;
  42103. return *this;
  42104. }
  42105. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  42106. operator VkPhysicalDeviceDeviceMemoryReportFeaturesEXT const &() const VULKAN_HPP_NOEXCEPT
  42107. {
  42108. return *reinterpret_cast<const VkPhysicalDeviceDeviceMemoryReportFeaturesEXT *>( this );
  42109. }
  42110. operator VkPhysicalDeviceDeviceMemoryReportFeaturesEXT &() VULKAN_HPP_NOEXCEPT
  42111. {
  42112. return *reinterpret_cast<VkPhysicalDeviceDeviceMemoryReportFeaturesEXT *>( this );
  42113. }
  42114. #if defined( VULKAN_HPP_USE_REFLECT )
  42115. # if 14 <= VULKAN_HPP_CPP_VERSION
  42116. auto
  42117. # else
  42118. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
  42119. # endif
  42120. reflect() const VULKAN_HPP_NOEXCEPT
  42121. {
  42122. return std::tie( sType, pNext, deviceMemoryReport );
  42123. }
  42124. #endif
  42125. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  42126. auto operator<=>( PhysicalDeviceDeviceMemoryReportFeaturesEXT const & ) const = default;
  42127. #else
  42128. bool operator==( PhysicalDeviceDeviceMemoryReportFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  42129. {
  42130. # if defined( VULKAN_HPP_USE_REFLECT )
  42131. return this->reflect() == rhs.reflect();
  42132. # else
  42133. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( deviceMemoryReport == rhs.deviceMemoryReport );
  42134. # endif
  42135. }
  42136. bool operator!=( PhysicalDeviceDeviceMemoryReportFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  42137. {
  42138. return !operator==( rhs );
  42139. }
  42140. #endif
  42141. public:
  42142. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceDeviceMemoryReportFeaturesEXT;
  42143. void * pNext = {};
  42144. VULKAN_HPP_NAMESPACE::Bool32 deviceMemoryReport = {};
  42145. };
  42146. template <>
  42147. struct CppType<StructureType, StructureType::ePhysicalDeviceDeviceMemoryReportFeaturesEXT>
  42148. {
  42149. using Type = PhysicalDeviceDeviceMemoryReportFeaturesEXT;
  42150. };
  42151. struct PhysicalDeviceDiagnosticsConfigFeaturesNV
  42152. {
  42153. using NativeType = VkPhysicalDeviceDiagnosticsConfigFeaturesNV;
  42154. static const bool allowDuplicate = false;
  42155. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceDiagnosticsConfigFeaturesNV;
  42156. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  42157. VULKAN_HPP_CONSTEXPR PhysicalDeviceDiagnosticsConfigFeaturesNV( VULKAN_HPP_NAMESPACE::Bool32 diagnosticsConfig_ = {},
  42158. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  42159. : pNext( pNext_ )
  42160. , diagnosticsConfig( diagnosticsConfig_ )
  42161. {
  42162. }
  42163. VULKAN_HPP_CONSTEXPR PhysicalDeviceDiagnosticsConfigFeaturesNV( PhysicalDeviceDiagnosticsConfigFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  42164. PhysicalDeviceDiagnosticsConfigFeaturesNV( VkPhysicalDeviceDiagnosticsConfigFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT
  42165. : PhysicalDeviceDiagnosticsConfigFeaturesNV( *reinterpret_cast<PhysicalDeviceDiagnosticsConfigFeaturesNV const *>( &rhs ) )
  42166. {
  42167. }
  42168. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  42169. PhysicalDeviceDiagnosticsConfigFeaturesNV & operator=( PhysicalDeviceDiagnosticsConfigFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  42170. PhysicalDeviceDiagnosticsConfigFeaturesNV & operator=( VkPhysicalDeviceDiagnosticsConfigFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT
  42171. {
  42172. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceDiagnosticsConfigFeaturesNV const *>( &rhs );
  42173. return *this;
  42174. }
  42175. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  42176. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceDiagnosticsConfigFeaturesNV & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
  42177. {
  42178. pNext = pNext_;
  42179. return *this;
  42180. }
  42181. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceDiagnosticsConfigFeaturesNV &
  42182. setDiagnosticsConfig( VULKAN_HPP_NAMESPACE::Bool32 diagnosticsConfig_ ) VULKAN_HPP_NOEXCEPT
  42183. {
  42184. diagnosticsConfig = diagnosticsConfig_;
  42185. return *this;
  42186. }
  42187. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  42188. operator VkPhysicalDeviceDiagnosticsConfigFeaturesNV const &() const VULKAN_HPP_NOEXCEPT
  42189. {
  42190. return *reinterpret_cast<const VkPhysicalDeviceDiagnosticsConfigFeaturesNV *>( this );
  42191. }
  42192. operator VkPhysicalDeviceDiagnosticsConfigFeaturesNV &() VULKAN_HPP_NOEXCEPT
  42193. {
  42194. return *reinterpret_cast<VkPhysicalDeviceDiagnosticsConfigFeaturesNV *>( this );
  42195. }
  42196. #if defined( VULKAN_HPP_USE_REFLECT )
  42197. # if 14 <= VULKAN_HPP_CPP_VERSION
  42198. auto
  42199. # else
  42200. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
  42201. # endif
  42202. reflect() const VULKAN_HPP_NOEXCEPT
  42203. {
  42204. return std::tie( sType, pNext, diagnosticsConfig );
  42205. }
  42206. #endif
  42207. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  42208. auto operator<=>( PhysicalDeviceDiagnosticsConfigFeaturesNV const & ) const = default;
  42209. #else
  42210. bool operator==( PhysicalDeviceDiagnosticsConfigFeaturesNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  42211. {
  42212. # if defined( VULKAN_HPP_USE_REFLECT )
  42213. return this->reflect() == rhs.reflect();
  42214. # else
  42215. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( diagnosticsConfig == rhs.diagnosticsConfig );
  42216. # endif
  42217. }
  42218. bool operator!=( PhysicalDeviceDiagnosticsConfigFeaturesNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  42219. {
  42220. return !operator==( rhs );
  42221. }
  42222. #endif
  42223. public:
  42224. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceDiagnosticsConfigFeaturesNV;
  42225. void * pNext = {};
  42226. VULKAN_HPP_NAMESPACE::Bool32 diagnosticsConfig = {};
  42227. };
  42228. template <>
  42229. struct CppType<StructureType, StructureType::ePhysicalDeviceDiagnosticsConfigFeaturesNV>
  42230. {
  42231. using Type = PhysicalDeviceDiagnosticsConfigFeaturesNV;
  42232. };
  42233. struct PhysicalDeviceDiscardRectanglePropertiesEXT
  42234. {
  42235. using NativeType = VkPhysicalDeviceDiscardRectanglePropertiesEXT;
  42236. static const bool allowDuplicate = false;
  42237. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceDiscardRectanglePropertiesEXT;
  42238. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  42239. VULKAN_HPP_CONSTEXPR PhysicalDeviceDiscardRectanglePropertiesEXT( uint32_t maxDiscardRectangles_ = {}, void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  42240. : pNext( pNext_ )
  42241. , maxDiscardRectangles( maxDiscardRectangles_ )
  42242. {
  42243. }
  42244. VULKAN_HPP_CONSTEXPR PhysicalDeviceDiscardRectanglePropertiesEXT( PhysicalDeviceDiscardRectanglePropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  42245. PhysicalDeviceDiscardRectanglePropertiesEXT( VkPhysicalDeviceDiscardRectanglePropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  42246. : PhysicalDeviceDiscardRectanglePropertiesEXT( *reinterpret_cast<PhysicalDeviceDiscardRectanglePropertiesEXT const *>( &rhs ) )
  42247. {
  42248. }
  42249. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  42250. PhysicalDeviceDiscardRectanglePropertiesEXT & operator=( PhysicalDeviceDiscardRectanglePropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  42251. PhysicalDeviceDiscardRectanglePropertiesEXT & operator=( VkPhysicalDeviceDiscardRectanglePropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  42252. {
  42253. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceDiscardRectanglePropertiesEXT const *>( &rhs );
  42254. return *this;
  42255. }
  42256. operator VkPhysicalDeviceDiscardRectanglePropertiesEXT const &() const VULKAN_HPP_NOEXCEPT
  42257. {
  42258. return *reinterpret_cast<const VkPhysicalDeviceDiscardRectanglePropertiesEXT *>( this );
  42259. }
  42260. operator VkPhysicalDeviceDiscardRectanglePropertiesEXT &() VULKAN_HPP_NOEXCEPT
  42261. {
  42262. return *reinterpret_cast<VkPhysicalDeviceDiscardRectanglePropertiesEXT *>( this );
  42263. }
  42264. #if defined( VULKAN_HPP_USE_REFLECT )
  42265. # if 14 <= VULKAN_HPP_CPP_VERSION
  42266. auto
  42267. # else
  42268. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, uint32_t const &>
  42269. # endif
  42270. reflect() const VULKAN_HPP_NOEXCEPT
  42271. {
  42272. return std::tie( sType, pNext, maxDiscardRectangles );
  42273. }
  42274. #endif
  42275. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  42276. auto operator<=>( PhysicalDeviceDiscardRectanglePropertiesEXT const & ) const = default;
  42277. #else
  42278. bool operator==( PhysicalDeviceDiscardRectanglePropertiesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  42279. {
  42280. # if defined( VULKAN_HPP_USE_REFLECT )
  42281. return this->reflect() == rhs.reflect();
  42282. # else
  42283. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( maxDiscardRectangles == rhs.maxDiscardRectangles );
  42284. # endif
  42285. }
  42286. bool operator!=( PhysicalDeviceDiscardRectanglePropertiesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  42287. {
  42288. return !operator==( rhs );
  42289. }
  42290. #endif
  42291. public:
  42292. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceDiscardRectanglePropertiesEXT;
  42293. void * pNext = {};
  42294. uint32_t maxDiscardRectangles = {};
  42295. };
  42296. template <>
  42297. struct CppType<StructureType, StructureType::ePhysicalDeviceDiscardRectanglePropertiesEXT>
  42298. {
  42299. using Type = PhysicalDeviceDiscardRectanglePropertiesEXT;
  42300. };
  42301. struct PhysicalDeviceDriverProperties
  42302. {
  42303. using NativeType = VkPhysicalDeviceDriverProperties;
  42304. static const bool allowDuplicate = false;
  42305. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceDriverProperties;
  42306. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  42307. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceDriverProperties( VULKAN_HPP_NAMESPACE::DriverId driverID_ = VULKAN_HPP_NAMESPACE::DriverId::eAmdProprietary,
  42308. std::array<char, VK_MAX_DRIVER_NAME_SIZE> const & driverName_ = {},
  42309. std::array<char, VK_MAX_DRIVER_INFO_SIZE> const & driverInfo_ = {},
  42310. VULKAN_HPP_NAMESPACE::ConformanceVersion conformanceVersion_ = {},
  42311. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  42312. : pNext( pNext_ )
  42313. , driverID( driverID_ )
  42314. , driverName( driverName_ )
  42315. , driverInfo( driverInfo_ )
  42316. , conformanceVersion( conformanceVersion_ )
  42317. {
  42318. }
  42319. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceDriverProperties( PhysicalDeviceDriverProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  42320. PhysicalDeviceDriverProperties( VkPhysicalDeviceDriverProperties const & rhs ) VULKAN_HPP_NOEXCEPT
  42321. : PhysicalDeviceDriverProperties( *reinterpret_cast<PhysicalDeviceDriverProperties const *>( &rhs ) )
  42322. {
  42323. }
  42324. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  42325. PhysicalDeviceDriverProperties & operator=( PhysicalDeviceDriverProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  42326. PhysicalDeviceDriverProperties & operator=( VkPhysicalDeviceDriverProperties const & rhs ) VULKAN_HPP_NOEXCEPT
  42327. {
  42328. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceDriverProperties const *>( &rhs );
  42329. return *this;
  42330. }
  42331. operator VkPhysicalDeviceDriverProperties const &() const VULKAN_HPP_NOEXCEPT
  42332. {
  42333. return *reinterpret_cast<const VkPhysicalDeviceDriverProperties *>( this );
  42334. }
  42335. operator VkPhysicalDeviceDriverProperties &() VULKAN_HPP_NOEXCEPT
  42336. {
  42337. return *reinterpret_cast<VkPhysicalDeviceDriverProperties *>( this );
  42338. }
  42339. #if defined( VULKAN_HPP_USE_REFLECT )
  42340. # if 14 <= VULKAN_HPP_CPP_VERSION
  42341. auto
  42342. # else
  42343. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  42344. void * const &,
  42345. VULKAN_HPP_NAMESPACE::DriverId const &,
  42346. VULKAN_HPP_NAMESPACE::ArrayWrapper1D<char, VK_MAX_DRIVER_NAME_SIZE> const &,
  42347. VULKAN_HPP_NAMESPACE::ArrayWrapper1D<char, VK_MAX_DRIVER_INFO_SIZE> const &,
  42348. VULKAN_HPP_NAMESPACE::ConformanceVersion const &>
  42349. # endif
  42350. reflect() const VULKAN_HPP_NOEXCEPT
  42351. {
  42352. return std::tie( sType, pNext, driverID, driverName, driverInfo, conformanceVersion );
  42353. }
  42354. #endif
  42355. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  42356. auto operator<=>( PhysicalDeviceDriverProperties const & ) const = default;
  42357. #else
  42358. bool operator==( PhysicalDeviceDriverProperties const & rhs ) const VULKAN_HPP_NOEXCEPT
  42359. {
  42360. # if defined( VULKAN_HPP_USE_REFLECT )
  42361. return this->reflect() == rhs.reflect();
  42362. # else
  42363. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( driverID == rhs.driverID ) && ( driverName == rhs.driverName ) &&
  42364. ( driverInfo == rhs.driverInfo ) && ( conformanceVersion == rhs.conformanceVersion );
  42365. # endif
  42366. }
  42367. bool operator!=( PhysicalDeviceDriverProperties const & rhs ) const VULKAN_HPP_NOEXCEPT
  42368. {
  42369. return !operator==( rhs );
  42370. }
  42371. #endif
  42372. public:
  42373. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceDriverProperties;
  42374. void * pNext = {};
  42375. VULKAN_HPP_NAMESPACE::DriverId driverID = VULKAN_HPP_NAMESPACE::DriverId::eAmdProprietary;
  42376. VULKAN_HPP_NAMESPACE::ArrayWrapper1D<char, VK_MAX_DRIVER_NAME_SIZE> driverName = {};
  42377. VULKAN_HPP_NAMESPACE::ArrayWrapper1D<char, VK_MAX_DRIVER_INFO_SIZE> driverInfo = {};
  42378. VULKAN_HPP_NAMESPACE::ConformanceVersion conformanceVersion = {};
  42379. };
  42380. template <>
  42381. struct CppType<StructureType, StructureType::ePhysicalDeviceDriverProperties>
  42382. {
  42383. using Type = PhysicalDeviceDriverProperties;
  42384. };
  42385. using PhysicalDeviceDriverPropertiesKHR = PhysicalDeviceDriverProperties;
  42386. struct PhysicalDeviceDrmPropertiesEXT
  42387. {
  42388. using NativeType = VkPhysicalDeviceDrmPropertiesEXT;
  42389. static const bool allowDuplicate = false;
  42390. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceDrmPropertiesEXT;
  42391. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  42392. VULKAN_HPP_CONSTEXPR PhysicalDeviceDrmPropertiesEXT( VULKAN_HPP_NAMESPACE::Bool32 hasPrimary_ = {},
  42393. VULKAN_HPP_NAMESPACE::Bool32 hasRender_ = {},
  42394. int64_t primaryMajor_ = {},
  42395. int64_t primaryMinor_ = {},
  42396. int64_t renderMajor_ = {},
  42397. int64_t renderMinor_ = {},
  42398. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  42399. : pNext( pNext_ )
  42400. , hasPrimary( hasPrimary_ )
  42401. , hasRender( hasRender_ )
  42402. , primaryMajor( primaryMajor_ )
  42403. , primaryMinor( primaryMinor_ )
  42404. , renderMajor( renderMajor_ )
  42405. , renderMinor( renderMinor_ )
  42406. {
  42407. }
  42408. VULKAN_HPP_CONSTEXPR PhysicalDeviceDrmPropertiesEXT( PhysicalDeviceDrmPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  42409. PhysicalDeviceDrmPropertiesEXT( VkPhysicalDeviceDrmPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  42410. : PhysicalDeviceDrmPropertiesEXT( *reinterpret_cast<PhysicalDeviceDrmPropertiesEXT const *>( &rhs ) )
  42411. {
  42412. }
  42413. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  42414. PhysicalDeviceDrmPropertiesEXT & operator=( PhysicalDeviceDrmPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  42415. PhysicalDeviceDrmPropertiesEXT & operator=( VkPhysicalDeviceDrmPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  42416. {
  42417. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceDrmPropertiesEXT const *>( &rhs );
  42418. return *this;
  42419. }
  42420. operator VkPhysicalDeviceDrmPropertiesEXT const &() const VULKAN_HPP_NOEXCEPT
  42421. {
  42422. return *reinterpret_cast<const VkPhysicalDeviceDrmPropertiesEXT *>( this );
  42423. }
  42424. operator VkPhysicalDeviceDrmPropertiesEXT &() VULKAN_HPP_NOEXCEPT
  42425. {
  42426. return *reinterpret_cast<VkPhysicalDeviceDrmPropertiesEXT *>( this );
  42427. }
  42428. #if defined( VULKAN_HPP_USE_REFLECT )
  42429. # if 14 <= VULKAN_HPP_CPP_VERSION
  42430. auto
  42431. # else
  42432. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  42433. void * const &,
  42434. VULKAN_HPP_NAMESPACE::Bool32 const &,
  42435. VULKAN_HPP_NAMESPACE::Bool32 const &,
  42436. int64_t const &,
  42437. int64_t const &,
  42438. int64_t const &,
  42439. int64_t const &>
  42440. # endif
  42441. reflect() const VULKAN_HPP_NOEXCEPT
  42442. {
  42443. return std::tie( sType, pNext, hasPrimary, hasRender, primaryMajor, primaryMinor, renderMajor, renderMinor );
  42444. }
  42445. #endif
  42446. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  42447. auto operator<=>( PhysicalDeviceDrmPropertiesEXT const & ) const = default;
  42448. #else
  42449. bool operator==( PhysicalDeviceDrmPropertiesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  42450. {
  42451. # if defined( VULKAN_HPP_USE_REFLECT )
  42452. return this->reflect() == rhs.reflect();
  42453. # else
  42454. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( hasPrimary == rhs.hasPrimary ) && ( hasRender == rhs.hasRender ) &&
  42455. ( primaryMajor == rhs.primaryMajor ) && ( primaryMinor == rhs.primaryMinor ) && ( renderMajor == rhs.renderMajor ) &&
  42456. ( renderMinor == rhs.renderMinor );
  42457. # endif
  42458. }
  42459. bool operator!=( PhysicalDeviceDrmPropertiesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  42460. {
  42461. return !operator==( rhs );
  42462. }
  42463. #endif
  42464. public:
  42465. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceDrmPropertiesEXT;
  42466. void * pNext = {};
  42467. VULKAN_HPP_NAMESPACE::Bool32 hasPrimary = {};
  42468. VULKAN_HPP_NAMESPACE::Bool32 hasRender = {};
  42469. int64_t primaryMajor = {};
  42470. int64_t primaryMinor = {};
  42471. int64_t renderMajor = {};
  42472. int64_t renderMinor = {};
  42473. };
  42474. template <>
  42475. struct CppType<StructureType, StructureType::ePhysicalDeviceDrmPropertiesEXT>
  42476. {
  42477. using Type = PhysicalDeviceDrmPropertiesEXT;
  42478. };
  42479. struct PhysicalDeviceDynamicRenderingFeatures
  42480. {
  42481. using NativeType = VkPhysicalDeviceDynamicRenderingFeatures;
  42482. static const bool allowDuplicate = false;
  42483. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceDynamicRenderingFeatures;
  42484. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  42485. VULKAN_HPP_CONSTEXPR PhysicalDeviceDynamicRenderingFeatures( VULKAN_HPP_NAMESPACE::Bool32 dynamicRendering_ = {},
  42486. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  42487. : pNext( pNext_ )
  42488. , dynamicRendering( dynamicRendering_ )
  42489. {
  42490. }
  42491. VULKAN_HPP_CONSTEXPR PhysicalDeviceDynamicRenderingFeatures( PhysicalDeviceDynamicRenderingFeatures const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  42492. PhysicalDeviceDynamicRenderingFeatures( VkPhysicalDeviceDynamicRenderingFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
  42493. : PhysicalDeviceDynamicRenderingFeatures( *reinterpret_cast<PhysicalDeviceDynamicRenderingFeatures const *>( &rhs ) )
  42494. {
  42495. }
  42496. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  42497. PhysicalDeviceDynamicRenderingFeatures & operator=( PhysicalDeviceDynamicRenderingFeatures const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  42498. PhysicalDeviceDynamicRenderingFeatures & operator=( VkPhysicalDeviceDynamicRenderingFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
  42499. {
  42500. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceDynamicRenderingFeatures const *>( &rhs );
  42501. return *this;
  42502. }
  42503. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  42504. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceDynamicRenderingFeatures & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
  42505. {
  42506. pNext = pNext_;
  42507. return *this;
  42508. }
  42509. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceDynamicRenderingFeatures & setDynamicRendering( VULKAN_HPP_NAMESPACE::Bool32 dynamicRendering_ ) VULKAN_HPP_NOEXCEPT
  42510. {
  42511. dynamicRendering = dynamicRendering_;
  42512. return *this;
  42513. }
  42514. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  42515. operator VkPhysicalDeviceDynamicRenderingFeatures const &() const VULKAN_HPP_NOEXCEPT
  42516. {
  42517. return *reinterpret_cast<const VkPhysicalDeviceDynamicRenderingFeatures *>( this );
  42518. }
  42519. operator VkPhysicalDeviceDynamicRenderingFeatures &() VULKAN_HPP_NOEXCEPT
  42520. {
  42521. return *reinterpret_cast<VkPhysicalDeviceDynamicRenderingFeatures *>( this );
  42522. }
  42523. #if defined( VULKAN_HPP_USE_REFLECT )
  42524. # if 14 <= VULKAN_HPP_CPP_VERSION
  42525. auto
  42526. # else
  42527. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
  42528. # endif
  42529. reflect() const VULKAN_HPP_NOEXCEPT
  42530. {
  42531. return std::tie( sType, pNext, dynamicRendering );
  42532. }
  42533. #endif
  42534. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  42535. auto operator<=>( PhysicalDeviceDynamicRenderingFeatures const & ) const = default;
  42536. #else
  42537. bool operator==( PhysicalDeviceDynamicRenderingFeatures const & rhs ) const VULKAN_HPP_NOEXCEPT
  42538. {
  42539. # if defined( VULKAN_HPP_USE_REFLECT )
  42540. return this->reflect() == rhs.reflect();
  42541. # else
  42542. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( dynamicRendering == rhs.dynamicRendering );
  42543. # endif
  42544. }
  42545. bool operator!=( PhysicalDeviceDynamicRenderingFeatures const & rhs ) const VULKAN_HPP_NOEXCEPT
  42546. {
  42547. return !operator==( rhs );
  42548. }
  42549. #endif
  42550. public:
  42551. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceDynamicRenderingFeatures;
  42552. void * pNext = {};
  42553. VULKAN_HPP_NAMESPACE::Bool32 dynamicRendering = {};
  42554. };
  42555. template <>
  42556. struct CppType<StructureType, StructureType::ePhysicalDeviceDynamicRenderingFeatures>
  42557. {
  42558. using Type = PhysicalDeviceDynamicRenderingFeatures;
  42559. };
  42560. using PhysicalDeviceDynamicRenderingFeaturesKHR = PhysicalDeviceDynamicRenderingFeatures;
  42561. struct PhysicalDeviceExclusiveScissorFeaturesNV
  42562. {
  42563. using NativeType = VkPhysicalDeviceExclusiveScissorFeaturesNV;
  42564. static const bool allowDuplicate = false;
  42565. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceExclusiveScissorFeaturesNV;
  42566. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  42567. VULKAN_HPP_CONSTEXPR PhysicalDeviceExclusiveScissorFeaturesNV( VULKAN_HPP_NAMESPACE::Bool32 exclusiveScissor_ = {},
  42568. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  42569. : pNext( pNext_ )
  42570. , exclusiveScissor( exclusiveScissor_ )
  42571. {
  42572. }
  42573. VULKAN_HPP_CONSTEXPR PhysicalDeviceExclusiveScissorFeaturesNV( PhysicalDeviceExclusiveScissorFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  42574. PhysicalDeviceExclusiveScissorFeaturesNV( VkPhysicalDeviceExclusiveScissorFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT
  42575. : PhysicalDeviceExclusiveScissorFeaturesNV( *reinterpret_cast<PhysicalDeviceExclusiveScissorFeaturesNV const *>( &rhs ) )
  42576. {
  42577. }
  42578. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  42579. PhysicalDeviceExclusiveScissorFeaturesNV & operator=( PhysicalDeviceExclusiveScissorFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  42580. PhysicalDeviceExclusiveScissorFeaturesNV & operator=( VkPhysicalDeviceExclusiveScissorFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT
  42581. {
  42582. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceExclusiveScissorFeaturesNV const *>( &rhs );
  42583. return *this;
  42584. }
  42585. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  42586. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceExclusiveScissorFeaturesNV & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
  42587. {
  42588. pNext = pNext_;
  42589. return *this;
  42590. }
  42591. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceExclusiveScissorFeaturesNV & setExclusiveScissor( VULKAN_HPP_NAMESPACE::Bool32 exclusiveScissor_ ) VULKAN_HPP_NOEXCEPT
  42592. {
  42593. exclusiveScissor = exclusiveScissor_;
  42594. return *this;
  42595. }
  42596. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  42597. operator VkPhysicalDeviceExclusiveScissorFeaturesNV const &() const VULKAN_HPP_NOEXCEPT
  42598. {
  42599. return *reinterpret_cast<const VkPhysicalDeviceExclusiveScissorFeaturesNV *>( this );
  42600. }
  42601. operator VkPhysicalDeviceExclusiveScissorFeaturesNV &() VULKAN_HPP_NOEXCEPT
  42602. {
  42603. return *reinterpret_cast<VkPhysicalDeviceExclusiveScissorFeaturesNV *>( this );
  42604. }
  42605. #if defined( VULKAN_HPP_USE_REFLECT )
  42606. # if 14 <= VULKAN_HPP_CPP_VERSION
  42607. auto
  42608. # else
  42609. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
  42610. # endif
  42611. reflect() const VULKAN_HPP_NOEXCEPT
  42612. {
  42613. return std::tie( sType, pNext, exclusiveScissor );
  42614. }
  42615. #endif
  42616. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  42617. auto operator<=>( PhysicalDeviceExclusiveScissorFeaturesNV const & ) const = default;
  42618. #else
  42619. bool operator==( PhysicalDeviceExclusiveScissorFeaturesNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  42620. {
  42621. # if defined( VULKAN_HPP_USE_REFLECT )
  42622. return this->reflect() == rhs.reflect();
  42623. # else
  42624. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( exclusiveScissor == rhs.exclusiveScissor );
  42625. # endif
  42626. }
  42627. bool operator!=( PhysicalDeviceExclusiveScissorFeaturesNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  42628. {
  42629. return !operator==( rhs );
  42630. }
  42631. #endif
  42632. public:
  42633. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceExclusiveScissorFeaturesNV;
  42634. void * pNext = {};
  42635. VULKAN_HPP_NAMESPACE::Bool32 exclusiveScissor = {};
  42636. };
  42637. template <>
  42638. struct CppType<StructureType, StructureType::ePhysicalDeviceExclusiveScissorFeaturesNV>
  42639. {
  42640. using Type = PhysicalDeviceExclusiveScissorFeaturesNV;
  42641. };
  42642. struct PhysicalDeviceExtendedDynamicState2FeaturesEXT
  42643. {
  42644. using NativeType = VkPhysicalDeviceExtendedDynamicState2FeaturesEXT;
  42645. static const bool allowDuplicate = false;
  42646. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceExtendedDynamicState2FeaturesEXT;
  42647. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  42648. VULKAN_HPP_CONSTEXPR PhysicalDeviceExtendedDynamicState2FeaturesEXT( VULKAN_HPP_NAMESPACE::Bool32 extendedDynamicState2_ = {},
  42649. VULKAN_HPP_NAMESPACE::Bool32 extendedDynamicState2LogicOp_ = {},
  42650. VULKAN_HPP_NAMESPACE::Bool32 extendedDynamicState2PatchControlPoints_ = {},
  42651. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  42652. : pNext( pNext_ )
  42653. , extendedDynamicState2( extendedDynamicState2_ )
  42654. , extendedDynamicState2LogicOp( extendedDynamicState2LogicOp_ )
  42655. , extendedDynamicState2PatchControlPoints( extendedDynamicState2PatchControlPoints_ )
  42656. {
  42657. }
  42658. VULKAN_HPP_CONSTEXPR
  42659. PhysicalDeviceExtendedDynamicState2FeaturesEXT( PhysicalDeviceExtendedDynamicState2FeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  42660. PhysicalDeviceExtendedDynamicState2FeaturesEXT( VkPhysicalDeviceExtendedDynamicState2FeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  42661. : PhysicalDeviceExtendedDynamicState2FeaturesEXT( *reinterpret_cast<PhysicalDeviceExtendedDynamicState2FeaturesEXT const *>( &rhs ) )
  42662. {
  42663. }
  42664. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  42665. PhysicalDeviceExtendedDynamicState2FeaturesEXT & operator=( PhysicalDeviceExtendedDynamicState2FeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  42666. PhysicalDeviceExtendedDynamicState2FeaturesEXT & operator=( VkPhysicalDeviceExtendedDynamicState2FeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  42667. {
  42668. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceExtendedDynamicState2FeaturesEXT const *>( &rhs );
  42669. return *this;
  42670. }
  42671. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  42672. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceExtendedDynamicState2FeaturesEXT & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
  42673. {
  42674. pNext = pNext_;
  42675. return *this;
  42676. }
  42677. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceExtendedDynamicState2FeaturesEXT &
  42678. setExtendedDynamicState2( VULKAN_HPP_NAMESPACE::Bool32 extendedDynamicState2_ ) VULKAN_HPP_NOEXCEPT
  42679. {
  42680. extendedDynamicState2 = extendedDynamicState2_;
  42681. return *this;
  42682. }
  42683. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceExtendedDynamicState2FeaturesEXT &
  42684. setExtendedDynamicState2LogicOp( VULKAN_HPP_NAMESPACE::Bool32 extendedDynamicState2LogicOp_ ) VULKAN_HPP_NOEXCEPT
  42685. {
  42686. extendedDynamicState2LogicOp = extendedDynamicState2LogicOp_;
  42687. return *this;
  42688. }
  42689. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceExtendedDynamicState2FeaturesEXT &
  42690. setExtendedDynamicState2PatchControlPoints( VULKAN_HPP_NAMESPACE::Bool32 extendedDynamicState2PatchControlPoints_ ) VULKAN_HPP_NOEXCEPT
  42691. {
  42692. extendedDynamicState2PatchControlPoints = extendedDynamicState2PatchControlPoints_;
  42693. return *this;
  42694. }
  42695. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  42696. operator VkPhysicalDeviceExtendedDynamicState2FeaturesEXT const &() const VULKAN_HPP_NOEXCEPT
  42697. {
  42698. return *reinterpret_cast<const VkPhysicalDeviceExtendedDynamicState2FeaturesEXT *>( this );
  42699. }
  42700. operator VkPhysicalDeviceExtendedDynamicState2FeaturesEXT &() VULKAN_HPP_NOEXCEPT
  42701. {
  42702. return *reinterpret_cast<VkPhysicalDeviceExtendedDynamicState2FeaturesEXT *>( this );
  42703. }
  42704. #if defined( VULKAN_HPP_USE_REFLECT )
  42705. # if 14 <= VULKAN_HPP_CPP_VERSION
  42706. auto
  42707. # else
  42708. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  42709. void * const &,
  42710. VULKAN_HPP_NAMESPACE::Bool32 const &,
  42711. VULKAN_HPP_NAMESPACE::Bool32 const &,
  42712. VULKAN_HPP_NAMESPACE::Bool32 const &>
  42713. # endif
  42714. reflect() const VULKAN_HPP_NOEXCEPT
  42715. {
  42716. return std::tie( sType, pNext, extendedDynamicState2, extendedDynamicState2LogicOp, extendedDynamicState2PatchControlPoints );
  42717. }
  42718. #endif
  42719. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  42720. auto operator<=>( PhysicalDeviceExtendedDynamicState2FeaturesEXT const & ) const = default;
  42721. #else
  42722. bool operator==( PhysicalDeviceExtendedDynamicState2FeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  42723. {
  42724. # if defined( VULKAN_HPP_USE_REFLECT )
  42725. return this->reflect() == rhs.reflect();
  42726. # else
  42727. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( extendedDynamicState2 == rhs.extendedDynamicState2 ) &&
  42728. ( extendedDynamicState2LogicOp == rhs.extendedDynamicState2LogicOp ) &&
  42729. ( extendedDynamicState2PatchControlPoints == rhs.extendedDynamicState2PatchControlPoints );
  42730. # endif
  42731. }
  42732. bool operator!=( PhysicalDeviceExtendedDynamicState2FeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  42733. {
  42734. return !operator==( rhs );
  42735. }
  42736. #endif
  42737. public:
  42738. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceExtendedDynamicState2FeaturesEXT;
  42739. void * pNext = {};
  42740. VULKAN_HPP_NAMESPACE::Bool32 extendedDynamicState2 = {};
  42741. VULKAN_HPP_NAMESPACE::Bool32 extendedDynamicState2LogicOp = {};
  42742. VULKAN_HPP_NAMESPACE::Bool32 extendedDynamicState2PatchControlPoints = {};
  42743. };
  42744. template <>
  42745. struct CppType<StructureType, StructureType::ePhysicalDeviceExtendedDynamicState2FeaturesEXT>
  42746. {
  42747. using Type = PhysicalDeviceExtendedDynamicState2FeaturesEXT;
  42748. };
  42749. struct PhysicalDeviceExtendedDynamicStateFeaturesEXT
  42750. {
  42751. using NativeType = VkPhysicalDeviceExtendedDynamicStateFeaturesEXT;
  42752. static const bool allowDuplicate = false;
  42753. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceExtendedDynamicStateFeaturesEXT;
  42754. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  42755. VULKAN_HPP_CONSTEXPR PhysicalDeviceExtendedDynamicStateFeaturesEXT( VULKAN_HPP_NAMESPACE::Bool32 extendedDynamicState_ = {},
  42756. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  42757. : pNext( pNext_ )
  42758. , extendedDynamicState( extendedDynamicState_ )
  42759. {
  42760. }
  42761. VULKAN_HPP_CONSTEXPR
  42762. PhysicalDeviceExtendedDynamicStateFeaturesEXT( PhysicalDeviceExtendedDynamicStateFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  42763. PhysicalDeviceExtendedDynamicStateFeaturesEXT( VkPhysicalDeviceExtendedDynamicStateFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  42764. : PhysicalDeviceExtendedDynamicStateFeaturesEXT( *reinterpret_cast<PhysicalDeviceExtendedDynamicStateFeaturesEXT const *>( &rhs ) )
  42765. {
  42766. }
  42767. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  42768. PhysicalDeviceExtendedDynamicStateFeaturesEXT & operator=( PhysicalDeviceExtendedDynamicStateFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  42769. PhysicalDeviceExtendedDynamicStateFeaturesEXT & operator=( VkPhysicalDeviceExtendedDynamicStateFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  42770. {
  42771. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceExtendedDynamicStateFeaturesEXT const *>( &rhs );
  42772. return *this;
  42773. }
  42774. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  42775. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceExtendedDynamicStateFeaturesEXT & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
  42776. {
  42777. pNext = pNext_;
  42778. return *this;
  42779. }
  42780. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceExtendedDynamicStateFeaturesEXT &
  42781. setExtendedDynamicState( VULKAN_HPP_NAMESPACE::Bool32 extendedDynamicState_ ) VULKAN_HPP_NOEXCEPT
  42782. {
  42783. extendedDynamicState = extendedDynamicState_;
  42784. return *this;
  42785. }
  42786. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  42787. operator VkPhysicalDeviceExtendedDynamicStateFeaturesEXT const &() const VULKAN_HPP_NOEXCEPT
  42788. {
  42789. return *reinterpret_cast<const VkPhysicalDeviceExtendedDynamicStateFeaturesEXT *>( this );
  42790. }
  42791. operator VkPhysicalDeviceExtendedDynamicStateFeaturesEXT &() VULKAN_HPP_NOEXCEPT
  42792. {
  42793. return *reinterpret_cast<VkPhysicalDeviceExtendedDynamicStateFeaturesEXT *>( this );
  42794. }
  42795. #if defined( VULKAN_HPP_USE_REFLECT )
  42796. # if 14 <= VULKAN_HPP_CPP_VERSION
  42797. auto
  42798. # else
  42799. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
  42800. # endif
  42801. reflect() const VULKAN_HPP_NOEXCEPT
  42802. {
  42803. return std::tie( sType, pNext, extendedDynamicState );
  42804. }
  42805. #endif
  42806. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  42807. auto operator<=>( PhysicalDeviceExtendedDynamicStateFeaturesEXT const & ) const = default;
  42808. #else
  42809. bool operator==( PhysicalDeviceExtendedDynamicStateFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  42810. {
  42811. # if defined( VULKAN_HPP_USE_REFLECT )
  42812. return this->reflect() == rhs.reflect();
  42813. # else
  42814. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( extendedDynamicState == rhs.extendedDynamicState );
  42815. # endif
  42816. }
  42817. bool operator!=( PhysicalDeviceExtendedDynamicStateFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  42818. {
  42819. return !operator==( rhs );
  42820. }
  42821. #endif
  42822. public:
  42823. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceExtendedDynamicStateFeaturesEXT;
  42824. void * pNext = {};
  42825. VULKAN_HPP_NAMESPACE::Bool32 extendedDynamicState = {};
  42826. };
  42827. template <>
  42828. struct CppType<StructureType, StructureType::ePhysicalDeviceExtendedDynamicStateFeaturesEXT>
  42829. {
  42830. using Type = PhysicalDeviceExtendedDynamicStateFeaturesEXT;
  42831. };
  42832. struct PhysicalDeviceExternalBufferInfo
  42833. {
  42834. using NativeType = VkPhysicalDeviceExternalBufferInfo;
  42835. static const bool allowDuplicate = false;
  42836. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceExternalBufferInfo;
  42837. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  42838. VULKAN_HPP_CONSTEXPR PhysicalDeviceExternalBufferInfo(
  42839. VULKAN_HPP_NAMESPACE::BufferCreateFlags flags_ = {},
  42840. VULKAN_HPP_NAMESPACE::BufferUsageFlags usage_ = {},
  42841. VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType_ = VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits::eOpaqueFd,
  42842. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  42843. : pNext( pNext_ )
  42844. , flags( flags_ )
  42845. , usage( usage_ )
  42846. , handleType( handleType_ )
  42847. {
  42848. }
  42849. VULKAN_HPP_CONSTEXPR PhysicalDeviceExternalBufferInfo( PhysicalDeviceExternalBufferInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  42850. PhysicalDeviceExternalBufferInfo( VkPhysicalDeviceExternalBufferInfo const & rhs ) VULKAN_HPP_NOEXCEPT
  42851. : PhysicalDeviceExternalBufferInfo( *reinterpret_cast<PhysicalDeviceExternalBufferInfo const *>( &rhs ) )
  42852. {
  42853. }
  42854. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  42855. PhysicalDeviceExternalBufferInfo & operator=( PhysicalDeviceExternalBufferInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  42856. PhysicalDeviceExternalBufferInfo & operator=( VkPhysicalDeviceExternalBufferInfo const & rhs ) VULKAN_HPP_NOEXCEPT
  42857. {
  42858. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalBufferInfo const *>( &rhs );
  42859. return *this;
  42860. }
  42861. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  42862. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceExternalBufferInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  42863. {
  42864. pNext = pNext_;
  42865. return *this;
  42866. }
  42867. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceExternalBufferInfo & setFlags( VULKAN_HPP_NAMESPACE::BufferCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT
  42868. {
  42869. flags = flags_;
  42870. return *this;
  42871. }
  42872. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceExternalBufferInfo & setUsage( VULKAN_HPP_NAMESPACE::BufferUsageFlags usage_ ) VULKAN_HPP_NOEXCEPT
  42873. {
  42874. usage = usage_;
  42875. return *this;
  42876. }
  42877. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceExternalBufferInfo &
  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 VkPhysicalDeviceExternalBufferInfo const &() const VULKAN_HPP_NOEXCEPT
  42885. {
  42886. return *reinterpret_cast<const VkPhysicalDeviceExternalBufferInfo *>( this );
  42887. }
  42888. operator VkPhysicalDeviceExternalBufferInfo &() VULKAN_HPP_NOEXCEPT
  42889. {
  42890. return *reinterpret_cast<VkPhysicalDeviceExternalBufferInfo *>( 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::BufferCreateFlags const &,
  42899. VULKAN_HPP_NAMESPACE::BufferUsageFlags const &,
  42900. VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits const &>
  42901. # endif
  42902. reflect() const VULKAN_HPP_NOEXCEPT
  42903. {
  42904. return std::tie( sType, pNext, flags, usage, handleType );
  42905. }
  42906. #endif
  42907. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  42908. auto operator<=>( PhysicalDeviceExternalBufferInfo const & ) const = default;
  42909. #else
  42910. bool operator==( PhysicalDeviceExternalBufferInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  42911. {
  42912. # if defined( VULKAN_HPP_USE_REFLECT )
  42913. return this->reflect() == rhs.reflect();
  42914. # else
  42915. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( flags == rhs.flags ) && ( usage == rhs.usage ) && ( handleType == rhs.handleType );
  42916. # endif
  42917. }
  42918. bool operator!=( PhysicalDeviceExternalBufferInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  42919. {
  42920. return !operator==( rhs );
  42921. }
  42922. #endif
  42923. public:
  42924. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceExternalBufferInfo;
  42925. const void * pNext = {};
  42926. VULKAN_HPP_NAMESPACE::BufferCreateFlags flags = {};
  42927. VULKAN_HPP_NAMESPACE::BufferUsageFlags usage = {};
  42928. VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType = VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits::eOpaqueFd;
  42929. };
  42930. template <>
  42931. struct CppType<StructureType, StructureType::ePhysicalDeviceExternalBufferInfo>
  42932. {
  42933. using Type = PhysicalDeviceExternalBufferInfo;
  42934. };
  42935. using PhysicalDeviceExternalBufferInfoKHR = PhysicalDeviceExternalBufferInfo;
  42936. struct PhysicalDeviceExternalFenceInfo
  42937. {
  42938. using NativeType = VkPhysicalDeviceExternalFenceInfo;
  42939. static const bool allowDuplicate = false;
  42940. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceExternalFenceInfo;
  42941. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  42942. VULKAN_HPP_CONSTEXPR PhysicalDeviceExternalFenceInfo(
  42943. VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlagBits handleType_ = VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlagBits::eOpaqueFd,
  42944. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  42945. : pNext( pNext_ )
  42946. , handleType( handleType_ )
  42947. {
  42948. }
  42949. VULKAN_HPP_CONSTEXPR PhysicalDeviceExternalFenceInfo( PhysicalDeviceExternalFenceInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  42950. PhysicalDeviceExternalFenceInfo( VkPhysicalDeviceExternalFenceInfo const & rhs ) VULKAN_HPP_NOEXCEPT
  42951. : PhysicalDeviceExternalFenceInfo( *reinterpret_cast<PhysicalDeviceExternalFenceInfo const *>( &rhs ) )
  42952. {
  42953. }
  42954. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  42955. PhysicalDeviceExternalFenceInfo & operator=( PhysicalDeviceExternalFenceInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  42956. PhysicalDeviceExternalFenceInfo & operator=( VkPhysicalDeviceExternalFenceInfo const & rhs ) VULKAN_HPP_NOEXCEPT
  42957. {
  42958. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalFenceInfo const *>( &rhs );
  42959. return *this;
  42960. }
  42961. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  42962. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceExternalFenceInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  42963. {
  42964. pNext = pNext_;
  42965. return *this;
  42966. }
  42967. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceExternalFenceInfo &
  42968. setHandleType( VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlagBits handleType_ ) VULKAN_HPP_NOEXCEPT
  42969. {
  42970. handleType = handleType_;
  42971. return *this;
  42972. }
  42973. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  42974. operator VkPhysicalDeviceExternalFenceInfo const &() const VULKAN_HPP_NOEXCEPT
  42975. {
  42976. return *reinterpret_cast<const VkPhysicalDeviceExternalFenceInfo *>( this );
  42977. }
  42978. operator VkPhysicalDeviceExternalFenceInfo &() VULKAN_HPP_NOEXCEPT
  42979. {
  42980. return *reinterpret_cast<VkPhysicalDeviceExternalFenceInfo *>( this );
  42981. }
  42982. #if defined( VULKAN_HPP_USE_REFLECT )
  42983. # if 14 <= VULKAN_HPP_CPP_VERSION
  42984. auto
  42985. # else
  42986. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlagBits const &>
  42987. # endif
  42988. reflect() const VULKAN_HPP_NOEXCEPT
  42989. {
  42990. return std::tie( sType, pNext, handleType );
  42991. }
  42992. #endif
  42993. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  42994. auto operator<=>( PhysicalDeviceExternalFenceInfo const & ) const = default;
  42995. #else
  42996. bool operator==( PhysicalDeviceExternalFenceInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  42997. {
  42998. # if defined( VULKAN_HPP_USE_REFLECT )
  42999. return this->reflect() == rhs.reflect();
  43000. # else
  43001. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( handleType == rhs.handleType );
  43002. # endif
  43003. }
  43004. bool operator!=( PhysicalDeviceExternalFenceInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  43005. {
  43006. return !operator==( rhs );
  43007. }
  43008. #endif
  43009. public:
  43010. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceExternalFenceInfo;
  43011. const void * pNext = {};
  43012. VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlagBits handleType = VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlagBits::eOpaqueFd;
  43013. };
  43014. template <>
  43015. struct CppType<StructureType, StructureType::ePhysicalDeviceExternalFenceInfo>
  43016. {
  43017. using Type = PhysicalDeviceExternalFenceInfo;
  43018. };
  43019. using PhysicalDeviceExternalFenceInfoKHR = PhysicalDeviceExternalFenceInfo;
  43020. struct PhysicalDeviceExternalImageFormatInfo
  43021. {
  43022. using NativeType = VkPhysicalDeviceExternalImageFormatInfo;
  43023. static const bool allowDuplicate = false;
  43024. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceExternalImageFormatInfo;
  43025. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  43026. VULKAN_HPP_CONSTEXPR PhysicalDeviceExternalImageFormatInfo(
  43027. VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType_ = VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits::eOpaqueFd,
  43028. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  43029. : pNext( pNext_ )
  43030. , handleType( handleType_ )
  43031. {
  43032. }
  43033. VULKAN_HPP_CONSTEXPR PhysicalDeviceExternalImageFormatInfo( PhysicalDeviceExternalImageFormatInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  43034. PhysicalDeviceExternalImageFormatInfo( VkPhysicalDeviceExternalImageFormatInfo const & rhs ) VULKAN_HPP_NOEXCEPT
  43035. : PhysicalDeviceExternalImageFormatInfo( *reinterpret_cast<PhysicalDeviceExternalImageFormatInfo const *>( &rhs ) )
  43036. {
  43037. }
  43038. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  43039. PhysicalDeviceExternalImageFormatInfo & operator=( PhysicalDeviceExternalImageFormatInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  43040. PhysicalDeviceExternalImageFormatInfo & operator=( VkPhysicalDeviceExternalImageFormatInfo const & rhs ) VULKAN_HPP_NOEXCEPT
  43041. {
  43042. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalImageFormatInfo const *>( &rhs );
  43043. return *this;
  43044. }
  43045. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  43046. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceExternalImageFormatInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  43047. {
  43048. pNext = pNext_;
  43049. return *this;
  43050. }
  43051. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceExternalImageFormatInfo &
  43052. setHandleType( VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType_ ) VULKAN_HPP_NOEXCEPT
  43053. {
  43054. handleType = handleType_;
  43055. return *this;
  43056. }
  43057. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  43058. operator VkPhysicalDeviceExternalImageFormatInfo const &() const VULKAN_HPP_NOEXCEPT
  43059. {
  43060. return *reinterpret_cast<const VkPhysicalDeviceExternalImageFormatInfo *>( this );
  43061. }
  43062. operator VkPhysicalDeviceExternalImageFormatInfo &() VULKAN_HPP_NOEXCEPT
  43063. {
  43064. return *reinterpret_cast<VkPhysicalDeviceExternalImageFormatInfo *>( this );
  43065. }
  43066. #if defined( VULKAN_HPP_USE_REFLECT )
  43067. # if 14 <= VULKAN_HPP_CPP_VERSION
  43068. auto
  43069. # else
  43070. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits const &>
  43071. # endif
  43072. reflect() const VULKAN_HPP_NOEXCEPT
  43073. {
  43074. return std::tie( sType, pNext, handleType );
  43075. }
  43076. #endif
  43077. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  43078. auto operator<=>( PhysicalDeviceExternalImageFormatInfo const & ) const = default;
  43079. #else
  43080. bool operator==( PhysicalDeviceExternalImageFormatInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  43081. {
  43082. # if defined( VULKAN_HPP_USE_REFLECT )
  43083. return this->reflect() == rhs.reflect();
  43084. # else
  43085. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( handleType == rhs.handleType );
  43086. # endif
  43087. }
  43088. bool operator!=( PhysicalDeviceExternalImageFormatInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  43089. {
  43090. return !operator==( rhs );
  43091. }
  43092. #endif
  43093. public:
  43094. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceExternalImageFormatInfo;
  43095. const void * pNext = {};
  43096. VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType = VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits::eOpaqueFd;
  43097. };
  43098. template <>
  43099. struct CppType<StructureType, StructureType::ePhysicalDeviceExternalImageFormatInfo>
  43100. {
  43101. using Type = PhysicalDeviceExternalImageFormatInfo;
  43102. };
  43103. using PhysicalDeviceExternalImageFormatInfoKHR = PhysicalDeviceExternalImageFormatInfo;
  43104. struct PhysicalDeviceExternalMemoryHostPropertiesEXT
  43105. {
  43106. using NativeType = VkPhysicalDeviceExternalMemoryHostPropertiesEXT;
  43107. static const bool allowDuplicate = false;
  43108. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceExternalMemoryHostPropertiesEXT;
  43109. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  43110. VULKAN_HPP_CONSTEXPR PhysicalDeviceExternalMemoryHostPropertiesEXT( VULKAN_HPP_NAMESPACE::DeviceSize minImportedHostPointerAlignment_ = {},
  43111. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  43112. : pNext( pNext_ )
  43113. , minImportedHostPointerAlignment( minImportedHostPointerAlignment_ )
  43114. {
  43115. }
  43116. VULKAN_HPP_CONSTEXPR
  43117. PhysicalDeviceExternalMemoryHostPropertiesEXT( PhysicalDeviceExternalMemoryHostPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  43118. PhysicalDeviceExternalMemoryHostPropertiesEXT( VkPhysicalDeviceExternalMemoryHostPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  43119. : PhysicalDeviceExternalMemoryHostPropertiesEXT( *reinterpret_cast<PhysicalDeviceExternalMemoryHostPropertiesEXT const *>( &rhs ) )
  43120. {
  43121. }
  43122. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  43123. PhysicalDeviceExternalMemoryHostPropertiesEXT & operator=( PhysicalDeviceExternalMemoryHostPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  43124. PhysicalDeviceExternalMemoryHostPropertiesEXT & operator=( VkPhysicalDeviceExternalMemoryHostPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  43125. {
  43126. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalMemoryHostPropertiesEXT const *>( &rhs );
  43127. return *this;
  43128. }
  43129. operator VkPhysicalDeviceExternalMemoryHostPropertiesEXT const &() const VULKAN_HPP_NOEXCEPT
  43130. {
  43131. return *reinterpret_cast<const VkPhysicalDeviceExternalMemoryHostPropertiesEXT *>( this );
  43132. }
  43133. operator VkPhysicalDeviceExternalMemoryHostPropertiesEXT &() VULKAN_HPP_NOEXCEPT
  43134. {
  43135. return *reinterpret_cast<VkPhysicalDeviceExternalMemoryHostPropertiesEXT *>( this );
  43136. }
  43137. #if defined( VULKAN_HPP_USE_REFLECT )
  43138. # if 14 <= VULKAN_HPP_CPP_VERSION
  43139. auto
  43140. # else
  43141. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::DeviceSize const &>
  43142. # endif
  43143. reflect() const VULKAN_HPP_NOEXCEPT
  43144. {
  43145. return std::tie( sType, pNext, minImportedHostPointerAlignment );
  43146. }
  43147. #endif
  43148. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  43149. auto operator<=>( PhysicalDeviceExternalMemoryHostPropertiesEXT const & ) const = default;
  43150. #else
  43151. bool operator==( PhysicalDeviceExternalMemoryHostPropertiesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  43152. {
  43153. # if defined( VULKAN_HPP_USE_REFLECT )
  43154. return this->reflect() == rhs.reflect();
  43155. # else
  43156. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( minImportedHostPointerAlignment == rhs.minImportedHostPointerAlignment );
  43157. # endif
  43158. }
  43159. bool operator!=( PhysicalDeviceExternalMemoryHostPropertiesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  43160. {
  43161. return !operator==( rhs );
  43162. }
  43163. #endif
  43164. public:
  43165. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceExternalMemoryHostPropertiesEXT;
  43166. void * pNext = {};
  43167. VULKAN_HPP_NAMESPACE::DeviceSize minImportedHostPointerAlignment = {};
  43168. };
  43169. template <>
  43170. struct CppType<StructureType, StructureType::ePhysicalDeviceExternalMemoryHostPropertiesEXT>
  43171. {
  43172. using Type = PhysicalDeviceExternalMemoryHostPropertiesEXT;
  43173. };
  43174. struct PhysicalDeviceExternalMemoryRDMAFeaturesNV
  43175. {
  43176. using NativeType = VkPhysicalDeviceExternalMemoryRDMAFeaturesNV;
  43177. static const bool allowDuplicate = false;
  43178. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceExternalMemoryRdmaFeaturesNV;
  43179. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  43180. VULKAN_HPP_CONSTEXPR PhysicalDeviceExternalMemoryRDMAFeaturesNV( VULKAN_HPP_NAMESPACE::Bool32 externalMemoryRDMA_ = {},
  43181. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  43182. : pNext( pNext_ )
  43183. , externalMemoryRDMA( externalMemoryRDMA_ )
  43184. {
  43185. }
  43186. VULKAN_HPP_CONSTEXPR PhysicalDeviceExternalMemoryRDMAFeaturesNV( PhysicalDeviceExternalMemoryRDMAFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  43187. PhysicalDeviceExternalMemoryRDMAFeaturesNV( VkPhysicalDeviceExternalMemoryRDMAFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT
  43188. : PhysicalDeviceExternalMemoryRDMAFeaturesNV( *reinterpret_cast<PhysicalDeviceExternalMemoryRDMAFeaturesNV const *>( &rhs ) )
  43189. {
  43190. }
  43191. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  43192. PhysicalDeviceExternalMemoryRDMAFeaturesNV & operator=( PhysicalDeviceExternalMemoryRDMAFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  43193. PhysicalDeviceExternalMemoryRDMAFeaturesNV & operator=( VkPhysicalDeviceExternalMemoryRDMAFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT
  43194. {
  43195. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalMemoryRDMAFeaturesNV const *>( &rhs );
  43196. return *this;
  43197. }
  43198. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  43199. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceExternalMemoryRDMAFeaturesNV & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
  43200. {
  43201. pNext = pNext_;
  43202. return *this;
  43203. }
  43204. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceExternalMemoryRDMAFeaturesNV &
  43205. setExternalMemoryRDMA( VULKAN_HPP_NAMESPACE::Bool32 externalMemoryRDMA_ ) VULKAN_HPP_NOEXCEPT
  43206. {
  43207. externalMemoryRDMA = externalMemoryRDMA_;
  43208. return *this;
  43209. }
  43210. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  43211. operator VkPhysicalDeviceExternalMemoryRDMAFeaturesNV const &() const VULKAN_HPP_NOEXCEPT
  43212. {
  43213. return *reinterpret_cast<const VkPhysicalDeviceExternalMemoryRDMAFeaturesNV *>( this );
  43214. }
  43215. operator VkPhysicalDeviceExternalMemoryRDMAFeaturesNV &() VULKAN_HPP_NOEXCEPT
  43216. {
  43217. return *reinterpret_cast<VkPhysicalDeviceExternalMemoryRDMAFeaturesNV *>( this );
  43218. }
  43219. #if defined( VULKAN_HPP_USE_REFLECT )
  43220. # if 14 <= VULKAN_HPP_CPP_VERSION
  43221. auto
  43222. # else
  43223. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
  43224. # endif
  43225. reflect() const VULKAN_HPP_NOEXCEPT
  43226. {
  43227. return std::tie( sType, pNext, externalMemoryRDMA );
  43228. }
  43229. #endif
  43230. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  43231. auto operator<=>( PhysicalDeviceExternalMemoryRDMAFeaturesNV const & ) const = default;
  43232. #else
  43233. bool operator==( PhysicalDeviceExternalMemoryRDMAFeaturesNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  43234. {
  43235. # if defined( VULKAN_HPP_USE_REFLECT )
  43236. return this->reflect() == rhs.reflect();
  43237. # else
  43238. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( externalMemoryRDMA == rhs.externalMemoryRDMA );
  43239. # endif
  43240. }
  43241. bool operator!=( PhysicalDeviceExternalMemoryRDMAFeaturesNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  43242. {
  43243. return !operator==( rhs );
  43244. }
  43245. #endif
  43246. public:
  43247. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceExternalMemoryRdmaFeaturesNV;
  43248. void * pNext = {};
  43249. VULKAN_HPP_NAMESPACE::Bool32 externalMemoryRDMA = {};
  43250. };
  43251. template <>
  43252. struct CppType<StructureType, StructureType::ePhysicalDeviceExternalMemoryRdmaFeaturesNV>
  43253. {
  43254. using Type = PhysicalDeviceExternalMemoryRDMAFeaturesNV;
  43255. };
  43256. struct PhysicalDeviceExternalSemaphoreInfo
  43257. {
  43258. using NativeType = VkPhysicalDeviceExternalSemaphoreInfo;
  43259. static const bool allowDuplicate = false;
  43260. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceExternalSemaphoreInfo;
  43261. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  43262. VULKAN_HPP_CONSTEXPR PhysicalDeviceExternalSemaphoreInfo(
  43263. VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlagBits handleType_ = VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlagBits::eOpaqueFd,
  43264. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  43265. : pNext( pNext_ )
  43266. , handleType( handleType_ )
  43267. {
  43268. }
  43269. VULKAN_HPP_CONSTEXPR PhysicalDeviceExternalSemaphoreInfo( PhysicalDeviceExternalSemaphoreInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  43270. PhysicalDeviceExternalSemaphoreInfo( VkPhysicalDeviceExternalSemaphoreInfo const & rhs ) VULKAN_HPP_NOEXCEPT
  43271. : PhysicalDeviceExternalSemaphoreInfo( *reinterpret_cast<PhysicalDeviceExternalSemaphoreInfo const *>( &rhs ) )
  43272. {
  43273. }
  43274. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  43275. PhysicalDeviceExternalSemaphoreInfo & operator=( PhysicalDeviceExternalSemaphoreInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  43276. PhysicalDeviceExternalSemaphoreInfo & operator=( VkPhysicalDeviceExternalSemaphoreInfo const & rhs ) VULKAN_HPP_NOEXCEPT
  43277. {
  43278. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalSemaphoreInfo const *>( &rhs );
  43279. return *this;
  43280. }
  43281. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  43282. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceExternalSemaphoreInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  43283. {
  43284. pNext = pNext_;
  43285. return *this;
  43286. }
  43287. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceExternalSemaphoreInfo &
  43288. setHandleType( VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlagBits handleType_ ) VULKAN_HPP_NOEXCEPT
  43289. {
  43290. handleType = handleType_;
  43291. return *this;
  43292. }
  43293. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  43294. operator VkPhysicalDeviceExternalSemaphoreInfo const &() const VULKAN_HPP_NOEXCEPT
  43295. {
  43296. return *reinterpret_cast<const VkPhysicalDeviceExternalSemaphoreInfo *>( this );
  43297. }
  43298. operator VkPhysicalDeviceExternalSemaphoreInfo &() VULKAN_HPP_NOEXCEPT
  43299. {
  43300. return *reinterpret_cast<VkPhysicalDeviceExternalSemaphoreInfo *>( this );
  43301. }
  43302. #if defined( VULKAN_HPP_USE_REFLECT )
  43303. # if 14 <= VULKAN_HPP_CPP_VERSION
  43304. auto
  43305. # else
  43306. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlagBits const &>
  43307. # endif
  43308. reflect() const VULKAN_HPP_NOEXCEPT
  43309. {
  43310. return std::tie( sType, pNext, handleType );
  43311. }
  43312. #endif
  43313. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  43314. auto operator<=>( PhysicalDeviceExternalSemaphoreInfo const & ) const = default;
  43315. #else
  43316. bool operator==( PhysicalDeviceExternalSemaphoreInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  43317. {
  43318. # if defined( VULKAN_HPP_USE_REFLECT )
  43319. return this->reflect() == rhs.reflect();
  43320. # else
  43321. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( handleType == rhs.handleType );
  43322. # endif
  43323. }
  43324. bool operator!=( PhysicalDeviceExternalSemaphoreInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  43325. {
  43326. return !operator==( rhs );
  43327. }
  43328. #endif
  43329. public:
  43330. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceExternalSemaphoreInfo;
  43331. const void * pNext = {};
  43332. VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlagBits handleType = VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlagBits::eOpaqueFd;
  43333. };
  43334. template <>
  43335. struct CppType<StructureType, StructureType::ePhysicalDeviceExternalSemaphoreInfo>
  43336. {
  43337. using Type = PhysicalDeviceExternalSemaphoreInfo;
  43338. };
  43339. using PhysicalDeviceExternalSemaphoreInfoKHR = PhysicalDeviceExternalSemaphoreInfo;
  43340. struct PhysicalDeviceFeatures2
  43341. {
  43342. using NativeType = VkPhysicalDeviceFeatures2;
  43343. static const bool allowDuplicate = false;
  43344. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceFeatures2;
  43345. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  43346. VULKAN_HPP_CONSTEXPR PhysicalDeviceFeatures2( VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures features_ = {}, void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  43347. : pNext( pNext_ )
  43348. , features( features_ )
  43349. {
  43350. }
  43351. VULKAN_HPP_CONSTEXPR PhysicalDeviceFeatures2( PhysicalDeviceFeatures2 const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  43352. PhysicalDeviceFeatures2( VkPhysicalDeviceFeatures2 const & rhs ) VULKAN_HPP_NOEXCEPT
  43353. : PhysicalDeviceFeatures2( *reinterpret_cast<PhysicalDeviceFeatures2 const *>( &rhs ) )
  43354. {
  43355. }
  43356. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  43357. PhysicalDeviceFeatures2 & operator=( PhysicalDeviceFeatures2 const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  43358. PhysicalDeviceFeatures2 & operator=( VkPhysicalDeviceFeatures2 const & rhs ) VULKAN_HPP_NOEXCEPT
  43359. {
  43360. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures2 const *>( &rhs );
  43361. return *this;
  43362. }
  43363. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  43364. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceFeatures2 & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
  43365. {
  43366. pNext = pNext_;
  43367. return *this;
  43368. }
  43369. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceFeatures2 & setFeatures( VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures const & features_ ) VULKAN_HPP_NOEXCEPT
  43370. {
  43371. features = features_;
  43372. return *this;
  43373. }
  43374. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  43375. operator VkPhysicalDeviceFeatures2 const &() const VULKAN_HPP_NOEXCEPT
  43376. {
  43377. return *reinterpret_cast<const VkPhysicalDeviceFeatures2 *>( this );
  43378. }
  43379. operator VkPhysicalDeviceFeatures2 &() VULKAN_HPP_NOEXCEPT
  43380. {
  43381. return *reinterpret_cast<VkPhysicalDeviceFeatures2 *>( this );
  43382. }
  43383. #if defined( VULKAN_HPP_USE_REFLECT )
  43384. # if 14 <= VULKAN_HPP_CPP_VERSION
  43385. auto
  43386. # else
  43387. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures const &>
  43388. # endif
  43389. reflect() const VULKAN_HPP_NOEXCEPT
  43390. {
  43391. return std::tie( sType, pNext, features );
  43392. }
  43393. #endif
  43394. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  43395. auto operator<=>( PhysicalDeviceFeatures2 const & ) const = default;
  43396. #else
  43397. bool operator==( PhysicalDeviceFeatures2 const & rhs ) const VULKAN_HPP_NOEXCEPT
  43398. {
  43399. # if defined( VULKAN_HPP_USE_REFLECT )
  43400. return this->reflect() == rhs.reflect();
  43401. # else
  43402. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( features == rhs.features );
  43403. # endif
  43404. }
  43405. bool operator!=( PhysicalDeviceFeatures2 const & rhs ) const VULKAN_HPP_NOEXCEPT
  43406. {
  43407. return !operator==( rhs );
  43408. }
  43409. #endif
  43410. public:
  43411. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceFeatures2;
  43412. void * pNext = {};
  43413. VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures features = {};
  43414. };
  43415. template <>
  43416. struct CppType<StructureType, StructureType::ePhysicalDeviceFeatures2>
  43417. {
  43418. using Type = PhysicalDeviceFeatures2;
  43419. };
  43420. using PhysicalDeviceFeatures2KHR = PhysicalDeviceFeatures2;
  43421. struct PhysicalDeviceFloatControlsProperties
  43422. {
  43423. using NativeType = VkPhysicalDeviceFloatControlsProperties;
  43424. static const bool allowDuplicate = false;
  43425. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceFloatControlsProperties;
  43426. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  43427. VULKAN_HPP_CONSTEXPR PhysicalDeviceFloatControlsProperties(
  43428. VULKAN_HPP_NAMESPACE::ShaderFloatControlsIndependence denormBehaviorIndependence_ = VULKAN_HPP_NAMESPACE::ShaderFloatControlsIndependence::e32BitOnly,
  43429. VULKAN_HPP_NAMESPACE::ShaderFloatControlsIndependence roundingModeIndependence_ = VULKAN_HPP_NAMESPACE::ShaderFloatControlsIndependence::e32BitOnly,
  43430. VULKAN_HPP_NAMESPACE::Bool32 shaderSignedZeroInfNanPreserveFloat16_ = {},
  43431. VULKAN_HPP_NAMESPACE::Bool32 shaderSignedZeroInfNanPreserveFloat32_ = {},
  43432. VULKAN_HPP_NAMESPACE::Bool32 shaderSignedZeroInfNanPreserveFloat64_ = {},
  43433. VULKAN_HPP_NAMESPACE::Bool32 shaderDenormPreserveFloat16_ = {},
  43434. VULKAN_HPP_NAMESPACE::Bool32 shaderDenormPreserveFloat32_ = {},
  43435. VULKAN_HPP_NAMESPACE::Bool32 shaderDenormPreserveFloat64_ = {},
  43436. VULKAN_HPP_NAMESPACE::Bool32 shaderDenormFlushToZeroFloat16_ = {},
  43437. VULKAN_HPP_NAMESPACE::Bool32 shaderDenormFlushToZeroFloat32_ = {},
  43438. VULKAN_HPP_NAMESPACE::Bool32 shaderDenormFlushToZeroFloat64_ = {},
  43439. VULKAN_HPP_NAMESPACE::Bool32 shaderRoundingModeRTEFloat16_ = {},
  43440. VULKAN_HPP_NAMESPACE::Bool32 shaderRoundingModeRTEFloat32_ = {},
  43441. VULKAN_HPP_NAMESPACE::Bool32 shaderRoundingModeRTEFloat64_ = {},
  43442. VULKAN_HPP_NAMESPACE::Bool32 shaderRoundingModeRTZFloat16_ = {},
  43443. VULKAN_HPP_NAMESPACE::Bool32 shaderRoundingModeRTZFloat32_ = {},
  43444. VULKAN_HPP_NAMESPACE::Bool32 shaderRoundingModeRTZFloat64_ = {},
  43445. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  43446. : pNext( pNext_ )
  43447. , denormBehaviorIndependence( denormBehaviorIndependence_ )
  43448. , roundingModeIndependence( roundingModeIndependence_ )
  43449. , shaderSignedZeroInfNanPreserveFloat16( shaderSignedZeroInfNanPreserveFloat16_ )
  43450. , shaderSignedZeroInfNanPreserveFloat32( shaderSignedZeroInfNanPreserveFloat32_ )
  43451. , shaderSignedZeroInfNanPreserveFloat64( shaderSignedZeroInfNanPreserveFloat64_ )
  43452. , shaderDenormPreserveFloat16( shaderDenormPreserveFloat16_ )
  43453. , shaderDenormPreserveFloat32( shaderDenormPreserveFloat32_ )
  43454. , shaderDenormPreserveFloat64( shaderDenormPreserveFloat64_ )
  43455. , shaderDenormFlushToZeroFloat16( shaderDenormFlushToZeroFloat16_ )
  43456. , shaderDenormFlushToZeroFloat32( shaderDenormFlushToZeroFloat32_ )
  43457. , shaderDenormFlushToZeroFloat64( shaderDenormFlushToZeroFloat64_ )
  43458. , shaderRoundingModeRTEFloat16( shaderRoundingModeRTEFloat16_ )
  43459. , shaderRoundingModeRTEFloat32( shaderRoundingModeRTEFloat32_ )
  43460. , shaderRoundingModeRTEFloat64( shaderRoundingModeRTEFloat64_ )
  43461. , shaderRoundingModeRTZFloat16( shaderRoundingModeRTZFloat16_ )
  43462. , shaderRoundingModeRTZFloat32( shaderRoundingModeRTZFloat32_ )
  43463. , shaderRoundingModeRTZFloat64( shaderRoundingModeRTZFloat64_ )
  43464. {
  43465. }
  43466. VULKAN_HPP_CONSTEXPR PhysicalDeviceFloatControlsProperties( PhysicalDeviceFloatControlsProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  43467. PhysicalDeviceFloatControlsProperties( VkPhysicalDeviceFloatControlsProperties const & rhs ) VULKAN_HPP_NOEXCEPT
  43468. : PhysicalDeviceFloatControlsProperties( *reinterpret_cast<PhysicalDeviceFloatControlsProperties const *>( &rhs ) )
  43469. {
  43470. }
  43471. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  43472. PhysicalDeviceFloatControlsProperties & operator=( PhysicalDeviceFloatControlsProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  43473. PhysicalDeviceFloatControlsProperties & operator=( VkPhysicalDeviceFloatControlsProperties const & rhs ) VULKAN_HPP_NOEXCEPT
  43474. {
  43475. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceFloatControlsProperties const *>( &rhs );
  43476. return *this;
  43477. }
  43478. operator VkPhysicalDeviceFloatControlsProperties const &() const VULKAN_HPP_NOEXCEPT
  43479. {
  43480. return *reinterpret_cast<const VkPhysicalDeviceFloatControlsProperties *>( this );
  43481. }
  43482. operator VkPhysicalDeviceFloatControlsProperties &() VULKAN_HPP_NOEXCEPT
  43483. {
  43484. return *reinterpret_cast<VkPhysicalDeviceFloatControlsProperties *>( this );
  43485. }
  43486. #if defined( VULKAN_HPP_USE_REFLECT )
  43487. # if 14 <= VULKAN_HPP_CPP_VERSION
  43488. auto
  43489. # else
  43490. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  43491. void * const &,
  43492. VULKAN_HPP_NAMESPACE::ShaderFloatControlsIndependence const &,
  43493. VULKAN_HPP_NAMESPACE::ShaderFloatControlsIndependence const &,
  43494. VULKAN_HPP_NAMESPACE::Bool32 const &,
  43495. VULKAN_HPP_NAMESPACE::Bool32 const &,
  43496. VULKAN_HPP_NAMESPACE::Bool32 const &,
  43497. VULKAN_HPP_NAMESPACE::Bool32 const &,
  43498. VULKAN_HPP_NAMESPACE::Bool32 const &,
  43499. VULKAN_HPP_NAMESPACE::Bool32 const &,
  43500. VULKAN_HPP_NAMESPACE::Bool32 const &,
  43501. VULKAN_HPP_NAMESPACE::Bool32 const &,
  43502. VULKAN_HPP_NAMESPACE::Bool32 const &,
  43503. VULKAN_HPP_NAMESPACE::Bool32 const &,
  43504. VULKAN_HPP_NAMESPACE::Bool32 const &,
  43505. VULKAN_HPP_NAMESPACE::Bool32 const &,
  43506. VULKAN_HPP_NAMESPACE::Bool32 const &,
  43507. VULKAN_HPP_NAMESPACE::Bool32 const &,
  43508. VULKAN_HPP_NAMESPACE::Bool32 const &>
  43509. # endif
  43510. reflect() const VULKAN_HPP_NOEXCEPT
  43511. {
  43512. return std::tie( sType,
  43513. pNext,
  43514. denormBehaviorIndependence,
  43515. roundingModeIndependence,
  43516. shaderSignedZeroInfNanPreserveFloat16,
  43517. shaderSignedZeroInfNanPreserveFloat32,
  43518. shaderSignedZeroInfNanPreserveFloat64,
  43519. shaderDenormPreserveFloat16,
  43520. shaderDenormPreserveFloat32,
  43521. shaderDenormPreserveFloat64,
  43522. shaderDenormFlushToZeroFloat16,
  43523. shaderDenormFlushToZeroFloat32,
  43524. shaderDenormFlushToZeroFloat64,
  43525. shaderRoundingModeRTEFloat16,
  43526. shaderRoundingModeRTEFloat32,
  43527. shaderRoundingModeRTEFloat64,
  43528. shaderRoundingModeRTZFloat16,
  43529. shaderRoundingModeRTZFloat32,
  43530. shaderRoundingModeRTZFloat64 );
  43531. }
  43532. #endif
  43533. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  43534. auto operator<=>( PhysicalDeviceFloatControlsProperties const & ) const = default;
  43535. #else
  43536. bool operator==( PhysicalDeviceFloatControlsProperties const & rhs ) const VULKAN_HPP_NOEXCEPT
  43537. {
  43538. # if defined( VULKAN_HPP_USE_REFLECT )
  43539. return this->reflect() == rhs.reflect();
  43540. # else
  43541. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( denormBehaviorIndependence == rhs.denormBehaviorIndependence ) &&
  43542. ( roundingModeIndependence == rhs.roundingModeIndependence ) &&
  43543. ( shaderSignedZeroInfNanPreserveFloat16 == rhs.shaderSignedZeroInfNanPreserveFloat16 ) &&
  43544. ( shaderSignedZeroInfNanPreserveFloat32 == rhs.shaderSignedZeroInfNanPreserveFloat32 ) &&
  43545. ( shaderSignedZeroInfNanPreserveFloat64 == rhs.shaderSignedZeroInfNanPreserveFloat64 ) &&
  43546. ( shaderDenormPreserveFloat16 == rhs.shaderDenormPreserveFloat16 ) && ( shaderDenormPreserveFloat32 == rhs.shaderDenormPreserveFloat32 ) &&
  43547. ( shaderDenormPreserveFloat64 == rhs.shaderDenormPreserveFloat64 ) && ( shaderDenormFlushToZeroFloat16 == rhs.shaderDenormFlushToZeroFloat16 ) &&
  43548. ( shaderDenormFlushToZeroFloat32 == rhs.shaderDenormFlushToZeroFloat32 ) &&
  43549. ( shaderDenormFlushToZeroFloat64 == rhs.shaderDenormFlushToZeroFloat64 ) && ( shaderRoundingModeRTEFloat16 == rhs.shaderRoundingModeRTEFloat16 ) &&
  43550. ( shaderRoundingModeRTEFloat32 == rhs.shaderRoundingModeRTEFloat32 ) && ( shaderRoundingModeRTEFloat64 == rhs.shaderRoundingModeRTEFloat64 ) &&
  43551. ( shaderRoundingModeRTZFloat16 == rhs.shaderRoundingModeRTZFloat16 ) && ( shaderRoundingModeRTZFloat32 == rhs.shaderRoundingModeRTZFloat32 ) &&
  43552. ( shaderRoundingModeRTZFloat64 == rhs.shaderRoundingModeRTZFloat64 );
  43553. # endif
  43554. }
  43555. bool operator!=( PhysicalDeviceFloatControlsProperties const & rhs ) const VULKAN_HPP_NOEXCEPT
  43556. {
  43557. return !operator==( rhs );
  43558. }
  43559. #endif
  43560. public:
  43561. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceFloatControlsProperties;
  43562. void * pNext = {};
  43563. VULKAN_HPP_NAMESPACE::ShaderFloatControlsIndependence denormBehaviorIndependence = VULKAN_HPP_NAMESPACE::ShaderFloatControlsIndependence::e32BitOnly;
  43564. VULKAN_HPP_NAMESPACE::ShaderFloatControlsIndependence roundingModeIndependence = VULKAN_HPP_NAMESPACE::ShaderFloatControlsIndependence::e32BitOnly;
  43565. VULKAN_HPP_NAMESPACE::Bool32 shaderSignedZeroInfNanPreserveFloat16 = {};
  43566. VULKAN_HPP_NAMESPACE::Bool32 shaderSignedZeroInfNanPreserveFloat32 = {};
  43567. VULKAN_HPP_NAMESPACE::Bool32 shaderSignedZeroInfNanPreserveFloat64 = {};
  43568. VULKAN_HPP_NAMESPACE::Bool32 shaderDenormPreserveFloat16 = {};
  43569. VULKAN_HPP_NAMESPACE::Bool32 shaderDenormPreserveFloat32 = {};
  43570. VULKAN_HPP_NAMESPACE::Bool32 shaderDenormPreserveFloat64 = {};
  43571. VULKAN_HPP_NAMESPACE::Bool32 shaderDenormFlushToZeroFloat16 = {};
  43572. VULKAN_HPP_NAMESPACE::Bool32 shaderDenormFlushToZeroFloat32 = {};
  43573. VULKAN_HPP_NAMESPACE::Bool32 shaderDenormFlushToZeroFloat64 = {};
  43574. VULKAN_HPP_NAMESPACE::Bool32 shaderRoundingModeRTEFloat16 = {};
  43575. VULKAN_HPP_NAMESPACE::Bool32 shaderRoundingModeRTEFloat32 = {};
  43576. VULKAN_HPP_NAMESPACE::Bool32 shaderRoundingModeRTEFloat64 = {};
  43577. VULKAN_HPP_NAMESPACE::Bool32 shaderRoundingModeRTZFloat16 = {};
  43578. VULKAN_HPP_NAMESPACE::Bool32 shaderRoundingModeRTZFloat32 = {};
  43579. VULKAN_HPP_NAMESPACE::Bool32 shaderRoundingModeRTZFloat64 = {};
  43580. };
  43581. template <>
  43582. struct CppType<StructureType, StructureType::ePhysicalDeviceFloatControlsProperties>
  43583. {
  43584. using Type = PhysicalDeviceFloatControlsProperties;
  43585. };
  43586. using PhysicalDeviceFloatControlsPropertiesKHR = PhysicalDeviceFloatControlsProperties;
  43587. struct PhysicalDeviceFragmentDensityMap2FeaturesEXT
  43588. {
  43589. using NativeType = VkPhysicalDeviceFragmentDensityMap2FeaturesEXT;
  43590. static const bool allowDuplicate = false;
  43591. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceFragmentDensityMap2FeaturesEXT;
  43592. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  43593. VULKAN_HPP_CONSTEXPR PhysicalDeviceFragmentDensityMap2FeaturesEXT( VULKAN_HPP_NAMESPACE::Bool32 fragmentDensityMapDeferred_ = {},
  43594. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  43595. : pNext( pNext_ )
  43596. , fragmentDensityMapDeferred( fragmentDensityMapDeferred_ )
  43597. {
  43598. }
  43599. VULKAN_HPP_CONSTEXPR PhysicalDeviceFragmentDensityMap2FeaturesEXT( PhysicalDeviceFragmentDensityMap2FeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  43600. PhysicalDeviceFragmentDensityMap2FeaturesEXT( VkPhysicalDeviceFragmentDensityMap2FeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  43601. : PhysicalDeviceFragmentDensityMap2FeaturesEXT( *reinterpret_cast<PhysicalDeviceFragmentDensityMap2FeaturesEXT const *>( &rhs ) )
  43602. {
  43603. }
  43604. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  43605. PhysicalDeviceFragmentDensityMap2FeaturesEXT & operator=( PhysicalDeviceFragmentDensityMap2FeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  43606. PhysicalDeviceFragmentDensityMap2FeaturesEXT & operator=( VkPhysicalDeviceFragmentDensityMap2FeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  43607. {
  43608. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentDensityMap2FeaturesEXT const *>( &rhs );
  43609. return *this;
  43610. }
  43611. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  43612. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceFragmentDensityMap2FeaturesEXT & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
  43613. {
  43614. pNext = pNext_;
  43615. return *this;
  43616. }
  43617. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceFragmentDensityMap2FeaturesEXT &
  43618. setFragmentDensityMapDeferred( VULKAN_HPP_NAMESPACE::Bool32 fragmentDensityMapDeferred_ ) VULKAN_HPP_NOEXCEPT
  43619. {
  43620. fragmentDensityMapDeferred = fragmentDensityMapDeferred_;
  43621. return *this;
  43622. }
  43623. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  43624. operator VkPhysicalDeviceFragmentDensityMap2FeaturesEXT const &() const VULKAN_HPP_NOEXCEPT
  43625. {
  43626. return *reinterpret_cast<const VkPhysicalDeviceFragmentDensityMap2FeaturesEXT *>( this );
  43627. }
  43628. operator VkPhysicalDeviceFragmentDensityMap2FeaturesEXT &() VULKAN_HPP_NOEXCEPT
  43629. {
  43630. return *reinterpret_cast<VkPhysicalDeviceFragmentDensityMap2FeaturesEXT *>( this );
  43631. }
  43632. #if defined( VULKAN_HPP_USE_REFLECT )
  43633. # if 14 <= VULKAN_HPP_CPP_VERSION
  43634. auto
  43635. # else
  43636. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
  43637. # endif
  43638. reflect() const VULKAN_HPP_NOEXCEPT
  43639. {
  43640. return std::tie( sType, pNext, fragmentDensityMapDeferred );
  43641. }
  43642. #endif
  43643. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  43644. auto operator<=>( PhysicalDeviceFragmentDensityMap2FeaturesEXT const & ) const = default;
  43645. #else
  43646. bool operator==( PhysicalDeviceFragmentDensityMap2FeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  43647. {
  43648. # if defined( VULKAN_HPP_USE_REFLECT )
  43649. return this->reflect() == rhs.reflect();
  43650. # else
  43651. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( fragmentDensityMapDeferred == rhs.fragmentDensityMapDeferred );
  43652. # endif
  43653. }
  43654. bool operator!=( PhysicalDeviceFragmentDensityMap2FeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  43655. {
  43656. return !operator==( rhs );
  43657. }
  43658. #endif
  43659. public:
  43660. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceFragmentDensityMap2FeaturesEXT;
  43661. void * pNext = {};
  43662. VULKAN_HPP_NAMESPACE::Bool32 fragmentDensityMapDeferred = {};
  43663. };
  43664. template <>
  43665. struct CppType<StructureType, StructureType::ePhysicalDeviceFragmentDensityMap2FeaturesEXT>
  43666. {
  43667. using Type = PhysicalDeviceFragmentDensityMap2FeaturesEXT;
  43668. };
  43669. struct PhysicalDeviceFragmentDensityMap2PropertiesEXT
  43670. {
  43671. using NativeType = VkPhysicalDeviceFragmentDensityMap2PropertiesEXT;
  43672. static const bool allowDuplicate = false;
  43673. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceFragmentDensityMap2PropertiesEXT;
  43674. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  43675. VULKAN_HPP_CONSTEXPR PhysicalDeviceFragmentDensityMap2PropertiesEXT( VULKAN_HPP_NAMESPACE::Bool32 subsampledLoads_ = {},
  43676. VULKAN_HPP_NAMESPACE::Bool32 subsampledCoarseReconstructionEarlyAccess_ = {},
  43677. uint32_t maxSubsampledArrayLayers_ = {},
  43678. uint32_t maxDescriptorSetSubsampledSamplers_ = {},
  43679. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  43680. : pNext( pNext_ )
  43681. , subsampledLoads( subsampledLoads_ )
  43682. , subsampledCoarseReconstructionEarlyAccess( subsampledCoarseReconstructionEarlyAccess_ )
  43683. , maxSubsampledArrayLayers( maxSubsampledArrayLayers_ )
  43684. , maxDescriptorSetSubsampledSamplers( maxDescriptorSetSubsampledSamplers_ )
  43685. {
  43686. }
  43687. VULKAN_HPP_CONSTEXPR
  43688. PhysicalDeviceFragmentDensityMap2PropertiesEXT( PhysicalDeviceFragmentDensityMap2PropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  43689. PhysicalDeviceFragmentDensityMap2PropertiesEXT( VkPhysicalDeviceFragmentDensityMap2PropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  43690. : PhysicalDeviceFragmentDensityMap2PropertiesEXT( *reinterpret_cast<PhysicalDeviceFragmentDensityMap2PropertiesEXT const *>( &rhs ) )
  43691. {
  43692. }
  43693. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  43694. PhysicalDeviceFragmentDensityMap2PropertiesEXT & operator=( PhysicalDeviceFragmentDensityMap2PropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  43695. PhysicalDeviceFragmentDensityMap2PropertiesEXT & operator=( VkPhysicalDeviceFragmentDensityMap2PropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  43696. {
  43697. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentDensityMap2PropertiesEXT const *>( &rhs );
  43698. return *this;
  43699. }
  43700. operator VkPhysicalDeviceFragmentDensityMap2PropertiesEXT const &() const VULKAN_HPP_NOEXCEPT
  43701. {
  43702. return *reinterpret_cast<const VkPhysicalDeviceFragmentDensityMap2PropertiesEXT *>( this );
  43703. }
  43704. operator VkPhysicalDeviceFragmentDensityMap2PropertiesEXT &() VULKAN_HPP_NOEXCEPT
  43705. {
  43706. return *reinterpret_cast<VkPhysicalDeviceFragmentDensityMap2PropertiesEXT *>( this );
  43707. }
  43708. #if defined( VULKAN_HPP_USE_REFLECT )
  43709. # if 14 <= VULKAN_HPP_CPP_VERSION
  43710. auto
  43711. # else
  43712. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  43713. void * const &,
  43714. VULKAN_HPP_NAMESPACE::Bool32 const &,
  43715. VULKAN_HPP_NAMESPACE::Bool32 const &,
  43716. uint32_t const &,
  43717. uint32_t const &>
  43718. # endif
  43719. reflect() const VULKAN_HPP_NOEXCEPT
  43720. {
  43721. return std::tie( sType, pNext, subsampledLoads, subsampledCoarseReconstructionEarlyAccess, maxSubsampledArrayLayers, maxDescriptorSetSubsampledSamplers );
  43722. }
  43723. #endif
  43724. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  43725. auto operator<=>( PhysicalDeviceFragmentDensityMap2PropertiesEXT const & ) const = default;
  43726. #else
  43727. bool operator==( PhysicalDeviceFragmentDensityMap2PropertiesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  43728. {
  43729. # if defined( VULKAN_HPP_USE_REFLECT )
  43730. return this->reflect() == rhs.reflect();
  43731. # else
  43732. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( subsampledLoads == rhs.subsampledLoads ) &&
  43733. ( subsampledCoarseReconstructionEarlyAccess == rhs.subsampledCoarseReconstructionEarlyAccess ) &&
  43734. ( maxSubsampledArrayLayers == rhs.maxSubsampledArrayLayers ) && ( maxDescriptorSetSubsampledSamplers == rhs.maxDescriptorSetSubsampledSamplers );
  43735. # endif
  43736. }
  43737. bool operator!=( PhysicalDeviceFragmentDensityMap2PropertiesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  43738. {
  43739. return !operator==( rhs );
  43740. }
  43741. #endif
  43742. public:
  43743. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceFragmentDensityMap2PropertiesEXT;
  43744. void * pNext = {};
  43745. VULKAN_HPP_NAMESPACE::Bool32 subsampledLoads = {};
  43746. VULKAN_HPP_NAMESPACE::Bool32 subsampledCoarseReconstructionEarlyAccess = {};
  43747. uint32_t maxSubsampledArrayLayers = {};
  43748. uint32_t maxDescriptorSetSubsampledSamplers = {};
  43749. };
  43750. template <>
  43751. struct CppType<StructureType, StructureType::ePhysicalDeviceFragmentDensityMap2PropertiesEXT>
  43752. {
  43753. using Type = PhysicalDeviceFragmentDensityMap2PropertiesEXT;
  43754. };
  43755. struct PhysicalDeviceFragmentDensityMapFeaturesEXT
  43756. {
  43757. using NativeType = VkPhysicalDeviceFragmentDensityMapFeaturesEXT;
  43758. static const bool allowDuplicate = false;
  43759. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceFragmentDensityMapFeaturesEXT;
  43760. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  43761. VULKAN_HPP_CONSTEXPR PhysicalDeviceFragmentDensityMapFeaturesEXT( VULKAN_HPP_NAMESPACE::Bool32 fragmentDensityMap_ = {},
  43762. VULKAN_HPP_NAMESPACE::Bool32 fragmentDensityMapDynamic_ = {},
  43763. VULKAN_HPP_NAMESPACE::Bool32 fragmentDensityMapNonSubsampledImages_ = {},
  43764. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  43765. : pNext( pNext_ )
  43766. , fragmentDensityMap( fragmentDensityMap_ )
  43767. , fragmentDensityMapDynamic( fragmentDensityMapDynamic_ )
  43768. , fragmentDensityMapNonSubsampledImages( fragmentDensityMapNonSubsampledImages_ )
  43769. {
  43770. }
  43771. VULKAN_HPP_CONSTEXPR PhysicalDeviceFragmentDensityMapFeaturesEXT( PhysicalDeviceFragmentDensityMapFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  43772. PhysicalDeviceFragmentDensityMapFeaturesEXT( VkPhysicalDeviceFragmentDensityMapFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  43773. : PhysicalDeviceFragmentDensityMapFeaturesEXT( *reinterpret_cast<PhysicalDeviceFragmentDensityMapFeaturesEXT const *>( &rhs ) )
  43774. {
  43775. }
  43776. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  43777. PhysicalDeviceFragmentDensityMapFeaturesEXT & operator=( PhysicalDeviceFragmentDensityMapFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  43778. PhysicalDeviceFragmentDensityMapFeaturesEXT & operator=( VkPhysicalDeviceFragmentDensityMapFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  43779. {
  43780. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentDensityMapFeaturesEXT const *>( &rhs );
  43781. return *this;
  43782. }
  43783. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  43784. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceFragmentDensityMapFeaturesEXT & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
  43785. {
  43786. pNext = pNext_;
  43787. return *this;
  43788. }
  43789. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceFragmentDensityMapFeaturesEXT &
  43790. setFragmentDensityMap( VULKAN_HPP_NAMESPACE::Bool32 fragmentDensityMap_ ) VULKAN_HPP_NOEXCEPT
  43791. {
  43792. fragmentDensityMap = fragmentDensityMap_;
  43793. return *this;
  43794. }
  43795. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceFragmentDensityMapFeaturesEXT &
  43796. setFragmentDensityMapDynamic( VULKAN_HPP_NAMESPACE::Bool32 fragmentDensityMapDynamic_ ) VULKAN_HPP_NOEXCEPT
  43797. {
  43798. fragmentDensityMapDynamic = fragmentDensityMapDynamic_;
  43799. return *this;
  43800. }
  43801. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceFragmentDensityMapFeaturesEXT &
  43802. setFragmentDensityMapNonSubsampledImages( VULKAN_HPP_NAMESPACE::Bool32 fragmentDensityMapNonSubsampledImages_ ) VULKAN_HPP_NOEXCEPT
  43803. {
  43804. fragmentDensityMapNonSubsampledImages = fragmentDensityMapNonSubsampledImages_;
  43805. return *this;
  43806. }
  43807. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  43808. operator VkPhysicalDeviceFragmentDensityMapFeaturesEXT const &() const VULKAN_HPP_NOEXCEPT
  43809. {
  43810. return *reinterpret_cast<const VkPhysicalDeviceFragmentDensityMapFeaturesEXT *>( this );
  43811. }
  43812. operator VkPhysicalDeviceFragmentDensityMapFeaturesEXT &() VULKAN_HPP_NOEXCEPT
  43813. {
  43814. return *reinterpret_cast<VkPhysicalDeviceFragmentDensityMapFeaturesEXT *>( this );
  43815. }
  43816. #if defined( VULKAN_HPP_USE_REFLECT )
  43817. # if 14 <= VULKAN_HPP_CPP_VERSION
  43818. auto
  43819. # else
  43820. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  43821. void * const &,
  43822. VULKAN_HPP_NAMESPACE::Bool32 const &,
  43823. VULKAN_HPP_NAMESPACE::Bool32 const &,
  43824. VULKAN_HPP_NAMESPACE::Bool32 const &>
  43825. # endif
  43826. reflect() const VULKAN_HPP_NOEXCEPT
  43827. {
  43828. return std::tie( sType, pNext, fragmentDensityMap, fragmentDensityMapDynamic, fragmentDensityMapNonSubsampledImages );
  43829. }
  43830. #endif
  43831. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  43832. auto operator<=>( PhysicalDeviceFragmentDensityMapFeaturesEXT const & ) const = default;
  43833. #else
  43834. bool operator==( PhysicalDeviceFragmentDensityMapFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  43835. {
  43836. # if defined( VULKAN_HPP_USE_REFLECT )
  43837. return this->reflect() == rhs.reflect();
  43838. # else
  43839. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( fragmentDensityMap == rhs.fragmentDensityMap ) &&
  43840. ( fragmentDensityMapDynamic == rhs.fragmentDensityMapDynamic ) &&
  43841. ( fragmentDensityMapNonSubsampledImages == rhs.fragmentDensityMapNonSubsampledImages );
  43842. # endif
  43843. }
  43844. bool operator!=( PhysicalDeviceFragmentDensityMapFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  43845. {
  43846. return !operator==( rhs );
  43847. }
  43848. #endif
  43849. public:
  43850. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceFragmentDensityMapFeaturesEXT;
  43851. void * pNext = {};
  43852. VULKAN_HPP_NAMESPACE::Bool32 fragmentDensityMap = {};
  43853. VULKAN_HPP_NAMESPACE::Bool32 fragmentDensityMapDynamic = {};
  43854. VULKAN_HPP_NAMESPACE::Bool32 fragmentDensityMapNonSubsampledImages = {};
  43855. };
  43856. template <>
  43857. struct CppType<StructureType, StructureType::ePhysicalDeviceFragmentDensityMapFeaturesEXT>
  43858. {
  43859. using Type = PhysicalDeviceFragmentDensityMapFeaturesEXT;
  43860. };
  43861. struct PhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM
  43862. {
  43863. using NativeType = VkPhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM;
  43864. static const bool allowDuplicate = false;
  43865. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM;
  43866. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  43867. VULKAN_HPP_CONSTEXPR PhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM( VULKAN_HPP_NAMESPACE::Bool32 fragmentDensityMapOffset_ = {},
  43868. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  43869. : pNext( pNext_ )
  43870. , fragmentDensityMapOffset( fragmentDensityMapOffset_ )
  43871. {
  43872. }
  43873. VULKAN_HPP_CONSTEXPR
  43874. PhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM( PhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  43875. PhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM( VkPhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM const & rhs ) VULKAN_HPP_NOEXCEPT
  43876. : PhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM( *reinterpret_cast<PhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM const *>( &rhs ) )
  43877. {
  43878. }
  43879. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  43880. PhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM &
  43881. operator=( PhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  43882. PhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM & operator=( VkPhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM const & rhs ) VULKAN_HPP_NOEXCEPT
  43883. {
  43884. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM const *>( &rhs );
  43885. return *this;
  43886. }
  43887. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  43888. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
  43889. {
  43890. pNext = pNext_;
  43891. return *this;
  43892. }
  43893. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM &
  43894. setFragmentDensityMapOffset( VULKAN_HPP_NAMESPACE::Bool32 fragmentDensityMapOffset_ ) VULKAN_HPP_NOEXCEPT
  43895. {
  43896. fragmentDensityMapOffset = fragmentDensityMapOffset_;
  43897. return *this;
  43898. }
  43899. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  43900. operator VkPhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM const &() const VULKAN_HPP_NOEXCEPT
  43901. {
  43902. return *reinterpret_cast<const VkPhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM *>( this );
  43903. }
  43904. operator VkPhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM &() VULKAN_HPP_NOEXCEPT
  43905. {
  43906. return *reinterpret_cast<VkPhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM *>( this );
  43907. }
  43908. #if defined( VULKAN_HPP_USE_REFLECT )
  43909. # if 14 <= VULKAN_HPP_CPP_VERSION
  43910. auto
  43911. # else
  43912. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
  43913. # endif
  43914. reflect() const VULKAN_HPP_NOEXCEPT
  43915. {
  43916. return std::tie( sType, pNext, fragmentDensityMapOffset );
  43917. }
  43918. #endif
  43919. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  43920. auto operator<=>( PhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM const & ) const = default;
  43921. #else
  43922. bool operator==( PhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM const & rhs ) const VULKAN_HPP_NOEXCEPT
  43923. {
  43924. # if defined( VULKAN_HPP_USE_REFLECT )
  43925. return this->reflect() == rhs.reflect();
  43926. # else
  43927. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( fragmentDensityMapOffset == rhs.fragmentDensityMapOffset );
  43928. # endif
  43929. }
  43930. bool operator!=( PhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM const & rhs ) const VULKAN_HPP_NOEXCEPT
  43931. {
  43932. return !operator==( rhs );
  43933. }
  43934. #endif
  43935. public:
  43936. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM;
  43937. void * pNext = {};
  43938. VULKAN_HPP_NAMESPACE::Bool32 fragmentDensityMapOffset = {};
  43939. };
  43940. template <>
  43941. struct CppType<StructureType, StructureType::ePhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM>
  43942. {
  43943. using Type = PhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM;
  43944. };
  43945. struct PhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM
  43946. {
  43947. using NativeType = VkPhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM;
  43948. static const bool allowDuplicate = false;
  43949. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM;
  43950. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  43951. VULKAN_HPP_CONSTEXPR PhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM( VULKAN_HPP_NAMESPACE::Extent2D fragmentDensityOffsetGranularity_ = {},
  43952. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  43953. : pNext( pNext_ )
  43954. , fragmentDensityOffsetGranularity( fragmentDensityOffsetGranularity_ )
  43955. {
  43956. }
  43957. VULKAN_HPP_CONSTEXPR
  43958. PhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM( PhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  43959. PhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM( VkPhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM const & rhs ) VULKAN_HPP_NOEXCEPT
  43960. : PhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM( *reinterpret_cast<PhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM const *>( &rhs ) )
  43961. {
  43962. }
  43963. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  43964. PhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM &
  43965. operator=( PhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  43966. PhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM & operator=( VkPhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM const & rhs ) VULKAN_HPP_NOEXCEPT
  43967. {
  43968. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM const *>( &rhs );
  43969. return *this;
  43970. }
  43971. operator VkPhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM const &() const VULKAN_HPP_NOEXCEPT
  43972. {
  43973. return *reinterpret_cast<const VkPhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM *>( this );
  43974. }
  43975. operator VkPhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM &() VULKAN_HPP_NOEXCEPT
  43976. {
  43977. return *reinterpret_cast<VkPhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM *>( this );
  43978. }
  43979. #if defined( VULKAN_HPP_USE_REFLECT )
  43980. # if 14 <= VULKAN_HPP_CPP_VERSION
  43981. auto
  43982. # else
  43983. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Extent2D const &>
  43984. # endif
  43985. reflect() const VULKAN_HPP_NOEXCEPT
  43986. {
  43987. return std::tie( sType, pNext, fragmentDensityOffsetGranularity );
  43988. }
  43989. #endif
  43990. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  43991. auto operator<=>( PhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM const & ) const = default;
  43992. #else
  43993. bool operator==( PhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM const & rhs ) const VULKAN_HPP_NOEXCEPT
  43994. {
  43995. # if defined( VULKAN_HPP_USE_REFLECT )
  43996. return this->reflect() == rhs.reflect();
  43997. # else
  43998. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( fragmentDensityOffsetGranularity == rhs.fragmentDensityOffsetGranularity );
  43999. # endif
  44000. }
  44001. bool operator!=( PhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM const & rhs ) const VULKAN_HPP_NOEXCEPT
  44002. {
  44003. return !operator==( rhs );
  44004. }
  44005. #endif
  44006. public:
  44007. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM;
  44008. void * pNext = {};
  44009. VULKAN_HPP_NAMESPACE::Extent2D fragmentDensityOffsetGranularity = {};
  44010. };
  44011. template <>
  44012. struct CppType<StructureType, StructureType::ePhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM>
  44013. {
  44014. using Type = PhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM;
  44015. };
  44016. struct PhysicalDeviceFragmentDensityMapPropertiesEXT
  44017. {
  44018. using NativeType = VkPhysicalDeviceFragmentDensityMapPropertiesEXT;
  44019. static const bool allowDuplicate = false;
  44020. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceFragmentDensityMapPropertiesEXT;
  44021. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  44022. VULKAN_HPP_CONSTEXPR PhysicalDeviceFragmentDensityMapPropertiesEXT( VULKAN_HPP_NAMESPACE::Extent2D minFragmentDensityTexelSize_ = {},
  44023. VULKAN_HPP_NAMESPACE::Extent2D maxFragmentDensityTexelSize_ = {},
  44024. VULKAN_HPP_NAMESPACE::Bool32 fragmentDensityInvocations_ = {},
  44025. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  44026. : pNext( pNext_ )
  44027. , minFragmentDensityTexelSize( minFragmentDensityTexelSize_ )
  44028. , maxFragmentDensityTexelSize( maxFragmentDensityTexelSize_ )
  44029. , fragmentDensityInvocations( fragmentDensityInvocations_ )
  44030. {
  44031. }
  44032. VULKAN_HPP_CONSTEXPR
  44033. PhysicalDeviceFragmentDensityMapPropertiesEXT( PhysicalDeviceFragmentDensityMapPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  44034. PhysicalDeviceFragmentDensityMapPropertiesEXT( VkPhysicalDeviceFragmentDensityMapPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  44035. : PhysicalDeviceFragmentDensityMapPropertiesEXT( *reinterpret_cast<PhysicalDeviceFragmentDensityMapPropertiesEXT const *>( &rhs ) )
  44036. {
  44037. }
  44038. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  44039. PhysicalDeviceFragmentDensityMapPropertiesEXT & operator=( PhysicalDeviceFragmentDensityMapPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  44040. PhysicalDeviceFragmentDensityMapPropertiesEXT & operator=( VkPhysicalDeviceFragmentDensityMapPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  44041. {
  44042. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentDensityMapPropertiesEXT const *>( &rhs );
  44043. return *this;
  44044. }
  44045. operator VkPhysicalDeviceFragmentDensityMapPropertiesEXT const &() const VULKAN_HPP_NOEXCEPT
  44046. {
  44047. return *reinterpret_cast<const VkPhysicalDeviceFragmentDensityMapPropertiesEXT *>( this );
  44048. }
  44049. operator VkPhysicalDeviceFragmentDensityMapPropertiesEXT &() VULKAN_HPP_NOEXCEPT
  44050. {
  44051. return *reinterpret_cast<VkPhysicalDeviceFragmentDensityMapPropertiesEXT *>( this );
  44052. }
  44053. #if defined( VULKAN_HPP_USE_REFLECT )
  44054. # if 14 <= VULKAN_HPP_CPP_VERSION
  44055. auto
  44056. # else
  44057. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  44058. void * const &,
  44059. VULKAN_HPP_NAMESPACE::Extent2D const &,
  44060. VULKAN_HPP_NAMESPACE::Extent2D const &,
  44061. VULKAN_HPP_NAMESPACE::Bool32 const &>
  44062. # endif
  44063. reflect() const VULKAN_HPP_NOEXCEPT
  44064. {
  44065. return std::tie( sType, pNext, minFragmentDensityTexelSize, maxFragmentDensityTexelSize, fragmentDensityInvocations );
  44066. }
  44067. #endif
  44068. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  44069. auto operator<=>( PhysicalDeviceFragmentDensityMapPropertiesEXT const & ) const = default;
  44070. #else
  44071. bool operator==( PhysicalDeviceFragmentDensityMapPropertiesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  44072. {
  44073. # if defined( VULKAN_HPP_USE_REFLECT )
  44074. return this->reflect() == rhs.reflect();
  44075. # else
  44076. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( minFragmentDensityTexelSize == rhs.minFragmentDensityTexelSize ) &&
  44077. ( maxFragmentDensityTexelSize == rhs.maxFragmentDensityTexelSize ) && ( fragmentDensityInvocations == rhs.fragmentDensityInvocations );
  44078. # endif
  44079. }
  44080. bool operator!=( PhysicalDeviceFragmentDensityMapPropertiesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  44081. {
  44082. return !operator==( rhs );
  44083. }
  44084. #endif
  44085. public:
  44086. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceFragmentDensityMapPropertiesEXT;
  44087. void * pNext = {};
  44088. VULKAN_HPP_NAMESPACE::Extent2D minFragmentDensityTexelSize = {};
  44089. VULKAN_HPP_NAMESPACE::Extent2D maxFragmentDensityTexelSize = {};
  44090. VULKAN_HPP_NAMESPACE::Bool32 fragmentDensityInvocations = {};
  44091. };
  44092. template <>
  44093. struct CppType<StructureType, StructureType::ePhysicalDeviceFragmentDensityMapPropertiesEXT>
  44094. {
  44095. using Type = PhysicalDeviceFragmentDensityMapPropertiesEXT;
  44096. };
  44097. struct PhysicalDeviceFragmentShaderBarycentricFeaturesKHR
  44098. {
  44099. using NativeType = VkPhysicalDeviceFragmentShaderBarycentricFeaturesKHR;
  44100. static const bool allowDuplicate = false;
  44101. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceFragmentShaderBarycentricFeaturesKHR;
  44102. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  44103. VULKAN_HPP_CONSTEXPR PhysicalDeviceFragmentShaderBarycentricFeaturesKHR( VULKAN_HPP_NAMESPACE::Bool32 fragmentShaderBarycentric_ = {},
  44104. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  44105. : pNext( pNext_ )
  44106. , fragmentShaderBarycentric( fragmentShaderBarycentric_ )
  44107. {
  44108. }
  44109. VULKAN_HPP_CONSTEXPR
  44110. PhysicalDeviceFragmentShaderBarycentricFeaturesKHR( PhysicalDeviceFragmentShaderBarycentricFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  44111. PhysicalDeviceFragmentShaderBarycentricFeaturesKHR( VkPhysicalDeviceFragmentShaderBarycentricFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  44112. : PhysicalDeviceFragmentShaderBarycentricFeaturesKHR( *reinterpret_cast<PhysicalDeviceFragmentShaderBarycentricFeaturesKHR const *>( &rhs ) )
  44113. {
  44114. }
  44115. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  44116. PhysicalDeviceFragmentShaderBarycentricFeaturesKHR &
  44117. operator=( PhysicalDeviceFragmentShaderBarycentricFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  44118. PhysicalDeviceFragmentShaderBarycentricFeaturesKHR & operator=( VkPhysicalDeviceFragmentShaderBarycentricFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  44119. {
  44120. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShaderBarycentricFeaturesKHR const *>( &rhs );
  44121. return *this;
  44122. }
  44123. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  44124. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceFragmentShaderBarycentricFeaturesKHR & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
  44125. {
  44126. pNext = pNext_;
  44127. return *this;
  44128. }
  44129. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceFragmentShaderBarycentricFeaturesKHR &
  44130. setFragmentShaderBarycentric( VULKAN_HPP_NAMESPACE::Bool32 fragmentShaderBarycentric_ ) VULKAN_HPP_NOEXCEPT
  44131. {
  44132. fragmentShaderBarycentric = fragmentShaderBarycentric_;
  44133. return *this;
  44134. }
  44135. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  44136. operator VkPhysicalDeviceFragmentShaderBarycentricFeaturesKHR const &() const VULKAN_HPP_NOEXCEPT
  44137. {
  44138. return *reinterpret_cast<const VkPhysicalDeviceFragmentShaderBarycentricFeaturesKHR *>( this );
  44139. }
  44140. operator VkPhysicalDeviceFragmentShaderBarycentricFeaturesKHR &() VULKAN_HPP_NOEXCEPT
  44141. {
  44142. return *reinterpret_cast<VkPhysicalDeviceFragmentShaderBarycentricFeaturesKHR *>( this );
  44143. }
  44144. #if defined( VULKAN_HPP_USE_REFLECT )
  44145. # if 14 <= VULKAN_HPP_CPP_VERSION
  44146. auto
  44147. # else
  44148. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
  44149. # endif
  44150. reflect() const VULKAN_HPP_NOEXCEPT
  44151. {
  44152. return std::tie( sType, pNext, fragmentShaderBarycentric );
  44153. }
  44154. #endif
  44155. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  44156. auto operator<=>( PhysicalDeviceFragmentShaderBarycentricFeaturesKHR const & ) const = default;
  44157. #else
  44158. bool operator==( PhysicalDeviceFragmentShaderBarycentricFeaturesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  44159. {
  44160. # if defined( VULKAN_HPP_USE_REFLECT )
  44161. return this->reflect() == rhs.reflect();
  44162. # else
  44163. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( fragmentShaderBarycentric == rhs.fragmentShaderBarycentric );
  44164. # endif
  44165. }
  44166. bool operator!=( PhysicalDeviceFragmentShaderBarycentricFeaturesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  44167. {
  44168. return !operator==( rhs );
  44169. }
  44170. #endif
  44171. public:
  44172. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceFragmentShaderBarycentricFeaturesKHR;
  44173. void * pNext = {};
  44174. VULKAN_HPP_NAMESPACE::Bool32 fragmentShaderBarycentric = {};
  44175. };
  44176. template <>
  44177. struct CppType<StructureType, StructureType::ePhysicalDeviceFragmentShaderBarycentricFeaturesKHR>
  44178. {
  44179. using Type = PhysicalDeviceFragmentShaderBarycentricFeaturesKHR;
  44180. };
  44181. using PhysicalDeviceFragmentShaderBarycentricFeaturesNV = PhysicalDeviceFragmentShaderBarycentricFeaturesKHR;
  44182. struct PhysicalDeviceFragmentShaderBarycentricPropertiesKHR
  44183. {
  44184. using NativeType = VkPhysicalDeviceFragmentShaderBarycentricPropertiesKHR;
  44185. static const bool allowDuplicate = false;
  44186. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceFragmentShaderBarycentricPropertiesKHR;
  44187. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  44188. VULKAN_HPP_CONSTEXPR
  44189. PhysicalDeviceFragmentShaderBarycentricPropertiesKHR( VULKAN_HPP_NAMESPACE::Bool32 triStripVertexOrderIndependentOfProvokingVertex_ = {},
  44190. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  44191. : pNext( pNext_ )
  44192. , triStripVertexOrderIndependentOfProvokingVertex( triStripVertexOrderIndependentOfProvokingVertex_ )
  44193. {
  44194. }
  44195. VULKAN_HPP_CONSTEXPR
  44196. PhysicalDeviceFragmentShaderBarycentricPropertiesKHR( PhysicalDeviceFragmentShaderBarycentricPropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  44197. PhysicalDeviceFragmentShaderBarycentricPropertiesKHR( VkPhysicalDeviceFragmentShaderBarycentricPropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  44198. : PhysicalDeviceFragmentShaderBarycentricPropertiesKHR( *reinterpret_cast<PhysicalDeviceFragmentShaderBarycentricPropertiesKHR const *>( &rhs ) )
  44199. {
  44200. }
  44201. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  44202. PhysicalDeviceFragmentShaderBarycentricPropertiesKHR &
  44203. operator=( PhysicalDeviceFragmentShaderBarycentricPropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  44204. PhysicalDeviceFragmentShaderBarycentricPropertiesKHR & operator=( VkPhysicalDeviceFragmentShaderBarycentricPropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  44205. {
  44206. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShaderBarycentricPropertiesKHR const *>( &rhs );
  44207. return *this;
  44208. }
  44209. operator VkPhysicalDeviceFragmentShaderBarycentricPropertiesKHR const &() const VULKAN_HPP_NOEXCEPT
  44210. {
  44211. return *reinterpret_cast<const VkPhysicalDeviceFragmentShaderBarycentricPropertiesKHR *>( this );
  44212. }
  44213. operator VkPhysicalDeviceFragmentShaderBarycentricPropertiesKHR &() VULKAN_HPP_NOEXCEPT
  44214. {
  44215. return *reinterpret_cast<VkPhysicalDeviceFragmentShaderBarycentricPropertiesKHR *>( this );
  44216. }
  44217. #if defined( VULKAN_HPP_USE_REFLECT )
  44218. # if 14 <= VULKAN_HPP_CPP_VERSION
  44219. auto
  44220. # else
  44221. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
  44222. # endif
  44223. reflect() const VULKAN_HPP_NOEXCEPT
  44224. {
  44225. return std::tie( sType, pNext, triStripVertexOrderIndependentOfProvokingVertex );
  44226. }
  44227. #endif
  44228. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  44229. auto operator<=>( PhysicalDeviceFragmentShaderBarycentricPropertiesKHR const & ) const = default;
  44230. #else
  44231. bool operator==( PhysicalDeviceFragmentShaderBarycentricPropertiesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  44232. {
  44233. # if defined( VULKAN_HPP_USE_REFLECT )
  44234. return this->reflect() == rhs.reflect();
  44235. # else
  44236. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) &&
  44237. ( triStripVertexOrderIndependentOfProvokingVertex == rhs.triStripVertexOrderIndependentOfProvokingVertex );
  44238. # endif
  44239. }
  44240. bool operator!=( PhysicalDeviceFragmentShaderBarycentricPropertiesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  44241. {
  44242. return !operator==( rhs );
  44243. }
  44244. #endif
  44245. public:
  44246. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceFragmentShaderBarycentricPropertiesKHR;
  44247. void * pNext = {};
  44248. VULKAN_HPP_NAMESPACE::Bool32 triStripVertexOrderIndependentOfProvokingVertex = {};
  44249. };
  44250. template <>
  44251. struct CppType<StructureType, StructureType::ePhysicalDeviceFragmentShaderBarycentricPropertiesKHR>
  44252. {
  44253. using Type = PhysicalDeviceFragmentShaderBarycentricPropertiesKHR;
  44254. };
  44255. struct PhysicalDeviceFragmentShaderInterlockFeaturesEXT
  44256. {
  44257. using NativeType = VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT;
  44258. static const bool allowDuplicate = false;
  44259. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceFragmentShaderInterlockFeaturesEXT;
  44260. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  44261. VULKAN_HPP_CONSTEXPR PhysicalDeviceFragmentShaderInterlockFeaturesEXT( VULKAN_HPP_NAMESPACE::Bool32 fragmentShaderSampleInterlock_ = {},
  44262. VULKAN_HPP_NAMESPACE::Bool32 fragmentShaderPixelInterlock_ = {},
  44263. VULKAN_HPP_NAMESPACE::Bool32 fragmentShaderShadingRateInterlock_ = {},
  44264. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  44265. : pNext( pNext_ )
  44266. , fragmentShaderSampleInterlock( fragmentShaderSampleInterlock_ )
  44267. , fragmentShaderPixelInterlock( fragmentShaderPixelInterlock_ )
  44268. , fragmentShaderShadingRateInterlock( fragmentShaderShadingRateInterlock_ )
  44269. {
  44270. }
  44271. VULKAN_HPP_CONSTEXPR
  44272. PhysicalDeviceFragmentShaderInterlockFeaturesEXT( PhysicalDeviceFragmentShaderInterlockFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  44273. PhysicalDeviceFragmentShaderInterlockFeaturesEXT( VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  44274. : PhysicalDeviceFragmentShaderInterlockFeaturesEXT( *reinterpret_cast<PhysicalDeviceFragmentShaderInterlockFeaturesEXT const *>( &rhs ) )
  44275. {
  44276. }
  44277. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  44278. PhysicalDeviceFragmentShaderInterlockFeaturesEXT & operator=( PhysicalDeviceFragmentShaderInterlockFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  44279. PhysicalDeviceFragmentShaderInterlockFeaturesEXT & operator=( VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  44280. {
  44281. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShaderInterlockFeaturesEXT const *>( &rhs );
  44282. return *this;
  44283. }
  44284. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  44285. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceFragmentShaderInterlockFeaturesEXT & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
  44286. {
  44287. pNext = pNext_;
  44288. return *this;
  44289. }
  44290. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceFragmentShaderInterlockFeaturesEXT &
  44291. setFragmentShaderSampleInterlock( VULKAN_HPP_NAMESPACE::Bool32 fragmentShaderSampleInterlock_ ) VULKAN_HPP_NOEXCEPT
  44292. {
  44293. fragmentShaderSampleInterlock = fragmentShaderSampleInterlock_;
  44294. return *this;
  44295. }
  44296. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceFragmentShaderInterlockFeaturesEXT &
  44297. setFragmentShaderPixelInterlock( VULKAN_HPP_NAMESPACE::Bool32 fragmentShaderPixelInterlock_ ) VULKAN_HPP_NOEXCEPT
  44298. {
  44299. fragmentShaderPixelInterlock = fragmentShaderPixelInterlock_;
  44300. return *this;
  44301. }
  44302. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceFragmentShaderInterlockFeaturesEXT &
  44303. setFragmentShaderShadingRateInterlock( VULKAN_HPP_NAMESPACE::Bool32 fragmentShaderShadingRateInterlock_ ) VULKAN_HPP_NOEXCEPT
  44304. {
  44305. fragmentShaderShadingRateInterlock = fragmentShaderShadingRateInterlock_;
  44306. return *this;
  44307. }
  44308. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  44309. operator VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT const &() const VULKAN_HPP_NOEXCEPT
  44310. {
  44311. return *reinterpret_cast<const VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT *>( this );
  44312. }
  44313. operator VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT &() VULKAN_HPP_NOEXCEPT
  44314. {
  44315. return *reinterpret_cast<VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT *>( this );
  44316. }
  44317. #if defined( VULKAN_HPP_USE_REFLECT )
  44318. # if 14 <= VULKAN_HPP_CPP_VERSION
  44319. auto
  44320. # else
  44321. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  44322. void * const &,
  44323. VULKAN_HPP_NAMESPACE::Bool32 const &,
  44324. VULKAN_HPP_NAMESPACE::Bool32 const &,
  44325. VULKAN_HPP_NAMESPACE::Bool32 const &>
  44326. # endif
  44327. reflect() const VULKAN_HPP_NOEXCEPT
  44328. {
  44329. return std::tie( sType, pNext, fragmentShaderSampleInterlock, fragmentShaderPixelInterlock, fragmentShaderShadingRateInterlock );
  44330. }
  44331. #endif
  44332. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  44333. auto operator<=>( PhysicalDeviceFragmentShaderInterlockFeaturesEXT const & ) const = default;
  44334. #else
  44335. bool operator==( PhysicalDeviceFragmentShaderInterlockFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  44336. {
  44337. # if defined( VULKAN_HPP_USE_REFLECT )
  44338. return this->reflect() == rhs.reflect();
  44339. # else
  44340. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( fragmentShaderSampleInterlock == rhs.fragmentShaderSampleInterlock ) &&
  44341. ( fragmentShaderPixelInterlock == rhs.fragmentShaderPixelInterlock ) &&
  44342. ( fragmentShaderShadingRateInterlock == rhs.fragmentShaderShadingRateInterlock );
  44343. # endif
  44344. }
  44345. bool operator!=( PhysicalDeviceFragmentShaderInterlockFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  44346. {
  44347. return !operator==( rhs );
  44348. }
  44349. #endif
  44350. public:
  44351. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceFragmentShaderInterlockFeaturesEXT;
  44352. void * pNext = {};
  44353. VULKAN_HPP_NAMESPACE::Bool32 fragmentShaderSampleInterlock = {};
  44354. VULKAN_HPP_NAMESPACE::Bool32 fragmentShaderPixelInterlock = {};
  44355. VULKAN_HPP_NAMESPACE::Bool32 fragmentShaderShadingRateInterlock = {};
  44356. };
  44357. template <>
  44358. struct CppType<StructureType, StructureType::ePhysicalDeviceFragmentShaderInterlockFeaturesEXT>
  44359. {
  44360. using Type = PhysicalDeviceFragmentShaderInterlockFeaturesEXT;
  44361. };
  44362. struct PhysicalDeviceFragmentShadingRateEnumsFeaturesNV
  44363. {
  44364. using NativeType = VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV;
  44365. static const bool allowDuplicate = false;
  44366. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceFragmentShadingRateEnumsFeaturesNV;
  44367. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  44368. VULKAN_HPP_CONSTEXPR PhysicalDeviceFragmentShadingRateEnumsFeaturesNV( VULKAN_HPP_NAMESPACE::Bool32 fragmentShadingRateEnums_ = {},
  44369. VULKAN_HPP_NAMESPACE::Bool32 supersampleFragmentShadingRates_ = {},
  44370. VULKAN_HPP_NAMESPACE::Bool32 noInvocationFragmentShadingRates_ = {},
  44371. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  44372. : pNext( pNext_ )
  44373. , fragmentShadingRateEnums( fragmentShadingRateEnums_ )
  44374. , supersampleFragmentShadingRates( supersampleFragmentShadingRates_ )
  44375. , noInvocationFragmentShadingRates( noInvocationFragmentShadingRates_ )
  44376. {
  44377. }
  44378. VULKAN_HPP_CONSTEXPR
  44379. PhysicalDeviceFragmentShadingRateEnumsFeaturesNV( PhysicalDeviceFragmentShadingRateEnumsFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  44380. PhysicalDeviceFragmentShadingRateEnumsFeaturesNV( VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT
  44381. : PhysicalDeviceFragmentShadingRateEnumsFeaturesNV( *reinterpret_cast<PhysicalDeviceFragmentShadingRateEnumsFeaturesNV const *>( &rhs ) )
  44382. {
  44383. }
  44384. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  44385. PhysicalDeviceFragmentShadingRateEnumsFeaturesNV & operator=( PhysicalDeviceFragmentShadingRateEnumsFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  44386. PhysicalDeviceFragmentShadingRateEnumsFeaturesNV & operator=( VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT
  44387. {
  44388. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShadingRateEnumsFeaturesNV const *>( &rhs );
  44389. return *this;
  44390. }
  44391. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  44392. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceFragmentShadingRateEnumsFeaturesNV & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
  44393. {
  44394. pNext = pNext_;
  44395. return *this;
  44396. }
  44397. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceFragmentShadingRateEnumsFeaturesNV &
  44398. setFragmentShadingRateEnums( VULKAN_HPP_NAMESPACE::Bool32 fragmentShadingRateEnums_ ) VULKAN_HPP_NOEXCEPT
  44399. {
  44400. fragmentShadingRateEnums = fragmentShadingRateEnums_;
  44401. return *this;
  44402. }
  44403. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceFragmentShadingRateEnumsFeaturesNV &
  44404. setSupersampleFragmentShadingRates( VULKAN_HPP_NAMESPACE::Bool32 supersampleFragmentShadingRates_ ) VULKAN_HPP_NOEXCEPT
  44405. {
  44406. supersampleFragmentShadingRates = supersampleFragmentShadingRates_;
  44407. return *this;
  44408. }
  44409. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceFragmentShadingRateEnumsFeaturesNV &
  44410. setNoInvocationFragmentShadingRates( VULKAN_HPP_NAMESPACE::Bool32 noInvocationFragmentShadingRates_ ) VULKAN_HPP_NOEXCEPT
  44411. {
  44412. noInvocationFragmentShadingRates = noInvocationFragmentShadingRates_;
  44413. return *this;
  44414. }
  44415. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  44416. operator VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV const &() const VULKAN_HPP_NOEXCEPT
  44417. {
  44418. return *reinterpret_cast<const VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV *>( this );
  44419. }
  44420. operator VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV &() VULKAN_HPP_NOEXCEPT
  44421. {
  44422. return *reinterpret_cast<VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV *>( this );
  44423. }
  44424. #if defined( VULKAN_HPP_USE_REFLECT )
  44425. # if 14 <= VULKAN_HPP_CPP_VERSION
  44426. auto
  44427. # else
  44428. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  44429. void * const &,
  44430. VULKAN_HPP_NAMESPACE::Bool32 const &,
  44431. VULKAN_HPP_NAMESPACE::Bool32 const &,
  44432. VULKAN_HPP_NAMESPACE::Bool32 const &>
  44433. # endif
  44434. reflect() const VULKAN_HPP_NOEXCEPT
  44435. {
  44436. return std::tie( sType, pNext, fragmentShadingRateEnums, supersampleFragmentShadingRates, noInvocationFragmentShadingRates );
  44437. }
  44438. #endif
  44439. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  44440. auto operator<=>( PhysicalDeviceFragmentShadingRateEnumsFeaturesNV const & ) const = default;
  44441. #else
  44442. bool operator==( PhysicalDeviceFragmentShadingRateEnumsFeaturesNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  44443. {
  44444. # if defined( VULKAN_HPP_USE_REFLECT )
  44445. return this->reflect() == rhs.reflect();
  44446. # else
  44447. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( fragmentShadingRateEnums == rhs.fragmentShadingRateEnums ) &&
  44448. ( supersampleFragmentShadingRates == rhs.supersampleFragmentShadingRates ) &&
  44449. ( noInvocationFragmentShadingRates == rhs.noInvocationFragmentShadingRates );
  44450. # endif
  44451. }
  44452. bool operator!=( PhysicalDeviceFragmentShadingRateEnumsFeaturesNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  44453. {
  44454. return !operator==( rhs );
  44455. }
  44456. #endif
  44457. public:
  44458. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceFragmentShadingRateEnumsFeaturesNV;
  44459. void * pNext = {};
  44460. VULKAN_HPP_NAMESPACE::Bool32 fragmentShadingRateEnums = {};
  44461. VULKAN_HPP_NAMESPACE::Bool32 supersampleFragmentShadingRates = {};
  44462. VULKAN_HPP_NAMESPACE::Bool32 noInvocationFragmentShadingRates = {};
  44463. };
  44464. template <>
  44465. struct CppType<StructureType, StructureType::ePhysicalDeviceFragmentShadingRateEnumsFeaturesNV>
  44466. {
  44467. using Type = PhysicalDeviceFragmentShadingRateEnumsFeaturesNV;
  44468. };
  44469. struct PhysicalDeviceFragmentShadingRateEnumsPropertiesNV
  44470. {
  44471. using NativeType = VkPhysicalDeviceFragmentShadingRateEnumsPropertiesNV;
  44472. static const bool allowDuplicate = false;
  44473. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceFragmentShadingRateEnumsPropertiesNV;
  44474. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  44475. VULKAN_HPP_CONSTEXPR PhysicalDeviceFragmentShadingRateEnumsPropertiesNV(
  44476. VULKAN_HPP_NAMESPACE::SampleCountFlagBits maxFragmentShadingRateInvocationCount_ = VULKAN_HPP_NAMESPACE::SampleCountFlagBits::e1,
  44477. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  44478. : pNext( pNext_ )
  44479. , maxFragmentShadingRateInvocationCount( maxFragmentShadingRateInvocationCount_ )
  44480. {
  44481. }
  44482. VULKAN_HPP_CONSTEXPR
  44483. PhysicalDeviceFragmentShadingRateEnumsPropertiesNV( PhysicalDeviceFragmentShadingRateEnumsPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  44484. PhysicalDeviceFragmentShadingRateEnumsPropertiesNV( VkPhysicalDeviceFragmentShadingRateEnumsPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT
  44485. : PhysicalDeviceFragmentShadingRateEnumsPropertiesNV( *reinterpret_cast<PhysicalDeviceFragmentShadingRateEnumsPropertiesNV const *>( &rhs ) )
  44486. {
  44487. }
  44488. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  44489. PhysicalDeviceFragmentShadingRateEnumsPropertiesNV &
  44490. operator=( PhysicalDeviceFragmentShadingRateEnumsPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  44491. PhysicalDeviceFragmentShadingRateEnumsPropertiesNV & operator=( VkPhysicalDeviceFragmentShadingRateEnumsPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT
  44492. {
  44493. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShadingRateEnumsPropertiesNV const *>( &rhs );
  44494. return *this;
  44495. }
  44496. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  44497. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceFragmentShadingRateEnumsPropertiesNV & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
  44498. {
  44499. pNext = pNext_;
  44500. return *this;
  44501. }
  44502. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceFragmentShadingRateEnumsPropertiesNV &
  44503. setMaxFragmentShadingRateInvocationCount( VULKAN_HPP_NAMESPACE::SampleCountFlagBits maxFragmentShadingRateInvocationCount_ ) VULKAN_HPP_NOEXCEPT
  44504. {
  44505. maxFragmentShadingRateInvocationCount = maxFragmentShadingRateInvocationCount_;
  44506. return *this;
  44507. }
  44508. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  44509. operator VkPhysicalDeviceFragmentShadingRateEnumsPropertiesNV const &() const VULKAN_HPP_NOEXCEPT
  44510. {
  44511. return *reinterpret_cast<const VkPhysicalDeviceFragmentShadingRateEnumsPropertiesNV *>( this );
  44512. }
  44513. operator VkPhysicalDeviceFragmentShadingRateEnumsPropertiesNV &() VULKAN_HPP_NOEXCEPT
  44514. {
  44515. return *reinterpret_cast<VkPhysicalDeviceFragmentShadingRateEnumsPropertiesNV *>( this );
  44516. }
  44517. #if defined( VULKAN_HPP_USE_REFLECT )
  44518. # if 14 <= VULKAN_HPP_CPP_VERSION
  44519. auto
  44520. # else
  44521. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::SampleCountFlagBits const &>
  44522. # endif
  44523. reflect() const VULKAN_HPP_NOEXCEPT
  44524. {
  44525. return std::tie( sType, pNext, maxFragmentShadingRateInvocationCount );
  44526. }
  44527. #endif
  44528. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  44529. auto operator<=>( PhysicalDeviceFragmentShadingRateEnumsPropertiesNV const & ) const = default;
  44530. #else
  44531. bool operator==( PhysicalDeviceFragmentShadingRateEnumsPropertiesNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  44532. {
  44533. # if defined( VULKAN_HPP_USE_REFLECT )
  44534. return this->reflect() == rhs.reflect();
  44535. # else
  44536. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( maxFragmentShadingRateInvocationCount == rhs.maxFragmentShadingRateInvocationCount );
  44537. # endif
  44538. }
  44539. bool operator!=( PhysicalDeviceFragmentShadingRateEnumsPropertiesNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  44540. {
  44541. return !operator==( rhs );
  44542. }
  44543. #endif
  44544. public:
  44545. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceFragmentShadingRateEnumsPropertiesNV;
  44546. void * pNext = {};
  44547. VULKAN_HPP_NAMESPACE::SampleCountFlagBits maxFragmentShadingRateInvocationCount = VULKAN_HPP_NAMESPACE::SampleCountFlagBits::e1;
  44548. };
  44549. template <>
  44550. struct CppType<StructureType, StructureType::ePhysicalDeviceFragmentShadingRateEnumsPropertiesNV>
  44551. {
  44552. using Type = PhysicalDeviceFragmentShadingRateEnumsPropertiesNV;
  44553. };
  44554. struct PhysicalDeviceFragmentShadingRateFeaturesKHR
  44555. {
  44556. using NativeType = VkPhysicalDeviceFragmentShadingRateFeaturesKHR;
  44557. static const bool allowDuplicate = false;
  44558. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceFragmentShadingRateFeaturesKHR;
  44559. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  44560. VULKAN_HPP_CONSTEXPR PhysicalDeviceFragmentShadingRateFeaturesKHR( VULKAN_HPP_NAMESPACE::Bool32 pipelineFragmentShadingRate_ = {},
  44561. VULKAN_HPP_NAMESPACE::Bool32 primitiveFragmentShadingRate_ = {},
  44562. VULKAN_HPP_NAMESPACE::Bool32 attachmentFragmentShadingRate_ = {},
  44563. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  44564. : pNext( pNext_ )
  44565. , pipelineFragmentShadingRate( pipelineFragmentShadingRate_ )
  44566. , primitiveFragmentShadingRate( primitiveFragmentShadingRate_ )
  44567. , attachmentFragmentShadingRate( attachmentFragmentShadingRate_ )
  44568. {
  44569. }
  44570. VULKAN_HPP_CONSTEXPR PhysicalDeviceFragmentShadingRateFeaturesKHR( PhysicalDeviceFragmentShadingRateFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  44571. PhysicalDeviceFragmentShadingRateFeaturesKHR( VkPhysicalDeviceFragmentShadingRateFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  44572. : PhysicalDeviceFragmentShadingRateFeaturesKHR( *reinterpret_cast<PhysicalDeviceFragmentShadingRateFeaturesKHR const *>( &rhs ) )
  44573. {
  44574. }
  44575. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  44576. PhysicalDeviceFragmentShadingRateFeaturesKHR & operator=( PhysicalDeviceFragmentShadingRateFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  44577. PhysicalDeviceFragmentShadingRateFeaturesKHR & operator=( VkPhysicalDeviceFragmentShadingRateFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  44578. {
  44579. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShadingRateFeaturesKHR const *>( &rhs );
  44580. return *this;
  44581. }
  44582. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  44583. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceFragmentShadingRateFeaturesKHR & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
  44584. {
  44585. pNext = pNext_;
  44586. return *this;
  44587. }
  44588. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceFragmentShadingRateFeaturesKHR &
  44589. setPipelineFragmentShadingRate( VULKAN_HPP_NAMESPACE::Bool32 pipelineFragmentShadingRate_ ) VULKAN_HPP_NOEXCEPT
  44590. {
  44591. pipelineFragmentShadingRate = pipelineFragmentShadingRate_;
  44592. return *this;
  44593. }
  44594. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceFragmentShadingRateFeaturesKHR &
  44595. setPrimitiveFragmentShadingRate( VULKAN_HPP_NAMESPACE::Bool32 primitiveFragmentShadingRate_ ) VULKAN_HPP_NOEXCEPT
  44596. {
  44597. primitiveFragmentShadingRate = primitiveFragmentShadingRate_;
  44598. return *this;
  44599. }
  44600. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceFragmentShadingRateFeaturesKHR &
  44601. setAttachmentFragmentShadingRate( VULKAN_HPP_NAMESPACE::Bool32 attachmentFragmentShadingRate_ ) VULKAN_HPP_NOEXCEPT
  44602. {
  44603. attachmentFragmentShadingRate = attachmentFragmentShadingRate_;
  44604. return *this;
  44605. }
  44606. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  44607. operator VkPhysicalDeviceFragmentShadingRateFeaturesKHR const &() const VULKAN_HPP_NOEXCEPT
  44608. {
  44609. return *reinterpret_cast<const VkPhysicalDeviceFragmentShadingRateFeaturesKHR *>( this );
  44610. }
  44611. operator VkPhysicalDeviceFragmentShadingRateFeaturesKHR &() VULKAN_HPP_NOEXCEPT
  44612. {
  44613. return *reinterpret_cast<VkPhysicalDeviceFragmentShadingRateFeaturesKHR *>( this );
  44614. }
  44615. #if defined( VULKAN_HPP_USE_REFLECT )
  44616. # if 14 <= VULKAN_HPP_CPP_VERSION
  44617. auto
  44618. # else
  44619. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  44620. void * const &,
  44621. VULKAN_HPP_NAMESPACE::Bool32 const &,
  44622. VULKAN_HPP_NAMESPACE::Bool32 const &,
  44623. VULKAN_HPP_NAMESPACE::Bool32 const &>
  44624. # endif
  44625. reflect() const VULKAN_HPP_NOEXCEPT
  44626. {
  44627. return std::tie( sType, pNext, pipelineFragmentShadingRate, primitiveFragmentShadingRate, attachmentFragmentShadingRate );
  44628. }
  44629. #endif
  44630. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  44631. auto operator<=>( PhysicalDeviceFragmentShadingRateFeaturesKHR const & ) const = default;
  44632. #else
  44633. bool operator==( PhysicalDeviceFragmentShadingRateFeaturesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  44634. {
  44635. # if defined( VULKAN_HPP_USE_REFLECT )
  44636. return this->reflect() == rhs.reflect();
  44637. # else
  44638. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( pipelineFragmentShadingRate == rhs.pipelineFragmentShadingRate ) &&
  44639. ( primitiveFragmentShadingRate == rhs.primitiveFragmentShadingRate ) && ( attachmentFragmentShadingRate == rhs.attachmentFragmentShadingRate );
  44640. # endif
  44641. }
  44642. bool operator!=( PhysicalDeviceFragmentShadingRateFeaturesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  44643. {
  44644. return !operator==( rhs );
  44645. }
  44646. #endif
  44647. public:
  44648. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceFragmentShadingRateFeaturesKHR;
  44649. void * pNext = {};
  44650. VULKAN_HPP_NAMESPACE::Bool32 pipelineFragmentShadingRate = {};
  44651. VULKAN_HPP_NAMESPACE::Bool32 primitiveFragmentShadingRate = {};
  44652. VULKAN_HPP_NAMESPACE::Bool32 attachmentFragmentShadingRate = {};
  44653. };
  44654. template <>
  44655. struct CppType<StructureType, StructureType::ePhysicalDeviceFragmentShadingRateFeaturesKHR>
  44656. {
  44657. using Type = PhysicalDeviceFragmentShadingRateFeaturesKHR;
  44658. };
  44659. struct PhysicalDeviceFragmentShadingRateKHR
  44660. {
  44661. using NativeType = VkPhysicalDeviceFragmentShadingRateKHR;
  44662. static const bool allowDuplicate = false;
  44663. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceFragmentShadingRateKHR;
  44664. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  44665. VULKAN_HPP_CONSTEXPR PhysicalDeviceFragmentShadingRateKHR( VULKAN_HPP_NAMESPACE::SampleCountFlags sampleCounts_ = {},
  44666. VULKAN_HPP_NAMESPACE::Extent2D fragmentSize_ = {},
  44667. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  44668. : pNext( pNext_ )
  44669. , sampleCounts( sampleCounts_ )
  44670. , fragmentSize( fragmentSize_ )
  44671. {
  44672. }
  44673. VULKAN_HPP_CONSTEXPR PhysicalDeviceFragmentShadingRateKHR( PhysicalDeviceFragmentShadingRateKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  44674. PhysicalDeviceFragmentShadingRateKHR( VkPhysicalDeviceFragmentShadingRateKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  44675. : PhysicalDeviceFragmentShadingRateKHR( *reinterpret_cast<PhysicalDeviceFragmentShadingRateKHR const *>( &rhs ) )
  44676. {
  44677. }
  44678. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  44679. PhysicalDeviceFragmentShadingRateKHR & operator=( PhysicalDeviceFragmentShadingRateKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  44680. PhysicalDeviceFragmentShadingRateKHR & operator=( VkPhysicalDeviceFragmentShadingRateKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  44681. {
  44682. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShadingRateKHR const *>( &rhs );
  44683. return *this;
  44684. }
  44685. operator VkPhysicalDeviceFragmentShadingRateKHR const &() const VULKAN_HPP_NOEXCEPT
  44686. {
  44687. return *reinterpret_cast<const VkPhysicalDeviceFragmentShadingRateKHR *>( this );
  44688. }
  44689. operator VkPhysicalDeviceFragmentShadingRateKHR &() VULKAN_HPP_NOEXCEPT
  44690. {
  44691. return *reinterpret_cast<VkPhysicalDeviceFragmentShadingRateKHR *>( this );
  44692. }
  44693. #if defined( VULKAN_HPP_USE_REFLECT )
  44694. # if 14 <= VULKAN_HPP_CPP_VERSION
  44695. auto
  44696. # else
  44697. std::
  44698. tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::SampleCountFlags const &, VULKAN_HPP_NAMESPACE::Extent2D const &>
  44699. # endif
  44700. reflect() const VULKAN_HPP_NOEXCEPT
  44701. {
  44702. return std::tie( sType, pNext, sampleCounts, fragmentSize );
  44703. }
  44704. #endif
  44705. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  44706. auto operator<=>( PhysicalDeviceFragmentShadingRateKHR const & ) const = default;
  44707. #else
  44708. bool operator==( PhysicalDeviceFragmentShadingRateKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  44709. {
  44710. # if defined( VULKAN_HPP_USE_REFLECT )
  44711. return this->reflect() == rhs.reflect();
  44712. # else
  44713. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( sampleCounts == rhs.sampleCounts ) && ( fragmentSize == rhs.fragmentSize );
  44714. # endif
  44715. }
  44716. bool operator!=( PhysicalDeviceFragmentShadingRateKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  44717. {
  44718. return !operator==( rhs );
  44719. }
  44720. #endif
  44721. public:
  44722. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceFragmentShadingRateKHR;
  44723. void * pNext = {};
  44724. VULKAN_HPP_NAMESPACE::SampleCountFlags sampleCounts = {};
  44725. VULKAN_HPP_NAMESPACE::Extent2D fragmentSize = {};
  44726. };
  44727. template <>
  44728. struct CppType<StructureType, StructureType::ePhysicalDeviceFragmentShadingRateKHR>
  44729. {
  44730. using Type = PhysicalDeviceFragmentShadingRateKHR;
  44731. };
  44732. struct PhysicalDeviceFragmentShadingRatePropertiesKHR
  44733. {
  44734. using NativeType = VkPhysicalDeviceFragmentShadingRatePropertiesKHR;
  44735. static const bool allowDuplicate = false;
  44736. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceFragmentShadingRatePropertiesKHR;
  44737. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  44738. VULKAN_HPP_CONSTEXPR PhysicalDeviceFragmentShadingRatePropertiesKHR(
  44739. VULKAN_HPP_NAMESPACE::Extent2D minFragmentShadingRateAttachmentTexelSize_ = {},
  44740. VULKAN_HPP_NAMESPACE::Extent2D maxFragmentShadingRateAttachmentTexelSize_ = {},
  44741. uint32_t maxFragmentShadingRateAttachmentTexelSizeAspectRatio_ = {},
  44742. VULKAN_HPP_NAMESPACE::Bool32 primitiveFragmentShadingRateWithMultipleViewports_ = {},
  44743. VULKAN_HPP_NAMESPACE::Bool32 layeredShadingRateAttachments_ = {},
  44744. VULKAN_HPP_NAMESPACE::Bool32 fragmentShadingRateNonTrivialCombinerOps_ = {},
  44745. VULKAN_HPP_NAMESPACE::Extent2D maxFragmentSize_ = {},
  44746. uint32_t maxFragmentSizeAspectRatio_ = {},
  44747. uint32_t maxFragmentShadingRateCoverageSamples_ = {},
  44748. VULKAN_HPP_NAMESPACE::SampleCountFlagBits maxFragmentShadingRateRasterizationSamples_ = VULKAN_HPP_NAMESPACE::SampleCountFlagBits::e1,
  44749. VULKAN_HPP_NAMESPACE::Bool32 fragmentShadingRateWithShaderDepthStencilWrites_ = {},
  44750. VULKAN_HPP_NAMESPACE::Bool32 fragmentShadingRateWithSampleMask_ = {},
  44751. VULKAN_HPP_NAMESPACE::Bool32 fragmentShadingRateWithShaderSampleMask_ = {},
  44752. VULKAN_HPP_NAMESPACE::Bool32 fragmentShadingRateWithConservativeRasterization_ = {},
  44753. VULKAN_HPP_NAMESPACE::Bool32 fragmentShadingRateWithFragmentShaderInterlock_ = {},
  44754. VULKAN_HPP_NAMESPACE::Bool32 fragmentShadingRateWithCustomSampleLocations_ = {},
  44755. VULKAN_HPP_NAMESPACE::Bool32 fragmentShadingRateStrictMultiplyCombiner_ = {},
  44756. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  44757. : pNext( pNext_ )
  44758. , minFragmentShadingRateAttachmentTexelSize( minFragmentShadingRateAttachmentTexelSize_ )
  44759. , maxFragmentShadingRateAttachmentTexelSize( maxFragmentShadingRateAttachmentTexelSize_ )
  44760. , maxFragmentShadingRateAttachmentTexelSizeAspectRatio( maxFragmentShadingRateAttachmentTexelSizeAspectRatio_ )
  44761. , primitiveFragmentShadingRateWithMultipleViewports( primitiveFragmentShadingRateWithMultipleViewports_ )
  44762. , layeredShadingRateAttachments( layeredShadingRateAttachments_ )
  44763. , fragmentShadingRateNonTrivialCombinerOps( fragmentShadingRateNonTrivialCombinerOps_ )
  44764. , maxFragmentSize( maxFragmentSize_ )
  44765. , maxFragmentSizeAspectRatio( maxFragmentSizeAspectRatio_ )
  44766. , maxFragmentShadingRateCoverageSamples( maxFragmentShadingRateCoverageSamples_ )
  44767. , maxFragmentShadingRateRasterizationSamples( maxFragmentShadingRateRasterizationSamples_ )
  44768. , fragmentShadingRateWithShaderDepthStencilWrites( fragmentShadingRateWithShaderDepthStencilWrites_ )
  44769. , fragmentShadingRateWithSampleMask( fragmentShadingRateWithSampleMask_ )
  44770. , fragmentShadingRateWithShaderSampleMask( fragmentShadingRateWithShaderSampleMask_ )
  44771. , fragmentShadingRateWithConservativeRasterization( fragmentShadingRateWithConservativeRasterization_ )
  44772. , fragmentShadingRateWithFragmentShaderInterlock( fragmentShadingRateWithFragmentShaderInterlock_ )
  44773. , fragmentShadingRateWithCustomSampleLocations( fragmentShadingRateWithCustomSampleLocations_ )
  44774. , fragmentShadingRateStrictMultiplyCombiner( fragmentShadingRateStrictMultiplyCombiner_ )
  44775. {
  44776. }
  44777. VULKAN_HPP_CONSTEXPR
  44778. PhysicalDeviceFragmentShadingRatePropertiesKHR( PhysicalDeviceFragmentShadingRatePropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  44779. PhysicalDeviceFragmentShadingRatePropertiesKHR( VkPhysicalDeviceFragmentShadingRatePropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  44780. : PhysicalDeviceFragmentShadingRatePropertiesKHR( *reinterpret_cast<PhysicalDeviceFragmentShadingRatePropertiesKHR const *>( &rhs ) )
  44781. {
  44782. }
  44783. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  44784. PhysicalDeviceFragmentShadingRatePropertiesKHR & operator=( PhysicalDeviceFragmentShadingRatePropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  44785. PhysicalDeviceFragmentShadingRatePropertiesKHR & operator=( VkPhysicalDeviceFragmentShadingRatePropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  44786. {
  44787. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShadingRatePropertiesKHR const *>( &rhs );
  44788. return *this;
  44789. }
  44790. operator VkPhysicalDeviceFragmentShadingRatePropertiesKHR const &() const VULKAN_HPP_NOEXCEPT
  44791. {
  44792. return *reinterpret_cast<const VkPhysicalDeviceFragmentShadingRatePropertiesKHR *>( this );
  44793. }
  44794. operator VkPhysicalDeviceFragmentShadingRatePropertiesKHR &() VULKAN_HPP_NOEXCEPT
  44795. {
  44796. return *reinterpret_cast<VkPhysicalDeviceFragmentShadingRatePropertiesKHR *>( this );
  44797. }
  44798. #if defined( VULKAN_HPP_USE_REFLECT )
  44799. # if 14 <= VULKAN_HPP_CPP_VERSION
  44800. auto
  44801. # else
  44802. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  44803. void * const &,
  44804. VULKAN_HPP_NAMESPACE::Extent2D const &,
  44805. VULKAN_HPP_NAMESPACE::Extent2D const &,
  44806. uint32_t const &,
  44807. VULKAN_HPP_NAMESPACE::Bool32 const &,
  44808. VULKAN_HPP_NAMESPACE::Bool32 const &,
  44809. VULKAN_HPP_NAMESPACE::Bool32 const &,
  44810. VULKAN_HPP_NAMESPACE::Extent2D const &,
  44811. uint32_t const &,
  44812. uint32_t const &,
  44813. VULKAN_HPP_NAMESPACE::SampleCountFlagBits const &,
  44814. VULKAN_HPP_NAMESPACE::Bool32 const &,
  44815. VULKAN_HPP_NAMESPACE::Bool32 const &,
  44816. VULKAN_HPP_NAMESPACE::Bool32 const &,
  44817. VULKAN_HPP_NAMESPACE::Bool32 const &,
  44818. VULKAN_HPP_NAMESPACE::Bool32 const &,
  44819. VULKAN_HPP_NAMESPACE::Bool32 const &,
  44820. VULKAN_HPP_NAMESPACE::Bool32 const &>
  44821. # endif
  44822. reflect() const VULKAN_HPP_NOEXCEPT
  44823. {
  44824. return std::tie( sType,
  44825. pNext,
  44826. minFragmentShadingRateAttachmentTexelSize,
  44827. maxFragmentShadingRateAttachmentTexelSize,
  44828. maxFragmentShadingRateAttachmentTexelSizeAspectRatio,
  44829. primitiveFragmentShadingRateWithMultipleViewports,
  44830. layeredShadingRateAttachments,
  44831. fragmentShadingRateNonTrivialCombinerOps,
  44832. maxFragmentSize,
  44833. maxFragmentSizeAspectRatio,
  44834. maxFragmentShadingRateCoverageSamples,
  44835. maxFragmentShadingRateRasterizationSamples,
  44836. fragmentShadingRateWithShaderDepthStencilWrites,
  44837. fragmentShadingRateWithSampleMask,
  44838. fragmentShadingRateWithShaderSampleMask,
  44839. fragmentShadingRateWithConservativeRasterization,
  44840. fragmentShadingRateWithFragmentShaderInterlock,
  44841. fragmentShadingRateWithCustomSampleLocations,
  44842. fragmentShadingRateStrictMultiplyCombiner );
  44843. }
  44844. #endif
  44845. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  44846. auto operator<=>( PhysicalDeviceFragmentShadingRatePropertiesKHR const & ) const = default;
  44847. #else
  44848. bool operator==( PhysicalDeviceFragmentShadingRatePropertiesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  44849. {
  44850. # if defined( VULKAN_HPP_USE_REFLECT )
  44851. return this->reflect() == rhs.reflect();
  44852. # else
  44853. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) &&
  44854. ( minFragmentShadingRateAttachmentTexelSize == rhs.minFragmentShadingRateAttachmentTexelSize ) &&
  44855. ( maxFragmentShadingRateAttachmentTexelSize == rhs.maxFragmentShadingRateAttachmentTexelSize ) &&
  44856. ( maxFragmentShadingRateAttachmentTexelSizeAspectRatio == rhs.maxFragmentShadingRateAttachmentTexelSizeAspectRatio ) &&
  44857. ( primitiveFragmentShadingRateWithMultipleViewports == rhs.primitiveFragmentShadingRateWithMultipleViewports ) &&
  44858. ( layeredShadingRateAttachments == rhs.layeredShadingRateAttachments ) &&
  44859. ( fragmentShadingRateNonTrivialCombinerOps == rhs.fragmentShadingRateNonTrivialCombinerOps ) && ( maxFragmentSize == rhs.maxFragmentSize ) &&
  44860. ( maxFragmentSizeAspectRatio == rhs.maxFragmentSizeAspectRatio ) &&
  44861. ( maxFragmentShadingRateCoverageSamples == rhs.maxFragmentShadingRateCoverageSamples ) &&
  44862. ( maxFragmentShadingRateRasterizationSamples == rhs.maxFragmentShadingRateRasterizationSamples ) &&
  44863. ( fragmentShadingRateWithShaderDepthStencilWrites == rhs.fragmentShadingRateWithShaderDepthStencilWrites ) &&
  44864. ( fragmentShadingRateWithSampleMask == rhs.fragmentShadingRateWithSampleMask ) &&
  44865. ( fragmentShadingRateWithShaderSampleMask == rhs.fragmentShadingRateWithShaderSampleMask ) &&
  44866. ( fragmentShadingRateWithConservativeRasterization == rhs.fragmentShadingRateWithConservativeRasterization ) &&
  44867. ( fragmentShadingRateWithFragmentShaderInterlock == rhs.fragmentShadingRateWithFragmentShaderInterlock ) &&
  44868. ( fragmentShadingRateWithCustomSampleLocations == rhs.fragmentShadingRateWithCustomSampleLocations ) &&
  44869. ( fragmentShadingRateStrictMultiplyCombiner == rhs.fragmentShadingRateStrictMultiplyCombiner );
  44870. # endif
  44871. }
  44872. bool operator!=( PhysicalDeviceFragmentShadingRatePropertiesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  44873. {
  44874. return !operator==( rhs );
  44875. }
  44876. #endif
  44877. public:
  44878. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceFragmentShadingRatePropertiesKHR;
  44879. void * pNext = {};
  44880. VULKAN_HPP_NAMESPACE::Extent2D minFragmentShadingRateAttachmentTexelSize = {};
  44881. VULKAN_HPP_NAMESPACE::Extent2D maxFragmentShadingRateAttachmentTexelSize = {};
  44882. uint32_t maxFragmentShadingRateAttachmentTexelSizeAspectRatio = {};
  44883. VULKAN_HPP_NAMESPACE::Bool32 primitiveFragmentShadingRateWithMultipleViewports = {};
  44884. VULKAN_HPP_NAMESPACE::Bool32 layeredShadingRateAttachments = {};
  44885. VULKAN_HPP_NAMESPACE::Bool32 fragmentShadingRateNonTrivialCombinerOps = {};
  44886. VULKAN_HPP_NAMESPACE::Extent2D maxFragmentSize = {};
  44887. uint32_t maxFragmentSizeAspectRatio = {};
  44888. uint32_t maxFragmentShadingRateCoverageSamples = {};
  44889. VULKAN_HPP_NAMESPACE::SampleCountFlagBits maxFragmentShadingRateRasterizationSamples = VULKAN_HPP_NAMESPACE::SampleCountFlagBits::e1;
  44890. VULKAN_HPP_NAMESPACE::Bool32 fragmentShadingRateWithShaderDepthStencilWrites = {};
  44891. VULKAN_HPP_NAMESPACE::Bool32 fragmentShadingRateWithSampleMask = {};
  44892. VULKAN_HPP_NAMESPACE::Bool32 fragmentShadingRateWithShaderSampleMask = {};
  44893. VULKAN_HPP_NAMESPACE::Bool32 fragmentShadingRateWithConservativeRasterization = {};
  44894. VULKAN_HPP_NAMESPACE::Bool32 fragmentShadingRateWithFragmentShaderInterlock = {};
  44895. VULKAN_HPP_NAMESPACE::Bool32 fragmentShadingRateWithCustomSampleLocations = {};
  44896. VULKAN_HPP_NAMESPACE::Bool32 fragmentShadingRateStrictMultiplyCombiner = {};
  44897. };
  44898. template <>
  44899. struct CppType<StructureType, StructureType::ePhysicalDeviceFragmentShadingRatePropertiesKHR>
  44900. {
  44901. using Type = PhysicalDeviceFragmentShadingRatePropertiesKHR;
  44902. };
  44903. struct PhysicalDeviceGlobalPriorityQueryFeaturesKHR
  44904. {
  44905. using NativeType = VkPhysicalDeviceGlobalPriorityQueryFeaturesKHR;
  44906. static const bool allowDuplicate = false;
  44907. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceGlobalPriorityQueryFeaturesKHR;
  44908. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  44909. VULKAN_HPP_CONSTEXPR PhysicalDeviceGlobalPriorityQueryFeaturesKHR( VULKAN_HPP_NAMESPACE::Bool32 globalPriorityQuery_ = {},
  44910. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  44911. : pNext( pNext_ )
  44912. , globalPriorityQuery( globalPriorityQuery_ )
  44913. {
  44914. }
  44915. VULKAN_HPP_CONSTEXPR PhysicalDeviceGlobalPriorityQueryFeaturesKHR( PhysicalDeviceGlobalPriorityQueryFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  44916. PhysicalDeviceGlobalPriorityQueryFeaturesKHR( VkPhysicalDeviceGlobalPriorityQueryFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  44917. : PhysicalDeviceGlobalPriorityQueryFeaturesKHR( *reinterpret_cast<PhysicalDeviceGlobalPriorityQueryFeaturesKHR const *>( &rhs ) )
  44918. {
  44919. }
  44920. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  44921. PhysicalDeviceGlobalPriorityQueryFeaturesKHR & operator=( PhysicalDeviceGlobalPriorityQueryFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  44922. PhysicalDeviceGlobalPriorityQueryFeaturesKHR & operator=( VkPhysicalDeviceGlobalPriorityQueryFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  44923. {
  44924. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceGlobalPriorityQueryFeaturesKHR const *>( &rhs );
  44925. return *this;
  44926. }
  44927. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  44928. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceGlobalPriorityQueryFeaturesKHR & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
  44929. {
  44930. pNext = pNext_;
  44931. return *this;
  44932. }
  44933. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceGlobalPriorityQueryFeaturesKHR &
  44934. setGlobalPriorityQuery( VULKAN_HPP_NAMESPACE::Bool32 globalPriorityQuery_ ) VULKAN_HPP_NOEXCEPT
  44935. {
  44936. globalPriorityQuery = globalPriorityQuery_;
  44937. return *this;
  44938. }
  44939. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  44940. operator VkPhysicalDeviceGlobalPriorityQueryFeaturesKHR const &() const VULKAN_HPP_NOEXCEPT
  44941. {
  44942. return *reinterpret_cast<const VkPhysicalDeviceGlobalPriorityQueryFeaturesKHR *>( this );
  44943. }
  44944. operator VkPhysicalDeviceGlobalPriorityQueryFeaturesKHR &() VULKAN_HPP_NOEXCEPT
  44945. {
  44946. return *reinterpret_cast<VkPhysicalDeviceGlobalPriorityQueryFeaturesKHR *>( this );
  44947. }
  44948. #if defined( VULKAN_HPP_USE_REFLECT )
  44949. # if 14 <= VULKAN_HPP_CPP_VERSION
  44950. auto
  44951. # else
  44952. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
  44953. # endif
  44954. reflect() const VULKAN_HPP_NOEXCEPT
  44955. {
  44956. return std::tie( sType, pNext, globalPriorityQuery );
  44957. }
  44958. #endif
  44959. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  44960. auto operator<=>( PhysicalDeviceGlobalPriorityQueryFeaturesKHR const & ) const = default;
  44961. #else
  44962. bool operator==( PhysicalDeviceGlobalPriorityQueryFeaturesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  44963. {
  44964. # if defined( VULKAN_HPP_USE_REFLECT )
  44965. return this->reflect() == rhs.reflect();
  44966. # else
  44967. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( globalPriorityQuery == rhs.globalPriorityQuery );
  44968. # endif
  44969. }
  44970. bool operator!=( PhysicalDeviceGlobalPriorityQueryFeaturesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  44971. {
  44972. return !operator==( rhs );
  44973. }
  44974. #endif
  44975. public:
  44976. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceGlobalPriorityQueryFeaturesKHR;
  44977. void * pNext = {};
  44978. VULKAN_HPP_NAMESPACE::Bool32 globalPriorityQuery = {};
  44979. };
  44980. template <>
  44981. struct CppType<StructureType, StructureType::ePhysicalDeviceGlobalPriorityQueryFeaturesKHR>
  44982. {
  44983. using Type = PhysicalDeviceGlobalPriorityQueryFeaturesKHR;
  44984. };
  44985. using PhysicalDeviceGlobalPriorityQueryFeaturesEXT = PhysicalDeviceGlobalPriorityQueryFeaturesKHR;
  44986. struct PhysicalDeviceGraphicsPipelineLibraryFeaturesEXT
  44987. {
  44988. using NativeType = VkPhysicalDeviceGraphicsPipelineLibraryFeaturesEXT;
  44989. static const bool allowDuplicate = false;
  44990. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceGraphicsPipelineLibraryFeaturesEXT;
  44991. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  44992. VULKAN_HPP_CONSTEXPR PhysicalDeviceGraphicsPipelineLibraryFeaturesEXT( VULKAN_HPP_NAMESPACE::Bool32 graphicsPipelineLibrary_ = {},
  44993. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  44994. : pNext( pNext_ )
  44995. , graphicsPipelineLibrary( graphicsPipelineLibrary_ )
  44996. {
  44997. }
  44998. VULKAN_HPP_CONSTEXPR
  44999. PhysicalDeviceGraphicsPipelineLibraryFeaturesEXT( PhysicalDeviceGraphicsPipelineLibraryFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  45000. PhysicalDeviceGraphicsPipelineLibraryFeaturesEXT( VkPhysicalDeviceGraphicsPipelineLibraryFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  45001. : PhysicalDeviceGraphicsPipelineLibraryFeaturesEXT( *reinterpret_cast<PhysicalDeviceGraphicsPipelineLibraryFeaturesEXT const *>( &rhs ) )
  45002. {
  45003. }
  45004. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  45005. PhysicalDeviceGraphicsPipelineLibraryFeaturesEXT & operator=( PhysicalDeviceGraphicsPipelineLibraryFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  45006. PhysicalDeviceGraphicsPipelineLibraryFeaturesEXT & operator=( VkPhysicalDeviceGraphicsPipelineLibraryFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  45007. {
  45008. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceGraphicsPipelineLibraryFeaturesEXT const *>( &rhs );
  45009. return *this;
  45010. }
  45011. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  45012. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceGraphicsPipelineLibraryFeaturesEXT & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
  45013. {
  45014. pNext = pNext_;
  45015. return *this;
  45016. }
  45017. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceGraphicsPipelineLibraryFeaturesEXT &
  45018. setGraphicsPipelineLibrary( VULKAN_HPP_NAMESPACE::Bool32 graphicsPipelineLibrary_ ) VULKAN_HPP_NOEXCEPT
  45019. {
  45020. graphicsPipelineLibrary = graphicsPipelineLibrary_;
  45021. return *this;
  45022. }
  45023. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  45024. operator VkPhysicalDeviceGraphicsPipelineLibraryFeaturesEXT const &() const VULKAN_HPP_NOEXCEPT
  45025. {
  45026. return *reinterpret_cast<const VkPhysicalDeviceGraphicsPipelineLibraryFeaturesEXT *>( this );
  45027. }
  45028. operator VkPhysicalDeviceGraphicsPipelineLibraryFeaturesEXT &() VULKAN_HPP_NOEXCEPT
  45029. {
  45030. return *reinterpret_cast<VkPhysicalDeviceGraphicsPipelineLibraryFeaturesEXT *>( this );
  45031. }
  45032. #if defined( VULKAN_HPP_USE_REFLECT )
  45033. # if 14 <= VULKAN_HPP_CPP_VERSION
  45034. auto
  45035. # else
  45036. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
  45037. # endif
  45038. reflect() const VULKAN_HPP_NOEXCEPT
  45039. {
  45040. return std::tie( sType, pNext, graphicsPipelineLibrary );
  45041. }
  45042. #endif
  45043. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  45044. auto operator<=>( PhysicalDeviceGraphicsPipelineLibraryFeaturesEXT const & ) const = default;
  45045. #else
  45046. bool operator==( PhysicalDeviceGraphicsPipelineLibraryFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  45047. {
  45048. # if defined( VULKAN_HPP_USE_REFLECT )
  45049. return this->reflect() == rhs.reflect();
  45050. # else
  45051. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( graphicsPipelineLibrary == rhs.graphicsPipelineLibrary );
  45052. # endif
  45053. }
  45054. bool operator!=( PhysicalDeviceGraphicsPipelineLibraryFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  45055. {
  45056. return !operator==( rhs );
  45057. }
  45058. #endif
  45059. public:
  45060. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceGraphicsPipelineLibraryFeaturesEXT;
  45061. void * pNext = {};
  45062. VULKAN_HPP_NAMESPACE::Bool32 graphicsPipelineLibrary = {};
  45063. };
  45064. template <>
  45065. struct CppType<StructureType, StructureType::ePhysicalDeviceGraphicsPipelineLibraryFeaturesEXT>
  45066. {
  45067. using Type = PhysicalDeviceGraphicsPipelineLibraryFeaturesEXT;
  45068. };
  45069. struct PhysicalDeviceGraphicsPipelineLibraryPropertiesEXT
  45070. {
  45071. using NativeType = VkPhysicalDeviceGraphicsPipelineLibraryPropertiesEXT;
  45072. static const bool allowDuplicate = false;
  45073. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceGraphicsPipelineLibraryPropertiesEXT;
  45074. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  45075. VULKAN_HPP_CONSTEXPR
  45076. PhysicalDeviceGraphicsPipelineLibraryPropertiesEXT( VULKAN_HPP_NAMESPACE::Bool32 graphicsPipelineLibraryFastLinking_ = {},
  45077. VULKAN_HPP_NAMESPACE::Bool32 graphicsPipelineLibraryIndependentInterpolationDecoration_ = {},
  45078. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  45079. : pNext( pNext_ )
  45080. , graphicsPipelineLibraryFastLinking( graphicsPipelineLibraryFastLinking_ )
  45081. , graphicsPipelineLibraryIndependentInterpolationDecoration( graphicsPipelineLibraryIndependentInterpolationDecoration_ )
  45082. {
  45083. }
  45084. VULKAN_HPP_CONSTEXPR
  45085. PhysicalDeviceGraphicsPipelineLibraryPropertiesEXT( PhysicalDeviceGraphicsPipelineLibraryPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  45086. PhysicalDeviceGraphicsPipelineLibraryPropertiesEXT( VkPhysicalDeviceGraphicsPipelineLibraryPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  45087. : PhysicalDeviceGraphicsPipelineLibraryPropertiesEXT( *reinterpret_cast<PhysicalDeviceGraphicsPipelineLibraryPropertiesEXT const *>( &rhs ) )
  45088. {
  45089. }
  45090. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  45091. PhysicalDeviceGraphicsPipelineLibraryPropertiesEXT &
  45092. operator=( PhysicalDeviceGraphicsPipelineLibraryPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  45093. PhysicalDeviceGraphicsPipelineLibraryPropertiesEXT & operator=( VkPhysicalDeviceGraphicsPipelineLibraryPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  45094. {
  45095. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceGraphicsPipelineLibraryPropertiesEXT const *>( &rhs );
  45096. return *this;
  45097. }
  45098. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  45099. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceGraphicsPipelineLibraryPropertiesEXT & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
  45100. {
  45101. pNext = pNext_;
  45102. return *this;
  45103. }
  45104. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceGraphicsPipelineLibraryPropertiesEXT &
  45105. setGraphicsPipelineLibraryFastLinking( VULKAN_HPP_NAMESPACE::Bool32 graphicsPipelineLibraryFastLinking_ ) VULKAN_HPP_NOEXCEPT
  45106. {
  45107. graphicsPipelineLibraryFastLinking = graphicsPipelineLibraryFastLinking_;
  45108. return *this;
  45109. }
  45110. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceGraphicsPipelineLibraryPropertiesEXT & setGraphicsPipelineLibraryIndependentInterpolationDecoration(
  45111. VULKAN_HPP_NAMESPACE::Bool32 graphicsPipelineLibraryIndependentInterpolationDecoration_ ) VULKAN_HPP_NOEXCEPT
  45112. {
  45113. graphicsPipelineLibraryIndependentInterpolationDecoration = graphicsPipelineLibraryIndependentInterpolationDecoration_;
  45114. return *this;
  45115. }
  45116. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  45117. operator VkPhysicalDeviceGraphicsPipelineLibraryPropertiesEXT const &() const VULKAN_HPP_NOEXCEPT
  45118. {
  45119. return *reinterpret_cast<const VkPhysicalDeviceGraphicsPipelineLibraryPropertiesEXT *>( this );
  45120. }
  45121. operator VkPhysicalDeviceGraphicsPipelineLibraryPropertiesEXT &() VULKAN_HPP_NOEXCEPT
  45122. {
  45123. return *reinterpret_cast<VkPhysicalDeviceGraphicsPipelineLibraryPropertiesEXT *>( this );
  45124. }
  45125. #if defined( VULKAN_HPP_USE_REFLECT )
  45126. # if 14 <= VULKAN_HPP_CPP_VERSION
  45127. auto
  45128. # else
  45129. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
  45130. # endif
  45131. reflect() const VULKAN_HPP_NOEXCEPT
  45132. {
  45133. return std::tie( sType, pNext, graphicsPipelineLibraryFastLinking, graphicsPipelineLibraryIndependentInterpolationDecoration );
  45134. }
  45135. #endif
  45136. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  45137. auto operator<=>( PhysicalDeviceGraphicsPipelineLibraryPropertiesEXT const & ) const = default;
  45138. #else
  45139. bool operator==( PhysicalDeviceGraphicsPipelineLibraryPropertiesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  45140. {
  45141. # if defined( VULKAN_HPP_USE_REFLECT )
  45142. return this->reflect() == rhs.reflect();
  45143. # else
  45144. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( graphicsPipelineLibraryFastLinking == rhs.graphicsPipelineLibraryFastLinking ) &&
  45145. ( graphicsPipelineLibraryIndependentInterpolationDecoration == rhs.graphicsPipelineLibraryIndependentInterpolationDecoration );
  45146. # endif
  45147. }
  45148. bool operator!=( PhysicalDeviceGraphicsPipelineLibraryPropertiesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  45149. {
  45150. return !operator==( rhs );
  45151. }
  45152. #endif
  45153. public:
  45154. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceGraphicsPipelineLibraryPropertiesEXT;
  45155. void * pNext = {};
  45156. VULKAN_HPP_NAMESPACE::Bool32 graphicsPipelineLibraryFastLinking = {};
  45157. VULKAN_HPP_NAMESPACE::Bool32 graphicsPipelineLibraryIndependentInterpolationDecoration = {};
  45158. };
  45159. template <>
  45160. struct CppType<StructureType, StructureType::ePhysicalDeviceGraphicsPipelineLibraryPropertiesEXT>
  45161. {
  45162. using Type = PhysicalDeviceGraphicsPipelineLibraryPropertiesEXT;
  45163. };
  45164. struct PhysicalDeviceGroupProperties
  45165. {
  45166. using NativeType = VkPhysicalDeviceGroupProperties;
  45167. static const bool allowDuplicate = false;
  45168. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceGroupProperties;
  45169. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  45170. VULKAN_HPP_CONSTEXPR_14
  45171. PhysicalDeviceGroupProperties( uint32_t physicalDeviceCount_ = {},
  45172. std::array<VULKAN_HPP_NAMESPACE::PhysicalDevice, VK_MAX_DEVICE_GROUP_SIZE> const & physicalDevices_ = {},
  45173. VULKAN_HPP_NAMESPACE::Bool32 subsetAllocation_ = {},
  45174. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  45175. : pNext( pNext_ )
  45176. , physicalDeviceCount( physicalDeviceCount_ )
  45177. , physicalDevices( physicalDevices_ )
  45178. , subsetAllocation( subsetAllocation_ )
  45179. {
  45180. }
  45181. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceGroupProperties( PhysicalDeviceGroupProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  45182. PhysicalDeviceGroupProperties( VkPhysicalDeviceGroupProperties const & rhs ) VULKAN_HPP_NOEXCEPT
  45183. : PhysicalDeviceGroupProperties( *reinterpret_cast<PhysicalDeviceGroupProperties const *>( &rhs ) )
  45184. {
  45185. }
  45186. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  45187. PhysicalDeviceGroupProperties & operator=( PhysicalDeviceGroupProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  45188. PhysicalDeviceGroupProperties & operator=( VkPhysicalDeviceGroupProperties const & rhs ) VULKAN_HPP_NOEXCEPT
  45189. {
  45190. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceGroupProperties const *>( &rhs );
  45191. return *this;
  45192. }
  45193. operator VkPhysicalDeviceGroupProperties const &() const VULKAN_HPP_NOEXCEPT
  45194. {
  45195. return *reinterpret_cast<const VkPhysicalDeviceGroupProperties *>( this );
  45196. }
  45197. operator VkPhysicalDeviceGroupProperties &() VULKAN_HPP_NOEXCEPT
  45198. {
  45199. return *reinterpret_cast<VkPhysicalDeviceGroupProperties *>( this );
  45200. }
  45201. #if defined( VULKAN_HPP_USE_REFLECT )
  45202. # if 14 <= VULKAN_HPP_CPP_VERSION
  45203. auto
  45204. # else
  45205. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  45206. void * const &,
  45207. uint32_t const &,
  45208. VULKAN_HPP_NAMESPACE::ArrayWrapper1D<VULKAN_HPP_NAMESPACE::PhysicalDevice, VK_MAX_DEVICE_GROUP_SIZE> const &,
  45209. VULKAN_HPP_NAMESPACE::Bool32 const &>
  45210. # endif
  45211. reflect() const VULKAN_HPP_NOEXCEPT
  45212. {
  45213. return std::tie( sType, pNext, physicalDeviceCount, physicalDevices, subsetAllocation );
  45214. }
  45215. #endif
  45216. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  45217. auto operator<=>( PhysicalDeviceGroupProperties const & ) const = default;
  45218. #else
  45219. bool operator==( PhysicalDeviceGroupProperties const & rhs ) const VULKAN_HPP_NOEXCEPT
  45220. {
  45221. # if defined( VULKAN_HPP_USE_REFLECT )
  45222. return this->reflect() == rhs.reflect();
  45223. # else
  45224. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( physicalDeviceCount == rhs.physicalDeviceCount ) &&
  45225. ( physicalDevices == rhs.physicalDevices ) && ( subsetAllocation == rhs.subsetAllocation );
  45226. # endif
  45227. }
  45228. bool operator!=( PhysicalDeviceGroupProperties const & rhs ) const VULKAN_HPP_NOEXCEPT
  45229. {
  45230. return !operator==( rhs );
  45231. }
  45232. #endif
  45233. public:
  45234. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceGroupProperties;
  45235. void * pNext = {};
  45236. uint32_t physicalDeviceCount = {};
  45237. VULKAN_HPP_NAMESPACE::ArrayWrapper1D<VULKAN_HPP_NAMESPACE::PhysicalDevice, VK_MAX_DEVICE_GROUP_SIZE> physicalDevices = {};
  45238. VULKAN_HPP_NAMESPACE::Bool32 subsetAllocation = {};
  45239. };
  45240. template <>
  45241. struct CppType<StructureType, StructureType::ePhysicalDeviceGroupProperties>
  45242. {
  45243. using Type = PhysicalDeviceGroupProperties;
  45244. };
  45245. using PhysicalDeviceGroupPropertiesKHR = PhysicalDeviceGroupProperties;
  45246. struct PhysicalDeviceHostQueryResetFeatures
  45247. {
  45248. using NativeType = VkPhysicalDeviceHostQueryResetFeatures;
  45249. static const bool allowDuplicate = false;
  45250. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceHostQueryResetFeatures;
  45251. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  45252. VULKAN_HPP_CONSTEXPR PhysicalDeviceHostQueryResetFeatures( VULKAN_HPP_NAMESPACE::Bool32 hostQueryReset_ = {}, void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  45253. : pNext( pNext_ )
  45254. , hostQueryReset( hostQueryReset_ )
  45255. {
  45256. }
  45257. VULKAN_HPP_CONSTEXPR PhysicalDeviceHostQueryResetFeatures( PhysicalDeviceHostQueryResetFeatures const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  45258. PhysicalDeviceHostQueryResetFeatures( VkPhysicalDeviceHostQueryResetFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
  45259. : PhysicalDeviceHostQueryResetFeatures( *reinterpret_cast<PhysicalDeviceHostQueryResetFeatures const *>( &rhs ) )
  45260. {
  45261. }
  45262. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  45263. PhysicalDeviceHostQueryResetFeatures & operator=( PhysicalDeviceHostQueryResetFeatures const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  45264. PhysicalDeviceHostQueryResetFeatures & operator=( VkPhysicalDeviceHostQueryResetFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
  45265. {
  45266. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceHostQueryResetFeatures const *>( &rhs );
  45267. return *this;
  45268. }
  45269. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  45270. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceHostQueryResetFeatures & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
  45271. {
  45272. pNext = pNext_;
  45273. return *this;
  45274. }
  45275. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceHostQueryResetFeatures & setHostQueryReset( VULKAN_HPP_NAMESPACE::Bool32 hostQueryReset_ ) VULKAN_HPP_NOEXCEPT
  45276. {
  45277. hostQueryReset = hostQueryReset_;
  45278. return *this;
  45279. }
  45280. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  45281. operator VkPhysicalDeviceHostQueryResetFeatures const &() const VULKAN_HPP_NOEXCEPT
  45282. {
  45283. return *reinterpret_cast<const VkPhysicalDeviceHostQueryResetFeatures *>( this );
  45284. }
  45285. operator VkPhysicalDeviceHostQueryResetFeatures &() VULKAN_HPP_NOEXCEPT
  45286. {
  45287. return *reinterpret_cast<VkPhysicalDeviceHostQueryResetFeatures *>( this );
  45288. }
  45289. #if defined( VULKAN_HPP_USE_REFLECT )
  45290. # if 14 <= VULKAN_HPP_CPP_VERSION
  45291. auto
  45292. # else
  45293. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
  45294. # endif
  45295. reflect() const VULKAN_HPP_NOEXCEPT
  45296. {
  45297. return std::tie( sType, pNext, hostQueryReset );
  45298. }
  45299. #endif
  45300. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  45301. auto operator<=>( PhysicalDeviceHostQueryResetFeatures const & ) const = default;
  45302. #else
  45303. bool operator==( PhysicalDeviceHostQueryResetFeatures const & rhs ) const VULKAN_HPP_NOEXCEPT
  45304. {
  45305. # if defined( VULKAN_HPP_USE_REFLECT )
  45306. return this->reflect() == rhs.reflect();
  45307. # else
  45308. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( hostQueryReset == rhs.hostQueryReset );
  45309. # endif
  45310. }
  45311. bool operator!=( PhysicalDeviceHostQueryResetFeatures const & rhs ) const VULKAN_HPP_NOEXCEPT
  45312. {
  45313. return !operator==( rhs );
  45314. }
  45315. #endif
  45316. public:
  45317. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceHostQueryResetFeatures;
  45318. void * pNext = {};
  45319. VULKAN_HPP_NAMESPACE::Bool32 hostQueryReset = {};
  45320. };
  45321. template <>
  45322. struct CppType<StructureType, StructureType::ePhysicalDeviceHostQueryResetFeatures>
  45323. {
  45324. using Type = PhysicalDeviceHostQueryResetFeatures;
  45325. };
  45326. using PhysicalDeviceHostQueryResetFeaturesEXT = PhysicalDeviceHostQueryResetFeatures;
  45327. struct PhysicalDeviceIDProperties
  45328. {
  45329. using NativeType = VkPhysicalDeviceIDProperties;
  45330. static const bool allowDuplicate = false;
  45331. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceIdProperties;
  45332. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  45333. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceIDProperties( std::array<uint8_t, VK_UUID_SIZE> const & deviceUUID_ = {},
  45334. std::array<uint8_t, VK_UUID_SIZE> const & driverUUID_ = {},
  45335. std::array<uint8_t, VK_LUID_SIZE> const & deviceLUID_ = {},
  45336. uint32_t deviceNodeMask_ = {},
  45337. VULKAN_HPP_NAMESPACE::Bool32 deviceLUIDValid_ = {},
  45338. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  45339. : pNext( pNext_ )
  45340. , deviceUUID( deviceUUID_ )
  45341. , driverUUID( driverUUID_ )
  45342. , deviceLUID( deviceLUID_ )
  45343. , deviceNodeMask( deviceNodeMask_ )
  45344. , deviceLUIDValid( deviceLUIDValid_ )
  45345. {
  45346. }
  45347. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceIDProperties( PhysicalDeviceIDProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  45348. PhysicalDeviceIDProperties( VkPhysicalDeviceIDProperties const & rhs ) VULKAN_HPP_NOEXCEPT
  45349. : PhysicalDeviceIDProperties( *reinterpret_cast<PhysicalDeviceIDProperties const *>( &rhs ) )
  45350. {
  45351. }
  45352. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  45353. PhysicalDeviceIDProperties & operator=( PhysicalDeviceIDProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  45354. PhysicalDeviceIDProperties & operator=( VkPhysicalDeviceIDProperties const & rhs ) VULKAN_HPP_NOEXCEPT
  45355. {
  45356. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceIDProperties const *>( &rhs );
  45357. return *this;
  45358. }
  45359. operator VkPhysicalDeviceIDProperties const &() const VULKAN_HPP_NOEXCEPT
  45360. {
  45361. return *reinterpret_cast<const VkPhysicalDeviceIDProperties *>( this );
  45362. }
  45363. operator VkPhysicalDeviceIDProperties &() VULKAN_HPP_NOEXCEPT
  45364. {
  45365. return *reinterpret_cast<VkPhysicalDeviceIDProperties *>( this );
  45366. }
  45367. #if defined( VULKAN_HPP_USE_REFLECT )
  45368. # if 14 <= VULKAN_HPP_CPP_VERSION
  45369. auto
  45370. # else
  45371. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  45372. void * const &,
  45373. VULKAN_HPP_NAMESPACE::ArrayWrapper1D<uint8_t, VK_UUID_SIZE> const &,
  45374. VULKAN_HPP_NAMESPACE::ArrayWrapper1D<uint8_t, VK_UUID_SIZE> const &,
  45375. VULKAN_HPP_NAMESPACE::ArrayWrapper1D<uint8_t, VK_LUID_SIZE> const &,
  45376. uint32_t const &,
  45377. VULKAN_HPP_NAMESPACE::Bool32 const &>
  45378. # endif
  45379. reflect() const VULKAN_HPP_NOEXCEPT
  45380. {
  45381. return std::tie( sType, pNext, deviceUUID, driverUUID, deviceLUID, deviceNodeMask, deviceLUIDValid );
  45382. }
  45383. #endif
  45384. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  45385. auto operator<=>( PhysicalDeviceIDProperties const & ) const = default;
  45386. #else
  45387. bool operator==( PhysicalDeviceIDProperties const & rhs ) const VULKAN_HPP_NOEXCEPT
  45388. {
  45389. # if defined( VULKAN_HPP_USE_REFLECT )
  45390. return this->reflect() == rhs.reflect();
  45391. # else
  45392. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( deviceUUID == rhs.deviceUUID ) && ( driverUUID == rhs.driverUUID ) &&
  45393. ( deviceLUID == rhs.deviceLUID ) && ( deviceNodeMask == rhs.deviceNodeMask ) && ( deviceLUIDValid == rhs.deviceLUIDValid );
  45394. # endif
  45395. }
  45396. bool operator!=( PhysicalDeviceIDProperties const & rhs ) const VULKAN_HPP_NOEXCEPT
  45397. {
  45398. return !operator==( rhs );
  45399. }
  45400. #endif
  45401. public:
  45402. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceIdProperties;
  45403. void * pNext = {};
  45404. VULKAN_HPP_NAMESPACE::ArrayWrapper1D<uint8_t, VK_UUID_SIZE> deviceUUID = {};
  45405. VULKAN_HPP_NAMESPACE::ArrayWrapper1D<uint8_t, VK_UUID_SIZE> driverUUID = {};
  45406. VULKAN_HPP_NAMESPACE::ArrayWrapper1D<uint8_t, VK_LUID_SIZE> deviceLUID = {};
  45407. uint32_t deviceNodeMask = {};
  45408. VULKAN_HPP_NAMESPACE::Bool32 deviceLUIDValid = {};
  45409. };
  45410. template <>
  45411. struct CppType<StructureType, StructureType::ePhysicalDeviceIdProperties>
  45412. {
  45413. using Type = PhysicalDeviceIDProperties;
  45414. };
  45415. using PhysicalDeviceIDPropertiesKHR = PhysicalDeviceIDProperties;
  45416. struct PhysicalDeviceImage2DViewOf3DFeaturesEXT
  45417. {
  45418. using NativeType = VkPhysicalDeviceImage2DViewOf3DFeaturesEXT;
  45419. static const bool allowDuplicate = false;
  45420. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceImage2DViewOf3DFeaturesEXT;
  45421. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  45422. VULKAN_HPP_CONSTEXPR PhysicalDeviceImage2DViewOf3DFeaturesEXT( VULKAN_HPP_NAMESPACE::Bool32 image2DViewOf3D_ = {},
  45423. VULKAN_HPP_NAMESPACE::Bool32 sampler2DViewOf3D_ = {},
  45424. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  45425. : pNext( pNext_ )
  45426. , image2DViewOf3D( image2DViewOf3D_ )
  45427. , sampler2DViewOf3D( sampler2DViewOf3D_ )
  45428. {
  45429. }
  45430. VULKAN_HPP_CONSTEXPR PhysicalDeviceImage2DViewOf3DFeaturesEXT( PhysicalDeviceImage2DViewOf3DFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  45431. PhysicalDeviceImage2DViewOf3DFeaturesEXT( VkPhysicalDeviceImage2DViewOf3DFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  45432. : PhysicalDeviceImage2DViewOf3DFeaturesEXT( *reinterpret_cast<PhysicalDeviceImage2DViewOf3DFeaturesEXT const *>( &rhs ) )
  45433. {
  45434. }
  45435. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  45436. PhysicalDeviceImage2DViewOf3DFeaturesEXT & operator=( PhysicalDeviceImage2DViewOf3DFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  45437. PhysicalDeviceImage2DViewOf3DFeaturesEXT & operator=( VkPhysicalDeviceImage2DViewOf3DFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  45438. {
  45439. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceImage2DViewOf3DFeaturesEXT const *>( &rhs );
  45440. return *this;
  45441. }
  45442. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  45443. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceImage2DViewOf3DFeaturesEXT & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
  45444. {
  45445. pNext = pNext_;
  45446. return *this;
  45447. }
  45448. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceImage2DViewOf3DFeaturesEXT & setImage2DViewOf3D( VULKAN_HPP_NAMESPACE::Bool32 image2DViewOf3D_ ) VULKAN_HPP_NOEXCEPT
  45449. {
  45450. image2DViewOf3D = image2DViewOf3D_;
  45451. return *this;
  45452. }
  45453. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceImage2DViewOf3DFeaturesEXT &
  45454. setSampler2DViewOf3D( VULKAN_HPP_NAMESPACE::Bool32 sampler2DViewOf3D_ ) VULKAN_HPP_NOEXCEPT
  45455. {
  45456. sampler2DViewOf3D = sampler2DViewOf3D_;
  45457. return *this;
  45458. }
  45459. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  45460. operator VkPhysicalDeviceImage2DViewOf3DFeaturesEXT const &() const VULKAN_HPP_NOEXCEPT
  45461. {
  45462. return *reinterpret_cast<const VkPhysicalDeviceImage2DViewOf3DFeaturesEXT *>( this );
  45463. }
  45464. operator VkPhysicalDeviceImage2DViewOf3DFeaturesEXT &() VULKAN_HPP_NOEXCEPT
  45465. {
  45466. return *reinterpret_cast<VkPhysicalDeviceImage2DViewOf3DFeaturesEXT *>( this );
  45467. }
  45468. #if defined( VULKAN_HPP_USE_REFLECT )
  45469. # if 14 <= VULKAN_HPP_CPP_VERSION
  45470. auto
  45471. # else
  45472. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
  45473. # endif
  45474. reflect() const VULKAN_HPP_NOEXCEPT
  45475. {
  45476. return std::tie( sType, pNext, image2DViewOf3D, sampler2DViewOf3D );
  45477. }
  45478. #endif
  45479. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  45480. auto operator<=>( PhysicalDeviceImage2DViewOf3DFeaturesEXT const & ) const = default;
  45481. #else
  45482. bool operator==( PhysicalDeviceImage2DViewOf3DFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  45483. {
  45484. # if defined( VULKAN_HPP_USE_REFLECT )
  45485. return this->reflect() == rhs.reflect();
  45486. # else
  45487. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( image2DViewOf3D == rhs.image2DViewOf3D ) && ( sampler2DViewOf3D == rhs.sampler2DViewOf3D );
  45488. # endif
  45489. }
  45490. bool operator!=( PhysicalDeviceImage2DViewOf3DFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  45491. {
  45492. return !operator==( rhs );
  45493. }
  45494. #endif
  45495. public:
  45496. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceImage2DViewOf3DFeaturesEXT;
  45497. void * pNext = {};
  45498. VULKAN_HPP_NAMESPACE::Bool32 image2DViewOf3D = {};
  45499. VULKAN_HPP_NAMESPACE::Bool32 sampler2DViewOf3D = {};
  45500. };
  45501. template <>
  45502. struct CppType<StructureType, StructureType::ePhysicalDeviceImage2DViewOf3DFeaturesEXT>
  45503. {
  45504. using Type = PhysicalDeviceImage2DViewOf3DFeaturesEXT;
  45505. };
  45506. struct PhysicalDeviceImageCompressionControlFeaturesEXT
  45507. {
  45508. using NativeType = VkPhysicalDeviceImageCompressionControlFeaturesEXT;
  45509. static const bool allowDuplicate = false;
  45510. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceImageCompressionControlFeaturesEXT;
  45511. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  45512. VULKAN_HPP_CONSTEXPR PhysicalDeviceImageCompressionControlFeaturesEXT( VULKAN_HPP_NAMESPACE::Bool32 imageCompressionControl_ = {},
  45513. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  45514. : pNext( pNext_ )
  45515. , imageCompressionControl( imageCompressionControl_ )
  45516. {
  45517. }
  45518. VULKAN_HPP_CONSTEXPR
  45519. PhysicalDeviceImageCompressionControlFeaturesEXT( PhysicalDeviceImageCompressionControlFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  45520. PhysicalDeviceImageCompressionControlFeaturesEXT( VkPhysicalDeviceImageCompressionControlFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  45521. : PhysicalDeviceImageCompressionControlFeaturesEXT( *reinterpret_cast<PhysicalDeviceImageCompressionControlFeaturesEXT const *>( &rhs ) )
  45522. {
  45523. }
  45524. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  45525. PhysicalDeviceImageCompressionControlFeaturesEXT & operator=( PhysicalDeviceImageCompressionControlFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  45526. PhysicalDeviceImageCompressionControlFeaturesEXT & operator=( VkPhysicalDeviceImageCompressionControlFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  45527. {
  45528. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceImageCompressionControlFeaturesEXT const *>( &rhs );
  45529. return *this;
  45530. }
  45531. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  45532. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceImageCompressionControlFeaturesEXT & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
  45533. {
  45534. pNext = pNext_;
  45535. return *this;
  45536. }
  45537. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceImageCompressionControlFeaturesEXT &
  45538. setImageCompressionControl( VULKAN_HPP_NAMESPACE::Bool32 imageCompressionControl_ ) VULKAN_HPP_NOEXCEPT
  45539. {
  45540. imageCompressionControl = imageCompressionControl_;
  45541. return *this;
  45542. }
  45543. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  45544. operator VkPhysicalDeviceImageCompressionControlFeaturesEXT const &() const VULKAN_HPP_NOEXCEPT
  45545. {
  45546. return *reinterpret_cast<const VkPhysicalDeviceImageCompressionControlFeaturesEXT *>( this );
  45547. }
  45548. operator VkPhysicalDeviceImageCompressionControlFeaturesEXT &() VULKAN_HPP_NOEXCEPT
  45549. {
  45550. return *reinterpret_cast<VkPhysicalDeviceImageCompressionControlFeaturesEXT *>( this );
  45551. }
  45552. #if defined( VULKAN_HPP_USE_REFLECT )
  45553. # if 14 <= VULKAN_HPP_CPP_VERSION
  45554. auto
  45555. # else
  45556. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
  45557. # endif
  45558. reflect() const VULKAN_HPP_NOEXCEPT
  45559. {
  45560. return std::tie( sType, pNext, imageCompressionControl );
  45561. }
  45562. #endif
  45563. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  45564. auto operator<=>( PhysicalDeviceImageCompressionControlFeaturesEXT const & ) const = default;
  45565. #else
  45566. bool operator==( PhysicalDeviceImageCompressionControlFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  45567. {
  45568. # if defined( VULKAN_HPP_USE_REFLECT )
  45569. return this->reflect() == rhs.reflect();
  45570. # else
  45571. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( imageCompressionControl == rhs.imageCompressionControl );
  45572. # endif
  45573. }
  45574. bool operator!=( PhysicalDeviceImageCompressionControlFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  45575. {
  45576. return !operator==( rhs );
  45577. }
  45578. #endif
  45579. public:
  45580. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceImageCompressionControlFeaturesEXT;
  45581. void * pNext = {};
  45582. VULKAN_HPP_NAMESPACE::Bool32 imageCompressionControl = {};
  45583. };
  45584. template <>
  45585. struct CppType<StructureType, StructureType::ePhysicalDeviceImageCompressionControlFeaturesEXT>
  45586. {
  45587. using Type = PhysicalDeviceImageCompressionControlFeaturesEXT;
  45588. };
  45589. struct PhysicalDeviceImageCompressionControlSwapchainFeaturesEXT
  45590. {
  45591. using NativeType = VkPhysicalDeviceImageCompressionControlSwapchainFeaturesEXT;
  45592. static const bool allowDuplicate = false;
  45593. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceImageCompressionControlSwapchainFeaturesEXT;
  45594. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  45595. VULKAN_HPP_CONSTEXPR PhysicalDeviceImageCompressionControlSwapchainFeaturesEXT( VULKAN_HPP_NAMESPACE::Bool32 imageCompressionControlSwapchain_ = {},
  45596. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  45597. : pNext( pNext_ )
  45598. , imageCompressionControlSwapchain( imageCompressionControlSwapchain_ )
  45599. {
  45600. }
  45601. VULKAN_HPP_CONSTEXPR PhysicalDeviceImageCompressionControlSwapchainFeaturesEXT( PhysicalDeviceImageCompressionControlSwapchainFeaturesEXT const & rhs )
  45602. VULKAN_HPP_NOEXCEPT = default;
  45603. PhysicalDeviceImageCompressionControlSwapchainFeaturesEXT( VkPhysicalDeviceImageCompressionControlSwapchainFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  45604. : PhysicalDeviceImageCompressionControlSwapchainFeaturesEXT(
  45605. *reinterpret_cast<PhysicalDeviceImageCompressionControlSwapchainFeaturesEXT const *>( &rhs ) )
  45606. {
  45607. }
  45608. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  45609. PhysicalDeviceImageCompressionControlSwapchainFeaturesEXT &
  45610. operator=( PhysicalDeviceImageCompressionControlSwapchainFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  45611. PhysicalDeviceImageCompressionControlSwapchainFeaturesEXT &
  45612. operator=( VkPhysicalDeviceImageCompressionControlSwapchainFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  45613. {
  45614. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceImageCompressionControlSwapchainFeaturesEXT const *>( &rhs );
  45615. return *this;
  45616. }
  45617. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  45618. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceImageCompressionControlSwapchainFeaturesEXT & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
  45619. {
  45620. pNext = pNext_;
  45621. return *this;
  45622. }
  45623. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceImageCompressionControlSwapchainFeaturesEXT &
  45624. setImageCompressionControlSwapchain( VULKAN_HPP_NAMESPACE::Bool32 imageCompressionControlSwapchain_ ) VULKAN_HPP_NOEXCEPT
  45625. {
  45626. imageCompressionControlSwapchain = imageCompressionControlSwapchain_;
  45627. return *this;
  45628. }
  45629. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  45630. operator VkPhysicalDeviceImageCompressionControlSwapchainFeaturesEXT const &() const VULKAN_HPP_NOEXCEPT
  45631. {
  45632. return *reinterpret_cast<const VkPhysicalDeviceImageCompressionControlSwapchainFeaturesEXT *>( this );
  45633. }
  45634. operator VkPhysicalDeviceImageCompressionControlSwapchainFeaturesEXT &() VULKAN_HPP_NOEXCEPT
  45635. {
  45636. return *reinterpret_cast<VkPhysicalDeviceImageCompressionControlSwapchainFeaturesEXT *>( this );
  45637. }
  45638. #if defined( VULKAN_HPP_USE_REFLECT )
  45639. # if 14 <= VULKAN_HPP_CPP_VERSION
  45640. auto
  45641. # else
  45642. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
  45643. # endif
  45644. reflect() const VULKAN_HPP_NOEXCEPT
  45645. {
  45646. return std::tie( sType, pNext, imageCompressionControlSwapchain );
  45647. }
  45648. #endif
  45649. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  45650. auto operator<=>( PhysicalDeviceImageCompressionControlSwapchainFeaturesEXT const & ) const = default;
  45651. #else
  45652. bool operator==( PhysicalDeviceImageCompressionControlSwapchainFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  45653. {
  45654. # if defined( VULKAN_HPP_USE_REFLECT )
  45655. return this->reflect() == rhs.reflect();
  45656. # else
  45657. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( imageCompressionControlSwapchain == rhs.imageCompressionControlSwapchain );
  45658. # endif
  45659. }
  45660. bool operator!=( PhysicalDeviceImageCompressionControlSwapchainFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  45661. {
  45662. return !operator==( rhs );
  45663. }
  45664. #endif
  45665. public:
  45666. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceImageCompressionControlSwapchainFeaturesEXT;
  45667. void * pNext = {};
  45668. VULKAN_HPP_NAMESPACE::Bool32 imageCompressionControlSwapchain = {};
  45669. };
  45670. template <>
  45671. struct CppType<StructureType, StructureType::ePhysicalDeviceImageCompressionControlSwapchainFeaturesEXT>
  45672. {
  45673. using Type = PhysicalDeviceImageCompressionControlSwapchainFeaturesEXT;
  45674. };
  45675. struct PhysicalDeviceImageDrmFormatModifierInfoEXT
  45676. {
  45677. using NativeType = VkPhysicalDeviceImageDrmFormatModifierInfoEXT;
  45678. static const bool allowDuplicate = false;
  45679. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceImageDrmFormatModifierInfoEXT;
  45680. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  45681. VULKAN_HPP_CONSTEXPR
  45682. PhysicalDeviceImageDrmFormatModifierInfoEXT( uint64_t drmFormatModifier_ = {},
  45683. VULKAN_HPP_NAMESPACE::SharingMode sharingMode_ = VULKAN_HPP_NAMESPACE::SharingMode::eExclusive,
  45684. uint32_t queueFamilyIndexCount_ = {},
  45685. const uint32_t * pQueueFamilyIndices_ = {},
  45686. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  45687. : pNext( pNext_ )
  45688. , drmFormatModifier( drmFormatModifier_ )
  45689. , sharingMode( sharingMode_ )
  45690. , queueFamilyIndexCount( queueFamilyIndexCount_ )
  45691. , pQueueFamilyIndices( pQueueFamilyIndices_ )
  45692. {
  45693. }
  45694. VULKAN_HPP_CONSTEXPR PhysicalDeviceImageDrmFormatModifierInfoEXT( PhysicalDeviceImageDrmFormatModifierInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  45695. PhysicalDeviceImageDrmFormatModifierInfoEXT( VkPhysicalDeviceImageDrmFormatModifierInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  45696. : PhysicalDeviceImageDrmFormatModifierInfoEXT( *reinterpret_cast<PhysicalDeviceImageDrmFormatModifierInfoEXT const *>( &rhs ) )
  45697. {
  45698. }
  45699. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  45700. PhysicalDeviceImageDrmFormatModifierInfoEXT( uint64_t drmFormatModifier_,
  45701. VULKAN_HPP_NAMESPACE::SharingMode sharingMode_,
  45702. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint32_t> const & queueFamilyIndices_,
  45703. const void * pNext_ = nullptr )
  45704. : pNext( pNext_ )
  45705. , drmFormatModifier( drmFormatModifier_ )
  45706. , sharingMode( sharingMode_ )
  45707. , queueFamilyIndexCount( static_cast<uint32_t>( queueFamilyIndices_.size() ) )
  45708. , pQueueFamilyIndices( queueFamilyIndices_.data() )
  45709. {
  45710. }
  45711. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  45712. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  45713. PhysicalDeviceImageDrmFormatModifierInfoEXT & operator=( PhysicalDeviceImageDrmFormatModifierInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  45714. PhysicalDeviceImageDrmFormatModifierInfoEXT & operator=( VkPhysicalDeviceImageDrmFormatModifierInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  45715. {
  45716. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceImageDrmFormatModifierInfoEXT const *>( &rhs );
  45717. return *this;
  45718. }
  45719. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  45720. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceImageDrmFormatModifierInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  45721. {
  45722. pNext = pNext_;
  45723. return *this;
  45724. }
  45725. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceImageDrmFormatModifierInfoEXT & setDrmFormatModifier( uint64_t drmFormatModifier_ ) VULKAN_HPP_NOEXCEPT
  45726. {
  45727. drmFormatModifier = drmFormatModifier_;
  45728. return *this;
  45729. }
  45730. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceImageDrmFormatModifierInfoEXT & setSharingMode( VULKAN_HPP_NAMESPACE::SharingMode sharingMode_ ) VULKAN_HPP_NOEXCEPT
  45731. {
  45732. sharingMode = sharingMode_;
  45733. return *this;
  45734. }
  45735. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceImageDrmFormatModifierInfoEXT & setQueueFamilyIndexCount( uint32_t queueFamilyIndexCount_ ) VULKAN_HPP_NOEXCEPT
  45736. {
  45737. queueFamilyIndexCount = queueFamilyIndexCount_;
  45738. return *this;
  45739. }
  45740. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceImageDrmFormatModifierInfoEXT & setPQueueFamilyIndices( const uint32_t * pQueueFamilyIndices_ ) VULKAN_HPP_NOEXCEPT
  45741. {
  45742. pQueueFamilyIndices = pQueueFamilyIndices_;
  45743. return *this;
  45744. }
  45745. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  45746. PhysicalDeviceImageDrmFormatModifierInfoEXT &
  45747. setQueueFamilyIndices( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint32_t> const & queueFamilyIndices_ ) VULKAN_HPP_NOEXCEPT
  45748. {
  45749. queueFamilyIndexCount = static_cast<uint32_t>( queueFamilyIndices_.size() );
  45750. pQueueFamilyIndices = queueFamilyIndices_.data();
  45751. return *this;
  45752. }
  45753. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  45754. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  45755. operator VkPhysicalDeviceImageDrmFormatModifierInfoEXT const &() const VULKAN_HPP_NOEXCEPT
  45756. {
  45757. return *reinterpret_cast<const VkPhysicalDeviceImageDrmFormatModifierInfoEXT *>( this );
  45758. }
  45759. operator VkPhysicalDeviceImageDrmFormatModifierInfoEXT &() VULKAN_HPP_NOEXCEPT
  45760. {
  45761. return *reinterpret_cast<VkPhysicalDeviceImageDrmFormatModifierInfoEXT *>( this );
  45762. }
  45763. #if defined( VULKAN_HPP_USE_REFLECT )
  45764. # if 14 <= VULKAN_HPP_CPP_VERSION
  45765. auto
  45766. # else
  45767. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  45768. const void * const &,
  45769. uint64_t const &,
  45770. VULKAN_HPP_NAMESPACE::SharingMode const &,
  45771. uint32_t const &,
  45772. const uint32_t * const &>
  45773. # endif
  45774. reflect() const VULKAN_HPP_NOEXCEPT
  45775. {
  45776. return std::tie( sType, pNext, drmFormatModifier, sharingMode, queueFamilyIndexCount, pQueueFamilyIndices );
  45777. }
  45778. #endif
  45779. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  45780. auto operator<=>( PhysicalDeviceImageDrmFormatModifierInfoEXT const & ) const = default;
  45781. #else
  45782. bool operator==( PhysicalDeviceImageDrmFormatModifierInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  45783. {
  45784. # if defined( VULKAN_HPP_USE_REFLECT )
  45785. return this->reflect() == rhs.reflect();
  45786. # else
  45787. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( drmFormatModifier == rhs.drmFormatModifier ) && ( sharingMode == rhs.sharingMode ) &&
  45788. ( queueFamilyIndexCount == rhs.queueFamilyIndexCount ) && ( pQueueFamilyIndices == rhs.pQueueFamilyIndices );
  45789. # endif
  45790. }
  45791. bool operator!=( PhysicalDeviceImageDrmFormatModifierInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  45792. {
  45793. return !operator==( rhs );
  45794. }
  45795. #endif
  45796. public:
  45797. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceImageDrmFormatModifierInfoEXT;
  45798. const void * pNext = {};
  45799. uint64_t drmFormatModifier = {};
  45800. VULKAN_HPP_NAMESPACE::SharingMode sharingMode = VULKAN_HPP_NAMESPACE::SharingMode::eExclusive;
  45801. uint32_t queueFamilyIndexCount = {};
  45802. const uint32_t * pQueueFamilyIndices = {};
  45803. };
  45804. template <>
  45805. struct CppType<StructureType, StructureType::ePhysicalDeviceImageDrmFormatModifierInfoEXT>
  45806. {
  45807. using Type = PhysicalDeviceImageDrmFormatModifierInfoEXT;
  45808. };
  45809. struct PhysicalDeviceImageFormatInfo2
  45810. {
  45811. using NativeType = VkPhysicalDeviceImageFormatInfo2;
  45812. static const bool allowDuplicate = false;
  45813. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceImageFormatInfo2;
  45814. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  45815. VULKAN_HPP_CONSTEXPR PhysicalDeviceImageFormatInfo2( VULKAN_HPP_NAMESPACE::Format format_ = VULKAN_HPP_NAMESPACE::Format::eUndefined,
  45816. VULKAN_HPP_NAMESPACE::ImageType type_ = VULKAN_HPP_NAMESPACE::ImageType::e1D,
  45817. VULKAN_HPP_NAMESPACE::ImageTiling tiling_ = VULKAN_HPP_NAMESPACE::ImageTiling::eOptimal,
  45818. VULKAN_HPP_NAMESPACE::ImageUsageFlags usage_ = {},
  45819. VULKAN_HPP_NAMESPACE::ImageCreateFlags flags_ = {},
  45820. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  45821. : pNext( pNext_ )
  45822. , format( format_ )
  45823. , type( type_ )
  45824. , tiling( tiling_ )
  45825. , usage( usage_ )
  45826. , flags( flags_ )
  45827. {
  45828. }
  45829. VULKAN_HPP_CONSTEXPR PhysicalDeviceImageFormatInfo2( PhysicalDeviceImageFormatInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  45830. PhysicalDeviceImageFormatInfo2( VkPhysicalDeviceImageFormatInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT
  45831. : PhysicalDeviceImageFormatInfo2( *reinterpret_cast<PhysicalDeviceImageFormatInfo2 const *>( &rhs ) )
  45832. {
  45833. }
  45834. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  45835. PhysicalDeviceImageFormatInfo2 & operator=( PhysicalDeviceImageFormatInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  45836. PhysicalDeviceImageFormatInfo2 & operator=( VkPhysicalDeviceImageFormatInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT
  45837. {
  45838. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceImageFormatInfo2 const *>( &rhs );
  45839. return *this;
  45840. }
  45841. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  45842. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceImageFormatInfo2 & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  45843. {
  45844. pNext = pNext_;
  45845. return *this;
  45846. }
  45847. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceImageFormatInfo2 & setFormat( VULKAN_HPP_NAMESPACE::Format format_ ) VULKAN_HPP_NOEXCEPT
  45848. {
  45849. format = format_;
  45850. return *this;
  45851. }
  45852. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceImageFormatInfo2 & setType( VULKAN_HPP_NAMESPACE::ImageType type_ ) VULKAN_HPP_NOEXCEPT
  45853. {
  45854. type = type_;
  45855. return *this;
  45856. }
  45857. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceImageFormatInfo2 & setTiling( VULKAN_HPP_NAMESPACE::ImageTiling tiling_ ) VULKAN_HPP_NOEXCEPT
  45858. {
  45859. tiling = tiling_;
  45860. return *this;
  45861. }
  45862. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceImageFormatInfo2 & setUsage( VULKAN_HPP_NAMESPACE::ImageUsageFlags usage_ ) VULKAN_HPP_NOEXCEPT
  45863. {
  45864. usage = usage_;
  45865. return *this;
  45866. }
  45867. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceImageFormatInfo2 & setFlags( VULKAN_HPP_NAMESPACE::ImageCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT
  45868. {
  45869. flags = flags_;
  45870. return *this;
  45871. }
  45872. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  45873. operator VkPhysicalDeviceImageFormatInfo2 const &() const VULKAN_HPP_NOEXCEPT
  45874. {
  45875. return *reinterpret_cast<const VkPhysicalDeviceImageFormatInfo2 *>( this );
  45876. }
  45877. operator VkPhysicalDeviceImageFormatInfo2 &() VULKAN_HPP_NOEXCEPT
  45878. {
  45879. return *reinterpret_cast<VkPhysicalDeviceImageFormatInfo2 *>( this );
  45880. }
  45881. #if defined( VULKAN_HPP_USE_REFLECT )
  45882. # if 14 <= VULKAN_HPP_CPP_VERSION
  45883. auto
  45884. # else
  45885. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  45886. const void * const &,
  45887. VULKAN_HPP_NAMESPACE::Format const &,
  45888. VULKAN_HPP_NAMESPACE::ImageType const &,
  45889. VULKAN_HPP_NAMESPACE::ImageTiling const &,
  45890. VULKAN_HPP_NAMESPACE::ImageUsageFlags const &,
  45891. VULKAN_HPP_NAMESPACE::ImageCreateFlags const &>
  45892. # endif
  45893. reflect() const VULKAN_HPP_NOEXCEPT
  45894. {
  45895. return std::tie( sType, pNext, format, type, tiling, usage, flags );
  45896. }
  45897. #endif
  45898. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  45899. auto operator<=>( PhysicalDeviceImageFormatInfo2 const & ) const = default;
  45900. #else
  45901. bool operator==( PhysicalDeviceImageFormatInfo2 const & rhs ) const VULKAN_HPP_NOEXCEPT
  45902. {
  45903. # if defined( VULKAN_HPP_USE_REFLECT )
  45904. return this->reflect() == rhs.reflect();
  45905. # else
  45906. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( format == rhs.format ) && ( type == rhs.type ) && ( tiling == rhs.tiling ) &&
  45907. ( usage == rhs.usage ) && ( flags == rhs.flags );
  45908. # endif
  45909. }
  45910. bool operator!=( PhysicalDeviceImageFormatInfo2 const & rhs ) const VULKAN_HPP_NOEXCEPT
  45911. {
  45912. return !operator==( rhs );
  45913. }
  45914. #endif
  45915. public:
  45916. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceImageFormatInfo2;
  45917. const void * pNext = {};
  45918. VULKAN_HPP_NAMESPACE::Format format = VULKAN_HPP_NAMESPACE::Format::eUndefined;
  45919. VULKAN_HPP_NAMESPACE::ImageType type = VULKAN_HPP_NAMESPACE::ImageType::e1D;
  45920. VULKAN_HPP_NAMESPACE::ImageTiling tiling = VULKAN_HPP_NAMESPACE::ImageTiling::eOptimal;
  45921. VULKAN_HPP_NAMESPACE::ImageUsageFlags usage = {};
  45922. VULKAN_HPP_NAMESPACE::ImageCreateFlags flags = {};
  45923. };
  45924. template <>
  45925. struct CppType<StructureType, StructureType::ePhysicalDeviceImageFormatInfo2>
  45926. {
  45927. using Type = PhysicalDeviceImageFormatInfo2;
  45928. };
  45929. using PhysicalDeviceImageFormatInfo2KHR = PhysicalDeviceImageFormatInfo2;
  45930. struct PhysicalDeviceImageProcessingFeaturesQCOM
  45931. {
  45932. using NativeType = VkPhysicalDeviceImageProcessingFeaturesQCOM;
  45933. static const bool allowDuplicate = false;
  45934. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceImageProcessingFeaturesQCOM;
  45935. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  45936. VULKAN_HPP_CONSTEXPR PhysicalDeviceImageProcessingFeaturesQCOM( VULKAN_HPP_NAMESPACE::Bool32 textureSampleWeighted_ = {},
  45937. VULKAN_HPP_NAMESPACE::Bool32 textureBoxFilter_ = {},
  45938. VULKAN_HPP_NAMESPACE::Bool32 textureBlockMatch_ = {},
  45939. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  45940. : pNext( pNext_ )
  45941. , textureSampleWeighted( textureSampleWeighted_ )
  45942. , textureBoxFilter( textureBoxFilter_ )
  45943. , textureBlockMatch( textureBlockMatch_ )
  45944. {
  45945. }
  45946. VULKAN_HPP_CONSTEXPR PhysicalDeviceImageProcessingFeaturesQCOM( PhysicalDeviceImageProcessingFeaturesQCOM const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  45947. PhysicalDeviceImageProcessingFeaturesQCOM( VkPhysicalDeviceImageProcessingFeaturesQCOM const & rhs ) VULKAN_HPP_NOEXCEPT
  45948. : PhysicalDeviceImageProcessingFeaturesQCOM( *reinterpret_cast<PhysicalDeviceImageProcessingFeaturesQCOM const *>( &rhs ) )
  45949. {
  45950. }
  45951. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  45952. PhysicalDeviceImageProcessingFeaturesQCOM & operator=( PhysicalDeviceImageProcessingFeaturesQCOM const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  45953. PhysicalDeviceImageProcessingFeaturesQCOM & operator=( VkPhysicalDeviceImageProcessingFeaturesQCOM const & rhs ) VULKAN_HPP_NOEXCEPT
  45954. {
  45955. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceImageProcessingFeaturesQCOM const *>( &rhs );
  45956. return *this;
  45957. }
  45958. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  45959. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceImageProcessingFeaturesQCOM & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
  45960. {
  45961. pNext = pNext_;
  45962. return *this;
  45963. }
  45964. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceImageProcessingFeaturesQCOM &
  45965. setTextureSampleWeighted( VULKAN_HPP_NAMESPACE::Bool32 textureSampleWeighted_ ) VULKAN_HPP_NOEXCEPT
  45966. {
  45967. textureSampleWeighted = textureSampleWeighted_;
  45968. return *this;
  45969. }
  45970. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceImageProcessingFeaturesQCOM &
  45971. setTextureBoxFilter( VULKAN_HPP_NAMESPACE::Bool32 textureBoxFilter_ ) VULKAN_HPP_NOEXCEPT
  45972. {
  45973. textureBoxFilter = textureBoxFilter_;
  45974. return *this;
  45975. }
  45976. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceImageProcessingFeaturesQCOM &
  45977. setTextureBlockMatch( VULKAN_HPP_NAMESPACE::Bool32 textureBlockMatch_ ) VULKAN_HPP_NOEXCEPT
  45978. {
  45979. textureBlockMatch = textureBlockMatch_;
  45980. return *this;
  45981. }
  45982. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  45983. operator VkPhysicalDeviceImageProcessingFeaturesQCOM const &() const VULKAN_HPP_NOEXCEPT
  45984. {
  45985. return *reinterpret_cast<const VkPhysicalDeviceImageProcessingFeaturesQCOM *>( this );
  45986. }
  45987. operator VkPhysicalDeviceImageProcessingFeaturesQCOM &() VULKAN_HPP_NOEXCEPT
  45988. {
  45989. return *reinterpret_cast<VkPhysicalDeviceImageProcessingFeaturesQCOM *>( this );
  45990. }
  45991. #if defined( VULKAN_HPP_USE_REFLECT )
  45992. # if 14 <= VULKAN_HPP_CPP_VERSION
  45993. auto
  45994. # else
  45995. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  45996. void * const &,
  45997. VULKAN_HPP_NAMESPACE::Bool32 const &,
  45998. VULKAN_HPP_NAMESPACE::Bool32 const &,
  45999. VULKAN_HPP_NAMESPACE::Bool32 const &>
  46000. # endif
  46001. reflect() const VULKAN_HPP_NOEXCEPT
  46002. {
  46003. return std::tie( sType, pNext, textureSampleWeighted, textureBoxFilter, textureBlockMatch );
  46004. }
  46005. #endif
  46006. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  46007. auto operator<=>( PhysicalDeviceImageProcessingFeaturesQCOM const & ) const = default;
  46008. #else
  46009. bool operator==( PhysicalDeviceImageProcessingFeaturesQCOM const & rhs ) const VULKAN_HPP_NOEXCEPT
  46010. {
  46011. # if defined( VULKAN_HPP_USE_REFLECT )
  46012. return this->reflect() == rhs.reflect();
  46013. # else
  46014. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( textureSampleWeighted == rhs.textureSampleWeighted ) &&
  46015. ( textureBoxFilter == rhs.textureBoxFilter ) && ( textureBlockMatch == rhs.textureBlockMatch );
  46016. # endif
  46017. }
  46018. bool operator!=( PhysicalDeviceImageProcessingFeaturesQCOM const & rhs ) const VULKAN_HPP_NOEXCEPT
  46019. {
  46020. return !operator==( rhs );
  46021. }
  46022. #endif
  46023. public:
  46024. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceImageProcessingFeaturesQCOM;
  46025. void * pNext = {};
  46026. VULKAN_HPP_NAMESPACE::Bool32 textureSampleWeighted = {};
  46027. VULKAN_HPP_NAMESPACE::Bool32 textureBoxFilter = {};
  46028. VULKAN_HPP_NAMESPACE::Bool32 textureBlockMatch = {};
  46029. };
  46030. template <>
  46031. struct CppType<StructureType, StructureType::ePhysicalDeviceImageProcessingFeaturesQCOM>
  46032. {
  46033. using Type = PhysicalDeviceImageProcessingFeaturesQCOM;
  46034. };
  46035. struct PhysicalDeviceImageProcessingPropertiesQCOM
  46036. {
  46037. using NativeType = VkPhysicalDeviceImageProcessingPropertiesQCOM;
  46038. static const bool allowDuplicate = false;
  46039. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceImageProcessingPropertiesQCOM;
  46040. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  46041. VULKAN_HPP_CONSTEXPR PhysicalDeviceImageProcessingPropertiesQCOM( uint32_t maxWeightFilterPhases_ = {},
  46042. VULKAN_HPP_NAMESPACE::Extent2D maxWeightFilterDimension_ = {},
  46043. VULKAN_HPP_NAMESPACE::Extent2D maxBlockMatchRegion_ = {},
  46044. VULKAN_HPP_NAMESPACE::Extent2D maxBoxFilterBlockSize_ = {},
  46045. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  46046. : pNext( pNext_ )
  46047. , maxWeightFilterPhases( maxWeightFilterPhases_ )
  46048. , maxWeightFilterDimension( maxWeightFilterDimension_ )
  46049. , maxBlockMatchRegion( maxBlockMatchRegion_ )
  46050. , maxBoxFilterBlockSize( maxBoxFilterBlockSize_ )
  46051. {
  46052. }
  46053. VULKAN_HPP_CONSTEXPR PhysicalDeviceImageProcessingPropertiesQCOM( PhysicalDeviceImageProcessingPropertiesQCOM const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  46054. PhysicalDeviceImageProcessingPropertiesQCOM( VkPhysicalDeviceImageProcessingPropertiesQCOM const & rhs ) VULKAN_HPP_NOEXCEPT
  46055. : PhysicalDeviceImageProcessingPropertiesQCOM( *reinterpret_cast<PhysicalDeviceImageProcessingPropertiesQCOM const *>( &rhs ) )
  46056. {
  46057. }
  46058. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  46059. PhysicalDeviceImageProcessingPropertiesQCOM & operator=( PhysicalDeviceImageProcessingPropertiesQCOM const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  46060. PhysicalDeviceImageProcessingPropertiesQCOM & operator=( VkPhysicalDeviceImageProcessingPropertiesQCOM const & rhs ) VULKAN_HPP_NOEXCEPT
  46061. {
  46062. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceImageProcessingPropertiesQCOM const *>( &rhs );
  46063. return *this;
  46064. }
  46065. operator VkPhysicalDeviceImageProcessingPropertiesQCOM const &() const VULKAN_HPP_NOEXCEPT
  46066. {
  46067. return *reinterpret_cast<const VkPhysicalDeviceImageProcessingPropertiesQCOM *>( this );
  46068. }
  46069. operator VkPhysicalDeviceImageProcessingPropertiesQCOM &() VULKAN_HPP_NOEXCEPT
  46070. {
  46071. return *reinterpret_cast<VkPhysicalDeviceImageProcessingPropertiesQCOM *>( this );
  46072. }
  46073. #if defined( VULKAN_HPP_USE_REFLECT )
  46074. # if 14 <= VULKAN_HPP_CPP_VERSION
  46075. auto
  46076. # else
  46077. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  46078. void * const &,
  46079. uint32_t const &,
  46080. VULKAN_HPP_NAMESPACE::Extent2D const &,
  46081. VULKAN_HPP_NAMESPACE::Extent2D const &,
  46082. VULKAN_HPP_NAMESPACE::Extent2D const &>
  46083. # endif
  46084. reflect() const VULKAN_HPP_NOEXCEPT
  46085. {
  46086. return std::tie( sType, pNext, maxWeightFilterPhases, maxWeightFilterDimension, maxBlockMatchRegion, maxBoxFilterBlockSize );
  46087. }
  46088. #endif
  46089. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  46090. auto operator<=>( PhysicalDeviceImageProcessingPropertiesQCOM const & ) const = default;
  46091. #else
  46092. bool operator==( PhysicalDeviceImageProcessingPropertiesQCOM const & rhs ) const VULKAN_HPP_NOEXCEPT
  46093. {
  46094. # if defined( VULKAN_HPP_USE_REFLECT )
  46095. return this->reflect() == rhs.reflect();
  46096. # else
  46097. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( maxWeightFilterPhases == rhs.maxWeightFilterPhases ) &&
  46098. ( maxWeightFilterDimension == rhs.maxWeightFilterDimension ) && ( maxBlockMatchRegion == rhs.maxBlockMatchRegion ) &&
  46099. ( maxBoxFilterBlockSize == rhs.maxBoxFilterBlockSize );
  46100. # endif
  46101. }
  46102. bool operator!=( PhysicalDeviceImageProcessingPropertiesQCOM const & rhs ) const VULKAN_HPP_NOEXCEPT
  46103. {
  46104. return !operator==( rhs );
  46105. }
  46106. #endif
  46107. public:
  46108. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceImageProcessingPropertiesQCOM;
  46109. void * pNext = {};
  46110. uint32_t maxWeightFilterPhases = {};
  46111. VULKAN_HPP_NAMESPACE::Extent2D maxWeightFilterDimension = {};
  46112. VULKAN_HPP_NAMESPACE::Extent2D maxBlockMatchRegion = {};
  46113. VULKAN_HPP_NAMESPACE::Extent2D maxBoxFilterBlockSize = {};
  46114. };
  46115. template <>
  46116. struct CppType<StructureType, StructureType::ePhysicalDeviceImageProcessingPropertiesQCOM>
  46117. {
  46118. using Type = PhysicalDeviceImageProcessingPropertiesQCOM;
  46119. };
  46120. struct PhysicalDeviceImageRobustnessFeatures
  46121. {
  46122. using NativeType = VkPhysicalDeviceImageRobustnessFeatures;
  46123. static const bool allowDuplicate = false;
  46124. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceImageRobustnessFeatures;
  46125. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  46126. VULKAN_HPP_CONSTEXPR PhysicalDeviceImageRobustnessFeatures( VULKAN_HPP_NAMESPACE::Bool32 robustImageAccess_ = {},
  46127. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  46128. : pNext( pNext_ )
  46129. , robustImageAccess( robustImageAccess_ )
  46130. {
  46131. }
  46132. VULKAN_HPP_CONSTEXPR PhysicalDeviceImageRobustnessFeatures( PhysicalDeviceImageRobustnessFeatures const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  46133. PhysicalDeviceImageRobustnessFeatures( VkPhysicalDeviceImageRobustnessFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
  46134. : PhysicalDeviceImageRobustnessFeatures( *reinterpret_cast<PhysicalDeviceImageRobustnessFeatures const *>( &rhs ) )
  46135. {
  46136. }
  46137. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  46138. PhysicalDeviceImageRobustnessFeatures & operator=( PhysicalDeviceImageRobustnessFeatures const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  46139. PhysicalDeviceImageRobustnessFeatures & operator=( VkPhysicalDeviceImageRobustnessFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
  46140. {
  46141. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceImageRobustnessFeatures const *>( &rhs );
  46142. return *this;
  46143. }
  46144. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  46145. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceImageRobustnessFeatures & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
  46146. {
  46147. pNext = pNext_;
  46148. return *this;
  46149. }
  46150. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceImageRobustnessFeatures & setRobustImageAccess( VULKAN_HPP_NAMESPACE::Bool32 robustImageAccess_ ) VULKAN_HPP_NOEXCEPT
  46151. {
  46152. robustImageAccess = robustImageAccess_;
  46153. return *this;
  46154. }
  46155. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  46156. operator VkPhysicalDeviceImageRobustnessFeatures const &() const VULKAN_HPP_NOEXCEPT
  46157. {
  46158. return *reinterpret_cast<const VkPhysicalDeviceImageRobustnessFeatures *>( this );
  46159. }
  46160. operator VkPhysicalDeviceImageRobustnessFeatures &() VULKAN_HPP_NOEXCEPT
  46161. {
  46162. return *reinterpret_cast<VkPhysicalDeviceImageRobustnessFeatures *>( this );
  46163. }
  46164. #if defined( VULKAN_HPP_USE_REFLECT )
  46165. # if 14 <= VULKAN_HPP_CPP_VERSION
  46166. auto
  46167. # else
  46168. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
  46169. # endif
  46170. reflect() const VULKAN_HPP_NOEXCEPT
  46171. {
  46172. return std::tie( sType, pNext, robustImageAccess );
  46173. }
  46174. #endif
  46175. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  46176. auto operator<=>( PhysicalDeviceImageRobustnessFeatures const & ) const = default;
  46177. #else
  46178. bool operator==( PhysicalDeviceImageRobustnessFeatures const & rhs ) const VULKAN_HPP_NOEXCEPT
  46179. {
  46180. # if defined( VULKAN_HPP_USE_REFLECT )
  46181. return this->reflect() == rhs.reflect();
  46182. # else
  46183. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( robustImageAccess == rhs.robustImageAccess );
  46184. # endif
  46185. }
  46186. bool operator!=( PhysicalDeviceImageRobustnessFeatures const & rhs ) const VULKAN_HPP_NOEXCEPT
  46187. {
  46188. return !operator==( rhs );
  46189. }
  46190. #endif
  46191. public:
  46192. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceImageRobustnessFeatures;
  46193. void * pNext = {};
  46194. VULKAN_HPP_NAMESPACE::Bool32 robustImageAccess = {};
  46195. };
  46196. template <>
  46197. struct CppType<StructureType, StructureType::ePhysicalDeviceImageRobustnessFeatures>
  46198. {
  46199. using Type = PhysicalDeviceImageRobustnessFeatures;
  46200. };
  46201. using PhysicalDeviceImageRobustnessFeaturesEXT = PhysicalDeviceImageRobustnessFeatures;
  46202. struct PhysicalDeviceImageViewImageFormatInfoEXT
  46203. {
  46204. using NativeType = VkPhysicalDeviceImageViewImageFormatInfoEXT;
  46205. static const bool allowDuplicate = false;
  46206. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceImageViewImageFormatInfoEXT;
  46207. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  46208. VULKAN_HPP_CONSTEXPR
  46209. PhysicalDeviceImageViewImageFormatInfoEXT( VULKAN_HPP_NAMESPACE::ImageViewType imageViewType_ = VULKAN_HPP_NAMESPACE::ImageViewType::e1D,
  46210. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  46211. : pNext( pNext_ )
  46212. , imageViewType( imageViewType_ )
  46213. {
  46214. }
  46215. VULKAN_HPP_CONSTEXPR PhysicalDeviceImageViewImageFormatInfoEXT( PhysicalDeviceImageViewImageFormatInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  46216. PhysicalDeviceImageViewImageFormatInfoEXT( VkPhysicalDeviceImageViewImageFormatInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  46217. : PhysicalDeviceImageViewImageFormatInfoEXT( *reinterpret_cast<PhysicalDeviceImageViewImageFormatInfoEXT const *>( &rhs ) )
  46218. {
  46219. }
  46220. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  46221. PhysicalDeviceImageViewImageFormatInfoEXT & operator=( PhysicalDeviceImageViewImageFormatInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  46222. PhysicalDeviceImageViewImageFormatInfoEXT & operator=( VkPhysicalDeviceImageViewImageFormatInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  46223. {
  46224. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceImageViewImageFormatInfoEXT const *>( &rhs );
  46225. return *this;
  46226. }
  46227. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  46228. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceImageViewImageFormatInfoEXT & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
  46229. {
  46230. pNext = pNext_;
  46231. return *this;
  46232. }
  46233. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceImageViewImageFormatInfoEXT &
  46234. setImageViewType( VULKAN_HPP_NAMESPACE::ImageViewType imageViewType_ ) VULKAN_HPP_NOEXCEPT
  46235. {
  46236. imageViewType = imageViewType_;
  46237. return *this;
  46238. }
  46239. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  46240. operator VkPhysicalDeviceImageViewImageFormatInfoEXT const &() const VULKAN_HPP_NOEXCEPT
  46241. {
  46242. return *reinterpret_cast<const VkPhysicalDeviceImageViewImageFormatInfoEXT *>( this );
  46243. }
  46244. operator VkPhysicalDeviceImageViewImageFormatInfoEXT &() VULKAN_HPP_NOEXCEPT
  46245. {
  46246. return *reinterpret_cast<VkPhysicalDeviceImageViewImageFormatInfoEXT *>( this );
  46247. }
  46248. #if defined( VULKAN_HPP_USE_REFLECT )
  46249. # if 14 <= VULKAN_HPP_CPP_VERSION
  46250. auto
  46251. # else
  46252. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::ImageViewType const &>
  46253. # endif
  46254. reflect() const VULKAN_HPP_NOEXCEPT
  46255. {
  46256. return std::tie( sType, pNext, imageViewType );
  46257. }
  46258. #endif
  46259. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  46260. auto operator<=>( PhysicalDeviceImageViewImageFormatInfoEXT const & ) const = default;
  46261. #else
  46262. bool operator==( PhysicalDeviceImageViewImageFormatInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  46263. {
  46264. # if defined( VULKAN_HPP_USE_REFLECT )
  46265. return this->reflect() == rhs.reflect();
  46266. # else
  46267. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( imageViewType == rhs.imageViewType );
  46268. # endif
  46269. }
  46270. bool operator!=( PhysicalDeviceImageViewImageFormatInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  46271. {
  46272. return !operator==( rhs );
  46273. }
  46274. #endif
  46275. public:
  46276. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceImageViewImageFormatInfoEXT;
  46277. void * pNext = {};
  46278. VULKAN_HPP_NAMESPACE::ImageViewType imageViewType = VULKAN_HPP_NAMESPACE::ImageViewType::e1D;
  46279. };
  46280. template <>
  46281. struct CppType<StructureType, StructureType::ePhysicalDeviceImageViewImageFormatInfoEXT>
  46282. {
  46283. using Type = PhysicalDeviceImageViewImageFormatInfoEXT;
  46284. };
  46285. struct PhysicalDeviceImageViewMinLodFeaturesEXT
  46286. {
  46287. using NativeType = VkPhysicalDeviceImageViewMinLodFeaturesEXT;
  46288. static const bool allowDuplicate = false;
  46289. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceImageViewMinLodFeaturesEXT;
  46290. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  46291. VULKAN_HPP_CONSTEXPR PhysicalDeviceImageViewMinLodFeaturesEXT( VULKAN_HPP_NAMESPACE::Bool32 minLod_ = {}, void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  46292. : pNext( pNext_ )
  46293. , minLod( minLod_ )
  46294. {
  46295. }
  46296. VULKAN_HPP_CONSTEXPR PhysicalDeviceImageViewMinLodFeaturesEXT( PhysicalDeviceImageViewMinLodFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  46297. PhysicalDeviceImageViewMinLodFeaturesEXT( VkPhysicalDeviceImageViewMinLodFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  46298. : PhysicalDeviceImageViewMinLodFeaturesEXT( *reinterpret_cast<PhysicalDeviceImageViewMinLodFeaturesEXT const *>( &rhs ) )
  46299. {
  46300. }
  46301. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  46302. PhysicalDeviceImageViewMinLodFeaturesEXT & operator=( PhysicalDeviceImageViewMinLodFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  46303. PhysicalDeviceImageViewMinLodFeaturesEXT & operator=( VkPhysicalDeviceImageViewMinLodFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  46304. {
  46305. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceImageViewMinLodFeaturesEXT const *>( &rhs );
  46306. return *this;
  46307. }
  46308. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  46309. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceImageViewMinLodFeaturesEXT & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
  46310. {
  46311. pNext = pNext_;
  46312. return *this;
  46313. }
  46314. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceImageViewMinLodFeaturesEXT & setMinLod( VULKAN_HPP_NAMESPACE::Bool32 minLod_ ) VULKAN_HPP_NOEXCEPT
  46315. {
  46316. minLod = minLod_;
  46317. return *this;
  46318. }
  46319. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  46320. operator VkPhysicalDeviceImageViewMinLodFeaturesEXT const &() const VULKAN_HPP_NOEXCEPT
  46321. {
  46322. return *reinterpret_cast<const VkPhysicalDeviceImageViewMinLodFeaturesEXT *>( this );
  46323. }
  46324. operator VkPhysicalDeviceImageViewMinLodFeaturesEXT &() VULKAN_HPP_NOEXCEPT
  46325. {
  46326. return *reinterpret_cast<VkPhysicalDeviceImageViewMinLodFeaturesEXT *>( this );
  46327. }
  46328. #if defined( VULKAN_HPP_USE_REFLECT )
  46329. # if 14 <= VULKAN_HPP_CPP_VERSION
  46330. auto
  46331. # else
  46332. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
  46333. # endif
  46334. reflect() const VULKAN_HPP_NOEXCEPT
  46335. {
  46336. return std::tie( sType, pNext, minLod );
  46337. }
  46338. #endif
  46339. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  46340. auto operator<=>( PhysicalDeviceImageViewMinLodFeaturesEXT const & ) const = default;
  46341. #else
  46342. bool operator==( PhysicalDeviceImageViewMinLodFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  46343. {
  46344. # if defined( VULKAN_HPP_USE_REFLECT )
  46345. return this->reflect() == rhs.reflect();
  46346. # else
  46347. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( minLod == rhs.minLod );
  46348. # endif
  46349. }
  46350. bool operator!=( PhysicalDeviceImageViewMinLodFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  46351. {
  46352. return !operator==( rhs );
  46353. }
  46354. #endif
  46355. public:
  46356. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceImageViewMinLodFeaturesEXT;
  46357. void * pNext = {};
  46358. VULKAN_HPP_NAMESPACE::Bool32 minLod = {};
  46359. };
  46360. template <>
  46361. struct CppType<StructureType, StructureType::ePhysicalDeviceImageViewMinLodFeaturesEXT>
  46362. {
  46363. using Type = PhysicalDeviceImageViewMinLodFeaturesEXT;
  46364. };
  46365. struct PhysicalDeviceImagelessFramebufferFeatures
  46366. {
  46367. using NativeType = VkPhysicalDeviceImagelessFramebufferFeatures;
  46368. static const bool allowDuplicate = false;
  46369. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceImagelessFramebufferFeatures;
  46370. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  46371. VULKAN_HPP_CONSTEXPR PhysicalDeviceImagelessFramebufferFeatures( VULKAN_HPP_NAMESPACE::Bool32 imagelessFramebuffer_ = {},
  46372. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  46373. : pNext( pNext_ )
  46374. , imagelessFramebuffer( imagelessFramebuffer_ )
  46375. {
  46376. }
  46377. VULKAN_HPP_CONSTEXPR PhysicalDeviceImagelessFramebufferFeatures( PhysicalDeviceImagelessFramebufferFeatures const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  46378. PhysicalDeviceImagelessFramebufferFeatures( VkPhysicalDeviceImagelessFramebufferFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
  46379. : PhysicalDeviceImagelessFramebufferFeatures( *reinterpret_cast<PhysicalDeviceImagelessFramebufferFeatures const *>( &rhs ) )
  46380. {
  46381. }
  46382. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  46383. PhysicalDeviceImagelessFramebufferFeatures & operator=( PhysicalDeviceImagelessFramebufferFeatures const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  46384. PhysicalDeviceImagelessFramebufferFeatures & operator=( VkPhysicalDeviceImagelessFramebufferFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
  46385. {
  46386. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceImagelessFramebufferFeatures const *>( &rhs );
  46387. return *this;
  46388. }
  46389. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  46390. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceImagelessFramebufferFeatures & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
  46391. {
  46392. pNext = pNext_;
  46393. return *this;
  46394. }
  46395. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceImagelessFramebufferFeatures &
  46396. setImagelessFramebuffer( VULKAN_HPP_NAMESPACE::Bool32 imagelessFramebuffer_ ) VULKAN_HPP_NOEXCEPT
  46397. {
  46398. imagelessFramebuffer = imagelessFramebuffer_;
  46399. return *this;
  46400. }
  46401. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  46402. operator VkPhysicalDeviceImagelessFramebufferFeatures const &() const VULKAN_HPP_NOEXCEPT
  46403. {
  46404. return *reinterpret_cast<const VkPhysicalDeviceImagelessFramebufferFeatures *>( this );
  46405. }
  46406. operator VkPhysicalDeviceImagelessFramebufferFeatures &() VULKAN_HPP_NOEXCEPT
  46407. {
  46408. return *reinterpret_cast<VkPhysicalDeviceImagelessFramebufferFeatures *>( this );
  46409. }
  46410. #if defined( VULKAN_HPP_USE_REFLECT )
  46411. # if 14 <= VULKAN_HPP_CPP_VERSION
  46412. auto
  46413. # else
  46414. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
  46415. # endif
  46416. reflect() const VULKAN_HPP_NOEXCEPT
  46417. {
  46418. return std::tie( sType, pNext, imagelessFramebuffer );
  46419. }
  46420. #endif
  46421. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  46422. auto operator<=>( PhysicalDeviceImagelessFramebufferFeatures const & ) const = default;
  46423. #else
  46424. bool operator==( PhysicalDeviceImagelessFramebufferFeatures const & rhs ) const VULKAN_HPP_NOEXCEPT
  46425. {
  46426. # if defined( VULKAN_HPP_USE_REFLECT )
  46427. return this->reflect() == rhs.reflect();
  46428. # else
  46429. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( imagelessFramebuffer == rhs.imagelessFramebuffer );
  46430. # endif
  46431. }
  46432. bool operator!=( PhysicalDeviceImagelessFramebufferFeatures const & rhs ) const VULKAN_HPP_NOEXCEPT
  46433. {
  46434. return !operator==( rhs );
  46435. }
  46436. #endif
  46437. public:
  46438. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceImagelessFramebufferFeatures;
  46439. void * pNext = {};
  46440. VULKAN_HPP_NAMESPACE::Bool32 imagelessFramebuffer = {};
  46441. };
  46442. template <>
  46443. struct CppType<StructureType, StructureType::ePhysicalDeviceImagelessFramebufferFeatures>
  46444. {
  46445. using Type = PhysicalDeviceImagelessFramebufferFeatures;
  46446. };
  46447. using PhysicalDeviceImagelessFramebufferFeaturesKHR = PhysicalDeviceImagelessFramebufferFeatures;
  46448. struct PhysicalDeviceIndexTypeUint8FeaturesEXT
  46449. {
  46450. using NativeType = VkPhysicalDeviceIndexTypeUint8FeaturesEXT;
  46451. static const bool allowDuplicate = false;
  46452. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceIndexTypeUint8FeaturesEXT;
  46453. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  46454. VULKAN_HPP_CONSTEXPR PhysicalDeviceIndexTypeUint8FeaturesEXT( VULKAN_HPP_NAMESPACE::Bool32 indexTypeUint8_ = {},
  46455. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  46456. : pNext( pNext_ )
  46457. , indexTypeUint8( indexTypeUint8_ )
  46458. {
  46459. }
  46460. VULKAN_HPP_CONSTEXPR PhysicalDeviceIndexTypeUint8FeaturesEXT( PhysicalDeviceIndexTypeUint8FeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  46461. PhysicalDeviceIndexTypeUint8FeaturesEXT( VkPhysicalDeviceIndexTypeUint8FeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  46462. : PhysicalDeviceIndexTypeUint8FeaturesEXT( *reinterpret_cast<PhysicalDeviceIndexTypeUint8FeaturesEXT const *>( &rhs ) )
  46463. {
  46464. }
  46465. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  46466. PhysicalDeviceIndexTypeUint8FeaturesEXT & operator=( PhysicalDeviceIndexTypeUint8FeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  46467. PhysicalDeviceIndexTypeUint8FeaturesEXT & operator=( VkPhysicalDeviceIndexTypeUint8FeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  46468. {
  46469. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceIndexTypeUint8FeaturesEXT const *>( &rhs );
  46470. return *this;
  46471. }
  46472. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  46473. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceIndexTypeUint8FeaturesEXT & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
  46474. {
  46475. pNext = pNext_;
  46476. return *this;
  46477. }
  46478. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceIndexTypeUint8FeaturesEXT & setIndexTypeUint8( VULKAN_HPP_NAMESPACE::Bool32 indexTypeUint8_ ) VULKAN_HPP_NOEXCEPT
  46479. {
  46480. indexTypeUint8 = indexTypeUint8_;
  46481. return *this;
  46482. }
  46483. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  46484. operator VkPhysicalDeviceIndexTypeUint8FeaturesEXT const &() const VULKAN_HPP_NOEXCEPT
  46485. {
  46486. return *reinterpret_cast<const VkPhysicalDeviceIndexTypeUint8FeaturesEXT *>( this );
  46487. }
  46488. operator VkPhysicalDeviceIndexTypeUint8FeaturesEXT &() VULKAN_HPP_NOEXCEPT
  46489. {
  46490. return *reinterpret_cast<VkPhysicalDeviceIndexTypeUint8FeaturesEXT *>( this );
  46491. }
  46492. #if defined( VULKAN_HPP_USE_REFLECT )
  46493. # if 14 <= VULKAN_HPP_CPP_VERSION
  46494. auto
  46495. # else
  46496. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
  46497. # endif
  46498. reflect() const VULKAN_HPP_NOEXCEPT
  46499. {
  46500. return std::tie( sType, pNext, indexTypeUint8 );
  46501. }
  46502. #endif
  46503. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  46504. auto operator<=>( PhysicalDeviceIndexTypeUint8FeaturesEXT const & ) const = default;
  46505. #else
  46506. bool operator==( PhysicalDeviceIndexTypeUint8FeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  46507. {
  46508. # if defined( VULKAN_HPP_USE_REFLECT )
  46509. return this->reflect() == rhs.reflect();
  46510. # else
  46511. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( indexTypeUint8 == rhs.indexTypeUint8 );
  46512. # endif
  46513. }
  46514. bool operator!=( PhysicalDeviceIndexTypeUint8FeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  46515. {
  46516. return !operator==( rhs );
  46517. }
  46518. #endif
  46519. public:
  46520. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceIndexTypeUint8FeaturesEXT;
  46521. void * pNext = {};
  46522. VULKAN_HPP_NAMESPACE::Bool32 indexTypeUint8 = {};
  46523. };
  46524. template <>
  46525. struct CppType<StructureType, StructureType::ePhysicalDeviceIndexTypeUint8FeaturesEXT>
  46526. {
  46527. using Type = PhysicalDeviceIndexTypeUint8FeaturesEXT;
  46528. };
  46529. struct PhysicalDeviceInheritedViewportScissorFeaturesNV
  46530. {
  46531. using NativeType = VkPhysicalDeviceInheritedViewportScissorFeaturesNV;
  46532. static const bool allowDuplicate = false;
  46533. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceInheritedViewportScissorFeaturesNV;
  46534. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  46535. VULKAN_HPP_CONSTEXPR PhysicalDeviceInheritedViewportScissorFeaturesNV( VULKAN_HPP_NAMESPACE::Bool32 inheritedViewportScissor2D_ = {},
  46536. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  46537. : pNext( pNext_ )
  46538. , inheritedViewportScissor2D( inheritedViewportScissor2D_ )
  46539. {
  46540. }
  46541. VULKAN_HPP_CONSTEXPR
  46542. PhysicalDeviceInheritedViewportScissorFeaturesNV( PhysicalDeviceInheritedViewportScissorFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  46543. PhysicalDeviceInheritedViewportScissorFeaturesNV( VkPhysicalDeviceInheritedViewportScissorFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT
  46544. : PhysicalDeviceInheritedViewportScissorFeaturesNV( *reinterpret_cast<PhysicalDeviceInheritedViewportScissorFeaturesNV const *>( &rhs ) )
  46545. {
  46546. }
  46547. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  46548. PhysicalDeviceInheritedViewportScissorFeaturesNV & operator=( PhysicalDeviceInheritedViewportScissorFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  46549. PhysicalDeviceInheritedViewportScissorFeaturesNV & operator=( VkPhysicalDeviceInheritedViewportScissorFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT
  46550. {
  46551. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceInheritedViewportScissorFeaturesNV const *>( &rhs );
  46552. return *this;
  46553. }
  46554. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  46555. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceInheritedViewportScissorFeaturesNV & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
  46556. {
  46557. pNext = pNext_;
  46558. return *this;
  46559. }
  46560. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceInheritedViewportScissorFeaturesNV &
  46561. setInheritedViewportScissor2D( VULKAN_HPP_NAMESPACE::Bool32 inheritedViewportScissor2D_ ) VULKAN_HPP_NOEXCEPT
  46562. {
  46563. inheritedViewportScissor2D = inheritedViewportScissor2D_;
  46564. return *this;
  46565. }
  46566. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  46567. operator VkPhysicalDeviceInheritedViewportScissorFeaturesNV const &() const VULKAN_HPP_NOEXCEPT
  46568. {
  46569. return *reinterpret_cast<const VkPhysicalDeviceInheritedViewportScissorFeaturesNV *>( this );
  46570. }
  46571. operator VkPhysicalDeviceInheritedViewportScissorFeaturesNV &() VULKAN_HPP_NOEXCEPT
  46572. {
  46573. return *reinterpret_cast<VkPhysicalDeviceInheritedViewportScissorFeaturesNV *>( this );
  46574. }
  46575. #if defined( VULKAN_HPP_USE_REFLECT )
  46576. # if 14 <= VULKAN_HPP_CPP_VERSION
  46577. auto
  46578. # else
  46579. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
  46580. # endif
  46581. reflect() const VULKAN_HPP_NOEXCEPT
  46582. {
  46583. return std::tie( sType, pNext, inheritedViewportScissor2D );
  46584. }
  46585. #endif
  46586. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  46587. auto operator<=>( PhysicalDeviceInheritedViewportScissorFeaturesNV const & ) const = default;
  46588. #else
  46589. bool operator==( PhysicalDeviceInheritedViewportScissorFeaturesNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  46590. {
  46591. # if defined( VULKAN_HPP_USE_REFLECT )
  46592. return this->reflect() == rhs.reflect();
  46593. # else
  46594. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( inheritedViewportScissor2D == rhs.inheritedViewportScissor2D );
  46595. # endif
  46596. }
  46597. bool operator!=( PhysicalDeviceInheritedViewportScissorFeaturesNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  46598. {
  46599. return !operator==( rhs );
  46600. }
  46601. #endif
  46602. public:
  46603. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceInheritedViewportScissorFeaturesNV;
  46604. void * pNext = {};
  46605. VULKAN_HPP_NAMESPACE::Bool32 inheritedViewportScissor2D = {};
  46606. };
  46607. template <>
  46608. struct CppType<StructureType, StructureType::ePhysicalDeviceInheritedViewportScissorFeaturesNV>
  46609. {
  46610. using Type = PhysicalDeviceInheritedViewportScissorFeaturesNV;
  46611. };
  46612. struct PhysicalDeviceInlineUniformBlockFeatures
  46613. {
  46614. using NativeType = VkPhysicalDeviceInlineUniformBlockFeatures;
  46615. static const bool allowDuplicate = false;
  46616. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceInlineUniformBlockFeatures;
  46617. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  46618. VULKAN_HPP_CONSTEXPR PhysicalDeviceInlineUniformBlockFeatures( VULKAN_HPP_NAMESPACE::Bool32 inlineUniformBlock_ = {},
  46619. VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingInlineUniformBlockUpdateAfterBind_ = {},
  46620. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  46621. : pNext( pNext_ )
  46622. , inlineUniformBlock( inlineUniformBlock_ )
  46623. , descriptorBindingInlineUniformBlockUpdateAfterBind( descriptorBindingInlineUniformBlockUpdateAfterBind_ )
  46624. {
  46625. }
  46626. VULKAN_HPP_CONSTEXPR PhysicalDeviceInlineUniformBlockFeatures( PhysicalDeviceInlineUniformBlockFeatures const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  46627. PhysicalDeviceInlineUniformBlockFeatures( VkPhysicalDeviceInlineUniformBlockFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
  46628. : PhysicalDeviceInlineUniformBlockFeatures( *reinterpret_cast<PhysicalDeviceInlineUniformBlockFeatures const *>( &rhs ) )
  46629. {
  46630. }
  46631. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  46632. PhysicalDeviceInlineUniformBlockFeatures & operator=( PhysicalDeviceInlineUniformBlockFeatures const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  46633. PhysicalDeviceInlineUniformBlockFeatures & operator=( VkPhysicalDeviceInlineUniformBlockFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
  46634. {
  46635. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceInlineUniformBlockFeatures const *>( &rhs );
  46636. return *this;
  46637. }
  46638. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  46639. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceInlineUniformBlockFeatures & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
  46640. {
  46641. pNext = pNext_;
  46642. return *this;
  46643. }
  46644. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceInlineUniformBlockFeatures &
  46645. setInlineUniformBlock( VULKAN_HPP_NAMESPACE::Bool32 inlineUniformBlock_ ) VULKAN_HPP_NOEXCEPT
  46646. {
  46647. inlineUniformBlock = inlineUniformBlock_;
  46648. return *this;
  46649. }
  46650. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceInlineUniformBlockFeatures & setDescriptorBindingInlineUniformBlockUpdateAfterBind(
  46651. VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingInlineUniformBlockUpdateAfterBind_ ) VULKAN_HPP_NOEXCEPT
  46652. {
  46653. descriptorBindingInlineUniformBlockUpdateAfterBind = descriptorBindingInlineUniformBlockUpdateAfterBind_;
  46654. return *this;
  46655. }
  46656. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  46657. operator VkPhysicalDeviceInlineUniformBlockFeatures const &() const VULKAN_HPP_NOEXCEPT
  46658. {
  46659. return *reinterpret_cast<const VkPhysicalDeviceInlineUniformBlockFeatures *>( this );
  46660. }
  46661. operator VkPhysicalDeviceInlineUniformBlockFeatures &() VULKAN_HPP_NOEXCEPT
  46662. {
  46663. return *reinterpret_cast<VkPhysicalDeviceInlineUniformBlockFeatures *>( this );
  46664. }
  46665. #if defined( VULKAN_HPP_USE_REFLECT )
  46666. # if 14 <= VULKAN_HPP_CPP_VERSION
  46667. auto
  46668. # else
  46669. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
  46670. # endif
  46671. reflect() const VULKAN_HPP_NOEXCEPT
  46672. {
  46673. return std::tie( sType, pNext, inlineUniformBlock, descriptorBindingInlineUniformBlockUpdateAfterBind );
  46674. }
  46675. #endif
  46676. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  46677. auto operator<=>( PhysicalDeviceInlineUniformBlockFeatures const & ) const = default;
  46678. #else
  46679. bool operator==( PhysicalDeviceInlineUniformBlockFeatures const & rhs ) const VULKAN_HPP_NOEXCEPT
  46680. {
  46681. # if defined( VULKAN_HPP_USE_REFLECT )
  46682. return this->reflect() == rhs.reflect();
  46683. # else
  46684. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( inlineUniformBlock == rhs.inlineUniformBlock ) &&
  46685. ( descriptorBindingInlineUniformBlockUpdateAfterBind == rhs.descriptorBindingInlineUniformBlockUpdateAfterBind );
  46686. # endif
  46687. }
  46688. bool operator!=( PhysicalDeviceInlineUniformBlockFeatures const & rhs ) const VULKAN_HPP_NOEXCEPT
  46689. {
  46690. return !operator==( rhs );
  46691. }
  46692. #endif
  46693. public:
  46694. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceInlineUniformBlockFeatures;
  46695. void * pNext = {};
  46696. VULKAN_HPP_NAMESPACE::Bool32 inlineUniformBlock = {};
  46697. VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingInlineUniformBlockUpdateAfterBind = {};
  46698. };
  46699. template <>
  46700. struct CppType<StructureType, StructureType::ePhysicalDeviceInlineUniformBlockFeatures>
  46701. {
  46702. using Type = PhysicalDeviceInlineUniformBlockFeatures;
  46703. };
  46704. using PhysicalDeviceInlineUniformBlockFeaturesEXT = PhysicalDeviceInlineUniformBlockFeatures;
  46705. struct PhysicalDeviceInlineUniformBlockProperties
  46706. {
  46707. using NativeType = VkPhysicalDeviceInlineUniformBlockProperties;
  46708. static const bool allowDuplicate = false;
  46709. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceInlineUniformBlockProperties;
  46710. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  46711. VULKAN_HPP_CONSTEXPR PhysicalDeviceInlineUniformBlockProperties( uint32_t maxInlineUniformBlockSize_ = {},
  46712. uint32_t maxPerStageDescriptorInlineUniformBlocks_ = {},
  46713. uint32_t maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks_ = {},
  46714. uint32_t maxDescriptorSetInlineUniformBlocks_ = {},
  46715. uint32_t maxDescriptorSetUpdateAfterBindInlineUniformBlocks_ = {},
  46716. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  46717. : pNext( pNext_ )
  46718. , maxInlineUniformBlockSize( maxInlineUniformBlockSize_ )
  46719. , maxPerStageDescriptorInlineUniformBlocks( maxPerStageDescriptorInlineUniformBlocks_ )
  46720. , maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks( maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks_ )
  46721. , maxDescriptorSetInlineUniformBlocks( maxDescriptorSetInlineUniformBlocks_ )
  46722. , maxDescriptorSetUpdateAfterBindInlineUniformBlocks( maxDescriptorSetUpdateAfterBindInlineUniformBlocks_ )
  46723. {
  46724. }
  46725. VULKAN_HPP_CONSTEXPR PhysicalDeviceInlineUniformBlockProperties( PhysicalDeviceInlineUniformBlockProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  46726. PhysicalDeviceInlineUniformBlockProperties( VkPhysicalDeviceInlineUniformBlockProperties const & rhs ) VULKAN_HPP_NOEXCEPT
  46727. : PhysicalDeviceInlineUniformBlockProperties( *reinterpret_cast<PhysicalDeviceInlineUniformBlockProperties const *>( &rhs ) )
  46728. {
  46729. }
  46730. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  46731. PhysicalDeviceInlineUniformBlockProperties & operator=( PhysicalDeviceInlineUniformBlockProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  46732. PhysicalDeviceInlineUniformBlockProperties & operator=( VkPhysicalDeviceInlineUniformBlockProperties const & rhs ) VULKAN_HPP_NOEXCEPT
  46733. {
  46734. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceInlineUniformBlockProperties const *>( &rhs );
  46735. return *this;
  46736. }
  46737. operator VkPhysicalDeviceInlineUniformBlockProperties const &() const VULKAN_HPP_NOEXCEPT
  46738. {
  46739. return *reinterpret_cast<const VkPhysicalDeviceInlineUniformBlockProperties *>( this );
  46740. }
  46741. operator VkPhysicalDeviceInlineUniformBlockProperties &() VULKAN_HPP_NOEXCEPT
  46742. {
  46743. return *reinterpret_cast<VkPhysicalDeviceInlineUniformBlockProperties *>( this );
  46744. }
  46745. #if defined( VULKAN_HPP_USE_REFLECT )
  46746. # if 14 <= VULKAN_HPP_CPP_VERSION
  46747. auto
  46748. # else
  46749. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  46750. void * const &,
  46751. uint32_t const &,
  46752. uint32_t const &,
  46753. uint32_t const &,
  46754. uint32_t const &,
  46755. uint32_t const &>
  46756. # endif
  46757. reflect() const VULKAN_HPP_NOEXCEPT
  46758. {
  46759. return std::tie( sType,
  46760. pNext,
  46761. maxInlineUniformBlockSize,
  46762. maxPerStageDescriptorInlineUniformBlocks,
  46763. maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks,
  46764. maxDescriptorSetInlineUniformBlocks,
  46765. maxDescriptorSetUpdateAfterBindInlineUniformBlocks );
  46766. }
  46767. #endif
  46768. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  46769. auto operator<=>( PhysicalDeviceInlineUniformBlockProperties const & ) const = default;
  46770. #else
  46771. bool operator==( PhysicalDeviceInlineUniformBlockProperties const & rhs ) const VULKAN_HPP_NOEXCEPT
  46772. {
  46773. # if defined( VULKAN_HPP_USE_REFLECT )
  46774. return this->reflect() == rhs.reflect();
  46775. # else
  46776. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( maxInlineUniformBlockSize == rhs.maxInlineUniformBlockSize ) &&
  46777. ( maxPerStageDescriptorInlineUniformBlocks == rhs.maxPerStageDescriptorInlineUniformBlocks ) &&
  46778. ( maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks == rhs.maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks ) &&
  46779. ( maxDescriptorSetInlineUniformBlocks == rhs.maxDescriptorSetInlineUniformBlocks ) &&
  46780. ( maxDescriptorSetUpdateAfterBindInlineUniformBlocks == rhs.maxDescriptorSetUpdateAfterBindInlineUniformBlocks );
  46781. # endif
  46782. }
  46783. bool operator!=( PhysicalDeviceInlineUniformBlockProperties const & rhs ) const VULKAN_HPP_NOEXCEPT
  46784. {
  46785. return !operator==( rhs );
  46786. }
  46787. #endif
  46788. public:
  46789. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceInlineUniformBlockProperties;
  46790. void * pNext = {};
  46791. uint32_t maxInlineUniformBlockSize = {};
  46792. uint32_t maxPerStageDescriptorInlineUniformBlocks = {};
  46793. uint32_t maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks = {};
  46794. uint32_t maxDescriptorSetInlineUniformBlocks = {};
  46795. uint32_t maxDescriptorSetUpdateAfterBindInlineUniformBlocks = {};
  46796. };
  46797. template <>
  46798. struct CppType<StructureType, StructureType::ePhysicalDeviceInlineUniformBlockProperties>
  46799. {
  46800. using Type = PhysicalDeviceInlineUniformBlockProperties;
  46801. };
  46802. using PhysicalDeviceInlineUniformBlockPropertiesEXT = PhysicalDeviceInlineUniformBlockProperties;
  46803. struct PhysicalDeviceInvocationMaskFeaturesHUAWEI
  46804. {
  46805. using NativeType = VkPhysicalDeviceInvocationMaskFeaturesHUAWEI;
  46806. static const bool allowDuplicate = false;
  46807. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceInvocationMaskFeaturesHUAWEI;
  46808. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  46809. VULKAN_HPP_CONSTEXPR PhysicalDeviceInvocationMaskFeaturesHUAWEI( VULKAN_HPP_NAMESPACE::Bool32 invocationMask_ = {},
  46810. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  46811. : pNext( pNext_ )
  46812. , invocationMask( invocationMask_ )
  46813. {
  46814. }
  46815. VULKAN_HPP_CONSTEXPR PhysicalDeviceInvocationMaskFeaturesHUAWEI( PhysicalDeviceInvocationMaskFeaturesHUAWEI const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  46816. PhysicalDeviceInvocationMaskFeaturesHUAWEI( VkPhysicalDeviceInvocationMaskFeaturesHUAWEI const & rhs ) VULKAN_HPP_NOEXCEPT
  46817. : PhysicalDeviceInvocationMaskFeaturesHUAWEI( *reinterpret_cast<PhysicalDeviceInvocationMaskFeaturesHUAWEI const *>( &rhs ) )
  46818. {
  46819. }
  46820. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  46821. PhysicalDeviceInvocationMaskFeaturesHUAWEI & operator=( PhysicalDeviceInvocationMaskFeaturesHUAWEI const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  46822. PhysicalDeviceInvocationMaskFeaturesHUAWEI & operator=( VkPhysicalDeviceInvocationMaskFeaturesHUAWEI const & rhs ) VULKAN_HPP_NOEXCEPT
  46823. {
  46824. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceInvocationMaskFeaturesHUAWEI const *>( &rhs );
  46825. return *this;
  46826. }
  46827. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  46828. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceInvocationMaskFeaturesHUAWEI & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
  46829. {
  46830. pNext = pNext_;
  46831. return *this;
  46832. }
  46833. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceInvocationMaskFeaturesHUAWEI & setInvocationMask( VULKAN_HPP_NAMESPACE::Bool32 invocationMask_ ) VULKAN_HPP_NOEXCEPT
  46834. {
  46835. invocationMask = invocationMask_;
  46836. return *this;
  46837. }
  46838. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  46839. operator VkPhysicalDeviceInvocationMaskFeaturesHUAWEI const &() const VULKAN_HPP_NOEXCEPT
  46840. {
  46841. return *reinterpret_cast<const VkPhysicalDeviceInvocationMaskFeaturesHUAWEI *>( this );
  46842. }
  46843. operator VkPhysicalDeviceInvocationMaskFeaturesHUAWEI &() VULKAN_HPP_NOEXCEPT
  46844. {
  46845. return *reinterpret_cast<VkPhysicalDeviceInvocationMaskFeaturesHUAWEI *>( this );
  46846. }
  46847. #if defined( VULKAN_HPP_USE_REFLECT )
  46848. # if 14 <= VULKAN_HPP_CPP_VERSION
  46849. auto
  46850. # else
  46851. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
  46852. # endif
  46853. reflect() const VULKAN_HPP_NOEXCEPT
  46854. {
  46855. return std::tie( sType, pNext, invocationMask );
  46856. }
  46857. #endif
  46858. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  46859. auto operator<=>( PhysicalDeviceInvocationMaskFeaturesHUAWEI const & ) const = default;
  46860. #else
  46861. bool operator==( PhysicalDeviceInvocationMaskFeaturesHUAWEI const & rhs ) const VULKAN_HPP_NOEXCEPT
  46862. {
  46863. # if defined( VULKAN_HPP_USE_REFLECT )
  46864. return this->reflect() == rhs.reflect();
  46865. # else
  46866. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( invocationMask == rhs.invocationMask );
  46867. # endif
  46868. }
  46869. bool operator!=( PhysicalDeviceInvocationMaskFeaturesHUAWEI const & rhs ) const VULKAN_HPP_NOEXCEPT
  46870. {
  46871. return !operator==( rhs );
  46872. }
  46873. #endif
  46874. public:
  46875. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceInvocationMaskFeaturesHUAWEI;
  46876. void * pNext = {};
  46877. VULKAN_HPP_NAMESPACE::Bool32 invocationMask = {};
  46878. };
  46879. template <>
  46880. struct CppType<StructureType, StructureType::ePhysicalDeviceInvocationMaskFeaturesHUAWEI>
  46881. {
  46882. using Type = PhysicalDeviceInvocationMaskFeaturesHUAWEI;
  46883. };
  46884. struct PhysicalDeviceLimits
  46885. {
  46886. using NativeType = VkPhysicalDeviceLimits;
  46887. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  46888. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceLimits( uint32_t maxImageDimension1D_ = {},
  46889. uint32_t maxImageDimension2D_ = {},
  46890. uint32_t maxImageDimension3D_ = {},
  46891. uint32_t maxImageDimensionCube_ = {},
  46892. uint32_t maxImageArrayLayers_ = {},
  46893. uint32_t maxTexelBufferElements_ = {},
  46894. uint32_t maxUniformBufferRange_ = {},
  46895. uint32_t maxStorageBufferRange_ = {},
  46896. uint32_t maxPushConstantsSize_ = {},
  46897. uint32_t maxMemoryAllocationCount_ = {},
  46898. uint32_t maxSamplerAllocationCount_ = {},
  46899. VULKAN_HPP_NAMESPACE::DeviceSize bufferImageGranularity_ = {},
  46900. VULKAN_HPP_NAMESPACE::DeviceSize sparseAddressSpaceSize_ = {},
  46901. uint32_t maxBoundDescriptorSets_ = {},
  46902. uint32_t maxPerStageDescriptorSamplers_ = {},
  46903. uint32_t maxPerStageDescriptorUniformBuffers_ = {},
  46904. uint32_t maxPerStageDescriptorStorageBuffers_ = {},
  46905. uint32_t maxPerStageDescriptorSampledImages_ = {},
  46906. uint32_t maxPerStageDescriptorStorageImages_ = {},
  46907. uint32_t maxPerStageDescriptorInputAttachments_ = {},
  46908. uint32_t maxPerStageResources_ = {},
  46909. uint32_t maxDescriptorSetSamplers_ = {},
  46910. uint32_t maxDescriptorSetUniformBuffers_ = {},
  46911. uint32_t maxDescriptorSetUniformBuffersDynamic_ = {},
  46912. uint32_t maxDescriptorSetStorageBuffers_ = {},
  46913. uint32_t maxDescriptorSetStorageBuffersDynamic_ = {},
  46914. uint32_t maxDescriptorSetSampledImages_ = {},
  46915. uint32_t maxDescriptorSetStorageImages_ = {},
  46916. uint32_t maxDescriptorSetInputAttachments_ = {},
  46917. uint32_t maxVertexInputAttributes_ = {},
  46918. uint32_t maxVertexInputBindings_ = {},
  46919. uint32_t maxVertexInputAttributeOffset_ = {},
  46920. uint32_t maxVertexInputBindingStride_ = {},
  46921. uint32_t maxVertexOutputComponents_ = {},
  46922. uint32_t maxTessellationGenerationLevel_ = {},
  46923. uint32_t maxTessellationPatchSize_ = {},
  46924. uint32_t maxTessellationControlPerVertexInputComponents_ = {},
  46925. uint32_t maxTessellationControlPerVertexOutputComponents_ = {},
  46926. uint32_t maxTessellationControlPerPatchOutputComponents_ = {},
  46927. uint32_t maxTessellationControlTotalOutputComponents_ = {},
  46928. uint32_t maxTessellationEvaluationInputComponents_ = {},
  46929. uint32_t maxTessellationEvaluationOutputComponents_ = {},
  46930. uint32_t maxGeometryShaderInvocations_ = {},
  46931. uint32_t maxGeometryInputComponents_ = {},
  46932. uint32_t maxGeometryOutputComponents_ = {},
  46933. uint32_t maxGeometryOutputVertices_ = {},
  46934. uint32_t maxGeometryTotalOutputComponents_ = {},
  46935. uint32_t maxFragmentInputComponents_ = {},
  46936. uint32_t maxFragmentOutputAttachments_ = {},
  46937. uint32_t maxFragmentDualSrcAttachments_ = {},
  46938. uint32_t maxFragmentCombinedOutputResources_ = {},
  46939. uint32_t maxComputeSharedMemorySize_ = {},
  46940. std::array<uint32_t, 3> const & maxComputeWorkGroupCount_ = {},
  46941. uint32_t maxComputeWorkGroupInvocations_ = {},
  46942. std::array<uint32_t, 3> const & maxComputeWorkGroupSize_ = {},
  46943. uint32_t subPixelPrecisionBits_ = {},
  46944. uint32_t subTexelPrecisionBits_ = {},
  46945. uint32_t mipmapPrecisionBits_ = {},
  46946. uint32_t maxDrawIndexedIndexValue_ = {},
  46947. uint32_t maxDrawIndirectCount_ = {},
  46948. float maxSamplerLodBias_ = {},
  46949. float maxSamplerAnisotropy_ = {},
  46950. uint32_t maxViewports_ = {},
  46951. std::array<uint32_t, 2> const & maxViewportDimensions_ = {},
  46952. std::array<float, 2> const & viewportBoundsRange_ = {},
  46953. uint32_t viewportSubPixelBits_ = {},
  46954. size_t minMemoryMapAlignment_ = {},
  46955. VULKAN_HPP_NAMESPACE::DeviceSize minTexelBufferOffsetAlignment_ = {},
  46956. VULKAN_HPP_NAMESPACE::DeviceSize minUniformBufferOffsetAlignment_ = {},
  46957. VULKAN_HPP_NAMESPACE::DeviceSize minStorageBufferOffsetAlignment_ = {},
  46958. int32_t minTexelOffset_ = {},
  46959. uint32_t maxTexelOffset_ = {},
  46960. int32_t minTexelGatherOffset_ = {},
  46961. uint32_t maxTexelGatherOffset_ = {},
  46962. float minInterpolationOffset_ = {},
  46963. float maxInterpolationOffset_ = {},
  46964. uint32_t subPixelInterpolationOffsetBits_ = {},
  46965. uint32_t maxFramebufferWidth_ = {},
  46966. uint32_t maxFramebufferHeight_ = {},
  46967. uint32_t maxFramebufferLayers_ = {},
  46968. VULKAN_HPP_NAMESPACE::SampleCountFlags framebufferColorSampleCounts_ = {},
  46969. VULKAN_HPP_NAMESPACE::SampleCountFlags framebufferDepthSampleCounts_ = {},
  46970. VULKAN_HPP_NAMESPACE::SampleCountFlags framebufferStencilSampleCounts_ = {},
  46971. VULKAN_HPP_NAMESPACE::SampleCountFlags framebufferNoAttachmentsSampleCounts_ = {},
  46972. uint32_t maxColorAttachments_ = {},
  46973. VULKAN_HPP_NAMESPACE::SampleCountFlags sampledImageColorSampleCounts_ = {},
  46974. VULKAN_HPP_NAMESPACE::SampleCountFlags sampledImageIntegerSampleCounts_ = {},
  46975. VULKAN_HPP_NAMESPACE::SampleCountFlags sampledImageDepthSampleCounts_ = {},
  46976. VULKAN_HPP_NAMESPACE::SampleCountFlags sampledImageStencilSampleCounts_ = {},
  46977. VULKAN_HPP_NAMESPACE::SampleCountFlags storageImageSampleCounts_ = {},
  46978. uint32_t maxSampleMaskWords_ = {},
  46979. VULKAN_HPP_NAMESPACE::Bool32 timestampComputeAndGraphics_ = {},
  46980. float timestampPeriod_ = {},
  46981. uint32_t maxClipDistances_ = {},
  46982. uint32_t maxCullDistances_ = {},
  46983. uint32_t maxCombinedClipAndCullDistances_ = {},
  46984. uint32_t discreteQueuePriorities_ = {},
  46985. std::array<float, 2> const & pointSizeRange_ = {},
  46986. std::array<float, 2> const & lineWidthRange_ = {},
  46987. float pointSizeGranularity_ = {},
  46988. float lineWidthGranularity_ = {},
  46989. VULKAN_HPP_NAMESPACE::Bool32 strictLines_ = {},
  46990. VULKAN_HPP_NAMESPACE::Bool32 standardSampleLocations_ = {},
  46991. VULKAN_HPP_NAMESPACE::DeviceSize optimalBufferCopyOffsetAlignment_ = {},
  46992. VULKAN_HPP_NAMESPACE::DeviceSize optimalBufferCopyRowPitchAlignment_ = {},
  46993. VULKAN_HPP_NAMESPACE::DeviceSize nonCoherentAtomSize_ = {} ) VULKAN_HPP_NOEXCEPT
  46994. : maxImageDimension1D( maxImageDimension1D_ )
  46995. , maxImageDimension2D( maxImageDimension2D_ )
  46996. , maxImageDimension3D( maxImageDimension3D_ )
  46997. , maxImageDimensionCube( maxImageDimensionCube_ )
  46998. , maxImageArrayLayers( maxImageArrayLayers_ )
  46999. , maxTexelBufferElements( maxTexelBufferElements_ )
  47000. , maxUniformBufferRange( maxUniformBufferRange_ )
  47001. , maxStorageBufferRange( maxStorageBufferRange_ )
  47002. , maxPushConstantsSize( maxPushConstantsSize_ )
  47003. , maxMemoryAllocationCount( maxMemoryAllocationCount_ )
  47004. , maxSamplerAllocationCount( maxSamplerAllocationCount_ )
  47005. , bufferImageGranularity( bufferImageGranularity_ )
  47006. , sparseAddressSpaceSize( sparseAddressSpaceSize_ )
  47007. , maxBoundDescriptorSets( maxBoundDescriptorSets_ )
  47008. , maxPerStageDescriptorSamplers( maxPerStageDescriptorSamplers_ )
  47009. , maxPerStageDescriptorUniformBuffers( maxPerStageDescriptorUniformBuffers_ )
  47010. , maxPerStageDescriptorStorageBuffers( maxPerStageDescriptorStorageBuffers_ )
  47011. , maxPerStageDescriptorSampledImages( maxPerStageDescriptorSampledImages_ )
  47012. , maxPerStageDescriptorStorageImages( maxPerStageDescriptorStorageImages_ )
  47013. , maxPerStageDescriptorInputAttachments( maxPerStageDescriptorInputAttachments_ )
  47014. , maxPerStageResources( maxPerStageResources_ )
  47015. , maxDescriptorSetSamplers( maxDescriptorSetSamplers_ )
  47016. , maxDescriptorSetUniformBuffers( maxDescriptorSetUniformBuffers_ )
  47017. , maxDescriptorSetUniformBuffersDynamic( maxDescriptorSetUniformBuffersDynamic_ )
  47018. , maxDescriptorSetStorageBuffers( maxDescriptorSetStorageBuffers_ )
  47019. , maxDescriptorSetStorageBuffersDynamic( maxDescriptorSetStorageBuffersDynamic_ )
  47020. , maxDescriptorSetSampledImages( maxDescriptorSetSampledImages_ )
  47021. , maxDescriptorSetStorageImages( maxDescriptorSetStorageImages_ )
  47022. , maxDescriptorSetInputAttachments( maxDescriptorSetInputAttachments_ )
  47023. , maxVertexInputAttributes( maxVertexInputAttributes_ )
  47024. , maxVertexInputBindings( maxVertexInputBindings_ )
  47025. , maxVertexInputAttributeOffset( maxVertexInputAttributeOffset_ )
  47026. , maxVertexInputBindingStride( maxVertexInputBindingStride_ )
  47027. , maxVertexOutputComponents( maxVertexOutputComponents_ )
  47028. , maxTessellationGenerationLevel( maxTessellationGenerationLevel_ )
  47029. , maxTessellationPatchSize( maxTessellationPatchSize_ )
  47030. , maxTessellationControlPerVertexInputComponents( maxTessellationControlPerVertexInputComponents_ )
  47031. , maxTessellationControlPerVertexOutputComponents( maxTessellationControlPerVertexOutputComponents_ )
  47032. , maxTessellationControlPerPatchOutputComponents( maxTessellationControlPerPatchOutputComponents_ )
  47033. , maxTessellationControlTotalOutputComponents( maxTessellationControlTotalOutputComponents_ )
  47034. , maxTessellationEvaluationInputComponents( maxTessellationEvaluationInputComponents_ )
  47035. , maxTessellationEvaluationOutputComponents( maxTessellationEvaluationOutputComponents_ )
  47036. , maxGeometryShaderInvocations( maxGeometryShaderInvocations_ )
  47037. , maxGeometryInputComponents( maxGeometryInputComponents_ )
  47038. , maxGeometryOutputComponents( maxGeometryOutputComponents_ )
  47039. , maxGeometryOutputVertices( maxGeometryOutputVertices_ )
  47040. , maxGeometryTotalOutputComponents( maxGeometryTotalOutputComponents_ )
  47041. , maxFragmentInputComponents( maxFragmentInputComponents_ )
  47042. , maxFragmentOutputAttachments( maxFragmentOutputAttachments_ )
  47043. , maxFragmentDualSrcAttachments( maxFragmentDualSrcAttachments_ )
  47044. , maxFragmentCombinedOutputResources( maxFragmentCombinedOutputResources_ )
  47045. , maxComputeSharedMemorySize( maxComputeSharedMemorySize_ )
  47046. , maxComputeWorkGroupCount( maxComputeWorkGroupCount_ )
  47047. , maxComputeWorkGroupInvocations( maxComputeWorkGroupInvocations_ )
  47048. , maxComputeWorkGroupSize( maxComputeWorkGroupSize_ )
  47049. , subPixelPrecisionBits( subPixelPrecisionBits_ )
  47050. , subTexelPrecisionBits( subTexelPrecisionBits_ )
  47051. , mipmapPrecisionBits( mipmapPrecisionBits_ )
  47052. , maxDrawIndexedIndexValue( maxDrawIndexedIndexValue_ )
  47053. , maxDrawIndirectCount( maxDrawIndirectCount_ )
  47054. , maxSamplerLodBias( maxSamplerLodBias_ )
  47055. , maxSamplerAnisotropy( maxSamplerAnisotropy_ )
  47056. , maxViewports( maxViewports_ )
  47057. , maxViewportDimensions( maxViewportDimensions_ )
  47058. , viewportBoundsRange( viewportBoundsRange_ )
  47059. , viewportSubPixelBits( viewportSubPixelBits_ )
  47060. , minMemoryMapAlignment( minMemoryMapAlignment_ )
  47061. , minTexelBufferOffsetAlignment( minTexelBufferOffsetAlignment_ )
  47062. , minUniformBufferOffsetAlignment( minUniformBufferOffsetAlignment_ )
  47063. , minStorageBufferOffsetAlignment( minStorageBufferOffsetAlignment_ )
  47064. , minTexelOffset( minTexelOffset_ )
  47065. , maxTexelOffset( maxTexelOffset_ )
  47066. , minTexelGatherOffset( minTexelGatherOffset_ )
  47067. , maxTexelGatherOffset( maxTexelGatherOffset_ )
  47068. , minInterpolationOffset( minInterpolationOffset_ )
  47069. , maxInterpolationOffset( maxInterpolationOffset_ )
  47070. , subPixelInterpolationOffsetBits( subPixelInterpolationOffsetBits_ )
  47071. , maxFramebufferWidth( maxFramebufferWidth_ )
  47072. , maxFramebufferHeight( maxFramebufferHeight_ )
  47073. , maxFramebufferLayers( maxFramebufferLayers_ )
  47074. , framebufferColorSampleCounts( framebufferColorSampleCounts_ )
  47075. , framebufferDepthSampleCounts( framebufferDepthSampleCounts_ )
  47076. , framebufferStencilSampleCounts( framebufferStencilSampleCounts_ )
  47077. , framebufferNoAttachmentsSampleCounts( framebufferNoAttachmentsSampleCounts_ )
  47078. , maxColorAttachments( maxColorAttachments_ )
  47079. , sampledImageColorSampleCounts( sampledImageColorSampleCounts_ )
  47080. , sampledImageIntegerSampleCounts( sampledImageIntegerSampleCounts_ )
  47081. , sampledImageDepthSampleCounts( sampledImageDepthSampleCounts_ )
  47082. , sampledImageStencilSampleCounts( sampledImageStencilSampleCounts_ )
  47083. , storageImageSampleCounts( storageImageSampleCounts_ )
  47084. , maxSampleMaskWords( maxSampleMaskWords_ )
  47085. , timestampComputeAndGraphics( timestampComputeAndGraphics_ )
  47086. , timestampPeriod( timestampPeriod_ )
  47087. , maxClipDistances( maxClipDistances_ )
  47088. , maxCullDistances( maxCullDistances_ )
  47089. , maxCombinedClipAndCullDistances( maxCombinedClipAndCullDistances_ )
  47090. , discreteQueuePriorities( discreteQueuePriorities_ )
  47091. , pointSizeRange( pointSizeRange_ )
  47092. , lineWidthRange( lineWidthRange_ )
  47093. , pointSizeGranularity( pointSizeGranularity_ )
  47094. , lineWidthGranularity( lineWidthGranularity_ )
  47095. , strictLines( strictLines_ )
  47096. , standardSampleLocations( standardSampleLocations_ )
  47097. , optimalBufferCopyOffsetAlignment( optimalBufferCopyOffsetAlignment_ )
  47098. , optimalBufferCopyRowPitchAlignment( optimalBufferCopyRowPitchAlignment_ )
  47099. , nonCoherentAtomSize( nonCoherentAtomSize_ )
  47100. {
  47101. }
  47102. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceLimits( PhysicalDeviceLimits const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  47103. PhysicalDeviceLimits( VkPhysicalDeviceLimits const & rhs ) VULKAN_HPP_NOEXCEPT
  47104. : PhysicalDeviceLimits( *reinterpret_cast<PhysicalDeviceLimits const *>( &rhs ) )
  47105. {
  47106. }
  47107. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  47108. PhysicalDeviceLimits & operator=( PhysicalDeviceLimits const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  47109. PhysicalDeviceLimits & operator=( VkPhysicalDeviceLimits const & rhs ) VULKAN_HPP_NOEXCEPT
  47110. {
  47111. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceLimits const *>( &rhs );
  47112. return *this;
  47113. }
  47114. operator VkPhysicalDeviceLimits const &() const VULKAN_HPP_NOEXCEPT
  47115. {
  47116. return *reinterpret_cast<const VkPhysicalDeviceLimits *>( this );
  47117. }
  47118. operator VkPhysicalDeviceLimits &() VULKAN_HPP_NOEXCEPT
  47119. {
  47120. return *reinterpret_cast<VkPhysicalDeviceLimits *>( this );
  47121. }
  47122. #if defined( VULKAN_HPP_USE_REFLECT )
  47123. # if 14 <= VULKAN_HPP_CPP_VERSION
  47124. auto
  47125. # else
  47126. std::tuple<uint32_t const &,
  47127. uint32_t const &,
  47128. uint32_t const &,
  47129. uint32_t const &,
  47130. uint32_t const &,
  47131. uint32_t const &,
  47132. uint32_t const &,
  47133. uint32_t const &,
  47134. uint32_t const &,
  47135. uint32_t const &,
  47136. uint32_t const &,
  47137. VULKAN_HPP_NAMESPACE::DeviceSize const &,
  47138. VULKAN_HPP_NAMESPACE::DeviceSize const &,
  47139. uint32_t const &,
  47140. uint32_t const &,
  47141. uint32_t const &,
  47142. uint32_t const &,
  47143. uint32_t const &,
  47144. uint32_t const &,
  47145. uint32_t const &,
  47146. uint32_t const &,
  47147. uint32_t const &,
  47148. uint32_t const &,
  47149. uint32_t const &,
  47150. uint32_t const &,
  47151. uint32_t const &,
  47152. uint32_t const &,
  47153. uint32_t const &,
  47154. uint32_t const &,
  47155. uint32_t const &,
  47156. uint32_t const &,
  47157. uint32_t const &,
  47158. uint32_t const &,
  47159. uint32_t const &,
  47160. uint32_t const &,
  47161. uint32_t const &,
  47162. uint32_t const &,
  47163. uint32_t const &,
  47164. uint32_t const &,
  47165. uint32_t const &,
  47166. uint32_t const &,
  47167. uint32_t const &,
  47168. uint32_t const &,
  47169. uint32_t const &,
  47170. uint32_t const &,
  47171. uint32_t const &,
  47172. uint32_t const &,
  47173. uint32_t const &,
  47174. uint32_t const &,
  47175. uint32_t const &,
  47176. uint32_t const &,
  47177. uint32_t const &,
  47178. VULKAN_HPP_NAMESPACE::ArrayWrapper1D<uint32_t, 3> const &,
  47179. uint32_t const &,
  47180. VULKAN_HPP_NAMESPACE::ArrayWrapper1D<uint32_t, 3> const &,
  47181. uint32_t const &,
  47182. uint32_t const &,
  47183. uint32_t const &,
  47184. uint32_t const &,
  47185. uint32_t const &,
  47186. float const &,
  47187. float const &,
  47188. uint32_t const &,
  47189. VULKAN_HPP_NAMESPACE::ArrayWrapper1D<uint32_t, 2> const &,
  47190. VULKAN_HPP_NAMESPACE::ArrayWrapper1D<float, 2> const &,
  47191. uint32_t const &,
  47192. size_t const &,
  47193. VULKAN_HPP_NAMESPACE::DeviceSize const &,
  47194. VULKAN_HPP_NAMESPACE::DeviceSize const &,
  47195. VULKAN_HPP_NAMESPACE::DeviceSize const &,
  47196. int32_t const &,
  47197. uint32_t const &,
  47198. int32_t const &,
  47199. uint32_t const &,
  47200. float const &,
  47201. float const &,
  47202. uint32_t const &,
  47203. uint32_t const &,
  47204. uint32_t const &,
  47205. uint32_t const &,
  47206. VULKAN_HPP_NAMESPACE::SampleCountFlags const &,
  47207. VULKAN_HPP_NAMESPACE::SampleCountFlags const &,
  47208. VULKAN_HPP_NAMESPACE::SampleCountFlags const &,
  47209. VULKAN_HPP_NAMESPACE::SampleCountFlags const &,
  47210. uint32_t const &,
  47211. VULKAN_HPP_NAMESPACE::SampleCountFlags const &,
  47212. VULKAN_HPP_NAMESPACE::SampleCountFlags const &,
  47213. VULKAN_HPP_NAMESPACE::SampleCountFlags const &,
  47214. VULKAN_HPP_NAMESPACE::SampleCountFlags const &,
  47215. VULKAN_HPP_NAMESPACE::SampleCountFlags const &,
  47216. uint32_t const &,
  47217. VULKAN_HPP_NAMESPACE::Bool32 const &,
  47218. float const &,
  47219. uint32_t const &,
  47220. uint32_t const &,
  47221. uint32_t const &,
  47222. uint32_t const &,
  47223. VULKAN_HPP_NAMESPACE::ArrayWrapper1D<float, 2> const &,
  47224. VULKAN_HPP_NAMESPACE::ArrayWrapper1D<float, 2> const &,
  47225. float const &,
  47226. float const &,
  47227. VULKAN_HPP_NAMESPACE::Bool32 const &,
  47228. VULKAN_HPP_NAMESPACE::Bool32 const &,
  47229. VULKAN_HPP_NAMESPACE::DeviceSize const &,
  47230. VULKAN_HPP_NAMESPACE::DeviceSize const &,
  47231. VULKAN_HPP_NAMESPACE::DeviceSize const &>
  47232. # endif
  47233. reflect() const VULKAN_HPP_NOEXCEPT
  47234. {
  47235. return std::tie( maxImageDimension1D,
  47236. maxImageDimension2D,
  47237. maxImageDimension3D,
  47238. maxImageDimensionCube,
  47239. maxImageArrayLayers,
  47240. maxTexelBufferElements,
  47241. maxUniformBufferRange,
  47242. maxStorageBufferRange,
  47243. maxPushConstantsSize,
  47244. maxMemoryAllocationCount,
  47245. maxSamplerAllocationCount,
  47246. bufferImageGranularity,
  47247. sparseAddressSpaceSize,
  47248. maxBoundDescriptorSets,
  47249. maxPerStageDescriptorSamplers,
  47250. maxPerStageDescriptorUniformBuffers,
  47251. maxPerStageDescriptorStorageBuffers,
  47252. maxPerStageDescriptorSampledImages,
  47253. maxPerStageDescriptorStorageImages,
  47254. maxPerStageDescriptorInputAttachments,
  47255. maxPerStageResources,
  47256. maxDescriptorSetSamplers,
  47257. maxDescriptorSetUniformBuffers,
  47258. maxDescriptorSetUniformBuffersDynamic,
  47259. maxDescriptorSetStorageBuffers,
  47260. maxDescriptorSetStorageBuffersDynamic,
  47261. maxDescriptorSetSampledImages,
  47262. maxDescriptorSetStorageImages,
  47263. maxDescriptorSetInputAttachments,
  47264. maxVertexInputAttributes,
  47265. maxVertexInputBindings,
  47266. maxVertexInputAttributeOffset,
  47267. maxVertexInputBindingStride,
  47268. maxVertexOutputComponents,
  47269. maxTessellationGenerationLevel,
  47270. maxTessellationPatchSize,
  47271. maxTessellationControlPerVertexInputComponents,
  47272. maxTessellationControlPerVertexOutputComponents,
  47273. maxTessellationControlPerPatchOutputComponents,
  47274. maxTessellationControlTotalOutputComponents,
  47275. maxTessellationEvaluationInputComponents,
  47276. maxTessellationEvaluationOutputComponents,
  47277. maxGeometryShaderInvocations,
  47278. maxGeometryInputComponents,
  47279. maxGeometryOutputComponents,
  47280. maxGeometryOutputVertices,
  47281. maxGeometryTotalOutputComponents,
  47282. maxFragmentInputComponents,
  47283. maxFragmentOutputAttachments,
  47284. maxFragmentDualSrcAttachments,
  47285. maxFragmentCombinedOutputResources,
  47286. maxComputeSharedMemorySize,
  47287. maxComputeWorkGroupCount,
  47288. maxComputeWorkGroupInvocations,
  47289. maxComputeWorkGroupSize,
  47290. subPixelPrecisionBits,
  47291. subTexelPrecisionBits,
  47292. mipmapPrecisionBits,
  47293. maxDrawIndexedIndexValue,
  47294. maxDrawIndirectCount,
  47295. maxSamplerLodBias,
  47296. maxSamplerAnisotropy,
  47297. maxViewports,
  47298. maxViewportDimensions,
  47299. viewportBoundsRange,
  47300. viewportSubPixelBits,
  47301. minMemoryMapAlignment,
  47302. minTexelBufferOffsetAlignment,
  47303. minUniformBufferOffsetAlignment,
  47304. minStorageBufferOffsetAlignment,
  47305. minTexelOffset,
  47306. maxTexelOffset,
  47307. minTexelGatherOffset,
  47308. maxTexelGatherOffset,
  47309. minInterpolationOffset,
  47310. maxInterpolationOffset,
  47311. subPixelInterpolationOffsetBits,
  47312. maxFramebufferWidth,
  47313. maxFramebufferHeight,
  47314. maxFramebufferLayers,
  47315. framebufferColorSampleCounts,
  47316. framebufferDepthSampleCounts,
  47317. framebufferStencilSampleCounts,
  47318. framebufferNoAttachmentsSampleCounts,
  47319. maxColorAttachments,
  47320. sampledImageColorSampleCounts,
  47321. sampledImageIntegerSampleCounts,
  47322. sampledImageDepthSampleCounts,
  47323. sampledImageStencilSampleCounts,
  47324. storageImageSampleCounts,
  47325. maxSampleMaskWords,
  47326. timestampComputeAndGraphics,
  47327. timestampPeriod,
  47328. maxClipDistances,
  47329. maxCullDistances,
  47330. maxCombinedClipAndCullDistances,
  47331. discreteQueuePriorities,
  47332. pointSizeRange,
  47333. lineWidthRange,
  47334. pointSizeGranularity,
  47335. lineWidthGranularity,
  47336. strictLines,
  47337. standardSampleLocations,
  47338. optimalBufferCopyOffsetAlignment,
  47339. optimalBufferCopyRowPitchAlignment,
  47340. nonCoherentAtomSize );
  47341. }
  47342. #endif
  47343. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  47344. auto operator<=>( PhysicalDeviceLimits const & ) const = default;
  47345. #else
  47346. bool operator==( PhysicalDeviceLimits const & rhs ) const VULKAN_HPP_NOEXCEPT
  47347. {
  47348. # if defined( VULKAN_HPP_USE_REFLECT )
  47349. return this->reflect() == rhs.reflect();
  47350. # else
  47351. return ( maxImageDimension1D == rhs.maxImageDimension1D ) && ( maxImageDimension2D == rhs.maxImageDimension2D ) &&
  47352. ( maxImageDimension3D == rhs.maxImageDimension3D ) && ( maxImageDimensionCube == rhs.maxImageDimensionCube ) &&
  47353. ( maxImageArrayLayers == rhs.maxImageArrayLayers ) && ( maxTexelBufferElements == rhs.maxTexelBufferElements ) &&
  47354. ( maxUniformBufferRange == rhs.maxUniformBufferRange ) && ( maxStorageBufferRange == rhs.maxStorageBufferRange ) &&
  47355. ( maxPushConstantsSize == rhs.maxPushConstantsSize ) && ( maxMemoryAllocationCount == rhs.maxMemoryAllocationCount ) &&
  47356. ( maxSamplerAllocationCount == rhs.maxSamplerAllocationCount ) && ( bufferImageGranularity == rhs.bufferImageGranularity ) &&
  47357. ( sparseAddressSpaceSize == rhs.sparseAddressSpaceSize ) && ( maxBoundDescriptorSets == rhs.maxBoundDescriptorSets ) &&
  47358. ( maxPerStageDescriptorSamplers == rhs.maxPerStageDescriptorSamplers ) &&
  47359. ( maxPerStageDescriptorUniformBuffers == rhs.maxPerStageDescriptorUniformBuffers ) &&
  47360. ( maxPerStageDescriptorStorageBuffers == rhs.maxPerStageDescriptorStorageBuffers ) &&
  47361. ( maxPerStageDescriptorSampledImages == rhs.maxPerStageDescriptorSampledImages ) &&
  47362. ( maxPerStageDescriptorStorageImages == rhs.maxPerStageDescriptorStorageImages ) &&
  47363. ( maxPerStageDescriptorInputAttachments == rhs.maxPerStageDescriptorInputAttachments ) && ( maxPerStageResources == rhs.maxPerStageResources ) &&
  47364. ( maxDescriptorSetSamplers == rhs.maxDescriptorSetSamplers ) && ( maxDescriptorSetUniformBuffers == rhs.maxDescriptorSetUniformBuffers ) &&
  47365. ( maxDescriptorSetUniformBuffersDynamic == rhs.maxDescriptorSetUniformBuffersDynamic ) &&
  47366. ( maxDescriptorSetStorageBuffers == rhs.maxDescriptorSetStorageBuffers ) &&
  47367. ( maxDescriptorSetStorageBuffersDynamic == rhs.maxDescriptorSetStorageBuffersDynamic ) &&
  47368. ( maxDescriptorSetSampledImages == rhs.maxDescriptorSetSampledImages ) && ( maxDescriptorSetStorageImages == rhs.maxDescriptorSetStorageImages ) &&
  47369. ( maxDescriptorSetInputAttachments == rhs.maxDescriptorSetInputAttachments ) && ( maxVertexInputAttributes == rhs.maxVertexInputAttributes ) &&
  47370. ( maxVertexInputBindings == rhs.maxVertexInputBindings ) && ( maxVertexInputAttributeOffset == rhs.maxVertexInputAttributeOffset ) &&
  47371. ( maxVertexInputBindingStride == rhs.maxVertexInputBindingStride ) && ( maxVertexOutputComponents == rhs.maxVertexOutputComponents ) &&
  47372. ( maxTessellationGenerationLevel == rhs.maxTessellationGenerationLevel ) && ( maxTessellationPatchSize == rhs.maxTessellationPatchSize ) &&
  47373. ( maxTessellationControlPerVertexInputComponents == rhs.maxTessellationControlPerVertexInputComponents ) &&
  47374. ( maxTessellationControlPerVertexOutputComponents == rhs.maxTessellationControlPerVertexOutputComponents ) &&
  47375. ( maxTessellationControlPerPatchOutputComponents == rhs.maxTessellationControlPerPatchOutputComponents ) &&
  47376. ( maxTessellationControlTotalOutputComponents == rhs.maxTessellationControlTotalOutputComponents ) &&
  47377. ( maxTessellationEvaluationInputComponents == rhs.maxTessellationEvaluationInputComponents ) &&
  47378. ( maxTessellationEvaluationOutputComponents == rhs.maxTessellationEvaluationOutputComponents ) &&
  47379. ( maxGeometryShaderInvocations == rhs.maxGeometryShaderInvocations ) && ( maxGeometryInputComponents == rhs.maxGeometryInputComponents ) &&
  47380. ( maxGeometryOutputComponents == rhs.maxGeometryOutputComponents ) && ( maxGeometryOutputVertices == rhs.maxGeometryOutputVertices ) &&
  47381. ( maxGeometryTotalOutputComponents == rhs.maxGeometryTotalOutputComponents ) && ( maxFragmentInputComponents == rhs.maxFragmentInputComponents ) &&
  47382. ( maxFragmentOutputAttachments == rhs.maxFragmentOutputAttachments ) && ( maxFragmentDualSrcAttachments == rhs.maxFragmentDualSrcAttachments ) &&
  47383. ( maxFragmentCombinedOutputResources == rhs.maxFragmentCombinedOutputResources ) &&
  47384. ( maxComputeSharedMemorySize == rhs.maxComputeSharedMemorySize ) && ( maxComputeWorkGroupCount == rhs.maxComputeWorkGroupCount ) &&
  47385. ( maxComputeWorkGroupInvocations == rhs.maxComputeWorkGroupInvocations ) && ( maxComputeWorkGroupSize == rhs.maxComputeWorkGroupSize ) &&
  47386. ( subPixelPrecisionBits == rhs.subPixelPrecisionBits ) && ( subTexelPrecisionBits == rhs.subTexelPrecisionBits ) &&
  47387. ( mipmapPrecisionBits == rhs.mipmapPrecisionBits ) && ( maxDrawIndexedIndexValue == rhs.maxDrawIndexedIndexValue ) &&
  47388. ( maxDrawIndirectCount == rhs.maxDrawIndirectCount ) && ( maxSamplerLodBias == rhs.maxSamplerLodBias ) &&
  47389. ( maxSamplerAnisotropy == rhs.maxSamplerAnisotropy ) && ( maxViewports == rhs.maxViewports ) &&
  47390. ( maxViewportDimensions == rhs.maxViewportDimensions ) && ( viewportBoundsRange == rhs.viewportBoundsRange ) &&
  47391. ( viewportSubPixelBits == rhs.viewportSubPixelBits ) && ( minMemoryMapAlignment == rhs.minMemoryMapAlignment ) &&
  47392. ( minTexelBufferOffsetAlignment == rhs.minTexelBufferOffsetAlignment ) &&
  47393. ( minUniformBufferOffsetAlignment == rhs.minUniformBufferOffsetAlignment ) &&
  47394. ( minStorageBufferOffsetAlignment == rhs.minStorageBufferOffsetAlignment ) && ( minTexelOffset == rhs.minTexelOffset ) &&
  47395. ( maxTexelOffset == rhs.maxTexelOffset ) && ( minTexelGatherOffset == rhs.minTexelGatherOffset ) &&
  47396. ( maxTexelGatherOffset == rhs.maxTexelGatherOffset ) && ( minInterpolationOffset == rhs.minInterpolationOffset ) &&
  47397. ( maxInterpolationOffset == rhs.maxInterpolationOffset ) && ( subPixelInterpolationOffsetBits == rhs.subPixelInterpolationOffsetBits ) &&
  47398. ( maxFramebufferWidth == rhs.maxFramebufferWidth ) && ( maxFramebufferHeight == rhs.maxFramebufferHeight ) &&
  47399. ( maxFramebufferLayers == rhs.maxFramebufferLayers ) && ( framebufferColorSampleCounts == rhs.framebufferColorSampleCounts ) &&
  47400. ( framebufferDepthSampleCounts == rhs.framebufferDepthSampleCounts ) && ( framebufferStencilSampleCounts == rhs.framebufferStencilSampleCounts ) &&
  47401. ( framebufferNoAttachmentsSampleCounts == rhs.framebufferNoAttachmentsSampleCounts ) && ( maxColorAttachments == rhs.maxColorAttachments ) &&
  47402. ( sampledImageColorSampleCounts == rhs.sampledImageColorSampleCounts ) &&
  47403. ( sampledImageIntegerSampleCounts == rhs.sampledImageIntegerSampleCounts ) &&
  47404. ( sampledImageDepthSampleCounts == rhs.sampledImageDepthSampleCounts ) &&
  47405. ( sampledImageStencilSampleCounts == rhs.sampledImageStencilSampleCounts ) && ( storageImageSampleCounts == rhs.storageImageSampleCounts ) &&
  47406. ( maxSampleMaskWords == rhs.maxSampleMaskWords ) && ( timestampComputeAndGraphics == rhs.timestampComputeAndGraphics ) &&
  47407. ( timestampPeriod == rhs.timestampPeriod ) && ( maxClipDistances == rhs.maxClipDistances ) && ( maxCullDistances == rhs.maxCullDistances ) &&
  47408. ( maxCombinedClipAndCullDistances == rhs.maxCombinedClipAndCullDistances ) && ( discreteQueuePriorities == rhs.discreteQueuePriorities ) &&
  47409. ( pointSizeRange == rhs.pointSizeRange ) && ( lineWidthRange == rhs.lineWidthRange ) && ( pointSizeGranularity == rhs.pointSizeGranularity ) &&
  47410. ( lineWidthGranularity == rhs.lineWidthGranularity ) && ( strictLines == rhs.strictLines ) &&
  47411. ( standardSampleLocations == rhs.standardSampleLocations ) && ( optimalBufferCopyOffsetAlignment == rhs.optimalBufferCopyOffsetAlignment ) &&
  47412. ( optimalBufferCopyRowPitchAlignment == rhs.optimalBufferCopyRowPitchAlignment ) && ( nonCoherentAtomSize == rhs.nonCoherentAtomSize );
  47413. # endif
  47414. }
  47415. bool operator!=( PhysicalDeviceLimits const & rhs ) const VULKAN_HPP_NOEXCEPT
  47416. {
  47417. return !operator==( rhs );
  47418. }
  47419. #endif
  47420. public:
  47421. uint32_t maxImageDimension1D = {};
  47422. uint32_t maxImageDimension2D = {};
  47423. uint32_t maxImageDimension3D = {};
  47424. uint32_t maxImageDimensionCube = {};
  47425. uint32_t maxImageArrayLayers = {};
  47426. uint32_t maxTexelBufferElements = {};
  47427. uint32_t maxUniformBufferRange = {};
  47428. uint32_t maxStorageBufferRange = {};
  47429. uint32_t maxPushConstantsSize = {};
  47430. uint32_t maxMemoryAllocationCount = {};
  47431. uint32_t maxSamplerAllocationCount = {};
  47432. VULKAN_HPP_NAMESPACE::DeviceSize bufferImageGranularity = {};
  47433. VULKAN_HPP_NAMESPACE::DeviceSize sparseAddressSpaceSize = {};
  47434. uint32_t maxBoundDescriptorSets = {};
  47435. uint32_t maxPerStageDescriptorSamplers = {};
  47436. uint32_t maxPerStageDescriptorUniformBuffers = {};
  47437. uint32_t maxPerStageDescriptorStorageBuffers = {};
  47438. uint32_t maxPerStageDescriptorSampledImages = {};
  47439. uint32_t maxPerStageDescriptorStorageImages = {};
  47440. uint32_t maxPerStageDescriptorInputAttachments = {};
  47441. uint32_t maxPerStageResources = {};
  47442. uint32_t maxDescriptorSetSamplers = {};
  47443. uint32_t maxDescriptorSetUniformBuffers = {};
  47444. uint32_t maxDescriptorSetUniformBuffersDynamic = {};
  47445. uint32_t maxDescriptorSetStorageBuffers = {};
  47446. uint32_t maxDescriptorSetStorageBuffersDynamic = {};
  47447. uint32_t maxDescriptorSetSampledImages = {};
  47448. uint32_t maxDescriptorSetStorageImages = {};
  47449. uint32_t maxDescriptorSetInputAttachments = {};
  47450. uint32_t maxVertexInputAttributes = {};
  47451. uint32_t maxVertexInputBindings = {};
  47452. uint32_t maxVertexInputAttributeOffset = {};
  47453. uint32_t maxVertexInputBindingStride = {};
  47454. uint32_t maxVertexOutputComponents = {};
  47455. uint32_t maxTessellationGenerationLevel = {};
  47456. uint32_t maxTessellationPatchSize = {};
  47457. uint32_t maxTessellationControlPerVertexInputComponents = {};
  47458. uint32_t maxTessellationControlPerVertexOutputComponents = {};
  47459. uint32_t maxTessellationControlPerPatchOutputComponents = {};
  47460. uint32_t maxTessellationControlTotalOutputComponents = {};
  47461. uint32_t maxTessellationEvaluationInputComponents = {};
  47462. uint32_t maxTessellationEvaluationOutputComponents = {};
  47463. uint32_t maxGeometryShaderInvocations = {};
  47464. uint32_t maxGeometryInputComponents = {};
  47465. uint32_t maxGeometryOutputComponents = {};
  47466. uint32_t maxGeometryOutputVertices = {};
  47467. uint32_t maxGeometryTotalOutputComponents = {};
  47468. uint32_t maxFragmentInputComponents = {};
  47469. uint32_t maxFragmentOutputAttachments = {};
  47470. uint32_t maxFragmentDualSrcAttachments = {};
  47471. uint32_t maxFragmentCombinedOutputResources = {};
  47472. uint32_t maxComputeSharedMemorySize = {};
  47473. VULKAN_HPP_NAMESPACE::ArrayWrapper1D<uint32_t, 3> maxComputeWorkGroupCount = {};
  47474. uint32_t maxComputeWorkGroupInvocations = {};
  47475. VULKAN_HPP_NAMESPACE::ArrayWrapper1D<uint32_t, 3> maxComputeWorkGroupSize = {};
  47476. uint32_t subPixelPrecisionBits = {};
  47477. uint32_t subTexelPrecisionBits = {};
  47478. uint32_t mipmapPrecisionBits = {};
  47479. uint32_t maxDrawIndexedIndexValue = {};
  47480. uint32_t maxDrawIndirectCount = {};
  47481. float maxSamplerLodBias = {};
  47482. float maxSamplerAnisotropy = {};
  47483. uint32_t maxViewports = {};
  47484. VULKAN_HPP_NAMESPACE::ArrayWrapper1D<uint32_t, 2> maxViewportDimensions = {};
  47485. VULKAN_HPP_NAMESPACE::ArrayWrapper1D<float, 2> viewportBoundsRange = {};
  47486. uint32_t viewportSubPixelBits = {};
  47487. size_t minMemoryMapAlignment = {};
  47488. VULKAN_HPP_NAMESPACE::DeviceSize minTexelBufferOffsetAlignment = {};
  47489. VULKAN_HPP_NAMESPACE::DeviceSize minUniformBufferOffsetAlignment = {};
  47490. VULKAN_HPP_NAMESPACE::DeviceSize minStorageBufferOffsetAlignment = {};
  47491. int32_t minTexelOffset = {};
  47492. uint32_t maxTexelOffset = {};
  47493. int32_t minTexelGatherOffset = {};
  47494. uint32_t maxTexelGatherOffset = {};
  47495. float minInterpolationOffset = {};
  47496. float maxInterpolationOffset = {};
  47497. uint32_t subPixelInterpolationOffsetBits = {};
  47498. uint32_t maxFramebufferWidth = {};
  47499. uint32_t maxFramebufferHeight = {};
  47500. uint32_t maxFramebufferLayers = {};
  47501. VULKAN_HPP_NAMESPACE::SampleCountFlags framebufferColorSampleCounts = {};
  47502. VULKAN_HPP_NAMESPACE::SampleCountFlags framebufferDepthSampleCounts = {};
  47503. VULKAN_HPP_NAMESPACE::SampleCountFlags framebufferStencilSampleCounts = {};
  47504. VULKAN_HPP_NAMESPACE::SampleCountFlags framebufferNoAttachmentsSampleCounts = {};
  47505. uint32_t maxColorAttachments = {};
  47506. VULKAN_HPP_NAMESPACE::SampleCountFlags sampledImageColorSampleCounts = {};
  47507. VULKAN_HPP_NAMESPACE::SampleCountFlags sampledImageIntegerSampleCounts = {};
  47508. VULKAN_HPP_NAMESPACE::SampleCountFlags sampledImageDepthSampleCounts = {};
  47509. VULKAN_HPP_NAMESPACE::SampleCountFlags sampledImageStencilSampleCounts = {};
  47510. VULKAN_HPP_NAMESPACE::SampleCountFlags storageImageSampleCounts = {};
  47511. uint32_t maxSampleMaskWords = {};
  47512. VULKAN_HPP_NAMESPACE::Bool32 timestampComputeAndGraphics = {};
  47513. float timestampPeriod = {};
  47514. uint32_t maxClipDistances = {};
  47515. uint32_t maxCullDistances = {};
  47516. uint32_t maxCombinedClipAndCullDistances = {};
  47517. uint32_t discreteQueuePriorities = {};
  47518. VULKAN_HPP_NAMESPACE::ArrayWrapper1D<float, 2> pointSizeRange = {};
  47519. VULKAN_HPP_NAMESPACE::ArrayWrapper1D<float, 2> lineWidthRange = {};
  47520. float pointSizeGranularity = {};
  47521. float lineWidthGranularity = {};
  47522. VULKAN_HPP_NAMESPACE::Bool32 strictLines = {};
  47523. VULKAN_HPP_NAMESPACE::Bool32 standardSampleLocations = {};
  47524. VULKAN_HPP_NAMESPACE::DeviceSize optimalBufferCopyOffsetAlignment = {};
  47525. VULKAN_HPP_NAMESPACE::DeviceSize optimalBufferCopyRowPitchAlignment = {};
  47526. VULKAN_HPP_NAMESPACE::DeviceSize nonCoherentAtomSize = {};
  47527. };
  47528. struct PhysicalDeviceLineRasterizationFeaturesEXT
  47529. {
  47530. using NativeType = VkPhysicalDeviceLineRasterizationFeaturesEXT;
  47531. static const bool allowDuplicate = false;
  47532. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceLineRasterizationFeaturesEXT;
  47533. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  47534. VULKAN_HPP_CONSTEXPR PhysicalDeviceLineRasterizationFeaturesEXT( VULKAN_HPP_NAMESPACE::Bool32 rectangularLines_ = {},
  47535. VULKAN_HPP_NAMESPACE::Bool32 bresenhamLines_ = {},
  47536. VULKAN_HPP_NAMESPACE::Bool32 smoothLines_ = {},
  47537. VULKAN_HPP_NAMESPACE::Bool32 stippledRectangularLines_ = {},
  47538. VULKAN_HPP_NAMESPACE::Bool32 stippledBresenhamLines_ = {},
  47539. VULKAN_HPP_NAMESPACE::Bool32 stippledSmoothLines_ = {},
  47540. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  47541. : pNext( pNext_ )
  47542. , rectangularLines( rectangularLines_ )
  47543. , bresenhamLines( bresenhamLines_ )
  47544. , smoothLines( smoothLines_ )
  47545. , stippledRectangularLines( stippledRectangularLines_ )
  47546. , stippledBresenhamLines( stippledBresenhamLines_ )
  47547. , stippledSmoothLines( stippledSmoothLines_ )
  47548. {
  47549. }
  47550. VULKAN_HPP_CONSTEXPR PhysicalDeviceLineRasterizationFeaturesEXT( PhysicalDeviceLineRasterizationFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  47551. PhysicalDeviceLineRasterizationFeaturesEXT( VkPhysicalDeviceLineRasterizationFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  47552. : PhysicalDeviceLineRasterizationFeaturesEXT( *reinterpret_cast<PhysicalDeviceLineRasterizationFeaturesEXT const *>( &rhs ) )
  47553. {
  47554. }
  47555. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  47556. PhysicalDeviceLineRasterizationFeaturesEXT & operator=( PhysicalDeviceLineRasterizationFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  47557. PhysicalDeviceLineRasterizationFeaturesEXT & operator=( VkPhysicalDeviceLineRasterizationFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  47558. {
  47559. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceLineRasterizationFeaturesEXT const *>( &rhs );
  47560. return *this;
  47561. }
  47562. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  47563. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceLineRasterizationFeaturesEXT & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
  47564. {
  47565. pNext = pNext_;
  47566. return *this;
  47567. }
  47568. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceLineRasterizationFeaturesEXT &
  47569. setRectangularLines( VULKAN_HPP_NAMESPACE::Bool32 rectangularLines_ ) VULKAN_HPP_NOEXCEPT
  47570. {
  47571. rectangularLines = rectangularLines_;
  47572. return *this;
  47573. }
  47574. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceLineRasterizationFeaturesEXT & setBresenhamLines( VULKAN_HPP_NAMESPACE::Bool32 bresenhamLines_ ) VULKAN_HPP_NOEXCEPT
  47575. {
  47576. bresenhamLines = bresenhamLines_;
  47577. return *this;
  47578. }
  47579. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceLineRasterizationFeaturesEXT & setSmoothLines( VULKAN_HPP_NAMESPACE::Bool32 smoothLines_ ) VULKAN_HPP_NOEXCEPT
  47580. {
  47581. smoothLines = smoothLines_;
  47582. return *this;
  47583. }
  47584. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceLineRasterizationFeaturesEXT &
  47585. setStippledRectangularLines( VULKAN_HPP_NAMESPACE::Bool32 stippledRectangularLines_ ) VULKAN_HPP_NOEXCEPT
  47586. {
  47587. stippledRectangularLines = stippledRectangularLines_;
  47588. return *this;
  47589. }
  47590. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceLineRasterizationFeaturesEXT &
  47591. setStippledBresenhamLines( VULKAN_HPP_NAMESPACE::Bool32 stippledBresenhamLines_ ) VULKAN_HPP_NOEXCEPT
  47592. {
  47593. stippledBresenhamLines = stippledBresenhamLines_;
  47594. return *this;
  47595. }
  47596. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceLineRasterizationFeaturesEXT &
  47597. setStippledSmoothLines( VULKAN_HPP_NAMESPACE::Bool32 stippledSmoothLines_ ) VULKAN_HPP_NOEXCEPT
  47598. {
  47599. stippledSmoothLines = stippledSmoothLines_;
  47600. return *this;
  47601. }
  47602. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  47603. operator VkPhysicalDeviceLineRasterizationFeaturesEXT const &() const VULKAN_HPP_NOEXCEPT
  47604. {
  47605. return *reinterpret_cast<const VkPhysicalDeviceLineRasterizationFeaturesEXT *>( this );
  47606. }
  47607. operator VkPhysicalDeviceLineRasterizationFeaturesEXT &() VULKAN_HPP_NOEXCEPT
  47608. {
  47609. return *reinterpret_cast<VkPhysicalDeviceLineRasterizationFeaturesEXT *>( this );
  47610. }
  47611. #if defined( VULKAN_HPP_USE_REFLECT )
  47612. # if 14 <= VULKAN_HPP_CPP_VERSION
  47613. auto
  47614. # else
  47615. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  47616. void * const &,
  47617. VULKAN_HPP_NAMESPACE::Bool32 const &,
  47618. VULKAN_HPP_NAMESPACE::Bool32 const &,
  47619. VULKAN_HPP_NAMESPACE::Bool32 const &,
  47620. VULKAN_HPP_NAMESPACE::Bool32 const &,
  47621. VULKAN_HPP_NAMESPACE::Bool32 const &,
  47622. VULKAN_HPP_NAMESPACE::Bool32 const &>
  47623. # endif
  47624. reflect() const VULKAN_HPP_NOEXCEPT
  47625. {
  47626. return std::tie( sType, pNext, rectangularLines, bresenhamLines, smoothLines, stippledRectangularLines, stippledBresenhamLines, stippledSmoothLines );
  47627. }
  47628. #endif
  47629. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  47630. auto operator<=>( PhysicalDeviceLineRasterizationFeaturesEXT const & ) const = default;
  47631. #else
  47632. bool operator==( PhysicalDeviceLineRasterizationFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  47633. {
  47634. # if defined( VULKAN_HPP_USE_REFLECT )
  47635. return this->reflect() == rhs.reflect();
  47636. # else
  47637. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( rectangularLines == rhs.rectangularLines ) && ( bresenhamLines == rhs.bresenhamLines ) &&
  47638. ( smoothLines == rhs.smoothLines ) && ( stippledRectangularLines == rhs.stippledRectangularLines ) &&
  47639. ( stippledBresenhamLines == rhs.stippledBresenhamLines ) && ( stippledSmoothLines == rhs.stippledSmoothLines );
  47640. # endif
  47641. }
  47642. bool operator!=( PhysicalDeviceLineRasterizationFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  47643. {
  47644. return !operator==( rhs );
  47645. }
  47646. #endif
  47647. public:
  47648. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceLineRasterizationFeaturesEXT;
  47649. void * pNext = {};
  47650. VULKAN_HPP_NAMESPACE::Bool32 rectangularLines = {};
  47651. VULKAN_HPP_NAMESPACE::Bool32 bresenhamLines = {};
  47652. VULKAN_HPP_NAMESPACE::Bool32 smoothLines = {};
  47653. VULKAN_HPP_NAMESPACE::Bool32 stippledRectangularLines = {};
  47654. VULKAN_HPP_NAMESPACE::Bool32 stippledBresenhamLines = {};
  47655. VULKAN_HPP_NAMESPACE::Bool32 stippledSmoothLines = {};
  47656. };
  47657. template <>
  47658. struct CppType<StructureType, StructureType::ePhysicalDeviceLineRasterizationFeaturesEXT>
  47659. {
  47660. using Type = PhysicalDeviceLineRasterizationFeaturesEXT;
  47661. };
  47662. struct PhysicalDeviceLineRasterizationPropertiesEXT
  47663. {
  47664. using NativeType = VkPhysicalDeviceLineRasterizationPropertiesEXT;
  47665. static const bool allowDuplicate = false;
  47666. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceLineRasterizationPropertiesEXT;
  47667. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  47668. VULKAN_HPP_CONSTEXPR PhysicalDeviceLineRasterizationPropertiesEXT( uint32_t lineSubPixelPrecisionBits_ = {}, void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  47669. : pNext( pNext_ )
  47670. , lineSubPixelPrecisionBits( lineSubPixelPrecisionBits_ )
  47671. {
  47672. }
  47673. VULKAN_HPP_CONSTEXPR PhysicalDeviceLineRasterizationPropertiesEXT( PhysicalDeviceLineRasterizationPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  47674. PhysicalDeviceLineRasterizationPropertiesEXT( VkPhysicalDeviceLineRasterizationPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  47675. : PhysicalDeviceLineRasterizationPropertiesEXT( *reinterpret_cast<PhysicalDeviceLineRasterizationPropertiesEXT const *>( &rhs ) )
  47676. {
  47677. }
  47678. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  47679. PhysicalDeviceLineRasterizationPropertiesEXT & operator=( PhysicalDeviceLineRasterizationPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  47680. PhysicalDeviceLineRasterizationPropertiesEXT & operator=( VkPhysicalDeviceLineRasterizationPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  47681. {
  47682. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceLineRasterizationPropertiesEXT const *>( &rhs );
  47683. return *this;
  47684. }
  47685. operator VkPhysicalDeviceLineRasterizationPropertiesEXT const &() const VULKAN_HPP_NOEXCEPT
  47686. {
  47687. return *reinterpret_cast<const VkPhysicalDeviceLineRasterizationPropertiesEXT *>( this );
  47688. }
  47689. operator VkPhysicalDeviceLineRasterizationPropertiesEXT &() VULKAN_HPP_NOEXCEPT
  47690. {
  47691. return *reinterpret_cast<VkPhysicalDeviceLineRasterizationPropertiesEXT *>( this );
  47692. }
  47693. #if defined( VULKAN_HPP_USE_REFLECT )
  47694. # if 14 <= VULKAN_HPP_CPP_VERSION
  47695. auto
  47696. # else
  47697. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, uint32_t const &>
  47698. # endif
  47699. reflect() const VULKAN_HPP_NOEXCEPT
  47700. {
  47701. return std::tie( sType, pNext, lineSubPixelPrecisionBits );
  47702. }
  47703. #endif
  47704. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  47705. auto operator<=>( PhysicalDeviceLineRasterizationPropertiesEXT const & ) const = default;
  47706. #else
  47707. bool operator==( PhysicalDeviceLineRasterizationPropertiesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  47708. {
  47709. # if defined( VULKAN_HPP_USE_REFLECT )
  47710. return this->reflect() == rhs.reflect();
  47711. # else
  47712. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( lineSubPixelPrecisionBits == rhs.lineSubPixelPrecisionBits );
  47713. # endif
  47714. }
  47715. bool operator!=( PhysicalDeviceLineRasterizationPropertiesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  47716. {
  47717. return !operator==( rhs );
  47718. }
  47719. #endif
  47720. public:
  47721. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceLineRasterizationPropertiesEXT;
  47722. void * pNext = {};
  47723. uint32_t lineSubPixelPrecisionBits = {};
  47724. };
  47725. template <>
  47726. struct CppType<StructureType, StructureType::ePhysicalDeviceLineRasterizationPropertiesEXT>
  47727. {
  47728. using Type = PhysicalDeviceLineRasterizationPropertiesEXT;
  47729. };
  47730. struct PhysicalDeviceLinearColorAttachmentFeaturesNV
  47731. {
  47732. using NativeType = VkPhysicalDeviceLinearColorAttachmentFeaturesNV;
  47733. static const bool allowDuplicate = false;
  47734. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceLinearColorAttachmentFeaturesNV;
  47735. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  47736. VULKAN_HPP_CONSTEXPR PhysicalDeviceLinearColorAttachmentFeaturesNV( VULKAN_HPP_NAMESPACE::Bool32 linearColorAttachment_ = {},
  47737. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  47738. : pNext( pNext_ )
  47739. , linearColorAttachment( linearColorAttachment_ )
  47740. {
  47741. }
  47742. VULKAN_HPP_CONSTEXPR
  47743. PhysicalDeviceLinearColorAttachmentFeaturesNV( PhysicalDeviceLinearColorAttachmentFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  47744. PhysicalDeviceLinearColorAttachmentFeaturesNV( VkPhysicalDeviceLinearColorAttachmentFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT
  47745. : PhysicalDeviceLinearColorAttachmentFeaturesNV( *reinterpret_cast<PhysicalDeviceLinearColorAttachmentFeaturesNV const *>( &rhs ) )
  47746. {
  47747. }
  47748. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  47749. PhysicalDeviceLinearColorAttachmentFeaturesNV & operator=( PhysicalDeviceLinearColorAttachmentFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  47750. PhysicalDeviceLinearColorAttachmentFeaturesNV & operator=( VkPhysicalDeviceLinearColorAttachmentFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT
  47751. {
  47752. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceLinearColorAttachmentFeaturesNV const *>( &rhs );
  47753. return *this;
  47754. }
  47755. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  47756. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceLinearColorAttachmentFeaturesNV & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
  47757. {
  47758. pNext = pNext_;
  47759. return *this;
  47760. }
  47761. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceLinearColorAttachmentFeaturesNV &
  47762. setLinearColorAttachment( VULKAN_HPP_NAMESPACE::Bool32 linearColorAttachment_ ) VULKAN_HPP_NOEXCEPT
  47763. {
  47764. linearColorAttachment = linearColorAttachment_;
  47765. return *this;
  47766. }
  47767. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  47768. operator VkPhysicalDeviceLinearColorAttachmentFeaturesNV const &() const VULKAN_HPP_NOEXCEPT
  47769. {
  47770. return *reinterpret_cast<const VkPhysicalDeviceLinearColorAttachmentFeaturesNV *>( this );
  47771. }
  47772. operator VkPhysicalDeviceLinearColorAttachmentFeaturesNV &() VULKAN_HPP_NOEXCEPT
  47773. {
  47774. return *reinterpret_cast<VkPhysicalDeviceLinearColorAttachmentFeaturesNV *>( this );
  47775. }
  47776. #if defined( VULKAN_HPP_USE_REFLECT )
  47777. # if 14 <= VULKAN_HPP_CPP_VERSION
  47778. auto
  47779. # else
  47780. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
  47781. # endif
  47782. reflect() const VULKAN_HPP_NOEXCEPT
  47783. {
  47784. return std::tie( sType, pNext, linearColorAttachment );
  47785. }
  47786. #endif
  47787. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  47788. auto operator<=>( PhysicalDeviceLinearColorAttachmentFeaturesNV const & ) const = default;
  47789. #else
  47790. bool operator==( PhysicalDeviceLinearColorAttachmentFeaturesNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  47791. {
  47792. # if defined( VULKAN_HPP_USE_REFLECT )
  47793. return this->reflect() == rhs.reflect();
  47794. # else
  47795. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( linearColorAttachment == rhs.linearColorAttachment );
  47796. # endif
  47797. }
  47798. bool operator!=( PhysicalDeviceLinearColorAttachmentFeaturesNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  47799. {
  47800. return !operator==( rhs );
  47801. }
  47802. #endif
  47803. public:
  47804. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceLinearColorAttachmentFeaturesNV;
  47805. void * pNext = {};
  47806. VULKAN_HPP_NAMESPACE::Bool32 linearColorAttachment = {};
  47807. };
  47808. template <>
  47809. struct CppType<StructureType, StructureType::ePhysicalDeviceLinearColorAttachmentFeaturesNV>
  47810. {
  47811. using Type = PhysicalDeviceLinearColorAttachmentFeaturesNV;
  47812. };
  47813. struct PhysicalDeviceMaintenance3Properties
  47814. {
  47815. using NativeType = VkPhysicalDeviceMaintenance3Properties;
  47816. static const bool allowDuplicate = false;
  47817. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceMaintenance3Properties;
  47818. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  47819. VULKAN_HPP_CONSTEXPR PhysicalDeviceMaintenance3Properties( uint32_t maxPerSetDescriptors_ = {},
  47820. VULKAN_HPP_NAMESPACE::DeviceSize maxMemoryAllocationSize_ = {},
  47821. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  47822. : pNext( pNext_ )
  47823. , maxPerSetDescriptors( maxPerSetDescriptors_ )
  47824. , maxMemoryAllocationSize( maxMemoryAllocationSize_ )
  47825. {
  47826. }
  47827. VULKAN_HPP_CONSTEXPR PhysicalDeviceMaintenance3Properties( PhysicalDeviceMaintenance3Properties const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  47828. PhysicalDeviceMaintenance3Properties( VkPhysicalDeviceMaintenance3Properties const & rhs ) VULKAN_HPP_NOEXCEPT
  47829. : PhysicalDeviceMaintenance3Properties( *reinterpret_cast<PhysicalDeviceMaintenance3Properties const *>( &rhs ) )
  47830. {
  47831. }
  47832. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  47833. PhysicalDeviceMaintenance3Properties & operator=( PhysicalDeviceMaintenance3Properties const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  47834. PhysicalDeviceMaintenance3Properties & operator=( VkPhysicalDeviceMaintenance3Properties const & rhs ) VULKAN_HPP_NOEXCEPT
  47835. {
  47836. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceMaintenance3Properties const *>( &rhs );
  47837. return *this;
  47838. }
  47839. operator VkPhysicalDeviceMaintenance3Properties const &() const VULKAN_HPP_NOEXCEPT
  47840. {
  47841. return *reinterpret_cast<const VkPhysicalDeviceMaintenance3Properties *>( this );
  47842. }
  47843. operator VkPhysicalDeviceMaintenance3Properties &() VULKAN_HPP_NOEXCEPT
  47844. {
  47845. return *reinterpret_cast<VkPhysicalDeviceMaintenance3Properties *>( this );
  47846. }
  47847. #if defined( VULKAN_HPP_USE_REFLECT )
  47848. # if 14 <= VULKAN_HPP_CPP_VERSION
  47849. auto
  47850. # else
  47851. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, uint32_t const &, VULKAN_HPP_NAMESPACE::DeviceSize const &>
  47852. # endif
  47853. reflect() const VULKAN_HPP_NOEXCEPT
  47854. {
  47855. return std::tie( sType, pNext, maxPerSetDescriptors, maxMemoryAllocationSize );
  47856. }
  47857. #endif
  47858. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  47859. auto operator<=>( PhysicalDeviceMaintenance3Properties const & ) const = default;
  47860. #else
  47861. bool operator==( PhysicalDeviceMaintenance3Properties const & rhs ) const VULKAN_HPP_NOEXCEPT
  47862. {
  47863. # if defined( VULKAN_HPP_USE_REFLECT )
  47864. return this->reflect() == rhs.reflect();
  47865. # else
  47866. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( maxPerSetDescriptors == rhs.maxPerSetDescriptors ) &&
  47867. ( maxMemoryAllocationSize == rhs.maxMemoryAllocationSize );
  47868. # endif
  47869. }
  47870. bool operator!=( PhysicalDeviceMaintenance3Properties const & rhs ) const VULKAN_HPP_NOEXCEPT
  47871. {
  47872. return !operator==( rhs );
  47873. }
  47874. #endif
  47875. public:
  47876. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceMaintenance3Properties;
  47877. void * pNext = {};
  47878. uint32_t maxPerSetDescriptors = {};
  47879. VULKAN_HPP_NAMESPACE::DeviceSize maxMemoryAllocationSize = {};
  47880. };
  47881. template <>
  47882. struct CppType<StructureType, StructureType::ePhysicalDeviceMaintenance3Properties>
  47883. {
  47884. using Type = PhysicalDeviceMaintenance3Properties;
  47885. };
  47886. using PhysicalDeviceMaintenance3PropertiesKHR = PhysicalDeviceMaintenance3Properties;
  47887. struct PhysicalDeviceMaintenance4Features
  47888. {
  47889. using NativeType = VkPhysicalDeviceMaintenance4Features;
  47890. static const bool allowDuplicate = false;
  47891. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceMaintenance4Features;
  47892. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  47893. VULKAN_HPP_CONSTEXPR PhysicalDeviceMaintenance4Features( VULKAN_HPP_NAMESPACE::Bool32 maintenance4_ = {}, void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  47894. : pNext( pNext_ )
  47895. , maintenance4( maintenance4_ )
  47896. {
  47897. }
  47898. VULKAN_HPP_CONSTEXPR PhysicalDeviceMaintenance4Features( PhysicalDeviceMaintenance4Features const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  47899. PhysicalDeviceMaintenance4Features( VkPhysicalDeviceMaintenance4Features const & rhs ) VULKAN_HPP_NOEXCEPT
  47900. : PhysicalDeviceMaintenance4Features( *reinterpret_cast<PhysicalDeviceMaintenance4Features const *>( &rhs ) )
  47901. {
  47902. }
  47903. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  47904. PhysicalDeviceMaintenance4Features & operator=( PhysicalDeviceMaintenance4Features const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  47905. PhysicalDeviceMaintenance4Features & operator=( VkPhysicalDeviceMaintenance4Features const & rhs ) VULKAN_HPP_NOEXCEPT
  47906. {
  47907. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceMaintenance4Features const *>( &rhs );
  47908. return *this;
  47909. }
  47910. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  47911. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceMaintenance4Features & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
  47912. {
  47913. pNext = pNext_;
  47914. return *this;
  47915. }
  47916. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceMaintenance4Features & setMaintenance4( VULKAN_HPP_NAMESPACE::Bool32 maintenance4_ ) VULKAN_HPP_NOEXCEPT
  47917. {
  47918. maintenance4 = maintenance4_;
  47919. return *this;
  47920. }
  47921. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  47922. operator VkPhysicalDeviceMaintenance4Features const &() const VULKAN_HPP_NOEXCEPT
  47923. {
  47924. return *reinterpret_cast<const VkPhysicalDeviceMaintenance4Features *>( this );
  47925. }
  47926. operator VkPhysicalDeviceMaintenance4Features &() VULKAN_HPP_NOEXCEPT
  47927. {
  47928. return *reinterpret_cast<VkPhysicalDeviceMaintenance4Features *>( this );
  47929. }
  47930. #if defined( VULKAN_HPP_USE_REFLECT )
  47931. # if 14 <= VULKAN_HPP_CPP_VERSION
  47932. auto
  47933. # else
  47934. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
  47935. # endif
  47936. reflect() const VULKAN_HPP_NOEXCEPT
  47937. {
  47938. return std::tie( sType, pNext, maintenance4 );
  47939. }
  47940. #endif
  47941. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  47942. auto operator<=>( PhysicalDeviceMaintenance4Features const & ) const = default;
  47943. #else
  47944. bool operator==( PhysicalDeviceMaintenance4Features const & rhs ) const VULKAN_HPP_NOEXCEPT
  47945. {
  47946. # if defined( VULKAN_HPP_USE_REFLECT )
  47947. return this->reflect() == rhs.reflect();
  47948. # else
  47949. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( maintenance4 == rhs.maintenance4 );
  47950. # endif
  47951. }
  47952. bool operator!=( PhysicalDeviceMaintenance4Features const & rhs ) const VULKAN_HPP_NOEXCEPT
  47953. {
  47954. return !operator==( rhs );
  47955. }
  47956. #endif
  47957. public:
  47958. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceMaintenance4Features;
  47959. void * pNext = {};
  47960. VULKAN_HPP_NAMESPACE::Bool32 maintenance4 = {};
  47961. };
  47962. template <>
  47963. struct CppType<StructureType, StructureType::ePhysicalDeviceMaintenance4Features>
  47964. {
  47965. using Type = PhysicalDeviceMaintenance4Features;
  47966. };
  47967. using PhysicalDeviceMaintenance4FeaturesKHR = PhysicalDeviceMaintenance4Features;
  47968. struct PhysicalDeviceMaintenance4Properties
  47969. {
  47970. using NativeType = VkPhysicalDeviceMaintenance4Properties;
  47971. static const bool allowDuplicate = false;
  47972. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceMaintenance4Properties;
  47973. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  47974. VULKAN_HPP_CONSTEXPR PhysicalDeviceMaintenance4Properties( VULKAN_HPP_NAMESPACE::DeviceSize maxBufferSize_ = {},
  47975. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  47976. : pNext( pNext_ )
  47977. , maxBufferSize( maxBufferSize_ )
  47978. {
  47979. }
  47980. VULKAN_HPP_CONSTEXPR PhysicalDeviceMaintenance4Properties( PhysicalDeviceMaintenance4Properties const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  47981. PhysicalDeviceMaintenance4Properties( VkPhysicalDeviceMaintenance4Properties const & rhs ) VULKAN_HPP_NOEXCEPT
  47982. : PhysicalDeviceMaintenance4Properties( *reinterpret_cast<PhysicalDeviceMaintenance4Properties const *>( &rhs ) )
  47983. {
  47984. }
  47985. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  47986. PhysicalDeviceMaintenance4Properties & operator=( PhysicalDeviceMaintenance4Properties const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  47987. PhysicalDeviceMaintenance4Properties & operator=( VkPhysicalDeviceMaintenance4Properties const & rhs ) VULKAN_HPP_NOEXCEPT
  47988. {
  47989. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceMaintenance4Properties const *>( &rhs );
  47990. return *this;
  47991. }
  47992. operator VkPhysicalDeviceMaintenance4Properties const &() const VULKAN_HPP_NOEXCEPT
  47993. {
  47994. return *reinterpret_cast<const VkPhysicalDeviceMaintenance4Properties *>( this );
  47995. }
  47996. operator VkPhysicalDeviceMaintenance4Properties &() VULKAN_HPP_NOEXCEPT
  47997. {
  47998. return *reinterpret_cast<VkPhysicalDeviceMaintenance4Properties *>( this );
  47999. }
  48000. #if defined( VULKAN_HPP_USE_REFLECT )
  48001. # if 14 <= VULKAN_HPP_CPP_VERSION
  48002. auto
  48003. # else
  48004. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::DeviceSize const &>
  48005. # endif
  48006. reflect() const VULKAN_HPP_NOEXCEPT
  48007. {
  48008. return std::tie( sType, pNext, maxBufferSize );
  48009. }
  48010. #endif
  48011. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  48012. auto operator<=>( PhysicalDeviceMaintenance4Properties const & ) const = default;
  48013. #else
  48014. bool operator==( PhysicalDeviceMaintenance4Properties const & rhs ) const VULKAN_HPP_NOEXCEPT
  48015. {
  48016. # if defined( VULKAN_HPP_USE_REFLECT )
  48017. return this->reflect() == rhs.reflect();
  48018. # else
  48019. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( maxBufferSize == rhs.maxBufferSize );
  48020. # endif
  48021. }
  48022. bool operator!=( PhysicalDeviceMaintenance4Properties const & rhs ) const VULKAN_HPP_NOEXCEPT
  48023. {
  48024. return !operator==( rhs );
  48025. }
  48026. #endif
  48027. public:
  48028. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceMaintenance4Properties;
  48029. void * pNext = {};
  48030. VULKAN_HPP_NAMESPACE::DeviceSize maxBufferSize = {};
  48031. };
  48032. template <>
  48033. struct CppType<StructureType, StructureType::ePhysicalDeviceMaintenance4Properties>
  48034. {
  48035. using Type = PhysicalDeviceMaintenance4Properties;
  48036. };
  48037. using PhysicalDeviceMaintenance4PropertiesKHR = PhysicalDeviceMaintenance4Properties;
  48038. struct PhysicalDeviceMemoryBudgetPropertiesEXT
  48039. {
  48040. using NativeType = VkPhysicalDeviceMemoryBudgetPropertiesEXT;
  48041. static const bool allowDuplicate = false;
  48042. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceMemoryBudgetPropertiesEXT;
  48043. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  48044. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceMemoryBudgetPropertiesEXT( std::array<VULKAN_HPP_NAMESPACE::DeviceSize, VK_MAX_MEMORY_HEAPS> const & heapBudget_ = {},
  48045. std::array<VULKAN_HPP_NAMESPACE::DeviceSize, VK_MAX_MEMORY_HEAPS> const & heapUsage_ = {},
  48046. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  48047. : pNext( pNext_ )
  48048. , heapBudget( heapBudget_ )
  48049. , heapUsage( heapUsage_ )
  48050. {
  48051. }
  48052. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceMemoryBudgetPropertiesEXT( PhysicalDeviceMemoryBudgetPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  48053. PhysicalDeviceMemoryBudgetPropertiesEXT( VkPhysicalDeviceMemoryBudgetPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  48054. : PhysicalDeviceMemoryBudgetPropertiesEXT( *reinterpret_cast<PhysicalDeviceMemoryBudgetPropertiesEXT const *>( &rhs ) )
  48055. {
  48056. }
  48057. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  48058. PhysicalDeviceMemoryBudgetPropertiesEXT & operator=( PhysicalDeviceMemoryBudgetPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  48059. PhysicalDeviceMemoryBudgetPropertiesEXT & operator=( VkPhysicalDeviceMemoryBudgetPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  48060. {
  48061. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryBudgetPropertiesEXT const *>( &rhs );
  48062. return *this;
  48063. }
  48064. operator VkPhysicalDeviceMemoryBudgetPropertiesEXT const &() const VULKAN_HPP_NOEXCEPT
  48065. {
  48066. return *reinterpret_cast<const VkPhysicalDeviceMemoryBudgetPropertiesEXT *>( this );
  48067. }
  48068. operator VkPhysicalDeviceMemoryBudgetPropertiesEXT &() VULKAN_HPP_NOEXCEPT
  48069. {
  48070. return *reinterpret_cast<VkPhysicalDeviceMemoryBudgetPropertiesEXT *>( this );
  48071. }
  48072. #if defined( VULKAN_HPP_USE_REFLECT )
  48073. # if 14 <= VULKAN_HPP_CPP_VERSION
  48074. auto
  48075. # else
  48076. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  48077. void * const &,
  48078. VULKAN_HPP_NAMESPACE::ArrayWrapper1D<VULKAN_HPP_NAMESPACE::DeviceSize, VK_MAX_MEMORY_HEAPS> const &,
  48079. VULKAN_HPP_NAMESPACE::ArrayWrapper1D<VULKAN_HPP_NAMESPACE::DeviceSize, VK_MAX_MEMORY_HEAPS> const &>
  48080. # endif
  48081. reflect() const VULKAN_HPP_NOEXCEPT
  48082. {
  48083. return std::tie( sType, pNext, heapBudget, heapUsage );
  48084. }
  48085. #endif
  48086. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  48087. auto operator<=>( PhysicalDeviceMemoryBudgetPropertiesEXT const & ) const = default;
  48088. #else
  48089. bool operator==( PhysicalDeviceMemoryBudgetPropertiesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  48090. {
  48091. # if defined( VULKAN_HPP_USE_REFLECT )
  48092. return this->reflect() == rhs.reflect();
  48093. # else
  48094. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( heapBudget == rhs.heapBudget ) && ( heapUsage == rhs.heapUsage );
  48095. # endif
  48096. }
  48097. bool operator!=( PhysicalDeviceMemoryBudgetPropertiesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  48098. {
  48099. return !operator==( rhs );
  48100. }
  48101. #endif
  48102. public:
  48103. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceMemoryBudgetPropertiesEXT;
  48104. void * pNext = {};
  48105. VULKAN_HPP_NAMESPACE::ArrayWrapper1D<VULKAN_HPP_NAMESPACE::DeviceSize, VK_MAX_MEMORY_HEAPS> heapBudget = {};
  48106. VULKAN_HPP_NAMESPACE::ArrayWrapper1D<VULKAN_HPP_NAMESPACE::DeviceSize, VK_MAX_MEMORY_HEAPS> heapUsage = {};
  48107. };
  48108. template <>
  48109. struct CppType<StructureType, StructureType::ePhysicalDeviceMemoryBudgetPropertiesEXT>
  48110. {
  48111. using Type = PhysicalDeviceMemoryBudgetPropertiesEXT;
  48112. };
  48113. struct PhysicalDeviceMemoryPriorityFeaturesEXT
  48114. {
  48115. using NativeType = VkPhysicalDeviceMemoryPriorityFeaturesEXT;
  48116. static const bool allowDuplicate = false;
  48117. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceMemoryPriorityFeaturesEXT;
  48118. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  48119. VULKAN_HPP_CONSTEXPR PhysicalDeviceMemoryPriorityFeaturesEXT( VULKAN_HPP_NAMESPACE::Bool32 memoryPriority_ = {},
  48120. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  48121. : pNext( pNext_ )
  48122. , memoryPriority( memoryPriority_ )
  48123. {
  48124. }
  48125. VULKAN_HPP_CONSTEXPR PhysicalDeviceMemoryPriorityFeaturesEXT( PhysicalDeviceMemoryPriorityFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  48126. PhysicalDeviceMemoryPriorityFeaturesEXT( VkPhysicalDeviceMemoryPriorityFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  48127. : PhysicalDeviceMemoryPriorityFeaturesEXT( *reinterpret_cast<PhysicalDeviceMemoryPriorityFeaturesEXT const *>( &rhs ) )
  48128. {
  48129. }
  48130. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  48131. PhysicalDeviceMemoryPriorityFeaturesEXT & operator=( PhysicalDeviceMemoryPriorityFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  48132. PhysicalDeviceMemoryPriorityFeaturesEXT & operator=( VkPhysicalDeviceMemoryPriorityFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  48133. {
  48134. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryPriorityFeaturesEXT const *>( &rhs );
  48135. return *this;
  48136. }
  48137. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  48138. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceMemoryPriorityFeaturesEXT & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
  48139. {
  48140. pNext = pNext_;
  48141. return *this;
  48142. }
  48143. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceMemoryPriorityFeaturesEXT & setMemoryPriority( VULKAN_HPP_NAMESPACE::Bool32 memoryPriority_ ) VULKAN_HPP_NOEXCEPT
  48144. {
  48145. memoryPriority = memoryPriority_;
  48146. return *this;
  48147. }
  48148. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  48149. operator VkPhysicalDeviceMemoryPriorityFeaturesEXT const &() const VULKAN_HPP_NOEXCEPT
  48150. {
  48151. return *reinterpret_cast<const VkPhysicalDeviceMemoryPriorityFeaturesEXT *>( this );
  48152. }
  48153. operator VkPhysicalDeviceMemoryPriorityFeaturesEXT &() VULKAN_HPP_NOEXCEPT
  48154. {
  48155. return *reinterpret_cast<VkPhysicalDeviceMemoryPriorityFeaturesEXT *>( this );
  48156. }
  48157. #if defined( VULKAN_HPP_USE_REFLECT )
  48158. # if 14 <= VULKAN_HPP_CPP_VERSION
  48159. auto
  48160. # else
  48161. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
  48162. # endif
  48163. reflect() const VULKAN_HPP_NOEXCEPT
  48164. {
  48165. return std::tie( sType, pNext, memoryPriority );
  48166. }
  48167. #endif
  48168. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  48169. auto operator<=>( PhysicalDeviceMemoryPriorityFeaturesEXT const & ) const = default;
  48170. #else
  48171. bool operator==( PhysicalDeviceMemoryPriorityFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  48172. {
  48173. # if defined( VULKAN_HPP_USE_REFLECT )
  48174. return this->reflect() == rhs.reflect();
  48175. # else
  48176. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( memoryPriority == rhs.memoryPriority );
  48177. # endif
  48178. }
  48179. bool operator!=( PhysicalDeviceMemoryPriorityFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  48180. {
  48181. return !operator==( rhs );
  48182. }
  48183. #endif
  48184. public:
  48185. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceMemoryPriorityFeaturesEXT;
  48186. void * pNext = {};
  48187. VULKAN_HPP_NAMESPACE::Bool32 memoryPriority = {};
  48188. };
  48189. template <>
  48190. struct CppType<StructureType, StructureType::ePhysicalDeviceMemoryPriorityFeaturesEXT>
  48191. {
  48192. using Type = PhysicalDeviceMemoryPriorityFeaturesEXT;
  48193. };
  48194. struct PhysicalDeviceMemoryProperties
  48195. {
  48196. using NativeType = VkPhysicalDeviceMemoryProperties;
  48197. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  48198. VULKAN_HPP_CONSTEXPR_14
  48199. PhysicalDeviceMemoryProperties( uint32_t memoryTypeCount_ = {},
  48200. std::array<VULKAN_HPP_NAMESPACE::MemoryType, VK_MAX_MEMORY_TYPES> const & memoryTypes_ = {},
  48201. uint32_t memoryHeapCount_ = {},
  48202. std::array<VULKAN_HPP_NAMESPACE::MemoryHeap, VK_MAX_MEMORY_HEAPS> const & memoryHeaps_ = {} ) VULKAN_HPP_NOEXCEPT
  48203. : memoryTypeCount( memoryTypeCount_ )
  48204. , memoryTypes( memoryTypes_ )
  48205. , memoryHeapCount( memoryHeapCount_ )
  48206. , memoryHeaps( memoryHeaps_ )
  48207. {
  48208. }
  48209. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceMemoryProperties( PhysicalDeviceMemoryProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  48210. PhysicalDeviceMemoryProperties( VkPhysicalDeviceMemoryProperties const & rhs ) VULKAN_HPP_NOEXCEPT
  48211. : PhysicalDeviceMemoryProperties( *reinterpret_cast<PhysicalDeviceMemoryProperties const *>( &rhs ) )
  48212. {
  48213. }
  48214. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  48215. PhysicalDeviceMemoryProperties & operator=( PhysicalDeviceMemoryProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  48216. PhysicalDeviceMemoryProperties & operator=( VkPhysicalDeviceMemoryProperties const & rhs ) VULKAN_HPP_NOEXCEPT
  48217. {
  48218. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties const *>( &rhs );
  48219. return *this;
  48220. }
  48221. operator VkPhysicalDeviceMemoryProperties const &() const VULKAN_HPP_NOEXCEPT
  48222. {
  48223. return *reinterpret_cast<const VkPhysicalDeviceMemoryProperties *>( this );
  48224. }
  48225. operator VkPhysicalDeviceMemoryProperties &() VULKAN_HPP_NOEXCEPT
  48226. {
  48227. return *reinterpret_cast<VkPhysicalDeviceMemoryProperties *>( this );
  48228. }
  48229. #if defined( VULKAN_HPP_USE_REFLECT )
  48230. # if 14 <= VULKAN_HPP_CPP_VERSION
  48231. auto
  48232. # else
  48233. std::tuple<uint32_t const &,
  48234. VULKAN_HPP_NAMESPACE::ArrayWrapper1D<VULKAN_HPP_NAMESPACE::MemoryType, VK_MAX_MEMORY_TYPES> const &,
  48235. uint32_t const &,
  48236. VULKAN_HPP_NAMESPACE::ArrayWrapper1D<VULKAN_HPP_NAMESPACE::MemoryHeap, VK_MAX_MEMORY_HEAPS> const &>
  48237. # endif
  48238. reflect() const VULKAN_HPP_NOEXCEPT
  48239. {
  48240. return std::tie( memoryTypeCount, memoryTypes, memoryHeapCount, memoryHeaps );
  48241. }
  48242. #endif
  48243. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  48244. auto operator<=>( PhysicalDeviceMemoryProperties const & ) const = default;
  48245. #else
  48246. bool operator==( PhysicalDeviceMemoryProperties const & rhs ) const VULKAN_HPP_NOEXCEPT
  48247. {
  48248. # if defined( VULKAN_HPP_USE_REFLECT )
  48249. return this->reflect() == rhs.reflect();
  48250. # else
  48251. return ( memoryTypeCount == rhs.memoryTypeCount ) && ( memoryTypes == rhs.memoryTypes ) && ( memoryHeapCount == rhs.memoryHeapCount ) &&
  48252. ( memoryHeaps == rhs.memoryHeaps );
  48253. # endif
  48254. }
  48255. bool operator!=( PhysicalDeviceMemoryProperties const & rhs ) const VULKAN_HPP_NOEXCEPT
  48256. {
  48257. return !operator==( rhs );
  48258. }
  48259. #endif
  48260. public:
  48261. uint32_t memoryTypeCount = {};
  48262. VULKAN_HPP_NAMESPACE::ArrayWrapper1D<VULKAN_HPP_NAMESPACE::MemoryType, VK_MAX_MEMORY_TYPES> memoryTypes = {};
  48263. uint32_t memoryHeapCount = {};
  48264. VULKAN_HPP_NAMESPACE::ArrayWrapper1D<VULKAN_HPP_NAMESPACE::MemoryHeap, VK_MAX_MEMORY_HEAPS> memoryHeaps = {};
  48265. };
  48266. struct PhysicalDeviceMemoryProperties2
  48267. {
  48268. using NativeType = VkPhysicalDeviceMemoryProperties2;
  48269. static const bool allowDuplicate = false;
  48270. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceMemoryProperties2;
  48271. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  48272. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceMemoryProperties2( VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties memoryProperties_ = {},
  48273. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  48274. : pNext( pNext_ )
  48275. , memoryProperties( memoryProperties_ )
  48276. {
  48277. }
  48278. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceMemoryProperties2( PhysicalDeviceMemoryProperties2 const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  48279. PhysicalDeviceMemoryProperties2( VkPhysicalDeviceMemoryProperties2 const & rhs ) VULKAN_HPP_NOEXCEPT
  48280. : PhysicalDeviceMemoryProperties2( *reinterpret_cast<PhysicalDeviceMemoryProperties2 const *>( &rhs ) )
  48281. {
  48282. }
  48283. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  48284. PhysicalDeviceMemoryProperties2 & operator=( PhysicalDeviceMemoryProperties2 const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  48285. PhysicalDeviceMemoryProperties2 & operator=( VkPhysicalDeviceMemoryProperties2 const & rhs ) VULKAN_HPP_NOEXCEPT
  48286. {
  48287. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties2 const *>( &rhs );
  48288. return *this;
  48289. }
  48290. operator VkPhysicalDeviceMemoryProperties2 const &() const VULKAN_HPP_NOEXCEPT
  48291. {
  48292. return *reinterpret_cast<const VkPhysicalDeviceMemoryProperties2 *>( this );
  48293. }
  48294. operator VkPhysicalDeviceMemoryProperties2 &() VULKAN_HPP_NOEXCEPT
  48295. {
  48296. return *reinterpret_cast<VkPhysicalDeviceMemoryProperties2 *>( this );
  48297. }
  48298. #if defined( VULKAN_HPP_USE_REFLECT )
  48299. # if 14 <= VULKAN_HPP_CPP_VERSION
  48300. auto
  48301. # else
  48302. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties const &>
  48303. # endif
  48304. reflect() const VULKAN_HPP_NOEXCEPT
  48305. {
  48306. return std::tie( sType, pNext, memoryProperties );
  48307. }
  48308. #endif
  48309. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  48310. auto operator<=>( PhysicalDeviceMemoryProperties2 const & ) const = default;
  48311. #else
  48312. bool operator==( PhysicalDeviceMemoryProperties2 const & rhs ) const VULKAN_HPP_NOEXCEPT
  48313. {
  48314. # if defined( VULKAN_HPP_USE_REFLECT )
  48315. return this->reflect() == rhs.reflect();
  48316. # else
  48317. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( memoryProperties == rhs.memoryProperties );
  48318. # endif
  48319. }
  48320. bool operator!=( PhysicalDeviceMemoryProperties2 const & rhs ) const VULKAN_HPP_NOEXCEPT
  48321. {
  48322. return !operator==( rhs );
  48323. }
  48324. #endif
  48325. public:
  48326. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceMemoryProperties2;
  48327. void * pNext = {};
  48328. VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties memoryProperties = {};
  48329. };
  48330. template <>
  48331. struct CppType<StructureType, StructureType::ePhysicalDeviceMemoryProperties2>
  48332. {
  48333. using Type = PhysicalDeviceMemoryProperties2;
  48334. };
  48335. using PhysicalDeviceMemoryProperties2KHR = PhysicalDeviceMemoryProperties2;
  48336. struct PhysicalDeviceMeshShaderFeaturesEXT
  48337. {
  48338. using NativeType = VkPhysicalDeviceMeshShaderFeaturesEXT;
  48339. static const bool allowDuplicate = false;
  48340. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceMeshShaderFeaturesEXT;
  48341. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  48342. VULKAN_HPP_CONSTEXPR PhysicalDeviceMeshShaderFeaturesEXT( VULKAN_HPP_NAMESPACE::Bool32 taskShader_ = {},
  48343. VULKAN_HPP_NAMESPACE::Bool32 meshShader_ = {},
  48344. VULKAN_HPP_NAMESPACE::Bool32 multiviewMeshShader_ = {},
  48345. VULKAN_HPP_NAMESPACE::Bool32 primitiveFragmentShadingRateMeshShader_ = {},
  48346. VULKAN_HPP_NAMESPACE::Bool32 meshShaderQueries_ = {},
  48347. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  48348. : pNext( pNext_ )
  48349. , taskShader( taskShader_ )
  48350. , meshShader( meshShader_ )
  48351. , multiviewMeshShader( multiviewMeshShader_ )
  48352. , primitiveFragmentShadingRateMeshShader( primitiveFragmentShadingRateMeshShader_ )
  48353. , meshShaderQueries( meshShaderQueries_ )
  48354. {
  48355. }
  48356. VULKAN_HPP_CONSTEXPR PhysicalDeviceMeshShaderFeaturesEXT( PhysicalDeviceMeshShaderFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  48357. PhysicalDeviceMeshShaderFeaturesEXT( VkPhysicalDeviceMeshShaderFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  48358. : PhysicalDeviceMeshShaderFeaturesEXT( *reinterpret_cast<PhysicalDeviceMeshShaderFeaturesEXT const *>( &rhs ) )
  48359. {
  48360. }
  48361. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  48362. PhysicalDeviceMeshShaderFeaturesEXT & operator=( PhysicalDeviceMeshShaderFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  48363. PhysicalDeviceMeshShaderFeaturesEXT & operator=( VkPhysicalDeviceMeshShaderFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  48364. {
  48365. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceMeshShaderFeaturesEXT const *>( &rhs );
  48366. return *this;
  48367. }
  48368. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  48369. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceMeshShaderFeaturesEXT & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
  48370. {
  48371. pNext = pNext_;
  48372. return *this;
  48373. }
  48374. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceMeshShaderFeaturesEXT & setTaskShader( VULKAN_HPP_NAMESPACE::Bool32 taskShader_ ) VULKAN_HPP_NOEXCEPT
  48375. {
  48376. taskShader = taskShader_;
  48377. return *this;
  48378. }
  48379. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceMeshShaderFeaturesEXT & setMeshShader( VULKAN_HPP_NAMESPACE::Bool32 meshShader_ ) VULKAN_HPP_NOEXCEPT
  48380. {
  48381. meshShader = meshShader_;
  48382. return *this;
  48383. }
  48384. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceMeshShaderFeaturesEXT &
  48385. setMultiviewMeshShader( VULKAN_HPP_NAMESPACE::Bool32 multiviewMeshShader_ ) VULKAN_HPP_NOEXCEPT
  48386. {
  48387. multiviewMeshShader = multiviewMeshShader_;
  48388. return *this;
  48389. }
  48390. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceMeshShaderFeaturesEXT &
  48391. setPrimitiveFragmentShadingRateMeshShader( VULKAN_HPP_NAMESPACE::Bool32 primitiveFragmentShadingRateMeshShader_ ) VULKAN_HPP_NOEXCEPT
  48392. {
  48393. primitiveFragmentShadingRateMeshShader = primitiveFragmentShadingRateMeshShader_;
  48394. return *this;
  48395. }
  48396. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceMeshShaderFeaturesEXT & setMeshShaderQueries( VULKAN_HPP_NAMESPACE::Bool32 meshShaderQueries_ ) VULKAN_HPP_NOEXCEPT
  48397. {
  48398. meshShaderQueries = meshShaderQueries_;
  48399. return *this;
  48400. }
  48401. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  48402. operator VkPhysicalDeviceMeshShaderFeaturesEXT const &() const VULKAN_HPP_NOEXCEPT
  48403. {
  48404. return *reinterpret_cast<const VkPhysicalDeviceMeshShaderFeaturesEXT *>( this );
  48405. }
  48406. operator VkPhysicalDeviceMeshShaderFeaturesEXT &() VULKAN_HPP_NOEXCEPT
  48407. {
  48408. return *reinterpret_cast<VkPhysicalDeviceMeshShaderFeaturesEXT *>( this );
  48409. }
  48410. #if defined( VULKAN_HPP_USE_REFLECT )
  48411. # if 14 <= VULKAN_HPP_CPP_VERSION
  48412. auto
  48413. # else
  48414. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  48415. void * const &,
  48416. VULKAN_HPP_NAMESPACE::Bool32 const &,
  48417. VULKAN_HPP_NAMESPACE::Bool32 const &,
  48418. VULKAN_HPP_NAMESPACE::Bool32 const &,
  48419. VULKAN_HPP_NAMESPACE::Bool32 const &,
  48420. VULKAN_HPP_NAMESPACE::Bool32 const &>
  48421. # endif
  48422. reflect() const VULKAN_HPP_NOEXCEPT
  48423. {
  48424. return std::tie( sType, pNext, taskShader, meshShader, multiviewMeshShader, primitiveFragmentShadingRateMeshShader, meshShaderQueries );
  48425. }
  48426. #endif
  48427. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  48428. auto operator<=>( PhysicalDeviceMeshShaderFeaturesEXT const & ) const = default;
  48429. #else
  48430. bool operator==( PhysicalDeviceMeshShaderFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  48431. {
  48432. # if defined( VULKAN_HPP_USE_REFLECT )
  48433. return this->reflect() == rhs.reflect();
  48434. # else
  48435. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( taskShader == rhs.taskShader ) && ( meshShader == rhs.meshShader ) &&
  48436. ( multiviewMeshShader == rhs.multiviewMeshShader ) && ( primitiveFragmentShadingRateMeshShader == rhs.primitiveFragmentShadingRateMeshShader ) &&
  48437. ( meshShaderQueries == rhs.meshShaderQueries );
  48438. # endif
  48439. }
  48440. bool operator!=( PhysicalDeviceMeshShaderFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  48441. {
  48442. return !operator==( rhs );
  48443. }
  48444. #endif
  48445. public:
  48446. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceMeshShaderFeaturesEXT;
  48447. void * pNext = {};
  48448. VULKAN_HPP_NAMESPACE::Bool32 taskShader = {};
  48449. VULKAN_HPP_NAMESPACE::Bool32 meshShader = {};
  48450. VULKAN_HPP_NAMESPACE::Bool32 multiviewMeshShader = {};
  48451. VULKAN_HPP_NAMESPACE::Bool32 primitiveFragmentShadingRateMeshShader = {};
  48452. VULKAN_HPP_NAMESPACE::Bool32 meshShaderQueries = {};
  48453. };
  48454. template <>
  48455. struct CppType<StructureType, StructureType::ePhysicalDeviceMeshShaderFeaturesEXT>
  48456. {
  48457. using Type = PhysicalDeviceMeshShaderFeaturesEXT;
  48458. };
  48459. struct PhysicalDeviceMeshShaderFeaturesNV
  48460. {
  48461. using NativeType = VkPhysicalDeviceMeshShaderFeaturesNV;
  48462. static const bool allowDuplicate = false;
  48463. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceMeshShaderFeaturesNV;
  48464. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  48465. VULKAN_HPP_CONSTEXPR PhysicalDeviceMeshShaderFeaturesNV( VULKAN_HPP_NAMESPACE::Bool32 taskShader_ = {},
  48466. VULKAN_HPP_NAMESPACE::Bool32 meshShader_ = {},
  48467. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  48468. : pNext( pNext_ )
  48469. , taskShader( taskShader_ )
  48470. , meshShader( meshShader_ )
  48471. {
  48472. }
  48473. VULKAN_HPP_CONSTEXPR PhysicalDeviceMeshShaderFeaturesNV( PhysicalDeviceMeshShaderFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  48474. PhysicalDeviceMeshShaderFeaturesNV( VkPhysicalDeviceMeshShaderFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT
  48475. : PhysicalDeviceMeshShaderFeaturesNV( *reinterpret_cast<PhysicalDeviceMeshShaderFeaturesNV const *>( &rhs ) )
  48476. {
  48477. }
  48478. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  48479. PhysicalDeviceMeshShaderFeaturesNV & operator=( PhysicalDeviceMeshShaderFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  48480. PhysicalDeviceMeshShaderFeaturesNV & operator=( VkPhysicalDeviceMeshShaderFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT
  48481. {
  48482. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceMeshShaderFeaturesNV const *>( &rhs );
  48483. return *this;
  48484. }
  48485. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  48486. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceMeshShaderFeaturesNV & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
  48487. {
  48488. pNext = pNext_;
  48489. return *this;
  48490. }
  48491. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceMeshShaderFeaturesNV & setTaskShader( VULKAN_HPP_NAMESPACE::Bool32 taskShader_ ) VULKAN_HPP_NOEXCEPT
  48492. {
  48493. taskShader = taskShader_;
  48494. return *this;
  48495. }
  48496. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceMeshShaderFeaturesNV & setMeshShader( VULKAN_HPP_NAMESPACE::Bool32 meshShader_ ) VULKAN_HPP_NOEXCEPT
  48497. {
  48498. meshShader = meshShader_;
  48499. return *this;
  48500. }
  48501. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  48502. operator VkPhysicalDeviceMeshShaderFeaturesNV const &() const VULKAN_HPP_NOEXCEPT
  48503. {
  48504. return *reinterpret_cast<const VkPhysicalDeviceMeshShaderFeaturesNV *>( this );
  48505. }
  48506. operator VkPhysicalDeviceMeshShaderFeaturesNV &() VULKAN_HPP_NOEXCEPT
  48507. {
  48508. return *reinterpret_cast<VkPhysicalDeviceMeshShaderFeaturesNV *>( this );
  48509. }
  48510. #if defined( VULKAN_HPP_USE_REFLECT )
  48511. # if 14 <= VULKAN_HPP_CPP_VERSION
  48512. auto
  48513. # else
  48514. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
  48515. # endif
  48516. reflect() const VULKAN_HPP_NOEXCEPT
  48517. {
  48518. return std::tie( sType, pNext, taskShader, meshShader );
  48519. }
  48520. #endif
  48521. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  48522. auto operator<=>( PhysicalDeviceMeshShaderFeaturesNV const & ) const = default;
  48523. #else
  48524. bool operator==( PhysicalDeviceMeshShaderFeaturesNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  48525. {
  48526. # if defined( VULKAN_HPP_USE_REFLECT )
  48527. return this->reflect() == rhs.reflect();
  48528. # else
  48529. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( taskShader == rhs.taskShader ) && ( meshShader == rhs.meshShader );
  48530. # endif
  48531. }
  48532. bool operator!=( PhysicalDeviceMeshShaderFeaturesNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  48533. {
  48534. return !operator==( rhs );
  48535. }
  48536. #endif
  48537. public:
  48538. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceMeshShaderFeaturesNV;
  48539. void * pNext = {};
  48540. VULKAN_HPP_NAMESPACE::Bool32 taskShader = {};
  48541. VULKAN_HPP_NAMESPACE::Bool32 meshShader = {};
  48542. };
  48543. template <>
  48544. struct CppType<StructureType, StructureType::ePhysicalDeviceMeshShaderFeaturesNV>
  48545. {
  48546. using Type = PhysicalDeviceMeshShaderFeaturesNV;
  48547. };
  48548. struct PhysicalDeviceMeshShaderPropertiesEXT
  48549. {
  48550. using NativeType = VkPhysicalDeviceMeshShaderPropertiesEXT;
  48551. static const bool allowDuplicate = false;
  48552. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceMeshShaderPropertiesEXT;
  48553. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  48554. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceMeshShaderPropertiesEXT( uint32_t maxTaskWorkGroupTotalCount_ = {},
  48555. std::array<uint32_t, 3> const & maxTaskWorkGroupCount_ = {},
  48556. uint32_t maxTaskWorkGroupInvocations_ = {},
  48557. std::array<uint32_t, 3> const & maxTaskWorkGroupSize_ = {},
  48558. uint32_t maxTaskPayloadSize_ = {},
  48559. uint32_t maxTaskSharedMemorySize_ = {},
  48560. uint32_t maxTaskPayloadAndSharedMemorySize_ = {},
  48561. uint32_t maxMeshWorkGroupTotalCount_ = {},
  48562. std::array<uint32_t, 3> const & maxMeshWorkGroupCount_ = {},
  48563. uint32_t maxMeshWorkGroupInvocations_ = {},
  48564. std::array<uint32_t, 3> const & maxMeshWorkGroupSize_ = {},
  48565. uint32_t maxMeshSharedMemorySize_ = {},
  48566. uint32_t maxMeshPayloadAndSharedMemorySize_ = {},
  48567. uint32_t maxMeshOutputMemorySize_ = {},
  48568. uint32_t maxMeshPayloadAndOutputMemorySize_ = {},
  48569. uint32_t maxMeshOutputComponents_ = {},
  48570. uint32_t maxMeshOutputVertices_ = {},
  48571. uint32_t maxMeshOutputPrimitives_ = {},
  48572. uint32_t maxMeshOutputLayers_ = {},
  48573. uint32_t maxMeshMultiviewViewCount_ = {},
  48574. uint32_t meshOutputPerVertexGranularity_ = {},
  48575. uint32_t meshOutputPerPrimitiveGranularity_ = {},
  48576. uint32_t maxPreferredTaskWorkGroupInvocations_ = {},
  48577. uint32_t maxPreferredMeshWorkGroupInvocations_ = {},
  48578. VULKAN_HPP_NAMESPACE::Bool32 prefersLocalInvocationVertexOutput_ = {},
  48579. VULKAN_HPP_NAMESPACE::Bool32 prefersLocalInvocationPrimitiveOutput_ = {},
  48580. VULKAN_HPP_NAMESPACE::Bool32 prefersCompactVertexOutput_ = {},
  48581. VULKAN_HPP_NAMESPACE::Bool32 prefersCompactPrimitiveOutput_ = {},
  48582. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  48583. : pNext( pNext_ )
  48584. , maxTaskWorkGroupTotalCount( maxTaskWorkGroupTotalCount_ )
  48585. , maxTaskWorkGroupCount( maxTaskWorkGroupCount_ )
  48586. , maxTaskWorkGroupInvocations( maxTaskWorkGroupInvocations_ )
  48587. , maxTaskWorkGroupSize( maxTaskWorkGroupSize_ )
  48588. , maxTaskPayloadSize( maxTaskPayloadSize_ )
  48589. , maxTaskSharedMemorySize( maxTaskSharedMemorySize_ )
  48590. , maxTaskPayloadAndSharedMemorySize( maxTaskPayloadAndSharedMemorySize_ )
  48591. , maxMeshWorkGroupTotalCount( maxMeshWorkGroupTotalCount_ )
  48592. , maxMeshWorkGroupCount( maxMeshWorkGroupCount_ )
  48593. , maxMeshWorkGroupInvocations( maxMeshWorkGroupInvocations_ )
  48594. , maxMeshWorkGroupSize( maxMeshWorkGroupSize_ )
  48595. , maxMeshSharedMemorySize( maxMeshSharedMemorySize_ )
  48596. , maxMeshPayloadAndSharedMemorySize( maxMeshPayloadAndSharedMemorySize_ )
  48597. , maxMeshOutputMemorySize( maxMeshOutputMemorySize_ )
  48598. , maxMeshPayloadAndOutputMemorySize( maxMeshPayloadAndOutputMemorySize_ )
  48599. , maxMeshOutputComponents( maxMeshOutputComponents_ )
  48600. , maxMeshOutputVertices( maxMeshOutputVertices_ )
  48601. , maxMeshOutputPrimitives( maxMeshOutputPrimitives_ )
  48602. , maxMeshOutputLayers( maxMeshOutputLayers_ )
  48603. , maxMeshMultiviewViewCount( maxMeshMultiviewViewCount_ )
  48604. , meshOutputPerVertexGranularity( meshOutputPerVertexGranularity_ )
  48605. , meshOutputPerPrimitiveGranularity( meshOutputPerPrimitiveGranularity_ )
  48606. , maxPreferredTaskWorkGroupInvocations( maxPreferredTaskWorkGroupInvocations_ )
  48607. , maxPreferredMeshWorkGroupInvocations( maxPreferredMeshWorkGroupInvocations_ )
  48608. , prefersLocalInvocationVertexOutput( prefersLocalInvocationVertexOutput_ )
  48609. , prefersLocalInvocationPrimitiveOutput( prefersLocalInvocationPrimitiveOutput_ )
  48610. , prefersCompactVertexOutput( prefersCompactVertexOutput_ )
  48611. , prefersCompactPrimitiveOutput( prefersCompactPrimitiveOutput_ )
  48612. {
  48613. }
  48614. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceMeshShaderPropertiesEXT( PhysicalDeviceMeshShaderPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  48615. PhysicalDeviceMeshShaderPropertiesEXT( VkPhysicalDeviceMeshShaderPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  48616. : PhysicalDeviceMeshShaderPropertiesEXT( *reinterpret_cast<PhysicalDeviceMeshShaderPropertiesEXT const *>( &rhs ) )
  48617. {
  48618. }
  48619. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  48620. PhysicalDeviceMeshShaderPropertiesEXT & operator=( PhysicalDeviceMeshShaderPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  48621. PhysicalDeviceMeshShaderPropertiesEXT & operator=( VkPhysicalDeviceMeshShaderPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  48622. {
  48623. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceMeshShaderPropertiesEXT const *>( &rhs );
  48624. return *this;
  48625. }
  48626. operator VkPhysicalDeviceMeshShaderPropertiesEXT const &() const VULKAN_HPP_NOEXCEPT
  48627. {
  48628. return *reinterpret_cast<const VkPhysicalDeviceMeshShaderPropertiesEXT *>( this );
  48629. }
  48630. operator VkPhysicalDeviceMeshShaderPropertiesEXT &() VULKAN_HPP_NOEXCEPT
  48631. {
  48632. return *reinterpret_cast<VkPhysicalDeviceMeshShaderPropertiesEXT *>( this );
  48633. }
  48634. #if defined( VULKAN_HPP_USE_REFLECT )
  48635. # if 14 <= VULKAN_HPP_CPP_VERSION
  48636. auto
  48637. # else
  48638. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  48639. void * const &,
  48640. uint32_t const &,
  48641. VULKAN_HPP_NAMESPACE::ArrayWrapper1D<uint32_t, 3> const &,
  48642. uint32_t const &,
  48643. VULKAN_HPP_NAMESPACE::ArrayWrapper1D<uint32_t, 3> const &,
  48644. uint32_t const &,
  48645. uint32_t const &,
  48646. uint32_t const &,
  48647. uint32_t const &,
  48648. VULKAN_HPP_NAMESPACE::ArrayWrapper1D<uint32_t, 3> const &,
  48649. uint32_t const &,
  48650. VULKAN_HPP_NAMESPACE::ArrayWrapper1D<uint32_t, 3> const &,
  48651. uint32_t const &,
  48652. uint32_t const &,
  48653. uint32_t const &,
  48654. uint32_t const &,
  48655. uint32_t const &,
  48656. uint32_t const &,
  48657. uint32_t const &,
  48658. uint32_t const &,
  48659. uint32_t const &,
  48660. uint32_t const &,
  48661. uint32_t const &,
  48662. uint32_t const &,
  48663. uint32_t const &,
  48664. VULKAN_HPP_NAMESPACE::Bool32 const &,
  48665. VULKAN_HPP_NAMESPACE::Bool32 const &,
  48666. VULKAN_HPP_NAMESPACE::Bool32 const &,
  48667. VULKAN_HPP_NAMESPACE::Bool32 const &>
  48668. # endif
  48669. reflect() const VULKAN_HPP_NOEXCEPT
  48670. {
  48671. return std::tie( sType,
  48672. pNext,
  48673. maxTaskWorkGroupTotalCount,
  48674. maxTaskWorkGroupCount,
  48675. maxTaskWorkGroupInvocations,
  48676. maxTaskWorkGroupSize,
  48677. maxTaskPayloadSize,
  48678. maxTaskSharedMemorySize,
  48679. maxTaskPayloadAndSharedMemorySize,
  48680. maxMeshWorkGroupTotalCount,
  48681. maxMeshWorkGroupCount,
  48682. maxMeshWorkGroupInvocations,
  48683. maxMeshWorkGroupSize,
  48684. maxMeshSharedMemorySize,
  48685. maxMeshPayloadAndSharedMemorySize,
  48686. maxMeshOutputMemorySize,
  48687. maxMeshPayloadAndOutputMemorySize,
  48688. maxMeshOutputComponents,
  48689. maxMeshOutputVertices,
  48690. maxMeshOutputPrimitives,
  48691. maxMeshOutputLayers,
  48692. maxMeshMultiviewViewCount,
  48693. meshOutputPerVertexGranularity,
  48694. meshOutputPerPrimitiveGranularity,
  48695. maxPreferredTaskWorkGroupInvocations,
  48696. maxPreferredMeshWorkGroupInvocations,
  48697. prefersLocalInvocationVertexOutput,
  48698. prefersLocalInvocationPrimitiveOutput,
  48699. prefersCompactVertexOutput,
  48700. prefersCompactPrimitiveOutput );
  48701. }
  48702. #endif
  48703. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  48704. auto operator<=>( PhysicalDeviceMeshShaderPropertiesEXT const & ) const = default;
  48705. #else
  48706. bool operator==( PhysicalDeviceMeshShaderPropertiesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  48707. {
  48708. # if defined( VULKAN_HPP_USE_REFLECT )
  48709. return this->reflect() == rhs.reflect();
  48710. # else
  48711. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( maxTaskWorkGroupTotalCount == rhs.maxTaskWorkGroupTotalCount ) &&
  48712. ( maxTaskWorkGroupCount == rhs.maxTaskWorkGroupCount ) && ( maxTaskWorkGroupInvocations == rhs.maxTaskWorkGroupInvocations ) &&
  48713. ( maxTaskWorkGroupSize == rhs.maxTaskWorkGroupSize ) && ( maxTaskPayloadSize == rhs.maxTaskPayloadSize ) &&
  48714. ( maxTaskSharedMemorySize == rhs.maxTaskSharedMemorySize ) && ( maxTaskPayloadAndSharedMemorySize == rhs.maxTaskPayloadAndSharedMemorySize ) &&
  48715. ( maxMeshWorkGroupTotalCount == rhs.maxMeshWorkGroupTotalCount ) && ( maxMeshWorkGroupCount == rhs.maxMeshWorkGroupCount ) &&
  48716. ( maxMeshWorkGroupInvocations == rhs.maxMeshWorkGroupInvocations ) && ( maxMeshWorkGroupSize == rhs.maxMeshWorkGroupSize ) &&
  48717. ( maxMeshSharedMemorySize == rhs.maxMeshSharedMemorySize ) && ( maxMeshPayloadAndSharedMemorySize == rhs.maxMeshPayloadAndSharedMemorySize ) &&
  48718. ( maxMeshOutputMemorySize == rhs.maxMeshOutputMemorySize ) && ( maxMeshPayloadAndOutputMemorySize == rhs.maxMeshPayloadAndOutputMemorySize ) &&
  48719. ( maxMeshOutputComponents == rhs.maxMeshOutputComponents ) && ( maxMeshOutputVertices == rhs.maxMeshOutputVertices ) &&
  48720. ( maxMeshOutputPrimitives == rhs.maxMeshOutputPrimitives ) && ( maxMeshOutputLayers == rhs.maxMeshOutputLayers ) &&
  48721. ( maxMeshMultiviewViewCount == rhs.maxMeshMultiviewViewCount ) && ( meshOutputPerVertexGranularity == rhs.meshOutputPerVertexGranularity ) &&
  48722. ( meshOutputPerPrimitiveGranularity == rhs.meshOutputPerPrimitiveGranularity ) &&
  48723. ( maxPreferredTaskWorkGroupInvocations == rhs.maxPreferredTaskWorkGroupInvocations ) &&
  48724. ( maxPreferredMeshWorkGroupInvocations == rhs.maxPreferredMeshWorkGroupInvocations ) &&
  48725. ( prefersLocalInvocationVertexOutput == rhs.prefersLocalInvocationVertexOutput ) &&
  48726. ( prefersLocalInvocationPrimitiveOutput == rhs.prefersLocalInvocationPrimitiveOutput ) &&
  48727. ( prefersCompactVertexOutput == rhs.prefersCompactVertexOutput ) && ( prefersCompactPrimitiveOutput == rhs.prefersCompactPrimitiveOutput );
  48728. # endif
  48729. }
  48730. bool operator!=( PhysicalDeviceMeshShaderPropertiesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  48731. {
  48732. return !operator==( rhs );
  48733. }
  48734. #endif
  48735. public:
  48736. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceMeshShaderPropertiesEXT;
  48737. void * pNext = {};
  48738. uint32_t maxTaskWorkGroupTotalCount = {};
  48739. VULKAN_HPP_NAMESPACE::ArrayWrapper1D<uint32_t, 3> maxTaskWorkGroupCount = {};
  48740. uint32_t maxTaskWorkGroupInvocations = {};
  48741. VULKAN_HPP_NAMESPACE::ArrayWrapper1D<uint32_t, 3> maxTaskWorkGroupSize = {};
  48742. uint32_t maxTaskPayloadSize = {};
  48743. uint32_t maxTaskSharedMemorySize = {};
  48744. uint32_t maxTaskPayloadAndSharedMemorySize = {};
  48745. uint32_t maxMeshWorkGroupTotalCount = {};
  48746. VULKAN_HPP_NAMESPACE::ArrayWrapper1D<uint32_t, 3> maxMeshWorkGroupCount = {};
  48747. uint32_t maxMeshWorkGroupInvocations = {};
  48748. VULKAN_HPP_NAMESPACE::ArrayWrapper1D<uint32_t, 3> maxMeshWorkGroupSize = {};
  48749. uint32_t maxMeshSharedMemorySize = {};
  48750. uint32_t maxMeshPayloadAndSharedMemorySize = {};
  48751. uint32_t maxMeshOutputMemorySize = {};
  48752. uint32_t maxMeshPayloadAndOutputMemorySize = {};
  48753. uint32_t maxMeshOutputComponents = {};
  48754. uint32_t maxMeshOutputVertices = {};
  48755. uint32_t maxMeshOutputPrimitives = {};
  48756. uint32_t maxMeshOutputLayers = {};
  48757. uint32_t maxMeshMultiviewViewCount = {};
  48758. uint32_t meshOutputPerVertexGranularity = {};
  48759. uint32_t meshOutputPerPrimitiveGranularity = {};
  48760. uint32_t maxPreferredTaskWorkGroupInvocations = {};
  48761. uint32_t maxPreferredMeshWorkGroupInvocations = {};
  48762. VULKAN_HPP_NAMESPACE::Bool32 prefersLocalInvocationVertexOutput = {};
  48763. VULKAN_HPP_NAMESPACE::Bool32 prefersLocalInvocationPrimitiveOutput = {};
  48764. VULKAN_HPP_NAMESPACE::Bool32 prefersCompactVertexOutput = {};
  48765. VULKAN_HPP_NAMESPACE::Bool32 prefersCompactPrimitiveOutput = {};
  48766. };
  48767. template <>
  48768. struct CppType<StructureType, StructureType::ePhysicalDeviceMeshShaderPropertiesEXT>
  48769. {
  48770. using Type = PhysicalDeviceMeshShaderPropertiesEXT;
  48771. };
  48772. struct PhysicalDeviceMeshShaderPropertiesNV
  48773. {
  48774. using NativeType = VkPhysicalDeviceMeshShaderPropertiesNV;
  48775. static const bool allowDuplicate = false;
  48776. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceMeshShaderPropertiesNV;
  48777. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  48778. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceMeshShaderPropertiesNV( uint32_t maxDrawMeshTasksCount_ = {},
  48779. uint32_t maxTaskWorkGroupInvocations_ = {},
  48780. std::array<uint32_t, 3> const & maxTaskWorkGroupSize_ = {},
  48781. uint32_t maxTaskTotalMemorySize_ = {},
  48782. uint32_t maxTaskOutputCount_ = {},
  48783. uint32_t maxMeshWorkGroupInvocations_ = {},
  48784. std::array<uint32_t, 3> const & maxMeshWorkGroupSize_ = {},
  48785. uint32_t maxMeshTotalMemorySize_ = {},
  48786. uint32_t maxMeshOutputVertices_ = {},
  48787. uint32_t maxMeshOutputPrimitives_ = {},
  48788. uint32_t maxMeshMultiviewViewCount_ = {},
  48789. uint32_t meshOutputPerVertexGranularity_ = {},
  48790. uint32_t meshOutputPerPrimitiveGranularity_ = {},
  48791. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  48792. : pNext( pNext_ )
  48793. , maxDrawMeshTasksCount( maxDrawMeshTasksCount_ )
  48794. , maxTaskWorkGroupInvocations( maxTaskWorkGroupInvocations_ )
  48795. , maxTaskWorkGroupSize( maxTaskWorkGroupSize_ )
  48796. , maxTaskTotalMemorySize( maxTaskTotalMemorySize_ )
  48797. , maxTaskOutputCount( maxTaskOutputCount_ )
  48798. , maxMeshWorkGroupInvocations( maxMeshWorkGroupInvocations_ )
  48799. , maxMeshWorkGroupSize( maxMeshWorkGroupSize_ )
  48800. , maxMeshTotalMemorySize( maxMeshTotalMemorySize_ )
  48801. , maxMeshOutputVertices( maxMeshOutputVertices_ )
  48802. , maxMeshOutputPrimitives( maxMeshOutputPrimitives_ )
  48803. , maxMeshMultiviewViewCount( maxMeshMultiviewViewCount_ )
  48804. , meshOutputPerVertexGranularity( meshOutputPerVertexGranularity_ )
  48805. , meshOutputPerPrimitiveGranularity( meshOutputPerPrimitiveGranularity_ )
  48806. {
  48807. }
  48808. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceMeshShaderPropertiesNV( PhysicalDeviceMeshShaderPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  48809. PhysicalDeviceMeshShaderPropertiesNV( VkPhysicalDeviceMeshShaderPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT
  48810. : PhysicalDeviceMeshShaderPropertiesNV( *reinterpret_cast<PhysicalDeviceMeshShaderPropertiesNV const *>( &rhs ) )
  48811. {
  48812. }
  48813. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  48814. PhysicalDeviceMeshShaderPropertiesNV & operator=( PhysicalDeviceMeshShaderPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  48815. PhysicalDeviceMeshShaderPropertiesNV & operator=( VkPhysicalDeviceMeshShaderPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT
  48816. {
  48817. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceMeshShaderPropertiesNV const *>( &rhs );
  48818. return *this;
  48819. }
  48820. operator VkPhysicalDeviceMeshShaderPropertiesNV const &() const VULKAN_HPP_NOEXCEPT
  48821. {
  48822. return *reinterpret_cast<const VkPhysicalDeviceMeshShaderPropertiesNV *>( this );
  48823. }
  48824. operator VkPhysicalDeviceMeshShaderPropertiesNV &() VULKAN_HPP_NOEXCEPT
  48825. {
  48826. return *reinterpret_cast<VkPhysicalDeviceMeshShaderPropertiesNV *>( this );
  48827. }
  48828. #if defined( VULKAN_HPP_USE_REFLECT )
  48829. # if 14 <= VULKAN_HPP_CPP_VERSION
  48830. auto
  48831. # else
  48832. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  48833. void * const &,
  48834. uint32_t const &,
  48835. uint32_t const &,
  48836. VULKAN_HPP_NAMESPACE::ArrayWrapper1D<uint32_t, 3> const &,
  48837. uint32_t const &,
  48838. uint32_t const &,
  48839. uint32_t const &,
  48840. VULKAN_HPP_NAMESPACE::ArrayWrapper1D<uint32_t, 3> const &,
  48841. uint32_t const &,
  48842. uint32_t const &,
  48843. uint32_t const &,
  48844. uint32_t const &,
  48845. uint32_t const &,
  48846. uint32_t const &>
  48847. # endif
  48848. reflect() const VULKAN_HPP_NOEXCEPT
  48849. {
  48850. return std::tie( sType,
  48851. pNext,
  48852. maxDrawMeshTasksCount,
  48853. maxTaskWorkGroupInvocations,
  48854. maxTaskWorkGroupSize,
  48855. maxTaskTotalMemorySize,
  48856. maxTaskOutputCount,
  48857. maxMeshWorkGroupInvocations,
  48858. maxMeshWorkGroupSize,
  48859. maxMeshTotalMemorySize,
  48860. maxMeshOutputVertices,
  48861. maxMeshOutputPrimitives,
  48862. maxMeshMultiviewViewCount,
  48863. meshOutputPerVertexGranularity,
  48864. meshOutputPerPrimitiveGranularity );
  48865. }
  48866. #endif
  48867. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  48868. auto operator<=>( PhysicalDeviceMeshShaderPropertiesNV const & ) const = default;
  48869. #else
  48870. bool operator==( PhysicalDeviceMeshShaderPropertiesNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  48871. {
  48872. # if defined( VULKAN_HPP_USE_REFLECT )
  48873. return this->reflect() == rhs.reflect();
  48874. # else
  48875. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( maxDrawMeshTasksCount == rhs.maxDrawMeshTasksCount ) &&
  48876. ( maxTaskWorkGroupInvocations == rhs.maxTaskWorkGroupInvocations ) && ( maxTaskWorkGroupSize == rhs.maxTaskWorkGroupSize ) &&
  48877. ( maxTaskTotalMemorySize == rhs.maxTaskTotalMemorySize ) && ( maxTaskOutputCount == rhs.maxTaskOutputCount ) &&
  48878. ( maxMeshWorkGroupInvocations == rhs.maxMeshWorkGroupInvocations ) && ( maxMeshWorkGroupSize == rhs.maxMeshWorkGroupSize ) &&
  48879. ( maxMeshTotalMemorySize == rhs.maxMeshTotalMemorySize ) && ( maxMeshOutputVertices == rhs.maxMeshOutputVertices ) &&
  48880. ( maxMeshOutputPrimitives == rhs.maxMeshOutputPrimitives ) && ( maxMeshMultiviewViewCount == rhs.maxMeshMultiviewViewCount ) &&
  48881. ( meshOutputPerVertexGranularity == rhs.meshOutputPerVertexGranularity ) &&
  48882. ( meshOutputPerPrimitiveGranularity == rhs.meshOutputPerPrimitiveGranularity );
  48883. # endif
  48884. }
  48885. bool operator!=( PhysicalDeviceMeshShaderPropertiesNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  48886. {
  48887. return !operator==( rhs );
  48888. }
  48889. #endif
  48890. public:
  48891. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceMeshShaderPropertiesNV;
  48892. void * pNext = {};
  48893. uint32_t maxDrawMeshTasksCount = {};
  48894. uint32_t maxTaskWorkGroupInvocations = {};
  48895. VULKAN_HPP_NAMESPACE::ArrayWrapper1D<uint32_t, 3> maxTaskWorkGroupSize = {};
  48896. uint32_t maxTaskTotalMemorySize = {};
  48897. uint32_t maxTaskOutputCount = {};
  48898. uint32_t maxMeshWorkGroupInvocations = {};
  48899. VULKAN_HPP_NAMESPACE::ArrayWrapper1D<uint32_t, 3> maxMeshWorkGroupSize = {};
  48900. uint32_t maxMeshTotalMemorySize = {};
  48901. uint32_t maxMeshOutputVertices = {};
  48902. uint32_t maxMeshOutputPrimitives = {};
  48903. uint32_t maxMeshMultiviewViewCount = {};
  48904. uint32_t meshOutputPerVertexGranularity = {};
  48905. uint32_t meshOutputPerPrimitiveGranularity = {};
  48906. };
  48907. template <>
  48908. struct CppType<StructureType, StructureType::ePhysicalDeviceMeshShaderPropertiesNV>
  48909. {
  48910. using Type = PhysicalDeviceMeshShaderPropertiesNV;
  48911. };
  48912. struct PhysicalDeviceMultiDrawFeaturesEXT
  48913. {
  48914. using NativeType = VkPhysicalDeviceMultiDrawFeaturesEXT;
  48915. static const bool allowDuplicate = false;
  48916. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceMultiDrawFeaturesEXT;
  48917. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  48918. VULKAN_HPP_CONSTEXPR PhysicalDeviceMultiDrawFeaturesEXT( VULKAN_HPP_NAMESPACE::Bool32 multiDraw_ = {}, void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  48919. : pNext( pNext_ )
  48920. , multiDraw( multiDraw_ )
  48921. {
  48922. }
  48923. VULKAN_HPP_CONSTEXPR PhysicalDeviceMultiDrawFeaturesEXT( PhysicalDeviceMultiDrawFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  48924. PhysicalDeviceMultiDrawFeaturesEXT( VkPhysicalDeviceMultiDrawFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  48925. : PhysicalDeviceMultiDrawFeaturesEXT( *reinterpret_cast<PhysicalDeviceMultiDrawFeaturesEXT const *>( &rhs ) )
  48926. {
  48927. }
  48928. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  48929. PhysicalDeviceMultiDrawFeaturesEXT & operator=( PhysicalDeviceMultiDrawFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  48930. PhysicalDeviceMultiDrawFeaturesEXT & operator=( VkPhysicalDeviceMultiDrawFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  48931. {
  48932. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceMultiDrawFeaturesEXT const *>( &rhs );
  48933. return *this;
  48934. }
  48935. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  48936. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceMultiDrawFeaturesEXT & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
  48937. {
  48938. pNext = pNext_;
  48939. return *this;
  48940. }
  48941. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceMultiDrawFeaturesEXT & setMultiDraw( VULKAN_HPP_NAMESPACE::Bool32 multiDraw_ ) VULKAN_HPP_NOEXCEPT
  48942. {
  48943. multiDraw = multiDraw_;
  48944. return *this;
  48945. }
  48946. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  48947. operator VkPhysicalDeviceMultiDrawFeaturesEXT const &() const VULKAN_HPP_NOEXCEPT
  48948. {
  48949. return *reinterpret_cast<const VkPhysicalDeviceMultiDrawFeaturesEXT *>( this );
  48950. }
  48951. operator VkPhysicalDeviceMultiDrawFeaturesEXT &() VULKAN_HPP_NOEXCEPT
  48952. {
  48953. return *reinterpret_cast<VkPhysicalDeviceMultiDrawFeaturesEXT *>( this );
  48954. }
  48955. #if defined( VULKAN_HPP_USE_REFLECT )
  48956. # if 14 <= VULKAN_HPP_CPP_VERSION
  48957. auto
  48958. # else
  48959. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
  48960. # endif
  48961. reflect() const VULKAN_HPP_NOEXCEPT
  48962. {
  48963. return std::tie( sType, pNext, multiDraw );
  48964. }
  48965. #endif
  48966. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  48967. auto operator<=>( PhysicalDeviceMultiDrawFeaturesEXT const & ) const = default;
  48968. #else
  48969. bool operator==( PhysicalDeviceMultiDrawFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  48970. {
  48971. # if defined( VULKAN_HPP_USE_REFLECT )
  48972. return this->reflect() == rhs.reflect();
  48973. # else
  48974. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( multiDraw == rhs.multiDraw );
  48975. # endif
  48976. }
  48977. bool operator!=( PhysicalDeviceMultiDrawFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  48978. {
  48979. return !operator==( rhs );
  48980. }
  48981. #endif
  48982. public:
  48983. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceMultiDrawFeaturesEXT;
  48984. void * pNext = {};
  48985. VULKAN_HPP_NAMESPACE::Bool32 multiDraw = {};
  48986. };
  48987. template <>
  48988. struct CppType<StructureType, StructureType::ePhysicalDeviceMultiDrawFeaturesEXT>
  48989. {
  48990. using Type = PhysicalDeviceMultiDrawFeaturesEXT;
  48991. };
  48992. struct PhysicalDeviceMultiDrawPropertiesEXT
  48993. {
  48994. using NativeType = VkPhysicalDeviceMultiDrawPropertiesEXT;
  48995. static const bool allowDuplicate = false;
  48996. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceMultiDrawPropertiesEXT;
  48997. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  48998. VULKAN_HPP_CONSTEXPR PhysicalDeviceMultiDrawPropertiesEXT( uint32_t maxMultiDrawCount_ = {}, void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  48999. : pNext( pNext_ )
  49000. , maxMultiDrawCount( maxMultiDrawCount_ )
  49001. {
  49002. }
  49003. VULKAN_HPP_CONSTEXPR PhysicalDeviceMultiDrawPropertiesEXT( PhysicalDeviceMultiDrawPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  49004. PhysicalDeviceMultiDrawPropertiesEXT( VkPhysicalDeviceMultiDrawPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  49005. : PhysicalDeviceMultiDrawPropertiesEXT( *reinterpret_cast<PhysicalDeviceMultiDrawPropertiesEXT const *>( &rhs ) )
  49006. {
  49007. }
  49008. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  49009. PhysicalDeviceMultiDrawPropertiesEXT & operator=( PhysicalDeviceMultiDrawPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  49010. PhysicalDeviceMultiDrawPropertiesEXT & operator=( VkPhysicalDeviceMultiDrawPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  49011. {
  49012. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceMultiDrawPropertiesEXT const *>( &rhs );
  49013. return *this;
  49014. }
  49015. operator VkPhysicalDeviceMultiDrawPropertiesEXT const &() const VULKAN_HPP_NOEXCEPT
  49016. {
  49017. return *reinterpret_cast<const VkPhysicalDeviceMultiDrawPropertiesEXT *>( this );
  49018. }
  49019. operator VkPhysicalDeviceMultiDrawPropertiesEXT &() VULKAN_HPP_NOEXCEPT
  49020. {
  49021. return *reinterpret_cast<VkPhysicalDeviceMultiDrawPropertiesEXT *>( this );
  49022. }
  49023. #if defined( VULKAN_HPP_USE_REFLECT )
  49024. # if 14 <= VULKAN_HPP_CPP_VERSION
  49025. auto
  49026. # else
  49027. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, uint32_t const &>
  49028. # endif
  49029. reflect() const VULKAN_HPP_NOEXCEPT
  49030. {
  49031. return std::tie( sType, pNext, maxMultiDrawCount );
  49032. }
  49033. #endif
  49034. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  49035. auto operator<=>( PhysicalDeviceMultiDrawPropertiesEXT const & ) const = default;
  49036. #else
  49037. bool operator==( PhysicalDeviceMultiDrawPropertiesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  49038. {
  49039. # if defined( VULKAN_HPP_USE_REFLECT )
  49040. return this->reflect() == rhs.reflect();
  49041. # else
  49042. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( maxMultiDrawCount == rhs.maxMultiDrawCount );
  49043. # endif
  49044. }
  49045. bool operator!=( PhysicalDeviceMultiDrawPropertiesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  49046. {
  49047. return !operator==( rhs );
  49048. }
  49049. #endif
  49050. public:
  49051. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceMultiDrawPropertiesEXT;
  49052. void * pNext = {};
  49053. uint32_t maxMultiDrawCount = {};
  49054. };
  49055. template <>
  49056. struct CppType<StructureType, StructureType::ePhysicalDeviceMultiDrawPropertiesEXT>
  49057. {
  49058. using Type = PhysicalDeviceMultiDrawPropertiesEXT;
  49059. };
  49060. struct PhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT
  49061. {
  49062. using NativeType = VkPhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT;
  49063. static const bool allowDuplicate = false;
  49064. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT;
  49065. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  49066. VULKAN_HPP_CONSTEXPR PhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT( VULKAN_HPP_NAMESPACE::Bool32 multisampledRenderToSingleSampled_ = {},
  49067. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  49068. : pNext( pNext_ )
  49069. , multisampledRenderToSingleSampled( multisampledRenderToSingleSampled_ )
  49070. {
  49071. }
  49072. VULKAN_HPP_CONSTEXPR PhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT( PhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT const & rhs )
  49073. VULKAN_HPP_NOEXCEPT = default;
  49074. PhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT( VkPhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  49075. : PhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT(
  49076. *reinterpret_cast<PhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT const *>( &rhs ) )
  49077. {
  49078. }
  49079. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  49080. PhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT &
  49081. operator=( PhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  49082. PhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT &
  49083. operator=( VkPhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  49084. {
  49085. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT const *>( &rhs );
  49086. return *this;
  49087. }
  49088. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  49089. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
  49090. {
  49091. pNext = pNext_;
  49092. return *this;
  49093. }
  49094. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT &
  49095. setMultisampledRenderToSingleSampled( VULKAN_HPP_NAMESPACE::Bool32 multisampledRenderToSingleSampled_ ) VULKAN_HPP_NOEXCEPT
  49096. {
  49097. multisampledRenderToSingleSampled = multisampledRenderToSingleSampled_;
  49098. return *this;
  49099. }
  49100. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  49101. operator VkPhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT const &() const VULKAN_HPP_NOEXCEPT
  49102. {
  49103. return *reinterpret_cast<const VkPhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT *>( this );
  49104. }
  49105. operator VkPhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT &() VULKAN_HPP_NOEXCEPT
  49106. {
  49107. return *reinterpret_cast<VkPhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT *>( this );
  49108. }
  49109. #if defined( VULKAN_HPP_USE_REFLECT )
  49110. # if 14 <= VULKAN_HPP_CPP_VERSION
  49111. auto
  49112. # else
  49113. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
  49114. # endif
  49115. reflect() const VULKAN_HPP_NOEXCEPT
  49116. {
  49117. return std::tie( sType, pNext, multisampledRenderToSingleSampled );
  49118. }
  49119. #endif
  49120. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  49121. auto operator<=>( PhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT const & ) const = default;
  49122. #else
  49123. bool operator==( PhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  49124. {
  49125. # if defined( VULKAN_HPP_USE_REFLECT )
  49126. return this->reflect() == rhs.reflect();
  49127. # else
  49128. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( multisampledRenderToSingleSampled == rhs.multisampledRenderToSingleSampled );
  49129. # endif
  49130. }
  49131. bool operator!=( PhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  49132. {
  49133. return !operator==( rhs );
  49134. }
  49135. #endif
  49136. public:
  49137. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT;
  49138. void * pNext = {};
  49139. VULKAN_HPP_NAMESPACE::Bool32 multisampledRenderToSingleSampled = {};
  49140. };
  49141. template <>
  49142. struct CppType<StructureType, StructureType::ePhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT>
  49143. {
  49144. using Type = PhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT;
  49145. };
  49146. struct PhysicalDeviceMultiviewFeatures
  49147. {
  49148. using NativeType = VkPhysicalDeviceMultiviewFeatures;
  49149. static const bool allowDuplicate = false;
  49150. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceMultiviewFeatures;
  49151. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  49152. VULKAN_HPP_CONSTEXPR PhysicalDeviceMultiviewFeatures( VULKAN_HPP_NAMESPACE::Bool32 multiview_ = {},
  49153. VULKAN_HPP_NAMESPACE::Bool32 multiviewGeometryShader_ = {},
  49154. VULKAN_HPP_NAMESPACE::Bool32 multiviewTessellationShader_ = {},
  49155. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  49156. : pNext( pNext_ )
  49157. , multiview( multiview_ )
  49158. , multiviewGeometryShader( multiviewGeometryShader_ )
  49159. , multiviewTessellationShader( multiviewTessellationShader_ )
  49160. {
  49161. }
  49162. VULKAN_HPP_CONSTEXPR PhysicalDeviceMultiviewFeatures( PhysicalDeviceMultiviewFeatures const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  49163. PhysicalDeviceMultiviewFeatures( VkPhysicalDeviceMultiviewFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
  49164. : PhysicalDeviceMultiviewFeatures( *reinterpret_cast<PhysicalDeviceMultiviewFeatures const *>( &rhs ) )
  49165. {
  49166. }
  49167. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  49168. PhysicalDeviceMultiviewFeatures & operator=( PhysicalDeviceMultiviewFeatures const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  49169. PhysicalDeviceMultiviewFeatures & operator=( VkPhysicalDeviceMultiviewFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
  49170. {
  49171. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceMultiviewFeatures const *>( &rhs );
  49172. return *this;
  49173. }
  49174. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  49175. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceMultiviewFeatures & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
  49176. {
  49177. pNext = pNext_;
  49178. return *this;
  49179. }
  49180. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceMultiviewFeatures & setMultiview( VULKAN_HPP_NAMESPACE::Bool32 multiview_ ) VULKAN_HPP_NOEXCEPT
  49181. {
  49182. multiview = multiview_;
  49183. return *this;
  49184. }
  49185. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceMultiviewFeatures &
  49186. setMultiviewGeometryShader( VULKAN_HPP_NAMESPACE::Bool32 multiviewGeometryShader_ ) VULKAN_HPP_NOEXCEPT
  49187. {
  49188. multiviewGeometryShader = multiviewGeometryShader_;
  49189. return *this;
  49190. }
  49191. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceMultiviewFeatures &
  49192. setMultiviewTessellationShader( VULKAN_HPP_NAMESPACE::Bool32 multiviewTessellationShader_ ) VULKAN_HPP_NOEXCEPT
  49193. {
  49194. multiviewTessellationShader = multiviewTessellationShader_;
  49195. return *this;
  49196. }
  49197. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  49198. operator VkPhysicalDeviceMultiviewFeatures const &() const VULKAN_HPP_NOEXCEPT
  49199. {
  49200. return *reinterpret_cast<const VkPhysicalDeviceMultiviewFeatures *>( this );
  49201. }
  49202. operator VkPhysicalDeviceMultiviewFeatures &() VULKAN_HPP_NOEXCEPT
  49203. {
  49204. return *reinterpret_cast<VkPhysicalDeviceMultiviewFeatures *>( this );
  49205. }
  49206. #if defined( VULKAN_HPP_USE_REFLECT )
  49207. # if 14 <= VULKAN_HPP_CPP_VERSION
  49208. auto
  49209. # else
  49210. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  49211. void * const &,
  49212. VULKAN_HPP_NAMESPACE::Bool32 const &,
  49213. VULKAN_HPP_NAMESPACE::Bool32 const &,
  49214. VULKAN_HPP_NAMESPACE::Bool32 const &>
  49215. # endif
  49216. reflect() const VULKAN_HPP_NOEXCEPT
  49217. {
  49218. return std::tie( sType, pNext, multiview, multiviewGeometryShader, multiviewTessellationShader );
  49219. }
  49220. #endif
  49221. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  49222. auto operator<=>( PhysicalDeviceMultiviewFeatures const & ) const = default;
  49223. #else
  49224. bool operator==( PhysicalDeviceMultiviewFeatures const & rhs ) const VULKAN_HPP_NOEXCEPT
  49225. {
  49226. # if defined( VULKAN_HPP_USE_REFLECT )
  49227. return this->reflect() == rhs.reflect();
  49228. # else
  49229. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( multiview == rhs.multiview ) && ( multiviewGeometryShader == rhs.multiviewGeometryShader ) &&
  49230. ( multiviewTessellationShader == rhs.multiviewTessellationShader );
  49231. # endif
  49232. }
  49233. bool operator!=( PhysicalDeviceMultiviewFeatures const & rhs ) const VULKAN_HPP_NOEXCEPT
  49234. {
  49235. return !operator==( rhs );
  49236. }
  49237. #endif
  49238. public:
  49239. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceMultiviewFeatures;
  49240. void * pNext = {};
  49241. VULKAN_HPP_NAMESPACE::Bool32 multiview = {};
  49242. VULKAN_HPP_NAMESPACE::Bool32 multiviewGeometryShader = {};
  49243. VULKAN_HPP_NAMESPACE::Bool32 multiviewTessellationShader = {};
  49244. };
  49245. template <>
  49246. struct CppType<StructureType, StructureType::ePhysicalDeviceMultiviewFeatures>
  49247. {
  49248. using Type = PhysicalDeviceMultiviewFeatures;
  49249. };
  49250. using PhysicalDeviceMultiviewFeaturesKHR = PhysicalDeviceMultiviewFeatures;
  49251. struct PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX
  49252. {
  49253. using NativeType = VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX;
  49254. static const bool allowDuplicate = false;
  49255. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceMultiviewPerViewAttributesPropertiesNVX;
  49256. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  49257. VULKAN_HPP_CONSTEXPR PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX( VULKAN_HPP_NAMESPACE::Bool32 perViewPositionAllComponents_ = {},
  49258. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  49259. : pNext( pNext_ )
  49260. , perViewPositionAllComponents( perViewPositionAllComponents_ )
  49261. {
  49262. }
  49263. VULKAN_HPP_CONSTEXPR
  49264. PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX( PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  49265. PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX( VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX const & rhs ) VULKAN_HPP_NOEXCEPT
  49266. : PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX( *reinterpret_cast<PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX const *>( &rhs ) )
  49267. {
  49268. }
  49269. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  49270. PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX &
  49271. operator=( PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  49272. PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX & operator=( VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX const & rhs ) VULKAN_HPP_NOEXCEPT
  49273. {
  49274. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX const *>( &rhs );
  49275. return *this;
  49276. }
  49277. operator VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX const &() const VULKAN_HPP_NOEXCEPT
  49278. {
  49279. return *reinterpret_cast<const VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX *>( this );
  49280. }
  49281. operator VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX &() VULKAN_HPP_NOEXCEPT
  49282. {
  49283. return *reinterpret_cast<VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX *>( this );
  49284. }
  49285. #if defined( VULKAN_HPP_USE_REFLECT )
  49286. # if 14 <= VULKAN_HPP_CPP_VERSION
  49287. auto
  49288. # else
  49289. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
  49290. # endif
  49291. reflect() const VULKAN_HPP_NOEXCEPT
  49292. {
  49293. return std::tie( sType, pNext, perViewPositionAllComponents );
  49294. }
  49295. #endif
  49296. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  49297. auto operator<=>( PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX const & ) const = default;
  49298. #else
  49299. bool operator==( PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX const & rhs ) const VULKAN_HPP_NOEXCEPT
  49300. {
  49301. # if defined( VULKAN_HPP_USE_REFLECT )
  49302. return this->reflect() == rhs.reflect();
  49303. # else
  49304. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( perViewPositionAllComponents == rhs.perViewPositionAllComponents );
  49305. # endif
  49306. }
  49307. bool operator!=( PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX const & rhs ) const VULKAN_HPP_NOEXCEPT
  49308. {
  49309. return !operator==( rhs );
  49310. }
  49311. #endif
  49312. public:
  49313. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceMultiviewPerViewAttributesPropertiesNVX;
  49314. void * pNext = {};
  49315. VULKAN_HPP_NAMESPACE::Bool32 perViewPositionAllComponents = {};
  49316. };
  49317. template <>
  49318. struct CppType<StructureType, StructureType::ePhysicalDeviceMultiviewPerViewAttributesPropertiesNVX>
  49319. {
  49320. using Type = PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX;
  49321. };
  49322. struct PhysicalDeviceMultiviewProperties
  49323. {
  49324. using NativeType = VkPhysicalDeviceMultiviewProperties;
  49325. static const bool allowDuplicate = false;
  49326. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceMultiviewProperties;
  49327. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  49328. VULKAN_HPP_CONSTEXPR PhysicalDeviceMultiviewProperties( uint32_t maxMultiviewViewCount_ = {},
  49329. uint32_t maxMultiviewInstanceIndex_ = {},
  49330. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  49331. : pNext( pNext_ )
  49332. , maxMultiviewViewCount( maxMultiviewViewCount_ )
  49333. , maxMultiviewInstanceIndex( maxMultiviewInstanceIndex_ )
  49334. {
  49335. }
  49336. VULKAN_HPP_CONSTEXPR PhysicalDeviceMultiviewProperties( PhysicalDeviceMultiviewProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  49337. PhysicalDeviceMultiviewProperties( VkPhysicalDeviceMultiviewProperties const & rhs ) VULKAN_HPP_NOEXCEPT
  49338. : PhysicalDeviceMultiviewProperties( *reinterpret_cast<PhysicalDeviceMultiviewProperties const *>( &rhs ) )
  49339. {
  49340. }
  49341. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  49342. PhysicalDeviceMultiviewProperties & operator=( PhysicalDeviceMultiviewProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  49343. PhysicalDeviceMultiviewProperties & operator=( VkPhysicalDeviceMultiviewProperties const & rhs ) VULKAN_HPP_NOEXCEPT
  49344. {
  49345. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceMultiviewProperties const *>( &rhs );
  49346. return *this;
  49347. }
  49348. operator VkPhysicalDeviceMultiviewProperties const &() const VULKAN_HPP_NOEXCEPT
  49349. {
  49350. return *reinterpret_cast<const VkPhysicalDeviceMultiviewProperties *>( this );
  49351. }
  49352. operator VkPhysicalDeviceMultiviewProperties &() VULKAN_HPP_NOEXCEPT
  49353. {
  49354. return *reinterpret_cast<VkPhysicalDeviceMultiviewProperties *>( this );
  49355. }
  49356. #if defined( VULKAN_HPP_USE_REFLECT )
  49357. # if 14 <= VULKAN_HPP_CPP_VERSION
  49358. auto
  49359. # else
  49360. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, uint32_t const &, uint32_t const &>
  49361. # endif
  49362. reflect() const VULKAN_HPP_NOEXCEPT
  49363. {
  49364. return std::tie( sType, pNext, maxMultiviewViewCount, maxMultiviewInstanceIndex );
  49365. }
  49366. #endif
  49367. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  49368. auto operator<=>( PhysicalDeviceMultiviewProperties const & ) const = default;
  49369. #else
  49370. bool operator==( PhysicalDeviceMultiviewProperties const & rhs ) const VULKAN_HPP_NOEXCEPT
  49371. {
  49372. # if defined( VULKAN_HPP_USE_REFLECT )
  49373. return this->reflect() == rhs.reflect();
  49374. # else
  49375. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( maxMultiviewViewCount == rhs.maxMultiviewViewCount ) &&
  49376. ( maxMultiviewInstanceIndex == rhs.maxMultiviewInstanceIndex );
  49377. # endif
  49378. }
  49379. bool operator!=( PhysicalDeviceMultiviewProperties const & rhs ) const VULKAN_HPP_NOEXCEPT
  49380. {
  49381. return !operator==( rhs );
  49382. }
  49383. #endif
  49384. public:
  49385. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceMultiviewProperties;
  49386. void * pNext = {};
  49387. uint32_t maxMultiviewViewCount = {};
  49388. uint32_t maxMultiviewInstanceIndex = {};
  49389. };
  49390. template <>
  49391. struct CppType<StructureType, StructureType::ePhysicalDeviceMultiviewProperties>
  49392. {
  49393. using Type = PhysicalDeviceMultiviewProperties;
  49394. };
  49395. using PhysicalDeviceMultiviewPropertiesKHR = PhysicalDeviceMultiviewProperties;
  49396. struct PhysicalDeviceMutableDescriptorTypeFeaturesVALVE
  49397. {
  49398. using NativeType = VkPhysicalDeviceMutableDescriptorTypeFeaturesVALVE;
  49399. static const bool allowDuplicate = false;
  49400. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceMutableDescriptorTypeFeaturesVALVE;
  49401. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  49402. VULKAN_HPP_CONSTEXPR PhysicalDeviceMutableDescriptorTypeFeaturesVALVE( VULKAN_HPP_NAMESPACE::Bool32 mutableDescriptorType_ = {},
  49403. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  49404. : pNext( pNext_ )
  49405. , mutableDescriptorType( mutableDescriptorType_ )
  49406. {
  49407. }
  49408. VULKAN_HPP_CONSTEXPR
  49409. PhysicalDeviceMutableDescriptorTypeFeaturesVALVE( PhysicalDeviceMutableDescriptorTypeFeaturesVALVE const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  49410. PhysicalDeviceMutableDescriptorTypeFeaturesVALVE( VkPhysicalDeviceMutableDescriptorTypeFeaturesVALVE const & rhs ) VULKAN_HPP_NOEXCEPT
  49411. : PhysicalDeviceMutableDescriptorTypeFeaturesVALVE( *reinterpret_cast<PhysicalDeviceMutableDescriptorTypeFeaturesVALVE const *>( &rhs ) )
  49412. {
  49413. }
  49414. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  49415. PhysicalDeviceMutableDescriptorTypeFeaturesVALVE & operator=( PhysicalDeviceMutableDescriptorTypeFeaturesVALVE const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  49416. PhysicalDeviceMutableDescriptorTypeFeaturesVALVE & operator=( VkPhysicalDeviceMutableDescriptorTypeFeaturesVALVE const & rhs ) VULKAN_HPP_NOEXCEPT
  49417. {
  49418. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceMutableDescriptorTypeFeaturesVALVE const *>( &rhs );
  49419. return *this;
  49420. }
  49421. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  49422. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceMutableDescriptorTypeFeaturesVALVE & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
  49423. {
  49424. pNext = pNext_;
  49425. return *this;
  49426. }
  49427. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceMutableDescriptorTypeFeaturesVALVE &
  49428. setMutableDescriptorType( VULKAN_HPP_NAMESPACE::Bool32 mutableDescriptorType_ ) VULKAN_HPP_NOEXCEPT
  49429. {
  49430. mutableDescriptorType = mutableDescriptorType_;
  49431. return *this;
  49432. }
  49433. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  49434. operator VkPhysicalDeviceMutableDescriptorTypeFeaturesVALVE const &() const VULKAN_HPP_NOEXCEPT
  49435. {
  49436. return *reinterpret_cast<const VkPhysicalDeviceMutableDescriptorTypeFeaturesVALVE *>( this );
  49437. }
  49438. operator VkPhysicalDeviceMutableDescriptorTypeFeaturesVALVE &() VULKAN_HPP_NOEXCEPT
  49439. {
  49440. return *reinterpret_cast<VkPhysicalDeviceMutableDescriptorTypeFeaturesVALVE *>( this );
  49441. }
  49442. #if defined( VULKAN_HPP_USE_REFLECT )
  49443. # if 14 <= VULKAN_HPP_CPP_VERSION
  49444. auto
  49445. # else
  49446. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
  49447. # endif
  49448. reflect() const VULKAN_HPP_NOEXCEPT
  49449. {
  49450. return std::tie( sType, pNext, mutableDescriptorType );
  49451. }
  49452. #endif
  49453. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  49454. auto operator<=>( PhysicalDeviceMutableDescriptorTypeFeaturesVALVE const & ) const = default;
  49455. #else
  49456. bool operator==( PhysicalDeviceMutableDescriptorTypeFeaturesVALVE const & rhs ) const VULKAN_HPP_NOEXCEPT
  49457. {
  49458. # if defined( VULKAN_HPP_USE_REFLECT )
  49459. return this->reflect() == rhs.reflect();
  49460. # else
  49461. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( mutableDescriptorType == rhs.mutableDescriptorType );
  49462. # endif
  49463. }
  49464. bool operator!=( PhysicalDeviceMutableDescriptorTypeFeaturesVALVE const & rhs ) const VULKAN_HPP_NOEXCEPT
  49465. {
  49466. return !operator==( rhs );
  49467. }
  49468. #endif
  49469. public:
  49470. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceMutableDescriptorTypeFeaturesVALVE;
  49471. void * pNext = {};
  49472. VULKAN_HPP_NAMESPACE::Bool32 mutableDescriptorType = {};
  49473. };
  49474. template <>
  49475. struct CppType<StructureType, StructureType::ePhysicalDeviceMutableDescriptorTypeFeaturesVALVE>
  49476. {
  49477. using Type = PhysicalDeviceMutableDescriptorTypeFeaturesVALVE;
  49478. };
  49479. struct PhysicalDeviceNonSeamlessCubeMapFeaturesEXT
  49480. {
  49481. using NativeType = VkPhysicalDeviceNonSeamlessCubeMapFeaturesEXT;
  49482. static const bool allowDuplicate = false;
  49483. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceNonSeamlessCubeMapFeaturesEXT;
  49484. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  49485. VULKAN_HPP_CONSTEXPR PhysicalDeviceNonSeamlessCubeMapFeaturesEXT( VULKAN_HPP_NAMESPACE::Bool32 nonSeamlessCubeMap_ = {},
  49486. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  49487. : pNext( pNext_ )
  49488. , nonSeamlessCubeMap( nonSeamlessCubeMap_ )
  49489. {
  49490. }
  49491. VULKAN_HPP_CONSTEXPR PhysicalDeviceNonSeamlessCubeMapFeaturesEXT( PhysicalDeviceNonSeamlessCubeMapFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  49492. PhysicalDeviceNonSeamlessCubeMapFeaturesEXT( VkPhysicalDeviceNonSeamlessCubeMapFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  49493. : PhysicalDeviceNonSeamlessCubeMapFeaturesEXT( *reinterpret_cast<PhysicalDeviceNonSeamlessCubeMapFeaturesEXT const *>( &rhs ) )
  49494. {
  49495. }
  49496. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  49497. PhysicalDeviceNonSeamlessCubeMapFeaturesEXT & operator=( PhysicalDeviceNonSeamlessCubeMapFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  49498. PhysicalDeviceNonSeamlessCubeMapFeaturesEXT & operator=( VkPhysicalDeviceNonSeamlessCubeMapFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  49499. {
  49500. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceNonSeamlessCubeMapFeaturesEXT const *>( &rhs );
  49501. return *this;
  49502. }
  49503. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  49504. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceNonSeamlessCubeMapFeaturesEXT & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
  49505. {
  49506. pNext = pNext_;
  49507. return *this;
  49508. }
  49509. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceNonSeamlessCubeMapFeaturesEXT &
  49510. setNonSeamlessCubeMap( VULKAN_HPP_NAMESPACE::Bool32 nonSeamlessCubeMap_ ) VULKAN_HPP_NOEXCEPT
  49511. {
  49512. nonSeamlessCubeMap = nonSeamlessCubeMap_;
  49513. return *this;
  49514. }
  49515. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  49516. operator VkPhysicalDeviceNonSeamlessCubeMapFeaturesEXT const &() const VULKAN_HPP_NOEXCEPT
  49517. {
  49518. return *reinterpret_cast<const VkPhysicalDeviceNonSeamlessCubeMapFeaturesEXT *>( this );
  49519. }
  49520. operator VkPhysicalDeviceNonSeamlessCubeMapFeaturesEXT &() VULKAN_HPP_NOEXCEPT
  49521. {
  49522. return *reinterpret_cast<VkPhysicalDeviceNonSeamlessCubeMapFeaturesEXT *>( this );
  49523. }
  49524. #if defined( VULKAN_HPP_USE_REFLECT )
  49525. # if 14 <= VULKAN_HPP_CPP_VERSION
  49526. auto
  49527. # else
  49528. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
  49529. # endif
  49530. reflect() const VULKAN_HPP_NOEXCEPT
  49531. {
  49532. return std::tie( sType, pNext, nonSeamlessCubeMap );
  49533. }
  49534. #endif
  49535. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  49536. auto operator<=>( PhysicalDeviceNonSeamlessCubeMapFeaturesEXT const & ) const = default;
  49537. #else
  49538. bool operator==( PhysicalDeviceNonSeamlessCubeMapFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  49539. {
  49540. # if defined( VULKAN_HPP_USE_REFLECT )
  49541. return this->reflect() == rhs.reflect();
  49542. # else
  49543. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( nonSeamlessCubeMap == rhs.nonSeamlessCubeMap );
  49544. # endif
  49545. }
  49546. bool operator!=( PhysicalDeviceNonSeamlessCubeMapFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  49547. {
  49548. return !operator==( rhs );
  49549. }
  49550. #endif
  49551. public:
  49552. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceNonSeamlessCubeMapFeaturesEXT;
  49553. void * pNext = {};
  49554. VULKAN_HPP_NAMESPACE::Bool32 nonSeamlessCubeMap = {};
  49555. };
  49556. template <>
  49557. struct CppType<StructureType, StructureType::ePhysicalDeviceNonSeamlessCubeMapFeaturesEXT>
  49558. {
  49559. using Type = PhysicalDeviceNonSeamlessCubeMapFeaturesEXT;
  49560. };
  49561. struct PhysicalDevicePCIBusInfoPropertiesEXT
  49562. {
  49563. using NativeType = VkPhysicalDevicePCIBusInfoPropertiesEXT;
  49564. static const bool allowDuplicate = false;
  49565. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDevicePciBusInfoPropertiesEXT;
  49566. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  49567. VULKAN_HPP_CONSTEXPR PhysicalDevicePCIBusInfoPropertiesEXT(
  49568. uint32_t pciDomain_ = {}, uint32_t pciBus_ = {}, uint32_t pciDevice_ = {}, uint32_t pciFunction_ = {}, void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  49569. : pNext( pNext_ )
  49570. , pciDomain( pciDomain_ )
  49571. , pciBus( pciBus_ )
  49572. , pciDevice( pciDevice_ )
  49573. , pciFunction( pciFunction_ )
  49574. {
  49575. }
  49576. VULKAN_HPP_CONSTEXPR PhysicalDevicePCIBusInfoPropertiesEXT( PhysicalDevicePCIBusInfoPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  49577. PhysicalDevicePCIBusInfoPropertiesEXT( VkPhysicalDevicePCIBusInfoPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  49578. : PhysicalDevicePCIBusInfoPropertiesEXT( *reinterpret_cast<PhysicalDevicePCIBusInfoPropertiesEXT const *>( &rhs ) )
  49579. {
  49580. }
  49581. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  49582. PhysicalDevicePCIBusInfoPropertiesEXT & operator=( PhysicalDevicePCIBusInfoPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  49583. PhysicalDevicePCIBusInfoPropertiesEXT & operator=( VkPhysicalDevicePCIBusInfoPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  49584. {
  49585. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDevicePCIBusInfoPropertiesEXT const *>( &rhs );
  49586. return *this;
  49587. }
  49588. operator VkPhysicalDevicePCIBusInfoPropertiesEXT const &() const VULKAN_HPP_NOEXCEPT
  49589. {
  49590. return *reinterpret_cast<const VkPhysicalDevicePCIBusInfoPropertiesEXT *>( this );
  49591. }
  49592. operator VkPhysicalDevicePCIBusInfoPropertiesEXT &() VULKAN_HPP_NOEXCEPT
  49593. {
  49594. return *reinterpret_cast<VkPhysicalDevicePCIBusInfoPropertiesEXT *>( this );
  49595. }
  49596. #if defined( VULKAN_HPP_USE_REFLECT )
  49597. # if 14 <= VULKAN_HPP_CPP_VERSION
  49598. auto
  49599. # else
  49600. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, uint32_t const &, uint32_t const &, uint32_t const &, uint32_t const &>
  49601. # endif
  49602. reflect() const VULKAN_HPP_NOEXCEPT
  49603. {
  49604. return std::tie( sType, pNext, pciDomain, pciBus, pciDevice, pciFunction );
  49605. }
  49606. #endif
  49607. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  49608. auto operator<=>( PhysicalDevicePCIBusInfoPropertiesEXT const & ) const = default;
  49609. #else
  49610. bool operator==( PhysicalDevicePCIBusInfoPropertiesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  49611. {
  49612. # if defined( VULKAN_HPP_USE_REFLECT )
  49613. return this->reflect() == rhs.reflect();
  49614. # else
  49615. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( pciDomain == rhs.pciDomain ) && ( pciBus == rhs.pciBus ) && ( pciDevice == rhs.pciDevice ) &&
  49616. ( pciFunction == rhs.pciFunction );
  49617. # endif
  49618. }
  49619. bool operator!=( PhysicalDevicePCIBusInfoPropertiesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  49620. {
  49621. return !operator==( rhs );
  49622. }
  49623. #endif
  49624. public:
  49625. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDevicePciBusInfoPropertiesEXT;
  49626. void * pNext = {};
  49627. uint32_t pciDomain = {};
  49628. uint32_t pciBus = {};
  49629. uint32_t pciDevice = {};
  49630. uint32_t pciFunction = {};
  49631. };
  49632. template <>
  49633. struct CppType<StructureType, StructureType::ePhysicalDevicePciBusInfoPropertiesEXT>
  49634. {
  49635. using Type = PhysicalDevicePCIBusInfoPropertiesEXT;
  49636. };
  49637. struct PhysicalDevicePageableDeviceLocalMemoryFeaturesEXT
  49638. {
  49639. using NativeType = VkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT;
  49640. static const bool allowDuplicate = false;
  49641. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDevicePageableDeviceLocalMemoryFeaturesEXT;
  49642. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  49643. VULKAN_HPP_CONSTEXPR PhysicalDevicePageableDeviceLocalMemoryFeaturesEXT( VULKAN_HPP_NAMESPACE::Bool32 pageableDeviceLocalMemory_ = {},
  49644. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  49645. : pNext( pNext_ )
  49646. , pageableDeviceLocalMemory( pageableDeviceLocalMemory_ )
  49647. {
  49648. }
  49649. VULKAN_HPP_CONSTEXPR
  49650. PhysicalDevicePageableDeviceLocalMemoryFeaturesEXT( PhysicalDevicePageableDeviceLocalMemoryFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  49651. PhysicalDevicePageableDeviceLocalMemoryFeaturesEXT( VkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  49652. : PhysicalDevicePageableDeviceLocalMemoryFeaturesEXT( *reinterpret_cast<PhysicalDevicePageableDeviceLocalMemoryFeaturesEXT const *>( &rhs ) )
  49653. {
  49654. }
  49655. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  49656. PhysicalDevicePageableDeviceLocalMemoryFeaturesEXT &
  49657. operator=( PhysicalDevicePageableDeviceLocalMemoryFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  49658. PhysicalDevicePageableDeviceLocalMemoryFeaturesEXT & operator=( VkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  49659. {
  49660. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDevicePageableDeviceLocalMemoryFeaturesEXT const *>( &rhs );
  49661. return *this;
  49662. }
  49663. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  49664. VULKAN_HPP_CONSTEXPR_14 PhysicalDevicePageableDeviceLocalMemoryFeaturesEXT & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
  49665. {
  49666. pNext = pNext_;
  49667. return *this;
  49668. }
  49669. VULKAN_HPP_CONSTEXPR_14 PhysicalDevicePageableDeviceLocalMemoryFeaturesEXT &
  49670. setPageableDeviceLocalMemory( VULKAN_HPP_NAMESPACE::Bool32 pageableDeviceLocalMemory_ ) VULKAN_HPP_NOEXCEPT
  49671. {
  49672. pageableDeviceLocalMemory = pageableDeviceLocalMemory_;
  49673. return *this;
  49674. }
  49675. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  49676. operator VkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT const &() const VULKAN_HPP_NOEXCEPT
  49677. {
  49678. return *reinterpret_cast<const VkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT *>( this );
  49679. }
  49680. operator VkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT &() VULKAN_HPP_NOEXCEPT
  49681. {
  49682. return *reinterpret_cast<VkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT *>( this );
  49683. }
  49684. #if defined( VULKAN_HPP_USE_REFLECT )
  49685. # if 14 <= VULKAN_HPP_CPP_VERSION
  49686. auto
  49687. # else
  49688. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
  49689. # endif
  49690. reflect() const VULKAN_HPP_NOEXCEPT
  49691. {
  49692. return std::tie( sType, pNext, pageableDeviceLocalMemory );
  49693. }
  49694. #endif
  49695. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  49696. auto operator<=>( PhysicalDevicePageableDeviceLocalMemoryFeaturesEXT const & ) const = default;
  49697. #else
  49698. bool operator==( PhysicalDevicePageableDeviceLocalMemoryFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  49699. {
  49700. # if defined( VULKAN_HPP_USE_REFLECT )
  49701. return this->reflect() == rhs.reflect();
  49702. # else
  49703. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( pageableDeviceLocalMemory == rhs.pageableDeviceLocalMemory );
  49704. # endif
  49705. }
  49706. bool operator!=( PhysicalDevicePageableDeviceLocalMemoryFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  49707. {
  49708. return !operator==( rhs );
  49709. }
  49710. #endif
  49711. public:
  49712. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDevicePageableDeviceLocalMemoryFeaturesEXT;
  49713. void * pNext = {};
  49714. VULKAN_HPP_NAMESPACE::Bool32 pageableDeviceLocalMemory = {};
  49715. };
  49716. template <>
  49717. struct CppType<StructureType, StructureType::ePhysicalDevicePageableDeviceLocalMemoryFeaturesEXT>
  49718. {
  49719. using Type = PhysicalDevicePageableDeviceLocalMemoryFeaturesEXT;
  49720. };
  49721. struct PhysicalDevicePerformanceQueryFeaturesKHR
  49722. {
  49723. using NativeType = VkPhysicalDevicePerformanceQueryFeaturesKHR;
  49724. static const bool allowDuplicate = false;
  49725. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDevicePerformanceQueryFeaturesKHR;
  49726. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  49727. VULKAN_HPP_CONSTEXPR PhysicalDevicePerformanceQueryFeaturesKHR( VULKAN_HPP_NAMESPACE::Bool32 performanceCounterQueryPools_ = {},
  49728. VULKAN_HPP_NAMESPACE::Bool32 performanceCounterMultipleQueryPools_ = {},
  49729. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  49730. : pNext( pNext_ )
  49731. , performanceCounterQueryPools( performanceCounterQueryPools_ )
  49732. , performanceCounterMultipleQueryPools( performanceCounterMultipleQueryPools_ )
  49733. {
  49734. }
  49735. VULKAN_HPP_CONSTEXPR PhysicalDevicePerformanceQueryFeaturesKHR( PhysicalDevicePerformanceQueryFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  49736. PhysicalDevicePerformanceQueryFeaturesKHR( VkPhysicalDevicePerformanceQueryFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  49737. : PhysicalDevicePerformanceQueryFeaturesKHR( *reinterpret_cast<PhysicalDevicePerformanceQueryFeaturesKHR const *>( &rhs ) )
  49738. {
  49739. }
  49740. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  49741. PhysicalDevicePerformanceQueryFeaturesKHR & operator=( PhysicalDevicePerformanceQueryFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  49742. PhysicalDevicePerformanceQueryFeaturesKHR & operator=( VkPhysicalDevicePerformanceQueryFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  49743. {
  49744. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDevicePerformanceQueryFeaturesKHR const *>( &rhs );
  49745. return *this;
  49746. }
  49747. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  49748. VULKAN_HPP_CONSTEXPR_14 PhysicalDevicePerformanceQueryFeaturesKHR & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
  49749. {
  49750. pNext = pNext_;
  49751. return *this;
  49752. }
  49753. VULKAN_HPP_CONSTEXPR_14 PhysicalDevicePerformanceQueryFeaturesKHR &
  49754. setPerformanceCounterQueryPools( VULKAN_HPP_NAMESPACE::Bool32 performanceCounterQueryPools_ ) VULKAN_HPP_NOEXCEPT
  49755. {
  49756. performanceCounterQueryPools = performanceCounterQueryPools_;
  49757. return *this;
  49758. }
  49759. VULKAN_HPP_CONSTEXPR_14 PhysicalDevicePerformanceQueryFeaturesKHR &
  49760. setPerformanceCounterMultipleQueryPools( VULKAN_HPP_NAMESPACE::Bool32 performanceCounterMultipleQueryPools_ ) VULKAN_HPP_NOEXCEPT
  49761. {
  49762. performanceCounterMultipleQueryPools = performanceCounterMultipleQueryPools_;
  49763. return *this;
  49764. }
  49765. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  49766. operator VkPhysicalDevicePerformanceQueryFeaturesKHR const &() const VULKAN_HPP_NOEXCEPT
  49767. {
  49768. return *reinterpret_cast<const VkPhysicalDevicePerformanceQueryFeaturesKHR *>( this );
  49769. }
  49770. operator VkPhysicalDevicePerformanceQueryFeaturesKHR &() VULKAN_HPP_NOEXCEPT
  49771. {
  49772. return *reinterpret_cast<VkPhysicalDevicePerformanceQueryFeaturesKHR *>( this );
  49773. }
  49774. #if defined( VULKAN_HPP_USE_REFLECT )
  49775. # if 14 <= VULKAN_HPP_CPP_VERSION
  49776. auto
  49777. # else
  49778. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
  49779. # endif
  49780. reflect() const VULKAN_HPP_NOEXCEPT
  49781. {
  49782. return std::tie( sType, pNext, performanceCounterQueryPools, performanceCounterMultipleQueryPools );
  49783. }
  49784. #endif
  49785. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  49786. auto operator<=>( PhysicalDevicePerformanceQueryFeaturesKHR const & ) const = default;
  49787. #else
  49788. bool operator==( PhysicalDevicePerformanceQueryFeaturesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  49789. {
  49790. # if defined( VULKAN_HPP_USE_REFLECT )
  49791. return this->reflect() == rhs.reflect();
  49792. # else
  49793. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( performanceCounterQueryPools == rhs.performanceCounterQueryPools ) &&
  49794. ( performanceCounterMultipleQueryPools == rhs.performanceCounterMultipleQueryPools );
  49795. # endif
  49796. }
  49797. bool operator!=( PhysicalDevicePerformanceQueryFeaturesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  49798. {
  49799. return !operator==( rhs );
  49800. }
  49801. #endif
  49802. public:
  49803. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDevicePerformanceQueryFeaturesKHR;
  49804. void * pNext = {};
  49805. VULKAN_HPP_NAMESPACE::Bool32 performanceCounterQueryPools = {};
  49806. VULKAN_HPP_NAMESPACE::Bool32 performanceCounterMultipleQueryPools = {};
  49807. };
  49808. template <>
  49809. struct CppType<StructureType, StructureType::ePhysicalDevicePerformanceQueryFeaturesKHR>
  49810. {
  49811. using Type = PhysicalDevicePerformanceQueryFeaturesKHR;
  49812. };
  49813. struct PhysicalDevicePerformanceQueryPropertiesKHR
  49814. {
  49815. using NativeType = VkPhysicalDevicePerformanceQueryPropertiesKHR;
  49816. static const bool allowDuplicate = false;
  49817. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDevicePerformanceQueryPropertiesKHR;
  49818. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  49819. VULKAN_HPP_CONSTEXPR PhysicalDevicePerformanceQueryPropertiesKHR( VULKAN_HPP_NAMESPACE::Bool32 allowCommandBufferQueryCopies_ = {},
  49820. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  49821. : pNext( pNext_ )
  49822. , allowCommandBufferQueryCopies( allowCommandBufferQueryCopies_ )
  49823. {
  49824. }
  49825. VULKAN_HPP_CONSTEXPR PhysicalDevicePerformanceQueryPropertiesKHR( PhysicalDevicePerformanceQueryPropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  49826. PhysicalDevicePerformanceQueryPropertiesKHR( VkPhysicalDevicePerformanceQueryPropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  49827. : PhysicalDevicePerformanceQueryPropertiesKHR( *reinterpret_cast<PhysicalDevicePerformanceQueryPropertiesKHR const *>( &rhs ) )
  49828. {
  49829. }
  49830. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  49831. PhysicalDevicePerformanceQueryPropertiesKHR & operator=( PhysicalDevicePerformanceQueryPropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  49832. PhysicalDevicePerformanceQueryPropertiesKHR & operator=( VkPhysicalDevicePerformanceQueryPropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  49833. {
  49834. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDevicePerformanceQueryPropertiesKHR const *>( &rhs );
  49835. return *this;
  49836. }
  49837. operator VkPhysicalDevicePerformanceQueryPropertiesKHR const &() const VULKAN_HPP_NOEXCEPT
  49838. {
  49839. return *reinterpret_cast<const VkPhysicalDevicePerformanceQueryPropertiesKHR *>( this );
  49840. }
  49841. operator VkPhysicalDevicePerformanceQueryPropertiesKHR &() VULKAN_HPP_NOEXCEPT
  49842. {
  49843. return *reinterpret_cast<VkPhysicalDevicePerformanceQueryPropertiesKHR *>( this );
  49844. }
  49845. #if defined( VULKAN_HPP_USE_REFLECT )
  49846. # if 14 <= VULKAN_HPP_CPP_VERSION
  49847. auto
  49848. # else
  49849. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
  49850. # endif
  49851. reflect() const VULKAN_HPP_NOEXCEPT
  49852. {
  49853. return std::tie( sType, pNext, allowCommandBufferQueryCopies );
  49854. }
  49855. #endif
  49856. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  49857. auto operator<=>( PhysicalDevicePerformanceQueryPropertiesKHR const & ) const = default;
  49858. #else
  49859. bool operator==( PhysicalDevicePerformanceQueryPropertiesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  49860. {
  49861. # if defined( VULKAN_HPP_USE_REFLECT )
  49862. return this->reflect() == rhs.reflect();
  49863. # else
  49864. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( allowCommandBufferQueryCopies == rhs.allowCommandBufferQueryCopies );
  49865. # endif
  49866. }
  49867. bool operator!=( PhysicalDevicePerformanceQueryPropertiesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  49868. {
  49869. return !operator==( rhs );
  49870. }
  49871. #endif
  49872. public:
  49873. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDevicePerformanceQueryPropertiesKHR;
  49874. void * pNext = {};
  49875. VULKAN_HPP_NAMESPACE::Bool32 allowCommandBufferQueryCopies = {};
  49876. };
  49877. template <>
  49878. struct CppType<StructureType, StructureType::ePhysicalDevicePerformanceQueryPropertiesKHR>
  49879. {
  49880. using Type = PhysicalDevicePerformanceQueryPropertiesKHR;
  49881. };
  49882. struct PhysicalDevicePipelineCreationCacheControlFeatures
  49883. {
  49884. using NativeType = VkPhysicalDevicePipelineCreationCacheControlFeatures;
  49885. static const bool allowDuplicate = false;
  49886. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDevicePipelineCreationCacheControlFeatures;
  49887. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  49888. VULKAN_HPP_CONSTEXPR PhysicalDevicePipelineCreationCacheControlFeatures( VULKAN_HPP_NAMESPACE::Bool32 pipelineCreationCacheControl_ = {},
  49889. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  49890. : pNext( pNext_ )
  49891. , pipelineCreationCacheControl( pipelineCreationCacheControl_ )
  49892. {
  49893. }
  49894. VULKAN_HPP_CONSTEXPR
  49895. PhysicalDevicePipelineCreationCacheControlFeatures( PhysicalDevicePipelineCreationCacheControlFeatures const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  49896. PhysicalDevicePipelineCreationCacheControlFeatures( VkPhysicalDevicePipelineCreationCacheControlFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
  49897. : PhysicalDevicePipelineCreationCacheControlFeatures( *reinterpret_cast<PhysicalDevicePipelineCreationCacheControlFeatures const *>( &rhs ) )
  49898. {
  49899. }
  49900. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  49901. PhysicalDevicePipelineCreationCacheControlFeatures &
  49902. operator=( PhysicalDevicePipelineCreationCacheControlFeatures const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  49903. PhysicalDevicePipelineCreationCacheControlFeatures & operator=( VkPhysicalDevicePipelineCreationCacheControlFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
  49904. {
  49905. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDevicePipelineCreationCacheControlFeatures const *>( &rhs );
  49906. return *this;
  49907. }
  49908. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  49909. VULKAN_HPP_CONSTEXPR_14 PhysicalDevicePipelineCreationCacheControlFeatures & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
  49910. {
  49911. pNext = pNext_;
  49912. return *this;
  49913. }
  49914. VULKAN_HPP_CONSTEXPR_14 PhysicalDevicePipelineCreationCacheControlFeatures &
  49915. setPipelineCreationCacheControl( VULKAN_HPP_NAMESPACE::Bool32 pipelineCreationCacheControl_ ) VULKAN_HPP_NOEXCEPT
  49916. {
  49917. pipelineCreationCacheControl = pipelineCreationCacheControl_;
  49918. return *this;
  49919. }
  49920. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  49921. operator VkPhysicalDevicePipelineCreationCacheControlFeatures const &() const VULKAN_HPP_NOEXCEPT
  49922. {
  49923. return *reinterpret_cast<const VkPhysicalDevicePipelineCreationCacheControlFeatures *>( this );
  49924. }
  49925. operator VkPhysicalDevicePipelineCreationCacheControlFeatures &() VULKAN_HPP_NOEXCEPT
  49926. {
  49927. return *reinterpret_cast<VkPhysicalDevicePipelineCreationCacheControlFeatures *>( this );
  49928. }
  49929. #if defined( VULKAN_HPP_USE_REFLECT )
  49930. # if 14 <= VULKAN_HPP_CPP_VERSION
  49931. auto
  49932. # else
  49933. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
  49934. # endif
  49935. reflect() const VULKAN_HPP_NOEXCEPT
  49936. {
  49937. return std::tie( sType, pNext, pipelineCreationCacheControl );
  49938. }
  49939. #endif
  49940. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  49941. auto operator<=>( PhysicalDevicePipelineCreationCacheControlFeatures const & ) const = default;
  49942. #else
  49943. bool operator==( PhysicalDevicePipelineCreationCacheControlFeatures 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 ) && ( pipelineCreationCacheControl == rhs.pipelineCreationCacheControl );
  49949. # endif
  49950. }
  49951. bool operator!=( PhysicalDevicePipelineCreationCacheControlFeatures const & rhs ) const VULKAN_HPP_NOEXCEPT
  49952. {
  49953. return !operator==( rhs );
  49954. }
  49955. #endif
  49956. public:
  49957. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDevicePipelineCreationCacheControlFeatures;
  49958. void * pNext = {};
  49959. VULKAN_HPP_NAMESPACE::Bool32 pipelineCreationCacheControl = {};
  49960. };
  49961. template <>
  49962. struct CppType<StructureType, StructureType::ePhysicalDevicePipelineCreationCacheControlFeatures>
  49963. {
  49964. using Type = PhysicalDevicePipelineCreationCacheControlFeatures;
  49965. };
  49966. using PhysicalDevicePipelineCreationCacheControlFeaturesEXT = PhysicalDevicePipelineCreationCacheControlFeatures;
  49967. struct PhysicalDevicePipelineExecutablePropertiesFeaturesKHR
  49968. {
  49969. using NativeType = VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR;
  49970. static const bool allowDuplicate = false;
  49971. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDevicePipelineExecutablePropertiesFeaturesKHR;
  49972. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  49973. VULKAN_HPP_CONSTEXPR PhysicalDevicePipelineExecutablePropertiesFeaturesKHR( VULKAN_HPP_NAMESPACE::Bool32 pipelineExecutableInfo_ = {},
  49974. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  49975. : pNext( pNext_ )
  49976. , pipelineExecutableInfo( pipelineExecutableInfo_ )
  49977. {
  49978. }
  49979. VULKAN_HPP_CONSTEXPR
  49980. PhysicalDevicePipelineExecutablePropertiesFeaturesKHR( PhysicalDevicePipelineExecutablePropertiesFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  49981. PhysicalDevicePipelineExecutablePropertiesFeaturesKHR( VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  49982. : PhysicalDevicePipelineExecutablePropertiesFeaturesKHR( *reinterpret_cast<PhysicalDevicePipelineExecutablePropertiesFeaturesKHR const *>( &rhs ) )
  49983. {
  49984. }
  49985. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  49986. PhysicalDevicePipelineExecutablePropertiesFeaturesKHR &
  49987. operator=( PhysicalDevicePipelineExecutablePropertiesFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  49988. PhysicalDevicePipelineExecutablePropertiesFeaturesKHR & operator=( VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  49989. {
  49990. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDevicePipelineExecutablePropertiesFeaturesKHR const *>( &rhs );
  49991. return *this;
  49992. }
  49993. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  49994. VULKAN_HPP_CONSTEXPR_14 PhysicalDevicePipelineExecutablePropertiesFeaturesKHR & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
  49995. {
  49996. pNext = pNext_;
  49997. return *this;
  49998. }
  49999. VULKAN_HPP_CONSTEXPR_14 PhysicalDevicePipelineExecutablePropertiesFeaturesKHR &
  50000. setPipelineExecutableInfo( VULKAN_HPP_NAMESPACE::Bool32 pipelineExecutableInfo_ ) VULKAN_HPP_NOEXCEPT
  50001. {
  50002. pipelineExecutableInfo = pipelineExecutableInfo_;
  50003. return *this;
  50004. }
  50005. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  50006. operator VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR const &() const VULKAN_HPP_NOEXCEPT
  50007. {
  50008. return *reinterpret_cast<const VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR *>( this );
  50009. }
  50010. operator VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR &() VULKAN_HPP_NOEXCEPT
  50011. {
  50012. return *reinterpret_cast<VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR *>( this );
  50013. }
  50014. #if defined( VULKAN_HPP_USE_REFLECT )
  50015. # if 14 <= VULKAN_HPP_CPP_VERSION
  50016. auto
  50017. # else
  50018. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
  50019. # endif
  50020. reflect() const VULKAN_HPP_NOEXCEPT
  50021. {
  50022. return std::tie( sType, pNext, pipelineExecutableInfo );
  50023. }
  50024. #endif
  50025. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  50026. auto operator<=>( PhysicalDevicePipelineExecutablePropertiesFeaturesKHR const & ) const = default;
  50027. #else
  50028. bool operator==( PhysicalDevicePipelineExecutablePropertiesFeaturesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  50029. {
  50030. # if defined( VULKAN_HPP_USE_REFLECT )
  50031. return this->reflect() == rhs.reflect();
  50032. # else
  50033. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( pipelineExecutableInfo == rhs.pipelineExecutableInfo );
  50034. # endif
  50035. }
  50036. bool operator!=( PhysicalDevicePipelineExecutablePropertiesFeaturesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  50037. {
  50038. return !operator==( rhs );
  50039. }
  50040. #endif
  50041. public:
  50042. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDevicePipelineExecutablePropertiesFeaturesKHR;
  50043. void * pNext = {};
  50044. VULKAN_HPP_NAMESPACE::Bool32 pipelineExecutableInfo = {};
  50045. };
  50046. template <>
  50047. struct CppType<StructureType, StructureType::ePhysicalDevicePipelineExecutablePropertiesFeaturesKHR>
  50048. {
  50049. using Type = PhysicalDevicePipelineExecutablePropertiesFeaturesKHR;
  50050. };
  50051. struct PhysicalDevicePipelinePropertiesFeaturesEXT
  50052. {
  50053. using NativeType = VkPhysicalDevicePipelinePropertiesFeaturesEXT;
  50054. static const bool allowDuplicate = false;
  50055. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDevicePipelinePropertiesFeaturesEXT;
  50056. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  50057. VULKAN_HPP_CONSTEXPR PhysicalDevicePipelinePropertiesFeaturesEXT( VULKAN_HPP_NAMESPACE::Bool32 pipelinePropertiesIdentifier_ = {},
  50058. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  50059. : pNext( pNext_ )
  50060. , pipelinePropertiesIdentifier( pipelinePropertiesIdentifier_ )
  50061. {
  50062. }
  50063. VULKAN_HPP_CONSTEXPR PhysicalDevicePipelinePropertiesFeaturesEXT( PhysicalDevicePipelinePropertiesFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  50064. PhysicalDevicePipelinePropertiesFeaturesEXT( VkPhysicalDevicePipelinePropertiesFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  50065. : PhysicalDevicePipelinePropertiesFeaturesEXT( *reinterpret_cast<PhysicalDevicePipelinePropertiesFeaturesEXT const *>( &rhs ) )
  50066. {
  50067. }
  50068. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  50069. PhysicalDevicePipelinePropertiesFeaturesEXT & operator=( PhysicalDevicePipelinePropertiesFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  50070. PhysicalDevicePipelinePropertiesFeaturesEXT & operator=( VkPhysicalDevicePipelinePropertiesFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  50071. {
  50072. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDevicePipelinePropertiesFeaturesEXT const *>( &rhs );
  50073. return *this;
  50074. }
  50075. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  50076. VULKAN_HPP_CONSTEXPR_14 PhysicalDevicePipelinePropertiesFeaturesEXT & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
  50077. {
  50078. pNext = pNext_;
  50079. return *this;
  50080. }
  50081. VULKAN_HPP_CONSTEXPR_14 PhysicalDevicePipelinePropertiesFeaturesEXT &
  50082. setPipelinePropertiesIdentifier( VULKAN_HPP_NAMESPACE::Bool32 pipelinePropertiesIdentifier_ ) VULKAN_HPP_NOEXCEPT
  50083. {
  50084. pipelinePropertiesIdentifier = pipelinePropertiesIdentifier_;
  50085. return *this;
  50086. }
  50087. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  50088. operator VkPhysicalDevicePipelinePropertiesFeaturesEXT const &() const VULKAN_HPP_NOEXCEPT
  50089. {
  50090. return *reinterpret_cast<const VkPhysicalDevicePipelinePropertiesFeaturesEXT *>( this );
  50091. }
  50092. operator VkPhysicalDevicePipelinePropertiesFeaturesEXT &() VULKAN_HPP_NOEXCEPT
  50093. {
  50094. return *reinterpret_cast<VkPhysicalDevicePipelinePropertiesFeaturesEXT *>( this );
  50095. }
  50096. #if defined( VULKAN_HPP_USE_REFLECT )
  50097. # if 14 <= VULKAN_HPP_CPP_VERSION
  50098. auto
  50099. # else
  50100. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
  50101. # endif
  50102. reflect() const VULKAN_HPP_NOEXCEPT
  50103. {
  50104. return std::tie( sType, pNext, pipelinePropertiesIdentifier );
  50105. }
  50106. #endif
  50107. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  50108. auto operator<=>( PhysicalDevicePipelinePropertiesFeaturesEXT const & ) const = default;
  50109. #else
  50110. bool operator==( PhysicalDevicePipelinePropertiesFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  50111. {
  50112. # if defined( VULKAN_HPP_USE_REFLECT )
  50113. return this->reflect() == rhs.reflect();
  50114. # else
  50115. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( pipelinePropertiesIdentifier == rhs.pipelinePropertiesIdentifier );
  50116. # endif
  50117. }
  50118. bool operator!=( PhysicalDevicePipelinePropertiesFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  50119. {
  50120. return !operator==( rhs );
  50121. }
  50122. #endif
  50123. public:
  50124. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDevicePipelinePropertiesFeaturesEXT;
  50125. void * pNext = {};
  50126. VULKAN_HPP_NAMESPACE::Bool32 pipelinePropertiesIdentifier = {};
  50127. };
  50128. template <>
  50129. struct CppType<StructureType, StructureType::ePhysicalDevicePipelinePropertiesFeaturesEXT>
  50130. {
  50131. using Type = PhysicalDevicePipelinePropertiesFeaturesEXT;
  50132. };
  50133. struct PhysicalDevicePipelineRobustnessFeaturesEXT
  50134. {
  50135. using NativeType = VkPhysicalDevicePipelineRobustnessFeaturesEXT;
  50136. static const bool allowDuplicate = false;
  50137. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDevicePipelineRobustnessFeaturesEXT;
  50138. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  50139. VULKAN_HPP_CONSTEXPR PhysicalDevicePipelineRobustnessFeaturesEXT( VULKAN_HPP_NAMESPACE::Bool32 pipelineRobustness_ = {},
  50140. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  50141. : pNext( pNext_ )
  50142. , pipelineRobustness( pipelineRobustness_ )
  50143. {
  50144. }
  50145. VULKAN_HPP_CONSTEXPR PhysicalDevicePipelineRobustnessFeaturesEXT( PhysicalDevicePipelineRobustnessFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  50146. PhysicalDevicePipelineRobustnessFeaturesEXT( VkPhysicalDevicePipelineRobustnessFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  50147. : PhysicalDevicePipelineRobustnessFeaturesEXT( *reinterpret_cast<PhysicalDevicePipelineRobustnessFeaturesEXT const *>( &rhs ) )
  50148. {
  50149. }
  50150. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  50151. PhysicalDevicePipelineRobustnessFeaturesEXT & operator=( PhysicalDevicePipelineRobustnessFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  50152. PhysicalDevicePipelineRobustnessFeaturesEXT & operator=( VkPhysicalDevicePipelineRobustnessFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  50153. {
  50154. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDevicePipelineRobustnessFeaturesEXT const *>( &rhs );
  50155. return *this;
  50156. }
  50157. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  50158. VULKAN_HPP_CONSTEXPR_14 PhysicalDevicePipelineRobustnessFeaturesEXT & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
  50159. {
  50160. pNext = pNext_;
  50161. return *this;
  50162. }
  50163. VULKAN_HPP_CONSTEXPR_14 PhysicalDevicePipelineRobustnessFeaturesEXT &
  50164. setPipelineRobustness( VULKAN_HPP_NAMESPACE::Bool32 pipelineRobustness_ ) VULKAN_HPP_NOEXCEPT
  50165. {
  50166. pipelineRobustness = pipelineRobustness_;
  50167. return *this;
  50168. }
  50169. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  50170. operator VkPhysicalDevicePipelineRobustnessFeaturesEXT const &() const VULKAN_HPP_NOEXCEPT
  50171. {
  50172. return *reinterpret_cast<const VkPhysicalDevicePipelineRobustnessFeaturesEXT *>( this );
  50173. }
  50174. operator VkPhysicalDevicePipelineRobustnessFeaturesEXT &() VULKAN_HPP_NOEXCEPT
  50175. {
  50176. return *reinterpret_cast<VkPhysicalDevicePipelineRobustnessFeaturesEXT *>( this );
  50177. }
  50178. #if defined( VULKAN_HPP_USE_REFLECT )
  50179. # if 14 <= VULKAN_HPP_CPP_VERSION
  50180. auto
  50181. # else
  50182. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
  50183. # endif
  50184. reflect() const VULKAN_HPP_NOEXCEPT
  50185. {
  50186. return std::tie( sType, pNext, pipelineRobustness );
  50187. }
  50188. #endif
  50189. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  50190. auto operator<=>( PhysicalDevicePipelineRobustnessFeaturesEXT const & ) const = default;
  50191. #else
  50192. bool operator==( PhysicalDevicePipelineRobustnessFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  50193. {
  50194. # if defined( VULKAN_HPP_USE_REFLECT )
  50195. return this->reflect() == rhs.reflect();
  50196. # else
  50197. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( pipelineRobustness == rhs.pipelineRobustness );
  50198. # endif
  50199. }
  50200. bool operator!=( PhysicalDevicePipelineRobustnessFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  50201. {
  50202. return !operator==( rhs );
  50203. }
  50204. #endif
  50205. public:
  50206. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDevicePipelineRobustnessFeaturesEXT;
  50207. void * pNext = {};
  50208. VULKAN_HPP_NAMESPACE::Bool32 pipelineRobustness = {};
  50209. };
  50210. template <>
  50211. struct CppType<StructureType, StructureType::ePhysicalDevicePipelineRobustnessFeaturesEXT>
  50212. {
  50213. using Type = PhysicalDevicePipelineRobustnessFeaturesEXT;
  50214. };
  50215. struct PhysicalDevicePipelineRobustnessPropertiesEXT
  50216. {
  50217. using NativeType = VkPhysicalDevicePipelineRobustnessPropertiesEXT;
  50218. static const bool allowDuplicate = false;
  50219. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDevicePipelineRobustnessPropertiesEXT;
  50220. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  50221. VULKAN_HPP_CONSTEXPR
  50222. PhysicalDevicePipelineRobustnessPropertiesEXT( VULKAN_HPP_NAMESPACE::PipelineRobustnessBufferBehaviorEXT defaultRobustnessStorageBuffers_ =
  50223. VULKAN_HPP_NAMESPACE::PipelineRobustnessBufferBehaviorEXT::eDeviceDefault,
  50224. VULKAN_HPP_NAMESPACE::PipelineRobustnessBufferBehaviorEXT defaultRobustnessUniformBuffers_ =
  50225. VULKAN_HPP_NAMESPACE::PipelineRobustnessBufferBehaviorEXT::eDeviceDefault,
  50226. VULKAN_HPP_NAMESPACE::PipelineRobustnessBufferBehaviorEXT defaultRobustnessVertexInputs_ =
  50227. VULKAN_HPP_NAMESPACE::PipelineRobustnessBufferBehaviorEXT::eDeviceDefault,
  50228. VULKAN_HPP_NAMESPACE::PipelineRobustnessImageBehaviorEXT defaultRobustnessImages_ =
  50229. VULKAN_HPP_NAMESPACE::PipelineRobustnessImageBehaviorEXT::eDeviceDefault,
  50230. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  50231. : pNext( pNext_ )
  50232. , defaultRobustnessStorageBuffers( defaultRobustnessStorageBuffers_ )
  50233. , defaultRobustnessUniformBuffers( defaultRobustnessUniformBuffers_ )
  50234. , defaultRobustnessVertexInputs( defaultRobustnessVertexInputs_ )
  50235. , defaultRobustnessImages( defaultRobustnessImages_ )
  50236. {
  50237. }
  50238. VULKAN_HPP_CONSTEXPR
  50239. PhysicalDevicePipelineRobustnessPropertiesEXT( PhysicalDevicePipelineRobustnessPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  50240. PhysicalDevicePipelineRobustnessPropertiesEXT( VkPhysicalDevicePipelineRobustnessPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  50241. : PhysicalDevicePipelineRobustnessPropertiesEXT( *reinterpret_cast<PhysicalDevicePipelineRobustnessPropertiesEXT const *>( &rhs ) )
  50242. {
  50243. }
  50244. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  50245. PhysicalDevicePipelineRobustnessPropertiesEXT & operator=( PhysicalDevicePipelineRobustnessPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  50246. PhysicalDevicePipelineRobustnessPropertiesEXT & operator=( VkPhysicalDevicePipelineRobustnessPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  50247. {
  50248. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDevicePipelineRobustnessPropertiesEXT const *>( &rhs );
  50249. return *this;
  50250. }
  50251. operator VkPhysicalDevicePipelineRobustnessPropertiesEXT const &() const VULKAN_HPP_NOEXCEPT
  50252. {
  50253. return *reinterpret_cast<const VkPhysicalDevicePipelineRobustnessPropertiesEXT *>( this );
  50254. }
  50255. operator VkPhysicalDevicePipelineRobustnessPropertiesEXT &() VULKAN_HPP_NOEXCEPT
  50256. {
  50257. return *reinterpret_cast<VkPhysicalDevicePipelineRobustnessPropertiesEXT *>( this );
  50258. }
  50259. #if defined( VULKAN_HPP_USE_REFLECT )
  50260. # if 14 <= VULKAN_HPP_CPP_VERSION
  50261. auto
  50262. # else
  50263. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  50264. void * const &,
  50265. VULKAN_HPP_NAMESPACE::PipelineRobustnessBufferBehaviorEXT const &,
  50266. VULKAN_HPP_NAMESPACE::PipelineRobustnessBufferBehaviorEXT const &,
  50267. VULKAN_HPP_NAMESPACE::PipelineRobustnessBufferBehaviorEXT const &,
  50268. VULKAN_HPP_NAMESPACE::PipelineRobustnessImageBehaviorEXT const &>
  50269. # endif
  50270. reflect() const VULKAN_HPP_NOEXCEPT
  50271. {
  50272. return std::tie( sType, pNext, defaultRobustnessStorageBuffers, defaultRobustnessUniformBuffers, defaultRobustnessVertexInputs, defaultRobustnessImages );
  50273. }
  50274. #endif
  50275. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  50276. auto operator<=>( PhysicalDevicePipelineRobustnessPropertiesEXT const & ) const = default;
  50277. #else
  50278. bool operator==( PhysicalDevicePipelineRobustnessPropertiesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  50279. {
  50280. # if defined( VULKAN_HPP_USE_REFLECT )
  50281. return this->reflect() == rhs.reflect();
  50282. # else
  50283. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( defaultRobustnessStorageBuffers == rhs.defaultRobustnessStorageBuffers ) &&
  50284. ( defaultRobustnessUniformBuffers == rhs.defaultRobustnessUniformBuffers ) &&
  50285. ( defaultRobustnessVertexInputs == rhs.defaultRobustnessVertexInputs ) && ( defaultRobustnessImages == rhs.defaultRobustnessImages );
  50286. # endif
  50287. }
  50288. bool operator!=( PhysicalDevicePipelineRobustnessPropertiesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  50289. {
  50290. return !operator==( rhs );
  50291. }
  50292. #endif
  50293. public:
  50294. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDevicePipelineRobustnessPropertiesEXT;
  50295. void * pNext = {};
  50296. VULKAN_HPP_NAMESPACE::PipelineRobustnessBufferBehaviorEXT defaultRobustnessStorageBuffers =
  50297. VULKAN_HPP_NAMESPACE::PipelineRobustnessBufferBehaviorEXT::eDeviceDefault;
  50298. VULKAN_HPP_NAMESPACE::PipelineRobustnessBufferBehaviorEXT defaultRobustnessUniformBuffers =
  50299. VULKAN_HPP_NAMESPACE::PipelineRobustnessBufferBehaviorEXT::eDeviceDefault;
  50300. VULKAN_HPP_NAMESPACE::PipelineRobustnessBufferBehaviorEXT defaultRobustnessVertexInputs =
  50301. VULKAN_HPP_NAMESPACE::PipelineRobustnessBufferBehaviorEXT::eDeviceDefault;
  50302. VULKAN_HPP_NAMESPACE::PipelineRobustnessImageBehaviorEXT defaultRobustnessImages = VULKAN_HPP_NAMESPACE::PipelineRobustnessImageBehaviorEXT::eDeviceDefault;
  50303. };
  50304. template <>
  50305. struct CppType<StructureType, StructureType::ePhysicalDevicePipelineRobustnessPropertiesEXT>
  50306. {
  50307. using Type = PhysicalDevicePipelineRobustnessPropertiesEXT;
  50308. };
  50309. struct PhysicalDevicePointClippingProperties
  50310. {
  50311. using NativeType = VkPhysicalDevicePointClippingProperties;
  50312. static const bool allowDuplicate = false;
  50313. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDevicePointClippingProperties;
  50314. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  50315. VULKAN_HPP_CONSTEXPR PhysicalDevicePointClippingProperties(
  50316. VULKAN_HPP_NAMESPACE::PointClippingBehavior pointClippingBehavior_ = VULKAN_HPP_NAMESPACE::PointClippingBehavior::eAllClipPlanes,
  50317. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  50318. : pNext( pNext_ )
  50319. , pointClippingBehavior( pointClippingBehavior_ )
  50320. {
  50321. }
  50322. VULKAN_HPP_CONSTEXPR PhysicalDevicePointClippingProperties( PhysicalDevicePointClippingProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  50323. PhysicalDevicePointClippingProperties( VkPhysicalDevicePointClippingProperties const & rhs ) VULKAN_HPP_NOEXCEPT
  50324. : PhysicalDevicePointClippingProperties( *reinterpret_cast<PhysicalDevicePointClippingProperties const *>( &rhs ) )
  50325. {
  50326. }
  50327. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  50328. PhysicalDevicePointClippingProperties & operator=( PhysicalDevicePointClippingProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  50329. PhysicalDevicePointClippingProperties & operator=( VkPhysicalDevicePointClippingProperties const & rhs ) VULKAN_HPP_NOEXCEPT
  50330. {
  50331. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDevicePointClippingProperties const *>( &rhs );
  50332. return *this;
  50333. }
  50334. operator VkPhysicalDevicePointClippingProperties const &() const VULKAN_HPP_NOEXCEPT
  50335. {
  50336. return *reinterpret_cast<const VkPhysicalDevicePointClippingProperties *>( this );
  50337. }
  50338. operator VkPhysicalDevicePointClippingProperties &() VULKAN_HPP_NOEXCEPT
  50339. {
  50340. return *reinterpret_cast<VkPhysicalDevicePointClippingProperties *>( this );
  50341. }
  50342. #if defined( VULKAN_HPP_USE_REFLECT )
  50343. # if 14 <= VULKAN_HPP_CPP_VERSION
  50344. auto
  50345. # else
  50346. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::PointClippingBehavior const &>
  50347. # endif
  50348. reflect() const VULKAN_HPP_NOEXCEPT
  50349. {
  50350. return std::tie( sType, pNext, pointClippingBehavior );
  50351. }
  50352. #endif
  50353. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  50354. auto operator<=>( PhysicalDevicePointClippingProperties const & ) const = default;
  50355. #else
  50356. bool operator==( PhysicalDevicePointClippingProperties const & rhs ) const VULKAN_HPP_NOEXCEPT
  50357. {
  50358. # if defined( VULKAN_HPP_USE_REFLECT )
  50359. return this->reflect() == rhs.reflect();
  50360. # else
  50361. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( pointClippingBehavior == rhs.pointClippingBehavior );
  50362. # endif
  50363. }
  50364. bool operator!=( PhysicalDevicePointClippingProperties const & rhs ) const VULKAN_HPP_NOEXCEPT
  50365. {
  50366. return !operator==( rhs );
  50367. }
  50368. #endif
  50369. public:
  50370. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDevicePointClippingProperties;
  50371. void * pNext = {};
  50372. VULKAN_HPP_NAMESPACE::PointClippingBehavior pointClippingBehavior = VULKAN_HPP_NAMESPACE::PointClippingBehavior::eAllClipPlanes;
  50373. };
  50374. template <>
  50375. struct CppType<StructureType, StructureType::ePhysicalDevicePointClippingProperties>
  50376. {
  50377. using Type = PhysicalDevicePointClippingProperties;
  50378. };
  50379. using PhysicalDevicePointClippingPropertiesKHR = PhysicalDevicePointClippingProperties;
  50380. #if defined( VK_ENABLE_BETA_EXTENSIONS )
  50381. struct PhysicalDevicePortabilitySubsetFeaturesKHR
  50382. {
  50383. using NativeType = VkPhysicalDevicePortabilitySubsetFeaturesKHR;
  50384. static const bool allowDuplicate = false;
  50385. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDevicePortabilitySubsetFeaturesKHR;
  50386. # if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  50387. VULKAN_HPP_CONSTEXPR PhysicalDevicePortabilitySubsetFeaturesKHR( VULKAN_HPP_NAMESPACE::Bool32 constantAlphaColorBlendFactors_ = {},
  50388. VULKAN_HPP_NAMESPACE::Bool32 events_ = {},
  50389. VULKAN_HPP_NAMESPACE::Bool32 imageViewFormatReinterpretation_ = {},
  50390. VULKAN_HPP_NAMESPACE::Bool32 imageViewFormatSwizzle_ = {},
  50391. VULKAN_HPP_NAMESPACE::Bool32 imageView2DOn3DImage_ = {},
  50392. VULKAN_HPP_NAMESPACE::Bool32 multisampleArrayImage_ = {},
  50393. VULKAN_HPP_NAMESPACE::Bool32 mutableComparisonSamplers_ = {},
  50394. VULKAN_HPP_NAMESPACE::Bool32 pointPolygons_ = {},
  50395. VULKAN_HPP_NAMESPACE::Bool32 samplerMipLodBias_ = {},
  50396. VULKAN_HPP_NAMESPACE::Bool32 separateStencilMaskRef_ = {},
  50397. VULKAN_HPP_NAMESPACE::Bool32 shaderSampleRateInterpolationFunctions_ = {},
  50398. VULKAN_HPP_NAMESPACE::Bool32 tessellationIsolines_ = {},
  50399. VULKAN_HPP_NAMESPACE::Bool32 tessellationPointMode_ = {},
  50400. VULKAN_HPP_NAMESPACE::Bool32 triangleFans_ = {},
  50401. VULKAN_HPP_NAMESPACE::Bool32 vertexAttributeAccessBeyondStride_ = {},
  50402. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  50403. : pNext( pNext_ )
  50404. , constantAlphaColorBlendFactors( constantAlphaColorBlendFactors_ )
  50405. , events( events_ )
  50406. , imageViewFormatReinterpretation( imageViewFormatReinterpretation_ )
  50407. , imageViewFormatSwizzle( imageViewFormatSwizzle_ )
  50408. , imageView2DOn3DImage( imageView2DOn3DImage_ )
  50409. , multisampleArrayImage( multisampleArrayImage_ )
  50410. , mutableComparisonSamplers( mutableComparisonSamplers_ )
  50411. , pointPolygons( pointPolygons_ )
  50412. , samplerMipLodBias( samplerMipLodBias_ )
  50413. , separateStencilMaskRef( separateStencilMaskRef_ )
  50414. , shaderSampleRateInterpolationFunctions( shaderSampleRateInterpolationFunctions_ )
  50415. , tessellationIsolines( tessellationIsolines_ )
  50416. , tessellationPointMode( tessellationPointMode_ )
  50417. , triangleFans( triangleFans_ )
  50418. , vertexAttributeAccessBeyondStride( vertexAttributeAccessBeyondStride_ )
  50419. {
  50420. }
  50421. VULKAN_HPP_CONSTEXPR PhysicalDevicePortabilitySubsetFeaturesKHR( PhysicalDevicePortabilitySubsetFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  50422. PhysicalDevicePortabilitySubsetFeaturesKHR( VkPhysicalDevicePortabilitySubsetFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  50423. : PhysicalDevicePortabilitySubsetFeaturesKHR( *reinterpret_cast<PhysicalDevicePortabilitySubsetFeaturesKHR const *>( &rhs ) )
  50424. {
  50425. }
  50426. # endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  50427. PhysicalDevicePortabilitySubsetFeaturesKHR & operator=( PhysicalDevicePortabilitySubsetFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  50428. PhysicalDevicePortabilitySubsetFeaturesKHR & operator=( VkPhysicalDevicePortabilitySubsetFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  50429. {
  50430. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDevicePortabilitySubsetFeaturesKHR const *>( &rhs );
  50431. return *this;
  50432. }
  50433. # if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  50434. VULKAN_HPP_CONSTEXPR_14 PhysicalDevicePortabilitySubsetFeaturesKHR & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
  50435. {
  50436. pNext = pNext_;
  50437. return *this;
  50438. }
  50439. VULKAN_HPP_CONSTEXPR_14 PhysicalDevicePortabilitySubsetFeaturesKHR &
  50440. setConstantAlphaColorBlendFactors( VULKAN_HPP_NAMESPACE::Bool32 constantAlphaColorBlendFactors_ ) VULKAN_HPP_NOEXCEPT
  50441. {
  50442. constantAlphaColorBlendFactors = constantAlphaColorBlendFactors_;
  50443. return *this;
  50444. }
  50445. VULKAN_HPP_CONSTEXPR_14 PhysicalDevicePortabilitySubsetFeaturesKHR & setEvents( VULKAN_HPP_NAMESPACE::Bool32 events_ ) VULKAN_HPP_NOEXCEPT
  50446. {
  50447. events = events_;
  50448. return *this;
  50449. }
  50450. VULKAN_HPP_CONSTEXPR_14 PhysicalDevicePortabilitySubsetFeaturesKHR &
  50451. setImageViewFormatReinterpretation( VULKAN_HPP_NAMESPACE::Bool32 imageViewFormatReinterpretation_ ) VULKAN_HPP_NOEXCEPT
  50452. {
  50453. imageViewFormatReinterpretation = imageViewFormatReinterpretation_;
  50454. return *this;
  50455. }
  50456. VULKAN_HPP_CONSTEXPR_14 PhysicalDevicePortabilitySubsetFeaturesKHR &
  50457. setImageViewFormatSwizzle( VULKAN_HPP_NAMESPACE::Bool32 imageViewFormatSwizzle_ ) VULKAN_HPP_NOEXCEPT
  50458. {
  50459. imageViewFormatSwizzle = imageViewFormatSwizzle_;
  50460. return *this;
  50461. }
  50462. VULKAN_HPP_CONSTEXPR_14 PhysicalDevicePortabilitySubsetFeaturesKHR &
  50463. setImageView2DOn3DImage( VULKAN_HPP_NAMESPACE::Bool32 imageView2DOn3DImage_ ) VULKAN_HPP_NOEXCEPT
  50464. {
  50465. imageView2DOn3DImage = imageView2DOn3DImage_;
  50466. return *this;
  50467. }
  50468. VULKAN_HPP_CONSTEXPR_14 PhysicalDevicePortabilitySubsetFeaturesKHR &
  50469. setMultisampleArrayImage( VULKAN_HPP_NAMESPACE::Bool32 multisampleArrayImage_ ) VULKAN_HPP_NOEXCEPT
  50470. {
  50471. multisampleArrayImage = multisampleArrayImage_;
  50472. return *this;
  50473. }
  50474. VULKAN_HPP_CONSTEXPR_14 PhysicalDevicePortabilitySubsetFeaturesKHR &
  50475. setMutableComparisonSamplers( VULKAN_HPP_NAMESPACE::Bool32 mutableComparisonSamplers_ ) VULKAN_HPP_NOEXCEPT
  50476. {
  50477. mutableComparisonSamplers = mutableComparisonSamplers_;
  50478. return *this;
  50479. }
  50480. VULKAN_HPP_CONSTEXPR_14 PhysicalDevicePortabilitySubsetFeaturesKHR & setPointPolygons( VULKAN_HPP_NAMESPACE::Bool32 pointPolygons_ ) VULKAN_HPP_NOEXCEPT
  50481. {
  50482. pointPolygons = pointPolygons_;
  50483. return *this;
  50484. }
  50485. VULKAN_HPP_CONSTEXPR_14 PhysicalDevicePortabilitySubsetFeaturesKHR &
  50486. setSamplerMipLodBias( VULKAN_HPP_NAMESPACE::Bool32 samplerMipLodBias_ ) VULKAN_HPP_NOEXCEPT
  50487. {
  50488. samplerMipLodBias = samplerMipLodBias_;
  50489. return *this;
  50490. }
  50491. VULKAN_HPP_CONSTEXPR_14 PhysicalDevicePortabilitySubsetFeaturesKHR &
  50492. setSeparateStencilMaskRef( VULKAN_HPP_NAMESPACE::Bool32 separateStencilMaskRef_ ) VULKAN_HPP_NOEXCEPT
  50493. {
  50494. separateStencilMaskRef = separateStencilMaskRef_;
  50495. return *this;
  50496. }
  50497. VULKAN_HPP_CONSTEXPR_14 PhysicalDevicePortabilitySubsetFeaturesKHR &
  50498. setShaderSampleRateInterpolationFunctions( VULKAN_HPP_NAMESPACE::Bool32 shaderSampleRateInterpolationFunctions_ ) VULKAN_HPP_NOEXCEPT
  50499. {
  50500. shaderSampleRateInterpolationFunctions = shaderSampleRateInterpolationFunctions_;
  50501. return *this;
  50502. }
  50503. VULKAN_HPP_CONSTEXPR_14 PhysicalDevicePortabilitySubsetFeaturesKHR &
  50504. setTessellationIsolines( VULKAN_HPP_NAMESPACE::Bool32 tessellationIsolines_ ) VULKAN_HPP_NOEXCEPT
  50505. {
  50506. tessellationIsolines = tessellationIsolines_;
  50507. return *this;
  50508. }
  50509. VULKAN_HPP_CONSTEXPR_14 PhysicalDevicePortabilitySubsetFeaturesKHR &
  50510. setTessellationPointMode( VULKAN_HPP_NAMESPACE::Bool32 tessellationPointMode_ ) VULKAN_HPP_NOEXCEPT
  50511. {
  50512. tessellationPointMode = tessellationPointMode_;
  50513. return *this;
  50514. }
  50515. VULKAN_HPP_CONSTEXPR_14 PhysicalDevicePortabilitySubsetFeaturesKHR & setTriangleFans( VULKAN_HPP_NAMESPACE::Bool32 triangleFans_ ) VULKAN_HPP_NOEXCEPT
  50516. {
  50517. triangleFans = triangleFans_;
  50518. return *this;
  50519. }
  50520. VULKAN_HPP_CONSTEXPR_14 PhysicalDevicePortabilitySubsetFeaturesKHR &
  50521. setVertexAttributeAccessBeyondStride( VULKAN_HPP_NAMESPACE::Bool32 vertexAttributeAccessBeyondStride_ ) VULKAN_HPP_NOEXCEPT
  50522. {
  50523. vertexAttributeAccessBeyondStride = vertexAttributeAccessBeyondStride_;
  50524. return *this;
  50525. }
  50526. # endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  50527. operator VkPhysicalDevicePortabilitySubsetFeaturesKHR const &() const VULKAN_HPP_NOEXCEPT
  50528. {
  50529. return *reinterpret_cast<const VkPhysicalDevicePortabilitySubsetFeaturesKHR *>( this );
  50530. }
  50531. operator VkPhysicalDevicePortabilitySubsetFeaturesKHR &() VULKAN_HPP_NOEXCEPT
  50532. {
  50533. return *reinterpret_cast<VkPhysicalDevicePortabilitySubsetFeaturesKHR *>( this );
  50534. }
  50535. # if defined( VULKAN_HPP_USE_REFLECT )
  50536. # if 14 <= VULKAN_HPP_CPP_VERSION
  50537. auto
  50538. # else
  50539. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  50540. void * const &,
  50541. VULKAN_HPP_NAMESPACE::Bool32 const &,
  50542. VULKAN_HPP_NAMESPACE::Bool32 const &,
  50543. VULKAN_HPP_NAMESPACE::Bool32 const &,
  50544. VULKAN_HPP_NAMESPACE::Bool32 const &,
  50545. VULKAN_HPP_NAMESPACE::Bool32 const &,
  50546. VULKAN_HPP_NAMESPACE::Bool32 const &,
  50547. VULKAN_HPP_NAMESPACE::Bool32 const &,
  50548. VULKAN_HPP_NAMESPACE::Bool32 const &,
  50549. VULKAN_HPP_NAMESPACE::Bool32 const &,
  50550. VULKAN_HPP_NAMESPACE::Bool32 const &,
  50551. VULKAN_HPP_NAMESPACE::Bool32 const &,
  50552. VULKAN_HPP_NAMESPACE::Bool32 const &,
  50553. VULKAN_HPP_NAMESPACE::Bool32 const &,
  50554. VULKAN_HPP_NAMESPACE::Bool32 const &,
  50555. VULKAN_HPP_NAMESPACE::Bool32 const &>
  50556. # endif
  50557. reflect() const VULKAN_HPP_NOEXCEPT
  50558. {
  50559. return std::tie( sType,
  50560. pNext,
  50561. constantAlphaColorBlendFactors,
  50562. events,
  50563. imageViewFormatReinterpretation,
  50564. imageViewFormatSwizzle,
  50565. imageView2DOn3DImage,
  50566. multisampleArrayImage,
  50567. mutableComparisonSamplers,
  50568. pointPolygons,
  50569. samplerMipLodBias,
  50570. separateStencilMaskRef,
  50571. shaderSampleRateInterpolationFunctions,
  50572. tessellationIsolines,
  50573. tessellationPointMode,
  50574. triangleFans,
  50575. vertexAttributeAccessBeyondStride );
  50576. }
  50577. # endif
  50578. # if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  50579. auto operator<=>( PhysicalDevicePortabilitySubsetFeaturesKHR const & ) const = default;
  50580. # else
  50581. bool operator==( PhysicalDevicePortabilitySubsetFeaturesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  50582. {
  50583. # if defined( VULKAN_HPP_USE_REFLECT )
  50584. return this->reflect() == rhs.reflect();
  50585. # else
  50586. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( constantAlphaColorBlendFactors == rhs.constantAlphaColorBlendFactors ) &&
  50587. ( events == rhs.events ) && ( imageViewFormatReinterpretation == rhs.imageViewFormatReinterpretation ) &&
  50588. ( imageViewFormatSwizzle == rhs.imageViewFormatSwizzle ) && ( imageView2DOn3DImage == rhs.imageView2DOn3DImage ) &&
  50589. ( multisampleArrayImage == rhs.multisampleArrayImage ) && ( mutableComparisonSamplers == rhs.mutableComparisonSamplers ) &&
  50590. ( pointPolygons == rhs.pointPolygons ) && ( samplerMipLodBias == rhs.samplerMipLodBias ) &&
  50591. ( separateStencilMaskRef == rhs.separateStencilMaskRef ) &&
  50592. ( shaderSampleRateInterpolationFunctions == rhs.shaderSampleRateInterpolationFunctions ) && ( tessellationIsolines == rhs.tessellationIsolines ) &&
  50593. ( tessellationPointMode == rhs.tessellationPointMode ) && ( triangleFans == rhs.triangleFans ) &&
  50594. ( vertexAttributeAccessBeyondStride == rhs.vertexAttributeAccessBeyondStride );
  50595. # endif
  50596. }
  50597. bool operator!=( PhysicalDevicePortabilitySubsetFeaturesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  50598. {
  50599. return !operator==( rhs );
  50600. }
  50601. # endif
  50602. public:
  50603. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDevicePortabilitySubsetFeaturesKHR;
  50604. void * pNext = {};
  50605. VULKAN_HPP_NAMESPACE::Bool32 constantAlphaColorBlendFactors = {};
  50606. VULKAN_HPP_NAMESPACE::Bool32 events = {};
  50607. VULKAN_HPP_NAMESPACE::Bool32 imageViewFormatReinterpretation = {};
  50608. VULKAN_HPP_NAMESPACE::Bool32 imageViewFormatSwizzle = {};
  50609. VULKAN_HPP_NAMESPACE::Bool32 imageView2DOn3DImage = {};
  50610. VULKAN_HPP_NAMESPACE::Bool32 multisampleArrayImage = {};
  50611. VULKAN_HPP_NAMESPACE::Bool32 mutableComparisonSamplers = {};
  50612. VULKAN_HPP_NAMESPACE::Bool32 pointPolygons = {};
  50613. VULKAN_HPP_NAMESPACE::Bool32 samplerMipLodBias = {};
  50614. VULKAN_HPP_NAMESPACE::Bool32 separateStencilMaskRef = {};
  50615. VULKAN_HPP_NAMESPACE::Bool32 shaderSampleRateInterpolationFunctions = {};
  50616. VULKAN_HPP_NAMESPACE::Bool32 tessellationIsolines = {};
  50617. VULKAN_HPP_NAMESPACE::Bool32 tessellationPointMode = {};
  50618. VULKAN_HPP_NAMESPACE::Bool32 triangleFans = {};
  50619. VULKAN_HPP_NAMESPACE::Bool32 vertexAttributeAccessBeyondStride = {};
  50620. };
  50621. template <>
  50622. struct CppType<StructureType, StructureType::ePhysicalDevicePortabilitySubsetFeaturesKHR>
  50623. {
  50624. using Type = PhysicalDevicePortabilitySubsetFeaturesKHR;
  50625. };
  50626. #endif /*VK_ENABLE_BETA_EXTENSIONS*/
  50627. #if defined( VK_ENABLE_BETA_EXTENSIONS )
  50628. struct PhysicalDevicePortabilitySubsetPropertiesKHR
  50629. {
  50630. using NativeType = VkPhysicalDevicePortabilitySubsetPropertiesKHR;
  50631. static const bool allowDuplicate = false;
  50632. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDevicePortabilitySubsetPropertiesKHR;
  50633. # if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  50634. VULKAN_HPP_CONSTEXPR PhysicalDevicePortabilitySubsetPropertiesKHR( uint32_t minVertexInputBindingStrideAlignment_ = {},
  50635. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  50636. : pNext( pNext_ )
  50637. , minVertexInputBindingStrideAlignment( minVertexInputBindingStrideAlignment_ )
  50638. {
  50639. }
  50640. VULKAN_HPP_CONSTEXPR PhysicalDevicePortabilitySubsetPropertiesKHR( PhysicalDevicePortabilitySubsetPropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  50641. PhysicalDevicePortabilitySubsetPropertiesKHR( VkPhysicalDevicePortabilitySubsetPropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  50642. : PhysicalDevicePortabilitySubsetPropertiesKHR( *reinterpret_cast<PhysicalDevicePortabilitySubsetPropertiesKHR const *>( &rhs ) )
  50643. {
  50644. }
  50645. # endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  50646. PhysicalDevicePortabilitySubsetPropertiesKHR & operator=( PhysicalDevicePortabilitySubsetPropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  50647. PhysicalDevicePortabilitySubsetPropertiesKHR & operator=( VkPhysicalDevicePortabilitySubsetPropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  50648. {
  50649. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDevicePortabilitySubsetPropertiesKHR const *>( &rhs );
  50650. return *this;
  50651. }
  50652. # if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  50653. VULKAN_HPP_CONSTEXPR_14 PhysicalDevicePortabilitySubsetPropertiesKHR & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
  50654. {
  50655. pNext = pNext_;
  50656. return *this;
  50657. }
  50658. VULKAN_HPP_CONSTEXPR_14 PhysicalDevicePortabilitySubsetPropertiesKHR &
  50659. setMinVertexInputBindingStrideAlignment( uint32_t minVertexInputBindingStrideAlignment_ ) VULKAN_HPP_NOEXCEPT
  50660. {
  50661. minVertexInputBindingStrideAlignment = minVertexInputBindingStrideAlignment_;
  50662. return *this;
  50663. }
  50664. # endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  50665. operator VkPhysicalDevicePortabilitySubsetPropertiesKHR const &() const VULKAN_HPP_NOEXCEPT
  50666. {
  50667. return *reinterpret_cast<const VkPhysicalDevicePortabilitySubsetPropertiesKHR *>( this );
  50668. }
  50669. operator VkPhysicalDevicePortabilitySubsetPropertiesKHR &() VULKAN_HPP_NOEXCEPT
  50670. {
  50671. return *reinterpret_cast<VkPhysicalDevicePortabilitySubsetPropertiesKHR *>( this );
  50672. }
  50673. # if defined( VULKAN_HPP_USE_REFLECT )
  50674. # if 14 <= VULKAN_HPP_CPP_VERSION
  50675. auto
  50676. # else
  50677. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, uint32_t const &>
  50678. # endif
  50679. reflect() const VULKAN_HPP_NOEXCEPT
  50680. {
  50681. return std::tie( sType, pNext, minVertexInputBindingStrideAlignment );
  50682. }
  50683. # endif
  50684. # if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  50685. auto operator<=>( PhysicalDevicePortabilitySubsetPropertiesKHR const & ) const = default;
  50686. # else
  50687. bool operator==( PhysicalDevicePortabilitySubsetPropertiesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  50688. {
  50689. # if defined( VULKAN_HPP_USE_REFLECT )
  50690. return this->reflect() == rhs.reflect();
  50691. # else
  50692. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( minVertexInputBindingStrideAlignment == rhs.minVertexInputBindingStrideAlignment );
  50693. # endif
  50694. }
  50695. bool operator!=( PhysicalDevicePortabilitySubsetPropertiesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  50696. {
  50697. return !operator==( rhs );
  50698. }
  50699. # endif
  50700. public:
  50701. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDevicePortabilitySubsetPropertiesKHR;
  50702. void * pNext = {};
  50703. uint32_t minVertexInputBindingStrideAlignment = {};
  50704. };
  50705. template <>
  50706. struct CppType<StructureType, StructureType::ePhysicalDevicePortabilitySubsetPropertiesKHR>
  50707. {
  50708. using Type = PhysicalDevicePortabilitySubsetPropertiesKHR;
  50709. };
  50710. #endif /*VK_ENABLE_BETA_EXTENSIONS*/
  50711. struct PhysicalDevicePresentIdFeaturesKHR
  50712. {
  50713. using NativeType = VkPhysicalDevicePresentIdFeaturesKHR;
  50714. static const bool allowDuplicate = false;
  50715. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDevicePresentIdFeaturesKHR;
  50716. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  50717. VULKAN_HPP_CONSTEXPR PhysicalDevicePresentIdFeaturesKHR( VULKAN_HPP_NAMESPACE::Bool32 presentId_ = {}, void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  50718. : pNext( pNext_ )
  50719. , presentId( presentId_ )
  50720. {
  50721. }
  50722. VULKAN_HPP_CONSTEXPR PhysicalDevicePresentIdFeaturesKHR( PhysicalDevicePresentIdFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  50723. PhysicalDevicePresentIdFeaturesKHR( VkPhysicalDevicePresentIdFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  50724. : PhysicalDevicePresentIdFeaturesKHR( *reinterpret_cast<PhysicalDevicePresentIdFeaturesKHR const *>( &rhs ) )
  50725. {
  50726. }
  50727. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  50728. PhysicalDevicePresentIdFeaturesKHR & operator=( PhysicalDevicePresentIdFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  50729. PhysicalDevicePresentIdFeaturesKHR & operator=( VkPhysicalDevicePresentIdFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  50730. {
  50731. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDevicePresentIdFeaturesKHR const *>( &rhs );
  50732. return *this;
  50733. }
  50734. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  50735. VULKAN_HPP_CONSTEXPR_14 PhysicalDevicePresentIdFeaturesKHR & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
  50736. {
  50737. pNext = pNext_;
  50738. return *this;
  50739. }
  50740. VULKAN_HPP_CONSTEXPR_14 PhysicalDevicePresentIdFeaturesKHR & setPresentId( VULKAN_HPP_NAMESPACE::Bool32 presentId_ ) VULKAN_HPP_NOEXCEPT
  50741. {
  50742. presentId = presentId_;
  50743. return *this;
  50744. }
  50745. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  50746. operator VkPhysicalDevicePresentIdFeaturesKHR const &() const VULKAN_HPP_NOEXCEPT
  50747. {
  50748. return *reinterpret_cast<const VkPhysicalDevicePresentIdFeaturesKHR *>( this );
  50749. }
  50750. operator VkPhysicalDevicePresentIdFeaturesKHR &() VULKAN_HPP_NOEXCEPT
  50751. {
  50752. return *reinterpret_cast<VkPhysicalDevicePresentIdFeaturesKHR *>( this );
  50753. }
  50754. #if defined( VULKAN_HPP_USE_REFLECT )
  50755. # if 14 <= VULKAN_HPP_CPP_VERSION
  50756. auto
  50757. # else
  50758. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
  50759. # endif
  50760. reflect() const VULKAN_HPP_NOEXCEPT
  50761. {
  50762. return std::tie( sType, pNext, presentId );
  50763. }
  50764. #endif
  50765. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  50766. auto operator<=>( PhysicalDevicePresentIdFeaturesKHR const & ) const = default;
  50767. #else
  50768. bool operator==( PhysicalDevicePresentIdFeaturesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  50769. {
  50770. # if defined( VULKAN_HPP_USE_REFLECT )
  50771. return this->reflect() == rhs.reflect();
  50772. # else
  50773. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( presentId == rhs.presentId );
  50774. # endif
  50775. }
  50776. bool operator!=( PhysicalDevicePresentIdFeaturesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  50777. {
  50778. return !operator==( rhs );
  50779. }
  50780. #endif
  50781. public:
  50782. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDevicePresentIdFeaturesKHR;
  50783. void * pNext = {};
  50784. VULKAN_HPP_NAMESPACE::Bool32 presentId = {};
  50785. };
  50786. template <>
  50787. struct CppType<StructureType, StructureType::ePhysicalDevicePresentIdFeaturesKHR>
  50788. {
  50789. using Type = PhysicalDevicePresentIdFeaturesKHR;
  50790. };
  50791. struct PhysicalDevicePresentWaitFeaturesKHR
  50792. {
  50793. using NativeType = VkPhysicalDevicePresentWaitFeaturesKHR;
  50794. static const bool allowDuplicate = false;
  50795. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDevicePresentWaitFeaturesKHR;
  50796. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  50797. VULKAN_HPP_CONSTEXPR PhysicalDevicePresentWaitFeaturesKHR( VULKAN_HPP_NAMESPACE::Bool32 presentWait_ = {}, void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  50798. : pNext( pNext_ )
  50799. , presentWait( presentWait_ )
  50800. {
  50801. }
  50802. VULKAN_HPP_CONSTEXPR PhysicalDevicePresentWaitFeaturesKHR( PhysicalDevicePresentWaitFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  50803. PhysicalDevicePresentWaitFeaturesKHR( VkPhysicalDevicePresentWaitFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  50804. : PhysicalDevicePresentWaitFeaturesKHR( *reinterpret_cast<PhysicalDevicePresentWaitFeaturesKHR const *>( &rhs ) )
  50805. {
  50806. }
  50807. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  50808. PhysicalDevicePresentWaitFeaturesKHR & operator=( PhysicalDevicePresentWaitFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  50809. PhysicalDevicePresentWaitFeaturesKHR & operator=( VkPhysicalDevicePresentWaitFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  50810. {
  50811. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDevicePresentWaitFeaturesKHR const *>( &rhs );
  50812. return *this;
  50813. }
  50814. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  50815. VULKAN_HPP_CONSTEXPR_14 PhysicalDevicePresentWaitFeaturesKHR & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
  50816. {
  50817. pNext = pNext_;
  50818. return *this;
  50819. }
  50820. VULKAN_HPP_CONSTEXPR_14 PhysicalDevicePresentWaitFeaturesKHR & setPresentWait( VULKAN_HPP_NAMESPACE::Bool32 presentWait_ ) VULKAN_HPP_NOEXCEPT
  50821. {
  50822. presentWait = presentWait_;
  50823. return *this;
  50824. }
  50825. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  50826. operator VkPhysicalDevicePresentWaitFeaturesKHR const &() const VULKAN_HPP_NOEXCEPT
  50827. {
  50828. return *reinterpret_cast<const VkPhysicalDevicePresentWaitFeaturesKHR *>( this );
  50829. }
  50830. operator VkPhysicalDevicePresentWaitFeaturesKHR &() VULKAN_HPP_NOEXCEPT
  50831. {
  50832. return *reinterpret_cast<VkPhysicalDevicePresentWaitFeaturesKHR *>( this );
  50833. }
  50834. #if defined( VULKAN_HPP_USE_REFLECT )
  50835. # if 14 <= VULKAN_HPP_CPP_VERSION
  50836. auto
  50837. # else
  50838. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
  50839. # endif
  50840. reflect() const VULKAN_HPP_NOEXCEPT
  50841. {
  50842. return std::tie( sType, pNext, presentWait );
  50843. }
  50844. #endif
  50845. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  50846. auto operator<=>( PhysicalDevicePresentWaitFeaturesKHR const & ) const = default;
  50847. #else
  50848. bool operator==( PhysicalDevicePresentWaitFeaturesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  50849. {
  50850. # if defined( VULKAN_HPP_USE_REFLECT )
  50851. return this->reflect() == rhs.reflect();
  50852. # else
  50853. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( presentWait == rhs.presentWait );
  50854. # endif
  50855. }
  50856. bool operator!=( PhysicalDevicePresentWaitFeaturesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  50857. {
  50858. return !operator==( rhs );
  50859. }
  50860. #endif
  50861. public:
  50862. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDevicePresentWaitFeaturesKHR;
  50863. void * pNext = {};
  50864. VULKAN_HPP_NAMESPACE::Bool32 presentWait = {};
  50865. };
  50866. template <>
  50867. struct CppType<StructureType, StructureType::ePhysicalDevicePresentWaitFeaturesKHR>
  50868. {
  50869. using Type = PhysicalDevicePresentWaitFeaturesKHR;
  50870. };
  50871. struct PhysicalDevicePrimitiveTopologyListRestartFeaturesEXT
  50872. {
  50873. using NativeType = VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT;
  50874. static const bool allowDuplicate = false;
  50875. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDevicePrimitiveTopologyListRestartFeaturesEXT;
  50876. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  50877. VULKAN_HPP_CONSTEXPR PhysicalDevicePrimitiveTopologyListRestartFeaturesEXT( VULKAN_HPP_NAMESPACE::Bool32 primitiveTopologyListRestart_ = {},
  50878. VULKAN_HPP_NAMESPACE::Bool32 primitiveTopologyPatchListRestart_ = {},
  50879. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  50880. : pNext( pNext_ )
  50881. , primitiveTopologyListRestart( primitiveTopologyListRestart_ )
  50882. , primitiveTopologyPatchListRestart( primitiveTopologyPatchListRestart_ )
  50883. {
  50884. }
  50885. VULKAN_HPP_CONSTEXPR
  50886. PhysicalDevicePrimitiveTopologyListRestartFeaturesEXT( PhysicalDevicePrimitiveTopologyListRestartFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  50887. PhysicalDevicePrimitiveTopologyListRestartFeaturesEXT( VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  50888. : PhysicalDevicePrimitiveTopologyListRestartFeaturesEXT( *reinterpret_cast<PhysicalDevicePrimitiveTopologyListRestartFeaturesEXT const *>( &rhs ) )
  50889. {
  50890. }
  50891. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  50892. PhysicalDevicePrimitiveTopologyListRestartFeaturesEXT &
  50893. operator=( PhysicalDevicePrimitiveTopologyListRestartFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  50894. PhysicalDevicePrimitiveTopologyListRestartFeaturesEXT & operator=( VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  50895. {
  50896. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDevicePrimitiveTopologyListRestartFeaturesEXT const *>( &rhs );
  50897. return *this;
  50898. }
  50899. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  50900. VULKAN_HPP_CONSTEXPR_14 PhysicalDevicePrimitiveTopologyListRestartFeaturesEXT & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
  50901. {
  50902. pNext = pNext_;
  50903. return *this;
  50904. }
  50905. VULKAN_HPP_CONSTEXPR_14 PhysicalDevicePrimitiveTopologyListRestartFeaturesEXT &
  50906. setPrimitiveTopologyListRestart( VULKAN_HPP_NAMESPACE::Bool32 primitiveTopologyListRestart_ ) VULKAN_HPP_NOEXCEPT
  50907. {
  50908. primitiveTopologyListRestart = primitiveTopologyListRestart_;
  50909. return *this;
  50910. }
  50911. VULKAN_HPP_CONSTEXPR_14 PhysicalDevicePrimitiveTopologyListRestartFeaturesEXT &
  50912. setPrimitiveTopologyPatchListRestart( VULKAN_HPP_NAMESPACE::Bool32 primitiveTopologyPatchListRestart_ ) VULKAN_HPP_NOEXCEPT
  50913. {
  50914. primitiveTopologyPatchListRestart = primitiveTopologyPatchListRestart_;
  50915. return *this;
  50916. }
  50917. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  50918. operator VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT const &() const VULKAN_HPP_NOEXCEPT
  50919. {
  50920. return *reinterpret_cast<const VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT *>( this );
  50921. }
  50922. operator VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT &() VULKAN_HPP_NOEXCEPT
  50923. {
  50924. return *reinterpret_cast<VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT *>( this );
  50925. }
  50926. #if defined( VULKAN_HPP_USE_REFLECT )
  50927. # if 14 <= VULKAN_HPP_CPP_VERSION
  50928. auto
  50929. # else
  50930. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
  50931. # endif
  50932. reflect() const VULKAN_HPP_NOEXCEPT
  50933. {
  50934. return std::tie( sType, pNext, primitiveTopologyListRestart, primitiveTopologyPatchListRestart );
  50935. }
  50936. #endif
  50937. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  50938. auto operator<=>( PhysicalDevicePrimitiveTopologyListRestartFeaturesEXT const & ) const = default;
  50939. #else
  50940. bool operator==( PhysicalDevicePrimitiveTopologyListRestartFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  50941. {
  50942. # if defined( VULKAN_HPP_USE_REFLECT )
  50943. return this->reflect() == rhs.reflect();
  50944. # else
  50945. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( primitiveTopologyListRestart == rhs.primitiveTopologyListRestart ) &&
  50946. ( primitiveTopologyPatchListRestart == rhs.primitiveTopologyPatchListRestart );
  50947. # endif
  50948. }
  50949. bool operator!=( PhysicalDevicePrimitiveTopologyListRestartFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  50950. {
  50951. return !operator==( rhs );
  50952. }
  50953. #endif
  50954. public:
  50955. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDevicePrimitiveTopologyListRestartFeaturesEXT;
  50956. void * pNext = {};
  50957. VULKAN_HPP_NAMESPACE::Bool32 primitiveTopologyListRestart = {};
  50958. VULKAN_HPP_NAMESPACE::Bool32 primitiveTopologyPatchListRestart = {};
  50959. };
  50960. template <>
  50961. struct CppType<StructureType, StructureType::ePhysicalDevicePrimitiveTopologyListRestartFeaturesEXT>
  50962. {
  50963. using Type = PhysicalDevicePrimitiveTopologyListRestartFeaturesEXT;
  50964. };
  50965. struct PhysicalDevicePrimitivesGeneratedQueryFeaturesEXT
  50966. {
  50967. using NativeType = VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT;
  50968. static const bool allowDuplicate = false;
  50969. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDevicePrimitivesGeneratedQueryFeaturesEXT;
  50970. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  50971. VULKAN_HPP_CONSTEXPR PhysicalDevicePrimitivesGeneratedQueryFeaturesEXT( VULKAN_HPP_NAMESPACE::Bool32 primitivesGeneratedQuery_ = {},
  50972. VULKAN_HPP_NAMESPACE::Bool32 primitivesGeneratedQueryWithRasterizerDiscard_ = {},
  50973. VULKAN_HPP_NAMESPACE::Bool32 primitivesGeneratedQueryWithNonZeroStreams_ = {},
  50974. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  50975. : pNext( pNext_ )
  50976. , primitivesGeneratedQuery( primitivesGeneratedQuery_ )
  50977. , primitivesGeneratedQueryWithRasterizerDiscard( primitivesGeneratedQueryWithRasterizerDiscard_ )
  50978. , primitivesGeneratedQueryWithNonZeroStreams( primitivesGeneratedQueryWithNonZeroStreams_ )
  50979. {
  50980. }
  50981. VULKAN_HPP_CONSTEXPR
  50982. PhysicalDevicePrimitivesGeneratedQueryFeaturesEXT( PhysicalDevicePrimitivesGeneratedQueryFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  50983. PhysicalDevicePrimitivesGeneratedQueryFeaturesEXT( VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  50984. : PhysicalDevicePrimitivesGeneratedQueryFeaturesEXT( *reinterpret_cast<PhysicalDevicePrimitivesGeneratedQueryFeaturesEXT const *>( &rhs ) )
  50985. {
  50986. }
  50987. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  50988. PhysicalDevicePrimitivesGeneratedQueryFeaturesEXT &
  50989. operator=( PhysicalDevicePrimitivesGeneratedQueryFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  50990. PhysicalDevicePrimitivesGeneratedQueryFeaturesEXT & operator=( VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  50991. {
  50992. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDevicePrimitivesGeneratedQueryFeaturesEXT const *>( &rhs );
  50993. return *this;
  50994. }
  50995. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  50996. VULKAN_HPP_CONSTEXPR_14 PhysicalDevicePrimitivesGeneratedQueryFeaturesEXT & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
  50997. {
  50998. pNext = pNext_;
  50999. return *this;
  51000. }
  51001. VULKAN_HPP_CONSTEXPR_14 PhysicalDevicePrimitivesGeneratedQueryFeaturesEXT &
  51002. setPrimitivesGeneratedQuery( VULKAN_HPP_NAMESPACE::Bool32 primitivesGeneratedQuery_ ) VULKAN_HPP_NOEXCEPT
  51003. {
  51004. primitivesGeneratedQuery = primitivesGeneratedQuery_;
  51005. return *this;
  51006. }
  51007. VULKAN_HPP_CONSTEXPR_14 PhysicalDevicePrimitivesGeneratedQueryFeaturesEXT &
  51008. setPrimitivesGeneratedQueryWithRasterizerDiscard( VULKAN_HPP_NAMESPACE::Bool32 primitivesGeneratedQueryWithRasterizerDiscard_ ) VULKAN_HPP_NOEXCEPT
  51009. {
  51010. primitivesGeneratedQueryWithRasterizerDiscard = primitivesGeneratedQueryWithRasterizerDiscard_;
  51011. return *this;
  51012. }
  51013. VULKAN_HPP_CONSTEXPR_14 PhysicalDevicePrimitivesGeneratedQueryFeaturesEXT &
  51014. setPrimitivesGeneratedQueryWithNonZeroStreams( VULKAN_HPP_NAMESPACE::Bool32 primitivesGeneratedQueryWithNonZeroStreams_ ) VULKAN_HPP_NOEXCEPT
  51015. {
  51016. primitivesGeneratedQueryWithNonZeroStreams = primitivesGeneratedQueryWithNonZeroStreams_;
  51017. return *this;
  51018. }
  51019. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  51020. operator VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT const &() const VULKAN_HPP_NOEXCEPT
  51021. {
  51022. return *reinterpret_cast<const VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT *>( this );
  51023. }
  51024. operator VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT &() VULKAN_HPP_NOEXCEPT
  51025. {
  51026. return *reinterpret_cast<VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT *>( this );
  51027. }
  51028. #if defined( VULKAN_HPP_USE_REFLECT )
  51029. # if 14 <= VULKAN_HPP_CPP_VERSION
  51030. auto
  51031. # else
  51032. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  51033. void * const &,
  51034. VULKAN_HPP_NAMESPACE::Bool32 const &,
  51035. VULKAN_HPP_NAMESPACE::Bool32 const &,
  51036. VULKAN_HPP_NAMESPACE::Bool32 const &>
  51037. # endif
  51038. reflect() const VULKAN_HPP_NOEXCEPT
  51039. {
  51040. return std::tie( sType, pNext, primitivesGeneratedQuery, primitivesGeneratedQueryWithRasterizerDiscard, primitivesGeneratedQueryWithNonZeroStreams );
  51041. }
  51042. #endif
  51043. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  51044. auto operator<=>( PhysicalDevicePrimitivesGeneratedQueryFeaturesEXT const & ) const = default;
  51045. #else
  51046. bool operator==( PhysicalDevicePrimitivesGeneratedQueryFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  51047. {
  51048. # if defined( VULKAN_HPP_USE_REFLECT )
  51049. return this->reflect() == rhs.reflect();
  51050. # else
  51051. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( primitivesGeneratedQuery == rhs.primitivesGeneratedQuery ) &&
  51052. ( primitivesGeneratedQueryWithRasterizerDiscard == rhs.primitivesGeneratedQueryWithRasterizerDiscard ) &&
  51053. ( primitivesGeneratedQueryWithNonZeroStreams == rhs.primitivesGeneratedQueryWithNonZeroStreams );
  51054. # endif
  51055. }
  51056. bool operator!=( PhysicalDevicePrimitivesGeneratedQueryFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  51057. {
  51058. return !operator==( rhs );
  51059. }
  51060. #endif
  51061. public:
  51062. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDevicePrimitivesGeneratedQueryFeaturesEXT;
  51063. void * pNext = {};
  51064. VULKAN_HPP_NAMESPACE::Bool32 primitivesGeneratedQuery = {};
  51065. VULKAN_HPP_NAMESPACE::Bool32 primitivesGeneratedQueryWithRasterizerDiscard = {};
  51066. VULKAN_HPP_NAMESPACE::Bool32 primitivesGeneratedQueryWithNonZeroStreams = {};
  51067. };
  51068. template <>
  51069. struct CppType<StructureType, StructureType::ePhysicalDevicePrimitivesGeneratedQueryFeaturesEXT>
  51070. {
  51071. using Type = PhysicalDevicePrimitivesGeneratedQueryFeaturesEXT;
  51072. };
  51073. struct PhysicalDevicePrivateDataFeatures
  51074. {
  51075. using NativeType = VkPhysicalDevicePrivateDataFeatures;
  51076. static const bool allowDuplicate = false;
  51077. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDevicePrivateDataFeatures;
  51078. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  51079. VULKAN_HPP_CONSTEXPR PhysicalDevicePrivateDataFeatures( VULKAN_HPP_NAMESPACE::Bool32 privateData_ = {}, void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  51080. : pNext( pNext_ )
  51081. , privateData( privateData_ )
  51082. {
  51083. }
  51084. VULKAN_HPP_CONSTEXPR PhysicalDevicePrivateDataFeatures( PhysicalDevicePrivateDataFeatures const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  51085. PhysicalDevicePrivateDataFeatures( VkPhysicalDevicePrivateDataFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
  51086. : PhysicalDevicePrivateDataFeatures( *reinterpret_cast<PhysicalDevicePrivateDataFeatures const *>( &rhs ) )
  51087. {
  51088. }
  51089. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  51090. PhysicalDevicePrivateDataFeatures & operator=( PhysicalDevicePrivateDataFeatures const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  51091. PhysicalDevicePrivateDataFeatures & operator=( VkPhysicalDevicePrivateDataFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
  51092. {
  51093. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDevicePrivateDataFeatures const *>( &rhs );
  51094. return *this;
  51095. }
  51096. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  51097. VULKAN_HPP_CONSTEXPR_14 PhysicalDevicePrivateDataFeatures & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
  51098. {
  51099. pNext = pNext_;
  51100. return *this;
  51101. }
  51102. VULKAN_HPP_CONSTEXPR_14 PhysicalDevicePrivateDataFeatures & setPrivateData( VULKAN_HPP_NAMESPACE::Bool32 privateData_ ) VULKAN_HPP_NOEXCEPT
  51103. {
  51104. privateData = privateData_;
  51105. return *this;
  51106. }
  51107. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  51108. operator VkPhysicalDevicePrivateDataFeatures const &() const VULKAN_HPP_NOEXCEPT
  51109. {
  51110. return *reinterpret_cast<const VkPhysicalDevicePrivateDataFeatures *>( this );
  51111. }
  51112. operator VkPhysicalDevicePrivateDataFeatures &() VULKAN_HPP_NOEXCEPT
  51113. {
  51114. return *reinterpret_cast<VkPhysicalDevicePrivateDataFeatures *>( this );
  51115. }
  51116. #if defined( VULKAN_HPP_USE_REFLECT )
  51117. # if 14 <= VULKAN_HPP_CPP_VERSION
  51118. auto
  51119. # else
  51120. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
  51121. # endif
  51122. reflect() const VULKAN_HPP_NOEXCEPT
  51123. {
  51124. return std::tie( sType, pNext, privateData );
  51125. }
  51126. #endif
  51127. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  51128. auto operator<=>( PhysicalDevicePrivateDataFeatures const & ) const = default;
  51129. #else
  51130. bool operator==( PhysicalDevicePrivateDataFeatures const & rhs ) const VULKAN_HPP_NOEXCEPT
  51131. {
  51132. # if defined( VULKAN_HPP_USE_REFLECT )
  51133. return this->reflect() == rhs.reflect();
  51134. # else
  51135. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( privateData == rhs.privateData );
  51136. # endif
  51137. }
  51138. bool operator!=( PhysicalDevicePrivateDataFeatures const & rhs ) const VULKAN_HPP_NOEXCEPT
  51139. {
  51140. return !operator==( rhs );
  51141. }
  51142. #endif
  51143. public:
  51144. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDevicePrivateDataFeatures;
  51145. void * pNext = {};
  51146. VULKAN_HPP_NAMESPACE::Bool32 privateData = {};
  51147. };
  51148. template <>
  51149. struct CppType<StructureType, StructureType::ePhysicalDevicePrivateDataFeatures>
  51150. {
  51151. using Type = PhysicalDevicePrivateDataFeatures;
  51152. };
  51153. using PhysicalDevicePrivateDataFeaturesEXT = PhysicalDevicePrivateDataFeatures;
  51154. struct PhysicalDeviceSparseProperties
  51155. {
  51156. using NativeType = VkPhysicalDeviceSparseProperties;
  51157. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  51158. VULKAN_HPP_CONSTEXPR PhysicalDeviceSparseProperties( VULKAN_HPP_NAMESPACE::Bool32 residencyStandard2DBlockShape_ = {},
  51159. VULKAN_HPP_NAMESPACE::Bool32 residencyStandard2DMultisampleBlockShape_ = {},
  51160. VULKAN_HPP_NAMESPACE::Bool32 residencyStandard3DBlockShape_ = {},
  51161. VULKAN_HPP_NAMESPACE::Bool32 residencyAlignedMipSize_ = {},
  51162. VULKAN_HPP_NAMESPACE::Bool32 residencyNonResidentStrict_ = {} ) VULKAN_HPP_NOEXCEPT
  51163. : residencyStandard2DBlockShape( residencyStandard2DBlockShape_ )
  51164. , residencyStandard2DMultisampleBlockShape( residencyStandard2DMultisampleBlockShape_ )
  51165. , residencyStandard3DBlockShape( residencyStandard3DBlockShape_ )
  51166. , residencyAlignedMipSize( residencyAlignedMipSize_ )
  51167. , residencyNonResidentStrict( residencyNonResidentStrict_ )
  51168. {
  51169. }
  51170. VULKAN_HPP_CONSTEXPR PhysicalDeviceSparseProperties( PhysicalDeviceSparseProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  51171. PhysicalDeviceSparseProperties( VkPhysicalDeviceSparseProperties const & rhs ) VULKAN_HPP_NOEXCEPT
  51172. : PhysicalDeviceSparseProperties( *reinterpret_cast<PhysicalDeviceSparseProperties const *>( &rhs ) )
  51173. {
  51174. }
  51175. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  51176. PhysicalDeviceSparseProperties & operator=( PhysicalDeviceSparseProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  51177. PhysicalDeviceSparseProperties & operator=( VkPhysicalDeviceSparseProperties const & rhs ) VULKAN_HPP_NOEXCEPT
  51178. {
  51179. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceSparseProperties const *>( &rhs );
  51180. return *this;
  51181. }
  51182. operator VkPhysicalDeviceSparseProperties const &() const VULKAN_HPP_NOEXCEPT
  51183. {
  51184. return *reinterpret_cast<const VkPhysicalDeviceSparseProperties *>( this );
  51185. }
  51186. operator VkPhysicalDeviceSparseProperties &() VULKAN_HPP_NOEXCEPT
  51187. {
  51188. return *reinterpret_cast<VkPhysicalDeviceSparseProperties *>( this );
  51189. }
  51190. #if defined( VULKAN_HPP_USE_REFLECT )
  51191. # if 14 <= VULKAN_HPP_CPP_VERSION
  51192. auto
  51193. # else
  51194. std::tuple<VULKAN_HPP_NAMESPACE::Bool32 const &,
  51195. VULKAN_HPP_NAMESPACE::Bool32 const &,
  51196. VULKAN_HPP_NAMESPACE::Bool32 const &,
  51197. VULKAN_HPP_NAMESPACE::Bool32 const &,
  51198. VULKAN_HPP_NAMESPACE::Bool32 const &>
  51199. # endif
  51200. reflect() const VULKAN_HPP_NOEXCEPT
  51201. {
  51202. return std::tie( residencyStandard2DBlockShape,
  51203. residencyStandard2DMultisampleBlockShape,
  51204. residencyStandard3DBlockShape,
  51205. residencyAlignedMipSize,
  51206. residencyNonResidentStrict );
  51207. }
  51208. #endif
  51209. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  51210. auto operator<=>( PhysicalDeviceSparseProperties const & ) const = default;
  51211. #else
  51212. bool operator==( PhysicalDeviceSparseProperties const & rhs ) const VULKAN_HPP_NOEXCEPT
  51213. {
  51214. # if defined( VULKAN_HPP_USE_REFLECT )
  51215. return this->reflect() == rhs.reflect();
  51216. # else
  51217. return ( residencyStandard2DBlockShape == rhs.residencyStandard2DBlockShape ) &&
  51218. ( residencyStandard2DMultisampleBlockShape == rhs.residencyStandard2DMultisampleBlockShape ) &&
  51219. ( residencyStandard3DBlockShape == rhs.residencyStandard3DBlockShape ) && ( residencyAlignedMipSize == rhs.residencyAlignedMipSize ) &&
  51220. ( residencyNonResidentStrict == rhs.residencyNonResidentStrict );
  51221. # endif
  51222. }
  51223. bool operator!=( PhysicalDeviceSparseProperties const & rhs ) const VULKAN_HPP_NOEXCEPT
  51224. {
  51225. return !operator==( rhs );
  51226. }
  51227. #endif
  51228. public:
  51229. VULKAN_HPP_NAMESPACE::Bool32 residencyStandard2DBlockShape = {};
  51230. VULKAN_HPP_NAMESPACE::Bool32 residencyStandard2DMultisampleBlockShape = {};
  51231. VULKAN_HPP_NAMESPACE::Bool32 residencyStandard3DBlockShape = {};
  51232. VULKAN_HPP_NAMESPACE::Bool32 residencyAlignedMipSize = {};
  51233. VULKAN_HPP_NAMESPACE::Bool32 residencyNonResidentStrict = {};
  51234. };
  51235. struct PhysicalDeviceProperties
  51236. {
  51237. using NativeType = VkPhysicalDeviceProperties;
  51238. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  51239. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceProperties( uint32_t apiVersion_ = {},
  51240. uint32_t driverVersion_ = {},
  51241. uint32_t vendorID_ = {},
  51242. uint32_t deviceID_ = {},
  51243. VULKAN_HPP_NAMESPACE::PhysicalDeviceType deviceType_ = VULKAN_HPP_NAMESPACE::PhysicalDeviceType::eOther,
  51244. std::array<char, VK_MAX_PHYSICAL_DEVICE_NAME_SIZE> const & deviceName_ = {},
  51245. std::array<uint8_t, VK_UUID_SIZE> const & pipelineCacheUUID_ = {},
  51246. VULKAN_HPP_NAMESPACE::PhysicalDeviceLimits limits_ = {},
  51247. VULKAN_HPP_NAMESPACE::PhysicalDeviceSparseProperties sparseProperties_ = {} ) VULKAN_HPP_NOEXCEPT
  51248. : apiVersion( apiVersion_ )
  51249. , driverVersion( driverVersion_ )
  51250. , vendorID( vendorID_ )
  51251. , deviceID( deviceID_ )
  51252. , deviceType( deviceType_ )
  51253. , deviceName( deviceName_ )
  51254. , pipelineCacheUUID( pipelineCacheUUID_ )
  51255. , limits( limits_ )
  51256. , sparseProperties( sparseProperties_ )
  51257. {
  51258. }
  51259. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceProperties( PhysicalDeviceProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  51260. PhysicalDeviceProperties( VkPhysicalDeviceProperties const & rhs ) VULKAN_HPP_NOEXCEPT
  51261. : PhysicalDeviceProperties( *reinterpret_cast<PhysicalDeviceProperties const *>( &rhs ) )
  51262. {
  51263. }
  51264. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  51265. PhysicalDeviceProperties & operator=( PhysicalDeviceProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  51266. PhysicalDeviceProperties & operator=( VkPhysicalDeviceProperties const & rhs ) VULKAN_HPP_NOEXCEPT
  51267. {
  51268. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties const *>( &rhs );
  51269. return *this;
  51270. }
  51271. operator VkPhysicalDeviceProperties const &() const VULKAN_HPP_NOEXCEPT
  51272. {
  51273. return *reinterpret_cast<const VkPhysicalDeviceProperties *>( this );
  51274. }
  51275. operator VkPhysicalDeviceProperties &() VULKAN_HPP_NOEXCEPT
  51276. {
  51277. return *reinterpret_cast<VkPhysicalDeviceProperties *>( this );
  51278. }
  51279. #if defined( VULKAN_HPP_USE_REFLECT )
  51280. # if 14 <= VULKAN_HPP_CPP_VERSION
  51281. auto
  51282. # else
  51283. std::tuple<uint32_t const &,
  51284. uint32_t const &,
  51285. uint32_t const &,
  51286. uint32_t const &,
  51287. VULKAN_HPP_NAMESPACE::PhysicalDeviceType const &,
  51288. VULKAN_HPP_NAMESPACE::ArrayWrapper1D<char, VK_MAX_PHYSICAL_DEVICE_NAME_SIZE> const &,
  51289. VULKAN_HPP_NAMESPACE::ArrayWrapper1D<uint8_t, VK_UUID_SIZE> const &,
  51290. VULKAN_HPP_NAMESPACE::PhysicalDeviceLimits const &,
  51291. VULKAN_HPP_NAMESPACE::PhysicalDeviceSparseProperties const &>
  51292. # endif
  51293. reflect() const VULKAN_HPP_NOEXCEPT
  51294. {
  51295. return std::tie( apiVersion, driverVersion, vendorID, deviceID, deviceType, deviceName, pipelineCacheUUID, limits, sparseProperties );
  51296. }
  51297. #endif
  51298. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  51299. auto operator<=>( PhysicalDeviceProperties const & ) const = default;
  51300. #else
  51301. bool operator==( PhysicalDeviceProperties const & rhs ) const VULKAN_HPP_NOEXCEPT
  51302. {
  51303. # if defined( VULKAN_HPP_USE_REFLECT )
  51304. return this->reflect() == rhs.reflect();
  51305. # else
  51306. return ( apiVersion == rhs.apiVersion ) && ( driverVersion == rhs.driverVersion ) && ( vendorID == rhs.vendorID ) && ( deviceID == rhs.deviceID ) &&
  51307. ( deviceType == rhs.deviceType ) && ( deviceName == rhs.deviceName ) && ( pipelineCacheUUID == rhs.pipelineCacheUUID ) &&
  51308. ( limits == rhs.limits ) && ( sparseProperties == rhs.sparseProperties );
  51309. # endif
  51310. }
  51311. bool operator!=( PhysicalDeviceProperties const & rhs ) const VULKAN_HPP_NOEXCEPT
  51312. {
  51313. return !operator==( rhs );
  51314. }
  51315. #endif
  51316. public:
  51317. uint32_t apiVersion = {};
  51318. uint32_t driverVersion = {};
  51319. uint32_t vendorID = {};
  51320. uint32_t deviceID = {};
  51321. VULKAN_HPP_NAMESPACE::PhysicalDeviceType deviceType = VULKAN_HPP_NAMESPACE::PhysicalDeviceType::eOther;
  51322. VULKAN_HPP_NAMESPACE::ArrayWrapper1D<char, VK_MAX_PHYSICAL_DEVICE_NAME_SIZE> deviceName = {};
  51323. VULKAN_HPP_NAMESPACE::ArrayWrapper1D<uint8_t, VK_UUID_SIZE> pipelineCacheUUID = {};
  51324. VULKAN_HPP_NAMESPACE::PhysicalDeviceLimits limits = {};
  51325. VULKAN_HPP_NAMESPACE::PhysicalDeviceSparseProperties sparseProperties = {};
  51326. };
  51327. struct PhysicalDeviceProperties2
  51328. {
  51329. using NativeType = VkPhysicalDeviceProperties2;
  51330. static const bool allowDuplicate = false;
  51331. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceProperties2;
  51332. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  51333. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceProperties2( VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties properties_ = {},
  51334. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  51335. : pNext( pNext_ )
  51336. , properties( properties_ )
  51337. {
  51338. }
  51339. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceProperties2( PhysicalDeviceProperties2 const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  51340. PhysicalDeviceProperties2( VkPhysicalDeviceProperties2 const & rhs ) VULKAN_HPP_NOEXCEPT
  51341. : PhysicalDeviceProperties2( *reinterpret_cast<PhysicalDeviceProperties2 const *>( &rhs ) )
  51342. {
  51343. }
  51344. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  51345. PhysicalDeviceProperties2 & operator=( PhysicalDeviceProperties2 const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  51346. PhysicalDeviceProperties2 & operator=( VkPhysicalDeviceProperties2 const & rhs ) VULKAN_HPP_NOEXCEPT
  51347. {
  51348. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties2 const *>( &rhs );
  51349. return *this;
  51350. }
  51351. operator VkPhysicalDeviceProperties2 const &() const VULKAN_HPP_NOEXCEPT
  51352. {
  51353. return *reinterpret_cast<const VkPhysicalDeviceProperties2 *>( this );
  51354. }
  51355. operator VkPhysicalDeviceProperties2 &() VULKAN_HPP_NOEXCEPT
  51356. {
  51357. return *reinterpret_cast<VkPhysicalDeviceProperties2 *>( this );
  51358. }
  51359. #if defined( VULKAN_HPP_USE_REFLECT )
  51360. # if 14 <= VULKAN_HPP_CPP_VERSION
  51361. auto
  51362. # else
  51363. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties const &>
  51364. # endif
  51365. reflect() const VULKAN_HPP_NOEXCEPT
  51366. {
  51367. return std::tie( sType, pNext, properties );
  51368. }
  51369. #endif
  51370. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  51371. auto operator<=>( PhysicalDeviceProperties2 const & ) const = default;
  51372. #else
  51373. bool operator==( PhysicalDeviceProperties2 const & rhs ) const VULKAN_HPP_NOEXCEPT
  51374. {
  51375. # if defined( VULKAN_HPP_USE_REFLECT )
  51376. return this->reflect() == rhs.reflect();
  51377. # else
  51378. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( properties == rhs.properties );
  51379. # endif
  51380. }
  51381. bool operator!=( PhysicalDeviceProperties2 const & rhs ) const VULKAN_HPP_NOEXCEPT
  51382. {
  51383. return !operator==( rhs );
  51384. }
  51385. #endif
  51386. public:
  51387. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceProperties2;
  51388. void * pNext = {};
  51389. VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties properties = {};
  51390. };
  51391. template <>
  51392. struct CppType<StructureType, StructureType::ePhysicalDeviceProperties2>
  51393. {
  51394. using Type = PhysicalDeviceProperties2;
  51395. };
  51396. using PhysicalDeviceProperties2KHR = PhysicalDeviceProperties2;
  51397. struct PhysicalDeviceProtectedMemoryFeatures
  51398. {
  51399. using NativeType = VkPhysicalDeviceProtectedMemoryFeatures;
  51400. static const bool allowDuplicate = false;
  51401. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceProtectedMemoryFeatures;
  51402. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  51403. VULKAN_HPP_CONSTEXPR PhysicalDeviceProtectedMemoryFeatures( VULKAN_HPP_NAMESPACE::Bool32 protectedMemory_ = {},
  51404. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  51405. : pNext( pNext_ )
  51406. , protectedMemory( protectedMemory_ )
  51407. {
  51408. }
  51409. VULKAN_HPP_CONSTEXPR PhysicalDeviceProtectedMemoryFeatures( PhysicalDeviceProtectedMemoryFeatures const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  51410. PhysicalDeviceProtectedMemoryFeatures( VkPhysicalDeviceProtectedMemoryFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
  51411. : PhysicalDeviceProtectedMemoryFeatures( *reinterpret_cast<PhysicalDeviceProtectedMemoryFeatures const *>( &rhs ) )
  51412. {
  51413. }
  51414. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  51415. PhysicalDeviceProtectedMemoryFeatures & operator=( PhysicalDeviceProtectedMemoryFeatures const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  51416. PhysicalDeviceProtectedMemoryFeatures & operator=( VkPhysicalDeviceProtectedMemoryFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
  51417. {
  51418. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceProtectedMemoryFeatures const *>( &rhs );
  51419. return *this;
  51420. }
  51421. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  51422. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceProtectedMemoryFeatures & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
  51423. {
  51424. pNext = pNext_;
  51425. return *this;
  51426. }
  51427. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceProtectedMemoryFeatures & setProtectedMemory( VULKAN_HPP_NAMESPACE::Bool32 protectedMemory_ ) VULKAN_HPP_NOEXCEPT
  51428. {
  51429. protectedMemory = protectedMemory_;
  51430. return *this;
  51431. }
  51432. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  51433. operator VkPhysicalDeviceProtectedMemoryFeatures const &() const VULKAN_HPP_NOEXCEPT
  51434. {
  51435. return *reinterpret_cast<const VkPhysicalDeviceProtectedMemoryFeatures *>( this );
  51436. }
  51437. operator VkPhysicalDeviceProtectedMemoryFeatures &() VULKAN_HPP_NOEXCEPT
  51438. {
  51439. return *reinterpret_cast<VkPhysicalDeviceProtectedMemoryFeatures *>( this );
  51440. }
  51441. #if defined( VULKAN_HPP_USE_REFLECT )
  51442. # if 14 <= VULKAN_HPP_CPP_VERSION
  51443. auto
  51444. # else
  51445. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
  51446. # endif
  51447. reflect() const VULKAN_HPP_NOEXCEPT
  51448. {
  51449. return std::tie( sType, pNext, protectedMemory );
  51450. }
  51451. #endif
  51452. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  51453. auto operator<=>( PhysicalDeviceProtectedMemoryFeatures const & ) const = default;
  51454. #else
  51455. bool operator==( PhysicalDeviceProtectedMemoryFeatures const & rhs ) const VULKAN_HPP_NOEXCEPT
  51456. {
  51457. # if defined( VULKAN_HPP_USE_REFLECT )
  51458. return this->reflect() == rhs.reflect();
  51459. # else
  51460. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( protectedMemory == rhs.protectedMemory );
  51461. # endif
  51462. }
  51463. bool operator!=( PhysicalDeviceProtectedMemoryFeatures const & rhs ) const VULKAN_HPP_NOEXCEPT
  51464. {
  51465. return !operator==( rhs );
  51466. }
  51467. #endif
  51468. public:
  51469. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceProtectedMemoryFeatures;
  51470. void * pNext = {};
  51471. VULKAN_HPP_NAMESPACE::Bool32 protectedMemory = {};
  51472. };
  51473. template <>
  51474. struct CppType<StructureType, StructureType::ePhysicalDeviceProtectedMemoryFeatures>
  51475. {
  51476. using Type = PhysicalDeviceProtectedMemoryFeatures;
  51477. };
  51478. struct PhysicalDeviceProtectedMemoryProperties
  51479. {
  51480. using NativeType = VkPhysicalDeviceProtectedMemoryProperties;
  51481. static const bool allowDuplicate = false;
  51482. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceProtectedMemoryProperties;
  51483. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  51484. VULKAN_HPP_CONSTEXPR PhysicalDeviceProtectedMemoryProperties( VULKAN_HPP_NAMESPACE::Bool32 protectedNoFault_ = {},
  51485. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  51486. : pNext( pNext_ )
  51487. , protectedNoFault( protectedNoFault_ )
  51488. {
  51489. }
  51490. VULKAN_HPP_CONSTEXPR PhysicalDeviceProtectedMemoryProperties( PhysicalDeviceProtectedMemoryProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  51491. PhysicalDeviceProtectedMemoryProperties( VkPhysicalDeviceProtectedMemoryProperties const & rhs ) VULKAN_HPP_NOEXCEPT
  51492. : PhysicalDeviceProtectedMemoryProperties( *reinterpret_cast<PhysicalDeviceProtectedMemoryProperties const *>( &rhs ) )
  51493. {
  51494. }
  51495. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  51496. PhysicalDeviceProtectedMemoryProperties & operator=( PhysicalDeviceProtectedMemoryProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  51497. PhysicalDeviceProtectedMemoryProperties & operator=( VkPhysicalDeviceProtectedMemoryProperties const & rhs ) VULKAN_HPP_NOEXCEPT
  51498. {
  51499. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceProtectedMemoryProperties const *>( &rhs );
  51500. return *this;
  51501. }
  51502. operator VkPhysicalDeviceProtectedMemoryProperties const &() const VULKAN_HPP_NOEXCEPT
  51503. {
  51504. return *reinterpret_cast<const VkPhysicalDeviceProtectedMemoryProperties *>( this );
  51505. }
  51506. operator VkPhysicalDeviceProtectedMemoryProperties &() VULKAN_HPP_NOEXCEPT
  51507. {
  51508. return *reinterpret_cast<VkPhysicalDeviceProtectedMemoryProperties *>( this );
  51509. }
  51510. #if defined( VULKAN_HPP_USE_REFLECT )
  51511. # if 14 <= VULKAN_HPP_CPP_VERSION
  51512. auto
  51513. # else
  51514. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
  51515. # endif
  51516. reflect() const VULKAN_HPP_NOEXCEPT
  51517. {
  51518. return std::tie( sType, pNext, protectedNoFault );
  51519. }
  51520. #endif
  51521. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  51522. auto operator<=>( PhysicalDeviceProtectedMemoryProperties const & ) const = default;
  51523. #else
  51524. bool operator==( PhysicalDeviceProtectedMemoryProperties const & rhs ) const VULKAN_HPP_NOEXCEPT
  51525. {
  51526. # if defined( VULKAN_HPP_USE_REFLECT )
  51527. return this->reflect() == rhs.reflect();
  51528. # else
  51529. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( protectedNoFault == rhs.protectedNoFault );
  51530. # endif
  51531. }
  51532. bool operator!=( PhysicalDeviceProtectedMemoryProperties const & rhs ) const VULKAN_HPP_NOEXCEPT
  51533. {
  51534. return !operator==( rhs );
  51535. }
  51536. #endif
  51537. public:
  51538. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceProtectedMemoryProperties;
  51539. void * pNext = {};
  51540. VULKAN_HPP_NAMESPACE::Bool32 protectedNoFault = {};
  51541. };
  51542. template <>
  51543. struct CppType<StructureType, StructureType::ePhysicalDeviceProtectedMemoryProperties>
  51544. {
  51545. using Type = PhysicalDeviceProtectedMemoryProperties;
  51546. };
  51547. struct PhysicalDeviceProvokingVertexFeaturesEXT
  51548. {
  51549. using NativeType = VkPhysicalDeviceProvokingVertexFeaturesEXT;
  51550. static const bool allowDuplicate = false;
  51551. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceProvokingVertexFeaturesEXT;
  51552. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  51553. VULKAN_HPP_CONSTEXPR PhysicalDeviceProvokingVertexFeaturesEXT( VULKAN_HPP_NAMESPACE::Bool32 provokingVertexLast_ = {},
  51554. VULKAN_HPP_NAMESPACE::Bool32 transformFeedbackPreservesProvokingVertex_ = {},
  51555. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  51556. : pNext( pNext_ )
  51557. , provokingVertexLast( provokingVertexLast_ )
  51558. , transformFeedbackPreservesProvokingVertex( transformFeedbackPreservesProvokingVertex_ )
  51559. {
  51560. }
  51561. VULKAN_HPP_CONSTEXPR PhysicalDeviceProvokingVertexFeaturesEXT( PhysicalDeviceProvokingVertexFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  51562. PhysicalDeviceProvokingVertexFeaturesEXT( VkPhysicalDeviceProvokingVertexFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  51563. : PhysicalDeviceProvokingVertexFeaturesEXT( *reinterpret_cast<PhysicalDeviceProvokingVertexFeaturesEXT const *>( &rhs ) )
  51564. {
  51565. }
  51566. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  51567. PhysicalDeviceProvokingVertexFeaturesEXT & operator=( PhysicalDeviceProvokingVertexFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  51568. PhysicalDeviceProvokingVertexFeaturesEXT & operator=( VkPhysicalDeviceProvokingVertexFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  51569. {
  51570. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceProvokingVertexFeaturesEXT const *>( &rhs );
  51571. return *this;
  51572. }
  51573. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  51574. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceProvokingVertexFeaturesEXT & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
  51575. {
  51576. pNext = pNext_;
  51577. return *this;
  51578. }
  51579. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceProvokingVertexFeaturesEXT &
  51580. setProvokingVertexLast( VULKAN_HPP_NAMESPACE::Bool32 provokingVertexLast_ ) VULKAN_HPP_NOEXCEPT
  51581. {
  51582. provokingVertexLast = provokingVertexLast_;
  51583. return *this;
  51584. }
  51585. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceProvokingVertexFeaturesEXT &
  51586. setTransformFeedbackPreservesProvokingVertex( VULKAN_HPP_NAMESPACE::Bool32 transformFeedbackPreservesProvokingVertex_ ) VULKAN_HPP_NOEXCEPT
  51587. {
  51588. transformFeedbackPreservesProvokingVertex = transformFeedbackPreservesProvokingVertex_;
  51589. return *this;
  51590. }
  51591. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  51592. operator VkPhysicalDeviceProvokingVertexFeaturesEXT const &() const VULKAN_HPP_NOEXCEPT
  51593. {
  51594. return *reinterpret_cast<const VkPhysicalDeviceProvokingVertexFeaturesEXT *>( this );
  51595. }
  51596. operator VkPhysicalDeviceProvokingVertexFeaturesEXT &() VULKAN_HPP_NOEXCEPT
  51597. {
  51598. return *reinterpret_cast<VkPhysicalDeviceProvokingVertexFeaturesEXT *>( this );
  51599. }
  51600. #if defined( VULKAN_HPP_USE_REFLECT )
  51601. # if 14 <= VULKAN_HPP_CPP_VERSION
  51602. auto
  51603. # else
  51604. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
  51605. # endif
  51606. reflect() const VULKAN_HPP_NOEXCEPT
  51607. {
  51608. return std::tie( sType, pNext, provokingVertexLast, transformFeedbackPreservesProvokingVertex );
  51609. }
  51610. #endif
  51611. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  51612. auto operator<=>( PhysicalDeviceProvokingVertexFeaturesEXT const & ) const = default;
  51613. #else
  51614. bool operator==( PhysicalDeviceProvokingVertexFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  51615. {
  51616. # if defined( VULKAN_HPP_USE_REFLECT )
  51617. return this->reflect() == rhs.reflect();
  51618. # else
  51619. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( provokingVertexLast == rhs.provokingVertexLast ) &&
  51620. ( transformFeedbackPreservesProvokingVertex == rhs.transformFeedbackPreservesProvokingVertex );
  51621. # endif
  51622. }
  51623. bool operator!=( PhysicalDeviceProvokingVertexFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  51624. {
  51625. return !operator==( rhs );
  51626. }
  51627. #endif
  51628. public:
  51629. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceProvokingVertexFeaturesEXT;
  51630. void * pNext = {};
  51631. VULKAN_HPP_NAMESPACE::Bool32 provokingVertexLast = {};
  51632. VULKAN_HPP_NAMESPACE::Bool32 transformFeedbackPreservesProvokingVertex = {};
  51633. };
  51634. template <>
  51635. struct CppType<StructureType, StructureType::ePhysicalDeviceProvokingVertexFeaturesEXT>
  51636. {
  51637. using Type = PhysicalDeviceProvokingVertexFeaturesEXT;
  51638. };
  51639. struct PhysicalDeviceProvokingVertexPropertiesEXT
  51640. {
  51641. using NativeType = VkPhysicalDeviceProvokingVertexPropertiesEXT;
  51642. static const bool allowDuplicate = false;
  51643. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceProvokingVertexPropertiesEXT;
  51644. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  51645. VULKAN_HPP_CONSTEXPR PhysicalDeviceProvokingVertexPropertiesEXT( VULKAN_HPP_NAMESPACE::Bool32 provokingVertexModePerPipeline_ = {},
  51646. VULKAN_HPP_NAMESPACE::Bool32 transformFeedbackPreservesTriangleFanProvokingVertex_ = {},
  51647. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  51648. : pNext( pNext_ )
  51649. , provokingVertexModePerPipeline( provokingVertexModePerPipeline_ )
  51650. , transformFeedbackPreservesTriangleFanProvokingVertex( transformFeedbackPreservesTriangleFanProvokingVertex_ )
  51651. {
  51652. }
  51653. VULKAN_HPP_CONSTEXPR PhysicalDeviceProvokingVertexPropertiesEXT( PhysicalDeviceProvokingVertexPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  51654. PhysicalDeviceProvokingVertexPropertiesEXT( VkPhysicalDeviceProvokingVertexPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  51655. : PhysicalDeviceProvokingVertexPropertiesEXT( *reinterpret_cast<PhysicalDeviceProvokingVertexPropertiesEXT const *>( &rhs ) )
  51656. {
  51657. }
  51658. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  51659. PhysicalDeviceProvokingVertexPropertiesEXT & operator=( PhysicalDeviceProvokingVertexPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  51660. PhysicalDeviceProvokingVertexPropertiesEXT & operator=( VkPhysicalDeviceProvokingVertexPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  51661. {
  51662. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceProvokingVertexPropertiesEXT const *>( &rhs );
  51663. return *this;
  51664. }
  51665. operator VkPhysicalDeviceProvokingVertexPropertiesEXT const &() const VULKAN_HPP_NOEXCEPT
  51666. {
  51667. return *reinterpret_cast<const VkPhysicalDeviceProvokingVertexPropertiesEXT *>( this );
  51668. }
  51669. operator VkPhysicalDeviceProvokingVertexPropertiesEXT &() VULKAN_HPP_NOEXCEPT
  51670. {
  51671. return *reinterpret_cast<VkPhysicalDeviceProvokingVertexPropertiesEXT *>( this );
  51672. }
  51673. #if defined( VULKAN_HPP_USE_REFLECT )
  51674. # if 14 <= VULKAN_HPP_CPP_VERSION
  51675. auto
  51676. # else
  51677. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
  51678. # endif
  51679. reflect() const VULKAN_HPP_NOEXCEPT
  51680. {
  51681. return std::tie( sType, pNext, provokingVertexModePerPipeline, transformFeedbackPreservesTriangleFanProvokingVertex );
  51682. }
  51683. #endif
  51684. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  51685. auto operator<=>( PhysicalDeviceProvokingVertexPropertiesEXT const & ) const = default;
  51686. #else
  51687. bool operator==( PhysicalDeviceProvokingVertexPropertiesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  51688. {
  51689. # if defined( VULKAN_HPP_USE_REFLECT )
  51690. return this->reflect() == rhs.reflect();
  51691. # else
  51692. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( provokingVertexModePerPipeline == rhs.provokingVertexModePerPipeline ) &&
  51693. ( transformFeedbackPreservesTriangleFanProvokingVertex == rhs.transformFeedbackPreservesTriangleFanProvokingVertex );
  51694. # endif
  51695. }
  51696. bool operator!=( PhysicalDeviceProvokingVertexPropertiesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  51697. {
  51698. return !operator==( rhs );
  51699. }
  51700. #endif
  51701. public:
  51702. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceProvokingVertexPropertiesEXT;
  51703. void * pNext = {};
  51704. VULKAN_HPP_NAMESPACE::Bool32 provokingVertexModePerPipeline = {};
  51705. VULKAN_HPP_NAMESPACE::Bool32 transformFeedbackPreservesTriangleFanProvokingVertex = {};
  51706. };
  51707. template <>
  51708. struct CppType<StructureType, StructureType::ePhysicalDeviceProvokingVertexPropertiesEXT>
  51709. {
  51710. using Type = PhysicalDeviceProvokingVertexPropertiesEXT;
  51711. };
  51712. struct PhysicalDevicePushDescriptorPropertiesKHR
  51713. {
  51714. using NativeType = VkPhysicalDevicePushDescriptorPropertiesKHR;
  51715. static const bool allowDuplicate = false;
  51716. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDevicePushDescriptorPropertiesKHR;
  51717. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  51718. VULKAN_HPP_CONSTEXPR PhysicalDevicePushDescriptorPropertiesKHR( uint32_t maxPushDescriptors_ = {}, void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  51719. : pNext( pNext_ )
  51720. , maxPushDescriptors( maxPushDescriptors_ )
  51721. {
  51722. }
  51723. VULKAN_HPP_CONSTEXPR PhysicalDevicePushDescriptorPropertiesKHR( PhysicalDevicePushDescriptorPropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  51724. PhysicalDevicePushDescriptorPropertiesKHR( VkPhysicalDevicePushDescriptorPropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  51725. : PhysicalDevicePushDescriptorPropertiesKHR( *reinterpret_cast<PhysicalDevicePushDescriptorPropertiesKHR const *>( &rhs ) )
  51726. {
  51727. }
  51728. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  51729. PhysicalDevicePushDescriptorPropertiesKHR & operator=( PhysicalDevicePushDescriptorPropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  51730. PhysicalDevicePushDescriptorPropertiesKHR & operator=( VkPhysicalDevicePushDescriptorPropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  51731. {
  51732. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDevicePushDescriptorPropertiesKHR const *>( &rhs );
  51733. return *this;
  51734. }
  51735. operator VkPhysicalDevicePushDescriptorPropertiesKHR const &() const VULKAN_HPP_NOEXCEPT
  51736. {
  51737. return *reinterpret_cast<const VkPhysicalDevicePushDescriptorPropertiesKHR *>( this );
  51738. }
  51739. operator VkPhysicalDevicePushDescriptorPropertiesKHR &() VULKAN_HPP_NOEXCEPT
  51740. {
  51741. return *reinterpret_cast<VkPhysicalDevicePushDescriptorPropertiesKHR *>( this );
  51742. }
  51743. #if defined( VULKAN_HPP_USE_REFLECT )
  51744. # if 14 <= VULKAN_HPP_CPP_VERSION
  51745. auto
  51746. # else
  51747. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, uint32_t const &>
  51748. # endif
  51749. reflect() const VULKAN_HPP_NOEXCEPT
  51750. {
  51751. return std::tie( sType, pNext, maxPushDescriptors );
  51752. }
  51753. #endif
  51754. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  51755. auto operator<=>( PhysicalDevicePushDescriptorPropertiesKHR const & ) const = default;
  51756. #else
  51757. bool operator==( PhysicalDevicePushDescriptorPropertiesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  51758. {
  51759. # if defined( VULKAN_HPP_USE_REFLECT )
  51760. return this->reflect() == rhs.reflect();
  51761. # else
  51762. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( maxPushDescriptors == rhs.maxPushDescriptors );
  51763. # endif
  51764. }
  51765. bool operator!=( PhysicalDevicePushDescriptorPropertiesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  51766. {
  51767. return !operator==( rhs );
  51768. }
  51769. #endif
  51770. public:
  51771. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDevicePushDescriptorPropertiesKHR;
  51772. void * pNext = {};
  51773. uint32_t maxPushDescriptors = {};
  51774. };
  51775. template <>
  51776. struct CppType<StructureType, StructureType::ePhysicalDevicePushDescriptorPropertiesKHR>
  51777. {
  51778. using Type = PhysicalDevicePushDescriptorPropertiesKHR;
  51779. };
  51780. struct PhysicalDeviceRGBA10X6FormatsFeaturesEXT
  51781. {
  51782. using NativeType = VkPhysicalDeviceRGBA10X6FormatsFeaturesEXT;
  51783. static const bool allowDuplicate = false;
  51784. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceRgba10X6FormatsFeaturesEXT;
  51785. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  51786. VULKAN_HPP_CONSTEXPR PhysicalDeviceRGBA10X6FormatsFeaturesEXT( VULKAN_HPP_NAMESPACE::Bool32 formatRgba10x6WithoutYCbCrSampler_ = {},
  51787. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  51788. : pNext( pNext_ )
  51789. , formatRgba10x6WithoutYCbCrSampler( formatRgba10x6WithoutYCbCrSampler_ )
  51790. {
  51791. }
  51792. VULKAN_HPP_CONSTEXPR PhysicalDeviceRGBA10X6FormatsFeaturesEXT( PhysicalDeviceRGBA10X6FormatsFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  51793. PhysicalDeviceRGBA10X6FormatsFeaturesEXT( VkPhysicalDeviceRGBA10X6FormatsFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  51794. : PhysicalDeviceRGBA10X6FormatsFeaturesEXT( *reinterpret_cast<PhysicalDeviceRGBA10X6FormatsFeaturesEXT const *>( &rhs ) )
  51795. {
  51796. }
  51797. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  51798. PhysicalDeviceRGBA10X6FormatsFeaturesEXT & operator=( PhysicalDeviceRGBA10X6FormatsFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  51799. PhysicalDeviceRGBA10X6FormatsFeaturesEXT & operator=( VkPhysicalDeviceRGBA10X6FormatsFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  51800. {
  51801. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceRGBA10X6FormatsFeaturesEXT const *>( &rhs );
  51802. return *this;
  51803. }
  51804. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  51805. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceRGBA10X6FormatsFeaturesEXT & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
  51806. {
  51807. pNext = pNext_;
  51808. return *this;
  51809. }
  51810. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceRGBA10X6FormatsFeaturesEXT &
  51811. setFormatRgba10x6WithoutYCbCrSampler( VULKAN_HPP_NAMESPACE::Bool32 formatRgba10x6WithoutYCbCrSampler_ ) VULKAN_HPP_NOEXCEPT
  51812. {
  51813. formatRgba10x6WithoutYCbCrSampler = formatRgba10x6WithoutYCbCrSampler_;
  51814. return *this;
  51815. }
  51816. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  51817. operator VkPhysicalDeviceRGBA10X6FormatsFeaturesEXT const &() const VULKAN_HPP_NOEXCEPT
  51818. {
  51819. return *reinterpret_cast<const VkPhysicalDeviceRGBA10X6FormatsFeaturesEXT *>( this );
  51820. }
  51821. operator VkPhysicalDeviceRGBA10X6FormatsFeaturesEXT &() VULKAN_HPP_NOEXCEPT
  51822. {
  51823. return *reinterpret_cast<VkPhysicalDeviceRGBA10X6FormatsFeaturesEXT *>( this );
  51824. }
  51825. #if defined( VULKAN_HPP_USE_REFLECT )
  51826. # if 14 <= VULKAN_HPP_CPP_VERSION
  51827. auto
  51828. # else
  51829. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
  51830. # endif
  51831. reflect() const VULKAN_HPP_NOEXCEPT
  51832. {
  51833. return std::tie( sType, pNext, formatRgba10x6WithoutYCbCrSampler );
  51834. }
  51835. #endif
  51836. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  51837. auto operator<=>( PhysicalDeviceRGBA10X6FormatsFeaturesEXT const & ) const = default;
  51838. #else
  51839. bool operator==( PhysicalDeviceRGBA10X6FormatsFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  51840. {
  51841. # if defined( VULKAN_HPP_USE_REFLECT )
  51842. return this->reflect() == rhs.reflect();
  51843. # else
  51844. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( formatRgba10x6WithoutYCbCrSampler == rhs.formatRgba10x6WithoutYCbCrSampler );
  51845. # endif
  51846. }
  51847. bool operator!=( PhysicalDeviceRGBA10X6FormatsFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  51848. {
  51849. return !operator==( rhs );
  51850. }
  51851. #endif
  51852. public:
  51853. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceRgba10X6FormatsFeaturesEXT;
  51854. void * pNext = {};
  51855. VULKAN_HPP_NAMESPACE::Bool32 formatRgba10x6WithoutYCbCrSampler = {};
  51856. };
  51857. template <>
  51858. struct CppType<StructureType, StructureType::ePhysicalDeviceRgba10X6FormatsFeaturesEXT>
  51859. {
  51860. using Type = PhysicalDeviceRGBA10X6FormatsFeaturesEXT;
  51861. };
  51862. struct PhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT
  51863. {
  51864. using NativeType = VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT;
  51865. static const bool allowDuplicate = false;
  51866. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT;
  51867. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  51868. VULKAN_HPP_CONSTEXPR
  51869. PhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT( VULKAN_HPP_NAMESPACE::Bool32 rasterizationOrderColorAttachmentAccess_ = {},
  51870. VULKAN_HPP_NAMESPACE::Bool32 rasterizationOrderDepthAttachmentAccess_ = {},
  51871. VULKAN_HPP_NAMESPACE::Bool32 rasterizationOrderStencilAttachmentAccess_ = {},
  51872. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  51873. : pNext( pNext_ )
  51874. , rasterizationOrderColorAttachmentAccess( rasterizationOrderColorAttachmentAccess_ )
  51875. , rasterizationOrderDepthAttachmentAccess( rasterizationOrderDepthAttachmentAccess_ )
  51876. , rasterizationOrderStencilAttachmentAccess( rasterizationOrderStencilAttachmentAccess_ )
  51877. {
  51878. }
  51879. VULKAN_HPP_CONSTEXPR PhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT( PhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT const & rhs )
  51880. VULKAN_HPP_NOEXCEPT = default;
  51881. PhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT( VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  51882. : PhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT(
  51883. *reinterpret_cast<PhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT const *>( &rhs ) )
  51884. {
  51885. }
  51886. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  51887. PhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT &
  51888. operator=( PhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  51889. PhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT &
  51890. operator=( VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  51891. {
  51892. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT const *>( &rhs );
  51893. return *this;
  51894. }
  51895. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  51896. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
  51897. {
  51898. pNext = pNext_;
  51899. return *this;
  51900. }
  51901. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT &
  51902. setRasterizationOrderColorAttachmentAccess( VULKAN_HPP_NAMESPACE::Bool32 rasterizationOrderColorAttachmentAccess_ ) VULKAN_HPP_NOEXCEPT
  51903. {
  51904. rasterizationOrderColorAttachmentAccess = rasterizationOrderColorAttachmentAccess_;
  51905. return *this;
  51906. }
  51907. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT &
  51908. setRasterizationOrderDepthAttachmentAccess( VULKAN_HPP_NAMESPACE::Bool32 rasterizationOrderDepthAttachmentAccess_ ) VULKAN_HPP_NOEXCEPT
  51909. {
  51910. rasterizationOrderDepthAttachmentAccess = rasterizationOrderDepthAttachmentAccess_;
  51911. return *this;
  51912. }
  51913. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT &
  51914. setRasterizationOrderStencilAttachmentAccess( VULKAN_HPP_NAMESPACE::Bool32 rasterizationOrderStencilAttachmentAccess_ ) VULKAN_HPP_NOEXCEPT
  51915. {
  51916. rasterizationOrderStencilAttachmentAccess = rasterizationOrderStencilAttachmentAccess_;
  51917. return *this;
  51918. }
  51919. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  51920. operator VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT const &() const VULKAN_HPP_NOEXCEPT
  51921. {
  51922. return *reinterpret_cast<const VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT *>( this );
  51923. }
  51924. operator VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT &() VULKAN_HPP_NOEXCEPT
  51925. {
  51926. return *reinterpret_cast<VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT *>( this );
  51927. }
  51928. #if defined( VULKAN_HPP_USE_REFLECT )
  51929. # if 14 <= VULKAN_HPP_CPP_VERSION
  51930. auto
  51931. # else
  51932. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  51933. void * const &,
  51934. VULKAN_HPP_NAMESPACE::Bool32 const &,
  51935. VULKAN_HPP_NAMESPACE::Bool32 const &,
  51936. VULKAN_HPP_NAMESPACE::Bool32 const &>
  51937. # endif
  51938. reflect() const VULKAN_HPP_NOEXCEPT
  51939. {
  51940. return std::tie(
  51941. sType, pNext, rasterizationOrderColorAttachmentAccess, rasterizationOrderDepthAttachmentAccess, rasterizationOrderStencilAttachmentAccess );
  51942. }
  51943. #endif
  51944. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  51945. auto operator<=>( PhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT const & ) const = default;
  51946. #else
  51947. bool operator==( PhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  51948. {
  51949. # if defined( VULKAN_HPP_USE_REFLECT )
  51950. return this->reflect() == rhs.reflect();
  51951. # else
  51952. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( rasterizationOrderColorAttachmentAccess == rhs.rasterizationOrderColorAttachmentAccess ) &&
  51953. ( rasterizationOrderDepthAttachmentAccess == rhs.rasterizationOrderDepthAttachmentAccess ) &&
  51954. ( rasterizationOrderStencilAttachmentAccess == rhs.rasterizationOrderStencilAttachmentAccess );
  51955. # endif
  51956. }
  51957. bool operator!=( PhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  51958. {
  51959. return !operator==( rhs );
  51960. }
  51961. #endif
  51962. public:
  51963. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT;
  51964. void * pNext = {};
  51965. VULKAN_HPP_NAMESPACE::Bool32 rasterizationOrderColorAttachmentAccess = {};
  51966. VULKAN_HPP_NAMESPACE::Bool32 rasterizationOrderDepthAttachmentAccess = {};
  51967. VULKAN_HPP_NAMESPACE::Bool32 rasterizationOrderStencilAttachmentAccess = {};
  51968. };
  51969. template <>
  51970. struct CppType<StructureType, StructureType::ePhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT>
  51971. {
  51972. using Type = PhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT;
  51973. };
  51974. using PhysicalDeviceRasterizationOrderAttachmentAccessFeaturesARM = PhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT;
  51975. struct PhysicalDeviceRayQueryFeaturesKHR
  51976. {
  51977. using NativeType = VkPhysicalDeviceRayQueryFeaturesKHR;
  51978. static const bool allowDuplicate = false;
  51979. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceRayQueryFeaturesKHR;
  51980. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  51981. VULKAN_HPP_CONSTEXPR PhysicalDeviceRayQueryFeaturesKHR( VULKAN_HPP_NAMESPACE::Bool32 rayQuery_ = {}, void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  51982. : pNext( pNext_ )
  51983. , rayQuery( rayQuery_ )
  51984. {
  51985. }
  51986. VULKAN_HPP_CONSTEXPR PhysicalDeviceRayQueryFeaturesKHR( PhysicalDeviceRayQueryFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  51987. PhysicalDeviceRayQueryFeaturesKHR( VkPhysicalDeviceRayQueryFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  51988. : PhysicalDeviceRayQueryFeaturesKHR( *reinterpret_cast<PhysicalDeviceRayQueryFeaturesKHR const *>( &rhs ) )
  51989. {
  51990. }
  51991. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  51992. PhysicalDeviceRayQueryFeaturesKHR & operator=( PhysicalDeviceRayQueryFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  51993. PhysicalDeviceRayQueryFeaturesKHR & operator=( VkPhysicalDeviceRayQueryFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  51994. {
  51995. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceRayQueryFeaturesKHR const *>( &rhs );
  51996. return *this;
  51997. }
  51998. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  51999. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceRayQueryFeaturesKHR & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
  52000. {
  52001. pNext = pNext_;
  52002. return *this;
  52003. }
  52004. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceRayQueryFeaturesKHR & setRayQuery( VULKAN_HPP_NAMESPACE::Bool32 rayQuery_ ) VULKAN_HPP_NOEXCEPT
  52005. {
  52006. rayQuery = rayQuery_;
  52007. return *this;
  52008. }
  52009. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  52010. operator VkPhysicalDeviceRayQueryFeaturesKHR const &() const VULKAN_HPP_NOEXCEPT
  52011. {
  52012. return *reinterpret_cast<const VkPhysicalDeviceRayQueryFeaturesKHR *>( this );
  52013. }
  52014. operator VkPhysicalDeviceRayQueryFeaturesKHR &() VULKAN_HPP_NOEXCEPT
  52015. {
  52016. return *reinterpret_cast<VkPhysicalDeviceRayQueryFeaturesKHR *>( this );
  52017. }
  52018. #if defined( VULKAN_HPP_USE_REFLECT )
  52019. # if 14 <= VULKAN_HPP_CPP_VERSION
  52020. auto
  52021. # else
  52022. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
  52023. # endif
  52024. reflect() const VULKAN_HPP_NOEXCEPT
  52025. {
  52026. return std::tie( sType, pNext, rayQuery );
  52027. }
  52028. #endif
  52029. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  52030. auto operator<=>( PhysicalDeviceRayQueryFeaturesKHR const & ) const = default;
  52031. #else
  52032. bool operator==( PhysicalDeviceRayQueryFeaturesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  52033. {
  52034. # if defined( VULKAN_HPP_USE_REFLECT )
  52035. return this->reflect() == rhs.reflect();
  52036. # else
  52037. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( rayQuery == rhs.rayQuery );
  52038. # endif
  52039. }
  52040. bool operator!=( PhysicalDeviceRayQueryFeaturesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  52041. {
  52042. return !operator==( rhs );
  52043. }
  52044. #endif
  52045. public:
  52046. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceRayQueryFeaturesKHR;
  52047. void * pNext = {};
  52048. VULKAN_HPP_NAMESPACE::Bool32 rayQuery = {};
  52049. };
  52050. template <>
  52051. struct CppType<StructureType, StructureType::ePhysicalDeviceRayQueryFeaturesKHR>
  52052. {
  52053. using Type = PhysicalDeviceRayQueryFeaturesKHR;
  52054. };
  52055. struct PhysicalDeviceRayTracingMaintenance1FeaturesKHR
  52056. {
  52057. using NativeType = VkPhysicalDeviceRayTracingMaintenance1FeaturesKHR;
  52058. static const bool allowDuplicate = false;
  52059. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceRayTracingMaintenance1FeaturesKHR;
  52060. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  52061. VULKAN_HPP_CONSTEXPR PhysicalDeviceRayTracingMaintenance1FeaturesKHR( VULKAN_HPP_NAMESPACE::Bool32 rayTracingMaintenance1_ = {},
  52062. VULKAN_HPP_NAMESPACE::Bool32 rayTracingPipelineTraceRaysIndirect2_ = {},
  52063. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  52064. : pNext( pNext_ )
  52065. , rayTracingMaintenance1( rayTracingMaintenance1_ )
  52066. , rayTracingPipelineTraceRaysIndirect2( rayTracingPipelineTraceRaysIndirect2_ )
  52067. {
  52068. }
  52069. VULKAN_HPP_CONSTEXPR
  52070. PhysicalDeviceRayTracingMaintenance1FeaturesKHR( PhysicalDeviceRayTracingMaintenance1FeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  52071. PhysicalDeviceRayTracingMaintenance1FeaturesKHR( VkPhysicalDeviceRayTracingMaintenance1FeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  52072. : PhysicalDeviceRayTracingMaintenance1FeaturesKHR( *reinterpret_cast<PhysicalDeviceRayTracingMaintenance1FeaturesKHR const *>( &rhs ) )
  52073. {
  52074. }
  52075. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  52076. PhysicalDeviceRayTracingMaintenance1FeaturesKHR & operator=( PhysicalDeviceRayTracingMaintenance1FeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  52077. PhysicalDeviceRayTracingMaintenance1FeaturesKHR & operator=( VkPhysicalDeviceRayTracingMaintenance1FeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  52078. {
  52079. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceRayTracingMaintenance1FeaturesKHR const *>( &rhs );
  52080. return *this;
  52081. }
  52082. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  52083. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceRayTracingMaintenance1FeaturesKHR & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
  52084. {
  52085. pNext = pNext_;
  52086. return *this;
  52087. }
  52088. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceRayTracingMaintenance1FeaturesKHR &
  52089. setRayTracingMaintenance1( VULKAN_HPP_NAMESPACE::Bool32 rayTracingMaintenance1_ ) VULKAN_HPP_NOEXCEPT
  52090. {
  52091. rayTracingMaintenance1 = rayTracingMaintenance1_;
  52092. return *this;
  52093. }
  52094. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceRayTracingMaintenance1FeaturesKHR &
  52095. setRayTracingPipelineTraceRaysIndirect2( VULKAN_HPP_NAMESPACE::Bool32 rayTracingPipelineTraceRaysIndirect2_ ) VULKAN_HPP_NOEXCEPT
  52096. {
  52097. rayTracingPipelineTraceRaysIndirect2 = rayTracingPipelineTraceRaysIndirect2_;
  52098. return *this;
  52099. }
  52100. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  52101. operator VkPhysicalDeviceRayTracingMaintenance1FeaturesKHR const &() const VULKAN_HPP_NOEXCEPT
  52102. {
  52103. return *reinterpret_cast<const VkPhysicalDeviceRayTracingMaintenance1FeaturesKHR *>( this );
  52104. }
  52105. operator VkPhysicalDeviceRayTracingMaintenance1FeaturesKHR &() VULKAN_HPP_NOEXCEPT
  52106. {
  52107. return *reinterpret_cast<VkPhysicalDeviceRayTracingMaintenance1FeaturesKHR *>( this );
  52108. }
  52109. #if defined( VULKAN_HPP_USE_REFLECT )
  52110. # if 14 <= VULKAN_HPP_CPP_VERSION
  52111. auto
  52112. # else
  52113. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
  52114. # endif
  52115. reflect() const VULKAN_HPP_NOEXCEPT
  52116. {
  52117. return std::tie( sType, pNext, rayTracingMaintenance1, rayTracingPipelineTraceRaysIndirect2 );
  52118. }
  52119. #endif
  52120. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  52121. auto operator<=>( PhysicalDeviceRayTracingMaintenance1FeaturesKHR const & ) const = default;
  52122. #else
  52123. bool operator==( PhysicalDeviceRayTracingMaintenance1FeaturesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  52124. {
  52125. # if defined( VULKAN_HPP_USE_REFLECT )
  52126. return this->reflect() == rhs.reflect();
  52127. # else
  52128. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( rayTracingMaintenance1 == rhs.rayTracingMaintenance1 ) &&
  52129. ( rayTracingPipelineTraceRaysIndirect2 == rhs.rayTracingPipelineTraceRaysIndirect2 );
  52130. # endif
  52131. }
  52132. bool operator!=( PhysicalDeviceRayTracingMaintenance1FeaturesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  52133. {
  52134. return !operator==( rhs );
  52135. }
  52136. #endif
  52137. public:
  52138. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceRayTracingMaintenance1FeaturesKHR;
  52139. void * pNext = {};
  52140. VULKAN_HPP_NAMESPACE::Bool32 rayTracingMaintenance1 = {};
  52141. VULKAN_HPP_NAMESPACE::Bool32 rayTracingPipelineTraceRaysIndirect2 = {};
  52142. };
  52143. template <>
  52144. struct CppType<StructureType, StructureType::ePhysicalDeviceRayTracingMaintenance1FeaturesKHR>
  52145. {
  52146. using Type = PhysicalDeviceRayTracingMaintenance1FeaturesKHR;
  52147. };
  52148. struct PhysicalDeviceRayTracingMotionBlurFeaturesNV
  52149. {
  52150. using NativeType = VkPhysicalDeviceRayTracingMotionBlurFeaturesNV;
  52151. static const bool allowDuplicate = false;
  52152. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceRayTracingMotionBlurFeaturesNV;
  52153. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  52154. VULKAN_HPP_CONSTEXPR PhysicalDeviceRayTracingMotionBlurFeaturesNV( VULKAN_HPP_NAMESPACE::Bool32 rayTracingMotionBlur_ = {},
  52155. VULKAN_HPP_NAMESPACE::Bool32 rayTracingMotionBlurPipelineTraceRaysIndirect_ = {},
  52156. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  52157. : pNext( pNext_ )
  52158. , rayTracingMotionBlur( rayTracingMotionBlur_ )
  52159. , rayTracingMotionBlurPipelineTraceRaysIndirect( rayTracingMotionBlurPipelineTraceRaysIndirect_ )
  52160. {
  52161. }
  52162. VULKAN_HPP_CONSTEXPR PhysicalDeviceRayTracingMotionBlurFeaturesNV( PhysicalDeviceRayTracingMotionBlurFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  52163. PhysicalDeviceRayTracingMotionBlurFeaturesNV( VkPhysicalDeviceRayTracingMotionBlurFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT
  52164. : PhysicalDeviceRayTracingMotionBlurFeaturesNV( *reinterpret_cast<PhysicalDeviceRayTracingMotionBlurFeaturesNV const *>( &rhs ) )
  52165. {
  52166. }
  52167. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  52168. PhysicalDeviceRayTracingMotionBlurFeaturesNV & operator=( PhysicalDeviceRayTracingMotionBlurFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  52169. PhysicalDeviceRayTracingMotionBlurFeaturesNV & operator=( VkPhysicalDeviceRayTracingMotionBlurFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT
  52170. {
  52171. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceRayTracingMotionBlurFeaturesNV const *>( &rhs );
  52172. return *this;
  52173. }
  52174. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  52175. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceRayTracingMotionBlurFeaturesNV & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
  52176. {
  52177. pNext = pNext_;
  52178. return *this;
  52179. }
  52180. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceRayTracingMotionBlurFeaturesNV &
  52181. setRayTracingMotionBlur( VULKAN_HPP_NAMESPACE::Bool32 rayTracingMotionBlur_ ) VULKAN_HPP_NOEXCEPT
  52182. {
  52183. rayTracingMotionBlur = rayTracingMotionBlur_;
  52184. return *this;
  52185. }
  52186. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceRayTracingMotionBlurFeaturesNV &
  52187. setRayTracingMotionBlurPipelineTraceRaysIndirect( VULKAN_HPP_NAMESPACE::Bool32 rayTracingMotionBlurPipelineTraceRaysIndirect_ ) VULKAN_HPP_NOEXCEPT
  52188. {
  52189. rayTracingMotionBlurPipelineTraceRaysIndirect = rayTracingMotionBlurPipelineTraceRaysIndirect_;
  52190. return *this;
  52191. }
  52192. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  52193. operator VkPhysicalDeviceRayTracingMotionBlurFeaturesNV const &() const VULKAN_HPP_NOEXCEPT
  52194. {
  52195. return *reinterpret_cast<const VkPhysicalDeviceRayTracingMotionBlurFeaturesNV *>( this );
  52196. }
  52197. operator VkPhysicalDeviceRayTracingMotionBlurFeaturesNV &() VULKAN_HPP_NOEXCEPT
  52198. {
  52199. return *reinterpret_cast<VkPhysicalDeviceRayTracingMotionBlurFeaturesNV *>( this );
  52200. }
  52201. #if defined( VULKAN_HPP_USE_REFLECT )
  52202. # if 14 <= VULKAN_HPP_CPP_VERSION
  52203. auto
  52204. # else
  52205. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
  52206. # endif
  52207. reflect() const VULKAN_HPP_NOEXCEPT
  52208. {
  52209. return std::tie( sType, pNext, rayTracingMotionBlur, rayTracingMotionBlurPipelineTraceRaysIndirect );
  52210. }
  52211. #endif
  52212. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  52213. auto operator<=>( PhysicalDeviceRayTracingMotionBlurFeaturesNV const & ) const = default;
  52214. #else
  52215. bool operator==( PhysicalDeviceRayTracingMotionBlurFeaturesNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  52216. {
  52217. # if defined( VULKAN_HPP_USE_REFLECT )
  52218. return this->reflect() == rhs.reflect();
  52219. # else
  52220. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( rayTracingMotionBlur == rhs.rayTracingMotionBlur ) &&
  52221. ( rayTracingMotionBlurPipelineTraceRaysIndirect == rhs.rayTracingMotionBlurPipelineTraceRaysIndirect );
  52222. # endif
  52223. }
  52224. bool operator!=( PhysicalDeviceRayTracingMotionBlurFeaturesNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  52225. {
  52226. return !operator==( rhs );
  52227. }
  52228. #endif
  52229. public:
  52230. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceRayTracingMotionBlurFeaturesNV;
  52231. void * pNext = {};
  52232. VULKAN_HPP_NAMESPACE::Bool32 rayTracingMotionBlur = {};
  52233. VULKAN_HPP_NAMESPACE::Bool32 rayTracingMotionBlurPipelineTraceRaysIndirect = {};
  52234. };
  52235. template <>
  52236. struct CppType<StructureType, StructureType::ePhysicalDeviceRayTracingMotionBlurFeaturesNV>
  52237. {
  52238. using Type = PhysicalDeviceRayTracingMotionBlurFeaturesNV;
  52239. };
  52240. struct PhysicalDeviceRayTracingPipelineFeaturesKHR
  52241. {
  52242. using NativeType = VkPhysicalDeviceRayTracingPipelineFeaturesKHR;
  52243. static const bool allowDuplicate = false;
  52244. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceRayTracingPipelineFeaturesKHR;
  52245. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  52246. VULKAN_HPP_CONSTEXPR PhysicalDeviceRayTracingPipelineFeaturesKHR( VULKAN_HPP_NAMESPACE::Bool32 rayTracingPipeline_ = {},
  52247. VULKAN_HPP_NAMESPACE::Bool32 rayTracingPipelineShaderGroupHandleCaptureReplay_ = {},
  52248. VULKAN_HPP_NAMESPACE::Bool32 rayTracingPipelineShaderGroupHandleCaptureReplayMixed_ = {},
  52249. VULKAN_HPP_NAMESPACE::Bool32 rayTracingPipelineTraceRaysIndirect_ = {},
  52250. VULKAN_HPP_NAMESPACE::Bool32 rayTraversalPrimitiveCulling_ = {},
  52251. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  52252. : pNext( pNext_ )
  52253. , rayTracingPipeline( rayTracingPipeline_ )
  52254. , rayTracingPipelineShaderGroupHandleCaptureReplay( rayTracingPipelineShaderGroupHandleCaptureReplay_ )
  52255. , rayTracingPipelineShaderGroupHandleCaptureReplayMixed( rayTracingPipelineShaderGroupHandleCaptureReplayMixed_ )
  52256. , rayTracingPipelineTraceRaysIndirect( rayTracingPipelineTraceRaysIndirect_ )
  52257. , rayTraversalPrimitiveCulling( rayTraversalPrimitiveCulling_ )
  52258. {
  52259. }
  52260. VULKAN_HPP_CONSTEXPR PhysicalDeviceRayTracingPipelineFeaturesKHR( PhysicalDeviceRayTracingPipelineFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  52261. PhysicalDeviceRayTracingPipelineFeaturesKHR( VkPhysicalDeviceRayTracingPipelineFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  52262. : PhysicalDeviceRayTracingPipelineFeaturesKHR( *reinterpret_cast<PhysicalDeviceRayTracingPipelineFeaturesKHR const *>( &rhs ) )
  52263. {
  52264. }
  52265. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  52266. PhysicalDeviceRayTracingPipelineFeaturesKHR & operator=( PhysicalDeviceRayTracingPipelineFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  52267. PhysicalDeviceRayTracingPipelineFeaturesKHR & operator=( VkPhysicalDeviceRayTracingPipelineFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  52268. {
  52269. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceRayTracingPipelineFeaturesKHR const *>( &rhs );
  52270. return *this;
  52271. }
  52272. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  52273. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceRayTracingPipelineFeaturesKHR & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
  52274. {
  52275. pNext = pNext_;
  52276. return *this;
  52277. }
  52278. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceRayTracingPipelineFeaturesKHR &
  52279. setRayTracingPipeline( VULKAN_HPP_NAMESPACE::Bool32 rayTracingPipeline_ ) VULKAN_HPP_NOEXCEPT
  52280. {
  52281. rayTracingPipeline = rayTracingPipeline_;
  52282. return *this;
  52283. }
  52284. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceRayTracingPipelineFeaturesKHR &
  52285. setRayTracingPipelineShaderGroupHandleCaptureReplay( VULKAN_HPP_NAMESPACE::Bool32 rayTracingPipelineShaderGroupHandleCaptureReplay_ ) VULKAN_HPP_NOEXCEPT
  52286. {
  52287. rayTracingPipelineShaderGroupHandleCaptureReplay = rayTracingPipelineShaderGroupHandleCaptureReplay_;
  52288. return *this;
  52289. }
  52290. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceRayTracingPipelineFeaturesKHR & setRayTracingPipelineShaderGroupHandleCaptureReplayMixed(
  52291. VULKAN_HPP_NAMESPACE::Bool32 rayTracingPipelineShaderGroupHandleCaptureReplayMixed_ ) VULKAN_HPP_NOEXCEPT
  52292. {
  52293. rayTracingPipelineShaderGroupHandleCaptureReplayMixed = rayTracingPipelineShaderGroupHandleCaptureReplayMixed_;
  52294. return *this;
  52295. }
  52296. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceRayTracingPipelineFeaturesKHR &
  52297. setRayTracingPipelineTraceRaysIndirect( VULKAN_HPP_NAMESPACE::Bool32 rayTracingPipelineTraceRaysIndirect_ ) VULKAN_HPP_NOEXCEPT
  52298. {
  52299. rayTracingPipelineTraceRaysIndirect = rayTracingPipelineTraceRaysIndirect_;
  52300. return *this;
  52301. }
  52302. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceRayTracingPipelineFeaturesKHR &
  52303. setRayTraversalPrimitiveCulling( VULKAN_HPP_NAMESPACE::Bool32 rayTraversalPrimitiveCulling_ ) VULKAN_HPP_NOEXCEPT
  52304. {
  52305. rayTraversalPrimitiveCulling = rayTraversalPrimitiveCulling_;
  52306. return *this;
  52307. }
  52308. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  52309. operator VkPhysicalDeviceRayTracingPipelineFeaturesKHR const &() const VULKAN_HPP_NOEXCEPT
  52310. {
  52311. return *reinterpret_cast<const VkPhysicalDeviceRayTracingPipelineFeaturesKHR *>( this );
  52312. }
  52313. operator VkPhysicalDeviceRayTracingPipelineFeaturesKHR &() VULKAN_HPP_NOEXCEPT
  52314. {
  52315. return *reinterpret_cast<VkPhysicalDeviceRayTracingPipelineFeaturesKHR *>( this );
  52316. }
  52317. #if defined( VULKAN_HPP_USE_REFLECT )
  52318. # if 14 <= VULKAN_HPP_CPP_VERSION
  52319. auto
  52320. # else
  52321. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  52322. void * const &,
  52323. VULKAN_HPP_NAMESPACE::Bool32 const &,
  52324. VULKAN_HPP_NAMESPACE::Bool32 const &,
  52325. VULKAN_HPP_NAMESPACE::Bool32 const &,
  52326. VULKAN_HPP_NAMESPACE::Bool32 const &,
  52327. VULKAN_HPP_NAMESPACE::Bool32 const &>
  52328. # endif
  52329. reflect() const VULKAN_HPP_NOEXCEPT
  52330. {
  52331. return std::tie( sType,
  52332. pNext,
  52333. rayTracingPipeline,
  52334. rayTracingPipelineShaderGroupHandleCaptureReplay,
  52335. rayTracingPipelineShaderGroupHandleCaptureReplayMixed,
  52336. rayTracingPipelineTraceRaysIndirect,
  52337. rayTraversalPrimitiveCulling );
  52338. }
  52339. #endif
  52340. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  52341. auto operator<=>( PhysicalDeviceRayTracingPipelineFeaturesKHR const & ) const = default;
  52342. #else
  52343. bool operator==( PhysicalDeviceRayTracingPipelineFeaturesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  52344. {
  52345. # if defined( VULKAN_HPP_USE_REFLECT )
  52346. return this->reflect() == rhs.reflect();
  52347. # else
  52348. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( rayTracingPipeline == rhs.rayTracingPipeline ) &&
  52349. ( rayTracingPipelineShaderGroupHandleCaptureReplay == rhs.rayTracingPipelineShaderGroupHandleCaptureReplay ) &&
  52350. ( rayTracingPipelineShaderGroupHandleCaptureReplayMixed == rhs.rayTracingPipelineShaderGroupHandleCaptureReplayMixed ) &&
  52351. ( rayTracingPipelineTraceRaysIndirect == rhs.rayTracingPipelineTraceRaysIndirect ) &&
  52352. ( rayTraversalPrimitiveCulling == rhs.rayTraversalPrimitiveCulling );
  52353. # endif
  52354. }
  52355. bool operator!=( PhysicalDeviceRayTracingPipelineFeaturesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  52356. {
  52357. return !operator==( rhs );
  52358. }
  52359. #endif
  52360. public:
  52361. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceRayTracingPipelineFeaturesKHR;
  52362. void * pNext = {};
  52363. VULKAN_HPP_NAMESPACE::Bool32 rayTracingPipeline = {};
  52364. VULKAN_HPP_NAMESPACE::Bool32 rayTracingPipelineShaderGroupHandleCaptureReplay = {};
  52365. VULKAN_HPP_NAMESPACE::Bool32 rayTracingPipelineShaderGroupHandleCaptureReplayMixed = {};
  52366. VULKAN_HPP_NAMESPACE::Bool32 rayTracingPipelineTraceRaysIndirect = {};
  52367. VULKAN_HPP_NAMESPACE::Bool32 rayTraversalPrimitiveCulling = {};
  52368. };
  52369. template <>
  52370. struct CppType<StructureType, StructureType::ePhysicalDeviceRayTracingPipelineFeaturesKHR>
  52371. {
  52372. using Type = PhysicalDeviceRayTracingPipelineFeaturesKHR;
  52373. };
  52374. struct PhysicalDeviceRayTracingPipelinePropertiesKHR
  52375. {
  52376. using NativeType = VkPhysicalDeviceRayTracingPipelinePropertiesKHR;
  52377. static const bool allowDuplicate = false;
  52378. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceRayTracingPipelinePropertiesKHR;
  52379. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  52380. VULKAN_HPP_CONSTEXPR PhysicalDeviceRayTracingPipelinePropertiesKHR( uint32_t shaderGroupHandleSize_ = {},
  52381. uint32_t maxRayRecursionDepth_ = {},
  52382. uint32_t maxShaderGroupStride_ = {},
  52383. uint32_t shaderGroupBaseAlignment_ = {},
  52384. uint32_t shaderGroupHandleCaptureReplaySize_ = {},
  52385. uint32_t maxRayDispatchInvocationCount_ = {},
  52386. uint32_t shaderGroupHandleAlignment_ = {},
  52387. uint32_t maxRayHitAttributeSize_ = {},
  52388. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  52389. : pNext( pNext_ )
  52390. , shaderGroupHandleSize( shaderGroupHandleSize_ )
  52391. , maxRayRecursionDepth( maxRayRecursionDepth_ )
  52392. , maxShaderGroupStride( maxShaderGroupStride_ )
  52393. , shaderGroupBaseAlignment( shaderGroupBaseAlignment_ )
  52394. , shaderGroupHandleCaptureReplaySize( shaderGroupHandleCaptureReplaySize_ )
  52395. , maxRayDispatchInvocationCount( maxRayDispatchInvocationCount_ )
  52396. , shaderGroupHandleAlignment( shaderGroupHandleAlignment_ )
  52397. , maxRayHitAttributeSize( maxRayHitAttributeSize_ )
  52398. {
  52399. }
  52400. VULKAN_HPP_CONSTEXPR
  52401. PhysicalDeviceRayTracingPipelinePropertiesKHR( PhysicalDeviceRayTracingPipelinePropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  52402. PhysicalDeviceRayTracingPipelinePropertiesKHR( VkPhysicalDeviceRayTracingPipelinePropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  52403. : PhysicalDeviceRayTracingPipelinePropertiesKHR( *reinterpret_cast<PhysicalDeviceRayTracingPipelinePropertiesKHR const *>( &rhs ) )
  52404. {
  52405. }
  52406. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  52407. PhysicalDeviceRayTracingPipelinePropertiesKHR & operator=( PhysicalDeviceRayTracingPipelinePropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  52408. PhysicalDeviceRayTracingPipelinePropertiesKHR & operator=( VkPhysicalDeviceRayTracingPipelinePropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  52409. {
  52410. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceRayTracingPipelinePropertiesKHR const *>( &rhs );
  52411. return *this;
  52412. }
  52413. operator VkPhysicalDeviceRayTracingPipelinePropertiesKHR const &() const VULKAN_HPP_NOEXCEPT
  52414. {
  52415. return *reinterpret_cast<const VkPhysicalDeviceRayTracingPipelinePropertiesKHR *>( this );
  52416. }
  52417. operator VkPhysicalDeviceRayTracingPipelinePropertiesKHR &() VULKAN_HPP_NOEXCEPT
  52418. {
  52419. return *reinterpret_cast<VkPhysicalDeviceRayTracingPipelinePropertiesKHR *>( this );
  52420. }
  52421. #if defined( VULKAN_HPP_USE_REFLECT )
  52422. # if 14 <= VULKAN_HPP_CPP_VERSION
  52423. auto
  52424. # else
  52425. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  52426. void * const &,
  52427. uint32_t const &,
  52428. uint32_t const &,
  52429. uint32_t const &,
  52430. uint32_t const &,
  52431. uint32_t const &,
  52432. uint32_t const &,
  52433. uint32_t const &,
  52434. uint32_t const &>
  52435. # endif
  52436. reflect() const VULKAN_HPP_NOEXCEPT
  52437. {
  52438. return std::tie( sType,
  52439. pNext,
  52440. shaderGroupHandleSize,
  52441. maxRayRecursionDepth,
  52442. maxShaderGroupStride,
  52443. shaderGroupBaseAlignment,
  52444. shaderGroupHandleCaptureReplaySize,
  52445. maxRayDispatchInvocationCount,
  52446. shaderGroupHandleAlignment,
  52447. maxRayHitAttributeSize );
  52448. }
  52449. #endif
  52450. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  52451. auto operator<=>( PhysicalDeviceRayTracingPipelinePropertiesKHR const & ) const = default;
  52452. #else
  52453. bool operator==( PhysicalDeviceRayTracingPipelinePropertiesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  52454. {
  52455. # if defined( VULKAN_HPP_USE_REFLECT )
  52456. return this->reflect() == rhs.reflect();
  52457. # else
  52458. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( shaderGroupHandleSize == rhs.shaderGroupHandleSize ) &&
  52459. ( maxRayRecursionDepth == rhs.maxRayRecursionDepth ) && ( maxShaderGroupStride == rhs.maxShaderGroupStride ) &&
  52460. ( shaderGroupBaseAlignment == rhs.shaderGroupBaseAlignment ) && ( shaderGroupHandleCaptureReplaySize == rhs.shaderGroupHandleCaptureReplaySize ) &&
  52461. ( maxRayDispatchInvocationCount == rhs.maxRayDispatchInvocationCount ) && ( shaderGroupHandleAlignment == rhs.shaderGroupHandleAlignment ) &&
  52462. ( maxRayHitAttributeSize == rhs.maxRayHitAttributeSize );
  52463. # endif
  52464. }
  52465. bool operator!=( PhysicalDeviceRayTracingPipelinePropertiesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  52466. {
  52467. return !operator==( rhs );
  52468. }
  52469. #endif
  52470. public:
  52471. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceRayTracingPipelinePropertiesKHR;
  52472. void * pNext = {};
  52473. uint32_t shaderGroupHandleSize = {};
  52474. uint32_t maxRayRecursionDepth = {};
  52475. uint32_t maxShaderGroupStride = {};
  52476. uint32_t shaderGroupBaseAlignment = {};
  52477. uint32_t shaderGroupHandleCaptureReplaySize = {};
  52478. uint32_t maxRayDispatchInvocationCount = {};
  52479. uint32_t shaderGroupHandleAlignment = {};
  52480. uint32_t maxRayHitAttributeSize = {};
  52481. };
  52482. template <>
  52483. struct CppType<StructureType, StructureType::ePhysicalDeviceRayTracingPipelinePropertiesKHR>
  52484. {
  52485. using Type = PhysicalDeviceRayTracingPipelinePropertiesKHR;
  52486. };
  52487. struct PhysicalDeviceRayTracingPropertiesNV
  52488. {
  52489. using NativeType = VkPhysicalDeviceRayTracingPropertiesNV;
  52490. static const bool allowDuplicate = false;
  52491. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceRayTracingPropertiesNV;
  52492. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  52493. VULKAN_HPP_CONSTEXPR PhysicalDeviceRayTracingPropertiesNV( uint32_t shaderGroupHandleSize_ = {},
  52494. uint32_t maxRecursionDepth_ = {},
  52495. uint32_t maxShaderGroupStride_ = {},
  52496. uint32_t shaderGroupBaseAlignment_ = {},
  52497. uint64_t maxGeometryCount_ = {},
  52498. uint64_t maxInstanceCount_ = {},
  52499. uint64_t maxTriangleCount_ = {},
  52500. uint32_t maxDescriptorSetAccelerationStructures_ = {},
  52501. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  52502. : pNext( pNext_ )
  52503. , shaderGroupHandleSize( shaderGroupHandleSize_ )
  52504. , maxRecursionDepth( maxRecursionDepth_ )
  52505. , maxShaderGroupStride( maxShaderGroupStride_ )
  52506. , shaderGroupBaseAlignment( shaderGroupBaseAlignment_ )
  52507. , maxGeometryCount( maxGeometryCount_ )
  52508. , maxInstanceCount( maxInstanceCount_ )
  52509. , maxTriangleCount( maxTriangleCount_ )
  52510. , maxDescriptorSetAccelerationStructures( maxDescriptorSetAccelerationStructures_ )
  52511. {
  52512. }
  52513. VULKAN_HPP_CONSTEXPR PhysicalDeviceRayTracingPropertiesNV( PhysicalDeviceRayTracingPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  52514. PhysicalDeviceRayTracingPropertiesNV( VkPhysicalDeviceRayTracingPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT
  52515. : PhysicalDeviceRayTracingPropertiesNV( *reinterpret_cast<PhysicalDeviceRayTracingPropertiesNV const *>( &rhs ) )
  52516. {
  52517. }
  52518. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  52519. PhysicalDeviceRayTracingPropertiesNV & operator=( PhysicalDeviceRayTracingPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  52520. PhysicalDeviceRayTracingPropertiesNV & operator=( VkPhysicalDeviceRayTracingPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT
  52521. {
  52522. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceRayTracingPropertiesNV const *>( &rhs );
  52523. return *this;
  52524. }
  52525. operator VkPhysicalDeviceRayTracingPropertiesNV const &() const VULKAN_HPP_NOEXCEPT
  52526. {
  52527. return *reinterpret_cast<const VkPhysicalDeviceRayTracingPropertiesNV *>( this );
  52528. }
  52529. operator VkPhysicalDeviceRayTracingPropertiesNV &() VULKAN_HPP_NOEXCEPT
  52530. {
  52531. return *reinterpret_cast<VkPhysicalDeviceRayTracingPropertiesNV *>( this );
  52532. }
  52533. #if defined( VULKAN_HPP_USE_REFLECT )
  52534. # if 14 <= VULKAN_HPP_CPP_VERSION
  52535. auto
  52536. # else
  52537. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  52538. void * const &,
  52539. uint32_t const &,
  52540. uint32_t const &,
  52541. uint32_t const &,
  52542. uint32_t const &,
  52543. uint64_t const &,
  52544. uint64_t const &,
  52545. uint64_t const &,
  52546. uint32_t const &>
  52547. # endif
  52548. reflect() const VULKAN_HPP_NOEXCEPT
  52549. {
  52550. return std::tie( sType,
  52551. pNext,
  52552. shaderGroupHandleSize,
  52553. maxRecursionDepth,
  52554. maxShaderGroupStride,
  52555. shaderGroupBaseAlignment,
  52556. maxGeometryCount,
  52557. maxInstanceCount,
  52558. maxTriangleCount,
  52559. maxDescriptorSetAccelerationStructures );
  52560. }
  52561. #endif
  52562. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  52563. auto operator<=>( PhysicalDeviceRayTracingPropertiesNV const & ) const = default;
  52564. #else
  52565. bool operator==( PhysicalDeviceRayTracingPropertiesNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  52566. {
  52567. # if defined( VULKAN_HPP_USE_REFLECT )
  52568. return this->reflect() == rhs.reflect();
  52569. # else
  52570. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( shaderGroupHandleSize == rhs.shaderGroupHandleSize ) &&
  52571. ( maxRecursionDepth == rhs.maxRecursionDepth ) && ( maxShaderGroupStride == rhs.maxShaderGroupStride ) &&
  52572. ( shaderGroupBaseAlignment == rhs.shaderGroupBaseAlignment ) && ( maxGeometryCount == rhs.maxGeometryCount ) &&
  52573. ( maxInstanceCount == rhs.maxInstanceCount ) && ( maxTriangleCount == rhs.maxTriangleCount ) &&
  52574. ( maxDescriptorSetAccelerationStructures == rhs.maxDescriptorSetAccelerationStructures );
  52575. # endif
  52576. }
  52577. bool operator!=( PhysicalDeviceRayTracingPropertiesNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  52578. {
  52579. return !operator==( rhs );
  52580. }
  52581. #endif
  52582. public:
  52583. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceRayTracingPropertiesNV;
  52584. void * pNext = {};
  52585. uint32_t shaderGroupHandleSize = {};
  52586. uint32_t maxRecursionDepth = {};
  52587. uint32_t maxShaderGroupStride = {};
  52588. uint32_t shaderGroupBaseAlignment = {};
  52589. uint64_t maxGeometryCount = {};
  52590. uint64_t maxInstanceCount = {};
  52591. uint64_t maxTriangleCount = {};
  52592. uint32_t maxDescriptorSetAccelerationStructures = {};
  52593. };
  52594. template <>
  52595. struct CppType<StructureType, StructureType::ePhysicalDeviceRayTracingPropertiesNV>
  52596. {
  52597. using Type = PhysicalDeviceRayTracingPropertiesNV;
  52598. };
  52599. struct PhysicalDeviceRepresentativeFragmentTestFeaturesNV
  52600. {
  52601. using NativeType = VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV;
  52602. static const bool allowDuplicate = false;
  52603. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceRepresentativeFragmentTestFeaturesNV;
  52604. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  52605. VULKAN_HPP_CONSTEXPR PhysicalDeviceRepresentativeFragmentTestFeaturesNV( VULKAN_HPP_NAMESPACE::Bool32 representativeFragmentTest_ = {},
  52606. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  52607. : pNext( pNext_ )
  52608. , representativeFragmentTest( representativeFragmentTest_ )
  52609. {
  52610. }
  52611. VULKAN_HPP_CONSTEXPR
  52612. PhysicalDeviceRepresentativeFragmentTestFeaturesNV( PhysicalDeviceRepresentativeFragmentTestFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  52613. PhysicalDeviceRepresentativeFragmentTestFeaturesNV( VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT
  52614. : PhysicalDeviceRepresentativeFragmentTestFeaturesNV( *reinterpret_cast<PhysicalDeviceRepresentativeFragmentTestFeaturesNV const *>( &rhs ) )
  52615. {
  52616. }
  52617. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  52618. PhysicalDeviceRepresentativeFragmentTestFeaturesNV &
  52619. operator=( PhysicalDeviceRepresentativeFragmentTestFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  52620. PhysicalDeviceRepresentativeFragmentTestFeaturesNV & operator=( VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT
  52621. {
  52622. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceRepresentativeFragmentTestFeaturesNV const *>( &rhs );
  52623. return *this;
  52624. }
  52625. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  52626. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceRepresentativeFragmentTestFeaturesNV & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
  52627. {
  52628. pNext = pNext_;
  52629. return *this;
  52630. }
  52631. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceRepresentativeFragmentTestFeaturesNV &
  52632. setRepresentativeFragmentTest( VULKAN_HPP_NAMESPACE::Bool32 representativeFragmentTest_ ) VULKAN_HPP_NOEXCEPT
  52633. {
  52634. representativeFragmentTest = representativeFragmentTest_;
  52635. return *this;
  52636. }
  52637. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  52638. operator VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV const &() const VULKAN_HPP_NOEXCEPT
  52639. {
  52640. return *reinterpret_cast<const VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV *>( this );
  52641. }
  52642. operator VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV &() VULKAN_HPP_NOEXCEPT
  52643. {
  52644. return *reinterpret_cast<VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV *>( this );
  52645. }
  52646. #if defined( VULKAN_HPP_USE_REFLECT )
  52647. # if 14 <= VULKAN_HPP_CPP_VERSION
  52648. auto
  52649. # else
  52650. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
  52651. # endif
  52652. reflect() const VULKAN_HPP_NOEXCEPT
  52653. {
  52654. return std::tie( sType, pNext, representativeFragmentTest );
  52655. }
  52656. #endif
  52657. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  52658. auto operator<=>( PhysicalDeviceRepresentativeFragmentTestFeaturesNV const & ) const = default;
  52659. #else
  52660. bool operator==( PhysicalDeviceRepresentativeFragmentTestFeaturesNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  52661. {
  52662. # if defined( VULKAN_HPP_USE_REFLECT )
  52663. return this->reflect() == rhs.reflect();
  52664. # else
  52665. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( representativeFragmentTest == rhs.representativeFragmentTest );
  52666. # endif
  52667. }
  52668. bool operator!=( PhysicalDeviceRepresentativeFragmentTestFeaturesNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  52669. {
  52670. return !operator==( rhs );
  52671. }
  52672. #endif
  52673. public:
  52674. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceRepresentativeFragmentTestFeaturesNV;
  52675. void * pNext = {};
  52676. VULKAN_HPP_NAMESPACE::Bool32 representativeFragmentTest = {};
  52677. };
  52678. template <>
  52679. struct CppType<StructureType, StructureType::ePhysicalDeviceRepresentativeFragmentTestFeaturesNV>
  52680. {
  52681. using Type = PhysicalDeviceRepresentativeFragmentTestFeaturesNV;
  52682. };
  52683. struct PhysicalDeviceRobustness2FeaturesEXT
  52684. {
  52685. using NativeType = VkPhysicalDeviceRobustness2FeaturesEXT;
  52686. static const bool allowDuplicate = false;
  52687. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceRobustness2FeaturesEXT;
  52688. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  52689. VULKAN_HPP_CONSTEXPR PhysicalDeviceRobustness2FeaturesEXT( VULKAN_HPP_NAMESPACE::Bool32 robustBufferAccess2_ = {},
  52690. VULKAN_HPP_NAMESPACE::Bool32 robustImageAccess2_ = {},
  52691. VULKAN_HPP_NAMESPACE::Bool32 nullDescriptor_ = {},
  52692. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  52693. : pNext( pNext_ )
  52694. , robustBufferAccess2( robustBufferAccess2_ )
  52695. , robustImageAccess2( robustImageAccess2_ )
  52696. , nullDescriptor( nullDescriptor_ )
  52697. {
  52698. }
  52699. VULKAN_HPP_CONSTEXPR PhysicalDeviceRobustness2FeaturesEXT( PhysicalDeviceRobustness2FeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  52700. PhysicalDeviceRobustness2FeaturesEXT( VkPhysicalDeviceRobustness2FeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  52701. : PhysicalDeviceRobustness2FeaturesEXT( *reinterpret_cast<PhysicalDeviceRobustness2FeaturesEXT const *>( &rhs ) )
  52702. {
  52703. }
  52704. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  52705. PhysicalDeviceRobustness2FeaturesEXT & operator=( PhysicalDeviceRobustness2FeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  52706. PhysicalDeviceRobustness2FeaturesEXT & operator=( VkPhysicalDeviceRobustness2FeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  52707. {
  52708. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceRobustness2FeaturesEXT const *>( &rhs );
  52709. return *this;
  52710. }
  52711. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  52712. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceRobustness2FeaturesEXT & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
  52713. {
  52714. pNext = pNext_;
  52715. return *this;
  52716. }
  52717. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceRobustness2FeaturesEXT &
  52718. setRobustBufferAccess2( VULKAN_HPP_NAMESPACE::Bool32 robustBufferAccess2_ ) VULKAN_HPP_NOEXCEPT
  52719. {
  52720. robustBufferAccess2 = robustBufferAccess2_;
  52721. return *this;
  52722. }
  52723. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceRobustness2FeaturesEXT & setRobustImageAccess2( VULKAN_HPP_NAMESPACE::Bool32 robustImageAccess2_ ) VULKAN_HPP_NOEXCEPT
  52724. {
  52725. robustImageAccess2 = robustImageAccess2_;
  52726. return *this;
  52727. }
  52728. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceRobustness2FeaturesEXT & setNullDescriptor( VULKAN_HPP_NAMESPACE::Bool32 nullDescriptor_ ) VULKAN_HPP_NOEXCEPT
  52729. {
  52730. nullDescriptor = nullDescriptor_;
  52731. return *this;
  52732. }
  52733. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  52734. operator VkPhysicalDeviceRobustness2FeaturesEXT const &() const VULKAN_HPP_NOEXCEPT
  52735. {
  52736. return *reinterpret_cast<const VkPhysicalDeviceRobustness2FeaturesEXT *>( this );
  52737. }
  52738. operator VkPhysicalDeviceRobustness2FeaturesEXT &() VULKAN_HPP_NOEXCEPT
  52739. {
  52740. return *reinterpret_cast<VkPhysicalDeviceRobustness2FeaturesEXT *>( this );
  52741. }
  52742. #if defined( VULKAN_HPP_USE_REFLECT )
  52743. # if 14 <= VULKAN_HPP_CPP_VERSION
  52744. auto
  52745. # else
  52746. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  52747. void * const &,
  52748. VULKAN_HPP_NAMESPACE::Bool32 const &,
  52749. VULKAN_HPP_NAMESPACE::Bool32 const &,
  52750. VULKAN_HPP_NAMESPACE::Bool32 const &>
  52751. # endif
  52752. reflect() const VULKAN_HPP_NOEXCEPT
  52753. {
  52754. return std::tie( sType, pNext, robustBufferAccess2, robustImageAccess2, nullDescriptor );
  52755. }
  52756. #endif
  52757. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  52758. auto operator<=>( PhysicalDeviceRobustness2FeaturesEXT const & ) const = default;
  52759. #else
  52760. bool operator==( PhysicalDeviceRobustness2FeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  52761. {
  52762. # if defined( VULKAN_HPP_USE_REFLECT )
  52763. return this->reflect() == rhs.reflect();
  52764. # else
  52765. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( robustBufferAccess2 == rhs.robustBufferAccess2 ) &&
  52766. ( robustImageAccess2 == rhs.robustImageAccess2 ) && ( nullDescriptor == rhs.nullDescriptor );
  52767. # endif
  52768. }
  52769. bool operator!=( PhysicalDeviceRobustness2FeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  52770. {
  52771. return !operator==( rhs );
  52772. }
  52773. #endif
  52774. public:
  52775. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceRobustness2FeaturesEXT;
  52776. void * pNext = {};
  52777. VULKAN_HPP_NAMESPACE::Bool32 robustBufferAccess2 = {};
  52778. VULKAN_HPP_NAMESPACE::Bool32 robustImageAccess2 = {};
  52779. VULKAN_HPP_NAMESPACE::Bool32 nullDescriptor = {};
  52780. };
  52781. template <>
  52782. struct CppType<StructureType, StructureType::ePhysicalDeviceRobustness2FeaturesEXT>
  52783. {
  52784. using Type = PhysicalDeviceRobustness2FeaturesEXT;
  52785. };
  52786. struct PhysicalDeviceRobustness2PropertiesEXT
  52787. {
  52788. using NativeType = VkPhysicalDeviceRobustness2PropertiesEXT;
  52789. static const bool allowDuplicate = false;
  52790. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceRobustness2PropertiesEXT;
  52791. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  52792. VULKAN_HPP_CONSTEXPR PhysicalDeviceRobustness2PropertiesEXT( VULKAN_HPP_NAMESPACE::DeviceSize robustStorageBufferAccessSizeAlignment_ = {},
  52793. VULKAN_HPP_NAMESPACE::DeviceSize robustUniformBufferAccessSizeAlignment_ = {},
  52794. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  52795. : pNext( pNext_ )
  52796. , robustStorageBufferAccessSizeAlignment( robustStorageBufferAccessSizeAlignment_ )
  52797. , robustUniformBufferAccessSizeAlignment( robustUniformBufferAccessSizeAlignment_ )
  52798. {
  52799. }
  52800. VULKAN_HPP_CONSTEXPR PhysicalDeviceRobustness2PropertiesEXT( PhysicalDeviceRobustness2PropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  52801. PhysicalDeviceRobustness2PropertiesEXT( VkPhysicalDeviceRobustness2PropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  52802. : PhysicalDeviceRobustness2PropertiesEXT( *reinterpret_cast<PhysicalDeviceRobustness2PropertiesEXT const *>( &rhs ) )
  52803. {
  52804. }
  52805. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  52806. PhysicalDeviceRobustness2PropertiesEXT & operator=( PhysicalDeviceRobustness2PropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  52807. PhysicalDeviceRobustness2PropertiesEXT & operator=( VkPhysicalDeviceRobustness2PropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  52808. {
  52809. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceRobustness2PropertiesEXT const *>( &rhs );
  52810. return *this;
  52811. }
  52812. operator VkPhysicalDeviceRobustness2PropertiesEXT const &() const VULKAN_HPP_NOEXCEPT
  52813. {
  52814. return *reinterpret_cast<const VkPhysicalDeviceRobustness2PropertiesEXT *>( this );
  52815. }
  52816. operator VkPhysicalDeviceRobustness2PropertiesEXT &() VULKAN_HPP_NOEXCEPT
  52817. {
  52818. return *reinterpret_cast<VkPhysicalDeviceRobustness2PropertiesEXT *>( this );
  52819. }
  52820. #if defined( VULKAN_HPP_USE_REFLECT )
  52821. # if 14 <= VULKAN_HPP_CPP_VERSION
  52822. auto
  52823. # else
  52824. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::DeviceSize const &, VULKAN_HPP_NAMESPACE::DeviceSize const &>
  52825. # endif
  52826. reflect() const VULKAN_HPP_NOEXCEPT
  52827. {
  52828. return std::tie( sType, pNext, robustStorageBufferAccessSizeAlignment, robustUniformBufferAccessSizeAlignment );
  52829. }
  52830. #endif
  52831. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  52832. auto operator<=>( PhysicalDeviceRobustness2PropertiesEXT const & ) const = default;
  52833. #else
  52834. bool operator==( PhysicalDeviceRobustness2PropertiesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  52835. {
  52836. # if defined( VULKAN_HPP_USE_REFLECT )
  52837. return this->reflect() == rhs.reflect();
  52838. # else
  52839. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( robustStorageBufferAccessSizeAlignment == rhs.robustStorageBufferAccessSizeAlignment ) &&
  52840. ( robustUniformBufferAccessSizeAlignment == rhs.robustUniformBufferAccessSizeAlignment );
  52841. # endif
  52842. }
  52843. bool operator!=( PhysicalDeviceRobustness2PropertiesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  52844. {
  52845. return !operator==( rhs );
  52846. }
  52847. #endif
  52848. public:
  52849. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceRobustness2PropertiesEXT;
  52850. void * pNext = {};
  52851. VULKAN_HPP_NAMESPACE::DeviceSize robustStorageBufferAccessSizeAlignment = {};
  52852. VULKAN_HPP_NAMESPACE::DeviceSize robustUniformBufferAccessSizeAlignment = {};
  52853. };
  52854. template <>
  52855. struct CppType<StructureType, StructureType::ePhysicalDeviceRobustness2PropertiesEXT>
  52856. {
  52857. using Type = PhysicalDeviceRobustness2PropertiesEXT;
  52858. };
  52859. struct PhysicalDeviceSampleLocationsPropertiesEXT
  52860. {
  52861. using NativeType = VkPhysicalDeviceSampleLocationsPropertiesEXT;
  52862. static const bool allowDuplicate = false;
  52863. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceSampleLocationsPropertiesEXT;
  52864. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  52865. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceSampleLocationsPropertiesEXT( VULKAN_HPP_NAMESPACE::SampleCountFlags sampleLocationSampleCounts_ = {},
  52866. VULKAN_HPP_NAMESPACE::Extent2D maxSampleLocationGridSize_ = {},
  52867. std::array<float, 2> const & sampleLocationCoordinateRange_ = {},
  52868. uint32_t sampleLocationSubPixelBits_ = {},
  52869. VULKAN_HPP_NAMESPACE::Bool32 variableSampleLocations_ = {},
  52870. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  52871. : pNext( pNext_ )
  52872. , sampleLocationSampleCounts( sampleLocationSampleCounts_ )
  52873. , maxSampleLocationGridSize( maxSampleLocationGridSize_ )
  52874. , sampleLocationCoordinateRange( sampleLocationCoordinateRange_ )
  52875. , sampleLocationSubPixelBits( sampleLocationSubPixelBits_ )
  52876. , variableSampleLocations( variableSampleLocations_ )
  52877. {
  52878. }
  52879. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceSampleLocationsPropertiesEXT( PhysicalDeviceSampleLocationsPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  52880. PhysicalDeviceSampleLocationsPropertiesEXT( VkPhysicalDeviceSampleLocationsPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  52881. : PhysicalDeviceSampleLocationsPropertiesEXT( *reinterpret_cast<PhysicalDeviceSampleLocationsPropertiesEXT const *>( &rhs ) )
  52882. {
  52883. }
  52884. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  52885. PhysicalDeviceSampleLocationsPropertiesEXT & operator=( PhysicalDeviceSampleLocationsPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  52886. PhysicalDeviceSampleLocationsPropertiesEXT & operator=( VkPhysicalDeviceSampleLocationsPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  52887. {
  52888. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceSampleLocationsPropertiesEXT const *>( &rhs );
  52889. return *this;
  52890. }
  52891. operator VkPhysicalDeviceSampleLocationsPropertiesEXT const &() const VULKAN_HPP_NOEXCEPT
  52892. {
  52893. return *reinterpret_cast<const VkPhysicalDeviceSampleLocationsPropertiesEXT *>( this );
  52894. }
  52895. operator VkPhysicalDeviceSampleLocationsPropertiesEXT &() VULKAN_HPP_NOEXCEPT
  52896. {
  52897. return *reinterpret_cast<VkPhysicalDeviceSampleLocationsPropertiesEXT *>( this );
  52898. }
  52899. #if defined( VULKAN_HPP_USE_REFLECT )
  52900. # if 14 <= VULKAN_HPP_CPP_VERSION
  52901. auto
  52902. # else
  52903. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  52904. void * const &,
  52905. VULKAN_HPP_NAMESPACE::SampleCountFlags const &,
  52906. VULKAN_HPP_NAMESPACE::Extent2D const &,
  52907. VULKAN_HPP_NAMESPACE::ArrayWrapper1D<float, 2> const &,
  52908. uint32_t const &,
  52909. VULKAN_HPP_NAMESPACE::Bool32 const &>
  52910. # endif
  52911. reflect() const VULKAN_HPP_NOEXCEPT
  52912. {
  52913. return std::tie( sType,
  52914. pNext,
  52915. sampleLocationSampleCounts,
  52916. maxSampleLocationGridSize,
  52917. sampleLocationCoordinateRange,
  52918. sampleLocationSubPixelBits,
  52919. variableSampleLocations );
  52920. }
  52921. #endif
  52922. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  52923. auto operator<=>( PhysicalDeviceSampleLocationsPropertiesEXT const & ) const = default;
  52924. #else
  52925. bool operator==( PhysicalDeviceSampleLocationsPropertiesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  52926. {
  52927. # if defined( VULKAN_HPP_USE_REFLECT )
  52928. return this->reflect() == rhs.reflect();
  52929. # else
  52930. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( sampleLocationSampleCounts == rhs.sampleLocationSampleCounts ) &&
  52931. ( maxSampleLocationGridSize == rhs.maxSampleLocationGridSize ) && ( sampleLocationCoordinateRange == rhs.sampleLocationCoordinateRange ) &&
  52932. ( sampleLocationSubPixelBits == rhs.sampleLocationSubPixelBits ) && ( variableSampleLocations == rhs.variableSampleLocations );
  52933. # endif
  52934. }
  52935. bool operator!=( PhysicalDeviceSampleLocationsPropertiesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  52936. {
  52937. return !operator==( rhs );
  52938. }
  52939. #endif
  52940. public:
  52941. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceSampleLocationsPropertiesEXT;
  52942. void * pNext = {};
  52943. VULKAN_HPP_NAMESPACE::SampleCountFlags sampleLocationSampleCounts = {};
  52944. VULKAN_HPP_NAMESPACE::Extent2D maxSampleLocationGridSize = {};
  52945. VULKAN_HPP_NAMESPACE::ArrayWrapper1D<float, 2> sampleLocationCoordinateRange = {};
  52946. uint32_t sampleLocationSubPixelBits = {};
  52947. VULKAN_HPP_NAMESPACE::Bool32 variableSampleLocations = {};
  52948. };
  52949. template <>
  52950. struct CppType<StructureType, StructureType::ePhysicalDeviceSampleLocationsPropertiesEXT>
  52951. {
  52952. using Type = PhysicalDeviceSampleLocationsPropertiesEXT;
  52953. };
  52954. struct PhysicalDeviceSamplerFilterMinmaxProperties
  52955. {
  52956. using NativeType = VkPhysicalDeviceSamplerFilterMinmaxProperties;
  52957. static const bool allowDuplicate = false;
  52958. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceSamplerFilterMinmaxProperties;
  52959. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  52960. VULKAN_HPP_CONSTEXPR PhysicalDeviceSamplerFilterMinmaxProperties( VULKAN_HPP_NAMESPACE::Bool32 filterMinmaxSingleComponentFormats_ = {},
  52961. VULKAN_HPP_NAMESPACE::Bool32 filterMinmaxImageComponentMapping_ = {},
  52962. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  52963. : pNext( pNext_ )
  52964. , filterMinmaxSingleComponentFormats( filterMinmaxSingleComponentFormats_ )
  52965. , filterMinmaxImageComponentMapping( filterMinmaxImageComponentMapping_ )
  52966. {
  52967. }
  52968. VULKAN_HPP_CONSTEXPR PhysicalDeviceSamplerFilterMinmaxProperties( PhysicalDeviceSamplerFilterMinmaxProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  52969. PhysicalDeviceSamplerFilterMinmaxProperties( VkPhysicalDeviceSamplerFilterMinmaxProperties const & rhs ) VULKAN_HPP_NOEXCEPT
  52970. : PhysicalDeviceSamplerFilterMinmaxProperties( *reinterpret_cast<PhysicalDeviceSamplerFilterMinmaxProperties const *>( &rhs ) )
  52971. {
  52972. }
  52973. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  52974. PhysicalDeviceSamplerFilterMinmaxProperties & operator=( PhysicalDeviceSamplerFilterMinmaxProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  52975. PhysicalDeviceSamplerFilterMinmaxProperties & operator=( VkPhysicalDeviceSamplerFilterMinmaxProperties const & rhs ) VULKAN_HPP_NOEXCEPT
  52976. {
  52977. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceSamplerFilterMinmaxProperties const *>( &rhs );
  52978. return *this;
  52979. }
  52980. operator VkPhysicalDeviceSamplerFilterMinmaxProperties const &() const VULKAN_HPP_NOEXCEPT
  52981. {
  52982. return *reinterpret_cast<const VkPhysicalDeviceSamplerFilterMinmaxProperties *>( this );
  52983. }
  52984. operator VkPhysicalDeviceSamplerFilterMinmaxProperties &() VULKAN_HPP_NOEXCEPT
  52985. {
  52986. return *reinterpret_cast<VkPhysicalDeviceSamplerFilterMinmaxProperties *>( this );
  52987. }
  52988. #if defined( VULKAN_HPP_USE_REFLECT )
  52989. # if 14 <= VULKAN_HPP_CPP_VERSION
  52990. auto
  52991. # else
  52992. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
  52993. # endif
  52994. reflect() const VULKAN_HPP_NOEXCEPT
  52995. {
  52996. return std::tie( sType, pNext, filterMinmaxSingleComponentFormats, filterMinmaxImageComponentMapping );
  52997. }
  52998. #endif
  52999. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  53000. auto operator<=>( PhysicalDeviceSamplerFilterMinmaxProperties const & ) const = default;
  53001. #else
  53002. bool operator==( PhysicalDeviceSamplerFilterMinmaxProperties const & rhs ) const VULKAN_HPP_NOEXCEPT
  53003. {
  53004. # if defined( VULKAN_HPP_USE_REFLECT )
  53005. return this->reflect() == rhs.reflect();
  53006. # else
  53007. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( filterMinmaxSingleComponentFormats == rhs.filterMinmaxSingleComponentFormats ) &&
  53008. ( filterMinmaxImageComponentMapping == rhs.filterMinmaxImageComponentMapping );
  53009. # endif
  53010. }
  53011. bool operator!=( PhysicalDeviceSamplerFilterMinmaxProperties const & rhs ) const VULKAN_HPP_NOEXCEPT
  53012. {
  53013. return !operator==( rhs );
  53014. }
  53015. #endif
  53016. public:
  53017. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceSamplerFilterMinmaxProperties;
  53018. void * pNext = {};
  53019. VULKAN_HPP_NAMESPACE::Bool32 filterMinmaxSingleComponentFormats = {};
  53020. VULKAN_HPP_NAMESPACE::Bool32 filterMinmaxImageComponentMapping = {};
  53021. };
  53022. template <>
  53023. struct CppType<StructureType, StructureType::ePhysicalDeviceSamplerFilterMinmaxProperties>
  53024. {
  53025. using Type = PhysicalDeviceSamplerFilterMinmaxProperties;
  53026. };
  53027. using PhysicalDeviceSamplerFilterMinmaxPropertiesEXT = PhysicalDeviceSamplerFilterMinmaxProperties;
  53028. struct PhysicalDeviceSamplerYcbcrConversionFeatures
  53029. {
  53030. using NativeType = VkPhysicalDeviceSamplerYcbcrConversionFeatures;
  53031. static const bool allowDuplicate = false;
  53032. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceSamplerYcbcrConversionFeatures;
  53033. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  53034. VULKAN_HPP_CONSTEXPR PhysicalDeviceSamplerYcbcrConversionFeatures( VULKAN_HPP_NAMESPACE::Bool32 samplerYcbcrConversion_ = {},
  53035. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  53036. : pNext( pNext_ )
  53037. , samplerYcbcrConversion( samplerYcbcrConversion_ )
  53038. {
  53039. }
  53040. VULKAN_HPP_CONSTEXPR PhysicalDeviceSamplerYcbcrConversionFeatures( PhysicalDeviceSamplerYcbcrConversionFeatures const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  53041. PhysicalDeviceSamplerYcbcrConversionFeatures( VkPhysicalDeviceSamplerYcbcrConversionFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
  53042. : PhysicalDeviceSamplerYcbcrConversionFeatures( *reinterpret_cast<PhysicalDeviceSamplerYcbcrConversionFeatures const *>( &rhs ) )
  53043. {
  53044. }
  53045. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  53046. PhysicalDeviceSamplerYcbcrConversionFeatures & operator=( PhysicalDeviceSamplerYcbcrConversionFeatures const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  53047. PhysicalDeviceSamplerYcbcrConversionFeatures & operator=( VkPhysicalDeviceSamplerYcbcrConversionFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
  53048. {
  53049. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceSamplerYcbcrConversionFeatures const *>( &rhs );
  53050. return *this;
  53051. }
  53052. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  53053. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceSamplerYcbcrConversionFeatures & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
  53054. {
  53055. pNext = pNext_;
  53056. return *this;
  53057. }
  53058. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceSamplerYcbcrConversionFeatures &
  53059. setSamplerYcbcrConversion( VULKAN_HPP_NAMESPACE::Bool32 samplerYcbcrConversion_ ) VULKAN_HPP_NOEXCEPT
  53060. {
  53061. samplerYcbcrConversion = samplerYcbcrConversion_;
  53062. return *this;
  53063. }
  53064. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  53065. operator VkPhysicalDeviceSamplerYcbcrConversionFeatures const &() const VULKAN_HPP_NOEXCEPT
  53066. {
  53067. return *reinterpret_cast<const VkPhysicalDeviceSamplerYcbcrConversionFeatures *>( this );
  53068. }
  53069. operator VkPhysicalDeviceSamplerYcbcrConversionFeatures &() VULKAN_HPP_NOEXCEPT
  53070. {
  53071. return *reinterpret_cast<VkPhysicalDeviceSamplerYcbcrConversionFeatures *>( this );
  53072. }
  53073. #if defined( VULKAN_HPP_USE_REFLECT )
  53074. # if 14 <= VULKAN_HPP_CPP_VERSION
  53075. auto
  53076. # else
  53077. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
  53078. # endif
  53079. reflect() const VULKAN_HPP_NOEXCEPT
  53080. {
  53081. return std::tie( sType, pNext, samplerYcbcrConversion );
  53082. }
  53083. #endif
  53084. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  53085. auto operator<=>( PhysicalDeviceSamplerYcbcrConversionFeatures const & ) const = default;
  53086. #else
  53087. bool operator==( PhysicalDeviceSamplerYcbcrConversionFeatures const & rhs ) const VULKAN_HPP_NOEXCEPT
  53088. {
  53089. # if defined( VULKAN_HPP_USE_REFLECT )
  53090. return this->reflect() == rhs.reflect();
  53091. # else
  53092. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( samplerYcbcrConversion == rhs.samplerYcbcrConversion );
  53093. # endif
  53094. }
  53095. bool operator!=( PhysicalDeviceSamplerYcbcrConversionFeatures const & rhs ) const VULKAN_HPP_NOEXCEPT
  53096. {
  53097. return !operator==( rhs );
  53098. }
  53099. #endif
  53100. public:
  53101. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceSamplerYcbcrConversionFeatures;
  53102. void * pNext = {};
  53103. VULKAN_HPP_NAMESPACE::Bool32 samplerYcbcrConversion = {};
  53104. };
  53105. template <>
  53106. struct CppType<StructureType, StructureType::ePhysicalDeviceSamplerYcbcrConversionFeatures>
  53107. {
  53108. using Type = PhysicalDeviceSamplerYcbcrConversionFeatures;
  53109. };
  53110. using PhysicalDeviceSamplerYcbcrConversionFeaturesKHR = PhysicalDeviceSamplerYcbcrConversionFeatures;
  53111. struct PhysicalDeviceScalarBlockLayoutFeatures
  53112. {
  53113. using NativeType = VkPhysicalDeviceScalarBlockLayoutFeatures;
  53114. static const bool allowDuplicate = false;
  53115. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceScalarBlockLayoutFeatures;
  53116. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  53117. VULKAN_HPP_CONSTEXPR PhysicalDeviceScalarBlockLayoutFeatures( VULKAN_HPP_NAMESPACE::Bool32 scalarBlockLayout_ = {},
  53118. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  53119. : pNext( pNext_ )
  53120. , scalarBlockLayout( scalarBlockLayout_ )
  53121. {
  53122. }
  53123. VULKAN_HPP_CONSTEXPR PhysicalDeviceScalarBlockLayoutFeatures( PhysicalDeviceScalarBlockLayoutFeatures const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  53124. PhysicalDeviceScalarBlockLayoutFeatures( VkPhysicalDeviceScalarBlockLayoutFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
  53125. : PhysicalDeviceScalarBlockLayoutFeatures( *reinterpret_cast<PhysicalDeviceScalarBlockLayoutFeatures const *>( &rhs ) )
  53126. {
  53127. }
  53128. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  53129. PhysicalDeviceScalarBlockLayoutFeatures & operator=( PhysicalDeviceScalarBlockLayoutFeatures const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  53130. PhysicalDeviceScalarBlockLayoutFeatures & operator=( VkPhysicalDeviceScalarBlockLayoutFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
  53131. {
  53132. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceScalarBlockLayoutFeatures const *>( &rhs );
  53133. return *this;
  53134. }
  53135. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  53136. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceScalarBlockLayoutFeatures & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
  53137. {
  53138. pNext = pNext_;
  53139. return *this;
  53140. }
  53141. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceScalarBlockLayoutFeatures &
  53142. setScalarBlockLayout( VULKAN_HPP_NAMESPACE::Bool32 scalarBlockLayout_ ) VULKAN_HPP_NOEXCEPT
  53143. {
  53144. scalarBlockLayout = scalarBlockLayout_;
  53145. return *this;
  53146. }
  53147. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  53148. operator VkPhysicalDeviceScalarBlockLayoutFeatures const &() const VULKAN_HPP_NOEXCEPT
  53149. {
  53150. return *reinterpret_cast<const VkPhysicalDeviceScalarBlockLayoutFeatures *>( this );
  53151. }
  53152. operator VkPhysicalDeviceScalarBlockLayoutFeatures &() VULKAN_HPP_NOEXCEPT
  53153. {
  53154. return *reinterpret_cast<VkPhysicalDeviceScalarBlockLayoutFeatures *>( this );
  53155. }
  53156. #if defined( VULKAN_HPP_USE_REFLECT )
  53157. # if 14 <= VULKAN_HPP_CPP_VERSION
  53158. auto
  53159. # else
  53160. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
  53161. # endif
  53162. reflect() const VULKAN_HPP_NOEXCEPT
  53163. {
  53164. return std::tie( sType, pNext, scalarBlockLayout );
  53165. }
  53166. #endif
  53167. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  53168. auto operator<=>( PhysicalDeviceScalarBlockLayoutFeatures const & ) const = default;
  53169. #else
  53170. bool operator==( PhysicalDeviceScalarBlockLayoutFeatures const & rhs ) const VULKAN_HPP_NOEXCEPT
  53171. {
  53172. # if defined( VULKAN_HPP_USE_REFLECT )
  53173. return this->reflect() == rhs.reflect();
  53174. # else
  53175. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( scalarBlockLayout == rhs.scalarBlockLayout );
  53176. # endif
  53177. }
  53178. bool operator!=( PhysicalDeviceScalarBlockLayoutFeatures const & rhs ) const VULKAN_HPP_NOEXCEPT
  53179. {
  53180. return !operator==( rhs );
  53181. }
  53182. #endif
  53183. public:
  53184. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceScalarBlockLayoutFeatures;
  53185. void * pNext = {};
  53186. VULKAN_HPP_NAMESPACE::Bool32 scalarBlockLayout = {};
  53187. };
  53188. template <>
  53189. struct CppType<StructureType, StructureType::ePhysicalDeviceScalarBlockLayoutFeatures>
  53190. {
  53191. using Type = PhysicalDeviceScalarBlockLayoutFeatures;
  53192. };
  53193. using PhysicalDeviceScalarBlockLayoutFeaturesEXT = PhysicalDeviceScalarBlockLayoutFeatures;
  53194. struct PhysicalDeviceSeparateDepthStencilLayoutsFeatures
  53195. {
  53196. using NativeType = VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures;
  53197. static const bool allowDuplicate = false;
  53198. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceSeparateDepthStencilLayoutsFeatures;
  53199. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  53200. VULKAN_HPP_CONSTEXPR PhysicalDeviceSeparateDepthStencilLayoutsFeatures( VULKAN_HPP_NAMESPACE::Bool32 separateDepthStencilLayouts_ = {},
  53201. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  53202. : pNext( pNext_ )
  53203. , separateDepthStencilLayouts( separateDepthStencilLayouts_ )
  53204. {
  53205. }
  53206. VULKAN_HPP_CONSTEXPR
  53207. PhysicalDeviceSeparateDepthStencilLayoutsFeatures( PhysicalDeviceSeparateDepthStencilLayoutsFeatures const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  53208. PhysicalDeviceSeparateDepthStencilLayoutsFeatures( VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
  53209. : PhysicalDeviceSeparateDepthStencilLayoutsFeatures( *reinterpret_cast<PhysicalDeviceSeparateDepthStencilLayoutsFeatures const *>( &rhs ) )
  53210. {
  53211. }
  53212. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  53213. PhysicalDeviceSeparateDepthStencilLayoutsFeatures &
  53214. operator=( PhysicalDeviceSeparateDepthStencilLayoutsFeatures const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  53215. PhysicalDeviceSeparateDepthStencilLayoutsFeatures & operator=( VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
  53216. {
  53217. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceSeparateDepthStencilLayoutsFeatures const *>( &rhs );
  53218. return *this;
  53219. }
  53220. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  53221. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceSeparateDepthStencilLayoutsFeatures & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
  53222. {
  53223. pNext = pNext_;
  53224. return *this;
  53225. }
  53226. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceSeparateDepthStencilLayoutsFeatures &
  53227. setSeparateDepthStencilLayouts( VULKAN_HPP_NAMESPACE::Bool32 separateDepthStencilLayouts_ ) VULKAN_HPP_NOEXCEPT
  53228. {
  53229. separateDepthStencilLayouts = separateDepthStencilLayouts_;
  53230. return *this;
  53231. }
  53232. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  53233. operator VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures const &() const VULKAN_HPP_NOEXCEPT
  53234. {
  53235. return *reinterpret_cast<const VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures *>( this );
  53236. }
  53237. operator VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures &() VULKAN_HPP_NOEXCEPT
  53238. {
  53239. return *reinterpret_cast<VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures *>( this );
  53240. }
  53241. #if defined( VULKAN_HPP_USE_REFLECT )
  53242. # if 14 <= VULKAN_HPP_CPP_VERSION
  53243. auto
  53244. # else
  53245. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
  53246. # endif
  53247. reflect() const VULKAN_HPP_NOEXCEPT
  53248. {
  53249. return std::tie( sType, pNext, separateDepthStencilLayouts );
  53250. }
  53251. #endif
  53252. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  53253. auto operator<=>( PhysicalDeviceSeparateDepthStencilLayoutsFeatures const & ) const = default;
  53254. #else
  53255. bool operator==( PhysicalDeviceSeparateDepthStencilLayoutsFeatures const & rhs ) const VULKAN_HPP_NOEXCEPT
  53256. {
  53257. # if defined( VULKAN_HPP_USE_REFLECT )
  53258. return this->reflect() == rhs.reflect();
  53259. # else
  53260. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( separateDepthStencilLayouts == rhs.separateDepthStencilLayouts );
  53261. # endif
  53262. }
  53263. bool operator!=( PhysicalDeviceSeparateDepthStencilLayoutsFeatures const & rhs ) const VULKAN_HPP_NOEXCEPT
  53264. {
  53265. return !operator==( rhs );
  53266. }
  53267. #endif
  53268. public:
  53269. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceSeparateDepthStencilLayoutsFeatures;
  53270. void * pNext = {};
  53271. VULKAN_HPP_NAMESPACE::Bool32 separateDepthStencilLayouts = {};
  53272. };
  53273. template <>
  53274. struct CppType<StructureType, StructureType::ePhysicalDeviceSeparateDepthStencilLayoutsFeatures>
  53275. {
  53276. using Type = PhysicalDeviceSeparateDepthStencilLayoutsFeatures;
  53277. };
  53278. using PhysicalDeviceSeparateDepthStencilLayoutsFeaturesKHR = PhysicalDeviceSeparateDepthStencilLayoutsFeatures;
  53279. struct PhysicalDeviceShaderAtomicFloat2FeaturesEXT
  53280. {
  53281. using NativeType = VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT;
  53282. static const bool allowDuplicate = false;
  53283. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceShaderAtomicFloat2FeaturesEXT;
  53284. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  53285. VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderAtomicFloat2FeaturesEXT( VULKAN_HPP_NAMESPACE::Bool32 shaderBufferFloat16Atomics_ = {},
  53286. VULKAN_HPP_NAMESPACE::Bool32 shaderBufferFloat16AtomicAdd_ = {},
  53287. VULKAN_HPP_NAMESPACE::Bool32 shaderBufferFloat16AtomicMinMax_ = {},
  53288. VULKAN_HPP_NAMESPACE::Bool32 shaderBufferFloat32AtomicMinMax_ = {},
  53289. VULKAN_HPP_NAMESPACE::Bool32 shaderBufferFloat64AtomicMinMax_ = {},
  53290. VULKAN_HPP_NAMESPACE::Bool32 shaderSharedFloat16Atomics_ = {},
  53291. VULKAN_HPP_NAMESPACE::Bool32 shaderSharedFloat16AtomicAdd_ = {},
  53292. VULKAN_HPP_NAMESPACE::Bool32 shaderSharedFloat16AtomicMinMax_ = {},
  53293. VULKAN_HPP_NAMESPACE::Bool32 shaderSharedFloat32AtomicMinMax_ = {},
  53294. VULKAN_HPP_NAMESPACE::Bool32 shaderSharedFloat64AtomicMinMax_ = {},
  53295. VULKAN_HPP_NAMESPACE::Bool32 shaderImageFloat32AtomicMinMax_ = {},
  53296. VULKAN_HPP_NAMESPACE::Bool32 sparseImageFloat32AtomicMinMax_ = {},
  53297. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  53298. : pNext( pNext_ )
  53299. , shaderBufferFloat16Atomics( shaderBufferFloat16Atomics_ )
  53300. , shaderBufferFloat16AtomicAdd( shaderBufferFloat16AtomicAdd_ )
  53301. , shaderBufferFloat16AtomicMinMax( shaderBufferFloat16AtomicMinMax_ )
  53302. , shaderBufferFloat32AtomicMinMax( shaderBufferFloat32AtomicMinMax_ )
  53303. , shaderBufferFloat64AtomicMinMax( shaderBufferFloat64AtomicMinMax_ )
  53304. , shaderSharedFloat16Atomics( shaderSharedFloat16Atomics_ )
  53305. , shaderSharedFloat16AtomicAdd( shaderSharedFloat16AtomicAdd_ )
  53306. , shaderSharedFloat16AtomicMinMax( shaderSharedFloat16AtomicMinMax_ )
  53307. , shaderSharedFloat32AtomicMinMax( shaderSharedFloat32AtomicMinMax_ )
  53308. , shaderSharedFloat64AtomicMinMax( shaderSharedFloat64AtomicMinMax_ )
  53309. , shaderImageFloat32AtomicMinMax( shaderImageFloat32AtomicMinMax_ )
  53310. , sparseImageFloat32AtomicMinMax( sparseImageFloat32AtomicMinMax_ )
  53311. {
  53312. }
  53313. VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderAtomicFloat2FeaturesEXT( PhysicalDeviceShaderAtomicFloat2FeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  53314. PhysicalDeviceShaderAtomicFloat2FeaturesEXT( VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  53315. : PhysicalDeviceShaderAtomicFloat2FeaturesEXT( *reinterpret_cast<PhysicalDeviceShaderAtomicFloat2FeaturesEXT const *>( &rhs ) )
  53316. {
  53317. }
  53318. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  53319. PhysicalDeviceShaderAtomicFloat2FeaturesEXT & operator=( PhysicalDeviceShaderAtomicFloat2FeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  53320. PhysicalDeviceShaderAtomicFloat2FeaturesEXT & operator=( VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  53321. {
  53322. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderAtomicFloat2FeaturesEXT const *>( &rhs );
  53323. return *this;
  53324. }
  53325. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  53326. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceShaderAtomicFloat2FeaturesEXT & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
  53327. {
  53328. pNext = pNext_;
  53329. return *this;
  53330. }
  53331. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceShaderAtomicFloat2FeaturesEXT &
  53332. setShaderBufferFloat16Atomics( VULKAN_HPP_NAMESPACE::Bool32 shaderBufferFloat16Atomics_ ) VULKAN_HPP_NOEXCEPT
  53333. {
  53334. shaderBufferFloat16Atomics = shaderBufferFloat16Atomics_;
  53335. return *this;
  53336. }
  53337. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceShaderAtomicFloat2FeaturesEXT &
  53338. setShaderBufferFloat16AtomicAdd( VULKAN_HPP_NAMESPACE::Bool32 shaderBufferFloat16AtomicAdd_ ) VULKAN_HPP_NOEXCEPT
  53339. {
  53340. shaderBufferFloat16AtomicAdd = shaderBufferFloat16AtomicAdd_;
  53341. return *this;
  53342. }
  53343. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceShaderAtomicFloat2FeaturesEXT &
  53344. setShaderBufferFloat16AtomicMinMax( VULKAN_HPP_NAMESPACE::Bool32 shaderBufferFloat16AtomicMinMax_ ) VULKAN_HPP_NOEXCEPT
  53345. {
  53346. shaderBufferFloat16AtomicMinMax = shaderBufferFloat16AtomicMinMax_;
  53347. return *this;
  53348. }
  53349. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceShaderAtomicFloat2FeaturesEXT &
  53350. setShaderBufferFloat32AtomicMinMax( VULKAN_HPP_NAMESPACE::Bool32 shaderBufferFloat32AtomicMinMax_ ) VULKAN_HPP_NOEXCEPT
  53351. {
  53352. shaderBufferFloat32AtomicMinMax = shaderBufferFloat32AtomicMinMax_;
  53353. return *this;
  53354. }
  53355. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceShaderAtomicFloat2FeaturesEXT &
  53356. setShaderBufferFloat64AtomicMinMax( VULKAN_HPP_NAMESPACE::Bool32 shaderBufferFloat64AtomicMinMax_ ) VULKAN_HPP_NOEXCEPT
  53357. {
  53358. shaderBufferFloat64AtomicMinMax = shaderBufferFloat64AtomicMinMax_;
  53359. return *this;
  53360. }
  53361. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceShaderAtomicFloat2FeaturesEXT &
  53362. setShaderSharedFloat16Atomics( VULKAN_HPP_NAMESPACE::Bool32 shaderSharedFloat16Atomics_ ) VULKAN_HPP_NOEXCEPT
  53363. {
  53364. shaderSharedFloat16Atomics = shaderSharedFloat16Atomics_;
  53365. return *this;
  53366. }
  53367. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceShaderAtomicFloat2FeaturesEXT &
  53368. setShaderSharedFloat16AtomicAdd( VULKAN_HPP_NAMESPACE::Bool32 shaderSharedFloat16AtomicAdd_ ) VULKAN_HPP_NOEXCEPT
  53369. {
  53370. shaderSharedFloat16AtomicAdd = shaderSharedFloat16AtomicAdd_;
  53371. return *this;
  53372. }
  53373. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceShaderAtomicFloat2FeaturesEXT &
  53374. setShaderSharedFloat16AtomicMinMax( VULKAN_HPP_NAMESPACE::Bool32 shaderSharedFloat16AtomicMinMax_ ) VULKAN_HPP_NOEXCEPT
  53375. {
  53376. shaderSharedFloat16AtomicMinMax = shaderSharedFloat16AtomicMinMax_;
  53377. return *this;
  53378. }
  53379. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceShaderAtomicFloat2FeaturesEXT &
  53380. setShaderSharedFloat32AtomicMinMax( VULKAN_HPP_NAMESPACE::Bool32 shaderSharedFloat32AtomicMinMax_ ) VULKAN_HPP_NOEXCEPT
  53381. {
  53382. shaderSharedFloat32AtomicMinMax = shaderSharedFloat32AtomicMinMax_;
  53383. return *this;
  53384. }
  53385. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceShaderAtomicFloat2FeaturesEXT &
  53386. setShaderSharedFloat64AtomicMinMax( VULKAN_HPP_NAMESPACE::Bool32 shaderSharedFloat64AtomicMinMax_ ) VULKAN_HPP_NOEXCEPT
  53387. {
  53388. shaderSharedFloat64AtomicMinMax = shaderSharedFloat64AtomicMinMax_;
  53389. return *this;
  53390. }
  53391. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceShaderAtomicFloat2FeaturesEXT &
  53392. setShaderImageFloat32AtomicMinMax( VULKAN_HPP_NAMESPACE::Bool32 shaderImageFloat32AtomicMinMax_ ) VULKAN_HPP_NOEXCEPT
  53393. {
  53394. shaderImageFloat32AtomicMinMax = shaderImageFloat32AtomicMinMax_;
  53395. return *this;
  53396. }
  53397. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceShaderAtomicFloat2FeaturesEXT &
  53398. setSparseImageFloat32AtomicMinMax( VULKAN_HPP_NAMESPACE::Bool32 sparseImageFloat32AtomicMinMax_ ) VULKAN_HPP_NOEXCEPT
  53399. {
  53400. sparseImageFloat32AtomicMinMax = sparseImageFloat32AtomicMinMax_;
  53401. return *this;
  53402. }
  53403. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  53404. operator VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT const &() const VULKAN_HPP_NOEXCEPT
  53405. {
  53406. return *reinterpret_cast<const VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT *>( this );
  53407. }
  53408. operator VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT &() VULKAN_HPP_NOEXCEPT
  53409. {
  53410. return *reinterpret_cast<VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT *>( this );
  53411. }
  53412. #if defined( VULKAN_HPP_USE_REFLECT )
  53413. # if 14 <= VULKAN_HPP_CPP_VERSION
  53414. auto
  53415. # else
  53416. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  53417. void * const &,
  53418. VULKAN_HPP_NAMESPACE::Bool32 const &,
  53419. VULKAN_HPP_NAMESPACE::Bool32 const &,
  53420. VULKAN_HPP_NAMESPACE::Bool32 const &,
  53421. VULKAN_HPP_NAMESPACE::Bool32 const &,
  53422. VULKAN_HPP_NAMESPACE::Bool32 const &,
  53423. VULKAN_HPP_NAMESPACE::Bool32 const &,
  53424. VULKAN_HPP_NAMESPACE::Bool32 const &,
  53425. VULKAN_HPP_NAMESPACE::Bool32 const &,
  53426. VULKAN_HPP_NAMESPACE::Bool32 const &,
  53427. VULKAN_HPP_NAMESPACE::Bool32 const &,
  53428. VULKAN_HPP_NAMESPACE::Bool32 const &,
  53429. VULKAN_HPP_NAMESPACE::Bool32 const &>
  53430. # endif
  53431. reflect() const VULKAN_HPP_NOEXCEPT
  53432. {
  53433. return std::tie( sType,
  53434. pNext,
  53435. shaderBufferFloat16Atomics,
  53436. shaderBufferFloat16AtomicAdd,
  53437. shaderBufferFloat16AtomicMinMax,
  53438. shaderBufferFloat32AtomicMinMax,
  53439. shaderBufferFloat64AtomicMinMax,
  53440. shaderSharedFloat16Atomics,
  53441. shaderSharedFloat16AtomicAdd,
  53442. shaderSharedFloat16AtomicMinMax,
  53443. shaderSharedFloat32AtomicMinMax,
  53444. shaderSharedFloat64AtomicMinMax,
  53445. shaderImageFloat32AtomicMinMax,
  53446. sparseImageFloat32AtomicMinMax );
  53447. }
  53448. #endif
  53449. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  53450. auto operator<=>( PhysicalDeviceShaderAtomicFloat2FeaturesEXT const & ) const = default;
  53451. #else
  53452. bool operator==( PhysicalDeviceShaderAtomicFloat2FeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  53453. {
  53454. # if defined( VULKAN_HPP_USE_REFLECT )
  53455. return this->reflect() == rhs.reflect();
  53456. # else
  53457. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( shaderBufferFloat16Atomics == rhs.shaderBufferFloat16Atomics ) &&
  53458. ( shaderBufferFloat16AtomicAdd == rhs.shaderBufferFloat16AtomicAdd ) &&
  53459. ( shaderBufferFloat16AtomicMinMax == rhs.shaderBufferFloat16AtomicMinMax ) &&
  53460. ( shaderBufferFloat32AtomicMinMax == rhs.shaderBufferFloat32AtomicMinMax ) &&
  53461. ( shaderBufferFloat64AtomicMinMax == rhs.shaderBufferFloat64AtomicMinMax ) && ( shaderSharedFloat16Atomics == rhs.shaderSharedFloat16Atomics ) &&
  53462. ( shaderSharedFloat16AtomicAdd == rhs.shaderSharedFloat16AtomicAdd ) &&
  53463. ( shaderSharedFloat16AtomicMinMax == rhs.shaderSharedFloat16AtomicMinMax ) &&
  53464. ( shaderSharedFloat32AtomicMinMax == rhs.shaderSharedFloat32AtomicMinMax ) &&
  53465. ( shaderSharedFloat64AtomicMinMax == rhs.shaderSharedFloat64AtomicMinMax ) &&
  53466. ( shaderImageFloat32AtomicMinMax == rhs.shaderImageFloat32AtomicMinMax ) &&
  53467. ( sparseImageFloat32AtomicMinMax == rhs.sparseImageFloat32AtomicMinMax );
  53468. # endif
  53469. }
  53470. bool operator!=( PhysicalDeviceShaderAtomicFloat2FeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  53471. {
  53472. return !operator==( rhs );
  53473. }
  53474. #endif
  53475. public:
  53476. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceShaderAtomicFloat2FeaturesEXT;
  53477. void * pNext = {};
  53478. VULKAN_HPP_NAMESPACE::Bool32 shaderBufferFloat16Atomics = {};
  53479. VULKAN_HPP_NAMESPACE::Bool32 shaderBufferFloat16AtomicAdd = {};
  53480. VULKAN_HPP_NAMESPACE::Bool32 shaderBufferFloat16AtomicMinMax = {};
  53481. VULKAN_HPP_NAMESPACE::Bool32 shaderBufferFloat32AtomicMinMax = {};
  53482. VULKAN_HPP_NAMESPACE::Bool32 shaderBufferFloat64AtomicMinMax = {};
  53483. VULKAN_HPP_NAMESPACE::Bool32 shaderSharedFloat16Atomics = {};
  53484. VULKAN_HPP_NAMESPACE::Bool32 shaderSharedFloat16AtomicAdd = {};
  53485. VULKAN_HPP_NAMESPACE::Bool32 shaderSharedFloat16AtomicMinMax = {};
  53486. VULKAN_HPP_NAMESPACE::Bool32 shaderSharedFloat32AtomicMinMax = {};
  53487. VULKAN_HPP_NAMESPACE::Bool32 shaderSharedFloat64AtomicMinMax = {};
  53488. VULKAN_HPP_NAMESPACE::Bool32 shaderImageFloat32AtomicMinMax = {};
  53489. VULKAN_HPP_NAMESPACE::Bool32 sparseImageFloat32AtomicMinMax = {};
  53490. };
  53491. template <>
  53492. struct CppType<StructureType, StructureType::ePhysicalDeviceShaderAtomicFloat2FeaturesEXT>
  53493. {
  53494. using Type = PhysicalDeviceShaderAtomicFloat2FeaturesEXT;
  53495. };
  53496. struct PhysicalDeviceShaderAtomicFloatFeaturesEXT
  53497. {
  53498. using NativeType = VkPhysicalDeviceShaderAtomicFloatFeaturesEXT;
  53499. static const bool allowDuplicate = false;
  53500. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceShaderAtomicFloatFeaturesEXT;
  53501. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  53502. VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderAtomicFloatFeaturesEXT( VULKAN_HPP_NAMESPACE::Bool32 shaderBufferFloat32Atomics_ = {},
  53503. VULKAN_HPP_NAMESPACE::Bool32 shaderBufferFloat32AtomicAdd_ = {},
  53504. VULKAN_HPP_NAMESPACE::Bool32 shaderBufferFloat64Atomics_ = {},
  53505. VULKAN_HPP_NAMESPACE::Bool32 shaderBufferFloat64AtomicAdd_ = {},
  53506. VULKAN_HPP_NAMESPACE::Bool32 shaderSharedFloat32Atomics_ = {},
  53507. VULKAN_HPP_NAMESPACE::Bool32 shaderSharedFloat32AtomicAdd_ = {},
  53508. VULKAN_HPP_NAMESPACE::Bool32 shaderSharedFloat64Atomics_ = {},
  53509. VULKAN_HPP_NAMESPACE::Bool32 shaderSharedFloat64AtomicAdd_ = {},
  53510. VULKAN_HPP_NAMESPACE::Bool32 shaderImageFloat32Atomics_ = {},
  53511. VULKAN_HPP_NAMESPACE::Bool32 shaderImageFloat32AtomicAdd_ = {},
  53512. VULKAN_HPP_NAMESPACE::Bool32 sparseImageFloat32Atomics_ = {},
  53513. VULKAN_HPP_NAMESPACE::Bool32 sparseImageFloat32AtomicAdd_ = {},
  53514. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  53515. : pNext( pNext_ )
  53516. , shaderBufferFloat32Atomics( shaderBufferFloat32Atomics_ )
  53517. , shaderBufferFloat32AtomicAdd( shaderBufferFloat32AtomicAdd_ )
  53518. , shaderBufferFloat64Atomics( shaderBufferFloat64Atomics_ )
  53519. , shaderBufferFloat64AtomicAdd( shaderBufferFloat64AtomicAdd_ )
  53520. , shaderSharedFloat32Atomics( shaderSharedFloat32Atomics_ )
  53521. , shaderSharedFloat32AtomicAdd( shaderSharedFloat32AtomicAdd_ )
  53522. , shaderSharedFloat64Atomics( shaderSharedFloat64Atomics_ )
  53523. , shaderSharedFloat64AtomicAdd( shaderSharedFloat64AtomicAdd_ )
  53524. , shaderImageFloat32Atomics( shaderImageFloat32Atomics_ )
  53525. , shaderImageFloat32AtomicAdd( shaderImageFloat32AtomicAdd_ )
  53526. , sparseImageFloat32Atomics( sparseImageFloat32Atomics_ )
  53527. , sparseImageFloat32AtomicAdd( sparseImageFloat32AtomicAdd_ )
  53528. {
  53529. }
  53530. VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderAtomicFloatFeaturesEXT( PhysicalDeviceShaderAtomicFloatFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  53531. PhysicalDeviceShaderAtomicFloatFeaturesEXT( VkPhysicalDeviceShaderAtomicFloatFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  53532. : PhysicalDeviceShaderAtomicFloatFeaturesEXT( *reinterpret_cast<PhysicalDeviceShaderAtomicFloatFeaturesEXT const *>( &rhs ) )
  53533. {
  53534. }
  53535. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  53536. PhysicalDeviceShaderAtomicFloatFeaturesEXT & operator=( PhysicalDeviceShaderAtomicFloatFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  53537. PhysicalDeviceShaderAtomicFloatFeaturesEXT & operator=( VkPhysicalDeviceShaderAtomicFloatFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  53538. {
  53539. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderAtomicFloatFeaturesEXT const *>( &rhs );
  53540. return *this;
  53541. }
  53542. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  53543. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceShaderAtomicFloatFeaturesEXT & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
  53544. {
  53545. pNext = pNext_;
  53546. return *this;
  53547. }
  53548. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceShaderAtomicFloatFeaturesEXT &
  53549. setShaderBufferFloat32Atomics( VULKAN_HPP_NAMESPACE::Bool32 shaderBufferFloat32Atomics_ ) VULKAN_HPP_NOEXCEPT
  53550. {
  53551. shaderBufferFloat32Atomics = shaderBufferFloat32Atomics_;
  53552. return *this;
  53553. }
  53554. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceShaderAtomicFloatFeaturesEXT &
  53555. setShaderBufferFloat32AtomicAdd( VULKAN_HPP_NAMESPACE::Bool32 shaderBufferFloat32AtomicAdd_ ) VULKAN_HPP_NOEXCEPT
  53556. {
  53557. shaderBufferFloat32AtomicAdd = shaderBufferFloat32AtomicAdd_;
  53558. return *this;
  53559. }
  53560. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceShaderAtomicFloatFeaturesEXT &
  53561. setShaderBufferFloat64Atomics( VULKAN_HPP_NAMESPACE::Bool32 shaderBufferFloat64Atomics_ ) VULKAN_HPP_NOEXCEPT
  53562. {
  53563. shaderBufferFloat64Atomics = shaderBufferFloat64Atomics_;
  53564. return *this;
  53565. }
  53566. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceShaderAtomicFloatFeaturesEXT &
  53567. setShaderBufferFloat64AtomicAdd( VULKAN_HPP_NAMESPACE::Bool32 shaderBufferFloat64AtomicAdd_ ) VULKAN_HPP_NOEXCEPT
  53568. {
  53569. shaderBufferFloat64AtomicAdd = shaderBufferFloat64AtomicAdd_;
  53570. return *this;
  53571. }
  53572. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceShaderAtomicFloatFeaturesEXT &
  53573. setShaderSharedFloat32Atomics( VULKAN_HPP_NAMESPACE::Bool32 shaderSharedFloat32Atomics_ ) VULKAN_HPP_NOEXCEPT
  53574. {
  53575. shaderSharedFloat32Atomics = shaderSharedFloat32Atomics_;
  53576. return *this;
  53577. }
  53578. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceShaderAtomicFloatFeaturesEXT &
  53579. setShaderSharedFloat32AtomicAdd( VULKAN_HPP_NAMESPACE::Bool32 shaderSharedFloat32AtomicAdd_ ) VULKAN_HPP_NOEXCEPT
  53580. {
  53581. shaderSharedFloat32AtomicAdd = shaderSharedFloat32AtomicAdd_;
  53582. return *this;
  53583. }
  53584. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceShaderAtomicFloatFeaturesEXT &
  53585. setShaderSharedFloat64Atomics( VULKAN_HPP_NAMESPACE::Bool32 shaderSharedFloat64Atomics_ ) VULKAN_HPP_NOEXCEPT
  53586. {
  53587. shaderSharedFloat64Atomics = shaderSharedFloat64Atomics_;
  53588. return *this;
  53589. }
  53590. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceShaderAtomicFloatFeaturesEXT &
  53591. setShaderSharedFloat64AtomicAdd( VULKAN_HPP_NAMESPACE::Bool32 shaderSharedFloat64AtomicAdd_ ) VULKAN_HPP_NOEXCEPT
  53592. {
  53593. shaderSharedFloat64AtomicAdd = shaderSharedFloat64AtomicAdd_;
  53594. return *this;
  53595. }
  53596. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceShaderAtomicFloatFeaturesEXT &
  53597. setShaderImageFloat32Atomics( VULKAN_HPP_NAMESPACE::Bool32 shaderImageFloat32Atomics_ ) VULKAN_HPP_NOEXCEPT
  53598. {
  53599. shaderImageFloat32Atomics = shaderImageFloat32Atomics_;
  53600. return *this;
  53601. }
  53602. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceShaderAtomicFloatFeaturesEXT &
  53603. setShaderImageFloat32AtomicAdd( VULKAN_HPP_NAMESPACE::Bool32 shaderImageFloat32AtomicAdd_ ) VULKAN_HPP_NOEXCEPT
  53604. {
  53605. shaderImageFloat32AtomicAdd = shaderImageFloat32AtomicAdd_;
  53606. return *this;
  53607. }
  53608. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceShaderAtomicFloatFeaturesEXT &
  53609. setSparseImageFloat32Atomics( VULKAN_HPP_NAMESPACE::Bool32 sparseImageFloat32Atomics_ ) VULKAN_HPP_NOEXCEPT
  53610. {
  53611. sparseImageFloat32Atomics = sparseImageFloat32Atomics_;
  53612. return *this;
  53613. }
  53614. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceShaderAtomicFloatFeaturesEXT &
  53615. setSparseImageFloat32AtomicAdd( VULKAN_HPP_NAMESPACE::Bool32 sparseImageFloat32AtomicAdd_ ) VULKAN_HPP_NOEXCEPT
  53616. {
  53617. sparseImageFloat32AtomicAdd = sparseImageFloat32AtomicAdd_;
  53618. return *this;
  53619. }
  53620. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  53621. operator VkPhysicalDeviceShaderAtomicFloatFeaturesEXT const &() const VULKAN_HPP_NOEXCEPT
  53622. {
  53623. return *reinterpret_cast<const VkPhysicalDeviceShaderAtomicFloatFeaturesEXT *>( this );
  53624. }
  53625. operator VkPhysicalDeviceShaderAtomicFloatFeaturesEXT &() VULKAN_HPP_NOEXCEPT
  53626. {
  53627. return *reinterpret_cast<VkPhysicalDeviceShaderAtomicFloatFeaturesEXT *>( this );
  53628. }
  53629. #if defined( VULKAN_HPP_USE_REFLECT )
  53630. # if 14 <= VULKAN_HPP_CPP_VERSION
  53631. auto
  53632. # else
  53633. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  53634. void * const &,
  53635. VULKAN_HPP_NAMESPACE::Bool32 const &,
  53636. VULKAN_HPP_NAMESPACE::Bool32 const &,
  53637. VULKAN_HPP_NAMESPACE::Bool32 const &,
  53638. VULKAN_HPP_NAMESPACE::Bool32 const &,
  53639. VULKAN_HPP_NAMESPACE::Bool32 const &,
  53640. VULKAN_HPP_NAMESPACE::Bool32 const &,
  53641. VULKAN_HPP_NAMESPACE::Bool32 const &,
  53642. VULKAN_HPP_NAMESPACE::Bool32 const &,
  53643. VULKAN_HPP_NAMESPACE::Bool32 const &,
  53644. VULKAN_HPP_NAMESPACE::Bool32 const &,
  53645. VULKAN_HPP_NAMESPACE::Bool32 const &,
  53646. VULKAN_HPP_NAMESPACE::Bool32 const &>
  53647. # endif
  53648. reflect() const VULKAN_HPP_NOEXCEPT
  53649. {
  53650. return std::tie( sType,
  53651. pNext,
  53652. shaderBufferFloat32Atomics,
  53653. shaderBufferFloat32AtomicAdd,
  53654. shaderBufferFloat64Atomics,
  53655. shaderBufferFloat64AtomicAdd,
  53656. shaderSharedFloat32Atomics,
  53657. shaderSharedFloat32AtomicAdd,
  53658. shaderSharedFloat64Atomics,
  53659. shaderSharedFloat64AtomicAdd,
  53660. shaderImageFloat32Atomics,
  53661. shaderImageFloat32AtomicAdd,
  53662. sparseImageFloat32Atomics,
  53663. sparseImageFloat32AtomicAdd );
  53664. }
  53665. #endif
  53666. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  53667. auto operator<=>( PhysicalDeviceShaderAtomicFloatFeaturesEXT const & ) const = default;
  53668. #else
  53669. bool operator==( PhysicalDeviceShaderAtomicFloatFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  53670. {
  53671. # if defined( VULKAN_HPP_USE_REFLECT )
  53672. return this->reflect() == rhs.reflect();
  53673. # else
  53674. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( shaderBufferFloat32Atomics == rhs.shaderBufferFloat32Atomics ) &&
  53675. ( shaderBufferFloat32AtomicAdd == rhs.shaderBufferFloat32AtomicAdd ) && ( shaderBufferFloat64Atomics == rhs.shaderBufferFloat64Atomics ) &&
  53676. ( shaderBufferFloat64AtomicAdd == rhs.shaderBufferFloat64AtomicAdd ) && ( shaderSharedFloat32Atomics == rhs.shaderSharedFloat32Atomics ) &&
  53677. ( shaderSharedFloat32AtomicAdd == rhs.shaderSharedFloat32AtomicAdd ) && ( shaderSharedFloat64Atomics == rhs.shaderSharedFloat64Atomics ) &&
  53678. ( shaderSharedFloat64AtomicAdd == rhs.shaderSharedFloat64AtomicAdd ) && ( shaderImageFloat32Atomics == rhs.shaderImageFloat32Atomics ) &&
  53679. ( shaderImageFloat32AtomicAdd == rhs.shaderImageFloat32AtomicAdd ) && ( sparseImageFloat32Atomics == rhs.sparseImageFloat32Atomics ) &&
  53680. ( sparseImageFloat32AtomicAdd == rhs.sparseImageFloat32AtomicAdd );
  53681. # endif
  53682. }
  53683. bool operator!=( PhysicalDeviceShaderAtomicFloatFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  53684. {
  53685. return !operator==( rhs );
  53686. }
  53687. #endif
  53688. public:
  53689. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceShaderAtomicFloatFeaturesEXT;
  53690. void * pNext = {};
  53691. VULKAN_HPP_NAMESPACE::Bool32 shaderBufferFloat32Atomics = {};
  53692. VULKAN_HPP_NAMESPACE::Bool32 shaderBufferFloat32AtomicAdd = {};
  53693. VULKAN_HPP_NAMESPACE::Bool32 shaderBufferFloat64Atomics = {};
  53694. VULKAN_HPP_NAMESPACE::Bool32 shaderBufferFloat64AtomicAdd = {};
  53695. VULKAN_HPP_NAMESPACE::Bool32 shaderSharedFloat32Atomics = {};
  53696. VULKAN_HPP_NAMESPACE::Bool32 shaderSharedFloat32AtomicAdd = {};
  53697. VULKAN_HPP_NAMESPACE::Bool32 shaderSharedFloat64Atomics = {};
  53698. VULKAN_HPP_NAMESPACE::Bool32 shaderSharedFloat64AtomicAdd = {};
  53699. VULKAN_HPP_NAMESPACE::Bool32 shaderImageFloat32Atomics = {};
  53700. VULKAN_HPP_NAMESPACE::Bool32 shaderImageFloat32AtomicAdd = {};
  53701. VULKAN_HPP_NAMESPACE::Bool32 sparseImageFloat32Atomics = {};
  53702. VULKAN_HPP_NAMESPACE::Bool32 sparseImageFloat32AtomicAdd = {};
  53703. };
  53704. template <>
  53705. struct CppType<StructureType, StructureType::ePhysicalDeviceShaderAtomicFloatFeaturesEXT>
  53706. {
  53707. using Type = PhysicalDeviceShaderAtomicFloatFeaturesEXT;
  53708. };
  53709. struct PhysicalDeviceShaderAtomicInt64Features
  53710. {
  53711. using NativeType = VkPhysicalDeviceShaderAtomicInt64Features;
  53712. static const bool allowDuplicate = false;
  53713. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceShaderAtomicInt64Features;
  53714. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  53715. VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderAtomicInt64Features( VULKAN_HPP_NAMESPACE::Bool32 shaderBufferInt64Atomics_ = {},
  53716. VULKAN_HPP_NAMESPACE::Bool32 shaderSharedInt64Atomics_ = {},
  53717. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  53718. : pNext( pNext_ )
  53719. , shaderBufferInt64Atomics( shaderBufferInt64Atomics_ )
  53720. , shaderSharedInt64Atomics( shaderSharedInt64Atomics_ )
  53721. {
  53722. }
  53723. VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderAtomicInt64Features( PhysicalDeviceShaderAtomicInt64Features const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  53724. PhysicalDeviceShaderAtomicInt64Features( VkPhysicalDeviceShaderAtomicInt64Features const & rhs ) VULKAN_HPP_NOEXCEPT
  53725. : PhysicalDeviceShaderAtomicInt64Features( *reinterpret_cast<PhysicalDeviceShaderAtomicInt64Features const *>( &rhs ) )
  53726. {
  53727. }
  53728. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  53729. PhysicalDeviceShaderAtomicInt64Features & operator=( PhysicalDeviceShaderAtomicInt64Features const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  53730. PhysicalDeviceShaderAtomicInt64Features & operator=( VkPhysicalDeviceShaderAtomicInt64Features const & rhs ) VULKAN_HPP_NOEXCEPT
  53731. {
  53732. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderAtomicInt64Features const *>( &rhs );
  53733. return *this;
  53734. }
  53735. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  53736. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceShaderAtomicInt64Features & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
  53737. {
  53738. pNext = pNext_;
  53739. return *this;
  53740. }
  53741. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceShaderAtomicInt64Features &
  53742. setShaderBufferInt64Atomics( VULKAN_HPP_NAMESPACE::Bool32 shaderBufferInt64Atomics_ ) VULKAN_HPP_NOEXCEPT
  53743. {
  53744. shaderBufferInt64Atomics = shaderBufferInt64Atomics_;
  53745. return *this;
  53746. }
  53747. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceShaderAtomicInt64Features &
  53748. setShaderSharedInt64Atomics( VULKAN_HPP_NAMESPACE::Bool32 shaderSharedInt64Atomics_ ) VULKAN_HPP_NOEXCEPT
  53749. {
  53750. shaderSharedInt64Atomics = shaderSharedInt64Atomics_;
  53751. return *this;
  53752. }
  53753. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  53754. operator VkPhysicalDeviceShaderAtomicInt64Features const &() const VULKAN_HPP_NOEXCEPT
  53755. {
  53756. return *reinterpret_cast<const VkPhysicalDeviceShaderAtomicInt64Features *>( this );
  53757. }
  53758. operator VkPhysicalDeviceShaderAtomicInt64Features &() VULKAN_HPP_NOEXCEPT
  53759. {
  53760. return *reinterpret_cast<VkPhysicalDeviceShaderAtomicInt64Features *>( this );
  53761. }
  53762. #if defined( VULKAN_HPP_USE_REFLECT )
  53763. # if 14 <= VULKAN_HPP_CPP_VERSION
  53764. auto
  53765. # else
  53766. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
  53767. # endif
  53768. reflect() const VULKAN_HPP_NOEXCEPT
  53769. {
  53770. return std::tie( sType, pNext, shaderBufferInt64Atomics, shaderSharedInt64Atomics );
  53771. }
  53772. #endif
  53773. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  53774. auto operator<=>( PhysicalDeviceShaderAtomicInt64Features const & ) const = default;
  53775. #else
  53776. bool operator==( PhysicalDeviceShaderAtomicInt64Features const & rhs ) const VULKAN_HPP_NOEXCEPT
  53777. {
  53778. # if defined( VULKAN_HPP_USE_REFLECT )
  53779. return this->reflect() == rhs.reflect();
  53780. # else
  53781. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( shaderBufferInt64Atomics == rhs.shaderBufferInt64Atomics ) &&
  53782. ( shaderSharedInt64Atomics == rhs.shaderSharedInt64Atomics );
  53783. # endif
  53784. }
  53785. bool operator!=( PhysicalDeviceShaderAtomicInt64Features const & rhs ) const VULKAN_HPP_NOEXCEPT
  53786. {
  53787. return !operator==( rhs );
  53788. }
  53789. #endif
  53790. public:
  53791. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceShaderAtomicInt64Features;
  53792. void * pNext = {};
  53793. VULKAN_HPP_NAMESPACE::Bool32 shaderBufferInt64Atomics = {};
  53794. VULKAN_HPP_NAMESPACE::Bool32 shaderSharedInt64Atomics = {};
  53795. };
  53796. template <>
  53797. struct CppType<StructureType, StructureType::ePhysicalDeviceShaderAtomicInt64Features>
  53798. {
  53799. using Type = PhysicalDeviceShaderAtomicInt64Features;
  53800. };
  53801. using PhysicalDeviceShaderAtomicInt64FeaturesKHR = PhysicalDeviceShaderAtomicInt64Features;
  53802. struct PhysicalDeviceShaderClockFeaturesKHR
  53803. {
  53804. using NativeType = VkPhysicalDeviceShaderClockFeaturesKHR;
  53805. static const bool allowDuplicate = false;
  53806. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceShaderClockFeaturesKHR;
  53807. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  53808. VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderClockFeaturesKHR( VULKAN_HPP_NAMESPACE::Bool32 shaderSubgroupClock_ = {},
  53809. VULKAN_HPP_NAMESPACE::Bool32 shaderDeviceClock_ = {},
  53810. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  53811. : pNext( pNext_ )
  53812. , shaderSubgroupClock( shaderSubgroupClock_ )
  53813. , shaderDeviceClock( shaderDeviceClock_ )
  53814. {
  53815. }
  53816. VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderClockFeaturesKHR( PhysicalDeviceShaderClockFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  53817. PhysicalDeviceShaderClockFeaturesKHR( VkPhysicalDeviceShaderClockFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  53818. : PhysicalDeviceShaderClockFeaturesKHR( *reinterpret_cast<PhysicalDeviceShaderClockFeaturesKHR const *>( &rhs ) )
  53819. {
  53820. }
  53821. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  53822. PhysicalDeviceShaderClockFeaturesKHR & operator=( PhysicalDeviceShaderClockFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  53823. PhysicalDeviceShaderClockFeaturesKHR & operator=( VkPhysicalDeviceShaderClockFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  53824. {
  53825. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderClockFeaturesKHR const *>( &rhs );
  53826. return *this;
  53827. }
  53828. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  53829. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceShaderClockFeaturesKHR & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
  53830. {
  53831. pNext = pNext_;
  53832. return *this;
  53833. }
  53834. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceShaderClockFeaturesKHR &
  53835. setShaderSubgroupClock( VULKAN_HPP_NAMESPACE::Bool32 shaderSubgroupClock_ ) VULKAN_HPP_NOEXCEPT
  53836. {
  53837. shaderSubgroupClock = shaderSubgroupClock_;
  53838. return *this;
  53839. }
  53840. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceShaderClockFeaturesKHR & setShaderDeviceClock( VULKAN_HPP_NAMESPACE::Bool32 shaderDeviceClock_ ) VULKAN_HPP_NOEXCEPT
  53841. {
  53842. shaderDeviceClock = shaderDeviceClock_;
  53843. return *this;
  53844. }
  53845. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  53846. operator VkPhysicalDeviceShaderClockFeaturesKHR const &() const VULKAN_HPP_NOEXCEPT
  53847. {
  53848. return *reinterpret_cast<const VkPhysicalDeviceShaderClockFeaturesKHR *>( this );
  53849. }
  53850. operator VkPhysicalDeviceShaderClockFeaturesKHR &() VULKAN_HPP_NOEXCEPT
  53851. {
  53852. return *reinterpret_cast<VkPhysicalDeviceShaderClockFeaturesKHR *>( this );
  53853. }
  53854. #if defined( VULKAN_HPP_USE_REFLECT )
  53855. # if 14 <= VULKAN_HPP_CPP_VERSION
  53856. auto
  53857. # else
  53858. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
  53859. # endif
  53860. reflect() const VULKAN_HPP_NOEXCEPT
  53861. {
  53862. return std::tie( sType, pNext, shaderSubgroupClock, shaderDeviceClock );
  53863. }
  53864. #endif
  53865. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  53866. auto operator<=>( PhysicalDeviceShaderClockFeaturesKHR const & ) const = default;
  53867. #else
  53868. bool operator==( PhysicalDeviceShaderClockFeaturesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  53869. {
  53870. # if defined( VULKAN_HPP_USE_REFLECT )
  53871. return this->reflect() == rhs.reflect();
  53872. # else
  53873. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( shaderSubgroupClock == rhs.shaderSubgroupClock ) &&
  53874. ( shaderDeviceClock == rhs.shaderDeviceClock );
  53875. # endif
  53876. }
  53877. bool operator!=( PhysicalDeviceShaderClockFeaturesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  53878. {
  53879. return !operator==( rhs );
  53880. }
  53881. #endif
  53882. public:
  53883. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceShaderClockFeaturesKHR;
  53884. void * pNext = {};
  53885. VULKAN_HPP_NAMESPACE::Bool32 shaderSubgroupClock = {};
  53886. VULKAN_HPP_NAMESPACE::Bool32 shaderDeviceClock = {};
  53887. };
  53888. template <>
  53889. struct CppType<StructureType, StructureType::ePhysicalDeviceShaderClockFeaturesKHR>
  53890. {
  53891. using Type = PhysicalDeviceShaderClockFeaturesKHR;
  53892. };
  53893. struct PhysicalDeviceShaderCoreProperties2AMD
  53894. {
  53895. using NativeType = VkPhysicalDeviceShaderCoreProperties2AMD;
  53896. static const bool allowDuplicate = false;
  53897. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceShaderCoreProperties2AMD;
  53898. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  53899. VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderCoreProperties2AMD( VULKAN_HPP_NAMESPACE::ShaderCorePropertiesFlagsAMD shaderCoreFeatures_ = {},
  53900. uint32_t activeComputeUnitCount_ = {},
  53901. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  53902. : pNext( pNext_ )
  53903. , shaderCoreFeatures( shaderCoreFeatures_ )
  53904. , activeComputeUnitCount( activeComputeUnitCount_ )
  53905. {
  53906. }
  53907. VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderCoreProperties2AMD( PhysicalDeviceShaderCoreProperties2AMD const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  53908. PhysicalDeviceShaderCoreProperties2AMD( VkPhysicalDeviceShaderCoreProperties2AMD const & rhs ) VULKAN_HPP_NOEXCEPT
  53909. : PhysicalDeviceShaderCoreProperties2AMD( *reinterpret_cast<PhysicalDeviceShaderCoreProperties2AMD const *>( &rhs ) )
  53910. {
  53911. }
  53912. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  53913. PhysicalDeviceShaderCoreProperties2AMD & operator=( PhysicalDeviceShaderCoreProperties2AMD const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  53914. PhysicalDeviceShaderCoreProperties2AMD & operator=( VkPhysicalDeviceShaderCoreProperties2AMD const & rhs ) VULKAN_HPP_NOEXCEPT
  53915. {
  53916. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderCoreProperties2AMD const *>( &rhs );
  53917. return *this;
  53918. }
  53919. operator VkPhysicalDeviceShaderCoreProperties2AMD const &() const VULKAN_HPP_NOEXCEPT
  53920. {
  53921. return *reinterpret_cast<const VkPhysicalDeviceShaderCoreProperties2AMD *>( this );
  53922. }
  53923. operator VkPhysicalDeviceShaderCoreProperties2AMD &() VULKAN_HPP_NOEXCEPT
  53924. {
  53925. return *reinterpret_cast<VkPhysicalDeviceShaderCoreProperties2AMD *>( this );
  53926. }
  53927. #if defined( VULKAN_HPP_USE_REFLECT )
  53928. # if 14 <= VULKAN_HPP_CPP_VERSION
  53929. auto
  53930. # else
  53931. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::ShaderCorePropertiesFlagsAMD const &, uint32_t const &>
  53932. # endif
  53933. reflect() const VULKAN_HPP_NOEXCEPT
  53934. {
  53935. return std::tie( sType, pNext, shaderCoreFeatures, activeComputeUnitCount );
  53936. }
  53937. #endif
  53938. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  53939. auto operator<=>( PhysicalDeviceShaderCoreProperties2AMD const & ) const = default;
  53940. #else
  53941. bool operator==( PhysicalDeviceShaderCoreProperties2AMD const & rhs ) const VULKAN_HPP_NOEXCEPT
  53942. {
  53943. # if defined( VULKAN_HPP_USE_REFLECT )
  53944. return this->reflect() == rhs.reflect();
  53945. # else
  53946. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( shaderCoreFeatures == rhs.shaderCoreFeatures ) &&
  53947. ( activeComputeUnitCount == rhs.activeComputeUnitCount );
  53948. # endif
  53949. }
  53950. bool operator!=( PhysicalDeviceShaderCoreProperties2AMD const & rhs ) const VULKAN_HPP_NOEXCEPT
  53951. {
  53952. return !operator==( rhs );
  53953. }
  53954. #endif
  53955. public:
  53956. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceShaderCoreProperties2AMD;
  53957. void * pNext = {};
  53958. VULKAN_HPP_NAMESPACE::ShaderCorePropertiesFlagsAMD shaderCoreFeatures = {};
  53959. uint32_t activeComputeUnitCount = {};
  53960. };
  53961. template <>
  53962. struct CppType<StructureType, StructureType::ePhysicalDeviceShaderCoreProperties2AMD>
  53963. {
  53964. using Type = PhysicalDeviceShaderCoreProperties2AMD;
  53965. };
  53966. struct PhysicalDeviceShaderCorePropertiesAMD
  53967. {
  53968. using NativeType = VkPhysicalDeviceShaderCorePropertiesAMD;
  53969. static const bool allowDuplicate = false;
  53970. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceShaderCorePropertiesAMD;
  53971. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  53972. VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderCorePropertiesAMD( uint32_t shaderEngineCount_ = {},
  53973. uint32_t shaderArraysPerEngineCount_ = {},
  53974. uint32_t computeUnitsPerShaderArray_ = {},
  53975. uint32_t simdPerComputeUnit_ = {},
  53976. uint32_t wavefrontsPerSimd_ = {},
  53977. uint32_t wavefrontSize_ = {},
  53978. uint32_t sgprsPerSimd_ = {},
  53979. uint32_t minSgprAllocation_ = {},
  53980. uint32_t maxSgprAllocation_ = {},
  53981. uint32_t sgprAllocationGranularity_ = {},
  53982. uint32_t vgprsPerSimd_ = {},
  53983. uint32_t minVgprAllocation_ = {},
  53984. uint32_t maxVgprAllocation_ = {},
  53985. uint32_t vgprAllocationGranularity_ = {},
  53986. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  53987. : pNext( pNext_ )
  53988. , shaderEngineCount( shaderEngineCount_ )
  53989. , shaderArraysPerEngineCount( shaderArraysPerEngineCount_ )
  53990. , computeUnitsPerShaderArray( computeUnitsPerShaderArray_ )
  53991. , simdPerComputeUnit( simdPerComputeUnit_ )
  53992. , wavefrontsPerSimd( wavefrontsPerSimd_ )
  53993. , wavefrontSize( wavefrontSize_ )
  53994. , sgprsPerSimd( sgprsPerSimd_ )
  53995. , minSgprAllocation( minSgprAllocation_ )
  53996. , maxSgprAllocation( maxSgprAllocation_ )
  53997. , sgprAllocationGranularity( sgprAllocationGranularity_ )
  53998. , vgprsPerSimd( vgprsPerSimd_ )
  53999. , minVgprAllocation( minVgprAllocation_ )
  54000. , maxVgprAllocation( maxVgprAllocation_ )
  54001. , vgprAllocationGranularity( vgprAllocationGranularity_ )
  54002. {
  54003. }
  54004. VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderCorePropertiesAMD( PhysicalDeviceShaderCorePropertiesAMD const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  54005. PhysicalDeviceShaderCorePropertiesAMD( VkPhysicalDeviceShaderCorePropertiesAMD const & rhs ) VULKAN_HPP_NOEXCEPT
  54006. : PhysicalDeviceShaderCorePropertiesAMD( *reinterpret_cast<PhysicalDeviceShaderCorePropertiesAMD const *>( &rhs ) )
  54007. {
  54008. }
  54009. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  54010. PhysicalDeviceShaderCorePropertiesAMD & operator=( PhysicalDeviceShaderCorePropertiesAMD const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  54011. PhysicalDeviceShaderCorePropertiesAMD & operator=( VkPhysicalDeviceShaderCorePropertiesAMD const & rhs ) VULKAN_HPP_NOEXCEPT
  54012. {
  54013. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderCorePropertiesAMD const *>( &rhs );
  54014. return *this;
  54015. }
  54016. operator VkPhysicalDeviceShaderCorePropertiesAMD const &() const VULKAN_HPP_NOEXCEPT
  54017. {
  54018. return *reinterpret_cast<const VkPhysicalDeviceShaderCorePropertiesAMD *>( this );
  54019. }
  54020. operator VkPhysicalDeviceShaderCorePropertiesAMD &() VULKAN_HPP_NOEXCEPT
  54021. {
  54022. return *reinterpret_cast<VkPhysicalDeviceShaderCorePropertiesAMD *>( this );
  54023. }
  54024. #if defined( VULKAN_HPP_USE_REFLECT )
  54025. # if 14 <= VULKAN_HPP_CPP_VERSION
  54026. auto
  54027. # else
  54028. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  54029. void * const &,
  54030. uint32_t const &,
  54031. uint32_t const &,
  54032. uint32_t const &,
  54033. uint32_t const &,
  54034. uint32_t const &,
  54035. uint32_t const &,
  54036. uint32_t const &,
  54037. uint32_t const &,
  54038. uint32_t const &,
  54039. uint32_t const &,
  54040. uint32_t const &,
  54041. uint32_t const &,
  54042. uint32_t const &,
  54043. uint32_t const &>
  54044. # endif
  54045. reflect() const VULKAN_HPP_NOEXCEPT
  54046. {
  54047. return std::tie( sType,
  54048. pNext,
  54049. shaderEngineCount,
  54050. shaderArraysPerEngineCount,
  54051. computeUnitsPerShaderArray,
  54052. simdPerComputeUnit,
  54053. wavefrontsPerSimd,
  54054. wavefrontSize,
  54055. sgprsPerSimd,
  54056. minSgprAllocation,
  54057. maxSgprAllocation,
  54058. sgprAllocationGranularity,
  54059. vgprsPerSimd,
  54060. minVgprAllocation,
  54061. maxVgprAllocation,
  54062. vgprAllocationGranularity );
  54063. }
  54064. #endif
  54065. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  54066. auto operator<=>( PhysicalDeviceShaderCorePropertiesAMD const & ) const = default;
  54067. #else
  54068. bool operator==( PhysicalDeviceShaderCorePropertiesAMD const & rhs ) const VULKAN_HPP_NOEXCEPT
  54069. {
  54070. # if defined( VULKAN_HPP_USE_REFLECT )
  54071. return this->reflect() == rhs.reflect();
  54072. # else
  54073. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( shaderEngineCount == rhs.shaderEngineCount ) &&
  54074. ( shaderArraysPerEngineCount == rhs.shaderArraysPerEngineCount ) && ( computeUnitsPerShaderArray == rhs.computeUnitsPerShaderArray ) &&
  54075. ( simdPerComputeUnit == rhs.simdPerComputeUnit ) && ( wavefrontsPerSimd == rhs.wavefrontsPerSimd ) && ( wavefrontSize == rhs.wavefrontSize ) &&
  54076. ( sgprsPerSimd == rhs.sgprsPerSimd ) && ( minSgprAllocation == rhs.minSgprAllocation ) && ( maxSgprAllocation == rhs.maxSgprAllocation ) &&
  54077. ( sgprAllocationGranularity == rhs.sgprAllocationGranularity ) && ( vgprsPerSimd == rhs.vgprsPerSimd ) &&
  54078. ( minVgprAllocation == rhs.minVgprAllocation ) && ( maxVgprAllocation == rhs.maxVgprAllocation ) &&
  54079. ( vgprAllocationGranularity == rhs.vgprAllocationGranularity );
  54080. # endif
  54081. }
  54082. bool operator!=( PhysicalDeviceShaderCorePropertiesAMD const & rhs ) const VULKAN_HPP_NOEXCEPT
  54083. {
  54084. return !operator==( rhs );
  54085. }
  54086. #endif
  54087. public:
  54088. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceShaderCorePropertiesAMD;
  54089. void * pNext = {};
  54090. uint32_t shaderEngineCount = {};
  54091. uint32_t shaderArraysPerEngineCount = {};
  54092. uint32_t computeUnitsPerShaderArray = {};
  54093. uint32_t simdPerComputeUnit = {};
  54094. uint32_t wavefrontsPerSimd = {};
  54095. uint32_t wavefrontSize = {};
  54096. uint32_t sgprsPerSimd = {};
  54097. uint32_t minSgprAllocation = {};
  54098. uint32_t maxSgprAllocation = {};
  54099. uint32_t sgprAllocationGranularity = {};
  54100. uint32_t vgprsPerSimd = {};
  54101. uint32_t minVgprAllocation = {};
  54102. uint32_t maxVgprAllocation = {};
  54103. uint32_t vgprAllocationGranularity = {};
  54104. };
  54105. template <>
  54106. struct CppType<StructureType, StructureType::ePhysicalDeviceShaderCorePropertiesAMD>
  54107. {
  54108. using Type = PhysicalDeviceShaderCorePropertiesAMD;
  54109. };
  54110. struct PhysicalDeviceShaderDemoteToHelperInvocationFeatures
  54111. {
  54112. using NativeType = VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures;
  54113. static const bool allowDuplicate = false;
  54114. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceShaderDemoteToHelperInvocationFeatures;
  54115. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  54116. VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderDemoteToHelperInvocationFeatures( VULKAN_HPP_NAMESPACE::Bool32 shaderDemoteToHelperInvocation_ = {},
  54117. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  54118. : pNext( pNext_ )
  54119. , shaderDemoteToHelperInvocation( shaderDemoteToHelperInvocation_ )
  54120. {
  54121. }
  54122. VULKAN_HPP_CONSTEXPR
  54123. PhysicalDeviceShaderDemoteToHelperInvocationFeatures( PhysicalDeviceShaderDemoteToHelperInvocationFeatures const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  54124. PhysicalDeviceShaderDemoteToHelperInvocationFeatures( VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
  54125. : PhysicalDeviceShaderDemoteToHelperInvocationFeatures( *reinterpret_cast<PhysicalDeviceShaderDemoteToHelperInvocationFeatures const *>( &rhs ) )
  54126. {
  54127. }
  54128. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  54129. PhysicalDeviceShaderDemoteToHelperInvocationFeatures &
  54130. operator=( PhysicalDeviceShaderDemoteToHelperInvocationFeatures const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  54131. PhysicalDeviceShaderDemoteToHelperInvocationFeatures & operator=( VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
  54132. {
  54133. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderDemoteToHelperInvocationFeatures const *>( &rhs );
  54134. return *this;
  54135. }
  54136. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  54137. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceShaderDemoteToHelperInvocationFeatures & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
  54138. {
  54139. pNext = pNext_;
  54140. return *this;
  54141. }
  54142. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceShaderDemoteToHelperInvocationFeatures &
  54143. setShaderDemoteToHelperInvocation( VULKAN_HPP_NAMESPACE::Bool32 shaderDemoteToHelperInvocation_ ) VULKAN_HPP_NOEXCEPT
  54144. {
  54145. shaderDemoteToHelperInvocation = shaderDemoteToHelperInvocation_;
  54146. return *this;
  54147. }
  54148. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  54149. operator VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures const &() const VULKAN_HPP_NOEXCEPT
  54150. {
  54151. return *reinterpret_cast<const VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures *>( this );
  54152. }
  54153. operator VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures &() VULKAN_HPP_NOEXCEPT
  54154. {
  54155. return *reinterpret_cast<VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures *>( this );
  54156. }
  54157. #if defined( VULKAN_HPP_USE_REFLECT )
  54158. # if 14 <= VULKAN_HPP_CPP_VERSION
  54159. auto
  54160. # else
  54161. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
  54162. # endif
  54163. reflect() const VULKAN_HPP_NOEXCEPT
  54164. {
  54165. return std::tie( sType, pNext, shaderDemoteToHelperInvocation );
  54166. }
  54167. #endif
  54168. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  54169. auto operator<=>( PhysicalDeviceShaderDemoteToHelperInvocationFeatures const & ) const = default;
  54170. #else
  54171. bool operator==( PhysicalDeviceShaderDemoteToHelperInvocationFeatures const & rhs ) const VULKAN_HPP_NOEXCEPT
  54172. {
  54173. # if defined( VULKAN_HPP_USE_REFLECT )
  54174. return this->reflect() == rhs.reflect();
  54175. # else
  54176. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( shaderDemoteToHelperInvocation == rhs.shaderDemoteToHelperInvocation );
  54177. # endif
  54178. }
  54179. bool operator!=( PhysicalDeviceShaderDemoteToHelperInvocationFeatures const & rhs ) const VULKAN_HPP_NOEXCEPT
  54180. {
  54181. return !operator==( rhs );
  54182. }
  54183. #endif
  54184. public:
  54185. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceShaderDemoteToHelperInvocationFeatures;
  54186. void * pNext = {};
  54187. VULKAN_HPP_NAMESPACE::Bool32 shaderDemoteToHelperInvocation = {};
  54188. };
  54189. template <>
  54190. struct CppType<StructureType, StructureType::ePhysicalDeviceShaderDemoteToHelperInvocationFeatures>
  54191. {
  54192. using Type = PhysicalDeviceShaderDemoteToHelperInvocationFeatures;
  54193. };
  54194. using PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT = PhysicalDeviceShaderDemoteToHelperInvocationFeatures;
  54195. struct PhysicalDeviceShaderDrawParametersFeatures
  54196. {
  54197. using NativeType = VkPhysicalDeviceShaderDrawParametersFeatures;
  54198. static const bool allowDuplicate = false;
  54199. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceShaderDrawParametersFeatures;
  54200. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  54201. VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderDrawParametersFeatures( VULKAN_HPP_NAMESPACE::Bool32 shaderDrawParameters_ = {},
  54202. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  54203. : pNext( pNext_ )
  54204. , shaderDrawParameters( shaderDrawParameters_ )
  54205. {
  54206. }
  54207. VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderDrawParametersFeatures( PhysicalDeviceShaderDrawParametersFeatures const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  54208. PhysicalDeviceShaderDrawParametersFeatures( VkPhysicalDeviceShaderDrawParametersFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
  54209. : PhysicalDeviceShaderDrawParametersFeatures( *reinterpret_cast<PhysicalDeviceShaderDrawParametersFeatures const *>( &rhs ) )
  54210. {
  54211. }
  54212. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  54213. PhysicalDeviceShaderDrawParametersFeatures & operator=( PhysicalDeviceShaderDrawParametersFeatures const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  54214. PhysicalDeviceShaderDrawParametersFeatures & operator=( VkPhysicalDeviceShaderDrawParametersFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
  54215. {
  54216. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderDrawParametersFeatures const *>( &rhs );
  54217. return *this;
  54218. }
  54219. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  54220. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceShaderDrawParametersFeatures & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
  54221. {
  54222. pNext = pNext_;
  54223. return *this;
  54224. }
  54225. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceShaderDrawParametersFeatures &
  54226. setShaderDrawParameters( VULKAN_HPP_NAMESPACE::Bool32 shaderDrawParameters_ ) VULKAN_HPP_NOEXCEPT
  54227. {
  54228. shaderDrawParameters = shaderDrawParameters_;
  54229. return *this;
  54230. }
  54231. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  54232. operator VkPhysicalDeviceShaderDrawParametersFeatures const &() const VULKAN_HPP_NOEXCEPT
  54233. {
  54234. return *reinterpret_cast<const VkPhysicalDeviceShaderDrawParametersFeatures *>( this );
  54235. }
  54236. operator VkPhysicalDeviceShaderDrawParametersFeatures &() VULKAN_HPP_NOEXCEPT
  54237. {
  54238. return *reinterpret_cast<VkPhysicalDeviceShaderDrawParametersFeatures *>( this );
  54239. }
  54240. #if defined( VULKAN_HPP_USE_REFLECT )
  54241. # if 14 <= VULKAN_HPP_CPP_VERSION
  54242. auto
  54243. # else
  54244. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
  54245. # endif
  54246. reflect() const VULKAN_HPP_NOEXCEPT
  54247. {
  54248. return std::tie( sType, pNext, shaderDrawParameters );
  54249. }
  54250. #endif
  54251. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  54252. auto operator<=>( PhysicalDeviceShaderDrawParametersFeatures const & ) const = default;
  54253. #else
  54254. bool operator==( PhysicalDeviceShaderDrawParametersFeatures const & rhs ) const VULKAN_HPP_NOEXCEPT
  54255. {
  54256. # if defined( VULKAN_HPP_USE_REFLECT )
  54257. return this->reflect() == rhs.reflect();
  54258. # else
  54259. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( shaderDrawParameters == rhs.shaderDrawParameters );
  54260. # endif
  54261. }
  54262. bool operator!=( PhysicalDeviceShaderDrawParametersFeatures const & rhs ) const VULKAN_HPP_NOEXCEPT
  54263. {
  54264. return !operator==( rhs );
  54265. }
  54266. #endif
  54267. public:
  54268. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceShaderDrawParametersFeatures;
  54269. void * pNext = {};
  54270. VULKAN_HPP_NAMESPACE::Bool32 shaderDrawParameters = {};
  54271. };
  54272. template <>
  54273. struct CppType<StructureType, StructureType::ePhysicalDeviceShaderDrawParametersFeatures>
  54274. {
  54275. using Type = PhysicalDeviceShaderDrawParametersFeatures;
  54276. };
  54277. using PhysicalDeviceShaderDrawParameterFeatures = PhysicalDeviceShaderDrawParametersFeatures;
  54278. struct PhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD
  54279. {
  54280. using NativeType = VkPhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD;
  54281. static const bool allowDuplicate = false;
  54282. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD;
  54283. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  54284. VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD( VULKAN_HPP_NAMESPACE::Bool32 shaderEarlyAndLateFragmentTests_ = {},
  54285. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  54286. : pNext( pNext_ )
  54287. , shaderEarlyAndLateFragmentTests( shaderEarlyAndLateFragmentTests_ )
  54288. {
  54289. }
  54290. VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD( PhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD const & rhs )
  54291. VULKAN_HPP_NOEXCEPT = default;
  54292. PhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD( VkPhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD const & rhs ) VULKAN_HPP_NOEXCEPT
  54293. : PhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD( *reinterpret_cast<PhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD const *>( &rhs ) )
  54294. {
  54295. }
  54296. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  54297. PhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD &
  54298. operator=( PhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  54299. PhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD &
  54300. operator=( VkPhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD const & rhs ) VULKAN_HPP_NOEXCEPT
  54301. {
  54302. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD const *>( &rhs );
  54303. return *this;
  54304. }
  54305. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  54306. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
  54307. {
  54308. pNext = pNext_;
  54309. return *this;
  54310. }
  54311. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD &
  54312. setShaderEarlyAndLateFragmentTests( VULKAN_HPP_NAMESPACE::Bool32 shaderEarlyAndLateFragmentTests_ ) VULKAN_HPP_NOEXCEPT
  54313. {
  54314. shaderEarlyAndLateFragmentTests = shaderEarlyAndLateFragmentTests_;
  54315. return *this;
  54316. }
  54317. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  54318. operator VkPhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD const &() const VULKAN_HPP_NOEXCEPT
  54319. {
  54320. return *reinterpret_cast<const VkPhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD *>( this );
  54321. }
  54322. operator VkPhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD &() VULKAN_HPP_NOEXCEPT
  54323. {
  54324. return *reinterpret_cast<VkPhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD *>( this );
  54325. }
  54326. #if defined( VULKAN_HPP_USE_REFLECT )
  54327. # if 14 <= VULKAN_HPP_CPP_VERSION
  54328. auto
  54329. # else
  54330. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
  54331. # endif
  54332. reflect() const VULKAN_HPP_NOEXCEPT
  54333. {
  54334. return std::tie( sType, pNext, shaderEarlyAndLateFragmentTests );
  54335. }
  54336. #endif
  54337. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  54338. auto operator<=>( PhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD const & ) const = default;
  54339. #else
  54340. bool operator==( PhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD const & rhs ) const VULKAN_HPP_NOEXCEPT
  54341. {
  54342. # if defined( VULKAN_HPP_USE_REFLECT )
  54343. return this->reflect() == rhs.reflect();
  54344. # else
  54345. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( shaderEarlyAndLateFragmentTests == rhs.shaderEarlyAndLateFragmentTests );
  54346. # endif
  54347. }
  54348. bool operator!=( PhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD const & rhs ) const VULKAN_HPP_NOEXCEPT
  54349. {
  54350. return !operator==( rhs );
  54351. }
  54352. #endif
  54353. public:
  54354. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD;
  54355. void * pNext = {};
  54356. VULKAN_HPP_NAMESPACE::Bool32 shaderEarlyAndLateFragmentTests = {};
  54357. };
  54358. template <>
  54359. struct CppType<StructureType, StructureType::ePhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD>
  54360. {
  54361. using Type = PhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD;
  54362. };
  54363. struct PhysicalDeviceShaderFloat16Int8Features
  54364. {
  54365. using NativeType = VkPhysicalDeviceShaderFloat16Int8Features;
  54366. static const bool allowDuplicate = false;
  54367. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceShaderFloat16Int8Features;
  54368. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  54369. VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderFloat16Int8Features( VULKAN_HPP_NAMESPACE::Bool32 shaderFloat16_ = {},
  54370. VULKAN_HPP_NAMESPACE::Bool32 shaderInt8_ = {},
  54371. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  54372. : pNext( pNext_ )
  54373. , shaderFloat16( shaderFloat16_ )
  54374. , shaderInt8( shaderInt8_ )
  54375. {
  54376. }
  54377. VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderFloat16Int8Features( PhysicalDeviceShaderFloat16Int8Features const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  54378. PhysicalDeviceShaderFloat16Int8Features( VkPhysicalDeviceShaderFloat16Int8Features const & rhs ) VULKAN_HPP_NOEXCEPT
  54379. : PhysicalDeviceShaderFloat16Int8Features( *reinterpret_cast<PhysicalDeviceShaderFloat16Int8Features const *>( &rhs ) )
  54380. {
  54381. }
  54382. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  54383. PhysicalDeviceShaderFloat16Int8Features & operator=( PhysicalDeviceShaderFloat16Int8Features const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  54384. PhysicalDeviceShaderFloat16Int8Features & operator=( VkPhysicalDeviceShaderFloat16Int8Features const & rhs ) VULKAN_HPP_NOEXCEPT
  54385. {
  54386. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderFloat16Int8Features const *>( &rhs );
  54387. return *this;
  54388. }
  54389. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  54390. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceShaderFloat16Int8Features & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
  54391. {
  54392. pNext = pNext_;
  54393. return *this;
  54394. }
  54395. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceShaderFloat16Int8Features & setShaderFloat16( VULKAN_HPP_NAMESPACE::Bool32 shaderFloat16_ ) VULKAN_HPP_NOEXCEPT
  54396. {
  54397. shaderFloat16 = shaderFloat16_;
  54398. return *this;
  54399. }
  54400. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceShaderFloat16Int8Features & setShaderInt8( VULKAN_HPP_NAMESPACE::Bool32 shaderInt8_ ) VULKAN_HPP_NOEXCEPT
  54401. {
  54402. shaderInt8 = shaderInt8_;
  54403. return *this;
  54404. }
  54405. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  54406. operator VkPhysicalDeviceShaderFloat16Int8Features const &() const VULKAN_HPP_NOEXCEPT
  54407. {
  54408. return *reinterpret_cast<const VkPhysicalDeviceShaderFloat16Int8Features *>( this );
  54409. }
  54410. operator VkPhysicalDeviceShaderFloat16Int8Features &() VULKAN_HPP_NOEXCEPT
  54411. {
  54412. return *reinterpret_cast<VkPhysicalDeviceShaderFloat16Int8Features *>( this );
  54413. }
  54414. #if defined( VULKAN_HPP_USE_REFLECT )
  54415. # if 14 <= VULKAN_HPP_CPP_VERSION
  54416. auto
  54417. # else
  54418. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
  54419. # endif
  54420. reflect() const VULKAN_HPP_NOEXCEPT
  54421. {
  54422. return std::tie( sType, pNext, shaderFloat16, shaderInt8 );
  54423. }
  54424. #endif
  54425. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  54426. auto operator<=>( PhysicalDeviceShaderFloat16Int8Features const & ) const = default;
  54427. #else
  54428. bool operator==( PhysicalDeviceShaderFloat16Int8Features const & rhs ) const VULKAN_HPP_NOEXCEPT
  54429. {
  54430. # if defined( VULKAN_HPP_USE_REFLECT )
  54431. return this->reflect() == rhs.reflect();
  54432. # else
  54433. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( shaderFloat16 == rhs.shaderFloat16 ) && ( shaderInt8 == rhs.shaderInt8 );
  54434. # endif
  54435. }
  54436. bool operator!=( PhysicalDeviceShaderFloat16Int8Features const & rhs ) const VULKAN_HPP_NOEXCEPT
  54437. {
  54438. return !operator==( rhs );
  54439. }
  54440. #endif
  54441. public:
  54442. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceShaderFloat16Int8Features;
  54443. void * pNext = {};
  54444. VULKAN_HPP_NAMESPACE::Bool32 shaderFloat16 = {};
  54445. VULKAN_HPP_NAMESPACE::Bool32 shaderInt8 = {};
  54446. };
  54447. template <>
  54448. struct CppType<StructureType, StructureType::ePhysicalDeviceShaderFloat16Int8Features>
  54449. {
  54450. using Type = PhysicalDeviceShaderFloat16Int8Features;
  54451. };
  54452. using PhysicalDeviceFloat16Int8FeaturesKHR = PhysicalDeviceShaderFloat16Int8Features;
  54453. using PhysicalDeviceShaderFloat16Int8FeaturesKHR = PhysicalDeviceShaderFloat16Int8Features;
  54454. struct PhysicalDeviceShaderImageAtomicInt64FeaturesEXT
  54455. {
  54456. using NativeType = VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT;
  54457. static const bool allowDuplicate = false;
  54458. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceShaderImageAtomicInt64FeaturesEXT;
  54459. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  54460. VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderImageAtomicInt64FeaturesEXT( VULKAN_HPP_NAMESPACE::Bool32 shaderImageInt64Atomics_ = {},
  54461. VULKAN_HPP_NAMESPACE::Bool32 sparseImageInt64Atomics_ = {},
  54462. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  54463. : pNext( pNext_ )
  54464. , shaderImageInt64Atomics( shaderImageInt64Atomics_ )
  54465. , sparseImageInt64Atomics( sparseImageInt64Atomics_ )
  54466. {
  54467. }
  54468. VULKAN_HPP_CONSTEXPR
  54469. PhysicalDeviceShaderImageAtomicInt64FeaturesEXT( PhysicalDeviceShaderImageAtomicInt64FeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  54470. PhysicalDeviceShaderImageAtomicInt64FeaturesEXT( VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  54471. : PhysicalDeviceShaderImageAtomicInt64FeaturesEXT( *reinterpret_cast<PhysicalDeviceShaderImageAtomicInt64FeaturesEXT const *>( &rhs ) )
  54472. {
  54473. }
  54474. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  54475. PhysicalDeviceShaderImageAtomicInt64FeaturesEXT & operator=( PhysicalDeviceShaderImageAtomicInt64FeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  54476. PhysicalDeviceShaderImageAtomicInt64FeaturesEXT & operator=( VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  54477. {
  54478. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderImageAtomicInt64FeaturesEXT const *>( &rhs );
  54479. return *this;
  54480. }
  54481. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  54482. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceShaderImageAtomicInt64FeaturesEXT & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
  54483. {
  54484. pNext = pNext_;
  54485. return *this;
  54486. }
  54487. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceShaderImageAtomicInt64FeaturesEXT &
  54488. setShaderImageInt64Atomics( VULKAN_HPP_NAMESPACE::Bool32 shaderImageInt64Atomics_ ) VULKAN_HPP_NOEXCEPT
  54489. {
  54490. shaderImageInt64Atomics = shaderImageInt64Atomics_;
  54491. return *this;
  54492. }
  54493. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceShaderImageAtomicInt64FeaturesEXT &
  54494. setSparseImageInt64Atomics( VULKAN_HPP_NAMESPACE::Bool32 sparseImageInt64Atomics_ ) VULKAN_HPP_NOEXCEPT
  54495. {
  54496. sparseImageInt64Atomics = sparseImageInt64Atomics_;
  54497. return *this;
  54498. }
  54499. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  54500. operator VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT const &() const VULKAN_HPP_NOEXCEPT
  54501. {
  54502. return *reinterpret_cast<const VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT *>( this );
  54503. }
  54504. operator VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT &() VULKAN_HPP_NOEXCEPT
  54505. {
  54506. return *reinterpret_cast<VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT *>( this );
  54507. }
  54508. #if defined( VULKAN_HPP_USE_REFLECT )
  54509. # if 14 <= VULKAN_HPP_CPP_VERSION
  54510. auto
  54511. # else
  54512. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
  54513. # endif
  54514. reflect() const VULKAN_HPP_NOEXCEPT
  54515. {
  54516. return std::tie( sType, pNext, shaderImageInt64Atomics, sparseImageInt64Atomics );
  54517. }
  54518. #endif
  54519. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  54520. auto operator<=>( PhysicalDeviceShaderImageAtomicInt64FeaturesEXT const & ) const = default;
  54521. #else
  54522. bool operator==( PhysicalDeviceShaderImageAtomicInt64FeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  54523. {
  54524. # if defined( VULKAN_HPP_USE_REFLECT )
  54525. return this->reflect() == rhs.reflect();
  54526. # else
  54527. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( shaderImageInt64Atomics == rhs.shaderImageInt64Atomics ) &&
  54528. ( sparseImageInt64Atomics == rhs.sparseImageInt64Atomics );
  54529. # endif
  54530. }
  54531. bool operator!=( PhysicalDeviceShaderImageAtomicInt64FeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  54532. {
  54533. return !operator==( rhs );
  54534. }
  54535. #endif
  54536. public:
  54537. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceShaderImageAtomicInt64FeaturesEXT;
  54538. void * pNext = {};
  54539. VULKAN_HPP_NAMESPACE::Bool32 shaderImageInt64Atomics = {};
  54540. VULKAN_HPP_NAMESPACE::Bool32 sparseImageInt64Atomics = {};
  54541. };
  54542. template <>
  54543. struct CppType<StructureType, StructureType::ePhysicalDeviceShaderImageAtomicInt64FeaturesEXT>
  54544. {
  54545. using Type = PhysicalDeviceShaderImageAtomicInt64FeaturesEXT;
  54546. };
  54547. struct PhysicalDeviceShaderImageFootprintFeaturesNV
  54548. {
  54549. using NativeType = VkPhysicalDeviceShaderImageFootprintFeaturesNV;
  54550. static const bool allowDuplicate = false;
  54551. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceShaderImageFootprintFeaturesNV;
  54552. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  54553. VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderImageFootprintFeaturesNV( VULKAN_HPP_NAMESPACE::Bool32 imageFootprint_ = {},
  54554. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  54555. : pNext( pNext_ )
  54556. , imageFootprint( imageFootprint_ )
  54557. {
  54558. }
  54559. VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderImageFootprintFeaturesNV( PhysicalDeviceShaderImageFootprintFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  54560. PhysicalDeviceShaderImageFootprintFeaturesNV( VkPhysicalDeviceShaderImageFootprintFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT
  54561. : PhysicalDeviceShaderImageFootprintFeaturesNV( *reinterpret_cast<PhysicalDeviceShaderImageFootprintFeaturesNV const *>( &rhs ) )
  54562. {
  54563. }
  54564. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  54565. PhysicalDeviceShaderImageFootprintFeaturesNV & operator=( PhysicalDeviceShaderImageFootprintFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  54566. PhysicalDeviceShaderImageFootprintFeaturesNV & operator=( VkPhysicalDeviceShaderImageFootprintFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT
  54567. {
  54568. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderImageFootprintFeaturesNV const *>( &rhs );
  54569. return *this;
  54570. }
  54571. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  54572. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceShaderImageFootprintFeaturesNV & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
  54573. {
  54574. pNext = pNext_;
  54575. return *this;
  54576. }
  54577. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceShaderImageFootprintFeaturesNV & setImageFootprint( VULKAN_HPP_NAMESPACE::Bool32 imageFootprint_ ) VULKAN_HPP_NOEXCEPT
  54578. {
  54579. imageFootprint = imageFootprint_;
  54580. return *this;
  54581. }
  54582. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  54583. operator VkPhysicalDeviceShaderImageFootprintFeaturesNV const &() const VULKAN_HPP_NOEXCEPT
  54584. {
  54585. return *reinterpret_cast<const VkPhysicalDeviceShaderImageFootprintFeaturesNV *>( this );
  54586. }
  54587. operator VkPhysicalDeviceShaderImageFootprintFeaturesNV &() VULKAN_HPP_NOEXCEPT
  54588. {
  54589. return *reinterpret_cast<VkPhysicalDeviceShaderImageFootprintFeaturesNV *>( this );
  54590. }
  54591. #if defined( VULKAN_HPP_USE_REFLECT )
  54592. # if 14 <= VULKAN_HPP_CPP_VERSION
  54593. auto
  54594. # else
  54595. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
  54596. # endif
  54597. reflect() const VULKAN_HPP_NOEXCEPT
  54598. {
  54599. return std::tie( sType, pNext, imageFootprint );
  54600. }
  54601. #endif
  54602. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  54603. auto operator<=>( PhysicalDeviceShaderImageFootprintFeaturesNV const & ) const = default;
  54604. #else
  54605. bool operator==( PhysicalDeviceShaderImageFootprintFeaturesNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  54606. {
  54607. # if defined( VULKAN_HPP_USE_REFLECT )
  54608. return this->reflect() == rhs.reflect();
  54609. # else
  54610. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( imageFootprint == rhs.imageFootprint );
  54611. # endif
  54612. }
  54613. bool operator!=( PhysicalDeviceShaderImageFootprintFeaturesNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  54614. {
  54615. return !operator==( rhs );
  54616. }
  54617. #endif
  54618. public:
  54619. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceShaderImageFootprintFeaturesNV;
  54620. void * pNext = {};
  54621. VULKAN_HPP_NAMESPACE::Bool32 imageFootprint = {};
  54622. };
  54623. template <>
  54624. struct CppType<StructureType, StructureType::ePhysicalDeviceShaderImageFootprintFeaturesNV>
  54625. {
  54626. using Type = PhysicalDeviceShaderImageFootprintFeaturesNV;
  54627. };
  54628. struct PhysicalDeviceShaderIntegerDotProductFeatures
  54629. {
  54630. using NativeType = VkPhysicalDeviceShaderIntegerDotProductFeatures;
  54631. static const bool allowDuplicate = false;
  54632. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceShaderIntegerDotProductFeatures;
  54633. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  54634. VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderIntegerDotProductFeatures( VULKAN_HPP_NAMESPACE::Bool32 shaderIntegerDotProduct_ = {},
  54635. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  54636. : pNext( pNext_ )
  54637. , shaderIntegerDotProduct( shaderIntegerDotProduct_ )
  54638. {
  54639. }
  54640. VULKAN_HPP_CONSTEXPR
  54641. PhysicalDeviceShaderIntegerDotProductFeatures( PhysicalDeviceShaderIntegerDotProductFeatures const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  54642. PhysicalDeviceShaderIntegerDotProductFeatures( VkPhysicalDeviceShaderIntegerDotProductFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
  54643. : PhysicalDeviceShaderIntegerDotProductFeatures( *reinterpret_cast<PhysicalDeviceShaderIntegerDotProductFeatures const *>( &rhs ) )
  54644. {
  54645. }
  54646. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  54647. PhysicalDeviceShaderIntegerDotProductFeatures & operator=( PhysicalDeviceShaderIntegerDotProductFeatures const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  54648. PhysicalDeviceShaderIntegerDotProductFeatures & operator=( VkPhysicalDeviceShaderIntegerDotProductFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
  54649. {
  54650. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderIntegerDotProductFeatures const *>( &rhs );
  54651. return *this;
  54652. }
  54653. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  54654. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceShaderIntegerDotProductFeatures & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
  54655. {
  54656. pNext = pNext_;
  54657. return *this;
  54658. }
  54659. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceShaderIntegerDotProductFeatures &
  54660. setShaderIntegerDotProduct( VULKAN_HPP_NAMESPACE::Bool32 shaderIntegerDotProduct_ ) VULKAN_HPP_NOEXCEPT
  54661. {
  54662. shaderIntegerDotProduct = shaderIntegerDotProduct_;
  54663. return *this;
  54664. }
  54665. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  54666. operator VkPhysicalDeviceShaderIntegerDotProductFeatures const &() const VULKAN_HPP_NOEXCEPT
  54667. {
  54668. return *reinterpret_cast<const VkPhysicalDeviceShaderIntegerDotProductFeatures *>( this );
  54669. }
  54670. operator VkPhysicalDeviceShaderIntegerDotProductFeatures &() VULKAN_HPP_NOEXCEPT
  54671. {
  54672. return *reinterpret_cast<VkPhysicalDeviceShaderIntegerDotProductFeatures *>( this );
  54673. }
  54674. #if defined( VULKAN_HPP_USE_REFLECT )
  54675. # if 14 <= VULKAN_HPP_CPP_VERSION
  54676. auto
  54677. # else
  54678. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
  54679. # endif
  54680. reflect() const VULKAN_HPP_NOEXCEPT
  54681. {
  54682. return std::tie( sType, pNext, shaderIntegerDotProduct );
  54683. }
  54684. #endif
  54685. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  54686. auto operator<=>( PhysicalDeviceShaderIntegerDotProductFeatures const & ) const = default;
  54687. #else
  54688. bool operator==( PhysicalDeviceShaderIntegerDotProductFeatures const & rhs ) const VULKAN_HPP_NOEXCEPT
  54689. {
  54690. # if defined( VULKAN_HPP_USE_REFLECT )
  54691. return this->reflect() == rhs.reflect();
  54692. # else
  54693. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( shaderIntegerDotProduct == rhs.shaderIntegerDotProduct );
  54694. # endif
  54695. }
  54696. bool operator!=( PhysicalDeviceShaderIntegerDotProductFeatures const & rhs ) const VULKAN_HPP_NOEXCEPT
  54697. {
  54698. return !operator==( rhs );
  54699. }
  54700. #endif
  54701. public:
  54702. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceShaderIntegerDotProductFeatures;
  54703. void * pNext = {};
  54704. VULKAN_HPP_NAMESPACE::Bool32 shaderIntegerDotProduct = {};
  54705. };
  54706. template <>
  54707. struct CppType<StructureType, StructureType::ePhysicalDeviceShaderIntegerDotProductFeatures>
  54708. {
  54709. using Type = PhysicalDeviceShaderIntegerDotProductFeatures;
  54710. };
  54711. using PhysicalDeviceShaderIntegerDotProductFeaturesKHR = PhysicalDeviceShaderIntegerDotProductFeatures;
  54712. struct PhysicalDeviceShaderIntegerDotProductProperties
  54713. {
  54714. using NativeType = VkPhysicalDeviceShaderIntegerDotProductProperties;
  54715. static const bool allowDuplicate = false;
  54716. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceShaderIntegerDotProductProperties;
  54717. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  54718. VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderIntegerDotProductProperties(
  54719. VULKAN_HPP_NAMESPACE::Bool32 integerDotProduct8BitUnsignedAccelerated_ = {},
  54720. VULKAN_HPP_NAMESPACE::Bool32 integerDotProduct8BitSignedAccelerated_ = {},
  54721. VULKAN_HPP_NAMESPACE::Bool32 integerDotProduct8BitMixedSignednessAccelerated_ = {},
  54722. VULKAN_HPP_NAMESPACE::Bool32 integerDotProduct4x8BitPackedUnsignedAccelerated_ = {},
  54723. VULKAN_HPP_NAMESPACE::Bool32 integerDotProduct4x8BitPackedSignedAccelerated_ = {},
  54724. VULKAN_HPP_NAMESPACE::Bool32 integerDotProduct4x8BitPackedMixedSignednessAccelerated_ = {},
  54725. VULKAN_HPP_NAMESPACE::Bool32 integerDotProduct16BitUnsignedAccelerated_ = {},
  54726. VULKAN_HPP_NAMESPACE::Bool32 integerDotProduct16BitSignedAccelerated_ = {},
  54727. VULKAN_HPP_NAMESPACE::Bool32 integerDotProduct16BitMixedSignednessAccelerated_ = {},
  54728. VULKAN_HPP_NAMESPACE::Bool32 integerDotProduct32BitUnsignedAccelerated_ = {},
  54729. VULKAN_HPP_NAMESPACE::Bool32 integerDotProduct32BitSignedAccelerated_ = {},
  54730. VULKAN_HPP_NAMESPACE::Bool32 integerDotProduct32BitMixedSignednessAccelerated_ = {},
  54731. VULKAN_HPP_NAMESPACE::Bool32 integerDotProduct64BitUnsignedAccelerated_ = {},
  54732. VULKAN_HPP_NAMESPACE::Bool32 integerDotProduct64BitSignedAccelerated_ = {},
  54733. VULKAN_HPP_NAMESPACE::Bool32 integerDotProduct64BitMixedSignednessAccelerated_ = {},
  54734. VULKAN_HPP_NAMESPACE::Bool32 integerDotProductAccumulatingSaturating8BitUnsignedAccelerated_ = {},
  54735. VULKAN_HPP_NAMESPACE::Bool32 integerDotProductAccumulatingSaturating8BitSignedAccelerated_ = {},
  54736. VULKAN_HPP_NAMESPACE::Bool32 integerDotProductAccumulatingSaturating8BitMixedSignednessAccelerated_ = {},
  54737. VULKAN_HPP_NAMESPACE::Bool32 integerDotProductAccumulatingSaturating4x8BitPackedUnsignedAccelerated_ = {},
  54738. VULKAN_HPP_NAMESPACE::Bool32 integerDotProductAccumulatingSaturating4x8BitPackedSignedAccelerated_ = {},
  54739. VULKAN_HPP_NAMESPACE::Bool32 integerDotProductAccumulatingSaturating4x8BitPackedMixedSignednessAccelerated_ = {},
  54740. VULKAN_HPP_NAMESPACE::Bool32 integerDotProductAccumulatingSaturating16BitUnsignedAccelerated_ = {},
  54741. VULKAN_HPP_NAMESPACE::Bool32 integerDotProductAccumulatingSaturating16BitSignedAccelerated_ = {},
  54742. VULKAN_HPP_NAMESPACE::Bool32 integerDotProductAccumulatingSaturating16BitMixedSignednessAccelerated_ = {},
  54743. VULKAN_HPP_NAMESPACE::Bool32 integerDotProductAccumulatingSaturating32BitUnsignedAccelerated_ = {},
  54744. VULKAN_HPP_NAMESPACE::Bool32 integerDotProductAccumulatingSaturating32BitSignedAccelerated_ = {},
  54745. VULKAN_HPP_NAMESPACE::Bool32 integerDotProductAccumulatingSaturating32BitMixedSignednessAccelerated_ = {},
  54746. VULKAN_HPP_NAMESPACE::Bool32 integerDotProductAccumulatingSaturating64BitUnsignedAccelerated_ = {},
  54747. VULKAN_HPP_NAMESPACE::Bool32 integerDotProductAccumulatingSaturating64BitSignedAccelerated_ = {},
  54748. VULKAN_HPP_NAMESPACE::Bool32 integerDotProductAccumulatingSaturating64BitMixedSignednessAccelerated_ = {},
  54749. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  54750. : pNext( pNext_ )
  54751. , integerDotProduct8BitUnsignedAccelerated( integerDotProduct8BitUnsignedAccelerated_ )
  54752. , integerDotProduct8BitSignedAccelerated( integerDotProduct8BitSignedAccelerated_ )
  54753. , integerDotProduct8BitMixedSignednessAccelerated( integerDotProduct8BitMixedSignednessAccelerated_ )
  54754. , integerDotProduct4x8BitPackedUnsignedAccelerated( integerDotProduct4x8BitPackedUnsignedAccelerated_ )
  54755. , integerDotProduct4x8BitPackedSignedAccelerated( integerDotProduct4x8BitPackedSignedAccelerated_ )
  54756. , integerDotProduct4x8BitPackedMixedSignednessAccelerated( integerDotProduct4x8BitPackedMixedSignednessAccelerated_ )
  54757. , integerDotProduct16BitUnsignedAccelerated( integerDotProduct16BitUnsignedAccelerated_ )
  54758. , integerDotProduct16BitSignedAccelerated( integerDotProduct16BitSignedAccelerated_ )
  54759. , integerDotProduct16BitMixedSignednessAccelerated( integerDotProduct16BitMixedSignednessAccelerated_ )
  54760. , integerDotProduct32BitUnsignedAccelerated( integerDotProduct32BitUnsignedAccelerated_ )
  54761. , integerDotProduct32BitSignedAccelerated( integerDotProduct32BitSignedAccelerated_ )
  54762. , integerDotProduct32BitMixedSignednessAccelerated( integerDotProduct32BitMixedSignednessAccelerated_ )
  54763. , integerDotProduct64BitUnsignedAccelerated( integerDotProduct64BitUnsignedAccelerated_ )
  54764. , integerDotProduct64BitSignedAccelerated( integerDotProduct64BitSignedAccelerated_ )
  54765. , integerDotProduct64BitMixedSignednessAccelerated( integerDotProduct64BitMixedSignednessAccelerated_ )
  54766. , integerDotProductAccumulatingSaturating8BitUnsignedAccelerated( integerDotProductAccumulatingSaturating8BitUnsignedAccelerated_ )
  54767. , integerDotProductAccumulatingSaturating8BitSignedAccelerated( integerDotProductAccumulatingSaturating8BitSignedAccelerated_ )
  54768. , integerDotProductAccumulatingSaturating8BitMixedSignednessAccelerated( integerDotProductAccumulatingSaturating8BitMixedSignednessAccelerated_ )
  54769. , integerDotProductAccumulatingSaturating4x8BitPackedUnsignedAccelerated( integerDotProductAccumulatingSaturating4x8BitPackedUnsignedAccelerated_ )
  54770. , integerDotProductAccumulatingSaturating4x8BitPackedSignedAccelerated( integerDotProductAccumulatingSaturating4x8BitPackedSignedAccelerated_ )
  54771. , integerDotProductAccumulatingSaturating4x8BitPackedMixedSignednessAccelerated(
  54772. integerDotProductAccumulatingSaturating4x8BitPackedMixedSignednessAccelerated_ )
  54773. , integerDotProductAccumulatingSaturating16BitUnsignedAccelerated( integerDotProductAccumulatingSaturating16BitUnsignedAccelerated_ )
  54774. , integerDotProductAccumulatingSaturating16BitSignedAccelerated( integerDotProductAccumulatingSaturating16BitSignedAccelerated_ )
  54775. , integerDotProductAccumulatingSaturating16BitMixedSignednessAccelerated( integerDotProductAccumulatingSaturating16BitMixedSignednessAccelerated_ )
  54776. , integerDotProductAccumulatingSaturating32BitUnsignedAccelerated( integerDotProductAccumulatingSaturating32BitUnsignedAccelerated_ )
  54777. , integerDotProductAccumulatingSaturating32BitSignedAccelerated( integerDotProductAccumulatingSaturating32BitSignedAccelerated_ )
  54778. , integerDotProductAccumulatingSaturating32BitMixedSignednessAccelerated( integerDotProductAccumulatingSaturating32BitMixedSignednessAccelerated_ )
  54779. , integerDotProductAccumulatingSaturating64BitUnsignedAccelerated( integerDotProductAccumulatingSaturating64BitUnsignedAccelerated_ )
  54780. , integerDotProductAccumulatingSaturating64BitSignedAccelerated( integerDotProductAccumulatingSaturating64BitSignedAccelerated_ )
  54781. , integerDotProductAccumulatingSaturating64BitMixedSignednessAccelerated( integerDotProductAccumulatingSaturating64BitMixedSignednessAccelerated_ )
  54782. {
  54783. }
  54784. VULKAN_HPP_CONSTEXPR
  54785. PhysicalDeviceShaderIntegerDotProductProperties( PhysicalDeviceShaderIntegerDotProductProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  54786. PhysicalDeviceShaderIntegerDotProductProperties( VkPhysicalDeviceShaderIntegerDotProductProperties const & rhs ) VULKAN_HPP_NOEXCEPT
  54787. : PhysicalDeviceShaderIntegerDotProductProperties( *reinterpret_cast<PhysicalDeviceShaderIntegerDotProductProperties const *>( &rhs ) )
  54788. {
  54789. }
  54790. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  54791. PhysicalDeviceShaderIntegerDotProductProperties & operator=( PhysicalDeviceShaderIntegerDotProductProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  54792. PhysicalDeviceShaderIntegerDotProductProperties & operator=( VkPhysicalDeviceShaderIntegerDotProductProperties const & rhs ) VULKAN_HPP_NOEXCEPT
  54793. {
  54794. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderIntegerDotProductProperties const *>( &rhs );
  54795. return *this;
  54796. }
  54797. operator VkPhysicalDeviceShaderIntegerDotProductProperties const &() const VULKAN_HPP_NOEXCEPT
  54798. {
  54799. return *reinterpret_cast<const VkPhysicalDeviceShaderIntegerDotProductProperties *>( this );
  54800. }
  54801. operator VkPhysicalDeviceShaderIntegerDotProductProperties &() VULKAN_HPP_NOEXCEPT
  54802. {
  54803. return *reinterpret_cast<VkPhysicalDeviceShaderIntegerDotProductProperties *>( this );
  54804. }
  54805. #if defined( VULKAN_HPP_USE_REFLECT )
  54806. # if 14 <= VULKAN_HPP_CPP_VERSION
  54807. auto
  54808. # else
  54809. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  54810. void * const &,
  54811. VULKAN_HPP_NAMESPACE::Bool32 const &,
  54812. VULKAN_HPP_NAMESPACE::Bool32 const &,
  54813. VULKAN_HPP_NAMESPACE::Bool32 const &,
  54814. VULKAN_HPP_NAMESPACE::Bool32 const &,
  54815. VULKAN_HPP_NAMESPACE::Bool32 const &,
  54816. VULKAN_HPP_NAMESPACE::Bool32 const &,
  54817. VULKAN_HPP_NAMESPACE::Bool32 const &,
  54818. VULKAN_HPP_NAMESPACE::Bool32 const &,
  54819. VULKAN_HPP_NAMESPACE::Bool32 const &,
  54820. VULKAN_HPP_NAMESPACE::Bool32 const &,
  54821. VULKAN_HPP_NAMESPACE::Bool32 const &,
  54822. VULKAN_HPP_NAMESPACE::Bool32 const &,
  54823. VULKAN_HPP_NAMESPACE::Bool32 const &,
  54824. VULKAN_HPP_NAMESPACE::Bool32 const &,
  54825. VULKAN_HPP_NAMESPACE::Bool32 const &,
  54826. VULKAN_HPP_NAMESPACE::Bool32 const &,
  54827. VULKAN_HPP_NAMESPACE::Bool32 const &,
  54828. VULKAN_HPP_NAMESPACE::Bool32 const &,
  54829. VULKAN_HPP_NAMESPACE::Bool32 const &,
  54830. VULKAN_HPP_NAMESPACE::Bool32 const &,
  54831. VULKAN_HPP_NAMESPACE::Bool32 const &,
  54832. VULKAN_HPP_NAMESPACE::Bool32 const &,
  54833. VULKAN_HPP_NAMESPACE::Bool32 const &,
  54834. VULKAN_HPP_NAMESPACE::Bool32 const &,
  54835. VULKAN_HPP_NAMESPACE::Bool32 const &,
  54836. VULKAN_HPP_NAMESPACE::Bool32 const &,
  54837. VULKAN_HPP_NAMESPACE::Bool32 const &,
  54838. VULKAN_HPP_NAMESPACE::Bool32 const &,
  54839. VULKAN_HPP_NAMESPACE::Bool32 const &,
  54840. VULKAN_HPP_NAMESPACE::Bool32 const &>
  54841. # endif
  54842. reflect() const VULKAN_HPP_NOEXCEPT
  54843. {
  54844. return std::tie( sType,
  54845. pNext,
  54846. integerDotProduct8BitUnsignedAccelerated,
  54847. integerDotProduct8BitSignedAccelerated,
  54848. integerDotProduct8BitMixedSignednessAccelerated,
  54849. integerDotProduct4x8BitPackedUnsignedAccelerated,
  54850. integerDotProduct4x8BitPackedSignedAccelerated,
  54851. integerDotProduct4x8BitPackedMixedSignednessAccelerated,
  54852. integerDotProduct16BitUnsignedAccelerated,
  54853. integerDotProduct16BitSignedAccelerated,
  54854. integerDotProduct16BitMixedSignednessAccelerated,
  54855. integerDotProduct32BitUnsignedAccelerated,
  54856. integerDotProduct32BitSignedAccelerated,
  54857. integerDotProduct32BitMixedSignednessAccelerated,
  54858. integerDotProduct64BitUnsignedAccelerated,
  54859. integerDotProduct64BitSignedAccelerated,
  54860. integerDotProduct64BitMixedSignednessAccelerated,
  54861. integerDotProductAccumulatingSaturating8BitUnsignedAccelerated,
  54862. integerDotProductAccumulatingSaturating8BitSignedAccelerated,
  54863. integerDotProductAccumulatingSaturating8BitMixedSignednessAccelerated,
  54864. integerDotProductAccumulatingSaturating4x8BitPackedUnsignedAccelerated,
  54865. integerDotProductAccumulatingSaturating4x8BitPackedSignedAccelerated,
  54866. integerDotProductAccumulatingSaturating4x8BitPackedMixedSignednessAccelerated,
  54867. integerDotProductAccumulatingSaturating16BitUnsignedAccelerated,
  54868. integerDotProductAccumulatingSaturating16BitSignedAccelerated,
  54869. integerDotProductAccumulatingSaturating16BitMixedSignednessAccelerated,
  54870. integerDotProductAccumulatingSaturating32BitUnsignedAccelerated,
  54871. integerDotProductAccumulatingSaturating32BitSignedAccelerated,
  54872. integerDotProductAccumulatingSaturating32BitMixedSignednessAccelerated,
  54873. integerDotProductAccumulatingSaturating64BitUnsignedAccelerated,
  54874. integerDotProductAccumulatingSaturating64BitSignedAccelerated,
  54875. integerDotProductAccumulatingSaturating64BitMixedSignednessAccelerated );
  54876. }
  54877. #endif
  54878. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  54879. auto operator<=>( PhysicalDeviceShaderIntegerDotProductProperties const & ) const = default;
  54880. #else
  54881. bool operator==( PhysicalDeviceShaderIntegerDotProductProperties const & rhs ) const VULKAN_HPP_NOEXCEPT
  54882. {
  54883. # if defined( VULKAN_HPP_USE_REFLECT )
  54884. return this->reflect() == rhs.reflect();
  54885. # else
  54886. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( integerDotProduct8BitUnsignedAccelerated == rhs.integerDotProduct8BitUnsignedAccelerated ) &&
  54887. ( integerDotProduct8BitSignedAccelerated == rhs.integerDotProduct8BitSignedAccelerated ) &&
  54888. ( integerDotProduct8BitMixedSignednessAccelerated == rhs.integerDotProduct8BitMixedSignednessAccelerated ) &&
  54889. ( integerDotProduct4x8BitPackedUnsignedAccelerated == rhs.integerDotProduct4x8BitPackedUnsignedAccelerated ) &&
  54890. ( integerDotProduct4x8BitPackedSignedAccelerated == rhs.integerDotProduct4x8BitPackedSignedAccelerated ) &&
  54891. ( integerDotProduct4x8BitPackedMixedSignednessAccelerated == rhs.integerDotProduct4x8BitPackedMixedSignednessAccelerated ) &&
  54892. ( integerDotProduct16BitUnsignedAccelerated == rhs.integerDotProduct16BitUnsignedAccelerated ) &&
  54893. ( integerDotProduct16BitSignedAccelerated == rhs.integerDotProduct16BitSignedAccelerated ) &&
  54894. ( integerDotProduct16BitMixedSignednessAccelerated == rhs.integerDotProduct16BitMixedSignednessAccelerated ) &&
  54895. ( integerDotProduct32BitUnsignedAccelerated == rhs.integerDotProduct32BitUnsignedAccelerated ) &&
  54896. ( integerDotProduct32BitSignedAccelerated == rhs.integerDotProduct32BitSignedAccelerated ) &&
  54897. ( integerDotProduct32BitMixedSignednessAccelerated == rhs.integerDotProduct32BitMixedSignednessAccelerated ) &&
  54898. ( integerDotProduct64BitUnsignedAccelerated == rhs.integerDotProduct64BitUnsignedAccelerated ) &&
  54899. ( integerDotProduct64BitSignedAccelerated == rhs.integerDotProduct64BitSignedAccelerated ) &&
  54900. ( integerDotProduct64BitMixedSignednessAccelerated == rhs.integerDotProduct64BitMixedSignednessAccelerated ) &&
  54901. ( integerDotProductAccumulatingSaturating8BitUnsignedAccelerated == rhs.integerDotProductAccumulatingSaturating8BitUnsignedAccelerated ) &&
  54902. ( integerDotProductAccumulatingSaturating8BitSignedAccelerated == rhs.integerDotProductAccumulatingSaturating8BitSignedAccelerated ) &&
  54903. ( integerDotProductAccumulatingSaturating8BitMixedSignednessAccelerated ==
  54904. rhs.integerDotProductAccumulatingSaturating8BitMixedSignednessAccelerated ) &&
  54905. ( integerDotProductAccumulatingSaturating4x8BitPackedUnsignedAccelerated ==
  54906. rhs.integerDotProductAccumulatingSaturating4x8BitPackedUnsignedAccelerated ) &&
  54907. ( integerDotProductAccumulatingSaturating4x8BitPackedSignedAccelerated ==
  54908. rhs.integerDotProductAccumulatingSaturating4x8BitPackedSignedAccelerated ) &&
  54909. ( integerDotProductAccumulatingSaturating4x8BitPackedMixedSignednessAccelerated ==
  54910. rhs.integerDotProductAccumulatingSaturating4x8BitPackedMixedSignednessAccelerated ) &&
  54911. ( integerDotProductAccumulatingSaturating16BitUnsignedAccelerated == rhs.integerDotProductAccumulatingSaturating16BitUnsignedAccelerated ) &&
  54912. ( integerDotProductAccumulatingSaturating16BitSignedAccelerated == rhs.integerDotProductAccumulatingSaturating16BitSignedAccelerated ) &&
  54913. ( integerDotProductAccumulatingSaturating16BitMixedSignednessAccelerated ==
  54914. rhs.integerDotProductAccumulatingSaturating16BitMixedSignednessAccelerated ) &&
  54915. ( integerDotProductAccumulatingSaturating32BitUnsignedAccelerated == rhs.integerDotProductAccumulatingSaturating32BitUnsignedAccelerated ) &&
  54916. ( integerDotProductAccumulatingSaturating32BitSignedAccelerated == rhs.integerDotProductAccumulatingSaturating32BitSignedAccelerated ) &&
  54917. ( integerDotProductAccumulatingSaturating32BitMixedSignednessAccelerated ==
  54918. rhs.integerDotProductAccumulatingSaturating32BitMixedSignednessAccelerated ) &&
  54919. ( integerDotProductAccumulatingSaturating64BitUnsignedAccelerated == rhs.integerDotProductAccumulatingSaturating64BitUnsignedAccelerated ) &&
  54920. ( integerDotProductAccumulatingSaturating64BitSignedAccelerated == rhs.integerDotProductAccumulatingSaturating64BitSignedAccelerated ) &&
  54921. ( integerDotProductAccumulatingSaturating64BitMixedSignednessAccelerated ==
  54922. rhs.integerDotProductAccumulatingSaturating64BitMixedSignednessAccelerated );
  54923. # endif
  54924. }
  54925. bool operator!=( PhysicalDeviceShaderIntegerDotProductProperties const & rhs ) const VULKAN_HPP_NOEXCEPT
  54926. {
  54927. return !operator==( rhs );
  54928. }
  54929. #endif
  54930. public:
  54931. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceShaderIntegerDotProductProperties;
  54932. void * pNext = {};
  54933. VULKAN_HPP_NAMESPACE::Bool32 integerDotProduct8BitUnsignedAccelerated = {};
  54934. VULKAN_HPP_NAMESPACE::Bool32 integerDotProduct8BitSignedAccelerated = {};
  54935. VULKAN_HPP_NAMESPACE::Bool32 integerDotProduct8BitMixedSignednessAccelerated = {};
  54936. VULKAN_HPP_NAMESPACE::Bool32 integerDotProduct4x8BitPackedUnsignedAccelerated = {};
  54937. VULKAN_HPP_NAMESPACE::Bool32 integerDotProduct4x8BitPackedSignedAccelerated = {};
  54938. VULKAN_HPP_NAMESPACE::Bool32 integerDotProduct4x8BitPackedMixedSignednessAccelerated = {};
  54939. VULKAN_HPP_NAMESPACE::Bool32 integerDotProduct16BitUnsignedAccelerated = {};
  54940. VULKAN_HPP_NAMESPACE::Bool32 integerDotProduct16BitSignedAccelerated = {};
  54941. VULKAN_HPP_NAMESPACE::Bool32 integerDotProduct16BitMixedSignednessAccelerated = {};
  54942. VULKAN_HPP_NAMESPACE::Bool32 integerDotProduct32BitUnsignedAccelerated = {};
  54943. VULKAN_HPP_NAMESPACE::Bool32 integerDotProduct32BitSignedAccelerated = {};
  54944. VULKAN_HPP_NAMESPACE::Bool32 integerDotProduct32BitMixedSignednessAccelerated = {};
  54945. VULKAN_HPP_NAMESPACE::Bool32 integerDotProduct64BitUnsignedAccelerated = {};
  54946. VULKAN_HPP_NAMESPACE::Bool32 integerDotProduct64BitSignedAccelerated = {};
  54947. VULKAN_HPP_NAMESPACE::Bool32 integerDotProduct64BitMixedSignednessAccelerated = {};
  54948. VULKAN_HPP_NAMESPACE::Bool32 integerDotProductAccumulatingSaturating8BitUnsignedAccelerated = {};
  54949. VULKAN_HPP_NAMESPACE::Bool32 integerDotProductAccumulatingSaturating8BitSignedAccelerated = {};
  54950. VULKAN_HPP_NAMESPACE::Bool32 integerDotProductAccumulatingSaturating8BitMixedSignednessAccelerated = {};
  54951. VULKAN_HPP_NAMESPACE::Bool32 integerDotProductAccumulatingSaturating4x8BitPackedUnsignedAccelerated = {};
  54952. VULKAN_HPP_NAMESPACE::Bool32 integerDotProductAccumulatingSaturating4x8BitPackedSignedAccelerated = {};
  54953. VULKAN_HPP_NAMESPACE::Bool32 integerDotProductAccumulatingSaturating4x8BitPackedMixedSignednessAccelerated = {};
  54954. VULKAN_HPP_NAMESPACE::Bool32 integerDotProductAccumulatingSaturating16BitUnsignedAccelerated = {};
  54955. VULKAN_HPP_NAMESPACE::Bool32 integerDotProductAccumulatingSaturating16BitSignedAccelerated = {};
  54956. VULKAN_HPP_NAMESPACE::Bool32 integerDotProductAccumulatingSaturating16BitMixedSignednessAccelerated = {};
  54957. VULKAN_HPP_NAMESPACE::Bool32 integerDotProductAccumulatingSaturating32BitUnsignedAccelerated = {};
  54958. VULKAN_HPP_NAMESPACE::Bool32 integerDotProductAccumulatingSaturating32BitSignedAccelerated = {};
  54959. VULKAN_HPP_NAMESPACE::Bool32 integerDotProductAccumulatingSaturating32BitMixedSignednessAccelerated = {};
  54960. VULKAN_HPP_NAMESPACE::Bool32 integerDotProductAccumulatingSaturating64BitUnsignedAccelerated = {};
  54961. VULKAN_HPP_NAMESPACE::Bool32 integerDotProductAccumulatingSaturating64BitSignedAccelerated = {};
  54962. VULKAN_HPP_NAMESPACE::Bool32 integerDotProductAccumulatingSaturating64BitMixedSignednessAccelerated = {};
  54963. };
  54964. template <>
  54965. struct CppType<StructureType, StructureType::ePhysicalDeviceShaderIntegerDotProductProperties>
  54966. {
  54967. using Type = PhysicalDeviceShaderIntegerDotProductProperties;
  54968. };
  54969. using PhysicalDeviceShaderIntegerDotProductPropertiesKHR = PhysicalDeviceShaderIntegerDotProductProperties;
  54970. struct PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL
  54971. {
  54972. using NativeType = VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL;
  54973. static const bool allowDuplicate = false;
  54974. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceShaderIntegerFunctions2FeaturesINTEL;
  54975. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  54976. VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL( VULKAN_HPP_NAMESPACE::Bool32 shaderIntegerFunctions2_ = {},
  54977. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  54978. : pNext( pNext_ )
  54979. , shaderIntegerFunctions2( shaderIntegerFunctions2_ )
  54980. {
  54981. }
  54982. VULKAN_HPP_CONSTEXPR
  54983. PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL( PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  54984. PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL( VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL const & rhs ) VULKAN_HPP_NOEXCEPT
  54985. : PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL( *reinterpret_cast<PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL const *>( &rhs ) )
  54986. {
  54987. }
  54988. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  54989. PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL &
  54990. operator=( PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  54991. PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL & operator=( VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL const & rhs ) VULKAN_HPP_NOEXCEPT
  54992. {
  54993. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL const *>( &rhs );
  54994. return *this;
  54995. }
  54996. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  54997. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
  54998. {
  54999. pNext = pNext_;
  55000. return *this;
  55001. }
  55002. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL &
  55003. setShaderIntegerFunctions2( VULKAN_HPP_NAMESPACE::Bool32 shaderIntegerFunctions2_ ) VULKAN_HPP_NOEXCEPT
  55004. {
  55005. shaderIntegerFunctions2 = shaderIntegerFunctions2_;
  55006. return *this;
  55007. }
  55008. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  55009. operator VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL const &() const VULKAN_HPP_NOEXCEPT
  55010. {
  55011. return *reinterpret_cast<const VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL *>( this );
  55012. }
  55013. operator VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL &() VULKAN_HPP_NOEXCEPT
  55014. {
  55015. return *reinterpret_cast<VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL *>( this );
  55016. }
  55017. #if defined( VULKAN_HPP_USE_REFLECT )
  55018. # if 14 <= VULKAN_HPP_CPP_VERSION
  55019. auto
  55020. # else
  55021. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
  55022. # endif
  55023. reflect() const VULKAN_HPP_NOEXCEPT
  55024. {
  55025. return std::tie( sType, pNext, shaderIntegerFunctions2 );
  55026. }
  55027. #endif
  55028. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  55029. auto operator<=>( PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL const & ) const = default;
  55030. #else
  55031. bool operator==( PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL const & rhs ) const VULKAN_HPP_NOEXCEPT
  55032. {
  55033. # if defined( VULKAN_HPP_USE_REFLECT )
  55034. return this->reflect() == rhs.reflect();
  55035. # else
  55036. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( shaderIntegerFunctions2 == rhs.shaderIntegerFunctions2 );
  55037. # endif
  55038. }
  55039. bool operator!=( PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL const & rhs ) const VULKAN_HPP_NOEXCEPT
  55040. {
  55041. return !operator==( rhs );
  55042. }
  55043. #endif
  55044. public:
  55045. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceShaderIntegerFunctions2FeaturesINTEL;
  55046. void * pNext = {};
  55047. VULKAN_HPP_NAMESPACE::Bool32 shaderIntegerFunctions2 = {};
  55048. };
  55049. template <>
  55050. struct CppType<StructureType, StructureType::ePhysicalDeviceShaderIntegerFunctions2FeaturesINTEL>
  55051. {
  55052. using Type = PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL;
  55053. };
  55054. struct PhysicalDeviceShaderModuleIdentifierFeaturesEXT
  55055. {
  55056. using NativeType = VkPhysicalDeviceShaderModuleIdentifierFeaturesEXT;
  55057. static const bool allowDuplicate = false;
  55058. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceShaderModuleIdentifierFeaturesEXT;
  55059. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  55060. VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderModuleIdentifierFeaturesEXT( VULKAN_HPP_NAMESPACE::Bool32 shaderModuleIdentifier_ = {},
  55061. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  55062. : pNext( pNext_ )
  55063. , shaderModuleIdentifier( shaderModuleIdentifier_ )
  55064. {
  55065. }
  55066. VULKAN_HPP_CONSTEXPR
  55067. PhysicalDeviceShaderModuleIdentifierFeaturesEXT( PhysicalDeviceShaderModuleIdentifierFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  55068. PhysicalDeviceShaderModuleIdentifierFeaturesEXT( VkPhysicalDeviceShaderModuleIdentifierFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  55069. : PhysicalDeviceShaderModuleIdentifierFeaturesEXT( *reinterpret_cast<PhysicalDeviceShaderModuleIdentifierFeaturesEXT const *>( &rhs ) )
  55070. {
  55071. }
  55072. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  55073. PhysicalDeviceShaderModuleIdentifierFeaturesEXT & operator=( PhysicalDeviceShaderModuleIdentifierFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  55074. PhysicalDeviceShaderModuleIdentifierFeaturesEXT & operator=( VkPhysicalDeviceShaderModuleIdentifierFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  55075. {
  55076. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderModuleIdentifierFeaturesEXT const *>( &rhs );
  55077. return *this;
  55078. }
  55079. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  55080. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceShaderModuleIdentifierFeaturesEXT & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
  55081. {
  55082. pNext = pNext_;
  55083. return *this;
  55084. }
  55085. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceShaderModuleIdentifierFeaturesEXT &
  55086. setShaderModuleIdentifier( VULKAN_HPP_NAMESPACE::Bool32 shaderModuleIdentifier_ ) VULKAN_HPP_NOEXCEPT
  55087. {
  55088. shaderModuleIdentifier = shaderModuleIdentifier_;
  55089. return *this;
  55090. }
  55091. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  55092. operator VkPhysicalDeviceShaderModuleIdentifierFeaturesEXT const &() const VULKAN_HPP_NOEXCEPT
  55093. {
  55094. return *reinterpret_cast<const VkPhysicalDeviceShaderModuleIdentifierFeaturesEXT *>( this );
  55095. }
  55096. operator VkPhysicalDeviceShaderModuleIdentifierFeaturesEXT &() VULKAN_HPP_NOEXCEPT
  55097. {
  55098. return *reinterpret_cast<VkPhysicalDeviceShaderModuleIdentifierFeaturesEXT *>( this );
  55099. }
  55100. #if defined( VULKAN_HPP_USE_REFLECT )
  55101. # if 14 <= VULKAN_HPP_CPP_VERSION
  55102. auto
  55103. # else
  55104. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
  55105. # endif
  55106. reflect() const VULKAN_HPP_NOEXCEPT
  55107. {
  55108. return std::tie( sType, pNext, shaderModuleIdentifier );
  55109. }
  55110. #endif
  55111. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  55112. auto operator<=>( PhysicalDeviceShaderModuleIdentifierFeaturesEXT const & ) const = default;
  55113. #else
  55114. bool operator==( PhysicalDeviceShaderModuleIdentifierFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  55115. {
  55116. # if defined( VULKAN_HPP_USE_REFLECT )
  55117. return this->reflect() == rhs.reflect();
  55118. # else
  55119. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( shaderModuleIdentifier == rhs.shaderModuleIdentifier );
  55120. # endif
  55121. }
  55122. bool operator!=( PhysicalDeviceShaderModuleIdentifierFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  55123. {
  55124. return !operator==( rhs );
  55125. }
  55126. #endif
  55127. public:
  55128. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceShaderModuleIdentifierFeaturesEXT;
  55129. void * pNext = {};
  55130. VULKAN_HPP_NAMESPACE::Bool32 shaderModuleIdentifier = {};
  55131. };
  55132. template <>
  55133. struct CppType<StructureType, StructureType::ePhysicalDeviceShaderModuleIdentifierFeaturesEXT>
  55134. {
  55135. using Type = PhysicalDeviceShaderModuleIdentifierFeaturesEXT;
  55136. };
  55137. struct PhysicalDeviceShaderModuleIdentifierPropertiesEXT
  55138. {
  55139. using NativeType = VkPhysicalDeviceShaderModuleIdentifierPropertiesEXT;
  55140. static const bool allowDuplicate = false;
  55141. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceShaderModuleIdentifierPropertiesEXT;
  55142. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  55143. VULKAN_HPP_CONSTEXPR_14
  55144. PhysicalDeviceShaderModuleIdentifierPropertiesEXT( std::array<uint8_t, VK_UUID_SIZE> const & shaderModuleIdentifierAlgorithmUUID_ = {},
  55145. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  55146. : pNext( pNext_ )
  55147. , shaderModuleIdentifierAlgorithmUUID( shaderModuleIdentifierAlgorithmUUID_ )
  55148. {
  55149. }
  55150. VULKAN_HPP_CONSTEXPR_14
  55151. PhysicalDeviceShaderModuleIdentifierPropertiesEXT( PhysicalDeviceShaderModuleIdentifierPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  55152. PhysicalDeviceShaderModuleIdentifierPropertiesEXT( VkPhysicalDeviceShaderModuleIdentifierPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  55153. : PhysicalDeviceShaderModuleIdentifierPropertiesEXT( *reinterpret_cast<PhysicalDeviceShaderModuleIdentifierPropertiesEXT const *>( &rhs ) )
  55154. {
  55155. }
  55156. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  55157. PhysicalDeviceShaderModuleIdentifierPropertiesEXT &
  55158. operator=( PhysicalDeviceShaderModuleIdentifierPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  55159. PhysicalDeviceShaderModuleIdentifierPropertiesEXT & operator=( VkPhysicalDeviceShaderModuleIdentifierPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  55160. {
  55161. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderModuleIdentifierPropertiesEXT const *>( &rhs );
  55162. return *this;
  55163. }
  55164. operator VkPhysicalDeviceShaderModuleIdentifierPropertiesEXT const &() const VULKAN_HPP_NOEXCEPT
  55165. {
  55166. return *reinterpret_cast<const VkPhysicalDeviceShaderModuleIdentifierPropertiesEXT *>( this );
  55167. }
  55168. operator VkPhysicalDeviceShaderModuleIdentifierPropertiesEXT &() VULKAN_HPP_NOEXCEPT
  55169. {
  55170. return *reinterpret_cast<VkPhysicalDeviceShaderModuleIdentifierPropertiesEXT *>( this );
  55171. }
  55172. #if defined( VULKAN_HPP_USE_REFLECT )
  55173. # if 14 <= VULKAN_HPP_CPP_VERSION
  55174. auto
  55175. # else
  55176. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::ArrayWrapper1D<uint8_t, VK_UUID_SIZE> const &>
  55177. # endif
  55178. reflect() const VULKAN_HPP_NOEXCEPT
  55179. {
  55180. return std::tie( sType, pNext, shaderModuleIdentifierAlgorithmUUID );
  55181. }
  55182. #endif
  55183. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  55184. auto operator<=>( PhysicalDeviceShaderModuleIdentifierPropertiesEXT const & ) const = default;
  55185. #else
  55186. bool operator==( PhysicalDeviceShaderModuleIdentifierPropertiesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  55187. {
  55188. # if defined( VULKAN_HPP_USE_REFLECT )
  55189. return this->reflect() == rhs.reflect();
  55190. # else
  55191. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( shaderModuleIdentifierAlgorithmUUID == rhs.shaderModuleIdentifierAlgorithmUUID );
  55192. # endif
  55193. }
  55194. bool operator!=( PhysicalDeviceShaderModuleIdentifierPropertiesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  55195. {
  55196. return !operator==( rhs );
  55197. }
  55198. #endif
  55199. public:
  55200. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceShaderModuleIdentifierPropertiesEXT;
  55201. void * pNext = {};
  55202. VULKAN_HPP_NAMESPACE::ArrayWrapper1D<uint8_t, VK_UUID_SIZE> shaderModuleIdentifierAlgorithmUUID = {};
  55203. };
  55204. template <>
  55205. struct CppType<StructureType, StructureType::ePhysicalDeviceShaderModuleIdentifierPropertiesEXT>
  55206. {
  55207. using Type = PhysicalDeviceShaderModuleIdentifierPropertiesEXT;
  55208. };
  55209. struct PhysicalDeviceShaderSMBuiltinsFeaturesNV
  55210. {
  55211. using NativeType = VkPhysicalDeviceShaderSMBuiltinsFeaturesNV;
  55212. static const bool allowDuplicate = false;
  55213. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceShaderSmBuiltinsFeaturesNV;
  55214. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  55215. VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderSMBuiltinsFeaturesNV( VULKAN_HPP_NAMESPACE::Bool32 shaderSMBuiltins_ = {},
  55216. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  55217. : pNext( pNext_ )
  55218. , shaderSMBuiltins( shaderSMBuiltins_ )
  55219. {
  55220. }
  55221. VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderSMBuiltinsFeaturesNV( PhysicalDeviceShaderSMBuiltinsFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  55222. PhysicalDeviceShaderSMBuiltinsFeaturesNV( VkPhysicalDeviceShaderSMBuiltinsFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT
  55223. : PhysicalDeviceShaderSMBuiltinsFeaturesNV( *reinterpret_cast<PhysicalDeviceShaderSMBuiltinsFeaturesNV const *>( &rhs ) )
  55224. {
  55225. }
  55226. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  55227. PhysicalDeviceShaderSMBuiltinsFeaturesNV & operator=( PhysicalDeviceShaderSMBuiltinsFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  55228. PhysicalDeviceShaderSMBuiltinsFeaturesNV & operator=( VkPhysicalDeviceShaderSMBuiltinsFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT
  55229. {
  55230. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderSMBuiltinsFeaturesNV const *>( &rhs );
  55231. return *this;
  55232. }
  55233. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  55234. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceShaderSMBuiltinsFeaturesNV & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
  55235. {
  55236. pNext = pNext_;
  55237. return *this;
  55238. }
  55239. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceShaderSMBuiltinsFeaturesNV & setShaderSMBuiltins( VULKAN_HPP_NAMESPACE::Bool32 shaderSMBuiltins_ ) VULKAN_HPP_NOEXCEPT
  55240. {
  55241. shaderSMBuiltins = shaderSMBuiltins_;
  55242. return *this;
  55243. }
  55244. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  55245. operator VkPhysicalDeviceShaderSMBuiltinsFeaturesNV const &() const VULKAN_HPP_NOEXCEPT
  55246. {
  55247. return *reinterpret_cast<const VkPhysicalDeviceShaderSMBuiltinsFeaturesNV *>( this );
  55248. }
  55249. operator VkPhysicalDeviceShaderSMBuiltinsFeaturesNV &() VULKAN_HPP_NOEXCEPT
  55250. {
  55251. return *reinterpret_cast<VkPhysicalDeviceShaderSMBuiltinsFeaturesNV *>( this );
  55252. }
  55253. #if defined( VULKAN_HPP_USE_REFLECT )
  55254. # if 14 <= VULKAN_HPP_CPP_VERSION
  55255. auto
  55256. # else
  55257. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
  55258. # endif
  55259. reflect() const VULKAN_HPP_NOEXCEPT
  55260. {
  55261. return std::tie( sType, pNext, shaderSMBuiltins );
  55262. }
  55263. #endif
  55264. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  55265. auto operator<=>( PhysicalDeviceShaderSMBuiltinsFeaturesNV const & ) const = default;
  55266. #else
  55267. bool operator==( PhysicalDeviceShaderSMBuiltinsFeaturesNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  55268. {
  55269. # if defined( VULKAN_HPP_USE_REFLECT )
  55270. return this->reflect() == rhs.reflect();
  55271. # else
  55272. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( shaderSMBuiltins == rhs.shaderSMBuiltins );
  55273. # endif
  55274. }
  55275. bool operator!=( PhysicalDeviceShaderSMBuiltinsFeaturesNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  55276. {
  55277. return !operator==( rhs );
  55278. }
  55279. #endif
  55280. public:
  55281. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceShaderSmBuiltinsFeaturesNV;
  55282. void * pNext = {};
  55283. VULKAN_HPP_NAMESPACE::Bool32 shaderSMBuiltins = {};
  55284. };
  55285. template <>
  55286. struct CppType<StructureType, StructureType::ePhysicalDeviceShaderSmBuiltinsFeaturesNV>
  55287. {
  55288. using Type = PhysicalDeviceShaderSMBuiltinsFeaturesNV;
  55289. };
  55290. struct PhysicalDeviceShaderSMBuiltinsPropertiesNV
  55291. {
  55292. using NativeType = VkPhysicalDeviceShaderSMBuiltinsPropertiesNV;
  55293. static const bool allowDuplicate = false;
  55294. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceShaderSmBuiltinsPropertiesNV;
  55295. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  55296. VULKAN_HPP_CONSTEXPR
  55297. PhysicalDeviceShaderSMBuiltinsPropertiesNV( uint32_t shaderSMCount_ = {}, uint32_t shaderWarpsPerSM_ = {}, void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  55298. : pNext( pNext_ )
  55299. , shaderSMCount( shaderSMCount_ )
  55300. , shaderWarpsPerSM( shaderWarpsPerSM_ )
  55301. {
  55302. }
  55303. VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderSMBuiltinsPropertiesNV( PhysicalDeviceShaderSMBuiltinsPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  55304. PhysicalDeviceShaderSMBuiltinsPropertiesNV( VkPhysicalDeviceShaderSMBuiltinsPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT
  55305. : PhysicalDeviceShaderSMBuiltinsPropertiesNV( *reinterpret_cast<PhysicalDeviceShaderSMBuiltinsPropertiesNV const *>( &rhs ) )
  55306. {
  55307. }
  55308. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  55309. PhysicalDeviceShaderSMBuiltinsPropertiesNV & operator=( PhysicalDeviceShaderSMBuiltinsPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  55310. PhysicalDeviceShaderSMBuiltinsPropertiesNV & operator=( VkPhysicalDeviceShaderSMBuiltinsPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT
  55311. {
  55312. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderSMBuiltinsPropertiesNV const *>( &rhs );
  55313. return *this;
  55314. }
  55315. operator VkPhysicalDeviceShaderSMBuiltinsPropertiesNV const &() const VULKAN_HPP_NOEXCEPT
  55316. {
  55317. return *reinterpret_cast<const VkPhysicalDeviceShaderSMBuiltinsPropertiesNV *>( this );
  55318. }
  55319. operator VkPhysicalDeviceShaderSMBuiltinsPropertiesNV &() VULKAN_HPP_NOEXCEPT
  55320. {
  55321. return *reinterpret_cast<VkPhysicalDeviceShaderSMBuiltinsPropertiesNV *>( this );
  55322. }
  55323. #if defined( VULKAN_HPP_USE_REFLECT )
  55324. # if 14 <= VULKAN_HPP_CPP_VERSION
  55325. auto
  55326. # else
  55327. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, uint32_t const &, uint32_t const &>
  55328. # endif
  55329. reflect() const VULKAN_HPP_NOEXCEPT
  55330. {
  55331. return std::tie( sType, pNext, shaderSMCount, shaderWarpsPerSM );
  55332. }
  55333. #endif
  55334. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  55335. auto operator<=>( PhysicalDeviceShaderSMBuiltinsPropertiesNV const & ) const = default;
  55336. #else
  55337. bool operator==( PhysicalDeviceShaderSMBuiltinsPropertiesNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  55338. {
  55339. # if defined( VULKAN_HPP_USE_REFLECT )
  55340. return this->reflect() == rhs.reflect();
  55341. # else
  55342. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( shaderSMCount == rhs.shaderSMCount ) && ( shaderWarpsPerSM == rhs.shaderWarpsPerSM );
  55343. # endif
  55344. }
  55345. bool operator!=( PhysicalDeviceShaderSMBuiltinsPropertiesNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  55346. {
  55347. return !operator==( rhs );
  55348. }
  55349. #endif
  55350. public:
  55351. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceShaderSmBuiltinsPropertiesNV;
  55352. void * pNext = {};
  55353. uint32_t shaderSMCount = {};
  55354. uint32_t shaderWarpsPerSM = {};
  55355. };
  55356. template <>
  55357. struct CppType<StructureType, StructureType::ePhysicalDeviceShaderSmBuiltinsPropertiesNV>
  55358. {
  55359. using Type = PhysicalDeviceShaderSMBuiltinsPropertiesNV;
  55360. };
  55361. struct PhysicalDeviceShaderSubgroupExtendedTypesFeatures
  55362. {
  55363. using NativeType = VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures;
  55364. static const bool allowDuplicate = false;
  55365. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceShaderSubgroupExtendedTypesFeatures;
  55366. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  55367. VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderSubgroupExtendedTypesFeatures( VULKAN_HPP_NAMESPACE::Bool32 shaderSubgroupExtendedTypes_ = {},
  55368. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  55369. : pNext( pNext_ )
  55370. , shaderSubgroupExtendedTypes( shaderSubgroupExtendedTypes_ )
  55371. {
  55372. }
  55373. VULKAN_HPP_CONSTEXPR
  55374. PhysicalDeviceShaderSubgroupExtendedTypesFeatures( PhysicalDeviceShaderSubgroupExtendedTypesFeatures const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  55375. PhysicalDeviceShaderSubgroupExtendedTypesFeatures( VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
  55376. : PhysicalDeviceShaderSubgroupExtendedTypesFeatures( *reinterpret_cast<PhysicalDeviceShaderSubgroupExtendedTypesFeatures const *>( &rhs ) )
  55377. {
  55378. }
  55379. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  55380. PhysicalDeviceShaderSubgroupExtendedTypesFeatures &
  55381. operator=( PhysicalDeviceShaderSubgroupExtendedTypesFeatures const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  55382. PhysicalDeviceShaderSubgroupExtendedTypesFeatures & operator=( VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
  55383. {
  55384. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderSubgroupExtendedTypesFeatures const *>( &rhs );
  55385. return *this;
  55386. }
  55387. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  55388. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceShaderSubgroupExtendedTypesFeatures & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
  55389. {
  55390. pNext = pNext_;
  55391. return *this;
  55392. }
  55393. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceShaderSubgroupExtendedTypesFeatures &
  55394. setShaderSubgroupExtendedTypes( VULKAN_HPP_NAMESPACE::Bool32 shaderSubgroupExtendedTypes_ ) VULKAN_HPP_NOEXCEPT
  55395. {
  55396. shaderSubgroupExtendedTypes = shaderSubgroupExtendedTypes_;
  55397. return *this;
  55398. }
  55399. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  55400. operator VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures const &() const VULKAN_HPP_NOEXCEPT
  55401. {
  55402. return *reinterpret_cast<const VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures *>( this );
  55403. }
  55404. operator VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures &() VULKAN_HPP_NOEXCEPT
  55405. {
  55406. return *reinterpret_cast<VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures *>( this );
  55407. }
  55408. #if defined( VULKAN_HPP_USE_REFLECT )
  55409. # if 14 <= VULKAN_HPP_CPP_VERSION
  55410. auto
  55411. # else
  55412. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
  55413. # endif
  55414. reflect() const VULKAN_HPP_NOEXCEPT
  55415. {
  55416. return std::tie( sType, pNext, shaderSubgroupExtendedTypes );
  55417. }
  55418. #endif
  55419. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  55420. auto operator<=>( PhysicalDeviceShaderSubgroupExtendedTypesFeatures const & ) const = default;
  55421. #else
  55422. bool operator==( PhysicalDeviceShaderSubgroupExtendedTypesFeatures const & rhs ) const VULKAN_HPP_NOEXCEPT
  55423. {
  55424. # if defined( VULKAN_HPP_USE_REFLECT )
  55425. return this->reflect() == rhs.reflect();
  55426. # else
  55427. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( shaderSubgroupExtendedTypes == rhs.shaderSubgroupExtendedTypes );
  55428. # endif
  55429. }
  55430. bool operator!=( PhysicalDeviceShaderSubgroupExtendedTypesFeatures const & rhs ) const VULKAN_HPP_NOEXCEPT
  55431. {
  55432. return !operator==( rhs );
  55433. }
  55434. #endif
  55435. public:
  55436. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceShaderSubgroupExtendedTypesFeatures;
  55437. void * pNext = {};
  55438. VULKAN_HPP_NAMESPACE::Bool32 shaderSubgroupExtendedTypes = {};
  55439. };
  55440. template <>
  55441. struct CppType<StructureType, StructureType::ePhysicalDeviceShaderSubgroupExtendedTypesFeatures>
  55442. {
  55443. using Type = PhysicalDeviceShaderSubgroupExtendedTypesFeatures;
  55444. };
  55445. using PhysicalDeviceShaderSubgroupExtendedTypesFeaturesKHR = PhysicalDeviceShaderSubgroupExtendedTypesFeatures;
  55446. struct PhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR
  55447. {
  55448. using NativeType = VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR;
  55449. static const bool allowDuplicate = false;
  55450. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR;
  55451. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  55452. VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR( VULKAN_HPP_NAMESPACE::Bool32 shaderSubgroupUniformControlFlow_ = {},
  55453. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  55454. : pNext( pNext_ )
  55455. , shaderSubgroupUniformControlFlow( shaderSubgroupUniformControlFlow_ )
  55456. {
  55457. }
  55458. VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR( PhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR const & rhs )
  55459. VULKAN_HPP_NOEXCEPT = default;
  55460. PhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR( VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  55461. : PhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR(
  55462. *reinterpret_cast<PhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR const *>( &rhs ) )
  55463. {
  55464. }
  55465. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  55466. PhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR &
  55467. operator=( PhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  55468. PhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR &
  55469. operator=( VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  55470. {
  55471. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR const *>( &rhs );
  55472. return *this;
  55473. }
  55474. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  55475. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
  55476. {
  55477. pNext = pNext_;
  55478. return *this;
  55479. }
  55480. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR &
  55481. setShaderSubgroupUniformControlFlow( VULKAN_HPP_NAMESPACE::Bool32 shaderSubgroupUniformControlFlow_ ) VULKAN_HPP_NOEXCEPT
  55482. {
  55483. shaderSubgroupUniformControlFlow = shaderSubgroupUniformControlFlow_;
  55484. return *this;
  55485. }
  55486. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  55487. operator VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR const &() const VULKAN_HPP_NOEXCEPT
  55488. {
  55489. return *reinterpret_cast<const VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR *>( this );
  55490. }
  55491. operator VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR &() VULKAN_HPP_NOEXCEPT
  55492. {
  55493. return *reinterpret_cast<VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR *>( 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::Bool32 const &>
  55500. # endif
  55501. reflect() const VULKAN_HPP_NOEXCEPT
  55502. {
  55503. return std::tie( sType, pNext, shaderSubgroupUniformControlFlow );
  55504. }
  55505. #endif
  55506. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  55507. auto operator<=>( PhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR const & ) const = default;
  55508. #else
  55509. bool operator==( PhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR 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 ) && ( shaderSubgroupUniformControlFlow == rhs.shaderSubgroupUniformControlFlow );
  55515. # endif
  55516. }
  55517. bool operator!=( PhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  55518. {
  55519. return !operator==( rhs );
  55520. }
  55521. #endif
  55522. public:
  55523. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR;
  55524. void * pNext = {};
  55525. VULKAN_HPP_NAMESPACE::Bool32 shaderSubgroupUniformControlFlow = {};
  55526. };
  55527. template <>
  55528. struct CppType<StructureType, StructureType::ePhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR>
  55529. {
  55530. using Type = PhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR;
  55531. };
  55532. struct PhysicalDeviceShaderTerminateInvocationFeatures
  55533. {
  55534. using NativeType = VkPhysicalDeviceShaderTerminateInvocationFeatures;
  55535. static const bool allowDuplicate = false;
  55536. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceShaderTerminateInvocationFeatures;
  55537. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  55538. VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderTerminateInvocationFeatures( VULKAN_HPP_NAMESPACE::Bool32 shaderTerminateInvocation_ = {},
  55539. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  55540. : pNext( pNext_ )
  55541. , shaderTerminateInvocation( shaderTerminateInvocation_ )
  55542. {
  55543. }
  55544. VULKAN_HPP_CONSTEXPR
  55545. PhysicalDeviceShaderTerminateInvocationFeatures( PhysicalDeviceShaderTerminateInvocationFeatures const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  55546. PhysicalDeviceShaderTerminateInvocationFeatures( VkPhysicalDeviceShaderTerminateInvocationFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
  55547. : PhysicalDeviceShaderTerminateInvocationFeatures( *reinterpret_cast<PhysicalDeviceShaderTerminateInvocationFeatures const *>( &rhs ) )
  55548. {
  55549. }
  55550. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  55551. PhysicalDeviceShaderTerminateInvocationFeatures & operator=( PhysicalDeviceShaderTerminateInvocationFeatures const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  55552. PhysicalDeviceShaderTerminateInvocationFeatures & operator=( VkPhysicalDeviceShaderTerminateInvocationFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
  55553. {
  55554. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderTerminateInvocationFeatures const *>( &rhs );
  55555. return *this;
  55556. }
  55557. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  55558. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceShaderTerminateInvocationFeatures & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
  55559. {
  55560. pNext = pNext_;
  55561. return *this;
  55562. }
  55563. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceShaderTerminateInvocationFeatures &
  55564. setShaderTerminateInvocation( VULKAN_HPP_NAMESPACE::Bool32 shaderTerminateInvocation_ ) VULKAN_HPP_NOEXCEPT
  55565. {
  55566. shaderTerminateInvocation = shaderTerminateInvocation_;
  55567. return *this;
  55568. }
  55569. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  55570. operator VkPhysicalDeviceShaderTerminateInvocationFeatures const &() const VULKAN_HPP_NOEXCEPT
  55571. {
  55572. return *reinterpret_cast<const VkPhysicalDeviceShaderTerminateInvocationFeatures *>( this );
  55573. }
  55574. operator VkPhysicalDeviceShaderTerminateInvocationFeatures &() VULKAN_HPP_NOEXCEPT
  55575. {
  55576. return *reinterpret_cast<VkPhysicalDeviceShaderTerminateInvocationFeatures *>( this );
  55577. }
  55578. #if defined( VULKAN_HPP_USE_REFLECT )
  55579. # if 14 <= VULKAN_HPP_CPP_VERSION
  55580. auto
  55581. # else
  55582. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
  55583. # endif
  55584. reflect() const VULKAN_HPP_NOEXCEPT
  55585. {
  55586. return std::tie( sType, pNext, shaderTerminateInvocation );
  55587. }
  55588. #endif
  55589. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  55590. auto operator<=>( PhysicalDeviceShaderTerminateInvocationFeatures const & ) const = default;
  55591. #else
  55592. bool operator==( PhysicalDeviceShaderTerminateInvocationFeatures const & rhs ) const VULKAN_HPP_NOEXCEPT
  55593. {
  55594. # if defined( VULKAN_HPP_USE_REFLECT )
  55595. return this->reflect() == rhs.reflect();
  55596. # else
  55597. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( shaderTerminateInvocation == rhs.shaderTerminateInvocation );
  55598. # endif
  55599. }
  55600. bool operator!=( PhysicalDeviceShaderTerminateInvocationFeatures const & rhs ) const VULKAN_HPP_NOEXCEPT
  55601. {
  55602. return !operator==( rhs );
  55603. }
  55604. #endif
  55605. public:
  55606. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceShaderTerminateInvocationFeatures;
  55607. void * pNext = {};
  55608. VULKAN_HPP_NAMESPACE::Bool32 shaderTerminateInvocation = {};
  55609. };
  55610. template <>
  55611. struct CppType<StructureType, StructureType::ePhysicalDeviceShaderTerminateInvocationFeatures>
  55612. {
  55613. using Type = PhysicalDeviceShaderTerminateInvocationFeatures;
  55614. };
  55615. using PhysicalDeviceShaderTerminateInvocationFeaturesKHR = PhysicalDeviceShaderTerminateInvocationFeatures;
  55616. struct PhysicalDeviceShadingRateImageFeaturesNV
  55617. {
  55618. using NativeType = VkPhysicalDeviceShadingRateImageFeaturesNV;
  55619. static const bool allowDuplicate = false;
  55620. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceShadingRateImageFeaturesNV;
  55621. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  55622. VULKAN_HPP_CONSTEXPR PhysicalDeviceShadingRateImageFeaturesNV( VULKAN_HPP_NAMESPACE::Bool32 shadingRateImage_ = {},
  55623. VULKAN_HPP_NAMESPACE::Bool32 shadingRateCoarseSampleOrder_ = {},
  55624. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  55625. : pNext( pNext_ )
  55626. , shadingRateImage( shadingRateImage_ )
  55627. , shadingRateCoarseSampleOrder( shadingRateCoarseSampleOrder_ )
  55628. {
  55629. }
  55630. VULKAN_HPP_CONSTEXPR PhysicalDeviceShadingRateImageFeaturesNV( PhysicalDeviceShadingRateImageFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  55631. PhysicalDeviceShadingRateImageFeaturesNV( VkPhysicalDeviceShadingRateImageFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT
  55632. : PhysicalDeviceShadingRateImageFeaturesNV( *reinterpret_cast<PhysicalDeviceShadingRateImageFeaturesNV const *>( &rhs ) )
  55633. {
  55634. }
  55635. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  55636. PhysicalDeviceShadingRateImageFeaturesNV & operator=( PhysicalDeviceShadingRateImageFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  55637. PhysicalDeviceShadingRateImageFeaturesNV & operator=( VkPhysicalDeviceShadingRateImageFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT
  55638. {
  55639. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceShadingRateImageFeaturesNV const *>( &rhs );
  55640. return *this;
  55641. }
  55642. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  55643. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceShadingRateImageFeaturesNV & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
  55644. {
  55645. pNext = pNext_;
  55646. return *this;
  55647. }
  55648. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceShadingRateImageFeaturesNV & setShadingRateImage( VULKAN_HPP_NAMESPACE::Bool32 shadingRateImage_ ) VULKAN_HPP_NOEXCEPT
  55649. {
  55650. shadingRateImage = shadingRateImage_;
  55651. return *this;
  55652. }
  55653. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceShadingRateImageFeaturesNV &
  55654. setShadingRateCoarseSampleOrder( VULKAN_HPP_NAMESPACE::Bool32 shadingRateCoarseSampleOrder_ ) VULKAN_HPP_NOEXCEPT
  55655. {
  55656. shadingRateCoarseSampleOrder = shadingRateCoarseSampleOrder_;
  55657. return *this;
  55658. }
  55659. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  55660. operator VkPhysicalDeviceShadingRateImageFeaturesNV const &() const VULKAN_HPP_NOEXCEPT
  55661. {
  55662. return *reinterpret_cast<const VkPhysicalDeviceShadingRateImageFeaturesNV *>( this );
  55663. }
  55664. operator VkPhysicalDeviceShadingRateImageFeaturesNV &() VULKAN_HPP_NOEXCEPT
  55665. {
  55666. return *reinterpret_cast<VkPhysicalDeviceShadingRateImageFeaturesNV *>( this );
  55667. }
  55668. #if defined( VULKAN_HPP_USE_REFLECT )
  55669. # if 14 <= VULKAN_HPP_CPP_VERSION
  55670. auto
  55671. # else
  55672. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
  55673. # endif
  55674. reflect() const VULKAN_HPP_NOEXCEPT
  55675. {
  55676. return std::tie( sType, pNext, shadingRateImage, shadingRateCoarseSampleOrder );
  55677. }
  55678. #endif
  55679. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  55680. auto operator<=>( PhysicalDeviceShadingRateImageFeaturesNV const & ) const = default;
  55681. #else
  55682. bool operator==( PhysicalDeviceShadingRateImageFeaturesNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  55683. {
  55684. # if defined( VULKAN_HPP_USE_REFLECT )
  55685. return this->reflect() == rhs.reflect();
  55686. # else
  55687. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( shadingRateImage == rhs.shadingRateImage ) &&
  55688. ( shadingRateCoarseSampleOrder == rhs.shadingRateCoarseSampleOrder );
  55689. # endif
  55690. }
  55691. bool operator!=( PhysicalDeviceShadingRateImageFeaturesNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  55692. {
  55693. return !operator==( rhs );
  55694. }
  55695. #endif
  55696. public:
  55697. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceShadingRateImageFeaturesNV;
  55698. void * pNext = {};
  55699. VULKAN_HPP_NAMESPACE::Bool32 shadingRateImage = {};
  55700. VULKAN_HPP_NAMESPACE::Bool32 shadingRateCoarseSampleOrder = {};
  55701. };
  55702. template <>
  55703. struct CppType<StructureType, StructureType::ePhysicalDeviceShadingRateImageFeaturesNV>
  55704. {
  55705. using Type = PhysicalDeviceShadingRateImageFeaturesNV;
  55706. };
  55707. struct PhysicalDeviceShadingRateImagePropertiesNV
  55708. {
  55709. using NativeType = VkPhysicalDeviceShadingRateImagePropertiesNV;
  55710. static const bool allowDuplicate = false;
  55711. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceShadingRateImagePropertiesNV;
  55712. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  55713. VULKAN_HPP_CONSTEXPR PhysicalDeviceShadingRateImagePropertiesNV( VULKAN_HPP_NAMESPACE::Extent2D shadingRateTexelSize_ = {},
  55714. uint32_t shadingRatePaletteSize_ = {},
  55715. uint32_t shadingRateMaxCoarseSamples_ = {},
  55716. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  55717. : pNext( pNext_ )
  55718. , shadingRateTexelSize( shadingRateTexelSize_ )
  55719. , shadingRatePaletteSize( shadingRatePaletteSize_ )
  55720. , shadingRateMaxCoarseSamples( shadingRateMaxCoarseSamples_ )
  55721. {
  55722. }
  55723. VULKAN_HPP_CONSTEXPR PhysicalDeviceShadingRateImagePropertiesNV( PhysicalDeviceShadingRateImagePropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  55724. PhysicalDeviceShadingRateImagePropertiesNV( VkPhysicalDeviceShadingRateImagePropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT
  55725. : PhysicalDeviceShadingRateImagePropertiesNV( *reinterpret_cast<PhysicalDeviceShadingRateImagePropertiesNV const *>( &rhs ) )
  55726. {
  55727. }
  55728. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  55729. PhysicalDeviceShadingRateImagePropertiesNV & operator=( PhysicalDeviceShadingRateImagePropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  55730. PhysicalDeviceShadingRateImagePropertiesNV & operator=( VkPhysicalDeviceShadingRateImagePropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT
  55731. {
  55732. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceShadingRateImagePropertiesNV const *>( &rhs );
  55733. return *this;
  55734. }
  55735. operator VkPhysicalDeviceShadingRateImagePropertiesNV const &() const VULKAN_HPP_NOEXCEPT
  55736. {
  55737. return *reinterpret_cast<const VkPhysicalDeviceShadingRateImagePropertiesNV *>( this );
  55738. }
  55739. operator VkPhysicalDeviceShadingRateImagePropertiesNV &() VULKAN_HPP_NOEXCEPT
  55740. {
  55741. return *reinterpret_cast<VkPhysicalDeviceShadingRateImagePropertiesNV *>( this );
  55742. }
  55743. #if defined( VULKAN_HPP_USE_REFLECT )
  55744. # if 14 <= VULKAN_HPP_CPP_VERSION
  55745. auto
  55746. # else
  55747. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Extent2D const &, uint32_t const &, uint32_t const &>
  55748. # endif
  55749. reflect() const VULKAN_HPP_NOEXCEPT
  55750. {
  55751. return std::tie( sType, pNext, shadingRateTexelSize, shadingRatePaletteSize, shadingRateMaxCoarseSamples );
  55752. }
  55753. #endif
  55754. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  55755. auto operator<=>( PhysicalDeviceShadingRateImagePropertiesNV const & ) const = default;
  55756. #else
  55757. bool operator==( PhysicalDeviceShadingRateImagePropertiesNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  55758. {
  55759. # if defined( VULKAN_HPP_USE_REFLECT )
  55760. return this->reflect() == rhs.reflect();
  55761. # else
  55762. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( shadingRateTexelSize == rhs.shadingRateTexelSize ) &&
  55763. ( shadingRatePaletteSize == rhs.shadingRatePaletteSize ) && ( shadingRateMaxCoarseSamples == rhs.shadingRateMaxCoarseSamples );
  55764. # endif
  55765. }
  55766. bool operator!=( PhysicalDeviceShadingRateImagePropertiesNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  55767. {
  55768. return !operator==( rhs );
  55769. }
  55770. #endif
  55771. public:
  55772. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceShadingRateImagePropertiesNV;
  55773. void * pNext = {};
  55774. VULKAN_HPP_NAMESPACE::Extent2D shadingRateTexelSize = {};
  55775. uint32_t shadingRatePaletteSize = {};
  55776. uint32_t shadingRateMaxCoarseSamples = {};
  55777. };
  55778. template <>
  55779. struct CppType<StructureType, StructureType::ePhysicalDeviceShadingRateImagePropertiesNV>
  55780. {
  55781. using Type = PhysicalDeviceShadingRateImagePropertiesNV;
  55782. };
  55783. struct PhysicalDeviceSparseImageFormatInfo2
  55784. {
  55785. using NativeType = VkPhysicalDeviceSparseImageFormatInfo2;
  55786. static const bool allowDuplicate = false;
  55787. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceSparseImageFormatInfo2;
  55788. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  55789. VULKAN_HPP_CONSTEXPR
  55790. PhysicalDeviceSparseImageFormatInfo2( VULKAN_HPP_NAMESPACE::Format format_ = VULKAN_HPP_NAMESPACE::Format::eUndefined,
  55791. VULKAN_HPP_NAMESPACE::ImageType type_ = VULKAN_HPP_NAMESPACE::ImageType::e1D,
  55792. VULKAN_HPP_NAMESPACE::SampleCountFlagBits samples_ = VULKAN_HPP_NAMESPACE::SampleCountFlagBits::e1,
  55793. VULKAN_HPP_NAMESPACE::ImageUsageFlags usage_ = {},
  55794. VULKAN_HPP_NAMESPACE::ImageTiling tiling_ = VULKAN_HPP_NAMESPACE::ImageTiling::eOptimal,
  55795. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  55796. : pNext( pNext_ )
  55797. , format( format_ )
  55798. , type( type_ )
  55799. , samples( samples_ )
  55800. , usage( usage_ )
  55801. , tiling( tiling_ )
  55802. {
  55803. }
  55804. VULKAN_HPP_CONSTEXPR PhysicalDeviceSparseImageFormatInfo2( PhysicalDeviceSparseImageFormatInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  55805. PhysicalDeviceSparseImageFormatInfo2( VkPhysicalDeviceSparseImageFormatInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT
  55806. : PhysicalDeviceSparseImageFormatInfo2( *reinterpret_cast<PhysicalDeviceSparseImageFormatInfo2 const *>( &rhs ) )
  55807. {
  55808. }
  55809. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  55810. PhysicalDeviceSparseImageFormatInfo2 & operator=( PhysicalDeviceSparseImageFormatInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  55811. PhysicalDeviceSparseImageFormatInfo2 & operator=( VkPhysicalDeviceSparseImageFormatInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT
  55812. {
  55813. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceSparseImageFormatInfo2 const *>( &rhs );
  55814. return *this;
  55815. }
  55816. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  55817. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceSparseImageFormatInfo2 & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  55818. {
  55819. pNext = pNext_;
  55820. return *this;
  55821. }
  55822. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceSparseImageFormatInfo2 & setFormat( VULKAN_HPP_NAMESPACE::Format format_ ) VULKAN_HPP_NOEXCEPT
  55823. {
  55824. format = format_;
  55825. return *this;
  55826. }
  55827. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceSparseImageFormatInfo2 & setType( VULKAN_HPP_NAMESPACE::ImageType type_ ) VULKAN_HPP_NOEXCEPT
  55828. {
  55829. type = type_;
  55830. return *this;
  55831. }
  55832. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceSparseImageFormatInfo2 & setSamples( VULKAN_HPP_NAMESPACE::SampleCountFlagBits samples_ ) VULKAN_HPP_NOEXCEPT
  55833. {
  55834. samples = samples_;
  55835. return *this;
  55836. }
  55837. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceSparseImageFormatInfo2 & setUsage( VULKAN_HPP_NAMESPACE::ImageUsageFlags usage_ ) VULKAN_HPP_NOEXCEPT
  55838. {
  55839. usage = usage_;
  55840. return *this;
  55841. }
  55842. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceSparseImageFormatInfo2 & setTiling( VULKAN_HPP_NAMESPACE::ImageTiling tiling_ ) VULKAN_HPP_NOEXCEPT
  55843. {
  55844. tiling = tiling_;
  55845. return *this;
  55846. }
  55847. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  55848. operator VkPhysicalDeviceSparseImageFormatInfo2 const &() const VULKAN_HPP_NOEXCEPT
  55849. {
  55850. return *reinterpret_cast<const VkPhysicalDeviceSparseImageFormatInfo2 *>( this );
  55851. }
  55852. operator VkPhysicalDeviceSparseImageFormatInfo2 &() VULKAN_HPP_NOEXCEPT
  55853. {
  55854. return *reinterpret_cast<VkPhysicalDeviceSparseImageFormatInfo2 *>( this );
  55855. }
  55856. #if defined( VULKAN_HPP_USE_REFLECT )
  55857. # if 14 <= VULKAN_HPP_CPP_VERSION
  55858. auto
  55859. # else
  55860. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  55861. const void * const &,
  55862. VULKAN_HPP_NAMESPACE::Format const &,
  55863. VULKAN_HPP_NAMESPACE::ImageType const &,
  55864. VULKAN_HPP_NAMESPACE::SampleCountFlagBits const &,
  55865. VULKAN_HPP_NAMESPACE::ImageUsageFlags const &,
  55866. VULKAN_HPP_NAMESPACE::ImageTiling const &>
  55867. # endif
  55868. reflect() const VULKAN_HPP_NOEXCEPT
  55869. {
  55870. return std::tie( sType, pNext, format, type, samples, usage, tiling );
  55871. }
  55872. #endif
  55873. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  55874. auto operator<=>( PhysicalDeviceSparseImageFormatInfo2 const & ) const = default;
  55875. #else
  55876. bool operator==( PhysicalDeviceSparseImageFormatInfo2 const & rhs ) const VULKAN_HPP_NOEXCEPT
  55877. {
  55878. # if defined( VULKAN_HPP_USE_REFLECT )
  55879. return this->reflect() == rhs.reflect();
  55880. # else
  55881. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( format == rhs.format ) && ( type == rhs.type ) && ( samples == rhs.samples ) &&
  55882. ( usage == rhs.usage ) && ( tiling == rhs.tiling );
  55883. # endif
  55884. }
  55885. bool operator!=( PhysicalDeviceSparseImageFormatInfo2 const & rhs ) const VULKAN_HPP_NOEXCEPT
  55886. {
  55887. return !operator==( rhs );
  55888. }
  55889. #endif
  55890. public:
  55891. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceSparseImageFormatInfo2;
  55892. const void * pNext = {};
  55893. VULKAN_HPP_NAMESPACE::Format format = VULKAN_HPP_NAMESPACE::Format::eUndefined;
  55894. VULKAN_HPP_NAMESPACE::ImageType type = VULKAN_HPP_NAMESPACE::ImageType::e1D;
  55895. VULKAN_HPP_NAMESPACE::SampleCountFlagBits samples = VULKAN_HPP_NAMESPACE::SampleCountFlagBits::e1;
  55896. VULKAN_HPP_NAMESPACE::ImageUsageFlags usage = {};
  55897. VULKAN_HPP_NAMESPACE::ImageTiling tiling = VULKAN_HPP_NAMESPACE::ImageTiling::eOptimal;
  55898. };
  55899. template <>
  55900. struct CppType<StructureType, StructureType::ePhysicalDeviceSparseImageFormatInfo2>
  55901. {
  55902. using Type = PhysicalDeviceSparseImageFormatInfo2;
  55903. };
  55904. using PhysicalDeviceSparseImageFormatInfo2KHR = PhysicalDeviceSparseImageFormatInfo2;
  55905. struct PhysicalDeviceSubgroupProperties
  55906. {
  55907. using NativeType = VkPhysicalDeviceSubgroupProperties;
  55908. static const bool allowDuplicate = false;
  55909. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceSubgroupProperties;
  55910. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  55911. VULKAN_HPP_CONSTEXPR PhysicalDeviceSubgroupProperties( uint32_t subgroupSize_ = {},
  55912. VULKAN_HPP_NAMESPACE::ShaderStageFlags supportedStages_ = {},
  55913. VULKAN_HPP_NAMESPACE::SubgroupFeatureFlags supportedOperations_ = {},
  55914. VULKAN_HPP_NAMESPACE::Bool32 quadOperationsInAllStages_ = {},
  55915. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  55916. : pNext( pNext_ )
  55917. , subgroupSize( subgroupSize_ )
  55918. , supportedStages( supportedStages_ )
  55919. , supportedOperations( supportedOperations_ )
  55920. , quadOperationsInAllStages( quadOperationsInAllStages_ )
  55921. {
  55922. }
  55923. VULKAN_HPP_CONSTEXPR PhysicalDeviceSubgroupProperties( PhysicalDeviceSubgroupProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  55924. PhysicalDeviceSubgroupProperties( VkPhysicalDeviceSubgroupProperties const & rhs ) VULKAN_HPP_NOEXCEPT
  55925. : PhysicalDeviceSubgroupProperties( *reinterpret_cast<PhysicalDeviceSubgroupProperties const *>( &rhs ) )
  55926. {
  55927. }
  55928. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  55929. PhysicalDeviceSubgroupProperties & operator=( PhysicalDeviceSubgroupProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  55930. PhysicalDeviceSubgroupProperties & operator=( VkPhysicalDeviceSubgroupProperties const & rhs ) VULKAN_HPP_NOEXCEPT
  55931. {
  55932. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceSubgroupProperties const *>( &rhs );
  55933. return *this;
  55934. }
  55935. operator VkPhysicalDeviceSubgroupProperties const &() const VULKAN_HPP_NOEXCEPT
  55936. {
  55937. return *reinterpret_cast<const VkPhysicalDeviceSubgroupProperties *>( this );
  55938. }
  55939. operator VkPhysicalDeviceSubgroupProperties &() VULKAN_HPP_NOEXCEPT
  55940. {
  55941. return *reinterpret_cast<VkPhysicalDeviceSubgroupProperties *>( this );
  55942. }
  55943. #if defined( VULKAN_HPP_USE_REFLECT )
  55944. # if 14 <= VULKAN_HPP_CPP_VERSION
  55945. auto
  55946. # else
  55947. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  55948. void * const &,
  55949. uint32_t const &,
  55950. VULKAN_HPP_NAMESPACE::ShaderStageFlags const &,
  55951. VULKAN_HPP_NAMESPACE::SubgroupFeatureFlags const &,
  55952. VULKAN_HPP_NAMESPACE::Bool32 const &>
  55953. # endif
  55954. reflect() const VULKAN_HPP_NOEXCEPT
  55955. {
  55956. return std::tie( sType, pNext, subgroupSize, supportedStages, supportedOperations, quadOperationsInAllStages );
  55957. }
  55958. #endif
  55959. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  55960. auto operator<=>( PhysicalDeviceSubgroupProperties const & ) const = default;
  55961. #else
  55962. bool operator==( PhysicalDeviceSubgroupProperties const & rhs ) const VULKAN_HPP_NOEXCEPT
  55963. {
  55964. # if defined( VULKAN_HPP_USE_REFLECT )
  55965. return this->reflect() == rhs.reflect();
  55966. # else
  55967. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( subgroupSize == rhs.subgroupSize ) && ( supportedStages == rhs.supportedStages ) &&
  55968. ( supportedOperations == rhs.supportedOperations ) && ( quadOperationsInAllStages == rhs.quadOperationsInAllStages );
  55969. # endif
  55970. }
  55971. bool operator!=( PhysicalDeviceSubgroupProperties const & rhs ) const VULKAN_HPP_NOEXCEPT
  55972. {
  55973. return !operator==( rhs );
  55974. }
  55975. #endif
  55976. public:
  55977. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceSubgroupProperties;
  55978. void * pNext = {};
  55979. uint32_t subgroupSize = {};
  55980. VULKAN_HPP_NAMESPACE::ShaderStageFlags supportedStages = {};
  55981. VULKAN_HPP_NAMESPACE::SubgroupFeatureFlags supportedOperations = {};
  55982. VULKAN_HPP_NAMESPACE::Bool32 quadOperationsInAllStages = {};
  55983. };
  55984. template <>
  55985. struct CppType<StructureType, StructureType::ePhysicalDeviceSubgroupProperties>
  55986. {
  55987. using Type = PhysicalDeviceSubgroupProperties;
  55988. };
  55989. struct PhysicalDeviceSubgroupSizeControlFeatures
  55990. {
  55991. using NativeType = VkPhysicalDeviceSubgroupSizeControlFeatures;
  55992. static const bool allowDuplicate = false;
  55993. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceSubgroupSizeControlFeatures;
  55994. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  55995. VULKAN_HPP_CONSTEXPR PhysicalDeviceSubgroupSizeControlFeatures( VULKAN_HPP_NAMESPACE::Bool32 subgroupSizeControl_ = {},
  55996. VULKAN_HPP_NAMESPACE::Bool32 computeFullSubgroups_ = {},
  55997. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  55998. : pNext( pNext_ )
  55999. , subgroupSizeControl( subgroupSizeControl_ )
  56000. , computeFullSubgroups( computeFullSubgroups_ )
  56001. {
  56002. }
  56003. VULKAN_HPP_CONSTEXPR PhysicalDeviceSubgroupSizeControlFeatures( PhysicalDeviceSubgroupSizeControlFeatures const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  56004. PhysicalDeviceSubgroupSizeControlFeatures( VkPhysicalDeviceSubgroupSizeControlFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
  56005. : PhysicalDeviceSubgroupSizeControlFeatures( *reinterpret_cast<PhysicalDeviceSubgroupSizeControlFeatures const *>( &rhs ) )
  56006. {
  56007. }
  56008. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  56009. PhysicalDeviceSubgroupSizeControlFeatures & operator=( PhysicalDeviceSubgroupSizeControlFeatures const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  56010. PhysicalDeviceSubgroupSizeControlFeatures & operator=( VkPhysicalDeviceSubgroupSizeControlFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
  56011. {
  56012. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceSubgroupSizeControlFeatures const *>( &rhs );
  56013. return *this;
  56014. }
  56015. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  56016. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceSubgroupSizeControlFeatures & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
  56017. {
  56018. pNext = pNext_;
  56019. return *this;
  56020. }
  56021. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceSubgroupSizeControlFeatures &
  56022. setSubgroupSizeControl( VULKAN_HPP_NAMESPACE::Bool32 subgroupSizeControl_ ) VULKAN_HPP_NOEXCEPT
  56023. {
  56024. subgroupSizeControl = subgroupSizeControl_;
  56025. return *this;
  56026. }
  56027. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceSubgroupSizeControlFeatures &
  56028. setComputeFullSubgroups( VULKAN_HPP_NAMESPACE::Bool32 computeFullSubgroups_ ) VULKAN_HPP_NOEXCEPT
  56029. {
  56030. computeFullSubgroups = computeFullSubgroups_;
  56031. return *this;
  56032. }
  56033. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  56034. operator VkPhysicalDeviceSubgroupSizeControlFeatures const &() const VULKAN_HPP_NOEXCEPT
  56035. {
  56036. return *reinterpret_cast<const VkPhysicalDeviceSubgroupSizeControlFeatures *>( this );
  56037. }
  56038. operator VkPhysicalDeviceSubgroupSizeControlFeatures &() VULKAN_HPP_NOEXCEPT
  56039. {
  56040. return *reinterpret_cast<VkPhysicalDeviceSubgroupSizeControlFeatures *>( this );
  56041. }
  56042. #if defined( VULKAN_HPP_USE_REFLECT )
  56043. # if 14 <= VULKAN_HPP_CPP_VERSION
  56044. auto
  56045. # else
  56046. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
  56047. # endif
  56048. reflect() const VULKAN_HPP_NOEXCEPT
  56049. {
  56050. return std::tie( sType, pNext, subgroupSizeControl, computeFullSubgroups );
  56051. }
  56052. #endif
  56053. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  56054. auto operator<=>( PhysicalDeviceSubgroupSizeControlFeatures const & ) const = default;
  56055. #else
  56056. bool operator==( PhysicalDeviceSubgroupSizeControlFeatures const & rhs ) const VULKAN_HPP_NOEXCEPT
  56057. {
  56058. # if defined( VULKAN_HPP_USE_REFLECT )
  56059. return this->reflect() == rhs.reflect();
  56060. # else
  56061. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( subgroupSizeControl == rhs.subgroupSizeControl ) &&
  56062. ( computeFullSubgroups == rhs.computeFullSubgroups );
  56063. # endif
  56064. }
  56065. bool operator!=( PhysicalDeviceSubgroupSizeControlFeatures const & rhs ) const VULKAN_HPP_NOEXCEPT
  56066. {
  56067. return !operator==( rhs );
  56068. }
  56069. #endif
  56070. public:
  56071. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceSubgroupSizeControlFeatures;
  56072. void * pNext = {};
  56073. VULKAN_HPP_NAMESPACE::Bool32 subgroupSizeControl = {};
  56074. VULKAN_HPP_NAMESPACE::Bool32 computeFullSubgroups = {};
  56075. };
  56076. template <>
  56077. struct CppType<StructureType, StructureType::ePhysicalDeviceSubgroupSizeControlFeatures>
  56078. {
  56079. using Type = PhysicalDeviceSubgroupSizeControlFeatures;
  56080. };
  56081. using PhysicalDeviceSubgroupSizeControlFeaturesEXT = PhysicalDeviceSubgroupSizeControlFeatures;
  56082. struct PhysicalDeviceSubgroupSizeControlProperties
  56083. {
  56084. using NativeType = VkPhysicalDeviceSubgroupSizeControlProperties;
  56085. static const bool allowDuplicate = false;
  56086. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceSubgroupSizeControlProperties;
  56087. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  56088. VULKAN_HPP_CONSTEXPR PhysicalDeviceSubgroupSizeControlProperties( uint32_t minSubgroupSize_ = {},
  56089. uint32_t maxSubgroupSize_ = {},
  56090. uint32_t maxComputeWorkgroupSubgroups_ = {},
  56091. VULKAN_HPP_NAMESPACE::ShaderStageFlags requiredSubgroupSizeStages_ = {},
  56092. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  56093. : pNext( pNext_ )
  56094. , minSubgroupSize( minSubgroupSize_ )
  56095. , maxSubgroupSize( maxSubgroupSize_ )
  56096. , maxComputeWorkgroupSubgroups( maxComputeWorkgroupSubgroups_ )
  56097. , requiredSubgroupSizeStages( requiredSubgroupSizeStages_ )
  56098. {
  56099. }
  56100. VULKAN_HPP_CONSTEXPR PhysicalDeviceSubgroupSizeControlProperties( PhysicalDeviceSubgroupSizeControlProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  56101. PhysicalDeviceSubgroupSizeControlProperties( VkPhysicalDeviceSubgroupSizeControlProperties const & rhs ) VULKAN_HPP_NOEXCEPT
  56102. : PhysicalDeviceSubgroupSizeControlProperties( *reinterpret_cast<PhysicalDeviceSubgroupSizeControlProperties const *>( &rhs ) )
  56103. {
  56104. }
  56105. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  56106. PhysicalDeviceSubgroupSizeControlProperties & operator=( PhysicalDeviceSubgroupSizeControlProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  56107. PhysicalDeviceSubgroupSizeControlProperties & operator=( VkPhysicalDeviceSubgroupSizeControlProperties const & rhs ) VULKAN_HPP_NOEXCEPT
  56108. {
  56109. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceSubgroupSizeControlProperties const *>( &rhs );
  56110. return *this;
  56111. }
  56112. operator VkPhysicalDeviceSubgroupSizeControlProperties const &() const VULKAN_HPP_NOEXCEPT
  56113. {
  56114. return *reinterpret_cast<const VkPhysicalDeviceSubgroupSizeControlProperties *>( this );
  56115. }
  56116. operator VkPhysicalDeviceSubgroupSizeControlProperties &() VULKAN_HPP_NOEXCEPT
  56117. {
  56118. return *reinterpret_cast<VkPhysicalDeviceSubgroupSizeControlProperties *>( this );
  56119. }
  56120. #if defined( VULKAN_HPP_USE_REFLECT )
  56121. # if 14 <= VULKAN_HPP_CPP_VERSION
  56122. auto
  56123. # else
  56124. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  56125. void * const &,
  56126. uint32_t const &,
  56127. uint32_t const &,
  56128. uint32_t const &,
  56129. VULKAN_HPP_NAMESPACE::ShaderStageFlags const &>
  56130. # endif
  56131. reflect() const VULKAN_HPP_NOEXCEPT
  56132. {
  56133. return std::tie( sType, pNext, minSubgroupSize, maxSubgroupSize, maxComputeWorkgroupSubgroups, requiredSubgroupSizeStages );
  56134. }
  56135. #endif
  56136. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  56137. auto operator<=>( PhysicalDeviceSubgroupSizeControlProperties const & ) const = default;
  56138. #else
  56139. bool operator==( PhysicalDeviceSubgroupSizeControlProperties const & rhs ) const VULKAN_HPP_NOEXCEPT
  56140. {
  56141. # if defined( VULKAN_HPP_USE_REFLECT )
  56142. return this->reflect() == rhs.reflect();
  56143. # else
  56144. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( minSubgroupSize == rhs.minSubgroupSize ) && ( maxSubgroupSize == rhs.maxSubgroupSize ) &&
  56145. ( maxComputeWorkgroupSubgroups == rhs.maxComputeWorkgroupSubgroups ) && ( requiredSubgroupSizeStages == rhs.requiredSubgroupSizeStages );
  56146. # endif
  56147. }
  56148. bool operator!=( PhysicalDeviceSubgroupSizeControlProperties const & rhs ) const VULKAN_HPP_NOEXCEPT
  56149. {
  56150. return !operator==( rhs );
  56151. }
  56152. #endif
  56153. public:
  56154. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceSubgroupSizeControlProperties;
  56155. void * pNext = {};
  56156. uint32_t minSubgroupSize = {};
  56157. uint32_t maxSubgroupSize = {};
  56158. uint32_t maxComputeWorkgroupSubgroups = {};
  56159. VULKAN_HPP_NAMESPACE::ShaderStageFlags requiredSubgroupSizeStages = {};
  56160. };
  56161. template <>
  56162. struct CppType<StructureType, StructureType::ePhysicalDeviceSubgroupSizeControlProperties>
  56163. {
  56164. using Type = PhysicalDeviceSubgroupSizeControlProperties;
  56165. };
  56166. using PhysicalDeviceSubgroupSizeControlPropertiesEXT = PhysicalDeviceSubgroupSizeControlProperties;
  56167. struct PhysicalDeviceSubpassMergeFeedbackFeaturesEXT
  56168. {
  56169. using NativeType = VkPhysicalDeviceSubpassMergeFeedbackFeaturesEXT;
  56170. static const bool allowDuplicate = false;
  56171. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceSubpassMergeFeedbackFeaturesEXT;
  56172. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  56173. VULKAN_HPP_CONSTEXPR PhysicalDeviceSubpassMergeFeedbackFeaturesEXT( VULKAN_HPP_NAMESPACE::Bool32 subpassMergeFeedback_ = {},
  56174. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  56175. : pNext( pNext_ )
  56176. , subpassMergeFeedback( subpassMergeFeedback_ )
  56177. {
  56178. }
  56179. VULKAN_HPP_CONSTEXPR
  56180. PhysicalDeviceSubpassMergeFeedbackFeaturesEXT( PhysicalDeviceSubpassMergeFeedbackFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  56181. PhysicalDeviceSubpassMergeFeedbackFeaturesEXT( VkPhysicalDeviceSubpassMergeFeedbackFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  56182. : PhysicalDeviceSubpassMergeFeedbackFeaturesEXT( *reinterpret_cast<PhysicalDeviceSubpassMergeFeedbackFeaturesEXT const *>( &rhs ) )
  56183. {
  56184. }
  56185. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  56186. PhysicalDeviceSubpassMergeFeedbackFeaturesEXT & operator=( PhysicalDeviceSubpassMergeFeedbackFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  56187. PhysicalDeviceSubpassMergeFeedbackFeaturesEXT & operator=( VkPhysicalDeviceSubpassMergeFeedbackFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  56188. {
  56189. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceSubpassMergeFeedbackFeaturesEXT const *>( &rhs );
  56190. return *this;
  56191. }
  56192. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  56193. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceSubpassMergeFeedbackFeaturesEXT & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
  56194. {
  56195. pNext = pNext_;
  56196. return *this;
  56197. }
  56198. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceSubpassMergeFeedbackFeaturesEXT &
  56199. setSubpassMergeFeedback( VULKAN_HPP_NAMESPACE::Bool32 subpassMergeFeedback_ ) VULKAN_HPP_NOEXCEPT
  56200. {
  56201. subpassMergeFeedback = subpassMergeFeedback_;
  56202. return *this;
  56203. }
  56204. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  56205. operator VkPhysicalDeviceSubpassMergeFeedbackFeaturesEXT const &() const VULKAN_HPP_NOEXCEPT
  56206. {
  56207. return *reinterpret_cast<const VkPhysicalDeviceSubpassMergeFeedbackFeaturesEXT *>( this );
  56208. }
  56209. operator VkPhysicalDeviceSubpassMergeFeedbackFeaturesEXT &() VULKAN_HPP_NOEXCEPT
  56210. {
  56211. return *reinterpret_cast<VkPhysicalDeviceSubpassMergeFeedbackFeaturesEXT *>( this );
  56212. }
  56213. #if defined( VULKAN_HPP_USE_REFLECT )
  56214. # if 14 <= VULKAN_HPP_CPP_VERSION
  56215. auto
  56216. # else
  56217. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
  56218. # endif
  56219. reflect() const VULKAN_HPP_NOEXCEPT
  56220. {
  56221. return std::tie( sType, pNext, subpassMergeFeedback );
  56222. }
  56223. #endif
  56224. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  56225. auto operator<=>( PhysicalDeviceSubpassMergeFeedbackFeaturesEXT const & ) const = default;
  56226. #else
  56227. bool operator==( PhysicalDeviceSubpassMergeFeedbackFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  56228. {
  56229. # if defined( VULKAN_HPP_USE_REFLECT )
  56230. return this->reflect() == rhs.reflect();
  56231. # else
  56232. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( subpassMergeFeedback == rhs.subpassMergeFeedback );
  56233. # endif
  56234. }
  56235. bool operator!=( PhysicalDeviceSubpassMergeFeedbackFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  56236. {
  56237. return !operator==( rhs );
  56238. }
  56239. #endif
  56240. public:
  56241. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceSubpassMergeFeedbackFeaturesEXT;
  56242. void * pNext = {};
  56243. VULKAN_HPP_NAMESPACE::Bool32 subpassMergeFeedback = {};
  56244. };
  56245. template <>
  56246. struct CppType<StructureType, StructureType::ePhysicalDeviceSubpassMergeFeedbackFeaturesEXT>
  56247. {
  56248. using Type = PhysicalDeviceSubpassMergeFeedbackFeaturesEXT;
  56249. };
  56250. struct PhysicalDeviceSubpassShadingFeaturesHUAWEI
  56251. {
  56252. using NativeType = VkPhysicalDeviceSubpassShadingFeaturesHUAWEI;
  56253. static const bool allowDuplicate = false;
  56254. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceSubpassShadingFeaturesHUAWEI;
  56255. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  56256. VULKAN_HPP_CONSTEXPR PhysicalDeviceSubpassShadingFeaturesHUAWEI( VULKAN_HPP_NAMESPACE::Bool32 subpassShading_ = {},
  56257. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  56258. : pNext( pNext_ )
  56259. , subpassShading( subpassShading_ )
  56260. {
  56261. }
  56262. VULKAN_HPP_CONSTEXPR PhysicalDeviceSubpassShadingFeaturesHUAWEI( PhysicalDeviceSubpassShadingFeaturesHUAWEI const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  56263. PhysicalDeviceSubpassShadingFeaturesHUAWEI( VkPhysicalDeviceSubpassShadingFeaturesHUAWEI const & rhs ) VULKAN_HPP_NOEXCEPT
  56264. : PhysicalDeviceSubpassShadingFeaturesHUAWEI( *reinterpret_cast<PhysicalDeviceSubpassShadingFeaturesHUAWEI const *>( &rhs ) )
  56265. {
  56266. }
  56267. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  56268. PhysicalDeviceSubpassShadingFeaturesHUAWEI & operator=( PhysicalDeviceSubpassShadingFeaturesHUAWEI const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  56269. PhysicalDeviceSubpassShadingFeaturesHUAWEI & operator=( VkPhysicalDeviceSubpassShadingFeaturesHUAWEI const & rhs ) VULKAN_HPP_NOEXCEPT
  56270. {
  56271. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceSubpassShadingFeaturesHUAWEI const *>( &rhs );
  56272. return *this;
  56273. }
  56274. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  56275. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceSubpassShadingFeaturesHUAWEI & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
  56276. {
  56277. pNext = pNext_;
  56278. return *this;
  56279. }
  56280. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceSubpassShadingFeaturesHUAWEI & setSubpassShading( VULKAN_HPP_NAMESPACE::Bool32 subpassShading_ ) VULKAN_HPP_NOEXCEPT
  56281. {
  56282. subpassShading = subpassShading_;
  56283. return *this;
  56284. }
  56285. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  56286. operator VkPhysicalDeviceSubpassShadingFeaturesHUAWEI const &() const VULKAN_HPP_NOEXCEPT
  56287. {
  56288. return *reinterpret_cast<const VkPhysicalDeviceSubpassShadingFeaturesHUAWEI *>( this );
  56289. }
  56290. operator VkPhysicalDeviceSubpassShadingFeaturesHUAWEI &() VULKAN_HPP_NOEXCEPT
  56291. {
  56292. return *reinterpret_cast<VkPhysicalDeviceSubpassShadingFeaturesHUAWEI *>( this );
  56293. }
  56294. #if defined( VULKAN_HPP_USE_REFLECT )
  56295. # if 14 <= VULKAN_HPP_CPP_VERSION
  56296. auto
  56297. # else
  56298. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
  56299. # endif
  56300. reflect() const VULKAN_HPP_NOEXCEPT
  56301. {
  56302. return std::tie( sType, pNext, subpassShading );
  56303. }
  56304. #endif
  56305. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  56306. auto operator<=>( PhysicalDeviceSubpassShadingFeaturesHUAWEI const & ) const = default;
  56307. #else
  56308. bool operator==( PhysicalDeviceSubpassShadingFeaturesHUAWEI const & rhs ) const VULKAN_HPP_NOEXCEPT
  56309. {
  56310. # if defined( VULKAN_HPP_USE_REFLECT )
  56311. return this->reflect() == rhs.reflect();
  56312. # else
  56313. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( subpassShading == rhs.subpassShading );
  56314. # endif
  56315. }
  56316. bool operator!=( PhysicalDeviceSubpassShadingFeaturesHUAWEI const & rhs ) const VULKAN_HPP_NOEXCEPT
  56317. {
  56318. return !operator==( rhs );
  56319. }
  56320. #endif
  56321. public:
  56322. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceSubpassShadingFeaturesHUAWEI;
  56323. void * pNext = {};
  56324. VULKAN_HPP_NAMESPACE::Bool32 subpassShading = {};
  56325. };
  56326. template <>
  56327. struct CppType<StructureType, StructureType::ePhysicalDeviceSubpassShadingFeaturesHUAWEI>
  56328. {
  56329. using Type = PhysicalDeviceSubpassShadingFeaturesHUAWEI;
  56330. };
  56331. struct PhysicalDeviceSubpassShadingPropertiesHUAWEI
  56332. {
  56333. using NativeType = VkPhysicalDeviceSubpassShadingPropertiesHUAWEI;
  56334. static const bool allowDuplicate = false;
  56335. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceSubpassShadingPropertiesHUAWEI;
  56336. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  56337. VULKAN_HPP_CONSTEXPR PhysicalDeviceSubpassShadingPropertiesHUAWEI( uint32_t maxSubpassShadingWorkgroupSizeAspectRatio_ = {},
  56338. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  56339. : pNext( pNext_ )
  56340. , maxSubpassShadingWorkgroupSizeAspectRatio( maxSubpassShadingWorkgroupSizeAspectRatio_ )
  56341. {
  56342. }
  56343. VULKAN_HPP_CONSTEXPR PhysicalDeviceSubpassShadingPropertiesHUAWEI( PhysicalDeviceSubpassShadingPropertiesHUAWEI const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  56344. PhysicalDeviceSubpassShadingPropertiesHUAWEI( VkPhysicalDeviceSubpassShadingPropertiesHUAWEI const & rhs ) VULKAN_HPP_NOEXCEPT
  56345. : PhysicalDeviceSubpassShadingPropertiesHUAWEI( *reinterpret_cast<PhysicalDeviceSubpassShadingPropertiesHUAWEI const *>( &rhs ) )
  56346. {
  56347. }
  56348. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  56349. PhysicalDeviceSubpassShadingPropertiesHUAWEI & operator=( PhysicalDeviceSubpassShadingPropertiesHUAWEI const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  56350. PhysicalDeviceSubpassShadingPropertiesHUAWEI & operator=( VkPhysicalDeviceSubpassShadingPropertiesHUAWEI const & rhs ) VULKAN_HPP_NOEXCEPT
  56351. {
  56352. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceSubpassShadingPropertiesHUAWEI const *>( &rhs );
  56353. return *this;
  56354. }
  56355. operator VkPhysicalDeviceSubpassShadingPropertiesHUAWEI const &() const VULKAN_HPP_NOEXCEPT
  56356. {
  56357. return *reinterpret_cast<const VkPhysicalDeviceSubpassShadingPropertiesHUAWEI *>( this );
  56358. }
  56359. operator VkPhysicalDeviceSubpassShadingPropertiesHUAWEI &() VULKAN_HPP_NOEXCEPT
  56360. {
  56361. return *reinterpret_cast<VkPhysicalDeviceSubpassShadingPropertiesHUAWEI *>( this );
  56362. }
  56363. #if defined( VULKAN_HPP_USE_REFLECT )
  56364. # if 14 <= VULKAN_HPP_CPP_VERSION
  56365. auto
  56366. # else
  56367. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, uint32_t const &>
  56368. # endif
  56369. reflect() const VULKAN_HPP_NOEXCEPT
  56370. {
  56371. return std::tie( sType, pNext, maxSubpassShadingWorkgroupSizeAspectRatio );
  56372. }
  56373. #endif
  56374. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  56375. auto operator<=>( PhysicalDeviceSubpassShadingPropertiesHUAWEI const & ) const = default;
  56376. #else
  56377. bool operator==( PhysicalDeviceSubpassShadingPropertiesHUAWEI const & rhs ) const VULKAN_HPP_NOEXCEPT
  56378. {
  56379. # if defined( VULKAN_HPP_USE_REFLECT )
  56380. return this->reflect() == rhs.reflect();
  56381. # else
  56382. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( maxSubpassShadingWorkgroupSizeAspectRatio == rhs.maxSubpassShadingWorkgroupSizeAspectRatio );
  56383. # endif
  56384. }
  56385. bool operator!=( PhysicalDeviceSubpassShadingPropertiesHUAWEI const & rhs ) const VULKAN_HPP_NOEXCEPT
  56386. {
  56387. return !operator==( rhs );
  56388. }
  56389. #endif
  56390. public:
  56391. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceSubpassShadingPropertiesHUAWEI;
  56392. void * pNext = {};
  56393. uint32_t maxSubpassShadingWorkgroupSizeAspectRatio = {};
  56394. };
  56395. template <>
  56396. struct CppType<StructureType, StructureType::ePhysicalDeviceSubpassShadingPropertiesHUAWEI>
  56397. {
  56398. using Type = PhysicalDeviceSubpassShadingPropertiesHUAWEI;
  56399. };
  56400. struct PhysicalDeviceSurfaceInfo2KHR
  56401. {
  56402. using NativeType = VkPhysicalDeviceSurfaceInfo2KHR;
  56403. static const bool allowDuplicate = false;
  56404. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceSurfaceInfo2KHR;
  56405. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  56406. VULKAN_HPP_CONSTEXPR PhysicalDeviceSurfaceInfo2KHR( VULKAN_HPP_NAMESPACE::SurfaceKHR surface_ = {}, const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  56407. : pNext( pNext_ )
  56408. , surface( surface_ )
  56409. {
  56410. }
  56411. VULKAN_HPP_CONSTEXPR PhysicalDeviceSurfaceInfo2KHR( PhysicalDeviceSurfaceInfo2KHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  56412. PhysicalDeviceSurfaceInfo2KHR( VkPhysicalDeviceSurfaceInfo2KHR const & rhs ) VULKAN_HPP_NOEXCEPT
  56413. : PhysicalDeviceSurfaceInfo2KHR( *reinterpret_cast<PhysicalDeviceSurfaceInfo2KHR const *>( &rhs ) )
  56414. {
  56415. }
  56416. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  56417. PhysicalDeviceSurfaceInfo2KHR & operator=( PhysicalDeviceSurfaceInfo2KHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  56418. PhysicalDeviceSurfaceInfo2KHR & operator=( VkPhysicalDeviceSurfaceInfo2KHR const & rhs ) VULKAN_HPP_NOEXCEPT
  56419. {
  56420. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceSurfaceInfo2KHR const *>( &rhs );
  56421. return *this;
  56422. }
  56423. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  56424. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceSurfaceInfo2KHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  56425. {
  56426. pNext = pNext_;
  56427. return *this;
  56428. }
  56429. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceSurfaceInfo2KHR & setSurface( VULKAN_HPP_NAMESPACE::SurfaceKHR surface_ ) VULKAN_HPP_NOEXCEPT
  56430. {
  56431. surface = surface_;
  56432. return *this;
  56433. }
  56434. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  56435. operator VkPhysicalDeviceSurfaceInfo2KHR const &() const VULKAN_HPP_NOEXCEPT
  56436. {
  56437. return *reinterpret_cast<const VkPhysicalDeviceSurfaceInfo2KHR *>( this );
  56438. }
  56439. operator VkPhysicalDeviceSurfaceInfo2KHR &() VULKAN_HPP_NOEXCEPT
  56440. {
  56441. return *reinterpret_cast<VkPhysicalDeviceSurfaceInfo2KHR *>( this );
  56442. }
  56443. #if defined( VULKAN_HPP_USE_REFLECT )
  56444. # if 14 <= VULKAN_HPP_CPP_VERSION
  56445. auto
  56446. # else
  56447. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::SurfaceKHR const &>
  56448. # endif
  56449. reflect() const VULKAN_HPP_NOEXCEPT
  56450. {
  56451. return std::tie( sType, pNext, surface );
  56452. }
  56453. #endif
  56454. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  56455. auto operator<=>( PhysicalDeviceSurfaceInfo2KHR const & ) const = default;
  56456. #else
  56457. bool operator==( PhysicalDeviceSurfaceInfo2KHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  56458. {
  56459. # if defined( VULKAN_HPP_USE_REFLECT )
  56460. return this->reflect() == rhs.reflect();
  56461. # else
  56462. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( surface == rhs.surface );
  56463. # endif
  56464. }
  56465. bool operator!=( PhysicalDeviceSurfaceInfo2KHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  56466. {
  56467. return !operator==( rhs );
  56468. }
  56469. #endif
  56470. public:
  56471. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceSurfaceInfo2KHR;
  56472. const void * pNext = {};
  56473. VULKAN_HPP_NAMESPACE::SurfaceKHR surface = {};
  56474. };
  56475. template <>
  56476. struct CppType<StructureType, StructureType::ePhysicalDeviceSurfaceInfo2KHR>
  56477. {
  56478. using Type = PhysicalDeviceSurfaceInfo2KHR;
  56479. };
  56480. struct PhysicalDeviceSynchronization2Features
  56481. {
  56482. using NativeType = VkPhysicalDeviceSynchronization2Features;
  56483. static const bool allowDuplicate = false;
  56484. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceSynchronization2Features;
  56485. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  56486. VULKAN_HPP_CONSTEXPR PhysicalDeviceSynchronization2Features( VULKAN_HPP_NAMESPACE::Bool32 synchronization2_ = {},
  56487. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  56488. : pNext( pNext_ )
  56489. , synchronization2( synchronization2_ )
  56490. {
  56491. }
  56492. VULKAN_HPP_CONSTEXPR PhysicalDeviceSynchronization2Features( PhysicalDeviceSynchronization2Features const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  56493. PhysicalDeviceSynchronization2Features( VkPhysicalDeviceSynchronization2Features const & rhs ) VULKAN_HPP_NOEXCEPT
  56494. : PhysicalDeviceSynchronization2Features( *reinterpret_cast<PhysicalDeviceSynchronization2Features const *>( &rhs ) )
  56495. {
  56496. }
  56497. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  56498. PhysicalDeviceSynchronization2Features & operator=( PhysicalDeviceSynchronization2Features const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  56499. PhysicalDeviceSynchronization2Features & operator=( VkPhysicalDeviceSynchronization2Features const & rhs ) VULKAN_HPP_NOEXCEPT
  56500. {
  56501. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceSynchronization2Features const *>( &rhs );
  56502. return *this;
  56503. }
  56504. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  56505. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceSynchronization2Features & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
  56506. {
  56507. pNext = pNext_;
  56508. return *this;
  56509. }
  56510. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceSynchronization2Features & setSynchronization2( VULKAN_HPP_NAMESPACE::Bool32 synchronization2_ ) VULKAN_HPP_NOEXCEPT
  56511. {
  56512. synchronization2 = synchronization2_;
  56513. return *this;
  56514. }
  56515. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  56516. operator VkPhysicalDeviceSynchronization2Features const &() const VULKAN_HPP_NOEXCEPT
  56517. {
  56518. return *reinterpret_cast<const VkPhysicalDeviceSynchronization2Features *>( this );
  56519. }
  56520. operator VkPhysicalDeviceSynchronization2Features &() VULKAN_HPP_NOEXCEPT
  56521. {
  56522. return *reinterpret_cast<VkPhysicalDeviceSynchronization2Features *>( this );
  56523. }
  56524. #if defined( VULKAN_HPP_USE_REFLECT )
  56525. # if 14 <= VULKAN_HPP_CPP_VERSION
  56526. auto
  56527. # else
  56528. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
  56529. # endif
  56530. reflect() const VULKAN_HPP_NOEXCEPT
  56531. {
  56532. return std::tie( sType, pNext, synchronization2 );
  56533. }
  56534. #endif
  56535. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  56536. auto operator<=>( PhysicalDeviceSynchronization2Features const & ) const = default;
  56537. #else
  56538. bool operator==( PhysicalDeviceSynchronization2Features const & rhs ) const VULKAN_HPP_NOEXCEPT
  56539. {
  56540. # if defined( VULKAN_HPP_USE_REFLECT )
  56541. return this->reflect() == rhs.reflect();
  56542. # else
  56543. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( synchronization2 == rhs.synchronization2 );
  56544. # endif
  56545. }
  56546. bool operator!=( PhysicalDeviceSynchronization2Features const & rhs ) const VULKAN_HPP_NOEXCEPT
  56547. {
  56548. return !operator==( rhs );
  56549. }
  56550. #endif
  56551. public:
  56552. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceSynchronization2Features;
  56553. void * pNext = {};
  56554. VULKAN_HPP_NAMESPACE::Bool32 synchronization2 = {};
  56555. };
  56556. template <>
  56557. struct CppType<StructureType, StructureType::ePhysicalDeviceSynchronization2Features>
  56558. {
  56559. using Type = PhysicalDeviceSynchronization2Features;
  56560. };
  56561. using PhysicalDeviceSynchronization2FeaturesKHR = PhysicalDeviceSynchronization2Features;
  56562. struct PhysicalDeviceTexelBufferAlignmentFeaturesEXT
  56563. {
  56564. using NativeType = VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT;
  56565. static const bool allowDuplicate = false;
  56566. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceTexelBufferAlignmentFeaturesEXT;
  56567. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  56568. VULKAN_HPP_CONSTEXPR PhysicalDeviceTexelBufferAlignmentFeaturesEXT( VULKAN_HPP_NAMESPACE::Bool32 texelBufferAlignment_ = {},
  56569. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  56570. : pNext( pNext_ )
  56571. , texelBufferAlignment( texelBufferAlignment_ )
  56572. {
  56573. }
  56574. VULKAN_HPP_CONSTEXPR
  56575. PhysicalDeviceTexelBufferAlignmentFeaturesEXT( PhysicalDeviceTexelBufferAlignmentFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  56576. PhysicalDeviceTexelBufferAlignmentFeaturesEXT( VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  56577. : PhysicalDeviceTexelBufferAlignmentFeaturesEXT( *reinterpret_cast<PhysicalDeviceTexelBufferAlignmentFeaturesEXT const *>( &rhs ) )
  56578. {
  56579. }
  56580. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  56581. PhysicalDeviceTexelBufferAlignmentFeaturesEXT & operator=( PhysicalDeviceTexelBufferAlignmentFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  56582. PhysicalDeviceTexelBufferAlignmentFeaturesEXT & operator=( VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  56583. {
  56584. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceTexelBufferAlignmentFeaturesEXT const *>( &rhs );
  56585. return *this;
  56586. }
  56587. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  56588. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceTexelBufferAlignmentFeaturesEXT & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
  56589. {
  56590. pNext = pNext_;
  56591. return *this;
  56592. }
  56593. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceTexelBufferAlignmentFeaturesEXT &
  56594. setTexelBufferAlignment( VULKAN_HPP_NAMESPACE::Bool32 texelBufferAlignment_ ) VULKAN_HPP_NOEXCEPT
  56595. {
  56596. texelBufferAlignment = texelBufferAlignment_;
  56597. return *this;
  56598. }
  56599. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  56600. operator VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT const &() const VULKAN_HPP_NOEXCEPT
  56601. {
  56602. return *reinterpret_cast<const VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT *>( this );
  56603. }
  56604. operator VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT &() VULKAN_HPP_NOEXCEPT
  56605. {
  56606. return *reinterpret_cast<VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT *>( this );
  56607. }
  56608. #if defined( VULKAN_HPP_USE_REFLECT )
  56609. # if 14 <= VULKAN_HPP_CPP_VERSION
  56610. auto
  56611. # else
  56612. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
  56613. # endif
  56614. reflect() const VULKAN_HPP_NOEXCEPT
  56615. {
  56616. return std::tie( sType, pNext, texelBufferAlignment );
  56617. }
  56618. #endif
  56619. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  56620. auto operator<=>( PhysicalDeviceTexelBufferAlignmentFeaturesEXT const & ) const = default;
  56621. #else
  56622. bool operator==( PhysicalDeviceTexelBufferAlignmentFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  56623. {
  56624. # if defined( VULKAN_HPP_USE_REFLECT )
  56625. return this->reflect() == rhs.reflect();
  56626. # else
  56627. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( texelBufferAlignment == rhs.texelBufferAlignment );
  56628. # endif
  56629. }
  56630. bool operator!=( PhysicalDeviceTexelBufferAlignmentFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  56631. {
  56632. return !operator==( rhs );
  56633. }
  56634. #endif
  56635. public:
  56636. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceTexelBufferAlignmentFeaturesEXT;
  56637. void * pNext = {};
  56638. VULKAN_HPP_NAMESPACE::Bool32 texelBufferAlignment = {};
  56639. };
  56640. template <>
  56641. struct CppType<StructureType, StructureType::ePhysicalDeviceTexelBufferAlignmentFeaturesEXT>
  56642. {
  56643. using Type = PhysicalDeviceTexelBufferAlignmentFeaturesEXT;
  56644. };
  56645. struct PhysicalDeviceTexelBufferAlignmentProperties
  56646. {
  56647. using NativeType = VkPhysicalDeviceTexelBufferAlignmentProperties;
  56648. static const bool allowDuplicate = false;
  56649. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceTexelBufferAlignmentProperties;
  56650. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  56651. VULKAN_HPP_CONSTEXPR PhysicalDeviceTexelBufferAlignmentProperties( VULKAN_HPP_NAMESPACE::DeviceSize storageTexelBufferOffsetAlignmentBytes_ = {},
  56652. VULKAN_HPP_NAMESPACE::Bool32 storageTexelBufferOffsetSingleTexelAlignment_ = {},
  56653. VULKAN_HPP_NAMESPACE::DeviceSize uniformTexelBufferOffsetAlignmentBytes_ = {},
  56654. VULKAN_HPP_NAMESPACE::Bool32 uniformTexelBufferOffsetSingleTexelAlignment_ = {},
  56655. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  56656. : pNext( pNext_ )
  56657. , storageTexelBufferOffsetAlignmentBytes( storageTexelBufferOffsetAlignmentBytes_ )
  56658. , storageTexelBufferOffsetSingleTexelAlignment( storageTexelBufferOffsetSingleTexelAlignment_ )
  56659. , uniformTexelBufferOffsetAlignmentBytes( uniformTexelBufferOffsetAlignmentBytes_ )
  56660. , uniformTexelBufferOffsetSingleTexelAlignment( uniformTexelBufferOffsetSingleTexelAlignment_ )
  56661. {
  56662. }
  56663. VULKAN_HPP_CONSTEXPR PhysicalDeviceTexelBufferAlignmentProperties( PhysicalDeviceTexelBufferAlignmentProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  56664. PhysicalDeviceTexelBufferAlignmentProperties( VkPhysicalDeviceTexelBufferAlignmentProperties const & rhs ) VULKAN_HPP_NOEXCEPT
  56665. : PhysicalDeviceTexelBufferAlignmentProperties( *reinterpret_cast<PhysicalDeviceTexelBufferAlignmentProperties const *>( &rhs ) )
  56666. {
  56667. }
  56668. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  56669. PhysicalDeviceTexelBufferAlignmentProperties & operator=( PhysicalDeviceTexelBufferAlignmentProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  56670. PhysicalDeviceTexelBufferAlignmentProperties & operator=( VkPhysicalDeviceTexelBufferAlignmentProperties const & rhs ) VULKAN_HPP_NOEXCEPT
  56671. {
  56672. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceTexelBufferAlignmentProperties const *>( &rhs );
  56673. return *this;
  56674. }
  56675. operator VkPhysicalDeviceTexelBufferAlignmentProperties const &() const VULKAN_HPP_NOEXCEPT
  56676. {
  56677. return *reinterpret_cast<const VkPhysicalDeviceTexelBufferAlignmentProperties *>( this );
  56678. }
  56679. operator VkPhysicalDeviceTexelBufferAlignmentProperties &() VULKAN_HPP_NOEXCEPT
  56680. {
  56681. return *reinterpret_cast<VkPhysicalDeviceTexelBufferAlignmentProperties *>( this );
  56682. }
  56683. #if defined( VULKAN_HPP_USE_REFLECT )
  56684. # if 14 <= VULKAN_HPP_CPP_VERSION
  56685. auto
  56686. # else
  56687. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  56688. void * const &,
  56689. VULKAN_HPP_NAMESPACE::DeviceSize const &,
  56690. VULKAN_HPP_NAMESPACE::Bool32 const &,
  56691. VULKAN_HPP_NAMESPACE::DeviceSize const &,
  56692. VULKAN_HPP_NAMESPACE::Bool32 const &>
  56693. # endif
  56694. reflect() const VULKAN_HPP_NOEXCEPT
  56695. {
  56696. return std::tie( sType,
  56697. pNext,
  56698. storageTexelBufferOffsetAlignmentBytes,
  56699. storageTexelBufferOffsetSingleTexelAlignment,
  56700. uniformTexelBufferOffsetAlignmentBytes,
  56701. uniformTexelBufferOffsetSingleTexelAlignment );
  56702. }
  56703. #endif
  56704. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  56705. auto operator<=>( PhysicalDeviceTexelBufferAlignmentProperties const & ) const = default;
  56706. #else
  56707. bool operator==( PhysicalDeviceTexelBufferAlignmentProperties const & rhs ) const VULKAN_HPP_NOEXCEPT
  56708. {
  56709. # if defined( VULKAN_HPP_USE_REFLECT )
  56710. return this->reflect() == rhs.reflect();
  56711. # else
  56712. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( storageTexelBufferOffsetAlignmentBytes == rhs.storageTexelBufferOffsetAlignmentBytes ) &&
  56713. ( storageTexelBufferOffsetSingleTexelAlignment == rhs.storageTexelBufferOffsetSingleTexelAlignment ) &&
  56714. ( uniformTexelBufferOffsetAlignmentBytes == rhs.uniformTexelBufferOffsetAlignmentBytes ) &&
  56715. ( uniformTexelBufferOffsetSingleTexelAlignment == rhs.uniformTexelBufferOffsetSingleTexelAlignment );
  56716. # endif
  56717. }
  56718. bool operator!=( PhysicalDeviceTexelBufferAlignmentProperties const & rhs ) const VULKAN_HPP_NOEXCEPT
  56719. {
  56720. return !operator==( rhs );
  56721. }
  56722. #endif
  56723. public:
  56724. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceTexelBufferAlignmentProperties;
  56725. void * pNext = {};
  56726. VULKAN_HPP_NAMESPACE::DeviceSize storageTexelBufferOffsetAlignmentBytes = {};
  56727. VULKAN_HPP_NAMESPACE::Bool32 storageTexelBufferOffsetSingleTexelAlignment = {};
  56728. VULKAN_HPP_NAMESPACE::DeviceSize uniformTexelBufferOffsetAlignmentBytes = {};
  56729. VULKAN_HPP_NAMESPACE::Bool32 uniformTexelBufferOffsetSingleTexelAlignment = {};
  56730. };
  56731. template <>
  56732. struct CppType<StructureType, StructureType::ePhysicalDeviceTexelBufferAlignmentProperties>
  56733. {
  56734. using Type = PhysicalDeviceTexelBufferAlignmentProperties;
  56735. };
  56736. using PhysicalDeviceTexelBufferAlignmentPropertiesEXT = PhysicalDeviceTexelBufferAlignmentProperties;
  56737. struct PhysicalDeviceTextureCompressionASTCHDRFeatures
  56738. {
  56739. using NativeType = VkPhysicalDeviceTextureCompressionASTCHDRFeatures;
  56740. static const bool allowDuplicate = false;
  56741. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceTextureCompressionAstcHdrFeatures;
  56742. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  56743. VULKAN_HPP_CONSTEXPR PhysicalDeviceTextureCompressionASTCHDRFeatures( VULKAN_HPP_NAMESPACE::Bool32 textureCompressionASTC_HDR_ = {},
  56744. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  56745. : pNext( pNext_ )
  56746. , textureCompressionASTC_HDR( textureCompressionASTC_HDR_ )
  56747. {
  56748. }
  56749. VULKAN_HPP_CONSTEXPR
  56750. PhysicalDeviceTextureCompressionASTCHDRFeatures( PhysicalDeviceTextureCompressionASTCHDRFeatures const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  56751. PhysicalDeviceTextureCompressionASTCHDRFeatures( VkPhysicalDeviceTextureCompressionASTCHDRFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
  56752. : PhysicalDeviceTextureCompressionASTCHDRFeatures( *reinterpret_cast<PhysicalDeviceTextureCompressionASTCHDRFeatures const *>( &rhs ) )
  56753. {
  56754. }
  56755. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  56756. PhysicalDeviceTextureCompressionASTCHDRFeatures & operator=( PhysicalDeviceTextureCompressionASTCHDRFeatures const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  56757. PhysicalDeviceTextureCompressionASTCHDRFeatures & operator=( VkPhysicalDeviceTextureCompressionASTCHDRFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
  56758. {
  56759. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceTextureCompressionASTCHDRFeatures const *>( &rhs );
  56760. return *this;
  56761. }
  56762. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  56763. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceTextureCompressionASTCHDRFeatures & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
  56764. {
  56765. pNext = pNext_;
  56766. return *this;
  56767. }
  56768. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceTextureCompressionASTCHDRFeatures &
  56769. setTextureCompressionASTC_HDR( VULKAN_HPP_NAMESPACE::Bool32 textureCompressionASTC_HDR_ ) VULKAN_HPP_NOEXCEPT
  56770. {
  56771. textureCompressionASTC_HDR = textureCompressionASTC_HDR_;
  56772. return *this;
  56773. }
  56774. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  56775. operator VkPhysicalDeviceTextureCompressionASTCHDRFeatures const &() const VULKAN_HPP_NOEXCEPT
  56776. {
  56777. return *reinterpret_cast<const VkPhysicalDeviceTextureCompressionASTCHDRFeatures *>( this );
  56778. }
  56779. operator VkPhysicalDeviceTextureCompressionASTCHDRFeatures &() VULKAN_HPP_NOEXCEPT
  56780. {
  56781. return *reinterpret_cast<VkPhysicalDeviceTextureCompressionASTCHDRFeatures *>( this );
  56782. }
  56783. #if defined( VULKAN_HPP_USE_REFLECT )
  56784. # if 14 <= VULKAN_HPP_CPP_VERSION
  56785. auto
  56786. # else
  56787. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
  56788. # endif
  56789. reflect() const VULKAN_HPP_NOEXCEPT
  56790. {
  56791. return std::tie( sType, pNext, textureCompressionASTC_HDR );
  56792. }
  56793. #endif
  56794. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  56795. auto operator<=>( PhysicalDeviceTextureCompressionASTCHDRFeatures const & ) const = default;
  56796. #else
  56797. bool operator==( PhysicalDeviceTextureCompressionASTCHDRFeatures const & rhs ) const VULKAN_HPP_NOEXCEPT
  56798. {
  56799. # if defined( VULKAN_HPP_USE_REFLECT )
  56800. return this->reflect() == rhs.reflect();
  56801. # else
  56802. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( textureCompressionASTC_HDR == rhs.textureCompressionASTC_HDR );
  56803. # endif
  56804. }
  56805. bool operator!=( PhysicalDeviceTextureCompressionASTCHDRFeatures const & rhs ) const VULKAN_HPP_NOEXCEPT
  56806. {
  56807. return !operator==( rhs );
  56808. }
  56809. #endif
  56810. public:
  56811. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceTextureCompressionAstcHdrFeatures;
  56812. void * pNext = {};
  56813. VULKAN_HPP_NAMESPACE::Bool32 textureCompressionASTC_HDR = {};
  56814. };
  56815. template <>
  56816. struct CppType<StructureType, StructureType::ePhysicalDeviceTextureCompressionAstcHdrFeatures>
  56817. {
  56818. using Type = PhysicalDeviceTextureCompressionASTCHDRFeatures;
  56819. };
  56820. using PhysicalDeviceTextureCompressionASTCHDRFeaturesEXT = PhysicalDeviceTextureCompressionASTCHDRFeatures;
  56821. struct PhysicalDeviceTilePropertiesFeaturesQCOM
  56822. {
  56823. using NativeType = VkPhysicalDeviceTilePropertiesFeaturesQCOM;
  56824. static const bool allowDuplicate = false;
  56825. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceTilePropertiesFeaturesQCOM;
  56826. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  56827. VULKAN_HPP_CONSTEXPR PhysicalDeviceTilePropertiesFeaturesQCOM( VULKAN_HPP_NAMESPACE::Bool32 tileProperties_ = {},
  56828. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  56829. : pNext( pNext_ )
  56830. , tileProperties( tileProperties_ )
  56831. {
  56832. }
  56833. VULKAN_HPP_CONSTEXPR PhysicalDeviceTilePropertiesFeaturesQCOM( PhysicalDeviceTilePropertiesFeaturesQCOM const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  56834. PhysicalDeviceTilePropertiesFeaturesQCOM( VkPhysicalDeviceTilePropertiesFeaturesQCOM const & rhs ) VULKAN_HPP_NOEXCEPT
  56835. : PhysicalDeviceTilePropertiesFeaturesQCOM( *reinterpret_cast<PhysicalDeviceTilePropertiesFeaturesQCOM const *>( &rhs ) )
  56836. {
  56837. }
  56838. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  56839. PhysicalDeviceTilePropertiesFeaturesQCOM & operator=( PhysicalDeviceTilePropertiesFeaturesQCOM const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  56840. PhysicalDeviceTilePropertiesFeaturesQCOM & operator=( VkPhysicalDeviceTilePropertiesFeaturesQCOM const & rhs ) VULKAN_HPP_NOEXCEPT
  56841. {
  56842. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceTilePropertiesFeaturesQCOM const *>( &rhs );
  56843. return *this;
  56844. }
  56845. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  56846. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceTilePropertiesFeaturesQCOM & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
  56847. {
  56848. pNext = pNext_;
  56849. return *this;
  56850. }
  56851. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceTilePropertiesFeaturesQCOM & setTileProperties( VULKAN_HPP_NAMESPACE::Bool32 tileProperties_ ) VULKAN_HPP_NOEXCEPT
  56852. {
  56853. tileProperties = tileProperties_;
  56854. return *this;
  56855. }
  56856. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  56857. operator VkPhysicalDeviceTilePropertiesFeaturesQCOM const &() const VULKAN_HPP_NOEXCEPT
  56858. {
  56859. return *reinterpret_cast<const VkPhysicalDeviceTilePropertiesFeaturesQCOM *>( this );
  56860. }
  56861. operator VkPhysicalDeviceTilePropertiesFeaturesQCOM &() VULKAN_HPP_NOEXCEPT
  56862. {
  56863. return *reinterpret_cast<VkPhysicalDeviceTilePropertiesFeaturesQCOM *>( this );
  56864. }
  56865. #if defined( VULKAN_HPP_USE_REFLECT )
  56866. # if 14 <= VULKAN_HPP_CPP_VERSION
  56867. auto
  56868. # else
  56869. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
  56870. # endif
  56871. reflect() const VULKAN_HPP_NOEXCEPT
  56872. {
  56873. return std::tie( sType, pNext, tileProperties );
  56874. }
  56875. #endif
  56876. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  56877. auto operator<=>( PhysicalDeviceTilePropertiesFeaturesQCOM const & ) const = default;
  56878. #else
  56879. bool operator==( PhysicalDeviceTilePropertiesFeaturesQCOM const & rhs ) const VULKAN_HPP_NOEXCEPT
  56880. {
  56881. # if defined( VULKAN_HPP_USE_REFLECT )
  56882. return this->reflect() == rhs.reflect();
  56883. # else
  56884. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( tileProperties == rhs.tileProperties );
  56885. # endif
  56886. }
  56887. bool operator!=( PhysicalDeviceTilePropertiesFeaturesQCOM const & rhs ) const VULKAN_HPP_NOEXCEPT
  56888. {
  56889. return !operator==( rhs );
  56890. }
  56891. #endif
  56892. public:
  56893. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceTilePropertiesFeaturesQCOM;
  56894. void * pNext = {};
  56895. VULKAN_HPP_NAMESPACE::Bool32 tileProperties = {};
  56896. };
  56897. template <>
  56898. struct CppType<StructureType, StructureType::ePhysicalDeviceTilePropertiesFeaturesQCOM>
  56899. {
  56900. using Type = PhysicalDeviceTilePropertiesFeaturesQCOM;
  56901. };
  56902. struct PhysicalDeviceTimelineSemaphoreFeatures
  56903. {
  56904. using NativeType = VkPhysicalDeviceTimelineSemaphoreFeatures;
  56905. static const bool allowDuplicate = false;
  56906. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceTimelineSemaphoreFeatures;
  56907. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  56908. VULKAN_HPP_CONSTEXPR PhysicalDeviceTimelineSemaphoreFeatures( VULKAN_HPP_NAMESPACE::Bool32 timelineSemaphore_ = {},
  56909. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  56910. : pNext( pNext_ )
  56911. , timelineSemaphore( timelineSemaphore_ )
  56912. {
  56913. }
  56914. VULKAN_HPP_CONSTEXPR PhysicalDeviceTimelineSemaphoreFeatures( PhysicalDeviceTimelineSemaphoreFeatures const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  56915. PhysicalDeviceTimelineSemaphoreFeatures( VkPhysicalDeviceTimelineSemaphoreFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
  56916. : PhysicalDeviceTimelineSemaphoreFeatures( *reinterpret_cast<PhysicalDeviceTimelineSemaphoreFeatures const *>( &rhs ) )
  56917. {
  56918. }
  56919. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  56920. PhysicalDeviceTimelineSemaphoreFeatures & operator=( PhysicalDeviceTimelineSemaphoreFeatures const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  56921. PhysicalDeviceTimelineSemaphoreFeatures & operator=( VkPhysicalDeviceTimelineSemaphoreFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
  56922. {
  56923. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceTimelineSemaphoreFeatures const *>( &rhs );
  56924. return *this;
  56925. }
  56926. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  56927. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceTimelineSemaphoreFeatures & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
  56928. {
  56929. pNext = pNext_;
  56930. return *this;
  56931. }
  56932. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceTimelineSemaphoreFeatures &
  56933. setTimelineSemaphore( VULKAN_HPP_NAMESPACE::Bool32 timelineSemaphore_ ) VULKAN_HPP_NOEXCEPT
  56934. {
  56935. timelineSemaphore = timelineSemaphore_;
  56936. return *this;
  56937. }
  56938. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  56939. operator VkPhysicalDeviceTimelineSemaphoreFeatures const &() const VULKAN_HPP_NOEXCEPT
  56940. {
  56941. return *reinterpret_cast<const VkPhysicalDeviceTimelineSemaphoreFeatures *>( this );
  56942. }
  56943. operator VkPhysicalDeviceTimelineSemaphoreFeatures &() VULKAN_HPP_NOEXCEPT
  56944. {
  56945. return *reinterpret_cast<VkPhysicalDeviceTimelineSemaphoreFeatures *>( this );
  56946. }
  56947. #if defined( VULKAN_HPP_USE_REFLECT )
  56948. # if 14 <= VULKAN_HPP_CPP_VERSION
  56949. auto
  56950. # else
  56951. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
  56952. # endif
  56953. reflect() const VULKAN_HPP_NOEXCEPT
  56954. {
  56955. return std::tie( sType, pNext, timelineSemaphore );
  56956. }
  56957. #endif
  56958. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  56959. auto operator<=>( PhysicalDeviceTimelineSemaphoreFeatures const & ) const = default;
  56960. #else
  56961. bool operator==( PhysicalDeviceTimelineSemaphoreFeatures const & rhs ) const VULKAN_HPP_NOEXCEPT
  56962. {
  56963. # if defined( VULKAN_HPP_USE_REFLECT )
  56964. return this->reflect() == rhs.reflect();
  56965. # else
  56966. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( timelineSemaphore == rhs.timelineSemaphore );
  56967. # endif
  56968. }
  56969. bool operator!=( PhysicalDeviceTimelineSemaphoreFeatures const & rhs ) const VULKAN_HPP_NOEXCEPT
  56970. {
  56971. return !operator==( rhs );
  56972. }
  56973. #endif
  56974. public:
  56975. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceTimelineSemaphoreFeatures;
  56976. void * pNext = {};
  56977. VULKAN_HPP_NAMESPACE::Bool32 timelineSemaphore = {};
  56978. };
  56979. template <>
  56980. struct CppType<StructureType, StructureType::ePhysicalDeviceTimelineSemaphoreFeatures>
  56981. {
  56982. using Type = PhysicalDeviceTimelineSemaphoreFeatures;
  56983. };
  56984. using PhysicalDeviceTimelineSemaphoreFeaturesKHR = PhysicalDeviceTimelineSemaphoreFeatures;
  56985. struct PhysicalDeviceTimelineSemaphoreProperties
  56986. {
  56987. using NativeType = VkPhysicalDeviceTimelineSemaphoreProperties;
  56988. static const bool allowDuplicate = false;
  56989. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceTimelineSemaphoreProperties;
  56990. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  56991. VULKAN_HPP_CONSTEXPR PhysicalDeviceTimelineSemaphoreProperties( uint64_t maxTimelineSemaphoreValueDifference_ = {},
  56992. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  56993. : pNext( pNext_ )
  56994. , maxTimelineSemaphoreValueDifference( maxTimelineSemaphoreValueDifference_ )
  56995. {
  56996. }
  56997. VULKAN_HPP_CONSTEXPR PhysicalDeviceTimelineSemaphoreProperties( PhysicalDeviceTimelineSemaphoreProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  56998. PhysicalDeviceTimelineSemaphoreProperties( VkPhysicalDeviceTimelineSemaphoreProperties const & rhs ) VULKAN_HPP_NOEXCEPT
  56999. : PhysicalDeviceTimelineSemaphoreProperties( *reinterpret_cast<PhysicalDeviceTimelineSemaphoreProperties const *>( &rhs ) )
  57000. {
  57001. }
  57002. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  57003. PhysicalDeviceTimelineSemaphoreProperties & operator=( PhysicalDeviceTimelineSemaphoreProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  57004. PhysicalDeviceTimelineSemaphoreProperties & operator=( VkPhysicalDeviceTimelineSemaphoreProperties const & rhs ) VULKAN_HPP_NOEXCEPT
  57005. {
  57006. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceTimelineSemaphoreProperties const *>( &rhs );
  57007. return *this;
  57008. }
  57009. operator VkPhysicalDeviceTimelineSemaphoreProperties const &() const VULKAN_HPP_NOEXCEPT
  57010. {
  57011. return *reinterpret_cast<const VkPhysicalDeviceTimelineSemaphoreProperties *>( this );
  57012. }
  57013. operator VkPhysicalDeviceTimelineSemaphoreProperties &() VULKAN_HPP_NOEXCEPT
  57014. {
  57015. return *reinterpret_cast<VkPhysicalDeviceTimelineSemaphoreProperties *>( this );
  57016. }
  57017. #if defined( VULKAN_HPP_USE_REFLECT )
  57018. # if 14 <= VULKAN_HPP_CPP_VERSION
  57019. auto
  57020. # else
  57021. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, uint64_t const &>
  57022. # endif
  57023. reflect() const VULKAN_HPP_NOEXCEPT
  57024. {
  57025. return std::tie( sType, pNext, maxTimelineSemaphoreValueDifference );
  57026. }
  57027. #endif
  57028. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  57029. auto operator<=>( PhysicalDeviceTimelineSemaphoreProperties const & ) const = default;
  57030. #else
  57031. bool operator==( PhysicalDeviceTimelineSemaphoreProperties const & rhs ) const VULKAN_HPP_NOEXCEPT
  57032. {
  57033. # if defined( VULKAN_HPP_USE_REFLECT )
  57034. return this->reflect() == rhs.reflect();
  57035. # else
  57036. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( maxTimelineSemaphoreValueDifference == rhs.maxTimelineSemaphoreValueDifference );
  57037. # endif
  57038. }
  57039. bool operator!=( PhysicalDeviceTimelineSemaphoreProperties const & rhs ) const VULKAN_HPP_NOEXCEPT
  57040. {
  57041. return !operator==( rhs );
  57042. }
  57043. #endif
  57044. public:
  57045. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceTimelineSemaphoreProperties;
  57046. void * pNext = {};
  57047. uint64_t maxTimelineSemaphoreValueDifference = {};
  57048. };
  57049. template <>
  57050. struct CppType<StructureType, StructureType::ePhysicalDeviceTimelineSemaphoreProperties>
  57051. {
  57052. using Type = PhysicalDeviceTimelineSemaphoreProperties;
  57053. };
  57054. using PhysicalDeviceTimelineSemaphorePropertiesKHR = PhysicalDeviceTimelineSemaphoreProperties;
  57055. struct PhysicalDeviceToolProperties
  57056. {
  57057. using NativeType = VkPhysicalDeviceToolProperties;
  57058. static const bool allowDuplicate = false;
  57059. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceToolProperties;
  57060. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  57061. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceToolProperties( std::array<char, VK_MAX_EXTENSION_NAME_SIZE> const & name_ = {},
  57062. std::array<char, VK_MAX_EXTENSION_NAME_SIZE> const & version_ = {},
  57063. VULKAN_HPP_NAMESPACE::ToolPurposeFlags purposes_ = {},
  57064. std::array<char, VK_MAX_DESCRIPTION_SIZE> const & description_ = {},
  57065. std::array<char, VK_MAX_EXTENSION_NAME_SIZE> const & layer_ = {},
  57066. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  57067. : pNext( pNext_ )
  57068. , name( name_ )
  57069. , version( version_ )
  57070. , purposes( purposes_ )
  57071. , description( description_ )
  57072. , layer( layer_ )
  57073. {
  57074. }
  57075. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceToolProperties( PhysicalDeviceToolProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  57076. PhysicalDeviceToolProperties( VkPhysicalDeviceToolProperties const & rhs ) VULKAN_HPP_NOEXCEPT
  57077. : PhysicalDeviceToolProperties( *reinterpret_cast<PhysicalDeviceToolProperties const *>( &rhs ) )
  57078. {
  57079. }
  57080. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  57081. PhysicalDeviceToolProperties & operator=( PhysicalDeviceToolProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  57082. PhysicalDeviceToolProperties & operator=( VkPhysicalDeviceToolProperties const & rhs ) VULKAN_HPP_NOEXCEPT
  57083. {
  57084. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceToolProperties const *>( &rhs );
  57085. return *this;
  57086. }
  57087. operator VkPhysicalDeviceToolProperties const &() const VULKAN_HPP_NOEXCEPT
  57088. {
  57089. return *reinterpret_cast<const VkPhysicalDeviceToolProperties *>( this );
  57090. }
  57091. operator VkPhysicalDeviceToolProperties &() VULKAN_HPP_NOEXCEPT
  57092. {
  57093. return *reinterpret_cast<VkPhysicalDeviceToolProperties *>( this );
  57094. }
  57095. #if defined( VULKAN_HPP_USE_REFLECT )
  57096. # if 14 <= VULKAN_HPP_CPP_VERSION
  57097. auto
  57098. # else
  57099. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  57100. void * const &,
  57101. VULKAN_HPP_NAMESPACE::ArrayWrapper1D<char, VK_MAX_EXTENSION_NAME_SIZE> const &,
  57102. VULKAN_HPP_NAMESPACE::ArrayWrapper1D<char, VK_MAX_EXTENSION_NAME_SIZE> const &,
  57103. VULKAN_HPP_NAMESPACE::ToolPurposeFlags const &,
  57104. VULKAN_HPP_NAMESPACE::ArrayWrapper1D<char, VK_MAX_DESCRIPTION_SIZE> const &,
  57105. VULKAN_HPP_NAMESPACE::ArrayWrapper1D<char, VK_MAX_EXTENSION_NAME_SIZE> const &>
  57106. # endif
  57107. reflect() const VULKAN_HPP_NOEXCEPT
  57108. {
  57109. return std::tie( sType, pNext, name, version, purposes, description, layer );
  57110. }
  57111. #endif
  57112. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  57113. auto operator<=>( PhysicalDeviceToolProperties const & ) const = default;
  57114. #else
  57115. bool operator==( PhysicalDeviceToolProperties const & rhs ) const VULKAN_HPP_NOEXCEPT
  57116. {
  57117. # if defined( VULKAN_HPP_USE_REFLECT )
  57118. return this->reflect() == rhs.reflect();
  57119. # else
  57120. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( name == rhs.name ) && ( version == rhs.version ) && ( purposes == rhs.purposes ) &&
  57121. ( description == rhs.description ) && ( layer == rhs.layer );
  57122. # endif
  57123. }
  57124. bool operator!=( PhysicalDeviceToolProperties const & rhs ) const VULKAN_HPP_NOEXCEPT
  57125. {
  57126. return !operator==( rhs );
  57127. }
  57128. #endif
  57129. public:
  57130. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceToolProperties;
  57131. void * pNext = {};
  57132. VULKAN_HPP_NAMESPACE::ArrayWrapper1D<char, VK_MAX_EXTENSION_NAME_SIZE> name = {};
  57133. VULKAN_HPP_NAMESPACE::ArrayWrapper1D<char, VK_MAX_EXTENSION_NAME_SIZE> version = {};
  57134. VULKAN_HPP_NAMESPACE::ToolPurposeFlags purposes = {};
  57135. VULKAN_HPP_NAMESPACE::ArrayWrapper1D<char, VK_MAX_DESCRIPTION_SIZE> description = {};
  57136. VULKAN_HPP_NAMESPACE::ArrayWrapper1D<char, VK_MAX_EXTENSION_NAME_SIZE> layer = {};
  57137. };
  57138. template <>
  57139. struct CppType<StructureType, StructureType::ePhysicalDeviceToolProperties>
  57140. {
  57141. using Type = PhysicalDeviceToolProperties;
  57142. };
  57143. using PhysicalDeviceToolPropertiesEXT = PhysicalDeviceToolProperties;
  57144. struct PhysicalDeviceTransformFeedbackFeaturesEXT
  57145. {
  57146. using NativeType = VkPhysicalDeviceTransformFeedbackFeaturesEXT;
  57147. static const bool allowDuplicate = false;
  57148. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceTransformFeedbackFeaturesEXT;
  57149. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  57150. VULKAN_HPP_CONSTEXPR PhysicalDeviceTransformFeedbackFeaturesEXT( VULKAN_HPP_NAMESPACE::Bool32 transformFeedback_ = {},
  57151. VULKAN_HPP_NAMESPACE::Bool32 geometryStreams_ = {},
  57152. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  57153. : pNext( pNext_ )
  57154. , transformFeedback( transformFeedback_ )
  57155. , geometryStreams( geometryStreams_ )
  57156. {
  57157. }
  57158. VULKAN_HPP_CONSTEXPR PhysicalDeviceTransformFeedbackFeaturesEXT( PhysicalDeviceTransformFeedbackFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  57159. PhysicalDeviceTransformFeedbackFeaturesEXT( VkPhysicalDeviceTransformFeedbackFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  57160. : PhysicalDeviceTransformFeedbackFeaturesEXT( *reinterpret_cast<PhysicalDeviceTransformFeedbackFeaturesEXT const *>( &rhs ) )
  57161. {
  57162. }
  57163. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  57164. PhysicalDeviceTransformFeedbackFeaturesEXT & operator=( PhysicalDeviceTransformFeedbackFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  57165. PhysicalDeviceTransformFeedbackFeaturesEXT & operator=( VkPhysicalDeviceTransformFeedbackFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  57166. {
  57167. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceTransformFeedbackFeaturesEXT const *>( &rhs );
  57168. return *this;
  57169. }
  57170. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  57171. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceTransformFeedbackFeaturesEXT & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
  57172. {
  57173. pNext = pNext_;
  57174. return *this;
  57175. }
  57176. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceTransformFeedbackFeaturesEXT &
  57177. setTransformFeedback( VULKAN_HPP_NAMESPACE::Bool32 transformFeedback_ ) VULKAN_HPP_NOEXCEPT
  57178. {
  57179. transformFeedback = transformFeedback_;
  57180. return *this;
  57181. }
  57182. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceTransformFeedbackFeaturesEXT & setGeometryStreams( VULKAN_HPP_NAMESPACE::Bool32 geometryStreams_ ) VULKAN_HPP_NOEXCEPT
  57183. {
  57184. geometryStreams = geometryStreams_;
  57185. return *this;
  57186. }
  57187. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  57188. operator VkPhysicalDeviceTransformFeedbackFeaturesEXT const &() const VULKAN_HPP_NOEXCEPT
  57189. {
  57190. return *reinterpret_cast<const VkPhysicalDeviceTransformFeedbackFeaturesEXT *>( this );
  57191. }
  57192. operator VkPhysicalDeviceTransformFeedbackFeaturesEXT &() VULKAN_HPP_NOEXCEPT
  57193. {
  57194. return *reinterpret_cast<VkPhysicalDeviceTransformFeedbackFeaturesEXT *>( this );
  57195. }
  57196. #if defined( VULKAN_HPP_USE_REFLECT )
  57197. # if 14 <= VULKAN_HPP_CPP_VERSION
  57198. auto
  57199. # else
  57200. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
  57201. # endif
  57202. reflect() const VULKAN_HPP_NOEXCEPT
  57203. {
  57204. return std::tie( sType, pNext, transformFeedback, geometryStreams );
  57205. }
  57206. #endif
  57207. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  57208. auto operator<=>( PhysicalDeviceTransformFeedbackFeaturesEXT const & ) const = default;
  57209. #else
  57210. bool operator==( PhysicalDeviceTransformFeedbackFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  57211. {
  57212. # if defined( VULKAN_HPP_USE_REFLECT )
  57213. return this->reflect() == rhs.reflect();
  57214. # else
  57215. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( transformFeedback == rhs.transformFeedback ) && ( geometryStreams == rhs.geometryStreams );
  57216. # endif
  57217. }
  57218. bool operator!=( PhysicalDeviceTransformFeedbackFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  57219. {
  57220. return !operator==( rhs );
  57221. }
  57222. #endif
  57223. public:
  57224. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceTransformFeedbackFeaturesEXT;
  57225. void * pNext = {};
  57226. VULKAN_HPP_NAMESPACE::Bool32 transformFeedback = {};
  57227. VULKAN_HPP_NAMESPACE::Bool32 geometryStreams = {};
  57228. };
  57229. template <>
  57230. struct CppType<StructureType, StructureType::ePhysicalDeviceTransformFeedbackFeaturesEXT>
  57231. {
  57232. using Type = PhysicalDeviceTransformFeedbackFeaturesEXT;
  57233. };
  57234. struct PhysicalDeviceTransformFeedbackPropertiesEXT
  57235. {
  57236. using NativeType = VkPhysicalDeviceTransformFeedbackPropertiesEXT;
  57237. static const bool allowDuplicate = false;
  57238. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceTransformFeedbackPropertiesEXT;
  57239. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  57240. VULKAN_HPP_CONSTEXPR PhysicalDeviceTransformFeedbackPropertiesEXT( uint32_t maxTransformFeedbackStreams_ = {},
  57241. uint32_t maxTransformFeedbackBuffers_ = {},
  57242. VULKAN_HPP_NAMESPACE::DeviceSize maxTransformFeedbackBufferSize_ = {},
  57243. uint32_t maxTransformFeedbackStreamDataSize_ = {},
  57244. uint32_t maxTransformFeedbackBufferDataSize_ = {},
  57245. uint32_t maxTransformFeedbackBufferDataStride_ = {},
  57246. VULKAN_HPP_NAMESPACE::Bool32 transformFeedbackQueries_ = {},
  57247. VULKAN_HPP_NAMESPACE::Bool32 transformFeedbackStreamsLinesTriangles_ = {},
  57248. VULKAN_HPP_NAMESPACE::Bool32 transformFeedbackRasterizationStreamSelect_ = {},
  57249. VULKAN_HPP_NAMESPACE::Bool32 transformFeedbackDraw_ = {},
  57250. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  57251. : pNext( pNext_ )
  57252. , maxTransformFeedbackStreams( maxTransformFeedbackStreams_ )
  57253. , maxTransformFeedbackBuffers( maxTransformFeedbackBuffers_ )
  57254. , maxTransformFeedbackBufferSize( maxTransformFeedbackBufferSize_ )
  57255. , maxTransformFeedbackStreamDataSize( maxTransformFeedbackStreamDataSize_ )
  57256. , maxTransformFeedbackBufferDataSize( maxTransformFeedbackBufferDataSize_ )
  57257. , maxTransformFeedbackBufferDataStride( maxTransformFeedbackBufferDataStride_ )
  57258. , transformFeedbackQueries( transformFeedbackQueries_ )
  57259. , transformFeedbackStreamsLinesTriangles( transformFeedbackStreamsLinesTriangles_ )
  57260. , transformFeedbackRasterizationStreamSelect( transformFeedbackRasterizationStreamSelect_ )
  57261. , transformFeedbackDraw( transformFeedbackDraw_ )
  57262. {
  57263. }
  57264. VULKAN_HPP_CONSTEXPR PhysicalDeviceTransformFeedbackPropertiesEXT( PhysicalDeviceTransformFeedbackPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  57265. PhysicalDeviceTransformFeedbackPropertiesEXT( VkPhysicalDeviceTransformFeedbackPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  57266. : PhysicalDeviceTransformFeedbackPropertiesEXT( *reinterpret_cast<PhysicalDeviceTransformFeedbackPropertiesEXT const *>( &rhs ) )
  57267. {
  57268. }
  57269. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  57270. PhysicalDeviceTransformFeedbackPropertiesEXT & operator=( PhysicalDeviceTransformFeedbackPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  57271. PhysicalDeviceTransformFeedbackPropertiesEXT & operator=( VkPhysicalDeviceTransformFeedbackPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  57272. {
  57273. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceTransformFeedbackPropertiesEXT const *>( &rhs );
  57274. return *this;
  57275. }
  57276. operator VkPhysicalDeviceTransformFeedbackPropertiesEXT const &() const VULKAN_HPP_NOEXCEPT
  57277. {
  57278. return *reinterpret_cast<const VkPhysicalDeviceTransformFeedbackPropertiesEXT *>( this );
  57279. }
  57280. operator VkPhysicalDeviceTransformFeedbackPropertiesEXT &() VULKAN_HPP_NOEXCEPT
  57281. {
  57282. return *reinterpret_cast<VkPhysicalDeviceTransformFeedbackPropertiesEXT *>( this );
  57283. }
  57284. #if defined( VULKAN_HPP_USE_REFLECT )
  57285. # if 14 <= VULKAN_HPP_CPP_VERSION
  57286. auto
  57287. # else
  57288. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  57289. void * const &,
  57290. uint32_t const &,
  57291. uint32_t const &,
  57292. VULKAN_HPP_NAMESPACE::DeviceSize const &,
  57293. uint32_t const &,
  57294. uint32_t const &,
  57295. uint32_t const &,
  57296. VULKAN_HPP_NAMESPACE::Bool32 const &,
  57297. VULKAN_HPP_NAMESPACE::Bool32 const &,
  57298. VULKAN_HPP_NAMESPACE::Bool32 const &,
  57299. VULKAN_HPP_NAMESPACE::Bool32 const &>
  57300. # endif
  57301. reflect() const VULKAN_HPP_NOEXCEPT
  57302. {
  57303. return std::tie( sType,
  57304. pNext,
  57305. maxTransformFeedbackStreams,
  57306. maxTransformFeedbackBuffers,
  57307. maxTransformFeedbackBufferSize,
  57308. maxTransformFeedbackStreamDataSize,
  57309. maxTransformFeedbackBufferDataSize,
  57310. maxTransformFeedbackBufferDataStride,
  57311. transformFeedbackQueries,
  57312. transformFeedbackStreamsLinesTriangles,
  57313. transformFeedbackRasterizationStreamSelect,
  57314. transformFeedbackDraw );
  57315. }
  57316. #endif
  57317. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  57318. auto operator<=>( PhysicalDeviceTransformFeedbackPropertiesEXT const & ) const = default;
  57319. #else
  57320. bool operator==( PhysicalDeviceTransformFeedbackPropertiesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  57321. {
  57322. # if defined( VULKAN_HPP_USE_REFLECT )
  57323. return this->reflect() == rhs.reflect();
  57324. # else
  57325. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( maxTransformFeedbackStreams == rhs.maxTransformFeedbackStreams ) &&
  57326. ( maxTransformFeedbackBuffers == rhs.maxTransformFeedbackBuffers ) && ( maxTransformFeedbackBufferSize == rhs.maxTransformFeedbackBufferSize ) &&
  57327. ( maxTransformFeedbackStreamDataSize == rhs.maxTransformFeedbackStreamDataSize ) &&
  57328. ( maxTransformFeedbackBufferDataSize == rhs.maxTransformFeedbackBufferDataSize ) &&
  57329. ( maxTransformFeedbackBufferDataStride == rhs.maxTransformFeedbackBufferDataStride ) &&
  57330. ( transformFeedbackQueries == rhs.transformFeedbackQueries ) &&
  57331. ( transformFeedbackStreamsLinesTriangles == rhs.transformFeedbackStreamsLinesTriangles ) &&
  57332. ( transformFeedbackRasterizationStreamSelect == rhs.transformFeedbackRasterizationStreamSelect ) &&
  57333. ( transformFeedbackDraw == rhs.transformFeedbackDraw );
  57334. # endif
  57335. }
  57336. bool operator!=( PhysicalDeviceTransformFeedbackPropertiesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  57337. {
  57338. return !operator==( rhs );
  57339. }
  57340. #endif
  57341. public:
  57342. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceTransformFeedbackPropertiesEXT;
  57343. void * pNext = {};
  57344. uint32_t maxTransformFeedbackStreams = {};
  57345. uint32_t maxTransformFeedbackBuffers = {};
  57346. VULKAN_HPP_NAMESPACE::DeviceSize maxTransformFeedbackBufferSize = {};
  57347. uint32_t maxTransformFeedbackStreamDataSize = {};
  57348. uint32_t maxTransformFeedbackBufferDataSize = {};
  57349. uint32_t maxTransformFeedbackBufferDataStride = {};
  57350. VULKAN_HPP_NAMESPACE::Bool32 transformFeedbackQueries = {};
  57351. VULKAN_HPP_NAMESPACE::Bool32 transformFeedbackStreamsLinesTriangles = {};
  57352. VULKAN_HPP_NAMESPACE::Bool32 transformFeedbackRasterizationStreamSelect = {};
  57353. VULKAN_HPP_NAMESPACE::Bool32 transformFeedbackDraw = {};
  57354. };
  57355. template <>
  57356. struct CppType<StructureType, StructureType::ePhysicalDeviceTransformFeedbackPropertiesEXT>
  57357. {
  57358. using Type = PhysicalDeviceTransformFeedbackPropertiesEXT;
  57359. };
  57360. struct PhysicalDeviceUniformBufferStandardLayoutFeatures
  57361. {
  57362. using NativeType = VkPhysicalDeviceUniformBufferStandardLayoutFeatures;
  57363. static const bool allowDuplicate = false;
  57364. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceUniformBufferStandardLayoutFeatures;
  57365. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  57366. VULKAN_HPP_CONSTEXPR PhysicalDeviceUniformBufferStandardLayoutFeatures( VULKAN_HPP_NAMESPACE::Bool32 uniformBufferStandardLayout_ = {},
  57367. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  57368. : pNext( pNext_ )
  57369. , uniformBufferStandardLayout( uniformBufferStandardLayout_ )
  57370. {
  57371. }
  57372. VULKAN_HPP_CONSTEXPR
  57373. PhysicalDeviceUniformBufferStandardLayoutFeatures( PhysicalDeviceUniformBufferStandardLayoutFeatures const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  57374. PhysicalDeviceUniformBufferStandardLayoutFeatures( VkPhysicalDeviceUniformBufferStandardLayoutFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
  57375. : PhysicalDeviceUniformBufferStandardLayoutFeatures( *reinterpret_cast<PhysicalDeviceUniformBufferStandardLayoutFeatures const *>( &rhs ) )
  57376. {
  57377. }
  57378. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  57379. PhysicalDeviceUniformBufferStandardLayoutFeatures &
  57380. operator=( PhysicalDeviceUniformBufferStandardLayoutFeatures const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  57381. PhysicalDeviceUniformBufferStandardLayoutFeatures & operator=( VkPhysicalDeviceUniformBufferStandardLayoutFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
  57382. {
  57383. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceUniformBufferStandardLayoutFeatures const *>( &rhs );
  57384. return *this;
  57385. }
  57386. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  57387. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceUniformBufferStandardLayoutFeatures & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
  57388. {
  57389. pNext = pNext_;
  57390. return *this;
  57391. }
  57392. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceUniformBufferStandardLayoutFeatures &
  57393. setUniformBufferStandardLayout( VULKAN_HPP_NAMESPACE::Bool32 uniformBufferStandardLayout_ ) VULKAN_HPP_NOEXCEPT
  57394. {
  57395. uniformBufferStandardLayout = uniformBufferStandardLayout_;
  57396. return *this;
  57397. }
  57398. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  57399. operator VkPhysicalDeviceUniformBufferStandardLayoutFeatures const &() const VULKAN_HPP_NOEXCEPT
  57400. {
  57401. return *reinterpret_cast<const VkPhysicalDeviceUniformBufferStandardLayoutFeatures *>( this );
  57402. }
  57403. operator VkPhysicalDeviceUniformBufferStandardLayoutFeatures &() VULKAN_HPP_NOEXCEPT
  57404. {
  57405. return *reinterpret_cast<VkPhysicalDeviceUniformBufferStandardLayoutFeatures *>( this );
  57406. }
  57407. #if defined( VULKAN_HPP_USE_REFLECT )
  57408. # if 14 <= VULKAN_HPP_CPP_VERSION
  57409. auto
  57410. # else
  57411. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
  57412. # endif
  57413. reflect() const VULKAN_HPP_NOEXCEPT
  57414. {
  57415. return std::tie( sType, pNext, uniformBufferStandardLayout );
  57416. }
  57417. #endif
  57418. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  57419. auto operator<=>( PhysicalDeviceUniformBufferStandardLayoutFeatures const & ) const = default;
  57420. #else
  57421. bool operator==( PhysicalDeviceUniformBufferStandardLayoutFeatures const & rhs ) const VULKAN_HPP_NOEXCEPT
  57422. {
  57423. # if defined( VULKAN_HPP_USE_REFLECT )
  57424. return this->reflect() == rhs.reflect();
  57425. # else
  57426. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( uniformBufferStandardLayout == rhs.uniformBufferStandardLayout );
  57427. # endif
  57428. }
  57429. bool operator!=( PhysicalDeviceUniformBufferStandardLayoutFeatures const & rhs ) const VULKAN_HPP_NOEXCEPT
  57430. {
  57431. return !operator==( rhs );
  57432. }
  57433. #endif
  57434. public:
  57435. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceUniformBufferStandardLayoutFeatures;
  57436. void * pNext = {};
  57437. VULKAN_HPP_NAMESPACE::Bool32 uniformBufferStandardLayout = {};
  57438. };
  57439. template <>
  57440. struct CppType<StructureType, StructureType::ePhysicalDeviceUniformBufferStandardLayoutFeatures>
  57441. {
  57442. using Type = PhysicalDeviceUniformBufferStandardLayoutFeatures;
  57443. };
  57444. using PhysicalDeviceUniformBufferStandardLayoutFeaturesKHR = PhysicalDeviceUniformBufferStandardLayoutFeatures;
  57445. struct PhysicalDeviceVariablePointersFeatures
  57446. {
  57447. using NativeType = VkPhysicalDeviceVariablePointersFeatures;
  57448. static const bool allowDuplicate = false;
  57449. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceVariablePointersFeatures;
  57450. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  57451. VULKAN_HPP_CONSTEXPR PhysicalDeviceVariablePointersFeatures( VULKAN_HPP_NAMESPACE::Bool32 variablePointersStorageBuffer_ = {},
  57452. VULKAN_HPP_NAMESPACE::Bool32 variablePointers_ = {},
  57453. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  57454. : pNext( pNext_ )
  57455. , variablePointersStorageBuffer( variablePointersStorageBuffer_ )
  57456. , variablePointers( variablePointers_ )
  57457. {
  57458. }
  57459. VULKAN_HPP_CONSTEXPR PhysicalDeviceVariablePointersFeatures( PhysicalDeviceVariablePointersFeatures const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  57460. PhysicalDeviceVariablePointersFeatures( VkPhysicalDeviceVariablePointersFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
  57461. : PhysicalDeviceVariablePointersFeatures( *reinterpret_cast<PhysicalDeviceVariablePointersFeatures const *>( &rhs ) )
  57462. {
  57463. }
  57464. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  57465. PhysicalDeviceVariablePointersFeatures & operator=( PhysicalDeviceVariablePointersFeatures const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  57466. PhysicalDeviceVariablePointersFeatures & operator=( VkPhysicalDeviceVariablePointersFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
  57467. {
  57468. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceVariablePointersFeatures const *>( &rhs );
  57469. return *this;
  57470. }
  57471. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  57472. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceVariablePointersFeatures & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
  57473. {
  57474. pNext = pNext_;
  57475. return *this;
  57476. }
  57477. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceVariablePointersFeatures &
  57478. setVariablePointersStorageBuffer( VULKAN_HPP_NAMESPACE::Bool32 variablePointersStorageBuffer_ ) VULKAN_HPP_NOEXCEPT
  57479. {
  57480. variablePointersStorageBuffer = variablePointersStorageBuffer_;
  57481. return *this;
  57482. }
  57483. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceVariablePointersFeatures & setVariablePointers( VULKAN_HPP_NAMESPACE::Bool32 variablePointers_ ) VULKAN_HPP_NOEXCEPT
  57484. {
  57485. variablePointers = variablePointers_;
  57486. return *this;
  57487. }
  57488. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  57489. operator VkPhysicalDeviceVariablePointersFeatures const &() const VULKAN_HPP_NOEXCEPT
  57490. {
  57491. return *reinterpret_cast<const VkPhysicalDeviceVariablePointersFeatures *>( this );
  57492. }
  57493. operator VkPhysicalDeviceVariablePointersFeatures &() VULKAN_HPP_NOEXCEPT
  57494. {
  57495. return *reinterpret_cast<VkPhysicalDeviceVariablePointersFeatures *>( this );
  57496. }
  57497. #if defined( VULKAN_HPP_USE_REFLECT )
  57498. # if 14 <= VULKAN_HPP_CPP_VERSION
  57499. auto
  57500. # else
  57501. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
  57502. # endif
  57503. reflect() const VULKAN_HPP_NOEXCEPT
  57504. {
  57505. return std::tie( sType, pNext, variablePointersStorageBuffer, variablePointers );
  57506. }
  57507. #endif
  57508. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  57509. auto operator<=>( PhysicalDeviceVariablePointersFeatures const & ) const = default;
  57510. #else
  57511. bool operator==( PhysicalDeviceVariablePointersFeatures const & rhs ) const VULKAN_HPP_NOEXCEPT
  57512. {
  57513. # if defined( VULKAN_HPP_USE_REFLECT )
  57514. return this->reflect() == rhs.reflect();
  57515. # else
  57516. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( variablePointersStorageBuffer == rhs.variablePointersStorageBuffer ) &&
  57517. ( variablePointers == rhs.variablePointers );
  57518. # endif
  57519. }
  57520. bool operator!=( PhysicalDeviceVariablePointersFeatures const & rhs ) const VULKAN_HPP_NOEXCEPT
  57521. {
  57522. return !operator==( rhs );
  57523. }
  57524. #endif
  57525. public:
  57526. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceVariablePointersFeatures;
  57527. void * pNext = {};
  57528. VULKAN_HPP_NAMESPACE::Bool32 variablePointersStorageBuffer = {};
  57529. VULKAN_HPP_NAMESPACE::Bool32 variablePointers = {};
  57530. };
  57531. template <>
  57532. struct CppType<StructureType, StructureType::ePhysicalDeviceVariablePointersFeatures>
  57533. {
  57534. using Type = PhysicalDeviceVariablePointersFeatures;
  57535. };
  57536. using PhysicalDeviceVariablePointerFeatures = PhysicalDeviceVariablePointersFeatures;
  57537. using PhysicalDeviceVariablePointerFeaturesKHR = PhysicalDeviceVariablePointersFeatures;
  57538. using PhysicalDeviceVariablePointersFeaturesKHR = PhysicalDeviceVariablePointersFeatures;
  57539. struct PhysicalDeviceVertexAttributeDivisorFeaturesEXT
  57540. {
  57541. using NativeType = VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT;
  57542. static const bool allowDuplicate = false;
  57543. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceVertexAttributeDivisorFeaturesEXT;
  57544. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  57545. VULKAN_HPP_CONSTEXPR PhysicalDeviceVertexAttributeDivisorFeaturesEXT( VULKAN_HPP_NAMESPACE::Bool32 vertexAttributeInstanceRateDivisor_ = {},
  57546. VULKAN_HPP_NAMESPACE::Bool32 vertexAttributeInstanceRateZeroDivisor_ = {},
  57547. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  57548. : pNext( pNext_ )
  57549. , vertexAttributeInstanceRateDivisor( vertexAttributeInstanceRateDivisor_ )
  57550. , vertexAttributeInstanceRateZeroDivisor( vertexAttributeInstanceRateZeroDivisor_ )
  57551. {
  57552. }
  57553. VULKAN_HPP_CONSTEXPR
  57554. PhysicalDeviceVertexAttributeDivisorFeaturesEXT( PhysicalDeviceVertexAttributeDivisorFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  57555. PhysicalDeviceVertexAttributeDivisorFeaturesEXT( VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  57556. : PhysicalDeviceVertexAttributeDivisorFeaturesEXT( *reinterpret_cast<PhysicalDeviceVertexAttributeDivisorFeaturesEXT const *>( &rhs ) )
  57557. {
  57558. }
  57559. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  57560. PhysicalDeviceVertexAttributeDivisorFeaturesEXT & operator=( PhysicalDeviceVertexAttributeDivisorFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  57561. PhysicalDeviceVertexAttributeDivisorFeaturesEXT & operator=( VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  57562. {
  57563. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceVertexAttributeDivisorFeaturesEXT const *>( &rhs );
  57564. return *this;
  57565. }
  57566. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  57567. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceVertexAttributeDivisorFeaturesEXT & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
  57568. {
  57569. pNext = pNext_;
  57570. return *this;
  57571. }
  57572. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceVertexAttributeDivisorFeaturesEXT &
  57573. setVertexAttributeInstanceRateDivisor( VULKAN_HPP_NAMESPACE::Bool32 vertexAttributeInstanceRateDivisor_ ) VULKAN_HPP_NOEXCEPT
  57574. {
  57575. vertexAttributeInstanceRateDivisor = vertexAttributeInstanceRateDivisor_;
  57576. return *this;
  57577. }
  57578. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceVertexAttributeDivisorFeaturesEXT &
  57579. setVertexAttributeInstanceRateZeroDivisor( VULKAN_HPP_NAMESPACE::Bool32 vertexAttributeInstanceRateZeroDivisor_ ) VULKAN_HPP_NOEXCEPT
  57580. {
  57581. vertexAttributeInstanceRateZeroDivisor = vertexAttributeInstanceRateZeroDivisor_;
  57582. return *this;
  57583. }
  57584. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  57585. operator VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT const &() const VULKAN_HPP_NOEXCEPT
  57586. {
  57587. return *reinterpret_cast<const VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT *>( this );
  57588. }
  57589. operator VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT &() VULKAN_HPP_NOEXCEPT
  57590. {
  57591. return *reinterpret_cast<VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT *>( this );
  57592. }
  57593. #if defined( VULKAN_HPP_USE_REFLECT )
  57594. # if 14 <= VULKAN_HPP_CPP_VERSION
  57595. auto
  57596. # else
  57597. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
  57598. # endif
  57599. reflect() const VULKAN_HPP_NOEXCEPT
  57600. {
  57601. return std::tie( sType, pNext, vertexAttributeInstanceRateDivisor, vertexAttributeInstanceRateZeroDivisor );
  57602. }
  57603. #endif
  57604. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  57605. auto operator<=>( PhysicalDeviceVertexAttributeDivisorFeaturesEXT const & ) const = default;
  57606. #else
  57607. bool operator==( PhysicalDeviceVertexAttributeDivisorFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  57608. {
  57609. # if defined( VULKAN_HPP_USE_REFLECT )
  57610. return this->reflect() == rhs.reflect();
  57611. # else
  57612. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( vertexAttributeInstanceRateDivisor == rhs.vertexAttributeInstanceRateDivisor ) &&
  57613. ( vertexAttributeInstanceRateZeroDivisor == rhs.vertexAttributeInstanceRateZeroDivisor );
  57614. # endif
  57615. }
  57616. bool operator!=( PhysicalDeviceVertexAttributeDivisorFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  57617. {
  57618. return !operator==( rhs );
  57619. }
  57620. #endif
  57621. public:
  57622. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceVertexAttributeDivisorFeaturesEXT;
  57623. void * pNext = {};
  57624. VULKAN_HPP_NAMESPACE::Bool32 vertexAttributeInstanceRateDivisor = {};
  57625. VULKAN_HPP_NAMESPACE::Bool32 vertexAttributeInstanceRateZeroDivisor = {};
  57626. };
  57627. template <>
  57628. struct CppType<StructureType, StructureType::ePhysicalDeviceVertexAttributeDivisorFeaturesEXT>
  57629. {
  57630. using Type = PhysicalDeviceVertexAttributeDivisorFeaturesEXT;
  57631. };
  57632. struct PhysicalDeviceVertexAttributeDivisorPropertiesEXT
  57633. {
  57634. using NativeType = VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT;
  57635. static const bool allowDuplicate = false;
  57636. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceVertexAttributeDivisorPropertiesEXT;
  57637. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  57638. VULKAN_HPP_CONSTEXPR PhysicalDeviceVertexAttributeDivisorPropertiesEXT( uint32_t maxVertexAttribDivisor_ = {}, void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  57639. : pNext( pNext_ )
  57640. , maxVertexAttribDivisor( maxVertexAttribDivisor_ )
  57641. {
  57642. }
  57643. VULKAN_HPP_CONSTEXPR
  57644. PhysicalDeviceVertexAttributeDivisorPropertiesEXT( PhysicalDeviceVertexAttributeDivisorPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  57645. PhysicalDeviceVertexAttributeDivisorPropertiesEXT( VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  57646. : PhysicalDeviceVertexAttributeDivisorPropertiesEXT( *reinterpret_cast<PhysicalDeviceVertexAttributeDivisorPropertiesEXT const *>( &rhs ) )
  57647. {
  57648. }
  57649. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  57650. PhysicalDeviceVertexAttributeDivisorPropertiesEXT &
  57651. operator=( PhysicalDeviceVertexAttributeDivisorPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  57652. PhysicalDeviceVertexAttributeDivisorPropertiesEXT & operator=( VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  57653. {
  57654. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceVertexAttributeDivisorPropertiesEXT const *>( &rhs );
  57655. return *this;
  57656. }
  57657. operator VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT const &() const VULKAN_HPP_NOEXCEPT
  57658. {
  57659. return *reinterpret_cast<const VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT *>( this );
  57660. }
  57661. operator VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT &() VULKAN_HPP_NOEXCEPT
  57662. {
  57663. return *reinterpret_cast<VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT *>( this );
  57664. }
  57665. #if defined( VULKAN_HPP_USE_REFLECT )
  57666. # if 14 <= VULKAN_HPP_CPP_VERSION
  57667. auto
  57668. # else
  57669. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, uint32_t const &>
  57670. # endif
  57671. reflect() const VULKAN_HPP_NOEXCEPT
  57672. {
  57673. return std::tie( sType, pNext, maxVertexAttribDivisor );
  57674. }
  57675. #endif
  57676. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  57677. auto operator<=>( PhysicalDeviceVertexAttributeDivisorPropertiesEXT const & ) const = default;
  57678. #else
  57679. bool operator==( PhysicalDeviceVertexAttributeDivisorPropertiesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  57680. {
  57681. # if defined( VULKAN_HPP_USE_REFLECT )
  57682. return this->reflect() == rhs.reflect();
  57683. # else
  57684. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( maxVertexAttribDivisor == rhs.maxVertexAttribDivisor );
  57685. # endif
  57686. }
  57687. bool operator!=( PhysicalDeviceVertexAttributeDivisorPropertiesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  57688. {
  57689. return !operator==( rhs );
  57690. }
  57691. #endif
  57692. public:
  57693. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceVertexAttributeDivisorPropertiesEXT;
  57694. void * pNext = {};
  57695. uint32_t maxVertexAttribDivisor = {};
  57696. };
  57697. template <>
  57698. struct CppType<StructureType, StructureType::ePhysicalDeviceVertexAttributeDivisorPropertiesEXT>
  57699. {
  57700. using Type = PhysicalDeviceVertexAttributeDivisorPropertiesEXT;
  57701. };
  57702. struct PhysicalDeviceVertexInputDynamicStateFeaturesEXT
  57703. {
  57704. using NativeType = VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT;
  57705. static const bool allowDuplicate = false;
  57706. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceVertexInputDynamicStateFeaturesEXT;
  57707. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  57708. VULKAN_HPP_CONSTEXPR PhysicalDeviceVertexInputDynamicStateFeaturesEXT( VULKAN_HPP_NAMESPACE::Bool32 vertexInputDynamicState_ = {},
  57709. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  57710. : pNext( pNext_ )
  57711. , vertexInputDynamicState( vertexInputDynamicState_ )
  57712. {
  57713. }
  57714. VULKAN_HPP_CONSTEXPR
  57715. PhysicalDeviceVertexInputDynamicStateFeaturesEXT( PhysicalDeviceVertexInputDynamicStateFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  57716. PhysicalDeviceVertexInputDynamicStateFeaturesEXT( VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  57717. : PhysicalDeviceVertexInputDynamicStateFeaturesEXT( *reinterpret_cast<PhysicalDeviceVertexInputDynamicStateFeaturesEXT const *>( &rhs ) )
  57718. {
  57719. }
  57720. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  57721. PhysicalDeviceVertexInputDynamicStateFeaturesEXT & operator=( PhysicalDeviceVertexInputDynamicStateFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  57722. PhysicalDeviceVertexInputDynamicStateFeaturesEXT & operator=( VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  57723. {
  57724. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceVertexInputDynamicStateFeaturesEXT const *>( &rhs );
  57725. return *this;
  57726. }
  57727. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  57728. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceVertexInputDynamicStateFeaturesEXT & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
  57729. {
  57730. pNext = pNext_;
  57731. return *this;
  57732. }
  57733. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceVertexInputDynamicStateFeaturesEXT &
  57734. setVertexInputDynamicState( VULKAN_HPP_NAMESPACE::Bool32 vertexInputDynamicState_ ) VULKAN_HPP_NOEXCEPT
  57735. {
  57736. vertexInputDynamicState = vertexInputDynamicState_;
  57737. return *this;
  57738. }
  57739. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  57740. operator VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT const &() const VULKAN_HPP_NOEXCEPT
  57741. {
  57742. return *reinterpret_cast<const VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT *>( this );
  57743. }
  57744. operator VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT &() VULKAN_HPP_NOEXCEPT
  57745. {
  57746. return *reinterpret_cast<VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT *>( this );
  57747. }
  57748. #if defined( VULKAN_HPP_USE_REFLECT )
  57749. # if 14 <= VULKAN_HPP_CPP_VERSION
  57750. auto
  57751. # else
  57752. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
  57753. # endif
  57754. reflect() const VULKAN_HPP_NOEXCEPT
  57755. {
  57756. return std::tie( sType, pNext, vertexInputDynamicState );
  57757. }
  57758. #endif
  57759. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  57760. auto operator<=>( PhysicalDeviceVertexInputDynamicStateFeaturesEXT const & ) const = default;
  57761. #else
  57762. bool operator==( PhysicalDeviceVertexInputDynamicStateFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  57763. {
  57764. # if defined( VULKAN_HPP_USE_REFLECT )
  57765. return this->reflect() == rhs.reflect();
  57766. # else
  57767. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( vertexInputDynamicState == rhs.vertexInputDynamicState );
  57768. # endif
  57769. }
  57770. bool operator!=( PhysicalDeviceVertexInputDynamicStateFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  57771. {
  57772. return !operator==( rhs );
  57773. }
  57774. #endif
  57775. public:
  57776. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceVertexInputDynamicStateFeaturesEXT;
  57777. void * pNext = {};
  57778. VULKAN_HPP_NAMESPACE::Bool32 vertexInputDynamicState = {};
  57779. };
  57780. template <>
  57781. struct CppType<StructureType, StructureType::ePhysicalDeviceVertexInputDynamicStateFeaturesEXT>
  57782. {
  57783. using Type = PhysicalDeviceVertexInputDynamicStateFeaturesEXT;
  57784. };
  57785. #if defined( VK_ENABLE_BETA_EXTENSIONS )
  57786. struct PhysicalDeviceVideoFormatInfoKHR
  57787. {
  57788. using NativeType = VkPhysicalDeviceVideoFormatInfoKHR;
  57789. static const bool allowDuplicate = false;
  57790. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceVideoFormatInfoKHR;
  57791. # if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  57792. VULKAN_HPP_CONSTEXPR PhysicalDeviceVideoFormatInfoKHR( VULKAN_HPP_NAMESPACE::ImageUsageFlags imageUsage_ = {},
  57793. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  57794. : pNext( pNext_ )
  57795. , imageUsage( imageUsage_ )
  57796. {
  57797. }
  57798. VULKAN_HPP_CONSTEXPR PhysicalDeviceVideoFormatInfoKHR( PhysicalDeviceVideoFormatInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  57799. PhysicalDeviceVideoFormatInfoKHR( VkPhysicalDeviceVideoFormatInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  57800. : PhysicalDeviceVideoFormatInfoKHR( *reinterpret_cast<PhysicalDeviceVideoFormatInfoKHR const *>( &rhs ) )
  57801. {
  57802. }
  57803. # endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  57804. PhysicalDeviceVideoFormatInfoKHR & operator=( PhysicalDeviceVideoFormatInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  57805. PhysicalDeviceVideoFormatInfoKHR & operator=( VkPhysicalDeviceVideoFormatInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  57806. {
  57807. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceVideoFormatInfoKHR const *>( &rhs );
  57808. return *this;
  57809. }
  57810. # if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  57811. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceVideoFormatInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  57812. {
  57813. pNext = pNext_;
  57814. return *this;
  57815. }
  57816. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceVideoFormatInfoKHR & setImageUsage( VULKAN_HPP_NAMESPACE::ImageUsageFlags imageUsage_ ) VULKAN_HPP_NOEXCEPT
  57817. {
  57818. imageUsage = imageUsage_;
  57819. return *this;
  57820. }
  57821. # endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  57822. operator VkPhysicalDeviceVideoFormatInfoKHR const &() const VULKAN_HPP_NOEXCEPT
  57823. {
  57824. return *reinterpret_cast<const VkPhysicalDeviceVideoFormatInfoKHR *>( this );
  57825. }
  57826. operator VkPhysicalDeviceVideoFormatInfoKHR &() VULKAN_HPP_NOEXCEPT
  57827. {
  57828. return *reinterpret_cast<VkPhysicalDeviceVideoFormatInfoKHR *>( this );
  57829. }
  57830. # if defined( VULKAN_HPP_USE_REFLECT )
  57831. # if 14 <= VULKAN_HPP_CPP_VERSION
  57832. auto
  57833. # else
  57834. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::ImageUsageFlags const &>
  57835. # endif
  57836. reflect() const VULKAN_HPP_NOEXCEPT
  57837. {
  57838. return std::tie( sType, pNext, imageUsage );
  57839. }
  57840. # endif
  57841. # if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  57842. auto operator<=>( PhysicalDeviceVideoFormatInfoKHR const & ) const = default;
  57843. # else
  57844. bool operator==( PhysicalDeviceVideoFormatInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  57845. {
  57846. # if defined( VULKAN_HPP_USE_REFLECT )
  57847. return this->reflect() == rhs.reflect();
  57848. # else
  57849. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( imageUsage == rhs.imageUsage );
  57850. # endif
  57851. }
  57852. bool operator!=( PhysicalDeviceVideoFormatInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  57853. {
  57854. return !operator==( rhs );
  57855. }
  57856. # endif
  57857. public:
  57858. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceVideoFormatInfoKHR;
  57859. const void * pNext = {};
  57860. VULKAN_HPP_NAMESPACE::ImageUsageFlags imageUsage = {};
  57861. };
  57862. template <>
  57863. struct CppType<StructureType, StructureType::ePhysicalDeviceVideoFormatInfoKHR>
  57864. {
  57865. using Type = PhysicalDeviceVideoFormatInfoKHR;
  57866. };
  57867. #endif /*VK_ENABLE_BETA_EXTENSIONS*/
  57868. struct PhysicalDeviceVulkan11Features
  57869. {
  57870. using NativeType = VkPhysicalDeviceVulkan11Features;
  57871. static const bool allowDuplicate = false;
  57872. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceVulkan11Features;
  57873. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  57874. VULKAN_HPP_CONSTEXPR PhysicalDeviceVulkan11Features( VULKAN_HPP_NAMESPACE::Bool32 storageBuffer16BitAccess_ = {},
  57875. VULKAN_HPP_NAMESPACE::Bool32 uniformAndStorageBuffer16BitAccess_ = {},
  57876. VULKAN_HPP_NAMESPACE::Bool32 storagePushConstant16_ = {},
  57877. VULKAN_HPP_NAMESPACE::Bool32 storageInputOutput16_ = {},
  57878. VULKAN_HPP_NAMESPACE::Bool32 multiview_ = {},
  57879. VULKAN_HPP_NAMESPACE::Bool32 multiviewGeometryShader_ = {},
  57880. VULKAN_HPP_NAMESPACE::Bool32 multiviewTessellationShader_ = {},
  57881. VULKAN_HPP_NAMESPACE::Bool32 variablePointersStorageBuffer_ = {},
  57882. VULKAN_HPP_NAMESPACE::Bool32 variablePointers_ = {},
  57883. VULKAN_HPP_NAMESPACE::Bool32 protectedMemory_ = {},
  57884. VULKAN_HPP_NAMESPACE::Bool32 samplerYcbcrConversion_ = {},
  57885. VULKAN_HPP_NAMESPACE::Bool32 shaderDrawParameters_ = {},
  57886. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  57887. : pNext( pNext_ )
  57888. , storageBuffer16BitAccess( storageBuffer16BitAccess_ )
  57889. , uniformAndStorageBuffer16BitAccess( uniformAndStorageBuffer16BitAccess_ )
  57890. , storagePushConstant16( storagePushConstant16_ )
  57891. , storageInputOutput16( storageInputOutput16_ )
  57892. , multiview( multiview_ )
  57893. , multiviewGeometryShader( multiviewGeometryShader_ )
  57894. , multiviewTessellationShader( multiviewTessellationShader_ )
  57895. , variablePointersStorageBuffer( variablePointersStorageBuffer_ )
  57896. , variablePointers( variablePointers_ )
  57897. , protectedMemory( protectedMemory_ )
  57898. , samplerYcbcrConversion( samplerYcbcrConversion_ )
  57899. , shaderDrawParameters( shaderDrawParameters_ )
  57900. {
  57901. }
  57902. VULKAN_HPP_CONSTEXPR PhysicalDeviceVulkan11Features( PhysicalDeviceVulkan11Features const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  57903. PhysicalDeviceVulkan11Features( VkPhysicalDeviceVulkan11Features const & rhs ) VULKAN_HPP_NOEXCEPT
  57904. : PhysicalDeviceVulkan11Features( *reinterpret_cast<PhysicalDeviceVulkan11Features const *>( &rhs ) )
  57905. {
  57906. }
  57907. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  57908. PhysicalDeviceVulkan11Features & operator=( PhysicalDeviceVulkan11Features const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  57909. PhysicalDeviceVulkan11Features & operator=( VkPhysicalDeviceVulkan11Features const & rhs ) VULKAN_HPP_NOEXCEPT
  57910. {
  57911. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan11Features const *>( &rhs );
  57912. return *this;
  57913. }
  57914. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  57915. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceVulkan11Features & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
  57916. {
  57917. pNext = pNext_;
  57918. return *this;
  57919. }
  57920. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceVulkan11Features &
  57921. setStorageBuffer16BitAccess( VULKAN_HPP_NAMESPACE::Bool32 storageBuffer16BitAccess_ ) VULKAN_HPP_NOEXCEPT
  57922. {
  57923. storageBuffer16BitAccess = storageBuffer16BitAccess_;
  57924. return *this;
  57925. }
  57926. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceVulkan11Features &
  57927. setUniformAndStorageBuffer16BitAccess( VULKAN_HPP_NAMESPACE::Bool32 uniformAndStorageBuffer16BitAccess_ ) VULKAN_HPP_NOEXCEPT
  57928. {
  57929. uniformAndStorageBuffer16BitAccess = uniformAndStorageBuffer16BitAccess_;
  57930. return *this;
  57931. }
  57932. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceVulkan11Features & setStoragePushConstant16( VULKAN_HPP_NAMESPACE::Bool32 storagePushConstant16_ ) VULKAN_HPP_NOEXCEPT
  57933. {
  57934. storagePushConstant16 = storagePushConstant16_;
  57935. return *this;
  57936. }
  57937. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceVulkan11Features & setStorageInputOutput16( VULKAN_HPP_NAMESPACE::Bool32 storageInputOutput16_ ) VULKAN_HPP_NOEXCEPT
  57938. {
  57939. storageInputOutput16 = storageInputOutput16_;
  57940. return *this;
  57941. }
  57942. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceVulkan11Features & setMultiview( VULKAN_HPP_NAMESPACE::Bool32 multiview_ ) VULKAN_HPP_NOEXCEPT
  57943. {
  57944. multiview = multiview_;
  57945. return *this;
  57946. }
  57947. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceVulkan11Features &
  57948. setMultiviewGeometryShader( VULKAN_HPP_NAMESPACE::Bool32 multiviewGeometryShader_ ) VULKAN_HPP_NOEXCEPT
  57949. {
  57950. multiviewGeometryShader = multiviewGeometryShader_;
  57951. return *this;
  57952. }
  57953. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceVulkan11Features &
  57954. setMultiviewTessellationShader( VULKAN_HPP_NAMESPACE::Bool32 multiviewTessellationShader_ ) VULKAN_HPP_NOEXCEPT
  57955. {
  57956. multiviewTessellationShader = multiviewTessellationShader_;
  57957. return *this;
  57958. }
  57959. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceVulkan11Features &
  57960. setVariablePointersStorageBuffer( VULKAN_HPP_NAMESPACE::Bool32 variablePointersStorageBuffer_ ) VULKAN_HPP_NOEXCEPT
  57961. {
  57962. variablePointersStorageBuffer = variablePointersStorageBuffer_;
  57963. return *this;
  57964. }
  57965. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceVulkan11Features & setVariablePointers( VULKAN_HPP_NAMESPACE::Bool32 variablePointers_ ) VULKAN_HPP_NOEXCEPT
  57966. {
  57967. variablePointers = variablePointers_;
  57968. return *this;
  57969. }
  57970. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceVulkan11Features & setProtectedMemory( VULKAN_HPP_NAMESPACE::Bool32 protectedMemory_ ) VULKAN_HPP_NOEXCEPT
  57971. {
  57972. protectedMemory = protectedMemory_;
  57973. return *this;
  57974. }
  57975. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceVulkan11Features &
  57976. setSamplerYcbcrConversion( VULKAN_HPP_NAMESPACE::Bool32 samplerYcbcrConversion_ ) VULKAN_HPP_NOEXCEPT
  57977. {
  57978. samplerYcbcrConversion = samplerYcbcrConversion_;
  57979. return *this;
  57980. }
  57981. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceVulkan11Features & setShaderDrawParameters( VULKAN_HPP_NAMESPACE::Bool32 shaderDrawParameters_ ) VULKAN_HPP_NOEXCEPT
  57982. {
  57983. shaderDrawParameters = shaderDrawParameters_;
  57984. return *this;
  57985. }
  57986. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  57987. operator VkPhysicalDeviceVulkan11Features const &() const VULKAN_HPP_NOEXCEPT
  57988. {
  57989. return *reinterpret_cast<const VkPhysicalDeviceVulkan11Features *>( this );
  57990. }
  57991. operator VkPhysicalDeviceVulkan11Features &() VULKAN_HPP_NOEXCEPT
  57992. {
  57993. return *reinterpret_cast<VkPhysicalDeviceVulkan11Features *>( this );
  57994. }
  57995. #if defined( VULKAN_HPP_USE_REFLECT )
  57996. # if 14 <= VULKAN_HPP_CPP_VERSION
  57997. auto
  57998. # else
  57999. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  58000. void * const &,
  58001. VULKAN_HPP_NAMESPACE::Bool32 const &,
  58002. VULKAN_HPP_NAMESPACE::Bool32 const &,
  58003. VULKAN_HPP_NAMESPACE::Bool32 const &,
  58004. VULKAN_HPP_NAMESPACE::Bool32 const &,
  58005. VULKAN_HPP_NAMESPACE::Bool32 const &,
  58006. VULKAN_HPP_NAMESPACE::Bool32 const &,
  58007. VULKAN_HPP_NAMESPACE::Bool32 const &,
  58008. VULKAN_HPP_NAMESPACE::Bool32 const &,
  58009. VULKAN_HPP_NAMESPACE::Bool32 const &,
  58010. VULKAN_HPP_NAMESPACE::Bool32 const &,
  58011. VULKAN_HPP_NAMESPACE::Bool32 const &,
  58012. VULKAN_HPP_NAMESPACE::Bool32 const &>
  58013. # endif
  58014. reflect() const VULKAN_HPP_NOEXCEPT
  58015. {
  58016. return std::tie( sType,
  58017. pNext,
  58018. storageBuffer16BitAccess,
  58019. uniformAndStorageBuffer16BitAccess,
  58020. storagePushConstant16,
  58021. storageInputOutput16,
  58022. multiview,
  58023. multiviewGeometryShader,
  58024. multiviewTessellationShader,
  58025. variablePointersStorageBuffer,
  58026. variablePointers,
  58027. protectedMemory,
  58028. samplerYcbcrConversion,
  58029. shaderDrawParameters );
  58030. }
  58031. #endif
  58032. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  58033. auto operator<=>( PhysicalDeviceVulkan11Features const & ) const = default;
  58034. #else
  58035. bool operator==( PhysicalDeviceVulkan11Features const & rhs ) const VULKAN_HPP_NOEXCEPT
  58036. {
  58037. # if defined( VULKAN_HPP_USE_REFLECT )
  58038. return this->reflect() == rhs.reflect();
  58039. # else
  58040. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( storageBuffer16BitAccess == rhs.storageBuffer16BitAccess ) &&
  58041. ( uniformAndStorageBuffer16BitAccess == rhs.uniformAndStorageBuffer16BitAccess ) && ( storagePushConstant16 == rhs.storagePushConstant16 ) &&
  58042. ( storageInputOutput16 == rhs.storageInputOutput16 ) && ( multiview == rhs.multiview ) &&
  58043. ( multiviewGeometryShader == rhs.multiviewGeometryShader ) && ( multiviewTessellationShader == rhs.multiviewTessellationShader ) &&
  58044. ( variablePointersStorageBuffer == rhs.variablePointersStorageBuffer ) && ( variablePointers == rhs.variablePointers ) &&
  58045. ( protectedMemory == rhs.protectedMemory ) && ( samplerYcbcrConversion == rhs.samplerYcbcrConversion ) &&
  58046. ( shaderDrawParameters == rhs.shaderDrawParameters );
  58047. # endif
  58048. }
  58049. bool operator!=( PhysicalDeviceVulkan11Features const & rhs ) const VULKAN_HPP_NOEXCEPT
  58050. {
  58051. return !operator==( rhs );
  58052. }
  58053. #endif
  58054. public:
  58055. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceVulkan11Features;
  58056. void * pNext = {};
  58057. VULKAN_HPP_NAMESPACE::Bool32 storageBuffer16BitAccess = {};
  58058. VULKAN_HPP_NAMESPACE::Bool32 uniformAndStorageBuffer16BitAccess = {};
  58059. VULKAN_HPP_NAMESPACE::Bool32 storagePushConstant16 = {};
  58060. VULKAN_HPP_NAMESPACE::Bool32 storageInputOutput16 = {};
  58061. VULKAN_HPP_NAMESPACE::Bool32 multiview = {};
  58062. VULKAN_HPP_NAMESPACE::Bool32 multiviewGeometryShader = {};
  58063. VULKAN_HPP_NAMESPACE::Bool32 multiviewTessellationShader = {};
  58064. VULKAN_HPP_NAMESPACE::Bool32 variablePointersStorageBuffer = {};
  58065. VULKAN_HPP_NAMESPACE::Bool32 variablePointers = {};
  58066. VULKAN_HPP_NAMESPACE::Bool32 protectedMemory = {};
  58067. VULKAN_HPP_NAMESPACE::Bool32 samplerYcbcrConversion = {};
  58068. VULKAN_HPP_NAMESPACE::Bool32 shaderDrawParameters = {};
  58069. };
  58070. template <>
  58071. struct CppType<StructureType, StructureType::ePhysicalDeviceVulkan11Features>
  58072. {
  58073. using Type = PhysicalDeviceVulkan11Features;
  58074. };
  58075. struct PhysicalDeviceVulkan11Properties
  58076. {
  58077. using NativeType = VkPhysicalDeviceVulkan11Properties;
  58078. static const bool allowDuplicate = false;
  58079. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceVulkan11Properties;
  58080. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  58081. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceVulkan11Properties(
  58082. std::array<uint8_t, VK_UUID_SIZE> const & deviceUUID_ = {},
  58083. std::array<uint8_t, VK_UUID_SIZE> const & driverUUID_ = {},
  58084. std::array<uint8_t, VK_LUID_SIZE> const & deviceLUID_ = {},
  58085. uint32_t deviceNodeMask_ = {},
  58086. VULKAN_HPP_NAMESPACE::Bool32 deviceLUIDValid_ = {},
  58087. uint32_t subgroupSize_ = {},
  58088. VULKAN_HPP_NAMESPACE::ShaderStageFlags subgroupSupportedStages_ = {},
  58089. VULKAN_HPP_NAMESPACE::SubgroupFeatureFlags subgroupSupportedOperations_ = {},
  58090. VULKAN_HPP_NAMESPACE::Bool32 subgroupQuadOperationsInAllStages_ = {},
  58091. VULKAN_HPP_NAMESPACE::PointClippingBehavior pointClippingBehavior_ = VULKAN_HPP_NAMESPACE::PointClippingBehavior::eAllClipPlanes,
  58092. uint32_t maxMultiviewViewCount_ = {},
  58093. uint32_t maxMultiviewInstanceIndex_ = {},
  58094. VULKAN_HPP_NAMESPACE::Bool32 protectedNoFault_ = {},
  58095. uint32_t maxPerSetDescriptors_ = {},
  58096. VULKAN_HPP_NAMESPACE::DeviceSize maxMemoryAllocationSize_ = {},
  58097. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  58098. : pNext( pNext_ )
  58099. , deviceUUID( deviceUUID_ )
  58100. , driverUUID( driverUUID_ )
  58101. , deviceLUID( deviceLUID_ )
  58102. , deviceNodeMask( deviceNodeMask_ )
  58103. , deviceLUIDValid( deviceLUIDValid_ )
  58104. , subgroupSize( subgroupSize_ )
  58105. , subgroupSupportedStages( subgroupSupportedStages_ )
  58106. , subgroupSupportedOperations( subgroupSupportedOperations_ )
  58107. , subgroupQuadOperationsInAllStages( subgroupQuadOperationsInAllStages_ )
  58108. , pointClippingBehavior( pointClippingBehavior_ )
  58109. , maxMultiviewViewCount( maxMultiviewViewCount_ )
  58110. , maxMultiviewInstanceIndex( maxMultiviewInstanceIndex_ )
  58111. , protectedNoFault( protectedNoFault_ )
  58112. , maxPerSetDescriptors( maxPerSetDescriptors_ )
  58113. , maxMemoryAllocationSize( maxMemoryAllocationSize_ )
  58114. {
  58115. }
  58116. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceVulkan11Properties( PhysicalDeviceVulkan11Properties const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  58117. PhysicalDeviceVulkan11Properties( VkPhysicalDeviceVulkan11Properties const & rhs ) VULKAN_HPP_NOEXCEPT
  58118. : PhysicalDeviceVulkan11Properties( *reinterpret_cast<PhysicalDeviceVulkan11Properties const *>( &rhs ) )
  58119. {
  58120. }
  58121. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  58122. PhysicalDeviceVulkan11Properties & operator=( PhysicalDeviceVulkan11Properties const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  58123. PhysicalDeviceVulkan11Properties & operator=( VkPhysicalDeviceVulkan11Properties const & rhs ) VULKAN_HPP_NOEXCEPT
  58124. {
  58125. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan11Properties const *>( &rhs );
  58126. return *this;
  58127. }
  58128. operator VkPhysicalDeviceVulkan11Properties const &() const VULKAN_HPP_NOEXCEPT
  58129. {
  58130. return *reinterpret_cast<const VkPhysicalDeviceVulkan11Properties *>( this );
  58131. }
  58132. operator VkPhysicalDeviceVulkan11Properties &() VULKAN_HPP_NOEXCEPT
  58133. {
  58134. return *reinterpret_cast<VkPhysicalDeviceVulkan11Properties *>( this );
  58135. }
  58136. #if defined( VULKAN_HPP_USE_REFLECT )
  58137. # if 14 <= VULKAN_HPP_CPP_VERSION
  58138. auto
  58139. # else
  58140. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  58141. void * const &,
  58142. VULKAN_HPP_NAMESPACE::ArrayWrapper1D<uint8_t, VK_UUID_SIZE> const &,
  58143. VULKAN_HPP_NAMESPACE::ArrayWrapper1D<uint8_t, VK_UUID_SIZE> const &,
  58144. VULKAN_HPP_NAMESPACE::ArrayWrapper1D<uint8_t, VK_LUID_SIZE> const &,
  58145. uint32_t const &,
  58146. VULKAN_HPP_NAMESPACE::Bool32 const &,
  58147. uint32_t const &,
  58148. VULKAN_HPP_NAMESPACE::ShaderStageFlags const &,
  58149. VULKAN_HPP_NAMESPACE::SubgroupFeatureFlags const &,
  58150. VULKAN_HPP_NAMESPACE::Bool32 const &,
  58151. VULKAN_HPP_NAMESPACE::PointClippingBehavior const &,
  58152. uint32_t const &,
  58153. uint32_t const &,
  58154. VULKAN_HPP_NAMESPACE::Bool32 const &,
  58155. uint32_t const &,
  58156. VULKAN_HPP_NAMESPACE::DeviceSize const &>
  58157. # endif
  58158. reflect() const VULKAN_HPP_NOEXCEPT
  58159. {
  58160. return std::tie( sType,
  58161. pNext,
  58162. deviceUUID,
  58163. driverUUID,
  58164. deviceLUID,
  58165. deviceNodeMask,
  58166. deviceLUIDValid,
  58167. subgroupSize,
  58168. subgroupSupportedStages,
  58169. subgroupSupportedOperations,
  58170. subgroupQuadOperationsInAllStages,
  58171. pointClippingBehavior,
  58172. maxMultiviewViewCount,
  58173. maxMultiviewInstanceIndex,
  58174. protectedNoFault,
  58175. maxPerSetDescriptors,
  58176. maxMemoryAllocationSize );
  58177. }
  58178. #endif
  58179. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  58180. auto operator<=>( PhysicalDeviceVulkan11Properties const & ) const = default;
  58181. #else
  58182. bool operator==( PhysicalDeviceVulkan11Properties const & rhs ) const VULKAN_HPP_NOEXCEPT
  58183. {
  58184. # if defined( VULKAN_HPP_USE_REFLECT )
  58185. return this->reflect() == rhs.reflect();
  58186. # else
  58187. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( deviceUUID == rhs.deviceUUID ) && ( driverUUID == rhs.driverUUID ) &&
  58188. ( deviceLUID == rhs.deviceLUID ) && ( deviceNodeMask == rhs.deviceNodeMask ) && ( deviceLUIDValid == rhs.deviceLUIDValid ) &&
  58189. ( subgroupSize == rhs.subgroupSize ) && ( subgroupSupportedStages == rhs.subgroupSupportedStages ) &&
  58190. ( subgroupSupportedOperations == rhs.subgroupSupportedOperations ) &&
  58191. ( subgroupQuadOperationsInAllStages == rhs.subgroupQuadOperationsInAllStages ) && ( pointClippingBehavior == rhs.pointClippingBehavior ) &&
  58192. ( maxMultiviewViewCount == rhs.maxMultiviewViewCount ) && ( maxMultiviewInstanceIndex == rhs.maxMultiviewInstanceIndex ) &&
  58193. ( protectedNoFault == rhs.protectedNoFault ) && ( maxPerSetDescriptors == rhs.maxPerSetDescriptors ) &&
  58194. ( maxMemoryAllocationSize == rhs.maxMemoryAllocationSize );
  58195. # endif
  58196. }
  58197. bool operator!=( PhysicalDeviceVulkan11Properties const & rhs ) const VULKAN_HPP_NOEXCEPT
  58198. {
  58199. return !operator==( rhs );
  58200. }
  58201. #endif
  58202. public:
  58203. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceVulkan11Properties;
  58204. void * pNext = {};
  58205. VULKAN_HPP_NAMESPACE::ArrayWrapper1D<uint8_t, VK_UUID_SIZE> deviceUUID = {};
  58206. VULKAN_HPP_NAMESPACE::ArrayWrapper1D<uint8_t, VK_UUID_SIZE> driverUUID = {};
  58207. VULKAN_HPP_NAMESPACE::ArrayWrapper1D<uint8_t, VK_LUID_SIZE> deviceLUID = {};
  58208. uint32_t deviceNodeMask = {};
  58209. VULKAN_HPP_NAMESPACE::Bool32 deviceLUIDValid = {};
  58210. uint32_t subgroupSize = {};
  58211. VULKAN_HPP_NAMESPACE::ShaderStageFlags subgroupSupportedStages = {};
  58212. VULKAN_HPP_NAMESPACE::SubgroupFeatureFlags subgroupSupportedOperations = {};
  58213. VULKAN_HPP_NAMESPACE::Bool32 subgroupQuadOperationsInAllStages = {};
  58214. VULKAN_HPP_NAMESPACE::PointClippingBehavior pointClippingBehavior = VULKAN_HPP_NAMESPACE::PointClippingBehavior::eAllClipPlanes;
  58215. uint32_t maxMultiviewViewCount = {};
  58216. uint32_t maxMultiviewInstanceIndex = {};
  58217. VULKAN_HPP_NAMESPACE::Bool32 protectedNoFault = {};
  58218. uint32_t maxPerSetDescriptors = {};
  58219. VULKAN_HPP_NAMESPACE::DeviceSize maxMemoryAllocationSize = {};
  58220. };
  58221. template <>
  58222. struct CppType<StructureType, StructureType::ePhysicalDeviceVulkan11Properties>
  58223. {
  58224. using Type = PhysicalDeviceVulkan11Properties;
  58225. };
  58226. struct PhysicalDeviceVulkan12Features
  58227. {
  58228. using NativeType = VkPhysicalDeviceVulkan12Features;
  58229. static const bool allowDuplicate = false;
  58230. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceVulkan12Features;
  58231. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  58232. VULKAN_HPP_CONSTEXPR PhysicalDeviceVulkan12Features( VULKAN_HPP_NAMESPACE::Bool32 samplerMirrorClampToEdge_ = {},
  58233. VULKAN_HPP_NAMESPACE::Bool32 drawIndirectCount_ = {},
  58234. VULKAN_HPP_NAMESPACE::Bool32 storageBuffer8BitAccess_ = {},
  58235. VULKAN_HPP_NAMESPACE::Bool32 uniformAndStorageBuffer8BitAccess_ = {},
  58236. VULKAN_HPP_NAMESPACE::Bool32 storagePushConstant8_ = {},
  58237. VULKAN_HPP_NAMESPACE::Bool32 shaderBufferInt64Atomics_ = {},
  58238. VULKAN_HPP_NAMESPACE::Bool32 shaderSharedInt64Atomics_ = {},
  58239. VULKAN_HPP_NAMESPACE::Bool32 shaderFloat16_ = {},
  58240. VULKAN_HPP_NAMESPACE::Bool32 shaderInt8_ = {},
  58241. VULKAN_HPP_NAMESPACE::Bool32 descriptorIndexing_ = {},
  58242. VULKAN_HPP_NAMESPACE::Bool32 shaderInputAttachmentArrayDynamicIndexing_ = {},
  58243. VULKAN_HPP_NAMESPACE::Bool32 shaderUniformTexelBufferArrayDynamicIndexing_ = {},
  58244. VULKAN_HPP_NAMESPACE::Bool32 shaderStorageTexelBufferArrayDynamicIndexing_ = {},
  58245. VULKAN_HPP_NAMESPACE::Bool32 shaderUniformBufferArrayNonUniformIndexing_ = {},
  58246. VULKAN_HPP_NAMESPACE::Bool32 shaderSampledImageArrayNonUniformIndexing_ = {},
  58247. VULKAN_HPP_NAMESPACE::Bool32 shaderStorageBufferArrayNonUniformIndexing_ = {},
  58248. VULKAN_HPP_NAMESPACE::Bool32 shaderStorageImageArrayNonUniformIndexing_ = {},
  58249. VULKAN_HPP_NAMESPACE::Bool32 shaderInputAttachmentArrayNonUniformIndexing_ = {},
  58250. VULKAN_HPP_NAMESPACE::Bool32 shaderUniformTexelBufferArrayNonUniformIndexing_ = {},
  58251. VULKAN_HPP_NAMESPACE::Bool32 shaderStorageTexelBufferArrayNonUniformIndexing_ = {},
  58252. VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingUniformBufferUpdateAfterBind_ = {},
  58253. VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingSampledImageUpdateAfterBind_ = {},
  58254. VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingStorageImageUpdateAfterBind_ = {},
  58255. VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingStorageBufferUpdateAfterBind_ = {},
  58256. VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingUniformTexelBufferUpdateAfterBind_ = {},
  58257. VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingStorageTexelBufferUpdateAfterBind_ = {},
  58258. VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingUpdateUnusedWhilePending_ = {},
  58259. VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingPartiallyBound_ = {},
  58260. VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingVariableDescriptorCount_ = {},
  58261. VULKAN_HPP_NAMESPACE::Bool32 runtimeDescriptorArray_ = {},
  58262. VULKAN_HPP_NAMESPACE::Bool32 samplerFilterMinmax_ = {},
  58263. VULKAN_HPP_NAMESPACE::Bool32 scalarBlockLayout_ = {},
  58264. VULKAN_HPP_NAMESPACE::Bool32 imagelessFramebuffer_ = {},
  58265. VULKAN_HPP_NAMESPACE::Bool32 uniformBufferStandardLayout_ = {},
  58266. VULKAN_HPP_NAMESPACE::Bool32 shaderSubgroupExtendedTypes_ = {},
  58267. VULKAN_HPP_NAMESPACE::Bool32 separateDepthStencilLayouts_ = {},
  58268. VULKAN_HPP_NAMESPACE::Bool32 hostQueryReset_ = {},
  58269. VULKAN_HPP_NAMESPACE::Bool32 timelineSemaphore_ = {},
  58270. VULKAN_HPP_NAMESPACE::Bool32 bufferDeviceAddress_ = {},
  58271. VULKAN_HPP_NAMESPACE::Bool32 bufferDeviceAddressCaptureReplay_ = {},
  58272. VULKAN_HPP_NAMESPACE::Bool32 bufferDeviceAddressMultiDevice_ = {},
  58273. VULKAN_HPP_NAMESPACE::Bool32 vulkanMemoryModel_ = {},
  58274. VULKAN_HPP_NAMESPACE::Bool32 vulkanMemoryModelDeviceScope_ = {},
  58275. VULKAN_HPP_NAMESPACE::Bool32 vulkanMemoryModelAvailabilityVisibilityChains_ = {},
  58276. VULKAN_HPP_NAMESPACE::Bool32 shaderOutputViewportIndex_ = {},
  58277. VULKAN_HPP_NAMESPACE::Bool32 shaderOutputLayer_ = {},
  58278. VULKAN_HPP_NAMESPACE::Bool32 subgroupBroadcastDynamicId_ = {},
  58279. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  58280. : pNext( pNext_ )
  58281. , samplerMirrorClampToEdge( samplerMirrorClampToEdge_ )
  58282. , drawIndirectCount( drawIndirectCount_ )
  58283. , storageBuffer8BitAccess( storageBuffer8BitAccess_ )
  58284. , uniformAndStorageBuffer8BitAccess( uniformAndStorageBuffer8BitAccess_ )
  58285. , storagePushConstant8( storagePushConstant8_ )
  58286. , shaderBufferInt64Atomics( shaderBufferInt64Atomics_ )
  58287. , shaderSharedInt64Atomics( shaderSharedInt64Atomics_ )
  58288. , shaderFloat16( shaderFloat16_ )
  58289. , shaderInt8( shaderInt8_ )
  58290. , descriptorIndexing( descriptorIndexing_ )
  58291. , shaderInputAttachmentArrayDynamicIndexing( shaderInputAttachmentArrayDynamicIndexing_ )
  58292. , shaderUniformTexelBufferArrayDynamicIndexing( shaderUniformTexelBufferArrayDynamicIndexing_ )
  58293. , shaderStorageTexelBufferArrayDynamicIndexing( shaderStorageTexelBufferArrayDynamicIndexing_ )
  58294. , shaderUniformBufferArrayNonUniformIndexing( shaderUniformBufferArrayNonUniformIndexing_ )
  58295. , shaderSampledImageArrayNonUniformIndexing( shaderSampledImageArrayNonUniformIndexing_ )
  58296. , shaderStorageBufferArrayNonUniformIndexing( shaderStorageBufferArrayNonUniformIndexing_ )
  58297. , shaderStorageImageArrayNonUniformIndexing( shaderStorageImageArrayNonUniformIndexing_ )
  58298. , shaderInputAttachmentArrayNonUniformIndexing( shaderInputAttachmentArrayNonUniformIndexing_ )
  58299. , shaderUniformTexelBufferArrayNonUniformIndexing( shaderUniformTexelBufferArrayNonUniformIndexing_ )
  58300. , shaderStorageTexelBufferArrayNonUniformIndexing( shaderStorageTexelBufferArrayNonUniformIndexing_ )
  58301. , descriptorBindingUniformBufferUpdateAfterBind( descriptorBindingUniformBufferUpdateAfterBind_ )
  58302. , descriptorBindingSampledImageUpdateAfterBind( descriptorBindingSampledImageUpdateAfterBind_ )
  58303. , descriptorBindingStorageImageUpdateAfterBind( descriptorBindingStorageImageUpdateAfterBind_ )
  58304. , descriptorBindingStorageBufferUpdateAfterBind( descriptorBindingStorageBufferUpdateAfterBind_ )
  58305. , descriptorBindingUniformTexelBufferUpdateAfterBind( descriptorBindingUniformTexelBufferUpdateAfterBind_ )
  58306. , descriptorBindingStorageTexelBufferUpdateAfterBind( descriptorBindingStorageTexelBufferUpdateAfterBind_ )
  58307. , descriptorBindingUpdateUnusedWhilePending( descriptorBindingUpdateUnusedWhilePending_ )
  58308. , descriptorBindingPartiallyBound( descriptorBindingPartiallyBound_ )
  58309. , descriptorBindingVariableDescriptorCount( descriptorBindingVariableDescriptorCount_ )
  58310. , runtimeDescriptorArray( runtimeDescriptorArray_ )
  58311. , samplerFilterMinmax( samplerFilterMinmax_ )
  58312. , scalarBlockLayout( scalarBlockLayout_ )
  58313. , imagelessFramebuffer( imagelessFramebuffer_ )
  58314. , uniformBufferStandardLayout( uniformBufferStandardLayout_ )
  58315. , shaderSubgroupExtendedTypes( shaderSubgroupExtendedTypes_ )
  58316. , separateDepthStencilLayouts( separateDepthStencilLayouts_ )
  58317. , hostQueryReset( hostQueryReset_ )
  58318. , timelineSemaphore( timelineSemaphore_ )
  58319. , bufferDeviceAddress( bufferDeviceAddress_ )
  58320. , bufferDeviceAddressCaptureReplay( bufferDeviceAddressCaptureReplay_ )
  58321. , bufferDeviceAddressMultiDevice( bufferDeviceAddressMultiDevice_ )
  58322. , vulkanMemoryModel( vulkanMemoryModel_ )
  58323. , vulkanMemoryModelDeviceScope( vulkanMemoryModelDeviceScope_ )
  58324. , vulkanMemoryModelAvailabilityVisibilityChains( vulkanMemoryModelAvailabilityVisibilityChains_ )
  58325. , shaderOutputViewportIndex( shaderOutputViewportIndex_ )
  58326. , shaderOutputLayer( shaderOutputLayer_ )
  58327. , subgroupBroadcastDynamicId( subgroupBroadcastDynamicId_ )
  58328. {
  58329. }
  58330. VULKAN_HPP_CONSTEXPR PhysicalDeviceVulkan12Features( PhysicalDeviceVulkan12Features const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  58331. PhysicalDeviceVulkan12Features( VkPhysicalDeviceVulkan12Features const & rhs ) VULKAN_HPP_NOEXCEPT
  58332. : PhysicalDeviceVulkan12Features( *reinterpret_cast<PhysicalDeviceVulkan12Features const *>( &rhs ) )
  58333. {
  58334. }
  58335. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  58336. PhysicalDeviceVulkan12Features & operator=( PhysicalDeviceVulkan12Features const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  58337. PhysicalDeviceVulkan12Features & operator=( VkPhysicalDeviceVulkan12Features const & rhs ) VULKAN_HPP_NOEXCEPT
  58338. {
  58339. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Features const *>( &rhs );
  58340. return *this;
  58341. }
  58342. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  58343. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceVulkan12Features & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
  58344. {
  58345. pNext = pNext_;
  58346. return *this;
  58347. }
  58348. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceVulkan12Features &
  58349. setSamplerMirrorClampToEdge( VULKAN_HPP_NAMESPACE::Bool32 samplerMirrorClampToEdge_ ) VULKAN_HPP_NOEXCEPT
  58350. {
  58351. samplerMirrorClampToEdge = samplerMirrorClampToEdge_;
  58352. return *this;
  58353. }
  58354. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceVulkan12Features & setDrawIndirectCount( VULKAN_HPP_NAMESPACE::Bool32 drawIndirectCount_ ) VULKAN_HPP_NOEXCEPT
  58355. {
  58356. drawIndirectCount = drawIndirectCount_;
  58357. return *this;
  58358. }
  58359. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceVulkan12Features &
  58360. setStorageBuffer8BitAccess( VULKAN_HPP_NAMESPACE::Bool32 storageBuffer8BitAccess_ ) VULKAN_HPP_NOEXCEPT
  58361. {
  58362. storageBuffer8BitAccess = storageBuffer8BitAccess_;
  58363. return *this;
  58364. }
  58365. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceVulkan12Features &
  58366. setUniformAndStorageBuffer8BitAccess( VULKAN_HPP_NAMESPACE::Bool32 uniformAndStorageBuffer8BitAccess_ ) VULKAN_HPP_NOEXCEPT
  58367. {
  58368. uniformAndStorageBuffer8BitAccess = uniformAndStorageBuffer8BitAccess_;
  58369. return *this;
  58370. }
  58371. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceVulkan12Features & setStoragePushConstant8( VULKAN_HPP_NAMESPACE::Bool32 storagePushConstant8_ ) VULKAN_HPP_NOEXCEPT
  58372. {
  58373. storagePushConstant8 = storagePushConstant8_;
  58374. return *this;
  58375. }
  58376. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceVulkan12Features &
  58377. setShaderBufferInt64Atomics( VULKAN_HPP_NAMESPACE::Bool32 shaderBufferInt64Atomics_ ) VULKAN_HPP_NOEXCEPT
  58378. {
  58379. shaderBufferInt64Atomics = shaderBufferInt64Atomics_;
  58380. return *this;
  58381. }
  58382. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceVulkan12Features &
  58383. setShaderSharedInt64Atomics( VULKAN_HPP_NAMESPACE::Bool32 shaderSharedInt64Atomics_ ) VULKAN_HPP_NOEXCEPT
  58384. {
  58385. shaderSharedInt64Atomics = shaderSharedInt64Atomics_;
  58386. return *this;
  58387. }
  58388. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceVulkan12Features & setShaderFloat16( VULKAN_HPP_NAMESPACE::Bool32 shaderFloat16_ ) VULKAN_HPP_NOEXCEPT
  58389. {
  58390. shaderFloat16 = shaderFloat16_;
  58391. return *this;
  58392. }
  58393. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceVulkan12Features & setShaderInt8( VULKAN_HPP_NAMESPACE::Bool32 shaderInt8_ ) VULKAN_HPP_NOEXCEPT
  58394. {
  58395. shaderInt8 = shaderInt8_;
  58396. return *this;
  58397. }
  58398. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceVulkan12Features & setDescriptorIndexing( VULKAN_HPP_NAMESPACE::Bool32 descriptorIndexing_ ) VULKAN_HPP_NOEXCEPT
  58399. {
  58400. descriptorIndexing = descriptorIndexing_;
  58401. return *this;
  58402. }
  58403. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceVulkan12Features &
  58404. setShaderInputAttachmentArrayDynamicIndexing( VULKAN_HPP_NAMESPACE::Bool32 shaderInputAttachmentArrayDynamicIndexing_ ) VULKAN_HPP_NOEXCEPT
  58405. {
  58406. shaderInputAttachmentArrayDynamicIndexing = shaderInputAttachmentArrayDynamicIndexing_;
  58407. return *this;
  58408. }
  58409. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceVulkan12Features &
  58410. setShaderUniformTexelBufferArrayDynamicIndexing( VULKAN_HPP_NAMESPACE::Bool32 shaderUniformTexelBufferArrayDynamicIndexing_ ) VULKAN_HPP_NOEXCEPT
  58411. {
  58412. shaderUniformTexelBufferArrayDynamicIndexing = shaderUniformTexelBufferArrayDynamicIndexing_;
  58413. return *this;
  58414. }
  58415. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceVulkan12Features &
  58416. setShaderStorageTexelBufferArrayDynamicIndexing( VULKAN_HPP_NAMESPACE::Bool32 shaderStorageTexelBufferArrayDynamicIndexing_ ) VULKAN_HPP_NOEXCEPT
  58417. {
  58418. shaderStorageTexelBufferArrayDynamicIndexing = shaderStorageTexelBufferArrayDynamicIndexing_;
  58419. return *this;
  58420. }
  58421. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceVulkan12Features &
  58422. setShaderUniformBufferArrayNonUniformIndexing( VULKAN_HPP_NAMESPACE::Bool32 shaderUniformBufferArrayNonUniformIndexing_ ) VULKAN_HPP_NOEXCEPT
  58423. {
  58424. shaderUniformBufferArrayNonUniformIndexing = shaderUniformBufferArrayNonUniformIndexing_;
  58425. return *this;
  58426. }
  58427. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceVulkan12Features &
  58428. setShaderSampledImageArrayNonUniformIndexing( VULKAN_HPP_NAMESPACE::Bool32 shaderSampledImageArrayNonUniformIndexing_ ) VULKAN_HPP_NOEXCEPT
  58429. {
  58430. shaderSampledImageArrayNonUniformIndexing = shaderSampledImageArrayNonUniformIndexing_;
  58431. return *this;
  58432. }
  58433. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceVulkan12Features &
  58434. setShaderStorageBufferArrayNonUniformIndexing( VULKAN_HPP_NAMESPACE::Bool32 shaderStorageBufferArrayNonUniformIndexing_ ) VULKAN_HPP_NOEXCEPT
  58435. {
  58436. shaderStorageBufferArrayNonUniformIndexing = shaderStorageBufferArrayNonUniformIndexing_;
  58437. return *this;
  58438. }
  58439. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceVulkan12Features &
  58440. setShaderStorageImageArrayNonUniformIndexing( VULKAN_HPP_NAMESPACE::Bool32 shaderStorageImageArrayNonUniformIndexing_ ) VULKAN_HPP_NOEXCEPT
  58441. {
  58442. shaderStorageImageArrayNonUniformIndexing = shaderStorageImageArrayNonUniformIndexing_;
  58443. return *this;
  58444. }
  58445. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceVulkan12Features &
  58446. setShaderInputAttachmentArrayNonUniformIndexing( VULKAN_HPP_NAMESPACE::Bool32 shaderInputAttachmentArrayNonUniformIndexing_ ) VULKAN_HPP_NOEXCEPT
  58447. {
  58448. shaderInputAttachmentArrayNonUniformIndexing = shaderInputAttachmentArrayNonUniformIndexing_;
  58449. return *this;
  58450. }
  58451. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceVulkan12Features &
  58452. setShaderUniformTexelBufferArrayNonUniformIndexing( VULKAN_HPP_NAMESPACE::Bool32 shaderUniformTexelBufferArrayNonUniformIndexing_ ) VULKAN_HPP_NOEXCEPT
  58453. {
  58454. shaderUniformTexelBufferArrayNonUniformIndexing = shaderUniformTexelBufferArrayNonUniformIndexing_;
  58455. return *this;
  58456. }
  58457. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceVulkan12Features &
  58458. setShaderStorageTexelBufferArrayNonUniformIndexing( VULKAN_HPP_NAMESPACE::Bool32 shaderStorageTexelBufferArrayNonUniformIndexing_ ) VULKAN_HPP_NOEXCEPT
  58459. {
  58460. shaderStorageTexelBufferArrayNonUniformIndexing = shaderStorageTexelBufferArrayNonUniformIndexing_;
  58461. return *this;
  58462. }
  58463. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceVulkan12Features &
  58464. setDescriptorBindingUniformBufferUpdateAfterBind( VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingUniformBufferUpdateAfterBind_ ) VULKAN_HPP_NOEXCEPT
  58465. {
  58466. descriptorBindingUniformBufferUpdateAfterBind = descriptorBindingUniformBufferUpdateAfterBind_;
  58467. return *this;
  58468. }
  58469. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceVulkan12Features &
  58470. setDescriptorBindingSampledImageUpdateAfterBind( VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingSampledImageUpdateAfterBind_ ) VULKAN_HPP_NOEXCEPT
  58471. {
  58472. descriptorBindingSampledImageUpdateAfterBind = descriptorBindingSampledImageUpdateAfterBind_;
  58473. return *this;
  58474. }
  58475. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceVulkan12Features &
  58476. setDescriptorBindingStorageImageUpdateAfterBind( VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingStorageImageUpdateAfterBind_ ) VULKAN_HPP_NOEXCEPT
  58477. {
  58478. descriptorBindingStorageImageUpdateAfterBind = descriptorBindingStorageImageUpdateAfterBind_;
  58479. return *this;
  58480. }
  58481. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceVulkan12Features &
  58482. setDescriptorBindingStorageBufferUpdateAfterBind( VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingStorageBufferUpdateAfterBind_ ) VULKAN_HPP_NOEXCEPT
  58483. {
  58484. descriptorBindingStorageBufferUpdateAfterBind = descriptorBindingStorageBufferUpdateAfterBind_;
  58485. return *this;
  58486. }
  58487. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceVulkan12Features & setDescriptorBindingUniformTexelBufferUpdateAfterBind(
  58488. VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingUniformTexelBufferUpdateAfterBind_ ) VULKAN_HPP_NOEXCEPT
  58489. {
  58490. descriptorBindingUniformTexelBufferUpdateAfterBind = descriptorBindingUniformTexelBufferUpdateAfterBind_;
  58491. return *this;
  58492. }
  58493. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceVulkan12Features & setDescriptorBindingStorageTexelBufferUpdateAfterBind(
  58494. VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingStorageTexelBufferUpdateAfterBind_ ) VULKAN_HPP_NOEXCEPT
  58495. {
  58496. descriptorBindingStorageTexelBufferUpdateAfterBind = descriptorBindingStorageTexelBufferUpdateAfterBind_;
  58497. return *this;
  58498. }
  58499. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceVulkan12Features &
  58500. setDescriptorBindingUpdateUnusedWhilePending( VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingUpdateUnusedWhilePending_ ) VULKAN_HPP_NOEXCEPT
  58501. {
  58502. descriptorBindingUpdateUnusedWhilePending = descriptorBindingUpdateUnusedWhilePending_;
  58503. return *this;
  58504. }
  58505. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceVulkan12Features &
  58506. setDescriptorBindingPartiallyBound( VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingPartiallyBound_ ) VULKAN_HPP_NOEXCEPT
  58507. {
  58508. descriptorBindingPartiallyBound = descriptorBindingPartiallyBound_;
  58509. return *this;
  58510. }
  58511. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceVulkan12Features &
  58512. setDescriptorBindingVariableDescriptorCount( VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingVariableDescriptorCount_ ) VULKAN_HPP_NOEXCEPT
  58513. {
  58514. descriptorBindingVariableDescriptorCount = descriptorBindingVariableDescriptorCount_;
  58515. return *this;
  58516. }
  58517. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceVulkan12Features &
  58518. setRuntimeDescriptorArray( VULKAN_HPP_NAMESPACE::Bool32 runtimeDescriptorArray_ ) VULKAN_HPP_NOEXCEPT
  58519. {
  58520. runtimeDescriptorArray = runtimeDescriptorArray_;
  58521. return *this;
  58522. }
  58523. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceVulkan12Features & setSamplerFilterMinmax( VULKAN_HPP_NAMESPACE::Bool32 samplerFilterMinmax_ ) VULKAN_HPP_NOEXCEPT
  58524. {
  58525. samplerFilterMinmax = samplerFilterMinmax_;
  58526. return *this;
  58527. }
  58528. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceVulkan12Features & setScalarBlockLayout( VULKAN_HPP_NAMESPACE::Bool32 scalarBlockLayout_ ) VULKAN_HPP_NOEXCEPT
  58529. {
  58530. scalarBlockLayout = scalarBlockLayout_;
  58531. return *this;
  58532. }
  58533. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceVulkan12Features & setImagelessFramebuffer( VULKAN_HPP_NAMESPACE::Bool32 imagelessFramebuffer_ ) VULKAN_HPP_NOEXCEPT
  58534. {
  58535. imagelessFramebuffer = imagelessFramebuffer_;
  58536. return *this;
  58537. }
  58538. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceVulkan12Features &
  58539. setUniformBufferStandardLayout( VULKAN_HPP_NAMESPACE::Bool32 uniformBufferStandardLayout_ ) VULKAN_HPP_NOEXCEPT
  58540. {
  58541. uniformBufferStandardLayout = uniformBufferStandardLayout_;
  58542. return *this;
  58543. }
  58544. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceVulkan12Features &
  58545. setShaderSubgroupExtendedTypes( VULKAN_HPP_NAMESPACE::Bool32 shaderSubgroupExtendedTypes_ ) VULKAN_HPP_NOEXCEPT
  58546. {
  58547. shaderSubgroupExtendedTypes = shaderSubgroupExtendedTypes_;
  58548. return *this;
  58549. }
  58550. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceVulkan12Features &
  58551. setSeparateDepthStencilLayouts( VULKAN_HPP_NAMESPACE::Bool32 separateDepthStencilLayouts_ ) VULKAN_HPP_NOEXCEPT
  58552. {
  58553. separateDepthStencilLayouts = separateDepthStencilLayouts_;
  58554. return *this;
  58555. }
  58556. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceVulkan12Features & setHostQueryReset( VULKAN_HPP_NAMESPACE::Bool32 hostQueryReset_ ) VULKAN_HPP_NOEXCEPT
  58557. {
  58558. hostQueryReset = hostQueryReset_;
  58559. return *this;
  58560. }
  58561. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceVulkan12Features & setTimelineSemaphore( VULKAN_HPP_NAMESPACE::Bool32 timelineSemaphore_ ) VULKAN_HPP_NOEXCEPT
  58562. {
  58563. timelineSemaphore = timelineSemaphore_;
  58564. return *this;
  58565. }
  58566. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceVulkan12Features & setBufferDeviceAddress( VULKAN_HPP_NAMESPACE::Bool32 bufferDeviceAddress_ ) VULKAN_HPP_NOEXCEPT
  58567. {
  58568. bufferDeviceAddress = bufferDeviceAddress_;
  58569. return *this;
  58570. }
  58571. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceVulkan12Features &
  58572. setBufferDeviceAddressCaptureReplay( VULKAN_HPP_NAMESPACE::Bool32 bufferDeviceAddressCaptureReplay_ ) VULKAN_HPP_NOEXCEPT
  58573. {
  58574. bufferDeviceAddressCaptureReplay = bufferDeviceAddressCaptureReplay_;
  58575. return *this;
  58576. }
  58577. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceVulkan12Features &
  58578. setBufferDeviceAddressMultiDevice( VULKAN_HPP_NAMESPACE::Bool32 bufferDeviceAddressMultiDevice_ ) VULKAN_HPP_NOEXCEPT
  58579. {
  58580. bufferDeviceAddressMultiDevice = bufferDeviceAddressMultiDevice_;
  58581. return *this;
  58582. }
  58583. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceVulkan12Features & setVulkanMemoryModel( VULKAN_HPP_NAMESPACE::Bool32 vulkanMemoryModel_ ) VULKAN_HPP_NOEXCEPT
  58584. {
  58585. vulkanMemoryModel = vulkanMemoryModel_;
  58586. return *this;
  58587. }
  58588. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceVulkan12Features &
  58589. setVulkanMemoryModelDeviceScope( VULKAN_HPP_NAMESPACE::Bool32 vulkanMemoryModelDeviceScope_ ) VULKAN_HPP_NOEXCEPT
  58590. {
  58591. vulkanMemoryModelDeviceScope = vulkanMemoryModelDeviceScope_;
  58592. return *this;
  58593. }
  58594. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceVulkan12Features &
  58595. setVulkanMemoryModelAvailabilityVisibilityChains( VULKAN_HPP_NAMESPACE::Bool32 vulkanMemoryModelAvailabilityVisibilityChains_ ) VULKAN_HPP_NOEXCEPT
  58596. {
  58597. vulkanMemoryModelAvailabilityVisibilityChains = vulkanMemoryModelAvailabilityVisibilityChains_;
  58598. return *this;
  58599. }
  58600. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceVulkan12Features &
  58601. setShaderOutputViewportIndex( VULKAN_HPP_NAMESPACE::Bool32 shaderOutputViewportIndex_ ) VULKAN_HPP_NOEXCEPT
  58602. {
  58603. shaderOutputViewportIndex = shaderOutputViewportIndex_;
  58604. return *this;
  58605. }
  58606. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceVulkan12Features & setShaderOutputLayer( VULKAN_HPP_NAMESPACE::Bool32 shaderOutputLayer_ ) VULKAN_HPP_NOEXCEPT
  58607. {
  58608. shaderOutputLayer = shaderOutputLayer_;
  58609. return *this;
  58610. }
  58611. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceVulkan12Features &
  58612. setSubgroupBroadcastDynamicId( VULKAN_HPP_NAMESPACE::Bool32 subgroupBroadcastDynamicId_ ) VULKAN_HPP_NOEXCEPT
  58613. {
  58614. subgroupBroadcastDynamicId = subgroupBroadcastDynamicId_;
  58615. return *this;
  58616. }
  58617. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  58618. operator VkPhysicalDeviceVulkan12Features const &() const VULKAN_HPP_NOEXCEPT
  58619. {
  58620. return *reinterpret_cast<const VkPhysicalDeviceVulkan12Features *>( this );
  58621. }
  58622. operator VkPhysicalDeviceVulkan12Features &() VULKAN_HPP_NOEXCEPT
  58623. {
  58624. return *reinterpret_cast<VkPhysicalDeviceVulkan12Features *>( this );
  58625. }
  58626. #if defined( VULKAN_HPP_USE_REFLECT )
  58627. # if 14 <= VULKAN_HPP_CPP_VERSION
  58628. auto
  58629. # else
  58630. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  58631. void * const &,
  58632. VULKAN_HPP_NAMESPACE::Bool32 const &,
  58633. VULKAN_HPP_NAMESPACE::Bool32 const &,
  58634. VULKAN_HPP_NAMESPACE::Bool32 const &,
  58635. VULKAN_HPP_NAMESPACE::Bool32 const &,
  58636. VULKAN_HPP_NAMESPACE::Bool32 const &,
  58637. VULKAN_HPP_NAMESPACE::Bool32 const &,
  58638. VULKAN_HPP_NAMESPACE::Bool32 const &,
  58639. VULKAN_HPP_NAMESPACE::Bool32 const &,
  58640. VULKAN_HPP_NAMESPACE::Bool32 const &,
  58641. VULKAN_HPP_NAMESPACE::Bool32 const &,
  58642. VULKAN_HPP_NAMESPACE::Bool32 const &,
  58643. VULKAN_HPP_NAMESPACE::Bool32 const &,
  58644. VULKAN_HPP_NAMESPACE::Bool32 const &,
  58645. VULKAN_HPP_NAMESPACE::Bool32 const &,
  58646. VULKAN_HPP_NAMESPACE::Bool32 const &,
  58647. VULKAN_HPP_NAMESPACE::Bool32 const &,
  58648. VULKAN_HPP_NAMESPACE::Bool32 const &,
  58649. VULKAN_HPP_NAMESPACE::Bool32 const &,
  58650. VULKAN_HPP_NAMESPACE::Bool32 const &,
  58651. VULKAN_HPP_NAMESPACE::Bool32 const &,
  58652. VULKAN_HPP_NAMESPACE::Bool32 const &,
  58653. VULKAN_HPP_NAMESPACE::Bool32 const &,
  58654. VULKAN_HPP_NAMESPACE::Bool32 const &,
  58655. VULKAN_HPP_NAMESPACE::Bool32 const &,
  58656. VULKAN_HPP_NAMESPACE::Bool32 const &,
  58657. VULKAN_HPP_NAMESPACE::Bool32 const &,
  58658. VULKAN_HPP_NAMESPACE::Bool32 const &,
  58659. VULKAN_HPP_NAMESPACE::Bool32 const &,
  58660. VULKAN_HPP_NAMESPACE::Bool32 const &,
  58661. VULKAN_HPP_NAMESPACE::Bool32 const &,
  58662. VULKAN_HPP_NAMESPACE::Bool32 const &,
  58663. VULKAN_HPP_NAMESPACE::Bool32 const &,
  58664. VULKAN_HPP_NAMESPACE::Bool32 const &,
  58665. VULKAN_HPP_NAMESPACE::Bool32 const &,
  58666. VULKAN_HPP_NAMESPACE::Bool32 const &,
  58667. VULKAN_HPP_NAMESPACE::Bool32 const &,
  58668. VULKAN_HPP_NAMESPACE::Bool32 const &,
  58669. VULKAN_HPP_NAMESPACE::Bool32 const &,
  58670. VULKAN_HPP_NAMESPACE::Bool32 const &,
  58671. VULKAN_HPP_NAMESPACE::Bool32 const &,
  58672. VULKAN_HPP_NAMESPACE::Bool32 const &,
  58673. VULKAN_HPP_NAMESPACE::Bool32 const &,
  58674. VULKAN_HPP_NAMESPACE::Bool32 const &,
  58675. VULKAN_HPP_NAMESPACE::Bool32 const &,
  58676. VULKAN_HPP_NAMESPACE::Bool32 const &,
  58677. VULKAN_HPP_NAMESPACE::Bool32 const &,
  58678. VULKAN_HPP_NAMESPACE::Bool32 const &>
  58679. # endif
  58680. reflect() const VULKAN_HPP_NOEXCEPT
  58681. {
  58682. return std::tie( sType,
  58683. pNext,
  58684. samplerMirrorClampToEdge,
  58685. drawIndirectCount,
  58686. storageBuffer8BitAccess,
  58687. uniformAndStorageBuffer8BitAccess,
  58688. storagePushConstant8,
  58689. shaderBufferInt64Atomics,
  58690. shaderSharedInt64Atomics,
  58691. shaderFloat16,
  58692. shaderInt8,
  58693. descriptorIndexing,
  58694. shaderInputAttachmentArrayDynamicIndexing,
  58695. shaderUniformTexelBufferArrayDynamicIndexing,
  58696. shaderStorageTexelBufferArrayDynamicIndexing,
  58697. shaderUniformBufferArrayNonUniformIndexing,
  58698. shaderSampledImageArrayNonUniformIndexing,
  58699. shaderStorageBufferArrayNonUniformIndexing,
  58700. shaderStorageImageArrayNonUniformIndexing,
  58701. shaderInputAttachmentArrayNonUniformIndexing,
  58702. shaderUniformTexelBufferArrayNonUniformIndexing,
  58703. shaderStorageTexelBufferArrayNonUniformIndexing,
  58704. descriptorBindingUniformBufferUpdateAfterBind,
  58705. descriptorBindingSampledImageUpdateAfterBind,
  58706. descriptorBindingStorageImageUpdateAfterBind,
  58707. descriptorBindingStorageBufferUpdateAfterBind,
  58708. descriptorBindingUniformTexelBufferUpdateAfterBind,
  58709. descriptorBindingStorageTexelBufferUpdateAfterBind,
  58710. descriptorBindingUpdateUnusedWhilePending,
  58711. descriptorBindingPartiallyBound,
  58712. descriptorBindingVariableDescriptorCount,
  58713. runtimeDescriptorArray,
  58714. samplerFilterMinmax,
  58715. scalarBlockLayout,
  58716. imagelessFramebuffer,
  58717. uniformBufferStandardLayout,
  58718. shaderSubgroupExtendedTypes,
  58719. separateDepthStencilLayouts,
  58720. hostQueryReset,
  58721. timelineSemaphore,
  58722. bufferDeviceAddress,
  58723. bufferDeviceAddressCaptureReplay,
  58724. bufferDeviceAddressMultiDevice,
  58725. vulkanMemoryModel,
  58726. vulkanMemoryModelDeviceScope,
  58727. vulkanMemoryModelAvailabilityVisibilityChains,
  58728. shaderOutputViewportIndex,
  58729. shaderOutputLayer,
  58730. subgroupBroadcastDynamicId );
  58731. }
  58732. #endif
  58733. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  58734. auto operator<=>( PhysicalDeviceVulkan12Features const & ) const = default;
  58735. #else
  58736. bool operator==( PhysicalDeviceVulkan12Features const & rhs ) const VULKAN_HPP_NOEXCEPT
  58737. {
  58738. # if defined( VULKAN_HPP_USE_REFLECT )
  58739. return this->reflect() == rhs.reflect();
  58740. # else
  58741. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( samplerMirrorClampToEdge == rhs.samplerMirrorClampToEdge ) &&
  58742. ( drawIndirectCount == rhs.drawIndirectCount ) && ( storageBuffer8BitAccess == rhs.storageBuffer8BitAccess ) &&
  58743. ( uniformAndStorageBuffer8BitAccess == rhs.uniformAndStorageBuffer8BitAccess ) && ( storagePushConstant8 == rhs.storagePushConstant8 ) &&
  58744. ( shaderBufferInt64Atomics == rhs.shaderBufferInt64Atomics ) && ( shaderSharedInt64Atomics == rhs.shaderSharedInt64Atomics ) &&
  58745. ( shaderFloat16 == rhs.shaderFloat16 ) && ( shaderInt8 == rhs.shaderInt8 ) && ( descriptorIndexing == rhs.descriptorIndexing ) &&
  58746. ( shaderInputAttachmentArrayDynamicIndexing == rhs.shaderInputAttachmentArrayDynamicIndexing ) &&
  58747. ( shaderUniformTexelBufferArrayDynamicIndexing == rhs.shaderUniformTexelBufferArrayDynamicIndexing ) &&
  58748. ( shaderStorageTexelBufferArrayDynamicIndexing == rhs.shaderStorageTexelBufferArrayDynamicIndexing ) &&
  58749. ( shaderUniformBufferArrayNonUniformIndexing == rhs.shaderUniformBufferArrayNonUniformIndexing ) &&
  58750. ( shaderSampledImageArrayNonUniformIndexing == rhs.shaderSampledImageArrayNonUniformIndexing ) &&
  58751. ( shaderStorageBufferArrayNonUniformIndexing == rhs.shaderStorageBufferArrayNonUniformIndexing ) &&
  58752. ( shaderStorageImageArrayNonUniformIndexing == rhs.shaderStorageImageArrayNonUniformIndexing ) &&
  58753. ( shaderInputAttachmentArrayNonUniformIndexing == rhs.shaderInputAttachmentArrayNonUniformIndexing ) &&
  58754. ( shaderUniformTexelBufferArrayNonUniformIndexing == rhs.shaderUniformTexelBufferArrayNonUniformIndexing ) &&
  58755. ( shaderStorageTexelBufferArrayNonUniformIndexing == rhs.shaderStorageTexelBufferArrayNonUniformIndexing ) &&
  58756. ( descriptorBindingUniformBufferUpdateAfterBind == rhs.descriptorBindingUniformBufferUpdateAfterBind ) &&
  58757. ( descriptorBindingSampledImageUpdateAfterBind == rhs.descriptorBindingSampledImageUpdateAfterBind ) &&
  58758. ( descriptorBindingStorageImageUpdateAfterBind == rhs.descriptorBindingStorageImageUpdateAfterBind ) &&
  58759. ( descriptorBindingStorageBufferUpdateAfterBind == rhs.descriptorBindingStorageBufferUpdateAfterBind ) &&
  58760. ( descriptorBindingUniformTexelBufferUpdateAfterBind == rhs.descriptorBindingUniformTexelBufferUpdateAfterBind ) &&
  58761. ( descriptorBindingStorageTexelBufferUpdateAfterBind == rhs.descriptorBindingStorageTexelBufferUpdateAfterBind ) &&
  58762. ( descriptorBindingUpdateUnusedWhilePending == rhs.descriptorBindingUpdateUnusedWhilePending ) &&
  58763. ( descriptorBindingPartiallyBound == rhs.descriptorBindingPartiallyBound ) &&
  58764. ( descriptorBindingVariableDescriptorCount == rhs.descriptorBindingVariableDescriptorCount ) &&
  58765. ( runtimeDescriptorArray == rhs.runtimeDescriptorArray ) && ( samplerFilterMinmax == rhs.samplerFilterMinmax ) &&
  58766. ( scalarBlockLayout == rhs.scalarBlockLayout ) && ( imagelessFramebuffer == rhs.imagelessFramebuffer ) &&
  58767. ( uniformBufferStandardLayout == rhs.uniformBufferStandardLayout ) && ( shaderSubgroupExtendedTypes == rhs.shaderSubgroupExtendedTypes ) &&
  58768. ( separateDepthStencilLayouts == rhs.separateDepthStencilLayouts ) && ( hostQueryReset == rhs.hostQueryReset ) &&
  58769. ( timelineSemaphore == rhs.timelineSemaphore ) && ( bufferDeviceAddress == rhs.bufferDeviceAddress ) &&
  58770. ( bufferDeviceAddressCaptureReplay == rhs.bufferDeviceAddressCaptureReplay ) &&
  58771. ( bufferDeviceAddressMultiDevice == rhs.bufferDeviceAddressMultiDevice ) && ( vulkanMemoryModel == rhs.vulkanMemoryModel ) &&
  58772. ( vulkanMemoryModelDeviceScope == rhs.vulkanMemoryModelDeviceScope ) &&
  58773. ( vulkanMemoryModelAvailabilityVisibilityChains == rhs.vulkanMemoryModelAvailabilityVisibilityChains ) &&
  58774. ( shaderOutputViewportIndex == rhs.shaderOutputViewportIndex ) && ( shaderOutputLayer == rhs.shaderOutputLayer ) &&
  58775. ( subgroupBroadcastDynamicId == rhs.subgroupBroadcastDynamicId );
  58776. # endif
  58777. }
  58778. bool operator!=( PhysicalDeviceVulkan12Features const & rhs ) const VULKAN_HPP_NOEXCEPT
  58779. {
  58780. return !operator==( rhs );
  58781. }
  58782. #endif
  58783. public:
  58784. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceVulkan12Features;
  58785. void * pNext = {};
  58786. VULKAN_HPP_NAMESPACE::Bool32 samplerMirrorClampToEdge = {};
  58787. VULKAN_HPP_NAMESPACE::Bool32 drawIndirectCount = {};
  58788. VULKAN_HPP_NAMESPACE::Bool32 storageBuffer8BitAccess = {};
  58789. VULKAN_HPP_NAMESPACE::Bool32 uniformAndStorageBuffer8BitAccess = {};
  58790. VULKAN_HPP_NAMESPACE::Bool32 storagePushConstant8 = {};
  58791. VULKAN_HPP_NAMESPACE::Bool32 shaderBufferInt64Atomics = {};
  58792. VULKAN_HPP_NAMESPACE::Bool32 shaderSharedInt64Atomics = {};
  58793. VULKAN_HPP_NAMESPACE::Bool32 shaderFloat16 = {};
  58794. VULKAN_HPP_NAMESPACE::Bool32 shaderInt8 = {};
  58795. VULKAN_HPP_NAMESPACE::Bool32 descriptorIndexing = {};
  58796. VULKAN_HPP_NAMESPACE::Bool32 shaderInputAttachmentArrayDynamicIndexing = {};
  58797. VULKAN_HPP_NAMESPACE::Bool32 shaderUniformTexelBufferArrayDynamicIndexing = {};
  58798. VULKAN_HPP_NAMESPACE::Bool32 shaderStorageTexelBufferArrayDynamicIndexing = {};
  58799. VULKAN_HPP_NAMESPACE::Bool32 shaderUniformBufferArrayNonUniformIndexing = {};
  58800. VULKAN_HPP_NAMESPACE::Bool32 shaderSampledImageArrayNonUniformIndexing = {};
  58801. VULKAN_HPP_NAMESPACE::Bool32 shaderStorageBufferArrayNonUniformIndexing = {};
  58802. VULKAN_HPP_NAMESPACE::Bool32 shaderStorageImageArrayNonUniformIndexing = {};
  58803. VULKAN_HPP_NAMESPACE::Bool32 shaderInputAttachmentArrayNonUniformIndexing = {};
  58804. VULKAN_HPP_NAMESPACE::Bool32 shaderUniformTexelBufferArrayNonUniformIndexing = {};
  58805. VULKAN_HPP_NAMESPACE::Bool32 shaderStorageTexelBufferArrayNonUniformIndexing = {};
  58806. VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingUniformBufferUpdateAfterBind = {};
  58807. VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingSampledImageUpdateAfterBind = {};
  58808. VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingStorageImageUpdateAfterBind = {};
  58809. VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingStorageBufferUpdateAfterBind = {};
  58810. VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingUniformTexelBufferUpdateAfterBind = {};
  58811. VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingStorageTexelBufferUpdateAfterBind = {};
  58812. VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingUpdateUnusedWhilePending = {};
  58813. VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingPartiallyBound = {};
  58814. VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingVariableDescriptorCount = {};
  58815. VULKAN_HPP_NAMESPACE::Bool32 runtimeDescriptorArray = {};
  58816. VULKAN_HPP_NAMESPACE::Bool32 samplerFilterMinmax = {};
  58817. VULKAN_HPP_NAMESPACE::Bool32 scalarBlockLayout = {};
  58818. VULKAN_HPP_NAMESPACE::Bool32 imagelessFramebuffer = {};
  58819. VULKAN_HPP_NAMESPACE::Bool32 uniformBufferStandardLayout = {};
  58820. VULKAN_HPP_NAMESPACE::Bool32 shaderSubgroupExtendedTypes = {};
  58821. VULKAN_HPP_NAMESPACE::Bool32 separateDepthStencilLayouts = {};
  58822. VULKAN_HPP_NAMESPACE::Bool32 hostQueryReset = {};
  58823. VULKAN_HPP_NAMESPACE::Bool32 timelineSemaphore = {};
  58824. VULKAN_HPP_NAMESPACE::Bool32 bufferDeviceAddress = {};
  58825. VULKAN_HPP_NAMESPACE::Bool32 bufferDeviceAddressCaptureReplay = {};
  58826. VULKAN_HPP_NAMESPACE::Bool32 bufferDeviceAddressMultiDevice = {};
  58827. VULKAN_HPP_NAMESPACE::Bool32 vulkanMemoryModel = {};
  58828. VULKAN_HPP_NAMESPACE::Bool32 vulkanMemoryModelDeviceScope = {};
  58829. VULKAN_HPP_NAMESPACE::Bool32 vulkanMemoryModelAvailabilityVisibilityChains = {};
  58830. VULKAN_HPP_NAMESPACE::Bool32 shaderOutputViewportIndex = {};
  58831. VULKAN_HPP_NAMESPACE::Bool32 shaderOutputLayer = {};
  58832. VULKAN_HPP_NAMESPACE::Bool32 subgroupBroadcastDynamicId = {};
  58833. };
  58834. template <>
  58835. struct CppType<StructureType, StructureType::ePhysicalDeviceVulkan12Features>
  58836. {
  58837. using Type = PhysicalDeviceVulkan12Features;
  58838. };
  58839. struct PhysicalDeviceVulkan12Properties
  58840. {
  58841. using NativeType = VkPhysicalDeviceVulkan12Properties;
  58842. static const bool allowDuplicate = false;
  58843. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceVulkan12Properties;
  58844. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  58845. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceVulkan12Properties(
  58846. VULKAN_HPP_NAMESPACE::DriverId driverID_ = VULKAN_HPP_NAMESPACE::DriverId::eAmdProprietary,
  58847. std::array<char, VK_MAX_DRIVER_NAME_SIZE> const & driverName_ = {},
  58848. std::array<char, VK_MAX_DRIVER_INFO_SIZE> const & driverInfo_ = {},
  58849. VULKAN_HPP_NAMESPACE::ConformanceVersion conformanceVersion_ = {},
  58850. VULKAN_HPP_NAMESPACE::ShaderFloatControlsIndependence denormBehaviorIndependence_ = VULKAN_HPP_NAMESPACE::ShaderFloatControlsIndependence::e32BitOnly,
  58851. VULKAN_HPP_NAMESPACE::ShaderFloatControlsIndependence roundingModeIndependence_ = VULKAN_HPP_NAMESPACE::ShaderFloatControlsIndependence::e32BitOnly,
  58852. VULKAN_HPP_NAMESPACE::Bool32 shaderSignedZeroInfNanPreserveFloat16_ = {},
  58853. VULKAN_HPP_NAMESPACE::Bool32 shaderSignedZeroInfNanPreserveFloat32_ = {},
  58854. VULKAN_HPP_NAMESPACE::Bool32 shaderSignedZeroInfNanPreserveFloat64_ = {},
  58855. VULKAN_HPP_NAMESPACE::Bool32 shaderDenormPreserveFloat16_ = {},
  58856. VULKAN_HPP_NAMESPACE::Bool32 shaderDenormPreserveFloat32_ = {},
  58857. VULKAN_HPP_NAMESPACE::Bool32 shaderDenormPreserveFloat64_ = {},
  58858. VULKAN_HPP_NAMESPACE::Bool32 shaderDenormFlushToZeroFloat16_ = {},
  58859. VULKAN_HPP_NAMESPACE::Bool32 shaderDenormFlushToZeroFloat32_ = {},
  58860. VULKAN_HPP_NAMESPACE::Bool32 shaderDenormFlushToZeroFloat64_ = {},
  58861. VULKAN_HPP_NAMESPACE::Bool32 shaderRoundingModeRTEFloat16_ = {},
  58862. VULKAN_HPP_NAMESPACE::Bool32 shaderRoundingModeRTEFloat32_ = {},
  58863. VULKAN_HPP_NAMESPACE::Bool32 shaderRoundingModeRTEFloat64_ = {},
  58864. VULKAN_HPP_NAMESPACE::Bool32 shaderRoundingModeRTZFloat16_ = {},
  58865. VULKAN_HPP_NAMESPACE::Bool32 shaderRoundingModeRTZFloat32_ = {},
  58866. VULKAN_HPP_NAMESPACE::Bool32 shaderRoundingModeRTZFloat64_ = {},
  58867. uint32_t maxUpdateAfterBindDescriptorsInAllPools_ = {},
  58868. VULKAN_HPP_NAMESPACE::Bool32 shaderUniformBufferArrayNonUniformIndexingNative_ = {},
  58869. VULKAN_HPP_NAMESPACE::Bool32 shaderSampledImageArrayNonUniformIndexingNative_ = {},
  58870. VULKAN_HPP_NAMESPACE::Bool32 shaderStorageBufferArrayNonUniformIndexingNative_ = {},
  58871. VULKAN_HPP_NAMESPACE::Bool32 shaderStorageImageArrayNonUniformIndexingNative_ = {},
  58872. VULKAN_HPP_NAMESPACE::Bool32 shaderInputAttachmentArrayNonUniformIndexingNative_ = {},
  58873. VULKAN_HPP_NAMESPACE::Bool32 robustBufferAccessUpdateAfterBind_ = {},
  58874. VULKAN_HPP_NAMESPACE::Bool32 quadDivergentImplicitLod_ = {},
  58875. uint32_t maxPerStageDescriptorUpdateAfterBindSamplers_ = {},
  58876. uint32_t maxPerStageDescriptorUpdateAfterBindUniformBuffers_ = {},
  58877. uint32_t maxPerStageDescriptorUpdateAfterBindStorageBuffers_ = {},
  58878. uint32_t maxPerStageDescriptorUpdateAfterBindSampledImages_ = {},
  58879. uint32_t maxPerStageDescriptorUpdateAfterBindStorageImages_ = {},
  58880. uint32_t maxPerStageDescriptorUpdateAfterBindInputAttachments_ = {},
  58881. uint32_t maxPerStageUpdateAfterBindResources_ = {},
  58882. uint32_t maxDescriptorSetUpdateAfterBindSamplers_ = {},
  58883. uint32_t maxDescriptorSetUpdateAfterBindUniformBuffers_ = {},
  58884. uint32_t maxDescriptorSetUpdateAfterBindUniformBuffersDynamic_ = {},
  58885. uint32_t maxDescriptorSetUpdateAfterBindStorageBuffers_ = {},
  58886. uint32_t maxDescriptorSetUpdateAfterBindStorageBuffersDynamic_ = {},
  58887. uint32_t maxDescriptorSetUpdateAfterBindSampledImages_ = {},
  58888. uint32_t maxDescriptorSetUpdateAfterBindStorageImages_ = {},
  58889. uint32_t maxDescriptorSetUpdateAfterBindInputAttachments_ = {},
  58890. VULKAN_HPP_NAMESPACE::ResolveModeFlags supportedDepthResolveModes_ = {},
  58891. VULKAN_HPP_NAMESPACE::ResolveModeFlags supportedStencilResolveModes_ = {},
  58892. VULKAN_HPP_NAMESPACE::Bool32 independentResolveNone_ = {},
  58893. VULKAN_HPP_NAMESPACE::Bool32 independentResolve_ = {},
  58894. VULKAN_HPP_NAMESPACE::Bool32 filterMinmaxSingleComponentFormats_ = {},
  58895. VULKAN_HPP_NAMESPACE::Bool32 filterMinmaxImageComponentMapping_ = {},
  58896. uint64_t maxTimelineSemaphoreValueDifference_ = {},
  58897. VULKAN_HPP_NAMESPACE::SampleCountFlags framebufferIntegerColorSampleCounts_ = {},
  58898. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  58899. : pNext( pNext_ )
  58900. , driverID( driverID_ )
  58901. , driverName( driverName_ )
  58902. , driverInfo( driverInfo_ )
  58903. , conformanceVersion( conformanceVersion_ )
  58904. , denormBehaviorIndependence( denormBehaviorIndependence_ )
  58905. , roundingModeIndependence( roundingModeIndependence_ )
  58906. , shaderSignedZeroInfNanPreserveFloat16( shaderSignedZeroInfNanPreserveFloat16_ )
  58907. , shaderSignedZeroInfNanPreserveFloat32( shaderSignedZeroInfNanPreserveFloat32_ )
  58908. , shaderSignedZeroInfNanPreserveFloat64( shaderSignedZeroInfNanPreserveFloat64_ )
  58909. , shaderDenormPreserveFloat16( shaderDenormPreserveFloat16_ )
  58910. , shaderDenormPreserveFloat32( shaderDenormPreserveFloat32_ )
  58911. , shaderDenormPreserveFloat64( shaderDenormPreserveFloat64_ )
  58912. , shaderDenormFlushToZeroFloat16( shaderDenormFlushToZeroFloat16_ )
  58913. , shaderDenormFlushToZeroFloat32( shaderDenormFlushToZeroFloat32_ )
  58914. , shaderDenormFlushToZeroFloat64( shaderDenormFlushToZeroFloat64_ )
  58915. , shaderRoundingModeRTEFloat16( shaderRoundingModeRTEFloat16_ )
  58916. , shaderRoundingModeRTEFloat32( shaderRoundingModeRTEFloat32_ )
  58917. , shaderRoundingModeRTEFloat64( shaderRoundingModeRTEFloat64_ )
  58918. , shaderRoundingModeRTZFloat16( shaderRoundingModeRTZFloat16_ )
  58919. , shaderRoundingModeRTZFloat32( shaderRoundingModeRTZFloat32_ )
  58920. , shaderRoundingModeRTZFloat64( shaderRoundingModeRTZFloat64_ )
  58921. , maxUpdateAfterBindDescriptorsInAllPools( maxUpdateAfterBindDescriptorsInAllPools_ )
  58922. , shaderUniformBufferArrayNonUniformIndexingNative( shaderUniformBufferArrayNonUniformIndexingNative_ )
  58923. , shaderSampledImageArrayNonUniformIndexingNative( shaderSampledImageArrayNonUniformIndexingNative_ )
  58924. , shaderStorageBufferArrayNonUniformIndexingNative( shaderStorageBufferArrayNonUniformIndexingNative_ )
  58925. , shaderStorageImageArrayNonUniformIndexingNative( shaderStorageImageArrayNonUniformIndexingNative_ )
  58926. , shaderInputAttachmentArrayNonUniformIndexingNative( shaderInputAttachmentArrayNonUniformIndexingNative_ )
  58927. , robustBufferAccessUpdateAfterBind( robustBufferAccessUpdateAfterBind_ )
  58928. , quadDivergentImplicitLod( quadDivergentImplicitLod_ )
  58929. , maxPerStageDescriptorUpdateAfterBindSamplers( maxPerStageDescriptorUpdateAfterBindSamplers_ )
  58930. , maxPerStageDescriptorUpdateAfterBindUniformBuffers( maxPerStageDescriptorUpdateAfterBindUniformBuffers_ )
  58931. , maxPerStageDescriptorUpdateAfterBindStorageBuffers( maxPerStageDescriptorUpdateAfterBindStorageBuffers_ )
  58932. , maxPerStageDescriptorUpdateAfterBindSampledImages( maxPerStageDescriptorUpdateAfterBindSampledImages_ )
  58933. , maxPerStageDescriptorUpdateAfterBindStorageImages( maxPerStageDescriptorUpdateAfterBindStorageImages_ )
  58934. , maxPerStageDescriptorUpdateAfterBindInputAttachments( maxPerStageDescriptorUpdateAfterBindInputAttachments_ )
  58935. , maxPerStageUpdateAfterBindResources( maxPerStageUpdateAfterBindResources_ )
  58936. , maxDescriptorSetUpdateAfterBindSamplers( maxDescriptorSetUpdateAfterBindSamplers_ )
  58937. , maxDescriptorSetUpdateAfterBindUniformBuffers( maxDescriptorSetUpdateAfterBindUniformBuffers_ )
  58938. , maxDescriptorSetUpdateAfterBindUniformBuffersDynamic( maxDescriptorSetUpdateAfterBindUniformBuffersDynamic_ )
  58939. , maxDescriptorSetUpdateAfterBindStorageBuffers( maxDescriptorSetUpdateAfterBindStorageBuffers_ )
  58940. , maxDescriptorSetUpdateAfterBindStorageBuffersDynamic( maxDescriptorSetUpdateAfterBindStorageBuffersDynamic_ )
  58941. , maxDescriptorSetUpdateAfterBindSampledImages( maxDescriptorSetUpdateAfterBindSampledImages_ )
  58942. , maxDescriptorSetUpdateAfterBindStorageImages( maxDescriptorSetUpdateAfterBindStorageImages_ )
  58943. , maxDescriptorSetUpdateAfterBindInputAttachments( maxDescriptorSetUpdateAfterBindInputAttachments_ )
  58944. , supportedDepthResolveModes( supportedDepthResolveModes_ )
  58945. , supportedStencilResolveModes( supportedStencilResolveModes_ )
  58946. , independentResolveNone( independentResolveNone_ )
  58947. , independentResolve( independentResolve_ )
  58948. , filterMinmaxSingleComponentFormats( filterMinmaxSingleComponentFormats_ )
  58949. , filterMinmaxImageComponentMapping( filterMinmaxImageComponentMapping_ )
  58950. , maxTimelineSemaphoreValueDifference( maxTimelineSemaphoreValueDifference_ )
  58951. , framebufferIntegerColorSampleCounts( framebufferIntegerColorSampleCounts_ )
  58952. {
  58953. }
  58954. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceVulkan12Properties( PhysicalDeviceVulkan12Properties const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  58955. PhysicalDeviceVulkan12Properties( VkPhysicalDeviceVulkan12Properties const & rhs ) VULKAN_HPP_NOEXCEPT
  58956. : PhysicalDeviceVulkan12Properties( *reinterpret_cast<PhysicalDeviceVulkan12Properties const *>( &rhs ) )
  58957. {
  58958. }
  58959. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  58960. PhysicalDeviceVulkan12Properties & operator=( PhysicalDeviceVulkan12Properties const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  58961. PhysicalDeviceVulkan12Properties & operator=( VkPhysicalDeviceVulkan12Properties const & rhs ) VULKAN_HPP_NOEXCEPT
  58962. {
  58963. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Properties const *>( &rhs );
  58964. return *this;
  58965. }
  58966. operator VkPhysicalDeviceVulkan12Properties const &() const VULKAN_HPP_NOEXCEPT
  58967. {
  58968. return *reinterpret_cast<const VkPhysicalDeviceVulkan12Properties *>( this );
  58969. }
  58970. operator VkPhysicalDeviceVulkan12Properties &() VULKAN_HPP_NOEXCEPT
  58971. {
  58972. return *reinterpret_cast<VkPhysicalDeviceVulkan12Properties *>( this );
  58973. }
  58974. #if defined( VULKAN_HPP_USE_REFLECT )
  58975. # if 14 <= VULKAN_HPP_CPP_VERSION
  58976. auto
  58977. # else
  58978. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  58979. void * const &,
  58980. VULKAN_HPP_NAMESPACE::DriverId const &,
  58981. VULKAN_HPP_NAMESPACE::ArrayWrapper1D<char, VK_MAX_DRIVER_NAME_SIZE> const &,
  58982. VULKAN_HPP_NAMESPACE::ArrayWrapper1D<char, VK_MAX_DRIVER_INFO_SIZE> const &,
  58983. VULKAN_HPP_NAMESPACE::ConformanceVersion const &,
  58984. VULKAN_HPP_NAMESPACE::ShaderFloatControlsIndependence const &,
  58985. VULKAN_HPP_NAMESPACE::ShaderFloatControlsIndependence const &,
  58986. VULKAN_HPP_NAMESPACE::Bool32 const &,
  58987. VULKAN_HPP_NAMESPACE::Bool32 const &,
  58988. VULKAN_HPP_NAMESPACE::Bool32 const &,
  58989. VULKAN_HPP_NAMESPACE::Bool32 const &,
  58990. VULKAN_HPP_NAMESPACE::Bool32 const &,
  58991. VULKAN_HPP_NAMESPACE::Bool32 const &,
  58992. VULKAN_HPP_NAMESPACE::Bool32 const &,
  58993. VULKAN_HPP_NAMESPACE::Bool32 const &,
  58994. VULKAN_HPP_NAMESPACE::Bool32 const &,
  58995. VULKAN_HPP_NAMESPACE::Bool32 const &,
  58996. VULKAN_HPP_NAMESPACE::Bool32 const &,
  58997. VULKAN_HPP_NAMESPACE::Bool32 const &,
  58998. VULKAN_HPP_NAMESPACE::Bool32 const &,
  58999. VULKAN_HPP_NAMESPACE::Bool32 const &,
  59000. VULKAN_HPP_NAMESPACE::Bool32 const &,
  59001. uint32_t const &,
  59002. VULKAN_HPP_NAMESPACE::Bool32 const &,
  59003. VULKAN_HPP_NAMESPACE::Bool32 const &,
  59004. VULKAN_HPP_NAMESPACE::Bool32 const &,
  59005. VULKAN_HPP_NAMESPACE::Bool32 const &,
  59006. VULKAN_HPP_NAMESPACE::Bool32 const &,
  59007. VULKAN_HPP_NAMESPACE::Bool32 const &,
  59008. VULKAN_HPP_NAMESPACE::Bool32 const &,
  59009. uint32_t const &,
  59010. uint32_t const &,
  59011. uint32_t const &,
  59012. uint32_t const &,
  59013. uint32_t const &,
  59014. uint32_t const &,
  59015. uint32_t const &,
  59016. uint32_t const &,
  59017. uint32_t const &,
  59018. uint32_t const &,
  59019. uint32_t const &,
  59020. uint32_t const &,
  59021. uint32_t const &,
  59022. uint32_t const &,
  59023. uint32_t const &,
  59024. VULKAN_HPP_NAMESPACE::ResolveModeFlags const &,
  59025. VULKAN_HPP_NAMESPACE::ResolveModeFlags const &,
  59026. VULKAN_HPP_NAMESPACE::Bool32 const &,
  59027. VULKAN_HPP_NAMESPACE::Bool32 const &,
  59028. VULKAN_HPP_NAMESPACE::Bool32 const &,
  59029. VULKAN_HPP_NAMESPACE::Bool32 const &,
  59030. uint64_t const &,
  59031. VULKAN_HPP_NAMESPACE::SampleCountFlags const &>
  59032. # endif
  59033. reflect() const VULKAN_HPP_NOEXCEPT
  59034. {
  59035. return std::tie( sType,
  59036. pNext,
  59037. driverID,
  59038. driverName,
  59039. driverInfo,
  59040. conformanceVersion,
  59041. denormBehaviorIndependence,
  59042. roundingModeIndependence,
  59043. shaderSignedZeroInfNanPreserveFloat16,
  59044. shaderSignedZeroInfNanPreserveFloat32,
  59045. shaderSignedZeroInfNanPreserveFloat64,
  59046. shaderDenormPreserveFloat16,
  59047. shaderDenormPreserveFloat32,
  59048. shaderDenormPreserveFloat64,
  59049. shaderDenormFlushToZeroFloat16,
  59050. shaderDenormFlushToZeroFloat32,
  59051. shaderDenormFlushToZeroFloat64,
  59052. shaderRoundingModeRTEFloat16,
  59053. shaderRoundingModeRTEFloat32,
  59054. shaderRoundingModeRTEFloat64,
  59055. shaderRoundingModeRTZFloat16,
  59056. shaderRoundingModeRTZFloat32,
  59057. shaderRoundingModeRTZFloat64,
  59058. maxUpdateAfterBindDescriptorsInAllPools,
  59059. shaderUniformBufferArrayNonUniformIndexingNative,
  59060. shaderSampledImageArrayNonUniformIndexingNative,
  59061. shaderStorageBufferArrayNonUniformIndexingNative,
  59062. shaderStorageImageArrayNonUniformIndexingNative,
  59063. shaderInputAttachmentArrayNonUniformIndexingNative,
  59064. robustBufferAccessUpdateAfterBind,
  59065. quadDivergentImplicitLod,
  59066. maxPerStageDescriptorUpdateAfterBindSamplers,
  59067. maxPerStageDescriptorUpdateAfterBindUniformBuffers,
  59068. maxPerStageDescriptorUpdateAfterBindStorageBuffers,
  59069. maxPerStageDescriptorUpdateAfterBindSampledImages,
  59070. maxPerStageDescriptorUpdateAfterBindStorageImages,
  59071. maxPerStageDescriptorUpdateAfterBindInputAttachments,
  59072. maxPerStageUpdateAfterBindResources,
  59073. maxDescriptorSetUpdateAfterBindSamplers,
  59074. maxDescriptorSetUpdateAfterBindUniformBuffers,
  59075. maxDescriptorSetUpdateAfterBindUniformBuffersDynamic,
  59076. maxDescriptorSetUpdateAfterBindStorageBuffers,
  59077. maxDescriptorSetUpdateAfterBindStorageBuffersDynamic,
  59078. maxDescriptorSetUpdateAfterBindSampledImages,
  59079. maxDescriptorSetUpdateAfterBindStorageImages,
  59080. maxDescriptorSetUpdateAfterBindInputAttachments,
  59081. supportedDepthResolveModes,
  59082. supportedStencilResolveModes,
  59083. independentResolveNone,
  59084. independentResolve,
  59085. filterMinmaxSingleComponentFormats,
  59086. filterMinmaxImageComponentMapping,
  59087. maxTimelineSemaphoreValueDifference,
  59088. framebufferIntegerColorSampleCounts );
  59089. }
  59090. #endif
  59091. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  59092. auto operator<=>( PhysicalDeviceVulkan12Properties const & ) const = default;
  59093. #else
  59094. bool operator==( PhysicalDeviceVulkan12Properties const & rhs ) const VULKAN_HPP_NOEXCEPT
  59095. {
  59096. # if defined( VULKAN_HPP_USE_REFLECT )
  59097. return this->reflect() == rhs.reflect();
  59098. # else
  59099. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( driverID == rhs.driverID ) && ( driverName == rhs.driverName ) &&
  59100. ( driverInfo == rhs.driverInfo ) && ( conformanceVersion == rhs.conformanceVersion ) &&
  59101. ( denormBehaviorIndependence == rhs.denormBehaviorIndependence ) && ( roundingModeIndependence == rhs.roundingModeIndependence ) &&
  59102. ( shaderSignedZeroInfNanPreserveFloat16 == rhs.shaderSignedZeroInfNanPreserveFloat16 ) &&
  59103. ( shaderSignedZeroInfNanPreserveFloat32 == rhs.shaderSignedZeroInfNanPreserveFloat32 ) &&
  59104. ( shaderSignedZeroInfNanPreserveFloat64 == rhs.shaderSignedZeroInfNanPreserveFloat64 ) &&
  59105. ( shaderDenormPreserveFloat16 == rhs.shaderDenormPreserveFloat16 ) && ( shaderDenormPreserveFloat32 == rhs.shaderDenormPreserveFloat32 ) &&
  59106. ( shaderDenormPreserveFloat64 == rhs.shaderDenormPreserveFloat64 ) && ( shaderDenormFlushToZeroFloat16 == rhs.shaderDenormFlushToZeroFloat16 ) &&
  59107. ( shaderDenormFlushToZeroFloat32 == rhs.shaderDenormFlushToZeroFloat32 ) &&
  59108. ( shaderDenormFlushToZeroFloat64 == rhs.shaderDenormFlushToZeroFloat64 ) && ( shaderRoundingModeRTEFloat16 == rhs.shaderRoundingModeRTEFloat16 ) &&
  59109. ( shaderRoundingModeRTEFloat32 == rhs.shaderRoundingModeRTEFloat32 ) && ( shaderRoundingModeRTEFloat64 == rhs.shaderRoundingModeRTEFloat64 ) &&
  59110. ( shaderRoundingModeRTZFloat16 == rhs.shaderRoundingModeRTZFloat16 ) && ( shaderRoundingModeRTZFloat32 == rhs.shaderRoundingModeRTZFloat32 ) &&
  59111. ( shaderRoundingModeRTZFloat64 == rhs.shaderRoundingModeRTZFloat64 ) &&
  59112. ( maxUpdateAfterBindDescriptorsInAllPools == rhs.maxUpdateAfterBindDescriptorsInAllPools ) &&
  59113. ( shaderUniformBufferArrayNonUniformIndexingNative == rhs.shaderUniformBufferArrayNonUniformIndexingNative ) &&
  59114. ( shaderSampledImageArrayNonUniformIndexingNative == rhs.shaderSampledImageArrayNonUniformIndexingNative ) &&
  59115. ( shaderStorageBufferArrayNonUniformIndexingNative == rhs.shaderStorageBufferArrayNonUniformIndexingNative ) &&
  59116. ( shaderStorageImageArrayNonUniformIndexingNative == rhs.shaderStorageImageArrayNonUniformIndexingNative ) &&
  59117. ( shaderInputAttachmentArrayNonUniformIndexingNative == rhs.shaderInputAttachmentArrayNonUniformIndexingNative ) &&
  59118. ( robustBufferAccessUpdateAfterBind == rhs.robustBufferAccessUpdateAfterBind ) && ( quadDivergentImplicitLod == rhs.quadDivergentImplicitLod ) &&
  59119. ( maxPerStageDescriptorUpdateAfterBindSamplers == rhs.maxPerStageDescriptorUpdateAfterBindSamplers ) &&
  59120. ( maxPerStageDescriptorUpdateAfterBindUniformBuffers == rhs.maxPerStageDescriptorUpdateAfterBindUniformBuffers ) &&
  59121. ( maxPerStageDescriptorUpdateAfterBindStorageBuffers == rhs.maxPerStageDescriptorUpdateAfterBindStorageBuffers ) &&
  59122. ( maxPerStageDescriptorUpdateAfterBindSampledImages == rhs.maxPerStageDescriptorUpdateAfterBindSampledImages ) &&
  59123. ( maxPerStageDescriptorUpdateAfterBindStorageImages == rhs.maxPerStageDescriptorUpdateAfterBindStorageImages ) &&
  59124. ( maxPerStageDescriptorUpdateAfterBindInputAttachments == rhs.maxPerStageDescriptorUpdateAfterBindInputAttachments ) &&
  59125. ( maxPerStageUpdateAfterBindResources == rhs.maxPerStageUpdateAfterBindResources ) &&
  59126. ( maxDescriptorSetUpdateAfterBindSamplers == rhs.maxDescriptorSetUpdateAfterBindSamplers ) &&
  59127. ( maxDescriptorSetUpdateAfterBindUniformBuffers == rhs.maxDescriptorSetUpdateAfterBindUniformBuffers ) &&
  59128. ( maxDescriptorSetUpdateAfterBindUniformBuffersDynamic == rhs.maxDescriptorSetUpdateAfterBindUniformBuffersDynamic ) &&
  59129. ( maxDescriptorSetUpdateAfterBindStorageBuffers == rhs.maxDescriptorSetUpdateAfterBindStorageBuffers ) &&
  59130. ( maxDescriptorSetUpdateAfterBindStorageBuffersDynamic == rhs.maxDescriptorSetUpdateAfterBindStorageBuffersDynamic ) &&
  59131. ( maxDescriptorSetUpdateAfterBindSampledImages == rhs.maxDescriptorSetUpdateAfterBindSampledImages ) &&
  59132. ( maxDescriptorSetUpdateAfterBindStorageImages == rhs.maxDescriptorSetUpdateAfterBindStorageImages ) &&
  59133. ( maxDescriptorSetUpdateAfterBindInputAttachments == rhs.maxDescriptorSetUpdateAfterBindInputAttachments ) &&
  59134. ( supportedDepthResolveModes == rhs.supportedDepthResolveModes ) && ( supportedStencilResolveModes == rhs.supportedStencilResolveModes ) &&
  59135. ( independentResolveNone == rhs.independentResolveNone ) && ( independentResolve == rhs.independentResolve ) &&
  59136. ( filterMinmaxSingleComponentFormats == rhs.filterMinmaxSingleComponentFormats ) &&
  59137. ( filterMinmaxImageComponentMapping == rhs.filterMinmaxImageComponentMapping ) &&
  59138. ( maxTimelineSemaphoreValueDifference == rhs.maxTimelineSemaphoreValueDifference ) &&
  59139. ( framebufferIntegerColorSampleCounts == rhs.framebufferIntegerColorSampleCounts );
  59140. # endif
  59141. }
  59142. bool operator!=( PhysicalDeviceVulkan12Properties const & rhs ) const VULKAN_HPP_NOEXCEPT
  59143. {
  59144. return !operator==( rhs );
  59145. }
  59146. #endif
  59147. public:
  59148. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceVulkan12Properties;
  59149. void * pNext = {};
  59150. VULKAN_HPP_NAMESPACE::DriverId driverID = VULKAN_HPP_NAMESPACE::DriverId::eAmdProprietary;
  59151. VULKAN_HPP_NAMESPACE::ArrayWrapper1D<char, VK_MAX_DRIVER_NAME_SIZE> driverName = {};
  59152. VULKAN_HPP_NAMESPACE::ArrayWrapper1D<char, VK_MAX_DRIVER_INFO_SIZE> driverInfo = {};
  59153. VULKAN_HPP_NAMESPACE::ConformanceVersion conformanceVersion = {};
  59154. VULKAN_HPP_NAMESPACE::ShaderFloatControlsIndependence denormBehaviorIndependence = VULKAN_HPP_NAMESPACE::ShaderFloatControlsIndependence::e32BitOnly;
  59155. VULKAN_HPP_NAMESPACE::ShaderFloatControlsIndependence roundingModeIndependence = VULKAN_HPP_NAMESPACE::ShaderFloatControlsIndependence::e32BitOnly;
  59156. VULKAN_HPP_NAMESPACE::Bool32 shaderSignedZeroInfNanPreserveFloat16 = {};
  59157. VULKAN_HPP_NAMESPACE::Bool32 shaderSignedZeroInfNanPreserveFloat32 = {};
  59158. VULKAN_HPP_NAMESPACE::Bool32 shaderSignedZeroInfNanPreserveFloat64 = {};
  59159. VULKAN_HPP_NAMESPACE::Bool32 shaderDenormPreserveFloat16 = {};
  59160. VULKAN_HPP_NAMESPACE::Bool32 shaderDenormPreserveFloat32 = {};
  59161. VULKAN_HPP_NAMESPACE::Bool32 shaderDenormPreserveFloat64 = {};
  59162. VULKAN_HPP_NAMESPACE::Bool32 shaderDenormFlushToZeroFloat16 = {};
  59163. VULKAN_HPP_NAMESPACE::Bool32 shaderDenormFlushToZeroFloat32 = {};
  59164. VULKAN_HPP_NAMESPACE::Bool32 shaderDenormFlushToZeroFloat64 = {};
  59165. VULKAN_HPP_NAMESPACE::Bool32 shaderRoundingModeRTEFloat16 = {};
  59166. VULKAN_HPP_NAMESPACE::Bool32 shaderRoundingModeRTEFloat32 = {};
  59167. VULKAN_HPP_NAMESPACE::Bool32 shaderRoundingModeRTEFloat64 = {};
  59168. VULKAN_HPP_NAMESPACE::Bool32 shaderRoundingModeRTZFloat16 = {};
  59169. VULKAN_HPP_NAMESPACE::Bool32 shaderRoundingModeRTZFloat32 = {};
  59170. VULKAN_HPP_NAMESPACE::Bool32 shaderRoundingModeRTZFloat64 = {};
  59171. uint32_t maxUpdateAfterBindDescriptorsInAllPools = {};
  59172. VULKAN_HPP_NAMESPACE::Bool32 shaderUniformBufferArrayNonUniformIndexingNative = {};
  59173. VULKAN_HPP_NAMESPACE::Bool32 shaderSampledImageArrayNonUniformIndexingNative = {};
  59174. VULKAN_HPP_NAMESPACE::Bool32 shaderStorageBufferArrayNonUniformIndexingNative = {};
  59175. VULKAN_HPP_NAMESPACE::Bool32 shaderStorageImageArrayNonUniformIndexingNative = {};
  59176. VULKAN_HPP_NAMESPACE::Bool32 shaderInputAttachmentArrayNonUniformIndexingNative = {};
  59177. VULKAN_HPP_NAMESPACE::Bool32 robustBufferAccessUpdateAfterBind = {};
  59178. VULKAN_HPP_NAMESPACE::Bool32 quadDivergentImplicitLod = {};
  59179. uint32_t maxPerStageDescriptorUpdateAfterBindSamplers = {};
  59180. uint32_t maxPerStageDescriptorUpdateAfterBindUniformBuffers = {};
  59181. uint32_t maxPerStageDescriptorUpdateAfterBindStorageBuffers = {};
  59182. uint32_t maxPerStageDescriptorUpdateAfterBindSampledImages = {};
  59183. uint32_t maxPerStageDescriptorUpdateAfterBindStorageImages = {};
  59184. uint32_t maxPerStageDescriptorUpdateAfterBindInputAttachments = {};
  59185. uint32_t maxPerStageUpdateAfterBindResources = {};
  59186. uint32_t maxDescriptorSetUpdateAfterBindSamplers = {};
  59187. uint32_t maxDescriptorSetUpdateAfterBindUniformBuffers = {};
  59188. uint32_t maxDescriptorSetUpdateAfterBindUniformBuffersDynamic = {};
  59189. uint32_t maxDescriptorSetUpdateAfterBindStorageBuffers = {};
  59190. uint32_t maxDescriptorSetUpdateAfterBindStorageBuffersDynamic = {};
  59191. uint32_t maxDescriptorSetUpdateAfterBindSampledImages = {};
  59192. uint32_t maxDescriptorSetUpdateAfterBindStorageImages = {};
  59193. uint32_t maxDescriptorSetUpdateAfterBindInputAttachments = {};
  59194. VULKAN_HPP_NAMESPACE::ResolveModeFlags supportedDepthResolveModes = {};
  59195. VULKAN_HPP_NAMESPACE::ResolveModeFlags supportedStencilResolveModes = {};
  59196. VULKAN_HPP_NAMESPACE::Bool32 independentResolveNone = {};
  59197. VULKAN_HPP_NAMESPACE::Bool32 independentResolve = {};
  59198. VULKAN_HPP_NAMESPACE::Bool32 filterMinmaxSingleComponentFormats = {};
  59199. VULKAN_HPP_NAMESPACE::Bool32 filterMinmaxImageComponentMapping = {};
  59200. uint64_t maxTimelineSemaphoreValueDifference = {};
  59201. VULKAN_HPP_NAMESPACE::SampleCountFlags framebufferIntegerColorSampleCounts = {};
  59202. };
  59203. template <>
  59204. struct CppType<StructureType, StructureType::ePhysicalDeviceVulkan12Properties>
  59205. {
  59206. using Type = PhysicalDeviceVulkan12Properties;
  59207. };
  59208. struct PhysicalDeviceVulkan13Features
  59209. {
  59210. using NativeType = VkPhysicalDeviceVulkan13Features;
  59211. static const bool allowDuplicate = false;
  59212. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceVulkan13Features;
  59213. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  59214. VULKAN_HPP_CONSTEXPR PhysicalDeviceVulkan13Features( VULKAN_HPP_NAMESPACE::Bool32 robustImageAccess_ = {},
  59215. VULKAN_HPP_NAMESPACE::Bool32 inlineUniformBlock_ = {},
  59216. VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingInlineUniformBlockUpdateAfterBind_ = {},
  59217. VULKAN_HPP_NAMESPACE::Bool32 pipelineCreationCacheControl_ = {},
  59218. VULKAN_HPP_NAMESPACE::Bool32 privateData_ = {},
  59219. VULKAN_HPP_NAMESPACE::Bool32 shaderDemoteToHelperInvocation_ = {},
  59220. VULKAN_HPP_NAMESPACE::Bool32 shaderTerminateInvocation_ = {},
  59221. VULKAN_HPP_NAMESPACE::Bool32 subgroupSizeControl_ = {},
  59222. VULKAN_HPP_NAMESPACE::Bool32 computeFullSubgroups_ = {},
  59223. VULKAN_HPP_NAMESPACE::Bool32 synchronization2_ = {},
  59224. VULKAN_HPP_NAMESPACE::Bool32 textureCompressionASTC_HDR_ = {},
  59225. VULKAN_HPP_NAMESPACE::Bool32 shaderZeroInitializeWorkgroupMemory_ = {},
  59226. VULKAN_HPP_NAMESPACE::Bool32 dynamicRendering_ = {},
  59227. VULKAN_HPP_NAMESPACE::Bool32 shaderIntegerDotProduct_ = {},
  59228. VULKAN_HPP_NAMESPACE::Bool32 maintenance4_ = {},
  59229. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  59230. : pNext( pNext_ )
  59231. , robustImageAccess( robustImageAccess_ )
  59232. , inlineUniformBlock( inlineUniformBlock_ )
  59233. , descriptorBindingInlineUniformBlockUpdateAfterBind( descriptorBindingInlineUniformBlockUpdateAfterBind_ )
  59234. , pipelineCreationCacheControl( pipelineCreationCacheControl_ )
  59235. , privateData( privateData_ )
  59236. , shaderDemoteToHelperInvocation( shaderDemoteToHelperInvocation_ )
  59237. , shaderTerminateInvocation( shaderTerminateInvocation_ )
  59238. , subgroupSizeControl( subgroupSizeControl_ )
  59239. , computeFullSubgroups( computeFullSubgroups_ )
  59240. , synchronization2( synchronization2_ )
  59241. , textureCompressionASTC_HDR( textureCompressionASTC_HDR_ )
  59242. , shaderZeroInitializeWorkgroupMemory( shaderZeroInitializeWorkgroupMemory_ )
  59243. , dynamicRendering( dynamicRendering_ )
  59244. , shaderIntegerDotProduct( shaderIntegerDotProduct_ )
  59245. , maintenance4( maintenance4_ )
  59246. {
  59247. }
  59248. VULKAN_HPP_CONSTEXPR PhysicalDeviceVulkan13Features( PhysicalDeviceVulkan13Features const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  59249. PhysicalDeviceVulkan13Features( VkPhysicalDeviceVulkan13Features const & rhs ) VULKAN_HPP_NOEXCEPT
  59250. : PhysicalDeviceVulkan13Features( *reinterpret_cast<PhysicalDeviceVulkan13Features const *>( &rhs ) )
  59251. {
  59252. }
  59253. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  59254. PhysicalDeviceVulkan13Features & operator=( PhysicalDeviceVulkan13Features const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  59255. PhysicalDeviceVulkan13Features & operator=( VkPhysicalDeviceVulkan13Features const & rhs ) VULKAN_HPP_NOEXCEPT
  59256. {
  59257. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan13Features const *>( &rhs );
  59258. return *this;
  59259. }
  59260. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  59261. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceVulkan13Features & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
  59262. {
  59263. pNext = pNext_;
  59264. return *this;
  59265. }
  59266. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceVulkan13Features & setRobustImageAccess( VULKAN_HPP_NAMESPACE::Bool32 robustImageAccess_ ) VULKAN_HPP_NOEXCEPT
  59267. {
  59268. robustImageAccess = robustImageAccess_;
  59269. return *this;
  59270. }
  59271. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceVulkan13Features & setInlineUniformBlock( VULKAN_HPP_NAMESPACE::Bool32 inlineUniformBlock_ ) VULKAN_HPP_NOEXCEPT
  59272. {
  59273. inlineUniformBlock = inlineUniformBlock_;
  59274. return *this;
  59275. }
  59276. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceVulkan13Features & setDescriptorBindingInlineUniformBlockUpdateAfterBind(
  59277. VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingInlineUniformBlockUpdateAfterBind_ ) VULKAN_HPP_NOEXCEPT
  59278. {
  59279. descriptorBindingInlineUniformBlockUpdateAfterBind = descriptorBindingInlineUniformBlockUpdateAfterBind_;
  59280. return *this;
  59281. }
  59282. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceVulkan13Features &
  59283. setPipelineCreationCacheControl( VULKAN_HPP_NAMESPACE::Bool32 pipelineCreationCacheControl_ ) VULKAN_HPP_NOEXCEPT
  59284. {
  59285. pipelineCreationCacheControl = pipelineCreationCacheControl_;
  59286. return *this;
  59287. }
  59288. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceVulkan13Features & setPrivateData( VULKAN_HPP_NAMESPACE::Bool32 privateData_ ) VULKAN_HPP_NOEXCEPT
  59289. {
  59290. privateData = privateData_;
  59291. return *this;
  59292. }
  59293. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceVulkan13Features &
  59294. setShaderDemoteToHelperInvocation( VULKAN_HPP_NAMESPACE::Bool32 shaderDemoteToHelperInvocation_ ) VULKAN_HPP_NOEXCEPT
  59295. {
  59296. shaderDemoteToHelperInvocation = shaderDemoteToHelperInvocation_;
  59297. return *this;
  59298. }
  59299. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceVulkan13Features &
  59300. setShaderTerminateInvocation( VULKAN_HPP_NAMESPACE::Bool32 shaderTerminateInvocation_ ) VULKAN_HPP_NOEXCEPT
  59301. {
  59302. shaderTerminateInvocation = shaderTerminateInvocation_;
  59303. return *this;
  59304. }
  59305. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceVulkan13Features & setSubgroupSizeControl( VULKAN_HPP_NAMESPACE::Bool32 subgroupSizeControl_ ) VULKAN_HPP_NOEXCEPT
  59306. {
  59307. subgroupSizeControl = subgroupSizeControl_;
  59308. return *this;
  59309. }
  59310. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceVulkan13Features & setComputeFullSubgroups( VULKAN_HPP_NAMESPACE::Bool32 computeFullSubgroups_ ) VULKAN_HPP_NOEXCEPT
  59311. {
  59312. computeFullSubgroups = computeFullSubgroups_;
  59313. return *this;
  59314. }
  59315. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceVulkan13Features & setSynchronization2( VULKAN_HPP_NAMESPACE::Bool32 synchronization2_ ) VULKAN_HPP_NOEXCEPT
  59316. {
  59317. synchronization2 = synchronization2_;
  59318. return *this;
  59319. }
  59320. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceVulkan13Features &
  59321. setTextureCompressionASTC_HDR( VULKAN_HPP_NAMESPACE::Bool32 textureCompressionASTC_HDR_ ) VULKAN_HPP_NOEXCEPT
  59322. {
  59323. textureCompressionASTC_HDR = textureCompressionASTC_HDR_;
  59324. return *this;
  59325. }
  59326. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceVulkan13Features &
  59327. setShaderZeroInitializeWorkgroupMemory( VULKAN_HPP_NAMESPACE::Bool32 shaderZeroInitializeWorkgroupMemory_ ) VULKAN_HPP_NOEXCEPT
  59328. {
  59329. shaderZeroInitializeWorkgroupMemory = shaderZeroInitializeWorkgroupMemory_;
  59330. return *this;
  59331. }
  59332. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceVulkan13Features & setDynamicRendering( VULKAN_HPP_NAMESPACE::Bool32 dynamicRendering_ ) VULKAN_HPP_NOEXCEPT
  59333. {
  59334. dynamicRendering = dynamicRendering_;
  59335. return *this;
  59336. }
  59337. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceVulkan13Features &
  59338. setShaderIntegerDotProduct( VULKAN_HPP_NAMESPACE::Bool32 shaderIntegerDotProduct_ ) VULKAN_HPP_NOEXCEPT
  59339. {
  59340. shaderIntegerDotProduct = shaderIntegerDotProduct_;
  59341. return *this;
  59342. }
  59343. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceVulkan13Features & setMaintenance4( VULKAN_HPP_NAMESPACE::Bool32 maintenance4_ ) VULKAN_HPP_NOEXCEPT
  59344. {
  59345. maintenance4 = maintenance4_;
  59346. return *this;
  59347. }
  59348. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  59349. operator VkPhysicalDeviceVulkan13Features const &() const VULKAN_HPP_NOEXCEPT
  59350. {
  59351. return *reinterpret_cast<const VkPhysicalDeviceVulkan13Features *>( this );
  59352. }
  59353. operator VkPhysicalDeviceVulkan13Features &() VULKAN_HPP_NOEXCEPT
  59354. {
  59355. return *reinterpret_cast<VkPhysicalDeviceVulkan13Features *>( this );
  59356. }
  59357. #if defined( VULKAN_HPP_USE_REFLECT )
  59358. # if 14 <= VULKAN_HPP_CPP_VERSION
  59359. auto
  59360. # else
  59361. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  59362. void * const &,
  59363. VULKAN_HPP_NAMESPACE::Bool32 const &,
  59364. VULKAN_HPP_NAMESPACE::Bool32 const &,
  59365. VULKAN_HPP_NAMESPACE::Bool32 const &,
  59366. VULKAN_HPP_NAMESPACE::Bool32 const &,
  59367. VULKAN_HPP_NAMESPACE::Bool32 const &,
  59368. VULKAN_HPP_NAMESPACE::Bool32 const &,
  59369. VULKAN_HPP_NAMESPACE::Bool32 const &,
  59370. VULKAN_HPP_NAMESPACE::Bool32 const &,
  59371. VULKAN_HPP_NAMESPACE::Bool32 const &,
  59372. VULKAN_HPP_NAMESPACE::Bool32 const &,
  59373. VULKAN_HPP_NAMESPACE::Bool32 const &,
  59374. VULKAN_HPP_NAMESPACE::Bool32 const &,
  59375. VULKAN_HPP_NAMESPACE::Bool32 const &,
  59376. VULKAN_HPP_NAMESPACE::Bool32 const &,
  59377. VULKAN_HPP_NAMESPACE::Bool32 const &>
  59378. # endif
  59379. reflect() const VULKAN_HPP_NOEXCEPT
  59380. {
  59381. return std::tie( sType,
  59382. pNext,
  59383. robustImageAccess,
  59384. inlineUniformBlock,
  59385. descriptorBindingInlineUniformBlockUpdateAfterBind,
  59386. pipelineCreationCacheControl,
  59387. privateData,
  59388. shaderDemoteToHelperInvocation,
  59389. shaderTerminateInvocation,
  59390. subgroupSizeControl,
  59391. computeFullSubgroups,
  59392. synchronization2,
  59393. textureCompressionASTC_HDR,
  59394. shaderZeroInitializeWorkgroupMemory,
  59395. dynamicRendering,
  59396. shaderIntegerDotProduct,
  59397. maintenance4 );
  59398. }
  59399. #endif
  59400. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  59401. auto operator<=>( PhysicalDeviceVulkan13Features const & ) const = default;
  59402. #else
  59403. bool operator==( PhysicalDeviceVulkan13Features const & rhs ) const VULKAN_HPP_NOEXCEPT
  59404. {
  59405. # if defined( VULKAN_HPP_USE_REFLECT )
  59406. return this->reflect() == rhs.reflect();
  59407. # else
  59408. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( robustImageAccess == rhs.robustImageAccess ) &&
  59409. ( inlineUniformBlock == rhs.inlineUniformBlock ) &&
  59410. ( descriptorBindingInlineUniformBlockUpdateAfterBind == rhs.descriptorBindingInlineUniformBlockUpdateAfterBind ) &&
  59411. ( pipelineCreationCacheControl == rhs.pipelineCreationCacheControl ) && ( privateData == rhs.privateData ) &&
  59412. ( shaderDemoteToHelperInvocation == rhs.shaderDemoteToHelperInvocation ) && ( shaderTerminateInvocation == rhs.shaderTerminateInvocation ) &&
  59413. ( subgroupSizeControl == rhs.subgroupSizeControl ) && ( computeFullSubgroups == rhs.computeFullSubgroups ) &&
  59414. ( synchronization2 == rhs.synchronization2 ) && ( textureCompressionASTC_HDR == rhs.textureCompressionASTC_HDR ) &&
  59415. ( shaderZeroInitializeWorkgroupMemory == rhs.shaderZeroInitializeWorkgroupMemory ) && ( dynamicRendering == rhs.dynamicRendering ) &&
  59416. ( shaderIntegerDotProduct == rhs.shaderIntegerDotProduct ) && ( maintenance4 == rhs.maintenance4 );
  59417. # endif
  59418. }
  59419. bool operator!=( PhysicalDeviceVulkan13Features const & rhs ) const VULKAN_HPP_NOEXCEPT
  59420. {
  59421. return !operator==( rhs );
  59422. }
  59423. #endif
  59424. public:
  59425. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceVulkan13Features;
  59426. void * pNext = {};
  59427. VULKAN_HPP_NAMESPACE::Bool32 robustImageAccess = {};
  59428. VULKAN_HPP_NAMESPACE::Bool32 inlineUniformBlock = {};
  59429. VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingInlineUniformBlockUpdateAfterBind = {};
  59430. VULKAN_HPP_NAMESPACE::Bool32 pipelineCreationCacheControl = {};
  59431. VULKAN_HPP_NAMESPACE::Bool32 privateData = {};
  59432. VULKAN_HPP_NAMESPACE::Bool32 shaderDemoteToHelperInvocation = {};
  59433. VULKAN_HPP_NAMESPACE::Bool32 shaderTerminateInvocation = {};
  59434. VULKAN_HPP_NAMESPACE::Bool32 subgroupSizeControl = {};
  59435. VULKAN_HPP_NAMESPACE::Bool32 computeFullSubgroups = {};
  59436. VULKAN_HPP_NAMESPACE::Bool32 synchronization2 = {};
  59437. VULKAN_HPP_NAMESPACE::Bool32 textureCompressionASTC_HDR = {};
  59438. VULKAN_HPP_NAMESPACE::Bool32 shaderZeroInitializeWorkgroupMemory = {};
  59439. VULKAN_HPP_NAMESPACE::Bool32 dynamicRendering = {};
  59440. VULKAN_HPP_NAMESPACE::Bool32 shaderIntegerDotProduct = {};
  59441. VULKAN_HPP_NAMESPACE::Bool32 maintenance4 = {};
  59442. };
  59443. template <>
  59444. struct CppType<StructureType, StructureType::ePhysicalDeviceVulkan13Features>
  59445. {
  59446. using Type = PhysicalDeviceVulkan13Features;
  59447. };
  59448. struct PhysicalDeviceVulkan13Properties
  59449. {
  59450. using NativeType = VkPhysicalDeviceVulkan13Properties;
  59451. static const bool allowDuplicate = false;
  59452. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceVulkan13Properties;
  59453. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  59454. VULKAN_HPP_CONSTEXPR
  59455. PhysicalDeviceVulkan13Properties( uint32_t minSubgroupSize_ = {},
  59456. uint32_t maxSubgroupSize_ = {},
  59457. uint32_t maxComputeWorkgroupSubgroups_ = {},
  59458. VULKAN_HPP_NAMESPACE::ShaderStageFlags requiredSubgroupSizeStages_ = {},
  59459. uint32_t maxInlineUniformBlockSize_ = {},
  59460. uint32_t maxPerStageDescriptorInlineUniformBlocks_ = {},
  59461. uint32_t maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks_ = {},
  59462. uint32_t maxDescriptorSetInlineUniformBlocks_ = {},
  59463. uint32_t maxDescriptorSetUpdateAfterBindInlineUniformBlocks_ = {},
  59464. uint32_t maxInlineUniformTotalSize_ = {},
  59465. VULKAN_HPP_NAMESPACE::Bool32 integerDotProduct8BitUnsignedAccelerated_ = {},
  59466. VULKAN_HPP_NAMESPACE::Bool32 integerDotProduct8BitSignedAccelerated_ = {},
  59467. VULKAN_HPP_NAMESPACE::Bool32 integerDotProduct8BitMixedSignednessAccelerated_ = {},
  59468. VULKAN_HPP_NAMESPACE::Bool32 integerDotProduct4x8BitPackedUnsignedAccelerated_ = {},
  59469. VULKAN_HPP_NAMESPACE::Bool32 integerDotProduct4x8BitPackedSignedAccelerated_ = {},
  59470. VULKAN_HPP_NAMESPACE::Bool32 integerDotProduct4x8BitPackedMixedSignednessAccelerated_ = {},
  59471. VULKAN_HPP_NAMESPACE::Bool32 integerDotProduct16BitUnsignedAccelerated_ = {},
  59472. VULKAN_HPP_NAMESPACE::Bool32 integerDotProduct16BitSignedAccelerated_ = {},
  59473. VULKAN_HPP_NAMESPACE::Bool32 integerDotProduct16BitMixedSignednessAccelerated_ = {},
  59474. VULKAN_HPP_NAMESPACE::Bool32 integerDotProduct32BitUnsignedAccelerated_ = {},
  59475. VULKAN_HPP_NAMESPACE::Bool32 integerDotProduct32BitSignedAccelerated_ = {},
  59476. VULKAN_HPP_NAMESPACE::Bool32 integerDotProduct32BitMixedSignednessAccelerated_ = {},
  59477. VULKAN_HPP_NAMESPACE::Bool32 integerDotProduct64BitUnsignedAccelerated_ = {},
  59478. VULKAN_HPP_NAMESPACE::Bool32 integerDotProduct64BitSignedAccelerated_ = {},
  59479. VULKAN_HPP_NAMESPACE::Bool32 integerDotProduct64BitMixedSignednessAccelerated_ = {},
  59480. VULKAN_HPP_NAMESPACE::Bool32 integerDotProductAccumulatingSaturating8BitUnsignedAccelerated_ = {},
  59481. VULKAN_HPP_NAMESPACE::Bool32 integerDotProductAccumulatingSaturating8BitSignedAccelerated_ = {},
  59482. VULKAN_HPP_NAMESPACE::Bool32 integerDotProductAccumulatingSaturating8BitMixedSignednessAccelerated_ = {},
  59483. VULKAN_HPP_NAMESPACE::Bool32 integerDotProductAccumulatingSaturating4x8BitPackedUnsignedAccelerated_ = {},
  59484. VULKAN_HPP_NAMESPACE::Bool32 integerDotProductAccumulatingSaturating4x8BitPackedSignedAccelerated_ = {},
  59485. VULKAN_HPP_NAMESPACE::Bool32 integerDotProductAccumulatingSaturating4x8BitPackedMixedSignednessAccelerated_ = {},
  59486. VULKAN_HPP_NAMESPACE::Bool32 integerDotProductAccumulatingSaturating16BitUnsignedAccelerated_ = {},
  59487. VULKAN_HPP_NAMESPACE::Bool32 integerDotProductAccumulatingSaturating16BitSignedAccelerated_ = {},
  59488. VULKAN_HPP_NAMESPACE::Bool32 integerDotProductAccumulatingSaturating16BitMixedSignednessAccelerated_ = {},
  59489. VULKAN_HPP_NAMESPACE::Bool32 integerDotProductAccumulatingSaturating32BitUnsignedAccelerated_ = {},
  59490. VULKAN_HPP_NAMESPACE::Bool32 integerDotProductAccumulatingSaturating32BitSignedAccelerated_ = {},
  59491. VULKAN_HPP_NAMESPACE::Bool32 integerDotProductAccumulatingSaturating32BitMixedSignednessAccelerated_ = {},
  59492. VULKAN_HPP_NAMESPACE::Bool32 integerDotProductAccumulatingSaturating64BitUnsignedAccelerated_ = {},
  59493. VULKAN_HPP_NAMESPACE::Bool32 integerDotProductAccumulatingSaturating64BitSignedAccelerated_ = {},
  59494. VULKAN_HPP_NAMESPACE::Bool32 integerDotProductAccumulatingSaturating64BitMixedSignednessAccelerated_ = {},
  59495. VULKAN_HPP_NAMESPACE::DeviceSize storageTexelBufferOffsetAlignmentBytes_ = {},
  59496. VULKAN_HPP_NAMESPACE::Bool32 storageTexelBufferOffsetSingleTexelAlignment_ = {},
  59497. VULKAN_HPP_NAMESPACE::DeviceSize uniformTexelBufferOffsetAlignmentBytes_ = {},
  59498. VULKAN_HPP_NAMESPACE::Bool32 uniformTexelBufferOffsetSingleTexelAlignment_ = {},
  59499. VULKAN_HPP_NAMESPACE::DeviceSize maxBufferSize_ = {},
  59500. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  59501. : pNext( pNext_ )
  59502. , minSubgroupSize( minSubgroupSize_ )
  59503. , maxSubgroupSize( maxSubgroupSize_ )
  59504. , maxComputeWorkgroupSubgroups( maxComputeWorkgroupSubgroups_ )
  59505. , requiredSubgroupSizeStages( requiredSubgroupSizeStages_ )
  59506. , maxInlineUniformBlockSize( maxInlineUniformBlockSize_ )
  59507. , maxPerStageDescriptorInlineUniformBlocks( maxPerStageDescriptorInlineUniformBlocks_ )
  59508. , maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks( maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks_ )
  59509. , maxDescriptorSetInlineUniformBlocks( maxDescriptorSetInlineUniformBlocks_ )
  59510. , maxDescriptorSetUpdateAfterBindInlineUniformBlocks( maxDescriptorSetUpdateAfterBindInlineUniformBlocks_ )
  59511. , maxInlineUniformTotalSize( maxInlineUniformTotalSize_ )
  59512. , integerDotProduct8BitUnsignedAccelerated( integerDotProduct8BitUnsignedAccelerated_ )
  59513. , integerDotProduct8BitSignedAccelerated( integerDotProduct8BitSignedAccelerated_ )
  59514. , integerDotProduct8BitMixedSignednessAccelerated( integerDotProduct8BitMixedSignednessAccelerated_ )
  59515. , integerDotProduct4x8BitPackedUnsignedAccelerated( integerDotProduct4x8BitPackedUnsignedAccelerated_ )
  59516. , integerDotProduct4x8BitPackedSignedAccelerated( integerDotProduct4x8BitPackedSignedAccelerated_ )
  59517. , integerDotProduct4x8BitPackedMixedSignednessAccelerated( integerDotProduct4x8BitPackedMixedSignednessAccelerated_ )
  59518. , integerDotProduct16BitUnsignedAccelerated( integerDotProduct16BitUnsignedAccelerated_ )
  59519. , integerDotProduct16BitSignedAccelerated( integerDotProduct16BitSignedAccelerated_ )
  59520. , integerDotProduct16BitMixedSignednessAccelerated( integerDotProduct16BitMixedSignednessAccelerated_ )
  59521. , integerDotProduct32BitUnsignedAccelerated( integerDotProduct32BitUnsignedAccelerated_ )
  59522. , integerDotProduct32BitSignedAccelerated( integerDotProduct32BitSignedAccelerated_ )
  59523. , integerDotProduct32BitMixedSignednessAccelerated( integerDotProduct32BitMixedSignednessAccelerated_ )
  59524. , integerDotProduct64BitUnsignedAccelerated( integerDotProduct64BitUnsignedAccelerated_ )
  59525. , integerDotProduct64BitSignedAccelerated( integerDotProduct64BitSignedAccelerated_ )
  59526. , integerDotProduct64BitMixedSignednessAccelerated( integerDotProduct64BitMixedSignednessAccelerated_ )
  59527. , integerDotProductAccumulatingSaturating8BitUnsignedAccelerated( integerDotProductAccumulatingSaturating8BitUnsignedAccelerated_ )
  59528. , integerDotProductAccumulatingSaturating8BitSignedAccelerated( integerDotProductAccumulatingSaturating8BitSignedAccelerated_ )
  59529. , integerDotProductAccumulatingSaturating8BitMixedSignednessAccelerated( integerDotProductAccumulatingSaturating8BitMixedSignednessAccelerated_ )
  59530. , integerDotProductAccumulatingSaturating4x8BitPackedUnsignedAccelerated( integerDotProductAccumulatingSaturating4x8BitPackedUnsignedAccelerated_ )
  59531. , integerDotProductAccumulatingSaturating4x8BitPackedSignedAccelerated( integerDotProductAccumulatingSaturating4x8BitPackedSignedAccelerated_ )
  59532. , integerDotProductAccumulatingSaturating4x8BitPackedMixedSignednessAccelerated(
  59533. integerDotProductAccumulatingSaturating4x8BitPackedMixedSignednessAccelerated_ )
  59534. , integerDotProductAccumulatingSaturating16BitUnsignedAccelerated( integerDotProductAccumulatingSaturating16BitUnsignedAccelerated_ )
  59535. , integerDotProductAccumulatingSaturating16BitSignedAccelerated( integerDotProductAccumulatingSaturating16BitSignedAccelerated_ )
  59536. , integerDotProductAccumulatingSaturating16BitMixedSignednessAccelerated( integerDotProductAccumulatingSaturating16BitMixedSignednessAccelerated_ )
  59537. , integerDotProductAccumulatingSaturating32BitUnsignedAccelerated( integerDotProductAccumulatingSaturating32BitUnsignedAccelerated_ )
  59538. , integerDotProductAccumulatingSaturating32BitSignedAccelerated( integerDotProductAccumulatingSaturating32BitSignedAccelerated_ )
  59539. , integerDotProductAccumulatingSaturating32BitMixedSignednessAccelerated( integerDotProductAccumulatingSaturating32BitMixedSignednessAccelerated_ )
  59540. , integerDotProductAccumulatingSaturating64BitUnsignedAccelerated( integerDotProductAccumulatingSaturating64BitUnsignedAccelerated_ )
  59541. , integerDotProductAccumulatingSaturating64BitSignedAccelerated( integerDotProductAccumulatingSaturating64BitSignedAccelerated_ )
  59542. , integerDotProductAccumulatingSaturating64BitMixedSignednessAccelerated( integerDotProductAccumulatingSaturating64BitMixedSignednessAccelerated_ )
  59543. , storageTexelBufferOffsetAlignmentBytes( storageTexelBufferOffsetAlignmentBytes_ )
  59544. , storageTexelBufferOffsetSingleTexelAlignment( storageTexelBufferOffsetSingleTexelAlignment_ )
  59545. , uniformTexelBufferOffsetAlignmentBytes( uniformTexelBufferOffsetAlignmentBytes_ )
  59546. , uniformTexelBufferOffsetSingleTexelAlignment( uniformTexelBufferOffsetSingleTexelAlignment_ )
  59547. , maxBufferSize( maxBufferSize_ )
  59548. {
  59549. }
  59550. VULKAN_HPP_CONSTEXPR PhysicalDeviceVulkan13Properties( PhysicalDeviceVulkan13Properties const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  59551. PhysicalDeviceVulkan13Properties( VkPhysicalDeviceVulkan13Properties const & rhs ) VULKAN_HPP_NOEXCEPT
  59552. : PhysicalDeviceVulkan13Properties( *reinterpret_cast<PhysicalDeviceVulkan13Properties const *>( &rhs ) )
  59553. {
  59554. }
  59555. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  59556. PhysicalDeviceVulkan13Properties & operator=( PhysicalDeviceVulkan13Properties const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  59557. PhysicalDeviceVulkan13Properties & operator=( VkPhysicalDeviceVulkan13Properties const & rhs ) VULKAN_HPP_NOEXCEPT
  59558. {
  59559. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan13Properties const *>( &rhs );
  59560. return *this;
  59561. }
  59562. operator VkPhysicalDeviceVulkan13Properties const &() const VULKAN_HPP_NOEXCEPT
  59563. {
  59564. return *reinterpret_cast<const VkPhysicalDeviceVulkan13Properties *>( this );
  59565. }
  59566. operator VkPhysicalDeviceVulkan13Properties &() VULKAN_HPP_NOEXCEPT
  59567. {
  59568. return *reinterpret_cast<VkPhysicalDeviceVulkan13Properties *>( this );
  59569. }
  59570. #if defined( VULKAN_HPP_USE_REFLECT )
  59571. # if 14 <= VULKAN_HPP_CPP_VERSION
  59572. auto
  59573. # else
  59574. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  59575. void * const &,
  59576. uint32_t const &,
  59577. uint32_t const &,
  59578. uint32_t const &,
  59579. VULKAN_HPP_NAMESPACE::ShaderStageFlags const &,
  59580. uint32_t const &,
  59581. uint32_t const &,
  59582. uint32_t const &,
  59583. uint32_t const &,
  59584. uint32_t const &,
  59585. uint32_t const &,
  59586. VULKAN_HPP_NAMESPACE::Bool32 const &,
  59587. VULKAN_HPP_NAMESPACE::Bool32 const &,
  59588. VULKAN_HPP_NAMESPACE::Bool32 const &,
  59589. VULKAN_HPP_NAMESPACE::Bool32 const &,
  59590. VULKAN_HPP_NAMESPACE::Bool32 const &,
  59591. VULKAN_HPP_NAMESPACE::Bool32 const &,
  59592. VULKAN_HPP_NAMESPACE::Bool32 const &,
  59593. VULKAN_HPP_NAMESPACE::Bool32 const &,
  59594. VULKAN_HPP_NAMESPACE::Bool32 const &,
  59595. VULKAN_HPP_NAMESPACE::Bool32 const &,
  59596. VULKAN_HPP_NAMESPACE::Bool32 const &,
  59597. VULKAN_HPP_NAMESPACE::Bool32 const &,
  59598. VULKAN_HPP_NAMESPACE::Bool32 const &,
  59599. VULKAN_HPP_NAMESPACE::Bool32 const &,
  59600. VULKAN_HPP_NAMESPACE::Bool32 const &,
  59601. VULKAN_HPP_NAMESPACE::Bool32 const &,
  59602. VULKAN_HPP_NAMESPACE::Bool32 const &,
  59603. VULKAN_HPP_NAMESPACE::Bool32 const &,
  59604. VULKAN_HPP_NAMESPACE::Bool32 const &,
  59605. VULKAN_HPP_NAMESPACE::Bool32 const &,
  59606. VULKAN_HPP_NAMESPACE::Bool32 const &,
  59607. VULKAN_HPP_NAMESPACE::Bool32 const &,
  59608. VULKAN_HPP_NAMESPACE::Bool32 const &,
  59609. VULKAN_HPP_NAMESPACE::Bool32 const &,
  59610. VULKAN_HPP_NAMESPACE::Bool32 const &,
  59611. VULKAN_HPP_NAMESPACE::Bool32 const &,
  59612. VULKAN_HPP_NAMESPACE::Bool32 const &,
  59613. VULKAN_HPP_NAMESPACE::Bool32 const &,
  59614. VULKAN_HPP_NAMESPACE::Bool32 const &,
  59615. VULKAN_HPP_NAMESPACE::Bool32 const &,
  59616. VULKAN_HPP_NAMESPACE::DeviceSize const &,
  59617. VULKAN_HPP_NAMESPACE::Bool32 const &,
  59618. VULKAN_HPP_NAMESPACE::DeviceSize const &,
  59619. VULKAN_HPP_NAMESPACE::Bool32 const &,
  59620. VULKAN_HPP_NAMESPACE::DeviceSize const &>
  59621. # endif
  59622. reflect() const VULKAN_HPP_NOEXCEPT
  59623. {
  59624. return std::tie( sType,
  59625. pNext,
  59626. minSubgroupSize,
  59627. maxSubgroupSize,
  59628. maxComputeWorkgroupSubgroups,
  59629. requiredSubgroupSizeStages,
  59630. maxInlineUniformBlockSize,
  59631. maxPerStageDescriptorInlineUniformBlocks,
  59632. maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks,
  59633. maxDescriptorSetInlineUniformBlocks,
  59634. maxDescriptorSetUpdateAfterBindInlineUniformBlocks,
  59635. maxInlineUniformTotalSize,
  59636. integerDotProduct8BitUnsignedAccelerated,
  59637. integerDotProduct8BitSignedAccelerated,
  59638. integerDotProduct8BitMixedSignednessAccelerated,
  59639. integerDotProduct4x8BitPackedUnsignedAccelerated,
  59640. integerDotProduct4x8BitPackedSignedAccelerated,
  59641. integerDotProduct4x8BitPackedMixedSignednessAccelerated,
  59642. integerDotProduct16BitUnsignedAccelerated,
  59643. integerDotProduct16BitSignedAccelerated,
  59644. integerDotProduct16BitMixedSignednessAccelerated,
  59645. integerDotProduct32BitUnsignedAccelerated,
  59646. integerDotProduct32BitSignedAccelerated,
  59647. integerDotProduct32BitMixedSignednessAccelerated,
  59648. integerDotProduct64BitUnsignedAccelerated,
  59649. integerDotProduct64BitSignedAccelerated,
  59650. integerDotProduct64BitMixedSignednessAccelerated,
  59651. integerDotProductAccumulatingSaturating8BitUnsignedAccelerated,
  59652. integerDotProductAccumulatingSaturating8BitSignedAccelerated,
  59653. integerDotProductAccumulatingSaturating8BitMixedSignednessAccelerated,
  59654. integerDotProductAccumulatingSaturating4x8BitPackedUnsignedAccelerated,
  59655. integerDotProductAccumulatingSaturating4x8BitPackedSignedAccelerated,
  59656. integerDotProductAccumulatingSaturating4x8BitPackedMixedSignednessAccelerated,
  59657. integerDotProductAccumulatingSaturating16BitUnsignedAccelerated,
  59658. integerDotProductAccumulatingSaturating16BitSignedAccelerated,
  59659. integerDotProductAccumulatingSaturating16BitMixedSignednessAccelerated,
  59660. integerDotProductAccumulatingSaturating32BitUnsignedAccelerated,
  59661. integerDotProductAccumulatingSaturating32BitSignedAccelerated,
  59662. integerDotProductAccumulatingSaturating32BitMixedSignednessAccelerated,
  59663. integerDotProductAccumulatingSaturating64BitUnsignedAccelerated,
  59664. integerDotProductAccumulatingSaturating64BitSignedAccelerated,
  59665. integerDotProductAccumulatingSaturating64BitMixedSignednessAccelerated,
  59666. storageTexelBufferOffsetAlignmentBytes,
  59667. storageTexelBufferOffsetSingleTexelAlignment,
  59668. uniformTexelBufferOffsetAlignmentBytes,
  59669. uniformTexelBufferOffsetSingleTexelAlignment,
  59670. maxBufferSize );
  59671. }
  59672. #endif
  59673. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  59674. auto operator<=>( PhysicalDeviceVulkan13Properties const & ) const = default;
  59675. #else
  59676. bool operator==( PhysicalDeviceVulkan13Properties const & rhs ) const VULKAN_HPP_NOEXCEPT
  59677. {
  59678. # if defined( VULKAN_HPP_USE_REFLECT )
  59679. return this->reflect() == rhs.reflect();
  59680. # else
  59681. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( minSubgroupSize == rhs.minSubgroupSize ) && ( maxSubgroupSize == rhs.maxSubgroupSize ) &&
  59682. ( maxComputeWorkgroupSubgroups == rhs.maxComputeWorkgroupSubgroups ) && ( requiredSubgroupSizeStages == rhs.requiredSubgroupSizeStages ) &&
  59683. ( maxInlineUniformBlockSize == rhs.maxInlineUniformBlockSize ) &&
  59684. ( maxPerStageDescriptorInlineUniformBlocks == rhs.maxPerStageDescriptorInlineUniformBlocks ) &&
  59685. ( maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks == rhs.maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks ) &&
  59686. ( maxDescriptorSetInlineUniformBlocks == rhs.maxDescriptorSetInlineUniformBlocks ) &&
  59687. ( maxDescriptorSetUpdateAfterBindInlineUniformBlocks == rhs.maxDescriptorSetUpdateAfterBindInlineUniformBlocks ) &&
  59688. ( maxInlineUniformTotalSize == rhs.maxInlineUniformTotalSize ) &&
  59689. ( integerDotProduct8BitUnsignedAccelerated == rhs.integerDotProduct8BitUnsignedAccelerated ) &&
  59690. ( integerDotProduct8BitSignedAccelerated == rhs.integerDotProduct8BitSignedAccelerated ) &&
  59691. ( integerDotProduct8BitMixedSignednessAccelerated == rhs.integerDotProduct8BitMixedSignednessAccelerated ) &&
  59692. ( integerDotProduct4x8BitPackedUnsignedAccelerated == rhs.integerDotProduct4x8BitPackedUnsignedAccelerated ) &&
  59693. ( integerDotProduct4x8BitPackedSignedAccelerated == rhs.integerDotProduct4x8BitPackedSignedAccelerated ) &&
  59694. ( integerDotProduct4x8BitPackedMixedSignednessAccelerated == rhs.integerDotProduct4x8BitPackedMixedSignednessAccelerated ) &&
  59695. ( integerDotProduct16BitUnsignedAccelerated == rhs.integerDotProduct16BitUnsignedAccelerated ) &&
  59696. ( integerDotProduct16BitSignedAccelerated == rhs.integerDotProduct16BitSignedAccelerated ) &&
  59697. ( integerDotProduct16BitMixedSignednessAccelerated == rhs.integerDotProduct16BitMixedSignednessAccelerated ) &&
  59698. ( integerDotProduct32BitUnsignedAccelerated == rhs.integerDotProduct32BitUnsignedAccelerated ) &&
  59699. ( integerDotProduct32BitSignedAccelerated == rhs.integerDotProduct32BitSignedAccelerated ) &&
  59700. ( integerDotProduct32BitMixedSignednessAccelerated == rhs.integerDotProduct32BitMixedSignednessAccelerated ) &&
  59701. ( integerDotProduct64BitUnsignedAccelerated == rhs.integerDotProduct64BitUnsignedAccelerated ) &&
  59702. ( integerDotProduct64BitSignedAccelerated == rhs.integerDotProduct64BitSignedAccelerated ) &&
  59703. ( integerDotProduct64BitMixedSignednessAccelerated == rhs.integerDotProduct64BitMixedSignednessAccelerated ) &&
  59704. ( integerDotProductAccumulatingSaturating8BitUnsignedAccelerated == rhs.integerDotProductAccumulatingSaturating8BitUnsignedAccelerated ) &&
  59705. ( integerDotProductAccumulatingSaturating8BitSignedAccelerated == rhs.integerDotProductAccumulatingSaturating8BitSignedAccelerated ) &&
  59706. ( integerDotProductAccumulatingSaturating8BitMixedSignednessAccelerated ==
  59707. rhs.integerDotProductAccumulatingSaturating8BitMixedSignednessAccelerated ) &&
  59708. ( integerDotProductAccumulatingSaturating4x8BitPackedUnsignedAccelerated ==
  59709. rhs.integerDotProductAccumulatingSaturating4x8BitPackedUnsignedAccelerated ) &&
  59710. ( integerDotProductAccumulatingSaturating4x8BitPackedSignedAccelerated ==
  59711. rhs.integerDotProductAccumulatingSaturating4x8BitPackedSignedAccelerated ) &&
  59712. ( integerDotProductAccumulatingSaturating4x8BitPackedMixedSignednessAccelerated ==
  59713. rhs.integerDotProductAccumulatingSaturating4x8BitPackedMixedSignednessAccelerated ) &&
  59714. ( integerDotProductAccumulatingSaturating16BitUnsignedAccelerated == rhs.integerDotProductAccumulatingSaturating16BitUnsignedAccelerated ) &&
  59715. ( integerDotProductAccumulatingSaturating16BitSignedAccelerated == rhs.integerDotProductAccumulatingSaturating16BitSignedAccelerated ) &&
  59716. ( integerDotProductAccumulatingSaturating16BitMixedSignednessAccelerated ==
  59717. rhs.integerDotProductAccumulatingSaturating16BitMixedSignednessAccelerated ) &&
  59718. ( integerDotProductAccumulatingSaturating32BitUnsignedAccelerated == rhs.integerDotProductAccumulatingSaturating32BitUnsignedAccelerated ) &&
  59719. ( integerDotProductAccumulatingSaturating32BitSignedAccelerated == rhs.integerDotProductAccumulatingSaturating32BitSignedAccelerated ) &&
  59720. ( integerDotProductAccumulatingSaturating32BitMixedSignednessAccelerated ==
  59721. rhs.integerDotProductAccumulatingSaturating32BitMixedSignednessAccelerated ) &&
  59722. ( integerDotProductAccumulatingSaturating64BitUnsignedAccelerated == rhs.integerDotProductAccumulatingSaturating64BitUnsignedAccelerated ) &&
  59723. ( integerDotProductAccumulatingSaturating64BitSignedAccelerated == rhs.integerDotProductAccumulatingSaturating64BitSignedAccelerated ) &&
  59724. ( integerDotProductAccumulatingSaturating64BitMixedSignednessAccelerated ==
  59725. rhs.integerDotProductAccumulatingSaturating64BitMixedSignednessAccelerated ) &&
  59726. ( storageTexelBufferOffsetAlignmentBytes == rhs.storageTexelBufferOffsetAlignmentBytes ) &&
  59727. ( storageTexelBufferOffsetSingleTexelAlignment == rhs.storageTexelBufferOffsetSingleTexelAlignment ) &&
  59728. ( uniformTexelBufferOffsetAlignmentBytes == rhs.uniformTexelBufferOffsetAlignmentBytes ) &&
  59729. ( uniformTexelBufferOffsetSingleTexelAlignment == rhs.uniformTexelBufferOffsetSingleTexelAlignment ) && ( maxBufferSize == rhs.maxBufferSize );
  59730. # endif
  59731. }
  59732. bool operator!=( PhysicalDeviceVulkan13Properties const & rhs ) const VULKAN_HPP_NOEXCEPT
  59733. {
  59734. return !operator==( rhs );
  59735. }
  59736. #endif
  59737. public:
  59738. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceVulkan13Properties;
  59739. void * pNext = {};
  59740. uint32_t minSubgroupSize = {};
  59741. uint32_t maxSubgroupSize = {};
  59742. uint32_t maxComputeWorkgroupSubgroups = {};
  59743. VULKAN_HPP_NAMESPACE::ShaderStageFlags requiredSubgroupSizeStages = {};
  59744. uint32_t maxInlineUniformBlockSize = {};
  59745. uint32_t maxPerStageDescriptorInlineUniformBlocks = {};
  59746. uint32_t maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks = {};
  59747. uint32_t maxDescriptorSetInlineUniformBlocks = {};
  59748. uint32_t maxDescriptorSetUpdateAfterBindInlineUniformBlocks = {};
  59749. uint32_t maxInlineUniformTotalSize = {};
  59750. VULKAN_HPP_NAMESPACE::Bool32 integerDotProduct8BitUnsignedAccelerated = {};
  59751. VULKAN_HPP_NAMESPACE::Bool32 integerDotProduct8BitSignedAccelerated = {};
  59752. VULKAN_HPP_NAMESPACE::Bool32 integerDotProduct8BitMixedSignednessAccelerated = {};
  59753. VULKAN_HPP_NAMESPACE::Bool32 integerDotProduct4x8BitPackedUnsignedAccelerated = {};
  59754. VULKAN_HPP_NAMESPACE::Bool32 integerDotProduct4x8BitPackedSignedAccelerated = {};
  59755. VULKAN_HPP_NAMESPACE::Bool32 integerDotProduct4x8BitPackedMixedSignednessAccelerated = {};
  59756. VULKAN_HPP_NAMESPACE::Bool32 integerDotProduct16BitUnsignedAccelerated = {};
  59757. VULKAN_HPP_NAMESPACE::Bool32 integerDotProduct16BitSignedAccelerated = {};
  59758. VULKAN_HPP_NAMESPACE::Bool32 integerDotProduct16BitMixedSignednessAccelerated = {};
  59759. VULKAN_HPP_NAMESPACE::Bool32 integerDotProduct32BitUnsignedAccelerated = {};
  59760. VULKAN_HPP_NAMESPACE::Bool32 integerDotProduct32BitSignedAccelerated = {};
  59761. VULKAN_HPP_NAMESPACE::Bool32 integerDotProduct32BitMixedSignednessAccelerated = {};
  59762. VULKAN_HPP_NAMESPACE::Bool32 integerDotProduct64BitUnsignedAccelerated = {};
  59763. VULKAN_HPP_NAMESPACE::Bool32 integerDotProduct64BitSignedAccelerated = {};
  59764. VULKAN_HPP_NAMESPACE::Bool32 integerDotProduct64BitMixedSignednessAccelerated = {};
  59765. VULKAN_HPP_NAMESPACE::Bool32 integerDotProductAccumulatingSaturating8BitUnsignedAccelerated = {};
  59766. VULKAN_HPP_NAMESPACE::Bool32 integerDotProductAccumulatingSaturating8BitSignedAccelerated = {};
  59767. VULKAN_HPP_NAMESPACE::Bool32 integerDotProductAccumulatingSaturating8BitMixedSignednessAccelerated = {};
  59768. VULKAN_HPP_NAMESPACE::Bool32 integerDotProductAccumulatingSaturating4x8BitPackedUnsignedAccelerated = {};
  59769. VULKAN_HPP_NAMESPACE::Bool32 integerDotProductAccumulatingSaturating4x8BitPackedSignedAccelerated = {};
  59770. VULKAN_HPP_NAMESPACE::Bool32 integerDotProductAccumulatingSaturating4x8BitPackedMixedSignednessAccelerated = {};
  59771. VULKAN_HPP_NAMESPACE::Bool32 integerDotProductAccumulatingSaturating16BitUnsignedAccelerated = {};
  59772. VULKAN_HPP_NAMESPACE::Bool32 integerDotProductAccumulatingSaturating16BitSignedAccelerated = {};
  59773. VULKAN_HPP_NAMESPACE::Bool32 integerDotProductAccumulatingSaturating16BitMixedSignednessAccelerated = {};
  59774. VULKAN_HPP_NAMESPACE::Bool32 integerDotProductAccumulatingSaturating32BitUnsignedAccelerated = {};
  59775. VULKAN_HPP_NAMESPACE::Bool32 integerDotProductAccumulatingSaturating32BitSignedAccelerated = {};
  59776. VULKAN_HPP_NAMESPACE::Bool32 integerDotProductAccumulatingSaturating32BitMixedSignednessAccelerated = {};
  59777. VULKAN_HPP_NAMESPACE::Bool32 integerDotProductAccumulatingSaturating64BitUnsignedAccelerated = {};
  59778. VULKAN_HPP_NAMESPACE::Bool32 integerDotProductAccumulatingSaturating64BitSignedAccelerated = {};
  59779. VULKAN_HPP_NAMESPACE::Bool32 integerDotProductAccumulatingSaturating64BitMixedSignednessAccelerated = {};
  59780. VULKAN_HPP_NAMESPACE::DeviceSize storageTexelBufferOffsetAlignmentBytes = {};
  59781. VULKAN_HPP_NAMESPACE::Bool32 storageTexelBufferOffsetSingleTexelAlignment = {};
  59782. VULKAN_HPP_NAMESPACE::DeviceSize uniformTexelBufferOffsetAlignmentBytes = {};
  59783. VULKAN_HPP_NAMESPACE::Bool32 uniformTexelBufferOffsetSingleTexelAlignment = {};
  59784. VULKAN_HPP_NAMESPACE::DeviceSize maxBufferSize = {};
  59785. };
  59786. template <>
  59787. struct CppType<StructureType, StructureType::ePhysicalDeviceVulkan13Properties>
  59788. {
  59789. using Type = PhysicalDeviceVulkan13Properties;
  59790. };
  59791. struct PhysicalDeviceVulkanMemoryModelFeatures
  59792. {
  59793. using NativeType = VkPhysicalDeviceVulkanMemoryModelFeatures;
  59794. static const bool allowDuplicate = false;
  59795. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceVulkanMemoryModelFeatures;
  59796. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  59797. VULKAN_HPP_CONSTEXPR PhysicalDeviceVulkanMemoryModelFeatures( VULKAN_HPP_NAMESPACE::Bool32 vulkanMemoryModel_ = {},
  59798. VULKAN_HPP_NAMESPACE::Bool32 vulkanMemoryModelDeviceScope_ = {},
  59799. VULKAN_HPP_NAMESPACE::Bool32 vulkanMemoryModelAvailabilityVisibilityChains_ = {},
  59800. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  59801. : pNext( pNext_ )
  59802. , vulkanMemoryModel( vulkanMemoryModel_ )
  59803. , vulkanMemoryModelDeviceScope( vulkanMemoryModelDeviceScope_ )
  59804. , vulkanMemoryModelAvailabilityVisibilityChains( vulkanMemoryModelAvailabilityVisibilityChains_ )
  59805. {
  59806. }
  59807. VULKAN_HPP_CONSTEXPR PhysicalDeviceVulkanMemoryModelFeatures( PhysicalDeviceVulkanMemoryModelFeatures const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  59808. PhysicalDeviceVulkanMemoryModelFeatures( VkPhysicalDeviceVulkanMemoryModelFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
  59809. : PhysicalDeviceVulkanMemoryModelFeatures( *reinterpret_cast<PhysicalDeviceVulkanMemoryModelFeatures const *>( &rhs ) )
  59810. {
  59811. }
  59812. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  59813. PhysicalDeviceVulkanMemoryModelFeatures & operator=( PhysicalDeviceVulkanMemoryModelFeatures const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  59814. PhysicalDeviceVulkanMemoryModelFeatures & operator=( VkPhysicalDeviceVulkanMemoryModelFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
  59815. {
  59816. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceVulkanMemoryModelFeatures const *>( &rhs );
  59817. return *this;
  59818. }
  59819. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  59820. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceVulkanMemoryModelFeatures & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
  59821. {
  59822. pNext = pNext_;
  59823. return *this;
  59824. }
  59825. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceVulkanMemoryModelFeatures &
  59826. setVulkanMemoryModel( VULKAN_HPP_NAMESPACE::Bool32 vulkanMemoryModel_ ) VULKAN_HPP_NOEXCEPT
  59827. {
  59828. vulkanMemoryModel = vulkanMemoryModel_;
  59829. return *this;
  59830. }
  59831. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceVulkanMemoryModelFeatures &
  59832. setVulkanMemoryModelDeviceScope( VULKAN_HPP_NAMESPACE::Bool32 vulkanMemoryModelDeviceScope_ ) VULKAN_HPP_NOEXCEPT
  59833. {
  59834. vulkanMemoryModelDeviceScope = vulkanMemoryModelDeviceScope_;
  59835. return *this;
  59836. }
  59837. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceVulkanMemoryModelFeatures &
  59838. setVulkanMemoryModelAvailabilityVisibilityChains( VULKAN_HPP_NAMESPACE::Bool32 vulkanMemoryModelAvailabilityVisibilityChains_ ) VULKAN_HPP_NOEXCEPT
  59839. {
  59840. vulkanMemoryModelAvailabilityVisibilityChains = vulkanMemoryModelAvailabilityVisibilityChains_;
  59841. return *this;
  59842. }
  59843. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  59844. operator VkPhysicalDeviceVulkanMemoryModelFeatures const &() const VULKAN_HPP_NOEXCEPT
  59845. {
  59846. return *reinterpret_cast<const VkPhysicalDeviceVulkanMemoryModelFeatures *>( this );
  59847. }
  59848. operator VkPhysicalDeviceVulkanMemoryModelFeatures &() VULKAN_HPP_NOEXCEPT
  59849. {
  59850. return *reinterpret_cast<VkPhysicalDeviceVulkanMemoryModelFeatures *>( this );
  59851. }
  59852. #if defined( VULKAN_HPP_USE_REFLECT )
  59853. # if 14 <= VULKAN_HPP_CPP_VERSION
  59854. auto
  59855. # else
  59856. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  59857. void * const &,
  59858. VULKAN_HPP_NAMESPACE::Bool32 const &,
  59859. VULKAN_HPP_NAMESPACE::Bool32 const &,
  59860. VULKAN_HPP_NAMESPACE::Bool32 const &>
  59861. # endif
  59862. reflect() const VULKAN_HPP_NOEXCEPT
  59863. {
  59864. return std::tie( sType, pNext, vulkanMemoryModel, vulkanMemoryModelDeviceScope, vulkanMemoryModelAvailabilityVisibilityChains );
  59865. }
  59866. #endif
  59867. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  59868. auto operator<=>( PhysicalDeviceVulkanMemoryModelFeatures const & ) const = default;
  59869. #else
  59870. bool operator==( PhysicalDeviceVulkanMemoryModelFeatures const & rhs ) const VULKAN_HPP_NOEXCEPT
  59871. {
  59872. # if defined( VULKAN_HPP_USE_REFLECT )
  59873. return this->reflect() == rhs.reflect();
  59874. # else
  59875. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( vulkanMemoryModel == rhs.vulkanMemoryModel ) &&
  59876. ( vulkanMemoryModelDeviceScope == rhs.vulkanMemoryModelDeviceScope ) &&
  59877. ( vulkanMemoryModelAvailabilityVisibilityChains == rhs.vulkanMemoryModelAvailabilityVisibilityChains );
  59878. # endif
  59879. }
  59880. bool operator!=( PhysicalDeviceVulkanMemoryModelFeatures const & rhs ) const VULKAN_HPP_NOEXCEPT
  59881. {
  59882. return !operator==( rhs );
  59883. }
  59884. #endif
  59885. public:
  59886. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceVulkanMemoryModelFeatures;
  59887. void * pNext = {};
  59888. VULKAN_HPP_NAMESPACE::Bool32 vulkanMemoryModel = {};
  59889. VULKAN_HPP_NAMESPACE::Bool32 vulkanMemoryModelDeviceScope = {};
  59890. VULKAN_HPP_NAMESPACE::Bool32 vulkanMemoryModelAvailabilityVisibilityChains = {};
  59891. };
  59892. template <>
  59893. struct CppType<StructureType, StructureType::ePhysicalDeviceVulkanMemoryModelFeatures>
  59894. {
  59895. using Type = PhysicalDeviceVulkanMemoryModelFeatures;
  59896. };
  59897. using PhysicalDeviceVulkanMemoryModelFeaturesKHR = PhysicalDeviceVulkanMemoryModelFeatures;
  59898. struct PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR
  59899. {
  59900. using NativeType = VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR;
  59901. static const bool allowDuplicate = false;
  59902. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR;
  59903. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  59904. VULKAN_HPP_CONSTEXPR
  59905. PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR( VULKAN_HPP_NAMESPACE::Bool32 workgroupMemoryExplicitLayout_ = {},
  59906. VULKAN_HPP_NAMESPACE::Bool32 workgroupMemoryExplicitLayoutScalarBlockLayout_ = {},
  59907. VULKAN_HPP_NAMESPACE::Bool32 workgroupMemoryExplicitLayout8BitAccess_ = {},
  59908. VULKAN_HPP_NAMESPACE::Bool32 workgroupMemoryExplicitLayout16BitAccess_ = {},
  59909. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  59910. : pNext( pNext_ )
  59911. , workgroupMemoryExplicitLayout( workgroupMemoryExplicitLayout_ )
  59912. , workgroupMemoryExplicitLayoutScalarBlockLayout( workgroupMemoryExplicitLayoutScalarBlockLayout_ )
  59913. , workgroupMemoryExplicitLayout8BitAccess( workgroupMemoryExplicitLayout8BitAccess_ )
  59914. , workgroupMemoryExplicitLayout16BitAccess( workgroupMemoryExplicitLayout16BitAccess_ )
  59915. {
  59916. }
  59917. VULKAN_HPP_CONSTEXPR PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR( PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR const & rhs )
  59918. VULKAN_HPP_NOEXCEPT = default;
  59919. PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR( VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  59920. : PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR( *reinterpret_cast<PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR const *>( &rhs ) )
  59921. {
  59922. }
  59923. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  59924. PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR &
  59925. operator=( PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  59926. PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR &
  59927. operator=( VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  59928. {
  59929. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR const *>( &rhs );
  59930. return *this;
  59931. }
  59932. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  59933. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
  59934. {
  59935. pNext = pNext_;
  59936. return *this;
  59937. }
  59938. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR &
  59939. setWorkgroupMemoryExplicitLayout( VULKAN_HPP_NAMESPACE::Bool32 workgroupMemoryExplicitLayout_ ) VULKAN_HPP_NOEXCEPT
  59940. {
  59941. workgroupMemoryExplicitLayout = workgroupMemoryExplicitLayout_;
  59942. return *this;
  59943. }
  59944. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR &
  59945. setWorkgroupMemoryExplicitLayoutScalarBlockLayout( VULKAN_HPP_NAMESPACE::Bool32 workgroupMemoryExplicitLayoutScalarBlockLayout_ ) VULKAN_HPP_NOEXCEPT
  59946. {
  59947. workgroupMemoryExplicitLayoutScalarBlockLayout = workgroupMemoryExplicitLayoutScalarBlockLayout_;
  59948. return *this;
  59949. }
  59950. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR &
  59951. setWorkgroupMemoryExplicitLayout8BitAccess( VULKAN_HPP_NAMESPACE::Bool32 workgroupMemoryExplicitLayout8BitAccess_ ) VULKAN_HPP_NOEXCEPT
  59952. {
  59953. workgroupMemoryExplicitLayout8BitAccess = workgroupMemoryExplicitLayout8BitAccess_;
  59954. return *this;
  59955. }
  59956. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR &
  59957. setWorkgroupMemoryExplicitLayout16BitAccess( VULKAN_HPP_NAMESPACE::Bool32 workgroupMemoryExplicitLayout16BitAccess_ ) VULKAN_HPP_NOEXCEPT
  59958. {
  59959. workgroupMemoryExplicitLayout16BitAccess = workgroupMemoryExplicitLayout16BitAccess_;
  59960. return *this;
  59961. }
  59962. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  59963. operator VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR const &() const VULKAN_HPP_NOEXCEPT
  59964. {
  59965. return *reinterpret_cast<const VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR *>( this );
  59966. }
  59967. operator VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR &() VULKAN_HPP_NOEXCEPT
  59968. {
  59969. return *reinterpret_cast<VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR *>( this );
  59970. }
  59971. #if defined( VULKAN_HPP_USE_REFLECT )
  59972. # if 14 <= VULKAN_HPP_CPP_VERSION
  59973. auto
  59974. # else
  59975. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  59976. void * const &,
  59977. VULKAN_HPP_NAMESPACE::Bool32 const &,
  59978. VULKAN_HPP_NAMESPACE::Bool32 const &,
  59979. VULKAN_HPP_NAMESPACE::Bool32 const &,
  59980. VULKAN_HPP_NAMESPACE::Bool32 const &>
  59981. # endif
  59982. reflect() const VULKAN_HPP_NOEXCEPT
  59983. {
  59984. return std::tie( sType,
  59985. pNext,
  59986. workgroupMemoryExplicitLayout,
  59987. workgroupMemoryExplicitLayoutScalarBlockLayout,
  59988. workgroupMemoryExplicitLayout8BitAccess,
  59989. workgroupMemoryExplicitLayout16BitAccess );
  59990. }
  59991. #endif
  59992. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  59993. auto operator<=>( PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR const & ) const = default;
  59994. #else
  59995. bool operator==( PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  59996. {
  59997. # if defined( VULKAN_HPP_USE_REFLECT )
  59998. return this->reflect() == rhs.reflect();
  59999. # else
  60000. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( workgroupMemoryExplicitLayout == rhs.workgroupMemoryExplicitLayout ) &&
  60001. ( workgroupMemoryExplicitLayoutScalarBlockLayout == rhs.workgroupMemoryExplicitLayoutScalarBlockLayout ) &&
  60002. ( workgroupMemoryExplicitLayout8BitAccess == rhs.workgroupMemoryExplicitLayout8BitAccess ) &&
  60003. ( workgroupMemoryExplicitLayout16BitAccess == rhs.workgroupMemoryExplicitLayout16BitAccess );
  60004. # endif
  60005. }
  60006. bool operator!=( PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  60007. {
  60008. return !operator==( rhs );
  60009. }
  60010. #endif
  60011. public:
  60012. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR;
  60013. void * pNext = {};
  60014. VULKAN_HPP_NAMESPACE::Bool32 workgroupMemoryExplicitLayout = {};
  60015. VULKAN_HPP_NAMESPACE::Bool32 workgroupMemoryExplicitLayoutScalarBlockLayout = {};
  60016. VULKAN_HPP_NAMESPACE::Bool32 workgroupMemoryExplicitLayout8BitAccess = {};
  60017. VULKAN_HPP_NAMESPACE::Bool32 workgroupMemoryExplicitLayout16BitAccess = {};
  60018. };
  60019. template <>
  60020. struct CppType<StructureType, StructureType::ePhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR>
  60021. {
  60022. using Type = PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR;
  60023. };
  60024. struct PhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT
  60025. {
  60026. using NativeType = VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT;
  60027. static const bool allowDuplicate = false;
  60028. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT;
  60029. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  60030. VULKAN_HPP_CONSTEXPR PhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT( VULKAN_HPP_NAMESPACE::Bool32 ycbcr2plane444Formats_ = {},
  60031. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  60032. : pNext( pNext_ )
  60033. , ycbcr2plane444Formats( ycbcr2plane444Formats_ )
  60034. {
  60035. }
  60036. VULKAN_HPP_CONSTEXPR
  60037. PhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT( PhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  60038. PhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT( VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  60039. : PhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT( *reinterpret_cast<PhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT const *>( &rhs ) )
  60040. {
  60041. }
  60042. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  60043. PhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT & operator=( PhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  60044. PhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT & operator=( VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  60045. {
  60046. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT const *>( &rhs );
  60047. return *this;
  60048. }
  60049. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  60050. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
  60051. {
  60052. pNext = pNext_;
  60053. return *this;
  60054. }
  60055. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT &
  60056. setYcbcr2plane444Formats( VULKAN_HPP_NAMESPACE::Bool32 ycbcr2plane444Formats_ ) VULKAN_HPP_NOEXCEPT
  60057. {
  60058. ycbcr2plane444Formats = ycbcr2plane444Formats_;
  60059. return *this;
  60060. }
  60061. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  60062. operator VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT const &() const VULKAN_HPP_NOEXCEPT
  60063. {
  60064. return *reinterpret_cast<const VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT *>( this );
  60065. }
  60066. operator VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT &() VULKAN_HPP_NOEXCEPT
  60067. {
  60068. return *reinterpret_cast<VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT *>( this );
  60069. }
  60070. #if defined( VULKAN_HPP_USE_REFLECT )
  60071. # if 14 <= VULKAN_HPP_CPP_VERSION
  60072. auto
  60073. # else
  60074. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
  60075. # endif
  60076. reflect() const VULKAN_HPP_NOEXCEPT
  60077. {
  60078. return std::tie( sType, pNext, ycbcr2plane444Formats );
  60079. }
  60080. #endif
  60081. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  60082. auto operator<=>( PhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT const & ) const = default;
  60083. #else
  60084. bool operator==( PhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  60085. {
  60086. # if defined( VULKAN_HPP_USE_REFLECT )
  60087. return this->reflect() == rhs.reflect();
  60088. # else
  60089. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( ycbcr2plane444Formats == rhs.ycbcr2plane444Formats );
  60090. # endif
  60091. }
  60092. bool operator!=( PhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  60093. {
  60094. return !operator==( rhs );
  60095. }
  60096. #endif
  60097. public:
  60098. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT;
  60099. void * pNext = {};
  60100. VULKAN_HPP_NAMESPACE::Bool32 ycbcr2plane444Formats = {};
  60101. };
  60102. template <>
  60103. struct CppType<StructureType, StructureType::ePhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT>
  60104. {
  60105. using Type = PhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT;
  60106. };
  60107. struct PhysicalDeviceYcbcrImageArraysFeaturesEXT
  60108. {
  60109. using NativeType = VkPhysicalDeviceYcbcrImageArraysFeaturesEXT;
  60110. static const bool allowDuplicate = false;
  60111. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceYcbcrImageArraysFeaturesEXT;
  60112. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  60113. VULKAN_HPP_CONSTEXPR PhysicalDeviceYcbcrImageArraysFeaturesEXT( VULKAN_HPP_NAMESPACE::Bool32 ycbcrImageArrays_ = {},
  60114. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  60115. : pNext( pNext_ )
  60116. , ycbcrImageArrays( ycbcrImageArrays_ )
  60117. {
  60118. }
  60119. VULKAN_HPP_CONSTEXPR PhysicalDeviceYcbcrImageArraysFeaturesEXT( PhysicalDeviceYcbcrImageArraysFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  60120. PhysicalDeviceYcbcrImageArraysFeaturesEXT( VkPhysicalDeviceYcbcrImageArraysFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  60121. : PhysicalDeviceYcbcrImageArraysFeaturesEXT( *reinterpret_cast<PhysicalDeviceYcbcrImageArraysFeaturesEXT const *>( &rhs ) )
  60122. {
  60123. }
  60124. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  60125. PhysicalDeviceYcbcrImageArraysFeaturesEXT & operator=( PhysicalDeviceYcbcrImageArraysFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  60126. PhysicalDeviceYcbcrImageArraysFeaturesEXT & operator=( VkPhysicalDeviceYcbcrImageArraysFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  60127. {
  60128. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceYcbcrImageArraysFeaturesEXT const *>( &rhs );
  60129. return *this;
  60130. }
  60131. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  60132. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceYcbcrImageArraysFeaturesEXT & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
  60133. {
  60134. pNext = pNext_;
  60135. return *this;
  60136. }
  60137. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceYcbcrImageArraysFeaturesEXT &
  60138. setYcbcrImageArrays( VULKAN_HPP_NAMESPACE::Bool32 ycbcrImageArrays_ ) VULKAN_HPP_NOEXCEPT
  60139. {
  60140. ycbcrImageArrays = ycbcrImageArrays_;
  60141. return *this;
  60142. }
  60143. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  60144. operator VkPhysicalDeviceYcbcrImageArraysFeaturesEXT const &() const VULKAN_HPP_NOEXCEPT
  60145. {
  60146. return *reinterpret_cast<const VkPhysicalDeviceYcbcrImageArraysFeaturesEXT *>( this );
  60147. }
  60148. operator VkPhysicalDeviceYcbcrImageArraysFeaturesEXT &() VULKAN_HPP_NOEXCEPT
  60149. {
  60150. return *reinterpret_cast<VkPhysicalDeviceYcbcrImageArraysFeaturesEXT *>( this );
  60151. }
  60152. #if defined( VULKAN_HPP_USE_REFLECT )
  60153. # if 14 <= VULKAN_HPP_CPP_VERSION
  60154. auto
  60155. # else
  60156. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
  60157. # endif
  60158. reflect() const VULKAN_HPP_NOEXCEPT
  60159. {
  60160. return std::tie( sType, pNext, ycbcrImageArrays );
  60161. }
  60162. #endif
  60163. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  60164. auto operator<=>( PhysicalDeviceYcbcrImageArraysFeaturesEXT const & ) const = default;
  60165. #else
  60166. bool operator==( PhysicalDeviceYcbcrImageArraysFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  60167. {
  60168. # if defined( VULKAN_HPP_USE_REFLECT )
  60169. return this->reflect() == rhs.reflect();
  60170. # else
  60171. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( ycbcrImageArrays == rhs.ycbcrImageArrays );
  60172. # endif
  60173. }
  60174. bool operator!=( PhysicalDeviceYcbcrImageArraysFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  60175. {
  60176. return !operator==( rhs );
  60177. }
  60178. #endif
  60179. public:
  60180. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceYcbcrImageArraysFeaturesEXT;
  60181. void * pNext = {};
  60182. VULKAN_HPP_NAMESPACE::Bool32 ycbcrImageArrays = {};
  60183. };
  60184. template <>
  60185. struct CppType<StructureType, StructureType::ePhysicalDeviceYcbcrImageArraysFeaturesEXT>
  60186. {
  60187. using Type = PhysicalDeviceYcbcrImageArraysFeaturesEXT;
  60188. };
  60189. struct PhysicalDeviceZeroInitializeWorkgroupMemoryFeatures
  60190. {
  60191. using NativeType = VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures;
  60192. static const bool allowDuplicate = false;
  60193. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceZeroInitializeWorkgroupMemoryFeatures;
  60194. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  60195. VULKAN_HPP_CONSTEXPR PhysicalDeviceZeroInitializeWorkgroupMemoryFeatures( VULKAN_HPP_NAMESPACE::Bool32 shaderZeroInitializeWorkgroupMemory_ = {},
  60196. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  60197. : pNext( pNext_ )
  60198. , shaderZeroInitializeWorkgroupMemory( shaderZeroInitializeWorkgroupMemory_ )
  60199. {
  60200. }
  60201. VULKAN_HPP_CONSTEXPR
  60202. PhysicalDeviceZeroInitializeWorkgroupMemoryFeatures( PhysicalDeviceZeroInitializeWorkgroupMemoryFeatures const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  60203. PhysicalDeviceZeroInitializeWorkgroupMemoryFeatures( VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
  60204. : PhysicalDeviceZeroInitializeWorkgroupMemoryFeatures( *reinterpret_cast<PhysicalDeviceZeroInitializeWorkgroupMemoryFeatures const *>( &rhs ) )
  60205. {
  60206. }
  60207. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  60208. PhysicalDeviceZeroInitializeWorkgroupMemoryFeatures &
  60209. operator=( PhysicalDeviceZeroInitializeWorkgroupMemoryFeatures const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  60210. PhysicalDeviceZeroInitializeWorkgroupMemoryFeatures & operator=( VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
  60211. {
  60212. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceZeroInitializeWorkgroupMemoryFeatures const *>( &rhs );
  60213. return *this;
  60214. }
  60215. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  60216. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceZeroInitializeWorkgroupMemoryFeatures & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
  60217. {
  60218. pNext = pNext_;
  60219. return *this;
  60220. }
  60221. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceZeroInitializeWorkgroupMemoryFeatures &
  60222. setShaderZeroInitializeWorkgroupMemory( VULKAN_HPP_NAMESPACE::Bool32 shaderZeroInitializeWorkgroupMemory_ ) VULKAN_HPP_NOEXCEPT
  60223. {
  60224. shaderZeroInitializeWorkgroupMemory = shaderZeroInitializeWorkgroupMemory_;
  60225. return *this;
  60226. }
  60227. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  60228. operator VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures const &() const VULKAN_HPP_NOEXCEPT
  60229. {
  60230. return *reinterpret_cast<const VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures *>( this );
  60231. }
  60232. operator VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures &() VULKAN_HPP_NOEXCEPT
  60233. {
  60234. return *reinterpret_cast<VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures *>( this );
  60235. }
  60236. #if defined( VULKAN_HPP_USE_REFLECT )
  60237. # if 14 <= VULKAN_HPP_CPP_VERSION
  60238. auto
  60239. # else
  60240. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
  60241. # endif
  60242. reflect() const VULKAN_HPP_NOEXCEPT
  60243. {
  60244. return std::tie( sType, pNext, shaderZeroInitializeWorkgroupMemory );
  60245. }
  60246. #endif
  60247. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  60248. auto operator<=>( PhysicalDeviceZeroInitializeWorkgroupMemoryFeatures const & ) const = default;
  60249. #else
  60250. bool operator==( PhysicalDeviceZeroInitializeWorkgroupMemoryFeatures const & rhs ) const VULKAN_HPP_NOEXCEPT
  60251. {
  60252. # if defined( VULKAN_HPP_USE_REFLECT )
  60253. return this->reflect() == rhs.reflect();
  60254. # else
  60255. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( shaderZeroInitializeWorkgroupMemory == rhs.shaderZeroInitializeWorkgroupMemory );
  60256. # endif
  60257. }
  60258. bool operator!=( PhysicalDeviceZeroInitializeWorkgroupMemoryFeatures const & rhs ) const VULKAN_HPP_NOEXCEPT
  60259. {
  60260. return !operator==( rhs );
  60261. }
  60262. #endif
  60263. public:
  60264. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceZeroInitializeWorkgroupMemoryFeatures;
  60265. void * pNext = {};
  60266. VULKAN_HPP_NAMESPACE::Bool32 shaderZeroInitializeWorkgroupMemory = {};
  60267. };
  60268. template <>
  60269. struct CppType<StructureType, StructureType::ePhysicalDeviceZeroInitializeWorkgroupMemoryFeatures>
  60270. {
  60271. using Type = PhysicalDeviceZeroInitializeWorkgroupMemoryFeatures;
  60272. };
  60273. using PhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR = PhysicalDeviceZeroInitializeWorkgroupMemoryFeatures;
  60274. struct PipelineCacheCreateInfo
  60275. {
  60276. using NativeType = VkPipelineCacheCreateInfo;
  60277. static const bool allowDuplicate = false;
  60278. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineCacheCreateInfo;
  60279. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  60280. VULKAN_HPP_CONSTEXPR PipelineCacheCreateInfo( VULKAN_HPP_NAMESPACE::PipelineCacheCreateFlags flags_ = {},
  60281. size_t initialDataSize_ = {},
  60282. const void * pInitialData_ = {},
  60283. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  60284. : pNext( pNext_ )
  60285. , flags( flags_ )
  60286. , initialDataSize( initialDataSize_ )
  60287. , pInitialData( pInitialData_ )
  60288. {
  60289. }
  60290. VULKAN_HPP_CONSTEXPR PipelineCacheCreateInfo( PipelineCacheCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  60291. PipelineCacheCreateInfo( VkPipelineCacheCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
  60292. : PipelineCacheCreateInfo( *reinterpret_cast<PipelineCacheCreateInfo const *>( &rhs ) )
  60293. {
  60294. }
  60295. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  60296. template <typename T>
  60297. PipelineCacheCreateInfo( VULKAN_HPP_NAMESPACE::PipelineCacheCreateFlags flags_,
  60298. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const T> const & initialData_,
  60299. const void * pNext_ = nullptr )
  60300. : pNext( pNext_ ), flags( flags_ ), initialDataSize( initialData_.size() * sizeof( T ) ), pInitialData( initialData_.data() )
  60301. {
  60302. }
  60303. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  60304. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  60305. PipelineCacheCreateInfo & operator=( PipelineCacheCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  60306. PipelineCacheCreateInfo & operator=( VkPipelineCacheCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
  60307. {
  60308. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PipelineCacheCreateInfo const *>( &rhs );
  60309. return *this;
  60310. }
  60311. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  60312. VULKAN_HPP_CONSTEXPR_14 PipelineCacheCreateInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  60313. {
  60314. pNext = pNext_;
  60315. return *this;
  60316. }
  60317. VULKAN_HPP_CONSTEXPR_14 PipelineCacheCreateInfo & setFlags( VULKAN_HPP_NAMESPACE::PipelineCacheCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT
  60318. {
  60319. flags = flags_;
  60320. return *this;
  60321. }
  60322. VULKAN_HPP_CONSTEXPR_14 PipelineCacheCreateInfo & setInitialDataSize( size_t initialDataSize_ ) VULKAN_HPP_NOEXCEPT
  60323. {
  60324. initialDataSize = initialDataSize_;
  60325. return *this;
  60326. }
  60327. VULKAN_HPP_CONSTEXPR_14 PipelineCacheCreateInfo & setPInitialData( const void * pInitialData_ ) VULKAN_HPP_NOEXCEPT
  60328. {
  60329. pInitialData = pInitialData_;
  60330. return *this;
  60331. }
  60332. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  60333. template <typename T>
  60334. PipelineCacheCreateInfo & setInitialData( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const T> const & initialData_ ) VULKAN_HPP_NOEXCEPT
  60335. {
  60336. initialDataSize = initialData_.size() * sizeof( T );
  60337. pInitialData = initialData_.data();
  60338. return *this;
  60339. }
  60340. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  60341. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  60342. operator VkPipelineCacheCreateInfo const &() const VULKAN_HPP_NOEXCEPT
  60343. {
  60344. return *reinterpret_cast<const VkPipelineCacheCreateInfo *>( this );
  60345. }
  60346. operator VkPipelineCacheCreateInfo &() VULKAN_HPP_NOEXCEPT
  60347. {
  60348. return *reinterpret_cast<VkPipelineCacheCreateInfo *>( this );
  60349. }
  60350. #if defined( VULKAN_HPP_USE_REFLECT )
  60351. # if 14 <= VULKAN_HPP_CPP_VERSION
  60352. auto
  60353. # else
  60354. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  60355. const void * const &,
  60356. VULKAN_HPP_NAMESPACE::PipelineCacheCreateFlags const &,
  60357. size_t const &,
  60358. const void * const &>
  60359. # endif
  60360. reflect() const VULKAN_HPP_NOEXCEPT
  60361. {
  60362. return std::tie( sType, pNext, flags, initialDataSize, pInitialData );
  60363. }
  60364. #endif
  60365. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  60366. auto operator<=>( PipelineCacheCreateInfo const & ) const = default;
  60367. #else
  60368. bool operator==( PipelineCacheCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  60369. {
  60370. # if defined( VULKAN_HPP_USE_REFLECT )
  60371. return this->reflect() == rhs.reflect();
  60372. # else
  60373. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( flags == rhs.flags ) && ( initialDataSize == rhs.initialDataSize ) &&
  60374. ( pInitialData == rhs.pInitialData );
  60375. # endif
  60376. }
  60377. bool operator!=( PipelineCacheCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  60378. {
  60379. return !operator==( rhs );
  60380. }
  60381. #endif
  60382. public:
  60383. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineCacheCreateInfo;
  60384. const void * pNext = {};
  60385. VULKAN_HPP_NAMESPACE::PipelineCacheCreateFlags flags = {};
  60386. size_t initialDataSize = {};
  60387. const void * pInitialData = {};
  60388. };
  60389. template <>
  60390. struct CppType<StructureType, StructureType::ePipelineCacheCreateInfo>
  60391. {
  60392. using Type = PipelineCacheCreateInfo;
  60393. };
  60394. struct PipelineCacheHeaderVersionOne
  60395. {
  60396. using NativeType = VkPipelineCacheHeaderVersionOne;
  60397. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  60398. VULKAN_HPP_CONSTEXPR_14
  60399. PipelineCacheHeaderVersionOne( uint32_t headerSize_ = {},
  60400. VULKAN_HPP_NAMESPACE::PipelineCacheHeaderVersion headerVersion_ = VULKAN_HPP_NAMESPACE::PipelineCacheHeaderVersion::eOne,
  60401. uint32_t vendorID_ = {},
  60402. uint32_t deviceID_ = {},
  60403. std::array<uint8_t, VK_UUID_SIZE> const & pipelineCacheUUID_ = {} ) VULKAN_HPP_NOEXCEPT
  60404. : headerSize( headerSize_ )
  60405. , headerVersion( headerVersion_ )
  60406. , vendorID( vendorID_ )
  60407. , deviceID( deviceID_ )
  60408. , pipelineCacheUUID( pipelineCacheUUID_ )
  60409. {
  60410. }
  60411. VULKAN_HPP_CONSTEXPR_14 PipelineCacheHeaderVersionOne( PipelineCacheHeaderVersionOne const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  60412. PipelineCacheHeaderVersionOne( VkPipelineCacheHeaderVersionOne const & rhs ) VULKAN_HPP_NOEXCEPT
  60413. : PipelineCacheHeaderVersionOne( *reinterpret_cast<PipelineCacheHeaderVersionOne const *>( &rhs ) )
  60414. {
  60415. }
  60416. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  60417. PipelineCacheHeaderVersionOne & operator=( PipelineCacheHeaderVersionOne const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  60418. PipelineCacheHeaderVersionOne & operator=( VkPipelineCacheHeaderVersionOne const & rhs ) VULKAN_HPP_NOEXCEPT
  60419. {
  60420. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PipelineCacheHeaderVersionOne const *>( &rhs );
  60421. return *this;
  60422. }
  60423. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  60424. VULKAN_HPP_CONSTEXPR_14 PipelineCacheHeaderVersionOne & setHeaderSize( uint32_t headerSize_ ) VULKAN_HPP_NOEXCEPT
  60425. {
  60426. headerSize = headerSize_;
  60427. return *this;
  60428. }
  60429. VULKAN_HPP_CONSTEXPR_14 PipelineCacheHeaderVersionOne &
  60430. setHeaderVersion( VULKAN_HPP_NAMESPACE::PipelineCacheHeaderVersion headerVersion_ ) VULKAN_HPP_NOEXCEPT
  60431. {
  60432. headerVersion = headerVersion_;
  60433. return *this;
  60434. }
  60435. VULKAN_HPP_CONSTEXPR_14 PipelineCacheHeaderVersionOne & setVendorID( uint32_t vendorID_ ) VULKAN_HPP_NOEXCEPT
  60436. {
  60437. vendorID = vendorID_;
  60438. return *this;
  60439. }
  60440. VULKAN_HPP_CONSTEXPR_14 PipelineCacheHeaderVersionOne & setDeviceID( uint32_t deviceID_ ) VULKAN_HPP_NOEXCEPT
  60441. {
  60442. deviceID = deviceID_;
  60443. return *this;
  60444. }
  60445. VULKAN_HPP_CONSTEXPR_14 PipelineCacheHeaderVersionOne & setPipelineCacheUUID( std::array<uint8_t, VK_UUID_SIZE> pipelineCacheUUID_ ) VULKAN_HPP_NOEXCEPT
  60446. {
  60447. pipelineCacheUUID = pipelineCacheUUID_;
  60448. return *this;
  60449. }
  60450. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  60451. operator VkPipelineCacheHeaderVersionOne const &() const VULKAN_HPP_NOEXCEPT
  60452. {
  60453. return *reinterpret_cast<const VkPipelineCacheHeaderVersionOne *>( this );
  60454. }
  60455. operator VkPipelineCacheHeaderVersionOne &() VULKAN_HPP_NOEXCEPT
  60456. {
  60457. return *reinterpret_cast<VkPipelineCacheHeaderVersionOne *>( this );
  60458. }
  60459. #if defined( VULKAN_HPP_USE_REFLECT )
  60460. # if 14 <= VULKAN_HPP_CPP_VERSION
  60461. auto
  60462. # else
  60463. std::tuple<uint32_t const &,
  60464. VULKAN_HPP_NAMESPACE::PipelineCacheHeaderVersion const &,
  60465. uint32_t const &,
  60466. uint32_t const &,
  60467. VULKAN_HPP_NAMESPACE::ArrayWrapper1D<uint8_t, VK_UUID_SIZE> const &>
  60468. # endif
  60469. reflect() const VULKAN_HPP_NOEXCEPT
  60470. {
  60471. return std::tie( headerSize, headerVersion, vendorID, deviceID, pipelineCacheUUID );
  60472. }
  60473. #endif
  60474. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  60475. auto operator<=>( PipelineCacheHeaderVersionOne const & ) const = default;
  60476. #else
  60477. bool operator==( PipelineCacheHeaderVersionOne const & rhs ) const VULKAN_HPP_NOEXCEPT
  60478. {
  60479. # if defined( VULKAN_HPP_USE_REFLECT )
  60480. return this->reflect() == rhs.reflect();
  60481. # else
  60482. return ( headerSize == rhs.headerSize ) && ( headerVersion == rhs.headerVersion ) && ( vendorID == rhs.vendorID ) && ( deviceID == rhs.deviceID ) &&
  60483. ( pipelineCacheUUID == rhs.pipelineCacheUUID );
  60484. # endif
  60485. }
  60486. bool operator!=( PipelineCacheHeaderVersionOne const & rhs ) const VULKAN_HPP_NOEXCEPT
  60487. {
  60488. return !operator==( rhs );
  60489. }
  60490. #endif
  60491. public:
  60492. uint32_t headerSize = {};
  60493. VULKAN_HPP_NAMESPACE::PipelineCacheHeaderVersion headerVersion = VULKAN_HPP_NAMESPACE::PipelineCacheHeaderVersion::eOne;
  60494. uint32_t vendorID = {};
  60495. uint32_t deviceID = {};
  60496. VULKAN_HPP_NAMESPACE::ArrayWrapper1D<uint8_t, VK_UUID_SIZE> pipelineCacheUUID = {};
  60497. };
  60498. struct PipelineColorBlendAdvancedStateCreateInfoEXT
  60499. {
  60500. using NativeType = VkPipelineColorBlendAdvancedStateCreateInfoEXT;
  60501. static const bool allowDuplicate = false;
  60502. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineColorBlendAdvancedStateCreateInfoEXT;
  60503. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  60504. VULKAN_HPP_CONSTEXPR
  60505. PipelineColorBlendAdvancedStateCreateInfoEXT( VULKAN_HPP_NAMESPACE::Bool32 srcPremultiplied_ = {},
  60506. VULKAN_HPP_NAMESPACE::Bool32 dstPremultiplied_ = {},
  60507. VULKAN_HPP_NAMESPACE::BlendOverlapEXT blendOverlap_ = VULKAN_HPP_NAMESPACE::BlendOverlapEXT::eUncorrelated,
  60508. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  60509. : pNext( pNext_ )
  60510. , srcPremultiplied( srcPremultiplied_ )
  60511. , dstPremultiplied( dstPremultiplied_ )
  60512. , blendOverlap( blendOverlap_ )
  60513. {
  60514. }
  60515. VULKAN_HPP_CONSTEXPR PipelineColorBlendAdvancedStateCreateInfoEXT( PipelineColorBlendAdvancedStateCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  60516. PipelineColorBlendAdvancedStateCreateInfoEXT( VkPipelineColorBlendAdvancedStateCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  60517. : PipelineColorBlendAdvancedStateCreateInfoEXT( *reinterpret_cast<PipelineColorBlendAdvancedStateCreateInfoEXT const *>( &rhs ) )
  60518. {
  60519. }
  60520. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  60521. PipelineColorBlendAdvancedStateCreateInfoEXT & operator=( PipelineColorBlendAdvancedStateCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  60522. PipelineColorBlendAdvancedStateCreateInfoEXT & operator=( VkPipelineColorBlendAdvancedStateCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  60523. {
  60524. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PipelineColorBlendAdvancedStateCreateInfoEXT const *>( &rhs );
  60525. return *this;
  60526. }
  60527. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  60528. VULKAN_HPP_CONSTEXPR_14 PipelineColorBlendAdvancedStateCreateInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  60529. {
  60530. pNext = pNext_;
  60531. return *this;
  60532. }
  60533. VULKAN_HPP_CONSTEXPR_14 PipelineColorBlendAdvancedStateCreateInfoEXT &
  60534. setSrcPremultiplied( VULKAN_HPP_NAMESPACE::Bool32 srcPremultiplied_ ) VULKAN_HPP_NOEXCEPT
  60535. {
  60536. srcPremultiplied = srcPremultiplied_;
  60537. return *this;
  60538. }
  60539. VULKAN_HPP_CONSTEXPR_14 PipelineColorBlendAdvancedStateCreateInfoEXT &
  60540. setDstPremultiplied( VULKAN_HPP_NAMESPACE::Bool32 dstPremultiplied_ ) VULKAN_HPP_NOEXCEPT
  60541. {
  60542. dstPremultiplied = dstPremultiplied_;
  60543. return *this;
  60544. }
  60545. VULKAN_HPP_CONSTEXPR_14 PipelineColorBlendAdvancedStateCreateInfoEXT &
  60546. setBlendOverlap( VULKAN_HPP_NAMESPACE::BlendOverlapEXT blendOverlap_ ) VULKAN_HPP_NOEXCEPT
  60547. {
  60548. blendOverlap = blendOverlap_;
  60549. return *this;
  60550. }
  60551. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  60552. operator VkPipelineColorBlendAdvancedStateCreateInfoEXT const &() const VULKAN_HPP_NOEXCEPT
  60553. {
  60554. return *reinterpret_cast<const VkPipelineColorBlendAdvancedStateCreateInfoEXT *>( this );
  60555. }
  60556. operator VkPipelineColorBlendAdvancedStateCreateInfoEXT &() VULKAN_HPP_NOEXCEPT
  60557. {
  60558. return *reinterpret_cast<VkPipelineColorBlendAdvancedStateCreateInfoEXT *>( this );
  60559. }
  60560. #if defined( VULKAN_HPP_USE_REFLECT )
  60561. # if 14 <= VULKAN_HPP_CPP_VERSION
  60562. auto
  60563. # else
  60564. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  60565. const void * const &,
  60566. VULKAN_HPP_NAMESPACE::Bool32 const &,
  60567. VULKAN_HPP_NAMESPACE::Bool32 const &,
  60568. VULKAN_HPP_NAMESPACE::BlendOverlapEXT const &>
  60569. # endif
  60570. reflect() const VULKAN_HPP_NOEXCEPT
  60571. {
  60572. return std::tie( sType, pNext, srcPremultiplied, dstPremultiplied, blendOverlap );
  60573. }
  60574. #endif
  60575. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  60576. auto operator<=>( PipelineColorBlendAdvancedStateCreateInfoEXT const & ) const = default;
  60577. #else
  60578. bool operator==( PipelineColorBlendAdvancedStateCreateInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  60579. {
  60580. # if defined( VULKAN_HPP_USE_REFLECT )
  60581. return this->reflect() == rhs.reflect();
  60582. # else
  60583. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( srcPremultiplied == rhs.srcPremultiplied ) && ( dstPremultiplied == rhs.dstPremultiplied ) &&
  60584. ( blendOverlap == rhs.blendOverlap );
  60585. # endif
  60586. }
  60587. bool operator!=( PipelineColorBlendAdvancedStateCreateInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  60588. {
  60589. return !operator==( rhs );
  60590. }
  60591. #endif
  60592. public:
  60593. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineColorBlendAdvancedStateCreateInfoEXT;
  60594. const void * pNext = {};
  60595. VULKAN_HPP_NAMESPACE::Bool32 srcPremultiplied = {};
  60596. VULKAN_HPP_NAMESPACE::Bool32 dstPremultiplied = {};
  60597. VULKAN_HPP_NAMESPACE::BlendOverlapEXT blendOverlap = VULKAN_HPP_NAMESPACE::BlendOverlapEXT::eUncorrelated;
  60598. };
  60599. template <>
  60600. struct CppType<StructureType, StructureType::ePipelineColorBlendAdvancedStateCreateInfoEXT>
  60601. {
  60602. using Type = PipelineColorBlendAdvancedStateCreateInfoEXT;
  60603. };
  60604. struct PipelineColorWriteCreateInfoEXT
  60605. {
  60606. using NativeType = VkPipelineColorWriteCreateInfoEXT;
  60607. static const bool allowDuplicate = false;
  60608. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineColorWriteCreateInfoEXT;
  60609. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  60610. VULKAN_HPP_CONSTEXPR PipelineColorWriteCreateInfoEXT( uint32_t attachmentCount_ = {},
  60611. const VULKAN_HPP_NAMESPACE::Bool32 * pColorWriteEnables_ = {},
  60612. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  60613. : pNext( pNext_ )
  60614. , attachmentCount( attachmentCount_ )
  60615. , pColorWriteEnables( pColorWriteEnables_ )
  60616. {
  60617. }
  60618. VULKAN_HPP_CONSTEXPR PipelineColorWriteCreateInfoEXT( PipelineColorWriteCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  60619. PipelineColorWriteCreateInfoEXT( VkPipelineColorWriteCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  60620. : PipelineColorWriteCreateInfoEXT( *reinterpret_cast<PipelineColorWriteCreateInfoEXT const *>( &rhs ) )
  60621. {
  60622. }
  60623. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  60624. PipelineColorWriteCreateInfoEXT( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::Bool32> const & colorWriteEnables_,
  60625. const void * pNext_ = nullptr )
  60626. : pNext( pNext_ ), attachmentCount( static_cast<uint32_t>( colorWriteEnables_.size() ) ), pColorWriteEnables( colorWriteEnables_.data() )
  60627. {
  60628. }
  60629. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  60630. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  60631. PipelineColorWriteCreateInfoEXT & operator=( PipelineColorWriteCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  60632. PipelineColorWriteCreateInfoEXT & operator=( VkPipelineColorWriteCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  60633. {
  60634. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PipelineColorWriteCreateInfoEXT const *>( &rhs );
  60635. return *this;
  60636. }
  60637. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  60638. VULKAN_HPP_CONSTEXPR_14 PipelineColorWriteCreateInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  60639. {
  60640. pNext = pNext_;
  60641. return *this;
  60642. }
  60643. VULKAN_HPP_CONSTEXPR_14 PipelineColorWriteCreateInfoEXT & setAttachmentCount( uint32_t attachmentCount_ ) VULKAN_HPP_NOEXCEPT
  60644. {
  60645. attachmentCount = attachmentCount_;
  60646. return *this;
  60647. }
  60648. VULKAN_HPP_CONSTEXPR_14 PipelineColorWriteCreateInfoEXT &
  60649. setPColorWriteEnables( const VULKAN_HPP_NAMESPACE::Bool32 * pColorWriteEnables_ ) VULKAN_HPP_NOEXCEPT
  60650. {
  60651. pColorWriteEnables = pColorWriteEnables_;
  60652. return *this;
  60653. }
  60654. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  60655. PipelineColorWriteCreateInfoEXT &
  60656. setColorWriteEnables( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::Bool32> const & colorWriteEnables_ ) VULKAN_HPP_NOEXCEPT
  60657. {
  60658. attachmentCount = static_cast<uint32_t>( colorWriteEnables_.size() );
  60659. pColorWriteEnables = colorWriteEnables_.data();
  60660. return *this;
  60661. }
  60662. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  60663. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  60664. operator VkPipelineColorWriteCreateInfoEXT const &() const VULKAN_HPP_NOEXCEPT
  60665. {
  60666. return *reinterpret_cast<const VkPipelineColorWriteCreateInfoEXT *>( this );
  60667. }
  60668. operator VkPipelineColorWriteCreateInfoEXT &() VULKAN_HPP_NOEXCEPT
  60669. {
  60670. return *reinterpret_cast<VkPipelineColorWriteCreateInfoEXT *>( this );
  60671. }
  60672. #if defined( VULKAN_HPP_USE_REFLECT )
  60673. # if 14 <= VULKAN_HPP_CPP_VERSION
  60674. auto
  60675. # else
  60676. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, uint32_t const &, const VULKAN_HPP_NAMESPACE::Bool32 * const &>
  60677. # endif
  60678. reflect() const VULKAN_HPP_NOEXCEPT
  60679. {
  60680. return std::tie( sType, pNext, attachmentCount, pColorWriteEnables );
  60681. }
  60682. #endif
  60683. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  60684. auto operator<=>( PipelineColorWriteCreateInfoEXT const & ) const = default;
  60685. #else
  60686. bool operator==( PipelineColorWriteCreateInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  60687. {
  60688. # if defined( VULKAN_HPP_USE_REFLECT )
  60689. return this->reflect() == rhs.reflect();
  60690. # else
  60691. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( attachmentCount == rhs.attachmentCount ) && ( pColorWriteEnables == rhs.pColorWriteEnables );
  60692. # endif
  60693. }
  60694. bool operator!=( PipelineColorWriteCreateInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  60695. {
  60696. return !operator==( rhs );
  60697. }
  60698. #endif
  60699. public:
  60700. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineColorWriteCreateInfoEXT;
  60701. const void * pNext = {};
  60702. uint32_t attachmentCount = {};
  60703. const VULKAN_HPP_NAMESPACE::Bool32 * pColorWriteEnables = {};
  60704. };
  60705. template <>
  60706. struct CppType<StructureType, StructureType::ePipelineColorWriteCreateInfoEXT>
  60707. {
  60708. using Type = PipelineColorWriteCreateInfoEXT;
  60709. };
  60710. struct PipelineCompilerControlCreateInfoAMD
  60711. {
  60712. using NativeType = VkPipelineCompilerControlCreateInfoAMD;
  60713. static const bool allowDuplicate = false;
  60714. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineCompilerControlCreateInfoAMD;
  60715. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  60716. VULKAN_HPP_CONSTEXPR PipelineCompilerControlCreateInfoAMD( VULKAN_HPP_NAMESPACE::PipelineCompilerControlFlagsAMD compilerControlFlags_ = {},
  60717. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  60718. : pNext( pNext_ )
  60719. , compilerControlFlags( compilerControlFlags_ )
  60720. {
  60721. }
  60722. VULKAN_HPP_CONSTEXPR PipelineCompilerControlCreateInfoAMD( PipelineCompilerControlCreateInfoAMD const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  60723. PipelineCompilerControlCreateInfoAMD( VkPipelineCompilerControlCreateInfoAMD const & rhs ) VULKAN_HPP_NOEXCEPT
  60724. : PipelineCompilerControlCreateInfoAMD( *reinterpret_cast<PipelineCompilerControlCreateInfoAMD const *>( &rhs ) )
  60725. {
  60726. }
  60727. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  60728. PipelineCompilerControlCreateInfoAMD & operator=( PipelineCompilerControlCreateInfoAMD const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  60729. PipelineCompilerControlCreateInfoAMD & operator=( VkPipelineCompilerControlCreateInfoAMD const & rhs ) VULKAN_HPP_NOEXCEPT
  60730. {
  60731. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PipelineCompilerControlCreateInfoAMD const *>( &rhs );
  60732. return *this;
  60733. }
  60734. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  60735. VULKAN_HPP_CONSTEXPR_14 PipelineCompilerControlCreateInfoAMD & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  60736. {
  60737. pNext = pNext_;
  60738. return *this;
  60739. }
  60740. VULKAN_HPP_CONSTEXPR_14 PipelineCompilerControlCreateInfoAMD &
  60741. setCompilerControlFlags( VULKAN_HPP_NAMESPACE::PipelineCompilerControlFlagsAMD compilerControlFlags_ ) VULKAN_HPP_NOEXCEPT
  60742. {
  60743. compilerControlFlags = compilerControlFlags_;
  60744. return *this;
  60745. }
  60746. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  60747. operator VkPipelineCompilerControlCreateInfoAMD const &() const VULKAN_HPP_NOEXCEPT
  60748. {
  60749. return *reinterpret_cast<const VkPipelineCompilerControlCreateInfoAMD *>( this );
  60750. }
  60751. operator VkPipelineCompilerControlCreateInfoAMD &() VULKAN_HPP_NOEXCEPT
  60752. {
  60753. return *reinterpret_cast<VkPipelineCompilerControlCreateInfoAMD *>( this );
  60754. }
  60755. #if defined( VULKAN_HPP_USE_REFLECT )
  60756. # if 14 <= VULKAN_HPP_CPP_VERSION
  60757. auto
  60758. # else
  60759. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::PipelineCompilerControlFlagsAMD const &>
  60760. # endif
  60761. reflect() const VULKAN_HPP_NOEXCEPT
  60762. {
  60763. return std::tie( sType, pNext, compilerControlFlags );
  60764. }
  60765. #endif
  60766. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  60767. auto operator<=>( PipelineCompilerControlCreateInfoAMD const & ) const = default;
  60768. #else
  60769. bool operator==( PipelineCompilerControlCreateInfoAMD const & rhs ) const VULKAN_HPP_NOEXCEPT
  60770. {
  60771. # if defined( VULKAN_HPP_USE_REFLECT )
  60772. return this->reflect() == rhs.reflect();
  60773. # else
  60774. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( compilerControlFlags == rhs.compilerControlFlags );
  60775. # endif
  60776. }
  60777. bool operator!=( PipelineCompilerControlCreateInfoAMD const & rhs ) const VULKAN_HPP_NOEXCEPT
  60778. {
  60779. return !operator==( rhs );
  60780. }
  60781. #endif
  60782. public:
  60783. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineCompilerControlCreateInfoAMD;
  60784. const void * pNext = {};
  60785. VULKAN_HPP_NAMESPACE::PipelineCompilerControlFlagsAMD compilerControlFlags = {};
  60786. };
  60787. template <>
  60788. struct CppType<StructureType, StructureType::ePipelineCompilerControlCreateInfoAMD>
  60789. {
  60790. using Type = PipelineCompilerControlCreateInfoAMD;
  60791. };
  60792. struct PipelineCoverageModulationStateCreateInfoNV
  60793. {
  60794. using NativeType = VkPipelineCoverageModulationStateCreateInfoNV;
  60795. static const bool allowDuplicate = false;
  60796. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineCoverageModulationStateCreateInfoNV;
  60797. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  60798. VULKAN_HPP_CONSTEXPR PipelineCoverageModulationStateCreateInfoNV(
  60799. VULKAN_HPP_NAMESPACE::PipelineCoverageModulationStateCreateFlagsNV flags_ = {},
  60800. VULKAN_HPP_NAMESPACE::CoverageModulationModeNV coverageModulationMode_ = VULKAN_HPP_NAMESPACE::CoverageModulationModeNV::eNone,
  60801. VULKAN_HPP_NAMESPACE::Bool32 coverageModulationTableEnable_ = {},
  60802. uint32_t coverageModulationTableCount_ = {},
  60803. const float * pCoverageModulationTable_ = {},
  60804. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  60805. : pNext( pNext_ )
  60806. , flags( flags_ )
  60807. , coverageModulationMode( coverageModulationMode_ )
  60808. , coverageModulationTableEnable( coverageModulationTableEnable_ )
  60809. , coverageModulationTableCount( coverageModulationTableCount_ )
  60810. , pCoverageModulationTable( pCoverageModulationTable_ )
  60811. {
  60812. }
  60813. VULKAN_HPP_CONSTEXPR PipelineCoverageModulationStateCreateInfoNV( PipelineCoverageModulationStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  60814. PipelineCoverageModulationStateCreateInfoNV( VkPipelineCoverageModulationStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
  60815. : PipelineCoverageModulationStateCreateInfoNV( *reinterpret_cast<PipelineCoverageModulationStateCreateInfoNV const *>( &rhs ) )
  60816. {
  60817. }
  60818. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  60819. PipelineCoverageModulationStateCreateInfoNV( VULKAN_HPP_NAMESPACE::PipelineCoverageModulationStateCreateFlagsNV flags_,
  60820. VULKAN_HPP_NAMESPACE::CoverageModulationModeNV coverageModulationMode_,
  60821. VULKAN_HPP_NAMESPACE::Bool32 coverageModulationTableEnable_,
  60822. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const float> const & coverageModulationTable_,
  60823. const void * pNext_ = nullptr )
  60824. : pNext( pNext_ )
  60825. , flags( flags_ )
  60826. , coverageModulationMode( coverageModulationMode_ )
  60827. , coverageModulationTableEnable( coverageModulationTableEnable_ )
  60828. , coverageModulationTableCount( static_cast<uint32_t>( coverageModulationTable_.size() ) )
  60829. , pCoverageModulationTable( coverageModulationTable_.data() )
  60830. {
  60831. }
  60832. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  60833. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  60834. PipelineCoverageModulationStateCreateInfoNV & operator=( PipelineCoverageModulationStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  60835. PipelineCoverageModulationStateCreateInfoNV & operator=( VkPipelineCoverageModulationStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
  60836. {
  60837. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PipelineCoverageModulationStateCreateInfoNV const *>( &rhs );
  60838. return *this;
  60839. }
  60840. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  60841. VULKAN_HPP_CONSTEXPR_14 PipelineCoverageModulationStateCreateInfoNV & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  60842. {
  60843. pNext = pNext_;
  60844. return *this;
  60845. }
  60846. VULKAN_HPP_CONSTEXPR_14 PipelineCoverageModulationStateCreateInfoNV &
  60847. setFlags( VULKAN_HPP_NAMESPACE::PipelineCoverageModulationStateCreateFlagsNV flags_ ) VULKAN_HPP_NOEXCEPT
  60848. {
  60849. flags = flags_;
  60850. return *this;
  60851. }
  60852. VULKAN_HPP_CONSTEXPR_14 PipelineCoverageModulationStateCreateInfoNV &
  60853. setCoverageModulationMode( VULKAN_HPP_NAMESPACE::CoverageModulationModeNV coverageModulationMode_ ) VULKAN_HPP_NOEXCEPT
  60854. {
  60855. coverageModulationMode = coverageModulationMode_;
  60856. return *this;
  60857. }
  60858. VULKAN_HPP_CONSTEXPR_14 PipelineCoverageModulationStateCreateInfoNV &
  60859. setCoverageModulationTableEnable( VULKAN_HPP_NAMESPACE::Bool32 coverageModulationTableEnable_ ) VULKAN_HPP_NOEXCEPT
  60860. {
  60861. coverageModulationTableEnable = coverageModulationTableEnable_;
  60862. return *this;
  60863. }
  60864. VULKAN_HPP_CONSTEXPR_14 PipelineCoverageModulationStateCreateInfoNV &
  60865. setCoverageModulationTableCount( uint32_t coverageModulationTableCount_ ) VULKAN_HPP_NOEXCEPT
  60866. {
  60867. coverageModulationTableCount = coverageModulationTableCount_;
  60868. return *this;
  60869. }
  60870. VULKAN_HPP_CONSTEXPR_14 PipelineCoverageModulationStateCreateInfoNV &
  60871. setPCoverageModulationTable( const float * pCoverageModulationTable_ ) VULKAN_HPP_NOEXCEPT
  60872. {
  60873. pCoverageModulationTable = pCoverageModulationTable_;
  60874. return *this;
  60875. }
  60876. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  60877. PipelineCoverageModulationStateCreateInfoNV &
  60878. setCoverageModulationTable( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const float> const & coverageModulationTable_ ) VULKAN_HPP_NOEXCEPT
  60879. {
  60880. coverageModulationTableCount = static_cast<uint32_t>( coverageModulationTable_.size() );
  60881. pCoverageModulationTable = coverageModulationTable_.data();
  60882. return *this;
  60883. }
  60884. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  60885. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  60886. operator VkPipelineCoverageModulationStateCreateInfoNV const &() const VULKAN_HPP_NOEXCEPT
  60887. {
  60888. return *reinterpret_cast<const VkPipelineCoverageModulationStateCreateInfoNV *>( this );
  60889. }
  60890. operator VkPipelineCoverageModulationStateCreateInfoNV &() VULKAN_HPP_NOEXCEPT
  60891. {
  60892. return *reinterpret_cast<VkPipelineCoverageModulationStateCreateInfoNV *>( this );
  60893. }
  60894. #if defined( VULKAN_HPP_USE_REFLECT )
  60895. # if 14 <= VULKAN_HPP_CPP_VERSION
  60896. auto
  60897. # else
  60898. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  60899. const void * const &,
  60900. VULKAN_HPP_NAMESPACE::PipelineCoverageModulationStateCreateFlagsNV const &,
  60901. VULKAN_HPP_NAMESPACE::CoverageModulationModeNV const &,
  60902. VULKAN_HPP_NAMESPACE::Bool32 const &,
  60903. uint32_t const &,
  60904. const float * const &>
  60905. # endif
  60906. reflect() const VULKAN_HPP_NOEXCEPT
  60907. {
  60908. return std::tie( sType, pNext, flags, coverageModulationMode, coverageModulationTableEnable, coverageModulationTableCount, pCoverageModulationTable );
  60909. }
  60910. #endif
  60911. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  60912. auto operator<=>( PipelineCoverageModulationStateCreateInfoNV const & ) const = default;
  60913. #else
  60914. bool operator==( PipelineCoverageModulationStateCreateInfoNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  60915. {
  60916. # if defined( VULKAN_HPP_USE_REFLECT )
  60917. return this->reflect() == rhs.reflect();
  60918. # else
  60919. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( flags == rhs.flags ) && ( coverageModulationMode == rhs.coverageModulationMode ) &&
  60920. ( coverageModulationTableEnable == rhs.coverageModulationTableEnable ) && ( coverageModulationTableCount == rhs.coverageModulationTableCount ) &&
  60921. ( pCoverageModulationTable == rhs.pCoverageModulationTable );
  60922. # endif
  60923. }
  60924. bool operator!=( PipelineCoverageModulationStateCreateInfoNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  60925. {
  60926. return !operator==( rhs );
  60927. }
  60928. #endif
  60929. public:
  60930. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineCoverageModulationStateCreateInfoNV;
  60931. const void * pNext = {};
  60932. VULKAN_HPP_NAMESPACE::PipelineCoverageModulationStateCreateFlagsNV flags = {};
  60933. VULKAN_HPP_NAMESPACE::CoverageModulationModeNV coverageModulationMode = VULKAN_HPP_NAMESPACE::CoverageModulationModeNV::eNone;
  60934. VULKAN_HPP_NAMESPACE::Bool32 coverageModulationTableEnable = {};
  60935. uint32_t coverageModulationTableCount = {};
  60936. const float * pCoverageModulationTable = {};
  60937. };
  60938. template <>
  60939. struct CppType<StructureType, StructureType::ePipelineCoverageModulationStateCreateInfoNV>
  60940. {
  60941. using Type = PipelineCoverageModulationStateCreateInfoNV;
  60942. };
  60943. struct PipelineCoverageReductionStateCreateInfoNV
  60944. {
  60945. using NativeType = VkPipelineCoverageReductionStateCreateInfoNV;
  60946. static const bool allowDuplicate = false;
  60947. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineCoverageReductionStateCreateInfoNV;
  60948. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  60949. VULKAN_HPP_CONSTEXPR PipelineCoverageReductionStateCreateInfoNV(
  60950. VULKAN_HPP_NAMESPACE::PipelineCoverageReductionStateCreateFlagsNV flags_ = {},
  60951. VULKAN_HPP_NAMESPACE::CoverageReductionModeNV coverageReductionMode_ = VULKAN_HPP_NAMESPACE::CoverageReductionModeNV::eMerge,
  60952. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  60953. : pNext( pNext_ )
  60954. , flags( flags_ )
  60955. , coverageReductionMode( coverageReductionMode_ )
  60956. {
  60957. }
  60958. VULKAN_HPP_CONSTEXPR PipelineCoverageReductionStateCreateInfoNV( PipelineCoverageReductionStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  60959. PipelineCoverageReductionStateCreateInfoNV( VkPipelineCoverageReductionStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
  60960. : PipelineCoverageReductionStateCreateInfoNV( *reinterpret_cast<PipelineCoverageReductionStateCreateInfoNV const *>( &rhs ) )
  60961. {
  60962. }
  60963. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  60964. PipelineCoverageReductionStateCreateInfoNV & operator=( PipelineCoverageReductionStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  60965. PipelineCoverageReductionStateCreateInfoNV & operator=( VkPipelineCoverageReductionStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
  60966. {
  60967. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PipelineCoverageReductionStateCreateInfoNV const *>( &rhs );
  60968. return *this;
  60969. }
  60970. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  60971. VULKAN_HPP_CONSTEXPR_14 PipelineCoverageReductionStateCreateInfoNV & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  60972. {
  60973. pNext = pNext_;
  60974. return *this;
  60975. }
  60976. VULKAN_HPP_CONSTEXPR_14 PipelineCoverageReductionStateCreateInfoNV &
  60977. setFlags( VULKAN_HPP_NAMESPACE::PipelineCoverageReductionStateCreateFlagsNV flags_ ) VULKAN_HPP_NOEXCEPT
  60978. {
  60979. flags = flags_;
  60980. return *this;
  60981. }
  60982. VULKAN_HPP_CONSTEXPR_14 PipelineCoverageReductionStateCreateInfoNV &
  60983. setCoverageReductionMode( VULKAN_HPP_NAMESPACE::CoverageReductionModeNV coverageReductionMode_ ) VULKAN_HPP_NOEXCEPT
  60984. {
  60985. coverageReductionMode = coverageReductionMode_;
  60986. return *this;
  60987. }
  60988. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  60989. operator VkPipelineCoverageReductionStateCreateInfoNV const &() const VULKAN_HPP_NOEXCEPT
  60990. {
  60991. return *reinterpret_cast<const VkPipelineCoverageReductionStateCreateInfoNV *>( this );
  60992. }
  60993. operator VkPipelineCoverageReductionStateCreateInfoNV &() VULKAN_HPP_NOEXCEPT
  60994. {
  60995. return *reinterpret_cast<VkPipelineCoverageReductionStateCreateInfoNV *>( this );
  60996. }
  60997. #if defined( VULKAN_HPP_USE_REFLECT )
  60998. # if 14 <= VULKAN_HPP_CPP_VERSION
  60999. auto
  61000. # else
  61001. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  61002. const void * const &,
  61003. VULKAN_HPP_NAMESPACE::PipelineCoverageReductionStateCreateFlagsNV const &,
  61004. VULKAN_HPP_NAMESPACE::CoverageReductionModeNV const &>
  61005. # endif
  61006. reflect() const VULKAN_HPP_NOEXCEPT
  61007. {
  61008. return std::tie( sType, pNext, flags, coverageReductionMode );
  61009. }
  61010. #endif
  61011. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  61012. auto operator<=>( PipelineCoverageReductionStateCreateInfoNV const & ) const = default;
  61013. #else
  61014. bool operator==( PipelineCoverageReductionStateCreateInfoNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  61015. {
  61016. # if defined( VULKAN_HPP_USE_REFLECT )
  61017. return this->reflect() == rhs.reflect();
  61018. # else
  61019. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( flags == rhs.flags ) && ( coverageReductionMode == rhs.coverageReductionMode );
  61020. # endif
  61021. }
  61022. bool operator!=( PipelineCoverageReductionStateCreateInfoNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  61023. {
  61024. return !operator==( rhs );
  61025. }
  61026. #endif
  61027. public:
  61028. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineCoverageReductionStateCreateInfoNV;
  61029. const void * pNext = {};
  61030. VULKAN_HPP_NAMESPACE::PipelineCoverageReductionStateCreateFlagsNV flags = {};
  61031. VULKAN_HPP_NAMESPACE::CoverageReductionModeNV coverageReductionMode = VULKAN_HPP_NAMESPACE::CoverageReductionModeNV::eMerge;
  61032. };
  61033. template <>
  61034. struct CppType<StructureType, StructureType::ePipelineCoverageReductionStateCreateInfoNV>
  61035. {
  61036. using Type = PipelineCoverageReductionStateCreateInfoNV;
  61037. };
  61038. struct PipelineCoverageToColorStateCreateInfoNV
  61039. {
  61040. using NativeType = VkPipelineCoverageToColorStateCreateInfoNV;
  61041. static const bool allowDuplicate = false;
  61042. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineCoverageToColorStateCreateInfoNV;
  61043. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  61044. VULKAN_HPP_CONSTEXPR PipelineCoverageToColorStateCreateInfoNV( VULKAN_HPP_NAMESPACE::PipelineCoverageToColorStateCreateFlagsNV flags_ = {},
  61045. VULKAN_HPP_NAMESPACE::Bool32 coverageToColorEnable_ = {},
  61046. uint32_t coverageToColorLocation_ = {},
  61047. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  61048. : pNext( pNext_ )
  61049. , flags( flags_ )
  61050. , coverageToColorEnable( coverageToColorEnable_ )
  61051. , coverageToColorLocation( coverageToColorLocation_ )
  61052. {
  61053. }
  61054. VULKAN_HPP_CONSTEXPR PipelineCoverageToColorStateCreateInfoNV( PipelineCoverageToColorStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  61055. PipelineCoverageToColorStateCreateInfoNV( VkPipelineCoverageToColorStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
  61056. : PipelineCoverageToColorStateCreateInfoNV( *reinterpret_cast<PipelineCoverageToColorStateCreateInfoNV const *>( &rhs ) )
  61057. {
  61058. }
  61059. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  61060. PipelineCoverageToColorStateCreateInfoNV & operator=( PipelineCoverageToColorStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  61061. PipelineCoverageToColorStateCreateInfoNV & operator=( VkPipelineCoverageToColorStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
  61062. {
  61063. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PipelineCoverageToColorStateCreateInfoNV const *>( &rhs );
  61064. return *this;
  61065. }
  61066. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  61067. VULKAN_HPP_CONSTEXPR_14 PipelineCoverageToColorStateCreateInfoNV & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  61068. {
  61069. pNext = pNext_;
  61070. return *this;
  61071. }
  61072. VULKAN_HPP_CONSTEXPR_14 PipelineCoverageToColorStateCreateInfoNV &
  61073. setFlags( VULKAN_HPP_NAMESPACE::PipelineCoverageToColorStateCreateFlagsNV flags_ ) VULKAN_HPP_NOEXCEPT
  61074. {
  61075. flags = flags_;
  61076. return *this;
  61077. }
  61078. VULKAN_HPP_CONSTEXPR_14 PipelineCoverageToColorStateCreateInfoNV &
  61079. setCoverageToColorEnable( VULKAN_HPP_NAMESPACE::Bool32 coverageToColorEnable_ ) VULKAN_HPP_NOEXCEPT
  61080. {
  61081. coverageToColorEnable = coverageToColorEnable_;
  61082. return *this;
  61083. }
  61084. VULKAN_HPP_CONSTEXPR_14 PipelineCoverageToColorStateCreateInfoNV & setCoverageToColorLocation( uint32_t coverageToColorLocation_ ) VULKAN_HPP_NOEXCEPT
  61085. {
  61086. coverageToColorLocation = coverageToColorLocation_;
  61087. return *this;
  61088. }
  61089. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  61090. operator VkPipelineCoverageToColorStateCreateInfoNV const &() const VULKAN_HPP_NOEXCEPT
  61091. {
  61092. return *reinterpret_cast<const VkPipelineCoverageToColorStateCreateInfoNV *>( this );
  61093. }
  61094. operator VkPipelineCoverageToColorStateCreateInfoNV &() VULKAN_HPP_NOEXCEPT
  61095. {
  61096. return *reinterpret_cast<VkPipelineCoverageToColorStateCreateInfoNV *>( this );
  61097. }
  61098. #if defined( VULKAN_HPP_USE_REFLECT )
  61099. # if 14 <= VULKAN_HPP_CPP_VERSION
  61100. auto
  61101. # else
  61102. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  61103. const void * const &,
  61104. VULKAN_HPP_NAMESPACE::PipelineCoverageToColorStateCreateFlagsNV const &,
  61105. VULKAN_HPP_NAMESPACE::Bool32 const &,
  61106. uint32_t const &>
  61107. # endif
  61108. reflect() const VULKAN_HPP_NOEXCEPT
  61109. {
  61110. return std::tie( sType, pNext, flags, coverageToColorEnable, coverageToColorLocation );
  61111. }
  61112. #endif
  61113. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  61114. auto operator<=>( PipelineCoverageToColorStateCreateInfoNV const & ) const = default;
  61115. #else
  61116. bool operator==( PipelineCoverageToColorStateCreateInfoNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  61117. {
  61118. # if defined( VULKAN_HPP_USE_REFLECT )
  61119. return this->reflect() == rhs.reflect();
  61120. # else
  61121. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( flags == rhs.flags ) && ( coverageToColorEnable == rhs.coverageToColorEnable ) &&
  61122. ( coverageToColorLocation == rhs.coverageToColorLocation );
  61123. # endif
  61124. }
  61125. bool operator!=( PipelineCoverageToColorStateCreateInfoNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  61126. {
  61127. return !operator==( rhs );
  61128. }
  61129. #endif
  61130. public:
  61131. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineCoverageToColorStateCreateInfoNV;
  61132. const void * pNext = {};
  61133. VULKAN_HPP_NAMESPACE::PipelineCoverageToColorStateCreateFlagsNV flags = {};
  61134. VULKAN_HPP_NAMESPACE::Bool32 coverageToColorEnable = {};
  61135. uint32_t coverageToColorLocation = {};
  61136. };
  61137. template <>
  61138. struct CppType<StructureType, StructureType::ePipelineCoverageToColorStateCreateInfoNV>
  61139. {
  61140. using Type = PipelineCoverageToColorStateCreateInfoNV;
  61141. };
  61142. struct PipelineCreationFeedback
  61143. {
  61144. using NativeType = VkPipelineCreationFeedback;
  61145. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  61146. VULKAN_HPP_CONSTEXPR PipelineCreationFeedback( VULKAN_HPP_NAMESPACE::PipelineCreationFeedbackFlags flags_ = {},
  61147. uint64_t duration_ = {} ) VULKAN_HPP_NOEXCEPT
  61148. : flags( flags_ )
  61149. , duration( duration_ )
  61150. {
  61151. }
  61152. VULKAN_HPP_CONSTEXPR PipelineCreationFeedback( PipelineCreationFeedback const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  61153. PipelineCreationFeedback( VkPipelineCreationFeedback const & rhs ) VULKAN_HPP_NOEXCEPT
  61154. : PipelineCreationFeedback( *reinterpret_cast<PipelineCreationFeedback const *>( &rhs ) )
  61155. {
  61156. }
  61157. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  61158. PipelineCreationFeedback & operator=( PipelineCreationFeedback const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  61159. PipelineCreationFeedback & operator=( VkPipelineCreationFeedback const & rhs ) VULKAN_HPP_NOEXCEPT
  61160. {
  61161. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PipelineCreationFeedback const *>( &rhs );
  61162. return *this;
  61163. }
  61164. operator VkPipelineCreationFeedback const &() const VULKAN_HPP_NOEXCEPT
  61165. {
  61166. return *reinterpret_cast<const VkPipelineCreationFeedback *>( this );
  61167. }
  61168. operator VkPipelineCreationFeedback &() VULKAN_HPP_NOEXCEPT
  61169. {
  61170. return *reinterpret_cast<VkPipelineCreationFeedback *>( this );
  61171. }
  61172. #if defined( VULKAN_HPP_USE_REFLECT )
  61173. # if 14 <= VULKAN_HPP_CPP_VERSION
  61174. auto
  61175. # else
  61176. std::tuple<VULKAN_HPP_NAMESPACE::PipelineCreationFeedbackFlags const &, uint64_t const &>
  61177. # endif
  61178. reflect() const VULKAN_HPP_NOEXCEPT
  61179. {
  61180. return std::tie( flags, duration );
  61181. }
  61182. #endif
  61183. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  61184. auto operator<=>( PipelineCreationFeedback const & ) const = default;
  61185. #else
  61186. bool operator==( PipelineCreationFeedback const & rhs ) const VULKAN_HPP_NOEXCEPT
  61187. {
  61188. # if defined( VULKAN_HPP_USE_REFLECT )
  61189. return this->reflect() == rhs.reflect();
  61190. # else
  61191. return ( flags == rhs.flags ) && ( duration == rhs.duration );
  61192. # endif
  61193. }
  61194. bool operator!=( PipelineCreationFeedback const & rhs ) const VULKAN_HPP_NOEXCEPT
  61195. {
  61196. return !operator==( rhs );
  61197. }
  61198. #endif
  61199. public:
  61200. VULKAN_HPP_NAMESPACE::PipelineCreationFeedbackFlags flags = {};
  61201. uint64_t duration = {};
  61202. };
  61203. using PipelineCreationFeedbackEXT = PipelineCreationFeedback;
  61204. struct PipelineCreationFeedbackCreateInfo
  61205. {
  61206. using NativeType = VkPipelineCreationFeedbackCreateInfo;
  61207. static const bool allowDuplicate = false;
  61208. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineCreationFeedbackCreateInfo;
  61209. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  61210. VULKAN_HPP_CONSTEXPR PipelineCreationFeedbackCreateInfo( VULKAN_HPP_NAMESPACE::PipelineCreationFeedback * pPipelineCreationFeedback_ = {},
  61211. uint32_t pipelineStageCreationFeedbackCount_ = {},
  61212. VULKAN_HPP_NAMESPACE::PipelineCreationFeedback * pPipelineStageCreationFeedbacks_ = {},
  61213. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  61214. : pNext( pNext_ )
  61215. , pPipelineCreationFeedback( pPipelineCreationFeedback_ )
  61216. , pipelineStageCreationFeedbackCount( pipelineStageCreationFeedbackCount_ )
  61217. , pPipelineStageCreationFeedbacks( pPipelineStageCreationFeedbacks_ )
  61218. {
  61219. }
  61220. VULKAN_HPP_CONSTEXPR PipelineCreationFeedbackCreateInfo( PipelineCreationFeedbackCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  61221. PipelineCreationFeedbackCreateInfo( VkPipelineCreationFeedbackCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
  61222. : PipelineCreationFeedbackCreateInfo( *reinterpret_cast<PipelineCreationFeedbackCreateInfo const *>( &rhs ) )
  61223. {
  61224. }
  61225. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  61226. PipelineCreationFeedbackCreateInfo(
  61227. VULKAN_HPP_NAMESPACE::PipelineCreationFeedback * pPipelineCreationFeedback_,
  61228. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<VULKAN_HPP_NAMESPACE::PipelineCreationFeedback> const & pipelineStageCreationFeedbacks_,
  61229. const void * pNext_ = nullptr )
  61230. : pNext( pNext_ )
  61231. , pPipelineCreationFeedback( pPipelineCreationFeedback_ )
  61232. , pipelineStageCreationFeedbackCount( static_cast<uint32_t>( pipelineStageCreationFeedbacks_.size() ) )
  61233. , pPipelineStageCreationFeedbacks( pipelineStageCreationFeedbacks_.data() )
  61234. {
  61235. }
  61236. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  61237. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  61238. PipelineCreationFeedbackCreateInfo & operator=( PipelineCreationFeedbackCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  61239. PipelineCreationFeedbackCreateInfo & operator=( VkPipelineCreationFeedbackCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
  61240. {
  61241. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PipelineCreationFeedbackCreateInfo const *>( &rhs );
  61242. return *this;
  61243. }
  61244. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  61245. VULKAN_HPP_CONSTEXPR_14 PipelineCreationFeedbackCreateInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  61246. {
  61247. pNext = pNext_;
  61248. return *this;
  61249. }
  61250. VULKAN_HPP_CONSTEXPR_14 PipelineCreationFeedbackCreateInfo &
  61251. setPPipelineCreationFeedback( VULKAN_HPP_NAMESPACE::PipelineCreationFeedback * pPipelineCreationFeedback_ ) VULKAN_HPP_NOEXCEPT
  61252. {
  61253. pPipelineCreationFeedback = pPipelineCreationFeedback_;
  61254. return *this;
  61255. }
  61256. VULKAN_HPP_CONSTEXPR_14 PipelineCreationFeedbackCreateInfo &
  61257. setPipelineStageCreationFeedbackCount( uint32_t pipelineStageCreationFeedbackCount_ ) VULKAN_HPP_NOEXCEPT
  61258. {
  61259. pipelineStageCreationFeedbackCount = pipelineStageCreationFeedbackCount_;
  61260. return *this;
  61261. }
  61262. VULKAN_HPP_CONSTEXPR_14 PipelineCreationFeedbackCreateInfo &
  61263. setPPipelineStageCreationFeedbacks( VULKAN_HPP_NAMESPACE::PipelineCreationFeedback * pPipelineStageCreationFeedbacks_ ) VULKAN_HPP_NOEXCEPT
  61264. {
  61265. pPipelineStageCreationFeedbacks = pPipelineStageCreationFeedbacks_;
  61266. return *this;
  61267. }
  61268. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  61269. PipelineCreationFeedbackCreateInfo & setPipelineStageCreationFeedbacks(
  61270. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<VULKAN_HPP_NAMESPACE::PipelineCreationFeedback> const & pipelineStageCreationFeedbacks_ )
  61271. VULKAN_HPP_NOEXCEPT
  61272. {
  61273. pipelineStageCreationFeedbackCount = static_cast<uint32_t>( pipelineStageCreationFeedbacks_.size() );
  61274. pPipelineStageCreationFeedbacks = pipelineStageCreationFeedbacks_.data();
  61275. return *this;
  61276. }
  61277. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  61278. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  61279. operator VkPipelineCreationFeedbackCreateInfo const &() const VULKAN_HPP_NOEXCEPT
  61280. {
  61281. return *reinterpret_cast<const VkPipelineCreationFeedbackCreateInfo *>( this );
  61282. }
  61283. operator VkPipelineCreationFeedbackCreateInfo &() VULKAN_HPP_NOEXCEPT
  61284. {
  61285. return *reinterpret_cast<VkPipelineCreationFeedbackCreateInfo *>( this );
  61286. }
  61287. #if defined( VULKAN_HPP_USE_REFLECT )
  61288. # if 14 <= VULKAN_HPP_CPP_VERSION
  61289. auto
  61290. # else
  61291. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  61292. const void * const &,
  61293. VULKAN_HPP_NAMESPACE::PipelineCreationFeedback * const &,
  61294. uint32_t const &,
  61295. VULKAN_HPP_NAMESPACE::PipelineCreationFeedback * const &>
  61296. # endif
  61297. reflect() const VULKAN_HPP_NOEXCEPT
  61298. {
  61299. return std::tie( sType, pNext, pPipelineCreationFeedback, pipelineStageCreationFeedbackCount, pPipelineStageCreationFeedbacks );
  61300. }
  61301. #endif
  61302. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  61303. auto operator<=>( PipelineCreationFeedbackCreateInfo const & ) const = default;
  61304. #else
  61305. bool operator==( PipelineCreationFeedbackCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  61306. {
  61307. # if defined( VULKAN_HPP_USE_REFLECT )
  61308. return this->reflect() == rhs.reflect();
  61309. # else
  61310. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( pPipelineCreationFeedback == rhs.pPipelineCreationFeedback ) &&
  61311. ( pipelineStageCreationFeedbackCount == rhs.pipelineStageCreationFeedbackCount ) &&
  61312. ( pPipelineStageCreationFeedbacks == rhs.pPipelineStageCreationFeedbacks );
  61313. # endif
  61314. }
  61315. bool operator!=( PipelineCreationFeedbackCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  61316. {
  61317. return !operator==( rhs );
  61318. }
  61319. #endif
  61320. public:
  61321. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineCreationFeedbackCreateInfo;
  61322. const void * pNext = {};
  61323. VULKAN_HPP_NAMESPACE::PipelineCreationFeedback * pPipelineCreationFeedback = {};
  61324. uint32_t pipelineStageCreationFeedbackCount = {};
  61325. VULKAN_HPP_NAMESPACE::PipelineCreationFeedback * pPipelineStageCreationFeedbacks = {};
  61326. };
  61327. template <>
  61328. struct CppType<StructureType, StructureType::ePipelineCreationFeedbackCreateInfo>
  61329. {
  61330. using Type = PipelineCreationFeedbackCreateInfo;
  61331. };
  61332. using PipelineCreationFeedbackCreateInfoEXT = PipelineCreationFeedbackCreateInfo;
  61333. struct PipelineDiscardRectangleStateCreateInfoEXT
  61334. {
  61335. using NativeType = VkPipelineDiscardRectangleStateCreateInfoEXT;
  61336. static const bool allowDuplicate = false;
  61337. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineDiscardRectangleStateCreateInfoEXT;
  61338. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  61339. VULKAN_HPP_CONSTEXPR PipelineDiscardRectangleStateCreateInfoEXT(
  61340. VULKAN_HPP_NAMESPACE::PipelineDiscardRectangleStateCreateFlagsEXT flags_ = {},
  61341. VULKAN_HPP_NAMESPACE::DiscardRectangleModeEXT discardRectangleMode_ = VULKAN_HPP_NAMESPACE::DiscardRectangleModeEXT::eInclusive,
  61342. uint32_t discardRectangleCount_ = {},
  61343. const VULKAN_HPP_NAMESPACE::Rect2D * pDiscardRectangles_ = {},
  61344. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  61345. : pNext( pNext_ )
  61346. , flags( flags_ )
  61347. , discardRectangleMode( discardRectangleMode_ )
  61348. , discardRectangleCount( discardRectangleCount_ )
  61349. , pDiscardRectangles( pDiscardRectangles_ )
  61350. {
  61351. }
  61352. VULKAN_HPP_CONSTEXPR PipelineDiscardRectangleStateCreateInfoEXT( PipelineDiscardRectangleStateCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  61353. PipelineDiscardRectangleStateCreateInfoEXT( VkPipelineDiscardRectangleStateCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  61354. : PipelineDiscardRectangleStateCreateInfoEXT( *reinterpret_cast<PipelineDiscardRectangleStateCreateInfoEXT const *>( &rhs ) )
  61355. {
  61356. }
  61357. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  61358. PipelineDiscardRectangleStateCreateInfoEXT( VULKAN_HPP_NAMESPACE::PipelineDiscardRectangleStateCreateFlagsEXT flags_,
  61359. VULKAN_HPP_NAMESPACE::DiscardRectangleModeEXT discardRectangleMode_,
  61360. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::Rect2D> const & discardRectangles_,
  61361. const void * pNext_ = nullptr )
  61362. : pNext( pNext_ )
  61363. , flags( flags_ )
  61364. , discardRectangleMode( discardRectangleMode_ )
  61365. , discardRectangleCount( static_cast<uint32_t>( discardRectangles_.size() ) )
  61366. , pDiscardRectangles( discardRectangles_.data() )
  61367. {
  61368. }
  61369. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  61370. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  61371. PipelineDiscardRectangleStateCreateInfoEXT & operator=( PipelineDiscardRectangleStateCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  61372. PipelineDiscardRectangleStateCreateInfoEXT & operator=( VkPipelineDiscardRectangleStateCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  61373. {
  61374. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PipelineDiscardRectangleStateCreateInfoEXT const *>( &rhs );
  61375. return *this;
  61376. }
  61377. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  61378. VULKAN_HPP_CONSTEXPR_14 PipelineDiscardRectangleStateCreateInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  61379. {
  61380. pNext = pNext_;
  61381. return *this;
  61382. }
  61383. VULKAN_HPP_CONSTEXPR_14 PipelineDiscardRectangleStateCreateInfoEXT &
  61384. setFlags( VULKAN_HPP_NAMESPACE::PipelineDiscardRectangleStateCreateFlagsEXT flags_ ) VULKAN_HPP_NOEXCEPT
  61385. {
  61386. flags = flags_;
  61387. return *this;
  61388. }
  61389. VULKAN_HPP_CONSTEXPR_14 PipelineDiscardRectangleStateCreateInfoEXT &
  61390. setDiscardRectangleMode( VULKAN_HPP_NAMESPACE::DiscardRectangleModeEXT discardRectangleMode_ ) VULKAN_HPP_NOEXCEPT
  61391. {
  61392. discardRectangleMode = discardRectangleMode_;
  61393. return *this;
  61394. }
  61395. VULKAN_HPP_CONSTEXPR_14 PipelineDiscardRectangleStateCreateInfoEXT & setDiscardRectangleCount( uint32_t discardRectangleCount_ ) VULKAN_HPP_NOEXCEPT
  61396. {
  61397. discardRectangleCount = discardRectangleCount_;
  61398. return *this;
  61399. }
  61400. VULKAN_HPP_CONSTEXPR_14 PipelineDiscardRectangleStateCreateInfoEXT &
  61401. setPDiscardRectangles( const VULKAN_HPP_NAMESPACE::Rect2D * pDiscardRectangles_ ) VULKAN_HPP_NOEXCEPT
  61402. {
  61403. pDiscardRectangles = pDiscardRectangles_;
  61404. return *this;
  61405. }
  61406. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  61407. PipelineDiscardRectangleStateCreateInfoEXT &
  61408. setDiscardRectangles( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::Rect2D> const & discardRectangles_ ) VULKAN_HPP_NOEXCEPT
  61409. {
  61410. discardRectangleCount = static_cast<uint32_t>( discardRectangles_.size() );
  61411. pDiscardRectangles = discardRectangles_.data();
  61412. return *this;
  61413. }
  61414. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  61415. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  61416. operator VkPipelineDiscardRectangleStateCreateInfoEXT const &() const VULKAN_HPP_NOEXCEPT
  61417. {
  61418. return *reinterpret_cast<const VkPipelineDiscardRectangleStateCreateInfoEXT *>( this );
  61419. }
  61420. operator VkPipelineDiscardRectangleStateCreateInfoEXT &() VULKAN_HPP_NOEXCEPT
  61421. {
  61422. return *reinterpret_cast<VkPipelineDiscardRectangleStateCreateInfoEXT *>( this );
  61423. }
  61424. #if defined( VULKAN_HPP_USE_REFLECT )
  61425. # if 14 <= VULKAN_HPP_CPP_VERSION
  61426. auto
  61427. # else
  61428. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  61429. const void * const &,
  61430. VULKAN_HPP_NAMESPACE::PipelineDiscardRectangleStateCreateFlagsEXT const &,
  61431. VULKAN_HPP_NAMESPACE::DiscardRectangleModeEXT const &,
  61432. uint32_t const &,
  61433. const VULKAN_HPP_NAMESPACE::Rect2D * const &>
  61434. # endif
  61435. reflect() const VULKAN_HPP_NOEXCEPT
  61436. {
  61437. return std::tie( sType, pNext, flags, discardRectangleMode, discardRectangleCount, pDiscardRectangles );
  61438. }
  61439. #endif
  61440. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  61441. auto operator<=>( PipelineDiscardRectangleStateCreateInfoEXT const & ) const = default;
  61442. #else
  61443. bool operator==( PipelineDiscardRectangleStateCreateInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  61444. {
  61445. # if defined( VULKAN_HPP_USE_REFLECT )
  61446. return this->reflect() == rhs.reflect();
  61447. # else
  61448. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( flags == rhs.flags ) && ( discardRectangleMode == rhs.discardRectangleMode ) &&
  61449. ( discardRectangleCount == rhs.discardRectangleCount ) && ( pDiscardRectangles == rhs.pDiscardRectangles );
  61450. # endif
  61451. }
  61452. bool operator!=( PipelineDiscardRectangleStateCreateInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  61453. {
  61454. return !operator==( rhs );
  61455. }
  61456. #endif
  61457. public:
  61458. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineDiscardRectangleStateCreateInfoEXT;
  61459. const void * pNext = {};
  61460. VULKAN_HPP_NAMESPACE::PipelineDiscardRectangleStateCreateFlagsEXT flags = {};
  61461. VULKAN_HPP_NAMESPACE::DiscardRectangleModeEXT discardRectangleMode = VULKAN_HPP_NAMESPACE::DiscardRectangleModeEXT::eInclusive;
  61462. uint32_t discardRectangleCount = {};
  61463. const VULKAN_HPP_NAMESPACE::Rect2D * pDiscardRectangles = {};
  61464. };
  61465. template <>
  61466. struct CppType<StructureType, StructureType::ePipelineDiscardRectangleStateCreateInfoEXT>
  61467. {
  61468. using Type = PipelineDiscardRectangleStateCreateInfoEXT;
  61469. };
  61470. struct PipelineExecutableInfoKHR
  61471. {
  61472. using NativeType = VkPipelineExecutableInfoKHR;
  61473. static const bool allowDuplicate = false;
  61474. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineExecutableInfoKHR;
  61475. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  61476. VULKAN_HPP_CONSTEXPR PipelineExecutableInfoKHR( VULKAN_HPP_NAMESPACE::Pipeline pipeline_ = {},
  61477. uint32_t executableIndex_ = {},
  61478. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  61479. : pNext( pNext_ )
  61480. , pipeline( pipeline_ )
  61481. , executableIndex( executableIndex_ )
  61482. {
  61483. }
  61484. VULKAN_HPP_CONSTEXPR PipelineExecutableInfoKHR( PipelineExecutableInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  61485. PipelineExecutableInfoKHR( VkPipelineExecutableInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  61486. : PipelineExecutableInfoKHR( *reinterpret_cast<PipelineExecutableInfoKHR const *>( &rhs ) )
  61487. {
  61488. }
  61489. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  61490. PipelineExecutableInfoKHR & operator=( PipelineExecutableInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  61491. PipelineExecutableInfoKHR & operator=( VkPipelineExecutableInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  61492. {
  61493. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PipelineExecutableInfoKHR const *>( &rhs );
  61494. return *this;
  61495. }
  61496. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  61497. VULKAN_HPP_CONSTEXPR_14 PipelineExecutableInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  61498. {
  61499. pNext = pNext_;
  61500. return *this;
  61501. }
  61502. VULKAN_HPP_CONSTEXPR_14 PipelineExecutableInfoKHR & setPipeline( VULKAN_HPP_NAMESPACE::Pipeline pipeline_ ) VULKAN_HPP_NOEXCEPT
  61503. {
  61504. pipeline = pipeline_;
  61505. return *this;
  61506. }
  61507. VULKAN_HPP_CONSTEXPR_14 PipelineExecutableInfoKHR & setExecutableIndex( uint32_t executableIndex_ ) VULKAN_HPP_NOEXCEPT
  61508. {
  61509. executableIndex = executableIndex_;
  61510. return *this;
  61511. }
  61512. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  61513. operator VkPipelineExecutableInfoKHR const &() const VULKAN_HPP_NOEXCEPT
  61514. {
  61515. return *reinterpret_cast<const VkPipelineExecutableInfoKHR *>( this );
  61516. }
  61517. operator VkPipelineExecutableInfoKHR &() VULKAN_HPP_NOEXCEPT
  61518. {
  61519. return *reinterpret_cast<VkPipelineExecutableInfoKHR *>( this );
  61520. }
  61521. #if defined( VULKAN_HPP_USE_REFLECT )
  61522. # if 14 <= VULKAN_HPP_CPP_VERSION
  61523. auto
  61524. # else
  61525. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::Pipeline const &, uint32_t const &>
  61526. # endif
  61527. reflect() const VULKAN_HPP_NOEXCEPT
  61528. {
  61529. return std::tie( sType, pNext, pipeline, executableIndex );
  61530. }
  61531. #endif
  61532. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  61533. auto operator<=>( PipelineExecutableInfoKHR const & ) const = default;
  61534. #else
  61535. bool operator==( PipelineExecutableInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  61536. {
  61537. # if defined( VULKAN_HPP_USE_REFLECT )
  61538. return this->reflect() == rhs.reflect();
  61539. # else
  61540. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( pipeline == rhs.pipeline ) && ( executableIndex == rhs.executableIndex );
  61541. # endif
  61542. }
  61543. bool operator!=( PipelineExecutableInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  61544. {
  61545. return !operator==( rhs );
  61546. }
  61547. #endif
  61548. public:
  61549. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineExecutableInfoKHR;
  61550. const void * pNext = {};
  61551. VULKAN_HPP_NAMESPACE::Pipeline pipeline = {};
  61552. uint32_t executableIndex = {};
  61553. };
  61554. template <>
  61555. struct CppType<StructureType, StructureType::ePipelineExecutableInfoKHR>
  61556. {
  61557. using Type = PipelineExecutableInfoKHR;
  61558. };
  61559. struct PipelineExecutableInternalRepresentationKHR
  61560. {
  61561. using NativeType = VkPipelineExecutableInternalRepresentationKHR;
  61562. static const bool allowDuplicate = false;
  61563. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineExecutableInternalRepresentationKHR;
  61564. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  61565. VULKAN_HPP_CONSTEXPR_14 PipelineExecutableInternalRepresentationKHR( std::array<char, VK_MAX_DESCRIPTION_SIZE> const & name_ = {},
  61566. std::array<char, VK_MAX_DESCRIPTION_SIZE> const & description_ = {},
  61567. VULKAN_HPP_NAMESPACE::Bool32 isText_ = {},
  61568. size_t dataSize_ = {},
  61569. void * pData_ = {},
  61570. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  61571. : pNext( pNext_ )
  61572. , name( name_ )
  61573. , description( description_ )
  61574. , isText( isText_ )
  61575. , dataSize( dataSize_ )
  61576. , pData( pData_ )
  61577. {
  61578. }
  61579. VULKAN_HPP_CONSTEXPR_14
  61580. PipelineExecutableInternalRepresentationKHR( PipelineExecutableInternalRepresentationKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  61581. PipelineExecutableInternalRepresentationKHR( VkPipelineExecutableInternalRepresentationKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  61582. : PipelineExecutableInternalRepresentationKHR( *reinterpret_cast<PipelineExecutableInternalRepresentationKHR const *>( &rhs ) )
  61583. {
  61584. }
  61585. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  61586. template <typename T>
  61587. PipelineExecutableInternalRepresentationKHR( std::array<char, VK_MAX_DESCRIPTION_SIZE> const & name_,
  61588. std::array<char, VK_MAX_DESCRIPTION_SIZE> const & description_,
  61589. VULKAN_HPP_NAMESPACE::Bool32 isText_,
  61590. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<T> const & data_,
  61591. void * pNext_ = nullptr )
  61592. : pNext( pNext_ ), name( name_ ), description( description_ ), isText( isText_ ), dataSize( data_.size() * sizeof( T ) ), pData( data_.data() )
  61593. {
  61594. }
  61595. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  61596. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  61597. PipelineExecutableInternalRepresentationKHR & operator=( PipelineExecutableInternalRepresentationKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  61598. PipelineExecutableInternalRepresentationKHR & operator=( VkPipelineExecutableInternalRepresentationKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  61599. {
  61600. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PipelineExecutableInternalRepresentationKHR const *>( &rhs );
  61601. return *this;
  61602. }
  61603. operator VkPipelineExecutableInternalRepresentationKHR const &() const VULKAN_HPP_NOEXCEPT
  61604. {
  61605. return *reinterpret_cast<const VkPipelineExecutableInternalRepresentationKHR *>( this );
  61606. }
  61607. operator VkPipelineExecutableInternalRepresentationKHR &() VULKAN_HPP_NOEXCEPT
  61608. {
  61609. return *reinterpret_cast<VkPipelineExecutableInternalRepresentationKHR *>( this );
  61610. }
  61611. #if defined( VULKAN_HPP_USE_REFLECT )
  61612. # if 14 <= VULKAN_HPP_CPP_VERSION
  61613. auto
  61614. # else
  61615. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  61616. void * const &,
  61617. VULKAN_HPP_NAMESPACE::ArrayWrapper1D<char, VK_MAX_DESCRIPTION_SIZE> const &,
  61618. VULKAN_HPP_NAMESPACE::ArrayWrapper1D<char, VK_MAX_DESCRIPTION_SIZE> const &,
  61619. VULKAN_HPP_NAMESPACE::Bool32 const &,
  61620. size_t const &,
  61621. void * const &>
  61622. # endif
  61623. reflect() const VULKAN_HPP_NOEXCEPT
  61624. {
  61625. return std::tie( sType, pNext, name, description, isText, dataSize, pData );
  61626. }
  61627. #endif
  61628. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  61629. auto operator<=>( PipelineExecutableInternalRepresentationKHR const & ) const = default;
  61630. #else
  61631. bool operator==( PipelineExecutableInternalRepresentationKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  61632. {
  61633. # if defined( VULKAN_HPP_USE_REFLECT )
  61634. return this->reflect() == rhs.reflect();
  61635. # else
  61636. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( name == rhs.name ) && ( description == rhs.description ) && ( isText == rhs.isText ) &&
  61637. ( dataSize == rhs.dataSize ) && ( pData == rhs.pData );
  61638. # endif
  61639. }
  61640. bool operator!=( PipelineExecutableInternalRepresentationKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  61641. {
  61642. return !operator==( rhs );
  61643. }
  61644. #endif
  61645. public:
  61646. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineExecutableInternalRepresentationKHR;
  61647. void * pNext = {};
  61648. VULKAN_HPP_NAMESPACE::ArrayWrapper1D<char, VK_MAX_DESCRIPTION_SIZE> name = {};
  61649. VULKAN_HPP_NAMESPACE::ArrayWrapper1D<char, VK_MAX_DESCRIPTION_SIZE> description = {};
  61650. VULKAN_HPP_NAMESPACE::Bool32 isText = {};
  61651. size_t dataSize = {};
  61652. void * pData = {};
  61653. };
  61654. template <>
  61655. struct CppType<StructureType, StructureType::ePipelineExecutableInternalRepresentationKHR>
  61656. {
  61657. using Type = PipelineExecutableInternalRepresentationKHR;
  61658. };
  61659. struct PipelineExecutablePropertiesKHR
  61660. {
  61661. using NativeType = VkPipelineExecutablePropertiesKHR;
  61662. static const bool allowDuplicate = false;
  61663. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineExecutablePropertiesKHR;
  61664. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  61665. VULKAN_HPP_CONSTEXPR_14 PipelineExecutablePropertiesKHR( VULKAN_HPP_NAMESPACE::ShaderStageFlags stages_ = {},
  61666. std::array<char, VK_MAX_DESCRIPTION_SIZE> const & name_ = {},
  61667. std::array<char, VK_MAX_DESCRIPTION_SIZE> const & description_ = {},
  61668. uint32_t subgroupSize_ = {},
  61669. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  61670. : pNext( pNext_ )
  61671. , stages( stages_ )
  61672. , name( name_ )
  61673. , description( description_ )
  61674. , subgroupSize( subgroupSize_ )
  61675. {
  61676. }
  61677. VULKAN_HPP_CONSTEXPR_14 PipelineExecutablePropertiesKHR( PipelineExecutablePropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  61678. PipelineExecutablePropertiesKHR( VkPipelineExecutablePropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  61679. : PipelineExecutablePropertiesKHR( *reinterpret_cast<PipelineExecutablePropertiesKHR const *>( &rhs ) )
  61680. {
  61681. }
  61682. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  61683. PipelineExecutablePropertiesKHR & operator=( PipelineExecutablePropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  61684. PipelineExecutablePropertiesKHR & operator=( VkPipelineExecutablePropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  61685. {
  61686. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PipelineExecutablePropertiesKHR const *>( &rhs );
  61687. return *this;
  61688. }
  61689. operator VkPipelineExecutablePropertiesKHR const &() const VULKAN_HPP_NOEXCEPT
  61690. {
  61691. return *reinterpret_cast<const VkPipelineExecutablePropertiesKHR *>( this );
  61692. }
  61693. operator VkPipelineExecutablePropertiesKHR &() VULKAN_HPP_NOEXCEPT
  61694. {
  61695. return *reinterpret_cast<VkPipelineExecutablePropertiesKHR *>( this );
  61696. }
  61697. #if defined( VULKAN_HPP_USE_REFLECT )
  61698. # if 14 <= VULKAN_HPP_CPP_VERSION
  61699. auto
  61700. # else
  61701. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  61702. void * const &,
  61703. VULKAN_HPP_NAMESPACE::ShaderStageFlags const &,
  61704. VULKAN_HPP_NAMESPACE::ArrayWrapper1D<char, VK_MAX_DESCRIPTION_SIZE> const &,
  61705. VULKAN_HPP_NAMESPACE::ArrayWrapper1D<char, VK_MAX_DESCRIPTION_SIZE> const &,
  61706. uint32_t const &>
  61707. # endif
  61708. reflect() const VULKAN_HPP_NOEXCEPT
  61709. {
  61710. return std::tie( sType, pNext, stages, name, description, subgroupSize );
  61711. }
  61712. #endif
  61713. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  61714. auto operator<=>( PipelineExecutablePropertiesKHR const & ) const = default;
  61715. #else
  61716. bool operator==( PipelineExecutablePropertiesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  61717. {
  61718. # if defined( VULKAN_HPP_USE_REFLECT )
  61719. return this->reflect() == rhs.reflect();
  61720. # else
  61721. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( stages == rhs.stages ) && ( name == rhs.name ) && ( description == rhs.description ) &&
  61722. ( subgroupSize == rhs.subgroupSize );
  61723. # endif
  61724. }
  61725. bool operator!=( PipelineExecutablePropertiesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  61726. {
  61727. return !operator==( rhs );
  61728. }
  61729. #endif
  61730. public:
  61731. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineExecutablePropertiesKHR;
  61732. void * pNext = {};
  61733. VULKAN_HPP_NAMESPACE::ShaderStageFlags stages = {};
  61734. VULKAN_HPP_NAMESPACE::ArrayWrapper1D<char, VK_MAX_DESCRIPTION_SIZE> name = {};
  61735. VULKAN_HPP_NAMESPACE::ArrayWrapper1D<char, VK_MAX_DESCRIPTION_SIZE> description = {};
  61736. uint32_t subgroupSize = {};
  61737. };
  61738. template <>
  61739. struct CppType<StructureType, StructureType::ePipelineExecutablePropertiesKHR>
  61740. {
  61741. using Type = PipelineExecutablePropertiesKHR;
  61742. };
  61743. union PipelineExecutableStatisticValueKHR
  61744. {
  61745. using NativeType = VkPipelineExecutableStatisticValueKHR;
  61746. #if !defined( VULKAN_HPP_NO_UNION_CONSTRUCTORS )
  61747. VULKAN_HPP_CONSTEXPR_14 PipelineExecutableStatisticValueKHR( VULKAN_HPP_NAMESPACE::Bool32 b32_ = {} ) : b32( b32_ ) {}
  61748. VULKAN_HPP_CONSTEXPR_14 PipelineExecutableStatisticValueKHR( int64_t i64_ ) : i64( i64_ ) {}
  61749. VULKAN_HPP_CONSTEXPR_14 PipelineExecutableStatisticValueKHR( uint64_t u64_ ) : u64( u64_ ) {}
  61750. VULKAN_HPP_CONSTEXPR_14 PipelineExecutableStatisticValueKHR( double f64_ ) : f64( f64_ ) {}
  61751. #endif /*VULKAN_HPP_NO_UNION_CONSTRUCTORS*/
  61752. #if !defined( VULKAN_HPP_NO_UNION_SETTERS )
  61753. VULKAN_HPP_CONSTEXPR_14 PipelineExecutableStatisticValueKHR & setB32( VULKAN_HPP_NAMESPACE::Bool32 b32_ ) VULKAN_HPP_NOEXCEPT
  61754. {
  61755. b32 = b32_;
  61756. return *this;
  61757. }
  61758. VULKAN_HPP_CONSTEXPR_14 PipelineExecutableStatisticValueKHR & setI64( int64_t i64_ ) VULKAN_HPP_NOEXCEPT
  61759. {
  61760. i64 = i64_;
  61761. return *this;
  61762. }
  61763. VULKAN_HPP_CONSTEXPR_14 PipelineExecutableStatisticValueKHR & setU64( uint64_t u64_ ) VULKAN_HPP_NOEXCEPT
  61764. {
  61765. u64 = u64_;
  61766. return *this;
  61767. }
  61768. VULKAN_HPP_CONSTEXPR_14 PipelineExecutableStatisticValueKHR & setF64( double f64_ ) VULKAN_HPP_NOEXCEPT
  61769. {
  61770. f64 = f64_;
  61771. return *this;
  61772. }
  61773. #endif /*VULKAN_HPP_NO_UNION_SETTERS*/
  61774. operator VkPipelineExecutableStatisticValueKHR const &() const
  61775. {
  61776. return *reinterpret_cast<const VkPipelineExecutableStatisticValueKHR *>( this );
  61777. }
  61778. operator VkPipelineExecutableStatisticValueKHR &()
  61779. {
  61780. return *reinterpret_cast<VkPipelineExecutableStatisticValueKHR *>( this );
  61781. }
  61782. #ifdef VULKAN_HPP_HAS_UNRESTRICTED_UNIONS
  61783. VULKAN_HPP_NAMESPACE::Bool32 b32;
  61784. int64_t i64;
  61785. uint64_t u64;
  61786. double f64;
  61787. #else
  61788. VkBool32 b32;
  61789. int64_t i64;
  61790. uint64_t u64;
  61791. double f64;
  61792. #endif /*VULKAN_HPP_HAS_UNRESTRICTED_UNIONS*/
  61793. };
  61794. struct PipelineExecutableStatisticKHR
  61795. {
  61796. using NativeType = VkPipelineExecutableStatisticKHR;
  61797. static const bool allowDuplicate = false;
  61798. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineExecutableStatisticKHR;
  61799. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  61800. VULKAN_HPP_CONSTEXPR_14 PipelineExecutableStatisticKHR(
  61801. std::array<char, VK_MAX_DESCRIPTION_SIZE> const & name_ = {},
  61802. std::array<char, VK_MAX_DESCRIPTION_SIZE> const & description_ = {},
  61803. VULKAN_HPP_NAMESPACE::PipelineExecutableStatisticFormatKHR format_ = VULKAN_HPP_NAMESPACE::PipelineExecutableStatisticFormatKHR::eBool32,
  61804. VULKAN_HPP_NAMESPACE::PipelineExecutableStatisticValueKHR value_ = {},
  61805. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  61806. : pNext( pNext_ )
  61807. , name( name_ )
  61808. , description( description_ )
  61809. , format( format_ )
  61810. , value( value_ )
  61811. {
  61812. }
  61813. VULKAN_HPP_CONSTEXPR_14 PipelineExecutableStatisticKHR( PipelineExecutableStatisticKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  61814. PipelineExecutableStatisticKHR( VkPipelineExecutableStatisticKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  61815. : PipelineExecutableStatisticKHR( *reinterpret_cast<PipelineExecutableStatisticKHR const *>( &rhs ) )
  61816. {
  61817. }
  61818. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  61819. PipelineExecutableStatisticKHR & operator=( PipelineExecutableStatisticKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  61820. PipelineExecutableStatisticKHR & operator=( VkPipelineExecutableStatisticKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  61821. {
  61822. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PipelineExecutableStatisticKHR const *>( &rhs );
  61823. return *this;
  61824. }
  61825. operator VkPipelineExecutableStatisticKHR const &() const VULKAN_HPP_NOEXCEPT
  61826. {
  61827. return *reinterpret_cast<const VkPipelineExecutableStatisticKHR *>( this );
  61828. }
  61829. operator VkPipelineExecutableStatisticKHR &() VULKAN_HPP_NOEXCEPT
  61830. {
  61831. return *reinterpret_cast<VkPipelineExecutableStatisticKHR *>( this );
  61832. }
  61833. #if defined( VULKAN_HPP_USE_REFLECT )
  61834. # if 14 <= VULKAN_HPP_CPP_VERSION
  61835. auto
  61836. # else
  61837. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  61838. void * const &,
  61839. VULKAN_HPP_NAMESPACE::ArrayWrapper1D<char, VK_MAX_DESCRIPTION_SIZE> const &,
  61840. VULKAN_HPP_NAMESPACE::ArrayWrapper1D<char, VK_MAX_DESCRIPTION_SIZE> const &,
  61841. VULKAN_HPP_NAMESPACE::PipelineExecutableStatisticFormatKHR const &,
  61842. VULKAN_HPP_NAMESPACE::PipelineExecutableStatisticValueKHR const &>
  61843. # endif
  61844. reflect() const VULKAN_HPP_NOEXCEPT
  61845. {
  61846. return std::tie( sType, pNext, name, description, format, value );
  61847. }
  61848. #endif
  61849. public:
  61850. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineExecutableStatisticKHR;
  61851. void * pNext = {};
  61852. VULKAN_HPP_NAMESPACE::ArrayWrapper1D<char, VK_MAX_DESCRIPTION_SIZE> name = {};
  61853. VULKAN_HPP_NAMESPACE::ArrayWrapper1D<char, VK_MAX_DESCRIPTION_SIZE> description = {};
  61854. VULKAN_HPP_NAMESPACE::PipelineExecutableStatisticFormatKHR format = VULKAN_HPP_NAMESPACE::PipelineExecutableStatisticFormatKHR::eBool32;
  61855. VULKAN_HPP_NAMESPACE::PipelineExecutableStatisticValueKHR value = {};
  61856. };
  61857. template <>
  61858. struct CppType<StructureType, StructureType::ePipelineExecutableStatisticKHR>
  61859. {
  61860. using Type = PipelineExecutableStatisticKHR;
  61861. };
  61862. struct PipelineFragmentShadingRateEnumStateCreateInfoNV
  61863. {
  61864. using NativeType = VkPipelineFragmentShadingRateEnumStateCreateInfoNV;
  61865. static const bool allowDuplicate = false;
  61866. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineFragmentShadingRateEnumStateCreateInfoNV;
  61867. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  61868. VULKAN_HPP_CONSTEXPR_14 PipelineFragmentShadingRateEnumStateCreateInfoNV(
  61869. VULKAN_HPP_NAMESPACE::FragmentShadingRateTypeNV shadingRateType_ = VULKAN_HPP_NAMESPACE::FragmentShadingRateTypeNV::eFragmentSize,
  61870. VULKAN_HPP_NAMESPACE::FragmentShadingRateNV shadingRate_ = VULKAN_HPP_NAMESPACE::FragmentShadingRateNV::e1InvocationPerPixel,
  61871. std::array<VULKAN_HPP_NAMESPACE::FragmentShadingRateCombinerOpKHR, 2> const &
  61872. combinerOps_ = { { VULKAN_HPP_NAMESPACE::FragmentShadingRateCombinerOpKHR::eKeep, VULKAN_HPP_NAMESPACE::FragmentShadingRateCombinerOpKHR::eKeep } },
  61873. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  61874. : pNext( pNext_ )
  61875. , shadingRateType( shadingRateType_ )
  61876. , shadingRate( shadingRate_ )
  61877. , combinerOps( combinerOps_ )
  61878. {
  61879. }
  61880. VULKAN_HPP_CONSTEXPR_14
  61881. PipelineFragmentShadingRateEnumStateCreateInfoNV( PipelineFragmentShadingRateEnumStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  61882. PipelineFragmentShadingRateEnumStateCreateInfoNV( VkPipelineFragmentShadingRateEnumStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
  61883. : PipelineFragmentShadingRateEnumStateCreateInfoNV( *reinterpret_cast<PipelineFragmentShadingRateEnumStateCreateInfoNV const *>( &rhs ) )
  61884. {
  61885. }
  61886. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  61887. PipelineFragmentShadingRateEnumStateCreateInfoNV & operator=( PipelineFragmentShadingRateEnumStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  61888. PipelineFragmentShadingRateEnumStateCreateInfoNV & operator=( VkPipelineFragmentShadingRateEnumStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
  61889. {
  61890. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PipelineFragmentShadingRateEnumStateCreateInfoNV const *>( &rhs );
  61891. return *this;
  61892. }
  61893. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  61894. VULKAN_HPP_CONSTEXPR_14 PipelineFragmentShadingRateEnumStateCreateInfoNV & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  61895. {
  61896. pNext = pNext_;
  61897. return *this;
  61898. }
  61899. VULKAN_HPP_CONSTEXPR_14 PipelineFragmentShadingRateEnumStateCreateInfoNV &
  61900. setShadingRateType( VULKAN_HPP_NAMESPACE::FragmentShadingRateTypeNV shadingRateType_ ) VULKAN_HPP_NOEXCEPT
  61901. {
  61902. shadingRateType = shadingRateType_;
  61903. return *this;
  61904. }
  61905. VULKAN_HPP_CONSTEXPR_14 PipelineFragmentShadingRateEnumStateCreateInfoNV &
  61906. setShadingRate( VULKAN_HPP_NAMESPACE::FragmentShadingRateNV shadingRate_ ) VULKAN_HPP_NOEXCEPT
  61907. {
  61908. shadingRate = shadingRate_;
  61909. return *this;
  61910. }
  61911. VULKAN_HPP_CONSTEXPR_14 PipelineFragmentShadingRateEnumStateCreateInfoNV &
  61912. setCombinerOps( std::array<VULKAN_HPP_NAMESPACE::FragmentShadingRateCombinerOpKHR, 2> combinerOps_ ) VULKAN_HPP_NOEXCEPT
  61913. {
  61914. combinerOps = combinerOps_;
  61915. return *this;
  61916. }
  61917. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  61918. operator VkPipelineFragmentShadingRateEnumStateCreateInfoNV const &() const VULKAN_HPP_NOEXCEPT
  61919. {
  61920. return *reinterpret_cast<const VkPipelineFragmentShadingRateEnumStateCreateInfoNV *>( this );
  61921. }
  61922. operator VkPipelineFragmentShadingRateEnumStateCreateInfoNV &() VULKAN_HPP_NOEXCEPT
  61923. {
  61924. return *reinterpret_cast<VkPipelineFragmentShadingRateEnumStateCreateInfoNV *>( this );
  61925. }
  61926. #if defined( VULKAN_HPP_USE_REFLECT )
  61927. # if 14 <= VULKAN_HPP_CPP_VERSION
  61928. auto
  61929. # else
  61930. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  61931. const void * const &,
  61932. VULKAN_HPP_NAMESPACE::FragmentShadingRateTypeNV const &,
  61933. VULKAN_HPP_NAMESPACE::FragmentShadingRateNV const &,
  61934. VULKAN_HPP_NAMESPACE::ArrayWrapper1D<VULKAN_HPP_NAMESPACE::FragmentShadingRateCombinerOpKHR, 2> const &>
  61935. # endif
  61936. reflect() const VULKAN_HPP_NOEXCEPT
  61937. {
  61938. return std::tie( sType, pNext, shadingRateType, shadingRate, combinerOps );
  61939. }
  61940. #endif
  61941. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  61942. auto operator<=>( PipelineFragmentShadingRateEnumStateCreateInfoNV const & ) const = default;
  61943. #else
  61944. bool operator==( PipelineFragmentShadingRateEnumStateCreateInfoNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  61945. {
  61946. # if defined( VULKAN_HPP_USE_REFLECT )
  61947. return this->reflect() == rhs.reflect();
  61948. # else
  61949. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( shadingRateType == rhs.shadingRateType ) && ( shadingRate == rhs.shadingRate ) &&
  61950. ( combinerOps == rhs.combinerOps );
  61951. # endif
  61952. }
  61953. bool operator!=( PipelineFragmentShadingRateEnumStateCreateInfoNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  61954. {
  61955. return !operator==( rhs );
  61956. }
  61957. #endif
  61958. public:
  61959. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineFragmentShadingRateEnumStateCreateInfoNV;
  61960. const void * pNext = {};
  61961. VULKAN_HPP_NAMESPACE::FragmentShadingRateTypeNV shadingRateType = VULKAN_HPP_NAMESPACE::FragmentShadingRateTypeNV::eFragmentSize;
  61962. VULKAN_HPP_NAMESPACE::FragmentShadingRateNV shadingRate = VULKAN_HPP_NAMESPACE::FragmentShadingRateNV::e1InvocationPerPixel;
  61963. VULKAN_HPP_NAMESPACE::ArrayWrapper1D<VULKAN_HPP_NAMESPACE::FragmentShadingRateCombinerOpKHR, 2> combinerOps = {};
  61964. };
  61965. template <>
  61966. struct CppType<StructureType, StructureType::ePipelineFragmentShadingRateEnumStateCreateInfoNV>
  61967. {
  61968. using Type = PipelineFragmentShadingRateEnumStateCreateInfoNV;
  61969. };
  61970. struct PipelineFragmentShadingRateStateCreateInfoKHR
  61971. {
  61972. using NativeType = VkPipelineFragmentShadingRateStateCreateInfoKHR;
  61973. static const bool allowDuplicate = false;
  61974. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineFragmentShadingRateStateCreateInfoKHR;
  61975. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  61976. VULKAN_HPP_CONSTEXPR_14 PipelineFragmentShadingRateStateCreateInfoKHR(
  61977. VULKAN_HPP_NAMESPACE::Extent2D fragmentSize_ = {},
  61978. std::array<VULKAN_HPP_NAMESPACE::FragmentShadingRateCombinerOpKHR, 2> const &
  61979. combinerOps_ = { { VULKAN_HPP_NAMESPACE::FragmentShadingRateCombinerOpKHR::eKeep, VULKAN_HPP_NAMESPACE::FragmentShadingRateCombinerOpKHR::eKeep } },
  61980. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  61981. : pNext( pNext_ )
  61982. , fragmentSize( fragmentSize_ )
  61983. , combinerOps( combinerOps_ )
  61984. {
  61985. }
  61986. VULKAN_HPP_CONSTEXPR_14
  61987. PipelineFragmentShadingRateStateCreateInfoKHR( PipelineFragmentShadingRateStateCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  61988. PipelineFragmentShadingRateStateCreateInfoKHR( VkPipelineFragmentShadingRateStateCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  61989. : PipelineFragmentShadingRateStateCreateInfoKHR( *reinterpret_cast<PipelineFragmentShadingRateStateCreateInfoKHR const *>( &rhs ) )
  61990. {
  61991. }
  61992. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  61993. PipelineFragmentShadingRateStateCreateInfoKHR & operator=( PipelineFragmentShadingRateStateCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  61994. PipelineFragmentShadingRateStateCreateInfoKHR & operator=( VkPipelineFragmentShadingRateStateCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  61995. {
  61996. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PipelineFragmentShadingRateStateCreateInfoKHR const *>( &rhs );
  61997. return *this;
  61998. }
  61999. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  62000. VULKAN_HPP_CONSTEXPR_14 PipelineFragmentShadingRateStateCreateInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  62001. {
  62002. pNext = pNext_;
  62003. return *this;
  62004. }
  62005. VULKAN_HPP_CONSTEXPR_14 PipelineFragmentShadingRateStateCreateInfoKHR &
  62006. setFragmentSize( VULKAN_HPP_NAMESPACE::Extent2D const & fragmentSize_ ) VULKAN_HPP_NOEXCEPT
  62007. {
  62008. fragmentSize = fragmentSize_;
  62009. return *this;
  62010. }
  62011. VULKAN_HPP_CONSTEXPR_14 PipelineFragmentShadingRateStateCreateInfoKHR &
  62012. setCombinerOps( std::array<VULKAN_HPP_NAMESPACE::FragmentShadingRateCombinerOpKHR, 2> combinerOps_ ) VULKAN_HPP_NOEXCEPT
  62013. {
  62014. combinerOps = combinerOps_;
  62015. return *this;
  62016. }
  62017. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  62018. operator VkPipelineFragmentShadingRateStateCreateInfoKHR const &() const VULKAN_HPP_NOEXCEPT
  62019. {
  62020. return *reinterpret_cast<const VkPipelineFragmentShadingRateStateCreateInfoKHR *>( this );
  62021. }
  62022. operator VkPipelineFragmentShadingRateStateCreateInfoKHR &() VULKAN_HPP_NOEXCEPT
  62023. {
  62024. return *reinterpret_cast<VkPipelineFragmentShadingRateStateCreateInfoKHR *>( this );
  62025. }
  62026. #if defined( VULKAN_HPP_USE_REFLECT )
  62027. # if 14 <= VULKAN_HPP_CPP_VERSION
  62028. auto
  62029. # else
  62030. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  62031. const void * const &,
  62032. VULKAN_HPP_NAMESPACE::Extent2D const &,
  62033. VULKAN_HPP_NAMESPACE::ArrayWrapper1D<VULKAN_HPP_NAMESPACE::FragmentShadingRateCombinerOpKHR, 2> const &>
  62034. # endif
  62035. reflect() const VULKAN_HPP_NOEXCEPT
  62036. {
  62037. return std::tie( sType, pNext, fragmentSize, combinerOps );
  62038. }
  62039. #endif
  62040. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  62041. auto operator<=>( PipelineFragmentShadingRateStateCreateInfoKHR const & ) const = default;
  62042. #else
  62043. bool operator==( PipelineFragmentShadingRateStateCreateInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  62044. {
  62045. # if defined( VULKAN_HPP_USE_REFLECT )
  62046. return this->reflect() == rhs.reflect();
  62047. # else
  62048. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( fragmentSize == rhs.fragmentSize ) && ( combinerOps == rhs.combinerOps );
  62049. # endif
  62050. }
  62051. bool operator!=( PipelineFragmentShadingRateStateCreateInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  62052. {
  62053. return !operator==( rhs );
  62054. }
  62055. #endif
  62056. public:
  62057. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineFragmentShadingRateStateCreateInfoKHR;
  62058. const void * pNext = {};
  62059. VULKAN_HPP_NAMESPACE::Extent2D fragmentSize = {};
  62060. VULKAN_HPP_NAMESPACE::ArrayWrapper1D<VULKAN_HPP_NAMESPACE::FragmentShadingRateCombinerOpKHR, 2> combinerOps = {};
  62061. };
  62062. template <>
  62063. struct CppType<StructureType, StructureType::ePipelineFragmentShadingRateStateCreateInfoKHR>
  62064. {
  62065. using Type = PipelineFragmentShadingRateStateCreateInfoKHR;
  62066. };
  62067. struct PipelineInfoKHR
  62068. {
  62069. using NativeType = VkPipelineInfoKHR;
  62070. static const bool allowDuplicate = false;
  62071. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineInfoKHR;
  62072. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  62073. VULKAN_HPP_CONSTEXPR PipelineInfoKHR( VULKAN_HPP_NAMESPACE::Pipeline pipeline_ = {}, const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  62074. : pNext( pNext_ )
  62075. , pipeline( pipeline_ )
  62076. {
  62077. }
  62078. VULKAN_HPP_CONSTEXPR PipelineInfoKHR( PipelineInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  62079. PipelineInfoKHR( VkPipelineInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT : PipelineInfoKHR( *reinterpret_cast<PipelineInfoKHR const *>( &rhs ) ) {}
  62080. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  62081. PipelineInfoKHR & operator=( PipelineInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  62082. PipelineInfoKHR & operator=( VkPipelineInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  62083. {
  62084. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PipelineInfoKHR const *>( &rhs );
  62085. return *this;
  62086. }
  62087. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  62088. VULKAN_HPP_CONSTEXPR_14 PipelineInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  62089. {
  62090. pNext = pNext_;
  62091. return *this;
  62092. }
  62093. VULKAN_HPP_CONSTEXPR_14 PipelineInfoKHR & setPipeline( VULKAN_HPP_NAMESPACE::Pipeline pipeline_ ) VULKAN_HPP_NOEXCEPT
  62094. {
  62095. pipeline = pipeline_;
  62096. return *this;
  62097. }
  62098. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  62099. operator VkPipelineInfoKHR const &() const VULKAN_HPP_NOEXCEPT
  62100. {
  62101. return *reinterpret_cast<const VkPipelineInfoKHR *>( this );
  62102. }
  62103. operator VkPipelineInfoKHR &() VULKAN_HPP_NOEXCEPT
  62104. {
  62105. return *reinterpret_cast<VkPipelineInfoKHR *>( this );
  62106. }
  62107. #if defined( VULKAN_HPP_USE_REFLECT )
  62108. # if 14 <= VULKAN_HPP_CPP_VERSION
  62109. auto
  62110. # else
  62111. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::Pipeline const &>
  62112. # endif
  62113. reflect() const VULKAN_HPP_NOEXCEPT
  62114. {
  62115. return std::tie( sType, pNext, pipeline );
  62116. }
  62117. #endif
  62118. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  62119. auto operator<=>( PipelineInfoKHR const & ) const = default;
  62120. #else
  62121. bool operator==( PipelineInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  62122. {
  62123. # if defined( VULKAN_HPP_USE_REFLECT )
  62124. return this->reflect() == rhs.reflect();
  62125. # else
  62126. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( pipeline == rhs.pipeline );
  62127. # endif
  62128. }
  62129. bool operator!=( PipelineInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  62130. {
  62131. return !operator==( rhs );
  62132. }
  62133. #endif
  62134. public:
  62135. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineInfoKHR;
  62136. const void * pNext = {};
  62137. VULKAN_HPP_NAMESPACE::Pipeline pipeline = {};
  62138. };
  62139. template <>
  62140. struct CppType<StructureType, StructureType::ePipelineInfoKHR>
  62141. {
  62142. using Type = PipelineInfoKHR;
  62143. };
  62144. using PipelineInfoEXT = PipelineInfoKHR;
  62145. struct PushConstantRange
  62146. {
  62147. using NativeType = VkPushConstantRange;
  62148. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  62149. VULKAN_HPP_CONSTEXPR
  62150. PushConstantRange( VULKAN_HPP_NAMESPACE::ShaderStageFlags stageFlags_ = {}, uint32_t offset_ = {}, uint32_t size_ = {} ) VULKAN_HPP_NOEXCEPT
  62151. : stageFlags( stageFlags_ )
  62152. , offset( offset_ )
  62153. , size( size_ )
  62154. {
  62155. }
  62156. VULKAN_HPP_CONSTEXPR PushConstantRange( PushConstantRange const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  62157. PushConstantRange( VkPushConstantRange const & rhs ) VULKAN_HPP_NOEXCEPT : PushConstantRange( *reinterpret_cast<PushConstantRange const *>( &rhs ) ) {}
  62158. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  62159. PushConstantRange & operator=( PushConstantRange const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  62160. PushConstantRange & operator=( VkPushConstantRange const & rhs ) VULKAN_HPP_NOEXCEPT
  62161. {
  62162. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PushConstantRange const *>( &rhs );
  62163. return *this;
  62164. }
  62165. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  62166. VULKAN_HPP_CONSTEXPR_14 PushConstantRange & setStageFlags( VULKAN_HPP_NAMESPACE::ShaderStageFlags stageFlags_ ) VULKAN_HPP_NOEXCEPT
  62167. {
  62168. stageFlags = stageFlags_;
  62169. return *this;
  62170. }
  62171. VULKAN_HPP_CONSTEXPR_14 PushConstantRange & setOffset( uint32_t offset_ ) VULKAN_HPP_NOEXCEPT
  62172. {
  62173. offset = offset_;
  62174. return *this;
  62175. }
  62176. VULKAN_HPP_CONSTEXPR_14 PushConstantRange & setSize( uint32_t size_ ) VULKAN_HPP_NOEXCEPT
  62177. {
  62178. size = size_;
  62179. return *this;
  62180. }
  62181. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  62182. operator VkPushConstantRange const &() const VULKAN_HPP_NOEXCEPT
  62183. {
  62184. return *reinterpret_cast<const VkPushConstantRange *>( this );
  62185. }
  62186. operator VkPushConstantRange &() VULKAN_HPP_NOEXCEPT
  62187. {
  62188. return *reinterpret_cast<VkPushConstantRange *>( this );
  62189. }
  62190. #if defined( VULKAN_HPP_USE_REFLECT )
  62191. # if 14 <= VULKAN_HPP_CPP_VERSION
  62192. auto
  62193. # else
  62194. std::tuple<VULKAN_HPP_NAMESPACE::ShaderStageFlags const &, uint32_t const &, uint32_t const &>
  62195. # endif
  62196. reflect() const VULKAN_HPP_NOEXCEPT
  62197. {
  62198. return std::tie( stageFlags, offset, size );
  62199. }
  62200. #endif
  62201. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  62202. auto operator<=>( PushConstantRange const & ) const = default;
  62203. #else
  62204. bool operator==( PushConstantRange const & rhs ) const VULKAN_HPP_NOEXCEPT
  62205. {
  62206. # if defined( VULKAN_HPP_USE_REFLECT )
  62207. return this->reflect() == rhs.reflect();
  62208. # else
  62209. return ( stageFlags == rhs.stageFlags ) && ( offset == rhs.offset ) && ( size == rhs.size );
  62210. # endif
  62211. }
  62212. bool operator!=( PushConstantRange const & rhs ) const VULKAN_HPP_NOEXCEPT
  62213. {
  62214. return !operator==( rhs );
  62215. }
  62216. #endif
  62217. public:
  62218. VULKAN_HPP_NAMESPACE::ShaderStageFlags stageFlags = {};
  62219. uint32_t offset = {};
  62220. uint32_t size = {};
  62221. };
  62222. struct PipelineLayoutCreateInfo
  62223. {
  62224. using NativeType = VkPipelineLayoutCreateInfo;
  62225. static const bool allowDuplicate = false;
  62226. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineLayoutCreateInfo;
  62227. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  62228. VULKAN_HPP_CONSTEXPR PipelineLayoutCreateInfo( VULKAN_HPP_NAMESPACE::PipelineLayoutCreateFlags flags_ = {},
  62229. uint32_t setLayoutCount_ = {},
  62230. const VULKAN_HPP_NAMESPACE::DescriptorSetLayout * pSetLayouts_ = {},
  62231. uint32_t pushConstantRangeCount_ = {},
  62232. const VULKAN_HPP_NAMESPACE::PushConstantRange * pPushConstantRanges_ = {},
  62233. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  62234. : pNext( pNext_ )
  62235. , flags( flags_ )
  62236. , setLayoutCount( setLayoutCount_ )
  62237. , pSetLayouts( pSetLayouts_ )
  62238. , pushConstantRangeCount( pushConstantRangeCount_ )
  62239. , pPushConstantRanges( pPushConstantRanges_ )
  62240. {
  62241. }
  62242. VULKAN_HPP_CONSTEXPR PipelineLayoutCreateInfo( PipelineLayoutCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  62243. PipelineLayoutCreateInfo( VkPipelineLayoutCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
  62244. : PipelineLayoutCreateInfo( *reinterpret_cast<PipelineLayoutCreateInfo const *>( &rhs ) )
  62245. {
  62246. }
  62247. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  62248. PipelineLayoutCreateInfo( VULKAN_HPP_NAMESPACE::PipelineLayoutCreateFlags flags_,
  62249. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::DescriptorSetLayout> const & setLayouts_,
  62250. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::PushConstantRange> const & pushConstantRanges_ = {},
  62251. const void * pNext_ = nullptr )
  62252. : pNext( pNext_ )
  62253. , flags( flags_ )
  62254. , setLayoutCount( static_cast<uint32_t>( setLayouts_.size() ) )
  62255. , pSetLayouts( setLayouts_.data() )
  62256. , pushConstantRangeCount( static_cast<uint32_t>( pushConstantRanges_.size() ) )
  62257. , pPushConstantRanges( pushConstantRanges_.data() )
  62258. {
  62259. }
  62260. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  62261. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  62262. PipelineLayoutCreateInfo & operator=( PipelineLayoutCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  62263. PipelineLayoutCreateInfo & operator=( VkPipelineLayoutCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
  62264. {
  62265. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PipelineLayoutCreateInfo const *>( &rhs );
  62266. return *this;
  62267. }
  62268. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  62269. VULKAN_HPP_CONSTEXPR_14 PipelineLayoutCreateInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  62270. {
  62271. pNext = pNext_;
  62272. return *this;
  62273. }
  62274. VULKAN_HPP_CONSTEXPR_14 PipelineLayoutCreateInfo & setFlags( VULKAN_HPP_NAMESPACE::PipelineLayoutCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT
  62275. {
  62276. flags = flags_;
  62277. return *this;
  62278. }
  62279. VULKAN_HPP_CONSTEXPR_14 PipelineLayoutCreateInfo & setSetLayoutCount( uint32_t setLayoutCount_ ) VULKAN_HPP_NOEXCEPT
  62280. {
  62281. setLayoutCount = setLayoutCount_;
  62282. return *this;
  62283. }
  62284. VULKAN_HPP_CONSTEXPR_14 PipelineLayoutCreateInfo & setPSetLayouts( const VULKAN_HPP_NAMESPACE::DescriptorSetLayout * pSetLayouts_ ) VULKAN_HPP_NOEXCEPT
  62285. {
  62286. pSetLayouts = pSetLayouts_;
  62287. return *this;
  62288. }
  62289. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  62290. PipelineLayoutCreateInfo &
  62291. setSetLayouts( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::DescriptorSetLayout> const & setLayouts_ ) VULKAN_HPP_NOEXCEPT
  62292. {
  62293. setLayoutCount = static_cast<uint32_t>( setLayouts_.size() );
  62294. pSetLayouts = setLayouts_.data();
  62295. return *this;
  62296. }
  62297. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  62298. VULKAN_HPP_CONSTEXPR_14 PipelineLayoutCreateInfo & setPushConstantRangeCount( uint32_t pushConstantRangeCount_ ) VULKAN_HPP_NOEXCEPT
  62299. {
  62300. pushConstantRangeCount = pushConstantRangeCount_;
  62301. return *this;
  62302. }
  62303. VULKAN_HPP_CONSTEXPR_14 PipelineLayoutCreateInfo &
  62304. setPPushConstantRanges( const VULKAN_HPP_NAMESPACE::PushConstantRange * pPushConstantRanges_ ) VULKAN_HPP_NOEXCEPT
  62305. {
  62306. pPushConstantRanges = pPushConstantRanges_;
  62307. return *this;
  62308. }
  62309. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  62310. PipelineLayoutCreateInfo & setPushConstantRanges(
  62311. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::PushConstantRange> const & pushConstantRanges_ ) VULKAN_HPP_NOEXCEPT
  62312. {
  62313. pushConstantRangeCount = static_cast<uint32_t>( pushConstantRanges_.size() );
  62314. pPushConstantRanges = pushConstantRanges_.data();
  62315. return *this;
  62316. }
  62317. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  62318. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  62319. operator VkPipelineLayoutCreateInfo const &() const VULKAN_HPP_NOEXCEPT
  62320. {
  62321. return *reinterpret_cast<const VkPipelineLayoutCreateInfo *>( this );
  62322. }
  62323. operator VkPipelineLayoutCreateInfo &() VULKAN_HPP_NOEXCEPT
  62324. {
  62325. return *reinterpret_cast<VkPipelineLayoutCreateInfo *>( this );
  62326. }
  62327. #if defined( VULKAN_HPP_USE_REFLECT )
  62328. # if 14 <= VULKAN_HPP_CPP_VERSION
  62329. auto
  62330. # else
  62331. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  62332. const void * const &,
  62333. VULKAN_HPP_NAMESPACE::PipelineLayoutCreateFlags const &,
  62334. uint32_t const &,
  62335. const VULKAN_HPP_NAMESPACE::DescriptorSetLayout * const &,
  62336. uint32_t const &,
  62337. const VULKAN_HPP_NAMESPACE::PushConstantRange * const &>
  62338. # endif
  62339. reflect() const VULKAN_HPP_NOEXCEPT
  62340. {
  62341. return std::tie( sType, pNext, flags, setLayoutCount, pSetLayouts, pushConstantRangeCount, pPushConstantRanges );
  62342. }
  62343. #endif
  62344. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  62345. auto operator<=>( PipelineLayoutCreateInfo const & ) const = default;
  62346. #else
  62347. bool operator==( PipelineLayoutCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  62348. {
  62349. # if defined( VULKAN_HPP_USE_REFLECT )
  62350. return this->reflect() == rhs.reflect();
  62351. # else
  62352. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( flags == rhs.flags ) && ( setLayoutCount == rhs.setLayoutCount ) &&
  62353. ( pSetLayouts == rhs.pSetLayouts ) && ( pushConstantRangeCount == rhs.pushConstantRangeCount ) &&
  62354. ( pPushConstantRanges == rhs.pPushConstantRanges );
  62355. # endif
  62356. }
  62357. bool operator!=( PipelineLayoutCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  62358. {
  62359. return !operator==( rhs );
  62360. }
  62361. #endif
  62362. public:
  62363. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineLayoutCreateInfo;
  62364. const void * pNext = {};
  62365. VULKAN_HPP_NAMESPACE::PipelineLayoutCreateFlags flags = {};
  62366. uint32_t setLayoutCount = {};
  62367. const VULKAN_HPP_NAMESPACE::DescriptorSetLayout * pSetLayouts = {};
  62368. uint32_t pushConstantRangeCount = {};
  62369. const VULKAN_HPP_NAMESPACE::PushConstantRange * pPushConstantRanges = {};
  62370. };
  62371. template <>
  62372. struct CppType<StructureType, StructureType::ePipelineLayoutCreateInfo>
  62373. {
  62374. using Type = PipelineLayoutCreateInfo;
  62375. };
  62376. struct PipelineLibraryCreateInfoKHR
  62377. {
  62378. using NativeType = VkPipelineLibraryCreateInfoKHR;
  62379. static const bool allowDuplicate = false;
  62380. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineLibraryCreateInfoKHR;
  62381. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  62382. VULKAN_HPP_CONSTEXPR PipelineLibraryCreateInfoKHR( uint32_t libraryCount_ = {},
  62383. const VULKAN_HPP_NAMESPACE::Pipeline * pLibraries_ = {},
  62384. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  62385. : pNext( pNext_ )
  62386. , libraryCount( libraryCount_ )
  62387. , pLibraries( pLibraries_ )
  62388. {
  62389. }
  62390. VULKAN_HPP_CONSTEXPR PipelineLibraryCreateInfoKHR( PipelineLibraryCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  62391. PipelineLibraryCreateInfoKHR( VkPipelineLibraryCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  62392. : PipelineLibraryCreateInfoKHR( *reinterpret_cast<PipelineLibraryCreateInfoKHR const *>( &rhs ) )
  62393. {
  62394. }
  62395. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  62396. PipelineLibraryCreateInfoKHR( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::Pipeline> const & libraries_,
  62397. const void * pNext_ = nullptr )
  62398. : pNext( pNext_ ), libraryCount( static_cast<uint32_t>( libraries_.size() ) ), pLibraries( libraries_.data() )
  62399. {
  62400. }
  62401. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  62402. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  62403. PipelineLibraryCreateInfoKHR & operator=( PipelineLibraryCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  62404. PipelineLibraryCreateInfoKHR & operator=( VkPipelineLibraryCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  62405. {
  62406. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PipelineLibraryCreateInfoKHR const *>( &rhs );
  62407. return *this;
  62408. }
  62409. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  62410. VULKAN_HPP_CONSTEXPR_14 PipelineLibraryCreateInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  62411. {
  62412. pNext = pNext_;
  62413. return *this;
  62414. }
  62415. VULKAN_HPP_CONSTEXPR_14 PipelineLibraryCreateInfoKHR & setLibraryCount( uint32_t libraryCount_ ) VULKAN_HPP_NOEXCEPT
  62416. {
  62417. libraryCount = libraryCount_;
  62418. return *this;
  62419. }
  62420. VULKAN_HPP_CONSTEXPR_14 PipelineLibraryCreateInfoKHR & setPLibraries( const VULKAN_HPP_NAMESPACE::Pipeline * pLibraries_ ) VULKAN_HPP_NOEXCEPT
  62421. {
  62422. pLibraries = pLibraries_;
  62423. return *this;
  62424. }
  62425. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  62426. PipelineLibraryCreateInfoKHR &
  62427. setLibraries( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::Pipeline> const & libraries_ ) VULKAN_HPP_NOEXCEPT
  62428. {
  62429. libraryCount = static_cast<uint32_t>( libraries_.size() );
  62430. pLibraries = libraries_.data();
  62431. return *this;
  62432. }
  62433. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  62434. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  62435. operator VkPipelineLibraryCreateInfoKHR const &() const VULKAN_HPP_NOEXCEPT
  62436. {
  62437. return *reinterpret_cast<const VkPipelineLibraryCreateInfoKHR *>( this );
  62438. }
  62439. operator VkPipelineLibraryCreateInfoKHR &() VULKAN_HPP_NOEXCEPT
  62440. {
  62441. return *reinterpret_cast<VkPipelineLibraryCreateInfoKHR *>( this );
  62442. }
  62443. #if defined( VULKAN_HPP_USE_REFLECT )
  62444. # if 14 <= VULKAN_HPP_CPP_VERSION
  62445. auto
  62446. # else
  62447. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, uint32_t const &, const VULKAN_HPP_NAMESPACE::Pipeline * const &>
  62448. # endif
  62449. reflect() const VULKAN_HPP_NOEXCEPT
  62450. {
  62451. return std::tie( sType, pNext, libraryCount, pLibraries );
  62452. }
  62453. #endif
  62454. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  62455. auto operator<=>( PipelineLibraryCreateInfoKHR const & ) const = default;
  62456. #else
  62457. bool operator==( PipelineLibraryCreateInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  62458. {
  62459. # if defined( VULKAN_HPP_USE_REFLECT )
  62460. return this->reflect() == rhs.reflect();
  62461. # else
  62462. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( libraryCount == rhs.libraryCount ) && ( pLibraries == rhs.pLibraries );
  62463. # endif
  62464. }
  62465. bool operator!=( PipelineLibraryCreateInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  62466. {
  62467. return !operator==( rhs );
  62468. }
  62469. #endif
  62470. public:
  62471. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineLibraryCreateInfoKHR;
  62472. const void * pNext = {};
  62473. uint32_t libraryCount = {};
  62474. const VULKAN_HPP_NAMESPACE::Pipeline * pLibraries = {};
  62475. };
  62476. template <>
  62477. struct CppType<StructureType, StructureType::ePipelineLibraryCreateInfoKHR>
  62478. {
  62479. using Type = PipelineLibraryCreateInfoKHR;
  62480. };
  62481. struct PipelinePropertiesIdentifierEXT
  62482. {
  62483. using NativeType = VkPipelinePropertiesIdentifierEXT;
  62484. static const bool allowDuplicate = false;
  62485. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelinePropertiesIdentifierEXT;
  62486. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  62487. VULKAN_HPP_CONSTEXPR_14 PipelinePropertiesIdentifierEXT( std::array<uint8_t, VK_UUID_SIZE> const & pipelineIdentifier_ = {},
  62488. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  62489. : pNext( pNext_ )
  62490. , pipelineIdentifier( pipelineIdentifier_ )
  62491. {
  62492. }
  62493. VULKAN_HPP_CONSTEXPR_14 PipelinePropertiesIdentifierEXT( PipelinePropertiesIdentifierEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  62494. PipelinePropertiesIdentifierEXT( VkPipelinePropertiesIdentifierEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  62495. : PipelinePropertiesIdentifierEXT( *reinterpret_cast<PipelinePropertiesIdentifierEXT const *>( &rhs ) )
  62496. {
  62497. }
  62498. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  62499. PipelinePropertiesIdentifierEXT & operator=( PipelinePropertiesIdentifierEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  62500. PipelinePropertiesIdentifierEXT & operator=( VkPipelinePropertiesIdentifierEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  62501. {
  62502. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PipelinePropertiesIdentifierEXT const *>( &rhs );
  62503. return *this;
  62504. }
  62505. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  62506. VULKAN_HPP_CONSTEXPR_14 PipelinePropertiesIdentifierEXT & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
  62507. {
  62508. pNext = pNext_;
  62509. return *this;
  62510. }
  62511. VULKAN_HPP_CONSTEXPR_14 PipelinePropertiesIdentifierEXT & setPipelineIdentifier( std::array<uint8_t, VK_UUID_SIZE> pipelineIdentifier_ ) VULKAN_HPP_NOEXCEPT
  62512. {
  62513. pipelineIdentifier = pipelineIdentifier_;
  62514. return *this;
  62515. }
  62516. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  62517. operator VkPipelinePropertiesIdentifierEXT const &() const VULKAN_HPP_NOEXCEPT
  62518. {
  62519. return *reinterpret_cast<const VkPipelinePropertiesIdentifierEXT *>( this );
  62520. }
  62521. operator VkPipelinePropertiesIdentifierEXT &() VULKAN_HPP_NOEXCEPT
  62522. {
  62523. return *reinterpret_cast<VkPipelinePropertiesIdentifierEXT *>( this );
  62524. }
  62525. #if defined( VULKAN_HPP_USE_REFLECT )
  62526. # if 14 <= VULKAN_HPP_CPP_VERSION
  62527. auto
  62528. # else
  62529. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::ArrayWrapper1D<uint8_t, VK_UUID_SIZE> const &>
  62530. # endif
  62531. reflect() const VULKAN_HPP_NOEXCEPT
  62532. {
  62533. return std::tie( sType, pNext, pipelineIdentifier );
  62534. }
  62535. #endif
  62536. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  62537. auto operator<=>( PipelinePropertiesIdentifierEXT const & ) const = default;
  62538. #else
  62539. bool operator==( PipelinePropertiesIdentifierEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  62540. {
  62541. # if defined( VULKAN_HPP_USE_REFLECT )
  62542. return this->reflect() == rhs.reflect();
  62543. # else
  62544. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( pipelineIdentifier == rhs.pipelineIdentifier );
  62545. # endif
  62546. }
  62547. bool operator!=( PipelinePropertiesIdentifierEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  62548. {
  62549. return !operator==( rhs );
  62550. }
  62551. #endif
  62552. public:
  62553. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelinePropertiesIdentifierEXT;
  62554. void * pNext = {};
  62555. VULKAN_HPP_NAMESPACE::ArrayWrapper1D<uint8_t, VK_UUID_SIZE> pipelineIdentifier = {};
  62556. };
  62557. template <>
  62558. struct CppType<StructureType, StructureType::ePipelinePropertiesIdentifierEXT>
  62559. {
  62560. using Type = PipelinePropertiesIdentifierEXT;
  62561. };
  62562. struct PipelineRasterizationConservativeStateCreateInfoEXT
  62563. {
  62564. using NativeType = VkPipelineRasterizationConservativeStateCreateInfoEXT;
  62565. static const bool allowDuplicate = false;
  62566. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineRasterizationConservativeStateCreateInfoEXT;
  62567. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  62568. VULKAN_HPP_CONSTEXPR PipelineRasterizationConservativeStateCreateInfoEXT(
  62569. VULKAN_HPP_NAMESPACE::PipelineRasterizationConservativeStateCreateFlagsEXT flags_ = {},
  62570. VULKAN_HPP_NAMESPACE::ConservativeRasterizationModeEXT conservativeRasterizationMode_ = VULKAN_HPP_NAMESPACE::ConservativeRasterizationModeEXT::eDisabled,
  62571. float extraPrimitiveOverestimationSize_ = {},
  62572. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  62573. : pNext( pNext_ )
  62574. , flags( flags_ )
  62575. , conservativeRasterizationMode( conservativeRasterizationMode_ )
  62576. , extraPrimitiveOverestimationSize( extraPrimitiveOverestimationSize_ )
  62577. {
  62578. }
  62579. VULKAN_HPP_CONSTEXPR
  62580. PipelineRasterizationConservativeStateCreateInfoEXT( PipelineRasterizationConservativeStateCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  62581. PipelineRasterizationConservativeStateCreateInfoEXT( VkPipelineRasterizationConservativeStateCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  62582. : PipelineRasterizationConservativeStateCreateInfoEXT( *reinterpret_cast<PipelineRasterizationConservativeStateCreateInfoEXT const *>( &rhs ) )
  62583. {
  62584. }
  62585. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  62586. PipelineRasterizationConservativeStateCreateInfoEXT &
  62587. operator=( PipelineRasterizationConservativeStateCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  62588. PipelineRasterizationConservativeStateCreateInfoEXT & operator=( VkPipelineRasterizationConservativeStateCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  62589. {
  62590. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PipelineRasterizationConservativeStateCreateInfoEXT const *>( &rhs );
  62591. return *this;
  62592. }
  62593. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  62594. VULKAN_HPP_CONSTEXPR_14 PipelineRasterizationConservativeStateCreateInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  62595. {
  62596. pNext = pNext_;
  62597. return *this;
  62598. }
  62599. VULKAN_HPP_CONSTEXPR_14 PipelineRasterizationConservativeStateCreateInfoEXT &
  62600. setFlags( VULKAN_HPP_NAMESPACE::PipelineRasterizationConservativeStateCreateFlagsEXT flags_ ) VULKAN_HPP_NOEXCEPT
  62601. {
  62602. flags = flags_;
  62603. return *this;
  62604. }
  62605. VULKAN_HPP_CONSTEXPR_14 PipelineRasterizationConservativeStateCreateInfoEXT &
  62606. setConservativeRasterizationMode( VULKAN_HPP_NAMESPACE::ConservativeRasterizationModeEXT conservativeRasterizationMode_ ) VULKAN_HPP_NOEXCEPT
  62607. {
  62608. conservativeRasterizationMode = conservativeRasterizationMode_;
  62609. return *this;
  62610. }
  62611. VULKAN_HPP_CONSTEXPR_14 PipelineRasterizationConservativeStateCreateInfoEXT &
  62612. setExtraPrimitiveOverestimationSize( float extraPrimitiveOverestimationSize_ ) VULKAN_HPP_NOEXCEPT
  62613. {
  62614. extraPrimitiveOverestimationSize = extraPrimitiveOverestimationSize_;
  62615. return *this;
  62616. }
  62617. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  62618. operator VkPipelineRasterizationConservativeStateCreateInfoEXT const &() const VULKAN_HPP_NOEXCEPT
  62619. {
  62620. return *reinterpret_cast<const VkPipelineRasterizationConservativeStateCreateInfoEXT *>( this );
  62621. }
  62622. operator VkPipelineRasterizationConservativeStateCreateInfoEXT &() VULKAN_HPP_NOEXCEPT
  62623. {
  62624. return *reinterpret_cast<VkPipelineRasterizationConservativeStateCreateInfoEXT *>( this );
  62625. }
  62626. #if defined( VULKAN_HPP_USE_REFLECT )
  62627. # if 14 <= VULKAN_HPP_CPP_VERSION
  62628. auto
  62629. # else
  62630. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  62631. const void * const &,
  62632. VULKAN_HPP_NAMESPACE::PipelineRasterizationConservativeStateCreateFlagsEXT const &,
  62633. VULKAN_HPP_NAMESPACE::ConservativeRasterizationModeEXT const &,
  62634. float const &>
  62635. # endif
  62636. reflect() const VULKAN_HPP_NOEXCEPT
  62637. {
  62638. return std::tie( sType, pNext, flags, conservativeRasterizationMode, extraPrimitiveOverestimationSize );
  62639. }
  62640. #endif
  62641. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  62642. auto operator<=>( PipelineRasterizationConservativeStateCreateInfoEXT const & ) const = default;
  62643. #else
  62644. bool operator==( PipelineRasterizationConservativeStateCreateInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  62645. {
  62646. # if defined( VULKAN_HPP_USE_REFLECT )
  62647. return this->reflect() == rhs.reflect();
  62648. # else
  62649. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( flags == rhs.flags ) &&
  62650. ( conservativeRasterizationMode == rhs.conservativeRasterizationMode ) &&
  62651. ( extraPrimitiveOverestimationSize == rhs.extraPrimitiveOverestimationSize );
  62652. # endif
  62653. }
  62654. bool operator!=( PipelineRasterizationConservativeStateCreateInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  62655. {
  62656. return !operator==( rhs );
  62657. }
  62658. #endif
  62659. public:
  62660. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineRasterizationConservativeStateCreateInfoEXT;
  62661. const void * pNext = {};
  62662. VULKAN_HPP_NAMESPACE::PipelineRasterizationConservativeStateCreateFlagsEXT flags = {};
  62663. VULKAN_HPP_NAMESPACE::ConservativeRasterizationModeEXT conservativeRasterizationMode = VULKAN_HPP_NAMESPACE::ConservativeRasterizationModeEXT::eDisabled;
  62664. float extraPrimitiveOverestimationSize = {};
  62665. };
  62666. template <>
  62667. struct CppType<StructureType, StructureType::ePipelineRasterizationConservativeStateCreateInfoEXT>
  62668. {
  62669. using Type = PipelineRasterizationConservativeStateCreateInfoEXT;
  62670. };
  62671. struct PipelineRasterizationDepthClipStateCreateInfoEXT
  62672. {
  62673. using NativeType = VkPipelineRasterizationDepthClipStateCreateInfoEXT;
  62674. static const bool allowDuplicate = false;
  62675. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineRasterizationDepthClipStateCreateInfoEXT;
  62676. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  62677. VULKAN_HPP_CONSTEXPR PipelineRasterizationDepthClipStateCreateInfoEXT( VULKAN_HPP_NAMESPACE::PipelineRasterizationDepthClipStateCreateFlagsEXT flags_ = {},
  62678. VULKAN_HPP_NAMESPACE::Bool32 depthClipEnable_ = {},
  62679. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  62680. : pNext( pNext_ )
  62681. , flags( flags_ )
  62682. , depthClipEnable( depthClipEnable_ )
  62683. {
  62684. }
  62685. VULKAN_HPP_CONSTEXPR
  62686. PipelineRasterizationDepthClipStateCreateInfoEXT( PipelineRasterizationDepthClipStateCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  62687. PipelineRasterizationDepthClipStateCreateInfoEXT( VkPipelineRasterizationDepthClipStateCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  62688. : PipelineRasterizationDepthClipStateCreateInfoEXT( *reinterpret_cast<PipelineRasterizationDepthClipStateCreateInfoEXT const *>( &rhs ) )
  62689. {
  62690. }
  62691. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  62692. PipelineRasterizationDepthClipStateCreateInfoEXT & operator=( PipelineRasterizationDepthClipStateCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  62693. PipelineRasterizationDepthClipStateCreateInfoEXT & operator=( VkPipelineRasterizationDepthClipStateCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  62694. {
  62695. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PipelineRasterizationDepthClipStateCreateInfoEXT const *>( &rhs );
  62696. return *this;
  62697. }
  62698. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  62699. VULKAN_HPP_CONSTEXPR_14 PipelineRasterizationDepthClipStateCreateInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  62700. {
  62701. pNext = pNext_;
  62702. return *this;
  62703. }
  62704. VULKAN_HPP_CONSTEXPR_14 PipelineRasterizationDepthClipStateCreateInfoEXT &
  62705. setFlags( VULKAN_HPP_NAMESPACE::PipelineRasterizationDepthClipStateCreateFlagsEXT flags_ ) VULKAN_HPP_NOEXCEPT
  62706. {
  62707. flags = flags_;
  62708. return *this;
  62709. }
  62710. VULKAN_HPP_CONSTEXPR_14 PipelineRasterizationDepthClipStateCreateInfoEXT &
  62711. setDepthClipEnable( VULKAN_HPP_NAMESPACE::Bool32 depthClipEnable_ ) VULKAN_HPP_NOEXCEPT
  62712. {
  62713. depthClipEnable = depthClipEnable_;
  62714. return *this;
  62715. }
  62716. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  62717. operator VkPipelineRasterizationDepthClipStateCreateInfoEXT const &() const VULKAN_HPP_NOEXCEPT
  62718. {
  62719. return *reinterpret_cast<const VkPipelineRasterizationDepthClipStateCreateInfoEXT *>( this );
  62720. }
  62721. operator VkPipelineRasterizationDepthClipStateCreateInfoEXT &() VULKAN_HPP_NOEXCEPT
  62722. {
  62723. return *reinterpret_cast<VkPipelineRasterizationDepthClipStateCreateInfoEXT *>( this );
  62724. }
  62725. #if defined( VULKAN_HPP_USE_REFLECT )
  62726. # if 14 <= VULKAN_HPP_CPP_VERSION
  62727. auto
  62728. # else
  62729. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  62730. const void * const &,
  62731. VULKAN_HPP_NAMESPACE::PipelineRasterizationDepthClipStateCreateFlagsEXT const &,
  62732. VULKAN_HPP_NAMESPACE::Bool32 const &>
  62733. # endif
  62734. reflect() const VULKAN_HPP_NOEXCEPT
  62735. {
  62736. return std::tie( sType, pNext, flags, depthClipEnable );
  62737. }
  62738. #endif
  62739. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  62740. auto operator<=>( PipelineRasterizationDepthClipStateCreateInfoEXT const & ) const = default;
  62741. #else
  62742. bool operator==( PipelineRasterizationDepthClipStateCreateInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  62743. {
  62744. # if defined( VULKAN_HPP_USE_REFLECT )
  62745. return this->reflect() == rhs.reflect();
  62746. # else
  62747. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( flags == rhs.flags ) && ( depthClipEnable == rhs.depthClipEnable );
  62748. # endif
  62749. }
  62750. bool operator!=( PipelineRasterizationDepthClipStateCreateInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  62751. {
  62752. return !operator==( rhs );
  62753. }
  62754. #endif
  62755. public:
  62756. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineRasterizationDepthClipStateCreateInfoEXT;
  62757. const void * pNext = {};
  62758. VULKAN_HPP_NAMESPACE::PipelineRasterizationDepthClipStateCreateFlagsEXT flags = {};
  62759. VULKAN_HPP_NAMESPACE::Bool32 depthClipEnable = {};
  62760. };
  62761. template <>
  62762. struct CppType<StructureType, StructureType::ePipelineRasterizationDepthClipStateCreateInfoEXT>
  62763. {
  62764. using Type = PipelineRasterizationDepthClipStateCreateInfoEXT;
  62765. };
  62766. struct PipelineRasterizationLineStateCreateInfoEXT
  62767. {
  62768. using NativeType = VkPipelineRasterizationLineStateCreateInfoEXT;
  62769. static const bool allowDuplicate = false;
  62770. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineRasterizationLineStateCreateInfoEXT;
  62771. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  62772. VULKAN_HPP_CONSTEXPR PipelineRasterizationLineStateCreateInfoEXT(
  62773. VULKAN_HPP_NAMESPACE::LineRasterizationModeEXT lineRasterizationMode_ = VULKAN_HPP_NAMESPACE::LineRasterizationModeEXT::eDefault,
  62774. VULKAN_HPP_NAMESPACE::Bool32 stippledLineEnable_ = {},
  62775. uint32_t lineStippleFactor_ = {},
  62776. uint16_t lineStipplePattern_ = {},
  62777. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  62778. : pNext( pNext_ )
  62779. , lineRasterizationMode( lineRasterizationMode_ )
  62780. , stippledLineEnable( stippledLineEnable_ )
  62781. , lineStippleFactor( lineStippleFactor_ )
  62782. , lineStipplePattern( lineStipplePattern_ )
  62783. {
  62784. }
  62785. VULKAN_HPP_CONSTEXPR PipelineRasterizationLineStateCreateInfoEXT( PipelineRasterizationLineStateCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  62786. PipelineRasterizationLineStateCreateInfoEXT( VkPipelineRasterizationLineStateCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  62787. : PipelineRasterizationLineStateCreateInfoEXT( *reinterpret_cast<PipelineRasterizationLineStateCreateInfoEXT const *>( &rhs ) )
  62788. {
  62789. }
  62790. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  62791. PipelineRasterizationLineStateCreateInfoEXT & operator=( PipelineRasterizationLineStateCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  62792. PipelineRasterizationLineStateCreateInfoEXT & operator=( VkPipelineRasterizationLineStateCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  62793. {
  62794. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PipelineRasterizationLineStateCreateInfoEXT const *>( &rhs );
  62795. return *this;
  62796. }
  62797. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  62798. VULKAN_HPP_CONSTEXPR_14 PipelineRasterizationLineStateCreateInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  62799. {
  62800. pNext = pNext_;
  62801. return *this;
  62802. }
  62803. VULKAN_HPP_CONSTEXPR_14 PipelineRasterizationLineStateCreateInfoEXT &
  62804. setLineRasterizationMode( VULKAN_HPP_NAMESPACE::LineRasterizationModeEXT lineRasterizationMode_ ) VULKAN_HPP_NOEXCEPT
  62805. {
  62806. lineRasterizationMode = lineRasterizationMode_;
  62807. return *this;
  62808. }
  62809. VULKAN_HPP_CONSTEXPR_14 PipelineRasterizationLineStateCreateInfoEXT &
  62810. setStippledLineEnable( VULKAN_HPP_NAMESPACE::Bool32 stippledLineEnable_ ) VULKAN_HPP_NOEXCEPT
  62811. {
  62812. stippledLineEnable = stippledLineEnable_;
  62813. return *this;
  62814. }
  62815. VULKAN_HPP_CONSTEXPR_14 PipelineRasterizationLineStateCreateInfoEXT & setLineStippleFactor( uint32_t lineStippleFactor_ ) VULKAN_HPP_NOEXCEPT
  62816. {
  62817. lineStippleFactor = lineStippleFactor_;
  62818. return *this;
  62819. }
  62820. VULKAN_HPP_CONSTEXPR_14 PipelineRasterizationLineStateCreateInfoEXT & setLineStipplePattern( uint16_t lineStipplePattern_ ) VULKAN_HPP_NOEXCEPT
  62821. {
  62822. lineStipplePattern = lineStipplePattern_;
  62823. return *this;
  62824. }
  62825. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  62826. operator VkPipelineRasterizationLineStateCreateInfoEXT const &() const VULKAN_HPP_NOEXCEPT
  62827. {
  62828. return *reinterpret_cast<const VkPipelineRasterizationLineStateCreateInfoEXT *>( this );
  62829. }
  62830. operator VkPipelineRasterizationLineStateCreateInfoEXT &() VULKAN_HPP_NOEXCEPT
  62831. {
  62832. return *reinterpret_cast<VkPipelineRasterizationLineStateCreateInfoEXT *>( this );
  62833. }
  62834. #if defined( VULKAN_HPP_USE_REFLECT )
  62835. # if 14 <= VULKAN_HPP_CPP_VERSION
  62836. auto
  62837. # else
  62838. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  62839. const void * const &,
  62840. VULKAN_HPP_NAMESPACE::LineRasterizationModeEXT const &,
  62841. VULKAN_HPP_NAMESPACE::Bool32 const &,
  62842. uint32_t const &,
  62843. uint16_t const &>
  62844. # endif
  62845. reflect() const VULKAN_HPP_NOEXCEPT
  62846. {
  62847. return std::tie( sType, pNext, lineRasterizationMode, stippledLineEnable, lineStippleFactor, lineStipplePattern );
  62848. }
  62849. #endif
  62850. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  62851. auto operator<=>( PipelineRasterizationLineStateCreateInfoEXT const & ) const = default;
  62852. #else
  62853. bool operator==( PipelineRasterizationLineStateCreateInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  62854. {
  62855. # if defined( VULKAN_HPP_USE_REFLECT )
  62856. return this->reflect() == rhs.reflect();
  62857. # else
  62858. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( lineRasterizationMode == rhs.lineRasterizationMode ) &&
  62859. ( stippledLineEnable == rhs.stippledLineEnable ) && ( lineStippleFactor == rhs.lineStippleFactor ) &&
  62860. ( lineStipplePattern == rhs.lineStipplePattern );
  62861. # endif
  62862. }
  62863. bool operator!=( PipelineRasterizationLineStateCreateInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  62864. {
  62865. return !operator==( rhs );
  62866. }
  62867. #endif
  62868. public:
  62869. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineRasterizationLineStateCreateInfoEXT;
  62870. const void * pNext = {};
  62871. VULKAN_HPP_NAMESPACE::LineRasterizationModeEXT lineRasterizationMode = VULKAN_HPP_NAMESPACE::LineRasterizationModeEXT::eDefault;
  62872. VULKAN_HPP_NAMESPACE::Bool32 stippledLineEnable = {};
  62873. uint32_t lineStippleFactor = {};
  62874. uint16_t lineStipplePattern = {};
  62875. };
  62876. template <>
  62877. struct CppType<StructureType, StructureType::ePipelineRasterizationLineStateCreateInfoEXT>
  62878. {
  62879. using Type = PipelineRasterizationLineStateCreateInfoEXT;
  62880. };
  62881. struct PipelineRasterizationProvokingVertexStateCreateInfoEXT
  62882. {
  62883. using NativeType = VkPipelineRasterizationProvokingVertexStateCreateInfoEXT;
  62884. static const bool allowDuplicate = false;
  62885. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineRasterizationProvokingVertexStateCreateInfoEXT;
  62886. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  62887. VULKAN_HPP_CONSTEXPR PipelineRasterizationProvokingVertexStateCreateInfoEXT(
  62888. VULKAN_HPP_NAMESPACE::ProvokingVertexModeEXT provokingVertexMode_ = VULKAN_HPP_NAMESPACE::ProvokingVertexModeEXT::eFirstVertex,
  62889. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  62890. : pNext( pNext_ )
  62891. , provokingVertexMode( provokingVertexMode_ )
  62892. {
  62893. }
  62894. VULKAN_HPP_CONSTEXPR PipelineRasterizationProvokingVertexStateCreateInfoEXT( PipelineRasterizationProvokingVertexStateCreateInfoEXT const & rhs )
  62895. VULKAN_HPP_NOEXCEPT = default;
  62896. PipelineRasterizationProvokingVertexStateCreateInfoEXT( VkPipelineRasterizationProvokingVertexStateCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  62897. : PipelineRasterizationProvokingVertexStateCreateInfoEXT( *reinterpret_cast<PipelineRasterizationProvokingVertexStateCreateInfoEXT const *>( &rhs ) )
  62898. {
  62899. }
  62900. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  62901. PipelineRasterizationProvokingVertexStateCreateInfoEXT &
  62902. operator=( PipelineRasterizationProvokingVertexStateCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  62903. PipelineRasterizationProvokingVertexStateCreateInfoEXT &
  62904. operator=( VkPipelineRasterizationProvokingVertexStateCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  62905. {
  62906. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PipelineRasterizationProvokingVertexStateCreateInfoEXT const *>( &rhs );
  62907. return *this;
  62908. }
  62909. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  62910. VULKAN_HPP_CONSTEXPR_14 PipelineRasterizationProvokingVertexStateCreateInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  62911. {
  62912. pNext = pNext_;
  62913. return *this;
  62914. }
  62915. VULKAN_HPP_CONSTEXPR_14 PipelineRasterizationProvokingVertexStateCreateInfoEXT &
  62916. setProvokingVertexMode( VULKAN_HPP_NAMESPACE::ProvokingVertexModeEXT provokingVertexMode_ ) VULKAN_HPP_NOEXCEPT
  62917. {
  62918. provokingVertexMode = provokingVertexMode_;
  62919. return *this;
  62920. }
  62921. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  62922. operator VkPipelineRasterizationProvokingVertexStateCreateInfoEXT const &() const VULKAN_HPP_NOEXCEPT
  62923. {
  62924. return *reinterpret_cast<const VkPipelineRasterizationProvokingVertexStateCreateInfoEXT *>( this );
  62925. }
  62926. operator VkPipelineRasterizationProvokingVertexStateCreateInfoEXT &() VULKAN_HPP_NOEXCEPT
  62927. {
  62928. return *reinterpret_cast<VkPipelineRasterizationProvokingVertexStateCreateInfoEXT *>( this );
  62929. }
  62930. #if defined( VULKAN_HPP_USE_REFLECT )
  62931. # if 14 <= VULKAN_HPP_CPP_VERSION
  62932. auto
  62933. # else
  62934. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::ProvokingVertexModeEXT const &>
  62935. # endif
  62936. reflect() const VULKAN_HPP_NOEXCEPT
  62937. {
  62938. return std::tie( sType, pNext, provokingVertexMode );
  62939. }
  62940. #endif
  62941. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  62942. auto operator<=>( PipelineRasterizationProvokingVertexStateCreateInfoEXT const & ) const = default;
  62943. #else
  62944. bool operator==( PipelineRasterizationProvokingVertexStateCreateInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  62945. {
  62946. # if defined( VULKAN_HPP_USE_REFLECT )
  62947. return this->reflect() == rhs.reflect();
  62948. # else
  62949. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( provokingVertexMode == rhs.provokingVertexMode );
  62950. # endif
  62951. }
  62952. bool operator!=( PipelineRasterizationProvokingVertexStateCreateInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  62953. {
  62954. return !operator==( rhs );
  62955. }
  62956. #endif
  62957. public:
  62958. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineRasterizationProvokingVertexStateCreateInfoEXT;
  62959. const void * pNext = {};
  62960. VULKAN_HPP_NAMESPACE::ProvokingVertexModeEXT provokingVertexMode = VULKAN_HPP_NAMESPACE::ProvokingVertexModeEXT::eFirstVertex;
  62961. };
  62962. template <>
  62963. struct CppType<StructureType, StructureType::ePipelineRasterizationProvokingVertexStateCreateInfoEXT>
  62964. {
  62965. using Type = PipelineRasterizationProvokingVertexStateCreateInfoEXT;
  62966. };
  62967. struct PipelineRasterizationStateRasterizationOrderAMD
  62968. {
  62969. using NativeType = VkPipelineRasterizationStateRasterizationOrderAMD;
  62970. static const bool allowDuplicate = false;
  62971. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineRasterizationStateRasterizationOrderAMD;
  62972. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  62973. VULKAN_HPP_CONSTEXPR PipelineRasterizationStateRasterizationOrderAMD(
  62974. VULKAN_HPP_NAMESPACE::RasterizationOrderAMD rasterizationOrder_ = VULKAN_HPP_NAMESPACE::RasterizationOrderAMD::eStrict,
  62975. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  62976. : pNext( pNext_ )
  62977. , rasterizationOrder( rasterizationOrder_ )
  62978. {
  62979. }
  62980. VULKAN_HPP_CONSTEXPR
  62981. PipelineRasterizationStateRasterizationOrderAMD( PipelineRasterizationStateRasterizationOrderAMD const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  62982. PipelineRasterizationStateRasterizationOrderAMD( VkPipelineRasterizationStateRasterizationOrderAMD const & rhs ) VULKAN_HPP_NOEXCEPT
  62983. : PipelineRasterizationStateRasterizationOrderAMD( *reinterpret_cast<PipelineRasterizationStateRasterizationOrderAMD const *>( &rhs ) )
  62984. {
  62985. }
  62986. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  62987. PipelineRasterizationStateRasterizationOrderAMD & operator=( PipelineRasterizationStateRasterizationOrderAMD const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  62988. PipelineRasterizationStateRasterizationOrderAMD & operator=( VkPipelineRasterizationStateRasterizationOrderAMD const & rhs ) VULKAN_HPP_NOEXCEPT
  62989. {
  62990. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PipelineRasterizationStateRasterizationOrderAMD const *>( &rhs );
  62991. return *this;
  62992. }
  62993. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  62994. VULKAN_HPP_CONSTEXPR_14 PipelineRasterizationStateRasterizationOrderAMD & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  62995. {
  62996. pNext = pNext_;
  62997. return *this;
  62998. }
  62999. VULKAN_HPP_CONSTEXPR_14 PipelineRasterizationStateRasterizationOrderAMD &
  63000. setRasterizationOrder( VULKAN_HPP_NAMESPACE::RasterizationOrderAMD rasterizationOrder_ ) VULKAN_HPP_NOEXCEPT
  63001. {
  63002. rasterizationOrder = rasterizationOrder_;
  63003. return *this;
  63004. }
  63005. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  63006. operator VkPipelineRasterizationStateRasterizationOrderAMD const &() const VULKAN_HPP_NOEXCEPT
  63007. {
  63008. return *reinterpret_cast<const VkPipelineRasterizationStateRasterizationOrderAMD *>( this );
  63009. }
  63010. operator VkPipelineRasterizationStateRasterizationOrderAMD &() VULKAN_HPP_NOEXCEPT
  63011. {
  63012. return *reinterpret_cast<VkPipelineRasterizationStateRasterizationOrderAMD *>( this );
  63013. }
  63014. #if defined( VULKAN_HPP_USE_REFLECT )
  63015. # if 14 <= VULKAN_HPP_CPP_VERSION
  63016. auto
  63017. # else
  63018. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::RasterizationOrderAMD const &>
  63019. # endif
  63020. reflect() const VULKAN_HPP_NOEXCEPT
  63021. {
  63022. return std::tie( sType, pNext, rasterizationOrder );
  63023. }
  63024. #endif
  63025. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  63026. auto operator<=>( PipelineRasterizationStateRasterizationOrderAMD const & ) const = default;
  63027. #else
  63028. bool operator==( PipelineRasterizationStateRasterizationOrderAMD const & rhs ) const VULKAN_HPP_NOEXCEPT
  63029. {
  63030. # if defined( VULKAN_HPP_USE_REFLECT )
  63031. return this->reflect() == rhs.reflect();
  63032. # else
  63033. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( rasterizationOrder == rhs.rasterizationOrder );
  63034. # endif
  63035. }
  63036. bool operator!=( PipelineRasterizationStateRasterizationOrderAMD const & rhs ) const VULKAN_HPP_NOEXCEPT
  63037. {
  63038. return !operator==( rhs );
  63039. }
  63040. #endif
  63041. public:
  63042. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineRasterizationStateRasterizationOrderAMD;
  63043. const void * pNext = {};
  63044. VULKAN_HPP_NAMESPACE::RasterizationOrderAMD rasterizationOrder = VULKAN_HPP_NAMESPACE::RasterizationOrderAMD::eStrict;
  63045. };
  63046. template <>
  63047. struct CppType<StructureType, StructureType::ePipelineRasterizationStateRasterizationOrderAMD>
  63048. {
  63049. using Type = PipelineRasterizationStateRasterizationOrderAMD;
  63050. };
  63051. struct PipelineRasterizationStateStreamCreateInfoEXT
  63052. {
  63053. using NativeType = VkPipelineRasterizationStateStreamCreateInfoEXT;
  63054. static const bool allowDuplicate = false;
  63055. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineRasterizationStateStreamCreateInfoEXT;
  63056. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  63057. VULKAN_HPP_CONSTEXPR PipelineRasterizationStateStreamCreateInfoEXT( VULKAN_HPP_NAMESPACE::PipelineRasterizationStateStreamCreateFlagsEXT flags_ = {},
  63058. uint32_t rasterizationStream_ = {},
  63059. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  63060. : pNext( pNext_ )
  63061. , flags( flags_ )
  63062. , rasterizationStream( rasterizationStream_ )
  63063. {
  63064. }
  63065. VULKAN_HPP_CONSTEXPR
  63066. PipelineRasterizationStateStreamCreateInfoEXT( PipelineRasterizationStateStreamCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  63067. PipelineRasterizationStateStreamCreateInfoEXT( VkPipelineRasterizationStateStreamCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  63068. : PipelineRasterizationStateStreamCreateInfoEXT( *reinterpret_cast<PipelineRasterizationStateStreamCreateInfoEXT const *>( &rhs ) )
  63069. {
  63070. }
  63071. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  63072. PipelineRasterizationStateStreamCreateInfoEXT & operator=( PipelineRasterizationStateStreamCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  63073. PipelineRasterizationStateStreamCreateInfoEXT & operator=( VkPipelineRasterizationStateStreamCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  63074. {
  63075. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PipelineRasterizationStateStreamCreateInfoEXT const *>( &rhs );
  63076. return *this;
  63077. }
  63078. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  63079. VULKAN_HPP_CONSTEXPR_14 PipelineRasterizationStateStreamCreateInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  63080. {
  63081. pNext = pNext_;
  63082. return *this;
  63083. }
  63084. VULKAN_HPP_CONSTEXPR_14 PipelineRasterizationStateStreamCreateInfoEXT &
  63085. setFlags( VULKAN_HPP_NAMESPACE::PipelineRasterizationStateStreamCreateFlagsEXT flags_ ) VULKAN_HPP_NOEXCEPT
  63086. {
  63087. flags = flags_;
  63088. return *this;
  63089. }
  63090. VULKAN_HPP_CONSTEXPR_14 PipelineRasterizationStateStreamCreateInfoEXT & setRasterizationStream( uint32_t rasterizationStream_ ) VULKAN_HPP_NOEXCEPT
  63091. {
  63092. rasterizationStream = rasterizationStream_;
  63093. return *this;
  63094. }
  63095. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  63096. operator VkPipelineRasterizationStateStreamCreateInfoEXT const &() const VULKAN_HPP_NOEXCEPT
  63097. {
  63098. return *reinterpret_cast<const VkPipelineRasterizationStateStreamCreateInfoEXT *>( this );
  63099. }
  63100. operator VkPipelineRasterizationStateStreamCreateInfoEXT &() VULKAN_HPP_NOEXCEPT
  63101. {
  63102. return *reinterpret_cast<VkPipelineRasterizationStateStreamCreateInfoEXT *>( this );
  63103. }
  63104. #if defined( VULKAN_HPP_USE_REFLECT )
  63105. # if 14 <= VULKAN_HPP_CPP_VERSION
  63106. auto
  63107. # else
  63108. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  63109. const void * const &,
  63110. VULKAN_HPP_NAMESPACE::PipelineRasterizationStateStreamCreateFlagsEXT const &,
  63111. uint32_t const &>
  63112. # endif
  63113. reflect() const VULKAN_HPP_NOEXCEPT
  63114. {
  63115. return std::tie( sType, pNext, flags, rasterizationStream );
  63116. }
  63117. #endif
  63118. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  63119. auto operator<=>( PipelineRasterizationStateStreamCreateInfoEXT const & ) const = default;
  63120. #else
  63121. bool operator==( PipelineRasterizationStateStreamCreateInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  63122. {
  63123. # if defined( VULKAN_HPP_USE_REFLECT )
  63124. return this->reflect() == rhs.reflect();
  63125. # else
  63126. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( flags == rhs.flags ) && ( rasterizationStream == rhs.rasterizationStream );
  63127. # endif
  63128. }
  63129. bool operator!=( PipelineRasterizationStateStreamCreateInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  63130. {
  63131. return !operator==( rhs );
  63132. }
  63133. #endif
  63134. public:
  63135. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineRasterizationStateStreamCreateInfoEXT;
  63136. const void * pNext = {};
  63137. VULKAN_HPP_NAMESPACE::PipelineRasterizationStateStreamCreateFlagsEXT flags = {};
  63138. uint32_t rasterizationStream = {};
  63139. };
  63140. template <>
  63141. struct CppType<StructureType, StructureType::ePipelineRasterizationStateStreamCreateInfoEXT>
  63142. {
  63143. using Type = PipelineRasterizationStateStreamCreateInfoEXT;
  63144. };
  63145. struct PipelineRenderingCreateInfo
  63146. {
  63147. using NativeType = VkPipelineRenderingCreateInfo;
  63148. static const bool allowDuplicate = false;
  63149. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineRenderingCreateInfo;
  63150. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  63151. VULKAN_HPP_CONSTEXPR PipelineRenderingCreateInfo( uint32_t viewMask_ = {},
  63152. uint32_t colorAttachmentCount_ = {},
  63153. const VULKAN_HPP_NAMESPACE::Format * pColorAttachmentFormats_ = {},
  63154. VULKAN_HPP_NAMESPACE::Format depthAttachmentFormat_ = VULKAN_HPP_NAMESPACE::Format::eUndefined,
  63155. VULKAN_HPP_NAMESPACE::Format stencilAttachmentFormat_ = VULKAN_HPP_NAMESPACE::Format::eUndefined,
  63156. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  63157. : pNext( pNext_ )
  63158. , viewMask( viewMask_ )
  63159. , colorAttachmentCount( colorAttachmentCount_ )
  63160. , pColorAttachmentFormats( pColorAttachmentFormats_ )
  63161. , depthAttachmentFormat( depthAttachmentFormat_ )
  63162. , stencilAttachmentFormat( stencilAttachmentFormat_ )
  63163. {
  63164. }
  63165. VULKAN_HPP_CONSTEXPR PipelineRenderingCreateInfo( PipelineRenderingCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  63166. PipelineRenderingCreateInfo( VkPipelineRenderingCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
  63167. : PipelineRenderingCreateInfo( *reinterpret_cast<PipelineRenderingCreateInfo const *>( &rhs ) )
  63168. {
  63169. }
  63170. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  63171. PipelineRenderingCreateInfo( uint32_t viewMask_,
  63172. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::Format> const & colorAttachmentFormats_,
  63173. VULKAN_HPP_NAMESPACE::Format depthAttachmentFormat_ = VULKAN_HPP_NAMESPACE::Format::eUndefined,
  63174. VULKAN_HPP_NAMESPACE::Format stencilAttachmentFormat_ = VULKAN_HPP_NAMESPACE::Format::eUndefined,
  63175. const void * pNext_ = nullptr )
  63176. : pNext( pNext_ )
  63177. , viewMask( viewMask_ )
  63178. , colorAttachmentCount( static_cast<uint32_t>( colorAttachmentFormats_.size() ) )
  63179. , pColorAttachmentFormats( colorAttachmentFormats_.data() )
  63180. , depthAttachmentFormat( depthAttachmentFormat_ )
  63181. , stencilAttachmentFormat( stencilAttachmentFormat_ )
  63182. {
  63183. }
  63184. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  63185. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  63186. PipelineRenderingCreateInfo & operator=( PipelineRenderingCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  63187. PipelineRenderingCreateInfo & operator=( VkPipelineRenderingCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
  63188. {
  63189. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PipelineRenderingCreateInfo const *>( &rhs );
  63190. return *this;
  63191. }
  63192. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  63193. VULKAN_HPP_CONSTEXPR_14 PipelineRenderingCreateInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  63194. {
  63195. pNext = pNext_;
  63196. return *this;
  63197. }
  63198. VULKAN_HPP_CONSTEXPR_14 PipelineRenderingCreateInfo & setViewMask( uint32_t viewMask_ ) VULKAN_HPP_NOEXCEPT
  63199. {
  63200. viewMask = viewMask_;
  63201. return *this;
  63202. }
  63203. VULKAN_HPP_CONSTEXPR_14 PipelineRenderingCreateInfo & setColorAttachmentCount( uint32_t colorAttachmentCount_ ) VULKAN_HPP_NOEXCEPT
  63204. {
  63205. colorAttachmentCount = colorAttachmentCount_;
  63206. return *this;
  63207. }
  63208. VULKAN_HPP_CONSTEXPR_14 PipelineRenderingCreateInfo &
  63209. setPColorAttachmentFormats( const VULKAN_HPP_NAMESPACE::Format * pColorAttachmentFormats_ ) VULKAN_HPP_NOEXCEPT
  63210. {
  63211. pColorAttachmentFormats = pColorAttachmentFormats_;
  63212. return *this;
  63213. }
  63214. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  63215. PipelineRenderingCreateInfo & setColorAttachmentFormats(
  63216. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::Format> const & colorAttachmentFormats_ ) VULKAN_HPP_NOEXCEPT
  63217. {
  63218. colorAttachmentCount = static_cast<uint32_t>( colorAttachmentFormats_.size() );
  63219. pColorAttachmentFormats = colorAttachmentFormats_.data();
  63220. return *this;
  63221. }
  63222. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  63223. VULKAN_HPP_CONSTEXPR_14 PipelineRenderingCreateInfo & setDepthAttachmentFormat( VULKAN_HPP_NAMESPACE::Format depthAttachmentFormat_ ) VULKAN_HPP_NOEXCEPT
  63224. {
  63225. depthAttachmentFormat = depthAttachmentFormat_;
  63226. return *this;
  63227. }
  63228. VULKAN_HPP_CONSTEXPR_14 PipelineRenderingCreateInfo &
  63229. setStencilAttachmentFormat( VULKAN_HPP_NAMESPACE::Format stencilAttachmentFormat_ ) VULKAN_HPP_NOEXCEPT
  63230. {
  63231. stencilAttachmentFormat = stencilAttachmentFormat_;
  63232. return *this;
  63233. }
  63234. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  63235. operator VkPipelineRenderingCreateInfo const &() const VULKAN_HPP_NOEXCEPT
  63236. {
  63237. return *reinterpret_cast<const VkPipelineRenderingCreateInfo *>( this );
  63238. }
  63239. operator VkPipelineRenderingCreateInfo &() VULKAN_HPP_NOEXCEPT
  63240. {
  63241. return *reinterpret_cast<VkPipelineRenderingCreateInfo *>( this );
  63242. }
  63243. #if defined( VULKAN_HPP_USE_REFLECT )
  63244. # if 14 <= VULKAN_HPP_CPP_VERSION
  63245. auto
  63246. # else
  63247. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  63248. const void * const &,
  63249. uint32_t const &,
  63250. uint32_t const &,
  63251. const VULKAN_HPP_NAMESPACE::Format * const &,
  63252. VULKAN_HPP_NAMESPACE::Format const &,
  63253. VULKAN_HPP_NAMESPACE::Format const &>
  63254. # endif
  63255. reflect() const VULKAN_HPP_NOEXCEPT
  63256. {
  63257. return std::tie( sType, pNext, viewMask, colorAttachmentCount, pColorAttachmentFormats, depthAttachmentFormat, stencilAttachmentFormat );
  63258. }
  63259. #endif
  63260. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  63261. auto operator<=>( PipelineRenderingCreateInfo const & ) const = default;
  63262. #else
  63263. bool operator==( PipelineRenderingCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  63264. {
  63265. # if defined( VULKAN_HPP_USE_REFLECT )
  63266. return this->reflect() == rhs.reflect();
  63267. # else
  63268. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( viewMask == rhs.viewMask ) && ( colorAttachmentCount == rhs.colorAttachmentCount ) &&
  63269. ( pColorAttachmentFormats == rhs.pColorAttachmentFormats ) && ( depthAttachmentFormat == rhs.depthAttachmentFormat ) &&
  63270. ( stencilAttachmentFormat == rhs.stencilAttachmentFormat );
  63271. # endif
  63272. }
  63273. bool operator!=( PipelineRenderingCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  63274. {
  63275. return !operator==( rhs );
  63276. }
  63277. #endif
  63278. public:
  63279. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineRenderingCreateInfo;
  63280. const void * pNext = {};
  63281. uint32_t viewMask = {};
  63282. uint32_t colorAttachmentCount = {};
  63283. const VULKAN_HPP_NAMESPACE::Format * pColorAttachmentFormats = {};
  63284. VULKAN_HPP_NAMESPACE::Format depthAttachmentFormat = VULKAN_HPP_NAMESPACE::Format::eUndefined;
  63285. VULKAN_HPP_NAMESPACE::Format stencilAttachmentFormat = VULKAN_HPP_NAMESPACE::Format::eUndefined;
  63286. };
  63287. template <>
  63288. struct CppType<StructureType, StructureType::ePipelineRenderingCreateInfo>
  63289. {
  63290. using Type = PipelineRenderingCreateInfo;
  63291. };
  63292. using PipelineRenderingCreateInfoKHR = PipelineRenderingCreateInfo;
  63293. struct PipelineRepresentativeFragmentTestStateCreateInfoNV
  63294. {
  63295. using NativeType = VkPipelineRepresentativeFragmentTestStateCreateInfoNV;
  63296. static const bool allowDuplicate = false;
  63297. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineRepresentativeFragmentTestStateCreateInfoNV;
  63298. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  63299. VULKAN_HPP_CONSTEXPR PipelineRepresentativeFragmentTestStateCreateInfoNV( VULKAN_HPP_NAMESPACE::Bool32 representativeFragmentTestEnable_ = {},
  63300. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  63301. : pNext( pNext_ )
  63302. , representativeFragmentTestEnable( representativeFragmentTestEnable_ )
  63303. {
  63304. }
  63305. VULKAN_HPP_CONSTEXPR
  63306. PipelineRepresentativeFragmentTestStateCreateInfoNV( PipelineRepresentativeFragmentTestStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  63307. PipelineRepresentativeFragmentTestStateCreateInfoNV( VkPipelineRepresentativeFragmentTestStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
  63308. : PipelineRepresentativeFragmentTestStateCreateInfoNV( *reinterpret_cast<PipelineRepresentativeFragmentTestStateCreateInfoNV const *>( &rhs ) )
  63309. {
  63310. }
  63311. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  63312. PipelineRepresentativeFragmentTestStateCreateInfoNV &
  63313. operator=( PipelineRepresentativeFragmentTestStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  63314. PipelineRepresentativeFragmentTestStateCreateInfoNV & operator=( VkPipelineRepresentativeFragmentTestStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
  63315. {
  63316. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PipelineRepresentativeFragmentTestStateCreateInfoNV const *>( &rhs );
  63317. return *this;
  63318. }
  63319. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  63320. VULKAN_HPP_CONSTEXPR_14 PipelineRepresentativeFragmentTestStateCreateInfoNV & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  63321. {
  63322. pNext = pNext_;
  63323. return *this;
  63324. }
  63325. VULKAN_HPP_CONSTEXPR_14 PipelineRepresentativeFragmentTestStateCreateInfoNV &
  63326. setRepresentativeFragmentTestEnable( VULKAN_HPP_NAMESPACE::Bool32 representativeFragmentTestEnable_ ) VULKAN_HPP_NOEXCEPT
  63327. {
  63328. representativeFragmentTestEnable = representativeFragmentTestEnable_;
  63329. return *this;
  63330. }
  63331. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  63332. operator VkPipelineRepresentativeFragmentTestStateCreateInfoNV const &() const VULKAN_HPP_NOEXCEPT
  63333. {
  63334. return *reinterpret_cast<const VkPipelineRepresentativeFragmentTestStateCreateInfoNV *>( this );
  63335. }
  63336. operator VkPipelineRepresentativeFragmentTestStateCreateInfoNV &() VULKAN_HPP_NOEXCEPT
  63337. {
  63338. return *reinterpret_cast<VkPipelineRepresentativeFragmentTestStateCreateInfoNV *>( this );
  63339. }
  63340. #if defined( VULKAN_HPP_USE_REFLECT )
  63341. # if 14 <= VULKAN_HPP_CPP_VERSION
  63342. auto
  63343. # else
  63344. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
  63345. # endif
  63346. reflect() const VULKAN_HPP_NOEXCEPT
  63347. {
  63348. return std::tie( sType, pNext, representativeFragmentTestEnable );
  63349. }
  63350. #endif
  63351. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  63352. auto operator<=>( PipelineRepresentativeFragmentTestStateCreateInfoNV const & ) const = default;
  63353. #else
  63354. bool operator==( PipelineRepresentativeFragmentTestStateCreateInfoNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  63355. {
  63356. # if defined( VULKAN_HPP_USE_REFLECT )
  63357. return this->reflect() == rhs.reflect();
  63358. # else
  63359. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( representativeFragmentTestEnable == rhs.representativeFragmentTestEnable );
  63360. # endif
  63361. }
  63362. bool operator!=( PipelineRepresentativeFragmentTestStateCreateInfoNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  63363. {
  63364. return !operator==( rhs );
  63365. }
  63366. #endif
  63367. public:
  63368. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineRepresentativeFragmentTestStateCreateInfoNV;
  63369. const void * pNext = {};
  63370. VULKAN_HPP_NAMESPACE::Bool32 representativeFragmentTestEnable = {};
  63371. };
  63372. template <>
  63373. struct CppType<StructureType, StructureType::ePipelineRepresentativeFragmentTestStateCreateInfoNV>
  63374. {
  63375. using Type = PipelineRepresentativeFragmentTestStateCreateInfoNV;
  63376. };
  63377. struct PipelineRobustnessCreateInfoEXT
  63378. {
  63379. using NativeType = VkPipelineRobustnessCreateInfoEXT;
  63380. static const bool allowDuplicate = false;
  63381. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineRobustnessCreateInfoEXT;
  63382. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  63383. VULKAN_HPP_CONSTEXPR PipelineRobustnessCreateInfoEXT(
  63384. VULKAN_HPP_NAMESPACE::PipelineRobustnessBufferBehaviorEXT storageBuffers_ = VULKAN_HPP_NAMESPACE::PipelineRobustnessBufferBehaviorEXT::eDeviceDefault,
  63385. VULKAN_HPP_NAMESPACE::PipelineRobustnessBufferBehaviorEXT uniformBuffers_ = VULKAN_HPP_NAMESPACE::PipelineRobustnessBufferBehaviorEXT::eDeviceDefault,
  63386. VULKAN_HPP_NAMESPACE::PipelineRobustnessBufferBehaviorEXT vertexInputs_ = VULKAN_HPP_NAMESPACE::PipelineRobustnessBufferBehaviorEXT::eDeviceDefault,
  63387. VULKAN_HPP_NAMESPACE::PipelineRobustnessImageBehaviorEXT images_ = VULKAN_HPP_NAMESPACE::PipelineRobustnessImageBehaviorEXT::eDeviceDefault,
  63388. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  63389. : pNext( pNext_ )
  63390. , storageBuffers( storageBuffers_ )
  63391. , uniformBuffers( uniformBuffers_ )
  63392. , vertexInputs( vertexInputs_ )
  63393. , images( images_ )
  63394. {
  63395. }
  63396. VULKAN_HPP_CONSTEXPR PipelineRobustnessCreateInfoEXT( PipelineRobustnessCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  63397. PipelineRobustnessCreateInfoEXT( VkPipelineRobustnessCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  63398. : PipelineRobustnessCreateInfoEXT( *reinterpret_cast<PipelineRobustnessCreateInfoEXT const *>( &rhs ) )
  63399. {
  63400. }
  63401. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  63402. PipelineRobustnessCreateInfoEXT & operator=( PipelineRobustnessCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  63403. PipelineRobustnessCreateInfoEXT & operator=( VkPipelineRobustnessCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  63404. {
  63405. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PipelineRobustnessCreateInfoEXT const *>( &rhs );
  63406. return *this;
  63407. }
  63408. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  63409. VULKAN_HPP_CONSTEXPR_14 PipelineRobustnessCreateInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  63410. {
  63411. pNext = pNext_;
  63412. return *this;
  63413. }
  63414. VULKAN_HPP_CONSTEXPR_14 PipelineRobustnessCreateInfoEXT &
  63415. setStorageBuffers( VULKAN_HPP_NAMESPACE::PipelineRobustnessBufferBehaviorEXT storageBuffers_ ) VULKAN_HPP_NOEXCEPT
  63416. {
  63417. storageBuffers = storageBuffers_;
  63418. return *this;
  63419. }
  63420. VULKAN_HPP_CONSTEXPR_14 PipelineRobustnessCreateInfoEXT &
  63421. setUniformBuffers( VULKAN_HPP_NAMESPACE::PipelineRobustnessBufferBehaviorEXT uniformBuffers_ ) VULKAN_HPP_NOEXCEPT
  63422. {
  63423. uniformBuffers = uniformBuffers_;
  63424. return *this;
  63425. }
  63426. VULKAN_HPP_CONSTEXPR_14 PipelineRobustnessCreateInfoEXT &
  63427. setVertexInputs( VULKAN_HPP_NAMESPACE::PipelineRobustnessBufferBehaviorEXT vertexInputs_ ) VULKAN_HPP_NOEXCEPT
  63428. {
  63429. vertexInputs = vertexInputs_;
  63430. return *this;
  63431. }
  63432. VULKAN_HPP_CONSTEXPR_14 PipelineRobustnessCreateInfoEXT & setImages( VULKAN_HPP_NAMESPACE::PipelineRobustnessImageBehaviorEXT images_ ) VULKAN_HPP_NOEXCEPT
  63433. {
  63434. images = images_;
  63435. return *this;
  63436. }
  63437. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  63438. operator VkPipelineRobustnessCreateInfoEXT const &() const VULKAN_HPP_NOEXCEPT
  63439. {
  63440. return *reinterpret_cast<const VkPipelineRobustnessCreateInfoEXT *>( this );
  63441. }
  63442. operator VkPipelineRobustnessCreateInfoEXT &() VULKAN_HPP_NOEXCEPT
  63443. {
  63444. return *reinterpret_cast<VkPipelineRobustnessCreateInfoEXT *>( this );
  63445. }
  63446. #if defined( VULKAN_HPP_USE_REFLECT )
  63447. # if 14 <= VULKAN_HPP_CPP_VERSION
  63448. auto
  63449. # else
  63450. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  63451. const void * const &,
  63452. VULKAN_HPP_NAMESPACE::PipelineRobustnessBufferBehaviorEXT const &,
  63453. VULKAN_HPP_NAMESPACE::PipelineRobustnessBufferBehaviorEXT const &,
  63454. VULKAN_HPP_NAMESPACE::PipelineRobustnessBufferBehaviorEXT const &,
  63455. VULKAN_HPP_NAMESPACE::PipelineRobustnessImageBehaviorEXT const &>
  63456. # endif
  63457. reflect() const VULKAN_HPP_NOEXCEPT
  63458. {
  63459. return std::tie( sType, pNext, storageBuffers, uniformBuffers, vertexInputs, images );
  63460. }
  63461. #endif
  63462. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  63463. auto operator<=>( PipelineRobustnessCreateInfoEXT const & ) const = default;
  63464. #else
  63465. bool operator==( PipelineRobustnessCreateInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  63466. {
  63467. # if defined( VULKAN_HPP_USE_REFLECT )
  63468. return this->reflect() == rhs.reflect();
  63469. # else
  63470. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( storageBuffers == rhs.storageBuffers ) && ( uniformBuffers == rhs.uniformBuffers ) &&
  63471. ( vertexInputs == rhs.vertexInputs ) && ( images == rhs.images );
  63472. # endif
  63473. }
  63474. bool operator!=( PipelineRobustnessCreateInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  63475. {
  63476. return !operator==( rhs );
  63477. }
  63478. #endif
  63479. public:
  63480. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineRobustnessCreateInfoEXT;
  63481. const void * pNext = {};
  63482. VULKAN_HPP_NAMESPACE::PipelineRobustnessBufferBehaviorEXT storageBuffers = VULKAN_HPP_NAMESPACE::PipelineRobustnessBufferBehaviorEXT::eDeviceDefault;
  63483. VULKAN_HPP_NAMESPACE::PipelineRobustnessBufferBehaviorEXT uniformBuffers = VULKAN_HPP_NAMESPACE::PipelineRobustnessBufferBehaviorEXT::eDeviceDefault;
  63484. VULKAN_HPP_NAMESPACE::PipelineRobustnessBufferBehaviorEXT vertexInputs = VULKAN_HPP_NAMESPACE::PipelineRobustnessBufferBehaviorEXT::eDeviceDefault;
  63485. VULKAN_HPP_NAMESPACE::PipelineRobustnessImageBehaviorEXT images = VULKAN_HPP_NAMESPACE::PipelineRobustnessImageBehaviorEXT::eDeviceDefault;
  63486. };
  63487. template <>
  63488. struct CppType<StructureType, StructureType::ePipelineRobustnessCreateInfoEXT>
  63489. {
  63490. using Type = PipelineRobustnessCreateInfoEXT;
  63491. };
  63492. struct PipelineSampleLocationsStateCreateInfoEXT
  63493. {
  63494. using NativeType = VkPipelineSampleLocationsStateCreateInfoEXT;
  63495. static const bool allowDuplicate = false;
  63496. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineSampleLocationsStateCreateInfoEXT;
  63497. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  63498. VULKAN_HPP_CONSTEXPR PipelineSampleLocationsStateCreateInfoEXT( VULKAN_HPP_NAMESPACE::Bool32 sampleLocationsEnable_ = {},
  63499. VULKAN_HPP_NAMESPACE::SampleLocationsInfoEXT sampleLocationsInfo_ = {},
  63500. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  63501. : pNext( pNext_ )
  63502. , sampleLocationsEnable( sampleLocationsEnable_ )
  63503. , sampleLocationsInfo( sampleLocationsInfo_ )
  63504. {
  63505. }
  63506. VULKAN_HPP_CONSTEXPR PipelineSampleLocationsStateCreateInfoEXT( PipelineSampleLocationsStateCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  63507. PipelineSampleLocationsStateCreateInfoEXT( VkPipelineSampleLocationsStateCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  63508. : PipelineSampleLocationsStateCreateInfoEXT( *reinterpret_cast<PipelineSampleLocationsStateCreateInfoEXT const *>( &rhs ) )
  63509. {
  63510. }
  63511. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  63512. PipelineSampleLocationsStateCreateInfoEXT & operator=( PipelineSampleLocationsStateCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  63513. PipelineSampleLocationsStateCreateInfoEXT & operator=( VkPipelineSampleLocationsStateCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  63514. {
  63515. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PipelineSampleLocationsStateCreateInfoEXT const *>( &rhs );
  63516. return *this;
  63517. }
  63518. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  63519. VULKAN_HPP_CONSTEXPR_14 PipelineSampleLocationsStateCreateInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  63520. {
  63521. pNext = pNext_;
  63522. return *this;
  63523. }
  63524. VULKAN_HPP_CONSTEXPR_14 PipelineSampleLocationsStateCreateInfoEXT &
  63525. setSampleLocationsEnable( VULKAN_HPP_NAMESPACE::Bool32 sampleLocationsEnable_ ) VULKAN_HPP_NOEXCEPT
  63526. {
  63527. sampleLocationsEnable = sampleLocationsEnable_;
  63528. return *this;
  63529. }
  63530. VULKAN_HPP_CONSTEXPR_14 PipelineSampleLocationsStateCreateInfoEXT &
  63531. setSampleLocationsInfo( VULKAN_HPP_NAMESPACE::SampleLocationsInfoEXT const & sampleLocationsInfo_ ) VULKAN_HPP_NOEXCEPT
  63532. {
  63533. sampleLocationsInfo = sampleLocationsInfo_;
  63534. return *this;
  63535. }
  63536. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  63537. operator VkPipelineSampleLocationsStateCreateInfoEXT const &() const VULKAN_HPP_NOEXCEPT
  63538. {
  63539. return *reinterpret_cast<const VkPipelineSampleLocationsStateCreateInfoEXT *>( this );
  63540. }
  63541. operator VkPipelineSampleLocationsStateCreateInfoEXT &() VULKAN_HPP_NOEXCEPT
  63542. {
  63543. return *reinterpret_cast<VkPipelineSampleLocationsStateCreateInfoEXT *>( this );
  63544. }
  63545. #if defined( VULKAN_HPP_USE_REFLECT )
  63546. # if 14 <= VULKAN_HPP_CPP_VERSION
  63547. auto
  63548. # else
  63549. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  63550. const void * const &,
  63551. VULKAN_HPP_NAMESPACE::Bool32 const &,
  63552. VULKAN_HPP_NAMESPACE::SampleLocationsInfoEXT const &>
  63553. # endif
  63554. reflect() const VULKAN_HPP_NOEXCEPT
  63555. {
  63556. return std::tie( sType, pNext, sampleLocationsEnable, sampleLocationsInfo );
  63557. }
  63558. #endif
  63559. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  63560. auto operator<=>( PipelineSampleLocationsStateCreateInfoEXT const & ) const = default;
  63561. #else
  63562. bool operator==( PipelineSampleLocationsStateCreateInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  63563. {
  63564. # if defined( VULKAN_HPP_USE_REFLECT )
  63565. return this->reflect() == rhs.reflect();
  63566. # else
  63567. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( sampleLocationsEnable == rhs.sampleLocationsEnable ) &&
  63568. ( sampleLocationsInfo == rhs.sampleLocationsInfo );
  63569. # endif
  63570. }
  63571. bool operator!=( PipelineSampleLocationsStateCreateInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  63572. {
  63573. return !operator==( rhs );
  63574. }
  63575. #endif
  63576. public:
  63577. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineSampleLocationsStateCreateInfoEXT;
  63578. const void * pNext = {};
  63579. VULKAN_HPP_NAMESPACE::Bool32 sampleLocationsEnable = {};
  63580. VULKAN_HPP_NAMESPACE::SampleLocationsInfoEXT sampleLocationsInfo = {};
  63581. };
  63582. template <>
  63583. struct CppType<StructureType, StructureType::ePipelineSampleLocationsStateCreateInfoEXT>
  63584. {
  63585. using Type = PipelineSampleLocationsStateCreateInfoEXT;
  63586. };
  63587. struct PipelineShaderStageModuleIdentifierCreateInfoEXT
  63588. {
  63589. using NativeType = VkPipelineShaderStageModuleIdentifierCreateInfoEXT;
  63590. static const bool allowDuplicate = false;
  63591. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineShaderStageModuleIdentifierCreateInfoEXT;
  63592. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  63593. VULKAN_HPP_CONSTEXPR PipelineShaderStageModuleIdentifierCreateInfoEXT( uint32_t identifierSize_ = {},
  63594. const uint8_t * pIdentifier_ = {},
  63595. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  63596. : pNext( pNext_ )
  63597. , identifierSize( identifierSize_ )
  63598. , pIdentifier( pIdentifier_ )
  63599. {
  63600. }
  63601. VULKAN_HPP_CONSTEXPR
  63602. PipelineShaderStageModuleIdentifierCreateInfoEXT( PipelineShaderStageModuleIdentifierCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  63603. PipelineShaderStageModuleIdentifierCreateInfoEXT( VkPipelineShaderStageModuleIdentifierCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  63604. : PipelineShaderStageModuleIdentifierCreateInfoEXT( *reinterpret_cast<PipelineShaderStageModuleIdentifierCreateInfoEXT const *>( &rhs ) )
  63605. {
  63606. }
  63607. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  63608. PipelineShaderStageModuleIdentifierCreateInfoEXT( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint8_t> const & identifier_,
  63609. const void * pNext_ = nullptr )
  63610. : pNext( pNext_ ), identifierSize( static_cast<uint32_t>( identifier_.size() ) ), pIdentifier( identifier_.data() )
  63611. {
  63612. }
  63613. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  63614. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  63615. PipelineShaderStageModuleIdentifierCreateInfoEXT & operator=( PipelineShaderStageModuleIdentifierCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  63616. PipelineShaderStageModuleIdentifierCreateInfoEXT & operator=( VkPipelineShaderStageModuleIdentifierCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  63617. {
  63618. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PipelineShaderStageModuleIdentifierCreateInfoEXT const *>( &rhs );
  63619. return *this;
  63620. }
  63621. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  63622. VULKAN_HPP_CONSTEXPR_14 PipelineShaderStageModuleIdentifierCreateInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  63623. {
  63624. pNext = pNext_;
  63625. return *this;
  63626. }
  63627. VULKAN_HPP_CONSTEXPR_14 PipelineShaderStageModuleIdentifierCreateInfoEXT & setIdentifierSize( uint32_t identifierSize_ ) VULKAN_HPP_NOEXCEPT
  63628. {
  63629. identifierSize = identifierSize_;
  63630. return *this;
  63631. }
  63632. VULKAN_HPP_CONSTEXPR_14 PipelineShaderStageModuleIdentifierCreateInfoEXT & setPIdentifier( const uint8_t * pIdentifier_ ) VULKAN_HPP_NOEXCEPT
  63633. {
  63634. pIdentifier = pIdentifier_;
  63635. return *this;
  63636. }
  63637. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  63638. PipelineShaderStageModuleIdentifierCreateInfoEXT &
  63639. setIdentifier( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint8_t> const & identifier_ ) VULKAN_HPP_NOEXCEPT
  63640. {
  63641. identifierSize = static_cast<uint32_t>( identifier_.size() );
  63642. pIdentifier = identifier_.data();
  63643. return *this;
  63644. }
  63645. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  63646. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  63647. operator VkPipelineShaderStageModuleIdentifierCreateInfoEXT const &() const VULKAN_HPP_NOEXCEPT
  63648. {
  63649. return *reinterpret_cast<const VkPipelineShaderStageModuleIdentifierCreateInfoEXT *>( this );
  63650. }
  63651. operator VkPipelineShaderStageModuleIdentifierCreateInfoEXT &() VULKAN_HPP_NOEXCEPT
  63652. {
  63653. return *reinterpret_cast<VkPipelineShaderStageModuleIdentifierCreateInfoEXT *>( this );
  63654. }
  63655. #if defined( VULKAN_HPP_USE_REFLECT )
  63656. # if 14 <= VULKAN_HPP_CPP_VERSION
  63657. auto
  63658. # else
  63659. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, uint32_t const &, const uint8_t * const &>
  63660. # endif
  63661. reflect() const VULKAN_HPP_NOEXCEPT
  63662. {
  63663. return std::tie( sType, pNext, identifierSize, pIdentifier );
  63664. }
  63665. #endif
  63666. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  63667. auto operator<=>( PipelineShaderStageModuleIdentifierCreateInfoEXT const & ) const = default;
  63668. #else
  63669. bool operator==( PipelineShaderStageModuleIdentifierCreateInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  63670. {
  63671. # if defined( VULKAN_HPP_USE_REFLECT )
  63672. return this->reflect() == rhs.reflect();
  63673. # else
  63674. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( identifierSize == rhs.identifierSize ) && ( pIdentifier == rhs.pIdentifier );
  63675. # endif
  63676. }
  63677. bool operator!=( PipelineShaderStageModuleIdentifierCreateInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  63678. {
  63679. return !operator==( rhs );
  63680. }
  63681. #endif
  63682. public:
  63683. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineShaderStageModuleIdentifierCreateInfoEXT;
  63684. const void * pNext = {};
  63685. uint32_t identifierSize = {};
  63686. const uint8_t * pIdentifier = {};
  63687. };
  63688. template <>
  63689. struct CppType<StructureType, StructureType::ePipelineShaderStageModuleIdentifierCreateInfoEXT>
  63690. {
  63691. using Type = PipelineShaderStageModuleIdentifierCreateInfoEXT;
  63692. };
  63693. struct PipelineShaderStageRequiredSubgroupSizeCreateInfo
  63694. {
  63695. using NativeType = VkPipelineShaderStageRequiredSubgroupSizeCreateInfo;
  63696. static const bool allowDuplicate = false;
  63697. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineShaderStageRequiredSubgroupSizeCreateInfo;
  63698. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  63699. VULKAN_HPP_CONSTEXPR PipelineShaderStageRequiredSubgroupSizeCreateInfo( uint32_t requiredSubgroupSize_ = {}, void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  63700. : pNext( pNext_ )
  63701. , requiredSubgroupSize( requiredSubgroupSize_ )
  63702. {
  63703. }
  63704. VULKAN_HPP_CONSTEXPR
  63705. PipelineShaderStageRequiredSubgroupSizeCreateInfo( PipelineShaderStageRequiredSubgroupSizeCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  63706. PipelineShaderStageRequiredSubgroupSizeCreateInfo( VkPipelineShaderStageRequiredSubgroupSizeCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
  63707. : PipelineShaderStageRequiredSubgroupSizeCreateInfo( *reinterpret_cast<PipelineShaderStageRequiredSubgroupSizeCreateInfo const *>( &rhs ) )
  63708. {
  63709. }
  63710. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  63711. PipelineShaderStageRequiredSubgroupSizeCreateInfo &
  63712. operator=( PipelineShaderStageRequiredSubgroupSizeCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  63713. PipelineShaderStageRequiredSubgroupSizeCreateInfo & operator=( VkPipelineShaderStageRequiredSubgroupSizeCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
  63714. {
  63715. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PipelineShaderStageRequiredSubgroupSizeCreateInfo const *>( &rhs );
  63716. return *this;
  63717. }
  63718. operator VkPipelineShaderStageRequiredSubgroupSizeCreateInfo const &() const VULKAN_HPP_NOEXCEPT
  63719. {
  63720. return *reinterpret_cast<const VkPipelineShaderStageRequiredSubgroupSizeCreateInfo *>( this );
  63721. }
  63722. operator VkPipelineShaderStageRequiredSubgroupSizeCreateInfo &() VULKAN_HPP_NOEXCEPT
  63723. {
  63724. return *reinterpret_cast<VkPipelineShaderStageRequiredSubgroupSizeCreateInfo *>( this );
  63725. }
  63726. #if defined( VULKAN_HPP_USE_REFLECT )
  63727. # if 14 <= VULKAN_HPP_CPP_VERSION
  63728. auto
  63729. # else
  63730. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, uint32_t const &>
  63731. # endif
  63732. reflect() const VULKAN_HPP_NOEXCEPT
  63733. {
  63734. return std::tie( sType, pNext, requiredSubgroupSize );
  63735. }
  63736. #endif
  63737. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  63738. auto operator<=>( PipelineShaderStageRequiredSubgroupSizeCreateInfo const & ) const = default;
  63739. #else
  63740. bool operator==( PipelineShaderStageRequiredSubgroupSizeCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  63741. {
  63742. # if defined( VULKAN_HPP_USE_REFLECT )
  63743. return this->reflect() == rhs.reflect();
  63744. # else
  63745. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( requiredSubgroupSize == rhs.requiredSubgroupSize );
  63746. # endif
  63747. }
  63748. bool operator!=( PipelineShaderStageRequiredSubgroupSizeCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  63749. {
  63750. return !operator==( rhs );
  63751. }
  63752. #endif
  63753. public:
  63754. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineShaderStageRequiredSubgroupSizeCreateInfo;
  63755. void * pNext = {};
  63756. uint32_t requiredSubgroupSize = {};
  63757. };
  63758. template <>
  63759. struct CppType<StructureType, StructureType::ePipelineShaderStageRequiredSubgroupSizeCreateInfo>
  63760. {
  63761. using Type = PipelineShaderStageRequiredSubgroupSizeCreateInfo;
  63762. };
  63763. using PipelineShaderStageRequiredSubgroupSizeCreateInfoEXT = PipelineShaderStageRequiredSubgroupSizeCreateInfo;
  63764. struct PipelineTessellationDomainOriginStateCreateInfo
  63765. {
  63766. using NativeType = VkPipelineTessellationDomainOriginStateCreateInfo;
  63767. static const bool allowDuplicate = false;
  63768. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineTessellationDomainOriginStateCreateInfo;
  63769. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  63770. VULKAN_HPP_CONSTEXPR PipelineTessellationDomainOriginStateCreateInfo(
  63771. VULKAN_HPP_NAMESPACE::TessellationDomainOrigin domainOrigin_ = VULKAN_HPP_NAMESPACE::TessellationDomainOrigin::eUpperLeft,
  63772. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  63773. : pNext( pNext_ )
  63774. , domainOrigin( domainOrigin_ )
  63775. {
  63776. }
  63777. VULKAN_HPP_CONSTEXPR
  63778. PipelineTessellationDomainOriginStateCreateInfo( PipelineTessellationDomainOriginStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  63779. PipelineTessellationDomainOriginStateCreateInfo( VkPipelineTessellationDomainOriginStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
  63780. : PipelineTessellationDomainOriginStateCreateInfo( *reinterpret_cast<PipelineTessellationDomainOriginStateCreateInfo const *>( &rhs ) )
  63781. {
  63782. }
  63783. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  63784. PipelineTessellationDomainOriginStateCreateInfo & operator=( PipelineTessellationDomainOriginStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  63785. PipelineTessellationDomainOriginStateCreateInfo & operator=( VkPipelineTessellationDomainOriginStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
  63786. {
  63787. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PipelineTessellationDomainOriginStateCreateInfo const *>( &rhs );
  63788. return *this;
  63789. }
  63790. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  63791. VULKAN_HPP_CONSTEXPR_14 PipelineTessellationDomainOriginStateCreateInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  63792. {
  63793. pNext = pNext_;
  63794. return *this;
  63795. }
  63796. VULKAN_HPP_CONSTEXPR_14 PipelineTessellationDomainOriginStateCreateInfo &
  63797. setDomainOrigin( VULKAN_HPP_NAMESPACE::TessellationDomainOrigin domainOrigin_ ) VULKAN_HPP_NOEXCEPT
  63798. {
  63799. domainOrigin = domainOrigin_;
  63800. return *this;
  63801. }
  63802. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  63803. operator VkPipelineTessellationDomainOriginStateCreateInfo const &() const VULKAN_HPP_NOEXCEPT
  63804. {
  63805. return *reinterpret_cast<const VkPipelineTessellationDomainOriginStateCreateInfo *>( this );
  63806. }
  63807. operator VkPipelineTessellationDomainOriginStateCreateInfo &() VULKAN_HPP_NOEXCEPT
  63808. {
  63809. return *reinterpret_cast<VkPipelineTessellationDomainOriginStateCreateInfo *>( this );
  63810. }
  63811. #if defined( VULKAN_HPP_USE_REFLECT )
  63812. # if 14 <= VULKAN_HPP_CPP_VERSION
  63813. auto
  63814. # else
  63815. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::TessellationDomainOrigin const &>
  63816. # endif
  63817. reflect() const VULKAN_HPP_NOEXCEPT
  63818. {
  63819. return std::tie( sType, pNext, domainOrigin );
  63820. }
  63821. #endif
  63822. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  63823. auto operator<=>( PipelineTessellationDomainOriginStateCreateInfo const & ) const = default;
  63824. #else
  63825. bool operator==( PipelineTessellationDomainOriginStateCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  63826. {
  63827. # if defined( VULKAN_HPP_USE_REFLECT )
  63828. return this->reflect() == rhs.reflect();
  63829. # else
  63830. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( domainOrigin == rhs.domainOrigin );
  63831. # endif
  63832. }
  63833. bool operator!=( PipelineTessellationDomainOriginStateCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  63834. {
  63835. return !operator==( rhs );
  63836. }
  63837. #endif
  63838. public:
  63839. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineTessellationDomainOriginStateCreateInfo;
  63840. const void * pNext = {};
  63841. VULKAN_HPP_NAMESPACE::TessellationDomainOrigin domainOrigin = VULKAN_HPP_NAMESPACE::TessellationDomainOrigin::eUpperLeft;
  63842. };
  63843. template <>
  63844. struct CppType<StructureType, StructureType::ePipelineTessellationDomainOriginStateCreateInfo>
  63845. {
  63846. using Type = PipelineTessellationDomainOriginStateCreateInfo;
  63847. };
  63848. using PipelineTessellationDomainOriginStateCreateInfoKHR = PipelineTessellationDomainOriginStateCreateInfo;
  63849. struct VertexInputBindingDivisorDescriptionEXT
  63850. {
  63851. using NativeType = VkVertexInputBindingDivisorDescriptionEXT;
  63852. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  63853. VULKAN_HPP_CONSTEXPR VertexInputBindingDivisorDescriptionEXT( uint32_t binding_ = {}, uint32_t divisor_ = {} ) VULKAN_HPP_NOEXCEPT
  63854. : binding( binding_ )
  63855. , divisor( divisor_ )
  63856. {
  63857. }
  63858. VULKAN_HPP_CONSTEXPR VertexInputBindingDivisorDescriptionEXT( VertexInputBindingDivisorDescriptionEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  63859. VertexInputBindingDivisorDescriptionEXT( VkVertexInputBindingDivisorDescriptionEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  63860. : VertexInputBindingDivisorDescriptionEXT( *reinterpret_cast<VertexInputBindingDivisorDescriptionEXT const *>( &rhs ) )
  63861. {
  63862. }
  63863. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  63864. VertexInputBindingDivisorDescriptionEXT & operator=( VertexInputBindingDivisorDescriptionEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  63865. VertexInputBindingDivisorDescriptionEXT & operator=( VkVertexInputBindingDivisorDescriptionEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  63866. {
  63867. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::VertexInputBindingDivisorDescriptionEXT const *>( &rhs );
  63868. return *this;
  63869. }
  63870. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  63871. VULKAN_HPP_CONSTEXPR_14 VertexInputBindingDivisorDescriptionEXT & setBinding( uint32_t binding_ ) VULKAN_HPP_NOEXCEPT
  63872. {
  63873. binding = binding_;
  63874. return *this;
  63875. }
  63876. VULKAN_HPP_CONSTEXPR_14 VertexInputBindingDivisorDescriptionEXT & setDivisor( uint32_t divisor_ ) VULKAN_HPP_NOEXCEPT
  63877. {
  63878. divisor = divisor_;
  63879. return *this;
  63880. }
  63881. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  63882. operator VkVertexInputBindingDivisorDescriptionEXT const &() const VULKAN_HPP_NOEXCEPT
  63883. {
  63884. return *reinterpret_cast<const VkVertexInputBindingDivisorDescriptionEXT *>( this );
  63885. }
  63886. operator VkVertexInputBindingDivisorDescriptionEXT &() VULKAN_HPP_NOEXCEPT
  63887. {
  63888. return *reinterpret_cast<VkVertexInputBindingDivisorDescriptionEXT *>( this );
  63889. }
  63890. #if defined( VULKAN_HPP_USE_REFLECT )
  63891. # if 14 <= VULKAN_HPP_CPP_VERSION
  63892. auto
  63893. # else
  63894. std::tuple<uint32_t const &, uint32_t const &>
  63895. # endif
  63896. reflect() const VULKAN_HPP_NOEXCEPT
  63897. {
  63898. return std::tie( binding, divisor );
  63899. }
  63900. #endif
  63901. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  63902. auto operator<=>( VertexInputBindingDivisorDescriptionEXT const & ) const = default;
  63903. #else
  63904. bool operator==( VertexInputBindingDivisorDescriptionEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  63905. {
  63906. # if defined( VULKAN_HPP_USE_REFLECT )
  63907. return this->reflect() == rhs.reflect();
  63908. # else
  63909. return ( binding == rhs.binding ) && ( divisor == rhs.divisor );
  63910. # endif
  63911. }
  63912. bool operator!=( VertexInputBindingDivisorDescriptionEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  63913. {
  63914. return !operator==( rhs );
  63915. }
  63916. #endif
  63917. public:
  63918. uint32_t binding = {};
  63919. uint32_t divisor = {};
  63920. };
  63921. struct PipelineVertexInputDivisorStateCreateInfoEXT
  63922. {
  63923. using NativeType = VkPipelineVertexInputDivisorStateCreateInfoEXT;
  63924. static const bool allowDuplicate = false;
  63925. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineVertexInputDivisorStateCreateInfoEXT;
  63926. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  63927. VULKAN_HPP_CONSTEXPR
  63928. PipelineVertexInputDivisorStateCreateInfoEXT( uint32_t vertexBindingDivisorCount_ = {},
  63929. const VULKAN_HPP_NAMESPACE::VertexInputBindingDivisorDescriptionEXT * pVertexBindingDivisors_ = {},
  63930. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  63931. : pNext( pNext_ )
  63932. , vertexBindingDivisorCount( vertexBindingDivisorCount_ )
  63933. , pVertexBindingDivisors( pVertexBindingDivisors_ )
  63934. {
  63935. }
  63936. VULKAN_HPP_CONSTEXPR PipelineVertexInputDivisorStateCreateInfoEXT( PipelineVertexInputDivisorStateCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  63937. PipelineVertexInputDivisorStateCreateInfoEXT( VkPipelineVertexInputDivisorStateCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  63938. : PipelineVertexInputDivisorStateCreateInfoEXT( *reinterpret_cast<PipelineVertexInputDivisorStateCreateInfoEXT const *>( &rhs ) )
  63939. {
  63940. }
  63941. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  63942. PipelineVertexInputDivisorStateCreateInfoEXT(
  63943. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::VertexInputBindingDivisorDescriptionEXT> const & vertexBindingDivisors_,
  63944. const void * pNext_ = nullptr )
  63945. : pNext( pNext_ )
  63946. , vertexBindingDivisorCount( static_cast<uint32_t>( vertexBindingDivisors_.size() ) )
  63947. , pVertexBindingDivisors( vertexBindingDivisors_.data() )
  63948. {
  63949. }
  63950. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  63951. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  63952. PipelineVertexInputDivisorStateCreateInfoEXT & operator=( PipelineVertexInputDivisorStateCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  63953. PipelineVertexInputDivisorStateCreateInfoEXT & operator=( VkPipelineVertexInputDivisorStateCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  63954. {
  63955. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PipelineVertexInputDivisorStateCreateInfoEXT const *>( &rhs );
  63956. return *this;
  63957. }
  63958. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  63959. VULKAN_HPP_CONSTEXPR_14 PipelineVertexInputDivisorStateCreateInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  63960. {
  63961. pNext = pNext_;
  63962. return *this;
  63963. }
  63964. VULKAN_HPP_CONSTEXPR_14 PipelineVertexInputDivisorStateCreateInfoEXT &
  63965. setVertexBindingDivisorCount( uint32_t vertexBindingDivisorCount_ ) VULKAN_HPP_NOEXCEPT
  63966. {
  63967. vertexBindingDivisorCount = vertexBindingDivisorCount_;
  63968. return *this;
  63969. }
  63970. VULKAN_HPP_CONSTEXPR_14 PipelineVertexInputDivisorStateCreateInfoEXT &
  63971. setPVertexBindingDivisors( const VULKAN_HPP_NAMESPACE::VertexInputBindingDivisorDescriptionEXT * pVertexBindingDivisors_ ) VULKAN_HPP_NOEXCEPT
  63972. {
  63973. pVertexBindingDivisors = pVertexBindingDivisors_;
  63974. return *this;
  63975. }
  63976. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  63977. PipelineVertexInputDivisorStateCreateInfoEXT & setVertexBindingDivisors(
  63978. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::VertexInputBindingDivisorDescriptionEXT> const & vertexBindingDivisors_ )
  63979. VULKAN_HPP_NOEXCEPT
  63980. {
  63981. vertexBindingDivisorCount = static_cast<uint32_t>( vertexBindingDivisors_.size() );
  63982. pVertexBindingDivisors = vertexBindingDivisors_.data();
  63983. return *this;
  63984. }
  63985. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  63986. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  63987. operator VkPipelineVertexInputDivisorStateCreateInfoEXT const &() const VULKAN_HPP_NOEXCEPT
  63988. {
  63989. return *reinterpret_cast<const VkPipelineVertexInputDivisorStateCreateInfoEXT *>( this );
  63990. }
  63991. operator VkPipelineVertexInputDivisorStateCreateInfoEXT &() VULKAN_HPP_NOEXCEPT
  63992. {
  63993. return *reinterpret_cast<VkPipelineVertexInputDivisorStateCreateInfoEXT *>( this );
  63994. }
  63995. #if defined( VULKAN_HPP_USE_REFLECT )
  63996. # if 14 <= VULKAN_HPP_CPP_VERSION
  63997. auto
  63998. # else
  63999. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  64000. const void * const &,
  64001. uint32_t const &,
  64002. const VULKAN_HPP_NAMESPACE::VertexInputBindingDivisorDescriptionEXT * const &>
  64003. # endif
  64004. reflect() const VULKAN_HPP_NOEXCEPT
  64005. {
  64006. return std::tie( sType, pNext, vertexBindingDivisorCount, pVertexBindingDivisors );
  64007. }
  64008. #endif
  64009. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  64010. auto operator<=>( PipelineVertexInputDivisorStateCreateInfoEXT const & ) const = default;
  64011. #else
  64012. bool operator==( PipelineVertexInputDivisorStateCreateInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  64013. {
  64014. # if defined( VULKAN_HPP_USE_REFLECT )
  64015. return this->reflect() == rhs.reflect();
  64016. # else
  64017. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( vertexBindingDivisorCount == rhs.vertexBindingDivisorCount ) &&
  64018. ( pVertexBindingDivisors == rhs.pVertexBindingDivisors );
  64019. # endif
  64020. }
  64021. bool operator!=( PipelineVertexInputDivisorStateCreateInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  64022. {
  64023. return !operator==( rhs );
  64024. }
  64025. #endif
  64026. public:
  64027. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineVertexInputDivisorStateCreateInfoEXT;
  64028. const void * pNext = {};
  64029. uint32_t vertexBindingDivisorCount = {};
  64030. const VULKAN_HPP_NAMESPACE::VertexInputBindingDivisorDescriptionEXT * pVertexBindingDivisors = {};
  64031. };
  64032. template <>
  64033. struct CppType<StructureType, StructureType::ePipelineVertexInputDivisorStateCreateInfoEXT>
  64034. {
  64035. using Type = PipelineVertexInputDivisorStateCreateInfoEXT;
  64036. };
  64037. struct PipelineViewportCoarseSampleOrderStateCreateInfoNV
  64038. {
  64039. using NativeType = VkPipelineViewportCoarseSampleOrderStateCreateInfoNV;
  64040. static const bool allowDuplicate = false;
  64041. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineViewportCoarseSampleOrderStateCreateInfoNV;
  64042. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  64043. VULKAN_HPP_CONSTEXPR PipelineViewportCoarseSampleOrderStateCreateInfoNV(
  64044. VULKAN_HPP_NAMESPACE::CoarseSampleOrderTypeNV sampleOrderType_ = VULKAN_HPP_NAMESPACE::CoarseSampleOrderTypeNV::eDefault,
  64045. uint32_t customSampleOrderCount_ = {},
  64046. const VULKAN_HPP_NAMESPACE::CoarseSampleOrderCustomNV * pCustomSampleOrders_ = {},
  64047. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  64048. : pNext( pNext_ )
  64049. , sampleOrderType( sampleOrderType_ )
  64050. , customSampleOrderCount( customSampleOrderCount_ )
  64051. , pCustomSampleOrders( pCustomSampleOrders_ )
  64052. {
  64053. }
  64054. VULKAN_HPP_CONSTEXPR
  64055. PipelineViewportCoarseSampleOrderStateCreateInfoNV( PipelineViewportCoarseSampleOrderStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  64056. PipelineViewportCoarseSampleOrderStateCreateInfoNV( VkPipelineViewportCoarseSampleOrderStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
  64057. : PipelineViewportCoarseSampleOrderStateCreateInfoNV( *reinterpret_cast<PipelineViewportCoarseSampleOrderStateCreateInfoNV const *>( &rhs ) )
  64058. {
  64059. }
  64060. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  64061. PipelineViewportCoarseSampleOrderStateCreateInfoNV(
  64062. VULKAN_HPP_NAMESPACE::CoarseSampleOrderTypeNV sampleOrderType_,
  64063. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::CoarseSampleOrderCustomNV> const & customSampleOrders_,
  64064. const void * pNext_ = nullptr )
  64065. : pNext( pNext_ )
  64066. , sampleOrderType( sampleOrderType_ )
  64067. , customSampleOrderCount( static_cast<uint32_t>( customSampleOrders_.size() ) )
  64068. , pCustomSampleOrders( customSampleOrders_.data() )
  64069. {
  64070. }
  64071. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  64072. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  64073. PipelineViewportCoarseSampleOrderStateCreateInfoNV &
  64074. operator=( PipelineViewportCoarseSampleOrderStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  64075. PipelineViewportCoarseSampleOrderStateCreateInfoNV & operator=( VkPipelineViewportCoarseSampleOrderStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
  64076. {
  64077. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PipelineViewportCoarseSampleOrderStateCreateInfoNV const *>( &rhs );
  64078. return *this;
  64079. }
  64080. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  64081. VULKAN_HPP_CONSTEXPR_14 PipelineViewportCoarseSampleOrderStateCreateInfoNV & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  64082. {
  64083. pNext = pNext_;
  64084. return *this;
  64085. }
  64086. VULKAN_HPP_CONSTEXPR_14 PipelineViewportCoarseSampleOrderStateCreateInfoNV &
  64087. setSampleOrderType( VULKAN_HPP_NAMESPACE::CoarseSampleOrderTypeNV sampleOrderType_ ) VULKAN_HPP_NOEXCEPT
  64088. {
  64089. sampleOrderType = sampleOrderType_;
  64090. return *this;
  64091. }
  64092. VULKAN_HPP_CONSTEXPR_14 PipelineViewportCoarseSampleOrderStateCreateInfoNV &
  64093. setCustomSampleOrderCount( uint32_t customSampleOrderCount_ ) VULKAN_HPP_NOEXCEPT
  64094. {
  64095. customSampleOrderCount = customSampleOrderCount_;
  64096. return *this;
  64097. }
  64098. VULKAN_HPP_CONSTEXPR_14 PipelineViewportCoarseSampleOrderStateCreateInfoNV &
  64099. setPCustomSampleOrders( const VULKAN_HPP_NAMESPACE::CoarseSampleOrderCustomNV * pCustomSampleOrders_ ) VULKAN_HPP_NOEXCEPT
  64100. {
  64101. pCustomSampleOrders = pCustomSampleOrders_;
  64102. return *this;
  64103. }
  64104. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  64105. PipelineViewportCoarseSampleOrderStateCreateInfoNV & setCustomSampleOrders(
  64106. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::CoarseSampleOrderCustomNV> const & customSampleOrders_ ) VULKAN_HPP_NOEXCEPT
  64107. {
  64108. customSampleOrderCount = static_cast<uint32_t>( customSampleOrders_.size() );
  64109. pCustomSampleOrders = customSampleOrders_.data();
  64110. return *this;
  64111. }
  64112. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  64113. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  64114. operator VkPipelineViewportCoarseSampleOrderStateCreateInfoNV const &() const VULKAN_HPP_NOEXCEPT
  64115. {
  64116. return *reinterpret_cast<const VkPipelineViewportCoarseSampleOrderStateCreateInfoNV *>( this );
  64117. }
  64118. operator VkPipelineViewportCoarseSampleOrderStateCreateInfoNV &() VULKAN_HPP_NOEXCEPT
  64119. {
  64120. return *reinterpret_cast<VkPipelineViewportCoarseSampleOrderStateCreateInfoNV *>( this );
  64121. }
  64122. #if defined( VULKAN_HPP_USE_REFLECT )
  64123. # if 14 <= VULKAN_HPP_CPP_VERSION
  64124. auto
  64125. # else
  64126. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  64127. const void * const &,
  64128. VULKAN_HPP_NAMESPACE::CoarseSampleOrderTypeNV const &,
  64129. uint32_t const &,
  64130. const VULKAN_HPP_NAMESPACE::CoarseSampleOrderCustomNV * const &>
  64131. # endif
  64132. reflect() const VULKAN_HPP_NOEXCEPT
  64133. {
  64134. return std::tie( sType, pNext, sampleOrderType, customSampleOrderCount, pCustomSampleOrders );
  64135. }
  64136. #endif
  64137. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  64138. auto operator<=>( PipelineViewportCoarseSampleOrderStateCreateInfoNV const & ) const = default;
  64139. #else
  64140. bool operator==( PipelineViewportCoarseSampleOrderStateCreateInfoNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  64141. {
  64142. # if defined( VULKAN_HPP_USE_REFLECT )
  64143. return this->reflect() == rhs.reflect();
  64144. # else
  64145. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( sampleOrderType == rhs.sampleOrderType ) &&
  64146. ( customSampleOrderCount == rhs.customSampleOrderCount ) && ( pCustomSampleOrders == rhs.pCustomSampleOrders );
  64147. # endif
  64148. }
  64149. bool operator!=( PipelineViewportCoarseSampleOrderStateCreateInfoNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  64150. {
  64151. return !operator==( rhs );
  64152. }
  64153. #endif
  64154. public:
  64155. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineViewportCoarseSampleOrderStateCreateInfoNV;
  64156. const void * pNext = {};
  64157. VULKAN_HPP_NAMESPACE::CoarseSampleOrderTypeNV sampleOrderType = VULKAN_HPP_NAMESPACE::CoarseSampleOrderTypeNV::eDefault;
  64158. uint32_t customSampleOrderCount = {};
  64159. const VULKAN_HPP_NAMESPACE::CoarseSampleOrderCustomNV * pCustomSampleOrders = {};
  64160. };
  64161. template <>
  64162. struct CppType<StructureType, StructureType::ePipelineViewportCoarseSampleOrderStateCreateInfoNV>
  64163. {
  64164. using Type = PipelineViewportCoarseSampleOrderStateCreateInfoNV;
  64165. };
  64166. struct PipelineViewportDepthClipControlCreateInfoEXT
  64167. {
  64168. using NativeType = VkPipelineViewportDepthClipControlCreateInfoEXT;
  64169. static const bool allowDuplicate = false;
  64170. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineViewportDepthClipControlCreateInfoEXT;
  64171. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  64172. VULKAN_HPP_CONSTEXPR PipelineViewportDepthClipControlCreateInfoEXT( VULKAN_HPP_NAMESPACE::Bool32 negativeOneToOne_ = {},
  64173. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  64174. : pNext( pNext_ )
  64175. , negativeOneToOne( negativeOneToOne_ )
  64176. {
  64177. }
  64178. VULKAN_HPP_CONSTEXPR
  64179. PipelineViewportDepthClipControlCreateInfoEXT( PipelineViewportDepthClipControlCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  64180. PipelineViewportDepthClipControlCreateInfoEXT( VkPipelineViewportDepthClipControlCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  64181. : PipelineViewportDepthClipControlCreateInfoEXT( *reinterpret_cast<PipelineViewportDepthClipControlCreateInfoEXT const *>( &rhs ) )
  64182. {
  64183. }
  64184. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  64185. PipelineViewportDepthClipControlCreateInfoEXT & operator=( PipelineViewportDepthClipControlCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  64186. PipelineViewportDepthClipControlCreateInfoEXT & operator=( VkPipelineViewportDepthClipControlCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  64187. {
  64188. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PipelineViewportDepthClipControlCreateInfoEXT const *>( &rhs );
  64189. return *this;
  64190. }
  64191. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  64192. VULKAN_HPP_CONSTEXPR_14 PipelineViewportDepthClipControlCreateInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  64193. {
  64194. pNext = pNext_;
  64195. return *this;
  64196. }
  64197. VULKAN_HPP_CONSTEXPR_14 PipelineViewportDepthClipControlCreateInfoEXT &
  64198. setNegativeOneToOne( VULKAN_HPP_NAMESPACE::Bool32 negativeOneToOne_ ) VULKAN_HPP_NOEXCEPT
  64199. {
  64200. negativeOneToOne = negativeOneToOne_;
  64201. return *this;
  64202. }
  64203. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  64204. operator VkPipelineViewportDepthClipControlCreateInfoEXT const &() const VULKAN_HPP_NOEXCEPT
  64205. {
  64206. return *reinterpret_cast<const VkPipelineViewportDepthClipControlCreateInfoEXT *>( this );
  64207. }
  64208. operator VkPipelineViewportDepthClipControlCreateInfoEXT &() VULKAN_HPP_NOEXCEPT
  64209. {
  64210. return *reinterpret_cast<VkPipelineViewportDepthClipControlCreateInfoEXT *>( this );
  64211. }
  64212. #if defined( VULKAN_HPP_USE_REFLECT )
  64213. # if 14 <= VULKAN_HPP_CPP_VERSION
  64214. auto
  64215. # else
  64216. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
  64217. # endif
  64218. reflect() const VULKAN_HPP_NOEXCEPT
  64219. {
  64220. return std::tie( sType, pNext, negativeOneToOne );
  64221. }
  64222. #endif
  64223. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  64224. auto operator<=>( PipelineViewportDepthClipControlCreateInfoEXT const & ) const = default;
  64225. #else
  64226. bool operator==( PipelineViewportDepthClipControlCreateInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  64227. {
  64228. # if defined( VULKAN_HPP_USE_REFLECT )
  64229. return this->reflect() == rhs.reflect();
  64230. # else
  64231. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( negativeOneToOne == rhs.negativeOneToOne );
  64232. # endif
  64233. }
  64234. bool operator!=( PipelineViewportDepthClipControlCreateInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  64235. {
  64236. return !operator==( rhs );
  64237. }
  64238. #endif
  64239. public:
  64240. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineViewportDepthClipControlCreateInfoEXT;
  64241. const void * pNext = {};
  64242. VULKAN_HPP_NAMESPACE::Bool32 negativeOneToOne = {};
  64243. };
  64244. template <>
  64245. struct CppType<StructureType, StructureType::ePipelineViewportDepthClipControlCreateInfoEXT>
  64246. {
  64247. using Type = PipelineViewportDepthClipControlCreateInfoEXT;
  64248. };
  64249. struct PipelineViewportExclusiveScissorStateCreateInfoNV
  64250. {
  64251. using NativeType = VkPipelineViewportExclusiveScissorStateCreateInfoNV;
  64252. static const bool allowDuplicate = false;
  64253. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineViewportExclusiveScissorStateCreateInfoNV;
  64254. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  64255. VULKAN_HPP_CONSTEXPR PipelineViewportExclusiveScissorStateCreateInfoNV( uint32_t exclusiveScissorCount_ = {},
  64256. const VULKAN_HPP_NAMESPACE::Rect2D * pExclusiveScissors_ = {},
  64257. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  64258. : pNext( pNext_ )
  64259. , exclusiveScissorCount( exclusiveScissorCount_ )
  64260. , pExclusiveScissors( pExclusiveScissors_ )
  64261. {
  64262. }
  64263. VULKAN_HPP_CONSTEXPR
  64264. PipelineViewportExclusiveScissorStateCreateInfoNV( PipelineViewportExclusiveScissorStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  64265. PipelineViewportExclusiveScissorStateCreateInfoNV( VkPipelineViewportExclusiveScissorStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
  64266. : PipelineViewportExclusiveScissorStateCreateInfoNV( *reinterpret_cast<PipelineViewportExclusiveScissorStateCreateInfoNV const *>( &rhs ) )
  64267. {
  64268. }
  64269. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  64270. PipelineViewportExclusiveScissorStateCreateInfoNV(
  64271. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::Rect2D> const & exclusiveScissors_, const void * pNext_ = nullptr )
  64272. : pNext( pNext_ ), exclusiveScissorCount( static_cast<uint32_t>( exclusiveScissors_.size() ) ), pExclusiveScissors( exclusiveScissors_.data() )
  64273. {
  64274. }
  64275. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  64276. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  64277. PipelineViewportExclusiveScissorStateCreateInfoNV &
  64278. operator=( PipelineViewportExclusiveScissorStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  64279. PipelineViewportExclusiveScissorStateCreateInfoNV & operator=( VkPipelineViewportExclusiveScissorStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
  64280. {
  64281. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PipelineViewportExclusiveScissorStateCreateInfoNV const *>( &rhs );
  64282. return *this;
  64283. }
  64284. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  64285. VULKAN_HPP_CONSTEXPR_14 PipelineViewportExclusiveScissorStateCreateInfoNV & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  64286. {
  64287. pNext = pNext_;
  64288. return *this;
  64289. }
  64290. VULKAN_HPP_CONSTEXPR_14 PipelineViewportExclusiveScissorStateCreateInfoNV & setExclusiveScissorCount( uint32_t exclusiveScissorCount_ ) VULKAN_HPP_NOEXCEPT
  64291. {
  64292. exclusiveScissorCount = exclusiveScissorCount_;
  64293. return *this;
  64294. }
  64295. VULKAN_HPP_CONSTEXPR_14 PipelineViewportExclusiveScissorStateCreateInfoNV &
  64296. setPExclusiveScissors( const VULKAN_HPP_NAMESPACE::Rect2D * pExclusiveScissors_ ) VULKAN_HPP_NOEXCEPT
  64297. {
  64298. pExclusiveScissors = pExclusiveScissors_;
  64299. return *this;
  64300. }
  64301. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  64302. PipelineViewportExclusiveScissorStateCreateInfoNV &
  64303. setExclusiveScissors( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::Rect2D> const & exclusiveScissors_ ) VULKAN_HPP_NOEXCEPT
  64304. {
  64305. exclusiveScissorCount = static_cast<uint32_t>( exclusiveScissors_.size() );
  64306. pExclusiveScissors = exclusiveScissors_.data();
  64307. return *this;
  64308. }
  64309. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  64310. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  64311. operator VkPipelineViewportExclusiveScissorStateCreateInfoNV const &() const VULKAN_HPP_NOEXCEPT
  64312. {
  64313. return *reinterpret_cast<const VkPipelineViewportExclusiveScissorStateCreateInfoNV *>( this );
  64314. }
  64315. operator VkPipelineViewportExclusiveScissorStateCreateInfoNV &() VULKAN_HPP_NOEXCEPT
  64316. {
  64317. return *reinterpret_cast<VkPipelineViewportExclusiveScissorStateCreateInfoNV *>( this );
  64318. }
  64319. #if defined( VULKAN_HPP_USE_REFLECT )
  64320. # if 14 <= VULKAN_HPP_CPP_VERSION
  64321. auto
  64322. # else
  64323. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, uint32_t const &, const VULKAN_HPP_NAMESPACE::Rect2D * const &>
  64324. # endif
  64325. reflect() const VULKAN_HPP_NOEXCEPT
  64326. {
  64327. return std::tie( sType, pNext, exclusiveScissorCount, pExclusiveScissors );
  64328. }
  64329. #endif
  64330. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  64331. auto operator<=>( PipelineViewportExclusiveScissorStateCreateInfoNV const & ) const = default;
  64332. #else
  64333. bool operator==( PipelineViewportExclusiveScissorStateCreateInfoNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  64334. {
  64335. # if defined( VULKAN_HPP_USE_REFLECT )
  64336. return this->reflect() == rhs.reflect();
  64337. # else
  64338. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( exclusiveScissorCount == rhs.exclusiveScissorCount ) &&
  64339. ( pExclusiveScissors == rhs.pExclusiveScissors );
  64340. # endif
  64341. }
  64342. bool operator!=( PipelineViewportExclusiveScissorStateCreateInfoNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  64343. {
  64344. return !operator==( rhs );
  64345. }
  64346. #endif
  64347. public:
  64348. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineViewportExclusiveScissorStateCreateInfoNV;
  64349. const void * pNext = {};
  64350. uint32_t exclusiveScissorCount = {};
  64351. const VULKAN_HPP_NAMESPACE::Rect2D * pExclusiveScissors = {};
  64352. };
  64353. template <>
  64354. struct CppType<StructureType, StructureType::ePipelineViewportExclusiveScissorStateCreateInfoNV>
  64355. {
  64356. using Type = PipelineViewportExclusiveScissorStateCreateInfoNV;
  64357. };
  64358. struct ShadingRatePaletteNV
  64359. {
  64360. using NativeType = VkShadingRatePaletteNV;
  64361. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  64362. VULKAN_HPP_CONSTEXPR ShadingRatePaletteNV( uint32_t shadingRatePaletteEntryCount_ = {},
  64363. const VULKAN_HPP_NAMESPACE::ShadingRatePaletteEntryNV * pShadingRatePaletteEntries_ = {} ) VULKAN_HPP_NOEXCEPT
  64364. : shadingRatePaletteEntryCount( shadingRatePaletteEntryCount_ )
  64365. , pShadingRatePaletteEntries( pShadingRatePaletteEntries_ )
  64366. {
  64367. }
  64368. VULKAN_HPP_CONSTEXPR ShadingRatePaletteNV( ShadingRatePaletteNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  64369. ShadingRatePaletteNV( VkShadingRatePaletteNV const & rhs ) VULKAN_HPP_NOEXCEPT
  64370. : ShadingRatePaletteNV( *reinterpret_cast<ShadingRatePaletteNV const *>( &rhs ) )
  64371. {
  64372. }
  64373. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  64374. ShadingRatePaletteNV(
  64375. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::ShadingRatePaletteEntryNV> const & shadingRatePaletteEntries_ )
  64376. : shadingRatePaletteEntryCount( static_cast<uint32_t>( shadingRatePaletteEntries_.size() ) )
  64377. , pShadingRatePaletteEntries( shadingRatePaletteEntries_.data() )
  64378. {
  64379. }
  64380. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  64381. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  64382. ShadingRatePaletteNV & operator=( ShadingRatePaletteNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  64383. ShadingRatePaletteNV & operator=( VkShadingRatePaletteNV const & rhs ) VULKAN_HPP_NOEXCEPT
  64384. {
  64385. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ShadingRatePaletteNV const *>( &rhs );
  64386. return *this;
  64387. }
  64388. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  64389. VULKAN_HPP_CONSTEXPR_14 ShadingRatePaletteNV & setShadingRatePaletteEntryCount( uint32_t shadingRatePaletteEntryCount_ ) VULKAN_HPP_NOEXCEPT
  64390. {
  64391. shadingRatePaletteEntryCount = shadingRatePaletteEntryCount_;
  64392. return *this;
  64393. }
  64394. VULKAN_HPP_CONSTEXPR_14 ShadingRatePaletteNV &
  64395. setPShadingRatePaletteEntries( const VULKAN_HPP_NAMESPACE::ShadingRatePaletteEntryNV * pShadingRatePaletteEntries_ ) VULKAN_HPP_NOEXCEPT
  64396. {
  64397. pShadingRatePaletteEntries = pShadingRatePaletteEntries_;
  64398. return *this;
  64399. }
  64400. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  64401. ShadingRatePaletteNV & setShadingRatePaletteEntries(
  64402. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::ShadingRatePaletteEntryNV> const & shadingRatePaletteEntries_ )
  64403. VULKAN_HPP_NOEXCEPT
  64404. {
  64405. shadingRatePaletteEntryCount = static_cast<uint32_t>( shadingRatePaletteEntries_.size() );
  64406. pShadingRatePaletteEntries = shadingRatePaletteEntries_.data();
  64407. return *this;
  64408. }
  64409. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  64410. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  64411. operator VkShadingRatePaletteNV const &() const VULKAN_HPP_NOEXCEPT
  64412. {
  64413. return *reinterpret_cast<const VkShadingRatePaletteNV *>( this );
  64414. }
  64415. operator VkShadingRatePaletteNV &() VULKAN_HPP_NOEXCEPT
  64416. {
  64417. return *reinterpret_cast<VkShadingRatePaletteNV *>( this );
  64418. }
  64419. #if defined( VULKAN_HPP_USE_REFLECT )
  64420. # if 14 <= VULKAN_HPP_CPP_VERSION
  64421. auto
  64422. # else
  64423. std::tuple<uint32_t const &, const VULKAN_HPP_NAMESPACE::ShadingRatePaletteEntryNV * const &>
  64424. # endif
  64425. reflect() const VULKAN_HPP_NOEXCEPT
  64426. {
  64427. return std::tie( shadingRatePaletteEntryCount, pShadingRatePaletteEntries );
  64428. }
  64429. #endif
  64430. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  64431. auto operator<=>( ShadingRatePaletteNV const & ) const = default;
  64432. #else
  64433. bool operator==( ShadingRatePaletteNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  64434. {
  64435. # if defined( VULKAN_HPP_USE_REFLECT )
  64436. return this->reflect() == rhs.reflect();
  64437. # else
  64438. return ( shadingRatePaletteEntryCount == rhs.shadingRatePaletteEntryCount ) && ( pShadingRatePaletteEntries == rhs.pShadingRatePaletteEntries );
  64439. # endif
  64440. }
  64441. bool operator!=( ShadingRatePaletteNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  64442. {
  64443. return !operator==( rhs );
  64444. }
  64445. #endif
  64446. public:
  64447. uint32_t shadingRatePaletteEntryCount = {};
  64448. const VULKAN_HPP_NAMESPACE::ShadingRatePaletteEntryNV * pShadingRatePaletteEntries = {};
  64449. };
  64450. struct PipelineViewportShadingRateImageStateCreateInfoNV
  64451. {
  64452. using NativeType = VkPipelineViewportShadingRateImageStateCreateInfoNV;
  64453. static const bool allowDuplicate = false;
  64454. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineViewportShadingRateImageStateCreateInfoNV;
  64455. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  64456. VULKAN_HPP_CONSTEXPR PipelineViewportShadingRateImageStateCreateInfoNV( VULKAN_HPP_NAMESPACE::Bool32 shadingRateImageEnable_ = {},
  64457. uint32_t viewportCount_ = {},
  64458. const VULKAN_HPP_NAMESPACE::ShadingRatePaletteNV * pShadingRatePalettes_ = {},
  64459. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  64460. : pNext( pNext_ )
  64461. , shadingRateImageEnable( shadingRateImageEnable_ )
  64462. , viewportCount( viewportCount_ )
  64463. , pShadingRatePalettes( pShadingRatePalettes_ )
  64464. {
  64465. }
  64466. VULKAN_HPP_CONSTEXPR
  64467. PipelineViewportShadingRateImageStateCreateInfoNV( PipelineViewportShadingRateImageStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  64468. PipelineViewportShadingRateImageStateCreateInfoNV( VkPipelineViewportShadingRateImageStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
  64469. : PipelineViewportShadingRateImageStateCreateInfoNV( *reinterpret_cast<PipelineViewportShadingRateImageStateCreateInfoNV const *>( &rhs ) )
  64470. {
  64471. }
  64472. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  64473. PipelineViewportShadingRateImageStateCreateInfoNV(
  64474. VULKAN_HPP_NAMESPACE::Bool32 shadingRateImageEnable_,
  64475. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::ShadingRatePaletteNV> const & shadingRatePalettes_,
  64476. const void * pNext_ = nullptr )
  64477. : pNext( pNext_ )
  64478. , shadingRateImageEnable( shadingRateImageEnable_ )
  64479. , viewportCount( static_cast<uint32_t>( shadingRatePalettes_.size() ) )
  64480. , pShadingRatePalettes( shadingRatePalettes_.data() )
  64481. {
  64482. }
  64483. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  64484. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  64485. PipelineViewportShadingRateImageStateCreateInfoNV &
  64486. operator=( PipelineViewportShadingRateImageStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  64487. PipelineViewportShadingRateImageStateCreateInfoNV & operator=( VkPipelineViewportShadingRateImageStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
  64488. {
  64489. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PipelineViewportShadingRateImageStateCreateInfoNV const *>( &rhs );
  64490. return *this;
  64491. }
  64492. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  64493. VULKAN_HPP_CONSTEXPR_14 PipelineViewportShadingRateImageStateCreateInfoNV & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  64494. {
  64495. pNext = pNext_;
  64496. return *this;
  64497. }
  64498. VULKAN_HPP_CONSTEXPR_14 PipelineViewportShadingRateImageStateCreateInfoNV &
  64499. setShadingRateImageEnable( VULKAN_HPP_NAMESPACE::Bool32 shadingRateImageEnable_ ) VULKAN_HPP_NOEXCEPT
  64500. {
  64501. shadingRateImageEnable = shadingRateImageEnable_;
  64502. return *this;
  64503. }
  64504. VULKAN_HPP_CONSTEXPR_14 PipelineViewportShadingRateImageStateCreateInfoNV & setViewportCount( uint32_t viewportCount_ ) VULKAN_HPP_NOEXCEPT
  64505. {
  64506. viewportCount = viewportCount_;
  64507. return *this;
  64508. }
  64509. VULKAN_HPP_CONSTEXPR_14 PipelineViewportShadingRateImageStateCreateInfoNV &
  64510. setPShadingRatePalettes( const VULKAN_HPP_NAMESPACE::ShadingRatePaletteNV * pShadingRatePalettes_ ) VULKAN_HPP_NOEXCEPT
  64511. {
  64512. pShadingRatePalettes = pShadingRatePalettes_;
  64513. return *this;
  64514. }
  64515. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  64516. PipelineViewportShadingRateImageStateCreateInfoNV & setShadingRatePalettes(
  64517. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::ShadingRatePaletteNV> const & shadingRatePalettes_ ) VULKAN_HPP_NOEXCEPT
  64518. {
  64519. viewportCount = static_cast<uint32_t>( shadingRatePalettes_.size() );
  64520. pShadingRatePalettes = shadingRatePalettes_.data();
  64521. return *this;
  64522. }
  64523. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  64524. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  64525. operator VkPipelineViewportShadingRateImageStateCreateInfoNV const &() const VULKAN_HPP_NOEXCEPT
  64526. {
  64527. return *reinterpret_cast<const VkPipelineViewportShadingRateImageStateCreateInfoNV *>( this );
  64528. }
  64529. operator VkPipelineViewportShadingRateImageStateCreateInfoNV &() VULKAN_HPP_NOEXCEPT
  64530. {
  64531. return *reinterpret_cast<VkPipelineViewportShadingRateImageStateCreateInfoNV *>( this );
  64532. }
  64533. #if defined( VULKAN_HPP_USE_REFLECT )
  64534. # if 14 <= VULKAN_HPP_CPP_VERSION
  64535. auto
  64536. # else
  64537. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  64538. const void * const &,
  64539. VULKAN_HPP_NAMESPACE::Bool32 const &,
  64540. uint32_t const &,
  64541. const VULKAN_HPP_NAMESPACE::ShadingRatePaletteNV * const &>
  64542. # endif
  64543. reflect() const VULKAN_HPP_NOEXCEPT
  64544. {
  64545. return std::tie( sType, pNext, shadingRateImageEnable, viewportCount, pShadingRatePalettes );
  64546. }
  64547. #endif
  64548. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  64549. auto operator<=>( PipelineViewportShadingRateImageStateCreateInfoNV const & ) const = default;
  64550. #else
  64551. bool operator==( PipelineViewportShadingRateImageStateCreateInfoNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  64552. {
  64553. # if defined( VULKAN_HPP_USE_REFLECT )
  64554. return this->reflect() == rhs.reflect();
  64555. # else
  64556. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( shadingRateImageEnable == rhs.shadingRateImageEnable ) &&
  64557. ( viewportCount == rhs.viewportCount ) && ( pShadingRatePalettes == rhs.pShadingRatePalettes );
  64558. # endif
  64559. }
  64560. bool operator!=( PipelineViewportShadingRateImageStateCreateInfoNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  64561. {
  64562. return !operator==( rhs );
  64563. }
  64564. #endif
  64565. public:
  64566. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineViewportShadingRateImageStateCreateInfoNV;
  64567. const void * pNext = {};
  64568. VULKAN_HPP_NAMESPACE::Bool32 shadingRateImageEnable = {};
  64569. uint32_t viewportCount = {};
  64570. const VULKAN_HPP_NAMESPACE::ShadingRatePaletteNV * pShadingRatePalettes = {};
  64571. };
  64572. template <>
  64573. struct CppType<StructureType, StructureType::ePipelineViewportShadingRateImageStateCreateInfoNV>
  64574. {
  64575. using Type = PipelineViewportShadingRateImageStateCreateInfoNV;
  64576. };
  64577. struct ViewportSwizzleNV
  64578. {
  64579. using NativeType = VkViewportSwizzleNV;
  64580. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  64581. VULKAN_HPP_CONSTEXPR ViewportSwizzleNV(
  64582. VULKAN_HPP_NAMESPACE::ViewportCoordinateSwizzleNV x_ = VULKAN_HPP_NAMESPACE::ViewportCoordinateSwizzleNV::ePositiveX,
  64583. VULKAN_HPP_NAMESPACE::ViewportCoordinateSwizzleNV y_ = VULKAN_HPP_NAMESPACE::ViewportCoordinateSwizzleNV::ePositiveX,
  64584. VULKAN_HPP_NAMESPACE::ViewportCoordinateSwizzleNV z_ = VULKAN_HPP_NAMESPACE::ViewportCoordinateSwizzleNV::ePositiveX,
  64585. VULKAN_HPP_NAMESPACE::ViewportCoordinateSwizzleNV w_ = VULKAN_HPP_NAMESPACE::ViewportCoordinateSwizzleNV::ePositiveX ) VULKAN_HPP_NOEXCEPT
  64586. : x( x_ )
  64587. , y( y_ )
  64588. , z( z_ )
  64589. , w( w_ )
  64590. {
  64591. }
  64592. VULKAN_HPP_CONSTEXPR ViewportSwizzleNV( ViewportSwizzleNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  64593. ViewportSwizzleNV( VkViewportSwizzleNV const & rhs ) VULKAN_HPP_NOEXCEPT : ViewportSwizzleNV( *reinterpret_cast<ViewportSwizzleNV const *>( &rhs ) ) {}
  64594. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  64595. ViewportSwizzleNV & operator=( ViewportSwizzleNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  64596. ViewportSwizzleNV & operator=( VkViewportSwizzleNV const & rhs ) VULKAN_HPP_NOEXCEPT
  64597. {
  64598. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ViewportSwizzleNV const *>( &rhs );
  64599. return *this;
  64600. }
  64601. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  64602. VULKAN_HPP_CONSTEXPR_14 ViewportSwizzleNV & setX( VULKAN_HPP_NAMESPACE::ViewportCoordinateSwizzleNV x_ ) VULKAN_HPP_NOEXCEPT
  64603. {
  64604. x = x_;
  64605. return *this;
  64606. }
  64607. VULKAN_HPP_CONSTEXPR_14 ViewportSwizzleNV & setY( VULKAN_HPP_NAMESPACE::ViewportCoordinateSwizzleNV y_ ) VULKAN_HPP_NOEXCEPT
  64608. {
  64609. y = y_;
  64610. return *this;
  64611. }
  64612. VULKAN_HPP_CONSTEXPR_14 ViewportSwizzleNV & setZ( VULKAN_HPP_NAMESPACE::ViewportCoordinateSwizzleNV z_ ) VULKAN_HPP_NOEXCEPT
  64613. {
  64614. z = z_;
  64615. return *this;
  64616. }
  64617. VULKAN_HPP_CONSTEXPR_14 ViewportSwizzleNV & setW( VULKAN_HPP_NAMESPACE::ViewportCoordinateSwizzleNV w_ ) VULKAN_HPP_NOEXCEPT
  64618. {
  64619. w = w_;
  64620. return *this;
  64621. }
  64622. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  64623. operator VkViewportSwizzleNV const &() const VULKAN_HPP_NOEXCEPT
  64624. {
  64625. return *reinterpret_cast<const VkViewportSwizzleNV *>( this );
  64626. }
  64627. operator VkViewportSwizzleNV &() VULKAN_HPP_NOEXCEPT
  64628. {
  64629. return *reinterpret_cast<VkViewportSwizzleNV *>( this );
  64630. }
  64631. #if defined( VULKAN_HPP_USE_REFLECT )
  64632. # if 14 <= VULKAN_HPP_CPP_VERSION
  64633. auto
  64634. # else
  64635. std::tuple<VULKAN_HPP_NAMESPACE::ViewportCoordinateSwizzleNV const &,
  64636. VULKAN_HPP_NAMESPACE::ViewportCoordinateSwizzleNV const &,
  64637. VULKAN_HPP_NAMESPACE::ViewportCoordinateSwizzleNV const &,
  64638. VULKAN_HPP_NAMESPACE::ViewportCoordinateSwizzleNV const &>
  64639. # endif
  64640. reflect() const VULKAN_HPP_NOEXCEPT
  64641. {
  64642. return std::tie( x, y, z, w );
  64643. }
  64644. #endif
  64645. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  64646. auto operator<=>( ViewportSwizzleNV const & ) const = default;
  64647. #else
  64648. bool operator==( ViewportSwizzleNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  64649. {
  64650. # if defined( VULKAN_HPP_USE_REFLECT )
  64651. return this->reflect() == rhs.reflect();
  64652. # else
  64653. return ( x == rhs.x ) && ( y == rhs.y ) && ( z == rhs.z ) && ( w == rhs.w );
  64654. # endif
  64655. }
  64656. bool operator!=( ViewportSwizzleNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  64657. {
  64658. return !operator==( rhs );
  64659. }
  64660. #endif
  64661. public:
  64662. VULKAN_HPP_NAMESPACE::ViewportCoordinateSwizzleNV x = VULKAN_HPP_NAMESPACE::ViewportCoordinateSwizzleNV::ePositiveX;
  64663. VULKAN_HPP_NAMESPACE::ViewportCoordinateSwizzleNV y = VULKAN_HPP_NAMESPACE::ViewportCoordinateSwizzleNV::ePositiveX;
  64664. VULKAN_HPP_NAMESPACE::ViewportCoordinateSwizzleNV z = VULKAN_HPP_NAMESPACE::ViewportCoordinateSwizzleNV::ePositiveX;
  64665. VULKAN_HPP_NAMESPACE::ViewportCoordinateSwizzleNV w = VULKAN_HPP_NAMESPACE::ViewportCoordinateSwizzleNV::ePositiveX;
  64666. };
  64667. struct PipelineViewportSwizzleStateCreateInfoNV
  64668. {
  64669. using NativeType = VkPipelineViewportSwizzleStateCreateInfoNV;
  64670. static const bool allowDuplicate = false;
  64671. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineViewportSwizzleStateCreateInfoNV;
  64672. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  64673. VULKAN_HPP_CONSTEXPR PipelineViewportSwizzleStateCreateInfoNV( VULKAN_HPP_NAMESPACE::PipelineViewportSwizzleStateCreateFlagsNV flags_ = {},
  64674. uint32_t viewportCount_ = {},
  64675. const VULKAN_HPP_NAMESPACE::ViewportSwizzleNV * pViewportSwizzles_ = {},
  64676. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  64677. : pNext( pNext_ )
  64678. , flags( flags_ )
  64679. , viewportCount( viewportCount_ )
  64680. , pViewportSwizzles( pViewportSwizzles_ )
  64681. {
  64682. }
  64683. VULKAN_HPP_CONSTEXPR PipelineViewportSwizzleStateCreateInfoNV( PipelineViewportSwizzleStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  64684. PipelineViewportSwizzleStateCreateInfoNV( VkPipelineViewportSwizzleStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
  64685. : PipelineViewportSwizzleStateCreateInfoNV( *reinterpret_cast<PipelineViewportSwizzleStateCreateInfoNV const *>( &rhs ) )
  64686. {
  64687. }
  64688. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  64689. PipelineViewportSwizzleStateCreateInfoNV(
  64690. VULKAN_HPP_NAMESPACE::PipelineViewportSwizzleStateCreateFlagsNV flags_,
  64691. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::ViewportSwizzleNV> const & viewportSwizzles_,
  64692. const void * pNext_ = nullptr )
  64693. : pNext( pNext_ ), flags( flags_ ), viewportCount( static_cast<uint32_t>( viewportSwizzles_.size() ) ), pViewportSwizzles( viewportSwizzles_.data() )
  64694. {
  64695. }
  64696. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  64697. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  64698. PipelineViewportSwizzleStateCreateInfoNV & operator=( PipelineViewportSwizzleStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  64699. PipelineViewportSwizzleStateCreateInfoNV & operator=( VkPipelineViewportSwizzleStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
  64700. {
  64701. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PipelineViewportSwizzleStateCreateInfoNV const *>( &rhs );
  64702. return *this;
  64703. }
  64704. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  64705. VULKAN_HPP_CONSTEXPR_14 PipelineViewportSwizzleStateCreateInfoNV & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  64706. {
  64707. pNext = pNext_;
  64708. return *this;
  64709. }
  64710. VULKAN_HPP_CONSTEXPR_14 PipelineViewportSwizzleStateCreateInfoNV &
  64711. setFlags( VULKAN_HPP_NAMESPACE::PipelineViewportSwizzleStateCreateFlagsNV flags_ ) VULKAN_HPP_NOEXCEPT
  64712. {
  64713. flags = flags_;
  64714. return *this;
  64715. }
  64716. VULKAN_HPP_CONSTEXPR_14 PipelineViewportSwizzleStateCreateInfoNV & setViewportCount( uint32_t viewportCount_ ) VULKAN_HPP_NOEXCEPT
  64717. {
  64718. viewportCount = viewportCount_;
  64719. return *this;
  64720. }
  64721. VULKAN_HPP_CONSTEXPR_14 PipelineViewportSwizzleStateCreateInfoNV &
  64722. setPViewportSwizzles( const VULKAN_HPP_NAMESPACE::ViewportSwizzleNV * pViewportSwizzles_ ) VULKAN_HPP_NOEXCEPT
  64723. {
  64724. pViewportSwizzles = pViewportSwizzles_;
  64725. return *this;
  64726. }
  64727. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  64728. PipelineViewportSwizzleStateCreateInfoNV & setViewportSwizzles(
  64729. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::ViewportSwizzleNV> const & viewportSwizzles_ ) VULKAN_HPP_NOEXCEPT
  64730. {
  64731. viewportCount = static_cast<uint32_t>( viewportSwizzles_.size() );
  64732. pViewportSwizzles = viewportSwizzles_.data();
  64733. return *this;
  64734. }
  64735. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  64736. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  64737. operator VkPipelineViewportSwizzleStateCreateInfoNV const &() const VULKAN_HPP_NOEXCEPT
  64738. {
  64739. return *reinterpret_cast<const VkPipelineViewportSwizzleStateCreateInfoNV *>( this );
  64740. }
  64741. operator VkPipelineViewportSwizzleStateCreateInfoNV &() VULKAN_HPP_NOEXCEPT
  64742. {
  64743. return *reinterpret_cast<VkPipelineViewportSwizzleStateCreateInfoNV *>( this );
  64744. }
  64745. #if defined( VULKAN_HPP_USE_REFLECT )
  64746. # if 14 <= VULKAN_HPP_CPP_VERSION
  64747. auto
  64748. # else
  64749. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  64750. const void * const &,
  64751. VULKAN_HPP_NAMESPACE::PipelineViewportSwizzleStateCreateFlagsNV const &,
  64752. uint32_t const &,
  64753. const VULKAN_HPP_NAMESPACE::ViewportSwizzleNV * const &>
  64754. # endif
  64755. reflect() const VULKAN_HPP_NOEXCEPT
  64756. {
  64757. return std::tie( sType, pNext, flags, viewportCount, pViewportSwizzles );
  64758. }
  64759. #endif
  64760. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  64761. auto operator<=>( PipelineViewportSwizzleStateCreateInfoNV const & ) const = default;
  64762. #else
  64763. bool operator==( PipelineViewportSwizzleStateCreateInfoNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  64764. {
  64765. # if defined( VULKAN_HPP_USE_REFLECT )
  64766. return this->reflect() == rhs.reflect();
  64767. # else
  64768. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( flags == rhs.flags ) && ( viewportCount == rhs.viewportCount ) &&
  64769. ( pViewportSwizzles == rhs.pViewportSwizzles );
  64770. # endif
  64771. }
  64772. bool operator!=( PipelineViewportSwizzleStateCreateInfoNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  64773. {
  64774. return !operator==( rhs );
  64775. }
  64776. #endif
  64777. public:
  64778. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineViewportSwizzleStateCreateInfoNV;
  64779. const void * pNext = {};
  64780. VULKAN_HPP_NAMESPACE::PipelineViewportSwizzleStateCreateFlagsNV flags = {};
  64781. uint32_t viewportCount = {};
  64782. const VULKAN_HPP_NAMESPACE::ViewportSwizzleNV * pViewportSwizzles = {};
  64783. };
  64784. template <>
  64785. struct CppType<StructureType, StructureType::ePipelineViewportSwizzleStateCreateInfoNV>
  64786. {
  64787. using Type = PipelineViewportSwizzleStateCreateInfoNV;
  64788. };
  64789. struct ViewportWScalingNV
  64790. {
  64791. using NativeType = VkViewportWScalingNV;
  64792. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  64793. VULKAN_HPP_CONSTEXPR ViewportWScalingNV( float xcoeff_ = {}, float ycoeff_ = {} ) VULKAN_HPP_NOEXCEPT
  64794. : xcoeff( xcoeff_ )
  64795. , ycoeff( ycoeff_ )
  64796. {
  64797. }
  64798. VULKAN_HPP_CONSTEXPR ViewportWScalingNV( ViewportWScalingNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  64799. ViewportWScalingNV( VkViewportWScalingNV const & rhs ) VULKAN_HPP_NOEXCEPT : ViewportWScalingNV( *reinterpret_cast<ViewportWScalingNV const *>( &rhs ) ) {}
  64800. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  64801. ViewportWScalingNV & operator=( ViewportWScalingNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  64802. ViewportWScalingNV & operator=( VkViewportWScalingNV const & rhs ) VULKAN_HPP_NOEXCEPT
  64803. {
  64804. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ViewportWScalingNV const *>( &rhs );
  64805. return *this;
  64806. }
  64807. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  64808. VULKAN_HPP_CONSTEXPR_14 ViewportWScalingNV & setXcoeff( float xcoeff_ ) VULKAN_HPP_NOEXCEPT
  64809. {
  64810. xcoeff = xcoeff_;
  64811. return *this;
  64812. }
  64813. VULKAN_HPP_CONSTEXPR_14 ViewportWScalingNV & setYcoeff( float ycoeff_ ) VULKAN_HPP_NOEXCEPT
  64814. {
  64815. ycoeff = ycoeff_;
  64816. return *this;
  64817. }
  64818. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  64819. operator VkViewportWScalingNV const &() const VULKAN_HPP_NOEXCEPT
  64820. {
  64821. return *reinterpret_cast<const VkViewportWScalingNV *>( this );
  64822. }
  64823. operator VkViewportWScalingNV &() VULKAN_HPP_NOEXCEPT
  64824. {
  64825. return *reinterpret_cast<VkViewportWScalingNV *>( this );
  64826. }
  64827. #if defined( VULKAN_HPP_USE_REFLECT )
  64828. # if 14 <= VULKAN_HPP_CPP_VERSION
  64829. auto
  64830. # else
  64831. std::tuple<float const &, float const &>
  64832. # endif
  64833. reflect() const VULKAN_HPP_NOEXCEPT
  64834. {
  64835. return std::tie( xcoeff, ycoeff );
  64836. }
  64837. #endif
  64838. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  64839. auto operator<=>( ViewportWScalingNV const & ) const = default;
  64840. #else
  64841. bool operator==( ViewportWScalingNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  64842. {
  64843. # if defined( VULKAN_HPP_USE_REFLECT )
  64844. return this->reflect() == rhs.reflect();
  64845. # else
  64846. return ( xcoeff == rhs.xcoeff ) && ( ycoeff == rhs.ycoeff );
  64847. # endif
  64848. }
  64849. bool operator!=( ViewportWScalingNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  64850. {
  64851. return !operator==( rhs );
  64852. }
  64853. #endif
  64854. public:
  64855. float xcoeff = {};
  64856. float ycoeff = {};
  64857. };
  64858. struct PipelineViewportWScalingStateCreateInfoNV
  64859. {
  64860. using NativeType = VkPipelineViewportWScalingStateCreateInfoNV;
  64861. static const bool allowDuplicate = false;
  64862. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineViewportWScalingStateCreateInfoNV;
  64863. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  64864. VULKAN_HPP_CONSTEXPR PipelineViewportWScalingStateCreateInfoNV( VULKAN_HPP_NAMESPACE::Bool32 viewportWScalingEnable_ = {},
  64865. uint32_t viewportCount_ = {},
  64866. const VULKAN_HPP_NAMESPACE::ViewportWScalingNV * pViewportWScalings_ = {},
  64867. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  64868. : pNext( pNext_ )
  64869. , viewportWScalingEnable( viewportWScalingEnable_ )
  64870. , viewportCount( viewportCount_ )
  64871. , pViewportWScalings( pViewportWScalings_ )
  64872. {
  64873. }
  64874. VULKAN_HPP_CONSTEXPR PipelineViewportWScalingStateCreateInfoNV( PipelineViewportWScalingStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  64875. PipelineViewportWScalingStateCreateInfoNV( VkPipelineViewportWScalingStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
  64876. : PipelineViewportWScalingStateCreateInfoNV( *reinterpret_cast<PipelineViewportWScalingStateCreateInfoNV const *>( &rhs ) )
  64877. {
  64878. }
  64879. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  64880. PipelineViewportWScalingStateCreateInfoNV(
  64881. VULKAN_HPP_NAMESPACE::Bool32 viewportWScalingEnable_,
  64882. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::ViewportWScalingNV> const & viewportWScalings_,
  64883. const void * pNext_ = nullptr )
  64884. : pNext( pNext_ )
  64885. , viewportWScalingEnable( viewportWScalingEnable_ )
  64886. , viewportCount( static_cast<uint32_t>( viewportWScalings_.size() ) )
  64887. , pViewportWScalings( viewportWScalings_.data() )
  64888. {
  64889. }
  64890. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  64891. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  64892. PipelineViewportWScalingStateCreateInfoNV & operator=( PipelineViewportWScalingStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  64893. PipelineViewportWScalingStateCreateInfoNV & operator=( VkPipelineViewportWScalingStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
  64894. {
  64895. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PipelineViewportWScalingStateCreateInfoNV const *>( &rhs );
  64896. return *this;
  64897. }
  64898. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  64899. VULKAN_HPP_CONSTEXPR_14 PipelineViewportWScalingStateCreateInfoNV & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  64900. {
  64901. pNext = pNext_;
  64902. return *this;
  64903. }
  64904. VULKAN_HPP_CONSTEXPR_14 PipelineViewportWScalingStateCreateInfoNV &
  64905. setViewportWScalingEnable( VULKAN_HPP_NAMESPACE::Bool32 viewportWScalingEnable_ ) VULKAN_HPP_NOEXCEPT
  64906. {
  64907. viewportWScalingEnable = viewportWScalingEnable_;
  64908. return *this;
  64909. }
  64910. VULKAN_HPP_CONSTEXPR_14 PipelineViewportWScalingStateCreateInfoNV & setViewportCount( uint32_t viewportCount_ ) VULKAN_HPP_NOEXCEPT
  64911. {
  64912. viewportCount = viewportCount_;
  64913. return *this;
  64914. }
  64915. VULKAN_HPP_CONSTEXPR_14 PipelineViewportWScalingStateCreateInfoNV &
  64916. setPViewportWScalings( const VULKAN_HPP_NAMESPACE::ViewportWScalingNV * pViewportWScalings_ ) VULKAN_HPP_NOEXCEPT
  64917. {
  64918. pViewportWScalings = pViewportWScalings_;
  64919. return *this;
  64920. }
  64921. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  64922. PipelineViewportWScalingStateCreateInfoNV & setViewportWScalings(
  64923. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::ViewportWScalingNV> const & viewportWScalings_ ) VULKAN_HPP_NOEXCEPT
  64924. {
  64925. viewportCount = static_cast<uint32_t>( viewportWScalings_.size() );
  64926. pViewportWScalings = viewportWScalings_.data();
  64927. return *this;
  64928. }
  64929. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  64930. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  64931. operator VkPipelineViewportWScalingStateCreateInfoNV const &() const VULKAN_HPP_NOEXCEPT
  64932. {
  64933. return *reinterpret_cast<const VkPipelineViewportWScalingStateCreateInfoNV *>( this );
  64934. }
  64935. operator VkPipelineViewportWScalingStateCreateInfoNV &() VULKAN_HPP_NOEXCEPT
  64936. {
  64937. return *reinterpret_cast<VkPipelineViewportWScalingStateCreateInfoNV *>( this );
  64938. }
  64939. #if defined( VULKAN_HPP_USE_REFLECT )
  64940. # if 14 <= VULKAN_HPP_CPP_VERSION
  64941. auto
  64942. # else
  64943. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  64944. const void * const &,
  64945. VULKAN_HPP_NAMESPACE::Bool32 const &,
  64946. uint32_t const &,
  64947. const VULKAN_HPP_NAMESPACE::ViewportWScalingNV * const &>
  64948. # endif
  64949. reflect() const VULKAN_HPP_NOEXCEPT
  64950. {
  64951. return std::tie( sType, pNext, viewportWScalingEnable, viewportCount, pViewportWScalings );
  64952. }
  64953. #endif
  64954. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  64955. auto operator<=>( PipelineViewportWScalingStateCreateInfoNV const & ) const = default;
  64956. #else
  64957. bool operator==( PipelineViewportWScalingStateCreateInfoNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  64958. {
  64959. # if defined( VULKAN_HPP_USE_REFLECT )
  64960. return this->reflect() == rhs.reflect();
  64961. # else
  64962. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( viewportWScalingEnable == rhs.viewportWScalingEnable ) &&
  64963. ( viewportCount == rhs.viewportCount ) && ( pViewportWScalings == rhs.pViewportWScalings );
  64964. # endif
  64965. }
  64966. bool operator!=( PipelineViewportWScalingStateCreateInfoNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  64967. {
  64968. return !operator==( rhs );
  64969. }
  64970. #endif
  64971. public:
  64972. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineViewportWScalingStateCreateInfoNV;
  64973. const void * pNext = {};
  64974. VULKAN_HPP_NAMESPACE::Bool32 viewportWScalingEnable = {};
  64975. uint32_t viewportCount = {};
  64976. const VULKAN_HPP_NAMESPACE::ViewportWScalingNV * pViewportWScalings = {};
  64977. };
  64978. template <>
  64979. struct CppType<StructureType, StructureType::ePipelineViewportWScalingStateCreateInfoNV>
  64980. {
  64981. using Type = PipelineViewportWScalingStateCreateInfoNV;
  64982. };
  64983. #if defined( VK_USE_PLATFORM_GGP )
  64984. struct PresentFrameTokenGGP
  64985. {
  64986. using NativeType = VkPresentFrameTokenGGP;
  64987. static const bool allowDuplicate = false;
  64988. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePresentFrameTokenGGP;
  64989. # if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  64990. VULKAN_HPP_CONSTEXPR PresentFrameTokenGGP( GgpFrameToken frameToken_ = {}, const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  64991. : pNext( pNext_ )
  64992. , frameToken( frameToken_ )
  64993. {
  64994. }
  64995. VULKAN_HPP_CONSTEXPR PresentFrameTokenGGP( PresentFrameTokenGGP const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  64996. PresentFrameTokenGGP( VkPresentFrameTokenGGP const & rhs ) VULKAN_HPP_NOEXCEPT
  64997. : PresentFrameTokenGGP( *reinterpret_cast<PresentFrameTokenGGP const *>( &rhs ) )
  64998. {
  64999. }
  65000. # endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  65001. PresentFrameTokenGGP & operator=( PresentFrameTokenGGP const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  65002. PresentFrameTokenGGP & operator=( VkPresentFrameTokenGGP const & rhs ) VULKAN_HPP_NOEXCEPT
  65003. {
  65004. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PresentFrameTokenGGP const *>( &rhs );
  65005. return *this;
  65006. }
  65007. # if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  65008. VULKAN_HPP_CONSTEXPR_14 PresentFrameTokenGGP & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  65009. {
  65010. pNext = pNext_;
  65011. return *this;
  65012. }
  65013. VULKAN_HPP_CONSTEXPR_14 PresentFrameTokenGGP & setFrameToken( GgpFrameToken frameToken_ ) VULKAN_HPP_NOEXCEPT
  65014. {
  65015. frameToken = frameToken_;
  65016. return *this;
  65017. }
  65018. # endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  65019. operator VkPresentFrameTokenGGP const &() const VULKAN_HPP_NOEXCEPT
  65020. {
  65021. return *reinterpret_cast<const VkPresentFrameTokenGGP *>( this );
  65022. }
  65023. operator VkPresentFrameTokenGGP &() VULKAN_HPP_NOEXCEPT
  65024. {
  65025. return *reinterpret_cast<VkPresentFrameTokenGGP *>( this );
  65026. }
  65027. # if defined( VULKAN_HPP_USE_REFLECT )
  65028. # if 14 <= VULKAN_HPP_CPP_VERSION
  65029. auto
  65030. # else
  65031. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, GgpFrameToken const &>
  65032. # endif
  65033. reflect() const VULKAN_HPP_NOEXCEPT
  65034. {
  65035. return std::tie( sType, pNext, frameToken );
  65036. }
  65037. # endif
  65038. # if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  65039. std::strong_ordering operator<=>( PresentFrameTokenGGP const & rhs ) const VULKAN_HPP_NOEXCEPT
  65040. {
  65041. if ( auto cmp = sType <=> rhs.sType; cmp != 0 )
  65042. return cmp;
  65043. if ( auto cmp = pNext <=> rhs.pNext; cmp != 0 )
  65044. return cmp;
  65045. if ( auto cmp = memcmp( &frameToken, &rhs.frameToken, sizeof( GgpFrameToken ) ); cmp != 0 )
  65046. return ( cmp < 0 ) ? std::strong_ordering::less : std::strong_ordering::greater;
  65047. return std::strong_ordering::equivalent;
  65048. }
  65049. # endif
  65050. bool operator==( PresentFrameTokenGGP const & rhs ) const VULKAN_HPP_NOEXCEPT
  65051. {
  65052. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( memcmp( &frameToken, &rhs.frameToken, sizeof( GgpFrameToken ) ) == 0 );
  65053. }
  65054. bool operator!=( PresentFrameTokenGGP const & rhs ) const VULKAN_HPP_NOEXCEPT
  65055. {
  65056. return !operator==( rhs );
  65057. }
  65058. public:
  65059. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePresentFrameTokenGGP;
  65060. const void * pNext = {};
  65061. GgpFrameToken frameToken = {};
  65062. };
  65063. template <>
  65064. struct CppType<StructureType, StructureType::ePresentFrameTokenGGP>
  65065. {
  65066. using Type = PresentFrameTokenGGP;
  65067. };
  65068. #endif /*VK_USE_PLATFORM_GGP*/
  65069. struct PresentIdKHR
  65070. {
  65071. using NativeType = VkPresentIdKHR;
  65072. static const bool allowDuplicate = false;
  65073. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePresentIdKHR;
  65074. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  65075. VULKAN_HPP_CONSTEXPR PresentIdKHR( uint32_t swapchainCount_ = {}, const uint64_t * pPresentIds_ = {}, const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  65076. : pNext( pNext_ )
  65077. , swapchainCount( swapchainCount_ )
  65078. , pPresentIds( pPresentIds_ )
  65079. {
  65080. }
  65081. VULKAN_HPP_CONSTEXPR PresentIdKHR( PresentIdKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  65082. PresentIdKHR( VkPresentIdKHR const & rhs ) VULKAN_HPP_NOEXCEPT : PresentIdKHR( *reinterpret_cast<PresentIdKHR const *>( &rhs ) ) {}
  65083. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  65084. PresentIdKHR( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint64_t> const & presentIds_, const void * pNext_ = nullptr )
  65085. : pNext( pNext_ ), swapchainCount( static_cast<uint32_t>( presentIds_.size() ) ), pPresentIds( presentIds_.data() )
  65086. {
  65087. }
  65088. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  65089. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  65090. PresentIdKHR & operator=( PresentIdKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  65091. PresentIdKHR & operator=( VkPresentIdKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  65092. {
  65093. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PresentIdKHR const *>( &rhs );
  65094. return *this;
  65095. }
  65096. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  65097. VULKAN_HPP_CONSTEXPR_14 PresentIdKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  65098. {
  65099. pNext = pNext_;
  65100. return *this;
  65101. }
  65102. VULKAN_HPP_CONSTEXPR_14 PresentIdKHR & setSwapchainCount( uint32_t swapchainCount_ ) VULKAN_HPP_NOEXCEPT
  65103. {
  65104. swapchainCount = swapchainCount_;
  65105. return *this;
  65106. }
  65107. VULKAN_HPP_CONSTEXPR_14 PresentIdKHR & setPPresentIds( const uint64_t * pPresentIds_ ) VULKAN_HPP_NOEXCEPT
  65108. {
  65109. pPresentIds = pPresentIds_;
  65110. return *this;
  65111. }
  65112. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  65113. PresentIdKHR & setPresentIds( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint64_t> const & presentIds_ ) VULKAN_HPP_NOEXCEPT
  65114. {
  65115. swapchainCount = static_cast<uint32_t>( presentIds_.size() );
  65116. pPresentIds = presentIds_.data();
  65117. return *this;
  65118. }
  65119. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  65120. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  65121. operator VkPresentIdKHR const &() const VULKAN_HPP_NOEXCEPT
  65122. {
  65123. return *reinterpret_cast<const VkPresentIdKHR *>( this );
  65124. }
  65125. operator VkPresentIdKHR &() VULKAN_HPP_NOEXCEPT
  65126. {
  65127. return *reinterpret_cast<VkPresentIdKHR *>( this );
  65128. }
  65129. #if defined( VULKAN_HPP_USE_REFLECT )
  65130. # if 14 <= VULKAN_HPP_CPP_VERSION
  65131. auto
  65132. # else
  65133. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, uint32_t const &, const uint64_t * const &>
  65134. # endif
  65135. reflect() const VULKAN_HPP_NOEXCEPT
  65136. {
  65137. return std::tie( sType, pNext, swapchainCount, pPresentIds );
  65138. }
  65139. #endif
  65140. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  65141. auto operator<=>( PresentIdKHR const & ) const = default;
  65142. #else
  65143. bool operator==( PresentIdKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  65144. {
  65145. # if defined( VULKAN_HPP_USE_REFLECT )
  65146. return this->reflect() == rhs.reflect();
  65147. # else
  65148. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( swapchainCount == rhs.swapchainCount ) && ( pPresentIds == rhs.pPresentIds );
  65149. # endif
  65150. }
  65151. bool operator!=( PresentIdKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  65152. {
  65153. return !operator==( rhs );
  65154. }
  65155. #endif
  65156. public:
  65157. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePresentIdKHR;
  65158. const void * pNext = {};
  65159. uint32_t swapchainCount = {};
  65160. const uint64_t * pPresentIds = {};
  65161. };
  65162. template <>
  65163. struct CppType<StructureType, StructureType::ePresentIdKHR>
  65164. {
  65165. using Type = PresentIdKHR;
  65166. };
  65167. struct PresentInfoKHR
  65168. {
  65169. using NativeType = VkPresentInfoKHR;
  65170. static const bool allowDuplicate = false;
  65171. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePresentInfoKHR;
  65172. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  65173. VULKAN_HPP_CONSTEXPR PresentInfoKHR( uint32_t waitSemaphoreCount_ = {},
  65174. const VULKAN_HPP_NAMESPACE::Semaphore * pWaitSemaphores_ = {},
  65175. uint32_t swapchainCount_ = {},
  65176. const VULKAN_HPP_NAMESPACE::SwapchainKHR * pSwapchains_ = {},
  65177. const uint32_t * pImageIndices_ = {},
  65178. VULKAN_HPP_NAMESPACE::Result * pResults_ = {},
  65179. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  65180. : pNext( pNext_ )
  65181. , waitSemaphoreCount( waitSemaphoreCount_ )
  65182. , pWaitSemaphores( pWaitSemaphores_ )
  65183. , swapchainCount( swapchainCount_ )
  65184. , pSwapchains( pSwapchains_ )
  65185. , pImageIndices( pImageIndices_ )
  65186. , pResults( pResults_ )
  65187. {
  65188. }
  65189. VULKAN_HPP_CONSTEXPR PresentInfoKHR( PresentInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  65190. PresentInfoKHR( VkPresentInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT : PresentInfoKHR( *reinterpret_cast<PresentInfoKHR const *>( &rhs ) ) {}
  65191. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  65192. PresentInfoKHR( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::Semaphore> const & waitSemaphores_,
  65193. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::SwapchainKHR> const & swapchains_ = {},
  65194. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint32_t> const & imageIndices_ = {},
  65195. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<VULKAN_HPP_NAMESPACE::Result> const & results_ = {},
  65196. const void * pNext_ = nullptr )
  65197. : pNext( pNext_ )
  65198. , waitSemaphoreCount( static_cast<uint32_t>( waitSemaphores_.size() ) )
  65199. , pWaitSemaphores( waitSemaphores_.data() )
  65200. , swapchainCount( static_cast<uint32_t>( swapchains_.size() ) )
  65201. , pSwapchains( swapchains_.data() )
  65202. , pImageIndices( imageIndices_.data() )
  65203. , pResults( results_.data() )
  65204. {
  65205. # ifdef VULKAN_HPP_NO_EXCEPTIONS
  65206. VULKAN_HPP_ASSERT( swapchains_.size() == imageIndices_.size() );
  65207. VULKAN_HPP_ASSERT( results_.empty() || ( swapchains_.size() == results_.size() ) );
  65208. VULKAN_HPP_ASSERT( results_.empty() || ( imageIndices_.size() == results_.size() ) );
  65209. # else
  65210. if ( swapchains_.size() != imageIndices_.size() )
  65211. {
  65212. throw LogicError( VULKAN_HPP_NAMESPACE_STRING "::PresentInfoKHR::PresentInfoKHR: swapchains_.size() != imageIndices_.size()" );
  65213. }
  65214. if ( !results_.empty() && ( swapchains_.size() != results_.size() ) )
  65215. {
  65216. throw LogicError( VULKAN_HPP_NAMESPACE_STRING "::PresentInfoKHR::PresentInfoKHR: !results_.empty() && ( swapchains_.size() != results_.size() )" );
  65217. }
  65218. if ( !results_.empty() && ( imageIndices_.size() != results_.size() ) )
  65219. {
  65220. throw LogicError( VULKAN_HPP_NAMESPACE_STRING "::PresentInfoKHR::PresentInfoKHR: !results_.empty() && ( imageIndices_.size() != results_.size() )" );
  65221. }
  65222. # endif /*VULKAN_HPP_NO_EXCEPTIONS*/
  65223. }
  65224. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  65225. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  65226. PresentInfoKHR & operator=( PresentInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  65227. PresentInfoKHR & operator=( VkPresentInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  65228. {
  65229. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PresentInfoKHR const *>( &rhs );
  65230. return *this;
  65231. }
  65232. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  65233. VULKAN_HPP_CONSTEXPR_14 PresentInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  65234. {
  65235. pNext = pNext_;
  65236. return *this;
  65237. }
  65238. VULKAN_HPP_CONSTEXPR_14 PresentInfoKHR & setWaitSemaphoreCount( uint32_t waitSemaphoreCount_ ) VULKAN_HPP_NOEXCEPT
  65239. {
  65240. waitSemaphoreCount = waitSemaphoreCount_;
  65241. return *this;
  65242. }
  65243. VULKAN_HPP_CONSTEXPR_14 PresentInfoKHR & setPWaitSemaphores( const VULKAN_HPP_NAMESPACE::Semaphore * pWaitSemaphores_ ) VULKAN_HPP_NOEXCEPT
  65244. {
  65245. pWaitSemaphores = pWaitSemaphores_;
  65246. return *this;
  65247. }
  65248. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  65249. PresentInfoKHR &
  65250. setWaitSemaphores( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::Semaphore> const & waitSemaphores_ ) VULKAN_HPP_NOEXCEPT
  65251. {
  65252. waitSemaphoreCount = static_cast<uint32_t>( waitSemaphores_.size() );
  65253. pWaitSemaphores = waitSemaphores_.data();
  65254. return *this;
  65255. }
  65256. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  65257. VULKAN_HPP_CONSTEXPR_14 PresentInfoKHR & setSwapchainCount( uint32_t swapchainCount_ ) VULKAN_HPP_NOEXCEPT
  65258. {
  65259. swapchainCount = swapchainCount_;
  65260. return *this;
  65261. }
  65262. VULKAN_HPP_CONSTEXPR_14 PresentInfoKHR & setPSwapchains( const VULKAN_HPP_NAMESPACE::SwapchainKHR * pSwapchains_ ) VULKAN_HPP_NOEXCEPT
  65263. {
  65264. pSwapchains = pSwapchains_;
  65265. return *this;
  65266. }
  65267. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  65268. PresentInfoKHR &
  65269. setSwapchains( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::SwapchainKHR> const & swapchains_ ) VULKAN_HPP_NOEXCEPT
  65270. {
  65271. swapchainCount = static_cast<uint32_t>( swapchains_.size() );
  65272. pSwapchains = swapchains_.data();
  65273. return *this;
  65274. }
  65275. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  65276. VULKAN_HPP_CONSTEXPR_14 PresentInfoKHR & setPImageIndices( const uint32_t * pImageIndices_ ) VULKAN_HPP_NOEXCEPT
  65277. {
  65278. pImageIndices = pImageIndices_;
  65279. return *this;
  65280. }
  65281. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  65282. PresentInfoKHR & setImageIndices( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint32_t> const & imageIndices_ ) VULKAN_HPP_NOEXCEPT
  65283. {
  65284. swapchainCount = static_cast<uint32_t>( imageIndices_.size() );
  65285. pImageIndices = imageIndices_.data();
  65286. return *this;
  65287. }
  65288. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  65289. VULKAN_HPP_CONSTEXPR_14 PresentInfoKHR & setPResults( VULKAN_HPP_NAMESPACE::Result * pResults_ ) VULKAN_HPP_NOEXCEPT
  65290. {
  65291. pResults = pResults_;
  65292. return *this;
  65293. }
  65294. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  65295. PresentInfoKHR & setResults( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<VULKAN_HPP_NAMESPACE::Result> const & results_ ) VULKAN_HPP_NOEXCEPT
  65296. {
  65297. swapchainCount = static_cast<uint32_t>( results_.size() );
  65298. pResults = results_.data();
  65299. return *this;
  65300. }
  65301. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  65302. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  65303. operator VkPresentInfoKHR const &() const VULKAN_HPP_NOEXCEPT
  65304. {
  65305. return *reinterpret_cast<const VkPresentInfoKHR *>( this );
  65306. }
  65307. operator VkPresentInfoKHR &() VULKAN_HPP_NOEXCEPT
  65308. {
  65309. return *reinterpret_cast<VkPresentInfoKHR *>( this );
  65310. }
  65311. #if defined( VULKAN_HPP_USE_REFLECT )
  65312. # if 14 <= VULKAN_HPP_CPP_VERSION
  65313. auto
  65314. # else
  65315. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  65316. const void * const &,
  65317. uint32_t const &,
  65318. const VULKAN_HPP_NAMESPACE::Semaphore * const &,
  65319. uint32_t const &,
  65320. const VULKAN_HPP_NAMESPACE::SwapchainKHR * const &,
  65321. const uint32_t * const &,
  65322. VULKAN_HPP_NAMESPACE::Result * const &>
  65323. # endif
  65324. reflect() const VULKAN_HPP_NOEXCEPT
  65325. {
  65326. return std::tie( sType, pNext, waitSemaphoreCount, pWaitSemaphores, swapchainCount, pSwapchains, pImageIndices, pResults );
  65327. }
  65328. #endif
  65329. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  65330. auto operator<=>( PresentInfoKHR const & ) const = default;
  65331. #else
  65332. bool operator==( PresentInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  65333. {
  65334. # if defined( VULKAN_HPP_USE_REFLECT )
  65335. return this->reflect() == rhs.reflect();
  65336. # else
  65337. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( waitSemaphoreCount == rhs.waitSemaphoreCount ) &&
  65338. ( pWaitSemaphores == rhs.pWaitSemaphores ) && ( swapchainCount == rhs.swapchainCount ) && ( pSwapchains == rhs.pSwapchains ) &&
  65339. ( pImageIndices == rhs.pImageIndices ) && ( pResults == rhs.pResults );
  65340. # endif
  65341. }
  65342. bool operator!=( PresentInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  65343. {
  65344. return !operator==( rhs );
  65345. }
  65346. #endif
  65347. public:
  65348. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePresentInfoKHR;
  65349. const void * pNext = {};
  65350. uint32_t waitSemaphoreCount = {};
  65351. const VULKAN_HPP_NAMESPACE::Semaphore * pWaitSemaphores = {};
  65352. uint32_t swapchainCount = {};
  65353. const VULKAN_HPP_NAMESPACE::SwapchainKHR * pSwapchains = {};
  65354. const uint32_t * pImageIndices = {};
  65355. VULKAN_HPP_NAMESPACE::Result * pResults = {};
  65356. };
  65357. template <>
  65358. struct CppType<StructureType, StructureType::ePresentInfoKHR>
  65359. {
  65360. using Type = PresentInfoKHR;
  65361. };
  65362. struct RectLayerKHR
  65363. {
  65364. using NativeType = VkRectLayerKHR;
  65365. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  65366. VULKAN_HPP_CONSTEXPR
  65367. RectLayerKHR( VULKAN_HPP_NAMESPACE::Offset2D offset_ = {}, VULKAN_HPP_NAMESPACE::Extent2D extent_ = {}, uint32_t layer_ = {} ) VULKAN_HPP_NOEXCEPT
  65368. : offset( offset_ )
  65369. , extent( extent_ )
  65370. , layer( layer_ )
  65371. {
  65372. }
  65373. VULKAN_HPP_CONSTEXPR RectLayerKHR( RectLayerKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  65374. RectLayerKHR( VkRectLayerKHR const & rhs ) VULKAN_HPP_NOEXCEPT : RectLayerKHR( *reinterpret_cast<RectLayerKHR const *>( &rhs ) ) {}
  65375. explicit RectLayerKHR( Rect2D const & rect2D, uint32_t layer_ = {} ) : offset( rect2D.offset ), extent( rect2D.extent ), layer( layer_ ) {}
  65376. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  65377. RectLayerKHR & operator=( RectLayerKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  65378. RectLayerKHR & operator=( VkRectLayerKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  65379. {
  65380. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::RectLayerKHR const *>( &rhs );
  65381. return *this;
  65382. }
  65383. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  65384. VULKAN_HPP_CONSTEXPR_14 RectLayerKHR & setOffset( VULKAN_HPP_NAMESPACE::Offset2D const & offset_ ) VULKAN_HPP_NOEXCEPT
  65385. {
  65386. offset = offset_;
  65387. return *this;
  65388. }
  65389. VULKAN_HPP_CONSTEXPR_14 RectLayerKHR & setExtent( VULKAN_HPP_NAMESPACE::Extent2D const & extent_ ) VULKAN_HPP_NOEXCEPT
  65390. {
  65391. extent = extent_;
  65392. return *this;
  65393. }
  65394. VULKAN_HPP_CONSTEXPR_14 RectLayerKHR & setLayer( uint32_t layer_ ) VULKAN_HPP_NOEXCEPT
  65395. {
  65396. layer = layer_;
  65397. return *this;
  65398. }
  65399. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  65400. operator VkRectLayerKHR const &() const VULKAN_HPP_NOEXCEPT
  65401. {
  65402. return *reinterpret_cast<const VkRectLayerKHR *>( this );
  65403. }
  65404. operator VkRectLayerKHR &() VULKAN_HPP_NOEXCEPT
  65405. {
  65406. return *reinterpret_cast<VkRectLayerKHR *>( this );
  65407. }
  65408. #if defined( VULKAN_HPP_USE_REFLECT )
  65409. # if 14 <= VULKAN_HPP_CPP_VERSION
  65410. auto
  65411. # else
  65412. std::tuple<VULKAN_HPP_NAMESPACE::Offset2D const &, VULKAN_HPP_NAMESPACE::Extent2D const &, uint32_t const &>
  65413. # endif
  65414. reflect() const VULKAN_HPP_NOEXCEPT
  65415. {
  65416. return std::tie( offset, extent, layer );
  65417. }
  65418. #endif
  65419. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  65420. auto operator<=>( RectLayerKHR const & ) const = default;
  65421. #else
  65422. bool operator==( RectLayerKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  65423. {
  65424. # if defined( VULKAN_HPP_USE_REFLECT )
  65425. return this->reflect() == rhs.reflect();
  65426. # else
  65427. return ( offset == rhs.offset ) && ( extent == rhs.extent ) && ( layer == rhs.layer );
  65428. # endif
  65429. }
  65430. bool operator!=( RectLayerKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  65431. {
  65432. return !operator==( rhs );
  65433. }
  65434. #endif
  65435. public:
  65436. VULKAN_HPP_NAMESPACE::Offset2D offset = {};
  65437. VULKAN_HPP_NAMESPACE::Extent2D extent = {};
  65438. uint32_t layer = {};
  65439. };
  65440. struct PresentRegionKHR
  65441. {
  65442. using NativeType = VkPresentRegionKHR;
  65443. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  65444. VULKAN_HPP_CONSTEXPR PresentRegionKHR( uint32_t rectangleCount_ = {}, const VULKAN_HPP_NAMESPACE::RectLayerKHR * pRectangles_ = {} ) VULKAN_HPP_NOEXCEPT
  65445. : rectangleCount( rectangleCount_ )
  65446. , pRectangles( pRectangles_ )
  65447. {
  65448. }
  65449. VULKAN_HPP_CONSTEXPR PresentRegionKHR( PresentRegionKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  65450. PresentRegionKHR( VkPresentRegionKHR const & rhs ) VULKAN_HPP_NOEXCEPT : PresentRegionKHR( *reinterpret_cast<PresentRegionKHR const *>( &rhs ) ) {}
  65451. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  65452. PresentRegionKHR( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::RectLayerKHR> const & rectangles_ )
  65453. : rectangleCount( static_cast<uint32_t>( rectangles_.size() ) ), pRectangles( rectangles_.data() )
  65454. {
  65455. }
  65456. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  65457. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  65458. PresentRegionKHR & operator=( PresentRegionKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  65459. PresentRegionKHR & operator=( VkPresentRegionKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  65460. {
  65461. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PresentRegionKHR const *>( &rhs );
  65462. return *this;
  65463. }
  65464. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  65465. VULKAN_HPP_CONSTEXPR_14 PresentRegionKHR & setRectangleCount( uint32_t rectangleCount_ ) VULKAN_HPP_NOEXCEPT
  65466. {
  65467. rectangleCount = rectangleCount_;
  65468. return *this;
  65469. }
  65470. VULKAN_HPP_CONSTEXPR_14 PresentRegionKHR & setPRectangles( const VULKAN_HPP_NAMESPACE::RectLayerKHR * pRectangles_ ) VULKAN_HPP_NOEXCEPT
  65471. {
  65472. pRectangles = pRectangles_;
  65473. return *this;
  65474. }
  65475. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  65476. PresentRegionKHR &
  65477. setRectangles( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::RectLayerKHR> const & rectangles_ ) VULKAN_HPP_NOEXCEPT
  65478. {
  65479. rectangleCount = static_cast<uint32_t>( rectangles_.size() );
  65480. pRectangles = rectangles_.data();
  65481. return *this;
  65482. }
  65483. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  65484. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  65485. operator VkPresentRegionKHR const &() const VULKAN_HPP_NOEXCEPT
  65486. {
  65487. return *reinterpret_cast<const VkPresentRegionKHR *>( this );
  65488. }
  65489. operator VkPresentRegionKHR &() VULKAN_HPP_NOEXCEPT
  65490. {
  65491. return *reinterpret_cast<VkPresentRegionKHR *>( this );
  65492. }
  65493. #if defined( VULKAN_HPP_USE_REFLECT )
  65494. # if 14 <= VULKAN_HPP_CPP_VERSION
  65495. auto
  65496. # else
  65497. std::tuple<uint32_t const &, const VULKAN_HPP_NAMESPACE::RectLayerKHR * const &>
  65498. # endif
  65499. reflect() const VULKAN_HPP_NOEXCEPT
  65500. {
  65501. return std::tie( rectangleCount, pRectangles );
  65502. }
  65503. #endif
  65504. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  65505. auto operator<=>( PresentRegionKHR const & ) const = default;
  65506. #else
  65507. bool operator==( PresentRegionKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  65508. {
  65509. # if defined( VULKAN_HPP_USE_REFLECT )
  65510. return this->reflect() == rhs.reflect();
  65511. # else
  65512. return ( rectangleCount == rhs.rectangleCount ) && ( pRectangles == rhs.pRectangles );
  65513. # endif
  65514. }
  65515. bool operator!=( PresentRegionKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  65516. {
  65517. return !operator==( rhs );
  65518. }
  65519. #endif
  65520. public:
  65521. uint32_t rectangleCount = {};
  65522. const VULKAN_HPP_NAMESPACE::RectLayerKHR * pRectangles = {};
  65523. };
  65524. struct PresentRegionsKHR
  65525. {
  65526. using NativeType = VkPresentRegionsKHR;
  65527. static const bool allowDuplicate = false;
  65528. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePresentRegionsKHR;
  65529. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  65530. VULKAN_HPP_CONSTEXPR PresentRegionsKHR( uint32_t swapchainCount_ = {},
  65531. const VULKAN_HPP_NAMESPACE::PresentRegionKHR * pRegions_ = {},
  65532. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  65533. : pNext( pNext_ )
  65534. , swapchainCount( swapchainCount_ )
  65535. , pRegions( pRegions_ )
  65536. {
  65537. }
  65538. VULKAN_HPP_CONSTEXPR PresentRegionsKHR( PresentRegionsKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  65539. PresentRegionsKHR( VkPresentRegionsKHR const & rhs ) VULKAN_HPP_NOEXCEPT : PresentRegionsKHR( *reinterpret_cast<PresentRegionsKHR const *>( &rhs ) ) {}
  65540. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  65541. PresentRegionsKHR( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::PresentRegionKHR> const & regions_,
  65542. const void * pNext_ = nullptr )
  65543. : pNext( pNext_ ), swapchainCount( static_cast<uint32_t>( regions_.size() ) ), pRegions( regions_.data() )
  65544. {
  65545. }
  65546. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  65547. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  65548. PresentRegionsKHR & operator=( PresentRegionsKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  65549. PresentRegionsKHR & operator=( VkPresentRegionsKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  65550. {
  65551. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PresentRegionsKHR const *>( &rhs );
  65552. return *this;
  65553. }
  65554. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  65555. VULKAN_HPP_CONSTEXPR_14 PresentRegionsKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  65556. {
  65557. pNext = pNext_;
  65558. return *this;
  65559. }
  65560. VULKAN_HPP_CONSTEXPR_14 PresentRegionsKHR & setSwapchainCount( uint32_t swapchainCount_ ) VULKAN_HPP_NOEXCEPT
  65561. {
  65562. swapchainCount = swapchainCount_;
  65563. return *this;
  65564. }
  65565. VULKAN_HPP_CONSTEXPR_14 PresentRegionsKHR & setPRegions( const VULKAN_HPP_NAMESPACE::PresentRegionKHR * pRegions_ ) VULKAN_HPP_NOEXCEPT
  65566. {
  65567. pRegions = pRegions_;
  65568. return *this;
  65569. }
  65570. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  65571. PresentRegionsKHR &
  65572. setRegions( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::PresentRegionKHR> const & regions_ ) VULKAN_HPP_NOEXCEPT
  65573. {
  65574. swapchainCount = static_cast<uint32_t>( regions_.size() );
  65575. pRegions = regions_.data();
  65576. return *this;
  65577. }
  65578. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  65579. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  65580. operator VkPresentRegionsKHR const &() const VULKAN_HPP_NOEXCEPT
  65581. {
  65582. return *reinterpret_cast<const VkPresentRegionsKHR *>( this );
  65583. }
  65584. operator VkPresentRegionsKHR &() VULKAN_HPP_NOEXCEPT
  65585. {
  65586. return *reinterpret_cast<VkPresentRegionsKHR *>( this );
  65587. }
  65588. #if defined( VULKAN_HPP_USE_REFLECT )
  65589. # if 14 <= VULKAN_HPP_CPP_VERSION
  65590. auto
  65591. # else
  65592. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, uint32_t const &, const VULKAN_HPP_NAMESPACE::PresentRegionKHR * const &>
  65593. # endif
  65594. reflect() const VULKAN_HPP_NOEXCEPT
  65595. {
  65596. return std::tie( sType, pNext, swapchainCount, pRegions );
  65597. }
  65598. #endif
  65599. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  65600. auto operator<=>( PresentRegionsKHR const & ) const = default;
  65601. #else
  65602. bool operator==( PresentRegionsKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  65603. {
  65604. # if defined( VULKAN_HPP_USE_REFLECT )
  65605. return this->reflect() == rhs.reflect();
  65606. # else
  65607. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( swapchainCount == rhs.swapchainCount ) && ( pRegions == rhs.pRegions );
  65608. # endif
  65609. }
  65610. bool operator!=( PresentRegionsKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  65611. {
  65612. return !operator==( rhs );
  65613. }
  65614. #endif
  65615. public:
  65616. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePresentRegionsKHR;
  65617. const void * pNext = {};
  65618. uint32_t swapchainCount = {};
  65619. const VULKAN_HPP_NAMESPACE::PresentRegionKHR * pRegions = {};
  65620. };
  65621. template <>
  65622. struct CppType<StructureType, StructureType::ePresentRegionsKHR>
  65623. {
  65624. using Type = PresentRegionsKHR;
  65625. };
  65626. struct PresentTimeGOOGLE
  65627. {
  65628. using NativeType = VkPresentTimeGOOGLE;
  65629. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  65630. VULKAN_HPP_CONSTEXPR PresentTimeGOOGLE( uint32_t presentID_ = {}, uint64_t desiredPresentTime_ = {} ) VULKAN_HPP_NOEXCEPT
  65631. : presentID( presentID_ )
  65632. , desiredPresentTime( desiredPresentTime_ )
  65633. {
  65634. }
  65635. VULKAN_HPP_CONSTEXPR PresentTimeGOOGLE( PresentTimeGOOGLE const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  65636. PresentTimeGOOGLE( VkPresentTimeGOOGLE const & rhs ) VULKAN_HPP_NOEXCEPT : PresentTimeGOOGLE( *reinterpret_cast<PresentTimeGOOGLE const *>( &rhs ) ) {}
  65637. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  65638. PresentTimeGOOGLE & operator=( PresentTimeGOOGLE const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  65639. PresentTimeGOOGLE & operator=( VkPresentTimeGOOGLE const & rhs ) VULKAN_HPP_NOEXCEPT
  65640. {
  65641. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PresentTimeGOOGLE const *>( &rhs );
  65642. return *this;
  65643. }
  65644. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  65645. VULKAN_HPP_CONSTEXPR_14 PresentTimeGOOGLE & setPresentID( uint32_t presentID_ ) VULKAN_HPP_NOEXCEPT
  65646. {
  65647. presentID = presentID_;
  65648. return *this;
  65649. }
  65650. VULKAN_HPP_CONSTEXPR_14 PresentTimeGOOGLE & setDesiredPresentTime( uint64_t desiredPresentTime_ ) VULKAN_HPP_NOEXCEPT
  65651. {
  65652. desiredPresentTime = desiredPresentTime_;
  65653. return *this;
  65654. }
  65655. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  65656. operator VkPresentTimeGOOGLE const &() const VULKAN_HPP_NOEXCEPT
  65657. {
  65658. return *reinterpret_cast<const VkPresentTimeGOOGLE *>( this );
  65659. }
  65660. operator VkPresentTimeGOOGLE &() VULKAN_HPP_NOEXCEPT
  65661. {
  65662. return *reinterpret_cast<VkPresentTimeGOOGLE *>( this );
  65663. }
  65664. #if defined( VULKAN_HPP_USE_REFLECT )
  65665. # if 14 <= VULKAN_HPP_CPP_VERSION
  65666. auto
  65667. # else
  65668. std::tuple<uint32_t const &, uint64_t const &>
  65669. # endif
  65670. reflect() const VULKAN_HPP_NOEXCEPT
  65671. {
  65672. return std::tie( presentID, desiredPresentTime );
  65673. }
  65674. #endif
  65675. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  65676. auto operator<=>( PresentTimeGOOGLE const & ) const = default;
  65677. #else
  65678. bool operator==( PresentTimeGOOGLE const & rhs ) const VULKAN_HPP_NOEXCEPT
  65679. {
  65680. # if defined( VULKAN_HPP_USE_REFLECT )
  65681. return this->reflect() == rhs.reflect();
  65682. # else
  65683. return ( presentID == rhs.presentID ) && ( desiredPresentTime == rhs.desiredPresentTime );
  65684. # endif
  65685. }
  65686. bool operator!=( PresentTimeGOOGLE const & rhs ) const VULKAN_HPP_NOEXCEPT
  65687. {
  65688. return !operator==( rhs );
  65689. }
  65690. #endif
  65691. public:
  65692. uint32_t presentID = {};
  65693. uint64_t desiredPresentTime = {};
  65694. };
  65695. struct PresentTimesInfoGOOGLE
  65696. {
  65697. using NativeType = VkPresentTimesInfoGOOGLE;
  65698. static const bool allowDuplicate = false;
  65699. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePresentTimesInfoGOOGLE;
  65700. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  65701. VULKAN_HPP_CONSTEXPR PresentTimesInfoGOOGLE( uint32_t swapchainCount_ = {},
  65702. const VULKAN_HPP_NAMESPACE::PresentTimeGOOGLE * pTimes_ = {},
  65703. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  65704. : pNext( pNext_ )
  65705. , swapchainCount( swapchainCount_ )
  65706. , pTimes( pTimes_ )
  65707. {
  65708. }
  65709. VULKAN_HPP_CONSTEXPR PresentTimesInfoGOOGLE( PresentTimesInfoGOOGLE const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  65710. PresentTimesInfoGOOGLE( VkPresentTimesInfoGOOGLE const & rhs ) VULKAN_HPP_NOEXCEPT
  65711. : PresentTimesInfoGOOGLE( *reinterpret_cast<PresentTimesInfoGOOGLE const *>( &rhs ) )
  65712. {
  65713. }
  65714. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  65715. PresentTimesInfoGOOGLE( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::PresentTimeGOOGLE> const & times_,
  65716. const void * pNext_ = nullptr )
  65717. : pNext( pNext_ ), swapchainCount( static_cast<uint32_t>( times_.size() ) ), pTimes( times_.data() )
  65718. {
  65719. }
  65720. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  65721. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  65722. PresentTimesInfoGOOGLE & operator=( PresentTimesInfoGOOGLE const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  65723. PresentTimesInfoGOOGLE & operator=( VkPresentTimesInfoGOOGLE const & rhs ) VULKAN_HPP_NOEXCEPT
  65724. {
  65725. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PresentTimesInfoGOOGLE const *>( &rhs );
  65726. return *this;
  65727. }
  65728. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  65729. VULKAN_HPP_CONSTEXPR_14 PresentTimesInfoGOOGLE & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  65730. {
  65731. pNext = pNext_;
  65732. return *this;
  65733. }
  65734. VULKAN_HPP_CONSTEXPR_14 PresentTimesInfoGOOGLE & setSwapchainCount( uint32_t swapchainCount_ ) VULKAN_HPP_NOEXCEPT
  65735. {
  65736. swapchainCount = swapchainCount_;
  65737. return *this;
  65738. }
  65739. VULKAN_HPP_CONSTEXPR_14 PresentTimesInfoGOOGLE & setPTimes( const VULKAN_HPP_NAMESPACE::PresentTimeGOOGLE * pTimes_ ) VULKAN_HPP_NOEXCEPT
  65740. {
  65741. pTimes = pTimes_;
  65742. return *this;
  65743. }
  65744. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  65745. PresentTimesInfoGOOGLE &
  65746. setTimes( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::PresentTimeGOOGLE> const & times_ ) VULKAN_HPP_NOEXCEPT
  65747. {
  65748. swapchainCount = static_cast<uint32_t>( times_.size() );
  65749. pTimes = times_.data();
  65750. return *this;
  65751. }
  65752. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  65753. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  65754. operator VkPresentTimesInfoGOOGLE const &() const VULKAN_HPP_NOEXCEPT
  65755. {
  65756. return *reinterpret_cast<const VkPresentTimesInfoGOOGLE *>( this );
  65757. }
  65758. operator VkPresentTimesInfoGOOGLE &() VULKAN_HPP_NOEXCEPT
  65759. {
  65760. return *reinterpret_cast<VkPresentTimesInfoGOOGLE *>( this );
  65761. }
  65762. #if defined( VULKAN_HPP_USE_REFLECT )
  65763. # if 14 <= VULKAN_HPP_CPP_VERSION
  65764. auto
  65765. # else
  65766. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, uint32_t const &, const VULKAN_HPP_NAMESPACE::PresentTimeGOOGLE * const &>
  65767. # endif
  65768. reflect() const VULKAN_HPP_NOEXCEPT
  65769. {
  65770. return std::tie( sType, pNext, swapchainCount, pTimes );
  65771. }
  65772. #endif
  65773. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  65774. auto operator<=>( PresentTimesInfoGOOGLE const & ) const = default;
  65775. #else
  65776. bool operator==( PresentTimesInfoGOOGLE const & rhs ) const VULKAN_HPP_NOEXCEPT
  65777. {
  65778. # if defined( VULKAN_HPP_USE_REFLECT )
  65779. return this->reflect() == rhs.reflect();
  65780. # else
  65781. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( swapchainCount == rhs.swapchainCount ) && ( pTimes == rhs.pTimes );
  65782. # endif
  65783. }
  65784. bool operator!=( PresentTimesInfoGOOGLE const & rhs ) const VULKAN_HPP_NOEXCEPT
  65785. {
  65786. return !operator==( rhs );
  65787. }
  65788. #endif
  65789. public:
  65790. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePresentTimesInfoGOOGLE;
  65791. const void * pNext = {};
  65792. uint32_t swapchainCount = {};
  65793. const VULKAN_HPP_NAMESPACE::PresentTimeGOOGLE * pTimes = {};
  65794. };
  65795. template <>
  65796. struct CppType<StructureType, StructureType::ePresentTimesInfoGOOGLE>
  65797. {
  65798. using Type = PresentTimesInfoGOOGLE;
  65799. };
  65800. struct PrivateDataSlotCreateInfo
  65801. {
  65802. using NativeType = VkPrivateDataSlotCreateInfo;
  65803. static const bool allowDuplicate = false;
  65804. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePrivateDataSlotCreateInfo;
  65805. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  65806. VULKAN_HPP_CONSTEXPR PrivateDataSlotCreateInfo( VULKAN_HPP_NAMESPACE::PrivateDataSlotCreateFlags flags_ = {},
  65807. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  65808. : pNext( pNext_ )
  65809. , flags( flags_ )
  65810. {
  65811. }
  65812. VULKAN_HPP_CONSTEXPR PrivateDataSlotCreateInfo( PrivateDataSlotCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  65813. PrivateDataSlotCreateInfo( VkPrivateDataSlotCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
  65814. : PrivateDataSlotCreateInfo( *reinterpret_cast<PrivateDataSlotCreateInfo const *>( &rhs ) )
  65815. {
  65816. }
  65817. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  65818. PrivateDataSlotCreateInfo & operator=( PrivateDataSlotCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  65819. PrivateDataSlotCreateInfo & operator=( VkPrivateDataSlotCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
  65820. {
  65821. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PrivateDataSlotCreateInfo const *>( &rhs );
  65822. return *this;
  65823. }
  65824. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  65825. VULKAN_HPP_CONSTEXPR_14 PrivateDataSlotCreateInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  65826. {
  65827. pNext = pNext_;
  65828. return *this;
  65829. }
  65830. VULKAN_HPP_CONSTEXPR_14 PrivateDataSlotCreateInfo & setFlags( VULKAN_HPP_NAMESPACE::PrivateDataSlotCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT
  65831. {
  65832. flags = flags_;
  65833. return *this;
  65834. }
  65835. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  65836. operator VkPrivateDataSlotCreateInfo const &() const VULKAN_HPP_NOEXCEPT
  65837. {
  65838. return *reinterpret_cast<const VkPrivateDataSlotCreateInfo *>( this );
  65839. }
  65840. operator VkPrivateDataSlotCreateInfo &() VULKAN_HPP_NOEXCEPT
  65841. {
  65842. return *reinterpret_cast<VkPrivateDataSlotCreateInfo *>( this );
  65843. }
  65844. #if defined( VULKAN_HPP_USE_REFLECT )
  65845. # if 14 <= VULKAN_HPP_CPP_VERSION
  65846. auto
  65847. # else
  65848. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::PrivateDataSlotCreateFlags const &>
  65849. # endif
  65850. reflect() const VULKAN_HPP_NOEXCEPT
  65851. {
  65852. return std::tie( sType, pNext, flags );
  65853. }
  65854. #endif
  65855. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  65856. auto operator<=>( PrivateDataSlotCreateInfo const & ) const = default;
  65857. #else
  65858. bool operator==( PrivateDataSlotCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  65859. {
  65860. # if defined( VULKAN_HPP_USE_REFLECT )
  65861. return this->reflect() == rhs.reflect();
  65862. # else
  65863. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( flags == rhs.flags );
  65864. # endif
  65865. }
  65866. bool operator!=( PrivateDataSlotCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  65867. {
  65868. return !operator==( rhs );
  65869. }
  65870. #endif
  65871. public:
  65872. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePrivateDataSlotCreateInfo;
  65873. const void * pNext = {};
  65874. VULKAN_HPP_NAMESPACE::PrivateDataSlotCreateFlags flags = {};
  65875. };
  65876. template <>
  65877. struct CppType<StructureType, StructureType::ePrivateDataSlotCreateInfo>
  65878. {
  65879. using Type = PrivateDataSlotCreateInfo;
  65880. };
  65881. using PrivateDataSlotCreateInfoEXT = PrivateDataSlotCreateInfo;
  65882. struct ProtectedSubmitInfo
  65883. {
  65884. using NativeType = VkProtectedSubmitInfo;
  65885. static const bool allowDuplicate = false;
  65886. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eProtectedSubmitInfo;
  65887. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  65888. VULKAN_HPP_CONSTEXPR ProtectedSubmitInfo( VULKAN_HPP_NAMESPACE::Bool32 protectedSubmit_ = {}, const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  65889. : pNext( pNext_ )
  65890. , protectedSubmit( protectedSubmit_ )
  65891. {
  65892. }
  65893. VULKAN_HPP_CONSTEXPR ProtectedSubmitInfo( ProtectedSubmitInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  65894. ProtectedSubmitInfo( VkProtectedSubmitInfo const & rhs ) VULKAN_HPP_NOEXCEPT : ProtectedSubmitInfo( *reinterpret_cast<ProtectedSubmitInfo const *>( &rhs ) )
  65895. {
  65896. }
  65897. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  65898. ProtectedSubmitInfo & operator=( ProtectedSubmitInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  65899. ProtectedSubmitInfo & operator=( VkProtectedSubmitInfo const & rhs ) VULKAN_HPP_NOEXCEPT
  65900. {
  65901. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ProtectedSubmitInfo const *>( &rhs );
  65902. return *this;
  65903. }
  65904. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  65905. VULKAN_HPP_CONSTEXPR_14 ProtectedSubmitInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  65906. {
  65907. pNext = pNext_;
  65908. return *this;
  65909. }
  65910. VULKAN_HPP_CONSTEXPR_14 ProtectedSubmitInfo & setProtectedSubmit( VULKAN_HPP_NAMESPACE::Bool32 protectedSubmit_ ) VULKAN_HPP_NOEXCEPT
  65911. {
  65912. protectedSubmit = protectedSubmit_;
  65913. return *this;
  65914. }
  65915. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  65916. operator VkProtectedSubmitInfo const &() const VULKAN_HPP_NOEXCEPT
  65917. {
  65918. return *reinterpret_cast<const VkProtectedSubmitInfo *>( this );
  65919. }
  65920. operator VkProtectedSubmitInfo &() VULKAN_HPP_NOEXCEPT
  65921. {
  65922. return *reinterpret_cast<VkProtectedSubmitInfo *>( this );
  65923. }
  65924. #if defined( VULKAN_HPP_USE_REFLECT )
  65925. # if 14 <= VULKAN_HPP_CPP_VERSION
  65926. auto
  65927. # else
  65928. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
  65929. # endif
  65930. reflect() const VULKAN_HPP_NOEXCEPT
  65931. {
  65932. return std::tie( sType, pNext, protectedSubmit );
  65933. }
  65934. #endif
  65935. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  65936. auto operator<=>( ProtectedSubmitInfo const & ) const = default;
  65937. #else
  65938. bool operator==( ProtectedSubmitInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  65939. {
  65940. # if defined( VULKAN_HPP_USE_REFLECT )
  65941. return this->reflect() == rhs.reflect();
  65942. # else
  65943. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( protectedSubmit == rhs.protectedSubmit );
  65944. # endif
  65945. }
  65946. bool operator!=( ProtectedSubmitInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  65947. {
  65948. return !operator==( rhs );
  65949. }
  65950. #endif
  65951. public:
  65952. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eProtectedSubmitInfo;
  65953. const void * pNext = {};
  65954. VULKAN_HPP_NAMESPACE::Bool32 protectedSubmit = {};
  65955. };
  65956. template <>
  65957. struct CppType<StructureType, StructureType::eProtectedSubmitInfo>
  65958. {
  65959. using Type = ProtectedSubmitInfo;
  65960. };
  65961. struct QueryPoolCreateInfo
  65962. {
  65963. using NativeType = VkQueryPoolCreateInfo;
  65964. static const bool allowDuplicate = false;
  65965. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eQueryPoolCreateInfo;
  65966. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  65967. VULKAN_HPP_CONSTEXPR QueryPoolCreateInfo( VULKAN_HPP_NAMESPACE::QueryPoolCreateFlags flags_ = {},
  65968. VULKAN_HPP_NAMESPACE::QueryType queryType_ = VULKAN_HPP_NAMESPACE::QueryType::eOcclusion,
  65969. uint32_t queryCount_ = {},
  65970. VULKAN_HPP_NAMESPACE::QueryPipelineStatisticFlags pipelineStatistics_ = {},
  65971. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  65972. : pNext( pNext_ )
  65973. , flags( flags_ )
  65974. , queryType( queryType_ )
  65975. , queryCount( queryCount_ )
  65976. , pipelineStatistics( pipelineStatistics_ )
  65977. {
  65978. }
  65979. VULKAN_HPP_CONSTEXPR QueryPoolCreateInfo( QueryPoolCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  65980. QueryPoolCreateInfo( VkQueryPoolCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT : QueryPoolCreateInfo( *reinterpret_cast<QueryPoolCreateInfo const *>( &rhs ) )
  65981. {
  65982. }
  65983. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  65984. QueryPoolCreateInfo & operator=( QueryPoolCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  65985. QueryPoolCreateInfo & operator=( VkQueryPoolCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
  65986. {
  65987. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::QueryPoolCreateInfo const *>( &rhs );
  65988. return *this;
  65989. }
  65990. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  65991. VULKAN_HPP_CONSTEXPR_14 QueryPoolCreateInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  65992. {
  65993. pNext = pNext_;
  65994. return *this;
  65995. }
  65996. VULKAN_HPP_CONSTEXPR_14 QueryPoolCreateInfo & setFlags( VULKAN_HPP_NAMESPACE::QueryPoolCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT
  65997. {
  65998. flags = flags_;
  65999. return *this;
  66000. }
  66001. VULKAN_HPP_CONSTEXPR_14 QueryPoolCreateInfo & setQueryType( VULKAN_HPP_NAMESPACE::QueryType queryType_ ) VULKAN_HPP_NOEXCEPT
  66002. {
  66003. queryType = queryType_;
  66004. return *this;
  66005. }
  66006. VULKAN_HPP_CONSTEXPR_14 QueryPoolCreateInfo & setQueryCount( uint32_t queryCount_ ) VULKAN_HPP_NOEXCEPT
  66007. {
  66008. queryCount = queryCount_;
  66009. return *this;
  66010. }
  66011. VULKAN_HPP_CONSTEXPR_14 QueryPoolCreateInfo &
  66012. setPipelineStatistics( VULKAN_HPP_NAMESPACE::QueryPipelineStatisticFlags pipelineStatistics_ ) VULKAN_HPP_NOEXCEPT
  66013. {
  66014. pipelineStatistics = pipelineStatistics_;
  66015. return *this;
  66016. }
  66017. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  66018. operator VkQueryPoolCreateInfo const &() const VULKAN_HPP_NOEXCEPT
  66019. {
  66020. return *reinterpret_cast<const VkQueryPoolCreateInfo *>( this );
  66021. }
  66022. operator VkQueryPoolCreateInfo &() VULKAN_HPP_NOEXCEPT
  66023. {
  66024. return *reinterpret_cast<VkQueryPoolCreateInfo *>( this );
  66025. }
  66026. #if defined( VULKAN_HPP_USE_REFLECT )
  66027. # if 14 <= VULKAN_HPP_CPP_VERSION
  66028. auto
  66029. # else
  66030. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  66031. const void * const &,
  66032. VULKAN_HPP_NAMESPACE::QueryPoolCreateFlags const &,
  66033. VULKAN_HPP_NAMESPACE::QueryType const &,
  66034. uint32_t const &,
  66035. VULKAN_HPP_NAMESPACE::QueryPipelineStatisticFlags const &>
  66036. # endif
  66037. reflect() const VULKAN_HPP_NOEXCEPT
  66038. {
  66039. return std::tie( sType, pNext, flags, queryType, queryCount, pipelineStatistics );
  66040. }
  66041. #endif
  66042. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  66043. auto operator<=>( QueryPoolCreateInfo const & ) const = default;
  66044. #else
  66045. bool operator==( QueryPoolCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  66046. {
  66047. # if defined( VULKAN_HPP_USE_REFLECT )
  66048. return this->reflect() == rhs.reflect();
  66049. # else
  66050. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( flags == rhs.flags ) && ( queryType == rhs.queryType ) && ( queryCount == rhs.queryCount ) &&
  66051. ( pipelineStatistics == rhs.pipelineStatistics );
  66052. # endif
  66053. }
  66054. bool operator!=( QueryPoolCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  66055. {
  66056. return !operator==( rhs );
  66057. }
  66058. #endif
  66059. public:
  66060. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eQueryPoolCreateInfo;
  66061. const void * pNext = {};
  66062. VULKAN_HPP_NAMESPACE::QueryPoolCreateFlags flags = {};
  66063. VULKAN_HPP_NAMESPACE::QueryType queryType = VULKAN_HPP_NAMESPACE::QueryType::eOcclusion;
  66064. uint32_t queryCount = {};
  66065. VULKAN_HPP_NAMESPACE::QueryPipelineStatisticFlags pipelineStatistics = {};
  66066. };
  66067. template <>
  66068. struct CppType<StructureType, StructureType::eQueryPoolCreateInfo>
  66069. {
  66070. using Type = QueryPoolCreateInfo;
  66071. };
  66072. struct QueryPoolPerformanceCreateInfoKHR
  66073. {
  66074. using NativeType = VkQueryPoolPerformanceCreateInfoKHR;
  66075. static const bool allowDuplicate = false;
  66076. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eQueryPoolPerformanceCreateInfoKHR;
  66077. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  66078. VULKAN_HPP_CONSTEXPR QueryPoolPerformanceCreateInfoKHR( uint32_t queueFamilyIndex_ = {},
  66079. uint32_t counterIndexCount_ = {},
  66080. const uint32_t * pCounterIndices_ = {},
  66081. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  66082. : pNext( pNext_ )
  66083. , queueFamilyIndex( queueFamilyIndex_ )
  66084. , counterIndexCount( counterIndexCount_ )
  66085. , pCounterIndices( pCounterIndices_ )
  66086. {
  66087. }
  66088. VULKAN_HPP_CONSTEXPR QueryPoolPerformanceCreateInfoKHR( QueryPoolPerformanceCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  66089. QueryPoolPerformanceCreateInfoKHR( VkQueryPoolPerformanceCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  66090. : QueryPoolPerformanceCreateInfoKHR( *reinterpret_cast<QueryPoolPerformanceCreateInfoKHR const *>( &rhs ) )
  66091. {
  66092. }
  66093. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  66094. QueryPoolPerformanceCreateInfoKHR( uint32_t queueFamilyIndex_,
  66095. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint32_t> const & counterIndices_,
  66096. const void * pNext_ = nullptr )
  66097. : pNext( pNext_ )
  66098. , queueFamilyIndex( queueFamilyIndex_ )
  66099. , counterIndexCount( static_cast<uint32_t>( counterIndices_.size() ) )
  66100. , pCounterIndices( counterIndices_.data() )
  66101. {
  66102. }
  66103. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  66104. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  66105. QueryPoolPerformanceCreateInfoKHR & operator=( QueryPoolPerformanceCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  66106. QueryPoolPerformanceCreateInfoKHR & operator=( VkQueryPoolPerformanceCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  66107. {
  66108. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::QueryPoolPerformanceCreateInfoKHR const *>( &rhs );
  66109. return *this;
  66110. }
  66111. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  66112. VULKAN_HPP_CONSTEXPR_14 QueryPoolPerformanceCreateInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  66113. {
  66114. pNext = pNext_;
  66115. return *this;
  66116. }
  66117. VULKAN_HPP_CONSTEXPR_14 QueryPoolPerformanceCreateInfoKHR & setQueueFamilyIndex( uint32_t queueFamilyIndex_ ) VULKAN_HPP_NOEXCEPT
  66118. {
  66119. queueFamilyIndex = queueFamilyIndex_;
  66120. return *this;
  66121. }
  66122. VULKAN_HPP_CONSTEXPR_14 QueryPoolPerformanceCreateInfoKHR & setCounterIndexCount( uint32_t counterIndexCount_ ) VULKAN_HPP_NOEXCEPT
  66123. {
  66124. counterIndexCount = counterIndexCount_;
  66125. return *this;
  66126. }
  66127. VULKAN_HPP_CONSTEXPR_14 QueryPoolPerformanceCreateInfoKHR & setPCounterIndices( const uint32_t * pCounterIndices_ ) VULKAN_HPP_NOEXCEPT
  66128. {
  66129. pCounterIndices = pCounterIndices_;
  66130. return *this;
  66131. }
  66132. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  66133. QueryPoolPerformanceCreateInfoKHR &
  66134. setCounterIndices( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint32_t> const & counterIndices_ ) VULKAN_HPP_NOEXCEPT
  66135. {
  66136. counterIndexCount = static_cast<uint32_t>( counterIndices_.size() );
  66137. pCounterIndices = counterIndices_.data();
  66138. return *this;
  66139. }
  66140. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  66141. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  66142. operator VkQueryPoolPerformanceCreateInfoKHR const &() const VULKAN_HPP_NOEXCEPT
  66143. {
  66144. return *reinterpret_cast<const VkQueryPoolPerformanceCreateInfoKHR *>( this );
  66145. }
  66146. operator VkQueryPoolPerformanceCreateInfoKHR &() VULKAN_HPP_NOEXCEPT
  66147. {
  66148. return *reinterpret_cast<VkQueryPoolPerformanceCreateInfoKHR *>( this );
  66149. }
  66150. #if defined( VULKAN_HPP_USE_REFLECT )
  66151. # if 14 <= VULKAN_HPP_CPP_VERSION
  66152. auto
  66153. # else
  66154. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, uint32_t const &, uint32_t const &, const uint32_t * const &>
  66155. # endif
  66156. reflect() const VULKAN_HPP_NOEXCEPT
  66157. {
  66158. return std::tie( sType, pNext, queueFamilyIndex, counterIndexCount, pCounterIndices );
  66159. }
  66160. #endif
  66161. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  66162. auto operator<=>( QueryPoolPerformanceCreateInfoKHR const & ) const = default;
  66163. #else
  66164. bool operator==( QueryPoolPerformanceCreateInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  66165. {
  66166. # if defined( VULKAN_HPP_USE_REFLECT )
  66167. return this->reflect() == rhs.reflect();
  66168. # else
  66169. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( queueFamilyIndex == rhs.queueFamilyIndex ) &&
  66170. ( counterIndexCount == rhs.counterIndexCount ) && ( pCounterIndices == rhs.pCounterIndices );
  66171. # endif
  66172. }
  66173. bool operator!=( QueryPoolPerformanceCreateInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  66174. {
  66175. return !operator==( rhs );
  66176. }
  66177. #endif
  66178. public:
  66179. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eQueryPoolPerformanceCreateInfoKHR;
  66180. const void * pNext = {};
  66181. uint32_t queueFamilyIndex = {};
  66182. uint32_t counterIndexCount = {};
  66183. const uint32_t * pCounterIndices = {};
  66184. };
  66185. template <>
  66186. struct CppType<StructureType, StructureType::eQueryPoolPerformanceCreateInfoKHR>
  66187. {
  66188. using Type = QueryPoolPerformanceCreateInfoKHR;
  66189. };
  66190. struct QueryPoolPerformanceQueryCreateInfoINTEL
  66191. {
  66192. using NativeType = VkQueryPoolPerformanceQueryCreateInfoINTEL;
  66193. static const bool allowDuplicate = false;
  66194. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eQueryPoolPerformanceQueryCreateInfoINTEL;
  66195. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  66196. VULKAN_HPP_CONSTEXPR QueryPoolPerformanceQueryCreateInfoINTEL(
  66197. VULKAN_HPP_NAMESPACE::QueryPoolSamplingModeINTEL performanceCountersSampling_ = VULKAN_HPP_NAMESPACE::QueryPoolSamplingModeINTEL::eManual,
  66198. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  66199. : pNext( pNext_ )
  66200. , performanceCountersSampling( performanceCountersSampling_ )
  66201. {
  66202. }
  66203. VULKAN_HPP_CONSTEXPR QueryPoolPerformanceQueryCreateInfoINTEL( QueryPoolPerformanceQueryCreateInfoINTEL const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  66204. QueryPoolPerformanceQueryCreateInfoINTEL( VkQueryPoolPerformanceQueryCreateInfoINTEL const & rhs ) VULKAN_HPP_NOEXCEPT
  66205. : QueryPoolPerformanceQueryCreateInfoINTEL( *reinterpret_cast<QueryPoolPerformanceQueryCreateInfoINTEL const *>( &rhs ) )
  66206. {
  66207. }
  66208. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  66209. QueryPoolPerformanceQueryCreateInfoINTEL & operator=( QueryPoolPerformanceQueryCreateInfoINTEL const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  66210. QueryPoolPerformanceQueryCreateInfoINTEL & operator=( VkQueryPoolPerformanceQueryCreateInfoINTEL const & rhs ) VULKAN_HPP_NOEXCEPT
  66211. {
  66212. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::QueryPoolPerformanceQueryCreateInfoINTEL const *>( &rhs );
  66213. return *this;
  66214. }
  66215. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  66216. VULKAN_HPP_CONSTEXPR_14 QueryPoolPerformanceQueryCreateInfoINTEL & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  66217. {
  66218. pNext = pNext_;
  66219. return *this;
  66220. }
  66221. VULKAN_HPP_CONSTEXPR_14 QueryPoolPerformanceQueryCreateInfoINTEL &
  66222. setPerformanceCountersSampling( VULKAN_HPP_NAMESPACE::QueryPoolSamplingModeINTEL performanceCountersSampling_ ) VULKAN_HPP_NOEXCEPT
  66223. {
  66224. performanceCountersSampling = performanceCountersSampling_;
  66225. return *this;
  66226. }
  66227. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  66228. operator VkQueryPoolPerformanceQueryCreateInfoINTEL const &() const VULKAN_HPP_NOEXCEPT
  66229. {
  66230. return *reinterpret_cast<const VkQueryPoolPerformanceQueryCreateInfoINTEL *>( this );
  66231. }
  66232. operator VkQueryPoolPerformanceQueryCreateInfoINTEL &() VULKAN_HPP_NOEXCEPT
  66233. {
  66234. return *reinterpret_cast<VkQueryPoolPerformanceQueryCreateInfoINTEL *>( this );
  66235. }
  66236. #if defined( VULKAN_HPP_USE_REFLECT )
  66237. # if 14 <= VULKAN_HPP_CPP_VERSION
  66238. auto
  66239. # else
  66240. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::QueryPoolSamplingModeINTEL const &>
  66241. # endif
  66242. reflect() const VULKAN_HPP_NOEXCEPT
  66243. {
  66244. return std::tie( sType, pNext, performanceCountersSampling );
  66245. }
  66246. #endif
  66247. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  66248. auto operator<=>( QueryPoolPerformanceQueryCreateInfoINTEL const & ) const = default;
  66249. #else
  66250. bool operator==( QueryPoolPerformanceQueryCreateInfoINTEL const & rhs ) const VULKAN_HPP_NOEXCEPT
  66251. {
  66252. # if defined( VULKAN_HPP_USE_REFLECT )
  66253. return this->reflect() == rhs.reflect();
  66254. # else
  66255. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( performanceCountersSampling == rhs.performanceCountersSampling );
  66256. # endif
  66257. }
  66258. bool operator!=( QueryPoolPerformanceQueryCreateInfoINTEL const & rhs ) const VULKAN_HPP_NOEXCEPT
  66259. {
  66260. return !operator==( rhs );
  66261. }
  66262. #endif
  66263. public:
  66264. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eQueryPoolPerformanceQueryCreateInfoINTEL;
  66265. const void * pNext = {};
  66266. VULKAN_HPP_NAMESPACE::QueryPoolSamplingModeINTEL performanceCountersSampling = VULKAN_HPP_NAMESPACE::QueryPoolSamplingModeINTEL::eManual;
  66267. };
  66268. template <>
  66269. struct CppType<StructureType, StructureType::eQueryPoolPerformanceQueryCreateInfoINTEL>
  66270. {
  66271. using Type = QueryPoolPerformanceQueryCreateInfoINTEL;
  66272. };
  66273. using QueryPoolCreateInfoINTEL = QueryPoolPerformanceQueryCreateInfoINTEL;
  66274. struct QueueFamilyCheckpointProperties2NV
  66275. {
  66276. using NativeType = VkQueueFamilyCheckpointProperties2NV;
  66277. static const bool allowDuplicate = false;
  66278. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eQueueFamilyCheckpointProperties2NV;
  66279. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  66280. VULKAN_HPP_CONSTEXPR QueueFamilyCheckpointProperties2NV( VULKAN_HPP_NAMESPACE::PipelineStageFlags2 checkpointExecutionStageMask_ = {},
  66281. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  66282. : pNext( pNext_ )
  66283. , checkpointExecutionStageMask( checkpointExecutionStageMask_ )
  66284. {
  66285. }
  66286. VULKAN_HPP_CONSTEXPR QueueFamilyCheckpointProperties2NV( QueueFamilyCheckpointProperties2NV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  66287. QueueFamilyCheckpointProperties2NV( VkQueueFamilyCheckpointProperties2NV const & rhs ) VULKAN_HPP_NOEXCEPT
  66288. : QueueFamilyCheckpointProperties2NV( *reinterpret_cast<QueueFamilyCheckpointProperties2NV const *>( &rhs ) )
  66289. {
  66290. }
  66291. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  66292. QueueFamilyCheckpointProperties2NV & operator=( QueueFamilyCheckpointProperties2NV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  66293. QueueFamilyCheckpointProperties2NV & operator=( VkQueueFamilyCheckpointProperties2NV const & rhs ) VULKAN_HPP_NOEXCEPT
  66294. {
  66295. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::QueueFamilyCheckpointProperties2NV const *>( &rhs );
  66296. return *this;
  66297. }
  66298. operator VkQueueFamilyCheckpointProperties2NV const &() const VULKAN_HPP_NOEXCEPT
  66299. {
  66300. return *reinterpret_cast<const VkQueueFamilyCheckpointProperties2NV *>( this );
  66301. }
  66302. operator VkQueueFamilyCheckpointProperties2NV &() VULKAN_HPP_NOEXCEPT
  66303. {
  66304. return *reinterpret_cast<VkQueueFamilyCheckpointProperties2NV *>( this );
  66305. }
  66306. #if defined( VULKAN_HPP_USE_REFLECT )
  66307. # if 14 <= VULKAN_HPP_CPP_VERSION
  66308. auto
  66309. # else
  66310. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::PipelineStageFlags2 const &>
  66311. # endif
  66312. reflect() const VULKAN_HPP_NOEXCEPT
  66313. {
  66314. return std::tie( sType, pNext, checkpointExecutionStageMask );
  66315. }
  66316. #endif
  66317. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  66318. auto operator<=>( QueueFamilyCheckpointProperties2NV const & ) const = default;
  66319. #else
  66320. bool operator==( QueueFamilyCheckpointProperties2NV const & rhs ) const VULKAN_HPP_NOEXCEPT
  66321. {
  66322. # if defined( VULKAN_HPP_USE_REFLECT )
  66323. return this->reflect() == rhs.reflect();
  66324. # else
  66325. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( checkpointExecutionStageMask == rhs.checkpointExecutionStageMask );
  66326. # endif
  66327. }
  66328. bool operator!=( QueueFamilyCheckpointProperties2NV const & rhs ) const VULKAN_HPP_NOEXCEPT
  66329. {
  66330. return !operator==( rhs );
  66331. }
  66332. #endif
  66333. public:
  66334. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eQueueFamilyCheckpointProperties2NV;
  66335. void * pNext = {};
  66336. VULKAN_HPP_NAMESPACE::PipelineStageFlags2 checkpointExecutionStageMask = {};
  66337. };
  66338. template <>
  66339. struct CppType<StructureType, StructureType::eQueueFamilyCheckpointProperties2NV>
  66340. {
  66341. using Type = QueueFamilyCheckpointProperties2NV;
  66342. };
  66343. struct QueueFamilyCheckpointPropertiesNV
  66344. {
  66345. using NativeType = VkQueueFamilyCheckpointPropertiesNV;
  66346. static const bool allowDuplicate = false;
  66347. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eQueueFamilyCheckpointPropertiesNV;
  66348. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  66349. VULKAN_HPP_CONSTEXPR QueueFamilyCheckpointPropertiesNV( VULKAN_HPP_NAMESPACE::PipelineStageFlags checkpointExecutionStageMask_ = {},
  66350. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  66351. : pNext( pNext_ )
  66352. , checkpointExecutionStageMask( checkpointExecutionStageMask_ )
  66353. {
  66354. }
  66355. VULKAN_HPP_CONSTEXPR QueueFamilyCheckpointPropertiesNV( QueueFamilyCheckpointPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  66356. QueueFamilyCheckpointPropertiesNV( VkQueueFamilyCheckpointPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT
  66357. : QueueFamilyCheckpointPropertiesNV( *reinterpret_cast<QueueFamilyCheckpointPropertiesNV const *>( &rhs ) )
  66358. {
  66359. }
  66360. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  66361. QueueFamilyCheckpointPropertiesNV & operator=( QueueFamilyCheckpointPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  66362. QueueFamilyCheckpointPropertiesNV & operator=( VkQueueFamilyCheckpointPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT
  66363. {
  66364. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::QueueFamilyCheckpointPropertiesNV const *>( &rhs );
  66365. return *this;
  66366. }
  66367. operator VkQueueFamilyCheckpointPropertiesNV const &() const VULKAN_HPP_NOEXCEPT
  66368. {
  66369. return *reinterpret_cast<const VkQueueFamilyCheckpointPropertiesNV *>( this );
  66370. }
  66371. operator VkQueueFamilyCheckpointPropertiesNV &() VULKAN_HPP_NOEXCEPT
  66372. {
  66373. return *reinterpret_cast<VkQueueFamilyCheckpointPropertiesNV *>( this );
  66374. }
  66375. #if defined( VULKAN_HPP_USE_REFLECT )
  66376. # if 14 <= VULKAN_HPP_CPP_VERSION
  66377. auto
  66378. # else
  66379. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::PipelineStageFlags const &>
  66380. # endif
  66381. reflect() const VULKAN_HPP_NOEXCEPT
  66382. {
  66383. return std::tie( sType, pNext, checkpointExecutionStageMask );
  66384. }
  66385. #endif
  66386. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  66387. auto operator<=>( QueueFamilyCheckpointPropertiesNV const & ) const = default;
  66388. #else
  66389. bool operator==( QueueFamilyCheckpointPropertiesNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  66390. {
  66391. # if defined( VULKAN_HPP_USE_REFLECT )
  66392. return this->reflect() == rhs.reflect();
  66393. # else
  66394. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( checkpointExecutionStageMask == rhs.checkpointExecutionStageMask );
  66395. # endif
  66396. }
  66397. bool operator!=( QueueFamilyCheckpointPropertiesNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  66398. {
  66399. return !operator==( rhs );
  66400. }
  66401. #endif
  66402. public:
  66403. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eQueueFamilyCheckpointPropertiesNV;
  66404. void * pNext = {};
  66405. VULKAN_HPP_NAMESPACE::PipelineStageFlags checkpointExecutionStageMask = {};
  66406. };
  66407. template <>
  66408. struct CppType<StructureType, StructureType::eQueueFamilyCheckpointPropertiesNV>
  66409. {
  66410. using Type = QueueFamilyCheckpointPropertiesNV;
  66411. };
  66412. struct QueueFamilyGlobalPriorityPropertiesKHR
  66413. {
  66414. using NativeType = VkQueueFamilyGlobalPriorityPropertiesKHR;
  66415. static const bool allowDuplicate = false;
  66416. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eQueueFamilyGlobalPriorityPropertiesKHR;
  66417. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  66418. VULKAN_HPP_CONSTEXPR_14
  66419. QueueFamilyGlobalPriorityPropertiesKHR( uint32_t priorityCount_ = {},
  66420. std::array<VULKAN_HPP_NAMESPACE::QueueGlobalPriorityKHR, VK_MAX_GLOBAL_PRIORITY_SIZE_KHR> const &
  66421. priorities_ = { { VULKAN_HPP_NAMESPACE::QueueGlobalPriorityKHR::eLow,
  66422. VULKAN_HPP_NAMESPACE::QueueGlobalPriorityKHR::eLow,
  66423. VULKAN_HPP_NAMESPACE::QueueGlobalPriorityKHR::eLow,
  66424. VULKAN_HPP_NAMESPACE::QueueGlobalPriorityKHR::eLow,
  66425. VULKAN_HPP_NAMESPACE::QueueGlobalPriorityKHR::eLow,
  66426. VULKAN_HPP_NAMESPACE::QueueGlobalPriorityKHR::eLow,
  66427. VULKAN_HPP_NAMESPACE::QueueGlobalPriorityKHR::eLow,
  66428. VULKAN_HPP_NAMESPACE::QueueGlobalPriorityKHR::eLow,
  66429. VULKAN_HPP_NAMESPACE::QueueGlobalPriorityKHR::eLow,
  66430. VULKAN_HPP_NAMESPACE::QueueGlobalPriorityKHR::eLow,
  66431. VULKAN_HPP_NAMESPACE::QueueGlobalPriorityKHR::eLow,
  66432. VULKAN_HPP_NAMESPACE::QueueGlobalPriorityKHR::eLow,
  66433. VULKAN_HPP_NAMESPACE::QueueGlobalPriorityKHR::eLow,
  66434. VULKAN_HPP_NAMESPACE::QueueGlobalPriorityKHR::eLow,
  66435. VULKAN_HPP_NAMESPACE::QueueGlobalPriorityKHR::eLow,
  66436. VULKAN_HPP_NAMESPACE::QueueGlobalPriorityKHR::eLow } },
  66437. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  66438. : pNext( pNext_ )
  66439. , priorityCount( priorityCount_ )
  66440. , priorities( priorities_ )
  66441. {
  66442. }
  66443. VULKAN_HPP_CONSTEXPR_14 QueueFamilyGlobalPriorityPropertiesKHR( QueueFamilyGlobalPriorityPropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  66444. QueueFamilyGlobalPriorityPropertiesKHR( VkQueueFamilyGlobalPriorityPropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  66445. : QueueFamilyGlobalPriorityPropertiesKHR( *reinterpret_cast<QueueFamilyGlobalPriorityPropertiesKHR const *>( &rhs ) )
  66446. {
  66447. }
  66448. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  66449. QueueFamilyGlobalPriorityPropertiesKHR & operator=( QueueFamilyGlobalPriorityPropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  66450. QueueFamilyGlobalPriorityPropertiesKHR & operator=( VkQueueFamilyGlobalPriorityPropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  66451. {
  66452. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::QueueFamilyGlobalPriorityPropertiesKHR const *>( &rhs );
  66453. return *this;
  66454. }
  66455. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  66456. VULKAN_HPP_CONSTEXPR_14 QueueFamilyGlobalPriorityPropertiesKHR & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
  66457. {
  66458. pNext = pNext_;
  66459. return *this;
  66460. }
  66461. VULKAN_HPP_CONSTEXPR_14 QueueFamilyGlobalPriorityPropertiesKHR & setPriorityCount( uint32_t priorityCount_ ) VULKAN_HPP_NOEXCEPT
  66462. {
  66463. priorityCount = priorityCount_;
  66464. return *this;
  66465. }
  66466. VULKAN_HPP_CONSTEXPR_14 QueueFamilyGlobalPriorityPropertiesKHR &
  66467. setPriorities( std::array<VULKAN_HPP_NAMESPACE::QueueGlobalPriorityKHR, VK_MAX_GLOBAL_PRIORITY_SIZE_KHR> priorities_ ) VULKAN_HPP_NOEXCEPT
  66468. {
  66469. priorities = priorities_;
  66470. return *this;
  66471. }
  66472. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  66473. operator VkQueueFamilyGlobalPriorityPropertiesKHR const &() const VULKAN_HPP_NOEXCEPT
  66474. {
  66475. return *reinterpret_cast<const VkQueueFamilyGlobalPriorityPropertiesKHR *>( this );
  66476. }
  66477. operator VkQueueFamilyGlobalPriorityPropertiesKHR &() VULKAN_HPP_NOEXCEPT
  66478. {
  66479. return *reinterpret_cast<VkQueueFamilyGlobalPriorityPropertiesKHR *>( this );
  66480. }
  66481. #if defined( VULKAN_HPP_USE_REFLECT )
  66482. # if 14 <= VULKAN_HPP_CPP_VERSION
  66483. auto
  66484. # else
  66485. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  66486. void * const &,
  66487. uint32_t const &,
  66488. VULKAN_HPP_NAMESPACE::ArrayWrapper1D<VULKAN_HPP_NAMESPACE::QueueGlobalPriorityKHR, VK_MAX_GLOBAL_PRIORITY_SIZE_KHR> const &>
  66489. # endif
  66490. reflect() const VULKAN_HPP_NOEXCEPT
  66491. {
  66492. return std::tie( sType, pNext, priorityCount, priorities );
  66493. }
  66494. #endif
  66495. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  66496. auto operator<=>( QueueFamilyGlobalPriorityPropertiesKHR const & ) const = default;
  66497. #else
  66498. bool operator==( QueueFamilyGlobalPriorityPropertiesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  66499. {
  66500. # if defined( VULKAN_HPP_USE_REFLECT )
  66501. return this->reflect() == rhs.reflect();
  66502. # else
  66503. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( priorityCount == rhs.priorityCount ) && ( priorities == rhs.priorities );
  66504. # endif
  66505. }
  66506. bool operator!=( QueueFamilyGlobalPriorityPropertiesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  66507. {
  66508. return !operator==( rhs );
  66509. }
  66510. #endif
  66511. public:
  66512. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eQueueFamilyGlobalPriorityPropertiesKHR;
  66513. void * pNext = {};
  66514. uint32_t priorityCount = {};
  66515. VULKAN_HPP_NAMESPACE::ArrayWrapper1D<VULKAN_HPP_NAMESPACE::QueueGlobalPriorityKHR, VK_MAX_GLOBAL_PRIORITY_SIZE_KHR> priorities = {};
  66516. };
  66517. template <>
  66518. struct CppType<StructureType, StructureType::eQueueFamilyGlobalPriorityPropertiesKHR>
  66519. {
  66520. using Type = QueueFamilyGlobalPriorityPropertiesKHR;
  66521. };
  66522. using QueueFamilyGlobalPriorityPropertiesEXT = QueueFamilyGlobalPriorityPropertiesKHR;
  66523. struct QueueFamilyProperties
  66524. {
  66525. using NativeType = VkQueueFamilyProperties;
  66526. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  66527. VULKAN_HPP_CONSTEXPR QueueFamilyProperties( VULKAN_HPP_NAMESPACE::QueueFlags queueFlags_ = {},
  66528. uint32_t queueCount_ = {},
  66529. uint32_t timestampValidBits_ = {},
  66530. VULKAN_HPP_NAMESPACE::Extent3D minImageTransferGranularity_ = {} ) VULKAN_HPP_NOEXCEPT
  66531. : queueFlags( queueFlags_ )
  66532. , queueCount( queueCount_ )
  66533. , timestampValidBits( timestampValidBits_ )
  66534. , minImageTransferGranularity( minImageTransferGranularity_ )
  66535. {
  66536. }
  66537. VULKAN_HPP_CONSTEXPR QueueFamilyProperties( QueueFamilyProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  66538. QueueFamilyProperties( VkQueueFamilyProperties const & rhs ) VULKAN_HPP_NOEXCEPT
  66539. : QueueFamilyProperties( *reinterpret_cast<QueueFamilyProperties const *>( &rhs ) )
  66540. {
  66541. }
  66542. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  66543. QueueFamilyProperties & operator=( QueueFamilyProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  66544. QueueFamilyProperties & operator=( VkQueueFamilyProperties const & rhs ) VULKAN_HPP_NOEXCEPT
  66545. {
  66546. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::QueueFamilyProperties const *>( &rhs );
  66547. return *this;
  66548. }
  66549. operator VkQueueFamilyProperties const &() const VULKAN_HPP_NOEXCEPT
  66550. {
  66551. return *reinterpret_cast<const VkQueueFamilyProperties *>( this );
  66552. }
  66553. operator VkQueueFamilyProperties &() VULKAN_HPP_NOEXCEPT
  66554. {
  66555. return *reinterpret_cast<VkQueueFamilyProperties *>( this );
  66556. }
  66557. #if defined( VULKAN_HPP_USE_REFLECT )
  66558. # if 14 <= VULKAN_HPP_CPP_VERSION
  66559. auto
  66560. # else
  66561. std::tuple<VULKAN_HPP_NAMESPACE::QueueFlags const &, uint32_t const &, uint32_t const &, VULKAN_HPP_NAMESPACE::Extent3D const &>
  66562. # endif
  66563. reflect() const VULKAN_HPP_NOEXCEPT
  66564. {
  66565. return std::tie( queueFlags, queueCount, timestampValidBits, minImageTransferGranularity );
  66566. }
  66567. #endif
  66568. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  66569. auto operator<=>( QueueFamilyProperties const & ) const = default;
  66570. #else
  66571. bool operator==( QueueFamilyProperties const & rhs ) const VULKAN_HPP_NOEXCEPT
  66572. {
  66573. # if defined( VULKAN_HPP_USE_REFLECT )
  66574. return this->reflect() == rhs.reflect();
  66575. # else
  66576. return ( queueFlags == rhs.queueFlags ) && ( queueCount == rhs.queueCount ) && ( timestampValidBits == rhs.timestampValidBits ) &&
  66577. ( minImageTransferGranularity == rhs.minImageTransferGranularity );
  66578. # endif
  66579. }
  66580. bool operator!=( QueueFamilyProperties const & rhs ) const VULKAN_HPP_NOEXCEPT
  66581. {
  66582. return !operator==( rhs );
  66583. }
  66584. #endif
  66585. public:
  66586. VULKAN_HPP_NAMESPACE::QueueFlags queueFlags = {};
  66587. uint32_t queueCount = {};
  66588. uint32_t timestampValidBits = {};
  66589. VULKAN_HPP_NAMESPACE::Extent3D minImageTransferGranularity = {};
  66590. };
  66591. struct QueueFamilyProperties2
  66592. {
  66593. using NativeType = VkQueueFamilyProperties2;
  66594. static const bool allowDuplicate = false;
  66595. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eQueueFamilyProperties2;
  66596. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  66597. VULKAN_HPP_CONSTEXPR QueueFamilyProperties2( VULKAN_HPP_NAMESPACE::QueueFamilyProperties queueFamilyProperties_ = {},
  66598. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  66599. : pNext( pNext_ )
  66600. , queueFamilyProperties( queueFamilyProperties_ )
  66601. {
  66602. }
  66603. VULKAN_HPP_CONSTEXPR QueueFamilyProperties2( QueueFamilyProperties2 const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  66604. QueueFamilyProperties2( VkQueueFamilyProperties2 const & rhs ) VULKAN_HPP_NOEXCEPT
  66605. : QueueFamilyProperties2( *reinterpret_cast<QueueFamilyProperties2 const *>( &rhs ) )
  66606. {
  66607. }
  66608. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  66609. QueueFamilyProperties2 & operator=( QueueFamilyProperties2 const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  66610. QueueFamilyProperties2 & operator=( VkQueueFamilyProperties2 const & rhs ) VULKAN_HPP_NOEXCEPT
  66611. {
  66612. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::QueueFamilyProperties2 const *>( &rhs );
  66613. return *this;
  66614. }
  66615. operator VkQueueFamilyProperties2 const &() const VULKAN_HPP_NOEXCEPT
  66616. {
  66617. return *reinterpret_cast<const VkQueueFamilyProperties2 *>( this );
  66618. }
  66619. operator VkQueueFamilyProperties2 &() VULKAN_HPP_NOEXCEPT
  66620. {
  66621. return *reinterpret_cast<VkQueueFamilyProperties2 *>( this );
  66622. }
  66623. #if defined( VULKAN_HPP_USE_REFLECT )
  66624. # if 14 <= VULKAN_HPP_CPP_VERSION
  66625. auto
  66626. # else
  66627. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::QueueFamilyProperties const &>
  66628. # endif
  66629. reflect() const VULKAN_HPP_NOEXCEPT
  66630. {
  66631. return std::tie( sType, pNext, queueFamilyProperties );
  66632. }
  66633. #endif
  66634. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  66635. auto operator<=>( QueueFamilyProperties2 const & ) const = default;
  66636. #else
  66637. bool operator==( QueueFamilyProperties2 const & rhs ) const VULKAN_HPP_NOEXCEPT
  66638. {
  66639. # if defined( VULKAN_HPP_USE_REFLECT )
  66640. return this->reflect() == rhs.reflect();
  66641. # else
  66642. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( queueFamilyProperties == rhs.queueFamilyProperties );
  66643. # endif
  66644. }
  66645. bool operator!=( QueueFamilyProperties2 const & rhs ) const VULKAN_HPP_NOEXCEPT
  66646. {
  66647. return !operator==( rhs );
  66648. }
  66649. #endif
  66650. public:
  66651. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eQueueFamilyProperties2;
  66652. void * pNext = {};
  66653. VULKAN_HPP_NAMESPACE::QueueFamilyProperties queueFamilyProperties = {};
  66654. };
  66655. template <>
  66656. struct CppType<StructureType, StructureType::eQueueFamilyProperties2>
  66657. {
  66658. using Type = QueueFamilyProperties2;
  66659. };
  66660. using QueueFamilyProperties2KHR = QueueFamilyProperties2;
  66661. #if defined( VK_ENABLE_BETA_EXTENSIONS )
  66662. struct QueueFamilyQueryResultStatusPropertiesKHR
  66663. {
  66664. using NativeType = VkQueueFamilyQueryResultStatusPropertiesKHR;
  66665. static const bool allowDuplicate = false;
  66666. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eQueueFamilyQueryResultStatusPropertiesKHR;
  66667. # if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  66668. VULKAN_HPP_CONSTEXPR QueueFamilyQueryResultStatusPropertiesKHR( VULKAN_HPP_NAMESPACE::Bool32 queryResultStatusSupport_ = {},
  66669. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  66670. : pNext( pNext_ )
  66671. , queryResultStatusSupport( queryResultStatusSupport_ )
  66672. {
  66673. }
  66674. VULKAN_HPP_CONSTEXPR QueueFamilyQueryResultStatusPropertiesKHR( QueueFamilyQueryResultStatusPropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  66675. QueueFamilyQueryResultStatusPropertiesKHR( VkQueueFamilyQueryResultStatusPropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  66676. : QueueFamilyQueryResultStatusPropertiesKHR( *reinterpret_cast<QueueFamilyQueryResultStatusPropertiesKHR const *>( &rhs ) )
  66677. {
  66678. }
  66679. # endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  66680. QueueFamilyQueryResultStatusPropertiesKHR & operator=( QueueFamilyQueryResultStatusPropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  66681. QueueFamilyQueryResultStatusPropertiesKHR & operator=( VkQueueFamilyQueryResultStatusPropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  66682. {
  66683. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::QueueFamilyQueryResultStatusPropertiesKHR const *>( &rhs );
  66684. return *this;
  66685. }
  66686. # if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  66687. VULKAN_HPP_CONSTEXPR_14 QueueFamilyQueryResultStatusPropertiesKHR & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
  66688. {
  66689. pNext = pNext_;
  66690. return *this;
  66691. }
  66692. VULKAN_HPP_CONSTEXPR_14 QueueFamilyQueryResultStatusPropertiesKHR &
  66693. setQueryResultStatusSupport( VULKAN_HPP_NAMESPACE::Bool32 queryResultStatusSupport_ ) VULKAN_HPP_NOEXCEPT
  66694. {
  66695. queryResultStatusSupport = queryResultStatusSupport_;
  66696. return *this;
  66697. }
  66698. # endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  66699. operator VkQueueFamilyQueryResultStatusPropertiesKHR const &() const VULKAN_HPP_NOEXCEPT
  66700. {
  66701. return *reinterpret_cast<const VkQueueFamilyQueryResultStatusPropertiesKHR *>( this );
  66702. }
  66703. operator VkQueueFamilyQueryResultStatusPropertiesKHR &() VULKAN_HPP_NOEXCEPT
  66704. {
  66705. return *reinterpret_cast<VkQueueFamilyQueryResultStatusPropertiesKHR *>( this );
  66706. }
  66707. # if defined( VULKAN_HPP_USE_REFLECT )
  66708. # if 14 <= VULKAN_HPP_CPP_VERSION
  66709. auto
  66710. # else
  66711. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
  66712. # endif
  66713. reflect() const VULKAN_HPP_NOEXCEPT
  66714. {
  66715. return std::tie( sType, pNext, queryResultStatusSupport );
  66716. }
  66717. # endif
  66718. # if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  66719. auto operator<=>( QueueFamilyQueryResultStatusPropertiesKHR const & ) const = default;
  66720. # else
  66721. bool operator==( QueueFamilyQueryResultStatusPropertiesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  66722. {
  66723. # if defined( VULKAN_HPP_USE_REFLECT )
  66724. return this->reflect() == rhs.reflect();
  66725. # else
  66726. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( queryResultStatusSupport == rhs.queryResultStatusSupport );
  66727. # endif
  66728. }
  66729. bool operator!=( QueueFamilyQueryResultStatusPropertiesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  66730. {
  66731. return !operator==( rhs );
  66732. }
  66733. # endif
  66734. public:
  66735. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eQueueFamilyQueryResultStatusPropertiesKHR;
  66736. void * pNext = {};
  66737. VULKAN_HPP_NAMESPACE::Bool32 queryResultStatusSupport = {};
  66738. };
  66739. template <>
  66740. struct CppType<StructureType, StructureType::eQueueFamilyQueryResultStatusPropertiesKHR>
  66741. {
  66742. using Type = QueueFamilyQueryResultStatusPropertiesKHR;
  66743. };
  66744. #endif /*VK_ENABLE_BETA_EXTENSIONS*/
  66745. #if defined( VK_ENABLE_BETA_EXTENSIONS )
  66746. struct QueueFamilyVideoPropertiesKHR
  66747. {
  66748. using NativeType = VkQueueFamilyVideoPropertiesKHR;
  66749. static const bool allowDuplicate = false;
  66750. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eQueueFamilyVideoPropertiesKHR;
  66751. # if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  66752. VULKAN_HPP_CONSTEXPR QueueFamilyVideoPropertiesKHR( VULKAN_HPP_NAMESPACE::VideoCodecOperationFlagsKHR videoCodecOperations_ = {},
  66753. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  66754. : pNext( pNext_ )
  66755. , videoCodecOperations( videoCodecOperations_ )
  66756. {
  66757. }
  66758. VULKAN_HPP_CONSTEXPR QueueFamilyVideoPropertiesKHR( QueueFamilyVideoPropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  66759. QueueFamilyVideoPropertiesKHR( VkQueueFamilyVideoPropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  66760. : QueueFamilyVideoPropertiesKHR( *reinterpret_cast<QueueFamilyVideoPropertiesKHR const *>( &rhs ) )
  66761. {
  66762. }
  66763. # endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  66764. QueueFamilyVideoPropertiesKHR & operator=( QueueFamilyVideoPropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  66765. QueueFamilyVideoPropertiesKHR & operator=( VkQueueFamilyVideoPropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  66766. {
  66767. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::QueueFamilyVideoPropertiesKHR const *>( &rhs );
  66768. return *this;
  66769. }
  66770. # if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  66771. VULKAN_HPP_CONSTEXPR_14 QueueFamilyVideoPropertiesKHR & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
  66772. {
  66773. pNext = pNext_;
  66774. return *this;
  66775. }
  66776. VULKAN_HPP_CONSTEXPR_14 QueueFamilyVideoPropertiesKHR &
  66777. setVideoCodecOperations( VULKAN_HPP_NAMESPACE::VideoCodecOperationFlagsKHR videoCodecOperations_ ) VULKAN_HPP_NOEXCEPT
  66778. {
  66779. videoCodecOperations = videoCodecOperations_;
  66780. return *this;
  66781. }
  66782. # endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  66783. operator VkQueueFamilyVideoPropertiesKHR const &() const VULKAN_HPP_NOEXCEPT
  66784. {
  66785. return *reinterpret_cast<const VkQueueFamilyVideoPropertiesKHR *>( this );
  66786. }
  66787. operator VkQueueFamilyVideoPropertiesKHR &() VULKAN_HPP_NOEXCEPT
  66788. {
  66789. return *reinterpret_cast<VkQueueFamilyVideoPropertiesKHR *>( this );
  66790. }
  66791. # if defined( VULKAN_HPP_USE_REFLECT )
  66792. # if 14 <= VULKAN_HPP_CPP_VERSION
  66793. auto
  66794. # else
  66795. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::VideoCodecOperationFlagsKHR const &>
  66796. # endif
  66797. reflect() const VULKAN_HPP_NOEXCEPT
  66798. {
  66799. return std::tie( sType, pNext, videoCodecOperations );
  66800. }
  66801. # endif
  66802. # if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  66803. auto operator<=>( QueueFamilyVideoPropertiesKHR const & ) const = default;
  66804. # else
  66805. bool operator==( QueueFamilyVideoPropertiesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  66806. {
  66807. # if defined( VULKAN_HPP_USE_REFLECT )
  66808. return this->reflect() == rhs.reflect();
  66809. # else
  66810. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( videoCodecOperations == rhs.videoCodecOperations );
  66811. # endif
  66812. }
  66813. bool operator!=( QueueFamilyVideoPropertiesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  66814. {
  66815. return !operator==( rhs );
  66816. }
  66817. # endif
  66818. public:
  66819. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eQueueFamilyVideoPropertiesKHR;
  66820. void * pNext = {};
  66821. VULKAN_HPP_NAMESPACE::VideoCodecOperationFlagsKHR videoCodecOperations = {};
  66822. };
  66823. template <>
  66824. struct CppType<StructureType, StructureType::eQueueFamilyVideoPropertiesKHR>
  66825. {
  66826. using Type = QueueFamilyVideoPropertiesKHR;
  66827. };
  66828. #endif /*VK_ENABLE_BETA_EXTENSIONS*/
  66829. struct RayTracingShaderGroupCreateInfoKHR
  66830. {
  66831. using NativeType = VkRayTracingShaderGroupCreateInfoKHR;
  66832. static const bool allowDuplicate = false;
  66833. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eRayTracingShaderGroupCreateInfoKHR;
  66834. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  66835. VULKAN_HPP_CONSTEXPR RayTracingShaderGroupCreateInfoKHR(
  66836. VULKAN_HPP_NAMESPACE::RayTracingShaderGroupTypeKHR type_ = VULKAN_HPP_NAMESPACE::RayTracingShaderGroupTypeKHR::eGeneral,
  66837. uint32_t generalShader_ = {},
  66838. uint32_t closestHitShader_ = {},
  66839. uint32_t anyHitShader_ = {},
  66840. uint32_t intersectionShader_ = {},
  66841. const void * pShaderGroupCaptureReplayHandle_ = {},
  66842. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  66843. : pNext( pNext_ )
  66844. , type( type_ )
  66845. , generalShader( generalShader_ )
  66846. , closestHitShader( closestHitShader_ )
  66847. , anyHitShader( anyHitShader_ )
  66848. , intersectionShader( intersectionShader_ )
  66849. , pShaderGroupCaptureReplayHandle( pShaderGroupCaptureReplayHandle_ )
  66850. {
  66851. }
  66852. VULKAN_HPP_CONSTEXPR RayTracingShaderGroupCreateInfoKHR( RayTracingShaderGroupCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  66853. RayTracingShaderGroupCreateInfoKHR( VkRayTracingShaderGroupCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  66854. : RayTracingShaderGroupCreateInfoKHR( *reinterpret_cast<RayTracingShaderGroupCreateInfoKHR const *>( &rhs ) )
  66855. {
  66856. }
  66857. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  66858. RayTracingShaderGroupCreateInfoKHR & operator=( RayTracingShaderGroupCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  66859. RayTracingShaderGroupCreateInfoKHR & operator=( VkRayTracingShaderGroupCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  66860. {
  66861. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::RayTracingShaderGroupCreateInfoKHR const *>( &rhs );
  66862. return *this;
  66863. }
  66864. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  66865. VULKAN_HPP_CONSTEXPR_14 RayTracingShaderGroupCreateInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  66866. {
  66867. pNext = pNext_;
  66868. return *this;
  66869. }
  66870. VULKAN_HPP_CONSTEXPR_14 RayTracingShaderGroupCreateInfoKHR & setType( VULKAN_HPP_NAMESPACE::RayTracingShaderGroupTypeKHR type_ ) VULKAN_HPP_NOEXCEPT
  66871. {
  66872. type = type_;
  66873. return *this;
  66874. }
  66875. VULKAN_HPP_CONSTEXPR_14 RayTracingShaderGroupCreateInfoKHR & setGeneralShader( uint32_t generalShader_ ) VULKAN_HPP_NOEXCEPT
  66876. {
  66877. generalShader = generalShader_;
  66878. return *this;
  66879. }
  66880. VULKAN_HPP_CONSTEXPR_14 RayTracingShaderGroupCreateInfoKHR & setClosestHitShader( uint32_t closestHitShader_ ) VULKAN_HPP_NOEXCEPT
  66881. {
  66882. closestHitShader = closestHitShader_;
  66883. return *this;
  66884. }
  66885. VULKAN_HPP_CONSTEXPR_14 RayTracingShaderGroupCreateInfoKHR & setAnyHitShader( uint32_t anyHitShader_ ) VULKAN_HPP_NOEXCEPT
  66886. {
  66887. anyHitShader = anyHitShader_;
  66888. return *this;
  66889. }
  66890. VULKAN_HPP_CONSTEXPR_14 RayTracingShaderGroupCreateInfoKHR & setIntersectionShader( uint32_t intersectionShader_ ) VULKAN_HPP_NOEXCEPT
  66891. {
  66892. intersectionShader = intersectionShader_;
  66893. return *this;
  66894. }
  66895. VULKAN_HPP_CONSTEXPR_14 RayTracingShaderGroupCreateInfoKHR &
  66896. setPShaderGroupCaptureReplayHandle( const void * pShaderGroupCaptureReplayHandle_ ) VULKAN_HPP_NOEXCEPT
  66897. {
  66898. pShaderGroupCaptureReplayHandle = pShaderGroupCaptureReplayHandle_;
  66899. return *this;
  66900. }
  66901. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  66902. operator VkRayTracingShaderGroupCreateInfoKHR const &() const VULKAN_HPP_NOEXCEPT
  66903. {
  66904. return *reinterpret_cast<const VkRayTracingShaderGroupCreateInfoKHR *>( this );
  66905. }
  66906. operator VkRayTracingShaderGroupCreateInfoKHR &() VULKAN_HPP_NOEXCEPT
  66907. {
  66908. return *reinterpret_cast<VkRayTracingShaderGroupCreateInfoKHR *>( this );
  66909. }
  66910. #if defined( VULKAN_HPP_USE_REFLECT )
  66911. # if 14 <= VULKAN_HPP_CPP_VERSION
  66912. auto
  66913. # else
  66914. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  66915. const void * const &,
  66916. VULKAN_HPP_NAMESPACE::RayTracingShaderGroupTypeKHR const &,
  66917. uint32_t const &,
  66918. uint32_t const &,
  66919. uint32_t const &,
  66920. uint32_t const &,
  66921. const void * const &>
  66922. # endif
  66923. reflect() const VULKAN_HPP_NOEXCEPT
  66924. {
  66925. return std::tie( sType, pNext, type, generalShader, closestHitShader, anyHitShader, intersectionShader, pShaderGroupCaptureReplayHandle );
  66926. }
  66927. #endif
  66928. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  66929. auto operator<=>( RayTracingShaderGroupCreateInfoKHR const & ) const = default;
  66930. #else
  66931. bool operator==( RayTracingShaderGroupCreateInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  66932. {
  66933. # if defined( VULKAN_HPP_USE_REFLECT )
  66934. return this->reflect() == rhs.reflect();
  66935. # else
  66936. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( type == rhs.type ) && ( generalShader == rhs.generalShader ) &&
  66937. ( closestHitShader == rhs.closestHitShader ) && ( anyHitShader == rhs.anyHitShader ) && ( intersectionShader == rhs.intersectionShader ) &&
  66938. ( pShaderGroupCaptureReplayHandle == rhs.pShaderGroupCaptureReplayHandle );
  66939. # endif
  66940. }
  66941. bool operator!=( RayTracingShaderGroupCreateInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  66942. {
  66943. return !operator==( rhs );
  66944. }
  66945. #endif
  66946. public:
  66947. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eRayTracingShaderGroupCreateInfoKHR;
  66948. const void * pNext = {};
  66949. VULKAN_HPP_NAMESPACE::RayTracingShaderGroupTypeKHR type = VULKAN_HPP_NAMESPACE::RayTracingShaderGroupTypeKHR::eGeneral;
  66950. uint32_t generalShader = {};
  66951. uint32_t closestHitShader = {};
  66952. uint32_t anyHitShader = {};
  66953. uint32_t intersectionShader = {};
  66954. const void * pShaderGroupCaptureReplayHandle = {};
  66955. };
  66956. template <>
  66957. struct CppType<StructureType, StructureType::eRayTracingShaderGroupCreateInfoKHR>
  66958. {
  66959. using Type = RayTracingShaderGroupCreateInfoKHR;
  66960. };
  66961. struct RayTracingPipelineInterfaceCreateInfoKHR
  66962. {
  66963. using NativeType = VkRayTracingPipelineInterfaceCreateInfoKHR;
  66964. static const bool allowDuplicate = false;
  66965. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eRayTracingPipelineInterfaceCreateInfoKHR;
  66966. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  66967. VULKAN_HPP_CONSTEXPR RayTracingPipelineInterfaceCreateInfoKHR( uint32_t maxPipelineRayPayloadSize_ = {},
  66968. uint32_t maxPipelineRayHitAttributeSize_ = {},
  66969. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  66970. : pNext( pNext_ )
  66971. , maxPipelineRayPayloadSize( maxPipelineRayPayloadSize_ )
  66972. , maxPipelineRayHitAttributeSize( maxPipelineRayHitAttributeSize_ )
  66973. {
  66974. }
  66975. VULKAN_HPP_CONSTEXPR RayTracingPipelineInterfaceCreateInfoKHR( RayTracingPipelineInterfaceCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  66976. RayTracingPipelineInterfaceCreateInfoKHR( VkRayTracingPipelineInterfaceCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  66977. : RayTracingPipelineInterfaceCreateInfoKHR( *reinterpret_cast<RayTracingPipelineInterfaceCreateInfoKHR const *>( &rhs ) )
  66978. {
  66979. }
  66980. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  66981. RayTracingPipelineInterfaceCreateInfoKHR & operator=( RayTracingPipelineInterfaceCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  66982. RayTracingPipelineInterfaceCreateInfoKHR & operator=( VkRayTracingPipelineInterfaceCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  66983. {
  66984. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::RayTracingPipelineInterfaceCreateInfoKHR const *>( &rhs );
  66985. return *this;
  66986. }
  66987. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  66988. VULKAN_HPP_CONSTEXPR_14 RayTracingPipelineInterfaceCreateInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  66989. {
  66990. pNext = pNext_;
  66991. return *this;
  66992. }
  66993. VULKAN_HPP_CONSTEXPR_14 RayTracingPipelineInterfaceCreateInfoKHR & setMaxPipelineRayPayloadSize( uint32_t maxPipelineRayPayloadSize_ ) VULKAN_HPP_NOEXCEPT
  66994. {
  66995. maxPipelineRayPayloadSize = maxPipelineRayPayloadSize_;
  66996. return *this;
  66997. }
  66998. VULKAN_HPP_CONSTEXPR_14 RayTracingPipelineInterfaceCreateInfoKHR &
  66999. setMaxPipelineRayHitAttributeSize( uint32_t maxPipelineRayHitAttributeSize_ ) VULKAN_HPP_NOEXCEPT
  67000. {
  67001. maxPipelineRayHitAttributeSize = maxPipelineRayHitAttributeSize_;
  67002. return *this;
  67003. }
  67004. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  67005. operator VkRayTracingPipelineInterfaceCreateInfoKHR const &() const VULKAN_HPP_NOEXCEPT
  67006. {
  67007. return *reinterpret_cast<const VkRayTracingPipelineInterfaceCreateInfoKHR *>( this );
  67008. }
  67009. operator VkRayTracingPipelineInterfaceCreateInfoKHR &() VULKAN_HPP_NOEXCEPT
  67010. {
  67011. return *reinterpret_cast<VkRayTracingPipelineInterfaceCreateInfoKHR *>( this );
  67012. }
  67013. #if defined( VULKAN_HPP_USE_REFLECT )
  67014. # if 14 <= VULKAN_HPP_CPP_VERSION
  67015. auto
  67016. # else
  67017. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, uint32_t const &, uint32_t const &>
  67018. # endif
  67019. reflect() const VULKAN_HPP_NOEXCEPT
  67020. {
  67021. return std::tie( sType, pNext, maxPipelineRayPayloadSize, maxPipelineRayHitAttributeSize );
  67022. }
  67023. #endif
  67024. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  67025. auto operator<=>( RayTracingPipelineInterfaceCreateInfoKHR const & ) const = default;
  67026. #else
  67027. bool operator==( RayTracingPipelineInterfaceCreateInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  67028. {
  67029. # if defined( VULKAN_HPP_USE_REFLECT )
  67030. return this->reflect() == rhs.reflect();
  67031. # else
  67032. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( maxPipelineRayPayloadSize == rhs.maxPipelineRayPayloadSize ) &&
  67033. ( maxPipelineRayHitAttributeSize == rhs.maxPipelineRayHitAttributeSize );
  67034. # endif
  67035. }
  67036. bool operator!=( RayTracingPipelineInterfaceCreateInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  67037. {
  67038. return !operator==( rhs );
  67039. }
  67040. #endif
  67041. public:
  67042. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eRayTracingPipelineInterfaceCreateInfoKHR;
  67043. const void * pNext = {};
  67044. uint32_t maxPipelineRayPayloadSize = {};
  67045. uint32_t maxPipelineRayHitAttributeSize = {};
  67046. };
  67047. template <>
  67048. struct CppType<StructureType, StructureType::eRayTracingPipelineInterfaceCreateInfoKHR>
  67049. {
  67050. using Type = RayTracingPipelineInterfaceCreateInfoKHR;
  67051. };
  67052. struct RayTracingPipelineCreateInfoKHR
  67053. {
  67054. using NativeType = VkRayTracingPipelineCreateInfoKHR;
  67055. static const bool allowDuplicate = false;
  67056. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eRayTracingPipelineCreateInfoKHR;
  67057. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  67058. VULKAN_HPP_CONSTEXPR RayTracingPipelineCreateInfoKHR( VULKAN_HPP_NAMESPACE::PipelineCreateFlags flags_ = {},
  67059. uint32_t stageCount_ = {},
  67060. const VULKAN_HPP_NAMESPACE::PipelineShaderStageCreateInfo * pStages_ = {},
  67061. uint32_t groupCount_ = {},
  67062. const VULKAN_HPP_NAMESPACE::RayTracingShaderGroupCreateInfoKHR * pGroups_ = {},
  67063. uint32_t maxPipelineRayRecursionDepth_ = {},
  67064. const VULKAN_HPP_NAMESPACE::PipelineLibraryCreateInfoKHR * pLibraryInfo_ = {},
  67065. const VULKAN_HPP_NAMESPACE::RayTracingPipelineInterfaceCreateInfoKHR * pLibraryInterface_ = {},
  67066. const VULKAN_HPP_NAMESPACE::PipelineDynamicStateCreateInfo * pDynamicState_ = {},
  67067. VULKAN_HPP_NAMESPACE::PipelineLayout layout_ = {},
  67068. VULKAN_HPP_NAMESPACE::Pipeline basePipelineHandle_ = {},
  67069. int32_t basePipelineIndex_ = {},
  67070. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  67071. : pNext( pNext_ )
  67072. , flags( flags_ )
  67073. , stageCount( stageCount_ )
  67074. , pStages( pStages_ )
  67075. , groupCount( groupCount_ )
  67076. , pGroups( pGroups_ )
  67077. , maxPipelineRayRecursionDepth( maxPipelineRayRecursionDepth_ )
  67078. , pLibraryInfo( pLibraryInfo_ )
  67079. , pLibraryInterface( pLibraryInterface_ )
  67080. , pDynamicState( pDynamicState_ )
  67081. , layout( layout_ )
  67082. , basePipelineHandle( basePipelineHandle_ )
  67083. , basePipelineIndex( basePipelineIndex_ )
  67084. {
  67085. }
  67086. VULKAN_HPP_CONSTEXPR RayTracingPipelineCreateInfoKHR( RayTracingPipelineCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  67087. RayTracingPipelineCreateInfoKHR( VkRayTracingPipelineCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  67088. : RayTracingPipelineCreateInfoKHR( *reinterpret_cast<RayTracingPipelineCreateInfoKHR const *>( &rhs ) )
  67089. {
  67090. }
  67091. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  67092. RayTracingPipelineCreateInfoKHR(
  67093. VULKAN_HPP_NAMESPACE::PipelineCreateFlags flags_,
  67094. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::PipelineShaderStageCreateInfo> const & stages_,
  67095. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::RayTracingShaderGroupCreateInfoKHR> const & groups_ = {},
  67096. uint32_t maxPipelineRayRecursionDepth_ = {},
  67097. const VULKAN_HPP_NAMESPACE::PipelineLibraryCreateInfoKHR * pLibraryInfo_ = {},
  67098. const VULKAN_HPP_NAMESPACE::RayTracingPipelineInterfaceCreateInfoKHR * pLibraryInterface_ = {},
  67099. const VULKAN_HPP_NAMESPACE::PipelineDynamicStateCreateInfo * pDynamicState_ = {},
  67100. VULKAN_HPP_NAMESPACE::PipelineLayout layout_ = {},
  67101. VULKAN_HPP_NAMESPACE::Pipeline basePipelineHandle_ = {},
  67102. int32_t basePipelineIndex_ = {},
  67103. const void * pNext_ = nullptr )
  67104. : pNext( pNext_ )
  67105. , flags( flags_ )
  67106. , stageCount( static_cast<uint32_t>( stages_.size() ) )
  67107. , pStages( stages_.data() )
  67108. , groupCount( static_cast<uint32_t>( groups_.size() ) )
  67109. , pGroups( groups_.data() )
  67110. , maxPipelineRayRecursionDepth( maxPipelineRayRecursionDepth_ )
  67111. , pLibraryInfo( pLibraryInfo_ )
  67112. , pLibraryInterface( pLibraryInterface_ )
  67113. , pDynamicState( pDynamicState_ )
  67114. , layout( layout_ )
  67115. , basePipelineHandle( basePipelineHandle_ )
  67116. , basePipelineIndex( basePipelineIndex_ )
  67117. {
  67118. }
  67119. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  67120. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  67121. RayTracingPipelineCreateInfoKHR & operator=( RayTracingPipelineCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  67122. RayTracingPipelineCreateInfoKHR & operator=( VkRayTracingPipelineCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  67123. {
  67124. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoKHR const *>( &rhs );
  67125. return *this;
  67126. }
  67127. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  67128. VULKAN_HPP_CONSTEXPR_14 RayTracingPipelineCreateInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  67129. {
  67130. pNext = pNext_;
  67131. return *this;
  67132. }
  67133. VULKAN_HPP_CONSTEXPR_14 RayTracingPipelineCreateInfoKHR & setFlags( VULKAN_HPP_NAMESPACE::PipelineCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT
  67134. {
  67135. flags = flags_;
  67136. return *this;
  67137. }
  67138. VULKAN_HPP_CONSTEXPR_14 RayTracingPipelineCreateInfoKHR & setStageCount( uint32_t stageCount_ ) VULKAN_HPP_NOEXCEPT
  67139. {
  67140. stageCount = stageCount_;
  67141. return *this;
  67142. }
  67143. VULKAN_HPP_CONSTEXPR_14 RayTracingPipelineCreateInfoKHR &
  67144. setPStages( const VULKAN_HPP_NAMESPACE::PipelineShaderStageCreateInfo * pStages_ ) VULKAN_HPP_NOEXCEPT
  67145. {
  67146. pStages = pStages_;
  67147. return *this;
  67148. }
  67149. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  67150. RayTracingPipelineCreateInfoKHR &
  67151. setStages( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::PipelineShaderStageCreateInfo> const & stages_ ) VULKAN_HPP_NOEXCEPT
  67152. {
  67153. stageCount = static_cast<uint32_t>( stages_.size() );
  67154. pStages = stages_.data();
  67155. return *this;
  67156. }
  67157. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  67158. VULKAN_HPP_CONSTEXPR_14 RayTracingPipelineCreateInfoKHR & setGroupCount( uint32_t groupCount_ ) VULKAN_HPP_NOEXCEPT
  67159. {
  67160. groupCount = groupCount_;
  67161. return *this;
  67162. }
  67163. VULKAN_HPP_CONSTEXPR_14 RayTracingPipelineCreateInfoKHR &
  67164. setPGroups( const VULKAN_HPP_NAMESPACE::RayTracingShaderGroupCreateInfoKHR * pGroups_ ) VULKAN_HPP_NOEXCEPT
  67165. {
  67166. pGroups = pGroups_;
  67167. return *this;
  67168. }
  67169. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  67170. RayTracingPipelineCreateInfoKHR & setGroups(
  67171. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::RayTracingShaderGroupCreateInfoKHR> const & groups_ ) VULKAN_HPP_NOEXCEPT
  67172. {
  67173. groupCount = static_cast<uint32_t>( groups_.size() );
  67174. pGroups = groups_.data();
  67175. return *this;
  67176. }
  67177. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  67178. VULKAN_HPP_CONSTEXPR_14 RayTracingPipelineCreateInfoKHR & setMaxPipelineRayRecursionDepth( uint32_t maxPipelineRayRecursionDepth_ ) VULKAN_HPP_NOEXCEPT
  67179. {
  67180. maxPipelineRayRecursionDepth = maxPipelineRayRecursionDepth_;
  67181. return *this;
  67182. }
  67183. VULKAN_HPP_CONSTEXPR_14 RayTracingPipelineCreateInfoKHR &
  67184. setPLibraryInfo( const VULKAN_HPP_NAMESPACE::PipelineLibraryCreateInfoKHR * pLibraryInfo_ ) VULKAN_HPP_NOEXCEPT
  67185. {
  67186. pLibraryInfo = pLibraryInfo_;
  67187. return *this;
  67188. }
  67189. VULKAN_HPP_CONSTEXPR_14 RayTracingPipelineCreateInfoKHR &
  67190. setPLibraryInterface( const VULKAN_HPP_NAMESPACE::RayTracingPipelineInterfaceCreateInfoKHR * pLibraryInterface_ ) VULKAN_HPP_NOEXCEPT
  67191. {
  67192. pLibraryInterface = pLibraryInterface_;
  67193. return *this;
  67194. }
  67195. VULKAN_HPP_CONSTEXPR_14 RayTracingPipelineCreateInfoKHR &
  67196. setPDynamicState( const VULKAN_HPP_NAMESPACE::PipelineDynamicStateCreateInfo * pDynamicState_ ) VULKAN_HPP_NOEXCEPT
  67197. {
  67198. pDynamicState = pDynamicState_;
  67199. return *this;
  67200. }
  67201. VULKAN_HPP_CONSTEXPR_14 RayTracingPipelineCreateInfoKHR & setLayout( VULKAN_HPP_NAMESPACE::PipelineLayout layout_ ) VULKAN_HPP_NOEXCEPT
  67202. {
  67203. layout = layout_;
  67204. return *this;
  67205. }
  67206. VULKAN_HPP_CONSTEXPR_14 RayTracingPipelineCreateInfoKHR & setBasePipelineHandle( VULKAN_HPP_NAMESPACE::Pipeline basePipelineHandle_ ) VULKAN_HPP_NOEXCEPT
  67207. {
  67208. basePipelineHandle = basePipelineHandle_;
  67209. return *this;
  67210. }
  67211. VULKAN_HPP_CONSTEXPR_14 RayTracingPipelineCreateInfoKHR & setBasePipelineIndex( int32_t basePipelineIndex_ ) VULKAN_HPP_NOEXCEPT
  67212. {
  67213. basePipelineIndex = basePipelineIndex_;
  67214. return *this;
  67215. }
  67216. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  67217. operator VkRayTracingPipelineCreateInfoKHR const &() const VULKAN_HPP_NOEXCEPT
  67218. {
  67219. return *reinterpret_cast<const VkRayTracingPipelineCreateInfoKHR *>( this );
  67220. }
  67221. operator VkRayTracingPipelineCreateInfoKHR &() VULKAN_HPP_NOEXCEPT
  67222. {
  67223. return *reinterpret_cast<VkRayTracingPipelineCreateInfoKHR *>( this );
  67224. }
  67225. #if defined( VULKAN_HPP_USE_REFLECT )
  67226. # if 14 <= VULKAN_HPP_CPP_VERSION
  67227. auto
  67228. # else
  67229. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  67230. const void * const &,
  67231. VULKAN_HPP_NAMESPACE::PipelineCreateFlags const &,
  67232. uint32_t const &,
  67233. const VULKAN_HPP_NAMESPACE::PipelineShaderStageCreateInfo * const &,
  67234. uint32_t const &,
  67235. const VULKAN_HPP_NAMESPACE::RayTracingShaderGroupCreateInfoKHR * const &,
  67236. uint32_t const &,
  67237. const VULKAN_HPP_NAMESPACE::PipelineLibraryCreateInfoKHR * const &,
  67238. const VULKAN_HPP_NAMESPACE::RayTracingPipelineInterfaceCreateInfoKHR * const &,
  67239. const VULKAN_HPP_NAMESPACE::PipelineDynamicStateCreateInfo * const &,
  67240. VULKAN_HPP_NAMESPACE::PipelineLayout const &,
  67241. VULKAN_HPP_NAMESPACE::Pipeline const &,
  67242. int32_t const &>
  67243. # endif
  67244. reflect() const VULKAN_HPP_NOEXCEPT
  67245. {
  67246. return std::tie( sType,
  67247. pNext,
  67248. flags,
  67249. stageCount,
  67250. pStages,
  67251. groupCount,
  67252. pGroups,
  67253. maxPipelineRayRecursionDepth,
  67254. pLibraryInfo,
  67255. pLibraryInterface,
  67256. pDynamicState,
  67257. layout,
  67258. basePipelineHandle,
  67259. basePipelineIndex );
  67260. }
  67261. #endif
  67262. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  67263. auto operator<=>( RayTracingPipelineCreateInfoKHR const & ) const = default;
  67264. #else
  67265. bool operator==( RayTracingPipelineCreateInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  67266. {
  67267. # if defined( VULKAN_HPP_USE_REFLECT )
  67268. return this->reflect() == rhs.reflect();
  67269. # else
  67270. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( flags == rhs.flags ) && ( stageCount == rhs.stageCount ) && ( pStages == rhs.pStages ) &&
  67271. ( groupCount == rhs.groupCount ) && ( pGroups == rhs.pGroups ) && ( maxPipelineRayRecursionDepth == rhs.maxPipelineRayRecursionDepth ) &&
  67272. ( pLibraryInfo == rhs.pLibraryInfo ) && ( pLibraryInterface == rhs.pLibraryInterface ) && ( pDynamicState == rhs.pDynamicState ) &&
  67273. ( layout == rhs.layout ) && ( basePipelineHandle == rhs.basePipelineHandle ) && ( basePipelineIndex == rhs.basePipelineIndex );
  67274. # endif
  67275. }
  67276. bool operator!=( RayTracingPipelineCreateInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  67277. {
  67278. return !operator==( rhs );
  67279. }
  67280. #endif
  67281. public:
  67282. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eRayTracingPipelineCreateInfoKHR;
  67283. const void * pNext = {};
  67284. VULKAN_HPP_NAMESPACE::PipelineCreateFlags flags = {};
  67285. uint32_t stageCount = {};
  67286. const VULKAN_HPP_NAMESPACE::PipelineShaderStageCreateInfo * pStages = {};
  67287. uint32_t groupCount = {};
  67288. const VULKAN_HPP_NAMESPACE::RayTracingShaderGroupCreateInfoKHR * pGroups = {};
  67289. uint32_t maxPipelineRayRecursionDepth = {};
  67290. const VULKAN_HPP_NAMESPACE::PipelineLibraryCreateInfoKHR * pLibraryInfo = {};
  67291. const VULKAN_HPP_NAMESPACE::RayTracingPipelineInterfaceCreateInfoKHR * pLibraryInterface = {};
  67292. const VULKAN_HPP_NAMESPACE::PipelineDynamicStateCreateInfo * pDynamicState = {};
  67293. VULKAN_HPP_NAMESPACE::PipelineLayout layout = {};
  67294. VULKAN_HPP_NAMESPACE::Pipeline basePipelineHandle = {};
  67295. int32_t basePipelineIndex = {};
  67296. };
  67297. template <>
  67298. struct CppType<StructureType, StructureType::eRayTracingPipelineCreateInfoKHR>
  67299. {
  67300. using Type = RayTracingPipelineCreateInfoKHR;
  67301. };
  67302. struct RayTracingShaderGroupCreateInfoNV
  67303. {
  67304. using NativeType = VkRayTracingShaderGroupCreateInfoNV;
  67305. static const bool allowDuplicate = false;
  67306. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eRayTracingShaderGroupCreateInfoNV;
  67307. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  67308. VULKAN_HPP_CONSTEXPR RayTracingShaderGroupCreateInfoNV(
  67309. VULKAN_HPP_NAMESPACE::RayTracingShaderGroupTypeKHR type_ = VULKAN_HPP_NAMESPACE::RayTracingShaderGroupTypeKHR::eGeneral,
  67310. uint32_t generalShader_ = {},
  67311. uint32_t closestHitShader_ = {},
  67312. uint32_t anyHitShader_ = {},
  67313. uint32_t intersectionShader_ = {},
  67314. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  67315. : pNext( pNext_ )
  67316. , type( type_ )
  67317. , generalShader( generalShader_ )
  67318. , closestHitShader( closestHitShader_ )
  67319. , anyHitShader( anyHitShader_ )
  67320. , intersectionShader( intersectionShader_ )
  67321. {
  67322. }
  67323. VULKAN_HPP_CONSTEXPR RayTracingShaderGroupCreateInfoNV( RayTracingShaderGroupCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  67324. RayTracingShaderGroupCreateInfoNV( VkRayTracingShaderGroupCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
  67325. : RayTracingShaderGroupCreateInfoNV( *reinterpret_cast<RayTracingShaderGroupCreateInfoNV const *>( &rhs ) )
  67326. {
  67327. }
  67328. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  67329. RayTracingShaderGroupCreateInfoNV & operator=( RayTracingShaderGroupCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  67330. RayTracingShaderGroupCreateInfoNV & operator=( VkRayTracingShaderGroupCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
  67331. {
  67332. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::RayTracingShaderGroupCreateInfoNV const *>( &rhs );
  67333. return *this;
  67334. }
  67335. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  67336. VULKAN_HPP_CONSTEXPR_14 RayTracingShaderGroupCreateInfoNV & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  67337. {
  67338. pNext = pNext_;
  67339. return *this;
  67340. }
  67341. VULKAN_HPP_CONSTEXPR_14 RayTracingShaderGroupCreateInfoNV & setType( VULKAN_HPP_NAMESPACE::RayTracingShaderGroupTypeKHR type_ ) VULKAN_HPP_NOEXCEPT
  67342. {
  67343. type = type_;
  67344. return *this;
  67345. }
  67346. VULKAN_HPP_CONSTEXPR_14 RayTracingShaderGroupCreateInfoNV & setGeneralShader( uint32_t generalShader_ ) VULKAN_HPP_NOEXCEPT
  67347. {
  67348. generalShader = generalShader_;
  67349. return *this;
  67350. }
  67351. VULKAN_HPP_CONSTEXPR_14 RayTracingShaderGroupCreateInfoNV & setClosestHitShader( uint32_t closestHitShader_ ) VULKAN_HPP_NOEXCEPT
  67352. {
  67353. closestHitShader = closestHitShader_;
  67354. return *this;
  67355. }
  67356. VULKAN_HPP_CONSTEXPR_14 RayTracingShaderGroupCreateInfoNV & setAnyHitShader( uint32_t anyHitShader_ ) VULKAN_HPP_NOEXCEPT
  67357. {
  67358. anyHitShader = anyHitShader_;
  67359. return *this;
  67360. }
  67361. VULKAN_HPP_CONSTEXPR_14 RayTracingShaderGroupCreateInfoNV & setIntersectionShader( uint32_t intersectionShader_ ) VULKAN_HPP_NOEXCEPT
  67362. {
  67363. intersectionShader = intersectionShader_;
  67364. return *this;
  67365. }
  67366. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  67367. operator VkRayTracingShaderGroupCreateInfoNV const &() const VULKAN_HPP_NOEXCEPT
  67368. {
  67369. return *reinterpret_cast<const VkRayTracingShaderGroupCreateInfoNV *>( this );
  67370. }
  67371. operator VkRayTracingShaderGroupCreateInfoNV &() VULKAN_HPP_NOEXCEPT
  67372. {
  67373. return *reinterpret_cast<VkRayTracingShaderGroupCreateInfoNV *>( this );
  67374. }
  67375. #if defined( VULKAN_HPP_USE_REFLECT )
  67376. # if 14 <= VULKAN_HPP_CPP_VERSION
  67377. auto
  67378. # else
  67379. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  67380. const void * const &,
  67381. VULKAN_HPP_NAMESPACE::RayTracingShaderGroupTypeKHR const &,
  67382. uint32_t const &,
  67383. uint32_t const &,
  67384. uint32_t const &,
  67385. uint32_t const &>
  67386. # endif
  67387. reflect() const VULKAN_HPP_NOEXCEPT
  67388. {
  67389. return std::tie( sType, pNext, type, generalShader, closestHitShader, anyHitShader, intersectionShader );
  67390. }
  67391. #endif
  67392. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  67393. auto operator<=>( RayTracingShaderGroupCreateInfoNV const & ) const = default;
  67394. #else
  67395. bool operator==( RayTracingShaderGroupCreateInfoNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  67396. {
  67397. # if defined( VULKAN_HPP_USE_REFLECT )
  67398. return this->reflect() == rhs.reflect();
  67399. # else
  67400. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( type == rhs.type ) && ( generalShader == rhs.generalShader ) &&
  67401. ( closestHitShader == rhs.closestHitShader ) && ( anyHitShader == rhs.anyHitShader ) && ( intersectionShader == rhs.intersectionShader );
  67402. # endif
  67403. }
  67404. bool operator!=( RayTracingShaderGroupCreateInfoNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  67405. {
  67406. return !operator==( rhs );
  67407. }
  67408. #endif
  67409. public:
  67410. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eRayTracingShaderGroupCreateInfoNV;
  67411. const void * pNext = {};
  67412. VULKAN_HPP_NAMESPACE::RayTracingShaderGroupTypeKHR type = VULKAN_HPP_NAMESPACE::RayTracingShaderGroupTypeKHR::eGeneral;
  67413. uint32_t generalShader = {};
  67414. uint32_t closestHitShader = {};
  67415. uint32_t anyHitShader = {};
  67416. uint32_t intersectionShader = {};
  67417. };
  67418. template <>
  67419. struct CppType<StructureType, StructureType::eRayTracingShaderGroupCreateInfoNV>
  67420. {
  67421. using Type = RayTracingShaderGroupCreateInfoNV;
  67422. };
  67423. struct RayTracingPipelineCreateInfoNV
  67424. {
  67425. using NativeType = VkRayTracingPipelineCreateInfoNV;
  67426. static const bool allowDuplicate = false;
  67427. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eRayTracingPipelineCreateInfoNV;
  67428. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  67429. VULKAN_HPP_CONSTEXPR RayTracingPipelineCreateInfoNV( VULKAN_HPP_NAMESPACE::PipelineCreateFlags flags_ = {},
  67430. uint32_t stageCount_ = {},
  67431. const VULKAN_HPP_NAMESPACE::PipelineShaderStageCreateInfo * pStages_ = {},
  67432. uint32_t groupCount_ = {},
  67433. const VULKAN_HPP_NAMESPACE::RayTracingShaderGroupCreateInfoNV * pGroups_ = {},
  67434. uint32_t maxRecursionDepth_ = {},
  67435. VULKAN_HPP_NAMESPACE::PipelineLayout layout_ = {},
  67436. VULKAN_HPP_NAMESPACE::Pipeline basePipelineHandle_ = {},
  67437. int32_t basePipelineIndex_ = {},
  67438. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  67439. : pNext( pNext_ )
  67440. , flags( flags_ )
  67441. , stageCount( stageCount_ )
  67442. , pStages( pStages_ )
  67443. , groupCount( groupCount_ )
  67444. , pGroups( pGroups_ )
  67445. , maxRecursionDepth( maxRecursionDepth_ )
  67446. , layout( layout_ )
  67447. , basePipelineHandle( basePipelineHandle_ )
  67448. , basePipelineIndex( basePipelineIndex_ )
  67449. {
  67450. }
  67451. VULKAN_HPP_CONSTEXPR RayTracingPipelineCreateInfoNV( RayTracingPipelineCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  67452. RayTracingPipelineCreateInfoNV( VkRayTracingPipelineCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
  67453. : RayTracingPipelineCreateInfoNV( *reinterpret_cast<RayTracingPipelineCreateInfoNV const *>( &rhs ) )
  67454. {
  67455. }
  67456. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  67457. RayTracingPipelineCreateInfoNV(
  67458. VULKAN_HPP_NAMESPACE::PipelineCreateFlags flags_,
  67459. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::PipelineShaderStageCreateInfo> const & stages_,
  67460. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::RayTracingShaderGroupCreateInfoNV> const & groups_ = {},
  67461. uint32_t maxRecursionDepth_ = {},
  67462. VULKAN_HPP_NAMESPACE::PipelineLayout layout_ = {},
  67463. VULKAN_HPP_NAMESPACE::Pipeline basePipelineHandle_ = {},
  67464. int32_t basePipelineIndex_ = {},
  67465. const void * pNext_ = nullptr )
  67466. : pNext( pNext_ )
  67467. , flags( flags_ )
  67468. , stageCount( static_cast<uint32_t>( stages_.size() ) )
  67469. , pStages( stages_.data() )
  67470. , groupCount( static_cast<uint32_t>( groups_.size() ) )
  67471. , pGroups( groups_.data() )
  67472. , maxRecursionDepth( maxRecursionDepth_ )
  67473. , layout( layout_ )
  67474. , basePipelineHandle( basePipelineHandle_ )
  67475. , basePipelineIndex( basePipelineIndex_ )
  67476. {
  67477. }
  67478. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  67479. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  67480. RayTracingPipelineCreateInfoNV & operator=( RayTracingPipelineCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  67481. RayTracingPipelineCreateInfoNV & operator=( VkRayTracingPipelineCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
  67482. {
  67483. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoNV const *>( &rhs );
  67484. return *this;
  67485. }
  67486. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  67487. VULKAN_HPP_CONSTEXPR_14 RayTracingPipelineCreateInfoNV & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  67488. {
  67489. pNext = pNext_;
  67490. return *this;
  67491. }
  67492. VULKAN_HPP_CONSTEXPR_14 RayTracingPipelineCreateInfoNV & setFlags( VULKAN_HPP_NAMESPACE::PipelineCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT
  67493. {
  67494. flags = flags_;
  67495. return *this;
  67496. }
  67497. VULKAN_HPP_CONSTEXPR_14 RayTracingPipelineCreateInfoNV & setStageCount( uint32_t stageCount_ ) VULKAN_HPP_NOEXCEPT
  67498. {
  67499. stageCount = stageCount_;
  67500. return *this;
  67501. }
  67502. VULKAN_HPP_CONSTEXPR_14 RayTracingPipelineCreateInfoNV &
  67503. setPStages( const VULKAN_HPP_NAMESPACE::PipelineShaderStageCreateInfo * pStages_ ) VULKAN_HPP_NOEXCEPT
  67504. {
  67505. pStages = pStages_;
  67506. return *this;
  67507. }
  67508. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  67509. RayTracingPipelineCreateInfoNV &
  67510. setStages( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::PipelineShaderStageCreateInfo> const & stages_ ) VULKAN_HPP_NOEXCEPT
  67511. {
  67512. stageCount = static_cast<uint32_t>( stages_.size() );
  67513. pStages = stages_.data();
  67514. return *this;
  67515. }
  67516. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  67517. VULKAN_HPP_CONSTEXPR_14 RayTracingPipelineCreateInfoNV & setGroupCount( uint32_t groupCount_ ) VULKAN_HPP_NOEXCEPT
  67518. {
  67519. groupCount = groupCount_;
  67520. return *this;
  67521. }
  67522. VULKAN_HPP_CONSTEXPR_14 RayTracingPipelineCreateInfoNV &
  67523. setPGroups( const VULKAN_HPP_NAMESPACE::RayTracingShaderGroupCreateInfoNV * pGroups_ ) VULKAN_HPP_NOEXCEPT
  67524. {
  67525. pGroups = pGroups_;
  67526. return *this;
  67527. }
  67528. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  67529. RayTracingPipelineCreateInfoNV & setGroups(
  67530. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::RayTracingShaderGroupCreateInfoNV> const & groups_ ) VULKAN_HPP_NOEXCEPT
  67531. {
  67532. groupCount = static_cast<uint32_t>( groups_.size() );
  67533. pGroups = groups_.data();
  67534. return *this;
  67535. }
  67536. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  67537. VULKAN_HPP_CONSTEXPR_14 RayTracingPipelineCreateInfoNV & setMaxRecursionDepth( uint32_t maxRecursionDepth_ ) VULKAN_HPP_NOEXCEPT
  67538. {
  67539. maxRecursionDepth = maxRecursionDepth_;
  67540. return *this;
  67541. }
  67542. VULKAN_HPP_CONSTEXPR_14 RayTracingPipelineCreateInfoNV & setLayout( VULKAN_HPP_NAMESPACE::PipelineLayout layout_ ) VULKAN_HPP_NOEXCEPT
  67543. {
  67544. layout = layout_;
  67545. return *this;
  67546. }
  67547. VULKAN_HPP_CONSTEXPR_14 RayTracingPipelineCreateInfoNV & setBasePipelineHandle( VULKAN_HPP_NAMESPACE::Pipeline basePipelineHandle_ ) VULKAN_HPP_NOEXCEPT
  67548. {
  67549. basePipelineHandle = basePipelineHandle_;
  67550. return *this;
  67551. }
  67552. VULKAN_HPP_CONSTEXPR_14 RayTracingPipelineCreateInfoNV & setBasePipelineIndex( int32_t basePipelineIndex_ ) VULKAN_HPP_NOEXCEPT
  67553. {
  67554. basePipelineIndex = basePipelineIndex_;
  67555. return *this;
  67556. }
  67557. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  67558. operator VkRayTracingPipelineCreateInfoNV const &() const VULKAN_HPP_NOEXCEPT
  67559. {
  67560. return *reinterpret_cast<const VkRayTracingPipelineCreateInfoNV *>( this );
  67561. }
  67562. operator VkRayTracingPipelineCreateInfoNV &() VULKAN_HPP_NOEXCEPT
  67563. {
  67564. return *reinterpret_cast<VkRayTracingPipelineCreateInfoNV *>( 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 &,
  67571. const void * const &,
  67572. VULKAN_HPP_NAMESPACE::PipelineCreateFlags const &,
  67573. uint32_t const &,
  67574. const VULKAN_HPP_NAMESPACE::PipelineShaderStageCreateInfo * const &,
  67575. uint32_t const &,
  67576. const VULKAN_HPP_NAMESPACE::RayTracingShaderGroupCreateInfoNV * const &,
  67577. uint32_t const &,
  67578. VULKAN_HPP_NAMESPACE::PipelineLayout const &,
  67579. VULKAN_HPP_NAMESPACE::Pipeline const &,
  67580. int32_t const &>
  67581. # endif
  67582. reflect() const VULKAN_HPP_NOEXCEPT
  67583. {
  67584. return std::tie( sType, pNext, flags, stageCount, pStages, groupCount, pGroups, maxRecursionDepth, layout, basePipelineHandle, basePipelineIndex );
  67585. }
  67586. #endif
  67587. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  67588. auto operator<=>( RayTracingPipelineCreateInfoNV const & ) const = default;
  67589. #else
  67590. bool operator==( RayTracingPipelineCreateInfoNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  67591. {
  67592. # if defined( VULKAN_HPP_USE_REFLECT )
  67593. return this->reflect() == rhs.reflect();
  67594. # else
  67595. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( flags == rhs.flags ) && ( stageCount == rhs.stageCount ) && ( pStages == rhs.pStages ) &&
  67596. ( groupCount == rhs.groupCount ) && ( pGroups == rhs.pGroups ) && ( maxRecursionDepth == rhs.maxRecursionDepth ) && ( layout == rhs.layout ) &&
  67597. ( basePipelineHandle == rhs.basePipelineHandle ) && ( basePipelineIndex == rhs.basePipelineIndex );
  67598. # endif
  67599. }
  67600. bool operator!=( RayTracingPipelineCreateInfoNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  67601. {
  67602. return !operator==( rhs );
  67603. }
  67604. #endif
  67605. public:
  67606. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eRayTracingPipelineCreateInfoNV;
  67607. const void * pNext = {};
  67608. VULKAN_HPP_NAMESPACE::PipelineCreateFlags flags = {};
  67609. uint32_t stageCount = {};
  67610. const VULKAN_HPP_NAMESPACE::PipelineShaderStageCreateInfo * pStages = {};
  67611. uint32_t groupCount = {};
  67612. const VULKAN_HPP_NAMESPACE::RayTracingShaderGroupCreateInfoNV * pGroups = {};
  67613. uint32_t maxRecursionDepth = {};
  67614. VULKAN_HPP_NAMESPACE::PipelineLayout layout = {};
  67615. VULKAN_HPP_NAMESPACE::Pipeline basePipelineHandle = {};
  67616. int32_t basePipelineIndex = {};
  67617. };
  67618. template <>
  67619. struct CppType<StructureType, StructureType::eRayTracingPipelineCreateInfoNV>
  67620. {
  67621. using Type = RayTracingPipelineCreateInfoNV;
  67622. };
  67623. struct RefreshCycleDurationGOOGLE
  67624. {
  67625. using NativeType = VkRefreshCycleDurationGOOGLE;
  67626. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  67627. VULKAN_HPP_CONSTEXPR RefreshCycleDurationGOOGLE( uint64_t refreshDuration_ = {} ) VULKAN_HPP_NOEXCEPT : refreshDuration( refreshDuration_ ) {}
  67628. VULKAN_HPP_CONSTEXPR RefreshCycleDurationGOOGLE( RefreshCycleDurationGOOGLE const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  67629. RefreshCycleDurationGOOGLE( VkRefreshCycleDurationGOOGLE const & rhs ) VULKAN_HPP_NOEXCEPT
  67630. : RefreshCycleDurationGOOGLE( *reinterpret_cast<RefreshCycleDurationGOOGLE const *>( &rhs ) )
  67631. {
  67632. }
  67633. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  67634. RefreshCycleDurationGOOGLE & operator=( RefreshCycleDurationGOOGLE const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  67635. RefreshCycleDurationGOOGLE & operator=( VkRefreshCycleDurationGOOGLE const & rhs ) VULKAN_HPP_NOEXCEPT
  67636. {
  67637. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::RefreshCycleDurationGOOGLE const *>( &rhs );
  67638. return *this;
  67639. }
  67640. operator VkRefreshCycleDurationGOOGLE const &() const VULKAN_HPP_NOEXCEPT
  67641. {
  67642. return *reinterpret_cast<const VkRefreshCycleDurationGOOGLE *>( this );
  67643. }
  67644. operator VkRefreshCycleDurationGOOGLE &() VULKAN_HPP_NOEXCEPT
  67645. {
  67646. return *reinterpret_cast<VkRefreshCycleDurationGOOGLE *>( this );
  67647. }
  67648. #if defined( VULKAN_HPP_USE_REFLECT )
  67649. # if 14 <= VULKAN_HPP_CPP_VERSION
  67650. auto
  67651. # else
  67652. std::tuple<uint64_t const &>
  67653. # endif
  67654. reflect() const VULKAN_HPP_NOEXCEPT
  67655. {
  67656. return std::tie( refreshDuration );
  67657. }
  67658. #endif
  67659. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  67660. auto operator<=>( RefreshCycleDurationGOOGLE const & ) const = default;
  67661. #else
  67662. bool operator==( RefreshCycleDurationGOOGLE const & rhs ) const VULKAN_HPP_NOEXCEPT
  67663. {
  67664. # if defined( VULKAN_HPP_USE_REFLECT )
  67665. return this->reflect() == rhs.reflect();
  67666. # else
  67667. return ( refreshDuration == rhs.refreshDuration );
  67668. # endif
  67669. }
  67670. bool operator!=( RefreshCycleDurationGOOGLE const & rhs ) const VULKAN_HPP_NOEXCEPT
  67671. {
  67672. return !operator==( rhs );
  67673. }
  67674. #endif
  67675. public:
  67676. uint64_t refreshDuration = {};
  67677. };
  67678. struct RenderPassAttachmentBeginInfo
  67679. {
  67680. using NativeType = VkRenderPassAttachmentBeginInfo;
  67681. static const bool allowDuplicate = false;
  67682. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eRenderPassAttachmentBeginInfo;
  67683. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  67684. VULKAN_HPP_CONSTEXPR RenderPassAttachmentBeginInfo( uint32_t attachmentCount_ = {},
  67685. const VULKAN_HPP_NAMESPACE::ImageView * pAttachments_ = {},
  67686. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  67687. : pNext( pNext_ )
  67688. , attachmentCount( attachmentCount_ )
  67689. , pAttachments( pAttachments_ )
  67690. {
  67691. }
  67692. VULKAN_HPP_CONSTEXPR RenderPassAttachmentBeginInfo( RenderPassAttachmentBeginInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  67693. RenderPassAttachmentBeginInfo( VkRenderPassAttachmentBeginInfo const & rhs ) VULKAN_HPP_NOEXCEPT
  67694. : RenderPassAttachmentBeginInfo( *reinterpret_cast<RenderPassAttachmentBeginInfo const *>( &rhs ) )
  67695. {
  67696. }
  67697. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  67698. RenderPassAttachmentBeginInfo( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::ImageView> const & attachments_,
  67699. const void * pNext_ = nullptr )
  67700. : pNext( pNext_ ), attachmentCount( static_cast<uint32_t>( attachments_.size() ) ), pAttachments( attachments_.data() )
  67701. {
  67702. }
  67703. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  67704. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  67705. RenderPassAttachmentBeginInfo & operator=( RenderPassAttachmentBeginInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  67706. RenderPassAttachmentBeginInfo & operator=( VkRenderPassAttachmentBeginInfo const & rhs ) VULKAN_HPP_NOEXCEPT
  67707. {
  67708. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::RenderPassAttachmentBeginInfo const *>( &rhs );
  67709. return *this;
  67710. }
  67711. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  67712. VULKAN_HPP_CONSTEXPR_14 RenderPassAttachmentBeginInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  67713. {
  67714. pNext = pNext_;
  67715. return *this;
  67716. }
  67717. VULKAN_HPP_CONSTEXPR_14 RenderPassAttachmentBeginInfo & setAttachmentCount( uint32_t attachmentCount_ ) VULKAN_HPP_NOEXCEPT
  67718. {
  67719. attachmentCount = attachmentCount_;
  67720. return *this;
  67721. }
  67722. VULKAN_HPP_CONSTEXPR_14 RenderPassAttachmentBeginInfo & setPAttachments( const VULKAN_HPP_NAMESPACE::ImageView * pAttachments_ ) VULKAN_HPP_NOEXCEPT
  67723. {
  67724. pAttachments = pAttachments_;
  67725. return *this;
  67726. }
  67727. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  67728. RenderPassAttachmentBeginInfo &
  67729. setAttachments( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::ImageView> const & attachments_ ) VULKAN_HPP_NOEXCEPT
  67730. {
  67731. attachmentCount = static_cast<uint32_t>( attachments_.size() );
  67732. pAttachments = attachments_.data();
  67733. return *this;
  67734. }
  67735. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  67736. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  67737. operator VkRenderPassAttachmentBeginInfo const &() const VULKAN_HPP_NOEXCEPT
  67738. {
  67739. return *reinterpret_cast<const VkRenderPassAttachmentBeginInfo *>( this );
  67740. }
  67741. operator VkRenderPassAttachmentBeginInfo &() VULKAN_HPP_NOEXCEPT
  67742. {
  67743. return *reinterpret_cast<VkRenderPassAttachmentBeginInfo *>( this );
  67744. }
  67745. #if defined( VULKAN_HPP_USE_REFLECT )
  67746. # if 14 <= VULKAN_HPP_CPP_VERSION
  67747. auto
  67748. # else
  67749. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, uint32_t const &, const VULKAN_HPP_NAMESPACE::ImageView * const &>
  67750. # endif
  67751. reflect() const VULKAN_HPP_NOEXCEPT
  67752. {
  67753. return std::tie( sType, pNext, attachmentCount, pAttachments );
  67754. }
  67755. #endif
  67756. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  67757. auto operator<=>( RenderPassAttachmentBeginInfo const & ) const = default;
  67758. #else
  67759. bool operator==( RenderPassAttachmentBeginInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  67760. {
  67761. # if defined( VULKAN_HPP_USE_REFLECT )
  67762. return this->reflect() == rhs.reflect();
  67763. # else
  67764. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( attachmentCount == rhs.attachmentCount ) && ( pAttachments == rhs.pAttachments );
  67765. # endif
  67766. }
  67767. bool operator!=( RenderPassAttachmentBeginInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  67768. {
  67769. return !operator==( rhs );
  67770. }
  67771. #endif
  67772. public:
  67773. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eRenderPassAttachmentBeginInfo;
  67774. const void * pNext = {};
  67775. uint32_t attachmentCount = {};
  67776. const VULKAN_HPP_NAMESPACE::ImageView * pAttachments = {};
  67777. };
  67778. template <>
  67779. struct CppType<StructureType, StructureType::eRenderPassAttachmentBeginInfo>
  67780. {
  67781. using Type = RenderPassAttachmentBeginInfo;
  67782. };
  67783. using RenderPassAttachmentBeginInfoKHR = RenderPassAttachmentBeginInfo;
  67784. struct RenderPassBeginInfo
  67785. {
  67786. using NativeType = VkRenderPassBeginInfo;
  67787. static const bool allowDuplicate = false;
  67788. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eRenderPassBeginInfo;
  67789. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  67790. VULKAN_HPP_CONSTEXPR_14 RenderPassBeginInfo( VULKAN_HPP_NAMESPACE::RenderPass renderPass_ = {},
  67791. VULKAN_HPP_NAMESPACE::Framebuffer framebuffer_ = {},
  67792. VULKAN_HPP_NAMESPACE::Rect2D renderArea_ = {},
  67793. uint32_t clearValueCount_ = {},
  67794. const VULKAN_HPP_NAMESPACE::ClearValue * pClearValues_ = {},
  67795. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  67796. : pNext( pNext_ )
  67797. , renderPass( renderPass_ )
  67798. , framebuffer( framebuffer_ )
  67799. , renderArea( renderArea_ )
  67800. , clearValueCount( clearValueCount_ )
  67801. , pClearValues( pClearValues_ )
  67802. {
  67803. }
  67804. VULKAN_HPP_CONSTEXPR_14 RenderPassBeginInfo( RenderPassBeginInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  67805. RenderPassBeginInfo( VkRenderPassBeginInfo const & rhs ) VULKAN_HPP_NOEXCEPT : RenderPassBeginInfo( *reinterpret_cast<RenderPassBeginInfo const *>( &rhs ) )
  67806. {
  67807. }
  67808. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  67809. RenderPassBeginInfo( VULKAN_HPP_NAMESPACE::RenderPass renderPass_,
  67810. VULKAN_HPP_NAMESPACE::Framebuffer framebuffer_,
  67811. VULKAN_HPP_NAMESPACE::Rect2D renderArea_,
  67812. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::ClearValue> const & clearValues_,
  67813. const void * pNext_ = nullptr )
  67814. : pNext( pNext_ )
  67815. , renderPass( renderPass_ )
  67816. , framebuffer( framebuffer_ )
  67817. , renderArea( renderArea_ )
  67818. , clearValueCount( static_cast<uint32_t>( clearValues_.size() ) )
  67819. , pClearValues( clearValues_.data() )
  67820. {
  67821. }
  67822. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  67823. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  67824. RenderPassBeginInfo & operator=( RenderPassBeginInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  67825. RenderPassBeginInfo & operator=( VkRenderPassBeginInfo const & rhs ) VULKAN_HPP_NOEXCEPT
  67826. {
  67827. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::RenderPassBeginInfo const *>( &rhs );
  67828. return *this;
  67829. }
  67830. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  67831. VULKAN_HPP_CONSTEXPR_14 RenderPassBeginInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  67832. {
  67833. pNext = pNext_;
  67834. return *this;
  67835. }
  67836. VULKAN_HPP_CONSTEXPR_14 RenderPassBeginInfo & setRenderPass( VULKAN_HPP_NAMESPACE::RenderPass renderPass_ ) VULKAN_HPP_NOEXCEPT
  67837. {
  67838. renderPass = renderPass_;
  67839. return *this;
  67840. }
  67841. VULKAN_HPP_CONSTEXPR_14 RenderPassBeginInfo & setFramebuffer( VULKAN_HPP_NAMESPACE::Framebuffer framebuffer_ ) VULKAN_HPP_NOEXCEPT
  67842. {
  67843. framebuffer = framebuffer_;
  67844. return *this;
  67845. }
  67846. VULKAN_HPP_CONSTEXPR_14 RenderPassBeginInfo & setRenderArea( VULKAN_HPP_NAMESPACE::Rect2D const & renderArea_ ) VULKAN_HPP_NOEXCEPT
  67847. {
  67848. renderArea = renderArea_;
  67849. return *this;
  67850. }
  67851. VULKAN_HPP_CONSTEXPR_14 RenderPassBeginInfo & setClearValueCount( uint32_t clearValueCount_ ) VULKAN_HPP_NOEXCEPT
  67852. {
  67853. clearValueCount = clearValueCount_;
  67854. return *this;
  67855. }
  67856. VULKAN_HPP_CONSTEXPR_14 RenderPassBeginInfo & setPClearValues( const VULKAN_HPP_NAMESPACE::ClearValue * pClearValues_ ) VULKAN_HPP_NOEXCEPT
  67857. {
  67858. pClearValues = pClearValues_;
  67859. return *this;
  67860. }
  67861. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  67862. RenderPassBeginInfo &
  67863. setClearValues( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::ClearValue> const & clearValues_ ) VULKAN_HPP_NOEXCEPT
  67864. {
  67865. clearValueCount = static_cast<uint32_t>( clearValues_.size() );
  67866. pClearValues = clearValues_.data();
  67867. return *this;
  67868. }
  67869. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  67870. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  67871. operator VkRenderPassBeginInfo const &() const VULKAN_HPP_NOEXCEPT
  67872. {
  67873. return *reinterpret_cast<const VkRenderPassBeginInfo *>( this );
  67874. }
  67875. operator VkRenderPassBeginInfo &() VULKAN_HPP_NOEXCEPT
  67876. {
  67877. return *reinterpret_cast<VkRenderPassBeginInfo *>( this );
  67878. }
  67879. #if defined( VULKAN_HPP_USE_REFLECT )
  67880. # if 14 <= VULKAN_HPP_CPP_VERSION
  67881. auto
  67882. # else
  67883. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  67884. const void * const &,
  67885. VULKAN_HPP_NAMESPACE::RenderPass const &,
  67886. VULKAN_HPP_NAMESPACE::Framebuffer const &,
  67887. VULKAN_HPP_NAMESPACE::Rect2D const &,
  67888. uint32_t const &,
  67889. const VULKAN_HPP_NAMESPACE::ClearValue * const &>
  67890. # endif
  67891. reflect() const VULKAN_HPP_NOEXCEPT
  67892. {
  67893. return std::tie( sType, pNext, renderPass, framebuffer, renderArea, clearValueCount, pClearValues );
  67894. }
  67895. #endif
  67896. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  67897. auto operator<=>( RenderPassBeginInfo const & ) const = default;
  67898. #else
  67899. bool operator==( RenderPassBeginInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  67900. {
  67901. # if defined( VULKAN_HPP_USE_REFLECT )
  67902. return this->reflect() == rhs.reflect();
  67903. # else
  67904. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( renderPass == rhs.renderPass ) && ( framebuffer == rhs.framebuffer ) &&
  67905. ( renderArea == rhs.renderArea ) && ( clearValueCount == rhs.clearValueCount ) && ( pClearValues == rhs.pClearValues );
  67906. # endif
  67907. }
  67908. bool operator!=( RenderPassBeginInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  67909. {
  67910. return !operator==( rhs );
  67911. }
  67912. #endif
  67913. public:
  67914. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eRenderPassBeginInfo;
  67915. const void * pNext = {};
  67916. VULKAN_HPP_NAMESPACE::RenderPass renderPass = {};
  67917. VULKAN_HPP_NAMESPACE::Framebuffer framebuffer = {};
  67918. VULKAN_HPP_NAMESPACE::Rect2D renderArea = {};
  67919. uint32_t clearValueCount = {};
  67920. const VULKAN_HPP_NAMESPACE::ClearValue * pClearValues = {};
  67921. };
  67922. template <>
  67923. struct CppType<StructureType, StructureType::eRenderPassBeginInfo>
  67924. {
  67925. using Type = RenderPassBeginInfo;
  67926. };
  67927. struct SubpassDescription
  67928. {
  67929. using NativeType = VkSubpassDescription;
  67930. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  67931. VULKAN_HPP_CONSTEXPR SubpassDescription( VULKAN_HPP_NAMESPACE::SubpassDescriptionFlags flags_ = {},
  67932. VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint_ = VULKAN_HPP_NAMESPACE::PipelineBindPoint::eGraphics,
  67933. uint32_t inputAttachmentCount_ = {},
  67934. const VULKAN_HPP_NAMESPACE::AttachmentReference * pInputAttachments_ = {},
  67935. uint32_t colorAttachmentCount_ = {},
  67936. const VULKAN_HPP_NAMESPACE::AttachmentReference * pColorAttachments_ = {},
  67937. const VULKAN_HPP_NAMESPACE::AttachmentReference * pResolveAttachments_ = {},
  67938. const VULKAN_HPP_NAMESPACE::AttachmentReference * pDepthStencilAttachment_ = {},
  67939. uint32_t preserveAttachmentCount_ = {},
  67940. const uint32_t * pPreserveAttachments_ = {} ) VULKAN_HPP_NOEXCEPT
  67941. : flags( flags_ )
  67942. , pipelineBindPoint( pipelineBindPoint_ )
  67943. , inputAttachmentCount( inputAttachmentCount_ )
  67944. , pInputAttachments( pInputAttachments_ )
  67945. , colorAttachmentCount( colorAttachmentCount_ )
  67946. , pColorAttachments( pColorAttachments_ )
  67947. , pResolveAttachments( pResolveAttachments_ )
  67948. , pDepthStencilAttachment( pDepthStencilAttachment_ )
  67949. , preserveAttachmentCount( preserveAttachmentCount_ )
  67950. , pPreserveAttachments( pPreserveAttachments_ )
  67951. {
  67952. }
  67953. VULKAN_HPP_CONSTEXPR SubpassDescription( SubpassDescription const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  67954. SubpassDescription( VkSubpassDescription const & rhs ) VULKAN_HPP_NOEXCEPT : SubpassDescription( *reinterpret_cast<SubpassDescription const *>( &rhs ) ) {}
  67955. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  67956. SubpassDescription( VULKAN_HPP_NAMESPACE::SubpassDescriptionFlags flags_,
  67957. VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint_,
  67958. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::AttachmentReference> const & inputAttachments_,
  67959. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::AttachmentReference> const & colorAttachments_ = {},
  67960. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::AttachmentReference> const & resolveAttachments_ = {},
  67961. const VULKAN_HPP_NAMESPACE::AttachmentReference * pDepthStencilAttachment_ = {},
  67962. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint32_t> const & preserveAttachments_ = {} )
  67963. : flags( flags_ )
  67964. , pipelineBindPoint( pipelineBindPoint_ )
  67965. , inputAttachmentCount( static_cast<uint32_t>( inputAttachments_.size() ) )
  67966. , pInputAttachments( inputAttachments_.data() )
  67967. , colorAttachmentCount( static_cast<uint32_t>( colorAttachments_.size() ) )
  67968. , pColorAttachments( colorAttachments_.data() )
  67969. , pResolveAttachments( resolveAttachments_.data() )
  67970. , pDepthStencilAttachment( pDepthStencilAttachment_ )
  67971. , preserveAttachmentCount( static_cast<uint32_t>( preserveAttachments_.size() ) )
  67972. , pPreserveAttachments( preserveAttachments_.data() )
  67973. {
  67974. # ifdef VULKAN_HPP_NO_EXCEPTIONS
  67975. VULKAN_HPP_ASSERT( resolveAttachments_.empty() || ( colorAttachments_.size() == resolveAttachments_.size() ) );
  67976. # else
  67977. if ( !resolveAttachments_.empty() && ( colorAttachments_.size() != resolveAttachments_.size() ) )
  67978. {
  67979. throw LogicError(
  67980. VULKAN_HPP_NAMESPACE_STRING
  67981. "::SubpassDescription::SubpassDescription: !resolveAttachments_.empty() && ( colorAttachments_.size() != resolveAttachments_.size() )" );
  67982. }
  67983. # endif /*VULKAN_HPP_NO_EXCEPTIONS*/
  67984. }
  67985. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  67986. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  67987. SubpassDescription & operator=( SubpassDescription const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  67988. SubpassDescription & operator=( VkSubpassDescription const & rhs ) VULKAN_HPP_NOEXCEPT
  67989. {
  67990. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SubpassDescription const *>( &rhs );
  67991. return *this;
  67992. }
  67993. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  67994. VULKAN_HPP_CONSTEXPR_14 SubpassDescription & setFlags( VULKAN_HPP_NAMESPACE::SubpassDescriptionFlags flags_ ) VULKAN_HPP_NOEXCEPT
  67995. {
  67996. flags = flags_;
  67997. return *this;
  67998. }
  67999. VULKAN_HPP_CONSTEXPR_14 SubpassDescription & setPipelineBindPoint( VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint_ ) VULKAN_HPP_NOEXCEPT
  68000. {
  68001. pipelineBindPoint = pipelineBindPoint_;
  68002. return *this;
  68003. }
  68004. VULKAN_HPP_CONSTEXPR_14 SubpassDescription & setInputAttachmentCount( uint32_t inputAttachmentCount_ ) VULKAN_HPP_NOEXCEPT
  68005. {
  68006. inputAttachmentCount = inputAttachmentCount_;
  68007. return *this;
  68008. }
  68009. VULKAN_HPP_CONSTEXPR_14 SubpassDescription &
  68010. setPInputAttachments( const VULKAN_HPP_NAMESPACE::AttachmentReference * pInputAttachments_ ) VULKAN_HPP_NOEXCEPT
  68011. {
  68012. pInputAttachments = pInputAttachments_;
  68013. return *this;
  68014. }
  68015. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  68016. SubpassDescription & setInputAttachments(
  68017. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::AttachmentReference> const & inputAttachments_ ) VULKAN_HPP_NOEXCEPT
  68018. {
  68019. inputAttachmentCount = static_cast<uint32_t>( inputAttachments_.size() );
  68020. pInputAttachments = inputAttachments_.data();
  68021. return *this;
  68022. }
  68023. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  68024. VULKAN_HPP_CONSTEXPR_14 SubpassDescription & setColorAttachmentCount( uint32_t colorAttachmentCount_ ) VULKAN_HPP_NOEXCEPT
  68025. {
  68026. colorAttachmentCount = colorAttachmentCount_;
  68027. return *this;
  68028. }
  68029. VULKAN_HPP_CONSTEXPR_14 SubpassDescription &
  68030. setPColorAttachments( const VULKAN_HPP_NAMESPACE::AttachmentReference * pColorAttachments_ ) VULKAN_HPP_NOEXCEPT
  68031. {
  68032. pColorAttachments = pColorAttachments_;
  68033. return *this;
  68034. }
  68035. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  68036. SubpassDescription & setColorAttachments(
  68037. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::AttachmentReference> const & colorAttachments_ ) VULKAN_HPP_NOEXCEPT
  68038. {
  68039. colorAttachmentCount = static_cast<uint32_t>( colorAttachments_.size() );
  68040. pColorAttachments = colorAttachments_.data();
  68041. return *this;
  68042. }
  68043. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  68044. VULKAN_HPP_CONSTEXPR_14 SubpassDescription &
  68045. setPResolveAttachments( const VULKAN_HPP_NAMESPACE::AttachmentReference * pResolveAttachments_ ) VULKAN_HPP_NOEXCEPT
  68046. {
  68047. pResolveAttachments = pResolveAttachments_;
  68048. return *this;
  68049. }
  68050. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  68051. SubpassDescription & setResolveAttachments(
  68052. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::AttachmentReference> const & resolveAttachments_ ) VULKAN_HPP_NOEXCEPT
  68053. {
  68054. colorAttachmentCount = static_cast<uint32_t>( resolveAttachments_.size() );
  68055. pResolveAttachments = resolveAttachments_.data();
  68056. return *this;
  68057. }
  68058. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  68059. VULKAN_HPP_CONSTEXPR_14 SubpassDescription &
  68060. setPDepthStencilAttachment( const VULKAN_HPP_NAMESPACE::AttachmentReference * pDepthStencilAttachment_ ) VULKAN_HPP_NOEXCEPT
  68061. {
  68062. pDepthStencilAttachment = pDepthStencilAttachment_;
  68063. return *this;
  68064. }
  68065. VULKAN_HPP_CONSTEXPR_14 SubpassDescription & setPreserveAttachmentCount( uint32_t preserveAttachmentCount_ ) VULKAN_HPP_NOEXCEPT
  68066. {
  68067. preserveAttachmentCount = preserveAttachmentCount_;
  68068. return *this;
  68069. }
  68070. VULKAN_HPP_CONSTEXPR_14 SubpassDescription & setPPreserveAttachments( const uint32_t * pPreserveAttachments_ ) VULKAN_HPP_NOEXCEPT
  68071. {
  68072. pPreserveAttachments = pPreserveAttachments_;
  68073. return *this;
  68074. }
  68075. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  68076. SubpassDescription &
  68077. setPreserveAttachments( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint32_t> const & preserveAttachments_ ) VULKAN_HPP_NOEXCEPT
  68078. {
  68079. preserveAttachmentCount = static_cast<uint32_t>( preserveAttachments_.size() );
  68080. pPreserveAttachments = preserveAttachments_.data();
  68081. return *this;
  68082. }
  68083. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  68084. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  68085. operator VkSubpassDescription const &() const VULKAN_HPP_NOEXCEPT
  68086. {
  68087. return *reinterpret_cast<const VkSubpassDescription *>( this );
  68088. }
  68089. operator VkSubpassDescription &() VULKAN_HPP_NOEXCEPT
  68090. {
  68091. return *reinterpret_cast<VkSubpassDescription *>( this );
  68092. }
  68093. #if defined( VULKAN_HPP_USE_REFLECT )
  68094. # if 14 <= VULKAN_HPP_CPP_VERSION
  68095. auto
  68096. # else
  68097. std::tuple<VULKAN_HPP_NAMESPACE::SubpassDescriptionFlags const &,
  68098. VULKAN_HPP_NAMESPACE::PipelineBindPoint const &,
  68099. uint32_t const &,
  68100. const VULKAN_HPP_NAMESPACE::AttachmentReference * const &,
  68101. uint32_t const &,
  68102. const VULKAN_HPP_NAMESPACE::AttachmentReference * const &,
  68103. const VULKAN_HPP_NAMESPACE::AttachmentReference * const &,
  68104. const VULKAN_HPP_NAMESPACE::AttachmentReference * const &,
  68105. uint32_t const &,
  68106. const uint32_t * const &>
  68107. # endif
  68108. reflect() const VULKAN_HPP_NOEXCEPT
  68109. {
  68110. return std::tie( flags,
  68111. pipelineBindPoint,
  68112. inputAttachmentCount,
  68113. pInputAttachments,
  68114. colorAttachmentCount,
  68115. pColorAttachments,
  68116. pResolveAttachments,
  68117. pDepthStencilAttachment,
  68118. preserveAttachmentCount,
  68119. pPreserveAttachments );
  68120. }
  68121. #endif
  68122. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  68123. auto operator<=>( SubpassDescription const & ) const = default;
  68124. #else
  68125. bool operator==( SubpassDescription const & rhs ) const VULKAN_HPP_NOEXCEPT
  68126. {
  68127. # if defined( VULKAN_HPP_USE_REFLECT )
  68128. return this->reflect() == rhs.reflect();
  68129. # else
  68130. return ( flags == rhs.flags ) && ( pipelineBindPoint == rhs.pipelineBindPoint ) && ( inputAttachmentCount == rhs.inputAttachmentCount ) &&
  68131. ( pInputAttachments == rhs.pInputAttachments ) && ( colorAttachmentCount == rhs.colorAttachmentCount ) &&
  68132. ( pColorAttachments == rhs.pColorAttachments ) && ( pResolveAttachments == rhs.pResolveAttachments ) &&
  68133. ( pDepthStencilAttachment == rhs.pDepthStencilAttachment ) && ( preserveAttachmentCount == rhs.preserveAttachmentCount ) &&
  68134. ( pPreserveAttachments == rhs.pPreserveAttachments );
  68135. # endif
  68136. }
  68137. bool operator!=( SubpassDescription const & rhs ) const VULKAN_HPP_NOEXCEPT
  68138. {
  68139. return !operator==( rhs );
  68140. }
  68141. #endif
  68142. public:
  68143. VULKAN_HPP_NAMESPACE::SubpassDescriptionFlags flags = {};
  68144. VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint = VULKAN_HPP_NAMESPACE::PipelineBindPoint::eGraphics;
  68145. uint32_t inputAttachmentCount = {};
  68146. const VULKAN_HPP_NAMESPACE::AttachmentReference * pInputAttachments = {};
  68147. uint32_t colorAttachmentCount = {};
  68148. const VULKAN_HPP_NAMESPACE::AttachmentReference * pColorAttachments = {};
  68149. const VULKAN_HPP_NAMESPACE::AttachmentReference * pResolveAttachments = {};
  68150. const VULKAN_HPP_NAMESPACE::AttachmentReference * pDepthStencilAttachment = {};
  68151. uint32_t preserveAttachmentCount = {};
  68152. const uint32_t * pPreserveAttachments = {};
  68153. };
  68154. struct SubpassDependency
  68155. {
  68156. using NativeType = VkSubpassDependency;
  68157. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  68158. VULKAN_HPP_CONSTEXPR SubpassDependency( uint32_t srcSubpass_ = {},
  68159. uint32_t dstSubpass_ = {},
  68160. VULKAN_HPP_NAMESPACE::PipelineStageFlags srcStageMask_ = {},
  68161. VULKAN_HPP_NAMESPACE::PipelineStageFlags dstStageMask_ = {},
  68162. VULKAN_HPP_NAMESPACE::AccessFlags srcAccessMask_ = {},
  68163. VULKAN_HPP_NAMESPACE::AccessFlags dstAccessMask_ = {},
  68164. VULKAN_HPP_NAMESPACE::DependencyFlags dependencyFlags_ = {} ) VULKAN_HPP_NOEXCEPT
  68165. : srcSubpass( srcSubpass_ )
  68166. , dstSubpass( dstSubpass_ )
  68167. , srcStageMask( srcStageMask_ )
  68168. , dstStageMask( dstStageMask_ )
  68169. , srcAccessMask( srcAccessMask_ )
  68170. , dstAccessMask( dstAccessMask_ )
  68171. , dependencyFlags( dependencyFlags_ )
  68172. {
  68173. }
  68174. VULKAN_HPP_CONSTEXPR SubpassDependency( SubpassDependency const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  68175. SubpassDependency( VkSubpassDependency const & rhs ) VULKAN_HPP_NOEXCEPT : SubpassDependency( *reinterpret_cast<SubpassDependency const *>( &rhs ) ) {}
  68176. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  68177. SubpassDependency & operator=( SubpassDependency const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  68178. SubpassDependency & operator=( VkSubpassDependency const & rhs ) VULKAN_HPP_NOEXCEPT
  68179. {
  68180. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SubpassDependency const *>( &rhs );
  68181. return *this;
  68182. }
  68183. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  68184. VULKAN_HPP_CONSTEXPR_14 SubpassDependency & setSrcSubpass( uint32_t srcSubpass_ ) VULKAN_HPP_NOEXCEPT
  68185. {
  68186. srcSubpass = srcSubpass_;
  68187. return *this;
  68188. }
  68189. VULKAN_HPP_CONSTEXPR_14 SubpassDependency & setDstSubpass( uint32_t dstSubpass_ ) VULKAN_HPP_NOEXCEPT
  68190. {
  68191. dstSubpass = dstSubpass_;
  68192. return *this;
  68193. }
  68194. VULKAN_HPP_CONSTEXPR_14 SubpassDependency & setSrcStageMask( VULKAN_HPP_NAMESPACE::PipelineStageFlags srcStageMask_ ) VULKAN_HPP_NOEXCEPT
  68195. {
  68196. srcStageMask = srcStageMask_;
  68197. return *this;
  68198. }
  68199. VULKAN_HPP_CONSTEXPR_14 SubpassDependency & setDstStageMask( VULKAN_HPP_NAMESPACE::PipelineStageFlags dstStageMask_ ) VULKAN_HPP_NOEXCEPT
  68200. {
  68201. dstStageMask = dstStageMask_;
  68202. return *this;
  68203. }
  68204. VULKAN_HPP_CONSTEXPR_14 SubpassDependency & setSrcAccessMask( VULKAN_HPP_NAMESPACE::AccessFlags srcAccessMask_ ) VULKAN_HPP_NOEXCEPT
  68205. {
  68206. srcAccessMask = srcAccessMask_;
  68207. return *this;
  68208. }
  68209. VULKAN_HPP_CONSTEXPR_14 SubpassDependency & setDstAccessMask( VULKAN_HPP_NAMESPACE::AccessFlags dstAccessMask_ ) VULKAN_HPP_NOEXCEPT
  68210. {
  68211. dstAccessMask = dstAccessMask_;
  68212. return *this;
  68213. }
  68214. VULKAN_HPP_CONSTEXPR_14 SubpassDependency & setDependencyFlags( VULKAN_HPP_NAMESPACE::DependencyFlags dependencyFlags_ ) VULKAN_HPP_NOEXCEPT
  68215. {
  68216. dependencyFlags = dependencyFlags_;
  68217. return *this;
  68218. }
  68219. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  68220. operator VkSubpassDependency const &() const VULKAN_HPP_NOEXCEPT
  68221. {
  68222. return *reinterpret_cast<const VkSubpassDependency *>( this );
  68223. }
  68224. operator VkSubpassDependency &() VULKAN_HPP_NOEXCEPT
  68225. {
  68226. return *reinterpret_cast<VkSubpassDependency *>( this );
  68227. }
  68228. #if defined( VULKAN_HPP_USE_REFLECT )
  68229. # if 14 <= VULKAN_HPP_CPP_VERSION
  68230. auto
  68231. # else
  68232. std::tuple<uint32_t const &,
  68233. uint32_t const &,
  68234. VULKAN_HPP_NAMESPACE::PipelineStageFlags const &,
  68235. VULKAN_HPP_NAMESPACE::PipelineStageFlags const &,
  68236. VULKAN_HPP_NAMESPACE::AccessFlags const &,
  68237. VULKAN_HPP_NAMESPACE::AccessFlags const &,
  68238. VULKAN_HPP_NAMESPACE::DependencyFlags const &>
  68239. # endif
  68240. reflect() const VULKAN_HPP_NOEXCEPT
  68241. {
  68242. return std::tie( srcSubpass, dstSubpass, srcStageMask, dstStageMask, srcAccessMask, dstAccessMask, dependencyFlags );
  68243. }
  68244. #endif
  68245. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  68246. auto operator<=>( SubpassDependency const & ) const = default;
  68247. #else
  68248. bool operator==( SubpassDependency const & rhs ) const VULKAN_HPP_NOEXCEPT
  68249. {
  68250. # if defined( VULKAN_HPP_USE_REFLECT )
  68251. return this->reflect() == rhs.reflect();
  68252. # else
  68253. return ( srcSubpass == rhs.srcSubpass ) && ( dstSubpass == rhs.dstSubpass ) && ( srcStageMask == rhs.srcStageMask ) &&
  68254. ( dstStageMask == rhs.dstStageMask ) && ( srcAccessMask == rhs.srcAccessMask ) && ( dstAccessMask == rhs.dstAccessMask ) &&
  68255. ( dependencyFlags == rhs.dependencyFlags );
  68256. # endif
  68257. }
  68258. bool operator!=( SubpassDependency const & rhs ) const VULKAN_HPP_NOEXCEPT
  68259. {
  68260. return !operator==( rhs );
  68261. }
  68262. #endif
  68263. public:
  68264. uint32_t srcSubpass = {};
  68265. uint32_t dstSubpass = {};
  68266. VULKAN_HPP_NAMESPACE::PipelineStageFlags srcStageMask = {};
  68267. VULKAN_HPP_NAMESPACE::PipelineStageFlags dstStageMask = {};
  68268. VULKAN_HPP_NAMESPACE::AccessFlags srcAccessMask = {};
  68269. VULKAN_HPP_NAMESPACE::AccessFlags dstAccessMask = {};
  68270. VULKAN_HPP_NAMESPACE::DependencyFlags dependencyFlags = {};
  68271. };
  68272. struct RenderPassCreateInfo
  68273. {
  68274. using NativeType = VkRenderPassCreateInfo;
  68275. static const bool allowDuplicate = false;
  68276. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eRenderPassCreateInfo;
  68277. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  68278. VULKAN_HPP_CONSTEXPR RenderPassCreateInfo( VULKAN_HPP_NAMESPACE::RenderPassCreateFlags flags_ = {},
  68279. uint32_t attachmentCount_ = {},
  68280. const VULKAN_HPP_NAMESPACE::AttachmentDescription * pAttachments_ = {},
  68281. uint32_t subpassCount_ = {},
  68282. const VULKAN_HPP_NAMESPACE::SubpassDescription * pSubpasses_ = {},
  68283. uint32_t dependencyCount_ = {},
  68284. const VULKAN_HPP_NAMESPACE::SubpassDependency * pDependencies_ = {},
  68285. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  68286. : pNext( pNext_ )
  68287. , flags( flags_ )
  68288. , attachmentCount( attachmentCount_ )
  68289. , pAttachments( pAttachments_ )
  68290. , subpassCount( subpassCount_ )
  68291. , pSubpasses( pSubpasses_ )
  68292. , dependencyCount( dependencyCount_ )
  68293. , pDependencies( pDependencies_ )
  68294. {
  68295. }
  68296. VULKAN_HPP_CONSTEXPR RenderPassCreateInfo( RenderPassCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  68297. RenderPassCreateInfo( VkRenderPassCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
  68298. : RenderPassCreateInfo( *reinterpret_cast<RenderPassCreateInfo const *>( &rhs ) )
  68299. {
  68300. }
  68301. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  68302. RenderPassCreateInfo( VULKAN_HPP_NAMESPACE::RenderPassCreateFlags flags_,
  68303. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::AttachmentDescription> const & attachments_,
  68304. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::SubpassDescription> const & subpasses_ = {},
  68305. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::SubpassDependency> const & dependencies_ = {},
  68306. const void * pNext_ = nullptr )
  68307. : pNext( pNext_ )
  68308. , flags( flags_ )
  68309. , attachmentCount( static_cast<uint32_t>( attachments_.size() ) )
  68310. , pAttachments( attachments_.data() )
  68311. , subpassCount( static_cast<uint32_t>( subpasses_.size() ) )
  68312. , pSubpasses( subpasses_.data() )
  68313. , dependencyCount( static_cast<uint32_t>( dependencies_.size() ) )
  68314. , pDependencies( dependencies_.data() )
  68315. {
  68316. }
  68317. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  68318. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  68319. RenderPassCreateInfo & operator=( RenderPassCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  68320. RenderPassCreateInfo & operator=( VkRenderPassCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
  68321. {
  68322. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::RenderPassCreateInfo const *>( &rhs );
  68323. return *this;
  68324. }
  68325. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  68326. VULKAN_HPP_CONSTEXPR_14 RenderPassCreateInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  68327. {
  68328. pNext = pNext_;
  68329. return *this;
  68330. }
  68331. VULKAN_HPP_CONSTEXPR_14 RenderPassCreateInfo & setFlags( VULKAN_HPP_NAMESPACE::RenderPassCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT
  68332. {
  68333. flags = flags_;
  68334. return *this;
  68335. }
  68336. VULKAN_HPP_CONSTEXPR_14 RenderPassCreateInfo & setAttachmentCount( uint32_t attachmentCount_ ) VULKAN_HPP_NOEXCEPT
  68337. {
  68338. attachmentCount = attachmentCount_;
  68339. return *this;
  68340. }
  68341. VULKAN_HPP_CONSTEXPR_14 RenderPassCreateInfo & setPAttachments( const VULKAN_HPP_NAMESPACE::AttachmentDescription * pAttachments_ ) VULKAN_HPP_NOEXCEPT
  68342. {
  68343. pAttachments = pAttachments_;
  68344. return *this;
  68345. }
  68346. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  68347. RenderPassCreateInfo & setAttachments(
  68348. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::AttachmentDescription> const & attachments_ ) VULKAN_HPP_NOEXCEPT
  68349. {
  68350. attachmentCount = static_cast<uint32_t>( attachments_.size() );
  68351. pAttachments = attachments_.data();
  68352. return *this;
  68353. }
  68354. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  68355. VULKAN_HPP_CONSTEXPR_14 RenderPassCreateInfo & setSubpassCount( uint32_t subpassCount_ ) VULKAN_HPP_NOEXCEPT
  68356. {
  68357. subpassCount = subpassCount_;
  68358. return *this;
  68359. }
  68360. VULKAN_HPP_CONSTEXPR_14 RenderPassCreateInfo & setPSubpasses( const VULKAN_HPP_NAMESPACE::SubpassDescription * pSubpasses_ ) VULKAN_HPP_NOEXCEPT
  68361. {
  68362. pSubpasses = pSubpasses_;
  68363. return *this;
  68364. }
  68365. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  68366. RenderPassCreateInfo &
  68367. setSubpasses( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::SubpassDescription> const & subpasses_ ) VULKAN_HPP_NOEXCEPT
  68368. {
  68369. subpassCount = static_cast<uint32_t>( subpasses_.size() );
  68370. pSubpasses = subpasses_.data();
  68371. return *this;
  68372. }
  68373. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  68374. VULKAN_HPP_CONSTEXPR_14 RenderPassCreateInfo & setDependencyCount( uint32_t dependencyCount_ ) VULKAN_HPP_NOEXCEPT
  68375. {
  68376. dependencyCount = dependencyCount_;
  68377. return *this;
  68378. }
  68379. VULKAN_HPP_CONSTEXPR_14 RenderPassCreateInfo & setPDependencies( const VULKAN_HPP_NAMESPACE::SubpassDependency * pDependencies_ ) VULKAN_HPP_NOEXCEPT
  68380. {
  68381. pDependencies = pDependencies_;
  68382. return *this;
  68383. }
  68384. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  68385. RenderPassCreateInfo &
  68386. setDependencies( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::SubpassDependency> const & dependencies_ ) VULKAN_HPP_NOEXCEPT
  68387. {
  68388. dependencyCount = static_cast<uint32_t>( dependencies_.size() );
  68389. pDependencies = dependencies_.data();
  68390. return *this;
  68391. }
  68392. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  68393. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  68394. operator VkRenderPassCreateInfo const &() const VULKAN_HPP_NOEXCEPT
  68395. {
  68396. return *reinterpret_cast<const VkRenderPassCreateInfo *>( this );
  68397. }
  68398. operator VkRenderPassCreateInfo &() VULKAN_HPP_NOEXCEPT
  68399. {
  68400. return *reinterpret_cast<VkRenderPassCreateInfo *>( this );
  68401. }
  68402. #if defined( VULKAN_HPP_USE_REFLECT )
  68403. # if 14 <= VULKAN_HPP_CPP_VERSION
  68404. auto
  68405. # else
  68406. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  68407. const void * const &,
  68408. VULKAN_HPP_NAMESPACE::RenderPassCreateFlags const &,
  68409. uint32_t const &,
  68410. const VULKAN_HPP_NAMESPACE::AttachmentDescription * const &,
  68411. uint32_t const &,
  68412. const VULKAN_HPP_NAMESPACE::SubpassDescription * const &,
  68413. uint32_t const &,
  68414. const VULKAN_HPP_NAMESPACE::SubpassDependency * const &>
  68415. # endif
  68416. reflect() const VULKAN_HPP_NOEXCEPT
  68417. {
  68418. return std::tie( sType, pNext, flags, attachmentCount, pAttachments, subpassCount, pSubpasses, dependencyCount, pDependencies );
  68419. }
  68420. #endif
  68421. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  68422. auto operator<=>( RenderPassCreateInfo const & ) const = default;
  68423. #else
  68424. bool operator==( RenderPassCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  68425. {
  68426. # if defined( VULKAN_HPP_USE_REFLECT )
  68427. return this->reflect() == rhs.reflect();
  68428. # else
  68429. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( flags == rhs.flags ) && ( attachmentCount == rhs.attachmentCount ) &&
  68430. ( pAttachments == rhs.pAttachments ) && ( subpassCount == rhs.subpassCount ) && ( pSubpasses == rhs.pSubpasses ) &&
  68431. ( dependencyCount == rhs.dependencyCount ) && ( pDependencies == rhs.pDependencies );
  68432. # endif
  68433. }
  68434. bool operator!=( RenderPassCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  68435. {
  68436. return !operator==( rhs );
  68437. }
  68438. #endif
  68439. public:
  68440. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eRenderPassCreateInfo;
  68441. const void * pNext = {};
  68442. VULKAN_HPP_NAMESPACE::RenderPassCreateFlags flags = {};
  68443. uint32_t attachmentCount = {};
  68444. const VULKAN_HPP_NAMESPACE::AttachmentDescription * pAttachments = {};
  68445. uint32_t subpassCount = {};
  68446. const VULKAN_HPP_NAMESPACE::SubpassDescription * pSubpasses = {};
  68447. uint32_t dependencyCount = {};
  68448. const VULKAN_HPP_NAMESPACE::SubpassDependency * pDependencies = {};
  68449. };
  68450. template <>
  68451. struct CppType<StructureType, StructureType::eRenderPassCreateInfo>
  68452. {
  68453. using Type = RenderPassCreateInfo;
  68454. };
  68455. struct SubpassDescription2
  68456. {
  68457. using NativeType = VkSubpassDescription2;
  68458. static const bool allowDuplicate = false;
  68459. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSubpassDescription2;
  68460. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  68461. VULKAN_HPP_CONSTEXPR SubpassDescription2( VULKAN_HPP_NAMESPACE::SubpassDescriptionFlags flags_ = {},
  68462. VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint_ = VULKAN_HPP_NAMESPACE::PipelineBindPoint::eGraphics,
  68463. uint32_t viewMask_ = {},
  68464. uint32_t inputAttachmentCount_ = {},
  68465. const VULKAN_HPP_NAMESPACE::AttachmentReference2 * pInputAttachments_ = {},
  68466. uint32_t colorAttachmentCount_ = {},
  68467. const VULKAN_HPP_NAMESPACE::AttachmentReference2 * pColorAttachments_ = {},
  68468. const VULKAN_HPP_NAMESPACE::AttachmentReference2 * pResolveAttachments_ = {},
  68469. const VULKAN_HPP_NAMESPACE::AttachmentReference2 * pDepthStencilAttachment_ = {},
  68470. uint32_t preserveAttachmentCount_ = {},
  68471. const uint32_t * pPreserveAttachments_ = {},
  68472. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  68473. : pNext( pNext_ )
  68474. , flags( flags_ )
  68475. , pipelineBindPoint( pipelineBindPoint_ )
  68476. , viewMask( viewMask_ )
  68477. , inputAttachmentCount( inputAttachmentCount_ )
  68478. , pInputAttachments( pInputAttachments_ )
  68479. , colorAttachmentCount( colorAttachmentCount_ )
  68480. , pColorAttachments( pColorAttachments_ )
  68481. , pResolveAttachments( pResolveAttachments_ )
  68482. , pDepthStencilAttachment( pDepthStencilAttachment_ )
  68483. , preserveAttachmentCount( preserveAttachmentCount_ )
  68484. , pPreserveAttachments( pPreserveAttachments_ )
  68485. {
  68486. }
  68487. VULKAN_HPP_CONSTEXPR SubpassDescription2( SubpassDescription2 const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  68488. SubpassDescription2( VkSubpassDescription2 const & rhs ) VULKAN_HPP_NOEXCEPT : SubpassDescription2( *reinterpret_cast<SubpassDescription2 const *>( &rhs ) )
  68489. {
  68490. }
  68491. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  68492. SubpassDescription2( VULKAN_HPP_NAMESPACE::SubpassDescriptionFlags flags_,
  68493. VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint_,
  68494. uint32_t viewMask_,
  68495. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::AttachmentReference2> const & inputAttachments_,
  68496. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::AttachmentReference2> const & colorAttachments_ = {},
  68497. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::AttachmentReference2> const & resolveAttachments_ = {},
  68498. const VULKAN_HPP_NAMESPACE::AttachmentReference2 * pDepthStencilAttachment_ = {},
  68499. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint32_t> const & preserveAttachments_ = {},
  68500. const void * pNext_ = nullptr )
  68501. : pNext( pNext_ )
  68502. , flags( flags_ )
  68503. , pipelineBindPoint( pipelineBindPoint_ )
  68504. , viewMask( viewMask_ )
  68505. , inputAttachmentCount( static_cast<uint32_t>( inputAttachments_.size() ) )
  68506. , pInputAttachments( inputAttachments_.data() )
  68507. , colorAttachmentCount( static_cast<uint32_t>( colorAttachments_.size() ) )
  68508. , pColorAttachments( colorAttachments_.data() )
  68509. , pResolveAttachments( resolveAttachments_.data() )
  68510. , pDepthStencilAttachment( pDepthStencilAttachment_ )
  68511. , preserveAttachmentCount( static_cast<uint32_t>( preserveAttachments_.size() ) )
  68512. , pPreserveAttachments( preserveAttachments_.data() )
  68513. {
  68514. # ifdef VULKAN_HPP_NO_EXCEPTIONS
  68515. VULKAN_HPP_ASSERT( resolveAttachments_.empty() || ( colorAttachments_.size() == resolveAttachments_.size() ) );
  68516. # else
  68517. if ( !resolveAttachments_.empty() && ( colorAttachments_.size() != resolveAttachments_.size() ) )
  68518. {
  68519. throw LogicError(
  68520. VULKAN_HPP_NAMESPACE_STRING
  68521. "::SubpassDescription2::SubpassDescription2: !resolveAttachments_.empty() && ( colorAttachments_.size() != resolveAttachments_.size() )" );
  68522. }
  68523. # endif /*VULKAN_HPP_NO_EXCEPTIONS*/
  68524. }
  68525. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  68526. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  68527. SubpassDescription2 & operator=( SubpassDescription2 const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  68528. SubpassDescription2 & operator=( VkSubpassDescription2 const & rhs ) VULKAN_HPP_NOEXCEPT
  68529. {
  68530. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SubpassDescription2 const *>( &rhs );
  68531. return *this;
  68532. }
  68533. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  68534. VULKAN_HPP_CONSTEXPR_14 SubpassDescription2 & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  68535. {
  68536. pNext = pNext_;
  68537. return *this;
  68538. }
  68539. VULKAN_HPP_CONSTEXPR_14 SubpassDescription2 & setFlags( VULKAN_HPP_NAMESPACE::SubpassDescriptionFlags flags_ ) VULKAN_HPP_NOEXCEPT
  68540. {
  68541. flags = flags_;
  68542. return *this;
  68543. }
  68544. VULKAN_HPP_CONSTEXPR_14 SubpassDescription2 & setPipelineBindPoint( VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint_ ) VULKAN_HPP_NOEXCEPT
  68545. {
  68546. pipelineBindPoint = pipelineBindPoint_;
  68547. return *this;
  68548. }
  68549. VULKAN_HPP_CONSTEXPR_14 SubpassDescription2 & setViewMask( uint32_t viewMask_ ) VULKAN_HPP_NOEXCEPT
  68550. {
  68551. viewMask = viewMask_;
  68552. return *this;
  68553. }
  68554. VULKAN_HPP_CONSTEXPR_14 SubpassDescription2 & setInputAttachmentCount( uint32_t inputAttachmentCount_ ) VULKAN_HPP_NOEXCEPT
  68555. {
  68556. inputAttachmentCount = inputAttachmentCount_;
  68557. return *this;
  68558. }
  68559. VULKAN_HPP_CONSTEXPR_14 SubpassDescription2 &
  68560. setPInputAttachments( const VULKAN_HPP_NAMESPACE::AttachmentReference2 * pInputAttachments_ ) VULKAN_HPP_NOEXCEPT
  68561. {
  68562. pInputAttachments = pInputAttachments_;
  68563. return *this;
  68564. }
  68565. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  68566. SubpassDescription2 & setInputAttachments(
  68567. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::AttachmentReference2> const & inputAttachments_ ) VULKAN_HPP_NOEXCEPT
  68568. {
  68569. inputAttachmentCount = static_cast<uint32_t>( inputAttachments_.size() );
  68570. pInputAttachments = inputAttachments_.data();
  68571. return *this;
  68572. }
  68573. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  68574. VULKAN_HPP_CONSTEXPR_14 SubpassDescription2 & setColorAttachmentCount( uint32_t colorAttachmentCount_ ) VULKAN_HPP_NOEXCEPT
  68575. {
  68576. colorAttachmentCount = colorAttachmentCount_;
  68577. return *this;
  68578. }
  68579. VULKAN_HPP_CONSTEXPR_14 SubpassDescription2 &
  68580. setPColorAttachments( const VULKAN_HPP_NAMESPACE::AttachmentReference2 * pColorAttachments_ ) VULKAN_HPP_NOEXCEPT
  68581. {
  68582. pColorAttachments = pColorAttachments_;
  68583. return *this;
  68584. }
  68585. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  68586. SubpassDescription2 & setColorAttachments(
  68587. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::AttachmentReference2> const & colorAttachments_ ) VULKAN_HPP_NOEXCEPT
  68588. {
  68589. colorAttachmentCount = static_cast<uint32_t>( colorAttachments_.size() );
  68590. pColorAttachments = colorAttachments_.data();
  68591. return *this;
  68592. }
  68593. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  68594. VULKAN_HPP_CONSTEXPR_14 SubpassDescription2 &
  68595. setPResolveAttachments( const VULKAN_HPP_NAMESPACE::AttachmentReference2 * pResolveAttachments_ ) VULKAN_HPP_NOEXCEPT
  68596. {
  68597. pResolveAttachments = pResolveAttachments_;
  68598. return *this;
  68599. }
  68600. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  68601. SubpassDescription2 & setResolveAttachments(
  68602. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::AttachmentReference2> const & resolveAttachments_ ) VULKAN_HPP_NOEXCEPT
  68603. {
  68604. colorAttachmentCount = static_cast<uint32_t>( resolveAttachments_.size() );
  68605. pResolveAttachments = resolveAttachments_.data();
  68606. return *this;
  68607. }
  68608. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  68609. VULKAN_HPP_CONSTEXPR_14 SubpassDescription2 &
  68610. setPDepthStencilAttachment( const VULKAN_HPP_NAMESPACE::AttachmentReference2 * pDepthStencilAttachment_ ) VULKAN_HPP_NOEXCEPT
  68611. {
  68612. pDepthStencilAttachment = pDepthStencilAttachment_;
  68613. return *this;
  68614. }
  68615. VULKAN_HPP_CONSTEXPR_14 SubpassDescription2 & setPreserveAttachmentCount( uint32_t preserveAttachmentCount_ ) VULKAN_HPP_NOEXCEPT
  68616. {
  68617. preserveAttachmentCount = preserveAttachmentCount_;
  68618. return *this;
  68619. }
  68620. VULKAN_HPP_CONSTEXPR_14 SubpassDescription2 & setPPreserveAttachments( const uint32_t * pPreserveAttachments_ ) VULKAN_HPP_NOEXCEPT
  68621. {
  68622. pPreserveAttachments = pPreserveAttachments_;
  68623. return *this;
  68624. }
  68625. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  68626. SubpassDescription2 &
  68627. setPreserveAttachments( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint32_t> const & preserveAttachments_ ) VULKAN_HPP_NOEXCEPT
  68628. {
  68629. preserveAttachmentCount = static_cast<uint32_t>( preserveAttachments_.size() );
  68630. pPreserveAttachments = preserveAttachments_.data();
  68631. return *this;
  68632. }
  68633. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  68634. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  68635. operator VkSubpassDescription2 const &() const VULKAN_HPP_NOEXCEPT
  68636. {
  68637. return *reinterpret_cast<const VkSubpassDescription2 *>( this );
  68638. }
  68639. operator VkSubpassDescription2 &() VULKAN_HPP_NOEXCEPT
  68640. {
  68641. return *reinterpret_cast<VkSubpassDescription2 *>( this );
  68642. }
  68643. #if defined( VULKAN_HPP_USE_REFLECT )
  68644. # if 14 <= VULKAN_HPP_CPP_VERSION
  68645. auto
  68646. # else
  68647. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  68648. const void * const &,
  68649. VULKAN_HPP_NAMESPACE::SubpassDescriptionFlags const &,
  68650. VULKAN_HPP_NAMESPACE::PipelineBindPoint const &,
  68651. uint32_t const &,
  68652. uint32_t const &,
  68653. const VULKAN_HPP_NAMESPACE::AttachmentReference2 * const &,
  68654. uint32_t const &,
  68655. const VULKAN_HPP_NAMESPACE::AttachmentReference2 * const &,
  68656. const VULKAN_HPP_NAMESPACE::AttachmentReference2 * const &,
  68657. const VULKAN_HPP_NAMESPACE::AttachmentReference2 * const &,
  68658. uint32_t const &,
  68659. const uint32_t * const &>
  68660. # endif
  68661. reflect() const VULKAN_HPP_NOEXCEPT
  68662. {
  68663. return std::tie( sType,
  68664. pNext,
  68665. flags,
  68666. pipelineBindPoint,
  68667. viewMask,
  68668. inputAttachmentCount,
  68669. pInputAttachments,
  68670. colorAttachmentCount,
  68671. pColorAttachments,
  68672. pResolveAttachments,
  68673. pDepthStencilAttachment,
  68674. preserveAttachmentCount,
  68675. pPreserveAttachments );
  68676. }
  68677. #endif
  68678. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  68679. auto operator<=>( SubpassDescription2 const & ) const = default;
  68680. #else
  68681. bool operator==( SubpassDescription2 const & rhs ) const VULKAN_HPP_NOEXCEPT
  68682. {
  68683. # if defined( VULKAN_HPP_USE_REFLECT )
  68684. return this->reflect() == rhs.reflect();
  68685. # else
  68686. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( flags == rhs.flags ) && ( pipelineBindPoint == rhs.pipelineBindPoint ) &&
  68687. ( viewMask == rhs.viewMask ) && ( inputAttachmentCount == rhs.inputAttachmentCount ) && ( pInputAttachments == rhs.pInputAttachments ) &&
  68688. ( colorAttachmentCount == rhs.colorAttachmentCount ) && ( pColorAttachments == rhs.pColorAttachments ) &&
  68689. ( pResolveAttachments == rhs.pResolveAttachments ) && ( pDepthStencilAttachment == rhs.pDepthStencilAttachment ) &&
  68690. ( preserveAttachmentCount == rhs.preserveAttachmentCount ) && ( pPreserveAttachments == rhs.pPreserveAttachments );
  68691. # endif
  68692. }
  68693. bool operator!=( SubpassDescription2 const & rhs ) const VULKAN_HPP_NOEXCEPT
  68694. {
  68695. return !operator==( rhs );
  68696. }
  68697. #endif
  68698. public:
  68699. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSubpassDescription2;
  68700. const void * pNext = {};
  68701. VULKAN_HPP_NAMESPACE::SubpassDescriptionFlags flags = {};
  68702. VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint = VULKAN_HPP_NAMESPACE::PipelineBindPoint::eGraphics;
  68703. uint32_t viewMask = {};
  68704. uint32_t inputAttachmentCount = {};
  68705. const VULKAN_HPP_NAMESPACE::AttachmentReference2 * pInputAttachments = {};
  68706. uint32_t colorAttachmentCount = {};
  68707. const VULKAN_HPP_NAMESPACE::AttachmentReference2 * pColorAttachments = {};
  68708. const VULKAN_HPP_NAMESPACE::AttachmentReference2 * pResolveAttachments = {};
  68709. const VULKAN_HPP_NAMESPACE::AttachmentReference2 * pDepthStencilAttachment = {};
  68710. uint32_t preserveAttachmentCount = {};
  68711. const uint32_t * pPreserveAttachments = {};
  68712. };
  68713. template <>
  68714. struct CppType<StructureType, StructureType::eSubpassDescription2>
  68715. {
  68716. using Type = SubpassDescription2;
  68717. };
  68718. using SubpassDescription2KHR = SubpassDescription2;
  68719. struct SubpassDependency2
  68720. {
  68721. using NativeType = VkSubpassDependency2;
  68722. static const bool allowDuplicate = false;
  68723. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSubpassDependency2;
  68724. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  68725. VULKAN_HPP_CONSTEXPR SubpassDependency2( uint32_t srcSubpass_ = {},
  68726. uint32_t dstSubpass_ = {},
  68727. VULKAN_HPP_NAMESPACE::PipelineStageFlags srcStageMask_ = {},
  68728. VULKAN_HPP_NAMESPACE::PipelineStageFlags dstStageMask_ = {},
  68729. VULKAN_HPP_NAMESPACE::AccessFlags srcAccessMask_ = {},
  68730. VULKAN_HPP_NAMESPACE::AccessFlags dstAccessMask_ = {},
  68731. VULKAN_HPP_NAMESPACE::DependencyFlags dependencyFlags_ = {},
  68732. int32_t viewOffset_ = {},
  68733. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  68734. : pNext( pNext_ )
  68735. , srcSubpass( srcSubpass_ )
  68736. , dstSubpass( dstSubpass_ )
  68737. , srcStageMask( srcStageMask_ )
  68738. , dstStageMask( dstStageMask_ )
  68739. , srcAccessMask( srcAccessMask_ )
  68740. , dstAccessMask( dstAccessMask_ )
  68741. , dependencyFlags( dependencyFlags_ )
  68742. , viewOffset( viewOffset_ )
  68743. {
  68744. }
  68745. VULKAN_HPP_CONSTEXPR SubpassDependency2( SubpassDependency2 const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  68746. SubpassDependency2( VkSubpassDependency2 const & rhs ) VULKAN_HPP_NOEXCEPT : SubpassDependency2( *reinterpret_cast<SubpassDependency2 const *>( &rhs ) ) {}
  68747. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  68748. SubpassDependency2 & operator=( SubpassDependency2 const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  68749. SubpassDependency2 & operator=( VkSubpassDependency2 const & rhs ) VULKAN_HPP_NOEXCEPT
  68750. {
  68751. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SubpassDependency2 const *>( &rhs );
  68752. return *this;
  68753. }
  68754. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  68755. VULKAN_HPP_CONSTEXPR_14 SubpassDependency2 & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  68756. {
  68757. pNext = pNext_;
  68758. return *this;
  68759. }
  68760. VULKAN_HPP_CONSTEXPR_14 SubpassDependency2 & setSrcSubpass( uint32_t srcSubpass_ ) VULKAN_HPP_NOEXCEPT
  68761. {
  68762. srcSubpass = srcSubpass_;
  68763. return *this;
  68764. }
  68765. VULKAN_HPP_CONSTEXPR_14 SubpassDependency2 & setDstSubpass( uint32_t dstSubpass_ ) VULKAN_HPP_NOEXCEPT
  68766. {
  68767. dstSubpass = dstSubpass_;
  68768. return *this;
  68769. }
  68770. VULKAN_HPP_CONSTEXPR_14 SubpassDependency2 & setSrcStageMask( VULKAN_HPP_NAMESPACE::PipelineStageFlags srcStageMask_ ) VULKAN_HPP_NOEXCEPT
  68771. {
  68772. srcStageMask = srcStageMask_;
  68773. return *this;
  68774. }
  68775. VULKAN_HPP_CONSTEXPR_14 SubpassDependency2 & setDstStageMask( VULKAN_HPP_NAMESPACE::PipelineStageFlags dstStageMask_ ) VULKAN_HPP_NOEXCEPT
  68776. {
  68777. dstStageMask = dstStageMask_;
  68778. return *this;
  68779. }
  68780. VULKAN_HPP_CONSTEXPR_14 SubpassDependency2 & setSrcAccessMask( VULKAN_HPP_NAMESPACE::AccessFlags srcAccessMask_ ) VULKAN_HPP_NOEXCEPT
  68781. {
  68782. srcAccessMask = srcAccessMask_;
  68783. return *this;
  68784. }
  68785. VULKAN_HPP_CONSTEXPR_14 SubpassDependency2 & setDstAccessMask( VULKAN_HPP_NAMESPACE::AccessFlags dstAccessMask_ ) VULKAN_HPP_NOEXCEPT
  68786. {
  68787. dstAccessMask = dstAccessMask_;
  68788. return *this;
  68789. }
  68790. VULKAN_HPP_CONSTEXPR_14 SubpassDependency2 & setDependencyFlags( VULKAN_HPP_NAMESPACE::DependencyFlags dependencyFlags_ ) VULKAN_HPP_NOEXCEPT
  68791. {
  68792. dependencyFlags = dependencyFlags_;
  68793. return *this;
  68794. }
  68795. VULKAN_HPP_CONSTEXPR_14 SubpassDependency2 & setViewOffset( int32_t viewOffset_ ) VULKAN_HPP_NOEXCEPT
  68796. {
  68797. viewOffset = viewOffset_;
  68798. return *this;
  68799. }
  68800. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  68801. operator VkSubpassDependency2 const &() const VULKAN_HPP_NOEXCEPT
  68802. {
  68803. return *reinterpret_cast<const VkSubpassDependency2 *>( this );
  68804. }
  68805. operator VkSubpassDependency2 &() VULKAN_HPP_NOEXCEPT
  68806. {
  68807. return *reinterpret_cast<VkSubpassDependency2 *>( this );
  68808. }
  68809. #if defined( VULKAN_HPP_USE_REFLECT )
  68810. # if 14 <= VULKAN_HPP_CPP_VERSION
  68811. auto
  68812. # else
  68813. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  68814. const void * const &,
  68815. uint32_t const &,
  68816. uint32_t const &,
  68817. VULKAN_HPP_NAMESPACE::PipelineStageFlags const &,
  68818. VULKAN_HPP_NAMESPACE::PipelineStageFlags const &,
  68819. VULKAN_HPP_NAMESPACE::AccessFlags const &,
  68820. VULKAN_HPP_NAMESPACE::AccessFlags const &,
  68821. VULKAN_HPP_NAMESPACE::DependencyFlags const &,
  68822. int32_t const &>
  68823. # endif
  68824. reflect() const VULKAN_HPP_NOEXCEPT
  68825. {
  68826. return std::tie( sType, pNext, srcSubpass, dstSubpass, srcStageMask, dstStageMask, srcAccessMask, dstAccessMask, dependencyFlags, viewOffset );
  68827. }
  68828. #endif
  68829. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  68830. auto operator<=>( SubpassDependency2 const & ) const = default;
  68831. #else
  68832. bool operator==( SubpassDependency2 const & rhs ) const VULKAN_HPP_NOEXCEPT
  68833. {
  68834. # if defined( VULKAN_HPP_USE_REFLECT )
  68835. return this->reflect() == rhs.reflect();
  68836. # else
  68837. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( srcSubpass == rhs.srcSubpass ) && ( dstSubpass == rhs.dstSubpass ) &&
  68838. ( srcStageMask == rhs.srcStageMask ) && ( dstStageMask == rhs.dstStageMask ) && ( srcAccessMask == rhs.srcAccessMask ) &&
  68839. ( dstAccessMask == rhs.dstAccessMask ) && ( dependencyFlags == rhs.dependencyFlags ) && ( viewOffset == rhs.viewOffset );
  68840. # endif
  68841. }
  68842. bool operator!=( SubpassDependency2 const & rhs ) const VULKAN_HPP_NOEXCEPT
  68843. {
  68844. return !operator==( rhs );
  68845. }
  68846. #endif
  68847. public:
  68848. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSubpassDependency2;
  68849. const void * pNext = {};
  68850. uint32_t srcSubpass = {};
  68851. uint32_t dstSubpass = {};
  68852. VULKAN_HPP_NAMESPACE::PipelineStageFlags srcStageMask = {};
  68853. VULKAN_HPP_NAMESPACE::PipelineStageFlags dstStageMask = {};
  68854. VULKAN_HPP_NAMESPACE::AccessFlags srcAccessMask = {};
  68855. VULKAN_HPP_NAMESPACE::AccessFlags dstAccessMask = {};
  68856. VULKAN_HPP_NAMESPACE::DependencyFlags dependencyFlags = {};
  68857. int32_t viewOffset = {};
  68858. };
  68859. template <>
  68860. struct CppType<StructureType, StructureType::eSubpassDependency2>
  68861. {
  68862. using Type = SubpassDependency2;
  68863. };
  68864. using SubpassDependency2KHR = SubpassDependency2;
  68865. struct RenderPassCreateInfo2
  68866. {
  68867. using NativeType = VkRenderPassCreateInfo2;
  68868. static const bool allowDuplicate = false;
  68869. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eRenderPassCreateInfo2;
  68870. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  68871. VULKAN_HPP_CONSTEXPR RenderPassCreateInfo2( VULKAN_HPP_NAMESPACE::RenderPassCreateFlags flags_ = {},
  68872. uint32_t attachmentCount_ = {},
  68873. const VULKAN_HPP_NAMESPACE::AttachmentDescription2 * pAttachments_ = {},
  68874. uint32_t subpassCount_ = {},
  68875. const VULKAN_HPP_NAMESPACE::SubpassDescription2 * pSubpasses_ = {},
  68876. uint32_t dependencyCount_ = {},
  68877. const VULKAN_HPP_NAMESPACE::SubpassDependency2 * pDependencies_ = {},
  68878. uint32_t correlatedViewMaskCount_ = {},
  68879. const uint32_t * pCorrelatedViewMasks_ = {},
  68880. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  68881. : pNext( pNext_ )
  68882. , flags( flags_ )
  68883. , attachmentCount( attachmentCount_ )
  68884. , pAttachments( pAttachments_ )
  68885. , subpassCount( subpassCount_ )
  68886. , pSubpasses( pSubpasses_ )
  68887. , dependencyCount( dependencyCount_ )
  68888. , pDependencies( pDependencies_ )
  68889. , correlatedViewMaskCount( correlatedViewMaskCount_ )
  68890. , pCorrelatedViewMasks( pCorrelatedViewMasks_ )
  68891. {
  68892. }
  68893. VULKAN_HPP_CONSTEXPR RenderPassCreateInfo2( RenderPassCreateInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  68894. RenderPassCreateInfo2( VkRenderPassCreateInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT
  68895. : RenderPassCreateInfo2( *reinterpret_cast<RenderPassCreateInfo2 const *>( &rhs ) )
  68896. {
  68897. }
  68898. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  68899. RenderPassCreateInfo2( VULKAN_HPP_NAMESPACE::RenderPassCreateFlags flags_,
  68900. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::AttachmentDescription2> const & attachments_,
  68901. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::SubpassDescription2> const & subpasses_ = {},
  68902. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::SubpassDependency2> const & dependencies_ = {},
  68903. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint32_t> const & correlatedViewMasks_ = {},
  68904. const void * pNext_ = nullptr )
  68905. : pNext( pNext_ )
  68906. , flags( flags_ )
  68907. , attachmentCount( static_cast<uint32_t>( attachments_.size() ) )
  68908. , pAttachments( attachments_.data() )
  68909. , subpassCount( static_cast<uint32_t>( subpasses_.size() ) )
  68910. , pSubpasses( subpasses_.data() )
  68911. , dependencyCount( static_cast<uint32_t>( dependencies_.size() ) )
  68912. , pDependencies( dependencies_.data() )
  68913. , correlatedViewMaskCount( static_cast<uint32_t>( correlatedViewMasks_.size() ) )
  68914. , pCorrelatedViewMasks( correlatedViewMasks_.data() )
  68915. {
  68916. }
  68917. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  68918. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  68919. RenderPassCreateInfo2 & operator=( RenderPassCreateInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  68920. RenderPassCreateInfo2 & operator=( VkRenderPassCreateInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT
  68921. {
  68922. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::RenderPassCreateInfo2 const *>( &rhs );
  68923. return *this;
  68924. }
  68925. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  68926. VULKAN_HPP_CONSTEXPR_14 RenderPassCreateInfo2 & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  68927. {
  68928. pNext = pNext_;
  68929. return *this;
  68930. }
  68931. VULKAN_HPP_CONSTEXPR_14 RenderPassCreateInfo2 & setFlags( VULKAN_HPP_NAMESPACE::RenderPassCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT
  68932. {
  68933. flags = flags_;
  68934. return *this;
  68935. }
  68936. VULKAN_HPP_CONSTEXPR_14 RenderPassCreateInfo2 & setAttachmentCount( uint32_t attachmentCount_ ) VULKAN_HPP_NOEXCEPT
  68937. {
  68938. attachmentCount = attachmentCount_;
  68939. return *this;
  68940. }
  68941. VULKAN_HPP_CONSTEXPR_14 RenderPassCreateInfo2 & setPAttachments( const VULKAN_HPP_NAMESPACE::AttachmentDescription2 * pAttachments_ ) VULKAN_HPP_NOEXCEPT
  68942. {
  68943. pAttachments = pAttachments_;
  68944. return *this;
  68945. }
  68946. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  68947. RenderPassCreateInfo2 & setAttachments(
  68948. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::AttachmentDescription2> const & attachments_ ) VULKAN_HPP_NOEXCEPT
  68949. {
  68950. attachmentCount = static_cast<uint32_t>( attachments_.size() );
  68951. pAttachments = attachments_.data();
  68952. return *this;
  68953. }
  68954. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  68955. VULKAN_HPP_CONSTEXPR_14 RenderPassCreateInfo2 & setSubpassCount( uint32_t subpassCount_ ) VULKAN_HPP_NOEXCEPT
  68956. {
  68957. subpassCount = subpassCount_;
  68958. return *this;
  68959. }
  68960. VULKAN_HPP_CONSTEXPR_14 RenderPassCreateInfo2 & setPSubpasses( const VULKAN_HPP_NAMESPACE::SubpassDescription2 * pSubpasses_ ) VULKAN_HPP_NOEXCEPT
  68961. {
  68962. pSubpasses = pSubpasses_;
  68963. return *this;
  68964. }
  68965. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  68966. RenderPassCreateInfo2 &
  68967. setSubpasses( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::SubpassDescription2> const & subpasses_ ) VULKAN_HPP_NOEXCEPT
  68968. {
  68969. subpassCount = static_cast<uint32_t>( subpasses_.size() );
  68970. pSubpasses = subpasses_.data();
  68971. return *this;
  68972. }
  68973. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  68974. VULKAN_HPP_CONSTEXPR_14 RenderPassCreateInfo2 & setDependencyCount( uint32_t dependencyCount_ ) VULKAN_HPP_NOEXCEPT
  68975. {
  68976. dependencyCount = dependencyCount_;
  68977. return *this;
  68978. }
  68979. VULKAN_HPP_CONSTEXPR_14 RenderPassCreateInfo2 & setPDependencies( const VULKAN_HPP_NAMESPACE::SubpassDependency2 * pDependencies_ ) VULKAN_HPP_NOEXCEPT
  68980. {
  68981. pDependencies = pDependencies_;
  68982. return *this;
  68983. }
  68984. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  68985. RenderPassCreateInfo2 &
  68986. setDependencies( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::SubpassDependency2> const & dependencies_ ) VULKAN_HPP_NOEXCEPT
  68987. {
  68988. dependencyCount = static_cast<uint32_t>( dependencies_.size() );
  68989. pDependencies = dependencies_.data();
  68990. return *this;
  68991. }
  68992. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  68993. VULKAN_HPP_CONSTEXPR_14 RenderPassCreateInfo2 & setCorrelatedViewMaskCount( uint32_t correlatedViewMaskCount_ ) VULKAN_HPP_NOEXCEPT
  68994. {
  68995. correlatedViewMaskCount = correlatedViewMaskCount_;
  68996. return *this;
  68997. }
  68998. VULKAN_HPP_CONSTEXPR_14 RenderPassCreateInfo2 & setPCorrelatedViewMasks( const uint32_t * pCorrelatedViewMasks_ ) VULKAN_HPP_NOEXCEPT
  68999. {
  69000. pCorrelatedViewMasks = pCorrelatedViewMasks_;
  69001. return *this;
  69002. }
  69003. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  69004. RenderPassCreateInfo2 &
  69005. setCorrelatedViewMasks( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint32_t> const & correlatedViewMasks_ ) VULKAN_HPP_NOEXCEPT
  69006. {
  69007. correlatedViewMaskCount = static_cast<uint32_t>( correlatedViewMasks_.size() );
  69008. pCorrelatedViewMasks = correlatedViewMasks_.data();
  69009. return *this;
  69010. }
  69011. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  69012. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  69013. operator VkRenderPassCreateInfo2 const &() const VULKAN_HPP_NOEXCEPT
  69014. {
  69015. return *reinterpret_cast<const VkRenderPassCreateInfo2 *>( this );
  69016. }
  69017. operator VkRenderPassCreateInfo2 &() VULKAN_HPP_NOEXCEPT
  69018. {
  69019. return *reinterpret_cast<VkRenderPassCreateInfo2 *>( this );
  69020. }
  69021. #if defined( VULKAN_HPP_USE_REFLECT )
  69022. # if 14 <= VULKAN_HPP_CPP_VERSION
  69023. auto
  69024. # else
  69025. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  69026. const void * const &,
  69027. VULKAN_HPP_NAMESPACE::RenderPassCreateFlags const &,
  69028. uint32_t const &,
  69029. const VULKAN_HPP_NAMESPACE::AttachmentDescription2 * const &,
  69030. uint32_t const &,
  69031. const VULKAN_HPP_NAMESPACE::SubpassDescription2 * const &,
  69032. uint32_t const &,
  69033. const VULKAN_HPP_NAMESPACE::SubpassDependency2 * const &,
  69034. uint32_t const &,
  69035. const uint32_t * const &>
  69036. # endif
  69037. reflect() const VULKAN_HPP_NOEXCEPT
  69038. {
  69039. return std::tie( sType,
  69040. pNext,
  69041. flags,
  69042. attachmentCount,
  69043. pAttachments,
  69044. subpassCount,
  69045. pSubpasses,
  69046. dependencyCount,
  69047. pDependencies,
  69048. correlatedViewMaskCount,
  69049. pCorrelatedViewMasks );
  69050. }
  69051. #endif
  69052. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  69053. auto operator<=>( RenderPassCreateInfo2 const & ) const = default;
  69054. #else
  69055. bool operator==( RenderPassCreateInfo2 const & rhs ) const VULKAN_HPP_NOEXCEPT
  69056. {
  69057. # if defined( VULKAN_HPP_USE_REFLECT )
  69058. return this->reflect() == rhs.reflect();
  69059. # else
  69060. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( flags == rhs.flags ) && ( attachmentCount == rhs.attachmentCount ) &&
  69061. ( pAttachments == rhs.pAttachments ) && ( subpassCount == rhs.subpassCount ) && ( pSubpasses == rhs.pSubpasses ) &&
  69062. ( dependencyCount == rhs.dependencyCount ) && ( pDependencies == rhs.pDependencies ) &&
  69063. ( correlatedViewMaskCount == rhs.correlatedViewMaskCount ) && ( pCorrelatedViewMasks == rhs.pCorrelatedViewMasks );
  69064. # endif
  69065. }
  69066. bool operator!=( RenderPassCreateInfo2 const & rhs ) const VULKAN_HPP_NOEXCEPT
  69067. {
  69068. return !operator==( rhs );
  69069. }
  69070. #endif
  69071. public:
  69072. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eRenderPassCreateInfo2;
  69073. const void * pNext = {};
  69074. VULKAN_HPP_NAMESPACE::RenderPassCreateFlags flags = {};
  69075. uint32_t attachmentCount = {};
  69076. const VULKAN_HPP_NAMESPACE::AttachmentDescription2 * pAttachments = {};
  69077. uint32_t subpassCount = {};
  69078. const VULKAN_HPP_NAMESPACE::SubpassDescription2 * pSubpasses = {};
  69079. uint32_t dependencyCount = {};
  69080. const VULKAN_HPP_NAMESPACE::SubpassDependency2 * pDependencies = {};
  69081. uint32_t correlatedViewMaskCount = {};
  69082. const uint32_t * pCorrelatedViewMasks = {};
  69083. };
  69084. template <>
  69085. struct CppType<StructureType, StructureType::eRenderPassCreateInfo2>
  69086. {
  69087. using Type = RenderPassCreateInfo2;
  69088. };
  69089. using RenderPassCreateInfo2KHR = RenderPassCreateInfo2;
  69090. struct RenderPassCreationControlEXT
  69091. {
  69092. using NativeType = VkRenderPassCreationControlEXT;
  69093. static const bool allowDuplicate = false;
  69094. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eRenderPassCreationControlEXT;
  69095. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  69096. VULKAN_HPP_CONSTEXPR RenderPassCreationControlEXT( VULKAN_HPP_NAMESPACE::Bool32 disallowMerging_ = {}, const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  69097. : pNext( pNext_ )
  69098. , disallowMerging( disallowMerging_ )
  69099. {
  69100. }
  69101. VULKAN_HPP_CONSTEXPR RenderPassCreationControlEXT( RenderPassCreationControlEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  69102. RenderPassCreationControlEXT( VkRenderPassCreationControlEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  69103. : RenderPassCreationControlEXT( *reinterpret_cast<RenderPassCreationControlEXT const *>( &rhs ) )
  69104. {
  69105. }
  69106. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  69107. RenderPassCreationControlEXT & operator=( RenderPassCreationControlEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  69108. RenderPassCreationControlEXT & operator=( VkRenderPassCreationControlEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  69109. {
  69110. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::RenderPassCreationControlEXT const *>( &rhs );
  69111. return *this;
  69112. }
  69113. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  69114. VULKAN_HPP_CONSTEXPR_14 RenderPassCreationControlEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  69115. {
  69116. pNext = pNext_;
  69117. return *this;
  69118. }
  69119. VULKAN_HPP_CONSTEXPR_14 RenderPassCreationControlEXT & setDisallowMerging( VULKAN_HPP_NAMESPACE::Bool32 disallowMerging_ ) VULKAN_HPP_NOEXCEPT
  69120. {
  69121. disallowMerging = disallowMerging_;
  69122. return *this;
  69123. }
  69124. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  69125. operator VkRenderPassCreationControlEXT const &() const VULKAN_HPP_NOEXCEPT
  69126. {
  69127. return *reinterpret_cast<const VkRenderPassCreationControlEXT *>( this );
  69128. }
  69129. operator VkRenderPassCreationControlEXT &() VULKAN_HPP_NOEXCEPT
  69130. {
  69131. return *reinterpret_cast<VkRenderPassCreationControlEXT *>( this );
  69132. }
  69133. #if defined( VULKAN_HPP_USE_REFLECT )
  69134. # if 14 <= VULKAN_HPP_CPP_VERSION
  69135. auto
  69136. # else
  69137. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
  69138. # endif
  69139. reflect() const VULKAN_HPP_NOEXCEPT
  69140. {
  69141. return std::tie( sType, pNext, disallowMerging );
  69142. }
  69143. #endif
  69144. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  69145. auto operator<=>( RenderPassCreationControlEXT const & ) const = default;
  69146. #else
  69147. bool operator==( RenderPassCreationControlEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  69148. {
  69149. # if defined( VULKAN_HPP_USE_REFLECT )
  69150. return this->reflect() == rhs.reflect();
  69151. # else
  69152. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( disallowMerging == rhs.disallowMerging );
  69153. # endif
  69154. }
  69155. bool operator!=( RenderPassCreationControlEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  69156. {
  69157. return !operator==( rhs );
  69158. }
  69159. #endif
  69160. public:
  69161. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eRenderPassCreationControlEXT;
  69162. const void * pNext = {};
  69163. VULKAN_HPP_NAMESPACE::Bool32 disallowMerging = {};
  69164. };
  69165. template <>
  69166. struct CppType<StructureType, StructureType::eRenderPassCreationControlEXT>
  69167. {
  69168. using Type = RenderPassCreationControlEXT;
  69169. };
  69170. struct RenderPassCreationFeedbackInfoEXT
  69171. {
  69172. using NativeType = VkRenderPassCreationFeedbackInfoEXT;
  69173. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  69174. VULKAN_HPP_CONSTEXPR RenderPassCreationFeedbackInfoEXT( uint32_t postMergeSubpassCount_ = {} ) VULKAN_HPP_NOEXCEPT
  69175. : postMergeSubpassCount( postMergeSubpassCount_ )
  69176. {
  69177. }
  69178. VULKAN_HPP_CONSTEXPR RenderPassCreationFeedbackInfoEXT( RenderPassCreationFeedbackInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  69179. RenderPassCreationFeedbackInfoEXT( VkRenderPassCreationFeedbackInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  69180. : RenderPassCreationFeedbackInfoEXT( *reinterpret_cast<RenderPassCreationFeedbackInfoEXT const *>( &rhs ) )
  69181. {
  69182. }
  69183. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  69184. RenderPassCreationFeedbackInfoEXT & operator=( RenderPassCreationFeedbackInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  69185. RenderPassCreationFeedbackInfoEXT & operator=( VkRenderPassCreationFeedbackInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  69186. {
  69187. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::RenderPassCreationFeedbackInfoEXT const *>( &rhs );
  69188. return *this;
  69189. }
  69190. operator VkRenderPassCreationFeedbackInfoEXT const &() const VULKAN_HPP_NOEXCEPT
  69191. {
  69192. return *reinterpret_cast<const VkRenderPassCreationFeedbackInfoEXT *>( this );
  69193. }
  69194. operator VkRenderPassCreationFeedbackInfoEXT &() VULKAN_HPP_NOEXCEPT
  69195. {
  69196. return *reinterpret_cast<VkRenderPassCreationFeedbackInfoEXT *>( this );
  69197. }
  69198. #if defined( VULKAN_HPP_USE_REFLECT )
  69199. # if 14 <= VULKAN_HPP_CPP_VERSION
  69200. auto
  69201. # else
  69202. std::tuple<uint32_t const &>
  69203. # endif
  69204. reflect() const VULKAN_HPP_NOEXCEPT
  69205. {
  69206. return std::tie( postMergeSubpassCount );
  69207. }
  69208. #endif
  69209. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  69210. auto operator<=>( RenderPassCreationFeedbackInfoEXT const & ) const = default;
  69211. #else
  69212. bool operator==( RenderPassCreationFeedbackInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  69213. {
  69214. # if defined( VULKAN_HPP_USE_REFLECT )
  69215. return this->reflect() == rhs.reflect();
  69216. # else
  69217. return ( postMergeSubpassCount == rhs.postMergeSubpassCount );
  69218. # endif
  69219. }
  69220. bool operator!=( RenderPassCreationFeedbackInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  69221. {
  69222. return !operator==( rhs );
  69223. }
  69224. #endif
  69225. public:
  69226. uint32_t postMergeSubpassCount = {};
  69227. };
  69228. struct RenderPassCreationFeedbackCreateInfoEXT
  69229. {
  69230. using NativeType = VkRenderPassCreationFeedbackCreateInfoEXT;
  69231. static const bool allowDuplicate = false;
  69232. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eRenderPassCreationFeedbackCreateInfoEXT;
  69233. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  69234. VULKAN_HPP_CONSTEXPR RenderPassCreationFeedbackCreateInfoEXT( VULKAN_HPP_NAMESPACE::RenderPassCreationFeedbackInfoEXT * pRenderPassFeedback_ = {},
  69235. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  69236. : pNext( pNext_ )
  69237. , pRenderPassFeedback( pRenderPassFeedback_ )
  69238. {
  69239. }
  69240. VULKAN_HPP_CONSTEXPR RenderPassCreationFeedbackCreateInfoEXT( RenderPassCreationFeedbackCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  69241. RenderPassCreationFeedbackCreateInfoEXT( VkRenderPassCreationFeedbackCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  69242. : RenderPassCreationFeedbackCreateInfoEXT( *reinterpret_cast<RenderPassCreationFeedbackCreateInfoEXT const *>( &rhs ) )
  69243. {
  69244. }
  69245. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  69246. RenderPassCreationFeedbackCreateInfoEXT & operator=( RenderPassCreationFeedbackCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  69247. RenderPassCreationFeedbackCreateInfoEXT & operator=( VkRenderPassCreationFeedbackCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  69248. {
  69249. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::RenderPassCreationFeedbackCreateInfoEXT const *>( &rhs );
  69250. return *this;
  69251. }
  69252. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  69253. VULKAN_HPP_CONSTEXPR_14 RenderPassCreationFeedbackCreateInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  69254. {
  69255. pNext = pNext_;
  69256. return *this;
  69257. }
  69258. VULKAN_HPP_CONSTEXPR_14 RenderPassCreationFeedbackCreateInfoEXT &
  69259. setPRenderPassFeedback( VULKAN_HPP_NAMESPACE::RenderPassCreationFeedbackInfoEXT * pRenderPassFeedback_ ) VULKAN_HPP_NOEXCEPT
  69260. {
  69261. pRenderPassFeedback = pRenderPassFeedback_;
  69262. return *this;
  69263. }
  69264. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  69265. operator VkRenderPassCreationFeedbackCreateInfoEXT const &() const VULKAN_HPP_NOEXCEPT
  69266. {
  69267. return *reinterpret_cast<const VkRenderPassCreationFeedbackCreateInfoEXT *>( this );
  69268. }
  69269. operator VkRenderPassCreationFeedbackCreateInfoEXT &() VULKAN_HPP_NOEXCEPT
  69270. {
  69271. return *reinterpret_cast<VkRenderPassCreationFeedbackCreateInfoEXT *>( this );
  69272. }
  69273. #if defined( VULKAN_HPP_USE_REFLECT )
  69274. # if 14 <= VULKAN_HPP_CPP_VERSION
  69275. auto
  69276. # else
  69277. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::RenderPassCreationFeedbackInfoEXT * const &>
  69278. # endif
  69279. reflect() const VULKAN_HPP_NOEXCEPT
  69280. {
  69281. return std::tie( sType, pNext, pRenderPassFeedback );
  69282. }
  69283. #endif
  69284. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  69285. auto operator<=>( RenderPassCreationFeedbackCreateInfoEXT const & ) const = default;
  69286. #else
  69287. bool operator==( RenderPassCreationFeedbackCreateInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  69288. {
  69289. # if defined( VULKAN_HPP_USE_REFLECT )
  69290. return this->reflect() == rhs.reflect();
  69291. # else
  69292. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( pRenderPassFeedback == rhs.pRenderPassFeedback );
  69293. # endif
  69294. }
  69295. bool operator!=( RenderPassCreationFeedbackCreateInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  69296. {
  69297. return !operator==( rhs );
  69298. }
  69299. #endif
  69300. public:
  69301. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eRenderPassCreationFeedbackCreateInfoEXT;
  69302. const void * pNext = {};
  69303. VULKAN_HPP_NAMESPACE::RenderPassCreationFeedbackInfoEXT * pRenderPassFeedback = {};
  69304. };
  69305. template <>
  69306. struct CppType<StructureType, StructureType::eRenderPassCreationFeedbackCreateInfoEXT>
  69307. {
  69308. using Type = RenderPassCreationFeedbackCreateInfoEXT;
  69309. };
  69310. struct RenderPassFragmentDensityMapCreateInfoEXT
  69311. {
  69312. using NativeType = VkRenderPassFragmentDensityMapCreateInfoEXT;
  69313. static const bool allowDuplicate = false;
  69314. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eRenderPassFragmentDensityMapCreateInfoEXT;
  69315. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  69316. VULKAN_HPP_CONSTEXPR RenderPassFragmentDensityMapCreateInfoEXT( VULKAN_HPP_NAMESPACE::AttachmentReference fragmentDensityMapAttachment_ = {},
  69317. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  69318. : pNext( pNext_ )
  69319. , fragmentDensityMapAttachment( fragmentDensityMapAttachment_ )
  69320. {
  69321. }
  69322. VULKAN_HPP_CONSTEXPR RenderPassFragmentDensityMapCreateInfoEXT( RenderPassFragmentDensityMapCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  69323. RenderPassFragmentDensityMapCreateInfoEXT( VkRenderPassFragmentDensityMapCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  69324. : RenderPassFragmentDensityMapCreateInfoEXT( *reinterpret_cast<RenderPassFragmentDensityMapCreateInfoEXT const *>( &rhs ) )
  69325. {
  69326. }
  69327. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  69328. RenderPassFragmentDensityMapCreateInfoEXT & operator=( RenderPassFragmentDensityMapCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  69329. RenderPassFragmentDensityMapCreateInfoEXT & operator=( VkRenderPassFragmentDensityMapCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  69330. {
  69331. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::RenderPassFragmentDensityMapCreateInfoEXT const *>( &rhs );
  69332. return *this;
  69333. }
  69334. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  69335. VULKAN_HPP_CONSTEXPR_14 RenderPassFragmentDensityMapCreateInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  69336. {
  69337. pNext = pNext_;
  69338. return *this;
  69339. }
  69340. VULKAN_HPP_CONSTEXPR_14 RenderPassFragmentDensityMapCreateInfoEXT &
  69341. setFragmentDensityMapAttachment( VULKAN_HPP_NAMESPACE::AttachmentReference const & fragmentDensityMapAttachment_ ) VULKAN_HPP_NOEXCEPT
  69342. {
  69343. fragmentDensityMapAttachment = fragmentDensityMapAttachment_;
  69344. return *this;
  69345. }
  69346. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  69347. operator VkRenderPassFragmentDensityMapCreateInfoEXT const &() const VULKAN_HPP_NOEXCEPT
  69348. {
  69349. return *reinterpret_cast<const VkRenderPassFragmentDensityMapCreateInfoEXT *>( this );
  69350. }
  69351. operator VkRenderPassFragmentDensityMapCreateInfoEXT &() VULKAN_HPP_NOEXCEPT
  69352. {
  69353. return *reinterpret_cast<VkRenderPassFragmentDensityMapCreateInfoEXT *>( this );
  69354. }
  69355. #if defined( VULKAN_HPP_USE_REFLECT )
  69356. # if 14 <= VULKAN_HPP_CPP_VERSION
  69357. auto
  69358. # else
  69359. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::AttachmentReference const &>
  69360. # endif
  69361. reflect() const VULKAN_HPP_NOEXCEPT
  69362. {
  69363. return std::tie( sType, pNext, fragmentDensityMapAttachment );
  69364. }
  69365. #endif
  69366. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  69367. auto operator<=>( RenderPassFragmentDensityMapCreateInfoEXT const & ) const = default;
  69368. #else
  69369. bool operator==( RenderPassFragmentDensityMapCreateInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  69370. {
  69371. # if defined( VULKAN_HPP_USE_REFLECT )
  69372. return this->reflect() == rhs.reflect();
  69373. # else
  69374. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( fragmentDensityMapAttachment == rhs.fragmentDensityMapAttachment );
  69375. # endif
  69376. }
  69377. bool operator!=( RenderPassFragmentDensityMapCreateInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  69378. {
  69379. return !operator==( rhs );
  69380. }
  69381. #endif
  69382. public:
  69383. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eRenderPassFragmentDensityMapCreateInfoEXT;
  69384. const void * pNext = {};
  69385. VULKAN_HPP_NAMESPACE::AttachmentReference fragmentDensityMapAttachment = {};
  69386. };
  69387. template <>
  69388. struct CppType<StructureType, StructureType::eRenderPassFragmentDensityMapCreateInfoEXT>
  69389. {
  69390. using Type = RenderPassFragmentDensityMapCreateInfoEXT;
  69391. };
  69392. struct RenderPassInputAttachmentAspectCreateInfo
  69393. {
  69394. using NativeType = VkRenderPassInputAttachmentAspectCreateInfo;
  69395. static const bool allowDuplicate = false;
  69396. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eRenderPassInputAttachmentAspectCreateInfo;
  69397. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  69398. VULKAN_HPP_CONSTEXPR RenderPassInputAttachmentAspectCreateInfo( uint32_t aspectReferenceCount_ = {},
  69399. const VULKAN_HPP_NAMESPACE::InputAttachmentAspectReference * pAspectReferences_ = {},
  69400. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  69401. : pNext( pNext_ )
  69402. , aspectReferenceCount( aspectReferenceCount_ )
  69403. , pAspectReferences( pAspectReferences_ )
  69404. {
  69405. }
  69406. VULKAN_HPP_CONSTEXPR RenderPassInputAttachmentAspectCreateInfo( RenderPassInputAttachmentAspectCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  69407. RenderPassInputAttachmentAspectCreateInfo( VkRenderPassInputAttachmentAspectCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
  69408. : RenderPassInputAttachmentAspectCreateInfo( *reinterpret_cast<RenderPassInputAttachmentAspectCreateInfo const *>( &rhs ) )
  69409. {
  69410. }
  69411. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  69412. RenderPassInputAttachmentAspectCreateInfo(
  69413. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::InputAttachmentAspectReference> const & aspectReferences_,
  69414. const void * pNext_ = nullptr )
  69415. : pNext( pNext_ ), aspectReferenceCount( static_cast<uint32_t>( aspectReferences_.size() ) ), pAspectReferences( aspectReferences_.data() )
  69416. {
  69417. }
  69418. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  69419. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  69420. RenderPassInputAttachmentAspectCreateInfo & operator=( RenderPassInputAttachmentAspectCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  69421. RenderPassInputAttachmentAspectCreateInfo & operator=( VkRenderPassInputAttachmentAspectCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
  69422. {
  69423. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::RenderPassInputAttachmentAspectCreateInfo const *>( &rhs );
  69424. return *this;
  69425. }
  69426. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  69427. VULKAN_HPP_CONSTEXPR_14 RenderPassInputAttachmentAspectCreateInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  69428. {
  69429. pNext = pNext_;
  69430. return *this;
  69431. }
  69432. VULKAN_HPP_CONSTEXPR_14 RenderPassInputAttachmentAspectCreateInfo & setAspectReferenceCount( uint32_t aspectReferenceCount_ ) VULKAN_HPP_NOEXCEPT
  69433. {
  69434. aspectReferenceCount = aspectReferenceCount_;
  69435. return *this;
  69436. }
  69437. VULKAN_HPP_CONSTEXPR_14 RenderPassInputAttachmentAspectCreateInfo &
  69438. setPAspectReferences( const VULKAN_HPP_NAMESPACE::InputAttachmentAspectReference * pAspectReferences_ ) VULKAN_HPP_NOEXCEPT
  69439. {
  69440. pAspectReferences = pAspectReferences_;
  69441. return *this;
  69442. }
  69443. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  69444. RenderPassInputAttachmentAspectCreateInfo & setAspectReferences(
  69445. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::InputAttachmentAspectReference> const & aspectReferences_ ) VULKAN_HPP_NOEXCEPT
  69446. {
  69447. aspectReferenceCount = static_cast<uint32_t>( aspectReferences_.size() );
  69448. pAspectReferences = aspectReferences_.data();
  69449. return *this;
  69450. }
  69451. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  69452. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  69453. operator VkRenderPassInputAttachmentAspectCreateInfo const &() const VULKAN_HPP_NOEXCEPT
  69454. {
  69455. return *reinterpret_cast<const VkRenderPassInputAttachmentAspectCreateInfo *>( this );
  69456. }
  69457. operator VkRenderPassInputAttachmentAspectCreateInfo &() VULKAN_HPP_NOEXCEPT
  69458. {
  69459. return *reinterpret_cast<VkRenderPassInputAttachmentAspectCreateInfo *>( this );
  69460. }
  69461. #if defined( VULKAN_HPP_USE_REFLECT )
  69462. # if 14 <= VULKAN_HPP_CPP_VERSION
  69463. auto
  69464. # else
  69465. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  69466. const void * const &,
  69467. uint32_t const &,
  69468. const VULKAN_HPP_NAMESPACE::InputAttachmentAspectReference * const &>
  69469. # endif
  69470. reflect() const VULKAN_HPP_NOEXCEPT
  69471. {
  69472. return std::tie( sType, pNext, aspectReferenceCount, pAspectReferences );
  69473. }
  69474. #endif
  69475. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  69476. auto operator<=>( RenderPassInputAttachmentAspectCreateInfo const & ) const = default;
  69477. #else
  69478. bool operator==( RenderPassInputAttachmentAspectCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  69479. {
  69480. # if defined( VULKAN_HPP_USE_REFLECT )
  69481. return this->reflect() == rhs.reflect();
  69482. # else
  69483. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( aspectReferenceCount == rhs.aspectReferenceCount ) &&
  69484. ( pAspectReferences == rhs.pAspectReferences );
  69485. # endif
  69486. }
  69487. bool operator!=( RenderPassInputAttachmentAspectCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  69488. {
  69489. return !operator==( rhs );
  69490. }
  69491. #endif
  69492. public:
  69493. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eRenderPassInputAttachmentAspectCreateInfo;
  69494. const void * pNext = {};
  69495. uint32_t aspectReferenceCount = {};
  69496. const VULKAN_HPP_NAMESPACE::InputAttachmentAspectReference * pAspectReferences = {};
  69497. };
  69498. template <>
  69499. struct CppType<StructureType, StructureType::eRenderPassInputAttachmentAspectCreateInfo>
  69500. {
  69501. using Type = RenderPassInputAttachmentAspectCreateInfo;
  69502. };
  69503. using RenderPassInputAttachmentAspectCreateInfoKHR = RenderPassInputAttachmentAspectCreateInfo;
  69504. struct RenderPassMultiviewCreateInfo
  69505. {
  69506. using NativeType = VkRenderPassMultiviewCreateInfo;
  69507. static const bool allowDuplicate = false;
  69508. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eRenderPassMultiviewCreateInfo;
  69509. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  69510. VULKAN_HPP_CONSTEXPR RenderPassMultiviewCreateInfo( uint32_t subpassCount_ = {},
  69511. const uint32_t * pViewMasks_ = {},
  69512. uint32_t dependencyCount_ = {},
  69513. const int32_t * pViewOffsets_ = {},
  69514. uint32_t correlationMaskCount_ = {},
  69515. const uint32_t * pCorrelationMasks_ = {},
  69516. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  69517. : pNext( pNext_ )
  69518. , subpassCount( subpassCount_ )
  69519. , pViewMasks( pViewMasks_ )
  69520. , dependencyCount( dependencyCount_ )
  69521. , pViewOffsets( pViewOffsets_ )
  69522. , correlationMaskCount( correlationMaskCount_ )
  69523. , pCorrelationMasks( pCorrelationMasks_ )
  69524. {
  69525. }
  69526. VULKAN_HPP_CONSTEXPR RenderPassMultiviewCreateInfo( RenderPassMultiviewCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  69527. RenderPassMultiviewCreateInfo( VkRenderPassMultiviewCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
  69528. : RenderPassMultiviewCreateInfo( *reinterpret_cast<RenderPassMultiviewCreateInfo const *>( &rhs ) )
  69529. {
  69530. }
  69531. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  69532. RenderPassMultiviewCreateInfo( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint32_t> const & viewMasks_,
  69533. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const int32_t> const & viewOffsets_ = {},
  69534. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint32_t> const & correlationMasks_ = {},
  69535. const void * pNext_ = nullptr )
  69536. : pNext( pNext_ )
  69537. , subpassCount( static_cast<uint32_t>( viewMasks_.size() ) )
  69538. , pViewMasks( viewMasks_.data() )
  69539. , dependencyCount( static_cast<uint32_t>( viewOffsets_.size() ) )
  69540. , pViewOffsets( viewOffsets_.data() )
  69541. , correlationMaskCount( static_cast<uint32_t>( correlationMasks_.size() ) )
  69542. , pCorrelationMasks( correlationMasks_.data() )
  69543. {
  69544. }
  69545. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  69546. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  69547. RenderPassMultiviewCreateInfo & operator=( RenderPassMultiviewCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  69548. RenderPassMultiviewCreateInfo & operator=( VkRenderPassMultiviewCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
  69549. {
  69550. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::RenderPassMultiviewCreateInfo const *>( &rhs );
  69551. return *this;
  69552. }
  69553. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  69554. VULKAN_HPP_CONSTEXPR_14 RenderPassMultiviewCreateInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  69555. {
  69556. pNext = pNext_;
  69557. return *this;
  69558. }
  69559. VULKAN_HPP_CONSTEXPR_14 RenderPassMultiviewCreateInfo & setSubpassCount( uint32_t subpassCount_ ) VULKAN_HPP_NOEXCEPT
  69560. {
  69561. subpassCount = subpassCount_;
  69562. return *this;
  69563. }
  69564. VULKAN_HPP_CONSTEXPR_14 RenderPassMultiviewCreateInfo & setPViewMasks( const uint32_t * pViewMasks_ ) VULKAN_HPP_NOEXCEPT
  69565. {
  69566. pViewMasks = pViewMasks_;
  69567. return *this;
  69568. }
  69569. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  69570. RenderPassMultiviewCreateInfo & setViewMasks( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint32_t> const & viewMasks_ ) VULKAN_HPP_NOEXCEPT
  69571. {
  69572. subpassCount = static_cast<uint32_t>( viewMasks_.size() );
  69573. pViewMasks = viewMasks_.data();
  69574. return *this;
  69575. }
  69576. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  69577. VULKAN_HPP_CONSTEXPR_14 RenderPassMultiviewCreateInfo & setDependencyCount( uint32_t dependencyCount_ ) VULKAN_HPP_NOEXCEPT
  69578. {
  69579. dependencyCount = dependencyCount_;
  69580. return *this;
  69581. }
  69582. VULKAN_HPP_CONSTEXPR_14 RenderPassMultiviewCreateInfo & setPViewOffsets( const int32_t * pViewOffsets_ ) VULKAN_HPP_NOEXCEPT
  69583. {
  69584. pViewOffsets = pViewOffsets_;
  69585. return *this;
  69586. }
  69587. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  69588. RenderPassMultiviewCreateInfo & setViewOffsets( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const int32_t> const & viewOffsets_ ) VULKAN_HPP_NOEXCEPT
  69589. {
  69590. dependencyCount = static_cast<uint32_t>( viewOffsets_.size() );
  69591. pViewOffsets = viewOffsets_.data();
  69592. return *this;
  69593. }
  69594. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  69595. VULKAN_HPP_CONSTEXPR_14 RenderPassMultiviewCreateInfo & setCorrelationMaskCount( uint32_t correlationMaskCount_ ) VULKAN_HPP_NOEXCEPT
  69596. {
  69597. correlationMaskCount = correlationMaskCount_;
  69598. return *this;
  69599. }
  69600. VULKAN_HPP_CONSTEXPR_14 RenderPassMultiviewCreateInfo & setPCorrelationMasks( const uint32_t * pCorrelationMasks_ ) VULKAN_HPP_NOEXCEPT
  69601. {
  69602. pCorrelationMasks = pCorrelationMasks_;
  69603. return *this;
  69604. }
  69605. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  69606. RenderPassMultiviewCreateInfo &
  69607. setCorrelationMasks( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint32_t> const & correlationMasks_ ) VULKAN_HPP_NOEXCEPT
  69608. {
  69609. correlationMaskCount = static_cast<uint32_t>( correlationMasks_.size() );
  69610. pCorrelationMasks = correlationMasks_.data();
  69611. return *this;
  69612. }
  69613. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  69614. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  69615. operator VkRenderPassMultiviewCreateInfo const &() const VULKAN_HPP_NOEXCEPT
  69616. {
  69617. return *reinterpret_cast<const VkRenderPassMultiviewCreateInfo *>( this );
  69618. }
  69619. operator VkRenderPassMultiviewCreateInfo &() VULKAN_HPP_NOEXCEPT
  69620. {
  69621. return *reinterpret_cast<VkRenderPassMultiviewCreateInfo *>( this );
  69622. }
  69623. #if defined( VULKAN_HPP_USE_REFLECT )
  69624. # if 14 <= VULKAN_HPP_CPP_VERSION
  69625. auto
  69626. # else
  69627. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  69628. const void * const &,
  69629. uint32_t const &,
  69630. const uint32_t * const &,
  69631. uint32_t const &,
  69632. const int32_t * const &,
  69633. uint32_t const &,
  69634. const uint32_t * const &>
  69635. # endif
  69636. reflect() const VULKAN_HPP_NOEXCEPT
  69637. {
  69638. return std::tie( sType, pNext, subpassCount, pViewMasks, dependencyCount, pViewOffsets, correlationMaskCount, pCorrelationMasks );
  69639. }
  69640. #endif
  69641. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  69642. auto operator<=>( RenderPassMultiviewCreateInfo const & ) const = default;
  69643. #else
  69644. bool operator==( RenderPassMultiviewCreateInfo 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 ) && ( subpassCount == rhs.subpassCount ) && ( pViewMasks == rhs.pViewMasks ) &&
  69650. ( dependencyCount == rhs.dependencyCount ) && ( pViewOffsets == rhs.pViewOffsets ) && ( correlationMaskCount == rhs.correlationMaskCount ) &&
  69651. ( pCorrelationMasks == rhs.pCorrelationMasks );
  69652. # endif
  69653. }
  69654. bool operator!=( RenderPassMultiviewCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  69655. {
  69656. return !operator==( rhs );
  69657. }
  69658. #endif
  69659. public:
  69660. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eRenderPassMultiviewCreateInfo;
  69661. const void * pNext = {};
  69662. uint32_t subpassCount = {};
  69663. const uint32_t * pViewMasks = {};
  69664. uint32_t dependencyCount = {};
  69665. const int32_t * pViewOffsets = {};
  69666. uint32_t correlationMaskCount = {};
  69667. const uint32_t * pCorrelationMasks = {};
  69668. };
  69669. template <>
  69670. struct CppType<StructureType, StructureType::eRenderPassMultiviewCreateInfo>
  69671. {
  69672. using Type = RenderPassMultiviewCreateInfo;
  69673. };
  69674. using RenderPassMultiviewCreateInfoKHR = RenderPassMultiviewCreateInfo;
  69675. struct SubpassSampleLocationsEXT
  69676. {
  69677. using NativeType = VkSubpassSampleLocationsEXT;
  69678. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  69679. VULKAN_HPP_CONSTEXPR SubpassSampleLocationsEXT( uint32_t subpassIndex_ = {},
  69680. VULKAN_HPP_NAMESPACE::SampleLocationsInfoEXT sampleLocationsInfo_ = {} ) VULKAN_HPP_NOEXCEPT
  69681. : subpassIndex( subpassIndex_ )
  69682. , sampleLocationsInfo( sampleLocationsInfo_ )
  69683. {
  69684. }
  69685. VULKAN_HPP_CONSTEXPR SubpassSampleLocationsEXT( SubpassSampleLocationsEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  69686. SubpassSampleLocationsEXT( VkSubpassSampleLocationsEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  69687. : SubpassSampleLocationsEXT( *reinterpret_cast<SubpassSampleLocationsEXT const *>( &rhs ) )
  69688. {
  69689. }
  69690. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  69691. SubpassSampleLocationsEXT & operator=( SubpassSampleLocationsEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  69692. SubpassSampleLocationsEXT & operator=( VkSubpassSampleLocationsEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  69693. {
  69694. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SubpassSampleLocationsEXT const *>( &rhs );
  69695. return *this;
  69696. }
  69697. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  69698. VULKAN_HPP_CONSTEXPR_14 SubpassSampleLocationsEXT & setSubpassIndex( uint32_t subpassIndex_ ) VULKAN_HPP_NOEXCEPT
  69699. {
  69700. subpassIndex = subpassIndex_;
  69701. return *this;
  69702. }
  69703. VULKAN_HPP_CONSTEXPR_14 SubpassSampleLocationsEXT &
  69704. setSampleLocationsInfo( VULKAN_HPP_NAMESPACE::SampleLocationsInfoEXT const & sampleLocationsInfo_ ) VULKAN_HPP_NOEXCEPT
  69705. {
  69706. sampleLocationsInfo = sampleLocationsInfo_;
  69707. return *this;
  69708. }
  69709. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  69710. operator VkSubpassSampleLocationsEXT const &() const VULKAN_HPP_NOEXCEPT
  69711. {
  69712. return *reinterpret_cast<const VkSubpassSampleLocationsEXT *>( this );
  69713. }
  69714. operator VkSubpassSampleLocationsEXT &() VULKAN_HPP_NOEXCEPT
  69715. {
  69716. return *reinterpret_cast<VkSubpassSampleLocationsEXT *>( this );
  69717. }
  69718. #if defined( VULKAN_HPP_USE_REFLECT )
  69719. # if 14 <= VULKAN_HPP_CPP_VERSION
  69720. auto
  69721. # else
  69722. std::tuple<uint32_t const &, VULKAN_HPP_NAMESPACE::SampleLocationsInfoEXT const &>
  69723. # endif
  69724. reflect() const VULKAN_HPP_NOEXCEPT
  69725. {
  69726. return std::tie( subpassIndex, sampleLocationsInfo );
  69727. }
  69728. #endif
  69729. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  69730. auto operator<=>( SubpassSampleLocationsEXT const & ) const = default;
  69731. #else
  69732. bool operator==( SubpassSampleLocationsEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  69733. {
  69734. # if defined( VULKAN_HPP_USE_REFLECT )
  69735. return this->reflect() == rhs.reflect();
  69736. # else
  69737. return ( subpassIndex == rhs.subpassIndex ) && ( sampleLocationsInfo == rhs.sampleLocationsInfo );
  69738. # endif
  69739. }
  69740. bool operator!=( SubpassSampleLocationsEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  69741. {
  69742. return !operator==( rhs );
  69743. }
  69744. #endif
  69745. public:
  69746. uint32_t subpassIndex = {};
  69747. VULKAN_HPP_NAMESPACE::SampleLocationsInfoEXT sampleLocationsInfo = {};
  69748. };
  69749. struct RenderPassSampleLocationsBeginInfoEXT
  69750. {
  69751. using NativeType = VkRenderPassSampleLocationsBeginInfoEXT;
  69752. static const bool allowDuplicate = false;
  69753. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eRenderPassSampleLocationsBeginInfoEXT;
  69754. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  69755. VULKAN_HPP_CONSTEXPR
  69756. RenderPassSampleLocationsBeginInfoEXT( uint32_t attachmentInitialSampleLocationsCount_ = {},
  69757. const VULKAN_HPP_NAMESPACE::AttachmentSampleLocationsEXT * pAttachmentInitialSampleLocations_ = {},
  69758. uint32_t postSubpassSampleLocationsCount_ = {},
  69759. const VULKAN_HPP_NAMESPACE::SubpassSampleLocationsEXT * pPostSubpassSampleLocations_ = {},
  69760. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  69761. : pNext( pNext_ )
  69762. , attachmentInitialSampleLocationsCount( attachmentInitialSampleLocationsCount_ )
  69763. , pAttachmentInitialSampleLocations( pAttachmentInitialSampleLocations_ )
  69764. , postSubpassSampleLocationsCount( postSubpassSampleLocationsCount_ )
  69765. , pPostSubpassSampleLocations( pPostSubpassSampleLocations_ )
  69766. {
  69767. }
  69768. VULKAN_HPP_CONSTEXPR RenderPassSampleLocationsBeginInfoEXT( RenderPassSampleLocationsBeginInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  69769. RenderPassSampleLocationsBeginInfoEXT( VkRenderPassSampleLocationsBeginInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  69770. : RenderPassSampleLocationsBeginInfoEXT( *reinterpret_cast<RenderPassSampleLocationsBeginInfoEXT const *>( &rhs ) )
  69771. {
  69772. }
  69773. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  69774. RenderPassSampleLocationsBeginInfoEXT(
  69775. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::AttachmentSampleLocationsEXT> const & attachmentInitialSampleLocations_,
  69776. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::SubpassSampleLocationsEXT> const & postSubpassSampleLocations_ = {},
  69777. const void * pNext_ = nullptr )
  69778. : pNext( pNext_ )
  69779. , attachmentInitialSampleLocationsCount( static_cast<uint32_t>( attachmentInitialSampleLocations_.size() ) )
  69780. , pAttachmentInitialSampleLocations( attachmentInitialSampleLocations_.data() )
  69781. , postSubpassSampleLocationsCount( static_cast<uint32_t>( postSubpassSampleLocations_.size() ) )
  69782. , pPostSubpassSampleLocations( postSubpassSampleLocations_.data() )
  69783. {
  69784. }
  69785. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  69786. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  69787. RenderPassSampleLocationsBeginInfoEXT & operator=( RenderPassSampleLocationsBeginInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  69788. RenderPassSampleLocationsBeginInfoEXT & operator=( VkRenderPassSampleLocationsBeginInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  69789. {
  69790. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::RenderPassSampleLocationsBeginInfoEXT const *>( &rhs );
  69791. return *this;
  69792. }
  69793. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  69794. VULKAN_HPP_CONSTEXPR_14 RenderPassSampleLocationsBeginInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  69795. {
  69796. pNext = pNext_;
  69797. return *this;
  69798. }
  69799. VULKAN_HPP_CONSTEXPR_14 RenderPassSampleLocationsBeginInfoEXT &
  69800. setAttachmentInitialSampleLocationsCount( uint32_t attachmentInitialSampleLocationsCount_ ) VULKAN_HPP_NOEXCEPT
  69801. {
  69802. attachmentInitialSampleLocationsCount = attachmentInitialSampleLocationsCount_;
  69803. return *this;
  69804. }
  69805. VULKAN_HPP_CONSTEXPR_14 RenderPassSampleLocationsBeginInfoEXT &
  69806. setPAttachmentInitialSampleLocations( const VULKAN_HPP_NAMESPACE::AttachmentSampleLocationsEXT * pAttachmentInitialSampleLocations_ ) VULKAN_HPP_NOEXCEPT
  69807. {
  69808. pAttachmentInitialSampleLocations = pAttachmentInitialSampleLocations_;
  69809. return *this;
  69810. }
  69811. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  69812. RenderPassSampleLocationsBeginInfoEXT & setAttachmentInitialSampleLocations(
  69813. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::AttachmentSampleLocationsEXT> const & attachmentInitialSampleLocations_ )
  69814. VULKAN_HPP_NOEXCEPT
  69815. {
  69816. attachmentInitialSampleLocationsCount = static_cast<uint32_t>( attachmentInitialSampleLocations_.size() );
  69817. pAttachmentInitialSampleLocations = attachmentInitialSampleLocations_.data();
  69818. return *this;
  69819. }
  69820. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  69821. VULKAN_HPP_CONSTEXPR_14 RenderPassSampleLocationsBeginInfoEXT &
  69822. setPostSubpassSampleLocationsCount( uint32_t postSubpassSampleLocationsCount_ ) VULKAN_HPP_NOEXCEPT
  69823. {
  69824. postSubpassSampleLocationsCount = postSubpassSampleLocationsCount_;
  69825. return *this;
  69826. }
  69827. VULKAN_HPP_CONSTEXPR_14 RenderPassSampleLocationsBeginInfoEXT &
  69828. setPPostSubpassSampleLocations( const VULKAN_HPP_NAMESPACE::SubpassSampleLocationsEXT * pPostSubpassSampleLocations_ ) VULKAN_HPP_NOEXCEPT
  69829. {
  69830. pPostSubpassSampleLocations = pPostSubpassSampleLocations_;
  69831. return *this;
  69832. }
  69833. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  69834. RenderPassSampleLocationsBeginInfoEXT & setPostSubpassSampleLocations(
  69835. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::SubpassSampleLocationsEXT> const & postSubpassSampleLocations_ )
  69836. VULKAN_HPP_NOEXCEPT
  69837. {
  69838. postSubpassSampleLocationsCount = static_cast<uint32_t>( postSubpassSampleLocations_.size() );
  69839. pPostSubpassSampleLocations = postSubpassSampleLocations_.data();
  69840. return *this;
  69841. }
  69842. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  69843. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  69844. operator VkRenderPassSampleLocationsBeginInfoEXT const &() const VULKAN_HPP_NOEXCEPT
  69845. {
  69846. return *reinterpret_cast<const VkRenderPassSampleLocationsBeginInfoEXT *>( this );
  69847. }
  69848. operator VkRenderPassSampleLocationsBeginInfoEXT &() VULKAN_HPP_NOEXCEPT
  69849. {
  69850. return *reinterpret_cast<VkRenderPassSampleLocationsBeginInfoEXT *>( this );
  69851. }
  69852. #if defined( VULKAN_HPP_USE_REFLECT )
  69853. # if 14 <= VULKAN_HPP_CPP_VERSION
  69854. auto
  69855. # else
  69856. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  69857. const void * const &,
  69858. uint32_t const &,
  69859. const VULKAN_HPP_NAMESPACE::AttachmentSampleLocationsEXT * const &,
  69860. uint32_t const &,
  69861. const VULKAN_HPP_NAMESPACE::SubpassSampleLocationsEXT * const &>
  69862. # endif
  69863. reflect() const VULKAN_HPP_NOEXCEPT
  69864. {
  69865. return std::tie(
  69866. sType, pNext, attachmentInitialSampleLocationsCount, pAttachmentInitialSampleLocations, postSubpassSampleLocationsCount, pPostSubpassSampleLocations );
  69867. }
  69868. #endif
  69869. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  69870. auto operator<=>( RenderPassSampleLocationsBeginInfoEXT const & ) const = default;
  69871. #else
  69872. bool operator==( RenderPassSampleLocationsBeginInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  69873. {
  69874. # if defined( VULKAN_HPP_USE_REFLECT )
  69875. return this->reflect() == rhs.reflect();
  69876. # else
  69877. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( attachmentInitialSampleLocationsCount == rhs.attachmentInitialSampleLocationsCount ) &&
  69878. ( pAttachmentInitialSampleLocations == rhs.pAttachmentInitialSampleLocations ) &&
  69879. ( postSubpassSampleLocationsCount == rhs.postSubpassSampleLocationsCount ) && ( pPostSubpassSampleLocations == rhs.pPostSubpassSampleLocations );
  69880. # endif
  69881. }
  69882. bool operator!=( RenderPassSampleLocationsBeginInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  69883. {
  69884. return !operator==( rhs );
  69885. }
  69886. #endif
  69887. public:
  69888. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eRenderPassSampleLocationsBeginInfoEXT;
  69889. const void * pNext = {};
  69890. uint32_t attachmentInitialSampleLocationsCount = {};
  69891. const VULKAN_HPP_NAMESPACE::AttachmentSampleLocationsEXT * pAttachmentInitialSampleLocations = {};
  69892. uint32_t postSubpassSampleLocationsCount = {};
  69893. const VULKAN_HPP_NAMESPACE::SubpassSampleLocationsEXT * pPostSubpassSampleLocations = {};
  69894. };
  69895. template <>
  69896. struct CppType<StructureType, StructureType::eRenderPassSampleLocationsBeginInfoEXT>
  69897. {
  69898. using Type = RenderPassSampleLocationsBeginInfoEXT;
  69899. };
  69900. struct RenderPassSubpassFeedbackInfoEXT
  69901. {
  69902. using NativeType = VkRenderPassSubpassFeedbackInfoEXT;
  69903. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  69904. VULKAN_HPP_CONSTEXPR_14
  69905. RenderPassSubpassFeedbackInfoEXT( VULKAN_HPP_NAMESPACE::SubpassMergeStatusEXT subpassMergeStatus_ = VULKAN_HPP_NAMESPACE::SubpassMergeStatusEXT::eMerged,
  69906. std::array<char, VK_MAX_DESCRIPTION_SIZE> const & description_ = {},
  69907. uint32_t postMergeIndex_ = {} ) VULKAN_HPP_NOEXCEPT
  69908. : subpassMergeStatus( subpassMergeStatus_ )
  69909. , description( description_ )
  69910. , postMergeIndex( postMergeIndex_ )
  69911. {
  69912. }
  69913. VULKAN_HPP_CONSTEXPR_14 RenderPassSubpassFeedbackInfoEXT( RenderPassSubpassFeedbackInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  69914. RenderPassSubpassFeedbackInfoEXT( VkRenderPassSubpassFeedbackInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  69915. : RenderPassSubpassFeedbackInfoEXT( *reinterpret_cast<RenderPassSubpassFeedbackInfoEXT const *>( &rhs ) )
  69916. {
  69917. }
  69918. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  69919. RenderPassSubpassFeedbackInfoEXT & operator=( RenderPassSubpassFeedbackInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  69920. RenderPassSubpassFeedbackInfoEXT & operator=( VkRenderPassSubpassFeedbackInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  69921. {
  69922. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::RenderPassSubpassFeedbackInfoEXT const *>( &rhs );
  69923. return *this;
  69924. }
  69925. operator VkRenderPassSubpassFeedbackInfoEXT const &() const VULKAN_HPP_NOEXCEPT
  69926. {
  69927. return *reinterpret_cast<const VkRenderPassSubpassFeedbackInfoEXT *>( this );
  69928. }
  69929. operator VkRenderPassSubpassFeedbackInfoEXT &() VULKAN_HPP_NOEXCEPT
  69930. {
  69931. return *reinterpret_cast<VkRenderPassSubpassFeedbackInfoEXT *>( this );
  69932. }
  69933. #if defined( VULKAN_HPP_USE_REFLECT )
  69934. # if 14 <= VULKAN_HPP_CPP_VERSION
  69935. auto
  69936. # else
  69937. std::
  69938. tuple<VULKAN_HPP_NAMESPACE::SubpassMergeStatusEXT const &, VULKAN_HPP_NAMESPACE::ArrayWrapper1D<char, VK_MAX_DESCRIPTION_SIZE> const &, uint32_t const &>
  69939. # endif
  69940. reflect() const VULKAN_HPP_NOEXCEPT
  69941. {
  69942. return std::tie( subpassMergeStatus, description, postMergeIndex );
  69943. }
  69944. #endif
  69945. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  69946. auto operator<=>( RenderPassSubpassFeedbackInfoEXT const & ) const = default;
  69947. #else
  69948. bool operator==( RenderPassSubpassFeedbackInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  69949. {
  69950. # if defined( VULKAN_HPP_USE_REFLECT )
  69951. return this->reflect() == rhs.reflect();
  69952. # else
  69953. return ( subpassMergeStatus == rhs.subpassMergeStatus ) && ( description == rhs.description ) && ( postMergeIndex == rhs.postMergeIndex );
  69954. # endif
  69955. }
  69956. bool operator!=( RenderPassSubpassFeedbackInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  69957. {
  69958. return !operator==( rhs );
  69959. }
  69960. #endif
  69961. public:
  69962. VULKAN_HPP_NAMESPACE::SubpassMergeStatusEXT subpassMergeStatus = VULKAN_HPP_NAMESPACE::SubpassMergeStatusEXT::eMerged;
  69963. VULKAN_HPP_NAMESPACE::ArrayWrapper1D<char, VK_MAX_DESCRIPTION_SIZE> description = {};
  69964. uint32_t postMergeIndex = {};
  69965. };
  69966. struct RenderPassSubpassFeedbackCreateInfoEXT
  69967. {
  69968. using NativeType = VkRenderPassSubpassFeedbackCreateInfoEXT;
  69969. static const bool allowDuplicate = false;
  69970. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eRenderPassSubpassFeedbackCreateInfoEXT;
  69971. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  69972. VULKAN_HPP_CONSTEXPR_14 RenderPassSubpassFeedbackCreateInfoEXT( VULKAN_HPP_NAMESPACE::RenderPassSubpassFeedbackInfoEXT * pSubpassFeedback_ = {},
  69973. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  69974. : pNext( pNext_ )
  69975. , pSubpassFeedback( pSubpassFeedback_ )
  69976. {
  69977. }
  69978. VULKAN_HPP_CONSTEXPR_14 RenderPassSubpassFeedbackCreateInfoEXT( RenderPassSubpassFeedbackCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  69979. RenderPassSubpassFeedbackCreateInfoEXT( VkRenderPassSubpassFeedbackCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  69980. : RenderPassSubpassFeedbackCreateInfoEXT( *reinterpret_cast<RenderPassSubpassFeedbackCreateInfoEXT const *>( &rhs ) )
  69981. {
  69982. }
  69983. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  69984. RenderPassSubpassFeedbackCreateInfoEXT & operator=( RenderPassSubpassFeedbackCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  69985. RenderPassSubpassFeedbackCreateInfoEXT & operator=( VkRenderPassSubpassFeedbackCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  69986. {
  69987. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::RenderPassSubpassFeedbackCreateInfoEXT const *>( &rhs );
  69988. return *this;
  69989. }
  69990. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  69991. VULKAN_HPP_CONSTEXPR_14 RenderPassSubpassFeedbackCreateInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  69992. {
  69993. pNext = pNext_;
  69994. return *this;
  69995. }
  69996. VULKAN_HPP_CONSTEXPR_14 RenderPassSubpassFeedbackCreateInfoEXT &
  69997. setPSubpassFeedback( VULKAN_HPP_NAMESPACE::RenderPassSubpassFeedbackInfoEXT * pSubpassFeedback_ ) VULKAN_HPP_NOEXCEPT
  69998. {
  69999. pSubpassFeedback = pSubpassFeedback_;
  70000. return *this;
  70001. }
  70002. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  70003. operator VkRenderPassSubpassFeedbackCreateInfoEXT const &() const VULKAN_HPP_NOEXCEPT
  70004. {
  70005. return *reinterpret_cast<const VkRenderPassSubpassFeedbackCreateInfoEXT *>( this );
  70006. }
  70007. operator VkRenderPassSubpassFeedbackCreateInfoEXT &() VULKAN_HPP_NOEXCEPT
  70008. {
  70009. return *reinterpret_cast<VkRenderPassSubpassFeedbackCreateInfoEXT *>( this );
  70010. }
  70011. #if defined( VULKAN_HPP_USE_REFLECT )
  70012. # if 14 <= VULKAN_HPP_CPP_VERSION
  70013. auto
  70014. # else
  70015. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::RenderPassSubpassFeedbackInfoEXT * const &>
  70016. # endif
  70017. reflect() const VULKAN_HPP_NOEXCEPT
  70018. {
  70019. return std::tie( sType, pNext, pSubpassFeedback );
  70020. }
  70021. #endif
  70022. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  70023. auto operator<=>( RenderPassSubpassFeedbackCreateInfoEXT const & ) const = default;
  70024. #else
  70025. bool operator==( RenderPassSubpassFeedbackCreateInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  70026. {
  70027. # if defined( VULKAN_HPP_USE_REFLECT )
  70028. return this->reflect() == rhs.reflect();
  70029. # else
  70030. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( pSubpassFeedback == rhs.pSubpassFeedback );
  70031. # endif
  70032. }
  70033. bool operator!=( RenderPassSubpassFeedbackCreateInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  70034. {
  70035. return !operator==( rhs );
  70036. }
  70037. #endif
  70038. public:
  70039. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eRenderPassSubpassFeedbackCreateInfoEXT;
  70040. const void * pNext = {};
  70041. VULKAN_HPP_NAMESPACE::RenderPassSubpassFeedbackInfoEXT * pSubpassFeedback = {};
  70042. };
  70043. template <>
  70044. struct CppType<StructureType, StructureType::eRenderPassSubpassFeedbackCreateInfoEXT>
  70045. {
  70046. using Type = RenderPassSubpassFeedbackCreateInfoEXT;
  70047. };
  70048. struct RenderPassTransformBeginInfoQCOM
  70049. {
  70050. using NativeType = VkRenderPassTransformBeginInfoQCOM;
  70051. static const bool allowDuplicate = false;
  70052. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eRenderPassTransformBeginInfoQCOM;
  70053. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  70054. VULKAN_HPP_CONSTEXPR RenderPassTransformBeginInfoQCOM(
  70055. VULKAN_HPP_NAMESPACE::SurfaceTransformFlagBitsKHR transform_ = VULKAN_HPP_NAMESPACE::SurfaceTransformFlagBitsKHR::eIdentity,
  70056. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  70057. : pNext( pNext_ )
  70058. , transform( transform_ )
  70059. {
  70060. }
  70061. VULKAN_HPP_CONSTEXPR RenderPassTransformBeginInfoQCOM( RenderPassTransformBeginInfoQCOM const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  70062. RenderPassTransformBeginInfoQCOM( VkRenderPassTransformBeginInfoQCOM const & rhs ) VULKAN_HPP_NOEXCEPT
  70063. : RenderPassTransformBeginInfoQCOM( *reinterpret_cast<RenderPassTransformBeginInfoQCOM const *>( &rhs ) )
  70064. {
  70065. }
  70066. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  70067. RenderPassTransformBeginInfoQCOM & operator=( RenderPassTransformBeginInfoQCOM const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  70068. RenderPassTransformBeginInfoQCOM & operator=( VkRenderPassTransformBeginInfoQCOM const & rhs ) VULKAN_HPP_NOEXCEPT
  70069. {
  70070. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::RenderPassTransformBeginInfoQCOM const *>( &rhs );
  70071. return *this;
  70072. }
  70073. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  70074. VULKAN_HPP_CONSTEXPR_14 RenderPassTransformBeginInfoQCOM & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
  70075. {
  70076. pNext = pNext_;
  70077. return *this;
  70078. }
  70079. VULKAN_HPP_CONSTEXPR_14 RenderPassTransformBeginInfoQCOM & setTransform( VULKAN_HPP_NAMESPACE::SurfaceTransformFlagBitsKHR transform_ ) VULKAN_HPP_NOEXCEPT
  70080. {
  70081. transform = transform_;
  70082. return *this;
  70083. }
  70084. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  70085. operator VkRenderPassTransformBeginInfoQCOM const &() const VULKAN_HPP_NOEXCEPT
  70086. {
  70087. return *reinterpret_cast<const VkRenderPassTransformBeginInfoQCOM *>( this );
  70088. }
  70089. operator VkRenderPassTransformBeginInfoQCOM &() VULKAN_HPP_NOEXCEPT
  70090. {
  70091. return *reinterpret_cast<VkRenderPassTransformBeginInfoQCOM *>( this );
  70092. }
  70093. #if defined( VULKAN_HPP_USE_REFLECT )
  70094. # if 14 <= VULKAN_HPP_CPP_VERSION
  70095. auto
  70096. # else
  70097. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::SurfaceTransformFlagBitsKHR const &>
  70098. # endif
  70099. reflect() const VULKAN_HPP_NOEXCEPT
  70100. {
  70101. return std::tie( sType, pNext, transform );
  70102. }
  70103. #endif
  70104. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  70105. auto operator<=>( RenderPassTransformBeginInfoQCOM const & ) const = default;
  70106. #else
  70107. bool operator==( RenderPassTransformBeginInfoQCOM const & rhs ) const VULKAN_HPP_NOEXCEPT
  70108. {
  70109. # if defined( VULKAN_HPP_USE_REFLECT )
  70110. return this->reflect() == rhs.reflect();
  70111. # else
  70112. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( transform == rhs.transform );
  70113. # endif
  70114. }
  70115. bool operator!=( RenderPassTransformBeginInfoQCOM const & rhs ) const VULKAN_HPP_NOEXCEPT
  70116. {
  70117. return !operator==( rhs );
  70118. }
  70119. #endif
  70120. public:
  70121. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eRenderPassTransformBeginInfoQCOM;
  70122. void * pNext = {};
  70123. VULKAN_HPP_NAMESPACE::SurfaceTransformFlagBitsKHR transform = VULKAN_HPP_NAMESPACE::SurfaceTransformFlagBitsKHR::eIdentity;
  70124. };
  70125. template <>
  70126. struct CppType<StructureType, StructureType::eRenderPassTransformBeginInfoQCOM>
  70127. {
  70128. using Type = RenderPassTransformBeginInfoQCOM;
  70129. };
  70130. struct RenderingAttachmentInfo
  70131. {
  70132. using NativeType = VkRenderingAttachmentInfo;
  70133. static const bool allowDuplicate = false;
  70134. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eRenderingAttachmentInfo;
  70135. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  70136. VULKAN_HPP_CONSTEXPR_14 RenderingAttachmentInfo( VULKAN_HPP_NAMESPACE::ImageView imageView_ = {},
  70137. VULKAN_HPP_NAMESPACE::ImageLayout imageLayout_ = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined,
  70138. VULKAN_HPP_NAMESPACE::ResolveModeFlagBits resolveMode_ = VULKAN_HPP_NAMESPACE::ResolveModeFlagBits::eNone,
  70139. VULKAN_HPP_NAMESPACE::ImageView resolveImageView_ = {},
  70140. VULKAN_HPP_NAMESPACE::ImageLayout resolveImageLayout_ = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined,
  70141. VULKAN_HPP_NAMESPACE::AttachmentLoadOp loadOp_ = VULKAN_HPP_NAMESPACE::AttachmentLoadOp::eLoad,
  70142. VULKAN_HPP_NAMESPACE::AttachmentStoreOp storeOp_ = VULKAN_HPP_NAMESPACE::AttachmentStoreOp::eStore,
  70143. VULKAN_HPP_NAMESPACE::ClearValue clearValue_ = {},
  70144. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  70145. : pNext( pNext_ )
  70146. , imageView( imageView_ )
  70147. , imageLayout( imageLayout_ )
  70148. , resolveMode( resolveMode_ )
  70149. , resolveImageView( resolveImageView_ )
  70150. , resolveImageLayout( resolveImageLayout_ )
  70151. , loadOp( loadOp_ )
  70152. , storeOp( storeOp_ )
  70153. , clearValue( clearValue_ )
  70154. {
  70155. }
  70156. VULKAN_HPP_CONSTEXPR_14 RenderingAttachmentInfo( RenderingAttachmentInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  70157. RenderingAttachmentInfo( VkRenderingAttachmentInfo const & rhs ) VULKAN_HPP_NOEXCEPT
  70158. : RenderingAttachmentInfo( *reinterpret_cast<RenderingAttachmentInfo const *>( &rhs ) )
  70159. {
  70160. }
  70161. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  70162. RenderingAttachmentInfo & operator=( RenderingAttachmentInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  70163. RenderingAttachmentInfo & operator=( VkRenderingAttachmentInfo const & rhs ) VULKAN_HPP_NOEXCEPT
  70164. {
  70165. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::RenderingAttachmentInfo const *>( &rhs );
  70166. return *this;
  70167. }
  70168. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  70169. VULKAN_HPP_CONSTEXPR_14 RenderingAttachmentInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  70170. {
  70171. pNext = pNext_;
  70172. return *this;
  70173. }
  70174. VULKAN_HPP_CONSTEXPR_14 RenderingAttachmentInfo & setImageView( VULKAN_HPP_NAMESPACE::ImageView imageView_ ) VULKAN_HPP_NOEXCEPT
  70175. {
  70176. imageView = imageView_;
  70177. return *this;
  70178. }
  70179. VULKAN_HPP_CONSTEXPR_14 RenderingAttachmentInfo & setImageLayout( VULKAN_HPP_NAMESPACE::ImageLayout imageLayout_ ) VULKAN_HPP_NOEXCEPT
  70180. {
  70181. imageLayout = imageLayout_;
  70182. return *this;
  70183. }
  70184. VULKAN_HPP_CONSTEXPR_14 RenderingAttachmentInfo & setResolveMode( VULKAN_HPP_NAMESPACE::ResolveModeFlagBits resolveMode_ ) VULKAN_HPP_NOEXCEPT
  70185. {
  70186. resolveMode = resolveMode_;
  70187. return *this;
  70188. }
  70189. VULKAN_HPP_CONSTEXPR_14 RenderingAttachmentInfo & setResolveImageView( VULKAN_HPP_NAMESPACE::ImageView resolveImageView_ ) VULKAN_HPP_NOEXCEPT
  70190. {
  70191. resolveImageView = resolveImageView_;
  70192. return *this;
  70193. }
  70194. VULKAN_HPP_CONSTEXPR_14 RenderingAttachmentInfo & setResolveImageLayout( VULKAN_HPP_NAMESPACE::ImageLayout resolveImageLayout_ ) VULKAN_HPP_NOEXCEPT
  70195. {
  70196. resolveImageLayout = resolveImageLayout_;
  70197. return *this;
  70198. }
  70199. VULKAN_HPP_CONSTEXPR_14 RenderingAttachmentInfo & setLoadOp( VULKAN_HPP_NAMESPACE::AttachmentLoadOp loadOp_ ) VULKAN_HPP_NOEXCEPT
  70200. {
  70201. loadOp = loadOp_;
  70202. return *this;
  70203. }
  70204. VULKAN_HPP_CONSTEXPR_14 RenderingAttachmentInfo & setStoreOp( VULKAN_HPP_NAMESPACE::AttachmentStoreOp storeOp_ ) VULKAN_HPP_NOEXCEPT
  70205. {
  70206. storeOp = storeOp_;
  70207. return *this;
  70208. }
  70209. VULKAN_HPP_CONSTEXPR_14 RenderingAttachmentInfo & setClearValue( VULKAN_HPP_NAMESPACE::ClearValue const & clearValue_ ) VULKAN_HPP_NOEXCEPT
  70210. {
  70211. clearValue = clearValue_;
  70212. return *this;
  70213. }
  70214. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  70215. operator VkRenderingAttachmentInfo const &() const VULKAN_HPP_NOEXCEPT
  70216. {
  70217. return *reinterpret_cast<const VkRenderingAttachmentInfo *>( this );
  70218. }
  70219. operator VkRenderingAttachmentInfo &() VULKAN_HPP_NOEXCEPT
  70220. {
  70221. return *reinterpret_cast<VkRenderingAttachmentInfo *>( this );
  70222. }
  70223. #if defined( VULKAN_HPP_USE_REFLECT )
  70224. # if 14 <= VULKAN_HPP_CPP_VERSION
  70225. auto
  70226. # else
  70227. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  70228. const void * const &,
  70229. VULKAN_HPP_NAMESPACE::ImageView const &,
  70230. VULKAN_HPP_NAMESPACE::ImageLayout const &,
  70231. VULKAN_HPP_NAMESPACE::ResolveModeFlagBits const &,
  70232. VULKAN_HPP_NAMESPACE::ImageView const &,
  70233. VULKAN_HPP_NAMESPACE::ImageLayout const &,
  70234. VULKAN_HPP_NAMESPACE::AttachmentLoadOp const &,
  70235. VULKAN_HPP_NAMESPACE::AttachmentStoreOp const &,
  70236. VULKAN_HPP_NAMESPACE::ClearValue const &>
  70237. # endif
  70238. reflect() const VULKAN_HPP_NOEXCEPT
  70239. {
  70240. return std::tie( sType, pNext, imageView, imageLayout, resolveMode, resolveImageView, resolveImageLayout, loadOp, storeOp, clearValue );
  70241. }
  70242. #endif
  70243. public:
  70244. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eRenderingAttachmentInfo;
  70245. const void * pNext = {};
  70246. VULKAN_HPP_NAMESPACE::ImageView imageView = {};
  70247. VULKAN_HPP_NAMESPACE::ImageLayout imageLayout = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined;
  70248. VULKAN_HPP_NAMESPACE::ResolveModeFlagBits resolveMode = VULKAN_HPP_NAMESPACE::ResolveModeFlagBits::eNone;
  70249. VULKAN_HPP_NAMESPACE::ImageView resolveImageView = {};
  70250. VULKAN_HPP_NAMESPACE::ImageLayout resolveImageLayout = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined;
  70251. VULKAN_HPP_NAMESPACE::AttachmentLoadOp loadOp = VULKAN_HPP_NAMESPACE::AttachmentLoadOp::eLoad;
  70252. VULKAN_HPP_NAMESPACE::AttachmentStoreOp storeOp = VULKAN_HPP_NAMESPACE::AttachmentStoreOp::eStore;
  70253. VULKAN_HPP_NAMESPACE::ClearValue clearValue = {};
  70254. };
  70255. template <>
  70256. struct CppType<StructureType, StructureType::eRenderingAttachmentInfo>
  70257. {
  70258. using Type = RenderingAttachmentInfo;
  70259. };
  70260. using RenderingAttachmentInfoKHR = RenderingAttachmentInfo;
  70261. struct RenderingFragmentDensityMapAttachmentInfoEXT
  70262. {
  70263. using NativeType = VkRenderingFragmentDensityMapAttachmentInfoEXT;
  70264. static const bool allowDuplicate = false;
  70265. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eRenderingFragmentDensityMapAttachmentInfoEXT;
  70266. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  70267. VULKAN_HPP_CONSTEXPR
  70268. RenderingFragmentDensityMapAttachmentInfoEXT( VULKAN_HPP_NAMESPACE::ImageView imageView_ = {},
  70269. VULKAN_HPP_NAMESPACE::ImageLayout imageLayout_ = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined,
  70270. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  70271. : pNext( pNext_ )
  70272. , imageView( imageView_ )
  70273. , imageLayout( imageLayout_ )
  70274. {
  70275. }
  70276. VULKAN_HPP_CONSTEXPR RenderingFragmentDensityMapAttachmentInfoEXT( RenderingFragmentDensityMapAttachmentInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  70277. RenderingFragmentDensityMapAttachmentInfoEXT( VkRenderingFragmentDensityMapAttachmentInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  70278. : RenderingFragmentDensityMapAttachmentInfoEXT( *reinterpret_cast<RenderingFragmentDensityMapAttachmentInfoEXT const *>( &rhs ) )
  70279. {
  70280. }
  70281. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  70282. RenderingFragmentDensityMapAttachmentInfoEXT & operator=( RenderingFragmentDensityMapAttachmentInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  70283. RenderingFragmentDensityMapAttachmentInfoEXT & operator=( VkRenderingFragmentDensityMapAttachmentInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  70284. {
  70285. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::RenderingFragmentDensityMapAttachmentInfoEXT const *>( &rhs );
  70286. return *this;
  70287. }
  70288. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  70289. VULKAN_HPP_CONSTEXPR_14 RenderingFragmentDensityMapAttachmentInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  70290. {
  70291. pNext = pNext_;
  70292. return *this;
  70293. }
  70294. VULKAN_HPP_CONSTEXPR_14 RenderingFragmentDensityMapAttachmentInfoEXT & setImageView( VULKAN_HPP_NAMESPACE::ImageView imageView_ ) VULKAN_HPP_NOEXCEPT
  70295. {
  70296. imageView = imageView_;
  70297. return *this;
  70298. }
  70299. VULKAN_HPP_CONSTEXPR_14 RenderingFragmentDensityMapAttachmentInfoEXT & setImageLayout( VULKAN_HPP_NAMESPACE::ImageLayout imageLayout_ ) VULKAN_HPP_NOEXCEPT
  70300. {
  70301. imageLayout = imageLayout_;
  70302. return *this;
  70303. }
  70304. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  70305. operator VkRenderingFragmentDensityMapAttachmentInfoEXT const &() const VULKAN_HPP_NOEXCEPT
  70306. {
  70307. return *reinterpret_cast<const VkRenderingFragmentDensityMapAttachmentInfoEXT *>( this );
  70308. }
  70309. operator VkRenderingFragmentDensityMapAttachmentInfoEXT &() VULKAN_HPP_NOEXCEPT
  70310. {
  70311. return *reinterpret_cast<VkRenderingFragmentDensityMapAttachmentInfoEXT *>( this );
  70312. }
  70313. #if defined( VULKAN_HPP_USE_REFLECT )
  70314. # if 14 <= VULKAN_HPP_CPP_VERSION
  70315. auto
  70316. # else
  70317. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  70318. const void * const &,
  70319. VULKAN_HPP_NAMESPACE::ImageView const &,
  70320. VULKAN_HPP_NAMESPACE::ImageLayout const &>
  70321. # endif
  70322. reflect() const VULKAN_HPP_NOEXCEPT
  70323. {
  70324. return std::tie( sType, pNext, imageView, imageLayout );
  70325. }
  70326. #endif
  70327. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  70328. auto operator<=>( RenderingFragmentDensityMapAttachmentInfoEXT const & ) const = default;
  70329. #else
  70330. bool operator==( RenderingFragmentDensityMapAttachmentInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  70331. {
  70332. # if defined( VULKAN_HPP_USE_REFLECT )
  70333. return this->reflect() == rhs.reflect();
  70334. # else
  70335. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( imageView == rhs.imageView ) && ( imageLayout == rhs.imageLayout );
  70336. # endif
  70337. }
  70338. bool operator!=( RenderingFragmentDensityMapAttachmentInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  70339. {
  70340. return !operator==( rhs );
  70341. }
  70342. #endif
  70343. public:
  70344. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eRenderingFragmentDensityMapAttachmentInfoEXT;
  70345. const void * pNext = {};
  70346. VULKAN_HPP_NAMESPACE::ImageView imageView = {};
  70347. VULKAN_HPP_NAMESPACE::ImageLayout imageLayout = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined;
  70348. };
  70349. template <>
  70350. struct CppType<StructureType, StructureType::eRenderingFragmentDensityMapAttachmentInfoEXT>
  70351. {
  70352. using Type = RenderingFragmentDensityMapAttachmentInfoEXT;
  70353. };
  70354. struct RenderingFragmentShadingRateAttachmentInfoKHR
  70355. {
  70356. using NativeType = VkRenderingFragmentShadingRateAttachmentInfoKHR;
  70357. static const bool allowDuplicate = false;
  70358. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eRenderingFragmentShadingRateAttachmentInfoKHR;
  70359. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  70360. VULKAN_HPP_CONSTEXPR
  70361. RenderingFragmentShadingRateAttachmentInfoKHR( VULKAN_HPP_NAMESPACE::ImageView imageView_ = {},
  70362. VULKAN_HPP_NAMESPACE::ImageLayout imageLayout_ = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined,
  70363. VULKAN_HPP_NAMESPACE::Extent2D shadingRateAttachmentTexelSize_ = {},
  70364. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  70365. : pNext( pNext_ )
  70366. , imageView( imageView_ )
  70367. , imageLayout( imageLayout_ )
  70368. , shadingRateAttachmentTexelSize( shadingRateAttachmentTexelSize_ )
  70369. {
  70370. }
  70371. VULKAN_HPP_CONSTEXPR
  70372. RenderingFragmentShadingRateAttachmentInfoKHR( RenderingFragmentShadingRateAttachmentInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  70373. RenderingFragmentShadingRateAttachmentInfoKHR( VkRenderingFragmentShadingRateAttachmentInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  70374. : RenderingFragmentShadingRateAttachmentInfoKHR( *reinterpret_cast<RenderingFragmentShadingRateAttachmentInfoKHR const *>( &rhs ) )
  70375. {
  70376. }
  70377. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  70378. RenderingFragmentShadingRateAttachmentInfoKHR & operator=( RenderingFragmentShadingRateAttachmentInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  70379. RenderingFragmentShadingRateAttachmentInfoKHR & operator=( VkRenderingFragmentShadingRateAttachmentInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  70380. {
  70381. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::RenderingFragmentShadingRateAttachmentInfoKHR const *>( &rhs );
  70382. return *this;
  70383. }
  70384. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  70385. VULKAN_HPP_CONSTEXPR_14 RenderingFragmentShadingRateAttachmentInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  70386. {
  70387. pNext = pNext_;
  70388. return *this;
  70389. }
  70390. VULKAN_HPP_CONSTEXPR_14 RenderingFragmentShadingRateAttachmentInfoKHR & setImageView( VULKAN_HPP_NAMESPACE::ImageView imageView_ ) VULKAN_HPP_NOEXCEPT
  70391. {
  70392. imageView = imageView_;
  70393. return *this;
  70394. }
  70395. VULKAN_HPP_CONSTEXPR_14 RenderingFragmentShadingRateAttachmentInfoKHR & setImageLayout( VULKAN_HPP_NAMESPACE::ImageLayout imageLayout_ ) VULKAN_HPP_NOEXCEPT
  70396. {
  70397. imageLayout = imageLayout_;
  70398. return *this;
  70399. }
  70400. VULKAN_HPP_CONSTEXPR_14 RenderingFragmentShadingRateAttachmentInfoKHR &
  70401. setShadingRateAttachmentTexelSize( VULKAN_HPP_NAMESPACE::Extent2D const & shadingRateAttachmentTexelSize_ ) VULKAN_HPP_NOEXCEPT
  70402. {
  70403. shadingRateAttachmentTexelSize = shadingRateAttachmentTexelSize_;
  70404. return *this;
  70405. }
  70406. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  70407. operator VkRenderingFragmentShadingRateAttachmentInfoKHR const &() const VULKAN_HPP_NOEXCEPT
  70408. {
  70409. return *reinterpret_cast<const VkRenderingFragmentShadingRateAttachmentInfoKHR *>( this );
  70410. }
  70411. operator VkRenderingFragmentShadingRateAttachmentInfoKHR &() VULKAN_HPP_NOEXCEPT
  70412. {
  70413. return *reinterpret_cast<VkRenderingFragmentShadingRateAttachmentInfoKHR *>( this );
  70414. }
  70415. #if defined( VULKAN_HPP_USE_REFLECT )
  70416. # if 14 <= VULKAN_HPP_CPP_VERSION
  70417. auto
  70418. # else
  70419. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  70420. const void * const &,
  70421. VULKAN_HPP_NAMESPACE::ImageView const &,
  70422. VULKAN_HPP_NAMESPACE::ImageLayout const &,
  70423. VULKAN_HPP_NAMESPACE::Extent2D const &>
  70424. # endif
  70425. reflect() const VULKAN_HPP_NOEXCEPT
  70426. {
  70427. return std::tie( sType, pNext, imageView, imageLayout, shadingRateAttachmentTexelSize );
  70428. }
  70429. #endif
  70430. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  70431. auto operator<=>( RenderingFragmentShadingRateAttachmentInfoKHR const & ) const = default;
  70432. #else
  70433. bool operator==( RenderingFragmentShadingRateAttachmentInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  70434. {
  70435. # if defined( VULKAN_HPP_USE_REFLECT )
  70436. return this->reflect() == rhs.reflect();
  70437. # else
  70438. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( imageView == rhs.imageView ) && ( imageLayout == rhs.imageLayout ) &&
  70439. ( shadingRateAttachmentTexelSize == rhs.shadingRateAttachmentTexelSize );
  70440. # endif
  70441. }
  70442. bool operator!=( RenderingFragmentShadingRateAttachmentInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  70443. {
  70444. return !operator==( rhs );
  70445. }
  70446. #endif
  70447. public:
  70448. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eRenderingFragmentShadingRateAttachmentInfoKHR;
  70449. const void * pNext = {};
  70450. VULKAN_HPP_NAMESPACE::ImageView imageView = {};
  70451. VULKAN_HPP_NAMESPACE::ImageLayout imageLayout = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined;
  70452. VULKAN_HPP_NAMESPACE::Extent2D shadingRateAttachmentTexelSize = {};
  70453. };
  70454. template <>
  70455. struct CppType<StructureType, StructureType::eRenderingFragmentShadingRateAttachmentInfoKHR>
  70456. {
  70457. using Type = RenderingFragmentShadingRateAttachmentInfoKHR;
  70458. };
  70459. struct RenderingInfo
  70460. {
  70461. using NativeType = VkRenderingInfo;
  70462. static const bool allowDuplicate = false;
  70463. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eRenderingInfo;
  70464. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  70465. VULKAN_HPP_CONSTEXPR_14 RenderingInfo( VULKAN_HPP_NAMESPACE::RenderingFlags flags_ = {},
  70466. VULKAN_HPP_NAMESPACE::Rect2D renderArea_ = {},
  70467. uint32_t layerCount_ = {},
  70468. uint32_t viewMask_ = {},
  70469. uint32_t colorAttachmentCount_ = {},
  70470. const VULKAN_HPP_NAMESPACE::RenderingAttachmentInfo * pColorAttachments_ = {},
  70471. const VULKAN_HPP_NAMESPACE::RenderingAttachmentInfo * pDepthAttachment_ = {},
  70472. const VULKAN_HPP_NAMESPACE::RenderingAttachmentInfo * pStencilAttachment_ = {},
  70473. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  70474. : pNext( pNext_ )
  70475. , flags( flags_ )
  70476. , renderArea( renderArea_ )
  70477. , layerCount( layerCount_ )
  70478. , viewMask( viewMask_ )
  70479. , colorAttachmentCount( colorAttachmentCount_ )
  70480. , pColorAttachments( pColorAttachments_ )
  70481. , pDepthAttachment( pDepthAttachment_ )
  70482. , pStencilAttachment( pStencilAttachment_ )
  70483. {
  70484. }
  70485. VULKAN_HPP_CONSTEXPR_14 RenderingInfo( RenderingInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  70486. RenderingInfo( VkRenderingInfo const & rhs ) VULKAN_HPP_NOEXCEPT : RenderingInfo( *reinterpret_cast<RenderingInfo const *>( &rhs ) ) {}
  70487. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  70488. RenderingInfo( VULKAN_HPP_NAMESPACE::RenderingFlags flags_,
  70489. VULKAN_HPP_NAMESPACE::Rect2D renderArea_,
  70490. uint32_t layerCount_,
  70491. uint32_t viewMask_,
  70492. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::RenderingAttachmentInfo> const & colorAttachments_,
  70493. const VULKAN_HPP_NAMESPACE::RenderingAttachmentInfo * pDepthAttachment_ = {},
  70494. const VULKAN_HPP_NAMESPACE::RenderingAttachmentInfo * pStencilAttachment_ = {},
  70495. const void * pNext_ = nullptr )
  70496. : pNext( pNext_ )
  70497. , flags( flags_ )
  70498. , renderArea( renderArea_ )
  70499. , layerCount( layerCount_ )
  70500. , viewMask( viewMask_ )
  70501. , colorAttachmentCount( static_cast<uint32_t>( colorAttachments_.size() ) )
  70502. , pColorAttachments( colorAttachments_.data() )
  70503. , pDepthAttachment( pDepthAttachment_ )
  70504. , pStencilAttachment( pStencilAttachment_ )
  70505. {
  70506. }
  70507. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  70508. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  70509. RenderingInfo & operator=( RenderingInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  70510. RenderingInfo & operator=( VkRenderingInfo const & rhs ) VULKAN_HPP_NOEXCEPT
  70511. {
  70512. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::RenderingInfo const *>( &rhs );
  70513. return *this;
  70514. }
  70515. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  70516. VULKAN_HPP_CONSTEXPR_14 RenderingInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  70517. {
  70518. pNext = pNext_;
  70519. return *this;
  70520. }
  70521. VULKAN_HPP_CONSTEXPR_14 RenderingInfo & setFlags( VULKAN_HPP_NAMESPACE::RenderingFlags flags_ ) VULKAN_HPP_NOEXCEPT
  70522. {
  70523. flags = flags_;
  70524. return *this;
  70525. }
  70526. VULKAN_HPP_CONSTEXPR_14 RenderingInfo & setRenderArea( VULKAN_HPP_NAMESPACE::Rect2D const & renderArea_ ) VULKAN_HPP_NOEXCEPT
  70527. {
  70528. renderArea = renderArea_;
  70529. return *this;
  70530. }
  70531. VULKAN_HPP_CONSTEXPR_14 RenderingInfo & setLayerCount( uint32_t layerCount_ ) VULKAN_HPP_NOEXCEPT
  70532. {
  70533. layerCount = layerCount_;
  70534. return *this;
  70535. }
  70536. VULKAN_HPP_CONSTEXPR_14 RenderingInfo & setViewMask( uint32_t viewMask_ ) VULKAN_HPP_NOEXCEPT
  70537. {
  70538. viewMask = viewMask_;
  70539. return *this;
  70540. }
  70541. VULKAN_HPP_CONSTEXPR_14 RenderingInfo & setColorAttachmentCount( uint32_t colorAttachmentCount_ ) VULKAN_HPP_NOEXCEPT
  70542. {
  70543. colorAttachmentCount = colorAttachmentCount_;
  70544. return *this;
  70545. }
  70546. VULKAN_HPP_CONSTEXPR_14 RenderingInfo & setPColorAttachments( const VULKAN_HPP_NAMESPACE::RenderingAttachmentInfo * pColorAttachments_ ) VULKAN_HPP_NOEXCEPT
  70547. {
  70548. pColorAttachments = pColorAttachments_;
  70549. return *this;
  70550. }
  70551. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  70552. RenderingInfo & setColorAttachments(
  70553. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::RenderingAttachmentInfo> const & colorAttachments_ ) VULKAN_HPP_NOEXCEPT
  70554. {
  70555. colorAttachmentCount = static_cast<uint32_t>( colorAttachments_.size() );
  70556. pColorAttachments = colorAttachments_.data();
  70557. return *this;
  70558. }
  70559. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  70560. VULKAN_HPP_CONSTEXPR_14 RenderingInfo & setPDepthAttachment( const VULKAN_HPP_NAMESPACE::RenderingAttachmentInfo * pDepthAttachment_ ) VULKAN_HPP_NOEXCEPT
  70561. {
  70562. pDepthAttachment = pDepthAttachment_;
  70563. return *this;
  70564. }
  70565. VULKAN_HPP_CONSTEXPR_14 RenderingInfo &
  70566. setPStencilAttachment( const VULKAN_HPP_NAMESPACE::RenderingAttachmentInfo * pStencilAttachment_ ) VULKAN_HPP_NOEXCEPT
  70567. {
  70568. pStencilAttachment = pStencilAttachment_;
  70569. return *this;
  70570. }
  70571. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  70572. operator VkRenderingInfo const &() const VULKAN_HPP_NOEXCEPT
  70573. {
  70574. return *reinterpret_cast<const VkRenderingInfo *>( this );
  70575. }
  70576. operator VkRenderingInfo &() VULKAN_HPP_NOEXCEPT
  70577. {
  70578. return *reinterpret_cast<VkRenderingInfo *>( this );
  70579. }
  70580. #if defined( VULKAN_HPP_USE_REFLECT )
  70581. # if 14 <= VULKAN_HPP_CPP_VERSION
  70582. auto
  70583. # else
  70584. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  70585. const void * const &,
  70586. VULKAN_HPP_NAMESPACE::RenderingFlags const &,
  70587. VULKAN_HPP_NAMESPACE::Rect2D const &,
  70588. uint32_t const &,
  70589. uint32_t const &,
  70590. uint32_t const &,
  70591. const VULKAN_HPP_NAMESPACE::RenderingAttachmentInfo * const &,
  70592. const VULKAN_HPP_NAMESPACE::RenderingAttachmentInfo * const &,
  70593. const VULKAN_HPP_NAMESPACE::RenderingAttachmentInfo * const &>
  70594. # endif
  70595. reflect() const VULKAN_HPP_NOEXCEPT
  70596. {
  70597. return std::tie( sType, pNext, flags, renderArea, layerCount, viewMask, colorAttachmentCount, pColorAttachments, pDepthAttachment, pStencilAttachment );
  70598. }
  70599. #endif
  70600. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  70601. auto operator<=>( RenderingInfo const & ) const = default;
  70602. #else
  70603. bool operator==( RenderingInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  70604. {
  70605. # if defined( VULKAN_HPP_USE_REFLECT )
  70606. return this->reflect() == rhs.reflect();
  70607. # else
  70608. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( flags == rhs.flags ) && ( renderArea == rhs.renderArea ) &&
  70609. ( layerCount == rhs.layerCount ) && ( viewMask == rhs.viewMask ) && ( colorAttachmentCount == rhs.colorAttachmentCount ) &&
  70610. ( pColorAttachments == rhs.pColorAttachments ) && ( pDepthAttachment == rhs.pDepthAttachment ) && ( pStencilAttachment == rhs.pStencilAttachment );
  70611. # endif
  70612. }
  70613. bool operator!=( RenderingInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  70614. {
  70615. return !operator==( rhs );
  70616. }
  70617. #endif
  70618. public:
  70619. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eRenderingInfo;
  70620. const void * pNext = {};
  70621. VULKAN_HPP_NAMESPACE::RenderingFlags flags = {};
  70622. VULKAN_HPP_NAMESPACE::Rect2D renderArea = {};
  70623. uint32_t layerCount = {};
  70624. uint32_t viewMask = {};
  70625. uint32_t colorAttachmentCount = {};
  70626. const VULKAN_HPP_NAMESPACE::RenderingAttachmentInfo * pColorAttachments = {};
  70627. const VULKAN_HPP_NAMESPACE::RenderingAttachmentInfo * pDepthAttachment = {};
  70628. const VULKAN_HPP_NAMESPACE::RenderingAttachmentInfo * pStencilAttachment = {};
  70629. };
  70630. template <>
  70631. struct CppType<StructureType, StructureType::eRenderingInfo>
  70632. {
  70633. using Type = RenderingInfo;
  70634. };
  70635. using RenderingInfoKHR = RenderingInfo;
  70636. struct ResolveImageInfo2
  70637. {
  70638. using NativeType = VkResolveImageInfo2;
  70639. static const bool allowDuplicate = false;
  70640. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eResolveImageInfo2;
  70641. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  70642. VULKAN_HPP_CONSTEXPR ResolveImageInfo2( VULKAN_HPP_NAMESPACE::Image srcImage_ = {},
  70643. VULKAN_HPP_NAMESPACE::ImageLayout srcImageLayout_ = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined,
  70644. VULKAN_HPP_NAMESPACE::Image dstImage_ = {},
  70645. VULKAN_HPP_NAMESPACE::ImageLayout dstImageLayout_ = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined,
  70646. uint32_t regionCount_ = {},
  70647. const VULKAN_HPP_NAMESPACE::ImageResolve2 * pRegions_ = {},
  70648. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  70649. : pNext( pNext_ )
  70650. , srcImage( srcImage_ )
  70651. , srcImageLayout( srcImageLayout_ )
  70652. , dstImage( dstImage_ )
  70653. , dstImageLayout( dstImageLayout_ )
  70654. , regionCount( regionCount_ )
  70655. , pRegions( pRegions_ )
  70656. {
  70657. }
  70658. VULKAN_HPP_CONSTEXPR ResolveImageInfo2( ResolveImageInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  70659. ResolveImageInfo2( VkResolveImageInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT : ResolveImageInfo2( *reinterpret_cast<ResolveImageInfo2 const *>( &rhs ) ) {}
  70660. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  70661. ResolveImageInfo2( VULKAN_HPP_NAMESPACE::Image srcImage_,
  70662. VULKAN_HPP_NAMESPACE::ImageLayout srcImageLayout_,
  70663. VULKAN_HPP_NAMESPACE::Image dstImage_,
  70664. VULKAN_HPP_NAMESPACE::ImageLayout dstImageLayout_,
  70665. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::ImageResolve2> const & regions_,
  70666. const void * pNext_ = nullptr )
  70667. : pNext( pNext_ )
  70668. , srcImage( srcImage_ )
  70669. , srcImageLayout( srcImageLayout_ )
  70670. , dstImage( dstImage_ )
  70671. , dstImageLayout( dstImageLayout_ )
  70672. , regionCount( static_cast<uint32_t>( regions_.size() ) )
  70673. , pRegions( regions_.data() )
  70674. {
  70675. }
  70676. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  70677. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  70678. ResolveImageInfo2 & operator=( ResolveImageInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  70679. ResolveImageInfo2 & operator=( VkResolveImageInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT
  70680. {
  70681. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ResolveImageInfo2 const *>( &rhs );
  70682. return *this;
  70683. }
  70684. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  70685. VULKAN_HPP_CONSTEXPR_14 ResolveImageInfo2 & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  70686. {
  70687. pNext = pNext_;
  70688. return *this;
  70689. }
  70690. VULKAN_HPP_CONSTEXPR_14 ResolveImageInfo2 & setSrcImage( VULKAN_HPP_NAMESPACE::Image srcImage_ ) VULKAN_HPP_NOEXCEPT
  70691. {
  70692. srcImage = srcImage_;
  70693. return *this;
  70694. }
  70695. VULKAN_HPP_CONSTEXPR_14 ResolveImageInfo2 & setSrcImageLayout( VULKAN_HPP_NAMESPACE::ImageLayout srcImageLayout_ ) VULKAN_HPP_NOEXCEPT
  70696. {
  70697. srcImageLayout = srcImageLayout_;
  70698. return *this;
  70699. }
  70700. VULKAN_HPP_CONSTEXPR_14 ResolveImageInfo2 & setDstImage( VULKAN_HPP_NAMESPACE::Image dstImage_ ) VULKAN_HPP_NOEXCEPT
  70701. {
  70702. dstImage = dstImage_;
  70703. return *this;
  70704. }
  70705. VULKAN_HPP_CONSTEXPR_14 ResolveImageInfo2 & setDstImageLayout( VULKAN_HPP_NAMESPACE::ImageLayout dstImageLayout_ ) VULKAN_HPP_NOEXCEPT
  70706. {
  70707. dstImageLayout = dstImageLayout_;
  70708. return *this;
  70709. }
  70710. VULKAN_HPP_CONSTEXPR_14 ResolveImageInfo2 & setRegionCount( uint32_t regionCount_ ) VULKAN_HPP_NOEXCEPT
  70711. {
  70712. regionCount = regionCount_;
  70713. return *this;
  70714. }
  70715. VULKAN_HPP_CONSTEXPR_14 ResolveImageInfo2 & setPRegions( const VULKAN_HPP_NAMESPACE::ImageResolve2 * pRegions_ ) VULKAN_HPP_NOEXCEPT
  70716. {
  70717. pRegions = pRegions_;
  70718. return *this;
  70719. }
  70720. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  70721. ResolveImageInfo2 &
  70722. setRegions( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::ImageResolve2> const & regions_ ) VULKAN_HPP_NOEXCEPT
  70723. {
  70724. regionCount = static_cast<uint32_t>( regions_.size() );
  70725. pRegions = regions_.data();
  70726. return *this;
  70727. }
  70728. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  70729. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  70730. operator VkResolveImageInfo2 const &() const VULKAN_HPP_NOEXCEPT
  70731. {
  70732. return *reinterpret_cast<const VkResolveImageInfo2 *>( this );
  70733. }
  70734. operator VkResolveImageInfo2 &() VULKAN_HPP_NOEXCEPT
  70735. {
  70736. return *reinterpret_cast<VkResolveImageInfo2 *>( this );
  70737. }
  70738. #if defined( VULKAN_HPP_USE_REFLECT )
  70739. # if 14 <= VULKAN_HPP_CPP_VERSION
  70740. auto
  70741. # else
  70742. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  70743. const void * const &,
  70744. VULKAN_HPP_NAMESPACE::Image const &,
  70745. VULKAN_HPP_NAMESPACE::ImageLayout const &,
  70746. VULKAN_HPP_NAMESPACE::Image const &,
  70747. VULKAN_HPP_NAMESPACE::ImageLayout const &,
  70748. uint32_t const &,
  70749. const VULKAN_HPP_NAMESPACE::ImageResolve2 * const &>
  70750. # endif
  70751. reflect() const VULKAN_HPP_NOEXCEPT
  70752. {
  70753. return std::tie( sType, pNext, srcImage, srcImageLayout, dstImage, dstImageLayout, regionCount, pRegions );
  70754. }
  70755. #endif
  70756. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  70757. auto operator<=>( ResolveImageInfo2 const & ) const = default;
  70758. #else
  70759. bool operator==( ResolveImageInfo2 const & rhs ) const VULKAN_HPP_NOEXCEPT
  70760. {
  70761. # if defined( VULKAN_HPP_USE_REFLECT )
  70762. return this->reflect() == rhs.reflect();
  70763. # else
  70764. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( srcImage == rhs.srcImage ) && ( srcImageLayout == rhs.srcImageLayout ) &&
  70765. ( dstImage == rhs.dstImage ) && ( dstImageLayout == rhs.dstImageLayout ) && ( regionCount == rhs.regionCount ) && ( pRegions == rhs.pRegions );
  70766. # endif
  70767. }
  70768. bool operator!=( ResolveImageInfo2 const & rhs ) const VULKAN_HPP_NOEXCEPT
  70769. {
  70770. return !operator==( rhs );
  70771. }
  70772. #endif
  70773. public:
  70774. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eResolveImageInfo2;
  70775. const void * pNext = {};
  70776. VULKAN_HPP_NAMESPACE::Image srcImage = {};
  70777. VULKAN_HPP_NAMESPACE::ImageLayout srcImageLayout = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined;
  70778. VULKAN_HPP_NAMESPACE::Image dstImage = {};
  70779. VULKAN_HPP_NAMESPACE::ImageLayout dstImageLayout = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined;
  70780. uint32_t regionCount = {};
  70781. const VULKAN_HPP_NAMESPACE::ImageResolve2 * pRegions = {};
  70782. };
  70783. template <>
  70784. struct CppType<StructureType, StructureType::eResolveImageInfo2>
  70785. {
  70786. using Type = ResolveImageInfo2;
  70787. };
  70788. using ResolveImageInfo2KHR = ResolveImageInfo2;
  70789. struct SamplerBorderColorComponentMappingCreateInfoEXT
  70790. {
  70791. using NativeType = VkSamplerBorderColorComponentMappingCreateInfoEXT;
  70792. static const bool allowDuplicate = false;
  70793. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSamplerBorderColorComponentMappingCreateInfoEXT;
  70794. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  70795. VULKAN_HPP_CONSTEXPR SamplerBorderColorComponentMappingCreateInfoEXT( VULKAN_HPP_NAMESPACE::ComponentMapping components_ = {},
  70796. VULKAN_HPP_NAMESPACE::Bool32 srgb_ = {},
  70797. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  70798. : pNext( pNext_ )
  70799. , components( components_ )
  70800. , srgb( srgb_ )
  70801. {
  70802. }
  70803. VULKAN_HPP_CONSTEXPR
  70804. SamplerBorderColorComponentMappingCreateInfoEXT( SamplerBorderColorComponentMappingCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  70805. SamplerBorderColorComponentMappingCreateInfoEXT( VkSamplerBorderColorComponentMappingCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  70806. : SamplerBorderColorComponentMappingCreateInfoEXT( *reinterpret_cast<SamplerBorderColorComponentMappingCreateInfoEXT const *>( &rhs ) )
  70807. {
  70808. }
  70809. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  70810. SamplerBorderColorComponentMappingCreateInfoEXT & operator=( SamplerBorderColorComponentMappingCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  70811. SamplerBorderColorComponentMappingCreateInfoEXT & operator=( VkSamplerBorderColorComponentMappingCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  70812. {
  70813. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SamplerBorderColorComponentMappingCreateInfoEXT const *>( &rhs );
  70814. return *this;
  70815. }
  70816. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  70817. VULKAN_HPP_CONSTEXPR_14 SamplerBorderColorComponentMappingCreateInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  70818. {
  70819. pNext = pNext_;
  70820. return *this;
  70821. }
  70822. VULKAN_HPP_CONSTEXPR_14 SamplerBorderColorComponentMappingCreateInfoEXT &
  70823. setComponents( VULKAN_HPP_NAMESPACE::ComponentMapping const & components_ ) VULKAN_HPP_NOEXCEPT
  70824. {
  70825. components = components_;
  70826. return *this;
  70827. }
  70828. VULKAN_HPP_CONSTEXPR_14 SamplerBorderColorComponentMappingCreateInfoEXT & setSrgb( VULKAN_HPP_NAMESPACE::Bool32 srgb_ ) VULKAN_HPP_NOEXCEPT
  70829. {
  70830. srgb = srgb_;
  70831. return *this;
  70832. }
  70833. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  70834. operator VkSamplerBorderColorComponentMappingCreateInfoEXT const &() const VULKAN_HPP_NOEXCEPT
  70835. {
  70836. return *reinterpret_cast<const VkSamplerBorderColorComponentMappingCreateInfoEXT *>( this );
  70837. }
  70838. operator VkSamplerBorderColorComponentMappingCreateInfoEXT &() VULKAN_HPP_NOEXCEPT
  70839. {
  70840. return *reinterpret_cast<VkSamplerBorderColorComponentMappingCreateInfoEXT *>( this );
  70841. }
  70842. #if defined( VULKAN_HPP_USE_REFLECT )
  70843. # if 14 <= VULKAN_HPP_CPP_VERSION
  70844. auto
  70845. # else
  70846. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  70847. const void * const &,
  70848. VULKAN_HPP_NAMESPACE::ComponentMapping const &,
  70849. VULKAN_HPP_NAMESPACE::Bool32 const &>
  70850. # endif
  70851. reflect() const VULKAN_HPP_NOEXCEPT
  70852. {
  70853. return std::tie( sType, pNext, components, srgb );
  70854. }
  70855. #endif
  70856. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  70857. auto operator<=>( SamplerBorderColorComponentMappingCreateInfoEXT const & ) const = default;
  70858. #else
  70859. bool operator==( SamplerBorderColorComponentMappingCreateInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  70860. {
  70861. # if defined( VULKAN_HPP_USE_REFLECT )
  70862. return this->reflect() == rhs.reflect();
  70863. # else
  70864. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( components == rhs.components ) && ( srgb == rhs.srgb );
  70865. # endif
  70866. }
  70867. bool operator!=( SamplerBorderColorComponentMappingCreateInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  70868. {
  70869. return !operator==( rhs );
  70870. }
  70871. #endif
  70872. public:
  70873. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSamplerBorderColorComponentMappingCreateInfoEXT;
  70874. const void * pNext = {};
  70875. VULKAN_HPP_NAMESPACE::ComponentMapping components = {};
  70876. VULKAN_HPP_NAMESPACE::Bool32 srgb = {};
  70877. };
  70878. template <>
  70879. struct CppType<StructureType, StructureType::eSamplerBorderColorComponentMappingCreateInfoEXT>
  70880. {
  70881. using Type = SamplerBorderColorComponentMappingCreateInfoEXT;
  70882. };
  70883. struct SamplerCreateInfo
  70884. {
  70885. using NativeType = VkSamplerCreateInfo;
  70886. static const bool allowDuplicate = false;
  70887. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSamplerCreateInfo;
  70888. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  70889. VULKAN_HPP_CONSTEXPR SamplerCreateInfo( VULKAN_HPP_NAMESPACE::SamplerCreateFlags flags_ = {},
  70890. VULKAN_HPP_NAMESPACE::Filter magFilter_ = VULKAN_HPP_NAMESPACE::Filter::eNearest,
  70891. VULKAN_HPP_NAMESPACE::Filter minFilter_ = VULKAN_HPP_NAMESPACE::Filter::eNearest,
  70892. VULKAN_HPP_NAMESPACE::SamplerMipmapMode mipmapMode_ = VULKAN_HPP_NAMESPACE::SamplerMipmapMode::eNearest,
  70893. VULKAN_HPP_NAMESPACE::SamplerAddressMode addressModeU_ = VULKAN_HPP_NAMESPACE::SamplerAddressMode::eRepeat,
  70894. VULKAN_HPP_NAMESPACE::SamplerAddressMode addressModeV_ = VULKAN_HPP_NAMESPACE::SamplerAddressMode::eRepeat,
  70895. VULKAN_HPP_NAMESPACE::SamplerAddressMode addressModeW_ = VULKAN_HPP_NAMESPACE::SamplerAddressMode::eRepeat,
  70896. float mipLodBias_ = {},
  70897. VULKAN_HPP_NAMESPACE::Bool32 anisotropyEnable_ = {},
  70898. float maxAnisotropy_ = {},
  70899. VULKAN_HPP_NAMESPACE::Bool32 compareEnable_ = {},
  70900. VULKAN_HPP_NAMESPACE::CompareOp compareOp_ = VULKAN_HPP_NAMESPACE::CompareOp::eNever,
  70901. float minLod_ = {},
  70902. float maxLod_ = {},
  70903. VULKAN_HPP_NAMESPACE::BorderColor borderColor_ = VULKAN_HPP_NAMESPACE::BorderColor::eFloatTransparentBlack,
  70904. VULKAN_HPP_NAMESPACE::Bool32 unnormalizedCoordinates_ = {},
  70905. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  70906. : pNext( pNext_ )
  70907. , flags( flags_ )
  70908. , magFilter( magFilter_ )
  70909. , minFilter( minFilter_ )
  70910. , mipmapMode( mipmapMode_ )
  70911. , addressModeU( addressModeU_ )
  70912. , addressModeV( addressModeV_ )
  70913. , addressModeW( addressModeW_ )
  70914. , mipLodBias( mipLodBias_ )
  70915. , anisotropyEnable( anisotropyEnable_ )
  70916. , maxAnisotropy( maxAnisotropy_ )
  70917. , compareEnable( compareEnable_ )
  70918. , compareOp( compareOp_ )
  70919. , minLod( minLod_ )
  70920. , maxLod( maxLod_ )
  70921. , borderColor( borderColor_ )
  70922. , unnormalizedCoordinates( unnormalizedCoordinates_ )
  70923. {
  70924. }
  70925. VULKAN_HPP_CONSTEXPR SamplerCreateInfo( SamplerCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  70926. SamplerCreateInfo( VkSamplerCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT : SamplerCreateInfo( *reinterpret_cast<SamplerCreateInfo const *>( &rhs ) ) {}
  70927. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  70928. SamplerCreateInfo & operator=( SamplerCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  70929. SamplerCreateInfo & operator=( VkSamplerCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
  70930. {
  70931. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SamplerCreateInfo const *>( &rhs );
  70932. return *this;
  70933. }
  70934. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  70935. VULKAN_HPP_CONSTEXPR_14 SamplerCreateInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  70936. {
  70937. pNext = pNext_;
  70938. return *this;
  70939. }
  70940. VULKAN_HPP_CONSTEXPR_14 SamplerCreateInfo & setFlags( VULKAN_HPP_NAMESPACE::SamplerCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT
  70941. {
  70942. flags = flags_;
  70943. return *this;
  70944. }
  70945. VULKAN_HPP_CONSTEXPR_14 SamplerCreateInfo & setMagFilter( VULKAN_HPP_NAMESPACE::Filter magFilter_ ) VULKAN_HPP_NOEXCEPT
  70946. {
  70947. magFilter = magFilter_;
  70948. return *this;
  70949. }
  70950. VULKAN_HPP_CONSTEXPR_14 SamplerCreateInfo & setMinFilter( VULKAN_HPP_NAMESPACE::Filter minFilter_ ) VULKAN_HPP_NOEXCEPT
  70951. {
  70952. minFilter = minFilter_;
  70953. return *this;
  70954. }
  70955. VULKAN_HPP_CONSTEXPR_14 SamplerCreateInfo & setMipmapMode( VULKAN_HPP_NAMESPACE::SamplerMipmapMode mipmapMode_ ) VULKAN_HPP_NOEXCEPT
  70956. {
  70957. mipmapMode = mipmapMode_;
  70958. return *this;
  70959. }
  70960. VULKAN_HPP_CONSTEXPR_14 SamplerCreateInfo & setAddressModeU( VULKAN_HPP_NAMESPACE::SamplerAddressMode addressModeU_ ) VULKAN_HPP_NOEXCEPT
  70961. {
  70962. addressModeU = addressModeU_;
  70963. return *this;
  70964. }
  70965. VULKAN_HPP_CONSTEXPR_14 SamplerCreateInfo & setAddressModeV( VULKAN_HPP_NAMESPACE::SamplerAddressMode addressModeV_ ) VULKAN_HPP_NOEXCEPT
  70966. {
  70967. addressModeV = addressModeV_;
  70968. return *this;
  70969. }
  70970. VULKAN_HPP_CONSTEXPR_14 SamplerCreateInfo & setAddressModeW( VULKAN_HPP_NAMESPACE::SamplerAddressMode addressModeW_ ) VULKAN_HPP_NOEXCEPT
  70971. {
  70972. addressModeW = addressModeW_;
  70973. return *this;
  70974. }
  70975. VULKAN_HPP_CONSTEXPR_14 SamplerCreateInfo & setMipLodBias( float mipLodBias_ ) VULKAN_HPP_NOEXCEPT
  70976. {
  70977. mipLodBias = mipLodBias_;
  70978. return *this;
  70979. }
  70980. VULKAN_HPP_CONSTEXPR_14 SamplerCreateInfo & setAnisotropyEnable( VULKAN_HPP_NAMESPACE::Bool32 anisotropyEnable_ ) VULKAN_HPP_NOEXCEPT
  70981. {
  70982. anisotropyEnable = anisotropyEnable_;
  70983. return *this;
  70984. }
  70985. VULKAN_HPP_CONSTEXPR_14 SamplerCreateInfo & setMaxAnisotropy( float maxAnisotropy_ ) VULKAN_HPP_NOEXCEPT
  70986. {
  70987. maxAnisotropy = maxAnisotropy_;
  70988. return *this;
  70989. }
  70990. VULKAN_HPP_CONSTEXPR_14 SamplerCreateInfo & setCompareEnable( VULKAN_HPP_NAMESPACE::Bool32 compareEnable_ ) VULKAN_HPP_NOEXCEPT
  70991. {
  70992. compareEnable = compareEnable_;
  70993. return *this;
  70994. }
  70995. VULKAN_HPP_CONSTEXPR_14 SamplerCreateInfo & setCompareOp( VULKAN_HPP_NAMESPACE::CompareOp compareOp_ ) VULKAN_HPP_NOEXCEPT
  70996. {
  70997. compareOp = compareOp_;
  70998. return *this;
  70999. }
  71000. VULKAN_HPP_CONSTEXPR_14 SamplerCreateInfo & setMinLod( float minLod_ ) VULKAN_HPP_NOEXCEPT
  71001. {
  71002. minLod = minLod_;
  71003. return *this;
  71004. }
  71005. VULKAN_HPP_CONSTEXPR_14 SamplerCreateInfo & setMaxLod( float maxLod_ ) VULKAN_HPP_NOEXCEPT
  71006. {
  71007. maxLod = maxLod_;
  71008. return *this;
  71009. }
  71010. VULKAN_HPP_CONSTEXPR_14 SamplerCreateInfo & setBorderColor( VULKAN_HPP_NAMESPACE::BorderColor borderColor_ ) VULKAN_HPP_NOEXCEPT
  71011. {
  71012. borderColor = borderColor_;
  71013. return *this;
  71014. }
  71015. VULKAN_HPP_CONSTEXPR_14 SamplerCreateInfo & setUnnormalizedCoordinates( VULKAN_HPP_NAMESPACE::Bool32 unnormalizedCoordinates_ ) VULKAN_HPP_NOEXCEPT
  71016. {
  71017. unnormalizedCoordinates = unnormalizedCoordinates_;
  71018. return *this;
  71019. }
  71020. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  71021. operator VkSamplerCreateInfo const &() const VULKAN_HPP_NOEXCEPT
  71022. {
  71023. return *reinterpret_cast<const VkSamplerCreateInfo *>( this );
  71024. }
  71025. operator VkSamplerCreateInfo &() VULKAN_HPP_NOEXCEPT
  71026. {
  71027. return *reinterpret_cast<VkSamplerCreateInfo *>( this );
  71028. }
  71029. #if defined( VULKAN_HPP_USE_REFLECT )
  71030. # if 14 <= VULKAN_HPP_CPP_VERSION
  71031. auto
  71032. # else
  71033. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  71034. const void * const &,
  71035. VULKAN_HPP_NAMESPACE::SamplerCreateFlags const &,
  71036. VULKAN_HPP_NAMESPACE::Filter const &,
  71037. VULKAN_HPP_NAMESPACE::Filter const &,
  71038. VULKAN_HPP_NAMESPACE::SamplerMipmapMode const &,
  71039. VULKAN_HPP_NAMESPACE::SamplerAddressMode const &,
  71040. VULKAN_HPP_NAMESPACE::SamplerAddressMode const &,
  71041. VULKAN_HPP_NAMESPACE::SamplerAddressMode const &,
  71042. float const &,
  71043. VULKAN_HPP_NAMESPACE::Bool32 const &,
  71044. float const &,
  71045. VULKAN_HPP_NAMESPACE::Bool32 const &,
  71046. VULKAN_HPP_NAMESPACE::CompareOp const &,
  71047. float const &,
  71048. float const &,
  71049. VULKAN_HPP_NAMESPACE::BorderColor const &,
  71050. VULKAN_HPP_NAMESPACE::Bool32 const &>
  71051. # endif
  71052. reflect() const VULKAN_HPP_NOEXCEPT
  71053. {
  71054. return std::tie( sType,
  71055. pNext,
  71056. flags,
  71057. magFilter,
  71058. minFilter,
  71059. mipmapMode,
  71060. addressModeU,
  71061. addressModeV,
  71062. addressModeW,
  71063. mipLodBias,
  71064. anisotropyEnable,
  71065. maxAnisotropy,
  71066. compareEnable,
  71067. compareOp,
  71068. minLod,
  71069. maxLod,
  71070. borderColor,
  71071. unnormalizedCoordinates );
  71072. }
  71073. #endif
  71074. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  71075. auto operator<=>( SamplerCreateInfo const & ) const = default;
  71076. #else
  71077. bool operator==( SamplerCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  71078. {
  71079. # if defined( VULKAN_HPP_USE_REFLECT )
  71080. return this->reflect() == rhs.reflect();
  71081. # else
  71082. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( flags == rhs.flags ) && ( magFilter == rhs.magFilter ) && ( minFilter == rhs.minFilter ) &&
  71083. ( mipmapMode == rhs.mipmapMode ) && ( addressModeU == rhs.addressModeU ) && ( addressModeV == rhs.addressModeV ) &&
  71084. ( addressModeW == rhs.addressModeW ) && ( mipLodBias == rhs.mipLodBias ) && ( anisotropyEnable == rhs.anisotropyEnable ) &&
  71085. ( maxAnisotropy == rhs.maxAnisotropy ) && ( compareEnable == rhs.compareEnable ) && ( compareOp == rhs.compareOp ) && ( minLod == rhs.minLod ) &&
  71086. ( maxLod == rhs.maxLod ) && ( borderColor == rhs.borderColor ) && ( unnormalizedCoordinates == rhs.unnormalizedCoordinates );
  71087. # endif
  71088. }
  71089. bool operator!=( SamplerCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  71090. {
  71091. return !operator==( rhs );
  71092. }
  71093. #endif
  71094. public:
  71095. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSamplerCreateInfo;
  71096. const void * pNext = {};
  71097. VULKAN_HPP_NAMESPACE::SamplerCreateFlags flags = {};
  71098. VULKAN_HPP_NAMESPACE::Filter magFilter = VULKAN_HPP_NAMESPACE::Filter::eNearest;
  71099. VULKAN_HPP_NAMESPACE::Filter minFilter = VULKAN_HPP_NAMESPACE::Filter::eNearest;
  71100. VULKAN_HPP_NAMESPACE::SamplerMipmapMode mipmapMode = VULKAN_HPP_NAMESPACE::SamplerMipmapMode::eNearest;
  71101. VULKAN_HPP_NAMESPACE::SamplerAddressMode addressModeU = VULKAN_HPP_NAMESPACE::SamplerAddressMode::eRepeat;
  71102. VULKAN_HPP_NAMESPACE::SamplerAddressMode addressModeV = VULKAN_HPP_NAMESPACE::SamplerAddressMode::eRepeat;
  71103. VULKAN_HPP_NAMESPACE::SamplerAddressMode addressModeW = VULKAN_HPP_NAMESPACE::SamplerAddressMode::eRepeat;
  71104. float mipLodBias = {};
  71105. VULKAN_HPP_NAMESPACE::Bool32 anisotropyEnable = {};
  71106. float maxAnisotropy = {};
  71107. VULKAN_HPP_NAMESPACE::Bool32 compareEnable = {};
  71108. VULKAN_HPP_NAMESPACE::CompareOp compareOp = VULKAN_HPP_NAMESPACE::CompareOp::eNever;
  71109. float minLod = {};
  71110. float maxLod = {};
  71111. VULKAN_HPP_NAMESPACE::BorderColor borderColor = VULKAN_HPP_NAMESPACE::BorderColor::eFloatTransparentBlack;
  71112. VULKAN_HPP_NAMESPACE::Bool32 unnormalizedCoordinates = {};
  71113. };
  71114. template <>
  71115. struct CppType<StructureType, StructureType::eSamplerCreateInfo>
  71116. {
  71117. using Type = SamplerCreateInfo;
  71118. };
  71119. struct SamplerCustomBorderColorCreateInfoEXT
  71120. {
  71121. using NativeType = VkSamplerCustomBorderColorCreateInfoEXT;
  71122. static const bool allowDuplicate = false;
  71123. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSamplerCustomBorderColorCreateInfoEXT;
  71124. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  71125. VULKAN_HPP_CONSTEXPR_14 SamplerCustomBorderColorCreateInfoEXT( VULKAN_HPP_NAMESPACE::ClearColorValue customBorderColor_ = {},
  71126. VULKAN_HPP_NAMESPACE::Format format_ = VULKAN_HPP_NAMESPACE::Format::eUndefined,
  71127. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  71128. : pNext( pNext_ )
  71129. , customBorderColor( customBorderColor_ )
  71130. , format( format_ )
  71131. {
  71132. }
  71133. VULKAN_HPP_CONSTEXPR_14 SamplerCustomBorderColorCreateInfoEXT( SamplerCustomBorderColorCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  71134. SamplerCustomBorderColorCreateInfoEXT( VkSamplerCustomBorderColorCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  71135. : SamplerCustomBorderColorCreateInfoEXT( *reinterpret_cast<SamplerCustomBorderColorCreateInfoEXT const *>( &rhs ) )
  71136. {
  71137. }
  71138. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  71139. SamplerCustomBorderColorCreateInfoEXT & operator=( SamplerCustomBorderColorCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  71140. SamplerCustomBorderColorCreateInfoEXT & operator=( VkSamplerCustomBorderColorCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  71141. {
  71142. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SamplerCustomBorderColorCreateInfoEXT const *>( &rhs );
  71143. return *this;
  71144. }
  71145. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  71146. VULKAN_HPP_CONSTEXPR_14 SamplerCustomBorderColorCreateInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  71147. {
  71148. pNext = pNext_;
  71149. return *this;
  71150. }
  71151. VULKAN_HPP_CONSTEXPR_14 SamplerCustomBorderColorCreateInfoEXT &
  71152. setCustomBorderColor( VULKAN_HPP_NAMESPACE::ClearColorValue const & customBorderColor_ ) VULKAN_HPP_NOEXCEPT
  71153. {
  71154. customBorderColor = customBorderColor_;
  71155. return *this;
  71156. }
  71157. VULKAN_HPP_CONSTEXPR_14 SamplerCustomBorderColorCreateInfoEXT & setFormat( VULKAN_HPP_NAMESPACE::Format format_ ) VULKAN_HPP_NOEXCEPT
  71158. {
  71159. format = format_;
  71160. return *this;
  71161. }
  71162. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  71163. operator VkSamplerCustomBorderColorCreateInfoEXT const &() const VULKAN_HPP_NOEXCEPT
  71164. {
  71165. return *reinterpret_cast<const VkSamplerCustomBorderColorCreateInfoEXT *>( this );
  71166. }
  71167. operator VkSamplerCustomBorderColorCreateInfoEXT &() VULKAN_HPP_NOEXCEPT
  71168. {
  71169. return *reinterpret_cast<VkSamplerCustomBorderColorCreateInfoEXT *>( this );
  71170. }
  71171. #if defined( VULKAN_HPP_USE_REFLECT )
  71172. # if 14 <= VULKAN_HPP_CPP_VERSION
  71173. auto
  71174. # else
  71175. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  71176. const void * const &,
  71177. VULKAN_HPP_NAMESPACE::ClearColorValue const &,
  71178. VULKAN_HPP_NAMESPACE::Format const &>
  71179. # endif
  71180. reflect() const VULKAN_HPP_NOEXCEPT
  71181. {
  71182. return std::tie( sType, pNext, customBorderColor, format );
  71183. }
  71184. #endif
  71185. public:
  71186. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSamplerCustomBorderColorCreateInfoEXT;
  71187. const void * pNext = {};
  71188. VULKAN_HPP_NAMESPACE::ClearColorValue customBorderColor = {};
  71189. VULKAN_HPP_NAMESPACE::Format format = VULKAN_HPP_NAMESPACE::Format::eUndefined;
  71190. };
  71191. template <>
  71192. struct CppType<StructureType, StructureType::eSamplerCustomBorderColorCreateInfoEXT>
  71193. {
  71194. using Type = SamplerCustomBorderColorCreateInfoEXT;
  71195. };
  71196. struct SamplerReductionModeCreateInfo
  71197. {
  71198. using NativeType = VkSamplerReductionModeCreateInfo;
  71199. static const bool allowDuplicate = false;
  71200. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSamplerReductionModeCreateInfo;
  71201. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  71202. VULKAN_HPP_CONSTEXPR
  71203. SamplerReductionModeCreateInfo( VULKAN_HPP_NAMESPACE::SamplerReductionMode reductionMode_ = VULKAN_HPP_NAMESPACE::SamplerReductionMode::eWeightedAverage,
  71204. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  71205. : pNext( pNext_ )
  71206. , reductionMode( reductionMode_ )
  71207. {
  71208. }
  71209. VULKAN_HPP_CONSTEXPR SamplerReductionModeCreateInfo( SamplerReductionModeCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  71210. SamplerReductionModeCreateInfo( VkSamplerReductionModeCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
  71211. : SamplerReductionModeCreateInfo( *reinterpret_cast<SamplerReductionModeCreateInfo const *>( &rhs ) )
  71212. {
  71213. }
  71214. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  71215. SamplerReductionModeCreateInfo & operator=( SamplerReductionModeCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  71216. SamplerReductionModeCreateInfo & operator=( VkSamplerReductionModeCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
  71217. {
  71218. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SamplerReductionModeCreateInfo const *>( &rhs );
  71219. return *this;
  71220. }
  71221. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  71222. VULKAN_HPP_CONSTEXPR_14 SamplerReductionModeCreateInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  71223. {
  71224. pNext = pNext_;
  71225. return *this;
  71226. }
  71227. VULKAN_HPP_CONSTEXPR_14 SamplerReductionModeCreateInfo & setReductionMode( VULKAN_HPP_NAMESPACE::SamplerReductionMode reductionMode_ ) VULKAN_HPP_NOEXCEPT
  71228. {
  71229. reductionMode = reductionMode_;
  71230. return *this;
  71231. }
  71232. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  71233. operator VkSamplerReductionModeCreateInfo const &() const VULKAN_HPP_NOEXCEPT
  71234. {
  71235. return *reinterpret_cast<const VkSamplerReductionModeCreateInfo *>( this );
  71236. }
  71237. operator VkSamplerReductionModeCreateInfo &() VULKAN_HPP_NOEXCEPT
  71238. {
  71239. return *reinterpret_cast<VkSamplerReductionModeCreateInfo *>( this );
  71240. }
  71241. #if defined( VULKAN_HPP_USE_REFLECT )
  71242. # if 14 <= VULKAN_HPP_CPP_VERSION
  71243. auto
  71244. # else
  71245. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::SamplerReductionMode const &>
  71246. # endif
  71247. reflect() const VULKAN_HPP_NOEXCEPT
  71248. {
  71249. return std::tie( sType, pNext, reductionMode );
  71250. }
  71251. #endif
  71252. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  71253. auto operator<=>( SamplerReductionModeCreateInfo const & ) const = default;
  71254. #else
  71255. bool operator==( SamplerReductionModeCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  71256. {
  71257. # if defined( VULKAN_HPP_USE_REFLECT )
  71258. return this->reflect() == rhs.reflect();
  71259. # else
  71260. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( reductionMode == rhs.reductionMode );
  71261. # endif
  71262. }
  71263. bool operator!=( SamplerReductionModeCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  71264. {
  71265. return !operator==( rhs );
  71266. }
  71267. #endif
  71268. public:
  71269. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSamplerReductionModeCreateInfo;
  71270. const void * pNext = {};
  71271. VULKAN_HPP_NAMESPACE::SamplerReductionMode reductionMode = VULKAN_HPP_NAMESPACE::SamplerReductionMode::eWeightedAverage;
  71272. };
  71273. template <>
  71274. struct CppType<StructureType, StructureType::eSamplerReductionModeCreateInfo>
  71275. {
  71276. using Type = SamplerReductionModeCreateInfo;
  71277. };
  71278. using SamplerReductionModeCreateInfoEXT = SamplerReductionModeCreateInfo;
  71279. struct SamplerYcbcrConversionCreateInfo
  71280. {
  71281. using NativeType = VkSamplerYcbcrConversionCreateInfo;
  71282. static const bool allowDuplicate = false;
  71283. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSamplerYcbcrConversionCreateInfo;
  71284. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  71285. VULKAN_HPP_CONSTEXPR SamplerYcbcrConversionCreateInfo(
  71286. VULKAN_HPP_NAMESPACE::Format format_ = VULKAN_HPP_NAMESPACE::Format::eUndefined,
  71287. VULKAN_HPP_NAMESPACE::SamplerYcbcrModelConversion ycbcrModel_ = VULKAN_HPP_NAMESPACE::SamplerYcbcrModelConversion::eRgbIdentity,
  71288. VULKAN_HPP_NAMESPACE::SamplerYcbcrRange ycbcrRange_ = VULKAN_HPP_NAMESPACE::SamplerYcbcrRange::eItuFull,
  71289. VULKAN_HPP_NAMESPACE::ComponentMapping components_ = {},
  71290. VULKAN_HPP_NAMESPACE::ChromaLocation xChromaOffset_ = VULKAN_HPP_NAMESPACE::ChromaLocation::eCositedEven,
  71291. VULKAN_HPP_NAMESPACE::ChromaLocation yChromaOffset_ = VULKAN_HPP_NAMESPACE::ChromaLocation::eCositedEven,
  71292. VULKAN_HPP_NAMESPACE::Filter chromaFilter_ = VULKAN_HPP_NAMESPACE::Filter::eNearest,
  71293. VULKAN_HPP_NAMESPACE::Bool32 forceExplicitReconstruction_ = {},
  71294. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  71295. : pNext( pNext_ )
  71296. , format( format_ )
  71297. , ycbcrModel( ycbcrModel_ )
  71298. , ycbcrRange( ycbcrRange_ )
  71299. , components( components_ )
  71300. , xChromaOffset( xChromaOffset_ )
  71301. , yChromaOffset( yChromaOffset_ )
  71302. , chromaFilter( chromaFilter_ )
  71303. , forceExplicitReconstruction( forceExplicitReconstruction_ )
  71304. {
  71305. }
  71306. VULKAN_HPP_CONSTEXPR SamplerYcbcrConversionCreateInfo( SamplerYcbcrConversionCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  71307. SamplerYcbcrConversionCreateInfo( VkSamplerYcbcrConversionCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
  71308. : SamplerYcbcrConversionCreateInfo( *reinterpret_cast<SamplerYcbcrConversionCreateInfo const *>( &rhs ) )
  71309. {
  71310. }
  71311. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  71312. SamplerYcbcrConversionCreateInfo & operator=( SamplerYcbcrConversionCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  71313. SamplerYcbcrConversionCreateInfo & operator=( VkSamplerYcbcrConversionCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
  71314. {
  71315. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SamplerYcbcrConversionCreateInfo const *>( &rhs );
  71316. return *this;
  71317. }
  71318. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  71319. VULKAN_HPP_CONSTEXPR_14 SamplerYcbcrConversionCreateInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  71320. {
  71321. pNext = pNext_;
  71322. return *this;
  71323. }
  71324. VULKAN_HPP_CONSTEXPR_14 SamplerYcbcrConversionCreateInfo & setFormat( VULKAN_HPP_NAMESPACE::Format format_ ) VULKAN_HPP_NOEXCEPT
  71325. {
  71326. format = format_;
  71327. return *this;
  71328. }
  71329. VULKAN_HPP_CONSTEXPR_14 SamplerYcbcrConversionCreateInfo &
  71330. setYcbcrModel( VULKAN_HPP_NAMESPACE::SamplerYcbcrModelConversion ycbcrModel_ ) VULKAN_HPP_NOEXCEPT
  71331. {
  71332. ycbcrModel = ycbcrModel_;
  71333. return *this;
  71334. }
  71335. VULKAN_HPP_CONSTEXPR_14 SamplerYcbcrConversionCreateInfo & setYcbcrRange( VULKAN_HPP_NAMESPACE::SamplerYcbcrRange ycbcrRange_ ) VULKAN_HPP_NOEXCEPT
  71336. {
  71337. ycbcrRange = ycbcrRange_;
  71338. return *this;
  71339. }
  71340. VULKAN_HPP_CONSTEXPR_14 SamplerYcbcrConversionCreateInfo & setComponents( VULKAN_HPP_NAMESPACE::ComponentMapping const & components_ ) VULKAN_HPP_NOEXCEPT
  71341. {
  71342. components = components_;
  71343. return *this;
  71344. }
  71345. VULKAN_HPP_CONSTEXPR_14 SamplerYcbcrConversionCreateInfo & setXChromaOffset( VULKAN_HPP_NAMESPACE::ChromaLocation xChromaOffset_ ) VULKAN_HPP_NOEXCEPT
  71346. {
  71347. xChromaOffset = xChromaOffset_;
  71348. return *this;
  71349. }
  71350. VULKAN_HPP_CONSTEXPR_14 SamplerYcbcrConversionCreateInfo & setYChromaOffset( VULKAN_HPP_NAMESPACE::ChromaLocation yChromaOffset_ ) VULKAN_HPP_NOEXCEPT
  71351. {
  71352. yChromaOffset = yChromaOffset_;
  71353. return *this;
  71354. }
  71355. VULKAN_HPP_CONSTEXPR_14 SamplerYcbcrConversionCreateInfo & setChromaFilter( VULKAN_HPP_NAMESPACE::Filter chromaFilter_ ) VULKAN_HPP_NOEXCEPT
  71356. {
  71357. chromaFilter = chromaFilter_;
  71358. return *this;
  71359. }
  71360. VULKAN_HPP_CONSTEXPR_14 SamplerYcbcrConversionCreateInfo &
  71361. setForceExplicitReconstruction( VULKAN_HPP_NAMESPACE::Bool32 forceExplicitReconstruction_ ) VULKAN_HPP_NOEXCEPT
  71362. {
  71363. forceExplicitReconstruction = forceExplicitReconstruction_;
  71364. return *this;
  71365. }
  71366. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  71367. operator VkSamplerYcbcrConversionCreateInfo const &() const VULKAN_HPP_NOEXCEPT
  71368. {
  71369. return *reinterpret_cast<const VkSamplerYcbcrConversionCreateInfo *>( this );
  71370. }
  71371. operator VkSamplerYcbcrConversionCreateInfo &() VULKAN_HPP_NOEXCEPT
  71372. {
  71373. return *reinterpret_cast<VkSamplerYcbcrConversionCreateInfo *>( this );
  71374. }
  71375. #if defined( VULKAN_HPP_USE_REFLECT )
  71376. # if 14 <= VULKAN_HPP_CPP_VERSION
  71377. auto
  71378. # else
  71379. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  71380. const void * const &,
  71381. VULKAN_HPP_NAMESPACE::Format const &,
  71382. VULKAN_HPP_NAMESPACE::SamplerYcbcrModelConversion const &,
  71383. VULKAN_HPP_NAMESPACE::SamplerYcbcrRange const &,
  71384. VULKAN_HPP_NAMESPACE::ComponentMapping const &,
  71385. VULKAN_HPP_NAMESPACE::ChromaLocation const &,
  71386. VULKAN_HPP_NAMESPACE::ChromaLocation const &,
  71387. VULKAN_HPP_NAMESPACE::Filter const &,
  71388. VULKAN_HPP_NAMESPACE::Bool32 const &>
  71389. # endif
  71390. reflect() const VULKAN_HPP_NOEXCEPT
  71391. {
  71392. return std::tie( sType, pNext, format, ycbcrModel, ycbcrRange, components, xChromaOffset, yChromaOffset, chromaFilter, forceExplicitReconstruction );
  71393. }
  71394. #endif
  71395. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  71396. auto operator<=>( SamplerYcbcrConversionCreateInfo const & ) const = default;
  71397. #else
  71398. bool operator==( SamplerYcbcrConversionCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  71399. {
  71400. # if defined( VULKAN_HPP_USE_REFLECT )
  71401. return this->reflect() == rhs.reflect();
  71402. # else
  71403. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( format == rhs.format ) && ( ycbcrModel == rhs.ycbcrModel ) &&
  71404. ( ycbcrRange == rhs.ycbcrRange ) && ( components == rhs.components ) && ( xChromaOffset == rhs.xChromaOffset ) &&
  71405. ( yChromaOffset == rhs.yChromaOffset ) && ( chromaFilter == rhs.chromaFilter ) &&
  71406. ( forceExplicitReconstruction == rhs.forceExplicitReconstruction );
  71407. # endif
  71408. }
  71409. bool operator!=( SamplerYcbcrConversionCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  71410. {
  71411. return !operator==( rhs );
  71412. }
  71413. #endif
  71414. public:
  71415. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSamplerYcbcrConversionCreateInfo;
  71416. const void * pNext = {};
  71417. VULKAN_HPP_NAMESPACE::Format format = VULKAN_HPP_NAMESPACE::Format::eUndefined;
  71418. VULKAN_HPP_NAMESPACE::SamplerYcbcrModelConversion ycbcrModel = VULKAN_HPP_NAMESPACE::SamplerYcbcrModelConversion::eRgbIdentity;
  71419. VULKAN_HPP_NAMESPACE::SamplerYcbcrRange ycbcrRange = VULKAN_HPP_NAMESPACE::SamplerYcbcrRange::eItuFull;
  71420. VULKAN_HPP_NAMESPACE::ComponentMapping components = {};
  71421. VULKAN_HPP_NAMESPACE::ChromaLocation xChromaOffset = VULKAN_HPP_NAMESPACE::ChromaLocation::eCositedEven;
  71422. VULKAN_HPP_NAMESPACE::ChromaLocation yChromaOffset = VULKAN_HPP_NAMESPACE::ChromaLocation::eCositedEven;
  71423. VULKAN_HPP_NAMESPACE::Filter chromaFilter = VULKAN_HPP_NAMESPACE::Filter::eNearest;
  71424. VULKAN_HPP_NAMESPACE::Bool32 forceExplicitReconstruction = {};
  71425. };
  71426. template <>
  71427. struct CppType<StructureType, StructureType::eSamplerYcbcrConversionCreateInfo>
  71428. {
  71429. using Type = SamplerYcbcrConversionCreateInfo;
  71430. };
  71431. using SamplerYcbcrConversionCreateInfoKHR = SamplerYcbcrConversionCreateInfo;
  71432. struct SamplerYcbcrConversionImageFormatProperties
  71433. {
  71434. using NativeType = VkSamplerYcbcrConversionImageFormatProperties;
  71435. static const bool allowDuplicate = false;
  71436. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSamplerYcbcrConversionImageFormatProperties;
  71437. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  71438. VULKAN_HPP_CONSTEXPR SamplerYcbcrConversionImageFormatProperties( uint32_t combinedImageSamplerDescriptorCount_ = {},
  71439. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  71440. : pNext( pNext_ )
  71441. , combinedImageSamplerDescriptorCount( combinedImageSamplerDescriptorCount_ )
  71442. {
  71443. }
  71444. VULKAN_HPP_CONSTEXPR SamplerYcbcrConversionImageFormatProperties( SamplerYcbcrConversionImageFormatProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  71445. SamplerYcbcrConversionImageFormatProperties( VkSamplerYcbcrConversionImageFormatProperties const & rhs ) VULKAN_HPP_NOEXCEPT
  71446. : SamplerYcbcrConversionImageFormatProperties( *reinterpret_cast<SamplerYcbcrConversionImageFormatProperties const *>( &rhs ) )
  71447. {
  71448. }
  71449. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  71450. SamplerYcbcrConversionImageFormatProperties & operator=( SamplerYcbcrConversionImageFormatProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  71451. SamplerYcbcrConversionImageFormatProperties & operator=( VkSamplerYcbcrConversionImageFormatProperties const & rhs ) VULKAN_HPP_NOEXCEPT
  71452. {
  71453. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SamplerYcbcrConversionImageFormatProperties const *>( &rhs );
  71454. return *this;
  71455. }
  71456. operator VkSamplerYcbcrConversionImageFormatProperties const &() const VULKAN_HPP_NOEXCEPT
  71457. {
  71458. return *reinterpret_cast<const VkSamplerYcbcrConversionImageFormatProperties *>( this );
  71459. }
  71460. operator VkSamplerYcbcrConversionImageFormatProperties &() VULKAN_HPP_NOEXCEPT
  71461. {
  71462. return *reinterpret_cast<VkSamplerYcbcrConversionImageFormatProperties *>( this );
  71463. }
  71464. #if defined( VULKAN_HPP_USE_REFLECT )
  71465. # if 14 <= VULKAN_HPP_CPP_VERSION
  71466. auto
  71467. # else
  71468. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, uint32_t const &>
  71469. # endif
  71470. reflect() const VULKAN_HPP_NOEXCEPT
  71471. {
  71472. return std::tie( sType, pNext, combinedImageSamplerDescriptorCount );
  71473. }
  71474. #endif
  71475. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  71476. auto operator<=>( SamplerYcbcrConversionImageFormatProperties const & ) const = default;
  71477. #else
  71478. bool operator==( SamplerYcbcrConversionImageFormatProperties const & rhs ) const VULKAN_HPP_NOEXCEPT
  71479. {
  71480. # if defined( VULKAN_HPP_USE_REFLECT )
  71481. return this->reflect() == rhs.reflect();
  71482. # else
  71483. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( combinedImageSamplerDescriptorCount == rhs.combinedImageSamplerDescriptorCount );
  71484. # endif
  71485. }
  71486. bool operator!=( SamplerYcbcrConversionImageFormatProperties const & rhs ) const VULKAN_HPP_NOEXCEPT
  71487. {
  71488. return !operator==( rhs );
  71489. }
  71490. #endif
  71491. public:
  71492. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSamplerYcbcrConversionImageFormatProperties;
  71493. void * pNext = {};
  71494. uint32_t combinedImageSamplerDescriptorCount = {};
  71495. };
  71496. template <>
  71497. struct CppType<StructureType, StructureType::eSamplerYcbcrConversionImageFormatProperties>
  71498. {
  71499. using Type = SamplerYcbcrConversionImageFormatProperties;
  71500. };
  71501. using SamplerYcbcrConversionImageFormatPropertiesKHR = SamplerYcbcrConversionImageFormatProperties;
  71502. struct SamplerYcbcrConversionInfo
  71503. {
  71504. using NativeType = VkSamplerYcbcrConversionInfo;
  71505. static const bool allowDuplicate = false;
  71506. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSamplerYcbcrConversionInfo;
  71507. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  71508. VULKAN_HPP_CONSTEXPR SamplerYcbcrConversionInfo( VULKAN_HPP_NAMESPACE::SamplerYcbcrConversion conversion_ = {},
  71509. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  71510. : pNext( pNext_ )
  71511. , conversion( conversion_ )
  71512. {
  71513. }
  71514. VULKAN_HPP_CONSTEXPR SamplerYcbcrConversionInfo( SamplerYcbcrConversionInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  71515. SamplerYcbcrConversionInfo( VkSamplerYcbcrConversionInfo const & rhs ) VULKAN_HPP_NOEXCEPT
  71516. : SamplerYcbcrConversionInfo( *reinterpret_cast<SamplerYcbcrConversionInfo const *>( &rhs ) )
  71517. {
  71518. }
  71519. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  71520. SamplerYcbcrConversionInfo & operator=( SamplerYcbcrConversionInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  71521. SamplerYcbcrConversionInfo & operator=( VkSamplerYcbcrConversionInfo const & rhs ) VULKAN_HPP_NOEXCEPT
  71522. {
  71523. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SamplerYcbcrConversionInfo const *>( &rhs );
  71524. return *this;
  71525. }
  71526. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  71527. VULKAN_HPP_CONSTEXPR_14 SamplerYcbcrConversionInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  71528. {
  71529. pNext = pNext_;
  71530. return *this;
  71531. }
  71532. VULKAN_HPP_CONSTEXPR_14 SamplerYcbcrConversionInfo & setConversion( VULKAN_HPP_NAMESPACE::SamplerYcbcrConversion conversion_ ) VULKAN_HPP_NOEXCEPT
  71533. {
  71534. conversion = conversion_;
  71535. return *this;
  71536. }
  71537. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  71538. operator VkSamplerYcbcrConversionInfo const &() const VULKAN_HPP_NOEXCEPT
  71539. {
  71540. return *reinterpret_cast<const VkSamplerYcbcrConversionInfo *>( this );
  71541. }
  71542. operator VkSamplerYcbcrConversionInfo &() VULKAN_HPP_NOEXCEPT
  71543. {
  71544. return *reinterpret_cast<VkSamplerYcbcrConversionInfo *>( this );
  71545. }
  71546. #if defined( VULKAN_HPP_USE_REFLECT )
  71547. # if 14 <= VULKAN_HPP_CPP_VERSION
  71548. auto
  71549. # else
  71550. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::SamplerYcbcrConversion const &>
  71551. # endif
  71552. reflect() const VULKAN_HPP_NOEXCEPT
  71553. {
  71554. return std::tie( sType, pNext, conversion );
  71555. }
  71556. #endif
  71557. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  71558. auto operator<=>( SamplerYcbcrConversionInfo const & ) const = default;
  71559. #else
  71560. bool operator==( SamplerYcbcrConversionInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  71561. {
  71562. # if defined( VULKAN_HPP_USE_REFLECT )
  71563. return this->reflect() == rhs.reflect();
  71564. # else
  71565. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( conversion == rhs.conversion );
  71566. # endif
  71567. }
  71568. bool operator!=( SamplerYcbcrConversionInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  71569. {
  71570. return !operator==( rhs );
  71571. }
  71572. #endif
  71573. public:
  71574. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSamplerYcbcrConversionInfo;
  71575. const void * pNext = {};
  71576. VULKAN_HPP_NAMESPACE::SamplerYcbcrConversion conversion = {};
  71577. };
  71578. template <>
  71579. struct CppType<StructureType, StructureType::eSamplerYcbcrConversionInfo>
  71580. {
  71581. using Type = SamplerYcbcrConversionInfo;
  71582. };
  71583. using SamplerYcbcrConversionInfoKHR = SamplerYcbcrConversionInfo;
  71584. #if defined( VK_USE_PLATFORM_SCREEN_QNX )
  71585. struct ScreenSurfaceCreateInfoQNX
  71586. {
  71587. using NativeType = VkScreenSurfaceCreateInfoQNX;
  71588. static const bool allowDuplicate = false;
  71589. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eScreenSurfaceCreateInfoQNX;
  71590. # if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  71591. VULKAN_HPP_CONSTEXPR ScreenSurfaceCreateInfoQNX( VULKAN_HPP_NAMESPACE::ScreenSurfaceCreateFlagsQNX flags_ = {},
  71592. struct _screen_context * context_ = {},
  71593. struct _screen_window * window_ = {},
  71594. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  71595. : pNext( pNext_ )
  71596. , flags( flags_ )
  71597. , context( context_ )
  71598. , window( window_ )
  71599. {
  71600. }
  71601. VULKAN_HPP_CONSTEXPR ScreenSurfaceCreateInfoQNX( ScreenSurfaceCreateInfoQNX const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  71602. ScreenSurfaceCreateInfoQNX( VkScreenSurfaceCreateInfoQNX const & rhs ) VULKAN_HPP_NOEXCEPT
  71603. : ScreenSurfaceCreateInfoQNX( *reinterpret_cast<ScreenSurfaceCreateInfoQNX const *>( &rhs ) )
  71604. {
  71605. }
  71606. # endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  71607. ScreenSurfaceCreateInfoQNX & operator=( ScreenSurfaceCreateInfoQNX const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  71608. ScreenSurfaceCreateInfoQNX & operator=( VkScreenSurfaceCreateInfoQNX const & rhs ) VULKAN_HPP_NOEXCEPT
  71609. {
  71610. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ScreenSurfaceCreateInfoQNX const *>( &rhs );
  71611. return *this;
  71612. }
  71613. # if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  71614. VULKAN_HPP_CONSTEXPR_14 ScreenSurfaceCreateInfoQNX & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  71615. {
  71616. pNext = pNext_;
  71617. return *this;
  71618. }
  71619. VULKAN_HPP_CONSTEXPR_14 ScreenSurfaceCreateInfoQNX & setFlags( VULKAN_HPP_NAMESPACE::ScreenSurfaceCreateFlagsQNX flags_ ) VULKAN_HPP_NOEXCEPT
  71620. {
  71621. flags = flags_;
  71622. return *this;
  71623. }
  71624. VULKAN_HPP_CONSTEXPR_14 ScreenSurfaceCreateInfoQNX & setContext( struct _screen_context * context_ ) VULKAN_HPP_NOEXCEPT
  71625. {
  71626. context = context_;
  71627. return *this;
  71628. }
  71629. VULKAN_HPP_CONSTEXPR_14 ScreenSurfaceCreateInfoQNX & setWindow( struct _screen_window * window_ ) VULKAN_HPP_NOEXCEPT
  71630. {
  71631. window = window_;
  71632. return *this;
  71633. }
  71634. # endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  71635. operator VkScreenSurfaceCreateInfoQNX const &() const VULKAN_HPP_NOEXCEPT
  71636. {
  71637. return *reinterpret_cast<const VkScreenSurfaceCreateInfoQNX *>( this );
  71638. }
  71639. operator VkScreenSurfaceCreateInfoQNX &() VULKAN_HPP_NOEXCEPT
  71640. {
  71641. return *reinterpret_cast<VkScreenSurfaceCreateInfoQNX *>( this );
  71642. }
  71643. # if defined( VULKAN_HPP_USE_REFLECT )
  71644. # if 14 <= VULKAN_HPP_CPP_VERSION
  71645. auto
  71646. # else
  71647. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  71648. const void * const &,
  71649. VULKAN_HPP_NAMESPACE::ScreenSurfaceCreateFlagsQNX const &,
  71650. struct _screen_context * const &,
  71651. struct _screen_window * const &>
  71652. # endif
  71653. reflect() const VULKAN_HPP_NOEXCEPT
  71654. {
  71655. return std::tie( sType, pNext, flags, context, window );
  71656. }
  71657. # endif
  71658. # if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  71659. auto operator<=>( ScreenSurfaceCreateInfoQNX const & ) const = default;
  71660. # else
  71661. bool operator==( ScreenSurfaceCreateInfoQNX const & rhs ) const VULKAN_HPP_NOEXCEPT
  71662. {
  71663. # if defined( VULKAN_HPP_USE_REFLECT )
  71664. return this->reflect() == rhs.reflect();
  71665. # else
  71666. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( flags == rhs.flags ) && ( context == rhs.context ) && ( window == rhs.window );
  71667. # endif
  71668. }
  71669. bool operator!=( ScreenSurfaceCreateInfoQNX const & rhs ) const VULKAN_HPP_NOEXCEPT
  71670. {
  71671. return !operator==( rhs );
  71672. }
  71673. # endif
  71674. public:
  71675. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eScreenSurfaceCreateInfoQNX;
  71676. const void * pNext = {};
  71677. VULKAN_HPP_NAMESPACE::ScreenSurfaceCreateFlagsQNX flags = {};
  71678. struct _screen_context * context = {};
  71679. struct _screen_window * window = {};
  71680. };
  71681. template <>
  71682. struct CppType<StructureType, StructureType::eScreenSurfaceCreateInfoQNX>
  71683. {
  71684. using Type = ScreenSurfaceCreateInfoQNX;
  71685. };
  71686. #endif /*VK_USE_PLATFORM_SCREEN_QNX*/
  71687. struct SemaphoreCreateInfo
  71688. {
  71689. using NativeType = VkSemaphoreCreateInfo;
  71690. static const bool allowDuplicate = false;
  71691. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSemaphoreCreateInfo;
  71692. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  71693. VULKAN_HPP_CONSTEXPR SemaphoreCreateInfo( VULKAN_HPP_NAMESPACE::SemaphoreCreateFlags flags_ = {}, const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  71694. : pNext( pNext_ )
  71695. , flags( flags_ )
  71696. {
  71697. }
  71698. VULKAN_HPP_CONSTEXPR SemaphoreCreateInfo( SemaphoreCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  71699. SemaphoreCreateInfo( VkSemaphoreCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT : SemaphoreCreateInfo( *reinterpret_cast<SemaphoreCreateInfo const *>( &rhs ) )
  71700. {
  71701. }
  71702. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  71703. SemaphoreCreateInfo & operator=( SemaphoreCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  71704. SemaphoreCreateInfo & operator=( VkSemaphoreCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
  71705. {
  71706. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SemaphoreCreateInfo const *>( &rhs );
  71707. return *this;
  71708. }
  71709. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  71710. VULKAN_HPP_CONSTEXPR_14 SemaphoreCreateInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  71711. {
  71712. pNext = pNext_;
  71713. return *this;
  71714. }
  71715. VULKAN_HPP_CONSTEXPR_14 SemaphoreCreateInfo & setFlags( VULKAN_HPP_NAMESPACE::SemaphoreCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT
  71716. {
  71717. flags = flags_;
  71718. return *this;
  71719. }
  71720. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  71721. operator VkSemaphoreCreateInfo const &() const VULKAN_HPP_NOEXCEPT
  71722. {
  71723. return *reinterpret_cast<const VkSemaphoreCreateInfo *>( this );
  71724. }
  71725. operator VkSemaphoreCreateInfo &() VULKAN_HPP_NOEXCEPT
  71726. {
  71727. return *reinterpret_cast<VkSemaphoreCreateInfo *>( this );
  71728. }
  71729. #if defined( VULKAN_HPP_USE_REFLECT )
  71730. # if 14 <= VULKAN_HPP_CPP_VERSION
  71731. auto
  71732. # else
  71733. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::SemaphoreCreateFlags const &>
  71734. # endif
  71735. reflect() const VULKAN_HPP_NOEXCEPT
  71736. {
  71737. return std::tie( sType, pNext, flags );
  71738. }
  71739. #endif
  71740. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  71741. auto operator<=>( SemaphoreCreateInfo const & ) const = default;
  71742. #else
  71743. bool operator==( SemaphoreCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  71744. {
  71745. # if defined( VULKAN_HPP_USE_REFLECT )
  71746. return this->reflect() == rhs.reflect();
  71747. # else
  71748. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( flags == rhs.flags );
  71749. # endif
  71750. }
  71751. bool operator!=( SemaphoreCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  71752. {
  71753. return !operator==( rhs );
  71754. }
  71755. #endif
  71756. public:
  71757. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSemaphoreCreateInfo;
  71758. const void * pNext = {};
  71759. VULKAN_HPP_NAMESPACE::SemaphoreCreateFlags flags = {};
  71760. };
  71761. template <>
  71762. struct CppType<StructureType, StructureType::eSemaphoreCreateInfo>
  71763. {
  71764. using Type = SemaphoreCreateInfo;
  71765. };
  71766. struct SemaphoreGetFdInfoKHR
  71767. {
  71768. using NativeType = VkSemaphoreGetFdInfoKHR;
  71769. static const bool allowDuplicate = false;
  71770. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSemaphoreGetFdInfoKHR;
  71771. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  71772. VULKAN_HPP_CONSTEXPR SemaphoreGetFdInfoKHR(
  71773. VULKAN_HPP_NAMESPACE::Semaphore semaphore_ = {},
  71774. VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlagBits handleType_ = VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlagBits::eOpaqueFd,
  71775. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  71776. : pNext( pNext_ )
  71777. , semaphore( semaphore_ )
  71778. , handleType( handleType_ )
  71779. {
  71780. }
  71781. VULKAN_HPP_CONSTEXPR SemaphoreGetFdInfoKHR( SemaphoreGetFdInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  71782. SemaphoreGetFdInfoKHR( VkSemaphoreGetFdInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  71783. : SemaphoreGetFdInfoKHR( *reinterpret_cast<SemaphoreGetFdInfoKHR const *>( &rhs ) )
  71784. {
  71785. }
  71786. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  71787. SemaphoreGetFdInfoKHR & operator=( SemaphoreGetFdInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  71788. SemaphoreGetFdInfoKHR & operator=( VkSemaphoreGetFdInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  71789. {
  71790. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SemaphoreGetFdInfoKHR const *>( &rhs );
  71791. return *this;
  71792. }
  71793. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  71794. VULKAN_HPP_CONSTEXPR_14 SemaphoreGetFdInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  71795. {
  71796. pNext = pNext_;
  71797. return *this;
  71798. }
  71799. VULKAN_HPP_CONSTEXPR_14 SemaphoreGetFdInfoKHR & setSemaphore( VULKAN_HPP_NAMESPACE::Semaphore semaphore_ ) VULKAN_HPP_NOEXCEPT
  71800. {
  71801. semaphore = semaphore_;
  71802. return *this;
  71803. }
  71804. VULKAN_HPP_CONSTEXPR_14 SemaphoreGetFdInfoKHR & setHandleType( VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlagBits handleType_ ) VULKAN_HPP_NOEXCEPT
  71805. {
  71806. handleType = handleType_;
  71807. return *this;
  71808. }
  71809. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  71810. operator VkSemaphoreGetFdInfoKHR const &() const VULKAN_HPP_NOEXCEPT
  71811. {
  71812. return *reinterpret_cast<const VkSemaphoreGetFdInfoKHR *>( this );
  71813. }
  71814. operator VkSemaphoreGetFdInfoKHR &() VULKAN_HPP_NOEXCEPT
  71815. {
  71816. return *reinterpret_cast<VkSemaphoreGetFdInfoKHR *>( this );
  71817. }
  71818. #if defined( VULKAN_HPP_USE_REFLECT )
  71819. # if 14 <= VULKAN_HPP_CPP_VERSION
  71820. auto
  71821. # else
  71822. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  71823. const void * const &,
  71824. VULKAN_HPP_NAMESPACE::Semaphore const &,
  71825. VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlagBits const &>
  71826. # endif
  71827. reflect() const VULKAN_HPP_NOEXCEPT
  71828. {
  71829. return std::tie( sType, pNext, semaphore, handleType );
  71830. }
  71831. #endif
  71832. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  71833. auto operator<=>( SemaphoreGetFdInfoKHR const & ) const = default;
  71834. #else
  71835. bool operator==( SemaphoreGetFdInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  71836. {
  71837. # if defined( VULKAN_HPP_USE_REFLECT )
  71838. return this->reflect() == rhs.reflect();
  71839. # else
  71840. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( semaphore == rhs.semaphore ) && ( handleType == rhs.handleType );
  71841. # endif
  71842. }
  71843. bool operator!=( SemaphoreGetFdInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  71844. {
  71845. return !operator==( rhs );
  71846. }
  71847. #endif
  71848. public:
  71849. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSemaphoreGetFdInfoKHR;
  71850. const void * pNext = {};
  71851. VULKAN_HPP_NAMESPACE::Semaphore semaphore = {};
  71852. VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlagBits handleType = VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlagBits::eOpaqueFd;
  71853. };
  71854. template <>
  71855. struct CppType<StructureType, StructureType::eSemaphoreGetFdInfoKHR>
  71856. {
  71857. using Type = SemaphoreGetFdInfoKHR;
  71858. };
  71859. #if defined( VK_USE_PLATFORM_WIN32_KHR )
  71860. struct SemaphoreGetWin32HandleInfoKHR
  71861. {
  71862. using NativeType = VkSemaphoreGetWin32HandleInfoKHR;
  71863. static const bool allowDuplicate = false;
  71864. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSemaphoreGetWin32HandleInfoKHR;
  71865. # if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  71866. VULKAN_HPP_CONSTEXPR SemaphoreGetWin32HandleInfoKHR(
  71867. VULKAN_HPP_NAMESPACE::Semaphore semaphore_ = {},
  71868. VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlagBits handleType_ = VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlagBits::eOpaqueFd,
  71869. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  71870. : pNext( pNext_ )
  71871. , semaphore( semaphore_ )
  71872. , handleType( handleType_ )
  71873. {
  71874. }
  71875. VULKAN_HPP_CONSTEXPR SemaphoreGetWin32HandleInfoKHR( SemaphoreGetWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  71876. SemaphoreGetWin32HandleInfoKHR( VkSemaphoreGetWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  71877. : SemaphoreGetWin32HandleInfoKHR( *reinterpret_cast<SemaphoreGetWin32HandleInfoKHR const *>( &rhs ) )
  71878. {
  71879. }
  71880. # endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  71881. SemaphoreGetWin32HandleInfoKHR & operator=( SemaphoreGetWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  71882. SemaphoreGetWin32HandleInfoKHR & operator=( VkSemaphoreGetWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  71883. {
  71884. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SemaphoreGetWin32HandleInfoKHR const *>( &rhs );
  71885. return *this;
  71886. }
  71887. # if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  71888. VULKAN_HPP_CONSTEXPR_14 SemaphoreGetWin32HandleInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  71889. {
  71890. pNext = pNext_;
  71891. return *this;
  71892. }
  71893. VULKAN_HPP_CONSTEXPR_14 SemaphoreGetWin32HandleInfoKHR & setSemaphore( VULKAN_HPP_NAMESPACE::Semaphore semaphore_ ) VULKAN_HPP_NOEXCEPT
  71894. {
  71895. semaphore = semaphore_;
  71896. return *this;
  71897. }
  71898. VULKAN_HPP_CONSTEXPR_14 SemaphoreGetWin32HandleInfoKHR &
  71899. setHandleType( VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlagBits handleType_ ) VULKAN_HPP_NOEXCEPT
  71900. {
  71901. handleType = handleType_;
  71902. return *this;
  71903. }
  71904. # endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  71905. operator VkSemaphoreGetWin32HandleInfoKHR const &() const VULKAN_HPP_NOEXCEPT
  71906. {
  71907. return *reinterpret_cast<const VkSemaphoreGetWin32HandleInfoKHR *>( this );
  71908. }
  71909. operator VkSemaphoreGetWin32HandleInfoKHR &() VULKAN_HPP_NOEXCEPT
  71910. {
  71911. return *reinterpret_cast<VkSemaphoreGetWin32HandleInfoKHR *>( this );
  71912. }
  71913. # if defined( VULKAN_HPP_USE_REFLECT )
  71914. # if 14 <= VULKAN_HPP_CPP_VERSION
  71915. auto
  71916. # else
  71917. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  71918. const void * const &,
  71919. VULKAN_HPP_NAMESPACE::Semaphore const &,
  71920. VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlagBits const &>
  71921. # endif
  71922. reflect() const VULKAN_HPP_NOEXCEPT
  71923. {
  71924. return std::tie( sType, pNext, semaphore, handleType );
  71925. }
  71926. # endif
  71927. # if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  71928. auto operator<=>( SemaphoreGetWin32HandleInfoKHR const & ) const = default;
  71929. # else
  71930. bool operator==( SemaphoreGetWin32HandleInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  71931. {
  71932. # if defined( VULKAN_HPP_USE_REFLECT )
  71933. return this->reflect() == rhs.reflect();
  71934. # else
  71935. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( semaphore == rhs.semaphore ) && ( handleType == rhs.handleType );
  71936. # endif
  71937. }
  71938. bool operator!=( SemaphoreGetWin32HandleInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  71939. {
  71940. return !operator==( rhs );
  71941. }
  71942. # endif
  71943. public:
  71944. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSemaphoreGetWin32HandleInfoKHR;
  71945. const void * pNext = {};
  71946. VULKAN_HPP_NAMESPACE::Semaphore semaphore = {};
  71947. VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlagBits handleType = VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlagBits::eOpaqueFd;
  71948. };
  71949. template <>
  71950. struct CppType<StructureType, StructureType::eSemaphoreGetWin32HandleInfoKHR>
  71951. {
  71952. using Type = SemaphoreGetWin32HandleInfoKHR;
  71953. };
  71954. #endif /*VK_USE_PLATFORM_WIN32_KHR*/
  71955. #if defined( VK_USE_PLATFORM_FUCHSIA )
  71956. struct SemaphoreGetZirconHandleInfoFUCHSIA
  71957. {
  71958. using NativeType = VkSemaphoreGetZirconHandleInfoFUCHSIA;
  71959. static const bool allowDuplicate = false;
  71960. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSemaphoreGetZirconHandleInfoFUCHSIA;
  71961. # if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  71962. VULKAN_HPP_CONSTEXPR SemaphoreGetZirconHandleInfoFUCHSIA(
  71963. VULKAN_HPP_NAMESPACE::Semaphore semaphore_ = {},
  71964. VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlagBits handleType_ = VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlagBits::eOpaqueFd,
  71965. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  71966. : pNext( pNext_ )
  71967. , semaphore( semaphore_ )
  71968. , handleType( handleType_ )
  71969. {
  71970. }
  71971. VULKAN_HPP_CONSTEXPR SemaphoreGetZirconHandleInfoFUCHSIA( SemaphoreGetZirconHandleInfoFUCHSIA const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  71972. SemaphoreGetZirconHandleInfoFUCHSIA( VkSemaphoreGetZirconHandleInfoFUCHSIA const & rhs ) VULKAN_HPP_NOEXCEPT
  71973. : SemaphoreGetZirconHandleInfoFUCHSIA( *reinterpret_cast<SemaphoreGetZirconHandleInfoFUCHSIA const *>( &rhs ) )
  71974. {
  71975. }
  71976. # endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  71977. SemaphoreGetZirconHandleInfoFUCHSIA & operator=( SemaphoreGetZirconHandleInfoFUCHSIA const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  71978. SemaphoreGetZirconHandleInfoFUCHSIA & operator=( VkSemaphoreGetZirconHandleInfoFUCHSIA const & rhs ) VULKAN_HPP_NOEXCEPT
  71979. {
  71980. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SemaphoreGetZirconHandleInfoFUCHSIA const *>( &rhs );
  71981. return *this;
  71982. }
  71983. # if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  71984. VULKAN_HPP_CONSTEXPR_14 SemaphoreGetZirconHandleInfoFUCHSIA & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  71985. {
  71986. pNext = pNext_;
  71987. return *this;
  71988. }
  71989. VULKAN_HPP_CONSTEXPR_14 SemaphoreGetZirconHandleInfoFUCHSIA & setSemaphore( VULKAN_HPP_NAMESPACE::Semaphore semaphore_ ) VULKAN_HPP_NOEXCEPT
  71990. {
  71991. semaphore = semaphore_;
  71992. return *this;
  71993. }
  71994. VULKAN_HPP_CONSTEXPR_14 SemaphoreGetZirconHandleInfoFUCHSIA &
  71995. setHandleType( VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlagBits handleType_ ) VULKAN_HPP_NOEXCEPT
  71996. {
  71997. handleType = handleType_;
  71998. return *this;
  71999. }
  72000. # endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  72001. operator VkSemaphoreGetZirconHandleInfoFUCHSIA const &() const VULKAN_HPP_NOEXCEPT
  72002. {
  72003. return *reinterpret_cast<const VkSemaphoreGetZirconHandleInfoFUCHSIA *>( this );
  72004. }
  72005. operator VkSemaphoreGetZirconHandleInfoFUCHSIA &() VULKAN_HPP_NOEXCEPT
  72006. {
  72007. return *reinterpret_cast<VkSemaphoreGetZirconHandleInfoFUCHSIA *>( this );
  72008. }
  72009. # if defined( VULKAN_HPP_USE_REFLECT )
  72010. # if 14 <= VULKAN_HPP_CPP_VERSION
  72011. auto
  72012. # else
  72013. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  72014. const void * const &,
  72015. VULKAN_HPP_NAMESPACE::Semaphore const &,
  72016. VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlagBits const &>
  72017. # endif
  72018. reflect() const VULKAN_HPP_NOEXCEPT
  72019. {
  72020. return std::tie( sType, pNext, semaphore, handleType );
  72021. }
  72022. # endif
  72023. # if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  72024. auto operator<=>( SemaphoreGetZirconHandleInfoFUCHSIA const & ) const = default;
  72025. # else
  72026. bool operator==( SemaphoreGetZirconHandleInfoFUCHSIA const & rhs ) const VULKAN_HPP_NOEXCEPT
  72027. {
  72028. # if defined( VULKAN_HPP_USE_REFLECT )
  72029. return this->reflect() == rhs.reflect();
  72030. # else
  72031. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( semaphore == rhs.semaphore ) && ( handleType == rhs.handleType );
  72032. # endif
  72033. }
  72034. bool operator!=( SemaphoreGetZirconHandleInfoFUCHSIA const & rhs ) const VULKAN_HPP_NOEXCEPT
  72035. {
  72036. return !operator==( rhs );
  72037. }
  72038. # endif
  72039. public:
  72040. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSemaphoreGetZirconHandleInfoFUCHSIA;
  72041. const void * pNext = {};
  72042. VULKAN_HPP_NAMESPACE::Semaphore semaphore = {};
  72043. VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlagBits handleType = VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlagBits::eOpaqueFd;
  72044. };
  72045. template <>
  72046. struct CppType<StructureType, StructureType::eSemaphoreGetZirconHandleInfoFUCHSIA>
  72047. {
  72048. using Type = SemaphoreGetZirconHandleInfoFUCHSIA;
  72049. };
  72050. #endif /*VK_USE_PLATFORM_FUCHSIA*/
  72051. struct SemaphoreSignalInfo
  72052. {
  72053. using NativeType = VkSemaphoreSignalInfo;
  72054. static const bool allowDuplicate = false;
  72055. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSemaphoreSignalInfo;
  72056. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  72057. VULKAN_HPP_CONSTEXPR
  72058. SemaphoreSignalInfo( VULKAN_HPP_NAMESPACE::Semaphore semaphore_ = {}, uint64_t value_ = {}, const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  72059. : pNext( pNext_ )
  72060. , semaphore( semaphore_ )
  72061. , value( value_ )
  72062. {
  72063. }
  72064. VULKAN_HPP_CONSTEXPR SemaphoreSignalInfo( SemaphoreSignalInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  72065. SemaphoreSignalInfo( VkSemaphoreSignalInfo const & rhs ) VULKAN_HPP_NOEXCEPT : SemaphoreSignalInfo( *reinterpret_cast<SemaphoreSignalInfo const *>( &rhs ) )
  72066. {
  72067. }
  72068. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  72069. SemaphoreSignalInfo & operator=( SemaphoreSignalInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  72070. SemaphoreSignalInfo & operator=( VkSemaphoreSignalInfo const & rhs ) VULKAN_HPP_NOEXCEPT
  72071. {
  72072. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SemaphoreSignalInfo const *>( &rhs );
  72073. return *this;
  72074. }
  72075. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  72076. VULKAN_HPP_CONSTEXPR_14 SemaphoreSignalInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  72077. {
  72078. pNext = pNext_;
  72079. return *this;
  72080. }
  72081. VULKAN_HPP_CONSTEXPR_14 SemaphoreSignalInfo & setSemaphore( VULKAN_HPP_NAMESPACE::Semaphore semaphore_ ) VULKAN_HPP_NOEXCEPT
  72082. {
  72083. semaphore = semaphore_;
  72084. return *this;
  72085. }
  72086. VULKAN_HPP_CONSTEXPR_14 SemaphoreSignalInfo & setValue( uint64_t value_ ) VULKAN_HPP_NOEXCEPT
  72087. {
  72088. value = value_;
  72089. return *this;
  72090. }
  72091. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  72092. operator VkSemaphoreSignalInfo const &() const VULKAN_HPP_NOEXCEPT
  72093. {
  72094. return *reinterpret_cast<const VkSemaphoreSignalInfo *>( this );
  72095. }
  72096. operator VkSemaphoreSignalInfo &() VULKAN_HPP_NOEXCEPT
  72097. {
  72098. return *reinterpret_cast<VkSemaphoreSignalInfo *>( this );
  72099. }
  72100. #if defined( VULKAN_HPP_USE_REFLECT )
  72101. # if 14 <= VULKAN_HPP_CPP_VERSION
  72102. auto
  72103. # else
  72104. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::Semaphore const &, uint64_t const &>
  72105. # endif
  72106. reflect() const VULKAN_HPP_NOEXCEPT
  72107. {
  72108. return std::tie( sType, pNext, semaphore, value );
  72109. }
  72110. #endif
  72111. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  72112. auto operator<=>( SemaphoreSignalInfo const & ) const = default;
  72113. #else
  72114. bool operator==( SemaphoreSignalInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  72115. {
  72116. # if defined( VULKAN_HPP_USE_REFLECT )
  72117. return this->reflect() == rhs.reflect();
  72118. # else
  72119. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( semaphore == rhs.semaphore ) && ( value == rhs.value );
  72120. # endif
  72121. }
  72122. bool operator!=( SemaphoreSignalInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  72123. {
  72124. return !operator==( rhs );
  72125. }
  72126. #endif
  72127. public:
  72128. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSemaphoreSignalInfo;
  72129. const void * pNext = {};
  72130. VULKAN_HPP_NAMESPACE::Semaphore semaphore = {};
  72131. uint64_t value = {};
  72132. };
  72133. template <>
  72134. struct CppType<StructureType, StructureType::eSemaphoreSignalInfo>
  72135. {
  72136. using Type = SemaphoreSignalInfo;
  72137. };
  72138. using SemaphoreSignalInfoKHR = SemaphoreSignalInfo;
  72139. struct SemaphoreSubmitInfo
  72140. {
  72141. using NativeType = VkSemaphoreSubmitInfo;
  72142. static const bool allowDuplicate = false;
  72143. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSemaphoreSubmitInfo;
  72144. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  72145. VULKAN_HPP_CONSTEXPR SemaphoreSubmitInfo( VULKAN_HPP_NAMESPACE::Semaphore semaphore_ = {},
  72146. uint64_t value_ = {},
  72147. VULKAN_HPP_NAMESPACE::PipelineStageFlags2 stageMask_ = {},
  72148. uint32_t deviceIndex_ = {},
  72149. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  72150. : pNext( pNext_ )
  72151. , semaphore( semaphore_ )
  72152. , value( value_ )
  72153. , stageMask( stageMask_ )
  72154. , deviceIndex( deviceIndex_ )
  72155. {
  72156. }
  72157. VULKAN_HPP_CONSTEXPR SemaphoreSubmitInfo( SemaphoreSubmitInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  72158. SemaphoreSubmitInfo( VkSemaphoreSubmitInfo const & rhs ) VULKAN_HPP_NOEXCEPT : SemaphoreSubmitInfo( *reinterpret_cast<SemaphoreSubmitInfo const *>( &rhs ) )
  72159. {
  72160. }
  72161. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  72162. SemaphoreSubmitInfo & operator=( SemaphoreSubmitInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  72163. SemaphoreSubmitInfo & operator=( VkSemaphoreSubmitInfo const & rhs ) VULKAN_HPP_NOEXCEPT
  72164. {
  72165. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SemaphoreSubmitInfo const *>( &rhs );
  72166. return *this;
  72167. }
  72168. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  72169. VULKAN_HPP_CONSTEXPR_14 SemaphoreSubmitInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  72170. {
  72171. pNext = pNext_;
  72172. return *this;
  72173. }
  72174. VULKAN_HPP_CONSTEXPR_14 SemaphoreSubmitInfo & setSemaphore( VULKAN_HPP_NAMESPACE::Semaphore semaphore_ ) VULKAN_HPP_NOEXCEPT
  72175. {
  72176. semaphore = semaphore_;
  72177. return *this;
  72178. }
  72179. VULKAN_HPP_CONSTEXPR_14 SemaphoreSubmitInfo & setValue( uint64_t value_ ) VULKAN_HPP_NOEXCEPT
  72180. {
  72181. value = value_;
  72182. return *this;
  72183. }
  72184. VULKAN_HPP_CONSTEXPR_14 SemaphoreSubmitInfo & setStageMask( VULKAN_HPP_NAMESPACE::PipelineStageFlags2 stageMask_ ) VULKAN_HPP_NOEXCEPT
  72185. {
  72186. stageMask = stageMask_;
  72187. return *this;
  72188. }
  72189. VULKAN_HPP_CONSTEXPR_14 SemaphoreSubmitInfo & setDeviceIndex( uint32_t deviceIndex_ ) VULKAN_HPP_NOEXCEPT
  72190. {
  72191. deviceIndex = deviceIndex_;
  72192. return *this;
  72193. }
  72194. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  72195. operator VkSemaphoreSubmitInfo const &() const VULKAN_HPP_NOEXCEPT
  72196. {
  72197. return *reinterpret_cast<const VkSemaphoreSubmitInfo *>( this );
  72198. }
  72199. operator VkSemaphoreSubmitInfo &() VULKAN_HPP_NOEXCEPT
  72200. {
  72201. return *reinterpret_cast<VkSemaphoreSubmitInfo *>( this );
  72202. }
  72203. #if defined( VULKAN_HPP_USE_REFLECT )
  72204. # if 14 <= VULKAN_HPP_CPP_VERSION
  72205. auto
  72206. # else
  72207. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  72208. const void * const &,
  72209. VULKAN_HPP_NAMESPACE::Semaphore const &,
  72210. uint64_t const &,
  72211. VULKAN_HPP_NAMESPACE::PipelineStageFlags2 const &,
  72212. uint32_t const &>
  72213. # endif
  72214. reflect() const VULKAN_HPP_NOEXCEPT
  72215. {
  72216. return std::tie( sType, pNext, semaphore, value, stageMask, deviceIndex );
  72217. }
  72218. #endif
  72219. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  72220. auto operator<=>( SemaphoreSubmitInfo const & ) const = default;
  72221. #else
  72222. bool operator==( SemaphoreSubmitInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  72223. {
  72224. # if defined( VULKAN_HPP_USE_REFLECT )
  72225. return this->reflect() == rhs.reflect();
  72226. # else
  72227. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( semaphore == rhs.semaphore ) && ( value == rhs.value ) && ( stageMask == rhs.stageMask ) &&
  72228. ( deviceIndex == rhs.deviceIndex );
  72229. # endif
  72230. }
  72231. bool operator!=( SemaphoreSubmitInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  72232. {
  72233. return !operator==( rhs );
  72234. }
  72235. #endif
  72236. public:
  72237. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSemaphoreSubmitInfo;
  72238. const void * pNext = {};
  72239. VULKAN_HPP_NAMESPACE::Semaphore semaphore = {};
  72240. uint64_t value = {};
  72241. VULKAN_HPP_NAMESPACE::PipelineStageFlags2 stageMask = {};
  72242. uint32_t deviceIndex = {};
  72243. };
  72244. template <>
  72245. struct CppType<StructureType, StructureType::eSemaphoreSubmitInfo>
  72246. {
  72247. using Type = SemaphoreSubmitInfo;
  72248. };
  72249. using SemaphoreSubmitInfoKHR = SemaphoreSubmitInfo;
  72250. struct SemaphoreTypeCreateInfo
  72251. {
  72252. using NativeType = VkSemaphoreTypeCreateInfo;
  72253. static const bool allowDuplicate = false;
  72254. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSemaphoreTypeCreateInfo;
  72255. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  72256. VULKAN_HPP_CONSTEXPR SemaphoreTypeCreateInfo( VULKAN_HPP_NAMESPACE::SemaphoreType semaphoreType_ = VULKAN_HPP_NAMESPACE::SemaphoreType::eBinary,
  72257. uint64_t initialValue_ = {},
  72258. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  72259. : pNext( pNext_ )
  72260. , semaphoreType( semaphoreType_ )
  72261. , initialValue( initialValue_ )
  72262. {
  72263. }
  72264. VULKAN_HPP_CONSTEXPR SemaphoreTypeCreateInfo( SemaphoreTypeCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  72265. SemaphoreTypeCreateInfo( VkSemaphoreTypeCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
  72266. : SemaphoreTypeCreateInfo( *reinterpret_cast<SemaphoreTypeCreateInfo const *>( &rhs ) )
  72267. {
  72268. }
  72269. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  72270. SemaphoreTypeCreateInfo & operator=( SemaphoreTypeCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  72271. SemaphoreTypeCreateInfo & operator=( VkSemaphoreTypeCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
  72272. {
  72273. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SemaphoreTypeCreateInfo const *>( &rhs );
  72274. return *this;
  72275. }
  72276. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  72277. VULKAN_HPP_CONSTEXPR_14 SemaphoreTypeCreateInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  72278. {
  72279. pNext = pNext_;
  72280. return *this;
  72281. }
  72282. VULKAN_HPP_CONSTEXPR_14 SemaphoreTypeCreateInfo & setSemaphoreType( VULKAN_HPP_NAMESPACE::SemaphoreType semaphoreType_ ) VULKAN_HPP_NOEXCEPT
  72283. {
  72284. semaphoreType = semaphoreType_;
  72285. return *this;
  72286. }
  72287. VULKAN_HPP_CONSTEXPR_14 SemaphoreTypeCreateInfo & setInitialValue( uint64_t initialValue_ ) VULKAN_HPP_NOEXCEPT
  72288. {
  72289. initialValue = initialValue_;
  72290. return *this;
  72291. }
  72292. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  72293. operator VkSemaphoreTypeCreateInfo const &() const VULKAN_HPP_NOEXCEPT
  72294. {
  72295. return *reinterpret_cast<const VkSemaphoreTypeCreateInfo *>( this );
  72296. }
  72297. operator VkSemaphoreTypeCreateInfo &() VULKAN_HPP_NOEXCEPT
  72298. {
  72299. return *reinterpret_cast<VkSemaphoreTypeCreateInfo *>( this );
  72300. }
  72301. #if defined( VULKAN_HPP_USE_REFLECT )
  72302. # if 14 <= VULKAN_HPP_CPP_VERSION
  72303. auto
  72304. # else
  72305. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::SemaphoreType const &, uint64_t const &>
  72306. # endif
  72307. reflect() const VULKAN_HPP_NOEXCEPT
  72308. {
  72309. return std::tie( sType, pNext, semaphoreType, initialValue );
  72310. }
  72311. #endif
  72312. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  72313. auto operator<=>( SemaphoreTypeCreateInfo const & ) const = default;
  72314. #else
  72315. bool operator==( SemaphoreTypeCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  72316. {
  72317. # if defined( VULKAN_HPP_USE_REFLECT )
  72318. return this->reflect() == rhs.reflect();
  72319. # else
  72320. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( semaphoreType == rhs.semaphoreType ) && ( initialValue == rhs.initialValue );
  72321. # endif
  72322. }
  72323. bool operator!=( SemaphoreTypeCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  72324. {
  72325. return !operator==( rhs );
  72326. }
  72327. #endif
  72328. public:
  72329. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSemaphoreTypeCreateInfo;
  72330. const void * pNext = {};
  72331. VULKAN_HPP_NAMESPACE::SemaphoreType semaphoreType = VULKAN_HPP_NAMESPACE::SemaphoreType::eBinary;
  72332. uint64_t initialValue = {};
  72333. };
  72334. template <>
  72335. struct CppType<StructureType, StructureType::eSemaphoreTypeCreateInfo>
  72336. {
  72337. using Type = SemaphoreTypeCreateInfo;
  72338. };
  72339. using SemaphoreTypeCreateInfoKHR = SemaphoreTypeCreateInfo;
  72340. struct SemaphoreWaitInfo
  72341. {
  72342. using NativeType = VkSemaphoreWaitInfo;
  72343. static const bool allowDuplicate = false;
  72344. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSemaphoreWaitInfo;
  72345. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  72346. VULKAN_HPP_CONSTEXPR SemaphoreWaitInfo( VULKAN_HPP_NAMESPACE::SemaphoreWaitFlags flags_ = {},
  72347. uint32_t semaphoreCount_ = {},
  72348. const VULKAN_HPP_NAMESPACE::Semaphore * pSemaphores_ = {},
  72349. const uint64_t * pValues_ = {},
  72350. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  72351. : pNext( pNext_ )
  72352. , flags( flags_ )
  72353. , semaphoreCount( semaphoreCount_ )
  72354. , pSemaphores( pSemaphores_ )
  72355. , pValues( pValues_ )
  72356. {
  72357. }
  72358. VULKAN_HPP_CONSTEXPR SemaphoreWaitInfo( SemaphoreWaitInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  72359. SemaphoreWaitInfo( VkSemaphoreWaitInfo const & rhs ) VULKAN_HPP_NOEXCEPT : SemaphoreWaitInfo( *reinterpret_cast<SemaphoreWaitInfo const *>( &rhs ) ) {}
  72360. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  72361. SemaphoreWaitInfo( VULKAN_HPP_NAMESPACE::SemaphoreWaitFlags flags_,
  72362. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::Semaphore> const & semaphores_,
  72363. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint64_t> const & values_ = {},
  72364. const void * pNext_ = nullptr )
  72365. : pNext( pNext_ )
  72366. , flags( flags_ )
  72367. , semaphoreCount( static_cast<uint32_t>( semaphores_.size() ) )
  72368. , pSemaphores( semaphores_.data() )
  72369. , pValues( values_.data() )
  72370. {
  72371. # ifdef VULKAN_HPP_NO_EXCEPTIONS
  72372. VULKAN_HPP_ASSERT( semaphores_.size() == values_.size() );
  72373. # else
  72374. if ( semaphores_.size() != values_.size() )
  72375. {
  72376. throw LogicError( VULKAN_HPP_NAMESPACE_STRING "::SemaphoreWaitInfo::SemaphoreWaitInfo: semaphores_.size() != values_.size()" );
  72377. }
  72378. # endif /*VULKAN_HPP_NO_EXCEPTIONS*/
  72379. }
  72380. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  72381. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  72382. SemaphoreWaitInfo & operator=( SemaphoreWaitInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  72383. SemaphoreWaitInfo & operator=( VkSemaphoreWaitInfo const & rhs ) VULKAN_HPP_NOEXCEPT
  72384. {
  72385. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SemaphoreWaitInfo const *>( &rhs );
  72386. return *this;
  72387. }
  72388. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  72389. VULKAN_HPP_CONSTEXPR_14 SemaphoreWaitInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  72390. {
  72391. pNext = pNext_;
  72392. return *this;
  72393. }
  72394. VULKAN_HPP_CONSTEXPR_14 SemaphoreWaitInfo & setFlags( VULKAN_HPP_NAMESPACE::SemaphoreWaitFlags flags_ ) VULKAN_HPP_NOEXCEPT
  72395. {
  72396. flags = flags_;
  72397. return *this;
  72398. }
  72399. VULKAN_HPP_CONSTEXPR_14 SemaphoreWaitInfo & setSemaphoreCount( uint32_t semaphoreCount_ ) VULKAN_HPP_NOEXCEPT
  72400. {
  72401. semaphoreCount = semaphoreCount_;
  72402. return *this;
  72403. }
  72404. VULKAN_HPP_CONSTEXPR_14 SemaphoreWaitInfo & setPSemaphores( const VULKAN_HPP_NAMESPACE::Semaphore * pSemaphores_ ) VULKAN_HPP_NOEXCEPT
  72405. {
  72406. pSemaphores = pSemaphores_;
  72407. return *this;
  72408. }
  72409. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  72410. SemaphoreWaitInfo &
  72411. setSemaphores( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::Semaphore> const & semaphores_ ) VULKAN_HPP_NOEXCEPT
  72412. {
  72413. semaphoreCount = static_cast<uint32_t>( semaphores_.size() );
  72414. pSemaphores = semaphores_.data();
  72415. return *this;
  72416. }
  72417. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  72418. VULKAN_HPP_CONSTEXPR_14 SemaphoreWaitInfo & setPValues( const uint64_t * pValues_ ) VULKAN_HPP_NOEXCEPT
  72419. {
  72420. pValues = pValues_;
  72421. return *this;
  72422. }
  72423. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  72424. SemaphoreWaitInfo & setValues( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint64_t> const & values_ ) VULKAN_HPP_NOEXCEPT
  72425. {
  72426. semaphoreCount = static_cast<uint32_t>( values_.size() );
  72427. pValues = values_.data();
  72428. return *this;
  72429. }
  72430. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  72431. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  72432. operator VkSemaphoreWaitInfo const &() const VULKAN_HPP_NOEXCEPT
  72433. {
  72434. return *reinterpret_cast<const VkSemaphoreWaitInfo *>( this );
  72435. }
  72436. operator VkSemaphoreWaitInfo &() VULKAN_HPP_NOEXCEPT
  72437. {
  72438. return *reinterpret_cast<VkSemaphoreWaitInfo *>( this );
  72439. }
  72440. #if defined( VULKAN_HPP_USE_REFLECT )
  72441. # if 14 <= VULKAN_HPP_CPP_VERSION
  72442. auto
  72443. # else
  72444. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  72445. const void * const &,
  72446. VULKAN_HPP_NAMESPACE::SemaphoreWaitFlags const &,
  72447. uint32_t const &,
  72448. const VULKAN_HPP_NAMESPACE::Semaphore * const &,
  72449. const uint64_t * const &>
  72450. # endif
  72451. reflect() const VULKAN_HPP_NOEXCEPT
  72452. {
  72453. return std::tie( sType, pNext, flags, semaphoreCount, pSemaphores, pValues );
  72454. }
  72455. #endif
  72456. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  72457. auto operator<=>( SemaphoreWaitInfo const & ) const = default;
  72458. #else
  72459. bool operator==( SemaphoreWaitInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  72460. {
  72461. # if defined( VULKAN_HPP_USE_REFLECT )
  72462. return this->reflect() == rhs.reflect();
  72463. # else
  72464. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( flags == rhs.flags ) && ( semaphoreCount == rhs.semaphoreCount ) &&
  72465. ( pSemaphores == rhs.pSemaphores ) && ( pValues == rhs.pValues );
  72466. # endif
  72467. }
  72468. bool operator!=( SemaphoreWaitInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  72469. {
  72470. return !operator==( rhs );
  72471. }
  72472. #endif
  72473. public:
  72474. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSemaphoreWaitInfo;
  72475. const void * pNext = {};
  72476. VULKAN_HPP_NAMESPACE::SemaphoreWaitFlags flags = {};
  72477. uint32_t semaphoreCount = {};
  72478. const VULKAN_HPP_NAMESPACE::Semaphore * pSemaphores = {};
  72479. const uint64_t * pValues = {};
  72480. };
  72481. template <>
  72482. struct CppType<StructureType, StructureType::eSemaphoreWaitInfo>
  72483. {
  72484. using Type = SemaphoreWaitInfo;
  72485. };
  72486. using SemaphoreWaitInfoKHR = SemaphoreWaitInfo;
  72487. struct SetStateFlagsIndirectCommandNV
  72488. {
  72489. using NativeType = VkSetStateFlagsIndirectCommandNV;
  72490. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  72491. VULKAN_HPP_CONSTEXPR SetStateFlagsIndirectCommandNV( uint32_t data_ = {} ) VULKAN_HPP_NOEXCEPT : data( data_ ) {}
  72492. VULKAN_HPP_CONSTEXPR SetStateFlagsIndirectCommandNV( SetStateFlagsIndirectCommandNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  72493. SetStateFlagsIndirectCommandNV( VkSetStateFlagsIndirectCommandNV const & rhs ) VULKAN_HPP_NOEXCEPT
  72494. : SetStateFlagsIndirectCommandNV( *reinterpret_cast<SetStateFlagsIndirectCommandNV const *>( &rhs ) )
  72495. {
  72496. }
  72497. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  72498. SetStateFlagsIndirectCommandNV & operator=( SetStateFlagsIndirectCommandNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  72499. SetStateFlagsIndirectCommandNV & operator=( VkSetStateFlagsIndirectCommandNV const & rhs ) VULKAN_HPP_NOEXCEPT
  72500. {
  72501. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SetStateFlagsIndirectCommandNV const *>( &rhs );
  72502. return *this;
  72503. }
  72504. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  72505. VULKAN_HPP_CONSTEXPR_14 SetStateFlagsIndirectCommandNV & setData( uint32_t data_ ) VULKAN_HPP_NOEXCEPT
  72506. {
  72507. data = data_;
  72508. return *this;
  72509. }
  72510. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  72511. operator VkSetStateFlagsIndirectCommandNV const &() const VULKAN_HPP_NOEXCEPT
  72512. {
  72513. return *reinterpret_cast<const VkSetStateFlagsIndirectCommandNV *>( this );
  72514. }
  72515. operator VkSetStateFlagsIndirectCommandNV &() VULKAN_HPP_NOEXCEPT
  72516. {
  72517. return *reinterpret_cast<VkSetStateFlagsIndirectCommandNV *>( this );
  72518. }
  72519. #if defined( VULKAN_HPP_USE_REFLECT )
  72520. # if 14 <= VULKAN_HPP_CPP_VERSION
  72521. auto
  72522. # else
  72523. std::tuple<uint32_t const &>
  72524. # endif
  72525. reflect() const VULKAN_HPP_NOEXCEPT
  72526. {
  72527. return std::tie( data );
  72528. }
  72529. #endif
  72530. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  72531. auto operator<=>( SetStateFlagsIndirectCommandNV const & ) const = default;
  72532. #else
  72533. bool operator==( SetStateFlagsIndirectCommandNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  72534. {
  72535. # if defined( VULKAN_HPP_USE_REFLECT )
  72536. return this->reflect() == rhs.reflect();
  72537. # else
  72538. return ( data == rhs.data );
  72539. # endif
  72540. }
  72541. bool operator!=( SetStateFlagsIndirectCommandNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  72542. {
  72543. return !operator==( rhs );
  72544. }
  72545. #endif
  72546. public:
  72547. uint32_t data = {};
  72548. };
  72549. struct ShaderModuleCreateInfo
  72550. {
  72551. using NativeType = VkShaderModuleCreateInfo;
  72552. static const bool allowDuplicate = false;
  72553. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eShaderModuleCreateInfo;
  72554. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  72555. VULKAN_HPP_CONSTEXPR ShaderModuleCreateInfo( VULKAN_HPP_NAMESPACE::ShaderModuleCreateFlags flags_ = {},
  72556. size_t codeSize_ = {},
  72557. const uint32_t * pCode_ = {},
  72558. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  72559. : pNext( pNext_ )
  72560. , flags( flags_ )
  72561. , codeSize( codeSize_ )
  72562. , pCode( pCode_ )
  72563. {
  72564. }
  72565. VULKAN_HPP_CONSTEXPR ShaderModuleCreateInfo( ShaderModuleCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  72566. ShaderModuleCreateInfo( VkShaderModuleCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
  72567. : ShaderModuleCreateInfo( *reinterpret_cast<ShaderModuleCreateInfo const *>( &rhs ) )
  72568. {
  72569. }
  72570. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  72571. ShaderModuleCreateInfo( VULKAN_HPP_NAMESPACE::ShaderModuleCreateFlags flags_,
  72572. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint32_t> const & code_,
  72573. const void * pNext_ = nullptr )
  72574. : pNext( pNext_ ), flags( flags_ ), codeSize( code_.size() * 4 ), pCode( code_.data() )
  72575. {
  72576. }
  72577. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  72578. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  72579. ShaderModuleCreateInfo & operator=( ShaderModuleCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  72580. ShaderModuleCreateInfo & operator=( VkShaderModuleCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
  72581. {
  72582. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ShaderModuleCreateInfo const *>( &rhs );
  72583. return *this;
  72584. }
  72585. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  72586. VULKAN_HPP_CONSTEXPR_14 ShaderModuleCreateInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  72587. {
  72588. pNext = pNext_;
  72589. return *this;
  72590. }
  72591. VULKAN_HPP_CONSTEXPR_14 ShaderModuleCreateInfo & setFlags( VULKAN_HPP_NAMESPACE::ShaderModuleCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT
  72592. {
  72593. flags = flags_;
  72594. return *this;
  72595. }
  72596. VULKAN_HPP_CONSTEXPR_14 ShaderModuleCreateInfo & setCodeSize( size_t codeSize_ ) VULKAN_HPP_NOEXCEPT
  72597. {
  72598. codeSize = codeSize_;
  72599. return *this;
  72600. }
  72601. VULKAN_HPP_CONSTEXPR_14 ShaderModuleCreateInfo & setPCode( const uint32_t * pCode_ ) VULKAN_HPP_NOEXCEPT
  72602. {
  72603. pCode = pCode_;
  72604. return *this;
  72605. }
  72606. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  72607. ShaderModuleCreateInfo & setCode( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint32_t> const & code_ ) VULKAN_HPP_NOEXCEPT
  72608. {
  72609. codeSize = code_.size() * 4;
  72610. pCode = code_.data();
  72611. return *this;
  72612. }
  72613. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  72614. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  72615. operator VkShaderModuleCreateInfo const &() const VULKAN_HPP_NOEXCEPT
  72616. {
  72617. return *reinterpret_cast<const VkShaderModuleCreateInfo *>( this );
  72618. }
  72619. operator VkShaderModuleCreateInfo &() VULKAN_HPP_NOEXCEPT
  72620. {
  72621. return *reinterpret_cast<VkShaderModuleCreateInfo *>( this );
  72622. }
  72623. #if defined( VULKAN_HPP_USE_REFLECT )
  72624. # if 14 <= VULKAN_HPP_CPP_VERSION
  72625. auto
  72626. # else
  72627. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  72628. const void * const &,
  72629. VULKAN_HPP_NAMESPACE::ShaderModuleCreateFlags const &,
  72630. size_t const &,
  72631. const uint32_t * const &>
  72632. # endif
  72633. reflect() const VULKAN_HPP_NOEXCEPT
  72634. {
  72635. return std::tie( sType, pNext, flags, codeSize, pCode );
  72636. }
  72637. #endif
  72638. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  72639. auto operator<=>( ShaderModuleCreateInfo const & ) const = default;
  72640. #else
  72641. bool operator==( ShaderModuleCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  72642. {
  72643. # if defined( VULKAN_HPP_USE_REFLECT )
  72644. return this->reflect() == rhs.reflect();
  72645. # else
  72646. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( flags == rhs.flags ) && ( codeSize == rhs.codeSize ) && ( pCode == rhs.pCode );
  72647. # endif
  72648. }
  72649. bool operator!=( ShaderModuleCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  72650. {
  72651. return !operator==( rhs );
  72652. }
  72653. #endif
  72654. public:
  72655. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eShaderModuleCreateInfo;
  72656. const void * pNext = {};
  72657. VULKAN_HPP_NAMESPACE::ShaderModuleCreateFlags flags = {};
  72658. size_t codeSize = {};
  72659. const uint32_t * pCode = {};
  72660. };
  72661. template <>
  72662. struct CppType<StructureType, StructureType::eShaderModuleCreateInfo>
  72663. {
  72664. using Type = ShaderModuleCreateInfo;
  72665. };
  72666. struct ShaderModuleIdentifierEXT
  72667. {
  72668. using NativeType = VkShaderModuleIdentifierEXT;
  72669. static const bool allowDuplicate = false;
  72670. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eShaderModuleIdentifierEXT;
  72671. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  72672. VULKAN_HPP_CONSTEXPR_14 ShaderModuleIdentifierEXT( uint32_t identifierSize_ = {},
  72673. std::array<uint8_t, VK_MAX_SHADER_MODULE_IDENTIFIER_SIZE_EXT> const & identifier_ = {},
  72674. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  72675. : pNext( pNext_ )
  72676. , identifierSize( identifierSize_ )
  72677. , identifier( identifier_ )
  72678. {
  72679. }
  72680. VULKAN_HPP_CONSTEXPR_14 ShaderModuleIdentifierEXT( ShaderModuleIdentifierEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  72681. ShaderModuleIdentifierEXT( VkShaderModuleIdentifierEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  72682. : ShaderModuleIdentifierEXT( *reinterpret_cast<ShaderModuleIdentifierEXT const *>( &rhs ) )
  72683. {
  72684. }
  72685. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  72686. ShaderModuleIdentifierEXT & operator=( ShaderModuleIdentifierEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  72687. ShaderModuleIdentifierEXT & operator=( VkShaderModuleIdentifierEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  72688. {
  72689. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ShaderModuleIdentifierEXT const *>( &rhs );
  72690. return *this;
  72691. }
  72692. operator VkShaderModuleIdentifierEXT const &() const VULKAN_HPP_NOEXCEPT
  72693. {
  72694. return *reinterpret_cast<const VkShaderModuleIdentifierEXT *>( this );
  72695. }
  72696. operator VkShaderModuleIdentifierEXT &() VULKAN_HPP_NOEXCEPT
  72697. {
  72698. return *reinterpret_cast<VkShaderModuleIdentifierEXT *>( this );
  72699. }
  72700. #if defined( VULKAN_HPP_USE_REFLECT )
  72701. # if 14 <= VULKAN_HPP_CPP_VERSION
  72702. auto
  72703. # else
  72704. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  72705. void * const &,
  72706. uint32_t const &,
  72707. VULKAN_HPP_NAMESPACE::ArrayWrapper1D<uint8_t, VK_MAX_SHADER_MODULE_IDENTIFIER_SIZE_EXT> const &>
  72708. # endif
  72709. reflect() const VULKAN_HPP_NOEXCEPT
  72710. {
  72711. return std::tie( sType, pNext, identifierSize, identifier );
  72712. }
  72713. #endif
  72714. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  72715. auto operator<=>( ShaderModuleIdentifierEXT const & ) const = default;
  72716. #else
  72717. bool operator==( ShaderModuleIdentifierEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  72718. {
  72719. # if defined( VULKAN_HPP_USE_REFLECT )
  72720. return this->reflect() == rhs.reflect();
  72721. # else
  72722. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( identifierSize == rhs.identifierSize ) && ( identifier == rhs.identifier );
  72723. # endif
  72724. }
  72725. bool operator!=( ShaderModuleIdentifierEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  72726. {
  72727. return !operator==( rhs );
  72728. }
  72729. #endif
  72730. public:
  72731. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eShaderModuleIdentifierEXT;
  72732. void * pNext = {};
  72733. uint32_t identifierSize = {};
  72734. VULKAN_HPP_NAMESPACE::ArrayWrapper1D<uint8_t, VK_MAX_SHADER_MODULE_IDENTIFIER_SIZE_EXT> identifier = {};
  72735. };
  72736. template <>
  72737. struct CppType<StructureType, StructureType::eShaderModuleIdentifierEXT>
  72738. {
  72739. using Type = ShaderModuleIdentifierEXT;
  72740. };
  72741. struct ShaderModuleValidationCacheCreateInfoEXT
  72742. {
  72743. using NativeType = VkShaderModuleValidationCacheCreateInfoEXT;
  72744. static const bool allowDuplicate = false;
  72745. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eShaderModuleValidationCacheCreateInfoEXT;
  72746. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  72747. VULKAN_HPP_CONSTEXPR ShaderModuleValidationCacheCreateInfoEXT( VULKAN_HPP_NAMESPACE::ValidationCacheEXT validationCache_ = {},
  72748. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  72749. : pNext( pNext_ )
  72750. , validationCache( validationCache_ )
  72751. {
  72752. }
  72753. VULKAN_HPP_CONSTEXPR ShaderModuleValidationCacheCreateInfoEXT( ShaderModuleValidationCacheCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  72754. ShaderModuleValidationCacheCreateInfoEXT( VkShaderModuleValidationCacheCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  72755. : ShaderModuleValidationCacheCreateInfoEXT( *reinterpret_cast<ShaderModuleValidationCacheCreateInfoEXT const *>( &rhs ) )
  72756. {
  72757. }
  72758. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  72759. ShaderModuleValidationCacheCreateInfoEXT & operator=( ShaderModuleValidationCacheCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  72760. ShaderModuleValidationCacheCreateInfoEXT & operator=( VkShaderModuleValidationCacheCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  72761. {
  72762. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ShaderModuleValidationCacheCreateInfoEXT const *>( &rhs );
  72763. return *this;
  72764. }
  72765. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  72766. VULKAN_HPP_CONSTEXPR_14 ShaderModuleValidationCacheCreateInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  72767. {
  72768. pNext = pNext_;
  72769. return *this;
  72770. }
  72771. VULKAN_HPP_CONSTEXPR_14 ShaderModuleValidationCacheCreateInfoEXT &
  72772. setValidationCache( VULKAN_HPP_NAMESPACE::ValidationCacheEXT validationCache_ ) VULKAN_HPP_NOEXCEPT
  72773. {
  72774. validationCache = validationCache_;
  72775. return *this;
  72776. }
  72777. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  72778. operator VkShaderModuleValidationCacheCreateInfoEXT const &() const VULKAN_HPP_NOEXCEPT
  72779. {
  72780. return *reinterpret_cast<const VkShaderModuleValidationCacheCreateInfoEXT *>( this );
  72781. }
  72782. operator VkShaderModuleValidationCacheCreateInfoEXT &() VULKAN_HPP_NOEXCEPT
  72783. {
  72784. return *reinterpret_cast<VkShaderModuleValidationCacheCreateInfoEXT *>( this );
  72785. }
  72786. #if defined( VULKAN_HPP_USE_REFLECT )
  72787. # if 14 <= VULKAN_HPP_CPP_VERSION
  72788. auto
  72789. # else
  72790. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::ValidationCacheEXT const &>
  72791. # endif
  72792. reflect() const VULKAN_HPP_NOEXCEPT
  72793. {
  72794. return std::tie( sType, pNext, validationCache );
  72795. }
  72796. #endif
  72797. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  72798. auto operator<=>( ShaderModuleValidationCacheCreateInfoEXT const & ) const = default;
  72799. #else
  72800. bool operator==( ShaderModuleValidationCacheCreateInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  72801. {
  72802. # if defined( VULKAN_HPP_USE_REFLECT )
  72803. return this->reflect() == rhs.reflect();
  72804. # else
  72805. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( validationCache == rhs.validationCache );
  72806. # endif
  72807. }
  72808. bool operator!=( ShaderModuleValidationCacheCreateInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  72809. {
  72810. return !operator==( rhs );
  72811. }
  72812. #endif
  72813. public:
  72814. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eShaderModuleValidationCacheCreateInfoEXT;
  72815. const void * pNext = {};
  72816. VULKAN_HPP_NAMESPACE::ValidationCacheEXT validationCache = {};
  72817. };
  72818. template <>
  72819. struct CppType<StructureType, StructureType::eShaderModuleValidationCacheCreateInfoEXT>
  72820. {
  72821. using Type = ShaderModuleValidationCacheCreateInfoEXT;
  72822. };
  72823. struct ShaderResourceUsageAMD
  72824. {
  72825. using NativeType = VkShaderResourceUsageAMD;
  72826. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  72827. VULKAN_HPP_CONSTEXPR ShaderResourceUsageAMD( uint32_t numUsedVgprs_ = {},
  72828. uint32_t numUsedSgprs_ = {},
  72829. uint32_t ldsSizePerLocalWorkGroup_ = {},
  72830. size_t ldsUsageSizeInBytes_ = {},
  72831. size_t scratchMemUsageInBytes_ = {} ) VULKAN_HPP_NOEXCEPT
  72832. : numUsedVgprs( numUsedVgprs_ )
  72833. , numUsedSgprs( numUsedSgprs_ )
  72834. , ldsSizePerLocalWorkGroup( ldsSizePerLocalWorkGroup_ )
  72835. , ldsUsageSizeInBytes( ldsUsageSizeInBytes_ )
  72836. , scratchMemUsageInBytes( scratchMemUsageInBytes_ )
  72837. {
  72838. }
  72839. VULKAN_HPP_CONSTEXPR ShaderResourceUsageAMD( ShaderResourceUsageAMD const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  72840. ShaderResourceUsageAMD( VkShaderResourceUsageAMD const & rhs ) VULKAN_HPP_NOEXCEPT
  72841. : ShaderResourceUsageAMD( *reinterpret_cast<ShaderResourceUsageAMD const *>( &rhs ) )
  72842. {
  72843. }
  72844. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  72845. ShaderResourceUsageAMD & operator=( ShaderResourceUsageAMD const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  72846. ShaderResourceUsageAMD & operator=( VkShaderResourceUsageAMD const & rhs ) VULKAN_HPP_NOEXCEPT
  72847. {
  72848. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ShaderResourceUsageAMD const *>( &rhs );
  72849. return *this;
  72850. }
  72851. operator VkShaderResourceUsageAMD const &() const VULKAN_HPP_NOEXCEPT
  72852. {
  72853. return *reinterpret_cast<const VkShaderResourceUsageAMD *>( this );
  72854. }
  72855. operator VkShaderResourceUsageAMD &() VULKAN_HPP_NOEXCEPT
  72856. {
  72857. return *reinterpret_cast<VkShaderResourceUsageAMD *>( this );
  72858. }
  72859. #if defined( VULKAN_HPP_USE_REFLECT )
  72860. # if 14 <= VULKAN_HPP_CPP_VERSION
  72861. auto
  72862. # else
  72863. std::tuple<uint32_t const &, uint32_t const &, uint32_t const &, size_t const &, size_t const &>
  72864. # endif
  72865. reflect() const VULKAN_HPP_NOEXCEPT
  72866. {
  72867. return std::tie( numUsedVgprs, numUsedSgprs, ldsSizePerLocalWorkGroup, ldsUsageSizeInBytes, scratchMemUsageInBytes );
  72868. }
  72869. #endif
  72870. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  72871. auto operator<=>( ShaderResourceUsageAMD const & ) const = default;
  72872. #else
  72873. bool operator==( ShaderResourceUsageAMD const & rhs ) const VULKAN_HPP_NOEXCEPT
  72874. {
  72875. # if defined( VULKAN_HPP_USE_REFLECT )
  72876. return this->reflect() == rhs.reflect();
  72877. # else
  72878. return ( numUsedVgprs == rhs.numUsedVgprs ) && ( numUsedSgprs == rhs.numUsedSgprs ) && ( ldsSizePerLocalWorkGroup == rhs.ldsSizePerLocalWorkGroup ) &&
  72879. ( ldsUsageSizeInBytes == rhs.ldsUsageSizeInBytes ) && ( scratchMemUsageInBytes == rhs.scratchMemUsageInBytes );
  72880. # endif
  72881. }
  72882. bool operator!=( ShaderResourceUsageAMD const & rhs ) const VULKAN_HPP_NOEXCEPT
  72883. {
  72884. return !operator==( rhs );
  72885. }
  72886. #endif
  72887. public:
  72888. uint32_t numUsedVgprs = {};
  72889. uint32_t numUsedSgprs = {};
  72890. uint32_t ldsSizePerLocalWorkGroup = {};
  72891. size_t ldsUsageSizeInBytes = {};
  72892. size_t scratchMemUsageInBytes = {};
  72893. };
  72894. struct ShaderStatisticsInfoAMD
  72895. {
  72896. using NativeType = VkShaderStatisticsInfoAMD;
  72897. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  72898. VULKAN_HPP_CONSTEXPR_14 ShaderStatisticsInfoAMD( VULKAN_HPP_NAMESPACE::ShaderStageFlags shaderStageMask_ = {},
  72899. VULKAN_HPP_NAMESPACE::ShaderResourceUsageAMD resourceUsage_ = {},
  72900. uint32_t numPhysicalVgprs_ = {},
  72901. uint32_t numPhysicalSgprs_ = {},
  72902. uint32_t numAvailableVgprs_ = {},
  72903. uint32_t numAvailableSgprs_ = {},
  72904. std::array<uint32_t, 3> const & computeWorkGroupSize_ = {} ) VULKAN_HPP_NOEXCEPT
  72905. : shaderStageMask( shaderStageMask_ )
  72906. , resourceUsage( resourceUsage_ )
  72907. , numPhysicalVgprs( numPhysicalVgprs_ )
  72908. , numPhysicalSgprs( numPhysicalSgprs_ )
  72909. , numAvailableVgprs( numAvailableVgprs_ )
  72910. , numAvailableSgprs( numAvailableSgprs_ )
  72911. , computeWorkGroupSize( computeWorkGroupSize_ )
  72912. {
  72913. }
  72914. VULKAN_HPP_CONSTEXPR_14 ShaderStatisticsInfoAMD( ShaderStatisticsInfoAMD const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  72915. ShaderStatisticsInfoAMD( VkShaderStatisticsInfoAMD const & rhs ) VULKAN_HPP_NOEXCEPT
  72916. : ShaderStatisticsInfoAMD( *reinterpret_cast<ShaderStatisticsInfoAMD const *>( &rhs ) )
  72917. {
  72918. }
  72919. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  72920. ShaderStatisticsInfoAMD & operator=( ShaderStatisticsInfoAMD const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  72921. ShaderStatisticsInfoAMD & operator=( VkShaderStatisticsInfoAMD const & rhs ) VULKAN_HPP_NOEXCEPT
  72922. {
  72923. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ShaderStatisticsInfoAMD const *>( &rhs );
  72924. return *this;
  72925. }
  72926. operator VkShaderStatisticsInfoAMD const &() const VULKAN_HPP_NOEXCEPT
  72927. {
  72928. return *reinterpret_cast<const VkShaderStatisticsInfoAMD *>( this );
  72929. }
  72930. operator VkShaderStatisticsInfoAMD &() VULKAN_HPP_NOEXCEPT
  72931. {
  72932. return *reinterpret_cast<VkShaderStatisticsInfoAMD *>( this );
  72933. }
  72934. #if defined( VULKAN_HPP_USE_REFLECT )
  72935. # if 14 <= VULKAN_HPP_CPP_VERSION
  72936. auto
  72937. # else
  72938. std::tuple<VULKAN_HPP_NAMESPACE::ShaderStageFlags const &,
  72939. VULKAN_HPP_NAMESPACE::ShaderResourceUsageAMD const &,
  72940. uint32_t const &,
  72941. uint32_t const &,
  72942. uint32_t const &,
  72943. uint32_t const &,
  72944. VULKAN_HPP_NAMESPACE::ArrayWrapper1D<uint32_t, 3> const &>
  72945. # endif
  72946. reflect() const VULKAN_HPP_NOEXCEPT
  72947. {
  72948. return std::tie( shaderStageMask, resourceUsage, numPhysicalVgprs, numPhysicalSgprs, numAvailableVgprs, numAvailableSgprs, computeWorkGroupSize );
  72949. }
  72950. #endif
  72951. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  72952. auto operator<=>( ShaderStatisticsInfoAMD const & ) const = default;
  72953. #else
  72954. bool operator==( ShaderStatisticsInfoAMD const & rhs ) const VULKAN_HPP_NOEXCEPT
  72955. {
  72956. # if defined( VULKAN_HPP_USE_REFLECT )
  72957. return this->reflect() == rhs.reflect();
  72958. # else
  72959. return ( shaderStageMask == rhs.shaderStageMask ) && ( resourceUsage == rhs.resourceUsage ) && ( numPhysicalVgprs == rhs.numPhysicalVgprs ) &&
  72960. ( numPhysicalSgprs == rhs.numPhysicalSgprs ) && ( numAvailableVgprs == rhs.numAvailableVgprs ) && ( numAvailableSgprs == rhs.numAvailableSgprs ) &&
  72961. ( computeWorkGroupSize == rhs.computeWorkGroupSize );
  72962. # endif
  72963. }
  72964. bool operator!=( ShaderStatisticsInfoAMD const & rhs ) const VULKAN_HPP_NOEXCEPT
  72965. {
  72966. return !operator==( rhs );
  72967. }
  72968. #endif
  72969. public:
  72970. VULKAN_HPP_NAMESPACE::ShaderStageFlags shaderStageMask = {};
  72971. VULKAN_HPP_NAMESPACE::ShaderResourceUsageAMD resourceUsage = {};
  72972. uint32_t numPhysicalVgprs = {};
  72973. uint32_t numPhysicalSgprs = {};
  72974. uint32_t numAvailableVgprs = {};
  72975. uint32_t numAvailableSgprs = {};
  72976. VULKAN_HPP_NAMESPACE::ArrayWrapper1D<uint32_t, 3> computeWorkGroupSize = {};
  72977. };
  72978. struct SharedPresentSurfaceCapabilitiesKHR
  72979. {
  72980. using NativeType = VkSharedPresentSurfaceCapabilitiesKHR;
  72981. static const bool allowDuplicate = false;
  72982. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSharedPresentSurfaceCapabilitiesKHR;
  72983. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  72984. VULKAN_HPP_CONSTEXPR SharedPresentSurfaceCapabilitiesKHR( VULKAN_HPP_NAMESPACE::ImageUsageFlags sharedPresentSupportedUsageFlags_ = {},
  72985. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  72986. : pNext( pNext_ )
  72987. , sharedPresentSupportedUsageFlags( sharedPresentSupportedUsageFlags_ )
  72988. {
  72989. }
  72990. VULKAN_HPP_CONSTEXPR SharedPresentSurfaceCapabilitiesKHR( SharedPresentSurfaceCapabilitiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  72991. SharedPresentSurfaceCapabilitiesKHR( VkSharedPresentSurfaceCapabilitiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  72992. : SharedPresentSurfaceCapabilitiesKHR( *reinterpret_cast<SharedPresentSurfaceCapabilitiesKHR const *>( &rhs ) )
  72993. {
  72994. }
  72995. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  72996. SharedPresentSurfaceCapabilitiesKHR & operator=( SharedPresentSurfaceCapabilitiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  72997. SharedPresentSurfaceCapabilitiesKHR & operator=( VkSharedPresentSurfaceCapabilitiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  72998. {
  72999. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SharedPresentSurfaceCapabilitiesKHR const *>( &rhs );
  73000. return *this;
  73001. }
  73002. operator VkSharedPresentSurfaceCapabilitiesKHR const &() const VULKAN_HPP_NOEXCEPT
  73003. {
  73004. return *reinterpret_cast<const VkSharedPresentSurfaceCapabilitiesKHR *>( this );
  73005. }
  73006. operator VkSharedPresentSurfaceCapabilitiesKHR &() VULKAN_HPP_NOEXCEPT
  73007. {
  73008. return *reinterpret_cast<VkSharedPresentSurfaceCapabilitiesKHR *>( this );
  73009. }
  73010. #if defined( VULKAN_HPP_USE_REFLECT )
  73011. # if 14 <= VULKAN_HPP_CPP_VERSION
  73012. auto
  73013. # else
  73014. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::ImageUsageFlags const &>
  73015. # endif
  73016. reflect() const VULKAN_HPP_NOEXCEPT
  73017. {
  73018. return std::tie( sType, pNext, sharedPresentSupportedUsageFlags );
  73019. }
  73020. #endif
  73021. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  73022. auto operator<=>( SharedPresentSurfaceCapabilitiesKHR const & ) const = default;
  73023. #else
  73024. bool operator==( SharedPresentSurfaceCapabilitiesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  73025. {
  73026. # if defined( VULKAN_HPP_USE_REFLECT )
  73027. return this->reflect() == rhs.reflect();
  73028. # else
  73029. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( sharedPresentSupportedUsageFlags == rhs.sharedPresentSupportedUsageFlags );
  73030. # endif
  73031. }
  73032. bool operator!=( SharedPresentSurfaceCapabilitiesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  73033. {
  73034. return !operator==( rhs );
  73035. }
  73036. #endif
  73037. public:
  73038. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSharedPresentSurfaceCapabilitiesKHR;
  73039. void * pNext = {};
  73040. VULKAN_HPP_NAMESPACE::ImageUsageFlags sharedPresentSupportedUsageFlags = {};
  73041. };
  73042. template <>
  73043. struct CppType<StructureType, StructureType::eSharedPresentSurfaceCapabilitiesKHR>
  73044. {
  73045. using Type = SharedPresentSurfaceCapabilitiesKHR;
  73046. };
  73047. struct SparseImageFormatProperties
  73048. {
  73049. using NativeType = VkSparseImageFormatProperties;
  73050. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  73051. VULKAN_HPP_CONSTEXPR SparseImageFormatProperties( VULKAN_HPP_NAMESPACE::ImageAspectFlags aspectMask_ = {},
  73052. VULKAN_HPP_NAMESPACE::Extent3D imageGranularity_ = {},
  73053. VULKAN_HPP_NAMESPACE::SparseImageFormatFlags flags_ = {} ) VULKAN_HPP_NOEXCEPT
  73054. : aspectMask( aspectMask_ )
  73055. , imageGranularity( imageGranularity_ )
  73056. , flags( flags_ )
  73057. {
  73058. }
  73059. VULKAN_HPP_CONSTEXPR SparseImageFormatProperties( SparseImageFormatProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  73060. SparseImageFormatProperties( VkSparseImageFormatProperties const & rhs ) VULKAN_HPP_NOEXCEPT
  73061. : SparseImageFormatProperties( *reinterpret_cast<SparseImageFormatProperties const *>( &rhs ) )
  73062. {
  73063. }
  73064. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  73065. SparseImageFormatProperties & operator=( SparseImageFormatProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  73066. SparseImageFormatProperties & operator=( VkSparseImageFormatProperties const & rhs ) VULKAN_HPP_NOEXCEPT
  73067. {
  73068. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SparseImageFormatProperties const *>( &rhs );
  73069. return *this;
  73070. }
  73071. operator VkSparseImageFormatProperties const &() const VULKAN_HPP_NOEXCEPT
  73072. {
  73073. return *reinterpret_cast<const VkSparseImageFormatProperties *>( this );
  73074. }
  73075. operator VkSparseImageFormatProperties &() VULKAN_HPP_NOEXCEPT
  73076. {
  73077. return *reinterpret_cast<VkSparseImageFormatProperties *>( this );
  73078. }
  73079. #if defined( VULKAN_HPP_USE_REFLECT )
  73080. # if 14 <= VULKAN_HPP_CPP_VERSION
  73081. auto
  73082. # else
  73083. std::tuple<VULKAN_HPP_NAMESPACE::ImageAspectFlags const &, VULKAN_HPP_NAMESPACE::Extent3D const &, VULKAN_HPP_NAMESPACE::SparseImageFormatFlags const &>
  73084. # endif
  73085. reflect() const VULKAN_HPP_NOEXCEPT
  73086. {
  73087. return std::tie( aspectMask, imageGranularity, flags );
  73088. }
  73089. #endif
  73090. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  73091. auto operator<=>( SparseImageFormatProperties const & ) const = default;
  73092. #else
  73093. bool operator==( SparseImageFormatProperties const & rhs ) const VULKAN_HPP_NOEXCEPT
  73094. {
  73095. # if defined( VULKAN_HPP_USE_REFLECT )
  73096. return this->reflect() == rhs.reflect();
  73097. # else
  73098. return ( aspectMask == rhs.aspectMask ) && ( imageGranularity == rhs.imageGranularity ) && ( flags == rhs.flags );
  73099. # endif
  73100. }
  73101. bool operator!=( SparseImageFormatProperties const & rhs ) const VULKAN_HPP_NOEXCEPT
  73102. {
  73103. return !operator==( rhs );
  73104. }
  73105. #endif
  73106. public:
  73107. VULKAN_HPP_NAMESPACE::ImageAspectFlags aspectMask = {};
  73108. VULKAN_HPP_NAMESPACE::Extent3D imageGranularity = {};
  73109. VULKAN_HPP_NAMESPACE::SparseImageFormatFlags flags = {};
  73110. };
  73111. struct SparseImageFormatProperties2
  73112. {
  73113. using NativeType = VkSparseImageFormatProperties2;
  73114. static const bool allowDuplicate = false;
  73115. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSparseImageFormatProperties2;
  73116. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  73117. VULKAN_HPP_CONSTEXPR SparseImageFormatProperties2( VULKAN_HPP_NAMESPACE::SparseImageFormatProperties properties_ = {},
  73118. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  73119. : pNext( pNext_ )
  73120. , properties( properties_ )
  73121. {
  73122. }
  73123. VULKAN_HPP_CONSTEXPR SparseImageFormatProperties2( SparseImageFormatProperties2 const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  73124. SparseImageFormatProperties2( VkSparseImageFormatProperties2 const & rhs ) VULKAN_HPP_NOEXCEPT
  73125. : SparseImageFormatProperties2( *reinterpret_cast<SparseImageFormatProperties2 const *>( &rhs ) )
  73126. {
  73127. }
  73128. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  73129. SparseImageFormatProperties2 & operator=( SparseImageFormatProperties2 const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  73130. SparseImageFormatProperties2 & operator=( VkSparseImageFormatProperties2 const & rhs ) VULKAN_HPP_NOEXCEPT
  73131. {
  73132. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SparseImageFormatProperties2 const *>( &rhs );
  73133. return *this;
  73134. }
  73135. operator VkSparseImageFormatProperties2 const &() const VULKAN_HPP_NOEXCEPT
  73136. {
  73137. return *reinterpret_cast<const VkSparseImageFormatProperties2 *>( this );
  73138. }
  73139. operator VkSparseImageFormatProperties2 &() VULKAN_HPP_NOEXCEPT
  73140. {
  73141. return *reinterpret_cast<VkSparseImageFormatProperties2 *>( this );
  73142. }
  73143. #if defined( VULKAN_HPP_USE_REFLECT )
  73144. # if 14 <= VULKAN_HPP_CPP_VERSION
  73145. auto
  73146. # else
  73147. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::SparseImageFormatProperties const &>
  73148. # endif
  73149. reflect() const VULKAN_HPP_NOEXCEPT
  73150. {
  73151. return std::tie( sType, pNext, properties );
  73152. }
  73153. #endif
  73154. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  73155. auto operator<=>( SparseImageFormatProperties2 const & ) const = default;
  73156. #else
  73157. bool operator==( SparseImageFormatProperties2 const & rhs ) const VULKAN_HPP_NOEXCEPT
  73158. {
  73159. # if defined( VULKAN_HPP_USE_REFLECT )
  73160. return this->reflect() == rhs.reflect();
  73161. # else
  73162. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( properties == rhs.properties );
  73163. # endif
  73164. }
  73165. bool operator!=( SparseImageFormatProperties2 const & rhs ) const VULKAN_HPP_NOEXCEPT
  73166. {
  73167. return !operator==( rhs );
  73168. }
  73169. #endif
  73170. public:
  73171. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSparseImageFormatProperties2;
  73172. void * pNext = {};
  73173. VULKAN_HPP_NAMESPACE::SparseImageFormatProperties properties = {};
  73174. };
  73175. template <>
  73176. struct CppType<StructureType, StructureType::eSparseImageFormatProperties2>
  73177. {
  73178. using Type = SparseImageFormatProperties2;
  73179. };
  73180. using SparseImageFormatProperties2KHR = SparseImageFormatProperties2;
  73181. struct SparseImageMemoryRequirements
  73182. {
  73183. using NativeType = VkSparseImageMemoryRequirements;
  73184. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  73185. VULKAN_HPP_CONSTEXPR SparseImageMemoryRequirements( VULKAN_HPP_NAMESPACE::SparseImageFormatProperties formatProperties_ = {},
  73186. uint32_t imageMipTailFirstLod_ = {},
  73187. VULKAN_HPP_NAMESPACE::DeviceSize imageMipTailSize_ = {},
  73188. VULKAN_HPP_NAMESPACE::DeviceSize imageMipTailOffset_ = {},
  73189. VULKAN_HPP_NAMESPACE::DeviceSize imageMipTailStride_ = {} ) VULKAN_HPP_NOEXCEPT
  73190. : formatProperties( formatProperties_ )
  73191. , imageMipTailFirstLod( imageMipTailFirstLod_ )
  73192. , imageMipTailSize( imageMipTailSize_ )
  73193. , imageMipTailOffset( imageMipTailOffset_ )
  73194. , imageMipTailStride( imageMipTailStride_ )
  73195. {
  73196. }
  73197. VULKAN_HPP_CONSTEXPR SparseImageMemoryRequirements( SparseImageMemoryRequirements const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  73198. SparseImageMemoryRequirements( VkSparseImageMemoryRequirements const & rhs ) VULKAN_HPP_NOEXCEPT
  73199. : SparseImageMemoryRequirements( *reinterpret_cast<SparseImageMemoryRequirements const *>( &rhs ) )
  73200. {
  73201. }
  73202. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  73203. SparseImageMemoryRequirements & operator=( SparseImageMemoryRequirements const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  73204. SparseImageMemoryRequirements & operator=( VkSparseImageMemoryRequirements const & rhs ) VULKAN_HPP_NOEXCEPT
  73205. {
  73206. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SparseImageMemoryRequirements const *>( &rhs );
  73207. return *this;
  73208. }
  73209. operator VkSparseImageMemoryRequirements const &() const VULKAN_HPP_NOEXCEPT
  73210. {
  73211. return *reinterpret_cast<const VkSparseImageMemoryRequirements *>( this );
  73212. }
  73213. operator VkSparseImageMemoryRequirements &() VULKAN_HPP_NOEXCEPT
  73214. {
  73215. return *reinterpret_cast<VkSparseImageMemoryRequirements *>( this );
  73216. }
  73217. #if defined( VULKAN_HPP_USE_REFLECT )
  73218. # if 14 <= VULKAN_HPP_CPP_VERSION
  73219. auto
  73220. # else
  73221. std::tuple<VULKAN_HPP_NAMESPACE::SparseImageFormatProperties const &,
  73222. uint32_t const &,
  73223. VULKAN_HPP_NAMESPACE::DeviceSize const &,
  73224. VULKAN_HPP_NAMESPACE::DeviceSize const &,
  73225. VULKAN_HPP_NAMESPACE::DeviceSize const &>
  73226. # endif
  73227. reflect() const VULKAN_HPP_NOEXCEPT
  73228. {
  73229. return std::tie( formatProperties, imageMipTailFirstLod, imageMipTailSize, imageMipTailOffset, imageMipTailStride );
  73230. }
  73231. #endif
  73232. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  73233. auto operator<=>( SparseImageMemoryRequirements const & ) const = default;
  73234. #else
  73235. bool operator==( SparseImageMemoryRequirements const & rhs ) const VULKAN_HPP_NOEXCEPT
  73236. {
  73237. # if defined( VULKAN_HPP_USE_REFLECT )
  73238. return this->reflect() == rhs.reflect();
  73239. # else
  73240. return ( formatProperties == rhs.formatProperties ) && ( imageMipTailFirstLod == rhs.imageMipTailFirstLod ) &&
  73241. ( imageMipTailSize == rhs.imageMipTailSize ) && ( imageMipTailOffset == rhs.imageMipTailOffset ) &&
  73242. ( imageMipTailStride == rhs.imageMipTailStride );
  73243. # endif
  73244. }
  73245. bool operator!=( SparseImageMemoryRequirements const & rhs ) const VULKAN_HPP_NOEXCEPT
  73246. {
  73247. return !operator==( rhs );
  73248. }
  73249. #endif
  73250. public:
  73251. VULKAN_HPP_NAMESPACE::SparseImageFormatProperties formatProperties = {};
  73252. uint32_t imageMipTailFirstLod = {};
  73253. VULKAN_HPP_NAMESPACE::DeviceSize imageMipTailSize = {};
  73254. VULKAN_HPP_NAMESPACE::DeviceSize imageMipTailOffset = {};
  73255. VULKAN_HPP_NAMESPACE::DeviceSize imageMipTailStride = {};
  73256. };
  73257. struct SparseImageMemoryRequirements2
  73258. {
  73259. using NativeType = VkSparseImageMemoryRequirements2;
  73260. static const bool allowDuplicate = false;
  73261. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSparseImageMemoryRequirements2;
  73262. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  73263. VULKAN_HPP_CONSTEXPR SparseImageMemoryRequirements2( VULKAN_HPP_NAMESPACE::SparseImageMemoryRequirements memoryRequirements_ = {},
  73264. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  73265. : pNext( pNext_ )
  73266. , memoryRequirements( memoryRequirements_ )
  73267. {
  73268. }
  73269. VULKAN_HPP_CONSTEXPR SparseImageMemoryRequirements2( SparseImageMemoryRequirements2 const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  73270. SparseImageMemoryRequirements2( VkSparseImageMemoryRequirements2 const & rhs ) VULKAN_HPP_NOEXCEPT
  73271. : SparseImageMemoryRequirements2( *reinterpret_cast<SparseImageMemoryRequirements2 const *>( &rhs ) )
  73272. {
  73273. }
  73274. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  73275. SparseImageMemoryRequirements2 & operator=( SparseImageMemoryRequirements2 const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  73276. SparseImageMemoryRequirements2 & operator=( VkSparseImageMemoryRequirements2 const & rhs ) VULKAN_HPP_NOEXCEPT
  73277. {
  73278. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SparseImageMemoryRequirements2 const *>( &rhs );
  73279. return *this;
  73280. }
  73281. operator VkSparseImageMemoryRequirements2 const &() const VULKAN_HPP_NOEXCEPT
  73282. {
  73283. return *reinterpret_cast<const VkSparseImageMemoryRequirements2 *>( this );
  73284. }
  73285. operator VkSparseImageMemoryRequirements2 &() VULKAN_HPP_NOEXCEPT
  73286. {
  73287. return *reinterpret_cast<VkSparseImageMemoryRequirements2 *>( this );
  73288. }
  73289. #if defined( VULKAN_HPP_USE_REFLECT )
  73290. # if 14 <= VULKAN_HPP_CPP_VERSION
  73291. auto
  73292. # else
  73293. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::SparseImageMemoryRequirements const &>
  73294. # endif
  73295. reflect() const VULKAN_HPP_NOEXCEPT
  73296. {
  73297. return std::tie( sType, pNext, memoryRequirements );
  73298. }
  73299. #endif
  73300. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  73301. auto operator<=>( SparseImageMemoryRequirements2 const & ) const = default;
  73302. #else
  73303. bool operator==( SparseImageMemoryRequirements2 const & rhs ) const VULKAN_HPP_NOEXCEPT
  73304. {
  73305. # if defined( VULKAN_HPP_USE_REFLECT )
  73306. return this->reflect() == rhs.reflect();
  73307. # else
  73308. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( memoryRequirements == rhs.memoryRequirements );
  73309. # endif
  73310. }
  73311. bool operator!=( SparseImageMemoryRequirements2 const & rhs ) const VULKAN_HPP_NOEXCEPT
  73312. {
  73313. return !operator==( rhs );
  73314. }
  73315. #endif
  73316. public:
  73317. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSparseImageMemoryRequirements2;
  73318. void * pNext = {};
  73319. VULKAN_HPP_NAMESPACE::SparseImageMemoryRequirements memoryRequirements = {};
  73320. };
  73321. template <>
  73322. struct CppType<StructureType, StructureType::eSparseImageMemoryRequirements2>
  73323. {
  73324. using Type = SparseImageMemoryRequirements2;
  73325. };
  73326. using SparseImageMemoryRequirements2KHR = SparseImageMemoryRequirements2;
  73327. #if defined( VK_USE_PLATFORM_GGP )
  73328. struct StreamDescriptorSurfaceCreateInfoGGP
  73329. {
  73330. using NativeType = VkStreamDescriptorSurfaceCreateInfoGGP;
  73331. static const bool allowDuplicate = false;
  73332. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eStreamDescriptorSurfaceCreateInfoGGP;
  73333. # if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  73334. VULKAN_HPP_CONSTEXPR StreamDescriptorSurfaceCreateInfoGGP( VULKAN_HPP_NAMESPACE::StreamDescriptorSurfaceCreateFlagsGGP flags_ = {},
  73335. GgpStreamDescriptor streamDescriptor_ = {},
  73336. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  73337. : pNext( pNext_ )
  73338. , flags( flags_ )
  73339. , streamDescriptor( streamDescriptor_ )
  73340. {
  73341. }
  73342. VULKAN_HPP_CONSTEXPR StreamDescriptorSurfaceCreateInfoGGP( StreamDescriptorSurfaceCreateInfoGGP const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  73343. StreamDescriptorSurfaceCreateInfoGGP( VkStreamDescriptorSurfaceCreateInfoGGP const & rhs ) VULKAN_HPP_NOEXCEPT
  73344. : StreamDescriptorSurfaceCreateInfoGGP( *reinterpret_cast<StreamDescriptorSurfaceCreateInfoGGP const *>( &rhs ) )
  73345. {
  73346. }
  73347. # endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  73348. StreamDescriptorSurfaceCreateInfoGGP & operator=( StreamDescriptorSurfaceCreateInfoGGP const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  73349. StreamDescriptorSurfaceCreateInfoGGP & operator=( VkStreamDescriptorSurfaceCreateInfoGGP const & rhs ) VULKAN_HPP_NOEXCEPT
  73350. {
  73351. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::StreamDescriptorSurfaceCreateInfoGGP const *>( &rhs );
  73352. return *this;
  73353. }
  73354. # if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  73355. VULKAN_HPP_CONSTEXPR_14 StreamDescriptorSurfaceCreateInfoGGP & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  73356. {
  73357. pNext = pNext_;
  73358. return *this;
  73359. }
  73360. VULKAN_HPP_CONSTEXPR_14 StreamDescriptorSurfaceCreateInfoGGP &
  73361. setFlags( VULKAN_HPP_NAMESPACE::StreamDescriptorSurfaceCreateFlagsGGP flags_ ) VULKAN_HPP_NOEXCEPT
  73362. {
  73363. flags = flags_;
  73364. return *this;
  73365. }
  73366. VULKAN_HPP_CONSTEXPR_14 StreamDescriptorSurfaceCreateInfoGGP & setStreamDescriptor( GgpStreamDescriptor streamDescriptor_ ) VULKAN_HPP_NOEXCEPT
  73367. {
  73368. streamDescriptor = streamDescriptor_;
  73369. return *this;
  73370. }
  73371. # endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  73372. operator VkStreamDescriptorSurfaceCreateInfoGGP const &() const VULKAN_HPP_NOEXCEPT
  73373. {
  73374. return *reinterpret_cast<const VkStreamDescriptorSurfaceCreateInfoGGP *>( this );
  73375. }
  73376. operator VkStreamDescriptorSurfaceCreateInfoGGP &() VULKAN_HPP_NOEXCEPT
  73377. {
  73378. return *reinterpret_cast<VkStreamDescriptorSurfaceCreateInfoGGP *>( this );
  73379. }
  73380. # if defined( VULKAN_HPP_USE_REFLECT )
  73381. # if 14 <= VULKAN_HPP_CPP_VERSION
  73382. auto
  73383. # else
  73384. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  73385. const void * const &,
  73386. VULKAN_HPP_NAMESPACE::StreamDescriptorSurfaceCreateFlagsGGP const &,
  73387. GgpStreamDescriptor const &>
  73388. # endif
  73389. reflect() const VULKAN_HPP_NOEXCEPT
  73390. {
  73391. return std::tie( sType, pNext, flags, streamDescriptor );
  73392. }
  73393. # endif
  73394. # if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  73395. std::strong_ordering operator<=>( StreamDescriptorSurfaceCreateInfoGGP const & rhs ) const VULKAN_HPP_NOEXCEPT
  73396. {
  73397. if ( auto cmp = sType <=> rhs.sType; cmp != 0 )
  73398. return cmp;
  73399. if ( auto cmp = pNext <=> rhs.pNext; cmp != 0 )
  73400. return cmp;
  73401. if ( auto cmp = flags <=> rhs.flags; cmp != 0 )
  73402. return cmp;
  73403. if ( auto cmp = memcmp( &streamDescriptor, &rhs.streamDescriptor, sizeof( GgpStreamDescriptor ) ); cmp != 0 )
  73404. return ( cmp < 0 ) ? std::strong_ordering::less : std::strong_ordering::greater;
  73405. return std::strong_ordering::equivalent;
  73406. }
  73407. # endif
  73408. bool operator==( StreamDescriptorSurfaceCreateInfoGGP const & rhs ) const VULKAN_HPP_NOEXCEPT
  73409. {
  73410. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( flags == rhs.flags ) &&
  73411. ( memcmp( &streamDescriptor, &rhs.streamDescriptor, sizeof( GgpStreamDescriptor ) ) == 0 );
  73412. }
  73413. bool operator!=( StreamDescriptorSurfaceCreateInfoGGP const & rhs ) const VULKAN_HPP_NOEXCEPT
  73414. {
  73415. return !operator==( rhs );
  73416. }
  73417. public:
  73418. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eStreamDescriptorSurfaceCreateInfoGGP;
  73419. const void * pNext = {};
  73420. VULKAN_HPP_NAMESPACE::StreamDescriptorSurfaceCreateFlagsGGP flags = {};
  73421. GgpStreamDescriptor streamDescriptor = {};
  73422. };
  73423. template <>
  73424. struct CppType<StructureType, StructureType::eStreamDescriptorSurfaceCreateInfoGGP>
  73425. {
  73426. using Type = StreamDescriptorSurfaceCreateInfoGGP;
  73427. };
  73428. #endif /*VK_USE_PLATFORM_GGP*/
  73429. struct StridedDeviceAddressRegionKHR
  73430. {
  73431. using NativeType = VkStridedDeviceAddressRegionKHR;
  73432. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  73433. VULKAN_HPP_CONSTEXPR StridedDeviceAddressRegionKHR( VULKAN_HPP_NAMESPACE::DeviceAddress deviceAddress_ = {},
  73434. VULKAN_HPP_NAMESPACE::DeviceSize stride_ = {},
  73435. VULKAN_HPP_NAMESPACE::DeviceSize size_ = {} ) VULKAN_HPP_NOEXCEPT
  73436. : deviceAddress( deviceAddress_ )
  73437. , stride( stride_ )
  73438. , size( size_ )
  73439. {
  73440. }
  73441. VULKAN_HPP_CONSTEXPR StridedDeviceAddressRegionKHR( StridedDeviceAddressRegionKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  73442. StridedDeviceAddressRegionKHR( VkStridedDeviceAddressRegionKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  73443. : StridedDeviceAddressRegionKHR( *reinterpret_cast<StridedDeviceAddressRegionKHR const *>( &rhs ) )
  73444. {
  73445. }
  73446. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  73447. StridedDeviceAddressRegionKHR & operator=( StridedDeviceAddressRegionKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  73448. StridedDeviceAddressRegionKHR & operator=( VkStridedDeviceAddressRegionKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  73449. {
  73450. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::StridedDeviceAddressRegionKHR const *>( &rhs );
  73451. return *this;
  73452. }
  73453. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  73454. VULKAN_HPP_CONSTEXPR_14 StridedDeviceAddressRegionKHR & setDeviceAddress( VULKAN_HPP_NAMESPACE::DeviceAddress deviceAddress_ ) VULKAN_HPP_NOEXCEPT
  73455. {
  73456. deviceAddress = deviceAddress_;
  73457. return *this;
  73458. }
  73459. VULKAN_HPP_CONSTEXPR_14 StridedDeviceAddressRegionKHR & setStride( VULKAN_HPP_NAMESPACE::DeviceSize stride_ ) VULKAN_HPP_NOEXCEPT
  73460. {
  73461. stride = stride_;
  73462. return *this;
  73463. }
  73464. VULKAN_HPP_CONSTEXPR_14 StridedDeviceAddressRegionKHR & setSize( VULKAN_HPP_NAMESPACE::DeviceSize size_ ) VULKAN_HPP_NOEXCEPT
  73465. {
  73466. size = size_;
  73467. return *this;
  73468. }
  73469. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  73470. operator VkStridedDeviceAddressRegionKHR const &() const VULKAN_HPP_NOEXCEPT
  73471. {
  73472. return *reinterpret_cast<const VkStridedDeviceAddressRegionKHR *>( this );
  73473. }
  73474. operator VkStridedDeviceAddressRegionKHR &() VULKAN_HPP_NOEXCEPT
  73475. {
  73476. return *reinterpret_cast<VkStridedDeviceAddressRegionKHR *>( this );
  73477. }
  73478. #if defined( VULKAN_HPP_USE_REFLECT )
  73479. # if 14 <= VULKAN_HPP_CPP_VERSION
  73480. auto
  73481. # else
  73482. std::tuple<VULKAN_HPP_NAMESPACE::DeviceAddress const &, VULKAN_HPP_NAMESPACE::DeviceSize const &, VULKAN_HPP_NAMESPACE::DeviceSize const &>
  73483. # endif
  73484. reflect() const VULKAN_HPP_NOEXCEPT
  73485. {
  73486. return std::tie( deviceAddress, stride, size );
  73487. }
  73488. #endif
  73489. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  73490. auto operator<=>( StridedDeviceAddressRegionKHR const & ) const = default;
  73491. #else
  73492. bool operator==( StridedDeviceAddressRegionKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  73493. {
  73494. # if defined( VULKAN_HPP_USE_REFLECT )
  73495. return this->reflect() == rhs.reflect();
  73496. # else
  73497. return ( deviceAddress == rhs.deviceAddress ) && ( stride == rhs.stride ) && ( size == rhs.size );
  73498. # endif
  73499. }
  73500. bool operator!=( StridedDeviceAddressRegionKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  73501. {
  73502. return !operator==( rhs );
  73503. }
  73504. #endif
  73505. public:
  73506. VULKAN_HPP_NAMESPACE::DeviceAddress deviceAddress = {};
  73507. VULKAN_HPP_NAMESPACE::DeviceSize stride = {};
  73508. VULKAN_HPP_NAMESPACE::DeviceSize size = {};
  73509. };
  73510. struct SubmitInfo
  73511. {
  73512. using NativeType = VkSubmitInfo;
  73513. static const bool allowDuplicate = false;
  73514. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSubmitInfo;
  73515. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  73516. VULKAN_HPP_CONSTEXPR SubmitInfo( uint32_t waitSemaphoreCount_ = {},
  73517. const VULKAN_HPP_NAMESPACE::Semaphore * pWaitSemaphores_ = {},
  73518. const VULKAN_HPP_NAMESPACE::PipelineStageFlags * pWaitDstStageMask_ = {},
  73519. uint32_t commandBufferCount_ = {},
  73520. const VULKAN_HPP_NAMESPACE::CommandBuffer * pCommandBuffers_ = {},
  73521. uint32_t signalSemaphoreCount_ = {},
  73522. const VULKAN_HPP_NAMESPACE::Semaphore * pSignalSemaphores_ = {},
  73523. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  73524. : pNext( pNext_ )
  73525. , waitSemaphoreCount( waitSemaphoreCount_ )
  73526. , pWaitSemaphores( pWaitSemaphores_ )
  73527. , pWaitDstStageMask( pWaitDstStageMask_ )
  73528. , commandBufferCount( commandBufferCount_ )
  73529. , pCommandBuffers( pCommandBuffers_ )
  73530. , signalSemaphoreCount( signalSemaphoreCount_ )
  73531. , pSignalSemaphores( pSignalSemaphores_ )
  73532. {
  73533. }
  73534. VULKAN_HPP_CONSTEXPR SubmitInfo( SubmitInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  73535. SubmitInfo( VkSubmitInfo const & rhs ) VULKAN_HPP_NOEXCEPT : SubmitInfo( *reinterpret_cast<SubmitInfo const *>( &rhs ) ) {}
  73536. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  73537. SubmitInfo( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::Semaphore> const & waitSemaphores_,
  73538. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::PipelineStageFlags> const & waitDstStageMask_ = {},
  73539. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::CommandBuffer> const & commandBuffers_ = {},
  73540. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::Semaphore> const & signalSemaphores_ = {},
  73541. const void * pNext_ = nullptr )
  73542. : pNext( pNext_ )
  73543. , waitSemaphoreCount( static_cast<uint32_t>( waitSemaphores_.size() ) )
  73544. , pWaitSemaphores( waitSemaphores_.data() )
  73545. , pWaitDstStageMask( waitDstStageMask_.data() )
  73546. , commandBufferCount( static_cast<uint32_t>( commandBuffers_.size() ) )
  73547. , pCommandBuffers( commandBuffers_.data() )
  73548. , signalSemaphoreCount( static_cast<uint32_t>( signalSemaphores_.size() ) )
  73549. , pSignalSemaphores( signalSemaphores_.data() )
  73550. {
  73551. # ifdef VULKAN_HPP_NO_EXCEPTIONS
  73552. VULKAN_HPP_ASSERT( waitSemaphores_.size() == waitDstStageMask_.size() );
  73553. # else
  73554. if ( waitSemaphores_.size() != waitDstStageMask_.size() )
  73555. {
  73556. throw LogicError( VULKAN_HPP_NAMESPACE_STRING "::SubmitInfo::SubmitInfo: waitSemaphores_.size() != waitDstStageMask_.size()" );
  73557. }
  73558. # endif /*VULKAN_HPP_NO_EXCEPTIONS*/
  73559. }
  73560. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  73561. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  73562. SubmitInfo & operator=( SubmitInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  73563. SubmitInfo & operator=( VkSubmitInfo const & rhs ) VULKAN_HPP_NOEXCEPT
  73564. {
  73565. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SubmitInfo const *>( &rhs );
  73566. return *this;
  73567. }
  73568. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  73569. VULKAN_HPP_CONSTEXPR_14 SubmitInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  73570. {
  73571. pNext = pNext_;
  73572. return *this;
  73573. }
  73574. VULKAN_HPP_CONSTEXPR_14 SubmitInfo & setWaitSemaphoreCount( uint32_t waitSemaphoreCount_ ) VULKAN_HPP_NOEXCEPT
  73575. {
  73576. waitSemaphoreCount = waitSemaphoreCount_;
  73577. return *this;
  73578. }
  73579. VULKAN_HPP_CONSTEXPR_14 SubmitInfo & setPWaitSemaphores( const VULKAN_HPP_NAMESPACE::Semaphore * pWaitSemaphores_ ) VULKAN_HPP_NOEXCEPT
  73580. {
  73581. pWaitSemaphores = pWaitSemaphores_;
  73582. return *this;
  73583. }
  73584. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  73585. SubmitInfo &
  73586. setWaitSemaphores( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::Semaphore> const & waitSemaphores_ ) VULKAN_HPP_NOEXCEPT
  73587. {
  73588. waitSemaphoreCount = static_cast<uint32_t>( waitSemaphores_.size() );
  73589. pWaitSemaphores = waitSemaphores_.data();
  73590. return *this;
  73591. }
  73592. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  73593. VULKAN_HPP_CONSTEXPR_14 SubmitInfo & setPWaitDstStageMask( const VULKAN_HPP_NAMESPACE::PipelineStageFlags * pWaitDstStageMask_ ) VULKAN_HPP_NOEXCEPT
  73594. {
  73595. pWaitDstStageMask = pWaitDstStageMask_;
  73596. return *this;
  73597. }
  73598. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  73599. SubmitInfo & setWaitDstStageMask( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::PipelineStageFlags> const & waitDstStageMask_ )
  73600. VULKAN_HPP_NOEXCEPT
  73601. {
  73602. waitSemaphoreCount = static_cast<uint32_t>( waitDstStageMask_.size() );
  73603. pWaitDstStageMask = waitDstStageMask_.data();
  73604. return *this;
  73605. }
  73606. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  73607. VULKAN_HPP_CONSTEXPR_14 SubmitInfo & setCommandBufferCount( uint32_t commandBufferCount_ ) VULKAN_HPP_NOEXCEPT
  73608. {
  73609. commandBufferCount = commandBufferCount_;
  73610. return *this;
  73611. }
  73612. VULKAN_HPP_CONSTEXPR_14 SubmitInfo & setPCommandBuffers( const VULKAN_HPP_NAMESPACE::CommandBuffer * pCommandBuffers_ ) VULKAN_HPP_NOEXCEPT
  73613. {
  73614. pCommandBuffers = pCommandBuffers_;
  73615. return *this;
  73616. }
  73617. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  73618. SubmitInfo &
  73619. setCommandBuffers( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::CommandBuffer> const & commandBuffers_ ) VULKAN_HPP_NOEXCEPT
  73620. {
  73621. commandBufferCount = static_cast<uint32_t>( commandBuffers_.size() );
  73622. pCommandBuffers = commandBuffers_.data();
  73623. return *this;
  73624. }
  73625. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  73626. VULKAN_HPP_CONSTEXPR_14 SubmitInfo & setSignalSemaphoreCount( uint32_t signalSemaphoreCount_ ) VULKAN_HPP_NOEXCEPT
  73627. {
  73628. signalSemaphoreCount = signalSemaphoreCount_;
  73629. return *this;
  73630. }
  73631. VULKAN_HPP_CONSTEXPR_14 SubmitInfo & setPSignalSemaphores( const VULKAN_HPP_NAMESPACE::Semaphore * pSignalSemaphores_ ) VULKAN_HPP_NOEXCEPT
  73632. {
  73633. pSignalSemaphores = pSignalSemaphores_;
  73634. return *this;
  73635. }
  73636. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  73637. SubmitInfo &
  73638. setSignalSemaphores( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::Semaphore> const & signalSemaphores_ ) VULKAN_HPP_NOEXCEPT
  73639. {
  73640. signalSemaphoreCount = static_cast<uint32_t>( signalSemaphores_.size() );
  73641. pSignalSemaphores = signalSemaphores_.data();
  73642. return *this;
  73643. }
  73644. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  73645. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  73646. operator VkSubmitInfo const &() const VULKAN_HPP_NOEXCEPT
  73647. {
  73648. return *reinterpret_cast<const VkSubmitInfo *>( this );
  73649. }
  73650. operator VkSubmitInfo &() VULKAN_HPP_NOEXCEPT
  73651. {
  73652. return *reinterpret_cast<VkSubmitInfo *>( this );
  73653. }
  73654. #if defined( VULKAN_HPP_USE_REFLECT )
  73655. # if 14 <= VULKAN_HPP_CPP_VERSION
  73656. auto
  73657. # else
  73658. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  73659. const void * const &,
  73660. uint32_t const &,
  73661. const VULKAN_HPP_NAMESPACE::Semaphore * const &,
  73662. const VULKAN_HPP_NAMESPACE::PipelineStageFlags * const &,
  73663. uint32_t const &,
  73664. const VULKAN_HPP_NAMESPACE::CommandBuffer * const &,
  73665. uint32_t const &,
  73666. const VULKAN_HPP_NAMESPACE::Semaphore * const &>
  73667. # endif
  73668. reflect() const VULKAN_HPP_NOEXCEPT
  73669. {
  73670. return std::tie(
  73671. sType, pNext, waitSemaphoreCount, pWaitSemaphores, pWaitDstStageMask, commandBufferCount, pCommandBuffers, signalSemaphoreCount, pSignalSemaphores );
  73672. }
  73673. #endif
  73674. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  73675. auto operator<=>( SubmitInfo const & ) const = default;
  73676. #else
  73677. bool operator==( SubmitInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  73678. {
  73679. # if defined( VULKAN_HPP_USE_REFLECT )
  73680. return this->reflect() == rhs.reflect();
  73681. # else
  73682. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( waitSemaphoreCount == rhs.waitSemaphoreCount ) &&
  73683. ( pWaitSemaphores == rhs.pWaitSemaphores ) && ( pWaitDstStageMask == rhs.pWaitDstStageMask ) && ( commandBufferCount == rhs.commandBufferCount ) &&
  73684. ( pCommandBuffers == rhs.pCommandBuffers ) && ( signalSemaphoreCount == rhs.signalSemaphoreCount ) &&
  73685. ( pSignalSemaphores == rhs.pSignalSemaphores );
  73686. # endif
  73687. }
  73688. bool operator!=( SubmitInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  73689. {
  73690. return !operator==( rhs );
  73691. }
  73692. #endif
  73693. public:
  73694. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSubmitInfo;
  73695. const void * pNext = {};
  73696. uint32_t waitSemaphoreCount = {};
  73697. const VULKAN_HPP_NAMESPACE::Semaphore * pWaitSemaphores = {};
  73698. const VULKAN_HPP_NAMESPACE::PipelineStageFlags * pWaitDstStageMask = {};
  73699. uint32_t commandBufferCount = {};
  73700. const VULKAN_HPP_NAMESPACE::CommandBuffer * pCommandBuffers = {};
  73701. uint32_t signalSemaphoreCount = {};
  73702. const VULKAN_HPP_NAMESPACE::Semaphore * pSignalSemaphores = {};
  73703. };
  73704. template <>
  73705. struct CppType<StructureType, StructureType::eSubmitInfo>
  73706. {
  73707. using Type = SubmitInfo;
  73708. };
  73709. struct SubmitInfo2
  73710. {
  73711. using NativeType = VkSubmitInfo2;
  73712. static const bool allowDuplicate = false;
  73713. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSubmitInfo2;
  73714. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  73715. VULKAN_HPP_CONSTEXPR SubmitInfo2( VULKAN_HPP_NAMESPACE::SubmitFlags flags_ = {},
  73716. uint32_t waitSemaphoreInfoCount_ = {},
  73717. const VULKAN_HPP_NAMESPACE::SemaphoreSubmitInfo * pWaitSemaphoreInfos_ = {},
  73718. uint32_t commandBufferInfoCount_ = {},
  73719. const VULKAN_HPP_NAMESPACE::CommandBufferSubmitInfo * pCommandBufferInfos_ = {},
  73720. uint32_t signalSemaphoreInfoCount_ = {},
  73721. const VULKAN_HPP_NAMESPACE::SemaphoreSubmitInfo * pSignalSemaphoreInfos_ = {},
  73722. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  73723. : pNext( pNext_ )
  73724. , flags( flags_ )
  73725. , waitSemaphoreInfoCount( waitSemaphoreInfoCount_ )
  73726. , pWaitSemaphoreInfos( pWaitSemaphoreInfos_ )
  73727. , commandBufferInfoCount( commandBufferInfoCount_ )
  73728. , pCommandBufferInfos( pCommandBufferInfos_ )
  73729. , signalSemaphoreInfoCount( signalSemaphoreInfoCount_ )
  73730. , pSignalSemaphoreInfos( pSignalSemaphoreInfos_ )
  73731. {
  73732. }
  73733. VULKAN_HPP_CONSTEXPR SubmitInfo2( SubmitInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  73734. SubmitInfo2( VkSubmitInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT : SubmitInfo2( *reinterpret_cast<SubmitInfo2 const *>( &rhs ) ) {}
  73735. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  73736. SubmitInfo2( VULKAN_HPP_NAMESPACE::SubmitFlags flags_,
  73737. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::SemaphoreSubmitInfo> const & waitSemaphoreInfos_,
  73738. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::CommandBufferSubmitInfo> const & commandBufferInfos_ = {},
  73739. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::SemaphoreSubmitInfo> const & signalSemaphoreInfos_ = {},
  73740. const void * pNext_ = nullptr )
  73741. : pNext( pNext_ )
  73742. , flags( flags_ )
  73743. , waitSemaphoreInfoCount( static_cast<uint32_t>( waitSemaphoreInfos_.size() ) )
  73744. , pWaitSemaphoreInfos( waitSemaphoreInfos_.data() )
  73745. , commandBufferInfoCount( static_cast<uint32_t>( commandBufferInfos_.size() ) )
  73746. , pCommandBufferInfos( commandBufferInfos_.data() )
  73747. , signalSemaphoreInfoCount( static_cast<uint32_t>( signalSemaphoreInfos_.size() ) )
  73748. , pSignalSemaphoreInfos( signalSemaphoreInfos_.data() )
  73749. {
  73750. }
  73751. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  73752. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  73753. SubmitInfo2 & operator=( SubmitInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  73754. SubmitInfo2 & operator=( VkSubmitInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT
  73755. {
  73756. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SubmitInfo2 const *>( &rhs );
  73757. return *this;
  73758. }
  73759. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  73760. VULKAN_HPP_CONSTEXPR_14 SubmitInfo2 & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  73761. {
  73762. pNext = pNext_;
  73763. return *this;
  73764. }
  73765. VULKAN_HPP_CONSTEXPR_14 SubmitInfo2 & setFlags( VULKAN_HPP_NAMESPACE::SubmitFlags flags_ ) VULKAN_HPP_NOEXCEPT
  73766. {
  73767. flags = flags_;
  73768. return *this;
  73769. }
  73770. VULKAN_HPP_CONSTEXPR_14 SubmitInfo2 & setWaitSemaphoreInfoCount( uint32_t waitSemaphoreInfoCount_ ) VULKAN_HPP_NOEXCEPT
  73771. {
  73772. waitSemaphoreInfoCount = waitSemaphoreInfoCount_;
  73773. return *this;
  73774. }
  73775. VULKAN_HPP_CONSTEXPR_14 SubmitInfo2 & setPWaitSemaphoreInfos( const VULKAN_HPP_NAMESPACE::SemaphoreSubmitInfo * pWaitSemaphoreInfos_ ) VULKAN_HPP_NOEXCEPT
  73776. {
  73777. pWaitSemaphoreInfos = pWaitSemaphoreInfos_;
  73778. return *this;
  73779. }
  73780. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  73781. SubmitInfo2 & setWaitSemaphoreInfos(
  73782. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::SemaphoreSubmitInfo> const & waitSemaphoreInfos_ ) VULKAN_HPP_NOEXCEPT
  73783. {
  73784. waitSemaphoreInfoCount = static_cast<uint32_t>( waitSemaphoreInfos_.size() );
  73785. pWaitSemaphoreInfos = waitSemaphoreInfos_.data();
  73786. return *this;
  73787. }
  73788. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  73789. VULKAN_HPP_CONSTEXPR_14 SubmitInfo2 & setCommandBufferInfoCount( uint32_t commandBufferInfoCount_ ) VULKAN_HPP_NOEXCEPT
  73790. {
  73791. commandBufferInfoCount = commandBufferInfoCount_;
  73792. return *this;
  73793. }
  73794. VULKAN_HPP_CONSTEXPR_14 SubmitInfo2 &
  73795. setPCommandBufferInfos( const VULKAN_HPP_NAMESPACE::CommandBufferSubmitInfo * pCommandBufferInfos_ ) VULKAN_HPP_NOEXCEPT
  73796. {
  73797. pCommandBufferInfos = pCommandBufferInfos_;
  73798. return *this;
  73799. }
  73800. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  73801. SubmitInfo2 & setCommandBufferInfos(
  73802. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::CommandBufferSubmitInfo> const & commandBufferInfos_ ) VULKAN_HPP_NOEXCEPT
  73803. {
  73804. commandBufferInfoCount = static_cast<uint32_t>( commandBufferInfos_.size() );
  73805. pCommandBufferInfos = commandBufferInfos_.data();
  73806. return *this;
  73807. }
  73808. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  73809. VULKAN_HPP_CONSTEXPR_14 SubmitInfo2 & setSignalSemaphoreInfoCount( uint32_t signalSemaphoreInfoCount_ ) VULKAN_HPP_NOEXCEPT
  73810. {
  73811. signalSemaphoreInfoCount = signalSemaphoreInfoCount_;
  73812. return *this;
  73813. }
  73814. VULKAN_HPP_CONSTEXPR_14 SubmitInfo2 &
  73815. setPSignalSemaphoreInfos( const VULKAN_HPP_NAMESPACE::SemaphoreSubmitInfo * pSignalSemaphoreInfos_ ) VULKAN_HPP_NOEXCEPT
  73816. {
  73817. pSignalSemaphoreInfos = pSignalSemaphoreInfos_;
  73818. return *this;
  73819. }
  73820. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  73821. SubmitInfo2 & setSignalSemaphoreInfos(
  73822. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::SemaphoreSubmitInfo> const & signalSemaphoreInfos_ ) VULKAN_HPP_NOEXCEPT
  73823. {
  73824. signalSemaphoreInfoCount = static_cast<uint32_t>( signalSemaphoreInfos_.size() );
  73825. pSignalSemaphoreInfos = signalSemaphoreInfos_.data();
  73826. return *this;
  73827. }
  73828. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  73829. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  73830. operator VkSubmitInfo2 const &() const VULKAN_HPP_NOEXCEPT
  73831. {
  73832. return *reinterpret_cast<const VkSubmitInfo2 *>( this );
  73833. }
  73834. operator VkSubmitInfo2 &() VULKAN_HPP_NOEXCEPT
  73835. {
  73836. return *reinterpret_cast<VkSubmitInfo2 *>( this );
  73837. }
  73838. #if defined( VULKAN_HPP_USE_REFLECT )
  73839. # if 14 <= VULKAN_HPP_CPP_VERSION
  73840. auto
  73841. # else
  73842. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  73843. const void * const &,
  73844. VULKAN_HPP_NAMESPACE::SubmitFlags const &,
  73845. uint32_t const &,
  73846. const VULKAN_HPP_NAMESPACE::SemaphoreSubmitInfo * const &,
  73847. uint32_t const &,
  73848. const VULKAN_HPP_NAMESPACE::CommandBufferSubmitInfo * const &,
  73849. uint32_t const &,
  73850. const VULKAN_HPP_NAMESPACE::SemaphoreSubmitInfo * const &>
  73851. # endif
  73852. reflect() const VULKAN_HPP_NOEXCEPT
  73853. {
  73854. return std::tie( sType,
  73855. pNext,
  73856. flags,
  73857. waitSemaphoreInfoCount,
  73858. pWaitSemaphoreInfos,
  73859. commandBufferInfoCount,
  73860. pCommandBufferInfos,
  73861. signalSemaphoreInfoCount,
  73862. pSignalSemaphoreInfos );
  73863. }
  73864. #endif
  73865. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  73866. auto operator<=>( SubmitInfo2 const & ) const = default;
  73867. #else
  73868. bool operator==( SubmitInfo2 const & rhs ) const VULKAN_HPP_NOEXCEPT
  73869. {
  73870. # if defined( VULKAN_HPP_USE_REFLECT )
  73871. return this->reflect() == rhs.reflect();
  73872. # else
  73873. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( flags == rhs.flags ) && ( waitSemaphoreInfoCount == rhs.waitSemaphoreInfoCount ) &&
  73874. ( pWaitSemaphoreInfos == rhs.pWaitSemaphoreInfos ) && ( commandBufferInfoCount == rhs.commandBufferInfoCount ) &&
  73875. ( pCommandBufferInfos == rhs.pCommandBufferInfos ) && ( signalSemaphoreInfoCount == rhs.signalSemaphoreInfoCount ) &&
  73876. ( pSignalSemaphoreInfos == rhs.pSignalSemaphoreInfos );
  73877. # endif
  73878. }
  73879. bool operator!=( SubmitInfo2 const & rhs ) const VULKAN_HPP_NOEXCEPT
  73880. {
  73881. return !operator==( rhs );
  73882. }
  73883. #endif
  73884. public:
  73885. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSubmitInfo2;
  73886. const void * pNext = {};
  73887. VULKAN_HPP_NAMESPACE::SubmitFlags flags = {};
  73888. uint32_t waitSemaphoreInfoCount = {};
  73889. const VULKAN_HPP_NAMESPACE::SemaphoreSubmitInfo * pWaitSemaphoreInfos = {};
  73890. uint32_t commandBufferInfoCount = {};
  73891. const VULKAN_HPP_NAMESPACE::CommandBufferSubmitInfo * pCommandBufferInfos = {};
  73892. uint32_t signalSemaphoreInfoCount = {};
  73893. const VULKAN_HPP_NAMESPACE::SemaphoreSubmitInfo * pSignalSemaphoreInfos = {};
  73894. };
  73895. template <>
  73896. struct CppType<StructureType, StructureType::eSubmitInfo2>
  73897. {
  73898. using Type = SubmitInfo2;
  73899. };
  73900. using SubmitInfo2KHR = SubmitInfo2;
  73901. struct SubpassBeginInfo
  73902. {
  73903. using NativeType = VkSubpassBeginInfo;
  73904. static const bool allowDuplicate = false;
  73905. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSubpassBeginInfo;
  73906. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  73907. VULKAN_HPP_CONSTEXPR SubpassBeginInfo( VULKAN_HPP_NAMESPACE::SubpassContents contents_ = VULKAN_HPP_NAMESPACE::SubpassContents::eInline,
  73908. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  73909. : pNext( pNext_ )
  73910. , contents( contents_ )
  73911. {
  73912. }
  73913. VULKAN_HPP_CONSTEXPR SubpassBeginInfo( SubpassBeginInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  73914. SubpassBeginInfo( VkSubpassBeginInfo const & rhs ) VULKAN_HPP_NOEXCEPT : SubpassBeginInfo( *reinterpret_cast<SubpassBeginInfo const *>( &rhs ) ) {}
  73915. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  73916. SubpassBeginInfo & operator=( SubpassBeginInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  73917. SubpassBeginInfo & operator=( VkSubpassBeginInfo const & rhs ) VULKAN_HPP_NOEXCEPT
  73918. {
  73919. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SubpassBeginInfo const *>( &rhs );
  73920. return *this;
  73921. }
  73922. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  73923. VULKAN_HPP_CONSTEXPR_14 SubpassBeginInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  73924. {
  73925. pNext = pNext_;
  73926. return *this;
  73927. }
  73928. VULKAN_HPP_CONSTEXPR_14 SubpassBeginInfo & setContents( VULKAN_HPP_NAMESPACE::SubpassContents contents_ ) VULKAN_HPP_NOEXCEPT
  73929. {
  73930. contents = contents_;
  73931. return *this;
  73932. }
  73933. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  73934. operator VkSubpassBeginInfo const &() const VULKAN_HPP_NOEXCEPT
  73935. {
  73936. return *reinterpret_cast<const VkSubpassBeginInfo *>( this );
  73937. }
  73938. operator VkSubpassBeginInfo &() VULKAN_HPP_NOEXCEPT
  73939. {
  73940. return *reinterpret_cast<VkSubpassBeginInfo *>( this );
  73941. }
  73942. #if defined( VULKAN_HPP_USE_REFLECT )
  73943. # if 14 <= VULKAN_HPP_CPP_VERSION
  73944. auto
  73945. # else
  73946. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::SubpassContents const &>
  73947. # endif
  73948. reflect() const VULKAN_HPP_NOEXCEPT
  73949. {
  73950. return std::tie( sType, pNext, contents );
  73951. }
  73952. #endif
  73953. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  73954. auto operator<=>( SubpassBeginInfo const & ) const = default;
  73955. #else
  73956. bool operator==( SubpassBeginInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  73957. {
  73958. # if defined( VULKAN_HPP_USE_REFLECT )
  73959. return this->reflect() == rhs.reflect();
  73960. # else
  73961. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( contents == rhs.contents );
  73962. # endif
  73963. }
  73964. bool operator!=( SubpassBeginInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  73965. {
  73966. return !operator==( rhs );
  73967. }
  73968. #endif
  73969. public:
  73970. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSubpassBeginInfo;
  73971. const void * pNext = {};
  73972. VULKAN_HPP_NAMESPACE::SubpassContents contents = VULKAN_HPP_NAMESPACE::SubpassContents::eInline;
  73973. };
  73974. template <>
  73975. struct CppType<StructureType, StructureType::eSubpassBeginInfo>
  73976. {
  73977. using Type = SubpassBeginInfo;
  73978. };
  73979. using SubpassBeginInfoKHR = SubpassBeginInfo;
  73980. struct SubpassDescriptionDepthStencilResolve
  73981. {
  73982. using NativeType = VkSubpassDescriptionDepthStencilResolve;
  73983. static const bool allowDuplicate = false;
  73984. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSubpassDescriptionDepthStencilResolve;
  73985. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  73986. VULKAN_HPP_CONSTEXPR
  73987. SubpassDescriptionDepthStencilResolve( VULKAN_HPP_NAMESPACE::ResolveModeFlagBits depthResolveMode_ = VULKAN_HPP_NAMESPACE::ResolveModeFlagBits::eNone,
  73988. VULKAN_HPP_NAMESPACE::ResolveModeFlagBits stencilResolveMode_ = VULKAN_HPP_NAMESPACE::ResolveModeFlagBits::eNone,
  73989. const VULKAN_HPP_NAMESPACE::AttachmentReference2 * pDepthStencilResolveAttachment_ = {},
  73990. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  73991. : pNext( pNext_ )
  73992. , depthResolveMode( depthResolveMode_ )
  73993. , stencilResolveMode( stencilResolveMode_ )
  73994. , pDepthStencilResolveAttachment( pDepthStencilResolveAttachment_ )
  73995. {
  73996. }
  73997. VULKAN_HPP_CONSTEXPR SubpassDescriptionDepthStencilResolve( SubpassDescriptionDepthStencilResolve const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  73998. SubpassDescriptionDepthStencilResolve( VkSubpassDescriptionDepthStencilResolve const & rhs ) VULKAN_HPP_NOEXCEPT
  73999. : SubpassDescriptionDepthStencilResolve( *reinterpret_cast<SubpassDescriptionDepthStencilResolve const *>( &rhs ) )
  74000. {
  74001. }
  74002. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  74003. SubpassDescriptionDepthStencilResolve & operator=( SubpassDescriptionDepthStencilResolve const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  74004. SubpassDescriptionDepthStencilResolve & operator=( VkSubpassDescriptionDepthStencilResolve const & rhs ) VULKAN_HPP_NOEXCEPT
  74005. {
  74006. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SubpassDescriptionDepthStencilResolve const *>( &rhs );
  74007. return *this;
  74008. }
  74009. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  74010. VULKAN_HPP_CONSTEXPR_14 SubpassDescriptionDepthStencilResolve & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  74011. {
  74012. pNext = pNext_;
  74013. return *this;
  74014. }
  74015. VULKAN_HPP_CONSTEXPR_14 SubpassDescriptionDepthStencilResolve &
  74016. setDepthResolveMode( VULKAN_HPP_NAMESPACE::ResolveModeFlagBits depthResolveMode_ ) VULKAN_HPP_NOEXCEPT
  74017. {
  74018. depthResolveMode = depthResolveMode_;
  74019. return *this;
  74020. }
  74021. VULKAN_HPP_CONSTEXPR_14 SubpassDescriptionDepthStencilResolve &
  74022. setStencilResolveMode( VULKAN_HPP_NAMESPACE::ResolveModeFlagBits stencilResolveMode_ ) VULKAN_HPP_NOEXCEPT
  74023. {
  74024. stencilResolveMode = stencilResolveMode_;
  74025. return *this;
  74026. }
  74027. VULKAN_HPP_CONSTEXPR_14 SubpassDescriptionDepthStencilResolve &
  74028. setPDepthStencilResolveAttachment( const VULKAN_HPP_NAMESPACE::AttachmentReference2 * pDepthStencilResolveAttachment_ ) VULKAN_HPP_NOEXCEPT
  74029. {
  74030. pDepthStencilResolveAttachment = pDepthStencilResolveAttachment_;
  74031. return *this;
  74032. }
  74033. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  74034. operator VkSubpassDescriptionDepthStencilResolve const &() const VULKAN_HPP_NOEXCEPT
  74035. {
  74036. return *reinterpret_cast<const VkSubpassDescriptionDepthStencilResolve *>( this );
  74037. }
  74038. operator VkSubpassDescriptionDepthStencilResolve &() VULKAN_HPP_NOEXCEPT
  74039. {
  74040. return *reinterpret_cast<VkSubpassDescriptionDepthStencilResolve *>( this );
  74041. }
  74042. #if defined( VULKAN_HPP_USE_REFLECT )
  74043. # if 14 <= VULKAN_HPP_CPP_VERSION
  74044. auto
  74045. # else
  74046. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  74047. const void * const &,
  74048. VULKAN_HPP_NAMESPACE::ResolveModeFlagBits const &,
  74049. VULKAN_HPP_NAMESPACE::ResolveModeFlagBits const &,
  74050. const VULKAN_HPP_NAMESPACE::AttachmentReference2 * const &>
  74051. # endif
  74052. reflect() const VULKAN_HPP_NOEXCEPT
  74053. {
  74054. return std::tie( sType, pNext, depthResolveMode, stencilResolveMode, pDepthStencilResolveAttachment );
  74055. }
  74056. #endif
  74057. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  74058. auto operator<=>( SubpassDescriptionDepthStencilResolve const & ) const = default;
  74059. #else
  74060. bool operator==( SubpassDescriptionDepthStencilResolve const & rhs ) const VULKAN_HPP_NOEXCEPT
  74061. {
  74062. # if defined( VULKAN_HPP_USE_REFLECT )
  74063. return this->reflect() == rhs.reflect();
  74064. # else
  74065. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( depthResolveMode == rhs.depthResolveMode ) &&
  74066. ( stencilResolveMode == rhs.stencilResolveMode ) && ( pDepthStencilResolveAttachment == rhs.pDepthStencilResolveAttachment );
  74067. # endif
  74068. }
  74069. bool operator!=( SubpassDescriptionDepthStencilResolve const & rhs ) const VULKAN_HPP_NOEXCEPT
  74070. {
  74071. return !operator==( rhs );
  74072. }
  74073. #endif
  74074. public:
  74075. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSubpassDescriptionDepthStencilResolve;
  74076. const void * pNext = {};
  74077. VULKAN_HPP_NAMESPACE::ResolveModeFlagBits depthResolveMode = VULKAN_HPP_NAMESPACE::ResolveModeFlagBits::eNone;
  74078. VULKAN_HPP_NAMESPACE::ResolveModeFlagBits stencilResolveMode = VULKAN_HPP_NAMESPACE::ResolveModeFlagBits::eNone;
  74079. const VULKAN_HPP_NAMESPACE::AttachmentReference2 * pDepthStencilResolveAttachment = {};
  74080. };
  74081. template <>
  74082. struct CppType<StructureType, StructureType::eSubpassDescriptionDepthStencilResolve>
  74083. {
  74084. using Type = SubpassDescriptionDepthStencilResolve;
  74085. };
  74086. using SubpassDescriptionDepthStencilResolveKHR = SubpassDescriptionDepthStencilResolve;
  74087. struct SubpassEndInfo
  74088. {
  74089. using NativeType = VkSubpassEndInfo;
  74090. static const bool allowDuplicate = false;
  74091. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSubpassEndInfo;
  74092. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  74093. VULKAN_HPP_CONSTEXPR SubpassEndInfo( const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT : pNext( pNext_ ) {}
  74094. VULKAN_HPP_CONSTEXPR SubpassEndInfo( SubpassEndInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  74095. SubpassEndInfo( VkSubpassEndInfo const & rhs ) VULKAN_HPP_NOEXCEPT : SubpassEndInfo( *reinterpret_cast<SubpassEndInfo const *>( &rhs ) ) {}
  74096. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  74097. SubpassEndInfo & operator=( SubpassEndInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  74098. SubpassEndInfo & operator=( VkSubpassEndInfo const & rhs ) VULKAN_HPP_NOEXCEPT
  74099. {
  74100. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SubpassEndInfo const *>( &rhs );
  74101. return *this;
  74102. }
  74103. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  74104. VULKAN_HPP_CONSTEXPR_14 SubpassEndInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  74105. {
  74106. pNext = pNext_;
  74107. return *this;
  74108. }
  74109. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  74110. operator VkSubpassEndInfo const &() const VULKAN_HPP_NOEXCEPT
  74111. {
  74112. return *reinterpret_cast<const VkSubpassEndInfo *>( this );
  74113. }
  74114. operator VkSubpassEndInfo &() VULKAN_HPP_NOEXCEPT
  74115. {
  74116. return *reinterpret_cast<VkSubpassEndInfo *>( this );
  74117. }
  74118. #if defined( VULKAN_HPP_USE_REFLECT )
  74119. # if 14 <= VULKAN_HPP_CPP_VERSION
  74120. auto
  74121. # else
  74122. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &>
  74123. # endif
  74124. reflect() const VULKAN_HPP_NOEXCEPT
  74125. {
  74126. return std::tie( sType, pNext );
  74127. }
  74128. #endif
  74129. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  74130. auto operator<=>( SubpassEndInfo const & ) const = default;
  74131. #else
  74132. bool operator==( SubpassEndInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  74133. {
  74134. # if defined( VULKAN_HPP_USE_REFLECT )
  74135. return this->reflect() == rhs.reflect();
  74136. # else
  74137. return ( sType == rhs.sType ) && ( pNext == rhs.pNext );
  74138. # endif
  74139. }
  74140. bool operator!=( SubpassEndInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  74141. {
  74142. return !operator==( rhs );
  74143. }
  74144. #endif
  74145. public:
  74146. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSubpassEndInfo;
  74147. const void * pNext = {};
  74148. };
  74149. template <>
  74150. struct CppType<StructureType, StructureType::eSubpassEndInfo>
  74151. {
  74152. using Type = SubpassEndInfo;
  74153. };
  74154. using SubpassEndInfoKHR = SubpassEndInfo;
  74155. struct SubpassFragmentDensityMapOffsetEndInfoQCOM
  74156. {
  74157. using NativeType = VkSubpassFragmentDensityMapOffsetEndInfoQCOM;
  74158. static const bool allowDuplicate = false;
  74159. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSubpassFragmentDensityMapOffsetEndInfoQCOM;
  74160. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  74161. VULKAN_HPP_CONSTEXPR SubpassFragmentDensityMapOffsetEndInfoQCOM( uint32_t fragmentDensityOffsetCount_ = {},
  74162. const VULKAN_HPP_NAMESPACE::Offset2D * pFragmentDensityOffsets_ = {},
  74163. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  74164. : pNext( pNext_ )
  74165. , fragmentDensityOffsetCount( fragmentDensityOffsetCount_ )
  74166. , pFragmentDensityOffsets( pFragmentDensityOffsets_ )
  74167. {
  74168. }
  74169. VULKAN_HPP_CONSTEXPR SubpassFragmentDensityMapOffsetEndInfoQCOM( SubpassFragmentDensityMapOffsetEndInfoQCOM const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  74170. SubpassFragmentDensityMapOffsetEndInfoQCOM( VkSubpassFragmentDensityMapOffsetEndInfoQCOM const & rhs ) VULKAN_HPP_NOEXCEPT
  74171. : SubpassFragmentDensityMapOffsetEndInfoQCOM( *reinterpret_cast<SubpassFragmentDensityMapOffsetEndInfoQCOM const *>( &rhs ) )
  74172. {
  74173. }
  74174. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  74175. SubpassFragmentDensityMapOffsetEndInfoQCOM(
  74176. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::Offset2D> const & fragmentDensityOffsets_, const void * pNext_ = nullptr )
  74177. : pNext( pNext_ )
  74178. , fragmentDensityOffsetCount( static_cast<uint32_t>( fragmentDensityOffsets_.size() ) )
  74179. , pFragmentDensityOffsets( fragmentDensityOffsets_.data() )
  74180. {
  74181. }
  74182. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  74183. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  74184. SubpassFragmentDensityMapOffsetEndInfoQCOM & operator=( SubpassFragmentDensityMapOffsetEndInfoQCOM const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  74185. SubpassFragmentDensityMapOffsetEndInfoQCOM & operator=( VkSubpassFragmentDensityMapOffsetEndInfoQCOM const & rhs ) VULKAN_HPP_NOEXCEPT
  74186. {
  74187. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SubpassFragmentDensityMapOffsetEndInfoQCOM const *>( &rhs );
  74188. return *this;
  74189. }
  74190. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  74191. VULKAN_HPP_CONSTEXPR_14 SubpassFragmentDensityMapOffsetEndInfoQCOM & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  74192. {
  74193. pNext = pNext_;
  74194. return *this;
  74195. }
  74196. VULKAN_HPP_CONSTEXPR_14 SubpassFragmentDensityMapOffsetEndInfoQCOM &
  74197. setFragmentDensityOffsetCount( uint32_t fragmentDensityOffsetCount_ ) VULKAN_HPP_NOEXCEPT
  74198. {
  74199. fragmentDensityOffsetCount = fragmentDensityOffsetCount_;
  74200. return *this;
  74201. }
  74202. VULKAN_HPP_CONSTEXPR_14 SubpassFragmentDensityMapOffsetEndInfoQCOM &
  74203. setPFragmentDensityOffsets( const VULKAN_HPP_NAMESPACE::Offset2D * pFragmentDensityOffsets_ ) VULKAN_HPP_NOEXCEPT
  74204. {
  74205. pFragmentDensityOffsets = pFragmentDensityOffsets_;
  74206. return *this;
  74207. }
  74208. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  74209. SubpassFragmentDensityMapOffsetEndInfoQCOM & setFragmentDensityOffsets(
  74210. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::Offset2D> const & fragmentDensityOffsets_ ) VULKAN_HPP_NOEXCEPT
  74211. {
  74212. fragmentDensityOffsetCount = static_cast<uint32_t>( fragmentDensityOffsets_.size() );
  74213. pFragmentDensityOffsets = fragmentDensityOffsets_.data();
  74214. return *this;
  74215. }
  74216. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  74217. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  74218. operator VkSubpassFragmentDensityMapOffsetEndInfoQCOM const &() const VULKAN_HPP_NOEXCEPT
  74219. {
  74220. return *reinterpret_cast<const VkSubpassFragmentDensityMapOffsetEndInfoQCOM *>( this );
  74221. }
  74222. operator VkSubpassFragmentDensityMapOffsetEndInfoQCOM &() VULKAN_HPP_NOEXCEPT
  74223. {
  74224. return *reinterpret_cast<VkSubpassFragmentDensityMapOffsetEndInfoQCOM *>( this );
  74225. }
  74226. #if defined( VULKAN_HPP_USE_REFLECT )
  74227. # if 14 <= VULKAN_HPP_CPP_VERSION
  74228. auto
  74229. # else
  74230. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, uint32_t const &, const VULKAN_HPP_NAMESPACE::Offset2D * const &>
  74231. # endif
  74232. reflect() const VULKAN_HPP_NOEXCEPT
  74233. {
  74234. return std::tie( sType, pNext, fragmentDensityOffsetCount, pFragmentDensityOffsets );
  74235. }
  74236. #endif
  74237. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  74238. auto operator<=>( SubpassFragmentDensityMapOffsetEndInfoQCOM const & ) const = default;
  74239. #else
  74240. bool operator==( SubpassFragmentDensityMapOffsetEndInfoQCOM const & rhs ) const VULKAN_HPP_NOEXCEPT
  74241. {
  74242. # if defined( VULKAN_HPP_USE_REFLECT )
  74243. return this->reflect() == rhs.reflect();
  74244. # else
  74245. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( fragmentDensityOffsetCount == rhs.fragmentDensityOffsetCount ) &&
  74246. ( pFragmentDensityOffsets == rhs.pFragmentDensityOffsets );
  74247. # endif
  74248. }
  74249. bool operator!=( SubpassFragmentDensityMapOffsetEndInfoQCOM const & rhs ) const VULKAN_HPP_NOEXCEPT
  74250. {
  74251. return !operator==( rhs );
  74252. }
  74253. #endif
  74254. public:
  74255. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSubpassFragmentDensityMapOffsetEndInfoQCOM;
  74256. const void * pNext = {};
  74257. uint32_t fragmentDensityOffsetCount = {};
  74258. const VULKAN_HPP_NAMESPACE::Offset2D * pFragmentDensityOffsets = {};
  74259. };
  74260. template <>
  74261. struct CppType<StructureType, StructureType::eSubpassFragmentDensityMapOffsetEndInfoQCOM>
  74262. {
  74263. using Type = SubpassFragmentDensityMapOffsetEndInfoQCOM;
  74264. };
  74265. struct SubpassResolvePerformanceQueryEXT
  74266. {
  74267. using NativeType = VkSubpassResolvePerformanceQueryEXT;
  74268. static const bool allowDuplicate = false;
  74269. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSubpassResolvePerformanceQueryEXT;
  74270. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  74271. VULKAN_HPP_CONSTEXPR SubpassResolvePerformanceQueryEXT( VULKAN_HPP_NAMESPACE::Bool32 optimal_ = {}, void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  74272. : pNext( pNext_ )
  74273. , optimal( optimal_ )
  74274. {
  74275. }
  74276. VULKAN_HPP_CONSTEXPR SubpassResolvePerformanceQueryEXT( SubpassResolvePerformanceQueryEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  74277. SubpassResolvePerformanceQueryEXT( VkSubpassResolvePerformanceQueryEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  74278. : SubpassResolvePerformanceQueryEXT( *reinterpret_cast<SubpassResolvePerformanceQueryEXT const *>( &rhs ) )
  74279. {
  74280. }
  74281. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  74282. SubpassResolvePerformanceQueryEXT & operator=( SubpassResolvePerformanceQueryEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  74283. SubpassResolvePerformanceQueryEXT & operator=( VkSubpassResolvePerformanceQueryEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  74284. {
  74285. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SubpassResolvePerformanceQueryEXT const *>( &rhs );
  74286. return *this;
  74287. }
  74288. operator VkSubpassResolvePerformanceQueryEXT const &() const VULKAN_HPP_NOEXCEPT
  74289. {
  74290. return *reinterpret_cast<const VkSubpassResolvePerformanceQueryEXT *>( this );
  74291. }
  74292. operator VkSubpassResolvePerformanceQueryEXT &() VULKAN_HPP_NOEXCEPT
  74293. {
  74294. return *reinterpret_cast<VkSubpassResolvePerformanceQueryEXT *>( this );
  74295. }
  74296. #if defined( VULKAN_HPP_USE_REFLECT )
  74297. # if 14 <= VULKAN_HPP_CPP_VERSION
  74298. auto
  74299. # else
  74300. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
  74301. # endif
  74302. reflect() const VULKAN_HPP_NOEXCEPT
  74303. {
  74304. return std::tie( sType, pNext, optimal );
  74305. }
  74306. #endif
  74307. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  74308. auto operator<=>( SubpassResolvePerformanceQueryEXT const & ) const = default;
  74309. #else
  74310. bool operator==( SubpassResolvePerformanceQueryEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  74311. {
  74312. # if defined( VULKAN_HPP_USE_REFLECT )
  74313. return this->reflect() == rhs.reflect();
  74314. # else
  74315. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( optimal == rhs.optimal );
  74316. # endif
  74317. }
  74318. bool operator!=( SubpassResolvePerformanceQueryEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  74319. {
  74320. return !operator==( rhs );
  74321. }
  74322. #endif
  74323. public:
  74324. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSubpassResolvePerformanceQueryEXT;
  74325. void * pNext = {};
  74326. VULKAN_HPP_NAMESPACE::Bool32 optimal = {};
  74327. };
  74328. template <>
  74329. struct CppType<StructureType, StructureType::eSubpassResolvePerformanceQueryEXT>
  74330. {
  74331. using Type = SubpassResolvePerformanceQueryEXT;
  74332. };
  74333. struct SubpassShadingPipelineCreateInfoHUAWEI
  74334. {
  74335. using NativeType = VkSubpassShadingPipelineCreateInfoHUAWEI;
  74336. static const bool allowDuplicate = false;
  74337. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSubpassShadingPipelineCreateInfoHUAWEI;
  74338. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  74339. VULKAN_HPP_CONSTEXPR SubpassShadingPipelineCreateInfoHUAWEI( VULKAN_HPP_NAMESPACE::RenderPass renderPass_ = {},
  74340. uint32_t subpass_ = {},
  74341. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  74342. : pNext( pNext_ )
  74343. , renderPass( renderPass_ )
  74344. , subpass( subpass_ )
  74345. {
  74346. }
  74347. VULKAN_HPP_CONSTEXPR SubpassShadingPipelineCreateInfoHUAWEI( SubpassShadingPipelineCreateInfoHUAWEI const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  74348. SubpassShadingPipelineCreateInfoHUAWEI( VkSubpassShadingPipelineCreateInfoHUAWEI const & rhs ) VULKAN_HPP_NOEXCEPT
  74349. : SubpassShadingPipelineCreateInfoHUAWEI( *reinterpret_cast<SubpassShadingPipelineCreateInfoHUAWEI const *>( &rhs ) )
  74350. {
  74351. }
  74352. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  74353. SubpassShadingPipelineCreateInfoHUAWEI & operator=( SubpassShadingPipelineCreateInfoHUAWEI const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  74354. SubpassShadingPipelineCreateInfoHUAWEI & operator=( VkSubpassShadingPipelineCreateInfoHUAWEI const & rhs ) VULKAN_HPP_NOEXCEPT
  74355. {
  74356. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SubpassShadingPipelineCreateInfoHUAWEI const *>( &rhs );
  74357. return *this;
  74358. }
  74359. operator VkSubpassShadingPipelineCreateInfoHUAWEI const &() const VULKAN_HPP_NOEXCEPT
  74360. {
  74361. return *reinterpret_cast<const VkSubpassShadingPipelineCreateInfoHUAWEI *>( this );
  74362. }
  74363. operator VkSubpassShadingPipelineCreateInfoHUAWEI &() VULKAN_HPP_NOEXCEPT
  74364. {
  74365. return *reinterpret_cast<VkSubpassShadingPipelineCreateInfoHUAWEI *>( this );
  74366. }
  74367. #if defined( VULKAN_HPP_USE_REFLECT )
  74368. # if 14 <= VULKAN_HPP_CPP_VERSION
  74369. auto
  74370. # else
  74371. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::RenderPass const &, uint32_t const &>
  74372. # endif
  74373. reflect() const VULKAN_HPP_NOEXCEPT
  74374. {
  74375. return std::tie( sType, pNext, renderPass, subpass );
  74376. }
  74377. #endif
  74378. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  74379. auto operator<=>( SubpassShadingPipelineCreateInfoHUAWEI const & ) const = default;
  74380. #else
  74381. bool operator==( SubpassShadingPipelineCreateInfoHUAWEI const & rhs ) const VULKAN_HPP_NOEXCEPT
  74382. {
  74383. # if defined( VULKAN_HPP_USE_REFLECT )
  74384. return this->reflect() == rhs.reflect();
  74385. # else
  74386. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( renderPass == rhs.renderPass ) && ( subpass == rhs.subpass );
  74387. # endif
  74388. }
  74389. bool operator!=( SubpassShadingPipelineCreateInfoHUAWEI const & rhs ) const VULKAN_HPP_NOEXCEPT
  74390. {
  74391. return !operator==( rhs );
  74392. }
  74393. #endif
  74394. public:
  74395. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSubpassShadingPipelineCreateInfoHUAWEI;
  74396. void * pNext = {};
  74397. VULKAN_HPP_NAMESPACE::RenderPass renderPass = {};
  74398. uint32_t subpass = {};
  74399. };
  74400. template <>
  74401. struct CppType<StructureType, StructureType::eSubpassShadingPipelineCreateInfoHUAWEI>
  74402. {
  74403. using Type = SubpassShadingPipelineCreateInfoHUAWEI;
  74404. };
  74405. struct SubresourceLayout2EXT
  74406. {
  74407. using NativeType = VkSubresourceLayout2EXT;
  74408. static const bool allowDuplicate = false;
  74409. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSubresourceLayout2EXT;
  74410. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  74411. VULKAN_HPP_CONSTEXPR SubresourceLayout2EXT( VULKAN_HPP_NAMESPACE::SubresourceLayout subresourceLayout_ = {}, void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  74412. : pNext( pNext_ )
  74413. , subresourceLayout( subresourceLayout_ )
  74414. {
  74415. }
  74416. VULKAN_HPP_CONSTEXPR SubresourceLayout2EXT( SubresourceLayout2EXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  74417. SubresourceLayout2EXT( VkSubresourceLayout2EXT const & rhs ) VULKAN_HPP_NOEXCEPT
  74418. : SubresourceLayout2EXT( *reinterpret_cast<SubresourceLayout2EXT const *>( &rhs ) )
  74419. {
  74420. }
  74421. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  74422. SubresourceLayout2EXT & operator=( SubresourceLayout2EXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  74423. SubresourceLayout2EXT & operator=( VkSubresourceLayout2EXT const & rhs ) VULKAN_HPP_NOEXCEPT
  74424. {
  74425. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SubresourceLayout2EXT const *>( &rhs );
  74426. return *this;
  74427. }
  74428. operator VkSubresourceLayout2EXT const &() const VULKAN_HPP_NOEXCEPT
  74429. {
  74430. return *reinterpret_cast<const VkSubresourceLayout2EXT *>( this );
  74431. }
  74432. operator VkSubresourceLayout2EXT &() VULKAN_HPP_NOEXCEPT
  74433. {
  74434. return *reinterpret_cast<VkSubresourceLayout2EXT *>( this );
  74435. }
  74436. #if defined( VULKAN_HPP_USE_REFLECT )
  74437. # if 14 <= VULKAN_HPP_CPP_VERSION
  74438. auto
  74439. # else
  74440. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::SubresourceLayout const &>
  74441. # endif
  74442. reflect() const VULKAN_HPP_NOEXCEPT
  74443. {
  74444. return std::tie( sType, pNext, subresourceLayout );
  74445. }
  74446. #endif
  74447. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  74448. auto operator<=>( SubresourceLayout2EXT const & ) const = default;
  74449. #else
  74450. bool operator==( SubresourceLayout2EXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  74451. {
  74452. # if defined( VULKAN_HPP_USE_REFLECT )
  74453. return this->reflect() == rhs.reflect();
  74454. # else
  74455. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( subresourceLayout == rhs.subresourceLayout );
  74456. # endif
  74457. }
  74458. bool operator!=( SubresourceLayout2EXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  74459. {
  74460. return !operator==( rhs );
  74461. }
  74462. #endif
  74463. public:
  74464. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSubresourceLayout2EXT;
  74465. void * pNext = {};
  74466. VULKAN_HPP_NAMESPACE::SubresourceLayout subresourceLayout = {};
  74467. };
  74468. template <>
  74469. struct CppType<StructureType, StructureType::eSubresourceLayout2EXT>
  74470. {
  74471. using Type = SubresourceLayout2EXT;
  74472. };
  74473. struct SurfaceCapabilities2EXT
  74474. {
  74475. using NativeType = VkSurfaceCapabilities2EXT;
  74476. static const bool allowDuplicate = false;
  74477. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSurfaceCapabilities2EXT;
  74478. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  74479. VULKAN_HPP_CONSTEXPR SurfaceCapabilities2EXT(
  74480. uint32_t minImageCount_ = {},
  74481. uint32_t maxImageCount_ = {},
  74482. VULKAN_HPP_NAMESPACE::Extent2D currentExtent_ = {},
  74483. VULKAN_HPP_NAMESPACE::Extent2D minImageExtent_ = {},
  74484. VULKAN_HPP_NAMESPACE::Extent2D maxImageExtent_ = {},
  74485. uint32_t maxImageArrayLayers_ = {},
  74486. VULKAN_HPP_NAMESPACE::SurfaceTransformFlagsKHR supportedTransforms_ = {},
  74487. VULKAN_HPP_NAMESPACE::SurfaceTransformFlagBitsKHR currentTransform_ = VULKAN_HPP_NAMESPACE::SurfaceTransformFlagBitsKHR::eIdentity,
  74488. VULKAN_HPP_NAMESPACE::CompositeAlphaFlagsKHR supportedCompositeAlpha_ = {},
  74489. VULKAN_HPP_NAMESPACE::ImageUsageFlags supportedUsageFlags_ = {},
  74490. VULKAN_HPP_NAMESPACE::SurfaceCounterFlagsEXT supportedSurfaceCounters_ = {},
  74491. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  74492. : pNext( pNext_ )
  74493. , minImageCount( minImageCount_ )
  74494. , maxImageCount( maxImageCount_ )
  74495. , currentExtent( currentExtent_ )
  74496. , minImageExtent( minImageExtent_ )
  74497. , maxImageExtent( maxImageExtent_ )
  74498. , maxImageArrayLayers( maxImageArrayLayers_ )
  74499. , supportedTransforms( supportedTransforms_ )
  74500. , currentTransform( currentTransform_ )
  74501. , supportedCompositeAlpha( supportedCompositeAlpha_ )
  74502. , supportedUsageFlags( supportedUsageFlags_ )
  74503. , supportedSurfaceCounters( supportedSurfaceCounters_ )
  74504. {
  74505. }
  74506. VULKAN_HPP_CONSTEXPR SurfaceCapabilities2EXT( SurfaceCapabilities2EXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  74507. SurfaceCapabilities2EXT( VkSurfaceCapabilities2EXT const & rhs ) VULKAN_HPP_NOEXCEPT
  74508. : SurfaceCapabilities2EXT( *reinterpret_cast<SurfaceCapabilities2EXT const *>( &rhs ) )
  74509. {
  74510. }
  74511. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  74512. SurfaceCapabilities2EXT & operator=( SurfaceCapabilities2EXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  74513. SurfaceCapabilities2EXT & operator=( VkSurfaceCapabilities2EXT const & rhs ) VULKAN_HPP_NOEXCEPT
  74514. {
  74515. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SurfaceCapabilities2EXT const *>( &rhs );
  74516. return *this;
  74517. }
  74518. operator VkSurfaceCapabilities2EXT const &() const VULKAN_HPP_NOEXCEPT
  74519. {
  74520. return *reinterpret_cast<const VkSurfaceCapabilities2EXT *>( this );
  74521. }
  74522. operator VkSurfaceCapabilities2EXT &() VULKAN_HPP_NOEXCEPT
  74523. {
  74524. return *reinterpret_cast<VkSurfaceCapabilities2EXT *>( this );
  74525. }
  74526. #if defined( VULKAN_HPP_USE_REFLECT )
  74527. # if 14 <= VULKAN_HPP_CPP_VERSION
  74528. auto
  74529. # else
  74530. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  74531. void * const &,
  74532. uint32_t const &,
  74533. uint32_t const &,
  74534. VULKAN_HPP_NAMESPACE::Extent2D const &,
  74535. VULKAN_HPP_NAMESPACE::Extent2D const &,
  74536. VULKAN_HPP_NAMESPACE::Extent2D const &,
  74537. uint32_t const &,
  74538. VULKAN_HPP_NAMESPACE::SurfaceTransformFlagsKHR const &,
  74539. VULKAN_HPP_NAMESPACE::SurfaceTransformFlagBitsKHR const &,
  74540. VULKAN_HPP_NAMESPACE::CompositeAlphaFlagsKHR const &,
  74541. VULKAN_HPP_NAMESPACE::ImageUsageFlags const &,
  74542. VULKAN_HPP_NAMESPACE::SurfaceCounterFlagsEXT const &>
  74543. # endif
  74544. reflect() const VULKAN_HPP_NOEXCEPT
  74545. {
  74546. return std::tie( sType,
  74547. pNext,
  74548. minImageCount,
  74549. maxImageCount,
  74550. currentExtent,
  74551. minImageExtent,
  74552. maxImageExtent,
  74553. maxImageArrayLayers,
  74554. supportedTransforms,
  74555. currentTransform,
  74556. supportedCompositeAlpha,
  74557. supportedUsageFlags,
  74558. supportedSurfaceCounters );
  74559. }
  74560. #endif
  74561. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  74562. auto operator<=>( SurfaceCapabilities2EXT const & ) const = default;
  74563. #else
  74564. bool operator==( SurfaceCapabilities2EXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  74565. {
  74566. # if defined( VULKAN_HPP_USE_REFLECT )
  74567. return this->reflect() == rhs.reflect();
  74568. # else
  74569. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( minImageCount == rhs.minImageCount ) && ( maxImageCount == rhs.maxImageCount ) &&
  74570. ( currentExtent == rhs.currentExtent ) && ( minImageExtent == rhs.minImageExtent ) && ( maxImageExtent == rhs.maxImageExtent ) &&
  74571. ( maxImageArrayLayers == rhs.maxImageArrayLayers ) && ( supportedTransforms == rhs.supportedTransforms ) &&
  74572. ( currentTransform == rhs.currentTransform ) && ( supportedCompositeAlpha == rhs.supportedCompositeAlpha ) &&
  74573. ( supportedUsageFlags == rhs.supportedUsageFlags ) && ( supportedSurfaceCounters == rhs.supportedSurfaceCounters );
  74574. # endif
  74575. }
  74576. bool operator!=( SurfaceCapabilities2EXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  74577. {
  74578. return !operator==( rhs );
  74579. }
  74580. #endif
  74581. public:
  74582. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSurfaceCapabilities2EXT;
  74583. void * pNext = {};
  74584. uint32_t minImageCount = {};
  74585. uint32_t maxImageCount = {};
  74586. VULKAN_HPP_NAMESPACE::Extent2D currentExtent = {};
  74587. VULKAN_HPP_NAMESPACE::Extent2D minImageExtent = {};
  74588. VULKAN_HPP_NAMESPACE::Extent2D maxImageExtent = {};
  74589. uint32_t maxImageArrayLayers = {};
  74590. VULKAN_HPP_NAMESPACE::SurfaceTransformFlagsKHR supportedTransforms = {};
  74591. VULKAN_HPP_NAMESPACE::SurfaceTransformFlagBitsKHR currentTransform = VULKAN_HPP_NAMESPACE::SurfaceTransformFlagBitsKHR::eIdentity;
  74592. VULKAN_HPP_NAMESPACE::CompositeAlphaFlagsKHR supportedCompositeAlpha = {};
  74593. VULKAN_HPP_NAMESPACE::ImageUsageFlags supportedUsageFlags = {};
  74594. VULKAN_HPP_NAMESPACE::SurfaceCounterFlagsEXT supportedSurfaceCounters = {};
  74595. };
  74596. template <>
  74597. struct CppType<StructureType, StructureType::eSurfaceCapabilities2EXT>
  74598. {
  74599. using Type = SurfaceCapabilities2EXT;
  74600. };
  74601. struct SurfaceCapabilitiesKHR
  74602. {
  74603. using NativeType = VkSurfaceCapabilitiesKHR;
  74604. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  74605. VULKAN_HPP_CONSTEXPR SurfaceCapabilitiesKHR(
  74606. uint32_t minImageCount_ = {},
  74607. uint32_t maxImageCount_ = {},
  74608. VULKAN_HPP_NAMESPACE::Extent2D currentExtent_ = {},
  74609. VULKAN_HPP_NAMESPACE::Extent2D minImageExtent_ = {},
  74610. VULKAN_HPP_NAMESPACE::Extent2D maxImageExtent_ = {},
  74611. uint32_t maxImageArrayLayers_ = {},
  74612. VULKAN_HPP_NAMESPACE::SurfaceTransformFlagsKHR supportedTransforms_ = {},
  74613. VULKAN_HPP_NAMESPACE::SurfaceTransformFlagBitsKHR currentTransform_ = VULKAN_HPP_NAMESPACE::SurfaceTransformFlagBitsKHR::eIdentity,
  74614. VULKAN_HPP_NAMESPACE::CompositeAlphaFlagsKHR supportedCompositeAlpha_ = {},
  74615. VULKAN_HPP_NAMESPACE::ImageUsageFlags supportedUsageFlags_ = {} ) VULKAN_HPP_NOEXCEPT
  74616. : minImageCount( minImageCount_ )
  74617. , maxImageCount( maxImageCount_ )
  74618. , currentExtent( currentExtent_ )
  74619. , minImageExtent( minImageExtent_ )
  74620. , maxImageExtent( maxImageExtent_ )
  74621. , maxImageArrayLayers( maxImageArrayLayers_ )
  74622. , supportedTransforms( supportedTransforms_ )
  74623. , currentTransform( currentTransform_ )
  74624. , supportedCompositeAlpha( supportedCompositeAlpha_ )
  74625. , supportedUsageFlags( supportedUsageFlags_ )
  74626. {
  74627. }
  74628. VULKAN_HPP_CONSTEXPR SurfaceCapabilitiesKHR( SurfaceCapabilitiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  74629. SurfaceCapabilitiesKHR( VkSurfaceCapabilitiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  74630. : SurfaceCapabilitiesKHR( *reinterpret_cast<SurfaceCapabilitiesKHR const *>( &rhs ) )
  74631. {
  74632. }
  74633. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  74634. SurfaceCapabilitiesKHR & operator=( SurfaceCapabilitiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  74635. SurfaceCapabilitiesKHR & operator=( VkSurfaceCapabilitiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  74636. {
  74637. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SurfaceCapabilitiesKHR const *>( &rhs );
  74638. return *this;
  74639. }
  74640. operator VkSurfaceCapabilitiesKHR const &() const VULKAN_HPP_NOEXCEPT
  74641. {
  74642. return *reinterpret_cast<const VkSurfaceCapabilitiesKHR *>( this );
  74643. }
  74644. operator VkSurfaceCapabilitiesKHR &() VULKAN_HPP_NOEXCEPT
  74645. {
  74646. return *reinterpret_cast<VkSurfaceCapabilitiesKHR *>( this );
  74647. }
  74648. #if defined( VULKAN_HPP_USE_REFLECT )
  74649. # if 14 <= VULKAN_HPP_CPP_VERSION
  74650. auto
  74651. # else
  74652. std::tuple<uint32_t const &,
  74653. uint32_t const &,
  74654. VULKAN_HPP_NAMESPACE::Extent2D const &,
  74655. VULKAN_HPP_NAMESPACE::Extent2D const &,
  74656. VULKAN_HPP_NAMESPACE::Extent2D const &,
  74657. uint32_t const &,
  74658. VULKAN_HPP_NAMESPACE::SurfaceTransformFlagsKHR const &,
  74659. VULKAN_HPP_NAMESPACE::SurfaceTransformFlagBitsKHR const &,
  74660. VULKAN_HPP_NAMESPACE::CompositeAlphaFlagsKHR const &,
  74661. VULKAN_HPP_NAMESPACE::ImageUsageFlags const &>
  74662. # endif
  74663. reflect() const VULKAN_HPP_NOEXCEPT
  74664. {
  74665. return std::tie( minImageCount,
  74666. maxImageCount,
  74667. currentExtent,
  74668. minImageExtent,
  74669. maxImageExtent,
  74670. maxImageArrayLayers,
  74671. supportedTransforms,
  74672. currentTransform,
  74673. supportedCompositeAlpha,
  74674. supportedUsageFlags );
  74675. }
  74676. #endif
  74677. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  74678. auto operator<=>( SurfaceCapabilitiesKHR const & ) const = default;
  74679. #else
  74680. bool operator==( SurfaceCapabilitiesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  74681. {
  74682. # if defined( VULKAN_HPP_USE_REFLECT )
  74683. return this->reflect() == rhs.reflect();
  74684. # else
  74685. return ( minImageCount == rhs.minImageCount ) && ( maxImageCount == rhs.maxImageCount ) && ( currentExtent == rhs.currentExtent ) &&
  74686. ( minImageExtent == rhs.minImageExtent ) && ( maxImageExtent == rhs.maxImageExtent ) && ( maxImageArrayLayers == rhs.maxImageArrayLayers ) &&
  74687. ( supportedTransforms == rhs.supportedTransforms ) && ( currentTransform == rhs.currentTransform ) &&
  74688. ( supportedCompositeAlpha == rhs.supportedCompositeAlpha ) && ( supportedUsageFlags == rhs.supportedUsageFlags );
  74689. # endif
  74690. }
  74691. bool operator!=( SurfaceCapabilitiesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  74692. {
  74693. return !operator==( rhs );
  74694. }
  74695. #endif
  74696. public:
  74697. uint32_t minImageCount = {};
  74698. uint32_t maxImageCount = {};
  74699. VULKAN_HPP_NAMESPACE::Extent2D currentExtent = {};
  74700. VULKAN_HPP_NAMESPACE::Extent2D minImageExtent = {};
  74701. VULKAN_HPP_NAMESPACE::Extent2D maxImageExtent = {};
  74702. uint32_t maxImageArrayLayers = {};
  74703. VULKAN_HPP_NAMESPACE::SurfaceTransformFlagsKHR supportedTransforms = {};
  74704. VULKAN_HPP_NAMESPACE::SurfaceTransformFlagBitsKHR currentTransform = VULKAN_HPP_NAMESPACE::SurfaceTransformFlagBitsKHR::eIdentity;
  74705. VULKAN_HPP_NAMESPACE::CompositeAlphaFlagsKHR supportedCompositeAlpha = {};
  74706. VULKAN_HPP_NAMESPACE::ImageUsageFlags supportedUsageFlags = {};
  74707. };
  74708. struct SurfaceCapabilities2KHR
  74709. {
  74710. using NativeType = VkSurfaceCapabilities2KHR;
  74711. static const bool allowDuplicate = false;
  74712. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSurfaceCapabilities2KHR;
  74713. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  74714. VULKAN_HPP_CONSTEXPR SurfaceCapabilities2KHR( VULKAN_HPP_NAMESPACE::SurfaceCapabilitiesKHR surfaceCapabilities_ = {},
  74715. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  74716. : pNext( pNext_ )
  74717. , surfaceCapabilities( surfaceCapabilities_ )
  74718. {
  74719. }
  74720. VULKAN_HPP_CONSTEXPR SurfaceCapabilities2KHR( SurfaceCapabilities2KHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  74721. SurfaceCapabilities2KHR( VkSurfaceCapabilities2KHR const & rhs ) VULKAN_HPP_NOEXCEPT
  74722. : SurfaceCapabilities2KHR( *reinterpret_cast<SurfaceCapabilities2KHR const *>( &rhs ) )
  74723. {
  74724. }
  74725. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  74726. SurfaceCapabilities2KHR & operator=( SurfaceCapabilities2KHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  74727. SurfaceCapabilities2KHR & operator=( VkSurfaceCapabilities2KHR const & rhs ) VULKAN_HPP_NOEXCEPT
  74728. {
  74729. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SurfaceCapabilities2KHR const *>( &rhs );
  74730. return *this;
  74731. }
  74732. operator VkSurfaceCapabilities2KHR const &() const VULKAN_HPP_NOEXCEPT
  74733. {
  74734. return *reinterpret_cast<const VkSurfaceCapabilities2KHR *>( this );
  74735. }
  74736. operator VkSurfaceCapabilities2KHR &() VULKAN_HPP_NOEXCEPT
  74737. {
  74738. return *reinterpret_cast<VkSurfaceCapabilities2KHR *>( this );
  74739. }
  74740. #if defined( VULKAN_HPP_USE_REFLECT )
  74741. # if 14 <= VULKAN_HPP_CPP_VERSION
  74742. auto
  74743. # else
  74744. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::SurfaceCapabilitiesKHR const &>
  74745. # endif
  74746. reflect() const VULKAN_HPP_NOEXCEPT
  74747. {
  74748. return std::tie( sType, pNext, surfaceCapabilities );
  74749. }
  74750. #endif
  74751. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  74752. auto operator<=>( SurfaceCapabilities2KHR const & ) const = default;
  74753. #else
  74754. bool operator==( SurfaceCapabilities2KHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  74755. {
  74756. # if defined( VULKAN_HPP_USE_REFLECT )
  74757. return this->reflect() == rhs.reflect();
  74758. # else
  74759. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( surfaceCapabilities == rhs.surfaceCapabilities );
  74760. # endif
  74761. }
  74762. bool operator!=( SurfaceCapabilities2KHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  74763. {
  74764. return !operator==( rhs );
  74765. }
  74766. #endif
  74767. public:
  74768. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSurfaceCapabilities2KHR;
  74769. void * pNext = {};
  74770. VULKAN_HPP_NAMESPACE::SurfaceCapabilitiesKHR surfaceCapabilities = {};
  74771. };
  74772. template <>
  74773. struct CppType<StructureType, StructureType::eSurfaceCapabilities2KHR>
  74774. {
  74775. using Type = SurfaceCapabilities2KHR;
  74776. };
  74777. #if defined( VK_USE_PLATFORM_WIN32_KHR )
  74778. struct SurfaceCapabilitiesFullScreenExclusiveEXT
  74779. {
  74780. using NativeType = VkSurfaceCapabilitiesFullScreenExclusiveEXT;
  74781. static const bool allowDuplicate = false;
  74782. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSurfaceCapabilitiesFullScreenExclusiveEXT;
  74783. # if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  74784. VULKAN_HPP_CONSTEXPR SurfaceCapabilitiesFullScreenExclusiveEXT( VULKAN_HPP_NAMESPACE::Bool32 fullScreenExclusiveSupported_ = {},
  74785. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  74786. : pNext( pNext_ )
  74787. , fullScreenExclusiveSupported( fullScreenExclusiveSupported_ )
  74788. {
  74789. }
  74790. VULKAN_HPP_CONSTEXPR SurfaceCapabilitiesFullScreenExclusiveEXT( SurfaceCapabilitiesFullScreenExclusiveEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  74791. SurfaceCapabilitiesFullScreenExclusiveEXT( VkSurfaceCapabilitiesFullScreenExclusiveEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  74792. : SurfaceCapabilitiesFullScreenExclusiveEXT( *reinterpret_cast<SurfaceCapabilitiesFullScreenExclusiveEXT const *>( &rhs ) )
  74793. {
  74794. }
  74795. # endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  74796. SurfaceCapabilitiesFullScreenExclusiveEXT & operator=( SurfaceCapabilitiesFullScreenExclusiveEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  74797. SurfaceCapabilitiesFullScreenExclusiveEXT & operator=( VkSurfaceCapabilitiesFullScreenExclusiveEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  74798. {
  74799. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SurfaceCapabilitiesFullScreenExclusiveEXT const *>( &rhs );
  74800. return *this;
  74801. }
  74802. # if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  74803. VULKAN_HPP_CONSTEXPR_14 SurfaceCapabilitiesFullScreenExclusiveEXT & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
  74804. {
  74805. pNext = pNext_;
  74806. return *this;
  74807. }
  74808. VULKAN_HPP_CONSTEXPR_14 SurfaceCapabilitiesFullScreenExclusiveEXT &
  74809. setFullScreenExclusiveSupported( VULKAN_HPP_NAMESPACE::Bool32 fullScreenExclusiveSupported_ ) VULKAN_HPP_NOEXCEPT
  74810. {
  74811. fullScreenExclusiveSupported = fullScreenExclusiveSupported_;
  74812. return *this;
  74813. }
  74814. # endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  74815. operator VkSurfaceCapabilitiesFullScreenExclusiveEXT const &() const VULKAN_HPP_NOEXCEPT
  74816. {
  74817. return *reinterpret_cast<const VkSurfaceCapabilitiesFullScreenExclusiveEXT *>( this );
  74818. }
  74819. operator VkSurfaceCapabilitiesFullScreenExclusiveEXT &() VULKAN_HPP_NOEXCEPT
  74820. {
  74821. return *reinterpret_cast<VkSurfaceCapabilitiesFullScreenExclusiveEXT *>( this );
  74822. }
  74823. # if defined( VULKAN_HPP_USE_REFLECT )
  74824. # if 14 <= VULKAN_HPP_CPP_VERSION
  74825. auto
  74826. # else
  74827. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
  74828. # endif
  74829. reflect() const VULKAN_HPP_NOEXCEPT
  74830. {
  74831. return std::tie( sType, pNext, fullScreenExclusiveSupported );
  74832. }
  74833. # endif
  74834. # if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  74835. auto operator<=>( SurfaceCapabilitiesFullScreenExclusiveEXT const & ) const = default;
  74836. # else
  74837. bool operator==( SurfaceCapabilitiesFullScreenExclusiveEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  74838. {
  74839. # if defined( VULKAN_HPP_USE_REFLECT )
  74840. return this->reflect() == rhs.reflect();
  74841. # else
  74842. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( fullScreenExclusiveSupported == rhs.fullScreenExclusiveSupported );
  74843. # endif
  74844. }
  74845. bool operator!=( SurfaceCapabilitiesFullScreenExclusiveEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  74846. {
  74847. return !operator==( rhs );
  74848. }
  74849. # endif
  74850. public:
  74851. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSurfaceCapabilitiesFullScreenExclusiveEXT;
  74852. void * pNext = {};
  74853. VULKAN_HPP_NAMESPACE::Bool32 fullScreenExclusiveSupported = {};
  74854. };
  74855. template <>
  74856. struct CppType<StructureType, StructureType::eSurfaceCapabilitiesFullScreenExclusiveEXT>
  74857. {
  74858. using Type = SurfaceCapabilitiesFullScreenExclusiveEXT;
  74859. };
  74860. #endif /*VK_USE_PLATFORM_WIN32_KHR*/
  74861. struct SurfaceFormatKHR
  74862. {
  74863. using NativeType = VkSurfaceFormatKHR;
  74864. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  74865. VULKAN_HPP_CONSTEXPR
  74866. SurfaceFormatKHR( VULKAN_HPP_NAMESPACE::Format format_ = VULKAN_HPP_NAMESPACE::Format::eUndefined,
  74867. VULKAN_HPP_NAMESPACE::ColorSpaceKHR colorSpace_ = VULKAN_HPP_NAMESPACE::ColorSpaceKHR::eSrgbNonlinear ) VULKAN_HPP_NOEXCEPT
  74868. : format( format_ )
  74869. , colorSpace( colorSpace_ )
  74870. {
  74871. }
  74872. VULKAN_HPP_CONSTEXPR SurfaceFormatKHR( SurfaceFormatKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  74873. SurfaceFormatKHR( VkSurfaceFormatKHR const & rhs ) VULKAN_HPP_NOEXCEPT : SurfaceFormatKHR( *reinterpret_cast<SurfaceFormatKHR const *>( &rhs ) ) {}
  74874. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  74875. SurfaceFormatKHR & operator=( SurfaceFormatKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  74876. SurfaceFormatKHR & operator=( VkSurfaceFormatKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  74877. {
  74878. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SurfaceFormatKHR const *>( &rhs );
  74879. return *this;
  74880. }
  74881. operator VkSurfaceFormatKHR const &() const VULKAN_HPP_NOEXCEPT
  74882. {
  74883. return *reinterpret_cast<const VkSurfaceFormatKHR *>( this );
  74884. }
  74885. operator VkSurfaceFormatKHR &() VULKAN_HPP_NOEXCEPT
  74886. {
  74887. return *reinterpret_cast<VkSurfaceFormatKHR *>( this );
  74888. }
  74889. #if defined( VULKAN_HPP_USE_REFLECT )
  74890. # if 14 <= VULKAN_HPP_CPP_VERSION
  74891. auto
  74892. # else
  74893. std::tuple<VULKAN_HPP_NAMESPACE::Format const &, VULKAN_HPP_NAMESPACE::ColorSpaceKHR const &>
  74894. # endif
  74895. reflect() const VULKAN_HPP_NOEXCEPT
  74896. {
  74897. return std::tie( format, colorSpace );
  74898. }
  74899. #endif
  74900. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  74901. auto operator<=>( SurfaceFormatKHR const & ) const = default;
  74902. #else
  74903. bool operator==( SurfaceFormatKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  74904. {
  74905. # if defined( VULKAN_HPP_USE_REFLECT )
  74906. return this->reflect() == rhs.reflect();
  74907. # else
  74908. return ( format == rhs.format ) && ( colorSpace == rhs.colorSpace );
  74909. # endif
  74910. }
  74911. bool operator!=( SurfaceFormatKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  74912. {
  74913. return !operator==( rhs );
  74914. }
  74915. #endif
  74916. public:
  74917. VULKAN_HPP_NAMESPACE::Format format = VULKAN_HPP_NAMESPACE::Format::eUndefined;
  74918. VULKAN_HPP_NAMESPACE::ColorSpaceKHR colorSpace = VULKAN_HPP_NAMESPACE::ColorSpaceKHR::eSrgbNonlinear;
  74919. };
  74920. struct SurfaceFormat2KHR
  74921. {
  74922. using NativeType = VkSurfaceFormat2KHR;
  74923. static const bool allowDuplicate = false;
  74924. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSurfaceFormat2KHR;
  74925. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  74926. VULKAN_HPP_CONSTEXPR SurfaceFormat2KHR( VULKAN_HPP_NAMESPACE::SurfaceFormatKHR surfaceFormat_ = {}, void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  74927. : pNext( pNext_ )
  74928. , surfaceFormat( surfaceFormat_ )
  74929. {
  74930. }
  74931. VULKAN_HPP_CONSTEXPR SurfaceFormat2KHR( SurfaceFormat2KHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  74932. SurfaceFormat2KHR( VkSurfaceFormat2KHR const & rhs ) VULKAN_HPP_NOEXCEPT : SurfaceFormat2KHR( *reinterpret_cast<SurfaceFormat2KHR const *>( &rhs ) ) {}
  74933. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  74934. SurfaceFormat2KHR & operator=( SurfaceFormat2KHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  74935. SurfaceFormat2KHR & operator=( VkSurfaceFormat2KHR const & rhs ) VULKAN_HPP_NOEXCEPT
  74936. {
  74937. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SurfaceFormat2KHR const *>( &rhs );
  74938. return *this;
  74939. }
  74940. operator VkSurfaceFormat2KHR const &() const VULKAN_HPP_NOEXCEPT
  74941. {
  74942. return *reinterpret_cast<const VkSurfaceFormat2KHR *>( this );
  74943. }
  74944. operator VkSurfaceFormat2KHR &() VULKAN_HPP_NOEXCEPT
  74945. {
  74946. return *reinterpret_cast<VkSurfaceFormat2KHR *>( this );
  74947. }
  74948. #if defined( VULKAN_HPP_USE_REFLECT )
  74949. # if 14 <= VULKAN_HPP_CPP_VERSION
  74950. auto
  74951. # else
  74952. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::SurfaceFormatKHR const &>
  74953. # endif
  74954. reflect() const VULKAN_HPP_NOEXCEPT
  74955. {
  74956. return std::tie( sType, pNext, surfaceFormat );
  74957. }
  74958. #endif
  74959. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  74960. auto operator<=>( SurfaceFormat2KHR const & ) const = default;
  74961. #else
  74962. bool operator==( SurfaceFormat2KHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  74963. {
  74964. # if defined( VULKAN_HPP_USE_REFLECT )
  74965. return this->reflect() == rhs.reflect();
  74966. # else
  74967. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( surfaceFormat == rhs.surfaceFormat );
  74968. # endif
  74969. }
  74970. bool operator!=( SurfaceFormat2KHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  74971. {
  74972. return !operator==( rhs );
  74973. }
  74974. #endif
  74975. public:
  74976. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSurfaceFormat2KHR;
  74977. void * pNext = {};
  74978. VULKAN_HPP_NAMESPACE::SurfaceFormatKHR surfaceFormat = {};
  74979. };
  74980. template <>
  74981. struct CppType<StructureType, StructureType::eSurfaceFormat2KHR>
  74982. {
  74983. using Type = SurfaceFormat2KHR;
  74984. };
  74985. #if defined( VK_USE_PLATFORM_WIN32_KHR )
  74986. struct SurfaceFullScreenExclusiveInfoEXT
  74987. {
  74988. using NativeType = VkSurfaceFullScreenExclusiveInfoEXT;
  74989. static const bool allowDuplicate = false;
  74990. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSurfaceFullScreenExclusiveInfoEXT;
  74991. # if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  74992. VULKAN_HPP_CONSTEXPR SurfaceFullScreenExclusiveInfoEXT(
  74993. VULKAN_HPP_NAMESPACE::FullScreenExclusiveEXT fullScreenExclusive_ = VULKAN_HPP_NAMESPACE::FullScreenExclusiveEXT::eDefault,
  74994. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  74995. : pNext( pNext_ )
  74996. , fullScreenExclusive( fullScreenExclusive_ )
  74997. {
  74998. }
  74999. VULKAN_HPP_CONSTEXPR SurfaceFullScreenExclusiveInfoEXT( SurfaceFullScreenExclusiveInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  75000. SurfaceFullScreenExclusiveInfoEXT( VkSurfaceFullScreenExclusiveInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  75001. : SurfaceFullScreenExclusiveInfoEXT( *reinterpret_cast<SurfaceFullScreenExclusiveInfoEXT const *>( &rhs ) )
  75002. {
  75003. }
  75004. # endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  75005. SurfaceFullScreenExclusiveInfoEXT & operator=( SurfaceFullScreenExclusiveInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  75006. SurfaceFullScreenExclusiveInfoEXT & operator=( VkSurfaceFullScreenExclusiveInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  75007. {
  75008. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SurfaceFullScreenExclusiveInfoEXT const *>( &rhs );
  75009. return *this;
  75010. }
  75011. # if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  75012. VULKAN_HPP_CONSTEXPR_14 SurfaceFullScreenExclusiveInfoEXT & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
  75013. {
  75014. pNext = pNext_;
  75015. return *this;
  75016. }
  75017. VULKAN_HPP_CONSTEXPR_14 SurfaceFullScreenExclusiveInfoEXT &
  75018. setFullScreenExclusive( VULKAN_HPP_NAMESPACE::FullScreenExclusiveEXT fullScreenExclusive_ ) VULKAN_HPP_NOEXCEPT
  75019. {
  75020. fullScreenExclusive = fullScreenExclusive_;
  75021. return *this;
  75022. }
  75023. # endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  75024. operator VkSurfaceFullScreenExclusiveInfoEXT const &() const VULKAN_HPP_NOEXCEPT
  75025. {
  75026. return *reinterpret_cast<const VkSurfaceFullScreenExclusiveInfoEXT *>( this );
  75027. }
  75028. operator VkSurfaceFullScreenExclusiveInfoEXT &() VULKAN_HPP_NOEXCEPT
  75029. {
  75030. return *reinterpret_cast<VkSurfaceFullScreenExclusiveInfoEXT *>( this );
  75031. }
  75032. # if defined( VULKAN_HPP_USE_REFLECT )
  75033. # if 14 <= VULKAN_HPP_CPP_VERSION
  75034. auto
  75035. # else
  75036. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::FullScreenExclusiveEXT const &>
  75037. # endif
  75038. reflect() const VULKAN_HPP_NOEXCEPT
  75039. {
  75040. return std::tie( sType, pNext, fullScreenExclusive );
  75041. }
  75042. # endif
  75043. # if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  75044. auto operator<=>( SurfaceFullScreenExclusiveInfoEXT const & ) const = default;
  75045. # else
  75046. bool operator==( SurfaceFullScreenExclusiveInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  75047. {
  75048. # if defined( VULKAN_HPP_USE_REFLECT )
  75049. return this->reflect() == rhs.reflect();
  75050. # else
  75051. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( fullScreenExclusive == rhs.fullScreenExclusive );
  75052. # endif
  75053. }
  75054. bool operator!=( SurfaceFullScreenExclusiveInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  75055. {
  75056. return !operator==( rhs );
  75057. }
  75058. # endif
  75059. public:
  75060. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSurfaceFullScreenExclusiveInfoEXT;
  75061. void * pNext = {};
  75062. VULKAN_HPP_NAMESPACE::FullScreenExclusiveEXT fullScreenExclusive = VULKAN_HPP_NAMESPACE::FullScreenExclusiveEXT::eDefault;
  75063. };
  75064. template <>
  75065. struct CppType<StructureType, StructureType::eSurfaceFullScreenExclusiveInfoEXT>
  75066. {
  75067. using Type = SurfaceFullScreenExclusiveInfoEXT;
  75068. };
  75069. #endif /*VK_USE_PLATFORM_WIN32_KHR*/
  75070. #if defined( VK_USE_PLATFORM_WIN32_KHR )
  75071. struct SurfaceFullScreenExclusiveWin32InfoEXT
  75072. {
  75073. using NativeType = VkSurfaceFullScreenExclusiveWin32InfoEXT;
  75074. static const bool allowDuplicate = false;
  75075. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSurfaceFullScreenExclusiveWin32InfoEXT;
  75076. # if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  75077. VULKAN_HPP_CONSTEXPR SurfaceFullScreenExclusiveWin32InfoEXT( HMONITOR hmonitor_ = {}, const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  75078. : pNext( pNext_ )
  75079. , hmonitor( hmonitor_ )
  75080. {
  75081. }
  75082. VULKAN_HPP_CONSTEXPR SurfaceFullScreenExclusiveWin32InfoEXT( SurfaceFullScreenExclusiveWin32InfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  75083. SurfaceFullScreenExclusiveWin32InfoEXT( VkSurfaceFullScreenExclusiveWin32InfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  75084. : SurfaceFullScreenExclusiveWin32InfoEXT( *reinterpret_cast<SurfaceFullScreenExclusiveWin32InfoEXT const *>( &rhs ) )
  75085. {
  75086. }
  75087. # endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  75088. SurfaceFullScreenExclusiveWin32InfoEXT & operator=( SurfaceFullScreenExclusiveWin32InfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  75089. SurfaceFullScreenExclusiveWin32InfoEXT & operator=( VkSurfaceFullScreenExclusiveWin32InfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  75090. {
  75091. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SurfaceFullScreenExclusiveWin32InfoEXT const *>( &rhs );
  75092. return *this;
  75093. }
  75094. # if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  75095. VULKAN_HPP_CONSTEXPR_14 SurfaceFullScreenExclusiveWin32InfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  75096. {
  75097. pNext = pNext_;
  75098. return *this;
  75099. }
  75100. VULKAN_HPP_CONSTEXPR_14 SurfaceFullScreenExclusiveWin32InfoEXT & setHmonitor( HMONITOR hmonitor_ ) VULKAN_HPP_NOEXCEPT
  75101. {
  75102. hmonitor = hmonitor_;
  75103. return *this;
  75104. }
  75105. # endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  75106. operator VkSurfaceFullScreenExclusiveWin32InfoEXT const &() const VULKAN_HPP_NOEXCEPT
  75107. {
  75108. return *reinterpret_cast<const VkSurfaceFullScreenExclusiveWin32InfoEXT *>( this );
  75109. }
  75110. operator VkSurfaceFullScreenExclusiveWin32InfoEXT &() VULKAN_HPP_NOEXCEPT
  75111. {
  75112. return *reinterpret_cast<VkSurfaceFullScreenExclusiveWin32InfoEXT *>( this );
  75113. }
  75114. # if defined( VULKAN_HPP_USE_REFLECT )
  75115. # if 14 <= VULKAN_HPP_CPP_VERSION
  75116. auto
  75117. # else
  75118. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, HMONITOR const &>
  75119. # endif
  75120. reflect() const VULKAN_HPP_NOEXCEPT
  75121. {
  75122. return std::tie( sType, pNext, hmonitor );
  75123. }
  75124. # endif
  75125. # if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  75126. auto operator<=>( SurfaceFullScreenExclusiveWin32InfoEXT const & ) const = default;
  75127. # else
  75128. bool operator==( SurfaceFullScreenExclusiveWin32InfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  75129. {
  75130. # if defined( VULKAN_HPP_USE_REFLECT )
  75131. return this->reflect() == rhs.reflect();
  75132. # else
  75133. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( hmonitor == rhs.hmonitor );
  75134. # endif
  75135. }
  75136. bool operator!=( SurfaceFullScreenExclusiveWin32InfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  75137. {
  75138. return !operator==( rhs );
  75139. }
  75140. # endif
  75141. public:
  75142. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSurfaceFullScreenExclusiveWin32InfoEXT;
  75143. const void * pNext = {};
  75144. HMONITOR hmonitor = {};
  75145. };
  75146. template <>
  75147. struct CppType<StructureType, StructureType::eSurfaceFullScreenExclusiveWin32InfoEXT>
  75148. {
  75149. using Type = SurfaceFullScreenExclusiveWin32InfoEXT;
  75150. };
  75151. #endif /*VK_USE_PLATFORM_WIN32_KHR*/
  75152. struct SurfaceProtectedCapabilitiesKHR
  75153. {
  75154. using NativeType = VkSurfaceProtectedCapabilitiesKHR;
  75155. static const bool allowDuplicate = false;
  75156. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSurfaceProtectedCapabilitiesKHR;
  75157. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  75158. VULKAN_HPP_CONSTEXPR SurfaceProtectedCapabilitiesKHR( VULKAN_HPP_NAMESPACE::Bool32 supportsProtected_ = {},
  75159. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  75160. : pNext( pNext_ )
  75161. , supportsProtected( supportsProtected_ )
  75162. {
  75163. }
  75164. VULKAN_HPP_CONSTEXPR SurfaceProtectedCapabilitiesKHR( SurfaceProtectedCapabilitiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  75165. SurfaceProtectedCapabilitiesKHR( VkSurfaceProtectedCapabilitiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  75166. : SurfaceProtectedCapabilitiesKHR( *reinterpret_cast<SurfaceProtectedCapabilitiesKHR const *>( &rhs ) )
  75167. {
  75168. }
  75169. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  75170. SurfaceProtectedCapabilitiesKHR & operator=( SurfaceProtectedCapabilitiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  75171. SurfaceProtectedCapabilitiesKHR & operator=( VkSurfaceProtectedCapabilitiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  75172. {
  75173. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SurfaceProtectedCapabilitiesKHR const *>( &rhs );
  75174. return *this;
  75175. }
  75176. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  75177. VULKAN_HPP_CONSTEXPR_14 SurfaceProtectedCapabilitiesKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  75178. {
  75179. pNext = pNext_;
  75180. return *this;
  75181. }
  75182. VULKAN_HPP_CONSTEXPR_14 SurfaceProtectedCapabilitiesKHR & setSupportsProtected( VULKAN_HPP_NAMESPACE::Bool32 supportsProtected_ ) VULKAN_HPP_NOEXCEPT
  75183. {
  75184. supportsProtected = supportsProtected_;
  75185. return *this;
  75186. }
  75187. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  75188. operator VkSurfaceProtectedCapabilitiesKHR const &() const VULKAN_HPP_NOEXCEPT
  75189. {
  75190. return *reinterpret_cast<const VkSurfaceProtectedCapabilitiesKHR *>( this );
  75191. }
  75192. operator VkSurfaceProtectedCapabilitiesKHR &() VULKAN_HPP_NOEXCEPT
  75193. {
  75194. return *reinterpret_cast<VkSurfaceProtectedCapabilitiesKHR *>( this );
  75195. }
  75196. #if defined( VULKAN_HPP_USE_REFLECT )
  75197. # if 14 <= VULKAN_HPP_CPP_VERSION
  75198. auto
  75199. # else
  75200. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
  75201. # endif
  75202. reflect() const VULKAN_HPP_NOEXCEPT
  75203. {
  75204. return std::tie( sType, pNext, supportsProtected );
  75205. }
  75206. #endif
  75207. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  75208. auto operator<=>( SurfaceProtectedCapabilitiesKHR const & ) const = default;
  75209. #else
  75210. bool operator==( SurfaceProtectedCapabilitiesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  75211. {
  75212. # if defined( VULKAN_HPP_USE_REFLECT )
  75213. return this->reflect() == rhs.reflect();
  75214. # else
  75215. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( supportsProtected == rhs.supportsProtected );
  75216. # endif
  75217. }
  75218. bool operator!=( SurfaceProtectedCapabilitiesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  75219. {
  75220. return !operator==( rhs );
  75221. }
  75222. #endif
  75223. public:
  75224. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSurfaceProtectedCapabilitiesKHR;
  75225. const void * pNext = {};
  75226. VULKAN_HPP_NAMESPACE::Bool32 supportsProtected = {};
  75227. };
  75228. template <>
  75229. struct CppType<StructureType, StructureType::eSurfaceProtectedCapabilitiesKHR>
  75230. {
  75231. using Type = SurfaceProtectedCapabilitiesKHR;
  75232. };
  75233. struct SwapchainCounterCreateInfoEXT
  75234. {
  75235. using NativeType = VkSwapchainCounterCreateInfoEXT;
  75236. static const bool allowDuplicate = false;
  75237. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSwapchainCounterCreateInfoEXT;
  75238. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  75239. VULKAN_HPP_CONSTEXPR SwapchainCounterCreateInfoEXT( VULKAN_HPP_NAMESPACE::SurfaceCounterFlagsEXT surfaceCounters_ = {},
  75240. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  75241. : pNext( pNext_ )
  75242. , surfaceCounters( surfaceCounters_ )
  75243. {
  75244. }
  75245. VULKAN_HPP_CONSTEXPR SwapchainCounterCreateInfoEXT( SwapchainCounterCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  75246. SwapchainCounterCreateInfoEXT( VkSwapchainCounterCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  75247. : SwapchainCounterCreateInfoEXT( *reinterpret_cast<SwapchainCounterCreateInfoEXT const *>( &rhs ) )
  75248. {
  75249. }
  75250. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  75251. SwapchainCounterCreateInfoEXT & operator=( SwapchainCounterCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  75252. SwapchainCounterCreateInfoEXT & operator=( VkSwapchainCounterCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  75253. {
  75254. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SwapchainCounterCreateInfoEXT const *>( &rhs );
  75255. return *this;
  75256. }
  75257. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  75258. VULKAN_HPP_CONSTEXPR_14 SwapchainCounterCreateInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  75259. {
  75260. pNext = pNext_;
  75261. return *this;
  75262. }
  75263. VULKAN_HPP_CONSTEXPR_14 SwapchainCounterCreateInfoEXT &
  75264. setSurfaceCounters( VULKAN_HPP_NAMESPACE::SurfaceCounterFlagsEXT surfaceCounters_ ) VULKAN_HPP_NOEXCEPT
  75265. {
  75266. surfaceCounters = surfaceCounters_;
  75267. return *this;
  75268. }
  75269. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  75270. operator VkSwapchainCounterCreateInfoEXT const &() const VULKAN_HPP_NOEXCEPT
  75271. {
  75272. return *reinterpret_cast<const VkSwapchainCounterCreateInfoEXT *>( this );
  75273. }
  75274. operator VkSwapchainCounterCreateInfoEXT &() VULKAN_HPP_NOEXCEPT
  75275. {
  75276. return *reinterpret_cast<VkSwapchainCounterCreateInfoEXT *>( this );
  75277. }
  75278. #if defined( VULKAN_HPP_USE_REFLECT )
  75279. # if 14 <= VULKAN_HPP_CPP_VERSION
  75280. auto
  75281. # else
  75282. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::SurfaceCounterFlagsEXT const &>
  75283. # endif
  75284. reflect() const VULKAN_HPP_NOEXCEPT
  75285. {
  75286. return std::tie( sType, pNext, surfaceCounters );
  75287. }
  75288. #endif
  75289. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  75290. auto operator<=>( SwapchainCounterCreateInfoEXT const & ) const = default;
  75291. #else
  75292. bool operator==( SwapchainCounterCreateInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  75293. {
  75294. # if defined( VULKAN_HPP_USE_REFLECT )
  75295. return this->reflect() == rhs.reflect();
  75296. # else
  75297. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( surfaceCounters == rhs.surfaceCounters );
  75298. # endif
  75299. }
  75300. bool operator!=( SwapchainCounterCreateInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  75301. {
  75302. return !operator==( rhs );
  75303. }
  75304. #endif
  75305. public:
  75306. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSwapchainCounterCreateInfoEXT;
  75307. const void * pNext = {};
  75308. VULKAN_HPP_NAMESPACE::SurfaceCounterFlagsEXT surfaceCounters = {};
  75309. };
  75310. template <>
  75311. struct CppType<StructureType, StructureType::eSwapchainCounterCreateInfoEXT>
  75312. {
  75313. using Type = SwapchainCounterCreateInfoEXT;
  75314. };
  75315. struct SwapchainCreateInfoKHR
  75316. {
  75317. using NativeType = VkSwapchainCreateInfoKHR;
  75318. static const bool allowDuplicate = false;
  75319. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSwapchainCreateInfoKHR;
  75320. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  75321. VULKAN_HPP_CONSTEXPR
  75322. SwapchainCreateInfoKHR( VULKAN_HPP_NAMESPACE::SwapchainCreateFlagsKHR flags_ = {},
  75323. VULKAN_HPP_NAMESPACE::SurfaceKHR surface_ = {},
  75324. uint32_t minImageCount_ = {},
  75325. VULKAN_HPP_NAMESPACE::Format imageFormat_ = VULKAN_HPP_NAMESPACE::Format::eUndefined,
  75326. VULKAN_HPP_NAMESPACE::ColorSpaceKHR imageColorSpace_ = VULKAN_HPP_NAMESPACE::ColorSpaceKHR::eSrgbNonlinear,
  75327. VULKAN_HPP_NAMESPACE::Extent2D imageExtent_ = {},
  75328. uint32_t imageArrayLayers_ = {},
  75329. VULKAN_HPP_NAMESPACE::ImageUsageFlags imageUsage_ = {},
  75330. VULKAN_HPP_NAMESPACE::SharingMode imageSharingMode_ = VULKAN_HPP_NAMESPACE::SharingMode::eExclusive,
  75331. uint32_t queueFamilyIndexCount_ = {},
  75332. const uint32_t * pQueueFamilyIndices_ = {},
  75333. VULKAN_HPP_NAMESPACE::SurfaceTransformFlagBitsKHR preTransform_ = VULKAN_HPP_NAMESPACE::SurfaceTransformFlagBitsKHR::eIdentity,
  75334. VULKAN_HPP_NAMESPACE::CompositeAlphaFlagBitsKHR compositeAlpha_ = VULKAN_HPP_NAMESPACE::CompositeAlphaFlagBitsKHR::eOpaque,
  75335. VULKAN_HPP_NAMESPACE::PresentModeKHR presentMode_ = VULKAN_HPP_NAMESPACE::PresentModeKHR::eImmediate,
  75336. VULKAN_HPP_NAMESPACE::Bool32 clipped_ = {},
  75337. VULKAN_HPP_NAMESPACE::SwapchainKHR oldSwapchain_ = {},
  75338. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  75339. : pNext( pNext_ )
  75340. , flags( flags_ )
  75341. , surface( surface_ )
  75342. , minImageCount( minImageCount_ )
  75343. , imageFormat( imageFormat_ )
  75344. , imageColorSpace( imageColorSpace_ )
  75345. , imageExtent( imageExtent_ )
  75346. , imageArrayLayers( imageArrayLayers_ )
  75347. , imageUsage( imageUsage_ )
  75348. , imageSharingMode( imageSharingMode_ )
  75349. , queueFamilyIndexCount( queueFamilyIndexCount_ )
  75350. , pQueueFamilyIndices( pQueueFamilyIndices_ )
  75351. , preTransform( preTransform_ )
  75352. , compositeAlpha( compositeAlpha_ )
  75353. , presentMode( presentMode_ )
  75354. , clipped( clipped_ )
  75355. , oldSwapchain( oldSwapchain_ )
  75356. {
  75357. }
  75358. VULKAN_HPP_CONSTEXPR SwapchainCreateInfoKHR( SwapchainCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  75359. SwapchainCreateInfoKHR( VkSwapchainCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  75360. : SwapchainCreateInfoKHR( *reinterpret_cast<SwapchainCreateInfoKHR const *>( &rhs ) )
  75361. {
  75362. }
  75363. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  75364. SwapchainCreateInfoKHR( VULKAN_HPP_NAMESPACE::SwapchainCreateFlagsKHR flags_,
  75365. VULKAN_HPP_NAMESPACE::SurfaceKHR surface_,
  75366. uint32_t minImageCount_,
  75367. VULKAN_HPP_NAMESPACE::Format imageFormat_,
  75368. VULKAN_HPP_NAMESPACE::ColorSpaceKHR imageColorSpace_,
  75369. VULKAN_HPP_NAMESPACE::Extent2D imageExtent_,
  75370. uint32_t imageArrayLayers_,
  75371. VULKAN_HPP_NAMESPACE::ImageUsageFlags imageUsage_,
  75372. VULKAN_HPP_NAMESPACE::SharingMode imageSharingMode_,
  75373. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint32_t> const & queueFamilyIndices_,
  75374. VULKAN_HPP_NAMESPACE::SurfaceTransformFlagBitsKHR preTransform_ = VULKAN_HPP_NAMESPACE::SurfaceTransformFlagBitsKHR::eIdentity,
  75375. VULKAN_HPP_NAMESPACE::CompositeAlphaFlagBitsKHR compositeAlpha_ = VULKAN_HPP_NAMESPACE::CompositeAlphaFlagBitsKHR::eOpaque,
  75376. VULKAN_HPP_NAMESPACE::PresentModeKHR presentMode_ = VULKAN_HPP_NAMESPACE::PresentModeKHR::eImmediate,
  75377. VULKAN_HPP_NAMESPACE::Bool32 clipped_ = {},
  75378. VULKAN_HPP_NAMESPACE::SwapchainKHR oldSwapchain_ = {},
  75379. const void * pNext_ = nullptr )
  75380. : pNext( pNext_ )
  75381. , flags( flags_ )
  75382. , surface( surface_ )
  75383. , minImageCount( minImageCount_ )
  75384. , imageFormat( imageFormat_ )
  75385. , imageColorSpace( imageColorSpace_ )
  75386. , imageExtent( imageExtent_ )
  75387. , imageArrayLayers( imageArrayLayers_ )
  75388. , imageUsage( imageUsage_ )
  75389. , imageSharingMode( imageSharingMode_ )
  75390. , queueFamilyIndexCount( static_cast<uint32_t>( queueFamilyIndices_.size() ) )
  75391. , pQueueFamilyIndices( queueFamilyIndices_.data() )
  75392. , preTransform( preTransform_ )
  75393. , compositeAlpha( compositeAlpha_ )
  75394. , presentMode( presentMode_ )
  75395. , clipped( clipped_ )
  75396. , oldSwapchain( oldSwapchain_ )
  75397. {
  75398. }
  75399. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  75400. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  75401. SwapchainCreateInfoKHR & operator=( SwapchainCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  75402. SwapchainCreateInfoKHR & operator=( VkSwapchainCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  75403. {
  75404. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SwapchainCreateInfoKHR const *>( &rhs );
  75405. return *this;
  75406. }
  75407. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  75408. VULKAN_HPP_CONSTEXPR_14 SwapchainCreateInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  75409. {
  75410. pNext = pNext_;
  75411. return *this;
  75412. }
  75413. VULKAN_HPP_CONSTEXPR_14 SwapchainCreateInfoKHR & setFlags( VULKAN_HPP_NAMESPACE::SwapchainCreateFlagsKHR flags_ ) VULKAN_HPP_NOEXCEPT
  75414. {
  75415. flags = flags_;
  75416. return *this;
  75417. }
  75418. VULKAN_HPP_CONSTEXPR_14 SwapchainCreateInfoKHR & setSurface( VULKAN_HPP_NAMESPACE::SurfaceKHR surface_ ) VULKAN_HPP_NOEXCEPT
  75419. {
  75420. surface = surface_;
  75421. return *this;
  75422. }
  75423. VULKAN_HPP_CONSTEXPR_14 SwapchainCreateInfoKHR & setMinImageCount( uint32_t minImageCount_ ) VULKAN_HPP_NOEXCEPT
  75424. {
  75425. minImageCount = minImageCount_;
  75426. return *this;
  75427. }
  75428. VULKAN_HPP_CONSTEXPR_14 SwapchainCreateInfoKHR & setImageFormat( VULKAN_HPP_NAMESPACE::Format imageFormat_ ) VULKAN_HPP_NOEXCEPT
  75429. {
  75430. imageFormat = imageFormat_;
  75431. return *this;
  75432. }
  75433. VULKAN_HPP_CONSTEXPR_14 SwapchainCreateInfoKHR & setImageColorSpace( VULKAN_HPP_NAMESPACE::ColorSpaceKHR imageColorSpace_ ) VULKAN_HPP_NOEXCEPT
  75434. {
  75435. imageColorSpace = imageColorSpace_;
  75436. return *this;
  75437. }
  75438. VULKAN_HPP_CONSTEXPR_14 SwapchainCreateInfoKHR & setImageExtent( VULKAN_HPP_NAMESPACE::Extent2D const & imageExtent_ ) VULKAN_HPP_NOEXCEPT
  75439. {
  75440. imageExtent = imageExtent_;
  75441. return *this;
  75442. }
  75443. VULKAN_HPP_CONSTEXPR_14 SwapchainCreateInfoKHR & setImageArrayLayers( uint32_t imageArrayLayers_ ) VULKAN_HPP_NOEXCEPT
  75444. {
  75445. imageArrayLayers = imageArrayLayers_;
  75446. return *this;
  75447. }
  75448. VULKAN_HPP_CONSTEXPR_14 SwapchainCreateInfoKHR & setImageUsage( VULKAN_HPP_NAMESPACE::ImageUsageFlags imageUsage_ ) VULKAN_HPP_NOEXCEPT
  75449. {
  75450. imageUsage = imageUsage_;
  75451. return *this;
  75452. }
  75453. VULKAN_HPP_CONSTEXPR_14 SwapchainCreateInfoKHR & setImageSharingMode( VULKAN_HPP_NAMESPACE::SharingMode imageSharingMode_ ) VULKAN_HPP_NOEXCEPT
  75454. {
  75455. imageSharingMode = imageSharingMode_;
  75456. return *this;
  75457. }
  75458. VULKAN_HPP_CONSTEXPR_14 SwapchainCreateInfoKHR & setQueueFamilyIndexCount( uint32_t queueFamilyIndexCount_ ) VULKAN_HPP_NOEXCEPT
  75459. {
  75460. queueFamilyIndexCount = queueFamilyIndexCount_;
  75461. return *this;
  75462. }
  75463. VULKAN_HPP_CONSTEXPR_14 SwapchainCreateInfoKHR & setPQueueFamilyIndices( const uint32_t * pQueueFamilyIndices_ ) VULKAN_HPP_NOEXCEPT
  75464. {
  75465. pQueueFamilyIndices = pQueueFamilyIndices_;
  75466. return *this;
  75467. }
  75468. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  75469. SwapchainCreateInfoKHR &
  75470. setQueueFamilyIndices( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint32_t> const & queueFamilyIndices_ ) VULKAN_HPP_NOEXCEPT
  75471. {
  75472. queueFamilyIndexCount = static_cast<uint32_t>( queueFamilyIndices_.size() );
  75473. pQueueFamilyIndices = queueFamilyIndices_.data();
  75474. return *this;
  75475. }
  75476. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  75477. VULKAN_HPP_CONSTEXPR_14 SwapchainCreateInfoKHR & setPreTransform( VULKAN_HPP_NAMESPACE::SurfaceTransformFlagBitsKHR preTransform_ ) VULKAN_HPP_NOEXCEPT
  75478. {
  75479. preTransform = preTransform_;
  75480. return *this;
  75481. }
  75482. VULKAN_HPP_CONSTEXPR_14 SwapchainCreateInfoKHR & setCompositeAlpha( VULKAN_HPP_NAMESPACE::CompositeAlphaFlagBitsKHR compositeAlpha_ ) VULKAN_HPP_NOEXCEPT
  75483. {
  75484. compositeAlpha = compositeAlpha_;
  75485. return *this;
  75486. }
  75487. VULKAN_HPP_CONSTEXPR_14 SwapchainCreateInfoKHR & setPresentMode( VULKAN_HPP_NAMESPACE::PresentModeKHR presentMode_ ) VULKAN_HPP_NOEXCEPT
  75488. {
  75489. presentMode = presentMode_;
  75490. return *this;
  75491. }
  75492. VULKAN_HPP_CONSTEXPR_14 SwapchainCreateInfoKHR & setClipped( VULKAN_HPP_NAMESPACE::Bool32 clipped_ ) VULKAN_HPP_NOEXCEPT
  75493. {
  75494. clipped = clipped_;
  75495. return *this;
  75496. }
  75497. VULKAN_HPP_CONSTEXPR_14 SwapchainCreateInfoKHR & setOldSwapchain( VULKAN_HPP_NAMESPACE::SwapchainKHR oldSwapchain_ ) VULKAN_HPP_NOEXCEPT
  75498. {
  75499. oldSwapchain = oldSwapchain_;
  75500. return *this;
  75501. }
  75502. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  75503. operator VkSwapchainCreateInfoKHR const &() const VULKAN_HPP_NOEXCEPT
  75504. {
  75505. return *reinterpret_cast<const VkSwapchainCreateInfoKHR *>( this );
  75506. }
  75507. operator VkSwapchainCreateInfoKHR &() VULKAN_HPP_NOEXCEPT
  75508. {
  75509. return *reinterpret_cast<VkSwapchainCreateInfoKHR *>( this );
  75510. }
  75511. #if defined( VULKAN_HPP_USE_REFLECT )
  75512. # if 14 <= VULKAN_HPP_CPP_VERSION
  75513. auto
  75514. # else
  75515. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  75516. const void * const &,
  75517. VULKAN_HPP_NAMESPACE::SwapchainCreateFlagsKHR const &,
  75518. VULKAN_HPP_NAMESPACE::SurfaceKHR const &,
  75519. uint32_t const &,
  75520. VULKAN_HPP_NAMESPACE::Format const &,
  75521. VULKAN_HPP_NAMESPACE::ColorSpaceKHR const &,
  75522. VULKAN_HPP_NAMESPACE::Extent2D const &,
  75523. uint32_t const &,
  75524. VULKAN_HPP_NAMESPACE::ImageUsageFlags const &,
  75525. VULKAN_HPP_NAMESPACE::SharingMode const &,
  75526. uint32_t const &,
  75527. const uint32_t * const &,
  75528. VULKAN_HPP_NAMESPACE::SurfaceTransformFlagBitsKHR const &,
  75529. VULKAN_HPP_NAMESPACE::CompositeAlphaFlagBitsKHR const &,
  75530. VULKAN_HPP_NAMESPACE::PresentModeKHR const &,
  75531. VULKAN_HPP_NAMESPACE::Bool32 const &,
  75532. VULKAN_HPP_NAMESPACE::SwapchainKHR const &>
  75533. # endif
  75534. reflect() const VULKAN_HPP_NOEXCEPT
  75535. {
  75536. return std::tie( sType,
  75537. pNext,
  75538. flags,
  75539. surface,
  75540. minImageCount,
  75541. imageFormat,
  75542. imageColorSpace,
  75543. imageExtent,
  75544. imageArrayLayers,
  75545. imageUsage,
  75546. imageSharingMode,
  75547. queueFamilyIndexCount,
  75548. pQueueFamilyIndices,
  75549. preTransform,
  75550. compositeAlpha,
  75551. presentMode,
  75552. clipped,
  75553. oldSwapchain );
  75554. }
  75555. #endif
  75556. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  75557. auto operator<=>( SwapchainCreateInfoKHR const & ) const = default;
  75558. #else
  75559. bool operator==( SwapchainCreateInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  75560. {
  75561. # if defined( VULKAN_HPP_USE_REFLECT )
  75562. return this->reflect() == rhs.reflect();
  75563. # else
  75564. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( flags == rhs.flags ) && ( surface == rhs.surface ) &&
  75565. ( minImageCount == rhs.minImageCount ) && ( imageFormat == rhs.imageFormat ) && ( imageColorSpace == rhs.imageColorSpace ) &&
  75566. ( imageExtent == rhs.imageExtent ) && ( imageArrayLayers == rhs.imageArrayLayers ) && ( imageUsage == rhs.imageUsage ) &&
  75567. ( imageSharingMode == rhs.imageSharingMode ) && ( queueFamilyIndexCount == rhs.queueFamilyIndexCount ) &&
  75568. ( pQueueFamilyIndices == rhs.pQueueFamilyIndices ) && ( preTransform == rhs.preTransform ) && ( compositeAlpha == rhs.compositeAlpha ) &&
  75569. ( presentMode == rhs.presentMode ) && ( clipped == rhs.clipped ) && ( oldSwapchain == rhs.oldSwapchain );
  75570. # endif
  75571. }
  75572. bool operator!=( SwapchainCreateInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  75573. {
  75574. return !operator==( rhs );
  75575. }
  75576. #endif
  75577. public:
  75578. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSwapchainCreateInfoKHR;
  75579. const void * pNext = {};
  75580. VULKAN_HPP_NAMESPACE::SwapchainCreateFlagsKHR flags = {};
  75581. VULKAN_HPP_NAMESPACE::SurfaceKHR surface = {};
  75582. uint32_t minImageCount = {};
  75583. VULKAN_HPP_NAMESPACE::Format imageFormat = VULKAN_HPP_NAMESPACE::Format::eUndefined;
  75584. VULKAN_HPP_NAMESPACE::ColorSpaceKHR imageColorSpace = VULKAN_HPP_NAMESPACE::ColorSpaceKHR::eSrgbNonlinear;
  75585. VULKAN_HPP_NAMESPACE::Extent2D imageExtent = {};
  75586. uint32_t imageArrayLayers = {};
  75587. VULKAN_HPP_NAMESPACE::ImageUsageFlags imageUsage = {};
  75588. VULKAN_HPP_NAMESPACE::SharingMode imageSharingMode = VULKAN_HPP_NAMESPACE::SharingMode::eExclusive;
  75589. uint32_t queueFamilyIndexCount = {};
  75590. const uint32_t * pQueueFamilyIndices = {};
  75591. VULKAN_HPP_NAMESPACE::SurfaceTransformFlagBitsKHR preTransform = VULKAN_HPP_NAMESPACE::SurfaceTransformFlagBitsKHR::eIdentity;
  75592. VULKAN_HPP_NAMESPACE::CompositeAlphaFlagBitsKHR compositeAlpha = VULKAN_HPP_NAMESPACE::CompositeAlphaFlagBitsKHR::eOpaque;
  75593. VULKAN_HPP_NAMESPACE::PresentModeKHR presentMode = VULKAN_HPP_NAMESPACE::PresentModeKHR::eImmediate;
  75594. VULKAN_HPP_NAMESPACE::Bool32 clipped = {};
  75595. VULKAN_HPP_NAMESPACE::SwapchainKHR oldSwapchain = {};
  75596. };
  75597. template <>
  75598. struct CppType<StructureType, StructureType::eSwapchainCreateInfoKHR>
  75599. {
  75600. using Type = SwapchainCreateInfoKHR;
  75601. };
  75602. struct SwapchainDisplayNativeHdrCreateInfoAMD
  75603. {
  75604. using NativeType = VkSwapchainDisplayNativeHdrCreateInfoAMD;
  75605. static const bool allowDuplicate = false;
  75606. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSwapchainDisplayNativeHdrCreateInfoAMD;
  75607. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  75608. VULKAN_HPP_CONSTEXPR SwapchainDisplayNativeHdrCreateInfoAMD( VULKAN_HPP_NAMESPACE::Bool32 localDimmingEnable_ = {},
  75609. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  75610. : pNext( pNext_ )
  75611. , localDimmingEnable( localDimmingEnable_ )
  75612. {
  75613. }
  75614. VULKAN_HPP_CONSTEXPR SwapchainDisplayNativeHdrCreateInfoAMD( SwapchainDisplayNativeHdrCreateInfoAMD const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  75615. SwapchainDisplayNativeHdrCreateInfoAMD( VkSwapchainDisplayNativeHdrCreateInfoAMD const & rhs ) VULKAN_HPP_NOEXCEPT
  75616. : SwapchainDisplayNativeHdrCreateInfoAMD( *reinterpret_cast<SwapchainDisplayNativeHdrCreateInfoAMD const *>( &rhs ) )
  75617. {
  75618. }
  75619. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  75620. SwapchainDisplayNativeHdrCreateInfoAMD & operator=( SwapchainDisplayNativeHdrCreateInfoAMD const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  75621. SwapchainDisplayNativeHdrCreateInfoAMD & operator=( VkSwapchainDisplayNativeHdrCreateInfoAMD const & rhs ) VULKAN_HPP_NOEXCEPT
  75622. {
  75623. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SwapchainDisplayNativeHdrCreateInfoAMD const *>( &rhs );
  75624. return *this;
  75625. }
  75626. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  75627. VULKAN_HPP_CONSTEXPR_14 SwapchainDisplayNativeHdrCreateInfoAMD & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  75628. {
  75629. pNext = pNext_;
  75630. return *this;
  75631. }
  75632. VULKAN_HPP_CONSTEXPR_14 SwapchainDisplayNativeHdrCreateInfoAMD &
  75633. setLocalDimmingEnable( VULKAN_HPP_NAMESPACE::Bool32 localDimmingEnable_ ) VULKAN_HPP_NOEXCEPT
  75634. {
  75635. localDimmingEnable = localDimmingEnable_;
  75636. return *this;
  75637. }
  75638. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  75639. operator VkSwapchainDisplayNativeHdrCreateInfoAMD const &() const VULKAN_HPP_NOEXCEPT
  75640. {
  75641. return *reinterpret_cast<const VkSwapchainDisplayNativeHdrCreateInfoAMD *>( this );
  75642. }
  75643. operator VkSwapchainDisplayNativeHdrCreateInfoAMD &() VULKAN_HPP_NOEXCEPT
  75644. {
  75645. return *reinterpret_cast<VkSwapchainDisplayNativeHdrCreateInfoAMD *>( this );
  75646. }
  75647. #if defined( VULKAN_HPP_USE_REFLECT )
  75648. # if 14 <= VULKAN_HPP_CPP_VERSION
  75649. auto
  75650. # else
  75651. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
  75652. # endif
  75653. reflect() const VULKAN_HPP_NOEXCEPT
  75654. {
  75655. return std::tie( sType, pNext, localDimmingEnable );
  75656. }
  75657. #endif
  75658. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  75659. auto operator<=>( SwapchainDisplayNativeHdrCreateInfoAMD const & ) const = default;
  75660. #else
  75661. bool operator==( SwapchainDisplayNativeHdrCreateInfoAMD const & rhs ) const VULKAN_HPP_NOEXCEPT
  75662. {
  75663. # if defined( VULKAN_HPP_USE_REFLECT )
  75664. return this->reflect() == rhs.reflect();
  75665. # else
  75666. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( localDimmingEnable == rhs.localDimmingEnable );
  75667. # endif
  75668. }
  75669. bool operator!=( SwapchainDisplayNativeHdrCreateInfoAMD const & rhs ) const VULKAN_HPP_NOEXCEPT
  75670. {
  75671. return !operator==( rhs );
  75672. }
  75673. #endif
  75674. public:
  75675. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSwapchainDisplayNativeHdrCreateInfoAMD;
  75676. const void * pNext = {};
  75677. VULKAN_HPP_NAMESPACE::Bool32 localDimmingEnable = {};
  75678. };
  75679. template <>
  75680. struct CppType<StructureType, StructureType::eSwapchainDisplayNativeHdrCreateInfoAMD>
  75681. {
  75682. using Type = SwapchainDisplayNativeHdrCreateInfoAMD;
  75683. };
  75684. struct TextureLODGatherFormatPropertiesAMD
  75685. {
  75686. using NativeType = VkTextureLODGatherFormatPropertiesAMD;
  75687. static const bool allowDuplicate = false;
  75688. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eTextureLodGatherFormatPropertiesAMD;
  75689. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  75690. VULKAN_HPP_CONSTEXPR TextureLODGatherFormatPropertiesAMD( VULKAN_HPP_NAMESPACE::Bool32 supportsTextureGatherLODBiasAMD_ = {},
  75691. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  75692. : pNext( pNext_ )
  75693. , supportsTextureGatherLODBiasAMD( supportsTextureGatherLODBiasAMD_ )
  75694. {
  75695. }
  75696. VULKAN_HPP_CONSTEXPR TextureLODGatherFormatPropertiesAMD( TextureLODGatherFormatPropertiesAMD const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  75697. TextureLODGatherFormatPropertiesAMD( VkTextureLODGatherFormatPropertiesAMD const & rhs ) VULKAN_HPP_NOEXCEPT
  75698. : TextureLODGatherFormatPropertiesAMD( *reinterpret_cast<TextureLODGatherFormatPropertiesAMD const *>( &rhs ) )
  75699. {
  75700. }
  75701. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  75702. TextureLODGatherFormatPropertiesAMD & operator=( TextureLODGatherFormatPropertiesAMD const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  75703. TextureLODGatherFormatPropertiesAMD & operator=( VkTextureLODGatherFormatPropertiesAMD const & rhs ) VULKAN_HPP_NOEXCEPT
  75704. {
  75705. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::TextureLODGatherFormatPropertiesAMD const *>( &rhs );
  75706. return *this;
  75707. }
  75708. operator VkTextureLODGatherFormatPropertiesAMD const &() const VULKAN_HPP_NOEXCEPT
  75709. {
  75710. return *reinterpret_cast<const VkTextureLODGatherFormatPropertiesAMD *>( this );
  75711. }
  75712. operator VkTextureLODGatherFormatPropertiesAMD &() VULKAN_HPP_NOEXCEPT
  75713. {
  75714. return *reinterpret_cast<VkTextureLODGatherFormatPropertiesAMD *>( this );
  75715. }
  75716. #if defined( VULKAN_HPP_USE_REFLECT )
  75717. # if 14 <= VULKAN_HPP_CPP_VERSION
  75718. auto
  75719. # else
  75720. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
  75721. # endif
  75722. reflect() const VULKAN_HPP_NOEXCEPT
  75723. {
  75724. return std::tie( sType, pNext, supportsTextureGatherLODBiasAMD );
  75725. }
  75726. #endif
  75727. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  75728. auto operator<=>( TextureLODGatherFormatPropertiesAMD const & ) const = default;
  75729. #else
  75730. bool operator==( TextureLODGatherFormatPropertiesAMD const & rhs ) const VULKAN_HPP_NOEXCEPT
  75731. {
  75732. # if defined( VULKAN_HPP_USE_REFLECT )
  75733. return this->reflect() == rhs.reflect();
  75734. # else
  75735. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( supportsTextureGatherLODBiasAMD == rhs.supportsTextureGatherLODBiasAMD );
  75736. # endif
  75737. }
  75738. bool operator!=( TextureLODGatherFormatPropertiesAMD const & rhs ) const VULKAN_HPP_NOEXCEPT
  75739. {
  75740. return !operator==( rhs );
  75741. }
  75742. #endif
  75743. public:
  75744. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eTextureLodGatherFormatPropertiesAMD;
  75745. void * pNext = {};
  75746. VULKAN_HPP_NAMESPACE::Bool32 supportsTextureGatherLODBiasAMD = {};
  75747. };
  75748. template <>
  75749. struct CppType<StructureType, StructureType::eTextureLodGatherFormatPropertiesAMD>
  75750. {
  75751. using Type = TextureLODGatherFormatPropertiesAMD;
  75752. };
  75753. struct TilePropertiesQCOM
  75754. {
  75755. using NativeType = VkTilePropertiesQCOM;
  75756. static const bool allowDuplicate = false;
  75757. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eTilePropertiesQCOM;
  75758. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  75759. VULKAN_HPP_CONSTEXPR TilePropertiesQCOM( VULKAN_HPP_NAMESPACE::Extent3D tileSize_ = {},
  75760. VULKAN_HPP_NAMESPACE::Extent2D apronSize_ = {},
  75761. VULKAN_HPP_NAMESPACE::Offset2D origin_ = {},
  75762. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  75763. : pNext( pNext_ )
  75764. , tileSize( tileSize_ )
  75765. , apronSize( apronSize_ )
  75766. , origin( origin_ )
  75767. {
  75768. }
  75769. VULKAN_HPP_CONSTEXPR TilePropertiesQCOM( TilePropertiesQCOM const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  75770. TilePropertiesQCOM( VkTilePropertiesQCOM const & rhs ) VULKAN_HPP_NOEXCEPT : TilePropertiesQCOM( *reinterpret_cast<TilePropertiesQCOM const *>( &rhs ) ) {}
  75771. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  75772. TilePropertiesQCOM & operator=( TilePropertiesQCOM const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  75773. TilePropertiesQCOM & operator=( VkTilePropertiesQCOM const & rhs ) VULKAN_HPP_NOEXCEPT
  75774. {
  75775. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::TilePropertiesQCOM const *>( &rhs );
  75776. return *this;
  75777. }
  75778. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  75779. VULKAN_HPP_CONSTEXPR_14 TilePropertiesQCOM & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
  75780. {
  75781. pNext = pNext_;
  75782. return *this;
  75783. }
  75784. VULKAN_HPP_CONSTEXPR_14 TilePropertiesQCOM & setTileSize( VULKAN_HPP_NAMESPACE::Extent3D const & tileSize_ ) VULKAN_HPP_NOEXCEPT
  75785. {
  75786. tileSize = tileSize_;
  75787. return *this;
  75788. }
  75789. VULKAN_HPP_CONSTEXPR_14 TilePropertiesQCOM & setApronSize( VULKAN_HPP_NAMESPACE::Extent2D const & apronSize_ ) VULKAN_HPP_NOEXCEPT
  75790. {
  75791. apronSize = apronSize_;
  75792. return *this;
  75793. }
  75794. VULKAN_HPP_CONSTEXPR_14 TilePropertiesQCOM & setOrigin( VULKAN_HPP_NAMESPACE::Offset2D const & origin_ ) VULKAN_HPP_NOEXCEPT
  75795. {
  75796. origin = origin_;
  75797. return *this;
  75798. }
  75799. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  75800. operator VkTilePropertiesQCOM const &() const VULKAN_HPP_NOEXCEPT
  75801. {
  75802. return *reinterpret_cast<const VkTilePropertiesQCOM *>( this );
  75803. }
  75804. operator VkTilePropertiesQCOM &() VULKAN_HPP_NOEXCEPT
  75805. {
  75806. return *reinterpret_cast<VkTilePropertiesQCOM *>( this );
  75807. }
  75808. #if defined( VULKAN_HPP_USE_REFLECT )
  75809. # if 14 <= VULKAN_HPP_CPP_VERSION
  75810. auto
  75811. # else
  75812. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  75813. void * const &,
  75814. VULKAN_HPP_NAMESPACE::Extent3D const &,
  75815. VULKAN_HPP_NAMESPACE::Extent2D const &,
  75816. VULKAN_HPP_NAMESPACE::Offset2D const &>
  75817. # endif
  75818. reflect() const VULKAN_HPP_NOEXCEPT
  75819. {
  75820. return std::tie( sType, pNext, tileSize, apronSize, origin );
  75821. }
  75822. #endif
  75823. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  75824. auto operator<=>( TilePropertiesQCOM const & ) const = default;
  75825. #else
  75826. bool operator==( TilePropertiesQCOM const & rhs ) const VULKAN_HPP_NOEXCEPT
  75827. {
  75828. # if defined( VULKAN_HPP_USE_REFLECT )
  75829. return this->reflect() == rhs.reflect();
  75830. # else
  75831. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( tileSize == rhs.tileSize ) && ( apronSize == rhs.apronSize ) && ( origin == rhs.origin );
  75832. # endif
  75833. }
  75834. bool operator!=( TilePropertiesQCOM const & rhs ) const VULKAN_HPP_NOEXCEPT
  75835. {
  75836. return !operator==( rhs );
  75837. }
  75838. #endif
  75839. public:
  75840. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eTilePropertiesQCOM;
  75841. void * pNext = {};
  75842. VULKAN_HPP_NAMESPACE::Extent3D tileSize = {};
  75843. VULKAN_HPP_NAMESPACE::Extent2D apronSize = {};
  75844. VULKAN_HPP_NAMESPACE::Offset2D origin = {};
  75845. };
  75846. template <>
  75847. struct CppType<StructureType, StructureType::eTilePropertiesQCOM>
  75848. {
  75849. using Type = TilePropertiesQCOM;
  75850. };
  75851. struct TimelineSemaphoreSubmitInfo
  75852. {
  75853. using NativeType = VkTimelineSemaphoreSubmitInfo;
  75854. static const bool allowDuplicate = false;
  75855. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eTimelineSemaphoreSubmitInfo;
  75856. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  75857. VULKAN_HPP_CONSTEXPR TimelineSemaphoreSubmitInfo( uint32_t waitSemaphoreValueCount_ = {},
  75858. const uint64_t * pWaitSemaphoreValues_ = {},
  75859. uint32_t signalSemaphoreValueCount_ = {},
  75860. const uint64_t * pSignalSemaphoreValues_ = {},
  75861. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  75862. : pNext( pNext_ )
  75863. , waitSemaphoreValueCount( waitSemaphoreValueCount_ )
  75864. , pWaitSemaphoreValues( pWaitSemaphoreValues_ )
  75865. , signalSemaphoreValueCount( signalSemaphoreValueCount_ )
  75866. , pSignalSemaphoreValues( pSignalSemaphoreValues_ )
  75867. {
  75868. }
  75869. VULKAN_HPP_CONSTEXPR TimelineSemaphoreSubmitInfo( TimelineSemaphoreSubmitInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  75870. TimelineSemaphoreSubmitInfo( VkTimelineSemaphoreSubmitInfo const & rhs ) VULKAN_HPP_NOEXCEPT
  75871. : TimelineSemaphoreSubmitInfo( *reinterpret_cast<TimelineSemaphoreSubmitInfo const *>( &rhs ) )
  75872. {
  75873. }
  75874. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  75875. TimelineSemaphoreSubmitInfo( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint64_t> const & waitSemaphoreValues_,
  75876. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint64_t> const & signalSemaphoreValues_ = {},
  75877. const void * pNext_ = nullptr )
  75878. : pNext( pNext_ )
  75879. , waitSemaphoreValueCount( static_cast<uint32_t>( waitSemaphoreValues_.size() ) )
  75880. , pWaitSemaphoreValues( waitSemaphoreValues_.data() )
  75881. , signalSemaphoreValueCount( static_cast<uint32_t>( signalSemaphoreValues_.size() ) )
  75882. , pSignalSemaphoreValues( signalSemaphoreValues_.data() )
  75883. {
  75884. }
  75885. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  75886. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  75887. TimelineSemaphoreSubmitInfo & operator=( TimelineSemaphoreSubmitInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  75888. TimelineSemaphoreSubmitInfo & operator=( VkTimelineSemaphoreSubmitInfo const & rhs ) VULKAN_HPP_NOEXCEPT
  75889. {
  75890. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::TimelineSemaphoreSubmitInfo const *>( &rhs );
  75891. return *this;
  75892. }
  75893. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  75894. VULKAN_HPP_CONSTEXPR_14 TimelineSemaphoreSubmitInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  75895. {
  75896. pNext = pNext_;
  75897. return *this;
  75898. }
  75899. VULKAN_HPP_CONSTEXPR_14 TimelineSemaphoreSubmitInfo & setWaitSemaphoreValueCount( uint32_t waitSemaphoreValueCount_ ) VULKAN_HPP_NOEXCEPT
  75900. {
  75901. waitSemaphoreValueCount = waitSemaphoreValueCount_;
  75902. return *this;
  75903. }
  75904. VULKAN_HPP_CONSTEXPR_14 TimelineSemaphoreSubmitInfo & setPWaitSemaphoreValues( const uint64_t * pWaitSemaphoreValues_ ) VULKAN_HPP_NOEXCEPT
  75905. {
  75906. pWaitSemaphoreValues = pWaitSemaphoreValues_;
  75907. return *this;
  75908. }
  75909. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  75910. TimelineSemaphoreSubmitInfo &
  75911. setWaitSemaphoreValues( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint64_t> const & waitSemaphoreValues_ ) VULKAN_HPP_NOEXCEPT
  75912. {
  75913. waitSemaphoreValueCount = static_cast<uint32_t>( waitSemaphoreValues_.size() );
  75914. pWaitSemaphoreValues = waitSemaphoreValues_.data();
  75915. return *this;
  75916. }
  75917. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  75918. VULKAN_HPP_CONSTEXPR_14 TimelineSemaphoreSubmitInfo & setSignalSemaphoreValueCount( uint32_t signalSemaphoreValueCount_ ) VULKAN_HPP_NOEXCEPT
  75919. {
  75920. signalSemaphoreValueCount = signalSemaphoreValueCount_;
  75921. return *this;
  75922. }
  75923. VULKAN_HPP_CONSTEXPR_14 TimelineSemaphoreSubmitInfo & setPSignalSemaphoreValues( const uint64_t * pSignalSemaphoreValues_ ) VULKAN_HPP_NOEXCEPT
  75924. {
  75925. pSignalSemaphoreValues = pSignalSemaphoreValues_;
  75926. return *this;
  75927. }
  75928. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  75929. TimelineSemaphoreSubmitInfo &
  75930. setSignalSemaphoreValues( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint64_t> const & signalSemaphoreValues_ ) VULKAN_HPP_NOEXCEPT
  75931. {
  75932. signalSemaphoreValueCount = static_cast<uint32_t>( signalSemaphoreValues_.size() );
  75933. pSignalSemaphoreValues = signalSemaphoreValues_.data();
  75934. return *this;
  75935. }
  75936. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  75937. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  75938. operator VkTimelineSemaphoreSubmitInfo const &() const VULKAN_HPP_NOEXCEPT
  75939. {
  75940. return *reinterpret_cast<const VkTimelineSemaphoreSubmitInfo *>( this );
  75941. }
  75942. operator VkTimelineSemaphoreSubmitInfo &() VULKAN_HPP_NOEXCEPT
  75943. {
  75944. return *reinterpret_cast<VkTimelineSemaphoreSubmitInfo *>( this );
  75945. }
  75946. #if defined( VULKAN_HPP_USE_REFLECT )
  75947. # if 14 <= VULKAN_HPP_CPP_VERSION
  75948. auto
  75949. # else
  75950. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  75951. const void * const &,
  75952. uint32_t const &,
  75953. const uint64_t * const &,
  75954. uint32_t const &,
  75955. const uint64_t * const &>
  75956. # endif
  75957. reflect() const VULKAN_HPP_NOEXCEPT
  75958. {
  75959. return std::tie( sType, pNext, waitSemaphoreValueCount, pWaitSemaphoreValues, signalSemaphoreValueCount, pSignalSemaphoreValues );
  75960. }
  75961. #endif
  75962. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  75963. auto operator<=>( TimelineSemaphoreSubmitInfo const & ) const = default;
  75964. #else
  75965. bool operator==( TimelineSemaphoreSubmitInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  75966. {
  75967. # if defined( VULKAN_HPP_USE_REFLECT )
  75968. return this->reflect() == rhs.reflect();
  75969. # else
  75970. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( waitSemaphoreValueCount == rhs.waitSemaphoreValueCount ) &&
  75971. ( pWaitSemaphoreValues == rhs.pWaitSemaphoreValues ) && ( signalSemaphoreValueCount == rhs.signalSemaphoreValueCount ) &&
  75972. ( pSignalSemaphoreValues == rhs.pSignalSemaphoreValues );
  75973. # endif
  75974. }
  75975. bool operator!=( TimelineSemaphoreSubmitInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  75976. {
  75977. return !operator==( rhs );
  75978. }
  75979. #endif
  75980. public:
  75981. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eTimelineSemaphoreSubmitInfo;
  75982. const void * pNext = {};
  75983. uint32_t waitSemaphoreValueCount = {};
  75984. const uint64_t * pWaitSemaphoreValues = {};
  75985. uint32_t signalSemaphoreValueCount = {};
  75986. const uint64_t * pSignalSemaphoreValues = {};
  75987. };
  75988. template <>
  75989. struct CppType<StructureType, StructureType::eTimelineSemaphoreSubmitInfo>
  75990. {
  75991. using Type = TimelineSemaphoreSubmitInfo;
  75992. };
  75993. using TimelineSemaphoreSubmitInfoKHR = TimelineSemaphoreSubmitInfo;
  75994. struct TraceRaysIndirectCommand2KHR
  75995. {
  75996. using NativeType = VkTraceRaysIndirectCommand2KHR;
  75997. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  75998. VULKAN_HPP_CONSTEXPR TraceRaysIndirectCommand2KHR( VULKAN_HPP_NAMESPACE::DeviceAddress raygenShaderRecordAddress_ = {},
  75999. VULKAN_HPP_NAMESPACE::DeviceSize raygenShaderRecordSize_ = {},
  76000. VULKAN_HPP_NAMESPACE::DeviceAddress missShaderBindingTableAddress_ = {},
  76001. VULKAN_HPP_NAMESPACE::DeviceSize missShaderBindingTableSize_ = {},
  76002. VULKAN_HPP_NAMESPACE::DeviceSize missShaderBindingTableStride_ = {},
  76003. VULKAN_HPP_NAMESPACE::DeviceAddress hitShaderBindingTableAddress_ = {},
  76004. VULKAN_HPP_NAMESPACE::DeviceSize hitShaderBindingTableSize_ = {},
  76005. VULKAN_HPP_NAMESPACE::DeviceSize hitShaderBindingTableStride_ = {},
  76006. VULKAN_HPP_NAMESPACE::DeviceAddress callableShaderBindingTableAddress_ = {},
  76007. VULKAN_HPP_NAMESPACE::DeviceSize callableShaderBindingTableSize_ = {},
  76008. VULKAN_HPP_NAMESPACE::DeviceSize callableShaderBindingTableStride_ = {},
  76009. uint32_t width_ = {},
  76010. uint32_t height_ = {},
  76011. uint32_t depth_ = {} ) VULKAN_HPP_NOEXCEPT
  76012. : raygenShaderRecordAddress( raygenShaderRecordAddress_ )
  76013. , raygenShaderRecordSize( raygenShaderRecordSize_ )
  76014. , missShaderBindingTableAddress( missShaderBindingTableAddress_ )
  76015. , missShaderBindingTableSize( missShaderBindingTableSize_ )
  76016. , missShaderBindingTableStride( missShaderBindingTableStride_ )
  76017. , hitShaderBindingTableAddress( hitShaderBindingTableAddress_ )
  76018. , hitShaderBindingTableSize( hitShaderBindingTableSize_ )
  76019. , hitShaderBindingTableStride( hitShaderBindingTableStride_ )
  76020. , callableShaderBindingTableAddress( callableShaderBindingTableAddress_ )
  76021. , callableShaderBindingTableSize( callableShaderBindingTableSize_ )
  76022. , callableShaderBindingTableStride( callableShaderBindingTableStride_ )
  76023. , width( width_ )
  76024. , height( height_ )
  76025. , depth( depth_ )
  76026. {
  76027. }
  76028. VULKAN_HPP_CONSTEXPR TraceRaysIndirectCommand2KHR( TraceRaysIndirectCommand2KHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  76029. TraceRaysIndirectCommand2KHR( VkTraceRaysIndirectCommand2KHR const & rhs ) VULKAN_HPP_NOEXCEPT
  76030. : TraceRaysIndirectCommand2KHR( *reinterpret_cast<TraceRaysIndirectCommand2KHR const *>( &rhs ) )
  76031. {
  76032. }
  76033. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  76034. TraceRaysIndirectCommand2KHR & operator=( TraceRaysIndirectCommand2KHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  76035. TraceRaysIndirectCommand2KHR & operator=( VkTraceRaysIndirectCommand2KHR const & rhs ) VULKAN_HPP_NOEXCEPT
  76036. {
  76037. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::TraceRaysIndirectCommand2KHR const *>( &rhs );
  76038. return *this;
  76039. }
  76040. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  76041. VULKAN_HPP_CONSTEXPR_14 TraceRaysIndirectCommand2KHR &
  76042. setRaygenShaderRecordAddress( VULKAN_HPP_NAMESPACE::DeviceAddress raygenShaderRecordAddress_ ) VULKAN_HPP_NOEXCEPT
  76043. {
  76044. raygenShaderRecordAddress = raygenShaderRecordAddress_;
  76045. return *this;
  76046. }
  76047. VULKAN_HPP_CONSTEXPR_14 TraceRaysIndirectCommand2KHR &
  76048. setRaygenShaderRecordSize( VULKAN_HPP_NAMESPACE::DeviceSize raygenShaderRecordSize_ ) VULKAN_HPP_NOEXCEPT
  76049. {
  76050. raygenShaderRecordSize = raygenShaderRecordSize_;
  76051. return *this;
  76052. }
  76053. VULKAN_HPP_CONSTEXPR_14 TraceRaysIndirectCommand2KHR &
  76054. setMissShaderBindingTableAddress( VULKAN_HPP_NAMESPACE::DeviceAddress missShaderBindingTableAddress_ ) VULKAN_HPP_NOEXCEPT
  76055. {
  76056. missShaderBindingTableAddress = missShaderBindingTableAddress_;
  76057. return *this;
  76058. }
  76059. VULKAN_HPP_CONSTEXPR_14 TraceRaysIndirectCommand2KHR &
  76060. setMissShaderBindingTableSize( VULKAN_HPP_NAMESPACE::DeviceSize missShaderBindingTableSize_ ) VULKAN_HPP_NOEXCEPT
  76061. {
  76062. missShaderBindingTableSize = missShaderBindingTableSize_;
  76063. return *this;
  76064. }
  76065. VULKAN_HPP_CONSTEXPR_14 TraceRaysIndirectCommand2KHR &
  76066. setMissShaderBindingTableStride( VULKAN_HPP_NAMESPACE::DeviceSize missShaderBindingTableStride_ ) VULKAN_HPP_NOEXCEPT
  76067. {
  76068. missShaderBindingTableStride = missShaderBindingTableStride_;
  76069. return *this;
  76070. }
  76071. VULKAN_HPP_CONSTEXPR_14 TraceRaysIndirectCommand2KHR &
  76072. setHitShaderBindingTableAddress( VULKAN_HPP_NAMESPACE::DeviceAddress hitShaderBindingTableAddress_ ) VULKAN_HPP_NOEXCEPT
  76073. {
  76074. hitShaderBindingTableAddress = hitShaderBindingTableAddress_;
  76075. return *this;
  76076. }
  76077. VULKAN_HPP_CONSTEXPR_14 TraceRaysIndirectCommand2KHR &
  76078. setHitShaderBindingTableSize( VULKAN_HPP_NAMESPACE::DeviceSize hitShaderBindingTableSize_ ) VULKAN_HPP_NOEXCEPT
  76079. {
  76080. hitShaderBindingTableSize = hitShaderBindingTableSize_;
  76081. return *this;
  76082. }
  76083. VULKAN_HPP_CONSTEXPR_14 TraceRaysIndirectCommand2KHR &
  76084. setHitShaderBindingTableStride( VULKAN_HPP_NAMESPACE::DeviceSize hitShaderBindingTableStride_ ) VULKAN_HPP_NOEXCEPT
  76085. {
  76086. hitShaderBindingTableStride = hitShaderBindingTableStride_;
  76087. return *this;
  76088. }
  76089. VULKAN_HPP_CONSTEXPR_14 TraceRaysIndirectCommand2KHR &
  76090. setCallableShaderBindingTableAddress( VULKAN_HPP_NAMESPACE::DeviceAddress callableShaderBindingTableAddress_ ) VULKAN_HPP_NOEXCEPT
  76091. {
  76092. callableShaderBindingTableAddress = callableShaderBindingTableAddress_;
  76093. return *this;
  76094. }
  76095. VULKAN_HPP_CONSTEXPR_14 TraceRaysIndirectCommand2KHR &
  76096. setCallableShaderBindingTableSize( VULKAN_HPP_NAMESPACE::DeviceSize callableShaderBindingTableSize_ ) VULKAN_HPP_NOEXCEPT
  76097. {
  76098. callableShaderBindingTableSize = callableShaderBindingTableSize_;
  76099. return *this;
  76100. }
  76101. VULKAN_HPP_CONSTEXPR_14 TraceRaysIndirectCommand2KHR &
  76102. setCallableShaderBindingTableStride( VULKAN_HPP_NAMESPACE::DeviceSize callableShaderBindingTableStride_ ) VULKAN_HPP_NOEXCEPT
  76103. {
  76104. callableShaderBindingTableStride = callableShaderBindingTableStride_;
  76105. return *this;
  76106. }
  76107. VULKAN_HPP_CONSTEXPR_14 TraceRaysIndirectCommand2KHR & setWidth( uint32_t width_ ) VULKAN_HPP_NOEXCEPT
  76108. {
  76109. width = width_;
  76110. return *this;
  76111. }
  76112. VULKAN_HPP_CONSTEXPR_14 TraceRaysIndirectCommand2KHR & setHeight( uint32_t height_ ) VULKAN_HPP_NOEXCEPT
  76113. {
  76114. height = height_;
  76115. return *this;
  76116. }
  76117. VULKAN_HPP_CONSTEXPR_14 TraceRaysIndirectCommand2KHR & setDepth( uint32_t depth_ ) VULKAN_HPP_NOEXCEPT
  76118. {
  76119. depth = depth_;
  76120. return *this;
  76121. }
  76122. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  76123. operator VkTraceRaysIndirectCommand2KHR const &() const VULKAN_HPP_NOEXCEPT
  76124. {
  76125. return *reinterpret_cast<const VkTraceRaysIndirectCommand2KHR *>( this );
  76126. }
  76127. operator VkTraceRaysIndirectCommand2KHR &() VULKAN_HPP_NOEXCEPT
  76128. {
  76129. return *reinterpret_cast<VkTraceRaysIndirectCommand2KHR *>( this );
  76130. }
  76131. #if defined( VULKAN_HPP_USE_REFLECT )
  76132. # if 14 <= VULKAN_HPP_CPP_VERSION
  76133. auto
  76134. # else
  76135. std::tuple<VULKAN_HPP_NAMESPACE::DeviceAddress const &,
  76136. VULKAN_HPP_NAMESPACE::DeviceSize const &,
  76137. VULKAN_HPP_NAMESPACE::DeviceAddress const &,
  76138. VULKAN_HPP_NAMESPACE::DeviceSize const &,
  76139. VULKAN_HPP_NAMESPACE::DeviceSize const &,
  76140. VULKAN_HPP_NAMESPACE::DeviceAddress const &,
  76141. VULKAN_HPP_NAMESPACE::DeviceSize const &,
  76142. VULKAN_HPP_NAMESPACE::DeviceSize const &,
  76143. VULKAN_HPP_NAMESPACE::DeviceAddress const &,
  76144. VULKAN_HPP_NAMESPACE::DeviceSize const &,
  76145. VULKAN_HPP_NAMESPACE::DeviceSize const &,
  76146. uint32_t const &,
  76147. uint32_t const &,
  76148. uint32_t const &>
  76149. # endif
  76150. reflect() const VULKAN_HPP_NOEXCEPT
  76151. {
  76152. return std::tie( raygenShaderRecordAddress,
  76153. raygenShaderRecordSize,
  76154. missShaderBindingTableAddress,
  76155. missShaderBindingTableSize,
  76156. missShaderBindingTableStride,
  76157. hitShaderBindingTableAddress,
  76158. hitShaderBindingTableSize,
  76159. hitShaderBindingTableStride,
  76160. callableShaderBindingTableAddress,
  76161. callableShaderBindingTableSize,
  76162. callableShaderBindingTableStride,
  76163. width,
  76164. height,
  76165. depth );
  76166. }
  76167. #endif
  76168. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  76169. auto operator<=>( TraceRaysIndirectCommand2KHR const & ) const = default;
  76170. #else
  76171. bool operator==( TraceRaysIndirectCommand2KHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  76172. {
  76173. # if defined( VULKAN_HPP_USE_REFLECT )
  76174. return this->reflect() == rhs.reflect();
  76175. # else
  76176. return ( raygenShaderRecordAddress == rhs.raygenShaderRecordAddress ) && ( raygenShaderRecordSize == rhs.raygenShaderRecordSize ) &&
  76177. ( missShaderBindingTableAddress == rhs.missShaderBindingTableAddress ) && ( missShaderBindingTableSize == rhs.missShaderBindingTableSize ) &&
  76178. ( missShaderBindingTableStride == rhs.missShaderBindingTableStride ) && ( hitShaderBindingTableAddress == rhs.hitShaderBindingTableAddress ) &&
  76179. ( hitShaderBindingTableSize == rhs.hitShaderBindingTableSize ) && ( hitShaderBindingTableStride == rhs.hitShaderBindingTableStride ) &&
  76180. ( callableShaderBindingTableAddress == rhs.callableShaderBindingTableAddress ) &&
  76181. ( callableShaderBindingTableSize == rhs.callableShaderBindingTableSize ) &&
  76182. ( callableShaderBindingTableStride == rhs.callableShaderBindingTableStride ) && ( width == rhs.width ) && ( height == rhs.height ) &&
  76183. ( depth == rhs.depth );
  76184. # endif
  76185. }
  76186. bool operator!=( TraceRaysIndirectCommand2KHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  76187. {
  76188. return !operator==( rhs );
  76189. }
  76190. #endif
  76191. public:
  76192. VULKAN_HPP_NAMESPACE::DeviceAddress raygenShaderRecordAddress = {};
  76193. VULKAN_HPP_NAMESPACE::DeviceSize raygenShaderRecordSize = {};
  76194. VULKAN_HPP_NAMESPACE::DeviceAddress missShaderBindingTableAddress = {};
  76195. VULKAN_HPP_NAMESPACE::DeviceSize missShaderBindingTableSize = {};
  76196. VULKAN_HPP_NAMESPACE::DeviceSize missShaderBindingTableStride = {};
  76197. VULKAN_HPP_NAMESPACE::DeviceAddress hitShaderBindingTableAddress = {};
  76198. VULKAN_HPP_NAMESPACE::DeviceSize hitShaderBindingTableSize = {};
  76199. VULKAN_HPP_NAMESPACE::DeviceSize hitShaderBindingTableStride = {};
  76200. VULKAN_HPP_NAMESPACE::DeviceAddress callableShaderBindingTableAddress = {};
  76201. VULKAN_HPP_NAMESPACE::DeviceSize callableShaderBindingTableSize = {};
  76202. VULKAN_HPP_NAMESPACE::DeviceSize callableShaderBindingTableStride = {};
  76203. uint32_t width = {};
  76204. uint32_t height = {};
  76205. uint32_t depth = {};
  76206. };
  76207. struct TraceRaysIndirectCommandKHR
  76208. {
  76209. using NativeType = VkTraceRaysIndirectCommandKHR;
  76210. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  76211. VULKAN_HPP_CONSTEXPR TraceRaysIndirectCommandKHR( uint32_t width_ = {}, uint32_t height_ = {}, uint32_t depth_ = {} ) VULKAN_HPP_NOEXCEPT
  76212. : width( width_ )
  76213. , height( height_ )
  76214. , depth( depth_ )
  76215. {
  76216. }
  76217. VULKAN_HPP_CONSTEXPR TraceRaysIndirectCommandKHR( TraceRaysIndirectCommandKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  76218. TraceRaysIndirectCommandKHR( VkTraceRaysIndirectCommandKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  76219. : TraceRaysIndirectCommandKHR( *reinterpret_cast<TraceRaysIndirectCommandKHR const *>( &rhs ) )
  76220. {
  76221. }
  76222. explicit TraceRaysIndirectCommandKHR( Extent2D const & extent2D, uint32_t depth_ = {} )
  76223. : width( extent2D.width ), height( extent2D.height ), depth( depth_ )
  76224. {
  76225. }
  76226. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  76227. TraceRaysIndirectCommandKHR & operator=( TraceRaysIndirectCommandKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  76228. TraceRaysIndirectCommandKHR & operator=( VkTraceRaysIndirectCommandKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  76229. {
  76230. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::TraceRaysIndirectCommandKHR const *>( &rhs );
  76231. return *this;
  76232. }
  76233. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  76234. VULKAN_HPP_CONSTEXPR_14 TraceRaysIndirectCommandKHR & setWidth( uint32_t width_ ) VULKAN_HPP_NOEXCEPT
  76235. {
  76236. width = width_;
  76237. return *this;
  76238. }
  76239. VULKAN_HPP_CONSTEXPR_14 TraceRaysIndirectCommandKHR & setHeight( uint32_t height_ ) VULKAN_HPP_NOEXCEPT
  76240. {
  76241. height = height_;
  76242. return *this;
  76243. }
  76244. VULKAN_HPP_CONSTEXPR_14 TraceRaysIndirectCommandKHR & setDepth( uint32_t depth_ ) VULKAN_HPP_NOEXCEPT
  76245. {
  76246. depth = depth_;
  76247. return *this;
  76248. }
  76249. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  76250. operator VkTraceRaysIndirectCommandKHR const &() const VULKAN_HPP_NOEXCEPT
  76251. {
  76252. return *reinterpret_cast<const VkTraceRaysIndirectCommandKHR *>( this );
  76253. }
  76254. operator VkTraceRaysIndirectCommandKHR &() VULKAN_HPP_NOEXCEPT
  76255. {
  76256. return *reinterpret_cast<VkTraceRaysIndirectCommandKHR *>( this );
  76257. }
  76258. #if defined( VULKAN_HPP_USE_REFLECT )
  76259. # if 14 <= VULKAN_HPP_CPP_VERSION
  76260. auto
  76261. # else
  76262. std::tuple<uint32_t const &, uint32_t const &, uint32_t const &>
  76263. # endif
  76264. reflect() const VULKAN_HPP_NOEXCEPT
  76265. {
  76266. return std::tie( width, height, depth );
  76267. }
  76268. #endif
  76269. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  76270. auto operator<=>( TraceRaysIndirectCommandKHR const & ) const = default;
  76271. #else
  76272. bool operator==( TraceRaysIndirectCommandKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  76273. {
  76274. # if defined( VULKAN_HPP_USE_REFLECT )
  76275. return this->reflect() == rhs.reflect();
  76276. # else
  76277. return ( width == rhs.width ) && ( height == rhs.height ) && ( depth == rhs.depth );
  76278. # endif
  76279. }
  76280. bool operator!=( TraceRaysIndirectCommandKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  76281. {
  76282. return !operator==( rhs );
  76283. }
  76284. #endif
  76285. public:
  76286. uint32_t width = {};
  76287. uint32_t height = {};
  76288. uint32_t depth = {};
  76289. };
  76290. struct ValidationCacheCreateInfoEXT
  76291. {
  76292. using NativeType = VkValidationCacheCreateInfoEXT;
  76293. static const bool allowDuplicate = false;
  76294. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eValidationCacheCreateInfoEXT;
  76295. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  76296. VULKAN_HPP_CONSTEXPR ValidationCacheCreateInfoEXT( VULKAN_HPP_NAMESPACE::ValidationCacheCreateFlagsEXT flags_ = {},
  76297. size_t initialDataSize_ = {},
  76298. const void * pInitialData_ = {},
  76299. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  76300. : pNext( pNext_ )
  76301. , flags( flags_ )
  76302. , initialDataSize( initialDataSize_ )
  76303. , pInitialData( pInitialData_ )
  76304. {
  76305. }
  76306. VULKAN_HPP_CONSTEXPR ValidationCacheCreateInfoEXT( ValidationCacheCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  76307. ValidationCacheCreateInfoEXT( VkValidationCacheCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  76308. : ValidationCacheCreateInfoEXT( *reinterpret_cast<ValidationCacheCreateInfoEXT const *>( &rhs ) )
  76309. {
  76310. }
  76311. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  76312. template <typename T>
  76313. ValidationCacheCreateInfoEXT( VULKAN_HPP_NAMESPACE::ValidationCacheCreateFlagsEXT flags_,
  76314. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const T> const & initialData_,
  76315. const void * pNext_ = nullptr )
  76316. : pNext( pNext_ ), flags( flags_ ), initialDataSize( initialData_.size() * sizeof( T ) ), pInitialData( initialData_.data() )
  76317. {
  76318. }
  76319. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  76320. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  76321. ValidationCacheCreateInfoEXT & operator=( ValidationCacheCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  76322. ValidationCacheCreateInfoEXT & operator=( VkValidationCacheCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  76323. {
  76324. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ValidationCacheCreateInfoEXT const *>( &rhs );
  76325. return *this;
  76326. }
  76327. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  76328. VULKAN_HPP_CONSTEXPR_14 ValidationCacheCreateInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  76329. {
  76330. pNext = pNext_;
  76331. return *this;
  76332. }
  76333. VULKAN_HPP_CONSTEXPR_14 ValidationCacheCreateInfoEXT & setFlags( VULKAN_HPP_NAMESPACE::ValidationCacheCreateFlagsEXT flags_ ) VULKAN_HPP_NOEXCEPT
  76334. {
  76335. flags = flags_;
  76336. return *this;
  76337. }
  76338. VULKAN_HPP_CONSTEXPR_14 ValidationCacheCreateInfoEXT & setInitialDataSize( size_t initialDataSize_ ) VULKAN_HPP_NOEXCEPT
  76339. {
  76340. initialDataSize = initialDataSize_;
  76341. return *this;
  76342. }
  76343. VULKAN_HPP_CONSTEXPR_14 ValidationCacheCreateInfoEXT & setPInitialData( const void * pInitialData_ ) VULKAN_HPP_NOEXCEPT
  76344. {
  76345. pInitialData = pInitialData_;
  76346. return *this;
  76347. }
  76348. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  76349. template <typename T>
  76350. ValidationCacheCreateInfoEXT & setInitialData( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const T> const & initialData_ ) VULKAN_HPP_NOEXCEPT
  76351. {
  76352. initialDataSize = initialData_.size() * sizeof( T );
  76353. pInitialData = initialData_.data();
  76354. return *this;
  76355. }
  76356. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  76357. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  76358. operator VkValidationCacheCreateInfoEXT const &() const VULKAN_HPP_NOEXCEPT
  76359. {
  76360. return *reinterpret_cast<const VkValidationCacheCreateInfoEXT *>( this );
  76361. }
  76362. operator VkValidationCacheCreateInfoEXT &() VULKAN_HPP_NOEXCEPT
  76363. {
  76364. return *reinterpret_cast<VkValidationCacheCreateInfoEXT *>( this );
  76365. }
  76366. #if defined( VULKAN_HPP_USE_REFLECT )
  76367. # if 14 <= VULKAN_HPP_CPP_VERSION
  76368. auto
  76369. # else
  76370. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  76371. const void * const &,
  76372. VULKAN_HPP_NAMESPACE::ValidationCacheCreateFlagsEXT const &,
  76373. size_t const &,
  76374. const void * const &>
  76375. # endif
  76376. reflect() const VULKAN_HPP_NOEXCEPT
  76377. {
  76378. return std::tie( sType, pNext, flags, initialDataSize, pInitialData );
  76379. }
  76380. #endif
  76381. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  76382. auto operator<=>( ValidationCacheCreateInfoEXT const & ) const = default;
  76383. #else
  76384. bool operator==( ValidationCacheCreateInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  76385. {
  76386. # if defined( VULKAN_HPP_USE_REFLECT )
  76387. return this->reflect() == rhs.reflect();
  76388. # else
  76389. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( flags == rhs.flags ) && ( initialDataSize == rhs.initialDataSize ) &&
  76390. ( pInitialData == rhs.pInitialData );
  76391. # endif
  76392. }
  76393. bool operator!=( ValidationCacheCreateInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  76394. {
  76395. return !operator==( rhs );
  76396. }
  76397. #endif
  76398. public:
  76399. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eValidationCacheCreateInfoEXT;
  76400. const void * pNext = {};
  76401. VULKAN_HPP_NAMESPACE::ValidationCacheCreateFlagsEXT flags = {};
  76402. size_t initialDataSize = {};
  76403. const void * pInitialData = {};
  76404. };
  76405. template <>
  76406. struct CppType<StructureType, StructureType::eValidationCacheCreateInfoEXT>
  76407. {
  76408. using Type = ValidationCacheCreateInfoEXT;
  76409. };
  76410. struct ValidationFeaturesEXT
  76411. {
  76412. using NativeType = VkValidationFeaturesEXT;
  76413. static const bool allowDuplicate = false;
  76414. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eValidationFeaturesEXT;
  76415. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  76416. VULKAN_HPP_CONSTEXPR ValidationFeaturesEXT( uint32_t enabledValidationFeatureCount_ = {},
  76417. const VULKAN_HPP_NAMESPACE::ValidationFeatureEnableEXT * pEnabledValidationFeatures_ = {},
  76418. uint32_t disabledValidationFeatureCount_ = {},
  76419. const VULKAN_HPP_NAMESPACE::ValidationFeatureDisableEXT * pDisabledValidationFeatures_ = {},
  76420. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  76421. : pNext( pNext_ )
  76422. , enabledValidationFeatureCount( enabledValidationFeatureCount_ )
  76423. , pEnabledValidationFeatures( pEnabledValidationFeatures_ )
  76424. , disabledValidationFeatureCount( disabledValidationFeatureCount_ )
  76425. , pDisabledValidationFeatures( pDisabledValidationFeatures_ )
  76426. {
  76427. }
  76428. VULKAN_HPP_CONSTEXPR ValidationFeaturesEXT( ValidationFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  76429. ValidationFeaturesEXT( VkValidationFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  76430. : ValidationFeaturesEXT( *reinterpret_cast<ValidationFeaturesEXT const *>( &rhs ) )
  76431. {
  76432. }
  76433. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  76434. ValidationFeaturesEXT(
  76435. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::ValidationFeatureEnableEXT> const & enabledValidationFeatures_,
  76436. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::ValidationFeatureDisableEXT> const & disabledValidationFeatures_ = {},
  76437. const void * pNext_ = nullptr )
  76438. : pNext( pNext_ )
  76439. , enabledValidationFeatureCount( static_cast<uint32_t>( enabledValidationFeatures_.size() ) )
  76440. , pEnabledValidationFeatures( enabledValidationFeatures_.data() )
  76441. , disabledValidationFeatureCount( static_cast<uint32_t>( disabledValidationFeatures_.size() ) )
  76442. , pDisabledValidationFeatures( disabledValidationFeatures_.data() )
  76443. {
  76444. }
  76445. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  76446. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  76447. ValidationFeaturesEXT & operator=( ValidationFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  76448. ValidationFeaturesEXT & operator=( VkValidationFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  76449. {
  76450. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ValidationFeaturesEXT const *>( &rhs );
  76451. return *this;
  76452. }
  76453. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  76454. VULKAN_HPP_CONSTEXPR_14 ValidationFeaturesEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  76455. {
  76456. pNext = pNext_;
  76457. return *this;
  76458. }
  76459. VULKAN_HPP_CONSTEXPR_14 ValidationFeaturesEXT & setEnabledValidationFeatureCount( uint32_t enabledValidationFeatureCount_ ) VULKAN_HPP_NOEXCEPT
  76460. {
  76461. enabledValidationFeatureCount = enabledValidationFeatureCount_;
  76462. return *this;
  76463. }
  76464. VULKAN_HPP_CONSTEXPR_14 ValidationFeaturesEXT &
  76465. setPEnabledValidationFeatures( const VULKAN_HPP_NAMESPACE::ValidationFeatureEnableEXT * pEnabledValidationFeatures_ ) VULKAN_HPP_NOEXCEPT
  76466. {
  76467. pEnabledValidationFeatures = pEnabledValidationFeatures_;
  76468. return *this;
  76469. }
  76470. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  76471. ValidationFeaturesEXT & setEnabledValidationFeatures(
  76472. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::ValidationFeatureEnableEXT> const & enabledValidationFeatures_ )
  76473. VULKAN_HPP_NOEXCEPT
  76474. {
  76475. enabledValidationFeatureCount = static_cast<uint32_t>( enabledValidationFeatures_.size() );
  76476. pEnabledValidationFeatures = enabledValidationFeatures_.data();
  76477. return *this;
  76478. }
  76479. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  76480. VULKAN_HPP_CONSTEXPR_14 ValidationFeaturesEXT & setDisabledValidationFeatureCount( uint32_t disabledValidationFeatureCount_ ) VULKAN_HPP_NOEXCEPT
  76481. {
  76482. disabledValidationFeatureCount = disabledValidationFeatureCount_;
  76483. return *this;
  76484. }
  76485. VULKAN_HPP_CONSTEXPR_14 ValidationFeaturesEXT &
  76486. setPDisabledValidationFeatures( const VULKAN_HPP_NAMESPACE::ValidationFeatureDisableEXT * pDisabledValidationFeatures_ ) VULKAN_HPP_NOEXCEPT
  76487. {
  76488. pDisabledValidationFeatures = pDisabledValidationFeatures_;
  76489. return *this;
  76490. }
  76491. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  76492. ValidationFeaturesEXT & setDisabledValidationFeatures(
  76493. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::ValidationFeatureDisableEXT> const & disabledValidationFeatures_ )
  76494. VULKAN_HPP_NOEXCEPT
  76495. {
  76496. disabledValidationFeatureCount = static_cast<uint32_t>( disabledValidationFeatures_.size() );
  76497. pDisabledValidationFeatures = disabledValidationFeatures_.data();
  76498. return *this;
  76499. }
  76500. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  76501. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  76502. operator VkValidationFeaturesEXT const &() const VULKAN_HPP_NOEXCEPT
  76503. {
  76504. return *reinterpret_cast<const VkValidationFeaturesEXT *>( this );
  76505. }
  76506. operator VkValidationFeaturesEXT &() VULKAN_HPP_NOEXCEPT
  76507. {
  76508. return *reinterpret_cast<VkValidationFeaturesEXT *>( this );
  76509. }
  76510. #if defined( VULKAN_HPP_USE_REFLECT )
  76511. # if 14 <= VULKAN_HPP_CPP_VERSION
  76512. auto
  76513. # else
  76514. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  76515. const void * const &,
  76516. uint32_t const &,
  76517. const VULKAN_HPP_NAMESPACE::ValidationFeatureEnableEXT * const &,
  76518. uint32_t const &,
  76519. const VULKAN_HPP_NAMESPACE::ValidationFeatureDisableEXT * const &>
  76520. # endif
  76521. reflect() const VULKAN_HPP_NOEXCEPT
  76522. {
  76523. return std::tie( sType, pNext, enabledValidationFeatureCount, pEnabledValidationFeatures, disabledValidationFeatureCount, pDisabledValidationFeatures );
  76524. }
  76525. #endif
  76526. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  76527. auto operator<=>( ValidationFeaturesEXT const & ) const = default;
  76528. #else
  76529. bool operator==( ValidationFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  76530. {
  76531. # if defined( VULKAN_HPP_USE_REFLECT )
  76532. return this->reflect() == rhs.reflect();
  76533. # else
  76534. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( enabledValidationFeatureCount == rhs.enabledValidationFeatureCount ) &&
  76535. ( pEnabledValidationFeatures == rhs.pEnabledValidationFeatures ) && ( disabledValidationFeatureCount == rhs.disabledValidationFeatureCount ) &&
  76536. ( pDisabledValidationFeatures == rhs.pDisabledValidationFeatures );
  76537. # endif
  76538. }
  76539. bool operator!=( ValidationFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  76540. {
  76541. return !operator==( rhs );
  76542. }
  76543. #endif
  76544. public:
  76545. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eValidationFeaturesEXT;
  76546. const void * pNext = {};
  76547. uint32_t enabledValidationFeatureCount = {};
  76548. const VULKAN_HPP_NAMESPACE::ValidationFeatureEnableEXT * pEnabledValidationFeatures = {};
  76549. uint32_t disabledValidationFeatureCount = {};
  76550. const VULKAN_HPP_NAMESPACE::ValidationFeatureDisableEXT * pDisabledValidationFeatures = {};
  76551. };
  76552. template <>
  76553. struct CppType<StructureType, StructureType::eValidationFeaturesEXT>
  76554. {
  76555. using Type = ValidationFeaturesEXT;
  76556. };
  76557. struct ValidationFlagsEXT
  76558. {
  76559. using NativeType = VkValidationFlagsEXT;
  76560. static const bool allowDuplicate = false;
  76561. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eValidationFlagsEXT;
  76562. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  76563. VULKAN_HPP_CONSTEXPR ValidationFlagsEXT( uint32_t disabledValidationCheckCount_ = {},
  76564. const VULKAN_HPP_NAMESPACE::ValidationCheckEXT * pDisabledValidationChecks_ = {},
  76565. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  76566. : pNext( pNext_ )
  76567. , disabledValidationCheckCount( disabledValidationCheckCount_ )
  76568. , pDisabledValidationChecks( pDisabledValidationChecks_ )
  76569. {
  76570. }
  76571. VULKAN_HPP_CONSTEXPR ValidationFlagsEXT( ValidationFlagsEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  76572. ValidationFlagsEXT( VkValidationFlagsEXT const & rhs ) VULKAN_HPP_NOEXCEPT : ValidationFlagsEXT( *reinterpret_cast<ValidationFlagsEXT const *>( &rhs ) ) {}
  76573. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  76574. ValidationFlagsEXT( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::ValidationCheckEXT> const & disabledValidationChecks_,
  76575. const void * pNext_ = nullptr )
  76576. : pNext( pNext_ )
  76577. , disabledValidationCheckCount( static_cast<uint32_t>( disabledValidationChecks_.size() ) )
  76578. , pDisabledValidationChecks( disabledValidationChecks_.data() )
  76579. {
  76580. }
  76581. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  76582. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  76583. ValidationFlagsEXT & operator=( ValidationFlagsEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  76584. ValidationFlagsEXT & operator=( VkValidationFlagsEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  76585. {
  76586. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ValidationFlagsEXT const *>( &rhs );
  76587. return *this;
  76588. }
  76589. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  76590. VULKAN_HPP_CONSTEXPR_14 ValidationFlagsEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  76591. {
  76592. pNext = pNext_;
  76593. return *this;
  76594. }
  76595. VULKAN_HPP_CONSTEXPR_14 ValidationFlagsEXT & setDisabledValidationCheckCount( uint32_t disabledValidationCheckCount_ ) VULKAN_HPP_NOEXCEPT
  76596. {
  76597. disabledValidationCheckCount = disabledValidationCheckCount_;
  76598. return *this;
  76599. }
  76600. VULKAN_HPP_CONSTEXPR_14 ValidationFlagsEXT &
  76601. setPDisabledValidationChecks( const VULKAN_HPP_NAMESPACE::ValidationCheckEXT * pDisabledValidationChecks_ ) VULKAN_HPP_NOEXCEPT
  76602. {
  76603. pDisabledValidationChecks = pDisabledValidationChecks_;
  76604. return *this;
  76605. }
  76606. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  76607. ValidationFlagsEXT & setDisabledValidationChecks(
  76608. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::ValidationCheckEXT> const & disabledValidationChecks_ ) VULKAN_HPP_NOEXCEPT
  76609. {
  76610. disabledValidationCheckCount = static_cast<uint32_t>( disabledValidationChecks_.size() );
  76611. pDisabledValidationChecks = disabledValidationChecks_.data();
  76612. return *this;
  76613. }
  76614. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  76615. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  76616. operator VkValidationFlagsEXT const &() const VULKAN_HPP_NOEXCEPT
  76617. {
  76618. return *reinterpret_cast<const VkValidationFlagsEXT *>( this );
  76619. }
  76620. operator VkValidationFlagsEXT &() VULKAN_HPP_NOEXCEPT
  76621. {
  76622. return *reinterpret_cast<VkValidationFlagsEXT *>( this );
  76623. }
  76624. #if defined( VULKAN_HPP_USE_REFLECT )
  76625. # if 14 <= VULKAN_HPP_CPP_VERSION
  76626. auto
  76627. # else
  76628. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, uint32_t const &, const VULKAN_HPP_NAMESPACE::ValidationCheckEXT * const &>
  76629. # endif
  76630. reflect() const VULKAN_HPP_NOEXCEPT
  76631. {
  76632. return std::tie( sType, pNext, disabledValidationCheckCount, pDisabledValidationChecks );
  76633. }
  76634. #endif
  76635. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  76636. auto operator<=>( ValidationFlagsEXT const & ) const = default;
  76637. #else
  76638. bool operator==( ValidationFlagsEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  76639. {
  76640. # if defined( VULKAN_HPP_USE_REFLECT )
  76641. return this->reflect() == rhs.reflect();
  76642. # else
  76643. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( disabledValidationCheckCount == rhs.disabledValidationCheckCount ) &&
  76644. ( pDisabledValidationChecks == rhs.pDisabledValidationChecks );
  76645. # endif
  76646. }
  76647. bool operator!=( ValidationFlagsEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  76648. {
  76649. return !operator==( rhs );
  76650. }
  76651. #endif
  76652. public:
  76653. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eValidationFlagsEXT;
  76654. const void * pNext = {};
  76655. uint32_t disabledValidationCheckCount = {};
  76656. const VULKAN_HPP_NAMESPACE::ValidationCheckEXT * pDisabledValidationChecks = {};
  76657. };
  76658. template <>
  76659. struct CppType<StructureType, StructureType::eValidationFlagsEXT>
  76660. {
  76661. using Type = ValidationFlagsEXT;
  76662. };
  76663. struct VertexInputAttributeDescription2EXT
  76664. {
  76665. using NativeType = VkVertexInputAttributeDescription2EXT;
  76666. static const bool allowDuplicate = false;
  76667. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eVertexInputAttributeDescription2EXT;
  76668. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  76669. VULKAN_HPP_CONSTEXPR VertexInputAttributeDescription2EXT( uint32_t location_ = {},
  76670. uint32_t binding_ = {},
  76671. VULKAN_HPP_NAMESPACE::Format format_ = VULKAN_HPP_NAMESPACE::Format::eUndefined,
  76672. uint32_t offset_ = {},
  76673. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  76674. : pNext( pNext_ )
  76675. , location( location_ )
  76676. , binding( binding_ )
  76677. , format( format_ )
  76678. , offset( offset_ )
  76679. {
  76680. }
  76681. VULKAN_HPP_CONSTEXPR VertexInputAttributeDescription2EXT( VertexInputAttributeDescription2EXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  76682. VertexInputAttributeDescription2EXT( VkVertexInputAttributeDescription2EXT const & rhs ) VULKAN_HPP_NOEXCEPT
  76683. : VertexInputAttributeDescription2EXT( *reinterpret_cast<VertexInputAttributeDescription2EXT const *>( &rhs ) )
  76684. {
  76685. }
  76686. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  76687. VertexInputAttributeDescription2EXT & operator=( VertexInputAttributeDescription2EXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  76688. VertexInputAttributeDescription2EXT & operator=( VkVertexInputAttributeDescription2EXT const & rhs ) VULKAN_HPP_NOEXCEPT
  76689. {
  76690. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::VertexInputAttributeDescription2EXT const *>( &rhs );
  76691. return *this;
  76692. }
  76693. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  76694. VULKAN_HPP_CONSTEXPR_14 VertexInputAttributeDescription2EXT & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
  76695. {
  76696. pNext = pNext_;
  76697. return *this;
  76698. }
  76699. VULKAN_HPP_CONSTEXPR_14 VertexInputAttributeDescription2EXT & setLocation( uint32_t location_ ) VULKAN_HPP_NOEXCEPT
  76700. {
  76701. location = location_;
  76702. return *this;
  76703. }
  76704. VULKAN_HPP_CONSTEXPR_14 VertexInputAttributeDescription2EXT & setBinding( uint32_t binding_ ) VULKAN_HPP_NOEXCEPT
  76705. {
  76706. binding = binding_;
  76707. return *this;
  76708. }
  76709. VULKAN_HPP_CONSTEXPR_14 VertexInputAttributeDescription2EXT & setFormat( VULKAN_HPP_NAMESPACE::Format format_ ) VULKAN_HPP_NOEXCEPT
  76710. {
  76711. format = format_;
  76712. return *this;
  76713. }
  76714. VULKAN_HPP_CONSTEXPR_14 VertexInputAttributeDescription2EXT & setOffset( uint32_t offset_ ) VULKAN_HPP_NOEXCEPT
  76715. {
  76716. offset = offset_;
  76717. return *this;
  76718. }
  76719. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  76720. operator VkVertexInputAttributeDescription2EXT const &() const VULKAN_HPP_NOEXCEPT
  76721. {
  76722. return *reinterpret_cast<const VkVertexInputAttributeDescription2EXT *>( this );
  76723. }
  76724. operator VkVertexInputAttributeDescription2EXT &() VULKAN_HPP_NOEXCEPT
  76725. {
  76726. return *reinterpret_cast<VkVertexInputAttributeDescription2EXT *>( this );
  76727. }
  76728. #if defined( VULKAN_HPP_USE_REFLECT )
  76729. # if 14 <= VULKAN_HPP_CPP_VERSION
  76730. auto
  76731. # else
  76732. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  76733. void * const &,
  76734. uint32_t const &,
  76735. uint32_t const &,
  76736. VULKAN_HPP_NAMESPACE::Format const &,
  76737. uint32_t const &>
  76738. # endif
  76739. reflect() const VULKAN_HPP_NOEXCEPT
  76740. {
  76741. return std::tie( sType, pNext, location, binding, format, offset );
  76742. }
  76743. #endif
  76744. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  76745. auto operator<=>( VertexInputAttributeDescription2EXT const & ) const = default;
  76746. #else
  76747. bool operator==( VertexInputAttributeDescription2EXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  76748. {
  76749. # if defined( VULKAN_HPP_USE_REFLECT )
  76750. return this->reflect() == rhs.reflect();
  76751. # else
  76752. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( location == rhs.location ) && ( binding == rhs.binding ) && ( format == rhs.format ) &&
  76753. ( offset == rhs.offset );
  76754. # endif
  76755. }
  76756. bool operator!=( VertexInputAttributeDescription2EXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  76757. {
  76758. return !operator==( rhs );
  76759. }
  76760. #endif
  76761. public:
  76762. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eVertexInputAttributeDescription2EXT;
  76763. void * pNext = {};
  76764. uint32_t location = {};
  76765. uint32_t binding = {};
  76766. VULKAN_HPP_NAMESPACE::Format format = VULKAN_HPP_NAMESPACE::Format::eUndefined;
  76767. uint32_t offset = {};
  76768. };
  76769. template <>
  76770. struct CppType<StructureType, StructureType::eVertexInputAttributeDescription2EXT>
  76771. {
  76772. using Type = VertexInputAttributeDescription2EXT;
  76773. };
  76774. struct VertexInputBindingDescription2EXT
  76775. {
  76776. using NativeType = VkVertexInputBindingDescription2EXT;
  76777. static const bool allowDuplicate = false;
  76778. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eVertexInputBindingDescription2EXT;
  76779. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  76780. VULKAN_HPP_CONSTEXPR VertexInputBindingDescription2EXT( uint32_t binding_ = {},
  76781. uint32_t stride_ = {},
  76782. VULKAN_HPP_NAMESPACE::VertexInputRate inputRate_ = VULKAN_HPP_NAMESPACE::VertexInputRate::eVertex,
  76783. uint32_t divisor_ = {},
  76784. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  76785. : pNext( pNext_ )
  76786. , binding( binding_ )
  76787. , stride( stride_ )
  76788. , inputRate( inputRate_ )
  76789. , divisor( divisor_ )
  76790. {
  76791. }
  76792. VULKAN_HPP_CONSTEXPR VertexInputBindingDescription2EXT( VertexInputBindingDescription2EXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  76793. VertexInputBindingDescription2EXT( VkVertexInputBindingDescription2EXT const & rhs ) VULKAN_HPP_NOEXCEPT
  76794. : VertexInputBindingDescription2EXT( *reinterpret_cast<VertexInputBindingDescription2EXT const *>( &rhs ) )
  76795. {
  76796. }
  76797. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  76798. VertexInputBindingDescription2EXT & operator=( VertexInputBindingDescription2EXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  76799. VertexInputBindingDescription2EXT & operator=( VkVertexInputBindingDescription2EXT const & rhs ) VULKAN_HPP_NOEXCEPT
  76800. {
  76801. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::VertexInputBindingDescription2EXT const *>( &rhs );
  76802. return *this;
  76803. }
  76804. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  76805. VULKAN_HPP_CONSTEXPR_14 VertexInputBindingDescription2EXT & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
  76806. {
  76807. pNext = pNext_;
  76808. return *this;
  76809. }
  76810. VULKAN_HPP_CONSTEXPR_14 VertexInputBindingDescription2EXT & setBinding( uint32_t binding_ ) VULKAN_HPP_NOEXCEPT
  76811. {
  76812. binding = binding_;
  76813. return *this;
  76814. }
  76815. VULKAN_HPP_CONSTEXPR_14 VertexInputBindingDescription2EXT & setStride( uint32_t stride_ ) VULKAN_HPP_NOEXCEPT
  76816. {
  76817. stride = stride_;
  76818. return *this;
  76819. }
  76820. VULKAN_HPP_CONSTEXPR_14 VertexInputBindingDescription2EXT & setInputRate( VULKAN_HPP_NAMESPACE::VertexInputRate inputRate_ ) VULKAN_HPP_NOEXCEPT
  76821. {
  76822. inputRate = inputRate_;
  76823. return *this;
  76824. }
  76825. VULKAN_HPP_CONSTEXPR_14 VertexInputBindingDescription2EXT & setDivisor( uint32_t divisor_ ) VULKAN_HPP_NOEXCEPT
  76826. {
  76827. divisor = divisor_;
  76828. return *this;
  76829. }
  76830. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  76831. operator VkVertexInputBindingDescription2EXT const &() const VULKAN_HPP_NOEXCEPT
  76832. {
  76833. return *reinterpret_cast<const VkVertexInputBindingDescription2EXT *>( this );
  76834. }
  76835. operator VkVertexInputBindingDescription2EXT &() VULKAN_HPP_NOEXCEPT
  76836. {
  76837. return *reinterpret_cast<VkVertexInputBindingDescription2EXT *>( this );
  76838. }
  76839. #if defined( VULKAN_HPP_USE_REFLECT )
  76840. # if 14 <= VULKAN_HPP_CPP_VERSION
  76841. auto
  76842. # else
  76843. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  76844. void * const &,
  76845. uint32_t const &,
  76846. uint32_t const &,
  76847. VULKAN_HPP_NAMESPACE::VertexInputRate const &,
  76848. uint32_t const &>
  76849. # endif
  76850. reflect() const VULKAN_HPP_NOEXCEPT
  76851. {
  76852. return std::tie( sType, pNext, binding, stride, inputRate, divisor );
  76853. }
  76854. #endif
  76855. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  76856. auto operator<=>( VertexInputBindingDescription2EXT const & ) const = default;
  76857. #else
  76858. bool operator==( VertexInputBindingDescription2EXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  76859. {
  76860. # if defined( VULKAN_HPP_USE_REFLECT )
  76861. return this->reflect() == rhs.reflect();
  76862. # else
  76863. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( binding == rhs.binding ) && ( stride == rhs.stride ) && ( inputRate == rhs.inputRate ) &&
  76864. ( divisor == rhs.divisor );
  76865. # endif
  76866. }
  76867. bool operator!=( VertexInputBindingDescription2EXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  76868. {
  76869. return !operator==( rhs );
  76870. }
  76871. #endif
  76872. public:
  76873. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eVertexInputBindingDescription2EXT;
  76874. void * pNext = {};
  76875. uint32_t binding = {};
  76876. uint32_t stride = {};
  76877. VULKAN_HPP_NAMESPACE::VertexInputRate inputRate = VULKAN_HPP_NAMESPACE::VertexInputRate::eVertex;
  76878. uint32_t divisor = {};
  76879. };
  76880. template <>
  76881. struct CppType<StructureType, StructureType::eVertexInputBindingDescription2EXT>
  76882. {
  76883. using Type = VertexInputBindingDescription2EXT;
  76884. };
  76885. #if defined( VK_USE_PLATFORM_VI_NN )
  76886. struct ViSurfaceCreateInfoNN
  76887. {
  76888. using NativeType = VkViSurfaceCreateInfoNN;
  76889. static const bool allowDuplicate = false;
  76890. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eViSurfaceCreateInfoNN;
  76891. # if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  76892. VULKAN_HPP_CONSTEXPR
  76893. ViSurfaceCreateInfoNN( VULKAN_HPP_NAMESPACE::ViSurfaceCreateFlagsNN flags_ = {}, void * window_ = {}, const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  76894. : pNext( pNext_ )
  76895. , flags( flags_ )
  76896. , window( window_ )
  76897. {
  76898. }
  76899. VULKAN_HPP_CONSTEXPR ViSurfaceCreateInfoNN( ViSurfaceCreateInfoNN const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  76900. ViSurfaceCreateInfoNN( VkViSurfaceCreateInfoNN const & rhs ) VULKAN_HPP_NOEXCEPT
  76901. : ViSurfaceCreateInfoNN( *reinterpret_cast<ViSurfaceCreateInfoNN const *>( &rhs ) )
  76902. {
  76903. }
  76904. # endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  76905. ViSurfaceCreateInfoNN & operator=( ViSurfaceCreateInfoNN const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  76906. ViSurfaceCreateInfoNN & operator=( VkViSurfaceCreateInfoNN const & rhs ) VULKAN_HPP_NOEXCEPT
  76907. {
  76908. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ViSurfaceCreateInfoNN const *>( &rhs );
  76909. return *this;
  76910. }
  76911. # if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  76912. VULKAN_HPP_CONSTEXPR_14 ViSurfaceCreateInfoNN & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  76913. {
  76914. pNext = pNext_;
  76915. return *this;
  76916. }
  76917. VULKAN_HPP_CONSTEXPR_14 ViSurfaceCreateInfoNN & setFlags( VULKAN_HPP_NAMESPACE::ViSurfaceCreateFlagsNN flags_ ) VULKAN_HPP_NOEXCEPT
  76918. {
  76919. flags = flags_;
  76920. return *this;
  76921. }
  76922. VULKAN_HPP_CONSTEXPR_14 ViSurfaceCreateInfoNN & setWindow( void * window_ ) VULKAN_HPP_NOEXCEPT
  76923. {
  76924. window = window_;
  76925. return *this;
  76926. }
  76927. # endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  76928. operator VkViSurfaceCreateInfoNN const &() const VULKAN_HPP_NOEXCEPT
  76929. {
  76930. return *reinterpret_cast<const VkViSurfaceCreateInfoNN *>( this );
  76931. }
  76932. operator VkViSurfaceCreateInfoNN &() VULKAN_HPP_NOEXCEPT
  76933. {
  76934. return *reinterpret_cast<VkViSurfaceCreateInfoNN *>( this );
  76935. }
  76936. # if defined( VULKAN_HPP_USE_REFLECT )
  76937. # if 14 <= VULKAN_HPP_CPP_VERSION
  76938. auto
  76939. # else
  76940. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::ViSurfaceCreateFlagsNN const &, void * const &>
  76941. # endif
  76942. reflect() const VULKAN_HPP_NOEXCEPT
  76943. {
  76944. return std::tie( sType, pNext, flags, window );
  76945. }
  76946. # endif
  76947. # if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  76948. auto operator<=>( ViSurfaceCreateInfoNN const & ) const = default;
  76949. # else
  76950. bool operator==( ViSurfaceCreateInfoNN const & rhs ) const VULKAN_HPP_NOEXCEPT
  76951. {
  76952. # if defined( VULKAN_HPP_USE_REFLECT )
  76953. return this->reflect() == rhs.reflect();
  76954. # else
  76955. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( flags == rhs.flags ) && ( window == rhs.window );
  76956. # endif
  76957. }
  76958. bool operator!=( ViSurfaceCreateInfoNN const & rhs ) const VULKAN_HPP_NOEXCEPT
  76959. {
  76960. return !operator==( rhs );
  76961. }
  76962. # endif
  76963. public:
  76964. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eViSurfaceCreateInfoNN;
  76965. const void * pNext = {};
  76966. VULKAN_HPP_NAMESPACE::ViSurfaceCreateFlagsNN flags = {};
  76967. void * window = {};
  76968. };
  76969. template <>
  76970. struct CppType<StructureType, StructureType::eViSurfaceCreateInfoNN>
  76971. {
  76972. using Type = ViSurfaceCreateInfoNN;
  76973. };
  76974. #endif /*VK_USE_PLATFORM_VI_NN*/
  76975. #if defined( VK_ENABLE_BETA_EXTENSIONS )
  76976. struct VideoPictureResourceInfoKHR
  76977. {
  76978. using NativeType = VkVideoPictureResourceInfoKHR;
  76979. static const bool allowDuplicate = false;
  76980. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eVideoPictureResourceInfoKHR;
  76981. # if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  76982. VULKAN_HPP_CONSTEXPR VideoPictureResourceInfoKHR( VULKAN_HPP_NAMESPACE::Offset2D codedOffset_ = {},
  76983. VULKAN_HPP_NAMESPACE::Extent2D codedExtent_ = {},
  76984. uint32_t baseArrayLayer_ = {},
  76985. VULKAN_HPP_NAMESPACE::ImageView imageViewBinding_ = {},
  76986. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  76987. : pNext( pNext_ )
  76988. , codedOffset( codedOffset_ )
  76989. , codedExtent( codedExtent_ )
  76990. , baseArrayLayer( baseArrayLayer_ )
  76991. , imageViewBinding( imageViewBinding_ )
  76992. {
  76993. }
  76994. VULKAN_HPP_CONSTEXPR VideoPictureResourceInfoKHR( VideoPictureResourceInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  76995. VideoPictureResourceInfoKHR( VkVideoPictureResourceInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  76996. : VideoPictureResourceInfoKHR( *reinterpret_cast<VideoPictureResourceInfoKHR const *>( &rhs ) )
  76997. {
  76998. }
  76999. # endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  77000. VideoPictureResourceInfoKHR & operator=( VideoPictureResourceInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  77001. VideoPictureResourceInfoKHR & operator=( VkVideoPictureResourceInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  77002. {
  77003. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::VideoPictureResourceInfoKHR const *>( &rhs );
  77004. return *this;
  77005. }
  77006. # if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  77007. VULKAN_HPP_CONSTEXPR_14 VideoPictureResourceInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  77008. {
  77009. pNext = pNext_;
  77010. return *this;
  77011. }
  77012. VULKAN_HPP_CONSTEXPR_14 VideoPictureResourceInfoKHR & setCodedOffset( VULKAN_HPP_NAMESPACE::Offset2D const & codedOffset_ ) VULKAN_HPP_NOEXCEPT
  77013. {
  77014. codedOffset = codedOffset_;
  77015. return *this;
  77016. }
  77017. VULKAN_HPP_CONSTEXPR_14 VideoPictureResourceInfoKHR & setCodedExtent( VULKAN_HPP_NAMESPACE::Extent2D const & codedExtent_ ) VULKAN_HPP_NOEXCEPT
  77018. {
  77019. codedExtent = codedExtent_;
  77020. return *this;
  77021. }
  77022. VULKAN_HPP_CONSTEXPR_14 VideoPictureResourceInfoKHR & setBaseArrayLayer( uint32_t baseArrayLayer_ ) VULKAN_HPP_NOEXCEPT
  77023. {
  77024. baseArrayLayer = baseArrayLayer_;
  77025. return *this;
  77026. }
  77027. VULKAN_HPP_CONSTEXPR_14 VideoPictureResourceInfoKHR & setImageViewBinding( VULKAN_HPP_NAMESPACE::ImageView imageViewBinding_ ) VULKAN_HPP_NOEXCEPT
  77028. {
  77029. imageViewBinding = imageViewBinding_;
  77030. return *this;
  77031. }
  77032. # endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  77033. operator VkVideoPictureResourceInfoKHR const &() const VULKAN_HPP_NOEXCEPT
  77034. {
  77035. return *reinterpret_cast<const VkVideoPictureResourceInfoKHR *>( this );
  77036. }
  77037. operator VkVideoPictureResourceInfoKHR &() VULKAN_HPP_NOEXCEPT
  77038. {
  77039. return *reinterpret_cast<VkVideoPictureResourceInfoKHR *>( this );
  77040. }
  77041. # if defined( VULKAN_HPP_USE_REFLECT )
  77042. # if 14 <= VULKAN_HPP_CPP_VERSION
  77043. auto
  77044. # else
  77045. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  77046. const void * const &,
  77047. VULKAN_HPP_NAMESPACE::Offset2D const &,
  77048. VULKAN_HPP_NAMESPACE::Extent2D const &,
  77049. uint32_t const &,
  77050. VULKAN_HPP_NAMESPACE::ImageView const &>
  77051. # endif
  77052. reflect() const VULKAN_HPP_NOEXCEPT
  77053. {
  77054. return std::tie( sType, pNext, codedOffset, codedExtent, baseArrayLayer, imageViewBinding );
  77055. }
  77056. # endif
  77057. # if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  77058. auto operator<=>( VideoPictureResourceInfoKHR const & ) const = default;
  77059. # else
  77060. bool operator==( VideoPictureResourceInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  77061. {
  77062. # if defined( VULKAN_HPP_USE_REFLECT )
  77063. return this->reflect() == rhs.reflect();
  77064. # else
  77065. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( codedOffset == rhs.codedOffset ) && ( codedExtent == rhs.codedExtent ) &&
  77066. ( baseArrayLayer == rhs.baseArrayLayer ) && ( imageViewBinding == rhs.imageViewBinding );
  77067. # endif
  77068. }
  77069. bool operator!=( VideoPictureResourceInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  77070. {
  77071. return !operator==( rhs );
  77072. }
  77073. # endif
  77074. public:
  77075. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eVideoPictureResourceInfoKHR;
  77076. const void * pNext = {};
  77077. VULKAN_HPP_NAMESPACE::Offset2D codedOffset = {};
  77078. VULKAN_HPP_NAMESPACE::Extent2D codedExtent = {};
  77079. uint32_t baseArrayLayer = {};
  77080. VULKAN_HPP_NAMESPACE::ImageView imageViewBinding = {};
  77081. };
  77082. template <>
  77083. struct CppType<StructureType, StructureType::eVideoPictureResourceInfoKHR>
  77084. {
  77085. using Type = VideoPictureResourceInfoKHR;
  77086. };
  77087. #endif /*VK_ENABLE_BETA_EXTENSIONS*/
  77088. #if defined( VK_ENABLE_BETA_EXTENSIONS )
  77089. struct VideoReferenceSlotInfoKHR
  77090. {
  77091. using NativeType = VkVideoReferenceSlotInfoKHR;
  77092. static const bool allowDuplicate = false;
  77093. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eVideoReferenceSlotInfoKHR;
  77094. # if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  77095. VULKAN_HPP_CONSTEXPR VideoReferenceSlotInfoKHR( int8_t slotIndex_ = {},
  77096. const VULKAN_HPP_NAMESPACE::VideoPictureResourceInfoKHR * pPictureResource_ = {},
  77097. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  77098. : pNext( pNext_ )
  77099. , slotIndex( slotIndex_ )
  77100. , pPictureResource( pPictureResource_ )
  77101. {
  77102. }
  77103. VULKAN_HPP_CONSTEXPR VideoReferenceSlotInfoKHR( VideoReferenceSlotInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  77104. VideoReferenceSlotInfoKHR( VkVideoReferenceSlotInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  77105. : VideoReferenceSlotInfoKHR( *reinterpret_cast<VideoReferenceSlotInfoKHR const *>( &rhs ) )
  77106. {
  77107. }
  77108. # endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  77109. VideoReferenceSlotInfoKHR & operator=( VideoReferenceSlotInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  77110. VideoReferenceSlotInfoKHR & operator=( VkVideoReferenceSlotInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  77111. {
  77112. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::VideoReferenceSlotInfoKHR const *>( &rhs );
  77113. return *this;
  77114. }
  77115. # if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  77116. VULKAN_HPP_CONSTEXPR_14 VideoReferenceSlotInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  77117. {
  77118. pNext = pNext_;
  77119. return *this;
  77120. }
  77121. VULKAN_HPP_CONSTEXPR_14 VideoReferenceSlotInfoKHR & setSlotIndex( int8_t slotIndex_ ) VULKAN_HPP_NOEXCEPT
  77122. {
  77123. slotIndex = slotIndex_;
  77124. return *this;
  77125. }
  77126. VULKAN_HPP_CONSTEXPR_14 VideoReferenceSlotInfoKHR &
  77127. setPPictureResource( const VULKAN_HPP_NAMESPACE::VideoPictureResourceInfoKHR * pPictureResource_ ) VULKAN_HPP_NOEXCEPT
  77128. {
  77129. pPictureResource = pPictureResource_;
  77130. return *this;
  77131. }
  77132. # endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  77133. operator VkVideoReferenceSlotInfoKHR const &() const VULKAN_HPP_NOEXCEPT
  77134. {
  77135. return *reinterpret_cast<const VkVideoReferenceSlotInfoKHR *>( this );
  77136. }
  77137. operator VkVideoReferenceSlotInfoKHR &() VULKAN_HPP_NOEXCEPT
  77138. {
  77139. return *reinterpret_cast<VkVideoReferenceSlotInfoKHR *>( this );
  77140. }
  77141. # if defined( VULKAN_HPP_USE_REFLECT )
  77142. # if 14 <= VULKAN_HPP_CPP_VERSION
  77143. auto
  77144. # else
  77145. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  77146. const void * const &,
  77147. int8_t const &,
  77148. const VULKAN_HPP_NAMESPACE::VideoPictureResourceInfoKHR * const &>
  77149. # endif
  77150. reflect() const VULKAN_HPP_NOEXCEPT
  77151. {
  77152. return std::tie( sType, pNext, slotIndex, pPictureResource );
  77153. }
  77154. # endif
  77155. # if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  77156. auto operator<=>( VideoReferenceSlotInfoKHR const & ) const = default;
  77157. # else
  77158. bool operator==( VideoReferenceSlotInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  77159. {
  77160. # if defined( VULKAN_HPP_USE_REFLECT )
  77161. return this->reflect() == rhs.reflect();
  77162. # else
  77163. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( slotIndex == rhs.slotIndex ) && ( pPictureResource == rhs.pPictureResource );
  77164. # endif
  77165. }
  77166. bool operator!=( VideoReferenceSlotInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  77167. {
  77168. return !operator==( rhs );
  77169. }
  77170. # endif
  77171. public:
  77172. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eVideoReferenceSlotInfoKHR;
  77173. const void * pNext = {};
  77174. int8_t slotIndex = {};
  77175. const VULKAN_HPP_NAMESPACE::VideoPictureResourceInfoKHR * pPictureResource = {};
  77176. };
  77177. template <>
  77178. struct CppType<StructureType, StructureType::eVideoReferenceSlotInfoKHR>
  77179. {
  77180. using Type = VideoReferenceSlotInfoKHR;
  77181. };
  77182. #endif /*VK_ENABLE_BETA_EXTENSIONS*/
  77183. #if defined( VK_ENABLE_BETA_EXTENSIONS )
  77184. struct VideoBeginCodingInfoKHR
  77185. {
  77186. using NativeType = VkVideoBeginCodingInfoKHR;
  77187. static const bool allowDuplicate = false;
  77188. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eVideoBeginCodingInfoKHR;
  77189. # if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  77190. VULKAN_HPP_CONSTEXPR VideoBeginCodingInfoKHR( VULKAN_HPP_NAMESPACE::VideoBeginCodingFlagsKHR flags_ = {},
  77191. VULKAN_HPP_NAMESPACE::VideoSessionKHR videoSession_ = {},
  77192. VULKAN_HPP_NAMESPACE::VideoSessionParametersKHR videoSessionParameters_ = {},
  77193. uint32_t referenceSlotCount_ = {},
  77194. const VULKAN_HPP_NAMESPACE::VideoReferenceSlotInfoKHR * pReferenceSlots_ = {},
  77195. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  77196. : pNext( pNext_ )
  77197. , flags( flags_ )
  77198. , videoSession( videoSession_ )
  77199. , videoSessionParameters( videoSessionParameters_ )
  77200. , referenceSlotCount( referenceSlotCount_ )
  77201. , pReferenceSlots( pReferenceSlots_ )
  77202. {
  77203. }
  77204. VULKAN_HPP_CONSTEXPR VideoBeginCodingInfoKHR( VideoBeginCodingInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  77205. VideoBeginCodingInfoKHR( VkVideoBeginCodingInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  77206. : VideoBeginCodingInfoKHR( *reinterpret_cast<VideoBeginCodingInfoKHR const *>( &rhs ) )
  77207. {
  77208. }
  77209. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  77210. VideoBeginCodingInfoKHR( VULKAN_HPP_NAMESPACE::VideoBeginCodingFlagsKHR flags_,
  77211. VULKAN_HPP_NAMESPACE::VideoSessionKHR videoSession_,
  77212. VULKAN_HPP_NAMESPACE::VideoSessionParametersKHR videoSessionParameters_,
  77213. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::VideoReferenceSlotInfoKHR> const & referenceSlots_,
  77214. const void * pNext_ = nullptr )
  77215. : pNext( pNext_ )
  77216. , flags( flags_ )
  77217. , videoSession( videoSession_ )
  77218. , videoSessionParameters( videoSessionParameters_ )
  77219. , referenceSlotCount( static_cast<uint32_t>( referenceSlots_.size() ) )
  77220. , pReferenceSlots( referenceSlots_.data() )
  77221. {
  77222. }
  77223. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  77224. # endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  77225. VideoBeginCodingInfoKHR & operator=( VideoBeginCodingInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  77226. VideoBeginCodingInfoKHR & operator=( VkVideoBeginCodingInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  77227. {
  77228. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::VideoBeginCodingInfoKHR const *>( &rhs );
  77229. return *this;
  77230. }
  77231. # if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  77232. VULKAN_HPP_CONSTEXPR_14 VideoBeginCodingInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  77233. {
  77234. pNext = pNext_;
  77235. return *this;
  77236. }
  77237. VULKAN_HPP_CONSTEXPR_14 VideoBeginCodingInfoKHR & setFlags( VULKAN_HPP_NAMESPACE::VideoBeginCodingFlagsKHR flags_ ) VULKAN_HPP_NOEXCEPT
  77238. {
  77239. flags = flags_;
  77240. return *this;
  77241. }
  77242. VULKAN_HPP_CONSTEXPR_14 VideoBeginCodingInfoKHR & setVideoSession( VULKAN_HPP_NAMESPACE::VideoSessionKHR videoSession_ ) VULKAN_HPP_NOEXCEPT
  77243. {
  77244. videoSession = videoSession_;
  77245. return *this;
  77246. }
  77247. VULKAN_HPP_CONSTEXPR_14 VideoBeginCodingInfoKHR &
  77248. setVideoSessionParameters( VULKAN_HPP_NAMESPACE::VideoSessionParametersKHR videoSessionParameters_ ) VULKAN_HPP_NOEXCEPT
  77249. {
  77250. videoSessionParameters = videoSessionParameters_;
  77251. return *this;
  77252. }
  77253. VULKAN_HPP_CONSTEXPR_14 VideoBeginCodingInfoKHR & setReferenceSlotCount( uint32_t referenceSlotCount_ ) VULKAN_HPP_NOEXCEPT
  77254. {
  77255. referenceSlotCount = referenceSlotCount_;
  77256. return *this;
  77257. }
  77258. VULKAN_HPP_CONSTEXPR_14 VideoBeginCodingInfoKHR &
  77259. setPReferenceSlots( const VULKAN_HPP_NAMESPACE::VideoReferenceSlotInfoKHR * pReferenceSlots_ ) VULKAN_HPP_NOEXCEPT
  77260. {
  77261. pReferenceSlots = pReferenceSlots_;
  77262. return *this;
  77263. }
  77264. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  77265. VideoBeginCodingInfoKHR & setReferenceSlots(
  77266. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::VideoReferenceSlotInfoKHR> const & referenceSlots_ ) VULKAN_HPP_NOEXCEPT
  77267. {
  77268. referenceSlotCount = static_cast<uint32_t>( referenceSlots_.size() );
  77269. pReferenceSlots = referenceSlots_.data();
  77270. return *this;
  77271. }
  77272. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  77273. # endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  77274. operator VkVideoBeginCodingInfoKHR const &() const VULKAN_HPP_NOEXCEPT
  77275. {
  77276. return *reinterpret_cast<const VkVideoBeginCodingInfoKHR *>( this );
  77277. }
  77278. operator VkVideoBeginCodingInfoKHR &() VULKAN_HPP_NOEXCEPT
  77279. {
  77280. return *reinterpret_cast<VkVideoBeginCodingInfoKHR *>( this );
  77281. }
  77282. # if defined( VULKAN_HPP_USE_REFLECT )
  77283. # if 14 <= VULKAN_HPP_CPP_VERSION
  77284. auto
  77285. # else
  77286. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  77287. const void * const &,
  77288. VULKAN_HPP_NAMESPACE::VideoBeginCodingFlagsKHR const &,
  77289. VULKAN_HPP_NAMESPACE::VideoSessionKHR const &,
  77290. VULKAN_HPP_NAMESPACE::VideoSessionParametersKHR const &,
  77291. uint32_t const &,
  77292. const VULKAN_HPP_NAMESPACE::VideoReferenceSlotInfoKHR * const &>
  77293. # endif
  77294. reflect() const VULKAN_HPP_NOEXCEPT
  77295. {
  77296. return std::tie( sType, pNext, flags, videoSession, videoSessionParameters, referenceSlotCount, pReferenceSlots );
  77297. }
  77298. # endif
  77299. # if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  77300. auto operator<=>( VideoBeginCodingInfoKHR const & ) const = default;
  77301. # else
  77302. bool operator==( VideoBeginCodingInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  77303. {
  77304. # if defined( VULKAN_HPP_USE_REFLECT )
  77305. return this->reflect() == rhs.reflect();
  77306. # else
  77307. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( flags == rhs.flags ) && ( videoSession == rhs.videoSession ) &&
  77308. ( videoSessionParameters == rhs.videoSessionParameters ) && ( referenceSlotCount == rhs.referenceSlotCount ) &&
  77309. ( pReferenceSlots == rhs.pReferenceSlots );
  77310. # endif
  77311. }
  77312. bool operator!=( VideoBeginCodingInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  77313. {
  77314. return !operator==( rhs );
  77315. }
  77316. # endif
  77317. public:
  77318. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eVideoBeginCodingInfoKHR;
  77319. const void * pNext = {};
  77320. VULKAN_HPP_NAMESPACE::VideoBeginCodingFlagsKHR flags = {};
  77321. VULKAN_HPP_NAMESPACE::VideoSessionKHR videoSession = {};
  77322. VULKAN_HPP_NAMESPACE::VideoSessionParametersKHR videoSessionParameters = {};
  77323. uint32_t referenceSlotCount = {};
  77324. const VULKAN_HPP_NAMESPACE::VideoReferenceSlotInfoKHR * pReferenceSlots = {};
  77325. };
  77326. template <>
  77327. struct CppType<StructureType, StructureType::eVideoBeginCodingInfoKHR>
  77328. {
  77329. using Type = VideoBeginCodingInfoKHR;
  77330. };
  77331. #endif /*VK_ENABLE_BETA_EXTENSIONS*/
  77332. #if defined( VK_ENABLE_BETA_EXTENSIONS )
  77333. struct VideoCapabilitiesKHR
  77334. {
  77335. using NativeType = VkVideoCapabilitiesKHR;
  77336. static const bool allowDuplicate = false;
  77337. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eVideoCapabilitiesKHR;
  77338. # if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  77339. VULKAN_HPP_CONSTEXPR_14 VideoCapabilitiesKHR( VULKAN_HPP_NAMESPACE::VideoCapabilityFlagsKHR capabilityFlags_ = {},
  77340. VULKAN_HPP_NAMESPACE::DeviceSize minBitstreamBufferOffsetAlignment_ = {},
  77341. VULKAN_HPP_NAMESPACE::DeviceSize minBitstreamBufferSizeAlignment_ = {},
  77342. VULKAN_HPP_NAMESPACE::Extent2D videoPictureExtentGranularity_ = {},
  77343. VULKAN_HPP_NAMESPACE::Extent2D minExtent_ = {},
  77344. VULKAN_HPP_NAMESPACE::Extent2D maxExtent_ = {},
  77345. uint32_t maxReferencePicturesSlotsCount_ = {},
  77346. uint32_t maxReferencePicturesActiveCount_ = {},
  77347. VULKAN_HPP_NAMESPACE::ExtensionProperties stdHeaderVersion_ = {},
  77348. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  77349. : pNext( pNext_ )
  77350. , capabilityFlags( capabilityFlags_ )
  77351. , minBitstreamBufferOffsetAlignment( minBitstreamBufferOffsetAlignment_ )
  77352. , minBitstreamBufferSizeAlignment( minBitstreamBufferSizeAlignment_ )
  77353. , videoPictureExtentGranularity( videoPictureExtentGranularity_ )
  77354. , minExtent( minExtent_ )
  77355. , maxExtent( maxExtent_ )
  77356. , maxReferencePicturesSlotsCount( maxReferencePicturesSlotsCount_ )
  77357. , maxReferencePicturesActiveCount( maxReferencePicturesActiveCount_ )
  77358. , stdHeaderVersion( stdHeaderVersion_ )
  77359. {
  77360. }
  77361. VULKAN_HPP_CONSTEXPR_14 VideoCapabilitiesKHR( VideoCapabilitiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  77362. VideoCapabilitiesKHR( VkVideoCapabilitiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  77363. : VideoCapabilitiesKHR( *reinterpret_cast<VideoCapabilitiesKHR const *>( &rhs ) )
  77364. {
  77365. }
  77366. # endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  77367. VideoCapabilitiesKHR & operator=( VideoCapabilitiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  77368. VideoCapabilitiesKHR & operator=( VkVideoCapabilitiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  77369. {
  77370. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::VideoCapabilitiesKHR const *>( &rhs );
  77371. return *this;
  77372. }
  77373. operator VkVideoCapabilitiesKHR const &() const VULKAN_HPP_NOEXCEPT
  77374. {
  77375. return *reinterpret_cast<const VkVideoCapabilitiesKHR *>( this );
  77376. }
  77377. operator VkVideoCapabilitiesKHR &() VULKAN_HPP_NOEXCEPT
  77378. {
  77379. return *reinterpret_cast<VkVideoCapabilitiesKHR *>( this );
  77380. }
  77381. # if defined( VULKAN_HPP_USE_REFLECT )
  77382. # if 14 <= VULKAN_HPP_CPP_VERSION
  77383. auto
  77384. # else
  77385. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  77386. void * const &,
  77387. VULKAN_HPP_NAMESPACE::VideoCapabilityFlagsKHR const &,
  77388. VULKAN_HPP_NAMESPACE::DeviceSize const &,
  77389. VULKAN_HPP_NAMESPACE::DeviceSize const &,
  77390. VULKAN_HPP_NAMESPACE::Extent2D const &,
  77391. VULKAN_HPP_NAMESPACE::Extent2D const &,
  77392. VULKAN_HPP_NAMESPACE::Extent2D const &,
  77393. uint32_t const &,
  77394. uint32_t const &,
  77395. VULKAN_HPP_NAMESPACE::ExtensionProperties const &>
  77396. # endif
  77397. reflect() const VULKAN_HPP_NOEXCEPT
  77398. {
  77399. return std::tie( sType,
  77400. pNext,
  77401. capabilityFlags,
  77402. minBitstreamBufferOffsetAlignment,
  77403. minBitstreamBufferSizeAlignment,
  77404. videoPictureExtentGranularity,
  77405. minExtent,
  77406. maxExtent,
  77407. maxReferencePicturesSlotsCount,
  77408. maxReferencePicturesActiveCount,
  77409. stdHeaderVersion );
  77410. }
  77411. # endif
  77412. # if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  77413. auto operator<=>( VideoCapabilitiesKHR const & ) const = default;
  77414. # else
  77415. bool operator==( VideoCapabilitiesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  77416. {
  77417. # if defined( VULKAN_HPP_USE_REFLECT )
  77418. return this->reflect() == rhs.reflect();
  77419. # else
  77420. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( capabilityFlags == rhs.capabilityFlags ) &&
  77421. ( minBitstreamBufferOffsetAlignment == rhs.minBitstreamBufferOffsetAlignment ) &&
  77422. ( minBitstreamBufferSizeAlignment == rhs.minBitstreamBufferSizeAlignment ) &&
  77423. ( videoPictureExtentGranularity == rhs.videoPictureExtentGranularity ) && ( minExtent == rhs.minExtent ) && ( maxExtent == rhs.maxExtent ) &&
  77424. ( maxReferencePicturesSlotsCount == rhs.maxReferencePicturesSlotsCount ) &&
  77425. ( maxReferencePicturesActiveCount == rhs.maxReferencePicturesActiveCount ) && ( stdHeaderVersion == rhs.stdHeaderVersion );
  77426. # endif
  77427. }
  77428. bool operator!=( VideoCapabilitiesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  77429. {
  77430. return !operator==( rhs );
  77431. }
  77432. # endif
  77433. public:
  77434. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eVideoCapabilitiesKHR;
  77435. void * pNext = {};
  77436. VULKAN_HPP_NAMESPACE::VideoCapabilityFlagsKHR capabilityFlags = {};
  77437. VULKAN_HPP_NAMESPACE::DeviceSize minBitstreamBufferOffsetAlignment = {};
  77438. VULKAN_HPP_NAMESPACE::DeviceSize minBitstreamBufferSizeAlignment = {};
  77439. VULKAN_HPP_NAMESPACE::Extent2D videoPictureExtentGranularity = {};
  77440. VULKAN_HPP_NAMESPACE::Extent2D minExtent = {};
  77441. VULKAN_HPP_NAMESPACE::Extent2D maxExtent = {};
  77442. uint32_t maxReferencePicturesSlotsCount = {};
  77443. uint32_t maxReferencePicturesActiveCount = {};
  77444. VULKAN_HPP_NAMESPACE::ExtensionProperties stdHeaderVersion = {};
  77445. };
  77446. template <>
  77447. struct CppType<StructureType, StructureType::eVideoCapabilitiesKHR>
  77448. {
  77449. using Type = VideoCapabilitiesKHR;
  77450. };
  77451. #endif /*VK_ENABLE_BETA_EXTENSIONS*/
  77452. #if defined( VK_ENABLE_BETA_EXTENSIONS )
  77453. struct VideoCodingControlInfoKHR
  77454. {
  77455. using NativeType = VkVideoCodingControlInfoKHR;
  77456. static const bool allowDuplicate = false;
  77457. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eVideoCodingControlInfoKHR;
  77458. # if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  77459. VULKAN_HPP_CONSTEXPR VideoCodingControlInfoKHR( VULKAN_HPP_NAMESPACE::VideoCodingControlFlagsKHR flags_ = {},
  77460. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  77461. : pNext( pNext_ )
  77462. , flags( flags_ )
  77463. {
  77464. }
  77465. VULKAN_HPP_CONSTEXPR VideoCodingControlInfoKHR( VideoCodingControlInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  77466. VideoCodingControlInfoKHR( VkVideoCodingControlInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  77467. : VideoCodingControlInfoKHR( *reinterpret_cast<VideoCodingControlInfoKHR const *>( &rhs ) )
  77468. {
  77469. }
  77470. # endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  77471. VideoCodingControlInfoKHR & operator=( VideoCodingControlInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  77472. VideoCodingControlInfoKHR & operator=( VkVideoCodingControlInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  77473. {
  77474. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::VideoCodingControlInfoKHR const *>( &rhs );
  77475. return *this;
  77476. }
  77477. # if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  77478. VULKAN_HPP_CONSTEXPR_14 VideoCodingControlInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  77479. {
  77480. pNext = pNext_;
  77481. return *this;
  77482. }
  77483. VULKAN_HPP_CONSTEXPR_14 VideoCodingControlInfoKHR & setFlags( VULKAN_HPP_NAMESPACE::VideoCodingControlFlagsKHR flags_ ) VULKAN_HPP_NOEXCEPT
  77484. {
  77485. flags = flags_;
  77486. return *this;
  77487. }
  77488. # endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  77489. operator VkVideoCodingControlInfoKHR const &() const VULKAN_HPP_NOEXCEPT
  77490. {
  77491. return *reinterpret_cast<const VkVideoCodingControlInfoKHR *>( this );
  77492. }
  77493. operator VkVideoCodingControlInfoKHR &() VULKAN_HPP_NOEXCEPT
  77494. {
  77495. return *reinterpret_cast<VkVideoCodingControlInfoKHR *>( this );
  77496. }
  77497. # if defined( VULKAN_HPP_USE_REFLECT )
  77498. # if 14 <= VULKAN_HPP_CPP_VERSION
  77499. auto
  77500. # else
  77501. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::VideoCodingControlFlagsKHR const &>
  77502. # endif
  77503. reflect() const VULKAN_HPP_NOEXCEPT
  77504. {
  77505. return std::tie( sType, pNext, flags );
  77506. }
  77507. # endif
  77508. # if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  77509. auto operator<=>( VideoCodingControlInfoKHR const & ) const = default;
  77510. # else
  77511. bool operator==( VideoCodingControlInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  77512. {
  77513. # if defined( VULKAN_HPP_USE_REFLECT )
  77514. return this->reflect() == rhs.reflect();
  77515. # else
  77516. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( flags == rhs.flags );
  77517. # endif
  77518. }
  77519. bool operator!=( VideoCodingControlInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  77520. {
  77521. return !operator==( rhs );
  77522. }
  77523. # endif
  77524. public:
  77525. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eVideoCodingControlInfoKHR;
  77526. const void * pNext = {};
  77527. VULKAN_HPP_NAMESPACE::VideoCodingControlFlagsKHR flags = {};
  77528. };
  77529. template <>
  77530. struct CppType<StructureType, StructureType::eVideoCodingControlInfoKHR>
  77531. {
  77532. using Type = VideoCodingControlInfoKHR;
  77533. };
  77534. #endif /*VK_ENABLE_BETA_EXTENSIONS*/
  77535. #if defined( VK_ENABLE_BETA_EXTENSIONS )
  77536. struct VideoDecodeCapabilitiesKHR
  77537. {
  77538. using NativeType = VkVideoDecodeCapabilitiesKHR;
  77539. static const bool allowDuplicate = false;
  77540. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eVideoDecodeCapabilitiesKHR;
  77541. # if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  77542. VULKAN_HPP_CONSTEXPR VideoDecodeCapabilitiesKHR( VULKAN_HPP_NAMESPACE::VideoDecodeCapabilityFlagsKHR flags_ = {},
  77543. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  77544. : pNext( pNext_ )
  77545. , flags( flags_ )
  77546. {
  77547. }
  77548. VULKAN_HPP_CONSTEXPR VideoDecodeCapabilitiesKHR( VideoDecodeCapabilitiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  77549. VideoDecodeCapabilitiesKHR( VkVideoDecodeCapabilitiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  77550. : VideoDecodeCapabilitiesKHR( *reinterpret_cast<VideoDecodeCapabilitiesKHR const *>( &rhs ) )
  77551. {
  77552. }
  77553. # endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  77554. VideoDecodeCapabilitiesKHR & operator=( VideoDecodeCapabilitiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  77555. VideoDecodeCapabilitiesKHR & operator=( VkVideoDecodeCapabilitiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  77556. {
  77557. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::VideoDecodeCapabilitiesKHR const *>( &rhs );
  77558. return *this;
  77559. }
  77560. operator VkVideoDecodeCapabilitiesKHR const &() const VULKAN_HPP_NOEXCEPT
  77561. {
  77562. return *reinterpret_cast<const VkVideoDecodeCapabilitiesKHR *>( this );
  77563. }
  77564. operator VkVideoDecodeCapabilitiesKHR &() VULKAN_HPP_NOEXCEPT
  77565. {
  77566. return *reinterpret_cast<VkVideoDecodeCapabilitiesKHR *>( this );
  77567. }
  77568. # if defined( VULKAN_HPP_USE_REFLECT )
  77569. # if 14 <= VULKAN_HPP_CPP_VERSION
  77570. auto
  77571. # else
  77572. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::VideoDecodeCapabilityFlagsKHR const &>
  77573. # endif
  77574. reflect() const VULKAN_HPP_NOEXCEPT
  77575. {
  77576. return std::tie( sType, pNext, flags );
  77577. }
  77578. # endif
  77579. # if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  77580. auto operator<=>( VideoDecodeCapabilitiesKHR const & ) const = default;
  77581. # else
  77582. bool operator==( VideoDecodeCapabilitiesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  77583. {
  77584. # if defined( VULKAN_HPP_USE_REFLECT )
  77585. return this->reflect() == rhs.reflect();
  77586. # else
  77587. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( flags == rhs.flags );
  77588. # endif
  77589. }
  77590. bool operator!=( VideoDecodeCapabilitiesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  77591. {
  77592. return !operator==( rhs );
  77593. }
  77594. # endif
  77595. public:
  77596. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eVideoDecodeCapabilitiesKHR;
  77597. void * pNext = {};
  77598. VULKAN_HPP_NAMESPACE::VideoDecodeCapabilityFlagsKHR flags = {};
  77599. };
  77600. template <>
  77601. struct CppType<StructureType, StructureType::eVideoDecodeCapabilitiesKHR>
  77602. {
  77603. using Type = VideoDecodeCapabilitiesKHR;
  77604. };
  77605. #endif /*VK_ENABLE_BETA_EXTENSIONS*/
  77606. #if defined( VK_ENABLE_BETA_EXTENSIONS )
  77607. struct VideoDecodeH264CapabilitiesEXT
  77608. {
  77609. using NativeType = VkVideoDecodeH264CapabilitiesEXT;
  77610. static const bool allowDuplicate = false;
  77611. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eVideoDecodeH264CapabilitiesEXT;
  77612. # if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  77613. VULKAN_HPP_CONSTEXPR VideoDecodeH264CapabilitiesEXT( StdVideoH264Level maxLevel_ = {},
  77614. VULKAN_HPP_NAMESPACE::Offset2D fieldOffsetGranularity_ = {},
  77615. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  77616. : pNext( pNext_ )
  77617. , maxLevel( maxLevel_ )
  77618. , fieldOffsetGranularity( fieldOffsetGranularity_ )
  77619. {
  77620. }
  77621. VULKAN_HPP_CONSTEXPR VideoDecodeH264CapabilitiesEXT( VideoDecodeH264CapabilitiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  77622. VideoDecodeH264CapabilitiesEXT( VkVideoDecodeH264CapabilitiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  77623. : VideoDecodeH264CapabilitiesEXT( *reinterpret_cast<VideoDecodeH264CapabilitiesEXT const *>( &rhs ) )
  77624. {
  77625. }
  77626. # endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  77627. VideoDecodeH264CapabilitiesEXT & operator=( VideoDecodeH264CapabilitiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  77628. VideoDecodeH264CapabilitiesEXT & operator=( VkVideoDecodeH264CapabilitiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  77629. {
  77630. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::VideoDecodeH264CapabilitiesEXT const *>( &rhs );
  77631. return *this;
  77632. }
  77633. operator VkVideoDecodeH264CapabilitiesEXT const &() const VULKAN_HPP_NOEXCEPT
  77634. {
  77635. return *reinterpret_cast<const VkVideoDecodeH264CapabilitiesEXT *>( this );
  77636. }
  77637. operator VkVideoDecodeH264CapabilitiesEXT &() VULKAN_HPP_NOEXCEPT
  77638. {
  77639. return *reinterpret_cast<VkVideoDecodeH264CapabilitiesEXT *>( this );
  77640. }
  77641. # if defined( VULKAN_HPP_USE_REFLECT )
  77642. # if 14 <= VULKAN_HPP_CPP_VERSION
  77643. auto
  77644. # else
  77645. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, StdVideoH264Level const &, VULKAN_HPP_NAMESPACE::Offset2D const &>
  77646. # endif
  77647. reflect() const VULKAN_HPP_NOEXCEPT
  77648. {
  77649. return std::tie( sType, pNext, maxLevel, fieldOffsetGranularity );
  77650. }
  77651. # endif
  77652. # if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  77653. std::strong_ordering operator<=>( VideoDecodeH264CapabilitiesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  77654. {
  77655. if ( auto cmp = sType <=> rhs.sType; cmp != 0 )
  77656. return cmp;
  77657. if ( auto cmp = pNext <=> rhs.pNext; cmp != 0 )
  77658. return cmp;
  77659. if ( auto cmp = memcmp( &maxLevel, &rhs.maxLevel, sizeof( StdVideoH264Level ) ); cmp != 0 )
  77660. return ( cmp < 0 ) ? std::strong_ordering::less : std::strong_ordering::greater;
  77661. if ( auto cmp = fieldOffsetGranularity <=> rhs.fieldOffsetGranularity; cmp != 0 )
  77662. return cmp;
  77663. return std::strong_ordering::equivalent;
  77664. }
  77665. # endif
  77666. bool operator==( VideoDecodeH264CapabilitiesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  77667. {
  77668. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( memcmp( &maxLevel, &rhs.maxLevel, sizeof( StdVideoH264Level ) ) == 0 ) &&
  77669. ( fieldOffsetGranularity == rhs.fieldOffsetGranularity );
  77670. }
  77671. bool operator!=( VideoDecodeH264CapabilitiesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  77672. {
  77673. return !operator==( rhs );
  77674. }
  77675. public:
  77676. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eVideoDecodeH264CapabilitiesEXT;
  77677. void * pNext = {};
  77678. StdVideoH264Level maxLevel = {};
  77679. VULKAN_HPP_NAMESPACE::Offset2D fieldOffsetGranularity = {};
  77680. };
  77681. template <>
  77682. struct CppType<StructureType, StructureType::eVideoDecodeH264CapabilitiesEXT>
  77683. {
  77684. using Type = VideoDecodeH264CapabilitiesEXT;
  77685. };
  77686. #endif /*VK_ENABLE_BETA_EXTENSIONS*/
  77687. #if defined( VK_ENABLE_BETA_EXTENSIONS )
  77688. struct VideoDecodeH264DpbSlotInfoEXT
  77689. {
  77690. using NativeType = VkVideoDecodeH264DpbSlotInfoEXT;
  77691. static const bool allowDuplicate = false;
  77692. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eVideoDecodeH264DpbSlotInfoEXT;
  77693. # if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  77694. VULKAN_HPP_CONSTEXPR VideoDecodeH264DpbSlotInfoEXT( const StdVideoDecodeH264ReferenceInfo * pStdReferenceInfo_ = {},
  77695. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  77696. : pNext( pNext_ )
  77697. , pStdReferenceInfo( pStdReferenceInfo_ )
  77698. {
  77699. }
  77700. VULKAN_HPP_CONSTEXPR VideoDecodeH264DpbSlotInfoEXT( VideoDecodeH264DpbSlotInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  77701. VideoDecodeH264DpbSlotInfoEXT( VkVideoDecodeH264DpbSlotInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  77702. : VideoDecodeH264DpbSlotInfoEXT( *reinterpret_cast<VideoDecodeH264DpbSlotInfoEXT const *>( &rhs ) )
  77703. {
  77704. }
  77705. # endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  77706. VideoDecodeH264DpbSlotInfoEXT & operator=( VideoDecodeH264DpbSlotInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  77707. VideoDecodeH264DpbSlotInfoEXT & operator=( VkVideoDecodeH264DpbSlotInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  77708. {
  77709. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::VideoDecodeH264DpbSlotInfoEXT const *>( &rhs );
  77710. return *this;
  77711. }
  77712. # if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  77713. VULKAN_HPP_CONSTEXPR_14 VideoDecodeH264DpbSlotInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  77714. {
  77715. pNext = pNext_;
  77716. return *this;
  77717. }
  77718. VULKAN_HPP_CONSTEXPR_14 VideoDecodeH264DpbSlotInfoEXT &
  77719. setPStdReferenceInfo( const StdVideoDecodeH264ReferenceInfo * pStdReferenceInfo_ ) VULKAN_HPP_NOEXCEPT
  77720. {
  77721. pStdReferenceInfo = pStdReferenceInfo_;
  77722. return *this;
  77723. }
  77724. # endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  77725. operator VkVideoDecodeH264DpbSlotInfoEXT const &() const VULKAN_HPP_NOEXCEPT
  77726. {
  77727. return *reinterpret_cast<const VkVideoDecodeH264DpbSlotInfoEXT *>( this );
  77728. }
  77729. operator VkVideoDecodeH264DpbSlotInfoEXT &() VULKAN_HPP_NOEXCEPT
  77730. {
  77731. return *reinterpret_cast<VkVideoDecodeH264DpbSlotInfoEXT *>( this );
  77732. }
  77733. # if defined( VULKAN_HPP_USE_REFLECT )
  77734. # if 14 <= VULKAN_HPP_CPP_VERSION
  77735. auto
  77736. # else
  77737. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, const StdVideoDecodeH264ReferenceInfo * const &>
  77738. # endif
  77739. reflect() const VULKAN_HPP_NOEXCEPT
  77740. {
  77741. return std::tie( sType, pNext, pStdReferenceInfo );
  77742. }
  77743. # endif
  77744. # if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  77745. auto operator<=>( VideoDecodeH264DpbSlotInfoEXT const & ) const = default;
  77746. # else
  77747. bool operator==( VideoDecodeH264DpbSlotInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  77748. {
  77749. # if defined( VULKAN_HPP_USE_REFLECT )
  77750. return this->reflect() == rhs.reflect();
  77751. # else
  77752. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( pStdReferenceInfo == rhs.pStdReferenceInfo );
  77753. # endif
  77754. }
  77755. bool operator!=( VideoDecodeH264DpbSlotInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  77756. {
  77757. return !operator==( rhs );
  77758. }
  77759. # endif
  77760. public:
  77761. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eVideoDecodeH264DpbSlotInfoEXT;
  77762. const void * pNext = {};
  77763. const StdVideoDecodeH264ReferenceInfo * pStdReferenceInfo = {};
  77764. };
  77765. template <>
  77766. struct CppType<StructureType, StructureType::eVideoDecodeH264DpbSlotInfoEXT>
  77767. {
  77768. using Type = VideoDecodeH264DpbSlotInfoEXT;
  77769. };
  77770. #endif /*VK_ENABLE_BETA_EXTENSIONS*/
  77771. #if defined( VK_ENABLE_BETA_EXTENSIONS )
  77772. struct VideoDecodeH264MvcInfoEXT
  77773. {
  77774. using NativeType = VkVideoDecodeH264MvcInfoEXT;
  77775. static const bool allowDuplicate = false;
  77776. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eVideoDecodeH264MvcInfoEXT;
  77777. # if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  77778. VULKAN_HPP_CONSTEXPR VideoDecodeH264MvcInfoEXT( const StdVideoDecodeH264Mvc * pStdMvc_ = {}, const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  77779. : pNext( pNext_ )
  77780. , pStdMvc( pStdMvc_ )
  77781. {
  77782. }
  77783. VULKAN_HPP_CONSTEXPR VideoDecodeH264MvcInfoEXT( VideoDecodeH264MvcInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  77784. VideoDecodeH264MvcInfoEXT( VkVideoDecodeH264MvcInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  77785. : VideoDecodeH264MvcInfoEXT( *reinterpret_cast<VideoDecodeH264MvcInfoEXT const *>( &rhs ) )
  77786. {
  77787. }
  77788. # endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  77789. VideoDecodeH264MvcInfoEXT & operator=( VideoDecodeH264MvcInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  77790. VideoDecodeH264MvcInfoEXT & operator=( VkVideoDecodeH264MvcInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  77791. {
  77792. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::VideoDecodeH264MvcInfoEXT const *>( &rhs );
  77793. return *this;
  77794. }
  77795. # if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  77796. VULKAN_HPP_CONSTEXPR_14 VideoDecodeH264MvcInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  77797. {
  77798. pNext = pNext_;
  77799. return *this;
  77800. }
  77801. VULKAN_HPP_CONSTEXPR_14 VideoDecodeH264MvcInfoEXT & setPStdMvc( const StdVideoDecodeH264Mvc * pStdMvc_ ) VULKAN_HPP_NOEXCEPT
  77802. {
  77803. pStdMvc = pStdMvc_;
  77804. return *this;
  77805. }
  77806. # endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  77807. operator VkVideoDecodeH264MvcInfoEXT const &() const VULKAN_HPP_NOEXCEPT
  77808. {
  77809. return *reinterpret_cast<const VkVideoDecodeH264MvcInfoEXT *>( this );
  77810. }
  77811. operator VkVideoDecodeH264MvcInfoEXT &() VULKAN_HPP_NOEXCEPT
  77812. {
  77813. return *reinterpret_cast<VkVideoDecodeH264MvcInfoEXT *>( this );
  77814. }
  77815. # if defined( VULKAN_HPP_USE_REFLECT )
  77816. # if 14 <= VULKAN_HPP_CPP_VERSION
  77817. auto
  77818. # else
  77819. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, const StdVideoDecodeH264Mvc * const &>
  77820. # endif
  77821. reflect() const VULKAN_HPP_NOEXCEPT
  77822. {
  77823. return std::tie( sType, pNext, pStdMvc );
  77824. }
  77825. # endif
  77826. # if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  77827. auto operator<=>( VideoDecodeH264MvcInfoEXT const & ) const = default;
  77828. # else
  77829. bool operator==( VideoDecodeH264MvcInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  77830. {
  77831. # if defined( VULKAN_HPP_USE_REFLECT )
  77832. return this->reflect() == rhs.reflect();
  77833. # else
  77834. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( pStdMvc == rhs.pStdMvc );
  77835. # endif
  77836. }
  77837. bool operator!=( VideoDecodeH264MvcInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  77838. {
  77839. return !operator==( rhs );
  77840. }
  77841. # endif
  77842. public:
  77843. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eVideoDecodeH264MvcInfoEXT;
  77844. const void * pNext = {};
  77845. const StdVideoDecodeH264Mvc * pStdMvc = {};
  77846. };
  77847. template <>
  77848. struct CppType<StructureType, StructureType::eVideoDecodeH264MvcInfoEXT>
  77849. {
  77850. using Type = VideoDecodeH264MvcInfoEXT;
  77851. };
  77852. #endif /*VK_ENABLE_BETA_EXTENSIONS*/
  77853. #if defined( VK_ENABLE_BETA_EXTENSIONS )
  77854. struct VideoDecodeH264PictureInfoEXT
  77855. {
  77856. using NativeType = VkVideoDecodeH264PictureInfoEXT;
  77857. static const bool allowDuplicate = false;
  77858. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eVideoDecodeH264PictureInfoEXT;
  77859. # if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  77860. VULKAN_HPP_CONSTEXPR VideoDecodeH264PictureInfoEXT( const StdVideoDecodeH264PictureInfo * pStdPictureInfo_ = {},
  77861. uint32_t slicesCount_ = {},
  77862. const uint32_t * pSlicesDataOffsets_ = {},
  77863. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  77864. : pNext( pNext_ )
  77865. , pStdPictureInfo( pStdPictureInfo_ )
  77866. , slicesCount( slicesCount_ )
  77867. , pSlicesDataOffsets( pSlicesDataOffsets_ )
  77868. {
  77869. }
  77870. VULKAN_HPP_CONSTEXPR VideoDecodeH264PictureInfoEXT( VideoDecodeH264PictureInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  77871. VideoDecodeH264PictureInfoEXT( VkVideoDecodeH264PictureInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  77872. : VideoDecodeH264PictureInfoEXT( *reinterpret_cast<VideoDecodeH264PictureInfoEXT const *>( &rhs ) )
  77873. {
  77874. }
  77875. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  77876. VideoDecodeH264PictureInfoEXT( const StdVideoDecodeH264PictureInfo * pStdPictureInfo_,
  77877. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint32_t> const & slicesDataOffsets_,
  77878. const void * pNext_ = nullptr )
  77879. : pNext( pNext_ )
  77880. , pStdPictureInfo( pStdPictureInfo_ )
  77881. , slicesCount( static_cast<uint32_t>( slicesDataOffsets_.size() ) )
  77882. , pSlicesDataOffsets( slicesDataOffsets_.data() )
  77883. {
  77884. }
  77885. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  77886. # endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  77887. VideoDecodeH264PictureInfoEXT & operator=( VideoDecodeH264PictureInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  77888. VideoDecodeH264PictureInfoEXT & operator=( VkVideoDecodeH264PictureInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  77889. {
  77890. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::VideoDecodeH264PictureInfoEXT const *>( &rhs );
  77891. return *this;
  77892. }
  77893. # if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  77894. VULKAN_HPP_CONSTEXPR_14 VideoDecodeH264PictureInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  77895. {
  77896. pNext = pNext_;
  77897. return *this;
  77898. }
  77899. VULKAN_HPP_CONSTEXPR_14 VideoDecodeH264PictureInfoEXT & setPStdPictureInfo( const StdVideoDecodeH264PictureInfo * pStdPictureInfo_ ) VULKAN_HPP_NOEXCEPT
  77900. {
  77901. pStdPictureInfo = pStdPictureInfo_;
  77902. return *this;
  77903. }
  77904. VULKAN_HPP_CONSTEXPR_14 VideoDecodeH264PictureInfoEXT & setSlicesCount( uint32_t slicesCount_ ) VULKAN_HPP_NOEXCEPT
  77905. {
  77906. slicesCount = slicesCount_;
  77907. return *this;
  77908. }
  77909. VULKAN_HPP_CONSTEXPR_14 VideoDecodeH264PictureInfoEXT & setPSlicesDataOffsets( const uint32_t * pSlicesDataOffsets_ ) VULKAN_HPP_NOEXCEPT
  77910. {
  77911. pSlicesDataOffsets = pSlicesDataOffsets_;
  77912. return *this;
  77913. }
  77914. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  77915. VideoDecodeH264PictureInfoEXT &
  77916. setSlicesDataOffsets( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint32_t> const & slicesDataOffsets_ ) VULKAN_HPP_NOEXCEPT
  77917. {
  77918. slicesCount = static_cast<uint32_t>( slicesDataOffsets_.size() );
  77919. pSlicesDataOffsets = slicesDataOffsets_.data();
  77920. return *this;
  77921. }
  77922. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  77923. # endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  77924. operator VkVideoDecodeH264PictureInfoEXT const &() const VULKAN_HPP_NOEXCEPT
  77925. {
  77926. return *reinterpret_cast<const VkVideoDecodeH264PictureInfoEXT *>( this );
  77927. }
  77928. operator VkVideoDecodeH264PictureInfoEXT &() VULKAN_HPP_NOEXCEPT
  77929. {
  77930. return *reinterpret_cast<VkVideoDecodeH264PictureInfoEXT *>( this );
  77931. }
  77932. # if defined( VULKAN_HPP_USE_REFLECT )
  77933. # if 14 <= VULKAN_HPP_CPP_VERSION
  77934. auto
  77935. # else
  77936. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  77937. const void * const &,
  77938. const StdVideoDecodeH264PictureInfo * const &,
  77939. uint32_t const &,
  77940. const uint32_t * const &>
  77941. # endif
  77942. reflect() const VULKAN_HPP_NOEXCEPT
  77943. {
  77944. return std::tie( sType, pNext, pStdPictureInfo, slicesCount, pSlicesDataOffsets );
  77945. }
  77946. # endif
  77947. # if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  77948. auto operator<=>( VideoDecodeH264PictureInfoEXT const & ) const = default;
  77949. # else
  77950. bool operator==( VideoDecodeH264PictureInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  77951. {
  77952. # if defined( VULKAN_HPP_USE_REFLECT )
  77953. return this->reflect() == rhs.reflect();
  77954. # else
  77955. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( pStdPictureInfo == rhs.pStdPictureInfo ) && ( slicesCount == rhs.slicesCount ) &&
  77956. ( pSlicesDataOffsets == rhs.pSlicesDataOffsets );
  77957. # endif
  77958. }
  77959. bool operator!=( VideoDecodeH264PictureInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  77960. {
  77961. return !operator==( rhs );
  77962. }
  77963. # endif
  77964. public:
  77965. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eVideoDecodeH264PictureInfoEXT;
  77966. const void * pNext = {};
  77967. const StdVideoDecodeH264PictureInfo * pStdPictureInfo = {};
  77968. uint32_t slicesCount = {};
  77969. const uint32_t * pSlicesDataOffsets = {};
  77970. };
  77971. template <>
  77972. struct CppType<StructureType, StructureType::eVideoDecodeH264PictureInfoEXT>
  77973. {
  77974. using Type = VideoDecodeH264PictureInfoEXT;
  77975. };
  77976. #endif /*VK_ENABLE_BETA_EXTENSIONS*/
  77977. #if defined( VK_ENABLE_BETA_EXTENSIONS )
  77978. struct VideoDecodeH264ProfileInfoEXT
  77979. {
  77980. using NativeType = VkVideoDecodeH264ProfileInfoEXT;
  77981. static const bool allowDuplicate = false;
  77982. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eVideoDecodeH264ProfileInfoEXT;
  77983. # if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  77984. VULKAN_HPP_CONSTEXPR VideoDecodeH264ProfileInfoEXT( StdVideoH264ProfileIdc stdProfileIdc_ = {},
  77985. VULKAN_HPP_NAMESPACE::VideoDecodeH264PictureLayoutFlagsEXT pictureLayout_ = {},
  77986. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  77987. : pNext( pNext_ )
  77988. , stdProfileIdc( stdProfileIdc_ )
  77989. , pictureLayout( pictureLayout_ )
  77990. {
  77991. }
  77992. VULKAN_HPP_CONSTEXPR VideoDecodeH264ProfileInfoEXT( VideoDecodeH264ProfileInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  77993. VideoDecodeH264ProfileInfoEXT( VkVideoDecodeH264ProfileInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  77994. : VideoDecodeH264ProfileInfoEXT( *reinterpret_cast<VideoDecodeH264ProfileInfoEXT const *>( &rhs ) )
  77995. {
  77996. }
  77997. # endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  77998. VideoDecodeH264ProfileInfoEXT & operator=( VideoDecodeH264ProfileInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  77999. VideoDecodeH264ProfileInfoEXT & operator=( VkVideoDecodeH264ProfileInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  78000. {
  78001. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::VideoDecodeH264ProfileInfoEXT const *>( &rhs );
  78002. return *this;
  78003. }
  78004. # if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  78005. VULKAN_HPP_CONSTEXPR_14 VideoDecodeH264ProfileInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  78006. {
  78007. pNext = pNext_;
  78008. return *this;
  78009. }
  78010. VULKAN_HPP_CONSTEXPR_14 VideoDecodeH264ProfileInfoEXT & setStdProfileIdc( StdVideoH264ProfileIdc stdProfileIdc_ ) VULKAN_HPP_NOEXCEPT
  78011. {
  78012. stdProfileIdc = stdProfileIdc_;
  78013. return *this;
  78014. }
  78015. VULKAN_HPP_CONSTEXPR_14 VideoDecodeH264ProfileInfoEXT &
  78016. setPictureLayout( VULKAN_HPP_NAMESPACE::VideoDecodeH264PictureLayoutFlagsEXT pictureLayout_ ) VULKAN_HPP_NOEXCEPT
  78017. {
  78018. pictureLayout = pictureLayout_;
  78019. return *this;
  78020. }
  78021. # endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  78022. operator VkVideoDecodeH264ProfileInfoEXT const &() const VULKAN_HPP_NOEXCEPT
  78023. {
  78024. return *reinterpret_cast<const VkVideoDecodeH264ProfileInfoEXT *>( this );
  78025. }
  78026. operator VkVideoDecodeH264ProfileInfoEXT &() VULKAN_HPP_NOEXCEPT
  78027. {
  78028. return *reinterpret_cast<VkVideoDecodeH264ProfileInfoEXT *>( this );
  78029. }
  78030. # if defined( VULKAN_HPP_USE_REFLECT )
  78031. # if 14 <= VULKAN_HPP_CPP_VERSION
  78032. auto
  78033. # else
  78034. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  78035. const void * const &,
  78036. StdVideoH264ProfileIdc const &,
  78037. VULKAN_HPP_NAMESPACE::VideoDecodeH264PictureLayoutFlagsEXT const &>
  78038. # endif
  78039. reflect() const VULKAN_HPP_NOEXCEPT
  78040. {
  78041. return std::tie( sType, pNext, stdProfileIdc, pictureLayout );
  78042. }
  78043. # endif
  78044. # if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  78045. std::strong_ordering operator<=>( VideoDecodeH264ProfileInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  78046. {
  78047. if ( auto cmp = sType <=> rhs.sType; cmp != 0 )
  78048. return cmp;
  78049. if ( auto cmp = pNext <=> rhs.pNext; cmp != 0 )
  78050. return cmp;
  78051. if ( auto cmp = memcmp( &stdProfileIdc, &rhs.stdProfileIdc, sizeof( StdVideoH264ProfileIdc ) ); cmp != 0 )
  78052. return ( cmp < 0 ) ? std::strong_ordering::less : std::strong_ordering::greater;
  78053. if ( auto cmp = pictureLayout <=> rhs.pictureLayout; cmp != 0 )
  78054. return cmp;
  78055. return std::strong_ordering::equivalent;
  78056. }
  78057. # endif
  78058. bool operator==( VideoDecodeH264ProfileInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  78059. {
  78060. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( memcmp( &stdProfileIdc, &rhs.stdProfileIdc, sizeof( StdVideoH264ProfileIdc ) ) == 0 ) &&
  78061. ( pictureLayout == rhs.pictureLayout );
  78062. }
  78063. bool operator!=( VideoDecodeH264ProfileInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  78064. {
  78065. return !operator==( rhs );
  78066. }
  78067. public:
  78068. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eVideoDecodeH264ProfileInfoEXT;
  78069. const void * pNext = {};
  78070. StdVideoH264ProfileIdc stdProfileIdc = {};
  78071. VULKAN_HPP_NAMESPACE::VideoDecodeH264PictureLayoutFlagsEXT pictureLayout = {};
  78072. };
  78073. template <>
  78074. struct CppType<StructureType, StructureType::eVideoDecodeH264ProfileInfoEXT>
  78075. {
  78076. using Type = VideoDecodeH264ProfileInfoEXT;
  78077. };
  78078. #endif /*VK_ENABLE_BETA_EXTENSIONS*/
  78079. #if defined( VK_ENABLE_BETA_EXTENSIONS )
  78080. struct VideoDecodeH264SessionParametersAddInfoEXT
  78081. {
  78082. using NativeType = VkVideoDecodeH264SessionParametersAddInfoEXT;
  78083. static const bool allowDuplicate = false;
  78084. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eVideoDecodeH264SessionParametersAddInfoEXT;
  78085. # if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  78086. VULKAN_HPP_CONSTEXPR VideoDecodeH264SessionParametersAddInfoEXT( uint32_t spsStdCount_ = {},
  78087. const StdVideoH264SequenceParameterSet * pSpsStd_ = {},
  78088. uint32_t ppsStdCount_ = {},
  78089. const StdVideoH264PictureParameterSet * pPpsStd_ = {},
  78090. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  78091. : pNext( pNext_ )
  78092. , spsStdCount( spsStdCount_ )
  78093. , pSpsStd( pSpsStd_ )
  78094. , ppsStdCount( ppsStdCount_ )
  78095. , pPpsStd( pPpsStd_ )
  78096. {
  78097. }
  78098. VULKAN_HPP_CONSTEXPR VideoDecodeH264SessionParametersAddInfoEXT( VideoDecodeH264SessionParametersAddInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  78099. VideoDecodeH264SessionParametersAddInfoEXT( VkVideoDecodeH264SessionParametersAddInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  78100. : VideoDecodeH264SessionParametersAddInfoEXT( *reinterpret_cast<VideoDecodeH264SessionParametersAddInfoEXT const *>( &rhs ) )
  78101. {
  78102. }
  78103. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  78104. VideoDecodeH264SessionParametersAddInfoEXT( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const StdVideoH264SequenceParameterSet> const & spsStd_,
  78105. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const StdVideoH264PictureParameterSet> const & ppsStd_ = {},
  78106. const void * pNext_ = nullptr )
  78107. : pNext( pNext_ )
  78108. , spsStdCount( static_cast<uint32_t>( spsStd_.size() ) )
  78109. , pSpsStd( spsStd_.data() )
  78110. , ppsStdCount( static_cast<uint32_t>( ppsStd_.size() ) )
  78111. , pPpsStd( ppsStd_.data() )
  78112. {
  78113. }
  78114. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  78115. # endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  78116. VideoDecodeH264SessionParametersAddInfoEXT & operator=( VideoDecodeH264SessionParametersAddInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  78117. VideoDecodeH264SessionParametersAddInfoEXT & operator=( VkVideoDecodeH264SessionParametersAddInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  78118. {
  78119. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::VideoDecodeH264SessionParametersAddInfoEXT const *>( &rhs );
  78120. return *this;
  78121. }
  78122. # if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  78123. VULKAN_HPP_CONSTEXPR_14 VideoDecodeH264SessionParametersAddInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  78124. {
  78125. pNext = pNext_;
  78126. return *this;
  78127. }
  78128. VULKAN_HPP_CONSTEXPR_14 VideoDecodeH264SessionParametersAddInfoEXT & setSpsStdCount( uint32_t spsStdCount_ ) VULKAN_HPP_NOEXCEPT
  78129. {
  78130. spsStdCount = spsStdCount_;
  78131. return *this;
  78132. }
  78133. VULKAN_HPP_CONSTEXPR_14 VideoDecodeH264SessionParametersAddInfoEXT & setPSpsStd( const StdVideoH264SequenceParameterSet * pSpsStd_ ) VULKAN_HPP_NOEXCEPT
  78134. {
  78135. pSpsStd = pSpsStd_;
  78136. return *this;
  78137. }
  78138. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  78139. VideoDecodeH264SessionParametersAddInfoEXT &
  78140. setSpsStd( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const StdVideoH264SequenceParameterSet> const & spsStd_ ) VULKAN_HPP_NOEXCEPT
  78141. {
  78142. spsStdCount = static_cast<uint32_t>( spsStd_.size() );
  78143. pSpsStd = spsStd_.data();
  78144. return *this;
  78145. }
  78146. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  78147. VULKAN_HPP_CONSTEXPR_14 VideoDecodeH264SessionParametersAddInfoEXT & setPpsStdCount( uint32_t ppsStdCount_ ) VULKAN_HPP_NOEXCEPT
  78148. {
  78149. ppsStdCount = ppsStdCount_;
  78150. return *this;
  78151. }
  78152. VULKAN_HPP_CONSTEXPR_14 VideoDecodeH264SessionParametersAddInfoEXT & setPPpsStd( const StdVideoH264PictureParameterSet * pPpsStd_ ) VULKAN_HPP_NOEXCEPT
  78153. {
  78154. pPpsStd = pPpsStd_;
  78155. return *this;
  78156. }
  78157. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  78158. VideoDecodeH264SessionParametersAddInfoEXT &
  78159. setPpsStd( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const StdVideoH264PictureParameterSet> const & ppsStd_ ) VULKAN_HPP_NOEXCEPT
  78160. {
  78161. ppsStdCount = static_cast<uint32_t>( ppsStd_.size() );
  78162. pPpsStd = ppsStd_.data();
  78163. return *this;
  78164. }
  78165. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  78166. # endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  78167. operator VkVideoDecodeH264SessionParametersAddInfoEXT const &() const VULKAN_HPP_NOEXCEPT
  78168. {
  78169. return *reinterpret_cast<const VkVideoDecodeH264SessionParametersAddInfoEXT *>( this );
  78170. }
  78171. operator VkVideoDecodeH264SessionParametersAddInfoEXT &() VULKAN_HPP_NOEXCEPT
  78172. {
  78173. return *reinterpret_cast<VkVideoDecodeH264SessionParametersAddInfoEXT *>( this );
  78174. }
  78175. # if defined( VULKAN_HPP_USE_REFLECT )
  78176. # if 14 <= VULKAN_HPP_CPP_VERSION
  78177. auto
  78178. # else
  78179. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  78180. const void * const &,
  78181. uint32_t const &,
  78182. const StdVideoH264SequenceParameterSet * const &,
  78183. uint32_t const &,
  78184. const StdVideoH264PictureParameterSet * const &>
  78185. # endif
  78186. reflect() const VULKAN_HPP_NOEXCEPT
  78187. {
  78188. return std::tie( sType, pNext, spsStdCount, pSpsStd, ppsStdCount, pPpsStd );
  78189. }
  78190. # endif
  78191. # if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  78192. auto operator<=>( VideoDecodeH264SessionParametersAddInfoEXT const & ) const = default;
  78193. # else
  78194. bool operator==( VideoDecodeH264SessionParametersAddInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  78195. {
  78196. # if defined( VULKAN_HPP_USE_REFLECT )
  78197. return this->reflect() == rhs.reflect();
  78198. # else
  78199. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( spsStdCount == rhs.spsStdCount ) && ( pSpsStd == rhs.pSpsStd ) &&
  78200. ( ppsStdCount == rhs.ppsStdCount ) && ( pPpsStd == rhs.pPpsStd );
  78201. # endif
  78202. }
  78203. bool operator!=( VideoDecodeH264SessionParametersAddInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  78204. {
  78205. return !operator==( rhs );
  78206. }
  78207. # endif
  78208. public:
  78209. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eVideoDecodeH264SessionParametersAddInfoEXT;
  78210. const void * pNext = {};
  78211. uint32_t spsStdCount = {};
  78212. const StdVideoH264SequenceParameterSet * pSpsStd = {};
  78213. uint32_t ppsStdCount = {};
  78214. const StdVideoH264PictureParameterSet * pPpsStd = {};
  78215. };
  78216. template <>
  78217. struct CppType<StructureType, StructureType::eVideoDecodeH264SessionParametersAddInfoEXT>
  78218. {
  78219. using Type = VideoDecodeH264SessionParametersAddInfoEXT;
  78220. };
  78221. #endif /*VK_ENABLE_BETA_EXTENSIONS*/
  78222. #if defined( VK_ENABLE_BETA_EXTENSIONS )
  78223. struct VideoDecodeH264SessionParametersCreateInfoEXT
  78224. {
  78225. using NativeType = VkVideoDecodeH264SessionParametersCreateInfoEXT;
  78226. static const bool allowDuplicate = false;
  78227. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eVideoDecodeH264SessionParametersCreateInfoEXT;
  78228. # if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  78229. VULKAN_HPP_CONSTEXPR
  78230. VideoDecodeH264SessionParametersCreateInfoEXT( uint32_t maxSpsStdCount_ = {},
  78231. uint32_t maxPpsStdCount_ = {},
  78232. const VULKAN_HPP_NAMESPACE::VideoDecodeH264SessionParametersAddInfoEXT * pParametersAddInfo_ = {},
  78233. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  78234. : pNext( pNext_ )
  78235. , maxSpsStdCount( maxSpsStdCount_ )
  78236. , maxPpsStdCount( maxPpsStdCount_ )
  78237. , pParametersAddInfo( pParametersAddInfo_ )
  78238. {
  78239. }
  78240. VULKAN_HPP_CONSTEXPR
  78241. VideoDecodeH264SessionParametersCreateInfoEXT( VideoDecodeH264SessionParametersCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  78242. VideoDecodeH264SessionParametersCreateInfoEXT( VkVideoDecodeH264SessionParametersCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  78243. : VideoDecodeH264SessionParametersCreateInfoEXT( *reinterpret_cast<VideoDecodeH264SessionParametersCreateInfoEXT const *>( &rhs ) )
  78244. {
  78245. }
  78246. # endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  78247. VideoDecodeH264SessionParametersCreateInfoEXT & operator=( VideoDecodeH264SessionParametersCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  78248. VideoDecodeH264SessionParametersCreateInfoEXT & operator=( VkVideoDecodeH264SessionParametersCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  78249. {
  78250. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::VideoDecodeH264SessionParametersCreateInfoEXT const *>( &rhs );
  78251. return *this;
  78252. }
  78253. # if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  78254. VULKAN_HPP_CONSTEXPR_14 VideoDecodeH264SessionParametersCreateInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  78255. {
  78256. pNext = pNext_;
  78257. return *this;
  78258. }
  78259. VULKAN_HPP_CONSTEXPR_14 VideoDecodeH264SessionParametersCreateInfoEXT & setMaxSpsStdCount( uint32_t maxSpsStdCount_ ) VULKAN_HPP_NOEXCEPT
  78260. {
  78261. maxSpsStdCount = maxSpsStdCount_;
  78262. return *this;
  78263. }
  78264. VULKAN_HPP_CONSTEXPR_14 VideoDecodeH264SessionParametersCreateInfoEXT & setMaxPpsStdCount( uint32_t maxPpsStdCount_ ) VULKAN_HPP_NOEXCEPT
  78265. {
  78266. maxPpsStdCount = maxPpsStdCount_;
  78267. return *this;
  78268. }
  78269. VULKAN_HPP_CONSTEXPR_14 VideoDecodeH264SessionParametersCreateInfoEXT &
  78270. setPParametersAddInfo( const VULKAN_HPP_NAMESPACE::VideoDecodeH264SessionParametersAddInfoEXT * pParametersAddInfo_ ) VULKAN_HPP_NOEXCEPT
  78271. {
  78272. pParametersAddInfo = pParametersAddInfo_;
  78273. return *this;
  78274. }
  78275. # endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  78276. operator VkVideoDecodeH264SessionParametersCreateInfoEXT const &() const VULKAN_HPP_NOEXCEPT
  78277. {
  78278. return *reinterpret_cast<const VkVideoDecodeH264SessionParametersCreateInfoEXT *>( this );
  78279. }
  78280. operator VkVideoDecodeH264SessionParametersCreateInfoEXT &() VULKAN_HPP_NOEXCEPT
  78281. {
  78282. return *reinterpret_cast<VkVideoDecodeH264SessionParametersCreateInfoEXT *>( this );
  78283. }
  78284. # if defined( VULKAN_HPP_USE_REFLECT )
  78285. # if 14 <= VULKAN_HPP_CPP_VERSION
  78286. auto
  78287. # else
  78288. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  78289. const void * const &,
  78290. uint32_t const &,
  78291. uint32_t const &,
  78292. const VULKAN_HPP_NAMESPACE::VideoDecodeH264SessionParametersAddInfoEXT * const &>
  78293. # endif
  78294. reflect() const VULKAN_HPP_NOEXCEPT
  78295. {
  78296. return std::tie( sType, pNext, maxSpsStdCount, maxPpsStdCount, pParametersAddInfo );
  78297. }
  78298. # endif
  78299. # if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  78300. auto operator<=>( VideoDecodeH264SessionParametersCreateInfoEXT const & ) const = default;
  78301. # else
  78302. bool operator==( VideoDecodeH264SessionParametersCreateInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  78303. {
  78304. # if defined( VULKAN_HPP_USE_REFLECT )
  78305. return this->reflect() == rhs.reflect();
  78306. # else
  78307. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( maxSpsStdCount == rhs.maxSpsStdCount ) && ( maxPpsStdCount == rhs.maxPpsStdCount ) &&
  78308. ( pParametersAddInfo == rhs.pParametersAddInfo );
  78309. # endif
  78310. }
  78311. bool operator!=( VideoDecodeH264SessionParametersCreateInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  78312. {
  78313. return !operator==( rhs );
  78314. }
  78315. # endif
  78316. public:
  78317. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eVideoDecodeH264SessionParametersCreateInfoEXT;
  78318. const void * pNext = {};
  78319. uint32_t maxSpsStdCount = {};
  78320. uint32_t maxPpsStdCount = {};
  78321. const VULKAN_HPP_NAMESPACE::VideoDecodeH264SessionParametersAddInfoEXT * pParametersAddInfo = {};
  78322. };
  78323. template <>
  78324. struct CppType<StructureType, StructureType::eVideoDecodeH264SessionParametersCreateInfoEXT>
  78325. {
  78326. using Type = VideoDecodeH264SessionParametersCreateInfoEXT;
  78327. };
  78328. #endif /*VK_ENABLE_BETA_EXTENSIONS*/
  78329. #if defined( VK_ENABLE_BETA_EXTENSIONS )
  78330. struct VideoDecodeH265CapabilitiesEXT
  78331. {
  78332. using NativeType = VkVideoDecodeH265CapabilitiesEXT;
  78333. static const bool allowDuplicate = false;
  78334. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eVideoDecodeH265CapabilitiesEXT;
  78335. # if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  78336. VULKAN_HPP_CONSTEXPR VideoDecodeH265CapabilitiesEXT( StdVideoH265Level maxLevel_ = {}, void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  78337. : pNext( pNext_ )
  78338. , maxLevel( maxLevel_ )
  78339. {
  78340. }
  78341. VULKAN_HPP_CONSTEXPR VideoDecodeH265CapabilitiesEXT( VideoDecodeH265CapabilitiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  78342. VideoDecodeH265CapabilitiesEXT( VkVideoDecodeH265CapabilitiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  78343. : VideoDecodeH265CapabilitiesEXT( *reinterpret_cast<VideoDecodeH265CapabilitiesEXT const *>( &rhs ) )
  78344. {
  78345. }
  78346. # endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  78347. VideoDecodeH265CapabilitiesEXT & operator=( VideoDecodeH265CapabilitiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  78348. VideoDecodeH265CapabilitiesEXT & operator=( VkVideoDecodeH265CapabilitiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  78349. {
  78350. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::VideoDecodeH265CapabilitiesEXT const *>( &rhs );
  78351. return *this;
  78352. }
  78353. operator VkVideoDecodeH265CapabilitiesEXT const &() const VULKAN_HPP_NOEXCEPT
  78354. {
  78355. return *reinterpret_cast<const VkVideoDecodeH265CapabilitiesEXT *>( this );
  78356. }
  78357. operator VkVideoDecodeH265CapabilitiesEXT &() VULKAN_HPP_NOEXCEPT
  78358. {
  78359. return *reinterpret_cast<VkVideoDecodeH265CapabilitiesEXT *>( this );
  78360. }
  78361. # if defined( VULKAN_HPP_USE_REFLECT )
  78362. # if 14 <= VULKAN_HPP_CPP_VERSION
  78363. auto
  78364. # else
  78365. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, StdVideoH265Level const &>
  78366. # endif
  78367. reflect() const VULKAN_HPP_NOEXCEPT
  78368. {
  78369. return std::tie( sType, pNext, maxLevel );
  78370. }
  78371. # endif
  78372. # if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  78373. std::strong_ordering operator<=>( VideoDecodeH265CapabilitiesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  78374. {
  78375. if ( auto cmp = sType <=> rhs.sType; cmp != 0 )
  78376. return cmp;
  78377. if ( auto cmp = pNext <=> rhs.pNext; cmp != 0 )
  78378. return cmp;
  78379. if ( auto cmp = memcmp( &maxLevel, &rhs.maxLevel, sizeof( StdVideoH265Level ) ); cmp != 0 )
  78380. return ( cmp < 0 ) ? std::strong_ordering::less : std::strong_ordering::greater;
  78381. return std::strong_ordering::equivalent;
  78382. }
  78383. # endif
  78384. bool operator==( VideoDecodeH265CapabilitiesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  78385. {
  78386. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( memcmp( &maxLevel, &rhs.maxLevel, sizeof( StdVideoH265Level ) ) == 0 );
  78387. }
  78388. bool operator!=( VideoDecodeH265CapabilitiesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  78389. {
  78390. return !operator==( rhs );
  78391. }
  78392. public:
  78393. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eVideoDecodeH265CapabilitiesEXT;
  78394. void * pNext = {};
  78395. StdVideoH265Level maxLevel = {};
  78396. };
  78397. template <>
  78398. struct CppType<StructureType, StructureType::eVideoDecodeH265CapabilitiesEXT>
  78399. {
  78400. using Type = VideoDecodeH265CapabilitiesEXT;
  78401. };
  78402. #endif /*VK_ENABLE_BETA_EXTENSIONS*/
  78403. #if defined( VK_ENABLE_BETA_EXTENSIONS )
  78404. struct VideoDecodeH265DpbSlotInfoEXT
  78405. {
  78406. using NativeType = VkVideoDecodeH265DpbSlotInfoEXT;
  78407. static const bool allowDuplicate = false;
  78408. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eVideoDecodeH265DpbSlotInfoEXT;
  78409. # if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  78410. VULKAN_HPP_CONSTEXPR VideoDecodeH265DpbSlotInfoEXT( const StdVideoDecodeH265ReferenceInfo * pStdReferenceInfo_ = {},
  78411. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  78412. : pNext( pNext_ )
  78413. , pStdReferenceInfo( pStdReferenceInfo_ )
  78414. {
  78415. }
  78416. VULKAN_HPP_CONSTEXPR VideoDecodeH265DpbSlotInfoEXT( VideoDecodeH265DpbSlotInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  78417. VideoDecodeH265DpbSlotInfoEXT( VkVideoDecodeH265DpbSlotInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  78418. : VideoDecodeH265DpbSlotInfoEXT( *reinterpret_cast<VideoDecodeH265DpbSlotInfoEXT const *>( &rhs ) )
  78419. {
  78420. }
  78421. # endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  78422. VideoDecodeH265DpbSlotInfoEXT & operator=( VideoDecodeH265DpbSlotInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  78423. VideoDecodeH265DpbSlotInfoEXT & operator=( VkVideoDecodeH265DpbSlotInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  78424. {
  78425. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::VideoDecodeH265DpbSlotInfoEXT const *>( &rhs );
  78426. return *this;
  78427. }
  78428. # if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  78429. VULKAN_HPP_CONSTEXPR_14 VideoDecodeH265DpbSlotInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  78430. {
  78431. pNext = pNext_;
  78432. return *this;
  78433. }
  78434. VULKAN_HPP_CONSTEXPR_14 VideoDecodeH265DpbSlotInfoEXT &
  78435. setPStdReferenceInfo( const StdVideoDecodeH265ReferenceInfo * pStdReferenceInfo_ ) VULKAN_HPP_NOEXCEPT
  78436. {
  78437. pStdReferenceInfo = pStdReferenceInfo_;
  78438. return *this;
  78439. }
  78440. # endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  78441. operator VkVideoDecodeH265DpbSlotInfoEXT const &() const VULKAN_HPP_NOEXCEPT
  78442. {
  78443. return *reinterpret_cast<const VkVideoDecodeH265DpbSlotInfoEXT *>( this );
  78444. }
  78445. operator VkVideoDecodeH265DpbSlotInfoEXT &() VULKAN_HPP_NOEXCEPT
  78446. {
  78447. return *reinterpret_cast<VkVideoDecodeH265DpbSlotInfoEXT *>( this );
  78448. }
  78449. # if defined( VULKAN_HPP_USE_REFLECT )
  78450. # if 14 <= VULKAN_HPP_CPP_VERSION
  78451. auto
  78452. # else
  78453. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, const StdVideoDecodeH265ReferenceInfo * const &>
  78454. # endif
  78455. reflect() const VULKAN_HPP_NOEXCEPT
  78456. {
  78457. return std::tie( sType, pNext, pStdReferenceInfo );
  78458. }
  78459. # endif
  78460. # if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  78461. auto operator<=>( VideoDecodeH265DpbSlotInfoEXT const & ) const = default;
  78462. # else
  78463. bool operator==( VideoDecodeH265DpbSlotInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  78464. {
  78465. # if defined( VULKAN_HPP_USE_REFLECT )
  78466. return this->reflect() == rhs.reflect();
  78467. # else
  78468. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( pStdReferenceInfo == rhs.pStdReferenceInfo );
  78469. # endif
  78470. }
  78471. bool operator!=( VideoDecodeH265DpbSlotInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  78472. {
  78473. return !operator==( rhs );
  78474. }
  78475. # endif
  78476. public:
  78477. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eVideoDecodeH265DpbSlotInfoEXT;
  78478. const void * pNext = {};
  78479. const StdVideoDecodeH265ReferenceInfo * pStdReferenceInfo = {};
  78480. };
  78481. template <>
  78482. struct CppType<StructureType, StructureType::eVideoDecodeH265DpbSlotInfoEXT>
  78483. {
  78484. using Type = VideoDecodeH265DpbSlotInfoEXT;
  78485. };
  78486. #endif /*VK_ENABLE_BETA_EXTENSIONS*/
  78487. #if defined( VK_ENABLE_BETA_EXTENSIONS )
  78488. struct VideoDecodeH265PictureInfoEXT
  78489. {
  78490. using NativeType = VkVideoDecodeH265PictureInfoEXT;
  78491. static const bool allowDuplicate = false;
  78492. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eVideoDecodeH265PictureInfoEXT;
  78493. # if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  78494. VULKAN_HPP_CONSTEXPR VideoDecodeH265PictureInfoEXT( StdVideoDecodeH265PictureInfo * pStdPictureInfo_ = {},
  78495. uint32_t slicesCount_ = {},
  78496. const uint32_t * pSlicesDataOffsets_ = {},
  78497. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  78498. : pNext( pNext_ )
  78499. , pStdPictureInfo( pStdPictureInfo_ )
  78500. , slicesCount( slicesCount_ )
  78501. , pSlicesDataOffsets( pSlicesDataOffsets_ )
  78502. {
  78503. }
  78504. VULKAN_HPP_CONSTEXPR VideoDecodeH265PictureInfoEXT( VideoDecodeH265PictureInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  78505. VideoDecodeH265PictureInfoEXT( VkVideoDecodeH265PictureInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  78506. : VideoDecodeH265PictureInfoEXT( *reinterpret_cast<VideoDecodeH265PictureInfoEXT const *>( &rhs ) )
  78507. {
  78508. }
  78509. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  78510. VideoDecodeH265PictureInfoEXT( StdVideoDecodeH265PictureInfo * pStdPictureInfo_,
  78511. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint32_t> const & slicesDataOffsets_,
  78512. const void * pNext_ = nullptr )
  78513. : pNext( pNext_ )
  78514. , pStdPictureInfo( pStdPictureInfo_ )
  78515. , slicesCount( static_cast<uint32_t>( slicesDataOffsets_.size() ) )
  78516. , pSlicesDataOffsets( slicesDataOffsets_.data() )
  78517. {
  78518. }
  78519. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  78520. # endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  78521. VideoDecodeH265PictureInfoEXT & operator=( VideoDecodeH265PictureInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  78522. VideoDecodeH265PictureInfoEXT & operator=( VkVideoDecodeH265PictureInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  78523. {
  78524. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::VideoDecodeH265PictureInfoEXT const *>( &rhs );
  78525. return *this;
  78526. }
  78527. # if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  78528. VULKAN_HPP_CONSTEXPR_14 VideoDecodeH265PictureInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  78529. {
  78530. pNext = pNext_;
  78531. return *this;
  78532. }
  78533. VULKAN_HPP_CONSTEXPR_14 VideoDecodeH265PictureInfoEXT & setPStdPictureInfo( StdVideoDecodeH265PictureInfo * pStdPictureInfo_ ) VULKAN_HPP_NOEXCEPT
  78534. {
  78535. pStdPictureInfo = pStdPictureInfo_;
  78536. return *this;
  78537. }
  78538. VULKAN_HPP_CONSTEXPR_14 VideoDecodeH265PictureInfoEXT & setSlicesCount( uint32_t slicesCount_ ) VULKAN_HPP_NOEXCEPT
  78539. {
  78540. slicesCount = slicesCount_;
  78541. return *this;
  78542. }
  78543. VULKAN_HPP_CONSTEXPR_14 VideoDecodeH265PictureInfoEXT & setPSlicesDataOffsets( const uint32_t * pSlicesDataOffsets_ ) VULKAN_HPP_NOEXCEPT
  78544. {
  78545. pSlicesDataOffsets = pSlicesDataOffsets_;
  78546. return *this;
  78547. }
  78548. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  78549. VideoDecodeH265PictureInfoEXT &
  78550. setSlicesDataOffsets( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint32_t> const & slicesDataOffsets_ ) VULKAN_HPP_NOEXCEPT
  78551. {
  78552. slicesCount = static_cast<uint32_t>( slicesDataOffsets_.size() );
  78553. pSlicesDataOffsets = slicesDataOffsets_.data();
  78554. return *this;
  78555. }
  78556. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  78557. # endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  78558. operator VkVideoDecodeH265PictureInfoEXT const &() const VULKAN_HPP_NOEXCEPT
  78559. {
  78560. return *reinterpret_cast<const VkVideoDecodeH265PictureInfoEXT *>( this );
  78561. }
  78562. operator VkVideoDecodeH265PictureInfoEXT &() VULKAN_HPP_NOEXCEPT
  78563. {
  78564. return *reinterpret_cast<VkVideoDecodeH265PictureInfoEXT *>( this );
  78565. }
  78566. # if defined( VULKAN_HPP_USE_REFLECT )
  78567. # if 14 <= VULKAN_HPP_CPP_VERSION
  78568. auto
  78569. # else
  78570. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  78571. const void * const &,
  78572. StdVideoDecodeH265PictureInfo * const &,
  78573. uint32_t const &,
  78574. const uint32_t * const &>
  78575. # endif
  78576. reflect() const VULKAN_HPP_NOEXCEPT
  78577. {
  78578. return std::tie( sType, pNext, pStdPictureInfo, slicesCount, pSlicesDataOffsets );
  78579. }
  78580. # endif
  78581. # if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  78582. auto operator<=>( VideoDecodeH265PictureInfoEXT const & ) const = default;
  78583. # else
  78584. bool operator==( VideoDecodeH265PictureInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  78585. {
  78586. # if defined( VULKAN_HPP_USE_REFLECT )
  78587. return this->reflect() == rhs.reflect();
  78588. # else
  78589. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( pStdPictureInfo == rhs.pStdPictureInfo ) && ( slicesCount == rhs.slicesCount ) &&
  78590. ( pSlicesDataOffsets == rhs.pSlicesDataOffsets );
  78591. # endif
  78592. }
  78593. bool operator!=( VideoDecodeH265PictureInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  78594. {
  78595. return !operator==( rhs );
  78596. }
  78597. # endif
  78598. public:
  78599. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eVideoDecodeH265PictureInfoEXT;
  78600. const void * pNext = {};
  78601. StdVideoDecodeH265PictureInfo * pStdPictureInfo = {};
  78602. uint32_t slicesCount = {};
  78603. const uint32_t * pSlicesDataOffsets = {};
  78604. };
  78605. template <>
  78606. struct CppType<StructureType, StructureType::eVideoDecodeH265PictureInfoEXT>
  78607. {
  78608. using Type = VideoDecodeH265PictureInfoEXT;
  78609. };
  78610. #endif /*VK_ENABLE_BETA_EXTENSIONS*/
  78611. #if defined( VK_ENABLE_BETA_EXTENSIONS )
  78612. struct VideoDecodeH265ProfileInfoEXT
  78613. {
  78614. using NativeType = VkVideoDecodeH265ProfileInfoEXT;
  78615. static const bool allowDuplicate = false;
  78616. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eVideoDecodeH265ProfileInfoEXT;
  78617. # if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  78618. VULKAN_HPP_CONSTEXPR VideoDecodeH265ProfileInfoEXT( StdVideoH265ProfileIdc stdProfileIdc_ = {}, const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  78619. : pNext( pNext_ )
  78620. , stdProfileIdc( stdProfileIdc_ )
  78621. {
  78622. }
  78623. VULKAN_HPP_CONSTEXPR VideoDecodeH265ProfileInfoEXT( VideoDecodeH265ProfileInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  78624. VideoDecodeH265ProfileInfoEXT( VkVideoDecodeH265ProfileInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  78625. : VideoDecodeH265ProfileInfoEXT( *reinterpret_cast<VideoDecodeH265ProfileInfoEXT const *>( &rhs ) )
  78626. {
  78627. }
  78628. # endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  78629. VideoDecodeH265ProfileInfoEXT & operator=( VideoDecodeH265ProfileInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  78630. VideoDecodeH265ProfileInfoEXT & operator=( VkVideoDecodeH265ProfileInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  78631. {
  78632. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::VideoDecodeH265ProfileInfoEXT const *>( &rhs );
  78633. return *this;
  78634. }
  78635. # if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  78636. VULKAN_HPP_CONSTEXPR_14 VideoDecodeH265ProfileInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  78637. {
  78638. pNext = pNext_;
  78639. return *this;
  78640. }
  78641. VULKAN_HPP_CONSTEXPR_14 VideoDecodeH265ProfileInfoEXT & setStdProfileIdc( StdVideoH265ProfileIdc stdProfileIdc_ ) VULKAN_HPP_NOEXCEPT
  78642. {
  78643. stdProfileIdc = stdProfileIdc_;
  78644. return *this;
  78645. }
  78646. # endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  78647. operator VkVideoDecodeH265ProfileInfoEXT const &() const VULKAN_HPP_NOEXCEPT
  78648. {
  78649. return *reinterpret_cast<const VkVideoDecodeH265ProfileInfoEXT *>( this );
  78650. }
  78651. operator VkVideoDecodeH265ProfileInfoEXT &() VULKAN_HPP_NOEXCEPT
  78652. {
  78653. return *reinterpret_cast<VkVideoDecodeH265ProfileInfoEXT *>( this );
  78654. }
  78655. # if defined( VULKAN_HPP_USE_REFLECT )
  78656. # if 14 <= VULKAN_HPP_CPP_VERSION
  78657. auto
  78658. # else
  78659. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, StdVideoH265ProfileIdc const &>
  78660. # endif
  78661. reflect() const VULKAN_HPP_NOEXCEPT
  78662. {
  78663. return std::tie( sType, pNext, stdProfileIdc );
  78664. }
  78665. # endif
  78666. # if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  78667. std::strong_ordering operator<=>( VideoDecodeH265ProfileInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  78668. {
  78669. if ( auto cmp = sType <=> rhs.sType; cmp != 0 )
  78670. return cmp;
  78671. if ( auto cmp = pNext <=> rhs.pNext; cmp != 0 )
  78672. return cmp;
  78673. if ( auto cmp = memcmp( &stdProfileIdc, &rhs.stdProfileIdc, sizeof( StdVideoH265ProfileIdc ) ); cmp != 0 )
  78674. return ( cmp < 0 ) ? std::strong_ordering::less : std::strong_ordering::greater;
  78675. return std::strong_ordering::equivalent;
  78676. }
  78677. # endif
  78678. bool operator==( VideoDecodeH265ProfileInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  78679. {
  78680. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( memcmp( &stdProfileIdc, &rhs.stdProfileIdc, sizeof( StdVideoH265ProfileIdc ) ) == 0 );
  78681. }
  78682. bool operator!=( VideoDecodeH265ProfileInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  78683. {
  78684. return !operator==( rhs );
  78685. }
  78686. public:
  78687. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eVideoDecodeH265ProfileInfoEXT;
  78688. const void * pNext = {};
  78689. StdVideoH265ProfileIdc stdProfileIdc = {};
  78690. };
  78691. template <>
  78692. struct CppType<StructureType, StructureType::eVideoDecodeH265ProfileInfoEXT>
  78693. {
  78694. using Type = VideoDecodeH265ProfileInfoEXT;
  78695. };
  78696. #endif /*VK_ENABLE_BETA_EXTENSIONS*/
  78697. #if defined( VK_ENABLE_BETA_EXTENSIONS )
  78698. struct VideoDecodeH265SessionParametersAddInfoEXT
  78699. {
  78700. using NativeType = VkVideoDecodeH265SessionParametersAddInfoEXT;
  78701. static const bool allowDuplicate = false;
  78702. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eVideoDecodeH265SessionParametersAddInfoEXT;
  78703. # if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  78704. VULKAN_HPP_CONSTEXPR VideoDecodeH265SessionParametersAddInfoEXT( uint32_t vpsStdCount_ = {},
  78705. const StdVideoH265VideoParameterSet * pVpsStd_ = {},
  78706. uint32_t spsStdCount_ = {},
  78707. const StdVideoH265SequenceParameterSet * pSpsStd_ = {},
  78708. uint32_t ppsStdCount_ = {},
  78709. const StdVideoH265PictureParameterSet * pPpsStd_ = {},
  78710. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  78711. : pNext( pNext_ )
  78712. , vpsStdCount( vpsStdCount_ )
  78713. , pVpsStd( pVpsStd_ )
  78714. , spsStdCount( spsStdCount_ )
  78715. , pSpsStd( pSpsStd_ )
  78716. , ppsStdCount( ppsStdCount_ )
  78717. , pPpsStd( pPpsStd_ )
  78718. {
  78719. }
  78720. VULKAN_HPP_CONSTEXPR VideoDecodeH265SessionParametersAddInfoEXT( VideoDecodeH265SessionParametersAddInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  78721. VideoDecodeH265SessionParametersAddInfoEXT( VkVideoDecodeH265SessionParametersAddInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  78722. : VideoDecodeH265SessionParametersAddInfoEXT( *reinterpret_cast<VideoDecodeH265SessionParametersAddInfoEXT const *>( &rhs ) )
  78723. {
  78724. }
  78725. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  78726. VideoDecodeH265SessionParametersAddInfoEXT( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const StdVideoH265VideoParameterSet> const & vpsStd_,
  78727. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const StdVideoH265SequenceParameterSet> const & spsStd_ = {},
  78728. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const StdVideoH265PictureParameterSet> const & ppsStd_ = {},
  78729. const void * pNext_ = nullptr )
  78730. : pNext( pNext_ )
  78731. , vpsStdCount( static_cast<uint32_t>( vpsStd_.size() ) )
  78732. , pVpsStd( vpsStd_.data() )
  78733. , spsStdCount( static_cast<uint32_t>( spsStd_.size() ) )
  78734. , pSpsStd( spsStd_.data() )
  78735. , ppsStdCount( static_cast<uint32_t>( ppsStd_.size() ) )
  78736. , pPpsStd( ppsStd_.data() )
  78737. {
  78738. }
  78739. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  78740. # endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  78741. VideoDecodeH265SessionParametersAddInfoEXT & operator=( VideoDecodeH265SessionParametersAddInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  78742. VideoDecodeH265SessionParametersAddInfoEXT & operator=( VkVideoDecodeH265SessionParametersAddInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  78743. {
  78744. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::VideoDecodeH265SessionParametersAddInfoEXT const *>( &rhs );
  78745. return *this;
  78746. }
  78747. # if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  78748. VULKAN_HPP_CONSTEXPR_14 VideoDecodeH265SessionParametersAddInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  78749. {
  78750. pNext = pNext_;
  78751. return *this;
  78752. }
  78753. VULKAN_HPP_CONSTEXPR_14 VideoDecodeH265SessionParametersAddInfoEXT & setVpsStdCount( uint32_t vpsStdCount_ ) VULKAN_HPP_NOEXCEPT
  78754. {
  78755. vpsStdCount = vpsStdCount_;
  78756. return *this;
  78757. }
  78758. VULKAN_HPP_CONSTEXPR_14 VideoDecodeH265SessionParametersAddInfoEXT & setPVpsStd( const StdVideoH265VideoParameterSet * pVpsStd_ ) VULKAN_HPP_NOEXCEPT
  78759. {
  78760. pVpsStd = pVpsStd_;
  78761. return *this;
  78762. }
  78763. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  78764. VideoDecodeH265SessionParametersAddInfoEXT &
  78765. setVpsStd( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const StdVideoH265VideoParameterSet> const & vpsStd_ ) VULKAN_HPP_NOEXCEPT
  78766. {
  78767. vpsStdCount = static_cast<uint32_t>( vpsStd_.size() );
  78768. pVpsStd = vpsStd_.data();
  78769. return *this;
  78770. }
  78771. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  78772. VULKAN_HPP_CONSTEXPR_14 VideoDecodeH265SessionParametersAddInfoEXT & setSpsStdCount( uint32_t spsStdCount_ ) VULKAN_HPP_NOEXCEPT
  78773. {
  78774. spsStdCount = spsStdCount_;
  78775. return *this;
  78776. }
  78777. VULKAN_HPP_CONSTEXPR_14 VideoDecodeH265SessionParametersAddInfoEXT & setPSpsStd( const StdVideoH265SequenceParameterSet * pSpsStd_ ) VULKAN_HPP_NOEXCEPT
  78778. {
  78779. pSpsStd = pSpsStd_;
  78780. return *this;
  78781. }
  78782. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  78783. VideoDecodeH265SessionParametersAddInfoEXT &
  78784. setSpsStd( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const StdVideoH265SequenceParameterSet> const & spsStd_ ) VULKAN_HPP_NOEXCEPT
  78785. {
  78786. spsStdCount = static_cast<uint32_t>( spsStd_.size() );
  78787. pSpsStd = spsStd_.data();
  78788. return *this;
  78789. }
  78790. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  78791. VULKAN_HPP_CONSTEXPR_14 VideoDecodeH265SessionParametersAddInfoEXT & setPpsStdCount( uint32_t ppsStdCount_ ) VULKAN_HPP_NOEXCEPT
  78792. {
  78793. ppsStdCount = ppsStdCount_;
  78794. return *this;
  78795. }
  78796. VULKAN_HPP_CONSTEXPR_14 VideoDecodeH265SessionParametersAddInfoEXT & setPPpsStd( const StdVideoH265PictureParameterSet * pPpsStd_ ) VULKAN_HPP_NOEXCEPT
  78797. {
  78798. pPpsStd = pPpsStd_;
  78799. return *this;
  78800. }
  78801. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  78802. VideoDecodeH265SessionParametersAddInfoEXT &
  78803. setPpsStd( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const StdVideoH265PictureParameterSet> const & ppsStd_ ) VULKAN_HPP_NOEXCEPT
  78804. {
  78805. ppsStdCount = static_cast<uint32_t>( ppsStd_.size() );
  78806. pPpsStd = ppsStd_.data();
  78807. return *this;
  78808. }
  78809. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  78810. # endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  78811. operator VkVideoDecodeH265SessionParametersAddInfoEXT const &() const VULKAN_HPP_NOEXCEPT
  78812. {
  78813. return *reinterpret_cast<const VkVideoDecodeH265SessionParametersAddInfoEXT *>( this );
  78814. }
  78815. operator VkVideoDecodeH265SessionParametersAddInfoEXT &() VULKAN_HPP_NOEXCEPT
  78816. {
  78817. return *reinterpret_cast<VkVideoDecodeH265SessionParametersAddInfoEXT *>( this );
  78818. }
  78819. # if defined( VULKAN_HPP_USE_REFLECT )
  78820. # if 14 <= VULKAN_HPP_CPP_VERSION
  78821. auto
  78822. # else
  78823. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  78824. const void * const &,
  78825. uint32_t const &,
  78826. const StdVideoH265VideoParameterSet * const &,
  78827. uint32_t const &,
  78828. const StdVideoH265SequenceParameterSet * const &,
  78829. uint32_t const &,
  78830. const StdVideoH265PictureParameterSet * const &>
  78831. # endif
  78832. reflect() const VULKAN_HPP_NOEXCEPT
  78833. {
  78834. return std::tie( sType, pNext, vpsStdCount, pVpsStd, spsStdCount, pSpsStd, ppsStdCount, pPpsStd );
  78835. }
  78836. # endif
  78837. # if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  78838. auto operator<=>( VideoDecodeH265SessionParametersAddInfoEXT const & ) const = default;
  78839. # else
  78840. bool operator==( VideoDecodeH265SessionParametersAddInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  78841. {
  78842. # if defined( VULKAN_HPP_USE_REFLECT )
  78843. return this->reflect() == rhs.reflect();
  78844. # else
  78845. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( vpsStdCount == rhs.vpsStdCount ) && ( pVpsStd == rhs.pVpsStd ) &&
  78846. ( spsStdCount == rhs.spsStdCount ) && ( pSpsStd == rhs.pSpsStd ) && ( ppsStdCount == rhs.ppsStdCount ) && ( pPpsStd == rhs.pPpsStd );
  78847. # endif
  78848. }
  78849. bool operator!=( VideoDecodeH265SessionParametersAddInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  78850. {
  78851. return !operator==( rhs );
  78852. }
  78853. # endif
  78854. public:
  78855. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eVideoDecodeH265SessionParametersAddInfoEXT;
  78856. const void * pNext = {};
  78857. uint32_t vpsStdCount = {};
  78858. const StdVideoH265VideoParameterSet * pVpsStd = {};
  78859. uint32_t spsStdCount = {};
  78860. const StdVideoH265SequenceParameterSet * pSpsStd = {};
  78861. uint32_t ppsStdCount = {};
  78862. const StdVideoH265PictureParameterSet * pPpsStd = {};
  78863. };
  78864. template <>
  78865. struct CppType<StructureType, StructureType::eVideoDecodeH265SessionParametersAddInfoEXT>
  78866. {
  78867. using Type = VideoDecodeH265SessionParametersAddInfoEXT;
  78868. };
  78869. #endif /*VK_ENABLE_BETA_EXTENSIONS*/
  78870. #if defined( VK_ENABLE_BETA_EXTENSIONS )
  78871. struct VideoDecodeH265SessionParametersCreateInfoEXT
  78872. {
  78873. using NativeType = VkVideoDecodeH265SessionParametersCreateInfoEXT;
  78874. static const bool allowDuplicate = false;
  78875. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eVideoDecodeH265SessionParametersCreateInfoEXT;
  78876. # if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  78877. VULKAN_HPP_CONSTEXPR
  78878. VideoDecodeH265SessionParametersCreateInfoEXT( uint32_t maxVpsStdCount_ = {},
  78879. uint32_t maxSpsStdCount_ = {},
  78880. uint32_t maxPpsStdCount_ = {},
  78881. const VULKAN_HPP_NAMESPACE::VideoDecodeH265SessionParametersAddInfoEXT * pParametersAddInfo_ = {},
  78882. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  78883. : pNext( pNext_ )
  78884. , maxVpsStdCount( maxVpsStdCount_ )
  78885. , maxSpsStdCount( maxSpsStdCount_ )
  78886. , maxPpsStdCount( maxPpsStdCount_ )
  78887. , pParametersAddInfo( pParametersAddInfo_ )
  78888. {
  78889. }
  78890. VULKAN_HPP_CONSTEXPR
  78891. VideoDecodeH265SessionParametersCreateInfoEXT( VideoDecodeH265SessionParametersCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  78892. VideoDecodeH265SessionParametersCreateInfoEXT( VkVideoDecodeH265SessionParametersCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  78893. : VideoDecodeH265SessionParametersCreateInfoEXT( *reinterpret_cast<VideoDecodeH265SessionParametersCreateInfoEXT const *>( &rhs ) )
  78894. {
  78895. }
  78896. # endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  78897. VideoDecodeH265SessionParametersCreateInfoEXT & operator=( VideoDecodeH265SessionParametersCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  78898. VideoDecodeH265SessionParametersCreateInfoEXT & operator=( VkVideoDecodeH265SessionParametersCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  78899. {
  78900. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::VideoDecodeH265SessionParametersCreateInfoEXT const *>( &rhs );
  78901. return *this;
  78902. }
  78903. # if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  78904. VULKAN_HPP_CONSTEXPR_14 VideoDecodeH265SessionParametersCreateInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  78905. {
  78906. pNext = pNext_;
  78907. return *this;
  78908. }
  78909. VULKAN_HPP_CONSTEXPR_14 VideoDecodeH265SessionParametersCreateInfoEXT & setMaxVpsStdCount( uint32_t maxVpsStdCount_ ) VULKAN_HPP_NOEXCEPT
  78910. {
  78911. maxVpsStdCount = maxVpsStdCount_;
  78912. return *this;
  78913. }
  78914. VULKAN_HPP_CONSTEXPR_14 VideoDecodeH265SessionParametersCreateInfoEXT & setMaxSpsStdCount( uint32_t maxSpsStdCount_ ) VULKAN_HPP_NOEXCEPT
  78915. {
  78916. maxSpsStdCount = maxSpsStdCount_;
  78917. return *this;
  78918. }
  78919. VULKAN_HPP_CONSTEXPR_14 VideoDecodeH265SessionParametersCreateInfoEXT & setMaxPpsStdCount( uint32_t maxPpsStdCount_ ) VULKAN_HPP_NOEXCEPT
  78920. {
  78921. maxPpsStdCount = maxPpsStdCount_;
  78922. return *this;
  78923. }
  78924. VULKAN_HPP_CONSTEXPR_14 VideoDecodeH265SessionParametersCreateInfoEXT &
  78925. setPParametersAddInfo( const VULKAN_HPP_NAMESPACE::VideoDecodeH265SessionParametersAddInfoEXT * pParametersAddInfo_ ) VULKAN_HPP_NOEXCEPT
  78926. {
  78927. pParametersAddInfo = pParametersAddInfo_;
  78928. return *this;
  78929. }
  78930. # endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  78931. operator VkVideoDecodeH265SessionParametersCreateInfoEXT const &() const VULKAN_HPP_NOEXCEPT
  78932. {
  78933. return *reinterpret_cast<const VkVideoDecodeH265SessionParametersCreateInfoEXT *>( this );
  78934. }
  78935. operator VkVideoDecodeH265SessionParametersCreateInfoEXT &() VULKAN_HPP_NOEXCEPT
  78936. {
  78937. return *reinterpret_cast<VkVideoDecodeH265SessionParametersCreateInfoEXT *>( this );
  78938. }
  78939. # if defined( VULKAN_HPP_USE_REFLECT )
  78940. # if 14 <= VULKAN_HPP_CPP_VERSION
  78941. auto
  78942. # else
  78943. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  78944. const void * const &,
  78945. uint32_t const &,
  78946. uint32_t const &,
  78947. uint32_t const &,
  78948. const VULKAN_HPP_NAMESPACE::VideoDecodeH265SessionParametersAddInfoEXT * const &>
  78949. # endif
  78950. reflect() const VULKAN_HPP_NOEXCEPT
  78951. {
  78952. return std::tie( sType, pNext, maxVpsStdCount, maxSpsStdCount, maxPpsStdCount, pParametersAddInfo );
  78953. }
  78954. # endif
  78955. # if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  78956. auto operator<=>( VideoDecodeH265SessionParametersCreateInfoEXT const & ) const = default;
  78957. # else
  78958. bool operator==( VideoDecodeH265SessionParametersCreateInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  78959. {
  78960. # if defined( VULKAN_HPP_USE_REFLECT )
  78961. return this->reflect() == rhs.reflect();
  78962. # else
  78963. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( maxVpsStdCount == rhs.maxVpsStdCount ) && ( maxSpsStdCount == rhs.maxSpsStdCount ) &&
  78964. ( maxPpsStdCount == rhs.maxPpsStdCount ) && ( pParametersAddInfo == rhs.pParametersAddInfo );
  78965. # endif
  78966. }
  78967. bool operator!=( VideoDecodeH265SessionParametersCreateInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  78968. {
  78969. return !operator==( rhs );
  78970. }
  78971. # endif
  78972. public:
  78973. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eVideoDecodeH265SessionParametersCreateInfoEXT;
  78974. const void * pNext = {};
  78975. uint32_t maxVpsStdCount = {};
  78976. uint32_t maxSpsStdCount = {};
  78977. uint32_t maxPpsStdCount = {};
  78978. const VULKAN_HPP_NAMESPACE::VideoDecodeH265SessionParametersAddInfoEXT * pParametersAddInfo = {};
  78979. };
  78980. template <>
  78981. struct CppType<StructureType, StructureType::eVideoDecodeH265SessionParametersCreateInfoEXT>
  78982. {
  78983. using Type = VideoDecodeH265SessionParametersCreateInfoEXT;
  78984. };
  78985. #endif /*VK_ENABLE_BETA_EXTENSIONS*/
  78986. #if defined( VK_ENABLE_BETA_EXTENSIONS )
  78987. struct VideoDecodeInfoKHR
  78988. {
  78989. using NativeType = VkVideoDecodeInfoKHR;
  78990. static const bool allowDuplicate = false;
  78991. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eVideoDecodeInfoKHR;
  78992. # if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  78993. VULKAN_HPP_CONSTEXPR VideoDecodeInfoKHR( VULKAN_HPP_NAMESPACE::VideoDecodeFlagsKHR flags_ = {},
  78994. VULKAN_HPP_NAMESPACE::Buffer srcBuffer_ = {},
  78995. VULKAN_HPP_NAMESPACE::DeviceSize srcBufferOffset_ = {},
  78996. VULKAN_HPP_NAMESPACE::DeviceSize srcBufferRange_ = {},
  78997. VULKAN_HPP_NAMESPACE::VideoPictureResourceInfoKHR dstPictureResource_ = {},
  78998. const VULKAN_HPP_NAMESPACE::VideoReferenceSlotInfoKHR * pSetupReferenceSlot_ = {},
  78999. uint32_t referenceSlotCount_ = {},
  79000. const VULKAN_HPP_NAMESPACE::VideoReferenceSlotInfoKHR * pReferenceSlots_ = {},
  79001. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  79002. : pNext( pNext_ )
  79003. , flags( flags_ )
  79004. , srcBuffer( srcBuffer_ )
  79005. , srcBufferOffset( srcBufferOffset_ )
  79006. , srcBufferRange( srcBufferRange_ )
  79007. , dstPictureResource( dstPictureResource_ )
  79008. , pSetupReferenceSlot( pSetupReferenceSlot_ )
  79009. , referenceSlotCount( referenceSlotCount_ )
  79010. , pReferenceSlots( pReferenceSlots_ )
  79011. {
  79012. }
  79013. VULKAN_HPP_CONSTEXPR VideoDecodeInfoKHR( VideoDecodeInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  79014. VideoDecodeInfoKHR( VkVideoDecodeInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT : VideoDecodeInfoKHR( *reinterpret_cast<VideoDecodeInfoKHR const *>( &rhs ) ) {}
  79015. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  79016. VideoDecodeInfoKHR( VULKAN_HPP_NAMESPACE::VideoDecodeFlagsKHR flags_,
  79017. VULKAN_HPP_NAMESPACE::Buffer srcBuffer_,
  79018. VULKAN_HPP_NAMESPACE::DeviceSize srcBufferOffset_,
  79019. VULKAN_HPP_NAMESPACE::DeviceSize srcBufferRange_,
  79020. VULKAN_HPP_NAMESPACE::VideoPictureResourceInfoKHR dstPictureResource_,
  79021. const VULKAN_HPP_NAMESPACE::VideoReferenceSlotInfoKHR * pSetupReferenceSlot_,
  79022. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::VideoReferenceSlotInfoKHR> const & referenceSlots_,
  79023. const void * pNext_ = nullptr )
  79024. : pNext( pNext_ )
  79025. , flags( flags_ )
  79026. , srcBuffer( srcBuffer_ )
  79027. , srcBufferOffset( srcBufferOffset_ )
  79028. , srcBufferRange( srcBufferRange_ )
  79029. , dstPictureResource( dstPictureResource_ )
  79030. , pSetupReferenceSlot( pSetupReferenceSlot_ )
  79031. , referenceSlotCount( static_cast<uint32_t>( referenceSlots_.size() ) )
  79032. , pReferenceSlots( referenceSlots_.data() )
  79033. {
  79034. }
  79035. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  79036. # endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  79037. VideoDecodeInfoKHR & operator=( VideoDecodeInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  79038. VideoDecodeInfoKHR & operator=( VkVideoDecodeInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  79039. {
  79040. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::VideoDecodeInfoKHR const *>( &rhs );
  79041. return *this;
  79042. }
  79043. # if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  79044. VULKAN_HPP_CONSTEXPR_14 VideoDecodeInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  79045. {
  79046. pNext = pNext_;
  79047. return *this;
  79048. }
  79049. VULKAN_HPP_CONSTEXPR_14 VideoDecodeInfoKHR & setFlags( VULKAN_HPP_NAMESPACE::VideoDecodeFlagsKHR flags_ ) VULKAN_HPP_NOEXCEPT
  79050. {
  79051. flags = flags_;
  79052. return *this;
  79053. }
  79054. VULKAN_HPP_CONSTEXPR_14 VideoDecodeInfoKHR & setSrcBuffer( VULKAN_HPP_NAMESPACE::Buffer srcBuffer_ ) VULKAN_HPP_NOEXCEPT
  79055. {
  79056. srcBuffer = srcBuffer_;
  79057. return *this;
  79058. }
  79059. VULKAN_HPP_CONSTEXPR_14 VideoDecodeInfoKHR & setSrcBufferOffset( VULKAN_HPP_NAMESPACE::DeviceSize srcBufferOffset_ ) VULKAN_HPP_NOEXCEPT
  79060. {
  79061. srcBufferOffset = srcBufferOffset_;
  79062. return *this;
  79063. }
  79064. VULKAN_HPP_CONSTEXPR_14 VideoDecodeInfoKHR & setSrcBufferRange( VULKAN_HPP_NAMESPACE::DeviceSize srcBufferRange_ ) VULKAN_HPP_NOEXCEPT
  79065. {
  79066. srcBufferRange = srcBufferRange_;
  79067. return *this;
  79068. }
  79069. VULKAN_HPP_CONSTEXPR_14 VideoDecodeInfoKHR &
  79070. setDstPictureResource( VULKAN_HPP_NAMESPACE::VideoPictureResourceInfoKHR const & dstPictureResource_ ) VULKAN_HPP_NOEXCEPT
  79071. {
  79072. dstPictureResource = dstPictureResource_;
  79073. return *this;
  79074. }
  79075. VULKAN_HPP_CONSTEXPR_14 VideoDecodeInfoKHR &
  79076. setPSetupReferenceSlot( const VULKAN_HPP_NAMESPACE::VideoReferenceSlotInfoKHR * pSetupReferenceSlot_ ) VULKAN_HPP_NOEXCEPT
  79077. {
  79078. pSetupReferenceSlot = pSetupReferenceSlot_;
  79079. return *this;
  79080. }
  79081. VULKAN_HPP_CONSTEXPR_14 VideoDecodeInfoKHR & setReferenceSlotCount( uint32_t referenceSlotCount_ ) VULKAN_HPP_NOEXCEPT
  79082. {
  79083. referenceSlotCount = referenceSlotCount_;
  79084. return *this;
  79085. }
  79086. VULKAN_HPP_CONSTEXPR_14 VideoDecodeInfoKHR &
  79087. setPReferenceSlots( const VULKAN_HPP_NAMESPACE::VideoReferenceSlotInfoKHR * pReferenceSlots_ ) VULKAN_HPP_NOEXCEPT
  79088. {
  79089. pReferenceSlots = pReferenceSlots_;
  79090. return *this;
  79091. }
  79092. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  79093. VideoDecodeInfoKHR & setReferenceSlots(
  79094. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::VideoReferenceSlotInfoKHR> const & referenceSlots_ ) VULKAN_HPP_NOEXCEPT
  79095. {
  79096. referenceSlotCount = static_cast<uint32_t>( referenceSlots_.size() );
  79097. pReferenceSlots = referenceSlots_.data();
  79098. return *this;
  79099. }
  79100. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  79101. # endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  79102. operator VkVideoDecodeInfoKHR const &() const VULKAN_HPP_NOEXCEPT
  79103. {
  79104. return *reinterpret_cast<const VkVideoDecodeInfoKHR *>( this );
  79105. }
  79106. operator VkVideoDecodeInfoKHR &() VULKAN_HPP_NOEXCEPT
  79107. {
  79108. return *reinterpret_cast<VkVideoDecodeInfoKHR *>( this );
  79109. }
  79110. # if defined( VULKAN_HPP_USE_REFLECT )
  79111. # if 14 <= VULKAN_HPP_CPP_VERSION
  79112. auto
  79113. # else
  79114. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  79115. const void * const &,
  79116. VULKAN_HPP_NAMESPACE::VideoDecodeFlagsKHR const &,
  79117. VULKAN_HPP_NAMESPACE::Buffer const &,
  79118. VULKAN_HPP_NAMESPACE::DeviceSize const &,
  79119. VULKAN_HPP_NAMESPACE::DeviceSize const &,
  79120. VULKAN_HPP_NAMESPACE::VideoPictureResourceInfoKHR const &,
  79121. const VULKAN_HPP_NAMESPACE::VideoReferenceSlotInfoKHR * const &,
  79122. uint32_t const &,
  79123. const VULKAN_HPP_NAMESPACE::VideoReferenceSlotInfoKHR * const &>
  79124. # endif
  79125. reflect() const VULKAN_HPP_NOEXCEPT
  79126. {
  79127. return std::tie(
  79128. sType, pNext, flags, srcBuffer, srcBufferOffset, srcBufferRange, dstPictureResource, pSetupReferenceSlot, referenceSlotCount, pReferenceSlots );
  79129. }
  79130. # endif
  79131. # if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  79132. auto operator<=>( VideoDecodeInfoKHR const & ) const = default;
  79133. # else
  79134. bool operator==( VideoDecodeInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  79135. {
  79136. # if defined( VULKAN_HPP_USE_REFLECT )
  79137. return this->reflect() == rhs.reflect();
  79138. # else
  79139. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( flags == rhs.flags ) && ( srcBuffer == rhs.srcBuffer ) &&
  79140. ( srcBufferOffset == rhs.srcBufferOffset ) && ( srcBufferRange == rhs.srcBufferRange ) && ( dstPictureResource == rhs.dstPictureResource ) &&
  79141. ( pSetupReferenceSlot == rhs.pSetupReferenceSlot ) && ( referenceSlotCount == rhs.referenceSlotCount ) &&
  79142. ( pReferenceSlots == rhs.pReferenceSlots );
  79143. # endif
  79144. }
  79145. bool operator!=( VideoDecodeInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  79146. {
  79147. return !operator==( rhs );
  79148. }
  79149. # endif
  79150. public:
  79151. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eVideoDecodeInfoKHR;
  79152. const void * pNext = {};
  79153. VULKAN_HPP_NAMESPACE::VideoDecodeFlagsKHR flags = {};
  79154. VULKAN_HPP_NAMESPACE::Buffer srcBuffer = {};
  79155. VULKAN_HPP_NAMESPACE::DeviceSize srcBufferOffset = {};
  79156. VULKAN_HPP_NAMESPACE::DeviceSize srcBufferRange = {};
  79157. VULKAN_HPP_NAMESPACE::VideoPictureResourceInfoKHR dstPictureResource = {};
  79158. const VULKAN_HPP_NAMESPACE::VideoReferenceSlotInfoKHR * pSetupReferenceSlot = {};
  79159. uint32_t referenceSlotCount = {};
  79160. const VULKAN_HPP_NAMESPACE::VideoReferenceSlotInfoKHR * pReferenceSlots = {};
  79161. };
  79162. template <>
  79163. struct CppType<StructureType, StructureType::eVideoDecodeInfoKHR>
  79164. {
  79165. using Type = VideoDecodeInfoKHR;
  79166. };
  79167. #endif /*VK_ENABLE_BETA_EXTENSIONS*/
  79168. #if defined( VK_ENABLE_BETA_EXTENSIONS )
  79169. struct VideoDecodeUsageInfoKHR
  79170. {
  79171. using NativeType = VkVideoDecodeUsageInfoKHR;
  79172. static const bool allowDuplicate = false;
  79173. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eVideoDecodeUsageInfoKHR;
  79174. # if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  79175. VULKAN_HPP_CONSTEXPR VideoDecodeUsageInfoKHR( VULKAN_HPP_NAMESPACE::VideoDecodeUsageFlagsKHR videoUsageHints_ = {},
  79176. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  79177. : pNext( pNext_ )
  79178. , videoUsageHints( videoUsageHints_ )
  79179. {
  79180. }
  79181. VULKAN_HPP_CONSTEXPR VideoDecodeUsageInfoKHR( VideoDecodeUsageInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  79182. VideoDecodeUsageInfoKHR( VkVideoDecodeUsageInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  79183. : VideoDecodeUsageInfoKHR( *reinterpret_cast<VideoDecodeUsageInfoKHR const *>( &rhs ) )
  79184. {
  79185. }
  79186. # endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  79187. VideoDecodeUsageInfoKHR & operator=( VideoDecodeUsageInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  79188. VideoDecodeUsageInfoKHR & operator=( VkVideoDecodeUsageInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  79189. {
  79190. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::VideoDecodeUsageInfoKHR const *>( &rhs );
  79191. return *this;
  79192. }
  79193. # if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  79194. VULKAN_HPP_CONSTEXPR_14 VideoDecodeUsageInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  79195. {
  79196. pNext = pNext_;
  79197. return *this;
  79198. }
  79199. VULKAN_HPP_CONSTEXPR_14 VideoDecodeUsageInfoKHR & setVideoUsageHints( VULKAN_HPP_NAMESPACE::VideoDecodeUsageFlagsKHR videoUsageHints_ ) VULKAN_HPP_NOEXCEPT
  79200. {
  79201. videoUsageHints = videoUsageHints_;
  79202. return *this;
  79203. }
  79204. # endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  79205. operator VkVideoDecodeUsageInfoKHR const &() const VULKAN_HPP_NOEXCEPT
  79206. {
  79207. return *reinterpret_cast<const VkVideoDecodeUsageInfoKHR *>( this );
  79208. }
  79209. operator VkVideoDecodeUsageInfoKHR &() VULKAN_HPP_NOEXCEPT
  79210. {
  79211. return *reinterpret_cast<VkVideoDecodeUsageInfoKHR *>( this );
  79212. }
  79213. # if defined( VULKAN_HPP_USE_REFLECT )
  79214. # if 14 <= VULKAN_HPP_CPP_VERSION
  79215. auto
  79216. # else
  79217. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::VideoDecodeUsageFlagsKHR const &>
  79218. # endif
  79219. reflect() const VULKAN_HPP_NOEXCEPT
  79220. {
  79221. return std::tie( sType, pNext, videoUsageHints );
  79222. }
  79223. # endif
  79224. # if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  79225. auto operator<=>( VideoDecodeUsageInfoKHR const & ) const = default;
  79226. # else
  79227. bool operator==( VideoDecodeUsageInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  79228. {
  79229. # if defined( VULKAN_HPP_USE_REFLECT )
  79230. return this->reflect() == rhs.reflect();
  79231. # else
  79232. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( videoUsageHints == rhs.videoUsageHints );
  79233. # endif
  79234. }
  79235. bool operator!=( VideoDecodeUsageInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  79236. {
  79237. return !operator==( rhs );
  79238. }
  79239. # endif
  79240. public:
  79241. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eVideoDecodeUsageInfoKHR;
  79242. const void * pNext = {};
  79243. VULKAN_HPP_NAMESPACE::VideoDecodeUsageFlagsKHR videoUsageHints = {};
  79244. };
  79245. template <>
  79246. struct CppType<StructureType, StructureType::eVideoDecodeUsageInfoKHR>
  79247. {
  79248. using Type = VideoDecodeUsageInfoKHR;
  79249. };
  79250. #endif /*VK_ENABLE_BETA_EXTENSIONS*/
  79251. #if defined( VK_ENABLE_BETA_EXTENSIONS )
  79252. struct VideoEncodeCapabilitiesKHR
  79253. {
  79254. using NativeType = VkVideoEncodeCapabilitiesKHR;
  79255. static const bool allowDuplicate = false;
  79256. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eVideoEncodeCapabilitiesKHR;
  79257. # if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  79258. VULKAN_HPP_CONSTEXPR VideoEncodeCapabilitiesKHR( VULKAN_HPP_NAMESPACE::VideoEncodeCapabilityFlagsKHR flags_ = {},
  79259. VULKAN_HPP_NAMESPACE::VideoEncodeRateControlModeFlagsKHR rateControlModes_ = {},
  79260. uint8_t rateControlLayerCount_ = {},
  79261. uint8_t qualityLevelCount_ = {},
  79262. VULKAN_HPP_NAMESPACE::Extent2D inputImageDataFillAlignment_ = {},
  79263. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  79264. : pNext( pNext_ )
  79265. , flags( flags_ )
  79266. , rateControlModes( rateControlModes_ )
  79267. , rateControlLayerCount( rateControlLayerCount_ )
  79268. , qualityLevelCount( qualityLevelCount_ )
  79269. , inputImageDataFillAlignment( inputImageDataFillAlignment_ )
  79270. {
  79271. }
  79272. VULKAN_HPP_CONSTEXPR VideoEncodeCapabilitiesKHR( VideoEncodeCapabilitiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  79273. VideoEncodeCapabilitiesKHR( VkVideoEncodeCapabilitiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  79274. : VideoEncodeCapabilitiesKHR( *reinterpret_cast<VideoEncodeCapabilitiesKHR const *>( &rhs ) )
  79275. {
  79276. }
  79277. # endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  79278. VideoEncodeCapabilitiesKHR & operator=( VideoEncodeCapabilitiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  79279. VideoEncodeCapabilitiesKHR & operator=( VkVideoEncodeCapabilitiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  79280. {
  79281. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::VideoEncodeCapabilitiesKHR const *>( &rhs );
  79282. return *this;
  79283. }
  79284. operator VkVideoEncodeCapabilitiesKHR const &() const VULKAN_HPP_NOEXCEPT
  79285. {
  79286. return *reinterpret_cast<const VkVideoEncodeCapabilitiesKHR *>( this );
  79287. }
  79288. operator VkVideoEncodeCapabilitiesKHR &() VULKAN_HPP_NOEXCEPT
  79289. {
  79290. return *reinterpret_cast<VkVideoEncodeCapabilitiesKHR *>( this );
  79291. }
  79292. # if defined( VULKAN_HPP_USE_REFLECT )
  79293. # if 14 <= VULKAN_HPP_CPP_VERSION
  79294. auto
  79295. # else
  79296. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  79297. void * const &,
  79298. VULKAN_HPP_NAMESPACE::VideoEncodeCapabilityFlagsKHR const &,
  79299. VULKAN_HPP_NAMESPACE::VideoEncodeRateControlModeFlagsKHR const &,
  79300. uint8_t const &,
  79301. uint8_t const &,
  79302. VULKAN_HPP_NAMESPACE::Extent2D const &>
  79303. # endif
  79304. reflect() const VULKAN_HPP_NOEXCEPT
  79305. {
  79306. return std::tie( sType, pNext, flags, rateControlModes, rateControlLayerCount, qualityLevelCount, inputImageDataFillAlignment );
  79307. }
  79308. # endif
  79309. # if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  79310. auto operator<=>( VideoEncodeCapabilitiesKHR const & ) const = default;
  79311. # else
  79312. bool operator==( VideoEncodeCapabilitiesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  79313. {
  79314. # if defined( VULKAN_HPP_USE_REFLECT )
  79315. return this->reflect() == rhs.reflect();
  79316. # else
  79317. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( flags == rhs.flags ) && ( rateControlModes == rhs.rateControlModes ) &&
  79318. ( rateControlLayerCount == rhs.rateControlLayerCount ) && ( qualityLevelCount == rhs.qualityLevelCount ) &&
  79319. ( inputImageDataFillAlignment == rhs.inputImageDataFillAlignment );
  79320. # endif
  79321. }
  79322. bool operator!=( VideoEncodeCapabilitiesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  79323. {
  79324. return !operator==( rhs );
  79325. }
  79326. # endif
  79327. public:
  79328. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eVideoEncodeCapabilitiesKHR;
  79329. void * pNext = {};
  79330. VULKAN_HPP_NAMESPACE::VideoEncodeCapabilityFlagsKHR flags = {};
  79331. VULKAN_HPP_NAMESPACE::VideoEncodeRateControlModeFlagsKHR rateControlModes = {};
  79332. uint8_t rateControlLayerCount = {};
  79333. uint8_t qualityLevelCount = {};
  79334. VULKAN_HPP_NAMESPACE::Extent2D inputImageDataFillAlignment = {};
  79335. };
  79336. template <>
  79337. struct CppType<StructureType, StructureType::eVideoEncodeCapabilitiesKHR>
  79338. {
  79339. using Type = VideoEncodeCapabilitiesKHR;
  79340. };
  79341. #endif /*VK_ENABLE_BETA_EXTENSIONS*/
  79342. #if defined( VK_ENABLE_BETA_EXTENSIONS )
  79343. struct VideoEncodeH264CapabilitiesEXT
  79344. {
  79345. using NativeType = VkVideoEncodeH264CapabilitiesEXT;
  79346. static const bool allowDuplicate = false;
  79347. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eVideoEncodeH264CapabilitiesEXT;
  79348. # if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  79349. VULKAN_HPP_CONSTEXPR VideoEncodeH264CapabilitiesEXT( VULKAN_HPP_NAMESPACE::VideoEncodeH264CapabilityFlagsEXT flags_ = {},
  79350. VULKAN_HPP_NAMESPACE::VideoEncodeH264InputModeFlagsEXT inputModeFlags_ = {},
  79351. VULKAN_HPP_NAMESPACE::VideoEncodeH264OutputModeFlagsEXT outputModeFlags_ = {},
  79352. uint8_t maxPPictureL0ReferenceCount_ = {},
  79353. uint8_t maxBPictureL0ReferenceCount_ = {},
  79354. uint8_t maxL1ReferenceCount_ = {},
  79355. VULKAN_HPP_NAMESPACE::Bool32 motionVectorsOverPicBoundariesFlag_ = {},
  79356. uint32_t maxBytesPerPicDenom_ = {},
  79357. uint32_t maxBitsPerMbDenom_ = {},
  79358. uint32_t log2MaxMvLengthHorizontal_ = {},
  79359. uint32_t log2MaxMvLengthVertical_ = {},
  79360. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  79361. : pNext( pNext_ )
  79362. , flags( flags_ )
  79363. , inputModeFlags( inputModeFlags_ )
  79364. , outputModeFlags( outputModeFlags_ )
  79365. , maxPPictureL0ReferenceCount( maxPPictureL0ReferenceCount_ )
  79366. , maxBPictureL0ReferenceCount( maxBPictureL0ReferenceCount_ )
  79367. , maxL1ReferenceCount( maxL1ReferenceCount_ )
  79368. , motionVectorsOverPicBoundariesFlag( motionVectorsOverPicBoundariesFlag_ )
  79369. , maxBytesPerPicDenom( maxBytesPerPicDenom_ )
  79370. , maxBitsPerMbDenom( maxBitsPerMbDenom_ )
  79371. , log2MaxMvLengthHorizontal( log2MaxMvLengthHorizontal_ )
  79372. , log2MaxMvLengthVertical( log2MaxMvLengthVertical_ )
  79373. {
  79374. }
  79375. VULKAN_HPP_CONSTEXPR VideoEncodeH264CapabilitiesEXT( VideoEncodeH264CapabilitiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  79376. VideoEncodeH264CapabilitiesEXT( VkVideoEncodeH264CapabilitiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  79377. : VideoEncodeH264CapabilitiesEXT( *reinterpret_cast<VideoEncodeH264CapabilitiesEXT const *>( &rhs ) )
  79378. {
  79379. }
  79380. # endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  79381. VideoEncodeH264CapabilitiesEXT & operator=( VideoEncodeH264CapabilitiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  79382. VideoEncodeH264CapabilitiesEXT & operator=( VkVideoEncodeH264CapabilitiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  79383. {
  79384. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::VideoEncodeH264CapabilitiesEXT const *>( &rhs );
  79385. return *this;
  79386. }
  79387. operator VkVideoEncodeH264CapabilitiesEXT const &() const VULKAN_HPP_NOEXCEPT
  79388. {
  79389. return *reinterpret_cast<const VkVideoEncodeH264CapabilitiesEXT *>( this );
  79390. }
  79391. operator VkVideoEncodeH264CapabilitiesEXT &() VULKAN_HPP_NOEXCEPT
  79392. {
  79393. return *reinterpret_cast<VkVideoEncodeH264CapabilitiesEXT *>( this );
  79394. }
  79395. # if defined( VULKAN_HPP_USE_REFLECT )
  79396. # if 14 <= VULKAN_HPP_CPP_VERSION
  79397. auto
  79398. # else
  79399. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  79400. void * const &,
  79401. VULKAN_HPP_NAMESPACE::VideoEncodeH264CapabilityFlagsEXT const &,
  79402. VULKAN_HPP_NAMESPACE::VideoEncodeH264InputModeFlagsEXT const &,
  79403. VULKAN_HPP_NAMESPACE::VideoEncodeH264OutputModeFlagsEXT const &,
  79404. uint8_t const &,
  79405. uint8_t const &,
  79406. uint8_t const &,
  79407. VULKAN_HPP_NAMESPACE::Bool32 const &,
  79408. uint32_t const &,
  79409. uint32_t const &,
  79410. uint32_t const &,
  79411. uint32_t const &>
  79412. # endif
  79413. reflect() const VULKAN_HPP_NOEXCEPT
  79414. {
  79415. return std::tie( sType,
  79416. pNext,
  79417. flags,
  79418. inputModeFlags,
  79419. outputModeFlags,
  79420. maxPPictureL0ReferenceCount,
  79421. maxBPictureL0ReferenceCount,
  79422. maxL1ReferenceCount,
  79423. motionVectorsOverPicBoundariesFlag,
  79424. maxBytesPerPicDenom,
  79425. maxBitsPerMbDenom,
  79426. log2MaxMvLengthHorizontal,
  79427. log2MaxMvLengthVertical );
  79428. }
  79429. # endif
  79430. # if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  79431. auto operator<=>( VideoEncodeH264CapabilitiesEXT const & ) const = default;
  79432. # else
  79433. bool operator==( VideoEncodeH264CapabilitiesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  79434. {
  79435. # if defined( VULKAN_HPP_USE_REFLECT )
  79436. return this->reflect() == rhs.reflect();
  79437. # else
  79438. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( flags == rhs.flags ) && ( inputModeFlags == rhs.inputModeFlags ) &&
  79439. ( outputModeFlags == rhs.outputModeFlags ) && ( maxPPictureL0ReferenceCount == rhs.maxPPictureL0ReferenceCount ) &&
  79440. ( maxBPictureL0ReferenceCount == rhs.maxBPictureL0ReferenceCount ) && ( maxL1ReferenceCount == rhs.maxL1ReferenceCount ) &&
  79441. ( motionVectorsOverPicBoundariesFlag == rhs.motionVectorsOverPicBoundariesFlag ) && ( maxBytesPerPicDenom == rhs.maxBytesPerPicDenom ) &&
  79442. ( maxBitsPerMbDenom == rhs.maxBitsPerMbDenom ) && ( log2MaxMvLengthHorizontal == rhs.log2MaxMvLengthHorizontal ) &&
  79443. ( log2MaxMvLengthVertical == rhs.log2MaxMvLengthVertical );
  79444. # endif
  79445. }
  79446. bool operator!=( VideoEncodeH264CapabilitiesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  79447. {
  79448. return !operator==( rhs );
  79449. }
  79450. # endif
  79451. public:
  79452. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eVideoEncodeH264CapabilitiesEXT;
  79453. void * pNext = {};
  79454. VULKAN_HPP_NAMESPACE::VideoEncodeH264CapabilityFlagsEXT flags = {};
  79455. VULKAN_HPP_NAMESPACE::VideoEncodeH264InputModeFlagsEXT inputModeFlags = {};
  79456. VULKAN_HPP_NAMESPACE::VideoEncodeH264OutputModeFlagsEXT outputModeFlags = {};
  79457. uint8_t maxPPictureL0ReferenceCount = {};
  79458. uint8_t maxBPictureL0ReferenceCount = {};
  79459. uint8_t maxL1ReferenceCount = {};
  79460. VULKAN_HPP_NAMESPACE::Bool32 motionVectorsOverPicBoundariesFlag = {};
  79461. uint32_t maxBytesPerPicDenom = {};
  79462. uint32_t maxBitsPerMbDenom = {};
  79463. uint32_t log2MaxMvLengthHorizontal = {};
  79464. uint32_t log2MaxMvLengthVertical = {};
  79465. };
  79466. template <>
  79467. struct CppType<StructureType, StructureType::eVideoEncodeH264CapabilitiesEXT>
  79468. {
  79469. using Type = VideoEncodeH264CapabilitiesEXT;
  79470. };
  79471. #endif /*VK_ENABLE_BETA_EXTENSIONS*/
  79472. #if defined( VK_ENABLE_BETA_EXTENSIONS )
  79473. struct VideoEncodeH264DpbSlotInfoEXT
  79474. {
  79475. using NativeType = VkVideoEncodeH264DpbSlotInfoEXT;
  79476. static const bool allowDuplicate = false;
  79477. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eVideoEncodeH264DpbSlotInfoEXT;
  79478. # if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  79479. VULKAN_HPP_CONSTEXPR VideoEncodeH264DpbSlotInfoEXT( int8_t slotIndex_ = {},
  79480. const StdVideoEncodeH264ReferenceInfo * pStdReferenceInfo_ = {},
  79481. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  79482. : pNext( pNext_ )
  79483. , slotIndex( slotIndex_ )
  79484. , pStdReferenceInfo( pStdReferenceInfo_ )
  79485. {
  79486. }
  79487. VULKAN_HPP_CONSTEXPR VideoEncodeH264DpbSlotInfoEXT( VideoEncodeH264DpbSlotInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  79488. VideoEncodeH264DpbSlotInfoEXT( VkVideoEncodeH264DpbSlotInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  79489. : VideoEncodeH264DpbSlotInfoEXT( *reinterpret_cast<VideoEncodeH264DpbSlotInfoEXT const *>( &rhs ) )
  79490. {
  79491. }
  79492. # endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  79493. VideoEncodeH264DpbSlotInfoEXT & operator=( VideoEncodeH264DpbSlotInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  79494. VideoEncodeH264DpbSlotInfoEXT & operator=( VkVideoEncodeH264DpbSlotInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  79495. {
  79496. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::VideoEncodeH264DpbSlotInfoEXT const *>( &rhs );
  79497. return *this;
  79498. }
  79499. # if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  79500. VULKAN_HPP_CONSTEXPR_14 VideoEncodeH264DpbSlotInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  79501. {
  79502. pNext = pNext_;
  79503. return *this;
  79504. }
  79505. VULKAN_HPP_CONSTEXPR_14 VideoEncodeH264DpbSlotInfoEXT & setSlotIndex( int8_t slotIndex_ ) VULKAN_HPP_NOEXCEPT
  79506. {
  79507. slotIndex = slotIndex_;
  79508. return *this;
  79509. }
  79510. VULKAN_HPP_CONSTEXPR_14 VideoEncodeH264DpbSlotInfoEXT &
  79511. setPStdReferenceInfo( const StdVideoEncodeH264ReferenceInfo * pStdReferenceInfo_ ) VULKAN_HPP_NOEXCEPT
  79512. {
  79513. pStdReferenceInfo = pStdReferenceInfo_;
  79514. return *this;
  79515. }
  79516. # endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  79517. operator VkVideoEncodeH264DpbSlotInfoEXT const &() const VULKAN_HPP_NOEXCEPT
  79518. {
  79519. return *reinterpret_cast<const VkVideoEncodeH264DpbSlotInfoEXT *>( this );
  79520. }
  79521. operator VkVideoEncodeH264DpbSlotInfoEXT &() VULKAN_HPP_NOEXCEPT
  79522. {
  79523. return *reinterpret_cast<VkVideoEncodeH264DpbSlotInfoEXT *>( this );
  79524. }
  79525. # if defined( VULKAN_HPP_USE_REFLECT )
  79526. # if 14 <= VULKAN_HPP_CPP_VERSION
  79527. auto
  79528. # else
  79529. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, int8_t const &, const StdVideoEncodeH264ReferenceInfo * const &>
  79530. # endif
  79531. reflect() const VULKAN_HPP_NOEXCEPT
  79532. {
  79533. return std::tie( sType, pNext, slotIndex, pStdReferenceInfo );
  79534. }
  79535. # endif
  79536. # if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  79537. auto operator<=>( VideoEncodeH264DpbSlotInfoEXT const & ) const = default;
  79538. # else
  79539. bool operator==( VideoEncodeH264DpbSlotInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  79540. {
  79541. # if defined( VULKAN_HPP_USE_REFLECT )
  79542. return this->reflect() == rhs.reflect();
  79543. # else
  79544. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( slotIndex == rhs.slotIndex ) && ( pStdReferenceInfo == rhs.pStdReferenceInfo );
  79545. # endif
  79546. }
  79547. bool operator!=( VideoEncodeH264DpbSlotInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  79548. {
  79549. return !operator==( rhs );
  79550. }
  79551. # endif
  79552. public:
  79553. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eVideoEncodeH264DpbSlotInfoEXT;
  79554. const void * pNext = {};
  79555. int8_t slotIndex = {};
  79556. const StdVideoEncodeH264ReferenceInfo * pStdReferenceInfo = {};
  79557. };
  79558. template <>
  79559. struct CppType<StructureType, StructureType::eVideoEncodeH264DpbSlotInfoEXT>
  79560. {
  79561. using Type = VideoEncodeH264DpbSlotInfoEXT;
  79562. };
  79563. #endif /*VK_ENABLE_BETA_EXTENSIONS*/
  79564. #if defined( VK_ENABLE_BETA_EXTENSIONS )
  79565. struct VideoEncodeH264EmitPictureParametersInfoEXT
  79566. {
  79567. using NativeType = VkVideoEncodeH264EmitPictureParametersInfoEXT;
  79568. static const bool allowDuplicate = false;
  79569. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eVideoEncodeH264EmitPictureParametersInfoEXT;
  79570. # if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  79571. VULKAN_HPP_CONSTEXPR VideoEncodeH264EmitPictureParametersInfoEXT( uint8_t spsId_ = {},
  79572. VULKAN_HPP_NAMESPACE::Bool32 emitSpsEnable_ = {},
  79573. uint32_t ppsIdEntryCount_ = {},
  79574. const uint8_t * ppsIdEntries_ = {},
  79575. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  79576. : pNext( pNext_ )
  79577. , spsId( spsId_ )
  79578. , emitSpsEnable( emitSpsEnable_ )
  79579. , ppsIdEntryCount( ppsIdEntryCount_ )
  79580. , ppsIdEntries( ppsIdEntries_ )
  79581. {
  79582. }
  79583. VULKAN_HPP_CONSTEXPR VideoEncodeH264EmitPictureParametersInfoEXT( VideoEncodeH264EmitPictureParametersInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  79584. VideoEncodeH264EmitPictureParametersInfoEXT( VkVideoEncodeH264EmitPictureParametersInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  79585. : VideoEncodeH264EmitPictureParametersInfoEXT( *reinterpret_cast<VideoEncodeH264EmitPictureParametersInfoEXT const *>( &rhs ) )
  79586. {
  79587. }
  79588. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  79589. VideoEncodeH264EmitPictureParametersInfoEXT( uint8_t spsId_,
  79590. VULKAN_HPP_NAMESPACE::Bool32 emitSpsEnable_,
  79591. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint8_t> const & psIdEntries_,
  79592. const void * pNext_ = nullptr )
  79593. : pNext( pNext_ )
  79594. , spsId( spsId_ )
  79595. , emitSpsEnable( emitSpsEnable_ )
  79596. , ppsIdEntryCount( static_cast<uint32_t>( psIdEntries_.size() ) )
  79597. , ppsIdEntries( psIdEntries_.data() )
  79598. {
  79599. }
  79600. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  79601. # endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  79602. VideoEncodeH264EmitPictureParametersInfoEXT & operator=( VideoEncodeH264EmitPictureParametersInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  79603. VideoEncodeH264EmitPictureParametersInfoEXT & operator=( VkVideoEncodeH264EmitPictureParametersInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  79604. {
  79605. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::VideoEncodeH264EmitPictureParametersInfoEXT const *>( &rhs );
  79606. return *this;
  79607. }
  79608. # if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  79609. VULKAN_HPP_CONSTEXPR_14 VideoEncodeH264EmitPictureParametersInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  79610. {
  79611. pNext = pNext_;
  79612. return *this;
  79613. }
  79614. VULKAN_HPP_CONSTEXPR_14 VideoEncodeH264EmitPictureParametersInfoEXT & setSpsId( uint8_t spsId_ ) VULKAN_HPP_NOEXCEPT
  79615. {
  79616. spsId = spsId_;
  79617. return *this;
  79618. }
  79619. VULKAN_HPP_CONSTEXPR_14 VideoEncodeH264EmitPictureParametersInfoEXT & setEmitSpsEnable( VULKAN_HPP_NAMESPACE::Bool32 emitSpsEnable_ ) VULKAN_HPP_NOEXCEPT
  79620. {
  79621. emitSpsEnable = emitSpsEnable_;
  79622. return *this;
  79623. }
  79624. VULKAN_HPP_CONSTEXPR_14 VideoEncodeH264EmitPictureParametersInfoEXT & setPpsIdEntryCount( uint32_t ppsIdEntryCount_ ) VULKAN_HPP_NOEXCEPT
  79625. {
  79626. ppsIdEntryCount = ppsIdEntryCount_;
  79627. return *this;
  79628. }
  79629. VULKAN_HPP_CONSTEXPR_14 VideoEncodeH264EmitPictureParametersInfoEXT & setPpsIdEntries( const uint8_t * ppsIdEntries_ ) VULKAN_HPP_NOEXCEPT
  79630. {
  79631. ppsIdEntries = ppsIdEntries_;
  79632. return *this;
  79633. }
  79634. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  79635. VideoEncodeH264EmitPictureParametersInfoEXT &
  79636. setPsIdEntries( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint8_t> const & psIdEntries_ ) VULKAN_HPP_NOEXCEPT
  79637. {
  79638. ppsIdEntryCount = static_cast<uint32_t>( psIdEntries_.size() );
  79639. ppsIdEntries = psIdEntries_.data();
  79640. return *this;
  79641. }
  79642. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  79643. # endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  79644. operator VkVideoEncodeH264EmitPictureParametersInfoEXT const &() const VULKAN_HPP_NOEXCEPT
  79645. {
  79646. return *reinterpret_cast<const VkVideoEncodeH264EmitPictureParametersInfoEXT *>( this );
  79647. }
  79648. operator VkVideoEncodeH264EmitPictureParametersInfoEXT &() VULKAN_HPP_NOEXCEPT
  79649. {
  79650. return *reinterpret_cast<VkVideoEncodeH264EmitPictureParametersInfoEXT *>( this );
  79651. }
  79652. # if defined( VULKAN_HPP_USE_REFLECT )
  79653. # if 14 <= VULKAN_HPP_CPP_VERSION
  79654. auto
  79655. # else
  79656. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  79657. const void * const &,
  79658. uint8_t const &,
  79659. VULKAN_HPP_NAMESPACE::Bool32 const &,
  79660. uint32_t const &,
  79661. const uint8_t * const &>
  79662. # endif
  79663. reflect() const VULKAN_HPP_NOEXCEPT
  79664. {
  79665. return std::tie( sType, pNext, spsId, emitSpsEnable, ppsIdEntryCount, ppsIdEntries );
  79666. }
  79667. # endif
  79668. # if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  79669. auto operator<=>( VideoEncodeH264EmitPictureParametersInfoEXT const & ) const = default;
  79670. # else
  79671. bool operator==( VideoEncodeH264EmitPictureParametersInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  79672. {
  79673. # if defined( VULKAN_HPP_USE_REFLECT )
  79674. return this->reflect() == rhs.reflect();
  79675. # else
  79676. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( spsId == rhs.spsId ) && ( emitSpsEnable == rhs.emitSpsEnable ) &&
  79677. ( ppsIdEntryCount == rhs.ppsIdEntryCount ) && ( ppsIdEntries == rhs.ppsIdEntries );
  79678. # endif
  79679. }
  79680. bool operator!=( VideoEncodeH264EmitPictureParametersInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  79681. {
  79682. return !operator==( rhs );
  79683. }
  79684. # endif
  79685. public:
  79686. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eVideoEncodeH264EmitPictureParametersInfoEXT;
  79687. const void * pNext = {};
  79688. uint8_t spsId = {};
  79689. VULKAN_HPP_NAMESPACE::Bool32 emitSpsEnable = {};
  79690. uint32_t ppsIdEntryCount = {};
  79691. const uint8_t * ppsIdEntries = {};
  79692. };
  79693. template <>
  79694. struct CppType<StructureType, StructureType::eVideoEncodeH264EmitPictureParametersInfoEXT>
  79695. {
  79696. using Type = VideoEncodeH264EmitPictureParametersInfoEXT;
  79697. };
  79698. #endif /*VK_ENABLE_BETA_EXTENSIONS*/
  79699. #if defined( VK_ENABLE_BETA_EXTENSIONS )
  79700. struct VideoEncodeH264FrameSizeEXT
  79701. {
  79702. using NativeType = VkVideoEncodeH264FrameSizeEXT;
  79703. # if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  79704. VULKAN_HPP_CONSTEXPR VideoEncodeH264FrameSizeEXT( uint32_t frameISize_ = {}, uint32_t framePSize_ = {}, uint32_t frameBSize_ = {} ) VULKAN_HPP_NOEXCEPT
  79705. : frameISize( frameISize_ )
  79706. , framePSize( framePSize_ )
  79707. , frameBSize( frameBSize_ )
  79708. {
  79709. }
  79710. VULKAN_HPP_CONSTEXPR VideoEncodeH264FrameSizeEXT( VideoEncodeH264FrameSizeEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  79711. VideoEncodeH264FrameSizeEXT( VkVideoEncodeH264FrameSizeEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  79712. : VideoEncodeH264FrameSizeEXT( *reinterpret_cast<VideoEncodeH264FrameSizeEXT const *>( &rhs ) )
  79713. {
  79714. }
  79715. # endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  79716. VideoEncodeH264FrameSizeEXT & operator=( VideoEncodeH264FrameSizeEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  79717. VideoEncodeH264FrameSizeEXT & operator=( VkVideoEncodeH264FrameSizeEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  79718. {
  79719. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::VideoEncodeH264FrameSizeEXT const *>( &rhs );
  79720. return *this;
  79721. }
  79722. # if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  79723. VULKAN_HPP_CONSTEXPR_14 VideoEncodeH264FrameSizeEXT & setFrameISize( uint32_t frameISize_ ) VULKAN_HPP_NOEXCEPT
  79724. {
  79725. frameISize = frameISize_;
  79726. return *this;
  79727. }
  79728. VULKAN_HPP_CONSTEXPR_14 VideoEncodeH264FrameSizeEXT & setFramePSize( uint32_t framePSize_ ) VULKAN_HPP_NOEXCEPT
  79729. {
  79730. framePSize = framePSize_;
  79731. return *this;
  79732. }
  79733. VULKAN_HPP_CONSTEXPR_14 VideoEncodeH264FrameSizeEXT & setFrameBSize( uint32_t frameBSize_ ) VULKAN_HPP_NOEXCEPT
  79734. {
  79735. frameBSize = frameBSize_;
  79736. return *this;
  79737. }
  79738. # endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  79739. operator VkVideoEncodeH264FrameSizeEXT const &() const VULKAN_HPP_NOEXCEPT
  79740. {
  79741. return *reinterpret_cast<const VkVideoEncodeH264FrameSizeEXT *>( this );
  79742. }
  79743. operator VkVideoEncodeH264FrameSizeEXT &() VULKAN_HPP_NOEXCEPT
  79744. {
  79745. return *reinterpret_cast<VkVideoEncodeH264FrameSizeEXT *>( this );
  79746. }
  79747. # if defined( VULKAN_HPP_USE_REFLECT )
  79748. # if 14 <= VULKAN_HPP_CPP_VERSION
  79749. auto
  79750. # else
  79751. std::tuple<uint32_t const &, uint32_t const &, uint32_t const &>
  79752. # endif
  79753. reflect() const VULKAN_HPP_NOEXCEPT
  79754. {
  79755. return std::tie( frameISize, framePSize, frameBSize );
  79756. }
  79757. # endif
  79758. # if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  79759. auto operator<=>( VideoEncodeH264FrameSizeEXT const & ) const = default;
  79760. # else
  79761. bool operator==( VideoEncodeH264FrameSizeEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  79762. {
  79763. # if defined( VULKAN_HPP_USE_REFLECT )
  79764. return this->reflect() == rhs.reflect();
  79765. # else
  79766. return ( frameISize == rhs.frameISize ) && ( framePSize == rhs.framePSize ) && ( frameBSize == rhs.frameBSize );
  79767. # endif
  79768. }
  79769. bool operator!=( VideoEncodeH264FrameSizeEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  79770. {
  79771. return !operator==( rhs );
  79772. }
  79773. # endif
  79774. public:
  79775. uint32_t frameISize = {};
  79776. uint32_t framePSize = {};
  79777. uint32_t frameBSize = {};
  79778. };
  79779. #endif /*VK_ENABLE_BETA_EXTENSIONS*/
  79780. #if defined( VK_ENABLE_BETA_EXTENSIONS )
  79781. struct VideoEncodeH264ReferenceListsInfoEXT
  79782. {
  79783. using NativeType = VkVideoEncodeH264ReferenceListsInfoEXT;
  79784. static const bool allowDuplicate = false;
  79785. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eVideoEncodeH264ReferenceListsInfoEXT;
  79786. # if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  79787. VULKAN_HPP_CONSTEXPR VideoEncodeH264ReferenceListsInfoEXT( uint8_t referenceList0EntryCount_ = {},
  79788. const VULKAN_HPP_NAMESPACE::VideoEncodeH264DpbSlotInfoEXT * pReferenceList0Entries_ = {},
  79789. uint8_t referenceList1EntryCount_ = {},
  79790. const VULKAN_HPP_NAMESPACE::VideoEncodeH264DpbSlotInfoEXT * pReferenceList1Entries_ = {},
  79791. const StdVideoEncodeH264RefMemMgmtCtrlOperations * pMemMgmtCtrlOperations_ = {},
  79792. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  79793. : pNext( pNext_ )
  79794. , referenceList0EntryCount( referenceList0EntryCount_ )
  79795. , pReferenceList0Entries( pReferenceList0Entries_ )
  79796. , referenceList1EntryCount( referenceList1EntryCount_ )
  79797. , pReferenceList1Entries( pReferenceList1Entries_ )
  79798. , pMemMgmtCtrlOperations( pMemMgmtCtrlOperations_ )
  79799. {
  79800. }
  79801. VULKAN_HPP_CONSTEXPR VideoEncodeH264ReferenceListsInfoEXT( VideoEncodeH264ReferenceListsInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  79802. VideoEncodeH264ReferenceListsInfoEXT( VkVideoEncodeH264ReferenceListsInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  79803. : VideoEncodeH264ReferenceListsInfoEXT( *reinterpret_cast<VideoEncodeH264ReferenceListsInfoEXT const *>( &rhs ) )
  79804. {
  79805. }
  79806. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  79807. VideoEncodeH264ReferenceListsInfoEXT(
  79808. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::VideoEncodeH264DpbSlotInfoEXT> const & referenceList0Entries_,
  79809. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::VideoEncodeH264DpbSlotInfoEXT> const & referenceList1Entries_ = {},
  79810. const StdVideoEncodeH264RefMemMgmtCtrlOperations * pMemMgmtCtrlOperations_ = {},
  79811. const void * pNext_ = nullptr )
  79812. : pNext( pNext_ )
  79813. , referenceList0EntryCount( static_cast<uint8_t>( referenceList0Entries_.size() ) )
  79814. , pReferenceList0Entries( referenceList0Entries_.data() )
  79815. , referenceList1EntryCount( static_cast<uint8_t>( referenceList1Entries_.size() ) )
  79816. , pReferenceList1Entries( referenceList1Entries_.data() )
  79817. , pMemMgmtCtrlOperations( pMemMgmtCtrlOperations_ )
  79818. {
  79819. }
  79820. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  79821. # endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  79822. VideoEncodeH264ReferenceListsInfoEXT & operator=( VideoEncodeH264ReferenceListsInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  79823. VideoEncodeH264ReferenceListsInfoEXT & operator=( VkVideoEncodeH264ReferenceListsInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  79824. {
  79825. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::VideoEncodeH264ReferenceListsInfoEXT const *>( &rhs );
  79826. return *this;
  79827. }
  79828. # if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  79829. VULKAN_HPP_CONSTEXPR_14 VideoEncodeH264ReferenceListsInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  79830. {
  79831. pNext = pNext_;
  79832. return *this;
  79833. }
  79834. VULKAN_HPP_CONSTEXPR_14 VideoEncodeH264ReferenceListsInfoEXT & setReferenceList0EntryCount( uint8_t referenceList0EntryCount_ ) VULKAN_HPP_NOEXCEPT
  79835. {
  79836. referenceList0EntryCount = referenceList0EntryCount_;
  79837. return *this;
  79838. }
  79839. VULKAN_HPP_CONSTEXPR_14 VideoEncodeH264ReferenceListsInfoEXT &
  79840. setPReferenceList0Entries( const VULKAN_HPP_NAMESPACE::VideoEncodeH264DpbSlotInfoEXT * pReferenceList0Entries_ ) VULKAN_HPP_NOEXCEPT
  79841. {
  79842. pReferenceList0Entries = pReferenceList0Entries_;
  79843. return *this;
  79844. }
  79845. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  79846. VideoEncodeH264ReferenceListsInfoEXT & setReferenceList0Entries(
  79847. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::VideoEncodeH264DpbSlotInfoEXT> const & referenceList0Entries_ )
  79848. VULKAN_HPP_NOEXCEPT
  79849. {
  79850. referenceList0EntryCount = static_cast<uint8_t>( referenceList0Entries_.size() );
  79851. pReferenceList0Entries = referenceList0Entries_.data();
  79852. return *this;
  79853. }
  79854. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  79855. VULKAN_HPP_CONSTEXPR_14 VideoEncodeH264ReferenceListsInfoEXT & setReferenceList1EntryCount( uint8_t referenceList1EntryCount_ ) VULKAN_HPP_NOEXCEPT
  79856. {
  79857. referenceList1EntryCount = referenceList1EntryCount_;
  79858. return *this;
  79859. }
  79860. VULKAN_HPP_CONSTEXPR_14 VideoEncodeH264ReferenceListsInfoEXT &
  79861. setPReferenceList1Entries( const VULKAN_HPP_NAMESPACE::VideoEncodeH264DpbSlotInfoEXT * pReferenceList1Entries_ ) VULKAN_HPP_NOEXCEPT
  79862. {
  79863. pReferenceList1Entries = pReferenceList1Entries_;
  79864. return *this;
  79865. }
  79866. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  79867. VideoEncodeH264ReferenceListsInfoEXT & setReferenceList1Entries(
  79868. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::VideoEncodeH264DpbSlotInfoEXT> const & referenceList1Entries_ )
  79869. VULKAN_HPP_NOEXCEPT
  79870. {
  79871. referenceList1EntryCount = static_cast<uint8_t>( referenceList1Entries_.size() );
  79872. pReferenceList1Entries = referenceList1Entries_.data();
  79873. return *this;
  79874. }
  79875. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  79876. VULKAN_HPP_CONSTEXPR_14 VideoEncodeH264ReferenceListsInfoEXT &
  79877. setPMemMgmtCtrlOperations( const StdVideoEncodeH264RefMemMgmtCtrlOperations * pMemMgmtCtrlOperations_ ) VULKAN_HPP_NOEXCEPT
  79878. {
  79879. pMemMgmtCtrlOperations = pMemMgmtCtrlOperations_;
  79880. return *this;
  79881. }
  79882. # endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  79883. operator VkVideoEncodeH264ReferenceListsInfoEXT const &() const VULKAN_HPP_NOEXCEPT
  79884. {
  79885. return *reinterpret_cast<const VkVideoEncodeH264ReferenceListsInfoEXT *>( this );
  79886. }
  79887. operator VkVideoEncodeH264ReferenceListsInfoEXT &() VULKAN_HPP_NOEXCEPT
  79888. {
  79889. return *reinterpret_cast<VkVideoEncodeH264ReferenceListsInfoEXT *>( this );
  79890. }
  79891. # if defined( VULKAN_HPP_USE_REFLECT )
  79892. # if 14 <= VULKAN_HPP_CPP_VERSION
  79893. auto
  79894. # else
  79895. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  79896. const void * const &,
  79897. uint8_t const &,
  79898. const VULKAN_HPP_NAMESPACE::VideoEncodeH264DpbSlotInfoEXT * const &,
  79899. uint8_t const &,
  79900. const VULKAN_HPP_NAMESPACE::VideoEncodeH264DpbSlotInfoEXT * const &,
  79901. const StdVideoEncodeH264RefMemMgmtCtrlOperations * const &>
  79902. # endif
  79903. reflect() const VULKAN_HPP_NOEXCEPT
  79904. {
  79905. return std::tie(
  79906. sType, pNext, referenceList0EntryCount, pReferenceList0Entries, referenceList1EntryCount, pReferenceList1Entries, pMemMgmtCtrlOperations );
  79907. }
  79908. # endif
  79909. # if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  79910. auto operator<=>( VideoEncodeH264ReferenceListsInfoEXT const & ) const = default;
  79911. # else
  79912. bool operator==( VideoEncodeH264ReferenceListsInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  79913. {
  79914. # if defined( VULKAN_HPP_USE_REFLECT )
  79915. return this->reflect() == rhs.reflect();
  79916. # else
  79917. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( referenceList0EntryCount == rhs.referenceList0EntryCount ) &&
  79918. ( pReferenceList0Entries == rhs.pReferenceList0Entries ) && ( referenceList1EntryCount == rhs.referenceList1EntryCount ) &&
  79919. ( pReferenceList1Entries == rhs.pReferenceList1Entries ) && ( pMemMgmtCtrlOperations == rhs.pMemMgmtCtrlOperations );
  79920. # endif
  79921. }
  79922. bool operator!=( VideoEncodeH264ReferenceListsInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  79923. {
  79924. return !operator==( rhs );
  79925. }
  79926. # endif
  79927. public:
  79928. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eVideoEncodeH264ReferenceListsInfoEXT;
  79929. const void * pNext = {};
  79930. uint8_t referenceList0EntryCount = {};
  79931. const VULKAN_HPP_NAMESPACE::VideoEncodeH264DpbSlotInfoEXT * pReferenceList0Entries = {};
  79932. uint8_t referenceList1EntryCount = {};
  79933. const VULKAN_HPP_NAMESPACE::VideoEncodeH264DpbSlotInfoEXT * pReferenceList1Entries = {};
  79934. const StdVideoEncodeH264RefMemMgmtCtrlOperations * pMemMgmtCtrlOperations = {};
  79935. };
  79936. template <>
  79937. struct CppType<StructureType, StructureType::eVideoEncodeH264ReferenceListsInfoEXT>
  79938. {
  79939. using Type = VideoEncodeH264ReferenceListsInfoEXT;
  79940. };
  79941. #endif /*VK_ENABLE_BETA_EXTENSIONS*/
  79942. #if defined( VK_ENABLE_BETA_EXTENSIONS )
  79943. struct VideoEncodeH264NaluSliceInfoEXT
  79944. {
  79945. using NativeType = VkVideoEncodeH264NaluSliceInfoEXT;
  79946. static const bool allowDuplicate = false;
  79947. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eVideoEncodeH264NaluSliceInfoEXT;
  79948. # if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  79949. VULKAN_HPP_CONSTEXPR VideoEncodeH264NaluSliceInfoEXT( uint32_t mbCount_ = {},
  79950. const VULKAN_HPP_NAMESPACE::VideoEncodeH264ReferenceListsInfoEXT * pReferenceFinalLists_ = {},
  79951. const StdVideoEncodeH264SliceHeader * pSliceHeaderStd_ = {},
  79952. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  79953. : pNext( pNext_ )
  79954. , mbCount( mbCount_ )
  79955. , pReferenceFinalLists( pReferenceFinalLists_ )
  79956. , pSliceHeaderStd( pSliceHeaderStd_ )
  79957. {
  79958. }
  79959. VULKAN_HPP_CONSTEXPR VideoEncodeH264NaluSliceInfoEXT( VideoEncodeH264NaluSliceInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  79960. VideoEncodeH264NaluSliceInfoEXT( VkVideoEncodeH264NaluSliceInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  79961. : VideoEncodeH264NaluSliceInfoEXT( *reinterpret_cast<VideoEncodeH264NaluSliceInfoEXT const *>( &rhs ) )
  79962. {
  79963. }
  79964. # endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  79965. VideoEncodeH264NaluSliceInfoEXT & operator=( VideoEncodeH264NaluSliceInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  79966. VideoEncodeH264NaluSliceInfoEXT & operator=( VkVideoEncodeH264NaluSliceInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  79967. {
  79968. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::VideoEncodeH264NaluSliceInfoEXT const *>( &rhs );
  79969. return *this;
  79970. }
  79971. # if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  79972. VULKAN_HPP_CONSTEXPR_14 VideoEncodeH264NaluSliceInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  79973. {
  79974. pNext = pNext_;
  79975. return *this;
  79976. }
  79977. VULKAN_HPP_CONSTEXPR_14 VideoEncodeH264NaluSliceInfoEXT & setMbCount( uint32_t mbCount_ ) VULKAN_HPP_NOEXCEPT
  79978. {
  79979. mbCount = mbCount_;
  79980. return *this;
  79981. }
  79982. VULKAN_HPP_CONSTEXPR_14 VideoEncodeH264NaluSliceInfoEXT &
  79983. setPReferenceFinalLists( const VULKAN_HPP_NAMESPACE::VideoEncodeH264ReferenceListsInfoEXT * pReferenceFinalLists_ ) VULKAN_HPP_NOEXCEPT
  79984. {
  79985. pReferenceFinalLists = pReferenceFinalLists_;
  79986. return *this;
  79987. }
  79988. VULKAN_HPP_CONSTEXPR_14 VideoEncodeH264NaluSliceInfoEXT & setPSliceHeaderStd( const StdVideoEncodeH264SliceHeader * pSliceHeaderStd_ ) VULKAN_HPP_NOEXCEPT
  79989. {
  79990. pSliceHeaderStd = pSliceHeaderStd_;
  79991. return *this;
  79992. }
  79993. # endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  79994. operator VkVideoEncodeH264NaluSliceInfoEXT const &() const VULKAN_HPP_NOEXCEPT
  79995. {
  79996. return *reinterpret_cast<const VkVideoEncodeH264NaluSliceInfoEXT *>( this );
  79997. }
  79998. operator VkVideoEncodeH264NaluSliceInfoEXT &() VULKAN_HPP_NOEXCEPT
  79999. {
  80000. return *reinterpret_cast<VkVideoEncodeH264NaluSliceInfoEXT *>( this );
  80001. }
  80002. # if defined( VULKAN_HPP_USE_REFLECT )
  80003. # if 14 <= VULKAN_HPP_CPP_VERSION
  80004. auto
  80005. # else
  80006. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  80007. const void * const &,
  80008. uint32_t const &,
  80009. const VULKAN_HPP_NAMESPACE::VideoEncodeH264ReferenceListsInfoEXT * const &,
  80010. const StdVideoEncodeH264SliceHeader * const &>
  80011. # endif
  80012. reflect() const VULKAN_HPP_NOEXCEPT
  80013. {
  80014. return std::tie( sType, pNext, mbCount, pReferenceFinalLists, pSliceHeaderStd );
  80015. }
  80016. # endif
  80017. # if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  80018. auto operator<=>( VideoEncodeH264NaluSliceInfoEXT const & ) const = default;
  80019. # else
  80020. bool operator==( VideoEncodeH264NaluSliceInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  80021. {
  80022. # if defined( VULKAN_HPP_USE_REFLECT )
  80023. return this->reflect() == rhs.reflect();
  80024. # else
  80025. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( mbCount == rhs.mbCount ) && ( pReferenceFinalLists == rhs.pReferenceFinalLists ) &&
  80026. ( pSliceHeaderStd == rhs.pSliceHeaderStd );
  80027. # endif
  80028. }
  80029. bool operator!=( VideoEncodeH264NaluSliceInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  80030. {
  80031. return !operator==( rhs );
  80032. }
  80033. # endif
  80034. public:
  80035. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eVideoEncodeH264NaluSliceInfoEXT;
  80036. const void * pNext = {};
  80037. uint32_t mbCount = {};
  80038. const VULKAN_HPP_NAMESPACE::VideoEncodeH264ReferenceListsInfoEXT * pReferenceFinalLists = {};
  80039. const StdVideoEncodeH264SliceHeader * pSliceHeaderStd = {};
  80040. };
  80041. template <>
  80042. struct CppType<StructureType, StructureType::eVideoEncodeH264NaluSliceInfoEXT>
  80043. {
  80044. using Type = VideoEncodeH264NaluSliceInfoEXT;
  80045. };
  80046. #endif /*VK_ENABLE_BETA_EXTENSIONS*/
  80047. #if defined( VK_ENABLE_BETA_EXTENSIONS )
  80048. struct VideoEncodeH264ProfileInfoEXT
  80049. {
  80050. using NativeType = VkVideoEncodeH264ProfileInfoEXT;
  80051. static const bool allowDuplicate = false;
  80052. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eVideoEncodeH264ProfileInfoEXT;
  80053. # if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  80054. VULKAN_HPP_CONSTEXPR VideoEncodeH264ProfileInfoEXT( StdVideoH264ProfileIdc stdProfileIdc_ = {}, const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  80055. : pNext( pNext_ )
  80056. , stdProfileIdc( stdProfileIdc_ )
  80057. {
  80058. }
  80059. VULKAN_HPP_CONSTEXPR VideoEncodeH264ProfileInfoEXT( VideoEncodeH264ProfileInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  80060. VideoEncodeH264ProfileInfoEXT( VkVideoEncodeH264ProfileInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  80061. : VideoEncodeH264ProfileInfoEXT( *reinterpret_cast<VideoEncodeH264ProfileInfoEXT const *>( &rhs ) )
  80062. {
  80063. }
  80064. # endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  80065. VideoEncodeH264ProfileInfoEXT & operator=( VideoEncodeH264ProfileInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  80066. VideoEncodeH264ProfileInfoEXT & operator=( VkVideoEncodeH264ProfileInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  80067. {
  80068. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::VideoEncodeH264ProfileInfoEXT const *>( &rhs );
  80069. return *this;
  80070. }
  80071. # if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  80072. VULKAN_HPP_CONSTEXPR_14 VideoEncodeH264ProfileInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  80073. {
  80074. pNext = pNext_;
  80075. return *this;
  80076. }
  80077. VULKAN_HPP_CONSTEXPR_14 VideoEncodeH264ProfileInfoEXT & setStdProfileIdc( StdVideoH264ProfileIdc stdProfileIdc_ ) VULKAN_HPP_NOEXCEPT
  80078. {
  80079. stdProfileIdc = stdProfileIdc_;
  80080. return *this;
  80081. }
  80082. # endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  80083. operator VkVideoEncodeH264ProfileInfoEXT const &() const VULKAN_HPP_NOEXCEPT
  80084. {
  80085. return *reinterpret_cast<const VkVideoEncodeH264ProfileInfoEXT *>( this );
  80086. }
  80087. operator VkVideoEncodeH264ProfileInfoEXT &() VULKAN_HPP_NOEXCEPT
  80088. {
  80089. return *reinterpret_cast<VkVideoEncodeH264ProfileInfoEXT *>( this );
  80090. }
  80091. # if defined( VULKAN_HPP_USE_REFLECT )
  80092. # if 14 <= VULKAN_HPP_CPP_VERSION
  80093. auto
  80094. # else
  80095. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, StdVideoH264ProfileIdc const &>
  80096. # endif
  80097. reflect() const VULKAN_HPP_NOEXCEPT
  80098. {
  80099. return std::tie( sType, pNext, stdProfileIdc );
  80100. }
  80101. # endif
  80102. # if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  80103. std::strong_ordering operator<=>( VideoEncodeH264ProfileInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  80104. {
  80105. if ( auto cmp = sType <=> rhs.sType; cmp != 0 )
  80106. return cmp;
  80107. if ( auto cmp = pNext <=> rhs.pNext; cmp != 0 )
  80108. return cmp;
  80109. if ( auto cmp = memcmp( &stdProfileIdc, &rhs.stdProfileIdc, sizeof( StdVideoH264ProfileIdc ) ); cmp != 0 )
  80110. return ( cmp < 0 ) ? std::strong_ordering::less : std::strong_ordering::greater;
  80111. return std::strong_ordering::equivalent;
  80112. }
  80113. # endif
  80114. bool operator==( VideoEncodeH264ProfileInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  80115. {
  80116. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( memcmp( &stdProfileIdc, &rhs.stdProfileIdc, sizeof( StdVideoH264ProfileIdc ) ) == 0 );
  80117. }
  80118. bool operator!=( VideoEncodeH264ProfileInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  80119. {
  80120. return !operator==( rhs );
  80121. }
  80122. public:
  80123. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eVideoEncodeH264ProfileInfoEXT;
  80124. const void * pNext = {};
  80125. StdVideoH264ProfileIdc stdProfileIdc = {};
  80126. };
  80127. template <>
  80128. struct CppType<StructureType, StructureType::eVideoEncodeH264ProfileInfoEXT>
  80129. {
  80130. using Type = VideoEncodeH264ProfileInfoEXT;
  80131. };
  80132. #endif /*VK_ENABLE_BETA_EXTENSIONS*/
  80133. #if defined( VK_ENABLE_BETA_EXTENSIONS )
  80134. struct VideoEncodeH264QpEXT
  80135. {
  80136. using NativeType = VkVideoEncodeH264QpEXT;
  80137. # if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  80138. VULKAN_HPP_CONSTEXPR VideoEncodeH264QpEXT( int32_t qpI_ = {}, int32_t qpP_ = {}, int32_t qpB_ = {} ) VULKAN_HPP_NOEXCEPT
  80139. : qpI( qpI_ )
  80140. , qpP( qpP_ )
  80141. , qpB( qpB_ )
  80142. {
  80143. }
  80144. VULKAN_HPP_CONSTEXPR VideoEncodeH264QpEXT( VideoEncodeH264QpEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  80145. VideoEncodeH264QpEXT( VkVideoEncodeH264QpEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  80146. : VideoEncodeH264QpEXT( *reinterpret_cast<VideoEncodeH264QpEXT const *>( &rhs ) )
  80147. {
  80148. }
  80149. # endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  80150. VideoEncodeH264QpEXT & operator=( VideoEncodeH264QpEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  80151. VideoEncodeH264QpEXT & operator=( VkVideoEncodeH264QpEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  80152. {
  80153. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::VideoEncodeH264QpEXT const *>( &rhs );
  80154. return *this;
  80155. }
  80156. # if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  80157. VULKAN_HPP_CONSTEXPR_14 VideoEncodeH264QpEXT & setQpI( int32_t qpI_ ) VULKAN_HPP_NOEXCEPT
  80158. {
  80159. qpI = qpI_;
  80160. return *this;
  80161. }
  80162. VULKAN_HPP_CONSTEXPR_14 VideoEncodeH264QpEXT & setQpP( int32_t qpP_ ) VULKAN_HPP_NOEXCEPT
  80163. {
  80164. qpP = qpP_;
  80165. return *this;
  80166. }
  80167. VULKAN_HPP_CONSTEXPR_14 VideoEncodeH264QpEXT & setQpB( int32_t qpB_ ) VULKAN_HPP_NOEXCEPT
  80168. {
  80169. qpB = qpB_;
  80170. return *this;
  80171. }
  80172. # endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  80173. operator VkVideoEncodeH264QpEXT const &() const VULKAN_HPP_NOEXCEPT
  80174. {
  80175. return *reinterpret_cast<const VkVideoEncodeH264QpEXT *>( this );
  80176. }
  80177. operator VkVideoEncodeH264QpEXT &() VULKAN_HPP_NOEXCEPT
  80178. {
  80179. return *reinterpret_cast<VkVideoEncodeH264QpEXT *>( this );
  80180. }
  80181. # if defined( VULKAN_HPP_USE_REFLECT )
  80182. # if 14 <= VULKAN_HPP_CPP_VERSION
  80183. auto
  80184. # else
  80185. std::tuple<int32_t const &, int32_t const &, int32_t const &>
  80186. # endif
  80187. reflect() const VULKAN_HPP_NOEXCEPT
  80188. {
  80189. return std::tie( qpI, qpP, qpB );
  80190. }
  80191. # endif
  80192. # if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  80193. auto operator<=>( VideoEncodeH264QpEXT const & ) const = default;
  80194. # else
  80195. bool operator==( VideoEncodeH264QpEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  80196. {
  80197. # if defined( VULKAN_HPP_USE_REFLECT )
  80198. return this->reflect() == rhs.reflect();
  80199. # else
  80200. return ( qpI == rhs.qpI ) && ( qpP == rhs.qpP ) && ( qpB == rhs.qpB );
  80201. # endif
  80202. }
  80203. bool operator!=( VideoEncodeH264QpEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  80204. {
  80205. return !operator==( rhs );
  80206. }
  80207. # endif
  80208. public:
  80209. int32_t qpI = {};
  80210. int32_t qpP = {};
  80211. int32_t qpB = {};
  80212. };
  80213. #endif /*VK_ENABLE_BETA_EXTENSIONS*/
  80214. #if defined( VK_ENABLE_BETA_EXTENSIONS )
  80215. struct VideoEncodeH264RateControlInfoEXT
  80216. {
  80217. using NativeType = VkVideoEncodeH264RateControlInfoEXT;
  80218. static const bool allowDuplicate = false;
  80219. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eVideoEncodeH264RateControlInfoEXT;
  80220. # if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  80221. VULKAN_HPP_CONSTEXPR VideoEncodeH264RateControlInfoEXT( uint32_t gopFrameCount_ = {},
  80222. uint32_t idrPeriod_ = {},
  80223. uint32_t consecutiveBFrameCount_ = {},
  80224. VULKAN_HPP_NAMESPACE::VideoEncodeH264RateControlStructureEXT rateControlStructure_ =
  80225. VULKAN_HPP_NAMESPACE::VideoEncodeH264RateControlStructureEXT::eUnknown,
  80226. uint8_t temporalLayerCount_ = {},
  80227. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  80228. : pNext( pNext_ )
  80229. , gopFrameCount( gopFrameCount_ )
  80230. , idrPeriod( idrPeriod_ )
  80231. , consecutiveBFrameCount( consecutiveBFrameCount_ )
  80232. , rateControlStructure( rateControlStructure_ )
  80233. , temporalLayerCount( temporalLayerCount_ )
  80234. {
  80235. }
  80236. VULKAN_HPP_CONSTEXPR VideoEncodeH264RateControlInfoEXT( VideoEncodeH264RateControlInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  80237. VideoEncodeH264RateControlInfoEXT( VkVideoEncodeH264RateControlInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  80238. : VideoEncodeH264RateControlInfoEXT( *reinterpret_cast<VideoEncodeH264RateControlInfoEXT const *>( &rhs ) )
  80239. {
  80240. }
  80241. # endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  80242. VideoEncodeH264RateControlInfoEXT & operator=( VideoEncodeH264RateControlInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  80243. VideoEncodeH264RateControlInfoEXT & operator=( VkVideoEncodeH264RateControlInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  80244. {
  80245. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::VideoEncodeH264RateControlInfoEXT const *>( &rhs );
  80246. return *this;
  80247. }
  80248. # if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  80249. VULKAN_HPP_CONSTEXPR_14 VideoEncodeH264RateControlInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  80250. {
  80251. pNext = pNext_;
  80252. return *this;
  80253. }
  80254. VULKAN_HPP_CONSTEXPR_14 VideoEncodeH264RateControlInfoEXT & setGopFrameCount( uint32_t gopFrameCount_ ) VULKAN_HPP_NOEXCEPT
  80255. {
  80256. gopFrameCount = gopFrameCount_;
  80257. return *this;
  80258. }
  80259. VULKAN_HPP_CONSTEXPR_14 VideoEncodeH264RateControlInfoEXT & setIdrPeriod( uint32_t idrPeriod_ ) VULKAN_HPP_NOEXCEPT
  80260. {
  80261. idrPeriod = idrPeriod_;
  80262. return *this;
  80263. }
  80264. VULKAN_HPP_CONSTEXPR_14 VideoEncodeH264RateControlInfoEXT & setConsecutiveBFrameCount( uint32_t consecutiveBFrameCount_ ) VULKAN_HPP_NOEXCEPT
  80265. {
  80266. consecutiveBFrameCount = consecutiveBFrameCount_;
  80267. return *this;
  80268. }
  80269. VULKAN_HPP_CONSTEXPR_14 VideoEncodeH264RateControlInfoEXT &
  80270. setRateControlStructure( VULKAN_HPP_NAMESPACE::VideoEncodeH264RateControlStructureEXT rateControlStructure_ ) VULKAN_HPP_NOEXCEPT
  80271. {
  80272. rateControlStructure = rateControlStructure_;
  80273. return *this;
  80274. }
  80275. VULKAN_HPP_CONSTEXPR_14 VideoEncodeH264RateControlInfoEXT & setTemporalLayerCount( uint8_t temporalLayerCount_ ) VULKAN_HPP_NOEXCEPT
  80276. {
  80277. temporalLayerCount = temporalLayerCount_;
  80278. return *this;
  80279. }
  80280. # endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  80281. operator VkVideoEncodeH264RateControlInfoEXT const &() const VULKAN_HPP_NOEXCEPT
  80282. {
  80283. return *reinterpret_cast<const VkVideoEncodeH264RateControlInfoEXT *>( this );
  80284. }
  80285. operator VkVideoEncodeH264RateControlInfoEXT &() VULKAN_HPP_NOEXCEPT
  80286. {
  80287. return *reinterpret_cast<VkVideoEncodeH264RateControlInfoEXT *>( this );
  80288. }
  80289. # if defined( VULKAN_HPP_USE_REFLECT )
  80290. # if 14 <= VULKAN_HPP_CPP_VERSION
  80291. auto
  80292. # else
  80293. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  80294. const void * const &,
  80295. uint32_t const &,
  80296. uint32_t const &,
  80297. uint32_t const &,
  80298. VULKAN_HPP_NAMESPACE::VideoEncodeH264RateControlStructureEXT const &,
  80299. uint8_t const &>
  80300. # endif
  80301. reflect() const VULKAN_HPP_NOEXCEPT
  80302. {
  80303. return std::tie( sType, pNext, gopFrameCount, idrPeriod, consecutiveBFrameCount, rateControlStructure, temporalLayerCount );
  80304. }
  80305. # endif
  80306. # if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  80307. auto operator<=>( VideoEncodeH264RateControlInfoEXT const & ) const = default;
  80308. # else
  80309. bool operator==( VideoEncodeH264RateControlInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  80310. {
  80311. # if defined( VULKAN_HPP_USE_REFLECT )
  80312. return this->reflect() == rhs.reflect();
  80313. # else
  80314. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( gopFrameCount == rhs.gopFrameCount ) && ( idrPeriod == rhs.idrPeriod ) &&
  80315. ( consecutiveBFrameCount == rhs.consecutiveBFrameCount ) && ( rateControlStructure == rhs.rateControlStructure ) &&
  80316. ( temporalLayerCount == rhs.temporalLayerCount );
  80317. # endif
  80318. }
  80319. bool operator!=( VideoEncodeH264RateControlInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  80320. {
  80321. return !operator==( rhs );
  80322. }
  80323. # endif
  80324. public:
  80325. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eVideoEncodeH264RateControlInfoEXT;
  80326. const void * pNext = {};
  80327. uint32_t gopFrameCount = {};
  80328. uint32_t idrPeriod = {};
  80329. uint32_t consecutiveBFrameCount = {};
  80330. VULKAN_HPP_NAMESPACE::VideoEncodeH264RateControlStructureEXT rateControlStructure = VULKAN_HPP_NAMESPACE::VideoEncodeH264RateControlStructureEXT::eUnknown;
  80331. uint8_t temporalLayerCount = {};
  80332. };
  80333. template <>
  80334. struct CppType<StructureType, StructureType::eVideoEncodeH264RateControlInfoEXT>
  80335. {
  80336. using Type = VideoEncodeH264RateControlInfoEXT;
  80337. };
  80338. #endif /*VK_ENABLE_BETA_EXTENSIONS*/
  80339. #if defined( VK_ENABLE_BETA_EXTENSIONS )
  80340. struct VideoEncodeH264RateControlLayerInfoEXT
  80341. {
  80342. using NativeType = VkVideoEncodeH264RateControlLayerInfoEXT;
  80343. static const bool allowDuplicate = false;
  80344. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eVideoEncodeH264RateControlLayerInfoEXT;
  80345. # if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  80346. VULKAN_HPP_CONSTEXPR VideoEncodeH264RateControlLayerInfoEXT( uint8_t temporalLayerId_ = {},
  80347. VULKAN_HPP_NAMESPACE::Bool32 useInitialRcQp_ = {},
  80348. VULKAN_HPP_NAMESPACE::VideoEncodeH264QpEXT initialRcQp_ = {},
  80349. VULKAN_HPP_NAMESPACE::Bool32 useMinQp_ = {},
  80350. VULKAN_HPP_NAMESPACE::VideoEncodeH264QpEXT minQp_ = {},
  80351. VULKAN_HPP_NAMESPACE::Bool32 useMaxQp_ = {},
  80352. VULKAN_HPP_NAMESPACE::VideoEncodeH264QpEXT maxQp_ = {},
  80353. VULKAN_HPP_NAMESPACE::Bool32 useMaxFrameSize_ = {},
  80354. VULKAN_HPP_NAMESPACE::VideoEncodeH264FrameSizeEXT maxFrameSize_ = {},
  80355. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  80356. : pNext( pNext_ )
  80357. , temporalLayerId( temporalLayerId_ )
  80358. , useInitialRcQp( useInitialRcQp_ )
  80359. , initialRcQp( initialRcQp_ )
  80360. , useMinQp( useMinQp_ )
  80361. , minQp( minQp_ )
  80362. , useMaxQp( useMaxQp_ )
  80363. , maxQp( maxQp_ )
  80364. , useMaxFrameSize( useMaxFrameSize_ )
  80365. , maxFrameSize( maxFrameSize_ )
  80366. {
  80367. }
  80368. VULKAN_HPP_CONSTEXPR VideoEncodeH264RateControlLayerInfoEXT( VideoEncodeH264RateControlLayerInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  80369. VideoEncodeH264RateControlLayerInfoEXT( VkVideoEncodeH264RateControlLayerInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  80370. : VideoEncodeH264RateControlLayerInfoEXT( *reinterpret_cast<VideoEncodeH264RateControlLayerInfoEXT const *>( &rhs ) )
  80371. {
  80372. }
  80373. # endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  80374. VideoEncodeH264RateControlLayerInfoEXT & operator=( VideoEncodeH264RateControlLayerInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  80375. VideoEncodeH264RateControlLayerInfoEXT & operator=( VkVideoEncodeH264RateControlLayerInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  80376. {
  80377. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::VideoEncodeH264RateControlLayerInfoEXT const *>( &rhs );
  80378. return *this;
  80379. }
  80380. # if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  80381. VULKAN_HPP_CONSTEXPR_14 VideoEncodeH264RateControlLayerInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  80382. {
  80383. pNext = pNext_;
  80384. return *this;
  80385. }
  80386. VULKAN_HPP_CONSTEXPR_14 VideoEncodeH264RateControlLayerInfoEXT & setTemporalLayerId( uint8_t temporalLayerId_ ) VULKAN_HPP_NOEXCEPT
  80387. {
  80388. temporalLayerId = temporalLayerId_;
  80389. return *this;
  80390. }
  80391. VULKAN_HPP_CONSTEXPR_14 VideoEncodeH264RateControlLayerInfoEXT & setUseInitialRcQp( VULKAN_HPP_NAMESPACE::Bool32 useInitialRcQp_ ) VULKAN_HPP_NOEXCEPT
  80392. {
  80393. useInitialRcQp = useInitialRcQp_;
  80394. return *this;
  80395. }
  80396. VULKAN_HPP_CONSTEXPR_14 VideoEncodeH264RateControlLayerInfoEXT &
  80397. setInitialRcQp( VULKAN_HPP_NAMESPACE::VideoEncodeH264QpEXT const & initialRcQp_ ) VULKAN_HPP_NOEXCEPT
  80398. {
  80399. initialRcQp = initialRcQp_;
  80400. return *this;
  80401. }
  80402. VULKAN_HPP_CONSTEXPR_14 VideoEncodeH264RateControlLayerInfoEXT & setUseMinQp( VULKAN_HPP_NAMESPACE::Bool32 useMinQp_ ) VULKAN_HPP_NOEXCEPT
  80403. {
  80404. useMinQp = useMinQp_;
  80405. return *this;
  80406. }
  80407. VULKAN_HPP_CONSTEXPR_14 VideoEncodeH264RateControlLayerInfoEXT & setMinQp( VULKAN_HPP_NAMESPACE::VideoEncodeH264QpEXT const & minQp_ ) VULKAN_HPP_NOEXCEPT
  80408. {
  80409. minQp = minQp_;
  80410. return *this;
  80411. }
  80412. VULKAN_HPP_CONSTEXPR_14 VideoEncodeH264RateControlLayerInfoEXT & setUseMaxQp( VULKAN_HPP_NAMESPACE::Bool32 useMaxQp_ ) VULKAN_HPP_NOEXCEPT
  80413. {
  80414. useMaxQp = useMaxQp_;
  80415. return *this;
  80416. }
  80417. VULKAN_HPP_CONSTEXPR_14 VideoEncodeH264RateControlLayerInfoEXT & setMaxQp( VULKAN_HPP_NAMESPACE::VideoEncodeH264QpEXT const & maxQp_ ) VULKAN_HPP_NOEXCEPT
  80418. {
  80419. maxQp = maxQp_;
  80420. return *this;
  80421. }
  80422. VULKAN_HPP_CONSTEXPR_14 VideoEncodeH264RateControlLayerInfoEXT & setUseMaxFrameSize( VULKAN_HPP_NAMESPACE::Bool32 useMaxFrameSize_ ) VULKAN_HPP_NOEXCEPT
  80423. {
  80424. useMaxFrameSize = useMaxFrameSize_;
  80425. return *this;
  80426. }
  80427. VULKAN_HPP_CONSTEXPR_14 VideoEncodeH264RateControlLayerInfoEXT &
  80428. setMaxFrameSize( VULKAN_HPP_NAMESPACE::VideoEncodeH264FrameSizeEXT const & maxFrameSize_ ) VULKAN_HPP_NOEXCEPT
  80429. {
  80430. maxFrameSize = maxFrameSize_;
  80431. return *this;
  80432. }
  80433. # endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  80434. operator VkVideoEncodeH264RateControlLayerInfoEXT const &() const VULKAN_HPP_NOEXCEPT
  80435. {
  80436. return *reinterpret_cast<const VkVideoEncodeH264RateControlLayerInfoEXT *>( this );
  80437. }
  80438. operator VkVideoEncodeH264RateControlLayerInfoEXT &() VULKAN_HPP_NOEXCEPT
  80439. {
  80440. return *reinterpret_cast<VkVideoEncodeH264RateControlLayerInfoEXT *>( this );
  80441. }
  80442. # if defined( VULKAN_HPP_USE_REFLECT )
  80443. # if 14 <= VULKAN_HPP_CPP_VERSION
  80444. auto
  80445. # else
  80446. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  80447. const void * const &,
  80448. uint8_t const &,
  80449. VULKAN_HPP_NAMESPACE::Bool32 const &,
  80450. VULKAN_HPP_NAMESPACE::VideoEncodeH264QpEXT const &,
  80451. VULKAN_HPP_NAMESPACE::Bool32 const &,
  80452. VULKAN_HPP_NAMESPACE::VideoEncodeH264QpEXT const &,
  80453. VULKAN_HPP_NAMESPACE::Bool32 const &,
  80454. VULKAN_HPP_NAMESPACE::VideoEncodeH264QpEXT const &,
  80455. VULKAN_HPP_NAMESPACE::Bool32 const &,
  80456. VULKAN_HPP_NAMESPACE::VideoEncodeH264FrameSizeEXT const &>
  80457. # endif
  80458. reflect() const VULKAN_HPP_NOEXCEPT
  80459. {
  80460. return std::tie( sType, pNext, temporalLayerId, useInitialRcQp, initialRcQp, useMinQp, minQp, useMaxQp, maxQp, useMaxFrameSize, maxFrameSize );
  80461. }
  80462. # endif
  80463. # if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  80464. auto operator<=>( VideoEncodeH264RateControlLayerInfoEXT const & ) const = default;
  80465. # else
  80466. bool operator==( VideoEncodeH264RateControlLayerInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  80467. {
  80468. # if defined( VULKAN_HPP_USE_REFLECT )
  80469. return this->reflect() == rhs.reflect();
  80470. # else
  80471. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( temporalLayerId == rhs.temporalLayerId ) && ( useInitialRcQp == rhs.useInitialRcQp ) &&
  80472. ( initialRcQp == rhs.initialRcQp ) && ( useMinQp == rhs.useMinQp ) && ( minQp == rhs.minQp ) && ( useMaxQp == rhs.useMaxQp ) &&
  80473. ( maxQp == rhs.maxQp ) && ( useMaxFrameSize == rhs.useMaxFrameSize ) && ( maxFrameSize == rhs.maxFrameSize );
  80474. # endif
  80475. }
  80476. bool operator!=( VideoEncodeH264RateControlLayerInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  80477. {
  80478. return !operator==( rhs );
  80479. }
  80480. # endif
  80481. public:
  80482. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eVideoEncodeH264RateControlLayerInfoEXT;
  80483. const void * pNext = {};
  80484. uint8_t temporalLayerId = {};
  80485. VULKAN_HPP_NAMESPACE::Bool32 useInitialRcQp = {};
  80486. VULKAN_HPP_NAMESPACE::VideoEncodeH264QpEXT initialRcQp = {};
  80487. VULKAN_HPP_NAMESPACE::Bool32 useMinQp = {};
  80488. VULKAN_HPP_NAMESPACE::VideoEncodeH264QpEXT minQp = {};
  80489. VULKAN_HPP_NAMESPACE::Bool32 useMaxQp = {};
  80490. VULKAN_HPP_NAMESPACE::VideoEncodeH264QpEXT maxQp = {};
  80491. VULKAN_HPP_NAMESPACE::Bool32 useMaxFrameSize = {};
  80492. VULKAN_HPP_NAMESPACE::VideoEncodeH264FrameSizeEXT maxFrameSize = {};
  80493. };
  80494. template <>
  80495. struct CppType<StructureType, StructureType::eVideoEncodeH264RateControlLayerInfoEXT>
  80496. {
  80497. using Type = VideoEncodeH264RateControlLayerInfoEXT;
  80498. };
  80499. #endif /*VK_ENABLE_BETA_EXTENSIONS*/
  80500. #if defined( VK_ENABLE_BETA_EXTENSIONS )
  80501. struct VideoEncodeH264SessionParametersAddInfoEXT
  80502. {
  80503. using NativeType = VkVideoEncodeH264SessionParametersAddInfoEXT;
  80504. static const bool allowDuplicate = false;
  80505. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eVideoEncodeH264SessionParametersAddInfoEXT;
  80506. # if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  80507. VULKAN_HPP_CONSTEXPR VideoEncodeH264SessionParametersAddInfoEXT( uint32_t spsStdCount_ = {},
  80508. const StdVideoH264SequenceParameterSet * pSpsStd_ = {},
  80509. uint32_t ppsStdCount_ = {},
  80510. const StdVideoH264PictureParameterSet * pPpsStd_ = {},
  80511. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  80512. : pNext( pNext_ )
  80513. , spsStdCount( spsStdCount_ )
  80514. , pSpsStd( pSpsStd_ )
  80515. , ppsStdCount( ppsStdCount_ )
  80516. , pPpsStd( pPpsStd_ )
  80517. {
  80518. }
  80519. VULKAN_HPP_CONSTEXPR VideoEncodeH264SessionParametersAddInfoEXT( VideoEncodeH264SessionParametersAddInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  80520. VideoEncodeH264SessionParametersAddInfoEXT( VkVideoEncodeH264SessionParametersAddInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  80521. : VideoEncodeH264SessionParametersAddInfoEXT( *reinterpret_cast<VideoEncodeH264SessionParametersAddInfoEXT const *>( &rhs ) )
  80522. {
  80523. }
  80524. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  80525. VideoEncodeH264SessionParametersAddInfoEXT( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const StdVideoH264SequenceParameterSet> const & spsStd_,
  80526. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const StdVideoH264PictureParameterSet> const & ppsStd_ = {},
  80527. const void * pNext_ = nullptr )
  80528. : pNext( pNext_ )
  80529. , spsStdCount( static_cast<uint32_t>( spsStd_.size() ) )
  80530. , pSpsStd( spsStd_.data() )
  80531. , ppsStdCount( static_cast<uint32_t>( ppsStd_.size() ) )
  80532. , pPpsStd( ppsStd_.data() )
  80533. {
  80534. }
  80535. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  80536. # endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  80537. VideoEncodeH264SessionParametersAddInfoEXT & operator=( VideoEncodeH264SessionParametersAddInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  80538. VideoEncodeH264SessionParametersAddInfoEXT & operator=( VkVideoEncodeH264SessionParametersAddInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  80539. {
  80540. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::VideoEncodeH264SessionParametersAddInfoEXT const *>( &rhs );
  80541. return *this;
  80542. }
  80543. # if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  80544. VULKAN_HPP_CONSTEXPR_14 VideoEncodeH264SessionParametersAddInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  80545. {
  80546. pNext = pNext_;
  80547. return *this;
  80548. }
  80549. VULKAN_HPP_CONSTEXPR_14 VideoEncodeH264SessionParametersAddInfoEXT & setSpsStdCount( uint32_t spsStdCount_ ) VULKAN_HPP_NOEXCEPT
  80550. {
  80551. spsStdCount = spsStdCount_;
  80552. return *this;
  80553. }
  80554. VULKAN_HPP_CONSTEXPR_14 VideoEncodeH264SessionParametersAddInfoEXT & setPSpsStd( const StdVideoH264SequenceParameterSet * pSpsStd_ ) VULKAN_HPP_NOEXCEPT
  80555. {
  80556. pSpsStd = pSpsStd_;
  80557. return *this;
  80558. }
  80559. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  80560. VideoEncodeH264SessionParametersAddInfoEXT &
  80561. setSpsStd( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const StdVideoH264SequenceParameterSet> const & spsStd_ ) VULKAN_HPP_NOEXCEPT
  80562. {
  80563. spsStdCount = static_cast<uint32_t>( spsStd_.size() );
  80564. pSpsStd = spsStd_.data();
  80565. return *this;
  80566. }
  80567. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  80568. VULKAN_HPP_CONSTEXPR_14 VideoEncodeH264SessionParametersAddInfoEXT & setPpsStdCount( uint32_t ppsStdCount_ ) VULKAN_HPP_NOEXCEPT
  80569. {
  80570. ppsStdCount = ppsStdCount_;
  80571. return *this;
  80572. }
  80573. VULKAN_HPP_CONSTEXPR_14 VideoEncodeH264SessionParametersAddInfoEXT & setPPpsStd( const StdVideoH264PictureParameterSet * pPpsStd_ ) VULKAN_HPP_NOEXCEPT
  80574. {
  80575. pPpsStd = pPpsStd_;
  80576. return *this;
  80577. }
  80578. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  80579. VideoEncodeH264SessionParametersAddInfoEXT &
  80580. setPpsStd( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const StdVideoH264PictureParameterSet> const & ppsStd_ ) VULKAN_HPP_NOEXCEPT
  80581. {
  80582. ppsStdCount = static_cast<uint32_t>( ppsStd_.size() );
  80583. pPpsStd = ppsStd_.data();
  80584. return *this;
  80585. }
  80586. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  80587. # endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  80588. operator VkVideoEncodeH264SessionParametersAddInfoEXT const &() const VULKAN_HPP_NOEXCEPT
  80589. {
  80590. return *reinterpret_cast<const VkVideoEncodeH264SessionParametersAddInfoEXT *>( this );
  80591. }
  80592. operator VkVideoEncodeH264SessionParametersAddInfoEXT &() VULKAN_HPP_NOEXCEPT
  80593. {
  80594. return *reinterpret_cast<VkVideoEncodeH264SessionParametersAddInfoEXT *>( this );
  80595. }
  80596. # if defined( VULKAN_HPP_USE_REFLECT )
  80597. # if 14 <= VULKAN_HPP_CPP_VERSION
  80598. auto
  80599. # else
  80600. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  80601. const void * const &,
  80602. uint32_t const &,
  80603. const StdVideoH264SequenceParameterSet * const &,
  80604. uint32_t const &,
  80605. const StdVideoH264PictureParameterSet * const &>
  80606. # endif
  80607. reflect() const VULKAN_HPP_NOEXCEPT
  80608. {
  80609. return std::tie( sType, pNext, spsStdCount, pSpsStd, ppsStdCount, pPpsStd );
  80610. }
  80611. # endif
  80612. # if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  80613. auto operator<=>( VideoEncodeH264SessionParametersAddInfoEXT const & ) const = default;
  80614. # else
  80615. bool operator==( VideoEncodeH264SessionParametersAddInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  80616. {
  80617. # if defined( VULKAN_HPP_USE_REFLECT )
  80618. return this->reflect() == rhs.reflect();
  80619. # else
  80620. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( spsStdCount == rhs.spsStdCount ) && ( pSpsStd == rhs.pSpsStd ) &&
  80621. ( ppsStdCount == rhs.ppsStdCount ) && ( pPpsStd == rhs.pPpsStd );
  80622. # endif
  80623. }
  80624. bool operator!=( VideoEncodeH264SessionParametersAddInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  80625. {
  80626. return !operator==( rhs );
  80627. }
  80628. # endif
  80629. public:
  80630. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eVideoEncodeH264SessionParametersAddInfoEXT;
  80631. const void * pNext = {};
  80632. uint32_t spsStdCount = {};
  80633. const StdVideoH264SequenceParameterSet * pSpsStd = {};
  80634. uint32_t ppsStdCount = {};
  80635. const StdVideoH264PictureParameterSet * pPpsStd = {};
  80636. };
  80637. template <>
  80638. struct CppType<StructureType, StructureType::eVideoEncodeH264SessionParametersAddInfoEXT>
  80639. {
  80640. using Type = VideoEncodeH264SessionParametersAddInfoEXT;
  80641. };
  80642. #endif /*VK_ENABLE_BETA_EXTENSIONS*/
  80643. #if defined( VK_ENABLE_BETA_EXTENSIONS )
  80644. struct VideoEncodeH264SessionParametersCreateInfoEXT
  80645. {
  80646. using NativeType = VkVideoEncodeH264SessionParametersCreateInfoEXT;
  80647. static const bool allowDuplicate = false;
  80648. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eVideoEncodeH264SessionParametersCreateInfoEXT;
  80649. # if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  80650. VULKAN_HPP_CONSTEXPR
  80651. VideoEncodeH264SessionParametersCreateInfoEXT( uint32_t maxSpsStdCount_ = {},
  80652. uint32_t maxPpsStdCount_ = {},
  80653. const VULKAN_HPP_NAMESPACE::VideoEncodeH264SessionParametersAddInfoEXT * pParametersAddInfo_ = {},
  80654. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  80655. : pNext( pNext_ )
  80656. , maxSpsStdCount( maxSpsStdCount_ )
  80657. , maxPpsStdCount( maxPpsStdCount_ )
  80658. , pParametersAddInfo( pParametersAddInfo_ )
  80659. {
  80660. }
  80661. VULKAN_HPP_CONSTEXPR
  80662. VideoEncodeH264SessionParametersCreateInfoEXT( VideoEncodeH264SessionParametersCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  80663. VideoEncodeH264SessionParametersCreateInfoEXT( VkVideoEncodeH264SessionParametersCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  80664. : VideoEncodeH264SessionParametersCreateInfoEXT( *reinterpret_cast<VideoEncodeH264SessionParametersCreateInfoEXT const *>( &rhs ) )
  80665. {
  80666. }
  80667. # endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  80668. VideoEncodeH264SessionParametersCreateInfoEXT & operator=( VideoEncodeH264SessionParametersCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  80669. VideoEncodeH264SessionParametersCreateInfoEXT & operator=( VkVideoEncodeH264SessionParametersCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  80670. {
  80671. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::VideoEncodeH264SessionParametersCreateInfoEXT const *>( &rhs );
  80672. return *this;
  80673. }
  80674. # if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  80675. VULKAN_HPP_CONSTEXPR_14 VideoEncodeH264SessionParametersCreateInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  80676. {
  80677. pNext = pNext_;
  80678. return *this;
  80679. }
  80680. VULKAN_HPP_CONSTEXPR_14 VideoEncodeH264SessionParametersCreateInfoEXT & setMaxSpsStdCount( uint32_t maxSpsStdCount_ ) VULKAN_HPP_NOEXCEPT
  80681. {
  80682. maxSpsStdCount = maxSpsStdCount_;
  80683. return *this;
  80684. }
  80685. VULKAN_HPP_CONSTEXPR_14 VideoEncodeH264SessionParametersCreateInfoEXT & setMaxPpsStdCount( uint32_t maxPpsStdCount_ ) VULKAN_HPP_NOEXCEPT
  80686. {
  80687. maxPpsStdCount = maxPpsStdCount_;
  80688. return *this;
  80689. }
  80690. VULKAN_HPP_CONSTEXPR_14 VideoEncodeH264SessionParametersCreateInfoEXT &
  80691. setPParametersAddInfo( const VULKAN_HPP_NAMESPACE::VideoEncodeH264SessionParametersAddInfoEXT * pParametersAddInfo_ ) VULKAN_HPP_NOEXCEPT
  80692. {
  80693. pParametersAddInfo = pParametersAddInfo_;
  80694. return *this;
  80695. }
  80696. # endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  80697. operator VkVideoEncodeH264SessionParametersCreateInfoEXT const &() const VULKAN_HPP_NOEXCEPT
  80698. {
  80699. return *reinterpret_cast<const VkVideoEncodeH264SessionParametersCreateInfoEXT *>( this );
  80700. }
  80701. operator VkVideoEncodeH264SessionParametersCreateInfoEXT &() VULKAN_HPP_NOEXCEPT
  80702. {
  80703. return *reinterpret_cast<VkVideoEncodeH264SessionParametersCreateInfoEXT *>( this );
  80704. }
  80705. # if defined( VULKAN_HPP_USE_REFLECT )
  80706. # if 14 <= VULKAN_HPP_CPP_VERSION
  80707. auto
  80708. # else
  80709. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  80710. const void * const &,
  80711. uint32_t const &,
  80712. uint32_t const &,
  80713. const VULKAN_HPP_NAMESPACE::VideoEncodeH264SessionParametersAddInfoEXT * const &>
  80714. # endif
  80715. reflect() const VULKAN_HPP_NOEXCEPT
  80716. {
  80717. return std::tie( sType, pNext, maxSpsStdCount, maxPpsStdCount, pParametersAddInfo );
  80718. }
  80719. # endif
  80720. # if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  80721. auto operator<=>( VideoEncodeH264SessionParametersCreateInfoEXT const & ) const = default;
  80722. # else
  80723. bool operator==( VideoEncodeH264SessionParametersCreateInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  80724. {
  80725. # if defined( VULKAN_HPP_USE_REFLECT )
  80726. return this->reflect() == rhs.reflect();
  80727. # else
  80728. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( maxSpsStdCount == rhs.maxSpsStdCount ) && ( maxPpsStdCount == rhs.maxPpsStdCount ) &&
  80729. ( pParametersAddInfo == rhs.pParametersAddInfo );
  80730. # endif
  80731. }
  80732. bool operator!=( VideoEncodeH264SessionParametersCreateInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  80733. {
  80734. return !operator==( rhs );
  80735. }
  80736. # endif
  80737. public:
  80738. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eVideoEncodeH264SessionParametersCreateInfoEXT;
  80739. const void * pNext = {};
  80740. uint32_t maxSpsStdCount = {};
  80741. uint32_t maxPpsStdCount = {};
  80742. const VULKAN_HPP_NAMESPACE::VideoEncodeH264SessionParametersAddInfoEXT * pParametersAddInfo = {};
  80743. };
  80744. template <>
  80745. struct CppType<StructureType, StructureType::eVideoEncodeH264SessionParametersCreateInfoEXT>
  80746. {
  80747. using Type = VideoEncodeH264SessionParametersCreateInfoEXT;
  80748. };
  80749. #endif /*VK_ENABLE_BETA_EXTENSIONS*/
  80750. #if defined( VK_ENABLE_BETA_EXTENSIONS )
  80751. struct VideoEncodeH264VclFrameInfoEXT
  80752. {
  80753. using NativeType = VkVideoEncodeH264VclFrameInfoEXT;
  80754. static const bool allowDuplicate = false;
  80755. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eVideoEncodeH264VclFrameInfoEXT;
  80756. # if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  80757. VULKAN_HPP_CONSTEXPR VideoEncodeH264VclFrameInfoEXT( const VULKAN_HPP_NAMESPACE::VideoEncodeH264ReferenceListsInfoEXT * pReferenceFinalLists_ = {},
  80758. uint32_t naluSliceEntryCount_ = {},
  80759. const VULKAN_HPP_NAMESPACE::VideoEncodeH264NaluSliceInfoEXT * pNaluSliceEntries_ = {},
  80760. const StdVideoEncodeH264PictureInfo * pCurrentPictureInfo_ = {},
  80761. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  80762. : pNext( pNext_ )
  80763. , pReferenceFinalLists( pReferenceFinalLists_ )
  80764. , naluSliceEntryCount( naluSliceEntryCount_ )
  80765. , pNaluSliceEntries( pNaluSliceEntries_ )
  80766. , pCurrentPictureInfo( pCurrentPictureInfo_ )
  80767. {
  80768. }
  80769. VULKAN_HPP_CONSTEXPR VideoEncodeH264VclFrameInfoEXT( VideoEncodeH264VclFrameInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  80770. VideoEncodeH264VclFrameInfoEXT( VkVideoEncodeH264VclFrameInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  80771. : VideoEncodeH264VclFrameInfoEXT( *reinterpret_cast<VideoEncodeH264VclFrameInfoEXT const *>( &rhs ) )
  80772. {
  80773. }
  80774. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  80775. VideoEncodeH264VclFrameInfoEXT(
  80776. const VULKAN_HPP_NAMESPACE::VideoEncodeH264ReferenceListsInfoEXT * pReferenceFinalLists_,
  80777. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::VideoEncodeH264NaluSliceInfoEXT> const & naluSliceEntries_,
  80778. const StdVideoEncodeH264PictureInfo * pCurrentPictureInfo_ = {},
  80779. const void * pNext_ = nullptr )
  80780. : pNext( pNext_ )
  80781. , pReferenceFinalLists( pReferenceFinalLists_ )
  80782. , naluSliceEntryCount( static_cast<uint32_t>( naluSliceEntries_.size() ) )
  80783. , pNaluSliceEntries( naluSliceEntries_.data() )
  80784. , pCurrentPictureInfo( pCurrentPictureInfo_ )
  80785. {
  80786. }
  80787. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  80788. # endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  80789. VideoEncodeH264VclFrameInfoEXT & operator=( VideoEncodeH264VclFrameInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  80790. VideoEncodeH264VclFrameInfoEXT & operator=( VkVideoEncodeH264VclFrameInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  80791. {
  80792. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::VideoEncodeH264VclFrameInfoEXT const *>( &rhs );
  80793. return *this;
  80794. }
  80795. # if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  80796. VULKAN_HPP_CONSTEXPR_14 VideoEncodeH264VclFrameInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  80797. {
  80798. pNext = pNext_;
  80799. return *this;
  80800. }
  80801. VULKAN_HPP_CONSTEXPR_14 VideoEncodeH264VclFrameInfoEXT &
  80802. setPReferenceFinalLists( const VULKAN_HPP_NAMESPACE::VideoEncodeH264ReferenceListsInfoEXT * pReferenceFinalLists_ ) VULKAN_HPP_NOEXCEPT
  80803. {
  80804. pReferenceFinalLists = pReferenceFinalLists_;
  80805. return *this;
  80806. }
  80807. VULKAN_HPP_CONSTEXPR_14 VideoEncodeH264VclFrameInfoEXT & setNaluSliceEntryCount( uint32_t naluSliceEntryCount_ ) VULKAN_HPP_NOEXCEPT
  80808. {
  80809. naluSliceEntryCount = naluSliceEntryCount_;
  80810. return *this;
  80811. }
  80812. VULKAN_HPP_CONSTEXPR_14 VideoEncodeH264VclFrameInfoEXT &
  80813. setPNaluSliceEntries( const VULKAN_HPP_NAMESPACE::VideoEncodeH264NaluSliceInfoEXT * pNaluSliceEntries_ ) VULKAN_HPP_NOEXCEPT
  80814. {
  80815. pNaluSliceEntries = pNaluSliceEntries_;
  80816. return *this;
  80817. }
  80818. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  80819. VideoEncodeH264VclFrameInfoEXT & setNaluSliceEntries(
  80820. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::VideoEncodeH264NaluSliceInfoEXT> const & naluSliceEntries_ ) VULKAN_HPP_NOEXCEPT
  80821. {
  80822. naluSliceEntryCount = static_cast<uint32_t>( naluSliceEntries_.size() );
  80823. pNaluSliceEntries = naluSliceEntries_.data();
  80824. return *this;
  80825. }
  80826. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  80827. VULKAN_HPP_CONSTEXPR_14 VideoEncodeH264VclFrameInfoEXT &
  80828. setPCurrentPictureInfo( const StdVideoEncodeH264PictureInfo * pCurrentPictureInfo_ ) VULKAN_HPP_NOEXCEPT
  80829. {
  80830. pCurrentPictureInfo = pCurrentPictureInfo_;
  80831. return *this;
  80832. }
  80833. # endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  80834. operator VkVideoEncodeH264VclFrameInfoEXT const &() const VULKAN_HPP_NOEXCEPT
  80835. {
  80836. return *reinterpret_cast<const VkVideoEncodeH264VclFrameInfoEXT *>( this );
  80837. }
  80838. operator VkVideoEncodeH264VclFrameInfoEXT &() VULKAN_HPP_NOEXCEPT
  80839. {
  80840. return *reinterpret_cast<VkVideoEncodeH264VclFrameInfoEXT *>( this );
  80841. }
  80842. # if defined( VULKAN_HPP_USE_REFLECT )
  80843. # if 14 <= VULKAN_HPP_CPP_VERSION
  80844. auto
  80845. # else
  80846. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  80847. const void * const &,
  80848. const VULKAN_HPP_NAMESPACE::VideoEncodeH264ReferenceListsInfoEXT * const &,
  80849. uint32_t const &,
  80850. const VULKAN_HPP_NAMESPACE::VideoEncodeH264NaluSliceInfoEXT * const &,
  80851. const StdVideoEncodeH264PictureInfo * const &>
  80852. # endif
  80853. reflect() const VULKAN_HPP_NOEXCEPT
  80854. {
  80855. return std::tie( sType, pNext, pReferenceFinalLists, naluSliceEntryCount, pNaluSliceEntries, pCurrentPictureInfo );
  80856. }
  80857. # endif
  80858. # if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  80859. auto operator<=>( VideoEncodeH264VclFrameInfoEXT const & ) const = default;
  80860. # else
  80861. bool operator==( VideoEncodeH264VclFrameInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  80862. {
  80863. # if defined( VULKAN_HPP_USE_REFLECT )
  80864. return this->reflect() == rhs.reflect();
  80865. # else
  80866. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( pReferenceFinalLists == rhs.pReferenceFinalLists ) &&
  80867. ( naluSliceEntryCount == rhs.naluSliceEntryCount ) && ( pNaluSliceEntries == rhs.pNaluSliceEntries ) &&
  80868. ( pCurrentPictureInfo == rhs.pCurrentPictureInfo );
  80869. # endif
  80870. }
  80871. bool operator!=( VideoEncodeH264VclFrameInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  80872. {
  80873. return !operator==( rhs );
  80874. }
  80875. # endif
  80876. public:
  80877. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eVideoEncodeH264VclFrameInfoEXT;
  80878. const void * pNext = {};
  80879. const VULKAN_HPP_NAMESPACE::VideoEncodeH264ReferenceListsInfoEXT * pReferenceFinalLists = {};
  80880. uint32_t naluSliceEntryCount = {};
  80881. const VULKAN_HPP_NAMESPACE::VideoEncodeH264NaluSliceInfoEXT * pNaluSliceEntries = {};
  80882. const StdVideoEncodeH264PictureInfo * pCurrentPictureInfo = {};
  80883. };
  80884. template <>
  80885. struct CppType<StructureType, StructureType::eVideoEncodeH264VclFrameInfoEXT>
  80886. {
  80887. using Type = VideoEncodeH264VclFrameInfoEXT;
  80888. };
  80889. #endif /*VK_ENABLE_BETA_EXTENSIONS*/
  80890. #if defined( VK_ENABLE_BETA_EXTENSIONS )
  80891. struct VideoEncodeH265CapabilitiesEXT
  80892. {
  80893. using NativeType = VkVideoEncodeH265CapabilitiesEXT;
  80894. static const bool allowDuplicate = false;
  80895. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eVideoEncodeH265CapabilitiesEXT;
  80896. # if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  80897. VULKAN_HPP_CONSTEXPR VideoEncodeH265CapabilitiesEXT( VULKAN_HPP_NAMESPACE::VideoEncodeH265CapabilityFlagsEXT flags_ = {},
  80898. VULKAN_HPP_NAMESPACE::VideoEncodeH265InputModeFlagsEXT inputModeFlags_ = {},
  80899. VULKAN_HPP_NAMESPACE::VideoEncodeH265OutputModeFlagsEXT outputModeFlags_ = {},
  80900. VULKAN_HPP_NAMESPACE::VideoEncodeH265CtbSizeFlagsEXT ctbSizes_ = {},
  80901. VULKAN_HPP_NAMESPACE::VideoEncodeH265TransformBlockSizeFlagsEXT transformBlockSizes_ = {},
  80902. uint8_t maxPPictureL0ReferenceCount_ = {},
  80903. uint8_t maxBPictureL0ReferenceCount_ = {},
  80904. uint8_t maxL1ReferenceCount_ = {},
  80905. uint8_t maxSubLayersCount_ = {},
  80906. uint8_t minLog2MinLumaCodingBlockSizeMinus3_ = {},
  80907. uint8_t maxLog2MinLumaCodingBlockSizeMinus3_ = {},
  80908. uint8_t minLog2MinLumaTransformBlockSizeMinus2_ = {},
  80909. uint8_t maxLog2MinLumaTransformBlockSizeMinus2_ = {},
  80910. uint8_t minMaxTransformHierarchyDepthInter_ = {},
  80911. uint8_t maxMaxTransformHierarchyDepthInter_ = {},
  80912. uint8_t minMaxTransformHierarchyDepthIntra_ = {},
  80913. uint8_t maxMaxTransformHierarchyDepthIntra_ = {},
  80914. uint8_t maxDiffCuQpDeltaDepth_ = {},
  80915. uint8_t minMaxNumMergeCand_ = {},
  80916. uint8_t maxMaxNumMergeCand_ = {},
  80917. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  80918. : pNext( pNext_ )
  80919. , flags( flags_ )
  80920. , inputModeFlags( inputModeFlags_ )
  80921. , outputModeFlags( outputModeFlags_ )
  80922. , ctbSizes( ctbSizes_ )
  80923. , transformBlockSizes( transformBlockSizes_ )
  80924. , maxPPictureL0ReferenceCount( maxPPictureL0ReferenceCount_ )
  80925. , maxBPictureL0ReferenceCount( maxBPictureL0ReferenceCount_ )
  80926. , maxL1ReferenceCount( maxL1ReferenceCount_ )
  80927. , maxSubLayersCount( maxSubLayersCount_ )
  80928. , minLog2MinLumaCodingBlockSizeMinus3( minLog2MinLumaCodingBlockSizeMinus3_ )
  80929. , maxLog2MinLumaCodingBlockSizeMinus3( maxLog2MinLumaCodingBlockSizeMinus3_ )
  80930. , minLog2MinLumaTransformBlockSizeMinus2( minLog2MinLumaTransformBlockSizeMinus2_ )
  80931. , maxLog2MinLumaTransformBlockSizeMinus2( maxLog2MinLumaTransformBlockSizeMinus2_ )
  80932. , minMaxTransformHierarchyDepthInter( minMaxTransformHierarchyDepthInter_ )
  80933. , maxMaxTransformHierarchyDepthInter( maxMaxTransformHierarchyDepthInter_ )
  80934. , minMaxTransformHierarchyDepthIntra( minMaxTransformHierarchyDepthIntra_ )
  80935. , maxMaxTransformHierarchyDepthIntra( maxMaxTransformHierarchyDepthIntra_ )
  80936. , maxDiffCuQpDeltaDepth( maxDiffCuQpDeltaDepth_ )
  80937. , minMaxNumMergeCand( minMaxNumMergeCand_ )
  80938. , maxMaxNumMergeCand( maxMaxNumMergeCand_ )
  80939. {
  80940. }
  80941. VULKAN_HPP_CONSTEXPR VideoEncodeH265CapabilitiesEXT( VideoEncodeH265CapabilitiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  80942. VideoEncodeH265CapabilitiesEXT( VkVideoEncodeH265CapabilitiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  80943. : VideoEncodeH265CapabilitiesEXT( *reinterpret_cast<VideoEncodeH265CapabilitiesEXT const *>( &rhs ) )
  80944. {
  80945. }
  80946. # endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  80947. VideoEncodeH265CapabilitiesEXT & operator=( VideoEncodeH265CapabilitiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  80948. VideoEncodeH265CapabilitiesEXT & operator=( VkVideoEncodeH265CapabilitiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  80949. {
  80950. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::VideoEncodeH265CapabilitiesEXT const *>( &rhs );
  80951. return *this;
  80952. }
  80953. operator VkVideoEncodeH265CapabilitiesEXT const &() const VULKAN_HPP_NOEXCEPT
  80954. {
  80955. return *reinterpret_cast<const VkVideoEncodeH265CapabilitiesEXT *>( this );
  80956. }
  80957. operator VkVideoEncodeH265CapabilitiesEXT &() VULKAN_HPP_NOEXCEPT
  80958. {
  80959. return *reinterpret_cast<VkVideoEncodeH265CapabilitiesEXT *>( this );
  80960. }
  80961. # if defined( VULKAN_HPP_USE_REFLECT )
  80962. # if 14 <= VULKAN_HPP_CPP_VERSION
  80963. auto
  80964. # else
  80965. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  80966. void * const &,
  80967. VULKAN_HPP_NAMESPACE::VideoEncodeH265CapabilityFlagsEXT const &,
  80968. VULKAN_HPP_NAMESPACE::VideoEncodeH265InputModeFlagsEXT const &,
  80969. VULKAN_HPP_NAMESPACE::VideoEncodeH265OutputModeFlagsEXT const &,
  80970. VULKAN_HPP_NAMESPACE::VideoEncodeH265CtbSizeFlagsEXT const &,
  80971. VULKAN_HPP_NAMESPACE::VideoEncodeH265TransformBlockSizeFlagsEXT const &,
  80972. uint8_t const &,
  80973. uint8_t const &,
  80974. uint8_t const &,
  80975. uint8_t const &,
  80976. uint8_t const &,
  80977. uint8_t const &,
  80978. uint8_t const &,
  80979. uint8_t const &,
  80980. uint8_t const &,
  80981. uint8_t const &,
  80982. uint8_t const &,
  80983. uint8_t const &,
  80984. uint8_t const &,
  80985. uint8_t const &,
  80986. uint8_t const &>
  80987. # endif
  80988. reflect() const VULKAN_HPP_NOEXCEPT
  80989. {
  80990. return std::tie( sType,
  80991. pNext,
  80992. flags,
  80993. inputModeFlags,
  80994. outputModeFlags,
  80995. ctbSizes,
  80996. transformBlockSizes,
  80997. maxPPictureL0ReferenceCount,
  80998. maxBPictureL0ReferenceCount,
  80999. maxL1ReferenceCount,
  81000. maxSubLayersCount,
  81001. minLog2MinLumaCodingBlockSizeMinus3,
  81002. maxLog2MinLumaCodingBlockSizeMinus3,
  81003. minLog2MinLumaTransformBlockSizeMinus2,
  81004. maxLog2MinLumaTransformBlockSizeMinus2,
  81005. minMaxTransformHierarchyDepthInter,
  81006. maxMaxTransformHierarchyDepthInter,
  81007. minMaxTransformHierarchyDepthIntra,
  81008. maxMaxTransformHierarchyDepthIntra,
  81009. maxDiffCuQpDeltaDepth,
  81010. minMaxNumMergeCand,
  81011. maxMaxNumMergeCand );
  81012. }
  81013. # endif
  81014. # if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  81015. auto operator<=>( VideoEncodeH265CapabilitiesEXT const & ) const = default;
  81016. # else
  81017. bool operator==( VideoEncodeH265CapabilitiesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  81018. {
  81019. # if defined( VULKAN_HPP_USE_REFLECT )
  81020. return this->reflect() == rhs.reflect();
  81021. # else
  81022. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( flags == rhs.flags ) && ( inputModeFlags == rhs.inputModeFlags ) &&
  81023. ( outputModeFlags == rhs.outputModeFlags ) && ( ctbSizes == rhs.ctbSizes ) && ( transformBlockSizes == rhs.transformBlockSizes ) &&
  81024. ( maxPPictureL0ReferenceCount == rhs.maxPPictureL0ReferenceCount ) && ( maxBPictureL0ReferenceCount == rhs.maxBPictureL0ReferenceCount ) &&
  81025. ( maxL1ReferenceCount == rhs.maxL1ReferenceCount ) && ( maxSubLayersCount == rhs.maxSubLayersCount ) &&
  81026. ( minLog2MinLumaCodingBlockSizeMinus3 == rhs.minLog2MinLumaCodingBlockSizeMinus3 ) &&
  81027. ( maxLog2MinLumaCodingBlockSizeMinus3 == rhs.maxLog2MinLumaCodingBlockSizeMinus3 ) &&
  81028. ( minLog2MinLumaTransformBlockSizeMinus2 == rhs.minLog2MinLumaTransformBlockSizeMinus2 ) &&
  81029. ( maxLog2MinLumaTransformBlockSizeMinus2 == rhs.maxLog2MinLumaTransformBlockSizeMinus2 ) &&
  81030. ( minMaxTransformHierarchyDepthInter == rhs.minMaxTransformHierarchyDepthInter ) &&
  81031. ( maxMaxTransformHierarchyDepthInter == rhs.maxMaxTransformHierarchyDepthInter ) &&
  81032. ( minMaxTransformHierarchyDepthIntra == rhs.minMaxTransformHierarchyDepthIntra ) &&
  81033. ( maxMaxTransformHierarchyDepthIntra == rhs.maxMaxTransformHierarchyDepthIntra ) && ( maxDiffCuQpDeltaDepth == rhs.maxDiffCuQpDeltaDepth ) &&
  81034. ( minMaxNumMergeCand == rhs.minMaxNumMergeCand ) && ( maxMaxNumMergeCand == rhs.maxMaxNumMergeCand );
  81035. # endif
  81036. }
  81037. bool operator!=( VideoEncodeH265CapabilitiesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  81038. {
  81039. return !operator==( rhs );
  81040. }
  81041. # endif
  81042. public:
  81043. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eVideoEncodeH265CapabilitiesEXT;
  81044. void * pNext = {};
  81045. VULKAN_HPP_NAMESPACE::VideoEncodeH265CapabilityFlagsEXT flags = {};
  81046. VULKAN_HPP_NAMESPACE::VideoEncodeH265InputModeFlagsEXT inputModeFlags = {};
  81047. VULKAN_HPP_NAMESPACE::VideoEncodeH265OutputModeFlagsEXT outputModeFlags = {};
  81048. VULKAN_HPP_NAMESPACE::VideoEncodeH265CtbSizeFlagsEXT ctbSizes = {};
  81049. VULKAN_HPP_NAMESPACE::VideoEncodeH265TransformBlockSizeFlagsEXT transformBlockSizes = {};
  81050. uint8_t maxPPictureL0ReferenceCount = {};
  81051. uint8_t maxBPictureL0ReferenceCount = {};
  81052. uint8_t maxL1ReferenceCount = {};
  81053. uint8_t maxSubLayersCount = {};
  81054. uint8_t minLog2MinLumaCodingBlockSizeMinus3 = {};
  81055. uint8_t maxLog2MinLumaCodingBlockSizeMinus3 = {};
  81056. uint8_t minLog2MinLumaTransformBlockSizeMinus2 = {};
  81057. uint8_t maxLog2MinLumaTransformBlockSizeMinus2 = {};
  81058. uint8_t minMaxTransformHierarchyDepthInter = {};
  81059. uint8_t maxMaxTransformHierarchyDepthInter = {};
  81060. uint8_t minMaxTransformHierarchyDepthIntra = {};
  81061. uint8_t maxMaxTransformHierarchyDepthIntra = {};
  81062. uint8_t maxDiffCuQpDeltaDepth = {};
  81063. uint8_t minMaxNumMergeCand = {};
  81064. uint8_t maxMaxNumMergeCand = {};
  81065. };
  81066. template <>
  81067. struct CppType<StructureType, StructureType::eVideoEncodeH265CapabilitiesEXT>
  81068. {
  81069. using Type = VideoEncodeH265CapabilitiesEXT;
  81070. };
  81071. #endif /*VK_ENABLE_BETA_EXTENSIONS*/
  81072. #if defined( VK_ENABLE_BETA_EXTENSIONS )
  81073. struct VideoEncodeH265DpbSlotInfoEXT
  81074. {
  81075. using NativeType = VkVideoEncodeH265DpbSlotInfoEXT;
  81076. static const bool allowDuplicate = false;
  81077. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eVideoEncodeH265DpbSlotInfoEXT;
  81078. # if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  81079. VULKAN_HPP_CONSTEXPR VideoEncodeH265DpbSlotInfoEXT( int8_t slotIndex_ = {},
  81080. const StdVideoEncodeH265ReferenceInfo * pStdReferenceInfo_ = {},
  81081. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  81082. : pNext( pNext_ )
  81083. , slotIndex( slotIndex_ )
  81084. , pStdReferenceInfo( pStdReferenceInfo_ )
  81085. {
  81086. }
  81087. VULKAN_HPP_CONSTEXPR VideoEncodeH265DpbSlotInfoEXT( VideoEncodeH265DpbSlotInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  81088. VideoEncodeH265DpbSlotInfoEXT( VkVideoEncodeH265DpbSlotInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  81089. : VideoEncodeH265DpbSlotInfoEXT( *reinterpret_cast<VideoEncodeH265DpbSlotInfoEXT const *>( &rhs ) )
  81090. {
  81091. }
  81092. # endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  81093. VideoEncodeH265DpbSlotInfoEXT & operator=( VideoEncodeH265DpbSlotInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  81094. VideoEncodeH265DpbSlotInfoEXT & operator=( VkVideoEncodeH265DpbSlotInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  81095. {
  81096. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::VideoEncodeH265DpbSlotInfoEXT const *>( &rhs );
  81097. return *this;
  81098. }
  81099. # if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  81100. VULKAN_HPP_CONSTEXPR_14 VideoEncodeH265DpbSlotInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  81101. {
  81102. pNext = pNext_;
  81103. return *this;
  81104. }
  81105. VULKAN_HPP_CONSTEXPR_14 VideoEncodeH265DpbSlotInfoEXT & setSlotIndex( int8_t slotIndex_ ) VULKAN_HPP_NOEXCEPT
  81106. {
  81107. slotIndex = slotIndex_;
  81108. return *this;
  81109. }
  81110. VULKAN_HPP_CONSTEXPR_14 VideoEncodeH265DpbSlotInfoEXT &
  81111. setPStdReferenceInfo( const StdVideoEncodeH265ReferenceInfo * pStdReferenceInfo_ ) VULKAN_HPP_NOEXCEPT
  81112. {
  81113. pStdReferenceInfo = pStdReferenceInfo_;
  81114. return *this;
  81115. }
  81116. # endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  81117. operator VkVideoEncodeH265DpbSlotInfoEXT const &() const VULKAN_HPP_NOEXCEPT
  81118. {
  81119. return *reinterpret_cast<const VkVideoEncodeH265DpbSlotInfoEXT *>( this );
  81120. }
  81121. operator VkVideoEncodeH265DpbSlotInfoEXT &() VULKAN_HPP_NOEXCEPT
  81122. {
  81123. return *reinterpret_cast<VkVideoEncodeH265DpbSlotInfoEXT *>( this );
  81124. }
  81125. # if defined( VULKAN_HPP_USE_REFLECT )
  81126. # if 14 <= VULKAN_HPP_CPP_VERSION
  81127. auto
  81128. # else
  81129. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, int8_t const &, const StdVideoEncodeH265ReferenceInfo * const &>
  81130. # endif
  81131. reflect() const VULKAN_HPP_NOEXCEPT
  81132. {
  81133. return std::tie( sType, pNext, slotIndex, pStdReferenceInfo );
  81134. }
  81135. # endif
  81136. # if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  81137. auto operator<=>( VideoEncodeH265DpbSlotInfoEXT const & ) const = default;
  81138. # else
  81139. bool operator==( VideoEncodeH265DpbSlotInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  81140. {
  81141. # if defined( VULKAN_HPP_USE_REFLECT )
  81142. return this->reflect() == rhs.reflect();
  81143. # else
  81144. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( slotIndex == rhs.slotIndex ) && ( pStdReferenceInfo == rhs.pStdReferenceInfo );
  81145. # endif
  81146. }
  81147. bool operator!=( VideoEncodeH265DpbSlotInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  81148. {
  81149. return !operator==( rhs );
  81150. }
  81151. # endif
  81152. public:
  81153. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eVideoEncodeH265DpbSlotInfoEXT;
  81154. const void * pNext = {};
  81155. int8_t slotIndex = {};
  81156. const StdVideoEncodeH265ReferenceInfo * pStdReferenceInfo = {};
  81157. };
  81158. template <>
  81159. struct CppType<StructureType, StructureType::eVideoEncodeH265DpbSlotInfoEXT>
  81160. {
  81161. using Type = VideoEncodeH265DpbSlotInfoEXT;
  81162. };
  81163. #endif /*VK_ENABLE_BETA_EXTENSIONS*/
  81164. #if defined( VK_ENABLE_BETA_EXTENSIONS )
  81165. struct VideoEncodeH265EmitPictureParametersInfoEXT
  81166. {
  81167. using NativeType = VkVideoEncodeH265EmitPictureParametersInfoEXT;
  81168. static const bool allowDuplicate = false;
  81169. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eVideoEncodeH265EmitPictureParametersInfoEXT;
  81170. # if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  81171. VULKAN_HPP_CONSTEXPR VideoEncodeH265EmitPictureParametersInfoEXT( uint8_t vpsId_ = {},
  81172. uint8_t spsId_ = {},
  81173. VULKAN_HPP_NAMESPACE::Bool32 emitVpsEnable_ = {},
  81174. VULKAN_HPP_NAMESPACE::Bool32 emitSpsEnable_ = {},
  81175. uint32_t ppsIdEntryCount_ = {},
  81176. const uint8_t * ppsIdEntries_ = {},
  81177. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  81178. : pNext( pNext_ )
  81179. , vpsId( vpsId_ )
  81180. , spsId( spsId_ )
  81181. , emitVpsEnable( emitVpsEnable_ )
  81182. , emitSpsEnable( emitSpsEnable_ )
  81183. , ppsIdEntryCount( ppsIdEntryCount_ )
  81184. , ppsIdEntries( ppsIdEntries_ )
  81185. {
  81186. }
  81187. VULKAN_HPP_CONSTEXPR VideoEncodeH265EmitPictureParametersInfoEXT( VideoEncodeH265EmitPictureParametersInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  81188. VideoEncodeH265EmitPictureParametersInfoEXT( VkVideoEncodeH265EmitPictureParametersInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  81189. : VideoEncodeH265EmitPictureParametersInfoEXT( *reinterpret_cast<VideoEncodeH265EmitPictureParametersInfoEXT const *>( &rhs ) )
  81190. {
  81191. }
  81192. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  81193. VideoEncodeH265EmitPictureParametersInfoEXT( uint8_t vpsId_,
  81194. uint8_t spsId_,
  81195. VULKAN_HPP_NAMESPACE::Bool32 emitVpsEnable_,
  81196. VULKAN_HPP_NAMESPACE::Bool32 emitSpsEnable_,
  81197. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint8_t> const & psIdEntries_,
  81198. const void * pNext_ = nullptr )
  81199. : pNext( pNext_ )
  81200. , vpsId( vpsId_ )
  81201. , spsId( spsId_ )
  81202. , emitVpsEnable( emitVpsEnable_ )
  81203. , emitSpsEnable( emitSpsEnable_ )
  81204. , ppsIdEntryCount( static_cast<uint32_t>( psIdEntries_.size() ) )
  81205. , ppsIdEntries( psIdEntries_.data() )
  81206. {
  81207. }
  81208. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  81209. # endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  81210. VideoEncodeH265EmitPictureParametersInfoEXT & operator=( VideoEncodeH265EmitPictureParametersInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  81211. VideoEncodeH265EmitPictureParametersInfoEXT & operator=( VkVideoEncodeH265EmitPictureParametersInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  81212. {
  81213. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::VideoEncodeH265EmitPictureParametersInfoEXT const *>( &rhs );
  81214. return *this;
  81215. }
  81216. # if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  81217. VULKAN_HPP_CONSTEXPR_14 VideoEncodeH265EmitPictureParametersInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  81218. {
  81219. pNext = pNext_;
  81220. return *this;
  81221. }
  81222. VULKAN_HPP_CONSTEXPR_14 VideoEncodeH265EmitPictureParametersInfoEXT & setVpsId( uint8_t vpsId_ ) VULKAN_HPP_NOEXCEPT
  81223. {
  81224. vpsId = vpsId_;
  81225. return *this;
  81226. }
  81227. VULKAN_HPP_CONSTEXPR_14 VideoEncodeH265EmitPictureParametersInfoEXT & setSpsId( uint8_t spsId_ ) VULKAN_HPP_NOEXCEPT
  81228. {
  81229. spsId = spsId_;
  81230. return *this;
  81231. }
  81232. VULKAN_HPP_CONSTEXPR_14 VideoEncodeH265EmitPictureParametersInfoEXT & setEmitVpsEnable( VULKAN_HPP_NAMESPACE::Bool32 emitVpsEnable_ ) VULKAN_HPP_NOEXCEPT
  81233. {
  81234. emitVpsEnable = emitVpsEnable_;
  81235. return *this;
  81236. }
  81237. VULKAN_HPP_CONSTEXPR_14 VideoEncodeH265EmitPictureParametersInfoEXT & setEmitSpsEnable( VULKAN_HPP_NAMESPACE::Bool32 emitSpsEnable_ ) VULKAN_HPP_NOEXCEPT
  81238. {
  81239. emitSpsEnable = emitSpsEnable_;
  81240. return *this;
  81241. }
  81242. VULKAN_HPP_CONSTEXPR_14 VideoEncodeH265EmitPictureParametersInfoEXT & setPpsIdEntryCount( uint32_t ppsIdEntryCount_ ) VULKAN_HPP_NOEXCEPT
  81243. {
  81244. ppsIdEntryCount = ppsIdEntryCount_;
  81245. return *this;
  81246. }
  81247. VULKAN_HPP_CONSTEXPR_14 VideoEncodeH265EmitPictureParametersInfoEXT & setPpsIdEntries( const uint8_t * ppsIdEntries_ ) VULKAN_HPP_NOEXCEPT
  81248. {
  81249. ppsIdEntries = ppsIdEntries_;
  81250. return *this;
  81251. }
  81252. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  81253. VideoEncodeH265EmitPictureParametersInfoEXT &
  81254. setPsIdEntries( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint8_t> const & psIdEntries_ ) VULKAN_HPP_NOEXCEPT
  81255. {
  81256. ppsIdEntryCount = static_cast<uint32_t>( psIdEntries_.size() );
  81257. ppsIdEntries = psIdEntries_.data();
  81258. return *this;
  81259. }
  81260. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  81261. # endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  81262. operator VkVideoEncodeH265EmitPictureParametersInfoEXT const &() const VULKAN_HPP_NOEXCEPT
  81263. {
  81264. return *reinterpret_cast<const VkVideoEncodeH265EmitPictureParametersInfoEXT *>( this );
  81265. }
  81266. operator VkVideoEncodeH265EmitPictureParametersInfoEXT &() VULKAN_HPP_NOEXCEPT
  81267. {
  81268. return *reinterpret_cast<VkVideoEncodeH265EmitPictureParametersInfoEXT *>( this );
  81269. }
  81270. # if defined( VULKAN_HPP_USE_REFLECT )
  81271. # if 14 <= VULKAN_HPP_CPP_VERSION
  81272. auto
  81273. # else
  81274. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  81275. const void * const &,
  81276. uint8_t const &,
  81277. uint8_t const &,
  81278. VULKAN_HPP_NAMESPACE::Bool32 const &,
  81279. VULKAN_HPP_NAMESPACE::Bool32 const &,
  81280. uint32_t const &,
  81281. const uint8_t * const &>
  81282. # endif
  81283. reflect() const VULKAN_HPP_NOEXCEPT
  81284. {
  81285. return std::tie( sType, pNext, vpsId, spsId, emitVpsEnable, emitSpsEnable, ppsIdEntryCount, ppsIdEntries );
  81286. }
  81287. # endif
  81288. # if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  81289. auto operator<=>( VideoEncodeH265EmitPictureParametersInfoEXT const & ) const = default;
  81290. # else
  81291. bool operator==( VideoEncodeH265EmitPictureParametersInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  81292. {
  81293. # if defined( VULKAN_HPP_USE_REFLECT )
  81294. return this->reflect() == rhs.reflect();
  81295. # else
  81296. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( vpsId == rhs.vpsId ) && ( spsId == rhs.spsId ) && ( emitVpsEnable == rhs.emitVpsEnable ) &&
  81297. ( emitSpsEnable == rhs.emitSpsEnable ) && ( ppsIdEntryCount == rhs.ppsIdEntryCount ) && ( ppsIdEntries == rhs.ppsIdEntries );
  81298. # endif
  81299. }
  81300. bool operator!=( VideoEncodeH265EmitPictureParametersInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  81301. {
  81302. return !operator==( rhs );
  81303. }
  81304. # endif
  81305. public:
  81306. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eVideoEncodeH265EmitPictureParametersInfoEXT;
  81307. const void * pNext = {};
  81308. uint8_t vpsId = {};
  81309. uint8_t spsId = {};
  81310. VULKAN_HPP_NAMESPACE::Bool32 emitVpsEnable = {};
  81311. VULKAN_HPP_NAMESPACE::Bool32 emitSpsEnable = {};
  81312. uint32_t ppsIdEntryCount = {};
  81313. const uint8_t * ppsIdEntries = {};
  81314. };
  81315. template <>
  81316. struct CppType<StructureType, StructureType::eVideoEncodeH265EmitPictureParametersInfoEXT>
  81317. {
  81318. using Type = VideoEncodeH265EmitPictureParametersInfoEXT;
  81319. };
  81320. #endif /*VK_ENABLE_BETA_EXTENSIONS*/
  81321. #if defined( VK_ENABLE_BETA_EXTENSIONS )
  81322. struct VideoEncodeH265FrameSizeEXT
  81323. {
  81324. using NativeType = VkVideoEncodeH265FrameSizeEXT;
  81325. # if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  81326. VULKAN_HPP_CONSTEXPR VideoEncodeH265FrameSizeEXT( uint32_t frameISize_ = {}, uint32_t framePSize_ = {}, uint32_t frameBSize_ = {} ) VULKAN_HPP_NOEXCEPT
  81327. : frameISize( frameISize_ )
  81328. , framePSize( framePSize_ )
  81329. , frameBSize( frameBSize_ )
  81330. {
  81331. }
  81332. VULKAN_HPP_CONSTEXPR VideoEncodeH265FrameSizeEXT( VideoEncodeH265FrameSizeEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  81333. VideoEncodeH265FrameSizeEXT( VkVideoEncodeH265FrameSizeEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  81334. : VideoEncodeH265FrameSizeEXT( *reinterpret_cast<VideoEncodeH265FrameSizeEXT const *>( &rhs ) )
  81335. {
  81336. }
  81337. # endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  81338. VideoEncodeH265FrameSizeEXT & operator=( VideoEncodeH265FrameSizeEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  81339. VideoEncodeH265FrameSizeEXT & operator=( VkVideoEncodeH265FrameSizeEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  81340. {
  81341. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::VideoEncodeH265FrameSizeEXT const *>( &rhs );
  81342. return *this;
  81343. }
  81344. # if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  81345. VULKAN_HPP_CONSTEXPR_14 VideoEncodeH265FrameSizeEXT & setFrameISize( uint32_t frameISize_ ) VULKAN_HPP_NOEXCEPT
  81346. {
  81347. frameISize = frameISize_;
  81348. return *this;
  81349. }
  81350. VULKAN_HPP_CONSTEXPR_14 VideoEncodeH265FrameSizeEXT & setFramePSize( uint32_t framePSize_ ) VULKAN_HPP_NOEXCEPT
  81351. {
  81352. framePSize = framePSize_;
  81353. return *this;
  81354. }
  81355. VULKAN_HPP_CONSTEXPR_14 VideoEncodeH265FrameSizeEXT & setFrameBSize( uint32_t frameBSize_ ) VULKAN_HPP_NOEXCEPT
  81356. {
  81357. frameBSize = frameBSize_;
  81358. return *this;
  81359. }
  81360. # endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  81361. operator VkVideoEncodeH265FrameSizeEXT const &() const VULKAN_HPP_NOEXCEPT
  81362. {
  81363. return *reinterpret_cast<const VkVideoEncodeH265FrameSizeEXT *>( this );
  81364. }
  81365. operator VkVideoEncodeH265FrameSizeEXT &() VULKAN_HPP_NOEXCEPT
  81366. {
  81367. return *reinterpret_cast<VkVideoEncodeH265FrameSizeEXT *>( this );
  81368. }
  81369. # if defined( VULKAN_HPP_USE_REFLECT )
  81370. # if 14 <= VULKAN_HPP_CPP_VERSION
  81371. auto
  81372. # else
  81373. std::tuple<uint32_t const &, uint32_t const &, uint32_t const &>
  81374. # endif
  81375. reflect() const VULKAN_HPP_NOEXCEPT
  81376. {
  81377. return std::tie( frameISize, framePSize, frameBSize );
  81378. }
  81379. # endif
  81380. # if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  81381. auto operator<=>( VideoEncodeH265FrameSizeEXT const & ) const = default;
  81382. # else
  81383. bool operator==( VideoEncodeH265FrameSizeEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  81384. {
  81385. # if defined( VULKAN_HPP_USE_REFLECT )
  81386. return this->reflect() == rhs.reflect();
  81387. # else
  81388. return ( frameISize == rhs.frameISize ) && ( framePSize == rhs.framePSize ) && ( frameBSize == rhs.frameBSize );
  81389. # endif
  81390. }
  81391. bool operator!=( VideoEncodeH265FrameSizeEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  81392. {
  81393. return !operator==( rhs );
  81394. }
  81395. # endif
  81396. public:
  81397. uint32_t frameISize = {};
  81398. uint32_t framePSize = {};
  81399. uint32_t frameBSize = {};
  81400. };
  81401. #endif /*VK_ENABLE_BETA_EXTENSIONS*/
  81402. #if defined( VK_ENABLE_BETA_EXTENSIONS )
  81403. struct VideoEncodeH265ReferenceListsInfoEXT
  81404. {
  81405. using NativeType = VkVideoEncodeH265ReferenceListsInfoEXT;
  81406. static const bool allowDuplicate = false;
  81407. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eVideoEncodeH265ReferenceListsInfoEXT;
  81408. # if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  81409. VULKAN_HPP_CONSTEXPR VideoEncodeH265ReferenceListsInfoEXT( uint8_t referenceList0EntryCount_ = {},
  81410. const VULKAN_HPP_NAMESPACE::VideoEncodeH265DpbSlotInfoEXT * pReferenceList0Entries_ = {},
  81411. uint8_t referenceList1EntryCount_ = {},
  81412. const VULKAN_HPP_NAMESPACE::VideoEncodeH265DpbSlotInfoEXT * pReferenceList1Entries_ = {},
  81413. const StdVideoEncodeH265ReferenceModifications * pReferenceModifications_ = {},
  81414. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  81415. : pNext( pNext_ )
  81416. , referenceList0EntryCount( referenceList0EntryCount_ )
  81417. , pReferenceList0Entries( pReferenceList0Entries_ )
  81418. , referenceList1EntryCount( referenceList1EntryCount_ )
  81419. , pReferenceList1Entries( pReferenceList1Entries_ )
  81420. , pReferenceModifications( pReferenceModifications_ )
  81421. {
  81422. }
  81423. VULKAN_HPP_CONSTEXPR VideoEncodeH265ReferenceListsInfoEXT( VideoEncodeH265ReferenceListsInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  81424. VideoEncodeH265ReferenceListsInfoEXT( VkVideoEncodeH265ReferenceListsInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  81425. : VideoEncodeH265ReferenceListsInfoEXT( *reinterpret_cast<VideoEncodeH265ReferenceListsInfoEXT const *>( &rhs ) )
  81426. {
  81427. }
  81428. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  81429. VideoEncodeH265ReferenceListsInfoEXT(
  81430. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::VideoEncodeH265DpbSlotInfoEXT> const & referenceList0Entries_,
  81431. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::VideoEncodeH265DpbSlotInfoEXT> const & referenceList1Entries_ = {},
  81432. const StdVideoEncodeH265ReferenceModifications * pReferenceModifications_ = {},
  81433. const void * pNext_ = nullptr )
  81434. : pNext( pNext_ )
  81435. , referenceList0EntryCount( static_cast<uint8_t>( referenceList0Entries_.size() ) )
  81436. , pReferenceList0Entries( referenceList0Entries_.data() )
  81437. , referenceList1EntryCount( static_cast<uint8_t>( referenceList1Entries_.size() ) )
  81438. , pReferenceList1Entries( referenceList1Entries_.data() )
  81439. , pReferenceModifications( pReferenceModifications_ )
  81440. {
  81441. }
  81442. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  81443. # endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  81444. VideoEncodeH265ReferenceListsInfoEXT & operator=( VideoEncodeH265ReferenceListsInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  81445. VideoEncodeH265ReferenceListsInfoEXT & operator=( VkVideoEncodeH265ReferenceListsInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  81446. {
  81447. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::VideoEncodeH265ReferenceListsInfoEXT const *>( &rhs );
  81448. return *this;
  81449. }
  81450. # if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  81451. VULKAN_HPP_CONSTEXPR_14 VideoEncodeH265ReferenceListsInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  81452. {
  81453. pNext = pNext_;
  81454. return *this;
  81455. }
  81456. VULKAN_HPP_CONSTEXPR_14 VideoEncodeH265ReferenceListsInfoEXT & setReferenceList0EntryCount( uint8_t referenceList0EntryCount_ ) VULKAN_HPP_NOEXCEPT
  81457. {
  81458. referenceList0EntryCount = referenceList0EntryCount_;
  81459. return *this;
  81460. }
  81461. VULKAN_HPP_CONSTEXPR_14 VideoEncodeH265ReferenceListsInfoEXT &
  81462. setPReferenceList0Entries( const VULKAN_HPP_NAMESPACE::VideoEncodeH265DpbSlotInfoEXT * pReferenceList0Entries_ ) VULKAN_HPP_NOEXCEPT
  81463. {
  81464. pReferenceList0Entries = pReferenceList0Entries_;
  81465. return *this;
  81466. }
  81467. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  81468. VideoEncodeH265ReferenceListsInfoEXT & setReferenceList0Entries(
  81469. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::VideoEncodeH265DpbSlotInfoEXT> const & referenceList0Entries_ )
  81470. VULKAN_HPP_NOEXCEPT
  81471. {
  81472. referenceList0EntryCount = static_cast<uint8_t>( referenceList0Entries_.size() );
  81473. pReferenceList0Entries = referenceList0Entries_.data();
  81474. return *this;
  81475. }
  81476. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  81477. VULKAN_HPP_CONSTEXPR_14 VideoEncodeH265ReferenceListsInfoEXT & setReferenceList1EntryCount( uint8_t referenceList1EntryCount_ ) VULKAN_HPP_NOEXCEPT
  81478. {
  81479. referenceList1EntryCount = referenceList1EntryCount_;
  81480. return *this;
  81481. }
  81482. VULKAN_HPP_CONSTEXPR_14 VideoEncodeH265ReferenceListsInfoEXT &
  81483. setPReferenceList1Entries( const VULKAN_HPP_NAMESPACE::VideoEncodeH265DpbSlotInfoEXT * pReferenceList1Entries_ ) VULKAN_HPP_NOEXCEPT
  81484. {
  81485. pReferenceList1Entries = pReferenceList1Entries_;
  81486. return *this;
  81487. }
  81488. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  81489. VideoEncodeH265ReferenceListsInfoEXT & setReferenceList1Entries(
  81490. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::VideoEncodeH265DpbSlotInfoEXT> const & referenceList1Entries_ )
  81491. VULKAN_HPP_NOEXCEPT
  81492. {
  81493. referenceList1EntryCount = static_cast<uint8_t>( referenceList1Entries_.size() );
  81494. pReferenceList1Entries = referenceList1Entries_.data();
  81495. return *this;
  81496. }
  81497. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  81498. VULKAN_HPP_CONSTEXPR_14 VideoEncodeH265ReferenceListsInfoEXT &
  81499. setPReferenceModifications( const StdVideoEncodeH265ReferenceModifications * pReferenceModifications_ ) VULKAN_HPP_NOEXCEPT
  81500. {
  81501. pReferenceModifications = pReferenceModifications_;
  81502. return *this;
  81503. }
  81504. # endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  81505. operator VkVideoEncodeH265ReferenceListsInfoEXT const &() const VULKAN_HPP_NOEXCEPT
  81506. {
  81507. return *reinterpret_cast<const VkVideoEncodeH265ReferenceListsInfoEXT *>( this );
  81508. }
  81509. operator VkVideoEncodeH265ReferenceListsInfoEXT &() VULKAN_HPP_NOEXCEPT
  81510. {
  81511. return *reinterpret_cast<VkVideoEncodeH265ReferenceListsInfoEXT *>( this );
  81512. }
  81513. # if defined( VULKAN_HPP_USE_REFLECT )
  81514. # if 14 <= VULKAN_HPP_CPP_VERSION
  81515. auto
  81516. # else
  81517. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  81518. const void * const &,
  81519. uint8_t const &,
  81520. const VULKAN_HPP_NAMESPACE::VideoEncodeH265DpbSlotInfoEXT * const &,
  81521. uint8_t const &,
  81522. const VULKAN_HPP_NAMESPACE::VideoEncodeH265DpbSlotInfoEXT * const &,
  81523. const StdVideoEncodeH265ReferenceModifications * const &>
  81524. # endif
  81525. reflect() const VULKAN_HPP_NOEXCEPT
  81526. {
  81527. return std::tie(
  81528. sType, pNext, referenceList0EntryCount, pReferenceList0Entries, referenceList1EntryCount, pReferenceList1Entries, pReferenceModifications );
  81529. }
  81530. # endif
  81531. # if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  81532. auto operator<=>( VideoEncodeH265ReferenceListsInfoEXT const & ) const = default;
  81533. # else
  81534. bool operator==( VideoEncodeH265ReferenceListsInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  81535. {
  81536. # if defined( VULKAN_HPP_USE_REFLECT )
  81537. return this->reflect() == rhs.reflect();
  81538. # else
  81539. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( referenceList0EntryCount == rhs.referenceList0EntryCount ) &&
  81540. ( pReferenceList0Entries == rhs.pReferenceList0Entries ) && ( referenceList1EntryCount == rhs.referenceList1EntryCount ) &&
  81541. ( pReferenceList1Entries == rhs.pReferenceList1Entries ) && ( pReferenceModifications == rhs.pReferenceModifications );
  81542. # endif
  81543. }
  81544. bool operator!=( VideoEncodeH265ReferenceListsInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  81545. {
  81546. return !operator==( rhs );
  81547. }
  81548. # endif
  81549. public:
  81550. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eVideoEncodeH265ReferenceListsInfoEXT;
  81551. const void * pNext = {};
  81552. uint8_t referenceList0EntryCount = {};
  81553. const VULKAN_HPP_NAMESPACE::VideoEncodeH265DpbSlotInfoEXT * pReferenceList0Entries = {};
  81554. uint8_t referenceList1EntryCount = {};
  81555. const VULKAN_HPP_NAMESPACE::VideoEncodeH265DpbSlotInfoEXT * pReferenceList1Entries = {};
  81556. const StdVideoEncodeH265ReferenceModifications * pReferenceModifications = {};
  81557. };
  81558. template <>
  81559. struct CppType<StructureType, StructureType::eVideoEncodeH265ReferenceListsInfoEXT>
  81560. {
  81561. using Type = VideoEncodeH265ReferenceListsInfoEXT;
  81562. };
  81563. #endif /*VK_ENABLE_BETA_EXTENSIONS*/
  81564. #if defined( VK_ENABLE_BETA_EXTENSIONS )
  81565. struct VideoEncodeH265NaluSliceSegmentInfoEXT
  81566. {
  81567. using NativeType = VkVideoEncodeH265NaluSliceSegmentInfoEXT;
  81568. static const bool allowDuplicate = false;
  81569. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eVideoEncodeH265NaluSliceSegmentInfoEXT;
  81570. # if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  81571. VULKAN_HPP_CONSTEXPR VideoEncodeH265NaluSliceSegmentInfoEXT( uint32_t ctbCount_ = {},
  81572. const VULKAN_HPP_NAMESPACE::VideoEncodeH265ReferenceListsInfoEXT * pReferenceFinalLists_ = {},
  81573. const StdVideoEncodeH265SliceSegmentHeader * pSliceSegmentHeaderStd_ = {},
  81574. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  81575. : pNext( pNext_ )
  81576. , ctbCount( ctbCount_ )
  81577. , pReferenceFinalLists( pReferenceFinalLists_ )
  81578. , pSliceSegmentHeaderStd( pSliceSegmentHeaderStd_ )
  81579. {
  81580. }
  81581. VULKAN_HPP_CONSTEXPR VideoEncodeH265NaluSliceSegmentInfoEXT( VideoEncodeH265NaluSliceSegmentInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  81582. VideoEncodeH265NaluSliceSegmentInfoEXT( VkVideoEncodeH265NaluSliceSegmentInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  81583. : VideoEncodeH265NaluSliceSegmentInfoEXT( *reinterpret_cast<VideoEncodeH265NaluSliceSegmentInfoEXT const *>( &rhs ) )
  81584. {
  81585. }
  81586. # endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  81587. VideoEncodeH265NaluSliceSegmentInfoEXT & operator=( VideoEncodeH265NaluSliceSegmentInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  81588. VideoEncodeH265NaluSliceSegmentInfoEXT & operator=( VkVideoEncodeH265NaluSliceSegmentInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  81589. {
  81590. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::VideoEncodeH265NaluSliceSegmentInfoEXT const *>( &rhs );
  81591. return *this;
  81592. }
  81593. # if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  81594. VULKAN_HPP_CONSTEXPR_14 VideoEncodeH265NaluSliceSegmentInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  81595. {
  81596. pNext = pNext_;
  81597. return *this;
  81598. }
  81599. VULKAN_HPP_CONSTEXPR_14 VideoEncodeH265NaluSliceSegmentInfoEXT & setCtbCount( uint32_t ctbCount_ ) VULKAN_HPP_NOEXCEPT
  81600. {
  81601. ctbCount = ctbCount_;
  81602. return *this;
  81603. }
  81604. VULKAN_HPP_CONSTEXPR_14 VideoEncodeH265NaluSliceSegmentInfoEXT &
  81605. setPReferenceFinalLists( const VULKAN_HPP_NAMESPACE::VideoEncodeH265ReferenceListsInfoEXT * pReferenceFinalLists_ ) VULKAN_HPP_NOEXCEPT
  81606. {
  81607. pReferenceFinalLists = pReferenceFinalLists_;
  81608. return *this;
  81609. }
  81610. VULKAN_HPP_CONSTEXPR_14 VideoEncodeH265NaluSliceSegmentInfoEXT &
  81611. setPSliceSegmentHeaderStd( const StdVideoEncodeH265SliceSegmentHeader * pSliceSegmentHeaderStd_ ) VULKAN_HPP_NOEXCEPT
  81612. {
  81613. pSliceSegmentHeaderStd = pSliceSegmentHeaderStd_;
  81614. return *this;
  81615. }
  81616. # endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  81617. operator VkVideoEncodeH265NaluSliceSegmentInfoEXT const &() const VULKAN_HPP_NOEXCEPT
  81618. {
  81619. return *reinterpret_cast<const VkVideoEncodeH265NaluSliceSegmentInfoEXT *>( this );
  81620. }
  81621. operator VkVideoEncodeH265NaluSliceSegmentInfoEXT &() VULKAN_HPP_NOEXCEPT
  81622. {
  81623. return *reinterpret_cast<VkVideoEncodeH265NaluSliceSegmentInfoEXT *>( this );
  81624. }
  81625. # if defined( VULKAN_HPP_USE_REFLECT )
  81626. # if 14 <= VULKAN_HPP_CPP_VERSION
  81627. auto
  81628. # else
  81629. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  81630. const void * const &,
  81631. uint32_t const &,
  81632. const VULKAN_HPP_NAMESPACE::VideoEncodeH265ReferenceListsInfoEXT * const &,
  81633. const StdVideoEncodeH265SliceSegmentHeader * const &>
  81634. # endif
  81635. reflect() const VULKAN_HPP_NOEXCEPT
  81636. {
  81637. return std::tie( sType, pNext, ctbCount, pReferenceFinalLists, pSliceSegmentHeaderStd );
  81638. }
  81639. # endif
  81640. # if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  81641. auto operator<=>( VideoEncodeH265NaluSliceSegmentInfoEXT const & ) const = default;
  81642. # else
  81643. bool operator==( VideoEncodeH265NaluSliceSegmentInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  81644. {
  81645. # if defined( VULKAN_HPP_USE_REFLECT )
  81646. return this->reflect() == rhs.reflect();
  81647. # else
  81648. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( ctbCount == rhs.ctbCount ) && ( pReferenceFinalLists == rhs.pReferenceFinalLists ) &&
  81649. ( pSliceSegmentHeaderStd == rhs.pSliceSegmentHeaderStd );
  81650. # endif
  81651. }
  81652. bool operator!=( VideoEncodeH265NaluSliceSegmentInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  81653. {
  81654. return !operator==( rhs );
  81655. }
  81656. # endif
  81657. public:
  81658. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eVideoEncodeH265NaluSliceSegmentInfoEXT;
  81659. const void * pNext = {};
  81660. uint32_t ctbCount = {};
  81661. const VULKAN_HPP_NAMESPACE::VideoEncodeH265ReferenceListsInfoEXT * pReferenceFinalLists = {};
  81662. const StdVideoEncodeH265SliceSegmentHeader * pSliceSegmentHeaderStd = {};
  81663. };
  81664. template <>
  81665. struct CppType<StructureType, StructureType::eVideoEncodeH265NaluSliceSegmentInfoEXT>
  81666. {
  81667. using Type = VideoEncodeH265NaluSliceSegmentInfoEXT;
  81668. };
  81669. #endif /*VK_ENABLE_BETA_EXTENSIONS*/
  81670. #if defined( VK_ENABLE_BETA_EXTENSIONS )
  81671. struct VideoEncodeH265ProfileInfoEXT
  81672. {
  81673. using NativeType = VkVideoEncodeH265ProfileInfoEXT;
  81674. static const bool allowDuplicate = false;
  81675. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eVideoEncodeH265ProfileInfoEXT;
  81676. # if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  81677. VULKAN_HPP_CONSTEXPR VideoEncodeH265ProfileInfoEXT( StdVideoH265ProfileIdc stdProfileIdc_ = {}, const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  81678. : pNext( pNext_ )
  81679. , stdProfileIdc( stdProfileIdc_ )
  81680. {
  81681. }
  81682. VULKAN_HPP_CONSTEXPR VideoEncodeH265ProfileInfoEXT( VideoEncodeH265ProfileInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  81683. VideoEncodeH265ProfileInfoEXT( VkVideoEncodeH265ProfileInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  81684. : VideoEncodeH265ProfileInfoEXT( *reinterpret_cast<VideoEncodeH265ProfileInfoEXT const *>( &rhs ) )
  81685. {
  81686. }
  81687. # endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  81688. VideoEncodeH265ProfileInfoEXT & operator=( VideoEncodeH265ProfileInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  81689. VideoEncodeH265ProfileInfoEXT & operator=( VkVideoEncodeH265ProfileInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  81690. {
  81691. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::VideoEncodeH265ProfileInfoEXT const *>( &rhs );
  81692. return *this;
  81693. }
  81694. # if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  81695. VULKAN_HPP_CONSTEXPR_14 VideoEncodeH265ProfileInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  81696. {
  81697. pNext = pNext_;
  81698. return *this;
  81699. }
  81700. VULKAN_HPP_CONSTEXPR_14 VideoEncodeH265ProfileInfoEXT & setStdProfileIdc( StdVideoH265ProfileIdc stdProfileIdc_ ) VULKAN_HPP_NOEXCEPT
  81701. {
  81702. stdProfileIdc = stdProfileIdc_;
  81703. return *this;
  81704. }
  81705. # endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  81706. operator VkVideoEncodeH265ProfileInfoEXT const &() const VULKAN_HPP_NOEXCEPT
  81707. {
  81708. return *reinterpret_cast<const VkVideoEncodeH265ProfileInfoEXT *>( this );
  81709. }
  81710. operator VkVideoEncodeH265ProfileInfoEXT &() VULKAN_HPP_NOEXCEPT
  81711. {
  81712. return *reinterpret_cast<VkVideoEncodeH265ProfileInfoEXT *>( this );
  81713. }
  81714. # if defined( VULKAN_HPP_USE_REFLECT )
  81715. # if 14 <= VULKAN_HPP_CPP_VERSION
  81716. auto
  81717. # else
  81718. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, StdVideoH265ProfileIdc const &>
  81719. # endif
  81720. reflect() const VULKAN_HPP_NOEXCEPT
  81721. {
  81722. return std::tie( sType, pNext, stdProfileIdc );
  81723. }
  81724. # endif
  81725. # if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  81726. std::strong_ordering operator<=>( VideoEncodeH265ProfileInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  81727. {
  81728. if ( auto cmp = sType <=> rhs.sType; cmp != 0 )
  81729. return cmp;
  81730. if ( auto cmp = pNext <=> rhs.pNext; cmp != 0 )
  81731. return cmp;
  81732. if ( auto cmp = memcmp( &stdProfileIdc, &rhs.stdProfileIdc, sizeof( StdVideoH265ProfileIdc ) ); cmp != 0 )
  81733. return ( cmp < 0 ) ? std::strong_ordering::less : std::strong_ordering::greater;
  81734. return std::strong_ordering::equivalent;
  81735. }
  81736. # endif
  81737. bool operator==( VideoEncodeH265ProfileInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  81738. {
  81739. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( memcmp( &stdProfileIdc, &rhs.stdProfileIdc, sizeof( StdVideoH265ProfileIdc ) ) == 0 );
  81740. }
  81741. bool operator!=( VideoEncodeH265ProfileInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  81742. {
  81743. return !operator==( rhs );
  81744. }
  81745. public:
  81746. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eVideoEncodeH265ProfileInfoEXT;
  81747. const void * pNext = {};
  81748. StdVideoH265ProfileIdc stdProfileIdc = {};
  81749. };
  81750. template <>
  81751. struct CppType<StructureType, StructureType::eVideoEncodeH265ProfileInfoEXT>
  81752. {
  81753. using Type = VideoEncodeH265ProfileInfoEXT;
  81754. };
  81755. #endif /*VK_ENABLE_BETA_EXTENSIONS*/
  81756. #if defined( VK_ENABLE_BETA_EXTENSIONS )
  81757. struct VideoEncodeH265QpEXT
  81758. {
  81759. using NativeType = VkVideoEncodeH265QpEXT;
  81760. # if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  81761. VULKAN_HPP_CONSTEXPR VideoEncodeH265QpEXT( int32_t qpI_ = {}, int32_t qpP_ = {}, int32_t qpB_ = {} ) VULKAN_HPP_NOEXCEPT
  81762. : qpI( qpI_ )
  81763. , qpP( qpP_ )
  81764. , qpB( qpB_ )
  81765. {
  81766. }
  81767. VULKAN_HPP_CONSTEXPR VideoEncodeH265QpEXT( VideoEncodeH265QpEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  81768. VideoEncodeH265QpEXT( VkVideoEncodeH265QpEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  81769. : VideoEncodeH265QpEXT( *reinterpret_cast<VideoEncodeH265QpEXT const *>( &rhs ) )
  81770. {
  81771. }
  81772. # endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  81773. VideoEncodeH265QpEXT & operator=( VideoEncodeH265QpEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  81774. VideoEncodeH265QpEXT & operator=( VkVideoEncodeH265QpEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  81775. {
  81776. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::VideoEncodeH265QpEXT const *>( &rhs );
  81777. return *this;
  81778. }
  81779. # if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  81780. VULKAN_HPP_CONSTEXPR_14 VideoEncodeH265QpEXT & setQpI( int32_t qpI_ ) VULKAN_HPP_NOEXCEPT
  81781. {
  81782. qpI = qpI_;
  81783. return *this;
  81784. }
  81785. VULKAN_HPP_CONSTEXPR_14 VideoEncodeH265QpEXT & setQpP( int32_t qpP_ ) VULKAN_HPP_NOEXCEPT
  81786. {
  81787. qpP = qpP_;
  81788. return *this;
  81789. }
  81790. VULKAN_HPP_CONSTEXPR_14 VideoEncodeH265QpEXT & setQpB( int32_t qpB_ ) VULKAN_HPP_NOEXCEPT
  81791. {
  81792. qpB = qpB_;
  81793. return *this;
  81794. }
  81795. # endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  81796. operator VkVideoEncodeH265QpEXT const &() const VULKAN_HPP_NOEXCEPT
  81797. {
  81798. return *reinterpret_cast<const VkVideoEncodeH265QpEXT *>( this );
  81799. }
  81800. operator VkVideoEncodeH265QpEXT &() VULKAN_HPP_NOEXCEPT
  81801. {
  81802. return *reinterpret_cast<VkVideoEncodeH265QpEXT *>( this );
  81803. }
  81804. # if defined( VULKAN_HPP_USE_REFLECT )
  81805. # if 14 <= VULKAN_HPP_CPP_VERSION
  81806. auto
  81807. # else
  81808. std::tuple<int32_t const &, int32_t const &, int32_t const &>
  81809. # endif
  81810. reflect() const VULKAN_HPP_NOEXCEPT
  81811. {
  81812. return std::tie( qpI, qpP, qpB );
  81813. }
  81814. # endif
  81815. # if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  81816. auto operator<=>( VideoEncodeH265QpEXT const & ) const = default;
  81817. # else
  81818. bool operator==( VideoEncodeH265QpEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  81819. {
  81820. # if defined( VULKAN_HPP_USE_REFLECT )
  81821. return this->reflect() == rhs.reflect();
  81822. # else
  81823. return ( qpI == rhs.qpI ) && ( qpP == rhs.qpP ) && ( qpB == rhs.qpB );
  81824. # endif
  81825. }
  81826. bool operator!=( VideoEncodeH265QpEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  81827. {
  81828. return !operator==( rhs );
  81829. }
  81830. # endif
  81831. public:
  81832. int32_t qpI = {};
  81833. int32_t qpP = {};
  81834. int32_t qpB = {};
  81835. };
  81836. #endif /*VK_ENABLE_BETA_EXTENSIONS*/
  81837. #if defined( VK_ENABLE_BETA_EXTENSIONS )
  81838. struct VideoEncodeH265RateControlInfoEXT
  81839. {
  81840. using NativeType = VkVideoEncodeH265RateControlInfoEXT;
  81841. static const bool allowDuplicate = false;
  81842. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eVideoEncodeH265RateControlInfoEXT;
  81843. # if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  81844. VULKAN_HPP_CONSTEXPR VideoEncodeH265RateControlInfoEXT( uint32_t gopFrameCount_ = {},
  81845. uint32_t idrPeriod_ = {},
  81846. uint32_t consecutiveBFrameCount_ = {},
  81847. VULKAN_HPP_NAMESPACE::VideoEncodeH265RateControlStructureEXT rateControlStructure_ =
  81848. VULKAN_HPP_NAMESPACE::VideoEncodeH265RateControlStructureEXT::eUnknown,
  81849. uint8_t subLayerCount_ = {},
  81850. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  81851. : pNext( pNext_ )
  81852. , gopFrameCount( gopFrameCount_ )
  81853. , idrPeriod( idrPeriod_ )
  81854. , consecutiveBFrameCount( consecutiveBFrameCount_ )
  81855. , rateControlStructure( rateControlStructure_ )
  81856. , subLayerCount( subLayerCount_ )
  81857. {
  81858. }
  81859. VULKAN_HPP_CONSTEXPR VideoEncodeH265RateControlInfoEXT( VideoEncodeH265RateControlInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  81860. VideoEncodeH265RateControlInfoEXT( VkVideoEncodeH265RateControlInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  81861. : VideoEncodeH265RateControlInfoEXT( *reinterpret_cast<VideoEncodeH265RateControlInfoEXT const *>( &rhs ) )
  81862. {
  81863. }
  81864. # endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  81865. VideoEncodeH265RateControlInfoEXT & operator=( VideoEncodeH265RateControlInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  81866. VideoEncodeH265RateControlInfoEXT & operator=( VkVideoEncodeH265RateControlInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  81867. {
  81868. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::VideoEncodeH265RateControlInfoEXT const *>( &rhs );
  81869. return *this;
  81870. }
  81871. # if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  81872. VULKAN_HPP_CONSTEXPR_14 VideoEncodeH265RateControlInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  81873. {
  81874. pNext = pNext_;
  81875. return *this;
  81876. }
  81877. VULKAN_HPP_CONSTEXPR_14 VideoEncodeH265RateControlInfoEXT & setGopFrameCount( uint32_t gopFrameCount_ ) VULKAN_HPP_NOEXCEPT
  81878. {
  81879. gopFrameCount = gopFrameCount_;
  81880. return *this;
  81881. }
  81882. VULKAN_HPP_CONSTEXPR_14 VideoEncodeH265RateControlInfoEXT & setIdrPeriod( uint32_t idrPeriod_ ) VULKAN_HPP_NOEXCEPT
  81883. {
  81884. idrPeriod = idrPeriod_;
  81885. return *this;
  81886. }
  81887. VULKAN_HPP_CONSTEXPR_14 VideoEncodeH265RateControlInfoEXT & setConsecutiveBFrameCount( uint32_t consecutiveBFrameCount_ ) VULKAN_HPP_NOEXCEPT
  81888. {
  81889. consecutiveBFrameCount = consecutiveBFrameCount_;
  81890. return *this;
  81891. }
  81892. VULKAN_HPP_CONSTEXPR_14 VideoEncodeH265RateControlInfoEXT &
  81893. setRateControlStructure( VULKAN_HPP_NAMESPACE::VideoEncodeH265RateControlStructureEXT rateControlStructure_ ) VULKAN_HPP_NOEXCEPT
  81894. {
  81895. rateControlStructure = rateControlStructure_;
  81896. return *this;
  81897. }
  81898. VULKAN_HPP_CONSTEXPR_14 VideoEncodeH265RateControlInfoEXT & setSubLayerCount( uint8_t subLayerCount_ ) VULKAN_HPP_NOEXCEPT
  81899. {
  81900. subLayerCount = subLayerCount_;
  81901. return *this;
  81902. }
  81903. # endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  81904. operator VkVideoEncodeH265RateControlInfoEXT const &() const VULKAN_HPP_NOEXCEPT
  81905. {
  81906. return *reinterpret_cast<const VkVideoEncodeH265RateControlInfoEXT *>( this );
  81907. }
  81908. operator VkVideoEncodeH265RateControlInfoEXT &() VULKAN_HPP_NOEXCEPT
  81909. {
  81910. return *reinterpret_cast<VkVideoEncodeH265RateControlInfoEXT *>( this );
  81911. }
  81912. # if defined( VULKAN_HPP_USE_REFLECT )
  81913. # if 14 <= VULKAN_HPP_CPP_VERSION
  81914. auto
  81915. # else
  81916. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  81917. const void * const &,
  81918. uint32_t const &,
  81919. uint32_t const &,
  81920. uint32_t const &,
  81921. VULKAN_HPP_NAMESPACE::VideoEncodeH265RateControlStructureEXT const &,
  81922. uint8_t const &>
  81923. # endif
  81924. reflect() const VULKAN_HPP_NOEXCEPT
  81925. {
  81926. return std::tie( sType, pNext, gopFrameCount, idrPeriod, consecutiveBFrameCount, rateControlStructure, subLayerCount );
  81927. }
  81928. # endif
  81929. # if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  81930. auto operator<=>( VideoEncodeH265RateControlInfoEXT const & ) const = default;
  81931. # else
  81932. bool operator==( VideoEncodeH265RateControlInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  81933. {
  81934. # if defined( VULKAN_HPP_USE_REFLECT )
  81935. return this->reflect() == rhs.reflect();
  81936. # else
  81937. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( gopFrameCount == rhs.gopFrameCount ) && ( idrPeriod == rhs.idrPeriod ) &&
  81938. ( consecutiveBFrameCount == rhs.consecutiveBFrameCount ) && ( rateControlStructure == rhs.rateControlStructure ) &&
  81939. ( subLayerCount == rhs.subLayerCount );
  81940. # endif
  81941. }
  81942. bool operator!=( VideoEncodeH265RateControlInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  81943. {
  81944. return !operator==( rhs );
  81945. }
  81946. # endif
  81947. public:
  81948. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eVideoEncodeH265RateControlInfoEXT;
  81949. const void * pNext = {};
  81950. uint32_t gopFrameCount = {};
  81951. uint32_t idrPeriod = {};
  81952. uint32_t consecutiveBFrameCount = {};
  81953. VULKAN_HPP_NAMESPACE::VideoEncodeH265RateControlStructureEXT rateControlStructure = VULKAN_HPP_NAMESPACE::VideoEncodeH265RateControlStructureEXT::eUnknown;
  81954. uint8_t subLayerCount = {};
  81955. };
  81956. template <>
  81957. struct CppType<StructureType, StructureType::eVideoEncodeH265RateControlInfoEXT>
  81958. {
  81959. using Type = VideoEncodeH265RateControlInfoEXT;
  81960. };
  81961. #endif /*VK_ENABLE_BETA_EXTENSIONS*/
  81962. #if defined( VK_ENABLE_BETA_EXTENSIONS )
  81963. struct VideoEncodeH265RateControlLayerInfoEXT
  81964. {
  81965. using NativeType = VkVideoEncodeH265RateControlLayerInfoEXT;
  81966. static const bool allowDuplicate = false;
  81967. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eVideoEncodeH265RateControlLayerInfoEXT;
  81968. # if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  81969. VULKAN_HPP_CONSTEXPR VideoEncodeH265RateControlLayerInfoEXT( uint8_t temporalId_ = {},
  81970. VULKAN_HPP_NAMESPACE::Bool32 useInitialRcQp_ = {},
  81971. VULKAN_HPP_NAMESPACE::VideoEncodeH265QpEXT initialRcQp_ = {},
  81972. VULKAN_HPP_NAMESPACE::Bool32 useMinQp_ = {},
  81973. VULKAN_HPP_NAMESPACE::VideoEncodeH265QpEXT minQp_ = {},
  81974. VULKAN_HPP_NAMESPACE::Bool32 useMaxQp_ = {},
  81975. VULKAN_HPP_NAMESPACE::VideoEncodeH265QpEXT maxQp_ = {},
  81976. VULKAN_HPP_NAMESPACE::Bool32 useMaxFrameSize_ = {},
  81977. VULKAN_HPP_NAMESPACE::VideoEncodeH265FrameSizeEXT maxFrameSize_ = {},
  81978. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  81979. : pNext( pNext_ )
  81980. , temporalId( temporalId_ )
  81981. , useInitialRcQp( useInitialRcQp_ )
  81982. , initialRcQp( initialRcQp_ )
  81983. , useMinQp( useMinQp_ )
  81984. , minQp( minQp_ )
  81985. , useMaxQp( useMaxQp_ )
  81986. , maxQp( maxQp_ )
  81987. , useMaxFrameSize( useMaxFrameSize_ )
  81988. , maxFrameSize( maxFrameSize_ )
  81989. {
  81990. }
  81991. VULKAN_HPP_CONSTEXPR VideoEncodeH265RateControlLayerInfoEXT( VideoEncodeH265RateControlLayerInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  81992. VideoEncodeH265RateControlLayerInfoEXT( VkVideoEncodeH265RateControlLayerInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  81993. : VideoEncodeH265RateControlLayerInfoEXT( *reinterpret_cast<VideoEncodeH265RateControlLayerInfoEXT const *>( &rhs ) )
  81994. {
  81995. }
  81996. # endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  81997. VideoEncodeH265RateControlLayerInfoEXT & operator=( VideoEncodeH265RateControlLayerInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  81998. VideoEncodeH265RateControlLayerInfoEXT & operator=( VkVideoEncodeH265RateControlLayerInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  81999. {
  82000. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::VideoEncodeH265RateControlLayerInfoEXT const *>( &rhs );
  82001. return *this;
  82002. }
  82003. # if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  82004. VULKAN_HPP_CONSTEXPR_14 VideoEncodeH265RateControlLayerInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  82005. {
  82006. pNext = pNext_;
  82007. return *this;
  82008. }
  82009. VULKAN_HPP_CONSTEXPR_14 VideoEncodeH265RateControlLayerInfoEXT & setTemporalId( uint8_t temporalId_ ) VULKAN_HPP_NOEXCEPT
  82010. {
  82011. temporalId = temporalId_;
  82012. return *this;
  82013. }
  82014. VULKAN_HPP_CONSTEXPR_14 VideoEncodeH265RateControlLayerInfoEXT & setUseInitialRcQp( VULKAN_HPP_NAMESPACE::Bool32 useInitialRcQp_ ) VULKAN_HPP_NOEXCEPT
  82015. {
  82016. useInitialRcQp = useInitialRcQp_;
  82017. return *this;
  82018. }
  82019. VULKAN_HPP_CONSTEXPR_14 VideoEncodeH265RateControlLayerInfoEXT &
  82020. setInitialRcQp( VULKAN_HPP_NAMESPACE::VideoEncodeH265QpEXT const & initialRcQp_ ) VULKAN_HPP_NOEXCEPT
  82021. {
  82022. initialRcQp = initialRcQp_;
  82023. return *this;
  82024. }
  82025. VULKAN_HPP_CONSTEXPR_14 VideoEncodeH265RateControlLayerInfoEXT & setUseMinQp( VULKAN_HPP_NAMESPACE::Bool32 useMinQp_ ) VULKAN_HPP_NOEXCEPT
  82026. {
  82027. useMinQp = useMinQp_;
  82028. return *this;
  82029. }
  82030. VULKAN_HPP_CONSTEXPR_14 VideoEncodeH265RateControlLayerInfoEXT & setMinQp( VULKAN_HPP_NAMESPACE::VideoEncodeH265QpEXT const & minQp_ ) VULKAN_HPP_NOEXCEPT
  82031. {
  82032. minQp = minQp_;
  82033. return *this;
  82034. }
  82035. VULKAN_HPP_CONSTEXPR_14 VideoEncodeH265RateControlLayerInfoEXT & setUseMaxQp( VULKAN_HPP_NAMESPACE::Bool32 useMaxQp_ ) VULKAN_HPP_NOEXCEPT
  82036. {
  82037. useMaxQp = useMaxQp_;
  82038. return *this;
  82039. }
  82040. VULKAN_HPP_CONSTEXPR_14 VideoEncodeH265RateControlLayerInfoEXT & setMaxQp( VULKAN_HPP_NAMESPACE::VideoEncodeH265QpEXT const & maxQp_ ) VULKAN_HPP_NOEXCEPT
  82041. {
  82042. maxQp = maxQp_;
  82043. return *this;
  82044. }
  82045. VULKAN_HPP_CONSTEXPR_14 VideoEncodeH265RateControlLayerInfoEXT & setUseMaxFrameSize( VULKAN_HPP_NAMESPACE::Bool32 useMaxFrameSize_ ) VULKAN_HPP_NOEXCEPT
  82046. {
  82047. useMaxFrameSize = useMaxFrameSize_;
  82048. return *this;
  82049. }
  82050. VULKAN_HPP_CONSTEXPR_14 VideoEncodeH265RateControlLayerInfoEXT &
  82051. setMaxFrameSize( VULKAN_HPP_NAMESPACE::VideoEncodeH265FrameSizeEXT const & maxFrameSize_ ) VULKAN_HPP_NOEXCEPT
  82052. {
  82053. maxFrameSize = maxFrameSize_;
  82054. return *this;
  82055. }
  82056. # endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  82057. operator VkVideoEncodeH265RateControlLayerInfoEXT const &() const VULKAN_HPP_NOEXCEPT
  82058. {
  82059. return *reinterpret_cast<const VkVideoEncodeH265RateControlLayerInfoEXT *>( this );
  82060. }
  82061. operator VkVideoEncodeH265RateControlLayerInfoEXT &() VULKAN_HPP_NOEXCEPT
  82062. {
  82063. return *reinterpret_cast<VkVideoEncodeH265RateControlLayerInfoEXT *>( this );
  82064. }
  82065. # if defined( VULKAN_HPP_USE_REFLECT )
  82066. # if 14 <= VULKAN_HPP_CPP_VERSION
  82067. auto
  82068. # else
  82069. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  82070. const void * const &,
  82071. uint8_t const &,
  82072. VULKAN_HPP_NAMESPACE::Bool32 const &,
  82073. VULKAN_HPP_NAMESPACE::VideoEncodeH265QpEXT const &,
  82074. VULKAN_HPP_NAMESPACE::Bool32 const &,
  82075. VULKAN_HPP_NAMESPACE::VideoEncodeH265QpEXT const &,
  82076. VULKAN_HPP_NAMESPACE::Bool32 const &,
  82077. VULKAN_HPP_NAMESPACE::VideoEncodeH265QpEXT const &,
  82078. VULKAN_HPP_NAMESPACE::Bool32 const &,
  82079. VULKAN_HPP_NAMESPACE::VideoEncodeH265FrameSizeEXT const &>
  82080. # endif
  82081. reflect() const VULKAN_HPP_NOEXCEPT
  82082. {
  82083. return std::tie( sType, pNext, temporalId, useInitialRcQp, initialRcQp, useMinQp, minQp, useMaxQp, maxQp, useMaxFrameSize, maxFrameSize );
  82084. }
  82085. # endif
  82086. # if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  82087. auto operator<=>( VideoEncodeH265RateControlLayerInfoEXT const & ) const = default;
  82088. # else
  82089. bool operator==( VideoEncodeH265RateControlLayerInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  82090. {
  82091. # if defined( VULKAN_HPP_USE_REFLECT )
  82092. return this->reflect() == rhs.reflect();
  82093. # else
  82094. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( temporalId == rhs.temporalId ) && ( useInitialRcQp == rhs.useInitialRcQp ) &&
  82095. ( initialRcQp == rhs.initialRcQp ) && ( useMinQp == rhs.useMinQp ) && ( minQp == rhs.minQp ) && ( useMaxQp == rhs.useMaxQp ) &&
  82096. ( maxQp == rhs.maxQp ) && ( useMaxFrameSize == rhs.useMaxFrameSize ) && ( maxFrameSize == rhs.maxFrameSize );
  82097. # endif
  82098. }
  82099. bool operator!=( VideoEncodeH265RateControlLayerInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  82100. {
  82101. return !operator==( rhs );
  82102. }
  82103. # endif
  82104. public:
  82105. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eVideoEncodeH265RateControlLayerInfoEXT;
  82106. const void * pNext = {};
  82107. uint8_t temporalId = {};
  82108. VULKAN_HPP_NAMESPACE::Bool32 useInitialRcQp = {};
  82109. VULKAN_HPP_NAMESPACE::VideoEncodeH265QpEXT initialRcQp = {};
  82110. VULKAN_HPP_NAMESPACE::Bool32 useMinQp = {};
  82111. VULKAN_HPP_NAMESPACE::VideoEncodeH265QpEXT minQp = {};
  82112. VULKAN_HPP_NAMESPACE::Bool32 useMaxQp = {};
  82113. VULKAN_HPP_NAMESPACE::VideoEncodeH265QpEXT maxQp = {};
  82114. VULKAN_HPP_NAMESPACE::Bool32 useMaxFrameSize = {};
  82115. VULKAN_HPP_NAMESPACE::VideoEncodeH265FrameSizeEXT maxFrameSize = {};
  82116. };
  82117. template <>
  82118. struct CppType<StructureType, StructureType::eVideoEncodeH265RateControlLayerInfoEXT>
  82119. {
  82120. using Type = VideoEncodeH265RateControlLayerInfoEXT;
  82121. };
  82122. #endif /*VK_ENABLE_BETA_EXTENSIONS*/
  82123. #if defined( VK_ENABLE_BETA_EXTENSIONS )
  82124. struct VideoEncodeH265SessionParametersAddInfoEXT
  82125. {
  82126. using NativeType = VkVideoEncodeH265SessionParametersAddInfoEXT;
  82127. static const bool allowDuplicate = false;
  82128. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eVideoEncodeH265SessionParametersAddInfoEXT;
  82129. # if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  82130. VULKAN_HPP_CONSTEXPR VideoEncodeH265SessionParametersAddInfoEXT( uint32_t vpsStdCount_ = {},
  82131. const StdVideoH265VideoParameterSet * pVpsStd_ = {},
  82132. uint32_t spsStdCount_ = {},
  82133. const StdVideoH265SequenceParameterSet * pSpsStd_ = {},
  82134. uint32_t ppsStdCount_ = {},
  82135. const StdVideoH265PictureParameterSet * pPpsStd_ = {},
  82136. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  82137. : pNext( pNext_ )
  82138. , vpsStdCount( vpsStdCount_ )
  82139. , pVpsStd( pVpsStd_ )
  82140. , spsStdCount( spsStdCount_ )
  82141. , pSpsStd( pSpsStd_ )
  82142. , ppsStdCount( ppsStdCount_ )
  82143. , pPpsStd( pPpsStd_ )
  82144. {
  82145. }
  82146. VULKAN_HPP_CONSTEXPR VideoEncodeH265SessionParametersAddInfoEXT( VideoEncodeH265SessionParametersAddInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  82147. VideoEncodeH265SessionParametersAddInfoEXT( VkVideoEncodeH265SessionParametersAddInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  82148. : VideoEncodeH265SessionParametersAddInfoEXT( *reinterpret_cast<VideoEncodeH265SessionParametersAddInfoEXT const *>( &rhs ) )
  82149. {
  82150. }
  82151. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  82152. VideoEncodeH265SessionParametersAddInfoEXT( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const StdVideoH265VideoParameterSet> const & vpsStd_,
  82153. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const StdVideoH265SequenceParameterSet> const & spsStd_ = {},
  82154. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const StdVideoH265PictureParameterSet> const & ppsStd_ = {},
  82155. const void * pNext_ = nullptr )
  82156. : pNext( pNext_ )
  82157. , vpsStdCount( static_cast<uint32_t>( vpsStd_.size() ) )
  82158. , pVpsStd( vpsStd_.data() )
  82159. , spsStdCount( static_cast<uint32_t>( spsStd_.size() ) )
  82160. , pSpsStd( spsStd_.data() )
  82161. , ppsStdCount( static_cast<uint32_t>( ppsStd_.size() ) )
  82162. , pPpsStd( ppsStd_.data() )
  82163. {
  82164. }
  82165. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  82166. # endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  82167. VideoEncodeH265SessionParametersAddInfoEXT & operator=( VideoEncodeH265SessionParametersAddInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  82168. VideoEncodeH265SessionParametersAddInfoEXT & operator=( VkVideoEncodeH265SessionParametersAddInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  82169. {
  82170. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::VideoEncodeH265SessionParametersAddInfoEXT const *>( &rhs );
  82171. return *this;
  82172. }
  82173. # if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  82174. VULKAN_HPP_CONSTEXPR_14 VideoEncodeH265SessionParametersAddInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  82175. {
  82176. pNext = pNext_;
  82177. return *this;
  82178. }
  82179. VULKAN_HPP_CONSTEXPR_14 VideoEncodeH265SessionParametersAddInfoEXT & setVpsStdCount( uint32_t vpsStdCount_ ) VULKAN_HPP_NOEXCEPT
  82180. {
  82181. vpsStdCount = vpsStdCount_;
  82182. return *this;
  82183. }
  82184. VULKAN_HPP_CONSTEXPR_14 VideoEncodeH265SessionParametersAddInfoEXT & setPVpsStd( const StdVideoH265VideoParameterSet * pVpsStd_ ) VULKAN_HPP_NOEXCEPT
  82185. {
  82186. pVpsStd = pVpsStd_;
  82187. return *this;
  82188. }
  82189. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  82190. VideoEncodeH265SessionParametersAddInfoEXT &
  82191. setVpsStd( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const StdVideoH265VideoParameterSet> const & vpsStd_ ) VULKAN_HPP_NOEXCEPT
  82192. {
  82193. vpsStdCount = static_cast<uint32_t>( vpsStd_.size() );
  82194. pVpsStd = vpsStd_.data();
  82195. return *this;
  82196. }
  82197. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  82198. VULKAN_HPP_CONSTEXPR_14 VideoEncodeH265SessionParametersAddInfoEXT & setSpsStdCount( uint32_t spsStdCount_ ) VULKAN_HPP_NOEXCEPT
  82199. {
  82200. spsStdCount = spsStdCount_;
  82201. return *this;
  82202. }
  82203. VULKAN_HPP_CONSTEXPR_14 VideoEncodeH265SessionParametersAddInfoEXT & setPSpsStd( const StdVideoH265SequenceParameterSet * pSpsStd_ ) VULKAN_HPP_NOEXCEPT
  82204. {
  82205. pSpsStd = pSpsStd_;
  82206. return *this;
  82207. }
  82208. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  82209. VideoEncodeH265SessionParametersAddInfoEXT &
  82210. setSpsStd( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const StdVideoH265SequenceParameterSet> const & spsStd_ ) VULKAN_HPP_NOEXCEPT
  82211. {
  82212. spsStdCount = static_cast<uint32_t>( spsStd_.size() );
  82213. pSpsStd = spsStd_.data();
  82214. return *this;
  82215. }
  82216. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  82217. VULKAN_HPP_CONSTEXPR_14 VideoEncodeH265SessionParametersAddInfoEXT & setPpsStdCount( uint32_t ppsStdCount_ ) VULKAN_HPP_NOEXCEPT
  82218. {
  82219. ppsStdCount = ppsStdCount_;
  82220. return *this;
  82221. }
  82222. VULKAN_HPP_CONSTEXPR_14 VideoEncodeH265SessionParametersAddInfoEXT & setPPpsStd( const StdVideoH265PictureParameterSet * pPpsStd_ ) VULKAN_HPP_NOEXCEPT
  82223. {
  82224. pPpsStd = pPpsStd_;
  82225. return *this;
  82226. }
  82227. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  82228. VideoEncodeH265SessionParametersAddInfoEXT &
  82229. setPpsStd( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const StdVideoH265PictureParameterSet> const & ppsStd_ ) VULKAN_HPP_NOEXCEPT
  82230. {
  82231. ppsStdCount = static_cast<uint32_t>( ppsStd_.size() );
  82232. pPpsStd = ppsStd_.data();
  82233. return *this;
  82234. }
  82235. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  82236. # endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  82237. operator VkVideoEncodeH265SessionParametersAddInfoEXT const &() const VULKAN_HPP_NOEXCEPT
  82238. {
  82239. return *reinterpret_cast<const VkVideoEncodeH265SessionParametersAddInfoEXT *>( this );
  82240. }
  82241. operator VkVideoEncodeH265SessionParametersAddInfoEXT &() VULKAN_HPP_NOEXCEPT
  82242. {
  82243. return *reinterpret_cast<VkVideoEncodeH265SessionParametersAddInfoEXT *>( this );
  82244. }
  82245. # if defined( VULKAN_HPP_USE_REFLECT )
  82246. # if 14 <= VULKAN_HPP_CPP_VERSION
  82247. auto
  82248. # else
  82249. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  82250. const void * const &,
  82251. uint32_t const &,
  82252. const StdVideoH265VideoParameterSet * const &,
  82253. uint32_t const &,
  82254. const StdVideoH265SequenceParameterSet * const &,
  82255. uint32_t const &,
  82256. const StdVideoH265PictureParameterSet * const &>
  82257. # endif
  82258. reflect() const VULKAN_HPP_NOEXCEPT
  82259. {
  82260. return std::tie( sType, pNext, vpsStdCount, pVpsStd, spsStdCount, pSpsStd, ppsStdCount, pPpsStd );
  82261. }
  82262. # endif
  82263. # if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  82264. auto operator<=>( VideoEncodeH265SessionParametersAddInfoEXT const & ) const = default;
  82265. # else
  82266. bool operator==( VideoEncodeH265SessionParametersAddInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  82267. {
  82268. # if defined( VULKAN_HPP_USE_REFLECT )
  82269. return this->reflect() == rhs.reflect();
  82270. # else
  82271. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( vpsStdCount == rhs.vpsStdCount ) && ( pVpsStd == rhs.pVpsStd ) &&
  82272. ( spsStdCount == rhs.spsStdCount ) && ( pSpsStd == rhs.pSpsStd ) && ( ppsStdCount == rhs.ppsStdCount ) && ( pPpsStd == rhs.pPpsStd );
  82273. # endif
  82274. }
  82275. bool operator!=( VideoEncodeH265SessionParametersAddInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  82276. {
  82277. return !operator==( rhs );
  82278. }
  82279. # endif
  82280. public:
  82281. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eVideoEncodeH265SessionParametersAddInfoEXT;
  82282. const void * pNext = {};
  82283. uint32_t vpsStdCount = {};
  82284. const StdVideoH265VideoParameterSet * pVpsStd = {};
  82285. uint32_t spsStdCount = {};
  82286. const StdVideoH265SequenceParameterSet * pSpsStd = {};
  82287. uint32_t ppsStdCount = {};
  82288. const StdVideoH265PictureParameterSet * pPpsStd = {};
  82289. };
  82290. template <>
  82291. struct CppType<StructureType, StructureType::eVideoEncodeH265SessionParametersAddInfoEXT>
  82292. {
  82293. using Type = VideoEncodeH265SessionParametersAddInfoEXT;
  82294. };
  82295. #endif /*VK_ENABLE_BETA_EXTENSIONS*/
  82296. #if defined( VK_ENABLE_BETA_EXTENSIONS )
  82297. struct VideoEncodeH265SessionParametersCreateInfoEXT
  82298. {
  82299. using NativeType = VkVideoEncodeH265SessionParametersCreateInfoEXT;
  82300. static const bool allowDuplicate = false;
  82301. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eVideoEncodeH265SessionParametersCreateInfoEXT;
  82302. # if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  82303. VULKAN_HPP_CONSTEXPR
  82304. VideoEncodeH265SessionParametersCreateInfoEXT( uint32_t maxVpsStdCount_ = {},
  82305. uint32_t maxSpsStdCount_ = {},
  82306. uint32_t maxPpsStdCount_ = {},
  82307. const VULKAN_HPP_NAMESPACE::VideoEncodeH265SessionParametersAddInfoEXT * pParametersAddInfo_ = {},
  82308. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  82309. : pNext( pNext_ )
  82310. , maxVpsStdCount( maxVpsStdCount_ )
  82311. , maxSpsStdCount( maxSpsStdCount_ )
  82312. , maxPpsStdCount( maxPpsStdCount_ )
  82313. , pParametersAddInfo( pParametersAddInfo_ )
  82314. {
  82315. }
  82316. VULKAN_HPP_CONSTEXPR
  82317. VideoEncodeH265SessionParametersCreateInfoEXT( VideoEncodeH265SessionParametersCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  82318. VideoEncodeH265SessionParametersCreateInfoEXT( VkVideoEncodeH265SessionParametersCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  82319. : VideoEncodeH265SessionParametersCreateInfoEXT( *reinterpret_cast<VideoEncodeH265SessionParametersCreateInfoEXT const *>( &rhs ) )
  82320. {
  82321. }
  82322. # endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  82323. VideoEncodeH265SessionParametersCreateInfoEXT & operator=( VideoEncodeH265SessionParametersCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  82324. VideoEncodeH265SessionParametersCreateInfoEXT & operator=( VkVideoEncodeH265SessionParametersCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  82325. {
  82326. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::VideoEncodeH265SessionParametersCreateInfoEXT const *>( &rhs );
  82327. return *this;
  82328. }
  82329. # if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  82330. VULKAN_HPP_CONSTEXPR_14 VideoEncodeH265SessionParametersCreateInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  82331. {
  82332. pNext = pNext_;
  82333. return *this;
  82334. }
  82335. VULKAN_HPP_CONSTEXPR_14 VideoEncodeH265SessionParametersCreateInfoEXT & setMaxVpsStdCount( uint32_t maxVpsStdCount_ ) VULKAN_HPP_NOEXCEPT
  82336. {
  82337. maxVpsStdCount = maxVpsStdCount_;
  82338. return *this;
  82339. }
  82340. VULKAN_HPP_CONSTEXPR_14 VideoEncodeH265SessionParametersCreateInfoEXT & setMaxSpsStdCount( uint32_t maxSpsStdCount_ ) VULKAN_HPP_NOEXCEPT
  82341. {
  82342. maxSpsStdCount = maxSpsStdCount_;
  82343. return *this;
  82344. }
  82345. VULKAN_HPP_CONSTEXPR_14 VideoEncodeH265SessionParametersCreateInfoEXT & setMaxPpsStdCount( uint32_t maxPpsStdCount_ ) VULKAN_HPP_NOEXCEPT
  82346. {
  82347. maxPpsStdCount = maxPpsStdCount_;
  82348. return *this;
  82349. }
  82350. VULKAN_HPP_CONSTEXPR_14 VideoEncodeH265SessionParametersCreateInfoEXT &
  82351. setPParametersAddInfo( const VULKAN_HPP_NAMESPACE::VideoEncodeH265SessionParametersAddInfoEXT * pParametersAddInfo_ ) VULKAN_HPP_NOEXCEPT
  82352. {
  82353. pParametersAddInfo = pParametersAddInfo_;
  82354. return *this;
  82355. }
  82356. # endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  82357. operator VkVideoEncodeH265SessionParametersCreateInfoEXT const &() const VULKAN_HPP_NOEXCEPT
  82358. {
  82359. return *reinterpret_cast<const VkVideoEncodeH265SessionParametersCreateInfoEXT *>( this );
  82360. }
  82361. operator VkVideoEncodeH265SessionParametersCreateInfoEXT &() VULKAN_HPP_NOEXCEPT
  82362. {
  82363. return *reinterpret_cast<VkVideoEncodeH265SessionParametersCreateInfoEXT *>( this );
  82364. }
  82365. # if defined( VULKAN_HPP_USE_REFLECT )
  82366. # if 14 <= VULKAN_HPP_CPP_VERSION
  82367. auto
  82368. # else
  82369. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  82370. const void * const &,
  82371. uint32_t const &,
  82372. uint32_t const &,
  82373. uint32_t const &,
  82374. const VULKAN_HPP_NAMESPACE::VideoEncodeH265SessionParametersAddInfoEXT * const &>
  82375. # endif
  82376. reflect() const VULKAN_HPP_NOEXCEPT
  82377. {
  82378. return std::tie( sType, pNext, maxVpsStdCount, maxSpsStdCount, maxPpsStdCount, pParametersAddInfo );
  82379. }
  82380. # endif
  82381. # if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  82382. auto operator<=>( VideoEncodeH265SessionParametersCreateInfoEXT const & ) const = default;
  82383. # else
  82384. bool operator==( VideoEncodeH265SessionParametersCreateInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  82385. {
  82386. # if defined( VULKAN_HPP_USE_REFLECT )
  82387. return this->reflect() == rhs.reflect();
  82388. # else
  82389. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( maxVpsStdCount == rhs.maxVpsStdCount ) && ( maxSpsStdCount == rhs.maxSpsStdCount ) &&
  82390. ( maxPpsStdCount == rhs.maxPpsStdCount ) && ( pParametersAddInfo == rhs.pParametersAddInfo );
  82391. # endif
  82392. }
  82393. bool operator!=( VideoEncodeH265SessionParametersCreateInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  82394. {
  82395. return !operator==( rhs );
  82396. }
  82397. # endif
  82398. public:
  82399. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eVideoEncodeH265SessionParametersCreateInfoEXT;
  82400. const void * pNext = {};
  82401. uint32_t maxVpsStdCount = {};
  82402. uint32_t maxSpsStdCount = {};
  82403. uint32_t maxPpsStdCount = {};
  82404. const VULKAN_HPP_NAMESPACE::VideoEncodeH265SessionParametersAddInfoEXT * pParametersAddInfo = {};
  82405. };
  82406. template <>
  82407. struct CppType<StructureType, StructureType::eVideoEncodeH265SessionParametersCreateInfoEXT>
  82408. {
  82409. using Type = VideoEncodeH265SessionParametersCreateInfoEXT;
  82410. };
  82411. #endif /*VK_ENABLE_BETA_EXTENSIONS*/
  82412. #if defined( VK_ENABLE_BETA_EXTENSIONS )
  82413. struct VideoEncodeH265VclFrameInfoEXT
  82414. {
  82415. using NativeType = VkVideoEncodeH265VclFrameInfoEXT;
  82416. static const bool allowDuplicate = false;
  82417. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eVideoEncodeH265VclFrameInfoEXT;
  82418. # if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  82419. VULKAN_HPP_CONSTEXPR VideoEncodeH265VclFrameInfoEXT( const VULKAN_HPP_NAMESPACE::VideoEncodeH265ReferenceListsInfoEXT * pReferenceFinalLists_ = {},
  82420. uint32_t naluSliceSegmentEntryCount_ = {},
  82421. const VULKAN_HPP_NAMESPACE::VideoEncodeH265NaluSliceSegmentInfoEXT * pNaluSliceSegmentEntries_ = {},
  82422. const StdVideoEncodeH265PictureInfo * pCurrentPictureInfo_ = {},
  82423. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  82424. : pNext( pNext_ )
  82425. , pReferenceFinalLists( pReferenceFinalLists_ )
  82426. , naluSliceSegmentEntryCount( naluSliceSegmentEntryCount_ )
  82427. , pNaluSliceSegmentEntries( pNaluSliceSegmentEntries_ )
  82428. , pCurrentPictureInfo( pCurrentPictureInfo_ )
  82429. {
  82430. }
  82431. VULKAN_HPP_CONSTEXPR VideoEncodeH265VclFrameInfoEXT( VideoEncodeH265VclFrameInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  82432. VideoEncodeH265VclFrameInfoEXT( VkVideoEncodeH265VclFrameInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  82433. : VideoEncodeH265VclFrameInfoEXT( *reinterpret_cast<VideoEncodeH265VclFrameInfoEXT const *>( &rhs ) )
  82434. {
  82435. }
  82436. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  82437. VideoEncodeH265VclFrameInfoEXT(
  82438. const VULKAN_HPP_NAMESPACE::VideoEncodeH265ReferenceListsInfoEXT * pReferenceFinalLists_,
  82439. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::VideoEncodeH265NaluSliceSegmentInfoEXT> const & naluSliceSegmentEntries_,
  82440. const StdVideoEncodeH265PictureInfo * pCurrentPictureInfo_ = {},
  82441. const void * pNext_ = nullptr )
  82442. : pNext( pNext_ )
  82443. , pReferenceFinalLists( pReferenceFinalLists_ )
  82444. , naluSliceSegmentEntryCount( static_cast<uint32_t>( naluSliceSegmentEntries_.size() ) )
  82445. , pNaluSliceSegmentEntries( naluSliceSegmentEntries_.data() )
  82446. , pCurrentPictureInfo( pCurrentPictureInfo_ )
  82447. {
  82448. }
  82449. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  82450. # endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  82451. VideoEncodeH265VclFrameInfoEXT & operator=( VideoEncodeH265VclFrameInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  82452. VideoEncodeH265VclFrameInfoEXT & operator=( VkVideoEncodeH265VclFrameInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  82453. {
  82454. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::VideoEncodeH265VclFrameInfoEXT const *>( &rhs );
  82455. return *this;
  82456. }
  82457. # if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  82458. VULKAN_HPP_CONSTEXPR_14 VideoEncodeH265VclFrameInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  82459. {
  82460. pNext = pNext_;
  82461. return *this;
  82462. }
  82463. VULKAN_HPP_CONSTEXPR_14 VideoEncodeH265VclFrameInfoEXT &
  82464. setPReferenceFinalLists( const VULKAN_HPP_NAMESPACE::VideoEncodeH265ReferenceListsInfoEXT * pReferenceFinalLists_ ) VULKAN_HPP_NOEXCEPT
  82465. {
  82466. pReferenceFinalLists = pReferenceFinalLists_;
  82467. return *this;
  82468. }
  82469. VULKAN_HPP_CONSTEXPR_14 VideoEncodeH265VclFrameInfoEXT & setNaluSliceSegmentEntryCount( uint32_t naluSliceSegmentEntryCount_ ) VULKAN_HPP_NOEXCEPT
  82470. {
  82471. naluSliceSegmentEntryCount = naluSliceSegmentEntryCount_;
  82472. return *this;
  82473. }
  82474. VULKAN_HPP_CONSTEXPR_14 VideoEncodeH265VclFrameInfoEXT &
  82475. setPNaluSliceSegmentEntries( const VULKAN_HPP_NAMESPACE::VideoEncodeH265NaluSliceSegmentInfoEXT * pNaluSliceSegmentEntries_ ) VULKAN_HPP_NOEXCEPT
  82476. {
  82477. pNaluSliceSegmentEntries = pNaluSliceSegmentEntries_;
  82478. return *this;
  82479. }
  82480. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  82481. VideoEncodeH265VclFrameInfoEXT & setNaluSliceSegmentEntries(
  82482. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::VideoEncodeH265NaluSliceSegmentInfoEXT> const & naluSliceSegmentEntries_ )
  82483. VULKAN_HPP_NOEXCEPT
  82484. {
  82485. naluSliceSegmentEntryCount = static_cast<uint32_t>( naluSliceSegmentEntries_.size() );
  82486. pNaluSliceSegmentEntries = naluSliceSegmentEntries_.data();
  82487. return *this;
  82488. }
  82489. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  82490. VULKAN_HPP_CONSTEXPR_14 VideoEncodeH265VclFrameInfoEXT &
  82491. setPCurrentPictureInfo( const StdVideoEncodeH265PictureInfo * pCurrentPictureInfo_ ) VULKAN_HPP_NOEXCEPT
  82492. {
  82493. pCurrentPictureInfo = pCurrentPictureInfo_;
  82494. return *this;
  82495. }
  82496. # endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  82497. operator VkVideoEncodeH265VclFrameInfoEXT const &() const VULKAN_HPP_NOEXCEPT
  82498. {
  82499. return *reinterpret_cast<const VkVideoEncodeH265VclFrameInfoEXT *>( this );
  82500. }
  82501. operator VkVideoEncodeH265VclFrameInfoEXT &() VULKAN_HPP_NOEXCEPT
  82502. {
  82503. return *reinterpret_cast<VkVideoEncodeH265VclFrameInfoEXT *>( this );
  82504. }
  82505. # if defined( VULKAN_HPP_USE_REFLECT )
  82506. # if 14 <= VULKAN_HPP_CPP_VERSION
  82507. auto
  82508. # else
  82509. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  82510. const void * const &,
  82511. const VULKAN_HPP_NAMESPACE::VideoEncodeH265ReferenceListsInfoEXT * const &,
  82512. uint32_t const &,
  82513. const VULKAN_HPP_NAMESPACE::VideoEncodeH265NaluSliceSegmentInfoEXT * const &,
  82514. const StdVideoEncodeH265PictureInfo * const &>
  82515. # endif
  82516. reflect() const VULKAN_HPP_NOEXCEPT
  82517. {
  82518. return std::tie( sType, pNext, pReferenceFinalLists, naluSliceSegmentEntryCount, pNaluSliceSegmentEntries, pCurrentPictureInfo );
  82519. }
  82520. # endif
  82521. # if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  82522. auto operator<=>( VideoEncodeH265VclFrameInfoEXT const & ) const = default;
  82523. # else
  82524. bool operator==( VideoEncodeH265VclFrameInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  82525. {
  82526. # if defined( VULKAN_HPP_USE_REFLECT )
  82527. return this->reflect() == rhs.reflect();
  82528. # else
  82529. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( pReferenceFinalLists == rhs.pReferenceFinalLists ) &&
  82530. ( naluSliceSegmentEntryCount == rhs.naluSliceSegmentEntryCount ) && ( pNaluSliceSegmentEntries == rhs.pNaluSliceSegmentEntries ) &&
  82531. ( pCurrentPictureInfo == rhs.pCurrentPictureInfo );
  82532. # endif
  82533. }
  82534. bool operator!=( VideoEncodeH265VclFrameInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  82535. {
  82536. return !operator==( rhs );
  82537. }
  82538. # endif
  82539. public:
  82540. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eVideoEncodeH265VclFrameInfoEXT;
  82541. const void * pNext = {};
  82542. const VULKAN_HPP_NAMESPACE::VideoEncodeH265ReferenceListsInfoEXT * pReferenceFinalLists = {};
  82543. uint32_t naluSliceSegmentEntryCount = {};
  82544. const VULKAN_HPP_NAMESPACE::VideoEncodeH265NaluSliceSegmentInfoEXT * pNaluSliceSegmentEntries = {};
  82545. const StdVideoEncodeH265PictureInfo * pCurrentPictureInfo = {};
  82546. };
  82547. template <>
  82548. struct CppType<StructureType, StructureType::eVideoEncodeH265VclFrameInfoEXT>
  82549. {
  82550. using Type = VideoEncodeH265VclFrameInfoEXT;
  82551. };
  82552. #endif /*VK_ENABLE_BETA_EXTENSIONS*/
  82553. #if defined( VK_ENABLE_BETA_EXTENSIONS )
  82554. struct VideoEncodeInfoKHR
  82555. {
  82556. using NativeType = VkVideoEncodeInfoKHR;
  82557. static const bool allowDuplicate = false;
  82558. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eVideoEncodeInfoKHR;
  82559. # if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  82560. VULKAN_HPP_CONSTEXPR VideoEncodeInfoKHR( VULKAN_HPP_NAMESPACE::VideoEncodeFlagsKHR flags_ = {},
  82561. uint32_t qualityLevel_ = {},
  82562. VULKAN_HPP_NAMESPACE::Buffer dstBitstreamBuffer_ = {},
  82563. VULKAN_HPP_NAMESPACE::DeviceSize dstBitstreamBufferOffset_ = {},
  82564. VULKAN_HPP_NAMESPACE::DeviceSize dstBitstreamBufferMaxRange_ = {},
  82565. VULKAN_HPP_NAMESPACE::VideoPictureResourceInfoKHR srcPictureResource_ = {},
  82566. const VULKAN_HPP_NAMESPACE::VideoReferenceSlotInfoKHR * pSetupReferenceSlot_ = {},
  82567. uint32_t referenceSlotCount_ = {},
  82568. const VULKAN_HPP_NAMESPACE::VideoReferenceSlotInfoKHR * pReferenceSlots_ = {},
  82569. uint32_t precedingExternallyEncodedBytes_ = {},
  82570. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  82571. : pNext( pNext_ )
  82572. , flags( flags_ )
  82573. , qualityLevel( qualityLevel_ )
  82574. , dstBitstreamBuffer( dstBitstreamBuffer_ )
  82575. , dstBitstreamBufferOffset( dstBitstreamBufferOffset_ )
  82576. , dstBitstreamBufferMaxRange( dstBitstreamBufferMaxRange_ )
  82577. , srcPictureResource( srcPictureResource_ )
  82578. , pSetupReferenceSlot( pSetupReferenceSlot_ )
  82579. , referenceSlotCount( referenceSlotCount_ )
  82580. , pReferenceSlots( pReferenceSlots_ )
  82581. , precedingExternallyEncodedBytes( precedingExternallyEncodedBytes_ )
  82582. {
  82583. }
  82584. VULKAN_HPP_CONSTEXPR VideoEncodeInfoKHR( VideoEncodeInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  82585. VideoEncodeInfoKHR( VkVideoEncodeInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT : VideoEncodeInfoKHR( *reinterpret_cast<VideoEncodeInfoKHR const *>( &rhs ) ) {}
  82586. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  82587. VideoEncodeInfoKHR( VULKAN_HPP_NAMESPACE::VideoEncodeFlagsKHR flags_,
  82588. uint32_t qualityLevel_,
  82589. VULKAN_HPP_NAMESPACE::Buffer dstBitstreamBuffer_,
  82590. VULKAN_HPP_NAMESPACE::DeviceSize dstBitstreamBufferOffset_,
  82591. VULKAN_HPP_NAMESPACE::DeviceSize dstBitstreamBufferMaxRange_,
  82592. VULKAN_HPP_NAMESPACE::VideoPictureResourceInfoKHR srcPictureResource_,
  82593. const VULKAN_HPP_NAMESPACE::VideoReferenceSlotInfoKHR * pSetupReferenceSlot_,
  82594. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::VideoReferenceSlotInfoKHR> const & referenceSlots_,
  82595. uint32_t precedingExternallyEncodedBytes_ = {},
  82596. const void * pNext_ = nullptr )
  82597. : pNext( pNext_ )
  82598. , flags( flags_ )
  82599. , qualityLevel( qualityLevel_ )
  82600. , dstBitstreamBuffer( dstBitstreamBuffer_ )
  82601. , dstBitstreamBufferOffset( dstBitstreamBufferOffset_ )
  82602. , dstBitstreamBufferMaxRange( dstBitstreamBufferMaxRange_ )
  82603. , srcPictureResource( srcPictureResource_ )
  82604. , pSetupReferenceSlot( pSetupReferenceSlot_ )
  82605. , referenceSlotCount( static_cast<uint32_t>( referenceSlots_.size() ) )
  82606. , pReferenceSlots( referenceSlots_.data() )
  82607. , precedingExternallyEncodedBytes( precedingExternallyEncodedBytes_ )
  82608. {
  82609. }
  82610. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  82611. # endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  82612. VideoEncodeInfoKHR & operator=( VideoEncodeInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  82613. VideoEncodeInfoKHR & operator=( VkVideoEncodeInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  82614. {
  82615. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::VideoEncodeInfoKHR const *>( &rhs );
  82616. return *this;
  82617. }
  82618. # if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  82619. VULKAN_HPP_CONSTEXPR_14 VideoEncodeInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  82620. {
  82621. pNext = pNext_;
  82622. return *this;
  82623. }
  82624. VULKAN_HPP_CONSTEXPR_14 VideoEncodeInfoKHR & setFlags( VULKAN_HPP_NAMESPACE::VideoEncodeFlagsKHR flags_ ) VULKAN_HPP_NOEXCEPT
  82625. {
  82626. flags = flags_;
  82627. return *this;
  82628. }
  82629. VULKAN_HPP_CONSTEXPR_14 VideoEncodeInfoKHR & setQualityLevel( uint32_t qualityLevel_ ) VULKAN_HPP_NOEXCEPT
  82630. {
  82631. qualityLevel = qualityLevel_;
  82632. return *this;
  82633. }
  82634. VULKAN_HPP_CONSTEXPR_14 VideoEncodeInfoKHR & setDstBitstreamBuffer( VULKAN_HPP_NAMESPACE::Buffer dstBitstreamBuffer_ ) VULKAN_HPP_NOEXCEPT
  82635. {
  82636. dstBitstreamBuffer = dstBitstreamBuffer_;
  82637. return *this;
  82638. }
  82639. VULKAN_HPP_CONSTEXPR_14 VideoEncodeInfoKHR & setDstBitstreamBufferOffset( VULKAN_HPP_NAMESPACE::DeviceSize dstBitstreamBufferOffset_ ) VULKAN_HPP_NOEXCEPT
  82640. {
  82641. dstBitstreamBufferOffset = dstBitstreamBufferOffset_;
  82642. return *this;
  82643. }
  82644. VULKAN_HPP_CONSTEXPR_14 VideoEncodeInfoKHR &
  82645. setDstBitstreamBufferMaxRange( VULKAN_HPP_NAMESPACE::DeviceSize dstBitstreamBufferMaxRange_ ) VULKAN_HPP_NOEXCEPT
  82646. {
  82647. dstBitstreamBufferMaxRange = dstBitstreamBufferMaxRange_;
  82648. return *this;
  82649. }
  82650. VULKAN_HPP_CONSTEXPR_14 VideoEncodeInfoKHR &
  82651. setSrcPictureResource( VULKAN_HPP_NAMESPACE::VideoPictureResourceInfoKHR const & srcPictureResource_ ) VULKAN_HPP_NOEXCEPT
  82652. {
  82653. srcPictureResource = srcPictureResource_;
  82654. return *this;
  82655. }
  82656. VULKAN_HPP_CONSTEXPR_14 VideoEncodeInfoKHR &
  82657. setPSetupReferenceSlot( const VULKAN_HPP_NAMESPACE::VideoReferenceSlotInfoKHR * pSetupReferenceSlot_ ) VULKAN_HPP_NOEXCEPT
  82658. {
  82659. pSetupReferenceSlot = pSetupReferenceSlot_;
  82660. return *this;
  82661. }
  82662. VULKAN_HPP_CONSTEXPR_14 VideoEncodeInfoKHR & setReferenceSlotCount( uint32_t referenceSlotCount_ ) VULKAN_HPP_NOEXCEPT
  82663. {
  82664. referenceSlotCount = referenceSlotCount_;
  82665. return *this;
  82666. }
  82667. VULKAN_HPP_CONSTEXPR_14 VideoEncodeInfoKHR &
  82668. setPReferenceSlots( const VULKAN_HPP_NAMESPACE::VideoReferenceSlotInfoKHR * pReferenceSlots_ ) VULKAN_HPP_NOEXCEPT
  82669. {
  82670. pReferenceSlots = pReferenceSlots_;
  82671. return *this;
  82672. }
  82673. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  82674. VideoEncodeInfoKHR & setReferenceSlots(
  82675. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::VideoReferenceSlotInfoKHR> const & referenceSlots_ ) VULKAN_HPP_NOEXCEPT
  82676. {
  82677. referenceSlotCount = static_cast<uint32_t>( referenceSlots_.size() );
  82678. pReferenceSlots = referenceSlots_.data();
  82679. return *this;
  82680. }
  82681. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  82682. VULKAN_HPP_CONSTEXPR_14 VideoEncodeInfoKHR & setPrecedingExternallyEncodedBytes( uint32_t precedingExternallyEncodedBytes_ ) VULKAN_HPP_NOEXCEPT
  82683. {
  82684. precedingExternallyEncodedBytes = precedingExternallyEncodedBytes_;
  82685. return *this;
  82686. }
  82687. # endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  82688. operator VkVideoEncodeInfoKHR const &() const VULKAN_HPP_NOEXCEPT
  82689. {
  82690. return *reinterpret_cast<const VkVideoEncodeInfoKHR *>( this );
  82691. }
  82692. operator VkVideoEncodeInfoKHR &() VULKAN_HPP_NOEXCEPT
  82693. {
  82694. return *reinterpret_cast<VkVideoEncodeInfoKHR *>( this );
  82695. }
  82696. # if defined( VULKAN_HPP_USE_REFLECT )
  82697. # if 14 <= VULKAN_HPP_CPP_VERSION
  82698. auto
  82699. # else
  82700. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  82701. const void * const &,
  82702. VULKAN_HPP_NAMESPACE::VideoEncodeFlagsKHR const &,
  82703. uint32_t const &,
  82704. VULKAN_HPP_NAMESPACE::Buffer const &,
  82705. VULKAN_HPP_NAMESPACE::DeviceSize const &,
  82706. VULKAN_HPP_NAMESPACE::DeviceSize const &,
  82707. VULKAN_HPP_NAMESPACE::VideoPictureResourceInfoKHR const &,
  82708. const VULKAN_HPP_NAMESPACE::VideoReferenceSlotInfoKHR * const &,
  82709. uint32_t const &,
  82710. const VULKAN_HPP_NAMESPACE::VideoReferenceSlotInfoKHR * const &,
  82711. uint32_t const &>
  82712. # endif
  82713. reflect() const VULKAN_HPP_NOEXCEPT
  82714. {
  82715. return std::tie( sType,
  82716. pNext,
  82717. flags,
  82718. qualityLevel,
  82719. dstBitstreamBuffer,
  82720. dstBitstreamBufferOffset,
  82721. dstBitstreamBufferMaxRange,
  82722. srcPictureResource,
  82723. pSetupReferenceSlot,
  82724. referenceSlotCount,
  82725. pReferenceSlots,
  82726. precedingExternallyEncodedBytes );
  82727. }
  82728. # endif
  82729. # if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  82730. auto operator<=>( VideoEncodeInfoKHR const & ) const = default;
  82731. # else
  82732. bool operator==( VideoEncodeInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  82733. {
  82734. # if defined( VULKAN_HPP_USE_REFLECT )
  82735. return this->reflect() == rhs.reflect();
  82736. # else
  82737. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( flags == rhs.flags ) && ( qualityLevel == rhs.qualityLevel ) &&
  82738. ( dstBitstreamBuffer == rhs.dstBitstreamBuffer ) && ( dstBitstreamBufferOffset == rhs.dstBitstreamBufferOffset ) &&
  82739. ( dstBitstreamBufferMaxRange == rhs.dstBitstreamBufferMaxRange ) && ( srcPictureResource == rhs.srcPictureResource ) &&
  82740. ( pSetupReferenceSlot == rhs.pSetupReferenceSlot ) && ( referenceSlotCount == rhs.referenceSlotCount ) &&
  82741. ( pReferenceSlots == rhs.pReferenceSlots ) && ( precedingExternallyEncodedBytes == rhs.precedingExternallyEncodedBytes );
  82742. # endif
  82743. }
  82744. bool operator!=( VideoEncodeInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  82745. {
  82746. return !operator==( rhs );
  82747. }
  82748. # endif
  82749. public:
  82750. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eVideoEncodeInfoKHR;
  82751. const void * pNext = {};
  82752. VULKAN_HPP_NAMESPACE::VideoEncodeFlagsKHR flags = {};
  82753. uint32_t qualityLevel = {};
  82754. VULKAN_HPP_NAMESPACE::Buffer dstBitstreamBuffer = {};
  82755. VULKAN_HPP_NAMESPACE::DeviceSize dstBitstreamBufferOffset = {};
  82756. VULKAN_HPP_NAMESPACE::DeviceSize dstBitstreamBufferMaxRange = {};
  82757. VULKAN_HPP_NAMESPACE::VideoPictureResourceInfoKHR srcPictureResource = {};
  82758. const VULKAN_HPP_NAMESPACE::VideoReferenceSlotInfoKHR * pSetupReferenceSlot = {};
  82759. uint32_t referenceSlotCount = {};
  82760. const VULKAN_HPP_NAMESPACE::VideoReferenceSlotInfoKHR * pReferenceSlots = {};
  82761. uint32_t precedingExternallyEncodedBytes = {};
  82762. };
  82763. template <>
  82764. struct CppType<StructureType, StructureType::eVideoEncodeInfoKHR>
  82765. {
  82766. using Type = VideoEncodeInfoKHR;
  82767. };
  82768. #endif /*VK_ENABLE_BETA_EXTENSIONS*/
  82769. #if defined( VK_ENABLE_BETA_EXTENSIONS )
  82770. struct VideoEncodeRateControlLayerInfoKHR
  82771. {
  82772. using NativeType = VkVideoEncodeRateControlLayerInfoKHR;
  82773. static const bool allowDuplicate = false;
  82774. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eVideoEncodeRateControlLayerInfoKHR;
  82775. # if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  82776. VULKAN_HPP_CONSTEXPR VideoEncodeRateControlLayerInfoKHR( uint32_t averageBitrate_ = {},
  82777. uint32_t maxBitrate_ = {},
  82778. uint32_t frameRateNumerator_ = {},
  82779. uint32_t frameRateDenominator_ = {},
  82780. uint32_t virtualBufferSizeInMs_ = {},
  82781. uint32_t initialVirtualBufferSizeInMs_ = {},
  82782. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  82783. : pNext( pNext_ )
  82784. , averageBitrate( averageBitrate_ )
  82785. , maxBitrate( maxBitrate_ )
  82786. , frameRateNumerator( frameRateNumerator_ )
  82787. , frameRateDenominator( frameRateDenominator_ )
  82788. , virtualBufferSizeInMs( virtualBufferSizeInMs_ )
  82789. , initialVirtualBufferSizeInMs( initialVirtualBufferSizeInMs_ )
  82790. {
  82791. }
  82792. VULKAN_HPP_CONSTEXPR VideoEncodeRateControlLayerInfoKHR( VideoEncodeRateControlLayerInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  82793. VideoEncodeRateControlLayerInfoKHR( VkVideoEncodeRateControlLayerInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  82794. : VideoEncodeRateControlLayerInfoKHR( *reinterpret_cast<VideoEncodeRateControlLayerInfoKHR const *>( &rhs ) )
  82795. {
  82796. }
  82797. # endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  82798. VideoEncodeRateControlLayerInfoKHR & operator=( VideoEncodeRateControlLayerInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  82799. VideoEncodeRateControlLayerInfoKHR & operator=( VkVideoEncodeRateControlLayerInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  82800. {
  82801. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::VideoEncodeRateControlLayerInfoKHR const *>( &rhs );
  82802. return *this;
  82803. }
  82804. # if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  82805. VULKAN_HPP_CONSTEXPR_14 VideoEncodeRateControlLayerInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  82806. {
  82807. pNext = pNext_;
  82808. return *this;
  82809. }
  82810. VULKAN_HPP_CONSTEXPR_14 VideoEncodeRateControlLayerInfoKHR & setAverageBitrate( uint32_t averageBitrate_ ) VULKAN_HPP_NOEXCEPT
  82811. {
  82812. averageBitrate = averageBitrate_;
  82813. return *this;
  82814. }
  82815. VULKAN_HPP_CONSTEXPR_14 VideoEncodeRateControlLayerInfoKHR & setMaxBitrate( uint32_t maxBitrate_ ) VULKAN_HPP_NOEXCEPT
  82816. {
  82817. maxBitrate = maxBitrate_;
  82818. return *this;
  82819. }
  82820. VULKAN_HPP_CONSTEXPR_14 VideoEncodeRateControlLayerInfoKHR & setFrameRateNumerator( uint32_t frameRateNumerator_ ) VULKAN_HPP_NOEXCEPT
  82821. {
  82822. frameRateNumerator = frameRateNumerator_;
  82823. return *this;
  82824. }
  82825. VULKAN_HPP_CONSTEXPR_14 VideoEncodeRateControlLayerInfoKHR & setFrameRateDenominator( uint32_t frameRateDenominator_ ) VULKAN_HPP_NOEXCEPT
  82826. {
  82827. frameRateDenominator = frameRateDenominator_;
  82828. return *this;
  82829. }
  82830. VULKAN_HPP_CONSTEXPR_14 VideoEncodeRateControlLayerInfoKHR & setVirtualBufferSizeInMs( uint32_t virtualBufferSizeInMs_ ) VULKAN_HPP_NOEXCEPT
  82831. {
  82832. virtualBufferSizeInMs = virtualBufferSizeInMs_;
  82833. return *this;
  82834. }
  82835. VULKAN_HPP_CONSTEXPR_14 VideoEncodeRateControlLayerInfoKHR & setInitialVirtualBufferSizeInMs( uint32_t initialVirtualBufferSizeInMs_ ) VULKAN_HPP_NOEXCEPT
  82836. {
  82837. initialVirtualBufferSizeInMs = initialVirtualBufferSizeInMs_;
  82838. return *this;
  82839. }
  82840. # endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  82841. operator VkVideoEncodeRateControlLayerInfoKHR const &() const VULKAN_HPP_NOEXCEPT
  82842. {
  82843. return *reinterpret_cast<const VkVideoEncodeRateControlLayerInfoKHR *>( this );
  82844. }
  82845. operator VkVideoEncodeRateControlLayerInfoKHR &() VULKAN_HPP_NOEXCEPT
  82846. {
  82847. return *reinterpret_cast<VkVideoEncodeRateControlLayerInfoKHR *>( this );
  82848. }
  82849. # if defined( VULKAN_HPP_USE_REFLECT )
  82850. # if 14 <= VULKAN_HPP_CPP_VERSION
  82851. auto
  82852. # else
  82853. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  82854. const void * const &,
  82855. uint32_t const &,
  82856. uint32_t const &,
  82857. uint32_t const &,
  82858. uint32_t const &,
  82859. uint32_t const &,
  82860. uint32_t const &>
  82861. # endif
  82862. reflect() const VULKAN_HPP_NOEXCEPT
  82863. {
  82864. return std::tie(
  82865. sType, pNext, averageBitrate, maxBitrate, frameRateNumerator, frameRateDenominator, virtualBufferSizeInMs, initialVirtualBufferSizeInMs );
  82866. }
  82867. # endif
  82868. # if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  82869. auto operator<=>( VideoEncodeRateControlLayerInfoKHR const & ) const = default;
  82870. # else
  82871. bool operator==( VideoEncodeRateControlLayerInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  82872. {
  82873. # if defined( VULKAN_HPP_USE_REFLECT )
  82874. return this->reflect() == rhs.reflect();
  82875. # else
  82876. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( averageBitrate == rhs.averageBitrate ) && ( maxBitrate == rhs.maxBitrate ) &&
  82877. ( frameRateNumerator == rhs.frameRateNumerator ) && ( frameRateDenominator == rhs.frameRateDenominator ) &&
  82878. ( virtualBufferSizeInMs == rhs.virtualBufferSizeInMs ) && ( initialVirtualBufferSizeInMs == rhs.initialVirtualBufferSizeInMs );
  82879. # endif
  82880. }
  82881. bool operator!=( VideoEncodeRateControlLayerInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  82882. {
  82883. return !operator==( rhs );
  82884. }
  82885. # endif
  82886. public:
  82887. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eVideoEncodeRateControlLayerInfoKHR;
  82888. const void * pNext = {};
  82889. uint32_t averageBitrate = {};
  82890. uint32_t maxBitrate = {};
  82891. uint32_t frameRateNumerator = {};
  82892. uint32_t frameRateDenominator = {};
  82893. uint32_t virtualBufferSizeInMs = {};
  82894. uint32_t initialVirtualBufferSizeInMs = {};
  82895. };
  82896. template <>
  82897. struct CppType<StructureType, StructureType::eVideoEncodeRateControlLayerInfoKHR>
  82898. {
  82899. using Type = VideoEncodeRateControlLayerInfoKHR;
  82900. };
  82901. #endif /*VK_ENABLE_BETA_EXTENSIONS*/
  82902. #if defined( VK_ENABLE_BETA_EXTENSIONS )
  82903. struct VideoEncodeRateControlInfoKHR
  82904. {
  82905. using NativeType = VkVideoEncodeRateControlInfoKHR;
  82906. static const bool allowDuplicate = false;
  82907. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eVideoEncodeRateControlInfoKHR;
  82908. # if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  82909. VULKAN_HPP_CONSTEXPR VideoEncodeRateControlInfoKHR(
  82910. VULKAN_HPP_NAMESPACE::VideoEncodeRateControlFlagsKHR flags_ = {},
  82911. VULKAN_HPP_NAMESPACE::VideoEncodeRateControlModeFlagBitsKHR rateControlMode_ = VULKAN_HPP_NAMESPACE::VideoEncodeRateControlModeFlagBitsKHR::eNone,
  82912. uint8_t layerCount_ = {},
  82913. const VULKAN_HPP_NAMESPACE::VideoEncodeRateControlLayerInfoKHR * pLayerConfigs_ = {},
  82914. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  82915. : pNext( pNext_ )
  82916. , flags( flags_ )
  82917. , rateControlMode( rateControlMode_ )
  82918. , layerCount( layerCount_ )
  82919. , pLayerConfigs( pLayerConfigs_ )
  82920. {
  82921. }
  82922. VULKAN_HPP_CONSTEXPR VideoEncodeRateControlInfoKHR( VideoEncodeRateControlInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  82923. VideoEncodeRateControlInfoKHR( VkVideoEncodeRateControlInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  82924. : VideoEncodeRateControlInfoKHR( *reinterpret_cast<VideoEncodeRateControlInfoKHR const *>( &rhs ) )
  82925. {
  82926. }
  82927. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  82928. VideoEncodeRateControlInfoKHR(
  82929. VULKAN_HPP_NAMESPACE::VideoEncodeRateControlFlagsKHR flags_,
  82930. VULKAN_HPP_NAMESPACE::VideoEncodeRateControlModeFlagBitsKHR rateControlMode_,
  82931. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::VideoEncodeRateControlLayerInfoKHR> const & layerConfigs_,
  82932. const void * pNext_ = nullptr )
  82933. : pNext( pNext_ )
  82934. , flags( flags_ )
  82935. , rateControlMode( rateControlMode_ )
  82936. , layerCount( static_cast<uint8_t>( layerConfigs_.size() ) )
  82937. , pLayerConfigs( layerConfigs_.data() )
  82938. {
  82939. }
  82940. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  82941. # endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  82942. VideoEncodeRateControlInfoKHR & operator=( VideoEncodeRateControlInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  82943. VideoEncodeRateControlInfoKHR & operator=( VkVideoEncodeRateControlInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  82944. {
  82945. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::VideoEncodeRateControlInfoKHR const *>( &rhs );
  82946. return *this;
  82947. }
  82948. # if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  82949. VULKAN_HPP_CONSTEXPR_14 VideoEncodeRateControlInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  82950. {
  82951. pNext = pNext_;
  82952. return *this;
  82953. }
  82954. VULKAN_HPP_CONSTEXPR_14 VideoEncodeRateControlInfoKHR & setFlags( VULKAN_HPP_NAMESPACE::VideoEncodeRateControlFlagsKHR flags_ ) VULKAN_HPP_NOEXCEPT
  82955. {
  82956. flags = flags_;
  82957. return *this;
  82958. }
  82959. VULKAN_HPP_CONSTEXPR_14 VideoEncodeRateControlInfoKHR &
  82960. setRateControlMode( VULKAN_HPP_NAMESPACE::VideoEncodeRateControlModeFlagBitsKHR rateControlMode_ ) VULKAN_HPP_NOEXCEPT
  82961. {
  82962. rateControlMode = rateControlMode_;
  82963. return *this;
  82964. }
  82965. VULKAN_HPP_CONSTEXPR_14 VideoEncodeRateControlInfoKHR & setLayerCount( uint8_t layerCount_ ) VULKAN_HPP_NOEXCEPT
  82966. {
  82967. layerCount = layerCount_;
  82968. return *this;
  82969. }
  82970. VULKAN_HPP_CONSTEXPR_14 VideoEncodeRateControlInfoKHR &
  82971. setPLayerConfigs( const VULKAN_HPP_NAMESPACE::VideoEncodeRateControlLayerInfoKHR * pLayerConfigs_ ) VULKAN_HPP_NOEXCEPT
  82972. {
  82973. pLayerConfigs = pLayerConfigs_;
  82974. return *this;
  82975. }
  82976. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  82977. VideoEncodeRateControlInfoKHR & setLayerConfigs(
  82978. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::VideoEncodeRateControlLayerInfoKHR> const & layerConfigs_ ) VULKAN_HPP_NOEXCEPT
  82979. {
  82980. layerCount = static_cast<uint8_t>( layerConfigs_.size() );
  82981. pLayerConfigs = layerConfigs_.data();
  82982. return *this;
  82983. }
  82984. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  82985. # endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  82986. operator VkVideoEncodeRateControlInfoKHR const &() const VULKAN_HPP_NOEXCEPT
  82987. {
  82988. return *reinterpret_cast<const VkVideoEncodeRateControlInfoKHR *>( this );
  82989. }
  82990. operator VkVideoEncodeRateControlInfoKHR &() VULKAN_HPP_NOEXCEPT
  82991. {
  82992. return *reinterpret_cast<VkVideoEncodeRateControlInfoKHR *>( this );
  82993. }
  82994. # if defined( VULKAN_HPP_USE_REFLECT )
  82995. # if 14 <= VULKAN_HPP_CPP_VERSION
  82996. auto
  82997. # else
  82998. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  82999. const void * const &,
  83000. VULKAN_HPP_NAMESPACE::VideoEncodeRateControlFlagsKHR const &,
  83001. VULKAN_HPP_NAMESPACE::VideoEncodeRateControlModeFlagBitsKHR const &,
  83002. uint8_t const &,
  83003. const VULKAN_HPP_NAMESPACE::VideoEncodeRateControlLayerInfoKHR * const &>
  83004. # endif
  83005. reflect() const VULKAN_HPP_NOEXCEPT
  83006. {
  83007. return std::tie( sType, pNext, flags, rateControlMode, layerCount, pLayerConfigs );
  83008. }
  83009. # endif
  83010. # if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  83011. auto operator<=>( VideoEncodeRateControlInfoKHR const & ) const = default;
  83012. # else
  83013. bool operator==( VideoEncodeRateControlInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  83014. {
  83015. # if defined( VULKAN_HPP_USE_REFLECT )
  83016. return this->reflect() == rhs.reflect();
  83017. # else
  83018. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( flags == rhs.flags ) && ( rateControlMode == rhs.rateControlMode ) &&
  83019. ( layerCount == rhs.layerCount ) && ( pLayerConfigs == rhs.pLayerConfigs );
  83020. # endif
  83021. }
  83022. bool operator!=( VideoEncodeRateControlInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  83023. {
  83024. return !operator==( rhs );
  83025. }
  83026. # endif
  83027. public:
  83028. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eVideoEncodeRateControlInfoKHR;
  83029. const void * pNext = {};
  83030. VULKAN_HPP_NAMESPACE::VideoEncodeRateControlFlagsKHR flags = {};
  83031. VULKAN_HPP_NAMESPACE::VideoEncodeRateControlModeFlagBitsKHR rateControlMode = VULKAN_HPP_NAMESPACE::VideoEncodeRateControlModeFlagBitsKHR::eNone;
  83032. uint8_t layerCount = {};
  83033. const VULKAN_HPP_NAMESPACE::VideoEncodeRateControlLayerInfoKHR * pLayerConfigs = {};
  83034. };
  83035. template <>
  83036. struct CppType<StructureType, StructureType::eVideoEncodeRateControlInfoKHR>
  83037. {
  83038. using Type = VideoEncodeRateControlInfoKHR;
  83039. };
  83040. #endif /*VK_ENABLE_BETA_EXTENSIONS*/
  83041. #if defined( VK_ENABLE_BETA_EXTENSIONS )
  83042. struct VideoEncodeUsageInfoKHR
  83043. {
  83044. using NativeType = VkVideoEncodeUsageInfoKHR;
  83045. static const bool allowDuplicate = false;
  83046. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eVideoEncodeUsageInfoKHR;
  83047. # if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  83048. VULKAN_HPP_CONSTEXPR
  83049. VideoEncodeUsageInfoKHR( VULKAN_HPP_NAMESPACE::VideoEncodeUsageFlagsKHR videoUsageHints_ = {},
  83050. VULKAN_HPP_NAMESPACE::VideoEncodeContentFlagsKHR videoContentHints_ = {},
  83051. VULKAN_HPP_NAMESPACE::VideoEncodeTuningModeKHR tuningMode_ = VULKAN_HPP_NAMESPACE::VideoEncodeTuningModeKHR::eDefault,
  83052. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  83053. : pNext( pNext_ )
  83054. , videoUsageHints( videoUsageHints_ )
  83055. , videoContentHints( videoContentHints_ )
  83056. , tuningMode( tuningMode_ )
  83057. {
  83058. }
  83059. VULKAN_HPP_CONSTEXPR VideoEncodeUsageInfoKHR( VideoEncodeUsageInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  83060. VideoEncodeUsageInfoKHR( VkVideoEncodeUsageInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  83061. : VideoEncodeUsageInfoKHR( *reinterpret_cast<VideoEncodeUsageInfoKHR const *>( &rhs ) )
  83062. {
  83063. }
  83064. # endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  83065. VideoEncodeUsageInfoKHR & operator=( VideoEncodeUsageInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  83066. VideoEncodeUsageInfoKHR & operator=( VkVideoEncodeUsageInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  83067. {
  83068. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::VideoEncodeUsageInfoKHR const *>( &rhs );
  83069. return *this;
  83070. }
  83071. # if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  83072. VULKAN_HPP_CONSTEXPR_14 VideoEncodeUsageInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  83073. {
  83074. pNext = pNext_;
  83075. return *this;
  83076. }
  83077. VULKAN_HPP_CONSTEXPR_14 VideoEncodeUsageInfoKHR & setVideoUsageHints( VULKAN_HPP_NAMESPACE::VideoEncodeUsageFlagsKHR videoUsageHints_ ) VULKAN_HPP_NOEXCEPT
  83078. {
  83079. videoUsageHints = videoUsageHints_;
  83080. return *this;
  83081. }
  83082. VULKAN_HPP_CONSTEXPR_14 VideoEncodeUsageInfoKHR &
  83083. setVideoContentHints( VULKAN_HPP_NAMESPACE::VideoEncodeContentFlagsKHR videoContentHints_ ) VULKAN_HPP_NOEXCEPT
  83084. {
  83085. videoContentHints = videoContentHints_;
  83086. return *this;
  83087. }
  83088. VULKAN_HPP_CONSTEXPR_14 VideoEncodeUsageInfoKHR & setTuningMode( VULKAN_HPP_NAMESPACE::VideoEncodeTuningModeKHR tuningMode_ ) VULKAN_HPP_NOEXCEPT
  83089. {
  83090. tuningMode = tuningMode_;
  83091. return *this;
  83092. }
  83093. # endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  83094. operator VkVideoEncodeUsageInfoKHR const &() const VULKAN_HPP_NOEXCEPT
  83095. {
  83096. return *reinterpret_cast<const VkVideoEncodeUsageInfoKHR *>( this );
  83097. }
  83098. operator VkVideoEncodeUsageInfoKHR &() VULKAN_HPP_NOEXCEPT
  83099. {
  83100. return *reinterpret_cast<VkVideoEncodeUsageInfoKHR *>( this );
  83101. }
  83102. # if defined( VULKAN_HPP_USE_REFLECT )
  83103. # if 14 <= VULKAN_HPP_CPP_VERSION
  83104. auto
  83105. # else
  83106. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  83107. const void * const &,
  83108. VULKAN_HPP_NAMESPACE::VideoEncodeUsageFlagsKHR const &,
  83109. VULKAN_HPP_NAMESPACE::VideoEncodeContentFlagsKHR const &,
  83110. VULKAN_HPP_NAMESPACE::VideoEncodeTuningModeKHR const &>
  83111. # endif
  83112. reflect() const VULKAN_HPP_NOEXCEPT
  83113. {
  83114. return std::tie( sType, pNext, videoUsageHints, videoContentHints, tuningMode );
  83115. }
  83116. # endif
  83117. # if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  83118. auto operator<=>( VideoEncodeUsageInfoKHR const & ) const = default;
  83119. # else
  83120. bool operator==( VideoEncodeUsageInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  83121. {
  83122. # if defined( VULKAN_HPP_USE_REFLECT )
  83123. return this->reflect() == rhs.reflect();
  83124. # else
  83125. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( videoUsageHints == rhs.videoUsageHints ) && ( videoContentHints == rhs.videoContentHints ) &&
  83126. ( tuningMode == rhs.tuningMode );
  83127. # endif
  83128. }
  83129. bool operator!=( VideoEncodeUsageInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  83130. {
  83131. return !operator==( rhs );
  83132. }
  83133. # endif
  83134. public:
  83135. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eVideoEncodeUsageInfoKHR;
  83136. const void * pNext = {};
  83137. VULKAN_HPP_NAMESPACE::VideoEncodeUsageFlagsKHR videoUsageHints = {};
  83138. VULKAN_HPP_NAMESPACE::VideoEncodeContentFlagsKHR videoContentHints = {};
  83139. VULKAN_HPP_NAMESPACE::VideoEncodeTuningModeKHR tuningMode = VULKAN_HPP_NAMESPACE::VideoEncodeTuningModeKHR::eDefault;
  83140. };
  83141. template <>
  83142. struct CppType<StructureType, StructureType::eVideoEncodeUsageInfoKHR>
  83143. {
  83144. using Type = VideoEncodeUsageInfoKHR;
  83145. };
  83146. #endif /*VK_ENABLE_BETA_EXTENSIONS*/
  83147. #if defined( VK_ENABLE_BETA_EXTENSIONS )
  83148. struct VideoEndCodingInfoKHR
  83149. {
  83150. using NativeType = VkVideoEndCodingInfoKHR;
  83151. static const bool allowDuplicate = false;
  83152. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eVideoEndCodingInfoKHR;
  83153. # if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  83154. VULKAN_HPP_CONSTEXPR VideoEndCodingInfoKHR( VULKAN_HPP_NAMESPACE::VideoEndCodingFlagsKHR flags_ = {}, const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  83155. : pNext( pNext_ )
  83156. , flags( flags_ )
  83157. {
  83158. }
  83159. VULKAN_HPP_CONSTEXPR VideoEndCodingInfoKHR( VideoEndCodingInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  83160. VideoEndCodingInfoKHR( VkVideoEndCodingInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  83161. : VideoEndCodingInfoKHR( *reinterpret_cast<VideoEndCodingInfoKHR const *>( &rhs ) )
  83162. {
  83163. }
  83164. # endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  83165. VideoEndCodingInfoKHR & operator=( VideoEndCodingInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  83166. VideoEndCodingInfoKHR & operator=( VkVideoEndCodingInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  83167. {
  83168. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::VideoEndCodingInfoKHR const *>( &rhs );
  83169. return *this;
  83170. }
  83171. # if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  83172. VULKAN_HPP_CONSTEXPR_14 VideoEndCodingInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  83173. {
  83174. pNext = pNext_;
  83175. return *this;
  83176. }
  83177. VULKAN_HPP_CONSTEXPR_14 VideoEndCodingInfoKHR & setFlags( VULKAN_HPP_NAMESPACE::VideoEndCodingFlagsKHR flags_ ) VULKAN_HPP_NOEXCEPT
  83178. {
  83179. flags = flags_;
  83180. return *this;
  83181. }
  83182. # endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  83183. operator VkVideoEndCodingInfoKHR const &() const VULKAN_HPP_NOEXCEPT
  83184. {
  83185. return *reinterpret_cast<const VkVideoEndCodingInfoKHR *>( this );
  83186. }
  83187. operator VkVideoEndCodingInfoKHR &() VULKAN_HPP_NOEXCEPT
  83188. {
  83189. return *reinterpret_cast<VkVideoEndCodingInfoKHR *>( this );
  83190. }
  83191. # if defined( VULKAN_HPP_USE_REFLECT )
  83192. # if 14 <= VULKAN_HPP_CPP_VERSION
  83193. auto
  83194. # else
  83195. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::VideoEndCodingFlagsKHR const &>
  83196. # endif
  83197. reflect() const VULKAN_HPP_NOEXCEPT
  83198. {
  83199. return std::tie( sType, pNext, flags );
  83200. }
  83201. # endif
  83202. # if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  83203. auto operator<=>( VideoEndCodingInfoKHR const & ) const = default;
  83204. # else
  83205. bool operator==( VideoEndCodingInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  83206. {
  83207. # if defined( VULKAN_HPP_USE_REFLECT )
  83208. return this->reflect() == rhs.reflect();
  83209. # else
  83210. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( flags == rhs.flags );
  83211. # endif
  83212. }
  83213. bool operator!=( VideoEndCodingInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  83214. {
  83215. return !operator==( rhs );
  83216. }
  83217. # endif
  83218. public:
  83219. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eVideoEndCodingInfoKHR;
  83220. const void * pNext = {};
  83221. VULKAN_HPP_NAMESPACE::VideoEndCodingFlagsKHR flags = {};
  83222. };
  83223. template <>
  83224. struct CppType<StructureType, StructureType::eVideoEndCodingInfoKHR>
  83225. {
  83226. using Type = VideoEndCodingInfoKHR;
  83227. };
  83228. #endif /*VK_ENABLE_BETA_EXTENSIONS*/
  83229. #if defined( VK_ENABLE_BETA_EXTENSIONS )
  83230. struct VideoFormatPropertiesKHR
  83231. {
  83232. using NativeType = VkVideoFormatPropertiesKHR;
  83233. static const bool allowDuplicate = false;
  83234. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eVideoFormatPropertiesKHR;
  83235. # if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  83236. VULKAN_HPP_CONSTEXPR VideoFormatPropertiesKHR( VULKAN_HPP_NAMESPACE::Format format_ = VULKAN_HPP_NAMESPACE::Format::eUndefined,
  83237. VULKAN_HPP_NAMESPACE::ComponentMapping componentMapping_ = {},
  83238. VULKAN_HPP_NAMESPACE::ImageCreateFlags imageCreateFlags_ = {},
  83239. VULKAN_HPP_NAMESPACE::ImageType imageType_ = VULKAN_HPP_NAMESPACE::ImageType::e1D,
  83240. VULKAN_HPP_NAMESPACE::ImageTiling imageTiling_ = VULKAN_HPP_NAMESPACE::ImageTiling::eOptimal,
  83241. VULKAN_HPP_NAMESPACE::ImageUsageFlags imageUsageFlags_ = {},
  83242. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  83243. : pNext( pNext_ )
  83244. , format( format_ )
  83245. , componentMapping( componentMapping_ )
  83246. , imageCreateFlags( imageCreateFlags_ )
  83247. , imageType( imageType_ )
  83248. , imageTiling( imageTiling_ )
  83249. , imageUsageFlags( imageUsageFlags_ )
  83250. {
  83251. }
  83252. VULKAN_HPP_CONSTEXPR VideoFormatPropertiesKHR( VideoFormatPropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  83253. VideoFormatPropertiesKHR( VkVideoFormatPropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  83254. : VideoFormatPropertiesKHR( *reinterpret_cast<VideoFormatPropertiesKHR const *>( &rhs ) )
  83255. {
  83256. }
  83257. # endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  83258. VideoFormatPropertiesKHR & operator=( VideoFormatPropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  83259. VideoFormatPropertiesKHR & operator=( VkVideoFormatPropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  83260. {
  83261. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::VideoFormatPropertiesKHR const *>( &rhs );
  83262. return *this;
  83263. }
  83264. operator VkVideoFormatPropertiesKHR const &() const VULKAN_HPP_NOEXCEPT
  83265. {
  83266. return *reinterpret_cast<const VkVideoFormatPropertiesKHR *>( this );
  83267. }
  83268. operator VkVideoFormatPropertiesKHR &() VULKAN_HPP_NOEXCEPT
  83269. {
  83270. return *reinterpret_cast<VkVideoFormatPropertiesKHR *>( this );
  83271. }
  83272. # if defined( VULKAN_HPP_USE_REFLECT )
  83273. # if 14 <= VULKAN_HPP_CPP_VERSION
  83274. auto
  83275. # else
  83276. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  83277. void * const &,
  83278. VULKAN_HPP_NAMESPACE::Format const &,
  83279. VULKAN_HPP_NAMESPACE::ComponentMapping const &,
  83280. VULKAN_HPP_NAMESPACE::ImageCreateFlags const &,
  83281. VULKAN_HPP_NAMESPACE::ImageType const &,
  83282. VULKAN_HPP_NAMESPACE::ImageTiling const &,
  83283. VULKAN_HPP_NAMESPACE::ImageUsageFlags const &>
  83284. # endif
  83285. reflect() const VULKAN_HPP_NOEXCEPT
  83286. {
  83287. return std::tie( sType, pNext, format, componentMapping, imageCreateFlags, imageType, imageTiling, imageUsageFlags );
  83288. }
  83289. # endif
  83290. # if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  83291. auto operator<=>( VideoFormatPropertiesKHR const & ) const = default;
  83292. # else
  83293. bool operator==( VideoFormatPropertiesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  83294. {
  83295. # if defined( VULKAN_HPP_USE_REFLECT )
  83296. return this->reflect() == rhs.reflect();
  83297. # else
  83298. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( format == rhs.format ) && ( componentMapping == rhs.componentMapping ) &&
  83299. ( imageCreateFlags == rhs.imageCreateFlags ) && ( imageType == rhs.imageType ) && ( imageTiling == rhs.imageTiling ) &&
  83300. ( imageUsageFlags == rhs.imageUsageFlags );
  83301. # endif
  83302. }
  83303. bool operator!=( VideoFormatPropertiesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  83304. {
  83305. return !operator==( rhs );
  83306. }
  83307. # endif
  83308. public:
  83309. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eVideoFormatPropertiesKHR;
  83310. void * pNext = {};
  83311. VULKAN_HPP_NAMESPACE::Format format = VULKAN_HPP_NAMESPACE::Format::eUndefined;
  83312. VULKAN_HPP_NAMESPACE::ComponentMapping componentMapping = {};
  83313. VULKAN_HPP_NAMESPACE::ImageCreateFlags imageCreateFlags = {};
  83314. VULKAN_HPP_NAMESPACE::ImageType imageType = VULKAN_HPP_NAMESPACE::ImageType::e1D;
  83315. VULKAN_HPP_NAMESPACE::ImageTiling imageTiling = VULKAN_HPP_NAMESPACE::ImageTiling::eOptimal;
  83316. VULKAN_HPP_NAMESPACE::ImageUsageFlags imageUsageFlags = {};
  83317. };
  83318. template <>
  83319. struct CppType<StructureType, StructureType::eVideoFormatPropertiesKHR>
  83320. {
  83321. using Type = VideoFormatPropertiesKHR;
  83322. };
  83323. #endif /*VK_ENABLE_BETA_EXTENSIONS*/
  83324. #if defined( VK_ENABLE_BETA_EXTENSIONS )
  83325. struct VideoProfileInfoKHR
  83326. {
  83327. using NativeType = VkVideoProfileInfoKHR;
  83328. static const bool allowDuplicate = false;
  83329. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eVideoProfileInfoKHR;
  83330. # if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  83331. VULKAN_HPP_CONSTEXPR VideoProfileInfoKHR(
  83332. VULKAN_HPP_NAMESPACE::VideoCodecOperationFlagBitsKHR videoCodecOperation_ = VULKAN_HPP_NAMESPACE::VideoCodecOperationFlagBitsKHR::eNone,
  83333. VULKAN_HPP_NAMESPACE::VideoChromaSubsamplingFlagsKHR chromaSubsampling_ = {},
  83334. VULKAN_HPP_NAMESPACE::VideoComponentBitDepthFlagsKHR lumaBitDepth_ = {},
  83335. VULKAN_HPP_NAMESPACE::VideoComponentBitDepthFlagsKHR chromaBitDepth_ = {},
  83336. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  83337. : pNext( pNext_ )
  83338. , videoCodecOperation( videoCodecOperation_ )
  83339. , chromaSubsampling( chromaSubsampling_ )
  83340. , lumaBitDepth( lumaBitDepth_ )
  83341. , chromaBitDepth( chromaBitDepth_ )
  83342. {
  83343. }
  83344. VULKAN_HPP_CONSTEXPR VideoProfileInfoKHR( VideoProfileInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  83345. VideoProfileInfoKHR( VkVideoProfileInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT : VideoProfileInfoKHR( *reinterpret_cast<VideoProfileInfoKHR const *>( &rhs ) )
  83346. {
  83347. }
  83348. # endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  83349. VideoProfileInfoKHR & operator=( VideoProfileInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  83350. VideoProfileInfoKHR & operator=( VkVideoProfileInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  83351. {
  83352. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::VideoProfileInfoKHR const *>( &rhs );
  83353. return *this;
  83354. }
  83355. # if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  83356. VULKAN_HPP_CONSTEXPR_14 VideoProfileInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  83357. {
  83358. pNext = pNext_;
  83359. return *this;
  83360. }
  83361. VULKAN_HPP_CONSTEXPR_14 VideoProfileInfoKHR &
  83362. setVideoCodecOperation( VULKAN_HPP_NAMESPACE::VideoCodecOperationFlagBitsKHR videoCodecOperation_ ) VULKAN_HPP_NOEXCEPT
  83363. {
  83364. videoCodecOperation = videoCodecOperation_;
  83365. return *this;
  83366. }
  83367. VULKAN_HPP_CONSTEXPR_14 VideoProfileInfoKHR &
  83368. setChromaSubsampling( VULKAN_HPP_NAMESPACE::VideoChromaSubsamplingFlagsKHR chromaSubsampling_ ) VULKAN_HPP_NOEXCEPT
  83369. {
  83370. chromaSubsampling = chromaSubsampling_;
  83371. return *this;
  83372. }
  83373. VULKAN_HPP_CONSTEXPR_14 VideoProfileInfoKHR & setLumaBitDepth( VULKAN_HPP_NAMESPACE::VideoComponentBitDepthFlagsKHR lumaBitDepth_ ) VULKAN_HPP_NOEXCEPT
  83374. {
  83375. lumaBitDepth = lumaBitDepth_;
  83376. return *this;
  83377. }
  83378. VULKAN_HPP_CONSTEXPR_14 VideoProfileInfoKHR & setChromaBitDepth( VULKAN_HPP_NAMESPACE::VideoComponentBitDepthFlagsKHR chromaBitDepth_ ) VULKAN_HPP_NOEXCEPT
  83379. {
  83380. chromaBitDepth = chromaBitDepth_;
  83381. return *this;
  83382. }
  83383. # endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  83384. operator VkVideoProfileInfoKHR const &() const VULKAN_HPP_NOEXCEPT
  83385. {
  83386. return *reinterpret_cast<const VkVideoProfileInfoKHR *>( this );
  83387. }
  83388. operator VkVideoProfileInfoKHR &() VULKAN_HPP_NOEXCEPT
  83389. {
  83390. return *reinterpret_cast<VkVideoProfileInfoKHR *>( this );
  83391. }
  83392. # if defined( VULKAN_HPP_USE_REFLECT )
  83393. # if 14 <= VULKAN_HPP_CPP_VERSION
  83394. auto
  83395. # else
  83396. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  83397. const void * const &,
  83398. VULKAN_HPP_NAMESPACE::VideoCodecOperationFlagBitsKHR const &,
  83399. VULKAN_HPP_NAMESPACE::VideoChromaSubsamplingFlagsKHR const &,
  83400. VULKAN_HPP_NAMESPACE::VideoComponentBitDepthFlagsKHR const &,
  83401. VULKAN_HPP_NAMESPACE::VideoComponentBitDepthFlagsKHR const &>
  83402. # endif
  83403. reflect() const VULKAN_HPP_NOEXCEPT
  83404. {
  83405. return std::tie( sType, pNext, videoCodecOperation, chromaSubsampling, lumaBitDepth, chromaBitDepth );
  83406. }
  83407. # endif
  83408. # if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  83409. auto operator<=>( VideoProfileInfoKHR const & ) const = default;
  83410. # else
  83411. bool operator==( VideoProfileInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  83412. {
  83413. # if defined( VULKAN_HPP_USE_REFLECT )
  83414. return this->reflect() == rhs.reflect();
  83415. # else
  83416. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( videoCodecOperation == rhs.videoCodecOperation ) &&
  83417. ( chromaSubsampling == rhs.chromaSubsampling ) && ( lumaBitDepth == rhs.lumaBitDepth ) && ( chromaBitDepth == rhs.chromaBitDepth );
  83418. # endif
  83419. }
  83420. bool operator!=( VideoProfileInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  83421. {
  83422. return !operator==( rhs );
  83423. }
  83424. # endif
  83425. public:
  83426. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eVideoProfileInfoKHR;
  83427. const void * pNext = {};
  83428. VULKAN_HPP_NAMESPACE::VideoCodecOperationFlagBitsKHR videoCodecOperation = VULKAN_HPP_NAMESPACE::VideoCodecOperationFlagBitsKHR::eNone;
  83429. VULKAN_HPP_NAMESPACE::VideoChromaSubsamplingFlagsKHR chromaSubsampling = {};
  83430. VULKAN_HPP_NAMESPACE::VideoComponentBitDepthFlagsKHR lumaBitDepth = {};
  83431. VULKAN_HPP_NAMESPACE::VideoComponentBitDepthFlagsKHR chromaBitDepth = {};
  83432. };
  83433. template <>
  83434. struct CppType<StructureType, StructureType::eVideoProfileInfoKHR>
  83435. {
  83436. using Type = VideoProfileInfoKHR;
  83437. };
  83438. #endif /*VK_ENABLE_BETA_EXTENSIONS*/
  83439. #if defined( VK_ENABLE_BETA_EXTENSIONS )
  83440. struct VideoProfileListInfoKHR
  83441. {
  83442. using NativeType = VkVideoProfileListInfoKHR;
  83443. static const bool allowDuplicate = false;
  83444. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eVideoProfileListInfoKHR;
  83445. # if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  83446. VULKAN_HPP_CONSTEXPR VideoProfileListInfoKHR( uint32_t profileCount_ = {},
  83447. const VULKAN_HPP_NAMESPACE::VideoProfileInfoKHR * pProfiles_ = {},
  83448. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  83449. : pNext( pNext_ )
  83450. , profileCount( profileCount_ )
  83451. , pProfiles( pProfiles_ )
  83452. {
  83453. }
  83454. VULKAN_HPP_CONSTEXPR VideoProfileListInfoKHR( VideoProfileListInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  83455. VideoProfileListInfoKHR( VkVideoProfileListInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  83456. : VideoProfileListInfoKHR( *reinterpret_cast<VideoProfileListInfoKHR const *>( &rhs ) )
  83457. {
  83458. }
  83459. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  83460. VideoProfileListInfoKHR( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::VideoProfileInfoKHR> const & profiles_,
  83461. const void * pNext_ = nullptr )
  83462. : pNext( pNext_ ), profileCount( static_cast<uint32_t>( profiles_.size() ) ), pProfiles( profiles_.data() )
  83463. {
  83464. }
  83465. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  83466. # endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  83467. VideoProfileListInfoKHR & operator=( VideoProfileListInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  83468. VideoProfileListInfoKHR & operator=( VkVideoProfileListInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  83469. {
  83470. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::VideoProfileListInfoKHR const *>( &rhs );
  83471. return *this;
  83472. }
  83473. # if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  83474. VULKAN_HPP_CONSTEXPR_14 VideoProfileListInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  83475. {
  83476. pNext = pNext_;
  83477. return *this;
  83478. }
  83479. VULKAN_HPP_CONSTEXPR_14 VideoProfileListInfoKHR & setProfileCount( uint32_t profileCount_ ) VULKAN_HPP_NOEXCEPT
  83480. {
  83481. profileCount = profileCount_;
  83482. return *this;
  83483. }
  83484. VULKAN_HPP_CONSTEXPR_14 VideoProfileListInfoKHR & setPProfiles( const VULKAN_HPP_NAMESPACE::VideoProfileInfoKHR * pProfiles_ ) VULKAN_HPP_NOEXCEPT
  83485. {
  83486. pProfiles = pProfiles_;
  83487. return *this;
  83488. }
  83489. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  83490. VideoProfileListInfoKHR &
  83491. setProfiles( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::VideoProfileInfoKHR> const & profiles_ ) VULKAN_HPP_NOEXCEPT
  83492. {
  83493. profileCount = static_cast<uint32_t>( profiles_.size() );
  83494. pProfiles = profiles_.data();
  83495. return *this;
  83496. }
  83497. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  83498. # endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  83499. operator VkVideoProfileListInfoKHR const &() const VULKAN_HPP_NOEXCEPT
  83500. {
  83501. return *reinterpret_cast<const VkVideoProfileListInfoKHR *>( this );
  83502. }
  83503. operator VkVideoProfileListInfoKHR &() VULKAN_HPP_NOEXCEPT
  83504. {
  83505. return *reinterpret_cast<VkVideoProfileListInfoKHR *>( this );
  83506. }
  83507. # if defined( VULKAN_HPP_USE_REFLECT )
  83508. # if 14 <= VULKAN_HPP_CPP_VERSION
  83509. auto
  83510. # else
  83511. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, uint32_t const &, const VULKAN_HPP_NAMESPACE::VideoProfileInfoKHR * const &>
  83512. # endif
  83513. reflect() const VULKAN_HPP_NOEXCEPT
  83514. {
  83515. return std::tie( sType, pNext, profileCount, pProfiles );
  83516. }
  83517. # endif
  83518. # if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  83519. auto operator<=>( VideoProfileListInfoKHR const & ) const = default;
  83520. # else
  83521. bool operator==( VideoProfileListInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  83522. {
  83523. # if defined( VULKAN_HPP_USE_REFLECT )
  83524. return this->reflect() == rhs.reflect();
  83525. # else
  83526. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( profileCount == rhs.profileCount ) && ( pProfiles == rhs.pProfiles );
  83527. # endif
  83528. }
  83529. bool operator!=( VideoProfileListInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  83530. {
  83531. return !operator==( rhs );
  83532. }
  83533. # endif
  83534. public:
  83535. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eVideoProfileListInfoKHR;
  83536. const void * pNext = {};
  83537. uint32_t profileCount = {};
  83538. const VULKAN_HPP_NAMESPACE::VideoProfileInfoKHR * pProfiles = {};
  83539. };
  83540. template <>
  83541. struct CppType<StructureType, StructureType::eVideoProfileListInfoKHR>
  83542. {
  83543. using Type = VideoProfileListInfoKHR;
  83544. };
  83545. #endif /*VK_ENABLE_BETA_EXTENSIONS*/
  83546. #if defined( VK_ENABLE_BETA_EXTENSIONS )
  83547. struct VideoSessionCreateInfoKHR
  83548. {
  83549. using NativeType = VkVideoSessionCreateInfoKHR;
  83550. static const bool allowDuplicate = false;
  83551. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eVideoSessionCreateInfoKHR;
  83552. # if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  83553. VULKAN_HPP_CONSTEXPR_14 VideoSessionCreateInfoKHR( uint32_t queueFamilyIndex_ = {},
  83554. VULKAN_HPP_NAMESPACE::VideoSessionCreateFlagsKHR flags_ = {},
  83555. const VULKAN_HPP_NAMESPACE::VideoProfileInfoKHR * pVideoProfile_ = {},
  83556. VULKAN_HPP_NAMESPACE::Format pictureFormat_ = VULKAN_HPP_NAMESPACE::Format::eUndefined,
  83557. VULKAN_HPP_NAMESPACE::Extent2D maxCodedExtent_ = {},
  83558. VULKAN_HPP_NAMESPACE::Format referencePicturesFormat_ = VULKAN_HPP_NAMESPACE::Format::eUndefined,
  83559. uint32_t maxReferencePicturesSlotsCount_ = {},
  83560. uint32_t maxReferencePicturesActiveCount_ = {},
  83561. const VULKAN_HPP_NAMESPACE::ExtensionProperties * pStdHeaderVersion_ = {},
  83562. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  83563. : pNext( pNext_ )
  83564. , queueFamilyIndex( queueFamilyIndex_ )
  83565. , flags( flags_ )
  83566. , pVideoProfile( pVideoProfile_ )
  83567. , pictureFormat( pictureFormat_ )
  83568. , maxCodedExtent( maxCodedExtent_ )
  83569. , referencePicturesFormat( referencePicturesFormat_ )
  83570. , maxReferencePicturesSlotsCount( maxReferencePicturesSlotsCount_ )
  83571. , maxReferencePicturesActiveCount( maxReferencePicturesActiveCount_ )
  83572. , pStdHeaderVersion( pStdHeaderVersion_ )
  83573. {
  83574. }
  83575. VULKAN_HPP_CONSTEXPR_14 VideoSessionCreateInfoKHR( VideoSessionCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  83576. VideoSessionCreateInfoKHR( VkVideoSessionCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  83577. : VideoSessionCreateInfoKHR( *reinterpret_cast<VideoSessionCreateInfoKHR const *>( &rhs ) )
  83578. {
  83579. }
  83580. # endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  83581. VideoSessionCreateInfoKHR & operator=( VideoSessionCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  83582. VideoSessionCreateInfoKHR & operator=( VkVideoSessionCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  83583. {
  83584. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::VideoSessionCreateInfoKHR const *>( &rhs );
  83585. return *this;
  83586. }
  83587. # if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  83588. VULKAN_HPP_CONSTEXPR_14 VideoSessionCreateInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  83589. {
  83590. pNext = pNext_;
  83591. return *this;
  83592. }
  83593. VULKAN_HPP_CONSTEXPR_14 VideoSessionCreateInfoKHR & setQueueFamilyIndex( uint32_t queueFamilyIndex_ ) VULKAN_HPP_NOEXCEPT
  83594. {
  83595. queueFamilyIndex = queueFamilyIndex_;
  83596. return *this;
  83597. }
  83598. VULKAN_HPP_CONSTEXPR_14 VideoSessionCreateInfoKHR & setFlags( VULKAN_HPP_NAMESPACE::VideoSessionCreateFlagsKHR flags_ ) VULKAN_HPP_NOEXCEPT
  83599. {
  83600. flags = flags_;
  83601. return *this;
  83602. }
  83603. VULKAN_HPP_CONSTEXPR_14 VideoSessionCreateInfoKHR & setPVideoProfile( const VULKAN_HPP_NAMESPACE::VideoProfileInfoKHR * pVideoProfile_ ) VULKAN_HPP_NOEXCEPT
  83604. {
  83605. pVideoProfile = pVideoProfile_;
  83606. return *this;
  83607. }
  83608. VULKAN_HPP_CONSTEXPR_14 VideoSessionCreateInfoKHR & setPictureFormat( VULKAN_HPP_NAMESPACE::Format pictureFormat_ ) VULKAN_HPP_NOEXCEPT
  83609. {
  83610. pictureFormat = pictureFormat_;
  83611. return *this;
  83612. }
  83613. VULKAN_HPP_CONSTEXPR_14 VideoSessionCreateInfoKHR & setMaxCodedExtent( VULKAN_HPP_NAMESPACE::Extent2D const & maxCodedExtent_ ) VULKAN_HPP_NOEXCEPT
  83614. {
  83615. maxCodedExtent = maxCodedExtent_;
  83616. return *this;
  83617. }
  83618. VULKAN_HPP_CONSTEXPR_14 VideoSessionCreateInfoKHR & setReferencePicturesFormat( VULKAN_HPP_NAMESPACE::Format referencePicturesFormat_ ) VULKAN_HPP_NOEXCEPT
  83619. {
  83620. referencePicturesFormat = referencePicturesFormat_;
  83621. return *this;
  83622. }
  83623. VULKAN_HPP_CONSTEXPR_14 VideoSessionCreateInfoKHR & setMaxReferencePicturesSlotsCount( uint32_t maxReferencePicturesSlotsCount_ ) VULKAN_HPP_NOEXCEPT
  83624. {
  83625. maxReferencePicturesSlotsCount = maxReferencePicturesSlotsCount_;
  83626. return *this;
  83627. }
  83628. VULKAN_HPP_CONSTEXPR_14 VideoSessionCreateInfoKHR & setMaxReferencePicturesActiveCount( uint32_t maxReferencePicturesActiveCount_ ) VULKAN_HPP_NOEXCEPT
  83629. {
  83630. maxReferencePicturesActiveCount = maxReferencePicturesActiveCount_;
  83631. return *this;
  83632. }
  83633. VULKAN_HPP_CONSTEXPR_14 VideoSessionCreateInfoKHR &
  83634. setPStdHeaderVersion( const VULKAN_HPP_NAMESPACE::ExtensionProperties * pStdHeaderVersion_ ) VULKAN_HPP_NOEXCEPT
  83635. {
  83636. pStdHeaderVersion = pStdHeaderVersion_;
  83637. return *this;
  83638. }
  83639. # endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  83640. operator VkVideoSessionCreateInfoKHR const &() const VULKAN_HPP_NOEXCEPT
  83641. {
  83642. return *reinterpret_cast<const VkVideoSessionCreateInfoKHR *>( this );
  83643. }
  83644. operator VkVideoSessionCreateInfoKHR &() VULKAN_HPP_NOEXCEPT
  83645. {
  83646. return *reinterpret_cast<VkVideoSessionCreateInfoKHR *>( this );
  83647. }
  83648. # if defined( VULKAN_HPP_USE_REFLECT )
  83649. # if 14 <= VULKAN_HPP_CPP_VERSION
  83650. auto
  83651. # else
  83652. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  83653. const void * const &,
  83654. uint32_t const &,
  83655. VULKAN_HPP_NAMESPACE::VideoSessionCreateFlagsKHR const &,
  83656. const VULKAN_HPP_NAMESPACE::VideoProfileInfoKHR * const &,
  83657. VULKAN_HPP_NAMESPACE::Format const &,
  83658. VULKAN_HPP_NAMESPACE::Extent2D const &,
  83659. VULKAN_HPP_NAMESPACE::Format const &,
  83660. uint32_t const &,
  83661. uint32_t const &,
  83662. const VULKAN_HPP_NAMESPACE::ExtensionProperties * const &>
  83663. # endif
  83664. reflect() const VULKAN_HPP_NOEXCEPT
  83665. {
  83666. return std::tie( sType,
  83667. pNext,
  83668. queueFamilyIndex,
  83669. flags,
  83670. pVideoProfile,
  83671. pictureFormat,
  83672. maxCodedExtent,
  83673. referencePicturesFormat,
  83674. maxReferencePicturesSlotsCount,
  83675. maxReferencePicturesActiveCount,
  83676. pStdHeaderVersion );
  83677. }
  83678. # endif
  83679. # if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  83680. auto operator<=>( VideoSessionCreateInfoKHR const & ) const = default;
  83681. # else
  83682. bool operator==( VideoSessionCreateInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  83683. {
  83684. # if defined( VULKAN_HPP_USE_REFLECT )
  83685. return this->reflect() == rhs.reflect();
  83686. # else
  83687. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( queueFamilyIndex == rhs.queueFamilyIndex ) && ( flags == rhs.flags ) &&
  83688. ( pVideoProfile == rhs.pVideoProfile ) && ( pictureFormat == rhs.pictureFormat ) && ( maxCodedExtent == rhs.maxCodedExtent ) &&
  83689. ( referencePicturesFormat == rhs.referencePicturesFormat ) && ( maxReferencePicturesSlotsCount == rhs.maxReferencePicturesSlotsCount ) &&
  83690. ( maxReferencePicturesActiveCount == rhs.maxReferencePicturesActiveCount ) && ( pStdHeaderVersion == rhs.pStdHeaderVersion );
  83691. # endif
  83692. }
  83693. bool operator!=( VideoSessionCreateInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  83694. {
  83695. return !operator==( rhs );
  83696. }
  83697. # endif
  83698. public:
  83699. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eVideoSessionCreateInfoKHR;
  83700. const void * pNext = {};
  83701. uint32_t queueFamilyIndex = {};
  83702. VULKAN_HPP_NAMESPACE::VideoSessionCreateFlagsKHR flags = {};
  83703. const VULKAN_HPP_NAMESPACE::VideoProfileInfoKHR * pVideoProfile = {};
  83704. VULKAN_HPP_NAMESPACE::Format pictureFormat = VULKAN_HPP_NAMESPACE::Format::eUndefined;
  83705. VULKAN_HPP_NAMESPACE::Extent2D maxCodedExtent = {};
  83706. VULKAN_HPP_NAMESPACE::Format referencePicturesFormat = VULKAN_HPP_NAMESPACE::Format::eUndefined;
  83707. uint32_t maxReferencePicturesSlotsCount = {};
  83708. uint32_t maxReferencePicturesActiveCount = {};
  83709. const VULKAN_HPP_NAMESPACE::ExtensionProperties * pStdHeaderVersion = {};
  83710. };
  83711. template <>
  83712. struct CppType<StructureType, StructureType::eVideoSessionCreateInfoKHR>
  83713. {
  83714. using Type = VideoSessionCreateInfoKHR;
  83715. };
  83716. #endif /*VK_ENABLE_BETA_EXTENSIONS*/
  83717. #if defined( VK_ENABLE_BETA_EXTENSIONS )
  83718. struct VideoSessionMemoryRequirementsKHR
  83719. {
  83720. using NativeType = VkVideoSessionMemoryRequirementsKHR;
  83721. static const bool allowDuplicate = false;
  83722. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eVideoSessionMemoryRequirementsKHR;
  83723. # if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  83724. VULKAN_HPP_CONSTEXPR VideoSessionMemoryRequirementsKHR( uint32_t memoryBindIndex_ = {},
  83725. VULKAN_HPP_NAMESPACE::MemoryRequirements memoryRequirements_ = {},
  83726. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  83727. : pNext( pNext_ )
  83728. , memoryBindIndex( memoryBindIndex_ )
  83729. , memoryRequirements( memoryRequirements_ )
  83730. {
  83731. }
  83732. VULKAN_HPP_CONSTEXPR VideoSessionMemoryRequirementsKHR( VideoSessionMemoryRequirementsKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  83733. VideoSessionMemoryRequirementsKHR( VkVideoSessionMemoryRequirementsKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  83734. : VideoSessionMemoryRequirementsKHR( *reinterpret_cast<VideoSessionMemoryRequirementsKHR const *>( &rhs ) )
  83735. {
  83736. }
  83737. # endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  83738. VideoSessionMemoryRequirementsKHR & operator=( VideoSessionMemoryRequirementsKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  83739. VideoSessionMemoryRequirementsKHR & operator=( VkVideoSessionMemoryRequirementsKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  83740. {
  83741. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::VideoSessionMemoryRequirementsKHR const *>( &rhs );
  83742. return *this;
  83743. }
  83744. operator VkVideoSessionMemoryRequirementsKHR const &() const VULKAN_HPP_NOEXCEPT
  83745. {
  83746. return *reinterpret_cast<const VkVideoSessionMemoryRequirementsKHR *>( this );
  83747. }
  83748. operator VkVideoSessionMemoryRequirementsKHR &() VULKAN_HPP_NOEXCEPT
  83749. {
  83750. return *reinterpret_cast<VkVideoSessionMemoryRequirementsKHR *>( this );
  83751. }
  83752. # if defined( VULKAN_HPP_USE_REFLECT )
  83753. # if 14 <= VULKAN_HPP_CPP_VERSION
  83754. auto
  83755. # else
  83756. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, uint32_t const &, VULKAN_HPP_NAMESPACE::MemoryRequirements const &>
  83757. # endif
  83758. reflect() const VULKAN_HPP_NOEXCEPT
  83759. {
  83760. return std::tie( sType, pNext, memoryBindIndex, memoryRequirements );
  83761. }
  83762. # endif
  83763. # if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  83764. auto operator<=>( VideoSessionMemoryRequirementsKHR const & ) const = default;
  83765. # else
  83766. bool operator==( VideoSessionMemoryRequirementsKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  83767. {
  83768. # if defined( VULKAN_HPP_USE_REFLECT )
  83769. return this->reflect() == rhs.reflect();
  83770. # else
  83771. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( memoryBindIndex == rhs.memoryBindIndex ) && ( memoryRequirements == rhs.memoryRequirements );
  83772. # endif
  83773. }
  83774. bool operator!=( VideoSessionMemoryRequirementsKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  83775. {
  83776. return !operator==( rhs );
  83777. }
  83778. # endif
  83779. public:
  83780. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eVideoSessionMemoryRequirementsKHR;
  83781. void * pNext = {};
  83782. uint32_t memoryBindIndex = {};
  83783. VULKAN_HPP_NAMESPACE::MemoryRequirements memoryRequirements = {};
  83784. };
  83785. template <>
  83786. struct CppType<StructureType, StructureType::eVideoSessionMemoryRequirementsKHR>
  83787. {
  83788. using Type = VideoSessionMemoryRequirementsKHR;
  83789. };
  83790. #endif /*VK_ENABLE_BETA_EXTENSIONS*/
  83791. #if defined( VK_ENABLE_BETA_EXTENSIONS )
  83792. struct VideoSessionParametersCreateInfoKHR
  83793. {
  83794. using NativeType = VkVideoSessionParametersCreateInfoKHR;
  83795. static const bool allowDuplicate = false;
  83796. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eVideoSessionParametersCreateInfoKHR;
  83797. # if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  83798. VULKAN_HPP_CONSTEXPR VideoSessionParametersCreateInfoKHR( VULKAN_HPP_NAMESPACE::VideoSessionParametersCreateFlagsKHR flags_ = {},
  83799. VULKAN_HPP_NAMESPACE::VideoSessionParametersKHR videoSessionParametersTemplate_ = {},
  83800. VULKAN_HPP_NAMESPACE::VideoSessionKHR videoSession_ = {},
  83801. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  83802. : pNext( pNext_ )
  83803. , flags( flags_ )
  83804. , videoSessionParametersTemplate( videoSessionParametersTemplate_ )
  83805. , videoSession( videoSession_ )
  83806. {
  83807. }
  83808. VULKAN_HPP_CONSTEXPR VideoSessionParametersCreateInfoKHR( VideoSessionParametersCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  83809. VideoSessionParametersCreateInfoKHR( VkVideoSessionParametersCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  83810. : VideoSessionParametersCreateInfoKHR( *reinterpret_cast<VideoSessionParametersCreateInfoKHR const *>( &rhs ) )
  83811. {
  83812. }
  83813. # endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  83814. VideoSessionParametersCreateInfoKHR & operator=( VideoSessionParametersCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  83815. VideoSessionParametersCreateInfoKHR & operator=( VkVideoSessionParametersCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  83816. {
  83817. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::VideoSessionParametersCreateInfoKHR const *>( &rhs );
  83818. return *this;
  83819. }
  83820. # if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  83821. VULKAN_HPP_CONSTEXPR_14 VideoSessionParametersCreateInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  83822. {
  83823. pNext = pNext_;
  83824. return *this;
  83825. }
  83826. VULKAN_HPP_CONSTEXPR_14 VideoSessionParametersCreateInfoKHR &
  83827. setFlags( VULKAN_HPP_NAMESPACE::VideoSessionParametersCreateFlagsKHR flags_ ) VULKAN_HPP_NOEXCEPT
  83828. {
  83829. flags = flags_;
  83830. return *this;
  83831. }
  83832. VULKAN_HPP_CONSTEXPR_14 VideoSessionParametersCreateInfoKHR &
  83833. setVideoSessionParametersTemplate( VULKAN_HPP_NAMESPACE::VideoSessionParametersKHR videoSessionParametersTemplate_ ) VULKAN_HPP_NOEXCEPT
  83834. {
  83835. videoSessionParametersTemplate = videoSessionParametersTemplate_;
  83836. return *this;
  83837. }
  83838. VULKAN_HPP_CONSTEXPR_14 VideoSessionParametersCreateInfoKHR & setVideoSession( VULKAN_HPP_NAMESPACE::VideoSessionKHR videoSession_ ) VULKAN_HPP_NOEXCEPT
  83839. {
  83840. videoSession = videoSession_;
  83841. return *this;
  83842. }
  83843. # endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  83844. operator VkVideoSessionParametersCreateInfoKHR const &() const VULKAN_HPP_NOEXCEPT
  83845. {
  83846. return *reinterpret_cast<const VkVideoSessionParametersCreateInfoKHR *>( this );
  83847. }
  83848. operator VkVideoSessionParametersCreateInfoKHR &() VULKAN_HPP_NOEXCEPT
  83849. {
  83850. return *reinterpret_cast<VkVideoSessionParametersCreateInfoKHR *>( this );
  83851. }
  83852. # if defined( VULKAN_HPP_USE_REFLECT )
  83853. # if 14 <= VULKAN_HPP_CPP_VERSION
  83854. auto
  83855. # else
  83856. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  83857. const void * const &,
  83858. VULKAN_HPP_NAMESPACE::VideoSessionParametersCreateFlagsKHR const &,
  83859. VULKAN_HPP_NAMESPACE::VideoSessionParametersKHR const &,
  83860. VULKAN_HPP_NAMESPACE::VideoSessionKHR const &>
  83861. # endif
  83862. reflect() const VULKAN_HPP_NOEXCEPT
  83863. {
  83864. return std::tie( sType, pNext, flags, videoSessionParametersTemplate, videoSession );
  83865. }
  83866. # endif
  83867. # if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  83868. auto operator<=>( VideoSessionParametersCreateInfoKHR const & ) const = default;
  83869. # else
  83870. bool operator==( VideoSessionParametersCreateInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  83871. {
  83872. # if defined( VULKAN_HPP_USE_REFLECT )
  83873. return this->reflect() == rhs.reflect();
  83874. # else
  83875. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( flags == rhs.flags ) &&
  83876. ( videoSessionParametersTemplate == rhs.videoSessionParametersTemplate ) && ( videoSession == rhs.videoSession );
  83877. # endif
  83878. }
  83879. bool operator!=( VideoSessionParametersCreateInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  83880. {
  83881. return !operator==( rhs );
  83882. }
  83883. # endif
  83884. public:
  83885. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eVideoSessionParametersCreateInfoKHR;
  83886. const void * pNext = {};
  83887. VULKAN_HPP_NAMESPACE::VideoSessionParametersCreateFlagsKHR flags = {};
  83888. VULKAN_HPP_NAMESPACE::VideoSessionParametersKHR videoSessionParametersTemplate = {};
  83889. VULKAN_HPP_NAMESPACE::VideoSessionKHR videoSession = {};
  83890. };
  83891. template <>
  83892. struct CppType<StructureType, StructureType::eVideoSessionParametersCreateInfoKHR>
  83893. {
  83894. using Type = VideoSessionParametersCreateInfoKHR;
  83895. };
  83896. #endif /*VK_ENABLE_BETA_EXTENSIONS*/
  83897. #if defined( VK_ENABLE_BETA_EXTENSIONS )
  83898. struct VideoSessionParametersUpdateInfoKHR
  83899. {
  83900. using NativeType = VkVideoSessionParametersUpdateInfoKHR;
  83901. static const bool allowDuplicate = false;
  83902. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eVideoSessionParametersUpdateInfoKHR;
  83903. # if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  83904. VULKAN_HPP_CONSTEXPR VideoSessionParametersUpdateInfoKHR( uint32_t updateSequenceCount_ = {}, const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  83905. : pNext( pNext_ )
  83906. , updateSequenceCount( updateSequenceCount_ )
  83907. {
  83908. }
  83909. VULKAN_HPP_CONSTEXPR VideoSessionParametersUpdateInfoKHR( VideoSessionParametersUpdateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  83910. VideoSessionParametersUpdateInfoKHR( VkVideoSessionParametersUpdateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  83911. : VideoSessionParametersUpdateInfoKHR( *reinterpret_cast<VideoSessionParametersUpdateInfoKHR const *>( &rhs ) )
  83912. {
  83913. }
  83914. # endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  83915. VideoSessionParametersUpdateInfoKHR & operator=( VideoSessionParametersUpdateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  83916. VideoSessionParametersUpdateInfoKHR & operator=( VkVideoSessionParametersUpdateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  83917. {
  83918. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::VideoSessionParametersUpdateInfoKHR const *>( &rhs );
  83919. return *this;
  83920. }
  83921. # if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  83922. VULKAN_HPP_CONSTEXPR_14 VideoSessionParametersUpdateInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  83923. {
  83924. pNext = pNext_;
  83925. return *this;
  83926. }
  83927. VULKAN_HPP_CONSTEXPR_14 VideoSessionParametersUpdateInfoKHR & setUpdateSequenceCount( uint32_t updateSequenceCount_ ) VULKAN_HPP_NOEXCEPT
  83928. {
  83929. updateSequenceCount = updateSequenceCount_;
  83930. return *this;
  83931. }
  83932. # endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  83933. operator VkVideoSessionParametersUpdateInfoKHR const &() const VULKAN_HPP_NOEXCEPT
  83934. {
  83935. return *reinterpret_cast<const VkVideoSessionParametersUpdateInfoKHR *>( this );
  83936. }
  83937. operator VkVideoSessionParametersUpdateInfoKHR &() VULKAN_HPP_NOEXCEPT
  83938. {
  83939. return *reinterpret_cast<VkVideoSessionParametersUpdateInfoKHR *>( this );
  83940. }
  83941. # if defined( VULKAN_HPP_USE_REFLECT )
  83942. # if 14 <= VULKAN_HPP_CPP_VERSION
  83943. auto
  83944. # else
  83945. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, uint32_t const &>
  83946. # endif
  83947. reflect() const VULKAN_HPP_NOEXCEPT
  83948. {
  83949. return std::tie( sType, pNext, updateSequenceCount );
  83950. }
  83951. # endif
  83952. # if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  83953. auto operator<=>( VideoSessionParametersUpdateInfoKHR const & ) const = default;
  83954. # else
  83955. bool operator==( VideoSessionParametersUpdateInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  83956. {
  83957. # if defined( VULKAN_HPP_USE_REFLECT )
  83958. return this->reflect() == rhs.reflect();
  83959. # else
  83960. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( updateSequenceCount == rhs.updateSequenceCount );
  83961. # endif
  83962. }
  83963. bool operator!=( VideoSessionParametersUpdateInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  83964. {
  83965. return !operator==( rhs );
  83966. }
  83967. # endif
  83968. public:
  83969. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eVideoSessionParametersUpdateInfoKHR;
  83970. const void * pNext = {};
  83971. uint32_t updateSequenceCount = {};
  83972. };
  83973. template <>
  83974. struct CppType<StructureType, StructureType::eVideoSessionParametersUpdateInfoKHR>
  83975. {
  83976. using Type = VideoSessionParametersUpdateInfoKHR;
  83977. };
  83978. #endif /*VK_ENABLE_BETA_EXTENSIONS*/
  83979. #if defined( VK_USE_PLATFORM_WAYLAND_KHR )
  83980. struct WaylandSurfaceCreateInfoKHR
  83981. {
  83982. using NativeType = VkWaylandSurfaceCreateInfoKHR;
  83983. static const bool allowDuplicate = false;
  83984. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eWaylandSurfaceCreateInfoKHR;
  83985. # if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  83986. VULKAN_HPP_CONSTEXPR WaylandSurfaceCreateInfoKHR( VULKAN_HPP_NAMESPACE::WaylandSurfaceCreateFlagsKHR flags_ = {},
  83987. struct wl_display * display_ = {},
  83988. struct wl_surface * surface_ = {},
  83989. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  83990. : pNext( pNext_ )
  83991. , flags( flags_ )
  83992. , display( display_ )
  83993. , surface( surface_ )
  83994. {
  83995. }
  83996. VULKAN_HPP_CONSTEXPR WaylandSurfaceCreateInfoKHR( WaylandSurfaceCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  83997. WaylandSurfaceCreateInfoKHR( VkWaylandSurfaceCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  83998. : WaylandSurfaceCreateInfoKHR( *reinterpret_cast<WaylandSurfaceCreateInfoKHR const *>( &rhs ) )
  83999. {
  84000. }
  84001. # endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  84002. WaylandSurfaceCreateInfoKHR & operator=( WaylandSurfaceCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  84003. WaylandSurfaceCreateInfoKHR & operator=( VkWaylandSurfaceCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  84004. {
  84005. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::WaylandSurfaceCreateInfoKHR const *>( &rhs );
  84006. return *this;
  84007. }
  84008. # if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  84009. VULKAN_HPP_CONSTEXPR_14 WaylandSurfaceCreateInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  84010. {
  84011. pNext = pNext_;
  84012. return *this;
  84013. }
  84014. VULKAN_HPP_CONSTEXPR_14 WaylandSurfaceCreateInfoKHR & setFlags( VULKAN_HPP_NAMESPACE::WaylandSurfaceCreateFlagsKHR flags_ ) VULKAN_HPP_NOEXCEPT
  84015. {
  84016. flags = flags_;
  84017. return *this;
  84018. }
  84019. VULKAN_HPP_CONSTEXPR_14 WaylandSurfaceCreateInfoKHR & setDisplay( struct wl_display * display_ ) VULKAN_HPP_NOEXCEPT
  84020. {
  84021. display = display_;
  84022. return *this;
  84023. }
  84024. VULKAN_HPP_CONSTEXPR_14 WaylandSurfaceCreateInfoKHR & setSurface( struct wl_surface * surface_ ) VULKAN_HPP_NOEXCEPT
  84025. {
  84026. surface = surface_;
  84027. return *this;
  84028. }
  84029. # endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  84030. operator VkWaylandSurfaceCreateInfoKHR const &() const VULKAN_HPP_NOEXCEPT
  84031. {
  84032. return *reinterpret_cast<const VkWaylandSurfaceCreateInfoKHR *>( this );
  84033. }
  84034. operator VkWaylandSurfaceCreateInfoKHR &() VULKAN_HPP_NOEXCEPT
  84035. {
  84036. return *reinterpret_cast<VkWaylandSurfaceCreateInfoKHR *>( this );
  84037. }
  84038. # if defined( VULKAN_HPP_USE_REFLECT )
  84039. # if 14 <= VULKAN_HPP_CPP_VERSION
  84040. auto
  84041. # else
  84042. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  84043. const void * const &,
  84044. VULKAN_HPP_NAMESPACE::WaylandSurfaceCreateFlagsKHR const &,
  84045. struct wl_display * const &,
  84046. struct wl_surface * const &>
  84047. # endif
  84048. reflect() const VULKAN_HPP_NOEXCEPT
  84049. {
  84050. return std::tie( sType, pNext, flags, display, surface );
  84051. }
  84052. # endif
  84053. # if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  84054. auto operator<=>( WaylandSurfaceCreateInfoKHR const & ) const = default;
  84055. # else
  84056. bool operator==( WaylandSurfaceCreateInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  84057. {
  84058. # if defined( VULKAN_HPP_USE_REFLECT )
  84059. return this->reflect() == rhs.reflect();
  84060. # else
  84061. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( flags == rhs.flags ) && ( display == rhs.display ) && ( surface == rhs.surface );
  84062. # endif
  84063. }
  84064. bool operator!=( WaylandSurfaceCreateInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  84065. {
  84066. return !operator==( rhs );
  84067. }
  84068. # endif
  84069. public:
  84070. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eWaylandSurfaceCreateInfoKHR;
  84071. const void * pNext = {};
  84072. VULKAN_HPP_NAMESPACE::WaylandSurfaceCreateFlagsKHR flags = {};
  84073. struct wl_display * display = {};
  84074. struct wl_surface * surface = {};
  84075. };
  84076. template <>
  84077. struct CppType<StructureType, StructureType::eWaylandSurfaceCreateInfoKHR>
  84078. {
  84079. using Type = WaylandSurfaceCreateInfoKHR;
  84080. };
  84081. #endif /*VK_USE_PLATFORM_WAYLAND_KHR*/
  84082. #if defined( VK_USE_PLATFORM_WIN32_KHR )
  84083. struct Win32KeyedMutexAcquireReleaseInfoKHR
  84084. {
  84085. using NativeType = VkWin32KeyedMutexAcquireReleaseInfoKHR;
  84086. static const bool allowDuplicate = false;
  84087. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eWin32KeyedMutexAcquireReleaseInfoKHR;
  84088. # if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  84089. VULKAN_HPP_CONSTEXPR Win32KeyedMutexAcquireReleaseInfoKHR( uint32_t acquireCount_ = {},
  84090. const VULKAN_HPP_NAMESPACE::DeviceMemory * pAcquireSyncs_ = {},
  84091. const uint64_t * pAcquireKeys_ = {},
  84092. const uint32_t * pAcquireTimeouts_ = {},
  84093. uint32_t releaseCount_ = {},
  84094. const VULKAN_HPP_NAMESPACE::DeviceMemory * pReleaseSyncs_ = {},
  84095. const uint64_t * pReleaseKeys_ = {},
  84096. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  84097. : pNext( pNext_ )
  84098. , acquireCount( acquireCount_ )
  84099. , pAcquireSyncs( pAcquireSyncs_ )
  84100. , pAcquireKeys( pAcquireKeys_ )
  84101. , pAcquireTimeouts( pAcquireTimeouts_ )
  84102. , releaseCount( releaseCount_ )
  84103. , pReleaseSyncs( pReleaseSyncs_ )
  84104. , pReleaseKeys( pReleaseKeys_ )
  84105. {
  84106. }
  84107. VULKAN_HPP_CONSTEXPR Win32KeyedMutexAcquireReleaseInfoKHR( Win32KeyedMutexAcquireReleaseInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  84108. Win32KeyedMutexAcquireReleaseInfoKHR( VkWin32KeyedMutexAcquireReleaseInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  84109. : Win32KeyedMutexAcquireReleaseInfoKHR( *reinterpret_cast<Win32KeyedMutexAcquireReleaseInfoKHR const *>( &rhs ) )
  84110. {
  84111. }
  84112. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  84113. Win32KeyedMutexAcquireReleaseInfoKHR( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::DeviceMemory> const & acquireSyncs_,
  84114. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint64_t> const & acquireKeys_ = {},
  84115. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint32_t> const & acquireTimeouts_ = {},
  84116. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::DeviceMemory> const & releaseSyncs_ = {},
  84117. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint64_t> const & releaseKeys_ = {},
  84118. const void * pNext_ = nullptr )
  84119. : pNext( pNext_ )
  84120. , acquireCount( static_cast<uint32_t>( acquireSyncs_.size() ) )
  84121. , pAcquireSyncs( acquireSyncs_.data() )
  84122. , pAcquireKeys( acquireKeys_.data() )
  84123. , pAcquireTimeouts( acquireTimeouts_.data() )
  84124. , releaseCount( static_cast<uint32_t>( releaseSyncs_.size() ) )
  84125. , pReleaseSyncs( releaseSyncs_.data() )
  84126. , pReleaseKeys( releaseKeys_.data() )
  84127. {
  84128. # ifdef VULKAN_HPP_NO_EXCEPTIONS
  84129. VULKAN_HPP_ASSERT( acquireSyncs_.size() == acquireKeys_.size() );
  84130. VULKAN_HPP_ASSERT( acquireSyncs_.size() == acquireTimeouts_.size() );
  84131. VULKAN_HPP_ASSERT( acquireKeys_.size() == acquireTimeouts_.size() );
  84132. # else
  84133. if ( acquireSyncs_.size() != acquireKeys_.size() )
  84134. {
  84135. throw LogicError( VULKAN_HPP_NAMESPACE_STRING
  84136. "::Win32KeyedMutexAcquireReleaseInfoKHR::Win32KeyedMutexAcquireReleaseInfoKHR: acquireSyncs_.size() != acquireKeys_.size()" );
  84137. }
  84138. if ( acquireSyncs_.size() != acquireTimeouts_.size() )
  84139. {
  84140. throw LogicError( VULKAN_HPP_NAMESPACE_STRING
  84141. "::Win32KeyedMutexAcquireReleaseInfoKHR::Win32KeyedMutexAcquireReleaseInfoKHR: acquireSyncs_.size() != acquireTimeouts_.size()" );
  84142. }
  84143. if ( acquireKeys_.size() != acquireTimeouts_.size() )
  84144. {
  84145. throw LogicError( VULKAN_HPP_NAMESPACE_STRING
  84146. "::Win32KeyedMutexAcquireReleaseInfoKHR::Win32KeyedMutexAcquireReleaseInfoKHR: acquireKeys_.size() != acquireTimeouts_.size()" );
  84147. }
  84148. # endif /*VULKAN_HPP_NO_EXCEPTIONS*/
  84149. # ifdef VULKAN_HPP_NO_EXCEPTIONS
  84150. VULKAN_HPP_ASSERT( releaseSyncs_.size() == releaseKeys_.size() );
  84151. # else
  84152. if ( releaseSyncs_.size() != releaseKeys_.size() )
  84153. {
  84154. throw LogicError( VULKAN_HPP_NAMESPACE_STRING
  84155. "::Win32KeyedMutexAcquireReleaseInfoKHR::Win32KeyedMutexAcquireReleaseInfoKHR: releaseSyncs_.size() != releaseKeys_.size()" );
  84156. }
  84157. # endif /*VULKAN_HPP_NO_EXCEPTIONS*/
  84158. }
  84159. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  84160. # endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  84161. Win32KeyedMutexAcquireReleaseInfoKHR & operator=( Win32KeyedMutexAcquireReleaseInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  84162. Win32KeyedMutexAcquireReleaseInfoKHR & operator=( VkWin32KeyedMutexAcquireReleaseInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  84163. {
  84164. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::Win32KeyedMutexAcquireReleaseInfoKHR const *>( &rhs );
  84165. return *this;
  84166. }
  84167. # if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  84168. VULKAN_HPP_CONSTEXPR_14 Win32KeyedMutexAcquireReleaseInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  84169. {
  84170. pNext = pNext_;
  84171. return *this;
  84172. }
  84173. VULKAN_HPP_CONSTEXPR_14 Win32KeyedMutexAcquireReleaseInfoKHR & setAcquireCount( uint32_t acquireCount_ ) VULKAN_HPP_NOEXCEPT
  84174. {
  84175. acquireCount = acquireCount_;
  84176. return *this;
  84177. }
  84178. VULKAN_HPP_CONSTEXPR_14 Win32KeyedMutexAcquireReleaseInfoKHR &
  84179. setPAcquireSyncs( const VULKAN_HPP_NAMESPACE::DeviceMemory * pAcquireSyncs_ ) VULKAN_HPP_NOEXCEPT
  84180. {
  84181. pAcquireSyncs = pAcquireSyncs_;
  84182. return *this;
  84183. }
  84184. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  84185. Win32KeyedMutexAcquireReleaseInfoKHR &
  84186. setAcquireSyncs( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::DeviceMemory> const & acquireSyncs_ ) VULKAN_HPP_NOEXCEPT
  84187. {
  84188. acquireCount = static_cast<uint32_t>( acquireSyncs_.size() );
  84189. pAcquireSyncs = acquireSyncs_.data();
  84190. return *this;
  84191. }
  84192. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  84193. VULKAN_HPP_CONSTEXPR_14 Win32KeyedMutexAcquireReleaseInfoKHR & setPAcquireKeys( const uint64_t * pAcquireKeys_ ) VULKAN_HPP_NOEXCEPT
  84194. {
  84195. pAcquireKeys = pAcquireKeys_;
  84196. return *this;
  84197. }
  84198. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  84199. Win32KeyedMutexAcquireReleaseInfoKHR &
  84200. setAcquireKeys( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint64_t> const & acquireKeys_ ) VULKAN_HPP_NOEXCEPT
  84201. {
  84202. acquireCount = static_cast<uint32_t>( acquireKeys_.size() );
  84203. pAcquireKeys = acquireKeys_.data();
  84204. return *this;
  84205. }
  84206. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  84207. VULKAN_HPP_CONSTEXPR_14 Win32KeyedMutexAcquireReleaseInfoKHR & setPAcquireTimeouts( const uint32_t * pAcquireTimeouts_ ) VULKAN_HPP_NOEXCEPT
  84208. {
  84209. pAcquireTimeouts = pAcquireTimeouts_;
  84210. return *this;
  84211. }
  84212. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  84213. Win32KeyedMutexAcquireReleaseInfoKHR &
  84214. setAcquireTimeouts( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint32_t> const & acquireTimeouts_ ) VULKAN_HPP_NOEXCEPT
  84215. {
  84216. acquireCount = static_cast<uint32_t>( acquireTimeouts_.size() );
  84217. pAcquireTimeouts = acquireTimeouts_.data();
  84218. return *this;
  84219. }
  84220. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  84221. VULKAN_HPP_CONSTEXPR_14 Win32KeyedMutexAcquireReleaseInfoKHR & setReleaseCount( uint32_t releaseCount_ ) VULKAN_HPP_NOEXCEPT
  84222. {
  84223. releaseCount = releaseCount_;
  84224. return *this;
  84225. }
  84226. VULKAN_HPP_CONSTEXPR_14 Win32KeyedMutexAcquireReleaseInfoKHR &
  84227. setPReleaseSyncs( const VULKAN_HPP_NAMESPACE::DeviceMemory * pReleaseSyncs_ ) VULKAN_HPP_NOEXCEPT
  84228. {
  84229. pReleaseSyncs = pReleaseSyncs_;
  84230. return *this;
  84231. }
  84232. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  84233. Win32KeyedMutexAcquireReleaseInfoKHR &
  84234. setReleaseSyncs( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::DeviceMemory> const & releaseSyncs_ ) VULKAN_HPP_NOEXCEPT
  84235. {
  84236. releaseCount = static_cast<uint32_t>( releaseSyncs_.size() );
  84237. pReleaseSyncs = releaseSyncs_.data();
  84238. return *this;
  84239. }
  84240. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  84241. VULKAN_HPP_CONSTEXPR_14 Win32KeyedMutexAcquireReleaseInfoKHR & setPReleaseKeys( const uint64_t * pReleaseKeys_ ) VULKAN_HPP_NOEXCEPT
  84242. {
  84243. pReleaseKeys = pReleaseKeys_;
  84244. return *this;
  84245. }
  84246. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  84247. Win32KeyedMutexAcquireReleaseInfoKHR &
  84248. setReleaseKeys( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint64_t> const & releaseKeys_ ) VULKAN_HPP_NOEXCEPT
  84249. {
  84250. releaseCount = static_cast<uint32_t>( releaseKeys_.size() );
  84251. pReleaseKeys = releaseKeys_.data();
  84252. return *this;
  84253. }
  84254. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  84255. # endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  84256. operator VkWin32KeyedMutexAcquireReleaseInfoKHR const &() const VULKAN_HPP_NOEXCEPT
  84257. {
  84258. return *reinterpret_cast<const VkWin32KeyedMutexAcquireReleaseInfoKHR *>( this );
  84259. }
  84260. operator VkWin32KeyedMutexAcquireReleaseInfoKHR &() VULKAN_HPP_NOEXCEPT
  84261. {
  84262. return *reinterpret_cast<VkWin32KeyedMutexAcquireReleaseInfoKHR *>( this );
  84263. }
  84264. # if defined( VULKAN_HPP_USE_REFLECT )
  84265. # if 14 <= VULKAN_HPP_CPP_VERSION
  84266. auto
  84267. # else
  84268. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  84269. const void * const &,
  84270. uint32_t const &,
  84271. const VULKAN_HPP_NAMESPACE::DeviceMemory * const &,
  84272. const uint64_t * const &,
  84273. const uint32_t * const &,
  84274. uint32_t const &,
  84275. const VULKAN_HPP_NAMESPACE::DeviceMemory * const &,
  84276. const uint64_t * const &>
  84277. # endif
  84278. reflect() const VULKAN_HPP_NOEXCEPT
  84279. {
  84280. return std::tie( sType, pNext, acquireCount, pAcquireSyncs, pAcquireKeys, pAcquireTimeouts, releaseCount, pReleaseSyncs, pReleaseKeys );
  84281. }
  84282. # endif
  84283. # if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  84284. auto operator<=>( Win32KeyedMutexAcquireReleaseInfoKHR const & ) const = default;
  84285. # else
  84286. bool operator==( Win32KeyedMutexAcquireReleaseInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  84287. {
  84288. # if defined( VULKAN_HPP_USE_REFLECT )
  84289. return this->reflect() == rhs.reflect();
  84290. # else
  84291. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( acquireCount == rhs.acquireCount ) && ( pAcquireSyncs == rhs.pAcquireSyncs ) &&
  84292. ( pAcquireKeys == rhs.pAcquireKeys ) && ( pAcquireTimeouts == rhs.pAcquireTimeouts ) && ( releaseCount == rhs.releaseCount ) &&
  84293. ( pReleaseSyncs == rhs.pReleaseSyncs ) && ( pReleaseKeys == rhs.pReleaseKeys );
  84294. # endif
  84295. }
  84296. bool operator!=( Win32KeyedMutexAcquireReleaseInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  84297. {
  84298. return !operator==( rhs );
  84299. }
  84300. # endif
  84301. public:
  84302. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eWin32KeyedMutexAcquireReleaseInfoKHR;
  84303. const void * pNext = {};
  84304. uint32_t acquireCount = {};
  84305. const VULKAN_HPP_NAMESPACE::DeviceMemory * pAcquireSyncs = {};
  84306. const uint64_t * pAcquireKeys = {};
  84307. const uint32_t * pAcquireTimeouts = {};
  84308. uint32_t releaseCount = {};
  84309. const VULKAN_HPP_NAMESPACE::DeviceMemory * pReleaseSyncs = {};
  84310. const uint64_t * pReleaseKeys = {};
  84311. };
  84312. template <>
  84313. struct CppType<StructureType, StructureType::eWin32KeyedMutexAcquireReleaseInfoKHR>
  84314. {
  84315. using Type = Win32KeyedMutexAcquireReleaseInfoKHR;
  84316. };
  84317. #endif /*VK_USE_PLATFORM_WIN32_KHR*/
  84318. #if defined( VK_USE_PLATFORM_WIN32_KHR )
  84319. struct Win32KeyedMutexAcquireReleaseInfoNV
  84320. {
  84321. using NativeType = VkWin32KeyedMutexAcquireReleaseInfoNV;
  84322. static const bool allowDuplicate = false;
  84323. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eWin32KeyedMutexAcquireReleaseInfoNV;
  84324. # if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  84325. VULKAN_HPP_CONSTEXPR Win32KeyedMutexAcquireReleaseInfoNV( uint32_t acquireCount_ = {},
  84326. const VULKAN_HPP_NAMESPACE::DeviceMemory * pAcquireSyncs_ = {},
  84327. const uint64_t * pAcquireKeys_ = {},
  84328. const uint32_t * pAcquireTimeoutMilliseconds_ = {},
  84329. uint32_t releaseCount_ = {},
  84330. const VULKAN_HPP_NAMESPACE::DeviceMemory * pReleaseSyncs_ = {},
  84331. const uint64_t * pReleaseKeys_ = {},
  84332. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  84333. : pNext( pNext_ )
  84334. , acquireCount( acquireCount_ )
  84335. , pAcquireSyncs( pAcquireSyncs_ )
  84336. , pAcquireKeys( pAcquireKeys_ )
  84337. , pAcquireTimeoutMilliseconds( pAcquireTimeoutMilliseconds_ )
  84338. , releaseCount( releaseCount_ )
  84339. , pReleaseSyncs( pReleaseSyncs_ )
  84340. , pReleaseKeys( pReleaseKeys_ )
  84341. {
  84342. }
  84343. VULKAN_HPP_CONSTEXPR Win32KeyedMutexAcquireReleaseInfoNV( Win32KeyedMutexAcquireReleaseInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  84344. Win32KeyedMutexAcquireReleaseInfoNV( VkWin32KeyedMutexAcquireReleaseInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
  84345. : Win32KeyedMutexAcquireReleaseInfoNV( *reinterpret_cast<Win32KeyedMutexAcquireReleaseInfoNV const *>( &rhs ) )
  84346. {
  84347. }
  84348. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  84349. Win32KeyedMutexAcquireReleaseInfoNV( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::DeviceMemory> const & acquireSyncs_,
  84350. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint64_t> const & acquireKeys_ = {},
  84351. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint32_t> const & acquireTimeoutMilliseconds_ = {},
  84352. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::DeviceMemory> const & releaseSyncs_ = {},
  84353. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint64_t> const & releaseKeys_ = {},
  84354. const void * pNext_ = nullptr )
  84355. : pNext( pNext_ )
  84356. , acquireCount( static_cast<uint32_t>( acquireSyncs_.size() ) )
  84357. , pAcquireSyncs( acquireSyncs_.data() )
  84358. , pAcquireKeys( acquireKeys_.data() )
  84359. , pAcquireTimeoutMilliseconds( acquireTimeoutMilliseconds_.data() )
  84360. , releaseCount( static_cast<uint32_t>( releaseSyncs_.size() ) )
  84361. , pReleaseSyncs( releaseSyncs_.data() )
  84362. , pReleaseKeys( releaseKeys_.data() )
  84363. {
  84364. # ifdef VULKAN_HPP_NO_EXCEPTIONS
  84365. VULKAN_HPP_ASSERT( acquireSyncs_.size() == acquireKeys_.size() );
  84366. VULKAN_HPP_ASSERT( acquireSyncs_.size() == acquireTimeoutMilliseconds_.size() );
  84367. VULKAN_HPP_ASSERT( acquireKeys_.size() == acquireTimeoutMilliseconds_.size() );
  84368. # else
  84369. if ( acquireSyncs_.size() != acquireKeys_.size() )
  84370. {
  84371. throw LogicError( VULKAN_HPP_NAMESPACE_STRING
  84372. "::Win32KeyedMutexAcquireReleaseInfoNV::Win32KeyedMutexAcquireReleaseInfoNV: acquireSyncs_.size() != acquireKeys_.size()" );
  84373. }
  84374. if ( acquireSyncs_.size() != acquireTimeoutMilliseconds_.size() )
  84375. {
  84376. throw LogicError(
  84377. VULKAN_HPP_NAMESPACE_STRING
  84378. "::Win32KeyedMutexAcquireReleaseInfoNV::Win32KeyedMutexAcquireReleaseInfoNV: acquireSyncs_.size() != acquireTimeoutMilliseconds_.size()" );
  84379. }
  84380. if ( acquireKeys_.size() != acquireTimeoutMilliseconds_.size() )
  84381. {
  84382. throw LogicError(
  84383. VULKAN_HPP_NAMESPACE_STRING
  84384. "::Win32KeyedMutexAcquireReleaseInfoNV::Win32KeyedMutexAcquireReleaseInfoNV: acquireKeys_.size() != acquireTimeoutMilliseconds_.size()" );
  84385. }
  84386. # endif /*VULKAN_HPP_NO_EXCEPTIONS*/
  84387. # ifdef VULKAN_HPP_NO_EXCEPTIONS
  84388. VULKAN_HPP_ASSERT( releaseSyncs_.size() == releaseKeys_.size() );
  84389. # else
  84390. if ( releaseSyncs_.size() != releaseKeys_.size() )
  84391. {
  84392. throw LogicError( VULKAN_HPP_NAMESPACE_STRING
  84393. "::Win32KeyedMutexAcquireReleaseInfoNV::Win32KeyedMutexAcquireReleaseInfoNV: releaseSyncs_.size() != releaseKeys_.size()" );
  84394. }
  84395. # endif /*VULKAN_HPP_NO_EXCEPTIONS*/
  84396. }
  84397. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  84398. # endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  84399. Win32KeyedMutexAcquireReleaseInfoNV & operator=( Win32KeyedMutexAcquireReleaseInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  84400. Win32KeyedMutexAcquireReleaseInfoNV & operator=( VkWin32KeyedMutexAcquireReleaseInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
  84401. {
  84402. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::Win32KeyedMutexAcquireReleaseInfoNV const *>( &rhs );
  84403. return *this;
  84404. }
  84405. # if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  84406. VULKAN_HPP_CONSTEXPR_14 Win32KeyedMutexAcquireReleaseInfoNV & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  84407. {
  84408. pNext = pNext_;
  84409. return *this;
  84410. }
  84411. VULKAN_HPP_CONSTEXPR_14 Win32KeyedMutexAcquireReleaseInfoNV & setAcquireCount( uint32_t acquireCount_ ) VULKAN_HPP_NOEXCEPT
  84412. {
  84413. acquireCount = acquireCount_;
  84414. return *this;
  84415. }
  84416. VULKAN_HPP_CONSTEXPR_14 Win32KeyedMutexAcquireReleaseInfoNV &
  84417. setPAcquireSyncs( const VULKAN_HPP_NAMESPACE::DeviceMemory * pAcquireSyncs_ ) VULKAN_HPP_NOEXCEPT
  84418. {
  84419. pAcquireSyncs = pAcquireSyncs_;
  84420. return *this;
  84421. }
  84422. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  84423. Win32KeyedMutexAcquireReleaseInfoNV &
  84424. setAcquireSyncs( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::DeviceMemory> const & acquireSyncs_ ) VULKAN_HPP_NOEXCEPT
  84425. {
  84426. acquireCount = static_cast<uint32_t>( acquireSyncs_.size() );
  84427. pAcquireSyncs = acquireSyncs_.data();
  84428. return *this;
  84429. }
  84430. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  84431. VULKAN_HPP_CONSTEXPR_14 Win32KeyedMutexAcquireReleaseInfoNV & setPAcquireKeys( const uint64_t * pAcquireKeys_ ) VULKAN_HPP_NOEXCEPT
  84432. {
  84433. pAcquireKeys = pAcquireKeys_;
  84434. return *this;
  84435. }
  84436. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  84437. Win32KeyedMutexAcquireReleaseInfoNV &
  84438. setAcquireKeys( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint64_t> const & acquireKeys_ ) VULKAN_HPP_NOEXCEPT
  84439. {
  84440. acquireCount = static_cast<uint32_t>( acquireKeys_.size() );
  84441. pAcquireKeys = acquireKeys_.data();
  84442. return *this;
  84443. }
  84444. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  84445. VULKAN_HPP_CONSTEXPR_14 Win32KeyedMutexAcquireReleaseInfoNV &
  84446. setPAcquireTimeoutMilliseconds( const uint32_t * pAcquireTimeoutMilliseconds_ ) VULKAN_HPP_NOEXCEPT
  84447. {
  84448. pAcquireTimeoutMilliseconds = pAcquireTimeoutMilliseconds_;
  84449. return *this;
  84450. }
  84451. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  84452. Win32KeyedMutexAcquireReleaseInfoNV &
  84453. setAcquireTimeoutMilliseconds( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint32_t> const & acquireTimeoutMilliseconds_ ) VULKAN_HPP_NOEXCEPT
  84454. {
  84455. acquireCount = static_cast<uint32_t>( acquireTimeoutMilliseconds_.size() );
  84456. pAcquireTimeoutMilliseconds = acquireTimeoutMilliseconds_.data();
  84457. return *this;
  84458. }
  84459. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  84460. VULKAN_HPP_CONSTEXPR_14 Win32KeyedMutexAcquireReleaseInfoNV & setReleaseCount( uint32_t releaseCount_ ) VULKAN_HPP_NOEXCEPT
  84461. {
  84462. releaseCount = releaseCount_;
  84463. return *this;
  84464. }
  84465. VULKAN_HPP_CONSTEXPR_14 Win32KeyedMutexAcquireReleaseInfoNV &
  84466. setPReleaseSyncs( const VULKAN_HPP_NAMESPACE::DeviceMemory * pReleaseSyncs_ ) VULKAN_HPP_NOEXCEPT
  84467. {
  84468. pReleaseSyncs = pReleaseSyncs_;
  84469. return *this;
  84470. }
  84471. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  84472. Win32KeyedMutexAcquireReleaseInfoNV &
  84473. setReleaseSyncs( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::DeviceMemory> const & releaseSyncs_ ) VULKAN_HPP_NOEXCEPT
  84474. {
  84475. releaseCount = static_cast<uint32_t>( releaseSyncs_.size() );
  84476. pReleaseSyncs = releaseSyncs_.data();
  84477. return *this;
  84478. }
  84479. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  84480. VULKAN_HPP_CONSTEXPR_14 Win32KeyedMutexAcquireReleaseInfoNV & setPReleaseKeys( const uint64_t * pReleaseKeys_ ) VULKAN_HPP_NOEXCEPT
  84481. {
  84482. pReleaseKeys = pReleaseKeys_;
  84483. return *this;
  84484. }
  84485. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  84486. Win32KeyedMutexAcquireReleaseInfoNV &
  84487. setReleaseKeys( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint64_t> const & releaseKeys_ ) VULKAN_HPP_NOEXCEPT
  84488. {
  84489. releaseCount = static_cast<uint32_t>( releaseKeys_.size() );
  84490. pReleaseKeys = releaseKeys_.data();
  84491. return *this;
  84492. }
  84493. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  84494. # endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  84495. operator VkWin32KeyedMutexAcquireReleaseInfoNV const &() const VULKAN_HPP_NOEXCEPT
  84496. {
  84497. return *reinterpret_cast<const VkWin32KeyedMutexAcquireReleaseInfoNV *>( this );
  84498. }
  84499. operator VkWin32KeyedMutexAcquireReleaseInfoNV &() VULKAN_HPP_NOEXCEPT
  84500. {
  84501. return *reinterpret_cast<VkWin32KeyedMutexAcquireReleaseInfoNV *>( this );
  84502. }
  84503. # if defined( VULKAN_HPP_USE_REFLECT )
  84504. # if 14 <= VULKAN_HPP_CPP_VERSION
  84505. auto
  84506. # else
  84507. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  84508. const void * const &,
  84509. uint32_t const &,
  84510. const VULKAN_HPP_NAMESPACE::DeviceMemory * const &,
  84511. const uint64_t * const &,
  84512. const uint32_t * const &,
  84513. uint32_t const &,
  84514. const VULKAN_HPP_NAMESPACE::DeviceMemory * const &,
  84515. const uint64_t * const &>
  84516. # endif
  84517. reflect() const VULKAN_HPP_NOEXCEPT
  84518. {
  84519. return std::tie( sType, pNext, acquireCount, pAcquireSyncs, pAcquireKeys, pAcquireTimeoutMilliseconds, releaseCount, pReleaseSyncs, pReleaseKeys );
  84520. }
  84521. # endif
  84522. # if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  84523. auto operator<=>( Win32KeyedMutexAcquireReleaseInfoNV const & ) const = default;
  84524. # else
  84525. bool operator==( Win32KeyedMutexAcquireReleaseInfoNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  84526. {
  84527. # if defined( VULKAN_HPP_USE_REFLECT )
  84528. return this->reflect() == rhs.reflect();
  84529. # else
  84530. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( acquireCount == rhs.acquireCount ) && ( pAcquireSyncs == rhs.pAcquireSyncs ) &&
  84531. ( pAcquireKeys == rhs.pAcquireKeys ) && ( pAcquireTimeoutMilliseconds == rhs.pAcquireTimeoutMilliseconds ) &&
  84532. ( releaseCount == rhs.releaseCount ) && ( pReleaseSyncs == rhs.pReleaseSyncs ) && ( pReleaseKeys == rhs.pReleaseKeys );
  84533. # endif
  84534. }
  84535. bool operator!=( Win32KeyedMutexAcquireReleaseInfoNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  84536. {
  84537. return !operator==( rhs );
  84538. }
  84539. # endif
  84540. public:
  84541. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eWin32KeyedMutexAcquireReleaseInfoNV;
  84542. const void * pNext = {};
  84543. uint32_t acquireCount = {};
  84544. const VULKAN_HPP_NAMESPACE::DeviceMemory * pAcquireSyncs = {};
  84545. const uint64_t * pAcquireKeys = {};
  84546. const uint32_t * pAcquireTimeoutMilliseconds = {};
  84547. uint32_t releaseCount = {};
  84548. const VULKAN_HPP_NAMESPACE::DeviceMemory * pReleaseSyncs = {};
  84549. const uint64_t * pReleaseKeys = {};
  84550. };
  84551. template <>
  84552. struct CppType<StructureType, StructureType::eWin32KeyedMutexAcquireReleaseInfoNV>
  84553. {
  84554. using Type = Win32KeyedMutexAcquireReleaseInfoNV;
  84555. };
  84556. #endif /*VK_USE_PLATFORM_WIN32_KHR*/
  84557. #if defined( VK_USE_PLATFORM_WIN32_KHR )
  84558. struct Win32SurfaceCreateInfoKHR
  84559. {
  84560. using NativeType = VkWin32SurfaceCreateInfoKHR;
  84561. static const bool allowDuplicate = false;
  84562. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eWin32SurfaceCreateInfoKHR;
  84563. # if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  84564. VULKAN_HPP_CONSTEXPR Win32SurfaceCreateInfoKHR( VULKAN_HPP_NAMESPACE::Win32SurfaceCreateFlagsKHR flags_ = {},
  84565. HINSTANCE hinstance_ = {},
  84566. HWND hwnd_ = {},
  84567. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  84568. : pNext( pNext_ )
  84569. , flags( flags_ )
  84570. , hinstance( hinstance_ )
  84571. , hwnd( hwnd_ )
  84572. {
  84573. }
  84574. VULKAN_HPP_CONSTEXPR Win32SurfaceCreateInfoKHR( Win32SurfaceCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  84575. Win32SurfaceCreateInfoKHR( VkWin32SurfaceCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  84576. : Win32SurfaceCreateInfoKHR( *reinterpret_cast<Win32SurfaceCreateInfoKHR const *>( &rhs ) )
  84577. {
  84578. }
  84579. # endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  84580. Win32SurfaceCreateInfoKHR & operator=( Win32SurfaceCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  84581. Win32SurfaceCreateInfoKHR & operator=( VkWin32SurfaceCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  84582. {
  84583. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::Win32SurfaceCreateInfoKHR const *>( &rhs );
  84584. return *this;
  84585. }
  84586. # if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  84587. VULKAN_HPP_CONSTEXPR_14 Win32SurfaceCreateInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  84588. {
  84589. pNext = pNext_;
  84590. return *this;
  84591. }
  84592. VULKAN_HPP_CONSTEXPR_14 Win32SurfaceCreateInfoKHR & setFlags( VULKAN_HPP_NAMESPACE::Win32SurfaceCreateFlagsKHR flags_ ) VULKAN_HPP_NOEXCEPT
  84593. {
  84594. flags = flags_;
  84595. return *this;
  84596. }
  84597. VULKAN_HPP_CONSTEXPR_14 Win32SurfaceCreateInfoKHR & setHinstance( HINSTANCE hinstance_ ) VULKAN_HPP_NOEXCEPT
  84598. {
  84599. hinstance = hinstance_;
  84600. return *this;
  84601. }
  84602. VULKAN_HPP_CONSTEXPR_14 Win32SurfaceCreateInfoKHR & setHwnd( HWND hwnd_ ) VULKAN_HPP_NOEXCEPT
  84603. {
  84604. hwnd = hwnd_;
  84605. return *this;
  84606. }
  84607. # endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  84608. operator VkWin32SurfaceCreateInfoKHR const &() const VULKAN_HPP_NOEXCEPT
  84609. {
  84610. return *reinterpret_cast<const VkWin32SurfaceCreateInfoKHR *>( this );
  84611. }
  84612. operator VkWin32SurfaceCreateInfoKHR &() VULKAN_HPP_NOEXCEPT
  84613. {
  84614. return *reinterpret_cast<VkWin32SurfaceCreateInfoKHR *>( this );
  84615. }
  84616. # if defined( VULKAN_HPP_USE_REFLECT )
  84617. # if 14 <= VULKAN_HPP_CPP_VERSION
  84618. auto
  84619. # else
  84620. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  84621. const void * const &,
  84622. VULKAN_HPP_NAMESPACE::Win32SurfaceCreateFlagsKHR const &,
  84623. HINSTANCE const &,
  84624. HWND const &>
  84625. # endif
  84626. reflect() const VULKAN_HPP_NOEXCEPT
  84627. {
  84628. return std::tie( sType, pNext, flags, hinstance, hwnd );
  84629. }
  84630. # endif
  84631. # if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  84632. auto operator<=>( Win32SurfaceCreateInfoKHR const & ) const = default;
  84633. # else
  84634. bool operator==( Win32SurfaceCreateInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  84635. {
  84636. # if defined( VULKAN_HPP_USE_REFLECT )
  84637. return this->reflect() == rhs.reflect();
  84638. # else
  84639. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( flags == rhs.flags ) && ( hinstance == rhs.hinstance ) && ( hwnd == rhs.hwnd );
  84640. # endif
  84641. }
  84642. bool operator!=( Win32SurfaceCreateInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  84643. {
  84644. return !operator==( rhs );
  84645. }
  84646. # endif
  84647. public:
  84648. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eWin32SurfaceCreateInfoKHR;
  84649. const void * pNext = {};
  84650. VULKAN_HPP_NAMESPACE::Win32SurfaceCreateFlagsKHR flags = {};
  84651. HINSTANCE hinstance = {};
  84652. HWND hwnd = {};
  84653. };
  84654. template <>
  84655. struct CppType<StructureType, StructureType::eWin32SurfaceCreateInfoKHR>
  84656. {
  84657. using Type = Win32SurfaceCreateInfoKHR;
  84658. };
  84659. #endif /*VK_USE_PLATFORM_WIN32_KHR*/
  84660. struct WriteDescriptorSet
  84661. {
  84662. using NativeType = VkWriteDescriptorSet;
  84663. static const bool allowDuplicate = false;
  84664. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eWriteDescriptorSet;
  84665. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  84666. VULKAN_HPP_CONSTEXPR WriteDescriptorSet( VULKAN_HPP_NAMESPACE::DescriptorSet dstSet_ = {},
  84667. uint32_t dstBinding_ = {},
  84668. uint32_t dstArrayElement_ = {},
  84669. uint32_t descriptorCount_ = {},
  84670. VULKAN_HPP_NAMESPACE::DescriptorType descriptorType_ = VULKAN_HPP_NAMESPACE::DescriptorType::eSampler,
  84671. const VULKAN_HPP_NAMESPACE::DescriptorImageInfo * pImageInfo_ = {},
  84672. const VULKAN_HPP_NAMESPACE::DescriptorBufferInfo * pBufferInfo_ = {},
  84673. const VULKAN_HPP_NAMESPACE::BufferView * pTexelBufferView_ = {},
  84674. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  84675. : pNext( pNext_ )
  84676. , dstSet( dstSet_ )
  84677. , dstBinding( dstBinding_ )
  84678. , dstArrayElement( dstArrayElement_ )
  84679. , descriptorCount( descriptorCount_ )
  84680. , descriptorType( descriptorType_ )
  84681. , pImageInfo( pImageInfo_ )
  84682. , pBufferInfo( pBufferInfo_ )
  84683. , pTexelBufferView( pTexelBufferView_ )
  84684. {
  84685. }
  84686. VULKAN_HPP_CONSTEXPR WriteDescriptorSet( WriteDescriptorSet const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  84687. WriteDescriptorSet( VkWriteDescriptorSet const & rhs ) VULKAN_HPP_NOEXCEPT : WriteDescriptorSet( *reinterpret_cast<WriteDescriptorSet const *>( &rhs ) ) {}
  84688. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  84689. WriteDescriptorSet( VULKAN_HPP_NAMESPACE::DescriptorSet dstSet_,
  84690. uint32_t dstBinding_,
  84691. uint32_t dstArrayElement_,
  84692. VULKAN_HPP_NAMESPACE::DescriptorType descriptorType_,
  84693. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::DescriptorImageInfo> const & imageInfo_,
  84694. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::DescriptorBufferInfo> const & bufferInfo_ = {},
  84695. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::BufferView> const & texelBufferView_ = {},
  84696. const void * pNext_ = nullptr )
  84697. : pNext( pNext_ )
  84698. , dstSet( dstSet_ )
  84699. , dstBinding( dstBinding_ )
  84700. , dstArrayElement( dstArrayElement_ )
  84701. , descriptorCount( static_cast<uint32_t>( !imageInfo_.empty() ? imageInfo_.size()
  84702. : !bufferInfo_.empty() ? bufferInfo_.size()
  84703. : texelBufferView_.size() ) )
  84704. , descriptorType( descriptorType_ )
  84705. , pImageInfo( imageInfo_.data() )
  84706. , pBufferInfo( bufferInfo_.data() )
  84707. , pTexelBufferView( texelBufferView_.data() )
  84708. {
  84709. # ifdef VULKAN_HPP_NO_EXCEPTIONS
  84710. VULKAN_HPP_ASSERT( ( !imageInfo_.empty() + !bufferInfo_.empty() + !texelBufferView_.empty() ) <= 1 );
  84711. # else
  84712. if ( 1 < ( !imageInfo_.empty() + !bufferInfo_.empty() + !texelBufferView_.empty() ) )
  84713. {
  84714. throw LogicError( VULKAN_HPP_NAMESPACE_STRING
  84715. "::WriteDescriptorSet::WriteDescriptorSet: 1 < ( !imageInfo_.empty() + !bufferInfo_.empty() + !texelBufferView_.empty() )" );
  84716. }
  84717. # endif /*VULKAN_HPP_NO_EXCEPTIONS*/
  84718. }
  84719. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  84720. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  84721. WriteDescriptorSet & operator=( WriteDescriptorSet const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  84722. WriteDescriptorSet & operator=( VkWriteDescriptorSet const & rhs ) VULKAN_HPP_NOEXCEPT
  84723. {
  84724. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::WriteDescriptorSet const *>( &rhs );
  84725. return *this;
  84726. }
  84727. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  84728. VULKAN_HPP_CONSTEXPR_14 WriteDescriptorSet & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  84729. {
  84730. pNext = pNext_;
  84731. return *this;
  84732. }
  84733. VULKAN_HPP_CONSTEXPR_14 WriteDescriptorSet & setDstSet( VULKAN_HPP_NAMESPACE::DescriptorSet dstSet_ ) VULKAN_HPP_NOEXCEPT
  84734. {
  84735. dstSet = dstSet_;
  84736. return *this;
  84737. }
  84738. VULKAN_HPP_CONSTEXPR_14 WriteDescriptorSet & setDstBinding( uint32_t dstBinding_ ) VULKAN_HPP_NOEXCEPT
  84739. {
  84740. dstBinding = dstBinding_;
  84741. return *this;
  84742. }
  84743. VULKAN_HPP_CONSTEXPR_14 WriteDescriptorSet & setDstArrayElement( uint32_t dstArrayElement_ ) VULKAN_HPP_NOEXCEPT
  84744. {
  84745. dstArrayElement = dstArrayElement_;
  84746. return *this;
  84747. }
  84748. VULKAN_HPP_CONSTEXPR_14 WriteDescriptorSet & setDescriptorCount( uint32_t descriptorCount_ ) VULKAN_HPP_NOEXCEPT
  84749. {
  84750. descriptorCount = descriptorCount_;
  84751. return *this;
  84752. }
  84753. VULKAN_HPP_CONSTEXPR_14 WriteDescriptorSet & setDescriptorType( VULKAN_HPP_NAMESPACE::DescriptorType descriptorType_ ) VULKAN_HPP_NOEXCEPT
  84754. {
  84755. descriptorType = descriptorType_;
  84756. return *this;
  84757. }
  84758. VULKAN_HPP_CONSTEXPR_14 WriteDescriptorSet & setPImageInfo( const VULKAN_HPP_NAMESPACE::DescriptorImageInfo * pImageInfo_ ) VULKAN_HPP_NOEXCEPT
  84759. {
  84760. pImageInfo = pImageInfo_;
  84761. return *this;
  84762. }
  84763. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  84764. WriteDescriptorSet &
  84765. setImageInfo( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::DescriptorImageInfo> const & imageInfo_ ) VULKAN_HPP_NOEXCEPT
  84766. {
  84767. descriptorCount = static_cast<uint32_t>( imageInfo_.size() );
  84768. pImageInfo = imageInfo_.data();
  84769. return *this;
  84770. }
  84771. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  84772. VULKAN_HPP_CONSTEXPR_14 WriteDescriptorSet & setPBufferInfo( const VULKAN_HPP_NAMESPACE::DescriptorBufferInfo * pBufferInfo_ ) VULKAN_HPP_NOEXCEPT
  84773. {
  84774. pBufferInfo = pBufferInfo_;
  84775. return *this;
  84776. }
  84777. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  84778. WriteDescriptorSet &
  84779. setBufferInfo( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::DescriptorBufferInfo> const & bufferInfo_ ) VULKAN_HPP_NOEXCEPT
  84780. {
  84781. descriptorCount = static_cast<uint32_t>( bufferInfo_.size() );
  84782. pBufferInfo = bufferInfo_.data();
  84783. return *this;
  84784. }
  84785. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  84786. VULKAN_HPP_CONSTEXPR_14 WriteDescriptorSet & setPTexelBufferView( const VULKAN_HPP_NAMESPACE::BufferView * pTexelBufferView_ ) VULKAN_HPP_NOEXCEPT
  84787. {
  84788. pTexelBufferView = pTexelBufferView_;
  84789. return *this;
  84790. }
  84791. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  84792. WriteDescriptorSet &
  84793. setTexelBufferView( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::BufferView> const & texelBufferView_ ) VULKAN_HPP_NOEXCEPT
  84794. {
  84795. descriptorCount = static_cast<uint32_t>( texelBufferView_.size() );
  84796. pTexelBufferView = texelBufferView_.data();
  84797. return *this;
  84798. }
  84799. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  84800. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  84801. operator VkWriteDescriptorSet const &() const VULKAN_HPP_NOEXCEPT
  84802. {
  84803. return *reinterpret_cast<const VkWriteDescriptorSet *>( this );
  84804. }
  84805. operator VkWriteDescriptorSet &() VULKAN_HPP_NOEXCEPT
  84806. {
  84807. return *reinterpret_cast<VkWriteDescriptorSet *>( this );
  84808. }
  84809. #if defined( VULKAN_HPP_USE_REFLECT )
  84810. # if 14 <= VULKAN_HPP_CPP_VERSION
  84811. auto
  84812. # else
  84813. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  84814. const void * const &,
  84815. VULKAN_HPP_NAMESPACE::DescriptorSet const &,
  84816. uint32_t const &,
  84817. uint32_t const &,
  84818. uint32_t const &,
  84819. VULKAN_HPP_NAMESPACE::DescriptorType const &,
  84820. const VULKAN_HPP_NAMESPACE::DescriptorImageInfo * const &,
  84821. const VULKAN_HPP_NAMESPACE::DescriptorBufferInfo * const &,
  84822. const VULKAN_HPP_NAMESPACE::BufferView * const &>
  84823. # endif
  84824. reflect() const VULKAN_HPP_NOEXCEPT
  84825. {
  84826. return std::tie( sType, pNext, dstSet, dstBinding, dstArrayElement, descriptorCount, descriptorType, pImageInfo, pBufferInfo, pTexelBufferView );
  84827. }
  84828. #endif
  84829. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  84830. auto operator<=>( WriteDescriptorSet const & ) const = default;
  84831. #else
  84832. bool operator==( WriteDescriptorSet const & rhs ) const VULKAN_HPP_NOEXCEPT
  84833. {
  84834. # if defined( VULKAN_HPP_USE_REFLECT )
  84835. return this->reflect() == rhs.reflect();
  84836. # else
  84837. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( dstSet == rhs.dstSet ) && ( dstBinding == rhs.dstBinding ) &&
  84838. ( dstArrayElement == rhs.dstArrayElement ) && ( descriptorCount == rhs.descriptorCount ) && ( descriptorType == rhs.descriptorType ) &&
  84839. ( pImageInfo == rhs.pImageInfo ) && ( pBufferInfo == rhs.pBufferInfo ) && ( pTexelBufferView == rhs.pTexelBufferView );
  84840. # endif
  84841. }
  84842. bool operator!=( WriteDescriptorSet const & rhs ) const VULKAN_HPP_NOEXCEPT
  84843. {
  84844. return !operator==( rhs );
  84845. }
  84846. #endif
  84847. public:
  84848. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eWriteDescriptorSet;
  84849. const void * pNext = {};
  84850. VULKAN_HPP_NAMESPACE::DescriptorSet dstSet = {};
  84851. uint32_t dstBinding = {};
  84852. uint32_t dstArrayElement = {};
  84853. uint32_t descriptorCount = {};
  84854. VULKAN_HPP_NAMESPACE::DescriptorType descriptorType = VULKAN_HPP_NAMESPACE::DescriptorType::eSampler;
  84855. const VULKAN_HPP_NAMESPACE::DescriptorImageInfo * pImageInfo = {};
  84856. const VULKAN_HPP_NAMESPACE::DescriptorBufferInfo * pBufferInfo = {};
  84857. const VULKAN_HPP_NAMESPACE::BufferView * pTexelBufferView = {};
  84858. };
  84859. template <>
  84860. struct CppType<StructureType, StructureType::eWriteDescriptorSet>
  84861. {
  84862. using Type = WriteDescriptorSet;
  84863. };
  84864. struct WriteDescriptorSetAccelerationStructureKHR
  84865. {
  84866. using NativeType = VkWriteDescriptorSetAccelerationStructureKHR;
  84867. static const bool allowDuplicate = false;
  84868. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eWriteDescriptorSetAccelerationStructureKHR;
  84869. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  84870. VULKAN_HPP_CONSTEXPR WriteDescriptorSetAccelerationStructureKHR( uint32_t accelerationStructureCount_ = {},
  84871. const VULKAN_HPP_NAMESPACE::AccelerationStructureKHR * pAccelerationStructures_ = {},
  84872. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  84873. : pNext( pNext_ )
  84874. , accelerationStructureCount( accelerationStructureCount_ )
  84875. , pAccelerationStructures( pAccelerationStructures_ )
  84876. {
  84877. }
  84878. VULKAN_HPP_CONSTEXPR WriteDescriptorSetAccelerationStructureKHR( WriteDescriptorSetAccelerationStructureKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  84879. WriteDescriptorSetAccelerationStructureKHR( VkWriteDescriptorSetAccelerationStructureKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  84880. : WriteDescriptorSetAccelerationStructureKHR( *reinterpret_cast<WriteDescriptorSetAccelerationStructureKHR const *>( &rhs ) )
  84881. {
  84882. }
  84883. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  84884. WriteDescriptorSetAccelerationStructureKHR(
  84885. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::AccelerationStructureKHR> const & accelerationStructures_,
  84886. const void * pNext_ = nullptr )
  84887. : pNext( pNext_ )
  84888. , accelerationStructureCount( static_cast<uint32_t>( accelerationStructures_.size() ) )
  84889. , pAccelerationStructures( accelerationStructures_.data() )
  84890. {
  84891. }
  84892. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  84893. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  84894. WriteDescriptorSetAccelerationStructureKHR & operator=( WriteDescriptorSetAccelerationStructureKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  84895. WriteDescriptorSetAccelerationStructureKHR & operator=( VkWriteDescriptorSetAccelerationStructureKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  84896. {
  84897. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::WriteDescriptorSetAccelerationStructureKHR const *>( &rhs );
  84898. return *this;
  84899. }
  84900. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  84901. VULKAN_HPP_CONSTEXPR_14 WriteDescriptorSetAccelerationStructureKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  84902. {
  84903. pNext = pNext_;
  84904. return *this;
  84905. }
  84906. VULKAN_HPP_CONSTEXPR_14 WriteDescriptorSetAccelerationStructureKHR &
  84907. setAccelerationStructureCount( uint32_t accelerationStructureCount_ ) VULKAN_HPP_NOEXCEPT
  84908. {
  84909. accelerationStructureCount = accelerationStructureCount_;
  84910. return *this;
  84911. }
  84912. VULKAN_HPP_CONSTEXPR_14 WriteDescriptorSetAccelerationStructureKHR &
  84913. setPAccelerationStructures( const VULKAN_HPP_NAMESPACE::AccelerationStructureKHR * pAccelerationStructures_ ) VULKAN_HPP_NOEXCEPT
  84914. {
  84915. pAccelerationStructures = pAccelerationStructures_;
  84916. return *this;
  84917. }
  84918. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  84919. WriteDescriptorSetAccelerationStructureKHR & setAccelerationStructures(
  84920. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::AccelerationStructureKHR> const & accelerationStructures_ ) VULKAN_HPP_NOEXCEPT
  84921. {
  84922. accelerationStructureCount = static_cast<uint32_t>( accelerationStructures_.size() );
  84923. pAccelerationStructures = accelerationStructures_.data();
  84924. return *this;
  84925. }
  84926. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  84927. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  84928. operator VkWriteDescriptorSetAccelerationStructureKHR const &() const VULKAN_HPP_NOEXCEPT
  84929. {
  84930. return *reinterpret_cast<const VkWriteDescriptorSetAccelerationStructureKHR *>( this );
  84931. }
  84932. operator VkWriteDescriptorSetAccelerationStructureKHR &() VULKAN_HPP_NOEXCEPT
  84933. {
  84934. return *reinterpret_cast<VkWriteDescriptorSetAccelerationStructureKHR *>( this );
  84935. }
  84936. #if defined( VULKAN_HPP_USE_REFLECT )
  84937. # if 14 <= VULKAN_HPP_CPP_VERSION
  84938. auto
  84939. # else
  84940. std::
  84941. tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, uint32_t const &, const VULKAN_HPP_NAMESPACE::AccelerationStructureKHR * const &>
  84942. # endif
  84943. reflect() const VULKAN_HPP_NOEXCEPT
  84944. {
  84945. return std::tie( sType, pNext, accelerationStructureCount, pAccelerationStructures );
  84946. }
  84947. #endif
  84948. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  84949. auto operator<=>( WriteDescriptorSetAccelerationStructureKHR const & ) const = default;
  84950. #else
  84951. bool operator==( WriteDescriptorSetAccelerationStructureKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  84952. {
  84953. # if defined( VULKAN_HPP_USE_REFLECT )
  84954. return this->reflect() == rhs.reflect();
  84955. # else
  84956. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( accelerationStructureCount == rhs.accelerationStructureCount ) &&
  84957. ( pAccelerationStructures == rhs.pAccelerationStructures );
  84958. # endif
  84959. }
  84960. bool operator!=( WriteDescriptorSetAccelerationStructureKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  84961. {
  84962. return !operator==( rhs );
  84963. }
  84964. #endif
  84965. public:
  84966. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eWriteDescriptorSetAccelerationStructureKHR;
  84967. const void * pNext = {};
  84968. uint32_t accelerationStructureCount = {};
  84969. const VULKAN_HPP_NAMESPACE::AccelerationStructureKHR * pAccelerationStructures = {};
  84970. };
  84971. template <>
  84972. struct CppType<StructureType, StructureType::eWriteDescriptorSetAccelerationStructureKHR>
  84973. {
  84974. using Type = WriteDescriptorSetAccelerationStructureKHR;
  84975. };
  84976. struct WriteDescriptorSetAccelerationStructureNV
  84977. {
  84978. using NativeType = VkWriteDescriptorSetAccelerationStructureNV;
  84979. static const bool allowDuplicate = false;
  84980. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eWriteDescriptorSetAccelerationStructureNV;
  84981. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  84982. VULKAN_HPP_CONSTEXPR WriteDescriptorSetAccelerationStructureNV( uint32_t accelerationStructureCount_ = {},
  84983. const VULKAN_HPP_NAMESPACE::AccelerationStructureNV * pAccelerationStructures_ = {},
  84984. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  84985. : pNext( pNext_ )
  84986. , accelerationStructureCount( accelerationStructureCount_ )
  84987. , pAccelerationStructures( pAccelerationStructures_ )
  84988. {
  84989. }
  84990. VULKAN_HPP_CONSTEXPR WriteDescriptorSetAccelerationStructureNV( WriteDescriptorSetAccelerationStructureNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  84991. WriteDescriptorSetAccelerationStructureNV( VkWriteDescriptorSetAccelerationStructureNV const & rhs ) VULKAN_HPP_NOEXCEPT
  84992. : WriteDescriptorSetAccelerationStructureNV( *reinterpret_cast<WriteDescriptorSetAccelerationStructureNV const *>( &rhs ) )
  84993. {
  84994. }
  84995. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  84996. WriteDescriptorSetAccelerationStructureNV(
  84997. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::AccelerationStructureNV> const & accelerationStructures_,
  84998. const void * pNext_ = nullptr )
  84999. : pNext( pNext_ )
  85000. , accelerationStructureCount( static_cast<uint32_t>( accelerationStructures_.size() ) )
  85001. , pAccelerationStructures( accelerationStructures_.data() )
  85002. {
  85003. }
  85004. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  85005. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  85006. WriteDescriptorSetAccelerationStructureNV & operator=( WriteDescriptorSetAccelerationStructureNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  85007. WriteDescriptorSetAccelerationStructureNV & operator=( VkWriteDescriptorSetAccelerationStructureNV const & rhs ) VULKAN_HPP_NOEXCEPT
  85008. {
  85009. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::WriteDescriptorSetAccelerationStructureNV const *>( &rhs );
  85010. return *this;
  85011. }
  85012. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  85013. VULKAN_HPP_CONSTEXPR_14 WriteDescriptorSetAccelerationStructureNV & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  85014. {
  85015. pNext = pNext_;
  85016. return *this;
  85017. }
  85018. VULKAN_HPP_CONSTEXPR_14 WriteDescriptorSetAccelerationStructureNV &
  85019. setAccelerationStructureCount( uint32_t accelerationStructureCount_ ) VULKAN_HPP_NOEXCEPT
  85020. {
  85021. accelerationStructureCount = accelerationStructureCount_;
  85022. return *this;
  85023. }
  85024. VULKAN_HPP_CONSTEXPR_14 WriteDescriptorSetAccelerationStructureNV &
  85025. setPAccelerationStructures( const VULKAN_HPP_NAMESPACE::AccelerationStructureNV * pAccelerationStructures_ ) VULKAN_HPP_NOEXCEPT
  85026. {
  85027. pAccelerationStructures = pAccelerationStructures_;
  85028. return *this;
  85029. }
  85030. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  85031. WriteDescriptorSetAccelerationStructureNV & setAccelerationStructures(
  85032. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::AccelerationStructureNV> const & accelerationStructures_ ) VULKAN_HPP_NOEXCEPT
  85033. {
  85034. accelerationStructureCount = static_cast<uint32_t>( accelerationStructures_.size() );
  85035. pAccelerationStructures = accelerationStructures_.data();
  85036. return *this;
  85037. }
  85038. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  85039. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  85040. operator VkWriteDescriptorSetAccelerationStructureNV const &() const VULKAN_HPP_NOEXCEPT
  85041. {
  85042. return *reinterpret_cast<const VkWriteDescriptorSetAccelerationStructureNV *>( this );
  85043. }
  85044. operator VkWriteDescriptorSetAccelerationStructureNV &() VULKAN_HPP_NOEXCEPT
  85045. {
  85046. return *reinterpret_cast<VkWriteDescriptorSetAccelerationStructureNV *>( this );
  85047. }
  85048. #if defined( VULKAN_HPP_USE_REFLECT )
  85049. # if 14 <= VULKAN_HPP_CPP_VERSION
  85050. auto
  85051. # else
  85052. std::
  85053. tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, uint32_t const &, const VULKAN_HPP_NAMESPACE::AccelerationStructureNV * const &>
  85054. # endif
  85055. reflect() const VULKAN_HPP_NOEXCEPT
  85056. {
  85057. return std::tie( sType, pNext, accelerationStructureCount, pAccelerationStructures );
  85058. }
  85059. #endif
  85060. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  85061. auto operator<=>( WriteDescriptorSetAccelerationStructureNV const & ) const = default;
  85062. #else
  85063. bool operator==( WriteDescriptorSetAccelerationStructureNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  85064. {
  85065. # if defined( VULKAN_HPP_USE_REFLECT )
  85066. return this->reflect() == rhs.reflect();
  85067. # else
  85068. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( accelerationStructureCount == rhs.accelerationStructureCount ) &&
  85069. ( pAccelerationStructures == rhs.pAccelerationStructures );
  85070. # endif
  85071. }
  85072. bool operator!=( WriteDescriptorSetAccelerationStructureNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  85073. {
  85074. return !operator==( rhs );
  85075. }
  85076. #endif
  85077. public:
  85078. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eWriteDescriptorSetAccelerationStructureNV;
  85079. const void * pNext = {};
  85080. uint32_t accelerationStructureCount = {};
  85081. const VULKAN_HPP_NAMESPACE::AccelerationStructureNV * pAccelerationStructures = {};
  85082. };
  85083. template <>
  85084. struct CppType<StructureType, StructureType::eWriteDescriptorSetAccelerationStructureNV>
  85085. {
  85086. using Type = WriteDescriptorSetAccelerationStructureNV;
  85087. };
  85088. struct WriteDescriptorSetInlineUniformBlock
  85089. {
  85090. using NativeType = VkWriteDescriptorSetInlineUniformBlock;
  85091. static const bool allowDuplicate = false;
  85092. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eWriteDescriptorSetInlineUniformBlock;
  85093. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  85094. VULKAN_HPP_CONSTEXPR
  85095. WriteDescriptorSetInlineUniformBlock( uint32_t dataSize_ = {}, const void * pData_ = {}, const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  85096. : pNext( pNext_ )
  85097. , dataSize( dataSize_ )
  85098. , pData( pData_ )
  85099. {
  85100. }
  85101. VULKAN_HPP_CONSTEXPR WriteDescriptorSetInlineUniformBlock( WriteDescriptorSetInlineUniformBlock const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  85102. WriteDescriptorSetInlineUniformBlock( VkWriteDescriptorSetInlineUniformBlock const & rhs ) VULKAN_HPP_NOEXCEPT
  85103. : WriteDescriptorSetInlineUniformBlock( *reinterpret_cast<WriteDescriptorSetInlineUniformBlock const *>( &rhs ) )
  85104. {
  85105. }
  85106. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  85107. template <typename T>
  85108. WriteDescriptorSetInlineUniformBlock( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const T> const & data_, const void * pNext_ = nullptr )
  85109. : pNext( pNext_ ), dataSize( static_cast<uint32_t>( data_.size() * sizeof( T ) ) ), pData( data_.data() )
  85110. {
  85111. }
  85112. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  85113. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  85114. WriteDescriptorSetInlineUniformBlock & operator=( WriteDescriptorSetInlineUniformBlock const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  85115. WriteDescriptorSetInlineUniformBlock & operator=( VkWriteDescriptorSetInlineUniformBlock const & rhs ) VULKAN_HPP_NOEXCEPT
  85116. {
  85117. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::WriteDescriptorSetInlineUniformBlock const *>( &rhs );
  85118. return *this;
  85119. }
  85120. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  85121. VULKAN_HPP_CONSTEXPR_14 WriteDescriptorSetInlineUniformBlock & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  85122. {
  85123. pNext = pNext_;
  85124. return *this;
  85125. }
  85126. VULKAN_HPP_CONSTEXPR_14 WriteDescriptorSetInlineUniformBlock & setDataSize( uint32_t dataSize_ ) VULKAN_HPP_NOEXCEPT
  85127. {
  85128. dataSize = dataSize_;
  85129. return *this;
  85130. }
  85131. VULKAN_HPP_CONSTEXPR_14 WriteDescriptorSetInlineUniformBlock & setPData( const void * pData_ ) VULKAN_HPP_NOEXCEPT
  85132. {
  85133. pData = pData_;
  85134. return *this;
  85135. }
  85136. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  85137. template <typename T>
  85138. WriteDescriptorSetInlineUniformBlock & setData( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const T> const & data_ ) VULKAN_HPP_NOEXCEPT
  85139. {
  85140. dataSize = static_cast<uint32_t>( data_.size() * sizeof( T ) );
  85141. pData = data_.data();
  85142. return *this;
  85143. }
  85144. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  85145. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  85146. operator VkWriteDescriptorSetInlineUniformBlock const &() const VULKAN_HPP_NOEXCEPT
  85147. {
  85148. return *reinterpret_cast<const VkWriteDescriptorSetInlineUniformBlock *>( this );
  85149. }
  85150. operator VkWriteDescriptorSetInlineUniformBlock &() VULKAN_HPP_NOEXCEPT
  85151. {
  85152. return *reinterpret_cast<VkWriteDescriptorSetInlineUniformBlock *>( this );
  85153. }
  85154. #if defined( VULKAN_HPP_USE_REFLECT )
  85155. # if 14 <= VULKAN_HPP_CPP_VERSION
  85156. auto
  85157. # else
  85158. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, uint32_t const &, const void * const &>
  85159. # endif
  85160. reflect() const VULKAN_HPP_NOEXCEPT
  85161. {
  85162. return std::tie( sType, pNext, dataSize, pData );
  85163. }
  85164. #endif
  85165. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  85166. auto operator<=>( WriteDescriptorSetInlineUniformBlock const & ) const = default;
  85167. #else
  85168. bool operator==( WriteDescriptorSetInlineUniformBlock const & rhs ) const VULKAN_HPP_NOEXCEPT
  85169. {
  85170. # if defined( VULKAN_HPP_USE_REFLECT )
  85171. return this->reflect() == rhs.reflect();
  85172. # else
  85173. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( dataSize == rhs.dataSize ) && ( pData == rhs.pData );
  85174. # endif
  85175. }
  85176. bool operator!=( WriteDescriptorSetInlineUniformBlock const & rhs ) const VULKAN_HPP_NOEXCEPT
  85177. {
  85178. return !operator==( rhs );
  85179. }
  85180. #endif
  85181. public:
  85182. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eWriteDescriptorSetInlineUniformBlock;
  85183. const void * pNext = {};
  85184. uint32_t dataSize = {};
  85185. const void * pData = {};
  85186. };
  85187. template <>
  85188. struct CppType<StructureType, StructureType::eWriteDescriptorSetInlineUniformBlock>
  85189. {
  85190. using Type = WriteDescriptorSetInlineUniformBlock;
  85191. };
  85192. using WriteDescriptorSetInlineUniformBlockEXT = WriteDescriptorSetInlineUniformBlock;
  85193. #if defined( VK_USE_PLATFORM_XCB_KHR )
  85194. struct XcbSurfaceCreateInfoKHR
  85195. {
  85196. using NativeType = VkXcbSurfaceCreateInfoKHR;
  85197. static const bool allowDuplicate = false;
  85198. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eXcbSurfaceCreateInfoKHR;
  85199. # if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  85200. VULKAN_HPP_CONSTEXPR XcbSurfaceCreateInfoKHR( VULKAN_HPP_NAMESPACE::XcbSurfaceCreateFlagsKHR flags_ = {},
  85201. xcb_connection_t * connection_ = {},
  85202. xcb_window_t window_ = {},
  85203. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  85204. : pNext( pNext_ )
  85205. , flags( flags_ )
  85206. , connection( connection_ )
  85207. , window( window_ )
  85208. {
  85209. }
  85210. VULKAN_HPP_CONSTEXPR XcbSurfaceCreateInfoKHR( XcbSurfaceCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  85211. XcbSurfaceCreateInfoKHR( VkXcbSurfaceCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  85212. : XcbSurfaceCreateInfoKHR( *reinterpret_cast<XcbSurfaceCreateInfoKHR const *>( &rhs ) )
  85213. {
  85214. }
  85215. # endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  85216. XcbSurfaceCreateInfoKHR & operator=( XcbSurfaceCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  85217. XcbSurfaceCreateInfoKHR & operator=( VkXcbSurfaceCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  85218. {
  85219. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::XcbSurfaceCreateInfoKHR const *>( &rhs );
  85220. return *this;
  85221. }
  85222. # if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  85223. VULKAN_HPP_CONSTEXPR_14 XcbSurfaceCreateInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  85224. {
  85225. pNext = pNext_;
  85226. return *this;
  85227. }
  85228. VULKAN_HPP_CONSTEXPR_14 XcbSurfaceCreateInfoKHR & setFlags( VULKAN_HPP_NAMESPACE::XcbSurfaceCreateFlagsKHR flags_ ) VULKAN_HPP_NOEXCEPT
  85229. {
  85230. flags = flags_;
  85231. return *this;
  85232. }
  85233. VULKAN_HPP_CONSTEXPR_14 XcbSurfaceCreateInfoKHR & setConnection( xcb_connection_t * connection_ ) VULKAN_HPP_NOEXCEPT
  85234. {
  85235. connection = connection_;
  85236. return *this;
  85237. }
  85238. VULKAN_HPP_CONSTEXPR_14 XcbSurfaceCreateInfoKHR & setWindow( xcb_window_t window_ ) VULKAN_HPP_NOEXCEPT
  85239. {
  85240. window = window_;
  85241. return *this;
  85242. }
  85243. # endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  85244. operator VkXcbSurfaceCreateInfoKHR const &() const VULKAN_HPP_NOEXCEPT
  85245. {
  85246. return *reinterpret_cast<const VkXcbSurfaceCreateInfoKHR *>( this );
  85247. }
  85248. operator VkXcbSurfaceCreateInfoKHR &() VULKAN_HPP_NOEXCEPT
  85249. {
  85250. return *reinterpret_cast<VkXcbSurfaceCreateInfoKHR *>( this );
  85251. }
  85252. # if defined( VULKAN_HPP_USE_REFLECT )
  85253. # if 14 <= VULKAN_HPP_CPP_VERSION
  85254. auto
  85255. # else
  85256. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  85257. const void * const &,
  85258. VULKAN_HPP_NAMESPACE::XcbSurfaceCreateFlagsKHR const &,
  85259. xcb_connection_t * const &,
  85260. xcb_window_t const &>
  85261. # endif
  85262. reflect() const VULKAN_HPP_NOEXCEPT
  85263. {
  85264. return std::tie( sType, pNext, flags, connection, window );
  85265. }
  85266. # endif
  85267. # if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  85268. std::strong_ordering operator<=>( XcbSurfaceCreateInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  85269. {
  85270. if ( auto cmp = sType <=> rhs.sType; cmp != 0 )
  85271. return cmp;
  85272. if ( auto cmp = pNext <=> rhs.pNext; cmp != 0 )
  85273. return cmp;
  85274. if ( auto cmp = flags <=> rhs.flags; cmp != 0 )
  85275. return cmp;
  85276. if ( auto cmp = connection <=> rhs.connection; cmp != 0 )
  85277. return cmp;
  85278. if ( auto cmp = memcmp( &window, &rhs.window, sizeof( xcb_window_t ) ); cmp != 0 )
  85279. return ( cmp < 0 ) ? std::strong_ordering::less : std::strong_ordering::greater;
  85280. return std::strong_ordering::equivalent;
  85281. }
  85282. # endif
  85283. bool operator==( XcbSurfaceCreateInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  85284. {
  85285. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( flags == rhs.flags ) && ( connection == rhs.connection ) &&
  85286. ( memcmp( &window, &rhs.window, sizeof( xcb_window_t ) ) == 0 );
  85287. }
  85288. bool operator!=( XcbSurfaceCreateInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  85289. {
  85290. return !operator==( rhs );
  85291. }
  85292. public:
  85293. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eXcbSurfaceCreateInfoKHR;
  85294. const void * pNext = {};
  85295. VULKAN_HPP_NAMESPACE::XcbSurfaceCreateFlagsKHR flags = {};
  85296. xcb_connection_t * connection = {};
  85297. xcb_window_t window = {};
  85298. };
  85299. template <>
  85300. struct CppType<StructureType, StructureType::eXcbSurfaceCreateInfoKHR>
  85301. {
  85302. using Type = XcbSurfaceCreateInfoKHR;
  85303. };
  85304. #endif /*VK_USE_PLATFORM_XCB_KHR*/
  85305. #if defined( VK_USE_PLATFORM_XLIB_KHR )
  85306. struct XlibSurfaceCreateInfoKHR
  85307. {
  85308. using NativeType = VkXlibSurfaceCreateInfoKHR;
  85309. static const bool allowDuplicate = false;
  85310. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eXlibSurfaceCreateInfoKHR;
  85311. # if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  85312. VULKAN_HPP_CONSTEXPR XlibSurfaceCreateInfoKHR( VULKAN_HPP_NAMESPACE::XlibSurfaceCreateFlagsKHR flags_ = {},
  85313. Display * dpy_ = {},
  85314. Window window_ = {},
  85315. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  85316. : pNext( pNext_ )
  85317. , flags( flags_ )
  85318. , dpy( dpy_ )
  85319. , window( window_ )
  85320. {
  85321. }
  85322. VULKAN_HPP_CONSTEXPR XlibSurfaceCreateInfoKHR( XlibSurfaceCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  85323. XlibSurfaceCreateInfoKHR( VkXlibSurfaceCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  85324. : XlibSurfaceCreateInfoKHR( *reinterpret_cast<XlibSurfaceCreateInfoKHR const *>( &rhs ) )
  85325. {
  85326. }
  85327. # endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  85328. XlibSurfaceCreateInfoKHR & operator=( XlibSurfaceCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  85329. XlibSurfaceCreateInfoKHR & operator=( VkXlibSurfaceCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  85330. {
  85331. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::XlibSurfaceCreateInfoKHR const *>( &rhs );
  85332. return *this;
  85333. }
  85334. # if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  85335. VULKAN_HPP_CONSTEXPR_14 XlibSurfaceCreateInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  85336. {
  85337. pNext = pNext_;
  85338. return *this;
  85339. }
  85340. VULKAN_HPP_CONSTEXPR_14 XlibSurfaceCreateInfoKHR & setFlags( VULKAN_HPP_NAMESPACE::XlibSurfaceCreateFlagsKHR flags_ ) VULKAN_HPP_NOEXCEPT
  85341. {
  85342. flags = flags_;
  85343. return *this;
  85344. }
  85345. VULKAN_HPP_CONSTEXPR_14 XlibSurfaceCreateInfoKHR & setDpy( Display * dpy_ ) VULKAN_HPP_NOEXCEPT
  85346. {
  85347. dpy = dpy_;
  85348. return *this;
  85349. }
  85350. VULKAN_HPP_CONSTEXPR_14 XlibSurfaceCreateInfoKHR & setWindow( Window window_ ) VULKAN_HPP_NOEXCEPT
  85351. {
  85352. window = window_;
  85353. return *this;
  85354. }
  85355. # endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  85356. operator VkXlibSurfaceCreateInfoKHR const &() const VULKAN_HPP_NOEXCEPT
  85357. {
  85358. return *reinterpret_cast<const VkXlibSurfaceCreateInfoKHR *>( this );
  85359. }
  85360. operator VkXlibSurfaceCreateInfoKHR &() VULKAN_HPP_NOEXCEPT
  85361. {
  85362. return *reinterpret_cast<VkXlibSurfaceCreateInfoKHR *>( this );
  85363. }
  85364. # if defined( VULKAN_HPP_USE_REFLECT )
  85365. # if 14 <= VULKAN_HPP_CPP_VERSION
  85366. auto
  85367. # else
  85368. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  85369. const void * const &,
  85370. VULKAN_HPP_NAMESPACE::XlibSurfaceCreateFlagsKHR const &,
  85371. Display * const &,
  85372. Window const &>
  85373. # endif
  85374. reflect() const VULKAN_HPP_NOEXCEPT
  85375. {
  85376. return std::tie( sType, pNext, flags, dpy, window );
  85377. }
  85378. # endif
  85379. # if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  85380. std::strong_ordering operator<=>( XlibSurfaceCreateInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  85381. {
  85382. if ( auto cmp = sType <=> rhs.sType; cmp != 0 )
  85383. return cmp;
  85384. if ( auto cmp = pNext <=> rhs.pNext; cmp != 0 )
  85385. return cmp;
  85386. if ( auto cmp = flags <=> rhs.flags; cmp != 0 )
  85387. return cmp;
  85388. if ( auto cmp = dpy <=> rhs.dpy; cmp != 0 )
  85389. return cmp;
  85390. if ( auto cmp = memcmp( &window, &rhs.window, sizeof( Window ) ); cmp != 0 )
  85391. return ( cmp < 0 ) ? std::strong_ordering::less : std::strong_ordering::greater;
  85392. return std::strong_ordering::equivalent;
  85393. }
  85394. # endif
  85395. bool operator==( XlibSurfaceCreateInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  85396. {
  85397. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( flags == rhs.flags ) && ( dpy == rhs.dpy ) &&
  85398. ( memcmp( &window, &rhs.window, sizeof( Window ) ) == 0 );
  85399. }
  85400. bool operator!=( XlibSurfaceCreateInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  85401. {
  85402. return !operator==( rhs );
  85403. }
  85404. public:
  85405. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eXlibSurfaceCreateInfoKHR;
  85406. const void * pNext = {};
  85407. VULKAN_HPP_NAMESPACE::XlibSurfaceCreateFlagsKHR flags = {};
  85408. Display * dpy = {};
  85409. Window window = {};
  85410. };
  85411. template <>
  85412. struct CppType<StructureType, StructureType::eXlibSurfaceCreateInfoKHR>
  85413. {
  85414. using Type = XlibSurfaceCreateInfoKHR;
  85415. };
  85416. #endif /*VK_USE_PLATFORM_XLIB_KHR*/
  85417. } // namespace VULKAN_HPP_NAMESPACE
  85418. #endif