react-native-tgfx 0.0.0 → 0.0.2-alpha.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1792) hide show
  1. package/LICENSE +21 -0
  2. package/NOTICE +141 -0
  3. package/NitroTgfx.podspec +69 -0
  4. package/README.md +147 -2
  5. package/android/CMakeLists.txt +122 -0
  6. package/android/build.gradle +172 -0
  7. package/android/consumer-rules.pro +7 -0
  8. package/android/fix-prefab.gradle +51 -0
  9. package/android/gradle.properties +5 -0
  10. package/android/src/main/AndroidManifest.xml +2 -0
  11. package/android/src/main/cpp/TgfxAndroid.cpp +347 -0
  12. package/android/src/main/cpp/cpp-adapter.cpp +11 -0
  13. package/android/src/main/java/com/margelo/nitro/tgfx/HybridTgfxView.kt +139 -0
  14. package/android/src/main/java/com/margelo/nitro/tgfx/NitroTgfxPackage.kt +24 -0
  15. package/android/src/main/java/com/margelo/nitro/tgfx/TgfxNative.kt +49 -0
  16. package/android/src/main/java/com/margelo/nitro/tgfx/TgfxRenderTarget.kt +158 -0
  17. package/android/src/main/java/com/margelo/nitro/tgfx/TgfxSurfaceView.kt +43 -0
  18. package/android/src/main/java/com/margelo/nitro/tgfx/TgfxTextureView.kt +37 -0
  19. package/cpp/Base64.hpp +49 -0
  20. package/cpp/FontRegistry.cpp +379 -0
  21. package/cpp/FontRegistry.hpp +80 -0
  22. package/cpp/HybridTgfxFonts.cpp +135 -0
  23. package/cpp/HybridTgfxFonts.hpp +29 -0
  24. package/cpp/HybridTgfxImage.hpp +54 -0
  25. package/cpp/HybridTgfxImageFactory.cpp +126 -0
  26. package/cpp/HybridTgfxImageFactory.hpp +27 -0
  27. package/cpp/HybridTgfxSlotsFactory.hpp +37 -0
  28. package/cpp/IdleGate.hpp +46 -0
  29. package/cpp/ImageRegistry.cpp +306 -0
  30. package/cpp/ImageRegistry.hpp +120 -0
  31. package/cpp/Log.hpp +18 -0
  32. package/cpp/SceneHash.hpp +55 -0
  33. package/cpp/SceneStrings.hpp +45 -0
  34. package/cpp/Snapshot.hpp +110 -0
  35. package/cpp/SvgPath.cpp +315 -0
  36. package/cpp/SvgPath.hpp +13 -0
  37. package/cpp/TextLayout.cpp +568 -0
  38. package/cpp/TextLayout.hpp +102 -0
  39. package/cpp/TgfxFrameSink.cpp +46 -0
  40. package/cpp/TgfxFrameSink.hpp +29 -0
  41. package/cpp/TgfxRenderer.cpp +439 -0
  42. package/cpp/TgfxRenderer.hpp +125 -0
  43. package/cpp/TgfxScene.cpp +1119 -0
  44. package/cpp/TgfxScene.hpp +207 -0
  45. package/cpp/Trace.hpp +26 -0
  46. package/cpp/third_party/tgfx/CMakeLists.txt +909 -0
  47. package/cpp/third_party/tgfx/DEPS +123 -0
  48. package/cpp/third_party/tgfx/LICENSE.txt +825 -0
  49. package/cpp/third_party/tgfx/README.md +488 -0
  50. package/cpp/third_party/tgfx/android/.idea/fileTemplates/includes/TGFX File Header.h +17 -0
  51. package/cpp/third_party/tgfx/android/.idea/misc.xml +14 -0
  52. package/cpp/third_party/tgfx/android/app/CMakeLists.txt +25 -0
  53. package/cpp/third_party/tgfx/android/app/build.gradle.kts +84 -0
  54. package/cpp/third_party/tgfx/android/app/proguard-rules.pro +21 -0
  55. package/cpp/third_party/tgfx/android/app/src/androidTest/java/org/tgfx/hello/ExampleInstrumentedTest.kt +24 -0
  56. package/cpp/third_party/tgfx/android/app/src/main/AndroidManifest.xml +24 -0
  57. package/cpp/third_party/tgfx/android/app/src/main/cpp/JNIHelper.cpp +29 -0
  58. package/cpp/third_party/tgfx/android/app/src/main/cpp/JTGFXView.cpp +251 -0
  59. package/cpp/third_party/tgfx/android/app/src/main/cpp/JTGFXView.h +66 -0
  60. package/cpp/third_party/tgfx/android/app/src/main/ic_launcher-playstore.png +0 -0
  61. package/cpp/third_party/tgfx/android/app/src/main/java/org/tgfx/hello2d/MainActivity.kt +100 -0
  62. package/cpp/third_party/tgfx/android/app/src/main/java/org/tgfx/hello2d/TGFXView.kt +176 -0
  63. package/cpp/third_party/tgfx/android/app/src/main/res/drawable/ic_launcher_background.xml +74 -0
  64. package/cpp/third_party/tgfx/android/app/src/main/res/layout/activity_main.xml +12 -0
  65. package/cpp/third_party/tgfx/android/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml +5 -0
  66. package/cpp/third_party/tgfx/android/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml +5 -0
  67. package/cpp/third_party/tgfx/android/app/src/main/res/mipmap-hdpi/ic_launcher.webp +0 -0
  68. package/cpp/third_party/tgfx/android/app/src/main/res/mipmap-hdpi/ic_launcher_foreground.webp +0 -0
  69. package/cpp/third_party/tgfx/android/app/src/main/res/mipmap-hdpi/ic_launcher_round.webp +0 -0
  70. package/cpp/third_party/tgfx/android/app/src/main/res/mipmap-mdpi/ic_launcher.webp +0 -0
  71. package/cpp/third_party/tgfx/android/app/src/main/res/mipmap-mdpi/ic_launcher_foreground.webp +0 -0
  72. package/cpp/third_party/tgfx/android/app/src/main/res/mipmap-mdpi/ic_launcher_round.webp +0 -0
  73. package/cpp/third_party/tgfx/android/app/src/main/res/mipmap-xhdpi/ic_launcher.webp +0 -0
  74. package/cpp/third_party/tgfx/android/app/src/main/res/mipmap-xhdpi/ic_launcher_foreground.webp +0 -0
  75. package/cpp/third_party/tgfx/android/app/src/main/res/mipmap-xhdpi/ic_launcher_round.webp +0 -0
  76. package/cpp/third_party/tgfx/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.webp +0 -0
  77. package/cpp/third_party/tgfx/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_foreground.webp +0 -0
  78. package/cpp/third_party/tgfx/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.webp +0 -0
  79. package/cpp/third_party/tgfx/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.webp +0 -0
  80. package/cpp/third_party/tgfx/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_foreground.webp +0 -0
  81. package/cpp/third_party/tgfx/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp +0 -0
  82. package/cpp/third_party/tgfx/android/app/src/main/res/values/colors.xml +10 -0
  83. package/cpp/third_party/tgfx/android/app/src/main/res/values/strings.xml +3 -0
  84. package/cpp/third_party/tgfx/android/app/src/main/res/values/themes.xml +5 -0
  85. package/cpp/third_party/tgfx/android/app/src/main/res/xml/backup_rules.xml +13 -0
  86. package/cpp/third_party/tgfx/android/app/src/main/res/xml/data_extraction_rules.xml +19 -0
  87. package/cpp/third_party/tgfx/android/app/src/test/java/io/pag/tgfxdemo/ExampleUnitTest.kt +17 -0
  88. package/cpp/third_party/tgfx/android/build.gradle.kts +5 -0
  89. package/cpp/third_party/tgfx/android/gradle/wrapper/gradle-wrapper.jar +0 -0
  90. package/cpp/third_party/tgfx/android/gradle/wrapper/gradle-wrapper.properties +7 -0
  91. package/cpp/third_party/tgfx/android/gradle.properties +24 -0
  92. package/cpp/third_party/tgfx/android/gradlew +252 -0
  93. package/cpp/third_party/tgfx/android/gradlew.bat +94 -0
  94. package/cpp/third_party/tgfx/android/settings.gradle.kts +17 -0
  95. package/cpp/third_party/tgfx/include/tgfx/core/AlphaType.h +43 -0
  96. package/cpp/third_party/tgfx/include/tgfx/core/Bitmap.h +249 -0
  97. package/cpp/third_party/tgfx/include/tgfx/core/BlendMode.h +148 -0
  98. package/cpp/third_party/tgfx/include/tgfx/core/Brush.h +92 -0
  99. package/cpp/third_party/tgfx/include/tgfx/core/Buffer.h +144 -0
  100. package/cpp/third_party/tgfx/include/tgfx/core/BytesKey.h +117 -0
  101. package/cpp/third_party/tgfx/include/tgfx/core/Canvas.h +557 -0
  102. package/cpp/third_party/tgfx/include/tgfx/core/Clock.h +72 -0
  103. package/cpp/third_party/tgfx/include/tgfx/core/Color.h +232 -0
  104. package/cpp/third_party/tgfx/include/tgfx/core/ColorFilter.h +137 -0
  105. package/cpp/third_party/tgfx/include/tgfx/core/ColorSpace.h +491 -0
  106. package/cpp/third_party/tgfx/include/tgfx/core/ColorType.h +72 -0
  107. package/cpp/third_party/tgfx/include/tgfx/core/CustomTypeface.h +174 -0
  108. package/cpp/third_party/tgfx/include/tgfx/core/Data.h +118 -0
  109. package/cpp/third_party/tgfx/include/tgfx/core/DataView.h +260 -0
  110. package/cpp/third_party/tgfx/include/tgfx/core/EncodedFormat.h +28 -0
  111. package/cpp/third_party/tgfx/include/tgfx/core/Font.h +176 -0
  112. package/cpp/third_party/tgfx/include/tgfx/core/FontMetrics.h +69 -0
  113. package/cpp/third_party/tgfx/include/tgfx/core/FontStyle.h +125 -0
  114. package/cpp/third_party/tgfx/include/tgfx/core/GlyphRun.h +91 -0
  115. package/cpp/third_party/tgfx/include/tgfx/core/GradientType.h +52 -0
  116. package/cpp/third_party/tgfx/include/tgfx/core/Image.h +387 -0
  117. package/cpp/third_party/tgfx/include/tgfx/core/ImageBuffer.h +129 -0
  118. package/cpp/third_party/tgfx/include/tgfx/core/ImageCodec.h +136 -0
  119. package/cpp/third_party/tgfx/include/tgfx/core/ImageFilter.h +196 -0
  120. package/cpp/third_party/tgfx/include/tgfx/core/ImageGenerator.h +100 -0
  121. package/cpp/third_party/tgfx/include/tgfx/core/ImageInfo.h +215 -0
  122. package/cpp/third_party/tgfx/include/tgfx/core/MapDirection.h +39 -0
  123. package/cpp/third_party/tgfx/include/tgfx/core/MaskFilter.h +67 -0
  124. package/cpp/third_party/tgfx/include/tgfx/core/Matrix.h +1025 -0
  125. package/cpp/third_party/tgfx/include/tgfx/core/Matrix3D.h +395 -0
  126. package/cpp/third_party/tgfx/include/tgfx/core/Mesh.h +93 -0
  127. package/cpp/third_party/tgfx/include/tgfx/core/Orientation.h +74 -0
  128. package/cpp/third_party/tgfx/include/tgfx/core/Paint.h +266 -0
  129. package/cpp/third_party/tgfx/include/tgfx/core/Path.h +500 -0
  130. package/cpp/third_party/tgfx/include/tgfx/core/PathEffect.h +79 -0
  131. package/cpp/third_party/tgfx/include/tgfx/core/PathMeasure.h +70 -0
  132. package/cpp/third_party/tgfx/include/tgfx/core/PathProvider.h +57 -0
  133. package/cpp/third_party/tgfx/include/tgfx/core/PathTypes.h +124 -0
  134. package/cpp/third_party/tgfx/include/tgfx/core/Picture.h +115 -0
  135. package/cpp/third_party/tgfx/include/tgfx/core/PictureRecorder.h +59 -0
  136. package/cpp/third_party/tgfx/include/tgfx/core/Pixmap.h +226 -0
  137. package/cpp/third_party/tgfx/include/tgfx/core/Point.h +199 -0
  138. package/cpp/third_party/tgfx/include/tgfx/core/RRect.h +182 -0
  139. package/cpp/third_party/tgfx/include/tgfx/core/RSXform.h +118 -0
  140. package/cpp/third_party/tgfx/include/tgfx/core/Rect.h +504 -0
  141. package/cpp/third_party/tgfx/include/tgfx/core/RenderFlags.h +41 -0
  142. package/cpp/third_party/tgfx/include/tgfx/core/SamplingOptions.h +50 -0
  143. package/cpp/third_party/tgfx/include/tgfx/core/Shader.h +272 -0
  144. package/cpp/third_party/tgfx/include/tgfx/core/Shape.h +210 -0
  145. package/cpp/third_party/tgfx/include/tgfx/core/Size.h +204 -0
  146. package/cpp/third_party/tgfx/include/tgfx/core/SrcRectConstraint.h +37 -0
  147. package/cpp/third_party/tgfx/include/tgfx/core/Stream.h +109 -0
  148. package/cpp/third_party/tgfx/include/tgfx/core/Stroke.h +118 -0
  149. package/cpp/third_party/tgfx/include/tgfx/core/Surface.h +227 -0
  150. package/cpp/third_party/tgfx/include/tgfx/core/SurfaceReadback.h +93 -0
  151. package/cpp/third_party/tgfx/include/tgfx/core/Task.h +152 -0
  152. package/cpp/third_party/tgfx/include/tgfx/core/TextBlob.h +162 -0
  153. package/cpp/third_party/tgfx/include/tgfx/core/TextBlobBuilder.h +141 -0
  154. package/cpp/third_party/tgfx/include/tgfx/core/TileMode.h +47 -0
  155. package/cpp/third_party/tgfx/include/tgfx/core/Typeface.h +203 -0
  156. package/cpp/third_party/tgfx/include/tgfx/core/UTF.h +52 -0
  157. package/cpp/third_party/tgfx/include/tgfx/core/Vec.h +525 -0
  158. package/cpp/third_party/tgfx/include/tgfx/core/WriteStream.h +146 -0
  159. package/cpp/third_party/tgfx/include/tgfx/core/YUVColorSpace.h +62 -0
  160. package/cpp/third_party/tgfx/include/tgfx/core/YUVData.h +92 -0
  161. package/cpp/third_party/tgfx/include/tgfx/gpu/Attribute.h +90 -0
  162. package/cpp/third_party/tgfx/include/tgfx/gpu/Backend.h +352 -0
  163. package/cpp/third_party/tgfx/include/tgfx/gpu/BlendFactor.h +101 -0
  164. package/cpp/third_party/tgfx/include/tgfx/gpu/BlendOperation.h +57 -0
  165. package/cpp/third_party/tgfx/include/tgfx/gpu/ColorWriteMask.h +54 -0
  166. package/cpp/third_party/tgfx/include/tgfx/gpu/CommandBuffer.h +31 -0
  167. package/cpp/third_party/tgfx/include/tgfx/gpu/CommandEncoder.h +100 -0
  168. package/cpp/third_party/tgfx/include/tgfx/gpu/CommandQueue.h +105 -0
  169. package/cpp/third_party/tgfx/include/tgfx/gpu/CompareFunction.h +67 -0
  170. package/cpp/third_party/tgfx/include/tgfx/gpu/Context.h +222 -0
  171. package/cpp/third_party/tgfx/include/tgfx/gpu/Device.h +79 -0
  172. package/cpp/third_party/tgfx/include/tgfx/gpu/FilterMode.h +36 -0
  173. package/cpp/third_party/tgfx/include/tgfx/gpu/GPU.h +162 -0
  174. package/cpp/third_party/tgfx/include/tgfx/gpu/GPUBuffer.h +122 -0
  175. package/cpp/third_party/tgfx/include/tgfx/gpu/GPUFeatures.h +51 -0
  176. package/cpp/third_party/tgfx/include/tgfx/gpu/GPUInfo.h +56 -0
  177. package/cpp/third_party/tgfx/include/tgfx/gpu/GPULimits.h +55 -0
  178. package/cpp/third_party/tgfx/include/tgfx/gpu/ImageOrigin.h +41 -0
  179. package/cpp/third_party/tgfx/include/tgfx/gpu/MipmapMode.h +39 -0
  180. package/cpp/third_party/tgfx/include/tgfx/gpu/PixelFormat.h +61 -0
  181. package/cpp/third_party/tgfx/include/tgfx/gpu/Recording.h +44 -0
  182. package/cpp/third_party/tgfx/include/tgfx/gpu/RenderPass.h +363 -0
  183. package/cpp/third_party/tgfx/include/tgfx/gpu/RenderPipeline.h +440 -0
  184. package/cpp/third_party/tgfx/include/tgfx/gpu/RuntimeEffect.h +74 -0
  185. package/cpp/third_party/tgfx/include/tgfx/gpu/Sampler.h +108 -0
  186. package/cpp/third_party/tgfx/include/tgfx/gpu/Semaphore.h +37 -0
  187. package/cpp/third_party/tgfx/include/tgfx/gpu/ShaderModule.h +50 -0
  188. package/cpp/third_party/tgfx/include/tgfx/gpu/ShaderStage.h +36 -0
  189. package/cpp/third_party/tgfx/include/tgfx/gpu/ShaderVisibility.h +46 -0
  190. package/cpp/third_party/tgfx/include/tgfx/gpu/StencilOperation.h +74 -0
  191. package/cpp/third_party/tgfx/include/tgfx/gpu/Texture.h +183 -0
  192. package/cpp/third_party/tgfx/include/tgfx/gpu/Window.h +75 -0
  193. package/cpp/third_party/tgfx/include/tgfx/gpu/metal/MetalDevice.h +56 -0
  194. package/cpp/third_party/tgfx/include/tgfx/gpu/metal/MetalTypes.h +53 -0
  195. package/cpp/third_party/tgfx/include/tgfx/gpu/metal/MetalWindow.h +66 -0
  196. package/cpp/third_party/tgfx/include/tgfx/gpu/opengl/GLDevice.h +78 -0
  197. package/cpp/third_party/tgfx/include/tgfx/gpu/opengl/GLTypes.h +64 -0
  198. package/cpp/third_party/tgfx/include/tgfx/gpu/opengl/cgl/CGLDevice.h +57 -0
  199. package/cpp/third_party/tgfx/include/tgfx/gpu/opengl/cgl/CGLWindow.h +45 -0
  200. package/cpp/third_party/tgfx/include/tgfx/gpu/opengl/eagl/EAGLDevice.h +63 -0
  201. package/cpp/third_party/tgfx/include/tgfx/gpu/opengl/eagl/EAGLWindow.h +47 -0
  202. package/cpp/third_party/tgfx/include/tgfx/gpu/opengl/egl/EGLDevice.h +89 -0
  203. package/cpp/third_party/tgfx/include/tgfx/gpu/opengl/egl/EGLGlobals.h +53 -0
  204. package/cpp/third_party/tgfx/include/tgfx/gpu/opengl/egl/EGLWindow.h +59 -0
  205. package/cpp/third_party/tgfx/include/tgfx/gpu/opengl/qt/QGLDevice.h +88 -0
  206. package/cpp/third_party/tgfx/include/tgfx/gpu/opengl/qt/QGLWindow.h +92 -0
  207. package/cpp/third_party/tgfx/include/tgfx/gpu/opengl/webgl/WebGLDevice.h +54 -0
  208. package/cpp/third_party/tgfx/include/tgfx/gpu/opengl/webgl/WebGLWindow.h +42 -0
  209. package/cpp/third_party/tgfx/include/tgfx/gpu/opengl/wgl/WGLDevice.h +62 -0
  210. package/cpp/third_party/tgfx/include/tgfx/gpu/opengl/wgl/WGLWindow.h +43 -0
  211. package/cpp/third_party/tgfx/include/tgfx/gpu/vulkan/VulkanDevice.h +62 -0
  212. package/cpp/third_party/tgfx/include/tgfx/gpu/vulkan/VulkanTypes.h +69 -0
  213. package/cpp/third_party/tgfx/include/tgfx/gpu/vulkan/VulkanWindow.h +103 -0
  214. package/cpp/third_party/tgfx/include/tgfx/gpu/webgpu/WebGPUDevice.h +60 -0
  215. package/cpp/third_party/tgfx/include/tgfx/gpu/webgpu/WebGPUTypes.h +55 -0
  216. package/cpp/third_party/tgfx/include/tgfx/gpu/webgpu/WebGPUWindow.h +55 -0
  217. package/cpp/third_party/tgfx/include/tgfx/layers/DisplayList.h +407 -0
  218. package/cpp/third_party/tgfx/include/tgfx/layers/ImageLayer.h +74 -0
  219. package/cpp/third_party/tgfx/include/tgfx/layers/Layer.h +789 -0
  220. package/cpp/third_party/tgfx/include/tgfx/layers/LayerMaskType.h +39 -0
  221. package/cpp/third_party/tgfx/include/tgfx/layers/LayerPaint.h +119 -0
  222. package/cpp/third_party/tgfx/include/tgfx/layers/LayerProperty.h +66 -0
  223. package/cpp/third_party/tgfx/include/tgfx/layers/LayerRecorder.h +143 -0
  224. package/cpp/third_party/tgfx/include/tgfx/layers/LayerType.h +55 -0
  225. package/cpp/third_party/tgfx/include/tgfx/layers/MeshLayer.h +95 -0
  226. package/cpp/third_party/tgfx/include/tgfx/layers/ShapeLayer.h +265 -0
  227. package/cpp/third_party/tgfx/include/tgfx/layers/ShapeStyle.h +92 -0
  228. package/cpp/third_party/tgfx/include/tgfx/layers/SolidLayer.h +114 -0
  229. package/cpp/third_party/tgfx/include/tgfx/layers/StrokeAlign.h +39 -0
  230. package/cpp/third_party/tgfx/include/tgfx/layers/TextAlign.h +47 -0
  231. package/cpp/third_party/tgfx/include/tgfx/layers/TextLayer.h +166 -0
  232. package/cpp/third_party/tgfx/include/tgfx/layers/VectorLayer.h +72 -0
  233. package/cpp/third_party/tgfx/include/tgfx/layers/filters/BlendFilter.h +76 -0
  234. package/cpp/third_party/tgfx/include/tgfx/layers/filters/BlurFilter.h +90 -0
  235. package/cpp/third_party/tgfx/include/tgfx/layers/filters/ColorMatrixFilter.h +79 -0
  236. package/cpp/third_party/tgfx/include/tgfx/layers/filters/DropShadowFilter.h +132 -0
  237. package/cpp/third_party/tgfx/include/tgfx/layers/filters/InnerShadowFilter.h +133 -0
  238. package/cpp/third_party/tgfx/include/tgfx/layers/filters/LayerFilter.h +101 -0
  239. package/cpp/third_party/tgfx/include/tgfx/layers/filters/LayerImageFilter.h +55 -0
  240. package/cpp/third_party/tgfx/include/tgfx/layers/filters/NoiseFilter.h +285 -0
  241. package/cpp/third_party/tgfx/include/tgfx/layers/layerstyles/BackgroundBlurStyle.h +106 -0
  242. package/cpp/third_party/tgfx/include/tgfx/layers/layerstyles/DropShadowStyle.h +165 -0
  243. package/cpp/third_party/tgfx/include/tgfx/layers/layerstyles/GlassStyle.h +168 -0
  244. package/cpp/third_party/tgfx/include/tgfx/layers/layerstyles/InnerShadowStyle.h +149 -0
  245. package/cpp/third_party/tgfx/include/tgfx/layers/layerstyles/LayerStyle.h +166 -0
  246. package/cpp/third_party/tgfx/include/tgfx/layers/layerstyles/LayerStyleInput.h +139 -0
  247. package/cpp/third_party/tgfx/include/tgfx/layers/layerstyles/NoiseStyle.h +241 -0
  248. package/cpp/third_party/tgfx/include/tgfx/layers/layerstyles/StyledShape.h +84 -0
  249. package/cpp/third_party/tgfx/include/tgfx/layers/vectors/ColorSource.h +64 -0
  250. package/cpp/third_party/tgfx/include/tgfx/layers/vectors/Ellipse.h +91 -0
  251. package/cpp/third_party/tgfx/include/tgfx/layers/vectors/FillStyle.h +135 -0
  252. package/cpp/third_party/tgfx/include/tgfx/layers/vectors/Gradient.h +418 -0
  253. package/cpp/third_party/tgfx/include/tgfx/layers/vectors/ImagePattern.h +160 -0
  254. package/cpp/third_party/tgfx/include/tgfx/layers/vectors/MergePath.h +87 -0
  255. package/cpp/third_party/tgfx/include/tgfx/layers/vectors/Polystar.h +182 -0
  256. package/cpp/third_party/tgfx/include/tgfx/layers/vectors/Rectangle.h +118 -0
  257. package/cpp/third_party/tgfx/include/tgfx/layers/vectors/Repeater.h +184 -0
  258. package/cpp/third_party/tgfx/include/tgfx/layers/vectors/RoundCorner.h +65 -0
  259. package/cpp/third_party/tgfx/include/tgfx/layers/vectors/ScaleMode.h +54 -0
  260. package/cpp/third_party/tgfx/include/tgfx/layers/vectors/ShapePath.h +91 -0
  261. package/cpp/third_party/tgfx/include/tgfx/layers/vectors/SolidColor.h +71 -0
  262. package/cpp/third_party/tgfx/include/tgfx/layers/vectors/StrokeStyle.h +216 -0
  263. package/cpp/third_party/tgfx/include/tgfx/layers/vectors/Text.h +97 -0
  264. package/cpp/third_party/tgfx/include/tgfx/layers/vectors/TextModifier.h +215 -0
  265. package/cpp/third_party/tgfx/include/tgfx/layers/vectors/TextPath.h +165 -0
  266. package/cpp/third_party/tgfx/include/tgfx/layers/vectors/TextSelector.h +289 -0
  267. package/cpp/third_party/tgfx/include/tgfx/layers/vectors/TrimPath.h +117 -0
  268. package/cpp/third_party/tgfx/include/tgfx/layers/vectors/VectorElement.h +81 -0
  269. package/cpp/third_party/tgfx/include/tgfx/layers/vectors/VectorGroup.h +171 -0
  270. package/cpp/third_party/tgfx/include/tgfx/pdf/PDFDocument.h +75 -0
  271. package/cpp/third_party/tgfx/include/tgfx/pdf/PDFMetadata.h +252 -0
  272. package/cpp/third_party/tgfx/include/tgfx/platform/HardwareBuffer.h +158 -0
  273. package/cpp/third_party/tgfx/include/tgfx/platform/ImageReader.h +92 -0
  274. package/cpp/third_party/tgfx/include/tgfx/platform/NativeImage.h +53 -0
  275. package/cpp/third_party/tgfx/include/tgfx/platform/Print.h +31 -0
  276. package/cpp/third_party/tgfx/include/tgfx/platform/android/AndroidBitmap.h +56 -0
  277. package/cpp/third_party/tgfx/include/tgfx/platform/android/Global.h +82 -0
  278. package/cpp/third_party/tgfx/include/tgfx/platform/android/HardwareBufferJNI.h +37 -0
  279. package/cpp/third_party/tgfx/include/tgfx/platform/android/JNIEnvironment.h +67 -0
  280. package/cpp/third_party/tgfx/include/tgfx/platform/android/SurfaceTextureReader.h +58 -0
  281. package/cpp/third_party/tgfx/include/tgfx/platform/apple/CTTypeface.h +43 -0
  282. package/cpp/third_party/tgfx/include/tgfx/platform/ohos/OHOSPixelMap.h +42 -0
  283. package/cpp/third_party/tgfx/include/tgfx/platform/web/VideoElementReader.h +40 -0
  284. package/cpp/third_party/tgfx/include/tgfx/svg/SVGAttribute.h +122 -0
  285. package/cpp/third_party/tgfx/include/tgfx/svg/SVGCustomParser.h +42 -0
  286. package/cpp/third_party/tgfx/include/tgfx/svg/SVGCustomWriter.h +59 -0
  287. package/cpp/third_party/tgfx/include/tgfx/svg/SVGDOM.h +108 -0
  288. package/cpp/third_party/tgfx/include/tgfx/svg/SVGExporter.h +150 -0
  289. package/cpp/third_party/tgfx/include/tgfx/svg/SVGLengthContext.h +109 -0
  290. package/cpp/third_party/tgfx/include/tgfx/svg/SVGPathParser.h +55 -0
  291. package/cpp/third_party/tgfx/include/tgfx/svg/SVGTypes.h +939 -0
  292. package/cpp/third_party/tgfx/include/tgfx/svg/SVGValue.h +95 -0
  293. package/cpp/third_party/tgfx/include/tgfx/svg/TextShaper.h +53 -0
  294. package/cpp/third_party/tgfx/include/tgfx/svg/node/SVGCircle.h +65 -0
  295. package/cpp/third_party/tgfx/include/tgfx/svg/node/SVGClipPath.h +51 -0
  296. package/cpp/third_party/tgfx/include/tgfx/svg/node/SVGContainer.h +61 -0
  297. package/cpp/third_party/tgfx/include/tgfx/svg/node/SVGDefs.h +39 -0
  298. package/cpp/third_party/tgfx/include/tgfx/svg/node/SVGEllipse.h +63 -0
  299. package/cpp/third_party/tgfx/include/tgfx/svg/node/SVGFe.h +104 -0
  300. package/cpp/third_party/tgfx/include/tgfx/svg/node/SVGFeBlend.h +64 -0
  301. package/cpp/third_party/tgfx/include/tgfx/svg/node/SVGFeColorMatrix.h +67 -0
  302. package/cpp/third_party/tgfx/include/tgfx/svg/node/SVGFeComponentTransfer.h +95 -0
  303. package/cpp/third_party/tgfx/include/tgfx/svg/node/SVGFeComposite.h +61 -0
  304. package/cpp/third_party/tgfx/include/tgfx/svg/node/SVGFeDisplacementMap.h +70 -0
  305. package/cpp/third_party/tgfx/include/tgfx/svg/node/SVGFeFlood.h +56 -0
  306. package/cpp/third_party/tgfx/include/tgfx/svg/node/SVGFeGaussianBlur.h +62 -0
  307. package/cpp/third_party/tgfx/include/tgfx/svg/node/SVGFeImage.h +58 -0
  308. package/cpp/third_party/tgfx/include/tgfx/svg/node/SVGFeLightSource.h +105 -0
  309. package/cpp/third_party/tgfx/include/tgfx/svg/node/SVGFeLighting.h +100 -0
  310. package/cpp/third_party/tgfx/include/tgfx/svg/node/SVGFeMerge.h +71 -0
  311. package/cpp/third_party/tgfx/include/tgfx/svg/node/SVGFeMorphology.h +65 -0
  312. package/cpp/third_party/tgfx/include/tgfx/svg/node/SVGFeOffset.h +58 -0
  313. package/cpp/third_party/tgfx/include/tgfx/svg/node/SVGFeTurbulence.h +59 -0
  314. package/cpp/third_party/tgfx/include/tgfx/svg/node/SVGFilter.h +64 -0
  315. package/cpp/third_party/tgfx/include/tgfx/svg/node/SVGGradient.h +61 -0
  316. package/cpp/third_party/tgfx/include/tgfx/svg/node/SVGGroup.h +37 -0
  317. package/cpp/third_party/tgfx/include/tgfx/svg/node/SVGHiddenContainer.h +37 -0
  318. package/cpp/third_party/tgfx/include/tgfx/svg/node/SVGImage.h +75 -0
  319. package/cpp/third_party/tgfx/include/tgfx/svg/node/SVGLine.h +63 -0
  320. package/cpp/third_party/tgfx/include/tgfx/svg/node/SVGLinearGradient.h +53 -0
  321. package/cpp/third_party/tgfx/include/tgfx/svg/node/SVGMask.h +60 -0
  322. package/cpp/third_party/tgfx/include/tgfx/svg/node/SVGNode.h +302 -0
  323. package/cpp/third_party/tgfx/include/tgfx/svg/node/SVGPath.h +56 -0
  324. package/cpp/third_party/tgfx/include/tgfx/svg/node/SVGPattern.h +68 -0
  325. package/cpp/third_party/tgfx/include/tgfx/svg/node/SVGPoly.h +64 -0
  326. package/cpp/third_party/tgfx/include/tgfx/svg/node/SVGRadialGradient.h +55 -0
  327. package/cpp/third_party/tgfx/include/tgfx/svg/node/SVGRect.h +67 -0
  328. package/cpp/third_party/tgfx/include/tgfx/svg/node/SVGRoot.h +69 -0
  329. package/cpp/third_party/tgfx/include/tgfx/svg/node/SVGShape.h +54 -0
  330. package/cpp/third_party/tgfx/include/tgfx/svg/node/SVGStop.h +47 -0
  331. package/cpp/third_party/tgfx/include/tgfx/svg/node/SVGText.h +158 -0
  332. package/cpp/third_party/tgfx/include/tgfx/svg/node/SVGTransformableNode.h +58 -0
  333. package/cpp/third_party/tgfx/include/tgfx/svg/node/SVGUse.h +61 -0
  334. package/cpp/third_party/tgfx/include/tgfx/svg/xml/XMLDOM.h +115 -0
  335. package/cpp/third_party/tgfx/ios/gen_ios +18 -0
  336. package/cpp/third_party/tgfx/ios/gen_simulator +18 -0
  337. package/cpp/third_party/tgfx/ios/metal/Hello2D/AppDelegate.h +23 -0
  338. package/cpp/third_party/tgfx/ios/metal/Hello2D/AppDelegate.m +52 -0
  339. package/cpp/third_party/tgfx/ios/metal/Hello2D/Assets.xcassets/AccentColor.colorset/Contents.json +11 -0
  340. package/cpp/third_party/tgfx/ios/metal/Hello2D/Assets.xcassets/AppIcon.appiconset/Contents.json +14 -0
  341. package/cpp/third_party/tgfx/ios/metal/Hello2D/Assets.xcassets/AppIcon.appiconset/tgfx.png +0 -0
  342. package/cpp/third_party/tgfx/ios/metal/Hello2D/Assets.xcassets/Contents.json +6 -0
  343. package/cpp/third_party/tgfx/ios/metal/Hello2D/Base.lproj/LaunchScreen.storyboard +25 -0
  344. package/cpp/third_party/tgfx/ios/metal/Hello2D/Base.lproj/Main.storyboard +48 -0
  345. package/cpp/third_party/tgfx/ios/metal/Hello2D/Info.plist +25 -0
  346. package/cpp/third_party/tgfx/ios/metal/Hello2D/SceneDelegate.h +25 -0
  347. package/cpp/third_party/tgfx/ios/metal/Hello2D/SceneDelegate.m +66 -0
  348. package/cpp/third_party/tgfx/ios/metal/Hello2D/TGFXView.h +31 -0
  349. package/cpp/third_party/tgfx/ios/metal/Hello2D/TGFXView.mm +187 -0
  350. package/cpp/third_party/tgfx/ios/metal/Hello2D/ViewController.h +23 -0
  351. package/cpp/third_party/tgfx/ios/metal/Hello2D/ViewController.mm +165 -0
  352. package/cpp/third_party/tgfx/ios/metal/Hello2D/main.m +29 -0
  353. package/cpp/third_party/tgfx/ios/metal/Hello2D.xcodeproj/project.pbxproj +441 -0
  354. package/cpp/third_party/tgfx/ios/opengl/Hello2D/AppDelegate.h +23 -0
  355. package/cpp/third_party/tgfx/ios/opengl/Hello2D/AppDelegate.m +52 -0
  356. package/cpp/third_party/tgfx/ios/opengl/Hello2D/Assets.xcassets/AccentColor.colorset/Contents.json +11 -0
  357. package/cpp/third_party/tgfx/ios/opengl/Hello2D/Assets.xcassets/AppIcon.appiconset/Contents.json +14 -0
  358. package/cpp/third_party/tgfx/ios/opengl/Hello2D/Assets.xcassets/AppIcon.appiconset/tgfx.png +0 -0
  359. package/cpp/third_party/tgfx/ios/opengl/Hello2D/Assets.xcassets/Contents.json +6 -0
  360. package/cpp/third_party/tgfx/ios/opengl/Hello2D/Base.lproj/LaunchScreen.storyboard +25 -0
  361. package/cpp/third_party/tgfx/ios/opengl/Hello2D/Base.lproj/Main.storyboard +48 -0
  362. package/cpp/third_party/tgfx/ios/opengl/Hello2D/Info.plist +25 -0
  363. package/cpp/third_party/tgfx/ios/opengl/Hello2D/SceneDelegate.h +25 -0
  364. package/cpp/third_party/tgfx/ios/opengl/Hello2D/SceneDelegate.m +66 -0
  365. package/cpp/third_party/tgfx/ios/opengl/Hello2D/TGFXView.h +31 -0
  366. package/cpp/third_party/tgfx/ios/opengl/Hello2D/TGFXView.mm +181 -0
  367. package/cpp/third_party/tgfx/ios/opengl/Hello2D/ViewController.h +23 -0
  368. package/cpp/third_party/tgfx/ios/opengl/Hello2D/ViewController.mm +165 -0
  369. package/cpp/third_party/tgfx/ios/opengl/Hello2D/main.m +29 -0
  370. package/cpp/third_party/tgfx/ios/opengl/Hello2D.xcodeproj/project.pbxproj +442 -0
  371. package/cpp/third_party/tgfx/mac/gen_mac +18 -0
  372. package/cpp/third_party/tgfx/mac/metal/Hello2D/AppDelegate.h +23 -0
  373. package/cpp/third_party/tgfx/mac/metal/Hello2D/AppDelegate.m +35 -0
  374. package/cpp/third_party/tgfx/mac/metal/Hello2D/Assets.xcassets/AppIcon.appiconset/1024.png +0 -0
  375. package/cpp/third_party/tgfx/mac/metal/Hello2D/Assets.xcassets/AppIcon.appiconset/128.png +0 -0
  376. package/cpp/third_party/tgfx/mac/metal/Hello2D/Assets.xcassets/AppIcon.appiconset/16.png +0 -0
  377. package/cpp/third_party/tgfx/mac/metal/Hello2D/Assets.xcassets/AppIcon.appiconset/256.png +0 -0
  378. package/cpp/third_party/tgfx/mac/metal/Hello2D/Assets.xcassets/AppIcon.appiconset/32.png +0 -0
  379. package/cpp/third_party/tgfx/mac/metal/Hello2D/Assets.xcassets/AppIcon.appiconset/512.png +0 -0
  380. package/cpp/third_party/tgfx/mac/metal/Hello2D/Assets.xcassets/AppIcon.appiconset/64.png +0 -0
  381. package/cpp/third_party/tgfx/mac/metal/Hello2D/Assets.xcassets/AppIcon.appiconset/Contents.json +68 -0
  382. package/cpp/third_party/tgfx/mac/metal/Hello2D/Assets.xcassets/Contents.json +6 -0
  383. package/cpp/third_party/tgfx/mac/metal/Hello2D/Base.lproj/Main.storyboard +718 -0
  384. package/cpp/third_party/tgfx/mac/metal/Hello2D/Hello2D.entitlements +10 -0
  385. package/cpp/third_party/tgfx/mac/metal/Hello2D/Info.plist +36 -0
  386. package/cpp/third_party/tgfx/mac/metal/Hello2D/TGFXView.h +37 -0
  387. package/cpp/third_party/tgfx/mac/metal/Hello2D/TGFXView.mm +251 -0
  388. package/cpp/third_party/tgfx/mac/metal/Hello2D/ViewController.h +23 -0
  389. package/cpp/third_party/tgfx/mac/metal/Hello2D/ViewController.mm +60 -0
  390. package/cpp/third_party/tgfx/mac/metal/Hello2D/WindowController.h +27 -0
  391. package/cpp/third_party/tgfx/mac/metal/Hello2D/WindowController.mm +35 -0
  392. package/cpp/third_party/tgfx/mac/metal/Hello2D/main.m +26 -0
  393. package/cpp/third_party/tgfx/mac/metal/Hello2D.xcodeproj/project.pbxproj +405 -0
  394. package/cpp/third_party/tgfx/mac/opengl/Hello2D/AppDelegate.h +23 -0
  395. package/cpp/third_party/tgfx/mac/opengl/Hello2D/AppDelegate.m +35 -0
  396. package/cpp/third_party/tgfx/mac/opengl/Hello2D/Assets.xcassets/AppIcon.appiconset/1024.png +0 -0
  397. package/cpp/third_party/tgfx/mac/opengl/Hello2D/Assets.xcassets/AppIcon.appiconset/128.png +0 -0
  398. package/cpp/third_party/tgfx/mac/opengl/Hello2D/Assets.xcassets/AppIcon.appiconset/16.png +0 -0
  399. package/cpp/third_party/tgfx/mac/opengl/Hello2D/Assets.xcassets/AppIcon.appiconset/256.png +0 -0
  400. package/cpp/third_party/tgfx/mac/opengl/Hello2D/Assets.xcassets/AppIcon.appiconset/32.png +0 -0
  401. package/cpp/third_party/tgfx/mac/opengl/Hello2D/Assets.xcassets/AppIcon.appiconset/512.png +0 -0
  402. package/cpp/third_party/tgfx/mac/opengl/Hello2D/Assets.xcassets/AppIcon.appiconset/64.png +0 -0
  403. package/cpp/third_party/tgfx/mac/opengl/Hello2D/Assets.xcassets/AppIcon.appiconset/Contents.json +68 -0
  404. package/cpp/third_party/tgfx/mac/opengl/Hello2D/Assets.xcassets/Contents.json +6 -0
  405. package/cpp/third_party/tgfx/mac/opengl/Hello2D/Base.lproj/Main.storyboard +718 -0
  406. package/cpp/third_party/tgfx/mac/opengl/Hello2D/Hello2D.entitlements +10 -0
  407. package/cpp/third_party/tgfx/mac/opengl/Hello2D/Info.plist +36 -0
  408. package/cpp/third_party/tgfx/mac/opengl/Hello2D/TGFXView.h +39 -0
  409. package/cpp/third_party/tgfx/mac/opengl/Hello2D/TGFXView.mm +316 -0
  410. package/cpp/third_party/tgfx/mac/opengl/Hello2D/ViewController.h +23 -0
  411. package/cpp/third_party/tgfx/mac/opengl/Hello2D/ViewController.mm +61 -0
  412. package/cpp/third_party/tgfx/mac/opengl/Hello2D/WindowController.h +27 -0
  413. package/cpp/third_party/tgfx/mac/opengl/Hello2D/WindowController.mm +35 -0
  414. package/cpp/third_party/tgfx/mac/opengl/Hello2D/main.m +26 -0
  415. package/cpp/third_party/tgfx/mac/opengl/Hello2D.xcodeproj/project.pbxproj +402 -0
  416. package/cpp/third_party/tgfx/src/core/AdaptiveDashEffect.cpp +245 -0
  417. package/cpp/third_party/tgfx/src/core/AdaptiveDashEffect.h +37 -0
  418. package/cpp/third_party/tgfx/src/core/AdvancedTypefaceInfo.h +86 -0
  419. package/cpp/third_party/tgfx/src/core/Atlas.cpp +262 -0
  420. package/cpp/third_party/tgfx/src/core/Atlas.h +95 -0
  421. package/cpp/third_party/tgfx/src/core/AtlasManager.cpp +99 -0
  422. package/cpp/third_party/tgfx/src/core/AtlasManager.h +60 -0
  423. package/cpp/third_party/tgfx/src/core/AtlasStrikeCache.cpp +108 -0
  424. package/cpp/third_party/tgfx/src/core/AtlasStrikeCache.h +99 -0
  425. package/cpp/third_party/tgfx/src/core/AtlasTypes.cpp +82 -0
  426. package/cpp/third_party/tgfx/src/core/AtlasTypes.h +279 -0
  427. package/cpp/third_party/tgfx/src/core/Bitmap.cpp +131 -0
  428. package/cpp/third_party/tgfx/src/core/BoxFilterDownsample.cpp +449 -0
  429. package/cpp/third_party/tgfx/src/core/BoxFilterDownsample.h +49 -0
  430. package/cpp/third_party/tgfx/src/core/BoxFilterDownsampleSIMD.cpp +416 -0
  431. package/cpp/third_party/tgfx/src/core/BoxFilterDownsampleSIMD.h +40 -0
  432. package/cpp/third_party/tgfx/src/core/Brush.cpp +76 -0
  433. package/cpp/third_party/tgfx/src/core/Canvas.cpp +781 -0
  434. package/cpp/third_party/tgfx/src/core/CanvasState.cpp +30 -0
  435. package/cpp/third_party/tgfx/src/core/CanvasState.h +46 -0
  436. package/cpp/third_party/tgfx/src/core/Checksum.cpp +127 -0
  437. package/cpp/third_party/tgfx/src/core/Checksum.h +35 -0
  438. package/cpp/third_party/tgfx/src/core/ClipStack.cpp +720 -0
  439. package/cpp/third_party/tgfx/src/core/ClipStack.h +252 -0
  440. package/cpp/third_party/tgfx/src/core/Color.cpp +54 -0
  441. package/cpp/third_party/tgfx/src/core/ColorSpace.cpp +836 -0
  442. package/cpp/third_party/tgfx/src/core/ColorSpaceXformSteps.cpp +286 -0
  443. package/cpp/third_party/tgfx/src/core/ColorSpaceXformSteps.h +91 -0
  444. package/cpp/third_party/tgfx/src/core/CustomTypeface.cpp +104 -0
  445. package/cpp/third_party/tgfx/src/core/Data.cpp +95 -0
  446. package/cpp/third_party/tgfx/src/core/DataSource.h +140 -0
  447. package/cpp/third_party/tgfx/src/core/DrawContext.h +114 -0
  448. package/cpp/third_party/tgfx/src/core/Font.cpp +144 -0
  449. package/cpp/third_party/tgfx/src/core/GeometryShape.cpp +202 -0
  450. package/cpp/third_party/tgfx/src/core/GeometryShape.h +136 -0
  451. package/cpp/third_party/tgfx/src/core/GlyphRasterizer.cpp +58 -0
  452. package/cpp/third_party/tgfx/src/core/GlyphRasterizer.h +63 -0
  453. package/cpp/third_party/tgfx/src/core/GlyphTransform.cpp +110 -0
  454. package/cpp/third_party/tgfx/src/core/GlyphTransform.h +57 -0
  455. package/cpp/third_party/tgfx/src/core/GradientGenerator.cpp +78 -0
  456. package/cpp/third_party/tgfx/src/core/GradientGenerator.h +42 -0
  457. package/cpp/third_party/tgfx/src/core/HairlineTriangulator.cpp +569 -0
  458. package/cpp/third_party/tgfx/src/core/HairlineTriangulator.h +52 -0
  459. package/cpp/third_party/tgfx/src/core/ImageBuffer.cpp +95 -0
  460. package/cpp/third_party/tgfx/src/core/ImageCodec.cpp +221 -0
  461. package/cpp/third_party/tgfx/src/core/ImageFilter.cpp +116 -0
  462. package/cpp/third_party/tgfx/src/core/ImageInfo.cpp +118 -0
  463. package/cpp/third_party/tgfx/src/core/ImageSource.cpp +43 -0
  464. package/cpp/third_party/tgfx/src/core/ImageSource.h +48 -0
  465. package/cpp/third_party/tgfx/src/core/ImageUserTypeface.cpp +144 -0
  466. package/cpp/third_party/tgfx/src/core/ImageUserTypeface.h +54 -0
  467. package/cpp/third_party/tgfx/src/core/LayerUnrollContext.cpp +103 -0
  468. package/cpp/third_party/tgfx/src/core/LayerUnrollContext.h +80 -0
  469. package/cpp/third_party/tgfx/src/core/Matrix.cpp +610 -0
  470. package/cpp/third_party/tgfx/src/core/Matrix3D.cpp +469 -0
  471. package/cpp/third_party/tgfx/src/core/Matrix3DUtils.cpp +67 -0
  472. package/cpp/third_party/tgfx/src/core/Matrix3DUtils.h +89 -0
  473. package/cpp/third_party/tgfx/src/core/MatrixSIMD.cpp +350 -0
  474. package/cpp/third_party/tgfx/src/core/MatrixUtils.cpp +45 -0
  475. package/cpp/third_party/tgfx/src/core/MatrixUtils.h +33 -0
  476. package/cpp/third_party/tgfx/src/core/MeasureContext.cpp +131 -0
  477. package/cpp/third_party/tgfx/src/core/MeasureContext.h +72 -0
  478. package/cpp/third_party/tgfx/src/core/Mesh.cpp +44 -0
  479. package/cpp/third_party/tgfx/src/core/MeshBase.h +66 -0
  480. package/cpp/third_party/tgfx/src/core/NoConicsPathIterator.cpp +153 -0
  481. package/cpp/third_party/tgfx/src/core/NoConicsPathIterator.h +91 -0
  482. package/cpp/third_party/tgfx/src/core/Orientation.cpp +49 -0
  483. package/cpp/third_party/tgfx/src/core/Paint.cpp +40 -0
  484. package/cpp/third_party/tgfx/src/core/Path.cpp +716 -0
  485. package/cpp/third_party/tgfx/src/core/PathEffect.cpp +63 -0
  486. package/cpp/third_party/tgfx/src/core/PathMeasure.cpp +76 -0
  487. package/cpp/third_party/tgfx/src/core/PathProvider.cpp +43 -0
  488. package/cpp/third_party/tgfx/src/core/PathRasterizer.cpp +49 -0
  489. package/cpp/third_party/tgfx/src/core/PathRasterizer.h +61 -0
  490. package/cpp/third_party/tgfx/src/core/PathRef.cpp +58 -0
  491. package/cpp/third_party/tgfx/src/core/PathRef.h +59 -0
  492. package/cpp/third_party/tgfx/src/core/PathTriangulator.cpp +89 -0
  493. package/cpp/third_party/tgfx/src/core/PathTriangulator.h +60 -0
  494. package/cpp/third_party/tgfx/src/core/PathUserTypeface.cpp +217 -0
  495. package/cpp/third_party/tgfx/src/core/PathUserTypeface.h +53 -0
  496. package/cpp/third_party/tgfx/src/core/Picture.cpp +260 -0
  497. package/cpp/third_party/tgfx/src/core/PictureContext.cpp +263 -0
  498. package/cpp/third_party/tgfx/src/core/PictureContext.h +92 -0
  499. package/cpp/third_party/tgfx/src/core/PictureRecorder.cpp +51 -0
  500. package/cpp/third_party/tgfx/src/core/PictureRecords.h +419 -0
  501. package/cpp/third_party/tgfx/src/core/PixelBuffer.cpp +158 -0
  502. package/cpp/third_party/tgfx/src/core/PixelBuffer.h +113 -0
  503. package/cpp/third_party/tgfx/src/core/PixelBufferCodec.cpp +46 -0
  504. package/cpp/third_party/tgfx/src/core/PixelBufferCodec.h +43 -0
  505. package/cpp/third_party/tgfx/src/core/PixelRef.cpp +68 -0
  506. package/cpp/third_party/tgfx/src/core/PixelRef.h +111 -0
  507. package/cpp/third_party/tgfx/src/core/Pixmap.cpp +186 -0
  508. package/cpp/third_party/tgfx/src/core/PlaybackContext.cpp +117 -0
  509. package/cpp/third_party/tgfx/src/core/PlaybackContext.h +78 -0
  510. package/cpp/third_party/tgfx/src/core/Point.cpp +28 -0
  511. package/cpp/third_party/tgfx/src/core/RRect.cpp +154 -0
  512. package/cpp/third_party/tgfx/src/core/RRectUtils.cpp +334 -0
  513. package/cpp/third_party/tgfx/src/core/RRectUtils.h +79 -0
  514. package/cpp/third_party/tgfx/src/core/RSXform.cpp +31 -0
  515. package/cpp/third_party/tgfx/src/core/RawPixelCodec.cpp +89 -0
  516. package/cpp/third_party/tgfx/src/core/RawPixelCodec.h +49 -0
  517. package/cpp/third_party/tgfx/src/core/Rect.cpp +68 -0
  518. package/cpp/third_party/tgfx/src/core/RectPackSkyline.cpp +104 -0
  519. package/cpp/third_party/tgfx/src/core/RectPackSkyline.h +67 -0
  520. package/cpp/third_party/tgfx/src/core/RectSIMD.cpp +91 -0
  521. package/cpp/third_party/tgfx/src/core/RunRecord.cpp +76 -0
  522. package/cpp/third_party/tgfx/src/core/RunRecord.h +61 -0
  523. package/cpp/third_party/tgfx/src/core/ScaledImageGenerator.cpp +47 -0
  524. package/cpp/third_party/tgfx/src/core/ScaledImageGenerator.h +46 -0
  525. package/cpp/third_party/tgfx/src/core/ScalerContext.cpp +81 -0
  526. package/cpp/third_party/tgfx/src/core/ScalerContext.h +98 -0
  527. package/cpp/third_party/tgfx/src/core/Shader.cpp +38 -0
  528. package/cpp/third_party/tgfx/src/core/ShapeMesh.cpp +48 -0
  529. package/cpp/third_party/tgfx/src/core/ShapeMesh.h +62 -0
  530. package/cpp/third_party/tgfx/src/core/ShapeRasterizer.cpp +83 -0
  531. package/cpp/third_party/tgfx/src/core/ShapeRasterizer.h +71 -0
  532. package/cpp/third_party/tgfx/src/core/ShapeVertexSource.cpp +57 -0
  533. package/cpp/third_party/tgfx/src/core/ShapeVertexSource.h +42 -0
  534. package/cpp/third_party/tgfx/src/core/StencilCoverPathTessellator.cpp +258 -0
  535. package/cpp/third_party/tgfx/src/core/StencilCoverPathTessellator.h +100 -0
  536. package/cpp/third_party/tgfx/src/core/Stroke.cpp +65 -0
  537. package/cpp/third_party/tgfx/src/core/Surface.cpp +292 -0
  538. package/cpp/third_party/tgfx/src/core/SurfaceReadback.cpp +143 -0
  539. package/cpp/third_party/tgfx/src/core/TextBlob.cpp +330 -0
  540. package/cpp/third_party/tgfx/src/core/TextBlobBuilder.cpp +215 -0
  541. package/cpp/third_party/tgfx/src/core/TrimPathEffect.cpp +188 -0
  542. package/cpp/third_party/tgfx/src/core/TrimPathEffect.h +35 -0
  543. package/cpp/third_party/tgfx/src/core/Typeface.cpp +170 -0
  544. package/cpp/third_party/tgfx/src/core/UserScalerContext.h +66 -0
  545. package/cpp/third_party/tgfx/src/core/UserTypeface.h +95 -0
  546. package/cpp/third_party/tgfx/src/core/Vec.cpp +53 -0
  547. package/cpp/third_party/tgfx/src/core/VecSIMD.cpp +325 -0
  548. package/cpp/third_party/tgfx/src/core/VertexMesh.cpp +111 -0
  549. package/cpp/third_party/tgfx/src/core/VertexMesh.h +107 -0
  550. package/cpp/third_party/tgfx/src/core/YUVColorSpace.cpp +33 -0
  551. package/cpp/third_party/tgfx/src/core/YUVData.cpp +81 -0
  552. package/cpp/third_party/tgfx/src/core/YUVHardwareBuffer.cpp +98 -0
  553. package/cpp/third_party/tgfx/src/core/YUVHardwareBuffer.h +63 -0
  554. package/cpp/third_party/tgfx/src/core/codecs/jpeg/JpegCodec.cpp +445 -0
  555. package/cpp/third_party/tgfx/src/core/codecs/jpeg/JpegCodec.h +61 -0
  556. package/cpp/third_party/tgfx/src/core/codecs/png/PngCodec.cpp +457 -0
  557. package/cpp/third_party/tgfx/src/core/codecs/png/PngCodec.h +57 -0
  558. package/cpp/third_party/tgfx/src/core/codecs/webp/WebpCodec.cpp +253 -0
  559. package/cpp/third_party/tgfx/src/core/codecs/webp/WebpCodec.h +56 -0
  560. package/cpp/third_party/tgfx/src/core/codecs/webp/WebpUtility.cpp +376 -0
  561. package/cpp/third_party/tgfx/src/core/codecs/webp/WebpUtility.h +41 -0
  562. package/cpp/third_party/tgfx/src/core/filters/AlphaThresholdColorFilter.cpp +44 -0
  563. package/cpp/third_party/tgfx/src/core/filters/AlphaThresholdColorFilter.h +46 -0
  564. package/cpp/third_party/tgfx/src/core/filters/BlendImageFilter.cpp +72 -0
  565. package/cpp/third_party/tgfx/src/core/filters/BlendImageFilter.h +45 -0
  566. package/cpp/third_party/tgfx/src/core/filters/ColorImageFilter.cpp +59 -0
  567. package/cpp/third_party/tgfx/src/core/filters/ColorImageFilter.h +41 -0
  568. package/cpp/third_party/tgfx/src/core/filters/ComposeColorFilter.cpp +70 -0
  569. package/cpp/third_party/tgfx/src/core/filters/ComposeColorFilter.h +47 -0
  570. package/cpp/third_party/tgfx/src/core/filters/ComposeImageFilter.cpp +98 -0
  571. package/cpp/third_party/tgfx/src/core/filters/ComposeImageFilter.h +45 -0
  572. package/cpp/third_party/tgfx/src/core/filters/DropShadowImageFilter.cpp +128 -0
  573. package/cpp/third_party/tgfx/src/core/filters/DropShadowImageFilter.h +60 -0
  574. package/cpp/third_party/tgfx/src/core/filters/GaussianBlurImageFilter.cpp +226 -0
  575. package/cpp/third_party/tgfx/src/core/filters/GaussianBlurImageFilter.h +62 -0
  576. package/cpp/third_party/tgfx/src/core/filters/InnerShadowImageFilter.cpp +104 -0
  577. package/cpp/third_party/tgfx/src/core/filters/InnerShadowImageFilter.h +58 -0
  578. package/cpp/third_party/tgfx/src/core/filters/LumaColorFilter.cpp +33 -0
  579. package/cpp/third_party/tgfx/src/core/filters/LumaColorFilter.h +42 -0
  580. package/cpp/third_party/tgfx/src/core/filters/MatrixColorFilter.cpp +60 -0
  581. package/cpp/third_party/tgfx/src/core/filters/MatrixColorFilter.h +48 -0
  582. package/cpp/third_party/tgfx/src/core/filters/ModeColorFilter.cpp +101 -0
  583. package/cpp/third_party/tgfx/src/core/filters/ModeColorFilter.h +50 -0
  584. package/cpp/third_party/tgfx/src/core/filters/RuntimeImageFilter.cpp +82 -0
  585. package/cpp/third_party/tgfx/src/core/filters/RuntimeImageFilter.h +48 -0
  586. package/cpp/third_party/tgfx/src/core/filters/ShaderMaskFilter.cpp +55 -0
  587. package/cpp/third_party/tgfx/src/core/filters/ShaderMaskFilter.h +56 -0
  588. package/cpp/third_party/tgfx/src/core/images/BufferImage.cpp +80 -0
  589. package/cpp/third_party/tgfx/src/core/images/BufferImage.h +62 -0
  590. package/cpp/third_party/tgfx/src/core/images/CodecImage.cpp +67 -0
  591. package/cpp/third_party/tgfx/src/core/images/CodecImage.h +65 -0
  592. package/cpp/third_party/tgfx/src/core/images/DecodedImage.cpp +62 -0
  593. package/cpp/third_party/tgfx/src/core/images/DecodedImage.h +69 -0
  594. package/cpp/third_party/tgfx/src/core/images/FilterImage.cpp +158 -0
  595. package/cpp/third_party/tgfx/src/core/images/FilterImage.h +80 -0
  596. package/cpp/third_party/tgfx/src/core/images/GeneratorImage.cpp +44 -0
  597. package/cpp/third_party/tgfx/src/core/images/GeneratorImage.h +64 -0
  598. package/cpp/third_party/tgfx/src/core/images/Image.cpp +249 -0
  599. package/cpp/third_party/tgfx/src/core/images/OrientImage.cpp +170 -0
  600. package/cpp/third_party/tgfx/src/core/images/OrientImage.h +59 -0
  601. package/cpp/third_party/tgfx/src/core/images/PictureImage.cpp +180 -0
  602. package/cpp/third_party/tgfx/src/core/images/PictureImage.h +84 -0
  603. package/cpp/third_party/tgfx/src/core/images/PixelImage.cpp +43 -0
  604. package/cpp/third_party/tgfx/src/core/images/PixelImage.h +42 -0
  605. package/cpp/third_party/tgfx/src/core/images/RGBAAAImage.cpp +140 -0
  606. package/cpp/third_party/tgfx/src/core/images/RGBAAAImage.h +56 -0
  607. package/cpp/third_party/tgfx/src/core/images/RasterizedImage.cpp +132 -0
  608. package/cpp/third_party/tgfx/src/core/images/RasterizedImage.h +84 -0
  609. package/cpp/third_party/tgfx/src/core/images/ScaledImage.cpp +102 -0
  610. package/cpp/third_party/tgfx/src/core/images/ScaledImage.h +70 -0
  611. package/cpp/third_party/tgfx/src/core/images/SubsetImage.cpp +131 -0
  612. package/cpp/third_party/tgfx/src/core/images/SubsetImage.h +65 -0
  613. package/cpp/third_party/tgfx/src/core/images/TextureImage.cpp +92 -0
  614. package/cpp/third_party/tgfx/src/core/images/TextureImage.h +96 -0
  615. package/cpp/third_party/tgfx/src/core/images/TransformImage.cpp +77 -0
  616. package/cpp/third_party/tgfx/src/core/images/TransformImage.h +64 -0
  617. package/cpp/third_party/tgfx/src/core/shaders/BlendShader.cpp +74 -0
  618. package/cpp/third_party/tgfx/src/core/shaders/BlendShader.h +47 -0
  619. package/cpp/third_party/tgfx/src/core/shaders/ColorFilterShader.cpp +65 -0
  620. package/cpp/third_party/tgfx/src/core/shaders/ColorFilterShader.h +54 -0
  621. package/cpp/third_party/tgfx/src/core/shaders/ColorShader.cpp +56 -0
  622. package/cpp/third_party/tgfx/src/core/shaders/ColorShader.h +50 -0
  623. package/cpp/third_party/tgfx/src/core/shaders/GradientShader.cpp +411 -0
  624. package/cpp/third_party/tgfx/src/core/shaders/GradientShader.h +126 -0
  625. package/cpp/third_party/tgfx/src/core/shaders/ImageShader.cpp +64 -0
  626. package/cpp/third_party/tgfx/src/core/shaders/ImageShader.h +56 -0
  627. package/cpp/third_party/tgfx/src/core/shaders/MatrixShader.cpp +73 -0
  628. package/cpp/third_party/tgfx/src/core/shaders/MatrixShader.h +59 -0
  629. package/cpp/third_party/tgfx/src/core/shaders/PerlinNoiseShader.cpp +216 -0
  630. package/cpp/third_party/tgfx/src/core/shaders/PerlinNoiseShader.h +91 -0
  631. package/cpp/third_party/tgfx/src/core/shaders/RuntimeShader.cpp +51 -0
  632. package/cpp/third_party/tgfx/src/core/shaders/RuntimeShader.h +31 -0
  633. package/cpp/third_party/tgfx/src/core/shapes/AppendShape.cpp +83 -0
  634. package/cpp/third_party/tgfx/src/core/shapes/AppendShape.h +53 -0
  635. package/cpp/third_party/tgfx/src/core/shapes/EffectShape.cpp +45 -0
  636. package/cpp/third_party/tgfx/src/core/shapes/EffectShape.h +51 -0
  637. package/cpp/third_party/tgfx/src/core/shapes/FillTypeShape.cpp +53 -0
  638. package/cpp/third_party/tgfx/src/core/shapes/FillTypeShape.h +51 -0
  639. package/cpp/third_party/tgfx/src/core/shapes/GlyphShape.cpp +79 -0
  640. package/cpp/third_party/tgfx/src/core/shapes/GlyphShape.h +50 -0
  641. package/cpp/third_party/tgfx/src/core/shapes/Matrix3DShape.cpp +93 -0
  642. package/cpp/third_party/tgfx/src/core/shapes/Matrix3DShape.h +58 -0
  643. package/cpp/third_party/tgfx/src/core/shapes/MatrixShape.cpp +94 -0
  644. package/cpp/third_party/tgfx/src/core/shapes/MatrixShape.h +55 -0
  645. package/cpp/third_party/tgfx/src/core/shapes/MergeShape.cpp +90 -0
  646. package/cpp/third_party/tgfx/src/core/shapes/MergeShape.h +49 -0
  647. package/cpp/third_party/tgfx/src/core/shapes/PathShape.cpp +34 -0
  648. package/cpp/third_party/tgfx/src/core/shapes/PathShape.h +58 -0
  649. package/cpp/third_party/tgfx/src/core/shapes/ProviderShape.cpp +36 -0
  650. package/cpp/third_party/tgfx/src/core/shapes/ProviderShape.h +48 -0
  651. package/cpp/third_party/tgfx/src/core/shapes/ReverseShape.cpp +47 -0
  652. package/cpp/third_party/tgfx/src/core/shapes/ReverseShape.h +49 -0
  653. package/cpp/third_party/tgfx/src/core/shapes/Shape.cpp +51 -0
  654. package/cpp/third_party/tgfx/src/core/shapes/StrokeShape.cpp +110 -0
  655. package/cpp/third_party/tgfx/src/core/shapes/StrokeShape.h +58 -0
  656. package/cpp/third_party/tgfx/src/core/shapes/TextShape.cpp +77 -0
  657. package/cpp/third_party/tgfx/src/core/shapes/TextShape.h +49 -0
  658. package/cpp/third_party/tgfx/src/core/shapes/UniqueKeyShape.h +34 -0
  659. package/cpp/third_party/tgfx/src/core/utils/AddressOf.h +35 -0
  660. package/cpp/third_party/tgfx/src/core/utils/AtomicCache.h +52 -0
  661. package/cpp/third_party/tgfx/src/core/utils/BlockAllocator.cpp +167 -0
  662. package/cpp/third_party/tgfx/src/core/utils/BlockAllocator.h +211 -0
  663. package/cpp/third_party/tgfx/src/core/utils/Buffer.cpp +121 -0
  664. package/cpp/third_party/tgfx/src/core/utils/BytesKey.cpp +71 -0
  665. package/cpp/third_party/tgfx/src/core/utils/ClearPixels.cpp +33 -0
  666. package/cpp/third_party/tgfx/src/core/utils/ClearPixels.h +28 -0
  667. package/cpp/third_party/tgfx/src/core/utils/Clock.cpp +80 -0
  668. package/cpp/third_party/tgfx/src/core/utils/ColorHelper.cpp +65 -0
  669. package/cpp/third_party/tgfx/src/core/utils/ColorHelper.h +28 -0
  670. package/cpp/third_party/tgfx/src/core/utils/ColorSpaceHelper.cpp +207 -0
  671. package/cpp/third_party/tgfx/src/core/utils/ColorSpaceHelper.h +44 -0
  672. package/cpp/third_party/tgfx/src/core/utils/CopyPixels.cpp +110 -0
  673. package/cpp/third_party/tgfx/src/core/utils/CopyPixels.h +30 -0
  674. package/cpp/third_party/tgfx/src/core/utils/DataView.cpp +290 -0
  675. package/cpp/third_party/tgfx/src/core/utils/DecomposeRects.cpp +89 -0
  676. package/cpp/third_party/tgfx/src/core/utils/DecomposeRects.h +31 -0
  677. package/cpp/third_party/tgfx/src/core/utils/EnumHasher.h +32 -0
  678. package/cpp/third_party/tgfx/src/core/utils/FauxBoldScale.cpp +70 -0
  679. package/cpp/third_party/tgfx/src/core/utils/FauxBoldScale.h +25 -0
  680. package/cpp/third_party/tgfx/src/core/utils/FontTableTag.h +34 -0
  681. package/cpp/third_party/tgfx/src/core/utils/GammaCorrection.cpp +44 -0
  682. package/cpp/third_party/tgfx/src/core/utils/GammaCorrection.h +29 -0
  683. package/cpp/third_party/tgfx/src/core/utils/GeometryExtra.h +58 -0
  684. package/cpp/third_party/tgfx/src/core/utils/GlyphConverter.cpp +51 -0
  685. package/cpp/third_party/tgfx/src/core/utils/GlyphConverter.h +46 -0
  686. package/cpp/third_party/tgfx/src/core/utils/HardwareBufferUtil.cpp +63 -0
  687. package/cpp/third_party/tgfx/src/core/utils/HardwareBufferUtil.h +38 -0
  688. package/cpp/third_party/tgfx/src/core/utils/HashRange.cpp +29 -0
  689. package/cpp/third_party/tgfx/src/core/utils/HashRange.h +28 -0
  690. package/cpp/third_party/tgfx/src/core/utils/Log.h +63 -0
  691. package/cpp/third_party/tgfx/src/core/utils/MD5.cpp +199 -0
  692. package/cpp/third_party/tgfx/src/core/utils/MD5.h +33 -0
  693. package/cpp/third_party/tgfx/src/core/utils/MathExtra.cpp +118 -0
  694. package/cpp/third_party/tgfx/src/core/utils/MathExtra.h +177 -0
  695. package/cpp/third_party/tgfx/src/core/utils/NextCacheScaleLevel.cpp +47 -0
  696. package/cpp/third_party/tgfx/src/core/utils/NextCacheScaleLevel.h +25 -0
  697. package/cpp/third_party/tgfx/src/core/utils/OrientationHelper.h +100 -0
  698. package/cpp/third_party/tgfx/src/core/utils/PathUtils.cpp +479 -0
  699. package/cpp/third_party/tgfx/src/core/utils/PathUtils.h +120 -0
  700. package/cpp/third_party/tgfx/src/core/utils/PixelFormatUtil.cpp +80 -0
  701. package/cpp/third_party/tgfx/src/core/utils/PixelFormatUtil.h +35 -0
  702. package/cpp/third_party/tgfx/src/core/utils/PlacementArray.h +252 -0
  703. package/cpp/third_party/tgfx/src/core/utils/PlacementPtr.h +183 -0
  704. package/cpp/third_party/tgfx/src/core/utils/PointUtils.cpp +58 -0
  705. package/cpp/third_party/tgfx/src/core/utils/PointUtils.h +55 -0
  706. package/cpp/third_party/tgfx/src/core/utils/RectToRectMatrix.cpp +34 -0
  707. package/cpp/third_party/tgfx/src/core/utils/RectToRectMatrix.h +30 -0
  708. package/cpp/third_party/tgfx/src/core/utils/ReturnQueue.cpp +51 -0
  709. package/cpp/third_party/tgfx/src/core/utils/ReturnQueue.h +77 -0
  710. package/cpp/third_party/tgfx/src/core/utils/ShapeUtils.cpp +73 -0
  711. package/cpp/third_party/tgfx/src/core/utils/ShapeUtils.h +61 -0
  712. package/cpp/third_party/tgfx/src/core/utils/SingleOwner.h +64 -0
  713. package/cpp/third_party/tgfx/src/core/utils/SlidingWindowTracker.cpp +54 -0
  714. package/cpp/third_party/tgfx/src/core/utils/SlidingWindowTracker.h +51 -0
  715. package/cpp/third_party/tgfx/src/core/utils/Stream.cpp +177 -0
  716. package/cpp/third_party/tgfx/src/core/utils/StrokeUtils.cpp +140 -0
  717. package/cpp/third_party/tgfx/src/core/utils/StrokeUtils.h +73 -0
  718. package/cpp/third_party/tgfx/src/core/utils/Task.cpp +114 -0
  719. package/cpp/third_party/tgfx/src/core/utils/TaskGroup.cpp +187 -0
  720. package/cpp/third_party/tgfx/src/core/utils/TaskGroup.h +56 -0
  721. package/cpp/third_party/tgfx/src/core/utils/TileSortCompareFunc.h +38 -0
  722. package/cpp/third_party/tgfx/src/core/utils/TileSortCompareFuncSIMD.cpp +67 -0
  723. package/cpp/third_party/tgfx/src/core/utils/Types.h +88 -0
  724. package/cpp/third_party/tgfx/src/core/utils/USE.h +46 -0
  725. package/cpp/third_party/tgfx/src/core/utils/UTF.cpp +151 -0
  726. package/cpp/third_party/tgfx/src/core/utils/UniqueID.cpp +32 -0
  727. package/cpp/third_party/tgfx/src/core/utils/UniqueID.h +28 -0
  728. package/cpp/third_party/tgfx/src/core/utils/VecUtils.h +97 -0
  729. package/cpp/third_party/tgfx/src/core/utils/WeakMap.h +61 -0
  730. package/cpp/third_party/tgfx/src/core/utils/WriteStream.cpp +160 -0
  731. package/cpp/third_party/tgfx/src/core/vectors/coregraphics/CGPathRasterizer.cpp +205 -0
  732. package/cpp/third_party/tgfx/src/core/vectors/coregraphics/CGPathRasterizer.h +35 -0
  733. package/cpp/third_party/tgfx/src/core/vectors/coregraphics/CGScalerContext.cpp +381 -0
  734. package/cpp/third_party/tgfx/src/core/vectors/coregraphics/CGScalerContext.h +56 -0
  735. package/cpp/third_party/tgfx/src/core/vectors/coregraphics/CGTypeface.cpp +448 -0
  736. package/cpp/third_party/tgfx/src/core/vectors/coregraphics/CGTypeface.h +88 -0
  737. package/cpp/third_party/tgfx/src/core/vectors/freetype/FTFontData.h +36 -0
  738. package/cpp/third_party/tgfx/src/core/vectors/freetype/FTLibrary.cpp +36 -0
  739. package/cpp/third_party/tgfx/src/core/vectors/freetype/FTLibrary.h +45 -0
  740. package/cpp/third_party/tgfx/src/core/vectors/freetype/FTPath.cpp +118 -0
  741. package/cpp/third_party/tgfx/src/core/vectors/freetype/FTPath.h +58 -0
  742. package/cpp/third_party/tgfx/src/core/vectors/freetype/FTPathRasterizer.cpp +135 -0
  743. package/cpp/third_party/tgfx/src/core/vectors/freetype/FTPathRasterizer.h +35 -0
  744. package/cpp/third_party/tgfx/src/core/vectors/freetype/FTRasterTarget.cpp +54 -0
  745. package/cpp/third_party/tgfx/src/core/vectors/freetype/FTRasterTarget.h +33 -0
  746. package/cpp/third_party/tgfx/src/core/vectors/freetype/FTScalerContext.cpp +970 -0
  747. package/cpp/third_party/tgfx/src/core/vectors/freetype/FTScalerContext.h +99 -0
  748. package/cpp/third_party/tgfx/src/core/vectors/freetype/FTTypeface.cpp +310 -0
  749. package/cpp/third_party/tgfx/src/core/vectors/freetype/FTTypeface.h +99 -0
  750. package/cpp/third_party/tgfx/src/core/vectors/freetype/FTUtil.h +45 -0
  751. package/cpp/third_party/tgfx/src/core/vectors/freetype/SystemFont.cpp +279 -0
  752. package/cpp/third_party/tgfx/src/core/vectors/freetype/SystemFont.h +31 -0
  753. package/cpp/third_party/tgfx/src/gpu/AAType.h +30 -0
  754. package/cpp/third_party/tgfx/src/gpu/AlignTo.cpp +28 -0
  755. package/cpp/third_party/tgfx/src/gpu/AlignTo.h +24 -0
  756. package/cpp/third_party/tgfx/src/gpu/Attribute.cpp +59 -0
  757. package/cpp/third_party/tgfx/src/gpu/Backend.cpp +275 -0
  758. package/cpp/third_party/tgfx/src/gpu/BackingFit.h +37 -0
  759. package/cpp/third_party/tgfx/src/gpu/BlendFormula.cpp +162 -0
  760. package/cpp/third_party/tgfx/src/gpu/BlendFormula.h +121 -0
  761. package/cpp/third_party/tgfx/src/gpu/ColorSpaceXformHelper.cpp +89 -0
  762. package/cpp/third_party/tgfx/src/gpu/ColorSpaceXformHelper.h +103 -0
  763. package/cpp/third_party/tgfx/src/gpu/CommandEncoder.cpp +43 -0
  764. package/cpp/third_party/tgfx/src/gpu/Context.cpp +204 -0
  765. package/cpp/third_party/tgfx/src/gpu/CoordTransform.cpp +39 -0
  766. package/cpp/third_party/tgfx/src/gpu/CoordTransform.h +40 -0
  767. package/cpp/third_party/tgfx/src/gpu/Device.cpp +70 -0
  768. package/cpp/third_party/tgfx/src/gpu/DrawingBuffer.cpp +85 -0
  769. package/cpp/third_party/tgfx/src/gpu/DrawingBuffer.h +89 -0
  770. package/cpp/third_party/tgfx/src/gpu/DrawingManager.cpp +211 -0
  771. package/cpp/third_party/tgfx/src/gpu/DrawingManager.h +111 -0
  772. package/cpp/third_party/tgfx/src/gpu/FragmentShaderBuilder.cpp +61 -0
  773. package/cpp/third_party/tgfx/src/gpu/FragmentShaderBuilder.h +61 -0
  774. package/cpp/third_party/tgfx/src/gpu/GlobalCache.cpp +705 -0
  775. package/cpp/third_party/tgfx/src/gpu/GlobalCache.h +156 -0
  776. package/cpp/third_party/tgfx/src/gpu/InstanceProvider.cpp +75 -0
  777. package/cpp/third_party/tgfx/src/gpu/InstanceProvider.h +78 -0
  778. package/cpp/third_party/tgfx/src/gpu/OpsCompositor.cpp +1198 -0
  779. package/cpp/third_party/tgfx/src/gpu/OpsCompositor.h +229 -0
  780. package/cpp/third_party/tgfx/src/gpu/Program.cpp +38 -0
  781. package/cpp/third_party/tgfx/src/gpu/Program.h +47 -0
  782. package/cpp/third_party/tgfx/src/gpu/ProgramBuilder.cpp +208 -0
  783. package/cpp/third_party/tgfx/src/gpu/ProgramBuilder.h +105 -0
  784. package/cpp/third_party/tgfx/src/gpu/ProgramInfo.cpp +339 -0
  785. package/cpp/third_party/tgfx/src/gpu/ProgramInfo.h +173 -0
  786. package/cpp/third_party/tgfx/src/gpu/ProxyProvider.cpp +711 -0
  787. package/cpp/third_party/tgfx/src/gpu/ProxyProvider.h +223 -0
  788. package/cpp/third_party/tgfx/src/gpu/Quad.cpp +65 -0
  789. package/cpp/third_party/tgfx/src/gpu/Quad.h +73 -0
  790. package/cpp/third_party/tgfx/src/gpu/QuadRecord.h +71 -0
  791. package/cpp/third_party/tgfx/src/gpu/QuadsVertexProvider.cpp +603 -0
  792. package/cpp/third_party/tgfx/src/gpu/QuadsVertexProvider.h +109 -0
  793. package/cpp/third_party/tgfx/src/gpu/RRectsVertexProvider.cpp +722 -0
  794. package/cpp/third_party/tgfx/src/gpu/RRectsVertexProvider.h +108 -0
  795. package/cpp/third_party/tgfx/src/gpu/RectsVertexProvider.cpp +928 -0
  796. package/cpp/third_party/tgfx/src/gpu/RectsVertexProvider.h +153 -0
  797. package/cpp/third_party/tgfx/src/gpu/RenderContext.cpp +773 -0
  798. package/cpp/third_party/tgfx/src/gpu/RenderContext.h +113 -0
  799. package/cpp/third_party/tgfx/src/gpu/RenderPipeline.cpp +31 -0
  800. package/cpp/third_party/tgfx/src/gpu/ResourceCache.cpp +288 -0
  801. package/cpp/third_party/tgfx/src/gpu/ResourceCache.h +170 -0
  802. package/cpp/third_party/tgfx/src/gpu/SLType.h +48 -0
  803. package/cpp/third_party/tgfx/src/gpu/SamplerHandle.h +43 -0
  804. package/cpp/third_party/tgfx/src/gpu/SamplerState.h +57 -0
  805. package/cpp/third_party/tgfx/src/gpu/SamplingArgs.h +42 -0
  806. package/cpp/third_party/tgfx/src/gpu/ShaderBuilder.cpp +354 -0
  807. package/cpp/third_party/tgfx/src/gpu/ShaderBuilder.h +133 -0
  808. package/cpp/third_party/tgfx/src/gpu/ShaderCaps.cpp +104 -0
  809. package/cpp/third_party/tgfx/src/gpu/ShaderCaps.h +101 -0
  810. package/cpp/third_party/tgfx/src/gpu/ShaderCompiler.cpp +171 -0
  811. package/cpp/third_party/tgfx/src/gpu/ShaderCompiler.h +42 -0
  812. package/cpp/third_party/tgfx/src/gpu/ShaderVar.cpp +103 -0
  813. package/cpp/third_party/tgfx/src/gpu/ShaderVar.h +59 -0
  814. package/cpp/third_party/tgfx/src/gpu/Swizzle.cpp +77 -0
  815. package/cpp/third_party/tgfx/src/gpu/Swizzle.h +116 -0
  816. package/cpp/third_party/tgfx/src/gpu/TPArgs.h +64 -0
  817. package/cpp/third_party/tgfx/src/gpu/Texture.cpp +33 -0
  818. package/cpp/third_party/tgfx/src/gpu/Uniform.cpp +52 -0
  819. package/cpp/third_party/tgfx/src/gpu/Uniform.h +90 -0
  820. package/cpp/third_party/tgfx/src/gpu/UniformData.cpp +160 -0
  821. package/cpp/third_party/tgfx/src/gpu/UniformData.h +158 -0
  822. package/cpp/third_party/tgfx/src/gpu/UniformHandler.cpp +96 -0
  823. package/cpp/third_party/tgfx/src/gpu/UniformHandler.h +83 -0
  824. package/cpp/third_party/tgfx/src/gpu/UniqueDomain.cpp +49 -0
  825. package/cpp/third_party/tgfx/src/gpu/UniqueDomain.h +55 -0
  826. package/cpp/third_party/tgfx/src/gpu/VaryingHandler.cpp +79 -0
  827. package/cpp/third_party/tgfx/src/gpu/VaryingHandler.h +87 -0
  828. package/cpp/third_party/tgfx/src/gpu/VertexProvider.cpp +45 -0
  829. package/cpp/third_party/tgfx/src/gpu/VertexProvider.h +83 -0
  830. package/cpp/third_party/tgfx/src/gpu/VertexShaderBuilder.h +48 -0
  831. package/cpp/third_party/tgfx/src/gpu/Window.cpp +38 -0
  832. package/cpp/third_party/tgfx/src/gpu/YUVFormat.h +39 -0
  833. package/cpp/third_party/tgfx/src/gpu/glsl/GLSLBlend.cpp +551 -0
  834. package/cpp/third_party/tgfx/src/gpu/glsl/GLSLBlend.h +31 -0
  835. package/cpp/third_party/tgfx/src/gpu/glsl/GLSLFragmentShaderBuilder.cpp +67 -0
  836. package/cpp/third_party/tgfx/src/gpu/glsl/GLSLFragmentShaderBuilder.h +37 -0
  837. package/cpp/third_party/tgfx/src/gpu/glsl/GLSLProgramBuilder.cpp +240 -0
  838. package/cpp/third_party/tgfx/src/gpu/glsl/GLSLProgramBuilder.h +70 -0
  839. package/cpp/third_party/tgfx/src/gpu/glsl/GLSLVertexShaderBuilder.cpp +51 -0
  840. package/cpp/third_party/tgfx/src/gpu/glsl/GLSLVertexShaderBuilder.h +33 -0
  841. package/cpp/third_party/tgfx/src/gpu/glsl/processors/GLSLAlphaThresholdFragmentProcessor.cpp +49 -0
  842. package/cpp/third_party/tgfx/src/gpu/glsl/processors/GLSLAlphaThresholdFragmentProcessor.h +34 -0
  843. package/cpp/third_party/tgfx/src/gpu/glsl/processors/GLSLAtlasTextGeometryProcessor.cpp +99 -0
  844. package/cpp/third_party/tgfx/src/gpu/glsl/processors/GLSLAtlasTextGeometryProcessor.h +38 -0
  845. package/cpp/third_party/tgfx/src/gpu/glsl/processors/GLSLClampedGradientEffect.cpp +90 -0
  846. package/cpp/third_party/tgfx/src/gpu/glsl/processors/GLSLClampedGradientEffect.h +37 -0
  847. package/cpp/third_party/tgfx/src/gpu/glsl/processors/GLSLColorMatrixFragmentProcessor.cpp +66 -0
  848. package/cpp/third_party/tgfx/src/gpu/glsl/processors/GLSLColorMatrixFragmentProcessor.h +35 -0
  849. package/cpp/third_party/tgfx/src/gpu/glsl/processors/GLSLComplexEllipseGeometryProcessor.cpp +163 -0
  850. package/cpp/third_party/tgfx/src/gpu/glsl/processors/GLSLComplexEllipseGeometryProcessor.h +34 -0
  851. package/cpp/third_party/tgfx/src/gpu/glsl/processors/GLSLComplexNonAARRectGeometryProcessor.cpp +161 -0
  852. package/cpp/third_party/tgfx/src/gpu/glsl/processors/GLSLComplexNonAARRectGeometryProcessor.h +34 -0
  853. package/cpp/third_party/tgfx/src/gpu/glsl/processors/GLSLComposeFragmentProcessor.cpp +48 -0
  854. package/cpp/third_party/tgfx/src/gpu/glsl/processors/GLSLComposeFragmentProcessor.h +30 -0
  855. package/cpp/third_party/tgfx/src/gpu/glsl/processors/GLSLConicGradientLayout.cpp +50 -0
  856. package/cpp/third_party/tgfx/src/gpu/glsl/processors/GLSLConicGradientLayout.h +34 -0
  857. package/cpp/third_party/tgfx/src/gpu/glsl/processors/GLSLConstColorProcessor.cpp +52 -0
  858. package/cpp/third_party/tgfx/src/gpu/glsl/processors/GLSLConstColorProcessor.h +34 -0
  859. package/cpp/third_party/tgfx/src/gpu/glsl/processors/GLSLDefaultGeometryProcessor.cpp +77 -0
  860. package/cpp/third_party/tgfx/src/gpu/glsl/processors/GLSLDefaultGeometryProcessor.h +35 -0
  861. package/cpp/third_party/tgfx/src/gpu/glsl/processors/GLSLDeviceSpaceTextureEffect.cpp +66 -0
  862. package/cpp/third_party/tgfx/src/gpu/glsl/processors/GLSLDeviceSpaceTextureEffect.h +34 -0
  863. package/cpp/third_party/tgfx/src/gpu/glsl/processors/GLSLDiamondGradientLayout.cpp +39 -0
  864. package/cpp/third_party/tgfx/src/gpu/glsl/processors/GLSLDiamondGradientLayout.h +30 -0
  865. package/cpp/third_party/tgfx/src/gpu/glsl/processors/GLSLDualIntervalGradientColorizer.cpp +84 -0
  866. package/cpp/third_party/tgfx/src/gpu/glsl/processors/GLSLDualIntervalGradientColorizer.h +36 -0
  867. package/cpp/third_party/tgfx/src/gpu/glsl/processors/GLSLEllipseGeometryProcessor.cpp +109 -0
  868. package/cpp/third_party/tgfx/src/gpu/glsl/processors/GLSLEllipseGeometryProcessor.h +34 -0
  869. package/cpp/third_party/tgfx/src/gpu/glsl/processors/GLSLEmptyXferProcessor.cpp +31 -0
  870. package/cpp/third_party/tgfx/src/gpu/glsl/processors/GLSLEmptyXferProcessor.h +28 -0
  871. package/cpp/third_party/tgfx/src/gpu/glsl/processors/GLSLGaussianBlur1DFragmentProcessor.cpp +94 -0
  872. package/cpp/third_party/tgfx/src/gpu/glsl/processors/GLSLGaussianBlur1DFragmentProcessor.h +37 -0
  873. package/cpp/third_party/tgfx/src/gpu/glsl/processors/GLSLHairlineLineGeometryProcessor.cpp +92 -0
  874. package/cpp/third_party/tgfx/src/gpu/glsl/processors/GLSLHairlineLineGeometryProcessor.h +38 -0
  875. package/cpp/third_party/tgfx/src/gpu/glsl/processors/GLSLHairlineQuadGeometryProcessor.cpp +109 -0
  876. package/cpp/third_party/tgfx/src/gpu/glsl/processors/GLSLHairlineQuadGeometryProcessor.h +38 -0
  877. package/cpp/third_party/tgfx/src/gpu/glsl/processors/GLSLLinearGradientLayout.cpp +36 -0
  878. package/cpp/third_party/tgfx/src/gpu/glsl/processors/GLSLLinearGradientLayout.h +30 -0
  879. package/cpp/third_party/tgfx/src/gpu/glsl/processors/GLSLLumaFragmentProcessor.cpp +45 -0
  880. package/cpp/third_party/tgfx/src/gpu/glsl/processors/GLSLLumaFragmentProcessor.h +33 -0
  881. package/cpp/third_party/tgfx/src/gpu/glsl/processors/GLSLMeshGeometryProcessor.cpp +105 -0
  882. package/cpp/third_party/tgfx/src/gpu/glsl/processors/GLSLMeshGeometryProcessor.h +36 -0
  883. package/cpp/third_party/tgfx/src/gpu/glsl/processors/GLSLNonAARRectGeometryProcessor.cpp +131 -0
  884. package/cpp/third_party/tgfx/src/gpu/glsl/processors/GLSLNonAARRectGeometryProcessor.h +34 -0
  885. package/cpp/third_party/tgfx/src/gpu/glsl/processors/GLSLPerlinNoiseFragmentProcessor.cpp +240 -0
  886. package/cpp/third_party/tgfx/src/gpu/glsl/processors/GLSLPerlinNoiseFragmentProcessor.h +36 -0
  887. package/cpp/third_party/tgfx/src/gpu/glsl/processors/GLSLPorterDuffXferProcessor.cpp +102 -0
  888. package/cpp/third_party/tgfx/src/gpu/glsl/processors/GLSLPorterDuffXferProcessor.h +32 -0
  889. package/cpp/third_party/tgfx/src/gpu/glsl/processors/GLSLQuadPerEdgeAAGeometryProcessor.cpp +116 -0
  890. package/cpp/third_party/tgfx/src/gpu/glsl/processors/GLSLQuadPerEdgeAAGeometryProcessor.h +47 -0
  891. package/cpp/third_party/tgfx/src/gpu/glsl/processors/GLSLRRectEffect.cpp +158 -0
  892. package/cpp/third_party/tgfx/src/gpu/glsl/processors/GLSLRRectEffect.h +36 -0
  893. package/cpp/third_party/tgfx/src/gpu/glsl/processors/GLSLRadialGradientLayout.cpp +36 -0
  894. package/cpp/third_party/tgfx/src/gpu/glsl/processors/GLSLRadialGradientLayout.h +30 -0
  895. package/cpp/third_party/tgfx/src/gpu/glsl/processors/GLSLRectEffect.cpp +105 -0
  896. package/cpp/third_party/tgfx/src/gpu/glsl/processors/GLSLRectEffect.h +35 -0
  897. package/cpp/third_party/tgfx/src/gpu/glsl/processors/GLSLRoundStrokeRectGeometryProcessor.cpp +101 -0
  898. package/cpp/third_party/tgfx/src/gpu/glsl/processors/GLSLRoundStrokeRectGeometryProcessor.h +34 -0
  899. package/cpp/third_party/tgfx/src/gpu/glsl/processors/GLSLRuntimeShaderProcessor.cpp +210 -0
  900. package/cpp/third_party/tgfx/src/gpu/glsl/processors/GLSLRuntimeShaderProcessor.h +21 -0
  901. package/cpp/third_party/tgfx/src/gpu/glsl/processors/GLSLShapeInstancedGeometryProcessor.cpp +98 -0
  902. package/cpp/third_party/tgfx/src/gpu/glsl/processors/GLSLShapeInstancedGeometryProcessor.h +34 -0
  903. package/cpp/third_party/tgfx/src/gpu/glsl/processors/GLSLSingleIntervalGradientColorizer.cpp +47 -0
  904. package/cpp/third_party/tgfx/src/gpu/glsl/processors/GLSLSingleIntervalGradientColorizer.h +35 -0
  905. package/cpp/third_party/tgfx/src/gpu/glsl/processors/GLSLStencilCoverCoverPassGeometryProcessor.cpp +71 -0
  906. package/cpp/third_party/tgfx/src/gpu/glsl/processors/GLSLStencilCoverCoverPassGeometryProcessor.h +33 -0
  907. package/cpp/third_party/tgfx/src/gpu/glsl/processors/GLSLStencilCoverStencilPassGeometryProcessor.cpp +85 -0
  908. package/cpp/third_party/tgfx/src/gpu/glsl/processors/GLSLStencilCoverStencilPassGeometryProcessor.h +34 -0
  909. package/cpp/third_party/tgfx/src/gpu/glsl/processors/GLSLTextureEffect.cpp +295 -0
  910. package/cpp/third_party/tgfx/src/gpu/glsl/processors/GLSLTextureEffect.h +41 -0
  911. package/cpp/third_party/tgfx/src/gpu/glsl/processors/GLSLTextureGradientColorizer.cpp +41 -0
  912. package/cpp/third_party/tgfx/src/gpu/glsl/processors/GLSLTextureGradientColorizer.h +30 -0
  913. package/cpp/third_party/tgfx/src/gpu/glsl/processors/GLSLTiledTextureEffect.cpp +480 -0
  914. package/cpp/third_party/tgfx/src/gpu/glsl/processors/GLSLTiledTextureEffect.h +65 -0
  915. package/cpp/third_party/tgfx/src/gpu/glsl/processors/GLSLUnrolledBinaryGradientColorizer.cpp +291 -0
  916. package/cpp/third_party/tgfx/src/gpu/glsl/processors/GLSLUnrolledBinaryGradientColorizer.h +49 -0
  917. package/cpp/third_party/tgfx/src/gpu/glsl/processors/GLSLXfermodeFragmentProcessor.cpp +74 -0
  918. package/cpp/third_party/tgfx/src/gpu/glsl/processors/GLSLXfermodeFragmentProcessor.h +31 -0
  919. package/cpp/third_party/tgfx/src/gpu/metal/MetalBuffer.h +64 -0
  920. package/cpp/third_party/tgfx/src/gpu/metal/MetalBuffer.mm +112 -0
  921. package/cpp/third_party/tgfx/src/gpu/metal/MetalCaps.h +117 -0
  922. package/cpp/third_party/tgfx/src/gpu/metal/MetalCaps.mm +177 -0
  923. package/cpp/third_party/tgfx/src/gpu/metal/MetalCommandBuffer.h +45 -0
  924. package/cpp/third_party/tgfx/src/gpu/metal/MetalCommandBuffer.mm +31 -0
  925. package/cpp/third_party/tgfx/src/gpu/metal/MetalCommandEncoder.h +71 -0
  926. package/cpp/third_party/tgfx/src/gpu/metal/MetalCommandEncoder.mm +173 -0
  927. package/cpp/third_party/tgfx/src/gpu/metal/MetalCommandQueue.h +86 -0
  928. package/cpp/third_party/tgfx/src/gpu/metal/MetalCommandQueue.mm +208 -0
  929. package/cpp/third_party/tgfx/src/gpu/metal/MetalDefines.h +54 -0
  930. package/cpp/third_party/tgfx/src/gpu/metal/MetalDevice.h +30 -0
  931. package/cpp/third_party/tgfx/src/gpu/metal/MetalDevice.mm +72 -0
  932. package/cpp/third_party/tgfx/src/gpu/metal/MetalDrawableProxy.h +52 -0
  933. package/cpp/third_party/tgfx/src/gpu/metal/MetalDrawableProxy.mm +94 -0
  934. package/cpp/third_party/tgfx/src/gpu/metal/MetalExternalTexture.h +37 -0
  935. package/cpp/third_party/tgfx/src/gpu/metal/MetalGPU.h +159 -0
  936. package/cpp/third_party/tgfx/src/gpu/metal/MetalGPU.mm +267 -0
  937. package/cpp/third_party/tgfx/src/gpu/metal/MetalHardwareTexture.h +60 -0
  938. package/cpp/third_party/tgfx/src/gpu/metal/MetalHardwareTexture.mm +146 -0
  939. package/cpp/third_party/tgfx/src/gpu/metal/MetalRenderPass.h +110 -0
  940. package/cpp/third_party/tgfx/src/gpu/metal/MetalRenderPass.mm +386 -0
  941. package/cpp/third_party/tgfx/src/gpu/metal/MetalRenderPipeline.h +91 -0
  942. package/cpp/third_party/tgfx/src/gpu/metal/MetalRenderPipeline.mm +310 -0
  943. package/cpp/third_party/tgfx/src/gpu/metal/MetalResource.h +47 -0
  944. package/cpp/third_party/tgfx/src/gpu/metal/MetalResource.mm +21 -0
  945. package/cpp/third_party/tgfx/src/gpu/metal/MetalSampler.h +55 -0
  946. package/cpp/third_party/tgfx/src/gpu/metal/MetalSampler.mm +73 -0
  947. package/cpp/third_party/tgfx/src/gpu/metal/MetalSemaphore.h +81 -0
  948. package/cpp/third_party/tgfx/src/gpu/metal/MetalSemaphore.mm +66 -0
  949. package/cpp/third_party/tgfx/src/gpu/metal/MetalShaderModule.h +106 -0
  950. package/cpp/third_party/tgfx/src/gpu/metal/MetalShaderModule.mm +244 -0
  951. package/cpp/third_party/tgfx/src/gpu/metal/MetalTexture.h +67 -0
  952. package/cpp/third_party/tgfx/src/gpu/metal/MetalTexture.mm +157 -0
  953. package/cpp/third_party/tgfx/src/gpu/metal/MetalUtil.h +66 -0
  954. package/cpp/third_party/tgfx/src/gpu/metal/MetalUtil.mm +337 -0
  955. package/cpp/third_party/tgfx/src/gpu/metal/MetalWindow.mm +122 -0
  956. package/cpp/third_party/tgfx/src/gpu/opengl/GLBuffer.cpp +117 -0
  957. package/cpp/third_party/tgfx/src/gpu/opengl/GLBuffer.h +64 -0
  958. package/cpp/third_party/tgfx/src/gpu/opengl/GLCaps.cpp +325 -0
  959. package/cpp/third_party/tgfx/src/gpu/opengl/GLCaps.h +118 -0
  960. package/cpp/third_party/tgfx/src/gpu/opengl/GLCommandEncoder.cpp +178 -0
  961. package/cpp/third_party/tgfx/src/gpu/opengl/GLCommandEncoder.h +50 -0
  962. package/cpp/third_party/tgfx/src/gpu/opengl/GLCommandQueue.cpp +122 -0
  963. package/cpp/third_party/tgfx/src/gpu/opengl/GLCommandQueue.h +52 -0
  964. package/cpp/third_party/tgfx/src/gpu/opengl/GLCoreFunctions.h +112 -0
  965. package/cpp/third_party/tgfx/src/gpu/opengl/GLDefines.h +925 -0
  966. package/cpp/third_party/tgfx/src/gpu/opengl/GLDepthStencilTexture.cpp +66 -0
  967. package/cpp/third_party/tgfx/src/gpu/opengl/GLDepthStencilTexture.h +44 -0
  968. package/cpp/third_party/tgfx/src/gpu/opengl/GLDevice.cpp +104 -0
  969. package/cpp/third_party/tgfx/src/gpu/opengl/GLExternalTexture.h +42 -0
  970. package/cpp/third_party/tgfx/src/gpu/opengl/GLFunctions.h +293 -0
  971. package/cpp/third_party/tgfx/src/gpu/opengl/GLGPU.cpp +336 -0
  972. package/cpp/third_party/tgfx/src/gpu/opengl/GLGPU.h +119 -0
  973. package/cpp/third_party/tgfx/src/gpu/opengl/GLInterface.cpp +276 -0
  974. package/cpp/third_party/tgfx/src/gpu/opengl/GLInterface.h +48 -0
  975. package/cpp/third_party/tgfx/src/gpu/opengl/GLMultisampleTexture.cpp +98 -0
  976. package/cpp/third_party/tgfx/src/gpu/opengl/GLMultisampleTexture.h +46 -0
  977. package/cpp/third_party/tgfx/src/gpu/opengl/GLProcGetter.h +32 -0
  978. package/cpp/third_party/tgfx/src/gpu/opengl/GLRenderPass.cpp +293 -0
  979. package/cpp/third_party/tgfx/src/gpu/opengl/GLRenderPass.h +96 -0
  980. package/cpp/third_party/tgfx/src/gpu/opengl/GLRenderPipeline.cpp +336 -0
  981. package/cpp/third_party/tgfx/src/gpu/opengl/GLRenderPipeline.h +106 -0
  982. package/cpp/third_party/tgfx/src/gpu/opengl/GLResource.h +45 -0
  983. package/cpp/third_party/tgfx/src/gpu/opengl/GLSampler.h +53 -0
  984. package/cpp/third_party/tgfx/src/gpu/opengl/GLSemaphore.cpp +41 -0
  985. package/cpp/third_party/tgfx/src/gpu/opengl/GLSemaphore.h +47 -0
  986. package/cpp/third_party/tgfx/src/gpu/opengl/GLShaderModule.cpp +33 -0
  987. package/cpp/third_party/tgfx/src/gpu/opengl/GLShaderModule.h +40 -0
  988. package/cpp/third_party/tgfx/src/gpu/opengl/GLStandard.h +23 -0
  989. package/cpp/third_party/tgfx/src/gpu/opengl/GLState.cpp +261 -0
  990. package/cpp/third_party/tgfx/src/gpu/opengl/GLState.h +125 -0
  991. package/cpp/third_party/tgfx/src/gpu/opengl/GLTexture.cpp +173 -0
  992. package/cpp/third_party/tgfx/src/gpu/opengl/GLTexture.h +95 -0
  993. package/cpp/third_party/tgfx/src/gpu/opengl/GLUtil.cpp +217 -0
  994. package/cpp/third_party/tgfx/src/gpu/opengl/GLUtil.h +68 -0
  995. package/cpp/third_party/tgfx/src/gpu/opengl/cgl/CGLDevice.mm +136 -0
  996. package/cpp/third_party/tgfx/src/gpu/opengl/cgl/CGLGPU.h +42 -0
  997. package/cpp/third_party/tgfx/src/gpu/opengl/cgl/CGLGPU.mm +52 -0
  998. package/cpp/third_party/tgfx/src/gpu/opengl/cgl/CGLHardwareTexture.h +50 -0
  999. package/cpp/third_party/tgfx/src/gpu/opengl/cgl/CGLHardwareTexture.mm +90 -0
  1000. package/cpp/third_party/tgfx/src/gpu/opengl/cgl/CGLProcGetter.h +35 -0
  1001. package/cpp/third_party/tgfx/src/gpu/opengl/cgl/CGLProcGetter.mm +42 -0
  1002. package/cpp/third_party/tgfx/src/gpu/opengl/cgl/CGLWindow.mm +91 -0
  1003. package/cpp/third_party/tgfx/src/gpu/opengl/eagl/EAGLDevice.mm +308 -0
  1004. package/cpp/third_party/tgfx/src/gpu/opengl/eagl/EAGLGPU.h +46 -0
  1005. package/cpp/third_party/tgfx/src/gpu/opengl/eagl/EAGLGPU.mm +61 -0
  1006. package/cpp/third_party/tgfx/src/gpu/opengl/eagl/EAGLHardwareTexture.h +47 -0
  1007. package/cpp/third_party/tgfx/src/gpu/opengl/eagl/EAGLHardwareTexture.mm +127 -0
  1008. package/cpp/third_party/tgfx/src/gpu/opengl/eagl/EAGLLayerTexture.h +55 -0
  1009. package/cpp/third_party/tgfx/src/gpu/opengl/eagl/EAGLLayerTexture.mm +85 -0
  1010. package/cpp/third_party/tgfx/src/gpu/opengl/eagl/EAGLProcGetter.h +35 -0
  1011. package/cpp/third_party/tgfx/src/gpu/opengl/eagl/EAGLProcGetter.mm +41 -0
  1012. package/cpp/third_party/tgfx/src/gpu/opengl/eagl/EAGLWindow.mm +79 -0
  1013. package/cpp/third_party/tgfx/src/gpu/opengl/egl/EGLDevice.cpp +384 -0
  1014. package/cpp/third_party/tgfx/src/gpu/opengl/egl/EGLDisplayWrapper.cpp +111 -0
  1015. package/cpp/third_party/tgfx/src/gpu/opengl/egl/EGLDisplayWrapper.h +31 -0
  1016. package/cpp/third_party/tgfx/src/gpu/opengl/egl/EGLGPU.cpp +82 -0
  1017. package/cpp/third_party/tgfx/src/gpu/opengl/egl/EGLGPU.h +40 -0
  1018. package/cpp/third_party/tgfx/src/gpu/opengl/egl/EGLGlobals.cpp +100 -0
  1019. package/cpp/third_party/tgfx/src/gpu/opengl/egl/EGLHardwareTexture.cpp +163 -0
  1020. package/cpp/third_party/tgfx/src/gpu/opengl/egl/EGLHardwareTexture.h +57 -0
  1021. package/cpp/third_party/tgfx/src/gpu/opengl/egl/EGLProcGetter.cpp +53 -0
  1022. package/cpp/third_party/tgfx/src/gpu/opengl/egl/EGLProcGetter.h +28 -0
  1023. package/cpp/third_party/tgfx/src/gpu/opengl/egl/EGLWindow.cpp +126 -0
  1024. package/cpp/third_party/tgfx/src/gpu/opengl/qt/QGLDevice.cpp +171 -0
  1025. package/cpp/third_party/tgfx/src/gpu/opengl/qt/QGLDrawableProxy.cpp +94 -0
  1026. package/cpp/third_party/tgfx/src/gpu/opengl/qt/QGLDrawableProxy.h +61 -0
  1027. package/cpp/third_party/tgfx/src/gpu/opengl/qt/QGLGPU.cpp +76 -0
  1028. package/cpp/third_party/tgfx/src/gpu/opengl/qt/QGLGPU.h +52 -0
  1029. package/cpp/third_party/tgfx/src/gpu/opengl/qt/QGLProcGetter.cpp +33 -0
  1030. package/cpp/third_party/tgfx/src/gpu/opengl/qt/QGLProcGetter.h +35 -0
  1031. package/cpp/third_party/tgfx/src/gpu/opengl/qt/QGLWindow.cpp +293 -0
  1032. package/cpp/third_party/tgfx/src/gpu/opengl/webgl/WebGLBuffer.cpp +93 -0
  1033. package/cpp/third_party/tgfx/src/gpu/opengl/webgl/WebGLBuffer.h +45 -0
  1034. package/cpp/third_party/tgfx/src/gpu/opengl/webgl/WebGLDevice.cpp +161 -0
  1035. package/cpp/third_party/tgfx/src/gpu/opengl/webgl/WebGLGPU.cpp +30 -0
  1036. package/cpp/third_party/tgfx/src/gpu/opengl/webgl/WebGLGPU.h +32 -0
  1037. package/cpp/third_party/tgfx/src/gpu/opengl/webgl/WebGLProcGetter.cpp +50 -0
  1038. package/cpp/third_party/tgfx/src/gpu/opengl/webgl/WebGLProcGetter.h +28 -0
  1039. package/cpp/third_party/tgfx/src/gpu/opengl/webgl/WebGLWindow.cpp +59 -0
  1040. package/cpp/third_party/tgfx/src/gpu/opengl/wgl/WGLDefines.h +113 -0
  1041. package/cpp/third_party/tgfx/src/gpu/opengl/wgl/WGLDevice.cpp +335 -0
  1042. package/cpp/third_party/tgfx/src/gpu/opengl/wgl/WGLGPU.cpp +297 -0
  1043. package/cpp/third_party/tgfx/src/gpu/opengl/wgl/WGLGPU.h +78 -0
  1044. package/cpp/third_party/tgfx/src/gpu/opengl/wgl/WGLHardwareTexture.cpp +289 -0
  1045. package/cpp/third_party/tgfx/src/gpu/opengl/wgl/WGLHardwareTexture.h +53 -0
  1046. package/cpp/third_party/tgfx/src/gpu/opengl/wgl/WGLInterface.cpp +155 -0
  1047. package/cpp/third_party/tgfx/src/gpu/opengl/wgl/WGLInterface.h +75 -0
  1048. package/cpp/third_party/tgfx/src/gpu/opengl/wgl/WGLProcGetter.cpp +47 -0
  1049. package/cpp/third_party/tgfx/src/gpu/opengl/wgl/WGLProcGetter.h +36 -0
  1050. package/cpp/third_party/tgfx/src/gpu/opengl/wgl/WGLWindow.cpp +71 -0
  1051. package/cpp/third_party/tgfx/src/gpu/ops/AtlasTextOp.cpp +99 -0
  1052. package/cpp/third_party/tgfx/src/gpu/ops/AtlasTextOp.h +62 -0
  1053. package/cpp/third_party/tgfx/src/gpu/ops/DrawOp.cpp +41 -0
  1054. package/cpp/third_party/tgfx/src/gpu/ops/DrawOp.h +125 -0
  1055. package/cpp/third_party/tgfx/src/gpu/ops/HairlineLineOp.cpp +91 -0
  1056. package/cpp/third_party/tgfx/src/gpu/ops/HairlineLineOp.h +66 -0
  1057. package/cpp/third_party/tgfx/src/gpu/ops/HairlineQuadOp.cpp +91 -0
  1058. package/cpp/third_party/tgfx/src/gpu/ops/HairlineQuadOp.h +66 -0
  1059. package/cpp/third_party/tgfx/src/gpu/ops/MeshDrawOp.cpp +75 -0
  1060. package/cpp/third_party/tgfx/src/gpu/ops/MeshDrawOp.h +53 -0
  1061. package/cpp/third_party/tgfx/src/gpu/ops/Quads3DDrawOp.cpp +98 -0
  1062. package/cpp/third_party/tgfx/src/gpu/ops/Quads3DDrawOp.h +64 -0
  1063. package/cpp/third_party/tgfx/src/gpu/ops/RRectDrawOp.cpp +101 -0
  1064. package/cpp/third_party/tgfx/src/gpu/ops/RRectDrawOp.h +88 -0
  1065. package/cpp/third_party/tgfx/src/gpu/ops/RectDrawOp.cpp +116 -0
  1066. package/cpp/third_party/tgfx/src/gpu/ops/RectDrawOp.h +103 -0
  1067. package/cpp/third_party/tgfx/src/gpu/ops/ShapeDrawOp.cpp +104 -0
  1068. package/cpp/third_party/tgfx/src/gpu/ops/ShapeDrawOp.h +53 -0
  1069. package/cpp/third_party/tgfx/src/gpu/ops/ShapeInstancedDrawOp.cpp +136 -0
  1070. package/cpp/third_party/tgfx/src/gpu/ops/ShapeInstancedDrawOp.h +69 -0
  1071. package/cpp/third_party/tgfx/src/gpu/ops/StandardDrawOp.cpp +61 -0
  1072. package/cpp/third_party/tgfx/src/gpu/ops/StandardDrawOp.h +94 -0
  1073. package/cpp/third_party/tgfx/src/gpu/ops/StencilCoverPathDrawOp.cpp +302 -0
  1074. package/cpp/third_party/tgfx/src/gpu/ops/StencilCoverPathDrawOp.h +149 -0
  1075. package/cpp/third_party/tgfx/src/gpu/processors/AlphaThresholdFragmentProcessor.h +42 -0
  1076. package/cpp/third_party/tgfx/src/gpu/processors/AtlasTextGeometryProcessor.cpp +46 -0
  1077. package/cpp/third_party/tgfx/src/gpu/processors/AtlasTextGeometryProcessor.h +65 -0
  1078. package/cpp/third_party/tgfx/src/gpu/processors/ClampedGradientEffect.cpp +30 -0
  1079. package/cpp/third_party/tgfx/src/gpu/processors/ClampedGradientEffect.h +49 -0
  1080. package/cpp/third_party/tgfx/src/gpu/processors/ColorMatrixFragmentProcessor.h +43 -0
  1081. package/cpp/third_party/tgfx/src/gpu/processors/ColorSpaceXFormEffect.cpp +58 -0
  1082. package/cpp/third_party/tgfx/src/gpu/processors/ColorSpaceXFormEffect.h +52 -0
  1083. package/cpp/third_party/tgfx/src/gpu/processors/ComplexEllipseGeometryProcessor.cpp +44 -0
  1084. package/cpp/third_party/tgfx/src/gpu/processors/ComplexEllipseGeometryProcessor.h +66 -0
  1085. package/cpp/third_party/tgfx/src/gpu/processors/ComplexNonAARRectGeometryProcessor.cpp +45 -0
  1086. package/cpp/third_party/tgfx/src/gpu/processors/ComplexNonAARRectGeometryProcessor.h +62 -0
  1087. package/cpp/third_party/tgfx/src/gpu/processors/ComposeFragmentProcessor.cpp +58 -0
  1088. package/cpp/third_party/tgfx/src/gpu/processors/ComposeFragmentProcessor.h +42 -0
  1089. package/cpp/third_party/tgfx/src/gpu/processors/ConicGradientLayout.cpp +31 -0
  1090. package/cpp/third_party/tgfx/src/gpu/processors/ConicGradientLayout.h +44 -0
  1091. package/cpp/third_party/tgfx/src/gpu/processors/ConstColorProcessor.cpp +25 -0
  1092. package/cpp/third_party/tgfx/src/gpu/processors/ConstColorProcessor.h +48 -0
  1093. package/cpp/third_party/tgfx/src/gpu/processors/DefaultGeometryProcessor.cpp +37 -0
  1094. package/cpp/third_party/tgfx/src/gpu/processors/DefaultGeometryProcessor.h +58 -0
  1095. package/cpp/third_party/tgfx/src/gpu/processors/DeviceSpaceTextureEffect.cpp +35 -0
  1096. package/cpp/third_party/tgfx/src/gpu/processors/DeviceSpaceTextureEffect.h +46 -0
  1097. package/cpp/third_party/tgfx/src/gpu/processors/DiamondGradientLayout.cpp +31 -0
  1098. package/cpp/third_party/tgfx/src/gpu/processors/DiamondGradientLayout.h +41 -0
  1099. package/cpp/third_party/tgfx/src/gpu/processors/DualIntervalGradientColorizer.h +50 -0
  1100. package/cpp/third_party/tgfx/src/gpu/processors/EllipseGeometryProcessor.cpp +40 -0
  1101. package/cpp/third_party/tgfx/src/gpu/processors/EllipseGeometryProcessor.h +60 -0
  1102. package/cpp/third_party/tgfx/src/gpu/processors/EmptyXferProcessor.cpp +25 -0
  1103. package/cpp/third_party/tgfx/src/gpu/processors/EmptyXferProcessor.h +44 -0
  1104. package/cpp/third_party/tgfx/src/gpu/processors/FragmentProcessor.cpp +213 -0
  1105. package/cpp/third_party/tgfx/src/gpu/processors/FragmentProcessor.h +339 -0
  1106. package/cpp/third_party/tgfx/src/gpu/processors/GaussianBlur1DFragmentProcessor.cpp +35 -0
  1107. package/cpp/third_party/tgfx/src/gpu/processors/GaussianBlur1DFragmentProcessor.h +51 -0
  1108. package/cpp/third_party/tgfx/src/gpu/processors/GeometryProcessor.cpp +109 -0
  1109. package/cpp/third_party/tgfx/src/gpu/processors/GeometryProcessor.h +165 -0
  1110. package/cpp/third_party/tgfx/src/gpu/processors/HairlineLineGeometryProcessor.cpp +40 -0
  1111. package/cpp/third_party/tgfx/src/gpu/processors/HairlineLineGeometryProcessor.h +65 -0
  1112. package/cpp/third_party/tgfx/src/gpu/processors/HairlineQuadGeometryProcessor.cpp +40 -0
  1113. package/cpp/third_party/tgfx/src/gpu/processors/HairlineQuadGeometryProcessor.h +65 -0
  1114. package/cpp/third_party/tgfx/src/gpu/processors/LinearGradientLayout.cpp +31 -0
  1115. package/cpp/third_party/tgfx/src/gpu/processors/LinearGradientLayout.h +41 -0
  1116. package/cpp/third_party/tgfx/src/gpu/processors/LumaFragmentProcessor.cpp +55 -0
  1117. package/cpp/third_party/tgfx/src/gpu/processors/LumaFragmentProcessor.h +52 -0
  1118. package/cpp/third_party/tgfx/src/gpu/processors/MeshGeometryProcessor.cpp +54 -0
  1119. package/cpp/third_party/tgfx/src/gpu/processors/MeshGeometryProcessor.h +59 -0
  1120. package/cpp/third_party/tgfx/src/gpu/processors/NonAARRectGeometryProcessor.cpp +44 -0
  1121. package/cpp/third_party/tgfx/src/gpu/processors/NonAARRectGeometryProcessor.h +61 -0
  1122. package/cpp/third_party/tgfx/src/gpu/processors/PerlinNoiseFragmentProcessor.cpp +62 -0
  1123. package/cpp/third_party/tgfx/src/gpu/processors/PerlinNoiseFragmentProcessor.h +67 -0
  1124. package/cpp/third_party/tgfx/src/gpu/processors/PorterDuffXferProcessor.cpp +33 -0
  1125. package/cpp/third_party/tgfx/src/gpu/processors/PorterDuffXferProcessor.h +49 -0
  1126. package/cpp/third_party/tgfx/src/gpu/processors/Processor.h +54 -0
  1127. package/cpp/third_party/tgfx/src/gpu/processors/QuadPerEdgeAAGeometryProcessor.cpp +53 -0
  1128. package/cpp/third_party/tgfx/src/gpu/processors/QuadPerEdgeAAGeometryProcessor.h +63 -0
  1129. package/cpp/third_party/tgfx/src/gpu/processors/RRectEffect.cpp +32 -0
  1130. package/cpp/third_party/tgfx/src/gpu/processors/RRectEffect.h +82 -0
  1131. package/cpp/third_party/tgfx/src/gpu/processors/RadialGradientLayout.cpp +31 -0
  1132. package/cpp/third_party/tgfx/src/gpu/processors/RadialGradientLayout.h +41 -0
  1133. package/cpp/third_party/tgfx/src/gpu/processors/RectEffect.cpp +32 -0
  1134. package/cpp/third_party/tgfx/src/gpu/processors/RectEffect.h +76 -0
  1135. package/cpp/third_party/tgfx/src/gpu/processors/RoundStrokeRectGeometryProcessor.cpp +49 -0
  1136. package/cpp/third_party/tgfx/src/gpu/processors/RoundStrokeRectGeometryProcessor.h +58 -0
  1137. package/cpp/third_party/tgfx/src/gpu/processors/RuntimeShaderProcessor.cpp +35 -0
  1138. package/cpp/third_party/tgfx/src/gpu/processors/RuntimeShaderProcessor.h +40 -0
  1139. package/cpp/third_party/tgfx/src/gpu/processors/ShapeInstancedGeometryProcessor.cpp +47 -0
  1140. package/cpp/third_party/tgfx/src/gpu/processors/ShapeInstancedGeometryProcessor.h +56 -0
  1141. package/cpp/third_party/tgfx/src/gpu/processors/SingleIntervalGradientColorizer.h +44 -0
  1142. package/cpp/third_party/tgfx/src/gpu/processors/StencilCoverCoverPassGeometryProcessor.cpp +28 -0
  1143. package/cpp/third_party/tgfx/src/gpu/processors/StencilCoverCoverPassGeometryProcessor.h +61 -0
  1144. package/cpp/third_party/tgfx/src/gpu/processors/StencilCoverStencilPassGeometryProcessor.cpp +35 -0
  1145. package/cpp/third_party/tgfx/src/gpu/processors/StencilCoverStencilPassGeometryProcessor.h +62 -0
  1146. package/cpp/third_party/tgfx/src/gpu/processors/TextureEffect.cpp +117 -0
  1147. package/cpp/third_party/tgfx/src/gpu/processors/TextureEffect.h +76 -0
  1148. package/cpp/third_party/tgfx/src/gpu/processors/TextureGradientColorizer.h +52 -0
  1149. package/cpp/third_party/tgfx/src/gpu/processors/TiledTextureEffect.cpp +190 -0
  1150. package/cpp/third_party/tgfx/src/gpu/processors/TiledTextureEffect.h +85 -0
  1151. package/cpp/third_party/tgfx/src/gpu/processors/UnrolledBinaryGradientColorizer.cpp +25 -0
  1152. package/cpp/third_party/tgfx/src/gpu/processors/UnrolledBinaryGradientColorizer.h +72 -0
  1153. package/cpp/third_party/tgfx/src/gpu/processors/XferProcessor.h +64 -0
  1154. package/cpp/third_party/tgfx/src/gpu/processors/XfermodeFragmentProcessor.cpp +65 -0
  1155. package/cpp/third_party/tgfx/src/gpu/processors/XfermodeFragmentProcessor.h +68 -0
  1156. package/cpp/third_party/tgfx/src/gpu/proxies/DefaultTextureProxy.cpp +42 -0
  1157. package/cpp/third_party/tgfx/src/gpu/proxies/DefaultTextureProxy.h +37 -0
  1158. package/cpp/third_party/tgfx/src/gpu/proxies/ExternalRenderTargetProxy.h +71 -0
  1159. package/cpp/third_party/tgfx/src/gpu/proxies/ExternalTextureRenderTargetProxy.cpp +40 -0
  1160. package/cpp/third_party/tgfx/src/gpu/proxies/ExternalTextureRenderTargetProxy.h +36 -0
  1161. package/cpp/third_party/tgfx/src/gpu/proxies/GPUBufferProxy.h +42 -0
  1162. package/cpp/third_party/tgfx/src/gpu/proxies/GPUHairlineProxy.h +61 -0
  1163. package/cpp/third_party/tgfx/src/gpu/proxies/GPUMeshProxy.cpp +102 -0
  1164. package/cpp/third_party/tgfx/src/gpu/proxies/GPUMeshProxy.h +97 -0
  1165. package/cpp/third_party/tgfx/src/gpu/proxies/GPUShapeProxy.h +58 -0
  1166. package/cpp/third_party/tgfx/src/gpu/proxies/HardwareRenderTargetProxy.cpp +43 -0
  1167. package/cpp/third_party/tgfx/src/gpu/proxies/HardwareRenderTargetProxy.h +43 -0
  1168. package/cpp/third_party/tgfx/src/gpu/proxies/HardwareTextureProxy.cpp +41 -0
  1169. package/cpp/third_party/tgfx/src/gpu/proxies/HardwareTextureProxy.h +42 -0
  1170. package/cpp/third_party/tgfx/src/gpu/proxies/RenderTargetProxy.cpp +91 -0
  1171. package/cpp/third_party/tgfx/src/gpu/proxies/RenderTargetProxy.h +179 -0
  1172. package/cpp/third_party/tgfx/src/gpu/proxies/ResourceProxy.h +63 -0
  1173. package/cpp/third_party/tgfx/src/gpu/proxies/StencilCoverPathProxy.h +60 -0
  1174. package/cpp/third_party/tgfx/src/gpu/proxies/TextureProxy.h +124 -0
  1175. package/cpp/third_party/tgfx/src/gpu/proxies/TextureRenderTargetProxy.cpp +46 -0
  1176. package/cpp/third_party/tgfx/src/gpu/proxies/TextureRenderTargetProxy.h +87 -0
  1177. package/cpp/third_party/tgfx/src/gpu/proxies/VertexBufferView.h +60 -0
  1178. package/cpp/third_party/tgfx/src/gpu/resources/BufferResource.cpp +45 -0
  1179. package/cpp/third_party/tgfx/src/gpu/resources/BufferResource.h +76 -0
  1180. package/cpp/third_party/tgfx/src/gpu/resources/DefaultTextureView.cpp +36 -0
  1181. package/cpp/third_party/tgfx/src/gpu/resources/DefaultTextureView.h +42 -0
  1182. package/cpp/third_party/tgfx/src/gpu/resources/ExternalRenderTarget.cpp +37 -0
  1183. package/cpp/third_party/tgfx/src/gpu/resources/ExternalRenderTarget.h +61 -0
  1184. package/cpp/third_party/tgfx/src/gpu/resources/RenderTarget.h +142 -0
  1185. package/cpp/third_party/tgfx/src/gpu/resources/Resource.cpp +37 -0
  1186. package/cpp/third_party/tgfx/src/gpu/resources/Resource.h +103 -0
  1187. package/cpp/third_party/tgfx/src/gpu/resources/ResourceKey.cpp +210 -0
  1188. package/cpp/third_party/tgfx/src/gpu/resources/ResourceKey.h +222 -0
  1189. package/cpp/third_party/tgfx/src/gpu/resources/TextureRenderTarget.cpp +131 -0
  1190. package/cpp/third_party/tgfx/src/gpu/resources/TextureRenderTarget.h +73 -0
  1191. package/cpp/third_party/tgfx/src/gpu/resources/TextureView.cpp +154 -0
  1192. package/cpp/third_party/tgfx/src/gpu/resources/TextureView.h +235 -0
  1193. package/cpp/third_party/tgfx/src/gpu/resources/YUVTextureView.cpp +132 -0
  1194. package/cpp/third_party/tgfx/src/gpu/resources/YUVTextureView.h +92 -0
  1195. package/cpp/third_party/tgfx/src/gpu/tasks/AtlasUploadTask.cpp +154 -0
  1196. package/cpp/third_party/tgfx/src/gpu/tasks/AtlasUploadTask.h +62 -0
  1197. package/cpp/third_party/tgfx/src/gpu/tasks/GPUBufferUploadTask.cpp +50 -0
  1198. package/cpp/third_party/tgfx/src/gpu/tasks/GPUBufferUploadTask.h +43 -0
  1199. package/cpp/third_party/tgfx/src/gpu/tasks/GenerateMipmapsTask.cpp +36 -0
  1200. package/cpp/third_party/tgfx/src/gpu/tasks/GenerateMipmapsTask.h +34 -0
  1201. package/cpp/third_party/tgfx/src/gpu/tasks/HairlineBufferUploadTask.cpp +93 -0
  1202. package/cpp/third_party/tgfx/src/gpu/tasks/HairlineBufferUploadTask.h +49 -0
  1203. package/cpp/third_party/tgfx/src/gpu/tasks/MeshBufferUploadTask.cpp +148 -0
  1204. package/cpp/third_party/tgfx/src/gpu/tasks/MeshBufferUploadTask.h +78 -0
  1205. package/cpp/third_party/tgfx/src/gpu/tasks/OpsRenderTask.cpp +81 -0
  1206. package/cpp/third_party/tgfx/src/gpu/tasks/OpsRenderTask.h +41 -0
  1207. package/cpp/third_party/tgfx/src/gpu/tasks/ReadbackBufferCreateTask.cpp +38 -0
  1208. package/cpp/third_party/tgfx/src/gpu/tasks/ReadbackBufferCreateTask.h +35 -0
  1209. package/cpp/third_party/tgfx/src/gpu/tasks/RenderTargetCopyTask.cpp +48 -0
  1210. package/cpp/third_party/tgfx/src/gpu/tasks/RenderTargetCopyTask.h +38 -0
  1211. package/cpp/third_party/tgfx/src/gpu/tasks/RenderTask.h +37 -0
  1212. package/cpp/third_party/tgfx/src/gpu/tasks/ResourceTask.cpp +40 -0
  1213. package/cpp/third_party/tgfx/src/gpu/tasks/ResourceTask.h +48 -0
  1214. package/cpp/third_party/tgfx/src/gpu/tasks/RuntimeDrawTask.cpp +150 -0
  1215. package/cpp/third_party/tgfx/src/gpu/tasks/RuntimeDrawTask.h +52 -0
  1216. package/cpp/third_party/tgfx/src/gpu/tasks/ShapeBufferUploadTask.cpp +63 -0
  1217. package/cpp/third_party/tgfx/src/gpu/tasks/ShapeBufferUploadTask.h +39 -0
  1218. package/cpp/third_party/tgfx/src/gpu/tasks/StencilCoverPathUploadTask.cpp +55 -0
  1219. package/cpp/third_party/tgfx/src/gpu/tasks/StencilCoverPathUploadTask.h +43 -0
  1220. package/cpp/third_party/tgfx/src/gpu/tasks/TextureUploadTask.cpp +47 -0
  1221. package/cpp/third_party/tgfx/src/gpu/tasks/TextureUploadTask.h +36 -0
  1222. package/cpp/third_party/tgfx/src/gpu/tasks/TransferPixelsTask.cpp +42 -0
  1223. package/cpp/third_party/tgfx/src/gpu/tasks/TransferPixelsTask.h +38 -0
  1224. package/cpp/third_party/tgfx/src/gpu/vulkan/VulkanAPI.h +43 -0
  1225. package/cpp/third_party/tgfx/src/gpu/vulkan/VulkanBuffer.cpp +137 -0
  1226. package/cpp/third_party/tgfx/src/gpu/vulkan/VulkanBuffer.h +66 -0
  1227. package/cpp/third_party/tgfx/src/gpu/vulkan/VulkanCaps.cpp +172 -0
  1228. package/cpp/third_party/tgfx/src/gpu/vulkan/VulkanCaps.h +116 -0
  1229. package/cpp/third_party/tgfx/src/gpu/vulkan/VulkanCommandBuffer.cpp +34 -0
  1230. package/cpp/third_party/tgfx/src/gpu/vulkan/VulkanCommandBuffer.h +68 -0
  1231. package/cpp/third_party/tgfx/src/gpu/vulkan/VulkanCommandEncoder.cpp +361 -0
  1232. package/cpp/third_party/tgfx/src/gpu/vulkan/VulkanCommandEncoder.h +95 -0
  1233. package/cpp/third_party/tgfx/src/gpu/vulkan/VulkanCommandQueue.cpp +393 -0
  1234. package/cpp/third_party/tgfx/src/gpu/vulkan/VulkanCommandQueue.h +102 -0
  1235. package/cpp/third_party/tgfx/src/gpu/vulkan/VulkanDefines.h +56 -0
  1236. package/cpp/third_party/tgfx/src/gpu/vulkan/VulkanDevice.cpp +55 -0
  1237. package/cpp/third_party/tgfx/src/gpu/vulkan/VulkanDevice.h +24 -0
  1238. package/cpp/third_party/tgfx/src/gpu/vulkan/VulkanExtensions.cpp +224 -0
  1239. package/cpp/third_party/tgfx/src/gpu/vulkan/VulkanExtensions.h +93 -0
  1240. package/cpp/third_party/tgfx/src/gpu/vulkan/VulkanFrameSession.h +96 -0
  1241. package/cpp/third_party/tgfx/src/gpu/vulkan/VulkanGPU.cpp +970 -0
  1242. package/cpp/third_party/tgfx/src/gpu/vulkan/VulkanGPU.h +293 -0
  1243. package/cpp/third_party/tgfx/src/gpu/vulkan/VulkanHardwareTexture.cpp +306 -0
  1244. package/cpp/third_party/tgfx/src/gpu/vulkan/VulkanHardwareTexture.h +62 -0
  1245. package/cpp/third_party/tgfx/src/gpu/vulkan/VulkanRenderPass.cpp +551 -0
  1246. package/cpp/third_party/tgfx/src/gpu/vulkan/VulkanRenderPass.h +115 -0
  1247. package/cpp/third_party/tgfx/src/gpu/vulkan/VulkanRenderPipeline.cpp +596 -0
  1248. package/cpp/third_party/tgfx/src/gpu/vulkan/VulkanRenderPipeline.h +108 -0
  1249. package/cpp/third_party/tgfx/src/gpu/vulkan/VulkanResource.cpp +21 -0
  1250. package/cpp/third_party/tgfx/src/gpu/vulkan/VulkanResource.h +43 -0
  1251. package/cpp/third_party/tgfx/src/gpu/vulkan/VulkanSampler.cpp +108 -0
  1252. package/cpp/third_party/tgfx/src/gpu/vulkan/VulkanSampler.h +52 -0
  1253. package/cpp/third_party/tgfx/src/gpu/vulkan/VulkanSemaphore.cpp +82 -0
  1254. package/cpp/third_party/tgfx/src/gpu/vulkan/VulkanSemaphore.h +71 -0
  1255. package/cpp/third_party/tgfx/src/gpu/vulkan/VulkanShaderModule.cpp +65 -0
  1256. package/cpp/third_party/tgfx/src/gpu/vulkan/VulkanShaderModule.h +54 -0
  1257. package/cpp/third_party/tgfx/src/gpu/vulkan/VulkanSwapchainProxy.cpp +110 -0
  1258. package/cpp/third_party/tgfx/src/gpu/vulkan/VulkanSwapchainProxy.h +84 -0
  1259. package/cpp/third_party/tgfx/src/gpu/vulkan/VulkanTexture.cpp +208 -0
  1260. package/cpp/third_party/tgfx/src/gpu/vulkan/VulkanTexture.h +90 -0
  1261. package/cpp/third_party/tgfx/src/gpu/vulkan/VulkanUtil.cpp +236 -0
  1262. package/cpp/third_party/tgfx/src/gpu/vulkan/VulkanUtil.h +73 -0
  1263. package/cpp/third_party/tgfx/src/gpu/vulkan/VulkanWindow.cpp +764 -0
  1264. package/cpp/third_party/tgfx/src/gpu/webgpu/WebGPUBuffer.cpp +171 -0
  1265. package/cpp/third_party/tgfx/src/gpu/webgpu/WebGPUBuffer.h +72 -0
  1266. package/cpp/third_party/tgfx/src/gpu/webgpu/WebGPUCaps.cpp +109 -0
  1267. package/cpp/third_party/tgfx/src/gpu/webgpu/WebGPUCaps.h +78 -0
  1268. package/cpp/third_party/tgfx/src/gpu/webgpu/WebGPUCommandBuffer.h +45 -0
  1269. package/cpp/third_party/tgfx/src/gpu/webgpu/WebGPUCommandEncoder.cpp +223 -0
  1270. package/cpp/third_party/tgfx/src/gpu/webgpu/WebGPUCommandEncoder.h +60 -0
  1271. package/cpp/third_party/tgfx/src/gpu/webgpu/WebGPUCommandQueue.cpp +104 -0
  1272. package/cpp/third_party/tgfx/src/gpu/webgpu/WebGPUCommandQueue.h +63 -0
  1273. package/cpp/third_party/tgfx/src/gpu/webgpu/WebGPUDefines.h +58 -0
  1274. package/cpp/third_party/tgfx/src/gpu/webgpu/WebGPUDevice.cpp +98 -0
  1275. package/cpp/third_party/tgfx/src/gpu/webgpu/WebGPUDevice.h +24 -0
  1276. package/cpp/third_party/tgfx/src/gpu/webgpu/WebGPUDrawableProxy.cpp +117 -0
  1277. package/cpp/third_party/tgfx/src/gpu/webgpu/WebGPUDrawableProxy.h +58 -0
  1278. package/cpp/third_party/tgfx/src/gpu/webgpu/WebGPUGPU.cpp +294 -0
  1279. package/cpp/third_party/tgfx/src/gpu/webgpu/WebGPUGPU.h +136 -0
  1280. package/cpp/third_party/tgfx/src/gpu/webgpu/WebGPURenderPass.cpp +305 -0
  1281. package/cpp/third_party/tgfx/src/gpu/webgpu/WebGPURenderPass.h +97 -0
  1282. package/cpp/third_party/tgfx/src/gpu/webgpu/WebGPURenderPipeline.cpp +305 -0
  1283. package/cpp/third_party/tgfx/src/gpu/webgpu/WebGPURenderPipeline.h +72 -0
  1284. package/cpp/third_party/tgfx/src/gpu/webgpu/WebGPUResource.cpp +21 -0
  1285. package/cpp/third_party/tgfx/src/gpu/webgpu/WebGPUResource.h +43 -0
  1286. package/cpp/third_party/tgfx/src/gpu/webgpu/WebGPUSampler.cpp +57 -0
  1287. package/cpp/third_party/tgfx/src/gpu/webgpu/WebGPUSampler.h +47 -0
  1288. package/cpp/third_party/tgfx/src/gpu/webgpu/WebGPUSemaphore.cpp +28 -0
  1289. package/cpp/third_party/tgfx/src/gpu/webgpu/WebGPUSemaphore.h +33 -0
  1290. package/cpp/third_party/tgfx/src/gpu/webgpu/WebGPUShaderModule.cpp +275 -0
  1291. package/cpp/third_party/tgfx/src/gpu/webgpu/WebGPUShaderModule.h +57 -0
  1292. package/cpp/third_party/tgfx/src/gpu/webgpu/WebGPUTexture.cpp +144 -0
  1293. package/cpp/third_party/tgfx/src/gpu/webgpu/WebGPUTexture.h +73 -0
  1294. package/cpp/third_party/tgfx/src/gpu/webgpu/WebGPUUtil.cpp +364 -0
  1295. package/cpp/third_party/tgfx/src/gpu/webgpu/WebGPUUtil.h +72 -0
  1296. package/cpp/third_party/tgfx/src/gpu/webgpu/WebGPUWindow.cpp +156 -0
  1297. package/cpp/third_party/tgfx/src/layers/BackgroundHandler.cpp +363 -0
  1298. package/cpp/third_party/tgfx/src/layers/BackgroundHandler.h +217 -0
  1299. package/cpp/third_party/tgfx/src/layers/BackgroundSnapshotMap.h +102 -0
  1300. package/cpp/third_party/tgfx/src/layers/BackgroundSource.cpp +285 -0
  1301. package/cpp/third_party/tgfx/src/layers/BackgroundSource.h +104 -0
  1302. package/cpp/third_party/tgfx/src/layers/DashEffect.cpp +41 -0
  1303. package/cpp/third_party/tgfx/src/layers/DashEffect.h +33 -0
  1304. package/cpp/third_party/tgfx/src/layers/DisplayList.cpp +1250 -0
  1305. package/cpp/third_party/tgfx/src/layers/DrawArgs.h +76 -0
  1306. package/cpp/third_party/tgfx/src/layers/ImageLayer.cpp +50 -0
  1307. package/cpp/third_party/tgfx/src/layers/Layer.cpp +2257 -0
  1308. package/cpp/third_party/tgfx/src/layers/LayerProperty.cpp +62 -0
  1309. package/cpp/third_party/tgfx/src/layers/LayerRecorder.cpp +405 -0
  1310. package/cpp/third_party/tgfx/src/layers/LayerStyleSource.h +102 -0
  1311. package/cpp/third_party/tgfx/src/layers/MaskContext.cpp +225 -0
  1312. package/cpp/third_party/tgfx/src/layers/MaskContext.h +104 -0
  1313. package/cpp/third_party/tgfx/src/layers/MeshLayer.cpp +88 -0
  1314. package/cpp/third_party/tgfx/src/layers/NoiseDensityUtils.cpp +88 -0
  1315. package/cpp/third_party/tgfx/src/layers/NoiseDensityUtils.h +47 -0
  1316. package/cpp/third_party/tgfx/src/layers/OffscreenRenderer.cpp +265 -0
  1317. package/cpp/third_party/tgfx/src/layers/OffscreenRenderer.h +78 -0
  1318. package/cpp/third_party/tgfx/src/layers/OpaqueContext.cpp +477 -0
  1319. package/cpp/third_party/tgfx/src/layers/OpaqueContext.h +176 -0
  1320. package/cpp/third_party/tgfx/src/layers/OpaqueThreshold.h +23 -0
  1321. package/cpp/third_party/tgfx/src/layers/RegionTransformer.cpp +234 -0
  1322. package/cpp/third_party/tgfx/src/layers/RegionTransformer.h +109 -0
  1323. package/cpp/third_party/tgfx/src/layers/RootLayer.cpp +117 -0
  1324. package/cpp/third_party/tgfx/src/layers/RootLayer.h +91 -0
  1325. package/cpp/third_party/tgfx/src/layers/ShapeLayer.cpp +275 -0
  1326. package/cpp/third_party/tgfx/src/layers/ShapeStyle.cpp +37 -0
  1327. package/cpp/third_party/tgfx/src/layers/SolidLayer.cpp +95 -0
  1328. package/cpp/third_party/tgfx/src/layers/SpreadUtils.cpp +233 -0
  1329. package/cpp/third_party/tgfx/src/layers/SpreadUtils.h +71 -0
  1330. package/cpp/third_party/tgfx/src/layers/SubtreeCache.cpp +90 -0
  1331. package/cpp/third_party/tgfx/src/layers/SubtreeCache.h +62 -0
  1332. package/cpp/third_party/tgfx/src/layers/TextLayer.cpp +498 -0
  1333. package/cpp/third_party/tgfx/src/layers/TileCache.cpp +120 -0
  1334. package/cpp/third_party/tgfx/src/layers/TileCache.h +124 -0
  1335. package/cpp/third_party/tgfx/src/layers/VectorLayer.cpp +159 -0
  1336. package/cpp/third_party/tgfx/src/layers/compositing3d/BspTree.cpp +89 -0
  1337. package/cpp/third_party/tgfx/src/layers/compositing3d/BspTree.h +112 -0
  1338. package/cpp/third_party/tgfx/src/layers/compositing3d/Context3DCompositor.cpp +287 -0
  1339. package/cpp/third_party/tgfx/src/layers/compositing3d/Context3DCompositor.h +121 -0
  1340. package/cpp/third_party/tgfx/src/layers/compositing3d/DrawPolygon3D.cpp +269 -0
  1341. package/cpp/third_party/tgfx/src/layers/compositing3d/DrawPolygon3D.h +158 -0
  1342. package/cpp/third_party/tgfx/src/layers/compositing3d/Layer3DContext.cpp +85 -0
  1343. package/cpp/third_party/tgfx/src/layers/compositing3d/Layer3DContext.h +110 -0
  1344. package/cpp/third_party/tgfx/src/layers/compositing3d/Opaque3DContext.cpp +114 -0
  1345. package/cpp/third_party/tgfx/src/layers/compositing3d/Opaque3DContext.h +55 -0
  1346. package/cpp/third_party/tgfx/src/layers/compositing3d/Render3DContext.cpp +277 -0
  1347. package/cpp/third_party/tgfx/src/layers/compositing3d/Render3DContext.h +87 -0
  1348. package/cpp/third_party/tgfx/src/layers/contents/ComposeContent.cpp +109 -0
  1349. package/cpp/third_party/tgfx/src/layers/contents/ComposeContent.h +57 -0
  1350. package/cpp/third_party/tgfx/src/layers/contents/DrawContent.cpp +127 -0
  1351. package/cpp/third_party/tgfx/src/layers/contents/DrawContent.h +70 -0
  1352. package/cpp/third_party/tgfx/src/layers/contents/GeometryContent.h +44 -0
  1353. package/cpp/third_party/tgfx/src/layers/contents/LayerContent.h +107 -0
  1354. package/cpp/third_party/tgfx/src/layers/contents/MatrixContent.cpp +86 -0
  1355. package/cpp/third_party/tgfx/src/layers/contents/MatrixContent.h +53 -0
  1356. package/cpp/third_party/tgfx/src/layers/contents/MeshContent.cpp +48 -0
  1357. package/cpp/third_party/tgfx/src/layers/contents/MeshContent.h +45 -0
  1358. package/cpp/third_party/tgfx/src/layers/contents/PathContent.cpp +76 -0
  1359. package/cpp/third_party/tgfx/src/layers/contents/PathContent.h +49 -0
  1360. package/cpp/third_party/tgfx/src/layers/contents/RRectContent.cpp +66 -0
  1361. package/cpp/third_party/tgfx/src/layers/contents/RRectContent.h +48 -0
  1362. package/cpp/third_party/tgfx/src/layers/contents/RRectsContent.cpp +97 -0
  1363. package/cpp/third_party/tgfx/src/layers/contents/RRectsContent.h +49 -0
  1364. package/cpp/third_party/tgfx/src/layers/contents/RectContent.cpp +67 -0
  1365. package/cpp/third_party/tgfx/src/layers/contents/RectContent.h +48 -0
  1366. package/cpp/third_party/tgfx/src/layers/contents/RectsContent.cpp +94 -0
  1367. package/cpp/third_party/tgfx/src/layers/contents/RectsContent.h +48 -0
  1368. package/cpp/third_party/tgfx/src/layers/contents/ShapeContent.cpp +193 -0
  1369. package/cpp/third_party/tgfx/src/layers/contents/ShapeContent.h +81 -0
  1370. package/cpp/third_party/tgfx/src/layers/contents/TextContent.cpp +56 -0
  1371. package/cpp/third_party/tgfx/src/layers/contents/TextContent.h +46 -0
  1372. package/cpp/third_party/tgfx/src/layers/filters/BlendFilter.cpp +51 -0
  1373. package/cpp/third_party/tgfx/src/layers/filters/BlurFilter.cpp +60 -0
  1374. package/cpp/third_party/tgfx/src/layers/filters/ColorMatrixFilter.cpp +43 -0
  1375. package/cpp/third_party/tgfx/src/layers/filters/DropShadowFilter.cpp +92 -0
  1376. package/cpp/third_party/tgfx/src/layers/filters/InnerShadowFilter.cpp +93 -0
  1377. package/cpp/third_party/tgfx/src/layers/filters/LayerFilter.cpp +43 -0
  1378. package/cpp/third_party/tgfx/src/layers/filters/LayerImageFilter.cpp +56 -0
  1379. package/cpp/third_party/tgfx/src/layers/filters/NoiseFilter.cpp +356 -0
  1380. package/cpp/third_party/tgfx/src/layers/imagefilters/GlassRefractionImageFilter.cpp +81 -0
  1381. package/cpp/third_party/tgfx/src/layers/imagefilters/GlassRefractionImageFilter.h +48 -0
  1382. package/cpp/third_party/tgfx/src/layers/layerstyles/BackgroundBlurStyle.cpp +103 -0
  1383. package/cpp/third_party/tgfx/src/layers/layerstyles/DropShadowStyle.cpp +180 -0
  1384. package/cpp/third_party/tgfx/src/layers/layerstyles/GlassStyle.cpp +413 -0
  1385. package/cpp/third_party/tgfx/src/layers/layerstyles/InnerShadowStyle.cpp +219 -0
  1386. package/cpp/third_party/tgfx/src/layers/layerstyles/LayerStyle.cpp +42 -0
  1387. package/cpp/third_party/tgfx/src/layers/layerstyles/NoiseStyle.cpp +280 -0
  1388. package/cpp/third_party/tgfx/src/layers/layerstyles/StyledShape.cpp +51 -0
  1389. package/cpp/third_party/tgfx/src/layers/processors/GLSLGlassRefractionFragmentProcessor.cpp +282 -0
  1390. package/cpp/third_party/tgfx/src/layers/processors/GLSLGlassRefractionFragmentProcessor.h +39 -0
  1391. package/cpp/third_party/tgfx/src/layers/processors/GLSLTentBlur1DFragmentProcessor.cpp +134 -0
  1392. package/cpp/third_party/tgfx/src/layers/processors/GLSLTentBlur1DFragmentProcessor.h +37 -0
  1393. package/cpp/third_party/tgfx/src/layers/processors/GlassRefractionFragmentProcessor.cpp +78 -0
  1394. package/cpp/third_party/tgfx/src/layers/processors/GlassRefractionFragmentProcessor.h +94 -0
  1395. package/cpp/third_party/tgfx/src/layers/processors/TentBlur1DFragmentProcessor.cpp +37 -0
  1396. package/cpp/third_party/tgfx/src/layers/processors/TentBlur1DFragmentProcessor.h +54 -0
  1397. package/cpp/third_party/tgfx/src/layers/vectors/Ellipse.cpp +81 -0
  1398. package/cpp/third_party/tgfx/src/layers/vectors/FillStyle.cpp +173 -0
  1399. package/cpp/third_party/tgfx/src/layers/vectors/Geometry.cpp +304 -0
  1400. package/cpp/third_party/tgfx/src/layers/vectors/Geometry.h +142 -0
  1401. package/cpp/third_party/tgfx/src/layers/vectors/Gradient.cpp +196 -0
  1402. package/cpp/third_party/tgfx/src/layers/vectors/ImagePattern.cpp +147 -0
  1403. package/cpp/third_party/tgfx/src/layers/vectors/MergePath.cpp +78 -0
  1404. package/cpp/third_party/tgfx/src/layers/vectors/Painter.cpp +112 -0
  1405. package/cpp/third_party/tgfx/src/layers/vectors/Painter.h +158 -0
  1406. package/cpp/third_party/tgfx/src/layers/vectors/Polystar.cpp +285 -0
  1407. package/cpp/third_party/tgfx/src/layers/vectors/Rectangle.cpp +101 -0
  1408. package/cpp/third_party/tgfx/src/layers/vectors/Repeater.cpp +174 -0
  1409. package/cpp/third_party/tgfx/src/layers/vectors/RoundCorner.cpp +56 -0
  1410. package/cpp/third_party/tgfx/src/layers/vectors/ShapePath.cpp +68 -0
  1411. package/cpp/third_party/tgfx/src/layers/vectors/SolidColor.cpp +37 -0
  1412. package/cpp/third_party/tgfx/src/layers/vectors/StrokeStyle.cpp +260 -0
  1413. package/cpp/third_party/tgfx/src/layers/vectors/Text.cpp +77 -0
  1414. package/cpp/third_party/tgfx/src/layers/vectors/TextModifier.cpp +256 -0
  1415. package/cpp/third_party/tgfx/src/layers/vectors/TextPath.cpp +258 -0
  1416. package/cpp/third_party/tgfx/src/layers/vectors/TextSelector.cpp +493 -0
  1417. package/cpp/third_party/tgfx/src/layers/vectors/TrimPath.cpp +194 -0
  1418. package/cpp/third_party/tgfx/src/layers/vectors/VectorContext.cpp +80 -0
  1419. package/cpp/third_party/tgfx/src/layers/vectors/VectorContext.h +73 -0
  1420. package/cpp/third_party/tgfx/src/layers/vectors/VectorElement.cpp +31 -0
  1421. package/cpp/third_party/tgfx/src/layers/vectors/VectorGroup.cpp +188 -0
  1422. package/cpp/third_party/tgfx/src/pdf/DeflateStream.cpp +133 -0
  1423. package/cpp/third_party/tgfx/src/pdf/DeflateStream.h +42 -0
  1424. package/cpp/third_party/tgfx/src/pdf/PDFBitmap.cpp +414 -0
  1425. package/cpp/third_party/tgfx/src/pdf/PDFBitmap.h +39 -0
  1426. package/cpp/third_party/tgfx/src/pdf/PDFDocumentImpl.cpp +517 -0
  1427. package/cpp/third_party/tgfx/src/pdf/PDFDocumentImpl.h +208 -0
  1428. package/cpp/third_party/tgfx/src/pdf/PDFExportContext.cpp +1490 -0
  1429. package/cpp/third_party/tgfx/src/pdf/PDFExportContext.h +188 -0
  1430. package/cpp/third_party/tgfx/src/pdf/PDFFont.cpp +582 -0
  1431. package/cpp/third_party/tgfx/src/pdf/PDFFont.h +183 -0
  1432. package/cpp/third_party/tgfx/src/pdf/PDFFormXObject.cpp +54 -0
  1433. package/cpp/third_party/tgfx/src/pdf/PDFFormXObject.h +33 -0
  1434. package/cpp/third_party/tgfx/src/pdf/PDFGlyphUse.h +89 -0
  1435. package/cpp/third_party/tgfx/src/pdf/PDFGradientShader.cpp +1009 -0
  1436. package/cpp/third_party/tgfx/src/pdf/PDFGradientShader.h +44 -0
  1437. package/cpp/third_party/tgfx/src/pdf/PDFGraphicStackState.cpp +175 -0
  1438. package/cpp/third_party/tgfx/src/pdf/PDFGraphicStackState.h +65 -0
  1439. package/cpp/third_party/tgfx/src/pdf/PDFGraphicState.cpp +91 -0
  1440. package/cpp/third_party/tgfx/src/pdf/PDFGraphicState.h +75 -0
  1441. package/cpp/third_party/tgfx/src/pdf/PDFMetadata.cpp +109 -0
  1442. package/cpp/third_party/tgfx/src/pdf/PDFMetadataUtils.cpp +334 -0
  1443. package/cpp/third_party/tgfx/src/pdf/PDFMetadataUtils.h +39 -0
  1444. package/cpp/third_party/tgfx/src/pdf/PDFResourceDictionary.cpp +83 -0
  1445. package/cpp/third_party/tgfx/src/pdf/PDFResourceDictionary.h +42 -0
  1446. package/cpp/third_party/tgfx/src/pdf/PDFShader.cpp +392 -0
  1447. package/cpp/third_party/tgfx/src/pdf/PDFShader.h +46 -0
  1448. package/cpp/third_party/tgfx/src/pdf/PDFTag.cpp +441 -0
  1449. package/cpp/third_party/tgfx/src/pdf/PDFTag.h +158 -0
  1450. package/cpp/third_party/tgfx/src/pdf/PDFTypes.cpp +351 -0
  1451. package/cpp/third_party/tgfx/src/pdf/PDFTypes.h +174 -0
  1452. package/cpp/third_party/tgfx/src/pdf/PDFUnion.cpp +324 -0
  1453. package/cpp/third_party/tgfx/src/pdf/PDFUnion.h +104 -0
  1454. package/cpp/third_party/tgfx/src/pdf/PDFUtils.cpp +437 -0
  1455. package/cpp/third_party/tgfx/src/pdf/PDFUtils.h +100 -0
  1456. package/cpp/third_party/tgfx/src/pdf/fontSubset/PDFMakeCIDGlyphWidthsArray.cpp +203 -0
  1457. package/cpp/third_party/tgfx/src/pdf/fontSubset/PDFMakeCIDGlyphWidthsArray.h +36 -0
  1458. package/cpp/third_party/tgfx/src/pdf/fontSubset/PDFMakeToUnicodeCmap.cpp +221 -0
  1459. package/cpp/third_party/tgfx/src/pdf/fontSubset/PDFMakeToUnicodeCmap.h +32 -0
  1460. package/cpp/third_party/tgfx/src/pdf/fontSubset/PDFSubsetFont.cpp +128 -0
  1461. package/cpp/third_party/tgfx/src/pdf/fontSubset/PDFSubsetFont.h +30 -0
  1462. package/cpp/third_party/tgfx/src/pdf/fontSubset/PDFType1Font.cpp +339 -0
  1463. package/cpp/third_party/tgfx/src/pdf/fontSubset/PDFType1Font.h +28 -0
  1464. package/cpp/third_party/tgfx/src/platform/ImageReader.cpp +124 -0
  1465. package/cpp/third_party/tgfx/src/platform/ImageStream.h +78 -0
  1466. package/cpp/third_party/tgfx/src/platform/Print.cpp +43 -0
  1467. package/cpp/third_party/tgfx/src/platform/android/AHardwareBufferFunctions.cpp +55 -0
  1468. package/cpp/third_party/tgfx/src/platform/android/AHardwareBufferFunctions.h +53 -0
  1469. package/cpp/third_party/tgfx/src/platform/android/AndroidBitmap.cpp +133 -0
  1470. package/cpp/third_party/tgfx/src/platform/android/GlyphRenderer.cpp +437 -0
  1471. package/cpp/third_party/tgfx/src/platform/android/GlyphRenderer.h +92 -0
  1472. package/cpp/third_party/tgfx/src/platform/android/HandlerThread.cpp +69 -0
  1473. package/cpp/third_party/tgfx/src/platform/android/HandlerThread.h +43 -0
  1474. package/cpp/third_party/tgfx/src/platform/android/HardwareBuffer.cpp +127 -0
  1475. package/cpp/third_party/tgfx/src/platform/android/JNIEnvironment.cpp +94 -0
  1476. package/cpp/third_party/tgfx/src/platform/android/JNIInit.cpp +49 -0
  1477. package/cpp/third_party/tgfx/src/platform/android/JNIInit.h +26 -0
  1478. package/cpp/third_party/tgfx/src/platform/android/JNIUtil.cpp +38 -0
  1479. package/cpp/third_party/tgfx/src/platform/android/JNIUtil.h +32 -0
  1480. package/cpp/third_party/tgfx/src/platform/android/NativeCodec.cpp +415 -0
  1481. package/cpp/third_party/tgfx/src/platform/android/NativeCodec.h +52 -0
  1482. package/cpp/third_party/tgfx/src/platform/android/NativeImageBuffer.cpp +70 -0
  1483. package/cpp/third_party/tgfx/src/platform/android/NativeImageBuffer.h +59 -0
  1484. package/cpp/third_party/tgfx/src/platform/android/Print.cpp +38 -0
  1485. package/cpp/third_party/tgfx/src/platform/android/SurfaceTexture.cpp +309 -0
  1486. package/cpp/third_party/tgfx/src/platform/android/SurfaceTexture.h +84 -0
  1487. package/cpp/third_party/tgfx/src/platform/android/SurfaceTextureReader.cpp +71 -0
  1488. package/cpp/third_party/tgfx/src/platform/apple/BitmapContextUtil.h +26 -0
  1489. package/cpp/third_party/tgfx/src/platform/apple/BitmapContextUtil.mm +63 -0
  1490. package/cpp/third_party/tgfx/src/platform/apple/CGColorSpaceUtil.h +29 -0
  1491. package/cpp/third_party/tgfx/src/platform/apple/CGColorSpaceUtil.mm +46 -0
  1492. package/cpp/third_party/tgfx/src/platform/apple/CTTypeface.mm +44 -0
  1493. package/cpp/third_party/tgfx/src/platform/apple/HardwareBuffer.mm +102 -0
  1494. package/cpp/third_party/tgfx/src/platform/apple/NativeCodec.h +43 -0
  1495. package/cpp/third_party/tgfx/src/platform/apple/NativeCodec.mm +197 -0
  1496. package/cpp/third_party/tgfx/src/platform/mock/HardwareBuffer.cpp +47 -0
  1497. package/cpp/third_party/tgfx/src/platform/mock/NativeCodec.cpp +33 -0
  1498. package/cpp/third_party/tgfx/src/platform/ohos/HardwareBuffer.cpp +99 -0
  1499. package/cpp/third_party/tgfx/src/platform/ohos/NativeCodec.cpp +230 -0
  1500. package/cpp/third_party/tgfx/src/platform/ohos/NativeCodec.h +49 -0
  1501. package/cpp/third_party/tgfx/src/platform/ohos/OHOSImageInfo.cpp +85 -0
  1502. package/cpp/third_party/tgfx/src/platform/ohos/OHOSImageInfo.h +52 -0
  1503. package/cpp/third_party/tgfx/src/platform/ohos/OHOSPixelMap.cpp +66 -0
  1504. package/cpp/third_party/tgfx/src/platform/ohos/Print.cpp +45 -0
  1505. package/cpp/third_party/tgfx/src/platform/web/HardwareBuffer.cpp +51 -0
  1506. package/cpp/third_party/tgfx/src/platform/web/NativeCodec.cpp +113 -0
  1507. package/cpp/third_party/tgfx/src/platform/web/NativeCodec.h +45 -0
  1508. package/cpp/third_party/tgfx/src/platform/web/ReadPixelsFromCanvasImage.cpp +54 -0
  1509. package/cpp/third_party/tgfx/src/platform/web/ReadPixelsFromCanvasImage.h +31 -0
  1510. package/cpp/third_party/tgfx/src/platform/web/TGFXWasmBindings.cpp +79 -0
  1511. package/cpp/third_party/tgfx/src/platform/web/TGFXWasmBindings.h +23 -0
  1512. package/cpp/third_party/tgfx/src/platform/web/VideoElement.cpp +84 -0
  1513. package/cpp/third_party/tgfx/src/platform/web/VideoElement.h +51 -0
  1514. package/cpp/third_party/tgfx/src/platform/web/VideoElementReader.cpp +42 -0
  1515. package/cpp/third_party/tgfx/src/platform/web/WebAtlasUploadTask.cpp +67 -0
  1516. package/cpp/third_party/tgfx/src/platform/web/WebAtlasUploadTask.h +31 -0
  1517. package/cpp/third_party/tgfx/src/platform/web/WebGlyphRasterizer.cpp +47 -0
  1518. package/cpp/third_party/tgfx/src/platform/web/WebGlyphRasterizer.h +35 -0
  1519. package/cpp/third_party/tgfx/src/platform/web/WebImageBuffer.cpp +185 -0
  1520. package/cpp/third_party/tgfx/src/platform/web/WebImageBuffer.h +85 -0
  1521. package/cpp/third_party/tgfx/src/platform/web/WebImageInfo.cpp +134 -0
  1522. package/cpp/third_party/tgfx/src/platform/web/WebImageInfo.h +33 -0
  1523. package/cpp/third_party/tgfx/src/platform/web/WebPathRasterizer.cpp +108 -0
  1524. package/cpp/third_party/tgfx/src/platform/web/WebPathRasterizer.h +35 -0
  1525. package/cpp/third_party/tgfx/src/platform/web/WebScalerContext.cpp +118 -0
  1526. package/cpp/third_party/tgfx/src/platform/web/WebScalerContext.h +62 -0
  1527. package/cpp/third_party/tgfx/src/platform/web/WebTypeface.cpp +146 -0
  1528. package/cpp/third_party/tgfx/src/platform/web/WebTypeface.h +97 -0
  1529. package/cpp/third_party/tgfx/src/platform/win/D3D11Defines.h +129 -0
  1530. package/cpp/third_party/tgfx/src/platform/win/D3D11Util.cpp +69 -0
  1531. package/cpp/third_party/tgfx/src/platform/win/D3D11Util.h +47 -0
  1532. package/cpp/third_party/tgfx/src/platform/win/HardwareBuffer.cpp +215 -0
  1533. package/cpp/third_party/tgfx/src/platform/win/NativeCodec.cpp +351 -0
  1534. package/cpp/third_party/tgfx/src/platform/win/NativeCodec.h +47 -0
  1535. package/cpp/third_party/tgfx/src/svg/ElementWriter.cpp +1569 -0
  1536. package/cpp/third_party/tgfx/src/svg/ElementWriter.h +199 -0
  1537. package/cpp/third_party/tgfx/src/svg/ResourceStore.h +82 -0
  1538. package/cpp/third_party/tgfx/src/svg/SVGAttribute.cpp +63 -0
  1539. package/cpp/third_party/tgfx/src/svg/SVGAttributeParser.cpp +1293 -0
  1540. package/cpp/third_party/tgfx/src/svg/SVGAttributeParser.h +182 -0
  1541. package/cpp/third_party/tgfx/src/svg/SVGDOM.cpp +126 -0
  1542. package/cpp/third_party/tgfx/src/svg/SVGExportContext.cpp +894 -0
  1543. package/cpp/third_party/tgfx/src/svg/SVGExportContext.h +169 -0
  1544. package/cpp/third_party/tgfx/src/svg/SVGExporter.cpp +76 -0
  1545. package/cpp/third_party/tgfx/src/svg/SVGFilterContext.cpp +132 -0
  1546. package/cpp/third_party/tgfx/src/svg/SVGFilterContext.h +86 -0
  1547. package/cpp/third_party/tgfx/src/svg/SVGLengthContext.cpp +124 -0
  1548. package/cpp/third_party/tgfx/src/svg/SVGNodeConstructor.cpp +490 -0
  1549. package/cpp/third_party/tgfx/src/svg/SVGNodeConstructor.h +94 -0
  1550. package/cpp/third_party/tgfx/src/svg/SVGParseColor.cpp +363 -0
  1551. package/cpp/third_party/tgfx/src/svg/SVGPathParser.cpp +292 -0
  1552. package/cpp/third_party/tgfx/src/svg/SVGRenderContext.cpp +505 -0
  1553. package/cpp/third_party/tgfx/src/svg/SVGRenderContext.h +250 -0
  1554. package/cpp/third_party/tgfx/src/svg/SVGTextBuilder.cpp +112 -0
  1555. package/cpp/third_party/tgfx/src/svg/SVGTextBuilder.h +43 -0
  1556. package/cpp/third_party/tgfx/src/svg/SVGUtils.cpp +508 -0
  1557. package/cpp/third_party/tgfx/src/svg/SVGUtils.h +89 -0
  1558. package/cpp/third_party/tgfx/src/svg/TextShaper.cpp +119 -0
  1559. package/cpp/third_party/tgfx/src/svg/node/SVGCircle.cpp +86 -0
  1560. package/cpp/third_party/tgfx/src/svg/node/SVGClipPath.cpp +47 -0
  1561. package/cpp/third_party/tgfx/src/svg/node/SVGContainer.cpp +74 -0
  1562. package/cpp/third_party/tgfx/src/svg/node/SVGEllipse.cpp +79 -0
  1563. package/cpp/third_party/tgfx/src/svg/node/SVGFe.cpp +145 -0
  1564. package/cpp/third_party/tgfx/src/svg/node/SVGFeBlend.cpp +55 -0
  1565. package/cpp/third_party/tgfx/src/svg/node/SVGFeColorMatrix.cpp +159 -0
  1566. package/cpp/third_party/tgfx/src/svg/node/SVGFeComponentTransfer.cpp +140 -0
  1567. package/cpp/third_party/tgfx/src/svg/node/SVGFeComposite.cpp +78 -0
  1568. package/cpp/third_party/tgfx/src/svg/node/SVGFeDisplacementMap.cpp +64 -0
  1569. package/cpp/third_party/tgfx/src/svg/node/SVGFeGaussianBlur.cpp +54 -0
  1570. package/cpp/third_party/tgfx/src/svg/node/SVGFeImage.cpp +36 -0
  1571. package/cpp/third_party/tgfx/src/svg/node/SVGFeLightSource.cpp +50 -0
  1572. package/cpp/third_party/tgfx/src/svg/node/SVGFeLighting.cpp +60 -0
  1573. package/cpp/third_party/tgfx/src/svg/node/SVGFeMerge.cpp +53 -0
  1574. package/cpp/third_party/tgfx/src/svg/node/SVGFeMorphology.cpp +60 -0
  1575. package/cpp/third_party/tgfx/src/svg/node/SVGFeOffset.cpp +37 -0
  1576. package/cpp/third_party/tgfx/src/svg/node/SVGFeTurbulence.cpp +100 -0
  1577. package/cpp/third_party/tgfx/src/svg/node/SVGFilter.cpp +219 -0
  1578. package/cpp/third_party/tgfx/src/svg/node/SVGGradient.cpp +117 -0
  1579. package/cpp/third_party/tgfx/src/svg/node/SVGImage.cpp +126 -0
  1580. package/cpp/third_party/tgfx/src/svg/node/SVGLine.cpp +82 -0
  1581. package/cpp/third_party/tgfx/src/svg/node/SVGLinearGradient.cpp +56 -0
  1582. package/cpp/third_party/tgfx/src/svg/node/SVGMask.cpp +80 -0
  1583. package/cpp/third_party/tgfx/src/svg/node/SVGNode.cpp +201 -0
  1584. package/cpp/third_party/tgfx/src/svg/node/SVGPath.cpp +84 -0
  1585. package/cpp/third_party/tgfx/src/svg/node/SVGPattern.cpp +161 -0
  1586. package/cpp/third_party/tgfx/src/svg/node/SVGPoly.cpp +83 -0
  1587. package/cpp/third_party/tgfx/src/svg/node/SVGRadialGradient.cpp +63 -0
  1588. package/cpp/third_party/tgfx/src/svg/node/SVGRect.cpp +104 -0
  1589. package/cpp/third_party/tgfx/src/svg/node/SVGRoot.cpp +133 -0
  1590. package/cpp/third_party/tgfx/src/svg/node/SVGShape.cpp +59 -0
  1591. package/cpp/third_party/tgfx/src/svg/node/SVGStop.cpp +31 -0
  1592. package/cpp/third_party/tgfx/src/svg/node/SVGText.cpp +190 -0
  1593. package/cpp/third_party/tgfx/src/svg/node/SVGTransformableNode.cpp +71 -0
  1594. package/cpp/third_party/tgfx/src/svg/node/SVGUse.cpp +90 -0
  1595. package/cpp/third_party/tgfx/src/svg/xml/DOMParser.cpp +107 -0
  1596. package/cpp/third_party/tgfx/src/svg/xml/DOMParser.h +62 -0
  1597. package/cpp/third_party/tgfx/src/svg/xml/XMLDOM.cpp +156 -0
  1598. package/cpp/third_party/tgfx/src/svg/xml/XMLParser.cpp +187 -0
  1599. package/cpp/third_party/tgfx/src/svg/xml/XMLParser.h +59 -0
  1600. package/cpp/third_party/tgfx/src/svg/xml/XMLWriter.cpp +289 -0
  1601. package/cpp/third_party/tgfx/src/svg/xml/XMLWriter.h +132 -0
  1602. package/cpp/third_party/tgfx/vendor.json +434 -0
  1603. package/ios/HybridTgfxView.swift +95 -0
  1604. package/ios/TgfxMetalView.h +42 -0
  1605. package/ios/TgfxMetalView.mm +267 -0
  1606. package/ios/libs/libtgfx.xcframework/Info.plist +43 -0
  1607. package/ios/libs/libtgfx.xcframework/ios-arm64/libtgfx-ios.a +0 -0
  1608. package/ios/libs/libtgfx.xcframework/ios-arm64-simulator/libtgfx-ios.a +0 -0
  1609. package/lib/compiler/colors.d.ts +26 -0
  1610. package/lib/compiler/colors.js +364 -0
  1611. package/lib/compiler/compile.d.ts +17 -0
  1612. package/lib/compiler/compile.js +474 -0
  1613. package/lib/compiler/filters.d.ts +43 -0
  1614. package/lib/compiler/filters.js +98 -0
  1615. package/lib/compiler/image.d.ts +31 -0
  1616. package/lib/compiler/image.js +71 -0
  1617. package/lib/compiler/paint.d.ts +65 -0
  1618. package/lib/compiler/paint.js +207 -0
  1619. package/lib/compiler/sksl.d.ts +10 -0
  1620. package/lib/compiler/sksl.js +180 -0
  1621. package/lib/compiler/text.d.ts +37 -0
  1622. package/lib/compiler/text.js +77 -0
  1623. package/lib/compiler/transform.d.ts +34 -0
  1624. package/lib/compiler/transform.js +11 -0
  1625. package/lib/compiler/values.d.ts +22 -0
  1626. package/lib/compiler/values.js +22 -0
  1627. package/lib/compiler/writer.d.ts +70 -0
  1628. package/lib/compiler/writer.js +142 -0
  1629. package/lib/components/Canvas.d.ts +10 -0
  1630. package/lib/components/Canvas.js +139 -0
  1631. package/lib/components/Group.d.ts +7 -0
  1632. package/lib/components/Group.js +6 -0
  1633. package/lib/components/Paint.d.ts +45 -0
  1634. package/lib/components/Paint.js +44 -0
  1635. package/lib/components/drawings.d.ts +56 -0
  1636. package/lib/components/drawings.js +55 -0
  1637. package/lib/hooks/source.d.ts +18 -0
  1638. package/lib/hooks/source.js +47 -0
  1639. package/lib/hooks/useCameraFrame.d.ts +94 -0
  1640. package/lib/hooks/useCameraFrame.js +139 -0
  1641. package/lib/hooks/useClock.d.ts +13 -0
  1642. package/lib/hooks/useClock.js +27 -0
  1643. package/lib/hooks/useFonts.d.ts +81 -0
  1644. package/lib/hooks/useFonts.js +117 -0
  1645. package/lib/hooks/useImage.d.ts +70 -0
  1646. package/lib/hooks/useImage.js +116 -0
  1647. package/lib/imperative.d.ts +59 -0
  1648. package/lib/imperative.js +582 -0
  1649. package/lib/index.d.ts +17 -0
  1650. package/lib/index.js +11 -0
  1651. package/lib/reanimated/AnimationDriver.d.ts +9 -0
  1652. package/lib/reanimated/AnimationDriver.js +24 -0
  1653. package/lib/reanimated/liveValue.d.ts +28 -0
  1654. package/lib/reanimated/liveValue.js +44 -0
  1655. package/lib/reanimated/moduleNotFound.d.ts +2 -0
  1656. package/lib/reanimated/moduleNotFound.js +13 -0
  1657. package/lib/reanimated/peer.d.ts +40 -0
  1658. package/lib/reanimated/peer.js +55 -0
  1659. package/lib/reanimated/slotFlags.d.ts +16 -0
  1660. package/lib/reanimated/slotFlags.js +50 -0
  1661. package/lib/reconciler/Container.d.ts +24 -0
  1662. package/lib/reconciler/Container.js +56 -0
  1663. package/lib/reconciler/Reconciler.d.ts +14 -0
  1664. package/lib/reconciler/Reconciler.js +159 -0
  1665. package/lib/reconciler/directNodes.d.ts +19 -0
  1666. package/lib/reconciler/directNodes.js +68 -0
  1667. package/lib/reconciler/types.d.ts +43 -0
  1668. package/lib/reconciler/types.js +38 -0
  1669. package/lib/specs/TgfxFonts.nitro.d.ts +92 -0
  1670. package/lib/specs/TgfxFonts.nitro.js +1 -0
  1671. package/lib/specs/TgfxImage.nitro.d.ts +85 -0
  1672. package/lib/specs/TgfxImage.nitro.js +1 -0
  1673. package/lib/specs/TgfxSlots.nitro.d.ts +44 -0
  1674. package/lib/specs/TgfxSlots.nitro.js +1 -0
  1675. package/lib/specs/TgfxView.nitro.d.ts +98 -0
  1676. package/lib/specs/TgfxView.nitro.js +1 -0
  1677. package/lib/types.d.ts +399 -0
  1678. package/lib/types.js +1 -0
  1679. package/lib/views/TgfxNativeView.d.ts +9 -0
  1680. package/lib/views/TgfxNativeView.js +8 -0
  1681. package/nitro.json +48 -0
  1682. package/nitrogen/generated/.gitattributes +1 -0
  1683. package/nitrogen/generated/android/NitroTgfx+autolinking.cmake +88 -0
  1684. package/nitrogen/generated/android/NitroTgfx+autolinking.gradle +27 -0
  1685. package/nitrogen/generated/android/NitroTgfxOnLoad.cpp +86 -0
  1686. package/nitrogen/generated/android/NitroTgfxOnLoad.hpp +34 -0
  1687. package/nitrogen/generated/android/c++/JHybridTgfxViewSpec.cpp +135 -0
  1688. package/nitrogen/generated/android/c++/JHybridTgfxViewSpec.hpp +70 -0
  1689. package/nitrogen/generated/android/c++/JNativeSnapshot.hpp +71 -0
  1690. package/nitrogen/generated/android/c++/JNativeSnapshotOptions.hpp +81 -0
  1691. package/nitrogen/generated/android/c++/views/JHybridTgfxViewStateUpdater.cpp +60 -0
  1692. package/nitrogen/generated/android/c++/views/JHybridTgfxViewStateUpdater.hpp +49 -0
  1693. package/nitrogen/generated/android/kotlin/com/margelo/nitro/tgfx/HybridTgfxViewSpec.kt +83 -0
  1694. package/nitrogen/generated/android/kotlin/com/margelo/nitro/tgfx/NativeSnapshot.kt +66 -0
  1695. package/nitrogen/generated/android/kotlin/com/margelo/nitro/tgfx/NativeSnapshotOptions.kt +81 -0
  1696. package/nitrogen/generated/android/kotlin/com/margelo/nitro/tgfx/NitroTgfxOnLoad.kt +35 -0
  1697. package/nitrogen/generated/android/kotlin/com/margelo/nitro/tgfx/views/HybridTgfxViewManager.kt +80 -0
  1698. package/nitrogen/generated/android/kotlin/com/margelo/nitro/tgfx/views/HybridTgfxViewStateUpdater.kt +23 -0
  1699. package/nitrogen/generated/ios/NitroTgfx+autolinking.rb +62 -0
  1700. package/nitrogen/generated/ios/NitroTgfx-Swift-Cxx-Bridge.cpp +57 -0
  1701. package/nitrogen/generated/ios/NitroTgfx-Swift-Cxx-Bridge.hpp +193 -0
  1702. package/nitrogen/generated/ios/NitroTgfx-Swift-Cxx-Umbrella.hpp +53 -0
  1703. package/nitrogen/generated/ios/NitroTgfxAutolinking.mm +63 -0
  1704. package/nitrogen/generated/ios/NitroTgfxAutolinking.swift +26 -0
  1705. package/nitrogen/generated/ios/c++/HybridTgfxViewSpecSwift.cpp +11 -0
  1706. package/nitrogen/generated/ios/c++/HybridTgfxViewSpecSwift.hpp +130 -0
  1707. package/nitrogen/generated/ios/c++/views/HybridTgfxViewComponent.mm +127 -0
  1708. package/nitrogen/generated/ios/swift/Func_void.swift +46 -0
  1709. package/nitrogen/generated/ios/swift/Func_void_NativeSnapshot.swift +46 -0
  1710. package/nitrogen/generated/ios/swift/Func_void_std__exception_ptr.swift +46 -0
  1711. package/nitrogen/generated/ios/swift/HybridTgfxViewSpec.swift +60 -0
  1712. package/nitrogen/generated/ios/swift/HybridTgfxViewSpec_cxx.swift +238 -0
  1713. package/nitrogen/generated/ios/swift/NativeSnapshot.swift +44 -0
  1714. package/nitrogen/generated/ios/swift/NativeSnapshotOptions.swift +59 -0
  1715. package/nitrogen/generated/shared/c++/HybridTgfxFontsSpec.cpp +27 -0
  1716. package/nitrogen/generated/shared/c++/HybridTgfxFontsSpec.hpp +75 -0
  1717. package/nitrogen/generated/shared/c++/HybridTgfxImageFactorySpec.cpp +26 -0
  1718. package/nitrogen/generated/shared/c++/HybridTgfxImageFactorySpec.hpp +74 -0
  1719. package/nitrogen/generated/shared/c++/HybridTgfxImageSpec.cpp +24 -0
  1720. package/nitrogen/generated/shared/c++/HybridTgfxImageSpec.hpp +65 -0
  1721. package/nitrogen/generated/shared/c++/HybridTgfxSlotsFactorySpec.cpp +21 -0
  1722. package/nitrogen/generated/shared/c++/HybridTgfxSlotsFactorySpec.hpp +64 -0
  1723. package/nitrogen/generated/shared/c++/HybridTgfxSlotsSpec.cpp +21 -0
  1724. package/nitrogen/generated/shared/c++/HybridTgfxSlotsSpec.hpp +62 -0
  1725. package/nitrogen/generated/shared/c++/HybridTgfxViewSpec.cpp +29 -0
  1726. package/nitrogen/generated/shared/c++/HybridTgfxViewSpec.hpp +77 -0
  1727. package/nitrogen/generated/shared/c++/LineMeasurement.hpp +107 -0
  1728. package/nitrogen/generated/shared/c++/NativeSnapshot.hpp +96 -0
  1729. package/nitrogen/generated/shared/c++/NativeSnapshotOptions.hpp +107 -0
  1730. package/nitrogen/generated/shared/c++/PixelFormat.hpp +100 -0
  1731. package/nitrogen/generated/shared/c++/TextLayoutStyle.hpp +119 -0
  1732. package/nitrogen/generated/shared/c++/TextMeasurement.hpp +105 -0
  1733. package/nitrogen/generated/shared/c++/views/HybridTgfxViewComponent.cpp +94 -0
  1734. package/nitrogen/generated/shared/c++/views/HybridTgfxViewComponent.hpp +111 -0
  1735. package/nitrogen/generated/shared/json/TgfxViewConfig.json +11 -0
  1736. package/package.json +144 -8
  1737. package/react-native.config.js +16 -0
  1738. package/scripts/build-tgfx-ios.sh +60 -0
  1739. package/src/compiler/colors.test.ts +195 -0
  1740. package/src/compiler/colors.ts +402 -0
  1741. package/src/compiler/compile.test.ts +971 -0
  1742. package/src/compiler/compile.ts +565 -0
  1743. package/src/compiler/filters.ts +140 -0
  1744. package/src/compiler/image.ts +109 -0
  1745. package/src/compiler/paint.ts +321 -0
  1746. package/src/compiler/sceneHash.test.ts +70 -0
  1747. package/src/compiler/sksl.test.ts +219 -0
  1748. package/src/compiler/sksl.ts +218 -0
  1749. package/src/compiler/stringTable.test.ts +136 -0
  1750. package/src/compiler/svgPath.test.ts +147 -0
  1751. package/src/compiler/text.ts +97 -0
  1752. package/src/compiler/transform.ts +34 -0
  1753. package/src/compiler/values.ts +44 -0
  1754. package/src/compiler/writer.ts +159 -0
  1755. package/src/components/Canvas.test.tsx +735 -0
  1756. package/src/components/Canvas.tsx +199 -0
  1757. package/src/components/Group.ts +9 -0
  1758. package/src/components/Paint.ts +77 -0
  1759. package/src/components/drawings.ts +86 -0
  1760. package/src/hooks/source.ts +64 -0
  1761. package/src/hooks/useCameraFrame.test.tsx +286 -0
  1762. package/src/hooks/useCameraFrame.ts +222 -0
  1763. package/src/hooks/useClock.test.ts +50 -0
  1764. package/src/hooks/useClock.ts +36 -0
  1765. package/src/hooks/useFonts.test.tsx +186 -0
  1766. package/src/hooks/useFonts.ts +163 -0
  1767. package/src/hooks/useImage.test.tsx +236 -0
  1768. package/src/hooks/useImage.ts +143 -0
  1769. package/src/imperative.ts +697 -0
  1770. package/src/index.ts +125 -0
  1771. package/src/reanimated/AnimationDriver.test.ts +12 -0
  1772. package/src/reanimated/AnimationDriver.tsx +34 -0
  1773. package/src/reanimated/liveValue.ts +53 -0
  1774. package/src/reanimated/moduleNotFound.test.ts +54 -0
  1775. package/src/reanimated/moduleNotFound.ts +16 -0
  1776. package/src/reanimated/peer.ts +92 -0
  1777. package/src/reanimated/slotFlags.ts +73 -0
  1778. package/src/reconciler/Container.ts +78 -0
  1779. package/src/reconciler/Reconciler.test.ts +28 -0
  1780. package/src/reconciler/Reconciler.ts +210 -0
  1781. package/src/reconciler/directNodes.test.tsx +150 -0
  1782. package/src/reconciler/directNodes.ts +73 -0
  1783. package/src/reconciler/types.ts +51 -0
  1784. package/src/specs/TgfxFonts.nitro.ts +102 -0
  1785. package/src/specs/TgfxImage.nitro.ts +106 -0
  1786. package/src/specs/TgfxSlots.nitro.ts +46 -0
  1787. package/src/specs/TgfxView.nitro.ts +112 -0
  1788. package/src/testing/cppHarness.ts +116 -0
  1789. package/src/testing/nativeMocks.ts +21 -0
  1790. package/src/types.ts +441 -0
  1791. package/src/views/TgfxNativeView.ts +15 -0
  1792. package/src/views/idleGate.test.ts +58 -0
@@ -0,0 +1,970 @@
1
+ /////////////////////////////////////////////////////////////////////////////////////////////////
2
+ //
3
+ // Tencent is pleased to support the open source community by making tgfx available.
4
+ //
5
+ // Copyright (C) 2023 Tencent. All rights reserved.
6
+ //
7
+ // Licensed under the BSD 3-Clause License (the "License"); you may not use this file except
8
+ // in compliance with the License. You may obtain a copy of the License at
9
+ //
10
+ // https://opensource.org/licenses/BSD-3-Clause
11
+ //
12
+ // unless required by applicable law or agreed to in writing, software distributed under the
13
+ // license is distributed on an "as is" basis, without warranties or conditions of any kind,
14
+ // either express or implied. see the license for the specific language governing permissions
15
+ // and limitations under the license.
16
+ //
17
+ /////////////////////////////////////////////////////////////////////////////////////////////////
18
+
19
+ #include "FTScalerContext.h"
20
+ #include "ft2build.h"
21
+ #include FT_BITMAP_H
22
+ #include FT_COLOR_H
23
+ #include FT_OUTLINE_H
24
+ #include FT_SIZES_H
25
+ #include FT_TRUETYPE_TABLES_H
26
+ #include "FTRasterTarget.h"
27
+ #include "FTUtil.h"
28
+ #include "core/utils/ClearPixels.h"
29
+ #include "core/utils/ColorSpaceHelper.h"
30
+ #include "core/utils/GammaCorrection.h"
31
+ #include "core/utils/Log.h"
32
+ #include "core/utils/MathExtra.h"
33
+ #include "core/utils/USE.h"
34
+ #include "skcms.h"
35
+ #include "tgfx/core/Buffer.h"
36
+ #include "tgfx/core/Pixmap.h"
37
+ #include "tgfx/core/UTF.h"
38
+
39
+ #if defined(__ANDROID__) || defined(ANDROID)
40
+ #include "platform/android/GlyphRenderer.h"
41
+ #endif
42
+
43
+ namespace tgfx {
44
+ // See http://freetype.sourceforge.net/freetype2/docs/reference/ft2-bitmap_handling.html#FT_Bitmap_Embolden
45
+ // This value was chosen by eyeballing the result in Firefox and trying to match it.
46
+ static constexpr FT_Pos BITMAP_EMBOLDEN_STRENGTH = 1 << 6;
47
+ static constexpr int OUTLINE_EMBOLDEN_DIVISOR = 24;
48
+
49
+ static constexpr FT_UInt DefaultResolutionInDPI = 72;
50
+
51
+ // When FT_Set_Char_Size is called, the ppem value is recalculated using the formula:
52
+ // ppem = textSize * DPI / 72.
53
+ // In FreeType, ppem is stored as an unsigned short, so if textSize exceeds 65535, ppem will overflow.
54
+ // To prevent this, we cap textSize at 65535. For the ppem limit in the source code, check here:
55
+ // https://github.com/freetype/freetype/blob/VER-2-13-3/src/base/ftobjs.c/#L3359
56
+ static constexpr float MaxTextSize = 65535.f * 72.f / static_cast<float>(DefaultResolutionInDPI);
57
+
58
+ static float FTFixedToFloat(FT_Fixed x) {
59
+ return static_cast<float>(x) * 1.52587890625e-5f;
60
+ }
61
+
62
+ static FT_Fixed FloatToFTFixed(float x) {
63
+ static constexpr float MaxS32FitsInFloat = 2147483520.f;
64
+ static constexpr float MinS32FitsInFloat = -MaxS32FitsInFloat;
65
+ x = x < MaxS32FitsInFloat ? x : MaxS32FitsInFloat;
66
+ x = x > MinS32FitsInFloat ? x : MinS32FitsInFloat;
67
+ return static_cast<FT_Fixed>(x * (1 << 16));
68
+ }
69
+
70
+ static gfx::skcms_PixelFormat ToPixelFormat(ColorType colorType) {
71
+ switch (colorType) {
72
+ case ColorType::ALPHA_8:
73
+ return gfx::skcms_PixelFormat_A_8;
74
+ case ColorType::BGRA_8888:
75
+ return gfx::skcms_PixelFormat_BGRA_8888;
76
+ default:
77
+ return gfx::skcms_PixelFormat_RGBA_8888;
78
+ }
79
+ }
80
+
81
+ static void RenderOutLineGlyph(FT_Face face, const ImageInfo& dstInfo, void* dstPixels) {
82
+ auto buffer = static_cast<unsigned char*>(dstPixels);
83
+ auto pitch = static_cast<int>(dstInfo.rowBytes());
84
+ FT_Raster_Params params;
85
+ params.flags = FT_RASTER_FLAG_CLIP | FT_RASTER_FLAG_AA;
86
+ #if defined(TGFX_USE_TEXT_GAMMA_CORRECTION)
87
+ auto rows = dstInfo.height();
88
+ params.flags |= FT_RASTER_FLAG_DIRECT;
89
+ params.gray_spans = GraySpanFunc;
90
+ FTRasterTarget target = {buffer + (rows - 1) * pitch, pitch,
91
+ GammaCorrection::GammaTable().data()};
92
+ params.user = &target;
93
+ #else
94
+ FT_Bitmap bitmap;
95
+ bitmap.width = static_cast<unsigned>(dstInfo.width());
96
+ bitmap.rows = static_cast<unsigned>(dstInfo.height());
97
+ bitmap.pitch = pitch;
98
+ bitmap.buffer = buffer;
99
+ bitmap.pixel_mode = FT_PIXEL_MODE_GRAY;
100
+ bitmap.num_grays = 256;
101
+ params.target = &bitmap;
102
+ #endif
103
+ params.clip_box = {0, 0, static_cast<FT_Pos>(dstInfo.width()),
104
+ static_cast<FT_Pos>(dstInfo.height())};
105
+ auto outline = &face->glyph->outline;
106
+ FT_BBox bbox;
107
+ FT_Outline_Get_CBox(outline, &bbox);
108
+ // outset the box to integral boundaries
109
+ bbox.xMin &= ~63;
110
+ bbox.yMin &= ~63;
111
+ FT_Outline_Translate(outline, -bbox.xMin, -bbox.yMin);
112
+ FT_Outline_Render(face->glyph->library, outline, &params);
113
+
114
+ if (NeedConvertColorSpace(ColorSpace::SRGB(), dstInfo.colorSpace())) {
115
+ ConvertColorSpaceInPlace(dstInfo.width(), dstInfo.height(), dstInfo.colorType(),
116
+ dstInfo.alphaType(), dstInfo.rowBytes(), ColorSpace::SRGB(),
117
+ dstInfo.colorSpace(), dstPixels);
118
+ }
119
+ }
120
+
121
+ static void ApplyEmbolden(FT_Face face, FT_GlyphSlot glyph, GlyphID glyphId, FT_Int32 glyphFlags) {
122
+ switch (glyph->format) {
123
+ case FT_GLYPH_FORMAT_OUTLINE:
124
+ FT_Pos strength;
125
+ strength =
126
+ FT_MulFix(face->units_per_EM, face->size->metrics.y_scale) / OUTLINE_EMBOLDEN_DIVISOR;
127
+ FT_Outline_Embolden(&glyph->outline, strength);
128
+ break;
129
+ case FT_GLYPH_FORMAT_BITMAP:
130
+ if (!face->glyph->bitmap.buffer) {
131
+ FT_Load_Glyph(face, glyphId, glyphFlags);
132
+ }
133
+ FT_GlyphSlot_Own_Bitmap(glyph);
134
+ FT_Bitmap_Embolden(glyph->library, &glyph->bitmap, BITMAP_EMBOLDEN_STRENGTH, 0);
135
+ break;
136
+ default:
137
+ LOGE("unknown glyph format");
138
+ }
139
+ }
140
+
141
+ /**
142
+ * Returns the bitmap strike equal to or just larger than the requested size.
143
+ */
144
+ static FT_Int ChooseBitmapStrike(FT_Face face, FT_F26Dot6 scaleY) {
145
+ FT_Pos requestedPPEM = scaleY; // FT_Bitmap_Size::y_ppem is in 26.6 format.
146
+ FT_Int chosenStrikeIndex = -1;
147
+ FT_Pos chosenPPEM = 0;
148
+ for (FT_Int strikeIndex = 0; strikeIndex < face->num_fixed_sizes; ++strikeIndex) {
149
+ FT_Pos strikePPEM = face->available_sizes[strikeIndex].y_ppem;
150
+ if (strikePPEM == requestedPPEM) {
151
+ // exact match - our search stops here
152
+ return strikeIndex;
153
+ } else if (chosenPPEM < requestedPPEM) {
154
+ // attempt to increase chosenPPEM
155
+ if (chosenPPEM < strikePPEM) {
156
+ chosenPPEM = strikePPEM;
157
+ chosenStrikeIndex = strikeIndex;
158
+ }
159
+ } else {
160
+ // attempt to decrease chosenPPEM, but not below requestedPPEM
161
+ if (requestedPPEM < strikePPEM && strikePPEM < chosenPPEM) {
162
+ chosenPPEM = strikePPEM;
163
+ chosenStrikeIndex = strikeIndex;
164
+ }
165
+ }
166
+ }
167
+ return chosenStrikeIndex;
168
+ }
169
+
170
+ FTScalerContext::FTScalerContext(std::shared_ptr<Typeface> typeFace, float size)
171
+ : ScalerContext(std::move(typeFace), size), textScale(size) {
172
+ backingSize = textSize;
173
+ loadGlyphFlags |= FT_LOAD_NO_BITMAP;
174
+ // Always using FT_LOAD_IGNORE_GLOBAL_ADVANCE_WIDTH to get correct
175
+ // advances, as fontconfig and cairo do.
176
+ loadGlyphFlags |= FT_LOAD_IGNORE_GLOBAL_ADVANCE_WIDTH;
177
+ loadGlyphFlags |= FT_LOAD_TARGET_NORMAL;
178
+ auto face = ftTypeface()->face;
179
+ if (FT_HAS_COLOR(face)) {
180
+ loadGlyphFlags |= FT_LOAD_COLOR;
181
+ }
182
+
183
+ auto err = FT_New_Size(face, &ftSize);
184
+ if (err != FT_Err_Ok) {
185
+ LOGE("FT_New_Size(%s) failed.", face->family_name);
186
+ return;
187
+ }
188
+ err = FT_Activate_Size(ftSize);
189
+ if (err != FT_Err_Ok) {
190
+ LOGE("FT_Activate_Size(%s) failed.", face->family_name);
191
+ return;
192
+ }
193
+ if (FloatNearlyZero(textScale) || !FloatsAreFinite(&textScale, 1)) {
194
+ textScale = 1.0f;
195
+ extraScale.set(0.0f, 0.0f);
196
+ }
197
+ auto textScaleDot6 = FloatToFDot6(textScale);
198
+ if (FT_IS_SCALABLE(face)) {
199
+ bool exceedScaleLimit = false;
200
+ if (textScale > MaxTextSize) {
201
+ textScaleDot6 = FloatToFDot6(MaxTextSize);
202
+ exceedScaleLimit = true;
203
+ }
204
+ err = FT_Set_Char_Size(face, textScaleDot6, textScaleDot6, DefaultResolutionInDPI,
205
+ DefaultResolutionInDPI);
206
+ if (err != FT_Err_Ok) {
207
+ LOGE("FT_Set_CharSize(%s, %f, %f) failed.", face->family_name, textScaleDot6, textScaleDot6);
208
+ return;
209
+ }
210
+ // Adjust the matrix to reflect the actually chosen scale.
211
+ // FreeType currently does not allow requesting sizes less than 1, this allows for scaling.
212
+ // Don't do this at all sizes as that will interfere with hinting.
213
+ if (textScale < 1) {
214
+ auto unitsPerEm = static_cast<float>(face->units_per_EM);
215
+ const auto& metrics = face->size->metrics;
216
+ auto xPpem = unitsPerEm * FTFixedToFloat(metrics.x_scale) / 64.0f;
217
+ auto yPpem = unitsPerEm * FTFixedToFloat(metrics.y_scale) / 64.0f;
218
+ extraScale.x *= textScale / xPpem;
219
+ extraScale.y *= textScale / yPpem;
220
+ } else if (exceedScaleLimit) {
221
+ extraScale *= textScale / MaxTextSize;
222
+ }
223
+ } else if (FT_HAS_FIXED_SIZES(face)) {
224
+ strikeIndex = ChooseBitmapStrike(face, textScaleDot6);
225
+ if (strikeIndex == -1) {
226
+ LOGE("No glyphs for font \"%s\" size %f.\n", face->family_name, textScaleDot6);
227
+ return;
228
+ }
229
+
230
+ err = FT_Select_Size(face, strikeIndex);
231
+ if (err != 0) {
232
+ LOGE("FT_Select_Size(%s, %d) failed.", face->family_name, strikeIndex);
233
+ strikeIndex = -1;
234
+ return;
235
+ }
236
+
237
+ // Adjust the matrix to reflect the actually chosen scale.
238
+ // It is likely that the ppem chosen was not the one requested; this allows for scaling.
239
+ extraScale.x *= textScale / static_cast<float>(face->size->metrics.x_ppem);
240
+ extraScale.y *= textScale / static_cast<float>(face->size->metrics.y_ppem);
241
+
242
+ // FreeType documentation says:
243
+ // FT_LOAD_NO_BITMAP -- Ignore bitmap strikes when loading.
244
+ // Bitmap-only fonts ignore this flag.
245
+ //
246
+ // However, in FreeType 2.5.1 color bitmap-only fonts do not ignore this flag.
247
+ // Force this flag off for bitmap-only fonts.
248
+ loadGlyphFlags &= ~FT_LOAD_NO_BITMAP;
249
+
250
+ backingSize = FDot6ToFloat(face->available_sizes[strikeIndex].y_ppem);
251
+ loadVerticalMetrics();
252
+ }
253
+ }
254
+
255
+ FTScalerContext::~FTScalerContext() {
256
+ if (ftSize) {
257
+ std::lock_guard<std::mutex> autoLock(ftTypeface()->locker);
258
+ FT_Done_Size(ftSize);
259
+ }
260
+ }
261
+
262
+ int FTScalerContext::setupSize(bool fauxItalic) const {
263
+ FT_Error err = FT_Activate_Size(ftSize);
264
+ if (err != 0) {
265
+ return err;
266
+ }
267
+ auto matrix = getExtraMatrix(fauxItalic);
268
+ FT_Matrix matrix22 = {
269
+ FloatToFTFixed(matrix.getScaleX()),
270
+ FloatToFTFixed(-matrix.getSkewX()),
271
+ FloatToFTFixed(-matrix.getSkewY()),
272
+ FloatToFTFixed(matrix.getScaleY()),
273
+ };
274
+ FT_Set_Transform(ftTypeface()->face, &matrix22, nullptr);
275
+ return 0;
276
+ }
277
+
278
+ FontMetrics FTScalerContext::onComputeFontMetrics() const {
279
+ std::lock_guard<std::mutex> autoLock(ftTypeface()->locker);
280
+ FontMetrics metrics = {};
281
+ if (setupSize(false)) {
282
+ return metrics;
283
+ }
284
+ auto face = ftTypeface()->face;
285
+ auto upem = static_cast<float>(ftTypeface()->unitsPerEmInternal());
286
+
287
+ // use the os/2 table as a source of reasonable defaults.
288
+ auto xHeight = 0.0f;
289
+ auto capHeight = 0.0f;
290
+ auto os2 = static_cast<TT_OS2*>(FT_Get_Sfnt_Table(face, FT_SFNT_OS2));
291
+ if (os2) {
292
+ xHeight = static_cast<float>(os2->sxHeight) / upem * textScale;
293
+ if (os2->version != 0xFFFF && os2->version >= 2) {
294
+ capHeight = static_cast<float>(os2->sCapHeight) / upem * textScale;
295
+ }
296
+ }
297
+
298
+ // pull from format-specific metrics as needed
299
+ float ascent = 0.0f;
300
+ float descent = 0.0f;
301
+ float leading = 0.0f;
302
+ float xmin = 0.0f;
303
+ float xmax = 0.0f;
304
+ float ymin = 0.0f;
305
+ float ymax = 0.0f;
306
+ float underlineThickness = 0.0f;
307
+ float underlinePosition = 0.0f;
308
+ if (face->face_flags & FT_FACE_FLAG_SCALABLE) { // scalable outline font
309
+ // FreeType 2.13+ automatically respects the OS/2 fsSelection::UseTypoMetrics bit in
310
+ // sfnt_load_face(), overwriting face->ascender/descender/height with OS/2 Typo values
311
+ // when the flag is set. So we can always use face->ascender/descender/height directly.
312
+ ascent = -static_cast<float>(face->ascender) / upem;
313
+ descent = -static_cast<float>(face->descender) / upem;
314
+ leading = static_cast<float>(face->height + (face->descender - face->ascender)) / upem;
315
+ xmin = static_cast<float>(face->bbox.xMin) / upem;
316
+ xmax = static_cast<float>(face->bbox.xMax) / upem;
317
+ ymin = -static_cast<float>(face->bbox.yMin) / upem;
318
+ ymax = -static_cast<float>(face->bbox.yMax) / upem;
319
+ underlineThickness = static_cast<float>(face->underline_thickness) / upem;
320
+ underlinePosition = -(static_cast<float>(face->underline_position) +
321
+ static_cast<float>(face->underline_thickness) / 2) /
322
+ upem;
323
+
324
+ // we may be able to synthesize x_height and cap_height from outline
325
+ if (xHeight == 0.f) {
326
+ FT_BBox bbox;
327
+ if (getCBoxForLetter('x', &bbox)) {
328
+ xHeight = static_cast<float>(bbox.yMax) / 64.0f;
329
+ }
330
+ }
331
+ if (capHeight == 0.f) {
332
+ FT_BBox bbox;
333
+ if (getCBoxForLetter('H', &bbox)) {
334
+ capHeight = static_cast<float>(bbox.yMax) / 64.0f;
335
+ }
336
+ }
337
+ } else if (strikeIndex != -1) { // bitmap strike metrics
338
+ auto xppem = static_cast<float>(face->size->metrics.x_ppem);
339
+ auto yppem = static_cast<float>(face->size->metrics.y_ppem);
340
+ ascent = -static_cast<float>(face->size->metrics.ascender) / (yppem * 64.0f);
341
+ descent = -static_cast<float>(face->size->metrics.descender) / (yppem * 64.0f);
342
+ leading = (static_cast<float>(face->size->metrics.height) / (yppem * 64.0f)) + ascent - descent;
343
+
344
+ xmin = 0.0f;
345
+ xmax = static_cast<float>(face->available_sizes[strikeIndex].width) / xppem;
346
+ ymin = descent;
347
+ ymax = ascent;
348
+
349
+ underlineThickness = 0;
350
+ underlinePosition = 0;
351
+
352
+ auto post = static_cast<TT_Postscript*>(FT_Get_Sfnt_Table(face, FT_SFNT_POST));
353
+ if (post) {
354
+ underlineThickness = static_cast<float>(post->underlineThickness) / upem;
355
+ underlinePosition = -static_cast<float>(post->underlinePosition) / upem;
356
+ }
357
+ } else {
358
+ return metrics;
359
+ }
360
+
361
+ // synthesize elements that were not provided by the os/2 table or format-specific metrics
362
+ if (xHeight == 0.f) {
363
+ xHeight = -ascent * textScale;
364
+ }
365
+ if (capHeight == 0.f) {
366
+ capHeight = -ascent * textScale;
367
+ }
368
+
369
+ // disallow negative line spacing
370
+ if (leading < 0.0f) {
371
+ leading = 0.0f;
372
+ }
373
+ metrics.top = ymax * textScale;
374
+ metrics.ascent = ascent * textScale;
375
+ metrics.descent = descent * textScale;
376
+ metrics.bottom = ymin * textScale;
377
+ metrics.leading = leading * textScale;
378
+ metrics.xMin = xmin * textScale;
379
+ metrics.xMax = xmax * textScale;
380
+ metrics.xHeight = xHeight;
381
+ metrics.capHeight = capHeight;
382
+ metrics.underlineThickness = underlineThickness * textScale;
383
+ metrics.underlinePosition = underlinePosition * textScale;
384
+ return metrics;
385
+ }
386
+
387
+ bool FTScalerContext::getCBoxForLetter(char letter, FT_BBox* bbox) const {
388
+ auto face = ftTypeface()->face;
389
+ const auto glyph_id = FT_Get_Char_Index(face, static_cast<FT_ULong>(letter));
390
+ if (glyph_id == 0) {
391
+ return false;
392
+ }
393
+ if (FT_Load_Glyph(face, glyph_id, loadGlyphFlags) != FT_Err_Ok) {
394
+ return false;
395
+ }
396
+ FT_Outline_Get_CBox(&face->glyph->outline, bbox);
397
+ return true;
398
+ }
399
+
400
+ class FTGeometrySink {
401
+ public:
402
+ explicit FTGeometrySink(Path* path) : path(path) {
403
+ }
404
+
405
+ static int Move(const FT_Vector* pt, void* ctx) {
406
+ auto& self = *static_cast<FTGeometrySink*>(ctx);
407
+ if (self.started) {
408
+ self.path->close();
409
+ self.started = false;
410
+ }
411
+ self.current = *pt;
412
+ return 0;
413
+ }
414
+
415
+ static int Line(const FT_Vector* pt, void* ctx) {
416
+ auto& self = *static_cast<FTGeometrySink*>(ctx);
417
+ if (self.currentIsNot(pt)) {
418
+ self.goingTo(pt);
419
+ self.path->lineTo(FDot6ToFloat(pt->x), -FDot6ToFloat(pt->y));
420
+ }
421
+ return 0;
422
+ }
423
+
424
+ static int Conic(const FT_Vector* pt0, const FT_Vector* pt1, void* ctx) {
425
+ auto& self = *static_cast<FTGeometrySink*>(ctx);
426
+ if (self.currentIsNot(pt0) || self.currentIsNot(pt1)) {
427
+ self.goingTo(pt1);
428
+ self.path->quadTo(FDot6ToFloat(pt0->x), -FDot6ToFloat(pt0->y), FDot6ToFloat(pt1->x),
429
+ -FDot6ToFloat(pt1->y));
430
+ }
431
+ return 0;
432
+ }
433
+
434
+ static int Cubic(const FT_Vector* pt0, const FT_Vector* pt1, const FT_Vector* pt2, void* ctx) {
435
+ auto& self = *static_cast<FTGeometrySink*>(ctx);
436
+ if (self.currentIsNot(pt0) || self.currentIsNot(pt1) || self.currentIsNot(pt2)) {
437
+ self.goingTo(pt2);
438
+ self.path->cubicTo(FDot6ToFloat(pt0->x), -FDot6ToFloat(pt0->y), FDot6ToFloat(pt1->x),
439
+ -FDot6ToFloat(pt1->y), FDot6ToFloat(pt2->x), -FDot6ToFloat(pt2->y));
440
+ }
441
+ return 0;
442
+ }
443
+
444
+ private:
445
+ bool currentIsNot(const FT_Vector* pt) const {
446
+ return current.x != pt->x || current.y != pt->y;
447
+ }
448
+
449
+ void goingTo(const FT_Vector* pt) {
450
+ if (!started) {
451
+ started = true;
452
+ path->moveTo(FDot6ToFloat(current.x), -FDot6ToFloat(current.y));
453
+ }
454
+ current = *pt;
455
+ }
456
+
457
+ Path* path;
458
+ bool started = false;
459
+ FT_Vector current = {0, 0};
460
+ };
461
+
462
+ static bool GenerateGlyphPath(FT_Face face, Path* path) {
463
+ static constexpr FT_Outline_Funcs gFuncs{
464
+ /*move_to =*/FTGeometrySink::Move,
465
+ /*line_to =*/FTGeometrySink::Line,
466
+ /*conic_to =*/FTGeometrySink::Conic,
467
+ /*cubic_to =*/FTGeometrySink::Cubic,
468
+ /*shift = */ 0,
469
+ /*delta =*/0,
470
+ };
471
+ FTGeometrySink sink(path);
472
+ auto err = FT_Outline_Decompose(&face->glyph->outline, &gFuncs, &sink);
473
+ if (err != FT_Err_Ok) {
474
+ path->reset();
475
+ return false;
476
+ }
477
+ path->close();
478
+ return true;
479
+ }
480
+
481
+ bool FTScalerContext::generatePath(GlyphID glyphID, bool fauxBold, bool fauxItalic,
482
+ Path* path) const {
483
+ std::lock_guard<std::mutex> autoLock(ftTypeface()->locker);
484
+ auto face = ftTypeface()->face;
485
+ bool isColorVector = FT_HAS_COLOR(face) && FT_IS_SCALABLE(face);
486
+ // For color vector fonts (COLRv0/v1), try to get paths from all color layers.
487
+ // This loses color information but returns the correct combined path.
488
+ if (isColorVector) {
489
+ // Try COLRv0 first (simpler flat layer structure)
490
+ FT_LayerIterator iterator = {};
491
+ iterator.p = nullptr;
492
+ FT_UInt layerGlyphIndex = 0;
493
+ FT_UInt layerColorIndex = 0;
494
+ bool hasLayers =
495
+ FT_Get_Color_Glyph_Layer(face, glyphID, &layerGlyphIndex, &layerColorIndex, &iterator);
496
+ if (hasLayers) {
497
+ path->reset();
498
+ do {
499
+ if (loadOutlineGlyph(face, static_cast<GlyphID>(layerGlyphIndex), fauxBold, fauxItalic)) {
500
+ Path layerPath = {};
501
+ if (GenerateGlyphPath(face, &layerPath)) {
502
+ path->addPath(layerPath);
503
+ }
504
+ }
505
+ } while (
506
+ FT_Get_Color_Glyph_Layer(face, glyphID, &layerGlyphIndex, &layerColorIndex, &iterator));
507
+ return !path->isEmpty();
508
+ }
509
+
510
+ // Try COLRv1 (tree-structured paint graph)
511
+ FT_OpaquePaint rootPaint = {};
512
+ if (FT_Get_Color_Glyph_Paint(face, glyphID, FT_COLOR_NO_ROOT_TRANSFORM, &rootPaint)) {
513
+ path->reset();
514
+ collectCOLRv1GlyphPaths(face, rootPaint, fauxBold, fauxItalic, path);
515
+ return !path->isEmpty();
516
+ }
517
+ // Fall through to normal path generation if no color layers found
518
+ }
519
+
520
+ if (!loadOutlineGlyph(face, glyphID, fauxBold, fauxItalic)) {
521
+ path->reset();
522
+ return false;
523
+ }
524
+ if (!GenerateGlyphPath(face, path)) {
525
+ path->reset();
526
+ return false;
527
+ }
528
+ return true;
529
+ }
530
+
531
+ void FTScalerContext::collectCOLRv1GlyphPaths(FT_Face face, const FT_OpaquePaint& opaquePaint,
532
+ bool fauxBold, bool fauxItalic, Path* path) const {
533
+ FT_COLR_Paint paint = {};
534
+ if (!FT_Get_Paint(face, opaquePaint, &paint)) {
535
+ return;
536
+ }
537
+
538
+ switch (paint.format) {
539
+ case FT_COLR_PAINTFORMAT_COLR_LAYERS: {
540
+ FT_LayerIterator* layerIterator = &paint.u.colr_layers.layer_iterator;
541
+ FT_OpaquePaint layerPaint = {};
542
+ while (FT_Get_Paint_Layers(face, layerIterator, &layerPaint)) {
543
+ collectCOLRv1GlyphPaths(face, layerPaint, fauxBold, fauxItalic, path);
544
+ }
545
+ break;
546
+ }
547
+ case FT_COLR_PAINTFORMAT_GLYPH: {
548
+ auto layerGlyphID = static_cast<GlyphID>(paint.u.glyph.glyphID);
549
+ if (loadOutlineGlyph(face, layerGlyphID, fauxBold, fauxItalic)) {
550
+ Path layerPath = {};
551
+ if (GenerateGlyphPath(face, &layerPath)) {
552
+ path->addPath(layerPath);
553
+ }
554
+ }
555
+ // Recurse into the paint that fills this glyph
556
+ collectCOLRv1GlyphPaths(face, paint.u.glyph.paint, fauxBold, fauxItalic, path);
557
+ break;
558
+ }
559
+ case FT_COLR_PAINTFORMAT_COLR_GLYPH: {
560
+ // Recursively process another color glyph
561
+ FT_OpaquePaint nestedPaint = {};
562
+ if (FT_Get_Color_Glyph_Paint(face, paint.u.colr_glyph.glyphID, FT_COLOR_NO_ROOT_TRANSFORM,
563
+ &nestedPaint)) {
564
+ collectCOLRv1GlyphPaths(face, nestedPaint, fauxBold, fauxItalic, path);
565
+ }
566
+ break;
567
+ }
568
+ case FT_COLR_PAINTFORMAT_TRANSFORM:
569
+ collectCOLRv1GlyphPaths(face, paint.u.transform.paint, fauxBold, fauxItalic, path);
570
+ break;
571
+ case FT_COLR_PAINTFORMAT_TRANSLATE:
572
+ collectCOLRv1GlyphPaths(face, paint.u.translate.paint, fauxBold, fauxItalic, path);
573
+ break;
574
+ case FT_COLR_PAINTFORMAT_SCALE:
575
+ collectCOLRv1GlyphPaths(face, paint.u.scale.paint, fauxBold, fauxItalic, path);
576
+ break;
577
+ case FT_COLR_PAINTFORMAT_ROTATE:
578
+ collectCOLRv1GlyphPaths(face, paint.u.rotate.paint, fauxBold, fauxItalic, path);
579
+ break;
580
+ case FT_COLR_PAINTFORMAT_SKEW:
581
+ collectCOLRv1GlyphPaths(face, paint.u.skew.paint, fauxBold, fauxItalic, path);
582
+ break;
583
+ case FT_COLR_PAINTFORMAT_COMPOSITE:
584
+ collectCOLRv1GlyphPaths(face, paint.u.composite.source_paint, fauxBold, fauxItalic, path);
585
+ collectCOLRv1GlyphPaths(face, paint.u.composite.backdrop_paint, fauxBold, fauxItalic, path);
586
+ break;
587
+ default:
588
+ // Solid, gradient paints don't contain glyph outlines
589
+ break;
590
+ }
591
+ }
592
+
593
+ void FTScalerContext::getBBoxForCurrentGlyph(FT_BBox* bbox) const {
594
+ auto face = ftTypeface()->face;
595
+ FT_Outline_Get_CBox(&face->glyph->outline, bbox);
596
+
597
+ // outset the box to integral boundaries
598
+ bbox->xMin &= ~63;
599
+ bbox->yMin &= ~63;
600
+ bbox->xMax = (bbox->xMax + 63) & ~63;
601
+ bbox->yMax = (bbox->yMax + 63) & ~63;
602
+ }
603
+
604
+ Rect FTScalerContext::getBounds(tgfx::GlyphID glyphID, bool fauxBold, bool fauxItalic) const {
605
+ #if defined(__ANDROID__) || defined(ANDROID)
606
+ if (ftTypeface()->hasColor() && ftTypeface()->hasOutlines() && GlyphRenderer::IsAvailable()) {
607
+ Rect rect = {};
608
+ if (MeasureColorVectorGlyph(glyphID, &rect)) {
609
+ return rect;
610
+ }
611
+ }
612
+ #endif
613
+ std::lock_guard<std::mutex> autoLock(ftTypeface()->locker);
614
+ Rect bounds = {};
615
+ if (setupSize(fauxItalic)) {
616
+ return bounds;
617
+ }
618
+ auto glyphFlags = loadGlyphFlags | static_cast<FT_Int32>(FT_LOAD_BITMAP_METRICS_ONLY);
619
+ auto face = ftTypeface()->face;
620
+ auto err = FT_Load_Glyph(face, glyphID, glyphFlags);
621
+ if (err != FT_Err_Ok) {
622
+ return bounds;
623
+ }
624
+ if (fauxBold) {
625
+ ApplyEmbolden(face, face->glyph, glyphID, glyphFlags);
626
+ }
627
+ if (face->glyph->format == FT_GLYPH_FORMAT_OUTLINE) {
628
+ using FT_PosLimits = std::numeric_limits<FT_Pos>;
629
+ FT_BBox rect = {FT_PosLimits::max(), FT_PosLimits::max(), FT_PosLimits::min(),
630
+ FT_PosLimits::min()};
631
+ if (0 < face->glyph->outline.n_contours) {
632
+ getBBoxForCurrentGlyph(&rect);
633
+ } else {
634
+ rect = {0, 0, 0, 0};
635
+ }
636
+ // Round out, no longer dot6.
637
+ rect.xMin = FDot6Floor(rect.xMin);
638
+ rect.yMin = FDot6Floor(rect.yMin);
639
+ rect.xMax = FDot6Ceil(rect.xMax);
640
+ rect.yMax = FDot6Ceil(rect.yMax);
641
+
642
+ FT_Pos width = rect.xMax - rect.xMin;
643
+ FT_Pos height = rect.yMax - rect.yMin;
644
+ FT_Pos top = -rect.yMax; // Freetype y-up, We y-down.
645
+ FT_Pos left = rect.xMin;
646
+
647
+ bounds.setXYWH(static_cast<float>(left), static_cast<float>(top), static_cast<float>(width),
648
+ static_cast<float>(height));
649
+ } else if (face->glyph->format == FT_GLYPH_FORMAT_BITMAP) {
650
+ bounds.setXYWH(static_cast<float>(face->glyph->bitmap_left),
651
+ -static_cast<float>(face->glyph->bitmap_top),
652
+ static_cast<float>(face->glyph->bitmap.width),
653
+ static_cast<float>(face->glyph->bitmap.rows));
654
+ auto matrix = getExtraMatrix(fauxItalic);
655
+ matrix.mapRect(&bounds);
656
+ bounds.roundOut();
657
+ } else {
658
+ LOGE("FTScalerContext::getBounds() unknown glyph format!");
659
+ }
660
+ return bounds;
661
+ }
662
+
663
+ float FTScalerContext::getAdvance(GlyphID glyphID, bool verticalText) const {
664
+ std::lock_guard<std::mutex> autoLock(ftTypeface()->locker);
665
+ if (setupSize(false)) {
666
+ return 0;
667
+ }
668
+ return getAdvanceInternal(glyphID, verticalText);
669
+ }
670
+
671
+ float FTScalerContext::getAdvanceInternal(GlyphID glyphID, bool verticalText) const {
672
+ if (verticalText && strikeIndex != -1) {
673
+ // FreeType's CBDT/CBLC sbit path does not read vmtx for vertical advance even when the
674
+ // table is present. Always use our cached vertical metrics for bitmap-only fonts.
675
+ if (hasVerticalMetrics) {
676
+ return getVertAdvanceForGlyph(glyphID);
677
+ }
678
+ // Fall back to horizontal advance if no vertical metrics are available at all.
679
+ // Cannot read advance.x here because FT_LOAD_VERTICAL_LAYOUT sets it to 0.
680
+ verticalText = false;
681
+ }
682
+ auto face = ftTypeface()->face;
683
+ auto glyphFlags = loadGlyphFlags | static_cast<FT_Int32>(FT_LOAD_BITMAP_METRICS_ONLY);
684
+ if (verticalText) {
685
+ glyphFlags |= FT_LOAD_VERTICAL_LAYOUT;
686
+ }
687
+ auto err = FT_Load_Glyph(face, glyphID, glyphFlags);
688
+ if (err != FT_Err_Ok) {
689
+ return 0;
690
+ }
691
+ return verticalText ? FDot6ToFloat(face->glyph->advance.y) : FDot6ToFloat(face->glyph->advance.x);
692
+ }
693
+
694
+ void FTScalerContext::loadVerticalMetrics() {
695
+ auto face = ftTypeface()->face;
696
+ // Try to read vmtx table. FT_Get_Sfnt_Table returns non-null for FT_SFNT_VHEA only when both
697
+ // vhea and vmtx tables are successfully loaded (i.e. face->vertical_info is set).
698
+ auto vhea = static_cast<TT_VertHeader*>(FT_Get_Sfnt_Table(face, FT_SFNT_VHEA));
699
+ if (vhea != nullptr && vhea->number_Of_VMetrics > 0) {
700
+ FT_ULong vmtxLength = 0;
701
+ auto tag = FT_MAKE_TAG('v', 'm', 't', 'x');
702
+ if (FT_Load_Sfnt_Table(face, tag, 0, nullptr, &vmtxLength) == 0 && vmtxLength > 0) {
703
+ std::vector<FT_Byte> vmtxData(vmtxLength);
704
+ if (FT_Load_Sfnt_Table(face, tag, 0, vmtxData.data(), &vmtxLength) == 0) {
705
+ auto numLong = std::min(static_cast<size_t>(vhea->number_Of_VMetrics),
706
+ static_cast<size_t>(vmtxLength / 4));
707
+ vertAdvanceCache.resize(numLong);
708
+ for (size_t i = 0; i < numLong; ++i) {
709
+ vertAdvanceCache[i] =
710
+ static_cast<FT_UShort>((vmtxData[i * 4] << 8) | vmtxData[i * 4 + 1]);
711
+ }
712
+ hasVerticalMetrics = true;
713
+ return;
714
+ }
715
+ }
716
+ }
717
+ // No vmtx table available. Synthesize a global vertical advance from OS/2 or hhea, matching
718
+ // the fallback logic in FreeType's TT_Get_VMetrics (ttgload.c).
719
+ auto os2 = static_cast<TT_OS2*>(FT_Get_Sfnt_Table(face, FT_SFNT_OS2));
720
+ if (os2 != nullptr && os2->version != 0xFFFFU) {
721
+ fallbackVertAdvance =
722
+ static_cast<FT_UShort>(std::abs(os2->sTypoAscender - os2->sTypoDescender));
723
+ hasVerticalMetrics = true;
724
+ } else {
725
+ auto hhea = static_cast<TT_HoriHeader*>(FT_Get_Sfnt_Table(face, FT_SFNT_HHEA));
726
+ if (hhea != nullptr) {
727
+ fallbackVertAdvance = static_cast<FT_UShort>(std::abs(hhea->Ascender - hhea->Descender));
728
+ hasVerticalMetrics = true;
729
+ }
730
+ }
731
+ }
732
+
733
+ float FTScalerContext::getVertAdvanceForGlyph(GlyphID glyphID) const {
734
+ FT_UShort advanceFUnits = 0;
735
+ if (!vertAdvanceCache.empty()) {
736
+ auto index = static_cast<size_t>(glyphID);
737
+ if (index >= vertAdvanceCache.size()) {
738
+ index = vertAdvanceCache.size() - 1;
739
+ }
740
+ advanceFUnits = vertAdvanceCache[index];
741
+ } else {
742
+ advanceFUnits = fallbackVertAdvance;
743
+ }
744
+ if (advanceFUnits == 0) {
745
+ return 0;
746
+ }
747
+ auto face = ftTypeface()->face;
748
+ auto ppem = static_cast<float>(face->size->metrics.y_ppem);
749
+ auto upem = static_cast<float>(ftTypeface()->unitsPerEmInternal());
750
+ if (upem == 0.0f) {
751
+ return 0;
752
+ }
753
+ // Convert font units to pixels at the bitmap strike's ppem, then apply extraScale to match the
754
+ // requested text size. This mirrors how FreeType scales horizontal advances for bitmap fonts.
755
+ return advanceFUnits * ppem / upem * extraScale.y;
756
+ }
757
+
758
+ Point FTScalerContext::getVerticalOffset(GlyphID glyphID) const {
759
+ auto fontMetrics = getFontMetrics();
760
+ std::lock_guard<std::mutex> autoLock(ftTypeface()->locker);
761
+ if (setupSize(false)) {
762
+ return {};
763
+ }
764
+ auto face = ftTypeface()->face;
765
+ auto glyphFlags = loadGlyphFlags | static_cast<FT_Int32>(FT_LOAD_BITMAP_METRICS_ONLY);
766
+ auto err = FT_Load_Glyph(face, glyphID, glyphFlags);
767
+ if (err != FT_Err_Ok) {
768
+ return {};
769
+ }
770
+ auto& glyphMetrics = face->glyph->metrics;
771
+ if (strikeIndex != -1) {
772
+ // FreeType's CBDT/CBLC sbit path does not populate vertical bearing metrics either.
773
+ // Synthesize a vertical offset consistent with WebScalerContext.
774
+ auto hAdv = FDot6ToFloat(face->glyph->advance.x);
775
+ return {-hAdv * 0.5f, fontMetrics.capHeight};
776
+ }
777
+ auto offsetX = FDot6ToFloat(glyphMetrics.vertBearingX) - FDot6ToFloat(glyphMetrics.horiBearingX);
778
+ auto offsetY = FDot6ToFloat(glyphMetrics.horiBearingY) + FDot6ToFloat(glyphMetrics.vertBearingY);
779
+ return {offsetX, offsetY};
780
+ }
781
+
782
+ Rect FTScalerContext::getImageTransform(GlyphID glyphID, bool fauxBold, const Stroke* stroke,
783
+ Matrix* matrix) const {
784
+ if (!hasColor() && stroke != nullptr) {
785
+ return {};
786
+ }
787
+ if (!hasColor()) {
788
+ const auto bounds = getBounds(glyphID, fauxBold, false);
789
+ if (matrix) {
790
+ matrix->setTranslate(bounds.x(), bounds.y());
791
+ }
792
+ return bounds;
793
+ }
794
+ #if defined(__ANDROID__) || defined(ANDROID)
795
+ if (ftTypeface()->hasColor() && ftTypeface()->hasOutlines() && GlyphRenderer::IsAvailable()) {
796
+ Rect rect = {};
797
+ if (MeasureColorVectorGlyph(glyphID, &rect)) {
798
+ if (matrix) {
799
+ matrix->setTranslate(rect.x(), rect.y());
800
+ }
801
+ }
802
+ return rect;
803
+ }
804
+ #endif
805
+ std::lock_guard<std::mutex> autoLock(ftTypeface()->locker);
806
+ auto glyphFlags = loadGlyphFlags | static_cast<FT_Int32>(FT_LOAD_BITMAP_METRICS_ONLY);
807
+ glyphFlags &= ~FT_LOAD_NO_BITMAP;
808
+ if (loadBitmapGlyph(glyphID, glyphFlags)) {
809
+ auto face = ftTypeface()->face;
810
+ if (matrix) {
811
+ matrix->setTranslate(static_cast<float>(face->glyph->bitmap_left),
812
+ -static_cast<float>(face->glyph->bitmap_top));
813
+ matrix->postScale(extraScale.x, extraScale.y);
814
+ }
815
+ return Rect::MakeXYWH(static_cast<float>(face->glyph->bitmap_left),
816
+ -static_cast<float>(face->glyph->bitmap_top),
817
+ static_cast<float>(face->glyph->bitmap.width),
818
+ static_cast<float>(face->glyph->bitmap.rows));
819
+ }
820
+ return {};
821
+ }
822
+
823
+ bool FTScalerContext::readPixels(GlyphID glyphID, bool fauxBold, const Stroke*,
824
+ const ImageInfo& dstInfo, void* dstPixels,
825
+ const Point& glyphOffset) const {
826
+ if (dstInfo.isEmpty() || dstPixels == nullptr) {
827
+ return false;
828
+ }
829
+ // Note: In the hasColor() function, freeType has an internal lock. Placing this method later
830
+ // would cause repeated locking and lead to a deadlock.
831
+ bool colorFont = hasColor();
832
+ bool isColorVector = ftTypeface()->hasColor() && ftTypeface()->hasOutlines();
833
+ #if defined(__ANDROID__) || defined(ANDROID)
834
+ if (isColorVector && GlyphRenderer::IsAvailable()) {
835
+ std::string text = ftTypeface()->getGlyphUTF8(glyphID);
836
+ if (!text.empty()) {
837
+ auto typeface = ftTypeface()->typeface.get();
838
+ float offsetX = -glyphOffset.x;
839
+ float offsetY = -glyphOffset.y;
840
+ auto width = static_cast<int>(dstInfo.width());
841
+ auto height = static_cast<int>(dstInfo.height());
842
+ bool formatCompatible = dstInfo.colorType() == ColorType::RGBA_8888 &&
843
+ dstInfo.alphaType() == AlphaType::Unpremultiplied &&
844
+ (dstInfo.colorSpace() == nullptr || dstInfo.colorSpace()->isSRGB());
845
+ if (formatCompatible) {
846
+ return GlyphRenderer::RenderGlyph(typeface, text, textSize, width, height, offsetX, offsetY,
847
+ dstPixels);
848
+ }
849
+ auto srcInfo = ImageInfo::Make(width, height, ColorType::RGBA_8888,
850
+ AlphaType::Unpremultiplied, 0, ColorSpace::SRGB());
851
+ Buffer buffer{srcInfo.byteSize()};
852
+ if (!GlyphRenderer::RenderGlyph(typeface, text, textSize, width, height, offsetX, offsetY,
853
+ buffer.data())) {
854
+ return false;
855
+ }
856
+ Pixmap pixmap{srcInfo, buffer.data()};
857
+ return pixmap.readPixels(dstInfo, dstPixels);
858
+ }
859
+ return false;
860
+ }
861
+ #else
862
+ USE(isColorVector);
863
+ USE(glyphOffset);
864
+ #endif
865
+ std::lock_guard<std::mutex> autoLock(ftTypeface()->locker);
866
+ if (!colorFont) {
867
+ auto face = ftTypeface()->face;
868
+ if (!loadOutlineGlyph(face, glyphID, fauxBold, false)) {
869
+ return false;
870
+ }
871
+ ClearPixels(dstInfo, dstPixels);
872
+ RenderOutLineGlyph(face, dstInfo, dstPixels);
873
+ return true;
874
+ }
875
+ auto glyphFlags = loadGlyphFlags;
876
+ glyphFlags |= FT_LOAD_RENDER;
877
+ glyphFlags &= ~FT_LOAD_NO_BITMAP;
878
+ if (!loadBitmapGlyph(glyphID, glyphFlags)) {
879
+ return false;
880
+ }
881
+ auto ftBitmap = ftTypeface()->face->glyph->bitmap;
882
+ auto width = ftBitmap.width;
883
+ auto height = ftBitmap.rows;
884
+ auto src = reinterpret_cast<const uint8_t*>(ftBitmap.buffer);
885
+ // FT_Bitmap::pitch is an int and allowed to be negative.
886
+ auto srcRB = ftBitmap.pitch;
887
+ auto srcFormat = ftBitmap.pixel_mode == FT_PIXEL_MODE_GRAY ? gfx::skcms_PixelFormat_A_8
888
+ : gfx::skcms_PixelFormat_BGRA_8888;
889
+ auto srcProfile = *gfx::skcms_sRGB_profile();
890
+
891
+ auto dst = static_cast<uint8_t*>(dstPixels);
892
+ auto dstRB = dstInfo.rowBytes();
893
+ auto dstFormat = ToPixelFormat(dstInfo.colorType());
894
+ auto dstProfile = srcProfile;
895
+ if (dstInfo.colorSpace() != nullptr) {
896
+ dstProfile = ToSkcmsICCProfile(dstInfo.colorSpace());
897
+ }
898
+ for (size_t i = 0; i < height; i++) {
899
+ gfx::skcms_Transform(src, srcFormat, gfx::skcms_AlphaFormat_PremulAsEncoded,
900
+ gfx::skcms_sRGB_profile(), dst, dstFormat,
901
+ gfx::skcms_AlphaFormat_PremulAsEncoded, &dstProfile, width);
902
+ src += srcRB;
903
+ dst += dstRB;
904
+ }
905
+ return true;
906
+ }
907
+
908
+ bool FTScalerContext::loadBitmapGlyph(GlyphID glyphID, FT_Int32 glyphFlags) const {
909
+ if (setupSize(false)) {
910
+ return false;
911
+ }
912
+ auto face = ftTypeface()->face;
913
+ auto err = FT_Load_Glyph(face, glyphID, glyphFlags);
914
+ if (err != FT_Err_Ok || face->glyph->format != FT_GLYPH_FORMAT_BITMAP) {
915
+ return false;
916
+ }
917
+ auto ftBitmap = face->glyph->bitmap;
918
+ return ftBitmap.pixel_mode == FT_PIXEL_MODE_BGRA || ftBitmap.pixel_mode == FT_PIXEL_MODE_GRAY;
919
+ }
920
+
921
+ Matrix FTScalerContext::getExtraMatrix(bool fauxItalic) const {
922
+ auto matrix = Matrix::MakeScale(extraScale.x, extraScale.y);
923
+ if (fauxItalic) {
924
+ matrix.postSkew(ITALIC_SKEW, 0);
925
+ }
926
+ return matrix;
927
+ }
928
+
929
+ FTTypeface* FTScalerContext::ftTypeface() const {
930
+ return static_cast<FTTypeface*>(typeface.get());
931
+ }
932
+
933
+ bool FTScalerContext::loadOutlineGlyph(FT_Face face, GlyphID glyphID, bool fauxBold,
934
+ bool fauxItalic) const {
935
+ // FT_IS_SCALABLE is documented to mean the face contains outline glyphs.
936
+ if (!FT_IS_SCALABLE(face) || setupSize(fauxItalic)) {
937
+ return false;
938
+ }
939
+ auto flags = loadGlyphFlags;
940
+ flags |= FT_LOAD_NO_BITMAP; // ignore embedded bitmaps so we're sure to get the outline
941
+ flags &= ~FT_LOAD_RENDER; // don't scan convert (we just want the outline)
942
+ auto err = FT_Load_Glyph(face, glyphID, flags);
943
+ if (err != FT_Err_Ok || face->glyph->format != FT_GLYPH_FORMAT_OUTLINE) {
944
+ return false;
945
+ }
946
+ if (fauxBold) {
947
+ ApplyEmbolden(face, face->glyph, glyphID, flags);
948
+ }
949
+ return true;
950
+ }
951
+
952
+ #if defined(__ANDROID__) || defined(ANDROID)
953
+ bool FTScalerContext::MeasureColorVectorGlyph(GlyphID glyphID, Rect* rect) const {
954
+ std::string text = ftTypeface()->getGlyphUTF8(glyphID);
955
+ if (text.empty()) {
956
+ return false;
957
+ }
958
+ auto typeface = ftTypeface()->typeface.get();
959
+ float bounds[4] = {};
960
+ float advance = 0;
961
+ if (!GlyphRenderer::MeasureText(typeface, text, textSize, bounds, &advance)) {
962
+ return false;
963
+ }
964
+ float width = std::max(bounds[2] - bounds[0], advance);
965
+ float height = std::max(bounds[3] - bounds[1], textSize * 1.2f);
966
+ *rect = Rect::MakeXYWH(bounds[0], bounds[1], width, height);
967
+ return true;
968
+ }
969
+ #endif
970
+ } // namespace tgfx