Blend2D.Api.pas 124 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987198819891990199119921993199419951996199719981999200020012002200320042005200620072008200920102011201220132014201520162017201820192020202120222023202420252026202720282029203020312032203320342035203620372038203920402041204220432044204520462047204820492050205120522053205420552056205720582059206020612062206320642065206620672068206920702071207220732074207520762077207820792080208120822083208420852086208720882089209020912092209320942095209620972098209921002101210221032104210521062107210821092110211121122113211421152116211721182119212021212122212321242125212621272128212921302131213221332134213521362137213821392140214121422143214421452146214721482149215021512152215321542155215621572158215921602161216221632164216521662167216821692170217121722173217421752176217721782179218021812182218321842185218621872188218921902191219221932194219521962197219821992200220122022203220422052206220722082209221022112212221322142215221622172218221922202221222222232224222522262227222822292230223122322233223422352236223722382239224022412242224322442245224622472248224922502251225222532254225522562257225822592260226122622263226422652266226722682269227022712272227322742275227622772278227922802281228222832284228522862287228822892290229122922293229422952296229722982299230023012302230323042305230623072308230923102311231223132314231523162317231823192320232123222323232423252326232723282329233023312332233323342335233623372338233923402341234223432344234523462347234823492350235123522353235423552356235723582359236023612362236323642365236623672368236923702371237223732374237523762377237823792380238123822383238423852386238723882389239023912392239323942395239623972398239924002401240224032404240524062407240824092410241124122413241424152416241724182419242024212422242324242425242624272428242924302431243224332434243524362437243824392440244124422443244424452446244724482449245024512452245324542455245624572458245924602461246224632464246524662467246824692470247124722473247424752476247724782479248024812482248324842485248624872488248924902491249224932494249524962497249824992500250125022503250425052506250725082509251025112512251325142515251625172518251925202521252225232524252525262527252825292530253125322533253425352536253725382539254025412542254325442545254625472548254925502551255225532554255525562557255825592560256125622563256425652566256725682569257025712572257325742575257625772578257925802581258225832584258525862587258825892590259125922593259425952596259725982599260026012602260326042605260626072608260926102611261226132614261526162617261826192620262126222623262426252626262726282629263026312632263326342635263626372638263926402641264226432644264526462647264826492650265126522653265426552656265726582659266026612662266326642665266626672668266926702671267226732674267526762677267826792680268126822683268426852686268726882689269026912692269326942695269626972698269927002701270227032704270527062707270827092710271127122713271427152716271727182719272027212722272327242725272627272728272927302731273227332734273527362737273827392740274127422743274427452746274727482749275027512752275327542755275627572758275927602761276227632764276527662767276827692770277127722773277427752776277727782779278027812782278327842785278627872788278927902791279227932794279527962797279827992800280128022803280428052806280728082809281028112812281328142815281628172818281928202821282228232824282528262827282828292830283128322833283428352836283728382839284028412842284328442845284628472848284928502851285228532854285528562857285828592860286128622863286428652866286728682869287028712872287328742875287628772878287928802881288228832884288528862887288828892890289128922893289428952896289728982899290029012902290329042905290629072908290929102911291229132914291529162917291829192920292129222923292429252926292729282929293029312932293329342935293629372938293929402941294229432944294529462947294829492950295129522953295429552956295729582959296029612962296329642965296629672968296929702971297229732974297529762977297829792980298129822983298429852986298729882989299029912992299329942995299629972998299930003001300230033004300530063007300830093010301130123013301430153016301730183019302030213022302330243025302630273028302930303031303230333034303530363037303830393040304130423043304430453046304730483049305030513052305330543055305630573058305930603061306230633064306530663067306830693070307130723073307430753076307730783079308030813082308330843085308630873088308930903091309230933094309530963097309830993100310131023103310431053106310731083109311031113112311331143115311631173118311931203121312231233124312531263127312831293130313131323133313431353136313731383139314031413142314331443145314631473148314931503151315231533154315531563157315831593160316131623163316431653166316731683169317031713172317331743175317631773178317931803181318231833184318531863187318831893190319131923193319431953196319731983199320032013202320332043205320632073208320932103211321232133214321532163217321832193220322132223223322432253226322732283229323032313232323332343235323632373238323932403241324232433244324532463247324832493250325132523253325432553256325732583259326032613262326332643265326632673268326932703271327232733274327532763277327832793280328132823283328432853286328732883289329032913292329332943295329632973298329933003301330233033304330533063307330833093310331133123313331433153316331733183319332033213322332333243325332633273328332933303331333233333334333533363337333833393340334133423343334433453346334733483349335033513352335333543355335633573358335933603361336233633364336533663367336833693370337133723373337433753376337733783379338033813382338333843385338633873388338933903391339233933394339533963397339833993400340134023403340434053406340734083409341034113412341334143415341634173418341934203421342234233424342534263427342834293430343134323433343434353436343734383439344034413442344334443445344634473448344934503451345234533454345534563457345834593460346134623463346434653466346734683469347034713472347334743475347634773478347934803481348234833484348534863487348834893490349134923493349434953496349734983499350035013502350335043505350635073508350935103511351235133514351535163517351835193520352135223523352435253526352735283529353035313532353335343535353635373538353935403541354235433544354535463547354835493550355135523553355435553556355735583559356035613562356335643565
  1. unit Blend2D.Api;
  2. { Blend2D for Delphi.
  3. Based on Blend2D beta 12 }
  4. { This unit is partially generated by Chet:
  5. https://github.com/neslib/Chet }
  6. interface
  7. const
  8. {$IF Defined(WIN32)}
  9. LIB_BLEND2D = 'blend2d_win32.dll';
  10. _PU = '';
  11. {$ELSEIF Defined(WIN64)}
  12. LIB_BLEND2D = 'blend2d_win64.dll';
  13. _PU = '';
  14. {$ELSEIF Defined(MACOS64) and not Defined(IOS)}
  15. {$MESSAGE Error 'Blend2D for macOS not available yet'}
  16. // LIB_BLEND2D = 'libblend2d_mac64.a';
  17. // _PU = '';
  18. {$ELSEIF Defined(IOS64)}
  19. {$MESSAGE Error 'Blend2D for iOS not available yet'}
  20. {$ELSEIF Defined(ANDROID)}
  21. {$MESSAGE Error 'Blend2D for Android not available yet'}
  22. {$ELSE}
  23. {$MESSAGE Error 'Unsupported platform'}
  24. {$ENDIF}
  25. type
  26. PUInt8 = PByte;
  27. PPUInt8 = ^PByte;
  28. PUInt32 = ^UInt32;
  29. PPUTF8Char = ^PUTF8Char;
  30. const
  31. BL_VERSION = (0 shl 16) or (0 shl 8) or 1;
  32. BL_BYTE_ORDER = 1234;
  33. type
  34. BLResult = UInt32;
  35. BLTag = UInt32;
  36. BLUniqueId = UInt64;
  37. BLBitWord = NativeUInt;
  38. type
  39. _PBLTag = ^BLTag;
  40. function BL_MAKE_TAG(const A, B, C, D: Byte): BLTag; inline;
  41. type
  42. PBLFileCore = Pointer;
  43. type
  44. BLDestroyImplFunc = procedure(impl, destroyData: Pointer); cdecl;
  45. type
  46. BLBooleanOp = Integer;
  47. const
  48. BL_BOOLEAN_OP_COPY = 0;
  49. BL_BOOLEAN_OP_AND = 1;
  50. BL_BOOLEAN_OP_OR = 2;
  51. BL_BOOLEAN_OP_XOR = 3;
  52. BL_BOOLEAN_OP_SUB = 4;
  53. BL_BOOLEAN_OP_COUNT = 5;
  54. type
  55. BLByteOrder = Integer;
  56. const
  57. BL_BYTE_ORDER_LE = 0;
  58. BL_BYTE_ORDER_BE = 1;
  59. BL_BYTE_ORDER_NATIVE = BL_BYTE_ORDER_LE;
  60. BL_BYTE_ORDER_SWAPPED = BL_BYTE_ORDER_BE;
  61. type
  62. BLContextProperty = Integer;
  63. const
  64. BL_CONTEXT_PROPERTY_THREAD_COUNT = 0;
  65. BL_CONTEXT_PROPERTY_ACCUMULATED_ERROR_FLAGS = 10;
  66. type
  67. BLContextErrorFlags = Cardinal;
  68. const
  69. BL_CONTEXT_ERROR_FLAG_INVALID_VALUE = $00000001;
  70. BL_CONTEXT_ERROR_FLAG_INVALID_STATE = $00000002;
  71. BL_CONTEXT_ERROR_FLAG_INVALID_GEOMETRY = $00000004;
  72. BL_CONTEXT_ERROR_FLAG_INVALID_GLYPH = $00000008;
  73. BL_CONTEXT_ERROR_FLAG_INVALID_FONT = $00000010;
  74. BL_CONTEXT_ERROR_FLAG_THREAD_POOL_EXHAUSTED = $20000000;
  75. BL_CONTEXT_ERROR_FLAG_OUT_OF_MEMORY = $40000000;
  76. BL_CONTEXT_ERROR_FLAG_UNKNOWN_ERROR = $80000000;
  77. type
  78. BLClipMode = Integer;
  79. const
  80. BL_CLIP_MODE_ALIGNED_RECT = 0;
  81. BL_CLIP_MODE_UNALIGNED_RECT = 1;
  82. BL_CLIP_MODE_MASK = 2;
  83. BL_CLIP_MODE_COUNT = 3;
  84. type
  85. BLCompOp = Integer;
  86. const
  87. BL_COMP_OP_SRC_OVER = 0;
  88. BL_COMP_OP_SRC_COPY = 1;
  89. BL_COMP_OP_SRC_IN = 2;
  90. BL_COMP_OP_SRC_OUT = 3;
  91. BL_COMP_OP_SRC_ATOP = 4;
  92. BL_COMP_OP_DST_OVER = 5;
  93. BL_COMP_OP_DST_COPY = 6;
  94. BL_COMP_OP_DST_IN = 7;
  95. BL_COMP_OP_DST_OUT = 8;
  96. BL_COMP_OP_DST_ATOP = 9;
  97. BL_COMP_OP_XOR = 10;
  98. BL_COMP_OP_CLEAR = 11;
  99. BL_COMP_OP_PLUS = 12;
  100. BL_COMP_OP_MINUS = 13;
  101. BL_COMP_OP_MODULATE = 14;
  102. BL_COMP_OP_MULTIPLY = 15;
  103. BL_COMP_OP_SCREEN = 16;
  104. BL_COMP_OP_OVERLAY = 17;
  105. BL_COMP_OP_DARKEN = 18;
  106. BL_COMP_OP_LIGHTEN = 19;
  107. BL_COMP_OP_COLOR_DODGE = 20;
  108. BL_COMP_OP_COLOR_BURN = 21;
  109. BL_COMP_OP_LINEAR_BURN = 22;
  110. BL_COMP_OP_LINEAR_LIGHT = 23;
  111. BL_COMP_OP_PIN_LIGHT = 24;
  112. BL_COMP_OP_HARD_LIGHT = 25;
  113. BL_COMP_OP_SOFT_LIGHT = 26;
  114. BL_COMP_OP_DIFFERENCE = 27;
  115. BL_COMP_OP_EXCLUSION = 28;
  116. BL_COMP_OP_COUNT = 29;
  117. type
  118. BLContextCreateFlags = Integer;
  119. const
  120. BL_CONTEXT_CREATE_FLAG_FALLBACK_TO_SYNC = $00000008;
  121. BL_CONTEXT_CREATE_FLAG_ISOLATED_THREAD_POOL = $01000000;
  122. BL_CONTEXT_CREATE_FLAG_ISOLATED_JIT = $02000000;
  123. BL_CONTEXT_CREATE_FLAG_OVERRIDE_CPU_FEATURES = $04000000;
  124. type
  125. BLContextFlushFlags = Integer;
  126. const
  127. BL_CONTEXT_FLUSH_SYNC = $80000000;
  128. type
  129. BLContextHint = Integer;
  130. const
  131. BL_CONTEXT_HINT_RENDERING_QUALITY = 0;
  132. BL_CONTEXT_HINT_GRADIENT_QUALITY = 1;
  133. BL_CONTEXT_HINT_PATTERN_QUALITY = 2;
  134. BL_CONTEXT_HINT_COUNT = 8;
  135. type
  136. BLContextOpType = Integer;
  137. const
  138. BL_CONTEXT_OP_TYPE_FILL = 0;
  139. BL_CONTEXT_OP_TYPE_STROKE = 1;
  140. BL_CONTEXT_OP_TYPE_COUNT = 2;
  141. type
  142. BLContextType = Integer;
  143. const
  144. BL_CONTEXT_TYPE_NONE = 0;
  145. BL_CONTEXT_TYPE_DUMMY = 1;
  146. BL_CONTEXT_TYPE_RASTER = 3;
  147. BL_CONTEXT_TYPE_COUNT = 4;
  148. type
  149. BLDataAccessFlags = Integer;
  150. const
  151. BL_DATA_ACCESS_READ = 1;
  152. BL_DATA_ACCESS_WRITE = 2;
  153. BL_DATA_ACCESS_RW = 3;
  154. type
  155. BLDataSourceType = Integer;
  156. const
  157. BL_DATA_SOURCE_TYPE_NONE = 0;
  158. BL_DATA_SOURCE_TYPE_MEMORY = 1;
  159. BL_DATA_SOURCE_TYPE_FILE = 2;
  160. BL_DATA_SOURCE_TYPE_CUSTOM = 3;
  161. BL_DATA_SOURCE_TYPE_COUNT = 4;
  162. type
  163. BLExtendMode = Integer;
  164. const
  165. BL_EXTEND_MODE_PAD = 0;
  166. BL_EXTEND_MODE_REPEAT = 1;
  167. BL_EXTEND_MODE_REFLECT = 2;
  168. BL_EXTEND_MODE_PAD_X_PAD_Y = 0;
  169. BL_EXTEND_MODE_REPEAT_X_REPEAT_Y = 1;
  170. BL_EXTEND_MODE_REFLECT_X_REFLECT_Y = 2;
  171. BL_EXTEND_MODE_PAD_X_REPEAT_Y = 3;
  172. BL_EXTEND_MODE_PAD_X_REFLECT_Y = 4;
  173. BL_EXTEND_MODE_REPEAT_X_PAD_Y = 5;
  174. BL_EXTEND_MODE_REPEAT_X_REFLECT_Y = 6;
  175. BL_EXTEND_MODE_REFLECT_X_PAD_Y = 7;
  176. BL_EXTEND_MODE_REFLECT_X_REPEAT_Y = 8;
  177. BL_EXTEND_MODE_SIMPLE_COUNT = 3;
  178. BL_EXTEND_MODE_COMPLEX_COUNT = 9;
  179. type
  180. BLFillRule = Integer;
  181. const
  182. BL_FILL_RULE_NON_ZERO = 0;
  183. BL_FILL_RULE_EVEN_ODD = 1;
  184. BL_FILL_RULE_COUNT = 2;
  185. type
  186. BLFlattenMode = Integer;
  187. const
  188. BL_FLATTEN_MODE_DEFAULT = 0;
  189. BL_FLATTEN_MODE_RECURSIVE = 1;
  190. type
  191. BLFontDataFlags = Integer;
  192. const
  193. BL_FONT_DATA_FLAG_COLLECTION = 1;
  194. type
  195. BLFontFaceDiagFlags = Integer;
  196. const
  197. BL_FONT_FACE_DIAG_WRONG_NAME_DATA = 1;
  198. BL_FONT_FACE_DIAG_FIXED_NAME_DATA = 2;
  199. BL_FONT_FACE_DIAG_WRONG_KERN_DATA = 4;
  200. BL_FONT_FACE_DIAG_FIXED_KERN_DATA = 8;
  201. BL_FONT_FACE_DIAG_WRONG_CMAP_DATA = 16;
  202. BL_FONT_FACE_DIAG_WRONG_CMAP_FORMAT = 32;
  203. BL_FONT_FACE_DIAG_WRONG_GDEF_DATA = 256;
  204. BL_FONT_FACE_DIAG_WRONG_GPOS_DATA = 1024;
  205. BL_FONT_FACE_DIAG_WRONG_GSUB_DATA = 4096;
  206. type
  207. BLFontFaceFlags = Integer;
  208. const
  209. BL_FONT_FACE_FLAG_TYPOGRAPHIC_NAMES = $00000001;
  210. BL_FONT_FACE_FLAG_TYPOGRAPHIC_METRICS = $00000002;
  211. BL_FONT_FACE_FLAG_CHAR_TO_GLYPH_MAPPING = $00000004;
  212. BL_FONT_FACE_FLAG_HORIZONTAL_METRICS = $00000010;
  213. BL_FONT_FACE_FLAG_VERTICAL_METRICS = $00000020;
  214. BL_FONT_FACE_FLAG_HORIZONTAL_KERNING = $00000040;
  215. BL_FONT_FACE_FLAG_VERTICAL_KERNING = $00000080;
  216. BL_FONT_FACE_FLAG_OPENTYPE_FEATURES = $00000100;
  217. BL_FONT_FACE_FLAG_PANOSE_DATA = $00000200;
  218. BL_FONT_FACE_FLAG_UNICODE_COVERAGE = $00000400;
  219. BL_FONT_FACE_FLAG_BASELINE_Y_EQUALS_0 = $00001000;
  220. BL_FONT_FACE_FLAG_LSB_POINT_X_EQUALS_0 = $00002000;
  221. BL_FONT_FACE_FLAG_VARIATION_SEQUENCES = $10000000;
  222. BL_FONT_FACE_FLAG_OPENTYPE_VARIATIONS = $20000000;
  223. BL_FONT_FACE_FLAG_SYMBOL_FONT = $40000000;
  224. BL_FONT_FACE_FLAG_LAST_RESORT_FONT = $80000000;
  225. type
  226. BLFontFaceType = Integer;
  227. const
  228. BL_FONT_FACE_TYPE_NONE = 0;
  229. BL_FONT_FACE_TYPE_OPENTYPE = 1;
  230. BL_FONT_FACE_TYPE_COUNT = 2;
  231. type
  232. BLFontOutlineType = Integer;
  233. const
  234. BL_FONT_OUTLINE_TYPE_NONE = 0;
  235. BL_FONT_OUTLINE_TYPE_TRUETYPE = 1;
  236. BL_FONT_OUTLINE_TYPE_CFF = 2;
  237. BL_FONT_OUTLINE_TYPE_CFF2 = 3;
  238. type
  239. BLFontStretch = Integer;
  240. const
  241. BL_FONT_STRETCH_ULTRA_CONDENSED = 1;
  242. BL_FONT_STRETCH_EXTRA_CONDENSED = 2;
  243. BL_FONT_STRETCH_CONDENSED = 3;
  244. BL_FONT_STRETCH_SEMI_CONDENSED = 4;
  245. BL_FONT_STRETCH_NORMAL = 5;
  246. BL_FONT_STRETCH_SEMI_EXPANDED = 6;
  247. BL_FONT_STRETCH_EXPANDED = 7;
  248. BL_FONT_STRETCH_EXTRA_EXPANDED = 8;
  249. BL_FONT_STRETCH_ULTRA_EXPANDED = 9;
  250. type
  251. BLFontStringId = Integer;
  252. const
  253. BL_FONT_STRING_COPYRIGHT_NOTICE = 0;
  254. BL_FONT_STRING_FAMILY_NAME = 1;
  255. BL_FONT_STRING_SUBFAMILY_NAME = 2;
  256. BL_FONT_STRING_UNIQUE_IDENTIFIER = 3;
  257. BL_FONT_STRING_FULL_NAME = 4;
  258. BL_FONT_STRING_VERSION_STRING = 5;
  259. BL_FONT_STRING_POST_SCRIPT_NAME = 6;
  260. BL_FONT_STRING_TRADEMARK = 7;
  261. BL_FONT_STRING_MANUFACTURER_NAME = 8;
  262. BL_FONT_STRING_DESIGNER_NAME = 9;
  263. BL_FONT_STRING_DESCRIPTION = 10;
  264. BL_FONT_STRING_VENDOR_URL = 11;
  265. BL_FONT_STRING_DESIGNER_URL = 12;
  266. BL_FONT_STRING_LICENSE_DESCRIPTION = 13;
  267. BL_FONT_STRING_LICENSE_INFO_URL = 14;
  268. BL_FONT_STRING_RESERVED = 15;
  269. BL_FONT_STRING_TYPOGRAPHIC_FAMILY_NAME = 16;
  270. BL_FONT_STRING_TYPOGRAPHIC_SUBFAMILY_NAME = 17;
  271. BL_FONT_STRING_COMPATIBLE_FULL_NAME = 18;
  272. BL_FONT_STRING_SAMPLE_TEXT = 19;
  273. BL_FONT_STRING_POST_SCRIPT_CID_NAME = 20;
  274. BL_FONT_STRING_WWS_FAMILY_NAME = 21;
  275. BL_FONT_STRING_WWS_SUBFAMILY_NAME = 22;
  276. BL_FONT_STRING_LIGHT_BACKGROUND_PALETTE = 23;
  277. BL_FONT_STRING_DARK_BACKGROUND_PALETTE = 24;
  278. BL_FONT_STRING_VARIATIONS_POST_SCRIPT_PREFIX = 25;
  279. BL_FONT_STRING_COMMON_COUNT = 26;
  280. BL_FONT_STRING_CUSTOM_START_INDEX = 255;
  281. type
  282. BLFontStyle = Integer;
  283. const
  284. BL_FONT_STYLE_NORMAL = 0;
  285. BL_FONT_STYLE_OBLIQUE = 1;
  286. BL_FONT_STYLE_ITALIC = 2;
  287. BL_FONT_STYLE_COUNT = 3;
  288. type
  289. BLFontUnicodeCoverageIndex = Integer;
  290. const
  291. BL_FONT_UC_INDEX_BASIC_LATIN = 0;
  292. BL_FONT_UC_INDEX_LATIN1_SUPPLEMENT = 1;
  293. BL_FONT_UC_INDEX_LATIN_EXTENDED_A = 2;
  294. BL_FONT_UC_INDEX_LATIN_EXTENDED_B = 3;
  295. BL_FONT_UC_INDEX_IPA_EXTENSIONS = 4;
  296. BL_FONT_UC_INDEX_SPACING_MODIFIER_LETTERS = 5;
  297. BL_FONT_UC_INDEX_COMBINING_DIACRITICAL_MARKS = 6;
  298. BL_FONT_UC_INDEX_GREEK_AND_COPTIC = 7;
  299. BL_FONT_UC_INDEX_COPTIC = 8;
  300. BL_FONT_UC_INDEX_CYRILLIC = 9;
  301. BL_FONT_UC_INDEX_ARMENIAN = 10;
  302. BL_FONT_UC_INDEX_HEBREW = 11;
  303. BL_FONT_UC_INDEX_VAI = 12;
  304. BL_FONT_UC_INDEX_ARABIC = 13;
  305. BL_FONT_UC_INDEX_NKO = 14;
  306. BL_FONT_UC_INDEX_DEVANAGARI = 15;
  307. BL_FONT_UC_INDEX_BENGALI = 16;
  308. BL_FONT_UC_INDEX_GURMUKHI = 17;
  309. BL_FONT_UC_INDEX_GUJARATI = 18;
  310. BL_FONT_UC_INDEX_ORIYA = 19;
  311. BL_FONT_UC_INDEX_TAMIL = 20;
  312. BL_FONT_UC_INDEX_TELUGU = 21;
  313. BL_FONT_UC_INDEX_KANNADA = 22;
  314. BL_FONT_UC_INDEX_MALAYALAM = 23;
  315. BL_FONT_UC_INDEX_THAI = 24;
  316. BL_FONT_UC_INDEX_LAO = 25;
  317. BL_FONT_UC_INDEX_GEORGIAN = 26;
  318. BL_FONT_UC_INDEX_BALINESE = 27;
  319. BL_FONT_UC_INDEX_HANGUL_JAMO = 28;
  320. BL_FONT_UC_INDEX_LATIN_EXTENDED_ADDITIONAL = 29;
  321. BL_FONT_UC_INDEX_GREEK_EXTENDED = 30;
  322. BL_FONT_UC_INDEX_GENERAL_PUNCTUATION = 31;
  323. BL_FONT_UC_INDEX_SUPERSCRIPTS_AND_SUBSCRIPTS = 32;
  324. BL_FONT_UC_INDEX_CURRENCY_SYMBOLS = 33;
  325. BL_FONT_UC_INDEX_COMBINING_DIACRITICAL_MARKS_FOR_SYMBOLS = 34;
  326. BL_FONT_UC_INDEX_LETTERLIKE_SYMBOLS = 35;
  327. BL_FONT_UC_INDEX_NUMBER_FORMS = 36;
  328. BL_FONT_UC_INDEX_ARROWS = 37;
  329. BL_FONT_UC_INDEX_MATHEMATICAL_OPERATORS = 38;
  330. BL_FONT_UC_INDEX_MISCELLANEOUS_TECHNICAL = 39;
  331. BL_FONT_UC_INDEX_CONTROL_PICTURES = 40;
  332. BL_FONT_UC_INDEX_OPTICAL_CHARACTER_RECOGNITION = 41;
  333. BL_FONT_UC_INDEX_ENCLOSED_ALPHANUMERICS = 42;
  334. BL_FONT_UC_INDEX_BOX_DRAWING = 43;
  335. BL_FONT_UC_INDEX_BLOCK_ELEMENTS = 44;
  336. BL_FONT_UC_INDEX_GEOMETRIC_SHAPES = 45;
  337. BL_FONT_UC_INDEX_MISCELLANEOUS_SYMBOLS = 46;
  338. BL_FONT_UC_INDEX_DINGBATS = 47;
  339. BL_FONT_UC_INDEX_CJK_SYMBOLS_AND_PUNCTUATION = 48;
  340. BL_FONT_UC_INDEX_HIRAGANA = 49;
  341. BL_FONT_UC_INDEX_KATAKANA = 50;
  342. BL_FONT_UC_INDEX_BOPOMOFO = 51;
  343. BL_FONT_UC_INDEX_HANGUL_COMPATIBILITY_JAMO = 52;
  344. BL_FONT_UC_INDEX_PHAGS_PA = 53;
  345. BL_FONT_UC_INDEX_ENCLOSED_CJK_LETTERS_AND_MONTHS = 54;
  346. BL_FONT_UC_INDEX_CJK_COMPATIBILITY = 55;
  347. BL_FONT_UC_INDEX_HANGUL_SYLLABLES = 56;
  348. BL_FONT_UC_INDEX_NON_PLANE = 57;
  349. BL_FONT_UC_INDEX_PHOENICIAN = 58;
  350. BL_FONT_UC_INDEX_CJK_UNIFIED_IDEOGRAPHS = 59;
  351. BL_FONT_UC_INDEX_PRIVATE_USE_PLANE0 = 60;
  352. BL_FONT_UC_INDEX_CJK_STROKES = 61;
  353. BL_FONT_UC_INDEX_ALPHABETIC_PRESENTATION_FORMS = 62;
  354. BL_FONT_UC_INDEX_ARABIC_PRESENTATION_FORMS_A = 63;
  355. BL_FONT_UC_INDEX_COMBINING_HALF_MARKS = 64;
  356. BL_FONT_UC_INDEX_VERTICAL_FORMS = 65;
  357. BL_FONT_UC_INDEX_SMALL_FORM_VARIANTS = 66;
  358. BL_FONT_UC_INDEX_ARABIC_PRESENTATION_FORMS_B = 67;
  359. BL_FONT_UC_INDEX_HALFWIDTH_AND_FULLWIDTH_FORMS = 68;
  360. BL_FONT_UC_INDEX_SPECIALS = 69;
  361. BL_FONT_UC_INDEX_TIBETAN = 70;
  362. BL_FONT_UC_INDEX_SYRIAC = 71;
  363. BL_FONT_UC_INDEX_THAANA = 72;
  364. BL_FONT_UC_INDEX_SINHALA = 73;
  365. BL_FONT_UC_INDEX_MYANMAR = 74;
  366. BL_FONT_UC_INDEX_ETHIOPIC = 75;
  367. BL_FONT_UC_INDEX_CHEROKEE = 76;
  368. BL_FONT_UC_INDEX_UNIFIED_CANADIAN_ABORIGINAL_SYLLABICS = 77;
  369. BL_FONT_UC_INDEX_OGHAM = 78;
  370. BL_FONT_UC_INDEX_RUNIC = 79;
  371. BL_FONT_UC_INDEX_KHMER = 80;
  372. BL_FONT_UC_INDEX_MONGOLIAN = 81;
  373. BL_FONT_UC_INDEX_BRAILLE_PATTERNS = 82;
  374. BL_FONT_UC_INDEX_YI_SYLLABLES_AND_RADICALS = 83;
  375. BL_FONT_UC_INDEX_TAGALOG_HANUNOO_BUHID_TAGBANWA = 84;
  376. BL_FONT_UC_INDEX_OLD_ITALIC = 85;
  377. BL_FONT_UC_INDEX_GOTHIC = 86;
  378. BL_FONT_UC_INDEX_DESERET = 87;
  379. BL_FONT_UC_INDEX_MUSICAL_SYMBOLS = 88;
  380. BL_FONT_UC_INDEX_MATHEMATICAL_ALPHANUMERIC_SYMBOLS = 89;
  381. BL_FONT_UC_INDEX_PRIVATE_USE_PLANE_15_16 = 90;
  382. BL_FONT_UC_INDEX_VARIATION_SELECTORS = 91;
  383. BL_FONT_UC_INDEX_TAGS = 92;
  384. BL_FONT_UC_INDEX_LIMBU = 93;
  385. BL_FONT_UC_INDEX_TAI_LE = 94;
  386. BL_FONT_UC_INDEX_NEW_TAI_LUE = 95;
  387. BL_FONT_UC_INDEX_BUGINESE = 96;
  388. BL_FONT_UC_INDEX_GLAGOLITIC = 97;
  389. BL_FONT_UC_INDEX_TIFINAGH = 98;
  390. BL_FONT_UC_INDEX_YIJING_HEXAGRAM_SYMBOLS = 99;
  391. BL_FONT_UC_INDEX_SYLOTI_NAGRI = 100;
  392. BL_FONT_UC_INDEX_LINEAR_B_SYLLABARY_AND_IDEOGRAMS = 101;
  393. BL_FONT_UC_INDEX_ANCIENT_GREEK_NUMBERS = 102;
  394. BL_FONT_UC_INDEX_UGARITIC = 103;
  395. BL_FONT_UC_INDEX_OLD_PERSIAN = 104;
  396. BL_FONT_UC_INDEX_SHAVIAN = 105;
  397. BL_FONT_UC_INDEX_OSMANYA = 106;
  398. BL_FONT_UC_INDEX_CYPRIOT_SYLLABARY = 107;
  399. BL_FONT_UC_INDEX_KHAROSHTHI = 108;
  400. BL_FONT_UC_INDEX_TAI_XUAN_JING_SYMBOLS = 109;
  401. BL_FONT_UC_INDEX_CUNEIFORM = 110;
  402. BL_FONT_UC_INDEX_COUNTING_ROD_NUMERALS = 111;
  403. BL_FONT_UC_INDEX_SUNDANESE = 112;
  404. BL_FONT_UC_INDEX_LEPCHA = 113;
  405. BL_FONT_UC_INDEX_OL_CHIKI = 114;
  406. BL_FONT_UC_INDEX_SAURASHTRA = 115;
  407. BL_FONT_UC_INDEX_KAYAH_LI = 116;
  408. BL_FONT_UC_INDEX_REJANG = 117;
  409. BL_FONT_UC_INDEX_CHAM = 118;
  410. BL_FONT_UC_INDEX_ANCIENT_SYMBOLS = 119;
  411. BL_FONT_UC_INDEX_PHAISTOS_DISC = 120;
  412. BL_FONT_UC_INDEX_CARIAN_LYCIAN_LYDIAN = 121;
  413. BL_FONT_UC_INDEX_DOMINO_AND_MAHJONG_TILES = 122;
  414. BL_FONT_UC_INDEX_INTERNAL_USAGE_123 = 123;
  415. BL_FONT_UC_INDEX_INTERNAL_USAGE_124 = 124;
  416. BL_FONT_UC_INDEX_INTERNAL_USAGE_125 = 125;
  417. BL_FONT_UC_INDEX_INTERNAL_USAGE_126 = 126;
  418. BL_FONT_UC_INDEX_INTERNAL_USAGE_127 = 127;
  419. type
  420. BLFontWeight = Integer;
  421. const
  422. BL_FONT_WEIGHT_THIN = 100;
  423. BL_FONT_WEIGHT_EXTRA_LIGHT = 200;
  424. BL_FONT_WEIGHT_LIGHT = 300;
  425. BL_FONT_WEIGHT_SEMI_LIGHT = 350;
  426. BL_FONT_WEIGHT_NORMAL = 400;
  427. BL_FONT_WEIGHT_MEDIUM = 500;
  428. BL_FONT_WEIGHT_SEMI_BOLD = 600;
  429. BL_FONT_WEIGHT_BOLD = 700;
  430. BL_FONT_WEIGHT_EXTRA_BOLD = 800;
  431. BL_FONT_WEIGHT_BLACK = 900;
  432. BL_FONT_WEIGHT_EXTRA_BLACK = 950;
  433. type
  434. BLFormat = Integer;
  435. const
  436. BL_FORMAT_NONE = 0;
  437. BL_FORMAT_PRGB32 = 1;
  438. BL_FORMAT_XRGB32 = 2;
  439. BL_FORMAT_A8 = 3;
  440. BL_FORMAT_COUNT = 4;
  441. BL_FORMAT_RESERVED_COUNT = 16;
  442. type
  443. BLFormatFlags = Integer;
  444. const
  445. BL_FORMAT_FLAG_RGB = 1;
  446. BL_FORMAT_FLAG_ALPHA = 2;
  447. BL_FORMAT_FLAG_RGBA = 3;
  448. BL_FORMAT_FLAG_LUM = 4;
  449. BL_FORMAT_FLAG_LUMA = 6;
  450. BL_FORMAT_FLAG_INDEXED = 16;
  451. BL_FORMAT_FLAG_PREMULTIPLIED = 256;
  452. BL_FORMAT_FLAG_BYTE_SWAP = 512;
  453. BL_FORMAT_FLAG_BYTE_ALIGNED = 65536;
  454. BL_FORMAT_FLAG_UNDEFINED_BITS = 131072;
  455. BL_FORMAT_FLAG_LE = 0;
  456. BL_FORMAT_FLAG_BE = 512;
  457. type
  458. BLGeometryDirection = Integer;
  459. const
  460. BL_GEOMETRY_DIRECTION_NONE = 0;
  461. BL_GEOMETRY_DIRECTION_CW = 1;
  462. BL_GEOMETRY_DIRECTION_CCW = 2;
  463. type
  464. BLGeometryType = Integer;
  465. const
  466. BL_GEOMETRY_TYPE_NONE = 0;
  467. BL_GEOMETRY_TYPE_BOXI = 1;
  468. BL_GEOMETRY_TYPE_BOXD = 2;
  469. BL_GEOMETRY_TYPE_RECTI = 3;
  470. BL_GEOMETRY_TYPE_RECTD = 4;
  471. BL_GEOMETRY_TYPE_CIRCLE = 5;
  472. BL_GEOMETRY_TYPE_ELLIPSE = 6;
  473. BL_GEOMETRY_TYPE_ROUND_RECT = 7;
  474. BL_GEOMETRY_TYPE_ARC = 8;
  475. BL_GEOMETRY_TYPE_CHORD = 9;
  476. BL_GEOMETRY_TYPE_PIE = 10;
  477. BL_GEOMETRY_TYPE_LINE = 11;
  478. BL_GEOMETRY_TYPE_TRIANGLE = 12;
  479. BL_GEOMETRY_TYPE_POLYLINEI = 13;
  480. BL_GEOMETRY_TYPE_POLYLINED = 14;
  481. BL_GEOMETRY_TYPE_POLYGONI = 15;
  482. BL_GEOMETRY_TYPE_POLYGOND = 16;
  483. BL_GEOMETRY_TYPE_ARRAY_VIEW_BOXI = 17;
  484. BL_GEOMETRY_TYPE_ARRAY_VIEW_BOXD = 18;
  485. BL_GEOMETRY_TYPE_ARRAY_VIEW_RECTI = 19;
  486. BL_GEOMETRY_TYPE_ARRAY_VIEW_RECTD = 20;
  487. BL_GEOMETRY_TYPE_PATH = 21;
  488. BL_GEOMETRY_TYPE_REGION = 22;
  489. BL_GEOMETRY_TYPE_COUNT = 23;
  490. type
  491. BLGlyphPlacementType = Integer;
  492. const
  493. BL_GLYPH_PLACEMENT_TYPE_NONE = 0;
  494. BL_GLYPH_PLACEMENT_TYPE_ADVANCE_OFFSET = 1;
  495. BL_GLYPH_PLACEMENT_TYPE_DESIGN_UNITS = 2;
  496. BL_GLYPH_PLACEMENT_TYPE_USER_UNITS = 3;
  497. BL_GLYPH_PLACEMENT_TYPE_ABSOLUTE_UNITS = 4;
  498. type
  499. BLGlyphRunFlags = Integer;
  500. const
  501. BL_GLYPH_RUN_FLAG_UCS4_CONTENT = $10000000;
  502. BL_GLYPH_RUN_FLAG_INVALID_TEXT = $20000000;
  503. BL_GLYPH_RUN_FLAG_UNDEFINED_GLYPHS = $40000000;
  504. BL_GLYPH_RUN_FLAG_INVALID_FONT_DATA = $80000000;
  505. type
  506. BLGradientQuality = Integer;
  507. const
  508. BL_GRADIENT_QUALITY_NEAREST = 0;
  509. BL_GRADIENT_QUALITY_COUNT = 1;
  510. type
  511. BLGradientType = Integer;
  512. const
  513. BL_GRADIENT_TYPE_LINEAR = 0;
  514. BL_GRADIENT_TYPE_RADIAL = 1;
  515. BL_GRADIENT_TYPE_CONICAL = 2;
  516. BL_GRADIENT_TYPE_COUNT = 3;
  517. type
  518. BLGradientValue = Integer;
  519. const
  520. BL_GRADIENT_VALUE_COMMON_X0 = 0;
  521. BL_GRADIENT_VALUE_COMMON_Y0 = 1;
  522. BL_GRADIENT_VALUE_COMMON_X1 = 2;
  523. BL_GRADIENT_VALUE_COMMON_Y1 = 3;
  524. BL_GRADIENT_VALUE_RADIAL_R0 = 4;
  525. BL_GRADIENT_VALUE_CONICAL_ANGLE = 2;
  526. BL_GRADIENT_VALUE_COUNT = 6;
  527. type
  528. BLHitTest = Integer;
  529. const
  530. BL_HIT_TEST_IN = 0;
  531. BL_HIT_TEST_PART = 1;
  532. BL_HIT_TEST_OUT = 2;
  533. BL_HIT_TEST_INVALID = -1;
  534. type
  535. BLImageInfoFlags = Integer;
  536. const
  537. BL_IMAGE_INFO_FLAG_PROGRESSIVE = 1;
  538. type
  539. BLImageScaleFilter = Integer;
  540. const
  541. BL_IMAGE_SCALE_FILTER_NONE = 0;
  542. BL_IMAGE_SCALE_FILTER_NEAREST = 1;
  543. BL_IMAGE_SCALE_FILTER_BILINEAR = 2;
  544. BL_IMAGE_SCALE_FILTER_BICUBIC = 3;
  545. BL_IMAGE_SCALE_FILTER_BELL = 4;
  546. BL_IMAGE_SCALE_FILTER_GAUSS = 5;
  547. BL_IMAGE_SCALE_FILTER_HERMITE = 6;
  548. BL_IMAGE_SCALE_FILTER_HANNING = 7;
  549. BL_IMAGE_SCALE_FILTER_CATROM = 8;
  550. BL_IMAGE_SCALE_FILTER_BESSEL = 9;
  551. BL_IMAGE_SCALE_FILTER_SINC = 10;
  552. BL_IMAGE_SCALE_FILTER_LANCZOS = 11;
  553. BL_IMAGE_SCALE_FILTER_BLACKMAN = 12;
  554. BL_IMAGE_SCALE_FILTER_MITCHELL = 13;
  555. BL_IMAGE_SCALE_FILTER_USER = 14;
  556. BL_IMAGE_SCALE_FILTER_COUNT = 15;
  557. type
  558. BLImplTraits = Integer;
  559. const
  560. BL_IMPL_TRAIT_MUTABLE = 1;
  561. BL_IMPL_TRAIT_IMMUTABLE = 2;
  562. BL_IMPL_TRAIT_EXTERNAL = 4;
  563. BL_IMPL_TRAIT_FOREIGN = 8;
  564. BL_IMPL_TRAIT_VIRT = 16;
  565. BL_IMPL_TRAIT_NULL = 128;
  566. type
  567. BLImplType = Integer;
  568. const
  569. BL_IMPL_TYPE_NULL = 0;
  570. BL_IMPL_TYPE_ARRAY_VAR = 1;
  571. BL_IMPL_TYPE_ARRAY_I8 = 2;
  572. BL_IMPL_TYPE_ARRAY_U8 = 3;
  573. BL_IMPL_TYPE_ARRAY_I16 = 4;
  574. BL_IMPL_TYPE_ARRAY_U16 = 5;
  575. BL_IMPL_TYPE_ARRAY_I32 = 6;
  576. BL_IMPL_TYPE_ARRAY_U32 = 7;
  577. BL_IMPL_TYPE_ARRAY_I64 = 8;
  578. BL_IMPL_TYPE_ARRAY_U64 = 9;
  579. BL_IMPL_TYPE_ARRAY_F32 = 10;
  580. BL_IMPL_TYPE_ARRAY_F64 = 11;
  581. BL_IMPL_TYPE_ARRAY_STRUCT_1 = 12;
  582. BL_IMPL_TYPE_ARRAY_STRUCT_2 = 13;
  583. BL_IMPL_TYPE_ARRAY_STRUCT_3 = 14;
  584. BL_IMPL_TYPE_ARRAY_STRUCT_4 = 15;
  585. BL_IMPL_TYPE_ARRAY_STRUCT_6 = 16;
  586. BL_IMPL_TYPE_ARRAY_STRUCT_8 = 17;
  587. BL_IMPL_TYPE_ARRAY_STRUCT_10 = 18;
  588. BL_IMPL_TYPE_ARRAY_STRUCT_12 = 19;
  589. BL_IMPL_TYPE_ARRAY_STRUCT_16 = 20;
  590. BL_IMPL_TYPE_ARRAY_STRUCT_20 = 21;
  591. BL_IMPL_TYPE_ARRAY_STRUCT_24 = 22;
  592. BL_IMPL_TYPE_ARRAY_STRUCT_32 = 23;
  593. BL_IMPL_TYPE_BIT_ARRAY = 32;
  594. BL_IMPL_TYPE_BIT_SET = 33;
  595. BL_IMPL_TYPE_STRING = 39;
  596. BL_IMPL_TYPE_PATH = 40;
  597. BL_IMPL_TYPE_REGION = 43;
  598. BL_IMPL_TYPE_IMAGE = 44;
  599. BL_IMPL_TYPE_IMAGE_CODEC = 45;
  600. BL_IMPL_TYPE_IMAGE_DECODER = 46;
  601. BL_IMPL_TYPE_IMAGE_ENCODER = 47;
  602. BL_IMPL_TYPE_GRADIENT = 48;
  603. BL_IMPL_TYPE_PATTERN = 49;
  604. BL_IMPL_TYPE_CONTEXT = 55;
  605. BL_IMPL_TYPE_FONT = 56;
  606. BL_IMPL_TYPE_FONT_FACE = 57;
  607. BL_IMPL_TYPE_FONT_DATA = 58;
  608. BL_IMPL_TYPE_FONT_MANAGER = 59;
  609. BL_IMPL_TYPE_FONT_FEATURE_OPTIONS = 60;
  610. BL_IMPL_TYPE_FONT_VARIATION_OPTIONS = 61;
  611. BL_IMPL_TYPE_COUNT = 64;
  612. type
  613. BLMatrix2DOp = Integer;
  614. const
  615. BL_MATRIX2D_OP_RESET = 0;
  616. BL_MATRIX2D_OP_ASSIGN = 1;
  617. BL_MATRIX2D_OP_TRANSLATE = 2;
  618. BL_MATRIX2D_OP_SCALE = 3;
  619. BL_MATRIX2D_OP_SKEW = 4;
  620. BL_MATRIX2D_OP_ROTATE = 5;
  621. BL_MATRIX2D_OP_ROTATE_PT = 6;
  622. BL_MATRIX2D_OP_TRANSFORM = 7;
  623. BL_MATRIX2D_OP_POST_TRANSLATE = 8;
  624. BL_MATRIX2D_OP_POST_SCALE = 9;
  625. BL_MATRIX2D_OP_POST_SKEW = 10;
  626. BL_MATRIX2D_OP_POST_ROTATE = 11;
  627. BL_MATRIX2D_OP_POST_ROTATE_PT = 12;
  628. BL_MATRIX2D_OP_POST_TRANSFORM = 13;
  629. BL_MATRIX2D_OP_COUNT = 14;
  630. type
  631. BLMatrix2DType = Integer;
  632. const
  633. BL_MATRIX2D_TYPE_IDENTITY = 0;
  634. BL_MATRIX2D_TYPE_TRANSLATE = 1;
  635. BL_MATRIX2D_TYPE_SCALE = 2;
  636. BL_MATRIX2D_TYPE_SWAP = 3;
  637. BL_MATRIX2D_TYPE_AFFINE = 4;
  638. BL_MATRIX2D_TYPE_INVALID = 5;
  639. BL_MATRIX2D_TYPE_COUNT = 6;
  640. type
  641. BLMatrix2DValue = Integer;
  642. const
  643. BL_MATRIX2D_VALUE_00 = 0;
  644. BL_MATRIX2D_VALUE_01 = 1;
  645. BL_MATRIX2D_VALUE_10 = 2;
  646. BL_MATRIX2D_VALUE_11 = 3;
  647. BL_MATRIX2D_VALUE_20 = 4;
  648. BL_MATRIX2D_VALUE_21 = 5;
  649. BL_MATRIX2D_VALUE_COUNT = 6;
  650. type
  651. BLModifyOp = Integer;
  652. const
  653. BL_MODIFY_OP_ASSIGN_FIT = 0;
  654. BL_MODIFY_OP_ASSIGN_GROW = 1;
  655. BL_MODIFY_OP_APPEND_FIT = 2;
  656. BL_MODIFY_OP_APPEND_GROW = 3;
  657. BL_MODIFY_OP_COUNT = 4;
  658. type
  659. BLOffsetMode = Integer;
  660. const
  661. BL_OFFSET_MODE_DEFAULT = 0;
  662. BL_OFFSET_MODE_ITERATIVE = 1;
  663. type
  664. BLPathCmd = Integer;
  665. const
  666. BL_PATH_CMD_MOVE = 0;
  667. BL_PATH_CMD_ON = 1;
  668. BL_PATH_CMD_QUAD = 2;
  669. BL_PATH_CMD_CUBIC = 3;
  670. BL_PATH_CMD_CLOSE = 4;
  671. BL_PATH_CMD_COUNT = 5;
  672. type
  673. BLPathCmdExtra = Integer;
  674. const
  675. BL_PATH_CMD_PRESERVE = $FFFFFFFF;
  676. type
  677. BLPathFlags = Integer;
  678. const
  679. BL_PATH_FLAG_EMPTY = $1;
  680. BL_PATH_FLAG_MULTIPLE = $2;
  681. BL_PATH_FLAG_QUADS = $4;
  682. BL_PATH_FLAG_CUBICS = $8;
  683. BL_PATH_FLAG_INVALID = $40000000;
  684. BL_PATH_FLAG_DIRTY = $80000000;
  685. type
  686. BLPathReverseMode = Integer;
  687. const
  688. BL_PATH_REVERSE_MODE_COMPLETE = 0;
  689. BL_PATH_REVERSE_MODE_SEPARATE = 1;
  690. BL_PATH_REVERSE_MODE_COUNT = 2;
  691. type
  692. BLPatternQuality = Integer;
  693. const
  694. BL_PATTERN_QUALITY_NEAREST = 0;
  695. BL_PATTERN_QUALITY_BILINEAR = 1;
  696. BL_PATTERN_QUALITY_COUNT = 2;
  697. type
  698. BLPixelConverterCreateFlags = Integer;
  699. const
  700. BL_PIXEL_CONVERTER_CREATE_FLAG_DONT_COPY_PALETTE = 1;
  701. BL_PIXEL_CONVERTER_CREATE_FLAG_ALTERABLE_PALETTE = 2;
  702. BL_PIXEL_CONVERTER_CREATE_FLAG_NO_MULTI_STEP = 4;
  703. type
  704. BLRegionType = Integer;
  705. const
  706. BL_REGION_TYPE_EMPTY = 0;
  707. BL_REGION_TYPE_RECT = 1;
  708. BL_REGION_TYPE_COMPLEX = 2;
  709. BL_REGION_TYPE_COUNT = 3;
  710. type
  711. BLRenderingQuality = Integer;
  712. const
  713. BL_RENDERING_QUALITY_ANTIALIAS = 0;
  714. BL_RENDERING_QUALITY_COUNT = 1;
  715. type
  716. BLResultCode = Integer;
  717. const
  718. BL_SUCCESS = 0;
  719. BL_ERROR_START_INDEX = 65536;
  720. BL_ERROR_OUT_OF_MEMORY = 65536;
  721. BL_ERROR_INVALID_VALUE = 65537;
  722. BL_ERROR_INVALID_STATE = 65538;
  723. BL_ERROR_INVALID_HANDLE = 65539;
  724. BL_ERROR_VALUE_TOO_LARGE = 65540;
  725. BL_ERROR_NOT_INITIALIZED = 65541;
  726. BL_ERROR_NOT_IMPLEMENTED = 65542;
  727. BL_ERROR_NOT_PERMITTED = 65543;
  728. BL_ERROR_IO = 65544;
  729. BL_ERROR_BUSY = 65545;
  730. BL_ERROR_INTERRUPTED = 65546;
  731. BL_ERROR_TRY_AGAIN = 65547;
  732. BL_ERROR_TIMED_OUT = 65548;
  733. BL_ERROR_BROKEN_PIPE = 65549;
  734. BL_ERROR_INVALID_SEEK = 65550;
  735. BL_ERROR_SYMLINK_LOOP = 65551;
  736. BL_ERROR_FILE_TOO_LARGE = 65552;
  737. BL_ERROR_ALREADY_EXISTS = 65553;
  738. BL_ERROR_ACCESS_DENIED = 65554;
  739. BL_ERROR_MEDIA_CHANGED = 65555;
  740. BL_ERROR_READ_ONLY_FS = 65556;
  741. BL_ERROR_NO_DEVICE = 65557;
  742. BL_ERROR_NO_ENTRY = 65558;
  743. BL_ERROR_NO_MEDIA = 65559;
  744. BL_ERROR_NO_MORE_DATA = 65560;
  745. BL_ERROR_NO_MORE_FILES = 65561;
  746. BL_ERROR_NO_SPACE_LEFT = 65562;
  747. BL_ERROR_NOT_EMPTY = 65563;
  748. BL_ERROR_NOT_FILE = 65564;
  749. BL_ERROR_NOT_DIRECTORY = 65565;
  750. BL_ERROR_NOT_SAME_DEVICE = 65566;
  751. BL_ERROR_NOT_BLOCK_DEVICE = 65567;
  752. BL_ERROR_INVALID_FILE_NAME = 65568;
  753. BL_ERROR_FILE_NAME_TOO_LONG = 65569;
  754. BL_ERROR_TOO_MANY_OPEN_FILES = 65570;
  755. BL_ERROR_TOO_MANY_OPEN_FILES_BY_OS = 65571;
  756. BL_ERROR_TOO_MANY_LINKS = 65572;
  757. BL_ERROR_TOO_MANY_THREADS = 65573;
  758. BL_ERROR_THREAD_POOL_EXHAUSTED = 65574;
  759. BL_ERROR_FILE_EMPTY = 65575;
  760. BL_ERROR_OPEN_FAILED = 65576;
  761. BL_ERROR_NOT_ROOT_DEVICE = 65577;
  762. BL_ERROR_UNKNOWN_SYSTEM_ERROR = 65578;
  763. BL_ERROR_INVALID_ALIGNMENT = 65579;
  764. BL_ERROR_INVALID_SIGNATURE = 65580;
  765. BL_ERROR_INVALID_DATA = 65581;
  766. BL_ERROR_INVALID_STRING = 65582;
  767. BL_ERROR_DATA_TRUNCATED = 65583;
  768. BL_ERROR_DATA_TOO_LARGE = 65584;
  769. BL_ERROR_DECOMPRESSION_FAILED = 65585;
  770. BL_ERROR_INVALID_GEOMETRY = 65586;
  771. BL_ERROR_NO_MATCHING_VERTEX = 65587;
  772. BL_ERROR_NO_MATCHING_COOKIE = 65588;
  773. BL_ERROR_NO_STATES_TO_RESTORE = 65589;
  774. BL_ERROR_IMAGE_TOO_LARGE = 65590;
  775. BL_ERROR_IMAGE_NO_MATCHING_CODEC = 65591;
  776. BL_ERROR_IMAGE_UNKNOWN_FILE_FORMAT = 65592;
  777. BL_ERROR_IMAGE_DECODER_NOT_PROVIDED = 65593;
  778. BL_ERROR_IMAGE_ENCODER_NOT_PROVIDED = 65594;
  779. BL_ERROR_PNG_MULTIPLE_IHDR = 65595;
  780. BL_ERROR_PNG_INVALID_IDAT = 65596;
  781. BL_ERROR_PNG_INVALID_IEND = 65597;
  782. BL_ERROR_PNG_INVALID_PLTE = 65598;
  783. BL_ERROR_PNG_INVALID_TRNS = 65599;
  784. BL_ERROR_PNG_INVALID_FILTER = 65600;
  785. BL_ERROR_JPEG_UNSUPPORTED_FEATURE = 65601;
  786. BL_ERROR_JPEG_INVALID_SOS = 65602;
  787. BL_ERROR_JPEG_INVALID_SOF = 65603;
  788. BL_ERROR_JPEG_MULTIPLE_SOF = 65604;
  789. BL_ERROR_JPEG_UNSUPPORTED_SOF = 65605;
  790. BL_ERROR_FONT_NOT_INITIALIZED = 65606;
  791. BL_ERROR_FONT_NO_MATCH = 65607;
  792. BL_ERROR_FONT_NO_CHARACTER_MAPPING = 65608;
  793. BL_ERROR_FONT_MISSING_IMPORTANT_TABLE = 65609;
  794. BL_ERROR_FONT_FEATURE_NOT_AVAILABLE = 65610;
  795. BL_ERROR_FONT_CFF_INVALID_DATA = 65611;
  796. BL_ERROR_FONT_PROGRAM_TERMINATED = 65612;
  797. BL_ERROR_INVALID_GLYPH = 65613;
  798. type
  799. BLRuntimeLimits = Integer;
  800. const
  801. BL_RUNTIME_MAX_IMAGE_SIZE = 65535;
  802. BL_RUNTIME_MAX_THREAD_COUNT = 32;
  803. type
  804. BLRuntimeInfoType = Integer;
  805. const
  806. BL_RUNTIME_INFO_TYPE_BUILD = 0;
  807. BL_RUNTIME_INFO_TYPE_SYSTEM = 1;
  808. BL_RUNTIME_INFO_TYPE_RESOURCE = 2;
  809. BL_RUNTIME_INFO_TYPE_COUNT = 3;
  810. type
  811. BLRuntimeBuildType = Integer;
  812. const
  813. BL_RUNTIME_BUILD_TYPE_DEBUG = 0;
  814. BL_RUNTIME_BUILD_TYPE_RELEASE = 1;
  815. type
  816. BLRuntimeCpuArch = Integer;
  817. const
  818. BL_RUNTIME_CPU_ARCH_UNKNOWN = 0;
  819. BL_RUNTIME_CPU_ARCH_X86 = 1;
  820. BL_RUNTIME_CPU_ARCH_ARM = 2;
  821. BL_RUNTIME_CPU_ARCH_MIPS = 3;
  822. type
  823. BLRuntimeCpuFeatures = Integer;
  824. const
  825. BL_RUNTIME_CPU_FEATURE_X86_SSE2 = 1;
  826. BL_RUNTIME_CPU_FEATURE_X86_SSE3 = 2;
  827. BL_RUNTIME_CPU_FEATURE_X86_SSSE3 = 4;
  828. BL_RUNTIME_CPU_FEATURE_X86_SSE4_1 = 8;
  829. BL_RUNTIME_CPU_FEATURE_X86_SSE4_2 = 16;
  830. BL_RUNTIME_CPU_FEATURE_X86_AVX = 32;
  831. BL_RUNTIME_CPU_FEATURE_X86_AVX2 = 64;
  832. type
  833. BLRuntimeCleanupFlags = Integer;
  834. const
  835. BL_RUNTIME_CLEANUP_OBJECT_POOL = 1;
  836. BL_RUNTIME_CLEANUP_ZEROED_POOL = 2;
  837. BL_RUNTIME_CLEANUP_THREAD_POOL = 16;
  838. BL_RUNTIME_CLEANUP_EVERYTHING = $FFFFFFFF;
  839. type
  840. BLStrokeCap = Integer;
  841. const
  842. BL_STROKE_CAP_BUTT = 0;
  843. BL_STROKE_CAP_SQUARE = 1;
  844. BL_STROKE_CAP_ROUND = 2;
  845. BL_STROKE_CAP_ROUND_REV = 3;
  846. BL_STROKE_CAP_TRIANGLE = 4;
  847. BL_STROKE_CAP_TRIANGLE_REV = 5;
  848. BL_STROKE_CAP_COUNT = 6;
  849. type
  850. BLStrokeCapPosition = Integer;
  851. const
  852. BL_STROKE_CAP_POSITION_START = 0;
  853. BL_STROKE_CAP_POSITION_END = 1;
  854. BL_STROKE_CAP_POSITION_COUNT = 2;
  855. type
  856. BLStrokeJoin = Integer;
  857. const
  858. BL_STROKE_JOIN_MITER_CLIP = 0;
  859. BL_STROKE_JOIN_MITER_BEVEL = 1;
  860. BL_STROKE_JOIN_MITER_ROUND = 2;
  861. BL_STROKE_JOIN_BEVEL = 3;
  862. BL_STROKE_JOIN_ROUND = 4;
  863. BL_STROKE_JOIN_COUNT = 5;
  864. type
  865. BLStrokeTransformOrder = Integer;
  866. const
  867. BL_STROKE_TRANSFORM_ORDER_AFTER = 0;
  868. BL_STROKE_TRANSFORM_ORDER_BEFORE = 1;
  869. BL_STROKE_TRANSFORM_ORDER_COUNT = 2;
  870. type
  871. BLStyleType = Integer;
  872. const
  873. BL_STYLE_TYPE_NONE = 0;
  874. BL_STYLE_TYPE_SOLID = 1;
  875. BL_STYLE_TYPE_PATTERN = 2;
  876. BL_STYLE_TYPE_GRADIENT = 3;
  877. BL_STYLE_TYPE_COUNT = 4;
  878. type
  879. BLTextDirection = Integer;
  880. const
  881. BL_TEXT_DIRECTION_LTR = 0;
  882. BL_TEXT_DIRECTION_RTL = 1;
  883. BL_TEXT_DIRECTION_COUNT = 2;
  884. type
  885. BLTextEncoding = Integer;
  886. const
  887. BL_TEXT_ENCODING_UTF8 = 0;
  888. BL_TEXT_ENCODING_UTF16 = 1;
  889. BL_TEXT_ENCODING_UTF32 = 2;
  890. BL_TEXT_ENCODING_LATIN1 = 3;
  891. BL_TEXT_ENCODING_WCHAR = 1;
  892. BL_TEXT_ENCODING_COUNT = 4;
  893. type
  894. BLTextOrientation = Integer;
  895. const
  896. BL_TEXT_ORIENTATION_HORIZONTAL = 0;
  897. BL_TEXT_ORIENTATION_VERTICAL = 1;
  898. BL_TEXT_ORIENTATION_COUNT = 2;
  899. type
  900. BLApproximationOptions = record
  901. flattenMode: UInt8;
  902. offsetMode: UInt8;
  903. reservedFlags: array [0..5] of UInt8;
  904. flattenTolerance: Double;
  905. simplifyTolerance: Double;
  906. offsetParameter: Double;
  907. end;
  908. _PBLApproximationOptions = ^BLApproximationOptions;
  909. type
  910. BLRgba32 = packed record
  911. case Integer of
  912. 0: (value: UInt32);
  913. 1: (b: UInt8;
  914. g: UInt8;
  915. r: UInt8;
  916. a: UInt8);
  917. end;
  918. _PBLRgba32 = ^BLRgba32;
  919. type
  920. BLRgba64 = packed record
  921. case Integer of
  922. 0: (value: UInt64);
  923. 1: (b: UInt16;
  924. g: UInt16;
  925. r: UInt16;
  926. a: UInt16);
  927. end;
  928. type
  929. BLRgba = record
  930. r: Single;
  931. g: Single;
  932. b: Single;
  933. a: Single;
  934. end;
  935. _PBLRgba = ^BLRgba;
  936. type
  937. BLArrayView = record
  938. data: Pointer;
  939. size: NativeUInt;
  940. end;
  941. type
  942. BLArc = record
  943. cx: Double;
  944. cy: Double;
  945. rx: Double;
  946. ry: Double;
  947. start: Double;
  948. sweep: Double;
  949. end;
  950. type
  951. BLCircle = record
  952. cx: Double;
  953. cy: Double;
  954. r: Double;
  955. end;
  956. type
  957. BLEllipse = record
  958. cx: Double;
  959. cy: Double;
  960. rx: Double;
  961. ry: Double;
  962. end;
  963. type
  964. BLLine = record
  965. x0: Double;
  966. y0: Double;
  967. x1: Double;
  968. y1: Double;
  969. end;
  970. type
  971. BLPoint = record
  972. x: Double;
  973. y: Double;
  974. end;
  975. _PBLPoint = ^BLPoint;
  976. type
  977. BLPointI = record
  978. x: Integer;
  979. y: Integer;
  980. end;
  981. _PBLPointI = ^BLPointI;
  982. type
  983. BLSize = record
  984. w: Double;
  985. h: Double;
  986. end;
  987. _PBLSize = ^BLSize;
  988. type
  989. BLSizeI = record
  990. w: Integer;
  991. h: Integer;
  992. end;
  993. _PBLSizeI = ^BLSizeI;
  994. type
  995. BLRect = record
  996. x: Double;
  997. y: Double;
  998. w: Double;
  999. h: Double;
  1000. end;
  1001. _PBLRect = ^BLRect;
  1002. type
  1003. BLRectI = record
  1004. x: Integer;
  1005. y: Integer;
  1006. w: Integer;
  1007. h: Integer;
  1008. end;
  1009. _PBLRectI = ^BLRectI;
  1010. type
  1011. BLRoundRect = record
  1012. x: Double;
  1013. y: Double;
  1014. w: Double;
  1015. h: Double;
  1016. rx: Double;
  1017. ry: Double;
  1018. end;
  1019. type
  1020. BLTriangle = record
  1021. x0: Double;
  1022. y0: Double;
  1023. x1: Double;
  1024. y1: Double;
  1025. x2: Double;
  1026. y2: Double;
  1027. end;
  1028. type
  1029. BLBox = record
  1030. x0: Double;
  1031. y0: Double;
  1032. x1: Double;
  1033. y1: Double;
  1034. end;
  1035. _PBLBox = ^BLBox;
  1036. type
  1037. BLBoxI = record
  1038. x0: Integer;
  1039. y0: Integer;
  1040. x1: Integer;
  1041. y1: Integer;
  1042. end;
  1043. _PBLBoxI = ^BLBoxI;
  1044. type
  1045. BLMatrix2D = record
  1046. case Integer of
  1047. 0: (m: array [0..5] of Double);
  1048. 1: (m00: Double;
  1049. m01: Double;
  1050. m10: Double;
  1051. m11: Double;
  1052. m20: Double;
  1053. m21: Double);
  1054. end;
  1055. _PBLMatrix2D = ^BLMatrix2D;
  1056. type
  1057. BLDataView = BLArrayView;
  1058. type
  1059. BLArrayImpl = record
  1060. capacity: NativeUInt;
  1061. refCount: NativeUInt;
  1062. implType: UInt8;
  1063. implTraits: UInt8;
  1064. memPoolData: UInt16;
  1065. itemSize: UInt8;
  1066. dispatchType: UInt8;
  1067. reserved: array [0..1] of UInt8;
  1068. case Integer of
  1069. 0: (data: Pointer;
  1070. size: NativeUInt);
  1071. 1: (view: BLDataView);
  1072. end;
  1073. PBLArrayImpl = ^BLArrayImpl;
  1074. type
  1075. BLArrayCore = record
  1076. impl: PBLArrayImpl;
  1077. end;
  1078. PBLArrayCore = ^BLArrayCore;
  1079. type
  1080. BLStrokeOptionsCore = record
  1081. options: record
  1082. case Integer of
  1083. 0: (startCap: UInt8;
  1084. endCap: UInt8;
  1085. join: UInt8;
  1086. transformOrder: UInt8;
  1087. reserved: array [0..3] of UInt8);
  1088. 1: (caps: array [0..1] of UInt8);
  1089. 2: (hints: UInt64);
  1090. end;
  1091. width: Double;
  1092. miterLimit: Double;
  1093. dashOffset: Double;
  1094. dashArray: BLArrayCore;
  1095. end;
  1096. PBLStrokeOptionsCore = ^BLStrokeOptionsCore;
  1097. type
  1098. BLImageImpl = record
  1099. pixelData: Pointer;
  1100. refCount: NativeUInt;
  1101. implType: UInt8;
  1102. implTraits: UInt8;
  1103. memPoolData: UInt16;
  1104. format: UInt8;
  1105. flags: UInt8;
  1106. depth: UInt16;
  1107. size: BLSizeI;
  1108. stride: IntPtr;
  1109. end;
  1110. _PBLImageImpl = ^BLImageImpl;
  1111. type
  1112. BLImageCore = record
  1113. impl: _PBLImageImpl;
  1114. end;
  1115. PBLImageCore = ^BLImageCore;
  1116. type
  1117. BLContextCookie = record
  1118. data: array [0..1] of UInt64;
  1119. end;
  1120. _PBLContextCookie = ^BLContextCookie;
  1121. type
  1122. BLContextCreateInfo = record
  1123. flags: UInt32;
  1124. threadCount: Int32;
  1125. cpuFeatures: UInt32;
  1126. commandQueueLimit: Int32;
  1127. reserved: array [0..3] of UInt32;
  1128. end;
  1129. _PBLContextCreateInfo = ^BLContextCreateInfo;
  1130. type
  1131. BLContextHints = record
  1132. case Integer of
  1133. 0: (renderingQuality: UInt8;
  1134. gradientQuality: UInt8;
  1135. patternQuality: UInt8);
  1136. 1: (hints: array [0..7] of UInt8);
  1137. end;
  1138. _PBLContextHints = ^BLContextHints;
  1139. type
  1140. BLContextState = record
  1141. targetImage: PBLImageCore;
  1142. targetSize: BLSize;
  1143. hints: BLContextHints;
  1144. compOp: UInt8;
  1145. fillRule: UInt8;
  1146. styleType: array [0..1] of UInt8;
  1147. reserved: array [0..3] of UInt8;
  1148. approximationOptions: BLApproximationOptions;
  1149. globalAlpha: Double;
  1150. styleAlpha: array [0..1] of Double;
  1151. strokeOptions: BLStrokeOptionsCore;
  1152. metaMatrix: BLMatrix2D;
  1153. userMatrix: BLMatrix2D;
  1154. savedStateCount: NativeUInt;
  1155. end;
  1156. _PBLContextState = ^BLContextState;
  1157. type
  1158. PBLContextVirt = Pointer;
  1159. type
  1160. BLContextImpl = record
  1161. virt: PBLContextVirt;
  1162. refCount: NativeUInt;
  1163. implType: UInt8;
  1164. implTraits: UInt8;
  1165. memPoolData: UInt16;
  1166. contextType: UInt32;
  1167. state: _PBLContextState;
  1168. end;
  1169. PBLContextImpl = ^BLContextImpl;
  1170. type
  1171. BLContextCore = record
  1172. impl: PBLContextImpl;
  1173. end;
  1174. PBLContextCore = ^BLContextCore;
  1175. type
  1176. BLCreateForeignInfo = record
  1177. data: Pointer;
  1178. size: NativeUInt;
  1179. destroyFunc: BLDestroyImplFunc;
  1180. destroyData: Pointer;
  1181. end;
  1182. type
  1183. BLStringView = record
  1184. data: PUTF8Char;
  1185. size: NativeUInt;
  1186. end;
  1187. type
  1188. BLStringImpl = record
  1189. capacity: NativeUInt;
  1190. refCount: NativeUInt;
  1191. implType: UInt8;
  1192. implTraits: UInt8;
  1193. memPoolData: UInt16;
  1194. reserved: UInt32;
  1195. case Integer of
  1196. 0: (data: PUTF8Char;
  1197. size: NativeUInt);
  1198. 1: (view: BLStringView);
  1199. end;
  1200. _PBLStringImpl = ^BLStringImpl;
  1201. type
  1202. BLStringCore = record
  1203. impl: _PBLStringImpl;
  1204. end;
  1205. PBLStringCore = ^BLStringCore;
  1206. type
  1207. PBLFontDataVirt = Pointer;
  1208. type
  1209. BLFontDataImpl = record
  1210. virt: PBLFontDataVirt;
  1211. refCount: NativeUInt;
  1212. implType: UInt8;
  1213. implTraits: UInt8;
  1214. memPoolData: UInt16;
  1215. faceType: UInt8;
  1216. reserved: array [0..2] of UInt8;
  1217. faceCount: UInt32;
  1218. flags: UInt32;
  1219. end;
  1220. _PBLFontDataImpl = ^BLFontDataImpl;
  1221. type
  1222. BLFontDataCore = record
  1223. impl: _PBLFontDataImpl;
  1224. end;
  1225. PBLFontDataCore = ^BLFontDataCore;
  1226. type
  1227. BLFontDesignMetrics = record
  1228. unitsPerEm: Integer;
  1229. lowestPPEM: Integer;
  1230. lineGap: Integer;
  1231. xHeight: Integer;
  1232. capHeight: Integer;
  1233. ascent: Integer;
  1234. vAscent: Integer;
  1235. descent: Integer;
  1236. vDescent: Integer;
  1237. hMinLSB: Integer;
  1238. vMinLSB: Integer;
  1239. hMinTSB: Integer;
  1240. vMinTSB: Integer;
  1241. hMaxAdvance: Integer;
  1242. vMaxAdvance: Integer;
  1243. glyphBoundingBox: BLBoxI;
  1244. underlinePosition: Integer;
  1245. underlineThickness: Integer;
  1246. strikethroughPosition: Integer;
  1247. strikethroughThickness: Integer;
  1248. end;
  1249. _PBLFontDesignMetrics = ^BLFontDesignMetrics;
  1250. type
  1251. BLFontFaceInfo = record
  1252. faceType: UInt8;
  1253. outlineType: UInt8;
  1254. glyphCount: UInt16;
  1255. revision: UInt32;
  1256. faceIndex: Int32;
  1257. faceFlags: UInt32;
  1258. diagFlags: UInt32;
  1259. reserved: array [0..2] of UInt32;
  1260. end;
  1261. _PBLFontFaceInfo = ^BLFontFaceInfo;
  1262. type
  1263. BLFontFeature = record
  1264. tag: BLTag;
  1265. value: UInt32;
  1266. end;
  1267. type
  1268. BLFontUnicodeCoverage = record
  1269. data: array [0..3] of UInt32;
  1270. end;
  1271. _PBLFontUnicodeCoverage = ^BLFontUnicodeCoverage;
  1272. type
  1273. BLFontPanose = record
  1274. case Integer of
  1275. 0: (data: array [0..9] of UInt8);
  1276. 1: (familyKind: UInt8);
  1277. 2: (text: record
  1278. familyKind: UInt8;
  1279. serifStyle: UInt8;
  1280. weight: UInt8;
  1281. proportion: UInt8;
  1282. contrast: UInt8;
  1283. strokeVariation: UInt8;
  1284. armStyle: UInt8;
  1285. letterform: UInt8;
  1286. midline: UInt8;
  1287. xHeight: UInt8
  1288. end);
  1289. 3: (script: record
  1290. familyKind: UInt8;
  1291. toolKind: UInt8;
  1292. weight: UInt8;
  1293. spacing: UInt8;
  1294. aspectRatio: UInt8;
  1295. contrast: UInt8;
  1296. topology: UInt8;
  1297. form: UInt8;
  1298. finials: UInt8;
  1299. xAscent: UInt8;
  1300. end);
  1301. 4: (decorative: record
  1302. familyKind: UInt8;
  1303. decorativeClass: UInt8;
  1304. weight: UInt8;
  1305. aspect: UInt8;
  1306. contrast: UInt8;
  1307. serifVariant: UInt8;
  1308. treatment: UInt8;
  1309. lining: UInt8;
  1310. topology: UInt8;
  1311. characterRange: UInt8;
  1312. end);
  1313. 5: (symbol: record
  1314. familyKind: UInt8;
  1315. symbolKind: UInt8;
  1316. weight: UInt8;
  1317. spacing: UInt8;
  1318. aspectRatioAndContrast: UInt8;
  1319. aspectRatio94: UInt8;
  1320. aspectRatio119: UInt8;
  1321. aspectRatio157: UInt8;
  1322. aspectRatio163: UInt8;
  1323. aspectRatio211: UInt8;
  1324. end);
  1325. end;
  1326. type
  1327. PBLFontFaceVirt = Pointer;
  1328. type
  1329. BLFontFaceImpl = record
  1330. virt: PBLFontFaceVirt;
  1331. refCount: NativeUInt;
  1332. implType: UInt8;
  1333. implTraits: UInt8;
  1334. memPoolData: UInt16;
  1335. weight: UInt16;
  1336. stretch: UInt8;
  1337. style: UInt8;
  1338. faceInfo: BLFontFaceInfo;
  1339. uniqueId: BLUniqueId;
  1340. data: BLFontDataCore;
  1341. fullName: BLStringCore;
  1342. familyName: BLStringCore;
  1343. subfamilyName: BLStringCore;
  1344. postScriptName: BLStringCore;
  1345. designMetrics: BLFontDesignMetrics;
  1346. unicodeCoverage: BLFontUnicodeCoverage;
  1347. panose: BLFontPanose;
  1348. end;
  1349. _PBLFontFaceImpl = ^BLFontFaceImpl;
  1350. type
  1351. BLFontFaceCore = record
  1352. impl: _PBLFontFaceImpl;
  1353. end;
  1354. PBLFontFaceCore = ^BLFontFaceCore;
  1355. type
  1356. BLFontMatrix = record
  1357. case Integer of
  1358. 0: (m: array [0..3] of Double);
  1359. 1: (m00: Double;
  1360. m01: Double;
  1361. m10: Double;
  1362. m11: Double
  1363. );
  1364. end;
  1365. _PBLFontMatrix = ^BLFontMatrix;
  1366. type
  1367. BLFontMetrics = record
  1368. size: Single;
  1369. ascent: Single;
  1370. vAscent: Single;
  1371. descent: Single;
  1372. vDescent: Single;
  1373. lineGap: Single;
  1374. xHeight: Single;
  1375. capHeight: Single;
  1376. xMin: Single;
  1377. yMin: Single;
  1378. xMax: Single;
  1379. yMax: Single;
  1380. underlinePosition: Single;
  1381. underlineThickness: Single;
  1382. strikethroughPosition: Single;
  1383. strikethroughThickness: Single;
  1384. end;
  1385. _PBLFontMetrics = ^BLFontMetrics;
  1386. type
  1387. BLFontImpl = record
  1388. face: BLFontFaceCore;
  1389. refCount: NativeUInt;
  1390. implType: UInt8;
  1391. implTraits: UInt8;
  1392. memPoolData: UInt16;
  1393. weight: UInt16;
  1394. stretch: UInt8;
  1395. style: UInt8;
  1396. features: BLArrayCore;
  1397. variations: BLArrayCore;
  1398. metrics: BLFontMetrics;
  1399. matrix: BLFontMatrix;
  1400. end;
  1401. _PBLFontImpl = ^BLFontImpl;
  1402. type
  1403. BLFontCore = record
  1404. impl: _PBLFontImpl;
  1405. end;
  1406. PBLFontCore = ^BLFontCore;
  1407. type
  1408. PBLFontManagerVirt = Pointer;
  1409. type
  1410. BLFontManagerImpl = record
  1411. virt: PBLFontManagerVirt;
  1412. refCount: NativeUInt;
  1413. implType: UInt8;
  1414. implTraits: UInt8;
  1415. memPoolData: UInt16;
  1416. reserved: array [0..3] of UInt8;
  1417. end;
  1418. _PBLFontManagerImpl = ^BLFontManagerImpl;
  1419. type
  1420. BLFontManagerCore = record
  1421. impl: _PBLFontManagerImpl;
  1422. end;
  1423. PBLFontManagerCore = ^BLFontManagerCore;
  1424. type
  1425. BLFontQueryProperties = record
  1426. style: UInt32;
  1427. weight: UInt32;
  1428. stretch: UInt32;
  1429. end;
  1430. PBLFontQueryProperties = ^BLFontQueryProperties;
  1431. type
  1432. BLFontTable = record
  1433. data: Pointer;
  1434. size: NativeUInt;
  1435. end;
  1436. _PBLFontTable = ^BLFontTable;
  1437. type
  1438. BLFontVariation = record
  1439. tag: BLTag;
  1440. value: Single;
  1441. end;
  1442. type
  1443. BLFormatInfo = record
  1444. depth: Int32;
  1445. flags: UInt32;
  1446. case Integer of
  1447. 0: (sizes: array [0..3] of UInt8;
  1448. shifts: array [0..3] of UInt8);
  1449. 1: (rSize: UInt8;
  1450. gSize: UInt8;
  1451. bSize: UInt8;
  1452. aSize: UInt8;
  1453. rShift: UInt8;
  1454. gShift: UInt8;
  1455. bShift: UInt8;
  1456. aShift: UInt8);
  1457. 2: (palette: _PBLRgba32);
  1458. end;
  1459. _PBLFormatInfo = ^BLFormatInfo;
  1460. type
  1461. BLGlyphPlacement = record
  1462. placement: BLPointI;
  1463. advance: BLPointI;
  1464. end;
  1465. _PBLGlyphPlacement = ^BLGlyphPlacement;
  1466. type
  1467. BLGlyphRun = record
  1468. glyphData: Pointer;
  1469. placementData: Pointer;
  1470. size: NativeUInt;
  1471. glyphSize: UInt8;
  1472. placementType: UInt8;
  1473. glyphAdvance: Int8;
  1474. placementAdvance: Int8;
  1475. flags: UInt32;
  1476. end;
  1477. _PBLGlyphRun = ^BLGlyphRun;
  1478. type
  1479. BLGlyphInfo = record
  1480. cluster: UInt32;
  1481. reserved: array [0..1] of UInt32;
  1482. end;
  1483. _PBLGlyphInfo = ^BLGlyphInfo;
  1484. type
  1485. BLGlyphBufferImpl = record
  1486. data: record
  1487. case Integer of
  1488. 0: (content: PUInt32;
  1489. placementData: _PBLGlyphPlacement;
  1490. size: NativeUInt;
  1491. reserved: UInt32;
  1492. flags: UInt32);
  1493. 1: (glyphRun: BLGlyphRun);
  1494. end;
  1495. infoData: _PBLGlyphInfo;
  1496. end;
  1497. _PBLGlyphBufferImpl = ^BLGlyphBufferImpl;
  1498. type
  1499. BLGlyphBufferCore = record
  1500. impl: _PBLGlyphBufferImpl;
  1501. end;
  1502. PBLGlyphBufferCore = ^BLGlyphBufferCore;
  1503. type
  1504. BLGlyphMappingState = record
  1505. glyphCount: NativeUInt;
  1506. undefinedFirst: NativeUInt;
  1507. undefinedCount: NativeUInt;
  1508. end;
  1509. _PBLGlyphMappingState = ^BLGlyphMappingState;
  1510. type
  1511. BLGlyphOutlineSinkInfo = record
  1512. glyphIndex: NativeUInt;
  1513. contourCount: NativeUInt;
  1514. end;
  1515. _PBLGlyphOutlineSinkInfo = ^BLGlyphOutlineSinkInfo;
  1516. type
  1517. BLGradientStop = record
  1518. offset: Double;
  1519. rgba: BLRgba64;
  1520. end;
  1521. _PBLGradientStop = ^BLGradientStop;
  1522. type
  1523. BLLinearGradientValues = record
  1524. x0: Double;
  1525. y0: Double;
  1526. x1: Double;
  1527. y1: Double;
  1528. end;
  1529. type
  1530. BLRadialGradientValues = record
  1531. x0: Double;
  1532. y0: Double;
  1533. x1: Double;
  1534. y1: Double;
  1535. r0: Double;
  1536. end;
  1537. type
  1538. BLConicalGradientValues = record
  1539. x0: Double;
  1540. y0: Double;
  1541. angle: Double;
  1542. end;
  1543. type
  1544. BLGradientImpl = record
  1545. capacity: NativeUInt;
  1546. refCount: NativeUInt;
  1547. implType: UInt8;
  1548. implTraits: UInt8;
  1549. memPoolData: UInt16;
  1550. gradientType: UInt8;
  1551. extendMode: UInt8;
  1552. matrixType: UInt8;
  1553. reserved: array [0..0] of UInt8;
  1554. stops: record
  1555. stops: _PBLGradientStop;
  1556. size: NativeUInt;
  1557. end;
  1558. matrix: BLMatrix2D;
  1559. case Integer of
  1560. 0: (values: array [0..5] of Double);
  1561. 1: (linear: BLLinearGradientValues);
  1562. 2: (radial: BLRadialGradientValues);
  1563. 3: (conical: BLConicalGradientValues);
  1564. end;
  1565. _PBLGradientImpl = ^BLGradientImpl;
  1566. type
  1567. BLGradientCore = record
  1568. impl: _PBLGradientImpl;
  1569. end;
  1570. PBLGradientCore = ^BLGradientCore;
  1571. type
  1572. PBLImageCodecVirt = Pointer;
  1573. type
  1574. BLImageCodecImpl = record
  1575. virt: PBLImageCodecVirt;
  1576. refCount: NativeUInt;
  1577. implType: UInt8;
  1578. implTraits: UInt8;
  1579. memPoolData: UInt16;
  1580. features: UInt32;
  1581. name: PUTF8Char;
  1582. vendor: PUTF8Char;
  1583. mimeType: PUTF8Char;
  1584. extensions: PUTF8Char;
  1585. end;
  1586. _PBLImageCodecImpl = ^BLImageCodecImpl;
  1587. type
  1588. BLImageCodecCore = record
  1589. impl: _PBLImageCodecImpl;
  1590. end;
  1591. PBLImageCodecCore = ^BLImageCodecCore;
  1592. type
  1593. PBLImageDecoderVirt = Pointer;
  1594. type
  1595. BLImageDecoderImpl = record
  1596. virt: PBLImageDecoderVirt;
  1597. refCount: NativeUInt;
  1598. implType: UInt8;
  1599. implTraits: UInt8;
  1600. memPoolData: UInt16;
  1601. lastResult: BLResult;
  1602. codec: BLImageCodecCore;
  1603. handle: Pointer;
  1604. frameIndex: UInt64;
  1605. bufferIndex: NativeUInt;
  1606. end;
  1607. _PBLImageDecoderImpl = ^BLImageDecoderImpl;
  1608. type
  1609. BLImageDecoderCore = record
  1610. impl: _PBLImageDecoderImpl;
  1611. end;
  1612. PBLImageDecoderCore = ^BLImageDecoderCore;
  1613. type
  1614. PBLImageEncoderVirt = Pointer;
  1615. type
  1616. BLImageEncoderImpl = record
  1617. virt: PBLImageEncoderVirt;
  1618. refCount: NativeUInt;
  1619. implType: UInt8;
  1620. implTraits: UInt8;
  1621. memPoolData: UInt16;
  1622. lastResult: BLResult;
  1623. codec: BLImageCodecCore;
  1624. handle: Pointer;
  1625. frameIndex: UInt64;
  1626. bufferIndex: NativeUInt;
  1627. end;
  1628. _PBLImageEncoderImpl = ^BLImageEncoderImpl;
  1629. type
  1630. BLImageEncoderCore = record
  1631. impl: _PBLImageEncoderImpl;
  1632. end;
  1633. PBLImageEncoderCore = ^BLImageEncoderCore;
  1634. type
  1635. BLImageData = record
  1636. pixelData: Pointer;
  1637. stride: IntPtr;
  1638. size: BLSizeI;
  1639. format: UInt32;
  1640. flags: UInt32;
  1641. end;
  1642. _PBLImageData = ^BLImageData;
  1643. type
  1644. BLImageInfo = record
  1645. size: BLSizeI;
  1646. density: BLSize;
  1647. flags: UInt32;
  1648. depth: UInt16;
  1649. planeCount: UInt16;
  1650. frameCount: UInt64;
  1651. format: array [0..15] of UTF8Char;
  1652. compression: array [0..15] of UTF8Char;
  1653. end;
  1654. _PBLImageInfo = ^BLImageInfo;
  1655. type
  1656. BLImageScaleUserFunc = function(dst: PDouble; tArray: PDouble; n: NativeUInt; data: Pointer): Cardinal; cdecl;
  1657. type
  1658. BLImageScaleOptions = record
  1659. userFunc: BLImageScaleUserFunc;
  1660. userData: Pointer;
  1661. radius: Double;
  1662. case Integer of
  1663. 0: (data: array [0..2] of Double);
  1664. 1: (mitchell: record
  1665. b: Double;
  1666. c: Double
  1667. end);
  1668. end;
  1669. _PBLImageScaleOptions = ^BLImageScaleOptions;
  1670. type
  1671. BLPatternImpl = record
  1672. image: BLImageCore;
  1673. refCount: NativeUInt;
  1674. implType: UInt8;
  1675. implTraits: UInt8;
  1676. memPoolData: UInt16;
  1677. patternType: UInt8;
  1678. extendMode: UInt8;
  1679. matrixType: UInt8;
  1680. reserved: array [0..0] of UInt8;
  1681. matrix: BLMatrix2D;
  1682. area: BLRectI;
  1683. end;
  1684. _PBLPatternImpl = ^BLPatternImpl;
  1685. type
  1686. BLPatternCore = record
  1687. impl: _PBLPatternImpl;
  1688. end;
  1689. PBLPatternCore = ^BLPatternCore;
  1690. type
  1691. BLPathView = record
  1692. commandData: PUInt8;
  1693. vertexData: _PBLPoint;
  1694. size: NativeUInt;
  1695. end;
  1696. type
  1697. BLPathImpl = record
  1698. capacity: NativeUInt;
  1699. refCount: NativeUInt;
  1700. implType: UInt8;
  1701. implTraits: UInt8;
  1702. memPoolData: UInt16;
  1703. flags: UInt32;
  1704. case Integer of
  1705. 0: (commandData: PUInt8;
  1706. vertexData: _PBLPoint;
  1707. size: NativeUInt);
  1708. 1: (view: BLPathView);
  1709. end;
  1710. _PBLPathImpl = ^BLPathImpl;
  1711. type
  1712. BLPathCore = record
  1713. impl: _PBLPathImpl;
  1714. end;
  1715. PBLPathCore = ^BLPathCore;
  1716. type
  1717. BLPathSinkFunc = function(path: PBLPathCore; info: Pointer; closure: Pointer): Cardinal; cdecl;
  1718. type
  1719. BLPixelConverterOptions = record
  1720. origin: BLPointI;
  1721. gap: NativeUInt;
  1722. end;
  1723. _PBLPixelConverterOptions = ^BLPixelConverterOptions;
  1724. type
  1725. PBLPixelConverterCore = ^BLPixelConverterCore;
  1726. BLPixelConverterFunc = function(self: PBLPixelConverterCore; dstData: PUInt8; dstStride: IntPtr; srcData: PUInt8; srcStride: IntPtr; w: UInt32; h: UInt32; options: _PBLPixelConverterOptions): Cardinal; cdecl;
  1727. BLPixelConverterCore = record
  1728. case Integer of
  1729. 0: (convertFunc: BLPixelConverterFunc;
  1730. internalFlags: UInt8);
  1731. 1: (data: array [0..79] of UInt8);
  1732. end;
  1733. type
  1734. BLRandom = record
  1735. data: array [0..1] of UInt64;
  1736. end;
  1737. _PBLRandom = ^BLRandom;
  1738. type
  1739. BLRange = record
  1740. start: NativeUInt;
  1741. &end: NativeUInt;
  1742. end;
  1743. _PBLRange = ^BLRange;
  1744. type
  1745. BLRegionView = record
  1746. data: _PBLBoxI;
  1747. size: NativeUInt;
  1748. end;
  1749. type
  1750. BLRegionImpl = record
  1751. capacity: NativeUInt;
  1752. refCount: NativeUInt;
  1753. implType: UInt8;
  1754. implTraits: UInt8;
  1755. memPoolData: UInt16;
  1756. reserved: array [0..3] of UInt8;
  1757. data: record
  1758. case Integer of
  1759. 0: (data: _PBLBoxI;
  1760. size: NativeUInt);
  1761. 1: (view: BLRegionView);
  1762. end;
  1763. boundingBox: BLBoxI;
  1764. end;
  1765. _PBLRegionImpl = ^BLRegionImpl;
  1766. type
  1767. BLRegionCore = record
  1768. impl: _PBLRegionImpl;
  1769. end;
  1770. PBLRegionCore = ^BLRegionCore;
  1771. type
  1772. BLRuntimeBuildInfo = record
  1773. version: record
  1774. case Integer of
  1775. 0: (version: UInt32);
  1776. 1: (patchVersion: UInt8;
  1777. minorVersion: UInt8;
  1778. majorVersion: UInt16);
  1779. end;
  1780. buildType: UInt32;
  1781. baselineCpuFeatures: UInt32;
  1782. supportedCpuFeatures: UInt32;
  1783. maxImageSize: Int32;
  1784. maxThreadCount: Int32;
  1785. reserved: array [0..1] of UInt32;
  1786. compilerInfo: array [0..31] of UTF8Char;
  1787. end;
  1788. type
  1789. BLRuntimeSystemInfo = record
  1790. cpuArch: UInt32;
  1791. cpuFeatures: UInt32;
  1792. coreCount: Int32;
  1793. threadCount: Int32;
  1794. threadStackSize: Int32;
  1795. removed: Int32;
  1796. allocationGranularity: Int32;
  1797. reserved: array [0..4] of UInt32;
  1798. end;
  1799. type
  1800. BLRuntimeResourceInfo = record
  1801. vmUsed: NativeInt;
  1802. vmReserved: NativeInt;
  1803. vmOverhead: NativeInt;
  1804. vmBlockCount: NativeInt;
  1805. zmUsed: NativeInt;
  1806. zmReserved: NativeInt;
  1807. zmOverhead: NativeInt;
  1808. zmBlockCount: NativeInt;
  1809. dynamicPipelineCount: NativeInt;
  1810. fileHandleCount: NativeInt;
  1811. fileMappingCount: NativeInt;
  1812. reserved: array [0..4] of NativeInt;
  1813. end;
  1814. type
  1815. BLTextMetrics = record
  1816. advance: BLPoint;
  1817. leadingBearing: BLPoint;
  1818. trailingBearing: BLPoint;
  1819. boundingBox: BLBox;
  1820. end;
  1821. _PBLTextMetrics = ^BLTextMetrics;
  1822. type
  1823. BLVariantImpl = record
  1824. f1: record
  1825. case Integer of
  1826. 0: (virt: Pointer);
  1827. 1: (unknownHeaderData: UIntPtr);
  1828. end;
  1829. refCount: NativeUInt;
  1830. implType: UInt8;
  1831. implTraits: UInt8;
  1832. memPoolData: UInt16;
  1833. reserved: array [0..3] of UInt8;
  1834. end;
  1835. _PBLVariantImpl = ^BLVariantImpl;
  1836. type
  1837. BLVariantCore = record
  1838. impl: _PBLVariantImpl;
  1839. end;
  1840. PBLVariantCore = ^BLVariantCore;
  1841. type
  1842. BLStyleCore = record
  1843. case Integer of
  1844. 0: (rgba: BLRgba);
  1845. 1: (variant: BLVariantCore);
  1846. 2: (pattern: BLPatternCore);
  1847. 3: (gradient: BLGradientCore);
  1848. 4: (data: record
  1849. unknown: UInt64;
  1850. &type: UInt32;
  1851. tag: UInt32;
  1852. end);
  1853. 5: (u64data: array [0..1] of UInt64);
  1854. end;
  1855. PBLStyleCore = ^BLStyleCore;
  1856. function blArrayInit(self: PBLArrayCore; arrayTypeId: UInt32): BLResult; cdecl;
  1857. external LIB_BLEND2D name _PU + 'blArrayInit';
  1858. function blArrayDestroy(self: PBLArrayCore): BLResult; cdecl;
  1859. external LIB_BLEND2D name _PU + 'blArrayDestroy';
  1860. function blArrayReset(self: PBLArrayCore): BLResult; cdecl;
  1861. external LIB_BLEND2D name _PU + 'blArrayReset';
  1862. function blArrayCreateFromData(self: PBLArrayCore; data: Pointer; size: NativeUInt; capacity: NativeUInt; dataAccessFlags: UInt32; destroyFunc: BLDestroyImplFunc; destroyData: Pointer): BLResult; cdecl;
  1863. external LIB_BLEND2D name _PU + 'blArrayCreateFromData';
  1864. function blArrayGetSize(self: PBLArrayCore): NativeUInt; cdecl;
  1865. external LIB_BLEND2D name _PU + 'blArrayGetSize';
  1866. function blArrayGetCapacity(self: PBLArrayCore): NativeUInt; cdecl;
  1867. external LIB_BLEND2D name _PU + 'blArrayGetCapacity';
  1868. function blArrayGetData(self: PBLArrayCore): Pointer; cdecl;
  1869. external LIB_BLEND2D name _PU + 'blArrayGetData';
  1870. function blArrayClear(self: PBLArrayCore): BLResult; cdecl;
  1871. external LIB_BLEND2D name _PU + 'blArrayClear';
  1872. function blArrayShrink(self: PBLArrayCore): BLResult; cdecl;
  1873. external LIB_BLEND2D name _PU + 'blArrayShrink';
  1874. function blArrayReserve(self: PBLArrayCore; n: NativeUInt): BLResult; cdecl;
  1875. external LIB_BLEND2D name _PU + 'blArrayReserve';
  1876. function blArrayResize(self: PBLArrayCore; n: NativeUInt; fill: Pointer): BLResult; cdecl;
  1877. external LIB_BLEND2D name _PU + 'blArrayResize';
  1878. function blArrayMakeMutable(self: PBLArrayCore; dataOut: PPointer): BLResult; cdecl;
  1879. external LIB_BLEND2D name _PU + 'blArrayMakeMutable';
  1880. function blArrayModifyOp(self: PBLArrayCore; op: UInt32; n: NativeUInt; dataOut: PPointer): BLResult; cdecl;
  1881. external LIB_BLEND2D name _PU + 'blArrayModifyOp';
  1882. function blArrayInsertOp(self: PBLArrayCore; index: NativeUInt; n: NativeUInt; dataOut: PPointer): BLResult; cdecl;
  1883. external LIB_BLEND2D name _PU + 'blArrayInsertOp';
  1884. function blArrayAssignMove(self: PBLArrayCore; other: PBLArrayCore): BLResult; cdecl;
  1885. external LIB_BLEND2D name _PU + 'blArrayAssignMove';
  1886. function blArrayAssignWeak(self: PBLArrayCore; other: PBLArrayCore): BLResult; cdecl;
  1887. external LIB_BLEND2D name _PU + 'blArrayAssignWeak';
  1888. function blArrayAssignDeep(self: PBLArrayCore; other: PBLArrayCore): BLResult; cdecl;
  1889. external LIB_BLEND2D name _PU + 'blArrayAssignDeep';
  1890. function blArrayAssignView(self: PBLArrayCore; items: Pointer; n: NativeUInt): BLResult; cdecl;
  1891. external LIB_BLEND2D name _PU + 'blArrayAssignView';
  1892. function blArrayAppendU8(self: PBLArrayCore; value: UInt8): BLResult; cdecl;
  1893. external LIB_BLEND2D name _PU + 'blArrayAppendU8';
  1894. function blArrayAppendU16(self: PBLArrayCore; value: UInt16): BLResult; cdecl;
  1895. external LIB_BLEND2D name _PU + 'blArrayAppendU16';
  1896. function blArrayAppendU32(self: PBLArrayCore; value: UInt32): BLResult; cdecl;
  1897. external LIB_BLEND2D name _PU + 'blArrayAppendU32';
  1898. function blArrayAppendU64(self: PBLArrayCore; value: UInt64): BLResult; cdecl;
  1899. external LIB_BLEND2D name _PU + 'blArrayAppendU64';
  1900. function blArrayAppendF32(self: PBLArrayCore; value: Single): BLResult; cdecl;
  1901. external LIB_BLEND2D name _PU + 'blArrayAppendF32';
  1902. function blArrayAppendF64(self: PBLArrayCore; value: Double): BLResult; cdecl;
  1903. external LIB_BLEND2D name _PU + 'blArrayAppendF64';
  1904. function blArrayAppendItem(self: PBLArrayCore; item: Pointer): BLResult; cdecl;
  1905. external LIB_BLEND2D name _PU + 'blArrayAppendItem';
  1906. function blArrayAppendView(self: PBLArrayCore; items: Pointer; n: NativeUInt): BLResult; cdecl;
  1907. external LIB_BLEND2D name _PU + 'blArrayAppendView';
  1908. function blArrayInsertU8(self: PBLArrayCore; index: NativeUInt; value: UInt8): BLResult; cdecl;
  1909. external LIB_BLEND2D name _PU + 'blArrayInsertU8';
  1910. function blArrayInsertU16(self: PBLArrayCore; index: NativeUInt; value: UInt16): BLResult; cdecl;
  1911. external LIB_BLEND2D name _PU + 'blArrayInsertU16';
  1912. function blArrayInsertU32(self: PBLArrayCore; index: NativeUInt; value: UInt32): BLResult; cdecl;
  1913. external LIB_BLEND2D name _PU + 'blArrayInsertU32';
  1914. function blArrayInsertU64(self: PBLArrayCore; index: NativeUInt; value: UInt64): BLResult; cdecl;
  1915. external LIB_BLEND2D name _PU + 'blArrayInsertU64';
  1916. function blArrayInsertF32(self: PBLArrayCore; index: NativeUInt; value: Single): BLResult; cdecl;
  1917. external LIB_BLEND2D name _PU + 'blArrayInsertF32';
  1918. function blArrayInsertF64(self: PBLArrayCore; index: NativeUInt; value: Double): BLResult; cdecl;
  1919. external LIB_BLEND2D name _PU + 'blArrayInsertF64';
  1920. function blArrayInsertItem(self: PBLArrayCore; index: NativeUInt; item: Pointer): BLResult; cdecl;
  1921. external LIB_BLEND2D name _PU + 'blArrayInsertItem';
  1922. function blArrayInsertView(self: PBLArrayCore; index: NativeUInt; items: Pointer; n: NativeUInt): BLResult; cdecl;
  1923. external LIB_BLEND2D name _PU + 'blArrayInsertView';
  1924. function blArrayReplaceU8(self: PBLArrayCore; index: NativeUInt; value: UInt8): BLResult; cdecl;
  1925. external LIB_BLEND2D name _PU + 'blArrayReplaceU8';
  1926. function blArrayReplaceU16(self: PBLArrayCore; index: NativeUInt; value: UInt16): BLResult; cdecl;
  1927. external LIB_BLEND2D name _PU + 'blArrayReplaceU16';
  1928. function blArrayReplaceU32(self: PBLArrayCore; index: NativeUInt; value: UInt32): BLResult; cdecl;
  1929. external LIB_BLEND2D name _PU + 'blArrayReplaceU32';
  1930. function blArrayReplaceU64(self: PBLArrayCore; index: NativeUInt; value: UInt64): BLResult; cdecl;
  1931. external LIB_BLEND2D name _PU + 'blArrayReplaceU64';
  1932. function blArrayReplaceF32(self: PBLArrayCore; index: NativeUInt; value: Single): BLResult; cdecl;
  1933. external LIB_BLEND2D name _PU + 'blArrayReplaceF32';
  1934. function blArrayReplaceF64(self: PBLArrayCore; index: NativeUInt; value: Double): BLResult; cdecl;
  1935. external LIB_BLEND2D name _PU + 'blArrayReplaceF64';
  1936. function blArrayReplaceItem(self: PBLArrayCore; index: NativeUInt; item: Pointer): BLResult; cdecl;
  1937. external LIB_BLEND2D name _PU + 'blArrayReplaceItem';
  1938. function blArrayReplaceView(self: PBLArrayCore; rStart: NativeUInt; rEnd: NativeUInt; items: Pointer; n: NativeUInt): BLResult; cdecl;
  1939. external LIB_BLEND2D name _PU + 'blArrayReplaceView';
  1940. function blArrayRemoveIndex(self: PBLArrayCore; index: NativeUInt): BLResult; cdecl;
  1941. external LIB_BLEND2D name _PU + 'blArrayRemoveIndex';
  1942. function blArrayRemoveRange(self: PBLArrayCore; rStart: NativeUInt; rEnd: NativeUInt): BLResult; cdecl;
  1943. external LIB_BLEND2D name _PU + 'blArrayRemoveRange';
  1944. function blArrayEquals(a: PBLArrayCore; b: PBLArrayCore): Boolean; cdecl;
  1945. external LIB_BLEND2D name _PU + 'blArrayEquals';
  1946. function blContextInit(self: PBLContextCore): BLResult; cdecl;
  1947. external LIB_BLEND2D name _PU + 'blContextInit';
  1948. function blContextInitAs(self: PBLContextCore; image: PBLImageCore; options: _PBLContextCreateInfo): BLResult; cdecl;
  1949. external LIB_BLEND2D name _PU + 'blContextInitAs';
  1950. function blContextDestroy(self: PBLContextCore): BLResult; cdecl;
  1951. external LIB_BLEND2D name _PU + 'blContextDestroy';
  1952. function blContextReset(self: PBLContextCore): BLResult; cdecl;
  1953. external LIB_BLEND2D name _PU + 'blContextReset';
  1954. function blContextAssignMove(self: PBLContextCore; other: PBLContextCore): BLResult; cdecl;
  1955. external LIB_BLEND2D name _PU + 'blContextAssignMove';
  1956. function blContextAssignWeak(self: PBLContextCore; other: PBLContextCore): BLResult; cdecl;
  1957. external LIB_BLEND2D name _PU + 'blContextAssignWeak';
  1958. function blContextGetType(self: PBLContextCore): UInt32; cdecl;
  1959. external LIB_BLEND2D name _PU + 'blContextGetType';
  1960. function blContextGetTargetSize(self: PBLContextCore; targetSizeOut: _PBLSize): BLResult; cdecl;
  1961. external LIB_BLEND2D name _PU + 'blContextGetTargetSize';
  1962. function blContextGetTargetImage(self: PBLContextCore): PBLImageCore; cdecl;
  1963. external LIB_BLEND2D name _PU + 'blContextGetTargetImage';
  1964. function blContextBegin(self: PBLContextCore; image: PBLImageCore; options: _PBLContextCreateInfo): BLResult; cdecl;
  1965. external LIB_BLEND2D name _PU + 'blContextBegin';
  1966. function blContextEnd(self: PBLContextCore): BLResult; cdecl;
  1967. external LIB_BLEND2D name _PU + 'blContextEnd';
  1968. function blContextFlush(self: PBLContextCore; flags: UInt32): BLResult; cdecl;
  1969. external LIB_BLEND2D name _PU + 'blContextFlush';
  1970. function blContextQueryProperty(self: PBLContextCore; propertyId: UInt32; valueOut: Pointer): BLResult; cdecl;
  1971. external LIB_BLEND2D name _PU + 'blContextQueryProperty';
  1972. function blContextSave(self: PBLContextCore; cookie: _PBLContextCookie): BLResult; cdecl;
  1973. external LIB_BLEND2D name _PU + 'blContextSave';
  1974. function blContextRestore(self: PBLContextCore; cookie: _PBLContextCookie): BLResult; cdecl;
  1975. external LIB_BLEND2D name _PU + 'blContextRestore';
  1976. function blContextGetMetaMatrix(self: PBLContextCore; m: _PBLMatrix2D): BLResult; cdecl;
  1977. external LIB_BLEND2D name _PU + 'blContextGetMetaMatrix';
  1978. function blContextGetUserMatrix(self: PBLContextCore; m: _PBLMatrix2D): BLResult; cdecl;
  1979. external LIB_BLEND2D name _PU + 'blContextGetUserMatrix';
  1980. function blContextUserToMeta(self: PBLContextCore): BLResult; cdecl;
  1981. external LIB_BLEND2D name _PU + 'blContextUserToMeta';
  1982. function blContextMatrixOp(self: PBLContextCore; opType: UInt32; opData: Pointer): BLResult; cdecl;
  1983. external LIB_BLEND2D name _PU + 'blContextMatrixOp';
  1984. function blContextSetHint(self: PBLContextCore; hintType: UInt32; value: UInt32): BLResult; cdecl;
  1985. external LIB_BLEND2D name _PU + 'blContextSetHint';
  1986. function blContextSetHints(self: PBLContextCore; hints: _PBLContextHints): BLResult; cdecl;
  1987. external LIB_BLEND2D name _PU + 'blContextSetHints';
  1988. function blContextSetFlattenMode(self: PBLContextCore; mode: UInt32): BLResult; cdecl;
  1989. external LIB_BLEND2D name _PU + 'blContextSetFlattenMode';
  1990. function blContextSetFlattenTolerance(self: PBLContextCore; tolerance: Double): BLResult; cdecl;
  1991. external LIB_BLEND2D name _PU + 'blContextSetFlattenTolerance';
  1992. function blContextSetApproximationOptions(self: PBLContextCore; options: _PBLApproximationOptions): BLResult; cdecl;
  1993. external LIB_BLEND2D name _PU + 'blContextSetApproximationOptions';
  1994. function blContextSetCompOp(self: PBLContextCore; compOp: UInt32): BLResult; cdecl;
  1995. external LIB_BLEND2D name _PU + 'blContextSetCompOp';
  1996. function blContextSetGlobalAlpha(self: PBLContextCore; alpha: Double): BLResult; cdecl;
  1997. external LIB_BLEND2D name _PU + 'blContextSetGlobalAlpha';
  1998. function blContextSetFillAlpha(self: PBLContextCore; alpha: Double): BLResult; cdecl;
  1999. external LIB_BLEND2D name _PU + 'blContextSetFillAlpha';
  2000. function blContextGetFillStyle(self: PBLContextCore; styleOut: PBLStyleCore): BLResult; cdecl;
  2001. external LIB_BLEND2D name _PU + 'blContextGetFillStyle';
  2002. function blContextSetFillStyle(self: PBLContextCore; style: PBLStyleCore): BLResult; cdecl;
  2003. external LIB_BLEND2D name _PU + 'blContextSetFillStyle';
  2004. function blContextSetFillStyleRgba(self: PBLContextCore; rgba: _PBLRgba): BLResult; cdecl;
  2005. external LIB_BLEND2D name _PU + 'blContextSetFillStyleRgba';
  2006. function blContextSetFillStyleRgba32(self: PBLContextCore; rgba32: UInt32): BLResult; cdecl;
  2007. external LIB_BLEND2D name _PU + 'blContextSetFillStyleRgba32';
  2008. function blContextSetFillStyleRgba64(self: PBLContextCore; rgba64: UInt64): BLResult; cdecl;
  2009. external LIB_BLEND2D name _PU + 'blContextSetFillStyleRgba64';
  2010. function blContextSetFillStyleObject(self: PBLContextCore; &object: Pointer): BLResult; cdecl;
  2011. external LIB_BLEND2D name _PU + 'blContextSetFillStyleObject';
  2012. function blContextSetFillRule(self: PBLContextCore; fillRule: UInt32): BLResult; cdecl;
  2013. external LIB_BLEND2D name _PU + 'blContextSetFillRule';
  2014. function blContextSetStrokeAlpha(self: PBLContextCore; alpha: Double): BLResult; cdecl;
  2015. external LIB_BLEND2D name _PU + 'blContextSetStrokeAlpha';
  2016. function blContextGetStrokeStyle(self: PBLContextCore; styleout: PBLStyleCore): BLResult; cdecl;
  2017. external LIB_BLEND2D name _PU + 'blContextGetStrokeStyle';
  2018. function blContextSetStrokeStyle(self: PBLContextCore; style: PBLStyleCore): BLResult; cdecl;
  2019. external LIB_BLEND2D name _PU + 'blContextSetStrokeStyle';
  2020. function blContextSetStrokeStyleRgba(self: PBLContextCore; rgba: _PBLRgba): BLResult; cdecl;
  2021. external LIB_BLEND2D name _PU + 'blContextSetStrokeStyleRgba';
  2022. function blContextSetStrokeStyleRgba32(self: PBLContextCore; rgba32: UInt32): BLResult; cdecl;
  2023. external LIB_BLEND2D name _PU + 'blContextSetStrokeStyleRgba32';
  2024. function blContextSetStrokeStyleRgba64(self: PBLContextCore; rgba64: UInt64): BLResult; cdecl;
  2025. external LIB_BLEND2D name _PU + 'blContextSetStrokeStyleRgba64';
  2026. function blContextSetStrokeStyleObject(self: PBLContextCore; &object: Pointer): BLResult; cdecl;
  2027. external LIB_BLEND2D name _PU + 'blContextSetStrokeStyleObject';
  2028. function blContextSetStrokeWidth(self: PBLContextCore; width: Double): BLResult; cdecl;
  2029. external LIB_BLEND2D name _PU + 'blContextSetStrokeWidth';
  2030. function blContextSetStrokeMiterLimit(self: PBLContextCore; miterLimit: Double): BLResult; cdecl;
  2031. external LIB_BLEND2D name _PU + 'blContextSetStrokeMiterLimit';
  2032. function blContextSetStrokeCap(self: PBLContextCore; position: UInt32; strokeCap: UInt32): BLResult; cdecl;
  2033. external LIB_BLEND2D name _PU + 'blContextSetStrokeCap';
  2034. function blContextSetStrokeCaps(self: PBLContextCore; strokeCap: UInt32): BLResult; cdecl;
  2035. external LIB_BLEND2D name _PU + 'blContextSetStrokeCaps';
  2036. function blContextSetStrokeJoin(self: PBLContextCore; strokeJoin: UInt32): BLResult; cdecl;
  2037. external LIB_BLEND2D name _PU + 'blContextSetStrokeJoin';
  2038. function blContextSetStrokeDashOffset(self: PBLContextCore; dashOffset: Double): BLResult; cdecl;
  2039. external LIB_BLEND2D name _PU + 'blContextSetStrokeDashOffset';
  2040. function blContextSetStrokeDashArray(self: PBLContextCore; dashArray: PBLArrayCore): BLResult; cdecl;
  2041. external LIB_BLEND2D name _PU + 'blContextSetStrokeDashArray';
  2042. function blContextSetStrokeTransformOrder(self: PBLContextCore; transformOrder: UInt32): BLResult; cdecl;
  2043. external LIB_BLEND2D name _PU + 'blContextSetStrokeTransformOrder';
  2044. function blContextGetStrokeOptions(self: PBLContextCore; options: PBLStrokeOptionsCore): BLResult; cdecl;
  2045. external LIB_BLEND2D name _PU + 'blContextGetStrokeOptions';
  2046. function blContextSetStrokeOptions(self: PBLContextCore; options: PBLStrokeOptionsCore): BLResult; cdecl;
  2047. external LIB_BLEND2D name _PU + 'blContextSetStrokeOptions';
  2048. function blContextClipToRectI(self: PBLContextCore; rect: _PBLRectI): BLResult; cdecl;
  2049. external LIB_BLEND2D name _PU + 'blContextClipToRectI';
  2050. function blContextClipToRectD(self: PBLContextCore; rect: _PBLRect): BLResult; cdecl;
  2051. external LIB_BLEND2D name _PU + 'blContextClipToRectD';
  2052. function blContextRestoreClipping(self: PBLContextCore): BLResult; cdecl;
  2053. external LIB_BLEND2D name _PU + 'blContextRestoreClipping';
  2054. function blContextClearAll(self: PBLContextCore): BLResult; cdecl;
  2055. external LIB_BLEND2D name _PU + 'blContextClearAll';
  2056. function blContextClearRectI(self: PBLContextCore; rect: _PBLRectI): BLResult; cdecl;
  2057. external LIB_BLEND2D name _PU + 'blContextClearRectI';
  2058. function blContextClearRectD(self: PBLContextCore; rect: _PBLRect): BLResult; cdecl;
  2059. external LIB_BLEND2D name _PU + 'blContextClearRectD';
  2060. function blContextFillAll(self: PBLContextCore): BLResult; cdecl;
  2061. external LIB_BLEND2D name _PU + 'blContextFillAll';
  2062. function blContextFillRectI(self: PBLContextCore; rect: _PBLRectI): BLResult; cdecl;
  2063. external LIB_BLEND2D name _PU + 'blContextFillRectI';
  2064. function blContextFillRectD(self: PBLContextCore; rect: _PBLRect): BLResult; cdecl;
  2065. external LIB_BLEND2D name _PU + 'blContextFillRectD';
  2066. function blContextFillPathD(self: PBLContextCore; path: PBLPathCore): BLResult; cdecl;
  2067. external LIB_BLEND2D name _PU + 'blContextFillPathD';
  2068. function blContextFillGeometry(self: PBLContextCore; geometryType: UInt32; geometryData: Pointer): BLResult; cdecl;
  2069. external LIB_BLEND2D name _PU + 'blContextFillGeometry';
  2070. function blContextFillTextI(self: PBLContextCore; pt: _PBLPointI; font: PBLFontCore; text: Pointer; size: NativeUInt; encoding: UInt32): BLResult; cdecl;
  2071. external LIB_BLEND2D name _PU + 'blContextFillTextI';
  2072. function blContextFillTextD(self: PBLContextCore; pt: _PBLPoint; font: PBLFontCore; text: Pointer; size: NativeUInt; encoding: UInt32): BLResult; cdecl;
  2073. external LIB_BLEND2D name _PU + 'blContextFillTextD';
  2074. function blContextFillGlyphRunI(self: PBLContextCore; pt: _PBLPointI; font: PBLFontCore; glyphRun: _PBLGlyphRun): BLResult; cdecl;
  2075. external LIB_BLEND2D name _PU + 'blContextFillGlyphRunI';
  2076. function blContextFillGlyphRunD(self: PBLContextCore; pt: _PBLPoint; font: PBLFontCore; glyphRun: _PBLGlyphRun): BLResult; cdecl;
  2077. external LIB_BLEND2D name _PU + 'blContextFillGlyphRunD';
  2078. function blContextStrokeRectI(self: PBLContextCore; rect: _PBLRectI): BLResult; cdecl;
  2079. external LIB_BLEND2D name _PU + 'blContextStrokeRectI';
  2080. function blContextStrokeRectD(self: PBLContextCore; rect: _PBLRect): BLResult; cdecl;
  2081. external LIB_BLEND2D name _PU + 'blContextStrokeRectD';
  2082. function blContextStrokePathD(self: PBLContextCore; path: PBLPathCore): BLResult; cdecl;
  2083. external LIB_BLEND2D name _PU + 'blContextStrokePathD';
  2084. function blContextStrokeGeometry(self: PBLContextCore; geometryType: UInt32; geometryData: Pointer): BLResult; cdecl;
  2085. external LIB_BLEND2D name _PU + 'blContextStrokeGeometry';
  2086. function blContextStrokeTextI(self: PBLContextCore; pt: _PBLPointI; font: PBLFontCore; text: Pointer; size: NativeUInt; encoding: UInt32): BLResult; cdecl;
  2087. external LIB_BLEND2D name _PU + 'blContextStrokeTextI';
  2088. function blContextStrokeTextD(self: PBLContextCore; pt: _PBLPoint; font: PBLFontCore; text: Pointer; size: NativeUInt; encoding: UInt32): BLResult; cdecl;
  2089. external LIB_BLEND2D name _PU + 'blContextStrokeTextD';
  2090. function blContextStrokeGlyphRunI(self: PBLContextCore; pt: _PBLPointI; font: PBLFontCore; glyphRun: _PBLGlyphRun): BLResult; cdecl;
  2091. external LIB_BLEND2D name _PU + 'blContextStrokeGlyphRunI';
  2092. function blContextStrokeGlyphRunD(self: PBLContextCore; pt: _PBLPoint; font: PBLFontCore; glyphRun: _PBLGlyphRun): BLResult; cdecl;
  2093. external LIB_BLEND2D name _PU + 'blContextStrokeGlyphRunD';
  2094. function blContextBlitImageI(self: PBLContextCore; pt: _PBLPointI; img: PBLImageCore; imgArea: _PBLRectI): BLResult; cdecl;
  2095. external LIB_BLEND2D name _PU + 'blContextBlitImageI';
  2096. function blContextBlitImageD(self: PBLContextCore; pt: _PBLPoint; img: PBLImageCore; imgArea: _PBLRectI): BLResult; cdecl;
  2097. external LIB_BLEND2D name _PU + 'blContextBlitImageD';
  2098. function blContextBlitScaledImageI(self: PBLContextCore; rect: _PBLRectI; img: PBLImageCore; imgArea: _PBLRectI): BLResult; cdecl;
  2099. external LIB_BLEND2D name _PU + 'blContextBlitScaledImageI';
  2100. function blContextBlitScaledImageD(self: PBLContextCore; rect: _PBLRect; img: PBLImageCore; imgArea: _PBLRectI): BLResult; cdecl;
  2101. external LIB_BLEND2D name _PU + 'blContextBlitScaledImageD';
  2102. function blFileInit(self: PBLFileCore): BLResult; cdecl;
  2103. external LIB_BLEND2D name _PU + 'blFileInit';
  2104. function blFileReset(self: PBLFileCore): BLResult; cdecl;
  2105. external LIB_BLEND2D name _PU + 'blFileReset';
  2106. function blFileOpen(self: PBLFileCore; fileName: PUTF8Char; openFlags: UInt32): BLResult; cdecl;
  2107. external LIB_BLEND2D name _PU + 'blFileOpen';
  2108. function blFileClose(self: PBLFileCore): BLResult; cdecl;
  2109. external LIB_BLEND2D name _PU + 'blFileClose';
  2110. function blFileSeek(self: PBLFileCore; offset: Int64; seekType: UInt32; positionOut: PInt64): BLResult; cdecl;
  2111. external LIB_BLEND2D name _PU + 'blFileSeek';
  2112. function blFileRead(self: PBLFileCore; buffer: Pointer; n: NativeUInt; bytesReadOut: PNativeUInt): BLResult; cdecl;
  2113. external LIB_BLEND2D name _PU + 'blFileRead';
  2114. function blFileWrite(self: PBLFileCore; buffer: Pointer; n: NativeUInt; bytesWrittenOut: PNativeUInt): BLResult; cdecl;
  2115. external LIB_BLEND2D name _PU + 'blFileWrite';
  2116. function blFileTruncate(self: PBLFileCore; maxSize: Int64): BLResult; cdecl;
  2117. external LIB_BLEND2D name _PU + 'blFileTruncate';
  2118. function blFileGetSize(self: PBLFileCore; fileSizeOut: PUInt64): BLResult; cdecl;
  2119. external LIB_BLEND2D name _PU + 'blFileGetSize';
  2120. function blFileSystemReadFile(fileName: PUTF8Char; dst: PBLArrayCore; maxSize: NativeUInt; readFlags: UInt32): BLResult; cdecl;
  2121. external LIB_BLEND2D name _PU + 'blFileSystemReadFile';
  2122. function blFileSystemWriteFile(fileName: PUTF8Char; data: Pointer; size: NativeUInt; bytesWrittenOut: PNativeUInt): BLResult; cdecl;
  2123. external LIB_BLEND2D name _PU + 'blFileSystemWriteFile';
  2124. function blFontInit(self: PBLFontCore): BLResult; cdecl;
  2125. external LIB_BLEND2D name _PU + 'blFontInit';
  2126. function blFontDestroy(self: PBLFontCore): BLResult; cdecl;
  2127. external LIB_BLEND2D name _PU + 'blFontDestroy';
  2128. function blFontReset(self: PBLFontCore): BLResult; cdecl;
  2129. external LIB_BLEND2D name _PU + 'blFontReset';
  2130. function blFontAssignMove(self: PBLFontCore; other: PBLFontCore): BLResult; cdecl;
  2131. external LIB_BLEND2D name _PU + 'blFontAssignMove';
  2132. function blFontAssignWeak(self: PBLFontCore; other: PBLFontCore): BLResult; cdecl;
  2133. external LIB_BLEND2D name _PU + 'blFontAssignWeak';
  2134. function blFontEquals(a: PBLFontCore; b: PBLFontCore): Boolean; cdecl;
  2135. external LIB_BLEND2D name _PU + 'blFontEquals';
  2136. function blFontCreateFromFace(self: PBLFontCore; face: PBLFontFaceCore; size: Single): BLResult; cdecl;
  2137. external LIB_BLEND2D name _PU + 'blFontCreateFromFace';
  2138. function blFontShape(self: PBLFontCore; gb: PBLGlyphBufferCore): BLResult; cdecl;
  2139. external LIB_BLEND2D name _PU + 'blFontShape';
  2140. function blFontMapTextToGlyphs(self: PBLFontCore; gb: PBLGlyphBufferCore; stateOut: _PBLGlyphMappingState): BLResult; cdecl;
  2141. external LIB_BLEND2D name _PU + 'blFontMapTextToGlyphs';
  2142. function blFontPositionGlyphs(self: PBLFontCore; gb: PBLGlyphBufferCore; positioningFlags: UInt32): BLResult; cdecl;
  2143. external LIB_BLEND2D name _PU + 'blFontPositionGlyphs';
  2144. function blFontApplyKerning(self: PBLFontCore; gb: PBLGlyphBufferCore): BLResult; cdecl;
  2145. external LIB_BLEND2D name _PU + 'blFontApplyKerning';
  2146. function blFontApplyGSub(self: PBLFontCore; gb: PBLGlyphBufferCore; index: NativeUInt; lookups: BLBitWord): BLResult; cdecl;
  2147. external LIB_BLEND2D name _PU + 'blFontApplyGSub';
  2148. function blFontApplyGPos(self: PBLFontCore; gb: PBLGlyphBufferCore; index: NativeUInt; lookups: BLBitWord): BLResult; cdecl;
  2149. external LIB_BLEND2D name _PU + 'blFontApplyGPos';
  2150. function blFontGetMatrix(self: PBLFontCore; &out: _PBLFontMatrix): BLResult; cdecl;
  2151. external LIB_BLEND2D name _PU + 'blFontGetMatrix';
  2152. function blFontGetMetrics(self: PBLFontCore; &out: _PBLFontMetrics): BLResult; cdecl;
  2153. external LIB_BLEND2D name _PU + 'blFontGetMetrics';
  2154. function blFontGetDesignMetrics(self: PBLFontCore; &out: _PBLFontDesignMetrics): BLResult; cdecl;
  2155. external LIB_BLEND2D name _PU + 'blFontGetDesignMetrics';
  2156. function blFontGetTextMetrics(self: PBLFontCore; gb: PBLGlyphBufferCore; &out: _PBLTextMetrics): BLResult; cdecl;
  2157. external LIB_BLEND2D name _PU + 'blFontGetTextMetrics';
  2158. function blFontGetGlyphBounds(self: PBLFontCore; glyphData: PUInt32; glyphAdvance: IntPtr; &out: _PBLBoxI; count: NativeUInt): BLResult; cdecl;
  2159. external LIB_BLEND2D name _PU + 'blFontGetGlyphBounds';
  2160. function blFontGetGlyphAdvances(self: PBLFontCore; glyphData: PUInt32; glyphAdvance: IntPtr; &out: _PBLGlyphPlacement; count: NativeUInt): BLResult; cdecl;
  2161. external LIB_BLEND2D name _PU + 'blFontGetGlyphAdvances';
  2162. function blFontGetGlyphOutlines(self: PBLFontCore; glyphId: UInt32; userMatrix: _PBLMatrix2D; &out: PBLPathCore; sink: BLPathSinkFunc; closure: Pointer): BLResult; cdecl;
  2163. external LIB_BLEND2D name _PU + 'blFontGetGlyphOutlines';
  2164. function blFontGetGlyphRunOutlines(self: PBLFontCore; glyphRun: _PBLGlyphRun; userMatrix: _PBLMatrix2D; &out: PBLPathCore; sink: BLPathSinkFunc; closure: Pointer): BLResult; cdecl;
  2165. external LIB_BLEND2D name _PU + 'blFontGetGlyphRunOutlines';
  2166. function blFontDataInit(self: PBLFontDataCore): BLResult; cdecl;
  2167. external LIB_BLEND2D name _PU + 'blFontDataInit';
  2168. function blFontDataDestroy(self: PBLFontDataCore): BLResult; cdecl;
  2169. external LIB_BLEND2D name _PU + 'blFontDataDestroy';
  2170. function blFontDataReset(self: PBLFontDataCore): BLResult; cdecl;
  2171. external LIB_BLEND2D name _PU + 'blFontDataReset';
  2172. function blFontDataAssignMove(self: PBLFontDataCore; other: PBLFontDataCore): BLResult; cdecl;
  2173. external LIB_BLEND2D name _PU + 'blFontDataAssignMove';
  2174. function blFontDataAssignWeak(self: PBLFontDataCore; other: PBLFontDataCore): BLResult; cdecl;
  2175. external LIB_BLEND2D name _PU + 'blFontDataAssignWeak';
  2176. function blFontDataCreateFromFile(self: PBLFontDataCore; fileName: PUTF8Char; readFlags: UInt32): BLResult; cdecl;
  2177. external LIB_BLEND2D name _PU + 'blFontDataCreateFromFile';
  2178. function blFontDataCreateFromDataArray(self: PBLFontDataCore; dataArray: PBLArrayCore): BLResult; cdecl;
  2179. external LIB_BLEND2D name _PU + 'blFontDataCreateFromDataArray';
  2180. function blFontDataCreateFromData(self: PBLFontDataCore; data: Pointer; dataSize: NativeUInt; destroyFunc: BLDestroyImplFunc; destroyData: Pointer): BLResult; cdecl;
  2181. external LIB_BLEND2D name _PU + 'blFontDataCreateFromData';
  2182. function blFontDataEquals(a: PBLFontDataCore; b: PBLFontDataCore): Boolean; cdecl;
  2183. external LIB_BLEND2D name _PU + 'blFontDataEquals';
  2184. function blFontDataListTags(self: PBLFontDataCore; faceIndex: UInt32; dst: PBLArrayCore): BLResult; cdecl;
  2185. external LIB_BLEND2D name _PU + 'blFontDataListTags';
  2186. function blFontDataQueryTables(self: PBLFontDataCore; faceIndex: UInt32; dst: _PBLFontTable; tags: _PBLTag; count: NativeUInt): NativeUInt; cdecl;
  2187. external LIB_BLEND2D name _PU + 'blFontDataQueryTables';
  2188. function blFontFaceInit(self: PBLFontFaceCore): BLResult; cdecl;
  2189. external LIB_BLEND2D name _PU + 'blFontFaceInit';
  2190. function blFontFaceDestroy(self: PBLFontFaceCore): BLResult; cdecl;
  2191. external LIB_BLEND2D name _PU + 'blFontFaceDestroy';
  2192. function blFontFaceReset(self: PBLFontFaceCore): BLResult; cdecl;
  2193. external LIB_BLEND2D name _PU + 'blFontFaceReset';
  2194. function blFontFaceAssignMove(self: PBLFontFaceCore; other: PBLFontFaceCore): BLResult; cdecl;
  2195. external LIB_BLEND2D name _PU + 'blFontFaceAssignMove';
  2196. function blFontFaceAssignWeak(self: PBLFontFaceCore; other: PBLFontFaceCore): BLResult; cdecl;
  2197. external LIB_BLEND2D name _PU + 'blFontFaceAssignWeak';
  2198. function blFontFaceEquals(a: PBLFontFaceCore; b: PBLFontFaceCore): Boolean; cdecl;
  2199. external LIB_BLEND2D name _PU + 'blFontFaceEquals';
  2200. function blFontFaceCreateFromFile(self: PBLFontFaceCore; fileName: PUTF8Char; readFlags: UInt32): BLResult; cdecl;
  2201. external LIB_BLEND2D name _PU + 'blFontFaceCreateFromFile';
  2202. function blFontFaceCreateFromData(self: PBLFontFaceCore; fontData: PBLFontDataCore; faceIndex: UInt32): BLResult; cdecl;
  2203. external LIB_BLEND2D name _PU + 'blFontFaceCreateFromData';
  2204. function blFontFaceGetFaceInfo(self: PBLFontFaceCore; &out: _PBLFontFaceInfo): BLResult; cdecl;
  2205. external LIB_BLEND2D name _PU + 'blFontFaceGetFaceInfo';
  2206. function blFontFaceGetDesignMetrics(self: PBLFontFaceCore; &out: _PBLFontDesignMetrics): BLResult; cdecl;
  2207. external LIB_BLEND2D name _PU + 'blFontFaceGetDesignMetrics';
  2208. function blFontFaceGetUnicodeCoverage(self: PBLFontFaceCore; &out: _PBLFontUnicodeCoverage): BLResult; cdecl;
  2209. external LIB_BLEND2D name _PU + 'blFontFaceGetUnicodeCoverage';
  2210. function blFontManagerInit(self: PBLFontManagerCore): BLResult; cdecl;
  2211. external LIB_BLEND2D name _PU + 'blFontManagerInit';
  2212. function blFontManagerInitNew(self: PBLFontManagerCore): BLResult; cdecl;
  2213. external LIB_BLEND2D name _PU + 'blFontManagerInitNew';
  2214. function blFontManagerDestroy(self: PBLFontManagerCore): BLResult; cdecl;
  2215. external LIB_BLEND2D name _PU + 'blFontManagerDestroy';
  2216. function blFontManagerReset(self: PBLFontManagerCore): BLResult; cdecl;
  2217. external LIB_BLEND2D name _PU + 'blFontManagerReset';
  2218. function blFontManagerAssignMove(self: PBLFontManagerCore; other: PBLFontManagerCore): BLResult; cdecl;
  2219. external LIB_BLEND2D name _PU + 'blFontManagerAssignMove';
  2220. function blFontManagerAssignWeak(self: PBLFontManagerCore; other: PBLFontManagerCore): BLResult; cdecl;
  2221. external LIB_BLEND2D name _PU + 'blFontManagerAssignWeak';
  2222. function blFontManagerCreate(self: PBLFontManagerCore): BLResult; cdecl;
  2223. external LIB_BLEND2D name _PU + 'blFontManagerCreate';
  2224. function blFontManagerGetFaceCount(const self: PBLFontManagerCore): BLResult; cdecl;
  2225. external LIB_BLEND2D name _PU + 'blFontManagerGetFaceCount';
  2226. function blFontManagerGetFamilyCount(const self: PBLFontManagerCore): BLResult; cdecl;
  2227. external LIB_BLEND2D name _PU + 'blFontManagerGetFamilyCount';
  2228. function blFontManagerHasFace(const self: PBLFontManagerCore; const face: PBLFontFaceCore): Boolean; cdecl;
  2229. external LIB_BLEND2D name _PU + 'blFontManagerHasFace';
  2230. function blFontManagerAddFace(self: PBLFontManagerCore; const face: PBLFontFaceCore): BLResult; cdecl;
  2231. external LIB_BLEND2D name _PU + 'blFontManagerAddFace';
  2232. function blFontManagerQueryFace(const self: PBLFontManagerCore; const name: MarshaledAString; nameSize: NativeUInt; const properties: PBLFontQueryProperties; _out: PBLFontFaceCore): BLResult; cdecl;
  2233. external LIB_BLEND2D name _PU + 'blFontManagerQueryFace';
  2234. function blFontManagerQueryFacesByFamilyName(const self: PBLFontManagerCore; const name: MarshaledAString; nameSize: NativeUInt; _out: PBLArrayCore): BLResult; cdecl;
  2235. external LIB_BLEND2D name _PU + 'blFontManagerQueryFacesByFamilyName';
  2236. function blFontManagerEquals(a: PBLFontManagerCore; b: PBLFontManagerCore): Boolean; cdecl;
  2237. external LIB_BLEND2D name _PU + 'blFontManagerEquals';
  2238. function blFormatInfoQuery(self: _PBLFormatInfo; format: UInt32): BLResult; cdecl;
  2239. external LIB_BLEND2D name _PU + 'blFormatInfoQuery';
  2240. function blFormatInfoSanitize(self: _PBLFormatInfo): BLResult; cdecl;
  2241. external LIB_BLEND2D name _PU + 'blFormatInfoSanitize';
  2242. function blGlyphBufferInit(self: PBLGlyphBufferCore): BLResult; cdecl;
  2243. external LIB_BLEND2D name _PU + 'blGlyphBufferInit';
  2244. function blGlyphBufferInitMove(self: PBLGlyphBufferCore; other: PBLGlyphBufferCore): BLResult; cdecl;
  2245. external LIB_BLEND2D name _PU + 'blGlyphBufferInitMove';
  2246. function blGlyphBufferDestroy(self: PBLGlyphBufferCore): BLResult; cdecl;
  2247. external LIB_BLEND2D name _PU + 'blGlyphBufferDestroy';
  2248. function blGlyphBufferReset(self: PBLGlyphBufferCore): BLResult; cdecl;
  2249. external LIB_BLEND2D name _PU + 'blGlyphBufferReset';
  2250. function blGlyphBufferClear(self: PBLGlyphBufferCore): BLResult; cdecl;
  2251. external LIB_BLEND2D name _PU + 'blGlyphBufferClear';
  2252. function blGlyphBufferGetSize(self: PBLGlyphBufferCore): NativeUInt; cdecl;
  2253. external LIB_BLEND2D name _PU + 'blGlyphBufferGetSize';
  2254. function blGlyphBufferGetFlags(self: PBLGlyphBufferCore): UInt32; cdecl;
  2255. external LIB_BLEND2D name _PU + 'blGlyphBufferGetFlags';
  2256. function blGlyphBufferGetGlyphRun(self: PBLGlyphBufferCore): _PBLGlyphRun; cdecl;
  2257. external LIB_BLEND2D name _PU + 'blGlyphBufferGetGlyphRun';
  2258. function blGlyphBufferGetContent(self: PBLGlyphBufferCore): PUInt32; cdecl;
  2259. external LIB_BLEND2D name _PU + 'blGlyphBufferGetContent';
  2260. function blGlyphBufferGetInfoData(self: PBLGlyphBufferCore): _PBLGlyphInfo; cdecl;
  2261. external LIB_BLEND2D name _PU + 'blGlyphBufferGetInfoData';
  2262. function blGlyphBufferGetPlacementData(self: PBLGlyphBufferCore): _PBLGlyphPlacement; cdecl;
  2263. external LIB_BLEND2D name _PU + 'blGlyphBufferGetPlacementData';
  2264. function blGlyphBufferSetText(self: PBLGlyphBufferCore; textData: Pointer; size: NativeUInt; encoding: UInt32): BLResult; cdecl;
  2265. external LIB_BLEND2D name _PU + 'blGlyphBufferSetText';
  2266. function blGlyphBufferSetGlyphs(self: PBLGlyphBufferCore; glyphData: PUInt32; size: NativeUInt): BLResult; cdecl;
  2267. external LIB_BLEND2D name _PU + 'blGlyphBufferSetGlyphs';
  2268. function blGlyphBufferSetGlyphsFromStruct(self: PBLGlyphBufferCore; glyphData: Pointer; size: NativeUInt; glyphIdSize: NativeUInt; glyphIdAdvance: IntPtr): BLResult; cdecl;
  2269. external LIB_BLEND2D name _PU + 'blGlyphBufferSetGlyphsFromStruct';
  2270. function blGradientInit(self: PBLGradientCore): BLResult; cdecl;
  2271. external LIB_BLEND2D name _PU + 'blGradientInit';
  2272. function blGradientInitAs(self: PBLGradientCore; &type: UInt32; values: Pointer; extendMode: UInt32; stops: _PBLGradientStop; n: NativeUInt; m: _PBLMatrix2D): BLResult; cdecl;
  2273. external LIB_BLEND2D name _PU + 'blGradientInitAs';
  2274. function blGradientDestroy(self: PBLGradientCore): BLResult; cdecl;
  2275. external LIB_BLEND2D name _PU + 'blGradientDestroy';
  2276. function blGradientReset(self: PBLGradientCore): BLResult; cdecl;
  2277. external LIB_BLEND2D name _PU + 'blGradientReset';
  2278. function blGradientAssignMove(self: PBLGradientCore; other: PBLGradientCore): BLResult; cdecl;
  2279. external LIB_BLEND2D name _PU + 'blGradientAssignMove';
  2280. function blGradientAssignWeak(self: PBLGradientCore; other: PBLGradientCore): BLResult; cdecl;
  2281. external LIB_BLEND2D name _PU + 'blGradientAssignWeak';
  2282. function blGradientCreate(self: PBLGradientCore; &type: UInt32; values: Pointer; extendMode: UInt32; stops: _PBLGradientStop; n: NativeUInt; m: _PBLMatrix2D): BLResult; cdecl;
  2283. external LIB_BLEND2D name _PU + 'blGradientCreate';
  2284. function blGradientShrink(self: PBLGradientCore): BLResult; cdecl;
  2285. external LIB_BLEND2D name _PU + 'blGradientShrink';
  2286. function blGradientReserve(self: PBLGradientCore; n: NativeUInt): BLResult; cdecl;
  2287. external LIB_BLEND2D name _PU + 'blGradientReserve';
  2288. function blGradientGetType(self: PBLGradientCore): UInt32; cdecl;
  2289. external LIB_BLEND2D name _PU + 'blGradientGetType';
  2290. function blGradientSetType(self: PBLGradientCore; &type: UInt32): BLResult; cdecl;
  2291. external LIB_BLEND2D name _PU + 'blGradientSetType';
  2292. function blGradientGetValue(self: PBLGradientCore; index: NativeUInt): Double; cdecl;
  2293. external LIB_BLEND2D name _PU + 'blGradientGetValue';
  2294. function blGradientSetValue(self: PBLGradientCore; index: NativeUInt; value: Double): BLResult; cdecl;
  2295. external LIB_BLEND2D name _PU + 'blGradientSetValue';
  2296. function blGradientSetValues(self: PBLGradientCore; index: NativeUInt; values: PDouble; n: NativeUInt): BLResult; cdecl;
  2297. external LIB_BLEND2D name _PU + 'blGradientSetValues';
  2298. function blGradientGetExtendMode(self: PBLGradientCore): UInt32; cdecl;
  2299. external LIB_BLEND2D name _PU + 'blGradientGetExtendMode';
  2300. function blGradientSetExtendMode(self: PBLGradientCore; extendMode: UInt32): BLResult; cdecl;
  2301. external LIB_BLEND2D name _PU + 'blGradientSetExtendMode';
  2302. function blGradientGetSize(self: PBLGradientCore): NativeUInt; cdecl;
  2303. external LIB_BLEND2D name _PU + 'blGradientGetSize';
  2304. function blGradientGetCapacity(self: PBLGradientCore): NativeUInt; cdecl;
  2305. external LIB_BLEND2D name _PU + 'blGradientGetCapacity';
  2306. function blGradientGetStops(self: PBLGradientCore): _PBLGradientStop; cdecl;
  2307. external LIB_BLEND2D name _PU + 'blGradientGetStops';
  2308. function blGradientResetStops(self: PBLGradientCore): BLResult; cdecl;
  2309. external LIB_BLEND2D name _PU + 'blGradientResetStops';
  2310. function blGradientAssignStops(self: PBLGradientCore; stops: _PBLGradientStop; n: NativeUInt): BLResult; cdecl;
  2311. external LIB_BLEND2D name _PU + 'blGradientAssignStops';
  2312. function blGradientAddStopRgba32(self: PBLGradientCore; offset: Double; argb32: UInt32): BLResult; cdecl;
  2313. external LIB_BLEND2D name _PU + 'blGradientAddStopRgba32';
  2314. function blGradientAddStopRgba64(self: PBLGradientCore; offset: Double; argb64: UInt64): BLResult; cdecl;
  2315. external LIB_BLEND2D name _PU + 'blGradientAddStopRgba64';
  2316. function blGradientRemoveStop(self: PBLGradientCore; index: NativeUInt): BLResult; cdecl;
  2317. external LIB_BLEND2D name _PU + 'blGradientRemoveStop';
  2318. function blGradientRemoveStopByOffset(self: PBLGradientCore; offset: Double; all: UInt32): BLResult; cdecl;
  2319. external LIB_BLEND2D name _PU + 'blGradientRemoveStopByOffset';
  2320. function blGradientRemoveStops(self: PBLGradientCore; rStart: NativeUInt; rEnd: NativeUInt): BLResult; cdecl;
  2321. external LIB_BLEND2D name _PU + 'blGradientRemoveStops';
  2322. function blGradientRemoveStopsFromTo(self: PBLGradientCore; offsetMin: Double; offsetMax: Double): BLResult; cdecl;
  2323. external LIB_BLEND2D name _PU + 'blGradientRemoveStopsFromTo';
  2324. function blGradientReplaceStopRgba32(self: PBLGradientCore; index: NativeUInt; offset: Double; rgba32: UInt32): BLResult; cdecl;
  2325. external LIB_BLEND2D name _PU + 'blGradientReplaceStopRgba32';
  2326. function blGradientReplaceStopRgba64(self: PBLGradientCore; index: NativeUInt; offset: Double; rgba64: UInt64): BLResult; cdecl;
  2327. external LIB_BLEND2D name _PU + 'blGradientReplaceStopRgba64';
  2328. function blGradientIndexOfStop(self: PBLGradientCore; offset: Double): NativeUInt; cdecl;
  2329. external LIB_BLEND2D name _PU + 'blGradientIndexOfStop';
  2330. function blGradientApplyMatrixOp(self: PBLGradientCore; opType: UInt32; opData: Pointer): BLResult; cdecl;
  2331. external LIB_BLEND2D name _PU + 'blGradientApplyMatrixOp';
  2332. function blGradientEquals(a: PBLGradientCore; b: PBLGradientCore): Boolean; cdecl;
  2333. external LIB_BLEND2D name _PU + 'blGradientEquals';
  2334. function blImageInit(self: PBLImageCore): BLResult; cdecl;
  2335. external LIB_BLEND2D name _PU + 'blImageInit';
  2336. function blImageInitAs(self: PBLImageCore; w: Integer; h: Integer; format: UInt32): BLResult; cdecl;
  2337. external LIB_BLEND2D name _PU + 'blImageInitAs';
  2338. function blImageInitAsFromData(self: PBLImageCore; w: Integer; h: Integer; format: UInt32; pixelData: Pointer; stride: IntPtr; destroyFunc: BLDestroyImplFunc; destroyData: Pointer): BLResult; cdecl;
  2339. external LIB_BLEND2D name _PU + 'blImageInitAsFromData';
  2340. function blImageDestroy(self: PBLImageCore): BLResult; cdecl;
  2341. external LIB_BLEND2D name _PU + 'blImageDestroy';
  2342. function blImageReset(self: PBLImageCore): BLResult; cdecl;
  2343. external LIB_BLEND2D name _PU + 'blImageReset';
  2344. function blImageAssignMove(self: PBLImageCore; other: PBLImageCore): BLResult; cdecl;
  2345. external LIB_BLEND2D name _PU + 'blImageAssignMove';
  2346. function blImageAssignWeak(self: PBLImageCore; other: PBLImageCore): BLResult; cdecl;
  2347. external LIB_BLEND2D name _PU + 'blImageAssignWeak';
  2348. function blImageAssignDeep(self: PBLImageCore; other: PBLImageCore): BLResult; cdecl;
  2349. external LIB_BLEND2D name _PU + 'blImageAssignDeep';
  2350. function blImageCreate(self: PBLImageCore; w: Integer; h: Integer; format: UInt32): BLResult; cdecl;
  2351. external LIB_BLEND2D name _PU + 'blImageCreate';
  2352. function blImageCreateFromData(self: PBLImageCore; w: Integer; h: Integer; format: UInt32; pixelData: Pointer; stride: IntPtr; destroyFunc: BLDestroyImplFunc; destroyData: Pointer): BLResult; cdecl;
  2353. external LIB_BLEND2D name _PU + 'blImageCreateFromData';
  2354. function blImageGetData(self: PBLImageCore; dataOut: _PBLImageData): BLResult; cdecl;
  2355. external LIB_BLEND2D name _PU + 'blImageGetData';
  2356. function blImageMakeMutable(self: PBLImageCore; dataOut: _PBLImageData): BLResult; cdecl;
  2357. external LIB_BLEND2D name _PU + 'blImageMakeMutable';
  2358. function blImageConvert(self: PBLImageCore; format: UInt32): BLResult; cdecl;
  2359. external LIB_BLEND2D name _PU + 'blImageConvert';
  2360. function blImageEquals(a: PBLImageCore; b: PBLImageCore): Boolean; cdecl;
  2361. external LIB_BLEND2D name _PU + 'blImageEquals';
  2362. function blImageScale(dst: PBLImageCore; src: PBLImageCore; size: _PBLSizeI; filter: UInt32; options: _PBLImageScaleOptions): BLResult; cdecl;
  2363. external LIB_BLEND2D name _PU + 'blImageScale';
  2364. function blImageReadFromFile(self: PBLImageCore; fileName: PUTF8Char; codecs: PBLArrayCore): BLResult; cdecl;
  2365. external LIB_BLEND2D name _PU + 'blImageReadFromFile';
  2366. function blImageReadFromData(self: PBLImageCore; data: Pointer; size: NativeUInt; codecs: PBLArrayCore): BLResult; cdecl;
  2367. external LIB_BLEND2D name _PU + 'blImageReadFromData';
  2368. function blImageWriteToFile(self: PBLImageCore; fileName: PUTF8Char; codec: PBLImageCodecCore): BLResult; cdecl;
  2369. external LIB_BLEND2D name _PU + 'blImageWriteToFile';
  2370. function blImageWriteToData(self: PBLImageCore; dst: PBLArrayCore; codec: PBLImageCodecCore): BLResult; cdecl;
  2371. external LIB_BLEND2D name _PU + 'blImageWriteToData';
  2372. function blImageCodecInit(self: PBLImageCodecCore): BLResult; cdecl;
  2373. external LIB_BLEND2D name _PU + 'blImageCodecInit';
  2374. function blImageCodecDestroy(self: PBLImageCodecCore): BLResult; cdecl;
  2375. external LIB_BLEND2D name _PU + 'blImageCodecDestroy';
  2376. function blImageCodecReset(self: PBLImageCodecCore): BLResult; cdecl;
  2377. external LIB_BLEND2D name _PU + 'blImageCodecReset';
  2378. function blImageCodecAssignWeak(self: PBLImageCodecCore; other: PBLImageCodecCore): BLResult; cdecl;
  2379. external LIB_BLEND2D name _PU + 'blImageCodecAssignWeak';
  2380. function blImageCodecFindByName(self: PBLImageCodecCore; name: PUTF8Char; size: NativeUInt; codecs: PBLArrayCore): BLResult; cdecl;
  2381. external LIB_BLEND2D name _PU + 'blImageCodecFindByName';
  2382. function blImageCodecFindByExtension(self: PBLImageCodecCore; name: PUTF8Char; size: NativeUInt; codecs: PBLArrayCore): BLResult; cdecl;
  2383. external LIB_BLEND2D name _PU + 'blImageCodecFindByExtension';
  2384. function blImageCodecFindByData(self: PBLImageCodecCore; data: Pointer; size: NativeUInt; codecs: PBLArrayCore): BLResult; cdecl;
  2385. external LIB_BLEND2D name _PU + 'blImageCodecFindByData';
  2386. function blImageCodecInspectData(self: PBLImageCodecCore; data: Pointer; size: NativeUInt): UInt32; cdecl;
  2387. external LIB_BLEND2D name _PU + 'blImageCodecInspectData';
  2388. function blImageCodecCreateDecoder(self: PBLImageCodecCore; dst: PBLImageDecoderCore): BLResult; cdecl;
  2389. external LIB_BLEND2D name _PU + 'blImageCodecCreateDecoder';
  2390. function blImageCodecCreateEncoder(self: PBLImageCodecCore; dst: PBLImageEncoderCore): BLResult; cdecl;
  2391. external LIB_BLEND2D name _PU + 'blImageCodecCreateEncoder';
  2392. function blImageCodecArrayInitBuiltInCodecs(self: PBLArrayCore): BLResult; cdecl;
  2393. external LIB_BLEND2D name _PU + 'blImageCodecArrayInitBuiltInCodecs';
  2394. function blImageCodecArrayAssignBuiltInCodecs(self: PBLArrayCore): BLResult; cdecl;
  2395. external LIB_BLEND2D name _PU + 'blImageCodecArrayAssignBuiltInCodecs';
  2396. function blImageCodecAddToBuiltIn(codec: PBLImageCodecCore): BLResult; cdecl;
  2397. external LIB_BLEND2D name _PU + 'blImageCodecAddToBuiltIn';
  2398. function blImageCodecRemoveFromBuiltIn(codec: PBLImageCodecCore): BLResult; cdecl;
  2399. external LIB_BLEND2D name _PU + 'blImageCodecRemoveFromBuiltIn';
  2400. function blImageDecoderInit(self: PBLImageDecoderCore): BLResult; cdecl;
  2401. external LIB_BLEND2D name _PU + 'blImageDecoderInit';
  2402. function blImageDecoderDestroy(self: PBLImageDecoderCore): BLResult; cdecl;
  2403. external LIB_BLEND2D name _PU + 'blImageDecoderDestroy';
  2404. function blImageDecoderReset(self: PBLImageDecoderCore): BLResult; cdecl;
  2405. external LIB_BLEND2D name _PU + 'blImageDecoderReset';
  2406. function blImageDecoderAssignMove(self: PBLImageDecoderCore; other: PBLImageDecoderCore): BLResult; cdecl;
  2407. external LIB_BLEND2D name _PU + 'blImageDecoderAssignMove';
  2408. function blImageDecoderAssignWeak(self: PBLImageDecoderCore; other: PBLImageDecoderCore): BLResult; cdecl;
  2409. external LIB_BLEND2D name _PU + 'blImageDecoderAssignWeak';
  2410. function blImageDecoderRestart(self: PBLImageDecoderCore): BLResult; cdecl;
  2411. external LIB_BLEND2D name _PU + 'blImageDecoderRestart';
  2412. function blImageDecoderReadInfo(self: PBLImageDecoderCore; infoOut: _PBLImageInfo; data: PUInt8; size: NativeUInt): BLResult; cdecl;
  2413. external LIB_BLEND2D name _PU + 'blImageDecoderReadInfo';
  2414. function blImageDecoderReadFrame(self: PBLImageDecoderCore; imageOut: PBLImageCore; data: PUInt8; size: NativeUInt): BLResult; cdecl;
  2415. external LIB_BLEND2D name _PU + 'blImageDecoderReadFrame';
  2416. function blImageEncoderInit(self: PBLImageEncoderCore): BLResult; cdecl;
  2417. external LIB_BLEND2D name _PU + 'blImageEncoderInit';
  2418. function blImageEncoderDestroy(self: PBLImageEncoderCore): BLResult; cdecl;
  2419. external LIB_BLEND2D name _PU + 'blImageEncoderDestroy';
  2420. function blImageEncoderReset(self: PBLImageEncoderCore): BLResult; cdecl;
  2421. external LIB_BLEND2D name _PU + 'blImageEncoderReset';
  2422. function blImageEncoderAssignMove(self: PBLImageEncoderCore; other: PBLImageEncoderCore): BLResult; cdecl;
  2423. external LIB_BLEND2D name _PU + 'blImageEncoderAssignMove';
  2424. function blImageEncoderAssignWeak(self: PBLImageEncoderCore; other: PBLImageEncoderCore): BLResult; cdecl;
  2425. external LIB_BLEND2D name _PU + 'blImageEncoderAssignWeak';
  2426. function blImageEncoderRestart(self: PBLImageEncoderCore): BLResult; cdecl;
  2427. external LIB_BLEND2D name _PU + 'blImageEncoderRestart';
  2428. function blImageEncoderWriteFrame(self: PBLImageEncoderCore; dst: PBLArrayCore; image: PBLImageCore): BLResult; cdecl;
  2429. external LIB_BLEND2D name _PU + 'blImageEncoderWriteFrame';
  2430. function blMatrix2DSetIdentity(self: _PBLMatrix2D): BLResult; cdecl;
  2431. external LIB_BLEND2D name _PU + 'blMatrix2DSetIdentity';
  2432. function blMatrix2DSetTranslation(self: _PBLMatrix2D; x: Double; y: Double): BLResult; cdecl;
  2433. external LIB_BLEND2D name _PU + 'blMatrix2DSetTranslation';
  2434. function blMatrix2DSetScaling(self: _PBLMatrix2D; x: Double; y: Double): BLResult; cdecl;
  2435. external LIB_BLEND2D name _PU + 'blMatrix2DSetScaling';
  2436. function blMatrix2DSetSkewing(self: _PBLMatrix2D; x: Double; y: Double): BLResult; cdecl;
  2437. external LIB_BLEND2D name _PU + 'blMatrix2DSetSkewing';
  2438. function blMatrix2DSetRotation(self: _PBLMatrix2D; angle: Double; cx: Double; cy: Double): BLResult; cdecl;
  2439. external LIB_BLEND2D name _PU + 'blMatrix2DSetRotation';
  2440. function blMatrix2DApplyOp(self: _PBLMatrix2D; opType: UInt32; opData: Pointer): BLResult; cdecl;
  2441. external LIB_BLEND2D name _PU + 'blMatrix2DApplyOp';
  2442. function blMatrix2DInvert(dst: _PBLMatrix2D; src: _PBLMatrix2D): BLResult; cdecl;
  2443. external LIB_BLEND2D name _PU + 'blMatrix2DInvert';
  2444. function blMatrix2DGetType(self: _PBLMatrix2D): UInt32; cdecl;
  2445. external LIB_BLEND2D name _PU + 'blMatrix2DGetType';
  2446. function blMatrix2DMapPointDArray(self: _PBLMatrix2D; dst: _PBLPoint; src: _PBLPoint; count: NativeUInt): BLResult; cdecl;
  2447. external LIB_BLEND2D name _PU + 'blMatrix2DMapPointDArray';
  2448. function blPathInit(self: PBLPathCore): BLResult; cdecl;
  2449. external LIB_BLEND2D name _PU + 'blPathInit';
  2450. function blPathDestroy(self: PBLPathCore): BLResult; cdecl;
  2451. external LIB_BLEND2D name _PU + 'blPathDestroy';
  2452. function blPathReset(self: PBLPathCore): BLResult; cdecl;
  2453. external LIB_BLEND2D name _PU + 'blPathReset';
  2454. function blPathGetSize(self: PBLPathCore): NativeUInt; cdecl;
  2455. external LIB_BLEND2D name _PU + 'blPathGetSize';
  2456. function blPathGetCapacity(self: PBLPathCore): NativeUInt; cdecl;
  2457. external LIB_BLEND2D name _PU + 'blPathGetCapacity';
  2458. function blPathGetCommandData(self: PBLPathCore): PUInt8; cdecl;
  2459. external LIB_BLEND2D name _PU + 'blPathGetCommandData';
  2460. function blPathGetVertexData(self: PBLPathCore): _PBLPoint; cdecl;
  2461. external LIB_BLEND2D name _PU + 'blPathGetVertexData';
  2462. function blPathClear(self: PBLPathCore): BLResult; cdecl;
  2463. external LIB_BLEND2D name _PU + 'blPathClear';
  2464. function blPathShrink(self: PBLPathCore): BLResult; cdecl;
  2465. external LIB_BLEND2D name _PU + 'blPathShrink';
  2466. function blPathReserve(self: PBLPathCore; n: NativeUInt): BLResult; cdecl;
  2467. external LIB_BLEND2D name _PU + 'blPathReserve';
  2468. function blPathModifyOp(self: PBLPathCore; op: UInt32; n: NativeUInt; cmdDataOut: PPUInt8; out vtxDataOut: _PBLPoint): BLResult; cdecl;
  2469. external LIB_BLEND2D name _PU + 'blPathModifyOp';
  2470. function blPathAssignMove(self: PBLPathCore; other: PBLPathCore): BLResult; cdecl;
  2471. external LIB_BLEND2D name _PU + 'blPathAssignMove';
  2472. function blPathAssignWeak(self: PBLPathCore; other: PBLPathCore): BLResult; cdecl;
  2473. external LIB_BLEND2D name _PU + 'blPathAssignWeak';
  2474. function blPathAssignDeep(self: PBLPathCore; other: PBLPathCore): BLResult; cdecl;
  2475. external LIB_BLEND2D name _PU + 'blPathAssignDeep';
  2476. function blPathSetVertexAt(self: PBLPathCore; index: NativeUInt; cmd: UInt32; x: Double; y: Double): BLResult; cdecl;
  2477. external LIB_BLEND2D name _PU + 'blPathSetVertexAt';
  2478. function blPathMoveTo(self: PBLPathCore; x0: Double; y0: Double): BLResult; cdecl;
  2479. external LIB_BLEND2D name _PU + 'blPathMoveTo';
  2480. function blPathLineTo(self: PBLPathCore; x1: Double; y1: Double): BLResult; cdecl;
  2481. external LIB_BLEND2D name _PU + 'blPathLineTo';
  2482. function blPathPolyTo(self: PBLPathCore; poly: _PBLPoint; count: NativeUInt): BLResult; cdecl;
  2483. external LIB_BLEND2D name _PU + 'blPathPolyTo';
  2484. function blPathQuadTo(self: PBLPathCore; x1: Double; y1: Double; x2: Double; y2: Double): BLResult; cdecl;
  2485. external LIB_BLEND2D name _PU + 'blPathQuadTo';
  2486. function blPathCubicTo(self: PBLPathCore; x1: Double; y1: Double; x2: Double; y2: Double; x3: Double; y3: Double): BLResult; cdecl;
  2487. external LIB_BLEND2D name _PU + 'blPathCubicTo';
  2488. function blPathSmoothQuadTo(self: PBLPathCore; x2: Double; y2: Double): BLResult; cdecl;
  2489. external LIB_BLEND2D name _PU + 'blPathSmoothQuadTo';
  2490. function blPathSmoothCubicTo(self: PBLPathCore; x2: Double; y2: Double; x3: Double; y3: Double): BLResult; cdecl;
  2491. external LIB_BLEND2D name _PU + 'blPathSmoothCubicTo';
  2492. function blPathArcTo(self: PBLPathCore; x: Double; y: Double; rx: Double; ry: Double; start: Double; sweep: Double; forceMoveTo: Boolean): BLResult; cdecl;
  2493. external LIB_BLEND2D name _PU + 'blPathArcTo';
  2494. function blPathArcQuadrantTo(self: PBLPathCore; x1: Double; y1: Double; x2: Double; y2: Double): BLResult; cdecl;
  2495. external LIB_BLEND2D name _PU + 'blPathArcQuadrantTo';
  2496. function blPathEllipticArcTo(self: PBLPathCore; rx: Double; ry: Double; xAxisRotation: Double; largeArcFlag: Boolean; sweepFlag: Boolean; x1: Double; y1: Double): BLResult; cdecl;
  2497. external LIB_BLEND2D name _PU + 'blPathEllipticArcTo';
  2498. function blPathClose(self: PBLPathCore): BLResult; cdecl;
  2499. external LIB_BLEND2D name _PU + 'blPathClose';
  2500. function blPathAddGeometry(self: PBLPathCore; geometryType: UInt32; geometryData: Pointer; m: _PBLMatrix2D; dir: UInt32): BLResult; cdecl;
  2501. external LIB_BLEND2D name _PU + 'blPathAddGeometry';
  2502. function blPathAddBoxI(self: PBLPathCore; box: _PBLBoxI; dir: UInt32): BLResult; cdecl;
  2503. external LIB_BLEND2D name _PU + 'blPathAddBoxI';
  2504. function blPathAddBoxD(self: PBLPathCore; box: _PBLBox; dir: UInt32): BLResult; cdecl;
  2505. external LIB_BLEND2D name _PU + 'blPathAddBoxD';
  2506. function blPathAddRectI(self: PBLPathCore; rect: _PBLRectI; dir: UInt32): BLResult; cdecl;
  2507. external LIB_BLEND2D name _PU + 'blPathAddRectI';
  2508. function blPathAddRectD(self: PBLPathCore; rect: _PBLRect; dir: UInt32): BLResult; cdecl;
  2509. external LIB_BLEND2D name _PU + 'blPathAddRectD';
  2510. function blPathAddPath(self: PBLPathCore; other: PBLPathCore; range: _PBLRange): BLResult; cdecl;
  2511. external LIB_BLEND2D name _PU + 'blPathAddPath';
  2512. function blPathAddTranslatedPath(self: PBLPathCore; other: PBLPathCore; range: _PBLRange; p: _PBLPoint): BLResult; cdecl;
  2513. external LIB_BLEND2D name _PU + 'blPathAddTranslatedPath';
  2514. function blPathAddTransformedPath(self: PBLPathCore; other: PBLPathCore; range: _PBLRange; m: _PBLMatrix2D): BLResult; cdecl;
  2515. external LIB_BLEND2D name _PU + 'blPathAddTransformedPath';
  2516. function blPathAddReversedPath(self: PBLPathCore; other: PBLPathCore; range: _PBLRange; reverseMode: UInt32): BLResult; cdecl;
  2517. external LIB_BLEND2D name _PU + 'blPathAddReversedPath';
  2518. function blPathAddStrokedPath(self: PBLPathCore; other: PBLPathCore; range: _PBLRange; options: PBLStrokeOptionsCore; approx: _PBLApproximationOptions): BLResult; cdecl;
  2519. external LIB_BLEND2D name _PU + 'blPathAddStrokedPath';
  2520. function blPathRemoveRange(self: PBLPathCore; range: _PBLRange): BLResult; cdecl;
  2521. external LIB_BLEND2D name _PU + 'blPathRemoveRange';
  2522. function blPathTranslate(self: PBLPathCore; range: _PBLRange; p: _PBLPoint): BLResult; cdecl;
  2523. external LIB_BLEND2D name _PU + 'blPathTranslate';
  2524. function blPathTransform(self: PBLPathCore; range: _PBLRange; m: _PBLMatrix2D): BLResult; cdecl;
  2525. external LIB_BLEND2D name _PU + 'blPathTransform';
  2526. function blPathFitTo(self: PBLPathCore; range: _PBLRange; rect: _PBLRect; fitFlags: UInt32): BLResult; cdecl;
  2527. external LIB_BLEND2D name _PU + 'blPathFitTo';
  2528. function blPathEquals(a: PBLPathCore; b: PBLPathCore): Boolean; cdecl;
  2529. external LIB_BLEND2D name _PU + 'blPathEquals';
  2530. function blPathGetInfoFlags(self: PBLPathCore; flagsOut: PUInt32): BLResult; cdecl;
  2531. external LIB_BLEND2D name _PU + 'blPathGetInfoFlags';
  2532. function blPathGetControlBox(self: PBLPathCore; boxOut: _PBLBox): BLResult; cdecl;
  2533. external LIB_BLEND2D name _PU + 'blPathGetControlBox';
  2534. function blPathGetBoundingBox(self: PBLPathCore; boxOut: _PBLBox): BLResult; cdecl;
  2535. external LIB_BLEND2D name _PU + 'blPathGetBoundingBox';
  2536. function blPathGetFigureRange(self: PBLPathCore; index: NativeUInt; rangeOut: _PBLRange): BLResult; cdecl;
  2537. external LIB_BLEND2D name _PU + 'blPathGetFigureRange';
  2538. function blPathGetLastVertex(self: PBLPathCore; vtxOut: _PBLPoint): BLResult; cdecl;
  2539. external LIB_BLEND2D name _PU + 'blPathGetLastVertex';
  2540. function blPathGetClosestVertex(self: PBLPathCore; p: _PBLPoint; maxDistance: Double; indexOut: PNativeUInt; distanceOut: PDouble): BLResult; cdecl;
  2541. external LIB_BLEND2D name _PU + 'blPathGetClosestVertex';
  2542. function blPathHitTest(self: PBLPathCore; p: _PBLPoint; fillRule: UInt32): UInt32; cdecl;
  2543. external LIB_BLEND2D name _PU + 'blPathHitTest';
  2544. function blPatternInit(self: PBLPatternCore): BLResult; cdecl;
  2545. external LIB_BLEND2D name _PU + 'blPatternInit';
  2546. function blPatternInitAs(self: PBLPatternCore; image: PBLImageCore; area: _PBLRectI; extendMode: UInt32; m: _PBLMatrix2D): BLResult; cdecl;
  2547. external LIB_BLEND2D name _PU + 'blPatternInitAs';
  2548. function blPatternDestroy(self: PBLPatternCore): BLResult; cdecl;
  2549. external LIB_BLEND2D name _PU + 'blPatternDestroy';
  2550. function blPatternReset(self: PBLPatternCore): BLResult; cdecl;
  2551. external LIB_BLEND2D name _PU + 'blPatternReset';
  2552. function blPatternAssignMove(self: PBLPatternCore; other: PBLPatternCore): BLResult; cdecl;
  2553. external LIB_BLEND2D name _PU + 'blPatternAssignMove';
  2554. function blPatternAssignWeak(self: PBLPatternCore; other: PBLPatternCore): BLResult; cdecl;
  2555. external LIB_BLEND2D name _PU + 'blPatternAssignWeak';
  2556. function blPatternAssignDeep(self: PBLPatternCore; other: PBLPatternCore): BLResult; cdecl;
  2557. external LIB_BLEND2D name _PU + 'blPatternAssignDeep';
  2558. function blPatternCreate(self: PBLPatternCore; image: PBLImageCore; area: _PBLRectI; extendMode: UInt32; m: _PBLMatrix2D): BLResult; cdecl;
  2559. external LIB_BLEND2D name _PU + 'blPatternCreate';
  2560. function blPatternSetImage(self: PBLPatternCore; image: PBLImageCore; area: _PBLRectI): BLResult; cdecl;
  2561. external LIB_BLEND2D name _PU + 'blPatternSetImage';
  2562. function blPatternSetArea(self: PBLPatternCore; area: _PBLRectI): BLResult; cdecl;
  2563. external LIB_BLEND2D name _PU + 'blPatternSetArea';
  2564. function blPatternSetExtendMode(self: PBLPatternCore; extendMode: UInt32): BLResult; cdecl;
  2565. external LIB_BLEND2D name _PU + 'blPatternSetExtendMode';
  2566. function blPatternApplyMatrixOp(self: PBLPatternCore; opType: UInt32; opData: Pointer): BLResult; cdecl;
  2567. external LIB_BLEND2D name _PU + 'blPatternApplyMatrixOp';
  2568. function blPatternEquals(a: PBLPatternCore; b: PBLPatternCore): Boolean; cdecl;
  2569. external LIB_BLEND2D name _PU + 'blPatternEquals';
  2570. function blPixelConverterInit(self: PBLPixelConverterCore): BLResult; cdecl;
  2571. external LIB_BLEND2D name _PU + 'blPixelConverterInit';
  2572. function blPixelConverterInitWeak(self: PBLPixelConverterCore; other: PBLPixelConverterCore): BLResult; cdecl;
  2573. external LIB_BLEND2D name _PU + 'blPixelConverterInitWeak';
  2574. function blPixelConverterDestroy(self: PBLPixelConverterCore): BLResult; cdecl;
  2575. external LIB_BLEND2D name _PU + 'blPixelConverterDestroy';
  2576. function blPixelConverterReset(self: PBLPixelConverterCore): BLResult; cdecl;
  2577. external LIB_BLEND2D name _PU + 'blPixelConverterReset';
  2578. function blPixelConverterAssign(self: PBLPixelConverterCore; other: PBLPixelConverterCore): BLResult; cdecl;
  2579. external LIB_BLEND2D name _PU + 'blPixelConverterAssign';
  2580. function blPixelConverterCreate(self: PBLPixelConverterCore; dstInfo: _PBLFormatInfo; srcInfo: _PBLFormatInfo; createFlags: UInt32): BLResult; cdecl;
  2581. external LIB_BLEND2D name _PU + 'blPixelConverterCreate';
  2582. function blPixelConverterConvert(self: PBLPixelConverterCore; dstData: Pointer; dstStride: IntPtr; srcData: Pointer; srcStride: IntPtr; w: UInt32; h: UInt32; options: _PBLPixelConverterOptions): BLResult; cdecl;
  2583. external LIB_BLEND2D name _PU + 'blPixelConverterConvert';
  2584. function blRandomReset(self: _PBLRandom; seed: UInt64): BLResult; cdecl;
  2585. external LIB_BLEND2D name _PU + 'blRandomReset';
  2586. function blRandomNextUInt32(self: _PBLRandom): UInt32; cdecl;
  2587. external LIB_BLEND2D name _PU + 'blRandomNextUInt32';
  2588. function blRandomNextUInt64(self: _PBLRandom): UInt64; cdecl;
  2589. external LIB_BLEND2D name _PU + 'blRandomNextUInt64';
  2590. function blRandomNextDouble(self: _PBLRandom): Double; cdecl;
  2591. external LIB_BLEND2D name _PU + 'blRandomNextDouble';
  2592. function blRegionInit(self: PBLRegionCore): BLResult; cdecl;
  2593. external LIB_BLEND2D name _PU + 'blRegionInit';
  2594. function blRegionDestroy(self: PBLRegionCore): BLResult; cdecl;
  2595. external LIB_BLEND2D name _PU + 'blRegionDestroy';
  2596. function blRegionReset(self: PBLRegionCore): BLResult; cdecl;
  2597. external LIB_BLEND2D name _PU + 'blRegionReset';
  2598. function blRegionGetSize(self: PBLRegionCore): NativeUInt; cdecl;
  2599. external LIB_BLEND2D name _PU + 'blRegionGetSize';
  2600. function blRegionGetCapacity(self: PBLRegionCore): NativeUInt; cdecl;
  2601. external LIB_BLEND2D name _PU + 'blRegionGetCapacity';
  2602. function blRegionGetData(self: PBLRegionCore): _PBLBoxI; cdecl;
  2603. external LIB_BLEND2D name _PU + 'blRegionGetData';
  2604. function blRegionClear(self: PBLRegionCore): BLResult; cdecl;
  2605. external LIB_BLEND2D name _PU + 'blRegionClear';
  2606. function blRegionShrink(self: PBLRegionCore): BLResult; cdecl;
  2607. external LIB_BLEND2D name _PU + 'blRegionShrink';
  2608. function blRegionReserve(self: PBLRegionCore; n: NativeUInt): BLResult; cdecl;
  2609. external LIB_BLEND2D name _PU + 'blRegionReserve';
  2610. function blRegionAssignMove(self: PBLRegionCore; other: PBLRegionCore): BLResult; cdecl;
  2611. external LIB_BLEND2D name _PU + 'blRegionAssignMove';
  2612. function blRegionAssignWeak(self: PBLRegionCore; other: PBLRegionCore): BLResult; cdecl;
  2613. external LIB_BLEND2D name _PU + 'blRegionAssignWeak';
  2614. function blRegionAssignDeep(self: PBLRegionCore; other: PBLRegionCore): BLResult; cdecl;
  2615. external LIB_BLEND2D name _PU + 'blRegionAssignDeep';
  2616. function blRegionAssignBoxI(self: PBLRegionCore; src: _PBLBoxI): BLResult; cdecl;
  2617. external LIB_BLEND2D name _PU + 'blRegionAssignBoxI';
  2618. function blRegionAssignBoxIArray(self: PBLRegionCore; data: _PBLBoxI; n: NativeUInt): BLResult; cdecl;
  2619. external LIB_BLEND2D name _PU + 'blRegionAssignBoxIArray';
  2620. function blRegionAssignRectI(self: PBLRegionCore; rect: _PBLRectI): BLResult; cdecl;
  2621. external LIB_BLEND2D name _PU + 'blRegionAssignRectI';
  2622. function blRegionAssignRectIArray(self: PBLRegionCore; data: _PBLRectI; n: NativeUInt): BLResult; cdecl;
  2623. external LIB_BLEND2D name _PU + 'blRegionAssignRectIArray';
  2624. function blRegionCombine(self: PBLRegionCore; a: PBLRegionCore; b: PBLRegionCore; booleanOp: UInt32): BLResult; cdecl;
  2625. external LIB_BLEND2D name _PU + 'blRegionCombine';
  2626. function blRegionCombineRB(self: PBLRegionCore; a: PBLRegionCore; b: _PBLBoxI; booleanOp: UInt32): BLResult; cdecl;
  2627. external LIB_BLEND2D name _PU + 'blRegionCombineRB';
  2628. function blRegionCombineBR(self: PBLRegionCore; a: _PBLBoxI; b: PBLRegionCore; booleanOp: UInt32): BLResult; cdecl;
  2629. external LIB_BLEND2D name _PU + 'blRegionCombineBR';
  2630. function blRegionCombineBB(self: PBLRegionCore; a: _PBLBoxI; b: _PBLBoxI; booleanOp: UInt32): BLResult; cdecl;
  2631. external LIB_BLEND2D name _PU + 'blRegionCombineBB';
  2632. function blRegionTranslate(self: PBLRegionCore; r: PBLRegionCore; pt: _PBLPointI): BLResult; cdecl;
  2633. external LIB_BLEND2D name _PU + 'blRegionTranslate';
  2634. function blRegionTranslateAndClip(self: PBLRegionCore; r: PBLRegionCore; pt: _PBLPointI; clipBox: _PBLBoxI): BLResult; cdecl;
  2635. external LIB_BLEND2D name _PU + 'blRegionTranslateAndClip';
  2636. function blRegionIntersectAndClip(self: PBLRegionCore; a: PBLRegionCore; b: PBLRegionCore; clipBox: _PBLBoxI): BLResult; cdecl;
  2637. external LIB_BLEND2D name _PU + 'blRegionIntersectAndClip';
  2638. function blRegionEquals(a: PBLRegionCore; b: PBLRegionCore): Boolean; cdecl;
  2639. external LIB_BLEND2D name _PU + 'blRegionEquals';
  2640. function blRegionGetType(self: PBLRegionCore): UInt32; cdecl;
  2641. external LIB_BLEND2D name _PU + 'blRegionGetType';
  2642. function blRegionHitTest(self: PBLRegionCore; pt: _PBLPointI): UInt32; cdecl;
  2643. external LIB_BLEND2D name _PU + 'blRegionHitTest';
  2644. function blRegionHitTestBoxI(self: PBLRegionCore; box: _PBLBoxI): UInt32; cdecl;
  2645. external LIB_BLEND2D name _PU + 'blRegionHitTestBoxI';
  2646. function blRuntimeInit(): BLResult; cdecl;
  2647. external LIB_BLEND2D name _PU + 'blRuntimeInit';
  2648. function blRuntimeShutdown(): BLResult; cdecl;
  2649. external LIB_BLEND2D name _PU + 'blRuntimeShutdown';
  2650. function blRuntimeCleanup(cleanupFlags: UInt32): BLResult; cdecl;
  2651. external LIB_BLEND2D name _PU + 'blRuntimeCleanup';
  2652. function blRuntimeQueryInfo(infoType: UInt32; infoOut: Pointer): BLResult; cdecl;
  2653. external LIB_BLEND2D name _PU + 'blRuntimeQueryInfo';
  2654. function blRuntimeMessageOut(msg: PUTF8Char): BLResult; cdecl;
  2655. external LIB_BLEND2D name _PU + 'blRuntimeMessageOut';
  2656. function blRuntimeMessageFmt(fmt: PUTF8Char): BLResult varargs; cdecl;
  2657. external LIB_BLEND2D name _PU + 'blRuntimeMessageFmt';
  2658. function blRuntimeMessageVFmt(fmt: PUTF8Char; ap: Pointer): BLResult; cdecl;
  2659. external LIB_BLEND2D name _PU + 'blRuntimeMessageVFmt';
  2660. procedure blRuntimeAssertionFailure(&file: PUTF8Char; line: Integer; msg: PUTF8Char); cdecl;
  2661. external LIB_BLEND2D name _PU + 'blRuntimeAssertionFailure';
  2662. {$IFDEF MSWINDOWS}
  2663. function blResultFromWinError(e: UInt32): BLResult; cdecl;
  2664. external LIB_BLEND2D name _PU + 'blResultFromWinError';
  2665. {$ELSE}
  2666. function blResultFromPosixError(e: Integer): BLResult; cdecl;
  2667. external LIB_BLEND2D name _PU + 'blResultFromPosixError';
  2668. {$ENDIF}
  2669. function blStringInit(self: PBLStringCore): BLResult; cdecl;
  2670. external LIB_BLEND2D name _PU + 'blStringInit';
  2671. function blStringInitWithData(self: PBLStringCore; const str: MarshaledAString; size: NativeUInt): BLResult; cdecl;
  2672. external LIB_BLEND2D name _PU + 'blStringInitWithData';
  2673. function blStringDestroy(self: PBLStringCore): BLResult; cdecl;
  2674. external LIB_BLEND2D name _PU + 'blStringDestroy';
  2675. function blStringReset(self: PBLStringCore): BLResult; cdecl;
  2676. external LIB_BLEND2D name _PU + 'blStringReset';
  2677. function blStringGetSize(self: PBLStringCore): NativeUInt; cdecl;
  2678. external LIB_BLEND2D name _PU + 'blStringGetSize';
  2679. function blStringGetCapacity(self: PBLStringCore): NativeUInt; cdecl;
  2680. external LIB_BLEND2D name _PU + 'blStringGetCapacity';
  2681. function blStringGetData(self: PBLStringCore): PUTF8Char; cdecl;
  2682. external LIB_BLEND2D name _PU + 'blStringGetData';
  2683. function blStringClear(self: PBLStringCore): BLResult; cdecl;
  2684. external LIB_BLEND2D name _PU + 'blStringClear';
  2685. function blStringShrink(self: PBLStringCore): BLResult; cdecl;
  2686. external LIB_BLEND2D name _PU + 'blStringShrink';
  2687. function blStringReserve(self: PBLStringCore; n: NativeUInt): BLResult; cdecl;
  2688. external LIB_BLEND2D name _PU + 'blStringReserve';
  2689. function blStringResize(self: PBLStringCore; n: NativeUInt; fill: UTF8Char): BLResult; cdecl;
  2690. external LIB_BLEND2D name _PU + 'blStringResize';
  2691. function blStringMakeMutable(self: PBLStringCore; dataOut: PPUTF8Char): BLResult; cdecl;
  2692. external LIB_BLEND2D name _PU + 'blStringMakeMutable';
  2693. function blStringModifyOp(self: PBLStringCore; op: UInt32; n: NativeUInt; dataOut: PPUTF8Char): BLResult; cdecl;
  2694. external LIB_BLEND2D name _PU + 'blStringModifyOp';
  2695. function blStringInsertOp(self: PBLStringCore; index: NativeUInt; n: NativeUInt; dataOut: PPUTF8Char): BLResult; cdecl;
  2696. external LIB_BLEND2D name _PU + 'blStringInsertOp';
  2697. function blStringAssignMove(self: PBLStringCore; other: PBLStringCore): BLResult; cdecl;
  2698. external LIB_BLEND2D name _PU + 'blStringAssignMove';
  2699. function blStringAssignWeak(self: PBLStringCore; other: PBLStringCore): BLResult; cdecl;
  2700. external LIB_BLEND2D name _PU + 'blStringAssignWeak';
  2701. function blStringAssignDeep(self: PBLStringCore; other: PBLStringCore): BLResult; cdecl;
  2702. external LIB_BLEND2D name _PU + 'blStringAssignDeep';
  2703. function blStringAssignData(self: PBLStringCore; str: PUTF8Char; n: NativeUInt): BLResult; cdecl;
  2704. external LIB_BLEND2D name _PU + 'blStringAssignData';
  2705. function blStringApplyOpChar(self: PBLStringCore; op: UInt32; c: UTF8Char; n: NativeUInt): BLResult; cdecl;
  2706. external LIB_BLEND2D name _PU + 'blStringApplyOpChar';
  2707. function blStringApplyOpData(self: PBLStringCore; op: UInt32; str: PUTF8Char; n: NativeUInt): BLResult; cdecl;
  2708. external LIB_BLEND2D name _PU + 'blStringApplyOpData';
  2709. function blStringApplyOpString(self: PBLStringCore; op: UInt32; other: PBLStringCore): BLResult; cdecl;
  2710. external LIB_BLEND2D name _PU + 'blStringApplyOpString';
  2711. function blStringApplyOpFormat(self: PBLStringCore; op: UInt32; fmt: PUTF8Char): BLResult varargs; cdecl;
  2712. external LIB_BLEND2D name _PU + 'blStringApplyOpFormat';
  2713. function blStringApplyOpFormatV(self: PBLStringCore; op: UInt32; fmt: PUTF8Char; ap: Pointer): BLResult; cdecl;
  2714. external LIB_BLEND2D name _PU + 'blStringApplyOpFormatV';
  2715. function blStringInsertChar(self: PBLStringCore; index: NativeUInt; c: UTF8Char; n: NativeUInt): BLResult; cdecl;
  2716. external LIB_BLEND2D name _PU + 'blStringInsertChar';
  2717. function blStringInsertData(self: PBLStringCore; index: NativeUInt; str: PUTF8Char; n: NativeUInt): BLResult; cdecl;
  2718. external LIB_BLEND2D name _PU + 'blStringInsertData';
  2719. function blStringInsertString(self: PBLStringCore; index: NativeUInt; other: PBLStringCore): BLResult; cdecl;
  2720. external LIB_BLEND2D name _PU + 'blStringInsertString';
  2721. function blStringRemoveRange(self: PBLStringCore; rStart: NativeUInt; rEnd: NativeUInt): BLResult; cdecl;
  2722. external LIB_BLEND2D name _PU + 'blStringRemoveRange';
  2723. function blStringEquals(self: PBLStringCore; other: PBLStringCore): Boolean; cdecl;
  2724. external LIB_BLEND2D name _PU + 'blStringEquals';
  2725. function blStringEqualsData(self: PBLStringCore; str: PUTF8Char; n: NativeUInt): Boolean; cdecl;
  2726. external LIB_BLEND2D name _PU + 'blStringEqualsData';
  2727. function blStringCompare(self: PBLStringCore; other: PBLStringCore): Integer; cdecl;
  2728. external LIB_BLEND2D name _PU + 'blStringCompare';
  2729. function blStringCompareData(self: PBLStringCore; str: PUTF8Char; n: NativeUInt): Integer; cdecl;
  2730. external LIB_BLEND2D name _PU + 'blStringCompareData';
  2731. function blStrokeOptionsInit(self: PBLStrokeOptionsCore): BLResult; cdecl;
  2732. external LIB_BLEND2D name _PU + 'blStrokeOptionsInit';
  2733. function blStrokeOptionsInitMove(self: PBLStrokeOptionsCore; other: PBLStrokeOptionsCore): BLResult; cdecl;
  2734. external LIB_BLEND2D name _PU + 'blStrokeOptionsInitMove';
  2735. function blStrokeOptionsInitWeak(self: PBLStrokeOptionsCore; other: PBLStrokeOptionsCore): BLResult; cdecl;
  2736. external LIB_BLEND2D name _PU + 'blStrokeOptionsInitWeak';
  2737. function blStrokeOptionsDestroy(self: PBLStrokeOptionsCore): BLResult; cdecl;
  2738. external LIB_BLEND2D name _PU + 'blStrokeOptionsDestroy';
  2739. function blStrokeOptionsReset(self: PBLStrokeOptionsCore): BLResult; cdecl;
  2740. external LIB_BLEND2D name _PU + 'blStrokeOptionsReset';
  2741. function blStrokeOptionsAssignMove(self: PBLStrokeOptionsCore; other: PBLStrokeOptionsCore): BLResult; cdecl;
  2742. external LIB_BLEND2D name _PU + 'blStrokeOptionsAssignMove';
  2743. function blStrokeOptionsAssignWeak(self: PBLStrokeOptionsCore; other: PBLStrokeOptionsCore): BLResult; cdecl;
  2744. external LIB_BLEND2D name _PU + 'blStrokeOptionsAssignWeak';
  2745. function blStyleInit(self: PBLStyleCore): BLResult; cdecl;
  2746. external LIB_BLEND2D name _PU + 'blStyleInit';
  2747. function blStyleInitMove(self, other: PBLStyleCore): BLResult; cdecl;
  2748. external LIB_BLEND2D name _PU + 'blStyleInitMove';
  2749. function blStyleInitWeak(self, other: PBLStyleCore): BLResult; cdecl;
  2750. external LIB_BLEND2D name _PU + 'blStyleInitWeak';
  2751. function blStyleInitRgba(self: PBLStyleCore; rgba: _PBLRgba): BLResult; cdecl;
  2752. external LIB_BLEND2D name _PU + 'blStyleInitRgba';
  2753. function blStyleInitRgba32(self: PBLStyleCore; rgba: UInt32): BLResult; cdecl;
  2754. external LIB_BLEND2D name _PU + 'blStyleInitRgba32';
  2755. function blStyleInitRgba64(self: PBLStyleCore; rgba: UInt64): BLResult; cdecl;
  2756. external LIB_BLEND2D name _PU + 'blStyleInitRgba64';
  2757. function blStyleInitObject(self: PBLStyleCore; &object: Pointer): BLResult; cdecl;
  2758. external LIB_BLEND2D name _PU + 'blStyleInitObject';
  2759. function blStyleDestroy(self: PBLStyleCore): BLResult; cdecl;
  2760. external LIB_BLEND2D name _PU + 'blStyleDestroy';
  2761. function blStyleReset(self: PBLStyleCore): BLResult; cdecl;
  2762. external LIB_BLEND2D name _PU + 'blStyleReset';
  2763. function blStyleAssignMove(self, other: PBLStyleCore): BLResult; cdecl;
  2764. external LIB_BLEND2D name _PU + 'blStyleAssignMove';
  2765. function blStyleAssignWeak(self, other: PBLStyleCore): BLResult; cdecl;
  2766. external LIB_BLEND2D name _PU + 'blStyleAssignWeak';
  2767. function blStyleAssignRgba(self: PBLStyleCore; rgba: _PBLRgba): BLResult; cdecl;
  2768. external LIB_BLEND2D name _PU + 'blStyleAssignRgba';
  2769. function blStyleAssignRgba32(self: PBLStyleCore; rgba: UInt32): BLResult; cdecl;
  2770. external LIB_BLEND2D name _PU + 'blStyleAssignRgba32';
  2771. function blStyleAssignRgba64(self: PBLStyleCore; rgba: UInt64): BLResult; cdecl;
  2772. external LIB_BLEND2D name _PU + 'blStyleAssignRgba64';
  2773. function blStyleAssignObject(self: PBLStyleCore; &object: Pointer): BLResult; cdecl;
  2774. external LIB_BLEND2D name _PU + 'blStyleAssignObject';
  2775. function blStyleGetType(self: PBLStyleCore): UInt32; cdecl;
  2776. external LIB_BLEND2D name _PU + 'blStyleGetType';
  2777. function blStyleGetRgba(self: PBLStyleCore; rgbaOut: _PBLRgba): BLResult; cdecl;
  2778. external LIB_BLEND2D name _PU + 'blStyleGetRgba';
  2779. function blStyleGetRgba32(self: PBLStyleCore; rgba32Out: UInt32): BLResult; cdecl;
  2780. external LIB_BLEND2D name _PU + 'blStyleGetRgba32';
  2781. function blStyleGetRgba64(self: PBLStyleCore; rgba64Out: UInt64): BLResult; cdecl;
  2782. external LIB_BLEND2D name _PU + 'blStyleGetRgba64';
  2783. function blStyleGetObject(self: PBLStyleCore; &object: Pointer): BLResult; cdecl;
  2784. external LIB_BLEND2D name _PU + 'blStyleGetObject';
  2785. function blStyleEquals(a, b: PBLStyleCore): Boolean; cdecl;
  2786. external LIB_BLEND2D name _PU + 'blStyleEquals';
  2787. function blVariantInit(self: Pointer): BLResult; cdecl;
  2788. external LIB_BLEND2D name _PU + 'blVariantInit';
  2789. function blVariantInitMove(self: Pointer; other: Pointer): BLResult; cdecl;
  2790. external LIB_BLEND2D name _PU + 'blVariantInitMove';
  2791. function blVariantInitWeak(self: Pointer; other: Pointer): BLResult; cdecl;
  2792. external LIB_BLEND2D name _PU + 'blVariantInitWeak';
  2793. function blVariantDestroy(self: Pointer): BLResult; cdecl;
  2794. external LIB_BLEND2D name _PU + 'blVariantDestroy';
  2795. function blVariantReset(self: Pointer): BLResult; cdecl;
  2796. external LIB_BLEND2D name _PU + 'blVariantReset';
  2797. function blVariantGetImplType(self: Pointer): UInt32; cdecl;
  2798. external LIB_BLEND2D name _PU + 'blVariantGetImplType';
  2799. function blVariantAssignMove(self: Pointer; other: Pointer): BLResult; cdecl;
  2800. external LIB_BLEND2D name _PU + 'blVariantAssignMove';
  2801. function blVariantAssignWeak(self: Pointer; other: Pointer): BLResult; cdecl;
  2802. external LIB_BLEND2D name _PU + 'blVariantAssignWeak';
  2803. function blVariantEquals(a: Pointer; b: Pointer): Boolean; cdecl;
  2804. external LIB_BLEND2D name _PU + 'blVariantEquals';
  2805. implementation
  2806. function BL_MAKE_TAG(const A, B, C, D: Byte): BLTag; inline;
  2807. begin
  2808. Result := (A shl 24) or (B shl 16) or (C shl 8) or D;
  2809. end;
  2810. end.