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,689 @@
1
+ /*
2
+ * Copyright 2012 Google Inc.
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 SkSurface_DEFINED
9
+ #define SkSurface_DEFINED
10
+
11
+ #include "include/core/SkImage.h"
12
+ #include "include/core/SkImageInfo.h"
13
+ #include "include/core/SkPixmap.h"
14
+ #include "include/core/SkRefCnt.h"
15
+ #include "include/core/SkSamplingOptions.h"
16
+ #include "include/core/SkScalar.h"
17
+ #include "include/core/SkSurfaceProps.h"
18
+ #include "include/core/SkTypes.h"
19
+
20
+ #include <cstddef>
21
+ #include <cstdint>
22
+ #include <memory>
23
+
24
+ class GrBackendSemaphore;
25
+ class GrBackendTexture;
26
+ class GrRecordingContext;
27
+ class GrSurfaceCharacterization;
28
+ class SkBitmap;
29
+ class SkCanvas;
30
+ class SkCapabilities;
31
+ class SkColorSpace;
32
+ class SkPaint;
33
+ class SkRecorder;
34
+ class SkSurface;
35
+ enum GrSurfaceOrigin : int;
36
+ struct SkIRect;
37
+ struct SkISize;
38
+
39
+ namespace skgpu::graphite {
40
+ class Recorder;
41
+ }
42
+
43
+ namespace SkSurfaces {
44
+
45
+ enum class BackendSurfaceAccess {
46
+ kNoAccess, //!< back-end surface will not be used by client
47
+ kPresent, //!< back-end surface will be used for presenting to screen
48
+ };
49
+
50
+ /** Returns SkSurface without backing pixels. Drawing to SkCanvas returned from SkSurface
51
+ has no effect. Calling makeImageSnapshot() on returned SkSurface returns nullptr.
52
+
53
+ @param width one or greater
54
+ @param height one or greater
55
+ @return SkSurface if width and height are positive; otherwise, nullptr
56
+
57
+ example: https://fiddle.skia.org/c/@Surface_MakeNull
58
+ */
59
+ SK_API sk_sp<SkSurface> Null(int width, int height);
60
+
61
+ /** Allocates raster SkSurface. SkCanvas returned by SkSurface draws directly into those allocated
62
+ pixels, which are zeroed before use. Pixel memory size is imageInfo.height() times
63
+ imageInfo.minRowBytes() or rowBytes, if provided and non-zero.
64
+
65
+ Pixel memory is deleted when SkSurface is deleted.
66
+
67
+ Validity constraints include:
68
+ - info dimensions are greater than zero;
69
+ - info contains SkColorType and SkAlphaType supported by raster surface.
70
+
71
+ @param imageInfo width, height, SkColorType, SkAlphaType, SkColorSpace,
72
+ of raster surface; width and height must be greater than zero
73
+ @param rowBytes interval from one SkSurface row to the next.
74
+ @param props LCD striping orientation and setting for device independent fonts;
75
+ may be nullptr
76
+ @return SkSurface if parameters are valid and memory was allocated, else nullptr.
77
+ */
78
+ SK_API sk_sp<SkSurface> Raster(const SkImageInfo& imageInfo,
79
+ size_t rowBytes,
80
+ const SkSurfaceProps* surfaceProps);
81
+ inline sk_sp<SkSurface> Raster(const SkImageInfo& imageInfo,
82
+ const SkSurfaceProps* props = nullptr) {
83
+ return Raster(imageInfo, 0, props);
84
+ }
85
+
86
+ /** Allocates raster SkSurface. SkCanvas returned by SkSurface draws directly into the
87
+ provided pixels.
88
+
89
+ SkSurface is returned if all parameters are valid.
90
+ Valid parameters include:
91
+ info dimensions are greater than zero;
92
+ info contains SkColorType and SkAlphaType supported by raster surface;
93
+ pixels is not nullptr;
94
+ rowBytes is large enough to contain info width pixels of SkColorType.
95
+
96
+ Pixel buffer size should be info height times computed rowBytes.
97
+ Pixels are not initialized.
98
+ To access pixels after drawing, peekPixels() or readPixels().
99
+
100
+ @param imageInfo width, height, SkColorType, SkAlphaType, SkColorSpace,
101
+ of raster surface; width and height must be greater than zero
102
+ @param pixels pointer to destination pixels buffer
103
+ @param rowBytes interval from one SkSurface row to the next
104
+ @param surfaceProps LCD striping orientation and setting for device independent fonts;
105
+ may be nullptr
106
+ @return SkSurface if all parameters are valid; otherwise, nullptr
107
+ */
108
+
109
+ SK_API sk_sp<SkSurface> WrapPixels(const SkImageInfo& imageInfo,
110
+ void* pixels,
111
+ size_t rowBytes,
112
+ const SkSurfaceProps* surfaceProps = nullptr);
113
+ inline sk_sp<SkSurface> WrapPixels(const SkPixmap& pm, const SkSurfaceProps* props = nullptr) {
114
+ return WrapPixels(pm.info(), pm.writable_addr(), pm.rowBytes(), props);
115
+ }
116
+
117
+ using PixelsReleaseProc = void(void* pixels, void* context);
118
+
119
+ /** Allocates raster SkSurface. SkCanvas returned by SkSurface draws directly into the provided
120
+ pixels. releaseProc is called with pixels and context when SkSurface is deleted.
121
+
122
+ SkSurface is returned if all parameters are valid.
123
+ Valid parameters include:
124
+ info dimensions are greater than zero;
125
+ info contains SkColorType and SkAlphaType supported by raster surface;
126
+ pixels is not nullptr;
127
+ rowBytes is large enough to contain info width pixels of SkColorType.
128
+
129
+ Pixel buffer size should be info height times computed rowBytes.
130
+ Pixels are not initialized.
131
+ To access pixels after drawing, call flush() or peekPixels().
132
+
133
+ @param imageInfo width, height, SkColorType, SkAlphaType, SkColorSpace,
134
+ of raster surface; width and height must be greater than zero
135
+ @param pixels pointer to destination pixels buffer
136
+ @param rowBytes interval from one SkSurface row to the next
137
+ @param releaseProc called when SkSurface is deleted; may be nullptr
138
+ @param context passed to releaseProc; may be nullptr
139
+ @param surfaceProps LCD striping orientation and setting for device independent fonts;
140
+ may be nullptr
141
+ @return SkSurface if all parameters are valid; otherwise, nullptr
142
+ */
143
+ SK_API sk_sp<SkSurface> WrapPixels(const SkImageInfo& imageInfo,
144
+ void* pixels,
145
+ size_t rowBytes,
146
+ PixelsReleaseProc,
147
+ void* context,
148
+ const SkSurfaceProps* surfaceProps = nullptr);
149
+ } // namespace SkSurfaces
150
+
151
+ /** \class SkSurface
152
+ SkSurface is responsible for managing the pixels that a canvas draws into. The pixels can be
153
+ allocated either in CPU memory (a raster surface) or on the GPU (a GrRenderTarget surface).
154
+ SkSurface takes care of allocating a SkCanvas that will draw into the surface. Call
155
+ surface->getCanvas() to use that canvas (but don't delete it, it is owned by the surface).
156
+ SkSurface always has non-zero dimensions. If there is a request for a new surface, and either
157
+ of the requested dimensions are zero, then nullptr will be returned.
158
+
159
+ Clients should *not* subclass SkSurface as there is a lot of internal machinery that is
160
+ not publicly accessible.
161
+ */
162
+ class SK_API SkSurface : public SkRefCnt {
163
+ public:
164
+ /** Is this surface compatible with the provided characterization?
165
+
166
+ This method can be used to determine if an existing SkSurface is a viable destination
167
+ for an GrDeferredDisplayList.
168
+
169
+ @param characterization The characterization for which a compatibility check is desired
170
+ @return true if this surface is compatible with the characterization;
171
+ false otherwise
172
+ */
173
+ bool isCompatible(const GrSurfaceCharacterization& characterization) const;
174
+
175
+ /** Returns pixel count in each row; may be zero or greater.
176
+
177
+ @return number of pixel columns
178
+ */
179
+ int width() const { return fWidth; }
180
+
181
+ /** Returns pixel row count; may be zero or greater.
182
+
183
+ @return number of pixel rows
184
+ */
185
+ int height() const { return fHeight; }
186
+
187
+ /** Returns an ImageInfo describing the surface.
188
+ */
189
+ virtual SkImageInfo imageInfo() const { return SkImageInfo::MakeUnknown(fWidth, fHeight); }
190
+
191
+ /** Returns unique value identifying the content of SkSurface. Returned value changes
192
+ each time the content changes. Content is changed by drawing, or by calling
193
+ notifyContentWillChange().
194
+
195
+ @return unique content identifier
196
+
197
+ example: https://fiddle.skia.org/c/@Surface_notifyContentWillChange
198
+ */
199
+ uint32_t generationID();
200
+
201
+ /** \enum SkSurface::ContentChangeMode
202
+ ContentChangeMode members are parameters to notifyContentWillChange().
203
+ */
204
+ enum ContentChangeMode {
205
+ kDiscard_ContentChangeMode, //!< discards surface on change
206
+ kRetain_ContentChangeMode, //!< preserves surface on change
207
+ };
208
+
209
+ /** Notifies that SkSurface contents will be changed by code outside of Skia.
210
+ Subsequent calls to generationID() return a different value.
211
+
212
+ TODO: Can kRetain_ContentChangeMode be deprecated?
213
+
214
+ example: https://fiddle.skia.org/c/@Surface_notifyContentWillChange
215
+ */
216
+ void notifyContentWillChange(ContentChangeMode mode);
217
+
218
+ /** Returns the recording context being used by the SkSurface.
219
+
220
+ @return the recording context, if available; nullptr otherwise
221
+ */
222
+ GrRecordingContext* recordingContext() const;
223
+
224
+ /** Returns the recorder being used by the SkSurface.
225
+
226
+ @return the recorder, if available; nullptr otherwise
227
+ */
228
+ skgpu::graphite::Recorder* recorder() const;
229
+
230
+ /** Returns the base SkRecorder being used by the SkSurface.
231
+
232
+ @return the recorder; should be non-null for drawable surfaces
233
+ */
234
+ SkRecorder* baseRecorder() const;
235
+
236
+ enum class BackendHandleAccess {
237
+ kFlushRead, //!< back-end object is readable
238
+ kFlushWrite, //!< back-end object is writable
239
+ kDiscardWrite, //!< back-end object must be overwritten
240
+
241
+ // Legacy names, remove when clients are migrated
242
+ kFlushRead_BackendHandleAccess = kFlushRead,
243
+ kFlushWrite_BackendHandleAccess = kFlushWrite,
244
+ kDiscardWrite_BackendHandleAccess = kDiscardWrite,
245
+ };
246
+
247
+ // Legacy names, remove when clients are migrated
248
+ static constexpr BackendHandleAccess kFlushRead_BackendHandleAccess =
249
+ BackendHandleAccess::kFlushRead;
250
+ static constexpr BackendHandleAccess kFlushWrite_BackendHandleAccess =
251
+ BackendHandleAccess::kFlushWrite;
252
+ static constexpr BackendHandleAccess kDiscardWrite_BackendHandleAccess =
253
+ BackendHandleAccess::kDiscardWrite;
254
+
255
+ /** Caller data passed to TextureReleaseProc; may be nullptr. */
256
+ using ReleaseContext = void*;
257
+ /** User function called when supplied texture may be deleted. */
258
+ using TextureReleaseProc = void (*)(ReleaseContext);
259
+
260
+ /** If the surface was made via MakeFromBackendTexture then it's backing texture may be
261
+ substituted with a different texture. The contents of the previous backing texture are
262
+ copied into the new texture. SkCanvas state is preserved. The original sample count is
263
+ used. The GrBackendFormat and dimensions of replacement texture must match that of
264
+ the original.
265
+
266
+ Upon success textureReleaseProc is called when it is safe to delete the texture in the
267
+ backend API (accounting only for use of the texture by this surface). If SkSurface creation
268
+ fails textureReleaseProc is called before this function returns.
269
+
270
+ @param backendTexture the new backing texture for the surface
271
+ @param mode Retain or discard current Content
272
+ @param TextureReleaseProc function called when texture can be released
273
+ @param ReleaseContext state passed to textureReleaseProc
274
+ */
275
+ virtual bool replaceBackendTexture(const GrBackendTexture& backendTexture,
276
+ GrSurfaceOrigin origin,
277
+ ContentChangeMode mode = kRetain_ContentChangeMode,
278
+ TextureReleaseProc = nullptr,
279
+ ReleaseContext = nullptr) = 0;
280
+
281
+ /** Returns SkCanvas that draws into SkSurface. Subsequent calls return the same SkCanvas.
282
+ SkCanvas returned is managed and owned by SkSurface, and is deleted when SkSurface
283
+ is deleted.
284
+
285
+ @return drawing SkCanvas for SkSurface
286
+
287
+ example: https://fiddle.skia.org/c/@Surface_getCanvas
288
+ */
289
+ SkCanvas* getCanvas();
290
+
291
+ /** Returns SkCapabilities that describes the capabilities of the SkSurface's device.
292
+
293
+ @return SkCapabilities of SkSurface's device.
294
+ */
295
+ sk_sp<const SkCapabilities> capabilities();
296
+
297
+ /** Returns a compatible SkSurface, or nullptr. Returned SkSurface contains
298
+ the same raster, GPU, or null properties as the original. Returned SkSurface
299
+ does not share the same pixels.
300
+
301
+ Returns nullptr if imageInfo width or height are zero, or if imageInfo
302
+ is incompatible with SkSurface.
303
+
304
+ @param imageInfo width, height, SkColorType, SkAlphaType, SkColorSpace,
305
+ of SkSurface; width and height must be greater than zero
306
+ @return compatible SkSurface or nullptr
307
+
308
+ example: https://fiddle.skia.org/c/@Surface_makeSurface
309
+ */
310
+ sk_sp<SkSurface> makeSurface(const SkImageInfo& imageInfo);
311
+
312
+ /** Calls makeSurface(ImageInfo) with the same ImageInfo as this surface, but with the
313
+ * specified width and height.
314
+ */
315
+ sk_sp<SkSurface> makeSurface(int width, int height);
316
+
317
+ /** Returns SkImage capturing SkSurface contents. Subsequent drawing to SkSurface contents
318
+ are not captured. SkImage allocation is accounted for if SkSurface was created with
319
+ skgpu::Budgeted::kYes.
320
+
321
+ @return SkImage initialized with SkSurface contents
322
+
323
+ example: https://fiddle.skia.org/c/@Surface_makeImageSnapshot
324
+ */
325
+ sk_sp<SkImage> makeImageSnapshot();
326
+
327
+ /**
328
+ * Like the no-parameter version, this returns an image of the current surface contents.
329
+ * This variant takes a rectangle specifying the subset of the surface that is of interest.
330
+ * These bounds will be sanitized before being used.
331
+ * - If bounds extends beyond the surface, it will be trimmed to just the intersection of
332
+ * it and the surface.
333
+ * - If bounds does not intersect the surface, then this returns nullptr.
334
+ * - If bounds == the surface, then this is the same as calling the no-parameter variant.
335
+
336
+ example: https://fiddle.skia.org/c/@Surface_makeImageSnapshot_2
337
+ */
338
+ sk_sp<SkImage> makeImageSnapshot(const SkIRect& bounds);
339
+
340
+ /** Returns an SkImage capturing the current SkSurface contents. However, the contents of the
341
+ SkImage are only valid as long as no other writes to the SkSurface occur. If writes to the
342
+ original SkSurface happen then contents of the SkImage are undefined. However, continued use
343
+ of the SkImage should not cause crashes or similar fatal behavior.
344
+
345
+ This API is useful for cases where the client either immediately destroys the SkSurface
346
+ after the SkImage is created or knows they will destroy the SkImage before writing to the
347
+ SkSurface again.
348
+
349
+ This API can be more performant than makeImageSnapshot as it never does an internal copy
350
+ of the data assuming the user frees either the SkImage or SkSurface as described above.
351
+ */
352
+ sk_sp<SkImage> makeTemporaryImage();
353
+
354
+ /** Draws SkSurface contents to canvas, with its top-left corner at (x, y).
355
+
356
+ If SkPaint paint is not nullptr, apply SkColorFilter, alpha, SkImageFilter, and SkBlendMode.
357
+
358
+ @param canvas SkCanvas drawn into
359
+ @param x horizontal offset in SkCanvas
360
+ @param y vertical offset in SkCanvas
361
+ @param sampling what technique to use when sampling the surface pixels
362
+ @param paint SkPaint containing SkBlendMode, SkColorFilter, SkImageFilter,
363
+ and so on; or nullptr
364
+
365
+ example: https://fiddle.skia.org/c/@Surface_draw
366
+ */
367
+ void draw(SkCanvas* canvas, SkScalar x, SkScalar y, const SkSamplingOptions& sampling,
368
+ const SkPaint* paint);
369
+
370
+ void draw(SkCanvas* canvas, SkScalar x, SkScalar y, const SkPaint* paint = nullptr) {
371
+ this->draw(canvas, x, y, SkSamplingOptions(), paint);
372
+ }
373
+
374
+ /** Copies SkSurface pixel address, row bytes, and SkImageInfo to SkPixmap, if address
375
+ is available, and returns true. If pixel address is not available, return
376
+ false and leave SkPixmap unchanged.
377
+
378
+ pixmap contents become invalid on any future change to SkSurface.
379
+
380
+ @param pixmap storage for pixel state if pixels are readable; otherwise, ignored
381
+ @return true if SkSurface has direct access to pixels
382
+
383
+ example: https://fiddle.skia.org/c/@Surface_peekPixels
384
+ */
385
+ bool peekPixels(SkPixmap* pixmap);
386
+
387
+ /** Copies SkRect of pixels to dst.
388
+
389
+ Source SkRect corners are (srcX, srcY) and SkSurface (width(), height()).
390
+ Destination SkRect corners are (0, 0) and (dst.width(), dst.height()).
391
+ Copies each readable pixel intersecting both rectangles, without scaling,
392
+ converting to dst.colorType() and dst.alphaType() if required.
393
+
394
+ Pixels are readable when SkSurface is raster, or backed by a Ganesh GPU backend. Graphite
395
+ has deprecated this API in favor of the equivalent asynchronous API on
396
+ skgpu::graphite::Context (with an optional explicit synchonization).
397
+
398
+ The destination pixel storage must be allocated by the caller.
399
+
400
+ Pixel values are converted only if SkColorType and SkAlphaType
401
+ do not match. Only pixels within both source and destination rectangles
402
+ are copied. dst contents outside SkRect intersection are unchanged.
403
+
404
+ Pass negative values for srcX or srcY to offset pixels across or down destination.
405
+
406
+ Does not copy, and returns false if:
407
+ - Source and destination rectangles do not intersect.
408
+ - SkPixmap pixels could not be allocated.
409
+ - dst.rowBytes() is too small to contain one row of pixels.
410
+
411
+ @param dst storage for pixels copied from SkSurface
412
+ @param srcX offset into readable pixels on x-axis; may be negative
413
+ @param srcY offset into readable pixels on y-axis; may be negative
414
+ @return true if pixels were copied
415
+
416
+ example: https://fiddle.skia.org/c/@Surface_readPixels
417
+ */
418
+ bool readPixels(const SkPixmap& dst, int srcX, int srcY);
419
+
420
+ /** Copies SkRect of pixels from SkCanvas into dstPixels.
421
+
422
+ Source SkRect corners are (srcX, srcY) and SkSurface (width(), height()).
423
+ Destination SkRect corners are (0, 0) and (dstInfo.width(), dstInfo.height()).
424
+ Copies each readable pixel intersecting both rectangles, without scaling,
425
+ converting to dstInfo.colorType() and dstInfo.alphaType() if required.
426
+
427
+ Pixels are readable when SkSurface is raster, or backed by a Ganesh GPU backend. Graphite
428
+ has deprecated this API in favor of the equivalent asynchronous API on
429
+ skgpu::graphite::Context (with an optional explicit synchonization).
430
+
431
+ The destination pixel storage must be allocated by the caller.
432
+
433
+ Pixel values are converted only if SkColorType and SkAlphaType
434
+ do not match. Only pixels within both source and destination rectangles
435
+ are copied. dstPixels contents outside SkRect intersection are unchanged.
436
+
437
+ Pass negative values for srcX or srcY to offset pixels across or down destination.
438
+
439
+ Does not copy, and returns false if:
440
+ - Source and destination rectangles do not intersect.
441
+ - SkSurface pixels could not be converted to dstInfo.colorType() or dstInfo.alphaType().
442
+ - dstRowBytes is too small to contain one row of pixels.
443
+
444
+ @param dstInfo width, height, SkColorType, and SkAlphaType of dstPixels
445
+ @param dstPixels storage for pixels; dstInfo.height() times dstRowBytes, or larger
446
+ @param dstRowBytes size of one destination row; dstInfo.width() times pixel size, or larger
447
+ @param srcX offset into readable pixels on x-axis; may be negative
448
+ @param srcY offset into readable pixels on y-axis; may be negative
449
+ @return true if pixels were copied
450
+ */
451
+ bool readPixels(const SkImageInfo& dstInfo, void* dstPixels, size_t dstRowBytes,
452
+ int srcX, int srcY);
453
+
454
+ /** Copies SkRect of pixels from SkSurface into bitmap.
455
+
456
+ Source SkRect corners are (srcX, srcY) and SkSurface (width(), height()).
457
+ Destination SkRect corners are (0, 0) and (bitmap.width(), bitmap.height()).
458
+ Copies each readable pixel intersecting both rectangles, without scaling,
459
+ converting to bitmap.colorType() and bitmap.alphaType() if required.
460
+
461
+ Pixels are readable when SkSurface is raster, or backed by a Ganesh GPU backend. Graphite
462
+ has deprecated this API in favor of the equivalent asynchronous API on
463
+ skgpu::graphite::Context (with an optional explicit synchonization).
464
+
465
+ The destination pixel storage must be allocated by the caller.
466
+
467
+ Pixel values are converted only if SkColorType and SkAlphaType
468
+ do not match. Only pixels within both source and destination rectangles
469
+ are copied. dst contents outside SkRect intersection are unchanged.
470
+
471
+ Pass negative values for srcX or srcY to offset pixels across or down destination.
472
+
473
+ Does not copy, and returns false if:
474
+ - Source and destination rectangles do not intersect.
475
+ - SkSurface pixels could not be converted to dst.colorType() or dst.alphaType().
476
+ - dst pixels could not be allocated.
477
+ - dst.rowBytes() is too small to contain one row of pixels.
478
+
479
+ @param dst storage for pixels copied from SkSurface
480
+ @param srcX offset into readable pixels on x-axis; may be negative
481
+ @param srcY offset into readable pixels on y-axis; may be negative
482
+ @return true if pixels were copied
483
+
484
+ example: https://fiddle.skia.org/c/@Surface_readPixels_3
485
+ */
486
+ bool readPixels(const SkBitmap& dst, int srcX, int srcY);
487
+
488
+ using AsyncReadResult = SkImage::AsyncReadResult;
489
+
490
+ /** Client-provided context that is passed to client-provided ReadPixelsContext. */
491
+ using ReadPixelsContext = void*;
492
+
493
+ /** Client-provided callback to asyncRescaleAndReadPixels() or
494
+ asyncRescaleAndReadPixelsYUV420() that is called when read result is ready or on failure.
495
+ */
496
+ using ReadPixelsCallback = void(ReadPixelsContext, std::unique_ptr<const AsyncReadResult>);
497
+
498
+ /** Controls the gamma that rescaling occurs in for asyncRescaleAndReadPixels() and
499
+ asyncRescaleAndReadPixelsYUV420().
500
+ */
501
+ using RescaleGamma = SkImage::RescaleGamma;
502
+ using RescaleMode = SkImage::RescaleMode;
503
+
504
+ /** Makes surface pixel data available to caller, possibly asynchronously. It can also rescale
505
+ the surface pixels.
506
+
507
+ Currently asynchronous reads are only supported in the Ganesh GPU backend and only when the
508
+ underlying 3D API supports transfer buffers and CPU/GPU synchronization primitives. In all
509
+ other cases this operates synchronously.
510
+
511
+ For the Graphite backend this API has been deprecated in favor of the equivalent API
512
+ on skgpu::graphite::Context.
513
+
514
+ Data is read from the source sub-rectangle, is optionally converted to a linear gamma, is
515
+ rescaled to the size indicated by 'info', is then converted to the color space, color type,
516
+ and alpha type of 'info'. A 'srcRect' that is not contained by the bounds of the surface
517
+ causes failure.
518
+
519
+ When the pixel data is ready the caller's ReadPixelsCallback is called with a
520
+ AsyncReadResult containing pixel data in the requested color type, alpha type, and color
521
+ space. The AsyncReadResult will have count() == 1. Upon failure the callback is called
522
+ with nullptr for AsyncReadResult. For a GPU surface this flushes work but a submit must
523
+ occur to guarantee a finite time before the callback is called.
524
+
525
+ The data is valid for the lifetime of AsyncReadResult with the exception that if the
526
+ SkSurface is GPU-backed the data is immediately invalidated if the context is abandoned
527
+ or destroyed.
528
+
529
+ @param info info of the requested pixels
530
+ @param srcRect subrectangle of surface to read
531
+ @param rescaleGamma controls whether rescaling is done in the surface's gamma or whether
532
+ the source data is transformed to a linear gamma before rescaling.
533
+ @param rescaleMode controls the technique of the rescaling
534
+ @param callback function to call with result of the read
535
+ @param context passed to callback
536
+ */
537
+ void asyncRescaleAndReadPixels(const SkImageInfo& info,
538
+ const SkIRect& srcRect,
539
+ RescaleGamma rescaleGamma,
540
+ RescaleMode rescaleMode,
541
+ ReadPixelsCallback callback,
542
+ ReadPixelsContext context);
543
+
544
+ /**
545
+ Similar to asyncRescaleAndReadPixels but performs an additional conversion to YUV. The
546
+ RGB->YUV conversion is controlled by 'yuvColorSpace'. The YUV data is returned as three
547
+ planes ordered y, u, v. The u and v planes are half the width and height of the resized
548
+ rectangle. The y, u, and v values are single bytes. Currently this fails if 'dstSize'
549
+ width and height are not even. A 'srcRect' that is not contained by the bounds of the
550
+ surface causes failure.
551
+
552
+ When the pixel data is ready the caller's ReadPixelsCallback is called with a
553
+ AsyncReadResult containing the planar data. The AsyncReadResult will have count() == 3.
554
+ Upon failure the callback is called with nullptr for AsyncReadResult. For a GPU surface this
555
+ flushes work but a submit must occur to guarantee a finite time before the callback is
556
+ called.
557
+
558
+ The data is valid for the lifetime of AsyncReadResult with the exception that if the
559
+ SkSurface is GPU-backed the data is immediately invalidated if the context is abandoned
560
+ or destroyed.
561
+
562
+ @param yuvColorSpace The transformation from RGB to YUV. Applied to the resized image
563
+ after it is converted to dstColorSpace.
564
+ @param dstColorSpace The color space to convert the resized image to, after rescaling.
565
+ @param srcRect The portion of the surface to rescale and convert to YUV planes.
566
+ @param dstSize The size to rescale srcRect to
567
+ @param rescaleGamma controls whether rescaling is done in the surface's gamma or whether
568
+ the source data is transformed to a linear gamma before rescaling.
569
+ @param rescaleMode controls the sampling technique of the rescaling
570
+ @param callback function to call with the planar read result
571
+ @param context passed to callback
572
+ */
573
+ void asyncRescaleAndReadPixelsYUV420(SkYUVColorSpace yuvColorSpace,
574
+ sk_sp<SkColorSpace> dstColorSpace,
575
+ const SkIRect& srcRect,
576
+ const SkISize& dstSize,
577
+ RescaleGamma rescaleGamma,
578
+ RescaleMode rescaleMode,
579
+ ReadPixelsCallback callback,
580
+ ReadPixelsContext context);
581
+
582
+ /**
583
+ * Identical to asyncRescaleAndReadPixelsYUV420 but a fourth plane is returned in the
584
+ * AsyncReadResult passed to 'callback'. The fourth plane contains the alpha chanel at the
585
+ * same full resolution as the Y plane.
586
+ */
587
+ void asyncRescaleAndReadPixelsYUVA420(SkYUVColorSpace yuvColorSpace,
588
+ sk_sp<SkColorSpace> dstColorSpace,
589
+ const SkIRect& srcRect,
590
+ const SkISize& dstSize,
591
+ RescaleGamma rescaleGamma,
592
+ RescaleMode rescaleMode,
593
+ ReadPixelsCallback callback,
594
+ ReadPixelsContext context);
595
+
596
+ /** Copies SkRect of pixels from the src SkPixmap to the SkSurface.
597
+
598
+ Source SkRect corners are (0, 0) and (src.width(), src.height()).
599
+ Destination SkRect corners are (dstX, dstY) and
600
+ (dstX + Surface width(), dstY + Surface height()).
601
+
602
+ Copies each readable pixel intersecting both rectangles, without scaling,
603
+ converting to SkSurface colorType() and SkSurface alphaType() if required.
604
+
605
+ @param src storage for pixels to copy to SkSurface
606
+ @param dstX x-axis position relative to SkSurface to begin copy; may be negative
607
+ @param dstY y-axis position relative to SkSurface to begin copy; may be negative
608
+
609
+ example: https://fiddle.skia.org/c/@Surface_writePixels
610
+ */
611
+ void writePixels(const SkPixmap& src, int dstX, int dstY);
612
+
613
+ /** Copies SkRect of pixels from the src SkBitmap to the SkSurface.
614
+
615
+ Source SkRect corners are (0, 0) and (src.width(), src.height()).
616
+ Destination SkRect corners are (dstX, dstY) and
617
+ (dstX + Surface width(), dstY + Surface height()).
618
+
619
+ Copies each readable pixel intersecting both rectangles, without scaling,
620
+ converting to SkSurface colorType() and SkSurface alphaType() if required.
621
+
622
+ @param src storage for pixels to copy to SkSurface
623
+ @param dstX x-axis position relative to SkSurface to begin copy; may be negative
624
+ @param dstY y-axis position relative to SkSurface to begin copy; may be negative
625
+
626
+ example: https://fiddle.skia.org/c/@Surface_writePixels_2
627
+ */
628
+ void writePixels(const SkBitmap& src, int dstX, int dstY);
629
+
630
+ /** Returns SkSurfaceProps for surface.
631
+
632
+ @return LCD striping orientation and setting for device independent fonts
633
+ */
634
+ const SkSurfaceProps& props() const { return fProps; }
635
+
636
+ /** Inserts a list of GPU semaphores that the current GPU-backed API must wait on before
637
+ executing any more commands on the GPU for this surface. We only guarantee blocking
638
+ transfer and fragment shader work, but may block earlier stages as well depending on the
639
+ backend.
640
+ If this call returns false, then the GPU back-end will not wait on any passed in
641
+ semaphores, and the client will still own the semaphores, regardless of the value of
642
+ deleteSemaphoresAfterWait.
643
+
644
+ If deleteSemaphoresAfterWait is false then Skia will not delete the semaphores. In this case
645
+ it is the client's responsibility to not destroy or attempt to reuse the semaphores until it
646
+ knows that Skia has finished waiting on them. This can be done by using finishedProcs
647
+ on flush calls.
648
+
649
+ @param numSemaphores size of waitSemaphores array
650
+ @param waitSemaphores array of semaphore containers
651
+ @paramm deleteSemaphoresAfterWait who owns and should delete the semaphores
652
+ @return true if GPU is waiting on semaphores
653
+ */
654
+ bool wait(int numSemaphores, const GrBackendSemaphore* waitSemaphores,
655
+ bool deleteSemaphoresAfterWait = true);
656
+
657
+ /** Initializes GrSurfaceCharacterization that can be used to perform GPU back-end
658
+ processing in a separate thread. Typically this is used to divide drawing
659
+ into multiple tiles. GrDeferredDisplayListRecorder records the drawing commands
660
+ for each tile.
661
+
662
+ Return true if SkSurface supports characterization. raster surface returns false.
663
+
664
+ @param characterization properties for parallel drawing
665
+ @return true if supported
666
+
667
+ example: https://fiddle.skia.org/c/@Surface_characterize
668
+ */
669
+ bool characterize(GrSurfaceCharacterization* characterization) const;
670
+
671
+ protected:
672
+ SkSurface(int width, int height, const SkSurfaceProps* surfaceProps);
673
+ SkSurface(const SkImageInfo& imageInfo, const SkSurfaceProps* surfaceProps);
674
+
675
+ // called by subclass if their contents have changed
676
+ void dirtyGenerationID() {
677
+ fGenerationID = 0;
678
+ }
679
+
680
+ private:
681
+ const SkSurfaceProps fProps;
682
+ const int fWidth;
683
+ const int fHeight;
684
+ uint32_t fGenerationID;
685
+
686
+ using INHERITED = SkRefCnt;
687
+ };
688
+
689
+ #endif