rngine 0.7.2 → 0.8.1

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 (588) hide show
  1. package/README.md +51 -26
  2. package/android/CMakeLists.txt +45 -2
  3. package/android/build.gradle +1 -3
  4. package/android/kls_database.db +0 -0
  5. package/android/src/main/cpp/game-view.cpp +29 -0
  6. package/android/src/main/java/com/margelo/nitro/rngine/GameEngine.kt +1 -28
  7. package/android/src/main/java/com/margelo/nitro/rngine/GameView.kt +22 -166
  8. package/android/src/main/java/com/margelo/nitro/rngine/SvgLoaderHelper.kt +24 -0
  9. package/lib/module/GameMethods.js +46 -2
  10. package/lib/module/GameMethods.js.map +1 -1
  11. package/lib/module/GameMethods.nitro.js.map +1 -1
  12. package/lib/module/index.js +0 -1
  13. package/lib/module/index.js.map +1 -1
  14. package/lib/typescript/src/GameMethods.d.ts +2 -1
  15. package/lib/typescript/src/GameMethods.d.ts.map +1 -1
  16. package/lib/typescript/src/GameMethods.nitro.d.ts +5 -2
  17. package/lib/typescript/src/GameMethods.nitro.d.ts.map +1 -1
  18. package/lib/typescript/src/index.d.ts +1 -2
  19. package/lib/typescript/src/index.d.ts.map +1 -1
  20. package/lib/typescript/src/nativeTypes.d.ts +12 -0
  21. package/lib/typescript/src/nativeTypes.d.ts.map +1 -1
  22. package/lib/typescript/src/types.d.ts +7 -10
  23. package/lib/typescript/src/types.d.ts.map +1 -1
  24. package/nitro.json +0 -10
  25. package/nitrogen/generated/android/rngine+autolinking.cmake +0 -2
  26. package/nitrogen/generated/android/rngineOnLoad.cpp +0 -16
  27. package/nitrogen/generated/ios/Rngine-Swift-Cxx-Bridge.cpp +0 -33
  28. package/nitrogen/generated/ios/Rngine-Swift-Cxx-Bridge.hpp +0 -96
  29. package/nitrogen/generated/ios/Rngine-Swift-Cxx-Umbrella.hpp +0 -9
  30. package/nitrogen/generated/ios/RngineAutolinking.mm +0 -8
  31. package/nitrogen/generated/ios/RngineAutolinking.swift +0 -12
  32. package/nitrogen/generated/shared/c++/Entity.hpp +10 -2
  33. package/nitrogen/generated/shared/c++/EntityUpdate.hpp +10 -2
  34. package/nitrogen/generated/shared/c++/HybridGameMethodsSpec.cpp +4 -1
  35. package/nitrogen/generated/shared/c++/HybridGameMethodsSpec.hpp +8 -1
  36. package/nitrogen/generated/shared/c++/World.hpp +91 -0
  37. package/package.json +4 -1
  38. package/shared/CollisionUtils.hpp +1 -6
  39. package/{android/src/main/cpp/ColorUtils.hpp → shared/ColorUtils.cpp} +8 -12
  40. package/shared/ColorUtils.hpp +7 -0
  41. package/shared/GameLoop.cpp +142 -51
  42. package/shared/GameLoop.hpp +10 -14
  43. package/shared/GameMethods.cpp +101 -10
  44. package/shared/GameMethods.hpp +19 -1
  45. package/shared/GameRenderer.cpp +420 -0
  46. package/shared/GameRenderer.hpp +65 -0
  47. package/shared/GameStats.hpp +3 -3
  48. package/shared/Overlap.hpp +9 -0
  49. package/shared/skia/include/android/AHardwareBufferUtils.h +26 -0
  50. package/shared/skia/include/android/GrAHardwareBufferUtils.h +97 -0
  51. package/shared/skia/include/android/SkAndroidFrameworkUtils.h +83 -0
  52. package/shared/skia/include/android/SkAnimatedImage.h +193 -0
  53. package/shared/skia/include/android/SkCanvasAndroid.h +20 -0
  54. package/shared/skia/include/android/SkImageAndroid.h +100 -0
  55. package/shared/skia/include/android/SkSurfaceAndroid.h +50 -0
  56. package/shared/skia/include/android/graphite/SurfaceAndroid.h +59 -0
  57. package/shared/skia/include/android/vk/AndroidVulkanMemoryAllocator.h +31 -0
  58. package/shared/skia/include/codec/SkAndroidCodec.h +302 -0
  59. package/shared/skia/include/codec/SkAvifDecoder.h +80 -0
  60. package/shared/skia/include/codec/SkBmpDecoder.h +44 -0
  61. package/shared/skia/include/codec/SkBmpRustDecoder.h +42 -0
  62. package/shared/skia/include/codec/SkCodec.h +1178 -0
  63. package/shared/skia/include/codec/SkCodecAnimation.h +61 -0
  64. package/shared/skia/include/codec/SkEncodedImageFormat.h +33 -0
  65. package/shared/skia/include/codec/SkEncodedOrigin.h +71 -0
  66. package/shared/skia/include/codec/SkGifDecoder.h +44 -0
  67. package/shared/skia/include/codec/SkIcoDecoder.h +44 -0
  68. package/shared/skia/include/codec/SkJpegDecoder.h +51 -0
  69. package/shared/skia/include/codec/SkJpegxlDecoder.h +44 -0
  70. package/shared/skia/include/codec/SkPixmapUtils.h +31 -0
  71. package/shared/skia/include/codec/SkPngChunkReader.h +45 -0
  72. package/shared/skia/include/codec/SkPngDecoder.h +51 -0
  73. package/shared/skia/include/codec/SkPngRustDecoder.h +30 -0
  74. package/shared/skia/include/codec/SkRawDecoder.h +50 -0
  75. package/shared/skia/include/codec/SkWbmpDecoder.h +44 -0
  76. package/shared/skia/include/codec/SkWebpDecoder.h +51 -0
  77. package/shared/skia/include/config/SkUserConfig.h +141 -0
  78. package/shared/skia/include/core/SkAlphaType.h +45 -0
  79. package/shared/skia/include/core/SkAnnotation.h +52 -0
  80. package/shared/skia/include/core/SkArc.h +69 -0
  81. package/shared/skia/include/core/SkBBHFactory.h +67 -0
  82. package/shared/skia/include/core/SkBitmap.h +1264 -0
  83. package/shared/skia/include/core/SkBlendMode.h +112 -0
  84. package/shared/skia/include/core/SkBlender.h +30 -0
  85. package/shared/skia/include/core/SkBlurTypes.h +20 -0
  86. package/shared/skia/include/core/SkCPUContext.h +31 -0
  87. package/shared/skia/include/core/SkCPURecorder.h +76 -0
  88. package/shared/skia/include/core/SkCanvas.h +2770 -0
  89. package/shared/skia/include/core/SkCanvasVirtualEnforcer.h +61 -0
  90. package/shared/skia/include/core/SkCapabilities.h +35 -0
  91. package/shared/skia/include/core/SkClipOp.h +19 -0
  92. package/shared/skia/include/core/SkColor.h +469 -0
  93. package/shared/skia/include/core/SkColorFilter.h +150 -0
  94. package/shared/skia/include/core/SkColorSpace.h +432 -0
  95. package/shared/skia/include/core/SkColorTable.h +62 -0
  96. package/shared/skia/include/core/SkColorType.h +159 -0
  97. package/shared/skia/include/core/SkContourMeasure.h +215 -0
  98. package/shared/skia/include/core/SkCoverageMode.h +28 -0
  99. package/shared/skia/include/core/SkCubicMap.h +47 -0
  100. package/shared/skia/include/core/SkData.h +225 -0
  101. package/shared/skia/include/core/SkDataTable.h +122 -0
  102. package/shared/skia/include/core/SkDocument.h +93 -0
  103. package/shared/skia/include/core/SkDrawable.h +178 -0
  104. package/shared/skia/include/core/SkExecutor.h +59 -0
  105. package/shared/skia/include/core/SkFlattenable.h +115 -0
  106. package/shared/skia/include/core/SkFont.h +536 -0
  107. package/shared/skia/include/core/SkFontArguments.h +116 -0
  108. package/shared/skia/include/core/SkFontMetrics.h +139 -0
  109. package/shared/skia/include/core/SkFontMgr.h +178 -0
  110. package/shared/skia/include/core/SkFontParameters.h +43 -0
  111. package/shared/skia/include/core/SkFontScanner.h +45 -0
  112. package/shared/skia/include/core/SkFontStyle.h +84 -0
  113. package/shared/skia/include/core/SkFontTypes.h +25 -0
  114. package/shared/skia/include/core/SkFourByteTag.h +19 -0
  115. package/shared/skia/include/core/SkGraphics.h +169 -0
  116. package/shared/skia/include/core/SkImage.h +918 -0
  117. package/shared/skia/include/core/SkImageFilter.h +119 -0
  118. package/shared/skia/include/core/SkImageGenerator.h +140 -0
  119. package/shared/skia/include/core/SkImageInfo.h +634 -0
  120. package/shared/skia/include/core/SkM44.h +442 -0
  121. package/shared/skia/include/core/SkMallocPixelRef.h +45 -0
  122. package/shared/skia/include/core/SkMaskFilter.h +45 -0
  123. package/shared/skia/include/core/SkMatrix.h +1887 -0
  124. package/shared/skia/include/core/SkMesh.h +429 -0
  125. package/shared/skia/include/core/SkMilestone.h +9 -0
  126. package/shared/skia/include/core/SkOpenTypeSVGDecoder.h +30 -0
  127. package/shared/skia/include/core/SkOverdrawCanvas.h +94 -0
  128. package/shared/skia/include/core/SkPaint.h +698 -0
  129. package/shared/skia/include/core/SkPath.h +1145 -0
  130. package/shared/skia/include/core/SkPathBuilder.h +1052 -0
  131. package/shared/skia/include/core/SkPathEffect.h +88 -0
  132. package/shared/skia/include/core/SkPathIter.h +90 -0
  133. package/shared/skia/include/core/SkPathMeasure.h +96 -0
  134. package/shared/skia/include/core/SkPathTypes.h +71 -0
  135. package/shared/skia/include/core/SkPathUtils.h +39 -0
  136. package/shared/skia/include/core/SkPicture.h +291 -0
  137. package/shared/skia/include/core/SkPictureRecorder.h +115 -0
  138. package/shared/skia/include/core/SkPixelRef.h +120 -0
  139. package/shared/skia/include/core/SkPixmap.h +736 -0
  140. package/shared/skia/include/core/SkPoint.h +560 -0
  141. package/shared/skia/include/core/SkPoint3.h +149 -0
  142. package/shared/skia/include/core/SkRRect.h +548 -0
  143. package/shared/skia/include/core/SkRSXform.h +71 -0
  144. package/shared/skia/include/core/SkRasterHandleAllocator.h +94 -0
  145. package/shared/skia/include/core/SkRecorder.h +49 -0
  146. package/shared/skia/include/core/SkRect.h +1419 -0
  147. package/shared/skia/include/core/SkRefCnt.h +391 -0
  148. package/shared/skia/include/core/SkRegion.h +701 -0
  149. package/shared/skia/include/core/SkSamplingOptions.h +107 -0
  150. package/shared/skia/include/core/SkScalar.h +148 -0
  151. package/shared/skia/include/core/SkSerialProcs.h +127 -0
  152. package/shared/skia/include/core/SkShader.h +123 -0
  153. package/shared/skia/include/core/SkSize.h +93 -0
  154. package/shared/skia/include/core/SkSpan.h +174 -0
  155. package/shared/skia/include/core/SkStream.h +524 -0
  156. package/shared/skia/include/core/SkStrikeRef.h +96 -0
  157. package/shared/skia/include/core/SkString.h +297 -0
  158. package/shared/skia/include/core/SkStrokeRec.h +160 -0
  159. package/shared/skia/include/core/SkSurface.h +689 -0
  160. package/shared/skia/include/core/SkSurfaceProps.h +122 -0
  161. package/shared/skia/include/core/SkSwizzle.h +21 -0
  162. package/shared/skia/include/core/SkTextBlob.h +541 -0
  163. package/shared/skia/include/core/SkTextureCompressionType.h +30 -0
  164. package/shared/skia/include/core/SkTileMode.h +41 -0
  165. package/shared/skia/include/core/SkTiledImageUtils.h +125 -0
  166. package/shared/skia/include/core/SkTraceMemoryDump.h +121 -0
  167. package/shared/skia/include/core/SkTypeface.h +468 -0
  168. package/shared/skia/include/core/SkTypes.h +193 -0
  169. package/shared/skia/include/core/SkUnPreMultiply.h +55 -0
  170. package/shared/skia/include/core/SkVertices.h +136 -0
  171. package/shared/skia/include/core/SkYUVAInfo.h +311 -0
  172. package/shared/skia/include/core/SkYUVAPixmaps.h +335 -0
  173. package/shared/skia/include/docs/SkMultiPictureDocument.h +53 -0
  174. package/shared/skia/include/docs/SkPDFDocument.h +277 -0
  175. package/shared/skia/include/docs/SkPDFJpegHelpers.h +41 -0
  176. package/shared/skia/include/docs/SkXPSDocument.h +43 -0
  177. package/shared/skia/include/effects/Sk1DPathEffect.h +40 -0
  178. package/shared/skia/include/effects/Sk2DPathEffect.h +33 -0
  179. package/shared/skia/include/effects/SkBlenders.h +27 -0
  180. package/shared/skia/include/effects/SkBlurMaskFilter.h +35 -0
  181. package/shared/skia/include/effects/SkColorMatrix.h +57 -0
  182. package/shared/skia/include/effects/SkColorMatrixFilter.h +22 -0
  183. package/shared/skia/include/effects/SkCornerPathEffect.h +32 -0
  184. package/shared/skia/include/effects/SkDashPathEffect.h +43 -0
  185. package/shared/skia/include/effects/SkDiscretePathEffect.h +37 -0
  186. package/shared/skia/include/effects/SkGradient.h +206 -0
  187. package/shared/skia/include/effects/SkHighContrastFilter.h +84 -0
  188. package/shared/skia/include/effects/SkImageFilters.h +641 -0
  189. package/shared/skia/include/effects/SkLumaColorFilter.h +37 -0
  190. package/shared/skia/include/effects/SkOverdrawColorFilter.h +33 -0
  191. package/shared/skia/include/effects/SkPerlinNoiseShader.h +53 -0
  192. package/shared/skia/include/effects/SkRuntimeEffect.h +503 -0
  193. package/shared/skia/include/effects/SkShaderMaskFilter.h +28 -0
  194. package/shared/skia/include/effects/SkTableMaskFilter.h +47 -0
  195. package/shared/skia/include/effects/SkTrimPathEffect.h +45 -0
  196. package/shared/skia/include/encode/SkEncoder.h +63 -0
  197. package/shared/skia/include/encode/SkICC.h +36 -0
  198. package/shared/skia/include/encode/SkJpegEncoder.h +127 -0
  199. package/shared/skia/include/encode/SkPngEncoder.h +132 -0
  200. package/shared/skia/include/encode/SkPngRustEncoder.h +121 -0
  201. package/shared/skia/include/encode/SkWebpEncoder.h +87 -0
  202. package/shared/skia/include/gpu/GpuTypes.h +98 -0
  203. package/shared/skia/include/gpu/MutableTextureState.h +68 -0
  204. package/shared/skia/include/gpu/ShaderErrorHandler.h +46 -0
  205. package/shared/skia/include/gpu/ganesh/GrBackendSemaphore.h +50 -0
  206. package/shared/skia/include/gpu/ganesh/GrBackendSurface.h +257 -0
  207. package/shared/skia/include/gpu/ganesh/GrContextOptions.h +384 -0
  208. package/shared/skia/include/gpu/ganesh/GrContextThreadSafeProxy.h +175 -0
  209. package/shared/skia/include/gpu/ganesh/GrDirectContext.h +1027 -0
  210. package/shared/skia/include/gpu/ganesh/GrDriverBugWorkarounds.h +53 -0
  211. package/shared/skia/include/gpu/ganesh/GrDriverBugWorkaroundsAutogen.h +49 -0
  212. package/shared/skia/include/gpu/ganesh/GrExternalTextureGenerator.h +54 -0
  213. package/shared/skia/include/gpu/ganesh/GrRecordingContext.h +300 -0
  214. package/shared/skia/include/gpu/ganesh/GrTypes.h +193 -0
  215. package/shared/skia/include/gpu/ganesh/GrYUVABackendTextures.h +130 -0
  216. package/shared/skia/include/gpu/ganesh/SkImageGanesh.h +361 -0
  217. package/shared/skia/include/gpu/ganesh/SkMeshGanesh.h +57 -0
  218. package/shared/skia/include/gpu/ganesh/SkSurfaceGanesh.h +218 -0
  219. package/shared/skia/include/gpu/ganesh/d3d/GrD3DBackendContext.h +35 -0
  220. package/shared/skia/include/gpu/ganesh/d3d/GrD3DBackendSemaphore.h +20 -0
  221. package/shared/skia/include/gpu/ganesh/d3d/GrD3DBackendSurface.h +59 -0
  222. package/shared/skia/include/gpu/ganesh/d3d/GrD3DDirectContext.h +28 -0
  223. package/shared/skia/include/gpu/ganesh/d3d/GrD3DTypes.h +248 -0
  224. package/shared/skia/include/gpu/ganesh/gl/GrGLAssembleHelpers.h +17 -0
  225. package/shared/skia/include/gpu/ganesh/gl/GrGLAssembleInterface.h +45 -0
  226. package/shared/skia/include/gpu/ganesh/gl/GrGLBackendSurface.h +64 -0
  227. package/shared/skia/include/gpu/ganesh/gl/GrGLConfig.h +69 -0
  228. package/shared/skia/include/gpu/ganesh/gl/GrGLDirectContext.h +30 -0
  229. package/shared/skia/include/gpu/ganesh/gl/GrGLExtensions.h +79 -0
  230. package/shared/skia/include/gpu/ganesh/gl/GrGLFunctions.h +313 -0
  231. package/shared/skia/include/gpu/ganesh/gl/GrGLInterface.h +337 -0
  232. package/shared/skia/include/gpu/ganesh/gl/GrGLMakeWebGLInterface.h +19 -0
  233. package/shared/skia/include/gpu/ganesh/gl/GrGLTypes.h +219 -0
  234. package/shared/skia/include/gpu/ganesh/gl/egl/GrGLMakeEGLInterface.h +23 -0
  235. package/shared/skia/include/gpu/ganesh/gl/epoxy/GrGLMakeEpoxyEGLInterface.h +20 -0
  236. package/shared/skia/include/gpu/ganesh/gl/glx/GrGLMakeGLXInterface.h +23 -0
  237. package/shared/skia/include/gpu/ganesh/gl/ios/GrGLMakeIOSInterface.h +20 -0
  238. package/shared/skia/include/gpu/ganesh/gl/mac/GrGLMakeMacInterface.h +20 -0
  239. package/shared/skia/include/gpu/ganesh/gl/win/GrGLMakeWinInterface.h +20 -0
  240. package/shared/skia/include/gpu/ganesh/mock/GrMockBackendSurface.h +59 -0
  241. package/shared/skia/include/gpu/ganesh/mock/GrMockTypes.h +166 -0
  242. package/shared/skia/include/gpu/ganesh/mtl/GrMtlBackendContext.h +21 -0
  243. package/shared/skia/include/gpu/ganesh/mtl/GrMtlBackendSemaphore.h +23 -0
  244. package/shared/skia/include/gpu/ganesh/mtl/GrMtlBackendSurface.h +44 -0
  245. package/shared/skia/include/gpu/ganesh/mtl/GrMtlDirectContext.h +30 -0
  246. package/shared/skia/include/gpu/ganesh/mtl/GrMtlTypes.h +61 -0
  247. package/shared/skia/include/gpu/ganesh/mtl/SkSurfaceMetal.h +73 -0
  248. package/shared/skia/include/gpu/ganesh/vk/GrBackendDrawableInfo.h +44 -0
  249. package/shared/skia/include/gpu/ganesh/vk/GrVkBackendSemaphore.h +20 -0
  250. package/shared/skia/include/gpu/ganesh/vk/GrVkBackendSurface.h +71 -0
  251. package/shared/skia/include/gpu/ganesh/vk/GrVkDirectContext.h +33 -0
  252. package/shared/skia/include/gpu/ganesh/vk/GrVkTypes.h +101 -0
  253. package/shared/skia/include/gpu/graphite/BackendSemaphore.h +60 -0
  254. package/shared/skia/include/gpu/graphite/BackendTexture.h +65 -0
  255. package/shared/skia/include/gpu/graphite/Context.h +440 -0
  256. package/shared/skia/include/gpu/graphite/ContextOptions.h +239 -0
  257. package/shared/skia/include/gpu/graphite/GraphiteTypes.h +315 -0
  258. package/shared/skia/include/gpu/graphite/Image.h +428 -0
  259. package/shared/skia/include/gpu/graphite/ImageProvider.h +68 -0
  260. package/shared/skia/include/gpu/graphite/PersistentPipelineStorage.h +45 -0
  261. package/shared/skia/include/gpu/graphite/PrecompileContext.h +109 -0
  262. package/shared/skia/include/gpu/graphite/Recorder.h +355 -0
  263. package/shared/skia/include/gpu/graphite/Recording.h +100 -0
  264. package/shared/skia/include/gpu/graphite/Surface.h +121 -0
  265. package/shared/skia/include/gpu/graphite/TextureInfo.h +133 -0
  266. package/shared/skia/include/gpu/graphite/YUVABackendTextures.h +148 -0
  267. package/shared/skia/include/gpu/graphite/dawn/DawnBackendContext.h +77 -0
  268. package/shared/skia/include/gpu/graphite/dawn/DawnGraphiteTypes.h +163 -0
  269. package/shared/skia/include/gpu/graphite/dawn/DawnTypes.h +9 -0
  270. package/shared/skia/include/gpu/graphite/dawn/DawnUtils.h +9 -0
  271. package/shared/skia/include/gpu/graphite/mtl/MtlBackendContext.h +34 -0
  272. package/shared/skia/include/gpu/graphite/mtl/MtlGraphiteTypes.h +73 -0
  273. package/shared/skia/include/gpu/graphite/mtl/MtlGraphiteTypesUtils.h +10 -0
  274. package/shared/skia/include/gpu/graphite/mtl/MtlGraphiteTypes_cpp.h +50 -0
  275. package/shared/skia/include/gpu/graphite/mtl/MtlGraphiteUtils.h +9 -0
  276. package/shared/skia/include/gpu/graphite/precompile/PaintOptions.h +211 -0
  277. package/shared/skia/include/gpu/graphite/precompile/Precompile.h +59 -0
  278. package/shared/skia/include/gpu/graphite/precompile/PrecompileBase.h +76 -0
  279. package/shared/skia/include/gpu/graphite/precompile/PrecompileBlender.h +56 -0
  280. package/shared/skia/include/gpu/graphite/precompile/PrecompileColorFilter.h +95 -0
  281. package/shared/skia/include/gpu/graphite/precompile/PrecompileImageFilter.h +116 -0
  282. package/shared/skia/include/gpu/graphite/precompile/PrecompileMaskFilter.h +49 -0
  283. package/shared/skia/include/gpu/graphite/precompile/PrecompileRuntimeEffect.h +47 -0
  284. package/shared/skia/include/gpu/graphite/precompile/PrecompileShader.h +268 -0
  285. package/shared/skia/include/gpu/graphite/vk/VulkanGraphiteContext.h +31 -0
  286. package/shared/skia/include/gpu/graphite/vk/VulkanGraphiteTypes.h +104 -0
  287. package/shared/skia/include/gpu/graphite/vk/precompile/VulkanPrecompileShader.h +39 -0
  288. package/shared/skia/include/gpu/mtl/MtlMemoryAllocator.h +41 -0
  289. package/shared/skia/include/gpu/vk/VulkanBackendContext.h +57 -0
  290. package/shared/skia/include/gpu/vk/VulkanExtensions.h +73 -0
  291. package/shared/skia/include/gpu/vk/VulkanMemoryAllocator.h +117 -0
  292. package/shared/skia/include/gpu/vk/VulkanMutableTextureState.h +26 -0
  293. package/shared/skia/include/gpu/vk/VulkanPreferredFeatures.h +225 -0
  294. package/shared/skia/include/gpu/vk/VulkanTypes.h +245 -0
  295. package/shared/skia/include/pathops/SkPathOps.h +150 -0
  296. package/shared/skia/include/ports/SkCFObject.h +180 -0
  297. package/shared/skia/include/ports/SkFontConfigInterface.h +112 -0
  298. package/shared/skia/include/ports/SkFontMgr_FontConfigInterface.h +24 -0
  299. package/shared/skia/include/ports/SkFontMgr_Fontations.h +20 -0
  300. package/shared/skia/include/ports/SkFontMgr_android.h +48 -0
  301. package/shared/skia/include/ports/SkFontMgr_android_ndk.h +27 -0
  302. package/shared/skia/include/ports/SkFontMgr_data.h +22 -0
  303. package/shared/skia/include/ports/SkFontMgr_directory.h +21 -0
  304. package/shared/skia/include/ports/SkFontMgr_empty.h +21 -0
  305. package/shared/skia/include/ports/SkFontMgr_fontconfig.h +24 -0
  306. package/shared/skia/include/ports/SkFontMgr_fuchsia.h +21 -0
  307. package/shared/skia/include/ports/SkFontMgr_mac_ct.h +27 -0
  308. package/shared/skia/include/ports/SkFontScanner_Fontations.h +15 -0
  309. package/shared/skia/include/ports/SkFontScanner_FreeType.h +15 -0
  310. package/shared/skia/include/ports/SkImageGeneratorCG.h +28 -0
  311. package/shared/skia/include/ports/SkImageGeneratorNDK.h +40 -0
  312. package/shared/skia/include/ports/SkImageGeneratorWIC.h +41 -0
  313. package/shared/skia/include/ports/SkTypeface_fontations.h +24 -0
  314. package/shared/skia/include/ports/SkTypeface_mac.h +44 -0
  315. package/shared/skia/include/ports/SkTypeface_win.h +63 -0
  316. package/shared/skia/include/private/SingleOwner.h +75 -0
  317. package/shared/skia/include/private/SkAPI.h +52 -0
  318. package/shared/skia/include/private/SkASAN.h +56 -0
  319. package/shared/skia/include/private/SkAlign.h +51 -0
  320. package/shared/skia/include/private/SkAlignedStorage.h +32 -0
  321. package/shared/skia/include/private/SkAnySubclass.h +79 -0
  322. package/shared/skia/include/private/SkAssert.h +203 -0
  323. package/shared/skia/include/private/SkAttributes.h +96 -0
  324. package/shared/skia/include/private/SkCPUTypes.h +25 -0
  325. package/shared/skia/include/private/SkContainers.h +54 -0
  326. package/shared/skia/include/private/SkDebug.h +27 -0
  327. package/shared/skia/include/private/SkDeque.h +138 -0
  328. package/shared/skia/include/private/SkEncodedInfo.h +249 -0
  329. package/shared/skia/include/private/SkEnumBitMask.h +92 -0
  330. package/shared/skia/include/private/SkExif.h +69 -0
  331. package/shared/skia/include/private/SkFeatures.h +173 -0
  332. package/shared/skia/include/private/SkFixed.h +143 -0
  333. package/shared/skia/include/private/SkFloatingPoint.h +183 -0
  334. package/shared/skia/include/private/SkGainmapInfo.h +140 -0
  335. package/shared/skia/include/private/SkGainmapShader.h +60 -0
  336. package/shared/skia/include/private/SkHdrMetadata.h +357 -0
  337. package/shared/skia/include/private/SkIDChangeListener.h +76 -0
  338. package/shared/skia/include/private/SkJpegGainmapEncoder.h +48 -0
  339. package/shared/skia/include/private/SkJpegMetadataDecoder.h +103 -0
  340. package/shared/skia/include/private/SkLoadUserConfig.h +64 -0
  341. package/shared/skia/include/private/SkLog.h +62 -0
  342. package/shared/skia/include/private/SkLogPriority.h +34 -0
  343. package/shared/skia/include/private/SkMacros.h +170 -0
  344. package/shared/skia/include/private/SkMalloc.h +152 -0
  345. package/shared/skia/include/private/SkMath.h +77 -0
  346. package/shared/skia/include/private/SkMutex.h +72 -0
  347. package/shared/skia/include/private/SkNoncopyable.h +30 -0
  348. package/shared/skia/include/private/SkOnce.h +55 -0
  349. package/shared/skia/include/private/SkPathRef.h +90 -0
  350. package/shared/skia/include/private/SkPixelStorage.h +52 -0
  351. package/shared/skia/include/private/SkSLSampleUsage.h +85 -0
  352. package/shared/skia/include/private/SkSafe32.h +49 -0
  353. package/shared/skia/include/private/SkSemaphore.h +84 -0
  354. package/shared/skia/include/private/SkTArray.h +823 -0
  355. package/shared/skia/include/private/SkTDArray.h +247 -0
  356. package/shared/skia/include/private/SkTFitsIn.h +92 -0
  357. package/shared/skia/include/private/SkTLogic.h +56 -0
  358. package/shared/skia/include/private/SkTPin.h +23 -0
  359. package/shared/skia/include/private/SkTemplates.h +500 -0
  360. package/shared/skia/include/private/SkThreadAnnotations.h +104 -0
  361. package/shared/skia/include/private/SkThreadID.h +23 -0
  362. package/shared/skia/include/private/SkTo.h +39 -0
  363. package/shared/skia/include/private/SkTypeTraits.h +53 -0
  364. package/shared/skia/include/private/SkWeakRefCnt.h +173 -0
  365. package/shared/skia/include/private/SkXmp.h +62 -0
  366. package/shared/skia/include/private/chromium/GrDeferredDisplayList.h +120 -0
  367. package/shared/skia/include/private/chromium/GrDeferredDisplayListRecorder.h +62 -0
  368. package/shared/skia/include/private/chromium/GrPromiseImageTexture.h +43 -0
  369. package/shared/skia/include/private/chromium/GrSurfaceCharacterization.h +211 -0
  370. package/shared/skia/include/private/chromium/GrVkSecondaryCBDrawContext.h +131 -0
  371. package/shared/skia/include/private/chromium/SkChromeRemoteGlyphCache.h +150 -0
  372. package/shared/skia/include/private/chromium/SkCodecsICCProfileChromium.h +52 -0
  373. package/shared/skia/include/private/chromium/SkDiscardableMemory.h +70 -0
  374. package/shared/skia/include/private/chromium/SkExifChromium.h +26 -0
  375. package/shared/skia/include/private/chromium/SkImageChromium.h +117 -0
  376. package/shared/skia/include/private/chromium/SkPMColor.h +38 -0
  377. package/shared/skia/include/private/chromium/Slug.h +72 -0
  378. package/shared/skia/include/private/gpu/ganesh/GrContext_Base.h +104 -0
  379. package/shared/skia/include/private/gpu/ganesh/GrD3DTypesMinimal.h +60 -0
  380. package/shared/skia/include/private/gpu/ganesh/GrImageContext.h +56 -0
  381. package/shared/skia/include/private/gpu/ganesh/GrTextureGenerator.h +66 -0
  382. package/shared/skia/include/private/gpu/ganesh/GrTypesPriv.h +959 -0
  383. package/shared/skia/include/private/gpu/vk/SkiaVulkan.h +36 -0
  384. package/shared/skia/include/sksl/SkSLDebugTrace.h +25 -0
  385. package/shared/skia/include/sksl/SkSLVersion.h +27 -0
  386. package/shared/skia/include/svg/SkSVGCanvas.h +62 -0
  387. package/shared/skia/include/third_party/vulkan/vulkan/vk_icd.h +245 -0
  388. package/shared/skia/include/third_party/vulkan/vulkan/vk_layer.h +192 -0
  389. package/shared/skia/include/third_party/vulkan/vulkan/vk_platform.h +84 -0
  390. package/shared/skia/include/third_party/vulkan/vulkan/vk_video/vulkan_video_codec_av1std.h +394 -0
  391. package/shared/skia/include/third_party/vulkan/vulkan/vk_video/vulkan_video_codec_av1std_decode.h +109 -0
  392. package/shared/skia/include/third_party/vulkan/vulkan/vk_video/vulkan_video_codec_av1std_encode.h +143 -0
  393. package/shared/skia/include/third_party/vulkan/vulkan/vk_video/vulkan_video_codec_h264std.h +312 -0
  394. package/shared/skia/include/third_party/vulkan/vulkan/vk_video/vulkan_video_codec_h264std_decode.h +77 -0
  395. package/shared/skia/include/third_party/vulkan/vulkan/vk_video/vulkan_video_codec_h264std_encode.h +147 -0
  396. package/shared/skia/include/third_party/vulkan/vulkan/vk_video/vulkan_video_codec_h265std.h +446 -0
  397. package/shared/skia/include/third_party/vulkan/vulkan/vk_video/vulkan_video_codec_h265std_decode.h +67 -0
  398. package/shared/skia/include/third_party/vulkan/vulkan/vk_video/vulkan_video_codec_h265std_encode.h +157 -0
  399. package/shared/skia/include/third_party/vulkan/vulkan/vk_video/vulkan_video_codec_vp9std.h +151 -0
  400. package/shared/skia/include/third_party/vulkan/vulkan/vk_video/vulkan_video_codec_vp9std_decode.h +68 -0
  401. package/shared/skia/include/third_party/vulkan/vulkan/vk_video/vulkan_video_codecs_common.h +36 -0
  402. package/shared/skia/include/third_party/vulkan/vulkan/vulkan.h +103 -0
  403. package/shared/skia/include/third_party/vulkan/vulkan/vulkan_android.h +159 -0
  404. package/shared/skia/include/third_party/vulkan/vulkan/vulkan_beta.h +375 -0
  405. package/shared/skia/include/third_party/vulkan/vulkan/vulkan_core.h +25896 -0
  406. package/shared/skia/include/third_party/vulkan/vulkan/vulkan_directfb.h +59 -0
  407. package/shared/skia/include/third_party/vulkan/vulkan/vulkan_fuchsia.h +282 -0
  408. package/shared/skia/include/third_party/vulkan/vulkan/vulkan_ggp.h +62 -0
  409. package/shared/skia/include/third_party/vulkan/vulkan/vulkan_ios.h +50 -0
  410. package/shared/skia/include/third_party/vulkan/vulkan/vulkan_macos.h +50 -0
  411. package/shared/skia/include/third_party/vulkan/vulkan/vulkan_metal.h +244 -0
  412. package/shared/skia/include/third_party/vulkan/vulkan/vulkan_ohos.h +120 -0
  413. package/shared/skia/include/third_party/vulkan/vulkan/vulkan_screen.h +114 -0
  414. package/shared/skia/include/third_party/vulkan/vulkan/vulkan_vi.h +50 -0
  415. package/shared/skia/include/third_party/vulkan/vulkan/vulkan_wayland.h +59 -0
  416. package/shared/skia/include/third_party/vulkan/vulkan/vulkan_win32.h +372 -0
  417. package/shared/skia/include/third_party/vulkan/vulkan/vulkan_xcb.h +60 -0
  418. package/shared/skia/include/third_party/vulkan/vulkan/vulkan_xlib.h +60 -0
  419. package/shared/skia/include/third_party/vulkan/vulkan/vulkan_xlib_xrandr.h +50 -0
  420. package/shared/skia/include/utils/SkCamera.h +109 -0
  421. package/shared/skia/include/utils/SkCanvasStateUtils.h +81 -0
  422. package/shared/skia/include/utils/SkCustomTypeface.h +70 -0
  423. package/shared/skia/include/utils/SkEventTracer.h +93 -0
  424. package/shared/skia/include/utils/SkNWayCanvas.h +123 -0
  425. package/shared/skia/include/utils/SkNoDrawCanvas.h +78 -0
  426. package/shared/skia/include/utils/SkNullCanvas.h +22 -0
  427. package/shared/skia/include/utils/SkOrderedFontMgr.h +66 -0
  428. package/shared/skia/include/utils/SkPaintFilterCanvas.h +140 -0
  429. package/shared/skia/include/utils/SkParse.h +36 -0
  430. package/shared/skia/include/utils/SkParsePath.h +33 -0
  431. package/shared/skia/include/utils/SkShadowUtils.h +102 -0
  432. package/shared/skia/include/utils/SkTextUtils.h +43 -0
  433. package/shared/skia/include/utils/SkTraceEventPhase.h +19 -0
  434. package/shared/skia/include/utils/mac/SkCGUtils.h +90 -0
  435. package/shared/skia/modules/jsonreader/SkJSONReader.cpp +996 -0
  436. package/shared/skia/modules/jsonreader/SkJSONReader.h +389 -0
  437. package/shared/skia/modules/skcms/skcms.h +10 -0
  438. package/shared/skia/modules/skcms/src/Transform_inl.h +1600 -0
  439. package/shared/skia/modules/skcms/src/skcms_Transform.h +167 -0
  440. package/shared/skia/modules/skcms/src/skcms_internals.h +157 -0
  441. package/shared/skia/modules/skcms/src/skcms_public.h +496 -0
  442. package/shared/skia/modules/skottie/include/ExternalLayer.h +56 -0
  443. package/shared/skia/modules/skottie/include/Skottie.h +324 -0
  444. package/shared/skia/modules/skottie/include/SkottieProperty.h +190 -0
  445. package/shared/skia/modules/skottie/include/SlotManager.h +113 -0
  446. package/shared/skia/modules/skottie/include/TextShaper.h +197 -0
  447. package/shared/skia/modules/skottie/src/SkottieValue.h +56 -0
  448. package/shared/skia/modules/skottie/src/animator/Animator.h +89 -0
  449. package/shared/skia/modules/skottie/src/text/Font.h +82 -0
  450. package/shared/skia/modules/skottie/src/text/TextAdapter.h +155 -0
  451. package/shared/skia/modules/skottie/src/text/TextAnimator.h +122 -0
  452. package/shared/skia/modules/skottie/src/text/TextValue.h +28 -0
  453. package/shared/skia/modules/skparagraph/include/DartTypes.h +153 -0
  454. package/shared/skia/modules/skparagraph/include/FontArguments.h +46 -0
  455. package/shared/skia/modules/skparagraph/include/FontCollection.h +76 -0
  456. package/shared/skia/modules/skparagraph/include/Metrics.h +98 -0
  457. package/shared/skia/modules/skparagraph/include/Paragraph.h +289 -0
  458. package/shared/skia/modules/skparagraph/include/ParagraphBuilder.h +94 -0
  459. package/shared/skia/modules/skparagraph/include/ParagraphCache.h +52 -0
  460. package/shared/skia/modules/skparagraph/include/ParagraphPainter.h +63 -0
  461. package/shared/skia/modules/skparagraph/include/ParagraphStyle.h +160 -0
  462. package/shared/skia/modules/skparagraph/include/TextShadow.h +30 -0
  463. package/shared/skia/modules/skparagraph/include/TextStyle.h +392 -0
  464. package/shared/skia/modules/skparagraph/include/TypefaceFontProvider.h +78 -0
  465. package/shared/skia/modules/skresources/include/SkResources.h +291 -0
  466. package/shared/skia/modules/sksg/include/SkSGClipEffect.h +61 -0
  467. package/shared/skia/modules/sksg/include/SkSGColorFilter.h +135 -0
  468. package/shared/skia/modules/sksg/include/SkSGDraw.h +57 -0
  469. package/shared/skia/modules/sksg/include/SkSGEffectNode.h +50 -0
  470. package/shared/skia/modules/sksg/include/SkSGGeometryEffect.h +207 -0
  471. package/shared/skia/modules/sksg/include/SkSGGeometryNode.h +54 -0
  472. package/shared/skia/modules/sksg/include/SkSGGradient.h +108 -0
  473. package/shared/skia/modules/sksg/include/SkSGGroup.h +65 -0
  474. package/shared/skia/modules/sksg/include/SkSGImage.h +59 -0
  475. package/shared/skia/modules/sksg/include/SkSGInvalidationController.h +46 -0
  476. package/shared/skia/modules/sksg/include/SkSGMaskEffect.h +65 -0
  477. package/shared/skia/modules/sksg/include/SkSGMerge.h +74 -0
  478. package/shared/skia/modules/sksg/include/SkSGNode.h +128 -0
  479. package/shared/skia/modules/sksg/include/SkSGOpacityEffect.h +54 -0
  480. package/shared/skia/modules/sksg/include/SkSGPaint.h +112 -0
  481. package/shared/skia/modules/sksg/include/SkSGPath.h +68 -0
  482. package/shared/skia/modules/sksg/include/SkSGPlane.h +47 -0
  483. package/shared/skia/modules/sksg/include/SkSGRect.h +122 -0
  484. package/shared/skia/modules/sksg/include/SkSGRenderEffect.h +283 -0
  485. package/shared/skia/modules/sksg/include/SkSGRenderNode.h +157 -0
  486. package/shared/skia/modules/sksg/include/SkSGScene.h +47 -0
  487. package/shared/skia/modules/sksg/include/SkSGText.h +82 -0
  488. package/shared/skia/modules/sksg/include/SkSGTransform.h +127 -0
  489. package/shared/skia/modules/skshaper/include/SkShaper.h +318 -0
  490. package/shared/skia/modules/skshaper/include/SkShaper_coretext.h +26 -0
  491. package/shared/skia/modules/skshaper/include/SkShaper_factory.h +41 -0
  492. package/shared/skia/modules/skshaper/include/SkShaper_harfbuzz.h +39 -0
  493. package/shared/skia/modules/skshaper/include/SkShaper_skunicode.h +28 -0
  494. package/shared/skia/modules/skunicode/include/SkUnicode.h +321 -0
  495. package/shared/skia/modules/skunicode/include/SkUnicode_icu.h +18 -0
  496. package/shared/skia/modules/skunicode/include/SkUnicode_libgrapheme.h +19 -0
  497. package/shared/skia/modules/svg/include/SkSVGAttribute.h +110 -0
  498. package/shared/skia/modules/svg/include/SkSVGAttributeParser.h +170 -0
  499. package/shared/skia/modules/svg/include/SkSVGCircle.h +56 -0
  500. package/shared/skia/modules/svg/include/SkSVGClipPath.h +41 -0
  501. package/shared/skia/modules/svg/include/SkSVGContainer.h +52 -0
  502. package/shared/skia/modules/svg/include/SkSVGDOM.h +111 -0
  503. package/shared/skia/modules/svg/include/SkSVGDefs.h +23 -0
  504. package/shared/skia/modules/svg/include/SkSVGEllipse.h +51 -0
  505. package/shared/skia/modules/svg/include/SkSVGFe.h +93 -0
  506. package/shared/skia/modules/svg/include/SkSVGFeBlend.h +54 -0
  507. package/shared/skia/modules/svg/include/SkSVGFeColorMatrix.h +55 -0
  508. package/shared/skia/modules/svg/include/SkSVGFeComponentTransfer.h +82 -0
  509. package/shared/skia/modules/svg/include/SkSVGFeComposite.h +55 -0
  510. package/shared/skia/modules/svg/include/SkSVGFeDisplacementMap.h +56 -0
  511. package/shared/skia/modules/svg/include/SkSVGFeFlood.h +42 -0
  512. package/shared/skia/modules/svg/include/SkSVGFeGaussianBlur.h +50 -0
  513. package/shared/skia/modules/svg/include/SkSVGFeImage.h +44 -0
  514. package/shared/skia/modules/svg/include/SkSVGFeLightSource.h +93 -0
  515. package/shared/skia/modules/svg/include/SkSVGFeLighting.h +131 -0
  516. package/shared/skia/modules/svg/include/SkSVGFeMerge.h +63 -0
  517. package/shared/skia/modules/svg/include/SkSVGFeMorphology.h +55 -0
  518. package/shared/skia/modules/svg/include/SkSVGFeOffset.h +44 -0
  519. package/shared/skia/modules/svg/include/SkSVGFeTurbulence.h +49 -0
  520. package/shared/skia/modules/svg/include/SkSVGFilter.h +48 -0
  521. package/shared/skia/modules/svg/include/SkSVGFilterContext.h +69 -0
  522. package/shared/skia/modules/svg/include/SkSVGG.h +23 -0
  523. package/shared/skia/modules/svg/include/SkSVGGradient.h +56 -0
  524. package/shared/skia/modules/svg/include/SkSVGHiddenContainer.h +23 -0
  525. package/shared/skia/modules/svg/include/SkSVGIDMapper.h +19 -0
  526. package/shared/skia/modules/svg/include/SkSVGImage.h +67 -0
  527. package/shared/skia/modules/svg/include/SkSVGLine.h +53 -0
  528. package/shared/skia/modules/svg/include/SkSVGLinearGradient.h +47 -0
  529. package/shared/skia/modules/svg/include/SkSVGMask.h +49 -0
  530. package/shared/skia/modules/svg/include/SkSVGNode.h +235 -0
  531. package/shared/skia/modules/svg/include/SkSVGOpenTypeSVGDecoder.h +37 -0
  532. package/shared/skia/modules/svg/include/SkSVGPath.h +46 -0
  533. package/shared/skia/modules/svg/include/SkSVGPattern.h +61 -0
  534. package/shared/skia/modules/svg/include/SkSVGPoly.h +56 -0
  535. package/shared/skia/modules/svg/include/SkSVGRadialGradient.h +48 -0
  536. package/shared/skia/modules/svg/include/SkSVGRect.h +56 -0
  537. package/shared/skia/modules/svg/include/SkSVGRenderContext.h +229 -0
  538. package/shared/skia/modules/svg/include/SkSVGSVG.h +60 -0
  539. package/shared/skia/modules/svg/include/SkSVGShape.h +40 -0
  540. package/shared/skia/modules/svg/include/SkSVGStop.h +36 -0
  541. package/shared/skia/modules/svg/include/SkSVGText.h +128 -0
  542. package/shared/skia/modules/svg/include/SkSVGTransformableNode.h +48 -0
  543. package/shared/skia/modules/svg/include/SkSVGTypes.h +740 -0
  544. package/shared/skia/modules/svg/include/SkSVGUse.h +49 -0
  545. package/shared/skia/modules/svg/include/SkSVGValue.h +85 -0
  546. package/shared/skia/src/core/SkArenaAlloc.h +371 -0
  547. package/shared/skia/src/core/SkAutoLocaleSetter.h +94 -0
  548. package/shared/skia/src/core/SkChecksum.h +118 -0
  549. package/shared/skia/src/core/SkLRUCache.h +143 -0
  550. package/shared/skia/src/core/SkMathPriv.h +225 -0
  551. package/shared/skia/src/core/SkTHash.h +714 -0
  552. package/shared/skia/src/core/SkTInternalLList.h +304 -0
  553. package/shared/skia/src/core/SkTLazy.h +216 -0
  554. package/shared/skia/src/core/SkUTF.h +102 -0
  555. package/shared/skia/src/gpu/ganesh/gl/GrGLDefines.h +1162 -0
  556. package/src/GameMethods.nitro.ts +12 -2
  557. package/src/GameMethods.ts +57 -2
  558. package/src/index.tsx +1 -1
  559. package/src/nativeTypes.ts +13 -0
  560. package/src/types.ts +7 -9
  561. package/android/src/main/cpp/GameLoopJNI.cpp +0 -132
  562. package/android/src/main/java/com/margelo/nitro/rngine/Asset.kt +0 -9
  563. package/android/src/main/java/com/margelo/nitro/rngine/GameAssets.kt +0 -61
  564. package/android/src/main/java/com/margelo/nitro/rngine/Screen.kt +0 -9
  565. package/android/src/main/java/com/margelo/nitro/rngine/Shape.kt +0 -26
  566. package/android/src/main/java/com/margelo/nitro/rngine/Snapshot.kt +0 -3
  567. package/android/src/main/java/com/margelo/nitro/rngine/SnapshotSerializer.kt +0 -53
  568. package/lib/module/GameAssets.js +0 -41
  569. package/lib/module/GameAssets.js.map +0 -1
  570. package/lib/module/GameAssets.nitro.js +0 -5
  571. package/lib/module/GameAssets.nitro.js.map +0 -1
  572. package/lib/typescript/src/GameAssets.d.ts +0 -2
  573. package/lib/typescript/src/GameAssets.d.ts.map +0 -1
  574. package/lib/typescript/src/GameAssets.nitro.d.ts +0 -12
  575. package/lib/typescript/src/GameAssets.nitro.d.ts.map +0 -1
  576. package/nitrogen/generated/android/c++/JHybridGameAssetsSpec.cpp +0 -86
  577. package/nitrogen/generated/android/c++/JHybridGameAssetsSpec.hpp +0 -65
  578. package/nitrogen/generated/android/kotlin/com/margelo/nitro/rngine/HybridGameAssetsSpec.kt +0 -63
  579. package/nitrogen/generated/ios/c++/HybridGameAssetsSpecSwift.cpp +0 -11
  580. package/nitrogen/generated/ios/c++/HybridGameAssetsSpecSwift.hpp +0 -99
  581. package/nitrogen/generated/ios/swift/Func_void.swift +0 -46
  582. package/nitrogen/generated/ios/swift/Func_void_std__exception_ptr.swift +0 -46
  583. package/nitrogen/generated/ios/swift/HybridGameAssetsSpec.swift +0 -57
  584. package/nitrogen/generated/ios/swift/HybridGameAssetsSpec_cxx.swift +0 -176
  585. package/nitrogen/generated/shared/c++/HybridGameAssetsSpec.cpp +0 -23
  586. package/nitrogen/generated/shared/c++/HybridGameAssetsSpec.hpp +0 -65
  587. package/src/GameAssets.nitro.ts +0 -14
  588. package/src/GameAssets.ts +0 -47
@@ -0,0 +1,355 @@
1
+ /*
2
+ * Copyright 2021 Google LLC
3
+ *
4
+ * Use of this source code is governed by a BSD-style license that can be
5
+ * found in the LICENSE file.
6
+ */
7
+
8
+ #ifndef skgpu_graphite_Recorder_DEFINED
9
+ #define skgpu_graphite_Recorder_DEFINED
10
+
11
+ #include "include/core/SkCPURecorder.h"
12
+ #include "include/core/SkRecorder.h"
13
+ #include "include/core/SkRefCnt.h"
14
+ #include "include/core/SkSurface.h"
15
+ #include "include/gpu/graphite/GraphiteTypes.h"
16
+ #include "include/gpu/graphite/Recording.h"
17
+ #include "include/private/SingleOwner.h"
18
+ #include "include/private/SkAPI.h"
19
+ #include "include/private/SkTArray.h"
20
+
21
+ #include <chrono>
22
+ #include <cstddef>
23
+ #include <cstdint>
24
+ #include <memory>
25
+ #include <optional>
26
+
27
+ class SkCanvas;
28
+ class SkPixmap;
29
+ class SkTraceMemoryDump;
30
+ struct SkISize;
31
+ struct SkImageInfo;
32
+
33
+ #if defined(SK_BUILD_FOR_ANDROID)
34
+ struct AHardwareBuffer;
35
+ #endif
36
+
37
+ namespace skgpu {
38
+ enum class BackendApi : unsigned int;
39
+ class RefCntedCallback;
40
+ class TokenTracker;
41
+ }
42
+
43
+ namespace sktext::gpu {
44
+ class StrikeCache;
45
+ class TextBlobRedrawCoordinator;
46
+ }
47
+
48
+ namespace skgpu::graphite {
49
+
50
+ class AtlasProvider;
51
+ class BackendTexture;
52
+ class Context;
53
+ class Device;
54
+ class DrawBufferManager;
55
+ class StorageBufferManager;
56
+ class ImageProvider;
57
+ class PaintParamsKeyBuilder;
58
+ class PipelineDataGatherer;
59
+ class ProxyReadCountMap;
60
+ class RecorderPriv;
61
+ class ResourceProvider;
62
+ class RuntimeEffectDictionary;
63
+ class SharedContext;
64
+ class TaskList;
65
+ class TextureInfo;
66
+ class UploadBufferManager;
67
+ class UploadList;
68
+
69
+ struct RecorderOptionsPriv;
70
+
71
+ using KeyAndDataBuilder = std::pair<PipelineDataGatherer, PaintParamsKeyBuilder>;
72
+
73
+ struct SK_API RecorderOptions final {
74
+ RecorderOptions();
75
+ RecorderOptions(const RecorderOptions&);
76
+ ~RecorderOptions();
77
+
78
+ sk_sp<ImageProvider> fImageProvider;
79
+
80
+ static constexpr size_t kDefaultRecorderBudget = 256 * (1 << 20);
81
+ // What is the budget for GPU resources allocated and held by this Recorder.
82
+ size_t fGpuBudgetInBytes = kDefaultRecorderBudget;
83
+ // If Recordings are known to be played back in the order they are recorded, then Graphite
84
+ // may be able to make certain assumptions that improve performance. This is often the case
85
+ // if the content being drawn triggers the use of internal atlasing in Graphite (e.g. text).
86
+ std::optional<bool> fRequireOrderedRecordings;
87
+
88
+ // Private options that are only meant for testing within Skia's tools.
89
+ RecorderOptionsPriv* fRecorderOptionsPriv = nullptr;
90
+ };
91
+
92
+ class SK_API Recorder final : public SkRecorder {
93
+ public:
94
+ Recorder(const Recorder&) = delete;
95
+ Recorder(Recorder&&) = delete;
96
+ Recorder& operator=(const Recorder&) = delete;
97
+ Recorder& operator=(Recorder&&) = delete;
98
+
99
+ ~Recorder() override;
100
+
101
+ BackendApi backend() const;
102
+
103
+ Type type() const override { return SkRecorder::Type::kGraphite; }
104
+ skcpu::Recorder* cpuRecorder() override;
105
+
106
+ std::unique_ptr<Recording> snap();
107
+
108
+ ImageProvider* clientImageProvider() { return fClientImageProvider.get(); }
109
+ const ImageProvider* clientImageProvider() const { return fClientImageProvider.get(); }
110
+
111
+ /**
112
+ * Gets the maximum supported texture size.
113
+ */
114
+ int maxTextureSize() const;
115
+
116
+ /**
117
+ * Creates a new backend gpu texture matching the dimensions and TextureInfo. If an invalid
118
+ * TextureInfo or a TextureInfo Skia can't support is passed in, this will return an invalid
119
+ * BackendTexture. Thus the client should check isValid on the returned BackendTexture to know
120
+ * if it succeeded or not.
121
+ *
122
+ * If this does return a valid BackendTexture, the caller is required to use
123
+ * Recorder::deleteBackendTexture or Context::deleteBackendTexture to delete the texture. It is
124
+ * safe to use the Context that created this Recorder or any other Recorder created from the
125
+ * same Context to call deleteBackendTexture.
126
+ */
127
+ BackendTexture createBackendTexture(SkISize dimensions, const TextureInfo&);
128
+
129
+ #ifdef SK_BUILD_FOR_ANDROID
130
+ BackendTexture createBackendTexture(AHardwareBuffer*,
131
+ bool isRenderable,
132
+ bool isProtectedContent,
133
+ SkISize dimensions,
134
+ bool fromAndroidWindow = false) const;
135
+ #endif
136
+
137
+ /**
138
+ * If possible, updates a backend texture with the provided pixmap data. The client
139
+ * should check the return value to see if the update was successful. The client is required
140
+ * to insert a Recording into the Context and call `submit` to send the upload work to the gpu.
141
+ * The backend texture must be compatible with the provided pixmap(s). Compatible, in this case,
142
+ * means that the backend format is compatible with the base pixmap's colortype. The src data
143
+ * can be deleted when this call returns. When the BackendTexture is safe to be destroyed by the
144
+ * client, Skia will call the passed in GpuFinishedProc. The BackendTexture should not be
145
+ * destroyed before that.
146
+ * If the backend texture is mip mapped, the data for all the mipmap levels must be provided.
147
+ * In the mipmapped case all the colortypes of the provided pixmaps must be the same.
148
+ * Additionally, all the miplevels must be sized correctly (please see
149
+ * SkMipmap::ComputeLevelSize and ComputeLevelCount).
150
+ * Note: the pixmap's alphatypes and colorspaces are ignored.
151
+ * For the Vulkan backend after a successful update the layout of the created VkImage will be:
152
+ * VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL
153
+ */
154
+ bool updateBackendTexture(const BackendTexture&,
155
+ const SkPixmap srcData[],
156
+ int numLevels,
157
+ GpuFinishedProc = nullptr,
158
+ GpuFinishedContext = nullptr);
159
+
160
+ /**
161
+ * If possible, updates a compressed backend texture filled with the provided raw data. The
162
+ * client should check the return value to see if the update was successful. The client is
163
+ * required to insert a Recording into the Context and call `submit` to send the upload work to
164
+ * the gpu. When the BackendTexture is safe to be destroyed by the client, Skia will call the
165
+ * passed in GpuFinishedProc. The BackendTexture should not be destroyed before that.
166
+ * If the backend texture is mip mapped, the data for all the mipmap levels must be provided.
167
+ * Additionally, all the miplevels must be sized correctly (please see
168
+ * SkMipMap::ComputeLevelSize and ComputeLevelCount).
169
+ * For the Vulkan backend after a successful update the layout of the created VkImage will be:
170
+ * VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL
171
+ */
172
+ bool updateCompressedBackendTexture(const BackendTexture&,
173
+ const void* data,
174
+ size_t dataSize,
175
+ GpuFinishedProc = nullptr,
176
+ GpuFinishedContext = nullptr);
177
+
178
+ /**
179
+ * Called to delete the passed in BackendTexture. This should only be called if the
180
+ * BackendTexture was created by calling Recorder::createBackendTexture on a Recorder that is
181
+ * associated with the same Context. If the BackendTexture is not valid or does not match the
182
+ * BackendApi of the Recorder then nothing happens.
183
+ *
184
+ * Otherwise this will delete/release the backend object that is wrapped in the BackendTexture.
185
+ * The BackendTexture will be reset to an invalid state and should not be used again.
186
+ */
187
+ void deleteBackendTexture(const BackendTexture&);
188
+
189
+ // Adds a proc that will be moved to the Recording upon snap, subsequently attached to the
190
+ // CommandBuffer when the Recording is added, and called when that CommandBuffer is submitted
191
+ // and finishes. If the Recorder or Recording is deleted before the proc is added to the
192
+ // CommandBuffer, it will be called with result Failure.
193
+ void addFinishInfo(const InsertFinishInfo&);
194
+
195
+ // Returns a canvas that will record to a proxy surface, which must be instantiated on replay.
196
+ // This can only be called once per Recording; subsequent calls will return null until a
197
+ // Recording is snapped. Additionally, the returned SkCanvas is only valid until the next
198
+ // Recording snap, at which point it is deleted.
199
+ SkCanvas* makeDeferredCanvas(const SkImageInfo&, const TextureInfo&);
200
+
201
+ /**
202
+ * Frees GPU resources created and held by the Recorder. Can be called to reduce GPU memory
203
+ * pressure. Any resources that are still in use (e.g. being used by work submitted to the GPU)
204
+ * will not be deleted by this call. If the caller wants to make sure all resources are freed,
205
+ * then they should first make sure to submit and wait on any outstanding work.
206
+ */
207
+ void freeGpuResources();
208
+
209
+ /**
210
+ * Purge GPU resources on the Recorder that haven't been used in the past 'msNotUsed'
211
+ * milliseconds or are otherwise marked for deletion, regardless of whether the context is under
212
+ * budget. Optionally provide a `microsMaxPurgingDur` after which Skia should stop purging
213
+ * resources.
214
+ */
215
+ void performDeferredCleanup(
216
+ std::chrono::milliseconds msNotUsed,
217
+ std::optional<std::chrono::microseconds> microsMaxPurgingDur = std::nullopt);
218
+
219
+ /**
220
+ * Returns the number of bytes of the Recorder's gpu memory cache budget that are currently in
221
+ * use.
222
+ */
223
+ size_t currentBudgetedBytes() const;
224
+
225
+ /**
226
+ * Returns the number of bytes of the Recorder's resource cache that are currently purgeable.
227
+ */
228
+ size_t currentPurgeableBytes() const;
229
+
230
+ /**
231
+ * Returns the size of Recorder's gpu memory cache budget in bytes.
232
+ */
233
+ size_t maxBudgetedBytes() const;
234
+
235
+ /**
236
+ * Sets the size of Recorders's gpu memory cache budget in bytes. If the new budget is lower
237
+ * than the current budget, the cache will try to free resources to get under the new budget.
238
+ */
239
+ void setMaxBudgetedBytes(size_t bytes);
240
+
241
+ /**
242
+ * Enumerates all cached GPU resources owned by the Recorder and dumps their memory to
243
+ * traceMemoryDump.
244
+ */
245
+ void dumpMemoryStatistics(SkTraceMemoryDump* traceMemoryDump) const;
246
+
247
+ // Provides access to functions that aren't part of the public API.
248
+ RecorderPriv priv();
249
+ const RecorderPriv priv() const; // NOLINT(readability-const-return-type)
250
+
251
+ private:
252
+ static constexpr int kMaxKeyAndDataBuilders = 2;
253
+
254
+ friend class Context; // For ctor
255
+ friend class Device; // For registering and deregistering Devices;
256
+ friend class RecorderPriv; // for ctor and hidden methods
257
+
258
+ // If Context is non-null, the Recorder will use the Context's resource provider
259
+ // instead of creating its own.
260
+ Recorder(sk_sp<SharedContext>, const RecorderOptions&, const Context*);
261
+
262
+ SingleOwner* singleOwner() const { return &fSingleOwner; }
263
+
264
+ // We keep track of all Devices that are connected to a Recorder. This allows the client to
265
+ // safely delete an SkSurface or a Recorder in any order. If the client deletes the Recorder
266
+ // we need to notify all Devices that the Recorder is no longer valid. If we delete the
267
+ // SkSurface/Device first we will flush all the Device's into the Recorder before deregistering
268
+ // it from the Recorder.
269
+ //
270
+ // We take a ref on the Device so that ~Device() does not have to deregister the recorder
271
+ // (which can happen on any thread if the Device outlives the Surface via an Image view).
272
+ // Recorder::flushTrackedDevices() cleans up uniquely held and immutable Devices on the recorder
273
+ // thread so this extra ref is not significantly increasing the Device lifetime.
274
+ //
275
+ // Note: We could probably get by with only registering Devices directly connected to
276
+ // SkSurfaces. All other one off Devices will be created in a controlled scope where the
277
+ // Recorder should still be valid by the time they need to flush their work when the Device is
278
+ // deleted. We would have to make sure we safely handle cases where a client calls saveLayer
279
+ // then either deletes the SkSurface or Recorder before calling restore. For simplicity we just
280
+ // register every device for now, but if we see extra overhead in pushing back the extra
281
+ // pointers, we can look into only registering SkSurface Devices.
282
+ void registerDevice(sk_sp<Device>);
283
+ void deregisterDevice(const Device*);
284
+
285
+ SkCanvas* makeCaptureCanvas(SkCanvas*) override;
286
+ void createCaptureBreakpoint(SkSurface*) override;
287
+
288
+ sk_sp<SharedContext> fSharedContext;
289
+ ResourceProvider* fResourceProvider; // May point to the Context's resource provider
290
+ std::unique_ptr<ResourceProvider> fOwnedResourceProvider; // May be null
291
+
292
+ sk_sp<RuntimeEffectDictionary> fRuntimeEffectDict;
293
+
294
+ // NOTE: These are stored by pointer to allow them to be forward declared.
295
+ std::unique_ptr<TaskList> fRootTaskList;
296
+ // Aggregated one-time uploads that precede all tasks in the root task list.
297
+ std::unique_ptr<UploadList> fRootUploads;
298
+
299
+ std::unique_ptr<UploadBufferManager> fUploadBufferManager;
300
+ // Depends on fUploadBufferManager (holds a pointer to it). Must be destroyed first.
301
+ std::unique_ptr<DrawBufferManager> fDrawBufferManager;
302
+ sk_sp<StorageBufferManager> fStorageBufferManager;
303
+ std::unique_ptr<ProxyReadCountMap> fProxyReadCounts;
304
+
305
+ skia_private::STArray<kMaxKeyAndDataBuilders, std::unique_ptr<KeyAndDataBuilder>>
306
+ fKeyAndDataBuilders;
307
+
308
+ // Iterating over tracked devices in flushTrackedDevices() needs to be re-entrant and support
309
+ // additions to fTrackedDevices if registerDevice() is triggered by a temporary device during
310
+ // flushing. Removals are handled by setting elements to null; final clean up is handled at the
311
+ // end of the initial call to flushTrackedDevices().
312
+ skia_private::TArray<sk_sp<Device>> fTrackedDevices;
313
+ int fFlushingDevicesIndex = -1;
314
+
315
+ uint32_t fUniqueID; // Needed for MessageBox handling for text
316
+ uint32_t fNextRecordingID = 1;
317
+ const bool fRequireOrderedRecordings;
318
+
319
+ std::unique_ptr<AtlasProvider> fAtlasProvider;
320
+ std::unique_ptr<TokenTracker> fTokenTracker;
321
+ std::unique_ptr<sktext::gpu::StrikeCache> fStrikeCache;
322
+ std::unique_ptr<sktext::gpu::TextBlobRedrawCoordinator> fTextBlobCache;
323
+ sk_sp<ImageProvider> fClientImageProvider;
324
+
325
+ // In debug builds we guard against improper thread handling
326
+ // This guard is passed to the ResourceCache.
327
+ // TODO: Should we also pass this to Device, DrawContext, and similar classes?
328
+ mutable SingleOwner fSingleOwner;
329
+
330
+ sk_sp<Device> fTargetProxyDevice;
331
+ std::unique_ptr<SkCanvas> fTargetProxyCanvas;
332
+ std::unique_ptr<Recording::LazyProxyData> fTargetProxyData;
333
+
334
+ skia_private::TArray<sk_sp<RefCntedCallback>> fFinishedProcs;
335
+
336
+ // Tracks the flushing state to ensure recursive flushing does not occur.
337
+ SkDEBUGCODE(bool fIsFlushingTrackedDevices = false;)
338
+
339
+ #if defined(GPU_TEST_UTILS)
340
+ // For testing use only -- the Context used to create this Recorder
341
+ Context* fContext = nullptr;
342
+ #endif
343
+
344
+ #if defined(SK_DUMP_TASKS)
345
+ // Traverses and dumps the task list at Recorder::snap()
346
+ void dumpTasks(TaskList*) const;
347
+
348
+ // Log of all callers of RecorderPriv::flushTrackedDevices
349
+ SkTDArray<const char*> fFlushSources;
350
+ #endif
351
+ };
352
+
353
+ } // namespace skgpu::graphite
354
+
355
+ #endif // skgpu_graphite_Recorder_DEFINED
@@ -0,0 +1,100 @@
1
+ /*
2
+ * Copyright 2021 Google LLC
3
+ *
4
+ * Use of this source code is governed by a BSD-style license that can be
5
+ * found in the LICENSE file.
6
+ */
7
+
8
+ #ifndef skgpu_graphite_Recording_DEFINED
9
+ #define skgpu_graphite_Recording_DEFINED
10
+
11
+ #include "include/core/SkRefCnt.h"
12
+ #include "include/private/SkAPI.h"
13
+ #include "include/private/SkTArray.h"
14
+ #include <cstddef>
15
+ #include <cstdint>
16
+ #include <memory>
17
+ #include <unordered_set>
18
+ #include <vector>
19
+
20
+ struct SkISize;
21
+
22
+ namespace skgpu {
23
+ class RefCntedCallback;
24
+ }
25
+
26
+ namespace skgpu::graphite {
27
+
28
+ class Caps;
29
+ class CommandBuffer;
30
+ class RecordingPriv;
31
+ class Resource;
32
+ class ResourceProvider;
33
+ class TaskList;
34
+ class Texture;
35
+ class TextureInfo;
36
+ class TextureProxy;
37
+
38
+ class SK_API Recording final {
39
+ public:
40
+ ~Recording();
41
+
42
+ RecordingPriv priv();
43
+
44
+ private:
45
+ friend class Recorder; // for ctor and LazyProxyData
46
+ friend class RecordingPriv;
47
+
48
+ // LazyProxyData is used if this recording should be replayed to a target that is provided on
49
+ // replay, and it handles the target proxy's instantiation with the provided target.
50
+ class LazyProxyData {
51
+ public:
52
+ LazyProxyData(const Caps*, SkISize dimensions, const TextureInfo&);
53
+ ~LazyProxyData();
54
+
55
+ TextureProxy* lazyProxy();
56
+ sk_sp<TextureProxy> refLazyProxy();
57
+
58
+ bool lazyInstantiate(ResourceProvider*, sk_sp<Texture>);
59
+
60
+ private:
61
+ sk_sp<Texture> fTarget;
62
+ sk_sp<TextureProxy> fTargetProxy;
63
+ };
64
+
65
+ struct ProxyHash {
66
+ std::size_t operator()(const sk_sp<TextureProxy>& proxy) const;
67
+ };
68
+
69
+ Recording(uint32_t uniqueID,
70
+ uint32_t recorderID,
71
+ std::unique_ptr<LazyProxyData> targetProxyData,
72
+ skia_private::TArray<sk_sp<RefCntedCallback>>&& finishedProcs);
73
+
74
+ void addResourceRef(sk_sp<Resource>);
75
+
76
+ // Used to verify ordering if recorder ID is not SK_InvalidGenID
77
+ uint32_t fUniqueID;
78
+ uint32_t fRecorderID;
79
+
80
+ // We don't always take refs to all resources used by specific Tasks (e.g. a common buffer used
81
+ // for uploads). Instead we'll just hold onto one ref for those Resources outside the Tasks.
82
+ // Those refs are stored in the array here and will eventually be passed onto a CommandBuffer
83
+ // when the Recording adds its commands.
84
+ std::vector<sk_sp<Resource>> fExtraResourceRefs;
85
+
86
+ // This is held by a pointer instead of being inline to allow TaskList to be forward declared.
87
+ // Depends on fExtraResourceRefs (tasks reference resources). Must be destroyed first.
88
+ std::unique_ptr<TaskList> fRootTaskList;
89
+
90
+ std::unordered_set<sk_sp<TextureProxy>, ProxyHash> fNonVolatileLazyProxies;
91
+ std::unordered_set<sk_sp<TextureProxy>, ProxyHash> fVolatileLazyProxies;
92
+
93
+ std::unique_ptr<LazyProxyData> fTargetProxyData;
94
+
95
+ skia_private::TArray<sk_sp<RefCntedCallback>> fFinishedProcs;
96
+ };
97
+
98
+ } // namespace skgpu::graphite
99
+
100
+ #endif // skgpu_graphite_Recording_DEFINED
@@ -0,0 +1,121 @@
1
+ /*
2
+ * Copyright 2023 Google LLC
3
+ *
4
+ * Use of this source code is governed by a BSD-style license that can be
5
+ * found in the LICENSE file.
6
+ */
7
+
8
+ #ifndef skgpu_graphite_Surface_DEFINED
9
+ #define skgpu_graphite_Surface_DEFINED
10
+
11
+ #include "include/core/SkRefCnt.h"
12
+ #include "include/core/SkSurface.h"
13
+ #include "include/gpu/GpuTypes.h"
14
+
15
+ #include <string_view>
16
+
17
+ class SkImage;
18
+ struct SkImageInfo;
19
+
20
+ namespace skgpu::graphite {
21
+ class BackendTexture;
22
+ class Recorder;
23
+ } // namespace skgpu::graphite
24
+
25
+ namespace SkSurfaces {
26
+ using ReleaseContext = void*;
27
+ using TextureReleaseProc = void (*)(ReleaseContext);
28
+
29
+ /**
30
+ * The 'AsImage' and 'AsImageCopy' API/entry points are currently only available for
31
+ * Graphite.
32
+ *
33
+ * In this API, SkSurface no longer supports copy-on-write behavior. Instead, when creating
34
+ * an image for a surface, the client must explicitly indicate if a copy should be made.
35
+ * In both of the below calls the resource backing the surface will never change.
36
+ *
37
+ * The 'AsImage' entry point has some major ramifications for the mutability of the
38
+ * returned SkImage. Since the originating surface and the returned image share the
39
+ * same backing, care must be taken by the client to ensure that the contents of the image
40
+ * reflect the desired contents when it is consumed by the gpu.
41
+ * Note: if the backing GPU buffer isn't textureable this method will return null. Graphite
42
+ * will not attempt to make a copy.
43
+ * Note: For 'AsImage', the mipmapping of the image will match that of the source surface.
44
+ *
45
+ * The 'AsImageCopy' entry point allows subsetting and the addition of mipmaps (since
46
+ * a copy is already being made).
47
+ *
48
+ * In Graphite, the legacy API call (i.e., makeImageSnapshot) will just always make a copy.
49
+ */
50
+ SK_API sk_sp<SkImage> AsImage(sk_sp<const SkSurface>);
51
+ SK_API sk_sp<SkImage> AsImageCopy(sk_sp<const SkSurface>,
52
+ const SkIRect* subset = nullptr,
53
+ skgpu::Mipmapped = skgpu::Mipmapped::kNo);
54
+
55
+ /**
56
+ * In Graphite, while clients hold a ref on an SkSurface, the backing gpu object does _not_
57
+ * count against the budget. Once an SkSurface is freed, the backing gpu object may or may
58
+ * not become a scratch (i.e., reusable) resource but, if it does, it will be counted against
59
+ * the budget.
60
+ */
61
+ SK_API sk_sp<SkSurface> RenderTarget(skgpu::graphite::Recorder*,
62
+ const SkImageInfo& imageInfo,
63
+ skgpu::Mipmapped = skgpu::Mipmapped::kNo,
64
+ const SkSurfaceProps* surfaceProps = nullptr,
65
+ std::string_view label = {});
66
+
67
+ /**
68
+ * Wraps a GPU-backed texture in an SkSurface. Depending on the backend gpu API, the caller may
69
+ * be required to ensure the texture is valid for the lifetime of the returned SkSurface. The
70
+ * required lifetimes for the specific apis are:
71
+ * Metal: Skia will call retain on the underlying MTLTexture so the caller can drop it once
72
+ * this call returns.
73
+ *
74
+ * SkSurface is returned if all the parameters are valid. The backendTexture is valid if its
75
+ * format agrees with colorSpace and recorder; for instance, if backendTexture has an sRGB
76
+ * configuration, then the recorder must support sRGB, and colorSpace must be present. Further,
77
+ * backendTexture's width and height must not exceed the recorder's capabilities, and the
78
+ * recorder must be able to support the back-end texture.
79
+ *
80
+ * DEPRECATED: Use WrapBackendTexture that does not take a `colorType`.
81
+ */
82
+ SK_API sk_sp<SkSurface> WrapBackendTexture(skgpu::graphite::Recorder*,
83
+ const skgpu::graphite::BackendTexture&,
84
+ SkColorType colorType,
85
+ sk_sp<SkColorSpace> colorSpace,
86
+ const SkSurfaceProps* props,
87
+ TextureReleaseProc = nullptr,
88
+ ReleaseContext = nullptr,
89
+ std::string_view label = {});
90
+ /**
91
+ * Wraps a GPU-backed texture in an SkSurface. Depending on the backend gpu API, the caller may
92
+ * be required to ensure the texture is valid for the lifetime of the returned SkSurface. The
93
+ * required lifetimes for the specific apis are:
94
+ * Metal: Skia will call retain on the underlying MTLTexture so the caller can drop it once
95
+ * this call returns.
96
+ *
97
+ * SkSurface is returned if all the parameters are valid. The backendTexture is valid if its
98
+ * format and dimensions are supported by the context that created the recorder. The color type
99
+ * reported by the SkSurface's image info is inferred from backend texture's format, matching as
100
+ * closely as possible when a texture format is not representable exactly as an SkColorType. This
101
+ * is fine as the SkColorType represents the data layout were the texture to be read to CPU memory.
102
+ *
103
+ * For single-channel texture formats, the alpha-only SkColorType is selected as that is more
104
+ * consistently defined for data types. The implication of this is that the alpha channel output
105
+ * from fragment shading will be what's stored in the texture, regardless of whether its format was
106
+ * A or R.
107
+ *
108
+ * For other formats and color types, the ambiguities between BGR and RGB channel order are
109
+ * irrelevant for rendering and sampling on the GPU. Those swizzles can reliably be handled by the
110
+ * hardware and there's no semantic change for the related SkColorTypes.
111
+ */
112
+ SK_API sk_sp<SkSurface> WrapBackendTexture(skgpu::graphite::Recorder*,
113
+ const skgpu::graphite::BackendTexture&,
114
+ sk_sp<SkColorSpace> colorSpace,
115
+ const SkSurfaceProps* props,
116
+ TextureReleaseProc = nullptr,
117
+ ReleaseContext = nullptr,
118
+ std::string_view label = {});
119
+ } // namespace SkSurfaces
120
+
121
+ #endif // skgpu_graphite_Surface_DEFINED