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
@@ -1,19 +1,37 @@
1
1
  #pragma once
2
2
 
3
3
  #include "HybridGameMethodsSpec.hpp"
4
+ #include "World.hpp"
4
5
 
5
6
  namespace margelo::nitro::rngine {
6
7
  class GameMethods : public HybridGameMethodsSpec {
7
8
  public:
8
9
  GameMethods() : HybridObject(TAG) {}
9
- void setTickRate(double tickRate) override;
10
+
11
+ void setWorld(const World &world) override;
12
+
10
13
  void setScreen(const Screen &screen) override;
14
+
11
15
  void setEntities(const std::vector<Entity> &entities) override;
16
+
12
17
  void setSystems(const std::vector<System> &systems) override;
18
+
13
19
  void pause() override;
20
+
14
21
  void resume() override;
22
+
15
23
  void spawn(const std::vector<Entity> &entities) override;
24
+
16
25
  void despawn(const std::string &id) override;
26
+
17
27
  void update(const std::vector<EntityUpdate> &updates) override;
28
+
29
+ bool isAssetLoaded(double id) override;
30
+
31
+ std::shared_ptr<Promise<bool>>
32
+ loadLottie(double id, const std::string &jsonStr) override;
33
+
34
+ std::shared_ptr<Promise<bool>> loadSvg(double id,
35
+ const std::string &svgUri) override;
18
36
  };
19
37
  } // namespace margelo::nitro::rngine
@@ -0,0 +1,420 @@
1
+ #include "GameRenderer.hpp"
2
+ #include "ColorUtils.hpp"
3
+ #include "Rect.hpp"
4
+
5
+ #include <android/log.h>
6
+ #include <android/native_window.h>
7
+
8
+ #include "include/core/SkCanvas.h"
9
+ #include "include/core/SkColor.h"
10
+ #include "include/core/SkColorSpace.h"
11
+ #include "include/core/SkPaint.h"
12
+ #include "include/core/SkRect.h"
13
+ #include "include/core/SkSurface.h"
14
+
15
+ #include "include/gpu/ganesh/GrBackendSurface.h"
16
+ #include "include/gpu/ganesh/GrDirectContext.h"
17
+ #include "include/gpu/ganesh/SkSurfaceGanesh.h"
18
+ #include "include/gpu/ganesh/gl/GrGLBackendSurface.h"
19
+
20
+ #include "include/gpu/ganesh/gl/GrGLDirectContext.h"
21
+ #include "include/gpu/ganesh/gl/GrGLInterface.h"
22
+
23
+ #include <EGL/egl.h>
24
+ #include <GLES3/gl3.h>
25
+
26
+ #include <variant>
27
+
28
+ namespace margelo::nitro::rngine {
29
+
30
+ GameRenderer &GameRenderer::getInstance() {
31
+ static GameRenderer instance;
32
+ return instance;
33
+ }
34
+
35
+ GameRenderer::GameRenderer() {
36
+ __android_log_print(ANDROID_LOG_INFO, "GameRenderer", "Constructor");
37
+ }
38
+
39
+ GameRenderer::~GameRenderer() {
40
+ __android_log_print(ANDROID_LOG_INFO, "GameRenderer", "Destructor");
41
+ }
42
+
43
+ void GameRenderer::onSurfaceCreated(ANativeWindow *window) {
44
+ __android_log_print(ANDROID_LOG_INFO, "GameRenderer", "onSurfaceCreated");
45
+
46
+ _nativeWindow = window;
47
+
48
+ if (!_initialized) {
49
+ if (!initializeEGL()) {
50
+ __android_log_print(ANDROID_LOG_ERROR, "GameRenderer",
51
+ "onSurfaceCreated: EGL initialization failed");
52
+ return;
53
+ }
54
+ _initialized = true;
55
+ }
56
+
57
+ if (!createEGLSurface()) {
58
+ __android_log_print(ANDROID_LOG_ERROR, "GameRenderer",
59
+ "onSurfaceCreated: EGL surface creation failed");
60
+ }
61
+ }
62
+
63
+ void GameRenderer::onSurfaceChanged(int width, int height) {
64
+ _width = width;
65
+ _height = height;
66
+ _surface = nullptr;
67
+
68
+ __android_log_print(ANDROID_LOG_INFO, "GameRenderer",
69
+ "onSurfaceChanged: Width: %d, Height: %d", _width,
70
+ _height);
71
+ }
72
+
73
+ void GameRenderer::onSurfaceDestroyed() {
74
+ if (_eglDisplay != EGL_NO_DISPLAY) {
75
+ eglMakeCurrent(_eglDisplay, EGL_NO_SURFACE, EGL_NO_SURFACE, EGL_NO_CONTEXT);
76
+
77
+ if (_eglSurface != EGL_NO_SURFACE) {
78
+ eglDestroySurface(_eglDisplay, _eglSurface);
79
+ _eglSurface = EGL_NO_SURFACE;
80
+ }
81
+ }
82
+
83
+ if (_nativeWindow) {
84
+ ANativeWindow_release(_nativeWindow);
85
+ _nativeWindow = nullptr;
86
+ }
87
+
88
+ _surface = nullptr;
89
+ _width = 0;
90
+ _height = 0;
91
+
92
+ __android_log_print(ANDROID_LOG_INFO, "GameRenderer", "onSurfaceDestroyed");
93
+ }
94
+
95
+ void GameRenderer::render(const Screen &screen,
96
+ const std::map<std::string, Entity> &entities) {
97
+
98
+ __android_log_print(ANDROID_LOG_DEBUG, "GameRenderer",
99
+ "render: called, entities=%zu", entities.size());
100
+
101
+ if (!_grContext || _eglSurface == EGL_NO_SURFACE || _width == 0 ||
102
+ _height == 0) {
103
+ __android_log_print(ANDROID_LOG_WARN, "GameRenderer",
104
+ "render: early-return: guard failed");
105
+ return;
106
+ }
107
+
108
+ if (!eglMakeCurrent(_eglDisplay, _eglSurface, _eglSurface, _eglContext)) {
109
+ __android_log_print(ANDROID_LOG_ERROR, "GameRenderer",
110
+ "render: eglMakeCurrent failed: 0x%x", eglGetError());
111
+ return;
112
+ }
113
+
114
+ if (!_surface) {
115
+ if (!createSkSurface()) {
116
+ return;
117
+ }
118
+ }
119
+
120
+ SkCanvas *canvas = _surface->getCanvas();
121
+
122
+ canvas->clear(SK_ColorBLACK);
123
+
124
+ float virtualWidth = static_cast<float>(screen.width);
125
+ float virtualHeight = static_cast<float>(screen.height);
126
+
127
+ if (virtualWidth <= 0.0f || virtualHeight <= 0.0f) {
128
+ return;
129
+ }
130
+
131
+ float scaleX = static_cast<float>(_width) / virtualWidth;
132
+ float scaleY = static_cast<float>(_height) / virtualHeight;
133
+
134
+ float scale = std::min(scaleX, scaleY);
135
+
136
+ float offsetX = (static_cast<float>(_width) - (virtualWidth * scale)) * 0.5f;
137
+ float offsetY =
138
+ (static_cast<float>(_height) - (virtualHeight * scale)) * 0.5f;
139
+
140
+ canvas->save();
141
+ canvas->translate(offsetX, offsetY);
142
+ canvas->scale(scale, scale);
143
+
144
+ SkRect gameBounds = SkRect::MakeWH(virtualWidth, virtualHeight);
145
+ canvas->clipRect(gameBounds);
146
+
147
+ if (screen.color.has_value()) {
148
+ canvas->clear(ColorUtils::parseHexColor(screen.color.value()));
149
+ }
150
+
151
+ if (screen.asset.has_value() && screen.asset.value() != 0) {
152
+ double assetId = screen.asset.value();
153
+
154
+ auto svgIt = _svgCache.find(assetId);
155
+ if (svgIt != _svgCache.end() && svgIt->second) {
156
+ auto &svgDom = svgIt->second;
157
+
158
+ SkSize intrinsicSize = svgDom->containerSize();
159
+ if (intrinsicSize.isEmpty()) {
160
+ svgDom->setContainerSize(SkSize::Make(virtualWidth, virtualHeight));
161
+ intrinsicSize = SkSize::Make(virtualWidth, virtualHeight);
162
+ }
163
+
164
+ float scaleX = virtualWidth / intrinsicSize.width();
165
+ float scaleY = virtualHeight / intrinsicSize.height();
166
+
167
+ canvas->save();
168
+ canvas->scale(scaleX, scaleY);
169
+ svgDom->render(canvas);
170
+ canvas->restore();
171
+ } else {
172
+ auto lottieIt = _lottieCache.find(assetId);
173
+ if (lottieIt != _lottieCache.end() && lottieIt->second) {
174
+ auto &lottie = lottieIt->second;
175
+ lottie->seekFrameTime(screen.progress.value_or(0.0) *
176
+ lottie->duration());
177
+ SkRect dstBounds = SkRect::MakeWH(virtualWidth, virtualHeight);
178
+ lottie->render(canvas, &dstBounds);
179
+ }
180
+ }
181
+ }
182
+
183
+ for (const auto &[id, entity] : entities) {
184
+ if (!isEntityVisible(entity, virtualWidth, virtualHeight)) {
185
+ continue;
186
+ }
187
+
188
+ if (entity.color.has_value() ||
189
+ (entity.asset.has_value() && entity.asset.value() != 0)) {
190
+ float px = static_cast<float>(entity.px);
191
+ float py = static_cast<float>(entity.py);
192
+
193
+ if (entity.color.has_value()) {
194
+ SkPaint paint;
195
+ paint.setAntiAlias(true);
196
+ paint.setStyle(SkPaint::kFill_Style);
197
+ paint.setColor(ColorUtils::parseHexColor(entity.color.value()));
198
+
199
+ std::visit(
200
+ [&](const auto &shape) {
201
+ using T = std::decay_t<decltype(shape)>;
202
+ if constexpr (std::is_same_v<T, Rect>) {
203
+ float width = static_cast<float>(shape.width);
204
+ float height = static_cast<float>(shape.height);
205
+ SkRect rect = SkRect::MakeXYWH(px - width / 2, py - height / 2,
206
+ width, height);
207
+ canvas->drawRect(rect, paint);
208
+ } else {
209
+ float radius = static_cast<float>(shape.radius);
210
+ canvas->drawCircle(px, py, radius, paint);
211
+ }
212
+ },
213
+ entity.shape);
214
+ }
215
+
216
+ if ((entity.asset.has_value() && entity.asset.value() != 0)) {
217
+ double assetId = entity.asset.value();
218
+
219
+ float width = 0.f, height = 0.f;
220
+ std::visit(
221
+ [&](const auto &shape) {
222
+ using T = std::decay_t<decltype(shape)>;
223
+ if constexpr (std::is_same_v<T, Rect>) {
224
+ width = static_cast<float>(shape.width);
225
+ height = static_cast<float>(shape.height);
226
+ } else {
227
+ float diameter = static_cast<float>(shape.radius) * 2.f;
228
+ width = diameter;
229
+ height = diameter;
230
+ }
231
+ },
232
+ entity.shape);
233
+
234
+ SkAutoCanvasRestore autoRestore(canvas, true);
235
+ canvas->translate(px - width / 2, py - height / 2);
236
+
237
+ auto svgIt = _svgCache.find(assetId);
238
+ if (svgIt != _svgCache.end() && svgIt->second) {
239
+ auto &svgDom = svgIt->second;
240
+
241
+ SkSize intrinsicSize = svgDom->containerSize();
242
+ if (intrinsicSize.isEmpty()) {
243
+ svgDom->setContainerSize(SkSize::Make(width, height));
244
+ intrinsicSize = SkSize::Make(width, height);
245
+ }
246
+
247
+ float scaleX = width / intrinsicSize.width();
248
+ float scaleY = height / intrinsicSize.height();
249
+
250
+ canvas->save();
251
+ canvas->scale(scaleX, scaleY);
252
+ svgDom->render(canvas);
253
+ canvas->restore();
254
+ } else {
255
+ auto lottieIt = _lottieCache.find(assetId);
256
+ if (lottieIt != _lottieCache.end() && lottieIt->second) {
257
+ auto &lottie = lottieIt->second;
258
+ lottie->seekFrameTime(entity.progress.value_or(0.0) *
259
+ lottie->duration());
260
+ SkRect dstBounds = SkRect::MakeWH(width, height);
261
+ lottie->render(canvas, &dstBounds);
262
+ }
263
+ }
264
+ }
265
+ }
266
+ }
267
+
268
+ canvas->restore();
269
+
270
+ _grContext->flushAndSubmit(_surface.get());
271
+ eglSwapBuffers(_eglDisplay, _eglSurface);
272
+
273
+ __android_log_print(ANDROID_LOG_DEBUG, "GameRenderer", "render: complete");
274
+ }
275
+
276
+ bool GameRenderer::isEntityVisible(const Entity &entity, float screenWidth,
277
+ float screenHeight) {
278
+ float width = 0.f;
279
+ float height = 0.f;
280
+
281
+ std::visit(
282
+ [&](const auto &shape) {
283
+ using T = std::decay_t<decltype(shape)>;
284
+
285
+ if constexpr (std::is_same_v<T, Rect>) {
286
+ width = static_cast<float>(shape.width);
287
+ height = static_cast<float>(shape.height);
288
+ } else {
289
+ width = height = static_cast<float>(shape.radius) * 2.f;
290
+ }
291
+ },
292
+ entity.shape);
293
+
294
+ float left = static_cast<float>(entity.px) - width / 2.f;
295
+ float right = static_cast<float>(entity.px) + width / 2.f;
296
+ float top = static_cast<float>(entity.py) - height / 2.f;
297
+ float bottom = static_cast<float>(entity.py) + height / 2.f;
298
+
299
+ return right > 0.f && left < screenWidth && bottom > 0.f &&
300
+ top < screenHeight;
301
+ }
302
+
303
+ bool GameRenderer::initializeEGL() {
304
+ _eglDisplay = eglGetDisplay(EGL_DEFAULT_DISPLAY);
305
+ if (_eglDisplay == EGL_NO_DISPLAY) {
306
+ __android_log_print(ANDROID_LOG_ERROR, "GameRenderer",
307
+ "initializeEGL: eglGetDisplay failed");
308
+ return false;
309
+ }
310
+
311
+ if (!eglInitialize(_eglDisplay, nullptr, nullptr)) {
312
+ __android_log_print(ANDROID_LOG_ERROR, "GameRenderer",
313
+ "initializeEGL: eglInitialize failed");
314
+ return false;
315
+ }
316
+
317
+ const EGLint configAttribs[] = {EGL_SURFACE_TYPE,
318
+ EGL_WINDOW_BIT,
319
+ EGL_RENDERABLE_TYPE,
320
+ EGL_OPENGL_ES3_BIT,
321
+ EGL_RED_SIZE,
322
+ 8,
323
+ EGL_GREEN_SIZE,
324
+ 8,
325
+ EGL_BLUE_SIZE,
326
+ 8,
327
+ EGL_ALPHA_SIZE,
328
+ 8,
329
+ EGL_NONE};
330
+
331
+ EGLint numConfigs;
332
+ if (!eglChooseConfig(_eglDisplay, configAttribs, &_eglConfig, 1,
333
+ &numConfigs) ||
334
+ numConfigs == 0) {
335
+ __android_log_print(ANDROID_LOG_ERROR, "GameRenderer",
336
+ "initializeEGL: eglChooseConfig failed");
337
+ return false;
338
+ }
339
+
340
+ const EGLint contextAttribs[] = {EGL_CONTEXT_CLIENT_VERSION, 3, EGL_NONE};
341
+
342
+ _eglContext =
343
+ eglCreateContext(_eglDisplay, _eglConfig, EGL_NO_CONTEXT, contextAttribs);
344
+ if (_eglContext == EGL_NO_CONTEXT) {
345
+ __android_log_print(ANDROID_LOG_ERROR, "GameRenderer",
346
+ "initializeEGL: eglCreateContext failed");
347
+ return false;
348
+ }
349
+
350
+ __android_log_print(ANDROID_LOG_INFO, "GameRenderer",
351
+ "initializeEGL: EGL initialized successfully");
352
+ return true;
353
+ };
354
+
355
+ bool GameRenderer::createEGLSurface() {
356
+ if (!_nativeWindow) {
357
+ __android_log_print(
358
+ ANDROID_LOG_ERROR, "GameRenderer",
359
+ "createEGLSurface: No native window for surface creation");
360
+ return false;
361
+ }
362
+
363
+ _eglSurface =
364
+ eglCreateWindowSurface(_eglDisplay, _eglConfig, _nativeWindow, nullptr);
365
+ if (_eglSurface == EGL_NO_SURFACE) {
366
+ __android_log_print(ANDROID_LOG_ERROR, "GameRenderer",
367
+ "createEGLSurface: eglCreateWindowSurface failed");
368
+ return false;
369
+ }
370
+
371
+ if (!eglMakeCurrent(_eglDisplay, _eglSurface, _eglSurface, _eglContext)) {
372
+ __android_log_print(ANDROID_LOG_ERROR, "GameRenderer",
373
+ "createEGLSurface: eglMakeCurrent failed: 0x%x",
374
+ eglGetError());
375
+ return false;
376
+ }
377
+
378
+ if (!_grContext) {
379
+ auto glInterface = GrGLMakeNativeInterface();
380
+ _grContext = GrDirectContexts::MakeGL(glInterface);
381
+ if (!_grContext) {
382
+ __android_log_print(ANDROID_LOG_ERROR, "GameRenderer",
383
+ "createEGLSurface: GrDirectContext::MakeGL failed");
384
+ return false;
385
+ }
386
+ }
387
+
388
+ eglMakeCurrent(_eglDisplay, EGL_NO_SURFACE, EGL_NO_SURFACE, EGL_NO_CONTEXT);
389
+
390
+ __android_log_print(ANDROID_LOG_INFO, "GameRenderer",
391
+ "createEGLSurface: EGL surface created");
392
+ return true;
393
+ }
394
+
395
+ bool GameRenderer::createSkSurface() {
396
+ if (_width == 0 || _height == 0) {
397
+ return false;
398
+ }
399
+
400
+ GrGLFramebufferInfo fbInfo;
401
+ fbInfo.fFBOID = 0;
402
+ fbInfo.fFormat = GL_RGBA8;
403
+
404
+ auto backendRT =
405
+ GrBackendRenderTargets::MakeGL(_width, _height, 0, 8, fbInfo);
406
+
407
+ SkSurfaceProps surfaceProps;
408
+ _surface = SkSurfaces::WrapBackendRenderTarget(
409
+ _grContext.get(), backendRT, kBottomLeft_GrSurfaceOrigin,
410
+ kRGBA_8888_SkColorType, nullptr, &surfaceProps);
411
+
412
+ if (!_surface) {
413
+ __android_log_print(ANDROID_LOG_ERROR, "GameRenderer",
414
+ "createSkSurface: Failed to create SkSurface");
415
+ return false;
416
+ }
417
+
418
+ return true;
419
+ }
420
+ } // namespace margelo::nitro::rngine
@@ -0,0 +1,65 @@
1
+ #pragma once
2
+ #include "Entity.hpp"
3
+ #include "Screen.hpp"
4
+ #include "include/core/SkSurface.h"
5
+ #include "include/gpu/ganesh/GrDirectContext.h"
6
+ #include "modules/skottie/include/Skottie.h"
7
+ #include "modules/svg/include/SkSVGDOM.h"
8
+ #include <EGL/egl.h>
9
+ #include <android/native_window.h>
10
+ #include <cstddef>
11
+
12
+ namespace margelo::nitro::rngine {
13
+ class GameRenderer {
14
+ public:
15
+ static GameRenderer &getInstance();
16
+
17
+ GameRenderer(const GameRenderer &) = delete;
18
+ GameRenderer &operator=(const GameRenderer &) = delete;
19
+ GameRenderer(GameRenderer &&) = delete;
20
+ GameRenderer &operator=(GameRenderer &&) = delete;
21
+
22
+ ~GameRenderer();
23
+
24
+ std::map<double, sk_sp<SkSVGDOM>> &getSvgCacheInternal() {
25
+ return _svgCache;
26
+ };
27
+ std::map<double, sk_sp<skottie::Animation>> &getLottieCacheInternal() {
28
+ return _lottieCache;
29
+ };
30
+
31
+ void onSurfaceCreated(ANativeWindow *window);
32
+ void onSurfaceChanged(int width, int height);
33
+ void onSurfaceDestroyed();
34
+
35
+ void render(const Screen &screen,
36
+ const std::map<std::string, Entity> &entities);
37
+
38
+ private:
39
+ explicit GameRenderer();
40
+
41
+ ANativeWindow *_nativeWindow{nullptr};
42
+
43
+ EGLDisplay _eglDisplay{EGL_NO_DISPLAY};
44
+ EGLSurface _eglSurface{EGL_NO_SURFACE};
45
+ EGLContext _eglContext{EGL_NO_CONTEXT};
46
+ EGLConfig _eglConfig{nullptr};
47
+
48
+ sk_sp<GrDirectContext> _grContext;
49
+ sk_sp<SkSurface> _surface;
50
+
51
+ int _width{0};
52
+ int _height{0};
53
+ bool _initialized{false};
54
+
55
+ std::map<double, sk_sp<SkSVGDOM>> _svgCache;
56
+ std::map<double, sk_sp<skottie::Animation>> _lottieCache;
57
+
58
+ bool isEntityVisible(const Entity &entity, float screenWidth,
59
+ float screenHeight);
60
+
61
+ bool initializeEGL();
62
+ bool createEGLSurface();
63
+ bool createSkSurface();
64
+ };
65
+ } // namespace margelo::nitro::rngine
@@ -4,8 +4,8 @@
4
4
 
5
5
  namespace margelo::nitro::rngine {
6
6
  struct GameStats {
7
- double tickRate = 0.0;
8
- double deltaTime = 0.0;
9
- uint64_t totalTicks = 0;
7
+ double tickRate{0};
8
+ double deltaTime{0};
9
+ uint64_t totalTicks{0};
10
10
  };
11
11
  } // namespace margelo::nitro::rngine
@@ -0,0 +1,9 @@
1
+ #pragma once
2
+
3
+ namespace margelo::nitro::rngine {
4
+ struct Overlap {
5
+ double depth{0.0};
6
+ double nx{0.0};
7
+ double ny{0.0};
8
+ };
9
+ } // namespace margelo::nitro::rngine
@@ -0,0 +1,26 @@
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
+ #ifndef AHardwareBufferUtils_DEFINED
8
+ #define AHardwareBufferUtils_DEFINED
9
+
10
+ #include "include/core/SkColorType.h"
11
+ #include "include/core/SkTypes.h"
12
+
13
+ #if __ANDROID_API__ >= 26
14
+
15
+ namespace AHardwareBufferUtils {
16
+
17
+ // SkColorType expected for AHBs imported as external images
18
+ static const SkColorType kExternalFormatColorType = SkColorType::kRGBA_8888_SkColorType;
19
+
20
+ SkColorType GetSkColorTypeFromBufferFormat(uint32_t bufferFormat);
21
+
22
+ } // namespace AHardwareBufferUtils
23
+
24
+ #endif
25
+
26
+ #endif // AHardwareBufferUtils_DEFINED
@@ -0,0 +1,97 @@
1
+ /*
2
+ * Copyright 2019 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
+ #ifndef GrAHardwareBufferUtils_DEFINED
8
+ #define GrAHardwareBufferUtils_DEFINED
9
+
10
+ #include "include/core/SkTypes.h"
11
+
12
+ #if defined(SK_BUILD_FOR_ANDROID) && __ANDROID_API__ >= 26
13
+
14
+ #include "include/gpu/ganesh/GrBackendSurface.h"
15
+ #include "include/gpu/ganesh/GrTypes.h"
16
+
17
+ class GrDirectContext;
18
+
19
+ extern "C" {
20
+ typedef struct AHardwareBuffer AHardwareBuffer;
21
+ }
22
+
23
+ namespace GrAHardwareBufferUtils {
24
+
25
+ #if !defined(SK_DISABLE_LEGACY_ANDROID_HW_UTILS)
26
+ GrBackendFormat GetBackendFormat(GrDirectContext* dContext, AHardwareBuffer* hardwareBuffer,
27
+ uint32_t bufferFormat, bool requireKnownFormat);
28
+ #endif
29
+
30
+ GrBackendFormat GetGLBackendFormat(GrDirectContext* dContext, uint32_t bufferFormat,
31
+ bool requireKnownFormat);
32
+ GrBackendFormat GetVulkanBackendFormat(GrDirectContext* dContext, AHardwareBuffer* hardwareBuffer,
33
+ uint32_t bufferFormat, bool requireKnownFormat);
34
+
35
+ typedef void* TexImageCtx;
36
+ typedef void (*DeleteImageProc)(TexImageCtx);
37
+ typedef void (*UpdateImageProc)(TexImageCtx, GrDirectContext*);
38
+
39
+ /**
40
+ * Create a GrBackendTexture from AHardwareBuffer
41
+ *
42
+ * @param context GPU context
43
+ * @param hardwareBuffer AHB
44
+ * @param width texture width
45
+ * @param height texture height
46
+ * @param deleteProc returns a function that deletes the texture and
47
+ * other GPU resources. Must be invoked on the same
48
+ * thread as MakeBackendTexture
49
+ * @param updateProc returns a function, that needs to be invoked, when
50
+ * AHB buffer content has changed. Must be invoked on
51
+ * the same thread as MakeBackendTexture
52
+ * @param imageCtx returns an opaque image context, that is passed as
53
+ * first argument to deleteProc and updateProc
54
+ * @param isProtectedContent if true, GL backend uses EXT_protected_content
55
+ * @param backendFormat backend format, usually created with helper
56
+ * function GetBackendFormat
57
+ * @param isRenderable true if GrBackendTexture can be used as a color
58
+ * attachment
59
+ * @return valid GrBackendTexture object on success
60
+ */
61
+ #if !defined(SK_DISABLE_LEGACY_ANDROID_HW_UTILS)
62
+ GrBackendTexture MakeBackendTexture(GrDirectContext* dContext, AHardwareBuffer* hardwareBuffer,
63
+ int width, int height,
64
+ DeleteImageProc* deleteProc,
65
+ UpdateImageProc* updateProc,
66
+ TexImageCtx* imageCtx,
67
+ bool isProtectedContent,
68
+ const GrBackendFormat& backendFormat,
69
+ bool isRenderable,
70
+ bool fromAndroidWindow = false);
71
+ #endif
72
+
73
+ GrBackendTexture MakeGLBackendTexture(GrDirectContext* dContext,
74
+ AHardwareBuffer* hardwareBuffer,
75
+ int width, int height,
76
+ DeleteImageProc* deleteProc,
77
+ UpdateImageProc* updateProc,
78
+ TexImageCtx* imageCtx,
79
+ bool isProtectedContent,
80
+ const GrBackendFormat& backendFormat,
81
+ bool isRenderable);
82
+
83
+ GrBackendTexture MakeVulkanBackendTexture(GrDirectContext* dContext,
84
+ AHardwareBuffer* hardwareBuffer,
85
+ int width, int height,
86
+ DeleteImageProc* deleteProc,
87
+ UpdateImageProc* updateProc,
88
+ TexImageCtx* imageCtx,
89
+ bool isProtectedContent,
90
+ const GrBackendFormat& backendFormat,
91
+ bool isRenderable,
92
+ bool fromAndroidWindow = false);
93
+
94
+ } // namespace GrAHardwareBufferUtils
95
+
96
+ #endif
97
+ #endif