ccgo_freebsd_amd64.go 617 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868186918701871187218731874187518761877187818791880188118821883188418851886188718881889189018911892189318941895189618971898189919001901190219031904190519061907190819091910191119121913191419151916191719181919192019211922192319241925192619271928192919301931193219331934193519361937193819391940194119421943194419451946194719481949195019511952195319541955195619571958195919601961196219631964196519661967196819691970197119721973197419751976197719781979198019811982198319841985198619871988198919901991199219931994199519961997199819992000200120022003200420052006200720082009201020112012201320142015201620172018201920202021202220232024202520262027202820292030203120322033203420352036203720382039204020412042204320442045204620472048204920502051205220532054205520562057205820592060206120622063206420652066206720682069207020712072207320742075207620772078207920802081208220832084208520862087208820892090209120922093209420952096209720982099210021012102210321042105210621072108210921102111211221132114211521162117211821192120212121222123212421252126212721282129213021312132213321342135213621372138213921402141214221432144214521462147214821492150215121522153215421552156215721582159216021612162216321642165216621672168216921702171217221732174217521762177217821792180218121822183218421852186218721882189219021912192219321942195219621972198219922002201220222032204220522062207220822092210221122122213221422152216221722182219222022212222222322242225222622272228222922302231223222332234223522362237223822392240224122422243224422452246224722482249225022512252225322542255225622572258225922602261226222632264226522662267226822692270227122722273227422752276227722782279228022812282228322842285228622872288228922902291229222932294229522962297229822992300230123022303230423052306230723082309231023112312231323142315231623172318231923202321232223232324232523262327232823292330233123322333233423352336233723382339234023412342234323442345234623472348234923502351235223532354235523562357235823592360236123622363236423652366236723682369237023712372237323742375237623772378237923802381238223832384238523862387238823892390239123922393239423952396239723982399240024012402240324042405240624072408240924102411241224132414241524162417241824192420242124222423242424252426242724282429243024312432243324342435243624372438243924402441244224432444244524462447244824492450245124522453245424552456245724582459246024612462246324642465246624672468246924702471247224732474247524762477247824792480248124822483248424852486248724882489249024912492249324942495249624972498249925002501250225032504250525062507250825092510251125122513251425152516251725182519252025212522252325242525252625272528252925302531253225332534253525362537253825392540254125422543254425452546254725482549255025512552255325542555255625572558255925602561256225632564256525662567256825692570257125722573257425752576257725782579258025812582258325842585258625872588258925902591259225932594259525962597259825992600260126022603260426052606260726082609261026112612261326142615261626172618261926202621262226232624262526262627262826292630263126322633263426352636263726382639264026412642264326442645264626472648264926502651265226532654265526562657265826592660266126622663266426652666266726682669267026712672267326742675267626772678267926802681268226832684268526862687268826892690269126922693269426952696269726982699270027012702270327042705270627072708270927102711271227132714271527162717271827192720272127222723272427252726272727282729273027312732273327342735273627372738273927402741274227432744274527462747274827492750275127522753275427552756275727582759276027612762276327642765276627672768276927702771277227732774277527762777277827792780278127822783278427852786278727882789279027912792279327942795279627972798279928002801280228032804280528062807280828092810281128122813281428152816281728182819282028212822282328242825282628272828282928302831283228332834283528362837283828392840284128422843284428452846284728482849285028512852285328542855285628572858285928602861286228632864286528662867286828692870287128722873287428752876287728782879288028812882288328842885288628872888288928902891289228932894289528962897289828992900290129022903290429052906290729082909291029112912291329142915291629172918291929202921292229232924292529262927292829292930293129322933293429352936293729382939294029412942294329442945294629472948294929502951295229532954295529562957295829592960296129622963296429652966296729682969297029712972297329742975297629772978297929802981298229832984298529862987298829892990299129922993299429952996299729982999300030013002300330043005300630073008300930103011301230133014301530163017301830193020302130223023302430253026302730283029303030313032303330343035303630373038303930403041304230433044304530463047304830493050305130523053305430553056305730583059306030613062306330643065306630673068306930703071307230733074307530763077307830793080308130823083308430853086308730883089309030913092309330943095309630973098309931003101310231033104310531063107310831093110311131123113311431153116311731183119312031213122312331243125312631273128312931303131313231333134313531363137313831393140314131423143314431453146314731483149315031513152315331543155315631573158315931603161316231633164316531663167316831693170317131723173317431753176317731783179318031813182318331843185318631873188318931903191319231933194319531963197319831993200320132023203320432053206320732083209321032113212321332143215321632173218321932203221322232233224322532263227322832293230323132323233323432353236323732383239324032413242324332443245324632473248324932503251325232533254325532563257325832593260326132623263326432653266326732683269327032713272327332743275327632773278327932803281328232833284328532863287328832893290329132923293329432953296329732983299330033013302330333043305330633073308330933103311331233133314331533163317331833193320332133223323332433253326332733283329333033313332333333343335333633373338333933403341334233433344334533463347334833493350335133523353335433553356335733583359336033613362336333643365336633673368336933703371337233733374337533763377337833793380338133823383338433853386338733883389339033913392339333943395339633973398339934003401340234033404340534063407340834093410341134123413341434153416341734183419342034213422342334243425342634273428342934303431343234333434343534363437343834393440344134423443344434453446344734483449345034513452345334543455345634573458345934603461346234633464346534663467346834693470347134723473347434753476347734783479348034813482348334843485348634873488348934903491349234933494349534963497349834993500350135023503350435053506350735083509351035113512351335143515351635173518351935203521352235233524352535263527352835293530353135323533353435353536353735383539354035413542354335443545354635473548354935503551355235533554355535563557355835593560356135623563356435653566356735683569357035713572357335743575357635773578357935803581358235833584358535863587358835893590359135923593359435953596359735983599360036013602360336043605360636073608360936103611361236133614361536163617361836193620362136223623362436253626362736283629363036313632363336343635363636373638363936403641364236433644364536463647364836493650365136523653365436553656365736583659366036613662366336643665366636673668366936703671367236733674367536763677367836793680368136823683368436853686368736883689369036913692369336943695369636973698369937003701370237033704370537063707370837093710371137123713371437153716371737183719372037213722372337243725372637273728372937303731373237333734373537363737373837393740374137423743374437453746374737483749375037513752375337543755375637573758375937603761376237633764376537663767376837693770377137723773377437753776377737783779378037813782378337843785378637873788378937903791379237933794379537963797379837993800380138023803380438053806380738083809381038113812381338143815381638173818381938203821382238233824382538263827382838293830383138323833383438353836383738383839384038413842384338443845384638473848384938503851385238533854385538563857385838593860386138623863386438653866386738683869387038713872387338743875387638773878387938803881388238833884388538863887388838893890389138923893389438953896389738983899390039013902390339043905390639073908390939103911391239133914391539163917391839193920392139223923392439253926392739283929393039313932393339343935393639373938393939403941394239433944394539463947394839493950395139523953395439553956395739583959396039613962396339643965396639673968396939703971397239733974397539763977397839793980398139823983398439853986398739883989399039913992399339943995399639973998399940004001400240034004400540064007400840094010401140124013401440154016401740184019402040214022402340244025402640274028402940304031403240334034403540364037403840394040404140424043404440454046404740484049405040514052405340544055405640574058405940604061406240634064406540664067406840694070407140724073407440754076407740784079408040814082408340844085408640874088408940904091409240934094409540964097409840994100410141024103410441054106410741084109411041114112411341144115411641174118411941204121412241234124412541264127412841294130413141324133413441354136413741384139414041414142414341444145414641474148414941504151415241534154415541564157415841594160416141624163416441654166416741684169417041714172417341744175417641774178417941804181418241834184418541864187418841894190419141924193419441954196419741984199420042014202420342044205420642074208420942104211421242134214421542164217421842194220422142224223422442254226422742284229423042314232423342344235423642374238423942404241424242434244424542464247424842494250425142524253425442554256425742584259426042614262426342644265426642674268426942704271427242734274427542764277427842794280428142824283428442854286428742884289429042914292429342944295429642974298429943004301430243034304430543064307430843094310431143124313431443154316431743184319432043214322432343244325432643274328432943304331433243334334433543364337433843394340434143424343434443454346434743484349435043514352435343544355435643574358435943604361436243634364436543664367436843694370437143724373437443754376437743784379438043814382438343844385438643874388438943904391439243934394439543964397439843994400440144024403440444054406440744084409441044114412441344144415441644174418441944204421442244234424442544264427442844294430443144324433443444354436443744384439444044414442444344444445444644474448444944504451445244534454445544564457445844594460446144624463446444654466446744684469447044714472447344744475447644774478447944804481448244834484448544864487448844894490449144924493449444954496449744984499450045014502450345044505450645074508450945104511451245134514451545164517451845194520452145224523452445254526452745284529453045314532453345344535453645374538453945404541454245434544454545464547454845494550455145524553455445554556455745584559456045614562456345644565456645674568456945704571457245734574457545764577457845794580458145824583458445854586458745884589459045914592459345944595459645974598459946004601460246034604460546064607460846094610461146124613461446154616461746184619462046214622462346244625462646274628462946304631463246334634463546364637463846394640464146424643464446454646464746484649465046514652465346544655465646574658465946604661466246634664466546664667466846694670467146724673467446754676467746784679468046814682468346844685468646874688468946904691469246934694469546964697469846994700470147024703470447054706470747084709471047114712471347144715471647174718471947204721472247234724472547264727472847294730473147324733473447354736473747384739474047414742474347444745474647474748474947504751475247534754475547564757475847594760476147624763476447654766476747684769477047714772477347744775477647774778477947804781478247834784478547864787478847894790479147924793479447954796479747984799480048014802480348044805480648074808480948104811481248134814481548164817481848194820482148224823482448254826482748284829483048314832483348344835483648374838483948404841484248434844484548464847484848494850485148524853485448554856485748584859486048614862486348644865486648674868486948704871487248734874487548764877487848794880488148824883488448854886488748884889489048914892489348944895489648974898489949004901490249034904490549064907490849094910491149124913491449154916491749184919492049214922492349244925492649274928492949304931493249334934493549364937493849394940494149424943494449454946494749484949495049514952495349544955495649574958495949604961496249634964496549664967496849694970497149724973497449754976497749784979498049814982498349844985498649874988498949904991499249934994499549964997499849995000500150025003500450055006500750085009501050115012501350145015501650175018501950205021502250235024502550265027502850295030503150325033503450355036503750385039504050415042504350445045504650475048504950505051505250535054505550565057505850595060506150625063506450655066506750685069507050715072507350745075507650775078507950805081508250835084508550865087508850895090509150925093509450955096509750985099510051015102510351045105510651075108510951105111511251135114511551165117511851195120512151225123512451255126512751285129513051315132513351345135513651375138513951405141514251435144514551465147514851495150515151525153515451555156515751585159516051615162516351645165516651675168516951705171517251735174517551765177517851795180518151825183518451855186518751885189519051915192519351945195519651975198519952005201520252035204520552065207520852095210521152125213521452155216521752185219522052215222522352245225522652275228522952305231523252335234523552365237523852395240524152425243524452455246524752485249525052515252525352545255525652575258525952605261526252635264526552665267526852695270527152725273527452755276527752785279528052815282528352845285528652875288528952905291529252935294529552965297529852995300530153025303530453055306530753085309531053115312531353145315531653175318531953205321532253235324532553265327532853295330533153325333533453355336533753385339534053415342534353445345534653475348534953505351535253535354535553565357535853595360536153625363536453655366536753685369537053715372537353745375537653775378537953805381538253835384538553865387538853895390539153925393539453955396539753985399540054015402540354045405540654075408540954105411541254135414541554165417541854195420542154225423542454255426542754285429543054315432543354345435543654375438543954405441544254435444544554465447544854495450545154525453545454555456545754585459546054615462546354645465546654675468546954705471547254735474547554765477547854795480548154825483548454855486548754885489549054915492549354945495549654975498549955005501550255035504550555065507550855095510551155125513551455155516551755185519552055215522552355245525552655275528552955305531553255335534553555365537553855395540554155425543554455455546554755485549555055515552555355545555555655575558555955605561556255635564556555665567556855695570557155725573557455755576557755785579558055815582558355845585558655875588558955905591559255935594559555965597559855995600560156025603560456055606560756085609561056115612561356145615561656175618561956205621562256235624562556265627562856295630563156325633563456355636563756385639564056415642564356445645564656475648564956505651565256535654565556565657565856595660566156625663566456655666566756685669567056715672567356745675567656775678567956805681568256835684568556865687568856895690569156925693569456955696569756985699570057015702570357045705570657075708570957105711571257135714571557165717571857195720572157225723572457255726572757285729573057315732573357345735573657375738573957405741574257435744574557465747574857495750575157525753575457555756575757585759576057615762576357645765576657675768576957705771577257735774577557765777577857795780578157825783578457855786578757885789579057915792579357945795579657975798579958005801580258035804580558065807580858095810581158125813581458155816581758185819582058215822582358245825582658275828582958305831583258335834583558365837583858395840584158425843584458455846584758485849585058515852585358545855585658575858585958605861586258635864586558665867586858695870587158725873587458755876587758785879588058815882588358845885588658875888588958905891589258935894589558965897589858995900590159025903590459055906590759085909591059115912591359145915591659175918591959205921592259235924592559265927592859295930593159325933593459355936593759385939594059415942594359445945594659475948594959505951595259535954595559565957595859595960596159625963596459655966596759685969597059715972597359745975597659775978597959805981598259835984598559865987598859895990599159925993599459955996599759985999600060016002600360046005600660076008600960106011601260136014601560166017601860196020602160226023602460256026602760286029603060316032603360346035603660376038603960406041604260436044604560466047604860496050605160526053605460556056605760586059606060616062606360646065606660676068606960706071607260736074607560766077607860796080608160826083608460856086608760886089609060916092609360946095609660976098609961006101610261036104610561066107610861096110611161126113611461156116611761186119612061216122612361246125612661276128612961306131613261336134613561366137613861396140614161426143614461456146614761486149615061516152615361546155615661576158615961606161616261636164616561666167616861696170617161726173617461756176617761786179618061816182618361846185618661876188618961906191619261936194619561966197619861996200620162026203620462056206620762086209621062116212621362146215621662176218621962206221622262236224622562266227622862296230623162326233623462356236623762386239624062416242624362446245624662476248624962506251625262536254625562566257625862596260626162626263626462656266626762686269627062716272627362746275627662776278627962806281628262836284628562866287628862896290629162926293629462956296629762986299630063016302630363046305630663076308630963106311631263136314631563166317631863196320632163226323632463256326632763286329633063316332633363346335633663376338633963406341634263436344634563466347634863496350635163526353635463556356635763586359636063616362636363646365636663676368636963706371637263736374637563766377637863796380638163826383638463856386638763886389639063916392639363946395639663976398639964006401640264036404640564066407640864096410641164126413641464156416641764186419642064216422642364246425642664276428642964306431643264336434643564366437643864396440644164426443644464456446644764486449645064516452645364546455645664576458645964606461646264636464646564666467646864696470647164726473647464756476647764786479648064816482648364846485648664876488648964906491649264936494649564966497649864996500650165026503650465056506650765086509651065116512651365146515651665176518651965206521652265236524652565266527652865296530653165326533653465356536653765386539654065416542654365446545654665476548654965506551655265536554655565566557655865596560656165626563656465656566656765686569657065716572657365746575657665776578657965806581658265836584658565866587658865896590659165926593659465956596659765986599660066016602660366046605660666076608660966106611661266136614661566166617661866196620662166226623662466256626662766286629663066316632663366346635663666376638663966406641664266436644664566466647664866496650665166526653665466556656665766586659666066616662666366646665666666676668666966706671667266736674667566766677667866796680668166826683668466856686668766886689669066916692669366946695669666976698669967006701670267036704670567066707670867096710671167126713671467156716671767186719672067216722672367246725672667276728672967306731673267336734673567366737673867396740674167426743674467456746674767486749675067516752675367546755675667576758675967606761676267636764676567666767676867696770677167726773677467756776677767786779678067816782678367846785678667876788678967906791679267936794679567966797679867996800680168026803680468056806680768086809681068116812681368146815681668176818681968206821682268236824682568266827682868296830683168326833683468356836683768386839684068416842684368446845684668476848684968506851685268536854685568566857685868596860686168626863686468656866686768686869687068716872687368746875687668776878687968806881688268836884688568866887688868896890689168926893689468956896689768986899690069016902690369046905690669076908690969106911691269136914691569166917691869196920692169226923692469256926692769286929693069316932693369346935693669376938693969406941694269436944694569466947694869496950695169526953695469556956695769586959696069616962696369646965696669676968696969706971697269736974697569766977697869796980698169826983698469856986698769886989699069916992699369946995699669976998699970007001700270037004700570067007700870097010701170127013701470157016701770187019702070217022702370247025702670277028702970307031703270337034703570367037703870397040704170427043704470457046704770487049705070517052705370547055705670577058705970607061706270637064706570667067706870697070707170727073707470757076707770787079708070817082708370847085708670877088708970907091709270937094709570967097709870997100710171027103710471057106710771087109711071117112711371147115711671177118711971207121712271237124712571267127712871297130713171327133713471357136713771387139714071417142714371447145714671477148714971507151715271537154715571567157715871597160716171627163716471657166716771687169717071717172717371747175717671777178717971807181718271837184718571867187718871897190719171927193719471957196719771987199720072017202720372047205720672077208720972107211721272137214721572167217721872197220722172227223722472257226722772287229723072317232723372347235723672377238723972407241724272437244724572467247724872497250725172527253725472557256725772587259726072617262726372647265726672677268726972707271727272737274727572767277727872797280728172827283728472857286728772887289729072917292729372947295729672977298729973007301730273037304730573067307730873097310731173127313731473157316731773187319732073217322732373247325732673277328732973307331733273337334733573367337733873397340734173427343734473457346734773487349735073517352735373547355735673577358735973607361736273637364736573667367736873697370737173727373737473757376737773787379738073817382738373847385738673877388738973907391739273937394739573967397739873997400740174027403740474057406740774087409741074117412741374147415741674177418741974207421742274237424742574267427742874297430743174327433743474357436743774387439744074417442744374447445744674477448744974507451745274537454745574567457745874597460746174627463746474657466746774687469747074717472747374747475747674777478747974807481748274837484748574867487748874897490749174927493749474957496749774987499750075017502750375047505750675077508750975107511751275137514751575167517751875197520752175227523752475257526752775287529753075317532753375347535753675377538753975407541754275437544754575467547754875497550755175527553755475557556755775587559756075617562756375647565756675677568756975707571757275737574757575767577757875797580758175827583758475857586758775887589759075917592759375947595759675977598759976007601760276037604760576067607760876097610761176127613761476157616761776187619762076217622762376247625762676277628762976307631763276337634763576367637763876397640764176427643764476457646764776487649765076517652765376547655765676577658765976607661766276637664766576667667766876697670767176727673767476757676767776787679768076817682768376847685768676877688768976907691769276937694769576967697769876997700770177027703770477057706770777087709771077117712771377147715771677177718771977207721772277237724772577267727772877297730773177327733773477357736773777387739774077417742774377447745774677477748774977507751775277537754775577567757775877597760776177627763776477657766776777687769777077717772777377747775777677777778777977807781778277837784778577867787778877897790779177927793779477957796779777987799780078017802780378047805780678077808780978107811781278137814781578167817781878197820782178227823782478257826782778287829783078317832783378347835783678377838783978407841784278437844784578467847784878497850785178527853785478557856785778587859786078617862786378647865786678677868786978707871787278737874787578767877787878797880788178827883788478857886788778887889789078917892789378947895789678977898789979007901790279037904790579067907790879097910791179127913791479157916791779187919792079217922792379247925792679277928792979307931793279337934793579367937793879397940794179427943794479457946794779487949795079517952795379547955795679577958795979607961796279637964796579667967796879697970797179727973797479757976797779787979798079817982798379847985798679877988798979907991799279937994799579967997799879998000800180028003800480058006800780088009801080118012801380148015801680178018801980208021802280238024802580268027802880298030803180328033803480358036803780388039804080418042804380448045804680478048804980508051805280538054805580568057805880598060806180628063806480658066806780688069807080718072807380748075807680778078807980808081808280838084808580868087808880898090809180928093809480958096809780988099810081018102810381048105810681078108810981108111811281138114811581168117811881198120812181228123812481258126812781288129813081318132813381348135813681378138813981408141814281438144814581468147814881498150815181528153815481558156815781588159816081618162816381648165816681678168816981708171817281738174817581768177817881798180818181828183818481858186818781888189819081918192819381948195819681978198819982008201820282038204820582068207820882098210821182128213821482158216821782188219822082218222822382248225822682278228822982308231823282338234823582368237823882398240824182428243824482458246824782488249825082518252825382548255825682578258825982608261826282638264826582668267826882698270827182728273827482758276827782788279828082818282828382848285828682878288828982908291829282938294829582968297829882998300830183028303830483058306830783088309831083118312831383148315831683178318831983208321832283238324832583268327832883298330833183328333833483358336833783388339834083418342834383448345834683478348834983508351835283538354835583568357835883598360836183628363836483658366836783688369837083718372837383748375837683778378837983808381838283838384838583868387838883898390839183928393839483958396839783988399840084018402840384048405840684078408840984108411841284138414841584168417841884198420842184228423842484258426842784288429843084318432843384348435843684378438843984408441844284438444844584468447844884498450845184528453845484558456845784588459846084618462846384648465846684678468846984708471847284738474847584768477847884798480848184828483848484858486848784888489849084918492849384948495849684978498849985008501850285038504850585068507850885098510851185128513851485158516851785188519852085218522852385248525852685278528852985308531853285338534853585368537853885398540854185428543854485458546854785488549855085518552855385548555855685578558855985608561856285638564856585668567856885698570857185728573857485758576857785788579858085818582858385848585858685878588858985908591859285938594859585968597859885998600860186028603860486058606860786088609861086118612861386148615861686178618861986208621862286238624862586268627862886298630863186328633863486358636863786388639864086418642864386448645864686478648864986508651865286538654865586568657865886598660866186628663866486658666866786688669867086718672867386748675867686778678867986808681868286838684868586868687868886898690869186928693869486958696869786988699870087018702870387048705870687078708870987108711871287138714871587168717871887198720872187228723872487258726872787288729873087318732873387348735873687378738873987408741874287438744874587468747874887498750875187528753875487558756875787588759876087618762876387648765876687678768876987708771877287738774877587768777877887798780878187828783878487858786878787888789879087918792879387948795879687978798879988008801880288038804880588068807880888098810881188128813881488158816881788188819882088218822882388248825882688278828882988308831883288338834883588368837883888398840884188428843884488458846884788488849885088518852885388548855885688578858885988608861886288638864886588668867886888698870887188728873887488758876887788788879888088818882888388848885888688878888888988908891889288938894889588968897889888998900890189028903890489058906890789088909891089118912891389148915891689178918891989208921892289238924892589268927892889298930893189328933893489358936893789388939894089418942894389448945894689478948894989508951895289538954895589568957895889598960896189628963896489658966896789688969897089718972897389748975897689778978897989808981898289838984898589868987898889898990899189928993899489958996899789988999900090019002900390049005900690079008900990109011901290139014901590169017901890199020902190229023902490259026902790289029903090319032903390349035903690379038903990409041904290439044904590469047904890499050905190529053905490559056905790589059906090619062906390649065906690679068906990709071907290739074907590769077907890799080908190829083908490859086908790889089909090919092909390949095909690979098909991009101910291039104910591069107910891099110911191129113911491159116911791189119912091219122912391249125912691279128912991309131913291339134913591369137913891399140914191429143914491459146914791489149915091519152915391549155915691579158915991609161916291639164916591669167916891699170917191729173917491759176917791789179918091819182918391849185918691879188918991909191919291939194919591969197919891999200920192029203920492059206920792089209921092119212921392149215921692179218921992209221922292239224922592269227922892299230923192329233923492359236923792389239924092419242924392449245924692479248924992509251925292539254925592569257925892599260926192629263926492659266926792689269927092719272927392749275927692779278927992809281928292839284928592869287928892899290929192929293929492959296929792989299930093019302930393049305930693079308930993109311931293139314931593169317931893199320932193229323932493259326932793289329933093319332933393349335933693379338933993409341934293439344934593469347934893499350935193529353935493559356935793589359936093619362936393649365936693679368936993709371937293739374937593769377937893799380938193829383938493859386938793889389939093919392939393949395939693979398939994009401940294039404940594069407940894099410941194129413941494159416941794189419942094219422942394249425942694279428942994309431943294339434943594369437943894399440944194429443944494459446944794489449945094519452945394549455945694579458945994609461946294639464946594669467946894699470947194729473947494759476947794789479948094819482948394849485948694879488948994909491949294939494949594969497949894999500950195029503950495059506950795089509951095119512951395149515951695179518951995209521952295239524952595269527952895299530953195329533953495359536953795389539954095419542954395449545954695479548954995509551955295539554955595569557955895599560956195629563956495659566956795689569957095719572957395749575957695779578957995809581958295839584958595869587958895899590959195929593959495959596959795989599960096019602960396049605960696079608960996109611961296139614961596169617961896199620962196229623962496259626962796289629963096319632963396349635963696379638963996409641964296439644964596469647964896499650965196529653965496559656965796589659966096619662966396649665966696679668966996709671967296739674967596769677967896799680968196829683968496859686968796889689969096919692969396949695969696979698969997009701970297039704970597069707970897099710971197129713971497159716971797189719972097219722972397249725972697279728972997309731973297339734973597369737973897399740974197429743974497459746974797489749975097519752975397549755975697579758975997609761976297639764976597669767976897699770977197729773977497759776977797789779978097819782978397849785978697879788978997909791979297939794979597969797979897999800980198029803980498059806980798089809981098119812981398149815981698179818981998209821982298239824982598269827982898299830983198329833983498359836983798389839984098419842984398449845984698479848984998509851985298539854985598569857985898599860986198629863986498659866986798689869987098719872987398749875987698779878987998809881988298839884988598869887988898899890989198929893989498959896989798989899990099019902990399049905990699079908990999109911991299139914991599169917991899199920992199229923992499259926992799289929993099319932993399349935993699379938993999409941994299439944994599469947994899499950995199529953995499559956995799589959996099619962996399649965996699679968996999709971997299739974997599769977997899799980998199829983998499859986998799889989999099919992999399949995999699979998999910000100011000210003100041000510006100071000810009100101001110012100131001410015100161001710018100191002010021100221002310024100251002610027100281002910030100311003210033100341003510036100371003810039100401004110042100431004410045100461004710048100491005010051100521005310054100551005610057100581005910060100611006210063100641006510066100671006810069100701007110072100731007410075100761007710078100791008010081100821008310084100851008610087100881008910090100911009210093100941009510096100971009810099101001010110102101031010410105101061010710108101091011010111101121011310114101151011610117101181011910120101211012210123101241012510126101271012810129101301013110132101331013410135101361013710138101391014010141101421014310144101451014610147101481014910150101511015210153101541015510156101571015810159101601016110162101631016410165101661016710168101691017010171101721017310174101751017610177101781017910180101811018210183101841018510186101871018810189101901019110192101931019410195101961019710198101991020010201102021020310204102051020610207102081020910210102111021210213102141021510216102171021810219102201022110222102231022410225102261022710228102291023010231102321023310234102351023610237102381023910240102411024210243102441024510246102471024810249102501025110252102531025410255102561025710258102591026010261102621026310264102651026610267102681026910270102711027210273102741027510276102771027810279102801028110282102831028410285102861028710288102891029010291102921029310294102951029610297102981029910300103011030210303103041030510306103071030810309103101031110312103131031410315103161031710318103191032010321103221032310324103251032610327103281032910330103311033210333103341033510336103371033810339103401034110342103431034410345103461034710348103491035010351103521035310354103551035610357103581035910360103611036210363103641036510366103671036810369103701037110372103731037410375103761037710378103791038010381103821038310384103851038610387103881038910390103911039210393103941039510396103971039810399104001040110402104031040410405104061040710408104091041010411104121041310414104151041610417104181041910420104211042210423104241042510426104271042810429104301043110432104331043410435104361043710438104391044010441104421044310444104451044610447104481044910450104511045210453104541045510456104571045810459104601046110462104631046410465104661046710468104691047010471104721047310474104751047610477104781047910480104811048210483104841048510486104871048810489104901049110492104931049410495104961049710498104991050010501105021050310504105051050610507105081050910510105111051210513105141051510516105171051810519105201052110522105231052410525105261052710528105291053010531105321053310534105351053610537105381053910540105411054210543105441054510546105471054810549105501055110552105531055410555105561055710558105591056010561105621056310564105651056610567105681056910570105711057210573105741057510576105771057810579105801058110582105831058410585105861058710588105891059010591105921059310594105951059610597105981059910600106011060210603106041060510606106071060810609106101061110612106131061410615106161061710618106191062010621106221062310624106251062610627106281062910630106311063210633106341063510636106371063810639106401064110642106431064410645106461064710648106491065010651106521065310654106551065610657106581065910660106611066210663106641066510666106671066810669106701067110672106731067410675106761067710678106791068010681106821068310684106851068610687106881068910690106911069210693106941069510696106971069810699107001070110702107031070410705107061070710708107091071010711107121071310714107151071610717107181071910720107211072210723107241072510726107271072810729107301073110732107331073410735107361073710738107391074010741107421074310744107451074610747107481074910750107511075210753107541075510756107571075810759107601076110762107631076410765107661076710768107691077010771107721077310774107751077610777107781077910780107811078210783107841078510786107871078810789107901079110792107931079410795107961079710798107991080010801108021080310804108051080610807108081080910810108111081210813108141081510816108171081810819108201082110822108231082410825108261082710828108291083010831108321083310834108351083610837108381083910840108411084210843108441084510846108471084810849108501085110852108531085410855108561085710858108591086010861108621086310864108651086610867108681086910870108711087210873108741087510876108771087810879108801088110882108831088410885108861088710888108891089010891108921089310894108951089610897108981089910900109011090210903109041090510906109071090810909109101091110912109131091410915109161091710918109191092010921109221092310924109251092610927109281092910930109311093210933109341093510936109371093810939109401094110942109431094410945109461094710948109491095010951109521095310954109551095610957109581095910960109611096210963109641096510966109671096810969109701097110972109731097410975109761097710978109791098010981109821098310984109851098610987109881098910990109911099210993109941099510996109971099810999110001100111002110031100411005110061100711008110091101011011110121101311014110151101611017110181101911020110211102211023110241102511026110271102811029110301103111032110331103411035110361103711038110391104011041110421104311044110451104611047110481104911050110511105211053110541105511056110571105811059110601106111062110631106411065110661106711068110691107011071110721107311074110751107611077110781107911080110811108211083110841108511086110871108811089110901109111092110931109411095110961109711098110991110011101111021110311104111051110611107111081110911110111111111211113111141111511116111171111811119111201112111122111231112411125111261112711128111291113011131111321113311134111351113611137111381113911140111411114211143111441114511146111471114811149111501115111152111531115411155111561115711158111591116011161111621116311164111651116611167111681116911170111711117211173111741117511176111771117811179111801118111182111831118411185111861118711188111891119011191111921119311194111951119611197111981119911200112011120211203112041120511206112071120811209112101121111212112131121411215112161121711218112191122011221112221122311224112251122611227112281122911230112311123211233112341123511236112371123811239112401124111242112431124411245112461124711248112491125011251112521125311254112551125611257112581125911260112611126211263112641126511266112671126811269112701127111272112731127411275112761127711278112791128011281112821128311284112851128611287112881128911290112911129211293112941129511296112971129811299113001130111302113031130411305113061130711308113091131011311113121131311314113151131611317113181131911320113211132211323113241132511326113271132811329113301133111332113331133411335113361133711338113391134011341113421134311344113451134611347113481134911350113511135211353113541135511356113571135811359113601136111362113631136411365113661136711368113691137011371113721137311374113751137611377113781137911380113811138211383113841138511386113871138811389113901139111392113931139411395113961139711398113991140011401114021140311404114051140611407114081140911410114111141211413114141141511416114171141811419114201142111422114231142411425114261142711428114291143011431114321143311434114351143611437114381143911440114411144211443114441144511446114471144811449114501145111452114531145411455114561145711458114591146011461114621146311464114651146611467114681146911470114711147211473114741147511476114771147811479114801148111482114831148411485114861148711488114891149011491114921149311494114951149611497114981149911500115011150211503115041150511506115071150811509115101151111512115131151411515115161151711518115191152011521115221152311524115251152611527115281152911530115311153211533115341153511536115371153811539115401154111542115431154411545115461154711548115491155011551115521155311554115551155611557115581155911560115611156211563115641156511566115671156811569115701157111572115731157411575115761157711578115791158011581115821158311584115851158611587115881158911590115911159211593115941159511596115971159811599116001160111602116031160411605116061160711608116091161011611116121161311614116151161611617116181161911620116211162211623116241162511626116271162811629116301163111632116331163411635116361163711638116391164011641116421164311644116451164611647116481164911650116511165211653116541165511656116571165811659116601166111662116631166411665116661166711668116691167011671116721167311674116751167611677116781167911680116811168211683116841168511686116871168811689116901169111692116931169411695116961169711698116991170011701117021170311704117051170611707117081170911710117111171211713117141171511716117171171811719117201172111722117231172411725117261172711728117291173011731117321173311734117351173611737117381173911740117411174211743117441174511746117471174811749117501175111752117531175411755117561175711758117591176011761117621176311764117651176611767117681176911770117711177211773117741177511776117771177811779117801178111782117831178411785117861178711788117891179011791117921179311794117951179611797117981179911800118011180211803118041180511806118071180811809118101181111812118131181411815118161181711818118191182011821118221182311824118251182611827118281182911830118311183211833118341183511836118371183811839118401184111842118431184411845118461184711848118491185011851118521185311854118551185611857118581185911860118611186211863118641186511866118671186811869118701187111872118731187411875118761187711878118791188011881118821188311884118851188611887118881188911890118911189211893118941189511896118971189811899119001190111902119031190411905119061190711908119091191011911119121191311914119151191611917119181191911920119211192211923119241192511926119271192811929119301193111932119331193411935119361193711938119391194011941119421194311944119451194611947119481194911950119511195211953119541195511956119571195811959119601196111962119631196411965119661196711968119691197011971119721197311974119751197611977119781197911980119811198211983119841198511986119871198811989119901199111992119931199411995119961199711998119991200012001120021200312004120051200612007120081200912010120111201212013120141201512016120171201812019120201202112022120231202412025120261202712028120291203012031120321203312034120351203612037120381203912040120411204212043120441204512046120471204812049120501205112052120531205412055120561205712058120591206012061120621206312064120651206612067120681206912070120711207212073120741207512076120771207812079120801208112082120831208412085120861208712088120891209012091120921209312094120951209612097120981209912100121011210212103121041210512106121071210812109121101211112112121131211412115121161211712118121191212012121121221212312124121251212612127121281212912130121311213212133121341213512136121371213812139121401214112142121431214412145121461214712148121491215012151121521215312154121551215612157121581215912160121611216212163121641216512166121671216812169121701217112172121731217412175121761217712178121791218012181121821218312184121851218612187121881218912190121911219212193121941219512196121971219812199122001220112202122031220412205122061220712208122091221012211122121221312214122151221612217122181221912220122211222212223122241222512226122271222812229122301223112232122331223412235122361223712238122391224012241122421224312244122451224612247122481224912250122511225212253122541225512256122571225812259122601226112262122631226412265122661226712268122691227012271122721227312274122751227612277122781227912280122811228212283122841228512286122871228812289122901229112292122931229412295122961229712298122991230012301123021230312304123051230612307123081230912310123111231212313123141231512316123171231812319123201232112322123231232412325123261232712328123291233012331123321233312334123351233612337123381233912340123411234212343123441234512346123471234812349123501235112352123531235412355123561235712358123591236012361123621236312364123651236612367123681236912370123711237212373123741237512376123771237812379123801238112382123831238412385123861238712388123891239012391123921239312394123951239612397123981239912400124011240212403124041240512406124071240812409124101241112412124131241412415124161241712418124191242012421124221242312424124251242612427124281242912430124311243212433124341243512436124371243812439124401244112442124431244412445124461244712448124491245012451124521245312454124551245612457124581245912460124611246212463124641246512466124671246812469124701247112472124731247412475124761247712478124791248012481124821248312484124851248612487124881248912490124911249212493124941249512496124971249812499125001250112502125031250412505125061250712508125091251012511125121251312514125151251612517125181251912520125211252212523125241252512526125271252812529125301253112532125331253412535125361253712538125391254012541125421254312544125451254612547125481254912550125511255212553125541255512556125571255812559125601256112562125631256412565125661256712568125691257012571125721257312574125751257612577125781257912580125811258212583125841258512586125871258812589125901259112592125931259412595125961259712598125991260012601126021260312604126051260612607126081260912610126111261212613126141261512616126171261812619126201262112622126231262412625126261262712628126291263012631126321263312634126351263612637126381263912640126411264212643126441264512646126471264812649126501265112652126531265412655126561265712658126591266012661126621266312664126651266612667126681266912670126711267212673126741267512676126771267812679126801268112682126831268412685126861268712688126891269012691126921269312694126951269612697126981269912700127011270212703127041270512706127071270812709127101271112712127131271412715127161271712718127191272012721127221272312724127251272612727127281272912730127311273212733127341273512736127371273812739127401274112742127431274412745127461274712748127491275012751127521275312754127551275612757127581275912760127611276212763127641276512766127671276812769127701277112772127731277412775127761277712778127791278012781127821278312784127851278612787127881278912790127911279212793127941279512796127971279812799128001280112802128031280412805128061280712808128091281012811128121281312814128151281612817128181281912820128211282212823128241282512826128271282812829128301283112832128331283412835128361283712838128391284012841128421284312844128451284612847128481284912850128511285212853128541285512856128571285812859128601286112862128631286412865128661286712868128691287012871128721287312874128751287612877128781287912880128811288212883128841288512886128871288812889128901289112892128931289412895128961289712898128991290012901129021290312904129051290612907129081290912910129111291212913129141291512916129171291812919129201292112922129231292412925129261292712928129291293012931129321293312934129351293612937129381293912940129411294212943129441294512946129471294812949129501295112952129531295412955129561295712958129591296012961129621296312964129651296612967129681296912970129711297212973129741297512976129771297812979129801298112982129831298412985129861298712988129891299012991129921299312994129951299612997129981299913000130011300213003130041300513006130071300813009130101301113012130131301413015130161301713018130191302013021130221302313024130251302613027130281302913030130311303213033130341303513036130371303813039130401304113042130431304413045130461304713048130491305013051130521305313054130551305613057130581305913060130611306213063130641306513066130671306813069130701307113072130731307413075130761307713078130791308013081130821308313084130851308613087130881308913090130911309213093130941309513096130971309813099131001310113102131031310413105131061310713108131091311013111131121311313114131151311613117131181311913120131211312213123131241312513126131271312813129131301313113132131331313413135131361313713138131391314013141131421314313144131451314613147131481314913150131511315213153131541315513156131571315813159131601316113162131631316413165131661316713168131691317013171131721317313174131751317613177131781317913180131811318213183131841318513186131871318813189131901319113192131931319413195131961319713198131991320013201132021320313204132051320613207132081320913210132111321213213132141321513216132171321813219132201322113222132231322413225132261322713228132291323013231132321323313234132351323613237132381323913240132411324213243132441324513246132471324813249132501325113252132531325413255132561325713258132591326013261132621326313264132651326613267132681326913270132711327213273132741327513276132771327813279132801328113282132831328413285132861328713288132891329013291132921329313294132951329613297132981329913300133011330213303133041330513306133071330813309133101331113312133131331413315133161331713318133191332013321133221332313324133251332613327133281332913330133311333213333133341333513336133371333813339133401334113342133431334413345133461334713348133491335013351133521335313354133551335613357133581335913360133611336213363133641336513366133671336813369133701337113372133731337413375133761337713378133791338013381133821338313384133851338613387133881338913390133911339213393133941339513396133971339813399134001340113402134031340413405134061340713408134091341013411134121341313414134151341613417134181341913420134211342213423134241342513426134271342813429134301343113432134331343413435134361343713438134391344013441134421344313444134451344613447134481344913450134511345213453134541345513456134571345813459134601346113462134631346413465134661346713468134691347013471134721347313474134751347613477134781347913480134811348213483134841348513486134871348813489134901349113492134931349413495134961349713498134991350013501135021350313504135051350613507135081350913510135111351213513135141351513516135171351813519135201352113522135231352413525135261352713528135291353013531135321353313534135351353613537135381353913540135411354213543135441354513546135471354813549135501355113552135531355413555135561355713558135591356013561135621356313564135651356613567135681356913570135711357213573135741357513576135771357813579135801358113582135831358413585135861358713588135891359013591135921359313594135951359613597135981359913600136011360213603136041360513606136071360813609136101361113612136131361413615136161361713618136191362013621136221362313624136251362613627136281362913630136311363213633136341363513636136371363813639136401364113642136431364413645136461364713648136491365013651136521365313654136551365613657136581365913660136611366213663136641366513666136671366813669136701367113672136731367413675136761367713678136791368013681136821368313684136851368613687136881368913690136911369213693136941369513696136971369813699137001370113702137031370413705137061370713708137091371013711137121371313714137151371613717137181371913720137211372213723137241372513726137271372813729137301373113732137331373413735137361373713738137391374013741137421374313744137451374613747137481374913750137511375213753137541375513756137571375813759137601376113762137631376413765137661376713768137691377013771137721377313774137751377613777137781377913780137811378213783137841378513786137871378813789137901379113792137931379413795137961379713798137991380013801138021380313804138051380613807138081380913810138111381213813138141381513816138171381813819138201382113822138231382413825138261382713828138291383013831138321383313834138351383613837138381383913840138411384213843138441384513846138471384813849138501385113852138531385413855138561385713858138591386013861138621386313864138651386613867138681386913870138711387213873138741387513876138771387813879138801388113882138831388413885138861388713888138891389013891138921389313894138951389613897138981389913900139011390213903139041390513906139071390813909139101391113912139131391413915139161391713918139191392013921139221392313924139251392613927139281392913930139311393213933139341393513936139371393813939139401394113942139431394413945139461394713948139491395013951139521395313954139551395613957139581395913960139611396213963139641396513966139671396813969139701397113972139731397413975139761397713978139791398013981139821398313984139851398613987139881398913990139911399213993139941399513996139971399813999140001400114002140031400414005140061400714008140091401014011140121401314014140151401614017140181401914020140211402214023140241402514026140271402814029140301403114032140331403414035140361403714038140391404014041140421404314044140451404614047140481404914050140511405214053140541405514056140571405814059140601406114062140631406414065140661406714068140691407014071140721407314074140751407614077140781407914080140811408214083140841408514086140871408814089140901409114092140931409414095140961409714098140991410014101141021410314104141051410614107141081410914110141111411214113141141411514116141171411814119141201412114122141231412414125141261412714128141291413014131141321413314134141351413614137141381413914140141411414214143141441414514146141471414814149141501415114152141531415414155141561415714158141591416014161141621416314164141651416614167141681416914170141711417214173141741417514176141771417814179141801418114182141831418414185141861418714188141891419014191141921419314194141951419614197141981419914200142011420214203142041420514206142071420814209142101421114212142131421414215142161421714218142191422014221142221422314224142251422614227142281422914230142311423214233142341423514236142371423814239142401424114242142431424414245142461424714248142491425014251142521425314254142551425614257142581425914260142611426214263142641426514266142671426814269142701427114272142731427414275142761427714278142791428014281142821428314284142851428614287142881428914290142911429214293142941429514296142971429814299143001430114302143031430414305143061430714308143091431014311143121431314314143151431614317143181431914320143211432214323143241432514326143271432814329143301433114332143331433414335143361433714338143391434014341143421434314344143451434614347143481434914350143511435214353143541435514356143571435814359143601436114362143631436414365143661436714368143691437014371143721437314374143751437614377143781437914380143811438214383143841438514386143871438814389143901439114392143931439414395143961439714398143991440014401144021440314404144051440614407144081440914410144111441214413144141441514416144171441814419144201442114422144231442414425144261442714428144291443014431144321443314434144351443614437144381443914440144411444214443144441444514446144471444814449144501445114452144531445414455144561445714458144591446014461144621446314464144651446614467144681446914470144711447214473144741447514476144771447814479144801448114482144831448414485144861448714488144891449014491144921449314494144951449614497144981449914500145011450214503145041450514506145071450814509145101451114512145131451414515145161451714518145191452014521145221452314524145251452614527145281452914530145311453214533145341453514536145371453814539145401454114542145431454414545145461454714548145491455014551145521455314554145551455614557145581455914560145611456214563145641456514566145671456814569145701457114572145731457414575145761457714578145791458014581145821458314584145851458614587145881458914590145911459214593145941459514596145971459814599146001460114602146031460414605146061460714608146091461014611146121461314614146151461614617146181461914620146211462214623146241462514626146271462814629146301463114632146331463414635146361463714638146391464014641146421464314644146451464614647146481464914650146511465214653146541465514656146571465814659146601466114662146631466414665146661466714668146691467014671146721467314674146751467614677146781467914680146811468214683146841468514686146871468814689146901469114692146931469414695146961469714698146991470014701147021470314704147051470614707147081470914710147111471214713147141471514716147171471814719147201472114722147231472414725147261472714728147291473014731147321473314734147351473614737147381473914740147411474214743147441474514746147471474814749147501475114752147531475414755147561475714758147591476014761147621476314764147651476614767147681476914770147711477214773147741477514776147771477814779147801478114782147831478414785147861478714788147891479014791147921479314794147951479614797147981479914800148011480214803148041480514806148071480814809148101481114812148131481414815148161481714818148191482014821148221482314824148251482614827148281482914830148311483214833148341483514836148371483814839148401484114842148431484414845148461484714848148491485014851148521485314854148551485614857148581485914860148611486214863148641486514866148671486814869148701487114872148731487414875148761487714878148791488014881148821488314884148851488614887148881488914890148911489214893148941489514896148971489814899149001490114902149031490414905149061490714908149091491014911149121491314914149151491614917149181491914920149211492214923149241492514926149271492814929149301493114932149331493414935149361493714938149391494014941149421494314944149451494614947149481494914950149511495214953149541495514956149571495814959149601496114962149631496414965149661496714968149691497014971149721497314974149751497614977149781497914980149811498214983149841498514986149871498814989149901499114992149931499414995149961499714998149991500015001150021500315004150051500615007150081500915010150111501215013150141501515016150171501815019150201502115022150231502415025150261502715028150291503015031150321503315034150351503615037150381503915040150411504215043150441504515046150471504815049150501505115052150531505415055150561505715058150591506015061150621506315064150651506615067150681506915070150711507215073150741507515076150771507815079150801508115082150831508415085150861508715088150891509015091150921509315094150951509615097150981509915100151011510215103151041510515106151071510815109151101511115112151131511415115151161511715118151191512015121151221512315124151251512615127151281512915130151311513215133151341513515136151371513815139151401514115142151431514415145151461514715148151491515015151151521515315154151551515615157151581515915160151611516215163151641516515166151671516815169151701517115172151731517415175151761517715178151791518015181151821518315184151851518615187151881518915190151911519215193151941519515196151971519815199152001520115202152031520415205152061520715208152091521015211152121521315214152151521615217152181521915220152211522215223152241522515226152271522815229152301523115232152331523415235152361523715238152391524015241152421524315244152451524615247152481524915250152511525215253152541525515256152571525815259152601526115262152631526415265152661526715268152691527015271152721527315274152751527615277152781527915280152811528215283152841528515286152871528815289152901529115292152931529415295152961529715298152991530015301153021530315304153051530615307153081530915310153111531215313153141531515316153171531815319153201532115322153231532415325153261532715328153291533015331153321533315334153351533615337153381533915340153411534215343153441534515346153471534815349153501535115352153531535415355153561535715358153591536015361153621536315364153651536615367153681536915370153711537215373153741537515376153771537815379153801538115382153831538415385153861538715388153891539015391153921539315394153951539615397153981539915400154011540215403154041540515406154071540815409154101541115412154131541415415154161541715418154191542015421154221542315424154251542615427154281542915430154311543215433154341543515436154371543815439154401544115442154431544415445154461544715448154491545015451154521545315454154551545615457154581545915460154611546215463154641546515466154671546815469154701547115472154731547415475154761547715478154791548015481154821548315484154851548615487154881548915490154911549215493154941549515496154971549815499155001550115502155031550415505155061550715508155091551015511155121551315514155151551615517155181551915520155211552215523155241552515526155271552815529155301553115532155331553415535155361553715538155391554015541155421554315544155451554615547155481554915550155511555215553155541555515556155571555815559155601556115562155631556415565155661556715568155691557015571155721557315574155751557615577155781557915580155811558215583155841558515586155871558815589155901559115592155931559415595155961559715598155991560015601156021560315604156051560615607156081560915610156111561215613156141561515616156171561815619156201562115622156231562415625156261562715628156291563015631156321563315634156351563615637156381563915640156411564215643156441564515646156471564815649156501565115652156531565415655156561565715658156591566015661156621566315664156651566615667156681566915670156711567215673156741567515676156771567815679156801568115682156831568415685156861568715688156891569015691156921569315694156951569615697156981569915700157011570215703157041570515706157071570815709157101571115712157131571415715157161571715718157191572015721157221572315724157251572615727157281572915730157311573215733157341573515736157371573815739157401574115742157431574415745157461574715748157491575015751157521575315754157551575615757157581575915760157611576215763157641576515766157671576815769157701577115772157731577415775157761577715778157791578015781157821578315784157851578615787157881578915790157911579215793157941579515796157971579815799158001580115802158031580415805158061580715808158091581015811158121581315814158151581615817158181581915820158211582215823158241582515826158271582815829158301583115832158331583415835158361583715838158391584015841158421584315844158451584615847158481584915850158511585215853158541585515856158571585815859158601586115862158631586415865158661586715868158691587015871158721587315874158751587615877158781587915880158811588215883158841588515886158871588815889158901589115892158931589415895158961589715898158991590015901159021590315904159051590615907159081590915910159111591215913159141591515916159171591815919159201592115922159231592415925159261592715928159291593015931159321593315934159351593615937159381593915940159411594215943159441594515946159471594815949159501595115952159531595415955159561595715958159591596015961159621596315964159651596615967159681596915970159711597215973159741597515976159771597815979159801598115982159831598415985159861598715988159891599015991159921599315994159951599615997159981599916000160011600216003160041600516006160071600816009160101601116012160131601416015160161601716018160191602016021160221602316024160251602616027160281602916030160311603216033160341603516036160371603816039160401604116042160431604416045160461604716048160491605016051160521605316054160551605616057160581605916060160611606216063160641606516066160671606816069160701607116072160731607416075160761607716078160791608016081160821608316084160851608616087160881608916090160911609216093160941609516096160971609816099161001610116102161031610416105161061610716108161091611016111161121611316114161151611616117161181611916120161211612216123161241612516126161271612816129161301613116132161331613416135161361613716138161391614016141161421614316144161451614616147161481614916150161511615216153161541615516156161571615816159161601616116162161631616416165161661616716168161691617016171161721617316174161751617616177161781617916180161811618216183161841618516186161871618816189161901619116192161931619416195161961619716198161991620016201162021620316204162051620616207162081620916210162111621216213162141621516216162171621816219162201622116222162231622416225162261622716228162291623016231162321623316234162351623616237162381623916240162411624216243162441624516246162471624816249162501625116252162531625416255162561625716258162591626016261162621626316264162651626616267162681626916270162711627216273162741627516276162771627816279162801628116282162831628416285162861628716288162891629016291162921629316294162951629616297162981629916300163011630216303163041630516306163071630816309163101631116312163131631416315163161631716318163191632016321163221632316324163251632616327163281632916330163311633216333163341633516336163371633816339163401634116342163431634416345163461634716348163491635016351163521635316354163551635616357163581635916360163611636216363163641636516366163671636816369163701637116372163731637416375163761637716378163791638016381163821638316384163851638616387163881638916390163911639216393163941639516396163971639816399164001640116402164031640416405164061640716408164091641016411164121641316414164151641616417164181641916420164211642216423164241642516426164271642816429164301643116432164331643416435164361643716438164391644016441164421644316444164451644616447164481644916450164511645216453164541645516456164571645816459164601646116462164631646416465164661646716468164691647016471164721647316474164751647616477164781647916480164811648216483164841648516486164871648816489164901649116492164931649416495164961649716498164991650016501165021650316504165051650616507165081650916510165111651216513165141651516516165171651816519165201652116522165231652416525165261652716528165291653016531165321653316534165351653616537165381653916540165411654216543165441654516546165471654816549165501655116552165531655416555165561655716558165591656016561165621656316564165651656616567165681656916570165711657216573165741657516576165771657816579165801658116582165831658416585165861658716588165891659016591165921659316594165951659616597165981659916600166011660216603166041660516606166071660816609166101661116612166131661416615166161661716618166191662016621166221662316624166251662616627166281662916630166311663216633166341663516636166371663816639166401664116642166431664416645166461664716648166491665016651166521665316654166551665616657166581665916660166611666216663166641666516666166671666816669166701667116672166731667416675166761667716678166791668016681166821668316684166851668616687166881668916690166911669216693166941669516696166971669816699167001670116702167031670416705167061670716708167091671016711167121671316714167151671616717167181671916720167211672216723167241672516726167271672816729167301673116732167331673416735167361673716738167391674016741167421674316744167451674616747167481674916750167511675216753167541675516756167571675816759167601676116762167631676416765167661676716768167691677016771167721677316774167751677616777167781677916780167811678216783167841678516786167871678816789167901679116792167931679416795167961679716798167991680016801168021680316804168051680616807168081680916810168111681216813168141681516816168171681816819168201682116822168231682416825168261682716828168291683016831168321683316834168351683616837168381683916840168411684216843168441684516846168471684816849168501685116852168531685416855168561685716858168591686016861168621686316864168651686616867168681686916870168711687216873168741687516876168771687816879168801688116882168831688416885168861688716888168891689016891168921689316894168951689616897168981689916900169011690216903169041690516906169071690816909169101691116912169131691416915169161691716918169191692016921169221692316924169251692616927169281692916930169311693216933169341693516936169371693816939169401694116942169431694416945169461694716948169491695016951169521695316954169551695616957169581695916960169611696216963169641696516966169671696816969169701697116972169731697416975169761697716978169791698016981169821698316984169851698616987169881698916990169911699216993169941699516996169971699816999170001700117002170031700417005170061700717008170091701017011170121701317014170151701617017170181701917020170211702217023170241702517026170271702817029170301703117032170331703417035170361703717038170391704017041170421704317044170451704617047170481704917050170511705217053170541705517056170571705817059170601706117062170631706417065170661706717068170691707017071170721707317074170751707617077170781707917080170811708217083170841708517086170871708817089170901709117092170931709417095170961709717098170991710017101171021710317104171051710617107171081710917110171111711217113171141711517116171171711817119171201712117122171231712417125171261712717128171291713017131171321713317134171351713617137171381713917140171411714217143171441714517146171471714817149171501715117152171531715417155171561715717158171591716017161171621716317164171651716617167171681716917170171711717217173171741717517176171771717817179171801718117182171831718417185171861718717188171891719017191171921719317194171951719617197171981719917200172011720217203172041720517206172071720817209172101721117212172131721417215172161721717218172191722017221172221722317224172251722617227172281722917230172311723217233172341723517236172371723817239172401724117242172431724417245172461724717248172491725017251172521725317254172551725617257172581725917260172611726217263172641726517266172671726817269172701727117272172731727417275172761727717278172791728017281172821728317284172851728617287172881728917290172911729217293172941729517296172971729817299173001730117302173031730417305173061730717308173091731017311173121731317314173151731617317173181731917320173211732217323173241732517326173271732817329173301733117332173331733417335173361733717338173391734017341173421734317344173451734617347173481734917350173511735217353173541735517356173571735817359173601736117362173631736417365173661736717368173691737017371173721737317374173751737617377173781737917380173811738217383173841738517386173871738817389173901739117392173931739417395173961739717398173991740017401174021740317404174051740617407174081740917410174111741217413174141741517416174171741817419174201742117422174231742417425174261742717428174291743017431174321743317434174351743617437174381743917440174411744217443174441744517446174471744817449174501745117452174531745417455174561745717458174591746017461174621746317464174651746617467174681746917470174711747217473174741747517476174771747817479174801748117482174831748417485174861748717488174891749017491174921749317494174951749617497174981749917500175011750217503175041750517506175071750817509175101751117512175131751417515175161751717518175191752017521175221752317524175251752617527175281752917530175311753217533175341753517536175371753817539175401754117542175431754417545175461754717548175491755017551175521755317554175551755617557175581755917560175611756217563175641756517566175671756817569175701757117572175731757417575175761757717578175791758017581175821758317584175851758617587175881758917590175911759217593175941759517596175971759817599176001760117602176031760417605176061760717608176091761017611176121761317614176151761617617176181761917620176211762217623176241762517626176271762817629176301763117632176331763417635176361763717638176391764017641176421764317644176451764617647176481764917650176511765217653176541765517656176571765817659176601766117662176631766417665176661766717668176691767017671176721767317674176751767617677176781767917680176811768217683176841768517686176871768817689176901769117692176931769417695176961769717698176991770017701177021770317704177051770617707177081770917710177111771217713177141771517716177171771817719177201772117722177231772417725177261772717728177291773017731177321773317734177351773617737177381773917740177411774217743177441774517746177471774817749177501775117752177531775417755177561775717758177591776017761177621776317764177651776617767177681776917770177711777217773177741777517776177771777817779177801778117782177831778417785177861778717788177891779017791177921779317794177951779617797177981779917800178011780217803178041780517806178071780817809178101781117812178131781417815178161781717818178191782017821178221782317824178251782617827178281782917830178311783217833178341783517836178371783817839178401784117842178431784417845178461784717848178491785017851178521785317854178551785617857178581785917860178611786217863178641786517866178671786817869178701787117872178731787417875178761787717878178791788017881178821788317884178851788617887178881788917890178911789217893178941789517896178971789817899179001790117902179031790417905179061790717908179091791017911179121791317914179151791617917179181791917920179211792217923179241792517926179271792817929179301793117932179331793417935179361793717938179391794017941179421794317944179451794617947179481794917950179511795217953179541795517956179571795817959179601796117962179631796417965179661796717968179691797017971179721797317974179751797617977179781797917980179811798217983179841798517986179871798817989179901799117992179931799417995179961799717998179991800018001180021800318004180051800618007180081800918010180111801218013180141801518016180171801818019180201802118022180231802418025180261802718028180291803018031180321803318034180351803618037180381803918040180411804218043180441804518046180471804818049180501805118052180531805418055180561805718058180591806018061180621806318064180651806618067180681806918070180711807218073180741807518076180771807818079180801808118082180831808418085180861808718088180891809018091180921809318094180951809618097180981809918100181011810218103181041810518106181071810818109181101811118112181131811418115181161811718118181191812018121181221812318124181251812618127181281812918130181311813218133181341813518136181371813818139181401814118142181431814418145181461814718148181491815018151181521815318154181551815618157181581815918160181611816218163181641816518166181671816818169181701817118172181731817418175181761817718178181791818018181181821818318184181851818618187181881818918190181911819218193181941819518196181971819818199182001820118202182031820418205182061820718208182091821018211182121821318214182151821618217182181821918220182211822218223182241822518226182271822818229182301823118232182331823418235182361823718238182391824018241182421824318244182451824618247182481824918250182511825218253182541825518256182571825818259182601826118262182631826418265182661826718268182691827018271182721827318274182751827618277182781827918280182811828218283182841828518286182871828818289182901829118292182931829418295182961829718298182991830018301183021830318304183051830618307183081830918310183111831218313183141831518316183171831818319183201832118322183231832418325183261832718328183291833018331183321833318334183351833618337183381833918340183411834218343183441834518346183471834818349183501835118352183531835418355183561835718358183591836018361183621836318364183651836618367183681836918370183711837218373183741837518376183771837818379183801838118382183831838418385183861838718388183891839018391183921839318394183951839618397183981839918400184011840218403184041840518406184071840818409184101841118412184131841418415184161841718418184191842018421184221842318424184251842618427184281842918430184311843218433184341843518436184371843818439184401844118442184431844418445184461844718448184491845018451184521845318454184551845618457184581845918460184611846218463184641846518466184671846818469184701847118472184731847418475184761847718478184791848018481184821848318484184851848618487184881848918490184911849218493184941849518496184971849818499185001850118502185031850418505185061850718508185091851018511185121851318514185151851618517185181851918520185211852218523185241852518526185271852818529185301853118532185331853418535185361853718538185391854018541185421854318544185451854618547185481854918550185511855218553185541855518556185571855818559185601856118562185631856418565185661856718568185691857018571185721857318574185751857618577185781857918580185811858218583185841858518586185871858818589185901859118592185931859418595185961859718598185991860018601186021860318604186051860618607186081860918610186111861218613186141861518616186171861818619186201862118622186231862418625186261862718628186291863018631186321863318634186351863618637186381863918640186411864218643186441864518646186471864818649186501865118652186531865418655186561865718658186591866018661186621866318664186651866618667186681866918670186711867218673186741867518676186771867818679186801868118682186831868418685186861868718688186891869018691186921869318694186951869618697186981869918700187011870218703187041870518706187071870818709187101871118712187131871418715187161871718718187191872018721187221872318724187251872618727187281872918730187311873218733187341873518736187371873818739187401874118742187431874418745187461874718748187491875018751187521875318754187551875618757187581875918760187611876218763187641876518766187671876818769187701877118772187731877418775187761877718778187791878018781187821878318784187851878618787187881878918790187911879218793187941879518796187971879818799188001880118802188031880418805188061880718808188091881018811188121881318814188151881618817188181881918820188211882218823188241882518826188271882818829188301883118832188331883418835188361883718838188391884018841188421884318844188451884618847188481884918850188511885218853188541885518856188571885818859188601886118862188631886418865188661886718868188691887018871188721887318874188751887618877188781887918880188811888218883188841888518886188871888818889188901889118892188931889418895188961889718898188991890018901189021890318904189051890618907189081890918910189111891218913189141891518916189171891818919189201892118922189231892418925189261892718928189291893018931189321893318934189351893618937189381893918940189411894218943189441894518946189471894818949189501895118952189531895418955189561895718958189591896018961189621896318964189651896618967189681896918970189711897218973189741897518976189771897818979189801898118982189831898418985189861898718988189891899018991189921899318994189951899618997189981899919000190011900219003190041900519006190071900819009190101901119012190131901419015190161901719018190191902019021190221902319024190251902619027190281902919030190311903219033190341903519036190371903819039190401904119042190431904419045190461904719048190491905019051190521905319054190551905619057190581905919060190611906219063190641906519066190671906819069190701907119072190731907419075190761907719078190791908019081190821908319084190851908619087190881908919090190911909219093190941909519096190971909819099191001910119102191031910419105191061910719108191091911019111191121911319114191151911619117191181911919120191211912219123191241912519126191271912819129191301913119132191331913419135191361913719138191391914019141191421914319144191451914619147191481914919150191511915219153191541915519156191571915819159191601916119162191631916419165191661916719168191691917019171191721917319174191751917619177191781917919180191811918219183191841918519186191871918819189191901919119192191931919419195191961919719198191991920019201192021920319204192051920619207192081920919210192111921219213192141921519216192171921819219192201922119222192231922419225192261922719228192291923019231192321923319234192351923619237192381923919240192411924219243192441924519246192471924819249192501925119252192531925419255192561925719258192591926019261192621926319264192651926619267192681926919270192711927219273192741927519276192771927819279192801928119282192831928419285192861928719288192891929019291192921929319294192951929619297192981929919300193011930219303193041930519306193071930819309193101931119312193131931419315193161931719318193191932019321193221932319324193251932619327193281932919330193311933219333193341933519336193371933819339193401934119342193431934419345193461934719348193491935019351193521935319354193551935619357193581935919360193611936219363193641936519366193671936819369193701937119372193731937419375193761937719378193791938019381193821938319384193851938619387193881938919390193911939219393193941939519396193971939819399194001940119402194031940419405194061940719408194091941019411194121941319414194151941619417194181941919420194211942219423194241942519426194271942819429194301943119432194331943419435194361943719438194391944019441194421944319444194451944619447194481944919450194511945219453194541945519456194571945819459194601946119462194631946419465194661946719468194691947019471194721947319474194751947619477194781947919480194811948219483194841948519486194871948819489194901949119492194931949419495194961949719498194991950019501195021950319504195051950619507195081950919510195111951219513195141951519516195171951819519195201952119522195231952419525195261952719528195291953019531195321953319534195351953619537195381953919540195411954219543195441954519546195471954819549195501955119552195531955419555195561955719558195591956019561195621956319564195651956619567195681956919570195711957219573195741957519576195771957819579195801958119582195831958419585195861958719588195891959019591195921959319594195951959619597195981959919600196011960219603196041960519606196071960819609196101961119612196131961419615196161961719618196191962019621196221962319624196251962619627196281962919630196311963219633196341963519636196371963819639196401964119642196431964419645196461964719648196491965019651196521965319654196551965619657196581965919660196611966219663196641966519666196671966819669196701967119672196731967419675196761967719678196791968019681196821968319684196851968619687196881968919690196911969219693196941969519696196971969819699197001970119702197031970419705197061970719708197091971019711197121971319714197151971619717197181971919720197211972219723197241972519726197271972819729197301973119732197331973419735197361973719738197391974019741197421974319744197451974619747197481974919750197511975219753197541975519756197571975819759197601976119762197631976419765197661976719768197691977019771197721977319774197751977619777197781977919780197811978219783197841978519786197871978819789197901979119792197931979419795197961979719798197991980019801198021980319804198051980619807198081980919810198111981219813198141981519816198171981819819198201982119822198231982419825198261982719828198291983019831198321983319834198351983619837198381983919840198411984219843198441984519846198471984819849198501985119852198531985419855198561985719858198591986019861198621986319864198651986619867198681986919870198711987219873198741987519876198771987819879198801988119882198831988419885198861988719888198891989019891198921989319894198951989619897198981989919900
  1. //go:build freebsd && amd64
  2. package libxft
  3. import (
  4. "reflect"
  5. "unsafe"
  6. "modernc.org/libX11"
  7. "modernc.org/libXrender"
  8. "modernc.org/libc"
  9. "modernc.org/libfontconfig"
  10. "modernc.org/libfreetype"
  11. )
  12. var (
  13. _ reflect.Type
  14. _ unsafe.Pointer
  15. )
  16. const m_AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED = "DEPRECATED_ATTRIBUTE"
  17. const m_AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_1 = "DEPRECATED_ATTRIBUTE"
  18. const m_AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10 = "DEPRECATED_ATTRIBUTE"
  19. const m_AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10_2 = "DEPRECATED_ATTRIBUTE"
  20. const m_AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10_3 = "DEPRECATED_ATTRIBUTE"
  21. const m_AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11 = "DEPRECATED_ATTRIBUTE"
  22. const m_AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_2 = "DEPRECATED_ATTRIBUTE"
  23. const m_AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_3 = "DEPRECATED_ATTRIBUTE"
  24. const m_AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_4 = "DEPRECATED_ATTRIBUTE"
  25. const m_AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12 = "DEPRECATED_ATTRIBUTE"
  26. const m_AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_1 = "DEPRECATED_ATTRIBUTE"
  27. const m_AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_2 = "DEPRECATED_ATTRIBUTE"
  28. const m_AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_4 = "DEPRECATED_ATTRIBUTE"
  29. const m_AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_2 = "DEPRECATED_ATTRIBUTE"
  30. const m_AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_3 = "DEPRECATED_ATTRIBUTE"
  31. const m_AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_4 = "DEPRECATED_ATTRIBUTE"
  32. const m_AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_5 = "DEPRECATED_ATTRIBUTE"
  33. const m_AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_6 = "DEPRECATED_ATTRIBUTE"
  34. const m_AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_7 = "DEPRECATED_ATTRIBUTE"
  35. const m_AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_8 = "DEPRECATED_ATTRIBUTE"
  36. const m_AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_9 = "DEPRECATED_ATTRIBUTE"
  37. const m_AVAILABLE_MAC_OS_X_VERSION_10_10_2_AND_LATER_BUT_DEPRECATED = "DEPRECATED_ATTRIBUTE"
  38. const m_AVAILABLE_MAC_OS_X_VERSION_10_10_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10_3 = "DEPRECATED_ATTRIBUTE"
  39. const m_AVAILABLE_MAC_OS_X_VERSION_10_10_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11 = "DEPRECATED_ATTRIBUTE"
  40. const m_AVAILABLE_MAC_OS_X_VERSION_10_10_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_2 = "DEPRECATED_ATTRIBUTE"
  41. const m_AVAILABLE_MAC_OS_X_VERSION_10_10_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_3 = "DEPRECATED_ATTRIBUTE"
  42. const m_AVAILABLE_MAC_OS_X_VERSION_10_10_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_4 = "DEPRECATED_ATTRIBUTE"
  43. const m_AVAILABLE_MAC_OS_X_VERSION_10_10_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12 = "DEPRECATED_ATTRIBUTE"
  44. const m_AVAILABLE_MAC_OS_X_VERSION_10_10_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_1 = "DEPRECATED_ATTRIBUTE"
  45. const m_AVAILABLE_MAC_OS_X_VERSION_10_10_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_2 = "DEPRECATED_ATTRIBUTE"
  46. const m_AVAILABLE_MAC_OS_X_VERSION_10_10_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_4 = "DEPRECATED_ATTRIBUTE"
  47. const m_AVAILABLE_MAC_OS_X_VERSION_10_10_3_AND_LATER_BUT_DEPRECATED = "DEPRECATED_ATTRIBUTE"
  48. const m_AVAILABLE_MAC_OS_X_VERSION_10_10_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11 = "DEPRECATED_ATTRIBUTE"
  49. const m_AVAILABLE_MAC_OS_X_VERSION_10_10_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_2 = "DEPRECATED_ATTRIBUTE"
  50. const m_AVAILABLE_MAC_OS_X_VERSION_10_10_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_3 = "DEPRECATED_ATTRIBUTE"
  51. const m_AVAILABLE_MAC_OS_X_VERSION_10_10_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_4 = "DEPRECATED_ATTRIBUTE"
  52. const m_AVAILABLE_MAC_OS_X_VERSION_10_10_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12 = "DEPRECATED_ATTRIBUTE"
  53. const m_AVAILABLE_MAC_OS_X_VERSION_10_10_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_1 = "DEPRECATED_ATTRIBUTE"
  54. const m_AVAILABLE_MAC_OS_X_VERSION_10_10_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_2 = "DEPRECATED_ATTRIBUTE"
  55. const m_AVAILABLE_MAC_OS_X_VERSION_10_10_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_4 = "DEPRECATED_ATTRIBUTE"
  56. const m_AVAILABLE_MAC_OS_X_VERSION_10_10_AND_LATER_BUT_DEPRECATED = "DEPRECATED_ATTRIBUTE"
  57. const m_AVAILABLE_MAC_OS_X_VERSION_10_10_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10_2 = "DEPRECATED_ATTRIBUTE"
  58. const m_AVAILABLE_MAC_OS_X_VERSION_10_10_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10_3 = "DEPRECATED_ATTRIBUTE"
  59. const m_AVAILABLE_MAC_OS_X_VERSION_10_10_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11 = "DEPRECATED_ATTRIBUTE"
  60. const m_AVAILABLE_MAC_OS_X_VERSION_10_10_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_2 = "DEPRECATED_ATTRIBUTE"
  61. const m_AVAILABLE_MAC_OS_X_VERSION_10_10_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_3 = "DEPRECATED_ATTRIBUTE"
  62. const m_AVAILABLE_MAC_OS_X_VERSION_10_10_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_4 = "DEPRECATED_ATTRIBUTE"
  63. const m_AVAILABLE_MAC_OS_X_VERSION_10_10_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12 = "DEPRECATED_ATTRIBUTE"
  64. const m_AVAILABLE_MAC_OS_X_VERSION_10_10_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_1 = "DEPRECATED_ATTRIBUTE"
  65. const m_AVAILABLE_MAC_OS_X_VERSION_10_10_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_2 = "DEPRECATED_ATTRIBUTE"
  66. const m_AVAILABLE_MAC_OS_X_VERSION_10_10_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_4 = "DEPRECATED_ATTRIBUTE"
  67. const m_AVAILABLE_MAC_OS_X_VERSION_10_11_2_AND_LATER_BUT_DEPRECATED = "DEPRECATED_ATTRIBUTE"
  68. const m_AVAILABLE_MAC_OS_X_VERSION_10_11_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_3 = "DEPRECATED_ATTRIBUTE"
  69. const m_AVAILABLE_MAC_OS_X_VERSION_10_11_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_4 = "DEPRECATED_ATTRIBUTE"
  70. const m_AVAILABLE_MAC_OS_X_VERSION_10_11_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12 = "DEPRECATED_ATTRIBUTE"
  71. const m_AVAILABLE_MAC_OS_X_VERSION_10_11_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_1 = "DEPRECATED_ATTRIBUTE"
  72. const m_AVAILABLE_MAC_OS_X_VERSION_10_11_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_2 = "DEPRECATED_ATTRIBUTE"
  73. const m_AVAILABLE_MAC_OS_X_VERSION_10_11_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_4 = "DEPRECATED_ATTRIBUTE"
  74. const m_AVAILABLE_MAC_OS_X_VERSION_10_11_3_AND_LATER_BUT_DEPRECATED = "DEPRECATED_ATTRIBUTE"
  75. const m_AVAILABLE_MAC_OS_X_VERSION_10_11_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_4 = "DEPRECATED_ATTRIBUTE"
  76. const m_AVAILABLE_MAC_OS_X_VERSION_10_11_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12 = "DEPRECATED_ATTRIBUTE"
  77. const m_AVAILABLE_MAC_OS_X_VERSION_10_11_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_1 = "DEPRECATED_ATTRIBUTE"
  78. const m_AVAILABLE_MAC_OS_X_VERSION_10_11_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_2 = "DEPRECATED_ATTRIBUTE"
  79. const m_AVAILABLE_MAC_OS_X_VERSION_10_11_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_4 = "DEPRECATED_ATTRIBUTE"
  80. const m_AVAILABLE_MAC_OS_X_VERSION_10_11_4_AND_LATER_BUT_DEPRECATED = "DEPRECATED_ATTRIBUTE"
  81. const m_AVAILABLE_MAC_OS_X_VERSION_10_11_4_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12 = "DEPRECATED_ATTRIBUTE"
  82. const m_AVAILABLE_MAC_OS_X_VERSION_10_11_4_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_1 = "DEPRECATED_ATTRIBUTE"
  83. const m_AVAILABLE_MAC_OS_X_VERSION_10_11_4_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_2 = "DEPRECATED_ATTRIBUTE"
  84. const m_AVAILABLE_MAC_OS_X_VERSION_10_11_4_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_4 = "DEPRECATED_ATTRIBUTE"
  85. const m_AVAILABLE_MAC_OS_X_VERSION_10_11_AND_LATER_BUT_DEPRECATED = "DEPRECATED_ATTRIBUTE"
  86. const m_AVAILABLE_MAC_OS_X_VERSION_10_11_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_2 = "DEPRECATED_ATTRIBUTE"
  87. const m_AVAILABLE_MAC_OS_X_VERSION_10_11_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_3 = "DEPRECATED_ATTRIBUTE"
  88. const m_AVAILABLE_MAC_OS_X_VERSION_10_11_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_4 = "DEPRECATED_ATTRIBUTE"
  89. const m_AVAILABLE_MAC_OS_X_VERSION_10_11_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12 = "DEPRECATED_ATTRIBUTE"
  90. const m_AVAILABLE_MAC_OS_X_VERSION_10_11_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_1 = "DEPRECATED_ATTRIBUTE"
  91. const m_AVAILABLE_MAC_OS_X_VERSION_10_11_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_2 = "DEPRECATED_ATTRIBUTE"
  92. const m_AVAILABLE_MAC_OS_X_VERSION_10_11_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_4 = "DEPRECATED_ATTRIBUTE"
  93. const m_AVAILABLE_MAC_OS_X_VERSION_10_12_1_AND_LATER_BUT_DEPRECATED = "DEPRECATED_ATTRIBUTE"
  94. const m_AVAILABLE_MAC_OS_X_VERSION_10_12_1_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_2 = "DEPRECATED_ATTRIBUTE"
  95. const m_AVAILABLE_MAC_OS_X_VERSION_10_12_1_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_4 = "DEPRECATED_ATTRIBUTE"
  96. const m_AVAILABLE_MAC_OS_X_VERSION_10_12_2_AND_LATER_BUT_DEPRECATED = "DEPRECATED_ATTRIBUTE"
  97. const m_AVAILABLE_MAC_OS_X_VERSION_10_12_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_4 = "DEPRECATED_ATTRIBUTE"
  98. const m_AVAILABLE_MAC_OS_X_VERSION_10_12_4_AND_LATER_BUT_DEPRECATED = "DEPRECATED_ATTRIBUTE"
  99. const m_AVAILABLE_MAC_OS_X_VERSION_10_12_AND_LATER_BUT_DEPRECATED = "DEPRECATED_ATTRIBUTE"
  100. const m_AVAILABLE_MAC_OS_X_VERSION_10_12_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_1 = "DEPRECATED_ATTRIBUTE"
  101. const m_AVAILABLE_MAC_OS_X_VERSION_10_12_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_2 = "DEPRECATED_ATTRIBUTE"
  102. const m_AVAILABLE_MAC_OS_X_VERSION_10_12_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_4 = "DEPRECATED_ATTRIBUTE"
  103. const m_AVAILABLE_MAC_OS_X_VERSION_10_1_AND_LATER_BUT_DEPRECATED = "DEPRECATED_ATTRIBUTE"
  104. const m_AVAILABLE_MAC_OS_X_VERSION_10_1_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10 = "DEPRECATED_ATTRIBUTE"
  105. const m_AVAILABLE_MAC_OS_X_VERSION_10_1_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10_2 = "DEPRECATED_ATTRIBUTE"
  106. const m_AVAILABLE_MAC_OS_X_VERSION_10_1_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10_3 = "DEPRECATED_ATTRIBUTE"
  107. const m_AVAILABLE_MAC_OS_X_VERSION_10_1_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11 = "DEPRECATED_ATTRIBUTE"
  108. const m_AVAILABLE_MAC_OS_X_VERSION_10_1_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_2 = "DEPRECATED_ATTRIBUTE"
  109. const m_AVAILABLE_MAC_OS_X_VERSION_10_1_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_3 = "DEPRECATED_ATTRIBUTE"
  110. const m_AVAILABLE_MAC_OS_X_VERSION_10_1_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_4 = "DEPRECATED_ATTRIBUTE"
  111. const m_AVAILABLE_MAC_OS_X_VERSION_10_1_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12 = "DEPRECATED_ATTRIBUTE"
  112. const m_AVAILABLE_MAC_OS_X_VERSION_10_1_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_1 = "DEPRECATED_ATTRIBUTE"
  113. const m_AVAILABLE_MAC_OS_X_VERSION_10_1_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_2 = "DEPRECATED_ATTRIBUTE"
  114. const m_AVAILABLE_MAC_OS_X_VERSION_10_1_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_4 = "DEPRECATED_ATTRIBUTE"
  115. const m_AVAILABLE_MAC_OS_X_VERSION_10_1_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_2 = "DEPRECATED_ATTRIBUTE"
  116. const m_AVAILABLE_MAC_OS_X_VERSION_10_1_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_3 = "DEPRECATED_ATTRIBUTE"
  117. const m_AVAILABLE_MAC_OS_X_VERSION_10_1_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_4 = "DEPRECATED_ATTRIBUTE"
  118. const m_AVAILABLE_MAC_OS_X_VERSION_10_1_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_5 = "DEPRECATED_ATTRIBUTE"
  119. const m_AVAILABLE_MAC_OS_X_VERSION_10_1_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_6 = "DEPRECATED_ATTRIBUTE"
  120. const m_AVAILABLE_MAC_OS_X_VERSION_10_1_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_7 = "DEPRECATED_ATTRIBUTE"
  121. const m_AVAILABLE_MAC_OS_X_VERSION_10_1_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_8 = "DEPRECATED_ATTRIBUTE"
  122. const m_AVAILABLE_MAC_OS_X_VERSION_10_1_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_9 = "DEPRECATED_ATTRIBUTE"
  123. const m_AVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER_BUT_DEPRECATED = "DEPRECATED_ATTRIBUTE"
  124. const m_AVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10 = "DEPRECATED_ATTRIBUTE"
  125. const m_AVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10_2 = "DEPRECATED_ATTRIBUTE"
  126. const m_AVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10_3 = "DEPRECATED_ATTRIBUTE"
  127. const m_AVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11 = "DEPRECATED_ATTRIBUTE"
  128. const m_AVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_2 = "DEPRECATED_ATTRIBUTE"
  129. const m_AVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_3 = "DEPRECATED_ATTRIBUTE"
  130. const m_AVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_4 = "DEPRECATED_ATTRIBUTE"
  131. const m_AVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12 = "DEPRECATED_ATTRIBUTE"
  132. const m_AVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_1 = "DEPRECATED_ATTRIBUTE"
  133. const m_AVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_2 = "DEPRECATED_ATTRIBUTE"
  134. const m_AVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_4 = "DEPRECATED_ATTRIBUTE"
  135. const m_AVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_3 = "DEPRECATED_ATTRIBUTE"
  136. const m_AVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_4 = "DEPRECATED_ATTRIBUTE"
  137. const m_AVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_5 = "DEPRECATED_ATTRIBUTE"
  138. const m_AVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_6 = "DEPRECATED_ATTRIBUTE"
  139. const m_AVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_7 = "DEPRECATED_ATTRIBUTE"
  140. const m_AVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_8 = "DEPRECATED_ATTRIBUTE"
  141. const m_AVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_9 = "DEPRECATED_ATTRIBUTE"
  142. const m_AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER_BUT_DEPRECATED = "DEPRECATED_ATTRIBUTE"
  143. const m_AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10 = "DEPRECATED_ATTRIBUTE"
  144. const m_AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10_2 = "DEPRECATED_ATTRIBUTE"
  145. const m_AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10_3 = "DEPRECATED_ATTRIBUTE"
  146. const m_AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11 = "DEPRECATED_ATTRIBUTE"
  147. const m_AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_2 = "DEPRECATED_ATTRIBUTE"
  148. const m_AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_3 = "DEPRECATED_ATTRIBUTE"
  149. const m_AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_4 = "DEPRECATED_ATTRIBUTE"
  150. const m_AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12 = "DEPRECATED_ATTRIBUTE"
  151. const m_AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_1 = "DEPRECATED_ATTRIBUTE"
  152. const m_AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_2 = "DEPRECATED_ATTRIBUTE"
  153. const m_AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_4 = "DEPRECATED_ATTRIBUTE"
  154. const m_AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_4 = "DEPRECATED_ATTRIBUTE"
  155. const m_AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_5 = "DEPRECATED_ATTRIBUTE"
  156. const m_AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_6 = "DEPRECATED_ATTRIBUTE"
  157. const m_AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_7 = "DEPRECATED_ATTRIBUTE"
  158. const m_AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_8 = "DEPRECATED_ATTRIBUTE"
  159. const m_AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_9 = "DEPRECATED_ATTRIBUTE"
  160. const m_AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER_BUT_DEPRECATED = "DEPRECATED_ATTRIBUTE"
  161. const m_AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10 = "DEPRECATED_ATTRIBUTE"
  162. const m_AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10_2 = "DEPRECATED_ATTRIBUTE"
  163. const m_AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10_3 = "DEPRECATED_ATTRIBUTE"
  164. const m_AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11 = "DEPRECATED_ATTRIBUTE"
  165. const m_AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_2 = "DEPRECATED_ATTRIBUTE"
  166. const m_AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_3 = "DEPRECATED_ATTRIBUTE"
  167. const m_AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_4 = "DEPRECATED_ATTRIBUTE"
  168. const m_AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12 = "DEPRECATED_ATTRIBUTE"
  169. const m_AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_1 = "DEPRECATED_ATTRIBUTE"
  170. const m_AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_2 = "DEPRECATED_ATTRIBUTE"
  171. const m_AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_4 = "DEPRECATED_ATTRIBUTE"
  172. const m_AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_5 = "DEPRECATED_ATTRIBUTE"
  173. const m_AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_6 = "DEPRECATED_ATTRIBUTE"
  174. const m_AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_7 = "DEPRECATED_ATTRIBUTE"
  175. const m_AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_8 = "DEPRECATED_ATTRIBUTE"
  176. const m_AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_9 = "DEPRECATED_ATTRIBUTE"
  177. const m_AVAILABLE_MAC_OS_X_VERSION_10_5_AND_LATER_BUT_DEPRECATED = "DEPRECATED_ATTRIBUTE"
  178. const m_AVAILABLE_MAC_OS_X_VERSION_10_5_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10 = "DEPRECATED_ATTRIBUTE"
  179. const m_AVAILABLE_MAC_OS_X_VERSION_10_5_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10_2 = "DEPRECATED_ATTRIBUTE"
  180. const m_AVAILABLE_MAC_OS_X_VERSION_10_5_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10_3 = "DEPRECATED_ATTRIBUTE"
  181. const m_AVAILABLE_MAC_OS_X_VERSION_10_5_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11 = "DEPRECATED_ATTRIBUTE"
  182. const m_AVAILABLE_MAC_OS_X_VERSION_10_5_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_2 = "DEPRECATED_ATTRIBUTE"
  183. const m_AVAILABLE_MAC_OS_X_VERSION_10_5_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_3 = "DEPRECATED_ATTRIBUTE"
  184. const m_AVAILABLE_MAC_OS_X_VERSION_10_5_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_4 = "DEPRECATED_ATTRIBUTE"
  185. const m_AVAILABLE_MAC_OS_X_VERSION_10_5_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12 = "DEPRECATED_ATTRIBUTE"
  186. const m_AVAILABLE_MAC_OS_X_VERSION_10_5_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_1 = "DEPRECATED_ATTRIBUTE"
  187. const m_AVAILABLE_MAC_OS_X_VERSION_10_5_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_2 = "DEPRECATED_ATTRIBUTE"
  188. const m_AVAILABLE_MAC_OS_X_VERSION_10_5_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_4 = "DEPRECATED_ATTRIBUTE"
  189. const m_AVAILABLE_MAC_OS_X_VERSION_10_5_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_6 = "DEPRECATED_ATTRIBUTE"
  190. const m_AVAILABLE_MAC_OS_X_VERSION_10_5_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_7 = "DEPRECATED_ATTRIBUTE"
  191. const m_AVAILABLE_MAC_OS_X_VERSION_10_5_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_8 = "DEPRECATED_ATTRIBUTE"
  192. const m_AVAILABLE_MAC_OS_X_VERSION_10_5_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_9 = "DEPRECATED_ATTRIBUTE"
  193. const m_AVAILABLE_MAC_OS_X_VERSION_10_6_AND_LATER_BUT_DEPRECATED = "DEPRECATED_ATTRIBUTE"
  194. const m_AVAILABLE_MAC_OS_X_VERSION_10_6_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10 = "DEPRECATED_ATTRIBUTE"
  195. const m_AVAILABLE_MAC_OS_X_VERSION_10_6_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10_2 = "DEPRECATED_ATTRIBUTE"
  196. const m_AVAILABLE_MAC_OS_X_VERSION_10_6_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10_3 = "DEPRECATED_ATTRIBUTE"
  197. const m_AVAILABLE_MAC_OS_X_VERSION_10_6_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11 = "DEPRECATED_ATTRIBUTE"
  198. const m_AVAILABLE_MAC_OS_X_VERSION_10_6_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_2 = "DEPRECATED_ATTRIBUTE"
  199. const m_AVAILABLE_MAC_OS_X_VERSION_10_6_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_3 = "DEPRECATED_ATTRIBUTE"
  200. const m_AVAILABLE_MAC_OS_X_VERSION_10_6_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_4 = "DEPRECATED_ATTRIBUTE"
  201. const m_AVAILABLE_MAC_OS_X_VERSION_10_6_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12 = "DEPRECATED_ATTRIBUTE"
  202. const m_AVAILABLE_MAC_OS_X_VERSION_10_6_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_1 = "DEPRECATED_ATTRIBUTE"
  203. const m_AVAILABLE_MAC_OS_X_VERSION_10_6_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_2 = "DEPRECATED_ATTRIBUTE"
  204. const m_AVAILABLE_MAC_OS_X_VERSION_10_6_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_4 = "DEPRECATED_ATTRIBUTE"
  205. const m_AVAILABLE_MAC_OS_X_VERSION_10_6_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_13 = "DEPRECATED_ATTRIBUTE"
  206. const m_AVAILABLE_MAC_OS_X_VERSION_10_6_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_7 = "DEPRECATED_ATTRIBUTE"
  207. const m_AVAILABLE_MAC_OS_X_VERSION_10_6_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_8 = "DEPRECATED_ATTRIBUTE"
  208. const m_AVAILABLE_MAC_OS_X_VERSION_10_6_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_9 = "DEPRECATED_ATTRIBUTE"
  209. const m_AVAILABLE_MAC_OS_X_VERSION_10_7_AND_LATER_BUT_DEPRECATED = "DEPRECATED_ATTRIBUTE"
  210. const m_AVAILABLE_MAC_OS_X_VERSION_10_7_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10 = "DEPRECATED_ATTRIBUTE"
  211. const m_AVAILABLE_MAC_OS_X_VERSION_10_7_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10_2 = "DEPRECATED_ATTRIBUTE"
  212. const m_AVAILABLE_MAC_OS_X_VERSION_10_7_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10_3 = "DEPRECATED_ATTRIBUTE"
  213. const m_AVAILABLE_MAC_OS_X_VERSION_10_7_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11 = "DEPRECATED_ATTRIBUTE"
  214. const m_AVAILABLE_MAC_OS_X_VERSION_10_7_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_2 = "DEPRECATED_ATTRIBUTE"
  215. const m_AVAILABLE_MAC_OS_X_VERSION_10_7_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_3 = "DEPRECATED_ATTRIBUTE"
  216. const m_AVAILABLE_MAC_OS_X_VERSION_10_7_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_4 = "DEPRECATED_ATTRIBUTE"
  217. const m_AVAILABLE_MAC_OS_X_VERSION_10_7_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12 = "DEPRECATED_ATTRIBUTE"
  218. const m_AVAILABLE_MAC_OS_X_VERSION_10_7_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_1 = "DEPRECATED_ATTRIBUTE"
  219. const m_AVAILABLE_MAC_OS_X_VERSION_10_7_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_2 = "DEPRECATED_ATTRIBUTE"
  220. const m_AVAILABLE_MAC_OS_X_VERSION_10_7_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_4 = "DEPRECATED_ATTRIBUTE"
  221. const m_AVAILABLE_MAC_OS_X_VERSION_10_7_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_8 = "DEPRECATED_ATTRIBUTE"
  222. const m_AVAILABLE_MAC_OS_X_VERSION_10_7_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_9 = "DEPRECATED_ATTRIBUTE"
  223. const m_AVAILABLE_MAC_OS_X_VERSION_10_8_AND_LATER_BUT_DEPRECATED = "DEPRECATED_ATTRIBUTE"
  224. const m_AVAILABLE_MAC_OS_X_VERSION_10_8_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10 = "DEPRECATED_ATTRIBUTE"
  225. const m_AVAILABLE_MAC_OS_X_VERSION_10_8_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10_2 = "DEPRECATED_ATTRIBUTE"
  226. const m_AVAILABLE_MAC_OS_X_VERSION_10_8_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10_3 = "DEPRECATED_ATTRIBUTE"
  227. const m_AVAILABLE_MAC_OS_X_VERSION_10_8_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11 = "DEPRECATED_ATTRIBUTE"
  228. const m_AVAILABLE_MAC_OS_X_VERSION_10_8_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_2 = "DEPRECATED_ATTRIBUTE"
  229. const m_AVAILABLE_MAC_OS_X_VERSION_10_8_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_3 = "DEPRECATED_ATTRIBUTE"
  230. const m_AVAILABLE_MAC_OS_X_VERSION_10_8_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_4 = "DEPRECATED_ATTRIBUTE"
  231. const m_AVAILABLE_MAC_OS_X_VERSION_10_8_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12 = "DEPRECATED_ATTRIBUTE"
  232. const m_AVAILABLE_MAC_OS_X_VERSION_10_8_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_1 = "DEPRECATED_ATTRIBUTE"
  233. const m_AVAILABLE_MAC_OS_X_VERSION_10_8_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_2 = "DEPRECATED_ATTRIBUTE"
  234. const m_AVAILABLE_MAC_OS_X_VERSION_10_8_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_4 = "DEPRECATED_ATTRIBUTE"
  235. const m_AVAILABLE_MAC_OS_X_VERSION_10_8_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_9 = "DEPRECATED_ATTRIBUTE"
  236. const m_AVAILABLE_MAC_OS_X_VERSION_10_9_AND_LATER_BUT_DEPRECATED = "DEPRECATED_ATTRIBUTE"
  237. const m_AVAILABLE_MAC_OS_X_VERSION_10_9_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10 = "DEPRECATED_ATTRIBUTE"
  238. const m_AVAILABLE_MAC_OS_X_VERSION_10_9_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10_2 = "DEPRECATED_ATTRIBUTE"
  239. const m_AVAILABLE_MAC_OS_X_VERSION_10_9_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10_3 = "DEPRECATED_ATTRIBUTE"
  240. const m_AVAILABLE_MAC_OS_X_VERSION_10_9_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11 = "DEPRECATED_ATTRIBUTE"
  241. const m_AVAILABLE_MAC_OS_X_VERSION_10_9_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_2 = "DEPRECATED_ATTRIBUTE"
  242. const m_AVAILABLE_MAC_OS_X_VERSION_10_9_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_3 = "DEPRECATED_ATTRIBUTE"
  243. const m_AVAILABLE_MAC_OS_X_VERSION_10_9_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_4 = "DEPRECATED_ATTRIBUTE"
  244. const m_AVAILABLE_MAC_OS_X_VERSION_10_9_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12 = "DEPRECATED_ATTRIBUTE"
  245. const m_AVAILABLE_MAC_OS_X_VERSION_10_9_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_1 = "DEPRECATED_ATTRIBUTE"
  246. const m_AVAILABLE_MAC_OS_X_VERSION_10_9_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_2 = "DEPRECATED_ATTRIBUTE"
  247. const m_AVAILABLE_MAC_OS_X_VERSION_10_9_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_4 = "DEPRECATED_ATTRIBUTE"
  248. const m_Above = 0
  249. const m_AllTemporary = 0
  250. const m_AllValues = 0x000F
  251. const m_AllocAll = 1
  252. const m_AllocNone = 0
  253. const m_AllowExposures = 1
  254. const m_AlreadyGrabbed = 1
  255. const m_Always = 2
  256. const m_AnyButton = 0
  257. const m_AnyKey = 0
  258. const m_AnyPropertyType = 0
  259. const m_ArcChord = 0
  260. const m_ArcPieSlice = 1
  261. const m_AsyncBoth = 6
  262. const m_AsyncKeyboard = 3
  263. const m_AsyncPointer = 0
  264. const m_AutoRepeatModeDefault = 2
  265. const m_AutoRepeatModeOff = 0
  266. const m_AutoRepeatModeOn = 1
  267. const m_BADSIG = "SIG_ERR"
  268. const m_BIG_ENDIAN = "__DARWIN_BIG_ENDIAN"
  269. const m_BUFSIZ = 1024
  270. const m_BUFSIZE = 2048
  271. const m_BUS_ADRALN = 1
  272. const m_BUS_ADRERR = 2
  273. const m_BUS_NOOP = 0
  274. const m_BUS_OBJERR = 3
  275. const m_BYTE_ORDER = "__DARWIN_BYTE_ORDER"
  276. const m_BadAccess = 10
  277. const m_BadAlloc = 11
  278. const m_BadAtom = 5
  279. const m_BadColor = 12
  280. const m_BadCursor = 6
  281. const m_BadDrawable = 9
  282. const m_BadFont = 7
  283. const m_BadGC = 13
  284. const m_BadGlyph = 4
  285. const m_BadGlyphSet = 3
  286. const m_BadIDChoice = 14
  287. const m_BadImplementation = 17
  288. const m_BadLength = 16
  289. const m_BadMatch = 8
  290. const m_BadName = 15
  291. const m_BadPictFormat = 0
  292. const m_BadPictOp = 2
  293. const m_BadPicture = 1
  294. const m_BadPixmap = 4
  295. const m_BadRequest = 1
  296. const m_BadValue = 2
  297. const m_BadWindow = 3
  298. const m_Below = 1
  299. const m_BitmapFileInvalid = 2
  300. const m_BitmapNoMemory = 3
  301. const m_BitmapOpenFailed = 1
  302. const m_BitmapSuccess = 0
  303. const m_Bool = "int"
  304. const m_BottomIf = 3
  305. const m_Button1 = 1
  306. const m_Button2 = 2
  307. const m_Button3 = 3
  308. const m_Button4 = 4
  309. const m_Button5 = 5
  310. const m_ButtonPress = 4
  311. const m_ButtonRelease = 5
  312. const m_CFF_CONFIG_OPTION_DARKENING_PARAMETER_X1 = 500
  313. const m_CFF_CONFIG_OPTION_DARKENING_PARAMETER_X2 = 1000
  314. const m_CFF_CONFIG_OPTION_DARKENING_PARAMETER_X3 = 1667
  315. const m_CFF_CONFIG_OPTION_DARKENING_PARAMETER_X4 = 2333
  316. const m_CFF_CONFIG_OPTION_DARKENING_PARAMETER_Y1 = 400
  317. const m_CFF_CONFIG_OPTION_DARKENING_PARAMETER_Y2 = 275
  318. const m_CFF_CONFIG_OPTION_DARKENING_PARAMETER_Y3 = 275
  319. const m_CFF_CONFIG_OPTION_DARKENING_PARAMETER_Y4 = 0
  320. const m_CLD_CONTINUED = 6
  321. const m_CLD_DUMPED = 3
  322. const m_CLD_EXITED = 1
  323. const m_CLD_KILLED = 2
  324. const m_CLD_NOOP = 0
  325. const m_CLD_STOPPED = 5
  326. const m_CLD_TRAPPED = 4
  327. const m_CLOCK_MONOTONIC = "_CLOCK_MONOTONIC"
  328. const m_CLOCK_MONOTONIC_RAW = "_CLOCK_MONOTONIC_RAW"
  329. const m_CLOCK_MONOTONIC_RAW_APPROX = "_CLOCK_MONOTONIC_RAW_APPROX"
  330. const m_CLOCK_PROCESS_CPUTIME_ID = "_CLOCK_PROCESS_CPUTIME_ID"
  331. const m_CLOCK_REALTIME = "_CLOCK_REALTIME"
  332. const m_CLOCK_THREAD_CPUTIME_ID = "_CLOCK_THREAD_CPUTIME_ID"
  333. const m_CLOCK_UPTIME_RAW = "_CLOCK_UPTIME_RAW"
  334. const m_CLOCK_UPTIME_RAW_APPROX = "_CLOCK_UPTIME_RAW_APPROX"
  335. const m_CPLastBit = 12
  336. const m_CPUMON_MAKE_FATAL = 0x1000
  337. const m_CURSORFONT = "cursor"
  338. const m_CapButt = 1
  339. const m_CapNotLast = 0
  340. const m_CapProjecting = 3
  341. const m_CapRound = 2
  342. const m_CenterGravity = 5
  343. const m_CirculateNotify = 26
  344. const m_CirculateRequest = 27
  345. const m_ClientMessage = 33
  346. const m_ClipByChildren = 0
  347. const m_ColormapInstalled = 1
  348. const m_ColormapNotify = 32
  349. const m_ColormapUninstalled = 0
  350. const m_Complex = 0
  351. const m_ConfigureNotify = 22
  352. const m_ConfigureRequest = 23
  353. const m_ControlMapIndex = 2
  354. const m_Convex = 2
  355. const m_CoordModeOrigin = 0
  356. const m_CoordModePrevious = 1
  357. const m_CopyFromParent = 0
  358. const m_CreateNotify = 16
  359. const m_CurrentTime = 0
  360. const m_CursorShape = 0
  361. const m_DEPRECATED_IN_MAC_OS_X_VERSION_10_0_AND_LATER = "DEPRECATED_ATTRIBUTE"
  362. const m_DEPRECATED_IN_MAC_OS_X_VERSION_10_10_AND_LATER = "DEPRECATED_ATTRIBUTE"
  363. const m_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_AND_LATER = "DEPRECATED_ATTRIBUTE"
  364. const m_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_AND_LATER = "DEPRECATED_ATTRIBUTE"
  365. const m_DEPRECATED_IN_MAC_OS_X_VERSION_10_13_AND_LATER = "DEPRECATED_ATTRIBUTE"
  366. const m_DEPRECATED_IN_MAC_OS_X_VERSION_10_14_4_AND_LATER = "DEPRECATED_ATTRIBUTE"
  367. const m_DEPRECATED_IN_MAC_OS_X_VERSION_10_1_AND_LATER = "DEPRECATED_ATTRIBUTE"
  368. const m_DEPRECATED_IN_MAC_OS_X_VERSION_10_2_AND_LATER = "DEPRECATED_ATTRIBUTE"
  369. const m_DEPRECATED_IN_MAC_OS_X_VERSION_10_3_AND_LATER = "DEPRECATED_ATTRIBUTE"
  370. const m_DEPRECATED_IN_MAC_OS_X_VERSION_10_4_AND_LATER = "DEPRECATED_ATTRIBUTE"
  371. const m_DEPRECATED_IN_MAC_OS_X_VERSION_10_5_AND_LATER = "DEPRECATED_ATTRIBUTE"
  372. const m_DEPRECATED_IN_MAC_OS_X_VERSION_10_6_AND_LATER = "DEPRECATED_ATTRIBUTE"
  373. const m_DEPRECATED_IN_MAC_OS_X_VERSION_10_7_AND_LATER = "DEPRECATED_ATTRIBUTE"
  374. const m_DEPRECATED_IN_MAC_OS_X_VERSION_10_8_AND_LATER = "DEPRECATED_ATTRIBUTE"
  375. const m_DEPRECATED_IN_MAC_OS_X_VERSION_10_9_AND_LATER = "DEPRECATED_ATTRIBUTE"
  376. const m_DefaultBlanking = 2
  377. const m_DefaultExposures = 2
  378. const m_DestroyAll = 0
  379. const m_DestroyNotify = 17
  380. const m_DirectColor = 5
  381. const m_DisableAccess = 0
  382. const m_DisableScreenInterval = 0
  383. const m_DisableScreenSaver = 0
  384. const m_DontAllowExposures = 0
  385. const m_DontCareState = 0
  386. const m_DontPreferBlanking = 0
  387. const m_E2BIG = 7
  388. const m_EACCES = 13
  389. const m_EADDRINUSE = 48
  390. const m_EADDRNOTAVAIL = 49
  391. const m_EAFNOSUPPORT = 47
  392. const m_EAGAIN = 35
  393. const m_EALREADY = 37
  394. const m_EAUTH = 80
  395. const m_EBADARCH = 86
  396. const m_EBADEXEC = 85
  397. const m_EBADF = 9
  398. const m_EBADMACHO = 88
  399. const m_EBADMSG = 94
  400. const m_EBADRPC = 72
  401. const m_EBUSY = 16
  402. const m_ECANCELED = 89
  403. const m_ECHILD = 10
  404. const m_ECONNABORTED = 53
  405. const m_ECONNREFUSED = 61
  406. const m_ECONNRESET = 54
  407. const m_EDEADLK = 11
  408. const m_EDESTADDRREQ = 39
  409. const m_EDEVERR = 83
  410. const m_EDOM = 33
  411. const m_EDQUOT = 69
  412. const m_EEXIST = 17
  413. const m_EFAULT = 14
  414. const m_EFBIG = 27
  415. const m_EFTYPE = 79
  416. const m_EF_IS_PURGEABLE = 0x00000008
  417. const m_EF_IS_SPARSE = 0x00000010
  418. const m_EF_IS_SYNC_ROOT = 0x00000004
  419. const m_EF_IS_SYNTHETIC = 0x00000020
  420. const m_EF_MAY_SHARE_BLOCKS = 0x00000001
  421. const m_EF_NO_XATTRS = 0x00000002
  422. const m_EF_SHARES_ALL_BLOCKS = 0x00000040
  423. const m_EHOSTDOWN = 64
  424. const m_EHOSTUNREACH = 65
  425. const m_EIDRM = 90
  426. const m_EILSEQ = 92
  427. const m_EINPROGRESS = 36
  428. const m_EINTR = 4
  429. const m_EINVAL = 22
  430. const m_EIO = 5
  431. const m_EISCONN = 56
  432. const m_EISDIR = 21
  433. const m_ELAST = 106
  434. const m_ELOOP = 62
  435. const m_EMFILE = 24
  436. const m_EMLINK = 31
  437. const m_EMSGSIZE = 40
  438. const m_EMULTIHOP = 95
  439. const m_ENAMETOOLONG = 63
  440. const m_ENEEDAUTH = 81
  441. const m_ENETDOWN = 50
  442. const m_ENETRESET = 52
  443. const m_ENETUNREACH = 51
  444. const m_ENFILE = 23
  445. const m_ENOATTR = 93
  446. const m_ENOBUFS = 55
  447. const m_ENODATA = 96
  448. const m_ENODEV = 19
  449. const m_ENOENT = 2
  450. const m_ENOEXEC = 8
  451. const m_ENOLCK = 77
  452. const m_ENOLINK = 97
  453. const m_ENOMEM = 12
  454. const m_ENOMSG = 91
  455. const m_ENOPOLICY = 103
  456. const m_ENOPROTOOPT = 42
  457. const m_ENOSPC = 28
  458. const m_ENOSR = 98
  459. const m_ENOSTR = 99
  460. const m_ENOSYS = 78
  461. const m_ENOTBLK = 15
  462. const m_ENOTCONN = 57
  463. const m_ENOTDIR = 20
  464. const m_ENOTEMPTY = 66
  465. const m_ENOTRECOVERABLE = 104
  466. const m_ENOTSOCK = 38
  467. const m_ENOTSUP = 45
  468. const m_ENOTTY = 25
  469. const m_ENXIO = 6
  470. const m_EOPNOTSUPP = 102
  471. const m_EOVERFLOW = 84
  472. const m_EOWNERDEAD = 105
  473. const m_EPERM = 1
  474. const m_EPFNOSUPPORT = 46
  475. const m_EPIPE = 32
  476. const m_EPROCLIM = 67
  477. const m_EPROCUNAVAIL = 76
  478. const m_EPROGMISMATCH = 75
  479. const m_EPROGUNAVAIL = 74
  480. const m_EPROTO = 100
  481. const m_EPROTONOSUPPORT = 43
  482. const m_EPROTOTYPE = 41
  483. const m_EPWROFF = 82
  484. const m_EQFULL = 106
  485. const m_ERANGE = 34
  486. const m_EREMOTE = 71
  487. const m_EROFS = 30
  488. const m_ERPCMISMATCH = 73
  489. const m_ESHLIBVERS = 87
  490. const m_ESHUTDOWN = 58
  491. const m_ESOCKTNOSUPPORT = 44
  492. const m_ESPIPE = 29
  493. const m_ESRCH = 3
  494. const m_ESTALE = 70
  495. const m_ETIME = 101
  496. const m_ETIMEDOUT = 60
  497. const m_ETOOMANYREFS = 59
  498. const m_ETXTBSY = 26
  499. const m_EUSERS = 68
  500. const m_EWOULDBLOCK = "EAGAIN"
  501. const m_EXDEV = 18
  502. const m_EXIT_FAILURE = 1
  503. const m_EXIT_SUCCESS = 0
  504. const m_EastGravity = 6
  505. const m_EnableAccess = 1
  506. const m_EnterNotify = 7
  507. const m_EvenOddRule = 0
  508. const m_Expose = 12
  509. const m_FARCSPERBATCH = 256
  510. const m_FC_ANTIALIAS = "antialias"
  511. const m_FC_ASPECT = "aspect"
  512. const m_FC_AUTOHINT = "autohint"
  513. const m_FC_CACHE_VERSION_NUMBER = 8
  514. const m_FC_CAPABILITY = "capability"
  515. const m_FC_CHARCELL = 110
  516. const m_FC_CHARSET = "charset"
  517. const m_FC_CHARWIDTH = "charwidth"
  518. const m_FC_CHAR_HEIGHT = "charheight"
  519. const m_FC_CHAR_WIDTH = "FC_CHARWIDTH"
  520. const m_FC_COLOR = "color"
  521. const m_FC_DECORATIVE = "decorative"
  522. const m_FC_DPI = "dpi"
  523. const m_FC_DUAL = 90
  524. const m_FC_EMBEDDED_BITMAP = "embeddedbitmap"
  525. const m_FC_EMBOLDEN = "embolden"
  526. const m_FC_FAMILY = "family"
  527. const m_FC_FAMILYLANG = "familylang"
  528. const m_FC_FILE = "file"
  529. const m_FC_FONTFORMAT = "fontformat"
  530. const m_FC_FONTVERSION = "fontversion"
  531. const m_FC_FONT_FEATURES = "fontfeatures"
  532. const m_FC_FONT_HAS_HINT = "fonthashint"
  533. const m_FC_FONT_VARIATIONS = "fontvariations"
  534. const m_FC_FOUNDRY = "foundry"
  535. const m_FC_FT_FACE = "ftface"
  536. const m_FC_FULLNAME = "fullname"
  537. const m_FC_FULLNAMELANG = "fullnamelang"
  538. const m_FC_GLOBAL_ADVANCE = "globaladvance"
  539. const m_FC_HASH = "hash"
  540. const m_FC_HINTING = "hinting"
  541. const m_FC_HINT_FULL = 3
  542. const m_FC_HINT_MEDIUM = 2
  543. const m_FC_HINT_NONE = 0
  544. const m_FC_HINT_SLIGHT = 1
  545. const m_FC_HINT_STYLE = "hintstyle"
  546. const m_FC_INDEX = "index"
  547. const m_FC_LANG = "lang"
  548. const m_FC_LCD_DEFAULT = 1
  549. const m_FC_LCD_FILTER = "lcdfilter"
  550. const m_FC_LCD_LEGACY = 3
  551. const m_FC_LCD_LIGHT = 2
  552. const m_FC_LCD_NONE = 0
  553. const m_FC_MAJOR = 2
  554. const m_FC_MATRIX = "matrix"
  555. const m_FC_MINOR = 14
  556. const m_FC_MINSPACE = "minspace"
  557. const m_FC_MONO = 100
  558. const m_FC_NAMELANG = "namelang"
  559. const m_FC_ORDER = "order"
  560. const m_FC_OUTLINE = "outline"
  561. const m_FC_PIXEL_SIZE = "pixelsize"
  562. const m_FC_POSTSCRIPT_NAME = "postscriptname"
  563. const m_FC_PRGNAME = "prgname"
  564. const m_FC_PROPORTIONAL = 0
  565. const m_FC_RASTERIZER = "rasterizer"
  566. const m_FC_REVISION = 1
  567. const m_FC_RGBA = "rgba"
  568. const m_FC_RGBA_BGR = 2
  569. const m_FC_RGBA_NONE = 5
  570. const m_FC_RGBA_RGB = 1
  571. const m_FC_RGBA_UNKNOWN = 0
  572. const m_FC_RGBA_VBGR = 4
  573. const m_FC_RGBA_VRGB = 3
  574. const m_FC_SCALABLE = "scalable"
  575. const m_FC_SCALE = "scale"
  576. const m_FC_SIZE = "size"
  577. const m_FC_SLANT = "slant"
  578. const m_FC_SLANT_ITALIC = 100
  579. const m_FC_SLANT_OBLIQUE = 110
  580. const m_FC_SLANT_ROMAN = 0
  581. const m_FC_SOURCE = "source"
  582. const m_FC_SPACING = "spacing"
  583. const m_FC_STYLE = "style"
  584. const m_FC_STYLELANG = "stylelang"
  585. const m_FC_SYMBOL = "symbol"
  586. const m_FC_UTF8_MAX_LEN = 6
  587. const m_FC_VARIABLE = "variable"
  588. const m_FC_VERTICAL_LAYOUT = "verticallayout"
  589. const m_FC_WEIGHT = "weight"
  590. const m_FC_WEIGHT_BLACK = 210
  591. const m_FC_WEIGHT_BOLD = 200
  592. const m_FC_WEIGHT_BOOK = 75
  593. const m_FC_WEIGHT_DEMIBOLD = 180
  594. const m_FC_WEIGHT_DEMILIGHT = 55
  595. const m_FC_WEIGHT_EXTRABLACK = 215
  596. const m_FC_WEIGHT_EXTRABOLD = 205
  597. const m_FC_WEIGHT_EXTRALIGHT = 40
  598. const m_FC_WEIGHT_HEAVY = "FC_WEIGHT_BLACK"
  599. const m_FC_WEIGHT_LIGHT = 50
  600. const m_FC_WEIGHT_MEDIUM = 100
  601. const m_FC_WEIGHT_NORMAL = "FC_WEIGHT_REGULAR"
  602. const m_FC_WEIGHT_REGULAR = 80
  603. const m_FC_WEIGHT_SEMIBOLD = "FC_WEIGHT_DEMIBOLD"
  604. const m_FC_WEIGHT_SEMILIGHT = "FC_WEIGHT_DEMILIGHT"
  605. const m_FC_WEIGHT_THIN = 0
  606. const m_FC_WEIGHT_ULTRABLACK = "FC_WEIGHT_EXTRABLACK"
  607. const m_FC_WEIGHT_ULTRABOLD = "FC_WEIGHT_EXTRABOLD"
  608. const m_FC_WEIGHT_ULTRALIGHT = "FC_WEIGHT_EXTRALIGHT"
  609. const m_FC_WIDTH = "width"
  610. const m_FC_WIDTH_CONDENSED = 75
  611. const m_FC_WIDTH_EXPANDED = 125
  612. const m_FC_WIDTH_EXTRACONDENSED = 63
  613. const m_FC_WIDTH_EXTRAEXPANDED = 150
  614. const m_FC_WIDTH_NORMAL = 100
  615. const m_FC_WIDTH_SEMICONDENSED = 87
  616. const m_FC_WIDTH_SEMIEXPANDED = 113
  617. const m_FC_WIDTH_ULTRACONDENSED = 50
  618. const m_FC_WIDTH_ULTRAEXPANDED = 200
  619. const m_FD_SETSIZE = "__DARWIN_FD_SETSIZE"
  620. const m_FILENAME_MAX = 1024
  621. const m_FOOTPRINT_INTERVAL_RESET = 0x1
  622. const m_FOPEN_MAX = 20
  623. const m_FPE_FLTDIV = 1
  624. const m_FPE_FLTINV = 5
  625. const m_FPE_FLTOVF = 2
  626. const m_FPE_FLTRES = 4
  627. const m_FPE_FLTSUB = 6
  628. const m_FPE_FLTUND = 3
  629. const m_FPE_INTDIV = 7
  630. const m_FPE_INTOVF = 8
  631. const m_FPE_NOOP = 0
  632. const m_FP_CHOP = 3
  633. const m_FP_PREC_24B = 0
  634. const m_FP_PREC_53B = 2
  635. const m_FP_PREC_64B = 3
  636. const m_FP_RND_DOWN = 1
  637. const m_FP_RND_NEAR = 0
  638. const m_FP_RND_UP = 2
  639. const m_FP_STATE_BYTES = 512
  640. const m_FRCTSPERBATCH = 256
  641. const m_FREETYPE_MAJOR = 2
  642. const m_FREETYPE_MINOR = 10
  643. const m_FREETYPE_PATCH = 4
  644. const m_FT_AUTOHINTER_H = "FT_DRIVER_H"
  645. const m_FT_CACHE_CHARMAP_H = "FT_CACHE_H"
  646. const m_FT_CACHE_IMAGE_H = "FT_CACHE_H"
  647. const m_FT_CACHE_INTERNAL_CACHE_H = "FT_CACHE_H"
  648. const m_FT_CACHE_INTERNAL_GLYPH_H = "FT_CACHE_H"
  649. const m_FT_CACHE_INTERNAL_IMAGE_H = "FT_CACHE_H"
  650. const m_FT_CACHE_INTERNAL_MANAGER_H = "FT_CACHE_H"
  651. const m_FT_CACHE_INTERNAL_MRU_H = "FT_CACHE_H"
  652. const m_FT_CACHE_INTERNAL_SBITS_H = "FT_CACHE_H"
  653. const m_FT_CACHE_MANAGER_H = "FT_CACHE_H"
  654. const m_FT_CACHE_SMALL_BITMAPS_H = "FT_CACHE_H"
  655. const m_FT_CFF_DRIVER_H = "FT_DRIVER_H"
  656. const m_FT_CHAR_BIT = "CHAR_BIT"
  657. const m_FT_CURVE_TAG_CONIC = 0x00
  658. const m_FT_CURVE_TAG_CUBIC = 0x02
  659. const m_FT_CURVE_TAG_HAS_SCANMODE = 0x04
  660. const m_FT_CURVE_TAG_ON = 0x01
  661. const m_FT_CURVE_TAG_TOUCH_X = 0x08
  662. const m_FT_CURVE_TAG_TOUCH_Y = 0x10
  663. const m_FT_Curve_Tag_Conic = "FT_CURVE_TAG_CONIC"
  664. const m_FT_Curve_Tag_Cubic = "FT_CURVE_TAG_CUBIC"
  665. const m_FT_Curve_Tag_On = "FT_CURVE_TAG_ON"
  666. const m_FT_Curve_Tag_Touch_X = "FT_CURVE_TAG_TOUCH_X"
  667. const m_FT_Curve_Tag_Touch_Y = "FT_CURVE_TAG_TOUCH_Y"
  668. const m_FT_FILE = "FILE"
  669. const m_FT_FSTYPE_BITMAP_EMBEDDING_ONLY = 0x0200
  670. const m_FT_FSTYPE_EDITABLE_EMBEDDING = 0x0008
  671. const m_FT_FSTYPE_INSTALLABLE_EMBEDDING = 0x0000
  672. const m_FT_FSTYPE_NO_SUBSETTING = 0x0100
  673. const m_FT_FSTYPE_PREVIEW_AND_PRINT_EMBEDDING = 0x0004
  674. const m_FT_FSTYPE_RESTRICTED_LICENSE_EMBEDDING = 0x0002
  675. const m_FT_INT64 = "long"
  676. const m_FT_INT_MAX = "INT_MAX"
  677. const m_FT_INT_MIN = "INT_MIN"
  678. const m_FT_LOAD_DEFAULT = 0x0
  679. const m_FT_LONG_MAX = "LONG_MAX"
  680. const m_FT_LONG_MIN = "LONG_MIN"
  681. const m_FT_MAX_MODULES = 32
  682. const m_FT_OPEN_DRIVER = 0x8
  683. const m_FT_OPEN_MEMORY = 0x1
  684. const m_FT_OPEN_PARAMS = 0x10
  685. const m_FT_OPEN_PATHNAME = 0x4
  686. const m_FT_OPEN_STREAM = 0x2
  687. const m_FT_OUTLINE_CONTOURS_MAX = "SHRT_MAX"
  688. const m_FT_OUTLINE_EVEN_ODD_FILL = 0x2
  689. const m_FT_OUTLINE_HIGH_PRECISION = 0x100
  690. const m_FT_OUTLINE_IGNORE_DROPOUTS = 0x8
  691. const m_FT_OUTLINE_INCLUDE_STUBS = 0x20
  692. const m_FT_OUTLINE_NONE = 0x0
  693. const m_FT_OUTLINE_OVERLAP = 0x40
  694. const m_FT_OUTLINE_OWNER = 0x1
  695. const m_FT_OUTLINE_POINTS_MAX = "SHRT_MAX"
  696. const m_FT_OUTLINE_REVERSE_FILL = 0x4
  697. const m_FT_OUTLINE_SINGLE_PASS = 0x200
  698. const m_FT_OUTLINE_SMART_DROPOUTS = 0x10
  699. const m_FT_Outline_ConicTo_Func = "FT_Outline_ConicToFunc"
  700. const m_FT_Outline_CubicTo_Func = "FT_Outline_CubicToFunc"
  701. const m_FT_Outline_LineTo_Func = "FT_Outline_LineToFunc"
  702. const m_FT_Outline_MoveTo_Func = "FT_Outline_MoveToFunc"
  703. const m_FT_PCF_DRIVER_H = "FT_DRIVER_H"
  704. const m_FT_RASTER_FLAG_AA = 0x1
  705. const m_FT_RASTER_FLAG_CLIP = 0x4
  706. const m_FT_RASTER_FLAG_DEFAULT = 0x0
  707. const m_FT_RASTER_FLAG_DIRECT = 0x2
  708. const m_FT_RENDER_POOL_SIZE = 16384
  709. const m_FT_Raster_Done_Func = "FT_Raster_DoneFunc"
  710. const m_FT_Raster_New_Func = "FT_Raster_NewFunc"
  711. const m_FT_Raster_Render_Func = "FT_Raster_RenderFunc"
  712. const m_FT_Raster_Reset_Func = "FT_Raster_ResetFunc"
  713. const m_FT_Raster_Set_Mode_Func = "FT_Raster_SetModeFunc"
  714. const m_FT_Raster_Span_Func = "FT_SpanFunc"
  715. const m_FT_SUBGLYPH_FLAG_2X2 = 0x80
  716. const m_FT_SUBGLYPH_FLAG_ARGS_ARE_WORDS = 1
  717. const m_FT_SUBGLYPH_FLAG_ARGS_ARE_XY_VALUES = 2
  718. const m_FT_SUBGLYPH_FLAG_ROUND_XY_TO_GRID = 4
  719. const m_FT_SUBGLYPH_FLAG_SCALE = 8
  720. const m_FT_SUBGLYPH_FLAG_USE_MY_METRICS = 0x200
  721. const m_FT_SUBGLYPH_FLAG_XY_SCALE = 0x40
  722. const m_FT_TRUETYPE_DRIVER_H = "FT_DRIVER_H"
  723. const m_FT_UINT_MAX = "UINT_MAX"
  724. const m_FT_ULONG_MAX = "ULONG_MAX"
  725. const m_FT_USHORT_MAX = "USHRT_MAX"
  726. const m_FT_XFREE86_H = "FT_FONT_FORMATS_H"
  727. const m_FUNCPROTO = 15
  728. const m_False = 0
  729. const m_FamilyChaos = 2
  730. const m_FamilyDECnet = 1
  731. const m_FamilyInternet = 0
  732. const m_FamilyInternet6 = 6
  733. const m_FamilyServerInterpreted = 5
  734. const m_FcConfigGetRescanInverval = "FcConfigGetRescanInverval_REPLACE_BY_FcConfigGetRescanInterval"
  735. const m_FcConfigSetRescanInverval = "FcConfigSetRescanInverval_REPLACE_BY_FcConfigSetRescanInterval"
  736. const m_FcDontCare = 2
  737. const m_FcFalse = 0
  738. const m_FcTrue = 1
  739. const m_FillOpaqueStippled = 3
  740. const m_FillSolid = 0
  741. const m_FillStippled = 2
  742. const m_FillTiled = 1
  743. const m_FilterBest = "best"
  744. const m_FilterBilinear = "bilinear"
  745. const m_FilterConvolution = "convolution"
  746. const m_FilterFast = "fast"
  747. const m_FilterGood = "good"
  748. const m_FilterNearest = "nearest"
  749. const m_FirstExtensionError = 128
  750. const m_FocusIn = 9
  751. const m_FocusOut = 10
  752. const m_FontChange = 255
  753. const m_FontLeftToRight = 0
  754. const m_FontRightToLeft = 1
  755. const m_ForgetGravity = 0
  756. const m_GCLastBit = 22
  757. const m_GXand = 0x1
  758. const m_GXandInverted = 0x4
  759. const m_GXandReverse = 0x2
  760. const m_GXclear = 0x0
  761. const m_GXcopy = 0x3
  762. const m_GXcopyInverted = 0xc
  763. const m_GXequiv = 0x9
  764. const m_GXinvert = 0xa
  765. const m_GXnand = 0xe
  766. const m_GXnoop = 0x5
  767. const m_GXnor = 0x8
  768. const m_GXor = 0x7
  769. const m_GXorInverted = 0xd
  770. const m_GXorReverse = 0xb
  771. const m_GXset = 0xf
  772. const m_GXxor = 0x6
  773. const m_GenericEvent = 35
  774. const m_GrabFrozen = 4
  775. const m_GrabInvalidTime = 2
  776. const m_GrabModeAsync = 1
  777. const m_GrabModeSync = 0
  778. const m_GrabNotViewable = 3
  779. const m_GrabSuccess = 0
  780. const m_GraphicsExpose = 13
  781. const m_GravityNotify = 24
  782. const m_GrayScale = 1
  783. const m_HAVE_CONFIG_H = 1
  784. const m_HAVE_DLFCN_H = 1
  785. const m_HAVE_INTTYPES_H = 1
  786. const m_HAVE_STDINT_H = 1
  787. const m_HAVE_STDIO_H = 1
  788. const m_HAVE_STDLIB_H = 1
  789. const m_HAVE_STRINGS_H = 1
  790. const m_HAVE_STRING_H = 1
  791. const m_HAVE_SYS_STAT_H = 1
  792. const m_HAVE_SYS_TYPES_H = 1
  793. const m_HAVE_UNISTD_H = 1
  794. const m_HeightValue = 0x0008
  795. const m_HostDelete = 1
  796. const m_HostInsert = 0
  797. const m_ILL_BADSTK = 8
  798. const m_ILL_COPROC = 7
  799. const m_ILL_ILLADR = 5
  800. const m_ILL_ILLOPC = 1
  801. const m_ILL_ILLOPN = 4
  802. const m_ILL_ILLTRP = 2
  803. const m_ILL_NOOP = 0
  804. const m_ILL_PRVOPC = 3
  805. const m_ILL_PRVREG = 6
  806. const m_INTMAX_MAX = "__INTMAX_MAX__"
  807. const m_INTPTR_MAX = "__INTPTR_MAX__"
  808. const m_INT_FAST16_MAX = "__INT_LEAST16_MAX"
  809. const m_INT_FAST16_MIN = "__INT_LEAST16_MIN"
  810. const m_INT_FAST32_MAX = "__INT_LEAST32_MAX"
  811. const m_INT_FAST32_MIN = "__INT_LEAST32_MIN"
  812. const m_INT_FAST64_MAX = "__INT_LEAST64_MAX"
  813. const m_INT_FAST64_MIN = "__INT_LEAST64_MIN"
  814. const m_INT_FAST8_MAX = "__INT_LEAST8_MAX"
  815. const m_INT_FAST8_MIN = "__INT_LEAST8_MIN"
  816. const m_INT_LEAST16_MAX = "__INT_LEAST16_MAX"
  817. const m_INT_LEAST16_MIN = "__INT_LEAST16_MIN"
  818. const m_INT_LEAST32_MAX = "__INT_LEAST32_MAX"
  819. const m_INT_LEAST32_MIN = "__INT_LEAST32_MIN"
  820. const m_INT_LEAST64_MAX = "__INT_LEAST64_MAX"
  821. const m_INT_LEAST64_MIN = "__INT_LEAST64_MIN"
  822. const m_INT_LEAST8_MAX = "__INT_LEAST8_MAX"
  823. const m_INT_LEAST8_MIN = "__INT_LEAST8_MIN"
  824. const m_IOPOL_APPLICATION = "IOPOL_STANDARD"
  825. const m_IOPOL_ATIME_UPDATES_DEFAULT = 0
  826. const m_IOPOL_ATIME_UPDATES_OFF = 1
  827. const m_IOPOL_DEFAULT = 0
  828. const m_IOPOL_IMPORTANT = 1
  829. const m_IOPOL_MATERIALIZE_DATALESS_FILES_DEFAULT = 0
  830. const m_IOPOL_MATERIALIZE_DATALESS_FILES_OFF = 1
  831. const m_IOPOL_MATERIALIZE_DATALESS_FILES_ON = 2
  832. const m_IOPOL_NORMAL = "IOPOL_IMPORTANT"
  833. const m_IOPOL_PASSIVE = 2
  834. const m_IOPOL_SCOPE_DARWIN_BG = 2
  835. const m_IOPOL_SCOPE_PROCESS = 0
  836. const m_IOPOL_SCOPE_THREAD = 1
  837. const m_IOPOL_STANDARD = 5
  838. const m_IOPOL_THROTTLE = 3
  839. const m_IOPOL_TYPE_DISK = 0
  840. const m_IOPOL_TYPE_VFS_ALLOW_LOW_SPACE_WRITES = 9
  841. const m_IOPOL_TYPE_VFS_ATIME_UPDATES = 2
  842. const m_IOPOL_TYPE_VFS_DISALLOW_RW_FOR_O_EVTONLY = 10
  843. const m_IOPOL_TYPE_VFS_IGNORE_CONTENT_PROTECTION = 6
  844. const m_IOPOL_TYPE_VFS_IGNORE_PERMISSIONS = 7
  845. const m_IOPOL_TYPE_VFS_MATERIALIZE_DATALESS_FILES = 3
  846. const m_IOPOL_TYPE_VFS_SKIP_MTIME_UPDATE = 8
  847. const m_IOPOL_TYPE_VFS_STATFS_NO_DATA_VOLUME = 4
  848. const m_IOPOL_TYPE_VFS_TRIGGER_RESOLVE = 5
  849. const m_IOPOL_UTILITY = 4
  850. const m_IOPOL_VFS_ALLOW_LOW_SPACE_WRITES_OFF = 0
  851. const m_IOPOL_VFS_ALLOW_LOW_SPACE_WRITES_ON = 1
  852. const m_IOPOL_VFS_CONTENT_PROTECTION_DEFAULT = 0
  853. const m_IOPOL_VFS_CONTENT_PROTECTION_IGNORE = 1
  854. const m_IOPOL_VFS_DISALLOW_RW_FOR_O_EVTONLY_DEFAULT = 0
  855. const m_IOPOL_VFS_DISALLOW_RW_FOR_O_EVTONLY_ON = 1
  856. const m_IOPOL_VFS_IGNORE_PERMISSIONS_OFF = 0
  857. const m_IOPOL_VFS_IGNORE_PERMISSIONS_ON = 1
  858. const m_IOPOL_VFS_NOCACHE_WRITE_FS_BLKSIZE_DEFAULT = 0
  859. const m_IOPOL_VFS_NOCACHE_WRITE_FS_BLKSIZE_ON = 1
  860. const m_IOPOL_VFS_SKIP_MTIME_UPDATE_OFF = 0
  861. const m_IOPOL_VFS_SKIP_MTIME_UPDATE_ON = 1
  862. const m_IOPOL_VFS_STATFS_FORCE_NO_DATA_VOLUME = 1
  863. const m_IOPOL_VFS_STATFS_NO_DATA_VOLUME_DEFAULT = 0
  864. const m_IOPOL_VFS_TRIGGER_RESOLVE_DEFAULT = 0
  865. const m_IOPOL_VFS_TRIGGER_RESOLVE_OFF = 1
  866. const m_IconicState = 3
  867. const m_InactiveState = 4
  868. const m_IncludeInferiors = 1
  869. const m_InputFocus = 1
  870. const m_InputOnly = 2
  871. const m_InputOutput = 1
  872. const m_IsUnmapped = 0
  873. const m_IsUnviewable = 1
  874. const m_IsViewable = 2
  875. const m_JoinBevel = 2
  876. const m_JoinMiter = 0
  877. const m_JoinRound = 1
  878. const m_KeyPress = 2
  879. const m_KeyRelease = 3
  880. const m_KeymapNotify = 11
  881. const m_LASTEvent = 36
  882. const m_LITTLE_ENDIAN = "__DARWIN_LITTLE_ENDIAN"
  883. const m_LOCKED = 1
  884. const m_LSBFirst = 0
  885. const m_LT_OBJDIR = ".libs/"
  886. const m_L_ctermid = 1024
  887. const m_L_tmpnam = 1024
  888. const m_LastExtensionError = 255
  889. const m_LeaveNotify = 8
  890. const m_LedModeOff = 0
  891. const m_LedModeOn = 1
  892. const m_LineDoubleDash = 2
  893. const m_LineOnOffDash = 1
  894. const m_LineSolid = 0
  895. const m_LockMapIndex = 1
  896. const m_LowerHighest = 1
  897. const m_MAC_OS_VERSION_11_0 = "__MAC_11_0"
  898. const m_MAC_OS_VERSION_11_1 = "__MAC_11_1"
  899. const m_MAC_OS_VERSION_11_3 = "__MAC_11_3"
  900. const m_MAC_OS_VERSION_11_4 = "__MAC_11_4"
  901. const m_MAC_OS_VERSION_11_5 = "__MAC_11_5"
  902. const m_MAC_OS_VERSION_11_6 = "__MAC_11_6"
  903. const m_MAC_OS_VERSION_12_0 = "__MAC_12_0"
  904. const m_MAC_OS_VERSION_12_1 = "__MAC_12_1"
  905. const m_MAC_OS_VERSION_12_2 = "__MAC_12_2"
  906. const m_MAC_OS_VERSION_12_3 = "__MAC_12_3"
  907. const m_MAC_OS_VERSION_12_4 = "__MAC_12_4"
  908. const m_MAC_OS_VERSION_12_5 = "__MAC_12_5"
  909. const m_MAC_OS_VERSION_12_6 = "__MAC_12_6"
  910. const m_MAC_OS_VERSION_12_7 = "__MAC_12_7"
  911. const m_MAC_OS_VERSION_13_0 = "__MAC_13_0"
  912. const m_MAC_OS_VERSION_13_1 = "__MAC_13_1"
  913. const m_MAC_OS_VERSION_13_2 = "__MAC_13_2"
  914. const m_MAC_OS_VERSION_13_3 = "__MAC_13_3"
  915. const m_MAC_OS_VERSION_13_4 = "__MAC_13_4"
  916. const m_MAC_OS_VERSION_13_5 = "__MAC_13_5"
  917. const m_MAC_OS_VERSION_13_6 = "__MAC_13_6"
  918. const m_MAC_OS_VERSION_14_0 = "__MAC_14_0"
  919. const m_MAC_OS_VERSION_14_1 = "__MAC_14_1"
  920. const m_MAC_OS_VERSION_14_2 = "__MAC_14_2"
  921. const m_MAC_OS_VERSION_14_3 = "__MAC_14_3"
  922. const m_MAC_OS_VERSION_14_4 = "__MAC_14_4"
  923. const m_MAC_OS_X_VERSION_10_0 = "__MAC_10_0"
  924. const m_MAC_OS_X_VERSION_10_1 = "__MAC_10_1"
  925. const m_MAC_OS_X_VERSION_10_10 = "__MAC_10_10"
  926. const m_MAC_OS_X_VERSION_10_10_2 = "__MAC_10_10_2"
  927. const m_MAC_OS_X_VERSION_10_10_3 = "__MAC_10_10_3"
  928. const m_MAC_OS_X_VERSION_10_11 = "__MAC_10_11"
  929. const m_MAC_OS_X_VERSION_10_11_2 = "__MAC_10_11_2"
  930. const m_MAC_OS_X_VERSION_10_11_3 = "__MAC_10_11_3"
  931. const m_MAC_OS_X_VERSION_10_11_4 = "__MAC_10_11_4"
  932. const m_MAC_OS_X_VERSION_10_12 = "__MAC_10_12"
  933. const m_MAC_OS_X_VERSION_10_12_1 = "__MAC_10_12_1"
  934. const m_MAC_OS_X_VERSION_10_12_2 = "__MAC_10_12_2"
  935. const m_MAC_OS_X_VERSION_10_12_4 = "__MAC_10_12_4"
  936. const m_MAC_OS_X_VERSION_10_13 = "__MAC_10_13"
  937. const m_MAC_OS_X_VERSION_10_13_1 = "__MAC_10_13_1"
  938. const m_MAC_OS_X_VERSION_10_13_2 = "__MAC_10_13_2"
  939. const m_MAC_OS_X_VERSION_10_13_4 = "__MAC_10_13_4"
  940. const m_MAC_OS_X_VERSION_10_14 = "__MAC_10_14"
  941. const m_MAC_OS_X_VERSION_10_14_1 = "__MAC_10_14_1"
  942. const m_MAC_OS_X_VERSION_10_14_4 = "__MAC_10_14_4"
  943. const m_MAC_OS_X_VERSION_10_14_5 = "__MAC_10_14_5"
  944. const m_MAC_OS_X_VERSION_10_14_6 = "__MAC_10_14_6"
  945. const m_MAC_OS_X_VERSION_10_15 = "__MAC_10_15"
  946. const m_MAC_OS_X_VERSION_10_15_1 = "__MAC_10_15_1"
  947. const m_MAC_OS_X_VERSION_10_15_4 = "__MAC_10_15_4"
  948. const m_MAC_OS_X_VERSION_10_16 = "__MAC_10_16"
  949. const m_MAC_OS_X_VERSION_10_2 = "__MAC_10_2"
  950. const m_MAC_OS_X_VERSION_10_3 = "__MAC_10_3"
  951. const m_MAC_OS_X_VERSION_10_4 = "__MAC_10_4"
  952. const m_MAC_OS_X_VERSION_10_5 = "__MAC_10_5"
  953. const m_MAC_OS_X_VERSION_10_6 = "__MAC_10_6"
  954. const m_MAC_OS_X_VERSION_10_7 = "__MAC_10_7"
  955. const m_MAC_OS_X_VERSION_10_8 = "__MAC_10_8"
  956. const m_MAC_OS_X_VERSION_10_9 = "__MAC_10_9"
  957. const m_MAC_OS_X_VERSION_MAX_ALLOWED = "MAC_OS_VERSION_14_0"
  958. const m_MAC_OS_X_VERSION_MIN_REQUIRED = "__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__"
  959. const m_MB_CUR_MAX = "__mb_cur_max"
  960. const m_MB_LEN_MAX = 1
  961. const m_MINSIGSTKSZ = 32768
  962. const m_MSBFirst = 1
  963. const m_MapNotify = 19
  964. const m_MapRequest = 20
  965. const m_MappingBusy = 1
  966. const m_MappingFailed = 2
  967. const m_MappingKeyboard = 1
  968. const m_MappingModifier = 0
  969. const m_MappingNotify = 34
  970. const m_MappingPointer = 2
  971. const m_MappingSuccess = 0
  972. const m_Mod1MapIndex = 3
  973. const m_Mod2MapIndex = 4
  974. const m_Mod3MapIndex = 5
  975. const m_Mod4MapIndex = 6
  976. const m_Mod5MapIndex = 7
  977. const m_MotionNotify = 6
  978. const m_NBBY = "__DARWIN_NBBY"
  979. const m_NDEBUG = 1
  980. const m_NFDBITS = "__DARWIN_NFDBITS"
  981. const m_NSIG = "__DARWIN_NSIG"
  982. const m_NeedFunctionPrototypes = 1
  983. const m_NeedNestedPrototypes = 1
  984. const m_NeedVarargsPrototypes = 1
  985. const m_NeedWidePrototypes = 1
  986. const m_NoEventMask = 0
  987. const m_NoExpose = 14
  988. const m_NoSymbol = 0
  989. const m_NoValue = 0x0000
  990. const m_Nonconvex = 1
  991. const m_None = 0
  992. const m_NormalState = 1
  993. const m_NorthEastGravity = 3
  994. const m_NorthGravity = 2
  995. const m_NorthWestGravity = 1
  996. const m_NotUseful = 0
  997. const m_NotifyAncestor = 0
  998. const m_NotifyDetailNone = 7
  999. const m_NotifyGrab = 1
  1000. const m_NotifyHint = 1
  1001. const m_NotifyInferior = 2
  1002. const m_NotifyNonlinear = 3
  1003. const m_NotifyNonlinearVirtual = 4
  1004. const m_NotifyNormal = 0
  1005. const m_NotifyPointer = 5
  1006. const m_NotifyPointerRoot = 6
  1007. const m_NotifyUngrab = 2
  1008. const m_NotifyVirtual = 1
  1009. const m_NotifyWhileGrabbed = 3
  1010. const m_Opposite = 4
  1011. const m_PACKAGE = "libXft"
  1012. const m_PACKAGE_BUGREPORT = "https://gitlab.freedesktop.org/xorg/lib/libXft/issues"
  1013. const m_PACKAGE_NAME = "libXft"
  1014. const m_PACKAGE_STRING = "libXft 2.3.8"
  1015. const m_PACKAGE_TARNAME = "libXft"
  1016. const m_PACKAGE_URL = ""
  1017. const m_PACKAGE_VERSION = "2.3.8"
  1018. const m_PACKAGE_VERSION_MAJOR = 2
  1019. const m_PACKAGE_VERSION_MINOR = 3
  1020. const m_PACKAGE_VERSION_PATCHLEVEL = 8
  1021. const m_PDP_ENDIAN = "__DARWIN_PDP_ENDIAN"
  1022. const m_POLL_ERR = 4
  1023. const m_POLL_HUP = 6
  1024. const m_POLL_IN = 1
  1025. const m_POLL_MSG = 3
  1026. const m_POLL_OUT = 2
  1027. const m_POLL_PRI = 5
  1028. const m_PRIO_DARWIN_BG = 0x1000
  1029. const m_PRIO_DARWIN_NONUI = 0x1001
  1030. const m_PRIO_DARWIN_PROCESS = 4
  1031. const m_PRIO_DARWIN_THREAD = 3
  1032. const m_PRIO_MAX = 20
  1033. const m_PRIO_PGRP = 1
  1034. const m_PRIO_PROCESS = 0
  1035. const m_PRIO_USER = 2
  1036. const m_PTHREAD_CANCEL_ASYNCHRONOUS = 0x00
  1037. const m_PTHREAD_CANCEL_DEFERRED = 0x02
  1038. const m_PTHREAD_CANCEL_DISABLE = 0x00
  1039. const m_PTHREAD_CANCEL_ENABLE = 0x01
  1040. const m_PTHREAD_CREATE_DETACHED = 2
  1041. const m_PTHREAD_CREATE_JOINABLE = 1
  1042. const m_PTHREAD_EXPLICIT_SCHED = 2
  1043. const m_PTHREAD_INHERIT_SCHED = 1
  1044. const m_PTHREAD_MUTEX_DEFAULT = "PTHREAD_MUTEX_NORMAL"
  1045. const m_PTHREAD_MUTEX_ERRORCHECK = 1
  1046. const m_PTHREAD_MUTEX_NORMAL = 0
  1047. const m_PTHREAD_MUTEX_POLICY_FAIRSHARE_NP = 1
  1048. const m_PTHREAD_MUTEX_POLICY_FIRSTFIT_NP = 3
  1049. const m_PTHREAD_MUTEX_RECURSIVE = 2
  1050. const m_PTHREAD_PRIO_INHERIT = 1
  1051. const m_PTHREAD_PRIO_NONE = 0
  1052. const m_PTHREAD_PRIO_PROTECT = 2
  1053. const m_PTHREAD_PROCESS_PRIVATE = 2
  1054. const m_PTHREAD_PROCESS_SHARED = 1
  1055. const m_PTHREAD_SCOPE_PROCESS = 2
  1056. const m_PTHREAD_SCOPE_SYSTEM = 1
  1057. const m_PTRDIFF_MAX = "__PTRDIFF_MAX__"
  1058. const m_PTSPERBATCH = 1024
  1059. const m_P_tmpdir = "/var/tmp/"
  1060. const m_ParentRelative = 1
  1061. const m_PictOpAdd = 12
  1062. const m_PictOpAtop = 9
  1063. const m_PictOpAtopReverse = 10
  1064. const m_PictOpBlendMaximum = 0x3e
  1065. const m_PictOpBlendMinimum = 0x30
  1066. const m_PictOpClear = 0
  1067. const m_PictOpColorBurn = 0x36
  1068. const m_PictOpColorDodge = 0x35
  1069. const m_PictOpConjointAtop = 0x29
  1070. const m_PictOpConjointAtopReverse = 0x2a
  1071. const m_PictOpConjointClear = 0x20
  1072. const m_PictOpConjointDst = 0x22
  1073. const m_PictOpConjointIn = 0x25
  1074. const m_PictOpConjointInReverse = 0x26
  1075. const m_PictOpConjointMaximum = 0x2b
  1076. const m_PictOpConjointMinimum = 0x20
  1077. const m_PictOpConjointOut = 0x27
  1078. const m_PictOpConjointOutReverse = 0x28
  1079. const m_PictOpConjointOver = 0x23
  1080. const m_PictOpConjointOverReverse = 0x24
  1081. const m_PictOpConjointSrc = 0x21
  1082. const m_PictOpConjointXor = 0x2b
  1083. const m_PictOpDarken = 0x33
  1084. const m_PictOpDifference = 0x39
  1085. const m_PictOpDisjointAtop = 0x19
  1086. const m_PictOpDisjointAtopReverse = 0x1a
  1087. const m_PictOpDisjointClear = 0x10
  1088. const m_PictOpDisjointDst = 0x12
  1089. const m_PictOpDisjointIn = 0x15
  1090. const m_PictOpDisjointInReverse = 0x16
  1091. const m_PictOpDisjointMaximum = 0x1b
  1092. const m_PictOpDisjointMinimum = 0x10
  1093. const m_PictOpDisjointOut = 0x17
  1094. const m_PictOpDisjointOutReverse = 0x18
  1095. const m_PictOpDisjointOver = 0x13
  1096. const m_PictOpDisjointOverReverse = 0x14
  1097. const m_PictOpDisjointSrc = 0x11
  1098. const m_PictOpDisjointXor = 0x1b
  1099. const m_PictOpDst = 2
  1100. const m_PictOpExclusion = 0x3a
  1101. const m_PictOpHSLColor = 0x3d
  1102. const m_PictOpHSLHue = 0x3b
  1103. const m_PictOpHSLLuminosity = 0x3e
  1104. const m_PictOpHSLSaturation = 0x3c
  1105. const m_PictOpHardLight = 0x37
  1106. const m_PictOpIn = 5
  1107. const m_PictOpInReverse = 6
  1108. const m_PictOpLighten = 0x34
  1109. const m_PictOpMaximum = 13
  1110. const m_PictOpMinimum = 0
  1111. const m_PictOpMultiply = 0x30
  1112. const m_PictOpOut = 7
  1113. const m_PictOpOutReverse = 8
  1114. const m_PictOpOver = 3
  1115. const m_PictOpOverReverse = 4
  1116. const m_PictOpOverlay = 0x32
  1117. const m_PictOpSaturate = 13
  1118. const m_PictOpScreen = 0x31
  1119. const m_PictOpSoftLight = 0x38
  1120. const m_PictOpSrc = 1
  1121. const m_PictOpXor = 11
  1122. const m_PictStandardA1 = 4
  1123. const m_PictStandardA4 = 3
  1124. const m_PictStandardA8 = 2
  1125. const m_PictStandardARGB32 = 0
  1126. const m_PictStandardNUM = 5
  1127. const m_PictStandardRGB24 = 1
  1128. const m_PictTypeDirect = 1
  1129. const m_PictTypeIndexed = 0
  1130. const m_PlaceOnBottom = 1
  1131. const m_PlaceOnTop = 0
  1132. const m_PointerRoot = 1
  1133. const m_PointerWindow = 0
  1134. const m_PolyEdgeSharp = 0
  1135. const m_PolyEdgeSmooth = 1
  1136. const m_PolyModeImprecise = 1
  1137. const m_PolyModePrecise = 0
  1138. const m_PreferBlanking = 1
  1139. const m_PropModeAppend = 2
  1140. const m_PropModePrepend = 1
  1141. const m_PropModeReplace = 0
  1142. const m_PropertyDelete = 1
  1143. const m_PropertyNewValue = 0
  1144. const m_PropertyNotify = 28
  1145. const m_PseudoColor = 3
  1146. const m_QueuedAfterFlush = 2
  1147. const m_QueuedAfterReading = 1
  1148. const m_QueuedAlready = 0
  1149. const m_RAND_MAX = 0x7fffffff
  1150. const m_RENAME_EXCL = 0x00000004
  1151. const m_RENAME_NOFOLLOW_ANY = 0x00000010
  1152. const m_RENAME_RESERVED1 = 0x00000008
  1153. const m_RENAME_SECLUDE = 0x00000001
  1154. const m_RENAME_SWAP = 0x00000002
  1155. const m_RENDER_MAJOR = 0
  1156. const m_RENDER_MINOR = 11
  1157. const m_RENDER_NAME = "RENDER"
  1158. const m_RLIMIT_AS = 5
  1159. const m_RLIMIT_CORE = 4
  1160. const m_RLIMIT_CPU = 0
  1161. const m_RLIMIT_CPU_USAGE_MONITOR = 0x2
  1162. const m_RLIMIT_DATA = 2
  1163. const m_RLIMIT_FOOTPRINT_INTERVAL = 0x4
  1164. const m_RLIMIT_FSIZE = 1
  1165. const m_RLIMIT_MEMLOCK = 6
  1166. const m_RLIMIT_NOFILE = 8
  1167. const m_RLIMIT_NPROC = 7
  1168. const m_RLIMIT_RSS = "RLIMIT_AS"
  1169. const m_RLIMIT_STACK = 3
  1170. const m_RLIMIT_THREAD_CPULIMITS = 0x3
  1171. const m_RLIMIT_WAKEUPS_MONITOR = 0x1
  1172. const m_RLIM_NLIMITS = 9
  1173. const m_RLIM_SAVED_CUR = "RLIM_INFINITY"
  1174. const m_RLIM_SAVED_MAX = "RLIM_INFINITY"
  1175. const m_RUSAGE_INFO_CURRENT = "RUSAGE_INFO_V6"
  1176. const m_RUSAGE_INFO_V0 = 0
  1177. const m_RUSAGE_INFO_V1 = 1
  1178. const m_RUSAGE_INFO_V2 = 2
  1179. const m_RUSAGE_INFO_V3 = 3
  1180. const m_RUSAGE_INFO_V4 = 4
  1181. const m_RUSAGE_INFO_V5 = 5
  1182. const m_RUSAGE_INFO_V6 = 6
  1183. const m_RUSAGE_SELF = 0
  1184. const m_RU_PROC_RUNS_RESLIDE = 0x00000001
  1185. const m_RaiseLowest = 0
  1186. const m_RectangleIn = 1
  1187. const m_RectangleOut = 0
  1188. const m_RectanglePart = 2
  1189. const m_ReparentNotify = 21
  1190. const m_RepeatNone = 0
  1191. const m_RepeatNormal = 1
  1192. const m_RepeatPad = 2
  1193. const m_RepeatReflect = 3
  1194. const m_ReplayKeyboard = 5
  1195. const m_ReplayPointer = 2
  1196. const m_ResizeRequest = 25
  1197. const m_RetainPermanent = 1
  1198. const m_RetainTemporary = 2
  1199. const m_RevertToParent = 2
  1200. const m_SA_64REGSET = 0x0200
  1201. const m_SA_NOCLDSTOP = 0x0008
  1202. const m_SA_NOCLDWAIT = 0x0020
  1203. const m_SA_NODEFER = 0x0010
  1204. const m_SA_ONSTACK = 0x0001
  1205. const m_SA_RESETHAND = 0x0004
  1206. const m_SA_RESTART = 0x0002
  1207. const m_SA_SIGINFO = 0x0040
  1208. const m_SA_USERTRAMP = 0x0100
  1209. const m_SCHED_FIFO = 4
  1210. const m_SCHED_OTHER = 1
  1211. const m_SCHED_RR = 2
  1212. const m_SEEK_CUR = 1
  1213. const m_SEEK_DATA = 4
  1214. const m_SEEK_END = 2
  1215. const m_SEEK_HOLE = 3
  1216. const m_SEEK_SET = 0
  1217. const m_SEGV_ACCERR = 2
  1218. const m_SEGV_MAPERR = 1
  1219. const m_SEGV_NOOP = 0
  1220. const m_SF_APPEND = 0x00040000
  1221. const m_SF_ARCHIVED = 0x00010000
  1222. const m_SF_DATALESS = 0x40000000
  1223. const m_SF_FIRMLINK = 0x00800000
  1224. const m_SF_IMMUTABLE = 0x00020000
  1225. const m_SF_NOUNLINK = 0x00100000
  1226. const m_SF_RESTRICTED = 0x00080000
  1227. const m_SF_SETTABLE = 0x3fff0000
  1228. const m_SF_SUPPORTED = 0x009f0000
  1229. const m_SF_SYNTHETIC = 0xc0000000
  1230. const m_SIGABRT = 6
  1231. const m_SIGALRM = 14
  1232. const m_SIGBUS = 10
  1233. const m_SIGCHLD = 20
  1234. const m_SIGCONT = 19
  1235. const m_SIGEMT = 7
  1236. const m_SIGEV_NONE = 0
  1237. const m_SIGEV_SIGNAL = 1
  1238. const m_SIGEV_THREAD = 3
  1239. const m_SIGFPE = 8
  1240. const m_SIGHUP = 1
  1241. const m_SIGILL = 4
  1242. const m_SIGINFO = 29
  1243. const m_SIGINT = 2
  1244. const m_SIGIO = 23
  1245. const m_SIGIOT = "SIGABRT"
  1246. const m_SIGKILL = 9
  1247. const m_SIGPIPE = 13
  1248. const m_SIGPROF = 27
  1249. const m_SIGQUIT = 3
  1250. const m_SIGSEGV = 11
  1251. const m_SIGSTKSZ = 131072
  1252. const m_SIGSTOP = 17
  1253. const m_SIGSYS = 12
  1254. const m_SIGTERM = 15
  1255. const m_SIGTRAP = 5
  1256. const m_SIGTSTP = 18
  1257. const m_SIGTTIN = 21
  1258. const m_SIGTTOU = 22
  1259. const m_SIGURG = 16
  1260. const m_SIGUSR1 = 30
  1261. const m_SIGUSR2 = 31
  1262. const m_SIGVTALRM = 26
  1263. const m_SIGWINCH = 28
  1264. const m_SIGXCPU = 24
  1265. const m_SIGXFSZ = 25
  1266. const m_SIG_BLOCK = 1
  1267. const m_SIG_SETMASK = 3
  1268. const m_SIG_UNBLOCK = 2
  1269. const m_SIZE_MAX = "__SIZE_MAX__"
  1270. const m_SI_ASYNCIO = 0x10004
  1271. const m_SI_MESGQ = 0x10005
  1272. const m_SI_QUEUE = 0x10002
  1273. const m_SI_TIMER = 0x10003
  1274. const m_SI_USER = 0x10001
  1275. const m_SS_DISABLE = 0x0004
  1276. const m_SS_ONSTACK = 0x0001
  1277. const m_STDC_HEADERS = 1
  1278. const m_SV_INTERRUPT = "SA_RESTART"
  1279. const m_SV_NOCLDSTOP = "SA_NOCLDSTOP"
  1280. const m_SV_NODEFER = "SA_NODEFER"
  1281. const m_SV_ONSTACK = "SA_ONSTACK"
  1282. const m_SV_RESETHAND = "SA_RESETHAND"
  1283. const m_SV_SIGINFO = "SA_SIGINFO"
  1284. const m_S_BLKSIZE = 512
  1285. const m_S_IEXEC = "S_IXUSR"
  1286. const m_S_IFBLK = 0060000
  1287. const m_S_IFCHR = 0020000
  1288. const m_S_IFDIR = 0040000
  1289. const m_S_IFIFO = 0010000
  1290. const m_S_IFLNK = 0120000
  1291. const m_S_IFMT = 0170000
  1292. const m_S_IFREG = 0100000
  1293. const m_S_IFSOCK = 0140000
  1294. const m_S_IFWHT = 0160000
  1295. const m_S_IREAD = "S_IRUSR"
  1296. const m_S_IRGRP = 0000040
  1297. const m_S_IROTH = 0000004
  1298. const m_S_IRUSR = 0000400
  1299. const m_S_IRWXG = 0000070
  1300. const m_S_IRWXO = 0000007
  1301. const m_S_IRWXU = 0000700
  1302. const m_S_ISGID = 0002000
  1303. const m_S_ISTXT = "S_ISVTX"
  1304. const m_S_ISUID = 0004000
  1305. const m_S_ISVTX = 0001000
  1306. const m_S_IWGRP = 0000020
  1307. const m_S_IWOTH = 0000002
  1308. const m_S_IWRITE = "S_IWUSR"
  1309. const m_S_IWUSR = 0000200
  1310. const m_S_IXGRP = 0000010
  1311. const m_S_IXOTH = 0000001
  1312. const m_S_IXUSR = 0000100
  1313. const m_ScreenSaverActive = 1
  1314. const m_ScreenSaverReset = 0
  1315. const m_SelectionClear = 29
  1316. const m_SelectionNotify = 31
  1317. const m_SelectionRequest = 30
  1318. const m_SetModeDelete = 1
  1319. const m_SetModeInsert = 0
  1320. const m_ShiftMapIndex = 0
  1321. const m_SouthEastGravity = 9
  1322. const m_SouthGravity = 8
  1323. const m_SouthWestGravity = 7
  1324. const m_StaticColor = 2
  1325. const m_StaticGravity = 10
  1326. const m_StaticGray = 0
  1327. const m_Status = "int"
  1328. const m_StippleShape = 2
  1329. const m_SubPixelHorizontalBGR = 2
  1330. const m_SubPixelHorizontalRGB = 1
  1331. const m_SubPixelNone = 5
  1332. const m_SubPixelUnknown = 0
  1333. const m_SubPixelVerticalBGR = 4
  1334. const m_SubPixelVerticalRGB = 3
  1335. const m_Success = 0
  1336. const m_SyncBoth = 7
  1337. const m_SyncKeyboard = 4
  1338. const m_SyncPointer = 1
  1339. const m_T1_MAX_CHARSTRINGS_OPERANDS = 256
  1340. const m_T1_MAX_DICT_DEPTH = 5
  1341. const m_T1_MAX_SUBRS_CALLS = 16
  1342. const m_TIME_UTC = 1
  1343. const m_TMP_MAX = 308915776
  1344. const m_TRAP_BRKPT = 1
  1345. const m_TRAP_TRACE = 2
  1346. const m_TT_CONFIG_OPTION_MAX_RUNNABLE_OPCODES = 1000000
  1347. const m_TT_CONFIG_OPTION_SUBPIXEL_HINTING = 2
  1348. const m_TileShape = 1
  1349. const m_TopIf = 2
  1350. const m_True = 1
  1351. const m_TrueColor = 4
  1352. const m_UF_APPEND = 0x00000004
  1353. const m_UF_COMPRESSED = 0x00000020
  1354. const m_UF_DATAVAULT = 0x00000080
  1355. const m_UF_HIDDEN = 0x00008000
  1356. const m_UF_IMMUTABLE = 0x00000002
  1357. const m_UF_NODUMP = 0x00000001
  1358. const m_UF_OPAQUE = 0x00000008
  1359. const m_UF_SETTABLE = 0x0000ffff
  1360. const m_UF_TRACKED = 0x00000040
  1361. const m_UINTMAX_MAX = "__UINTMAX_MAX__"
  1362. const m_UINTPTR_MAX = "__UINTPTR_MAX__"
  1363. const m_UINT_FAST16_MAX = "__UINT_LEAST16_MAX"
  1364. const m_UINT_FAST32_MAX = "__UINT_LEAST32_MAX"
  1365. const m_UINT_FAST64_MAX = "__UINT_LEAST64_MAX"
  1366. const m_UINT_FAST8_MAX = "__UINT_LEAST8_MAX"
  1367. const m_UINT_LEAST16_MAX = "__UINT_LEAST16_MAX"
  1368. const m_UINT_LEAST32_MAX = "__UINT_LEAST32_MAX"
  1369. const m_UINT_LEAST64_MAX = "__UINT_LEAST64_MAX"
  1370. const m_UINT_LEAST8_MAX = "__UINT_LEAST8_MAX"
  1371. const m_UNLOCKED = 0
  1372. const m_UnmapGravity = 0
  1373. const m_UnmapNotify = 18
  1374. const m_Unsorted = 0
  1375. const m_VERSION = "2.3.8"
  1376. const m_VisibilityFullyObscured = 2
  1377. const m_VisibilityNotify = 15
  1378. const m_VisibilityPartiallyObscured = 1
  1379. const m_VisibilityUnobscured = 0
  1380. const m_VisualAllMask = 0x1FF
  1381. const m_VisualBitsPerRGBMask = 0x100
  1382. const m_VisualBlueMaskMask = 0x40
  1383. const m_VisualClassMask = 0x8
  1384. const m_VisualColormapSizeMask = 0x80
  1385. const m_VisualDepthMask = 0x4
  1386. const m_VisualGreenMaskMask = 0x20
  1387. const m_VisualIDMask = 0x1
  1388. const m_VisualNoMask = 0x0
  1389. const m_VisualRedMaskMask = 0x10
  1390. const m_VisualScreenMask = 0x2
  1391. const m_WAIT_MYPGRP = 0
  1392. const m_WAKEMON_DISABLE = 0x02
  1393. const m_WAKEMON_ENABLE = 0x01
  1394. const m_WAKEMON_GET_PARAMS = 0x04
  1395. const m_WAKEMON_MAKE_FATAL = 0x10
  1396. const m_WAKEMON_SET_DEFAULTS = 0x08
  1397. const m_WCHAR_MAX = "__WCHAR_MAX__"
  1398. const m_WCONTINUED = 0x00000010
  1399. const m_WCOREFLAG = 0200
  1400. const m_WEXITED = 0x00000004
  1401. const m_WLNSPERBATCH = 50
  1402. const m_WNOHANG = 0x00000001
  1403. const m_WNOWAIT = 0x00000020
  1404. const m_WRCTSPERBATCH = 10
  1405. const m_WSTOPPED = 0x00000008
  1406. const m_WUNTRACED = 0x00000002
  1407. const m_WestGravity = 4
  1408. const m_WhenMapped = 1
  1409. const m_WidthValue = 0x0004
  1410. const m_WindingRule = 1
  1411. const m_WithdrawnState = 0
  1412. const m_XCNOENT = 2
  1413. const m_XCNOMEM = 1
  1414. const m_XCSUCCESS = 0
  1415. const m_XFT_ASSUME_PIXMAP = 20
  1416. const m_XFT_CORE = "core"
  1417. const m_XFT_DBG_CACHE = 128
  1418. const m_XFT_DBG_CACHEV = 256
  1419. const m_XFT_DBG_DRAW = 8
  1420. const m_XFT_DBG_GLYPH = 32
  1421. const m_XFT_DBG_GLYPHV = 64
  1422. const m_XFT_DBG_MEMORY = 512
  1423. const m_XFT_DBG_OPEN = 1
  1424. const m_XFT_DBG_OPENV = 2
  1425. const m_XFT_DBG_REF = 16
  1426. const m_XFT_DBG_RENDER = 4
  1427. const m_XFT_DBG_USAGE = 1024
  1428. const m_XFT_DPY_MAX_UNREF_FONTS = 16
  1429. const m_XFT_MAJOR = 2
  1430. const m_XFT_MAX_GLYPH_MEMORY = "maxglyphmemory"
  1431. const m_XFT_MAX_UNREF_FONTS = "maxunreffonts"
  1432. const m_XFT_MINOR = 3
  1433. const m_XFT_NMISSING = 256
  1434. const m_XFT_NUM_FONT_HASH = 127
  1435. const m_XFT_NUM_SOLID_COLOR = 16
  1436. const m_XFT_RENDER = "render"
  1437. const m_XFT_REVISION = 8
  1438. const m_XFT_TRACK_MEM_USAGE = "trackmemusage"
  1439. const m_XFT_XLFD = "xlfd"
  1440. const m_XIMHotKeyStateOFF = 0x0002
  1441. const m_XIMHotKeyStateON = 0x0001
  1442. const m_XIMInitialState = 1
  1443. const m_XIMPreeditArea = 0x0001
  1444. const m_XIMPreeditCallbacks = 0x0002
  1445. const m_XIMPreeditEnable = 1
  1446. const m_XIMPreeditNone = 0x0010
  1447. const m_XIMPreeditNothing = 0x0008
  1448. const m_XIMPreeditPosition = 0x0004
  1449. const m_XIMPreeditUnKnown = 0
  1450. const m_XIMReverse = 1
  1451. const m_XIMStatusArea = 0x0100
  1452. const m_XIMStatusCallbacks = 0x0200
  1453. const m_XIMStatusNone = 0x0800
  1454. const m_XIMStatusNothing = 0x0400
  1455. const m_XIMStringConversionBottomEdge = 0x00000008
  1456. const m_XIMStringConversionBuffer = 0x0001
  1457. const m_XIMStringConversionChar = 0x0004
  1458. const m_XIMStringConversionConcealed = 0x00000010
  1459. const m_XIMStringConversionLeftEdge = 0x00000001
  1460. const m_XIMStringConversionLine = 0x0002
  1461. const m_XIMStringConversionRetrieval = 0x0002
  1462. const m_XIMStringConversionRightEdge = 0x00000002
  1463. const m_XIMStringConversionSubstitution = 0x0001
  1464. const m_XIMStringConversionTopEdge = 0x00000004
  1465. const m_XIMStringConversionWord = 0x0003
  1466. const m_XIMStringConversionWrapped = 0x00000020
  1467. const m_XK_0 = 0x0030
  1468. const m_XK_1 = 0x0031
  1469. const m_XK_2 = 0x0032
  1470. const m_XK_3 = 0x0033
  1471. const m_XK_4 = 0x0034
  1472. const m_XK_5 = 0x0035
  1473. const m_XK_6 = 0x0036
  1474. const m_XK_7 = 0x0037
  1475. const m_XK_8 = 0x0038
  1476. const m_XK_9 = 0x0039
  1477. const m_XK_A = 0x0041
  1478. const m_XK_AE = 0x00c6
  1479. const m_XK_Aacute = 0x00c1
  1480. const m_XK_Abelowdot = 0x1001ea0
  1481. const m_XK_Abreve = 0x01c3
  1482. const m_XK_Abreveacute = 0x1001eae
  1483. const m_XK_Abrevebelowdot = 0x1001eb6
  1484. const m_XK_Abrevegrave = 0x1001eb0
  1485. const m_XK_Abrevehook = 0x1001eb2
  1486. const m_XK_Abrevetilde = 0x1001eb4
  1487. const m_XK_AccessX_Enable = 0xfe70
  1488. const m_XK_AccessX_Feedback_Enable = 0xfe71
  1489. const m_XK_Acircumflex = 0x00c2
  1490. const m_XK_Acircumflexacute = 0x1001ea4
  1491. const m_XK_Acircumflexbelowdot = 0x1001eac
  1492. const m_XK_Acircumflexgrave = 0x1001ea6
  1493. const m_XK_Acircumflexhook = 0x1001ea8
  1494. const m_XK_Acircumflextilde = 0x1001eaa
  1495. const m_XK_Adiaeresis = 0x00c4
  1496. const m_XK_Agrave = 0x00c0
  1497. const m_XK_Ahook = 0x1001ea2
  1498. const m_XK_Alt_L = 0xffe9
  1499. const m_XK_Alt_R = 0xffea
  1500. const m_XK_Amacron = 0x03c0
  1501. const m_XK_Aogonek = 0x01a1
  1502. const m_XK_Arabic_0 = 0x1000660
  1503. const m_XK_Arabic_1 = 0x1000661
  1504. const m_XK_Arabic_2 = 0x1000662
  1505. const m_XK_Arabic_3 = 0x1000663
  1506. const m_XK_Arabic_4 = 0x1000664
  1507. const m_XK_Arabic_5 = 0x1000665
  1508. const m_XK_Arabic_6 = 0x1000666
  1509. const m_XK_Arabic_7 = 0x1000667
  1510. const m_XK_Arabic_8 = 0x1000668
  1511. const m_XK_Arabic_9 = 0x1000669
  1512. const m_XK_Arabic_ain = 0x05d9
  1513. const m_XK_Arabic_alef = 0x05c7
  1514. const m_XK_Arabic_alefmaksura = 0x05e9
  1515. const m_XK_Arabic_beh = 0x05c8
  1516. const m_XK_Arabic_comma = 0x05ac
  1517. const m_XK_Arabic_dad = 0x05d6
  1518. const m_XK_Arabic_dal = 0x05cf
  1519. const m_XK_Arabic_damma = 0x05ef
  1520. const m_XK_Arabic_dammatan = 0x05ec
  1521. const m_XK_Arabic_ddal = 0x1000688
  1522. const m_XK_Arabic_farsi_yeh = 0x10006cc
  1523. const m_XK_Arabic_fatha = 0x05ee
  1524. const m_XK_Arabic_fathatan = 0x05eb
  1525. const m_XK_Arabic_feh = 0x05e1
  1526. const m_XK_Arabic_fullstop = 0x10006d4
  1527. const m_XK_Arabic_gaf = 0x10006af
  1528. const m_XK_Arabic_ghain = 0x05da
  1529. const m_XK_Arabic_ha = 0x05e7
  1530. const m_XK_Arabic_hah = 0x05cd
  1531. const m_XK_Arabic_hamza = 0x05c1
  1532. const m_XK_Arabic_hamza_above = 0x1000654
  1533. const m_XK_Arabic_hamza_below = 0x1000655
  1534. const m_XK_Arabic_hamzaonalef = 0x05c3
  1535. const m_XK_Arabic_hamzaonwaw = 0x05c4
  1536. const m_XK_Arabic_hamzaonyeh = 0x05c6
  1537. const m_XK_Arabic_hamzaunderalef = 0x05c5
  1538. const m_XK_Arabic_heh = 0x05e7
  1539. const m_XK_Arabic_heh_doachashmee = 0x10006be
  1540. const m_XK_Arabic_heh_goal = 0x10006c1
  1541. const m_XK_Arabic_jeem = 0x05cc
  1542. const m_XK_Arabic_jeh = 0x1000698
  1543. const m_XK_Arabic_kaf = 0x05e3
  1544. const m_XK_Arabic_kasra = 0x05f0
  1545. const m_XK_Arabic_kasratan = 0x05ed
  1546. const m_XK_Arabic_keheh = 0x10006a9
  1547. const m_XK_Arabic_khah = 0x05ce
  1548. const m_XK_Arabic_lam = 0x05e4
  1549. const m_XK_Arabic_madda_above = 0x1000653
  1550. const m_XK_Arabic_maddaonalef = 0x05c2
  1551. const m_XK_Arabic_meem = 0x05e5
  1552. const m_XK_Arabic_noon = 0x05e6
  1553. const m_XK_Arabic_noon_ghunna = 0x10006ba
  1554. const m_XK_Arabic_peh = 0x100067e
  1555. const m_XK_Arabic_percent = 0x100066a
  1556. const m_XK_Arabic_qaf = 0x05e2
  1557. const m_XK_Arabic_question_mark = 0x05bf
  1558. const m_XK_Arabic_ra = 0x05d1
  1559. const m_XK_Arabic_rreh = 0x1000691
  1560. const m_XK_Arabic_sad = 0x05d5
  1561. const m_XK_Arabic_seen = 0x05d3
  1562. const m_XK_Arabic_semicolon = 0x05bb
  1563. const m_XK_Arabic_shadda = 0x05f1
  1564. const m_XK_Arabic_sheen = 0x05d4
  1565. const m_XK_Arabic_sukun = 0x05f2
  1566. const m_XK_Arabic_superscript_alef = 0x1000670
  1567. const m_XK_Arabic_switch = 0xff7e
  1568. const m_XK_Arabic_tah = 0x05d7
  1569. const m_XK_Arabic_tatweel = 0x05e0
  1570. const m_XK_Arabic_tcheh = 0x1000686
  1571. const m_XK_Arabic_teh = 0x05ca
  1572. const m_XK_Arabic_tehmarbuta = 0x05c9
  1573. const m_XK_Arabic_thal = 0x05d0
  1574. const m_XK_Arabic_theh = 0x05cb
  1575. const m_XK_Arabic_tteh = 0x1000679
  1576. const m_XK_Arabic_veh = 0x10006a4
  1577. const m_XK_Arabic_waw = 0x05e8
  1578. const m_XK_Arabic_yeh = 0x05ea
  1579. const m_XK_Arabic_yeh_baree = 0x10006d2
  1580. const m_XK_Arabic_zah = 0x05d8
  1581. const m_XK_Arabic_zain = 0x05d2
  1582. const m_XK_Aring = 0x00c5
  1583. const m_XK_Armenian_AT = 0x1000538
  1584. const m_XK_Armenian_AYB = 0x1000531
  1585. const m_XK_Armenian_BEN = 0x1000532
  1586. const m_XK_Armenian_CHA = 0x1000549
  1587. const m_XK_Armenian_DA = 0x1000534
  1588. const m_XK_Armenian_DZA = 0x1000541
  1589. const m_XK_Armenian_E = 0x1000537
  1590. const m_XK_Armenian_FE = 0x1000556
  1591. const m_XK_Armenian_GHAT = 0x1000542
  1592. const m_XK_Armenian_GIM = 0x1000533
  1593. const m_XK_Armenian_HI = 0x1000545
  1594. const m_XK_Armenian_HO = 0x1000540
  1595. const m_XK_Armenian_INI = 0x100053b
  1596. const m_XK_Armenian_JE = 0x100054b
  1597. const m_XK_Armenian_KE = 0x1000554
  1598. const m_XK_Armenian_KEN = 0x100053f
  1599. const m_XK_Armenian_KHE = 0x100053d
  1600. const m_XK_Armenian_LYUN = 0x100053c
  1601. const m_XK_Armenian_MEN = 0x1000544
  1602. const m_XK_Armenian_NU = 0x1000546
  1603. const m_XK_Armenian_O = 0x1000555
  1604. const m_XK_Armenian_PE = 0x100054a
  1605. const m_XK_Armenian_PYUR = 0x1000553
  1606. const m_XK_Armenian_RA = 0x100054c
  1607. const m_XK_Armenian_RE = 0x1000550
  1608. const m_XK_Armenian_SE = 0x100054d
  1609. const m_XK_Armenian_SHA = 0x1000547
  1610. const m_XK_Armenian_TCHE = 0x1000543
  1611. const m_XK_Armenian_TO = 0x1000539
  1612. const m_XK_Armenian_TSA = 0x100053e
  1613. const m_XK_Armenian_TSO = 0x1000551
  1614. const m_XK_Armenian_TYUN = 0x100054f
  1615. const m_XK_Armenian_VEV = 0x100054e
  1616. const m_XK_Armenian_VO = 0x1000548
  1617. const m_XK_Armenian_VYUN = 0x1000552
  1618. const m_XK_Armenian_YECH = 0x1000535
  1619. const m_XK_Armenian_ZA = 0x1000536
  1620. const m_XK_Armenian_ZHE = 0x100053a
  1621. const m_XK_Armenian_accent = 0x100055b
  1622. const m_XK_Armenian_amanak = 0x100055c
  1623. const m_XK_Armenian_apostrophe = 0x100055a
  1624. const m_XK_Armenian_at = 0x1000568
  1625. const m_XK_Armenian_ayb = 0x1000561
  1626. const m_XK_Armenian_ben = 0x1000562
  1627. const m_XK_Armenian_but = 0x100055d
  1628. const m_XK_Armenian_cha = 0x1000579
  1629. const m_XK_Armenian_da = 0x1000564
  1630. const m_XK_Armenian_dza = 0x1000571
  1631. const m_XK_Armenian_e = 0x1000567
  1632. const m_XK_Armenian_exclam = 0x100055c
  1633. const m_XK_Armenian_fe = 0x1000586
  1634. const m_XK_Armenian_full_stop = 0x1000589
  1635. const m_XK_Armenian_ghat = 0x1000572
  1636. const m_XK_Armenian_gim = 0x1000563
  1637. const m_XK_Armenian_hi = 0x1000575
  1638. const m_XK_Armenian_ho = 0x1000570
  1639. const m_XK_Armenian_hyphen = 0x100058a
  1640. const m_XK_Armenian_ini = 0x100056b
  1641. const m_XK_Armenian_je = 0x100057b
  1642. const m_XK_Armenian_ke = 0x1000584
  1643. const m_XK_Armenian_ken = 0x100056f
  1644. const m_XK_Armenian_khe = 0x100056d
  1645. const m_XK_Armenian_ligature_ew = 0x1000587
  1646. const m_XK_Armenian_lyun = 0x100056c
  1647. const m_XK_Armenian_men = 0x1000574
  1648. const m_XK_Armenian_nu = 0x1000576
  1649. const m_XK_Armenian_o = 0x1000585
  1650. const m_XK_Armenian_paruyk = 0x100055e
  1651. const m_XK_Armenian_pe = 0x100057a
  1652. const m_XK_Armenian_pyur = 0x1000583
  1653. const m_XK_Armenian_question = 0x100055e
  1654. const m_XK_Armenian_ra = 0x100057c
  1655. const m_XK_Armenian_re = 0x1000580
  1656. const m_XK_Armenian_se = 0x100057d
  1657. const m_XK_Armenian_separation_mark = 0x100055d
  1658. const m_XK_Armenian_sha = 0x1000577
  1659. const m_XK_Armenian_shesht = 0x100055b
  1660. const m_XK_Armenian_tche = 0x1000573
  1661. const m_XK_Armenian_to = 0x1000569
  1662. const m_XK_Armenian_tsa = 0x100056e
  1663. const m_XK_Armenian_tso = 0x1000581
  1664. const m_XK_Armenian_tyun = 0x100057f
  1665. const m_XK_Armenian_verjaket = 0x1000589
  1666. const m_XK_Armenian_vev = 0x100057e
  1667. const m_XK_Armenian_vo = 0x1000578
  1668. const m_XK_Armenian_vyun = 0x1000582
  1669. const m_XK_Armenian_yech = 0x1000565
  1670. const m_XK_Armenian_yentamna = 0x100058a
  1671. const m_XK_Armenian_za = 0x1000566
  1672. const m_XK_Armenian_zhe = 0x100056a
  1673. const m_XK_Atilde = 0x00c3
  1674. const m_XK_AudibleBell_Enable = 0xfe7a
  1675. const m_XK_B = 0x0042
  1676. const m_XK_Babovedot = 0x1001e02
  1677. const m_XK_BackSpace = 0xff08
  1678. const m_XK_Begin = 0xff58
  1679. const m_XK_BounceKeys_Enable = 0xfe74
  1680. const m_XK_Break = 0xff6b
  1681. const m_XK_Byelorussian_SHORTU = 0x06be
  1682. const m_XK_Byelorussian_shortu = 0x06ae
  1683. const m_XK_C = 0x0043
  1684. const m_XK_CH = 0xfea2
  1685. const m_XK_C_H = 0xfea5
  1686. const m_XK_C_h = 0xfea4
  1687. const m_XK_Cabovedot = 0x02c5
  1688. const m_XK_Cacute = 0x01c6
  1689. const m_XK_Cancel = 0xff69
  1690. const m_XK_Caps_Lock = 0xffe5
  1691. const m_XK_Ccaron = 0x01c8
  1692. const m_XK_Ccedilla = 0x00c7
  1693. const m_XK_Ccircumflex = 0x02c6
  1694. const m_XK_Ch = 0xfea1
  1695. const m_XK_Clear = 0xff0b
  1696. const m_XK_Codeinput = 0xff37
  1697. const m_XK_ColonSign = 0x10020a1
  1698. const m_XK_Control_L = 0xffe3
  1699. const m_XK_Control_R = 0xffe4
  1700. const m_XK_CruzeiroSign = 0x10020a2
  1701. const m_XK_Cyrillic_A = 0x06e1
  1702. const m_XK_Cyrillic_BE = 0x06e2
  1703. const m_XK_Cyrillic_CHE = 0x06fe
  1704. const m_XK_Cyrillic_CHE_descender = 0x10004b6
  1705. const m_XK_Cyrillic_CHE_vertstroke = 0x10004b8
  1706. const m_XK_Cyrillic_DE = 0x06e4
  1707. const m_XK_Cyrillic_DZHE = 0x06bf
  1708. const m_XK_Cyrillic_E = 0x06fc
  1709. const m_XK_Cyrillic_EF = 0x06e6
  1710. const m_XK_Cyrillic_EL = 0x06ec
  1711. const m_XK_Cyrillic_EM = 0x06ed
  1712. const m_XK_Cyrillic_EN = 0x06ee
  1713. const m_XK_Cyrillic_EN_descender = 0x10004a2
  1714. const m_XK_Cyrillic_ER = 0x06f2
  1715. const m_XK_Cyrillic_ES = 0x06f3
  1716. const m_XK_Cyrillic_GHE = 0x06e7
  1717. const m_XK_Cyrillic_GHE_bar = 0x1000492
  1718. const m_XK_Cyrillic_HA = 0x06e8
  1719. const m_XK_Cyrillic_HARDSIGN = 0x06ff
  1720. const m_XK_Cyrillic_HA_descender = 0x10004b2
  1721. const m_XK_Cyrillic_I = 0x06e9
  1722. const m_XK_Cyrillic_IE = 0x06e5
  1723. const m_XK_Cyrillic_IO = 0x06b3
  1724. const m_XK_Cyrillic_I_macron = 0x10004e2
  1725. const m_XK_Cyrillic_JE = 0x06b8
  1726. const m_XK_Cyrillic_KA = 0x06eb
  1727. const m_XK_Cyrillic_KA_descender = 0x100049a
  1728. const m_XK_Cyrillic_KA_vertstroke = 0x100049c
  1729. const m_XK_Cyrillic_LJE = 0x06b9
  1730. const m_XK_Cyrillic_NJE = 0x06ba
  1731. const m_XK_Cyrillic_O = 0x06ef
  1732. const m_XK_Cyrillic_O_bar = 0x10004e8
  1733. const m_XK_Cyrillic_PE = 0x06f0
  1734. const m_XK_Cyrillic_SCHWA = 0x10004d8
  1735. const m_XK_Cyrillic_SHA = 0x06fb
  1736. const m_XK_Cyrillic_SHCHA = 0x06fd
  1737. const m_XK_Cyrillic_SHHA = 0x10004ba
  1738. const m_XK_Cyrillic_SHORTI = 0x06ea
  1739. const m_XK_Cyrillic_SOFTSIGN = 0x06f8
  1740. const m_XK_Cyrillic_TE = 0x06f4
  1741. const m_XK_Cyrillic_TSE = 0x06e3
  1742. const m_XK_Cyrillic_U = 0x06f5
  1743. const m_XK_Cyrillic_U_macron = 0x10004ee
  1744. const m_XK_Cyrillic_U_straight = 0x10004ae
  1745. const m_XK_Cyrillic_U_straight_bar = 0x10004b0
  1746. const m_XK_Cyrillic_VE = 0x06f7
  1747. const m_XK_Cyrillic_YA = 0x06f1
  1748. const m_XK_Cyrillic_YERU = 0x06f9
  1749. const m_XK_Cyrillic_YU = 0x06e0
  1750. const m_XK_Cyrillic_ZE = 0x06fa
  1751. const m_XK_Cyrillic_ZHE = 0x06f6
  1752. const m_XK_Cyrillic_ZHE_descender = 0x1000496
  1753. const m_XK_Cyrillic_a = 0x06c1
  1754. const m_XK_Cyrillic_be = 0x06c2
  1755. const m_XK_Cyrillic_che = 0x06de
  1756. const m_XK_Cyrillic_che_descender = 0x10004b7
  1757. const m_XK_Cyrillic_che_vertstroke = 0x10004b9
  1758. const m_XK_Cyrillic_de = 0x06c4
  1759. const m_XK_Cyrillic_dzhe = 0x06af
  1760. const m_XK_Cyrillic_e = 0x06dc
  1761. const m_XK_Cyrillic_ef = 0x06c6
  1762. const m_XK_Cyrillic_el = 0x06cc
  1763. const m_XK_Cyrillic_em = 0x06cd
  1764. const m_XK_Cyrillic_en = 0x06ce
  1765. const m_XK_Cyrillic_en_descender = 0x10004a3
  1766. const m_XK_Cyrillic_er = 0x06d2
  1767. const m_XK_Cyrillic_es = 0x06d3
  1768. const m_XK_Cyrillic_ghe = 0x06c7
  1769. const m_XK_Cyrillic_ghe_bar = 0x1000493
  1770. const m_XK_Cyrillic_ha = 0x06c8
  1771. const m_XK_Cyrillic_ha_descender = 0x10004b3
  1772. const m_XK_Cyrillic_hardsign = 0x06df
  1773. const m_XK_Cyrillic_i = 0x06c9
  1774. const m_XK_Cyrillic_i_macron = 0x10004e3
  1775. const m_XK_Cyrillic_ie = 0x06c5
  1776. const m_XK_Cyrillic_io = 0x06a3
  1777. const m_XK_Cyrillic_je = 0x06a8
  1778. const m_XK_Cyrillic_ka = 0x06cb
  1779. const m_XK_Cyrillic_ka_descender = 0x100049b
  1780. const m_XK_Cyrillic_ka_vertstroke = 0x100049d
  1781. const m_XK_Cyrillic_lje = 0x06a9
  1782. const m_XK_Cyrillic_nje = 0x06aa
  1783. const m_XK_Cyrillic_o = 0x06cf
  1784. const m_XK_Cyrillic_o_bar = 0x10004e9
  1785. const m_XK_Cyrillic_pe = 0x06d0
  1786. const m_XK_Cyrillic_schwa = 0x10004d9
  1787. const m_XK_Cyrillic_sha = 0x06db
  1788. const m_XK_Cyrillic_shcha = 0x06dd
  1789. const m_XK_Cyrillic_shha = 0x10004bb
  1790. const m_XK_Cyrillic_shorti = 0x06ca
  1791. const m_XK_Cyrillic_softsign = 0x06d8
  1792. const m_XK_Cyrillic_te = 0x06d4
  1793. const m_XK_Cyrillic_tse = 0x06c3
  1794. const m_XK_Cyrillic_u = 0x06d5
  1795. const m_XK_Cyrillic_u_macron = 0x10004ef
  1796. const m_XK_Cyrillic_u_straight = 0x10004af
  1797. const m_XK_Cyrillic_u_straight_bar = 0x10004b1
  1798. const m_XK_Cyrillic_ve = 0x06d7
  1799. const m_XK_Cyrillic_ya = 0x06d1
  1800. const m_XK_Cyrillic_yeru = 0x06d9
  1801. const m_XK_Cyrillic_yu = 0x06c0
  1802. const m_XK_Cyrillic_ze = 0x06da
  1803. const m_XK_Cyrillic_zhe = 0x06d6
  1804. const m_XK_Cyrillic_zhe_descender = 0x1000497
  1805. const m_XK_D = 0x0044
  1806. const m_XK_Dabovedot = 0x1001e0a
  1807. const m_XK_Dcaron = 0x01cf
  1808. const m_XK_Delete = 0xffff
  1809. const m_XK_DongSign = 0x10020ab
  1810. const m_XK_Down = 0xff54
  1811. const m_XK_Dstroke = 0x01d0
  1812. const m_XK_E = 0x0045
  1813. const m_XK_ENG = 0x03bd
  1814. const m_XK_ETH = 0x00d0
  1815. const m_XK_EZH = 0x10001b7
  1816. const m_XK_Eabovedot = 0x03cc
  1817. const m_XK_Eacute = 0x00c9
  1818. const m_XK_Ebelowdot = 0x1001eb8
  1819. const m_XK_Ecaron = 0x01cc
  1820. const m_XK_Ecircumflex = 0x00ca
  1821. const m_XK_Ecircumflexacute = 0x1001ebe
  1822. const m_XK_Ecircumflexbelowdot = 0x1001ec6
  1823. const m_XK_Ecircumflexgrave = 0x1001ec0
  1824. const m_XK_Ecircumflexhook = 0x1001ec2
  1825. const m_XK_Ecircumflextilde = 0x1001ec4
  1826. const m_XK_EcuSign = 0x10020a0
  1827. const m_XK_Ediaeresis = 0x00cb
  1828. const m_XK_Egrave = 0x00c8
  1829. const m_XK_Ehook = 0x1001eba
  1830. const m_XK_Eisu_Shift = 0xff2f
  1831. const m_XK_Eisu_toggle = 0xff30
  1832. const m_XK_Emacron = 0x03aa
  1833. const m_XK_End = 0xff57
  1834. const m_XK_Eogonek = 0x01ca
  1835. const m_XK_Escape = 0xff1b
  1836. const m_XK_Eth = 0x00d0
  1837. const m_XK_Etilde = 0x1001ebc
  1838. const m_XK_EuroSign = 0x20ac
  1839. const m_XK_Execute = 0xff62
  1840. const m_XK_F = 0x0046
  1841. const m_XK_F1 = 0xffbe
  1842. const m_XK_F10 = 0xffc7
  1843. const m_XK_F11 = 0xffc8
  1844. const m_XK_F12 = 0xffc9
  1845. const m_XK_F13 = 0xffca
  1846. const m_XK_F14 = 0xffcb
  1847. const m_XK_F15 = 0xffcc
  1848. const m_XK_F16 = 0xffcd
  1849. const m_XK_F17 = 0xffce
  1850. const m_XK_F18 = 0xffcf
  1851. const m_XK_F19 = 0xffd0
  1852. const m_XK_F2 = 0xffbf
  1853. const m_XK_F20 = 0xffd1
  1854. const m_XK_F21 = 0xffd2
  1855. const m_XK_F22 = 0xffd3
  1856. const m_XK_F23 = 0xffd4
  1857. const m_XK_F24 = 0xffd5
  1858. const m_XK_F25 = 0xffd6
  1859. const m_XK_F26 = 0xffd7
  1860. const m_XK_F27 = 0xffd8
  1861. const m_XK_F28 = 0xffd9
  1862. const m_XK_F29 = 0xffda
  1863. const m_XK_F3 = 0xffc0
  1864. const m_XK_F30 = 0xffdb
  1865. const m_XK_F31 = 0xffdc
  1866. const m_XK_F32 = 0xffdd
  1867. const m_XK_F33 = 0xffde
  1868. const m_XK_F34 = 0xffdf
  1869. const m_XK_F35 = 0xffe0
  1870. const m_XK_F4 = 0xffc1
  1871. const m_XK_F5 = 0xffc2
  1872. const m_XK_F6 = 0xffc3
  1873. const m_XK_F7 = 0xffc4
  1874. const m_XK_F8 = 0xffc5
  1875. const m_XK_F9 = 0xffc6
  1876. const m_XK_FFrancSign = 0x10020a3
  1877. const m_XK_Fabovedot = 0x1001e1e
  1878. const m_XK_Farsi_0 = 0x10006f0
  1879. const m_XK_Farsi_1 = 0x10006f1
  1880. const m_XK_Farsi_2 = 0x10006f2
  1881. const m_XK_Farsi_3 = 0x10006f3
  1882. const m_XK_Farsi_4 = 0x10006f4
  1883. const m_XK_Farsi_5 = 0x10006f5
  1884. const m_XK_Farsi_6 = 0x10006f6
  1885. const m_XK_Farsi_7 = 0x10006f7
  1886. const m_XK_Farsi_8 = 0x10006f8
  1887. const m_XK_Farsi_9 = 0x10006f9
  1888. const m_XK_Farsi_yeh = 0x10006cc
  1889. const m_XK_Find = 0xff68
  1890. const m_XK_First_Virtual_Screen = 0xfed0
  1891. const m_XK_G = 0x0047
  1892. const m_XK_Gabovedot = 0x02d5
  1893. const m_XK_Gbreve = 0x02ab
  1894. const m_XK_Gcaron = 0x10001e6
  1895. const m_XK_Gcedilla = 0x03ab
  1896. const m_XK_Gcircumflex = 0x02d8
  1897. const m_XK_Georgian_an = 0x10010d0
  1898. const m_XK_Georgian_ban = 0x10010d1
  1899. const m_XK_Georgian_can = 0x10010ea
  1900. const m_XK_Georgian_char = 0x10010ed
  1901. const m_XK_Georgian_chin = 0x10010e9
  1902. const m_XK_Georgian_cil = 0x10010ec
  1903. const m_XK_Georgian_don = 0x10010d3
  1904. const m_XK_Georgian_en = 0x10010d4
  1905. const m_XK_Georgian_fi = 0x10010f6
  1906. const m_XK_Georgian_gan = 0x10010d2
  1907. const m_XK_Georgian_ghan = 0x10010e6
  1908. const m_XK_Georgian_hae = 0x10010f0
  1909. const m_XK_Georgian_har = 0x10010f4
  1910. const m_XK_Georgian_he = 0x10010f1
  1911. const m_XK_Georgian_hie = 0x10010f2
  1912. const m_XK_Georgian_hoe = 0x10010f5
  1913. const m_XK_Georgian_in = 0x10010d8
  1914. const m_XK_Georgian_jhan = 0x10010ef
  1915. const m_XK_Georgian_jil = 0x10010eb
  1916. const m_XK_Georgian_kan = 0x10010d9
  1917. const m_XK_Georgian_khar = 0x10010e5
  1918. const m_XK_Georgian_las = 0x10010da
  1919. const m_XK_Georgian_man = 0x10010db
  1920. const m_XK_Georgian_nar = 0x10010dc
  1921. const m_XK_Georgian_on = 0x10010dd
  1922. const m_XK_Georgian_par = 0x10010de
  1923. const m_XK_Georgian_phar = 0x10010e4
  1924. const m_XK_Georgian_qar = 0x10010e7
  1925. const m_XK_Georgian_rae = 0x10010e0
  1926. const m_XK_Georgian_san = 0x10010e1
  1927. const m_XK_Georgian_shin = 0x10010e8
  1928. const m_XK_Georgian_tan = 0x10010d7
  1929. const m_XK_Georgian_tar = 0x10010e2
  1930. const m_XK_Georgian_un = 0x10010e3
  1931. const m_XK_Georgian_vin = 0x10010d5
  1932. const m_XK_Georgian_we = 0x10010f3
  1933. const m_XK_Georgian_xan = 0x10010ee
  1934. const m_XK_Georgian_zen = 0x10010d6
  1935. const m_XK_Georgian_zhar = 0x10010df
  1936. const m_XK_Greek_ALPHA = 0x07c1
  1937. const m_XK_Greek_ALPHAaccent = 0x07a1
  1938. const m_XK_Greek_BETA = 0x07c2
  1939. const m_XK_Greek_CHI = 0x07d7
  1940. const m_XK_Greek_DELTA = 0x07c4
  1941. const m_XK_Greek_EPSILON = 0x07c5
  1942. const m_XK_Greek_EPSILONaccent = 0x07a2
  1943. const m_XK_Greek_ETA = 0x07c7
  1944. const m_XK_Greek_ETAaccent = 0x07a3
  1945. const m_XK_Greek_GAMMA = 0x07c3
  1946. const m_XK_Greek_IOTA = 0x07c9
  1947. const m_XK_Greek_IOTAaccent = 0x07a4
  1948. const m_XK_Greek_IOTAdiaeresis = 0x07a5
  1949. const m_XK_Greek_IOTAdieresis = 0x07a5
  1950. const m_XK_Greek_KAPPA = 0x07ca
  1951. const m_XK_Greek_LAMBDA = 0x07cb
  1952. const m_XK_Greek_LAMDA = 0x07cb
  1953. const m_XK_Greek_MU = 0x07cc
  1954. const m_XK_Greek_NU = 0x07cd
  1955. const m_XK_Greek_OMEGA = 0x07d9
  1956. const m_XK_Greek_OMEGAaccent = 0x07ab
  1957. const m_XK_Greek_OMICRON = 0x07cf
  1958. const m_XK_Greek_OMICRONaccent = 0x07a7
  1959. const m_XK_Greek_PHI = 0x07d6
  1960. const m_XK_Greek_PI = 0x07d0
  1961. const m_XK_Greek_PSI = 0x07d8
  1962. const m_XK_Greek_RHO = 0x07d1
  1963. const m_XK_Greek_SIGMA = 0x07d2
  1964. const m_XK_Greek_TAU = 0x07d4
  1965. const m_XK_Greek_THETA = 0x07c8
  1966. const m_XK_Greek_UPSILON = 0x07d5
  1967. const m_XK_Greek_UPSILONaccent = 0x07a8
  1968. const m_XK_Greek_UPSILONdieresis = 0x07a9
  1969. const m_XK_Greek_XI = 0x07ce
  1970. const m_XK_Greek_ZETA = 0x07c6
  1971. const m_XK_Greek_accentdieresis = 0x07ae
  1972. const m_XK_Greek_alpha = 0x07e1
  1973. const m_XK_Greek_alphaaccent = 0x07b1
  1974. const m_XK_Greek_beta = 0x07e2
  1975. const m_XK_Greek_chi = 0x07f7
  1976. const m_XK_Greek_delta = 0x07e4
  1977. const m_XK_Greek_epsilon = 0x07e5
  1978. const m_XK_Greek_epsilonaccent = 0x07b2
  1979. const m_XK_Greek_eta = 0x07e7
  1980. const m_XK_Greek_etaaccent = 0x07b3
  1981. const m_XK_Greek_finalsmallsigma = 0x07f3
  1982. const m_XK_Greek_gamma = 0x07e3
  1983. const m_XK_Greek_horizbar = 0x07af
  1984. const m_XK_Greek_iota = 0x07e9
  1985. const m_XK_Greek_iotaaccent = 0x07b4
  1986. const m_XK_Greek_iotaaccentdieresis = 0x07b6
  1987. const m_XK_Greek_iotadieresis = 0x07b5
  1988. const m_XK_Greek_kappa = 0x07ea
  1989. const m_XK_Greek_lambda = 0x07eb
  1990. const m_XK_Greek_lamda = 0x07eb
  1991. const m_XK_Greek_mu = 0x07ec
  1992. const m_XK_Greek_nu = 0x07ed
  1993. const m_XK_Greek_omega = 0x07f9
  1994. const m_XK_Greek_omegaaccent = 0x07bb
  1995. const m_XK_Greek_omicron = 0x07ef
  1996. const m_XK_Greek_omicronaccent = 0x07b7
  1997. const m_XK_Greek_phi = 0x07f6
  1998. const m_XK_Greek_pi = 0x07f0
  1999. const m_XK_Greek_psi = 0x07f8
  2000. const m_XK_Greek_rho = 0x07f1
  2001. const m_XK_Greek_sigma = 0x07f2
  2002. const m_XK_Greek_switch = 0xff7e
  2003. const m_XK_Greek_tau = 0x07f4
  2004. const m_XK_Greek_theta = 0x07e8
  2005. const m_XK_Greek_upsilon = 0x07f5
  2006. const m_XK_Greek_upsilonaccent = 0x07b8
  2007. const m_XK_Greek_upsilonaccentdieresis = 0x07ba
  2008. const m_XK_Greek_upsilondieresis = 0x07b9
  2009. const m_XK_Greek_xi = 0x07ee
  2010. const m_XK_Greek_zeta = 0x07e6
  2011. const m_XK_H = 0x0048
  2012. const m_XK_Hangul = 0xff31
  2013. const m_XK_Hangul_A = 0x0ebf
  2014. const m_XK_Hangul_AE = 0x0ec0
  2015. const m_XK_Hangul_AraeA = 0x0ef6
  2016. const m_XK_Hangul_AraeAE = 0x0ef7
  2017. const m_XK_Hangul_Banja = 0xff39
  2018. const m_XK_Hangul_Cieuc = 0x0eba
  2019. const m_XK_Hangul_Codeinput = 0xff37
  2020. const m_XK_Hangul_Dikeud = 0x0ea7
  2021. const m_XK_Hangul_E = 0x0ec4
  2022. const m_XK_Hangul_EO = 0x0ec3
  2023. const m_XK_Hangul_EU = 0x0ed1
  2024. const m_XK_Hangul_End = 0xff33
  2025. const m_XK_Hangul_Hanja = 0xff34
  2026. const m_XK_Hangul_Hieuh = 0x0ebe
  2027. const m_XK_Hangul_I = 0x0ed3
  2028. const m_XK_Hangul_Ieung = 0x0eb7
  2029. const m_XK_Hangul_J_Cieuc = 0x0eea
  2030. const m_XK_Hangul_J_Dikeud = 0x0eda
  2031. const m_XK_Hangul_J_Hieuh = 0x0eee
  2032. const m_XK_Hangul_J_Ieung = 0x0ee8
  2033. const m_XK_Hangul_J_Jieuj = 0x0ee9
  2034. const m_XK_Hangul_J_Khieuq = 0x0eeb
  2035. const m_XK_Hangul_J_Kiyeog = 0x0ed4
  2036. const m_XK_Hangul_J_KiyeogSios = 0x0ed6
  2037. const m_XK_Hangul_J_KkogjiDalrinIeung = 0x0ef9
  2038. const m_XK_Hangul_J_Mieum = 0x0ee3
  2039. const m_XK_Hangul_J_Nieun = 0x0ed7
  2040. const m_XK_Hangul_J_NieunHieuh = 0x0ed9
  2041. const m_XK_Hangul_J_NieunJieuj = 0x0ed8
  2042. const m_XK_Hangul_J_PanSios = 0x0ef8
  2043. const m_XK_Hangul_J_Phieuf = 0x0eed
  2044. const m_XK_Hangul_J_Pieub = 0x0ee4
  2045. const m_XK_Hangul_J_PieubSios = 0x0ee5
  2046. const m_XK_Hangul_J_Rieul = 0x0edb
  2047. const m_XK_Hangul_J_RieulHieuh = 0x0ee2
  2048. const m_XK_Hangul_J_RieulKiyeog = 0x0edc
  2049. const m_XK_Hangul_J_RieulMieum = 0x0edd
  2050. const m_XK_Hangul_J_RieulPhieuf = 0x0ee1
  2051. const m_XK_Hangul_J_RieulPieub = 0x0ede
  2052. const m_XK_Hangul_J_RieulSios = 0x0edf
  2053. const m_XK_Hangul_J_RieulTieut = 0x0ee0
  2054. const m_XK_Hangul_J_Sios = 0x0ee6
  2055. const m_XK_Hangul_J_SsangKiyeog = 0x0ed5
  2056. const m_XK_Hangul_J_SsangSios = 0x0ee7
  2057. const m_XK_Hangul_J_Tieut = 0x0eec
  2058. const m_XK_Hangul_J_YeorinHieuh = 0x0efa
  2059. const m_XK_Hangul_Jamo = 0xff35
  2060. const m_XK_Hangul_Jeonja = 0xff38
  2061. const m_XK_Hangul_Jieuj = 0x0eb8
  2062. const m_XK_Hangul_Khieuq = 0x0ebb
  2063. const m_XK_Hangul_Kiyeog = 0x0ea1
  2064. const m_XK_Hangul_KiyeogSios = 0x0ea3
  2065. const m_XK_Hangul_KkogjiDalrinIeung = 0x0ef3
  2066. const m_XK_Hangul_Mieum = 0x0eb1
  2067. const m_XK_Hangul_MultipleCandidate = 0xff3d
  2068. const m_XK_Hangul_Nieun = 0x0ea4
  2069. const m_XK_Hangul_NieunHieuh = 0x0ea6
  2070. const m_XK_Hangul_NieunJieuj = 0x0ea5
  2071. const m_XK_Hangul_O = 0x0ec7
  2072. const m_XK_Hangul_OE = 0x0eca
  2073. const m_XK_Hangul_PanSios = 0x0ef2
  2074. const m_XK_Hangul_Phieuf = 0x0ebd
  2075. const m_XK_Hangul_Pieub = 0x0eb2
  2076. const m_XK_Hangul_PieubSios = 0x0eb4
  2077. const m_XK_Hangul_PostHanja = 0xff3b
  2078. const m_XK_Hangul_PreHanja = 0xff3a
  2079. const m_XK_Hangul_PreviousCandidate = 0xff3e
  2080. const m_XK_Hangul_Rieul = 0x0ea9
  2081. const m_XK_Hangul_RieulHieuh = 0x0eb0
  2082. const m_XK_Hangul_RieulKiyeog = 0x0eaa
  2083. const m_XK_Hangul_RieulMieum = 0x0eab
  2084. const m_XK_Hangul_RieulPhieuf = 0x0eaf
  2085. const m_XK_Hangul_RieulPieub = 0x0eac
  2086. const m_XK_Hangul_RieulSios = 0x0ead
  2087. const m_XK_Hangul_RieulTieut = 0x0eae
  2088. const m_XK_Hangul_RieulYeorinHieuh = 0x0eef
  2089. const m_XK_Hangul_Romaja = 0xff36
  2090. const m_XK_Hangul_SingleCandidate = 0xff3c
  2091. const m_XK_Hangul_Sios = 0x0eb5
  2092. const m_XK_Hangul_Special = 0xff3f
  2093. const m_XK_Hangul_SsangDikeud = 0x0ea8
  2094. const m_XK_Hangul_SsangJieuj = 0x0eb9
  2095. const m_XK_Hangul_SsangKiyeog = 0x0ea2
  2096. const m_XK_Hangul_SsangPieub = 0x0eb3
  2097. const m_XK_Hangul_SsangSios = 0x0eb6
  2098. const m_XK_Hangul_Start = 0xff32
  2099. const m_XK_Hangul_SunkyeongeumMieum = 0x0ef0
  2100. const m_XK_Hangul_SunkyeongeumPhieuf = 0x0ef4
  2101. const m_XK_Hangul_SunkyeongeumPieub = 0x0ef1
  2102. const m_XK_Hangul_Tieut = 0x0ebc
  2103. const m_XK_Hangul_U = 0x0ecc
  2104. const m_XK_Hangul_WA = 0x0ec8
  2105. const m_XK_Hangul_WAE = 0x0ec9
  2106. const m_XK_Hangul_WE = 0x0ece
  2107. const m_XK_Hangul_WEO = 0x0ecd
  2108. const m_XK_Hangul_WI = 0x0ecf
  2109. const m_XK_Hangul_YA = 0x0ec1
  2110. const m_XK_Hangul_YAE = 0x0ec2
  2111. const m_XK_Hangul_YE = 0x0ec6
  2112. const m_XK_Hangul_YEO = 0x0ec5
  2113. const m_XK_Hangul_YI = 0x0ed2
  2114. const m_XK_Hangul_YO = 0x0ecb
  2115. const m_XK_Hangul_YU = 0x0ed0
  2116. const m_XK_Hangul_YeorinHieuh = 0x0ef5
  2117. const m_XK_Hangul_switch = 0xff7e
  2118. const m_XK_Hankaku = 0xff29
  2119. const m_XK_Hcircumflex = 0x02a6
  2120. const m_XK_Hebrew_switch = 0xff7e
  2121. const m_XK_Help = 0xff6a
  2122. const m_XK_Henkan = 0xff23
  2123. const m_XK_Henkan_Mode = 0xff23
  2124. const m_XK_Hiragana = 0xff25
  2125. const m_XK_Hiragana_Katakana = 0xff27
  2126. const m_XK_Home = 0xff50
  2127. const m_XK_Hstroke = 0x02a1
  2128. const m_XK_Hyper_L = 0xffed
  2129. const m_XK_Hyper_R = 0xffee
  2130. const m_XK_I = 0x0049
  2131. const m_XK_ISO_Center_Object = 0xfe33
  2132. const m_XK_ISO_Continuous_Underline = 0xfe30
  2133. const m_XK_ISO_Discontinuous_Underline = 0xfe31
  2134. const m_XK_ISO_Emphasize = 0xfe32
  2135. const m_XK_ISO_Enter = 0xfe34
  2136. const m_XK_ISO_Fast_Cursor_Down = 0xfe2f
  2137. const m_XK_ISO_Fast_Cursor_Left = 0xfe2c
  2138. const m_XK_ISO_Fast_Cursor_Right = 0xfe2d
  2139. const m_XK_ISO_Fast_Cursor_Up = 0xfe2e
  2140. const m_XK_ISO_First_Group = 0xfe0c
  2141. const m_XK_ISO_First_Group_Lock = 0xfe0d
  2142. const m_XK_ISO_Group_Latch = 0xfe06
  2143. const m_XK_ISO_Group_Lock = 0xfe07
  2144. const m_XK_ISO_Group_Shift = 0xff7e
  2145. const m_XK_ISO_Last_Group = 0xfe0e
  2146. const m_XK_ISO_Last_Group_Lock = 0xfe0f
  2147. const m_XK_ISO_Left_Tab = 0xfe20
  2148. const m_XK_ISO_Level2_Latch = 0xfe02
  2149. const m_XK_ISO_Level3_Latch = 0xfe04
  2150. const m_XK_ISO_Level3_Lock = 0xfe05
  2151. const m_XK_ISO_Level3_Shift = 0xfe03
  2152. const m_XK_ISO_Level5_Latch = 0xfe12
  2153. const m_XK_ISO_Level5_Lock = 0xfe13
  2154. const m_XK_ISO_Level5_Shift = 0xfe11
  2155. const m_XK_ISO_Lock = 0xfe01
  2156. const m_XK_ISO_Move_Line_Down = 0xfe22
  2157. const m_XK_ISO_Move_Line_Up = 0xfe21
  2158. const m_XK_ISO_Next_Group = 0xfe08
  2159. const m_XK_ISO_Next_Group_Lock = 0xfe09
  2160. const m_XK_ISO_Partial_Line_Down = 0xfe24
  2161. const m_XK_ISO_Partial_Line_Up = 0xfe23
  2162. const m_XK_ISO_Partial_Space_Left = 0xfe25
  2163. const m_XK_ISO_Partial_Space_Right = 0xfe26
  2164. const m_XK_ISO_Prev_Group = 0xfe0a
  2165. const m_XK_ISO_Prev_Group_Lock = 0xfe0b
  2166. const m_XK_ISO_Release_Both_Margins = 0xfe2b
  2167. const m_XK_ISO_Release_Margin_Left = 0xfe29
  2168. const m_XK_ISO_Release_Margin_Right = 0xfe2a
  2169. const m_XK_ISO_Set_Margin_Left = 0xfe27
  2170. const m_XK_ISO_Set_Margin_Right = 0xfe28
  2171. const m_XK_Iabovedot = 0x02a9
  2172. const m_XK_Iacute = 0x00cd
  2173. const m_XK_Ibelowdot = 0x1001eca
  2174. const m_XK_Ibreve = 0x100012c
  2175. const m_XK_Icircumflex = 0x00ce
  2176. const m_XK_Idiaeresis = 0x00cf
  2177. const m_XK_Igrave = 0x00cc
  2178. const m_XK_Ihook = 0x1001ec8
  2179. const m_XK_Imacron = 0x03cf
  2180. const m_XK_Insert = 0xff63
  2181. const m_XK_Iogonek = 0x03c7
  2182. const m_XK_Itilde = 0x03a5
  2183. const m_XK_J = 0x004a
  2184. const m_XK_Jcircumflex = 0x02ac
  2185. const m_XK_K = 0x004b
  2186. const m_XK_KP_0 = 0xffb0
  2187. const m_XK_KP_1 = 0xffb1
  2188. const m_XK_KP_2 = 0xffb2
  2189. const m_XK_KP_3 = 0xffb3
  2190. const m_XK_KP_4 = 0xffb4
  2191. const m_XK_KP_5 = 0xffb5
  2192. const m_XK_KP_6 = 0xffb6
  2193. const m_XK_KP_7 = 0xffb7
  2194. const m_XK_KP_8 = 0xffb8
  2195. const m_XK_KP_9 = 0xffb9
  2196. const m_XK_KP_Add = 0xffab
  2197. const m_XK_KP_Begin = 0xff9d
  2198. const m_XK_KP_Decimal = 0xffae
  2199. const m_XK_KP_Delete = 0xff9f
  2200. const m_XK_KP_Divide = 0xffaf
  2201. const m_XK_KP_Down = 0xff99
  2202. const m_XK_KP_End = 0xff9c
  2203. const m_XK_KP_Enter = 0xff8d
  2204. const m_XK_KP_Equal = 0xffbd
  2205. const m_XK_KP_F1 = 0xff91
  2206. const m_XK_KP_F2 = 0xff92
  2207. const m_XK_KP_F3 = 0xff93
  2208. const m_XK_KP_F4 = 0xff94
  2209. const m_XK_KP_Home = 0xff95
  2210. const m_XK_KP_Insert = 0xff9e
  2211. const m_XK_KP_Left = 0xff96
  2212. const m_XK_KP_Multiply = 0xffaa
  2213. const m_XK_KP_Next = 0xff9b
  2214. const m_XK_KP_Page_Down = 0xff9b
  2215. const m_XK_KP_Page_Up = 0xff9a
  2216. const m_XK_KP_Prior = 0xff9a
  2217. const m_XK_KP_Right = 0xff98
  2218. const m_XK_KP_Separator = 0xffac
  2219. const m_XK_KP_Space = 0xff80
  2220. const m_XK_KP_Subtract = 0xffad
  2221. const m_XK_KP_Tab = 0xff89
  2222. const m_XK_KP_Up = 0xff97
  2223. const m_XK_Kana_Lock = 0xff2d
  2224. const m_XK_Kana_Shift = 0xff2e
  2225. const m_XK_Kanji = 0xff21
  2226. const m_XK_Kanji_Bangou = 0xff37
  2227. const m_XK_Katakana = 0xff26
  2228. const m_XK_Kcedilla = 0x03d3
  2229. const m_XK_Korean_Won = 0x0eff
  2230. const m_XK_L = 0x004c
  2231. const m_XK_L1 = 0xffc8
  2232. const m_XK_L10 = 0xffd1
  2233. const m_XK_L2 = 0xffc9
  2234. const m_XK_L3 = 0xffca
  2235. const m_XK_L4 = 0xffcb
  2236. const m_XK_L5 = 0xffcc
  2237. const m_XK_L6 = 0xffcd
  2238. const m_XK_L7 = 0xffce
  2239. const m_XK_L8 = 0xffcf
  2240. const m_XK_L9 = 0xffd0
  2241. const m_XK_Lacute = 0x01c5
  2242. const m_XK_Last_Virtual_Screen = 0xfed4
  2243. const m_XK_Lbelowdot = 0x1001e36
  2244. const m_XK_Lcaron = 0x01a5
  2245. const m_XK_Lcedilla = 0x03a6
  2246. const m_XK_Left = 0xff51
  2247. const m_XK_Linefeed = 0xff0a
  2248. const m_XK_LiraSign = 0x10020a4
  2249. const m_XK_Lstroke = 0x01a3
  2250. const m_XK_M = 0x004d
  2251. const m_XK_Mabovedot = 0x1001e40
  2252. const m_XK_Macedonia_DSE = 0x06b5
  2253. const m_XK_Macedonia_GJE = 0x06b2
  2254. const m_XK_Macedonia_KJE = 0x06bc
  2255. const m_XK_Macedonia_dse = 0x06a5
  2256. const m_XK_Macedonia_gje = 0x06a2
  2257. const m_XK_Macedonia_kje = 0x06ac
  2258. const m_XK_Mae_Koho = 0xff3e
  2259. const m_XK_Massyo = 0xff2c
  2260. const m_XK_Menu = 0xff67
  2261. const m_XK_Meta_L = 0xffe7
  2262. const m_XK_Meta_R = 0xffe8
  2263. const m_XK_MillSign = 0x10020a5
  2264. const m_XK_Mode_switch = 0xff7e
  2265. const m_XK_MouseKeys_Accel_Enable = 0xfe77
  2266. const m_XK_MouseKeys_Enable = 0xfe76
  2267. const m_XK_Muhenkan = 0xff22
  2268. const m_XK_Multi_key = 0xff20
  2269. const m_XK_MultipleCandidate = 0xff3d
  2270. const m_XK_N = 0x004e
  2271. const m_XK_Nacute = 0x01d1
  2272. const m_XK_NairaSign = 0x10020a6
  2273. const m_XK_Ncaron = 0x01d2
  2274. const m_XK_Ncedilla = 0x03d1
  2275. const m_XK_NewSheqelSign = 0x10020aa
  2276. const m_XK_Next = 0xff56
  2277. const m_XK_Next_Virtual_Screen = 0xfed2
  2278. const m_XK_Ntilde = 0x00d1
  2279. const m_XK_Num_Lock = 0xff7f
  2280. const m_XK_O = 0x004f
  2281. const m_XK_OE = 0x13bc
  2282. const m_XK_Oacute = 0x00d3
  2283. const m_XK_Obarred = 0x100019f
  2284. const m_XK_Obelowdot = 0x1001ecc
  2285. const m_XK_Ocaron = 0x10001d1
  2286. const m_XK_Ocircumflex = 0x00d4
  2287. const m_XK_Ocircumflexacute = 0x1001ed0
  2288. const m_XK_Ocircumflexbelowdot = 0x1001ed8
  2289. const m_XK_Ocircumflexgrave = 0x1001ed2
  2290. const m_XK_Ocircumflexhook = 0x1001ed4
  2291. const m_XK_Ocircumflextilde = 0x1001ed6
  2292. const m_XK_Odiaeresis = 0x00d6
  2293. const m_XK_Odoubleacute = 0x01d5
  2294. const m_XK_Ograve = 0x00d2
  2295. const m_XK_Ohook = 0x1001ece
  2296. const m_XK_Ohorn = 0x10001a0
  2297. const m_XK_Ohornacute = 0x1001eda
  2298. const m_XK_Ohornbelowdot = 0x1001ee2
  2299. const m_XK_Ohorngrave = 0x1001edc
  2300. const m_XK_Ohornhook = 0x1001ede
  2301. const m_XK_Ohorntilde = 0x1001ee0
  2302. const m_XK_Omacron = 0x03d2
  2303. const m_XK_Ooblique = 0x00d8
  2304. const m_XK_Oslash = 0x00d8
  2305. const m_XK_Otilde = 0x00d5
  2306. const m_XK_Overlay1_Enable = 0xfe78
  2307. const m_XK_Overlay2_Enable = 0xfe79
  2308. const m_XK_P = 0x0050
  2309. const m_XK_Pabovedot = 0x1001e56
  2310. const m_XK_Page_Down = 0xff56
  2311. const m_XK_Page_Up = 0xff55
  2312. const m_XK_Pause = 0xff13
  2313. const m_XK_PesetaSign = 0x10020a7
  2314. const m_XK_Pointer_Accelerate = 0xfefa
  2315. const m_XK_Pointer_Button1 = 0xfee9
  2316. const m_XK_Pointer_Button2 = 0xfeea
  2317. const m_XK_Pointer_Button3 = 0xfeeb
  2318. const m_XK_Pointer_Button4 = 0xfeec
  2319. const m_XK_Pointer_Button5 = 0xfeed
  2320. const m_XK_Pointer_Button_Dflt = 0xfee8
  2321. const m_XK_Pointer_DblClick1 = 0xfeef
  2322. const m_XK_Pointer_DblClick2 = 0xfef0
  2323. const m_XK_Pointer_DblClick3 = 0xfef1
  2324. const m_XK_Pointer_DblClick4 = 0xfef2
  2325. const m_XK_Pointer_DblClick5 = 0xfef3
  2326. const m_XK_Pointer_DblClick_Dflt = 0xfeee
  2327. const m_XK_Pointer_DfltBtnNext = 0xfefb
  2328. const m_XK_Pointer_DfltBtnPrev = 0xfefc
  2329. const m_XK_Pointer_Down = 0xfee3
  2330. const m_XK_Pointer_DownLeft = 0xfee6
  2331. const m_XK_Pointer_DownRight = 0xfee7
  2332. const m_XK_Pointer_Drag1 = 0xfef5
  2333. const m_XK_Pointer_Drag2 = 0xfef6
  2334. const m_XK_Pointer_Drag3 = 0xfef7
  2335. const m_XK_Pointer_Drag4 = 0xfef8
  2336. const m_XK_Pointer_Drag5 = 0xfefd
  2337. const m_XK_Pointer_Drag_Dflt = 0xfef4
  2338. const m_XK_Pointer_EnableKeys = 0xfef9
  2339. const m_XK_Pointer_Left = 0xfee0
  2340. const m_XK_Pointer_Right = 0xfee1
  2341. const m_XK_Pointer_Up = 0xfee2
  2342. const m_XK_Pointer_UpLeft = 0xfee4
  2343. const m_XK_Pointer_UpRight = 0xfee5
  2344. const m_XK_Prev_Virtual_Screen = 0xfed1
  2345. const m_XK_PreviousCandidate = 0xff3e
  2346. const m_XK_Print = 0xff61
  2347. const m_XK_Prior = 0xff55
  2348. const m_XK_Q = 0x0051
  2349. const m_XK_R = 0x0052
  2350. const m_XK_R1 = 0xffd2
  2351. const m_XK_R10 = 0xffdb
  2352. const m_XK_R11 = 0xffdc
  2353. const m_XK_R12 = 0xffdd
  2354. const m_XK_R13 = 0xffde
  2355. const m_XK_R14 = 0xffdf
  2356. const m_XK_R15 = 0xffe0
  2357. const m_XK_R2 = 0xffd3
  2358. const m_XK_R3 = 0xffd4
  2359. const m_XK_R4 = 0xffd5
  2360. const m_XK_R5 = 0xffd6
  2361. const m_XK_R6 = 0xffd7
  2362. const m_XK_R7 = 0xffd8
  2363. const m_XK_R8 = 0xffd9
  2364. const m_XK_R9 = 0xffda
  2365. const m_XK_Racute = 0x01c0
  2366. const m_XK_Rcaron = 0x01d8
  2367. const m_XK_Rcedilla = 0x03a3
  2368. const m_XK_Redo = 0xff66
  2369. const m_XK_RepeatKeys_Enable = 0xfe72
  2370. const m_XK_Return = 0xff0d
  2371. const m_XK_Right = 0xff53
  2372. const m_XK_Romaji = 0xff24
  2373. const m_XK_RupeeSign = 0x10020a8
  2374. const m_XK_S = 0x0053
  2375. const m_XK_SCHWA = 0x100018f
  2376. const m_XK_Sabovedot = 0x1001e60
  2377. const m_XK_Sacute = 0x01a6
  2378. const m_XK_Scaron = 0x01a9
  2379. const m_XK_Scedilla = 0x01aa
  2380. const m_XK_Scircumflex = 0x02de
  2381. const m_XK_Scroll_Lock = 0xff14
  2382. const m_XK_Select = 0xff60
  2383. const m_XK_Serbian_DJE = 0x06b1
  2384. const m_XK_Serbian_DZE = 0x06bf
  2385. const m_XK_Serbian_JE = 0x06b8
  2386. const m_XK_Serbian_LJE = 0x06b9
  2387. const m_XK_Serbian_NJE = 0x06ba
  2388. const m_XK_Serbian_TSHE = 0x06bb
  2389. const m_XK_Serbian_dje = 0x06a1
  2390. const m_XK_Serbian_dze = 0x06af
  2391. const m_XK_Serbian_je = 0x06a8
  2392. const m_XK_Serbian_lje = 0x06a9
  2393. const m_XK_Serbian_nje = 0x06aa
  2394. const m_XK_Serbian_tshe = 0x06ab
  2395. const m_XK_Shift_L = 0xffe1
  2396. const m_XK_Shift_Lock = 0xffe6
  2397. const m_XK_Shift_R = 0xffe2
  2398. const m_XK_SingleCandidate = 0xff3c
  2399. const m_XK_Sinh_a = 0x1000d85
  2400. const m_XK_Sinh_aa = 0x1000d86
  2401. const m_XK_Sinh_aa2 = 0x1000dcf
  2402. const m_XK_Sinh_ae = 0x1000d87
  2403. const m_XK_Sinh_ae2 = 0x1000dd0
  2404. const m_XK_Sinh_aee = 0x1000d88
  2405. const m_XK_Sinh_aee2 = 0x1000dd1
  2406. const m_XK_Sinh_ai = 0x1000d93
  2407. const m_XK_Sinh_ai2 = 0x1000ddb
  2408. const m_XK_Sinh_al = 0x1000dca
  2409. const m_XK_Sinh_au = 0x1000d96
  2410. const m_XK_Sinh_au2 = 0x1000dde
  2411. const m_XK_Sinh_ba = 0x1000db6
  2412. const m_XK_Sinh_bha = 0x1000db7
  2413. const m_XK_Sinh_ca = 0x1000da0
  2414. const m_XK_Sinh_cha = 0x1000da1
  2415. const m_XK_Sinh_dda = 0x1000da9
  2416. const m_XK_Sinh_ddha = 0x1000daa
  2417. const m_XK_Sinh_dha = 0x1000daf
  2418. const m_XK_Sinh_dhha = 0x1000db0
  2419. const m_XK_Sinh_e = 0x1000d91
  2420. const m_XK_Sinh_e2 = 0x1000dd9
  2421. const m_XK_Sinh_ee = 0x1000d92
  2422. const m_XK_Sinh_ee2 = 0x1000dda
  2423. const m_XK_Sinh_fa = 0x1000dc6
  2424. const m_XK_Sinh_ga = 0x1000d9c
  2425. const m_XK_Sinh_gha = 0x1000d9d
  2426. const m_XK_Sinh_h2 = 0x1000d83
  2427. const m_XK_Sinh_ha = 0x1000dc4
  2428. const m_XK_Sinh_i = 0x1000d89
  2429. const m_XK_Sinh_i2 = 0x1000dd2
  2430. const m_XK_Sinh_ii = 0x1000d8a
  2431. const m_XK_Sinh_ii2 = 0x1000dd3
  2432. const m_XK_Sinh_ja = 0x1000da2
  2433. const m_XK_Sinh_jha = 0x1000da3
  2434. const m_XK_Sinh_jnya = 0x1000da5
  2435. const m_XK_Sinh_ka = 0x1000d9a
  2436. const m_XK_Sinh_kha = 0x1000d9b
  2437. const m_XK_Sinh_kunddaliya = 0x1000df4
  2438. const m_XK_Sinh_la = 0x1000dbd
  2439. const m_XK_Sinh_lla = 0x1000dc5
  2440. const m_XK_Sinh_lu = 0x1000d8f
  2441. const m_XK_Sinh_lu2 = 0x1000ddf
  2442. const m_XK_Sinh_luu = 0x1000d90
  2443. const m_XK_Sinh_luu2 = 0x1000df3
  2444. const m_XK_Sinh_ma = 0x1000db8
  2445. const m_XK_Sinh_mba = 0x1000db9
  2446. const m_XK_Sinh_na = 0x1000db1
  2447. const m_XK_Sinh_ndda = 0x1000dac
  2448. const m_XK_Sinh_ndha = 0x1000db3
  2449. const m_XK_Sinh_ng = 0x1000d82
  2450. const m_XK_Sinh_ng2 = 0x1000d9e
  2451. const m_XK_Sinh_nga = 0x1000d9f
  2452. const m_XK_Sinh_nja = 0x1000da6
  2453. const m_XK_Sinh_nna = 0x1000dab
  2454. const m_XK_Sinh_nya = 0x1000da4
  2455. const m_XK_Sinh_o = 0x1000d94
  2456. const m_XK_Sinh_o2 = 0x1000ddc
  2457. const m_XK_Sinh_oo = 0x1000d95
  2458. const m_XK_Sinh_oo2 = 0x1000ddd
  2459. const m_XK_Sinh_pa = 0x1000db4
  2460. const m_XK_Sinh_pha = 0x1000db5
  2461. const m_XK_Sinh_ra = 0x1000dbb
  2462. const m_XK_Sinh_ri = 0x1000d8d
  2463. const m_XK_Sinh_rii = 0x1000d8e
  2464. const m_XK_Sinh_ru2 = 0x1000dd8
  2465. const m_XK_Sinh_ruu2 = 0x1000df2
  2466. const m_XK_Sinh_sa = 0x1000dc3
  2467. const m_XK_Sinh_sha = 0x1000dc1
  2468. const m_XK_Sinh_ssha = 0x1000dc2
  2469. const m_XK_Sinh_tha = 0x1000dad
  2470. const m_XK_Sinh_thha = 0x1000dae
  2471. const m_XK_Sinh_tta = 0x1000da7
  2472. const m_XK_Sinh_ttha = 0x1000da8
  2473. const m_XK_Sinh_u = 0x1000d8b
  2474. const m_XK_Sinh_u2 = 0x1000dd4
  2475. const m_XK_Sinh_uu = 0x1000d8c
  2476. const m_XK_Sinh_uu2 = 0x1000dd6
  2477. const m_XK_Sinh_va = 0x1000dc0
  2478. const m_XK_Sinh_ya = 0x1000dba
  2479. const m_XK_SlowKeys_Enable = 0xfe73
  2480. const m_XK_StickyKeys_Enable = 0xfe75
  2481. const m_XK_Super_L = 0xffeb
  2482. const m_XK_Super_R = 0xffec
  2483. const m_XK_Sys_Req = 0xff15
  2484. const m_XK_T = 0x0054
  2485. const m_XK_THORN = 0x00de
  2486. const m_XK_Tab = 0xff09
  2487. const m_XK_Tabovedot = 0x1001e6a
  2488. const m_XK_Tcaron = 0x01ab
  2489. const m_XK_Tcedilla = 0x01de
  2490. const m_XK_Terminate_Server = 0xfed5
  2491. const m_XK_Thai_baht = 0x0ddf
  2492. const m_XK_Thai_bobaimai = 0x0dba
  2493. const m_XK_Thai_chochan = 0x0da8
  2494. const m_XK_Thai_chochang = 0x0daa
  2495. const m_XK_Thai_choching = 0x0da9
  2496. const m_XK_Thai_chochoe = 0x0dac
  2497. const m_XK_Thai_dochada = 0x0dae
  2498. const m_XK_Thai_dodek = 0x0db4
  2499. const m_XK_Thai_fofa = 0x0dbd
  2500. const m_XK_Thai_fofan = 0x0dbf
  2501. const m_XK_Thai_hohip = 0x0dcb
  2502. const m_XK_Thai_honokhuk = 0x0dce
  2503. const m_XK_Thai_khokhai = 0x0da2
  2504. const m_XK_Thai_khokhon = 0x0da5
  2505. const m_XK_Thai_khokhuat = 0x0da3
  2506. const m_XK_Thai_khokhwai = 0x0da4
  2507. const m_XK_Thai_khorakhang = 0x0da6
  2508. const m_XK_Thai_kokai = 0x0da1
  2509. const m_XK_Thai_lakkhangyao = 0x0de5
  2510. const m_XK_Thai_lekchet = 0x0df7
  2511. const m_XK_Thai_lekha = 0x0df5
  2512. const m_XK_Thai_lekhok = 0x0df6
  2513. const m_XK_Thai_lekkao = 0x0df9
  2514. const m_XK_Thai_leknung = 0x0df1
  2515. const m_XK_Thai_lekpaet = 0x0df8
  2516. const m_XK_Thai_leksam = 0x0df3
  2517. const m_XK_Thai_leksi = 0x0df4
  2518. const m_XK_Thai_leksong = 0x0df2
  2519. const m_XK_Thai_leksun = 0x0df0
  2520. const m_XK_Thai_lochula = 0x0dcc
  2521. const m_XK_Thai_loling = 0x0dc5
  2522. const m_XK_Thai_lu = 0x0dc6
  2523. const m_XK_Thai_maichattawa = 0x0deb
  2524. const m_XK_Thai_maiek = 0x0de8
  2525. const m_XK_Thai_maihanakat = 0x0dd1
  2526. const m_XK_Thai_maihanakat_maitho = 0x0dde
  2527. const m_XK_Thai_maitaikhu = 0x0de7
  2528. const m_XK_Thai_maitho = 0x0de9
  2529. const m_XK_Thai_maitri = 0x0dea
  2530. const m_XK_Thai_maiyamok = 0x0de6
  2531. const m_XK_Thai_moma = 0x0dc1
  2532. const m_XK_Thai_ngongu = 0x0da7
  2533. const m_XK_Thai_nikhahit = 0x0ded
  2534. const m_XK_Thai_nonen = 0x0db3
  2535. const m_XK_Thai_nonu = 0x0db9
  2536. const m_XK_Thai_oang = 0x0dcd
  2537. const m_XK_Thai_paiyannoi = 0x0dcf
  2538. const m_XK_Thai_phinthu = 0x0dda
  2539. const m_XK_Thai_phophan = 0x0dbe
  2540. const m_XK_Thai_phophung = 0x0dbc
  2541. const m_XK_Thai_phosamphao = 0x0dc0
  2542. const m_XK_Thai_popla = 0x0dbb
  2543. const m_XK_Thai_rorua = 0x0dc3
  2544. const m_XK_Thai_ru = 0x0dc4
  2545. const m_XK_Thai_saraa = 0x0dd0
  2546. const m_XK_Thai_saraaa = 0x0dd2
  2547. const m_XK_Thai_saraae = 0x0de1
  2548. const m_XK_Thai_saraaimaimalai = 0x0de4
  2549. const m_XK_Thai_saraaimaimuan = 0x0de3
  2550. const m_XK_Thai_saraam = 0x0dd3
  2551. const m_XK_Thai_sarae = 0x0de0
  2552. const m_XK_Thai_sarai = 0x0dd4
  2553. const m_XK_Thai_saraii = 0x0dd5
  2554. const m_XK_Thai_sarao = 0x0de2
  2555. const m_XK_Thai_sarau = 0x0dd8
  2556. const m_XK_Thai_saraue = 0x0dd6
  2557. const m_XK_Thai_sarauee = 0x0dd7
  2558. const m_XK_Thai_sarauu = 0x0dd9
  2559. const m_XK_Thai_sorusi = 0x0dc9
  2560. const m_XK_Thai_sosala = 0x0dc8
  2561. const m_XK_Thai_soso = 0x0dab
  2562. const m_XK_Thai_sosua = 0x0dca
  2563. const m_XK_Thai_thanthakhat = 0x0dec
  2564. const m_XK_Thai_thonangmontho = 0x0db1
  2565. const m_XK_Thai_thophuthao = 0x0db2
  2566. const m_XK_Thai_thothahan = 0x0db7
  2567. const m_XK_Thai_thothan = 0x0db0
  2568. const m_XK_Thai_thothong = 0x0db8
  2569. const m_XK_Thai_thothung = 0x0db6
  2570. const m_XK_Thai_topatak = 0x0daf
  2571. const m_XK_Thai_totao = 0x0db5
  2572. const m_XK_Thai_wowaen = 0x0dc7
  2573. const m_XK_Thai_yoyak = 0x0dc2
  2574. const m_XK_Thai_yoying = 0x0dad
  2575. const m_XK_Thorn = 0x00de
  2576. const m_XK_Touroku = 0xff2b
  2577. const m_XK_Tslash = 0x03ac
  2578. const m_XK_U = 0x0055
  2579. const m_XK_Uacute = 0x00da
  2580. const m_XK_Ubelowdot = 0x1001ee4
  2581. const m_XK_Ubreve = 0x02dd
  2582. const m_XK_Ucircumflex = 0x00db
  2583. const m_XK_Udiaeresis = 0x00dc
  2584. const m_XK_Udoubleacute = 0x01db
  2585. const m_XK_Ugrave = 0x00d9
  2586. const m_XK_Uhook = 0x1001ee6
  2587. const m_XK_Uhorn = 0x10001af
  2588. const m_XK_Uhornacute = 0x1001ee8
  2589. const m_XK_Uhornbelowdot = 0x1001ef0
  2590. const m_XK_Uhorngrave = 0x1001eea
  2591. const m_XK_Uhornhook = 0x1001eec
  2592. const m_XK_Uhorntilde = 0x1001eee
  2593. const m_XK_Ukrainian_GHE_WITH_UPTURN = 0x06bd
  2594. const m_XK_Ukrainian_I = 0x06b6
  2595. const m_XK_Ukrainian_IE = 0x06b4
  2596. const m_XK_Ukrainian_YI = 0x06b7
  2597. const m_XK_Ukrainian_ghe_with_upturn = 0x06ad
  2598. const m_XK_Ukrainian_i = 0x06a6
  2599. const m_XK_Ukrainian_ie = 0x06a4
  2600. const m_XK_Ukrainian_yi = 0x06a7
  2601. const m_XK_Ukranian_I = 0x06b6
  2602. const m_XK_Ukranian_JE = 0x06b4
  2603. const m_XK_Ukranian_YI = 0x06b7
  2604. const m_XK_Ukranian_i = 0x06a6
  2605. const m_XK_Ukranian_je = 0x06a4
  2606. const m_XK_Ukranian_yi = 0x06a7
  2607. const m_XK_Umacron = 0x03de
  2608. const m_XK_Undo = 0xff65
  2609. const m_XK_Uogonek = 0x03d9
  2610. const m_XK_Up = 0xff52
  2611. const m_XK_Uring = 0x01d9
  2612. const m_XK_Utilde = 0x03dd
  2613. const m_XK_V = 0x0056
  2614. const m_XK_VoidSymbol = 0xffffff
  2615. const m_XK_W = 0x0057
  2616. const m_XK_Wacute = 0x1001e82
  2617. const m_XK_Wcircumflex = 0x1000174
  2618. const m_XK_Wdiaeresis = 0x1001e84
  2619. const m_XK_Wgrave = 0x1001e80
  2620. const m_XK_WonSign = 0x10020a9
  2621. const m_XK_X = 0x0058
  2622. const m_XK_Xabovedot = 0x1001e8a
  2623. const m_XK_Y = 0x0059
  2624. const m_XK_Yacute = 0x00dd
  2625. const m_XK_Ybelowdot = 0x1001ef4
  2626. const m_XK_Ycircumflex = 0x1000176
  2627. const m_XK_Ydiaeresis = 0x13be
  2628. const m_XK_Ygrave = 0x1001ef2
  2629. const m_XK_Yhook = 0x1001ef6
  2630. const m_XK_Ytilde = 0x1001ef8
  2631. const m_XK_Z = 0x005a
  2632. const m_XK_Zabovedot = 0x01af
  2633. const m_XK_Zacute = 0x01ac
  2634. const m_XK_Zcaron = 0x01ae
  2635. const m_XK_Zen_Koho = 0xff3d
  2636. const m_XK_Zenkaku = 0xff28
  2637. const m_XK_Zenkaku_Hankaku = 0xff2a
  2638. const m_XK_Zstroke = 0x10001b5
  2639. const m_XK_a = 0x0061
  2640. const m_XK_aacute = 0x00e1
  2641. const m_XK_abelowdot = 0x1001ea1
  2642. const m_XK_abovedot = 0x01ff
  2643. const m_XK_abreve = 0x01e3
  2644. const m_XK_abreveacute = 0x1001eaf
  2645. const m_XK_abrevebelowdot = 0x1001eb7
  2646. const m_XK_abrevegrave = 0x1001eb1
  2647. const m_XK_abrevehook = 0x1001eb3
  2648. const m_XK_abrevetilde = 0x1001eb5
  2649. const m_XK_acircumflex = 0x00e2
  2650. const m_XK_acircumflexacute = 0x1001ea5
  2651. const m_XK_acircumflexbelowdot = 0x1001ead
  2652. const m_XK_acircumflexgrave = 0x1001ea7
  2653. const m_XK_acircumflexhook = 0x1001ea9
  2654. const m_XK_acircumflextilde = 0x1001eab
  2655. const m_XK_acute = 0x00b4
  2656. const m_XK_adiaeresis = 0x00e4
  2657. const m_XK_ae = 0x00e6
  2658. const m_XK_agrave = 0x00e0
  2659. const m_XK_ahook = 0x1001ea3
  2660. const m_XK_amacron = 0x03e0
  2661. const m_XK_ampersand = 0x0026
  2662. const m_XK_aogonek = 0x01b1
  2663. const m_XK_apostrophe = 0x0027
  2664. const m_XK_approxeq = 0x1002248
  2665. const m_XK_aring = 0x00e5
  2666. const m_XK_asciicircum = 0x005e
  2667. const m_XK_asciitilde = 0x007e
  2668. const m_XK_asterisk = 0x002a
  2669. const m_XK_at = 0x0040
  2670. const m_XK_atilde = 0x00e3
  2671. const m_XK_b = 0x0062
  2672. const m_XK_babovedot = 0x1001e03
  2673. const m_XK_backslash = 0x005c
  2674. const m_XK_bar = 0x007c
  2675. const m_XK_because = 0x1002235
  2676. const m_XK_braceleft = 0x007b
  2677. const m_XK_braceright = 0x007d
  2678. const m_XK_bracketleft = 0x005b
  2679. const m_XK_bracketright = 0x005d
  2680. const m_XK_braille_blank = 0x1002800
  2681. const m_XK_braille_dot_1 = 0xfff1
  2682. const m_XK_braille_dot_10 = 0xfffa
  2683. const m_XK_braille_dot_2 = 0xfff2
  2684. const m_XK_braille_dot_3 = 0xfff3
  2685. const m_XK_braille_dot_4 = 0xfff4
  2686. const m_XK_braille_dot_5 = 0xfff5
  2687. const m_XK_braille_dot_6 = 0xfff6
  2688. const m_XK_braille_dot_7 = 0xfff7
  2689. const m_XK_braille_dot_8 = 0xfff8
  2690. const m_XK_braille_dot_9 = 0xfff9
  2691. const m_XK_braille_dots_1 = 0x1002801
  2692. const m_XK_braille_dots_12 = 0x1002803
  2693. const m_XK_braille_dots_123 = 0x1002807
  2694. const m_XK_braille_dots_1234 = 0x100280f
  2695. const m_XK_braille_dots_12345 = 0x100281f
  2696. const m_XK_braille_dots_123456 = 0x100283f
  2697. const m_XK_braille_dots_1234567 = 0x100287f
  2698. const m_XK_braille_dots_12345678 = 0x10028ff
  2699. const m_XK_braille_dots_1234568 = 0x10028bf
  2700. const m_XK_braille_dots_123457 = 0x100285f
  2701. const m_XK_braille_dots_1234578 = 0x10028df
  2702. const m_XK_braille_dots_123458 = 0x100289f
  2703. const m_XK_braille_dots_12346 = 0x100282f
  2704. const m_XK_braille_dots_123467 = 0x100286f
  2705. const m_XK_braille_dots_1234678 = 0x10028ef
  2706. const m_XK_braille_dots_123468 = 0x10028af
  2707. const m_XK_braille_dots_12347 = 0x100284f
  2708. const m_XK_braille_dots_123478 = 0x10028cf
  2709. const m_XK_braille_dots_12348 = 0x100288f
  2710. const m_XK_braille_dots_1235 = 0x1002817
  2711. const m_XK_braille_dots_12356 = 0x1002837
  2712. const m_XK_braille_dots_123567 = 0x1002877
  2713. const m_XK_braille_dots_1235678 = 0x10028f7
  2714. const m_XK_braille_dots_123568 = 0x10028b7
  2715. const m_XK_braille_dots_12357 = 0x1002857
  2716. const m_XK_braille_dots_123578 = 0x10028d7
  2717. const m_XK_braille_dots_12358 = 0x1002897
  2718. const m_XK_braille_dots_1236 = 0x1002827
  2719. const m_XK_braille_dots_12367 = 0x1002867
  2720. const m_XK_braille_dots_123678 = 0x10028e7
  2721. const m_XK_braille_dots_12368 = 0x10028a7
  2722. const m_XK_braille_dots_1237 = 0x1002847
  2723. const m_XK_braille_dots_12378 = 0x10028c7
  2724. const m_XK_braille_dots_1238 = 0x1002887
  2725. const m_XK_braille_dots_124 = 0x100280b
  2726. const m_XK_braille_dots_1245 = 0x100281b
  2727. const m_XK_braille_dots_12456 = 0x100283b
  2728. const m_XK_braille_dots_124567 = 0x100287b
  2729. const m_XK_braille_dots_1245678 = 0x10028fb
  2730. const m_XK_braille_dots_124568 = 0x10028bb
  2731. const m_XK_braille_dots_12457 = 0x100285b
  2732. const m_XK_braille_dots_124578 = 0x10028db
  2733. const m_XK_braille_dots_12458 = 0x100289b
  2734. const m_XK_braille_dots_1246 = 0x100282b
  2735. const m_XK_braille_dots_12467 = 0x100286b
  2736. const m_XK_braille_dots_124678 = 0x10028eb
  2737. const m_XK_braille_dots_12468 = 0x10028ab
  2738. const m_XK_braille_dots_1247 = 0x100284b
  2739. const m_XK_braille_dots_12478 = 0x10028cb
  2740. const m_XK_braille_dots_1248 = 0x100288b
  2741. const m_XK_braille_dots_125 = 0x1002813
  2742. const m_XK_braille_dots_1256 = 0x1002833
  2743. const m_XK_braille_dots_12567 = 0x1002873
  2744. const m_XK_braille_dots_125678 = 0x10028f3
  2745. const m_XK_braille_dots_12568 = 0x10028b3
  2746. const m_XK_braille_dots_1257 = 0x1002853
  2747. const m_XK_braille_dots_12578 = 0x10028d3
  2748. const m_XK_braille_dots_1258 = 0x1002893
  2749. const m_XK_braille_dots_126 = 0x1002823
  2750. const m_XK_braille_dots_1267 = 0x1002863
  2751. const m_XK_braille_dots_12678 = 0x10028e3
  2752. const m_XK_braille_dots_1268 = 0x10028a3
  2753. const m_XK_braille_dots_127 = 0x1002843
  2754. const m_XK_braille_dots_1278 = 0x10028c3
  2755. const m_XK_braille_dots_128 = 0x1002883
  2756. const m_XK_braille_dots_13 = 0x1002805
  2757. const m_XK_braille_dots_134 = 0x100280d
  2758. const m_XK_braille_dots_1345 = 0x100281d
  2759. const m_XK_braille_dots_13456 = 0x100283d
  2760. const m_XK_braille_dots_134567 = 0x100287d
  2761. const m_XK_braille_dots_1345678 = 0x10028fd
  2762. const m_XK_braille_dots_134568 = 0x10028bd
  2763. const m_XK_braille_dots_13457 = 0x100285d
  2764. const m_XK_braille_dots_134578 = 0x10028dd
  2765. const m_XK_braille_dots_13458 = 0x100289d
  2766. const m_XK_braille_dots_1346 = 0x100282d
  2767. const m_XK_braille_dots_13467 = 0x100286d
  2768. const m_XK_braille_dots_134678 = 0x10028ed
  2769. const m_XK_braille_dots_13468 = 0x10028ad
  2770. const m_XK_braille_dots_1347 = 0x100284d
  2771. const m_XK_braille_dots_13478 = 0x10028cd
  2772. const m_XK_braille_dots_1348 = 0x100288d
  2773. const m_XK_braille_dots_135 = 0x1002815
  2774. const m_XK_braille_dots_1356 = 0x1002835
  2775. const m_XK_braille_dots_13567 = 0x1002875
  2776. const m_XK_braille_dots_135678 = 0x10028f5
  2777. const m_XK_braille_dots_13568 = 0x10028b5
  2778. const m_XK_braille_dots_1357 = 0x1002855
  2779. const m_XK_braille_dots_13578 = 0x10028d5
  2780. const m_XK_braille_dots_1358 = 0x1002895
  2781. const m_XK_braille_dots_136 = 0x1002825
  2782. const m_XK_braille_dots_1367 = 0x1002865
  2783. const m_XK_braille_dots_13678 = 0x10028e5
  2784. const m_XK_braille_dots_1368 = 0x10028a5
  2785. const m_XK_braille_dots_137 = 0x1002845
  2786. const m_XK_braille_dots_1378 = 0x10028c5
  2787. const m_XK_braille_dots_138 = 0x1002885
  2788. const m_XK_braille_dots_14 = 0x1002809
  2789. const m_XK_braille_dots_145 = 0x1002819
  2790. const m_XK_braille_dots_1456 = 0x1002839
  2791. const m_XK_braille_dots_14567 = 0x1002879
  2792. const m_XK_braille_dots_145678 = 0x10028f9
  2793. const m_XK_braille_dots_14568 = 0x10028b9
  2794. const m_XK_braille_dots_1457 = 0x1002859
  2795. const m_XK_braille_dots_14578 = 0x10028d9
  2796. const m_XK_braille_dots_1458 = 0x1002899
  2797. const m_XK_braille_dots_146 = 0x1002829
  2798. const m_XK_braille_dots_1467 = 0x1002869
  2799. const m_XK_braille_dots_14678 = 0x10028e9
  2800. const m_XK_braille_dots_1468 = 0x10028a9
  2801. const m_XK_braille_dots_147 = 0x1002849
  2802. const m_XK_braille_dots_1478 = 0x10028c9
  2803. const m_XK_braille_dots_148 = 0x1002889
  2804. const m_XK_braille_dots_15 = 0x1002811
  2805. const m_XK_braille_dots_156 = 0x1002831
  2806. const m_XK_braille_dots_1567 = 0x1002871
  2807. const m_XK_braille_dots_15678 = 0x10028f1
  2808. const m_XK_braille_dots_1568 = 0x10028b1
  2809. const m_XK_braille_dots_157 = 0x1002851
  2810. const m_XK_braille_dots_1578 = 0x10028d1
  2811. const m_XK_braille_dots_158 = 0x1002891
  2812. const m_XK_braille_dots_16 = 0x1002821
  2813. const m_XK_braille_dots_167 = 0x1002861
  2814. const m_XK_braille_dots_1678 = 0x10028e1
  2815. const m_XK_braille_dots_168 = 0x10028a1
  2816. const m_XK_braille_dots_17 = 0x1002841
  2817. const m_XK_braille_dots_178 = 0x10028c1
  2818. const m_XK_braille_dots_18 = 0x1002881
  2819. const m_XK_braille_dots_2 = 0x1002802
  2820. const m_XK_braille_dots_23 = 0x1002806
  2821. const m_XK_braille_dots_234 = 0x100280e
  2822. const m_XK_braille_dots_2345 = 0x100281e
  2823. const m_XK_braille_dots_23456 = 0x100283e
  2824. const m_XK_braille_dots_234567 = 0x100287e
  2825. const m_XK_braille_dots_2345678 = 0x10028fe
  2826. const m_XK_braille_dots_234568 = 0x10028be
  2827. const m_XK_braille_dots_23457 = 0x100285e
  2828. const m_XK_braille_dots_234578 = 0x10028de
  2829. const m_XK_braille_dots_23458 = 0x100289e
  2830. const m_XK_braille_dots_2346 = 0x100282e
  2831. const m_XK_braille_dots_23467 = 0x100286e
  2832. const m_XK_braille_dots_234678 = 0x10028ee
  2833. const m_XK_braille_dots_23468 = 0x10028ae
  2834. const m_XK_braille_dots_2347 = 0x100284e
  2835. const m_XK_braille_dots_23478 = 0x10028ce
  2836. const m_XK_braille_dots_2348 = 0x100288e
  2837. const m_XK_braille_dots_235 = 0x1002816
  2838. const m_XK_braille_dots_2356 = 0x1002836
  2839. const m_XK_braille_dots_23567 = 0x1002876
  2840. const m_XK_braille_dots_235678 = 0x10028f6
  2841. const m_XK_braille_dots_23568 = 0x10028b6
  2842. const m_XK_braille_dots_2357 = 0x1002856
  2843. const m_XK_braille_dots_23578 = 0x10028d6
  2844. const m_XK_braille_dots_2358 = 0x1002896
  2845. const m_XK_braille_dots_236 = 0x1002826
  2846. const m_XK_braille_dots_2367 = 0x1002866
  2847. const m_XK_braille_dots_23678 = 0x10028e6
  2848. const m_XK_braille_dots_2368 = 0x10028a6
  2849. const m_XK_braille_dots_237 = 0x1002846
  2850. const m_XK_braille_dots_2378 = 0x10028c6
  2851. const m_XK_braille_dots_238 = 0x1002886
  2852. const m_XK_braille_dots_24 = 0x100280a
  2853. const m_XK_braille_dots_245 = 0x100281a
  2854. const m_XK_braille_dots_2456 = 0x100283a
  2855. const m_XK_braille_dots_24567 = 0x100287a
  2856. const m_XK_braille_dots_245678 = 0x10028fa
  2857. const m_XK_braille_dots_24568 = 0x10028ba
  2858. const m_XK_braille_dots_2457 = 0x100285a
  2859. const m_XK_braille_dots_24578 = 0x10028da
  2860. const m_XK_braille_dots_2458 = 0x100289a
  2861. const m_XK_braille_dots_246 = 0x100282a
  2862. const m_XK_braille_dots_2467 = 0x100286a
  2863. const m_XK_braille_dots_24678 = 0x10028ea
  2864. const m_XK_braille_dots_2468 = 0x10028aa
  2865. const m_XK_braille_dots_247 = 0x100284a
  2866. const m_XK_braille_dots_2478 = 0x10028ca
  2867. const m_XK_braille_dots_248 = 0x100288a
  2868. const m_XK_braille_dots_25 = 0x1002812
  2869. const m_XK_braille_dots_256 = 0x1002832
  2870. const m_XK_braille_dots_2567 = 0x1002872
  2871. const m_XK_braille_dots_25678 = 0x10028f2
  2872. const m_XK_braille_dots_2568 = 0x10028b2
  2873. const m_XK_braille_dots_257 = 0x1002852
  2874. const m_XK_braille_dots_2578 = 0x10028d2
  2875. const m_XK_braille_dots_258 = 0x1002892
  2876. const m_XK_braille_dots_26 = 0x1002822
  2877. const m_XK_braille_dots_267 = 0x1002862
  2878. const m_XK_braille_dots_2678 = 0x10028e2
  2879. const m_XK_braille_dots_268 = 0x10028a2
  2880. const m_XK_braille_dots_27 = 0x1002842
  2881. const m_XK_braille_dots_278 = 0x10028c2
  2882. const m_XK_braille_dots_28 = 0x1002882
  2883. const m_XK_braille_dots_3 = 0x1002804
  2884. const m_XK_braille_dots_34 = 0x100280c
  2885. const m_XK_braille_dots_345 = 0x100281c
  2886. const m_XK_braille_dots_3456 = 0x100283c
  2887. const m_XK_braille_dots_34567 = 0x100287c
  2888. const m_XK_braille_dots_345678 = 0x10028fc
  2889. const m_XK_braille_dots_34568 = 0x10028bc
  2890. const m_XK_braille_dots_3457 = 0x100285c
  2891. const m_XK_braille_dots_34578 = 0x10028dc
  2892. const m_XK_braille_dots_3458 = 0x100289c
  2893. const m_XK_braille_dots_346 = 0x100282c
  2894. const m_XK_braille_dots_3467 = 0x100286c
  2895. const m_XK_braille_dots_34678 = 0x10028ec
  2896. const m_XK_braille_dots_3468 = 0x10028ac
  2897. const m_XK_braille_dots_347 = 0x100284c
  2898. const m_XK_braille_dots_3478 = 0x10028cc
  2899. const m_XK_braille_dots_348 = 0x100288c
  2900. const m_XK_braille_dots_35 = 0x1002814
  2901. const m_XK_braille_dots_356 = 0x1002834
  2902. const m_XK_braille_dots_3567 = 0x1002874
  2903. const m_XK_braille_dots_35678 = 0x10028f4
  2904. const m_XK_braille_dots_3568 = 0x10028b4
  2905. const m_XK_braille_dots_357 = 0x1002854
  2906. const m_XK_braille_dots_3578 = 0x10028d4
  2907. const m_XK_braille_dots_358 = 0x1002894
  2908. const m_XK_braille_dots_36 = 0x1002824
  2909. const m_XK_braille_dots_367 = 0x1002864
  2910. const m_XK_braille_dots_3678 = 0x10028e4
  2911. const m_XK_braille_dots_368 = 0x10028a4
  2912. const m_XK_braille_dots_37 = 0x1002844
  2913. const m_XK_braille_dots_378 = 0x10028c4
  2914. const m_XK_braille_dots_38 = 0x1002884
  2915. const m_XK_braille_dots_4 = 0x1002808
  2916. const m_XK_braille_dots_45 = 0x1002818
  2917. const m_XK_braille_dots_456 = 0x1002838
  2918. const m_XK_braille_dots_4567 = 0x1002878
  2919. const m_XK_braille_dots_45678 = 0x10028f8
  2920. const m_XK_braille_dots_4568 = 0x10028b8
  2921. const m_XK_braille_dots_457 = 0x1002858
  2922. const m_XK_braille_dots_4578 = 0x10028d8
  2923. const m_XK_braille_dots_458 = 0x1002898
  2924. const m_XK_braille_dots_46 = 0x1002828
  2925. const m_XK_braille_dots_467 = 0x1002868
  2926. const m_XK_braille_dots_4678 = 0x10028e8
  2927. const m_XK_braille_dots_468 = 0x10028a8
  2928. const m_XK_braille_dots_47 = 0x1002848
  2929. const m_XK_braille_dots_478 = 0x10028c8
  2930. const m_XK_braille_dots_48 = 0x1002888
  2931. const m_XK_braille_dots_5 = 0x1002810
  2932. const m_XK_braille_dots_56 = 0x1002830
  2933. const m_XK_braille_dots_567 = 0x1002870
  2934. const m_XK_braille_dots_5678 = 0x10028f0
  2935. const m_XK_braille_dots_568 = 0x10028b0
  2936. const m_XK_braille_dots_57 = 0x1002850
  2937. const m_XK_braille_dots_578 = 0x10028d0
  2938. const m_XK_braille_dots_58 = 0x1002890
  2939. const m_XK_braille_dots_6 = 0x1002820
  2940. const m_XK_braille_dots_67 = 0x1002860
  2941. const m_XK_braille_dots_678 = 0x10028e0
  2942. const m_XK_braille_dots_68 = 0x10028a0
  2943. const m_XK_braille_dots_7 = 0x1002840
  2944. const m_XK_braille_dots_78 = 0x10028c0
  2945. const m_XK_braille_dots_8 = 0x1002880
  2946. const m_XK_breve = 0x01a2
  2947. const m_XK_brokenbar = 0x00a6
  2948. const m_XK_c = 0x0063
  2949. const m_XK_c_h = 0xfea3
  2950. const m_XK_cabovedot = 0x02e5
  2951. const m_XK_cacute = 0x01e6
  2952. const m_XK_caron = 0x01b7
  2953. const m_XK_ccaron = 0x01e8
  2954. const m_XK_ccedilla = 0x00e7
  2955. const m_XK_ccircumflex = 0x02e6
  2956. const m_XK_cedilla = 0x00b8
  2957. const m_XK_cent = 0x00a2
  2958. const m_XK_ch = 0xfea0
  2959. const m_XK_colon = 0x003a
  2960. const m_XK_combining_acute = 0x1000301
  2961. const m_XK_combining_belowdot = 0x1000323
  2962. const m_XK_combining_grave = 0x1000300
  2963. const m_XK_combining_hook = 0x1000309
  2964. const m_XK_combining_tilde = 0x1000303
  2965. const m_XK_comma = 0x002c
  2966. const m_XK_containsas = 0x100220B
  2967. const m_XK_copyright = 0x00a9
  2968. const m_XK_cuberoot = 0x100221B
  2969. const m_XK_currency = 0x00a4
  2970. const m_XK_d = 0x0064
  2971. const m_XK_dabovedot = 0x1001e0b
  2972. const m_XK_dcaron = 0x01ef
  2973. const m_XK_dead_A = 0xfe81
  2974. const m_XK_dead_E = 0xfe83
  2975. const m_XK_dead_I = 0xfe85
  2976. const m_XK_dead_O = 0xfe87
  2977. const m_XK_dead_U = 0xfe89
  2978. const m_XK_dead_a = 0xfe80
  2979. const m_XK_dead_abovecomma = 0xfe64
  2980. const m_XK_dead_abovedot = 0xfe56
  2981. const m_XK_dead_abovereversedcomma = 0xfe65
  2982. const m_XK_dead_abovering = 0xfe58
  2983. const m_XK_dead_aboveverticalline = 0xfe91
  2984. const m_XK_dead_acute = 0xfe51
  2985. const m_XK_dead_belowbreve = 0xfe6b
  2986. const m_XK_dead_belowcircumflex = 0xfe69
  2987. const m_XK_dead_belowcomma = 0xfe6e
  2988. const m_XK_dead_belowdiaeresis = 0xfe6c
  2989. const m_XK_dead_belowdot = 0xfe60
  2990. const m_XK_dead_belowmacron = 0xfe68
  2991. const m_XK_dead_belowring = 0xfe67
  2992. const m_XK_dead_belowtilde = 0xfe6a
  2993. const m_XK_dead_belowverticalline = 0xfe92
  2994. const m_XK_dead_breve = 0xfe55
  2995. const m_XK_dead_capital_schwa = 0xfe8b
  2996. const m_XK_dead_caron = 0xfe5a
  2997. const m_XK_dead_cedilla = 0xfe5b
  2998. const m_XK_dead_circumflex = 0xfe52
  2999. const m_XK_dead_currency = 0xfe6f
  3000. const m_XK_dead_dasia = 0xfe65
  3001. const m_XK_dead_diaeresis = 0xfe57
  3002. const m_XK_dead_doubleacute = 0xfe59
  3003. const m_XK_dead_doublegrave = 0xfe66
  3004. const m_XK_dead_e = 0xfe82
  3005. const m_XK_dead_grave = 0xfe50
  3006. const m_XK_dead_greek = 0xfe8c
  3007. const m_XK_dead_hook = 0xfe61
  3008. const m_XK_dead_horn = 0xfe62
  3009. const m_XK_dead_i = 0xfe84
  3010. const m_XK_dead_invertedbreve = 0xfe6d
  3011. const m_XK_dead_iota = 0xfe5d
  3012. const m_XK_dead_longsolidusoverlay = 0xfe93
  3013. const m_XK_dead_lowline = 0xfe90
  3014. const m_XK_dead_macron = 0xfe54
  3015. const m_XK_dead_o = 0xfe86
  3016. const m_XK_dead_ogonek = 0xfe5c
  3017. const m_XK_dead_perispomeni = 0xfe53
  3018. const m_XK_dead_psili = 0xfe64
  3019. const m_XK_dead_semivoiced_sound = 0xfe5f
  3020. const m_XK_dead_small_schwa = 0xfe8a
  3021. const m_XK_dead_stroke = 0xfe63
  3022. const m_XK_dead_tilde = 0xfe53
  3023. const m_XK_dead_u = 0xfe88
  3024. const m_XK_dead_voiced_sound = 0xfe5e
  3025. const m_XK_degree = 0x00b0
  3026. const m_XK_diaeresis = 0x00a8
  3027. const m_XK_dintegral = 0x100222C
  3028. const m_XK_division = 0x00f7
  3029. const m_XK_dollar = 0x0024
  3030. const m_XK_doubleacute = 0x01bd
  3031. const m_XK_dstroke = 0x01f0
  3032. const m_XK_e = 0x0065
  3033. const m_XK_eabovedot = 0x03ec
  3034. const m_XK_eacute = 0x00e9
  3035. const m_XK_ebelowdot = 0x1001eb9
  3036. const m_XK_ecaron = 0x01ec
  3037. const m_XK_ecircumflex = 0x00ea
  3038. const m_XK_ecircumflexacute = 0x1001ebf
  3039. const m_XK_ecircumflexbelowdot = 0x1001ec7
  3040. const m_XK_ecircumflexgrave = 0x1001ec1
  3041. const m_XK_ecircumflexhook = 0x1001ec3
  3042. const m_XK_ecircumflextilde = 0x1001ec5
  3043. const m_XK_ediaeresis = 0x00eb
  3044. const m_XK_egrave = 0x00e8
  3045. const m_XK_ehook = 0x1001ebb
  3046. const m_XK_eightsubscript = 0x1002088
  3047. const m_XK_eightsuperior = 0x1002078
  3048. const m_XK_elementof = 0x1002208
  3049. const m_XK_emacron = 0x03ba
  3050. const m_XK_emptyset = 0x1002205
  3051. const m_XK_eng = 0x03bf
  3052. const m_XK_eogonek = 0x01ea
  3053. const m_XK_equal = 0x003d
  3054. const m_XK_eth = 0x00f0
  3055. const m_XK_etilde = 0x1001ebd
  3056. const m_XK_exclam = 0x0021
  3057. const m_XK_exclamdown = 0x00a1
  3058. const m_XK_ezh = 0x1000292
  3059. const m_XK_f = 0x0066
  3060. const m_XK_fabovedot = 0x1001e1f
  3061. const m_XK_fivesubscript = 0x1002085
  3062. const m_XK_fivesuperior = 0x1002075
  3063. const m_XK_foursubscript = 0x1002084
  3064. const m_XK_foursuperior = 0x1002074
  3065. const m_XK_fourthroot = 0x100221C
  3066. const m_XK_g = 0x0067
  3067. const m_XK_gabovedot = 0x02f5
  3068. const m_XK_gbreve = 0x02bb
  3069. const m_XK_gcaron = 0x10001e7
  3070. const m_XK_gcedilla = 0x03bb
  3071. const m_XK_gcircumflex = 0x02f8
  3072. const m_XK_grave = 0x0060
  3073. const m_XK_greater = 0x003e
  3074. const m_XK_guillemotleft = 0x00ab
  3075. const m_XK_guillemotright = 0x00bb
  3076. const m_XK_h = 0x0068
  3077. const m_XK_hcircumflex = 0x02b6
  3078. const m_XK_hebrew_aleph = 0x0ce0
  3079. const m_XK_hebrew_ayin = 0x0cf2
  3080. const m_XK_hebrew_bet = 0x0ce1
  3081. const m_XK_hebrew_beth = 0x0ce1
  3082. const m_XK_hebrew_chet = 0x0ce7
  3083. const m_XK_hebrew_dalet = 0x0ce3
  3084. const m_XK_hebrew_daleth = 0x0ce3
  3085. const m_XK_hebrew_doublelowline = 0x0cdf
  3086. const m_XK_hebrew_finalkaph = 0x0cea
  3087. const m_XK_hebrew_finalmem = 0x0ced
  3088. const m_XK_hebrew_finalnun = 0x0cef
  3089. const m_XK_hebrew_finalpe = 0x0cf3
  3090. const m_XK_hebrew_finalzade = 0x0cf5
  3091. const m_XK_hebrew_finalzadi = 0x0cf5
  3092. const m_XK_hebrew_gimel = 0x0ce2
  3093. const m_XK_hebrew_gimmel = 0x0ce2
  3094. const m_XK_hebrew_he = 0x0ce4
  3095. const m_XK_hebrew_het = 0x0ce7
  3096. const m_XK_hebrew_kaph = 0x0ceb
  3097. const m_XK_hebrew_kuf = 0x0cf7
  3098. const m_XK_hebrew_lamed = 0x0cec
  3099. const m_XK_hebrew_mem = 0x0cee
  3100. const m_XK_hebrew_nun = 0x0cf0
  3101. const m_XK_hebrew_pe = 0x0cf4
  3102. const m_XK_hebrew_qoph = 0x0cf7
  3103. const m_XK_hebrew_resh = 0x0cf8
  3104. const m_XK_hebrew_samech = 0x0cf1
  3105. const m_XK_hebrew_samekh = 0x0cf1
  3106. const m_XK_hebrew_shin = 0x0cf9
  3107. const m_XK_hebrew_taf = 0x0cfa
  3108. const m_XK_hebrew_taw = 0x0cfa
  3109. const m_XK_hebrew_tet = 0x0ce8
  3110. const m_XK_hebrew_teth = 0x0ce8
  3111. const m_XK_hebrew_waw = 0x0ce5
  3112. const m_XK_hebrew_yod = 0x0ce9
  3113. const m_XK_hebrew_zade = 0x0cf6
  3114. const m_XK_hebrew_zadi = 0x0cf6
  3115. const m_XK_hebrew_zain = 0x0ce6
  3116. const m_XK_hebrew_zayin = 0x0ce6
  3117. const m_XK_hstroke = 0x02b1
  3118. const m_XK_hyphen = 0x00ad
  3119. const m_XK_i = 0x0069
  3120. const m_XK_iacute = 0x00ed
  3121. const m_XK_ibelowdot = 0x1001ecb
  3122. const m_XK_ibreve = 0x100012d
  3123. const m_XK_icircumflex = 0x00ee
  3124. const m_XK_idiaeresis = 0x00ef
  3125. const m_XK_idotless = 0x02b9
  3126. const m_XK_igrave = 0x00ec
  3127. const m_XK_ihook = 0x1001ec9
  3128. const m_XK_imacron = 0x03ef
  3129. const m_XK_iogonek = 0x03e7
  3130. const m_XK_itilde = 0x03b5
  3131. const m_XK_j = 0x006a
  3132. const m_XK_jcircumflex = 0x02bc
  3133. const m_XK_k = 0x006b
  3134. const m_XK_kana_A = 0x04b1
  3135. const m_XK_kana_CHI = 0x04c1
  3136. const m_XK_kana_E = 0x04b4
  3137. const m_XK_kana_FU = 0x04cc
  3138. const m_XK_kana_HA = 0x04ca
  3139. const m_XK_kana_HE = 0x04cd
  3140. const m_XK_kana_HI = 0x04cb
  3141. const m_XK_kana_HO = 0x04ce
  3142. const m_XK_kana_HU = 0x04cc
  3143. const m_XK_kana_I = 0x04b2
  3144. const m_XK_kana_KA = 0x04b6
  3145. const m_XK_kana_KE = 0x04b9
  3146. const m_XK_kana_KI = 0x04b7
  3147. const m_XK_kana_KO = 0x04ba
  3148. const m_XK_kana_KU = 0x04b8
  3149. const m_XK_kana_MA = 0x04cf
  3150. const m_XK_kana_ME = 0x04d2
  3151. const m_XK_kana_MI = 0x04d0
  3152. const m_XK_kana_MO = 0x04d3
  3153. const m_XK_kana_MU = 0x04d1
  3154. const m_XK_kana_N = 0x04dd
  3155. const m_XK_kana_NA = 0x04c5
  3156. const m_XK_kana_NE = 0x04c8
  3157. const m_XK_kana_NI = 0x04c6
  3158. const m_XK_kana_NO = 0x04c9
  3159. const m_XK_kana_NU = 0x04c7
  3160. const m_XK_kana_O = 0x04b5
  3161. const m_XK_kana_RA = 0x04d7
  3162. const m_XK_kana_RE = 0x04da
  3163. const m_XK_kana_RI = 0x04d8
  3164. const m_XK_kana_RO = 0x04db
  3165. const m_XK_kana_RU = 0x04d9
  3166. const m_XK_kana_SA = 0x04bb
  3167. const m_XK_kana_SE = 0x04be
  3168. const m_XK_kana_SHI = 0x04bc
  3169. const m_XK_kana_SO = 0x04bf
  3170. const m_XK_kana_SU = 0x04bd
  3171. const m_XK_kana_TA = 0x04c0
  3172. const m_XK_kana_TE = 0x04c3
  3173. const m_XK_kana_TI = 0x04c1
  3174. const m_XK_kana_TO = 0x04c4
  3175. const m_XK_kana_TSU = 0x04c2
  3176. const m_XK_kana_TU = 0x04c2
  3177. const m_XK_kana_U = 0x04b3
  3178. const m_XK_kana_WA = 0x04dc
  3179. const m_XK_kana_WO = 0x04a6
  3180. const m_XK_kana_YA = 0x04d4
  3181. const m_XK_kana_YO = 0x04d6
  3182. const m_XK_kana_YU = 0x04d5
  3183. const m_XK_kana_a = 0x04a7
  3184. const m_XK_kana_closingbracket = 0x04a3
  3185. const m_XK_kana_comma = 0x04a4
  3186. const m_XK_kana_conjunctive = 0x04a5
  3187. const m_XK_kana_e = 0x04aa
  3188. const m_XK_kana_fullstop = 0x04a1
  3189. const m_XK_kana_i = 0x04a8
  3190. const m_XK_kana_middledot = 0x04a5
  3191. const m_XK_kana_o = 0x04ab
  3192. const m_XK_kana_openingbracket = 0x04a2
  3193. const m_XK_kana_switch = 0xff7e
  3194. const m_XK_kana_tsu = 0x04af
  3195. const m_XK_kana_tu = 0x04af
  3196. const m_XK_kana_u = 0x04a9
  3197. const m_XK_kana_ya = 0x04ac
  3198. const m_XK_kana_yo = 0x04ae
  3199. const m_XK_kana_yu = 0x04ad
  3200. const m_XK_kappa = 0x03a2
  3201. const m_XK_kcedilla = 0x03f3
  3202. const m_XK_kra = 0x03a2
  3203. const m_XK_l = 0x006c
  3204. const m_XK_lacute = 0x01e5
  3205. const m_XK_lbelowdot = 0x1001e37
  3206. const m_XK_lcaron = 0x01b5
  3207. const m_XK_lcedilla = 0x03b6
  3208. const m_XK_less = 0x003c
  3209. const m_XK_lstroke = 0x01b3
  3210. const m_XK_m = 0x006d
  3211. const m_XK_mabovedot = 0x1001e41
  3212. const m_XK_macron = 0x00af
  3213. const m_XK_masculine = 0x00ba
  3214. const m_XK_minus = 0x002d
  3215. const m_XK_mu = 0x00b5
  3216. const m_XK_multiply = 0x00d7
  3217. const m_XK_n = 0x006e
  3218. const m_XK_nacute = 0x01f1
  3219. const m_XK_ncaron = 0x01f2
  3220. const m_XK_ncedilla = 0x03f1
  3221. const m_XK_ninesubscript = 0x1002089
  3222. const m_XK_ninesuperior = 0x1002079
  3223. const m_XK_nobreakspace = 0x00a0
  3224. const m_XK_notapproxeq = 0x1002247
  3225. const m_XK_notelementof = 0x1002209
  3226. const m_XK_notidentical = 0x1002262
  3227. const m_XK_notsign = 0x00ac
  3228. const m_XK_ntilde = 0x00f1
  3229. const m_XK_numbersign = 0x0023
  3230. const m_XK_numerosign = 0x06b0
  3231. const m_XK_o = 0x006f
  3232. const m_XK_oacute = 0x00f3
  3233. const m_XK_obarred = 0x1000275
  3234. const m_XK_obelowdot = 0x1001ecd
  3235. const m_XK_ocaron = 0x10001d2
  3236. const m_XK_ocircumflex = 0x00f4
  3237. const m_XK_ocircumflexacute = 0x1001ed1
  3238. const m_XK_ocircumflexbelowdot = 0x1001ed9
  3239. const m_XK_ocircumflexgrave = 0x1001ed3
  3240. const m_XK_ocircumflexhook = 0x1001ed5
  3241. const m_XK_ocircumflextilde = 0x1001ed7
  3242. const m_XK_odiaeresis = 0x00f6
  3243. const m_XK_odoubleacute = 0x01f5
  3244. const m_XK_oe = 0x13bd
  3245. const m_XK_ogonek = 0x01b2
  3246. const m_XK_ograve = 0x00f2
  3247. const m_XK_ohook = 0x1001ecf
  3248. const m_XK_ohorn = 0x10001a1
  3249. const m_XK_ohornacute = 0x1001edb
  3250. const m_XK_ohornbelowdot = 0x1001ee3
  3251. const m_XK_ohorngrave = 0x1001edd
  3252. const m_XK_ohornhook = 0x1001edf
  3253. const m_XK_ohorntilde = 0x1001ee1
  3254. const m_XK_omacron = 0x03f2
  3255. const m_XK_onehalf = 0x00bd
  3256. const m_XK_onequarter = 0x00bc
  3257. const m_XK_onesubscript = 0x1002081
  3258. const m_XK_onesuperior = 0x00b9
  3259. const m_XK_ooblique = 0x00f8
  3260. const m_XK_ordfeminine = 0x00aa
  3261. const m_XK_oslash = 0x00f8
  3262. const m_XK_otilde = 0x00f5
  3263. const m_XK_overline = 0x047e
  3264. const m_XK_p = 0x0070
  3265. const m_XK_pabovedot = 0x1001e57
  3266. const m_XK_paragraph = 0x00b6
  3267. const m_XK_parenleft = 0x0028
  3268. const m_XK_parenright = 0x0029
  3269. const m_XK_partdifferential = 0x1002202
  3270. const m_XK_percent = 0x0025
  3271. const m_XK_period = 0x002e
  3272. const m_XK_periodcentered = 0x00b7
  3273. const m_XK_plus = 0x002b
  3274. const m_XK_plusminus = 0x00b1
  3275. const m_XK_prolongedsound = 0x04b0
  3276. const m_XK_q = 0x0071
  3277. const m_XK_question = 0x003f
  3278. const m_XK_questiondown = 0x00bf
  3279. const m_XK_quotedbl = 0x0022
  3280. const m_XK_quoteleft = 0x0060
  3281. const m_XK_quoteright = 0x0027
  3282. const m_XK_r = 0x0072
  3283. const m_XK_racute = 0x01e0
  3284. const m_XK_rcaron = 0x01f8
  3285. const m_XK_rcedilla = 0x03b3
  3286. const m_XK_registered = 0x00ae
  3287. const m_XK_s = 0x0073
  3288. const m_XK_sabovedot = 0x1001e61
  3289. const m_XK_sacute = 0x01b6
  3290. const m_XK_scaron = 0x01b9
  3291. const m_XK_scedilla = 0x01ba
  3292. const m_XK_schwa = 0x1000259
  3293. const m_XK_scircumflex = 0x02fe
  3294. const m_XK_script_switch = 0xff7e
  3295. const m_XK_section = 0x00a7
  3296. const m_XK_semicolon = 0x003b
  3297. const m_XK_semivoicedsound = 0x04df
  3298. const m_XK_sevensubscript = 0x1002087
  3299. const m_XK_sevensuperior = 0x1002077
  3300. const m_XK_sixsubscript = 0x1002086
  3301. const m_XK_sixsuperior = 0x1002076
  3302. const m_XK_slash = 0x002f
  3303. const m_XK_space = 0x0020
  3304. const m_XK_squareroot = 0x100221A
  3305. const m_XK_ssharp = 0x00df
  3306. const m_XK_sterling = 0x00a3
  3307. const m_XK_stricteq = 0x1002263
  3308. const m_XK_t = 0x0074
  3309. const m_XK_tabovedot = 0x1001e6b
  3310. const m_XK_tcaron = 0x01bb
  3311. const m_XK_tcedilla = 0x01fe
  3312. const m_XK_thorn = 0x00fe
  3313. const m_XK_threequarters = 0x00be
  3314. const m_XK_threesubscript = 0x1002083
  3315. const m_XK_threesuperior = 0x00b3
  3316. const m_XK_tintegral = 0x100222D
  3317. const m_XK_tslash = 0x03bc
  3318. const m_XK_twosubscript = 0x1002082
  3319. const m_XK_twosuperior = 0x00b2
  3320. const m_XK_u = 0x0075
  3321. const m_XK_uacute = 0x00fa
  3322. const m_XK_ubelowdot = 0x1001ee5
  3323. const m_XK_ubreve = 0x02fd
  3324. const m_XK_ucircumflex = 0x00fb
  3325. const m_XK_udiaeresis = 0x00fc
  3326. const m_XK_udoubleacute = 0x01fb
  3327. const m_XK_ugrave = 0x00f9
  3328. const m_XK_uhook = 0x1001ee7
  3329. const m_XK_uhorn = 0x10001b0
  3330. const m_XK_uhornacute = 0x1001ee9
  3331. const m_XK_uhornbelowdot = 0x1001ef1
  3332. const m_XK_uhorngrave = 0x1001eeb
  3333. const m_XK_uhornhook = 0x1001eed
  3334. const m_XK_uhorntilde = 0x1001eef
  3335. const m_XK_umacron = 0x03fe
  3336. const m_XK_underscore = 0x005f
  3337. const m_XK_uogonek = 0x03f9
  3338. const m_XK_uring = 0x01f9
  3339. const m_XK_utilde = 0x03fd
  3340. const m_XK_v = 0x0076
  3341. const m_XK_voicedsound = 0x04de
  3342. const m_XK_w = 0x0077
  3343. const m_XK_wacute = 0x1001e83
  3344. const m_XK_wcircumflex = 0x1000175
  3345. const m_XK_wdiaeresis = 0x1001e85
  3346. const m_XK_wgrave = 0x1001e81
  3347. const m_XK_x = 0x0078
  3348. const m_XK_xabovedot = 0x1001e8b
  3349. const m_XK_y = 0x0079
  3350. const m_XK_yacute = 0x00fd
  3351. const m_XK_ybelowdot = 0x1001ef5
  3352. const m_XK_ycircumflex = 0x1000177
  3353. const m_XK_ydiaeresis = 0x00ff
  3354. const m_XK_yen = 0x00a5
  3355. const m_XK_ygrave = 0x1001ef3
  3356. const m_XK_yhook = 0x1001ef7
  3357. const m_XK_ytilde = 0x1001ef9
  3358. const m_XK_z = 0x007a
  3359. const m_XK_zabovedot = 0x01bf
  3360. const m_XK_zacute = 0x01bc
  3361. const m_XK_zcaron = 0x01be
  3362. const m_XK_zerosubscript = 0x1002080
  3363. const m_XK_zerosuperior = 0x1002070
  3364. const m_XK_zstroke = 0x10001b6
  3365. const m_XLookupBoth = 4
  3366. const m_XLookupChars = 2
  3367. const m_XLookupKeySym = 3
  3368. const m_XLookupNone = 1
  3369. const m_XMD_H = 1
  3370. const m_XMUTEX_INITIALIZER = "PTHREAD_MUTEX_INITIALIZER"
  3371. const m_XNArea = "area"
  3372. const m_XNAreaNeeded = "areaNeeded"
  3373. const m_XNBackground = "background"
  3374. const m_XNBackgroundPixmap = "backgroundPixmap"
  3375. const m_XNBaseFontName = "baseFontName"
  3376. const m_XNClientWindow = "clientWindow"
  3377. const m_XNColormap = "colorMap"
  3378. const m_XNContextualDrawing = "contextualDrawing"
  3379. const m_XNCursor = "cursor"
  3380. const m_XNDefaultString = "defaultString"
  3381. const m_XNDestroyCallback = "destroyCallback"
  3382. const m_XNDirectionalDependentDrawing = "directionalDependentDrawing"
  3383. const m_XNFilterEvents = "filterEvents"
  3384. const m_XNFocusWindow = "focusWindow"
  3385. const m_XNFontInfo = "fontInfo"
  3386. const m_XNFontSet = "fontSet"
  3387. const m_XNForeground = "foreground"
  3388. const m_XNGeometryCallback = "geometryCallback"
  3389. const m_XNHotKey = "hotKey"
  3390. const m_XNHotKeyState = "hotKeyState"
  3391. const m_XNInputStyle = "inputStyle"
  3392. const m_XNLineSpace = "lineSpace"
  3393. const m_XNMissingCharSet = "missingCharSet"
  3394. const m_XNOMAutomatic = "omAutomatic"
  3395. const m_XNOrientation = "orientation"
  3396. const m_XNPreeditAttributes = "preeditAttributes"
  3397. const m_XNPreeditCaretCallback = "preeditCaretCallback"
  3398. const m_XNPreeditDoneCallback = "preeditDoneCallback"
  3399. const m_XNPreeditDrawCallback = "preeditDrawCallback"
  3400. const m_XNPreeditStartCallback = "preeditStartCallback"
  3401. const m_XNPreeditState = "preeditState"
  3402. const m_XNPreeditStateNotifyCallback = "preeditStateNotifyCallback"
  3403. const m_XNQueryICValuesList = "queryICValuesList"
  3404. const m_XNQueryIMValuesList = "queryIMValuesList"
  3405. const m_XNQueryInputStyle = "queryInputStyle"
  3406. const m_XNQueryOrientation = "queryOrientation"
  3407. const m_XNR6PreeditCallback = "r6PreeditCallback"
  3408. const m_XNRequiredCharSet = "requiredCharSet"
  3409. const m_XNResetState = "resetState"
  3410. const m_XNResourceClass = "resourceClass"
  3411. const m_XNResourceName = "resourceName"
  3412. const m_XNSeparatorofNestedList = "separatorofNestedList"
  3413. const m_XNSpotLocation = "spotLocation"
  3414. const m_XNStatusAttributes = "statusAttributes"
  3415. const m_XNStatusDoneCallback = "statusDoneCallback"
  3416. const m_XNStatusDrawCallback = "statusDrawCallback"
  3417. const m_XNStatusStartCallback = "statusStartCallback"
  3418. const m_XNStdColormap = "stdColorMap"
  3419. const m_XNStringConversion = "stringConversion"
  3420. const m_XNStringConversionCallback = "stringConversionCallback"
  3421. const m_XNVaNestedList = "XNVaNestedList"
  3422. const m_XNVisiblePosition = "visiblePosition"
  3423. const m_XNegative = 0x0010
  3424. const m_XTHREADS = 1
  3425. const m_XUSE_MTSAFE_API = 1
  3426. const m_XValue = 0x0001
  3427. const m_XYBitmap = 0
  3428. const m_XYPixmap = 1
  3429. const m_X_AllocColor = 84
  3430. const m_X_AllocColorCells = 86
  3431. const m_X_AllocColorPlanes = 87
  3432. const m_X_AllocNamedColor = 85
  3433. const m_X_AllowEvents = 35
  3434. const m_X_Bell = 104
  3435. const m_X_ChangeActivePointerGrab = 30
  3436. const m_X_ChangeGC = 56
  3437. const m_X_ChangeHosts = 109
  3438. const m_X_ChangeKeyboardControl = 102
  3439. const m_X_ChangeKeyboardMapping = 100
  3440. const m_X_ChangePointerControl = 105
  3441. const m_X_ChangeProperty = 18
  3442. const m_X_ChangeSaveSet = 6
  3443. const m_X_ChangeWindowAttributes = 2
  3444. const m_X_CirculateWindow = 13
  3445. const m_X_ClearArea = 61
  3446. const m_X_CloseFont = 46
  3447. const m_X_ConfigureWindow = 12
  3448. const m_X_ConvertSelection = 24
  3449. const m_X_CopyArea = 62
  3450. const m_X_CopyColormapAndFree = 80
  3451. const m_X_CopyGC = 57
  3452. const m_X_CopyPlane = 63
  3453. const m_X_CreateColormap = 78
  3454. const m_X_CreateCursor = 93
  3455. const m_X_CreateGC = 55
  3456. const m_X_CreateGlyphCursor = 94
  3457. const m_X_CreatePixmap = 53
  3458. const m_X_CreateWindow = 1
  3459. const m_X_DeleteProperty = 19
  3460. const m_X_DestroySubwindows = 5
  3461. const m_X_DestroyWindow = 4
  3462. const m_X_Error = 0
  3463. const m_X_FillPoly = 69
  3464. const m_X_ForceScreenSaver = 115
  3465. const m_X_FreeColormap = 79
  3466. const m_X_FreeColors = 88
  3467. const m_X_FreeCursor = 95
  3468. const m_X_FreeGC = 60
  3469. const m_X_FreePixmap = 54
  3470. const m_X_GetAtomName = 17
  3471. const m_X_GetFontPath = 52
  3472. const m_X_GetGeometry = 14
  3473. const m_X_GetImage = 73
  3474. const m_X_GetInputFocus = 43
  3475. const m_X_GetKeyboardControl = 103
  3476. const m_X_GetKeyboardMapping = 101
  3477. const m_X_GetModifierMapping = 119
  3478. const m_X_GetMotionEvents = 39
  3479. const m_X_GetPointerControl = 106
  3480. const m_X_GetPointerMapping = 117
  3481. const m_X_GetProperty = 20
  3482. const m_X_GetScreenSaver = 108
  3483. const m_X_GetSelectionOwner = 23
  3484. const m_X_GetWindowAttributes = 3
  3485. const m_X_GrabButton = 28
  3486. const m_X_GrabKey = 33
  3487. const m_X_GrabKeyboard = 31
  3488. const m_X_GrabPointer = 26
  3489. const m_X_GrabServer = 36
  3490. const m_X_HAVE_UTF8_STRING = 1
  3491. const m_X_ImageText16 = 77
  3492. const m_X_ImageText8 = 76
  3493. const m_X_InstallColormap = 81
  3494. const m_X_InternAtom = 16
  3495. const m_X_KillClient = 113
  3496. const m_X_ListExtensions = 99
  3497. const m_X_ListFonts = 49
  3498. const m_X_ListFontsWithInfo = 50
  3499. const m_X_ListHosts = 110
  3500. const m_X_ListInstalledColormaps = 83
  3501. const m_X_ListProperties = 21
  3502. const m_X_LookupColor = 92
  3503. const m_X_MapSubwindows = 9
  3504. const m_X_MapWindow = 8
  3505. const m_X_NoOperation = 127
  3506. const m_X_OpenFont = 45
  3507. const m_X_PROTOCOL = 11
  3508. const m_X_PROTOCOL_REVISION = 0
  3509. const m_X_PolyArc = 68
  3510. const m_X_PolyFillArc = 71
  3511. const m_X_PolyFillRectangle = 70
  3512. const m_X_PolyLine = 65
  3513. const m_X_PolyPoint = 64
  3514. const m_X_PolyRectangle = 67
  3515. const m_X_PolySegment = 66
  3516. const m_X_PolyText16 = 75
  3517. const m_X_PolyText8 = 74
  3518. const m_X_PutImage = 72
  3519. const m_X_QueryBestSize = 97
  3520. const m_X_QueryColors = 91
  3521. const m_X_QueryExtension = 98
  3522. const m_X_QueryFont = 47
  3523. const m_X_QueryKeymap = 44
  3524. const m_X_QueryPointer = 38
  3525. const m_X_QueryTextExtents = 48
  3526. const m_X_QueryTree = 15
  3527. const m_X_RecolorCursor = 96
  3528. const m_X_RenderAddGlyphs = 20
  3529. const m_X_RenderAddGlyphsFromPicture = 21
  3530. const m_X_RenderAddTraps = 32
  3531. const m_X_RenderChangePicture = 5
  3532. const m_X_RenderColorTrapezoids = 14
  3533. const m_X_RenderColorTriangles = 15
  3534. const m_X_RenderComposite = 8
  3535. const m_X_RenderCompositeGlyphs16 = 24
  3536. const m_X_RenderCompositeGlyphs32 = 25
  3537. const m_X_RenderCompositeGlyphs8 = 23
  3538. const m_X_RenderCreateAnimCursor = 31
  3539. const m_X_RenderCreateConicalGradient = 36
  3540. const m_X_RenderCreateCursor = 27
  3541. const m_X_RenderCreateGlyphSet = 17
  3542. const m_X_RenderCreateLinearGradient = 34
  3543. const m_X_RenderCreatePicture = 4
  3544. const m_X_RenderCreateRadialGradient = 35
  3545. const m_X_RenderCreateSolidFill = 33
  3546. const m_X_RenderFillRectangles = 26
  3547. const m_X_RenderFreeGlyphSet = 19
  3548. const m_X_RenderFreeGlyphs = 22
  3549. const m_X_RenderFreePicture = 7
  3550. const m_X_RenderQueryDithers = 3
  3551. const m_X_RenderQueryFilters = 29
  3552. const m_X_RenderQueryPictFormats = 1
  3553. const m_X_RenderQueryPictIndexValues = 2
  3554. const m_X_RenderQueryVersion = 0
  3555. const m_X_RenderReferenceGlyphSet = 18
  3556. const m_X_RenderScale = 9
  3557. const m_X_RenderSetPictureClipRectangles = 6
  3558. const m_X_RenderSetPictureFilter = 30
  3559. const m_X_RenderSetPictureTransform = 28
  3560. const m_X_RenderTrapezoids = 10
  3561. const m_X_RenderTriFan = 13
  3562. const m_X_RenderTriStrip = 12
  3563. const m_X_RenderTriangles = 11
  3564. const m_X_ReparentWindow = 7
  3565. const m_X_Reply = 1
  3566. const m_X_RotateProperties = 114
  3567. const m_X_SendEvent = 25
  3568. const m_X_SetAccessControl = 111
  3569. const m_X_SetClipRectangles = 59
  3570. const m_X_SetCloseDownMode = 112
  3571. const m_X_SetDashes = 58
  3572. const m_X_SetFontPath = 51
  3573. const m_X_SetInputFocus = 42
  3574. const m_X_SetModifierMapping = 118
  3575. const m_X_SetPointerMapping = 116
  3576. const m_X_SetScreenSaver = 107
  3577. const m_X_SetSelectionOwner = 22
  3578. const m_X_StoreColors = 89
  3579. const m_X_StoreNamedColor = 90
  3580. const m_X_TCP_PORT = 6000
  3581. const m_X_TranslateCoords = 40
  3582. const m_X_UngrabButton = 29
  3583. const m_X_UngrabKey = 34
  3584. const m_X_UngrabKeyboard = 32
  3585. const m_X_UngrabPointer = 27
  3586. const m_X_UngrabServer = 37
  3587. const m_X_UninstallColormap = 82
  3588. const m_X_UnmapSubwindows = 11
  3589. const m_X_UnmapWindow = 10
  3590. const m_X_WarpPointer = 41
  3591. const m_XftVersion = "XFT_VERSION"
  3592. const m_XlibSpecificationRelease = 6
  3593. const m_YNegative = 0x0020
  3594. const m_YSorted = 1
  3595. const m_YValue = 0x0002
  3596. const m_YXBanded = 3
  3597. const m_YXSorted = 2
  3598. const m_ZLNSPERBATCH = 1024
  3599. const m_ZPixmap = 2
  3600. const m_ZRCTSPERBATCH = 256
  3601. const m_ZoomState = 2
  3602. const m__CTYPE_A = 256
  3603. const m__CTYPE_B = 131072
  3604. const m__CTYPE_C = 512
  3605. const m__CTYPE_D = 1024
  3606. const m__CTYPE_G = 2048
  3607. const m__CTYPE_I = 524288
  3608. const m__CTYPE_L = 4096
  3609. const m__CTYPE_P = 8192
  3610. const m__CTYPE_Q = 2097152
  3611. const m__CTYPE_R = 262144
  3612. const m__CTYPE_S = 16384
  3613. const m__CTYPE_SW0 = 0x20000000
  3614. const m__CTYPE_SW1 = 0x40000000
  3615. const m__CTYPE_SW2 = 0x80000000
  3616. const m__CTYPE_SW3 = 0xc0000000
  3617. const m__CTYPE_SWM = 3758096384
  3618. const m__CTYPE_SWS = 30
  3619. const m__CTYPE_T = 1048576
  3620. const m__CTYPE_U = 32768
  3621. const m__CTYPE_X = 65536
  3622. const m__DARWIN_FEATURE_64_BIT_INODE = 1
  3623. const m__DARWIN_FEATURE_ONLY_UNIX_CONFORMANCE = 1
  3624. const m__DARWIN_FEATURE_UNIX_CONFORMANCE = 3
  3625. const m__FORTIFY_SOURCE = 2
  3626. const m__I386_SIGNAL_H_ = 1
  3627. const m__IOFBF = 0
  3628. const m__IOLBF = 1
  3629. const m__IONBF = 2
  3630. const m__LP64 = 1
  3631. const m__PTHREAD_COND_SIG_init = 0x3CB0B1BB
  3632. const m__PTHREAD_ERRORCHECK_MUTEX_SIG_init = 0x32AAABA1
  3633. const m__PTHREAD_FIRSTFIT_MUTEX_SIG_init = 0x32AAABA3
  3634. const m__PTHREAD_MUTEX_SIG_init = 0x32AAABA7
  3635. const m__PTHREAD_ONCE_SIG_init = 0x30B1BCBA
  3636. const m__PTHREAD_RECURSIVE_MUTEX_SIG_init = 0x32AAABA2
  3637. const m__PTHREAD_RWLOCK_SIG_init = 0x2DA8B3B4
  3638. const m__QUAD_HIGHWORD = 1
  3639. const m__QUAD_LOWWORD = 0
  3640. const m__RLIMIT_POSIX_FLAG = 0x1000
  3641. const m__RUNE_MAGIC_A = "RuneMagA"
  3642. const m__STRUCT_MCONTEXT = "_STRUCT_MCONTEXT64"
  3643. const m__WSTOPPED = 0177
  3644. const m__X11_XLIBINT_H_ = 1
  3645. const m__X86_INSTRUCTION_STATE_CACHELINE_SIZE = 64
  3646. const m__XBCOPYFUNC = "_Xbcopy"
  3647. const m__X_INLINE = "inline"
  3648. const m__X_RESTRICT_KYWD = "restrict"
  3649. const m__Xconst = "const"
  3650. const m___API_TO_BE_DEPRECATED = 100000
  3651. const m___API_TO_BE_DEPRECATED_DRIVERKIT = 100000
  3652. const m___API_TO_BE_DEPRECATED_IOS = 100000
  3653. const m___API_TO_BE_DEPRECATED_MACCATALYST = 100000
  3654. const m___API_TO_BE_DEPRECATED_MACOS = 100000
  3655. const m___API_TO_BE_DEPRECATED_TVOS = 100000
  3656. const m___API_TO_BE_DEPRECATED_VISIONOS = 100000
  3657. const m___API_TO_BE_DEPRECATED_WATCHOS = 100000
  3658. const m___APPLE_CC__ = 6000
  3659. const m___APPLE__ = 1
  3660. const m___ATOMIC_ACQUIRE = 2
  3661. const m___ATOMIC_ACQ_REL = 4
  3662. const m___ATOMIC_CONSUME = 1
  3663. const m___ATOMIC_RELAXED = 0
  3664. const m___ATOMIC_RELEASE = 3
  3665. const m___ATOMIC_SEQ_CST = 5
  3666. const m___BIGGEST_ALIGNMENT__ = 16
  3667. const m___BITINT_MAXWIDTH__ = 128
  3668. const m___BLOCKS__ = 1
  3669. const m___BOOL_WIDTH__ = 8
  3670. const m___BRIDGEOS_2_0 = 20000
  3671. const m___BRIDGEOS_3_0 = 30000
  3672. const m___BRIDGEOS_3_1 = 30100
  3673. const m___BRIDGEOS_3_4 = 30400
  3674. const m___BRIDGEOS_4_0 = 40000
  3675. const m___BRIDGEOS_4_1 = 40100
  3676. const m___BRIDGEOS_5_0 = 50000
  3677. const m___BRIDGEOS_5_1 = 50100
  3678. const m___BRIDGEOS_5_3 = 50300
  3679. const m___BRIDGEOS_6_0 = 60000
  3680. const m___BRIDGEOS_6_2 = 60200
  3681. const m___BRIDGEOS_6_4 = 60400
  3682. const m___BRIDGEOS_6_5 = 60500
  3683. const m___BRIDGEOS_6_6 = 60600
  3684. const m___BRIDGEOS_7_0 = 70000
  3685. const m___BRIDGEOS_7_1 = 70100
  3686. const m___BRIDGEOS_7_2 = 70200
  3687. const m___BRIDGEOS_7_3 = 70300
  3688. const m___BRIDGEOS_7_4 = 70400
  3689. const m___BRIDGEOS_7_6 = 70600
  3690. const m___BRIDGEOS_8_0 = 80000
  3691. const m___BRIDGEOS_8_1 = 80100
  3692. const m___BRIDGEOS_8_2 = 80200
  3693. const m___BRIDGEOS_8_3 = 80300
  3694. const m___BRIDGEOS_8_4 = 80400
  3695. const m___BYTE_ORDER__ = "__ORDER_LITTLE_ENDIAN__"
  3696. const m___CCGO__ = 1
  3697. const m___CHAR_BIT__ = 8
  3698. const m___CLANG_ATOMIC_BOOL_LOCK_FREE = 2
  3699. const m___CLANG_ATOMIC_CHAR16_T_LOCK_FREE = 2
  3700. const m___CLANG_ATOMIC_CHAR32_T_LOCK_FREE = 2
  3701. const m___CLANG_ATOMIC_CHAR_LOCK_FREE = 2
  3702. const m___CLANG_ATOMIC_INT_LOCK_FREE = 2
  3703. const m___CLANG_ATOMIC_LLONG_LOCK_FREE = 2
  3704. const m___CLANG_ATOMIC_LONG_LOCK_FREE = 2
  3705. const m___CLANG_ATOMIC_POINTER_LOCK_FREE = 2
  3706. const m___CLANG_ATOMIC_SHORT_LOCK_FREE = 2
  3707. const m___CLANG_ATOMIC_WCHAR_T_LOCK_FREE = 2
  3708. const m___CONSTANT_CFSTRINGS__ = 1
  3709. const m___DARWIN_64_BIT_INO_T = 1
  3710. const m___DARWIN_BIG_ENDIAN = 4321
  3711. const m___DARWIN_BYTE_ORDER = "__DARWIN_LITTLE_ENDIAN"
  3712. const m___DARWIN_CTYPE_TOP_inline = "__header_inline"
  3713. const m___DARWIN_CTYPE_inline = "__header_inline"
  3714. const m___DARWIN_C_ANSI = 010000
  3715. const m___DARWIN_C_FULL = 900000
  3716. const m___DARWIN_C_LEVEL = "__DARWIN_C_FULL"
  3717. const m___DARWIN_FD_SETSIZE = 1024
  3718. const m___DARWIN_LITTLE_ENDIAN = 1234
  3719. const m___DARWIN_NBBY = 8
  3720. const m___DARWIN_NON_CANCELABLE = 0
  3721. const m___DARWIN_NO_LONG_LONG = 0
  3722. const m___DARWIN_NSIG = 32
  3723. const m___DARWIN_ONLY_64_BIT_INO_T = 0
  3724. const m___DARWIN_ONLY_UNIX_CONFORMANCE = 1
  3725. const m___DARWIN_ONLY_VERS_1050 = 0
  3726. const m___DARWIN_PDP_ENDIAN = 3412
  3727. const m___DARWIN_SUF_1050 = "$1050"
  3728. const m___DARWIN_SUF_64_BIT_INO_T = "$INODE64"
  3729. const m___DARWIN_SUF_EXTSN = "$DARWIN_EXTSN"
  3730. const m___DARWIN_UNIX03 = 1
  3731. const m___DARWIN_VERS_1050 = 1
  3732. const m___DARWIN_WCHAR_MAX = "__WCHAR_MAX__"
  3733. const m___DBL_DECIMAL_DIG__ = 17
  3734. const m___DBL_DENORM_MIN__ = 4.9406564584124654e-324
  3735. const m___DBL_DIG__ = 15
  3736. const m___DBL_EPSILON__ = 2.2204460492503131e-16
  3737. const m___DBL_HAS_DENORM__ = 1
  3738. const m___DBL_HAS_INFINITY__ = 1
  3739. const m___DBL_HAS_QUIET_NAN__ = 1
  3740. const m___DBL_MANT_DIG__ = 53
  3741. const m___DBL_MAX_10_EXP__ = 308
  3742. const m___DBL_MAX_EXP__ = 1024
  3743. const m___DBL_MAX__ = 1.7976931348623157e+308
  3744. const m___DBL_MIN__ = 2.2250738585072014e-308
  3745. const m___DECIMAL_DIG__ = "__LDBL_DECIMAL_DIG__"
  3746. const m___DRIVERKIT_19_0 = 190000
  3747. const m___DRIVERKIT_20_0 = 200000
  3748. const m___DRIVERKIT_21_0 = 210000
  3749. const m___DRIVERKIT_22_0 = 220000
  3750. const m___DRIVERKIT_22_4 = 220400
  3751. const m___DRIVERKIT_22_5 = 220500
  3752. const m___DRIVERKIT_22_6 = 220600
  3753. const m___DRIVERKIT_23_0 = 230000
  3754. const m___DRIVERKIT_23_1 = 230100
  3755. const m___DRIVERKIT_23_2 = 230200
  3756. const m___DRIVERKIT_23_3 = 230300
  3757. const m___DRIVERKIT_23_4 = 230400
  3758. const m___DYNAMIC__ = 1
  3759. const m___ENABLE_LEGACY_MAC_AVAILABILITY = 1
  3760. const m___ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ = 140000
  3761. const m___ENVIRONMENT_OS_VERSION_MIN_REQUIRED__ = 140000
  3762. const m___FINITE_MATH_ONLY__ = 0
  3763. const m___FLT16_DECIMAL_DIG__ = 5
  3764. const m___FLT16_DENORM_MIN__ = 5.9604644775390625e-8
  3765. const m___FLT16_DIG__ = 3
  3766. const m___FLT16_EPSILON__ = 9.765625e-4
  3767. const m___FLT16_HAS_DENORM__ = 1
  3768. const m___FLT16_HAS_INFINITY__ = 1
  3769. const m___FLT16_HAS_QUIET_NAN__ = 1
  3770. const m___FLT16_MANT_DIG__ = 11
  3771. const m___FLT16_MAX_10_EXP__ = 4
  3772. const m___FLT16_MAX_EXP__ = 16
  3773. const m___FLT16_MAX__ = 6.5504e+4
  3774. const m___FLT16_MIN__ = 6.103515625e-5
  3775. const m___FLT_DECIMAL_DIG__ = 9
  3776. const m___FLT_DENORM_MIN__ = 1.40129846e-45
  3777. const m___FLT_DIG__ = 6
  3778. const m___FLT_EPSILON__ = 1.19209290e-7
  3779. const m___FLT_HAS_DENORM__ = 1
  3780. const m___FLT_HAS_INFINITY__ = 1
  3781. const m___FLT_HAS_QUIET_NAN__ = 1
  3782. const m___FLT_MANT_DIG__ = 24
  3783. const m___FLT_MAX_10_EXP__ = 38
  3784. const m___FLT_MAX_EXP__ = 128
  3785. const m___FLT_MAX__ = 3.40282347e+38
  3786. const m___FLT_MIN__ = 1.17549435e-38
  3787. const m___FLT_RADIX__ = 2
  3788. const m___FUNCTION__ = "__func__"
  3789. const m___FXSR__ = 1
  3790. const m___GCC_ASM_FLAG_OUTPUTS__ = 1
  3791. const m___GCC_ATOMIC_BOOL_LOCK_FREE = 2
  3792. const m___GCC_ATOMIC_CHAR16_T_LOCK_FREE = 2
  3793. const m___GCC_ATOMIC_CHAR32_T_LOCK_FREE = 2
  3794. const m___GCC_ATOMIC_CHAR_LOCK_FREE = 2
  3795. const m___GCC_ATOMIC_INT_LOCK_FREE = 2
  3796. const m___GCC_ATOMIC_LLONG_LOCK_FREE = 2
  3797. const m___GCC_ATOMIC_LONG_LOCK_FREE = 2
  3798. const m___GCC_ATOMIC_POINTER_LOCK_FREE = 2
  3799. const m___GCC_ATOMIC_SHORT_LOCK_FREE = 2
  3800. const m___GCC_ATOMIC_TEST_AND_SET_TRUEVAL = 1
  3801. const m___GCC_ATOMIC_WCHAR_T_LOCK_FREE = 2
  3802. const m___GCC_HAVE_DWARF2_CFI_ASM = 1
  3803. const m___GCC_HAVE_SYNC_COMPARE_AND_SWAP_1 = 1
  3804. const m___GCC_HAVE_SYNC_COMPARE_AND_SWAP_16 = 1
  3805. const m___GCC_HAVE_SYNC_COMPARE_AND_SWAP_2 = 1
  3806. const m___GCC_HAVE_SYNC_COMPARE_AND_SWAP_4 = 1
  3807. const m___GCC_HAVE_SYNC_COMPARE_AND_SWAP_8 = 1
  3808. const m___GNUC_MINOR__ = 2
  3809. const m___GNUC_PATCHLEVEL__ = 1
  3810. const m___GNUC_STDC_INLINE__ = 1
  3811. const m___GNUC_VA_LIST = 1
  3812. const m___GNUC__ = 4
  3813. const m___GXX_ABI_VERSION = 1002
  3814. const m___INT16_FMTd__ = "hd"
  3815. const m___INT16_FMTi__ = "hi"
  3816. const m___INT16_MAX__ = 32767
  3817. const m___INT16_TYPE__ = "short"
  3818. const m___INT32_FMTd__ = "d"
  3819. const m___INT32_FMTi__ = "i"
  3820. const m___INT32_MAX__ = 2147483647
  3821. const m___INT32_TYPE__ = "int"
  3822. const m___INT64_C_SUFFIX__ = "LL"
  3823. const m___INT64_FMTd__ = "lld"
  3824. const m___INT64_FMTi__ = "lli"
  3825. const m___INT64_MAX__ = 9223372036854775807
  3826. const m___INT8_FMTd__ = "hhd"
  3827. const m___INT8_FMTi__ = "hhi"
  3828. const m___INT8_MAX__ = 127
  3829. const m___INTMAX_C_SUFFIX__ = "L"
  3830. const m___INTMAX_FMTd__ = "ld"
  3831. const m___INTMAX_FMTi__ = "li"
  3832. const m___INTMAX_MAX__ = 9223372036854775807
  3833. const m___INTMAX_WIDTH__ = 64
  3834. const m___INTPTR_FMTd__ = "ld"
  3835. const m___INTPTR_FMTi__ = "li"
  3836. const m___INTPTR_MAX__ = 9223372036854775807
  3837. const m___INTPTR_WIDTH__ = 64
  3838. const m___INT_FAST16_FMTd__ = "hd"
  3839. const m___INT_FAST16_FMTi__ = "hi"
  3840. const m___INT_FAST16_MAX__ = 32767
  3841. const m___INT_FAST16_TYPE__ = "short"
  3842. const m___INT_FAST16_WIDTH__ = 16
  3843. const m___INT_FAST32_FMTd__ = "d"
  3844. const m___INT_FAST32_FMTi__ = "i"
  3845. const m___INT_FAST32_MAX__ = 2147483647
  3846. const m___INT_FAST32_TYPE__ = "int"
  3847. const m___INT_FAST32_WIDTH__ = 32
  3848. const m___INT_FAST64_FMTd__ = "lld"
  3849. const m___INT_FAST64_FMTi__ = "lli"
  3850. const m___INT_FAST64_MAX__ = 9223372036854775807
  3851. const m___INT_FAST64_WIDTH__ = 64
  3852. const m___INT_FAST8_FMTd__ = "hhd"
  3853. const m___INT_FAST8_FMTi__ = "hhi"
  3854. const m___INT_FAST8_MAX__ = 127
  3855. const m___INT_FAST8_WIDTH__ = 8
  3856. const m___INT_LEAST16_FMTd__ = "hd"
  3857. const m___INT_LEAST16_FMTi__ = "hi"
  3858. const m___INT_LEAST16_MAX__ = 32767
  3859. const m___INT_LEAST16_TYPE__ = "short"
  3860. const m___INT_LEAST16_WIDTH__ = 16
  3861. const m___INT_LEAST32_FMTd__ = "d"
  3862. const m___INT_LEAST32_FMTi__ = "i"
  3863. const m___INT_LEAST32_MAX__ = 2147483647
  3864. const m___INT_LEAST32_TYPE__ = "int"
  3865. const m___INT_LEAST32_WIDTH__ = 32
  3866. const m___INT_LEAST64_FMTd__ = "lld"
  3867. const m___INT_LEAST64_FMTi__ = "lli"
  3868. const m___INT_LEAST64_MAX = "INT64_MAX"
  3869. const m___INT_LEAST64_MAX__ = 9223372036854775807
  3870. const m___INT_LEAST64_MIN = "INT64_MIN"
  3871. const m___INT_LEAST64_WIDTH__ = 64
  3872. const m___INT_LEAST8_FMTd__ = "hhd"
  3873. const m___INT_LEAST8_FMTi__ = "hhi"
  3874. const m___INT_LEAST8_MAX__ = 127
  3875. const m___INT_LEAST8_WIDTH__ = 8
  3876. const m___INT_MAX__ = 2147483647
  3877. const m___INT_WIDTH__ = 32
  3878. const m___IPHONE_10_0 = 100000
  3879. const m___IPHONE_10_1 = 100100
  3880. const m___IPHONE_10_2 = 100200
  3881. const m___IPHONE_10_3 = 100300
  3882. const m___IPHONE_11_0 = 110000
  3883. const m___IPHONE_11_1 = 110100
  3884. const m___IPHONE_11_2 = 110200
  3885. const m___IPHONE_11_3 = 110300
  3886. const m___IPHONE_11_4 = 110400
  3887. const m___IPHONE_12_0 = 120000
  3888. const m___IPHONE_12_1 = 120100
  3889. const m___IPHONE_12_2 = 120200
  3890. const m___IPHONE_12_3 = 120300
  3891. const m___IPHONE_12_4 = 120400
  3892. const m___IPHONE_13_0 = 130000
  3893. const m___IPHONE_13_1 = 130100
  3894. const m___IPHONE_13_2 = 130200
  3895. const m___IPHONE_13_3 = 130300
  3896. const m___IPHONE_13_4 = 130400
  3897. const m___IPHONE_13_5 = 130500
  3898. const m___IPHONE_13_6 = 130600
  3899. const m___IPHONE_13_7 = 130700
  3900. const m___IPHONE_14_0 = 140000
  3901. const m___IPHONE_14_1 = 140100
  3902. const m___IPHONE_14_2 = 140200
  3903. const m___IPHONE_14_3 = 140300
  3904. const m___IPHONE_14_4 = 140400
  3905. const m___IPHONE_14_5 = 140500
  3906. const m___IPHONE_14_6 = 140600
  3907. const m___IPHONE_14_7 = 140700
  3908. const m___IPHONE_14_8 = 140800
  3909. const m___IPHONE_15_0 = 150000
  3910. const m___IPHONE_15_1 = 150100
  3911. const m___IPHONE_15_2 = 150200
  3912. const m___IPHONE_15_3 = 150300
  3913. const m___IPHONE_15_4 = 150400
  3914. const m___IPHONE_15_5 = 150500
  3915. const m___IPHONE_15_6 = 150600
  3916. const m___IPHONE_15_7 = 150700
  3917. const m___IPHONE_15_8 = 150800
  3918. const m___IPHONE_16_0 = 160000
  3919. const m___IPHONE_16_1 = 160100
  3920. const m___IPHONE_16_2 = 160200
  3921. const m___IPHONE_16_3 = 160300
  3922. const m___IPHONE_16_4 = 160400
  3923. const m___IPHONE_16_5 = 160500
  3924. const m___IPHONE_16_6 = 160600
  3925. const m___IPHONE_16_7 = 160700
  3926. const m___IPHONE_17_0 = 170000
  3927. const m___IPHONE_17_1 = 170100
  3928. const m___IPHONE_17_2 = 170200
  3929. const m___IPHONE_17_3 = 170300
  3930. const m___IPHONE_17_4 = 170400
  3931. const m___IPHONE_2_0 = 20000
  3932. const m___IPHONE_2_1 = 20100
  3933. const m___IPHONE_2_2 = 20200
  3934. const m___IPHONE_3_0 = 30000
  3935. const m___IPHONE_3_1 = 30100
  3936. const m___IPHONE_3_2 = 30200
  3937. const m___IPHONE_4_0 = 40000
  3938. const m___IPHONE_4_1 = 40100
  3939. const m___IPHONE_4_2 = 40200
  3940. const m___IPHONE_4_3 = 40300
  3941. const m___IPHONE_5_0 = 50000
  3942. const m___IPHONE_5_1 = 50100
  3943. const m___IPHONE_6_0 = 60000
  3944. const m___IPHONE_6_1 = 60100
  3945. const m___IPHONE_7_0 = 70000
  3946. const m___IPHONE_7_1 = 70100
  3947. const m___IPHONE_8_0 = 80000
  3948. const m___IPHONE_8_1 = 80100
  3949. const m___IPHONE_8_2 = 80200
  3950. const m___IPHONE_8_3 = 80300
  3951. const m___IPHONE_8_4 = 80400
  3952. const m___IPHONE_9_0 = 90000
  3953. const m___IPHONE_9_1 = 90100
  3954. const m___IPHONE_9_2 = 90200
  3955. const m___IPHONE_9_3 = 90300
  3956. const m___IPHONE_COMPAT_VERSION = "__IPHONE_4_0"
  3957. const m___LAHF_SAHF__ = 1
  3958. const m___LASTBRANCH_MAX = 32
  3959. const m___LDBL_DECIMAL_DIG__ = 17
  3960. const m___LDBL_DENORM_MIN__ = 4.9406564584124654e-324
  3961. const m___LDBL_DIG__ = 15
  3962. const m___LDBL_EPSILON__ = 2.2204460492503131e-16
  3963. const m___LDBL_HAS_DENORM__ = 1
  3964. const m___LDBL_HAS_INFINITY__ = 1
  3965. const m___LDBL_HAS_QUIET_NAN__ = 1
  3966. const m___LDBL_MANT_DIG__ = 53
  3967. const m___LDBL_MAX_10_EXP__ = 308
  3968. const m___LDBL_MAX_EXP__ = 1024
  3969. const m___LDBL_MAX__ = 1.7976931348623157e+308
  3970. const m___LDBL_MIN__ = 2.2250738585072014e-308
  3971. const m___LITTLE_ENDIAN__ = 1
  3972. const m___LLONG_WIDTH__ = 64
  3973. const m___LONG_LONG_MAX__ = 9223372036854775807
  3974. const m___LONG_MAX__ = 9223372036854775807
  3975. const m___LONG_WIDTH__ = 64
  3976. const m___LP64__ = 1
  3977. const m___MACH__ = 1
  3978. const m___MAC_10_0 = 1000
  3979. const m___MAC_10_1 = 1010
  3980. const m___MAC_10_10 = 101000
  3981. const m___MAC_10_10_2 = 101002
  3982. const m___MAC_10_10_3 = 101003
  3983. const m___MAC_10_11 = 101100
  3984. const m___MAC_10_11_2 = 101102
  3985. const m___MAC_10_11_3 = 101103
  3986. const m___MAC_10_11_4 = 101104
  3987. const m___MAC_10_12 = 101200
  3988. const m___MAC_10_12_1 = 101201
  3989. const m___MAC_10_12_2 = 101202
  3990. const m___MAC_10_12_4 = 101204
  3991. const m___MAC_10_13 = 101300
  3992. const m___MAC_10_13_1 = 101301
  3993. const m___MAC_10_13_2 = 101302
  3994. const m___MAC_10_13_4 = 101304
  3995. const m___MAC_10_14 = 101400
  3996. const m___MAC_10_14_1 = 101401
  3997. const m___MAC_10_14_4 = 101404
  3998. const m___MAC_10_14_5 = 101405
  3999. const m___MAC_10_14_6 = 101406
  4000. const m___MAC_10_15 = 101500
  4001. const m___MAC_10_15_1 = 101501
  4002. const m___MAC_10_15_4 = 101504
  4003. const m___MAC_10_16 = 101600
  4004. const m___MAC_10_2 = 1020
  4005. const m___MAC_10_3 = 1030
  4006. const m___MAC_10_4 = 1040
  4007. const m___MAC_10_5 = 1050
  4008. const m___MAC_10_6 = 1060
  4009. const m___MAC_10_7 = 1070
  4010. const m___MAC_10_8 = 1080
  4011. const m___MAC_10_9 = 1090
  4012. const m___MAC_11_0 = 110000
  4013. const m___MAC_11_1 = 110100
  4014. const m___MAC_11_3 = 110300
  4015. const m___MAC_11_4 = 110400
  4016. const m___MAC_11_5 = 110500
  4017. const m___MAC_11_6 = 110600
  4018. const m___MAC_12_0 = 120000
  4019. const m___MAC_12_1 = 120100
  4020. const m___MAC_12_2 = 120200
  4021. const m___MAC_12_3 = 120300
  4022. const m___MAC_12_4 = 120400
  4023. const m___MAC_12_5 = 120500
  4024. const m___MAC_12_6 = 120600
  4025. const m___MAC_12_7 = 120700
  4026. const m___MAC_13_0 = 130000
  4027. const m___MAC_13_1 = 130100
  4028. const m___MAC_13_2 = 130200
  4029. const m___MAC_13_3 = 130300
  4030. const m___MAC_13_4 = 130400
  4031. const m___MAC_13_5 = 130500
  4032. const m___MAC_13_6 = 130600
  4033. const m___MAC_14_0 = 140000
  4034. const m___MAC_14_1 = 140100
  4035. const m___MAC_14_2 = 140200
  4036. const m___MAC_14_3 = 140300
  4037. const m___MAC_14_4 = 140400
  4038. const m___MAC_OS_X_VERSION_MAX_ALLOWED = "__MAC_14_4"
  4039. const m___MAC_OS_X_VERSION_MIN_REQUIRED = "__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__"
  4040. const m___MMX__ = 1
  4041. const m___NO_INLINE__ = 1
  4042. const m___NO_MATH_ERRNO__ = 1
  4043. const m___NO_MATH_INLINES = 1
  4044. const m___OBJC_BOOL_IS_BOOL = 0
  4045. const m___OPENCL_MEMORY_SCOPE_ALL_SVM_DEVICES = 3
  4046. const m___OPENCL_MEMORY_SCOPE_DEVICE = 2
  4047. const m___OPENCL_MEMORY_SCOPE_SUB_GROUP = 4
  4048. const m___OPENCL_MEMORY_SCOPE_WORK_GROUP = 1
  4049. const m___OPENCL_MEMORY_SCOPE_WORK_ITEM = 0
  4050. const m___ORDER_BIG_ENDIAN__ = 4321
  4051. const m___ORDER_LITTLE_ENDIAN__ = 1234
  4052. const m___ORDER_PDP_ENDIAN__ = 3412
  4053. const m___PIC__ = 2
  4054. const m___POINTER_WIDTH__ = 64
  4055. const m___PRAGMA_REDEFINE_EXTNAME = 1
  4056. const m___PRETTY_FUNCTION__ = "__func__"
  4057. const m___PTHREAD_ATTR_SIZE__ = 56
  4058. const m___PTHREAD_CONDATTR_SIZE__ = 8
  4059. const m___PTHREAD_COND_SIZE__ = 40
  4060. const m___PTHREAD_MUTEXATTR_SIZE__ = 8
  4061. const m___PTHREAD_MUTEX_SIZE__ = 56
  4062. const m___PTHREAD_ONCE_SIZE__ = 8
  4063. const m___PTHREAD_RWLOCKATTR_SIZE__ = 16
  4064. const m___PTHREAD_RWLOCK_SIZE__ = 192
  4065. const m___PTHREAD_SIZE__ = 8176
  4066. const m___PTRDIFF_FMTd__ = "ld"
  4067. const m___PTRDIFF_FMTi__ = "li"
  4068. const m___PTRDIFF_MAX__ = 9223372036854775807
  4069. const m___PTRDIFF_WIDTH__ = 64
  4070. const m___SALC = 0x4000
  4071. const m___SAPP = 0x0100
  4072. const m___SCHAR_MAX__ = 127
  4073. const m___SCHED_PARAM_SIZE__ = 4
  4074. const m___SEG_FS = 1
  4075. const m___SEG_GS = 1
  4076. const m___SEOF = 0x0020
  4077. const m___SERR = 0x0040
  4078. const m___SHRT_MAX__ = 32767
  4079. const m___SHRT_WIDTH__ = 16
  4080. const m___SIGN = 0x8000
  4081. const m___SIG_ATOMIC_MAX__ = 2147483647
  4082. const m___SIG_ATOMIC_WIDTH__ = 32
  4083. const m___SIZEOF_DOUBLE__ = 8
  4084. const m___SIZEOF_FLOAT__ = 4
  4085. const m___SIZEOF_INT128__ = 16
  4086. const m___SIZEOF_INT__ = 4
  4087. const m___SIZEOF_LONG_DOUBLE__ = 8
  4088. const m___SIZEOF_LONG_LONG__ = 8
  4089. const m___SIZEOF_LONG__ = 8
  4090. const m___SIZEOF_POINTER__ = 8
  4091. const m___SIZEOF_PTRDIFF_T__ = 8
  4092. const m___SIZEOF_SHORT__ = 2
  4093. const m___SIZEOF_SIZE_T__ = 8
  4094. const m___SIZEOF_WCHAR_T__ = 4
  4095. const m___SIZEOF_WINT_T__ = 4
  4096. const m___SIZE_FMTX__ = "lX"
  4097. const m___SIZE_FMTo__ = "lo"
  4098. const m___SIZE_FMTu__ = "lu"
  4099. const m___SIZE_FMTx__ = "lx"
  4100. const m___SIZE_MAX__ = 18446744073709551615
  4101. const m___SIZE_WIDTH__ = 64
  4102. const m___SLBF = 0x0001
  4103. const m___SMBF = 0x0080
  4104. const m___SMOD = 0x2000
  4105. const m___SNBF = 0x0002
  4106. const m___SNPT = 0x0800
  4107. const m___SOFF = 0x1000
  4108. const m___SOPT = 0x0400
  4109. const m___SRD = 0x0004
  4110. const m___SRW = 0x0010
  4111. const m___SSE2_MATH__ = 1
  4112. const m___SSE2__ = 1
  4113. const m___SSE3__ = 1
  4114. const m___SSE4_1__ = 1
  4115. const m___SSE_MATH__ = 1
  4116. const m___SSE__ = 1
  4117. const m___SSP__ = 1
  4118. const m___SSSE3__ = 1
  4119. const m___SSTR = 0x0200
  4120. const m___STDC_HOSTED__ = 1
  4121. const m___STDC_NO_THREADS__ = 1
  4122. const m___STDC_UTF_16__ = 1
  4123. const m___STDC_UTF_32__ = 1
  4124. const m___STDC_VERSION__ = 201710
  4125. const m___STDC_WANT_LIB_EXT1__ = 1
  4126. const m___STDC__ = 1
  4127. const m___SWR = 0x0008
  4128. const m___TVOS_10_0 = 100000
  4129. const m___TVOS_10_0_1 = 100001
  4130. const m___TVOS_10_1 = 100100
  4131. const m___TVOS_10_2 = 100200
  4132. const m___TVOS_11_0 = 110000
  4133. const m___TVOS_11_1 = 110100
  4134. const m___TVOS_11_2 = 110200
  4135. const m___TVOS_11_3 = 110300
  4136. const m___TVOS_11_4 = 110400
  4137. const m___TVOS_12_0 = 120000
  4138. const m___TVOS_12_1 = 120100
  4139. const m___TVOS_12_2 = 120200
  4140. const m___TVOS_12_3 = 120300
  4141. const m___TVOS_12_4 = 120400
  4142. const m___TVOS_13_0 = 130000
  4143. const m___TVOS_13_2 = 130200
  4144. const m___TVOS_13_3 = 130300
  4145. const m___TVOS_13_4 = 130400
  4146. const m___TVOS_14_0 = 140000
  4147. const m___TVOS_14_1 = 140100
  4148. const m___TVOS_14_2 = 140200
  4149. const m___TVOS_14_3 = 140300
  4150. const m___TVOS_14_5 = 140500
  4151. const m___TVOS_14_6 = 140600
  4152. const m___TVOS_14_7 = 140700
  4153. const m___TVOS_15_0 = 150000
  4154. const m___TVOS_15_1 = 150100
  4155. const m___TVOS_15_2 = 150200
  4156. const m___TVOS_15_3 = 150300
  4157. const m___TVOS_15_4 = 150400
  4158. const m___TVOS_15_5 = 150500
  4159. const m___TVOS_15_6 = 150600
  4160. const m___TVOS_16_0 = 160000
  4161. const m___TVOS_16_1 = 160100
  4162. const m___TVOS_16_2 = 160200
  4163. const m___TVOS_16_3 = 160300
  4164. const m___TVOS_16_4 = 160400
  4165. const m___TVOS_16_5 = 160500
  4166. const m___TVOS_16_6 = 160600
  4167. const m___TVOS_17_0 = 170000
  4168. const m___TVOS_17_1 = 170100
  4169. const m___TVOS_17_2 = 170200
  4170. const m___TVOS_17_3 = 170300
  4171. const m___TVOS_17_4 = 170400
  4172. const m___TVOS_9_0 = 90000
  4173. const m___TVOS_9_1 = 90100
  4174. const m___TVOS_9_2 = 90200
  4175. const m___UINT16_FMTX__ = "hX"
  4176. const m___UINT16_FMTo__ = "ho"
  4177. const m___UINT16_FMTu__ = "hu"
  4178. const m___UINT16_FMTx__ = "hx"
  4179. const m___UINT16_MAX__ = 65535
  4180. const m___UINT32_C_SUFFIX__ = "U"
  4181. const m___UINT32_FMTX__ = "X"
  4182. const m___UINT32_FMTo__ = "o"
  4183. const m___UINT32_FMTu__ = "u"
  4184. const m___UINT32_FMTx__ = "x"
  4185. const m___UINT32_MAX__ = 4294967295
  4186. const m___UINT64_C_SUFFIX__ = "ULL"
  4187. const m___UINT64_FMTX__ = "llX"
  4188. const m___UINT64_FMTo__ = "llo"
  4189. const m___UINT64_FMTu__ = "llu"
  4190. const m___UINT64_FMTx__ = "llx"
  4191. const m___UINT64_MAX__ = "18446744073709551615U"
  4192. const m___UINT8_FMTX__ = "hhX"
  4193. const m___UINT8_FMTo__ = "hho"
  4194. const m___UINT8_FMTu__ = "hhu"
  4195. const m___UINT8_FMTx__ = "hhx"
  4196. const m___UINT8_MAX__ = 255
  4197. const m___UINTMAX_C_SUFFIX__ = "UL"
  4198. const m___UINTMAX_FMTX__ = "lX"
  4199. const m___UINTMAX_FMTo__ = "lo"
  4200. const m___UINTMAX_FMTu__ = "lu"
  4201. const m___UINTMAX_FMTx__ = "lx"
  4202. const m___UINTMAX_MAX__ = 18446744073709551615
  4203. const m___UINTMAX_WIDTH__ = 64
  4204. const m___UINTPTR_FMTX__ = "lX"
  4205. const m___UINTPTR_FMTo__ = "lo"
  4206. const m___UINTPTR_FMTu__ = "lu"
  4207. const m___UINTPTR_FMTx__ = "lx"
  4208. const m___UINTPTR_MAX__ = 18446744073709551615
  4209. const m___UINTPTR_WIDTH__ = 64
  4210. const m___UINT_FAST16_FMTX__ = "hX"
  4211. const m___UINT_FAST16_FMTo__ = "ho"
  4212. const m___UINT_FAST16_FMTu__ = "hu"
  4213. const m___UINT_FAST16_FMTx__ = "hx"
  4214. const m___UINT_FAST16_MAX__ = 65535
  4215. const m___UINT_FAST32_FMTX__ = "X"
  4216. const m___UINT_FAST32_FMTo__ = "o"
  4217. const m___UINT_FAST32_FMTu__ = "u"
  4218. const m___UINT_FAST32_FMTx__ = "x"
  4219. const m___UINT_FAST32_MAX__ = 4294967295
  4220. const m___UINT_FAST64_FMTX__ = "llX"
  4221. const m___UINT_FAST64_FMTo__ = "llo"
  4222. const m___UINT_FAST64_FMTu__ = "llu"
  4223. const m___UINT_FAST64_FMTx__ = "llx"
  4224. const m___UINT_FAST64_MAX__ = "18446744073709551615U"
  4225. const m___UINT_FAST8_FMTX__ = "hhX"
  4226. const m___UINT_FAST8_FMTo__ = "hho"
  4227. const m___UINT_FAST8_FMTu__ = "hhu"
  4228. const m___UINT_FAST8_FMTx__ = "hhx"
  4229. const m___UINT_FAST8_MAX__ = 255
  4230. const m___UINT_LEAST16_FMTX__ = "hX"
  4231. const m___UINT_LEAST16_FMTo__ = "ho"
  4232. const m___UINT_LEAST16_FMTu__ = "hu"
  4233. const m___UINT_LEAST16_FMTx__ = "hx"
  4234. const m___UINT_LEAST16_MAX__ = 65535
  4235. const m___UINT_LEAST32_FMTX__ = "X"
  4236. const m___UINT_LEAST32_FMTo__ = "o"
  4237. const m___UINT_LEAST32_FMTu__ = "u"
  4238. const m___UINT_LEAST32_FMTx__ = "x"
  4239. const m___UINT_LEAST32_MAX__ = 4294967295
  4240. const m___UINT_LEAST64_FMTX__ = "llX"
  4241. const m___UINT_LEAST64_FMTo__ = "llo"
  4242. const m___UINT_LEAST64_FMTu__ = "llu"
  4243. const m___UINT_LEAST64_FMTx__ = "llx"
  4244. const m___UINT_LEAST64_MAX = "UINT64_MAX"
  4245. const m___UINT_LEAST64_MAX__ = "18446744073709551615U"
  4246. const m___UINT_LEAST8_FMTX__ = "hhX"
  4247. const m___UINT_LEAST8_FMTo__ = "hho"
  4248. const m___UINT_LEAST8_FMTu__ = "hhu"
  4249. const m___UINT_LEAST8_FMTx__ = "hhx"
  4250. const m___UINT_LEAST8_MAX__ = 255
  4251. const m___USER_LABEL_PREFIX__ = "_"
  4252. const m___VERSION__ = "Apple LLVM 15.0.0 (clang-1500.3.9.4)"
  4253. const m___VISIONOS_1_0 = 10000
  4254. const m___VISIONOS_1_1 = 10100
  4255. const m___WATCHOS_10_0 = 100000
  4256. const m___WATCHOS_10_1 = 100100
  4257. const m___WATCHOS_10_2 = 100200
  4258. const m___WATCHOS_10_3 = 100300
  4259. const m___WATCHOS_10_4 = 100400
  4260. const m___WATCHOS_1_0 = 10000
  4261. const m___WATCHOS_2_0 = 20000
  4262. const m___WATCHOS_2_1 = 20100
  4263. const m___WATCHOS_2_2 = 20200
  4264. const m___WATCHOS_3_0 = 30000
  4265. const m___WATCHOS_3_1 = 30100
  4266. const m___WATCHOS_3_1_1 = 30101
  4267. const m___WATCHOS_3_2 = 30200
  4268. const m___WATCHOS_4_0 = 40000
  4269. const m___WATCHOS_4_1 = 40100
  4270. const m___WATCHOS_4_2 = 40200
  4271. const m___WATCHOS_4_3 = 40300
  4272. const m___WATCHOS_5_0 = 50000
  4273. const m___WATCHOS_5_1 = 50100
  4274. const m___WATCHOS_5_2 = 50200
  4275. const m___WATCHOS_5_3 = 50300
  4276. const m___WATCHOS_6_0 = 60000
  4277. const m___WATCHOS_6_1 = 60100
  4278. const m___WATCHOS_6_2 = 60200
  4279. const m___WATCHOS_7_0 = 70000
  4280. const m___WATCHOS_7_1 = 70100
  4281. const m___WATCHOS_7_2 = 70200
  4282. const m___WATCHOS_7_3 = 70300
  4283. const m___WATCHOS_7_4 = 70400
  4284. const m___WATCHOS_7_5 = 70500
  4285. const m___WATCHOS_7_6 = 70600
  4286. const m___WATCHOS_8_0 = 80000
  4287. const m___WATCHOS_8_1 = 80100
  4288. const m___WATCHOS_8_3 = 80300
  4289. const m___WATCHOS_8_4 = 80400
  4290. const m___WATCHOS_8_5 = 80500
  4291. const m___WATCHOS_8_6 = 80600
  4292. const m___WATCHOS_8_7 = 80700
  4293. const m___WATCHOS_8_8 = 80800
  4294. const m___WATCHOS_9_0 = 90000
  4295. const m___WATCHOS_9_1 = 90100
  4296. const m___WATCHOS_9_2 = 90200
  4297. const m___WATCHOS_9_3 = 90300
  4298. const m___WATCHOS_9_4 = 90400
  4299. const m___WATCHOS_9_5 = 90500
  4300. const m___WATCHOS_9_6 = 90600
  4301. const m___WCHAR_MAX__ = 2147483647
  4302. const m___WCHAR_TYPE__ = "int"
  4303. const m___WCHAR_WIDTH__ = 32
  4304. const m___WINT_MAX__ = 2147483647
  4305. const m___WINT_TYPE__ = "int"
  4306. const m___WINT_WIDTH__ = 32
  4307. const m___amd64 = 1
  4308. const m___amd64__ = 1
  4309. const m___apple_build_version__ = 15000309
  4310. const m___clang__ = 1
  4311. const m___clang_literal_encoding__ = "UTF-8"
  4312. const m___clang_major__ = 15
  4313. const m___clang_minor__ = 0
  4314. const m___clang_patchlevel__ = 0
  4315. const m___clang_version__ = "15.0.0 (clang-1500.3.9.4)"
  4316. const m___clang_wide_literal_encoding__ = "UTF-32"
  4317. const m___code_model_small__ = 1
  4318. const m___const = "const"
  4319. const m___core2 = 1
  4320. const m___core2__ = 1
  4321. const m___has_ptrcheck = 0
  4322. const m___has_safe_buffers = 0
  4323. const m___header_inline = "inline"
  4324. const m___llvm__ = 1
  4325. const m___nonnull = "_Nonnull"
  4326. const m___null_unspecified = "_Null_unspecified"
  4327. const m___nullable = "_Nullable"
  4328. const m___pic__ = 2
  4329. const m___restrict = "restrict"
  4330. const m___restrict_arr = "restrict"
  4331. const m___signed = "signed"
  4332. const m___tune_core2__ = 1
  4333. const m___volatile = "volatile"
  4334. const m___x86_64 = 1
  4335. const m___x86_64__ = 1
  4336. const m_ft_encoding_adobe_custom = "FT_ENCODING_ADOBE_CUSTOM"
  4337. const m_ft_encoding_adobe_expert = "FT_ENCODING_ADOBE_EXPERT"
  4338. const m_ft_encoding_adobe_standard = "FT_ENCODING_ADOBE_STANDARD"
  4339. const m_ft_encoding_apple_roman = "FT_ENCODING_APPLE_ROMAN"
  4340. const m_ft_encoding_big5 = "FT_ENCODING_BIG5"
  4341. const m_ft_encoding_gb2312 = "FT_ENCODING_PRC"
  4342. const m_ft_encoding_johab = "FT_ENCODING_JOHAB"
  4343. const m_ft_encoding_latin_1 = "FT_ENCODING_ADOBE_LATIN_1"
  4344. const m_ft_encoding_latin_2 = "FT_ENCODING_OLD_LATIN_2"
  4345. const m_ft_encoding_none = "FT_ENCODING_NONE"
  4346. const m_ft_encoding_sjis = "FT_ENCODING_SJIS"
  4347. const m_ft_encoding_symbol = "FT_ENCODING_MS_SYMBOL"
  4348. const m_ft_encoding_unicode = "FT_ENCODING_UNICODE"
  4349. const m_ft_encoding_wansung = "FT_ENCODING_WANSUNG"
  4350. const m_ft_fclose = "fclose"
  4351. const m_ft_fopen = "fopen"
  4352. const m_ft_fread = "fread"
  4353. const m_ft_fseek = "fseek"
  4354. const m_ft_ftell = "ftell"
  4355. const m_ft_getenv = "getenv"
  4356. const m_ft_glyph_format_bitmap = "FT_GLYPH_FORMAT_BITMAP"
  4357. const m_ft_glyph_format_composite = "FT_GLYPH_FORMAT_COMPOSITE"
  4358. const m_ft_glyph_format_none = "FT_GLYPH_FORMAT_NONE"
  4359. const m_ft_glyph_format_outline = "FT_GLYPH_FORMAT_OUTLINE"
  4360. const m_ft_glyph_format_plotter = "FT_GLYPH_FORMAT_PLOTTER"
  4361. const m_ft_jmp_buf = "jmp_buf"
  4362. const m_ft_kerning_default = "FT_KERNING_DEFAULT"
  4363. const m_ft_kerning_unfitted = "FT_KERNING_UNFITTED"
  4364. const m_ft_kerning_unscaled = "FT_KERNING_UNSCALED"
  4365. const m_ft_longjmp = "longjmp"
  4366. const m_ft_memchr = "memchr"
  4367. const m_ft_memcmp = "memcmp"
  4368. const m_ft_memcpy = "memcpy"
  4369. const m_ft_memmove = "memmove"
  4370. const m_ft_memset = "memset"
  4371. const m_ft_open_driver = "FT_OPEN_DRIVER"
  4372. const m_ft_open_memory = "FT_OPEN_MEMORY"
  4373. const m_ft_open_params = "FT_OPEN_PARAMS"
  4374. const m_ft_open_pathname = "FT_OPEN_PATHNAME"
  4375. const m_ft_open_stream = "FT_OPEN_STREAM"
  4376. const m_ft_outline_even_odd_fill = "FT_OUTLINE_EVEN_ODD_FILL"
  4377. const m_ft_outline_high_precision = "FT_OUTLINE_HIGH_PRECISION"
  4378. const m_ft_outline_ignore_dropouts = "FT_OUTLINE_IGNORE_DROPOUTS"
  4379. const m_ft_outline_none = "FT_OUTLINE_NONE"
  4380. const m_ft_outline_owner = "FT_OUTLINE_OWNER"
  4381. const m_ft_outline_reverse_fill = "FT_OUTLINE_REVERSE_FILL"
  4382. const m_ft_outline_single_pass = "FT_OUTLINE_SINGLE_PASS"
  4383. const m_ft_pixel_mode_grays = "FT_PIXEL_MODE_GRAY"
  4384. const m_ft_pixel_mode_mono = "FT_PIXEL_MODE_MONO"
  4385. const m_ft_pixel_mode_none = "FT_PIXEL_MODE_NONE"
  4386. const m_ft_pixel_mode_pal2 = "FT_PIXEL_MODE_GRAY2"
  4387. const m_ft_pixel_mode_pal4 = "FT_PIXEL_MODE_GRAY4"
  4388. const m_ft_ptrdiff_t = "ptrdiff_t"
  4389. const m_ft_qsort = "qsort"
  4390. const m_ft_raster_flag_aa = "FT_RASTER_FLAG_AA"
  4391. const m_ft_raster_flag_clip = "FT_RASTER_FLAG_CLIP"
  4392. const m_ft_raster_flag_default = "FT_RASTER_FLAG_DEFAULT"
  4393. const m_ft_raster_flag_direct = "FT_RASTER_FLAG_DIRECT"
  4394. const m_ft_render_mode_mono = "FT_RENDER_MODE_MONO"
  4395. const m_ft_render_mode_normal = "FT_RENDER_MODE_NORMAL"
  4396. const m_ft_scalloc = "calloc"
  4397. const m_ft_sfree = "free"
  4398. const m_ft_smalloc = "malloc"
  4399. const m_ft_sprintf = "sprintf"
  4400. const m_ft_srealloc = "realloc"
  4401. const m_ft_strcat = "strcat"
  4402. const m_ft_strcmp = "strcmp"
  4403. const m_ft_strcpy = "strcpy"
  4404. const m_ft_strlen = "strlen"
  4405. const m_ft_strncmp = "strncmp"
  4406. const m_ft_strncpy = "strncpy"
  4407. const m_ft_strrchr = "strrchr"
  4408. const m_ft_strstr = "strstr"
  4409. const m_ft_strtol = "strtol"
  4410. const m_ru_first = "ru_ixrss"
  4411. const m_ru_last = "ru_nivcsw"
  4412. const m_static_assert = "_Static_assert"
  4413. const m_stderr = "__stderrp"
  4414. const m_stdin = "__stdinp"
  4415. const m_stdout = "__stdoutp"
  4416. const m_sv_onstack = "sv_flags"
  4417. const m_sz_xAllocColorCellsReply = 32
  4418. const m_sz_xAllocColorCellsReq = 12
  4419. const m_sz_xAllocColorPlanesReply = 32
  4420. const m_sz_xAllocColorPlanesReq = 16
  4421. const m_sz_xAllocColorReply = 32
  4422. const m_sz_xAllocColorReq = 16
  4423. const m_sz_xAllocNamedColorReply = 32
  4424. const m_sz_xAllocNamedColorReq = 12
  4425. const m_sz_xAllowEventsReq = 8
  4426. const m_sz_xArc = 12
  4427. const m_sz_xBellReq = 4
  4428. const m_sz_xChangeActivePointerGrabReq = 16
  4429. const m_sz_xChangeGCReq = 12
  4430. const m_sz_xChangeHostsReq = 8
  4431. const m_sz_xChangeKeyboardControlReq = 8
  4432. const m_sz_xChangeKeyboardMappingReq = 8
  4433. const m_sz_xChangeModeReq = 4
  4434. const m_sz_xChangePointerControlReq = 12
  4435. const m_sz_xChangePropertyReq = 24
  4436. const m_sz_xChangeSaveSetReq = 8
  4437. const m_sz_xChangeWindowAttributesReq = 12
  4438. const m_sz_xCharInfo = 12
  4439. const m_sz_xCirculateWindowReq = 8
  4440. const m_sz_xClearAreaReq = 16
  4441. const m_sz_xColorItem = 12
  4442. const m_sz_xConfigureWindowReq = 12
  4443. const m_sz_xConnClientPrefix = 12
  4444. const m_sz_xConnSetup = 32
  4445. const m_sz_xConnSetupPrefix = 8
  4446. const m_sz_xConvertSelectionReq = 24
  4447. const m_sz_xCopyAreaReq = 28
  4448. const m_sz_xCopyColormapAndFreeReq = 12
  4449. const m_sz_xCopyGCReq = 16
  4450. const m_sz_xCopyPlaneReq = 32
  4451. const m_sz_xCreateColormapReq = 16
  4452. const m_sz_xCreateCursorReq = 32
  4453. const m_sz_xCreateGCReq = 16
  4454. const m_sz_xCreateGlyphCursorReq = 32
  4455. const m_sz_xCreatePixmapReq = 16
  4456. const m_sz_xCreateWindowReq = 32
  4457. const m_sz_xDeletePropertyReq = 12
  4458. const m_sz_xDepth = 8
  4459. const m_sz_xError = 32
  4460. const m_sz_xEvent = 32
  4461. const m_sz_xFillPolyReq = 16
  4462. const m_sz_xFontProp = 8
  4463. const m_sz_xForceScreenSaverReq = 4
  4464. const m_sz_xFreeColorsReq = 12
  4465. const m_sz_xGenericReply = 32
  4466. const m_sz_xGetAtomNameReply = 32
  4467. const m_sz_xGetFontPathReply = 32
  4468. const m_sz_xGetGeometryReply = 32
  4469. const m_sz_xGetImageReply = 32
  4470. const m_sz_xGetImageReq = 20
  4471. const m_sz_xGetInputFocusReply = 32
  4472. const m_sz_xGetKeyboardControlReply = 52
  4473. const m_sz_xGetKeyboardMappingReply = 32
  4474. const m_sz_xGetKeyboardMappingReq = 8
  4475. const m_sz_xGetModifierMappingReply = 32
  4476. const m_sz_xGetMotionEventsReply = 32
  4477. const m_sz_xGetMotionEventsReq = 16
  4478. const m_sz_xGetPointerControlReply = 32
  4479. const m_sz_xGetPointerMappingReply = 32
  4480. const m_sz_xGetPropertyReply = 32
  4481. const m_sz_xGetPropertyReq = 24
  4482. const m_sz_xGetScreenSaverReply = 32
  4483. const m_sz_xGetSelectionOwnerReply = 32
  4484. const m_sz_xGetWindowAttributesReply = 44
  4485. const m_sz_xGrabButtonReq = 24
  4486. const m_sz_xGrabKeyReq = 16
  4487. const m_sz_xGrabKeyboardReply = 32
  4488. const m_sz_xGrabKeyboardReq = 16
  4489. const m_sz_xGrabPointerReply = 32
  4490. const m_sz_xGrabPointerReq = 24
  4491. const m_sz_xHostEntry = 4
  4492. const m_sz_xImageText16Req = 16
  4493. const m_sz_xImageText8Req = 16
  4494. const m_sz_xImageTextReq = 16
  4495. const m_sz_xInternAtomReply = 32
  4496. const m_sz_xInternAtomReq = 8
  4497. const m_sz_xKeymapEvent = 32
  4498. const m_sz_xListExtensionsReply = 32
  4499. const m_sz_xListFontsReply = 32
  4500. const m_sz_xListFontsReq = 8
  4501. const m_sz_xListFontsWithInfoReply = 60
  4502. const m_sz_xListFontsWithInfoReq = 8
  4503. const m_sz_xListHostsReply = 32
  4504. const m_sz_xListHostsReq = 4
  4505. const m_sz_xListInstalledColormapsReply = 32
  4506. const m_sz_xListPropertiesReply = 32
  4507. const m_sz_xLookupColorReply = 32
  4508. const m_sz_xLookupColorReq = 12
  4509. const m_sz_xOpenFontReq = 12
  4510. const m_sz_xPixmapFormat = 8
  4511. const m_sz_xPoint = 4
  4512. const m_sz_xPolyArcReq = 12
  4513. const m_sz_xPolyFillArcReq = 12
  4514. const m_sz_xPolyFillRectangleReq = 12
  4515. const m_sz_xPolyLineReq = 12
  4516. const m_sz_xPolyPointReq = 12
  4517. const m_sz_xPolyRectangleReq = 12
  4518. const m_sz_xPolySegmentReq = 12
  4519. const m_sz_xPolyText16Req = 16
  4520. const m_sz_xPolyText8Req = 16
  4521. const m_sz_xPolyTextReq = 16
  4522. const m_sz_xPropIconSize = 24
  4523. const m_sz_xPutImageReq = 24
  4524. const m_sz_xQueryBestSizeReply = 32
  4525. const m_sz_xQueryBestSizeReq = 12
  4526. const m_sz_xQueryColorsReply = 32
  4527. const m_sz_xQueryColorsReq = 8
  4528. const m_sz_xQueryExtensionReply = 32
  4529. const m_sz_xQueryExtensionReq = 8
  4530. const m_sz_xQueryFontReply = 60
  4531. const m_sz_xQueryKeymapReply = 40
  4532. const m_sz_xQueryPointerReply = 32
  4533. const m_sz_xQueryTextExtentsReply = 32
  4534. const m_sz_xQueryTextExtentsReq = 8
  4535. const m_sz_xQueryTreeReply = 32
  4536. const m_sz_xRecolorCursorReq = 20
  4537. const m_sz_xRectangle = 8
  4538. const m_sz_xReparentWindowReq = 16
  4539. const m_sz_xReply = 32
  4540. const m_sz_xReq = 4
  4541. const m_sz_xResourceReq = 8
  4542. const m_sz_xRotatePropertiesReq = 12
  4543. const m_sz_xSegment = 8
  4544. const m_sz_xSendEventReq = 44
  4545. const m_sz_xSetAccessControlReq = 4
  4546. const m_sz_xSetClipRectanglesReq = 12
  4547. const m_sz_xSetCloseDownModeReq = 4
  4548. const m_sz_xSetDashesReq = 12
  4549. const m_sz_xSetFontPathReq = 8
  4550. const m_sz_xSetInputFocusReq = 12
  4551. const m_sz_xSetMappingReply = 32
  4552. const m_sz_xSetModifierMappingReply = 32
  4553. const m_sz_xSetModifierMappingReq = 4
  4554. const m_sz_xSetPointerMappingReply = 32
  4555. const m_sz_xSetPointerMappingReq = 4
  4556. const m_sz_xSetScreenSaverReq = 12
  4557. const m_sz_xSetSelectionOwnerReq = 16
  4558. const m_sz_xStoreColorsReq = 8
  4559. const m_sz_xStoreNamedColorReq = 16
  4560. const m_sz_xTextElt = 2
  4561. const m_sz_xTimecoord = 8
  4562. const m_sz_xTranslateCoordsReply = 32
  4563. const m_sz_xTranslateCoordsReq = 16
  4564. const m_sz_xUngrabButtonReq = 12
  4565. const m_sz_xUngrabKeyReq = 12
  4566. const m_sz_xVisualType = 24
  4567. const m_sz_xWarpPointerReq = 24
  4568. const m_sz_xWindowRoot = 40
  4569. const m_sz_xrgb = 8
  4570. const m_xFalse = 0
  4571. const m_xTrue = 1
  4572. const m_xfree = "free"
  4573. const m_xmalloc = "malloc"
  4574. const m_xthread_self = "pthread_self"
  4575. type t__builtin_va_list = uintptr
  4576. type t__predefined_size_t = uint64
  4577. type t__predefined_wchar_t = int32
  4578. type t__predefined_ptrdiff_t = int64
  4579. type t__int8_t = int8
  4580. type t__uint8_t = uint8
  4581. type t__int16_t = int16
  4582. type t__uint16_t = uint16
  4583. type t__int32_t = int32
  4584. type t__uint32_t = uint32
  4585. type t__int64_t = int64
  4586. type t__uint64_t = uint64
  4587. type t__darwin_intptr_t = int64
  4588. type t__darwin_natural_t = uint32
  4589. type t__darwin_ct_rune_t = int32
  4590. type t__mbstate_t = struct {
  4591. F_mbstateL [0]int64
  4592. F__mbstate8 [128]int8
  4593. }
  4594. type t__darwin_mbstate_t = struct {
  4595. F_mbstateL [0]int64
  4596. F__mbstate8 [128]int8
  4597. }
  4598. type t__darwin_ptrdiff_t = int64
  4599. type t__darwin_size_t = uint64
  4600. type t__darwin_va_list = uintptr
  4601. type t__darwin_wchar_t = int32
  4602. type t__darwin_rune_t = int32
  4603. type t__darwin_wint_t = int32
  4604. type t__darwin_clock_t = uint64
  4605. type t__darwin_socklen_t = uint32
  4606. type t__darwin_ssize_t = int64
  4607. type t__darwin_time_t = int64
  4608. type t__darwin_blkcnt_t = int64
  4609. type t__darwin_blksize_t = int32
  4610. type t__darwin_dev_t = int32
  4611. type t__darwin_fsblkcnt_t = uint32
  4612. type t__darwin_fsfilcnt_t = uint32
  4613. type t__darwin_gid_t = uint32
  4614. type t__darwin_id_t = uint32
  4615. type t__darwin_ino64_t = uint64
  4616. type t__darwin_ino_t = uint64
  4617. type t__darwin_mach_port_name_t = uint32
  4618. type t__darwin_mach_port_t = uint32
  4619. type t__darwin_mode_t = uint16
  4620. type t__darwin_off_t = int64
  4621. type t__darwin_pid_t = int32
  4622. type t__darwin_sigset_t = uint32
  4623. type t__darwin_suseconds_t = int32
  4624. type t__darwin_uid_t = uint32
  4625. type t__darwin_useconds_t = uint32
  4626. type t__darwin_uuid_t = [16]uint8
  4627. type t__darwin_uuid_string_t = [37]int8
  4628. type t__darwin_pthread_handler_rec = struct {
  4629. F__routine uintptr
  4630. F__arg uintptr
  4631. F__next uintptr
  4632. }
  4633. type T_opaque_pthread_attr_t = struct {
  4634. F__sig int64
  4635. F__opaque [56]int8
  4636. }
  4637. type T_opaque_pthread_cond_t = struct {
  4638. F__sig int64
  4639. F__opaque [40]int8
  4640. }
  4641. type T_opaque_pthread_condattr_t = struct {
  4642. F__sig int64
  4643. F__opaque [8]int8
  4644. }
  4645. type T_opaque_pthread_mutex_t = struct {
  4646. F__sig int64
  4647. F__opaque [56]int8
  4648. }
  4649. type T_opaque_pthread_mutexattr_t = struct {
  4650. F__sig int64
  4651. F__opaque [8]int8
  4652. }
  4653. type T_opaque_pthread_once_t = struct {
  4654. F__sig int64
  4655. F__opaque [8]int8
  4656. }
  4657. type T_opaque_pthread_rwlock_t = struct {
  4658. F__sig int64
  4659. F__opaque [192]int8
  4660. }
  4661. type T_opaque_pthread_rwlockattr_t = struct {
  4662. F__sig int64
  4663. F__opaque [16]int8
  4664. }
  4665. type T_opaque_pthread_t = struct {
  4666. F__sig int64
  4667. F__cleanup_stack uintptr
  4668. F__opaque [8176]int8
  4669. }
  4670. type t__darwin_pthread_attr_t = struct {
  4671. F__sig int64
  4672. F__opaque [56]int8
  4673. }
  4674. type t__darwin_pthread_cond_t = struct {
  4675. F__sig int64
  4676. F__opaque [40]int8
  4677. }
  4678. type t__darwin_pthread_condattr_t = struct {
  4679. F__sig int64
  4680. F__opaque [8]int8
  4681. }
  4682. type t__darwin_pthread_key_t = uint64
  4683. type t__darwin_pthread_mutex_t = struct {
  4684. F__sig int64
  4685. F__opaque [56]int8
  4686. }
  4687. type t__darwin_pthread_mutexattr_t = struct {
  4688. F__sig int64
  4689. F__opaque [8]int8
  4690. }
  4691. type t__darwin_pthread_once_t = struct {
  4692. F__sig int64
  4693. F__opaque [8]int8
  4694. }
  4695. type t__darwin_pthread_rwlock_t = struct {
  4696. F__sig int64
  4697. F__opaque [192]int8
  4698. }
  4699. type t__darwin_pthread_rwlockattr_t = struct {
  4700. F__sig int64
  4701. F__opaque [16]int8
  4702. }
  4703. type t__darwin_pthread_t = uintptr
  4704. type t__darwin_nl_item = int32
  4705. type t__darwin_wctrans_t = int32
  4706. type t__darwin_wctype_t = uint32
  4707. type Tint8_t = int8
  4708. type Tint16_t = int16
  4709. type Tint32_t = int32
  4710. type Tint64_t = int64
  4711. type Tu_int8_t = uint8
  4712. type Tu_int16_t = uint16
  4713. type Tu_int32_t = uint32
  4714. type Tu_int64_t = uint64
  4715. type Tregister_t = int64
  4716. type Tintptr_t = int64
  4717. type Tuintptr_t = uint64
  4718. type Tuser_addr_t = uint64
  4719. type Tuser_size_t = uint64
  4720. type Tuser_ssize_t = int64
  4721. type Tuser_long_t = int64
  4722. type Tuser_ulong_t = uint64
  4723. type Tuser_time_t = int64
  4724. type Tuser_off_t = int64
  4725. type Tsyscall_arg_t = uint64
  4726. type Tva_list = uintptr
  4727. type Tsize_t = uint64
  4728. type Tfpos_t = int64
  4729. type t__sbuf = struct {
  4730. F_base uintptr
  4731. F_size int32
  4732. }
  4733. type TFILE = struct {
  4734. F_p uintptr
  4735. F_r int32
  4736. F_w int32
  4737. F_flags int16
  4738. F_file int16
  4739. F_bf t__sbuf
  4740. F_lbfsize int32
  4741. F_cookie uintptr
  4742. F_close uintptr
  4743. F_read uintptr
  4744. F_seek uintptr
  4745. F_write uintptr
  4746. F_ub t__sbuf
  4747. F_extra uintptr
  4748. F_ur int32
  4749. F_ubuf [3]uint8
  4750. F_nbuf [1]uint8
  4751. F_lb t__sbuf
  4752. F_blksize int32
  4753. F_offset Tfpos_t
  4754. }
  4755. type t__sFILE = TFILE
  4756. type Toff_t = int64
  4757. type Tssize_t = int64
  4758. type Tidtype_t = int32
  4759. const _P_ALL = 0
  4760. const _P_PID = 1
  4761. const _P_PGID = 2
  4762. type Tpid_t = int32
  4763. type Tid_t = uint32
  4764. type Tsig_atomic_t = int32
  4765. type t__darwin_i386_thread_state = struct {
  4766. F__eax uint32
  4767. F__ebx uint32
  4768. F__ecx uint32
  4769. F__edx uint32
  4770. F__edi uint32
  4771. F__esi uint32
  4772. F__ebp uint32
  4773. F__esp uint32
  4774. F__ss uint32
  4775. F__eflags uint32
  4776. F__eip uint32
  4777. F__cs uint32
  4778. F__ds uint32
  4779. F__es uint32
  4780. F__fs uint32
  4781. F__gs uint32
  4782. }
  4783. type t__darwin_fp_control = struct {
  4784. F__ccgo0 uint16
  4785. }
  4786. type t__darwin_fp_control_t = struct {
  4787. F__ccgo0 uint16
  4788. }
  4789. type t__darwin_fp_status = struct {
  4790. F__ccgo0 uint16
  4791. }
  4792. type t__darwin_fp_status_t = struct {
  4793. F__ccgo0 uint16
  4794. }
  4795. type t__darwin_mmst_reg = struct {
  4796. F__mmst_reg [10]int8
  4797. F__mmst_rsrv [6]int8
  4798. }
  4799. type t__darwin_xmm_reg = struct {
  4800. F__xmm_reg [16]int8
  4801. }
  4802. type t__darwin_ymm_reg = struct {
  4803. F__ymm_reg [32]int8
  4804. }
  4805. type t__darwin_zmm_reg = struct {
  4806. F__zmm_reg [64]int8
  4807. }
  4808. type t__darwin_opmask_reg = struct {
  4809. F__opmask_reg [8]int8
  4810. }
  4811. type t__darwin_i386_float_state = struct {
  4812. F__fpu_reserved [2]int32
  4813. F__fpu_fcw t__darwin_fp_control
  4814. F__fpu_fsw t__darwin_fp_status
  4815. F__fpu_ftw t__uint8_t
  4816. F__fpu_rsrv1 t__uint8_t
  4817. F__fpu_fop t__uint16_t
  4818. F__fpu_ip t__uint32_t
  4819. F__fpu_cs t__uint16_t
  4820. F__fpu_rsrv2 t__uint16_t
  4821. F__fpu_dp t__uint32_t
  4822. F__fpu_ds t__uint16_t
  4823. F__fpu_rsrv3 t__uint16_t
  4824. F__fpu_mxcsr t__uint32_t
  4825. F__fpu_mxcsrmask t__uint32_t
  4826. F__fpu_stmm0 t__darwin_mmst_reg
  4827. F__fpu_stmm1 t__darwin_mmst_reg
  4828. F__fpu_stmm2 t__darwin_mmst_reg
  4829. F__fpu_stmm3 t__darwin_mmst_reg
  4830. F__fpu_stmm4 t__darwin_mmst_reg
  4831. F__fpu_stmm5 t__darwin_mmst_reg
  4832. F__fpu_stmm6 t__darwin_mmst_reg
  4833. F__fpu_stmm7 t__darwin_mmst_reg
  4834. F__fpu_xmm0 t__darwin_xmm_reg
  4835. F__fpu_xmm1 t__darwin_xmm_reg
  4836. F__fpu_xmm2 t__darwin_xmm_reg
  4837. F__fpu_xmm3 t__darwin_xmm_reg
  4838. F__fpu_xmm4 t__darwin_xmm_reg
  4839. F__fpu_xmm5 t__darwin_xmm_reg
  4840. F__fpu_xmm6 t__darwin_xmm_reg
  4841. F__fpu_xmm7 t__darwin_xmm_reg
  4842. F__fpu_rsrv4 [224]int8
  4843. F__fpu_reserved1 int32
  4844. }
  4845. type t__darwin_i386_avx_state = struct {
  4846. F__fpu_reserved [2]int32
  4847. F__fpu_fcw t__darwin_fp_control
  4848. F__fpu_fsw t__darwin_fp_status
  4849. F__fpu_ftw t__uint8_t
  4850. F__fpu_rsrv1 t__uint8_t
  4851. F__fpu_fop t__uint16_t
  4852. F__fpu_ip t__uint32_t
  4853. F__fpu_cs t__uint16_t
  4854. F__fpu_rsrv2 t__uint16_t
  4855. F__fpu_dp t__uint32_t
  4856. F__fpu_ds t__uint16_t
  4857. F__fpu_rsrv3 t__uint16_t
  4858. F__fpu_mxcsr t__uint32_t
  4859. F__fpu_mxcsrmask t__uint32_t
  4860. F__fpu_stmm0 t__darwin_mmst_reg
  4861. F__fpu_stmm1 t__darwin_mmst_reg
  4862. F__fpu_stmm2 t__darwin_mmst_reg
  4863. F__fpu_stmm3 t__darwin_mmst_reg
  4864. F__fpu_stmm4 t__darwin_mmst_reg
  4865. F__fpu_stmm5 t__darwin_mmst_reg
  4866. F__fpu_stmm6 t__darwin_mmst_reg
  4867. F__fpu_stmm7 t__darwin_mmst_reg
  4868. F__fpu_xmm0 t__darwin_xmm_reg
  4869. F__fpu_xmm1 t__darwin_xmm_reg
  4870. F__fpu_xmm2 t__darwin_xmm_reg
  4871. F__fpu_xmm3 t__darwin_xmm_reg
  4872. F__fpu_xmm4 t__darwin_xmm_reg
  4873. F__fpu_xmm5 t__darwin_xmm_reg
  4874. F__fpu_xmm6 t__darwin_xmm_reg
  4875. F__fpu_xmm7 t__darwin_xmm_reg
  4876. F__fpu_rsrv4 [224]int8
  4877. F__fpu_reserved1 int32
  4878. F__avx_reserved1 [64]int8
  4879. F__fpu_ymmh0 t__darwin_xmm_reg
  4880. F__fpu_ymmh1 t__darwin_xmm_reg
  4881. F__fpu_ymmh2 t__darwin_xmm_reg
  4882. F__fpu_ymmh3 t__darwin_xmm_reg
  4883. F__fpu_ymmh4 t__darwin_xmm_reg
  4884. F__fpu_ymmh5 t__darwin_xmm_reg
  4885. F__fpu_ymmh6 t__darwin_xmm_reg
  4886. F__fpu_ymmh7 t__darwin_xmm_reg
  4887. }
  4888. type t__darwin_i386_avx512_state = struct {
  4889. F__fpu_reserved [2]int32
  4890. F__fpu_fcw t__darwin_fp_control
  4891. F__fpu_fsw t__darwin_fp_status
  4892. F__fpu_ftw t__uint8_t
  4893. F__fpu_rsrv1 t__uint8_t
  4894. F__fpu_fop t__uint16_t
  4895. F__fpu_ip t__uint32_t
  4896. F__fpu_cs t__uint16_t
  4897. F__fpu_rsrv2 t__uint16_t
  4898. F__fpu_dp t__uint32_t
  4899. F__fpu_ds t__uint16_t
  4900. F__fpu_rsrv3 t__uint16_t
  4901. F__fpu_mxcsr t__uint32_t
  4902. F__fpu_mxcsrmask t__uint32_t
  4903. F__fpu_stmm0 t__darwin_mmst_reg
  4904. F__fpu_stmm1 t__darwin_mmst_reg
  4905. F__fpu_stmm2 t__darwin_mmst_reg
  4906. F__fpu_stmm3 t__darwin_mmst_reg
  4907. F__fpu_stmm4 t__darwin_mmst_reg
  4908. F__fpu_stmm5 t__darwin_mmst_reg
  4909. F__fpu_stmm6 t__darwin_mmst_reg
  4910. F__fpu_stmm7 t__darwin_mmst_reg
  4911. F__fpu_xmm0 t__darwin_xmm_reg
  4912. F__fpu_xmm1 t__darwin_xmm_reg
  4913. F__fpu_xmm2 t__darwin_xmm_reg
  4914. F__fpu_xmm3 t__darwin_xmm_reg
  4915. F__fpu_xmm4 t__darwin_xmm_reg
  4916. F__fpu_xmm5 t__darwin_xmm_reg
  4917. F__fpu_xmm6 t__darwin_xmm_reg
  4918. F__fpu_xmm7 t__darwin_xmm_reg
  4919. F__fpu_rsrv4 [224]int8
  4920. F__fpu_reserved1 int32
  4921. F__avx_reserved1 [64]int8
  4922. F__fpu_ymmh0 t__darwin_xmm_reg
  4923. F__fpu_ymmh1 t__darwin_xmm_reg
  4924. F__fpu_ymmh2 t__darwin_xmm_reg
  4925. F__fpu_ymmh3 t__darwin_xmm_reg
  4926. F__fpu_ymmh4 t__darwin_xmm_reg
  4927. F__fpu_ymmh5 t__darwin_xmm_reg
  4928. F__fpu_ymmh6 t__darwin_xmm_reg
  4929. F__fpu_ymmh7 t__darwin_xmm_reg
  4930. F__fpu_k0 t__darwin_opmask_reg
  4931. F__fpu_k1 t__darwin_opmask_reg
  4932. F__fpu_k2 t__darwin_opmask_reg
  4933. F__fpu_k3 t__darwin_opmask_reg
  4934. F__fpu_k4 t__darwin_opmask_reg
  4935. F__fpu_k5 t__darwin_opmask_reg
  4936. F__fpu_k6 t__darwin_opmask_reg
  4937. F__fpu_k7 t__darwin_opmask_reg
  4938. F__fpu_zmmh0 t__darwin_ymm_reg
  4939. F__fpu_zmmh1 t__darwin_ymm_reg
  4940. F__fpu_zmmh2 t__darwin_ymm_reg
  4941. F__fpu_zmmh3 t__darwin_ymm_reg
  4942. F__fpu_zmmh4 t__darwin_ymm_reg
  4943. F__fpu_zmmh5 t__darwin_ymm_reg
  4944. F__fpu_zmmh6 t__darwin_ymm_reg
  4945. F__fpu_zmmh7 t__darwin_ymm_reg
  4946. }
  4947. type t__darwin_i386_exception_state = struct {
  4948. F__trapno t__uint16_t
  4949. F__cpu t__uint16_t
  4950. F__err t__uint32_t
  4951. F__faultvaddr t__uint32_t
  4952. }
  4953. type t__darwin_x86_debug_state32 = struct {
  4954. F__dr0 uint32
  4955. F__dr1 uint32
  4956. F__dr2 uint32
  4957. F__dr3 uint32
  4958. F__dr4 uint32
  4959. F__dr5 uint32
  4960. F__dr6 uint32
  4961. F__dr7 uint32
  4962. }
  4963. type t__x86_instruction_state = struct {
  4964. F__insn_stream_valid_bytes int32
  4965. F__insn_offset int32
  4966. F__out_of_synch int32
  4967. F__insn_bytes [2380]t__uint8_t
  4968. F__insn_cacheline [64]t__uint8_t
  4969. }
  4970. type t__last_branch_record = struct {
  4971. F__from_ip t__uint64_t
  4972. F__to_ip t__uint64_t
  4973. F__ccgo16 uint32
  4974. }
  4975. type t__last_branch_state = struct {
  4976. F__lbr_count int32
  4977. F__ccgo4 uint32
  4978. F__lbrs [32]t__last_branch_record
  4979. }
  4980. type t__x86_pagein_state = struct {
  4981. F__pagein_error int32
  4982. }
  4983. type t__darwin_x86_thread_state64 = struct {
  4984. F__rax t__uint64_t
  4985. F__rbx t__uint64_t
  4986. F__rcx t__uint64_t
  4987. F__rdx t__uint64_t
  4988. F__rdi t__uint64_t
  4989. F__rsi t__uint64_t
  4990. F__rbp t__uint64_t
  4991. F__rsp t__uint64_t
  4992. F__r8 t__uint64_t
  4993. F__r9 t__uint64_t
  4994. F__r10 t__uint64_t
  4995. F__r11 t__uint64_t
  4996. F__r12 t__uint64_t
  4997. F__r13 t__uint64_t
  4998. F__r14 t__uint64_t
  4999. F__r15 t__uint64_t
  5000. F__rip t__uint64_t
  5001. F__rflags t__uint64_t
  5002. F__cs t__uint64_t
  5003. F__fs t__uint64_t
  5004. F__gs t__uint64_t
  5005. }
  5006. type t__darwin_x86_thread_full_state64 = struct {
  5007. F__ss64 t__darwin_x86_thread_state64
  5008. F__ds t__uint64_t
  5009. F__es t__uint64_t
  5010. F__ss t__uint64_t
  5011. F__gsbase t__uint64_t
  5012. }
  5013. type t__darwin_x86_float_state64 = struct {
  5014. F__fpu_reserved [2]int32
  5015. F__fpu_fcw t__darwin_fp_control
  5016. F__fpu_fsw t__darwin_fp_status
  5017. F__fpu_ftw t__uint8_t
  5018. F__fpu_rsrv1 t__uint8_t
  5019. F__fpu_fop t__uint16_t
  5020. F__fpu_ip t__uint32_t
  5021. F__fpu_cs t__uint16_t
  5022. F__fpu_rsrv2 t__uint16_t
  5023. F__fpu_dp t__uint32_t
  5024. F__fpu_ds t__uint16_t
  5025. F__fpu_rsrv3 t__uint16_t
  5026. F__fpu_mxcsr t__uint32_t
  5027. F__fpu_mxcsrmask t__uint32_t
  5028. F__fpu_stmm0 t__darwin_mmst_reg
  5029. F__fpu_stmm1 t__darwin_mmst_reg
  5030. F__fpu_stmm2 t__darwin_mmst_reg
  5031. F__fpu_stmm3 t__darwin_mmst_reg
  5032. F__fpu_stmm4 t__darwin_mmst_reg
  5033. F__fpu_stmm5 t__darwin_mmst_reg
  5034. F__fpu_stmm6 t__darwin_mmst_reg
  5035. F__fpu_stmm7 t__darwin_mmst_reg
  5036. F__fpu_xmm0 t__darwin_xmm_reg
  5037. F__fpu_xmm1 t__darwin_xmm_reg
  5038. F__fpu_xmm2 t__darwin_xmm_reg
  5039. F__fpu_xmm3 t__darwin_xmm_reg
  5040. F__fpu_xmm4 t__darwin_xmm_reg
  5041. F__fpu_xmm5 t__darwin_xmm_reg
  5042. F__fpu_xmm6 t__darwin_xmm_reg
  5043. F__fpu_xmm7 t__darwin_xmm_reg
  5044. F__fpu_xmm8 t__darwin_xmm_reg
  5045. F__fpu_xmm9 t__darwin_xmm_reg
  5046. F__fpu_xmm10 t__darwin_xmm_reg
  5047. F__fpu_xmm11 t__darwin_xmm_reg
  5048. F__fpu_xmm12 t__darwin_xmm_reg
  5049. F__fpu_xmm13 t__darwin_xmm_reg
  5050. F__fpu_xmm14 t__darwin_xmm_reg
  5051. F__fpu_xmm15 t__darwin_xmm_reg
  5052. F__fpu_rsrv4 [96]int8
  5053. F__fpu_reserved1 int32
  5054. }
  5055. type t__darwin_x86_avx_state64 = struct {
  5056. F__fpu_reserved [2]int32
  5057. F__fpu_fcw t__darwin_fp_control
  5058. F__fpu_fsw t__darwin_fp_status
  5059. F__fpu_ftw t__uint8_t
  5060. F__fpu_rsrv1 t__uint8_t
  5061. F__fpu_fop t__uint16_t
  5062. F__fpu_ip t__uint32_t
  5063. F__fpu_cs t__uint16_t
  5064. F__fpu_rsrv2 t__uint16_t
  5065. F__fpu_dp t__uint32_t
  5066. F__fpu_ds t__uint16_t
  5067. F__fpu_rsrv3 t__uint16_t
  5068. F__fpu_mxcsr t__uint32_t
  5069. F__fpu_mxcsrmask t__uint32_t
  5070. F__fpu_stmm0 t__darwin_mmst_reg
  5071. F__fpu_stmm1 t__darwin_mmst_reg
  5072. F__fpu_stmm2 t__darwin_mmst_reg
  5073. F__fpu_stmm3 t__darwin_mmst_reg
  5074. F__fpu_stmm4 t__darwin_mmst_reg
  5075. F__fpu_stmm5 t__darwin_mmst_reg
  5076. F__fpu_stmm6 t__darwin_mmst_reg
  5077. F__fpu_stmm7 t__darwin_mmst_reg
  5078. F__fpu_xmm0 t__darwin_xmm_reg
  5079. F__fpu_xmm1 t__darwin_xmm_reg
  5080. F__fpu_xmm2 t__darwin_xmm_reg
  5081. F__fpu_xmm3 t__darwin_xmm_reg
  5082. F__fpu_xmm4 t__darwin_xmm_reg
  5083. F__fpu_xmm5 t__darwin_xmm_reg
  5084. F__fpu_xmm6 t__darwin_xmm_reg
  5085. F__fpu_xmm7 t__darwin_xmm_reg
  5086. F__fpu_xmm8 t__darwin_xmm_reg
  5087. F__fpu_xmm9 t__darwin_xmm_reg
  5088. F__fpu_xmm10 t__darwin_xmm_reg
  5089. F__fpu_xmm11 t__darwin_xmm_reg
  5090. F__fpu_xmm12 t__darwin_xmm_reg
  5091. F__fpu_xmm13 t__darwin_xmm_reg
  5092. F__fpu_xmm14 t__darwin_xmm_reg
  5093. F__fpu_xmm15 t__darwin_xmm_reg
  5094. F__fpu_rsrv4 [96]int8
  5095. F__fpu_reserved1 int32
  5096. F__avx_reserved1 [64]int8
  5097. F__fpu_ymmh0 t__darwin_xmm_reg
  5098. F__fpu_ymmh1 t__darwin_xmm_reg
  5099. F__fpu_ymmh2 t__darwin_xmm_reg
  5100. F__fpu_ymmh3 t__darwin_xmm_reg
  5101. F__fpu_ymmh4 t__darwin_xmm_reg
  5102. F__fpu_ymmh5 t__darwin_xmm_reg
  5103. F__fpu_ymmh6 t__darwin_xmm_reg
  5104. F__fpu_ymmh7 t__darwin_xmm_reg
  5105. F__fpu_ymmh8 t__darwin_xmm_reg
  5106. F__fpu_ymmh9 t__darwin_xmm_reg
  5107. F__fpu_ymmh10 t__darwin_xmm_reg
  5108. F__fpu_ymmh11 t__darwin_xmm_reg
  5109. F__fpu_ymmh12 t__darwin_xmm_reg
  5110. F__fpu_ymmh13 t__darwin_xmm_reg
  5111. F__fpu_ymmh14 t__darwin_xmm_reg
  5112. F__fpu_ymmh15 t__darwin_xmm_reg
  5113. }
  5114. type t__darwin_x86_avx512_state64 = struct {
  5115. F__fpu_reserved [2]int32
  5116. F__fpu_fcw t__darwin_fp_control
  5117. F__fpu_fsw t__darwin_fp_status
  5118. F__fpu_ftw t__uint8_t
  5119. F__fpu_rsrv1 t__uint8_t
  5120. F__fpu_fop t__uint16_t
  5121. F__fpu_ip t__uint32_t
  5122. F__fpu_cs t__uint16_t
  5123. F__fpu_rsrv2 t__uint16_t
  5124. F__fpu_dp t__uint32_t
  5125. F__fpu_ds t__uint16_t
  5126. F__fpu_rsrv3 t__uint16_t
  5127. F__fpu_mxcsr t__uint32_t
  5128. F__fpu_mxcsrmask t__uint32_t
  5129. F__fpu_stmm0 t__darwin_mmst_reg
  5130. F__fpu_stmm1 t__darwin_mmst_reg
  5131. F__fpu_stmm2 t__darwin_mmst_reg
  5132. F__fpu_stmm3 t__darwin_mmst_reg
  5133. F__fpu_stmm4 t__darwin_mmst_reg
  5134. F__fpu_stmm5 t__darwin_mmst_reg
  5135. F__fpu_stmm6 t__darwin_mmst_reg
  5136. F__fpu_stmm7 t__darwin_mmst_reg
  5137. F__fpu_xmm0 t__darwin_xmm_reg
  5138. F__fpu_xmm1 t__darwin_xmm_reg
  5139. F__fpu_xmm2 t__darwin_xmm_reg
  5140. F__fpu_xmm3 t__darwin_xmm_reg
  5141. F__fpu_xmm4 t__darwin_xmm_reg
  5142. F__fpu_xmm5 t__darwin_xmm_reg
  5143. F__fpu_xmm6 t__darwin_xmm_reg
  5144. F__fpu_xmm7 t__darwin_xmm_reg
  5145. F__fpu_xmm8 t__darwin_xmm_reg
  5146. F__fpu_xmm9 t__darwin_xmm_reg
  5147. F__fpu_xmm10 t__darwin_xmm_reg
  5148. F__fpu_xmm11 t__darwin_xmm_reg
  5149. F__fpu_xmm12 t__darwin_xmm_reg
  5150. F__fpu_xmm13 t__darwin_xmm_reg
  5151. F__fpu_xmm14 t__darwin_xmm_reg
  5152. F__fpu_xmm15 t__darwin_xmm_reg
  5153. F__fpu_rsrv4 [96]int8
  5154. F__fpu_reserved1 int32
  5155. F__avx_reserved1 [64]int8
  5156. F__fpu_ymmh0 t__darwin_xmm_reg
  5157. F__fpu_ymmh1 t__darwin_xmm_reg
  5158. F__fpu_ymmh2 t__darwin_xmm_reg
  5159. F__fpu_ymmh3 t__darwin_xmm_reg
  5160. F__fpu_ymmh4 t__darwin_xmm_reg
  5161. F__fpu_ymmh5 t__darwin_xmm_reg
  5162. F__fpu_ymmh6 t__darwin_xmm_reg
  5163. F__fpu_ymmh7 t__darwin_xmm_reg
  5164. F__fpu_ymmh8 t__darwin_xmm_reg
  5165. F__fpu_ymmh9 t__darwin_xmm_reg
  5166. F__fpu_ymmh10 t__darwin_xmm_reg
  5167. F__fpu_ymmh11 t__darwin_xmm_reg
  5168. F__fpu_ymmh12 t__darwin_xmm_reg
  5169. F__fpu_ymmh13 t__darwin_xmm_reg
  5170. F__fpu_ymmh14 t__darwin_xmm_reg
  5171. F__fpu_ymmh15 t__darwin_xmm_reg
  5172. F__fpu_k0 t__darwin_opmask_reg
  5173. F__fpu_k1 t__darwin_opmask_reg
  5174. F__fpu_k2 t__darwin_opmask_reg
  5175. F__fpu_k3 t__darwin_opmask_reg
  5176. F__fpu_k4 t__darwin_opmask_reg
  5177. F__fpu_k5 t__darwin_opmask_reg
  5178. F__fpu_k6 t__darwin_opmask_reg
  5179. F__fpu_k7 t__darwin_opmask_reg
  5180. F__fpu_zmmh0 t__darwin_ymm_reg
  5181. F__fpu_zmmh1 t__darwin_ymm_reg
  5182. F__fpu_zmmh2 t__darwin_ymm_reg
  5183. F__fpu_zmmh3 t__darwin_ymm_reg
  5184. F__fpu_zmmh4 t__darwin_ymm_reg
  5185. F__fpu_zmmh5 t__darwin_ymm_reg
  5186. F__fpu_zmmh6 t__darwin_ymm_reg
  5187. F__fpu_zmmh7 t__darwin_ymm_reg
  5188. F__fpu_zmmh8 t__darwin_ymm_reg
  5189. F__fpu_zmmh9 t__darwin_ymm_reg
  5190. F__fpu_zmmh10 t__darwin_ymm_reg
  5191. F__fpu_zmmh11 t__darwin_ymm_reg
  5192. F__fpu_zmmh12 t__darwin_ymm_reg
  5193. F__fpu_zmmh13 t__darwin_ymm_reg
  5194. F__fpu_zmmh14 t__darwin_ymm_reg
  5195. F__fpu_zmmh15 t__darwin_ymm_reg
  5196. F__fpu_zmm16 t__darwin_zmm_reg
  5197. F__fpu_zmm17 t__darwin_zmm_reg
  5198. F__fpu_zmm18 t__darwin_zmm_reg
  5199. F__fpu_zmm19 t__darwin_zmm_reg
  5200. F__fpu_zmm20 t__darwin_zmm_reg
  5201. F__fpu_zmm21 t__darwin_zmm_reg
  5202. F__fpu_zmm22 t__darwin_zmm_reg
  5203. F__fpu_zmm23 t__darwin_zmm_reg
  5204. F__fpu_zmm24 t__darwin_zmm_reg
  5205. F__fpu_zmm25 t__darwin_zmm_reg
  5206. F__fpu_zmm26 t__darwin_zmm_reg
  5207. F__fpu_zmm27 t__darwin_zmm_reg
  5208. F__fpu_zmm28 t__darwin_zmm_reg
  5209. F__fpu_zmm29 t__darwin_zmm_reg
  5210. F__fpu_zmm30 t__darwin_zmm_reg
  5211. F__fpu_zmm31 t__darwin_zmm_reg
  5212. }
  5213. type t__darwin_x86_exception_state64 = struct {
  5214. F__trapno t__uint16_t
  5215. F__cpu t__uint16_t
  5216. F__err t__uint32_t
  5217. F__faultvaddr t__uint64_t
  5218. }
  5219. type t__darwin_x86_debug_state64 = struct {
  5220. F__dr0 t__uint64_t
  5221. F__dr1 t__uint64_t
  5222. F__dr2 t__uint64_t
  5223. F__dr3 t__uint64_t
  5224. F__dr4 t__uint64_t
  5225. F__dr5 t__uint64_t
  5226. F__dr6 t__uint64_t
  5227. F__dr7 t__uint64_t
  5228. }
  5229. type t__darwin_x86_cpmu_state64 = struct {
  5230. F__ctrs [16]t__uint64_t
  5231. }
  5232. type t__darwin_mcontext32 = struct {
  5233. F__es t__darwin_i386_exception_state
  5234. F__ss t__darwin_i386_thread_state
  5235. F__fs t__darwin_i386_float_state
  5236. }
  5237. type t__darwin_mcontext_avx32 = struct {
  5238. F__es t__darwin_i386_exception_state
  5239. F__ss t__darwin_i386_thread_state
  5240. F__fs t__darwin_i386_avx_state
  5241. }
  5242. type t__darwin_mcontext_avx512_32 = struct {
  5243. F__es t__darwin_i386_exception_state
  5244. F__ss t__darwin_i386_thread_state
  5245. F__fs t__darwin_i386_avx512_state
  5246. }
  5247. type t__darwin_mcontext64 = struct {
  5248. F__es t__darwin_x86_exception_state64
  5249. F__ss t__darwin_x86_thread_state64
  5250. F__fs t__darwin_x86_float_state64
  5251. }
  5252. type t__darwin_mcontext64_full = struct {
  5253. F__es t__darwin_x86_exception_state64
  5254. F__ss t__darwin_x86_thread_full_state64
  5255. F__fs t__darwin_x86_float_state64
  5256. }
  5257. type t__darwin_mcontext_avx64 = struct {
  5258. F__es t__darwin_x86_exception_state64
  5259. F__ss t__darwin_x86_thread_state64
  5260. F__fs t__darwin_x86_avx_state64
  5261. }
  5262. type t__darwin_mcontext_avx64_full = struct {
  5263. F__es t__darwin_x86_exception_state64
  5264. F__ss t__darwin_x86_thread_full_state64
  5265. F__fs t__darwin_x86_avx_state64
  5266. }
  5267. type t__darwin_mcontext_avx512_64 = struct {
  5268. F__es t__darwin_x86_exception_state64
  5269. F__ss t__darwin_x86_thread_state64
  5270. F__fs t__darwin_x86_avx512_state64
  5271. }
  5272. type t__darwin_mcontext_avx512_64_full = struct {
  5273. F__es t__darwin_x86_exception_state64
  5274. F__ss t__darwin_x86_thread_full_state64
  5275. F__fs t__darwin_x86_avx512_state64
  5276. }
  5277. type Tmcontext_t = uintptr
  5278. type Tpthread_attr_t = struct {
  5279. F__sig int64
  5280. F__opaque [56]int8
  5281. }
  5282. type t__darwin_sigaltstack = struct {
  5283. Fss_sp uintptr
  5284. Fss_size t__darwin_size_t
  5285. Fss_flags int32
  5286. }
  5287. type Tstack_t = struct {
  5288. Fss_sp uintptr
  5289. Fss_size t__darwin_size_t
  5290. Fss_flags int32
  5291. }
  5292. type t__darwin_ucontext = struct {
  5293. Fuc_onstack int32
  5294. Fuc_sigmask t__darwin_sigset_t
  5295. Fuc_stack t__darwin_sigaltstack
  5296. Fuc_link uintptr
  5297. Fuc_mcsize t__darwin_size_t
  5298. Fuc_mcontext uintptr
  5299. }
  5300. type Tucontext_t = struct {
  5301. Fuc_onstack int32
  5302. Fuc_sigmask t__darwin_sigset_t
  5303. Fuc_stack t__darwin_sigaltstack
  5304. Fuc_link uintptr
  5305. Fuc_mcsize t__darwin_size_t
  5306. Fuc_mcontext uintptr
  5307. }
  5308. type Tsigset_t = uint32
  5309. type Tuid_t = uint32
  5310. type Tsigval = struct {
  5311. Fsival_ptr [0]uintptr
  5312. Fsival_int int32
  5313. F__ccgo_pad2 [4]byte
  5314. }
  5315. type Tsigevent = struct {
  5316. Fsigev_notify int32
  5317. Fsigev_signo int32
  5318. Fsigev_value Tsigval
  5319. Fsigev_notify_function uintptr
  5320. Fsigev_notify_attributes uintptr
  5321. }
  5322. type Tsiginfo_t = struct {
  5323. Fsi_signo int32
  5324. Fsi_errno int32
  5325. Fsi_code int32
  5326. Fsi_pid Tpid_t
  5327. Fsi_uid Tuid_t
  5328. Fsi_status int32
  5329. Fsi_addr uintptr
  5330. Fsi_value Tsigval
  5331. Fsi_band int64
  5332. F__pad [7]uint64
  5333. }
  5334. type t__siginfo = Tsiginfo_t
  5335. type t__sigaction_u = struct {
  5336. F__sa_sigaction [0]uintptr
  5337. F__sa_handler uintptr
  5338. }
  5339. type t__sigaction = struct {
  5340. F__sigaction_u t__sigaction_u
  5341. Fsa_tramp uintptr
  5342. Fsa_mask Tsigset_t
  5343. Fsa_flags int32
  5344. }
  5345. type Tsigaction = struct {
  5346. F__sigaction_u t__sigaction_u
  5347. Fsa_mask Tsigset_t
  5348. Fsa_flags int32
  5349. }
  5350. type Tsig_t = uintptr
  5351. type Tsigvec = struct {
  5352. Fsv_handler uintptr
  5353. Fsv_mask int32
  5354. Fsv_flags int32
  5355. }
  5356. type Tsigstack = struct {
  5357. Fss_sp uintptr
  5358. Fss_onstack int32
  5359. }
  5360. type Tuint64_t = uint64
  5361. type Tint_least64_t = int64
  5362. type Tuint_least64_t = uint64
  5363. type Tint_fast64_t = int64
  5364. type Tuint_fast64_t = uint64
  5365. type Tuint32_t = uint32
  5366. type Tint_least32_t = int32
  5367. type Tuint_least32_t = uint32
  5368. type Tint_fast32_t = int32
  5369. type Tuint_fast32_t = uint32
  5370. type Tuint16_t = uint16
  5371. type Tint_least16_t = int16
  5372. type Tuint_least16_t = uint16
  5373. type Tint_fast16_t = int16
  5374. type Tuint_fast16_t = uint16
  5375. type Tuint8_t = uint8
  5376. type Tint_least8_t = int8
  5377. type Tuint_least8_t = uint8
  5378. type Tint_fast8_t = int8
  5379. type Tuint_fast8_t = uint8
  5380. type Tintmax_t = int64
  5381. type Tuintmax_t = uint64
  5382. type Ttimeval = struct {
  5383. Ftv_sec t__darwin_time_t
  5384. Ftv_usec t__darwin_suseconds_t
  5385. }
  5386. type Trlim_t = uint64
  5387. type Trusage = struct {
  5388. Fru_utime Ttimeval
  5389. Fru_stime Ttimeval
  5390. Fru_maxrss int64
  5391. Fru_ixrss int64
  5392. Fru_idrss int64
  5393. Fru_isrss int64
  5394. Fru_minflt int64
  5395. Fru_majflt int64
  5396. Fru_nswap int64
  5397. Fru_inblock int64
  5398. Fru_oublock int64
  5399. Fru_msgsnd int64
  5400. Fru_msgrcv int64
  5401. Fru_nsignals int64
  5402. Fru_nvcsw int64
  5403. Fru_nivcsw int64
  5404. }
  5405. type Trusage_info_t = uintptr
  5406. type Trusage_info_v0 = struct {
  5407. Fri_uuid [16]Tuint8_t
  5408. Fri_user_time Tuint64_t
  5409. Fri_system_time Tuint64_t
  5410. Fri_pkg_idle_wkups Tuint64_t
  5411. Fri_interrupt_wkups Tuint64_t
  5412. Fri_pageins Tuint64_t
  5413. Fri_wired_size Tuint64_t
  5414. Fri_resident_size Tuint64_t
  5415. Fri_phys_footprint Tuint64_t
  5416. Fri_proc_start_abstime Tuint64_t
  5417. Fri_proc_exit_abstime Tuint64_t
  5418. }
  5419. type Trusage_info_v1 = struct {
  5420. Fri_uuid [16]Tuint8_t
  5421. Fri_user_time Tuint64_t
  5422. Fri_system_time Tuint64_t
  5423. Fri_pkg_idle_wkups Tuint64_t
  5424. Fri_interrupt_wkups Tuint64_t
  5425. Fri_pageins Tuint64_t
  5426. Fri_wired_size Tuint64_t
  5427. Fri_resident_size Tuint64_t
  5428. Fri_phys_footprint Tuint64_t
  5429. Fri_proc_start_abstime Tuint64_t
  5430. Fri_proc_exit_abstime Tuint64_t
  5431. Fri_child_user_time Tuint64_t
  5432. Fri_child_system_time Tuint64_t
  5433. Fri_child_pkg_idle_wkups Tuint64_t
  5434. Fri_child_interrupt_wkups Tuint64_t
  5435. Fri_child_pageins Tuint64_t
  5436. Fri_child_elapsed_abstime Tuint64_t
  5437. }
  5438. type Trusage_info_v2 = struct {
  5439. Fri_uuid [16]Tuint8_t
  5440. Fri_user_time Tuint64_t
  5441. Fri_system_time Tuint64_t
  5442. Fri_pkg_idle_wkups Tuint64_t
  5443. Fri_interrupt_wkups Tuint64_t
  5444. Fri_pageins Tuint64_t
  5445. Fri_wired_size Tuint64_t
  5446. Fri_resident_size Tuint64_t
  5447. Fri_phys_footprint Tuint64_t
  5448. Fri_proc_start_abstime Tuint64_t
  5449. Fri_proc_exit_abstime Tuint64_t
  5450. Fri_child_user_time Tuint64_t
  5451. Fri_child_system_time Tuint64_t
  5452. Fri_child_pkg_idle_wkups Tuint64_t
  5453. Fri_child_interrupt_wkups Tuint64_t
  5454. Fri_child_pageins Tuint64_t
  5455. Fri_child_elapsed_abstime Tuint64_t
  5456. Fri_diskio_bytesread Tuint64_t
  5457. Fri_diskio_byteswritten Tuint64_t
  5458. }
  5459. type Trusage_info_v3 = struct {
  5460. Fri_uuid [16]Tuint8_t
  5461. Fri_user_time Tuint64_t
  5462. Fri_system_time Tuint64_t
  5463. Fri_pkg_idle_wkups Tuint64_t
  5464. Fri_interrupt_wkups Tuint64_t
  5465. Fri_pageins Tuint64_t
  5466. Fri_wired_size Tuint64_t
  5467. Fri_resident_size Tuint64_t
  5468. Fri_phys_footprint Tuint64_t
  5469. Fri_proc_start_abstime Tuint64_t
  5470. Fri_proc_exit_abstime Tuint64_t
  5471. Fri_child_user_time Tuint64_t
  5472. Fri_child_system_time Tuint64_t
  5473. Fri_child_pkg_idle_wkups Tuint64_t
  5474. Fri_child_interrupt_wkups Tuint64_t
  5475. Fri_child_pageins Tuint64_t
  5476. Fri_child_elapsed_abstime Tuint64_t
  5477. Fri_diskio_bytesread Tuint64_t
  5478. Fri_diskio_byteswritten Tuint64_t
  5479. Fri_cpu_time_qos_default Tuint64_t
  5480. Fri_cpu_time_qos_maintenance Tuint64_t
  5481. Fri_cpu_time_qos_background Tuint64_t
  5482. Fri_cpu_time_qos_utility Tuint64_t
  5483. Fri_cpu_time_qos_legacy Tuint64_t
  5484. Fri_cpu_time_qos_user_initiated Tuint64_t
  5485. Fri_cpu_time_qos_user_interactive Tuint64_t
  5486. Fri_billed_system_time Tuint64_t
  5487. Fri_serviced_system_time Tuint64_t
  5488. }
  5489. type Trusage_info_v4 = struct {
  5490. Fri_uuid [16]Tuint8_t
  5491. Fri_user_time Tuint64_t
  5492. Fri_system_time Tuint64_t
  5493. Fri_pkg_idle_wkups Tuint64_t
  5494. Fri_interrupt_wkups Tuint64_t
  5495. Fri_pageins Tuint64_t
  5496. Fri_wired_size Tuint64_t
  5497. Fri_resident_size Tuint64_t
  5498. Fri_phys_footprint Tuint64_t
  5499. Fri_proc_start_abstime Tuint64_t
  5500. Fri_proc_exit_abstime Tuint64_t
  5501. Fri_child_user_time Tuint64_t
  5502. Fri_child_system_time Tuint64_t
  5503. Fri_child_pkg_idle_wkups Tuint64_t
  5504. Fri_child_interrupt_wkups Tuint64_t
  5505. Fri_child_pageins Tuint64_t
  5506. Fri_child_elapsed_abstime Tuint64_t
  5507. Fri_diskio_bytesread Tuint64_t
  5508. Fri_diskio_byteswritten Tuint64_t
  5509. Fri_cpu_time_qos_default Tuint64_t
  5510. Fri_cpu_time_qos_maintenance Tuint64_t
  5511. Fri_cpu_time_qos_background Tuint64_t
  5512. Fri_cpu_time_qos_utility Tuint64_t
  5513. Fri_cpu_time_qos_legacy Tuint64_t
  5514. Fri_cpu_time_qos_user_initiated Tuint64_t
  5515. Fri_cpu_time_qos_user_interactive Tuint64_t
  5516. Fri_billed_system_time Tuint64_t
  5517. Fri_serviced_system_time Tuint64_t
  5518. Fri_logical_writes Tuint64_t
  5519. Fri_lifetime_max_phys_footprint Tuint64_t
  5520. Fri_instructions Tuint64_t
  5521. Fri_cycles Tuint64_t
  5522. Fri_billed_energy Tuint64_t
  5523. Fri_serviced_energy Tuint64_t
  5524. Fri_interval_max_phys_footprint Tuint64_t
  5525. Fri_runnable_time Tuint64_t
  5526. }
  5527. type Trusage_info_v5 = struct {
  5528. Fri_uuid [16]Tuint8_t
  5529. Fri_user_time Tuint64_t
  5530. Fri_system_time Tuint64_t
  5531. Fri_pkg_idle_wkups Tuint64_t
  5532. Fri_interrupt_wkups Tuint64_t
  5533. Fri_pageins Tuint64_t
  5534. Fri_wired_size Tuint64_t
  5535. Fri_resident_size Tuint64_t
  5536. Fri_phys_footprint Tuint64_t
  5537. Fri_proc_start_abstime Tuint64_t
  5538. Fri_proc_exit_abstime Tuint64_t
  5539. Fri_child_user_time Tuint64_t
  5540. Fri_child_system_time Tuint64_t
  5541. Fri_child_pkg_idle_wkups Tuint64_t
  5542. Fri_child_interrupt_wkups Tuint64_t
  5543. Fri_child_pageins Tuint64_t
  5544. Fri_child_elapsed_abstime Tuint64_t
  5545. Fri_diskio_bytesread Tuint64_t
  5546. Fri_diskio_byteswritten Tuint64_t
  5547. Fri_cpu_time_qos_default Tuint64_t
  5548. Fri_cpu_time_qos_maintenance Tuint64_t
  5549. Fri_cpu_time_qos_background Tuint64_t
  5550. Fri_cpu_time_qos_utility Tuint64_t
  5551. Fri_cpu_time_qos_legacy Tuint64_t
  5552. Fri_cpu_time_qos_user_initiated Tuint64_t
  5553. Fri_cpu_time_qos_user_interactive Tuint64_t
  5554. Fri_billed_system_time Tuint64_t
  5555. Fri_serviced_system_time Tuint64_t
  5556. Fri_logical_writes Tuint64_t
  5557. Fri_lifetime_max_phys_footprint Tuint64_t
  5558. Fri_instructions Tuint64_t
  5559. Fri_cycles Tuint64_t
  5560. Fri_billed_energy Tuint64_t
  5561. Fri_serviced_energy Tuint64_t
  5562. Fri_interval_max_phys_footprint Tuint64_t
  5563. Fri_runnable_time Tuint64_t
  5564. Fri_flags Tuint64_t
  5565. }
  5566. type Trusage_info_v6 = struct {
  5567. Fri_uuid [16]Tuint8_t
  5568. Fri_user_time Tuint64_t
  5569. Fri_system_time Tuint64_t
  5570. Fri_pkg_idle_wkups Tuint64_t
  5571. Fri_interrupt_wkups Tuint64_t
  5572. Fri_pageins Tuint64_t
  5573. Fri_wired_size Tuint64_t
  5574. Fri_resident_size Tuint64_t
  5575. Fri_phys_footprint Tuint64_t
  5576. Fri_proc_start_abstime Tuint64_t
  5577. Fri_proc_exit_abstime Tuint64_t
  5578. Fri_child_user_time Tuint64_t
  5579. Fri_child_system_time Tuint64_t
  5580. Fri_child_pkg_idle_wkups Tuint64_t
  5581. Fri_child_interrupt_wkups Tuint64_t
  5582. Fri_child_pageins Tuint64_t
  5583. Fri_child_elapsed_abstime Tuint64_t
  5584. Fri_diskio_bytesread Tuint64_t
  5585. Fri_diskio_byteswritten Tuint64_t
  5586. Fri_cpu_time_qos_default Tuint64_t
  5587. Fri_cpu_time_qos_maintenance Tuint64_t
  5588. Fri_cpu_time_qos_background Tuint64_t
  5589. Fri_cpu_time_qos_utility Tuint64_t
  5590. Fri_cpu_time_qos_legacy Tuint64_t
  5591. Fri_cpu_time_qos_user_initiated Tuint64_t
  5592. Fri_cpu_time_qos_user_interactive Tuint64_t
  5593. Fri_billed_system_time Tuint64_t
  5594. Fri_serviced_system_time Tuint64_t
  5595. Fri_logical_writes Tuint64_t
  5596. Fri_lifetime_max_phys_footprint Tuint64_t
  5597. Fri_instructions Tuint64_t
  5598. Fri_cycles Tuint64_t
  5599. Fri_billed_energy Tuint64_t
  5600. Fri_serviced_energy Tuint64_t
  5601. Fri_interval_max_phys_footprint Tuint64_t
  5602. Fri_runnable_time Tuint64_t
  5603. Fri_flags Tuint64_t
  5604. Fri_user_ptime Tuint64_t
  5605. Fri_system_ptime Tuint64_t
  5606. Fri_pinstructions Tuint64_t
  5607. Fri_pcycles Tuint64_t
  5608. Fri_energy_nj Tuint64_t
  5609. Fri_penergy_nj Tuint64_t
  5610. Fri_secure_time_in_system Tuint64_t
  5611. Fri_secure_ptime_in_system Tuint64_t
  5612. Fri_reserved [12]Tuint64_t
  5613. }
  5614. type Trusage_info_current = struct {
  5615. Fri_uuid [16]Tuint8_t
  5616. Fri_user_time Tuint64_t
  5617. Fri_system_time Tuint64_t
  5618. Fri_pkg_idle_wkups Tuint64_t
  5619. Fri_interrupt_wkups Tuint64_t
  5620. Fri_pageins Tuint64_t
  5621. Fri_wired_size Tuint64_t
  5622. Fri_resident_size Tuint64_t
  5623. Fri_phys_footprint Tuint64_t
  5624. Fri_proc_start_abstime Tuint64_t
  5625. Fri_proc_exit_abstime Tuint64_t
  5626. Fri_child_user_time Tuint64_t
  5627. Fri_child_system_time Tuint64_t
  5628. Fri_child_pkg_idle_wkups Tuint64_t
  5629. Fri_child_interrupt_wkups Tuint64_t
  5630. Fri_child_pageins Tuint64_t
  5631. Fri_child_elapsed_abstime Tuint64_t
  5632. Fri_diskio_bytesread Tuint64_t
  5633. Fri_diskio_byteswritten Tuint64_t
  5634. Fri_cpu_time_qos_default Tuint64_t
  5635. Fri_cpu_time_qos_maintenance Tuint64_t
  5636. Fri_cpu_time_qos_background Tuint64_t
  5637. Fri_cpu_time_qos_utility Tuint64_t
  5638. Fri_cpu_time_qos_legacy Tuint64_t
  5639. Fri_cpu_time_qos_user_initiated Tuint64_t
  5640. Fri_cpu_time_qos_user_interactive Tuint64_t
  5641. Fri_billed_system_time Tuint64_t
  5642. Fri_serviced_system_time Tuint64_t
  5643. Fri_logical_writes Tuint64_t
  5644. Fri_lifetime_max_phys_footprint Tuint64_t
  5645. Fri_instructions Tuint64_t
  5646. Fri_cycles Tuint64_t
  5647. Fri_billed_energy Tuint64_t
  5648. Fri_serviced_energy Tuint64_t
  5649. Fri_interval_max_phys_footprint Tuint64_t
  5650. Fri_runnable_time Tuint64_t
  5651. Fri_flags Tuint64_t
  5652. Fri_user_ptime Tuint64_t
  5653. Fri_system_ptime Tuint64_t
  5654. Fri_pinstructions Tuint64_t
  5655. Fri_pcycles Tuint64_t
  5656. Fri_energy_nj Tuint64_t
  5657. Fri_penergy_nj Tuint64_t
  5658. Fri_secure_time_in_system Tuint64_t
  5659. Fri_secure_ptime_in_system Tuint64_t
  5660. Fri_reserved [12]Tuint64_t
  5661. }
  5662. type Trlimit = struct {
  5663. Frlim_cur Trlim_t
  5664. Frlim_max Trlim_t
  5665. }
  5666. type Tproc_rlimit_control_wakeupmon = struct {
  5667. Fwm_flags Tuint32_t
  5668. Fwm_rate Tint32_t
  5669. }
  5670. type Twait = struct {
  5671. Fw_T [0]struct {
  5672. F__ccgo0 uint32
  5673. }
  5674. Fw_S [0]struct {
  5675. F__ccgo0 uint32
  5676. }
  5677. Fw_status int32
  5678. }
  5679. type Tct_rune_t = int32
  5680. type Trune_t = int32
  5681. type Twchar_t = int32
  5682. type Tdiv_t = struct {
  5683. Fquot int32
  5684. Frem int32
  5685. }
  5686. type Tldiv_t = struct {
  5687. Fquot int64
  5688. Frem int64
  5689. }
  5690. type Tlldiv_t = struct {
  5691. Fquot int64
  5692. Frem int64
  5693. }
  5694. type Tmalloc_type_id_t = uint64
  5695. type Tdev_t = int32
  5696. type Tmode_t = uint16
  5697. type Trsize_t = uint64
  5698. type Terrno_t = int32
  5699. type Twint_t = int32
  5700. type T_RuneEntry = struct {
  5701. F__min t__darwin_rune_t
  5702. F__max t__darwin_rune_t
  5703. F__map t__darwin_rune_t
  5704. F__types uintptr
  5705. }
  5706. type T_RuneRange = struct {
  5707. F__nranges int32
  5708. F__ranges uintptr
  5709. }
  5710. type T_RuneCharClass = struct {
  5711. F__name [14]int8
  5712. F__mask t__uint32_t
  5713. }
  5714. type T_RuneLocale = struct {
  5715. F__magic [8]int8
  5716. F__encoding [32]int8
  5717. F__sgetrune uintptr
  5718. F__sputrune uintptr
  5719. F__invalid_rune t__darwin_rune_t
  5720. F__runetype [256]t__uint32_t
  5721. F__maplower [256]t__darwin_rune_t
  5722. F__mapupper [256]t__darwin_rune_t
  5723. F__runetype_ext T_RuneRange
  5724. F__maplower_ext T_RuneRange
  5725. F__mapupper_ext T_RuneRange
  5726. F__variable uintptr
  5727. F__variable_len int32
  5728. F__ncharclasses int32
  5729. F__charclasses uintptr
  5730. }
  5731. type Tu_char = uint8
  5732. type Tu_short = uint16
  5733. type Tu_int = uint32
  5734. type Tu_long = uint64
  5735. type Tushort = uint16
  5736. type Tuint = uint32
  5737. type Tu_quad_t = uint64
  5738. type Tquad_t = int64
  5739. type Tqaddr_t = uintptr
  5740. type Tcaddr_t = uintptr
  5741. type Tdaddr_t = int32
  5742. type Tfixpt_t = uint32
  5743. type Tblkcnt_t = int64
  5744. type Tblksize_t = int32
  5745. type Tgid_t = uint32
  5746. type Tin_addr_t = uint32
  5747. type Tin_port_t = uint16
  5748. type Tino_t = uint64
  5749. type Tino64_t = uint64
  5750. type Tkey_t = int32
  5751. type Tnlink_t = uint16
  5752. type Tsegsz_t = int32
  5753. type Tswblk_t = int32
  5754. type Tclock_t = uint64
  5755. type Ttime_t = int64
  5756. type Tuseconds_t = uint32
  5757. type Tsuseconds_t = int32
  5758. type Tfd_set = struct {
  5759. Ffds_bits [32]t__int32_t
  5760. }
  5761. type Tfd_mask = int32
  5762. type Tpthread_cond_t = struct {
  5763. F__sig int64
  5764. F__opaque [40]int8
  5765. }
  5766. type Tpthread_condattr_t = struct {
  5767. F__sig int64
  5768. F__opaque [8]int8
  5769. }
  5770. type Tpthread_mutex_t = struct {
  5771. F__sig int64
  5772. F__opaque [56]int8
  5773. }
  5774. type Tpthread_mutexattr_t = struct {
  5775. F__sig int64
  5776. F__opaque [8]int8
  5777. }
  5778. type Tpthread_once_t = struct {
  5779. F__sig int64
  5780. F__opaque [8]int8
  5781. }
  5782. type Tpthread_rwlock_t = struct {
  5783. F__sig int64
  5784. F__opaque [192]int8
  5785. }
  5786. type Tpthread_rwlockattr_t = struct {
  5787. F__sig int64
  5788. F__opaque [16]int8
  5789. }
  5790. type Tpthread_t = uintptr
  5791. type Tpthread_key_t = uint64
  5792. type Tfsblkcnt_t = uint32
  5793. type Tfsfilcnt_t = uint32
  5794. type TXID = uint64
  5795. type TMask = uint64
  5796. type TAtom = uint64
  5797. type TVisualID = uint64
  5798. type TTime = uint64
  5799. type TWindow = uint64
  5800. type TDrawable = uint64
  5801. type TFont = uint64
  5802. type TPixmap = uint64
  5803. type TCursor = uint64
  5804. type TColormap = uint64
  5805. type TGContext = uint64
  5806. type TKeySym = uint64
  5807. type TKeyCode = uint8
  5808. type Tptrdiff_t = int64
  5809. type Tmax_align_t = float64
  5810. type TXPointer = uintptr
  5811. type TXExtData = struct {
  5812. Fnumber int32
  5813. Fnext uintptr
  5814. Ffree_private uintptr
  5815. Fprivate_data TXPointer
  5816. }
  5817. type T_XExtData = TXExtData
  5818. type TXExtCodes = struct {
  5819. Fextension int32
  5820. Fmajor_opcode int32
  5821. Ffirst_event int32
  5822. Ffirst_error int32
  5823. }
  5824. type TXPixmapFormatValues = struct {
  5825. Fdepth int32
  5826. Fbits_per_pixel int32
  5827. Fscanline_pad int32
  5828. }
  5829. type TXGCValues = struct {
  5830. Ffunction int32
  5831. Fplane_mask uint64
  5832. Fforeground uint64
  5833. Fbackground uint64
  5834. Fline_width int32
  5835. Fline_style int32
  5836. Fcap_style int32
  5837. Fjoin_style int32
  5838. Ffill_style int32
  5839. Ffill_rule int32
  5840. Farc_mode int32
  5841. Ftile TPixmap
  5842. Fstipple TPixmap
  5843. Fts_x_origin int32
  5844. Fts_y_origin int32
  5845. Ffont TFont
  5846. Fsubwindow_mode int32
  5847. Fgraphics_exposures int32
  5848. Fclip_x_origin int32
  5849. Fclip_y_origin int32
  5850. Fclip_mask TPixmap
  5851. Fdash_offset int32
  5852. Fdashes int8
  5853. }
  5854. type TGC = uintptr
  5855. type T_XGC = struct {
  5856. Fext_data uintptr
  5857. Fgid TGContext
  5858. Frects int32
  5859. Fdashes int32
  5860. Fdirty uint64
  5861. Fvalues TXGCValues
  5862. }
  5863. type TVisual = struct {
  5864. Fext_data uintptr
  5865. Fvisualid TVisualID
  5866. Fclass int32
  5867. Fred_mask uint64
  5868. Fgreen_mask uint64
  5869. Fblue_mask uint64
  5870. Fbits_per_rgb int32
  5871. Fmap_entries int32
  5872. }
  5873. type TDepth = struct {
  5874. Fdepth int32
  5875. Fnvisuals int32
  5876. Fvisuals uintptr
  5877. }
  5878. type T_XDisplay = struct {
  5879. Fext_data uintptr
  5880. Ffree_funcs uintptr
  5881. Ffd int32
  5882. Fconn_checker int32
  5883. Fproto_major_version int32
  5884. Fproto_minor_version int32
  5885. Fvendor uintptr
  5886. Fresource_base TXID
  5887. Fresource_mask TXID
  5888. Fresource_id TXID
  5889. Fresource_shift int32
  5890. Fresource_alloc uintptr
  5891. Fbyte_order int32
  5892. Fbitmap_unit int32
  5893. Fbitmap_pad int32
  5894. Fbitmap_bit_order int32
  5895. Fnformats int32
  5896. Fpixmap_format uintptr
  5897. Fvnumber int32
  5898. Frelease int32
  5899. Fhead uintptr
  5900. Ftail uintptr
  5901. Fqlen int32
  5902. Flast_request_read uint64
  5903. Frequest uint64
  5904. Flast_req uintptr
  5905. Fbuffer uintptr
  5906. Fbufptr uintptr
  5907. Fbufmax uintptr
  5908. Fmax_request_size uint32
  5909. Fdb uintptr
  5910. Fsynchandler uintptr
  5911. Fdisplay_name uintptr
  5912. Fdefault_screen int32
  5913. Fnscreens int32
  5914. Fscreens uintptr
  5915. Fmotion_buffer uint64
  5916. Fflags uint64
  5917. Fmin_keycode int32
  5918. Fmax_keycode int32
  5919. Fkeysyms uintptr
  5920. Fmodifiermap uintptr
  5921. Fkeysyms_per_keycode int32
  5922. Fxdefaults uintptr
  5923. Fscratch_buffer uintptr
  5924. Fscratch_length uint64
  5925. Fext_number int32
  5926. Fext_procs uintptr
  5927. Fevent_vec [128]uintptr
  5928. Fwire_vec [128]uintptr
  5929. Flock_meaning TKeySym
  5930. Flock uintptr
  5931. Fasync_handlers uintptr
  5932. Fbigreq_size uint64
  5933. Flock_fns uintptr
  5934. Fidlist_alloc uintptr
  5935. Fkey_bindings uintptr
  5936. Fcursor_font TFont
  5937. Fatoms uintptr
  5938. Fmode_switch uint32
  5939. Fnum_lock uint32
  5940. Fcontext_db uintptr
  5941. Ferror_vec uintptr
  5942. Fcms struct {
  5943. FdefaultCCCs TXPointer
  5944. FclientCmaps TXPointer
  5945. FperVisualIntensityMaps TXPointer
  5946. }
  5947. Fim_filters uintptr
  5948. Fqfree uintptr
  5949. Fnext_event_serial_num uint64
  5950. Fflushes uintptr
  5951. Fim_fd_info uintptr
  5952. Fim_fd_length int32
  5953. Fconn_watchers uintptr
  5954. Fwatcher_count int32
  5955. Ffiledes TXPointer
  5956. Fsavedsynchandler uintptr
  5957. Fresource_max TXID
  5958. Fxcmisc_opcode int32
  5959. Fxkb_info uintptr
  5960. Ftrans_conn uintptr
  5961. Fxcb uintptr
  5962. Fnext_cookie uint32
  5963. Fgeneric_event_vec [128]uintptr
  5964. Fgeneric_event_copy_vec [128]uintptr
  5965. Fcookiejar uintptr
  5966. Ferror_threads uintptr
  5967. Fexit_handler TXIOErrorExitHandler
  5968. Fexit_handler_data uintptr
  5969. Fin_ifevent TCARD32
  5970. Fifevent_thread Txthread_t
  5971. }
  5972. type TScreen = struct {
  5973. Fext_data uintptr
  5974. Fdisplay uintptr
  5975. Froot TWindow
  5976. Fwidth int32
  5977. Fheight int32
  5978. Fmwidth int32
  5979. Fmheight int32
  5980. Fndepths int32
  5981. Fdepths uintptr
  5982. Froot_depth int32
  5983. Froot_visual uintptr
  5984. Fdefault_gc TGC
  5985. Fcmap TColormap
  5986. Fwhite_pixel uint64
  5987. Fblack_pixel uint64
  5988. Fmax_maps int32
  5989. Fmin_maps int32
  5990. Fbacking_store int32
  5991. Fsave_unders int32
  5992. Froot_input_mask int64
  5993. }
  5994. type TScreenFormat = struct {
  5995. Fext_data uintptr
  5996. Fdepth int32
  5997. Fbits_per_pixel int32
  5998. Fscanline_pad int32
  5999. }
  6000. type TXSetWindowAttributes = struct {
  6001. Fbackground_pixmap TPixmap
  6002. Fbackground_pixel uint64
  6003. Fborder_pixmap TPixmap
  6004. Fborder_pixel uint64
  6005. Fbit_gravity int32
  6006. Fwin_gravity int32
  6007. Fbacking_store int32
  6008. Fbacking_planes uint64
  6009. Fbacking_pixel uint64
  6010. Fsave_under int32
  6011. Fevent_mask int64
  6012. Fdo_not_propagate_mask int64
  6013. Foverride_redirect int32
  6014. Fcolormap TColormap
  6015. Fcursor TCursor
  6016. }
  6017. type TXWindowAttributes = struct {
  6018. Fx int32
  6019. Fy int32
  6020. Fwidth int32
  6021. Fheight int32
  6022. Fborder_width int32
  6023. Fdepth int32
  6024. Fvisual uintptr
  6025. Froot TWindow
  6026. Fclass int32
  6027. Fbit_gravity int32
  6028. Fwin_gravity int32
  6029. Fbacking_store int32
  6030. Fbacking_planes uint64
  6031. Fbacking_pixel uint64
  6032. Fsave_under int32
  6033. Fcolormap TColormap
  6034. Fmap_installed int32
  6035. Fmap_state int32
  6036. Fall_event_masks int64
  6037. Fyour_event_mask int64
  6038. Fdo_not_propagate_mask int64
  6039. Foverride_redirect int32
  6040. Fscreen uintptr
  6041. }
  6042. type TXHostAddress = struct {
  6043. Ffamily int32
  6044. Flength int32
  6045. Faddress uintptr
  6046. }
  6047. type TXServerInterpretedAddress = struct {
  6048. Ftypelength int32
  6049. Fvaluelength int32
  6050. Ftype1 uintptr
  6051. Fvalue uintptr
  6052. }
  6053. type TXImage = struct {
  6054. Fwidth int32
  6055. Fheight int32
  6056. Fxoffset int32
  6057. Fformat int32
  6058. Fdata uintptr
  6059. Fbyte_order int32
  6060. Fbitmap_unit int32
  6061. Fbitmap_bit_order int32
  6062. Fbitmap_pad int32
  6063. Fdepth int32
  6064. Fbytes_per_line int32
  6065. Fbits_per_pixel int32
  6066. Fred_mask uint64
  6067. Fgreen_mask uint64
  6068. Fblue_mask uint64
  6069. Fobdata TXPointer
  6070. Ff Tfuncs
  6071. }
  6072. type T_XImage = TXImage
  6073. type TXWindowChanges = struct {
  6074. Fx int32
  6075. Fy int32
  6076. Fwidth int32
  6077. Fheight int32
  6078. Fborder_width int32
  6079. Fsibling TWindow
  6080. Fstack_mode int32
  6081. }
  6082. type TXColor = struct {
  6083. Fpixel uint64
  6084. Fred uint16
  6085. Fgreen uint16
  6086. Fblue uint16
  6087. Fflags int8
  6088. Fpad int8
  6089. }
  6090. type TXSegment = struct {
  6091. Fx1 int16
  6092. Fy1 int16
  6093. Fx2 int16
  6094. Fy2 int16
  6095. }
  6096. type TXPoint = struct {
  6097. Fx int16
  6098. Fy int16
  6099. }
  6100. type TXRectangle = struct {
  6101. Fx int16
  6102. Fy int16
  6103. Fwidth uint16
  6104. Fheight uint16
  6105. }
  6106. type TXArc = struct {
  6107. Fx int16
  6108. Fy int16
  6109. Fwidth uint16
  6110. Fheight uint16
  6111. Fangle1 int16
  6112. Fangle2 int16
  6113. }
  6114. type TXKeyboardControl = struct {
  6115. Fkey_click_percent int32
  6116. Fbell_percent int32
  6117. Fbell_pitch int32
  6118. Fbell_duration int32
  6119. Fled int32
  6120. Fled_mode int32
  6121. Fkey int32
  6122. Fauto_repeat_mode int32
  6123. }
  6124. type TXKeyboardState = struct {
  6125. Fkey_click_percent int32
  6126. Fbell_percent int32
  6127. Fbell_pitch uint32
  6128. Fbell_duration uint32
  6129. Fled_mask uint64
  6130. Fglobal_auto_repeat int32
  6131. Fauto_repeats [32]int8
  6132. }
  6133. type TXTimeCoord = struct {
  6134. Ftime TTime
  6135. Fx int16
  6136. Fy int16
  6137. }
  6138. type TXModifierKeymap = struct {
  6139. Fmax_keypermod int32
  6140. Fmodifiermap uintptr
  6141. }
  6142. type TDisplay = struct {
  6143. Fext_data uintptr
  6144. Ffree_funcs uintptr
  6145. Ffd int32
  6146. Fconn_checker int32
  6147. Fproto_major_version int32
  6148. Fproto_minor_version int32
  6149. Fvendor uintptr
  6150. Fresource_base TXID
  6151. Fresource_mask TXID
  6152. Fresource_id TXID
  6153. Fresource_shift int32
  6154. Fresource_alloc uintptr
  6155. Fbyte_order int32
  6156. Fbitmap_unit int32
  6157. Fbitmap_pad int32
  6158. Fbitmap_bit_order int32
  6159. Fnformats int32
  6160. Fpixmap_format uintptr
  6161. Fvnumber int32
  6162. Frelease int32
  6163. Fhead uintptr
  6164. Ftail uintptr
  6165. Fqlen int32
  6166. Flast_request_read uint64
  6167. Frequest uint64
  6168. Flast_req uintptr
  6169. Fbuffer uintptr
  6170. Fbufptr uintptr
  6171. Fbufmax uintptr
  6172. Fmax_request_size uint32
  6173. Fdb uintptr
  6174. Fsynchandler uintptr
  6175. Fdisplay_name uintptr
  6176. Fdefault_screen int32
  6177. Fnscreens int32
  6178. Fscreens uintptr
  6179. Fmotion_buffer uint64
  6180. Fflags uint64
  6181. Fmin_keycode int32
  6182. Fmax_keycode int32
  6183. Fkeysyms uintptr
  6184. Fmodifiermap uintptr
  6185. Fkeysyms_per_keycode int32
  6186. Fxdefaults uintptr
  6187. Fscratch_buffer uintptr
  6188. Fscratch_length uint64
  6189. Fext_number int32
  6190. Fext_procs uintptr
  6191. Fevent_vec [128]uintptr
  6192. Fwire_vec [128]uintptr
  6193. Flock_meaning TKeySym
  6194. Flock uintptr
  6195. Fasync_handlers uintptr
  6196. Fbigreq_size uint64
  6197. Flock_fns uintptr
  6198. Fidlist_alloc uintptr
  6199. Fkey_bindings uintptr
  6200. Fcursor_font TFont
  6201. Fatoms uintptr
  6202. Fmode_switch uint32
  6203. Fnum_lock uint32
  6204. Fcontext_db uintptr
  6205. Ferror_vec uintptr
  6206. Fcms struct {
  6207. FdefaultCCCs TXPointer
  6208. FclientCmaps TXPointer
  6209. FperVisualIntensityMaps TXPointer
  6210. }
  6211. Fim_filters uintptr
  6212. Fqfree uintptr
  6213. Fnext_event_serial_num uint64
  6214. Fflushes uintptr
  6215. Fim_fd_info uintptr
  6216. Fim_fd_length int32
  6217. Fconn_watchers uintptr
  6218. Fwatcher_count int32
  6219. Ffiledes TXPointer
  6220. Fsavedsynchandler uintptr
  6221. Fresource_max TXID
  6222. Fxcmisc_opcode int32
  6223. Fxkb_info uintptr
  6224. Ftrans_conn uintptr
  6225. Fxcb uintptr
  6226. Fnext_cookie uint32
  6227. Fgeneric_event_vec [128]uintptr
  6228. Fgeneric_event_copy_vec [128]uintptr
  6229. Fcookiejar uintptr
  6230. Ferror_threads uintptr
  6231. Fexit_handler TXIOErrorExitHandler
  6232. Fexit_handler_data uintptr
  6233. Fin_ifevent TCARD32
  6234. Fifevent_thread Txthread_t
  6235. }
  6236. type T_XPrivDisplay = uintptr
  6237. type TXKeyEvent = struct {
  6238. Ftype1 int32
  6239. Fserial uint64
  6240. Fsend_event int32
  6241. Fdisplay uintptr
  6242. Fwindow TWindow
  6243. Froot TWindow
  6244. Fsubwindow TWindow
  6245. Ftime TTime
  6246. Fx int32
  6247. Fy int32
  6248. Fx_root int32
  6249. Fy_root int32
  6250. Fstate uint32
  6251. Fkeycode uint32
  6252. Fsame_screen int32
  6253. }
  6254. type TXKeyPressedEvent = struct {
  6255. Ftype1 int32
  6256. Fserial uint64
  6257. Fsend_event int32
  6258. Fdisplay uintptr
  6259. Fwindow TWindow
  6260. Froot TWindow
  6261. Fsubwindow TWindow
  6262. Ftime TTime
  6263. Fx int32
  6264. Fy int32
  6265. Fx_root int32
  6266. Fy_root int32
  6267. Fstate uint32
  6268. Fkeycode uint32
  6269. Fsame_screen int32
  6270. }
  6271. type TXKeyReleasedEvent = struct {
  6272. Ftype1 int32
  6273. Fserial uint64
  6274. Fsend_event int32
  6275. Fdisplay uintptr
  6276. Fwindow TWindow
  6277. Froot TWindow
  6278. Fsubwindow TWindow
  6279. Ftime TTime
  6280. Fx int32
  6281. Fy int32
  6282. Fx_root int32
  6283. Fy_root int32
  6284. Fstate uint32
  6285. Fkeycode uint32
  6286. Fsame_screen int32
  6287. }
  6288. type TXButtonEvent = struct {
  6289. Ftype1 int32
  6290. Fserial uint64
  6291. Fsend_event int32
  6292. Fdisplay uintptr
  6293. Fwindow TWindow
  6294. Froot TWindow
  6295. Fsubwindow TWindow
  6296. Ftime TTime
  6297. Fx int32
  6298. Fy int32
  6299. Fx_root int32
  6300. Fy_root int32
  6301. Fstate uint32
  6302. Fbutton uint32
  6303. Fsame_screen int32
  6304. }
  6305. type TXButtonPressedEvent = struct {
  6306. Ftype1 int32
  6307. Fserial uint64
  6308. Fsend_event int32
  6309. Fdisplay uintptr
  6310. Fwindow TWindow
  6311. Froot TWindow
  6312. Fsubwindow TWindow
  6313. Ftime TTime
  6314. Fx int32
  6315. Fy int32
  6316. Fx_root int32
  6317. Fy_root int32
  6318. Fstate uint32
  6319. Fbutton uint32
  6320. Fsame_screen int32
  6321. }
  6322. type TXButtonReleasedEvent = struct {
  6323. Ftype1 int32
  6324. Fserial uint64
  6325. Fsend_event int32
  6326. Fdisplay uintptr
  6327. Fwindow TWindow
  6328. Froot TWindow
  6329. Fsubwindow TWindow
  6330. Ftime TTime
  6331. Fx int32
  6332. Fy int32
  6333. Fx_root int32
  6334. Fy_root int32
  6335. Fstate uint32
  6336. Fbutton uint32
  6337. Fsame_screen int32
  6338. }
  6339. type TXMotionEvent = struct {
  6340. Ftype1 int32
  6341. Fserial uint64
  6342. Fsend_event int32
  6343. Fdisplay uintptr
  6344. Fwindow TWindow
  6345. Froot TWindow
  6346. Fsubwindow TWindow
  6347. Ftime TTime
  6348. Fx int32
  6349. Fy int32
  6350. Fx_root int32
  6351. Fy_root int32
  6352. Fstate uint32
  6353. Fis_hint int8
  6354. Fsame_screen int32
  6355. }
  6356. type TXPointerMovedEvent = struct {
  6357. Ftype1 int32
  6358. Fserial uint64
  6359. Fsend_event int32
  6360. Fdisplay uintptr
  6361. Fwindow TWindow
  6362. Froot TWindow
  6363. Fsubwindow TWindow
  6364. Ftime TTime
  6365. Fx int32
  6366. Fy int32
  6367. Fx_root int32
  6368. Fy_root int32
  6369. Fstate uint32
  6370. Fis_hint int8
  6371. Fsame_screen int32
  6372. }
  6373. type TXCrossingEvent = struct {
  6374. Ftype1 int32
  6375. Fserial uint64
  6376. Fsend_event int32
  6377. Fdisplay uintptr
  6378. Fwindow TWindow
  6379. Froot TWindow
  6380. Fsubwindow TWindow
  6381. Ftime TTime
  6382. Fx int32
  6383. Fy int32
  6384. Fx_root int32
  6385. Fy_root int32
  6386. Fmode int32
  6387. Fdetail int32
  6388. Fsame_screen int32
  6389. Ffocus int32
  6390. Fstate uint32
  6391. }
  6392. type TXEnterWindowEvent = struct {
  6393. Ftype1 int32
  6394. Fserial uint64
  6395. Fsend_event int32
  6396. Fdisplay uintptr
  6397. Fwindow TWindow
  6398. Froot TWindow
  6399. Fsubwindow TWindow
  6400. Ftime TTime
  6401. Fx int32
  6402. Fy int32
  6403. Fx_root int32
  6404. Fy_root int32
  6405. Fmode int32
  6406. Fdetail int32
  6407. Fsame_screen int32
  6408. Ffocus int32
  6409. Fstate uint32
  6410. }
  6411. type TXLeaveWindowEvent = struct {
  6412. Ftype1 int32
  6413. Fserial uint64
  6414. Fsend_event int32
  6415. Fdisplay uintptr
  6416. Fwindow TWindow
  6417. Froot TWindow
  6418. Fsubwindow TWindow
  6419. Ftime TTime
  6420. Fx int32
  6421. Fy int32
  6422. Fx_root int32
  6423. Fy_root int32
  6424. Fmode int32
  6425. Fdetail int32
  6426. Fsame_screen int32
  6427. Ffocus int32
  6428. Fstate uint32
  6429. }
  6430. type TXFocusChangeEvent = struct {
  6431. Ftype1 int32
  6432. Fserial uint64
  6433. Fsend_event int32
  6434. Fdisplay uintptr
  6435. Fwindow TWindow
  6436. Fmode int32
  6437. Fdetail int32
  6438. }
  6439. type TXFocusInEvent = struct {
  6440. Ftype1 int32
  6441. Fserial uint64
  6442. Fsend_event int32
  6443. Fdisplay uintptr
  6444. Fwindow TWindow
  6445. Fmode int32
  6446. Fdetail int32
  6447. }
  6448. type TXFocusOutEvent = struct {
  6449. Ftype1 int32
  6450. Fserial uint64
  6451. Fsend_event int32
  6452. Fdisplay uintptr
  6453. Fwindow TWindow
  6454. Fmode int32
  6455. Fdetail int32
  6456. }
  6457. type TXKeymapEvent = struct {
  6458. Ftype1 int32
  6459. Fserial uint64
  6460. Fsend_event int32
  6461. Fdisplay uintptr
  6462. Fwindow TWindow
  6463. Fkey_vector [32]int8
  6464. }
  6465. type TXExposeEvent = struct {
  6466. Ftype1 int32
  6467. Fserial uint64
  6468. Fsend_event int32
  6469. Fdisplay uintptr
  6470. Fwindow TWindow
  6471. Fx int32
  6472. Fy int32
  6473. Fwidth int32
  6474. Fheight int32
  6475. Fcount int32
  6476. }
  6477. type TXGraphicsExposeEvent = struct {
  6478. Ftype1 int32
  6479. Fserial uint64
  6480. Fsend_event int32
  6481. Fdisplay uintptr
  6482. Fdrawable TDrawable
  6483. Fx int32
  6484. Fy int32
  6485. Fwidth int32
  6486. Fheight int32
  6487. Fcount int32
  6488. Fmajor_code int32
  6489. Fminor_code int32
  6490. }
  6491. type TXNoExposeEvent = struct {
  6492. Ftype1 int32
  6493. Fserial uint64
  6494. Fsend_event int32
  6495. Fdisplay uintptr
  6496. Fdrawable TDrawable
  6497. Fmajor_code int32
  6498. Fminor_code int32
  6499. }
  6500. type TXVisibilityEvent = struct {
  6501. Ftype1 int32
  6502. Fserial uint64
  6503. Fsend_event int32
  6504. Fdisplay uintptr
  6505. Fwindow TWindow
  6506. Fstate int32
  6507. }
  6508. type TXCreateWindowEvent = struct {
  6509. Ftype1 int32
  6510. Fserial uint64
  6511. Fsend_event int32
  6512. Fdisplay uintptr
  6513. Fparent TWindow
  6514. Fwindow TWindow
  6515. Fx int32
  6516. Fy int32
  6517. Fwidth int32
  6518. Fheight int32
  6519. Fborder_width int32
  6520. Foverride_redirect int32
  6521. }
  6522. type TXDestroyWindowEvent = struct {
  6523. Ftype1 int32
  6524. Fserial uint64
  6525. Fsend_event int32
  6526. Fdisplay uintptr
  6527. Fevent TWindow
  6528. Fwindow TWindow
  6529. }
  6530. type TXUnmapEvent = struct {
  6531. Ftype1 int32
  6532. Fserial uint64
  6533. Fsend_event int32
  6534. Fdisplay uintptr
  6535. Fevent TWindow
  6536. Fwindow TWindow
  6537. Ffrom_configure int32
  6538. }
  6539. type TXMapEvent = struct {
  6540. Ftype1 int32
  6541. Fserial uint64
  6542. Fsend_event int32
  6543. Fdisplay uintptr
  6544. Fevent TWindow
  6545. Fwindow TWindow
  6546. Foverride_redirect int32
  6547. }
  6548. type TXMapRequestEvent = struct {
  6549. Ftype1 int32
  6550. Fserial uint64
  6551. Fsend_event int32
  6552. Fdisplay uintptr
  6553. Fparent TWindow
  6554. Fwindow TWindow
  6555. }
  6556. type TXReparentEvent = struct {
  6557. Ftype1 int32
  6558. Fserial uint64
  6559. Fsend_event int32
  6560. Fdisplay uintptr
  6561. Fevent TWindow
  6562. Fwindow TWindow
  6563. Fparent TWindow
  6564. Fx int32
  6565. Fy int32
  6566. Foverride_redirect int32
  6567. }
  6568. type TXConfigureEvent = struct {
  6569. Ftype1 int32
  6570. Fserial uint64
  6571. Fsend_event int32
  6572. Fdisplay uintptr
  6573. Fevent TWindow
  6574. Fwindow TWindow
  6575. Fx int32
  6576. Fy int32
  6577. Fwidth int32
  6578. Fheight int32
  6579. Fborder_width int32
  6580. Fabove TWindow
  6581. Foverride_redirect int32
  6582. }
  6583. type TXGravityEvent = struct {
  6584. Ftype1 int32
  6585. Fserial uint64
  6586. Fsend_event int32
  6587. Fdisplay uintptr
  6588. Fevent TWindow
  6589. Fwindow TWindow
  6590. Fx int32
  6591. Fy int32
  6592. }
  6593. type TXResizeRequestEvent = struct {
  6594. Ftype1 int32
  6595. Fserial uint64
  6596. Fsend_event int32
  6597. Fdisplay uintptr
  6598. Fwindow TWindow
  6599. Fwidth int32
  6600. Fheight int32
  6601. }
  6602. type TXConfigureRequestEvent = struct {
  6603. Ftype1 int32
  6604. Fserial uint64
  6605. Fsend_event int32
  6606. Fdisplay uintptr
  6607. Fparent TWindow
  6608. Fwindow TWindow
  6609. Fx int32
  6610. Fy int32
  6611. Fwidth int32
  6612. Fheight int32
  6613. Fborder_width int32
  6614. Fabove TWindow
  6615. Fdetail int32
  6616. Fvalue_mask uint64
  6617. }
  6618. type TXCirculateEvent = struct {
  6619. Ftype1 int32
  6620. Fserial uint64
  6621. Fsend_event int32
  6622. Fdisplay uintptr
  6623. Fevent TWindow
  6624. Fwindow TWindow
  6625. Fplace int32
  6626. }
  6627. type TXCirculateRequestEvent = struct {
  6628. Ftype1 int32
  6629. Fserial uint64
  6630. Fsend_event int32
  6631. Fdisplay uintptr
  6632. Fparent TWindow
  6633. Fwindow TWindow
  6634. Fplace int32
  6635. }
  6636. type TXPropertyEvent = struct {
  6637. Ftype1 int32
  6638. Fserial uint64
  6639. Fsend_event int32
  6640. Fdisplay uintptr
  6641. Fwindow TWindow
  6642. Fatom TAtom
  6643. Ftime TTime
  6644. Fstate int32
  6645. }
  6646. type TXSelectionClearEvent = struct {
  6647. Ftype1 int32
  6648. Fserial uint64
  6649. Fsend_event int32
  6650. Fdisplay uintptr
  6651. Fwindow TWindow
  6652. Fselection TAtom
  6653. Ftime TTime
  6654. }
  6655. type TXSelectionRequestEvent = struct {
  6656. Ftype1 int32
  6657. Fserial uint64
  6658. Fsend_event int32
  6659. Fdisplay uintptr
  6660. Fowner TWindow
  6661. Frequestor TWindow
  6662. Fselection TAtom
  6663. Ftarget TAtom
  6664. Fproperty TAtom
  6665. Ftime TTime
  6666. }
  6667. type TXSelectionEvent = struct {
  6668. Ftype1 int32
  6669. Fserial uint64
  6670. Fsend_event int32
  6671. Fdisplay uintptr
  6672. Frequestor TWindow
  6673. Fselection TAtom
  6674. Ftarget TAtom
  6675. Fproperty TAtom
  6676. Ftime TTime
  6677. }
  6678. type TXColormapEvent = struct {
  6679. Ftype1 int32
  6680. Fserial uint64
  6681. Fsend_event int32
  6682. Fdisplay uintptr
  6683. Fwindow TWindow
  6684. Fcolormap TColormap
  6685. Fnew1 int32
  6686. Fstate int32
  6687. }
  6688. type TXClientMessageEvent = struct {
  6689. Ftype1 int32
  6690. Fserial uint64
  6691. Fsend_event int32
  6692. Fdisplay uintptr
  6693. Fwindow TWindow
  6694. Fmessage_type TAtom
  6695. Fformat int32
  6696. Fdata struct {
  6697. Fs [0][10]int16
  6698. Fl [0][5]int64
  6699. Fb [20]int8
  6700. F__ccgo_pad3 [20]byte
  6701. }
  6702. }
  6703. type TXMappingEvent = struct {
  6704. Ftype1 int32
  6705. Fserial uint64
  6706. Fsend_event int32
  6707. Fdisplay uintptr
  6708. Fwindow TWindow
  6709. Frequest int32
  6710. Ffirst_keycode int32
  6711. Fcount int32
  6712. }
  6713. type TXErrorEvent = struct {
  6714. Ftype1 int32
  6715. Fdisplay uintptr
  6716. Fresourceid TXID
  6717. Fserial uint64
  6718. Ferror_code uint8
  6719. Frequest_code uint8
  6720. Fminor_code uint8
  6721. }
  6722. type TXAnyEvent = struct {
  6723. Ftype1 int32
  6724. Fserial uint64
  6725. Fsend_event int32
  6726. Fdisplay uintptr
  6727. Fwindow TWindow
  6728. }
  6729. type TXGenericEvent = struct {
  6730. Ftype1 int32
  6731. Fserial uint64
  6732. Fsend_event int32
  6733. Fdisplay uintptr
  6734. Fextension int32
  6735. Fevtype int32
  6736. }
  6737. type TXGenericEventCookie = struct {
  6738. Ftype1 int32
  6739. Fserial uint64
  6740. Fsend_event int32
  6741. Fdisplay uintptr
  6742. Fextension int32
  6743. Fevtype int32
  6744. Fcookie uint32
  6745. Fdata uintptr
  6746. }
  6747. type TXEvent = struct {
  6748. Fxany [0]TXAnyEvent
  6749. Fxkey [0]TXKeyEvent
  6750. Fxbutton [0]TXButtonEvent
  6751. Fxmotion [0]TXMotionEvent
  6752. Fxcrossing [0]TXCrossingEvent
  6753. Fxfocus [0]TXFocusChangeEvent
  6754. Fxexpose [0]TXExposeEvent
  6755. Fxgraphicsexpose [0]TXGraphicsExposeEvent
  6756. Fxnoexpose [0]TXNoExposeEvent
  6757. Fxvisibility [0]TXVisibilityEvent
  6758. Fxcreatewindow [0]TXCreateWindowEvent
  6759. Fxdestroywindow [0]TXDestroyWindowEvent
  6760. Fxunmap [0]TXUnmapEvent
  6761. Fxmap [0]TXMapEvent
  6762. Fxmaprequest [0]TXMapRequestEvent
  6763. Fxreparent [0]TXReparentEvent
  6764. Fxconfigure [0]TXConfigureEvent
  6765. Fxgravity [0]TXGravityEvent
  6766. Fxresizerequest [0]TXResizeRequestEvent
  6767. Fxconfigurerequest [0]TXConfigureRequestEvent
  6768. Fxcirculate [0]TXCirculateEvent
  6769. Fxcirculaterequest [0]TXCirculateRequestEvent
  6770. Fxproperty [0]TXPropertyEvent
  6771. Fxselectionclear [0]TXSelectionClearEvent
  6772. Fxselectionrequest [0]TXSelectionRequestEvent
  6773. Fxselection [0]TXSelectionEvent
  6774. Fxcolormap [0]TXColormapEvent
  6775. Fxclient [0]TXClientMessageEvent
  6776. Fxmapping [0]TXMappingEvent
  6777. Fxerror [0]TXErrorEvent
  6778. Fxkeymap [0]TXKeymapEvent
  6779. Fxgeneric [0]TXGenericEvent
  6780. Fxcookie [0]TXGenericEventCookie
  6781. Fpad [0][24]int64
  6782. Ftype1 int32
  6783. F__ccgo_pad35 [188]byte
  6784. }
  6785. type T_XEvent = TXEvent
  6786. type TXCharStruct = struct {
  6787. Flbearing int16
  6788. Frbearing int16
  6789. Fwidth int16
  6790. Fascent int16
  6791. Fdescent int16
  6792. Fattributes uint16
  6793. }
  6794. type TXFontProp = struct {
  6795. Fname TAtom
  6796. Fcard32 uint64
  6797. }
  6798. type TXFontStruct = struct {
  6799. Fext_data uintptr
  6800. Ffid TFont
  6801. Fdirection uint32
  6802. Fmin_char_or_byte2 uint32
  6803. Fmax_char_or_byte2 uint32
  6804. Fmin_byte1 uint32
  6805. Fmax_byte1 uint32
  6806. Fall_chars_exist int32
  6807. Fdefault_char uint32
  6808. Fn_properties int32
  6809. Fproperties uintptr
  6810. Fmin_bounds TXCharStruct
  6811. Fmax_bounds TXCharStruct
  6812. Fper_char uintptr
  6813. Fascent int32
  6814. Fdescent int32
  6815. }
  6816. type TXTextItem = struct {
  6817. Fchars uintptr
  6818. Fnchars int32
  6819. Fdelta int32
  6820. Ffont TFont
  6821. }
  6822. type TXChar2b = struct {
  6823. Fbyte1 uint8
  6824. Fbyte2 uint8
  6825. }
  6826. type TXTextItem16 = struct {
  6827. Fchars uintptr
  6828. Fnchars int32
  6829. Fdelta int32
  6830. Ffont TFont
  6831. }
  6832. type TXEDataObject = struct {
  6833. Fgc [0]TGC
  6834. Fvisual [0]uintptr
  6835. Fscreen [0]uintptr
  6836. Fpixmap_format [0]uintptr
  6837. Ffont [0]uintptr
  6838. Fdisplay uintptr
  6839. }
  6840. type TXFontSetExtents = struct {
  6841. Fmax_ink_extent TXRectangle
  6842. Fmax_logical_extent TXRectangle
  6843. }
  6844. type TXOM = uintptr
  6845. type TXOC = uintptr
  6846. type TXFontSet = uintptr
  6847. type TXmbTextItem = struct {
  6848. Fchars uintptr
  6849. Fnchars int32
  6850. Fdelta int32
  6851. Ffont_set TXFontSet
  6852. }
  6853. type TXwcTextItem = struct {
  6854. Fchars uintptr
  6855. Fnchars int32
  6856. Fdelta int32
  6857. Ffont_set TXFontSet
  6858. }
  6859. type TXOMCharSetList = struct {
  6860. Fcharset_count int32
  6861. Fcharset_list uintptr
  6862. }
  6863. type TXOrientation = int32
  6864. const _XOMOrientation_LTR_TTB = 0
  6865. const _XOMOrientation_RTL_TTB = 1
  6866. const _XOMOrientation_TTB_LTR = 2
  6867. const _XOMOrientation_TTB_RTL = 3
  6868. const _XOMOrientation_Context = 4
  6869. type TXOMOrientation = struct {
  6870. Fnum_orientation int32
  6871. Forientation uintptr
  6872. }
  6873. type TXOMFontInfo = struct {
  6874. Fnum_font int32
  6875. Ffont_struct_list uintptr
  6876. Ffont_name_list uintptr
  6877. }
  6878. type TXIM = uintptr
  6879. type TXIC = uintptr
  6880. type TXIMProc = uintptr
  6881. type TXICProc = uintptr
  6882. type TXIDProc = uintptr
  6883. type TXIMStyle = uint64
  6884. type TXIMStyles = struct {
  6885. Fcount_styles uint16
  6886. Fsupported_styles uintptr
  6887. }
  6888. type TXVaNestedList = uintptr
  6889. type TXIMCallback = struct {
  6890. Fclient_data TXPointer
  6891. Fcallback TXIMProc
  6892. }
  6893. type TXICCallback = struct {
  6894. Fclient_data TXPointer
  6895. Fcallback TXICProc
  6896. }
  6897. type TXIMFeedback = uint64
  6898. type TXIMText = struct {
  6899. Flength uint16
  6900. Ffeedback uintptr
  6901. Fencoding_is_wchar int32
  6902. Fstring1 struct {
  6903. Fwide_char [0]uintptr
  6904. Fmulti_byte uintptr
  6905. }
  6906. }
  6907. type T_XIMText = TXIMText
  6908. type TXIMPreeditState = uint64
  6909. type TXIMPreeditStateNotifyCallbackStruct = struct {
  6910. Fstate TXIMPreeditState
  6911. }
  6912. type T_XIMPreeditStateNotifyCallbackStruct = TXIMPreeditStateNotifyCallbackStruct
  6913. type TXIMResetState = uint64
  6914. type TXIMStringConversionFeedback = uint64
  6915. type TXIMStringConversionText = struct {
  6916. Flength uint16
  6917. Ffeedback uintptr
  6918. Fencoding_is_wchar int32
  6919. Fstring1 struct {
  6920. Fwcs [0]uintptr
  6921. Fmbs uintptr
  6922. }
  6923. }
  6924. type T_XIMStringConversionText = TXIMStringConversionText
  6925. type TXIMStringConversionPosition = uint16
  6926. type TXIMStringConversionType = uint16
  6927. type TXIMStringConversionOperation = uint16
  6928. type TXIMCaretDirection = int32
  6929. const _XIMForwardChar = 0
  6930. const _XIMBackwardChar = 1
  6931. const _XIMForwardWord = 2
  6932. const _XIMBackwardWord = 3
  6933. const _XIMCaretUp = 4
  6934. const _XIMCaretDown = 5
  6935. const _XIMNextLine = 6
  6936. const _XIMPreviousLine = 7
  6937. const _XIMLineStart = 8
  6938. const _XIMLineEnd = 9
  6939. const _XIMAbsolutePosition = 10
  6940. const _XIMDontChange = 11
  6941. type TXIMStringConversionCallbackStruct = struct {
  6942. Fposition TXIMStringConversionPosition
  6943. Fdirection TXIMCaretDirection
  6944. Foperation TXIMStringConversionOperation
  6945. Ffactor uint16
  6946. Ftext uintptr
  6947. }
  6948. type T_XIMStringConversionCallbackStruct = TXIMStringConversionCallbackStruct
  6949. type TXIMPreeditDrawCallbackStruct = struct {
  6950. Fcaret int32
  6951. Fchg_first int32
  6952. Fchg_length int32
  6953. Ftext uintptr
  6954. }
  6955. type T_XIMPreeditDrawCallbackStruct = TXIMPreeditDrawCallbackStruct
  6956. type TXIMCaretStyle = int32
  6957. const _XIMIsInvisible = 0
  6958. const _XIMIsPrimary = 1
  6959. const _XIMIsSecondary = 2
  6960. type TXIMPreeditCaretCallbackStruct = struct {
  6961. Fposition int32
  6962. Fdirection TXIMCaretDirection
  6963. Fstyle TXIMCaretStyle
  6964. }
  6965. type T_XIMPreeditCaretCallbackStruct = TXIMPreeditCaretCallbackStruct
  6966. type TXIMStatusDataType = int32
  6967. const _XIMTextType = 0
  6968. const _XIMBitmapType = 1
  6969. type TXIMStatusDrawCallbackStruct = struct {
  6970. Ftype1 TXIMStatusDataType
  6971. Fdata struct {
  6972. Fbitmap [0]TPixmap
  6973. Ftext uintptr
  6974. }
  6975. }
  6976. type T_XIMStatusDrawCallbackStruct = TXIMStatusDrawCallbackStruct
  6977. type TXIMHotKeyTrigger = struct {
  6978. Fkeysym TKeySym
  6979. Fmodifier int32
  6980. Fmodifier_mask int32
  6981. }
  6982. type T_XIMHotKeyTrigger = TXIMHotKeyTrigger
  6983. type TXIMHotKeyTriggers = struct {
  6984. Fnum_hot_key int32
  6985. Fkey uintptr
  6986. }
  6987. type T_XIMHotKeyTriggers = TXIMHotKeyTriggers
  6988. type TXIMHotKeyState = uint64
  6989. type TXIMValuesList = struct {
  6990. Fcount_values uint16
  6991. Fsupported_values uintptr
  6992. }
  6993. type TXErrorHandler = uintptr
  6994. type TXIOErrorHandler = uintptr
  6995. type TXIOErrorExitHandler = uintptr
  6996. type TXConnectionWatchProc = uintptr
  6997. type TXSizeHints = struct {
  6998. Fflags int64
  6999. Fx int32
  7000. Fy int32
  7001. Fwidth int32
  7002. Fheight int32
  7003. Fmin_width int32
  7004. Fmin_height int32
  7005. Fmax_width int32
  7006. Fmax_height int32
  7007. Fwidth_inc int32
  7008. Fheight_inc int32
  7009. Fmin_aspect struct {
  7010. Fx int32
  7011. Fy int32
  7012. }
  7013. Fmax_aspect struct {
  7014. Fx int32
  7015. Fy int32
  7016. }
  7017. Fbase_width int32
  7018. Fbase_height int32
  7019. Fwin_gravity int32
  7020. }
  7021. type TXWMHints = struct {
  7022. Fflags int64
  7023. Finput int32
  7024. Finitial_state int32
  7025. Ficon_pixmap TPixmap
  7026. Ficon_window TWindow
  7027. Ficon_x int32
  7028. Ficon_y int32
  7029. Ficon_mask TPixmap
  7030. Fwindow_group TXID
  7031. }
  7032. type TXTextProperty = struct {
  7033. Fvalue uintptr
  7034. Fencoding TAtom
  7035. Fformat int32
  7036. Fnitems uint64
  7037. }
  7038. type TXICCEncodingStyle = int32
  7039. const _XStringStyle = 0
  7040. const _XCompoundTextStyle = 1
  7041. const _XTextStyle = 2
  7042. const _XStdICCTextStyle = 3
  7043. const _XUTF8StringStyle = 4
  7044. type TXIconSize = struct {
  7045. Fmin_width int32
  7046. Fmin_height int32
  7047. Fmax_width int32
  7048. Fmax_height int32
  7049. Fwidth_inc int32
  7050. Fheight_inc int32
  7051. }
  7052. type TXClassHint = struct {
  7053. Fres_name uintptr
  7054. Fres_class uintptr
  7055. }
  7056. type TXComposeStatus = struct {
  7057. Fcompose_ptr TXPointer
  7058. Fchars_matched int32
  7059. }
  7060. type T_XComposeStatus = TXComposeStatus
  7061. type TRegion = uintptr
  7062. type TXVisualInfo = struct {
  7063. Fvisual uintptr
  7064. Fvisualid TVisualID
  7065. Fscreen int32
  7066. Fdepth int32
  7067. Fclass int32
  7068. Fred_mask uint64
  7069. Fgreen_mask uint64
  7070. Fblue_mask uint64
  7071. Fcolormap_size int32
  7072. Fbits_per_rgb int32
  7073. }
  7074. type TXStandardColormap = struct {
  7075. Fcolormap TColormap
  7076. Fred_max uint64
  7077. Fred_mult uint64
  7078. Fgreen_max uint64
  7079. Fgreen_mult uint64
  7080. Fblue_max uint64
  7081. Fblue_mult uint64
  7082. Fbase_pixel uint64
  7083. Fvisualid TVisualID
  7084. Fkillid TXID
  7085. }
  7086. type TXContext = int32
  7087. type TINT64 = int64
  7088. type TINT32 = int32
  7089. type TINT16 = int16
  7090. type TINT8 = int8
  7091. type TCARD64 = uint64
  7092. type TCARD32 = uint32
  7093. type TCARD16 = uint16
  7094. type TCARD8 = uint8
  7095. type TBITS32 = uint32
  7096. type TBITS16 = uint16
  7097. type TBYTE = uint8
  7098. type TBOOL = uint8
  7099. type TxSegment = struct {
  7100. Fx1 TINT16
  7101. Fy1 TINT16
  7102. Fx2 TINT16
  7103. Fy2 TINT16
  7104. }
  7105. type T_xSegment = TxSegment
  7106. type TxPoint = struct {
  7107. Fx TINT16
  7108. Fy TINT16
  7109. }
  7110. type T_xPoint = TxPoint
  7111. type TxRectangle = struct {
  7112. Fx TINT16
  7113. Fy TINT16
  7114. Fwidth TCARD16
  7115. Fheight TCARD16
  7116. }
  7117. type T_xRectangle = TxRectangle
  7118. type TxArc = struct {
  7119. Fx TINT16
  7120. Fy TINT16
  7121. Fwidth TCARD16
  7122. Fheight TCARD16
  7123. Fangle1 TINT16
  7124. Fangle2 TINT16
  7125. }
  7126. type T_xArc = TxArc
  7127. type TKeyButMask = uint16
  7128. type TxConnClientPrefix = struct {
  7129. FbyteOrder TCARD8
  7130. Fpad TBYTE
  7131. FmajorVersion TCARD16
  7132. FminorVersion TCARD16
  7133. FnbytesAuthProto TCARD16
  7134. FnbytesAuthString TCARD16
  7135. Fpad2 TCARD16
  7136. }
  7137. type TxConnSetupPrefix = struct {
  7138. Fsuccess TCARD8
  7139. FlengthReason TBYTE
  7140. FmajorVersion TCARD16
  7141. FminorVersion TCARD16
  7142. Flength TCARD16
  7143. }
  7144. type TxConnSetup = struct {
  7145. Frelease TCARD32
  7146. FridBase TCARD32
  7147. FridMask TCARD32
  7148. FmotionBufferSize TCARD32
  7149. FnbytesVendor TCARD16
  7150. FmaxRequestSize TCARD16
  7151. FnumRoots TCARD8
  7152. FnumFormats TCARD8
  7153. FimageByteOrder TCARD8
  7154. FbitmapBitOrder TCARD8
  7155. FbitmapScanlineUnit TCARD8
  7156. FbitmapScanlinePad TCARD8
  7157. FminKeyCode TCARD8
  7158. FmaxKeyCode TCARD8
  7159. Fpad2 TCARD32
  7160. }
  7161. type TxPixmapFormat = struct {
  7162. Fdepth TCARD8
  7163. FbitsPerPixel TCARD8
  7164. FscanLinePad TCARD8
  7165. Fpad1 TCARD8
  7166. Fpad2 TCARD32
  7167. }
  7168. type TxDepth = struct {
  7169. Fdepth TCARD8
  7170. Fpad1 TCARD8
  7171. FnVisuals TCARD16
  7172. Fpad2 TCARD32
  7173. }
  7174. type TxVisualType = struct {
  7175. FvisualID TCARD32
  7176. Fclass TCARD8
  7177. FbitsPerRGB TCARD8
  7178. FcolormapEntries TCARD16
  7179. FredMask TCARD32
  7180. FgreenMask TCARD32
  7181. FblueMask TCARD32
  7182. Fpad TCARD32
  7183. }
  7184. type TxWindowRoot = struct {
  7185. FwindowId TCARD32
  7186. FdefaultColormap TCARD32
  7187. FwhitePixel TCARD32
  7188. FblackPixel TCARD32
  7189. FcurrentInputMask TCARD32
  7190. FpixWidth TCARD16
  7191. FpixHeight TCARD16
  7192. FmmWidth TCARD16
  7193. FmmHeight TCARD16
  7194. FminInstalledMaps TCARD16
  7195. FmaxInstalledMaps TCARD16
  7196. FrootVisualID TCARD32
  7197. FbackingStore TCARD8
  7198. FsaveUnders TBOOL
  7199. FrootDepth TCARD8
  7200. FnDepths TCARD8
  7201. }
  7202. type TxTimecoord = struct {
  7203. Ftime TCARD32
  7204. Fx TINT16
  7205. Fy TINT16
  7206. }
  7207. type TxHostEntry = struct {
  7208. Ffamily TCARD8
  7209. Fpad TBYTE
  7210. Flength TCARD16
  7211. }
  7212. type TxCharInfo = struct {
  7213. FleftSideBearing TINT16
  7214. FrightSideBearing TINT16
  7215. FcharacterWidth TINT16
  7216. Fascent TINT16
  7217. Fdescent TINT16
  7218. Fattributes TCARD16
  7219. }
  7220. type TxFontProp = struct {
  7221. Fname TCARD32
  7222. Fvalue TCARD32
  7223. }
  7224. type TxTextElt = struct {
  7225. Flen1 TCARD8
  7226. Fdelta TINT8
  7227. }
  7228. type TxColorItem = struct {
  7229. Fpixel TCARD32
  7230. Fred TCARD16
  7231. Fgreen TCARD16
  7232. Fblue TCARD16
  7233. Fflags TCARD8
  7234. Fpad TCARD8
  7235. }
  7236. type Txrgb = struct {
  7237. Fred TCARD16
  7238. Fgreen TCARD16
  7239. Fblue TCARD16
  7240. Fpad TCARD16
  7241. }
  7242. type TKEYCODE = uint8
  7243. type TxGenericReply = struct {
  7244. Ftype1 TBYTE
  7245. Fdata1 TBYTE
  7246. FsequenceNumber TCARD16
  7247. Flength TCARD32
  7248. Fdata00 TCARD32
  7249. Fdata01 TCARD32
  7250. Fdata02 TCARD32
  7251. Fdata03 TCARD32
  7252. Fdata04 TCARD32
  7253. Fdata05 TCARD32
  7254. }
  7255. type TxGetWindowAttributesReply = struct {
  7256. Ftype1 TBYTE
  7257. FbackingStore TCARD8
  7258. FsequenceNumber TCARD16
  7259. Flength TCARD32
  7260. FvisualID TCARD32
  7261. Fclass TCARD16
  7262. FbitGravity TCARD8
  7263. FwinGravity TCARD8
  7264. FbackingBitPlanes TCARD32
  7265. FbackingPixel TCARD32
  7266. FsaveUnder TBOOL
  7267. FmapInstalled TBOOL
  7268. FmapState TCARD8
  7269. Foverride TBOOL
  7270. Fcolormap TCARD32
  7271. FallEventMasks TCARD32
  7272. FyourEventMask TCARD32
  7273. FdoNotPropagateMask TCARD16
  7274. Fpad TCARD16
  7275. }
  7276. type TxGetGeometryReply = struct {
  7277. Ftype1 TBYTE
  7278. Fdepth TCARD8
  7279. FsequenceNumber TCARD16
  7280. Flength TCARD32
  7281. Froot TCARD32
  7282. Fx TINT16
  7283. Fy TINT16
  7284. Fwidth TCARD16
  7285. Fheight TCARD16
  7286. FborderWidth TCARD16
  7287. Fpad1 TCARD16
  7288. Fpad2 TCARD32
  7289. Fpad3 TCARD32
  7290. }
  7291. type TxQueryTreeReply = struct {
  7292. Ftype1 TBYTE
  7293. Fpad1 TBYTE
  7294. FsequenceNumber TCARD16
  7295. Flength TCARD32
  7296. Froot TCARD32
  7297. Fparent TCARD32
  7298. FnChildren TCARD16
  7299. Fpad2 TCARD16
  7300. Fpad3 TCARD32
  7301. Fpad4 TCARD32
  7302. Fpad5 TCARD32
  7303. }
  7304. type TxInternAtomReply = struct {
  7305. Ftype1 TBYTE
  7306. Fpad1 TBYTE
  7307. FsequenceNumber TCARD16
  7308. Flength TCARD32
  7309. Fatom TCARD32
  7310. Fpad2 TCARD32
  7311. Fpad3 TCARD32
  7312. Fpad4 TCARD32
  7313. Fpad5 TCARD32
  7314. Fpad6 TCARD32
  7315. }
  7316. type TxGetAtomNameReply = struct {
  7317. Ftype1 TBYTE
  7318. Fpad1 TBYTE
  7319. FsequenceNumber TCARD16
  7320. Flength TCARD32
  7321. FnameLength TCARD16
  7322. Fpad2 TCARD16
  7323. Fpad3 TCARD32
  7324. Fpad4 TCARD32
  7325. Fpad5 TCARD32
  7326. Fpad6 TCARD32
  7327. Fpad7 TCARD32
  7328. }
  7329. type TxGetPropertyReply = struct {
  7330. Ftype1 TBYTE
  7331. Fformat TCARD8
  7332. FsequenceNumber TCARD16
  7333. Flength TCARD32
  7334. FpropertyType TCARD32
  7335. FbytesAfter TCARD32
  7336. FnItems TCARD32
  7337. Fpad1 TCARD32
  7338. Fpad2 TCARD32
  7339. Fpad3 TCARD32
  7340. }
  7341. type TxListPropertiesReply = struct {
  7342. Ftype1 TBYTE
  7343. Fpad1 TBYTE
  7344. FsequenceNumber TCARD16
  7345. Flength TCARD32
  7346. FnProperties TCARD16
  7347. Fpad2 TCARD16
  7348. Fpad3 TCARD32
  7349. Fpad4 TCARD32
  7350. Fpad5 TCARD32
  7351. Fpad6 TCARD32
  7352. Fpad7 TCARD32
  7353. }
  7354. type TxGetSelectionOwnerReply = struct {
  7355. Ftype1 TBYTE
  7356. Fpad1 TBYTE
  7357. FsequenceNumber TCARD16
  7358. Flength TCARD32
  7359. Fowner TCARD32
  7360. Fpad2 TCARD32
  7361. Fpad3 TCARD32
  7362. Fpad4 TCARD32
  7363. Fpad5 TCARD32
  7364. Fpad6 TCARD32
  7365. }
  7366. type TxGrabPointerReply = struct {
  7367. Ftype1 TBYTE
  7368. Fstatus TBYTE
  7369. FsequenceNumber TCARD16
  7370. Flength TCARD32
  7371. Fpad1 TCARD32
  7372. Fpad2 TCARD32
  7373. Fpad3 TCARD32
  7374. Fpad4 TCARD32
  7375. Fpad5 TCARD32
  7376. Fpad6 TCARD32
  7377. }
  7378. type TxGrabKeyboardReply = struct {
  7379. Ftype1 TBYTE
  7380. Fstatus TBYTE
  7381. FsequenceNumber TCARD16
  7382. Flength TCARD32
  7383. Fpad1 TCARD32
  7384. Fpad2 TCARD32
  7385. Fpad3 TCARD32
  7386. Fpad4 TCARD32
  7387. Fpad5 TCARD32
  7388. Fpad6 TCARD32
  7389. }
  7390. type TxQueryPointerReply = struct {
  7391. Ftype1 TBYTE
  7392. FsameScreen TBOOL
  7393. FsequenceNumber TCARD16
  7394. Flength TCARD32
  7395. Froot TCARD32
  7396. Fchild TCARD32
  7397. FrootX TINT16
  7398. FrootY TINT16
  7399. FwinX TINT16
  7400. FwinY TINT16
  7401. Fmask TCARD16
  7402. Fpad1 TCARD16
  7403. Fpad TCARD32
  7404. }
  7405. type TxGetMotionEventsReply = struct {
  7406. Ftype1 TBYTE
  7407. Fpad1 TBYTE
  7408. FsequenceNumber TCARD16
  7409. Flength TCARD32
  7410. FnEvents TCARD32
  7411. Fpad2 TCARD32
  7412. Fpad3 TCARD32
  7413. Fpad4 TCARD32
  7414. Fpad5 TCARD32
  7415. Fpad6 TCARD32
  7416. }
  7417. type TxTranslateCoordsReply = struct {
  7418. Ftype1 TBYTE
  7419. FsameScreen TBOOL
  7420. FsequenceNumber TCARD16
  7421. Flength TCARD32
  7422. Fchild TCARD32
  7423. FdstX TINT16
  7424. FdstY TINT16
  7425. Fpad2 TCARD32
  7426. Fpad3 TCARD32
  7427. Fpad4 TCARD32
  7428. Fpad5 TCARD32
  7429. }
  7430. type TxGetInputFocusReply = struct {
  7431. Ftype1 TBYTE
  7432. FrevertTo TCARD8
  7433. FsequenceNumber TCARD16
  7434. Flength TCARD32
  7435. Ffocus TCARD32
  7436. Fpad1 TCARD32
  7437. Fpad2 TCARD32
  7438. Fpad3 TCARD32
  7439. Fpad4 TCARD32
  7440. Fpad5 TCARD32
  7441. }
  7442. type TxQueryKeymapReply = struct {
  7443. Ftype1 TBYTE
  7444. Fpad1 TBYTE
  7445. FsequenceNumber TCARD16
  7446. Flength TCARD32
  7447. Fmap1 [32]TBYTE
  7448. }
  7449. type TxQueryFontReply = struct {
  7450. Ftype1 TBYTE
  7451. Fpad1 TBYTE
  7452. FsequenceNumber TCARD16
  7453. Flength TCARD32
  7454. FminBounds TxCharInfo
  7455. Fwalign1 TCARD32
  7456. FmaxBounds TxCharInfo
  7457. Fwalign2 TCARD32
  7458. FminCharOrByte2 TCARD16
  7459. FmaxCharOrByte2 TCARD16
  7460. FdefaultChar TCARD16
  7461. FnFontProps TCARD16
  7462. FdrawDirection TCARD8
  7463. FminByte1 TCARD8
  7464. FmaxByte1 TCARD8
  7465. FallCharsExist TBOOL
  7466. FfontAscent TINT16
  7467. FfontDescent TINT16
  7468. FnCharInfos TCARD32
  7469. }
  7470. type T_xQueryFontReply = TxQueryFontReply
  7471. type TxQueryTextExtentsReply = struct {
  7472. Ftype1 TBYTE
  7473. FdrawDirection TCARD8
  7474. FsequenceNumber TCARD16
  7475. Flength TCARD32
  7476. FfontAscent TINT16
  7477. FfontDescent TINT16
  7478. FoverallAscent TINT16
  7479. FoverallDescent TINT16
  7480. FoverallWidth TINT32
  7481. FoverallLeft TINT32
  7482. FoverallRight TINT32
  7483. Fpad TCARD32
  7484. }
  7485. type TxListFontsReply = struct {
  7486. Ftype1 TBYTE
  7487. Fpad1 TBYTE
  7488. FsequenceNumber TCARD16
  7489. Flength TCARD32
  7490. FnFonts TCARD16
  7491. Fpad2 TCARD16
  7492. Fpad3 TCARD32
  7493. Fpad4 TCARD32
  7494. Fpad5 TCARD32
  7495. Fpad6 TCARD32
  7496. Fpad7 TCARD32
  7497. }
  7498. type TxListFontsWithInfoReply = struct {
  7499. Ftype1 TBYTE
  7500. FnameLength TCARD8
  7501. FsequenceNumber TCARD16
  7502. Flength TCARD32
  7503. FminBounds TxCharInfo
  7504. Fwalign1 TCARD32
  7505. FmaxBounds TxCharInfo
  7506. Fwalign2 TCARD32
  7507. FminCharOrByte2 TCARD16
  7508. FmaxCharOrByte2 TCARD16
  7509. FdefaultChar TCARD16
  7510. FnFontProps TCARD16
  7511. FdrawDirection TCARD8
  7512. FminByte1 TCARD8
  7513. FmaxByte1 TCARD8
  7514. FallCharsExist TBOOL
  7515. FfontAscent TINT16
  7516. FfontDescent TINT16
  7517. FnReplies TCARD32
  7518. }
  7519. type TxGetFontPathReply = struct {
  7520. Ftype1 TBYTE
  7521. Fpad1 TBYTE
  7522. FsequenceNumber TCARD16
  7523. Flength TCARD32
  7524. FnPaths TCARD16
  7525. Fpad2 TCARD16
  7526. Fpad3 TCARD32
  7527. Fpad4 TCARD32
  7528. Fpad5 TCARD32
  7529. Fpad6 TCARD32
  7530. Fpad7 TCARD32
  7531. }
  7532. type TxGetImageReply = struct {
  7533. Ftype1 TBYTE
  7534. Fdepth TCARD8
  7535. FsequenceNumber TCARD16
  7536. Flength TCARD32
  7537. Fvisual TCARD32
  7538. Fpad3 TCARD32
  7539. Fpad4 TCARD32
  7540. Fpad5 TCARD32
  7541. Fpad6 TCARD32
  7542. Fpad7 TCARD32
  7543. }
  7544. type TxListInstalledColormapsReply = struct {
  7545. Ftype1 TBYTE
  7546. Fpad1 TBYTE
  7547. FsequenceNumber TCARD16
  7548. Flength TCARD32
  7549. FnColormaps TCARD16
  7550. Fpad2 TCARD16
  7551. Fpad3 TCARD32
  7552. Fpad4 TCARD32
  7553. Fpad5 TCARD32
  7554. Fpad6 TCARD32
  7555. Fpad7 TCARD32
  7556. }
  7557. type TxAllocColorReply = struct {
  7558. Ftype1 TBYTE
  7559. Fpad1 TBYTE
  7560. FsequenceNumber TCARD16
  7561. Flength TCARD32
  7562. Fred TCARD16
  7563. Fgreen TCARD16
  7564. Fblue TCARD16
  7565. Fpad2 TCARD16
  7566. Fpixel TCARD32
  7567. Fpad3 TCARD32
  7568. Fpad4 TCARD32
  7569. Fpad5 TCARD32
  7570. }
  7571. type TxAllocNamedColorReply = struct {
  7572. Ftype1 TBYTE
  7573. Fpad1 TBYTE
  7574. FsequenceNumber TCARD16
  7575. Flength TCARD32
  7576. Fpixel TCARD32
  7577. FexactRed TCARD16
  7578. FexactGreen TCARD16
  7579. FexactBlue TCARD16
  7580. FscreenRed TCARD16
  7581. FscreenGreen TCARD16
  7582. FscreenBlue TCARD16
  7583. Fpad2 TCARD32
  7584. Fpad3 TCARD32
  7585. }
  7586. type TxAllocColorCellsReply = struct {
  7587. Ftype1 TBYTE
  7588. Fpad1 TBYTE
  7589. FsequenceNumber TCARD16
  7590. Flength TCARD32
  7591. FnPixels TCARD16
  7592. FnMasks TCARD16
  7593. Fpad3 TCARD32
  7594. Fpad4 TCARD32
  7595. Fpad5 TCARD32
  7596. Fpad6 TCARD32
  7597. Fpad7 TCARD32
  7598. }
  7599. type TxAllocColorPlanesReply = struct {
  7600. Ftype1 TBYTE
  7601. Fpad1 TBYTE
  7602. FsequenceNumber TCARD16
  7603. Flength TCARD32
  7604. FnPixels TCARD16
  7605. Fpad2 TCARD16
  7606. FredMask TCARD32
  7607. FgreenMask TCARD32
  7608. FblueMask TCARD32
  7609. Fpad3 TCARD32
  7610. Fpad4 TCARD32
  7611. }
  7612. type TxQueryColorsReply = struct {
  7613. Ftype1 TBYTE
  7614. Fpad1 TBYTE
  7615. FsequenceNumber TCARD16
  7616. Flength TCARD32
  7617. FnColors TCARD16
  7618. Fpad2 TCARD16
  7619. Fpad3 TCARD32
  7620. Fpad4 TCARD32
  7621. Fpad5 TCARD32
  7622. Fpad6 TCARD32
  7623. Fpad7 TCARD32
  7624. }
  7625. type TxLookupColorReply = struct {
  7626. Ftype1 TBYTE
  7627. Fpad1 TBYTE
  7628. FsequenceNumber TCARD16
  7629. Flength TCARD32
  7630. FexactRed TCARD16
  7631. FexactGreen TCARD16
  7632. FexactBlue TCARD16
  7633. FscreenRed TCARD16
  7634. FscreenGreen TCARD16
  7635. FscreenBlue TCARD16
  7636. Fpad3 TCARD32
  7637. Fpad4 TCARD32
  7638. Fpad5 TCARD32
  7639. }
  7640. type TxQueryBestSizeReply = struct {
  7641. Ftype1 TBYTE
  7642. Fpad1 TBYTE
  7643. FsequenceNumber TCARD16
  7644. Flength TCARD32
  7645. Fwidth TCARD16
  7646. Fheight TCARD16
  7647. Fpad3 TCARD32
  7648. Fpad4 TCARD32
  7649. Fpad5 TCARD32
  7650. Fpad6 TCARD32
  7651. Fpad7 TCARD32
  7652. }
  7653. type TxQueryExtensionReply = struct {
  7654. Ftype1 TBYTE
  7655. Fpad1 TBYTE
  7656. FsequenceNumber TCARD16
  7657. Flength TCARD32
  7658. Fpresent TBOOL
  7659. Fmajor_opcode TCARD8
  7660. Ffirst_event TCARD8
  7661. Ffirst_error TCARD8
  7662. Fpad3 TCARD32
  7663. Fpad4 TCARD32
  7664. Fpad5 TCARD32
  7665. Fpad6 TCARD32
  7666. Fpad7 TCARD32
  7667. }
  7668. type TxListExtensionsReply = struct {
  7669. Ftype1 TBYTE
  7670. FnExtensions TCARD8
  7671. FsequenceNumber TCARD16
  7672. Flength TCARD32
  7673. Fpad2 TCARD32
  7674. Fpad3 TCARD32
  7675. Fpad4 TCARD32
  7676. Fpad5 TCARD32
  7677. Fpad6 TCARD32
  7678. Fpad7 TCARD32
  7679. }
  7680. type TxSetMappingReply = struct {
  7681. Ftype1 TBYTE
  7682. Fsuccess TCARD8
  7683. FsequenceNumber TCARD16
  7684. Flength TCARD32
  7685. Fpad2 TCARD32
  7686. Fpad3 TCARD32
  7687. Fpad4 TCARD32
  7688. Fpad5 TCARD32
  7689. Fpad6 TCARD32
  7690. Fpad7 TCARD32
  7691. }
  7692. type TxSetPointerMappingReply = struct {
  7693. Ftype1 TBYTE
  7694. Fsuccess TCARD8
  7695. FsequenceNumber TCARD16
  7696. Flength TCARD32
  7697. Fpad2 TCARD32
  7698. Fpad3 TCARD32
  7699. Fpad4 TCARD32
  7700. Fpad5 TCARD32
  7701. Fpad6 TCARD32
  7702. Fpad7 TCARD32
  7703. }
  7704. type TxSetModifierMappingReply = struct {
  7705. Ftype1 TBYTE
  7706. Fsuccess TCARD8
  7707. FsequenceNumber TCARD16
  7708. Flength TCARD32
  7709. Fpad2 TCARD32
  7710. Fpad3 TCARD32
  7711. Fpad4 TCARD32
  7712. Fpad5 TCARD32
  7713. Fpad6 TCARD32
  7714. Fpad7 TCARD32
  7715. }
  7716. type TxGetPointerMappingReply = struct {
  7717. Ftype1 TBYTE
  7718. FnElts TCARD8
  7719. FsequenceNumber TCARD16
  7720. Flength TCARD32
  7721. Fpad2 TCARD32
  7722. Fpad3 TCARD32
  7723. Fpad4 TCARD32
  7724. Fpad5 TCARD32
  7725. Fpad6 TCARD32
  7726. Fpad7 TCARD32
  7727. }
  7728. type TxGetKeyboardMappingReply = struct {
  7729. Ftype1 TBYTE
  7730. FkeySymsPerKeyCode TCARD8
  7731. FsequenceNumber TCARD16
  7732. Flength TCARD32
  7733. Fpad2 TCARD32
  7734. Fpad3 TCARD32
  7735. Fpad4 TCARD32
  7736. Fpad5 TCARD32
  7737. Fpad6 TCARD32
  7738. Fpad7 TCARD32
  7739. }
  7740. type TxGetModifierMappingReply = struct {
  7741. Ftype1 TBYTE
  7742. FnumKeyPerModifier TCARD8
  7743. FsequenceNumber TCARD16
  7744. Flength TCARD32
  7745. Fpad1 TCARD32
  7746. Fpad2 TCARD32
  7747. Fpad3 TCARD32
  7748. Fpad4 TCARD32
  7749. Fpad5 TCARD32
  7750. Fpad6 TCARD32
  7751. }
  7752. type TxGetKeyboardControlReply = struct {
  7753. Ftype1 TBYTE
  7754. FglobalAutoRepeat TBOOL
  7755. FsequenceNumber TCARD16
  7756. Flength TCARD32
  7757. FledMask TCARD32
  7758. FkeyClickPercent TCARD8
  7759. FbellPercent TCARD8
  7760. FbellPitch TCARD16
  7761. FbellDuration TCARD16
  7762. Fpad TCARD16
  7763. Fmap1 [32]TBYTE
  7764. }
  7765. type TxGetPointerControlReply = struct {
  7766. Ftype1 TBYTE
  7767. Fpad1 TBYTE
  7768. FsequenceNumber TCARD16
  7769. Flength TCARD32
  7770. FaccelNumerator TCARD16
  7771. FaccelDenominator TCARD16
  7772. Fthreshold TCARD16
  7773. Fpad2 TCARD16
  7774. Fpad3 TCARD32
  7775. Fpad4 TCARD32
  7776. Fpad5 TCARD32
  7777. Fpad6 TCARD32
  7778. }
  7779. type TxGetScreenSaverReply = struct {
  7780. Ftype1 TBYTE
  7781. Fpad1 TBYTE
  7782. FsequenceNumber TCARD16
  7783. Flength TCARD32
  7784. Ftimeout TCARD16
  7785. Finterval TCARD16
  7786. FpreferBlanking TBOOL
  7787. FallowExposures TBOOL
  7788. Fpad2 TCARD16
  7789. Fpad3 TCARD32
  7790. Fpad4 TCARD32
  7791. Fpad5 TCARD32
  7792. Fpad6 TCARD32
  7793. }
  7794. type TxListHostsReply = struct {
  7795. Ftype1 TBYTE
  7796. Fenabled TBOOL
  7797. FsequenceNumber TCARD16
  7798. Flength TCARD32
  7799. FnHosts TCARD16
  7800. Fpad1 TCARD16
  7801. Fpad3 TCARD32
  7802. Fpad4 TCARD32
  7803. Fpad5 TCARD32
  7804. Fpad6 TCARD32
  7805. Fpad7 TCARD32
  7806. }
  7807. type TxError = struct {
  7808. Ftype1 TBYTE
  7809. FerrorCode TBYTE
  7810. FsequenceNumber TCARD16
  7811. FresourceID TCARD32
  7812. FminorCode TCARD16
  7813. FmajorCode TCARD8
  7814. Fpad1 TBYTE
  7815. Fpad3 TCARD32
  7816. Fpad4 TCARD32
  7817. Fpad5 TCARD32
  7818. Fpad6 TCARD32
  7819. Fpad7 TCARD32
  7820. }
  7821. type TxEvent = struct {
  7822. Fu struct {
  7823. FkeyButtonPointer [0]struct {
  7824. Fpad00 TCARD32
  7825. Ftime TCARD32
  7826. Froot TCARD32
  7827. Fevent TCARD32
  7828. Fchild TCARD32
  7829. FrootX TINT16
  7830. FrootY TINT16
  7831. FeventX TINT16
  7832. FeventY TINT16
  7833. Fstate TKeyButMask
  7834. FsameScreen TBOOL
  7835. Fpad1 TBYTE
  7836. }
  7837. FenterLeave [0]struct {
  7838. Fpad00 TCARD32
  7839. Ftime TCARD32
  7840. Froot TCARD32
  7841. Fevent TCARD32
  7842. Fchild TCARD32
  7843. FrootX TINT16
  7844. FrootY TINT16
  7845. FeventX TINT16
  7846. FeventY TINT16
  7847. Fstate TKeyButMask
  7848. Fmode TBYTE
  7849. Fflags TBYTE
  7850. }
  7851. Ffocus [0]struct {
  7852. Fpad00 TCARD32
  7853. Fwindow TCARD32
  7854. Fmode TBYTE
  7855. Fpad1 TBYTE
  7856. Fpad2 TBYTE
  7857. Fpad3 TBYTE
  7858. }
  7859. Fexpose [0]struct {
  7860. Fpad00 TCARD32
  7861. Fwindow TCARD32
  7862. Fx TCARD16
  7863. Fy TCARD16
  7864. Fwidth TCARD16
  7865. Fheight TCARD16
  7866. Fcount TCARD16
  7867. Fpad2 TCARD16
  7868. }
  7869. FgraphicsExposure [0]struct {
  7870. Fpad00 TCARD32
  7871. Fdrawable TCARD32
  7872. Fx TCARD16
  7873. Fy TCARD16
  7874. Fwidth TCARD16
  7875. Fheight TCARD16
  7876. FminorEvent TCARD16
  7877. Fcount TCARD16
  7878. FmajorEvent TBYTE
  7879. Fpad1 TBYTE
  7880. Fpad2 TBYTE
  7881. Fpad3 TBYTE
  7882. }
  7883. FnoExposure [0]struct {
  7884. Fpad00 TCARD32
  7885. Fdrawable TCARD32
  7886. FminorEvent TCARD16
  7887. FmajorEvent TBYTE
  7888. Fbpad TBYTE
  7889. }
  7890. Fvisibility [0]struct {
  7891. Fpad00 TCARD32
  7892. Fwindow TCARD32
  7893. Fstate TCARD8
  7894. Fpad1 TBYTE
  7895. Fpad2 TBYTE
  7896. Fpad3 TBYTE
  7897. }
  7898. FcreateNotify [0]struct {
  7899. Fpad00 TCARD32
  7900. Fparent TCARD32
  7901. Fwindow TCARD32
  7902. Fx TINT16
  7903. Fy TINT16
  7904. Fwidth TCARD16
  7905. Fheight TCARD16
  7906. FborderWidth TCARD16
  7907. Foverride TBOOL
  7908. Fbpad TBYTE
  7909. }
  7910. FdestroyNotify [0]struct {
  7911. Fpad00 TCARD32
  7912. Fevent TCARD32
  7913. Fwindow TCARD32
  7914. }
  7915. FunmapNotify [0]struct {
  7916. Fpad00 TCARD32
  7917. Fevent TCARD32
  7918. Fwindow TCARD32
  7919. FfromConfigure TBOOL
  7920. Fpad1 TBYTE
  7921. Fpad2 TBYTE
  7922. Fpad3 TBYTE
  7923. }
  7924. FmapNotify [0]struct {
  7925. Fpad00 TCARD32
  7926. Fevent TCARD32
  7927. Fwindow TCARD32
  7928. Foverride TBOOL
  7929. Fpad1 TBYTE
  7930. Fpad2 TBYTE
  7931. Fpad3 TBYTE
  7932. }
  7933. FmapRequest [0]struct {
  7934. Fpad00 TCARD32
  7935. Fparent TCARD32
  7936. Fwindow TCARD32
  7937. }
  7938. Freparent [0]struct {
  7939. Fpad00 TCARD32
  7940. Fevent TCARD32
  7941. Fwindow TCARD32
  7942. Fparent TCARD32
  7943. Fx TINT16
  7944. Fy TINT16
  7945. Foverride TBOOL
  7946. Fpad1 TBYTE
  7947. Fpad2 TBYTE
  7948. Fpad3 TBYTE
  7949. }
  7950. FconfigureNotify [0]struct {
  7951. Fpad00 TCARD32
  7952. Fevent TCARD32
  7953. Fwindow TCARD32
  7954. FaboveSibling TCARD32
  7955. Fx TINT16
  7956. Fy TINT16
  7957. Fwidth TCARD16
  7958. Fheight TCARD16
  7959. FborderWidth TCARD16
  7960. Foverride TBOOL
  7961. Fbpad TBYTE
  7962. }
  7963. FconfigureRequest [0]struct {
  7964. Fpad00 TCARD32
  7965. Fparent TCARD32
  7966. Fwindow TCARD32
  7967. Fsibling TCARD32
  7968. Fx TINT16
  7969. Fy TINT16
  7970. Fwidth TCARD16
  7971. Fheight TCARD16
  7972. FborderWidth TCARD16
  7973. FvalueMask TCARD16
  7974. Fpad1 TCARD32
  7975. }
  7976. Fgravity [0]struct {
  7977. Fpad00 TCARD32
  7978. Fevent TCARD32
  7979. Fwindow TCARD32
  7980. Fx TINT16
  7981. Fy TINT16
  7982. Fpad1 TCARD32
  7983. Fpad2 TCARD32
  7984. Fpad3 TCARD32
  7985. Fpad4 TCARD32
  7986. }
  7987. FresizeRequest [0]struct {
  7988. Fpad00 TCARD32
  7989. Fwindow TCARD32
  7990. Fwidth TCARD16
  7991. Fheight TCARD16
  7992. }
  7993. Fcirculate [0]struct {
  7994. Fpad00 TCARD32
  7995. Fevent TCARD32
  7996. Fwindow TCARD32
  7997. Fparent TCARD32
  7998. Fplace TBYTE
  7999. Fpad1 TBYTE
  8000. Fpad2 TBYTE
  8001. Fpad3 TBYTE
  8002. }
  8003. Fproperty [0]struct {
  8004. Fpad00 TCARD32
  8005. Fwindow TCARD32
  8006. Fatom TCARD32
  8007. Ftime TCARD32
  8008. Fstate TBYTE
  8009. Fpad1 TBYTE
  8010. Fpad2 TCARD16
  8011. }
  8012. FselectionClear [0]struct {
  8013. Fpad00 TCARD32
  8014. Ftime TCARD32
  8015. Fwindow TCARD32
  8016. Fatom TCARD32
  8017. }
  8018. FselectionRequest [0]struct {
  8019. Fpad00 TCARD32
  8020. Ftime TCARD32
  8021. Fowner TCARD32
  8022. Frequestor TCARD32
  8023. Fselection TCARD32
  8024. Ftarget TCARD32
  8025. Fproperty TCARD32
  8026. }
  8027. FselectionNotify [0]struct {
  8028. Fpad00 TCARD32
  8029. Ftime TCARD32
  8030. Frequestor TCARD32
  8031. Fselection TCARD32
  8032. Ftarget TCARD32
  8033. Fproperty TCARD32
  8034. }
  8035. Fcolormap [0]struct {
  8036. Fpad00 TCARD32
  8037. Fwindow TCARD32
  8038. Fcolormap TCARD32
  8039. Fnew1 TBOOL
  8040. Fstate TBYTE
  8041. Fpad1 TBYTE
  8042. Fpad2 TBYTE
  8043. }
  8044. FmappingNotify [0]struct {
  8045. Fpad00 TCARD32
  8046. Frequest TCARD8
  8047. FfirstKeyCode TCARD8
  8048. Fcount TCARD8
  8049. Fpad1 TBYTE
  8050. }
  8051. FclientMessage [0]struct {
  8052. Fpad00 TCARD32
  8053. Fwindow TCARD32
  8054. Fu struct {
  8055. Fs [0]struct {
  8056. Ftype1 TCARD32
  8057. Fshorts0 TINT16
  8058. Fshorts1 TINT16
  8059. Fshorts2 TINT16
  8060. Fshorts3 TINT16
  8061. Fshorts4 TINT16
  8062. Fshorts5 TINT16
  8063. Fshorts6 TINT16
  8064. Fshorts7 TINT16
  8065. Fshorts8 TINT16
  8066. Fshorts9 TINT16
  8067. }
  8068. Fb [0]struct {
  8069. Ftype1 TCARD32
  8070. Fbytes [20]TINT8
  8071. }
  8072. Fl struct {
  8073. Ftype1 TCARD32
  8074. Flongs0 TINT32
  8075. Flongs1 TINT32
  8076. Flongs2 TINT32
  8077. Flongs3 TINT32
  8078. Flongs4 TINT32
  8079. }
  8080. }
  8081. }
  8082. Fu struct {
  8083. Ftype1 TBYTE
  8084. Fdetail TBYTE
  8085. FsequenceNumber TCARD16
  8086. }
  8087. F__ccgo_pad26 [28]byte
  8088. }
  8089. }
  8090. type T_xEvent = TxEvent
  8091. type TxGenericEvent = struct {
  8092. Ftype1 TBYTE
  8093. Fextension TCARD8
  8094. FsequenceNumber TCARD16
  8095. Flength TCARD32
  8096. Fevtype TCARD16
  8097. Fpad2 TCARD16
  8098. Fpad3 TCARD32
  8099. Fpad4 TCARD32
  8100. Fpad5 TCARD32
  8101. Fpad6 TCARD32
  8102. Fpad7 TCARD32
  8103. }
  8104. type TxKeymapEvent = struct {
  8105. Ftype1 TBYTE
  8106. Fmap1 [31]TBYTE
  8107. }
  8108. type TxReply = struct {
  8109. Fgeom [0]TxGetGeometryReply
  8110. Ftree [0]TxQueryTreeReply
  8111. Fatom [0]TxInternAtomReply
  8112. FatomName [0]TxGetAtomNameReply
  8113. Fproperty [0]TxGetPropertyReply
  8114. FlistProperties [0]TxListPropertiesReply
  8115. Fselection [0]TxGetSelectionOwnerReply
  8116. FgrabPointer [0]TxGrabPointerReply
  8117. FgrabKeyboard [0]TxGrabKeyboardReply
  8118. Fpointer [0]TxQueryPointerReply
  8119. FmotionEvents [0]TxGetMotionEventsReply
  8120. Fcoords [0]TxTranslateCoordsReply
  8121. FinputFocus [0]TxGetInputFocusReply
  8122. FtextExtents [0]TxQueryTextExtentsReply
  8123. Ffonts [0]TxListFontsReply
  8124. FfontPath [0]TxGetFontPathReply
  8125. Fimage [0]TxGetImageReply
  8126. Fcolormaps [0]TxListInstalledColormapsReply
  8127. FallocColor [0]TxAllocColorReply
  8128. FallocNamedColor [0]TxAllocNamedColorReply
  8129. FcolorCells [0]TxAllocColorCellsReply
  8130. FcolorPlanes [0]TxAllocColorPlanesReply
  8131. Fcolors [0]TxQueryColorsReply
  8132. FlookupColor [0]TxLookupColorReply
  8133. FbestSize [0]TxQueryBestSizeReply
  8134. Fextension [0]TxQueryExtensionReply
  8135. Fextensions [0]TxListExtensionsReply
  8136. FsetModifierMapping [0]TxSetModifierMappingReply
  8137. FgetModifierMapping [0]TxGetModifierMappingReply
  8138. FsetPointerMapping [0]TxSetPointerMappingReply
  8139. FgetKeyboardMapping [0]TxGetKeyboardMappingReply
  8140. FgetPointerMapping [0]TxGetPointerMappingReply
  8141. FpointerControl [0]TxGetPointerControlReply
  8142. FscreenSaver [0]TxGetScreenSaverReply
  8143. Fhosts [0]TxListHostsReply
  8144. Ferror1 [0]TxError
  8145. Fevent [0]TxEvent
  8146. Fgeneric TxGenericReply
  8147. }
  8148. type TxReq = struct {
  8149. FreqType TCARD8
  8150. Fdata TCARD8
  8151. Flength TCARD16
  8152. }
  8153. type T_xReq = TxReq
  8154. type TxResourceReq = struct {
  8155. FreqType TCARD8
  8156. Fpad TBYTE
  8157. Flength TCARD16
  8158. Fid TCARD32
  8159. }
  8160. type TxCreateWindowReq = struct {
  8161. FreqType TCARD8
  8162. Fdepth TCARD8
  8163. Flength TCARD16
  8164. Fwid TCARD32
  8165. Fparent TCARD32
  8166. Fx TINT16
  8167. Fy TINT16
  8168. Fwidth TCARD16
  8169. Fheight TCARD16
  8170. FborderWidth TCARD16
  8171. Fclass TCARD16
  8172. Fvisual TCARD32
  8173. Fmask TCARD32
  8174. }
  8175. type TxChangeWindowAttributesReq = struct {
  8176. FreqType TCARD8
  8177. Fpad TBYTE
  8178. Flength TCARD16
  8179. Fwindow TCARD32
  8180. FvalueMask TCARD32
  8181. }
  8182. type TxChangeSaveSetReq = struct {
  8183. FreqType TCARD8
  8184. Fmode TBYTE
  8185. Flength TCARD16
  8186. Fwindow TCARD32
  8187. }
  8188. type TxReparentWindowReq = struct {
  8189. FreqType TCARD8
  8190. Fpad TBYTE
  8191. Flength TCARD16
  8192. Fwindow TCARD32
  8193. Fparent TCARD32
  8194. Fx TINT16
  8195. Fy TINT16
  8196. }
  8197. type TxConfigureWindowReq = struct {
  8198. FreqType TCARD8
  8199. Fpad TCARD8
  8200. Flength TCARD16
  8201. Fwindow TCARD32
  8202. Fmask TCARD16
  8203. Fpad2 TCARD16
  8204. }
  8205. type TxCirculateWindowReq = struct {
  8206. FreqType TCARD8
  8207. Fdirection TCARD8
  8208. Flength TCARD16
  8209. Fwindow TCARD32
  8210. }
  8211. type TxInternAtomReq = struct {
  8212. FreqType TCARD8
  8213. FonlyIfExists TBOOL
  8214. Flength TCARD16
  8215. Fnbytes TCARD16
  8216. Fpad TCARD16
  8217. }
  8218. type TxChangePropertyReq = struct {
  8219. FreqType TCARD8
  8220. Fmode TCARD8
  8221. Flength TCARD16
  8222. Fwindow TCARD32
  8223. Fproperty TCARD32
  8224. Ftype1 TCARD32
  8225. Fformat TCARD8
  8226. Fpad [3]TBYTE
  8227. FnUnits TCARD32
  8228. }
  8229. type TxDeletePropertyReq = struct {
  8230. FreqType TCARD8
  8231. Fpad TBYTE
  8232. Flength TCARD16
  8233. Fwindow TCARD32
  8234. Fproperty TCARD32
  8235. }
  8236. type TxGetPropertyReq = struct {
  8237. FreqType TCARD8
  8238. Fdelete1 TBOOL
  8239. Flength TCARD16
  8240. Fwindow TCARD32
  8241. Fproperty TCARD32
  8242. Ftype1 TCARD32
  8243. FlongOffset TCARD32
  8244. FlongLength TCARD32
  8245. }
  8246. type TxSetSelectionOwnerReq = struct {
  8247. FreqType TCARD8
  8248. Fpad TBYTE
  8249. Flength TCARD16
  8250. Fwindow TCARD32
  8251. Fselection TCARD32
  8252. Ftime TCARD32
  8253. }
  8254. type TxConvertSelectionReq = struct {
  8255. FreqType TCARD8
  8256. Fpad TBYTE
  8257. Flength TCARD16
  8258. Frequestor TCARD32
  8259. Fselection TCARD32
  8260. Ftarget TCARD32
  8261. Fproperty TCARD32
  8262. Ftime TCARD32
  8263. }
  8264. type TxSendEventReq = struct {
  8265. FreqType TCARD8
  8266. Fpropagate TBOOL
  8267. Flength TCARD16
  8268. Fdestination TCARD32
  8269. FeventMask TCARD32
  8270. Fevent TxEvent
  8271. }
  8272. type TxGrabPointerReq = struct {
  8273. FreqType TCARD8
  8274. FownerEvents TBOOL
  8275. Flength TCARD16
  8276. FgrabWindow TCARD32
  8277. FeventMask TCARD16
  8278. FpointerMode TBYTE
  8279. FkeyboardMode TBYTE
  8280. FconfineTo TCARD32
  8281. Fcursor TCARD32
  8282. Ftime TCARD32
  8283. }
  8284. type TxGrabButtonReq = struct {
  8285. FreqType TCARD8
  8286. FownerEvents TBOOL
  8287. Flength TCARD16
  8288. FgrabWindow TCARD32
  8289. FeventMask TCARD16
  8290. FpointerMode TBYTE
  8291. FkeyboardMode TBYTE
  8292. FconfineTo TCARD32
  8293. Fcursor TCARD32
  8294. Fbutton TCARD8
  8295. Fpad TBYTE
  8296. Fmodifiers TCARD16
  8297. }
  8298. type TxUngrabButtonReq = struct {
  8299. FreqType TCARD8
  8300. Fbutton TCARD8
  8301. Flength TCARD16
  8302. FgrabWindow TCARD32
  8303. Fmodifiers TCARD16
  8304. Fpad TCARD16
  8305. }
  8306. type TxChangeActivePointerGrabReq = struct {
  8307. FreqType TCARD8
  8308. Fpad TBYTE
  8309. Flength TCARD16
  8310. Fcursor TCARD32
  8311. Ftime TCARD32
  8312. FeventMask TCARD16
  8313. Fpad2 TCARD16
  8314. }
  8315. type TxGrabKeyboardReq = struct {
  8316. FreqType TCARD8
  8317. FownerEvents TBOOL
  8318. Flength TCARD16
  8319. FgrabWindow TCARD32
  8320. Ftime TCARD32
  8321. FpointerMode TBYTE
  8322. FkeyboardMode TBYTE
  8323. Fpad TCARD16
  8324. }
  8325. type TxGrabKeyReq = struct {
  8326. FreqType TCARD8
  8327. FownerEvents TBOOL
  8328. Flength TCARD16
  8329. FgrabWindow TCARD32
  8330. Fmodifiers TCARD16
  8331. Fkey TCARD8
  8332. FpointerMode TBYTE
  8333. FkeyboardMode TBYTE
  8334. Fpad1 TBYTE
  8335. Fpad2 TBYTE
  8336. Fpad3 TBYTE
  8337. }
  8338. type TxUngrabKeyReq = struct {
  8339. FreqType TCARD8
  8340. Fkey TCARD8
  8341. Flength TCARD16
  8342. FgrabWindow TCARD32
  8343. Fmodifiers TCARD16
  8344. Fpad TCARD16
  8345. }
  8346. type TxAllowEventsReq = struct {
  8347. FreqType TCARD8
  8348. Fmode TCARD8
  8349. Flength TCARD16
  8350. Ftime TCARD32
  8351. }
  8352. type TxGetMotionEventsReq = struct {
  8353. FreqType TCARD8
  8354. Fpad TBYTE
  8355. Flength TCARD16
  8356. Fwindow TCARD32
  8357. Fstart TCARD32
  8358. Fstop TCARD32
  8359. }
  8360. type TxTranslateCoordsReq = struct {
  8361. FreqType TCARD8
  8362. Fpad TBYTE
  8363. Flength TCARD16
  8364. FsrcWid TCARD32
  8365. FdstWid TCARD32
  8366. FsrcX TINT16
  8367. FsrcY TINT16
  8368. }
  8369. type TxWarpPointerReq = struct {
  8370. FreqType TCARD8
  8371. Fpad TBYTE
  8372. Flength TCARD16
  8373. FsrcWid TCARD32
  8374. FdstWid TCARD32
  8375. FsrcX TINT16
  8376. FsrcY TINT16
  8377. FsrcWidth TCARD16
  8378. FsrcHeight TCARD16
  8379. FdstX TINT16
  8380. FdstY TINT16
  8381. }
  8382. type TxSetInputFocusReq = struct {
  8383. FreqType TCARD8
  8384. FrevertTo TCARD8
  8385. Flength TCARD16
  8386. Ffocus TCARD32
  8387. Ftime TCARD32
  8388. }
  8389. type TxOpenFontReq = struct {
  8390. FreqType TCARD8
  8391. Fpad TBYTE
  8392. Flength TCARD16
  8393. Ffid TCARD32
  8394. Fnbytes TCARD16
  8395. Fpad1 TBYTE
  8396. Fpad2 TBYTE
  8397. }
  8398. type TxQueryTextExtentsReq = struct {
  8399. FreqType TCARD8
  8400. FoddLength TBOOL
  8401. Flength TCARD16
  8402. Ffid TCARD32
  8403. }
  8404. type TxListFontsReq = struct {
  8405. FreqType TCARD8
  8406. Fpad TBYTE
  8407. Flength TCARD16
  8408. FmaxNames TCARD16
  8409. Fnbytes TCARD16
  8410. }
  8411. type TxListFontsWithInfoReq = struct {
  8412. FreqType TCARD8
  8413. Fpad TBYTE
  8414. Flength TCARD16
  8415. FmaxNames TCARD16
  8416. Fnbytes TCARD16
  8417. }
  8418. type TxSetFontPathReq = struct {
  8419. FreqType TCARD8
  8420. Fpad TBYTE
  8421. Flength TCARD16
  8422. FnFonts TCARD16
  8423. Fpad1 TBYTE
  8424. Fpad2 TBYTE
  8425. }
  8426. type TxCreatePixmapReq = struct {
  8427. FreqType TCARD8
  8428. Fdepth TCARD8
  8429. Flength TCARD16
  8430. Fpid TCARD32
  8431. Fdrawable TCARD32
  8432. Fwidth TCARD16
  8433. Fheight TCARD16
  8434. }
  8435. type TxCreateGCReq = struct {
  8436. FreqType TCARD8
  8437. Fpad TBYTE
  8438. Flength TCARD16
  8439. Fgc TCARD32
  8440. Fdrawable TCARD32
  8441. Fmask TCARD32
  8442. }
  8443. type TxChangeGCReq = struct {
  8444. FreqType TCARD8
  8445. Fpad TBYTE
  8446. Flength TCARD16
  8447. Fgc TCARD32
  8448. Fmask TCARD32
  8449. }
  8450. type TxCopyGCReq = struct {
  8451. FreqType TCARD8
  8452. Fpad TBYTE
  8453. Flength TCARD16
  8454. FsrcGC TCARD32
  8455. FdstGC TCARD32
  8456. Fmask TCARD32
  8457. }
  8458. type TxSetDashesReq = struct {
  8459. FreqType TCARD8
  8460. Fpad TBYTE
  8461. Flength TCARD16
  8462. Fgc TCARD32
  8463. FdashOffset TCARD16
  8464. FnDashes TCARD16
  8465. }
  8466. type TxSetClipRectanglesReq = struct {
  8467. FreqType TCARD8
  8468. Fordering TBYTE
  8469. Flength TCARD16
  8470. Fgc TCARD32
  8471. FxOrigin TINT16
  8472. FyOrigin TINT16
  8473. }
  8474. type TxClearAreaReq = struct {
  8475. FreqType TCARD8
  8476. Fexposures TBOOL
  8477. Flength TCARD16
  8478. Fwindow TCARD32
  8479. Fx TINT16
  8480. Fy TINT16
  8481. Fwidth TCARD16
  8482. Fheight TCARD16
  8483. }
  8484. type TxCopyAreaReq = struct {
  8485. FreqType TCARD8
  8486. Fpad TBYTE
  8487. Flength TCARD16
  8488. FsrcDrawable TCARD32
  8489. FdstDrawable TCARD32
  8490. Fgc TCARD32
  8491. FsrcX TINT16
  8492. FsrcY TINT16
  8493. FdstX TINT16
  8494. FdstY TINT16
  8495. Fwidth TCARD16
  8496. Fheight TCARD16
  8497. }
  8498. type TxCopyPlaneReq = struct {
  8499. FreqType TCARD8
  8500. Fpad TBYTE
  8501. Flength TCARD16
  8502. FsrcDrawable TCARD32
  8503. FdstDrawable TCARD32
  8504. Fgc TCARD32
  8505. FsrcX TINT16
  8506. FsrcY TINT16
  8507. FdstX TINT16
  8508. FdstY TINT16
  8509. Fwidth TCARD16
  8510. Fheight TCARD16
  8511. FbitPlane TCARD32
  8512. }
  8513. type TxPolyPointReq = struct {
  8514. FreqType TCARD8
  8515. FcoordMode TBYTE
  8516. Flength TCARD16
  8517. Fdrawable TCARD32
  8518. Fgc TCARD32
  8519. }
  8520. type TxPolyLineReq = struct {
  8521. FreqType TCARD8
  8522. FcoordMode TBYTE
  8523. Flength TCARD16
  8524. Fdrawable TCARD32
  8525. Fgc TCARD32
  8526. }
  8527. type TxPolySegmentReq = struct {
  8528. FreqType TCARD8
  8529. Fpad TBYTE
  8530. Flength TCARD16
  8531. Fdrawable TCARD32
  8532. Fgc TCARD32
  8533. }
  8534. type TxPolyArcReq = struct {
  8535. FreqType TCARD8
  8536. Fpad TBYTE
  8537. Flength TCARD16
  8538. Fdrawable TCARD32
  8539. Fgc TCARD32
  8540. }
  8541. type TxPolyRectangleReq = struct {
  8542. FreqType TCARD8
  8543. Fpad TBYTE
  8544. Flength TCARD16
  8545. Fdrawable TCARD32
  8546. Fgc TCARD32
  8547. }
  8548. type TxPolyFillRectangleReq = struct {
  8549. FreqType TCARD8
  8550. Fpad TBYTE
  8551. Flength TCARD16
  8552. Fdrawable TCARD32
  8553. Fgc TCARD32
  8554. }
  8555. type TxPolyFillArcReq = struct {
  8556. FreqType TCARD8
  8557. Fpad TBYTE
  8558. Flength TCARD16
  8559. Fdrawable TCARD32
  8560. Fgc TCARD32
  8561. }
  8562. type TxFillPolyReq = struct {
  8563. FreqType TCARD8
  8564. Fpad TBYTE
  8565. Flength TCARD16
  8566. Fdrawable TCARD32
  8567. Fgc TCARD32
  8568. Fshape TBYTE
  8569. FcoordMode TBYTE
  8570. Fpad1 TCARD16
  8571. }
  8572. type T_FillPolyReq = TxFillPolyReq
  8573. type TxPutImageReq = struct {
  8574. FreqType TCARD8
  8575. Fformat TCARD8
  8576. Flength TCARD16
  8577. Fdrawable TCARD32
  8578. Fgc TCARD32
  8579. Fwidth TCARD16
  8580. Fheight TCARD16
  8581. FdstX TINT16
  8582. FdstY TINT16
  8583. FleftPad TCARD8
  8584. Fdepth TCARD8
  8585. Fpad TCARD16
  8586. }
  8587. type T_PutImageReq = TxPutImageReq
  8588. type TxGetImageReq = struct {
  8589. FreqType TCARD8
  8590. Fformat TCARD8
  8591. Flength TCARD16
  8592. Fdrawable TCARD32
  8593. Fx TINT16
  8594. Fy TINT16
  8595. Fwidth TCARD16
  8596. Fheight TCARD16
  8597. FplaneMask TCARD32
  8598. }
  8599. type TxPolyTextReq = struct {
  8600. FreqType TCARD8
  8601. Fpad TCARD8
  8602. Flength TCARD16
  8603. Fdrawable TCARD32
  8604. Fgc TCARD32
  8605. Fx TINT16
  8606. Fy TINT16
  8607. }
  8608. type TxPolyText8Req = struct {
  8609. FreqType TCARD8
  8610. Fpad TCARD8
  8611. Flength TCARD16
  8612. Fdrawable TCARD32
  8613. Fgc TCARD32
  8614. Fx TINT16
  8615. Fy TINT16
  8616. }
  8617. type TxPolyText16Req = struct {
  8618. FreqType TCARD8
  8619. Fpad TCARD8
  8620. Flength TCARD16
  8621. Fdrawable TCARD32
  8622. Fgc TCARD32
  8623. Fx TINT16
  8624. Fy TINT16
  8625. }
  8626. type TxImageTextReq = struct {
  8627. FreqType TCARD8
  8628. FnChars TBYTE
  8629. Flength TCARD16
  8630. Fdrawable TCARD32
  8631. Fgc TCARD32
  8632. Fx TINT16
  8633. Fy TINT16
  8634. }
  8635. type TxImageText8Req = struct {
  8636. FreqType TCARD8
  8637. FnChars TBYTE
  8638. Flength TCARD16
  8639. Fdrawable TCARD32
  8640. Fgc TCARD32
  8641. Fx TINT16
  8642. Fy TINT16
  8643. }
  8644. type TxImageText16Req = struct {
  8645. FreqType TCARD8
  8646. FnChars TBYTE
  8647. Flength TCARD16
  8648. Fdrawable TCARD32
  8649. Fgc TCARD32
  8650. Fx TINT16
  8651. Fy TINT16
  8652. }
  8653. type TxCreateColormapReq = struct {
  8654. FreqType TCARD8
  8655. Falloc TBYTE
  8656. Flength TCARD16
  8657. Fmid TCARD32
  8658. Fwindow TCARD32
  8659. Fvisual TCARD32
  8660. }
  8661. type TxCopyColormapAndFreeReq = struct {
  8662. FreqType TCARD8
  8663. Fpad TBYTE
  8664. Flength TCARD16
  8665. Fmid TCARD32
  8666. FsrcCmap TCARD32
  8667. }
  8668. type TxAllocColorReq = struct {
  8669. FreqType TCARD8
  8670. Fpad TBYTE
  8671. Flength TCARD16
  8672. Fcmap TCARD32
  8673. Fred TCARD16
  8674. Fgreen TCARD16
  8675. Fblue TCARD16
  8676. Fpad2 TCARD16
  8677. }
  8678. type TxAllocNamedColorReq = struct {
  8679. FreqType TCARD8
  8680. Fpad TBYTE
  8681. Flength TCARD16
  8682. Fcmap TCARD32
  8683. Fnbytes TCARD16
  8684. Fpad1 TBYTE
  8685. Fpad2 TBYTE
  8686. }
  8687. type TxAllocColorCellsReq = struct {
  8688. FreqType TCARD8
  8689. Fcontiguous TBOOL
  8690. Flength TCARD16
  8691. Fcmap TCARD32
  8692. Fcolors TCARD16
  8693. Fplanes TCARD16
  8694. }
  8695. type TxAllocColorPlanesReq = struct {
  8696. FreqType TCARD8
  8697. Fcontiguous TBOOL
  8698. Flength TCARD16
  8699. Fcmap TCARD32
  8700. Fcolors TCARD16
  8701. Fred TCARD16
  8702. Fgreen TCARD16
  8703. Fblue TCARD16
  8704. }
  8705. type TxFreeColorsReq = struct {
  8706. FreqType TCARD8
  8707. Fpad TBYTE
  8708. Flength TCARD16
  8709. Fcmap TCARD32
  8710. FplaneMask TCARD32
  8711. }
  8712. type TxStoreColorsReq = struct {
  8713. FreqType TCARD8
  8714. Fpad TBYTE
  8715. Flength TCARD16
  8716. Fcmap TCARD32
  8717. }
  8718. type TxStoreNamedColorReq = struct {
  8719. FreqType TCARD8
  8720. Fflags TCARD8
  8721. Flength TCARD16
  8722. Fcmap TCARD32
  8723. Fpixel TCARD32
  8724. Fnbytes TCARD16
  8725. Fpad1 TBYTE
  8726. Fpad2 TBYTE
  8727. }
  8728. type TxQueryColorsReq = struct {
  8729. FreqType TCARD8
  8730. Fpad TBYTE
  8731. Flength TCARD16
  8732. Fcmap TCARD32
  8733. }
  8734. type TxLookupColorReq = struct {
  8735. FreqType TCARD8
  8736. Fpad TBYTE
  8737. Flength TCARD16
  8738. Fcmap TCARD32
  8739. Fnbytes TCARD16
  8740. Fpad1 TBYTE
  8741. Fpad2 TBYTE
  8742. }
  8743. type TxCreateCursorReq = struct {
  8744. FreqType TCARD8
  8745. Fpad TBYTE
  8746. Flength TCARD16
  8747. Fcid TCARD32
  8748. Fsource TCARD32
  8749. Fmask TCARD32
  8750. FforeRed TCARD16
  8751. FforeGreen TCARD16
  8752. FforeBlue TCARD16
  8753. FbackRed TCARD16
  8754. FbackGreen TCARD16
  8755. FbackBlue TCARD16
  8756. Fx TCARD16
  8757. Fy TCARD16
  8758. }
  8759. type TxCreateGlyphCursorReq = struct {
  8760. FreqType TCARD8
  8761. Fpad TBYTE
  8762. Flength TCARD16
  8763. Fcid TCARD32
  8764. Fsource TCARD32
  8765. Fmask TCARD32
  8766. FsourceChar TCARD16
  8767. FmaskChar TCARD16
  8768. FforeRed TCARD16
  8769. FforeGreen TCARD16
  8770. FforeBlue TCARD16
  8771. FbackRed TCARD16
  8772. FbackGreen TCARD16
  8773. FbackBlue TCARD16
  8774. }
  8775. type TxRecolorCursorReq = struct {
  8776. FreqType TCARD8
  8777. Fpad TBYTE
  8778. Flength TCARD16
  8779. Fcursor TCARD32
  8780. FforeRed TCARD16
  8781. FforeGreen TCARD16
  8782. FforeBlue TCARD16
  8783. FbackRed TCARD16
  8784. FbackGreen TCARD16
  8785. FbackBlue TCARD16
  8786. }
  8787. type TxQueryBestSizeReq = struct {
  8788. FreqType TCARD8
  8789. Fclass TCARD8
  8790. Flength TCARD16
  8791. Fdrawable TCARD32
  8792. Fwidth TCARD16
  8793. Fheight TCARD16
  8794. }
  8795. type TxQueryExtensionReq = struct {
  8796. FreqType TCARD8
  8797. Fpad TBYTE
  8798. Flength TCARD16
  8799. Fnbytes TCARD16
  8800. Fpad1 TBYTE
  8801. Fpad2 TBYTE
  8802. }
  8803. type TxSetModifierMappingReq = struct {
  8804. FreqType TCARD8
  8805. FnumKeyPerModifier TCARD8
  8806. Flength TCARD16
  8807. }
  8808. type TxSetPointerMappingReq = struct {
  8809. FreqType TCARD8
  8810. FnElts TCARD8
  8811. Flength TCARD16
  8812. }
  8813. type TxGetKeyboardMappingReq = struct {
  8814. FreqType TCARD8
  8815. Fpad TBYTE
  8816. Flength TCARD16
  8817. FfirstKeyCode TCARD8
  8818. Fcount TCARD8
  8819. Fpad1 TCARD16
  8820. }
  8821. type TxChangeKeyboardMappingReq = struct {
  8822. FreqType TCARD8
  8823. FkeyCodes TCARD8
  8824. Flength TCARD16
  8825. FfirstKeyCode TCARD8
  8826. FkeySymsPerKeyCode TCARD8
  8827. Fpad1 TCARD16
  8828. }
  8829. type TxChangeKeyboardControlReq = struct {
  8830. FreqType TCARD8
  8831. Fpad TBYTE
  8832. Flength TCARD16
  8833. Fmask TCARD32
  8834. }
  8835. type TxBellReq = struct {
  8836. FreqType TCARD8
  8837. Fpercent TINT8
  8838. Flength TCARD16
  8839. }
  8840. type TxChangePointerControlReq = struct {
  8841. FreqType TCARD8
  8842. Fpad TBYTE
  8843. Flength TCARD16
  8844. FaccelNum TINT16
  8845. FaccelDenum TINT16
  8846. Fthreshold TINT16
  8847. FdoAccel TBOOL
  8848. FdoThresh TBOOL
  8849. }
  8850. type TxSetScreenSaverReq = struct {
  8851. FreqType TCARD8
  8852. Fpad TBYTE
  8853. Flength TCARD16
  8854. Ftimeout TINT16
  8855. Finterval TINT16
  8856. FpreferBlank TBYTE
  8857. FallowExpose TBYTE
  8858. Fpad2 TCARD16
  8859. }
  8860. type TxChangeHostsReq = struct {
  8861. FreqType TCARD8
  8862. Fmode TBYTE
  8863. Flength TCARD16
  8864. FhostFamily TCARD8
  8865. Fpad TBYTE
  8866. FhostLength TCARD16
  8867. }
  8868. type TxListHostsReq = struct {
  8869. FreqType TCARD8
  8870. Fpad TBYTE
  8871. Flength TCARD16
  8872. }
  8873. type TxChangeModeReq = struct {
  8874. FreqType TCARD8
  8875. Fmode TBYTE
  8876. Flength TCARD16
  8877. }
  8878. type TxSetAccessControlReq = struct {
  8879. FreqType TCARD8
  8880. Fmode TBYTE
  8881. Flength TCARD16
  8882. }
  8883. type TxSetCloseDownModeReq = struct {
  8884. FreqType TCARD8
  8885. Fmode TBYTE
  8886. Flength TCARD16
  8887. }
  8888. type TxForceScreenSaverReq = struct {
  8889. FreqType TCARD8
  8890. Fmode TBYTE
  8891. Flength TCARD16
  8892. }
  8893. type TxRotatePropertiesReq = struct {
  8894. FreqType TCARD8
  8895. Fpad TBYTE
  8896. Flength TCARD16
  8897. Fwindow TCARD32
  8898. FnAtoms TCARD16
  8899. FnPositions TINT16
  8900. }
  8901. type Tsched_param = struct {
  8902. Fsched_priority int32
  8903. F__opaque [4]int8
  8904. }
  8905. type Ttimespec = struct {
  8906. Ftv_sec t__darwin_time_t
  8907. Ftv_nsec int64
  8908. }
  8909. type Ttm = struct {
  8910. Ftm_sec int32
  8911. Ftm_min int32
  8912. Ftm_hour int32
  8913. Ftm_mday int32
  8914. Ftm_mon int32
  8915. Ftm_year int32
  8916. Ftm_wday int32
  8917. Ftm_yday int32
  8918. Ftm_isdst int32
  8919. Ftm_gmtoff int64
  8920. Ftm_zone uintptr
  8921. } //TODO "timezone" // time.h:103:13:
  8922. type Tclockid_t = int32
  8923. const __CLOCK_REALTIME = 0
  8924. const __CLOCK_MONOTONIC = 6
  8925. const __CLOCK_MONOTONIC_RAW = 4
  8926. const __CLOCK_MONOTONIC_RAW_APPROX = 5
  8927. const __CLOCK_UPTIME_RAW = 8
  8928. const __CLOCK_UPTIME_RAW_APPROX = 9
  8929. const __CLOCK_PROCESS_CPUTIME_ID = 12
  8930. const __CLOCK_THREAD_CPUTIME_ID = 16
  8931. const _QOS_CLASS_USER_INTERACTIVE = 33
  8932. const _QOS_CLASS_USER_INITIATED = 25
  8933. const _QOS_CLASS_DEFAULT = 21
  8934. const _QOS_CLASS_UTILITY = 17
  8935. const _QOS_CLASS_BACKGROUND = 9
  8936. const _QOS_CLASS_UNSPECIFIED = 0
  8937. type Tqos_class_t = uint32
  8938. type Tpthread_override_t = uintptr
  8939. type Tmach_port_t = uint32
  8940. type Tpthread_jit_write_callback_t = uintptr
  8941. type Txthread_t = uintptr
  8942. type Txthread_key_t = uint64
  8943. type Txcondition_rec = struct {
  8944. F__sig int64
  8945. F__opaque [40]int8
  8946. }
  8947. type Txmutex_rec = struct {
  8948. F__sig int64
  8949. F__opaque [56]int8
  8950. }
  8951. type Txcondition_t = uintptr
  8952. type Txmutex_t = uintptr
  8953. type T_XQEvent = struct {
  8954. Fnext uintptr
  8955. Fevent TXEvent
  8956. Fqserial_num uint64
  8957. }
  8958. type T_XSQEvent = T_XQEvent
  8959. type TLockInfoPtr = uintptr
  8960. type T_XLockPtrs = struct {
  8961. Flock_display uintptr
  8962. Funlock_display uintptr
  8963. }
  8964. type T_XAsyncHandler = struct {
  8965. Fnext uintptr
  8966. Fhandler uintptr
  8967. Fdata TXPointer
  8968. }
  8969. type T_XInternalAsync = T_XAsyncHandler
  8970. type T_XAsyncErrorState = struct {
  8971. Fmin_sequence_number uint64
  8972. Fmax_sequence_number uint64
  8973. Ferror_code uint8
  8974. Fmajor_opcode uint8
  8975. Fminor_opcode uint16
  8976. Flast_error_received uint8
  8977. Ferror_count int32
  8978. }
  8979. type T_XAsyncEState = T_XAsyncErrorState
  8980. type TFreeFuncType = uintptr
  8981. type TFreeModmapType = uintptr
  8982. type T_XFreeFuncRec = struct {
  8983. Fatoms TFreeFuncType
  8984. Fmodifiermap TFreeModmapType
  8985. Fkey_bindings TFreeFuncType
  8986. Fcontext_db TFreeFuncType
  8987. FdefaultCCCs TFreeFuncType
  8988. FclientCmaps TFreeFuncType
  8989. FintensityMaps TFreeFuncType
  8990. Fim_filters TFreeFuncType
  8991. Fxkb TFreeFuncType
  8992. }
  8993. type T_XFreeFuncs = T_XFreeFuncRec
  8994. type TCreateGCType = uintptr
  8995. type TCopyGCType = uintptr
  8996. type TFlushGCType = uintptr
  8997. type TFreeGCType = uintptr
  8998. type TCreateFontType = uintptr
  8999. type TFreeFontType = uintptr
  9000. type TCloseDisplayType = uintptr
  9001. type TErrorType = uintptr
  9002. type TErrorStringType = uintptr
  9003. type TPrintErrorType = uintptr
  9004. type TBeforeFlushType = uintptr
  9005. type T_XExtension = struct {
  9006. Fnext uintptr
  9007. Fcodes TXExtCodes
  9008. Fcreate_GC TCreateGCType
  9009. Fcopy_GC TCopyGCType
  9010. Fflush_GC TFlushGCType
  9011. Ffree_GC TFreeGCType
  9012. Fcreate_Font TCreateFontType
  9013. Ffree_Font TFreeFontType
  9014. Fclose_display TCloseDisplayType
  9015. Ferror1 TErrorType
  9016. Ferror_string TErrorStringType
  9017. Fname uintptr
  9018. Ferror_values TPrintErrorType
  9019. Fbefore_flush TBeforeFlushType
  9020. Fnext_flush uintptr
  9021. }
  9022. type T_XExten = T_XExtension
  9023. type T_XInternalConnectionProc = uintptr
  9024. type T_XConnectionInfo = struct {
  9025. Ffd int32
  9026. Fread_callback T_XInternalConnectionProc
  9027. Fcall_data TXPointer
  9028. Fwatch_data uintptr
  9029. Fnext uintptr
  9030. }
  9031. type T_XConnWatchInfo = struct {
  9032. Ffn TXConnectionWatchProc
  9033. Fclient_data TXPointer
  9034. Fnext uintptr
  9035. }
  9036. type t__gnuc_va_list = uintptr
  9037. type Tjmp_buf = [37]int32
  9038. type Tsigjmp_buf = [38]int32
  9039. type TFT_Int16 = int16
  9040. type TFT_UInt16 = uint16
  9041. type TFT_Int32 = int32
  9042. type TFT_UInt32 = uint32
  9043. type TFT_Fast = int32
  9044. type TFT_UFast = uint32
  9045. type TFT_Int64 = int64
  9046. type TFT_UInt64 = uint64
  9047. type TFT_Memory = uintptr
  9048. type TFT_MemoryRec_ = struct {
  9049. Fuser uintptr
  9050. Falloc TFT_Alloc_Func
  9051. Ffree TFT_Free_Func
  9052. Frealloc TFT_Realloc_Func
  9053. }
  9054. type TFT_Alloc_Func = uintptr
  9055. type TFT_Free_Func = uintptr
  9056. type TFT_Realloc_Func = uintptr
  9057. type TFT_Stream = uintptr
  9058. type TFT_StreamRec_ = struct {
  9059. Fbase uintptr
  9060. Fsize uint64
  9061. Fpos uint64
  9062. Fdescriptor TFT_StreamDesc
  9063. Fpathname TFT_StreamDesc
  9064. Fread TFT_Stream_IoFunc
  9065. Fclose1 TFT_Stream_CloseFunc
  9066. Fmemory TFT_Memory
  9067. Fcursor uintptr
  9068. Flimit uintptr
  9069. }
  9070. type TFT_StreamDesc = struct {
  9071. Fpointer [0]uintptr
  9072. Fvalue int64
  9073. }
  9074. type TFT_StreamDesc_ = TFT_StreamDesc
  9075. type TFT_Stream_IoFunc = uintptr
  9076. type TFT_Stream_CloseFunc = uintptr
  9077. type TFT_StreamRec = struct {
  9078. Fbase uintptr
  9079. Fsize uint64
  9080. Fpos uint64
  9081. Fdescriptor TFT_StreamDesc
  9082. Fpathname TFT_StreamDesc
  9083. Fread TFT_Stream_IoFunc
  9084. Fclose1 TFT_Stream_CloseFunc
  9085. Fmemory TFT_Memory
  9086. Fcursor uintptr
  9087. Flimit uintptr
  9088. }
  9089. type TFT_Pos = int64
  9090. type TFT_Vector = struct {
  9091. Fx TFT_Pos
  9092. Fy TFT_Pos
  9093. }
  9094. type TFT_Vector_ = TFT_Vector
  9095. type TFT_BBox = struct {
  9096. FxMin TFT_Pos
  9097. FyMin TFT_Pos
  9098. FxMax TFT_Pos
  9099. FyMax TFT_Pos
  9100. }
  9101. type TFT_BBox_ = TFT_BBox
  9102. type TFT_Pixel_Mode = int32
  9103. type _FT_Pixel_Mode_ = int32
  9104. const _FT_PIXEL_MODE_NONE = 0
  9105. const _FT_PIXEL_MODE_MONO = 1
  9106. const _FT_PIXEL_MODE_GRAY = 2
  9107. const _FT_PIXEL_MODE_GRAY2 = 3
  9108. const _FT_PIXEL_MODE_GRAY4 = 4
  9109. const _FT_PIXEL_MODE_LCD = 5
  9110. const _FT_PIXEL_MODE_LCD_V = 6
  9111. const _FT_PIXEL_MODE_BGRA = 7
  9112. const _FT_PIXEL_MODE_MAX = 8
  9113. type TFT_Bitmap = struct {
  9114. Frows uint32
  9115. Fwidth uint32
  9116. Fpitch int32
  9117. Fbuffer uintptr
  9118. Fnum_grays uint16
  9119. Fpixel_mode uint8
  9120. Fpalette_mode uint8
  9121. Fpalette uintptr
  9122. }
  9123. type TFT_Bitmap_ = TFT_Bitmap
  9124. type TFT_Outline = struct {
  9125. Fn_contours int16
  9126. Fn_points int16
  9127. Fpoints uintptr
  9128. Ftags uintptr
  9129. Fcontours uintptr
  9130. Fflags int32
  9131. }
  9132. type TFT_Outline_ = TFT_Outline
  9133. type TFT_Outline_MoveToFunc = uintptr
  9134. type TFT_Outline_LineToFunc = uintptr
  9135. type TFT_Outline_ConicToFunc = uintptr
  9136. type TFT_Outline_CubicToFunc = uintptr
  9137. type TFT_Outline_Funcs = struct {
  9138. Fmove_to TFT_Outline_MoveToFunc
  9139. Fline_to TFT_Outline_LineToFunc
  9140. Fconic_to TFT_Outline_ConicToFunc
  9141. Fcubic_to TFT_Outline_CubicToFunc
  9142. Fshift int32
  9143. Fdelta TFT_Pos
  9144. }
  9145. type TFT_Outline_Funcs_ = TFT_Outline_Funcs
  9146. type TFT_Glyph_Format = int32
  9147. type _FT_Glyph_Format_ = int32
  9148. const _FT_GLYPH_FORMAT_NONE = 0
  9149. const _FT_GLYPH_FORMAT_COMPOSITE = 1668246896
  9150. const _FT_GLYPH_FORMAT_BITMAP = 1651078259
  9151. const _FT_GLYPH_FORMAT_OUTLINE = 1869968492
  9152. const _FT_GLYPH_FORMAT_PLOTTER = 1886154612
  9153. type TFT_Raster = uintptr
  9154. type TFT_Span = struct {
  9155. Fx int16
  9156. Flen1 uint16
  9157. Fcoverage uint8
  9158. }
  9159. type TFT_Span_ = TFT_Span
  9160. type TFT_SpanFunc = uintptr
  9161. type TFT_Raster_BitTest_Func = uintptr
  9162. type TFT_Raster_BitSet_Func = uintptr
  9163. type TFT_Raster_Params = struct {
  9164. Ftarget uintptr
  9165. Fsource uintptr
  9166. Fflags int32
  9167. Fgray_spans TFT_SpanFunc
  9168. Fblack_spans TFT_SpanFunc
  9169. Fbit_test TFT_Raster_BitTest_Func
  9170. Fbit_set TFT_Raster_BitSet_Func
  9171. Fuser uintptr
  9172. Fclip_box TFT_BBox
  9173. }
  9174. type TFT_Raster_Params_ = TFT_Raster_Params
  9175. type TFT_Raster_NewFunc = uintptr
  9176. type TFT_Raster_DoneFunc = uintptr
  9177. type TFT_Raster_ResetFunc = uintptr
  9178. type TFT_Raster_SetModeFunc = uintptr
  9179. type TFT_Raster_RenderFunc = uintptr
  9180. type TFT_Raster_Funcs = struct {
  9181. Fglyph_format TFT_Glyph_Format
  9182. Fraster_new TFT_Raster_NewFunc
  9183. Fraster_reset TFT_Raster_ResetFunc
  9184. Fraster_set_mode TFT_Raster_SetModeFunc
  9185. Fraster_render TFT_Raster_RenderFunc
  9186. Fraster_done TFT_Raster_DoneFunc
  9187. }
  9188. type TFT_Raster_Funcs_ = TFT_Raster_Funcs
  9189. type TFT_Bool = uint8
  9190. type TFT_FWord = int16
  9191. type TFT_UFWord = uint16
  9192. type TFT_Char = int8
  9193. type TFT_Byte = uint8
  9194. type TFT_Bytes = uintptr
  9195. type TFT_Tag = uint32
  9196. type TFT_String = int8
  9197. type TFT_Short = int16
  9198. type TFT_UShort = uint16
  9199. type TFT_Int = int32
  9200. type TFT_UInt = uint32
  9201. type TFT_Long = int64
  9202. type TFT_ULong = uint64
  9203. type TFT_F2Dot14 = int16
  9204. type TFT_F26Dot6 = int64
  9205. type TFT_Fixed = int64
  9206. type TFT_Error = int32
  9207. type TFT_Pointer = uintptr
  9208. type TFT_Offset = uint64
  9209. type TFT_PtrDist = int64
  9210. type TFT_UnitVector = struct {
  9211. Fx TFT_F2Dot14
  9212. Fy TFT_F2Dot14
  9213. }
  9214. type TFT_UnitVector_ = TFT_UnitVector
  9215. type TFT_Matrix = struct {
  9216. Fxx TFT_Fixed
  9217. Fxy TFT_Fixed
  9218. Fyx TFT_Fixed
  9219. Fyy TFT_Fixed
  9220. }
  9221. type TFT_Matrix_ = TFT_Matrix
  9222. type TFT_Data = struct {
  9223. Fpointer uintptr
  9224. Flength TFT_Int
  9225. }
  9226. type TFT_Data_ = TFT_Data
  9227. type TFT_Generic_Finalizer = uintptr
  9228. type TFT_Generic = struct {
  9229. Fdata uintptr
  9230. Ffinalizer TFT_Generic_Finalizer
  9231. }
  9232. type TFT_Generic_ = TFT_Generic
  9233. type TFT_ListNode = uintptr
  9234. type TFT_ListNodeRec_ = struct {
  9235. Fprev TFT_ListNode
  9236. Fnext TFT_ListNode
  9237. Fdata uintptr
  9238. }
  9239. type TFT_List = uintptr
  9240. type TFT_ListRec_ = struct {
  9241. Fhead TFT_ListNode
  9242. Ftail TFT_ListNode
  9243. }
  9244. type TFT_ListNodeRec = struct {
  9245. Fprev TFT_ListNode
  9246. Fnext TFT_ListNode
  9247. Fdata uintptr
  9248. }
  9249. type TFT_ListRec = struct {
  9250. Fhead TFT_ListNode
  9251. Ftail TFT_ListNode
  9252. }
  9253. const _FT_Mod_Err_Base = 0
  9254. const _FT_Mod_Err_Autofit = 0
  9255. const _FT_Mod_Err_BDF = 0
  9256. const _FT_Mod_Err_Bzip2 = 0
  9257. const _FT_Mod_Err_Cache = 0
  9258. const _FT_Mod_Err_CFF = 0
  9259. const _FT_Mod_Err_CID = 0
  9260. const _FT_Mod_Err_Gzip = 0
  9261. const _FT_Mod_Err_LZW = 0
  9262. const _FT_Mod_Err_OTvalid = 0
  9263. const _FT_Mod_Err_PCF = 0
  9264. const _FT_Mod_Err_PFR = 0
  9265. const _FT_Mod_Err_PSaux = 0
  9266. const _FT_Mod_Err_PShinter = 0
  9267. const _FT_Mod_Err_PSnames = 0
  9268. const _FT_Mod_Err_Raster = 0
  9269. const _FT_Mod_Err_SFNT = 0
  9270. const _FT_Mod_Err_Smooth = 0
  9271. const _FT_Mod_Err_TrueType = 0
  9272. const _FT_Mod_Err_Type1 = 0
  9273. const _FT_Mod_Err_Type42 = 0
  9274. const _FT_Mod_Err_Winfonts = 0
  9275. const _FT_Mod_Err_GXvalid = 0
  9276. const _FT_Mod_Err_Max = 1
  9277. const _FT_Err_Ok = 0
  9278. const _FT_Err_Cannot_Open_Resource = 1
  9279. const _FT_Err_Unknown_File_Format = 2
  9280. const _FT_Err_Invalid_File_Format = 3
  9281. const _FT_Err_Invalid_Version = 4
  9282. const _FT_Err_Lower_Module_Version = 5
  9283. const _FT_Err_Invalid_Argument = 6
  9284. const _FT_Err_Unimplemented_Feature = 7
  9285. const _FT_Err_Invalid_Table = 8
  9286. const _FT_Err_Invalid_Offset = 9
  9287. const _FT_Err_Array_Too_Large = 10
  9288. const _FT_Err_Missing_Module = 11
  9289. const _FT_Err_Missing_Property = 12
  9290. const _FT_Err_Invalid_Glyph_Index = 16
  9291. const _FT_Err_Invalid_Character_Code = 17
  9292. const _FT_Err_Invalid_Glyph_Format = 18
  9293. const _FT_Err_Cannot_Render_Glyph = 19
  9294. const _FT_Err_Invalid_Outline = 20
  9295. const _FT_Err_Invalid_Composite = 21
  9296. const _FT_Err_Too_Many_Hints = 22
  9297. const _FT_Err_Invalid_Pixel_Size = 23
  9298. const _FT_Err_Invalid_Handle = 32
  9299. const _FT_Err_Invalid_Library_Handle = 33
  9300. const _FT_Err_Invalid_Driver_Handle = 34
  9301. const _FT_Err_Invalid_Face_Handle = 35
  9302. const _FT_Err_Invalid_Size_Handle = 36
  9303. const _FT_Err_Invalid_Slot_Handle = 37
  9304. const _FT_Err_Invalid_CharMap_Handle = 38
  9305. const _FT_Err_Invalid_Cache_Handle = 39
  9306. const _FT_Err_Invalid_Stream_Handle = 40
  9307. const _FT_Err_Too_Many_Drivers = 48
  9308. const _FT_Err_Too_Many_Extensions = 49
  9309. const _FT_Err_Out_Of_Memory = 64
  9310. const _FT_Err_Unlisted_Object = 65
  9311. const _FT_Err_Cannot_Open_Stream = 81
  9312. const _FT_Err_Invalid_Stream_Seek = 82
  9313. const _FT_Err_Invalid_Stream_Skip = 83
  9314. const _FT_Err_Invalid_Stream_Read = 84
  9315. const _FT_Err_Invalid_Stream_Operation = 85
  9316. const _FT_Err_Invalid_Frame_Operation = 86
  9317. const _FT_Err_Nested_Frame_Access = 87
  9318. const _FT_Err_Invalid_Frame_Read = 88
  9319. const _FT_Err_Raster_Uninitialized = 96
  9320. const _FT_Err_Raster_Corrupted = 97
  9321. const _FT_Err_Raster_Overflow = 98
  9322. const _FT_Err_Raster_Negative_Height = 99
  9323. const _FT_Err_Too_Many_Caches = 112
  9324. const _FT_Err_Invalid_Opcode = 128
  9325. const _FT_Err_Too_Few_Arguments = 129
  9326. const _FT_Err_Stack_Overflow = 130
  9327. const _FT_Err_Code_Overflow = 131
  9328. const _FT_Err_Bad_Argument = 132
  9329. const _FT_Err_Divide_By_Zero = 133
  9330. const _FT_Err_Invalid_Reference = 134
  9331. const _FT_Err_Debug_OpCode = 135
  9332. const _FT_Err_ENDF_In_Exec_Stream = 136
  9333. const _FT_Err_Nested_DEFS = 137
  9334. const _FT_Err_Invalid_CodeRange = 138
  9335. const _FT_Err_Execution_Too_Long = 139
  9336. const _FT_Err_Too_Many_Function_Defs = 140
  9337. const _FT_Err_Too_Many_Instruction_Defs = 141
  9338. const _FT_Err_Table_Missing = 142
  9339. const _FT_Err_Horiz_Header_Missing = 143
  9340. const _FT_Err_Locations_Missing = 144
  9341. const _FT_Err_Name_Table_Missing = 145
  9342. const _FT_Err_CMap_Table_Missing = 146
  9343. const _FT_Err_Hmtx_Table_Missing = 147
  9344. const _FT_Err_Post_Table_Missing = 148
  9345. const _FT_Err_Invalid_Horiz_Metrics = 149
  9346. const _FT_Err_Invalid_CharMap_Format = 150
  9347. const _FT_Err_Invalid_PPem = 151
  9348. const _FT_Err_Invalid_Vert_Metrics = 152
  9349. const _FT_Err_Could_Not_Find_Context = 153
  9350. const _FT_Err_Invalid_Post_Table_Format = 154
  9351. const _FT_Err_Invalid_Post_Table = 155
  9352. const _FT_Err_DEF_In_Glyf_Bytecode = 156
  9353. const _FT_Err_Missing_Bitmap = 157
  9354. const _FT_Err_Syntax_Error = 160
  9355. const _FT_Err_Stack_Underflow = 161
  9356. const _FT_Err_Ignore = 162
  9357. const _FT_Err_No_Unicode_Glyph_Name = 163
  9358. const _FT_Err_Glyph_Too_Big = 164
  9359. const _FT_Err_Missing_Startfont_Field = 176
  9360. const _FT_Err_Missing_Font_Field = 177
  9361. const _FT_Err_Missing_Size_Field = 178
  9362. const _FT_Err_Missing_Fontboundingbox_Field = 179
  9363. const _FT_Err_Missing_Chars_Field = 180
  9364. const _FT_Err_Missing_Startchar_Field = 181
  9365. const _FT_Err_Missing_Encoding_Field = 182
  9366. const _FT_Err_Missing_Bbx_Field = 183
  9367. const _FT_Err_Bbx_Too_Big = 184
  9368. const _FT_Err_Corrupted_Font_Header = 185
  9369. const _FT_Err_Corrupted_Font_Glyphs = 186
  9370. const _FT_Err_Max = 187
  9371. type TFT_Glyph_Metrics = struct {
  9372. Fwidth TFT_Pos
  9373. Fheight TFT_Pos
  9374. FhoriBearingX TFT_Pos
  9375. FhoriBearingY TFT_Pos
  9376. FhoriAdvance TFT_Pos
  9377. FvertBearingX TFT_Pos
  9378. FvertBearingY TFT_Pos
  9379. FvertAdvance TFT_Pos
  9380. }
  9381. type TFT_Glyph_Metrics_ = TFT_Glyph_Metrics
  9382. type TFT_Bitmap_Size = struct {
  9383. Fheight TFT_Short
  9384. Fwidth TFT_Short
  9385. Fsize TFT_Pos
  9386. Fx_ppem TFT_Pos
  9387. Fy_ppem TFT_Pos
  9388. }
  9389. type TFT_Bitmap_Size_ = TFT_Bitmap_Size
  9390. type TFT_Library = uintptr
  9391. type TFT_Module = uintptr
  9392. type TFT_Driver = uintptr
  9393. type TFT_Renderer = uintptr
  9394. type TFT_Face = uintptr
  9395. type TFT_FaceRec_ = struct {
  9396. Fnum_faces TFT_Long
  9397. Fface_index TFT_Long
  9398. Fface_flags TFT_Long
  9399. Fstyle_flags TFT_Long
  9400. Fnum_glyphs TFT_Long
  9401. Ffamily_name uintptr
  9402. Fstyle_name uintptr
  9403. Fnum_fixed_sizes TFT_Int
  9404. Favailable_sizes uintptr
  9405. Fnum_charmaps TFT_Int
  9406. Fcharmaps uintptr
  9407. Fgeneric TFT_Generic
  9408. Fbbox TFT_BBox
  9409. Funits_per_EM TFT_UShort
  9410. Fascender TFT_Short
  9411. Fdescender TFT_Short
  9412. Fheight TFT_Short
  9413. Fmax_advance_width TFT_Short
  9414. Fmax_advance_height TFT_Short
  9415. Funderline_position TFT_Short
  9416. Funderline_thickness TFT_Short
  9417. Fglyph TFT_GlyphSlot
  9418. Fsize TFT_Size
  9419. Fcharmap TFT_CharMap
  9420. Fdriver TFT_Driver
  9421. Fmemory TFT_Memory
  9422. Fstream TFT_Stream
  9423. Fsizes_list TFT_ListRec
  9424. Fautohint TFT_Generic
  9425. Fextensions uintptr
  9426. Finternal TFT_Face_Internal
  9427. }
  9428. type TFT_Size = uintptr
  9429. type TFT_SizeRec_ = struct {
  9430. Fface TFT_Face
  9431. Fgeneric TFT_Generic
  9432. Fmetrics TFT_Size_Metrics
  9433. Finternal TFT_Size_Internal
  9434. }
  9435. type TFT_GlyphSlot = uintptr
  9436. type TFT_GlyphSlotRec_ = struct {
  9437. Flibrary TFT_Library
  9438. Fface TFT_Face
  9439. Fnext TFT_GlyphSlot
  9440. Fglyph_index TFT_UInt
  9441. Fgeneric TFT_Generic
  9442. Fmetrics TFT_Glyph_Metrics
  9443. FlinearHoriAdvance TFT_Fixed
  9444. FlinearVertAdvance TFT_Fixed
  9445. Fadvance TFT_Vector
  9446. Fformat TFT_Glyph_Format
  9447. Fbitmap TFT_Bitmap
  9448. Fbitmap_left TFT_Int
  9449. Fbitmap_top TFT_Int
  9450. Foutline TFT_Outline
  9451. Fnum_subglyphs TFT_UInt
  9452. Fsubglyphs TFT_SubGlyph
  9453. Fcontrol_data uintptr
  9454. Fcontrol_len int64
  9455. Flsb_delta TFT_Pos
  9456. Frsb_delta TFT_Pos
  9457. Fother uintptr
  9458. Finternal TFT_Slot_Internal
  9459. }
  9460. type TFT_CharMap = uintptr
  9461. type TFT_CharMapRec_ = struct {
  9462. Fface TFT_Face
  9463. Fencoding TFT_Encoding
  9464. Fplatform_id TFT_UShort
  9465. Fencoding_id TFT_UShort
  9466. }
  9467. type _FT_Encoding_ = int32
  9468. const _FT_ENCODING_NONE = 0
  9469. const _FT_ENCODING_MS_SYMBOL = 1937337698
  9470. const _FT_ENCODING_UNICODE = 1970170211
  9471. const _FT_ENCODING_SJIS = 1936353651
  9472. const _FT_ENCODING_PRC = 1734484000
  9473. const _FT_ENCODING_BIG5 = 1651074869
  9474. const _FT_ENCODING_WANSUNG = 2002873971
  9475. const _FT_ENCODING_JOHAB = 1785686113
  9476. const _FT_ENCODING_GB2312 = 1734484000
  9477. const _FT_ENCODING_MS_SJIS = 1936353651
  9478. const _FT_ENCODING_MS_GB2312 = 1734484000
  9479. const _FT_ENCODING_MS_BIG5 = 1651074869
  9480. const _FT_ENCODING_MS_WANSUNG = 2002873971
  9481. const _FT_ENCODING_MS_JOHAB = 1785686113
  9482. const _FT_ENCODING_ADOBE_STANDARD = 1094995778
  9483. const _FT_ENCODING_ADOBE_EXPERT = 1094992453
  9484. const _FT_ENCODING_ADOBE_CUSTOM = 1094992451
  9485. const _FT_ENCODING_ADOBE_LATIN_1 = 1818326065
  9486. const _FT_ENCODING_OLD_LATIN_2 = 1818326066
  9487. const _FT_ENCODING_APPLE_ROMAN = 1634889070
  9488. type TFT_Encoding = int32
  9489. type TFT_CharMapRec = struct {
  9490. Fface TFT_Face
  9491. Fencoding TFT_Encoding
  9492. Fplatform_id TFT_UShort
  9493. Fencoding_id TFT_UShort
  9494. }
  9495. type TFT_Face_Internal = uintptr
  9496. type TFT_FaceRec = struct {
  9497. Fnum_faces TFT_Long
  9498. Fface_index TFT_Long
  9499. Fface_flags TFT_Long
  9500. Fstyle_flags TFT_Long
  9501. Fnum_glyphs TFT_Long
  9502. Ffamily_name uintptr
  9503. Fstyle_name uintptr
  9504. Fnum_fixed_sizes TFT_Int
  9505. Favailable_sizes uintptr
  9506. Fnum_charmaps TFT_Int
  9507. Fcharmaps uintptr
  9508. Fgeneric TFT_Generic
  9509. Fbbox TFT_BBox
  9510. Funits_per_EM TFT_UShort
  9511. Fascender TFT_Short
  9512. Fdescender TFT_Short
  9513. Fheight TFT_Short
  9514. Fmax_advance_width TFT_Short
  9515. Fmax_advance_height TFT_Short
  9516. Funderline_position TFT_Short
  9517. Funderline_thickness TFT_Short
  9518. Fglyph TFT_GlyphSlot
  9519. Fsize TFT_Size
  9520. Fcharmap TFT_CharMap
  9521. Fdriver TFT_Driver
  9522. Fmemory TFT_Memory
  9523. Fstream TFT_Stream
  9524. Fsizes_list TFT_ListRec
  9525. Fautohint TFT_Generic
  9526. Fextensions uintptr
  9527. Finternal TFT_Face_Internal
  9528. }
  9529. type TFT_Size_Internal = uintptr
  9530. type TFT_Size_Metrics = struct {
  9531. Fx_ppem TFT_UShort
  9532. Fy_ppem TFT_UShort
  9533. Fx_scale TFT_Fixed
  9534. Fy_scale TFT_Fixed
  9535. Fascender TFT_Pos
  9536. Fdescender TFT_Pos
  9537. Fheight TFT_Pos
  9538. Fmax_advance TFT_Pos
  9539. }
  9540. type TFT_Size_Metrics_ = TFT_Size_Metrics
  9541. type TFT_SizeRec = struct {
  9542. Fface TFT_Face
  9543. Fgeneric TFT_Generic
  9544. Fmetrics TFT_Size_Metrics
  9545. Finternal TFT_Size_Internal
  9546. }
  9547. type TFT_SubGlyph = uintptr
  9548. type TFT_Slot_Internal = uintptr
  9549. type TFT_GlyphSlotRec = struct {
  9550. Flibrary TFT_Library
  9551. Fface TFT_Face
  9552. Fnext TFT_GlyphSlot
  9553. Fglyph_index TFT_UInt
  9554. Fgeneric TFT_Generic
  9555. Fmetrics TFT_Glyph_Metrics
  9556. FlinearHoriAdvance TFT_Fixed
  9557. FlinearVertAdvance TFT_Fixed
  9558. Fadvance TFT_Vector
  9559. Fformat TFT_Glyph_Format
  9560. Fbitmap TFT_Bitmap
  9561. Fbitmap_left TFT_Int
  9562. Fbitmap_top TFT_Int
  9563. Foutline TFT_Outline
  9564. Fnum_subglyphs TFT_UInt
  9565. Fsubglyphs TFT_SubGlyph
  9566. Fcontrol_data uintptr
  9567. Fcontrol_len int64
  9568. Flsb_delta TFT_Pos
  9569. Frsb_delta TFT_Pos
  9570. Fother uintptr
  9571. Finternal TFT_Slot_Internal
  9572. }
  9573. type TFT_Parameter = struct {
  9574. Ftag TFT_ULong
  9575. Fdata TFT_Pointer
  9576. }
  9577. type TFT_Parameter_ = TFT_Parameter
  9578. type TFT_Open_Args = struct {
  9579. Fflags TFT_UInt
  9580. Fmemory_base uintptr
  9581. Fmemory_size TFT_Long
  9582. Fpathname uintptr
  9583. Fstream TFT_Stream
  9584. Fdriver TFT_Module
  9585. Fnum_params TFT_Int
  9586. Fparams uintptr
  9587. }
  9588. type TFT_Open_Args_ = TFT_Open_Args
  9589. type TFT_Size_Request_Type = int32
  9590. type _FT_Size_Request_Type_ = int32
  9591. const _FT_SIZE_REQUEST_TYPE_NOMINAL = 0
  9592. const _FT_SIZE_REQUEST_TYPE_REAL_DIM = 1
  9593. const _FT_SIZE_REQUEST_TYPE_BBOX = 2
  9594. const _FT_SIZE_REQUEST_TYPE_CELL = 3
  9595. const _FT_SIZE_REQUEST_TYPE_SCALES = 4
  9596. const _FT_SIZE_REQUEST_TYPE_MAX = 5
  9597. type TFT_Size_RequestRec = struct {
  9598. Ftype1 TFT_Size_Request_Type
  9599. Fwidth TFT_Long
  9600. Fheight TFT_Long
  9601. FhoriResolution TFT_UInt
  9602. FvertResolution TFT_UInt
  9603. }
  9604. type TFT_Size_RequestRec_ = TFT_Size_RequestRec
  9605. type TFT_Size_Request = uintptr
  9606. type TFT_Render_Mode = int32
  9607. type _FT_Render_Mode_ = int32
  9608. const _FT_RENDER_MODE_NORMAL = 0
  9609. const _FT_RENDER_MODE_LIGHT = 1
  9610. const _FT_RENDER_MODE_MONO = 2
  9611. const _FT_RENDER_MODE_LCD = 3
  9612. const _FT_RENDER_MODE_LCD_V = 4
  9613. const _FT_RENDER_MODE_MAX = 5
  9614. type TFT_Kerning_Mode = int32
  9615. type _FT_Kerning_Mode_ = int32
  9616. const _FT_KERNING_DEFAULT = 0
  9617. const _FT_KERNING_UNFITTED = 1
  9618. const _FT_KERNING_UNSCALED = 2
  9619. type TFT_LayerIterator = struct {
  9620. Fnum_layers TFT_UInt
  9621. Flayer TFT_UInt
  9622. Fp uintptr
  9623. }
  9624. type TFT_LayerIterator_ = TFT_LayerIterator
  9625. type Tostat = struct {
  9626. Fst_dev t__uint16_t
  9627. Fst_ino Tino_t
  9628. Fst_mode Tmode_t
  9629. Fst_nlink Tnlink_t
  9630. Fst_uid t__uint16_t
  9631. Fst_gid t__uint16_t
  9632. Fst_rdev t__uint16_t
  9633. Fst_size t__int32_t
  9634. Fst_atimespec Ttimespec
  9635. Fst_mtimespec Ttimespec
  9636. Fst_ctimespec Ttimespec
  9637. Fst_blksize t__int32_t
  9638. Fst_blocks t__int32_t
  9639. Fst_flags t__uint32_t
  9640. Fst_gen t__uint32_t
  9641. }
  9642. type Tstat = struct {
  9643. Fst_dev Tdev_t
  9644. Fst_mode Tmode_t
  9645. Fst_nlink Tnlink_t
  9646. Fst_ino t__darwin_ino64_t
  9647. Fst_uid Tuid_t
  9648. Fst_gid Tgid_t
  9649. Fst_rdev Tdev_t
  9650. Fst_atimespec Ttimespec
  9651. Fst_mtimespec Ttimespec
  9652. Fst_ctimespec Ttimespec
  9653. Fst_birthtimespec Ttimespec
  9654. Fst_size Toff_t
  9655. Fst_blocks Tblkcnt_t
  9656. Fst_blksize Tblksize_t
  9657. Fst_flags t__uint32_t
  9658. Fst_gen t__uint32_t
  9659. Fst_lspare t__int32_t
  9660. Fst_qspare [2]t__int64_t
  9661. }
  9662. type Tstat64 = struct {
  9663. Fst_dev Tdev_t
  9664. Fst_mode Tmode_t
  9665. Fst_nlink Tnlink_t
  9666. Fst_ino t__darwin_ino64_t
  9667. Fst_uid Tuid_t
  9668. Fst_gid Tgid_t
  9669. Fst_rdev Tdev_t
  9670. Fst_atimespec Ttimespec
  9671. Fst_mtimespec Ttimespec
  9672. Fst_ctimespec Ttimespec
  9673. Fst_birthtimespec Ttimespec
  9674. Fst_size Toff_t
  9675. Fst_blocks Tblkcnt_t
  9676. Fst_blksize Tblksize_t
  9677. Fst_flags t__uint32_t
  9678. Fst_gen t__uint32_t
  9679. Fst_lspare t__int32_t
  9680. Fst_qspare [2]t__int64_t
  9681. }
  9682. type Tfilesec_t = uintptr
  9683. type TFcChar8 = uint8
  9684. type TFcChar16 = uint16
  9685. type TFcChar32 = uint32
  9686. type TFcBool = int32
  9687. type TFcType = int32
  9688. type __FcType = int32
  9689. const _FcTypeUnknown = -1
  9690. const _FcTypeVoid = 0
  9691. const _FcTypeInteger = 1
  9692. const _FcTypeDouble = 2
  9693. const _FcTypeString = 3
  9694. const _FcTypeBool = 4
  9695. const _FcTypeMatrix = 5
  9696. const _FcTypeCharSet = 6
  9697. const _FcTypeFTFace = 7
  9698. const _FcTypeLangSet = 8
  9699. const _FcTypeRange = 9
  9700. type TFcMatrix = struct {
  9701. Fxx float64
  9702. Fxy float64
  9703. Fyx float64
  9704. Fyy float64
  9705. }
  9706. type T_FcMatrix = TFcMatrix
  9707. type TFcObjectType = struct {
  9708. Fobject uintptr
  9709. Ftype1 TFcType
  9710. }
  9711. type T_FcObjectType = TFcObjectType
  9712. type TFcConstant = struct {
  9713. Fname uintptr
  9714. Fobject uintptr
  9715. Fvalue int32
  9716. }
  9717. type T_FcConstant = TFcConstant
  9718. type TFcResult = int32
  9719. type __FcResult = int32
  9720. const _FcResultMatch = 0
  9721. const _FcResultNoMatch = 1
  9722. const _FcResultTypeMismatch = 2
  9723. const _FcResultNoId = 3
  9724. const _FcResultOutOfMemory = 4
  9725. type TFcValueBinding = int32
  9726. type __FcValueBinding = int32
  9727. const _FcValueBindingWeak = 0
  9728. const _FcValueBindingStrong = 1
  9729. const _FcValueBindingSame = 2
  9730. const _FcValueBindingEnd = 2147483647
  9731. type TFcPatternIter = struct {
  9732. Fdummy1 uintptr
  9733. Fdummy2 uintptr
  9734. }
  9735. type T_FcPatternIter = TFcPatternIter
  9736. type TFcValue = struct {
  9737. Ftype1 TFcType
  9738. Fu struct {
  9739. Fi [0]int32
  9740. Fb [0]TFcBool
  9741. Fd [0]float64
  9742. Fm [0]uintptr
  9743. Fc [0]uintptr
  9744. Ff [0]uintptr
  9745. Fl [0]uintptr
  9746. Fr [0]uintptr
  9747. Fs uintptr
  9748. }
  9749. }
  9750. type T_FcValue = TFcValue
  9751. type TFcFontSet = struct {
  9752. Fnfont int32
  9753. Fsfont int32
  9754. Ffonts uintptr
  9755. }
  9756. type T_FcFontSet = TFcFontSet
  9757. type TFcObjectSet = struct {
  9758. Fnobject int32
  9759. Fsobject int32
  9760. Fobjects uintptr
  9761. }
  9762. type T_FcObjectSet = TFcObjectSet
  9763. type TFcMatchKind = int32
  9764. type __FcMatchKind = int32
  9765. const _FcMatchPattern = 0
  9766. const _FcMatchFont = 1
  9767. const _FcMatchScan = 2
  9768. const _FcMatchKindEnd = 3
  9769. const _FcMatchKindBegin = 0
  9770. type TFcLangResult = int32
  9771. type __FcLangResult = int32
  9772. const _FcLangEqual = 0
  9773. const _FcLangDifferentCountry = 1
  9774. const _FcLangDifferentTerritory = 1
  9775. const _FcLangDifferentLang = 2
  9776. type TFcSetName = int32
  9777. type __FcSetName = int32
  9778. const _FcSetSystem = 0
  9779. const _FcSetApplication = 1
  9780. type TFcConfigFileInfoIter = struct {
  9781. Fdummy1 uintptr
  9782. Fdummy2 uintptr
  9783. Fdummy3 uintptr
  9784. }
  9785. type T_FcConfigFileInfoIter = TFcConfigFileInfoIter
  9786. type TFcEndian = int32
  9787. const _FcEndianBig = 0
  9788. const _FcEndianLittle = 1
  9789. type Tpointer = uintptr
  9790. type TClientPtr = uintptr
  9791. type TFontPtr = uintptr
  9792. type TFSID = uint64
  9793. type TAccContext = uint64
  9794. type TOSTimePtr = uintptr
  9795. type TBlockHandlerProcPtr = uintptr
  9796. type TGlyph = uint64
  9797. type TGlyphSet = uint64
  9798. type TPicture = uint64
  9799. type TPictFormat = uint64
  9800. type TXRenderDirectFormat = struct {
  9801. Fred int16
  9802. FredMask int16
  9803. Fgreen int16
  9804. FgreenMask int16
  9805. Fblue int16
  9806. FblueMask int16
  9807. Falpha int16
  9808. FalphaMask int16
  9809. }
  9810. type TXRenderPictFormat = struct {
  9811. Fid TPictFormat
  9812. Ftype1 int32
  9813. Fdepth int32
  9814. Fdirect TXRenderDirectFormat
  9815. Fcolormap TColormap
  9816. }
  9817. type TXRenderPictureAttributes = struct {
  9818. Frepeat int32
  9819. Falpha_map TPicture
  9820. Falpha_x_origin int32
  9821. Falpha_y_origin int32
  9822. Fclip_x_origin int32
  9823. Fclip_y_origin int32
  9824. Fclip_mask TPixmap
  9825. Fgraphics_exposures int32
  9826. Fsubwindow_mode int32
  9827. Fpoly_edge int32
  9828. Fpoly_mode int32
  9829. Fdither TAtom
  9830. Fcomponent_alpha int32
  9831. }
  9832. type T_XRenderPictureAttributes = TXRenderPictureAttributes
  9833. type TXRenderColor = struct {
  9834. Fred uint16
  9835. Fgreen uint16
  9836. Fblue uint16
  9837. Falpha uint16
  9838. }
  9839. type TXGlyphInfo = struct {
  9840. Fwidth uint16
  9841. Fheight uint16
  9842. Fx int16
  9843. Fy int16
  9844. FxOff int16
  9845. FyOff int16
  9846. }
  9847. type T_XGlyphInfo = TXGlyphInfo
  9848. type TXGlyphElt8 = struct {
  9849. Fglyphset TGlyphSet
  9850. Fchars uintptr
  9851. Fnchars int32
  9852. FxOff int32
  9853. FyOff int32
  9854. }
  9855. type T_XGlyphElt8 = TXGlyphElt8
  9856. type TXGlyphElt16 = struct {
  9857. Fglyphset TGlyphSet
  9858. Fchars uintptr
  9859. Fnchars int32
  9860. FxOff int32
  9861. FyOff int32
  9862. }
  9863. type T_XGlyphElt16 = TXGlyphElt16
  9864. type TXGlyphElt32 = struct {
  9865. Fglyphset TGlyphSet
  9866. Fchars uintptr
  9867. Fnchars int32
  9868. FxOff int32
  9869. FyOff int32
  9870. }
  9871. type T_XGlyphElt32 = TXGlyphElt32
  9872. type TXDouble = float64
  9873. type TXPointDouble = struct {
  9874. Fx TXDouble
  9875. Fy TXDouble
  9876. }
  9877. type T_XPointDouble = TXPointDouble
  9878. type TXFixed = int32
  9879. type TXPointFixed = struct {
  9880. Fx TXFixed
  9881. Fy TXFixed
  9882. }
  9883. type T_XPointFixed = TXPointFixed
  9884. type TXLineFixed = struct {
  9885. Fp1 TXPointFixed
  9886. Fp2 TXPointFixed
  9887. }
  9888. type T_XLineFixed = TXLineFixed
  9889. type TXTriangle = struct {
  9890. Fp1 TXPointFixed
  9891. Fp2 TXPointFixed
  9892. Fp3 TXPointFixed
  9893. }
  9894. type T_XTriangle = TXTriangle
  9895. type TXCircle = struct {
  9896. Fx TXFixed
  9897. Fy TXFixed
  9898. Fradius TXFixed
  9899. }
  9900. type T_XCircle = TXCircle
  9901. type TXTrapezoid = struct {
  9902. Ftop TXFixed
  9903. Fbottom TXFixed
  9904. Fleft TXLineFixed
  9905. Fright TXLineFixed
  9906. }
  9907. type T_XTrapezoid = TXTrapezoid
  9908. type TXTransform = struct {
  9909. Fmatrix [3][3]TXFixed
  9910. }
  9911. type T_XTransform = TXTransform
  9912. type TXFilters = struct {
  9913. Fnfilter int32
  9914. Ffilter uintptr
  9915. Fnalias int32
  9916. Falias uintptr
  9917. }
  9918. type T_XFilters = TXFilters
  9919. type TXIndexValue = struct {
  9920. Fpixel uint64
  9921. Fred uint16
  9922. Fgreen uint16
  9923. Fblue uint16
  9924. Falpha uint16
  9925. }
  9926. type T_XIndexValue = TXIndexValue
  9927. type TXAnimCursor = struct {
  9928. Fcursor TCursor
  9929. Fdelay uint64
  9930. }
  9931. type T_XAnimCursor = TXAnimCursor
  9932. type TXSpanFix = struct {
  9933. Fleft TXFixed
  9934. Fright TXFixed
  9935. Fy TXFixed
  9936. }
  9937. type T_XSpanFix = TXSpanFix
  9938. type TXTrap = struct {
  9939. Ftop TXSpanFix
  9940. Fbottom TXSpanFix
  9941. }
  9942. type T_XTrap = TXTrap
  9943. type TXLinearGradient = struct {
  9944. Fp1 TXPointFixed
  9945. Fp2 TXPointFixed
  9946. }
  9947. type T_XLinearGradient = TXLinearGradient
  9948. type TXRadialGradient = struct {
  9949. Finner TXCircle
  9950. Fouter TXCircle
  9951. }
  9952. type T_XRadialGradient = TXRadialGradient
  9953. type TXConicalGradient = struct {
  9954. Fcenter TXPointFixed
  9955. Fangle TXFixed
  9956. }
  9957. type T_XConicalGradient = TXConicalGradient
  9958. type TXftFontInfo = struct {
  9959. Fhash TFcChar32
  9960. Ffile uintptr
  9961. Fxsize TFT_F26Dot6
  9962. Fysize TFT_F26Dot6
  9963. Fantialias TFcBool
  9964. Fembolden TFcBool
  9965. Fcolor TFcBool
  9966. Frgba int32
  9967. Flcd_filter int32
  9968. Fmatrix TFT_Matrix
  9969. Ftransform TFcBool
  9970. Fload_flags TFT_Int
  9971. Frender TFcBool
  9972. Fspacing int32
  9973. Fminspace TFcBool
  9974. Fchar_width int32
  9975. }
  9976. type T_XftFontInfo = TXftFontInfo
  9977. type TXftFont = struct {
  9978. Fascent int32
  9979. Fdescent int32
  9980. Fheight int32
  9981. Fmax_advance_width int32
  9982. Fcharset uintptr
  9983. Fpattern uintptr
  9984. }
  9985. type T_XftFont = TXftFont
  9986. type TXftDraw = struct {
  9987. Fdpy uintptr
  9988. Fscreen int32
  9989. Fbits_per_pixel uint32
  9990. Fdepth uint32
  9991. Fdrawable TDrawable
  9992. Fvisual uintptr
  9993. Fcolormap TColormap
  9994. Fclip_type TXftClipType
  9995. Fclip TXftClip
  9996. Fsubwindow_mode int32
  9997. Frender struct {
  9998. Fpict TPicture
  9999. }
  10000. Fcore struct {
  10001. Fgc TGC
  10002. Fuse_pixmap int32
  10003. }
  10004. }
  10005. type T_XftDraw = TXftDraw
  10006. type __XftClipType = int32
  10007. const _XftClipTypeNone = 0
  10008. const _XftClipTypeRegion = 1
  10009. const _XftClipTypeRectangles = 2
  10010. type TXftColor = struct {
  10011. Fpixel uint64
  10012. Fcolor TXRenderColor
  10013. }
  10014. type T_XftColor = TXftColor
  10015. type TXftCharSpec = struct {
  10016. Fucs4 TFcChar32
  10017. Fx int16
  10018. Fy int16
  10019. }
  10020. type T_XftCharSpec = TXftCharSpec
  10021. type TXftCharFontSpec = struct {
  10022. Ffont uintptr
  10023. Fucs4 TFcChar32
  10024. Fx int16
  10025. Fy int16
  10026. }
  10027. type T_XftCharFontSpec = TXftCharFontSpec
  10028. type TXftGlyphSpec = struct {
  10029. Fglyph TFT_UInt
  10030. Fx int16
  10031. Fy int16
  10032. }
  10033. type T_XftGlyphSpec = TXftGlyphSpec
  10034. type TXftGlyphFontSpec = struct {
  10035. Ffont uintptr
  10036. Fglyph TFT_UInt
  10037. Fx int16
  10038. Fy int16
  10039. }
  10040. type T_XftGlyphFontSpec = TXftGlyphFontSpec
  10041. type TXftMatcher = struct {
  10042. Fobject uintptr
  10043. Fcompare uintptr
  10044. }
  10045. type T_XftMatcher = TXftMatcher
  10046. type TXftSymbolic = struct {
  10047. Fname uintptr
  10048. Fvalue int32
  10049. }
  10050. type T_XftSymbolic = TXftSymbolic
  10051. type TXftGlyph = struct {
  10052. Fmetrics TXGlyphInfo
  10053. Fbitmap uintptr
  10054. Fglyph_memory uint64
  10055. Fpicture TPicture
  10056. }
  10057. type T_XftGlyph = TXftGlyph
  10058. type TXftGlyphUsage = struct {
  10059. Fcontents TXftGlyph
  10060. Fnewer TFT_UInt
  10061. Folder TFT_UInt
  10062. }
  10063. type T_XftGlyphUsage = TXftGlyphUsage
  10064. type TXftUcsHash = struct {
  10065. Fucs4 TFcChar32
  10066. Fglyph TFT_UInt
  10067. }
  10068. type T_XftUcsHash = TXftUcsHash
  10069. type TXftFtFile = struct {
  10070. Fnext uintptr
  10071. Fref int32
  10072. Ffile uintptr
  10073. Fid int32
  10074. Fxsize TFT_F26Dot6
  10075. Fysize TFT_F26Dot6
  10076. Fmatrix TFT_Matrix
  10077. Flock int32
  10078. Fface TFT_Face
  10079. }
  10080. type T_XftFtFile = TXftFtFile
  10081. type TXftFontInt = struct {
  10082. Fpublic TXftFont
  10083. Fnext uintptr
  10084. Fhash_next uintptr
  10085. Finfo TXftFontInfo
  10086. Fref int32
  10087. Fglyphs uintptr
  10088. Fnum_glyphs TFT_UInt
  10089. Fhash_table uintptr
  10090. Fhash_value int32
  10091. Frehash_value int32
  10092. Fglyphset TGlyphSet
  10093. Fformat uintptr
  10094. Fglyph_memory uint64
  10095. Fmax_glyph_memory uint64
  10096. Fsizeof_glyph uint32
  10097. Fnewest TFT_UInt
  10098. Ftotal_inuse TFT_UInt
  10099. Ftrack_mem_usage TFcBool
  10100. Fuse_free_glyphs TFcBool
  10101. }
  10102. type T_XftFontInt = TXftFontInt
  10103. type TXftClipType = int32
  10104. type TXftClipRect = struct {
  10105. FxOrigin int32
  10106. FyOrigin int32
  10107. Fn int32
  10108. }
  10109. type T_XftClipRect = TXftClipRect
  10110. type TXftClip = struct {
  10111. Fregion [0]TRegion
  10112. Frect uintptr
  10113. }
  10114. type T_XftClip = TXftClip
  10115. type TXftSolidColor = struct {
  10116. Fcolor TXRenderColor
  10117. Fscreen int32
  10118. Fpict TPicture
  10119. }
  10120. type T_XftSolidColor = TXftSolidColor
  10121. type TXftDisplayInfo = struct {
  10122. Fnext uintptr
  10123. Fdisplay uintptr
  10124. Fcodes uintptr
  10125. Fdefaults uintptr
  10126. FhasRender TFcBool
  10127. FhasSolid TFcBool
  10128. Ffonts uintptr
  10129. FsolidFormat uintptr
  10130. Fglyph_memory uint64
  10131. Fmax_glyph_memory uint64
  10132. Ftrack_mem_usage TFcBool
  10133. Fuse_free_glyphs TFcBool
  10134. Fnum_unref_fonts int32
  10135. Fmax_unref_fonts int32
  10136. Fcolors [16]TXftSolidColor
  10137. FfontHash [127]uintptr
  10138. }
  10139. type T_XftDisplayInfo = TXftDisplayInfo
  10140. type TXFT_MEM_KIND = int32
  10141. const _XFT_MEM_DRAW = 0
  10142. const _XFT_MEM_FONT = 1
  10143. const _XFT_MEM_FILE = 2
  10144. const _XFT_MEM_GLYPH = 3
  10145. const _XFT_MEM_NUM = 4
  10146. /* xftxlfd.c */
  10147. func XXftColorAllocName(tls *libc.TLS, dpy uintptr, visual uintptr, cmap TColormap, name uintptr, result uintptr) (r int32) {
  10148. bp := tls.Alloc(32)
  10149. defer tls.Free(32)
  10150. var _ /* exact at bp+16 */ TXColor
  10151. var _ /* screen at bp+0 */ TXColor
  10152. if !(libx11.XXAllocNamedColor(tls, dpy, cmap, name, bp, bp+16) != 0) {
  10153. /* XXX stick standard colormap stuff here */
  10154. return m_False
  10155. }
  10156. (*TXftColor)(unsafe.Pointer(result)).Fpixel = (*(*TXColor)(unsafe.Pointer(bp))).Fpixel
  10157. (*TXftColor)(unsafe.Pointer(result)).Fcolor.Fred = (*(*TXColor)(unsafe.Pointer(bp + 16))).Fred
  10158. (*TXftColor)(unsafe.Pointer(result)).Fcolor.Fgreen = (*(*TXColor)(unsafe.Pointer(bp + 16))).Fgreen
  10159. (*TXftColor)(unsafe.Pointer(result)).Fcolor.Fblue = (*(*TXColor)(unsafe.Pointer(bp + 16))).Fblue
  10160. (*TXftColor)(unsafe.Pointer(result)).Fcolor.Falpha = uint16(0xffff)
  10161. return int32(m_True)
  10162. }
  10163. func _maskbase(tls *libc.TLS, m uint64) (r int16) {
  10164. var i int16
  10165. _ = i
  10166. if !(m != 0) {
  10167. return 0
  10168. }
  10169. i = 0
  10170. for !(m&libc.Uint64FromInt32(1) != 0) {
  10171. m >>= uint64(1)
  10172. i++
  10173. }
  10174. return i
  10175. }
  10176. func _masklen(tls *libc.TLS, m uint64) (r int16) {
  10177. var y uint64
  10178. _ = y
  10179. y = m >> int32(1) & uint64(033333333333)
  10180. y = m - y - y>>int32(1)&uint64(033333333333)
  10181. return int16((y + y>>libc.Int32FromInt32(3)) & libc.Uint64FromUint32(030707070707) % libc.Uint64FromInt32(077))
  10182. }
  10183. func XXftColorAllocValue(tls *libc.TLS, dpy uintptr, visual uintptr, cmap TColormap, color uintptr, result uintptr) (r int32) {
  10184. bp := tls.Alloc(16)
  10185. defer tls.Free(16)
  10186. var blue_len, blue_shift, green_len, green_shift, red_len, red_shift int32
  10187. var _ /* xcolor at bp+0 */ TXColor
  10188. _, _, _, _, _, _ = blue_len, blue_shift, green_len, green_shift, red_len, red_shift
  10189. if (*TVisual)(unsafe.Pointer(visual)).Fclass == int32(m_TrueColor) {
  10190. red_shift = int32(_maskbase(tls, (*TVisual)(unsafe.Pointer(visual)).Fred_mask))
  10191. red_len = int32(_masklen(tls, (*TVisual)(unsafe.Pointer(visual)).Fred_mask))
  10192. green_shift = int32(_maskbase(tls, (*TVisual)(unsafe.Pointer(visual)).Fgreen_mask))
  10193. green_len = int32(_masklen(tls, (*TVisual)(unsafe.Pointer(visual)).Fgreen_mask))
  10194. blue_shift = int32(_maskbase(tls, (*TVisual)(unsafe.Pointer(visual)).Fblue_mask))
  10195. blue_len = int32(_masklen(tls, (*TVisual)(unsafe.Pointer(visual)).Fblue_mask))
  10196. (*TXftColor)(unsafe.Pointer(result)).Fpixel = uint64(int32((*TXRenderColor)(unsafe.Pointer(color)).Fred)>>(libc.Int32FromInt32(16)-red_len)<<red_shift | int32((*TXRenderColor)(unsafe.Pointer(color)).Fgreen)>>(libc.Int32FromInt32(16)-green_len)<<green_shift | int32((*TXRenderColor)(unsafe.Pointer(color)).Fblue)>>(libc.Int32FromInt32(16)-blue_len)<<blue_shift)
  10197. } else {
  10198. (*(*TXColor)(unsafe.Pointer(bp))).Fred = (*TXRenderColor)(unsafe.Pointer(color)).Fred
  10199. (*(*TXColor)(unsafe.Pointer(bp))).Fgreen = (*TXRenderColor)(unsafe.Pointer(color)).Fgreen
  10200. (*(*TXColor)(unsafe.Pointer(bp))).Fblue = (*TXRenderColor)(unsafe.Pointer(color)).Fblue
  10201. if !(libx11.XXAllocColor(tls, dpy, cmap, bp) != 0) {
  10202. return m_False
  10203. }
  10204. (*TXftColor)(unsafe.Pointer(result)).Fpixel = (*(*TXColor)(unsafe.Pointer(bp))).Fpixel
  10205. }
  10206. (*TXftColor)(unsafe.Pointer(result)).Fcolor.Fred = (*TXRenderColor)(unsafe.Pointer(color)).Fred
  10207. (*TXftColor)(unsafe.Pointer(result)).Fcolor.Fgreen = (*TXRenderColor)(unsafe.Pointer(color)).Fgreen
  10208. (*TXftColor)(unsafe.Pointer(result)).Fcolor.Fblue = (*TXRenderColor)(unsafe.Pointer(color)).Fblue
  10209. (*TXftColor)(unsafe.Pointer(result)).Fcolor.Falpha = (*TXRenderColor)(unsafe.Pointer(color)).Falpha
  10210. return int32(m_True)
  10211. }
  10212. func XXftColorFree(tls *libc.TLS, dpy uintptr, visual uintptr, cmap TColormap, color uintptr) {
  10213. if (*TVisual)(unsafe.Pointer(visual)).Fclass != int32(m_TrueColor) {
  10214. libx11.XXFreeColors(tls, dpy, cmap, color, int32(1), uint64(0))
  10215. }
  10216. }
  10217. type Tfuncs = struct {
  10218. Fcreate_image uintptr
  10219. Fdestroy_image uintptr
  10220. Fget_pixel uintptr
  10221. Fput_pixel uintptr
  10222. Fsub_image uintptr
  10223. Fadd_pixel uintptr
  10224. }
  10225. const m_NUM_LOCAL = 1024
  10226. /* xftxlfd.c */
  10227. func XXftRectCore(tls *libc.TLS, draw uintptr, color uintptr, x int32, y int32, width uint32, height uint32) {
  10228. if int32((*TXftColor)(unsafe.Pointer(color)).Fcolor.Falpha) >= int32(0x8000) {
  10229. libx11.XXSetForeground(tls, (*TXftDraw)(unsafe.Pointer(draw)).Fdpy, (*TXftDraw)(unsafe.Pointer(draw)).Fcore.Fgc, (*TXftColor)(unsafe.Pointer(color)).Fpixel)
  10230. libx11.XXFillRectangle(tls, (*TXftDraw)(unsafe.Pointer(draw)).Fdpy, (*TXftDraw)(unsafe.Pointer(draw)).Fdrawable, (*TXftDraw)(unsafe.Pointer(draw)).Fcore.Fgc, x, y, width, height)
  10231. }
  10232. }
  10233. /*
  10234. * Use the core protocol to draw the glyphs
  10235. */
  10236. func __XftSharpGlyphMono(tls *libc.TLS, draw uintptr, glyph uintptr, x int32, y int32) {
  10237. var bits, bitsMask uint8
  10238. var height, lenspan, stride, w, width, xspan, v1 int32
  10239. var src, srcLine, v2, v3, v4 uintptr
  10240. _, _, _, _, _, _, _, _, _, _, _, _, _, _ = bits, bitsMask, height, lenspan, src, srcLine, stride, w, width, xspan, v1, v2, v3, v4
  10241. srcLine = (*TXftGlyph)(unsafe.Pointer(glyph)).Fbitmap
  10242. width = int32((*TXftGlyph)(unsafe.Pointer(glyph)).Fmetrics.Fwidth)
  10243. stride = (width + int32(31)) & ^libc.Int32FromInt32(31) >> int32(3)
  10244. height = int32((*TXftGlyph)(unsafe.Pointer(glyph)).Fmetrics.Fheight)
  10245. x -= int32((*TXftGlyph)(unsafe.Pointer(glyph)).Fmetrics.Fx)
  10246. y -= int32((*TXftGlyph)(unsafe.Pointer(glyph)).Fmetrics.Fy)
  10247. for {
  10248. v1 = height
  10249. height--
  10250. if !(v1 != 0) {
  10251. break
  10252. }
  10253. src = srcLine
  10254. srcLine += uintptr(stride)
  10255. w = width
  10256. bitsMask = uint8(0x80) /* FreeType is always MSB first */
  10257. v2 = src
  10258. src++
  10259. bits = *(*uint8)(unsafe.Pointer(v2))
  10260. xspan = x
  10261. for w != 0 {
  10262. if int32(bits)&int32(bitsMask) != 0 {
  10263. lenspan = 0
  10264. for cond := true; cond; cond = int32(bits)&int32(bitsMask) != 0 {
  10265. lenspan++
  10266. if lenspan == w {
  10267. break
  10268. }
  10269. bitsMask = uint8(int32(bitsMask) >> int32(1))
  10270. if !(bitsMask != 0) {
  10271. v3 = src
  10272. src++
  10273. bits = *(*uint8)(unsafe.Pointer(v3))
  10274. bitsMask = uint8(0x80)
  10275. }
  10276. }
  10277. libx11.XXFillRectangle(tls, (*TXftDraw)(unsafe.Pointer(draw)).Fdpy, (*TXftDraw)(unsafe.Pointer(draw)).Fdrawable, (*TXftDraw)(unsafe.Pointer(draw)).Fcore.Fgc, xspan, y, uint32(lenspan), uint32(1))
  10278. xspan += lenspan
  10279. w -= lenspan
  10280. } else {
  10281. for cond := true; cond; cond = !(int32(bits)&int32(bitsMask) != 0) {
  10282. w--
  10283. xspan++
  10284. if !(w != 0) {
  10285. break
  10286. }
  10287. bitsMask = uint8(int32(bitsMask) >> int32(1))
  10288. if !(bitsMask != 0) {
  10289. v4 = src
  10290. src++
  10291. bits = *(*uint8)(unsafe.Pointer(v4))
  10292. bitsMask = uint8(0x80)
  10293. }
  10294. }
  10295. }
  10296. }
  10297. y++
  10298. }
  10299. }
  10300. // C documentation
  10301. //
  10302. // /*
  10303. // * Draw solid color text from an anti-aliased bitmap. This is a
  10304. // * fallback for cases where a particular drawable has no AA code
  10305. // */
  10306. func __XftSharpGlyphGray(tls *libc.TLS, draw uintptr, glyph uintptr, x int32, y int32) {
  10307. var bits uint8
  10308. var height, lenspan, stride, w, width, xspan, v1 int32
  10309. var src, srcLine, v2, v3, v4 uintptr
  10310. _, _, _, _, _, _, _, _, _, _, _, _, _ = bits, height, lenspan, src, srcLine, stride, w, width, xspan, v1, v2, v3, v4
  10311. srcLine = (*TXftGlyph)(unsafe.Pointer(glyph)).Fbitmap
  10312. width = int32((*TXftGlyph)(unsafe.Pointer(glyph)).Fmetrics.Fwidth)
  10313. stride = (width + int32(3)) & ^libc.Int32FromInt32(3)
  10314. height = int32((*TXftGlyph)(unsafe.Pointer(glyph)).Fmetrics.Fheight)
  10315. x -= int32((*TXftGlyph)(unsafe.Pointer(glyph)).Fmetrics.Fx)
  10316. y -= int32((*TXftGlyph)(unsafe.Pointer(glyph)).Fmetrics.Fy)
  10317. for {
  10318. v1 = height
  10319. height--
  10320. if !(v1 != 0) {
  10321. break
  10322. }
  10323. src = srcLine
  10324. srcLine += uintptr(stride)
  10325. w = width
  10326. v2 = src
  10327. src++
  10328. bits = *(*uint8)(unsafe.Pointer(v2))
  10329. xspan = x
  10330. for w != 0 {
  10331. if int32(bits) >= int32(0x80) {
  10332. lenspan = 0
  10333. for cond := true; cond; cond = int32(bits) >= int32(0x80) {
  10334. lenspan++
  10335. if lenspan == w {
  10336. break
  10337. }
  10338. v3 = src
  10339. src++
  10340. bits = *(*uint8)(unsafe.Pointer(v3))
  10341. }
  10342. libx11.XXFillRectangle(tls, (*TXftDraw)(unsafe.Pointer(draw)).Fdpy, (*TXftDraw)(unsafe.Pointer(draw)).Fdrawable, (*TXftDraw)(unsafe.Pointer(draw)).Fcore.Fgc, xspan, y, uint32(lenspan), uint32(1))
  10343. xspan += lenspan
  10344. w -= lenspan
  10345. } else {
  10346. for cond := true; cond; cond = int32(bits) < int32(0x80) {
  10347. w--
  10348. xspan++
  10349. if !(w != 0) {
  10350. break
  10351. }
  10352. v4 = src
  10353. src++
  10354. bits = *(*uint8)(unsafe.Pointer(v4))
  10355. }
  10356. }
  10357. }
  10358. y++
  10359. }
  10360. }
  10361. func __XftSharpGlyphRgba(tls *libc.TLS, draw uintptr, glyph uintptr, x int32, y int32) {
  10362. var bits TCARD32
  10363. var height, lenspan, stride, w, width, xspan, v1 int32
  10364. var src, srcLine, v2, v3, v4 uintptr
  10365. _, _, _, _, _, _, _, _, _, _, _, _, _ = bits, height, lenspan, src, srcLine, stride, w, width, xspan, v1, v2, v3, v4
  10366. srcLine = (*TXftGlyph)(unsafe.Pointer(glyph)).Fbitmap
  10367. width = int32((*TXftGlyph)(unsafe.Pointer(glyph)).Fmetrics.Fwidth)
  10368. stride = (width + int32(3)) & ^libc.Int32FromInt32(3)
  10369. height = int32((*TXftGlyph)(unsafe.Pointer(glyph)).Fmetrics.Fheight)
  10370. x -= int32((*TXftGlyph)(unsafe.Pointer(glyph)).Fmetrics.Fx)
  10371. y -= int32((*TXftGlyph)(unsafe.Pointer(glyph)).Fmetrics.Fy)
  10372. for {
  10373. v1 = height
  10374. height--
  10375. if !(v1 != 0) {
  10376. break
  10377. }
  10378. src = srcLine
  10379. srcLine += uintptr(stride) * 4
  10380. w = width
  10381. v2 = src
  10382. src += 4
  10383. bits = *(*TCARD32)(unsafe.Pointer(v2))
  10384. xspan = x
  10385. for w != 0 {
  10386. if bits >= uint32(0x80000000) {
  10387. lenspan = 0
  10388. for cond := true; cond; cond = bits >= uint32(0x80000000) {
  10389. lenspan++
  10390. if lenspan == w {
  10391. break
  10392. }
  10393. v3 = src
  10394. src += 4
  10395. bits = *(*TCARD32)(unsafe.Pointer(v3))
  10396. }
  10397. libx11.XXFillRectangle(tls, (*TXftDraw)(unsafe.Pointer(draw)).Fdpy, (*TXftDraw)(unsafe.Pointer(draw)).Fdrawable, (*TXftDraw)(unsafe.Pointer(draw)).Fcore.Fgc, xspan, y, uint32(lenspan), uint32(1))
  10398. xspan += lenspan
  10399. w -= lenspan
  10400. } else {
  10401. for cond := true; cond; cond = bits < uint32(0x80000000) {
  10402. w--
  10403. xspan++
  10404. if !(w != 0) {
  10405. break
  10406. }
  10407. v4 = src
  10408. src += 4
  10409. bits = *(*TCARD32)(unsafe.Pointer(v4))
  10410. }
  10411. }
  10412. }
  10413. y++
  10414. }
  10415. }
  10416. type TXftSharpGlyph = uintptr
  10417. func __XftSharpGlyphFind(tls *libc.TLS, draw uintptr, public uintptr) (r TXftSharpGlyph) {
  10418. var font uintptr
  10419. _ = font
  10420. font = public
  10421. if !((*TXftFontInt)(unsafe.Pointer(font)).Finfo.Fantialias != 0) {
  10422. return __ccgo_fp(__XftSharpGlyphMono)
  10423. } else {
  10424. switch (*TXftFontInt)(unsafe.Pointer(font)).Finfo.Frgba {
  10425. case int32(m_FC_RGBA_RGB):
  10426. fallthrough
  10427. case int32(m_FC_RGBA_BGR):
  10428. fallthrough
  10429. case int32(m_FC_RGBA_VRGB):
  10430. fallthrough
  10431. case int32(m_FC_RGBA_VBGR):
  10432. return __ccgo_fp(__XftSharpGlyphRgba)
  10433. default:
  10434. return __ccgo_fp(__XftSharpGlyphGray)
  10435. }
  10436. }
  10437. return r
  10438. }
  10439. /*
  10440. * Draw glyphs to a target that supports anti-aliasing
  10441. */
  10442. /*
  10443. * Primitives for converting between RGB values and TrueColor pixels
  10444. */
  10445. func __XftExamineBitfield(tls *libc.TLS, mask uint64, shift uintptr, len1 uintptr) {
  10446. var l, s int32
  10447. _, _ = l, s
  10448. s = 0
  10449. for mask&uint64(1) == uint64(0) {
  10450. mask >>= uint64(1)
  10451. s++
  10452. }
  10453. l = 0
  10454. for mask&uint64(1) == uint64(1) {
  10455. mask >>= uint64(1)
  10456. l++
  10457. }
  10458. *(*int32)(unsafe.Pointer(shift)) = s
  10459. *(*int32)(unsafe.Pointer(len1)) = l
  10460. }
  10461. func __XftGetField(tls *libc.TLS, l_pixel uint64, shift int32, len1 int32) (r TCARD32) {
  10462. var pixel TCARD32
  10463. _ = pixel
  10464. pixel = uint32(l_pixel)
  10465. pixel = pixel & uint32((libc.Int32FromInt32(1)<<len1-libc.Int32FromInt32(1))<<shift)
  10466. pixel = pixel << (int32(32) - (shift + len1)) >> int32(24)
  10467. for len1 < int32(8) {
  10468. pixel |= pixel >> len1
  10469. len1 <<= int32(1)
  10470. }
  10471. return pixel
  10472. }
  10473. func __XftPutField(tls *libc.TLS, pixel TCARD32, shift int32, len1 int32) (r uint64) {
  10474. var l_pixel uint64
  10475. _ = l_pixel
  10476. l_pixel = uint64(pixel)
  10477. shift = shift - (int32(8) - len1)
  10478. if len1 <= int32(8) {
  10479. l_pixel = l_pixel & uint64((libc.Int32FromInt32(1)<<len1-libc.Int32FromInt32(1))<<(libc.Int32FromInt32(8)-len1))
  10480. }
  10481. if shift < 0 {
  10482. l_pixel >>= uint64(-shift)
  10483. } else {
  10484. l_pixel <<= uint64(shift)
  10485. }
  10486. return l_pixel
  10487. }
  10488. // C documentation
  10489. //
  10490. // /*
  10491. // * This is used when doing XftCharFontSpec/XftGlyphFontSpec where
  10492. // * some of the fonts are bitmaps and some are anti-aliased to handle
  10493. // * the bitmap portions
  10494. // */
  10495. func __XftSmoothGlyphMono(tls *libc.TLS, image uintptr, xftg uintptr, x int32, y int32, color uintptr) {
  10496. bp := tls.Alloc(32)
  10497. defer tls.Free(32)
  10498. var bits, bitsMask uint8
  10499. var height, stride, w, width, xspan, v1, v3 int32
  10500. var pixel uint64
  10501. var src, srcLine, v2, v4 uintptr
  10502. var _ /* b_len at bp+20 */ int32
  10503. var _ /* b_shift at bp+16 */ int32
  10504. var _ /* g_len at bp+12 */ int32
  10505. var _ /* g_shift at bp+8 */ int32
  10506. var _ /* r_len at bp+4 */ int32
  10507. var _ /* r_shift at bp+0 */ int32
  10508. _, _, _, _, _, _, _, _, _, _, _, _, _, _ = bits, bitsMask, height, pixel, src, srcLine, stride, w, width, xspan, v1, v2, v3, v4
  10509. srcLine = (*TXftGlyph)(unsafe.Pointer(xftg)).Fbitmap
  10510. width = int32((*TXftGlyph)(unsafe.Pointer(xftg)).Fmetrics.Fwidth)
  10511. stride = (width + int32(31)) & ^libc.Int32FromInt32(31) >> int32(3)
  10512. height = int32((*TXftGlyph)(unsafe.Pointer(xftg)).Fmetrics.Fheight)
  10513. __XftExamineBitfield(tls, (*TXImage)(unsafe.Pointer(image)).Fred_mask, bp, bp+4)
  10514. __XftExamineBitfield(tls, (*TXImage)(unsafe.Pointer(image)).Fgreen_mask, bp+8, bp+12)
  10515. __XftExamineBitfield(tls, (*TXImage)(unsafe.Pointer(image)).Fblue_mask, bp+16, bp+20)
  10516. pixel = __XftPutField(tls, uint32(int32((*TXftColor)(unsafe.Pointer(color)).Fcolor.Fred)>>int32(8)), *(*int32)(unsafe.Pointer(bp)), *(*int32)(unsafe.Pointer(bp + 4))) | __XftPutField(tls, uint32(int32((*TXftColor)(unsafe.Pointer(color)).Fcolor.Fgreen)>>int32(8)), *(*int32)(unsafe.Pointer(bp + 8)), *(*int32)(unsafe.Pointer(bp + 12))) | __XftPutField(tls, uint32(int32((*TXftColor)(unsafe.Pointer(color)).Fcolor.Fblue)>>int32(8)), *(*int32)(unsafe.Pointer(bp + 16)), *(*int32)(unsafe.Pointer(bp + 20)))
  10517. x -= int32((*TXftGlyph)(unsafe.Pointer(xftg)).Fmetrics.Fx)
  10518. y -= int32((*TXftGlyph)(unsafe.Pointer(xftg)).Fmetrics.Fy)
  10519. for {
  10520. v1 = height
  10521. height--
  10522. if !(v1 != 0) {
  10523. break
  10524. }
  10525. src = srcLine
  10526. srcLine += uintptr(stride)
  10527. w = width
  10528. bitsMask = uint8(0x80) /* FreeType is always MSB first */
  10529. v2 = src
  10530. src++
  10531. bits = *(*uint8)(unsafe.Pointer(v2))
  10532. xspan = x
  10533. for {
  10534. v3 = w
  10535. w--
  10536. if !(v3 != 0) {
  10537. break
  10538. }
  10539. if int32(bits)&int32(bitsMask) != 0 {
  10540. (*(*func(*libc.TLS, uintptr, int32, int32, uint64) int32)(unsafe.Pointer(&struct{ uintptr }{(*TXImage)(unsafe.Pointer(image)).Ff.Fput_pixel})))(tls, image, xspan, y, pixel)
  10541. }
  10542. bitsMask = uint8(int32(bitsMask) >> int32(1))
  10543. if !(bitsMask != 0) {
  10544. v4 = src
  10545. src++
  10546. bits = *(*uint8)(unsafe.Pointer(v4))
  10547. bitsMask = uint8(0x80)
  10548. }
  10549. xspan++
  10550. }
  10551. y++
  10552. }
  10553. }
  10554. /*
  10555. * As simple anti-aliasing is likely to be common, there are three
  10556. * optimized versions for the usual true color pixel formats (888, 565, 555).
  10557. * Other formats are handled by the general case
  10558. */
  10559. /*
  10560. * There are two ways of handling alpha -- either as a single unified value or
  10561. * a separate value for each component, hence each macro must have two
  10562. * versions. The unified alpha version has a 'U' at the end of the name,
  10563. * the component version has a 'C'. Similarly, functions which deal with
  10564. * this difference will have two versions using the same convention.
  10565. */
  10566. func _fbOver24(tls *libc.TLS, x TCARD32, y TCARD32) (r TCARD32) {
  10567. var a, t TCARD16
  10568. var m, n, o TCARD32
  10569. _, _, _, _, _ = a, m, n, o, t
  10570. a = uint16(^x >> libc.Int32FromInt32(24))
  10571. t = uint16(0)
  10572. t = uint16(int32(uint16(uint8(y>>libc.Int32FromInt32(0))))*int32(a) + libc.Int32FromInt32(0x80))
  10573. t = uint16(int32(uint16((int32(t)>>libc.Int32FromInt32(8)+int32(t))>>libc.Int32FromInt32(8))) + int32(uint16(uint8(x>>libc.Int32FromInt32(0)))))
  10574. m = uint32(uint8(int32(t)|(libc.Int32FromInt32(0)-int32(t)>>libc.Int32FromInt32(8)))) << libc.Int32FromInt32(0)
  10575. t = uint16(int32(uint16(uint8(y>>libc.Int32FromInt32(8))))*int32(a) + libc.Int32FromInt32(0x80))
  10576. t = uint16(int32(uint16((int32(t)>>libc.Int32FromInt32(8)+int32(t))>>libc.Int32FromInt32(8))) + int32(uint16(uint8(x>>libc.Int32FromInt32(8)))))
  10577. n = uint32(uint8(int32(t)|(libc.Int32FromInt32(0)-int32(t)>>libc.Int32FromInt32(8)))) << libc.Int32FromInt32(8)
  10578. t = uint16(int32(uint16(uint8(y>>libc.Int32FromInt32(16))))*int32(a) + libc.Int32FromInt32(0x80))
  10579. t = uint16(int32(uint16((int32(t)>>libc.Int32FromInt32(8)+int32(t))>>libc.Int32FromInt32(8))) + int32(uint16(uint8(x>>libc.Int32FromInt32(16)))))
  10580. o = uint32(uint8(int32(t)|(libc.Int32FromInt32(0)-int32(t)>>libc.Int32FromInt32(8)))) << libc.Int32FromInt32(16)
  10581. return m | n | o
  10582. }
  10583. func _fbIn(tls *libc.TLS, x TCARD32, y TCARD8) (r TCARD32) {
  10584. var a, t TCARD16
  10585. var m, n, o, p TCARD32
  10586. _, _, _, _, _, _ = a, m, n, o, p, t
  10587. a = uint16(y)
  10588. t = uint16(int32(uint16(uint8(x>>libc.Int32FromInt32(0))))*int32(a) + libc.Int32FromInt32(0x80))
  10589. m = uint32((int32(t)>>libc.Int32FromInt32(8)+int32(t))>>libc.Int32FromInt32(8)) << 0
  10590. t = uint16(int32(uint16(uint8(x>>libc.Int32FromInt32(8))))*int32(a) + libc.Int32FromInt32(0x80))
  10591. n = uint32((int32(t)>>libc.Int32FromInt32(8)+int32(t))>>libc.Int32FromInt32(8)) << int32(8)
  10592. t = uint16(int32(uint16(uint8(x>>libc.Int32FromInt32(16))))*int32(a) + libc.Int32FromInt32(0x80))
  10593. o = uint32((int32(t)>>libc.Int32FromInt32(8)+int32(t))>>libc.Int32FromInt32(8)) << int32(16)
  10594. t = uint16(int32(uint16(uint8(x>>libc.Int32FromInt32(24))))*int32(a) + libc.Int32FromInt32(0x80))
  10595. p = uint32((int32(t)>>libc.Int32FromInt32(8)+int32(t))>>libc.Int32FromInt32(8)) << int32(24)
  10596. return m | n | o | p
  10597. }
  10598. func __XftSmoothGlyphGray8888(tls *libc.TLS, image uintptr, xftg uintptr, x int32, y int32, color uintptr) {
  10599. var b, d, g, r, src, srca TCARD32
  10600. var dst, dstLine, mask, maskLine, v3 uintptr
  10601. var dstStride, height, maskStride, w, width, v1, v2 int32
  10602. var m TCARD8
  10603. _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = b, d, dst, dstLine, dstStride, g, height, m, mask, maskLine, maskStride, r, src, srca, w, width, v1, v2, v3
  10604. srca = uint32(int32((*TXftColor)(unsafe.Pointer(color)).Fcolor.Falpha) >> int32(8))
  10605. /* This handles only RGB and BGR */
  10606. g = uint32(int32((*TXftColor)(unsafe.Pointer(color)).Fcolor.Fgreen) & libc.Int32FromInt32(0xff00))
  10607. if (*TXImage)(unsafe.Pointer(image)).Fred_mask == uint64(0xff0000) {
  10608. r = uint32(int32((*TXftColor)(unsafe.Pointer(color)).Fcolor.Fred) & int32(0xff00) << int32(8))
  10609. b = uint32(int32((*TXftColor)(unsafe.Pointer(color)).Fcolor.Fblue) >> int32(8))
  10610. } else {
  10611. r = uint32(int32((*TXftColor)(unsafe.Pointer(color)).Fcolor.Fred) >> int32(8))
  10612. b = uint32(int32((*TXftColor)(unsafe.Pointer(color)).Fcolor.Fblue) & int32(0xff00) << int32(8))
  10613. }
  10614. src = srca<<libc.Int32FromInt32(24) | r | g | b
  10615. width = int32((*TXftGlyph)(unsafe.Pointer(xftg)).Fmetrics.Fwidth)
  10616. height = int32((*TXftGlyph)(unsafe.Pointer(xftg)).Fmetrics.Fheight)
  10617. x -= int32((*TXftGlyph)(unsafe.Pointer(xftg)).Fmetrics.Fx)
  10618. y -= int32((*TXftGlyph)(unsafe.Pointer(xftg)).Fmetrics.Fy)
  10619. dstLine = (*TXImage)(unsafe.Pointer(image)).Fdata + uintptr((*TXImage)(unsafe.Pointer(image)).Fbytes_per_line*y) + uintptr(x<<libc.Int32FromInt32(2))
  10620. dstStride = (*TXImage)(unsafe.Pointer(image)).Fbytes_per_line >> int32(2)
  10621. maskLine = (*TXftGlyph)(unsafe.Pointer(xftg)).Fbitmap
  10622. maskStride = (width + int32(3)) & ^libc.Int32FromInt32(3)
  10623. for {
  10624. v1 = height
  10625. height--
  10626. if !(v1 != 0) {
  10627. break
  10628. }
  10629. dst = dstLine
  10630. dstLine += uintptr(dstStride) * 4
  10631. mask = maskLine
  10632. maskLine += uintptr(maskStride)
  10633. w = width
  10634. for {
  10635. v2 = w
  10636. w--
  10637. if !(v2 != 0) {
  10638. break
  10639. }
  10640. v3 = mask
  10641. mask++
  10642. m = *(*TCARD8)(unsafe.Pointer(v3))
  10643. if int32(m) == int32(0xff) {
  10644. if srca == uint32(0xff) {
  10645. *(*TCARD32)(unsafe.Pointer(dst)) = src
  10646. } else {
  10647. *(*TCARD32)(unsafe.Pointer(dst)) = _fbOver24(tls, src, *(*TCARD32)(unsafe.Pointer(dst)))
  10648. }
  10649. } else {
  10650. if m != 0 {
  10651. d = _fbIn(tls, src, m)
  10652. *(*TCARD32)(unsafe.Pointer(dst)) = _fbOver24(tls, d, *(*TCARD32)(unsafe.Pointer(dst)))
  10653. }
  10654. }
  10655. dst += 4
  10656. }
  10657. }
  10658. }
  10659. func __XftSmoothGlyphGray565(tls *libc.TLS, image uintptr, xftg uintptr, x int32, y int32, color uintptr) {
  10660. var b, d, g, r, src, srca TCARD32
  10661. var dst, dstLine, mask, maskLine, v3 uintptr
  10662. var dstStride, height, maskStride, w, width, v1, v2 int32
  10663. var m TCARD8
  10664. _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = b, d, dst, dstLine, dstStride, g, height, m, mask, maskLine, maskStride, r, src, srca, w, width, v1, v2, v3
  10665. srca = uint32(int32((*TXftColor)(unsafe.Pointer(color)).Fcolor.Falpha) >> int32(8))
  10666. /* This handles only RGB and BGR */
  10667. g = uint32(int32((*TXftColor)(unsafe.Pointer(color)).Fcolor.Fgreen) & libc.Int32FromInt32(0xff00))
  10668. if (*TXImage)(unsafe.Pointer(image)).Fred_mask == uint64(0xf800) {
  10669. r = uint32(int32((*TXftColor)(unsafe.Pointer(color)).Fcolor.Fred) & int32(0xff00) << int32(8))
  10670. b = uint32(int32((*TXftColor)(unsafe.Pointer(color)).Fcolor.Fblue) >> int32(8))
  10671. } else {
  10672. r = uint32(int32((*TXftColor)(unsafe.Pointer(color)).Fcolor.Fred) >> int32(8))
  10673. b = uint32(int32((*TXftColor)(unsafe.Pointer(color)).Fcolor.Fblue) & int32(0xff00) << int32(8))
  10674. }
  10675. src = srca<<libc.Int32FromInt32(24) | r | g | b
  10676. width = int32((*TXftGlyph)(unsafe.Pointer(xftg)).Fmetrics.Fwidth)
  10677. height = int32((*TXftGlyph)(unsafe.Pointer(xftg)).Fmetrics.Fheight)
  10678. x -= int32((*TXftGlyph)(unsafe.Pointer(xftg)).Fmetrics.Fx)
  10679. y -= int32((*TXftGlyph)(unsafe.Pointer(xftg)).Fmetrics.Fy)
  10680. dstLine = (*TXImage)(unsafe.Pointer(image)).Fdata + uintptr((*TXImage)(unsafe.Pointer(image)).Fbytes_per_line*y) + uintptr(x<<libc.Int32FromInt32(1))
  10681. dstStride = (*TXImage)(unsafe.Pointer(image)).Fbytes_per_line >> int32(1)
  10682. maskLine = (*TXftGlyph)(unsafe.Pointer(xftg)).Fbitmap
  10683. maskStride = (width + int32(3)) & ^libc.Int32FromInt32(3)
  10684. for {
  10685. v1 = height
  10686. height--
  10687. if !(v1 != 0) {
  10688. break
  10689. }
  10690. dst = dstLine
  10691. dstLine += uintptr(dstStride) * 2
  10692. mask = maskLine
  10693. maskLine += uintptr(maskStride)
  10694. w = width
  10695. for {
  10696. v2 = w
  10697. w--
  10698. if !(v2 != 0) {
  10699. break
  10700. }
  10701. v3 = mask
  10702. mask++
  10703. m = *(*TCARD8)(unsafe.Pointer(v3))
  10704. if int32(m) == int32(0xff) {
  10705. if srca == uint32(0xff) {
  10706. d = src
  10707. } else {
  10708. d = uint32(*(*TCARD16)(unsafe.Pointer(dst)))
  10709. d = _fbOver24(tls, src, d<<libc.Int32FromInt32(3)&libc.Uint32FromInt32(0xf8)|d>>libc.Int32FromInt32(2)&libc.Uint32FromInt32(0x7)|(d<<libc.Int32FromInt32(5)&libc.Uint32FromInt32(0xfc00)|d>>libc.Int32FromInt32(1)&libc.Uint32FromInt32(0x300))|(d<<libc.Int32FromInt32(8)&libc.Uint32FromInt32(0xf80000)|d<<libc.Int32FromInt32(3)&libc.Uint32FromInt32(0x70000)))
  10710. }
  10711. *(*TCARD16)(unsafe.Pointer(dst)) = uint16(d>>libc.Int32FromInt32(3)&libc.Uint32FromInt32(0x001f) | d>>libc.Int32FromInt32(5)&libc.Uint32FromInt32(0x07e0) | d>>libc.Int32FromInt32(8)&libc.Uint32FromInt32(0xf800))
  10712. } else {
  10713. if m != 0 {
  10714. d = uint32(*(*TCARD16)(unsafe.Pointer(dst)))
  10715. d = _fbOver24(tls, _fbIn(tls, src, m), d<<libc.Int32FromInt32(3)&libc.Uint32FromInt32(0xf8)|d>>libc.Int32FromInt32(2)&libc.Uint32FromInt32(0x7)|(d<<libc.Int32FromInt32(5)&libc.Uint32FromInt32(0xfc00)|d>>libc.Int32FromInt32(1)&libc.Uint32FromInt32(0x300))|(d<<libc.Int32FromInt32(8)&libc.Uint32FromInt32(0xf80000)|d<<libc.Int32FromInt32(3)&libc.Uint32FromInt32(0x70000)))
  10716. *(*TCARD16)(unsafe.Pointer(dst)) = uint16(d>>libc.Int32FromInt32(3)&libc.Uint32FromInt32(0x001f) | d>>libc.Int32FromInt32(5)&libc.Uint32FromInt32(0x07e0) | d>>libc.Int32FromInt32(8)&libc.Uint32FromInt32(0xf800))
  10717. }
  10718. }
  10719. dst += 2
  10720. }
  10721. }
  10722. }
  10723. func __XftSmoothGlyphGray555(tls *libc.TLS, image uintptr, xftg uintptr, x int32, y int32, color uintptr) {
  10724. var b, d, g, r, src, srca TCARD32
  10725. var dst, dstLine, mask, maskLine, v3 uintptr
  10726. var dstStride, height, maskStride, w, width, v1, v2 int32
  10727. var m TCARD8
  10728. _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = b, d, dst, dstLine, dstStride, g, height, m, mask, maskLine, maskStride, r, src, srca, w, width, v1, v2, v3
  10729. srca = uint32(int32((*TXftColor)(unsafe.Pointer(color)).Fcolor.Falpha) >> int32(8))
  10730. /* This handles only RGB and BGR */
  10731. g = uint32(int32((*TXftColor)(unsafe.Pointer(color)).Fcolor.Fgreen) & libc.Int32FromInt32(0xff00))
  10732. if (*TXImage)(unsafe.Pointer(image)).Fred_mask == uint64(0xf800) {
  10733. r = uint32(int32((*TXftColor)(unsafe.Pointer(color)).Fcolor.Fred) & int32(0xff00) << int32(8))
  10734. b = uint32(int32((*TXftColor)(unsafe.Pointer(color)).Fcolor.Fblue) >> int32(8))
  10735. } else {
  10736. r = uint32(int32((*TXftColor)(unsafe.Pointer(color)).Fcolor.Fred) >> int32(8))
  10737. b = uint32(int32((*TXftColor)(unsafe.Pointer(color)).Fcolor.Fblue) & int32(0xff00) << int32(8))
  10738. }
  10739. src = srca<<libc.Int32FromInt32(24) | r | g | b
  10740. width = int32((*TXftGlyph)(unsafe.Pointer(xftg)).Fmetrics.Fwidth)
  10741. height = int32((*TXftGlyph)(unsafe.Pointer(xftg)).Fmetrics.Fheight)
  10742. x -= int32((*TXftGlyph)(unsafe.Pointer(xftg)).Fmetrics.Fx)
  10743. y -= int32((*TXftGlyph)(unsafe.Pointer(xftg)).Fmetrics.Fy)
  10744. dstLine = (*TXImage)(unsafe.Pointer(image)).Fdata + uintptr((*TXImage)(unsafe.Pointer(image)).Fbytes_per_line*y) + uintptr(x<<libc.Int32FromInt32(1))
  10745. dstStride = (*TXImage)(unsafe.Pointer(image)).Fbytes_per_line >> int32(1)
  10746. maskLine = (*TXftGlyph)(unsafe.Pointer(xftg)).Fbitmap
  10747. maskStride = (width + int32(3)) & ^libc.Int32FromInt32(3)
  10748. for {
  10749. v1 = height
  10750. height--
  10751. if !(v1 != 0) {
  10752. break
  10753. }
  10754. dst = dstLine
  10755. dstLine += uintptr(dstStride) * 2
  10756. mask = maskLine
  10757. maskLine += uintptr(maskStride)
  10758. w = width
  10759. for {
  10760. v2 = w
  10761. w--
  10762. if !(v2 != 0) {
  10763. break
  10764. }
  10765. v3 = mask
  10766. mask++
  10767. m = *(*TCARD8)(unsafe.Pointer(v3))
  10768. if int32(m) == int32(0xff) {
  10769. if srca == uint32(0xff) {
  10770. d = src
  10771. } else {
  10772. d = uint32(*(*TCARD16)(unsafe.Pointer(dst)))
  10773. d = _fbOver24(tls, src, d<<libc.Int32FromInt32(3)&libc.Uint32FromInt32(0xf8)|d>>libc.Int32FromInt32(2)&libc.Uint32FromInt32(0x7)|(d<<libc.Int32FromInt32(6)&libc.Uint32FromInt32(0xf800)|d>>libc.Int32FromInt32(0)&libc.Uint32FromInt32(0x300))|(d<<libc.Int32FromInt32(9)&libc.Uint32FromInt32(0xf80000)|d<<libc.Int32FromInt32(4)&libc.Uint32FromInt32(0x70000)))
  10774. }
  10775. *(*TCARD16)(unsafe.Pointer(dst)) = uint16(d>>libc.Int32FromInt32(3)&libc.Uint32FromInt32(0x001f) | d>>libc.Int32FromInt32(6)&libc.Uint32FromInt32(0x03e0) | d>>libc.Int32FromInt32(7)&libc.Uint32FromInt32(0x7c00))
  10776. } else {
  10777. if m != 0 {
  10778. d = uint32(*(*TCARD16)(unsafe.Pointer(dst)))
  10779. d = _fbOver24(tls, _fbIn(tls, src, m), d<<libc.Int32FromInt32(3)&libc.Uint32FromInt32(0xf8)|d>>libc.Int32FromInt32(2)&libc.Uint32FromInt32(0x7)|(d<<libc.Int32FromInt32(6)&libc.Uint32FromInt32(0xf800)|d>>libc.Int32FromInt32(0)&libc.Uint32FromInt32(0x300))|(d<<libc.Int32FromInt32(9)&libc.Uint32FromInt32(0xf80000)|d<<libc.Int32FromInt32(4)&libc.Uint32FromInt32(0x70000)))
  10780. *(*TCARD16)(unsafe.Pointer(dst)) = uint16(d>>libc.Int32FromInt32(3)&libc.Uint32FromInt32(0x001f) | d>>libc.Int32FromInt32(6)&libc.Uint32FromInt32(0x03e0) | d>>libc.Int32FromInt32(7)&libc.Uint32FromInt32(0x7c00))
  10781. }
  10782. }
  10783. dst += 2
  10784. }
  10785. }
  10786. }
  10787. func __XftSmoothGlyphGray(tls *libc.TLS, image uintptr, xftg uintptr, x int32, y int32, color uintptr) {
  10788. bp := tls.Alloc(32)
  10789. defer tls.Free(32)
  10790. var d, src, srca TCARD32
  10791. var height, maskStride, tx, w, width, v1, v2 int32
  10792. var m TCARD8
  10793. var mask, maskLine, v3 uintptr
  10794. var pixel uint64
  10795. var _ /* b_len at bp+20 */ int32
  10796. var _ /* b_shift at bp+16 */ int32
  10797. var _ /* g_len at bp+12 */ int32
  10798. var _ /* g_shift at bp+8 */ int32
  10799. var _ /* r_len at bp+4 */ int32
  10800. var _ /* r_shift at bp+0 */ int32
  10801. _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = d, height, m, mask, maskLine, maskStride, pixel, src, srca, tx, w, width, v1, v2, v3
  10802. srca = uint32(int32((*TXftColor)(unsafe.Pointer(color)).Fcolor.Falpha) >> int32(8))
  10803. src = srca<<libc.Int32FromInt32(24) | uint32(int32((*TXftColor)(unsafe.Pointer(color)).Fcolor.Fred)&libc.Int32FromInt32(0xff00)<<libc.Int32FromInt32(8)) | uint32(int32((*TXftColor)(unsafe.Pointer(color)).Fcolor.Fgreen)&libc.Int32FromInt32(0xff00)) | uint32(int32((*TXftColor)(unsafe.Pointer(color)).Fcolor.Fblue)>>libc.Int32FromInt32(8))
  10804. x -= int32((*TXftGlyph)(unsafe.Pointer(xftg)).Fmetrics.Fx)
  10805. y -= int32((*TXftGlyph)(unsafe.Pointer(xftg)).Fmetrics.Fy)
  10806. width = int32((*TXftGlyph)(unsafe.Pointer(xftg)).Fmetrics.Fwidth)
  10807. height = int32((*TXftGlyph)(unsafe.Pointer(xftg)).Fmetrics.Fheight)
  10808. maskLine = (*TXftGlyph)(unsafe.Pointer(xftg)).Fbitmap
  10809. maskStride = (width + int32(3)) & ^libc.Int32FromInt32(3)
  10810. __XftExamineBitfield(tls, (*TXImage)(unsafe.Pointer(image)).Fred_mask, bp, bp+4)
  10811. __XftExamineBitfield(tls, (*TXImage)(unsafe.Pointer(image)).Fgreen_mask, bp+8, bp+12)
  10812. __XftExamineBitfield(tls, (*TXImage)(unsafe.Pointer(image)).Fblue_mask, bp+16, bp+20)
  10813. for {
  10814. v1 = height
  10815. height--
  10816. if !(v1 != 0) {
  10817. break
  10818. }
  10819. mask = maskLine
  10820. maskLine += uintptr(maskStride)
  10821. w = width
  10822. tx = x
  10823. for {
  10824. v2 = w
  10825. w--
  10826. if !(v2 != 0) {
  10827. break
  10828. }
  10829. v3 = mask
  10830. mask++
  10831. m = *(*TCARD8)(unsafe.Pointer(v3))
  10832. if int32(m) == int32(0xff) {
  10833. if srca == uint32(0xff) {
  10834. d = src
  10835. } else {
  10836. pixel = (*(*func(*libc.TLS, uintptr, int32, int32) uint64)(unsafe.Pointer(&struct{ uintptr }{(*TXImage)(unsafe.Pointer(image)).Ff.Fget_pixel})))(tls, image, tx, y)
  10837. d = __XftGetField(tls, pixel, *(*int32)(unsafe.Pointer(bp)), *(*int32)(unsafe.Pointer(bp + 4)))<<libc.Int32FromInt32(16) | __XftGetField(tls, pixel, *(*int32)(unsafe.Pointer(bp + 8)), *(*int32)(unsafe.Pointer(bp + 12)))<<libc.Int32FromInt32(8) | __XftGetField(tls, pixel, *(*int32)(unsafe.Pointer(bp + 16)), *(*int32)(unsafe.Pointer(bp + 20)))
  10838. d = _fbOver24(tls, src, d)
  10839. }
  10840. pixel = __XftPutField(tls, d>>libc.Int32FromInt32(16)&uint32(0xff), *(*int32)(unsafe.Pointer(bp)), *(*int32)(unsafe.Pointer(bp + 4))) | __XftPutField(tls, d>>libc.Int32FromInt32(8)&uint32(0xff), *(*int32)(unsafe.Pointer(bp + 8)), *(*int32)(unsafe.Pointer(bp + 12))) | __XftPutField(tls, d&uint32(0xff), *(*int32)(unsafe.Pointer(bp + 16)), *(*int32)(unsafe.Pointer(bp + 20)))
  10841. (*(*func(*libc.TLS, uintptr, int32, int32, uint64) int32)(unsafe.Pointer(&struct{ uintptr }{(*TXImage)(unsafe.Pointer(image)).Ff.Fput_pixel})))(tls, image, tx, y, pixel)
  10842. } else {
  10843. if m != 0 {
  10844. pixel = (*(*func(*libc.TLS, uintptr, int32, int32) uint64)(unsafe.Pointer(&struct{ uintptr }{(*TXImage)(unsafe.Pointer(image)).Ff.Fget_pixel})))(tls, image, tx, y)
  10845. d = __XftGetField(tls, pixel, *(*int32)(unsafe.Pointer(bp)), *(*int32)(unsafe.Pointer(bp + 4)))<<libc.Int32FromInt32(16) | __XftGetField(tls, pixel, *(*int32)(unsafe.Pointer(bp + 8)), *(*int32)(unsafe.Pointer(bp + 12)))<<libc.Int32FromInt32(8) | __XftGetField(tls, pixel, *(*int32)(unsafe.Pointer(bp + 16)), *(*int32)(unsafe.Pointer(bp + 20)))
  10846. d = _fbOver24(tls, _fbIn(tls, src, m), d)
  10847. pixel = __XftPutField(tls, d>>libc.Int32FromInt32(16)&uint32(0xff), *(*int32)(unsafe.Pointer(bp)), *(*int32)(unsafe.Pointer(bp + 4))) | __XftPutField(tls, d>>libc.Int32FromInt32(8)&uint32(0xff), *(*int32)(unsafe.Pointer(bp + 8)), *(*int32)(unsafe.Pointer(bp + 12))) | __XftPutField(tls, d&uint32(0xff), *(*int32)(unsafe.Pointer(bp + 16)), *(*int32)(unsafe.Pointer(bp + 20)))
  10848. (*(*func(*libc.TLS, uintptr, int32, int32, uint64) int32)(unsafe.Pointer(&struct{ uintptr }{(*TXImage)(unsafe.Pointer(image)).Ff.Fput_pixel})))(tls, image, tx, y, pixel)
  10849. }
  10850. }
  10851. tx++
  10852. }
  10853. y++
  10854. }
  10855. }
  10856. func __XftSmoothGlyphRgba(tls *libc.TLS, image uintptr, xftg uintptr, x int32, y int32, color uintptr) {
  10857. bp := tls.Alloc(32)
  10858. defer tls.Free(32)
  10859. var __a, __a1, __a2 TCARD16
  10860. var __i, __i1, __i2, __t, __t1, __t2, __ta, __ta1, __ta2, d, m, ma, n, o, src, srca TCARD32
  10861. var height, tx, w, width, v1, v2 int32
  10862. var mask, v3 uintptr
  10863. var pixel uint64
  10864. var _ /* b_len at bp+20 */ int32
  10865. var _ /* b_shift at bp+16 */ int32
  10866. var _ /* g_len at bp+12 */ int32
  10867. var _ /* g_shift at bp+8 */ int32
  10868. var _ /* r_len at bp+4 */ int32
  10869. var _ /* r_shift at bp+0 */ int32
  10870. _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = __a, __a1, __a2, __i, __i1, __i2, __t, __t1, __t2, __ta, __ta1, __ta2, d, height, m, ma, mask, n, o, pixel, src, srca, tx, w, width, v1, v2, v3
  10871. srca = uint32(int32((*TXftColor)(unsafe.Pointer(color)).Fcolor.Falpha) >> int32(8))
  10872. src = srca<<libc.Int32FromInt32(24) | uint32(int32((*TXftColor)(unsafe.Pointer(color)).Fcolor.Fred)&libc.Int32FromInt32(0xff00)<<libc.Int32FromInt32(8)) | uint32(int32((*TXftColor)(unsafe.Pointer(color)).Fcolor.Fgreen)&libc.Int32FromInt32(0xff00)) | uint32(int32((*TXftColor)(unsafe.Pointer(color)).Fcolor.Fblue)>>libc.Int32FromInt32(8))
  10873. x -= int32((*TXftGlyph)(unsafe.Pointer(xftg)).Fmetrics.Fx)
  10874. y -= int32((*TXftGlyph)(unsafe.Pointer(xftg)).Fmetrics.Fy)
  10875. width = int32((*TXftGlyph)(unsafe.Pointer(xftg)).Fmetrics.Fwidth)
  10876. height = int32((*TXftGlyph)(unsafe.Pointer(xftg)).Fmetrics.Fheight)
  10877. mask = (*TXftGlyph)(unsafe.Pointer(xftg)).Fbitmap
  10878. __XftExamineBitfield(tls, (*TXImage)(unsafe.Pointer(image)).Fred_mask, bp, bp+4)
  10879. __XftExamineBitfield(tls, (*TXImage)(unsafe.Pointer(image)).Fgreen_mask, bp+8, bp+12)
  10880. __XftExamineBitfield(tls, (*TXImage)(unsafe.Pointer(image)).Fblue_mask, bp+16, bp+20)
  10881. for {
  10882. v1 = height
  10883. height--
  10884. if !(v1 != 0) {
  10885. break
  10886. }
  10887. w = width
  10888. tx = x
  10889. for {
  10890. v2 = w
  10891. w--
  10892. if !(v2 != 0) {
  10893. break
  10894. }
  10895. v3 = mask
  10896. mask += 4
  10897. ma = *(*TCARD32)(unsafe.Pointer(v3))
  10898. if ma == uint32(0xffffffff) {
  10899. if srca == uint32(0xff) {
  10900. d = src
  10901. } else {
  10902. pixel = (*(*func(*libc.TLS, uintptr, int32, int32) uint64)(unsafe.Pointer(&struct{ uintptr }{(*TXImage)(unsafe.Pointer(image)).Ff.Fget_pixel})))(tls, image, tx, y)
  10903. d = __XftGetField(tls, pixel, *(*int32)(unsafe.Pointer(bp)), *(*int32)(unsafe.Pointer(bp + 4)))<<libc.Int32FromInt32(16) | __XftGetField(tls, pixel, *(*int32)(unsafe.Pointer(bp + 8)), *(*int32)(unsafe.Pointer(bp + 12)))<<libc.Int32FromInt32(8) | __XftGetField(tls, pixel, *(*int32)(unsafe.Pointer(bp + 16)), *(*int32)(unsafe.Pointer(bp + 20)))
  10904. d = _fbOver24(tls, src, d)
  10905. }
  10906. pixel = __XftPutField(tls, d>>libc.Int32FromInt32(16)&uint32(0xff), *(*int32)(unsafe.Pointer(bp)), *(*int32)(unsafe.Pointer(bp + 4))) | __XftPutField(tls, d>>libc.Int32FromInt32(8)&uint32(0xff), *(*int32)(unsafe.Pointer(bp + 8)), *(*int32)(unsafe.Pointer(bp + 12))) | __XftPutField(tls, d&uint32(0xff), *(*int32)(unsafe.Pointer(bp + 16)), *(*int32)(unsafe.Pointer(bp + 20)))
  10907. (*(*func(*libc.TLS, uintptr, int32, int32, uint64) int32)(unsafe.Pointer(&struct{ uintptr }{(*TXImage)(unsafe.Pointer(image)).Ff.Fput_pixel})))(tls, image, tx, y, pixel)
  10908. } else {
  10909. if ma != 0 {
  10910. pixel = (*(*func(*libc.TLS, uintptr, int32, int32) uint64)(unsafe.Pointer(&struct{ uintptr }{(*TXImage)(unsafe.Pointer(image)).Ff.Fget_pixel})))(tls, image, tx, y)
  10911. d = __XftGetField(tls, pixel, *(*int32)(unsafe.Pointer(bp)), *(*int32)(unsafe.Pointer(bp + 4)))<<libc.Int32FromInt32(16) | __XftGetField(tls, pixel, *(*int32)(unsafe.Pointer(bp + 8)), *(*int32)(unsafe.Pointer(bp + 12)))<<libc.Int32FromInt32(8) | __XftGetField(tls, pixel, *(*int32)(unsafe.Pointer(bp + 16)), *(*int32)(unsafe.Pointer(bp + 20)))
  10912. __a = uint16(uint8(ma >> libc.Int32FromInt32(0)))
  10913. __i = uint32(int32(uint16(uint8(src>>libc.Int32FromInt32(0))))*int32(__a) + libc.Int32FromInt32(0x80))
  10914. __t = (__i>>libc.Int32FromInt32(8) + __i) >> libc.Int32FromInt32(8)
  10915. __i = srca*uint32(__a) + libc.Uint32FromInt32(0x80)
  10916. __ta = uint32(uint8(^((__i>>libc.Int32FromInt32(8) + __i) >> libc.Int32FromInt32(8))))
  10917. __i = uint32(uint16(uint8(d>>libc.Int32FromInt32(0))))*__ta + libc.Uint32FromInt32(0x80)
  10918. __t = __t + (__i>>libc.Int32FromInt32(8)+__i)>>libc.Int32FromInt32(8)
  10919. __t = uint32(uint8(__t | -(__t >> libc.Int32FromInt32(8))))
  10920. m = __t << 0
  10921. __a1 = uint16(uint8(ma >> libc.Int32FromInt32(8)))
  10922. __i1 = uint32(int32(uint16(uint8(src>>libc.Int32FromInt32(8))))*int32(__a1) + libc.Int32FromInt32(0x80))
  10923. __t1 = (__i1>>libc.Int32FromInt32(8) + __i1) >> libc.Int32FromInt32(8)
  10924. __i1 = srca*uint32(__a1) + libc.Uint32FromInt32(0x80)
  10925. __ta1 = uint32(uint8(^((__i1>>libc.Int32FromInt32(8) + __i1) >> libc.Int32FromInt32(8))))
  10926. __i1 = uint32(uint16(uint8(d>>libc.Int32FromInt32(8))))*__ta1 + libc.Uint32FromInt32(0x80)
  10927. __t1 = __t1 + (__i1>>libc.Int32FromInt32(8)+__i1)>>libc.Int32FromInt32(8)
  10928. __t1 = uint32(uint8(__t1 | -(__t1 >> libc.Int32FromInt32(8))))
  10929. n = __t1 << int32(8)
  10930. __a2 = uint16(uint8(ma >> libc.Int32FromInt32(16)))
  10931. __i2 = uint32(int32(uint16(uint8(src>>libc.Int32FromInt32(16))))*int32(__a2) + libc.Int32FromInt32(0x80))
  10932. __t2 = (__i2>>libc.Int32FromInt32(8) + __i2) >> libc.Int32FromInt32(8)
  10933. __i2 = srca*uint32(__a2) + libc.Uint32FromInt32(0x80)
  10934. __ta2 = uint32(uint8(^((__i2>>libc.Int32FromInt32(8) + __i2) >> libc.Int32FromInt32(8))))
  10935. __i2 = uint32(uint16(uint8(d>>libc.Int32FromInt32(16))))*__ta2 + libc.Uint32FromInt32(0x80)
  10936. __t2 = __t2 + (__i2>>libc.Int32FromInt32(8)+__i2)>>libc.Int32FromInt32(8)
  10937. __t2 = uint32(uint8(__t2 | -(__t2 >> libc.Int32FromInt32(8))))
  10938. o = __t2 << int32(16)
  10939. d = m | n | o
  10940. pixel = __XftPutField(tls, d>>libc.Int32FromInt32(16)&uint32(0xff), *(*int32)(unsafe.Pointer(bp)), *(*int32)(unsafe.Pointer(bp + 4))) | __XftPutField(tls, d>>libc.Int32FromInt32(8)&uint32(0xff), *(*int32)(unsafe.Pointer(bp + 8)), *(*int32)(unsafe.Pointer(bp + 12))) | __XftPutField(tls, d&uint32(0xff), *(*int32)(unsafe.Pointer(bp + 16)), *(*int32)(unsafe.Pointer(bp + 20)))
  10941. (*(*func(*libc.TLS, uintptr, int32, int32, uint64) int32)(unsafe.Pointer(&struct{ uintptr }{(*TXImage)(unsafe.Pointer(image)).Ff.Fput_pixel})))(tls, image, tx, y, pixel)
  10942. }
  10943. }
  10944. tx++
  10945. }
  10946. y++
  10947. }
  10948. }
  10949. func __XftSmoothGlyphPossible(tls *libc.TLS, draw uintptr) (r TFcBool) {
  10950. if !((*TXftDraw)(unsafe.Pointer(draw)).Fvisual != 0) {
  10951. return m_FcFalse
  10952. }
  10953. if (*TVisual)(unsafe.Pointer((*TXftDraw)(unsafe.Pointer(draw)).Fvisual)).Fclass != int32(m_TrueColor) {
  10954. return m_FcFalse
  10955. }
  10956. return int32(m_FcTrue)
  10957. }
  10958. type TXftSmoothGlyph = uintptr
  10959. func __XftSmoothGlyphFind(tls *libc.TLS, draw uintptr, public uintptr) (r TXftSmoothGlyph) {
  10960. var font uintptr
  10961. _ = font
  10962. font = public
  10963. if !((*TXftFontInt)(unsafe.Pointer(font)).Finfo.Fantialias != 0) {
  10964. return __ccgo_fp(__XftSmoothGlyphMono)
  10965. } else {
  10966. switch (*TXftFontInt)(unsafe.Pointer(font)).Finfo.Frgba {
  10967. case int32(m_FC_RGBA_RGB):
  10968. fallthrough
  10969. case int32(m_FC_RGBA_BGR):
  10970. fallthrough
  10971. case int32(m_FC_RGBA_VRGB):
  10972. fallthrough
  10973. case int32(m_FC_RGBA_VBGR):
  10974. return __ccgo_fp(__XftSmoothGlyphRgba)
  10975. default:
  10976. switch XXftDrawBitsPerPixel(tls, draw) {
  10977. case uint32(32):
  10978. if (*TVisual)(unsafe.Pointer((*TXftDraw)(unsafe.Pointer(draw)).Fvisual)).Fred_mask == uint64(0xff0000) && (*TVisual)(unsafe.Pointer((*TXftDraw)(unsafe.Pointer(draw)).Fvisual)).Fgreen_mask == uint64(0x00ff00) && (*TVisual)(unsafe.Pointer((*TXftDraw)(unsafe.Pointer(draw)).Fvisual)).Fblue_mask == uint64(0x0000ff) || (*TVisual)(unsafe.Pointer((*TXftDraw)(unsafe.Pointer(draw)).Fvisual)).Fred_mask == uint64(0x0000ff) && (*TVisual)(unsafe.Pointer((*TXftDraw)(unsafe.Pointer(draw)).Fvisual)).Fgreen_mask == uint64(0x00ff00) && (*TVisual)(unsafe.Pointer((*TXftDraw)(unsafe.Pointer(draw)).Fvisual)).Fblue_mask == uint64(0xff0000) {
  10979. return __ccgo_fp(__XftSmoothGlyphGray8888)
  10980. }
  10981. case uint32(16):
  10982. if (*TVisual)(unsafe.Pointer((*TXftDraw)(unsafe.Pointer(draw)).Fvisual)).Fred_mask == uint64(0xf800) && (*TVisual)(unsafe.Pointer((*TXftDraw)(unsafe.Pointer(draw)).Fvisual)).Fgreen_mask == uint64(0x07e0) && (*TVisual)(unsafe.Pointer((*TXftDraw)(unsafe.Pointer(draw)).Fvisual)).Fblue_mask == uint64(0x001f) || (*TVisual)(unsafe.Pointer((*TXftDraw)(unsafe.Pointer(draw)).Fvisual)).Fred_mask == uint64(0x001f) && (*TVisual)(unsafe.Pointer((*TXftDraw)(unsafe.Pointer(draw)).Fvisual)).Fgreen_mask == uint64(0x07e0) && (*TVisual)(unsafe.Pointer((*TXftDraw)(unsafe.Pointer(draw)).Fvisual)).Fblue_mask == uint64(0xf800) {
  10983. return __ccgo_fp(__XftSmoothGlyphGray565)
  10984. }
  10985. if (*TVisual)(unsafe.Pointer((*TXftDraw)(unsafe.Pointer(draw)).Fvisual)).Fred_mask == uint64(0x7c00) && (*TVisual)(unsafe.Pointer((*TXftDraw)(unsafe.Pointer(draw)).Fvisual)).Fgreen_mask == uint64(0x03e0) && (*TVisual)(unsafe.Pointer((*TXftDraw)(unsafe.Pointer(draw)).Fvisual)).Fblue_mask == uint64(0x001f) || (*TVisual)(unsafe.Pointer((*TXftDraw)(unsafe.Pointer(draw)).Fvisual)).Fred_mask == uint64(0x001f) && (*TVisual)(unsafe.Pointer((*TXftDraw)(unsafe.Pointer(draw)).Fvisual)).Fgreen_mask == uint64(0x03e0) && (*TVisual)(unsafe.Pointer((*TXftDraw)(unsafe.Pointer(draw)).Fvisual)).Fblue_mask == uint64(0x7c00) {
  10986. return __ccgo_fp(__XftSmoothGlyphGray555)
  10987. }
  10988. default:
  10989. break
  10990. }
  10991. return __ccgo_fp(__XftSmoothGlyphGray)
  10992. }
  10993. }
  10994. return r
  10995. }
  10996. func __XftGlyphDefault(tls *libc.TLS, dpy uintptr, public uintptr) (r uintptr) {
  10997. bp := tls.Alloc(1040)
  10998. defer tls.Free(1040)
  10999. var font uintptr
  11000. var glyphs_loaded TFcBool
  11001. var _ /* missing at bp+0 */ [256]TFT_UInt
  11002. var _ /* nmissing at bp+1024 */ int32
  11003. _, _ = font, glyphs_loaded
  11004. font = public
  11005. glyphs_loaded = m_FcFalse
  11006. if XXftFontCheckGlyph(tls, dpy, public, int32(m_FcTrue), uint32(0), bp, bp+1024) != 0 {
  11007. glyphs_loaded = int32(m_FcTrue)
  11008. }
  11009. if *(*int32)(unsafe.Pointer(bp + 1024)) != 0 {
  11010. XXftFontLoadGlyphs(tls, dpy, public, glyphs_loaded, bp, *(*int32)(unsafe.Pointer(bp + 1024)))
  11011. }
  11012. return *(*uintptr)(unsafe.Pointer((*TXftFontInt)(unsafe.Pointer(font)).Fglyphs))
  11013. }
  11014. func _XftGetImageErrorHandler(tls *libc.TLS, dpy uintptr, error_event uintptr) (r int32) {
  11015. return 0
  11016. }
  11017. func XXftGlyphCore(tls *libc.TLS, draw uintptr, color uintptr, public uintptr, x int32, y int32, glyphs uintptr, nglyphs int32) {
  11018. bp := tls.Alloc(1168)
  11019. defer tls.Free(1168)
  11020. var depth, v3 uint32
  11021. var dpy, font, g, image, xftg, v10, v11, v2, v6, v7 uintptr
  11022. var gc TGC
  11023. var glyph TFT_UInt
  11024. var glyphs_loaded TFcBool
  11025. var n, ox, oy, v1, v5, v9 int32
  11026. var pix TPixmap
  11027. var prev_error TXErrorHandler
  11028. var sharp TXftSharpGlyph
  11029. var smooth TXftSmoothGlyph
  11030. var v12, v4, v8 bool
  11031. var _ /* gcv at bp+1040 */ TXGCValues
  11032. var _ /* gi at bp+1028 */ TXGlyphInfo
  11033. var _ /* missing at bp+0 */ [256]TFT_UInt
  11034. var _ /* nmissing at bp+1024 */ int32
  11035. _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = depth, dpy, font, g, gc, glyph, glyphs_loaded, image, n, ox, oy, pix, prev_error, sharp, smooth, xftg, v1, v10, v11, v12, v2, v3, v4, v5, v6, v7, v8, v9
  11036. dpy = (*TXftDraw)(unsafe.Pointer(draw)).Fdpy
  11037. font = public
  11038. /*
  11039. * Load missing glyphs
  11040. */
  11041. g = glyphs
  11042. n = nglyphs
  11043. *(*int32)(unsafe.Pointer(bp + 1024)) = 0
  11044. glyphs_loaded = m_FcFalse
  11045. for {
  11046. v1 = n
  11047. n--
  11048. if !(v1 != 0) {
  11049. break
  11050. }
  11051. v2 = g
  11052. g += 4
  11053. if XXftFontCheckGlyph(tls, dpy, public, int32(m_FcTrue), *(*TFT_UInt)(unsafe.Pointer(v2)), bp, bp+1024) != 0 {
  11054. glyphs_loaded = int32(m_FcTrue)
  11055. }
  11056. }
  11057. if *(*int32)(unsafe.Pointer(bp + 1024)) != 0 {
  11058. XXftFontLoadGlyphs(tls, dpy, public, int32(m_FcTrue), bp, *(*int32)(unsafe.Pointer(bp + 1024)))
  11059. }
  11060. g = glyphs
  11061. n = nglyphs
  11062. if ((*TXftFontInt)(unsafe.Pointer(font)).Finfo.Fantialias != 0 || int32((*TXftColor)(unsafe.Pointer(color)).Fcolor.Falpha) != int32(0xffff)) && __XftSmoothGlyphPossible(tls, draw) != 0 {
  11063. smooth = __XftSmoothGlyphFind(tls, draw, public)
  11064. XXftGlyphExtents(tls, dpy, public, glyphs, nglyphs, bp+1028)
  11065. if !((*(*TXGlyphInfo)(unsafe.Pointer(bp + 1028))).Fwidth != 0) || !((*(*TXGlyphInfo)(unsafe.Pointer(bp + 1028))).Fheight != 0) {
  11066. goto bail1
  11067. }
  11068. ox = x - int32((*(*TXGlyphInfo)(unsafe.Pointer(bp + 1028))).Fx)
  11069. oy = y - int32((*(*TXGlyphInfo)(unsafe.Pointer(bp + 1028))).Fy)
  11070. /*
  11071. * Try to get bits directly from the drawable; if that fails,
  11072. * use a temporary pixmap. When it does fail, assume it
  11073. * will probably fail for a while and keep using temporary
  11074. * pixmaps for a while to avoid double round trips.
  11075. */
  11076. if (*TXftDraw)(unsafe.Pointer(draw)).Fcore.Fuse_pixmap == 0 {
  11077. prev_error = libx11.XXSetErrorHandler(tls, __ccgo_fp(_XftGetImageErrorHandler))
  11078. image = libx11.XXGetImage(tls, dpy, (*TXftDraw)(unsafe.Pointer(draw)).Fdrawable, ox, oy, uint32((*(*TXGlyphInfo)(unsafe.Pointer(bp + 1028))).Fwidth), uint32((*(*TXGlyphInfo)(unsafe.Pointer(bp + 1028))).Fheight), uint64(^libc.Int64FromInt64(0)), int32(m_ZPixmap))
  11079. libx11.XXSetErrorHandler(tls, prev_error)
  11080. if !(image != 0) {
  11081. (*TXftDraw)(unsafe.Pointer(draw)).Fcore.Fuse_pixmap = int32(m_XFT_ASSUME_PIXMAP)
  11082. }
  11083. } else {
  11084. (*TXftDraw)(unsafe.Pointer(draw)).Fcore.Fuse_pixmap--
  11085. image = libc.UintptrFromInt32(0)
  11086. }
  11087. if v4 = !(image != 0); v4 {
  11088. v3 = XXftDrawDepth(tls, draw)
  11089. depth = v3
  11090. }
  11091. if v4 && v3 != 0 {
  11092. pix = libx11.XXCreatePixmap(tls, dpy, (*TXftDraw)(unsafe.Pointer(draw)).Fdrawable, uint32((*(*TXGlyphInfo)(unsafe.Pointer(bp + 1028))).Fwidth), uint32((*(*TXGlyphInfo)(unsafe.Pointer(bp + 1028))).Fheight), depth)
  11093. (*(*TXGCValues)(unsafe.Pointer(bp + 1040))).Fgraphics_exposures = m_False
  11094. gc = libx11.XXCreateGC(tls, dpy, pix, uint64(libc.Int64FromInt64(1)<<libc.Int32FromInt32(16)), bp+1040)
  11095. libx11.XXCopyArea(tls, dpy, (*TXftDraw)(unsafe.Pointer(draw)).Fdrawable, pix, gc, ox, oy, uint32((*(*TXGlyphInfo)(unsafe.Pointer(bp + 1028))).Fwidth), uint32((*(*TXGlyphInfo)(unsafe.Pointer(bp + 1028))).Fheight), 0, 0)
  11096. libx11.XXFreeGC(tls, dpy, gc)
  11097. image = libx11.XXGetImage(tls, dpy, pix, 0, 0, uint32((*(*TXGlyphInfo)(unsafe.Pointer(bp + 1028))).Fwidth), uint32((*(*TXGlyphInfo)(unsafe.Pointer(bp + 1028))).Fheight), uint64(^libc.Int64FromInt64(0)), int32(m_ZPixmap))
  11098. libx11.XXFreePixmap(tls, dpy, pix)
  11099. }
  11100. if !(image != 0) {
  11101. goto bail1
  11102. }
  11103. (*TXImage)(unsafe.Pointer(image)).Fred_mask = (*TVisual)(unsafe.Pointer((*TXftDraw)(unsafe.Pointer(draw)).Fvisual)).Fred_mask
  11104. (*TXImage)(unsafe.Pointer(image)).Fgreen_mask = (*TVisual)(unsafe.Pointer((*TXftDraw)(unsafe.Pointer(draw)).Fvisual)).Fgreen_mask
  11105. (*TXImage)(unsafe.Pointer(image)).Fblue_mask = (*TVisual)(unsafe.Pointer((*TXftDraw)(unsafe.Pointer(draw)).Fvisual)).Fblue_mask
  11106. if (*TXImage)(unsafe.Pointer(image)).Fbyte_order != XXftNativeByteOrder(tls) {
  11107. XXftSwapImage(tls, image)
  11108. }
  11109. for {
  11110. v5 = n
  11111. n--
  11112. if !(v5 != 0) {
  11113. break
  11114. }
  11115. v6 = g
  11116. g += 4
  11117. glyph = *(*TFT_UInt)(unsafe.Pointer(v6))
  11118. if v8 = glyph >= (*TXftFontInt)(unsafe.Pointer(font)).Fnum_glyphs; !v8 {
  11119. v7 = *(*uintptr)(unsafe.Pointer((*TXftFontInt)(unsafe.Pointer(font)).Fglyphs + uintptr(glyph)*8))
  11120. xftg = v7
  11121. }
  11122. if v8 || !(v7 != 0) {
  11123. xftg = __XftGlyphDefault(tls, dpy, public)
  11124. }
  11125. if xftg != 0 {
  11126. (*(*func(*libc.TLS, uintptr, uintptr, int32, int32, uintptr))(unsafe.Pointer(&struct{ uintptr }{smooth})))(tls, image, xftg, x-ox, y-oy, color)
  11127. x += int32((*TXftGlyph)(unsafe.Pointer(xftg)).Fmetrics.FxOff)
  11128. y += int32((*TXftGlyph)(unsafe.Pointer(xftg)).Fmetrics.FyOff)
  11129. }
  11130. }
  11131. if (*TXImage)(unsafe.Pointer(image)).Fbyte_order != XXftNativeByteOrder(tls) {
  11132. XXftSwapImage(tls, image)
  11133. }
  11134. libx11.XXPutImage(tls, dpy, (*TXftDraw)(unsafe.Pointer(draw)).Fdrawable, (*TXftDraw)(unsafe.Pointer(draw)).Fcore.Fgc, image, 0, 0, ox, oy, uint32((*(*TXGlyphInfo)(unsafe.Pointer(bp + 1028))).Fwidth), uint32((*(*TXGlyphInfo)(unsafe.Pointer(bp + 1028))).Fheight))
  11135. (*(*func(*libc.TLS, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*TXImage)(unsafe.Pointer(image)).Ff.Fdestroy_image})))(tls, image)
  11136. } else {
  11137. sharp = __XftSharpGlyphFind(tls, draw, public)
  11138. for {
  11139. v9 = n
  11140. n--
  11141. if !(v9 != 0) {
  11142. break
  11143. }
  11144. v10 = g
  11145. g += 4
  11146. glyph = *(*TFT_UInt)(unsafe.Pointer(v10))
  11147. if v12 = glyph >= (*TXftFontInt)(unsafe.Pointer(font)).Fnum_glyphs; !v12 {
  11148. v11 = *(*uintptr)(unsafe.Pointer((*TXftFontInt)(unsafe.Pointer(font)).Fglyphs + uintptr(glyph)*8))
  11149. xftg = v11
  11150. }
  11151. if v12 || !(v11 != 0) {
  11152. xftg = __XftGlyphDefault(tls, dpy, public)
  11153. }
  11154. if xftg != 0 {
  11155. (*(*func(*libc.TLS, uintptr, uintptr, int32, int32))(unsafe.Pointer(&struct{ uintptr }{sharp})))(tls, draw, xftg, x, y)
  11156. x += int32((*TXftGlyph)(unsafe.Pointer(xftg)).Fmetrics.FxOff)
  11157. y += int32((*TXftGlyph)(unsafe.Pointer(xftg)).Fmetrics.FyOff)
  11158. }
  11159. }
  11160. }
  11161. goto bail1
  11162. bail1:
  11163. ;
  11164. if glyphs_loaded != 0 {
  11165. X_XftFontManageMemory(tls, dpy, public)
  11166. }
  11167. }
  11168. func XXftGlyphSpecCore(tls *libc.TLS, draw uintptr, color uintptr, public uintptr, glyphs uintptr, nglyphs int32) {
  11169. bp := tls.Alloc(1168)
  11170. defer tls.Free(1168)
  11171. var depth, v5 uint32
  11172. var dpy, font, image, xftg, v11, v8 uintptr
  11173. var g_x1, g_x2, g_y1, g_y2, height, i, width, x1, x2, y1, y2, v1, v2, v3 int32
  11174. var gc TGC
  11175. var glyph, glyph1 TFT_UInt
  11176. var glyphs_loaded TFcBool
  11177. var pix TPixmap
  11178. var prev_error TXErrorHandler
  11179. var sharp TXftSharpGlyph
  11180. var smooth TXftSmoothGlyph
  11181. var v12, v6, v9 bool
  11182. var _ /* gcv at bp+1040 */ TXGCValues
  11183. var _ /* gi at bp+1028 */ TXGlyphInfo
  11184. var _ /* missing at bp+0 */ [256]TFT_UInt
  11185. var _ /* nmissing at bp+1024 */ int32
  11186. _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = depth, dpy, font, g_x1, g_x2, g_y1, g_y2, gc, glyph, glyph1, glyphs_loaded, height, i, image, pix, prev_error, sharp, smooth, width, x1, x2, xftg, y1, y2, v1, v11, v12, v2, v3, v5, v6, v8, v9
  11187. dpy = (*TXftDraw)(unsafe.Pointer(draw)).Fdpy
  11188. font = public
  11189. /*
  11190. * Load missing glyphs
  11191. */
  11192. glyphs_loaded = m_FcFalse
  11193. v3 = libc.Int32FromInt32(0)
  11194. y2 = v3
  11195. v2 = v3
  11196. x2 = v2
  11197. v1 = v2
  11198. y1 = v1
  11199. x1 = v1
  11200. i = 0
  11201. for {
  11202. if !(i < nglyphs) {
  11203. break
  11204. }
  11205. *(*int32)(unsafe.Pointer(bp + 1024)) = 0
  11206. if XXftFontCheckGlyph(tls, dpy, public, int32(m_FcTrue), (*(*TXftGlyphSpec)(unsafe.Pointer(glyphs + uintptr(i)*8))).Fglyph, bp, bp+1024) != 0 {
  11207. glyphs_loaded = int32(m_FcTrue)
  11208. }
  11209. if *(*int32)(unsafe.Pointer(bp + 1024)) != 0 {
  11210. XXftFontLoadGlyphs(tls, dpy, public, int32(m_FcTrue), bp, *(*int32)(unsafe.Pointer(bp + 1024)))
  11211. }
  11212. XXftGlyphExtents(tls, dpy, public, glyphs+uintptr(i)*8, int32(1), bp+1028)
  11213. g_x1 = int32((*(*TXftGlyphSpec)(unsafe.Pointer(glyphs + uintptr(i)*8))).Fx) - int32((*(*TXGlyphInfo)(unsafe.Pointer(bp + 1028))).Fx)
  11214. g_y1 = int32((*(*TXftGlyphSpec)(unsafe.Pointer(glyphs + uintptr(i)*8))).Fy) - int32((*(*TXGlyphInfo)(unsafe.Pointer(bp + 1028))).Fy)
  11215. g_x2 = g_x1 + int32((*(*TXGlyphInfo)(unsafe.Pointer(bp + 1028))).Fwidth)
  11216. g_y2 = g_y1 + int32((*(*TXGlyphInfo)(unsafe.Pointer(bp + 1028))).Fheight)
  11217. if i != 0 {
  11218. if g_x1 < x1 {
  11219. x1 = g_x1
  11220. }
  11221. if g_y1 < y1 {
  11222. y1 = g_y1
  11223. }
  11224. if g_x2 > x2 {
  11225. x2 = g_x2
  11226. }
  11227. if g_y2 > y2 {
  11228. y2 = g_y2
  11229. }
  11230. } else {
  11231. x1 = g_x1
  11232. y1 = g_y1
  11233. x2 = g_x2
  11234. y2 = g_y2
  11235. }
  11236. goto _4
  11237. _4:
  11238. ;
  11239. i++
  11240. }
  11241. if x1 == x2 || y1 == y2 {
  11242. goto bail1
  11243. }
  11244. if ((*TXftFontInt)(unsafe.Pointer(font)).Finfo.Fantialias != 0 || int32((*TXftColor)(unsafe.Pointer(color)).Fcolor.Falpha) != int32(0xffff)) && __XftSmoothGlyphPossible(tls, draw) != 0 {
  11245. width = x2 - x1
  11246. height = y2 - y1
  11247. smooth = __XftSmoothGlyphFind(tls, draw, public)
  11248. /*
  11249. * Try to get bits directly from the drawable; if that fails,
  11250. * use a temporary pixmap. When it does fail, assume it
  11251. * will probably fail for a while and keep using temporary
  11252. * pixmaps for a while to avoid double round trips.
  11253. */
  11254. if (*TXftDraw)(unsafe.Pointer(draw)).Fcore.Fuse_pixmap == 0 {
  11255. prev_error = libx11.XXSetErrorHandler(tls, __ccgo_fp(_XftGetImageErrorHandler))
  11256. image = libx11.XXGetImage(tls, dpy, (*TXftDraw)(unsafe.Pointer(draw)).Fdrawable, x1, y1, uint32(width), uint32(height), uint64(^libc.Int64FromInt64(0)), int32(m_ZPixmap))
  11257. libx11.XXSetErrorHandler(tls, prev_error)
  11258. if !(image != 0) {
  11259. (*TXftDraw)(unsafe.Pointer(draw)).Fcore.Fuse_pixmap = int32(m_XFT_ASSUME_PIXMAP)
  11260. }
  11261. } else {
  11262. (*TXftDraw)(unsafe.Pointer(draw)).Fcore.Fuse_pixmap--
  11263. image = libc.UintptrFromInt32(0)
  11264. }
  11265. if v6 = !(image != 0); v6 {
  11266. v5 = XXftDrawDepth(tls, draw)
  11267. depth = v5
  11268. }
  11269. if v6 && v5 != 0 {
  11270. pix = libx11.XXCreatePixmap(tls, dpy, (*TXftDraw)(unsafe.Pointer(draw)).Fdrawable, uint32(width), uint32(height), depth)
  11271. (*(*TXGCValues)(unsafe.Pointer(bp + 1040))).Fgraphics_exposures = m_False
  11272. gc = libx11.XXCreateGC(tls, dpy, pix, uint64(libc.Int64FromInt64(1)<<libc.Int32FromInt32(16)), bp+1040)
  11273. libx11.XXCopyArea(tls, dpy, (*TXftDraw)(unsafe.Pointer(draw)).Fdrawable, pix, gc, x1, y1, uint32(width), uint32(height), 0, 0)
  11274. libx11.XXFreeGC(tls, dpy, gc)
  11275. image = libx11.XXGetImage(tls, dpy, pix, 0, 0, uint32(width), uint32(height), uint64(^libc.Int64FromInt64(0)), int32(m_ZPixmap))
  11276. libx11.XXFreePixmap(tls, dpy, pix)
  11277. }
  11278. if !(image != 0) {
  11279. goto bail1
  11280. }
  11281. (*TXImage)(unsafe.Pointer(image)).Fred_mask = (*TVisual)(unsafe.Pointer((*TXftDraw)(unsafe.Pointer(draw)).Fvisual)).Fred_mask
  11282. (*TXImage)(unsafe.Pointer(image)).Fgreen_mask = (*TVisual)(unsafe.Pointer((*TXftDraw)(unsafe.Pointer(draw)).Fvisual)).Fgreen_mask
  11283. (*TXImage)(unsafe.Pointer(image)).Fblue_mask = (*TVisual)(unsafe.Pointer((*TXftDraw)(unsafe.Pointer(draw)).Fvisual)).Fblue_mask
  11284. if (*TXImage)(unsafe.Pointer(image)).Fbyte_order != XXftNativeByteOrder(tls) {
  11285. XXftSwapImage(tls, image)
  11286. }
  11287. i = 0
  11288. for {
  11289. if !(i < nglyphs) {
  11290. break
  11291. }
  11292. glyph = (*(*TXftGlyphSpec)(unsafe.Pointer(glyphs + uintptr(i)*8))).Fglyph
  11293. if v9 = glyph >= (*TXftFontInt)(unsafe.Pointer(font)).Fnum_glyphs; !v9 {
  11294. v8 = *(*uintptr)(unsafe.Pointer((*TXftFontInt)(unsafe.Pointer(font)).Fglyphs + uintptr(glyph)*8))
  11295. xftg = v8
  11296. }
  11297. if v9 || !(v8 != 0) {
  11298. xftg = __XftGlyphDefault(tls, dpy, public)
  11299. }
  11300. if xftg != 0 {
  11301. (*(*func(*libc.TLS, uintptr, uintptr, int32, int32, uintptr))(unsafe.Pointer(&struct{ uintptr }{smooth})))(tls, image, xftg, int32((*(*TXftGlyphSpec)(unsafe.Pointer(glyphs + uintptr(i)*8))).Fx)-x1, int32((*(*TXftGlyphSpec)(unsafe.Pointer(glyphs + uintptr(i)*8))).Fy)-y1, color)
  11302. }
  11303. goto _7
  11304. _7:
  11305. ;
  11306. i++
  11307. }
  11308. if (*TXImage)(unsafe.Pointer(image)).Fbyte_order != XXftNativeByteOrder(tls) {
  11309. XXftSwapImage(tls, image)
  11310. }
  11311. libx11.XXPutImage(tls, dpy, (*TXftDraw)(unsafe.Pointer(draw)).Fdrawable, (*TXftDraw)(unsafe.Pointer(draw)).Fcore.Fgc, image, 0, 0, x1, y1, uint32(width), uint32(height))
  11312. (*(*func(*libc.TLS, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*TXImage)(unsafe.Pointer(image)).Ff.Fdestroy_image})))(tls, image)
  11313. } else {
  11314. sharp = __XftSharpGlyphFind(tls, draw, public)
  11315. i = 0
  11316. for {
  11317. if !(i < nglyphs) {
  11318. break
  11319. }
  11320. glyph1 = (*(*TXftGlyphSpec)(unsafe.Pointer(glyphs + uintptr(i)*8))).Fglyph
  11321. if v12 = glyph1 >= (*TXftFontInt)(unsafe.Pointer(font)).Fnum_glyphs; !v12 {
  11322. v11 = *(*uintptr)(unsafe.Pointer((*TXftFontInt)(unsafe.Pointer(font)).Fglyphs + uintptr(glyph1)*8))
  11323. xftg = v11
  11324. }
  11325. if v12 || !(v11 != 0) {
  11326. xftg = __XftGlyphDefault(tls, dpy, public)
  11327. }
  11328. if xftg != 0 {
  11329. (*(*func(*libc.TLS, uintptr, uintptr, int32, int32))(unsafe.Pointer(&struct{ uintptr }{sharp})))(tls, draw, xftg, int32((*(*TXftGlyphSpec)(unsafe.Pointer(glyphs + uintptr(i)*8))).Fx), int32((*(*TXftGlyphSpec)(unsafe.Pointer(glyphs + uintptr(i)*8))).Fy))
  11330. }
  11331. goto _10
  11332. _10:
  11333. ;
  11334. i++
  11335. }
  11336. }
  11337. goto bail1
  11338. bail1:
  11339. ;
  11340. if glyphs_loaded != 0 {
  11341. X_XftFontManageMemory(tls, dpy, public)
  11342. }
  11343. }
  11344. func XXftGlyphFontSpecCore(tls *libc.TLS, draw uintptr, color uintptr, glyphs uintptr, nglyphs int32) {
  11345. bp := tls.Alloc(1168)
  11346. defer tls.Free(1168)
  11347. var depth, v6 uint32
  11348. var dpy, font, font1, image, public, public1, public2, xftg, v12, v9 uintptr
  11349. var g_x1, g_x2, g_y1, g_y2, height, i, width, x1, x2, y1, y2, v1, v2, v3 int32
  11350. var gc TGC
  11351. var glyph, glyph1 TFT_UInt
  11352. var glyphs_loaded TFcBool
  11353. var pix TPixmap
  11354. var prev_error TXErrorHandler
  11355. var sharp TXftSharpGlyph
  11356. var smooth TXftSmoothGlyph
  11357. var t int16
  11358. var v10, v13, v7 bool
  11359. var _ /* gcv at bp+1040 */ TXGCValues
  11360. var _ /* gi at bp+1028 */ TXGlyphInfo
  11361. var _ /* missing at bp+0 */ [256]TFT_UInt
  11362. var _ /* nmissing at bp+1024 */ int32
  11363. _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = depth, dpy, font, font1, g_x1, g_x2, g_y1, g_y2, gc, glyph, glyph1, glyphs_loaded, height, i, image, pix, prev_error, public, public1, public2, sharp, smooth, t, width, x1, x2, xftg, y1, y2, v1, v10, v12, v13, v2, v3, v6, v7, v9
  11364. dpy = (*TXftDraw)(unsafe.Pointer(draw)).Fdpy
  11365. /*
  11366. * Load missing glyphs
  11367. */
  11368. glyphs_loaded = m_FcFalse
  11369. v3 = libc.Int32FromInt32(0)
  11370. y2 = v3
  11371. v2 = v3
  11372. x2 = v2
  11373. v1 = v2
  11374. y1 = v1
  11375. x1 = v1
  11376. i = 0
  11377. for {
  11378. if !(i < nglyphs) {
  11379. break
  11380. }
  11381. public = (*(*TXftGlyphFontSpec)(unsafe.Pointer(glyphs + uintptr(i)*16))).Ffont
  11382. *(*int32)(unsafe.Pointer(bp + 1024)) = 0
  11383. if XXftFontCheckGlyph(tls, dpy, public, int32(m_FcTrue), (*(*TXftGlyphFontSpec)(unsafe.Pointer(glyphs + uintptr(i)*16))).Fglyph, bp, bp+1024) != 0 {
  11384. glyphs_loaded = int32(m_FcTrue)
  11385. }
  11386. if *(*int32)(unsafe.Pointer(bp + 1024)) != 0 {
  11387. XXftFontLoadGlyphs(tls, dpy, public, int32(m_FcTrue), bp, *(*int32)(unsafe.Pointer(bp + 1024)))
  11388. }
  11389. XXftGlyphExtents(tls, dpy, public, glyphs+uintptr(i)*16+8, int32(1), bp+1028)
  11390. g_x1 = int32((*(*TXftGlyphFontSpec)(unsafe.Pointer(glyphs + uintptr(i)*16))).Fx) - int32((*(*TXGlyphInfo)(unsafe.Pointer(bp + 1028))).Fx)
  11391. g_y1 = int32((*(*TXftGlyphFontSpec)(unsafe.Pointer(glyphs + uintptr(i)*16))).Fy) - int32((*(*TXGlyphInfo)(unsafe.Pointer(bp + 1028))).Fy)
  11392. g_x2 = g_x1 + int32((*(*TXGlyphInfo)(unsafe.Pointer(bp + 1028))).Fwidth)
  11393. g_y2 = g_y1 + int32((*(*TXGlyphInfo)(unsafe.Pointer(bp + 1028))).Fheight)
  11394. if i != 0 {
  11395. if g_x1 < x1 {
  11396. if g_x1 < 0 {
  11397. /* do nothing if the given glyphs are out of range */
  11398. t = int16((*TXftFont)(unsafe.Pointer((*(*TXftGlyphFontSpec)(unsafe.Pointer(glyphs + uintptr(i-int32(1))*16))).Ffont)).Fmax_advance_width + int32((*(*TXftGlyphFontSpec)(unsafe.Pointer(glyphs + uintptr(i-int32(1))*16))).Fx))
  11399. if int32(t) < 0 && int32((*(*TXftGlyphFontSpec)(unsafe.Pointer(glyphs + uintptr(i-int32(1))*16))).Fx) > 0 {
  11400. goto bail1
  11401. }
  11402. }
  11403. x1 = g_x1
  11404. }
  11405. if g_y1 < y1 {
  11406. y1 = g_y1
  11407. }
  11408. if g_x2 > x2 {
  11409. x2 = g_x2
  11410. }
  11411. if g_y2 > y2 {
  11412. y2 = g_y2
  11413. }
  11414. } else {
  11415. x1 = g_x1
  11416. y1 = g_y1
  11417. x2 = g_x2
  11418. y2 = g_y2
  11419. }
  11420. goto _4
  11421. _4:
  11422. ;
  11423. i++
  11424. }
  11425. if x1 == x2 || y1 == y2 {
  11426. goto bail1
  11427. }
  11428. i = 0
  11429. for {
  11430. if !(i < nglyphs) {
  11431. break
  11432. }
  11433. if (*TXftFontInt)(unsafe.Pointer((*(*TXftGlyphFontSpec)(unsafe.Pointer(glyphs + uintptr(i)*16))).Ffont)).Finfo.Fantialias != 0 {
  11434. break
  11435. }
  11436. goto _5
  11437. _5:
  11438. ;
  11439. i++
  11440. }
  11441. if (i != nglyphs || int32((*TXftColor)(unsafe.Pointer(color)).Fcolor.Falpha) != int32(0xffff)) && __XftSmoothGlyphPossible(tls, draw) != 0 {
  11442. width = x2 - x1
  11443. height = y2 - y1
  11444. /*
  11445. * Try to get bits directly from the drawable; if that fails,
  11446. * use a temporary pixmap. When it does fail, assume it
  11447. * will probably fail for a while and keep using temporary
  11448. * pixmaps for a while to avoid double round trips.
  11449. */
  11450. if (*TXftDraw)(unsafe.Pointer(draw)).Fcore.Fuse_pixmap == 0 {
  11451. prev_error = libx11.XXSetErrorHandler(tls, __ccgo_fp(_XftGetImageErrorHandler))
  11452. image = libx11.XXGetImage(tls, dpy, (*TXftDraw)(unsafe.Pointer(draw)).Fdrawable, x1, y1, uint32(width), uint32(height), uint64(^libc.Int64FromInt64(0)), int32(m_ZPixmap))
  11453. libx11.XXSetErrorHandler(tls, prev_error)
  11454. if !(image != 0) {
  11455. (*TXftDraw)(unsafe.Pointer(draw)).Fcore.Fuse_pixmap = int32(m_XFT_ASSUME_PIXMAP)
  11456. }
  11457. } else {
  11458. (*TXftDraw)(unsafe.Pointer(draw)).Fcore.Fuse_pixmap--
  11459. image = libc.UintptrFromInt32(0)
  11460. }
  11461. if v7 = !(image != 0); v7 {
  11462. v6 = XXftDrawDepth(tls, draw)
  11463. depth = v6
  11464. }
  11465. if v7 && v6 != 0 {
  11466. pix = libx11.XXCreatePixmap(tls, dpy, (*TXftDraw)(unsafe.Pointer(draw)).Fdrawable, uint32(width), uint32(height), depth)
  11467. (*(*TXGCValues)(unsafe.Pointer(bp + 1040))).Fgraphics_exposures = m_False
  11468. gc = libx11.XXCreateGC(tls, dpy, pix, uint64(libc.Int64FromInt64(1)<<libc.Int32FromInt32(16)), bp+1040)
  11469. libx11.XXCopyArea(tls, dpy, (*TXftDraw)(unsafe.Pointer(draw)).Fdrawable, pix, gc, x1, y1, uint32(width), uint32(height), 0, 0)
  11470. libx11.XXFreeGC(tls, dpy, gc)
  11471. image = libx11.XXGetImage(tls, dpy, pix, 0, 0, uint32(width), uint32(height), uint64(^libc.Int64FromInt64(0)), int32(m_ZPixmap))
  11472. libx11.XXFreePixmap(tls, dpy, pix)
  11473. }
  11474. if !(image != 0) {
  11475. goto bail1
  11476. }
  11477. (*TXImage)(unsafe.Pointer(image)).Fred_mask = (*TVisual)(unsafe.Pointer((*TXftDraw)(unsafe.Pointer(draw)).Fvisual)).Fred_mask
  11478. (*TXImage)(unsafe.Pointer(image)).Fgreen_mask = (*TVisual)(unsafe.Pointer((*TXftDraw)(unsafe.Pointer(draw)).Fvisual)).Fgreen_mask
  11479. (*TXImage)(unsafe.Pointer(image)).Fblue_mask = (*TVisual)(unsafe.Pointer((*TXftDraw)(unsafe.Pointer(draw)).Fvisual)).Fblue_mask
  11480. if (*TXImage)(unsafe.Pointer(image)).Fbyte_order != XXftNativeByteOrder(tls) {
  11481. XXftSwapImage(tls, image)
  11482. }
  11483. i = 0
  11484. for {
  11485. if !(i < nglyphs) {
  11486. break
  11487. }
  11488. public1 = (*(*TXftGlyphFontSpec)(unsafe.Pointer(glyphs + uintptr(i)*16))).Ffont
  11489. font = public1
  11490. smooth = __XftSmoothGlyphFind(tls, draw, public1)
  11491. glyph = (*(*TXftGlyphFontSpec)(unsafe.Pointer(glyphs + uintptr(i)*16))).Fglyph
  11492. if v10 = glyph >= (*TXftFontInt)(unsafe.Pointer(font)).Fnum_glyphs; !v10 {
  11493. v9 = *(*uintptr)(unsafe.Pointer((*TXftFontInt)(unsafe.Pointer(font)).Fglyphs + uintptr(glyph)*8))
  11494. xftg = v9
  11495. }
  11496. if v10 || !(v9 != 0) {
  11497. xftg = __XftGlyphDefault(tls, dpy, public1)
  11498. }
  11499. if xftg != 0 {
  11500. (*(*func(*libc.TLS, uintptr, uintptr, int32, int32, uintptr))(unsafe.Pointer(&struct{ uintptr }{smooth})))(tls, image, xftg, int32((*(*TXftGlyphFontSpec)(unsafe.Pointer(glyphs + uintptr(i)*16))).Fx)-x1, int32((*(*TXftGlyphFontSpec)(unsafe.Pointer(glyphs + uintptr(i)*16))).Fy)-y1, color)
  11501. }
  11502. goto _8
  11503. _8:
  11504. ;
  11505. i++
  11506. }
  11507. if (*TXImage)(unsafe.Pointer(image)).Fbyte_order != XXftNativeByteOrder(tls) {
  11508. XXftSwapImage(tls, image)
  11509. }
  11510. libx11.XXPutImage(tls, dpy, (*TXftDraw)(unsafe.Pointer(draw)).Fdrawable, (*TXftDraw)(unsafe.Pointer(draw)).Fcore.Fgc, image, 0, 0, x1, y1, uint32(width), uint32(height))
  11511. (*(*func(*libc.TLS, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*TXImage)(unsafe.Pointer(image)).Ff.Fdestroy_image})))(tls, image)
  11512. } else {
  11513. i = 0
  11514. for {
  11515. if !(i < nglyphs) {
  11516. break
  11517. }
  11518. public2 = (*(*TXftGlyphFontSpec)(unsafe.Pointer(glyphs + uintptr(i)*16))).Ffont
  11519. font1 = public2
  11520. sharp = __XftSharpGlyphFind(tls, draw, public2)
  11521. glyph1 = (*(*TXftGlyphFontSpec)(unsafe.Pointer(glyphs + uintptr(i)*16))).Fglyph
  11522. if v13 = glyph1 >= (*TXftFontInt)(unsafe.Pointer(font1)).Fnum_glyphs; !v13 {
  11523. v12 = *(*uintptr)(unsafe.Pointer((*TXftFontInt)(unsafe.Pointer(font1)).Fglyphs + uintptr(glyph1)*8))
  11524. xftg = v12
  11525. }
  11526. if v13 || !(v12 != 0) {
  11527. xftg = __XftGlyphDefault(tls, dpy, public2)
  11528. }
  11529. if xftg != 0 {
  11530. (*(*func(*libc.TLS, uintptr, uintptr, int32, int32))(unsafe.Pointer(&struct{ uintptr }{sharp})))(tls, draw, xftg, int32((*(*TXftGlyphFontSpec)(unsafe.Pointer(glyphs + uintptr(i)*16))).Fx), int32((*(*TXftGlyphFontSpec)(unsafe.Pointer(glyphs + uintptr(i)*16))).Fy))
  11531. }
  11532. goto _11
  11533. _11:
  11534. ;
  11535. i++
  11536. }
  11537. }
  11538. goto bail1
  11539. bail1:
  11540. ;
  11541. if glyphs_loaded != 0 {
  11542. i = 0
  11543. for {
  11544. if !(i < nglyphs) {
  11545. break
  11546. }
  11547. X_XftFontManageMemory(tls, dpy, (*(*TXftGlyphFontSpec)(unsafe.Pointer(glyphs + uintptr(i)*16))).Ffont)
  11548. goto _14
  11549. _14:
  11550. ;
  11551. i++
  11552. }
  11553. }
  11554. }
  11555. /* xftxlfd.c */
  11556. func XXftDebug(tls *libc.TLS) (r int32) {
  11557. bp := tls.Alloc(16)
  11558. defer tls.Free(16)
  11559. var e uintptr
  11560. _ = e
  11561. if !(_initialized != 0) {
  11562. _initialized = int32(1)
  11563. e = libc.Xgetenv(tls, __ccgo_ts)
  11564. if e != 0 {
  11565. libc.Xprintf(tls, __ccgo_ts+10, libc.VaList(bp+8, e))
  11566. _debug = libc.Xatoi(tls, e)
  11567. if _debug <= 0 {
  11568. _debug = int32(1)
  11569. }
  11570. }
  11571. }
  11572. return _debug
  11573. }
  11574. var _initialized int32
  11575. var _debug int32
  11576. func __XftCloseDisplay(tls *libc.TLS, dpy uintptr, codes uintptr) (r int32) {
  11577. var info, prev, v2 uintptr
  11578. _, _, _ = info, prev, v2
  11579. info = X_XftDisplayInfoGet(tls, dpy, m_FcFalse)
  11580. if !(info != 0) {
  11581. return 0
  11582. }
  11583. /*
  11584. * Get rid of any dangling unreferenced fonts
  11585. */
  11586. (*TXftDisplayInfo)(unsafe.Pointer(info)).Fmax_unref_fonts = 0
  11587. XXftFontManageMemory(tls, dpy)
  11588. /*
  11589. * Clean up the default values
  11590. */
  11591. if (*TXftDisplayInfo)(unsafe.Pointer(info)).Fdefaults != 0 {
  11592. libfontconfig.XFcPatternDestroy(tls, (*TXftDisplayInfo)(unsafe.Pointer(info)).Fdefaults)
  11593. }
  11594. /*
  11595. * Unhook from the global list
  11596. */
  11597. prev = uintptr(unsafe.Pointer(&X_XftDisplayInfo))
  11598. for {
  11599. v2 = *(*uintptr)(unsafe.Pointer(prev))
  11600. info = v2
  11601. if !(v2 != 0) {
  11602. break
  11603. }
  11604. if (*TXftDisplayInfo)(unsafe.Pointer(info)).Fdisplay == dpy {
  11605. break
  11606. }
  11607. goto _1
  11608. _1:
  11609. ;
  11610. prev = *(*uintptr)(unsafe.Pointer(prev))
  11611. }
  11612. if info != libc.UintptrFromInt32(0) {
  11613. *(*uintptr)(unsafe.Pointer(prev)) = (*TXftDisplayInfo)(unsafe.Pointer(info)).Fnext
  11614. }
  11615. libc.Xfree(tls, info)
  11616. return 0
  11617. }
  11618. func X_XftDisplayInfoGet(tls *libc.TLS, dpy uintptr, createIfNecessary TFcBool) (r uintptr) {
  11619. bp := tls.Alloc(96)
  11620. defer tls.Free(96)
  11621. var format, info, prev, visual, v2, v3, v5 uintptr
  11622. var i int32
  11623. var _ /* error_base at bp+44 */ int32
  11624. var _ /* event_base at bp+40 */ int32
  11625. var _ /* major at bp+48 */ int32
  11626. var _ /* minor at bp+52 */ int32
  11627. var _ /* pf at bp+0 */ TXRenderPictFormat
  11628. _, _, _, _, _, _, _, _ = format, i, info, prev, visual, v2, v3, v5
  11629. prev = uintptr(unsafe.Pointer(&X_XftDisplayInfo))
  11630. for {
  11631. v2 = *(*uintptr)(unsafe.Pointer(prev))
  11632. info = v2
  11633. if !(v2 != 0) {
  11634. break
  11635. }
  11636. if (*TXftDisplayInfo)(unsafe.Pointer(info)).Fdisplay == dpy {
  11637. /*
  11638. * MRU the list
  11639. */
  11640. if prev != uintptr(unsafe.Pointer(&X_XftDisplayInfo)) {
  11641. *(*uintptr)(unsafe.Pointer(prev)) = (*TXftDisplayInfo)(unsafe.Pointer(info)).Fnext
  11642. (*TXftDisplayInfo)(unsafe.Pointer(info)).Fnext = X_XftDisplayInfo
  11643. X_XftDisplayInfo = info
  11644. }
  11645. return info
  11646. }
  11647. goto _1
  11648. _1:
  11649. ;
  11650. prev = *(*uintptr)(unsafe.Pointer(prev))
  11651. }
  11652. if !(createIfNecessary != 0) {
  11653. return libc.UintptrFromInt32(0)
  11654. }
  11655. info = libc.Xmalloc(tls, uint64(1488))
  11656. if !(info != 0) {
  11657. goto bail0
  11658. }
  11659. (*TXftDisplayInfo)(unsafe.Pointer(info)).Fcodes = libx11.XXAddExtension(tls, dpy)
  11660. if !((*TXftDisplayInfo)(unsafe.Pointer(info)).Fcodes != 0) {
  11661. goto bail1
  11662. }
  11663. libx11.XXESetCloseDisplay(tls, dpy, (*TXExtCodes)(unsafe.Pointer((*TXftDisplayInfo)(unsafe.Pointer(info)).Fcodes)).Fextension, __ccgo_fp(__XftCloseDisplay))
  11664. (*TXftDisplayInfo)(unsafe.Pointer(info)).Fdisplay = dpy
  11665. (*TXftDisplayInfo)(unsafe.Pointer(info)).Fdefaults = libc.UintptrFromInt32(0)
  11666. (*TXftDisplayInfo)(unsafe.Pointer(info)).FsolidFormat = libc.UintptrFromInt32(0)
  11667. (*TXftDisplayInfo)(unsafe.Pointer(info)).FhasRender = libc.BoolInt32(libxrender.XXRenderQueryExtension(tls, dpy, bp+40, bp+44) != 0 && libxrender.XXRenderFindVisualFormat(tls, dpy, (*TScreen)(unsafe.Pointer((*struct {
  11668. Fext_data uintptr
  11669. Fprivate1 uintptr
  11670. Ffd int32
  11671. Fprivate2 int32
  11672. Fproto_major_version int32
  11673. Fproto_minor_version int32
  11674. Fvendor uintptr
  11675. Fprivate3 TXID
  11676. Fprivate4 TXID
  11677. Fprivate5 TXID
  11678. Fprivate6 int32
  11679. Fresource_alloc uintptr
  11680. Fbyte_order int32
  11681. Fbitmap_unit int32
  11682. Fbitmap_pad int32
  11683. Fbitmap_bit_order int32
  11684. Fnformats int32
  11685. Fpixmap_format uintptr
  11686. Fprivate8 int32
  11687. Frelease int32
  11688. Fprivate9 uintptr
  11689. Fprivate10 uintptr
  11690. Fqlen int32
  11691. Flast_request_read uint64
  11692. Frequest uint64
  11693. Fprivate11 TXPointer
  11694. Fprivate12 TXPointer
  11695. Fprivate13 TXPointer
  11696. Fprivate14 TXPointer
  11697. Fmax_request_size uint32
  11698. Fdb uintptr
  11699. Fprivate15 uintptr
  11700. Fdisplay_name uintptr
  11701. Fdefault_screen int32
  11702. Fnscreens int32
  11703. Fscreens uintptr
  11704. Fmotion_buffer uint64
  11705. Fprivate16 uint64
  11706. Fmin_keycode int32
  11707. Fmax_keycode int32
  11708. Fprivate17 TXPointer
  11709. Fprivate18 TXPointer
  11710. Fprivate19 int32
  11711. Fxdefaults uintptr
  11712. })(unsafe.Pointer(dpy)).Fscreens+uintptr((*struct {
  11713. Fext_data uintptr
  11714. Fprivate1 uintptr
  11715. Ffd int32
  11716. Fprivate2 int32
  11717. Fproto_major_version int32
  11718. Fproto_minor_version int32
  11719. Fvendor uintptr
  11720. Fprivate3 TXID
  11721. Fprivate4 TXID
  11722. Fprivate5 TXID
  11723. Fprivate6 int32
  11724. Fresource_alloc uintptr
  11725. Fbyte_order int32
  11726. Fbitmap_unit int32
  11727. Fbitmap_pad int32
  11728. Fbitmap_bit_order int32
  11729. Fnformats int32
  11730. Fpixmap_format uintptr
  11731. Fprivate8 int32
  11732. Frelease int32
  11733. Fprivate9 uintptr
  11734. Fprivate10 uintptr
  11735. Fqlen int32
  11736. Flast_request_read uint64
  11737. Frequest uint64
  11738. Fprivate11 TXPointer
  11739. Fprivate12 TXPointer
  11740. Fprivate13 TXPointer
  11741. Fprivate14 TXPointer
  11742. Fmax_request_size uint32
  11743. Fdb uintptr
  11744. Fprivate15 uintptr
  11745. Fdisplay_name uintptr
  11746. Fdefault_screen int32
  11747. Fnscreens int32
  11748. Fscreens uintptr
  11749. Fmotion_buffer uint64
  11750. Fprivate16 uint64
  11751. Fmin_keycode int32
  11752. Fmax_keycode int32
  11753. Fprivate17 TXPointer
  11754. Fprivate18 TXPointer
  11755. Fprivate19 int32
  11756. Fxdefaults uintptr
  11757. })(unsafe.Pointer(dpy)).Fdefault_screen)*128)).Froot_visual) != libc.UintptrFromInt32(0))
  11758. (*TXftDisplayInfo)(unsafe.Pointer(info)).Fuse_free_glyphs = int32(m_FcTrue)
  11759. if (*TXftDisplayInfo)(unsafe.Pointer(info)).FhasRender != 0 {
  11760. libxrender.XXRenderQueryVersion(tls, dpy, bp+48, bp+52)
  11761. if *(*int32)(unsafe.Pointer(bp + 48)) < 0 || *(*int32)(unsafe.Pointer(bp + 48)) == 0 && *(*int32)(unsafe.Pointer(bp + 52)) <= int32(2) {
  11762. (*TXftDisplayInfo)(unsafe.Pointer(info)).Fuse_free_glyphs = m_FcFalse
  11763. }
  11764. (*TXftDisplayInfo)(unsafe.Pointer(info)).FhasSolid = m_FcFalse
  11765. if *(*int32)(unsafe.Pointer(bp + 48)) > 0 || *(*int32)(unsafe.Pointer(bp + 48)) == 0 && *(*int32)(unsafe.Pointer(bp + 52)) >= int32(10) {
  11766. (*TXftDisplayInfo)(unsafe.Pointer(info)).FhasSolid = int32(m_FcTrue)
  11767. }
  11768. (*(*TXRenderPictFormat)(unsafe.Pointer(bp))).Ftype1 = int32(m_PictTypeDirect)
  11769. (*(*TXRenderPictFormat)(unsafe.Pointer(bp))).Fdepth = int32(32)
  11770. (*(*TXRenderPictFormat)(unsafe.Pointer(bp))).Fdirect.FredMask = int16(0xff)
  11771. (*(*TXRenderPictFormat)(unsafe.Pointer(bp))).Fdirect.FgreenMask = int16(0xff)
  11772. (*(*TXRenderPictFormat)(unsafe.Pointer(bp))).Fdirect.FblueMask = int16(0xff)
  11773. (*(*TXRenderPictFormat)(unsafe.Pointer(bp))).Fdirect.FalphaMask = int16(0xff)
  11774. (*TXftDisplayInfo)(unsafe.Pointer(info)).FsolidFormat = libxrender.XXRenderFindFormat(tls, dpy, uint64(libc.Int32FromInt32(1)<<libc.Int32FromInt32(1)|libc.Int32FromInt32(1)<<libc.Int32FromInt32(2)|libc.Int32FromInt32(1)<<libc.Int32FromInt32(4)|libc.Int32FromInt32(1)<<libc.Int32FromInt32(6)|libc.Int32FromInt32(1)<<libc.Int32FromInt32(8)|libc.Int32FromInt32(1)<<libc.Int32FromInt32(10)), bp, 0)
  11775. }
  11776. if XXftDebug(tls)&int32(m_XFT_DBG_RENDER) != 0 {
  11777. visual = (*TScreen)(unsafe.Pointer((*struct {
  11778. Fext_data uintptr
  11779. Fprivate1 uintptr
  11780. Ffd int32
  11781. Fprivate2 int32
  11782. Fproto_major_version int32
  11783. Fproto_minor_version int32
  11784. Fvendor uintptr
  11785. Fprivate3 TXID
  11786. Fprivate4 TXID
  11787. Fprivate5 TXID
  11788. Fprivate6 int32
  11789. Fresource_alloc uintptr
  11790. Fbyte_order int32
  11791. Fbitmap_unit int32
  11792. Fbitmap_pad int32
  11793. Fbitmap_bit_order int32
  11794. Fnformats int32
  11795. Fpixmap_format uintptr
  11796. Fprivate8 int32
  11797. Frelease int32
  11798. Fprivate9 uintptr
  11799. Fprivate10 uintptr
  11800. Fqlen int32
  11801. Flast_request_read uint64
  11802. Frequest uint64
  11803. Fprivate11 TXPointer
  11804. Fprivate12 TXPointer
  11805. Fprivate13 TXPointer
  11806. Fprivate14 TXPointer
  11807. Fmax_request_size uint32
  11808. Fdb uintptr
  11809. Fprivate15 uintptr
  11810. Fdisplay_name uintptr
  11811. Fdefault_screen int32
  11812. Fnscreens int32
  11813. Fscreens uintptr
  11814. Fmotion_buffer uint64
  11815. Fprivate16 uint64
  11816. Fmin_keycode int32
  11817. Fmax_keycode int32
  11818. Fprivate17 TXPointer
  11819. Fprivate18 TXPointer
  11820. Fprivate19 int32
  11821. Fxdefaults uintptr
  11822. })(unsafe.Pointer(dpy)).Fscreens + uintptr((*struct {
  11823. Fext_data uintptr
  11824. Fprivate1 uintptr
  11825. Ffd int32
  11826. Fprivate2 int32
  11827. Fproto_major_version int32
  11828. Fproto_minor_version int32
  11829. Fvendor uintptr
  11830. Fprivate3 TXID
  11831. Fprivate4 TXID
  11832. Fprivate5 TXID
  11833. Fprivate6 int32
  11834. Fresource_alloc uintptr
  11835. Fbyte_order int32
  11836. Fbitmap_unit int32
  11837. Fbitmap_pad int32
  11838. Fbitmap_bit_order int32
  11839. Fnformats int32
  11840. Fpixmap_format uintptr
  11841. Fprivate8 int32
  11842. Frelease int32
  11843. Fprivate9 uintptr
  11844. Fprivate10 uintptr
  11845. Fqlen int32
  11846. Flast_request_read uint64
  11847. Frequest uint64
  11848. Fprivate11 TXPointer
  11849. Fprivate12 TXPointer
  11850. Fprivate13 TXPointer
  11851. Fprivate14 TXPointer
  11852. Fmax_request_size uint32
  11853. Fdb uintptr
  11854. Fprivate15 uintptr
  11855. Fdisplay_name uintptr
  11856. Fdefault_screen int32
  11857. Fnscreens int32
  11858. Fscreens uintptr
  11859. Fmotion_buffer uint64
  11860. Fprivate16 uint64
  11861. Fmin_keycode int32
  11862. Fmax_keycode int32
  11863. Fprivate17 TXPointer
  11864. Fprivate18 TXPointer
  11865. Fprivate19 int32
  11866. Fxdefaults uintptr
  11867. })(unsafe.Pointer(dpy)).Fdefault_screen)*128)).Froot_visual
  11868. format = libxrender.XXRenderFindVisualFormat(tls, dpy, visual)
  11869. libc.Xprintf(tls, __ccgo_ts+24, libc.VaList(bp+64, int32((*TVisual)(unsafe.Pointer(visual)).Fvisualid)))
  11870. if format != 0 {
  11871. if (*TXRenderPictFormat)(unsafe.Pointer(format)).Ftype1 == int32(m_PictTypeDirect) {
  11872. libc.Xprintf(tls, __ccgo_ts+63, libc.VaList(bp+64, int32((*TXRenderPictFormat)(unsafe.Pointer(format)).Fdirect.Falpha), int32((*TXRenderPictFormat)(unsafe.Pointer(format)).Fdirect.Fred), int32((*TXRenderPictFormat)(unsafe.Pointer(format)).Fdirect.Fgreen), int32((*TXRenderPictFormat)(unsafe.Pointer(format)).Fdirect.Fblue)))
  11873. } else {
  11874. libc.Xprintf(tls, __ccgo_ts+83, 0)
  11875. }
  11876. } else {
  11877. libc.Xprintf(tls, __ccgo_ts+99, 0)
  11878. }
  11879. if (*TXftDisplayInfo)(unsafe.Pointer(info)).FhasRender != 0 {
  11880. v3 = __ccgo_ts + 136
  11881. } else {
  11882. v3 = __ccgo_ts + 141
  11883. }
  11884. libc.Xprintf(tls, __ccgo_ts+147, libc.VaList(bp+64, v3))
  11885. }
  11886. i = 0
  11887. for {
  11888. if !(i < int32(m_XFT_NUM_SOLID_COLOR)) {
  11889. break
  11890. }
  11891. (*(*TXftSolidColor)(unsafe.Pointer(info + 88 + uintptr(i)*24))).Fscreen = -int32(1)
  11892. (*(*TXftSolidColor)(unsafe.Pointer(info + 88 + uintptr(i)*24))).Fpict = uint64(0)
  11893. goto _4
  11894. _4:
  11895. ;
  11896. i++
  11897. }
  11898. (*TXftDisplayInfo)(unsafe.Pointer(info)).Ffonts = libc.UintptrFromInt32(0)
  11899. (*TXftDisplayInfo)(unsafe.Pointer(info)).Fnext = X_XftDisplayInfo
  11900. X_XftDisplayInfo = info
  11901. (*TXftDisplayInfo)(unsafe.Pointer(info)).Fglyph_memory = uint64(0)
  11902. (*TXftDisplayInfo)(unsafe.Pointer(info)).Fmax_glyph_memory = uint64(XXftDefaultGetInteger(tls, dpy, __ccgo_ts+201, 0, libc.Int32FromInt32(4)*libc.Int32FromInt32(1024)*libc.Int32FromInt32(1024)))
  11903. if XXftDebug(tls)&int32(m_XFT_DBG_CACHE) != 0 {
  11904. libc.Xprintf(tls, __ccgo_ts+216, libc.VaList(bp+64, (*TXftDisplayInfo)(unsafe.Pointer(info)).Fmax_glyph_memory))
  11905. }
  11906. (*TXftDisplayInfo)(unsafe.Pointer(info)).Fnum_unref_fonts = 0
  11907. (*TXftDisplayInfo)(unsafe.Pointer(info)).Fmax_unref_fonts = XXftDefaultGetInteger(tls, dpy, __ccgo_ts+245, 0, int32(m_XFT_DPY_MAX_UNREF_FONTS))
  11908. if XXftDebug(tls)&int32(m_XFT_DBG_CACHE) != 0 {
  11909. libc.Xprintf(tls, __ccgo_ts+259, libc.VaList(bp+64, (*TXftDisplayInfo)(unsafe.Pointer(info)).Fmax_unref_fonts))
  11910. }
  11911. (*TXftDisplayInfo)(unsafe.Pointer(info)).Ftrack_mem_usage = m_FcFalse
  11912. (*TXftDisplayInfo)(unsafe.Pointer(info)).Ftrack_mem_usage = XXftDefaultGetBool(tls, dpy, __ccgo_ts+287, 0, m_FcFalse)
  11913. if XXftDebug(tls)&int32(m_XFT_DBG_CACHE) != 0 {
  11914. if (*TXftDisplayInfo)(unsafe.Pointer(info)).Ftrack_mem_usage != 0 {
  11915. v5 = __ccgo_ts + 301
  11916. } else {
  11917. v5 = __ccgo_ts + 306
  11918. }
  11919. libc.Xprintf(tls, __ccgo_ts+312, libc.VaList(bp+64, v5))
  11920. }
  11921. libc.X__builtin___memset_chk(tls, info+472, int32('\000'), libc.Uint64FromInt64(8)*libc.Uint64FromInt32(m_XFT_NUM_FONT_HASH), uint64(libc.X__builtin_object_size(tls, info+472, 0)))
  11922. return info
  11923. goto bail1
  11924. bail1:
  11925. ;
  11926. libc.Xfree(tls, info)
  11927. goto bail0
  11928. bail0:
  11929. ;
  11930. if XXftDebug(tls)&int32(m_XFT_DBG_RENDER) != 0 {
  11931. libc.Xprintf(tls, __ccgo_ts+340, 0)
  11932. }
  11933. return libc.UintptrFromInt32(0)
  11934. }
  11935. /*
  11936. * Reduce memory usage in X server
  11937. */
  11938. func __XftDisplayValidateMemory(tls *libc.TLS, info uintptr) {
  11939. bp := tls.Alloc(32)
  11940. defer tls.Free(32)
  11941. var font, public uintptr
  11942. var glyph_memory uint64
  11943. _, _, _ = font, glyph_memory, public
  11944. glyph_memory = uint64(0)
  11945. public = (*TXftDisplayInfo)(unsafe.Pointer(info)).Ffonts
  11946. for {
  11947. if !(public != 0) {
  11948. break
  11949. }
  11950. font = public
  11951. glyph_memory += (*TXftFontInt)(unsafe.Pointer(font)).Fglyph_memory
  11952. goto _1
  11953. _1:
  11954. ;
  11955. public = (*TXftFontInt)(unsafe.Pointer(font)).Fnext
  11956. }
  11957. if glyph_memory != (*TXftDisplayInfo)(unsafe.Pointer(info)).Fglyph_memory {
  11958. libc.Xprintf(tls, __ccgo_ts+393, libc.VaList(bp+8, (*TXftDisplayInfo)(unsafe.Pointer(info)).Fglyph_memory, glyph_memory))
  11959. }
  11960. }
  11961. func X_XftDisplayManageMemory(tls *libc.TLS, dpy uintptr) {
  11962. bp := tls.Alloc(32)
  11963. defer tls.Free(32)
  11964. var font, info, public uintptr
  11965. var glyph_memory uint64
  11966. _, _, _, _ = font, glyph_memory, info, public
  11967. info = X_XftDisplayInfoGet(tls, dpy, m_False)
  11968. if !(info != 0) || !((*TXftDisplayInfo)(unsafe.Pointer(info)).Fmax_glyph_memory != 0) {
  11969. return
  11970. }
  11971. if XXftDebug(tls)&int32(m_XFT_DBG_CACHE) != 0 {
  11972. if (*TXftDisplayInfo)(unsafe.Pointer(info)).Fglyph_memory > (*TXftDisplayInfo)(unsafe.Pointer(info)).Fmax_glyph_memory {
  11973. libc.Xprintf(tls, __ccgo_ts+455, libc.VaList(bp+8, (*TXftDisplayInfo)(unsafe.Pointer(info)).Fglyph_memory, (*TXftDisplayInfo)(unsafe.Pointer(info)).Fmax_glyph_memory))
  11974. }
  11975. __XftDisplayValidateMemory(tls, info)
  11976. }
  11977. for (*TXftDisplayInfo)(unsafe.Pointer(info)).Fglyph_memory > (*TXftDisplayInfo)(unsafe.Pointer(info)).Fmax_glyph_memory {
  11978. glyph_memory = uint64(libc.Xrand(tls)) % (*TXftDisplayInfo)(unsafe.Pointer(info)).Fglyph_memory
  11979. public = (*TXftDisplayInfo)(unsafe.Pointer(info)).Ffonts
  11980. for public != 0 {
  11981. font = public
  11982. if (*TXftFontInt)(unsafe.Pointer(font)).Fglyph_memory > glyph_memory {
  11983. X_XftFontUncacheGlyph(tls, dpy, public)
  11984. break
  11985. }
  11986. public = (*TXftFontInt)(unsafe.Pointer(font)).Fnext
  11987. glyph_memory -= (*TXftFontInt)(unsafe.Pointer(font)).Fglyph_memory
  11988. }
  11989. }
  11990. if XXftDebug(tls)&int32(m_XFT_DBG_CACHE) != 0 {
  11991. __XftDisplayValidateMemory(tls, info)
  11992. }
  11993. }
  11994. func XXftDefaultHasRender(tls *libc.TLS, dpy uintptr) (r int32) {
  11995. var info uintptr
  11996. _ = info
  11997. info = X_XftDisplayInfoGet(tls, dpy, int32(m_True))
  11998. if !(info != 0) {
  11999. return m_False
  12000. }
  12001. return (*TXftDisplayInfo)(unsafe.Pointer(info)).FhasRender
  12002. }
  12003. func XXftDefaultSet(tls *libc.TLS, dpy uintptr, defaults uintptr) (r int32) {
  12004. bp := tls.Alloc(16)
  12005. defer tls.Free(16)
  12006. var info, v1 uintptr
  12007. _, _ = info, v1
  12008. info = X_XftDisplayInfoGet(tls, dpy, int32(m_True))
  12009. if !(info != 0) {
  12010. return m_False
  12011. }
  12012. if (*TXftDisplayInfo)(unsafe.Pointer(info)).Fdefaults != 0 {
  12013. libfontconfig.XFcPatternDestroy(tls, (*TXftDisplayInfo)(unsafe.Pointer(info)).Fdefaults)
  12014. }
  12015. (*TXftDisplayInfo)(unsafe.Pointer(info)).Fdefaults = defaults
  12016. if !((*TXftDisplayInfo)(unsafe.Pointer(info)).Fmax_glyph_memory != 0) {
  12017. (*TXftDisplayInfo)(unsafe.Pointer(info)).Fmax_glyph_memory = uint64(libc.Int32FromInt32(4) * libc.Int32FromInt32(1024) * libc.Int32FromInt32(1024))
  12018. }
  12019. (*TXftDisplayInfo)(unsafe.Pointer(info)).Fmax_glyph_memory = uint64(XXftDefaultGetInteger(tls, dpy, __ccgo_ts+201, 0, int32((*TXftDisplayInfo)(unsafe.Pointer(info)).Fmax_glyph_memory)))
  12020. if XXftDebug(tls)&int32(m_XFT_DBG_CACHE) != 0 {
  12021. libc.Xprintf(tls, __ccgo_ts+493, libc.VaList(bp+8, (*TXftDisplayInfo)(unsafe.Pointer(info)).Fmax_glyph_memory))
  12022. }
  12023. if !((*TXftDisplayInfo)(unsafe.Pointer(info)).Fmax_unref_fonts != 0) {
  12024. (*TXftDisplayInfo)(unsafe.Pointer(info)).Fmax_unref_fonts = int32(m_XFT_DPY_MAX_UNREF_FONTS)
  12025. }
  12026. (*TXftDisplayInfo)(unsafe.Pointer(info)).Fmax_unref_fonts = XXftDefaultGetInteger(tls, dpy, __ccgo_ts+245, 0, (*TXftDisplayInfo)(unsafe.Pointer(info)).Fmax_unref_fonts)
  12027. if XXftDebug(tls)&int32(m_XFT_DBG_CACHE) != 0 {
  12028. libc.Xprintf(tls, __ccgo_ts+522, libc.VaList(bp+8, (*TXftDisplayInfo)(unsafe.Pointer(info)).Fmax_unref_fonts))
  12029. }
  12030. (*TXftDisplayInfo)(unsafe.Pointer(info)).Ftrack_mem_usage = XXftDefaultGetBool(tls, dpy, __ccgo_ts+287, 0, (*TXftDisplayInfo)(unsafe.Pointer(info)).Ftrack_mem_usage)
  12031. if XXftDebug(tls)&int32(m_XFT_DBG_CACHE) != 0 {
  12032. if (*TXftDisplayInfo)(unsafe.Pointer(info)).Ftrack_mem_usage != 0 {
  12033. v1 = __ccgo_ts + 301
  12034. } else {
  12035. v1 = __ccgo_ts + 306
  12036. }
  12037. libc.Xprintf(tls, __ccgo_ts+550, libc.VaList(bp+8, v1))
  12038. }
  12039. return int32(m_True)
  12040. }
  12041. func XXftDefaultParseBool(tls *libc.TLS, v uintptr) (r int32) {
  12042. var c0, c1 int8
  12043. var v1, v10, v12, v16, v18, v19, v21, v5, v7, v8 int32
  12044. var v14, v3 t__darwin_ct_rune_t
  12045. var v15, v4 uint64
  12046. _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = c0, c1, v1, v10, v12, v14, v15, v16, v18, v19, v21, v3, v4, v5, v7, v8
  12047. c0 = *(*int8)(unsafe.Pointer(v))
  12048. v3 = int32(c0)
  12049. v4 = uint64(0x00008000)
  12050. v8 = libc.BoolInt32(v3 & ^libc.Int32FromInt32(0x7F) == 0)
  12051. goto _9
  12052. _9:
  12053. if v8 != 0 {
  12054. v7 = libc.BoolInt32(!!(uint64(*(*t__uint32_t)(unsafe.Pointer(uintptr(unsafe.Pointer(&libc.X_DefaultRuneLocale)) + 60 + uintptr(v3)*4)))&v4 != 0))
  12055. } else {
  12056. v7 = libc.BoolInt32(!!(libc.X__maskrune(tls, v3, v4) != 0))
  12057. }
  12058. v5 = v7
  12059. goto _6
  12060. _6:
  12061. v1 = v5
  12062. goto _2
  12063. _2:
  12064. if v1 != 0 {
  12065. v10 = libc.X__tolower(tls, int32(c0))
  12066. goto _11
  12067. _11:
  12068. c0 = int8(v10)
  12069. }
  12070. if int32(c0) == int32('t') || int32(c0) == int32('y') || int32(c0) == int32('1') {
  12071. return int32(1)
  12072. }
  12073. if int32(c0) == int32('f') || int32(c0) == int32('n') || int32(c0) == int32('0') {
  12074. return 0
  12075. }
  12076. if int32(c0) == int32('o') {
  12077. c1 = *(*int8)(unsafe.Pointer(v + 1))
  12078. v14 = int32(c1)
  12079. v15 = uint64(0x00008000)
  12080. v19 = libc.BoolInt32(v14 & ^libc.Int32FromInt32(0x7F) == 0)
  12081. goto _20
  12082. _20:
  12083. if v19 != 0 {
  12084. v18 = libc.BoolInt32(!!(uint64(*(*t__uint32_t)(unsafe.Pointer(uintptr(unsafe.Pointer(&libc.X_DefaultRuneLocale)) + 60 + uintptr(v14)*4)))&v15 != 0))
  12085. } else {
  12086. v18 = libc.BoolInt32(!!(libc.X__maskrune(tls, v14, v15) != 0))
  12087. }
  12088. v16 = v18
  12089. goto _17
  12090. _17:
  12091. v12 = v16
  12092. goto _13
  12093. _13:
  12094. if v12 != 0 {
  12095. v21 = libc.X__tolower(tls, int32(c1))
  12096. goto _22
  12097. _22:
  12098. c1 = int8(v21)
  12099. }
  12100. if int32(c1) == int32('n') {
  12101. return int32(1)
  12102. }
  12103. if int32(c1) == int32('f') {
  12104. return 0
  12105. }
  12106. }
  12107. return -int32(1)
  12108. }
  12109. func __XftDefaultInitBool(tls *libc.TLS, dpy uintptr, pat uintptr, option uintptr) (r int32) {
  12110. var i, v1 int32
  12111. var v uintptr
  12112. var v2 bool
  12113. _, _, _, _ = i, v, v1, v2
  12114. v = libx11.XXGetDefault(tls, dpy, __ccgo_ts+578, option)
  12115. if v2 = v != 0; v2 {
  12116. v1 = XXftDefaultParseBool(tls, v)
  12117. i = v1
  12118. }
  12119. if v2 && v1 >= 0 {
  12120. return libfontconfig.XFcPatternAddBool(tls, pat, option, libc.BoolInt32(i != 0))
  12121. }
  12122. return int32(m_True)
  12123. }
  12124. func __XftDefaultInitDouble(tls *libc.TLS, dpy uintptr, pat uintptr, option uintptr) (r int32) {
  12125. bp := tls.Alloc(16)
  12126. defer tls.Free(16)
  12127. var d float64
  12128. var v uintptr
  12129. var _ /* e at bp+0 */ uintptr
  12130. _, _ = d, v
  12131. v = libx11.XXGetDefault(tls, dpy, __ccgo_ts+578, option)
  12132. if v != 0 {
  12133. d = libc.Xstrtod(tls, v, bp)
  12134. if *(*uintptr)(unsafe.Pointer(bp)) != v {
  12135. return libfontconfig.XFcPatternAddDouble(tls, pat, option, d)
  12136. }
  12137. }
  12138. return int32(m_True)
  12139. }
  12140. func __XftDefaultInitInteger(tls *libc.TLS, dpy uintptr, pat uintptr, option uintptr) (r int32) {
  12141. bp := tls.Alloc(16)
  12142. defer tls.Free(16)
  12143. var v uintptr
  12144. var _ /* e at bp+0 */ uintptr
  12145. var _ /* i at bp+8 */ int32
  12146. _ = v
  12147. v = libx11.XXGetDefault(tls, dpy, __ccgo_ts+578, option)
  12148. if v != 0 {
  12149. if libfontconfig.XFcNameConstant(tls, v, bp+8) != 0 {
  12150. return libfontconfig.XFcPatternAddInteger(tls, pat, option, *(*int32)(unsafe.Pointer(bp + 8)))
  12151. }
  12152. *(*int32)(unsafe.Pointer(bp + 8)) = int32(libc.Xstrtol(tls, v, bp, 0))
  12153. if *(*uintptr)(unsafe.Pointer(bp)) != v {
  12154. return libfontconfig.XFcPatternAddInteger(tls, pat, option, *(*int32)(unsafe.Pointer(bp + 8)))
  12155. }
  12156. }
  12157. return int32(m_True)
  12158. }
  12159. func __XftDefaultInit(tls *libc.TLS, dpy uintptr) (r uintptr) {
  12160. var pat uintptr
  12161. _ = pat
  12162. pat = libfontconfig.XFcPatternCreate(tls)
  12163. if !(pat != 0) {
  12164. goto bail0
  12165. }
  12166. if !(__XftDefaultInitDouble(tls, dpy, pat, __ccgo_ts+582) != 0) {
  12167. goto bail1
  12168. }
  12169. if !(__XftDefaultInitDouble(tls, dpy, pat, __ccgo_ts+588) != 0) {
  12170. goto bail1
  12171. }
  12172. if !(__XftDefaultInitBool(tls, dpy, pat, __ccgo_ts+592) != 0) {
  12173. goto bail1
  12174. }
  12175. if !(__XftDefaultInitInteger(tls, dpy, pat, __ccgo_ts+599) != 0) {
  12176. goto bail1
  12177. }
  12178. if !(__XftDefaultInitInteger(tls, dpy, pat, __ccgo_ts+604) != 0) {
  12179. goto bail1
  12180. }
  12181. if !(__XftDefaultInitBool(tls, dpy, pat, __ccgo_ts+614) != 0) {
  12182. goto bail1
  12183. }
  12184. if !(__XftDefaultInitBool(tls, dpy, pat, __ccgo_ts+624) != 0) {
  12185. goto bail1
  12186. }
  12187. if !(__XftDefaultInitBool(tls, dpy, pat, __ccgo_ts+633) != 0) {
  12188. goto bail1
  12189. }
  12190. if !(__XftDefaultInitInteger(tls, dpy, pat, __ccgo_ts+642) != 0) {
  12191. goto bail1
  12192. }
  12193. if !(__XftDefaultInitBool(tls, dpy, pat, __ccgo_ts+652) != 0) {
  12194. goto bail1
  12195. }
  12196. if !(__XftDefaultInitBool(tls, dpy, pat, __ccgo_ts+660) != 0) {
  12197. goto bail1
  12198. }
  12199. if !(__XftDefaultInitInteger(tls, dpy, pat, __ccgo_ts+201) != 0) {
  12200. goto bail1
  12201. }
  12202. return pat
  12203. goto bail1
  12204. bail1:
  12205. ;
  12206. libfontconfig.XFcPatternDestroy(tls, pat)
  12207. goto bail0
  12208. bail0:
  12209. ;
  12210. return libc.UintptrFromInt32(0)
  12211. return r
  12212. }
  12213. func __XftDefaultGet(tls *libc.TLS, dpy uintptr, object uintptr, screen int32, v uintptr) (r1 TFcResult) {
  12214. var info uintptr
  12215. var r TFcResult
  12216. _, _ = info, r
  12217. info = X_XftDisplayInfoGet(tls, dpy, int32(m_True))
  12218. if !(info != 0) {
  12219. return int32(_FcResultNoMatch)
  12220. }
  12221. if !((*TXftDisplayInfo)(unsafe.Pointer(info)).Fdefaults != 0) {
  12222. (*TXftDisplayInfo)(unsafe.Pointer(info)).Fdefaults = __XftDefaultInit(tls, dpy)
  12223. if !((*TXftDisplayInfo)(unsafe.Pointer(info)).Fdefaults != 0) {
  12224. return int32(_FcResultNoMatch)
  12225. }
  12226. }
  12227. r = libfontconfig.XFcPatternGet(tls, (*TXftDisplayInfo)(unsafe.Pointer(info)).Fdefaults, object, screen, v)
  12228. if r == int32(_FcResultNoId) && screen > 0 {
  12229. r = libfontconfig.XFcPatternGet(tls, (*TXftDisplayInfo)(unsafe.Pointer(info)).Fdefaults, object, 0, v)
  12230. }
  12231. return r
  12232. }
  12233. func XXftDefaultGetBool(tls *libc.TLS, dpy uintptr, object uintptr, screen int32, def int32) (r1 int32) {
  12234. bp := tls.Alloc(16)
  12235. defer tls.Free(16)
  12236. var r TFcResult
  12237. var _ /* v at bp+0 */ TFcValue
  12238. _ = r
  12239. r = __XftDefaultGet(tls, dpy, object, screen, bp)
  12240. if r != int32(_FcResultMatch) || (*(*TFcValue)(unsafe.Pointer(bp))).Ftype1 != int32(_FcTypeBool) {
  12241. return def
  12242. }
  12243. return *(*TFcBool)(unsafe.Pointer(bp + 8))
  12244. }
  12245. func XXftDefaultGetInteger(tls *libc.TLS, dpy uintptr, object uintptr, screen int32, def int32) (r1 int32) {
  12246. bp := tls.Alloc(16)
  12247. defer tls.Free(16)
  12248. var r TFcResult
  12249. var _ /* v at bp+0 */ TFcValue
  12250. _ = r
  12251. r = __XftDefaultGet(tls, dpy, object, screen, bp)
  12252. if r != int32(_FcResultMatch) || (*(*TFcValue)(unsafe.Pointer(bp))).Ftype1 != int32(_FcTypeInteger) {
  12253. return def
  12254. }
  12255. return *(*int32)(unsafe.Pointer(bp + 8))
  12256. }
  12257. func XXftDefaultGetDouble(tls *libc.TLS, dpy uintptr, object uintptr, screen int32, def float64) (r1 float64) {
  12258. bp := tls.Alloc(16)
  12259. defer tls.Free(16)
  12260. var r TFcResult
  12261. var _ /* v at bp+0 */ TFcValue
  12262. _ = r
  12263. r = __XftDefaultGet(tls, dpy, object, screen, bp)
  12264. if r != int32(_FcResultMatch) || (*(*TFcValue)(unsafe.Pointer(bp))).Ftype1 != int32(_FcTypeDouble) {
  12265. return def
  12266. }
  12267. return *(*float64)(unsafe.Pointer(bp + 8))
  12268. }
  12269. func XXftDefaultSubstitute(tls *libc.TLS, dpy uintptr, screen int32, pattern uintptr) {
  12270. bp := tls.Alloc(16)
  12271. defer tls.Free(16)
  12272. var dpi float64
  12273. var render_order, subpixel int32
  12274. var _ /* v at bp+0 */ TFcValue
  12275. _, _, _ = dpi, render_order, subpixel
  12276. if libfontconfig.XFcPatternGet(tls, pattern, __ccgo_ts+592, 0, bp) == int32(_FcResultNoMatch) {
  12277. libfontconfig.XFcPatternAddBool(tls, pattern, __ccgo_ts+592, XXftDefaultGetBool(tls, dpy, __ccgo_ts+592, screen, XXftDefaultHasRender(tls, dpy)))
  12278. }
  12279. if libfontconfig.XFcPatternGet(tls, pattern, __ccgo_ts+614, 0, bp) == int32(_FcResultNoMatch) {
  12280. libfontconfig.XFcPatternAddBool(tls, pattern, __ccgo_ts+614, XXftDefaultGetBool(tls, dpy, __ccgo_ts+614, screen, int32(m_True)))
  12281. }
  12282. if libfontconfig.XFcPatternGet(tls, pattern, __ccgo_ts+624, 0, bp) == int32(_FcResultNoMatch) {
  12283. libfontconfig.XFcPatternAddBool(tls, pattern, __ccgo_ts+624, XXftDefaultGetBool(tls, dpy, __ccgo_ts+624, screen, m_False))
  12284. }
  12285. if libfontconfig.XFcPatternGet(tls, pattern, __ccgo_ts+652, 0, bp) == int32(_FcResultNoMatch) {
  12286. libfontconfig.XFcPatternAddBool(tls, pattern, __ccgo_ts+652, XXftDefaultGetBool(tls, dpy, __ccgo_ts+652, screen, int32(m_True)))
  12287. }
  12288. if libfontconfig.XFcPatternGet(tls, pattern, __ccgo_ts+642, 0, bp) == int32(_FcResultNoMatch) {
  12289. libfontconfig.XFcPatternAddInteger(tls, pattern, __ccgo_ts+642, XXftDefaultGetInteger(tls, dpy, __ccgo_ts+642, screen, int32(m_FC_HINT_FULL)))
  12290. }
  12291. if libfontconfig.XFcPatternGet(tls, pattern, __ccgo_ts+633, 0, bp) == int32(_FcResultNoMatch) {
  12292. libfontconfig.XFcPatternAddBool(tls, pattern, __ccgo_ts+633, XXftDefaultGetBool(tls, dpy, __ccgo_ts+633, screen, m_False))
  12293. }
  12294. if libfontconfig.XFcPatternGet(tls, pattern, __ccgo_ts+599, 0, bp) == int32(_FcResultNoMatch) {
  12295. subpixel = m_FC_RGBA_UNKNOWN
  12296. if XXftDefaultHasRender(tls, dpy) != 0 {
  12297. render_order = libxrender.XXRenderQuerySubpixelOrder(tls, dpy, screen)
  12298. switch render_order {
  12299. default:
  12300. fallthrough
  12301. case m_SubPixelUnknown:
  12302. subpixel = m_FC_RGBA_UNKNOWN
  12303. case int32(m_SubPixelHorizontalRGB):
  12304. subpixel = int32(m_FC_RGBA_RGB)
  12305. case int32(m_SubPixelHorizontalBGR):
  12306. subpixel = int32(m_FC_RGBA_BGR)
  12307. case int32(m_SubPixelVerticalRGB):
  12308. subpixel = int32(m_FC_RGBA_VRGB)
  12309. case int32(m_SubPixelVerticalBGR):
  12310. subpixel = int32(m_FC_RGBA_VBGR)
  12311. case int32(m_SubPixelNone):
  12312. subpixel = int32(m_FC_RGBA_NONE)
  12313. break
  12314. }
  12315. }
  12316. libfontconfig.XFcPatternAddInteger(tls, pattern, __ccgo_ts+599, XXftDefaultGetInteger(tls, dpy, __ccgo_ts+599, screen, subpixel))
  12317. }
  12318. if libfontconfig.XFcPatternGet(tls, pattern, __ccgo_ts+604, 0, bp) == int32(_FcResultNoMatch) {
  12319. libfontconfig.XFcPatternAddInteger(tls, pattern, __ccgo_ts+604, XXftDefaultGetInteger(tls, dpy, __ccgo_ts+604, screen, int32(m_FC_LCD_DEFAULT)))
  12320. }
  12321. if libfontconfig.XFcPatternGet(tls, pattern, __ccgo_ts+660, 0, bp) == int32(_FcResultNoMatch) {
  12322. libfontconfig.XFcPatternAddBool(tls, pattern, __ccgo_ts+660, XXftDefaultGetBool(tls, dpy, __ccgo_ts+660, screen, m_False))
  12323. }
  12324. if libfontconfig.XFcPatternGet(tls, pattern, __ccgo_ts+588, 0, bp) == int32(_FcResultNoMatch) {
  12325. dpi = float64((*TScreen)(unsafe.Pointer((*struct {
  12326. Fext_data uintptr
  12327. Fprivate1 uintptr
  12328. Ffd int32
  12329. Fprivate2 int32
  12330. Fproto_major_version int32
  12331. Fproto_minor_version int32
  12332. Fvendor uintptr
  12333. Fprivate3 TXID
  12334. Fprivate4 TXID
  12335. Fprivate5 TXID
  12336. Fprivate6 int32
  12337. Fresource_alloc uintptr
  12338. Fbyte_order int32
  12339. Fbitmap_unit int32
  12340. Fbitmap_pad int32
  12341. Fbitmap_bit_order int32
  12342. Fnformats int32
  12343. Fpixmap_format uintptr
  12344. Fprivate8 int32
  12345. Frelease int32
  12346. Fprivate9 uintptr
  12347. Fprivate10 uintptr
  12348. Fqlen int32
  12349. Flast_request_read uint64
  12350. Frequest uint64
  12351. Fprivate11 TXPointer
  12352. Fprivate12 TXPointer
  12353. Fprivate13 TXPointer
  12354. Fprivate14 TXPointer
  12355. Fmax_request_size uint32
  12356. Fdb uintptr
  12357. Fprivate15 uintptr
  12358. Fdisplay_name uintptr
  12359. Fdefault_screen int32
  12360. Fnscreens int32
  12361. Fscreens uintptr
  12362. Fmotion_buffer uint64
  12363. Fprivate16 uint64
  12364. Fmin_keycode int32
  12365. Fmax_keycode int32
  12366. Fprivate17 TXPointer
  12367. Fprivate18 TXPointer
  12368. Fprivate19 int32
  12369. Fxdefaults uintptr
  12370. })(unsafe.Pointer(dpy)).Fscreens+uintptr(screen)*128)).Fheight) * float64(25.4) / float64((*TScreen)(unsafe.Pointer((*struct {
  12371. Fext_data uintptr
  12372. Fprivate1 uintptr
  12373. Ffd int32
  12374. Fprivate2 int32
  12375. Fproto_major_version int32
  12376. Fproto_minor_version int32
  12377. Fvendor uintptr
  12378. Fprivate3 TXID
  12379. Fprivate4 TXID
  12380. Fprivate5 TXID
  12381. Fprivate6 int32
  12382. Fresource_alloc uintptr
  12383. Fbyte_order int32
  12384. Fbitmap_unit int32
  12385. Fbitmap_pad int32
  12386. Fbitmap_bit_order int32
  12387. Fnformats int32
  12388. Fpixmap_format uintptr
  12389. Fprivate8 int32
  12390. Frelease int32
  12391. Fprivate9 uintptr
  12392. Fprivate10 uintptr
  12393. Fqlen int32
  12394. Flast_request_read uint64
  12395. Frequest uint64
  12396. Fprivate11 TXPointer
  12397. Fprivate12 TXPointer
  12398. Fprivate13 TXPointer
  12399. Fprivate14 TXPointer
  12400. Fmax_request_size uint32
  12401. Fdb uintptr
  12402. Fprivate15 uintptr
  12403. Fdisplay_name uintptr
  12404. Fdefault_screen int32
  12405. Fnscreens int32
  12406. Fscreens uintptr
  12407. Fmotion_buffer uint64
  12408. Fprivate16 uint64
  12409. Fmin_keycode int32
  12410. Fmax_keycode int32
  12411. Fprivate17 TXPointer
  12412. Fprivate18 TXPointer
  12413. Fprivate19 int32
  12414. Fxdefaults uintptr
  12415. })(unsafe.Pointer(dpy)).Fscreens+uintptr(screen)*128)).Fmheight)
  12416. libfontconfig.XFcPatternAddDouble(tls, pattern, __ccgo_ts+588, XXftDefaultGetDouble(tls, dpy, __ccgo_ts+588, screen, dpi))
  12417. }
  12418. if libfontconfig.XFcPatternGet(tls, pattern, __ccgo_ts+582, 0, bp) == int32(_FcResultNoMatch) {
  12419. libfontconfig.XFcPatternAddDouble(tls, pattern, __ccgo_ts+582, XXftDefaultGetDouble(tls, dpy, __ccgo_ts+582, screen, float64(1)))
  12420. }
  12421. if libfontconfig.XFcPatternGet(tls, pattern, __ccgo_ts+201, 0, bp) == int32(_FcResultNoMatch) {
  12422. libfontconfig.XFcPatternAddInteger(tls, pattern, __ccgo_ts+201, XXftDefaultGetInteger(tls, dpy, __ccgo_ts+201, screen, libc.Int32FromInt32(1024)*libc.Int32FromInt32(1024)))
  12423. }
  12424. libfontconfig.XFcDefaultSubstitute(tls, pattern)
  12425. }
  12426. const m_VisualIDMask1 = 1
  12427. const m_VisualScreenMask1 = 2
  12428. /* xftxlfd.c */
  12429. /*
  12430. * Ok, this is a pain. To share source pictures across multiple destinations,
  12431. * the screen for each drawable must be discovered.
  12432. */
  12433. func __XftDrawScreen(tls *libc.TLS, dpy uintptr, drawable TDrawable, visual uintptr) (r int32) {
  12434. bp := tls.Alloc(112)
  12435. defer tls.Free(112)
  12436. var ret uintptr
  12437. var s int32
  12438. var _ /* borderWidth at bp+24 */ uint32
  12439. var _ /* depth at bp+28 */ uint32
  12440. var _ /* height at bp+20 */ uint32
  12441. var _ /* nret at bp+96 */ int32
  12442. var _ /* root at bp+0 */ TWindow
  12443. var _ /* template at bp+32 */ TXVisualInfo
  12444. var _ /* width at bp+16 */ uint32
  12445. var _ /* x at bp+8 */ int32
  12446. var _ /* y at bp+12 */ int32
  12447. _, _ = ret, s
  12448. /* Special case the most common environment */
  12449. if (*struct {
  12450. Fext_data uintptr
  12451. Fprivate1 uintptr
  12452. Ffd int32
  12453. Fprivate2 int32
  12454. Fproto_major_version int32
  12455. Fproto_minor_version int32
  12456. Fvendor uintptr
  12457. Fprivate3 TXID
  12458. Fprivate4 TXID
  12459. Fprivate5 TXID
  12460. Fprivate6 int32
  12461. Fresource_alloc uintptr
  12462. Fbyte_order int32
  12463. Fbitmap_unit int32
  12464. Fbitmap_pad int32
  12465. Fbitmap_bit_order int32
  12466. Fnformats int32
  12467. Fpixmap_format uintptr
  12468. Fprivate8 int32
  12469. Frelease int32
  12470. Fprivate9 uintptr
  12471. Fprivate10 uintptr
  12472. Fqlen int32
  12473. Flast_request_read uint64
  12474. Frequest uint64
  12475. Fprivate11 TXPointer
  12476. Fprivate12 TXPointer
  12477. Fprivate13 TXPointer
  12478. Fprivate14 TXPointer
  12479. Fmax_request_size uint32
  12480. Fdb uintptr
  12481. Fprivate15 uintptr
  12482. Fdisplay_name uintptr
  12483. Fdefault_screen int32
  12484. Fnscreens int32
  12485. Fscreens uintptr
  12486. Fmotion_buffer uint64
  12487. Fprivate16 uint64
  12488. Fmin_keycode int32
  12489. Fmax_keycode int32
  12490. Fprivate17 TXPointer
  12491. Fprivate18 TXPointer
  12492. Fprivate19 int32
  12493. Fxdefaults uintptr
  12494. })(unsafe.Pointer(dpy)).Fnscreens == int32(1) {
  12495. return 0
  12496. }
  12497. /*
  12498. * If we've got a visual, look for the screen that points at it.
  12499. * This requires no round trip.
  12500. */
  12501. if visual != 0 {
  12502. s = 0
  12503. for {
  12504. if !(s < (*struct {
  12505. Fext_data uintptr
  12506. Fprivate1 uintptr
  12507. Ffd int32
  12508. Fprivate2 int32
  12509. Fproto_major_version int32
  12510. Fproto_minor_version int32
  12511. Fvendor uintptr
  12512. Fprivate3 TXID
  12513. Fprivate4 TXID
  12514. Fprivate5 TXID
  12515. Fprivate6 int32
  12516. Fresource_alloc uintptr
  12517. Fbyte_order int32
  12518. Fbitmap_unit int32
  12519. Fbitmap_pad int32
  12520. Fbitmap_bit_order int32
  12521. Fnformats int32
  12522. Fpixmap_format uintptr
  12523. Fprivate8 int32
  12524. Frelease int32
  12525. Fprivate9 uintptr
  12526. Fprivate10 uintptr
  12527. Fqlen int32
  12528. Flast_request_read uint64
  12529. Frequest uint64
  12530. Fprivate11 TXPointer
  12531. Fprivate12 TXPointer
  12532. Fprivate13 TXPointer
  12533. Fprivate14 TXPointer
  12534. Fmax_request_size uint32
  12535. Fdb uintptr
  12536. Fprivate15 uintptr
  12537. Fdisplay_name uintptr
  12538. Fdefault_screen int32
  12539. Fnscreens int32
  12540. Fscreens uintptr
  12541. Fmotion_buffer uint64
  12542. Fprivate16 uint64
  12543. Fmin_keycode int32
  12544. Fmax_keycode int32
  12545. Fprivate17 TXPointer
  12546. Fprivate18 TXPointer
  12547. Fprivate19 int32
  12548. Fxdefaults uintptr
  12549. })(unsafe.Pointer(dpy)).Fnscreens) {
  12550. break
  12551. }
  12552. (*(*TXVisualInfo)(unsafe.Pointer(bp + 32))).Fvisualid = (*TVisual)(unsafe.Pointer(visual)).Fvisualid
  12553. (*(*TXVisualInfo)(unsafe.Pointer(bp + 32))).Fscreen = s
  12554. ret = libx11.XXGetVisualInfo(tls, dpy, int64(libc.Int32FromInt32(m_VisualIDMask1)|libc.Int32FromInt32(m_VisualScreenMask1)), bp+32, bp+96)
  12555. if ret != 0 {
  12556. libx11.XXFree(tls, ret)
  12557. return s
  12558. }
  12559. goto _1
  12560. _1:
  12561. ;
  12562. s++
  12563. }
  12564. }
  12565. /*
  12566. * Otherwise, as the server for the drawable geometry and find
  12567. * the screen from the root window.
  12568. * This takes a round trip.
  12569. */
  12570. if libx11.XXGetGeometry(tls, dpy, drawable, bp, bp+8, bp+12, bp+16, bp+20, bp+24, bp+28) != 0 {
  12571. s = 0
  12572. for {
  12573. if !(s < (*struct {
  12574. Fext_data uintptr
  12575. Fprivate1 uintptr
  12576. Ffd int32
  12577. Fprivate2 int32
  12578. Fproto_major_version int32
  12579. Fproto_minor_version int32
  12580. Fvendor uintptr
  12581. Fprivate3 TXID
  12582. Fprivate4 TXID
  12583. Fprivate5 TXID
  12584. Fprivate6 int32
  12585. Fresource_alloc uintptr
  12586. Fbyte_order int32
  12587. Fbitmap_unit int32
  12588. Fbitmap_pad int32
  12589. Fbitmap_bit_order int32
  12590. Fnformats int32
  12591. Fpixmap_format uintptr
  12592. Fprivate8 int32
  12593. Frelease int32
  12594. Fprivate9 uintptr
  12595. Fprivate10 uintptr
  12596. Fqlen int32
  12597. Flast_request_read uint64
  12598. Frequest uint64
  12599. Fprivate11 TXPointer
  12600. Fprivate12 TXPointer
  12601. Fprivate13 TXPointer
  12602. Fprivate14 TXPointer
  12603. Fmax_request_size uint32
  12604. Fdb uintptr
  12605. Fprivate15 uintptr
  12606. Fdisplay_name uintptr
  12607. Fdefault_screen int32
  12608. Fnscreens int32
  12609. Fscreens uintptr
  12610. Fmotion_buffer uint64
  12611. Fprivate16 uint64
  12612. Fmin_keycode int32
  12613. Fmax_keycode int32
  12614. Fprivate17 TXPointer
  12615. Fprivate18 TXPointer
  12616. Fprivate19 int32
  12617. Fxdefaults uintptr
  12618. })(unsafe.Pointer(dpy)).Fnscreens) {
  12619. break
  12620. }
  12621. if (*TScreen)(unsafe.Pointer((*struct {
  12622. Fext_data uintptr
  12623. Fprivate1 uintptr
  12624. Ffd int32
  12625. Fprivate2 int32
  12626. Fproto_major_version int32
  12627. Fproto_minor_version int32
  12628. Fvendor uintptr
  12629. Fprivate3 TXID
  12630. Fprivate4 TXID
  12631. Fprivate5 TXID
  12632. Fprivate6 int32
  12633. Fresource_alloc uintptr
  12634. Fbyte_order int32
  12635. Fbitmap_unit int32
  12636. Fbitmap_pad int32
  12637. Fbitmap_bit_order int32
  12638. Fnformats int32
  12639. Fpixmap_format uintptr
  12640. Fprivate8 int32
  12641. Frelease int32
  12642. Fprivate9 uintptr
  12643. Fprivate10 uintptr
  12644. Fqlen int32
  12645. Flast_request_read uint64
  12646. Frequest uint64
  12647. Fprivate11 TXPointer
  12648. Fprivate12 TXPointer
  12649. Fprivate13 TXPointer
  12650. Fprivate14 TXPointer
  12651. Fmax_request_size uint32
  12652. Fdb uintptr
  12653. Fprivate15 uintptr
  12654. Fdisplay_name uintptr
  12655. Fdefault_screen int32
  12656. Fnscreens int32
  12657. Fscreens uintptr
  12658. Fmotion_buffer uint64
  12659. Fprivate16 uint64
  12660. Fmin_keycode int32
  12661. Fmax_keycode int32
  12662. Fprivate17 TXPointer
  12663. Fprivate18 TXPointer
  12664. Fprivate19 int32
  12665. Fxdefaults uintptr
  12666. })(unsafe.Pointer(dpy)).Fscreens+uintptr(s)*128)).Froot == *(*TWindow)(unsafe.Pointer(bp)) {
  12667. return s
  12668. }
  12669. goto _2
  12670. _2:
  12671. ;
  12672. s++
  12673. }
  12674. }
  12675. /*
  12676. * Make a guess -- it's probably wrong, but then the app probably
  12677. * handed us a bogus drawable in this case
  12678. */
  12679. return 0
  12680. }
  12681. func XXftDrawDepth(tls *libc.TLS, draw uintptr) (r uint32) {
  12682. bp := tls.Alloc(32)
  12683. defer tls.Free(32)
  12684. var _ /* borderWidth at bp+24 */ uint32
  12685. var _ /* depth at bp+28 */ uint32
  12686. var _ /* height at bp+20 */ uint32
  12687. var _ /* root at bp+0 */ TWindow
  12688. var _ /* width at bp+16 */ uint32
  12689. var _ /* x at bp+8 */ int32
  12690. var _ /* y at bp+12 */ int32
  12691. if !((*TXftDraw)(unsafe.Pointer(draw)).Fdepth != 0) {
  12692. if libx11.XXGetGeometry(tls, (*TXftDraw)(unsafe.Pointer(draw)).Fdpy, (*TXftDraw)(unsafe.Pointer(draw)).Fdrawable, bp, bp+8, bp+12, bp+16, bp+20, bp+24, bp+28) != 0 {
  12693. (*TXftDraw)(unsafe.Pointer(draw)).Fdepth = *(*uint32)(unsafe.Pointer(bp + 28))
  12694. }
  12695. }
  12696. return (*TXftDraw)(unsafe.Pointer(draw)).Fdepth
  12697. }
  12698. func XXftDrawBitsPerPixel(tls *libc.TLS, draw uintptr) (r uint32) {
  12699. bp := tls.Alloc(16)
  12700. defer tls.Free(16)
  12701. var depth, v1 uint32
  12702. var formats, v2 uintptr
  12703. var i int32
  12704. var v3 bool
  12705. var _ /* nformats at bp+0 */ int32
  12706. _, _, _, _, _, _ = depth, formats, i, v1, v2, v3
  12707. if !((*TXftDraw)(unsafe.Pointer(draw)).Fbits_per_pixel != 0) {
  12708. v1 = XXftDrawDepth(tls, draw)
  12709. depth = v1
  12710. if v3 = v1 != 0; v3 {
  12711. v2 = libx11.XXListPixmapFormats(tls, (*TXftDraw)(unsafe.Pointer(draw)).Fdpy, bp)
  12712. formats = v2
  12713. }
  12714. if v3 && v2 != 0 {
  12715. i = 0
  12716. for {
  12717. if !(i < *(*int32)(unsafe.Pointer(bp))) {
  12718. break
  12719. }
  12720. if uint32((*(*TXPixmapFormatValues)(unsafe.Pointer(formats + uintptr(i)*12))).Fdepth) == depth {
  12721. (*TXftDraw)(unsafe.Pointer(draw)).Fbits_per_pixel = uint32((*(*TXPixmapFormatValues)(unsafe.Pointer(formats + uintptr(i)*12))).Fbits_per_pixel)
  12722. break
  12723. }
  12724. goto _4
  12725. _4:
  12726. ;
  12727. i++
  12728. }
  12729. libx11.XXFree(tls, formats)
  12730. }
  12731. }
  12732. return (*TXftDraw)(unsafe.Pointer(draw)).Fbits_per_pixel
  12733. }
  12734. func XXftDrawCreate(tls *libc.TLS, dpy uintptr, drawable TDrawable, visual uintptr, colormap TColormap) (r uintptr) {
  12735. var draw uintptr
  12736. _ = draw
  12737. draw = libc.Xmalloc(tls, uint64(96))
  12738. if !(draw != 0) {
  12739. return libc.UintptrFromInt32(0)
  12740. }
  12741. (*TXftDraw)(unsafe.Pointer(draw)).Fdpy = dpy
  12742. (*TXftDraw)(unsafe.Pointer(draw)).Fdrawable = drawable
  12743. (*TXftDraw)(unsafe.Pointer(draw)).Fscreen = __XftDrawScreen(tls, dpy, drawable, visual)
  12744. (*TXftDraw)(unsafe.Pointer(draw)).Fdepth = uint32(0) /* don't find out unless we need to know */
  12745. (*TXftDraw)(unsafe.Pointer(draw)).Fbits_per_pixel = uint32(0) /* don't find out unless we need to know */
  12746. (*TXftDraw)(unsafe.Pointer(draw)).Fvisual = visual
  12747. (*TXftDraw)(unsafe.Pointer(draw)).Fcolormap = colormap
  12748. (*TXftDraw)(unsafe.Pointer(draw)).Frender.Fpict = uint64(0)
  12749. (*TXftDraw)(unsafe.Pointer(draw)).Fcore.Fgc = libc.UintptrFromInt32(0)
  12750. (*TXftDraw)(unsafe.Pointer(draw)).Fcore.Fuse_pixmap = 0
  12751. (*TXftDraw)(unsafe.Pointer(draw)).Fclip_type = int32(_XftClipTypeNone)
  12752. (*TXftDraw)(unsafe.Pointer(draw)).Fsubwindow_mode = m_ClipByChildren
  12753. XXftMemAlloc(tls, int32(_XFT_MEM_DRAW), uint64(96))
  12754. return draw
  12755. }
  12756. func XXftDrawCreateBitmap(tls *libc.TLS, dpy uintptr, bitmap TPixmap) (r uintptr) {
  12757. var draw uintptr
  12758. _ = draw
  12759. draw = libc.Xmalloc(tls, uint64(96))
  12760. if !(draw != 0) {
  12761. return libc.UintptrFromInt32(0)
  12762. }
  12763. (*TXftDraw)(unsafe.Pointer(draw)).Fdpy = dpy
  12764. (*TXftDraw)(unsafe.Pointer(draw)).Fdrawable = bitmap
  12765. (*TXftDraw)(unsafe.Pointer(draw)).Fscreen = __XftDrawScreen(tls, dpy, bitmap, libc.UintptrFromInt32(0))
  12766. (*TXftDraw)(unsafe.Pointer(draw)).Fdepth = uint32(1)
  12767. (*TXftDraw)(unsafe.Pointer(draw)).Fbits_per_pixel = uint32(1)
  12768. (*TXftDraw)(unsafe.Pointer(draw)).Fvisual = libc.UintptrFromInt32(0)
  12769. (*TXftDraw)(unsafe.Pointer(draw)).Fcolormap = uint64(0)
  12770. (*TXftDraw)(unsafe.Pointer(draw)).Frender.Fpict = uint64(0)
  12771. (*TXftDraw)(unsafe.Pointer(draw)).Fcore.Fgc = libc.UintptrFromInt32(0)
  12772. (*TXftDraw)(unsafe.Pointer(draw)).Fcore.Fuse_pixmap = 0
  12773. (*TXftDraw)(unsafe.Pointer(draw)).Fclip_type = int32(_XftClipTypeNone)
  12774. (*TXftDraw)(unsafe.Pointer(draw)).Fsubwindow_mode = m_ClipByChildren
  12775. XXftMemAlloc(tls, int32(_XFT_MEM_DRAW), uint64(96))
  12776. return draw
  12777. }
  12778. func XXftDrawCreateAlpha(tls *libc.TLS, dpy uintptr, pixmap TPixmap, depth int32) (r uintptr) {
  12779. var draw uintptr
  12780. _ = draw
  12781. draw = libc.Xmalloc(tls, uint64(96))
  12782. if !(draw != 0) {
  12783. return libc.UintptrFromInt32(0)
  12784. }
  12785. (*TXftDraw)(unsafe.Pointer(draw)).Fdpy = dpy
  12786. (*TXftDraw)(unsafe.Pointer(draw)).Fdrawable = pixmap
  12787. (*TXftDraw)(unsafe.Pointer(draw)).Fscreen = __XftDrawScreen(tls, dpy, pixmap, libc.UintptrFromInt32(0))
  12788. (*TXftDraw)(unsafe.Pointer(draw)).Fdepth = uint32(depth)
  12789. (*TXftDraw)(unsafe.Pointer(draw)).Fbits_per_pixel = uint32(0) /* don't find out until we need it */
  12790. (*TXftDraw)(unsafe.Pointer(draw)).Fvisual = libc.UintptrFromInt32(0)
  12791. (*TXftDraw)(unsafe.Pointer(draw)).Fcolormap = uint64(0)
  12792. (*TXftDraw)(unsafe.Pointer(draw)).Frender.Fpict = uint64(0)
  12793. (*TXftDraw)(unsafe.Pointer(draw)).Fcore.Fgc = libc.UintptrFromInt32(0)
  12794. (*TXftDraw)(unsafe.Pointer(draw)).Fcore.Fuse_pixmap = 0
  12795. (*TXftDraw)(unsafe.Pointer(draw)).Fclip_type = int32(_XftClipTypeNone)
  12796. (*TXftDraw)(unsafe.Pointer(draw)).Fsubwindow_mode = m_ClipByChildren
  12797. XXftMemAlloc(tls, int32(_XFT_MEM_DRAW), uint64(96))
  12798. return draw
  12799. }
  12800. func __XftDrawFormat(tls *libc.TLS, draw uintptr) (r uintptr) {
  12801. bp := tls.Alloc(48)
  12802. defer tls.Free(48)
  12803. var info uintptr
  12804. var _ /* pf at bp+0 */ TXRenderPictFormat
  12805. _ = info
  12806. info = X_XftDisplayInfoGet(tls, (*TXftDraw)(unsafe.Pointer(draw)).Fdpy, int32(m_True))
  12807. if !(info != 0) || !((*TXftDisplayInfo)(unsafe.Pointer(info)).FhasRender != 0) {
  12808. return libc.UintptrFromInt32(0)
  12809. }
  12810. if (*TXftDraw)(unsafe.Pointer(draw)).Fvisual == libc.UintptrFromInt32(0) {
  12811. (*(*TXRenderPictFormat)(unsafe.Pointer(bp))).Ftype1 = int32(m_PictTypeDirect)
  12812. (*(*TXRenderPictFormat)(unsafe.Pointer(bp))).Fdepth = int32(XXftDrawDepth(tls, draw))
  12813. (*(*TXRenderPictFormat)(unsafe.Pointer(bp))).Fdirect.Falpha = 0
  12814. (*(*TXRenderPictFormat)(unsafe.Pointer(bp))).Fdirect.FalphaMask = int16(libc.Int32FromInt32(1)<<(*(*TXRenderPictFormat)(unsafe.Pointer(bp))).Fdepth - libc.Int32FromInt32(1))
  12815. return libxrender.XXRenderFindFormat(tls, (*TXftDraw)(unsafe.Pointer(draw)).Fdpy, uint64(libc.Int32FromInt32(1)<<libc.Int32FromInt32(1)|libc.Int32FromInt32(1)<<libc.Int32FromInt32(2)|libc.Int32FromInt32(1)<<libc.Int32FromInt32(9)|libc.Int32FromInt32(1)<<libc.Int32FromInt32(10)), bp, 0)
  12816. } else {
  12817. return libxrender.XXRenderFindVisualFormat(tls, (*TXftDraw)(unsafe.Pointer(draw)).Fdpy, (*TXftDraw)(unsafe.Pointer(draw)).Fvisual)
  12818. }
  12819. return r
  12820. }
  12821. func XXftDrawChange(tls *libc.TLS, draw uintptr, drawable TDrawable) {
  12822. (*TXftDraw)(unsafe.Pointer(draw)).Fdrawable = drawable
  12823. if (*TXftDraw)(unsafe.Pointer(draw)).Frender.Fpict != 0 {
  12824. libxrender.XXRenderFreePicture(tls, (*TXftDraw)(unsafe.Pointer(draw)).Fdpy, (*TXftDraw)(unsafe.Pointer(draw)).Frender.Fpict)
  12825. (*TXftDraw)(unsafe.Pointer(draw)).Frender.Fpict = uint64(0)
  12826. }
  12827. if (*TXftDraw)(unsafe.Pointer(draw)).Fcore.Fgc != 0 {
  12828. libx11.XXFreeGC(tls, (*TXftDraw)(unsafe.Pointer(draw)).Fdpy, (*TXftDraw)(unsafe.Pointer(draw)).Fcore.Fgc)
  12829. (*TXftDraw)(unsafe.Pointer(draw)).Fcore.Fgc = libc.UintptrFromInt32(0)
  12830. }
  12831. }
  12832. func XXftDrawDisplay(tls *libc.TLS, draw uintptr) (r uintptr) {
  12833. return (*TXftDraw)(unsafe.Pointer(draw)).Fdpy
  12834. }
  12835. func XXftDrawDrawable(tls *libc.TLS, draw uintptr) (r TDrawable) {
  12836. return (*TXftDraw)(unsafe.Pointer(draw)).Fdrawable
  12837. }
  12838. func XXftDrawColormap(tls *libc.TLS, draw uintptr) (r TColormap) {
  12839. return (*TXftDraw)(unsafe.Pointer(draw)).Fcolormap
  12840. }
  12841. func XXftDrawVisual(tls *libc.TLS, draw uintptr) (r uintptr) {
  12842. return (*TXftDraw)(unsafe.Pointer(draw)).Fvisual
  12843. }
  12844. func XXftDrawDestroy(tls *libc.TLS, draw uintptr) {
  12845. if (*TXftDraw)(unsafe.Pointer(draw)).Frender.Fpict != 0 {
  12846. libxrender.XXRenderFreePicture(tls, (*TXftDraw)(unsafe.Pointer(draw)).Fdpy, (*TXftDraw)(unsafe.Pointer(draw)).Frender.Fpict)
  12847. }
  12848. if (*TXftDraw)(unsafe.Pointer(draw)).Fcore.Fgc != 0 {
  12849. libx11.XXFreeGC(tls, (*TXftDraw)(unsafe.Pointer(draw)).Fdpy, (*TXftDraw)(unsafe.Pointer(draw)).Fcore.Fgc)
  12850. }
  12851. switch (*TXftDraw)(unsafe.Pointer(draw)).Fclip_type {
  12852. case int32(_XftClipTypeRegion):
  12853. libx11.XXDestroyRegion(tls, *(*TRegion)(unsafe.Pointer(draw + 56)))
  12854. case int32(_XftClipTypeRectangles):
  12855. libc.Xfree(tls, *(*uintptr)(unsafe.Pointer(draw + 56)))
  12856. case int32(_XftClipTypeNone):
  12857. break
  12858. }
  12859. XXftMemFree(tls, int32(_XFT_MEM_DRAW), uint64(96))
  12860. libc.Xfree(tls, draw)
  12861. }
  12862. func XXftDrawSrcPicture(tls *libc.TLS, draw uintptr, color uintptr) (r TPicture) {
  12863. bp := tls.Alloc(96)
  12864. defer tls.Free(96)
  12865. var dpy, info uintptr
  12866. var i int32
  12867. var pix TPixmap
  12868. var _ /* bitmapColor at bp+0 */ TXftColor
  12869. var _ /* pa at bp+16 */ TXRenderPictureAttributes
  12870. _, _, _, _ = dpy, i, info, pix
  12871. dpy = (*TXftDraw)(unsafe.Pointer(draw)).Fdpy
  12872. info = X_XftDisplayInfoGet(tls, dpy, int32(m_True))
  12873. if !(info != 0) || !((*TXftDisplayInfo)(unsafe.Pointer(info)).FsolidFormat != 0) {
  12874. return uint64(0)
  12875. }
  12876. /*
  12877. * Monochrome targets require special handling; the PictOp controls
  12878. * the color, and the color must be opaque
  12879. */
  12880. if !((*TXftDraw)(unsafe.Pointer(draw)).Fvisual != 0) && (*TXftDraw)(unsafe.Pointer(draw)).Fdepth == uint32(1) {
  12881. (*(*TXftColor)(unsafe.Pointer(bp))).Fcolor.Falpha = uint16(0xffff)
  12882. (*(*TXftColor)(unsafe.Pointer(bp))).Fcolor.Fred = uint16(0xffff)
  12883. (*(*TXftColor)(unsafe.Pointer(bp))).Fcolor.Fgreen = uint16(0xffff)
  12884. (*(*TXftColor)(unsafe.Pointer(bp))).Fcolor.Fblue = uint16(0xffff)
  12885. color = bp
  12886. }
  12887. /*
  12888. * See if there's one already available
  12889. */
  12890. i = 0
  12891. for {
  12892. if !(i < int32(m_XFT_NUM_SOLID_COLOR)) {
  12893. break
  12894. }
  12895. if (*(*TXftSolidColor)(unsafe.Pointer(info + 88 + uintptr(i)*24))).Fpict != 0 && (*(*TXftSolidColor)(unsafe.Pointer(info + 88 + uintptr(i)*24))).Fscreen == (*TXftDraw)(unsafe.Pointer(draw)).Fscreen && !(libc.Xmemcmp(tls, color+8, info+88+uintptr(i)*24, uint64(8)) != 0) {
  12896. return (*(*TXftSolidColor)(unsafe.Pointer(info + 88 + uintptr(i)*24))).Fpict
  12897. }
  12898. goto _1
  12899. _1:
  12900. ;
  12901. i++
  12902. }
  12903. /*
  12904. * Pick one to replace at random
  12905. */
  12906. i = int32(uint32(libc.Xrand(tls)) % uint32(m_XFT_NUM_SOLID_COLOR))
  12907. if (*TXftDisplayInfo)(unsafe.Pointer(info)).FhasSolid != 0 {
  12908. /*
  12909. * Free any existing entry
  12910. */
  12911. if (*(*TXftSolidColor)(unsafe.Pointer(info + 88 + uintptr(i)*24))).Fpict != 0 {
  12912. libxrender.XXRenderFreePicture(tls, dpy, (*(*TXftSolidColor)(unsafe.Pointer(info + 88 + uintptr(i)*24))).Fpict)
  12913. }
  12914. /*
  12915. * Create picture
  12916. */
  12917. (*(*TXftSolidColor)(unsafe.Pointer(info + 88 + uintptr(i)*24))).Fpict = libxrender.XXRenderCreateSolidFill(tls, (*TXftDraw)(unsafe.Pointer(draw)).Fdpy, color+8)
  12918. } else {
  12919. if (*(*TXftSolidColor)(unsafe.Pointer(info + 88 + uintptr(i)*24))).Fscreen != (*TXftDraw)(unsafe.Pointer(draw)).Fscreen && (*(*TXftSolidColor)(unsafe.Pointer(info + 88 + uintptr(i)*24))).Fpict != 0 {
  12920. libxrender.XXRenderFreePicture(tls, dpy, (*(*TXftSolidColor)(unsafe.Pointer(info + 88 + uintptr(i)*24))).Fpict)
  12921. (*(*TXftSolidColor)(unsafe.Pointer(info + 88 + uintptr(i)*24))).Fpict = uint64(0)
  12922. }
  12923. /*
  12924. * Create picture if necessary
  12925. */
  12926. if !((*(*TXftSolidColor)(unsafe.Pointer(info + 88 + uintptr(i)*24))).Fpict != 0) {
  12927. pix = libx11.XXCreatePixmap(tls, dpy, (*TScreen)(unsafe.Pointer((*struct {
  12928. Fext_data uintptr
  12929. Fprivate1 uintptr
  12930. Ffd int32
  12931. Fprivate2 int32
  12932. Fproto_major_version int32
  12933. Fproto_minor_version int32
  12934. Fvendor uintptr
  12935. Fprivate3 TXID
  12936. Fprivate4 TXID
  12937. Fprivate5 TXID
  12938. Fprivate6 int32
  12939. Fresource_alloc uintptr
  12940. Fbyte_order int32
  12941. Fbitmap_unit int32
  12942. Fbitmap_pad int32
  12943. Fbitmap_bit_order int32
  12944. Fnformats int32
  12945. Fpixmap_format uintptr
  12946. Fprivate8 int32
  12947. Frelease int32
  12948. Fprivate9 uintptr
  12949. Fprivate10 uintptr
  12950. Fqlen int32
  12951. Flast_request_read uint64
  12952. Frequest uint64
  12953. Fprivate11 TXPointer
  12954. Fprivate12 TXPointer
  12955. Fprivate13 TXPointer
  12956. Fprivate14 TXPointer
  12957. Fmax_request_size uint32
  12958. Fdb uintptr
  12959. Fprivate15 uintptr
  12960. Fdisplay_name uintptr
  12961. Fdefault_screen int32
  12962. Fnscreens int32
  12963. Fscreens uintptr
  12964. Fmotion_buffer uint64
  12965. Fprivate16 uint64
  12966. Fmin_keycode int32
  12967. Fmax_keycode int32
  12968. Fprivate17 TXPointer
  12969. Fprivate18 TXPointer
  12970. Fprivate19 int32
  12971. Fxdefaults uintptr
  12972. })(unsafe.Pointer(dpy)).Fscreens+uintptr((*TXftDraw)(unsafe.Pointer(draw)).Fscreen)*128)).Froot, uint32(1), uint32(1), uint32((*TXRenderPictFormat)(unsafe.Pointer((*TXftDisplayInfo)(unsafe.Pointer(info)).FsolidFormat)).Fdepth))
  12973. (*(*TXRenderPictureAttributes)(unsafe.Pointer(bp + 16))).Frepeat = int32(m_True)
  12974. (*(*TXftSolidColor)(unsafe.Pointer(info + 88 + uintptr(i)*24))).Fpict = libxrender.XXRenderCreatePicture(tls, (*TXftDraw)(unsafe.Pointer(draw)).Fdpy, pix, (*TXftDisplayInfo)(unsafe.Pointer(info)).FsolidFormat, uint64(libc.Int32FromInt32(1)<<libc.Int32FromInt32(0)), bp+16)
  12975. libx11.XXFreePixmap(tls, dpy, pix)
  12976. }
  12977. /*
  12978. * Set to the new color
  12979. */
  12980. (*(*TXftSolidColor)(unsafe.Pointer(info + 88 + uintptr(i)*24))).Fcolor = (*TXftColor)(unsafe.Pointer(color)).Fcolor
  12981. (*(*TXftSolidColor)(unsafe.Pointer(info + 88 + uintptr(i)*24))).Fscreen = (*TXftDraw)(unsafe.Pointer(draw)).Fscreen
  12982. libxrender.XXRenderFillRectangle(tls, dpy, int32(m_PictOpSrc), (*(*TXftSolidColor)(unsafe.Pointer(info + 88 + uintptr(i)*24))).Fpict, color+8, 0, 0, uint32(1), uint32(1))
  12983. }
  12984. (*(*TXftSolidColor)(unsafe.Pointer(info + 88 + uintptr(i)*24))).Fcolor = (*TXftColor)(unsafe.Pointer(color)).Fcolor
  12985. (*(*TXftSolidColor)(unsafe.Pointer(info + 88 + uintptr(i)*24))).Fscreen = (*TXftDraw)(unsafe.Pointer(draw)).Fscreen
  12986. return (*(*TXftSolidColor)(unsafe.Pointer(info + 88 + uintptr(i)*24))).Fpict
  12987. }
  12988. func __XftDrawOp(tls *libc.TLS, draw uintptr, color uintptr) (r int32) {
  12989. if (*TXftDraw)(unsafe.Pointer(draw)).Fvisual != 0 || (*TXftDraw)(unsafe.Pointer(draw)).Fdepth != uint32(1) {
  12990. return int32(m_PictOpOver)
  12991. }
  12992. if int32((*TXftColor)(unsafe.Pointer(color)).Fcolor.Falpha) >= int32(0x8000) {
  12993. return int32(m_PictOpOver)
  12994. }
  12995. return int32(m_PictOpOutReverse)
  12996. }
  12997. func __XftDrawRenderPrepare(tls *libc.TLS, draw uintptr) (r TFcBool) {
  12998. bp := tls.Alloc(80)
  12999. defer tls.Free(80)
  13000. var format uintptr
  13001. var mask uint64
  13002. var _ /* pa at bp+0 */ TXRenderPictureAttributes
  13003. _, _ = format, mask
  13004. if !((*TXftDraw)(unsafe.Pointer(draw)).Frender.Fpict != 0) {
  13005. mask = uint64(0)
  13006. format = __XftDrawFormat(tls, draw)
  13007. if !(format != 0) {
  13008. return m_FcFalse
  13009. }
  13010. if (*TXftDraw)(unsafe.Pointer(draw)).Fsubwindow_mode == int32(m_IncludeInferiors) {
  13011. (*(*TXRenderPictureAttributes)(unsafe.Pointer(bp))).Fsubwindow_mode = int32(m_IncludeInferiors)
  13012. mask |= uint64(libc.Int32FromInt32(1) << libc.Int32FromInt32(8))
  13013. }
  13014. (*TXftDraw)(unsafe.Pointer(draw)).Frender.Fpict = libxrender.XXRenderCreatePicture(tls, (*TXftDraw)(unsafe.Pointer(draw)).Fdpy, (*TXftDraw)(unsafe.Pointer(draw)).Fdrawable, format, mask, bp)
  13015. if !((*TXftDraw)(unsafe.Pointer(draw)).Frender.Fpict != 0) {
  13016. return m_FcFalse
  13017. }
  13018. switch (*TXftDraw)(unsafe.Pointer(draw)).Fclip_type {
  13019. case int32(_XftClipTypeRegion):
  13020. libxrender.XXRenderSetPictureClipRegion(tls, (*TXftDraw)(unsafe.Pointer(draw)).Fdpy, (*TXftDraw)(unsafe.Pointer(draw)).Frender.Fpict, *(*TRegion)(unsafe.Pointer(draw + 56)))
  13021. case int32(_XftClipTypeRectangles):
  13022. libxrender.XXRenderSetPictureClipRectangles(tls, (*TXftDraw)(unsafe.Pointer(draw)).Fdpy, (*TXftDraw)(unsafe.Pointer(draw)).Frender.Fpict, (*TXftClipRect)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(draw + 56)))).FxOrigin, (*TXftClipRect)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(draw + 56)))).FyOrigin, *(*uintptr)(unsafe.Pointer(draw + 56))+libc.UintptrFromInt32(1)*12, (*TXftClipRect)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(draw + 56)))).Fn)
  13023. case int32(_XftClipTypeNone):
  13024. break
  13025. }
  13026. }
  13027. return int32(m_FcTrue)
  13028. }
  13029. func __XftDrawCorePrepare(tls *libc.TLS, draw uintptr, color uintptr) (r TFcBool) {
  13030. bp := tls.Alloc(128)
  13031. defer tls.Free(128)
  13032. var mask uint64
  13033. var _ /* gcv at bp+0 */ TXGCValues
  13034. _ = mask
  13035. if !((*TXftDraw)(unsafe.Pointer(draw)).Fcore.Fgc != 0) {
  13036. mask = uint64(0)
  13037. if (*TXftDraw)(unsafe.Pointer(draw)).Fsubwindow_mode == int32(m_IncludeInferiors) {
  13038. (*(*TXGCValues)(unsafe.Pointer(bp))).Fsubwindow_mode = int32(m_IncludeInferiors)
  13039. mask |= uint64(libc.Int64FromInt64(1) << libc.Int32FromInt32(15))
  13040. }
  13041. (*TXftDraw)(unsafe.Pointer(draw)).Fcore.Fgc = libx11.XXCreateGC(tls, (*TXftDraw)(unsafe.Pointer(draw)).Fdpy, (*TXftDraw)(unsafe.Pointer(draw)).Fdrawable, mask, bp)
  13042. if !((*TXftDraw)(unsafe.Pointer(draw)).Fcore.Fgc != 0) {
  13043. return m_FcFalse
  13044. }
  13045. switch (*TXftDraw)(unsafe.Pointer(draw)).Fclip_type {
  13046. case int32(_XftClipTypeRegion):
  13047. libx11.XXSetRegion(tls, (*TXftDraw)(unsafe.Pointer(draw)).Fdpy, (*TXftDraw)(unsafe.Pointer(draw)).Fcore.Fgc, *(*TRegion)(unsafe.Pointer(draw + 56)))
  13048. case int32(_XftClipTypeRectangles):
  13049. libx11.XXSetClipRectangles(tls, (*TXftDraw)(unsafe.Pointer(draw)).Fdpy, (*TXftDraw)(unsafe.Pointer(draw)).Fcore.Fgc, (*TXftClipRect)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(draw + 56)))).FxOrigin, (*TXftClipRect)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(draw + 56)))).FyOrigin, *(*uintptr)(unsafe.Pointer(draw + 56))+libc.UintptrFromInt32(1)*12, (*TXftClipRect)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(draw + 56)))).Fn, m_Unsorted)
  13050. case int32(_XftClipTypeNone):
  13051. break
  13052. }
  13053. }
  13054. libx11.XXSetForeground(tls, (*TXftDraw)(unsafe.Pointer(draw)).Fdpy, (*TXftDraw)(unsafe.Pointer(draw)).Fcore.Fgc, (*TXftColor)(unsafe.Pointer(color)).Fpixel)
  13055. return int32(m_FcTrue)
  13056. }
  13057. func XXftDrawPicture(tls *libc.TLS, draw uintptr) (r TPicture) {
  13058. if !(__XftDrawRenderPrepare(tls, draw) != 0) {
  13059. return uint64(0)
  13060. }
  13061. return (*TXftDraw)(unsafe.Pointer(draw)).Frender.Fpict
  13062. }
  13063. func XXftDrawGlyphs(tls *libc.TLS, draw uintptr, color uintptr, pub uintptr, x int32, y int32, glyphs uintptr, nglyphs int32) {
  13064. var font uintptr
  13065. var src, v1 TPicture
  13066. var v2 bool
  13067. _, _, _, _ = font, src, v1, v2
  13068. font = pub
  13069. if (*TXftFontInt)(unsafe.Pointer(font)).Fformat != 0 {
  13070. if v2 = __XftDrawRenderPrepare(tls, draw) != 0; v2 {
  13071. v1 = XXftDrawSrcPicture(tls, draw, color)
  13072. src = v1
  13073. }
  13074. if v2 && v1 != 0 {
  13075. XXftGlyphRender(tls, (*TXftDraw)(unsafe.Pointer(draw)).Fdpy, __XftDrawOp(tls, draw, color), src, pub, (*TXftDraw)(unsafe.Pointer(draw)).Frender.Fpict, 0, 0, x, y, glyphs, nglyphs)
  13076. }
  13077. } else {
  13078. if __XftDrawCorePrepare(tls, draw, color) != 0 {
  13079. XXftGlyphCore(tls, draw, color, pub, x, y, glyphs, nglyphs)
  13080. }
  13081. }
  13082. }
  13083. func XXftDrawString8(tls *libc.TLS, draw uintptr, color uintptr, pub uintptr, x int32, y int32, string1 uintptr, len1 int32) {
  13084. bp := tls.Alloc(4128)
  13085. defer tls.Free(4128)
  13086. var glyphs uintptr
  13087. var i int32
  13088. var _ /* glyphs_local at bp+0 */ [1024]TFT_UInt
  13089. _, _ = glyphs, i
  13090. if XXftDebug(tls)&int32(m_XFT_DBG_DRAW) != 0 {
  13091. libc.Xprintf(tls, __ccgo_ts+669, libc.VaList(bp+4104, len1, len1, string1))
  13092. }
  13093. if len1 <= int32(m_NUM_LOCAL) {
  13094. glyphs = bp
  13095. } else {
  13096. glyphs = libc.Xmalloc(tls, uint64(len1)*uint64(4))
  13097. if !(glyphs != 0) {
  13098. return
  13099. }
  13100. }
  13101. i = 0
  13102. for {
  13103. if !(i < len1) {
  13104. break
  13105. }
  13106. *(*TFT_UInt)(unsafe.Pointer(glyphs + uintptr(i)*4)) = XXftCharIndex(tls, (*TXftDraw)(unsafe.Pointer(draw)).Fdpy, pub, uint32(*(*TFcChar8)(unsafe.Pointer(string1 + uintptr(i)))))
  13107. goto _1
  13108. _1:
  13109. ;
  13110. i++
  13111. }
  13112. XXftDrawGlyphs(tls, draw, color, pub, x, y, glyphs, len1)
  13113. if glyphs != bp {
  13114. libc.Xfree(tls, glyphs)
  13115. }
  13116. }
  13117. func XXftDrawString16(tls *libc.TLS, draw uintptr, color uintptr, pub uintptr, x int32, y int32, string1 uintptr, len1 int32) {
  13118. bp := tls.Alloc(4096)
  13119. defer tls.Free(4096)
  13120. var glyphs uintptr
  13121. var i int32
  13122. var _ /* glyphs_local at bp+0 */ [1024]TFT_UInt
  13123. _, _ = glyphs, i
  13124. if len1 <= 0 {
  13125. return
  13126. }
  13127. if len1 <= int32(m_NUM_LOCAL) {
  13128. glyphs = bp
  13129. } else {
  13130. glyphs = libc.Xmalloc(tls, uint64(len1)*uint64(4))
  13131. if !(glyphs != 0) {
  13132. return
  13133. }
  13134. }
  13135. i = 0
  13136. for {
  13137. if !(i < len1) {
  13138. break
  13139. }
  13140. *(*TFT_UInt)(unsafe.Pointer(glyphs + uintptr(i)*4)) = XXftCharIndex(tls, (*TXftDraw)(unsafe.Pointer(draw)).Fdpy, pub, uint32(*(*TFcChar16)(unsafe.Pointer(string1 + uintptr(i)*2))))
  13141. goto _1
  13142. _1:
  13143. ;
  13144. i++
  13145. }
  13146. XXftDrawGlyphs(tls, draw, color, pub, x, y, glyphs, len1)
  13147. if glyphs != bp {
  13148. libc.Xfree(tls, glyphs)
  13149. }
  13150. }
  13151. func XXftDrawString32(tls *libc.TLS, draw uintptr, color uintptr, pub uintptr, x int32, y int32, string1 uintptr, len1 int32) {
  13152. bp := tls.Alloc(4096)
  13153. defer tls.Free(4096)
  13154. var glyphs uintptr
  13155. var i int32
  13156. var _ /* glyphs_local at bp+0 */ [1024]TFT_UInt
  13157. _, _ = glyphs, i
  13158. if len1 <= 0 {
  13159. return
  13160. }
  13161. if len1 <= int32(m_NUM_LOCAL) {
  13162. glyphs = bp
  13163. } else {
  13164. glyphs = libc.Xmalloc(tls, uint64(len1)*uint64(4))
  13165. if !(glyphs != 0) {
  13166. return
  13167. }
  13168. }
  13169. i = 0
  13170. for {
  13171. if !(i < len1) {
  13172. break
  13173. }
  13174. *(*TFT_UInt)(unsafe.Pointer(glyphs + uintptr(i)*4)) = XXftCharIndex(tls, (*TXftDraw)(unsafe.Pointer(draw)).Fdpy, pub, *(*TFcChar32)(unsafe.Pointer(string1 + uintptr(i)*4)))
  13175. goto _1
  13176. _1:
  13177. ;
  13178. i++
  13179. }
  13180. XXftDrawGlyphs(tls, draw, color, pub, x, y, glyphs, len1)
  13181. if glyphs != bp {
  13182. libc.Xfree(tls, glyphs)
  13183. }
  13184. }
  13185. func XXftDrawStringUtf8(tls *libc.TLS, draw uintptr, color uintptr, pub uintptr, x int32, y int32, string1 uintptr, len1 int32) {
  13186. bp := tls.Alloc(4112)
  13187. defer tls.Free(4112)
  13188. var glyphs, glyphs_new uintptr
  13189. var i, l, size, v1, v3 int32
  13190. var v2 bool
  13191. var _ /* glyphs_local at bp+0 */ [1024]TFT_UInt
  13192. var _ /* ucs4 at bp+4096 */ TFcChar32
  13193. _, _, _, _, _, _, _, _ = glyphs, glyphs_new, i, l, size, v1, v2, v3
  13194. if len1 <= 0 {
  13195. return
  13196. }
  13197. i = 0
  13198. glyphs = bp
  13199. size = int32(m_NUM_LOCAL)
  13200. for {
  13201. if v2 = len1 != 0; v2 {
  13202. v1 = libfontconfig.XFcUtf8ToUcs4(tls, string1, bp+4096, len1)
  13203. l = v1
  13204. }
  13205. if !(v2 && v1 > 0) {
  13206. break
  13207. }
  13208. if i == size {
  13209. glyphs_new = libc.Xmalloc(tls, uint64(size*libc.Int32FromInt32(2))*uint64(4))
  13210. if !(glyphs_new != 0) {
  13211. if glyphs != bp {
  13212. libc.Xfree(tls, glyphs)
  13213. }
  13214. return
  13215. }
  13216. libc.X__builtin___memcpy_chk(tls, glyphs_new, glyphs, uint64(size)*uint64(4), uint64(libc.X__builtin_object_size(tls, glyphs_new, 0)))
  13217. size *= int32(2)
  13218. if glyphs != bp {
  13219. libc.Xfree(tls, glyphs)
  13220. }
  13221. glyphs = glyphs_new
  13222. }
  13223. v3 = i
  13224. i++
  13225. *(*TFT_UInt)(unsafe.Pointer(glyphs + uintptr(v3)*4)) = XXftCharIndex(tls, (*TXftDraw)(unsafe.Pointer(draw)).Fdpy, pub, *(*TFcChar32)(unsafe.Pointer(bp + 4096)))
  13226. string1 += uintptr(l)
  13227. len1 -= l
  13228. }
  13229. XXftDrawGlyphs(tls, draw, color, pub, x, y, glyphs, i)
  13230. if glyphs != bp {
  13231. libc.Xfree(tls, glyphs)
  13232. }
  13233. }
  13234. func XXftDrawStringUtf16(tls *libc.TLS, draw uintptr, color uintptr, pub uintptr, x int32, y int32, string1 uintptr, endian TFcEndian, len1 int32) {
  13235. bp := tls.Alloc(4112)
  13236. defer tls.Free(4112)
  13237. var glyphs, glyphs_new uintptr
  13238. var i, l, size, v1, v3 int32
  13239. var v2 bool
  13240. var _ /* glyphs_local at bp+0 */ [1024]TFT_UInt
  13241. var _ /* ucs4 at bp+4096 */ TFcChar32
  13242. _, _, _, _, _, _, _, _ = glyphs, glyphs_new, i, l, size, v1, v2, v3
  13243. if len1 <= 0 {
  13244. return
  13245. }
  13246. i = 0
  13247. glyphs = bp
  13248. size = int32(m_NUM_LOCAL)
  13249. for {
  13250. if v2 = len1 != 0; v2 {
  13251. v1 = libfontconfig.XFcUtf16ToUcs4(tls, string1, endian, bp+4096, len1)
  13252. l = v1
  13253. }
  13254. if !(v2 && v1 > 0) {
  13255. break
  13256. }
  13257. if i == size {
  13258. glyphs_new = libc.Xmalloc(tls, uint64(size*libc.Int32FromInt32(2))*uint64(4))
  13259. if !(glyphs_new != 0) {
  13260. if glyphs != bp {
  13261. libc.Xfree(tls, glyphs)
  13262. }
  13263. return
  13264. }
  13265. libc.X__builtin___memcpy_chk(tls, glyphs_new, glyphs, uint64(size)*uint64(4), uint64(libc.X__builtin_object_size(tls, glyphs_new, 0)))
  13266. size *= int32(2)
  13267. if glyphs != bp {
  13268. libc.Xfree(tls, glyphs)
  13269. }
  13270. glyphs = glyphs_new
  13271. }
  13272. v3 = i
  13273. i++
  13274. *(*TFT_UInt)(unsafe.Pointer(glyphs + uintptr(v3)*4)) = XXftCharIndex(tls, (*TXftDraw)(unsafe.Pointer(draw)).Fdpy, pub, *(*TFcChar32)(unsafe.Pointer(bp + 4096)))
  13275. string1 += uintptr(l)
  13276. len1 -= l
  13277. }
  13278. XXftDrawGlyphs(tls, draw, color, pub, x, y, glyphs, i)
  13279. if glyphs != bp {
  13280. libc.Xfree(tls, glyphs)
  13281. }
  13282. }
  13283. func XXftDrawGlyphSpec(tls *libc.TLS, draw uintptr, color uintptr, pub uintptr, glyphs uintptr, len1 int32) {
  13284. var font uintptr
  13285. var src, v1 TPicture
  13286. var v2 bool
  13287. _, _, _, _ = font, src, v1, v2
  13288. font = pub
  13289. if (*TXftFontInt)(unsafe.Pointer(font)).Fformat != 0 {
  13290. if v2 = __XftDrawRenderPrepare(tls, draw) != 0; v2 {
  13291. v1 = XXftDrawSrcPicture(tls, draw, color)
  13292. src = v1
  13293. }
  13294. if v2 && v1 != 0 {
  13295. XXftGlyphSpecRender(tls, (*TXftDraw)(unsafe.Pointer(draw)).Fdpy, __XftDrawOp(tls, draw, color), src, pub, (*TXftDraw)(unsafe.Pointer(draw)).Frender.Fpict, 0, 0, glyphs, len1)
  13296. }
  13297. } else {
  13298. if __XftDrawCorePrepare(tls, draw, color) != 0 {
  13299. XXftGlyphSpecCore(tls, draw, color, pub, glyphs, len1)
  13300. }
  13301. }
  13302. }
  13303. func XXftDrawGlyphFontSpec(tls *libc.TLS, draw uintptr, color uintptr, glyphs uintptr, len1 int32) {
  13304. var i, start int32
  13305. var src, v1 TPicture
  13306. var v2 bool
  13307. _, _, _, _, _ = i, src, start, v1, v2
  13308. i = 0
  13309. for i < len1 {
  13310. start = i
  13311. if (*TXftFontInt)(unsafe.Pointer((*(*TXftGlyphFontSpec)(unsafe.Pointer(glyphs + uintptr(i)*16))).Ffont)).Fformat != 0 {
  13312. for i < len1 && (*TXftFontInt)(unsafe.Pointer((*(*TXftGlyphFontSpec)(unsafe.Pointer(glyphs + uintptr(i)*16))).Ffont)).Fformat != 0 {
  13313. i++
  13314. }
  13315. if v2 = __XftDrawRenderPrepare(tls, draw) != 0; v2 {
  13316. v1 = XXftDrawSrcPicture(tls, draw, color)
  13317. src = v1
  13318. }
  13319. if v2 && v1 != 0 {
  13320. XXftGlyphFontSpecRender(tls, (*TXftDraw)(unsafe.Pointer(draw)).Fdpy, __XftDrawOp(tls, draw, color), src, (*TXftDraw)(unsafe.Pointer(draw)).Frender.Fpict, 0, 0, glyphs+uintptr(start)*16, i-start)
  13321. }
  13322. } else {
  13323. for i < len1 && !((*TXftFontInt)(unsafe.Pointer((*(*TXftGlyphFontSpec)(unsafe.Pointer(glyphs + uintptr(i)*16))).Ffont)).Fformat != 0) {
  13324. i++
  13325. }
  13326. if __XftDrawCorePrepare(tls, draw, color) != 0 {
  13327. XXftGlyphFontSpecCore(tls, draw, color, glyphs+uintptr(start)*16, i-start)
  13328. }
  13329. }
  13330. }
  13331. }
  13332. func XXftDrawCharSpec(tls *libc.TLS, draw uintptr, color uintptr, pub uintptr, chars uintptr, len1 int32) {
  13333. bp := tls.Alloc(8192)
  13334. defer tls.Free(8192)
  13335. var glyphs uintptr
  13336. var i int32
  13337. var _ /* glyphs_local at bp+0 */ [1024]TXftGlyphSpec
  13338. _, _ = glyphs, i
  13339. if len1 <= 0 {
  13340. return
  13341. }
  13342. if len1 <= int32(m_NUM_LOCAL) {
  13343. glyphs = bp
  13344. } else {
  13345. glyphs = libc.Xmalloc(tls, uint64(len1)*uint64(8))
  13346. if !(glyphs != 0) {
  13347. return
  13348. }
  13349. }
  13350. i = 0
  13351. for {
  13352. if !(i < len1) {
  13353. break
  13354. }
  13355. (*(*TXftGlyphSpec)(unsafe.Pointer(glyphs + uintptr(i)*8))).Fglyph = XXftCharIndex(tls, (*TXftDraw)(unsafe.Pointer(draw)).Fdpy, pub, (*(*TXftCharSpec)(unsafe.Pointer(chars + uintptr(i)*8))).Fucs4)
  13356. (*(*TXftGlyphSpec)(unsafe.Pointer(glyphs + uintptr(i)*8))).Fx = (*(*TXftCharSpec)(unsafe.Pointer(chars + uintptr(i)*8))).Fx
  13357. (*(*TXftGlyphSpec)(unsafe.Pointer(glyphs + uintptr(i)*8))).Fy = (*(*TXftCharSpec)(unsafe.Pointer(chars + uintptr(i)*8))).Fy
  13358. goto _1
  13359. _1:
  13360. ;
  13361. i++
  13362. }
  13363. XXftDrawGlyphSpec(tls, draw, color, pub, glyphs, len1)
  13364. if glyphs != bp {
  13365. libc.Xfree(tls, glyphs)
  13366. }
  13367. }
  13368. func XXftDrawCharFontSpec(tls *libc.TLS, draw uintptr, color uintptr, chars uintptr, len1 int32) {
  13369. bp := tls.Alloc(16384)
  13370. defer tls.Free(16384)
  13371. var glyphs uintptr
  13372. var i int32
  13373. var _ /* glyphs_local at bp+0 */ [1024]TXftGlyphFontSpec
  13374. _, _ = glyphs, i
  13375. if len1 <= 0 {
  13376. return
  13377. }
  13378. if len1 <= int32(m_NUM_LOCAL) {
  13379. glyphs = bp
  13380. } else {
  13381. glyphs = libc.Xmalloc(tls, uint64(len1)*uint64(16))
  13382. if !(glyphs != 0) {
  13383. return
  13384. }
  13385. }
  13386. i = 0
  13387. for {
  13388. if !(i < len1) {
  13389. break
  13390. }
  13391. (*(*TXftGlyphFontSpec)(unsafe.Pointer(glyphs + uintptr(i)*16))).Ffont = (*(*TXftCharFontSpec)(unsafe.Pointer(chars + uintptr(i)*16))).Ffont
  13392. (*(*TXftGlyphFontSpec)(unsafe.Pointer(glyphs + uintptr(i)*16))).Fglyph = XXftCharIndex(tls, (*TXftDraw)(unsafe.Pointer(draw)).Fdpy, (*(*TXftGlyphFontSpec)(unsafe.Pointer(glyphs + uintptr(i)*16))).Ffont, (*(*TXftCharFontSpec)(unsafe.Pointer(chars + uintptr(i)*16))).Fucs4)
  13393. (*(*TXftGlyphFontSpec)(unsafe.Pointer(glyphs + uintptr(i)*16))).Fx = (*(*TXftCharFontSpec)(unsafe.Pointer(chars + uintptr(i)*16))).Fx
  13394. (*(*TXftGlyphFontSpec)(unsafe.Pointer(glyphs + uintptr(i)*16))).Fy = (*(*TXftCharFontSpec)(unsafe.Pointer(chars + uintptr(i)*16))).Fy
  13395. goto _1
  13396. _1:
  13397. ;
  13398. i++
  13399. }
  13400. XXftDrawGlyphFontSpec(tls, draw, color, glyphs, len1)
  13401. if glyphs != bp {
  13402. libc.Xfree(tls, glyphs)
  13403. }
  13404. }
  13405. func XXftDrawRect(tls *libc.TLS, draw uintptr, color uintptr, x int32, y int32, width uint32, height uint32) {
  13406. if __XftDrawRenderPrepare(tls, draw) != 0 {
  13407. libxrender.XXRenderFillRectangle(tls, (*TXftDraw)(unsafe.Pointer(draw)).Fdpy, int32(m_PictOpSrc), (*TXftDraw)(unsafe.Pointer(draw)).Frender.Fpict, color+8, x, y, width, height)
  13408. } else {
  13409. if __XftDrawCorePrepare(tls, draw, color) != 0 {
  13410. /* note: not XftRectCore() */
  13411. libx11.XXSetForeground(tls, (*TXftDraw)(unsafe.Pointer(draw)).Fdpy, (*TXftDraw)(unsafe.Pointer(draw)).Fcore.Fgc, (*TXftColor)(unsafe.Pointer(color)).Fpixel)
  13412. libx11.XXFillRectangle(tls, (*TXftDraw)(unsafe.Pointer(draw)).Fdpy, (*TXftDraw)(unsafe.Pointer(draw)).Fdrawable, (*TXftDraw)(unsafe.Pointer(draw)).Fcore.Fgc, x, y, width, height)
  13413. }
  13414. }
  13415. }
  13416. func XXftDrawSetClip(tls *libc.TLS, draw uintptr, r TRegion) (r1 int32) {
  13417. bp := tls.Alloc(80)
  13418. defer tls.Free(80)
  13419. var n TRegion
  13420. var _ /* pa at bp+0 */ TXRenderPictureAttributes
  13421. _ = n
  13422. n = libc.UintptrFromInt32(0)
  13423. /*
  13424. * Check for quick exits
  13425. */
  13426. if !(r != 0) && (*TXftDraw)(unsafe.Pointer(draw)).Fclip_type == int32(_XftClipTypeNone) {
  13427. return int32(m_True)
  13428. }
  13429. if r != 0 && (*TXftDraw)(unsafe.Pointer(draw)).Fclip_type == int32(_XftClipTypeRegion) && libx11.XXEqualRegion(tls, r, *(*TRegion)(unsafe.Pointer(draw + 56))) != 0 {
  13430. return int32(m_True)
  13431. }
  13432. /*
  13433. * Duplicate the region so future changes can be short circuited
  13434. */
  13435. if r != 0 {
  13436. n = libx11.XXCreateRegion(tls)
  13437. if n != 0 {
  13438. if !(libx11.XXUnionRegion(tls, n, r, n) != 0) {
  13439. libx11.XXDestroyRegion(tls, n)
  13440. return m_False
  13441. }
  13442. }
  13443. }
  13444. /*
  13445. * Destroy existing clip
  13446. */
  13447. switch (*TXftDraw)(unsafe.Pointer(draw)).Fclip_type {
  13448. case int32(_XftClipTypeRegion):
  13449. libx11.XXDestroyRegion(tls, *(*TRegion)(unsafe.Pointer(draw + 56)))
  13450. case int32(_XftClipTypeRectangles):
  13451. libc.Xfree(tls, *(*uintptr)(unsafe.Pointer(draw + 56)))
  13452. case int32(_XftClipTypeNone):
  13453. break
  13454. }
  13455. /*
  13456. * Set the clip
  13457. */
  13458. if n != 0 {
  13459. (*TXftDraw)(unsafe.Pointer(draw)).Fclip_type = int32(_XftClipTypeRegion)
  13460. *(*TRegion)(unsafe.Pointer(draw + 56)) = n
  13461. } else {
  13462. (*TXftDraw)(unsafe.Pointer(draw)).Fclip_type = int32(_XftClipTypeNone)
  13463. }
  13464. /*
  13465. * Apply new clip to existing objects
  13466. */
  13467. if (*TXftDraw)(unsafe.Pointer(draw)).Frender.Fpict != 0 {
  13468. if n != 0 {
  13469. libxrender.XXRenderSetPictureClipRegion(tls, (*TXftDraw)(unsafe.Pointer(draw)).Fdpy, (*TXftDraw)(unsafe.Pointer(draw)).Frender.Fpict, n)
  13470. } else {
  13471. (*(*TXRenderPictureAttributes)(unsafe.Pointer(bp))).Fclip_mask = uint64(0)
  13472. libxrender.XXRenderChangePicture(tls, (*TXftDraw)(unsafe.Pointer(draw)).Fdpy, (*TXftDraw)(unsafe.Pointer(draw)).Frender.Fpict, uint64(libc.Int32FromInt32(1)<<libc.Int32FromInt32(6)), bp)
  13473. }
  13474. }
  13475. if (*TXftDraw)(unsafe.Pointer(draw)).Fcore.Fgc != 0 {
  13476. if n != 0 {
  13477. libx11.XXSetRegion(tls, (*TXftDraw)(unsafe.Pointer(draw)).Fdpy, (*TXftDraw)(unsafe.Pointer(draw)).Fcore.Fgc, *(*TRegion)(unsafe.Pointer(draw + 56)))
  13478. } else {
  13479. libx11.XXSetClipMask(tls, (*TXftDraw)(unsafe.Pointer(draw)).Fdpy, (*TXftDraw)(unsafe.Pointer(draw)).Fcore.Fgc, uint64(0))
  13480. }
  13481. }
  13482. return int32(m_True)
  13483. }
  13484. func XXftDrawSetClipRectangles(tls *libc.TLS, draw uintptr, xOrigin int32, yOrigin int32, rects uintptr, n int32) (r int32) {
  13485. var new1 uintptr
  13486. _ = new1
  13487. new1 = libc.UintptrFromInt32(0)
  13488. /*
  13489. * Check for quick exit
  13490. */
  13491. if (*TXftDraw)(unsafe.Pointer(draw)).Fclip_type == int32(_XftClipTypeRectangles) && (*TXftClipRect)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(draw + 56)))).Fn == n && (n == 0 || (*TXftClipRect)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(draw + 56)))).FxOrigin == xOrigin && (*TXftClipRect)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(draw + 56)))).FyOrigin == yOrigin) && !(libc.Xmemcmp(tls, *(*uintptr)(unsafe.Pointer(draw + 56))+libc.UintptrFromInt32(1)*12, rects, uint64(n)*uint64(8)) != 0) {
  13492. return int32(m_True)
  13493. }
  13494. /*
  13495. * Duplicate the region so future changes can be short circuited
  13496. */
  13497. new1 = libc.Xmalloc(tls, uint64(12)+uint64(n)*uint64(8))
  13498. if !(new1 != 0) {
  13499. return m_False
  13500. }
  13501. (*TXftClipRect)(unsafe.Pointer(new1)).Fn = n
  13502. (*TXftClipRect)(unsafe.Pointer(new1)).FxOrigin = xOrigin
  13503. (*TXftClipRect)(unsafe.Pointer(new1)).FyOrigin = yOrigin
  13504. libc.X__builtin___memcpy_chk(tls, new1+libc.UintptrFromInt32(1)*12, rects, uint64(n)*uint64(8), uint64(libc.X__builtin_object_size(tls, new1+libc.UintptrFromInt32(1)*12, 0)))
  13505. /*
  13506. * Destroy existing clip
  13507. */
  13508. switch (*TXftDraw)(unsafe.Pointer(draw)).Fclip_type {
  13509. case int32(_XftClipTypeRegion):
  13510. libx11.XXDestroyRegion(tls, *(*TRegion)(unsafe.Pointer(draw + 56)))
  13511. case int32(_XftClipTypeRectangles):
  13512. libc.Xfree(tls, *(*uintptr)(unsafe.Pointer(draw + 56)))
  13513. case int32(_XftClipTypeNone):
  13514. break
  13515. }
  13516. /*
  13517. * Set the clip
  13518. */
  13519. (*TXftDraw)(unsafe.Pointer(draw)).Fclip_type = int32(_XftClipTypeRectangles)
  13520. *(*uintptr)(unsafe.Pointer(draw + 56)) = new1
  13521. /*
  13522. * Apply new clip to existing objects
  13523. */
  13524. if (*TXftDraw)(unsafe.Pointer(draw)).Frender.Fpict != 0 {
  13525. libxrender.XXRenderSetPictureClipRectangles(tls, (*TXftDraw)(unsafe.Pointer(draw)).Fdpy, (*TXftDraw)(unsafe.Pointer(draw)).Frender.Fpict, (*TXftClipRect)(unsafe.Pointer(new1)).FxOrigin, (*TXftClipRect)(unsafe.Pointer(new1)).FyOrigin, new1+libc.UintptrFromInt32(1)*12, (*TXftClipRect)(unsafe.Pointer(new1)).Fn)
  13526. }
  13527. if (*TXftDraw)(unsafe.Pointer(draw)).Fcore.Fgc != 0 {
  13528. libx11.XXSetClipRectangles(tls, (*TXftDraw)(unsafe.Pointer(draw)).Fdpy, (*TXftDraw)(unsafe.Pointer(draw)).Fcore.Fgc, (*TXftClipRect)(unsafe.Pointer(new1)).FxOrigin, (*TXftClipRect)(unsafe.Pointer(new1)).FyOrigin, new1+libc.UintptrFromInt32(1)*12, (*TXftClipRect)(unsafe.Pointer(new1)).Fn, m_Unsorted)
  13529. }
  13530. return int32(m_True)
  13531. }
  13532. func XXftDrawSetSubwindowMode(tls *libc.TLS, draw uintptr, mode int32) {
  13533. bp := tls.Alloc(80)
  13534. defer tls.Free(80)
  13535. var _ /* pa at bp+0 */ TXRenderPictureAttributes
  13536. if mode == (*TXftDraw)(unsafe.Pointer(draw)).Fsubwindow_mode {
  13537. return
  13538. }
  13539. (*TXftDraw)(unsafe.Pointer(draw)).Fsubwindow_mode = mode
  13540. if (*TXftDraw)(unsafe.Pointer(draw)).Frender.Fpict != 0 {
  13541. (*(*TXRenderPictureAttributes)(unsafe.Pointer(bp))).Fsubwindow_mode = mode
  13542. libxrender.XXRenderChangePicture(tls, (*TXftDraw)(unsafe.Pointer(draw)).Fdpy, (*TXftDraw)(unsafe.Pointer(draw)).Frender.Fpict, uint64(libc.Int32FromInt32(1)<<libc.Int32FromInt32(8)), bp)
  13543. }
  13544. if (*TXftDraw)(unsafe.Pointer(draw)).Fcore.Fgc != 0 {
  13545. libx11.XXSetSubwindowMode(tls, (*TXftDraw)(unsafe.Pointer(draw)).Fdpy, (*TXftDraw)(unsafe.Pointer(draw)).Fcore.Fgc, mode)
  13546. }
  13547. }
  13548. const m_VisualIDMask2 = 0x1
  13549. const m_VisualScreenMask2 = 0x2
  13550. /* xftxlfd.c */
  13551. func XXftGlyphExtents(tls *libc.TLS, dpy uintptr, pub uintptr, glyphs uintptr, nglyphs int32, extents uintptr) {
  13552. bp := tls.Alloc(1040)
  13553. defer tls.Free(1040)
  13554. var bottom, left, n, overall_bottom, overall_left, overall_right, overall_top, right, top, x, y, v1, v6 int32
  13555. var font, g, xftg, v2, v3, v4, v7, v8 uintptr
  13556. var glyph TFT_UInt
  13557. var glyphs_loaded TFcBool
  13558. var v5, v9 bool
  13559. var _ /* missing at bp+0 */ [256]TFT_UInt
  13560. var _ /* nmissing at bp+1024 */ int32
  13561. _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = bottom, font, g, glyph, glyphs_loaded, left, n, overall_bottom, overall_left, overall_right, overall_top, right, top, x, xftg, y, v1, v2, v3, v4, v5, v6, v7, v8, v9
  13562. font = pub
  13563. g = glyphs
  13564. n = nglyphs
  13565. *(*int32)(unsafe.Pointer(bp + 1024)) = 0
  13566. glyphs_loaded = m_FcFalse
  13567. for {
  13568. v1 = n
  13569. n--
  13570. if !(v1 != 0) {
  13571. break
  13572. }
  13573. v2 = g
  13574. g += 4
  13575. if XXftFontCheckGlyph(tls, dpy, pub, m_FcFalse, *(*TFT_UInt)(unsafe.Pointer(v2)), bp, bp+1024) != 0 {
  13576. glyphs_loaded = int32(m_FcTrue)
  13577. }
  13578. }
  13579. if *(*int32)(unsafe.Pointer(bp + 1024)) != 0 {
  13580. XXftFontLoadGlyphs(tls, dpy, pub, m_FcFalse, bp, *(*int32)(unsafe.Pointer(bp + 1024)))
  13581. }
  13582. g = glyphs
  13583. n = nglyphs
  13584. xftg = libc.UintptrFromInt32(0)
  13585. for n != 0 {
  13586. v3 = g
  13587. g += 4
  13588. glyph = *(*TFT_UInt)(unsafe.Pointer(v3))
  13589. n--
  13590. if v5 = glyph < (*TXftFontInt)(unsafe.Pointer(font)).Fnum_glyphs; v5 {
  13591. v4 = *(*uintptr)(unsafe.Pointer((*TXftFontInt)(unsafe.Pointer(font)).Fglyphs + uintptr(glyph)*8))
  13592. xftg = v4
  13593. }
  13594. if v5 && v4 != 0 {
  13595. break
  13596. }
  13597. }
  13598. if n == 0 {
  13599. if xftg != 0 {
  13600. *(*TXGlyphInfo)(unsafe.Pointer(extents)) = (*TXftGlyph)(unsafe.Pointer(xftg)).Fmetrics
  13601. } else {
  13602. libc.X__builtin___memset_chk(tls, extents, int32('\000'), uint64(12), uint64(libc.X__builtin_object_size(tls, extents, 0)))
  13603. }
  13604. } else {
  13605. x = 0
  13606. y = 0
  13607. overall_left = x - int32((*TXftGlyph)(unsafe.Pointer(xftg)).Fmetrics.Fx)
  13608. overall_top = y - int32((*TXftGlyph)(unsafe.Pointer(xftg)).Fmetrics.Fy)
  13609. overall_right = overall_left + int32((*TXftGlyph)(unsafe.Pointer(xftg)).Fmetrics.Fwidth)
  13610. overall_bottom = overall_top + int32((*TXftGlyph)(unsafe.Pointer(xftg)).Fmetrics.Fheight)
  13611. x += int32((*TXftGlyph)(unsafe.Pointer(xftg)).Fmetrics.FxOff)
  13612. y += int32((*TXftGlyph)(unsafe.Pointer(xftg)).Fmetrics.FyOff)
  13613. for {
  13614. v6 = n
  13615. n--
  13616. if !(v6 != 0) {
  13617. break
  13618. }
  13619. v7 = g
  13620. g += 4
  13621. glyph = *(*TFT_UInt)(unsafe.Pointer(v7))
  13622. if v9 = glyph < (*TXftFontInt)(unsafe.Pointer(font)).Fnum_glyphs; v9 {
  13623. v8 = *(*uintptr)(unsafe.Pointer((*TXftFontInt)(unsafe.Pointer(font)).Fglyphs + uintptr(glyph)*8))
  13624. xftg = v8
  13625. }
  13626. if v9 && v8 != 0 {
  13627. left = x - int32((*TXftGlyph)(unsafe.Pointer(xftg)).Fmetrics.Fx)
  13628. top = y - int32((*TXftGlyph)(unsafe.Pointer(xftg)).Fmetrics.Fy)
  13629. right = left + int32((*TXftGlyph)(unsafe.Pointer(xftg)).Fmetrics.Fwidth)
  13630. bottom = top + int32((*TXftGlyph)(unsafe.Pointer(xftg)).Fmetrics.Fheight)
  13631. if left < overall_left {
  13632. overall_left = left
  13633. }
  13634. if top < overall_top {
  13635. overall_top = top
  13636. }
  13637. if right > overall_right {
  13638. overall_right = right
  13639. }
  13640. if bottom > overall_bottom {
  13641. overall_bottom = bottom
  13642. }
  13643. x += int32((*TXftGlyph)(unsafe.Pointer(xftg)).Fmetrics.FxOff)
  13644. y += int32((*TXftGlyph)(unsafe.Pointer(xftg)).Fmetrics.FyOff)
  13645. }
  13646. }
  13647. (*TXGlyphInfo)(unsafe.Pointer(extents)).Fx = int16(-overall_left)
  13648. (*TXGlyphInfo)(unsafe.Pointer(extents)).Fy = int16(-overall_top)
  13649. (*TXGlyphInfo)(unsafe.Pointer(extents)).Fwidth = uint16(overall_right - overall_left)
  13650. (*TXGlyphInfo)(unsafe.Pointer(extents)).Fheight = uint16(overall_bottom - overall_top)
  13651. (*TXGlyphInfo)(unsafe.Pointer(extents)).FxOff = int16(x)
  13652. (*TXGlyphInfo)(unsafe.Pointer(extents)).FyOff = int16(y)
  13653. }
  13654. if glyphs_loaded != 0 {
  13655. X_XftFontManageMemory(tls, dpy, pub)
  13656. }
  13657. }
  13658. func XXftTextExtents8(tls *libc.TLS, dpy uintptr, pub uintptr, string1 uintptr, len1 int32, extents uintptr) {
  13659. bp := tls.Alloc(4096)
  13660. defer tls.Free(4096)
  13661. var glyphs, v1 uintptr
  13662. var i int32
  13663. var _ /* glyphs_local at bp+0 */ [1024]TFT_UInt
  13664. _, _, _ = glyphs, i, v1
  13665. if len1 < 0 {
  13666. return
  13667. }
  13668. if len1 <= int32(m_NUM_LOCAL) {
  13669. v1 = bp
  13670. glyphs = v1
  13671. *(*TFT_UInt)(unsafe.Pointer(v1)) = uint32(0)
  13672. } else {
  13673. glyphs = libc.Xmalloc(tls, uint64(len1)*uint64(4))
  13674. if !(glyphs != 0) {
  13675. libc.X__builtin___memset_chk(tls, extents, int32('\000'), uint64(12), uint64(libc.X__builtin_object_size(tls, extents, 0)))
  13676. return
  13677. }
  13678. }
  13679. i = 0
  13680. for {
  13681. if !(i < len1) {
  13682. break
  13683. }
  13684. *(*TFT_UInt)(unsafe.Pointer(glyphs + uintptr(i)*4)) = XXftCharIndex(tls, dpy, pub, uint32(*(*TFcChar8)(unsafe.Pointer(string1 + uintptr(i)))))
  13685. goto _2
  13686. _2:
  13687. ;
  13688. i++
  13689. }
  13690. XXftGlyphExtents(tls, dpy, pub, glyphs, len1, extents)
  13691. if glyphs != bp {
  13692. libc.Xfree(tls, glyphs)
  13693. }
  13694. }
  13695. func XXftTextExtents16(tls *libc.TLS, dpy uintptr, pub uintptr, string1 uintptr, len1 int32, extents uintptr) {
  13696. bp := tls.Alloc(4096)
  13697. defer tls.Free(4096)
  13698. var glyphs, v1 uintptr
  13699. var i int32
  13700. var _ /* glyphs_local at bp+0 */ [1024]TFT_UInt
  13701. _, _, _ = glyphs, i, v1
  13702. if len1 < 0 {
  13703. return
  13704. }
  13705. if len1 <= int32(m_NUM_LOCAL) {
  13706. v1 = bp
  13707. glyphs = v1
  13708. *(*TFT_UInt)(unsafe.Pointer(v1)) = uint32(0)
  13709. } else {
  13710. glyphs = libc.Xmalloc(tls, uint64(len1)*uint64(4))
  13711. if !(glyphs != 0) {
  13712. libc.X__builtin___memset_chk(tls, extents, int32('\000'), uint64(12), uint64(libc.X__builtin_object_size(tls, extents, 0)))
  13713. return
  13714. }
  13715. }
  13716. i = 0
  13717. for {
  13718. if !(i < len1) {
  13719. break
  13720. }
  13721. *(*TFT_UInt)(unsafe.Pointer(glyphs + uintptr(i)*4)) = XXftCharIndex(tls, dpy, pub, uint32(*(*TFcChar16)(unsafe.Pointer(string1 + uintptr(i)*2))))
  13722. goto _2
  13723. _2:
  13724. ;
  13725. i++
  13726. }
  13727. XXftGlyphExtents(tls, dpy, pub, glyphs, len1, extents)
  13728. if glyphs != bp {
  13729. libc.Xfree(tls, glyphs)
  13730. }
  13731. }
  13732. func XXftTextExtents32(tls *libc.TLS, dpy uintptr, pub uintptr, string1 uintptr, len1 int32, extents uintptr) {
  13733. bp := tls.Alloc(4096)
  13734. defer tls.Free(4096)
  13735. var glyphs, v1 uintptr
  13736. var i int32
  13737. var _ /* glyphs_local at bp+0 */ [1024]TFT_UInt
  13738. _, _, _ = glyphs, i, v1
  13739. if len1 < 0 {
  13740. return
  13741. }
  13742. if len1 <= int32(m_NUM_LOCAL) {
  13743. v1 = bp
  13744. glyphs = v1
  13745. *(*TFT_UInt)(unsafe.Pointer(v1)) = uint32(0)
  13746. } else {
  13747. glyphs = libc.Xmalloc(tls, uint64(len1)*uint64(4))
  13748. if !(glyphs != 0) {
  13749. libc.X__builtin___memset_chk(tls, extents, int32('\000'), uint64(12), uint64(libc.X__builtin_object_size(tls, extents, 0)))
  13750. return
  13751. }
  13752. }
  13753. i = 0
  13754. for {
  13755. if !(i < len1) {
  13756. break
  13757. }
  13758. *(*TFT_UInt)(unsafe.Pointer(glyphs + uintptr(i)*4)) = XXftCharIndex(tls, dpy, pub, *(*TFcChar32)(unsafe.Pointer(string1 + uintptr(i)*4)))
  13759. goto _2
  13760. _2:
  13761. ;
  13762. i++
  13763. }
  13764. XXftGlyphExtents(tls, dpy, pub, glyphs, len1, extents)
  13765. if glyphs != bp {
  13766. libc.Xfree(tls, glyphs)
  13767. }
  13768. }
  13769. func XXftTextExtentsUtf8(tls *libc.TLS, dpy uintptr, pub uintptr, string1 uintptr, len1 int32, extents uintptr) {
  13770. bp := tls.Alloc(4112)
  13771. defer tls.Free(4112)
  13772. var glyphs, glyphs_new, v1 uintptr
  13773. var i, l, size, v2, v4 int32
  13774. var v3 bool
  13775. var _ /* glyphs_local at bp+0 */ [1024]TFT_UInt
  13776. var _ /* ucs4 at bp+4096 */ TFcChar32
  13777. _, _, _, _, _, _, _, _, _ = glyphs, glyphs_new, i, l, size, v1, v2, v3, v4
  13778. if len1 < 0 {
  13779. return
  13780. }
  13781. i = 0
  13782. v1 = bp
  13783. glyphs = v1
  13784. *(*TFT_UInt)(unsafe.Pointer(v1)) = uint32(0)
  13785. size = int32(m_NUM_LOCAL)
  13786. for {
  13787. if v3 = len1 != 0; v3 {
  13788. v2 = libfontconfig.XFcUtf8ToUcs4(tls, string1, bp+4096, len1)
  13789. l = v2
  13790. }
  13791. if !(v3 && v2 > 0) {
  13792. break
  13793. }
  13794. if i == size {
  13795. glyphs_new = libc.Xmalloc(tls, uint64(size*libc.Int32FromInt32(2))*uint64(4))
  13796. if !(glyphs_new != 0) {
  13797. if glyphs != bp {
  13798. libc.Xfree(tls, glyphs)
  13799. }
  13800. libc.X__builtin___memset_chk(tls, extents, int32('\000'), uint64(12), uint64(libc.X__builtin_object_size(tls, extents, 0)))
  13801. return
  13802. }
  13803. libc.X__builtin___memcpy_chk(tls, glyphs_new, glyphs, uint64(size)*uint64(4), uint64(libc.X__builtin_object_size(tls, glyphs_new, 0)))
  13804. size *= int32(2)
  13805. if glyphs != bp {
  13806. libc.Xfree(tls, glyphs)
  13807. }
  13808. glyphs = glyphs_new
  13809. }
  13810. v4 = i
  13811. i++
  13812. *(*TFT_UInt)(unsafe.Pointer(glyphs + uintptr(v4)*4)) = XXftCharIndex(tls, dpy, pub, *(*TFcChar32)(unsafe.Pointer(bp + 4096)))
  13813. string1 += uintptr(l)
  13814. len1 -= l
  13815. }
  13816. XXftGlyphExtents(tls, dpy, pub, glyphs, i, extents)
  13817. if glyphs != bp {
  13818. libc.Xfree(tls, glyphs)
  13819. }
  13820. }
  13821. func XXftTextExtentsUtf16(tls *libc.TLS, dpy uintptr, pub uintptr, string1 uintptr, endian TFcEndian, len1 int32, extents uintptr) {
  13822. bp := tls.Alloc(4112)
  13823. defer tls.Free(4112)
  13824. var glyphs, glyphs_new, v1 uintptr
  13825. var i, l, size, v2, v4 int32
  13826. var v3 bool
  13827. var _ /* glyphs_local at bp+0 */ [1024]TFT_UInt
  13828. var _ /* ucs4 at bp+4096 */ TFcChar32
  13829. _, _, _, _, _, _, _, _, _ = glyphs, glyphs_new, i, l, size, v1, v2, v3, v4
  13830. if len1 < 0 {
  13831. return
  13832. }
  13833. i = 0
  13834. v1 = bp
  13835. glyphs = v1
  13836. *(*TFT_UInt)(unsafe.Pointer(v1)) = uint32(0)
  13837. size = int32(m_NUM_LOCAL)
  13838. for {
  13839. if v3 = len1 != 0; v3 {
  13840. v2 = libfontconfig.XFcUtf16ToUcs4(tls, string1, endian, bp+4096, len1)
  13841. l = v2
  13842. }
  13843. if !(v3 && v2 > 0) {
  13844. break
  13845. }
  13846. if i == size {
  13847. glyphs_new = libc.Xmalloc(tls, uint64(size*libc.Int32FromInt32(2))*uint64(4))
  13848. if !(glyphs_new != 0) {
  13849. if glyphs != bp {
  13850. libc.Xfree(tls, glyphs)
  13851. }
  13852. libc.X__builtin___memset_chk(tls, extents, int32('\000'), uint64(12), uint64(libc.X__builtin_object_size(tls, extents, 0)))
  13853. return
  13854. }
  13855. libc.X__builtin___memcpy_chk(tls, glyphs_new, glyphs, uint64(size)*uint64(4), uint64(libc.X__builtin_object_size(tls, glyphs_new, 0)))
  13856. size *= int32(2)
  13857. if glyphs != bp {
  13858. libc.Xfree(tls, glyphs)
  13859. }
  13860. glyphs = glyphs_new
  13861. }
  13862. v4 = i
  13863. i++
  13864. *(*TFT_UInt)(unsafe.Pointer(glyphs + uintptr(v4)*4)) = XXftCharIndex(tls, dpy, pub, *(*TFcChar32)(unsafe.Pointer(bp + 4096)))
  13865. string1 += uintptr(l)
  13866. len1 -= l
  13867. }
  13868. XXftGlyphExtents(tls, dpy, pub, glyphs, i, extents)
  13869. if glyphs != bp {
  13870. libc.Xfree(tls, glyphs)
  13871. }
  13872. }
  13873. /* xftxlfd.c */
  13874. func XXftFontMatch(tls *libc.TLS, dpy uintptr, screen int32, pattern uintptr, result uintptr) (r uintptr) {
  13875. var match, new1 uintptr
  13876. _, _ = match, new1
  13877. if !(XXftInit(tls, libc.UintptrFromInt32(0)) != 0) {
  13878. return libc.UintptrFromInt32(0)
  13879. }
  13880. new1 = libfontconfig.XFcPatternDuplicate(tls, pattern)
  13881. if !(new1 != 0) {
  13882. return libc.UintptrFromInt32(0)
  13883. }
  13884. if XXftDebug(tls)&int32(m_XFT_DBG_OPENV) != 0 {
  13885. libc.Xprintf(tls, __ccgo_ts+689, 0)
  13886. libfontconfig.XFcPatternPrint(tls, new1)
  13887. }
  13888. libfontconfig.XFcConfigSubstitute(tls, libc.UintptrFromInt32(0), new1, int32(_FcMatchPattern))
  13889. if XXftDebug(tls)&int32(m_XFT_DBG_OPENV) != 0 {
  13890. libc.Xprintf(tls, __ccgo_ts+711, 0)
  13891. libfontconfig.XFcPatternPrint(tls, new1)
  13892. }
  13893. XXftDefaultSubstitute(tls, dpy, screen, new1)
  13894. if XXftDebug(tls)&int32(m_XFT_DBG_OPENV) != 0 {
  13895. libc.Xprintf(tls, __ccgo_ts+754, 0)
  13896. libfontconfig.XFcPatternPrint(tls, new1)
  13897. }
  13898. match = libfontconfig.XFcFontMatch(tls, libc.UintptrFromInt32(0), new1, result)
  13899. if XXftDebug(tls)&int32(m_XFT_DBG_OPENV) != 0 {
  13900. libc.Xprintf(tls, __ccgo_ts+799, 0)
  13901. libfontconfig.XFcPatternPrint(tls, match)
  13902. }
  13903. libfontconfig.XFcPatternDestroy(tls, new1)
  13904. return match
  13905. }
  13906. func XXftFontOpen(tls *libc.TLS, dpy uintptr, screen int32, va1 uintptr) (r uintptr) {
  13907. bp := tls.Alloc(16)
  13908. defer tls.Free(16)
  13909. var font, match, pat uintptr
  13910. var va Tva_list
  13911. var _ /* result at bp+0 */ TFcResult
  13912. _, _, _, _ = font, match, pat, va
  13913. va = va1
  13914. pat = libfontconfig.XFcPatternVaBuild(tls, libc.UintptrFromInt32(0), va)
  13915. _ = va
  13916. if !(pat != 0) {
  13917. if XXftDebug(tls)&int32(m_XFT_DBG_OPEN) != 0 {
  13918. libc.Xprintf(tls, __ccgo_ts+820, 0)
  13919. }
  13920. return libc.UintptrFromInt32(0)
  13921. }
  13922. match = XXftFontMatch(tls, dpy, screen, pat, bp)
  13923. if XXftDebug(tls)&int32(m_XFT_DBG_OPEN) != 0 {
  13924. libc.Xprintf(tls, __ccgo_ts+859, 0)
  13925. libfontconfig.XFcPatternPrint(tls, pat)
  13926. if match != 0 {
  13927. libc.Xprintf(tls, __ccgo_ts+868, 0)
  13928. libfontconfig.XFcPatternPrint(tls, match)
  13929. } else {
  13930. libc.Xprintf(tls, __ccgo_ts+875, 0)
  13931. }
  13932. }
  13933. libfontconfig.XFcPatternDestroy(tls, pat)
  13934. if !(match != 0) {
  13935. return libc.UintptrFromInt32(0)
  13936. }
  13937. font = XXftFontOpenPattern(tls, dpy, match)
  13938. if !(font != 0) {
  13939. if XXftDebug(tls)&int32(m_XFT_DBG_OPEN) != 0 {
  13940. libc.Xprintf(tls, __ccgo_ts+885, 0)
  13941. }
  13942. libfontconfig.XFcPatternDestroy(tls, match)
  13943. }
  13944. return font
  13945. }
  13946. func XXftFontOpenName(tls *libc.TLS, dpy uintptr, screen int32, name uintptr) (r uintptr) {
  13947. bp := tls.Alloc(32)
  13948. defer tls.Free(32)
  13949. var font, match, pat uintptr
  13950. var _ /* result at bp+0 */ TFcResult
  13951. _, _, _ = font, match, pat
  13952. pat = libfontconfig.XFcNameParse(tls, name)
  13953. if XXftDebug(tls)&int32(m_XFT_DBG_OPEN) != 0 {
  13954. libc.Xprintf(tls, __ccgo_ts+894, libc.VaList(bp+16, name))
  13955. if pat != 0 {
  13956. libfontconfig.XFcPatternPrint(tls, pat)
  13957. } else {
  13958. libc.Xprintf(tls, __ccgo_ts+917, 0)
  13959. }
  13960. }
  13961. if !(pat != 0) {
  13962. return libc.UintptrFromInt32(0)
  13963. }
  13964. match = XXftFontMatch(tls, dpy, screen, pat, bp)
  13965. if XXftDebug(tls)&int32(m_XFT_DBG_OPEN) != 0 {
  13966. if match != 0 {
  13967. libc.Xprintf(tls, __ccgo_ts+868, 0)
  13968. libfontconfig.XFcPatternPrint(tls, match)
  13969. } else {
  13970. libc.Xprintf(tls, __ccgo_ts+875, 0)
  13971. }
  13972. }
  13973. libfontconfig.XFcPatternDestroy(tls, pat)
  13974. if !(match != 0) {
  13975. return libc.UintptrFromInt32(0)
  13976. }
  13977. font = XXftFontOpenPattern(tls, dpy, match)
  13978. if !(font != 0) {
  13979. if XXftDebug(tls)&int32(m_XFT_DBG_OPEN) != 0 {
  13980. libc.Xprintf(tls, __ccgo_ts+885, 0)
  13981. }
  13982. libfontconfig.XFcPatternDestroy(tls, match)
  13983. }
  13984. return font
  13985. }
  13986. func XXftFontOpenXlfd(tls *libc.TLS, dpy uintptr, screen int32, xlfd uintptr) (r uintptr) {
  13987. bp := tls.Alloc(32)
  13988. defer tls.Free(32)
  13989. var font, match, pat uintptr
  13990. var _ /* result at bp+0 */ TFcResult
  13991. _, _, _ = font, match, pat
  13992. pat = XXftXlfdParse(tls, xlfd, m_FcFalse, m_FcFalse)
  13993. if XXftDebug(tls)&int32(m_XFT_DBG_OPEN) != 0 {
  13994. libc.Xprintf(tls, __ccgo_ts+931, libc.VaList(bp+16, xlfd))
  13995. if pat != 0 {
  13996. libc.Xprintf(tls, __ccgo_ts+954, 0)
  13997. } else {
  13998. libfontconfig.XFcPatternPrint(tls, pat)
  13999. }
  14000. }
  14001. if !(pat != 0) {
  14002. return libc.UintptrFromInt32(0)
  14003. }
  14004. match = XXftFontMatch(tls, dpy, screen, pat, bp)
  14005. if XXftDebug(tls)&int32(m_XFT_DBG_OPEN) != 0 {
  14006. if match != 0 {
  14007. libc.Xprintf(tls, __ccgo_ts+868, 0)
  14008. libfontconfig.XFcPatternPrint(tls, match)
  14009. } else {
  14010. libc.Xprintf(tls, __ccgo_ts+875, 0)
  14011. }
  14012. }
  14013. libfontconfig.XFcPatternDestroy(tls, pat)
  14014. if !(match != 0) {
  14015. return libc.UintptrFromInt32(0)
  14016. }
  14017. font = XXftFontOpenPattern(tls, dpy, match)
  14018. if !(font != 0) {
  14019. if XXftDebug(tls)&int32(m_XFT_DBG_OPEN) != 0 {
  14020. libc.Xprintf(tls, __ccgo_ts+885, 0)
  14021. }
  14022. libfontconfig.XFcPatternDestroy(tls, match)
  14023. }
  14024. return font
  14025. }
  14026. const m_FT_LOAD_DEFAULT1 = 0
  14027. const m_XFT_EMBEDDED_BITMAP = "embeddedbitmap"
  14028. /*
  14029. * List of all open files (each face in a file is managed separately)
  14030. */
  14031. var __XftFtFiles uintptr
  14032. var _XftMaxFreeTypeFiles = int32(5)
  14033. func __XftGetFile(tls *libc.TLS, file uintptr, id int32) (r uintptr) {
  14034. bp := tls.Alloc(32)
  14035. defer tls.Free(32)
  14036. var f uintptr
  14037. var v2, v3, v4 TFT_Fixed
  14038. _, _, _, _ = f, v2, v3, v4
  14039. if !(XXftInitFtLibrary(tls) != 0) {
  14040. return libc.UintptrFromInt32(0)
  14041. }
  14042. f = __XftFtFiles
  14043. for {
  14044. if !(f != 0) {
  14045. break
  14046. }
  14047. if !(libc.Xstrcmp(tls, (*TXftFtFile)(unsafe.Pointer(f)).Ffile, file) != 0) && (*TXftFtFile)(unsafe.Pointer(f)).Fid == id {
  14048. (*TXftFtFile)(unsafe.Pointer(f)).Fref++
  14049. if XXftDebug(tls)&int32(m_XFT_DBG_REF) != 0 {
  14050. libc.Xprintf(tls, __ccgo_ts+968, libc.VaList(bp+8, file, id, (*TXftFtFile)(unsafe.Pointer(f)).Fref))
  14051. }
  14052. return f
  14053. }
  14054. goto _1
  14055. _1:
  14056. ;
  14057. f = (*TXftFtFile)(unsafe.Pointer(f)).Fnext
  14058. }
  14059. f = libc.Xmalloc(tls, uint64(96)+libc.Xstrlen(tls, file)+uint64(1))
  14060. if !(f != 0) {
  14061. return libc.UintptrFromInt32(0)
  14062. }
  14063. XXftMemAlloc(tls, int32(_XFT_MEM_FILE), uint64(96)+libc.Xstrlen(tls, file)+uint64(1))
  14064. if XXftDebug(tls)&int32(m_XFT_DBG_REF) != 0 {
  14065. libc.Xprintf(tls, __ccgo_ts+1006, libc.VaList(bp+8, file, id))
  14066. }
  14067. (*TXftFtFile)(unsafe.Pointer(f)).Fnext = __XftFtFiles
  14068. __XftFtFiles = f
  14069. (*TXftFtFile)(unsafe.Pointer(f)).Fref = int32(1)
  14070. (*TXftFtFile)(unsafe.Pointer(f)).Ffile = f + libc.UintptrFromInt32(1)*96
  14071. libc.X__builtin___strcpy_chk(tls, (*TXftFtFile)(unsafe.Pointer(f)).Ffile, file, libc.X__builtin_object_size(tls, (*TXftFtFile)(unsafe.Pointer(f)).Ffile, int32(1)))
  14072. (*TXftFtFile)(unsafe.Pointer(f)).Fid = id
  14073. (*TXftFtFile)(unsafe.Pointer(f)).Flock = 0
  14074. (*TXftFtFile)(unsafe.Pointer(f)).Fface = libc.UintptrFromInt32(0)
  14075. (*TXftFtFile)(unsafe.Pointer(f)).Fxsize = 0
  14076. (*TXftFtFile)(unsafe.Pointer(f)).Fysize = 0
  14077. v4 = libc.Int64FromInt32(0)
  14078. (*TXftFtFile)(unsafe.Pointer(f)).Fmatrix.Fyy = v4
  14079. v3 = v4
  14080. (*TXftFtFile)(unsafe.Pointer(f)).Fmatrix.Fyx = v3
  14081. v2 = v3
  14082. (*TXftFtFile)(unsafe.Pointer(f)).Fmatrix.Fxy = v2
  14083. (*TXftFtFile)(unsafe.Pointer(f)).Fmatrix.Fxx = v2
  14084. return f
  14085. }
  14086. func __XftGetFaceFile(tls *libc.TLS, face TFT_Face) (r uintptr) {
  14087. var f uintptr
  14088. var v1, v2, v3 TFT_Fixed
  14089. _, _, _, _ = f, v1, v2, v3
  14090. f = libc.Xmalloc(tls, uint64(96))
  14091. if !(f != 0) {
  14092. return libc.UintptrFromInt32(0)
  14093. }
  14094. XXftMemAlloc(tls, int32(_XFT_MEM_FILE), uint64(96))
  14095. (*TXftFtFile)(unsafe.Pointer(f)).Fnext = libc.UintptrFromInt32(0)
  14096. (*TXftFtFile)(unsafe.Pointer(f)).Fref = int32(1)
  14097. (*TXftFtFile)(unsafe.Pointer(f)).Ffile = libc.UintptrFromInt32(0)
  14098. (*TXftFtFile)(unsafe.Pointer(f)).Fid = 0
  14099. (*TXftFtFile)(unsafe.Pointer(f)).Flock = 0
  14100. (*TXftFtFile)(unsafe.Pointer(f)).Fface = face
  14101. (*TXftFtFile)(unsafe.Pointer(f)).Fxsize = 0
  14102. (*TXftFtFile)(unsafe.Pointer(f)).Fysize = 0
  14103. v3 = libc.Int64FromInt32(0)
  14104. (*TXftFtFile)(unsafe.Pointer(f)).Fmatrix.Fyy = v3
  14105. v2 = v3
  14106. (*TXftFtFile)(unsafe.Pointer(f)).Fmatrix.Fyx = v2
  14107. v1 = v2
  14108. (*TXftFtFile)(unsafe.Pointer(f)).Fmatrix.Fxy = v1
  14109. (*TXftFtFile)(unsafe.Pointer(f)).Fmatrix.Fxx = v1
  14110. return f
  14111. }
  14112. func __XftNumFiles(tls *libc.TLS) (r int32) {
  14113. var count int32
  14114. var f uintptr
  14115. _, _ = count, f
  14116. count = 0
  14117. f = __XftFtFiles
  14118. for {
  14119. if !(f != 0) {
  14120. break
  14121. }
  14122. if (*TXftFtFile)(unsafe.Pointer(f)).Fface != 0 && !((*TXftFtFile)(unsafe.Pointer(f)).Flock != 0) {
  14123. count++
  14124. }
  14125. goto _1
  14126. _1:
  14127. ;
  14128. f = (*TXftFtFile)(unsafe.Pointer(f)).Fnext
  14129. }
  14130. return count
  14131. }
  14132. func __XftNthFile(tls *libc.TLS, n int32) (r uintptr) {
  14133. var count, v2 int32
  14134. var f uintptr
  14135. _, _, _ = count, f, v2
  14136. count = 0
  14137. f = __XftFtFiles
  14138. for {
  14139. if !(f != 0) {
  14140. break
  14141. }
  14142. if (*TXftFtFile)(unsafe.Pointer(f)).Fface != 0 && !((*TXftFtFile)(unsafe.Pointer(f)).Flock != 0) {
  14143. v2 = count
  14144. count++
  14145. if v2 == n {
  14146. break
  14147. }
  14148. }
  14149. goto _1
  14150. _1:
  14151. ;
  14152. f = (*TXftFtFile)(unsafe.Pointer(f)).Fnext
  14153. }
  14154. return f
  14155. }
  14156. func __XftUncacheFiles(tls *libc.TLS) {
  14157. bp := tls.Alloc(32)
  14158. defer tls.Free(32)
  14159. var f uintptr
  14160. var n, v1, v2 int32
  14161. _, _, _, _ = f, n, v1, v2
  14162. for {
  14163. v1 = __XftNumFiles(tls)
  14164. n = v1
  14165. if !(v1 > _XftMaxFreeTypeFiles) {
  14166. break
  14167. }
  14168. if n != 0 {
  14169. v2 = libc.Xrand(tls) % n
  14170. } else {
  14171. v2 = 0
  14172. }
  14173. f = __XftNthFile(tls, v2)
  14174. if f != 0 {
  14175. if XXftDebug(tls)&int32(m_XFT_DBG_REF) != 0 {
  14176. libc.Xprintf(tls, __ccgo_ts+1034, libc.VaList(bp+8, (*TXftFtFile)(unsafe.Pointer(f)).Ffile, (*TXftFtFile)(unsafe.Pointer(f)).Fid))
  14177. }
  14178. libfreetype.XFT_Done_Face(tls, (*TXftFtFile)(unsafe.Pointer(f)).Fface)
  14179. (*TXftFtFile)(unsafe.Pointer(f)).Fface = libc.UintptrFromInt32(0)
  14180. }
  14181. }
  14182. }
  14183. func __XftLockFile(tls *libc.TLS, f uintptr) (r TFT_Face) {
  14184. bp := tls.Alloc(32)
  14185. defer tls.Free(32)
  14186. var v1, v2, v3 TFT_Fixed
  14187. _, _, _ = v1, v2, v3
  14188. (*TXftFtFile)(unsafe.Pointer(f)).Flock++
  14189. if !((*TXftFtFile)(unsafe.Pointer(f)).Fface != 0) {
  14190. if XXftDebug(tls)&int32(m_XFT_DBG_REF) != 0 {
  14191. libc.Xprintf(tls, __ccgo_ts+1065, libc.VaList(bp+8, (*TXftFtFile)(unsafe.Pointer(f)).Ffile, (*TXftFtFile)(unsafe.Pointer(f)).Fid))
  14192. }
  14193. if libfreetype.XFT_New_Face(tls, X_XftFTlibrary, (*TXftFtFile)(unsafe.Pointer(f)).Ffile, int64((*TXftFtFile)(unsafe.Pointer(f)).Fid), f+88) != 0 {
  14194. (*TXftFtFile)(unsafe.Pointer(f)).Flock--
  14195. }
  14196. (*TXftFtFile)(unsafe.Pointer(f)).Fxsize = 0
  14197. (*TXftFtFile)(unsafe.Pointer(f)).Fysize = 0
  14198. v3 = libc.Int64FromInt32(0)
  14199. (*TXftFtFile)(unsafe.Pointer(f)).Fmatrix.Fyy = v3
  14200. v2 = v3
  14201. (*TXftFtFile)(unsafe.Pointer(f)).Fmatrix.Fyx = v2
  14202. v1 = v2
  14203. (*TXftFtFile)(unsafe.Pointer(f)).Fmatrix.Fxy = v1
  14204. (*TXftFtFile)(unsafe.Pointer(f)).Fmatrix.Fxx = v1
  14205. __XftUncacheFiles(tls)
  14206. }
  14207. return (*TXftFtFile)(unsafe.Pointer(f)).Fface
  14208. }
  14209. func __XftLockError(tls *libc.TLS, reason uintptr) {
  14210. bp := tls.Alloc(16)
  14211. defer tls.Free(16)
  14212. libc.Xfprintf(tls, libc.X__stderrp, __ccgo_ts+1085, libc.VaList(bp+8, reason))
  14213. }
  14214. func __XftUnlockFile(tls *libc.TLS, f uintptr) {
  14215. var v1 int32
  14216. var v2 uintptr
  14217. _, _ = v1, v2
  14218. v2 = f + 80
  14219. *(*int32)(unsafe.Pointer(v2))--
  14220. v1 = *(*int32)(unsafe.Pointer(v2))
  14221. if v1 < 0 {
  14222. __XftLockError(tls, __ccgo_ts+1108)
  14223. }
  14224. }
  14225. func X_XftSetFace(tls *libc.TLS, f uintptr, xsize TFT_F26Dot6, ysize TFT_F26Dot6, matrix uintptr) (r TFcBool) {
  14226. bp := tls.Alloc(48)
  14227. defer tls.Free(48)
  14228. var best, i int32
  14229. var face TFT_Face
  14230. var v2, v3, v4, v5, v6, v7 int64
  14231. var v8, v9 bool
  14232. _, _, _, _, _, _, _, _, _, _, _ = best, face, i, v2, v3, v4, v5, v6, v7, v8, v9
  14233. face = (*TXftFtFile)(unsafe.Pointer(f)).Fface
  14234. if (*TXftFtFile)(unsafe.Pointer(f)).Fxsize != xsize || (*TXftFtFile)(unsafe.Pointer(f)).Fysize != ysize {
  14235. if XXftDebug(tls)&int32(m_XFT_DBG_GLYPH) != 0 {
  14236. libc.Xprintf(tls, __ccgo_ts+1130, libc.VaList(bp+8, int32(xsize>>libc.Int32FromInt32(6)), int32(ysize>>libc.Int32FromInt32(6)), int32(xsize), int32(ysize)))
  14237. }
  14238. /*
  14239. * Bitmap only faces must match exactly, so find the closest
  14240. * one (height dominant search)
  14241. */
  14242. if !((*TFT_FaceRec_)(unsafe.Pointer(face)).Fface_flags&(libc.Int64FromInt64(1)<<libc.Int32FromInt32(0)) != 0) {
  14243. best = 0
  14244. i = int32(1)
  14245. for {
  14246. if !(i < (*TFT_FaceRec_)(unsafe.Pointer(face)).Fnum_fixed_sizes) {
  14247. break
  14248. }
  14249. if ysize-(*(*TFT_Bitmap_Size)(unsafe.Pointer((*TFT_FaceRec_)(unsafe.Pointer(face)).Favailable_sizes + uintptr(i)*32))).Fy_ppem < 0 {
  14250. v2 = -(ysize - (*(*TFT_Bitmap_Size)(unsafe.Pointer((*TFT_FaceRec_)(unsafe.Pointer(face)).Favailable_sizes + uintptr(i)*32))).Fy_ppem)
  14251. } else {
  14252. v2 = ysize - (*(*TFT_Bitmap_Size)(unsafe.Pointer((*TFT_FaceRec_)(unsafe.Pointer(face)).Favailable_sizes + uintptr(i)*32))).Fy_ppem
  14253. }
  14254. if ysize-(*(*TFT_Bitmap_Size)(unsafe.Pointer((*TFT_FaceRec_)(unsafe.Pointer(face)).Favailable_sizes + uintptr(best)*32))).Fy_ppem < 0 {
  14255. v3 = -(ysize - (*(*TFT_Bitmap_Size)(unsafe.Pointer((*TFT_FaceRec_)(unsafe.Pointer(face)).Favailable_sizes + uintptr(best)*32))).Fy_ppem)
  14256. } else {
  14257. v3 = ysize - (*(*TFT_Bitmap_Size)(unsafe.Pointer((*TFT_FaceRec_)(unsafe.Pointer(face)).Favailable_sizes + uintptr(best)*32))).Fy_ppem
  14258. }
  14259. if v9 = v2 < v3; !v9 {
  14260. if ysize-(*(*TFT_Bitmap_Size)(unsafe.Pointer((*TFT_FaceRec_)(unsafe.Pointer(face)).Favailable_sizes + uintptr(i)*32))).Fy_ppem < 0 {
  14261. v4 = -(ysize - (*(*TFT_Bitmap_Size)(unsafe.Pointer((*TFT_FaceRec_)(unsafe.Pointer(face)).Favailable_sizes + uintptr(i)*32))).Fy_ppem)
  14262. } else {
  14263. v4 = ysize - (*(*TFT_Bitmap_Size)(unsafe.Pointer((*TFT_FaceRec_)(unsafe.Pointer(face)).Favailable_sizes + uintptr(i)*32))).Fy_ppem
  14264. }
  14265. if ysize-(*(*TFT_Bitmap_Size)(unsafe.Pointer((*TFT_FaceRec_)(unsafe.Pointer(face)).Favailable_sizes + uintptr(best)*32))).Fy_ppem < 0 {
  14266. v5 = -(ysize - (*(*TFT_Bitmap_Size)(unsafe.Pointer((*TFT_FaceRec_)(unsafe.Pointer(face)).Favailable_sizes + uintptr(best)*32))).Fy_ppem)
  14267. } else {
  14268. v5 = ysize - (*(*TFT_Bitmap_Size)(unsafe.Pointer((*TFT_FaceRec_)(unsafe.Pointer(face)).Favailable_sizes + uintptr(best)*32))).Fy_ppem
  14269. }
  14270. if v8 = v4 == v5; v8 {
  14271. if xsize-(*(*TFT_Bitmap_Size)(unsafe.Pointer((*TFT_FaceRec_)(unsafe.Pointer(face)).Favailable_sizes + uintptr(i)*32))).Fx_ppem < 0 {
  14272. v6 = -(xsize - (*(*TFT_Bitmap_Size)(unsafe.Pointer((*TFT_FaceRec_)(unsafe.Pointer(face)).Favailable_sizes + uintptr(i)*32))).Fx_ppem)
  14273. } else {
  14274. v6 = xsize - (*(*TFT_Bitmap_Size)(unsafe.Pointer((*TFT_FaceRec_)(unsafe.Pointer(face)).Favailable_sizes + uintptr(i)*32))).Fx_ppem
  14275. }
  14276. if xsize-(*(*TFT_Bitmap_Size)(unsafe.Pointer((*TFT_FaceRec_)(unsafe.Pointer(face)).Favailable_sizes + uintptr(best)*32))).Fx_ppem < 0 {
  14277. v7 = -(xsize - (*(*TFT_Bitmap_Size)(unsafe.Pointer((*TFT_FaceRec_)(unsafe.Pointer(face)).Favailable_sizes + uintptr(best)*32))).Fx_ppem)
  14278. } else {
  14279. v7 = xsize - (*(*TFT_Bitmap_Size)(unsafe.Pointer((*TFT_FaceRec_)(unsafe.Pointer(face)).Favailable_sizes + uintptr(best)*32))).Fx_ppem
  14280. }
  14281. }
  14282. }
  14283. if v9 || v8 && v6 < v7 {
  14284. best = i
  14285. }
  14286. goto _1
  14287. _1:
  14288. ;
  14289. i++
  14290. }
  14291. /*
  14292. * Freetype 2.1.7 and earlier used width/height
  14293. * for matching sizes in the BDF and PCF loaders.
  14294. * This has been fixed for 2.1.8. Because BDF and PCF
  14295. * files have but a single strike per file, we can
  14296. * simply try both sizes.
  14297. */
  14298. if libfreetype.XFT_Set_Char_Size(tls, face, (*(*TFT_Bitmap_Size)(unsafe.Pointer((*TFT_FaceRec_)(unsafe.Pointer(face)).Favailable_sizes + uintptr(best)*32))).Fx_ppem, (*(*TFT_Bitmap_Size)(unsafe.Pointer((*TFT_FaceRec_)(unsafe.Pointer(face)).Favailable_sizes + uintptr(best)*32))).Fy_ppem, uint32(0), uint32(0)) != 0 && libfreetype.XFT_Set_Char_Size(tls, face, int64(int32((*(*TFT_Bitmap_Size)(unsafe.Pointer((*TFT_FaceRec_)(unsafe.Pointer(face)).Favailable_sizes + uintptr(best)*32))).Fwidth)<<int32(6)), int64(int32((*(*TFT_Bitmap_Size)(unsafe.Pointer((*TFT_FaceRec_)(unsafe.Pointer(face)).Favailable_sizes + uintptr(best)*32))).Fheight)<<int32(6)), uint32(0), uint32(0)) != 0 {
  14299. return m_False
  14300. }
  14301. } else {
  14302. if libfreetype.XFT_Set_Char_Size(tls, face, xsize, ysize, uint32(0), uint32(0)) != 0 {
  14303. return m_False
  14304. }
  14305. }
  14306. (*TXftFtFile)(unsafe.Pointer(f)).Fxsize = xsize
  14307. (*TXftFtFile)(unsafe.Pointer(f)).Fysize = ysize
  14308. }
  14309. if !((*TFT_Matrix)(unsafe.Pointer(f+48)).Fxx == (*TFT_Matrix)(unsafe.Pointer(matrix)).Fxx && (*TFT_Matrix)(unsafe.Pointer(f+48)).Fyy == (*TFT_Matrix)(unsafe.Pointer(matrix)).Fyy && (*TFT_Matrix)(unsafe.Pointer(f+48)).Fxy == (*TFT_Matrix)(unsafe.Pointer(matrix)).Fxy && (*TFT_Matrix)(unsafe.Pointer(f+48)).Fyx == (*TFT_Matrix)(unsafe.Pointer(matrix)).Fyx) {
  14310. if XXftDebug(tls)&int32(m_XFT_DBG_GLYPH) != 0 {
  14311. libc.Xprintf(tls, __ccgo_ts+1162, libc.VaList(bp+8, float64((*TFT_Matrix)(unsafe.Pointer(matrix)).Fxx)/libc.Float64FromInt32(0x10000), float64((*TFT_Matrix)(unsafe.Pointer(matrix)).Fxy)/libc.Float64FromInt32(0x10000), float64((*TFT_Matrix)(unsafe.Pointer(matrix)).Fyx)/libc.Float64FromInt32(0x10000), float64((*TFT_Matrix)(unsafe.Pointer(matrix)).Fyy)/libc.Float64FromInt32(0x10000)))
  14312. }
  14313. libfreetype.XFT_Set_Transform(tls, face, matrix, libc.UintptrFromInt32(0))
  14314. (*TXftFtFile)(unsafe.Pointer(f)).Fmatrix = *(*TFT_Matrix)(unsafe.Pointer(matrix))
  14315. }
  14316. return int32(m_True)
  14317. }
  14318. func __XftReleaseFile(tls *libc.TLS, f uintptr) {
  14319. var prev, v2 uintptr
  14320. var v1 int32
  14321. var v4 uint64
  14322. _, _, _, _ = prev, v1, v2, v4
  14323. v2 = f + 8
  14324. *(*int32)(unsafe.Pointer(v2))--
  14325. v1 = *(*int32)(unsafe.Pointer(v2))
  14326. if v1 != 0 {
  14327. return
  14328. }
  14329. if (*TXftFtFile)(unsafe.Pointer(f)).Flock != 0 {
  14330. __XftLockError(tls, __ccgo_ts+1196)
  14331. }
  14332. if (*TXftFtFile)(unsafe.Pointer(f)).Ffile != 0 {
  14333. prev = uintptr(unsafe.Pointer(&__XftFtFiles))
  14334. for {
  14335. if !(*(*uintptr)(unsafe.Pointer(prev)) != 0) {
  14336. break
  14337. }
  14338. if *(*uintptr)(unsafe.Pointer(prev)) == f {
  14339. *(*uintptr)(unsafe.Pointer(prev)) = (*TXftFtFile)(unsafe.Pointer(f)).Fnext
  14340. break
  14341. }
  14342. goto _3
  14343. _3:
  14344. ;
  14345. prev = *(*uintptr)(unsafe.Pointer(prev))
  14346. }
  14347. if (*TXftFtFile)(unsafe.Pointer(f)).Fface != 0 {
  14348. libfreetype.XFT_Done_Face(tls, (*TXftFtFile)(unsafe.Pointer(f)).Fface)
  14349. }
  14350. }
  14351. if (*TXftFtFile)(unsafe.Pointer(f)).Ffile != 0 {
  14352. v4 = libc.Xstrlen(tls, (*TXftFtFile)(unsafe.Pointer(f)).Ffile) + uint64(1)
  14353. } else {
  14354. v4 = uint64(0)
  14355. }
  14356. XXftMemFree(tls, int32(_XFT_MEM_FILE), libc.Uint64FromInt64(96)+v4)
  14357. libc.Xfree(tls, f)
  14358. }
  14359. /*
  14360. * Find a prime larger than the minimum reasonable hash size
  14361. */
  14362. func __XftSqrt(tls *libc.TLS, a TFcChar32) (r TFcChar32) {
  14363. var h, l, m TFcChar32
  14364. _, _, _ = h, l, m
  14365. l = uint32(2)
  14366. h = a / uint32(2)
  14367. for h-l > uint32(1) {
  14368. m = (h + l) >> int32(1)
  14369. if m*m < a {
  14370. l = m
  14371. } else {
  14372. h = m
  14373. }
  14374. }
  14375. return h
  14376. }
  14377. func __XftIsPrime(tls *libc.TLS, i TFcChar32) (r TFcBool) {
  14378. var l, t TFcChar32
  14379. _, _ = l, t
  14380. if i < uint32(2) {
  14381. return m_FcFalse
  14382. }
  14383. if i&uint32(1) == uint32(0) {
  14384. if i == uint32(2) {
  14385. return int32(m_FcTrue)
  14386. }
  14387. return m_FcFalse
  14388. }
  14389. l = __XftSqrt(tls, i) + uint32(1)
  14390. t = uint32(3)
  14391. for {
  14392. if !(t <= l) {
  14393. break
  14394. }
  14395. if i%t == uint32(0) {
  14396. return m_FcFalse
  14397. }
  14398. goto _1
  14399. _1:
  14400. ;
  14401. t += uint32(2)
  14402. }
  14403. return int32(m_FcTrue)
  14404. }
  14405. func __XftHashSize(tls *libc.TLS, num_unicode TFcChar32) (r TFcChar32) {
  14406. var hash TFcChar32
  14407. _ = hash
  14408. /* at least 31.25 % extra space */
  14409. hash = num_unicode + num_unicode>>libc.Int32FromInt32(2) + num_unicode>>libc.Int32FromInt32(4)
  14410. if hash&uint32(1) == uint32(0) {
  14411. hash++
  14412. }
  14413. for !(__XftIsPrime(tls, hash) != 0) {
  14414. hash += uint32(2)
  14415. }
  14416. return hash
  14417. }
  14418. func XXftLockFace(tls *libc.TLS, public uintptr) (r TFT_Face) {
  14419. var face TFT_Face
  14420. var fi, font uintptr
  14421. _, _, _ = face, fi, font
  14422. font = public
  14423. fi = font + 48
  14424. face = __XftLockFile(tls, (*TXftFontInfo)(unsafe.Pointer(fi)).Ffile)
  14425. /*
  14426. * Make sure the face is usable at the requested size
  14427. */
  14428. if face != 0 && !(X_XftSetFace(tls, (*TXftFontInfo)(unsafe.Pointer(fi)).Ffile, (*TXftFontInfo)(unsafe.Pointer(fi)).Fxsize, (*TXftFontInfo)(unsafe.Pointer(fi)).Fysize, fi+56) != 0) {
  14429. __XftUnlockFile(tls, (*TXftFontInfo)(unsafe.Pointer(fi)).Ffile)
  14430. face = libc.UintptrFromInt32(0)
  14431. }
  14432. return face
  14433. }
  14434. func XXftUnlockFace(tls *libc.TLS, public uintptr) {
  14435. var font uintptr
  14436. _ = font
  14437. font = public
  14438. __XftUnlockFile(tls, (*TXftFontInt)(unsafe.Pointer(font)).Finfo.Ffile)
  14439. }
  14440. func _XftFontInfoFill(tls *libc.TLS, dpy uintptr, pattern uintptr, fi uintptr) (r TFcBool) {
  14441. bp := tls.Alloc(144)
  14442. defer tls.Free(144)
  14443. var hash TFcChar32
  14444. var hashp, info, v1, v12, p10, p6, p7, p8, p9 uintptr
  14445. var mid, nhash, v11 int32
  14446. var v2, v3 TFT_Fixed
  14447. var v4, v5 float64
  14448. var _ /* aspect at bp+24 */ float64
  14449. var _ /* autohint at bp+80 */ TFcBool
  14450. var _ /* bitmap at bp+104 */ TFcBool
  14451. var _ /* dsize at bp+16 */ float64
  14452. var _ /* face at bp+96 */ TFT_Face
  14453. var _ /* filename at bp+0 */ uintptr
  14454. var _ /* fm1 at bp+40 */ TFcMatrix
  14455. var _ /* font_matrix at bp+32 */ uintptr
  14456. var _ /* global_advance at bp+84 */ TFcBool
  14457. var _ /* hint_style at bp+88 */ int32
  14458. var _ /* hinting at bp+72 */ TFcBool
  14459. var _ /* id at bp+8 */ int32
  14460. var _ /* vertical_layout at bp+76 */ TFcBool
  14461. _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = hash, hashp, info, mid, nhash, v1, v11, v12, v2, v3, v4, v5, p10, p6, p7, p8, p9
  14462. info = X_XftDisplayInfoGet(tls, dpy, int32(m_True))
  14463. if !(info != 0) {
  14464. return m_FcFalse
  14465. }
  14466. /*
  14467. * Initialize the whole XftFontInfo so that padding doesn't interfere with
  14468. * hash or XftFontInfoEqual().
  14469. */
  14470. libc.X__builtin___memset_chk(tls, fi, int32('\000'), uint64(112), uint64(libc.X__builtin_object_size(tls, fi, 0)))
  14471. /*
  14472. * Find the associated file
  14473. */
  14474. switch libfontconfig.XFcPatternGetString(tls, pattern, __ccgo_ts+1225, 0, bp) {
  14475. case int32(_FcResultNoMatch):
  14476. *(*uintptr)(unsafe.Pointer(bp)) = libc.UintptrFromInt32(0)
  14477. case int32(_FcResultMatch):
  14478. default:
  14479. goto bail0
  14480. }
  14481. switch libfontconfig.XFcPatternGetInteger(tls, pattern, __ccgo_ts+1230, 0, bp+8) {
  14482. case int32(_FcResultNoMatch):
  14483. *(*int32)(unsafe.Pointer(bp + 8)) = 0
  14484. case int32(_FcResultMatch):
  14485. default:
  14486. goto bail0
  14487. }
  14488. if *(*uintptr)(unsafe.Pointer(bp)) != 0 {
  14489. (*TXftFontInfo)(unsafe.Pointer(fi)).Ffile = __XftGetFile(tls, *(*uintptr)(unsafe.Pointer(bp)), *(*int32)(unsafe.Pointer(bp + 8)))
  14490. } else {
  14491. if libfontconfig.XFcPatternGetFTFace(tls, pattern, __ccgo_ts+1236, 0, bp+96) == int32(_FcResultMatch) && *(*TFT_Face)(unsafe.Pointer(bp + 96)) != 0 {
  14492. (*TXftFontInfo)(unsafe.Pointer(fi)).Ffile = __XftGetFaceFile(tls, *(*TFT_Face)(unsafe.Pointer(bp + 96)))
  14493. }
  14494. }
  14495. if !((*TXftFontInfo)(unsafe.Pointer(fi)).Ffile != 0) {
  14496. goto bail0
  14497. }
  14498. /*
  14499. * Compute pixel size
  14500. */
  14501. if libfontconfig.XFcPatternGetDouble(tls, pattern, __ccgo_ts+1243, 0, bp+16) != int32(_FcResultMatch) {
  14502. goto bail1
  14503. }
  14504. if libfontconfig.XFcPatternGetDouble(tls, pattern, __ccgo_ts+1253, 0, bp+24) != int32(_FcResultMatch) {
  14505. *(*float64)(unsafe.Pointer(bp + 24)) = float64(1)
  14506. }
  14507. (*TXftFontInfo)(unsafe.Pointer(fi)).Fysize = int64(*(*float64)(unsafe.Pointer(bp + 16)) * libc.Float64FromFloat64(64))
  14508. (*TXftFontInfo)(unsafe.Pointer(fi)).Fxsize = int64(*(*float64)(unsafe.Pointer(bp + 16)) * *(*float64)(unsafe.Pointer(bp + 24)) * libc.Float64FromFloat64(64))
  14509. if XXftDebug(tls)&int32(m_XFT_DBG_OPEN) != 0 {
  14510. if *(*uintptr)(unsafe.Pointer(bp)) != 0 {
  14511. v1 = *(*uintptr)(unsafe.Pointer(bp))
  14512. } else {
  14513. v1 = __ccgo_ts + 1260
  14514. }
  14515. libc.Xprintf(tls, __ccgo_ts+1267, libc.VaList(bp+120, v1, *(*int32)(unsafe.Pointer(bp + 8)), *(*float64)(unsafe.Pointer(bp + 16))))
  14516. }
  14517. /*
  14518. * Get antialias value
  14519. */
  14520. switch libfontconfig.XFcPatternGetBool(tls, pattern, __ccgo_ts+614, 0, fi+32) {
  14521. case int32(_FcResultNoMatch):
  14522. (*TXftFontInfo)(unsafe.Pointer(fi)).Fantialias = int32(m_True)
  14523. case int32(_FcResultMatch):
  14524. default:
  14525. goto bail1
  14526. }
  14527. /*
  14528. * Get rgba value
  14529. */
  14530. switch libfontconfig.XFcPatternGetInteger(tls, pattern, __ccgo_ts+599, 0, fi+44) {
  14531. case int32(_FcResultNoMatch):
  14532. (*TXftFontInfo)(unsafe.Pointer(fi)).Frgba = m_FC_RGBA_UNKNOWN
  14533. case int32(_FcResultMatch):
  14534. default:
  14535. goto bail1
  14536. }
  14537. /*
  14538. * Get lcd_filter value
  14539. */
  14540. switch libfontconfig.XFcPatternGetInteger(tls, pattern, __ccgo_ts+604, 0, fi+48) {
  14541. case int32(_FcResultNoMatch):
  14542. (*TXftFontInfo)(unsafe.Pointer(fi)).Flcd_filter = int32(m_FC_LCD_DEFAULT)
  14543. case int32(_FcResultMatch):
  14544. default:
  14545. goto bail1
  14546. }
  14547. /*
  14548. * Get matrix and transform values
  14549. */
  14550. switch libfontconfig.XFcPatternGetMatrix(tls, pattern, __ccgo_ts+1304, 0, bp+32) {
  14551. case int32(_FcResultNoMatch):
  14552. v2 = libc.Int64FromInt32(0x10000)
  14553. (*TXftFontInfo)(unsafe.Pointer(fi)).Fmatrix.Fyy = v2
  14554. (*TXftFontInfo)(unsafe.Pointer(fi)).Fmatrix.Fxx = v2
  14555. v3 = libc.Int64FromInt32(0)
  14556. (*TXftFontInfo)(unsafe.Pointer(fi)).Fmatrix.Fyx = v3
  14557. (*TXftFontInfo)(unsafe.Pointer(fi)).Fmatrix.Fxy = v3
  14558. case int32(_FcResultMatch):
  14559. (*TXftFontInfo)(unsafe.Pointer(fi)).Fmatrix.Fxx = int64(libc.Float64FromInt64(0x10000) * (*TFcMatrix)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 32)))).Fxx)
  14560. (*TXftFontInfo)(unsafe.Pointer(fi)).Fmatrix.Fyy = int64(libc.Float64FromInt64(0x10000) * (*TFcMatrix)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 32)))).Fyy)
  14561. (*TXftFontInfo)(unsafe.Pointer(fi)).Fmatrix.Fxy = int64(libc.Float64FromInt64(0x10000) * (*TFcMatrix)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 32)))).Fxy)
  14562. (*TXftFontInfo)(unsafe.Pointer(fi)).Fmatrix.Fyx = int64(libc.Float64FromInt64(0x10000) * (*TFcMatrix)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 32)))).Fyx)
  14563. default:
  14564. goto bail1
  14565. }
  14566. mid = int32(1)
  14567. for libfontconfig.XFcPatternGetMatrix(tls, pattern, __ccgo_ts+1304, mid, bp+32) == int32(_FcResultMatch) {
  14568. v4 = libc.Float64FromInt32(1)
  14569. (*TFcMatrix)(unsafe.Pointer(bp + 40)).Fyy = v4
  14570. (*TFcMatrix)(unsafe.Pointer(bp + 40)).Fxx = v4
  14571. v5 = libc.Float64FromInt32(0)
  14572. (*TFcMatrix)(unsafe.Pointer(bp + 40)).Fyx = v5
  14573. (*TFcMatrix)(unsafe.Pointer(bp + 40)).Fxy = v5
  14574. (*(*TFcMatrix)(unsafe.Pointer(bp + 40))).Fxx = float64((*TXftFontInfo)(unsafe.Pointer(fi)).Fmatrix.Fxx) / libc.Float64FromInt64(0x10000)
  14575. (*(*TFcMatrix)(unsafe.Pointer(bp + 40))).Fyy = float64((*TXftFontInfo)(unsafe.Pointer(fi)).Fmatrix.Fyy) / libc.Float64FromInt64(0x10000)
  14576. (*(*TFcMatrix)(unsafe.Pointer(bp + 40))).Fxy = float64((*TXftFontInfo)(unsafe.Pointer(fi)).Fmatrix.Fxy) / libc.Float64FromInt64(0x10000)
  14577. (*(*TFcMatrix)(unsafe.Pointer(bp + 40))).Fyx = float64((*TXftFontInfo)(unsafe.Pointer(fi)).Fmatrix.Fyx) / libc.Float64FromInt64(0x10000)
  14578. libfontconfig.XFcMatrixMultiply(tls, bp+40, *(*uintptr)(unsafe.Pointer(bp + 32)), bp+40)
  14579. (*TXftFontInfo)(unsafe.Pointer(fi)).Fmatrix.Fxx = int64(libc.Float64FromInt64(0x10000) * (*(*TFcMatrix)(unsafe.Pointer(bp + 40))).Fxx)
  14580. (*TXftFontInfo)(unsafe.Pointer(fi)).Fmatrix.Fyy = int64(libc.Float64FromInt64(0x10000) * (*(*TFcMatrix)(unsafe.Pointer(bp + 40))).Fyy)
  14581. (*TXftFontInfo)(unsafe.Pointer(fi)).Fmatrix.Fxy = int64(libc.Float64FromInt64(0x10000) * (*(*TFcMatrix)(unsafe.Pointer(bp + 40))).Fxy)
  14582. (*TXftFontInfo)(unsafe.Pointer(fi)).Fmatrix.Fyx = int64(libc.Float64FromInt64(0x10000) * (*(*TFcMatrix)(unsafe.Pointer(bp + 40))).Fyx)
  14583. mid++
  14584. }
  14585. (*TXftFontInfo)(unsafe.Pointer(fi)).Ftransform = libc.BoolInt32((*TXftFontInfo)(unsafe.Pointer(fi)).Fmatrix.Fxx != int64(0x10000) || (*TXftFontInfo)(unsafe.Pointer(fi)).Fmatrix.Fxy != 0 || (*TXftFontInfo)(unsafe.Pointer(fi)).Fmatrix.Fyx != 0 || (*TXftFontInfo)(unsafe.Pointer(fi)).Fmatrix.Fyy != int64(0x10000))
  14586. /*
  14587. * Get render value, set to false if no Render extension present
  14588. */
  14589. if (*TXftDisplayInfo)(unsafe.Pointer(info)).FhasRender != 0 {
  14590. switch libfontconfig.XFcPatternGetBool(tls, pattern, __ccgo_ts+592, 0, fi+96) {
  14591. case int32(_FcResultTypeMismatch):
  14592. /*
  14593. * Fontconfig no longer supports xft's custom values in
  14594. * text patterns, so any name specifying render:true or
  14595. * render:false will have an invalid type in the resulting
  14596. * pattern. Just ignore that case so that the app doesn't
  14597. * just fail
  14598. */
  14599. /* fall through ... */
  14600. fallthrough
  14601. case int32(_FcResultNoMatch):
  14602. (*TXftFontInfo)(unsafe.Pointer(fi)).Frender = (*TXftDisplayInfo)(unsafe.Pointer(info)).FhasRender
  14603. case int32(_FcResultMatch):
  14604. default:
  14605. goto bail1
  14606. }
  14607. } else {
  14608. (*TXftFontInfo)(unsafe.Pointer(fi)).Frender = m_FcFalse
  14609. }
  14610. /*
  14611. * Compute glyph load flags
  14612. */
  14613. (*TXftFontInfo)(unsafe.Pointer(fi)).Fload_flags = int32(libc.Int64FromInt32(m_FT_LOAD_DEFAULT1) | libc.Int64FromInt64(1)<<libc.Int32FromInt32(20))
  14614. switch libfontconfig.XFcPatternGetBool(tls, pattern, __ccgo_ts+1311, 0, bp+104) {
  14615. case int32(_FcResultNoMatch):
  14616. *(*TFcBool)(unsafe.Pointer(bp + 104)) = m_FcFalse
  14617. case int32(_FcResultMatch):
  14618. default:
  14619. goto bail1
  14620. }
  14621. /* disable bitmaps when anti-aliasing or transforming glyphs */
  14622. if !(*(*TFcBool)(unsafe.Pointer(bp + 104)) != 0) && (*TXftFontInfo)(unsafe.Pointer(fi)).Fantialias != 0 || (*TXftFontInfo)(unsafe.Pointer(fi)).Ftransform != 0 {
  14623. p6 = fi + 92
  14624. *(*TFT_Int)(unsafe.Pointer(p6)) = TFT_Int(int64(*(*TFT_Int)(unsafe.Pointer(p6))) | libc.Int64FromInt64(1)<<libc.Int32FromInt32(3))
  14625. }
  14626. /* disable hinting if requested */
  14627. switch libfontconfig.XFcPatternGetBool(tls, pattern, __ccgo_ts+652, 0, bp+72) {
  14628. case int32(_FcResultNoMatch):
  14629. *(*TFcBool)(unsafe.Pointer(bp + 72)) = int32(m_FcTrue)
  14630. case int32(_FcResultMatch):
  14631. default:
  14632. goto bail1
  14633. }
  14634. switch libfontconfig.XFcPatternGetBool(tls, pattern, __ccgo_ts+624, 0, fi+36) {
  14635. case int32(_FcResultNoMatch):
  14636. (*TXftFontInfo)(unsafe.Pointer(fi)).Fembolden = m_FcFalse
  14637. case int32(_FcResultMatch):
  14638. default:
  14639. goto bail1
  14640. }
  14641. switch libfontconfig.XFcPatternGetInteger(tls, pattern, __ccgo_ts+642, 0, bp+88) {
  14642. case int32(_FcResultNoMatch):
  14643. *(*int32)(unsafe.Pointer(bp + 88)) = int32(m_FC_HINT_FULL)
  14644. case int32(_FcResultMatch):
  14645. default:
  14646. goto bail1
  14647. }
  14648. if !(*(*TFcBool)(unsafe.Pointer(bp + 72)) != 0) || *(*int32)(unsafe.Pointer(bp + 88)) == m_FC_HINT_NONE {
  14649. p7 = fi + 92
  14650. *(*TFT_Int)(unsafe.Pointer(p7)) = TFT_Int(int64(*(*TFT_Int)(unsafe.Pointer(p7))) | libc.Int64FromInt64(1)<<libc.Int32FromInt32(1))
  14651. }
  14652. /* Figure out the load target, which modifies the hinting
  14653. * behavior of FreeType based on the intended use of the glyphs.
  14654. */
  14655. if (*TXftFontInfo)(unsafe.Pointer(fi)).Fantialias != 0 {
  14656. if m_FC_HINT_NONE < *(*int32)(unsafe.Pointer(bp + 88)) && *(*int32)(unsafe.Pointer(bp + 88)) < int32(m_FC_HINT_FULL) {
  14657. *(*TFT_Int)(unsafe.Pointer(fi + 92)) |= int32(_FT_RENDER_MODE_LIGHT) & libc.Int32FromInt32(15) << libc.Int32FromInt32(16)
  14658. } else {
  14659. /* autohinter will snap stems to integer widths, when
  14660. * the LCD targets are used.
  14661. */
  14662. switch (*TXftFontInfo)(unsafe.Pointer(fi)).Frgba {
  14663. case int32(m_FC_RGBA_RGB):
  14664. fallthrough
  14665. case int32(m_FC_RGBA_BGR):
  14666. *(*TFT_Int)(unsafe.Pointer(fi + 92)) |= int32(_FT_RENDER_MODE_LCD) & libc.Int32FromInt32(15) << libc.Int32FromInt32(16)
  14667. case int32(m_FC_RGBA_VRGB):
  14668. fallthrough
  14669. case int32(m_FC_RGBA_VBGR):
  14670. *(*TFT_Int)(unsafe.Pointer(fi + 92)) |= int32(_FT_RENDER_MODE_LCD_V) & libc.Int32FromInt32(15) << libc.Int32FromInt32(16)
  14671. break
  14672. }
  14673. }
  14674. } else {
  14675. *(*TFT_Int)(unsafe.Pointer(fi + 92)) |= int32(_FT_RENDER_MODE_MONO) & libc.Int32FromInt32(15) << libc.Int32FromInt32(16)
  14676. }
  14677. /* set vertical layout if requested */
  14678. switch libfontconfig.XFcPatternGetBool(tls, pattern, __ccgo_ts+1326, 0, bp+76) {
  14679. case int32(_FcResultNoMatch):
  14680. *(*TFcBool)(unsafe.Pointer(bp + 76)) = m_FcFalse
  14681. case int32(_FcResultMatch):
  14682. default:
  14683. goto bail1
  14684. }
  14685. if *(*TFcBool)(unsafe.Pointer(bp + 76)) != 0 {
  14686. p8 = fi + 92
  14687. *(*TFT_Int)(unsafe.Pointer(p8)) = TFT_Int(int64(*(*TFT_Int)(unsafe.Pointer(p8))) | libc.Int64FromInt64(1)<<libc.Int32FromInt32(4))
  14688. }
  14689. /* force autohinting if requested */
  14690. switch libfontconfig.XFcPatternGetBool(tls, pattern, __ccgo_ts+633, 0, bp+80) {
  14691. case int32(_FcResultNoMatch):
  14692. *(*TFcBool)(unsafe.Pointer(bp + 80)) = m_FcFalse
  14693. case int32(_FcResultMatch):
  14694. default:
  14695. goto bail1
  14696. }
  14697. if *(*TFcBool)(unsafe.Pointer(bp + 80)) != 0 {
  14698. p9 = fi + 92
  14699. *(*TFT_Int)(unsafe.Pointer(p9)) = TFT_Int(int64(*(*TFT_Int)(unsafe.Pointer(p9))) | libc.Int64FromInt64(1)<<libc.Int32FromInt32(5))
  14700. }
  14701. /* disable global advance width (for broken DynaLab TT CJK fonts) */
  14702. switch libfontconfig.XFcPatternGetBool(tls, pattern, __ccgo_ts+1341, 0, bp+84) {
  14703. case int32(_FcResultNoMatch):
  14704. *(*TFcBool)(unsafe.Pointer(bp + 84)) = int32(m_FcTrue)
  14705. case int32(_FcResultMatch):
  14706. default:
  14707. goto bail1
  14708. }
  14709. if !(*(*TFcBool)(unsafe.Pointer(bp + 84)) != 0) {
  14710. p10 = fi + 92
  14711. *(*TFT_Int)(unsafe.Pointer(p10)) = TFT_Int(int64(*(*TFT_Int)(unsafe.Pointer(p10))) | libc.Int64FromInt64(1)<<libc.Int32FromInt32(9))
  14712. }
  14713. /*
  14714. * Get requested spacing value
  14715. */
  14716. switch libfontconfig.XFcPatternGetInteger(tls, pattern, __ccgo_ts+1355, 0, fi+100) {
  14717. case int32(_FcResultNoMatch):
  14718. (*TXftFontInfo)(unsafe.Pointer(fi)).Fspacing = m_FC_PROPORTIONAL
  14719. case int32(_FcResultMatch):
  14720. default:
  14721. goto bail1
  14722. }
  14723. /*
  14724. * Check for minspace
  14725. */
  14726. switch libfontconfig.XFcPatternGetBool(tls, pattern, __ccgo_ts+660, 0, fi+104) {
  14727. case int32(_FcResultNoMatch):
  14728. (*TXftFontInfo)(unsafe.Pointer(fi)).Fminspace = m_FcFalse
  14729. case int32(_FcResultMatch):
  14730. default:
  14731. goto bail1
  14732. }
  14733. /*
  14734. * Check for fixed pixel spacing
  14735. */
  14736. switch libfontconfig.XFcPatternGetInteger(tls, pattern, __ccgo_ts+1363, 0, fi+108) {
  14737. case int32(_FcResultNoMatch):
  14738. (*TXftFontInfo)(unsafe.Pointer(fi)).Fchar_width = 0
  14739. case int32(_FcResultMatch):
  14740. if (*TXftFontInfo)(unsafe.Pointer(fi)).Fchar_width != 0 {
  14741. (*TXftFontInfo)(unsafe.Pointer(fi)).Fspacing = int32(m_FC_MONO)
  14742. }
  14743. default:
  14744. goto bail1
  14745. }
  14746. /*
  14747. * Step over hash value in the structure
  14748. */
  14749. hash = uint32(0)
  14750. hashp = fi + uintptr(1)*4
  14751. nhash = int32(libc.Uint64FromInt64(112)/libc.Uint64FromInt64(4) - libc.Uint64FromInt32(1))
  14752. for {
  14753. v11 = nhash
  14754. nhash--
  14755. if !(v11 != 0) {
  14756. break
  14757. }
  14758. v12 = hashp
  14759. hashp += 4
  14760. hash += *(*TFcChar32)(unsafe.Pointer(v12))
  14761. }
  14762. (*TXftFontInfo)(unsafe.Pointer(fi)).Fhash = hash
  14763. /*
  14764. * All done
  14765. */
  14766. return int32(m_FcTrue)
  14767. goto bail1
  14768. bail1:
  14769. ;
  14770. __XftReleaseFile(tls, (*TXftFontInfo)(unsafe.Pointer(fi)).Ffile)
  14771. (*TXftFontInfo)(unsafe.Pointer(fi)).Ffile = libc.UintptrFromInt32(0)
  14772. goto bail0
  14773. bail0:
  14774. ;
  14775. return m_FcFalse
  14776. return r
  14777. }
  14778. func _XftFontInfoEmpty(tls *libc.TLS, dpy uintptr, fi uintptr) {
  14779. if (*TXftFontInfo)(unsafe.Pointer(fi)).Ffile != 0 {
  14780. __XftReleaseFile(tls, (*TXftFontInfo)(unsafe.Pointer(fi)).Ffile)
  14781. }
  14782. }
  14783. func XXftFontInfoCreate(tls *libc.TLS, dpy uintptr, pattern uintptr) (r uintptr) {
  14784. var fi uintptr
  14785. _ = fi
  14786. fi = libc.Xmalloc(tls, uint64(112))
  14787. if !(fi != 0) {
  14788. return libc.UintptrFromInt32(0)
  14789. }
  14790. if !(_XftFontInfoFill(tls, dpy, pattern, fi) != 0) {
  14791. libc.Xfree(tls, fi)
  14792. fi = libc.UintptrFromInt32(0)
  14793. }
  14794. XXftMemAlloc(tls, int32(_XFT_MEM_FONT), uint64(112))
  14795. return fi
  14796. }
  14797. func XXftFontInfoDestroy(tls *libc.TLS, dpy uintptr, fi uintptr) {
  14798. _XftFontInfoEmpty(tls, dpy, fi)
  14799. XXftMemFree(tls, int32(_XFT_MEM_FONT), uint64(112))
  14800. libc.Xfree(tls, fi)
  14801. }
  14802. func XXftFontInfoHash(tls *libc.TLS, fi uintptr) (r TFcChar32) {
  14803. return (*TXftFontInfo)(unsafe.Pointer(fi)).Fhash
  14804. }
  14805. func XXftFontInfoEqual(tls *libc.TLS, a uintptr, b uintptr) (r TFcBool) {
  14806. return libc.BoolInt32(libc.Xmemcmp(tls, a, b, uint64(112)) == 0)
  14807. }
  14808. func XXftFontOpenInfo(tls *libc.TLS, dpy uintptr, pattern uintptr, fi uintptr) (r uintptr) {
  14809. bp := tls.Alloc(96)
  14810. defer tls.Free(96)
  14811. var alloc_size Tsize_t
  14812. var antialias, color TFcBool
  14813. var ascent, descent, height, i, v2, v4 int32
  14814. var bucket, font, format, info, v3 uintptr
  14815. var face TFT_Face
  14816. var hash_value, num_unicode, rehash_value TFcChar32
  14817. var num_glyphs TFT_UInt
  14818. var v6 uint64
  14819. var _ /* charset at bp+0 */ uintptr
  14820. var _ /* max_glyph_memory at bp+8 */ int32
  14821. var _ /* vector at bp+16 */ TFT_Vector
  14822. var _ /* vector at bp+32 */ TFT_Vector
  14823. _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = alloc_size, antialias, ascent, bucket, color, descent, face, font, format, hash_value, height, i, info, num_glyphs, num_unicode, rehash_value, v2, v3, v4, v6
  14824. info = X_XftDisplayInfoGet(tls, dpy, int32(m_True))
  14825. if !(info != 0) {
  14826. return libc.UintptrFromInt32(0)
  14827. }
  14828. /*
  14829. * Find a matching previously opened font
  14830. */
  14831. bucket = info + 472 + uintptr((*TXftFontInfo)(unsafe.Pointer(fi)).Fhash%uint32(m_XFT_NUM_FONT_HASH))*8
  14832. font = *(*uintptr)(unsafe.Pointer(bucket))
  14833. for {
  14834. if !(font != 0) {
  14835. break
  14836. }
  14837. if XXftFontInfoEqual(tls, font+48, fi) != 0 {
  14838. v3 = font + 160
  14839. v2 = *(*int32)(unsafe.Pointer(v3))
  14840. *(*int32)(unsafe.Pointer(v3))++
  14841. if !(v2 != 0) {
  14842. (*TXftDisplayInfo)(unsafe.Pointer(info)).Fnum_unref_fonts--
  14843. }
  14844. libfontconfig.XFcPatternDestroy(tls, pattern)
  14845. return font
  14846. }
  14847. goto _1
  14848. _1:
  14849. ;
  14850. font = (*TXftFontInt)(unsafe.Pointer(font)).Fhash_next
  14851. }
  14852. /*
  14853. * No existing font, create another.
  14854. */
  14855. if XXftDebug(tls)&int32(m_XFT_DBG_CACHE) != 0 {
  14856. libc.Xprintf(tls, __ccgo_ts+1373, libc.VaList(bp+56, (*TXftFtFile)(unsafe.Pointer((*TXftFontInfo)(unsafe.Pointer(fi)).Ffile)).Ffile, (*TXftFtFile)(unsafe.Pointer((*TXftFontInfo)(unsafe.Pointer(fi)).Ffile)).Fid, int32((*TXftFontInfo)(unsafe.Pointer(fi)).Fxsize)>>int32(6), int32((*TXftFontInfo)(unsafe.Pointer(fi)).Fysize)>>int32(6)))
  14857. }
  14858. if libfontconfig.XFcPatternGetInteger(tls, pattern, __ccgo_ts+201, 0, bp+8) != int32(_FcResultMatch) {
  14859. *(*int32)(unsafe.Pointer(bp + 8)) = libc.Int32FromInt32(1024) * libc.Int32FromInt32(1024)
  14860. }
  14861. face = __XftLockFile(tls, (*TXftFontInfo)(unsafe.Pointer(fi)).Ffile)
  14862. if !(face != 0) {
  14863. goto bail0
  14864. }
  14865. if !(X_XftSetFace(tls, (*TXftFontInfo)(unsafe.Pointer(fi)).Ffile, (*TXftFontInfo)(unsafe.Pointer(fi)).Fxsize, (*TXftFontInfo)(unsafe.Pointer(fi)).Fysize, fi+56) != 0) {
  14866. goto bail1
  14867. }
  14868. /*
  14869. * Get the set of Unicode codepoints covered by the font.
  14870. * If the incoming pattern doesn't provide this data, go
  14871. * off and compute it. Yes, this is expensive, but it's
  14872. * required to map Unicode to glyph indices.
  14873. */
  14874. if libfontconfig.XFcPatternGetCharSet(tls, pattern, __ccgo_ts+1400, 0, bp) == int32(_FcResultMatch) {
  14875. *(*uintptr)(unsafe.Pointer(bp)) = libfontconfig.XFcCharSetCopy(tls, *(*uintptr)(unsafe.Pointer(bp)))
  14876. } else {
  14877. *(*uintptr)(unsafe.Pointer(bp)) = libfontconfig.XFcFreeTypeCharSet(tls, face, libfontconfig.XFcConfigGetBlanks(tls, libc.UintptrFromInt32(0)))
  14878. }
  14879. antialias = (*TXftFontInfo)(unsafe.Pointer(fi)).Fantialias
  14880. if !((*TFT_FaceRec_)(unsafe.Pointer(face)).Fface_flags&(libc.Int64FromInt64(1)<<libc.Int32FromInt32(0)) != 0) {
  14881. antialias = m_FcFalse
  14882. }
  14883. if !!((*TFT_FaceRec_)(unsafe.Pointer(face)).Fface_flags&(libc.Int64FromInt64(1)<<libc.Int32FromInt32(14)) != 0) {
  14884. v4 = int32(m_FcTrue)
  14885. } else {
  14886. v4 = m_FcFalse
  14887. }
  14888. color = v4
  14889. /*
  14890. * Find the appropriate picture format
  14891. */
  14892. if (*TXftFontInfo)(unsafe.Pointer(fi)).Frender != 0 {
  14893. if color != 0 {
  14894. format = libxrender.XXRenderFindStandardFormat(tls, dpy, m_PictStandardARGB32)
  14895. } else {
  14896. if antialias != 0 {
  14897. switch (*TXftFontInfo)(unsafe.Pointer(fi)).Frgba {
  14898. case int32(m_FC_RGBA_RGB):
  14899. fallthrough
  14900. case int32(m_FC_RGBA_BGR):
  14901. fallthrough
  14902. case int32(m_FC_RGBA_VRGB):
  14903. fallthrough
  14904. case int32(m_FC_RGBA_VBGR):
  14905. format = libxrender.XXRenderFindStandardFormat(tls, dpy, m_PictStandardARGB32)
  14906. default:
  14907. format = libxrender.XXRenderFindStandardFormat(tls, dpy, int32(m_PictStandardA8))
  14908. break
  14909. }
  14910. } else {
  14911. format = libxrender.XXRenderFindStandardFormat(tls, dpy, int32(m_PictStandardA1))
  14912. }
  14913. }
  14914. if !(format != 0) {
  14915. goto bail2
  14916. }
  14917. } else {
  14918. format = libc.UintptrFromInt32(0)
  14919. }
  14920. if *(*uintptr)(unsafe.Pointer(bp)) != 0 {
  14921. num_unicode = libfontconfig.XFcCharSetCount(tls, *(*uintptr)(unsafe.Pointer(bp)))
  14922. hash_value = __XftHashSize(tls, num_unicode)
  14923. rehash_value = hash_value - uint32(2)
  14924. } else {
  14925. hash_value = uint32(0)
  14926. rehash_value = uint32(0)
  14927. }
  14928. /*
  14929. * Sometimes the glyphs are numbered 1..n, other times 0..n-1,
  14930. * accept either numbering scheme by making room in the table
  14931. */
  14932. num_glyphs = uint32((*TFT_FaceRec_)(unsafe.Pointer(face)).Fnum_glyphs) + uint32(1)
  14933. alloc_size = libc.Uint64FromInt64(256) + uint64(num_glyphs)*libc.Uint64FromInt64(8) + uint64(hash_value)*libc.Uint64FromInt64(8)
  14934. font = libc.Xmalloc(tls, alloc_size)
  14935. if !(font != 0) {
  14936. goto bail2
  14937. }
  14938. XXftMemAlloc(tls, int32(_XFT_MEM_FONT), alloc_size)
  14939. /*
  14940. * Public fields
  14941. */
  14942. if (*TXftFontInfo)(unsafe.Pointer(fi)).Ftransform != 0 {
  14943. (*(*TFT_Vector)(unsafe.Pointer(bp + 16))).Fx = 0
  14944. (*(*TFT_Vector)(unsafe.Pointer(bp + 16))).Fy = (*TFT_SizeRec_)(unsafe.Pointer((*TFT_FaceRec_)(unsafe.Pointer(face)).Fsize)).Fmetrics.Fdescender
  14945. libfreetype.XFT_Vector_Transform(tls, bp+16, fi+56)
  14946. descent = int32(-((*(*TFT_Vector)(unsafe.Pointer(bp + 16))).Fy >> libc.Int32FromInt32(6)))
  14947. (*(*TFT_Vector)(unsafe.Pointer(bp + 16))).Fx = 0
  14948. (*(*TFT_Vector)(unsafe.Pointer(bp + 16))).Fy = (*TFT_SizeRec_)(unsafe.Pointer((*TFT_FaceRec_)(unsafe.Pointer(face)).Fsize)).Fmetrics.Fascender
  14949. libfreetype.XFT_Vector_Transform(tls, bp+16, fi+56)
  14950. ascent = int32((*(*TFT_Vector)(unsafe.Pointer(bp + 16))).Fy >> libc.Int32FromInt32(6))
  14951. if (*TXftFontInfo)(unsafe.Pointer(fi)).Fminspace != 0 {
  14952. height = ascent + descent
  14953. } else {
  14954. (*(*TFT_Vector)(unsafe.Pointer(bp + 16))).Fx = 0
  14955. (*(*TFT_Vector)(unsafe.Pointer(bp + 16))).Fy = (*TFT_SizeRec_)(unsafe.Pointer((*TFT_FaceRec_)(unsafe.Pointer(face)).Fsize)).Fmetrics.Fheight
  14956. libfreetype.XFT_Vector_Transform(tls, bp+16, fi+56)
  14957. height = int32((*(*TFT_Vector)(unsafe.Pointer(bp + 16))).Fy >> libc.Int32FromInt32(6))
  14958. }
  14959. } else {
  14960. descent = -int32((*TFT_SizeRec_)(unsafe.Pointer((*TFT_FaceRec_)(unsafe.Pointer(face)).Fsize)).Fmetrics.Fdescender >> libc.Int32FromInt32(6))
  14961. ascent = int32((*TFT_SizeRec_)(unsafe.Pointer((*TFT_FaceRec_)(unsafe.Pointer(face)).Fsize)).Fmetrics.Fascender >> libc.Int32FromInt32(6))
  14962. if (*TXftFontInfo)(unsafe.Pointer(fi)).Fminspace != 0 {
  14963. height = ascent + descent
  14964. } else {
  14965. height = int32((*TFT_SizeRec_)(unsafe.Pointer((*TFT_FaceRec_)(unsafe.Pointer(face)).Fsize)).Fmetrics.Fheight >> libc.Int32FromInt32(6))
  14966. }
  14967. }
  14968. (*TXftFontInt)(unsafe.Pointer(font)).Fpublic.Fascent = ascent
  14969. (*TXftFontInt)(unsafe.Pointer(font)).Fpublic.Fdescent = descent
  14970. (*TXftFontInt)(unsafe.Pointer(font)).Fpublic.Fheight = height
  14971. if (*TXftFontInfo)(unsafe.Pointer(fi)).Fchar_width != 0 {
  14972. (*TXftFontInt)(unsafe.Pointer(font)).Fpublic.Fmax_advance_width = (*TXftFontInfo)(unsafe.Pointer(fi)).Fchar_width
  14973. } else {
  14974. if (*TXftFontInfo)(unsafe.Pointer(fi)).Ftransform != 0 {
  14975. (*(*TFT_Vector)(unsafe.Pointer(bp + 32))).Fx = (*TFT_SizeRec_)(unsafe.Pointer((*TFT_FaceRec_)(unsafe.Pointer(face)).Fsize)).Fmetrics.Fmax_advance
  14976. (*(*TFT_Vector)(unsafe.Pointer(bp + 32))).Fy = 0
  14977. libfreetype.XFT_Vector_Transform(tls, bp+32, fi+56)
  14978. (*TXftFontInt)(unsafe.Pointer(font)).Fpublic.Fmax_advance_width = int32((*(*TFT_Vector)(unsafe.Pointer(bp + 32))).Fx >> libc.Int32FromInt32(6))
  14979. } else {
  14980. (*TXftFontInt)(unsafe.Pointer(font)).Fpublic.Fmax_advance_width = int32((*TFT_SizeRec_)(unsafe.Pointer((*TFT_FaceRec_)(unsafe.Pointer(face)).Fsize)).Fmetrics.Fmax_advance >> libc.Int32FromInt32(6))
  14981. }
  14982. }
  14983. (*TXftFontInt)(unsafe.Pointer(font)).Fpublic.Fcharset = *(*uintptr)(unsafe.Pointer(bp))
  14984. (*TXftFontInt)(unsafe.Pointer(font)).Fpublic.Fpattern = pattern
  14985. /*
  14986. * Management fields
  14987. */
  14988. (*TXftFontInt)(unsafe.Pointer(font)).Fref = int32(1)
  14989. (*TXftFontInt)(unsafe.Pointer(font)).Fnext = (*TXftDisplayInfo)(unsafe.Pointer(info)).Ffonts
  14990. (*TXftDisplayInfo)(unsafe.Pointer(info)).Ffonts = font
  14991. (*TXftFontInt)(unsafe.Pointer(font)).Fhash_next = *(*uintptr)(unsafe.Pointer(bucket))
  14992. *(*uintptr)(unsafe.Pointer(bucket)) = font
  14993. /*
  14994. * Copy the info over
  14995. */
  14996. (*TXftFontInt)(unsafe.Pointer(font)).Finfo = *(*TXftFontInfo)(unsafe.Pointer(fi))
  14997. /*
  14998. * reset the antialias field. It can't
  14999. * be set correctly until the font is opened,
  15000. * which doesn't happen in XftFontInfoFill
  15001. */
  15002. (*TXftFontInt)(unsafe.Pointer(font)).Finfo.Fantialias = antialias
  15003. /*
  15004. * Set color value, which is only known once the
  15005. * font was loaded
  15006. */
  15007. (*TXftFontInt)(unsafe.Pointer(font)).Finfo.Fcolor = color
  15008. /*
  15009. * bump XftFile reference count
  15010. */
  15011. (*TXftFtFile)(unsafe.Pointer((*TXftFontInt)(unsafe.Pointer(font)).Finfo.Ffile)).Fref++
  15012. /*
  15013. * Per glyph information
  15014. */
  15015. (*TXftFontInt)(unsafe.Pointer(font)).Fglyphs = font + libc.UintptrFromInt32(1)*256
  15016. libc.X__builtin___memset_chk(tls, (*TXftFontInt)(unsafe.Pointer(font)).Fglyphs, int32('\000'), uint64(num_glyphs)*uint64(8), uint64(libc.X__builtin_object_size(tls, (*TXftFontInt)(unsafe.Pointer(font)).Fglyphs, 0)))
  15017. (*TXftFontInt)(unsafe.Pointer(font)).Fnum_glyphs = num_glyphs
  15018. /*
  15019. * Memory-usage tracking
  15020. */
  15021. (*TXftFontInt)(unsafe.Pointer(font)).Fnewest = libc.Uint32FromInt32(m___INT_MAX__)*libc.Uint32FromUint32(2) + libc.Uint32FromUint32(1)
  15022. (*TXftFontInt)(unsafe.Pointer(font)).Ftotal_inuse = uint32(0)
  15023. /*
  15024. * Unicode hash table information
  15025. */
  15026. (*TXftFontInt)(unsafe.Pointer(font)).Fhash_table = (*TXftFontInt)(unsafe.Pointer(font)).Fglyphs + uintptr((*TXftFontInt)(unsafe.Pointer(font)).Fnum_glyphs)*8
  15027. i = 0
  15028. for {
  15029. if !(uint32(i) < hash_value) {
  15030. break
  15031. }
  15032. (*(*TXftUcsHash)(unsafe.Pointer((*TXftFontInt)(unsafe.Pointer(font)).Fhash_table + uintptr(i)*8))).Fucs4 = uint32(^libc.Int32FromInt32(0))
  15033. (*(*TXftUcsHash)(unsafe.Pointer((*TXftFontInt)(unsafe.Pointer(font)).Fhash_table + uintptr(i)*8))).Fglyph = uint32(0)
  15034. goto _5
  15035. _5:
  15036. ;
  15037. i++
  15038. }
  15039. (*TXftFontInt)(unsafe.Pointer(font)).Fhash_value = int32(hash_value)
  15040. (*TXftFontInt)(unsafe.Pointer(font)).Frehash_value = int32(rehash_value)
  15041. /*
  15042. * X specific fields
  15043. */
  15044. (*TXftFontInt)(unsafe.Pointer(font)).Fglyphset = uint64(0)
  15045. (*TXftFontInt)(unsafe.Pointer(font)).Fformat = format
  15046. /*
  15047. * Glyph memory management fields
  15048. */
  15049. (*TXftFontInt)(unsafe.Pointer(font)).Fglyph_memory = uint64(0)
  15050. (*TXftFontInt)(unsafe.Pointer(font)).Fmax_glyph_memory = uint64(*(*int32)(unsafe.Pointer(bp + 8)))
  15051. (*TXftFontInt)(unsafe.Pointer(font)).Ftrack_mem_usage = (*TXftDisplayInfo)(unsafe.Pointer(info)).Ftrack_mem_usage
  15052. (*TXftFontInt)(unsafe.Pointer(font)).Fuse_free_glyphs = (*TXftDisplayInfo)(unsafe.Pointer(info)).Fuse_free_glyphs
  15053. if (*TXftFontInt)(unsafe.Pointer(font)).Ftrack_mem_usage != 0 {
  15054. v6 = uint64(48)
  15055. } else {
  15056. v6 = uint64(40)
  15057. }
  15058. (*TXftFontInt)(unsafe.Pointer(font)).Fsizeof_glyph = uint32(v6)
  15059. __XftUnlockFile(tls, (*TXftFontInfo)(unsafe.Pointer(fi)).Ffile)
  15060. return font
  15061. goto bail2
  15062. bail2:
  15063. ;
  15064. libfontconfig.XFcCharSetDestroy(tls, *(*uintptr)(unsafe.Pointer(bp)))
  15065. goto bail1
  15066. bail1:
  15067. ;
  15068. __XftUnlockFile(tls, (*TXftFontInfo)(unsafe.Pointer(fi)).Ffile)
  15069. goto bail0
  15070. bail0:
  15071. ;
  15072. return libc.UintptrFromInt32(0)
  15073. return r
  15074. }
  15075. func XXftFontOpenPattern(tls *libc.TLS, dpy uintptr, pattern uintptr) (r uintptr) {
  15076. bp := tls.Alloc(112)
  15077. defer tls.Free(112)
  15078. var font uintptr
  15079. var _ /* info at bp+0 */ TXftFontInfo
  15080. _ = font
  15081. if !(_XftFontInfoFill(tls, dpy, pattern, bp) != 0) {
  15082. return libc.UintptrFromInt32(0)
  15083. }
  15084. font = XXftFontOpenInfo(tls, dpy, pattern, bp)
  15085. _XftFontInfoEmpty(tls, dpy, bp)
  15086. return font
  15087. }
  15088. func XXftFontCopy(tls *libc.TLS, dpy uintptr, public uintptr) (r uintptr) {
  15089. var font uintptr
  15090. _ = font
  15091. font = public
  15092. (*TXftFontInt)(unsafe.Pointer(font)).Fref++
  15093. return public
  15094. }
  15095. func _XftFontDestroy(tls *libc.TLS, dpy uintptr, public uintptr) {
  15096. var font, info, xftg uintptr
  15097. var i TFT_UInt
  15098. _, _, _, _ = font, i, info, xftg
  15099. info = X_XftDisplayInfoGet(tls, dpy, m_False)
  15100. font = public
  15101. /* note reduction in memory use */
  15102. if info != 0 {
  15103. *(*uint64)(unsafe.Pointer(info + 56)) -= (*TXftFontInt)(unsafe.Pointer(font)).Fglyph_memory
  15104. }
  15105. /* Clean up the info */
  15106. _XftFontInfoEmpty(tls, dpy, font+48)
  15107. /* Free the glyphset */
  15108. if (*TXftFontInt)(unsafe.Pointer(font)).Fglyphset != 0 {
  15109. libxrender.XXRenderFreeGlyphSet(tls, dpy, (*TXftFontInt)(unsafe.Pointer(font)).Fglyphset)
  15110. }
  15111. /* Free the glyphs */
  15112. i = uint32(0)
  15113. for {
  15114. if !(i < (*TXftFontInt)(unsafe.Pointer(font)).Fnum_glyphs) {
  15115. break
  15116. }
  15117. xftg = *(*uintptr)(unsafe.Pointer((*TXftFontInt)(unsafe.Pointer(font)).Fglyphs + uintptr(i)*8))
  15118. if xftg != 0 {
  15119. if (*TXftGlyph)(unsafe.Pointer(xftg)).Fbitmap != 0 {
  15120. libc.Xfree(tls, (*TXftGlyph)(unsafe.Pointer(xftg)).Fbitmap)
  15121. }
  15122. libc.Xfree(tls, xftg)
  15123. }
  15124. goto _1
  15125. _1:
  15126. ;
  15127. i++
  15128. }
  15129. /* Free the pattern and the charset */
  15130. libfontconfig.XFcPatternDestroy(tls, (*TXftFontInt)(unsafe.Pointer(font)).Fpublic.Fpattern)
  15131. libfontconfig.XFcCharSetDestroy(tls, (*TXftFontInt)(unsafe.Pointer(font)).Fpublic.Fcharset)
  15132. /* Finally, free the font structure */
  15133. XXftMemFree(tls, int32(_XFT_MEM_FONT), libc.Uint64FromInt64(256)+uint64((*TXftFontInt)(unsafe.Pointer(font)).Fnum_glyphs)*libc.Uint64FromInt64(8)+uint64((*TXftFontInt)(unsafe.Pointer(font)).Fhash_value)*libc.Uint64FromInt64(8))
  15134. libc.Xfree(tls, font)
  15135. }
  15136. func _XftFontFindNthUnref(tls *libc.TLS, info uintptr, n int32) (r uintptr) {
  15137. var font, public uintptr
  15138. var v2 int32
  15139. var v3 bool
  15140. _, _, _, _ = font, public, v2, v3
  15141. public = (*TXftDisplayInfo)(unsafe.Pointer(info)).Ffonts
  15142. for {
  15143. if !(public != 0) {
  15144. break
  15145. }
  15146. font = public
  15147. if v3 = !((*TXftFontInt)(unsafe.Pointer(font)).Fref != 0); v3 {
  15148. v2 = n
  15149. n--
  15150. }
  15151. if v3 && !(v2 != 0) {
  15152. break
  15153. }
  15154. goto _1
  15155. _1:
  15156. ;
  15157. public = (*TXftFontInt)(unsafe.Pointer(font)).Fnext
  15158. }
  15159. return public
  15160. }
  15161. func XXftFontManageMemory(tls *libc.TLS, dpy uintptr) {
  15162. bp := tls.Alloc(48)
  15163. defer tls.Free(48)
  15164. var font, info, prev, public uintptr
  15165. _, _, _, _ = font, info, prev, public
  15166. info = X_XftDisplayInfoGet(tls, dpy, m_False)
  15167. if !(info != 0) {
  15168. return
  15169. }
  15170. for (*TXftDisplayInfo)(unsafe.Pointer(info)).Fnum_unref_fonts > (*TXftDisplayInfo)(unsafe.Pointer(info)).Fmax_unref_fonts {
  15171. public = _XftFontFindNthUnref(tls, info, libc.Xrand(tls)%(*TXftDisplayInfo)(unsafe.Pointer(info)).Fnum_unref_fonts)
  15172. font = public
  15173. if XXftDebug(tls)&int32(m_XFT_DBG_CACHE) != 0 {
  15174. libc.Xprintf(tls, __ccgo_ts+1408, libc.VaList(bp+8, (*TXftFtFile)(unsafe.Pointer((*TXftFontInt)(unsafe.Pointer(font)).Finfo.Ffile)).Ffile, (*TXftFtFile)(unsafe.Pointer((*TXftFontInt)(unsafe.Pointer(font)).Finfo.Ffile)).Fid, int32((*TXftFontInt)(unsafe.Pointer(font)).Finfo.Fxsize)>>int32(6), int32((*TXftFontInt)(unsafe.Pointer(font)).Finfo.Fysize)>>int32(6)))
  15175. }
  15176. /* Unhook from display list */
  15177. prev = info + 40
  15178. for {
  15179. if !(*(*uintptr)(unsafe.Pointer(prev)) != 0) {
  15180. break
  15181. }
  15182. if *(*uintptr)(unsafe.Pointer(prev)) == public {
  15183. *(*uintptr)(unsafe.Pointer(prev)) = (*TXftFontInt)(unsafe.Pointer(font)).Fnext
  15184. break
  15185. }
  15186. goto _1
  15187. _1:
  15188. ;
  15189. prev = *(*uintptr)(unsafe.Pointer(prev)) + 32
  15190. }
  15191. /* Unhook from hash list */
  15192. prev = info + 472 + uintptr((*TXftFontInt)(unsafe.Pointer(font)).Finfo.Fhash%uint32(m_XFT_NUM_FONT_HASH))*8
  15193. for {
  15194. if !(*(*uintptr)(unsafe.Pointer(prev)) != 0) {
  15195. break
  15196. }
  15197. if *(*uintptr)(unsafe.Pointer(prev)) == public {
  15198. *(*uintptr)(unsafe.Pointer(prev)) = (*TXftFontInt)(unsafe.Pointer(font)).Fhash_next
  15199. break
  15200. }
  15201. goto _2
  15202. _2:
  15203. ;
  15204. prev = *(*uintptr)(unsafe.Pointer(prev)) + 40
  15205. }
  15206. /* Destroy the font */
  15207. _XftFontDestroy(tls, dpy, public)
  15208. (*TXftDisplayInfo)(unsafe.Pointer(info)).Fnum_unref_fonts--
  15209. }
  15210. }
  15211. func XXftFontClose(tls *libc.TLS, dpy uintptr, public uintptr) {
  15212. var font, info, v2 uintptr
  15213. var v1 int32
  15214. _, _, _, _ = font, info, v1, v2
  15215. info = X_XftDisplayInfoGet(tls, dpy, m_False)
  15216. font = public
  15217. v2 = font + 160
  15218. *(*int32)(unsafe.Pointer(v2))--
  15219. v1 = *(*int32)(unsafe.Pointer(v2))
  15220. if v1 != 0 {
  15221. return
  15222. }
  15223. if info != 0 {
  15224. (*TXftDisplayInfo)(unsafe.Pointer(info)).Fnum_unref_fonts++
  15225. XXftFontManageMemory(tls, dpy)
  15226. } else {
  15227. _XftFontDestroy(tls, dpy, public)
  15228. }
  15229. }
  15230. func XXftInitFtLibrary(tls *libc.TLS) (r TFcBool) {
  15231. if X_XftFTlibrary != 0 {
  15232. return int32(m_FcTrue)
  15233. }
  15234. if libfreetype.XFT_Init_FreeType(tls, uintptr(unsafe.Pointer(&X_XftFTlibrary))) != 0 {
  15235. return m_FcFalse
  15236. }
  15237. return int32(m_FcTrue)
  15238. }
  15239. const m_FT_LCD_FILTER_FIVE_TAPS = 5
  15240. const m_FT_LOAD_DEFAULT2 = 0x0
  15241. const m_FT_PARAM_TAG_IGNORE_PREFERRED_FAMILY = "FT_PARAM_TAG_IGNORE_TYPOGRAPHIC_FAMILY"
  15242. const m_FT_PARAM_TAG_IGNORE_PREFERRED_SUBFAMILY = "FT_PARAM_TAG_IGNORE_TYPOGRAPHIC_SUBFAMILY"
  15243. const m_ft_glyph_bbox_gridfit = "FT_GLYPH_BBOX_GRIDFIT"
  15244. const m_ft_glyph_bbox_pixels = "FT_GLYPH_BBOX_PIXELS"
  15245. const m_ft_glyph_bbox_subpixels = "FT_GLYPH_BBOX_SUBPIXELS"
  15246. const m_ft_glyph_bbox_truncate = "FT_GLYPH_BBOX_TRUNCATE"
  15247. const m_ft_glyph_bbox_unscaled = "FT_GLYPH_BBOX_UNSCALED"
  15248. type TFT_Orientation = int32
  15249. type _FT_Orientation_ = int32
  15250. const _FT_ORIENTATION_TRUETYPE = 0
  15251. const _FT_ORIENTATION_POSTSCRIPT = 1
  15252. const _FT_ORIENTATION_FILL_RIGHT = 0
  15253. const _FT_ORIENTATION_FILL_LEFT = 1
  15254. const _FT_ORIENTATION_NONE = 2
  15255. type TFT_LcdFilter = int32
  15256. type _FT_LcdFilter_ = int32
  15257. const _FT_LCD_FILTER_NONE = 0
  15258. const _FT_LCD_FILTER_DEFAULT = 1
  15259. const _FT_LCD_FILTER_LIGHT = 2
  15260. const _FT_LCD_FILTER_LEGACY1 = 3
  15261. const _FT_LCD_FILTER_LEGACY = 16
  15262. const _FT_LCD_FILTER_MAX = 17
  15263. type TFT_LcdFiveTapFilter = [5]TFT_Byte
  15264. type TFT_Glyph = uintptr
  15265. type TFT_GlyphRec_ = struct {
  15266. Flibrary TFT_Library
  15267. Fclazz uintptr
  15268. Fformat TFT_Glyph_Format
  15269. Fadvance TFT_Vector
  15270. }
  15271. type TFT_GlyphRec = struct {
  15272. Flibrary TFT_Library
  15273. Fclazz uintptr
  15274. Fformat TFT_Glyph_Format
  15275. Fadvance TFT_Vector
  15276. }
  15277. type TFT_BitmapGlyph = uintptr
  15278. type TFT_BitmapGlyphRec_ = struct {
  15279. Froot TFT_GlyphRec
  15280. Fleft TFT_Int
  15281. Ftop TFT_Int
  15282. Fbitmap TFT_Bitmap
  15283. }
  15284. type TFT_BitmapGlyphRec = struct {
  15285. Froot TFT_GlyphRec
  15286. Fleft TFT_Int
  15287. Ftop TFT_Int
  15288. Fbitmap TFT_Bitmap
  15289. }
  15290. type TFT_OutlineGlyph = uintptr
  15291. type TFT_OutlineGlyphRec_ = struct {
  15292. Froot TFT_GlyphRec
  15293. Foutline TFT_Outline
  15294. }
  15295. type TFT_OutlineGlyphRec = struct {
  15296. Froot TFT_GlyphRec
  15297. Foutline TFT_Outline
  15298. }
  15299. type TFT_Glyph_BBox_Mode = int32
  15300. type _FT_Glyph_BBox_Mode_ = int32
  15301. const _FT_GLYPH_BBOX_UNSCALED = 0
  15302. const _FT_GLYPH_BBOX_SUBPIXELS = 0
  15303. const _FT_GLYPH_BBOX_GRIDFIT = 1
  15304. const _FT_GLYPH_BBOX_TRUNCATE = 2
  15305. const _FT_GLYPH_BBOX_PIXELS = 3
  15306. /* */
  15307. /* END */
  15308. /* Local Variables: */
  15309. /* coding: utf-8 */
  15310. /* End: */
  15311. type Tm3x3 = [3][3]float64
  15312. func _m3x3_uniform(tls *libc.TLS, m uintptr) {
  15313. var v1, v2, v3, v4, v5, v6, v7 float64
  15314. _, _, _, _, _, _, _ = v1, v2, v3, v4, v5, v6, v7
  15315. v2 = libc.Float64FromFloat64(1)
  15316. *(*float64)(unsafe.Pointer(m + 2*24 + 2*8)) = v2
  15317. v1 = v2
  15318. *(*float64)(unsafe.Pointer(m + 1*24 + 1*8)) = v1
  15319. *(*float64)(unsafe.Pointer(m)) = v1
  15320. v7 = libc.Float64FromInt32(0)
  15321. *(*float64)(unsafe.Pointer(m + 2*24 + 1*8)) = v7
  15322. v6 = v7
  15323. *(*float64)(unsafe.Pointer(m + 2*24)) = v6
  15324. v5 = v6
  15325. *(*float64)(unsafe.Pointer(m + 1*24 + 2*8)) = v5
  15326. v4 = v5
  15327. *(*float64)(unsafe.Pointer(m + 2*8)) = v4
  15328. v3 = v4
  15329. *(*float64)(unsafe.Pointer(m + 1*24)) = v3
  15330. *(*float64)(unsafe.Pointer(m + 1*8)) = v3
  15331. }
  15332. func _m3x3_transform(tls *libc.TLS, v uintptr, m uintptr) {
  15333. var x, y float64
  15334. _, _ = x, y
  15335. x = float64((*TFT_Vector)(unsafe.Pointer(v)).Fx)
  15336. y = float64((*TFT_Vector)(unsafe.Pointer(v)).Fy)
  15337. (*TFT_Vector)(unsafe.Pointer(v)).Fx = int64(x**(*float64)(unsafe.Pointer(m)) + y**(*float64)(unsafe.Pointer(m + 1*8)) + *(*float64)(unsafe.Pointer(m + 2*8)) + libc.Float64FromFloat64(0.5))
  15338. (*TFT_Vector)(unsafe.Pointer(v)).Fy = int64(x**(*float64)(unsafe.Pointer(m + 1*24)) + y**(*float64)(unsafe.Pointer(m + 1*24 + 1*8)) + *(*float64)(unsafe.Pointer(m + 1*24 + 2*8)) + libc.Float64FromFloat64(0.5))
  15339. }
  15340. func _m3x3_invert(tls *libc.TLS, m uintptr, mi uintptr) {
  15341. var det float64
  15342. _ = det
  15343. det = *(*float64)(unsafe.Pointer(m)) * (*(*float64)(unsafe.Pointer(m + 1*24 + 1*8))**(*float64)(unsafe.Pointer(m + 2*24 + 2*8)) - *(*float64)(unsafe.Pointer(m + 1*24 + 2*8))**(*float64)(unsafe.Pointer(m + 2*24 + 1*8)))
  15344. det -= *(*float64)(unsafe.Pointer(m + 1*8)) * (*(*float64)(unsafe.Pointer(m + 1*24))**(*float64)(unsafe.Pointer(m + 2*24 + 2*8)) - *(*float64)(unsafe.Pointer(m + 1*24 + 2*8))**(*float64)(unsafe.Pointer(m + 2*24)))
  15345. det += *(*float64)(unsafe.Pointer(m + 2*8)) * (*(*float64)(unsafe.Pointer(m + 1*24))**(*float64)(unsafe.Pointer(m + 2*24 + 1*8)) - *(*float64)(unsafe.Pointer(m + 1*24 + 1*8))**(*float64)(unsafe.Pointer(m + 2*24)))
  15346. det = float64(1) / det
  15347. *(*float64)(unsafe.Pointer(mi)) = det * (*(*float64)(unsafe.Pointer(m + 1*24 + 1*8))**(*float64)(unsafe.Pointer(m + 2*24 + 2*8)) - *(*float64)(unsafe.Pointer(m + 1*24 + 2*8))**(*float64)(unsafe.Pointer(m + 2*24 + 1*8)))
  15348. *(*float64)(unsafe.Pointer(mi + 1*24)) = det * (*(*float64)(unsafe.Pointer(m + 1*24 + 2*8))**(*float64)(unsafe.Pointer(m + 2*24)) - *(*float64)(unsafe.Pointer(m + 1*24))**(*float64)(unsafe.Pointer(m + 2*24 + 2*8)))
  15349. *(*float64)(unsafe.Pointer(mi + 2*24)) = det * (*(*float64)(unsafe.Pointer(m + 1*24))**(*float64)(unsafe.Pointer(m + 2*24 + 1*8)) - *(*float64)(unsafe.Pointer(m + 1*24 + 1*8))**(*float64)(unsafe.Pointer(m + 2*24)))
  15350. *(*float64)(unsafe.Pointer(mi + 1*8)) = det * (*(*float64)(unsafe.Pointer(m + 2*8))**(*float64)(unsafe.Pointer(m + 2*24 + 1*8)) - *(*float64)(unsafe.Pointer(m + 1*8))**(*float64)(unsafe.Pointer(m + 2*24 + 2*8)))
  15351. *(*float64)(unsafe.Pointer(mi + 1*24 + 1*8)) = det * (*(*float64)(unsafe.Pointer(m))**(*float64)(unsafe.Pointer(m + 2*24 + 2*8)) - *(*float64)(unsafe.Pointer(m + 2*8))**(*float64)(unsafe.Pointer(m + 2*24)))
  15352. *(*float64)(unsafe.Pointer(mi + 2*24 + 1*8)) = det * (*(*float64)(unsafe.Pointer(m + 1*8))**(*float64)(unsafe.Pointer(m + 2*24)) - *(*float64)(unsafe.Pointer(m))**(*float64)(unsafe.Pointer(m + 2*24 + 1*8)))
  15353. *(*float64)(unsafe.Pointer(mi + 2*8)) = det * (*(*float64)(unsafe.Pointer(m + 1*8))**(*float64)(unsafe.Pointer(m + 1*24 + 2*8)) - *(*float64)(unsafe.Pointer(m + 2*8))**(*float64)(unsafe.Pointer(m + 1*24 + 1*8)))
  15354. *(*float64)(unsafe.Pointer(mi + 1*24 + 2*8)) = det * (*(*float64)(unsafe.Pointer(m + 2*8))**(*float64)(unsafe.Pointer(m + 1*24)) - *(*float64)(unsafe.Pointer(m))**(*float64)(unsafe.Pointer(m + 1*24 + 2*8)))
  15355. *(*float64)(unsafe.Pointer(mi + 2*24 + 2*8)) = det * (*(*float64)(unsafe.Pointer(m))**(*float64)(unsafe.Pointer(m + 1*24 + 1*8)) - *(*float64)(unsafe.Pointer(m + 1*8))**(*float64)(unsafe.Pointer(m + 1*24)))
  15356. }
  15357. /*
  15358. * Validate the memory info for a font
  15359. */
  15360. func __XftFontValidateMemory(tls *libc.TLS, dpy uintptr, public uintptr) {
  15361. bp := tls.Alloc(32)
  15362. defer tls.Free(32)
  15363. var font, xftg uintptr
  15364. var glyph_memory uint64
  15365. var glyphindex TFT_UInt
  15366. _, _, _, _ = font, glyph_memory, glyphindex, xftg
  15367. font = public
  15368. glyph_memory = uint64(0)
  15369. glyphindex = uint32(0)
  15370. for {
  15371. if !(glyphindex < (*TXftFontInt)(unsafe.Pointer(font)).Fnum_glyphs) {
  15372. break
  15373. }
  15374. xftg = *(*uintptr)(unsafe.Pointer((*TXftFontInt)(unsafe.Pointer(font)).Fglyphs + uintptr(glyphindex)*8))
  15375. if xftg != 0 {
  15376. glyph_memory += (*TXftGlyph)(unsafe.Pointer(xftg)).Fglyph_memory
  15377. }
  15378. goto _1
  15379. _1:
  15380. ;
  15381. glyphindex++
  15382. }
  15383. if glyph_memory != (*TXftFontInt)(unsafe.Pointer(font)).Fglyph_memory {
  15384. libc.Xprintf(tls, __ccgo_ts+1452, libc.VaList(bp+8, (*TXftFontInt)(unsafe.Pointer(font)).Fglyph_memory, glyph_memory))
  15385. }
  15386. }
  15387. // C documentation
  15388. //
  15389. // /*
  15390. // * Validate the glyph usage-links for a font.
  15391. // */
  15392. func __XftValidateGlyphUsage(tls *libc.TLS, font uintptr) {
  15393. bp := tls.Alloc(32)
  15394. defer tls.Free(32)
  15395. var forward, next, reverse, v2, v4 TFT_UInt
  15396. var x1st, xuse uintptr
  15397. _, _, _, _, _, _, _ = forward, next, reverse, x1st, xuse, v2, v4
  15398. if (*TXftFontInt)(unsafe.Pointer(font)).Fnewest != libc.Uint32FromInt32(m___INT_MAX__)*libc.Uint32FromUint32(2)+libc.Uint32FromUint32(1) {
  15399. x1st = *(*uintptr)(unsafe.Pointer((*TXftFontInt)(unsafe.Pointer(font)).Fglyphs + uintptr((*TXftFontInt)(unsafe.Pointer(font)).Fnewest)*8))
  15400. xuse = x1st
  15401. forward = uint32(1)
  15402. next = (*TXftGlyphUsage)(unsafe.Pointer(x1st)).Fnewer
  15403. for {
  15404. if !(xuse != libc.UintptrFromInt32(0) && next != (*TXftFontInt)(unsafe.Pointer(font)).Fnewest) {
  15405. break
  15406. }
  15407. if next >= (*TXftFontInt)(unsafe.Pointer(font)).Fnum_glyphs {
  15408. libc.Xprintf(tls, __ccgo_ts+1511, libc.VaList(bp+8, next))
  15409. break
  15410. }
  15411. forward++
  15412. v2 = forward
  15413. if v2 > (*TXftFontInt)(unsafe.Pointer(font)).Ftotal_inuse {
  15414. libc.Xprintf(tls, __ccgo_ts+1534, libc.VaList(bp+8, forward, (*TXftFontInt)(unsafe.Pointer(font)).Ftotal_inuse))
  15415. if forward > (*TXftFontInt)(unsafe.Pointer(font)).Ftotal_inuse+uint32(10) {
  15416. break
  15417. }
  15418. }
  15419. xuse = *(*uintptr)(unsafe.Pointer((*TXftFontInt)(unsafe.Pointer(font)).Fglyphs + uintptr(next)*8))
  15420. goto _1
  15421. _1:
  15422. ;
  15423. next = (*TXftGlyphUsage)(unsafe.Pointer(xuse)).Fnewer
  15424. }
  15425. if forward < (*TXftFontInt)(unsafe.Pointer(font)).Ftotal_inuse {
  15426. libc.Xprintf(tls, __ccgo_ts+1574, libc.VaList(bp+8, forward, (*TXftFontInt)(unsafe.Pointer(font)).Ftotal_inuse))
  15427. }
  15428. reverse = uint32(1)
  15429. next = (*TXftGlyphUsage)(unsafe.Pointer(x1st)).Folder
  15430. for {
  15431. if !(xuse != libc.UintptrFromInt32(0) && next != (*TXftFontInt)(unsafe.Pointer(font)).Fnewest) {
  15432. break
  15433. }
  15434. if next >= (*TXftFontInt)(unsafe.Pointer(font)).Fnum_glyphs {
  15435. libc.Xprintf(tls, __ccgo_ts+1613, libc.VaList(bp+8, next))
  15436. break
  15437. }
  15438. reverse++
  15439. v4 = reverse
  15440. if v4 > (*TXftFontInt)(unsafe.Pointer(font)).Ftotal_inuse {
  15441. libc.Xprintf(tls, __ccgo_ts+1534, libc.VaList(bp+8, reverse, (*TXftFontInt)(unsafe.Pointer(font)).Ftotal_inuse))
  15442. if reverse > (*TXftFontInt)(unsafe.Pointer(font)).Ftotal_inuse+uint32(10) {
  15443. break
  15444. }
  15445. }
  15446. xuse = *(*uintptr)(unsafe.Pointer((*TXftFontInt)(unsafe.Pointer(font)).Fglyphs + uintptr(next)*8))
  15447. goto _3
  15448. _3:
  15449. ;
  15450. next = (*TXftGlyphUsage)(unsafe.Pointer(xuse)).Folder
  15451. }
  15452. if reverse < (*TXftFontInt)(unsafe.Pointer(font)).Ftotal_inuse {
  15453. libc.Xprintf(tls, __ccgo_ts+1574, libc.VaList(bp+8, reverse, (*TXftFontInt)(unsafe.Pointer(font)).Ftotal_inuse))
  15454. }
  15455. if forward != reverse {
  15456. libc.Xprintf(tls, __ccgo_ts+1635, libc.VaList(bp+8, forward, reverse))
  15457. libc.Xexit(tls, int32(1))
  15458. }
  15459. }
  15460. }
  15461. // C documentation
  15462. //
  15463. // /* we sometimes need to convert the glyph bitmap in a FT_GlyphSlot
  15464. // * into a different format. For example, we want to convert a
  15465. // * FT_PIXEL_MODE_LCD or FT_PIXEL_MODE_LCD_V bitmap into a 32-bit
  15466. // * ARGB or ABGR bitmap.
  15467. // *
  15468. // * this function prepares a target descriptor for this operation.
  15469. // *
  15470. // * input :: target bitmap descriptor. The function will set its
  15471. // * 'width', 'rows' and 'pitch' fields, and only these
  15472. // *
  15473. // * slot :: the glyph slot containing the source bitmap. this
  15474. // * function assumes that slot->format == FT_GLYPH_FORMAT_BITMAP
  15475. // *
  15476. // * mode :: the requested final rendering mode. supported values are
  15477. // * MONO, NORMAL (i.e. gray), LCD and LCD_V
  15478. // *
  15479. // * the function returns the size in bytes of the corresponding buffer,
  15480. // * it's up to the caller to allocate the corresponding memory block
  15481. // * before calling _fill_xrender_bitmap
  15482. // *
  15483. // * it also returns -1 in case of error (e.g. incompatible arguments,
  15484. // * like trying to convert a gray bitmap into a monochrome one)
  15485. // */
  15486. func __compute_xrender_bitmap_size(tls *libc.TLS, target uintptr, slot TFT_GlyphSlot, mode TFT_Render_Mode, matrix uintptr, m uintptr) (r int32) {
  15487. bp := tls.Alloc(80)
  15488. defer tls.Free(80)
  15489. var bottom, height, left, pitch, right, top, width, xc, yc, v1, v2, v3, v6, v7 int32
  15490. var ftbit uintptr
  15491. var v10 float64
  15492. var v8 TFT_Fixed
  15493. var v9 TFT_Pos
  15494. var _ /* inverse at bp+32 */ TFT_Matrix
  15495. var _ /* mirror at bp+0 */ TFT_Matrix
  15496. var _ /* vector at bp+64 */ TFT_Vector
  15497. _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = bottom, ftbit, height, left, pitch, right, top, width, xc, yc, v1, v10, v2, v3, v6, v7, v8, v9
  15498. if (*TFT_GlyphSlotRec_)(unsafe.Pointer(slot)).Fformat != int32(_FT_GLYPH_FORMAT_BITMAP) {
  15499. return -int32(1)
  15500. }
  15501. /* compute the size of the final bitmap */
  15502. ftbit = slot + 152
  15503. width = int32((*TFT_Bitmap)(unsafe.Pointer(ftbit)).Fwidth)
  15504. height = int32((*TFT_Bitmap)(unsafe.Pointer(ftbit)).Frows)
  15505. if matrix != 0 && mode == int32(_FT_RENDER_MODE_NORMAL) {
  15506. v3 = libc.Int32FromInt32(0)
  15507. bottom = v3
  15508. v2 = v3
  15509. top = v2
  15510. v1 = v2
  15511. right = v1
  15512. left = v1
  15513. xc = 0
  15514. for {
  15515. if !(xc <= int32(1)) {
  15516. break
  15517. }
  15518. yc = 0
  15519. for {
  15520. if !(yc <= int32(1)) {
  15521. break
  15522. }
  15523. (*(*TFT_Vector)(unsafe.Pointer(bp + 64))).Fx = int64(xc * width)
  15524. (*(*TFT_Vector)(unsafe.Pointer(bp + 64))).Fy = int64(yc * height)
  15525. libfreetype.XFT_Vector_Transform(tls, bp+64, matrix)
  15526. if xc == 0 && yc == 0 {
  15527. v6 = int32((*(*TFT_Vector)(unsafe.Pointer(bp + 64))).Fx)
  15528. right = v6
  15529. left = v6
  15530. v7 = int32((*(*TFT_Vector)(unsafe.Pointer(bp + 64))).Fy)
  15531. bottom = v7
  15532. top = v7
  15533. } else {
  15534. if int64(left) > (*(*TFT_Vector)(unsafe.Pointer(bp + 64))).Fx {
  15535. left = int32((*(*TFT_Vector)(unsafe.Pointer(bp + 64))).Fx)
  15536. }
  15537. if int64(right) < (*(*TFT_Vector)(unsafe.Pointer(bp + 64))).Fx {
  15538. right = int32((*(*TFT_Vector)(unsafe.Pointer(bp + 64))).Fx)
  15539. }
  15540. if int64(bottom) > (*(*TFT_Vector)(unsafe.Pointer(bp + 64))).Fy {
  15541. bottom = int32((*(*TFT_Vector)(unsafe.Pointer(bp + 64))).Fy)
  15542. }
  15543. if int64(top) < (*(*TFT_Vector)(unsafe.Pointer(bp + 64))).Fy {
  15544. top = int32((*(*TFT_Vector)(unsafe.Pointer(bp + 64))).Fy)
  15545. }
  15546. }
  15547. goto _5
  15548. _5:
  15549. ;
  15550. yc++
  15551. }
  15552. goto _4
  15553. _4:
  15554. ;
  15555. xc++
  15556. }
  15557. width = right - left
  15558. height = top - bottom
  15559. (*(*TFT_Matrix)(unsafe.Pointer(bp))).Fxx = int64(+libc.Int32FromInt32(0x10000))
  15560. (*(*TFT_Matrix)(unsafe.Pointer(bp))).Fyy = int64(-int32(0x10000))
  15561. v8 = libc.Int64FromInt32(0)
  15562. (*(*TFT_Matrix)(unsafe.Pointer(bp))).Fyx = v8
  15563. (*(*TFT_Matrix)(unsafe.Pointer(bp))).Fxy = v8
  15564. *(*TFT_Matrix)(unsafe.Pointer(bp + 32)) = *(*TFT_Matrix)(unsafe.Pointer(matrix))
  15565. libfreetype.XFT_Matrix_Multiply(tls, bp, bp+32)
  15566. libfreetype.XFT_Matrix_Invert(tls, bp+32)
  15567. libfreetype.XFT_Matrix_Multiply(tls, bp, bp+32)
  15568. v9 = libc.Int64FromInt32(0)
  15569. (*(*TFT_Vector)(unsafe.Pointer(bp + 64))).Fy = v9
  15570. (*(*TFT_Vector)(unsafe.Pointer(bp + 64))).Fx = v9
  15571. libfreetype.XFT_Vector_Transform(tls, bp+64, bp+32)
  15572. left = int32((*(*TFT_Vector)(unsafe.Pointer(bp + 64))).Fx)
  15573. bottom = int32((*(*TFT_Vector)(unsafe.Pointer(bp + 64))).Fy)
  15574. (*(*TFT_Vector)(unsafe.Pointer(bp + 64))).Fx = int64(width)
  15575. (*(*TFT_Vector)(unsafe.Pointer(bp + 64))).Fy = int64(height)
  15576. libfreetype.XFT_Vector_Transform(tls, bp+64, bp+32)
  15577. right = int32((*(*TFT_Vector)(unsafe.Pointer(bp + 64))).Fx)
  15578. top = int32((*(*TFT_Vector)(unsafe.Pointer(bp + 64))).Fy)
  15579. left = right - left - int32((*TFT_Bitmap)(unsafe.Pointer(ftbit)).Fwidth)
  15580. bottom = top - bottom - int32((*TFT_Bitmap)(unsafe.Pointer(ftbit)).Frows)
  15581. *(*float64)(unsafe.Pointer(m)) = float64((*(*TFT_Matrix)(unsafe.Pointer(bp + 32))).Fxx) / libc.Float64FromInt32(0x10000)
  15582. *(*float64)(unsafe.Pointer(m + 1*8)) = float64((*(*TFT_Matrix)(unsafe.Pointer(bp + 32))).Fxy) / libc.Float64FromInt32(0x10000)
  15583. *(*float64)(unsafe.Pointer(m + 1*24)) = float64((*(*TFT_Matrix)(unsafe.Pointer(bp + 32))).Fyx) / libc.Float64FromInt32(0x10000)
  15584. *(*float64)(unsafe.Pointer(m + 1*24 + 1*8)) = float64((*(*TFT_Matrix)(unsafe.Pointer(bp + 32))).Fyy) / libc.Float64FromInt32(0x10000)
  15585. *(*float64)(unsafe.Pointer(m + 2*8)) = float64(-left) / libc.Float64FromInt32(2)
  15586. *(*float64)(unsafe.Pointer(m + 1*24 + 2*8)) = float64(-bottom) / libc.Float64FromInt32(2)
  15587. v10 = libc.Float64FromFloat64(0)
  15588. *(*float64)(unsafe.Pointer(m + 2*24 + 1*8)) = v10
  15589. *(*float64)(unsafe.Pointer(m + 2*24)) = v10
  15590. *(*float64)(unsafe.Pointer(m + 2*24 + 2*8)) = float64(1)
  15591. }
  15592. pitch = (width + int32(3)) & ^libc.Int32FromInt32(3)
  15593. switch int32((*TFT_Bitmap)(unsafe.Pointer(ftbit)).Fpixel_mode) {
  15594. case int32(_FT_PIXEL_MODE_MONO):
  15595. if mode == int32(_FT_RENDER_MODE_MONO) {
  15596. pitch = (width + int32(31)) & ^libc.Int32FromInt32(31) >> int32(3)
  15597. break
  15598. }
  15599. /* fall-through */
  15600. fallthrough
  15601. case int32(_FT_PIXEL_MODE_GRAY):
  15602. if mode == int32(_FT_RENDER_MODE_LCD) || mode == int32(_FT_RENDER_MODE_LCD_V) {
  15603. /* each pixel is replicated into a 32-bit ARGB value */
  15604. pitch = width * int32(4)
  15605. }
  15606. case int32(_FT_PIXEL_MODE_BGRA):
  15607. pitch = width * int32(4)
  15608. case int32(_FT_PIXEL_MODE_LCD):
  15609. if mode != int32(_FT_RENDER_MODE_LCD) {
  15610. return -int32(1)
  15611. }
  15612. /* horz pixel triplets are packed into 32-bit ARGB values */
  15613. width /= int32(3)
  15614. pitch = width * int32(4)
  15615. case int32(_FT_PIXEL_MODE_LCD_V):
  15616. if mode != int32(_FT_RENDER_MODE_LCD_V) {
  15617. return -int32(1)
  15618. }
  15619. /* vert pixel triplets are packed into 32-bit ARGB values */
  15620. height /= int32(3)
  15621. pitch = width * int32(4)
  15622. default: /* unsupported source format */
  15623. return -int32(1)
  15624. }
  15625. (*TFT_Bitmap)(unsafe.Pointer(target)).Fwidth = uint32(width)
  15626. (*TFT_Bitmap)(unsafe.Pointer(target)).Frows = uint32(height)
  15627. (*TFT_Bitmap)(unsafe.Pointer(target)).Fpitch = pitch
  15628. (*TFT_Bitmap)(unsafe.Pointer(target)).Fbuffer = libc.UintptrFromInt32(0)
  15629. return pitch * height
  15630. }
  15631. // C documentation
  15632. //
  15633. // /* this functions converts the glyph bitmap found in a FT_GlyphSlot
  15634. // * into a different format while scaling by applying the given matrix
  15635. // * (see _compute_xrender_bitmap_size)
  15636. // *
  15637. // * you should call this function after _compute_xrender_bitmap_size
  15638. // *
  15639. // * target :: target bitmap descriptor. Note that its 'buffer' pointer
  15640. // * must point to memory allocated by the caller
  15641. // *
  15642. // * source :: the source bitmap descriptor
  15643. // *
  15644. // * matrix :: the scaling matrix to apply
  15645. // */
  15646. func __scaled_fill_xrender_bitmap(tls *libc.TLS, target uintptr, source uintptr, m uintptr) {
  15647. bp := tls.Alloc(48)
  15648. defer tls.Free(48)
  15649. var dst_line, src, src_buf uintptr
  15650. var height, i, pitch, sample_count, sample_x, sample_y, sampling_height, sampling_width, src_pitch, src_x, src_y, width, x, y int32
  15651. var _ /* bgra at bp+32 */ [4]int32
  15652. var _ /* vector at bp+0 */ TFT_Vector
  15653. var _ /* vector0 at bp+16 */ TFT_Vector
  15654. _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = dst_line, height, i, pitch, sample_count, sample_x, sample_y, sampling_height, sampling_width, src, src_buf, src_pitch, src_x, src_y, width, x, y
  15655. src_buf = (*TFT_Bitmap)(unsafe.Pointer(source)).Fbuffer
  15656. dst_line = (*TFT_Bitmap)(unsafe.Pointer(target)).Fbuffer
  15657. src_pitch = (*TFT_Bitmap)(unsafe.Pointer(source)).Fpitch
  15658. width = int32((*TFT_Bitmap)(unsafe.Pointer(target)).Fwidth)
  15659. height = int32((*TFT_Bitmap)(unsafe.Pointer(target)).Frows)
  15660. pitch = (*TFT_Bitmap)(unsafe.Pointer(target)).Fpitch
  15661. if src_pitch < 0 {
  15662. src_buf -= uintptr(uint32(src_pitch) * ((*TFT_Bitmap)(unsafe.Pointer(source)).Frows - libc.Uint32FromInt32(1)))
  15663. }
  15664. /* compute how many source pixels a target pixel spans */
  15665. (*(*TFT_Vector)(unsafe.Pointer(bp))).Fx = int64(1)
  15666. (*(*TFT_Vector)(unsafe.Pointer(bp))).Fy = int64(1)
  15667. _m3x3_transform(tls, bp, m)
  15668. (*(*TFT_Vector)(unsafe.Pointer(bp + 16))).Fx = 0
  15669. (*(*TFT_Vector)(unsafe.Pointer(bp + 16))).Fy = 0
  15670. _m3x3_transform(tls, bp+16, m)
  15671. sampling_width = int32(((*(*TFT_Vector)(unsafe.Pointer(bp))).Fx - (*(*TFT_Vector)(unsafe.Pointer(bp + 16))).Fx) / libc.Int64FromInt32(2))
  15672. sampling_height = int32(((*(*TFT_Vector)(unsafe.Pointer(bp))).Fy - (*(*TFT_Vector)(unsafe.Pointer(bp + 16))).Fy) / libc.Int64FromInt32(2))
  15673. if sampling_width < 0 {
  15674. sampling_width = -sampling_width
  15675. }
  15676. if sampling_height < 0 {
  15677. sampling_height = -sampling_height
  15678. }
  15679. sample_count = (int32(2)*sampling_width + int32(1)) * (int32(2)*sampling_height + int32(1))
  15680. y = height
  15681. for {
  15682. if !(y > 0) {
  15683. break
  15684. }
  15685. x = 0
  15686. for {
  15687. if !(x < width) {
  15688. break
  15689. }
  15690. /* compute target pixel location in source space */
  15691. (*(*TFT_Vector)(unsafe.Pointer(bp))).Fx = int64(x)
  15692. (*(*TFT_Vector)(unsafe.Pointer(bp))).Fy = int64(height - y)
  15693. _m3x3_transform(tls, bp, m)
  15694. if int32((*TFT_Bitmap)(unsafe.Pointer(source)).Fpixel_mode) == int32(_FT_PIXEL_MODE_BGRA) {
  15695. if (*(*TFT_Vector)(unsafe.Pointer(bp))).Fx < int64(-sampling_width) || (*(*TFT_Vector)(unsafe.Pointer(bp))).Fx > int64((*TFT_Bitmap)(unsafe.Pointer(source)).Fwidth+uint32(sampling_width)) {
  15696. goto _2
  15697. }
  15698. if (*(*TFT_Vector)(unsafe.Pointer(bp))).Fy < int64(-sampling_height) || (*(*TFT_Vector)(unsafe.Pointer(bp))).Fy > int64((*TFT_Bitmap)(unsafe.Pointer(source)).Frows+uint32(sampling_height)) {
  15699. goto _2
  15700. }
  15701. } else {
  15702. if (*(*TFT_Vector)(unsafe.Pointer(bp))).Fx < 0 || (*(*TFT_Vector)(unsafe.Pointer(bp))).Fx >= int64((*TFT_Bitmap)(unsafe.Pointer(source)).Fwidth) {
  15703. goto _2
  15704. }
  15705. if (*(*TFT_Vector)(unsafe.Pointer(bp))).Fy < 0 || (*(*TFT_Vector)(unsafe.Pointer(bp))).Fy >= int64((*TFT_Bitmap)(unsafe.Pointer(source)).Frows) {
  15706. goto _2
  15707. }
  15708. }
  15709. switch int32((*TFT_Bitmap)(unsafe.Pointer(source)).Fpixel_mode) {
  15710. case int32(_FT_PIXEL_MODE_MONO): /* convert mono to 8-bit gray, scale using nearest pixel */
  15711. src = src_buf + uintptr((*(*TFT_Vector)(unsafe.Pointer(bp))).Fy*int64(src_pitch))
  15712. if int32(*(*uint8)(unsafe.Pointer(src + uintptr((*(*TFT_Vector)(unsafe.Pointer(bp))).Fx>>libc.Int32FromInt32(3)))))&(int32(0x80)>>((*(*TFT_Vector)(unsafe.Pointer(bp))).Fx&int64(7))) != 0 {
  15713. *(*uint8)(unsafe.Pointer(dst_line + uintptr(x))) = uint8(0xff)
  15714. }
  15715. case int32(_FT_PIXEL_MODE_GRAY): /* scale using nearest pixel */
  15716. src = src_buf + uintptr((*(*TFT_Vector)(unsafe.Pointer(bp))).Fy*int64(src_pitch))
  15717. *(*uint8)(unsafe.Pointer(dst_line + uintptr(x))) = *(*uint8)(unsafe.Pointer(src + uintptr((*(*TFT_Vector)(unsafe.Pointer(bp))).Fx)))
  15718. case int32(_FT_PIXEL_MODE_BGRA): /* scale by averaging all relevant source pixels, keep BGRA format */
  15719. *(*[4]int32)(unsafe.Pointer(bp + 32)) = [4]int32{}
  15720. sample_y = -sampling_height
  15721. for {
  15722. if !(sample_y < sampling_height+int32(1)) {
  15723. break
  15724. }
  15725. src_y = int32((*(*TFT_Vector)(unsafe.Pointer(bp))).Fy + int64(sample_y))
  15726. if src_y < 0 || int64(src_y) >= int64((*TFT_Bitmap)(unsafe.Pointer(source)).Frows) {
  15727. goto _3
  15728. }
  15729. src = src_buf + uintptr(src_y*src_pitch)
  15730. sample_x = -sampling_width
  15731. for {
  15732. if !(sample_x < sampling_width+int32(1)) {
  15733. break
  15734. }
  15735. src_x = int32((*(*TFT_Vector)(unsafe.Pointer(bp))).Fx + int64(sample_x))
  15736. if src_x < 0 || int64(src_x) >= int64((*TFT_Bitmap)(unsafe.Pointer(source)).Fwidth) {
  15737. goto _4
  15738. }
  15739. i = 0
  15740. for {
  15741. if !(i < int32(4)) {
  15742. break
  15743. }
  15744. *(*int32)(unsafe.Pointer(bp + 32 + uintptr(i)*4)) += int32(*(*uint8)(unsafe.Pointer(src + uintptr(src_x*int32(4)+i))))
  15745. goto _5
  15746. _5:
  15747. ;
  15748. i++
  15749. }
  15750. goto _4
  15751. _4:
  15752. ;
  15753. sample_x++
  15754. }
  15755. goto _3
  15756. _3:
  15757. ;
  15758. sample_y++
  15759. }
  15760. i = 0
  15761. for {
  15762. if !(i < int32(4)) {
  15763. break
  15764. }
  15765. *(*uint8)(unsafe.Pointer(dst_line + uintptr(int32(4)*x+i))) = uint8((*(*[4]int32)(unsafe.Pointer(bp + 32)))[i] / sample_count)
  15766. goto _6
  15767. _6:
  15768. ;
  15769. i++
  15770. }
  15771. break
  15772. }
  15773. goto _2
  15774. _2:
  15775. ;
  15776. x++
  15777. }
  15778. goto _1
  15779. _1:
  15780. ;
  15781. y--
  15782. dst_line += uintptr(pitch)
  15783. }
  15784. }
  15785. // C documentation
  15786. //
  15787. // /* this functions converts the glyph bitmap found in a FT_GlyphSlot
  15788. // * into a different format (see _compute_xrender_bitmap_size)
  15789. // *
  15790. // * you should call this function after _compute_xrender_bitmap_size
  15791. // *
  15792. // * target :: target bitmap descriptor. Note that its 'buffer' pointer
  15793. // * must point to memory allocated by the caller
  15794. // *
  15795. // * slot :: the glyph slot containing the source bitmap
  15796. // *
  15797. // * mode :: the requested final rendering mode
  15798. // *
  15799. // * bgr :: boolean, set if BGR or VBGR pixel ordering is needed
  15800. // */
  15801. func __fill_xrender_bitmap(tls *libc.TLS, target uintptr, slot TFT_GlyphSlot, mode TFT_Render_Mode, bgr int32) {
  15802. var bytes, h, height, pitch, src_pitch, subpixel, width, x, x1, x2, x3, x4, x5, x6 int32
  15803. var dst, dst1, dst2, dst3, dst4, dstLine, ftbit, src, src1, src2, src3, srcLine uintptr
  15804. var pix, pix1, pix2, pix3, pix4 uint32
  15805. _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = bytes, dst, dst1, dst2, dst3, dst4, dstLine, ftbit, h, height, pitch, pix, pix1, pix2, pix3, pix4, src, src1, src2, src3, srcLine, src_pitch, subpixel, width, x, x1, x2, x3, x4, x5, x6
  15806. ftbit = slot + 152
  15807. srcLine = (*TFT_Bitmap)(unsafe.Pointer(ftbit)).Fbuffer
  15808. dstLine = (*TFT_Bitmap)(unsafe.Pointer(target)).Fbuffer
  15809. src_pitch = (*TFT_Bitmap)(unsafe.Pointer(ftbit)).Fpitch
  15810. width = int32((*TFT_Bitmap)(unsafe.Pointer(target)).Fwidth)
  15811. height = int32((*TFT_Bitmap)(unsafe.Pointer(target)).Frows)
  15812. pitch = (*TFT_Bitmap)(unsafe.Pointer(target)).Fpitch
  15813. subpixel = libc.BoolInt32(mode == int32(_FT_RENDER_MODE_LCD) || mode == int32(_FT_RENDER_MODE_LCD_V))
  15814. if src_pitch < 0 {
  15815. srcLine -= uintptr(uint32(src_pitch) * ((*TFT_Bitmap)(unsafe.Pointer(ftbit)).Frows - libc.Uint32FromInt32(1)))
  15816. }
  15817. switch int32((*TFT_Bitmap)(unsafe.Pointer(ftbit)).Fpixel_mode) {
  15818. case int32(_FT_PIXEL_MODE_MONO):
  15819. goto _1
  15820. case int32(_FT_PIXEL_MODE_GRAY):
  15821. goto _2
  15822. case int32(_FT_PIXEL_MODE_BGRA):
  15823. goto _3
  15824. case int32(_FT_PIXEL_MODE_LCD):
  15825. goto _4
  15826. default:
  15827. goto _5
  15828. }
  15829. goto _6
  15830. _1:
  15831. ;
  15832. if subpixel != 0 { /* convert mono to ARGB32 values */
  15833. h = height
  15834. for {
  15835. if !(h > 0) {
  15836. break
  15837. }
  15838. x = 0
  15839. for {
  15840. if !(x < width) {
  15841. break
  15842. }
  15843. if int32(*(*uint8)(unsafe.Pointer(srcLine + uintptr(x>>libc.Int32FromInt32(3)))))&(int32(0x80)>>(x&int32(7))) != 0 {
  15844. *(*uint32)(unsafe.Pointer(dstLine + uintptr(x)*4)) = uint32(0xffffffff)
  15845. }
  15846. goto _8
  15847. _8:
  15848. ;
  15849. x++
  15850. }
  15851. goto _7
  15852. _7:
  15853. ;
  15854. h--
  15855. srcLine += uintptr(src_pitch)
  15856. dstLine += uintptr(pitch)
  15857. }
  15858. } else {
  15859. if mode == int32(_FT_RENDER_MODE_NORMAL) { /* convert mono to 8-bit gray */
  15860. h = height
  15861. for {
  15862. if !(h > 0) {
  15863. break
  15864. }
  15865. x1 = 0
  15866. for {
  15867. if !(x1 < width) {
  15868. break
  15869. }
  15870. if int32(*(*uint8)(unsafe.Pointer(srcLine + uintptr(x1>>libc.Int32FromInt32(3)))))&(int32(0x80)>>(x1&int32(7))) != 0 {
  15871. *(*uint8)(unsafe.Pointer(dstLine + uintptr(x1))) = uint8(0xff)
  15872. }
  15873. goto _10
  15874. _10:
  15875. ;
  15876. x1++
  15877. }
  15878. goto _9
  15879. _9:
  15880. ;
  15881. h--
  15882. srcLine += uintptr(src_pitch)
  15883. dstLine += uintptr(pitch)
  15884. }
  15885. } else { /* copy mono to mono */
  15886. bytes = (width + int32(7)) >> int32(3)
  15887. h = height
  15888. for {
  15889. if !(h > 0) {
  15890. break
  15891. }
  15892. libc.X__builtin___memcpy_chk(tls, dstLine, srcLine, uint64(bytes), uint64(libc.X__builtin_object_size(tls, dstLine, 0)))
  15893. goto _11
  15894. _11:
  15895. ;
  15896. h--
  15897. srcLine += uintptr(src_pitch)
  15898. dstLine += uintptr(pitch)
  15899. }
  15900. }
  15901. }
  15902. goto _6
  15903. _2:
  15904. ;
  15905. if subpixel != 0 { /* convert gray to ARGB32 values */
  15906. h = height
  15907. for {
  15908. if !(h > 0) {
  15909. break
  15910. }
  15911. dst = dstLine
  15912. x2 = 0
  15913. for {
  15914. if !(x2 < width) {
  15915. break
  15916. }
  15917. pix = uint32(*(*uint8)(unsafe.Pointer(srcLine + uintptr(x2))))
  15918. pix |= pix << int32(8)
  15919. pix |= pix << int32(16)
  15920. *(*uint32)(unsafe.Pointer(dst + uintptr(x2)*4)) = pix
  15921. goto _13
  15922. _13:
  15923. ;
  15924. x2++
  15925. }
  15926. goto _12
  15927. _12:
  15928. ;
  15929. h--
  15930. srcLine += uintptr(src_pitch)
  15931. dstLine += uintptr(pitch)
  15932. }
  15933. } else { /* copy gray into gray */
  15934. h = height
  15935. for {
  15936. if !(h > 0) {
  15937. break
  15938. }
  15939. libc.X__builtin___memcpy_chk(tls, dstLine, srcLine, uint64(width), uint64(libc.X__builtin_object_size(tls, dstLine, 0)))
  15940. goto _14
  15941. _14:
  15942. ;
  15943. h--
  15944. srcLine += uintptr(src_pitch)
  15945. dstLine += uintptr(pitch)
  15946. }
  15947. }
  15948. goto _6
  15949. _3:
  15950. ; /* Preserve BGRA format */
  15951. h = height
  15952. _17:
  15953. ;
  15954. if !(h > 0) {
  15955. goto _15
  15956. }
  15957. libc.X__builtin___memcpy_chk(tls, dstLine, srcLine, uint64(width)*uint64(4), uint64(libc.X__builtin_object_size(tls, dstLine, 0)))
  15958. goto _16
  15959. _16:
  15960. ;
  15961. h--
  15962. srcLine += uintptr(src_pitch)
  15963. dstLine += uintptr(pitch)
  15964. goto _17
  15965. goto _15
  15966. _15:
  15967. ;
  15968. goto _6
  15969. _4:
  15970. ;
  15971. if !(bgr != 0) {
  15972. /* convert horizontal RGB into ARGB32 */
  15973. h = height
  15974. for {
  15975. if !(h > 0) {
  15976. break
  15977. }
  15978. src = srcLine
  15979. dst1 = dstLine
  15980. x3 = 0
  15981. for {
  15982. if !(x3 < width) {
  15983. break
  15984. }
  15985. pix1 = uint32(*(*uint8)(unsafe.Pointer(src)))<<int32(16) | uint32(*(*uint8)(unsafe.Pointer(src + 1)))<<int32(8) | uint32(*(*uint8)(unsafe.Pointer(src + 2))) | uint32(*(*uint8)(unsafe.Pointer(src + 1)))<<int32(24)
  15986. *(*uint32)(unsafe.Pointer(dst1 + uintptr(x3)*4)) = pix1
  15987. goto _19
  15988. _19:
  15989. ;
  15990. x3++
  15991. src += uintptr(3)
  15992. }
  15993. goto _18
  15994. _18:
  15995. ;
  15996. h--
  15997. srcLine += uintptr(src_pitch)
  15998. dstLine += uintptr(pitch)
  15999. }
  16000. } else {
  16001. /* convert horizontal BGR into ARGB32 */
  16002. h = height
  16003. for {
  16004. if !(h > 0) {
  16005. break
  16006. }
  16007. src1 = srcLine
  16008. dst2 = dstLine
  16009. x4 = 0
  16010. for {
  16011. if !(x4 < width) {
  16012. break
  16013. }
  16014. pix2 = uint32(*(*uint8)(unsafe.Pointer(src1 + 2)))<<int32(16) | uint32(*(*uint8)(unsafe.Pointer(src1 + 1)))<<int32(8) | uint32(*(*uint8)(unsafe.Pointer(src1))) | uint32(*(*uint8)(unsafe.Pointer(src1 + 1)))<<int32(24)
  16015. *(*uint32)(unsafe.Pointer(dst2 + uintptr(x4)*4)) = pix2
  16016. goto _21
  16017. _21:
  16018. ;
  16019. x4++
  16020. src1 += uintptr(3)
  16021. }
  16022. goto _20
  16023. _20:
  16024. ;
  16025. h--
  16026. srcLine += uintptr(src_pitch)
  16027. dstLine += uintptr(pitch)
  16028. }
  16029. }
  16030. goto _6
  16031. _5:
  16032. ; /* FT_PIXEL_MODE_LCD_V */
  16033. /* convert vertical RGB into ARGB32 */
  16034. if !(bgr != 0) {
  16035. h = height
  16036. for {
  16037. if !(h > 0) {
  16038. break
  16039. }
  16040. src2 = srcLine
  16041. dst3 = dstLine
  16042. x5 = 0
  16043. for {
  16044. if !(x5 < width) {
  16045. break
  16046. }
  16047. pix3 = uint32(*(*uint8)(unsafe.Pointer(src2)))<<int32(16) | uint32(*(*uint8)(unsafe.Pointer(src2 + uintptr(src_pitch))))<<int32(8) | uint32(*(*uint8)(unsafe.Pointer(src2 + uintptr(src_pitch*int32(2))))) | uint32(*(*uint8)(unsafe.Pointer(src2 + uintptr(src_pitch))))<<int32(24)
  16048. *(*uint32)(unsafe.Pointer(dst3 + uintptr(x5)*4)) = pix3
  16049. goto _23
  16050. _23:
  16051. ;
  16052. x5++
  16053. src2 += uintptr(1)
  16054. }
  16055. goto _22
  16056. _22:
  16057. ;
  16058. h--
  16059. srcLine += uintptr(int32(3) * src_pitch)
  16060. dstLine += uintptr(pitch)
  16061. }
  16062. } else {
  16063. h = height
  16064. for {
  16065. if !(h > 0) {
  16066. break
  16067. }
  16068. src3 = srcLine
  16069. dst4 = dstLine
  16070. x6 = 0
  16071. for {
  16072. if !(x6 < width) {
  16073. break
  16074. }
  16075. pix4 = uint32(*(*uint8)(unsafe.Pointer(src3 + uintptr(src_pitch*int32(2)))))<<int32(16) | uint32(*(*uint8)(unsafe.Pointer(src3 + uintptr(src_pitch))))<<int32(8) | uint32(*(*uint8)(unsafe.Pointer(src3))) | uint32(*(*uint8)(unsafe.Pointer(src3 + uintptr(src_pitch))))<<int32(24)
  16076. *(*uint32)(unsafe.Pointer(dst4 + uintptr(x6)*4)) = pix4
  16077. goto _25
  16078. _25:
  16079. ;
  16080. x6++
  16081. src3 += uintptr(1)
  16082. }
  16083. goto _24
  16084. _24:
  16085. ;
  16086. h--
  16087. srcLine += uintptr(int32(3) * src_pitch)
  16088. dstLine += uintptr(pitch)
  16089. }
  16090. }
  16091. _6:
  16092. }
  16093. func XXftFontLoadGlyphs(tls *libc.TLS, dpy uintptr, pub uintptr, need_bitmaps TFcBool, glyphs uintptr, nglyph int32) {
  16094. bp := tls.Alloc(4544)
  16095. defer tls.Free(4544)
  16096. var adjust, adjust1, bottom, bufSize, c, height, i, left, right, size, top, width, x, xc, y, yc, v1, v10, v11, v15, v17, v3, v4, v5, v8, v9 int32
  16097. var bufBitmap, font, ftbit, info, line, line1, xftg, xnew, xold, xuse, v16, v18, v2 uintptr
  16098. var error1 TFT_Error
  16099. var face TFT_Face
  16100. var gc TGC
  16101. var glyph_transform, transform TFcBool
  16102. var glyphindex TFT_UInt
  16103. var glyphslot TFT_GlyphSlot
  16104. var maximum_x, maximum_y, trimmed_x, trimmed_y int16
  16105. var mode TFT_Render_Mode
  16106. var pixmap TPixmap
  16107. var _ /* bufLocal at bp+8 */ [4096]uint8
  16108. var _ /* glyph at bp+0 */ TGlyph
  16109. var _ /* image at bp+4304 */ TXImage
  16110. var _ /* local at bp+4104 */ TFT_Bitmap
  16111. var _ /* m at bp+4160 */ Tm3x3
  16112. var _ /* mi at bp+4232 */ Tm3x3
  16113. var _ /* vector at bp+4144 */ TFT_Vector
  16114. _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = adjust, adjust1, bottom, bufBitmap, bufSize, c, error1, face, font, ftbit, gc, glyph_transform, glyphindex, glyphslot, height, i, info, left, line, line1, maximum_x, maximum_y, mode, pixmap, right, size, top, transform, trimmed_x, trimmed_y, width, x, xc, xftg, xnew, xold, xuse, y, yc, v1, v10, v11, v15, v16, v17, v18, v2, v3, v4, v5, v8, v9
  16115. info = X_XftDisplayInfoGet(tls, dpy, int32(m_True))
  16116. font = pub
  16117. bufBitmap = bp + 8
  16118. bufSize = int32(4096)
  16119. mode = int32(_FT_RENDER_MODE_MONO)
  16120. if !(info != 0) {
  16121. return
  16122. }
  16123. face = XXftLockFace(tls, font)
  16124. if !(face != 0) {
  16125. return
  16126. }
  16127. if (*TXftFontInt)(unsafe.Pointer(font)).Finfo.Fcolor != 0 {
  16128. mode = int32(_FT_RENDER_MODE_NORMAL)
  16129. }
  16130. if (*TXftFontInt)(unsafe.Pointer(font)).Finfo.Fantialias != 0 {
  16131. switch (*TXftFontInt)(unsafe.Pointer(font)).Finfo.Frgba {
  16132. case int32(m_FC_RGBA_RGB):
  16133. fallthrough
  16134. case int32(m_FC_RGBA_BGR):
  16135. mode = int32(_FT_RENDER_MODE_LCD)
  16136. case int32(m_FC_RGBA_VRGB):
  16137. fallthrough
  16138. case int32(m_FC_RGBA_VBGR):
  16139. mode = int32(_FT_RENDER_MODE_LCD_V)
  16140. default:
  16141. mode = int32(_FT_RENDER_MODE_NORMAL)
  16142. }
  16143. }
  16144. transform = libc.BoolInt32((*TXftFontInt)(unsafe.Pointer(font)).Finfo.Ftransform != 0 && mode != int32(_FT_RENDER_MODE_MONO))
  16145. for {
  16146. v1 = nglyph
  16147. nglyph--
  16148. if !(v1 != 0) {
  16149. break
  16150. }
  16151. v2 = glyphs
  16152. glyphs += 4
  16153. glyphindex = *(*TFT_UInt)(unsafe.Pointer(v2))
  16154. xftg = *(*uintptr)(unsafe.Pointer((*TXftFontInt)(unsafe.Pointer(font)).Fglyphs + uintptr(glyphindex)*8))
  16155. if !(xftg != 0) {
  16156. continue
  16157. }
  16158. if XXftDebug(tls)&int32(m_XFT_DBG_CACHE) != 0 {
  16159. __XftFontValidateMemory(tls, dpy, pub)
  16160. }
  16161. /*
  16162. * Check to see if this glyph has just been loaded,
  16163. * this happens when drawing the same glyph twice
  16164. * in a single string
  16165. */
  16166. if (*TXftGlyph)(unsafe.Pointer(xftg)).Fglyph_memory != 0 {
  16167. continue
  16168. }
  16169. libfreetype.XFT_Library_SetLcdFilter(tls, X_XftFTlibrary, (*TXftFontInt)(unsafe.Pointer(font)).Finfo.Flcd_filter)
  16170. error1 = libfreetype.XFT_Load_Glyph(tls, face, glyphindex, (*TXftFontInt)(unsafe.Pointer(font)).Finfo.Fload_flags)
  16171. if error1 != 0 {
  16172. /*
  16173. * If anti-aliasing or transforming glyphs and
  16174. * no outline version exists, fallback to the
  16175. * bitmap and let things look bad instead of
  16176. * missing the glyph
  16177. */
  16178. if int64((*TXftFontInt)(unsafe.Pointer(font)).Finfo.Fload_flags)&(libc.Int64FromInt64(1)<<libc.Int32FromInt32(3)) != 0 {
  16179. error1 = libfreetype.XFT_Load_Glyph(tls, face, glyphindex, int32(int64((*TXftFontInt)(unsafe.Pointer(font)).Finfo.Fload_flags) & ^(libc.Int64FromInt64(1)<<libc.Int32FromInt32(3))))
  16180. }
  16181. if error1 != 0 {
  16182. continue
  16183. }
  16184. }
  16185. glyphslot = (*TFT_FaceRec_)(unsafe.Pointer(face)).Fglyph
  16186. /*
  16187. * Embolden if required
  16188. */
  16189. if (*TXftFontInt)(unsafe.Pointer(font)).Finfo.Fembolden != 0 {
  16190. libfreetype.XFT_GlyphSlot_Embolden(tls, glyphslot)
  16191. }
  16192. /*
  16193. * Compute glyph metrics from FreeType information
  16194. */
  16195. if transform != 0 {
  16196. v5 = libc.Int32FromInt32(0)
  16197. bottom = v5
  16198. v4 = v5
  16199. top = v4
  16200. v3 = v4
  16201. right = v3
  16202. left = v3
  16203. xc = 0
  16204. for {
  16205. if !(xc <= int32(1)) {
  16206. break
  16207. }
  16208. yc = 0
  16209. for {
  16210. if !(yc <= int32(1)) {
  16211. break
  16212. }
  16213. (*(*TFT_Vector)(unsafe.Pointer(bp + 4144))).Fx = (*TFT_GlyphSlotRec_)(unsafe.Pointer(glyphslot)).Fmetrics.FhoriBearingX + int64(xc)*(*TFT_GlyphSlotRec_)(unsafe.Pointer(glyphslot)).Fmetrics.Fwidth
  16214. (*(*TFT_Vector)(unsafe.Pointer(bp + 4144))).Fy = (*TFT_GlyphSlotRec_)(unsafe.Pointer(glyphslot)).Fmetrics.FhoriBearingY - int64(yc)*(*TFT_GlyphSlotRec_)(unsafe.Pointer(glyphslot)).Fmetrics.Fheight
  16215. libfreetype.XFT_Vector_Transform(tls, bp+4144, font+48+56)
  16216. if XXftDebug(tls)&int32(m_XFT_DBG_GLYPH) != 0 {
  16217. libc.Xprintf(tls, __ccgo_ts+1666, libc.VaList(bp+4448, xc, yc, int32((*(*TFT_Vector)(unsafe.Pointer(bp + 4144))).Fx), int32((*(*TFT_Vector)(unsafe.Pointer(bp + 4144))).Fy)))
  16218. }
  16219. if xc == 0 && yc == 0 {
  16220. v8 = int32((*(*TFT_Vector)(unsafe.Pointer(bp + 4144))).Fx)
  16221. right = v8
  16222. left = v8
  16223. v9 = int32((*(*TFT_Vector)(unsafe.Pointer(bp + 4144))).Fy)
  16224. bottom = v9
  16225. top = v9
  16226. } else {
  16227. if int64(left) > (*(*TFT_Vector)(unsafe.Pointer(bp + 4144))).Fx {
  16228. left = int32((*(*TFT_Vector)(unsafe.Pointer(bp + 4144))).Fx)
  16229. }
  16230. if int64(right) < (*(*TFT_Vector)(unsafe.Pointer(bp + 4144))).Fx {
  16231. right = int32((*(*TFT_Vector)(unsafe.Pointer(bp + 4144))).Fx)
  16232. }
  16233. if int64(bottom) > (*(*TFT_Vector)(unsafe.Pointer(bp + 4144))).Fy {
  16234. bottom = int32((*(*TFT_Vector)(unsafe.Pointer(bp + 4144))).Fy)
  16235. }
  16236. if int64(top) < (*(*TFT_Vector)(unsafe.Pointer(bp + 4144))).Fy {
  16237. top = int32((*(*TFT_Vector)(unsafe.Pointer(bp + 4144))).Fy)
  16238. }
  16239. }
  16240. goto _7
  16241. _7:
  16242. ;
  16243. yc++
  16244. }
  16245. goto _6
  16246. _6:
  16247. ;
  16248. xc++
  16249. }
  16250. left = left & -libc.Int32FromInt32(64)
  16251. right = (right + libc.Int32FromInt32(63)) & -libc.Int32FromInt32(64)
  16252. bottom = bottom & -libc.Int32FromInt32(64)
  16253. top = (top + libc.Int32FromInt32(63)) & -libc.Int32FromInt32(64)
  16254. } else {
  16255. left = int32((*TFT_GlyphSlotRec_)(unsafe.Pointer(glyphslot)).Fmetrics.FhoriBearingX & int64(-libc.Int32FromInt32(64)))
  16256. right = int32(((*TFT_GlyphSlotRec_)(unsafe.Pointer(glyphslot)).Fmetrics.FhoriBearingX + (*TFT_GlyphSlotRec_)(unsafe.Pointer(glyphslot)).Fmetrics.Fwidth + libc.Int64FromInt32(63)) & int64(-libc.Int32FromInt32(64)))
  16257. top = int32(((*TFT_GlyphSlotRec_)(unsafe.Pointer(glyphslot)).Fmetrics.FhoriBearingY + libc.Int64FromInt32(63)) & int64(-libc.Int32FromInt32(64)))
  16258. bottom = int32(((*TFT_GlyphSlotRec_)(unsafe.Pointer(glyphslot)).Fmetrics.FhoriBearingY - (*TFT_GlyphSlotRec_)(unsafe.Pointer(glyphslot)).Fmetrics.Fheight) & int64(-libc.Int32FromInt32(64)))
  16259. }
  16260. /*
  16261. * Clip charcell glyphs to the bounding box
  16262. * XXX transformed?
  16263. */
  16264. if (*TXftFontInt)(unsafe.Pointer(font)).Finfo.Fspacing >= int32(m_FC_CHARCELL) && !(transform != 0) {
  16265. if int64((*TXftFontInt)(unsafe.Pointer(font)).Finfo.Fload_flags)&(libc.Int64FromInt64(1)<<libc.Int32FromInt32(4)) != 0 {
  16266. if bottom>>int32(6) > (*TXftFontInt)(unsafe.Pointer(font)).Fpublic.Fmax_advance_width {
  16267. adjust = bottom - (*TXftFontInt)(unsafe.Pointer(font)).Fpublic.Fmax_advance_width<<int32(6)
  16268. if adjust > top {
  16269. adjust = top
  16270. }
  16271. top -= adjust
  16272. bottom -= adjust
  16273. }
  16274. } else {
  16275. if right>>int32(6) > (*TXftFontInt)(unsafe.Pointer(font)).Fpublic.Fmax_advance_width {
  16276. adjust1 = right - (*TXftFontInt)(unsafe.Pointer(font)).Fpublic.Fmax_advance_width<<int32(6)
  16277. if adjust1 > left {
  16278. adjust1 = left
  16279. }
  16280. left -= adjust1
  16281. right -= adjust1
  16282. }
  16283. }
  16284. }
  16285. glyph_transform = transform
  16286. if (*TFT_GlyphSlotRec_)(unsafe.Pointer(glyphslot)).Fformat != int32(_FT_GLYPH_FORMAT_BITMAP) {
  16287. error1 = libfreetype.XFT_Render_Glyph(tls, (*TFT_FaceRec_)(unsafe.Pointer(face)).Fglyph, mode)
  16288. if error1 != 0 {
  16289. continue
  16290. }
  16291. glyph_transform = m_False
  16292. }
  16293. libfreetype.XFT_Library_SetLcdFilter(tls, X_XftFTlibrary, int32(_FT_LCD_FILTER_NONE))
  16294. if (*TXftFontInt)(unsafe.Pointer(font)).Finfo.Fspacing >= int32(m_FC_MONO) {
  16295. if transform != 0 {
  16296. if int64((*TXftFontInt)(unsafe.Pointer(font)).Finfo.Fload_flags)&(libc.Int64FromInt64(1)<<libc.Int32FromInt32(4)) != 0 {
  16297. (*(*TFT_Vector)(unsafe.Pointer(bp + 4144))).Fx = 0
  16298. (*(*TFT_Vector)(unsafe.Pointer(bp + 4144))).Fy = -(*TFT_SizeRec_)(unsafe.Pointer((*TFT_FaceRec_)(unsafe.Pointer(face)).Fsize)).Fmetrics.Fmax_advance
  16299. } else {
  16300. (*(*TFT_Vector)(unsafe.Pointer(bp + 4144))).Fx = (*TFT_SizeRec_)(unsafe.Pointer((*TFT_FaceRec_)(unsafe.Pointer(face)).Fsize)).Fmetrics.Fmax_advance
  16301. (*(*TFT_Vector)(unsafe.Pointer(bp + 4144))).Fy = 0
  16302. }
  16303. libfreetype.XFT_Vector_Transform(tls, bp+4144, font+48+56)
  16304. (*TXftGlyph)(unsafe.Pointer(xftg)).Fmetrics.FxOff = int16(((*(*TFT_Vector)(unsafe.Pointer(bp + 4144))).Fx + libc.Int64FromInt32(32)) & int64(-libc.Int32FromInt32(64)) >> libc.Int32FromInt32(6))
  16305. (*TXftGlyph)(unsafe.Pointer(xftg)).Fmetrics.FyOff = int16(-(((*(*TFT_Vector)(unsafe.Pointer(bp + 4144))).Fy + libc.Int64FromInt32(32)) & int64(-libc.Int32FromInt32(64)) >> libc.Int32FromInt32(6)))
  16306. } else {
  16307. maximum_x = int16((*TXftFontInt)(unsafe.Pointer(font)).Fpublic.Fmax_advance_width)
  16308. maximum_y = int16(-(*TXftFontInt)(unsafe.Pointer(font)).Fpublic.Fmax_advance_width)
  16309. trimmed_x = int16(((*TFT_GlyphSlotRec_)(unsafe.Pointer(glyphslot)).Fadvance.Fx + libc.Int64FromInt32(32)) & int64(-libc.Int32FromInt32(64)) >> libc.Int32FromInt32(6))
  16310. trimmed_y = int16(-(((*TFT_GlyphSlotRec_)(unsafe.Pointer(glyphslot)).Fadvance.Fy + libc.Int64FromInt32(32)) & int64(-libc.Int32FromInt32(64)) >> libc.Int32FromInt32(6)))
  16311. if int64((*TXftFontInt)(unsafe.Pointer(font)).Finfo.Fload_flags)&(libc.Int64FromInt64(1)<<libc.Int32FromInt32(4)) != 0 {
  16312. (*TXftGlyph)(unsafe.Pointer(xftg)).Fmetrics.FxOff = 0
  16313. if int32(maximum_y) < int32(trimmed_y) {
  16314. v10 = int32(maximum_y)
  16315. } else {
  16316. v10 = int32(trimmed_y)
  16317. }
  16318. (*TXftGlyph)(unsafe.Pointer(xftg)).Fmetrics.FyOff = int16(v10)
  16319. } else {
  16320. if int32(maximum_x) < int32(trimmed_x) {
  16321. v11 = int32(maximum_x)
  16322. } else {
  16323. v11 = int32(trimmed_x)
  16324. }
  16325. (*TXftGlyph)(unsafe.Pointer(xftg)).Fmetrics.FxOff = int16(v11)
  16326. (*TXftGlyph)(unsafe.Pointer(xftg)).Fmetrics.FyOff = 0
  16327. }
  16328. }
  16329. } else {
  16330. (*TXftGlyph)(unsafe.Pointer(xftg)).Fmetrics.FxOff = int16(((*TFT_GlyphSlotRec_)(unsafe.Pointer(glyphslot)).Fadvance.Fx + libc.Int64FromInt32(32)) & int64(-libc.Int32FromInt32(64)) >> libc.Int32FromInt32(6))
  16331. (*TXftGlyph)(unsafe.Pointer(xftg)).Fmetrics.FyOff = int16(-(((*TFT_GlyphSlotRec_)(unsafe.Pointer(glyphslot)).Fadvance.Fy + libc.Int64FromInt32(32)) & int64(-libc.Int32FromInt32(64)) >> libc.Int32FromInt32(6)))
  16332. }
  16333. /* compute the size of the final bitmap */
  16334. ftbit = glyphslot + 152
  16335. width = int32((*TFT_Bitmap)(unsafe.Pointer(ftbit)).Fwidth)
  16336. height = int32((*TFT_Bitmap)(unsafe.Pointer(ftbit)).Frows)
  16337. if XXftDebug(tls)&int32(m_XFT_DBG_GLYPH) != 0 {
  16338. libc.Xprintf(tls, __ccgo_ts+1686, libc.VaList(bp+4448, int32(glyphindex)))
  16339. libc.Xprintf(tls, __ccgo_ts+1697, libc.VaList(bp+4448, int32((*TFT_GlyphSlotRec_)(unsafe.Pointer(glyphslot)).Fmetrics.FhoriBearingX), int32((*TFT_GlyphSlotRec_)(unsafe.Pointer(glyphslot)).Fmetrics.FhoriBearingY), int32((*TFT_GlyphSlotRec_)(unsafe.Pointer(glyphslot)).Fmetrics.Fwidth), int32((*TFT_GlyphSlotRec_)(unsafe.Pointer(glyphslot)).Fmetrics.Fheight), left, right, top, bottom, width, height))
  16340. if XXftDebug(tls)&int32(m_XFT_DBG_GLYPHV) != 0 {
  16341. line = (*TFT_Bitmap)(unsafe.Pointer(ftbit)).Fbuffer
  16342. if (*TFT_Bitmap)(unsafe.Pointer(ftbit)).Fpitch < 0 {
  16343. line -= uintptr((*TFT_Bitmap)(unsafe.Pointer(ftbit)).Fpitch * (height - int32(1)))
  16344. }
  16345. y = 0
  16346. for {
  16347. if !(y < height) {
  16348. break
  16349. }
  16350. if (*TXftFontInt)(unsafe.Pointer(font)).Finfo.Fantialias != 0 {
  16351. x = 0
  16352. for {
  16353. if !(x < width) {
  16354. break
  16355. }
  16356. libc.Xprintf(tls, __ccgo_ts+1750, libc.VaList(bp+4448, int32(_den[int32(*(*uint8)(unsafe.Pointer(line + uintptr(x))))>>int32(5)])))
  16357. goto _13
  16358. _13:
  16359. ;
  16360. x++
  16361. }
  16362. } else {
  16363. x = 0
  16364. for {
  16365. if !(x < width*int32(8)) {
  16366. break
  16367. }
  16368. if int32(*(*uint8)(unsafe.Pointer(line + uintptr(x>>int32(3)))))&(int32(1)<<(x&int32(7))) != 0 {
  16369. v15 = int32('#')
  16370. } else {
  16371. v15 = int32(' ')
  16372. }
  16373. libc.Xprintf(tls, __ccgo_ts+1750, libc.VaList(bp+4448, v15))
  16374. goto _14
  16375. _14:
  16376. ;
  16377. x++
  16378. }
  16379. }
  16380. libc.Xprintf(tls, __ccgo_ts+1753, 0)
  16381. line += uintptr((*TFT_Bitmap)(unsafe.Pointer(ftbit)).Fpitch)
  16382. goto _12
  16383. _12:
  16384. ;
  16385. y++
  16386. }
  16387. libc.Xprintf(tls, __ccgo_ts+1756, 0)
  16388. }
  16389. }
  16390. _m3x3_uniform(tls, bp+4160)
  16391. if glyph_transform != 0 {
  16392. v16 = font + 48 + 56
  16393. } else {
  16394. v16 = libc.UintptrFromInt32(0)
  16395. }
  16396. size = __compute_xrender_bitmap_size(tls, bp+4104, glyphslot, mode, v16, bp+4160)
  16397. if size < 0 {
  16398. continue
  16399. }
  16400. (*TXftGlyph)(unsafe.Pointer(xftg)).Fmetrics.Fwidth = uint16((*(*TFT_Bitmap)(unsafe.Pointer(bp + 4104))).Fwidth)
  16401. (*TXftGlyph)(unsafe.Pointer(xftg)).Fmetrics.Fheight = uint16((*(*TFT_Bitmap)(unsafe.Pointer(bp + 4104))).Frows)
  16402. if glyph_transform != 0 {
  16403. _m3x3_invert(tls, bp+4160, bp+4232)
  16404. (*(*TFT_Vector)(unsafe.Pointer(bp + 4144))).Fx = int64(-(*TFT_GlyphSlotRec_)(unsafe.Pointer(glyphslot)).Fbitmap_left)
  16405. (*(*TFT_Vector)(unsafe.Pointer(bp + 4144))).Fy = int64((*TFT_GlyphSlotRec_)(unsafe.Pointer(glyphslot)).Fbitmap_top)
  16406. _m3x3_transform(tls, bp+4144, bp+4232)
  16407. (*TXftGlyph)(unsafe.Pointer(xftg)).Fmetrics.Fx = int16((*(*TFT_Vector)(unsafe.Pointer(bp + 4144))).Fx)
  16408. (*TXftGlyph)(unsafe.Pointer(xftg)).Fmetrics.Fy = int16((*(*TFT_Vector)(unsafe.Pointer(bp + 4144))).Fy)
  16409. } else {
  16410. (*TXftGlyph)(unsafe.Pointer(xftg)).Fmetrics.Fx = int16(-(*TFT_GlyphSlotRec_)(unsafe.Pointer(glyphslot)).Fbitmap_left)
  16411. (*TXftGlyph)(unsafe.Pointer(xftg)).Fmetrics.Fy = int16((*TFT_GlyphSlotRec_)(unsafe.Pointer(glyphslot)).Fbitmap_top)
  16412. }
  16413. /*
  16414. * If the glyph is relatively large (> 1% of server memory),
  16415. * don't send it until necessary.
  16416. */
  16417. if !(need_bitmaps != 0) && uint64(size) > (*TXftDisplayInfo)(unsafe.Pointer(info)).Fmax_glyph_memory/uint64(100) {
  16418. continue
  16419. }
  16420. /*
  16421. * Make sure there is enough buffer space for the glyph.
  16422. */
  16423. if size > bufSize {
  16424. if bufBitmap != bp+8 {
  16425. libc.Xfree(tls, bufBitmap)
  16426. }
  16427. bufBitmap = libc.Xmalloc(tls, uint64(size))
  16428. if !(bufBitmap != 0) {
  16429. continue
  16430. }
  16431. bufSize = size
  16432. }
  16433. libc.X__builtin___memset_chk(tls, bufBitmap, 0, uint64(size), uint64(libc.X__builtin_object_size(tls, bufBitmap, 0)))
  16434. (*(*TFT_Bitmap)(unsafe.Pointer(bp + 4104))).Fbuffer = bufBitmap
  16435. if mode == int32(_FT_RENDER_MODE_NORMAL) && glyph_transform != 0 {
  16436. __scaled_fill_xrender_bitmap(tls, bp+4104, glyphslot+152, bp+4160)
  16437. } else {
  16438. __fill_xrender_bitmap(tls, bp+4104, glyphslot, mode, libc.BoolInt32((*TXftFontInt)(unsafe.Pointer(font)).Finfo.Frgba == int32(m_FC_RGBA_BGR) || (*TXftFontInt)(unsafe.Pointer(font)).Finfo.Frgba == int32(m_FC_RGBA_VBGR)))
  16439. }
  16440. /*
  16441. * Copy or convert into local buffer.
  16442. */
  16443. /*
  16444. * Use the glyph index as the wire encoding; it
  16445. * might be more efficient for some locales to map
  16446. * these by first usage to smaller values, but that
  16447. * would require persistently storing the map when
  16448. * glyphs were freed.
  16449. */
  16450. *(*TGlyph)(unsafe.Pointer(bp)) = uint64(glyphindex)
  16451. if (*TXftGlyph)(unsafe.Pointer(xftg)).Fpicture != 0 {
  16452. libxrender.XXRenderFreePicture(tls, dpy, (*TXftGlyph)(unsafe.Pointer(xftg)).Fpicture)
  16453. (*TXftGlyph)(unsafe.Pointer(xftg)).Fpicture = uint64(0)
  16454. }
  16455. (*TXftGlyph)(unsafe.Pointer(xftg)).Fglyph_memory = uint64(size) + uint64((*TXftFontInt)(unsafe.Pointer(font)).Fsizeof_glyph)
  16456. if (*TXftFontInt)(unsafe.Pointer(font)).Fformat != 0 {
  16457. if !((*TXftFontInt)(unsafe.Pointer(font)).Fglyphset != 0) {
  16458. (*TXftFontInt)(unsafe.Pointer(font)).Fglyphset = libxrender.XXRenderCreateGlyphSet(tls, dpy, (*TXftFontInt)(unsafe.Pointer(font)).Fformat)
  16459. }
  16460. if mode == int32(_FT_RENDER_MODE_MONO) {
  16461. /* swap bits in each byte */
  16462. if (*struct {
  16463. Fext_data uintptr
  16464. Fprivate1 uintptr
  16465. Ffd int32
  16466. Fprivate2 int32
  16467. Fproto_major_version int32
  16468. Fproto_minor_version int32
  16469. Fvendor uintptr
  16470. Fprivate3 TXID
  16471. Fprivate4 TXID
  16472. Fprivate5 TXID
  16473. Fprivate6 int32
  16474. Fresource_alloc uintptr
  16475. Fbyte_order int32
  16476. Fbitmap_unit int32
  16477. Fbitmap_pad int32
  16478. Fbitmap_bit_order int32
  16479. Fnformats int32
  16480. Fpixmap_format uintptr
  16481. Fprivate8 int32
  16482. Frelease int32
  16483. Fprivate9 uintptr
  16484. Fprivate10 uintptr
  16485. Fqlen int32
  16486. Flast_request_read uint64
  16487. Frequest uint64
  16488. Fprivate11 TXPointer
  16489. Fprivate12 TXPointer
  16490. Fprivate13 TXPointer
  16491. Fprivate14 TXPointer
  16492. Fmax_request_size uint32
  16493. Fdb uintptr
  16494. Fprivate15 uintptr
  16495. Fdisplay_name uintptr
  16496. Fdefault_screen int32
  16497. Fnscreens int32
  16498. Fscreens uintptr
  16499. Fmotion_buffer uint64
  16500. Fprivate16 uint64
  16501. Fmin_keycode int32
  16502. Fmax_keycode int32
  16503. Fprivate17 TXPointer
  16504. Fprivate18 TXPointer
  16505. Fprivate19 int32
  16506. Fxdefaults uintptr
  16507. })(unsafe.Pointer(dpy)).Fbitmap_bit_order != int32(m_MSBFirst) {
  16508. line1 = bufBitmap
  16509. i = size
  16510. for {
  16511. v17 = i
  16512. i--
  16513. if !(v17 != 0) {
  16514. break
  16515. }
  16516. c = int32(*(*uint8)(unsafe.Pointer(line1)))
  16517. c = c<<int32(1)&int32(0xaa) | c>>int32(1)&int32(0x55)
  16518. c = c<<int32(2)&int32(0xcc) | c>>int32(2)&int32(0x33)
  16519. c = c<<int32(4)&int32(0xf0) | c>>int32(4)&int32(0x0f)
  16520. v18 = line1
  16521. line1++
  16522. *(*uint8)(unsafe.Pointer(v18)) = uint8(c)
  16523. }
  16524. }
  16525. } else {
  16526. if int32((*TFT_GlyphSlotRec_)(unsafe.Pointer(glyphslot)).Fbitmap.Fpixel_mode) == int32(_FT_PIXEL_MODE_BGRA) || mode != int32(_FT_RENDER_MODE_NORMAL) {
  16527. /* invert ARGB <=> BGRA */
  16528. if (*struct {
  16529. Fext_data uintptr
  16530. Fprivate1 uintptr
  16531. Ffd int32
  16532. Fprivate2 int32
  16533. Fproto_major_version int32
  16534. Fproto_minor_version int32
  16535. Fvendor uintptr
  16536. Fprivate3 TXID
  16537. Fprivate4 TXID
  16538. Fprivate5 TXID
  16539. Fprivate6 int32
  16540. Fresource_alloc uintptr
  16541. Fbyte_order int32
  16542. Fbitmap_unit int32
  16543. Fbitmap_pad int32
  16544. Fbitmap_bit_order int32
  16545. Fnformats int32
  16546. Fpixmap_format uintptr
  16547. Fprivate8 int32
  16548. Frelease int32
  16549. Fprivate9 uintptr
  16550. Fprivate10 uintptr
  16551. Fqlen int32
  16552. Flast_request_read uint64
  16553. Frequest uint64
  16554. Fprivate11 TXPointer
  16555. Fprivate12 TXPointer
  16556. Fprivate13 TXPointer
  16557. Fprivate14 TXPointer
  16558. Fmax_request_size uint32
  16559. Fdb uintptr
  16560. Fprivate15 uintptr
  16561. Fdisplay_name uintptr
  16562. Fdefault_screen int32
  16563. Fnscreens int32
  16564. Fscreens uintptr
  16565. Fmotion_buffer uint64
  16566. Fprivate16 uint64
  16567. Fmin_keycode int32
  16568. Fmax_keycode int32
  16569. Fprivate17 TXPointer
  16570. Fprivate18 TXPointer
  16571. Fprivate19 int32
  16572. Fxdefaults uintptr
  16573. })(unsafe.Pointer(dpy)).Fbyte_order != XXftNativeByteOrder(tls) {
  16574. XXftSwapCARD32(tls, bufBitmap, size>>int32(2))
  16575. }
  16576. }
  16577. }
  16578. if int32((*TFT_GlyphSlotRec_)(unsafe.Pointer(glyphslot)).Fbitmap.Fpixel_mode) == int32(_FT_PIXEL_MODE_BGRA) {
  16579. pixmap = libx11.XXCreatePixmap(tls, dpy, (*TScreen)(unsafe.Pointer((*struct {
  16580. Fext_data uintptr
  16581. Fprivate1 uintptr
  16582. Ffd int32
  16583. Fprivate2 int32
  16584. Fproto_major_version int32
  16585. Fproto_minor_version int32
  16586. Fvendor uintptr
  16587. Fprivate3 TXID
  16588. Fprivate4 TXID
  16589. Fprivate5 TXID
  16590. Fprivate6 int32
  16591. Fresource_alloc uintptr
  16592. Fbyte_order int32
  16593. Fbitmap_unit int32
  16594. Fbitmap_pad int32
  16595. Fbitmap_bit_order int32
  16596. Fnformats int32
  16597. Fpixmap_format uintptr
  16598. Fprivate8 int32
  16599. Frelease int32
  16600. Fprivate9 uintptr
  16601. Fprivate10 uintptr
  16602. Fqlen int32
  16603. Flast_request_read uint64
  16604. Frequest uint64
  16605. Fprivate11 TXPointer
  16606. Fprivate12 TXPointer
  16607. Fprivate13 TXPointer
  16608. Fprivate14 TXPointer
  16609. Fmax_request_size uint32
  16610. Fdb uintptr
  16611. Fprivate15 uintptr
  16612. Fdisplay_name uintptr
  16613. Fdefault_screen int32
  16614. Fnscreens int32
  16615. Fscreens uintptr
  16616. Fmotion_buffer uint64
  16617. Fprivate16 uint64
  16618. Fmin_keycode int32
  16619. Fmax_keycode int32
  16620. Fprivate17 TXPointer
  16621. Fprivate18 TXPointer
  16622. Fprivate19 int32
  16623. Fxdefaults uintptr
  16624. })(unsafe.Pointer(dpy)).Fscreens+uintptr((*struct {
  16625. Fext_data uintptr
  16626. Fprivate1 uintptr
  16627. Ffd int32
  16628. Fprivate2 int32
  16629. Fproto_major_version int32
  16630. Fproto_minor_version int32
  16631. Fvendor uintptr
  16632. Fprivate3 TXID
  16633. Fprivate4 TXID
  16634. Fprivate5 TXID
  16635. Fprivate6 int32
  16636. Fresource_alloc uintptr
  16637. Fbyte_order int32
  16638. Fbitmap_unit int32
  16639. Fbitmap_pad int32
  16640. Fbitmap_bit_order int32
  16641. Fnformats int32
  16642. Fpixmap_format uintptr
  16643. Fprivate8 int32
  16644. Frelease int32
  16645. Fprivate9 uintptr
  16646. Fprivate10 uintptr
  16647. Fqlen int32
  16648. Flast_request_read uint64
  16649. Frequest uint64
  16650. Fprivate11 TXPointer
  16651. Fprivate12 TXPointer
  16652. Fprivate13 TXPointer
  16653. Fprivate14 TXPointer
  16654. Fmax_request_size uint32
  16655. Fdb uintptr
  16656. Fprivate15 uintptr
  16657. Fdisplay_name uintptr
  16658. Fdefault_screen int32
  16659. Fnscreens int32
  16660. Fscreens uintptr
  16661. Fmotion_buffer uint64
  16662. Fprivate16 uint64
  16663. Fmin_keycode int32
  16664. Fmax_keycode int32
  16665. Fprivate17 TXPointer
  16666. Fprivate18 TXPointer
  16667. Fprivate19 int32
  16668. Fxdefaults uintptr
  16669. })(unsafe.Pointer(dpy)).Fdefault_screen)*128)).Froot, (*(*TFT_Bitmap)(unsafe.Pointer(bp + 4104))).Fwidth, (*(*TFT_Bitmap)(unsafe.Pointer(bp + 4104))).Frows, uint32(32))
  16670. gc = libx11.XXCreateGC(tls, dpy, pixmap, uint64(0), libc.UintptrFromInt32(0))
  16671. *(*TXImage)(unsafe.Pointer(bp + 4304)) = TXImage{
  16672. Fwidth: int32((*(*TFT_Bitmap)(unsafe.Pointer(bp + 4104))).Fwidth),
  16673. Fheight: int32((*(*TFT_Bitmap)(unsafe.Pointer(bp + 4104))).Frows),
  16674. Fformat: int32(m_ZPixmap),
  16675. Fdata: bufBitmap,
  16676. Fbyte_order: (*TDisplay)(unsafe.Pointer(dpy)).Fbyte_order,
  16677. Fbitmap_unit: (*TDisplay)(unsafe.Pointer(dpy)).Fbitmap_unit,
  16678. Fbitmap_bit_order: (*TDisplay)(unsafe.Pointer(dpy)).Fbitmap_bit_order,
  16679. Fbitmap_pad: int32(32),
  16680. Fdepth: int32(32),
  16681. Fbytes_per_line: int32((*(*TFT_Bitmap)(unsafe.Pointer(bp + 4104))).Fwidth*libc.Uint32FromInt32(4) - uint32((*(*TFT_Bitmap)(unsafe.Pointer(bp + 4104))).Fpitch)),
  16682. Fbits_per_pixel: int32(32),
  16683. }
  16684. libx11.XXInitImage(tls, bp+4304)
  16685. libx11.XXPutImage(tls, dpy, pixmap, gc, bp+4304, 0, 0, 0, 0, (*(*TFT_Bitmap)(unsafe.Pointer(bp + 4104))).Fwidth, (*(*TFT_Bitmap)(unsafe.Pointer(bp + 4104))).Frows)
  16686. (*TXftGlyph)(unsafe.Pointer(xftg)).Fpicture = libxrender.XXRenderCreatePicture(tls, dpy, pixmap, (*TXftFontInt)(unsafe.Pointer(font)).Fformat, uint64(0), libc.UintptrFromInt32(0))
  16687. libx11.XXFreeGC(tls, dpy, gc)
  16688. libx11.XXFreePixmap(tls, dpy, pixmap)
  16689. /*
  16690. * Record 256 times higher memory pressure for unrotated
  16691. * pictures, and maximum for rotated pictures.
  16692. */
  16693. if (*TXftFontInt)(unsafe.Pointer(font)).Finfo.Fmatrix.Fxy != 0 || (*TXftFontInt)(unsafe.Pointer(font)).Finfo.Fmatrix.Fyx != 0 {
  16694. *(*uint64)(unsafe.Pointer(xftg + 24)) += (*TXftFontInt)(unsafe.Pointer(font)).Fmax_glyph_memory - uint64(size)
  16695. } else {
  16696. *(*uint64)(unsafe.Pointer(xftg + 24)) += uint64(size) * uint64(255)
  16697. }
  16698. } else {
  16699. libxrender.XXRenderAddGlyphs(tls, dpy, (*TXftFontInt)(unsafe.Pointer(font)).Fglyphset, bp, xftg, int32(1), bufBitmap, size)
  16700. }
  16701. } else {
  16702. if size != 0 {
  16703. (*TXftGlyph)(unsafe.Pointer(xftg)).Fbitmap = libc.Xmalloc(tls, uint64(size))
  16704. if (*TXftGlyph)(unsafe.Pointer(xftg)).Fbitmap != 0 {
  16705. libc.X__builtin___memcpy_chk(tls, (*TXftGlyph)(unsafe.Pointer(xftg)).Fbitmap, bufBitmap, uint64(size), uint64(libc.X__builtin_object_size(tls, (*TXftGlyph)(unsafe.Pointer(xftg)).Fbitmap, 0)))
  16706. }
  16707. } else {
  16708. (*TXftGlyph)(unsafe.Pointer(xftg)).Fbitmap = libc.UintptrFromInt32(0)
  16709. }
  16710. }
  16711. *(*uint64)(unsafe.Pointer(font + 216)) += (*TXftGlyph)(unsafe.Pointer(xftg)).Fglyph_memory
  16712. *(*uint64)(unsafe.Pointer(info + 56)) += (*TXftGlyph)(unsafe.Pointer(xftg)).Fglyph_memory
  16713. if XXftDebug(tls)&int32(m_XFT_DBG_CACHE) != 0 {
  16714. __XftFontValidateMemory(tls, dpy, pub)
  16715. }
  16716. if XXftDebug(tls)&int32(m_XFT_DBG_CACHEV) != 0 {
  16717. libc.Xprintf(tls, __ccgo_ts+1758, libc.VaList(bp+4448, glyphindex, (*TXftGlyph)(unsafe.Pointer(xftg)).Fglyph_memory))
  16718. }
  16719. if (*TXftFontInt)(unsafe.Pointer(font)).Ftrack_mem_usage != 0 {
  16720. xuse = xftg
  16721. if (*TXftFontInt)(unsafe.Pointer(font)).Fnewest == libc.Uint32FromInt32(m___INT_MAX__)*libc.Uint32FromUint32(2)+libc.Uint32FromUint32(1) {
  16722. (*TXftGlyphUsage)(unsafe.Pointer(xuse)).Folder = glyphindex
  16723. (*TXftGlyphUsage)(unsafe.Pointer(xuse)).Fnewer = glyphindex
  16724. if XXftDebug(tls)&int32(m_XFT_DBG_USAGE) != 0 {
  16725. libc.Xprintf(tls, __ccgo_ts+1787, libc.VaList(bp+4448, font, glyphindex, xuse, (*TXftGlyphUsage)(unsafe.Pointer(xuse)).Folder, (*TXftGlyphUsage)(unsafe.Pointer(xuse)).Fnewer))
  16726. }
  16727. } else {
  16728. xnew = *(*uintptr)(unsafe.Pointer((*TXftFontInt)(unsafe.Pointer(font)).Fglyphs + uintptr((*TXftFontInt)(unsafe.Pointer(font)).Fnewest)*8))
  16729. xold = *(*uintptr)(unsafe.Pointer((*TXftFontInt)(unsafe.Pointer(font)).Fglyphs + uintptr((*TXftGlyphUsage)(unsafe.Pointer(xnew)).Fnewer)*8))
  16730. (*TXftGlyphUsage)(unsafe.Pointer(xuse)).Folder = (*TXftFontInt)(unsafe.Pointer(font)).Fnewest
  16731. (*TXftGlyphUsage)(unsafe.Pointer(xuse)).Fnewer = (*TXftGlyphUsage)(unsafe.Pointer(xnew)).Fnewer
  16732. (*TXftGlyphUsage)(unsafe.Pointer(xnew)).Fnewer = glyphindex
  16733. (*TXftGlyphUsage)(unsafe.Pointer(xold)).Folder = glyphindex
  16734. if XXftDebug(tls)&int32(m_XFT_DBG_USAGE) != 0 {
  16735. libc.Xprintf(tls, __ccgo_ts+1817, libc.VaList(bp+4448, font, glyphindex, xuse, (*TXftGlyphUsage)(unsafe.Pointer(xuse)).Folder, (*TXftGlyphUsage)(unsafe.Pointer(xuse)).Fnewer, xnew, (*TXftGlyphUsage)(unsafe.Pointer(xnew)).Folder, (*TXftGlyphUsage)(unsafe.Pointer(xnew)).Fnewer, xold, (*TXftGlyphUsage)(unsafe.Pointer(xold)).Folder, (*TXftGlyphUsage)(unsafe.Pointer(xold)).Fnewer))
  16736. }
  16737. }
  16738. (*TXftFontInt)(unsafe.Pointer(font)).Fnewest = glyphindex
  16739. (*TXftFontInt)(unsafe.Pointer(font)).Ftotal_inuse++
  16740. if XXftDebug(tls)&int32(m_XFT_DBG_USAGE) != 0 {
  16741. __XftValidateGlyphUsage(tls, font)
  16742. }
  16743. }
  16744. }
  16745. if bufBitmap != bp+8 {
  16746. libc.Xfree(tls, bufBitmap)
  16747. }
  16748. XXftUnlockFace(tls, font)
  16749. }
  16750. var _den = [9]int8{' ', '.', ':', ';', '=', '+', '*', '#'}
  16751. func XXftFontUnloadGlyphs(tls *libc.TLS, dpy uintptr, pub uintptr, glyphs uintptr, nglyph int32) {
  16752. bp := tls.Alloc(8240)
  16753. defer tls.Free(8240)
  16754. var font, info, xftg, xtmp, xuse, v2 uintptr
  16755. var glyphindex TFT_UInt
  16756. var nused, v1, v3 int32
  16757. var _ /* glyphBuf at bp+0 */ [1024]TGlyph
  16758. _, _, _, _, _, _, _, _, _, _ = font, glyphindex, info, nused, xftg, xtmp, xuse, v1, v2, v3
  16759. info = X_XftDisplayInfoGet(tls, dpy, m_False)
  16760. font = pub
  16761. nused = 0
  16762. for {
  16763. v1 = nglyph
  16764. nglyph--
  16765. if !(v1 != 0) {
  16766. break
  16767. }
  16768. v2 = glyphs
  16769. glyphs += 4
  16770. glyphindex = *(*TFT_UInt)(unsafe.Pointer(v2))
  16771. xftg = *(*uintptr)(unsafe.Pointer((*TXftFontInt)(unsafe.Pointer(font)).Fglyphs + uintptr(glyphindex)*8))
  16772. if !(xftg != 0) {
  16773. continue
  16774. }
  16775. if (*TXftGlyph)(unsafe.Pointer(xftg)).Fglyph_memory != 0 {
  16776. if XXftDebug(tls)&int32(m_XFT_DBG_CACHEV) != 0 {
  16777. libc.Xprintf(tls, __ccgo_ts+1874, libc.VaList(bp+8200, glyphindex, (*TXftGlyph)(unsafe.Pointer(xftg)).Fglyph_memory))
  16778. }
  16779. if (*TXftFontInt)(unsafe.Pointer(font)).Fformat != 0 {
  16780. if (*TXftGlyph)(unsafe.Pointer(xftg)).Fpicture != 0 {
  16781. libxrender.XXRenderFreePicture(tls, dpy, (*TXftGlyph)(unsafe.Pointer(xftg)).Fpicture)
  16782. } else {
  16783. if (*TXftFontInt)(unsafe.Pointer(font)).Fglyphset != 0 {
  16784. v3 = nused
  16785. nused++
  16786. (*(*[1024]TGlyph)(unsafe.Pointer(bp)))[v3] = uint64(glyphindex)
  16787. if uint64(nused) == libc.Uint64FromInt64(8192)/libc.Uint64FromInt64(8) {
  16788. libxrender.XXRenderFreeGlyphs(tls, dpy, (*TXftFontInt)(unsafe.Pointer(font)).Fglyphset, bp, nused)
  16789. nused = 0
  16790. }
  16791. }
  16792. }
  16793. } else {
  16794. if (*TXftGlyph)(unsafe.Pointer(xftg)).Fbitmap != 0 {
  16795. libc.Xfree(tls, (*TXftGlyph)(unsafe.Pointer(xftg)).Fbitmap)
  16796. }
  16797. }
  16798. *(*uint64)(unsafe.Pointer(font + 216)) -= (*TXftGlyph)(unsafe.Pointer(xftg)).Fglyph_memory
  16799. if info != 0 {
  16800. *(*uint64)(unsafe.Pointer(info + 56)) -= (*TXftGlyph)(unsafe.Pointer(xftg)).Fglyph_memory
  16801. }
  16802. }
  16803. if (*TXftFontInt)(unsafe.Pointer(font)).Ftrack_mem_usage != 0 {
  16804. xuse = xftg
  16805. if XXftDebug(tls)&int32(m_XFT_DBG_USAGE) != 0 {
  16806. libc.Xprintf(tls, __ccgo_ts+1905, libc.VaList(bp+8200, font, xuse, (*TXftGlyphUsage)(unsafe.Pointer(xuse)).Folder, (*TXftGlyphUsage)(unsafe.Pointer(xuse)).Fnewer))
  16807. }
  16808. if (*TXftGlyphUsage)(unsafe.Pointer(xuse)).Folder != libc.Uint32FromInt32(m___INT_MAX__)*libc.Uint32FromUint32(2)+libc.Uint32FromUint32(1) {
  16809. xtmp = *(*uintptr)(unsafe.Pointer((*TXftFontInt)(unsafe.Pointer(font)).Fglyphs + uintptr((*TXftGlyphUsage)(unsafe.Pointer(xuse)).Folder)*8))
  16810. if xtmp != libc.UintptrFromInt32(0) {
  16811. /* update link around to oldest glyph */
  16812. (*TXftGlyphUsage)(unsafe.Pointer(xtmp)).Fnewer = (*TXftGlyphUsage)(unsafe.Pointer(xuse)).Fnewer
  16813. }
  16814. if (*TXftFontInt)(unsafe.Pointer(font)).Fnewest == glyphindex {
  16815. if (*TXftFontInt)(unsafe.Pointer(font)).Fnewest == (*TXftGlyphUsage)(unsafe.Pointer(xuse)).Folder {
  16816. (*TXftFontInt)(unsafe.Pointer(font)).Fnewest = libc.Uint32FromInt32(m___INT_MAX__)*libc.Uint32FromUint32(2) + libc.Uint32FromUint32(1)
  16817. } else {
  16818. (*TXftFontInt)(unsafe.Pointer(font)).Fnewest = (*TXftGlyphUsage)(unsafe.Pointer(xuse)).Folder
  16819. }
  16820. }
  16821. }
  16822. if (*TXftGlyphUsage)(unsafe.Pointer(xuse)).Fnewer != libc.Uint32FromInt32(m___INT_MAX__)*libc.Uint32FromUint32(2)+libc.Uint32FromUint32(1) {
  16823. xtmp = *(*uintptr)(unsafe.Pointer((*TXftFontInt)(unsafe.Pointer(font)).Fglyphs + uintptr((*TXftGlyphUsage)(unsafe.Pointer(xuse)).Fnewer)*8))
  16824. if xtmp != libc.UintptrFromInt32(0) {
  16825. /* update link around to newest glyph */
  16826. (*TXftGlyphUsage)(unsafe.Pointer(xtmp)).Folder = (*TXftGlyphUsage)(unsafe.Pointer(xuse)).Folder
  16827. }
  16828. }
  16829. if (*TXftFontInt)(unsafe.Pointer(font)).Ftotal_inuse != 0 {
  16830. (*TXftFontInt)(unsafe.Pointer(font)).Ftotal_inuse--
  16831. } else {
  16832. libc.Xfprintf(tls, libc.X__stderrp, __ccgo_ts+1930, 0)
  16833. }
  16834. if XXftDebug(tls)&int32(m_XFT_DBG_USAGE) != 0 {
  16835. __XftValidateGlyphUsage(tls, font)
  16836. }
  16837. }
  16838. libc.Xfree(tls, xftg)
  16839. XXftMemFree(tls, int32(_XFT_MEM_GLYPH), uint64((*TXftFontInt)(unsafe.Pointer(font)).Fsizeof_glyph))
  16840. *(*uintptr)(unsafe.Pointer((*TXftFontInt)(unsafe.Pointer(font)).Fglyphs + uintptr(glyphindex)*8)) = libc.UintptrFromInt32(0)
  16841. }
  16842. if (*TXftFontInt)(unsafe.Pointer(font)).Fglyphset != 0 && nused != 0 {
  16843. libxrender.XXRenderFreeGlyphs(tls, dpy, (*TXftFontInt)(unsafe.Pointer(font)).Fglyphset, bp, nused)
  16844. }
  16845. }
  16846. func XXftFontCheckGlyph(tls *libc.TLS, dpy uintptr, pub uintptr, need_bitmaps TFcBool, glyph TFT_UInt, missing uintptr, nmissing uintptr) (r TFcBool) {
  16847. var font, xftg, xnew, xold, xtmp, xuse, xuse1 uintptr
  16848. var n, v1 int32
  16849. _, _, _, _, _, _, _, _, _ = font, n, xftg, xnew, xold, xtmp, xuse, xuse1, v1
  16850. font = pub
  16851. if glyph >= (*TXftFontInt)(unsafe.Pointer(font)).Fnum_glyphs {
  16852. return m_FcFalse
  16853. }
  16854. xftg = *(*uintptr)(unsafe.Pointer((*TXftFontInt)(unsafe.Pointer(font)).Fglyphs + uintptr(glyph)*8))
  16855. if !(xftg != 0) || need_bitmaps != 0 && !((*TXftGlyph)(unsafe.Pointer(xftg)).Fglyph_memory != 0) {
  16856. if !(xftg != 0) {
  16857. xftg = libc.Xmalloc(tls, uint64((*TXftFontInt)(unsafe.Pointer(font)).Fsizeof_glyph))
  16858. if !(xftg != 0) {
  16859. return m_FcFalse
  16860. }
  16861. XXftMemAlloc(tls, int32(_XFT_MEM_GLYPH), uint64((*TXftFontInt)(unsafe.Pointer(font)).Fsizeof_glyph))
  16862. (*TXftGlyph)(unsafe.Pointer(xftg)).Fbitmap = libc.UintptrFromInt32(0)
  16863. (*TXftGlyph)(unsafe.Pointer(xftg)).Fglyph_memory = uint64(0)
  16864. (*TXftGlyph)(unsafe.Pointer(xftg)).Fpicture = uint64(0)
  16865. *(*uintptr)(unsafe.Pointer((*TXftFontInt)(unsafe.Pointer(font)).Fglyphs + uintptr(glyph)*8)) = xftg
  16866. if (*TXftFontInt)(unsafe.Pointer(font)).Ftrack_mem_usage != 0 {
  16867. xuse = xftg
  16868. (*TXftGlyphUsage)(unsafe.Pointer(xuse)).Folder = libc.Uint32FromInt32(m___INT_MAX__)*libc.Uint32FromUint32(2) + libc.Uint32FromUint32(1)
  16869. (*TXftGlyphUsage)(unsafe.Pointer(xuse)).Fnewer = libc.Uint32FromInt32(m___INT_MAX__)*libc.Uint32FromUint32(2) + libc.Uint32FromUint32(1)
  16870. }
  16871. }
  16872. n = *(*int32)(unsafe.Pointer(nmissing))
  16873. v1 = n
  16874. n++
  16875. *(*TFT_UInt)(unsafe.Pointer(missing + uintptr(v1)*4)) = glyph
  16876. if n == int32(m_XFT_NMISSING) {
  16877. XXftFontLoadGlyphs(tls, dpy, pub, need_bitmaps, missing, n)
  16878. n = 0
  16879. }
  16880. *(*int32)(unsafe.Pointer(nmissing)) = n
  16881. return int32(m_FcTrue)
  16882. }
  16883. /*
  16884. * Make unloading faster by moving newly-referenced glyphs to the front
  16885. * of the list, leaving the less-used glyphs on the end.
  16886. *
  16887. * If the glyph is zero, the older/newer data may not have been set.
  16888. */
  16889. if glyph != uint32(0) && (*TXftFontInt)(unsafe.Pointer(font)).Ftrack_mem_usage != 0 && (*TXftFontInt)(unsafe.Pointer(font)).Ftotal_inuse > uint32(10) && (*TXftFontInt)(unsafe.Pointer(font)).Fnewest != libc.Uint32FromInt32(m___INT_MAX__)*libc.Uint32FromUint32(2)+libc.Uint32FromUint32(1) && (*TXftFontInt)(unsafe.Pointer(font)).Fnewest != glyph {
  16890. xuse1 = xftg
  16891. xtmp = *(*uintptr)(unsafe.Pointer((*TXftFontInt)(unsafe.Pointer(font)).Fglyphs + uintptr((*TXftFontInt)(unsafe.Pointer(font)).Fnewest)*8))
  16892. /* delink */
  16893. xold = *(*uintptr)(unsafe.Pointer((*TXftFontInt)(unsafe.Pointer(font)).Fglyphs + uintptr((*TXftGlyphUsage)(unsafe.Pointer(xuse1)).Folder)*8))
  16894. xnew = *(*uintptr)(unsafe.Pointer((*TXftFontInt)(unsafe.Pointer(font)).Fglyphs + uintptr((*TXftGlyphUsage)(unsafe.Pointer(xuse1)).Fnewer)*8))
  16895. (*TXftGlyphUsage)(unsafe.Pointer(xold)).Fnewer = (*TXftGlyphUsage)(unsafe.Pointer(xuse1)).Fnewer
  16896. (*TXftGlyphUsage)(unsafe.Pointer(xnew)).Folder = (*TXftGlyphUsage)(unsafe.Pointer(xuse1)).Folder
  16897. /* relink */
  16898. xnew = *(*uintptr)(unsafe.Pointer((*TXftFontInt)(unsafe.Pointer(font)).Fglyphs + uintptr((*TXftGlyphUsage)(unsafe.Pointer(xtmp)).Fnewer)*8))
  16899. (*TXftGlyphUsage)(unsafe.Pointer(xnew)).Folder = glyph
  16900. (*TXftGlyphUsage)(unsafe.Pointer(xuse1)).Folder = (*TXftFontInt)(unsafe.Pointer(font)).Fnewest
  16901. (*TXftGlyphUsage)(unsafe.Pointer(xuse1)).Fnewer = (*TXftGlyphUsage)(unsafe.Pointer(xtmp)).Fnewer
  16902. (*TXftGlyphUsage)(unsafe.Pointer(xtmp)).Fnewer = glyph
  16903. (*TXftFontInt)(unsafe.Pointer(font)).Fnewest = glyph
  16904. }
  16905. return m_FcFalse
  16906. }
  16907. func XXftCharExists(tls *libc.TLS, dpy uintptr, pub uintptr, ucs4 TFcChar32) (r TFcBool) {
  16908. if (*TXftFont)(unsafe.Pointer(pub)).Fcharset != 0 {
  16909. return libfontconfig.XFcCharSetHasChar(tls, (*TXftFont)(unsafe.Pointer(pub)).Fcharset, ucs4)
  16910. }
  16911. return m_FcFalse
  16912. }
  16913. func XXftCharIndex(tls *libc.TLS, dpy uintptr, pub uintptr, ucs4 TFcChar32) (r TFT_UInt) {
  16914. var ent, offset TFcChar32
  16915. var face TFT_Face
  16916. var font uintptr
  16917. _, _, _, _ = ent, face, font, offset
  16918. font = pub
  16919. if !((*TXftFontInt)(unsafe.Pointer(font)).Fhash_value != 0) {
  16920. return uint32(0)
  16921. }
  16922. ent = ucs4 % uint32((*TXftFontInt)(unsafe.Pointer(font)).Fhash_value)
  16923. offset = uint32(0)
  16924. for (*(*TXftUcsHash)(unsafe.Pointer((*TXftFontInt)(unsafe.Pointer(font)).Fhash_table + uintptr(ent)*8))).Fucs4 != ucs4 {
  16925. if (*(*TXftUcsHash)(unsafe.Pointer((*TXftFontInt)(unsafe.Pointer(font)).Fhash_table + uintptr(ent)*8))).Fucs4 == uint32(^libc.Int32FromInt32(0)) {
  16926. if !(XXftCharExists(tls, dpy, pub, ucs4) != 0) {
  16927. return uint32(0)
  16928. }
  16929. face = XXftLockFace(tls, pub)
  16930. if !(face != 0) {
  16931. return uint32(0)
  16932. }
  16933. (*(*TXftUcsHash)(unsafe.Pointer((*TXftFontInt)(unsafe.Pointer(font)).Fhash_table + uintptr(ent)*8))).Fucs4 = ucs4
  16934. (*(*TXftUcsHash)(unsafe.Pointer((*TXftFontInt)(unsafe.Pointer(font)).Fhash_table + uintptr(ent)*8))).Fglyph = libfontconfig.XFcFreeTypeCharIndex(tls, face, ucs4)
  16935. XXftUnlockFace(tls, pub)
  16936. break
  16937. }
  16938. if !(offset != 0) {
  16939. offset = ucs4 % uint32((*TXftFontInt)(unsafe.Pointer(font)).Frehash_value)
  16940. if !(offset != 0) {
  16941. offset = uint32(1)
  16942. }
  16943. }
  16944. ent = ent + offset
  16945. if ent >= uint32((*TXftFontInt)(unsafe.Pointer(font)).Fhash_value) {
  16946. ent -= uint32((*TXftFontInt)(unsafe.Pointer(font)).Fhash_value)
  16947. }
  16948. }
  16949. return (*(*TXftUcsHash)(unsafe.Pointer((*TXftFontInt)(unsafe.Pointer(font)).Fhash_table + uintptr(ent)*8))).Fglyph
  16950. }
  16951. // C documentation
  16952. //
  16953. // /*
  16954. // * Remove glyph(s) from the font to reduce memory-usage.
  16955. // */
  16956. func X_XftFontUncacheGlyph(tls *libc.TLS, dpy uintptr, pub uintptr) {
  16957. bp := tls.Alloc(16)
  16958. defer tls.Free(16)
  16959. var font, xftg, xuse uintptr
  16960. var glyph_memory uint64
  16961. var v1 TFT_UInt
  16962. var _ /* glyphindex at bp+0 */ TFT_UInt
  16963. _, _, _, _, _ = font, glyph_memory, xftg, xuse, v1
  16964. font = pub
  16965. if !((*TXftFontInt)(unsafe.Pointer(font)).Fglyph_memory != 0) {
  16966. return
  16967. }
  16968. if XXftDebug(tls)&int32(m_XFT_DBG_CACHE) != 0 {
  16969. __XftFontValidateMemory(tls, dpy, pub)
  16970. }
  16971. if (*TXftFontInt)(unsafe.Pointer(font)).Ftrack_mem_usage != 0 {
  16972. /*
  16973. * Remove the oldest glyph from the font.
  16974. */
  16975. if (*TXftFontInt)(unsafe.Pointer(font)).Fnewest != libc.Uint32FromInt32(m___INT_MAX__)*libc.Uint32FromUint32(2)+libc.Uint32FromUint32(1) {
  16976. xuse = *(*uintptr)(unsafe.Pointer((*TXftFontInt)(unsafe.Pointer(font)).Fglyphs + uintptr((*TXftFontInt)(unsafe.Pointer(font)).Fnewest)*8))
  16977. v1 = (*TXftGlyphUsage)(unsafe.Pointer(xuse)).Fnewer
  16978. *(*TFT_UInt)(unsafe.Pointer(bp)) = v1
  16979. if v1 != libc.Uint32FromInt32(m___INT_MAX__)*libc.Uint32FromUint32(2)+libc.Uint32FromUint32(1) {
  16980. XXftFontUnloadGlyphs(tls, dpy, pub, bp, int32(1))
  16981. }
  16982. }
  16983. } else {
  16984. if (*TXftFontInt)(unsafe.Pointer(font)).Fuse_free_glyphs != 0 {
  16985. /*
  16986. * Pick a random glyph from the font and remove it from the cache
  16987. */
  16988. glyph_memory = uint64(libc.Xrand(tls)) % (*TXftFontInt)(unsafe.Pointer(font)).Fglyph_memory
  16989. *(*TFT_UInt)(unsafe.Pointer(bp)) = uint32(0)
  16990. for {
  16991. if !(*(*TFT_UInt)(unsafe.Pointer(bp)) < (*TXftFontInt)(unsafe.Pointer(font)).Fnum_glyphs) {
  16992. break
  16993. }
  16994. xftg = *(*uintptr)(unsafe.Pointer((*TXftFontInt)(unsafe.Pointer(font)).Fglyphs + uintptr(*(*TFT_UInt)(unsafe.Pointer(bp)))*8))
  16995. if xftg != 0 {
  16996. if (*TXftGlyph)(unsafe.Pointer(xftg)).Fglyph_memory > glyph_memory {
  16997. XXftFontUnloadGlyphs(tls, dpy, pub, bp, int32(1))
  16998. break
  16999. }
  17000. glyph_memory -= (*TXftGlyph)(unsafe.Pointer(xftg)).Fglyph_memory
  17001. }
  17002. goto _2
  17003. _2:
  17004. ;
  17005. *(*TFT_UInt)(unsafe.Pointer(bp))++
  17006. }
  17007. } else {
  17008. /*
  17009. * Free all glyphs, since they are part of a set.
  17010. */
  17011. if (*TXftFontInt)(unsafe.Pointer(font)).Fglyphset != 0 {
  17012. libxrender.XXRenderFreeGlyphSet(tls, dpy, (*TXftFontInt)(unsafe.Pointer(font)).Fglyphset)
  17013. (*TXftFontInt)(unsafe.Pointer(font)).Fglyphset = uint64(0)
  17014. }
  17015. *(*TFT_UInt)(unsafe.Pointer(bp)) = uint32(0)
  17016. for {
  17017. if !(*(*TFT_UInt)(unsafe.Pointer(bp)) < (*TXftFontInt)(unsafe.Pointer(font)).Fnum_glyphs) {
  17018. break
  17019. }
  17020. xftg = *(*uintptr)(unsafe.Pointer((*TXftFontInt)(unsafe.Pointer(font)).Fglyphs + uintptr(*(*TFT_UInt)(unsafe.Pointer(bp)))*8))
  17021. if xftg != 0 {
  17022. if (*TXftGlyph)(unsafe.Pointer(xftg)).Fglyph_memory > uint64(0) {
  17023. XXftFontUnloadGlyphs(tls, dpy, pub, bp, int32(1))
  17024. }
  17025. }
  17026. goto _3
  17027. _3:
  17028. ;
  17029. *(*TFT_UInt)(unsafe.Pointer(bp))++
  17030. }
  17031. }
  17032. }
  17033. if XXftDebug(tls)&int32(m_XFT_DBG_CACHE) != 0 {
  17034. __XftFontValidateMemory(tls, dpy, pub)
  17035. }
  17036. }
  17037. func X_XftFontManageMemory(tls *libc.TLS, dpy uintptr, pub uintptr) {
  17038. bp := tls.Alloc(32)
  17039. defer tls.Free(32)
  17040. var font uintptr
  17041. var v1 uint64
  17042. _, _ = font, v1
  17043. font = pub
  17044. if (*TXftFontInt)(unsafe.Pointer(font)).Fmax_glyph_memory != 0 {
  17045. if XXftDebug(tls)&int32(m_XFT_DBG_CACHE) != 0 {
  17046. if (*TXftFontInt)(unsafe.Pointer(font)).Fglyph_memory > (*TXftFontInt)(unsafe.Pointer(font)).Fmax_glyph_memory {
  17047. if (*TXftFontInt)(unsafe.Pointer(font)).Fglyphset != 0 {
  17048. v1 = (*TXftFontInt)(unsafe.Pointer(font)).Fglyphset
  17049. } else {
  17050. v1 = uint64(font)
  17051. }
  17052. libc.Xprintf(tls, __ccgo_ts+1954, libc.VaList(bp+8, v1, (*TXftFontInt)(unsafe.Pointer(font)).Fglyph_memory, (*TXftFontInt)(unsafe.Pointer(font)).Fmax_glyph_memory))
  17053. }
  17054. }
  17055. for (*TXftFontInt)(unsafe.Pointer(font)).Fglyph_memory > (*TXftFontInt)(unsafe.Pointer(font)).Fmax_glyph_memory {
  17056. X_XftFontUncacheGlyph(tls, dpy, pub)
  17057. }
  17058. }
  17059. X_XftDisplayManageMemory(tls, dpy)
  17060. }
  17061. /* xftxlfd.c */
  17062. var __XftConfigInitialized int32
  17063. func XXftInit(tls *libc.TLS, config uintptr) (r int32) {
  17064. if __XftConfigInitialized != 0 {
  17065. return int32(m_True)
  17066. }
  17067. __XftConfigInitialized = int32(m_True)
  17068. if !(libfontconfig.XFcInit(tls) != 0) {
  17069. return m_False
  17070. }
  17071. return int32(m_True)
  17072. }
  17073. func XXftGetVersion(tls *libc.TLS) (r int32) {
  17074. return libc.Int32FromInt32(m_XFT_MAJOR)*libc.Int32FromInt32(10000) + libc.Int32FromInt32(m_XFT_MINOR)*libc.Int32FromInt32(100) + libc.Int32FromInt32(m_XFT_REVISION)
  17075. }
  17076. var _XftInUse = [4]struct {
  17077. Fname uintptr
  17078. Falloc_count int32
  17079. Falloc_mem Tsize_t
  17080. Ffree_count int32
  17081. Ffree_mem Tsize_t
  17082. }{
  17083. 0: {
  17084. Fname: __ccgo_ts + 2000,
  17085. },
  17086. 1: {
  17087. Fname: __ccgo_ts + 2008,
  17088. },
  17089. 2: {
  17090. Fname: __ccgo_ts + 2016,
  17091. },
  17092. 3: {
  17093. Fname: __ccgo_ts + 2026,
  17094. },
  17095. }
  17096. var _XftAllocCount int32
  17097. var _XftAllocMem Tsize_t
  17098. var _XftFreeCount int32
  17099. var _XftFreeMem Tsize_t
  17100. var _XftMemNotice = uint64(libc.Int32FromInt32(1) * libc.Int32FromInt32(1024) * libc.Int32FromInt32(1024))
  17101. var _XftAllocNotify Tsize_t
  17102. var _XftFreeNotify Tsize_t
  17103. func XXftMemReport(tls *libc.TLS) {
  17104. bp := tls.Alloc(48)
  17105. defer tls.Free(48)
  17106. var i int32
  17107. _ = i
  17108. libc.Xprintf(tls, __ccgo_ts+2035, 0)
  17109. libc.Xprintf(tls, __ccgo_ts+2054, 0)
  17110. libc.Xprintf(tls, __ccgo_ts+2093, 0)
  17111. i = 0
  17112. for {
  17113. if !(i < int32(_XFT_MEM_NUM)) {
  17114. break
  17115. }
  17116. libc.Xprintf(tls, __ccgo_ts+2137, libc.VaList(bp+8, _XftInUse[i].Fname, _XftInUse[i].Falloc_count, _XftInUse[i].Falloc_mem, _XftInUse[i].Ffree_count, _XftInUse[i].Ffree_mem))
  17117. goto _1
  17118. _1:
  17119. ;
  17120. i++
  17121. }
  17122. libc.Xprintf(tls, __ccgo_ts+2137, libc.VaList(bp+8, __ccgo_ts+2159, _XftAllocCount, _XftAllocMem, _XftFreeCount, _XftFreeMem))
  17123. _XftAllocNotify = uint64(0)
  17124. _XftFreeNotify = uint64(0)
  17125. }
  17126. func XXftMemAlloc(tls *libc.TLS, kind int32, size Tsize_t) {
  17127. if XXftDebug(tls)&int32(m_XFT_DBG_MEMORY) != 0 {
  17128. _XftInUse[kind].Falloc_count++
  17129. _XftInUse[kind].Falloc_mem += size
  17130. _XftAllocCount++
  17131. _XftAllocMem += size
  17132. _XftAllocNotify += size
  17133. if _XftAllocNotify > _XftMemNotice {
  17134. XXftMemReport(tls)
  17135. }
  17136. }
  17137. }
  17138. func XXftMemFree(tls *libc.TLS, kind int32, size Tsize_t) {
  17139. if XXftDebug(tls)&int32(m_XFT_DBG_MEMORY) != 0 {
  17140. _XftInUse[kind].Ffree_count++
  17141. _XftInUse[kind].Ffree_mem += size
  17142. _XftFreeCount++
  17143. _XftFreeMem += size
  17144. _XftFreeNotify += size
  17145. if _XftFreeNotify > _XftMemNotice {
  17146. XXftMemReport(tls)
  17147. }
  17148. }
  17149. }
  17150. /* xftxlfd.c */
  17151. func XXftListFontsPatternObjects(tls *libc.TLS, dpy uintptr, screen int32, pattern uintptr, os uintptr) (r uintptr) {
  17152. return libfontconfig.XFcFontList(tls, libc.UintptrFromInt32(0), pattern, os)
  17153. }
  17154. func XXftListFonts(tls *libc.TLS, dpy uintptr, screen int32, va1 uintptr) (r uintptr) {
  17155. bp := tls.Alloc(16)
  17156. defer tls.Free(16)
  17157. var __o__, __ob__, __os__, __p__, first, fs, os, pattern uintptr
  17158. var va Tva_list
  17159. var _ /* __v__ at bp+0 */ TFcValue
  17160. _, _, _, _, _, _, _, _, _ = __o__, __ob__, __os__, __p__, first, fs, os, pattern, va
  17161. va = va1
  17162. __p__ = libc.UintptrFromInt32(0)
  17163. if !(__p__ != 0) {
  17164. __p__ = libfontconfig.XFcPatternCreate(tls)
  17165. if !(__p__ != 0) {
  17166. goto _FcPatternVapBuild_bail0
  17167. }
  17168. }
  17169. for {
  17170. __o__ = libc.VaUintptr(&va)
  17171. if !(__o__ != 0) {
  17172. break
  17173. }
  17174. (*(*TFcValue)(unsafe.Pointer(bp))).Ftype1 = libc.VaInt32(&va)
  17175. switch (*(*TFcValue)(unsafe.Pointer(bp))).Ftype1 {
  17176. case int32(_FcTypeUnknown):
  17177. fallthrough
  17178. case int32(_FcTypeVoid):
  17179. goto _FcPatternVapBuild_bail1
  17180. case int32(_FcTypeInteger):
  17181. *(*int32)(unsafe.Pointer(bp + 8)) = libc.VaInt32(&va)
  17182. case int32(_FcTypeDouble):
  17183. *(*float64)(unsafe.Pointer(bp + 8)) = libc.VaFloat64(&va)
  17184. case int32(_FcTypeString):
  17185. *(*uintptr)(unsafe.Pointer(bp + 8)) = libc.VaUintptr(&va)
  17186. case int32(_FcTypeBool):
  17187. *(*TFcBool)(unsafe.Pointer(bp + 8)) = libc.VaInt32(&va)
  17188. case int32(_FcTypeMatrix):
  17189. *(*uintptr)(unsafe.Pointer(bp + 8)) = libc.VaUintptr(&va)
  17190. case int32(_FcTypeCharSet):
  17191. *(*uintptr)(unsafe.Pointer(bp + 8)) = libc.VaUintptr(&va)
  17192. case int32(_FcTypeFTFace):
  17193. *(*uintptr)(unsafe.Pointer(bp + 8)) = libc.VaUintptr(&va)
  17194. case int32(_FcTypeLangSet):
  17195. *(*uintptr)(unsafe.Pointer(bp + 8)) = libc.VaUintptr(&va)
  17196. case int32(_FcTypeRange):
  17197. *(*uintptr)(unsafe.Pointer(bp + 8)) = libc.VaUintptr(&va)
  17198. break
  17199. }
  17200. if !(libfontconfig.XFcPatternAdd(tls, __p__, __o__, *(*TFcValue)(unsafe.Pointer(bp)), int32(m_FcTrue)) != 0) {
  17201. goto _FcPatternVapBuild_bail1
  17202. }
  17203. goto _1
  17204. _1:
  17205. }
  17206. pattern = __p__
  17207. goto _FcPatternVapBuild_return
  17208. goto _FcPatternVapBuild_bail1
  17209. _FcPatternVapBuild_bail1:
  17210. ;
  17211. if !(libc.UintptrFromInt32(0) != 0) {
  17212. libfontconfig.XFcPatternDestroy(tls, __p__)
  17213. }
  17214. goto _FcPatternVapBuild_bail0
  17215. _FcPatternVapBuild_bail0:
  17216. ;
  17217. pattern = libc.UintptrFromInt32(0)
  17218. goto _FcPatternVapBuild_return
  17219. _FcPatternVapBuild_return:
  17220. ;
  17221. first = libc.VaUintptr(&va)
  17222. os = uintptr(0)
  17223. __os__ = libfontconfig.XFcObjectSetCreate(tls)
  17224. if !(__os__ != 0) {
  17225. goto _FcObjectSetVapBuild_bail0
  17226. }
  17227. __ob__ = first
  17228. for __ob__ != 0 {
  17229. if !(libfontconfig.XFcObjectSetAdd(tls, __os__, __ob__) != 0) {
  17230. goto _FcObjectSetVapBuild_bail1
  17231. }
  17232. __ob__ = libc.VaUintptr(&va)
  17233. }
  17234. os = __os__
  17235. goto _FcObjectSetVapBuild_bail1
  17236. _FcObjectSetVapBuild_bail1:
  17237. ;
  17238. if !(os != 0) && __os__ != 0 {
  17239. libfontconfig.XFcObjectSetDestroy(tls, __os__)
  17240. }
  17241. goto _FcObjectSetVapBuild_bail0
  17242. _FcObjectSetVapBuild_bail0:
  17243. ;
  17244. _ = va
  17245. fs = XXftListFontsPatternObjects(tls, dpy, screen, pattern, os)
  17246. libfontconfig.XFcPatternDestroy(tls, pattern)
  17247. libfontconfig.XFcObjectSetDestroy(tls, os)
  17248. return fs
  17249. }
  17250. /* xftxlfd.c */
  17251. func XXftNameParse(tls *libc.TLS, name uintptr) (r uintptr) {
  17252. return libfontconfig.XFcNameParse(tls, name)
  17253. }
  17254. func XXftNameUnparse(tls *libc.TLS, pat uintptr, dest uintptr, len1 int32) (r TFcBool) {
  17255. var name, new1 uintptr
  17256. _, _ = name, new1
  17257. name = libfontconfig.XFcNameUnparse(tls, pat)
  17258. if !(name != 0) {
  17259. return m_FcFalse
  17260. }
  17261. if libc.Xstrlen(tls, name)+uint64(1) > uint64(len1) {
  17262. new1 = libfontconfig.XFcPatternDuplicate(tls, pat)
  17263. libc.Xfree(tls, name)
  17264. libfontconfig.XFcPatternDel(tls, new1, __ccgo_ts+2165)
  17265. libfontconfig.XFcPatternDel(tls, new1, __ccgo_ts+1400)
  17266. name = libfontconfig.XFcNameUnparse(tls, new1)
  17267. libfontconfig.XFcPatternDestroy(tls, new1)
  17268. if !(name != 0) {
  17269. return m_FcFalse
  17270. }
  17271. if libc.Xstrlen(tls, name)+uint64(1) > uint64(len1) {
  17272. libc.X__builtin___strncpy_chk(tls, dest, name, uint64(len1)-uint64(1), uint64(libc.X__builtin_object_size(tls, dest, int32(1))))
  17273. *(*int8)(unsafe.Pointer(dest + uintptr(len1-int32(1)))) = int8('\000')
  17274. libc.Xfree(tls, name)
  17275. return m_FcFalse
  17276. }
  17277. }
  17278. libc.X__builtin___strcpy_chk(tls, dest, name, libc.X__builtin_object_size(tls, dest, int32(1)))
  17279. libc.Xfree(tls, name)
  17280. return int32(m_FcTrue)
  17281. }
  17282. const m_NUM_ELT_LOCAL = 128
  17283. /* xftxlfd.c */
  17284. /*===---- stdint.h - Standard header for sized integer types --------------===* *
  17285. * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
  17286. * See https://llvm.org/LICENSE.txt for license information.
  17287. * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
  17288. *
  17289. \*===----------------------------------------------------------------------===*/
  17290. // C documentation
  17291. //
  17292. // /*
  17293. // * Dispatch glyph drawing to the correct XRenderCompositeString function
  17294. // */
  17295. func __XftCompositeString(tls *libc.TLS, dpy uintptr, op int32, src TPicture, dst TPicture, format uintptr, glyphset TGlyphSet, srcx int32, srcy int32, dstx int32, dsty int32, charwidth int32, chars uintptr, nchars int32) {
  17296. if nchars == 0 {
  17297. return
  17298. }
  17299. switch charwidth {
  17300. case int32(1):
  17301. fallthrough
  17302. default:
  17303. libxrender.XXRenderCompositeString8(tls, dpy, op, src, dst, format, glyphset, srcx, srcy, dstx, dsty, chars, nchars)
  17304. case int32(2):
  17305. libxrender.XXRenderCompositeString16(tls, dpy, op, src, dst, format, glyphset, srcx, srcy, dstx, dsty, chars, nchars)
  17306. case int32(4):
  17307. libxrender.XXRenderCompositeString32(tls, dpy, op, src, dst, format, glyphset, srcx, srcy, dstx, dsty, chars, nchars)
  17308. break
  17309. }
  17310. }
  17311. /*
  17312. * Use the Render extension to draw the glyphs
  17313. */
  17314. func XXftGlyphRender(tls *libc.TLS, dpy uintptr, op int32, src TPicture, pub uintptr, dst TPicture, srcx int32, srcy int32, x int32, y int32, glyphs uintptr, nglyphs int32) {
  17315. bp := tls.Alloc(5136)
  17316. defer tls.Free(5136)
  17317. var char16, char32, char8, chars, font, glyph uintptr
  17318. var dstx, dsty, i, j, width int32
  17319. var g, max TFT_UInt
  17320. var glyphs_loaded TFcBool
  17321. var needed, size Tsize_t
  17322. var wire TGlyph
  17323. var _ /* char_local at bp+1028 */ [1024]uint32
  17324. var _ /* missing at bp+0 */ [256]TFT_UInt
  17325. var _ /* nmissing at bp+1024 */ int32
  17326. _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = char16, char32, char8, chars, dstx, dsty, font, g, glyph, glyphs_loaded, i, j, max, needed, size, width, wire
  17327. font = pub
  17328. if !((*TXftFontInt)(unsafe.Pointer(font)).Fformat != 0) {
  17329. return
  17330. }
  17331. /*
  17332. * Load missing glyphs
  17333. */
  17334. *(*int32)(unsafe.Pointer(bp + 1024)) = 0
  17335. max = uint32(0)
  17336. glyphs_loaded = m_FcFalse
  17337. i = 0
  17338. for {
  17339. if !(i < nglyphs) {
  17340. break
  17341. }
  17342. g = *(*TFT_UInt)(unsafe.Pointer(glyphs + uintptr(i)*4))
  17343. if g > max {
  17344. max = g
  17345. }
  17346. if XXftFontCheckGlyph(tls, dpy, pub, int32(m_FcTrue), g, bp, bp+1024) != 0 {
  17347. glyphs_loaded = int32(m_FcTrue)
  17348. }
  17349. goto _1
  17350. _1:
  17351. ;
  17352. i++
  17353. }
  17354. if *(*int32)(unsafe.Pointer(bp + 1024)) != 0 {
  17355. XXftFontLoadGlyphs(tls, dpy, pub, int32(m_FcTrue), bp, *(*int32)(unsafe.Pointer(bp + 1024)))
  17356. }
  17357. if !((*TXftFontInt)(unsafe.Pointer(font)).Fglyphset != 0) {
  17358. goto bail1
  17359. }
  17360. if max < uint32(0x100) {
  17361. width = int32(1)
  17362. size = uint64(1)
  17363. } else {
  17364. if max < uint32(0x10000) {
  17365. width = int32(2)
  17366. size = uint64(2)
  17367. } else {
  17368. width = int32(4)
  17369. size = uint64(4)
  17370. }
  17371. }
  17372. chars = bp + 1028
  17373. if uint64(nglyphs) > uint64(18446744073709551615)/size {
  17374. goto bail1
  17375. }
  17376. needed = uint64(nglyphs) * size
  17377. if needed > uint64(4096) {
  17378. chars = libc.Xmalloc(tls, needed)
  17379. if !(chars != 0) {
  17380. goto bail1
  17381. }
  17382. }
  17383. dstx = x
  17384. dsty = y
  17385. char8 = chars
  17386. char16 = chars
  17387. char32 = chars
  17388. i = 0
  17389. j = libc.Int32FromInt32(0)
  17390. for {
  17391. if !(i < nglyphs) {
  17392. break
  17393. }
  17394. wire = uint64(*(*TFT_UInt)(unsafe.Pointer(glyphs + uintptr(i)*4)))
  17395. if wire >= uint64((*TXftFontInt)(unsafe.Pointer(font)).Fnum_glyphs) || !(*(*uintptr)(unsafe.Pointer((*TXftFontInt)(unsafe.Pointer(font)).Fglyphs + uintptr(wire)*8)) != 0) {
  17396. wire = uint64(0)
  17397. }
  17398. glyph = *(*uintptr)(unsafe.Pointer((*TXftFontInt)(unsafe.Pointer(font)).Fglyphs + uintptr(wire)*8))
  17399. if glyph == libc.UintptrFromInt32(0) {
  17400. goto _2
  17401. }
  17402. if (*TXftGlyph)(unsafe.Pointer(glyph)).Fpicture != 0 {
  17403. __XftCompositeString(tls, dpy, op, src, dst, (*TXftFontInt)(unsafe.Pointer(font)).Fformat, (*TXftFontInt)(unsafe.Pointer(font)).Fglyphset, srcx, srcy, x, y, width, chars, j)
  17404. libxrender.XXRenderComposite(tls, dpy, int32(m_PictOpOver), (*TXftGlyph)(unsafe.Pointer(glyph)).Fpicture, uint64(0), dst, 0, 0, 0, 0, dstx-int32((*TXftGlyph)(unsafe.Pointer(glyph)).Fmetrics.Fx), dsty-int32((*TXftGlyph)(unsafe.Pointer(glyph)).Fmetrics.Fy), uint32((*TXftGlyph)(unsafe.Pointer(glyph)).Fmetrics.Fwidth), uint32((*TXftGlyph)(unsafe.Pointer(glyph)).Fmetrics.Fheight))
  17405. dstx += int32((*TXftGlyph)(unsafe.Pointer(glyph)).Fmetrics.FxOff)
  17406. dsty += int32((*TXftGlyph)(unsafe.Pointer(glyph)).Fmetrics.FyOff)
  17407. x = dstx
  17408. y = dsty
  17409. j = 0
  17410. } else {
  17411. switch width {
  17412. case int32(1):
  17413. *(*int8)(unsafe.Pointer(char8 + uintptr(j))) = int8(wire)
  17414. case int32(2):
  17415. *(*uint16)(unsafe.Pointer(char16 + uintptr(j)*2)) = uint16(wire)
  17416. case int32(4):
  17417. *(*uint32)(unsafe.Pointer(char32 + uintptr(j)*4)) = uint32(wire)
  17418. break
  17419. }
  17420. dstx += int32((*TXftGlyph)(unsafe.Pointer(glyph)).Fmetrics.FxOff)
  17421. dsty += int32((*TXftGlyph)(unsafe.Pointer(glyph)).Fmetrics.FyOff)
  17422. j++
  17423. }
  17424. goto _2
  17425. _2:
  17426. ;
  17427. i++
  17428. }
  17429. __XftCompositeString(tls, dpy, op, src, dst, (*TXftFontInt)(unsafe.Pointer(font)).Fformat, (*TXftFontInt)(unsafe.Pointer(font)).Fglyphset, srcx, srcy, x, y, width, chars, j)
  17430. if chars != bp+1028 {
  17431. libc.Xfree(tls, chars)
  17432. }
  17433. goto bail1
  17434. bail1:
  17435. ;
  17436. if glyphs_loaded != 0 {
  17437. X_XftFontManageMemory(tls, dpy, pub)
  17438. }
  17439. }
  17440. // C documentation
  17441. //
  17442. // /*
  17443. // * Dispatch glyph drawing to the correct XRenderCompositeText function
  17444. // */
  17445. func __XftCompositeText(tls *libc.TLS, dpy uintptr, op int32, src TPicture, dst TPicture, format uintptr, srcx int32, srcy int32, dstx int32, dsty int32, eltwidth int32, elts uintptr, nelt int32) {
  17446. if nelt == 0 {
  17447. return
  17448. }
  17449. switch eltwidth {
  17450. case int32(1):
  17451. fallthrough
  17452. default:
  17453. libxrender.XXRenderCompositeText8(tls, dpy, op, src, dst, format, srcx, srcy, dstx, dsty, elts, nelt)
  17454. case int32(2):
  17455. libxrender.XXRenderCompositeText16(tls, dpy, op, src, dst, format, srcx, srcy, dstx, dsty, elts, nelt)
  17456. case int32(4):
  17457. libxrender.XXRenderCompositeText32(tls, dpy, op, src, dst, format, srcx, srcy, dstx, dsty, elts, nelt)
  17458. break
  17459. }
  17460. }
  17461. func XXftGlyphSpecRender(tls *libc.TLS, dpy uintptr, op int32, src TPicture, pub uintptr, dst TPicture, srcx int32, srcy int32, glyphs uintptr, nglyphs int32) {
  17462. bp := tls.Alloc(9232)
  17463. defer tls.Free(9232)
  17464. var char16, char32, char8, chars, elts, font, glyph, v4, v7 uintptr
  17465. var g, max TFT_UInt
  17466. var glyphs_loaded TFcBool
  17467. var i, j, n, nelt, size, width, x, y, v3, v5 int32
  17468. var _ /* char_local at bp+1028 */ [1024]uint32
  17469. var _ /* elts_local at bp+5128 */ [128]TXGlyphElt8
  17470. var _ /* missing at bp+0 */ [256]TFT_UInt
  17471. var _ /* nmissing at bp+1024 */ int32
  17472. _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = char16, char32, char8, chars, elts, font, g, glyph, glyphs_loaded, i, j, max, n, nelt, size, width, x, y, v3, v4, v5, v7
  17473. font = pub
  17474. if !((*TXftFontInt)(unsafe.Pointer(font)).Fformat != 0) {
  17475. return
  17476. }
  17477. if !(nglyphs != 0) {
  17478. return
  17479. }
  17480. /*
  17481. * Load missing glyphs
  17482. */
  17483. max = uint32(0)
  17484. *(*int32)(unsafe.Pointer(bp + 1024)) = 0
  17485. glyphs_loaded = m_FcFalse
  17486. g = (*(*TXftGlyphSpec)(unsafe.Pointer(glyphs))).Fglyph
  17487. i = 0
  17488. for {
  17489. if !(i < nglyphs) {
  17490. break
  17491. }
  17492. g = (*(*TXftGlyphSpec)(unsafe.Pointer(glyphs + uintptr(i)*8))).Fglyph
  17493. if g > max {
  17494. max = g
  17495. }
  17496. if XXftFontCheckGlyph(tls, dpy, pub, int32(m_FcTrue), g, bp, bp+1024) != 0 {
  17497. glyphs_loaded = int32(m_FcTrue)
  17498. }
  17499. goto _1
  17500. _1:
  17501. ;
  17502. i++
  17503. }
  17504. if *(*int32)(unsafe.Pointer(bp + 1024)) != 0 {
  17505. XXftFontLoadGlyphs(tls, dpy, pub, int32(m_FcTrue), bp, *(*int32)(unsafe.Pointer(bp + 1024)))
  17506. }
  17507. if !((*TXftFontInt)(unsafe.Pointer(font)).Fglyphset != 0) {
  17508. goto bail1
  17509. }
  17510. /*
  17511. * See what encoding size is needed
  17512. */
  17513. if max < uint32(0x100) {
  17514. size = int32(1)
  17515. width = int32(1)
  17516. } else {
  17517. if max < uint32(0x10000) {
  17518. size = int32(2)
  17519. width = int32(2)
  17520. } else {
  17521. size = int32(4)
  17522. width = int32(4)
  17523. }
  17524. }
  17525. chars = bp + 1028
  17526. if nglyphs*size > int32(m_NUM_LOCAL) {
  17527. chars = libc.Xmalloc(tls, uint64(nglyphs*size))
  17528. if !(chars != 0) {
  17529. goto bail1
  17530. }
  17531. }
  17532. char8 = chars
  17533. char16 = chars
  17534. char32 = chars
  17535. /*
  17536. * Compute the number of glyph elts needed
  17537. */
  17538. nelt = int32(1)
  17539. i = 0
  17540. for {
  17541. if !(i < nglyphs) {
  17542. break
  17543. }
  17544. g = (*(*TXftGlyphSpec)(unsafe.Pointer(glyphs + uintptr(i)*8))).Fglyph
  17545. /* Substitute default for non-existent glyphs */
  17546. if g >= (*TXftFontInt)(unsafe.Pointer(font)).Fnum_glyphs || !(*(*uintptr)(unsafe.Pointer((*TXftFontInt)(unsafe.Pointer(font)).Fglyphs + uintptr(g)*8)) != 0) {
  17547. g = uint32(0)
  17548. }
  17549. if *(*uintptr)(unsafe.Pointer((*TXftFontInt)(unsafe.Pointer(font)).Fglyphs + uintptr(g)*8)) != 0 {
  17550. break
  17551. }
  17552. goto _2
  17553. _2:
  17554. ;
  17555. i++
  17556. }
  17557. if i == nglyphs {
  17558. goto bail2
  17559. }
  17560. glyph = *(*uintptr)(unsafe.Pointer((*TXftFontInt)(unsafe.Pointer(font)).Fglyphs + uintptr(g)*8))
  17561. x = int32((*(*TXftGlyphSpec)(unsafe.Pointer(glyphs + uintptr(i)*8))).Fx) + int32((*TXftGlyph)(unsafe.Pointer(glyph)).Fmetrics.FxOff)
  17562. y = int32((*(*TXftGlyphSpec)(unsafe.Pointer(glyphs + uintptr(i)*8))).Fy) + int32((*TXftGlyph)(unsafe.Pointer(glyph)).Fmetrics.FyOff)
  17563. for {
  17564. i++
  17565. v3 = i
  17566. if !(v3 < nglyphs) {
  17567. break
  17568. }
  17569. g = (*(*TXftGlyphSpec)(unsafe.Pointer(glyphs + uintptr(i)*8))).Fglyph
  17570. /* Substitute default for non-existent glyphs */
  17571. if g >= (*TXftFontInt)(unsafe.Pointer(font)).Fnum_glyphs || !(*(*uintptr)(unsafe.Pointer((*TXftFontInt)(unsafe.Pointer(font)).Fglyphs + uintptr(g)*8)) != 0) {
  17572. g = uint32(0)
  17573. }
  17574. /*
  17575. * check to see if the glyph is placed where it would
  17576. * fall using the normal spacing and if it would render
  17577. * as a XRender glyph
  17578. */
  17579. v4 = *(*uintptr)(unsafe.Pointer((*TXftFontInt)(unsafe.Pointer(font)).Fglyphs + uintptr(g)*8))
  17580. glyph = v4
  17581. if v4 != 0 && !((*TXftGlyph)(unsafe.Pointer(glyph)).Fpicture != 0) {
  17582. if x != int32((*(*TXftGlyphSpec)(unsafe.Pointer(glyphs + uintptr(i)*8))).Fx) || y != int32((*(*TXftGlyphSpec)(unsafe.Pointer(glyphs + uintptr(i)*8))).Fy) {
  17583. x = int32((*(*TXftGlyphSpec)(unsafe.Pointer(glyphs + uintptr(i)*8))).Fx)
  17584. y = int32((*(*TXftGlyphSpec)(unsafe.Pointer(glyphs + uintptr(i)*8))).Fy)
  17585. nelt++
  17586. }
  17587. x += int32((*TXftGlyph)(unsafe.Pointer(glyph)).Fmetrics.FxOff)
  17588. y += int32((*TXftGlyph)(unsafe.Pointer(glyph)).Fmetrics.FyOff)
  17589. }
  17590. }
  17591. elts = bp + 5128
  17592. if nelt > int32(m_NUM_ELT_LOCAL) {
  17593. elts = libc.Xmalloc(tls, uint64(nelt)*uint64(32))
  17594. if !(elts != 0) {
  17595. goto bail2
  17596. }
  17597. }
  17598. /*
  17599. * Generate the list of glyph elts or render color glyphs
  17600. */
  17601. nelt = 0
  17602. v5 = libc.Int32FromInt32(0)
  17603. y = v5
  17604. x = v5
  17605. n = 0
  17606. j = 0
  17607. i = 0
  17608. for {
  17609. if !(i < nglyphs) {
  17610. break
  17611. }
  17612. g = (*(*TXftGlyphSpec)(unsafe.Pointer(glyphs + uintptr(i)*8))).Fglyph
  17613. /* Substitute default for non-existent glyphs */
  17614. if g >= (*TXftFontInt)(unsafe.Pointer(font)).Fnum_glyphs || !(*(*uintptr)(unsafe.Pointer((*TXftFontInt)(unsafe.Pointer(font)).Fglyphs + uintptr(g)*8)) != 0) {
  17615. g = uint32(0)
  17616. }
  17617. v7 = *(*uintptr)(unsafe.Pointer((*TXftFontInt)(unsafe.Pointer(font)).Fglyphs + uintptr(g)*8))
  17618. glyph = v7
  17619. if v7 != 0 {
  17620. if (*TXftGlyph)(unsafe.Pointer(glyph)).Fpicture != 0 {
  17621. libxrender.XXRenderComposite(tls, dpy, int32(m_PictOpOver), (*TXftGlyph)(unsafe.Pointer(glyph)).Fpicture, uint64(0), dst, 0, 0, 0, 0, int32((*(*TXftGlyphSpec)(unsafe.Pointer(glyphs + uintptr(i)*8))).Fx)-int32((*TXftGlyph)(unsafe.Pointer(glyph)).Fmetrics.Fx), int32((*(*TXftGlyphSpec)(unsafe.Pointer(glyphs + uintptr(i)*8))).Fy)-int32((*TXftGlyph)(unsafe.Pointer(glyph)).Fmetrics.Fy), uint32((*TXftGlyph)(unsafe.Pointer(glyph)).Fmetrics.Fwidth), uint32((*TXftGlyph)(unsafe.Pointer(glyph)).Fmetrics.Fheight))
  17622. goto _6
  17623. }
  17624. if !(i != 0) || x != int32((*(*TXftGlyphSpec)(unsafe.Pointer(glyphs + uintptr(i)*8))).Fx) || y != int32((*(*TXftGlyphSpec)(unsafe.Pointer(glyphs + uintptr(i)*8))).Fy) {
  17625. if n != 0 {
  17626. (*(*TXGlyphElt8)(unsafe.Pointer(elts + uintptr(nelt)*32))).Fnchars = n
  17627. nelt++
  17628. }
  17629. (*(*TXGlyphElt8)(unsafe.Pointer(elts + uintptr(nelt)*32))).Fglyphset = (*TXftFontInt)(unsafe.Pointer(font)).Fglyphset
  17630. (*(*TXGlyphElt8)(unsafe.Pointer(elts + uintptr(nelt)*32))).Fchars = char8 + uintptr(size*j)
  17631. (*(*TXGlyphElt8)(unsafe.Pointer(elts + uintptr(nelt)*32))).FxOff = int32((*(*TXftGlyphSpec)(unsafe.Pointer(glyphs + uintptr(i)*8))).Fx) - x
  17632. (*(*TXGlyphElt8)(unsafe.Pointer(elts + uintptr(nelt)*32))).FyOff = int32((*(*TXftGlyphSpec)(unsafe.Pointer(glyphs + uintptr(i)*8))).Fy) - y
  17633. x = int32((*(*TXftGlyphSpec)(unsafe.Pointer(glyphs + uintptr(i)*8))).Fx)
  17634. y = int32((*(*TXftGlyphSpec)(unsafe.Pointer(glyphs + uintptr(i)*8))).Fy)
  17635. n = 0
  17636. }
  17637. switch width {
  17638. case int32(1):
  17639. *(*int8)(unsafe.Pointer(char8 + uintptr(j))) = int8(g)
  17640. case int32(2):
  17641. *(*uint16)(unsafe.Pointer(char16 + uintptr(j)*2)) = uint16(g)
  17642. case int32(4):
  17643. *(*uint32)(unsafe.Pointer(char32 + uintptr(j)*4)) = g
  17644. break
  17645. }
  17646. x += int32((*TXftGlyph)(unsafe.Pointer(glyph)).Fmetrics.FxOff)
  17647. y += int32((*TXftGlyph)(unsafe.Pointer(glyph)).Fmetrics.FyOff)
  17648. j++
  17649. n++
  17650. }
  17651. goto _6
  17652. _6:
  17653. ;
  17654. i++
  17655. }
  17656. if n != 0 {
  17657. (*(*TXGlyphElt8)(unsafe.Pointer(elts + uintptr(nelt)*32))).Fnchars = n
  17658. nelt++
  17659. }
  17660. __XftCompositeText(tls, dpy, op, src, dst, (*TXftFontInt)(unsafe.Pointer(font)).Fformat, srcx, srcy, int32((*(*TXftGlyphSpec)(unsafe.Pointer(glyphs))).Fx), int32((*(*TXftGlyphSpec)(unsafe.Pointer(glyphs))).Fy), width, elts, nelt)
  17661. if elts != bp+5128 {
  17662. libc.Xfree(tls, elts)
  17663. }
  17664. goto bail2
  17665. bail2:
  17666. ;
  17667. if chars != bp+1028 {
  17668. libc.Xfree(tls, chars)
  17669. }
  17670. goto bail1
  17671. bail1:
  17672. ;
  17673. if glyphs_loaded != 0 {
  17674. X_XftFontManageMemory(tls, dpy, pub)
  17675. }
  17676. }
  17677. func XXftCharSpecRender(tls *libc.TLS, dpy uintptr, op int32, src TPicture, pub uintptr, dst TPicture, srcx int32, srcy int32, chars uintptr, len1 int32) {
  17678. bp := tls.Alloc(8192)
  17679. defer tls.Free(8192)
  17680. var glyphs uintptr
  17681. var i int32
  17682. var _ /* glyphs_local at bp+0 */ [1024]TXftGlyphSpec
  17683. _, _ = glyphs, i
  17684. if len1 <= 0 {
  17685. return
  17686. }
  17687. if len1 <= int32(m_NUM_LOCAL) {
  17688. glyphs = bp
  17689. } else {
  17690. glyphs = libc.Xmalloc(tls, uint64(len1)*uint64(8))
  17691. if !(glyphs != 0) {
  17692. return
  17693. }
  17694. }
  17695. i = 0
  17696. for {
  17697. if !(i < len1) {
  17698. break
  17699. }
  17700. (*(*TXftGlyphSpec)(unsafe.Pointer(glyphs + uintptr(i)*8))).Fglyph = XXftCharIndex(tls, dpy, pub, (*(*TXftCharSpec)(unsafe.Pointer(chars + uintptr(i)*8))).Fucs4)
  17701. (*(*TXftGlyphSpec)(unsafe.Pointer(glyphs + uintptr(i)*8))).Fx = (*(*TXftCharSpec)(unsafe.Pointer(chars + uintptr(i)*8))).Fx
  17702. (*(*TXftGlyphSpec)(unsafe.Pointer(glyphs + uintptr(i)*8))).Fy = (*(*TXftCharSpec)(unsafe.Pointer(chars + uintptr(i)*8))).Fy
  17703. goto _1
  17704. _1:
  17705. ;
  17706. i++
  17707. }
  17708. XXftGlyphSpecRender(tls, dpy, op, src, pub, dst, srcx, srcy, glyphs, len1)
  17709. if glyphs != bp {
  17710. libc.Xfree(tls, glyphs)
  17711. }
  17712. }
  17713. /*
  17714. * Choose which format to draw text in when drawing with fonts
  17715. * of different formats. The trick is that ARGB formats aren't
  17716. * compatible with A formats as PictOpAdd does the wrong thing, so
  17717. * fall back to an A format when presented with an ARGB and A format
  17718. */
  17719. func _XftPreferFormat(tls *libc.TLS, dpy uintptr, a uintptr, b uintptr) (r uintptr) {
  17720. var prefer uintptr
  17721. _ = prefer
  17722. prefer = libc.UintptrFromInt32(0)
  17723. if a == b {
  17724. prefer = a
  17725. } else {
  17726. if libc.BoolInt32((*TXRenderPictFormat)(unsafe.Pointer(a)).Fdepth == int32(32)) != libc.BoolInt32((*TXRenderPictFormat)(unsafe.Pointer(b)).Fdepth == int32(32)) {
  17727. prefer = libxrender.XXRenderFindStandardFormat(tls, dpy, int32(m_PictStandardA8))
  17728. } else {
  17729. if (*TXRenderPictFormat)(unsafe.Pointer(a)).Fdepth > (*TXRenderPictFormat)(unsafe.Pointer(b)).Fdepth {
  17730. prefer = a
  17731. } else {
  17732. prefer = b
  17733. }
  17734. }
  17735. }
  17736. return prefer
  17737. }
  17738. func XXftGlyphFontSpecRender(tls *libc.TLS, dpy uintptr, op int32, src TPicture, dst TPicture, srcx int32, srcy int32, glyphs uintptr, nglyphs int32) {
  17739. bp := tls.Alloc(9232)
  17740. defer tls.Free(9232)
  17741. var char16, char32, char8, chars, elts, firstFont, font, font1, font2, font3, format, glyph, prevPublic, pub, pub1, pub2, pub3, v4, v7 uintptr
  17742. var g, max TFT_UInt
  17743. var glyphs_loaded TFcBool
  17744. var i, j, n, nelt, size, width, x, y, v3, v5 int32
  17745. var _ /* char_local at bp+1028 */ [1024]uint32
  17746. var _ /* elts_local at bp+5128 */ [128]TXGlyphElt8
  17747. var _ /* missing at bp+0 */ [256]TFT_UInt
  17748. var _ /* nmissing at bp+1024 */ int32
  17749. _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = char16, char32, char8, chars, elts, firstFont, font, font1, font2, font3, format, g, glyph, glyphs_loaded, i, j, max, n, nelt, prevPublic, pub, pub1, pub2, pub3, size, width, x, y, v3, v4, v5, v7
  17750. if !(nglyphs != 0) {
  17751. return
  17752. }
  17753. /*
  17754. * Load missing glyphs. Have to load them
  17755. * one at a time in case the font changes
  17756. */
  17757. max = uint32(0)
  17758. glyphs_loaded = m_FcFalse
  17759. g = (*(*TXftGlyphFontSpec)(unsafe.Pointer(glyphs))).Fglyph
  17760. i = 0
  17761. for {
  17762. if !(i < nglyphs) {
  17763. break
  17764. }
  17765. pub = (*(*TXftGlyphFontSpec)(unsafe.Pointer(glyphs + uintptr(i)*16))).Ffont
  17766. font = pub
  17767. g = (*(*TXftGlyphFontSpec)(unsafe.Pointer(glyphs + uintptr(i)*16))).Fglyph
  17768. if g > max {
  17769. max = g
  17770. }
  17771. *(*int32)(unsafe.Pointer(bp + 1024)) = 0
  17772. if XXftFontCheckGlyph(tls, dpy, pub, int32(m_FcTrue), g, bp, bp+1024) != 0 {
  17773. glyphs_loaded = int32(m_FcTrue)
  17774. }
  17775. if *(*int32)(unsafe.Pointer(bp + 1024)) != 0 {
  17776. XXftFontLoadGlyphs(tls, dpy, pub, int32(m_FcTrue), bp, *(*int32)(unsafe.Pointer(bp + 1024)))
  17777. }
  17778. if !((*TXftFontInt)(unsafe.Pointer(font)).Fformat != 0) {
  17779. goto bail1
  17780. }
  17781. if !((*TXftFontInt)(unsafe.Pointer(font)).Fglyphset != 0) {
  17782. goto bail1
  17783. }
  17784. goto _1
  17785. _1:
  17786. ;
  17787. i++
  17788. }
  17789. /*
  17790. * See what encoding size is needed
  17791. */
  17792. if max < uint32(0x100) {
  17793. size = int32(1)
  17794. width = int32(1)
  17795. } else {
  17796. if max < uint32(0x10000) {
  17797. size = int32(2)
  17798. width = int32(2)
  17799. } else {
  17800. size = int32(4)
  17801. width = int32(4)
  17802. }
  17803. }
  17804. chars = bp + 1028
  17805. if nglyphs*size > int32(m_NUM_LOCAL) {
  17806. chars = libc.Xmalloc(tls, uint64(nglyphs*size))
  17807. if !(chars != 0) {
  17808. goto bail1
  17809. }
  17810. }
  17811. char8 = chars
  17812. char16 = chars
  17813. char32 = chars
  17814. /*
  17815. * Compute the number of glyph elts needed
  17816. */
  17817. nelt = int32(1)
  17818. firstFont = libc.UintptrFromInt32(0)
  17819. i = 0
  17820. for {
  17821. if !(i < nglyphs) {
  17822. break
  17823. }
  17824. pub1 = (*(*TXftGlyphFontSpec)(unsafe.Pointer(glyphs + uintptr(i)*16))).Ffont
  17825. font1 = pub1
  17826. g = (*(*TXftGlyphFontSpec)(unsafe.Pointer(glyphs + uintptr(i)*16))).Fglyph
  17827. /* Substitute default for non-existent glyphs */
  17828. if g >= (*TXftFontInt)(unsafe.Pointer(font1)).Fnum_glyphs || !(*(*uintptr)(unsafe.Pointer((*TXftFontInt)(unsafe.Pointer(font1)).Fglyphs + uintptr(g)*8)) != 0) {
  17829. g = uint32(0)
  17830. }
  17831. if *(*uintptr)(unsafe.Pointer((*TXftFontInt)(unsafe.Pointer(font1)).Fglyphs + uintptr(g)*8)) != 0 {
  17832. firstFont = font1
  17833. break
  17834. }
  17835. goto _2
  17836. _2:
  17837. ;
  17838. i++
  17839. }
  17840. if i == nglyphs || !(firstFont != 0) {
  17841. goto bail2
  17842. }
  17843. glyph = *(*uintptr)(unsafe.Pointer((*TXftFontInt)(unsafe.Pointer(firstFont)).Fglyphs + uintptr(g)*8))
  17844. format = (*TXftFontInt)(unsafe.Pointer(firstFont)).Fformat
  17845. x = int32((*(*TXftGlyphFontSpec)(unsafe.Pointer(glyphs + uintptr(i)*16))).Fx) + int32((*TXftGlyph)(unsafe.Pointer(glyph)).Fmetrics.FxOff)
  17846. y = int32((*(*TXftGlyphFontSpec)(unsafe.Pointer(glyphs + uintptr(i)*16))).Fy) + int32((*TXftGlyph)(unsafe.Pointer(glyph)).Fmetrics.FyOff)
  17847. prevPublic = libc.UintptrFromInt32(0)
  17848. for {
  17849. i++
  17850. v3 = i
  17851. if !(v3 < nglyphs) {
  17852. break
  17853. }
  17854. pub2 = (*(*TXftGlyphFontSpec)(unsafe.Pointer(glyphs + uintptr(i)*16))).Ffont
  17855. font2 = pub2
  17856. g = (*(*TXftGlyphFontSpec)(unsafe.Pointer(glyphs + uintptr(i)*16))).Fglyph
  17857. /* Substitute default for non-existent glyphs */
  17858. if g >= (*TXftFontInt)(unsafe.Pointer(font2)).Fnum_glyphs || !(*(*uintptr)(unsafe.Pointer((*TXftFontInt)(unsafe.Pointer(font2)).Fglyphs + uintptr(g)*8)) != 0) {
  17859. g = uint32(0)
  17860. }
  17861. /*
  17862. * check to see if the glyph is placed where it would
  17863. * fall using the normal spacing
  17864. */
  17865. v4 = *(*uintptr)(unsafe.Pointer((*TXftFontInt)(unsafe.Pointer(font2)).Fglyphs + uintptr(g)*8))
  17866. glyph = v4
  17867. if v4 != 0 && !((*TXftGlyph)(unsafe.Pointer(glyph)).Fpicture != 0) {
  17868. if pub2 != prevPublic || x != int32((*(*TXftGlyphFontSpec)(unsafe.Pointer(glyphs + uintptr(i)*16))).Fx) || y != int32((*(*TXftGlyphFontSpec)(unsafe.Pointer(glyphs + uintptr(i)*16))).Fy) {
  17869. prevPublic = pub2
  17870. if (*TXftFontInt)(unsafe.Pointer(font2)).Fformat != format {
  17871. format = _XftPreferFormat(tls, dpy, (*TXftFontInt)(unsafe.Pointer(font2)).Fformat, format)
  17872. }
  17873. x = int32((*(*TXftGlyphFontSpec)(unsafe.Pointer(glyphs + uintptr(i)*16))).Fx)
  17874. y = int32((*(*TXftGlyphFontSpec)(unsafe.Pointer(glyphs + uintptr(i)*16))).Fy)
  17875. nelt++
  17876. }
  17877. x += int32((*TXftGlyph)(unsafe.Pointer(glyph)).Fmetrics.FxOff)
  17878. y += int32((*TXftGlyph)(unsafe.Pointer(glyph)).Fmetrics.FyOff)
  17879. }
  17880. }
  17881. elts = bp + 5128
  17882. if nelt > int32(m_NUM_ELT_LOCAL) {
  17883. elts = libc.Xmalloc(tls, uint64(nelt)*uint64(32))
  17884. if !(elts != 0) {
  17885. goto bail2
  17886. }
  17887. }
  17888. /*
  17889. * Generate the list of glyph elts and render color glyphs
  17890. */
  17891. nelt = 0
  17892. v5 = libc.Int32FromInt32(0)
  17893. y = v5
  17894. x = v5
  17895. n = 0
  17896. j = 0
  17897. prevPublic = libc.UintptrFromInt32(0)
  17898. i = 0
  17899. for {
  17900. if !(i < nglyphs) {
  17901. break
  17902. }
  17903. pub3 = (*(*TXftGlyphFontSpec)(unsafe.Pointer(glyphs + uintptr(i)*16))).Ffont
  17904. font3 = pub3
  17905. g = (*(*TXftGlyphFontSpec)(unsafe.Pointer(glyphs + uintptr(i)*16))).Fglyph
  17906. /* Substitute default for non-existent glyphs */
  17907. if g >= (*TXftFontInt)(unsafe.Pointer(font3)).Fnum_glyphs || !(*(*uintptr)(unsafe.Pointer((*TXftFontInt)(unsafe.Pointer(font3)).Fglyphs + uintptr(g)*8)) != 0) {
  17908. g = uint32(0)
  17909. }
  17910. v7 = *(*uintptr)(unsafe.Pointer((*TXftFontInt)(unsafe.Pointer(font3)).Fglyphs + uintptr(g)*8))
  17911. glyph = v7
  17912. if v7 != 0 {
  17913. if (*TXftGlyph)(unsafe.Pointer(glyph)).Fpicture != 0 {
  17914. libxrender.XXRenderComposite(tls, dpy, int32(m_PictOpOver), (*TXftGlyph)(unsafe.Pointer(glyph)).Fpicture, uint64(0), dst, 0, 0, 0, 0, int32((*(*TXftGlyphFontSpec)(unsafe.Pointer(glyphs + uintptr(i)*16))).Fx)-int32((*TXftGlyph)(unsafe.Pointer(glyph)).Fmetrics.Fx), int32((*(*TXftGlyphFontSpec)(unsafe.Pointer(glyphs + uintptr(i)*16))).Fy)-int32((*TXftGlyph)(unsafe.Pointer(glyph)).Fmetrics.Fy), uint32((*TXftGlyph)(unsafe.Pointer(glyph)).Fmetrics.Fwidth), uint32((*TXftGlyph)(unsafe.Pointer(glyph)).Fmetrics.Fheight))
  17915. goto _6
  17916. }
  17917. if !(i != 0) || pub3 != prevPublic || x != int32((*(*TXftGlyphFontSpec)(unsafe.Pointer(glyphs + uintptr(i)*16))).Fx) || y != int32((*(*TXftGlyphFontSpec)(unsafe.Pointer(glyphs + uintptr(i)*16))).Fy) {
  17918. if n != 0 {
  17919. (*(*TXGlyphElt8)(unsafe.Pointer(elts + uintptr(nelt)*32))).Fnchars = n
  17920. nelt++
  17921. }
  17922. (*(*TXGlyphElt8)(unsafe.Pointer(elts + uintptr(nelt)*32))).Fglyphset = (*TXftFontInt)(unsafe.Pointer(font3)).Fglyphset
  17923. (*(*TXGlyphElt8)(unsafe.Pointer(elts + uintptr(nelt)*32))).Fchars = char8 + uintptr(size*j)
  17924. (*(*TXGlyphElt8)(unsafe.Pointer(elts + uintptr(nelt)*32))).FxOff = int32((*(*TXftGlyphFontSpec)(unsafe.Pointer(glyphs + uintptr(i)*16))).Fx) - x
  17925. (*(*TXGlyphElt8)(unsafe.Pointer(elts + uintptr(nelt)*32))).FyOff = int32((*(*TXftGlyphFontSpec)(unsafe.Pointer(glyphs + uintptr(i)*16))).Fy) - y
  17926. prevPublic = pub3
  17927. x = int32((*(*TXftGlyphFontSpec)(unsafe.Pointer(glyphs + uintptr(i)*16))).Fx)
  17928. y = int32((*(*TXftGlyphFontSpec)(unsafe.Pointer(glyphs + uintptr(i)*16))).Fy)
  17929. n = 0
  17930. }
  17931. switch width {
  17932. case int32(1):
  17933. *(*int8)(unsafe.Pointer(char8 + uintptr(j))) = int8(g)
  17934. case int32(2):
  17935. *(*uint16)(unsafe.Pointer(char16 + uintptr(j)*2)) = uint16(g)
  17936. case int32(4):
  17937. *(*uint32)(unsafe.Pointer(char32 + uintptr(j)*4)) = g
  17938. break
  17939. }
  17940. x += int32((*TXftGlyph)(unsafe.Pointer(glyph)).Fmetrics.FxOff)
  17941. y += int32((*TXftGlyph)(unsafe.Pointer(glyph)).Fmetrics.FyOff)
  17942. j++
  17943. n++
  17944. }
  17945. goto _6
  17946. _6:
  17947. ;
  17948. i++
  17949. }
  17950. if n != 0 {
  17951. (*(*TXGlyphElt8)(unsafe.Pointer(elts + uintptr(nelt)*32))).Fnchars = n
  17952. nelt++
  17953. }
  17954. __XftCompositeText(tls, dpy, op, src, dst, format, srcx, srcy, int32((*(*TXftGlyphFontSpec)(unsafe.Pointer(glyphs))).Fx), int32((*(*TXftGlyphFontSpec)(unsafe.Pointer(glyphs))).Fy), width, elts, nelt)
  17955. if elts != bp+5128 {
  17956. libc.Xfree(tls, elts)
  17957. }
  17958. goto bail2
  17959. bail2:
  17960. ;
  17961. if chars != bp+1028 {
  17962. libc.Xfree(tls, chars)
  17963. }
  17964. goto bail1
  17965. bail1:
  17966. ;
  17967. if glyphs_loaded != 0 {
  17968. i = 0
  17969. for {
  17970. if !(i < nglyphs) {
  17971. break
  17972. }
  17973. X_XftFontManageMemory(tls, dpy, (*(*TXftGlyphFontSpec)(unsafe.Pointer(glyphs + uintptr(i)*16))).Ffont)
  17974. goto _8
  17975. _8:
  17976. ;
  17977. i++
  17978. }
  17979. }
  17980. }
  17981. func XXftCharFontSpecRender(tls *libc.TLS, dpy uintptr, op int32, src TPicture, dst TPicture, srcx int32, srcy int32, chars uintptr, len1 int32) {
  17982. bp := tls.Alloc(16384)
  17983. defer tls.Free(16384)
  17984. var glyphs uintptr
  17985. var i int32
  17986. var _ /* glyphs_local at bp+0 */ [1024]TXftGlyphFontSpec
  17987. _, _ = glyphs, i
  17988. if len1 <= 0 {
  17989. return
  17990. }
  17991. if len1 <= int32(m_NUM_LOCAL) {
  17992. glyphs = bp
  17993. } else {
  17994. glyphs = libc.Xmalloc(tls, uint64(len1)*uint64(16))
  17995. if !(glyphs != 0) {
  17996. return
  17997. }
  17998. }
  17999. i = 0
  18000. for {
  18001. if !(i < len1) {
  18002. break
  18003. }
  18004. (*(*TXftGlyphFontSpec)(unsafe.Pointer(glyphs + uintptr(i)*16))).Ffont = (*(*TXftCharFontSpec)(unsafe.Pointer(chars + uintptr(i)*16))).Ffont
  18005. (*(*TXftGlyphFontSpec)(unsafe.Pointer(glyphs + uintptr(i)*16))).Fglyph = XXftCharIndex(tls, dpy, (*(*TXftGlyphFontSpec)(unsafe.Pointer(glyphs + uintptr(i)*16))).Ffont, (*(*TXftCharFontSpec)(unsafe.Pointer(chars + uintptr(i)*16))).Fucs4)
  18006. (*(*TXftGlyphFontSpec)(unsafe.Pointer(glyphs + uintptr(i)*16))).Fx = (*(*TXftCharFontSpec)(unsafe.Pointer(chars + uintptr(i)*16))).Fx
  18007. (*(*TXftGlyphFontSpec)(unsafe.Pointer(glyphs + uintptr(i)*16))).Fy = (*(*TXftCharFontSpec)(unsafe.Pointer(chars + uintptr(i)*16))).Fy
  18008. goto _1
  18009. _1:
  18010. ;
  18011. i++
  18012. }
  18013. XXftGlyphFontSpecRender(tls, dpy, op, src, dst, srcx, srcy, glyphs, len1)
  18014. if glyphs != bp {
  18015. libc.Xfree(tls, glyphs)
  18016. }
  18017. }
  18018. func XXftTextRender8(tls *libc.TLS, dpy uintptr, op int32, src TPicture, pub uintptr, dst TPicture, srcx int32, srcy int32, x int32, y int32, string1 uintptr, len1 int32) {
  18019. bp := tls.Alloc(4096)
  18020. defer tls.Free(4096)
  18021. var glyphs uintptr
  18022. var i int32
  18023. var _ /* glyphs_local at bp+0 */ [1024]TFT_UInt
  18024. _, _ = glyphs, i
  18025. if len1 <= 0 {
  18026. return
  18027. }
  18028. if len1 <= int32(m_NUM_LOCAL) {
  18029. glyphs = bp
  18030. } else {
  18031. glyphs = libc.Xmalloc(tls, uint64(len1)*uint64(4))
  18032. if !(glyphs != 0) {
  18033. return
  18034. }
  18035. }
  18036. i = 0
  18037. for {
  18038. if !(i < len1) {
  18039. break
  18040. }
  18041. *(*TFT_UInt)(unsafe.Pointer(glyphs + uintptr(i)*4)) = XXftCharIndex(tls, dpy, pub, uint32(*(*TFcChar8)(unsafe.Pointer(string1 + uintptr(i)))))
  18042. goto _1
  18043. _1:
  18044. ;
  18045. i++
  18046. }
  18047. XXftGlyphRender(tls, dpy, op, src, pub, dst, srcx, srcy, x, y, glyphs, len1)
  18048. if glyphs != bp {
  18049. libc.Xfree(tls, glyphs)
  18050. }
  18051. }
  18052. func XXftTextRender16(tls *libc.TLS, dpy uintptr, op int32, src TPicture, pub uintptr, dst TPicture, srcx int32, srcy int32, x int32, y int32, string1 uintptr, len1 int32) {
  18053. bp := tls.Alloc(4096)
  18054. defer tls.Free(4096)
  18055. var glyphs uintptr
  18056. var i int32
  18057. var _ /* glyphs_local at bp+0 */ [1024]TFT_UInt
  18058. _, _ = glyphs, i
  18059. if len1 <= 0 {
  18060. return
  18061. }
  18062. if len1 <= int32(m_NUM_LOCAL) {
  18063. glyphs = bp
  18064. } else {
  18065. glyphs = libc.Xmalloc(tls, uint64(len1)*uint64(4))
  18066. if !(glyphs != 0) {
  18067. return
  18068. }
  18069. }
  18070. i = 0
  18071. for {
  18072. if !(i < len1) {
  18073. break
  18074. }
  18075. *(*TFT_UInt)(unsafe.Pointer(glyphs + uintptr(i)*4)) = XXftCharIndex(tls, dpy, pub, uint32(*(*TFcChar16)(unsafe.Pointer(string1 + uintptr(i)*2))))
  18076. goto _1
  18077. _1:
  18078. ;
  18079. i++
  18080. }
  18081. XXftGlyphRender(tls, dpy, op, src, pub, dst, srcx, srcy, x, y, glyphs, len1)
  18082. if glyphs != bp {
  18083. libc.Xfree(tls, glyphs)
  18084. }
  18085. }
  18086. func XXftTextRender16BE(tls *libc.TLS, dpy uintptr, op int32, src TPicture, pub uintptr, dst TPicture, srcx int32, srcy int32, x int32, y int32, string1 uintptr, len1 int32) {
  18087. bp := tls.Alloc(4096)
  18088. defer tls.Free(4096)
  18089. var glyphs uintptr
  18090. var i int32
  18091. var _ /* glyphs_local at bp+0 */ [1024]TFT_UInt
  18092. _, _ = glyphs, i
  18093. if len1 <= 0 {
  18094. return
  18095. }
  18096. if len1 <= int32(m_NUM_LOCAL) {
  18097. glyphs = bp
  18098. } else {
  18099. glyphs = libc.Xmalloc(tls, uint64(len1)*uint64(4))
  18100. if !(glyphs != 0) {
  18101. return
  18102. }
  18103. }
  18104. i = 0
  18105. for {
  18106. if !(i < len1) {
  18107. break
  18108. }
  18109. *(*TFT_UInt)(unsafe.Pointer(glyphs + uintptr(i)*4)) = XXftCharIndex(tls, dpy, pub, uint32(int32(*(*TFcChar8)(unsafe.Pointer(string1 + uintptr(i*int32(2)))))<<libc.Int32FromInt32(8)|int32(*(*TFcChar8)(unsafe.Pointer(string1 + uintptr(i*int32(2)+int32(1)))))))
  18110. goto _1
  18111. _1:
  18112. ;
  18113. i++
  18114. }
  18115. XXftGlyphRender(tls, dpy, op, src, pub, dst, srcx, srcy, x, y, glyphs, len1)
  18116. if glyphs != bp {
  18117. libc.Xfree(tls, glyphs)
  18118. }
  18119. }
  18120. func XXftTextRender16LE(tls *libc.TLS, dpy uintptr, op int32, src TPicture, pub uintptr, dst TPicture, srcx int32, srcy int32, x int32, y int32, string1 uintptr, len1 int32) {
  18121. bp := tls.Alloc(4096)
  18122. defer tls.Free(4096)
  18123. var glyphs uintptr
  18124. var i int32
  18125. var _ /* glyphs_local at bp+0 */ [1024]TFT_UInt
  18126. _, _ = glyphs, i
  18127. if len1 <= 0 {
  18128. return
  18129. }
  18130. if len1 <= int32(m_NUM_LOCAL) {
  18131. glyphs = bp
  18132. } else {
  18133. glyphs = libc.Xmalloc(tls, uint64(len1)*uint64(4))
  18134. if !(glyphs != 0) {
  18135. return
  18136. }
  18137. }
  18138. i = 0
  18139. for {
  18140. if !(i < len1) {
  18141. break
  18142. }
  18143. *(*TFT_UInt)(unsafe.Pointer(glyphs + uintptr(i)*4)) = XXftCharIndex(tls, dpy, pub, uint32(int32(*(*TFcChar8)(unsafe.Pointer(string1 + uintptr(i*int32(2)))))|int32(*(*TFcChar8)(unsafe.Pointer(string1 + uintptr(i*int32(2)+int32(1)))))<<libc.Int32FromInt32(8)))
  18144. goto _1
  18145. _1:
  18146. ;
  18147. i++
  18148. }
  18149. XXftGlyphRender(tls, dpy, op, src, pub, dst, srcx, srcy, x, y, glyphs, len1)
  18150. if glyphs != bp {
  18151. libc.Xfree(tls, glyphs)
  18152. }
  18153. }
  18154. func XXftTextRender32(tls *libc.TLS, dpy uintptr, op int32, src TPicture, pub uintptr, dst TPicture, srcx int32, srcy int32, x int32, y int32, string1 uintptr, len1 int32) {
  18155. bp := tls.Alloc(4096)
  18156. defer tls.Free(4096)
  18157. var glyphs uintptr
  18158. var i int32
  18159. var _ /* glyphs_local at bp+0 */ [1024]TFT_UInt
  18160. _, _ = glyphs, i
  18161. if len1 <= 0 {
  18162. return
  18163. }
  18164. if len1 <= int32(m_NUM_LOCAL) {
  18165. glyphs = bp
  18166. } else {
  18167. glyphs = libc.Xmalloc(tls, uint64(len1)*uint64(4))
  18168. if !(glyphs != 0) {
  18169. return
  18170. }
  18171. }
  18172. i = 0
  18173. for {
  18174. if !(i < len1) {
  18175. break
  18176. }
  18177. *(*TFT_UInt)(unsafe.Pointer(glyphs + uintptr(i)*4)) = XXftCharIndex(tls, dpy, pub, *(*TFcChar32)(unsafe.Pointer(string1 + uintptr(i)*4)))
  18178. goto _1
  18179. _1:
  18180. ;
  18181. i++
  18182. }
  18183. XXftGlyphRender(tls, dpy, op, src, pub, dst, srcx, srcy, x, y, glyphs, len1)
  18184. if glyphs != bp {
  18185. libc.Xfree(tls, glyphs)
  18186. }
  18187. }
  18188. func XXftTextRender32BE(tls *libc.TLS, dpy uintptr, op int32, src TPicture, pub uintptr, dst TPicture, srcx int32, srcy int32, x int32, y int32, string1 uintptr, len1 int32) {
  18189. bp := tls.Alloc(4096)
  18190. defer tls.Free(4096)
  18191. var glyphs uintptr
  18192. var i int32
  18193. var _ /* glyphs_local at bp+0 */ [1024]TFT_UInt
  18194. _, _ = glyphs, i
  18195. if len1 <= 0 {
  18196. return
  18197. }
  18198. if len1 <= int32(m_NUM_LOCAL) {
  18199. glyphs = bp
  18200. } else {
  18201. glyphs = libc.Xmalloc(tls, uint64(len1)*uint64(4))
  18202. if !(glyphs != 0) {
  18203. return
  18204. }
  18205. }
  18206. i = 0
  18207. for {
  18208. if !(i < len1) {
  18209. break
  18210. }
  18211. *(*TFT_UInt)(unsafe.Pointer(glyphs + uintptr(i)*4)) = XXftCharIndex(tls, dpy, pub, uint32(int32(*(*TFcChar8)(unsafe.Pointer(string1 + uintptr(i*int32(4)))))<<libc.Int32FromInt32(24)|int32(*(*TFcChar8)(unsafe.Pointer(string1 + uintptr(i*int32(4)+int32(1)))))<<libc.Int32FromInt32(16)|int32(*(*TFcChar8)(unsafe.Pointer(string1 + uintptr(i*int32(4)+int32(2)))))<<libc.Int32FromInt32(8)|int32(*(*TFcChar8)(unsafe.Pointer(string1 + uintptr(i*int32(4)+int32(3)))))))
  18212. goto _1
  18213. _1:
  18214. ;
  18215. i++
  18216. }
  18217. XXftGlyphRender(tls, dpy, op, src, pub, dst, srcx, srcy, x, y, glyphs, len1)
  18218. if glyphs != bp {
  18219. libc.Xfree(tls, glyphs)
  18220. }
  18221. }
  18222. func XXftTextRender32LE(tls *libc.TLS, dpy uintptr, op int32, src TPicture, pub uintptr, dst TPicture, srcx int32, srcy int32, x int32, y int32, string1 uintptr, len1 int32) {
  18223. bp := tls.Alloc(4096)
  18224. defer tls.Free(4096)
  18225. var glyphs uintptr
  18226. var i int32
  18227. var _ /* glyphs_local at bp+0 */ [1024]TFT_UInt
  18228. _, _ = glyphs, i
  18229. if len1 <= 0 {
  18230. return
  18231. }
  18232. if len1 <= int32(m_NUM_LOCAL) {
  18233. glyphs = bp
  18234. } else {
  18235. glyphs = libc.Xmalloc(tls, uint64(len1)*uint64(4))
  18236. if !(glyphs != 0) {
  18237. return
  18238. }
  18239. }
  18240. i = 0
  18241. for {
  18242. if !(i < len1) {
  18243. break
  18244. }
  18245. *(*TFT_UInt)(unsafe.Pointer(glyphs + uintptr(i)*4)) = XXftCharIndex(tls, dpy, pub, uint32(int32(*(*TFcChar8)(unsafe.Pointer(string1 + uintptr(i*int32(4)))))|int32(*(*TFcChar8)(unsafe.Pointer(string1 + uintptr(i*int32(4)+int32(1)))))<<libc.Int32FromInt32(8)|int32(*(*TFcChar8)(unsafe.Pointer(string1 + uintptr(i*int32(4)+int32(2)))))<<libc.Int32FromInt32(16)|int32(*(*TFcChar8)(unsafe.Pointer(string1 + uintptr(i*int32(4)+int32(3)))))<<libc.Int32FromInt32(24)))
  18246. goto _1
  18247. _1:
  18248. ;
  18249. i++
  18250. }
  18251. XXftGlyphRender(tls, dpy, op, src, pub, dst, srcx, srcy, x, y, glyphs, len1)
  18252. if glyphs != bp {
  18253. libc.Xfree(tls, glyphs)
  18254. }
  18255. }
  18256. func XXftTextRenderUtf8(tls *libc.TLS, dpy uintptr, op int32, src TPicture, pub uintptr, dst TPicture, srcx int32, srcy int32, x int32, y int32, string1 uintptr, len1 int32) {
  18257. bp := tls.Alloc(4112)
  18258. defer tls.Free(4112)
  18259. var glyphs, glyphs_new uintptr
  18260. var i, l, size, v1, v3 int32
  18261. var v2 bool
  18262. var _ /* glyphs_local at bp+0 */ [1024]TFT_UInt
  18263. var _ /* ucs4 at bp+4096 */ TFcChar32
  18264. _, _, _, _, _, _, _, _ = glyphs, glyphs_new, i, l, size, v1, v2, v3
  18265. if len1 <= 0 {
  18266. return
  18267. }
  18268. i = 0
  18269. glyphs = bp
  18270. size = int32(m_NUM_LOCAL)
  18271. for {
  18272. if v2 = len1 != 0; v2 {
  18273. v1 = libfontconfig.XFcUtf8ToUcs4(tls, string1, bp+4096, len1)
  18274. l = v1
  18275. }
  18276. if !(v2 && v1 > 0) {
  18277. break
  18278. }
  18279. if i == size {
  18280. glyphs_new = libc.Xmalloc(tls, uint64(size*libc.Int32FromInt32(2))*uint64(4))
  18281. if !(glyphs_new != 0) {
  18282. if glyphs != bp {
  18283. libc.Xfree(tls, glyphs)
  18284. }
  18285. return
  18286. }
  18287. libc.X__builtin___memcpy_chk(tls, glyphs_new, glyphs, uint64(size)*uint64(4), uint64(libc.X__builtin_object_size(tls, glyphs_new, 0)))
  18288. size *= int32(2)
  18289. if glyphs != bp {
  18290. libc.Xfree(tls, glyphs)
  18291. }
  18292. glyphs = glyphs_new
  18293. }
  18294. v3 = i
  18295. i++
  18296. *(*TFT_UInt)(unsafe.Pointer(glyphs + uintptr(v3)*4)) = XXftCharIndex(tls, dpy, pub, *(*TFcChar32)(unsafe.Pointer(bp + 4096)))
  18297. string1 += uintptr(l)
  18298. len1 -= l
  18299. }
  18300. XXftGlyphRender(tls, dpy, op, src, pub, dst, srcx, srcy, x, y, glyphs, i)
  18301. if glyphs != bp {
  18302. libc.Xfree(tls, glyphs)
  18303. }
  18304. }
  18305. func XXftTextRenderUtf16(tls *libc.TLS, dpy uintptr, op int32, src TPicture, pub uintptr, dst TPicture, srcx int32, srcy int32, x int32, y int32, string1 uintptr, endian TFcEndian, len1 int32) {
  18306. bp := tls.Alloc(4112)
  18307. defer tls.Free(4112)
  18308. var glyphs, glyphs_new uintptr
  18309. var i, l, size, v1, v3 int32
  18310. var v2 bool
  18311. var _ /* glyphs_local at bp+0 */ [1024]TFT_UInt
  18312. var _ /* ucs4 at bp+4096 */ TFcChar32
  18313. _, _, _, _, _, _, _, _ = glyphs, glyphs_new, i, l, size, v1, v2, v3
  18314. if len1 <= 0 {
  18315. return
  18316. }
  18317. i = 0
  18318. glyphs = bp
  18319. size = int32(m_NUM_LOCAL)
  18320. for {
  18321. if v2 = len1 != 0; v2 {
  18322. v1 = libfontconfig.XFcUtf16ToUcs4(tls, string1, endian, bp+4096, len1)
  18323. l = v1
  18324. }
  18325. if !(v2 && v1 > 0) {
  18326. break
  18327. }
  18328. if i == size {
  18329. glyphs_new = libc.Xmalloc(tls, uint64(size*libc.Int32FromInt32(2))*uint64(4))
  18330. if !(glyphs_new != 0) {
  18331. if glyphs != bp {
  18332. libc.Xfree(tls, glyphs)
  18333. }
  18334. return
  18335. }
  18336. libc.X__builtin___memcpy_chk(tls, glyphs_new, glyphs, uint64(size)*uint64(4), uint64(libc.X__builtin_object_size(tls, glyphs_new, 0)))
  18337. size *= int32(2)
  18338. if glyphs != bp {
  18339. libc.Xfree(tls, glyphs)
  18340. }
  18341. glyphs = glyphs_new
  18342. }
  18343. v3 = i
  18344. i++
  18345. *(*TFT_UInt)(unsafe.Pointer(glyphs + uintptr(v3)*4)) = XXftCharIndex(tls, dpy, pub, *(*TFcChar32)(unsafe.Pointer(bp + 4096)))
  18346. string1 += uintptr(l)
  18347. len1 -= l
  18348. }
  18349. XXftGlyphRender(tls, dpy, int32(m_PictOpOver), src, pub, dst, srcx, srcy, x, y, glyphs, i)
  18350. if glyphs != bp {
  18351. libc.Xfree(tls, glyphs)
  18352. }
  18353. }
  18354. /* xftxlfd.c */
  18355. func X_XftMatchSymbolic(tls *libc.TLS, s uintptr, n int32, name uintptr, def int32) (r int32) {
  18356. var v1 int32
  18357. _ = v1
  18358. for {
  18359. v1 = n
  18360. n--
  18361. if !(v1 != 0) {
  18362. break
  18363. }
  18364. if !(libfontconfig.XFcStrCmpIgnoreCase(tls, (*TXftSymbolic)(unsafe.Pointer(s)).Fname, name) != 0) {
  18365. return (*TXftSymbolic)(unsafe.Pointer(s)).Fvalue
  18366. }
  18367. s += 16
  18368. }
  18369. return def
  18370. }
  18371. /* xftxlfd.c */
  18372. func XXftNativeByteOrder(tls *libc.TLS) (r int32) {
  18373. bp := tls.Alloc(16)
  18374. defer tls.Free(16)
  18375. var _ /* whichbyte at bp+0 */ int32
  18376. *(*int32)(unsafe.Pointer(bp)) = int32(1)
  18377. if *(*int8)(unsafe.Pointer(bp)) != 0 {
  18378. return m_LSBFirst
  18379. }
  18380. return int32(m_MSBFirst)
  18381. }
  18382. /* byte swap a 32-bit value */
  18383. /* byte swap a short */
  18384. /* byte swap a three-byte unit */
  18385. func XXftSwapCARD32(tls *libc.TLS, data uintptr, u int32) {
  18386. var n int8
  18387. var v1 int32
  18388. _, _ = n, v1
  18389. for {
  18390. v1 = u
  18391. u--
  18392. if !(v1 != 0) {
  18393. break
  18394. }
  18395. n = *(*int8)(unsafe.Pointer(data))
  18396. *(*int8)(unsafe.Pointer(data)) = *(*int8)(unsafe.Pointer(data + 3))
  18397. *(*int8)(unsafe.Pointer(data + 3)) = n
  18398. n = *(*int8)(unsafe.Pointer(data + 1))
  18399. *(*int8)(unsafe.Pointer(data + 1)) = *(*int8)(unsafe.Pointer(data + 2))
  18400. *(*int8)(unsafe.Pointer(data + 2)) = n
  18401. data += 4
  18402. }
  18403. }
  18404. func XXftSwapCARD24(tls *libc.TLS, data uintptr, width int32, height int32) {
  18405. var d uintptr
  18406. var n int8
  18407. var u, units, v1, v2 int32
  18408. _, _, _, _, _, _ = d, n, u, units, v1, v2
  18409. units = width / int32(3)
  18410. for {
  18411. v1 = height
  18412. height--
  18413. if !(v1 != 0) {
  18414. break
  18415. }
  18416. d = data
  18417. data += uintptr(width)
  18418. u = units
  18419. for {
  18420. v2 = u
  18421. u--
  18422. if !(v2 != 0) {
  18423. break
  18424. }
  18425. n = *(*int8)(unsafe.Pointer(d))
  18426. *(*int8)(unsafe.Pointer(d)) = *(*int8)(unsafe.Pointer(d + 2))
  18427. *(*int8)(unsafe.Pointer(d + 2)) = n
  18428. d += uintptr(3)
  18429. }
  18430. }
  18431. }
  18432. func XXftSwapCARD16(tls *libc.TLS, data uintptr, u int32) {
  18433. var n int8
  18434. var v1 int32
  18435. _, _ = n, v1
  18436. for {
  18437. v1 = u
  18438. u--
  18439. if !(v1 != 0) {
  18440. break
  18441. }
  18442. n = *(*int8)(unsafe.Pointer(data))
  18443. *(*int8)(unsafe.Pointer(data)) = *(*int8)(unsafe.Pointer(data + 1))
  18444. *(*int8)(unsafe.Pointer(data + 1)) = n
  18445. data += 2
  18446. }
  18447. }
  18448. func XXftSwapImage(tls *libc.TLS, image uintptr) {
  18449. switch (*TXImage)(unsafe.Pointer(image)).Fbits_per_pixel {
  18450. case int32(32):
  18451. XXftSwapCARD32(tls, (*TXImage)(unsafe.Pointer(image)).Fdata, (*TXImage)(unsafe.Pointer(image)).Fheight*(*TXImage)(unsafe.Pointer(image)).Fbytes_per_line>>int32(2))
  18452. case int32(24):
  18453. XXftSwapCARD24(tls, (*TXImage)(unsafe.Pointer(image)).Fdata, (*TXImage)(unsafe.Pointer(image)).Fbytes_per_line, (*TXImage)(unsafe.Pointer(image)).Fheight)
  18454. case int32(16):
  18455. XXftSwapCARD16(tls, (*TXImage)(unsafe.Pointer(image)).Fdata, (*TXImage)(unsafe.Pointer(image)).Fheight*(*TXImage)(unsafe.Pointer(image)).Fbytes_per_line>>int32(1))
  18456. default:
  18457. break
  18458. }
  18459. }
  18460. /* xftxlfd.c */
  18461. var _XftXlfdWeights = [6]TXftSymbolic{
  18462. 0: {
  18463. Fname: __ccgo_ts + 2170,
  18464. Fvalue: int32(m_FC_WEIGHT_LIGHT),
  18465. },
  18466. 1: {
  18467. Fname: __ccgo_ts + 2176,
  18468. Fvalue: int32(m_FC_WEIGHT_MEDIUM),
  18469. },
  18470. 2: {
  18471. Fname: __ccgo_ts + 2183,
  18472. Fvalue: int32(m_FC_WEIGHT_MEDIUM),
  18473. },
  18474. 3: {
  18475. Fname: __ccgo_ts + 2191,
  18476. Fvalue: int32(m_FC_WEIGHT_DEMIBOLD),
  18477. },
  18478. 4: {
  18479. Fname: __ccgo_ts + 2200,
  18480. Fvalue: int32(m_FC_WEIGHT_BOLD),
  18481. },
  18482. 5: {
  18483. Fname: __ccgo_ts + 2205,
  18484. Fvalue: int32(m_FC_WEIGHT_BLACK),
  18485. },
  18486. }
  18487. var _XftXlfdSlants = [3]TXftSymbolic{
  18488. 0: {
  18489. Fname: __ccgo_ts + 2211,
  18490. },
  18491. 1: {
  18492. Fname: __ccgo_ts + 2213,
  18493. Fvalue: int32(m_FC_SLANT_ITALIC),
  18494. },
  18495. 2: {
  18496. Fname: __ccgo_ts + 2215,
  18497. Fvalue: int32(m_FC_SLANT_OBLIQUE),
  18498. },
  18499. }
  18500. // C documentation
  18501. //
  18502. // /*
  18503. // * Cut out one XLFD field, placing it in 'save' and return
  18504. // * the start of 'save'
  18505. // */
  18506. func _XftSplitStr(tls *libc.TLS, field uintptr, save uintptr) (r uintptr) {
  18507. var c int8
  18508. var s, v1, v2 uintptr
  18509. _, _, _, _ = c, s, v1, v2
  18510. s = save
  18511. for *(*int8)(unsafe.Pointer(field)) != 0 {
  18512. if int32(*(*int8)(unsafe.Pointer(field))) == int32('-') {
  18513. break
  18514. }
  18515. v1 = field
  18516. field++
  18517. c = *(*int8)(unsafe.Pointer(v1))
  18518. v2 = save
  18519. save++
  18520. *(*int8)(unsafe.Pointer(v2)) = c
  18521. }
  18522. *(*int8)(unsafe.Pointer(save)) = 0
  18523. return s
  18524. }
  18525. /*
  18526. * convert one XLFD numeric field. Return -1 if the field is '*'
  18527. */
  18528. func _XftGetInt(tls *libc.TLS, ptr uintptr, val uintptr) (r uintptr) {
  18529. var v2 uintptr
  18530. _ = v2
  18531. if int32(*(*int8)(unsafe.Pointer(ptr))) == int32('*') {
  18532. *(*int32)(unsafe.Pointer(val)) = -int32(1)
  18533. ptr++
  18534. } else {
  18535. *(*int32)(unsafe.Pointer(val)) = 0
  18536. for {
  18537. if !(int32(*(*int8)(unsafe.Pointer(ptr))) >= int32('0') && int32(*(*int8)(unsafe.Pointer(ptr))) <= int32('9')) {
  18538. break
  18539. }
  18540. v2 = ptr
  18541. ptr++
  18542. *(*int32)(unsafe.Pointer(val)) = *(*int32)(unsafe.Pointer(val))*int32(10) + int32(*(*int8)(unsafe.Pointer(v2))) - int32('0')
  18543. goto _1
  18544. _1:
  18545. }
  18546. }
  18547. if int32(*(*int8)(unsafe.Pointer(ptr))) == int32('-') {
  18548. return ptr
  18549. }
  18550. return libc.UintptrFromInt32(0)
  18551. }
  18552. func XXftXlfdParse(tls *libc.TLS, xlfd_orig uintptr, ignore_scalable TFcBool, complete TFcBool) (r uintptr) {
  18553. bp := tls.Alloc(16)
  18554. defer tls.Free(16)
  18555. var dpixel float64
  18556. var family, foundry, pat, save, slant, weight_name, xlfd, v1, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v2, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v3, v30, v31, v4, v5, v6, v7, v8, v9 uintptr
  18557. var slant_value, weight_value int32
  18558. var _ /* pixel at bp+0 */ int32
  18559. var _ /* point at bp+4 */ int32
  18560. var _ /* resx at bp+8 */ int32
  18561. var _ /* resy at bp+12 */ int32
  18562. _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = dpixel, family, foundry, pat, save, slant, slant_value, weight_name, weight_value, xlfd, v1, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v2, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v3, v30, v31, v4, v5, v6, v7, v8, v9
  18563. xlfd = xlfd_orig
  18564. if int32(*(*int8)(unsafe.Pointer(xlfd))) != int32('-') {
  18565. return libc.UintptrFromInt32(0)
  18566. }
  18567. xlfd++
  18568. v3 = xlfd
  18569. v2 = v3
  18570. foundry = v2
  18571. v1 = libc.Xstrchr(tls, v2, int32('-'))
  18572. xlfd = v1
  18573. if !(v1 != 0) {
  18574. return libc.UintptrFromInt32(0)
  18575. }
  18576. xlfd++
  18577. v6 = xlfd
  18578. v5 = v6
  18579. family = v5
  18580. v4 = libc.Xstrchr(tls, v5, int32('-'))
  18581. xlfd = v4
  18582. if !(v4 != 0) {
  18583. return libc.UintptrFromInt32(0)
  18584. }
  18585. xlfd++
  18586. v9 = xlfd
  18587. v8 = v9
  18588. weight_name = v8
  18589. v7 = libc.Xstrchr(tls, v8, int32('-'))
  18590. xlfd = v7
  18591. if !(v7 != 0) {
  18592. return libc.UintptrFromInt32(0)
  18593. }
  18594. xlfd++
  18595. v12 = xlfd
  18596. v11 = v12
  18597. slant = v11
  18598. v10 = libc.Xstrchr(tls, v11, int32('-'))
  18599. xlfd = v10
  18600. if !(v10 != 0) {
  18601. return libc.UintptrFromInt32(0)
  18602. }
  18603. xlfd++
  18604. v14 = xlfd
  18605. v13 = libc.Xstrchr(tls, v14, int32('-'))
  18606. xlfd = v13
  18607. if !(v13 != 0) {
  18608. return libc.UintptrFromInt32(0)
  18609. }
  18610. xlfd++
  18611. v16 = xlfd
  18612. v15 = libc.Xstrchr(tls, v16, int32('-'))
  18613. xlfd = v15
  18614. if !(v15 != 0) {
  18615. return libc.UintptrFromInt32(0)
  18616. }
  18617. xlfd++
  18618. v18 = xlfd
  18619. v17 = _XftGetInt(tls, v18, bp)
  18620. xlfd = v17
  18621. if !(v17 != 0) {
  18622. return libc.UintptrFromInt32(0)
  18623. }
  18624. xlfd++
  18625. v20 = xlfd
  18626. v19 = _XftGetInt(tls, v20, bp+4)
  18627. xlfd = v19
  18628. if !(v19 != 0) {
  18629. return libc.UintptrFromInt32(0)
  18630. }
  18631. xlfd++
  18632. v22 = xlfd
  18633. v21 = _XftGetInt(tls, v22, bp+8)
  18634. xlfd = v21
  18635. if !(v21 != 0) {
  18636. return libc.UintptrFromInt32(0)
  18637. }
  18638. xlfd++
  18639. v24 = xlfd
  18640. v23 = _XftGetInt(tls, v24, bp+12)
  18641. xlfd = v23
  18642. if !(v23 != 0) {
  18643. return libc.UintptrFromInt32(0)
  18644. }
  18645. xlfd++
  18646. v26 = xlfd
  18647. v25 = libc.Xstrchr(tls, v26, int32('-'))
  18648. xlfd = v25
  18649. if !(v25 != 0) {
  18650. return libc.UintptrFromInt32(0)
  18651. }
  18652. xlfd++
  18653. v28 = xlfd
  18654. v27 = libc.Xstrchr(tls, v28, int32('-'))
  18655. xlfd = v27
  18656. if !(v27 != 0) {
  18657. return libc.UintptrFromInt32(0)
  18658. }
  18659. xlfd++
  18660. v30 = xlfd
  18661. v29 = libc.Xstrchr(tls, v30, int32('-'))
  18662. xlfd = v29
  18663. if !(v29 != 0) {
  18664. return libc.UintptrFromInt32(0)
  18665. }
  18666. /* make sure no fields follow this one */
  18667. xlfd++
  18668. v31 = xlfd
  18669. if libc.Xstrchr(tls, v31, int32('-')) != 0 {
  18670. return libc.UintptrFromInt32(0)
  18671. }
  18672. if !(*(*int32)(unsafe.Pointer(bp)) != 0) {
  18673. return libc.UintptrFromInt32(0)
  18674. }
  18675. pat = libfontconfig.XFcPatternCreate(tls)
  18676. if !(pat != 0) {
  18677. return libc.UintptrFromInt32(0)
  18678. }
  18679. save = libc.Xmalloc(tls, libc.Xstrlen(tls, foundry)+uint64(1))
  18680. if !(save != 0) {
  18681. libfontconfig.XFcPatternDestroy(tls, pat)
  18682. return libc.UintptrFromInt32(0)
  18683. }
  18684. if !(libfontconfig.XFcPatternAddString(tls, pat, __ccgo_ts+2217, xlfd_orig) != 0) {
  18685. goto bail
  18686. }
  18687. _XftSplitStr(tls, foundry, save)
  18688. if *(*int8)(unsafe.Pointer(save)) != 0 && libc.Xstrcmp(tls, save, __ccgo_ts+2222) != 0 {
  18689. if !(libfontconfig.XFcPatternAddString(tls, pat, __ccgo_ts+2224, save) != 0) {
  18690. goto bail
  18691. }
  18692. }
  18693. _XftSplitStr(tls, family, save)
  18694. if *(*int8)(unsafe.Pointer(save)) != 0 && libc.Xstrcmp(tls, save, __ccgo_ts+2222) != 0 {
  18695. if !(libfontconfig.XFcPatternAddString(tls, pat, __ccgo_ts+2232, save) != 0) {
  18696. goto bail
  18697. }
  18698. }
  18699. weight_value = X_XftMatchSymbolic(tls, uintptr(unsafe.Pointer(&_XftXlfdWeights)), int32(libc.Uint64FromInt64(96)/libc.Uint64FromInt64(16)), _XftSplitStr(tls, weight_name, save), int32(m_FC_WEIGHT_MEDIUM))
  18700. if !(libfontconfig.XFcPatternAddInteger(tls, pat, __ccgo_ts+2239, weight_value) != 0) {
  18701. goto bail
  18702. }
  18703. slant_value = X_XftMatchSymbolic(tls, uintptr(unsafe.Pointer(&_XftXlfdSlants)), int32(libc.Uint64FromInt64(48)/libc.Uint64FromInt64(16)), _XftSplitStr(tls, slant, save), m_FC_SLANT_ROMAN)
  18704. if !(libfontconfig.XFcPatternAddInteger(tls, pat, __ccgo_ts+2246, slant_value) != 0) {
  18705. goto bail
  18706. }
  18707. dpixel = float64(*(*int32)(unsafe.Pointer(bp)))
  18708. if *(*int32)(unsafe.Pointer(bp + 4)) > 0 {
  18709. if !(libfontconfig.XFcPatternAddDouble(tls, pat, __ccgo_ts+2252, float64(*(*int32)(unsafe.Pointer(bp + 4)))/float64(10)) != 0) {
  18710. goto bail
  18711. }
  18712. if *(*int32)(unsafe.Pointer(bp)) <= 0 && *(*int32)(unsafe.Pointer(bp + 12)) > 0 {
  18713. dpixel = float64(*(*int32)(unsafe.Pointer(bp + 4))) * float64(*(*int32)(unsafe.Pointer(bp + 12))) / float64(720)
  18714. }
  18715. }
  18716. if dpixel > libc.Float64FromInt32(0) {
  18717. if !(libfontconfig.XFcPatternAddDouble(tls, pat, __ccgo_ts+1243, dpixel) != 0) {
  18718. goto bail
  18719. }
  18720. }
  18721. libc.Xfree(tls, save)
  18722. return pat
  18723. goto bail
  18724. bail:
  18725. ;
  18726. libc.Xfree(tls, save)
  18727. libfontconfig.XFcPatternDestroy(tls, pat)
  18728. return libc.UintptrFromInt32(0)
  18729. }
  18730. func __ccgo_fp(f interface{}) uintptr {
  18731. type iface [2]uintptr
  18732. return (*iface)(unsafe.Pointer(&f))[1]
  18733. }
  18734. /* xftxlfd.c */
  18735. var X_XftDisplayInfo uintptr
  18736. /* xftxlfd.c */
  18737. var X_XftFTlibrary TFT_Library
  18738. var __ccgo_ts = (*reflect.StringHeader)(unsafe.Pointer(&__ccgo_ts1)).Data
  18739. var __ccgo_ts1 = "XFT_DEBUG\x00XFT_DEBUG=%s\n\x00XftDisplayInfoGet Default visual 0x%x \x00format %d,%d,%d,%d\n\x00format indexed\n\x00No Render format for default visual\n\x00True\x00False\x00XftDisplayInfoGet initialized, hasRender set to \"%s\"\n\x00maxglyphmemory\x00global max cache memory %lu\n\x00maxunreffonts\x00global max unref fonts %d\n\x00trackmemusage\x00true\x00false\x00global track mem usage %s\n\x00XftDisplayInfoGet failed to initialize, Xft unhappy\n\x00Display glyph cache incorrect has %lu bytes, should have %lu\n\x00Reduce global memory from %lu to %lu\n\x00update max cache memory %lu\n\x00update max unref fonts %d\n\x00update track mem usage %s\n\x00Xft\x00scale\x00dpi\x00render\x00rgba\x00lcdfilter\x00antialias\x00embolden\x00autohint\x00hintstyle\x00hinting\x00minspace\x00DrawString \"%*.*s\"\n\x00XftFontMatch pattern \x00XftFontMatch after FcConfig substitutions \x00XftFontMatch after X resource substitutions \x00XftFontMatch result \x00XftFontOpen: Invalid pattern argument\n\x00Pattern \x00Match \x00No Match\n\x00No Font\n\x00XftFontOpenName \"%s\": \x00Invalid name\n\x00XftFontOpenXlfd \"%s\": \x00Invalid xlfd\n\x00FontFile %s/%d matches existing (%d)\n\x00FontFile %s/%d matches new\n\x00Discard file %s/%d from cache\n\x00Loading file %s/%d\n\x00Xft: locking error %s\n\x00too many file unlocks\x00Set face size to %dx%d (%dx%d)\n\x00Set face matrix to (%g,%g,%g,%g)\n\x00Attempt to close locked file\x00file\x00index\x00ftface\x00pixelsize\x00aspect\x00<none>\x00XftFontInfoFill: %s: %d (%g pixels)\n\x00matrix\x00embeddedbitmap\x00verticallayout\x00globaladvance\x00spacing\x00charwidth\x00New font %s/%d size %dx%d\n\x00charset\x00freeing unreferenced font %s/%d size %dx%d\n\x00Font glyph cache incorrect has %lu bytes, should have %lu\n\x00Xft: out of range; %d\n\x00Xft: too many in-use glyphs (%d vs %d)\n\x00Xft: too few in-use glyphs (%u vs %d)\n\x00Xft out of range; %d\n\x00Xft: forward %d vs reverse %d\n\x00Trans %d %d: %d %d\n\x00glyph %d:\n\x00 xywh (%d %d %d %d), trans (%d %d %d %d) wh (%d %d)\n\x00%c\x00|\n\x00\n\x00Caching glyph 0x%x size %lu\n\x00alloc %p -> %d: %p USE %d.%d\n\x00alloc %p -> %d: %p USE %d.%d, %p NEW %d.%d %p OLD %d.%d\n\x00Uncaching glyph 0x%x size %lu\n\x00free %p -> %p USE %d.%d\n\x00Xft: glyph count error\n\x00Reduce memory for font 0x%lx from %lu to %lu\n\x00XftDraw\x00XftFont\x00XftFtFile\x00XftGlyph\x00Xft Memory Usage:\n\x00\t Which Alloc Free\n\x00\t count bytes count bytes\n\x00\t%9.9s%8d%8lu%8d%8lu\n\x00Total\x00lang\x00light\x00medium\x00regular\x00demibold\x00bold\x00black\x00r\x00i\x00o\x00xlfd\x00*\x00foundry\x00family\x00weight\x00slant\x00size\x00"