@shopify/react-native-skia 0.1.192 → 0.1.193

Sign up to get free protection for your applications and to get access to all the features.
Files changed (301) hide show
  1. package/android/CMakeLists.txt +1 -1
  2. package/android/build.gradle +1 -0
  3. package/android/cpp/jni/JniPlatformContext.cpp +1 -1
  4. package/cpp/api/JsiSkImage.h +25 -4
  5. package/cpp/api/JsiSkImageFactory.h +2 -2
  6. package/cpp/api/JsiSkPath.h +8 -6
  7. package/cpp/rnskia/dom/base/Declaration.h +5 -7
  8. package/cpp/rnskia/dom/nodes/JsiBlurMaskNode.h +1 -0
  9. package/cpp/rnskia/dom/nodes/JsiPathNode.h +2 -2
  10. package/cpp/rnskia/dom/props/BoxShadowProps.h +2 -0
  11. package/cpp/skia/include/android/SkAndroidFrameworkUtils.h +2 -8
  12. package/cpp/skia/include/android/SkImageAndroid.h +101 -0
  13. package/cpp/skia/include/codec/SkAndroidCodec.h +26 -8
  14. package/cpp/skia/include/codec/SkCodec.h +31 -17
  15. package/cpp/skia/include/codec/SkEncodedImageFormat.h +36 -0
  16. package/cpp/skia/include/codec/SkPixmapUtils.h +31 -0
  17. package/cpp/skia/include/config/SkUserConfig.h +61 -29
  18. package/cpp/skia/include/core/SkBitmap.h +25 -25
  19. package/cpp/skia/include/core/SkBlurTypes.h +0 -2
  20. package/cpp/skia/include/core/SkCanvas.h +32 -15
  21. package/cpp/skia/include/core/SkCapabilities.h +2 -2
  22. package/cpp/skia/include/core/SkColor.h +2 -0
  23. package/cpp/skia/include/core/SkColorPriv.h +19 -4
  24. package/cpp/skia/include/core/SkColorSpace.h +14 -17
  25. package/cpp/skia/include/core/SkColorType.h +1 -0
  26. package/cpp/skia/include/core/SkContourMeasure.h +1 -1
  27. package/cpp/skia/include/core/SkCoverageMode.h +0 -2
  28. package/cpp/skia/include/core/SkCubicMap.h +2 -0
  29. package/cpp/skia/include/core/SkData.h +5 -2
  30. package/cpp/skia/include/core/SkDataTable.h +6 -2
  31. package/cpp/skia/include/core/SkDeferredDisplayList.h +11 -10
  32. package/cpp/skia/include/core/SkDeferredDisplayListRecorder.h +9 -8
  33. package/cpp/skia/include/core/SkDrawable.h +10 -2
  34. package/cpp/skia/include/core/SkEncodedImageFormat.h +3 -30
  35. package/cpp/skia/include/core/SkFlattenable.h +4 -2
  36. package/cpp/skia/include/core/SkFont.h +1 -0
  37. package/cpp/skia/include/core/SkFontMetrics.h +1 -0
  38. package/cpp/skia/include/core/SkFontMgr.h +20 -29
  39. package/cpp/skia/include/core/SkFontStyle.h +4 -1
  40. package/cpp/skia/include/core/SkGraphics.h +21 -18
  41. package/cpp/skia/include/core/SkICC.h +3 -13
  42. package/cpp/skia/include/core/SkImage.h +395 -717
  43. package/cpp/skia/include/core/SkImageGenerator.h +19 -74
  44. package/cpp/skia/include/core/SkImageInfo.h +7 -5
  45. package/cpp/skia/include/core/SkM44.h +11 -0
  46. package/cpp/skia/include/core/SkMaskFilter.h +6 -3
  47. package/cpp/skia/include/core/SkMatrix.h +14 -4
  48. package/cpp/skia/include/core/SkMesh.h +52 -18
  49. package/cpp/skia/include/core/SkMilestone.h +1 -1
  50. package/cpp/skia/include/core/SkPaint.h +11 -34
  51. package/cpp/skia/include/core/SkPath.h +23 -4
  52. package/cpp/skia/include/core/SkPathBuilder.h +13 -5
  53. package/cpp/skia/include/core/SkPathMeasure.h +1 -1
  54. package/cpp/skia/include/core/SkPathTypes.h +0 -2
  55. package/cpp/skia/include/core/SkPathUtils.h +42 -0
  56. package/cpp/skia/include/core/SkPicture.h +3 -2
  57. package/cpp/skia/include/core/SkPictureRecorder.h +2 -0
  58. package/cpp/skia/include/core/SkPixelRef.h +4 -8
  59. package/cpp/skia/include/core/SkPixmap.h +12 -20
  60. package/cpp/skia/include/core/SkPoint.h +4 -2
  61. package/cpp/skia/include/core/SkPromiseImageTexture.h +2 -2
  62. package/cpp/skia/include/core/SkRRect.h +5 -1
  63. package/cpp/skia/include/core/SkRect.h +6 -3
  64. package/cpp/skia/include/core/SkRefCnt.h +9 -14
  65. package/cpp/skia/include/core/SkRegion.h +1 -1
  66. package/cpp/skia/include/core/SkScalar.h +2 -4
  67. package/cpp/skia/include/core/SkSerialProcs.h +18 -10
  68. package/cpp/skia/include/core/SkShader.h +1 -64
  69. package/cpp/skia/include/core/SkSize.h +2 -0
  70. package/cpp/skia/include/core/SkSpan.h +4 -112
  71. package/cpp/skia/include/core/SkStream.h +11 -12
  72. package/cpp/skia/include/core/SkString.h +9 -25
  73. package/cpp/skia/include/core/SkStrokeRec.h +1 -1
  74. package/cpp/skia/include/core/SkSurface.h +83 -61
  75. package/cpp/skia/include/core/SkSurfaceCharacterization.h +3 -3
  76. package/cpp/skia/include/core/SkSurfaceProps.h +9 -1
  77. package/cpp/skia/include/core/SkTextBlob.h +2 -2
  78. package/cpp/skia/include/core/SkTextureCompressionType.h +30 -0
  79. package/cpp/skia/include/core/SkTime.h +1 -1
  80. package/cpp/skia/include/core/SkTypeface.h +9 -2
  81. package/cpp/skia/include/core/SkTypes.h +37 -466
  82. package/cpp/skia/include/core/SkVertices.h +2 -0
  83. package/cpp/skia/include/core/SkYUVAInfo.h +4 -0
  84. package/cpp/skia/include/core/SkYUVAPixmaps.h +7 -1
  85. package/cpp/skia/include/docs/SkPDFDocument.h +12 -1
  86. package/cpp/skia/include/effects/SkColorMatrix.h +2 -1
  87. package/cpp/skia/include/effects/SkGradientShader.h +65 -14
  88. package/cpp/skia/include/effects/SkImageFilters.h +0 -11
  89. package/cpp/skia/include/effects/SkRuntimeEffect.h +41 -11
  90. package/cpp/skia/include/encode/SkEncoder.h +7 -3
  91. package/cpp/skia/include/encode/SkICC.h +36 -0
  92. package/cpp/skia/include/encode/SkJpegEncoder.h +102 -71
  93. package/cpp/skia/include/encode/SkPngEncoder.h +89 -71
  94. package/cpp/skia/include/encode/SkWebpEncoder.h +65 -38
  95. package/cpp/skia/include/gpu/GpuTypes.h +23 -1
  96. package/cpp/skia/include/gpu/GrBackendSurface.h +9 -7
  97. package/cpp/skia/include/gpu/GrContextOptions.h +28 -9
  98. package/cpp/skia/include/gpu/GrContextThreadSafeProxy.h +6 -4
  99. package/cpp/skia/include/gpu/GrDirectContext.h +84 -63
  100. package/cpp/skia/include/gpu/GrDriverBugWorkarounds.h +2 -1
  101. package/cpp/skia/include/gpu/GrRecordingContext.h +9 -5
  102. package/cpp/skia/include/gpu/GrTypes.h +18 -18
  103. package/cpp/skia/include/gpu/d3d/GrD3DTypes.h +4 -4
  104. package/cpp/skia/include/gpu/dawn/GrDawnTypes.h +3 -3
  105. package/cpp/skia/include/gpu/ganesh/GrTextureGenerator.h +77 -0
  106. package/cpp/skia/include/gpu/ganesh/SkImageGanesh.h +385 -0
  107. package/cpp/skia/include/gpu/gl/GrGLExtensions.h +3 -3
  108. package/cpp/skia/include/gpu/gl/GrGLFunctions.h +1 -1
  109. package/cpp/skia/include/gpu/gl/GrGLInterface.h +0 -3
  110. package/cpp/skia/include/gpu/gl/GrGLTypes.h +2 -1
  111. package/cpp/skia/include/gpu/graphite/BackendTexture.h +72 -3
  112. package/cpp/skia/include/gpu/graphite/Context.h +85 -32
  113. package/cpp/skia/include/gpu/graphite/ContextOptions.h +15 -11
  114. package/cpp/skia/include/gpu/graphite/GraphiteTypes.h +55 -5
  115. package/cpp/skia/include/gpu/graphite/ImageProvider.h +6 -4
  116. package/cpp/skia/include/gpu/graphite/Recorder.h +41 -11
  117. package/cpp/skia/include/gpu/graphite/Recording.h +50 -3
  118. package/cpp/skia/include/gpu/graphite/TextureInfo.h +47 -8
  119. package/cpp/skia/include/gpu/graphite/YUVABackendTextures.h +139 -0
  120. package/cpp/skia/include/gpu/graphite/dawn/DawnTypes.h +40 -0
  121. package/cpp/skia/include/gpu/graphite/dawn/DawnUtils.h +28 -0
  122. package/cpp/skia/include/gpu/graphite/mtl/MtlBackendContext.h +1 -1
  123. package/cpp/skia/include/gpu/graphite/mtl/{MtlTypes.h → MtlGraphiteTypes.h} +7 -6
  124. package/cpp/skia/include/gpu/graphite/mtl/MtlGraphiteUtils.h +27 -0
  125. package/cpp/skia/include/gpu/graphite/vk/VulkanGraphiteTypes.h +4 -9
  126. package/cpp/skia/include/gpu/graphite/vk/VulkanGraphiteUtils.h +28 -0
  127. package/cpp/skia/include/gpu/mock/GrMockTypes.h +17 -13
  128. package/cpp/skia/include/gpu/mtl/GrMtlTypes.h +2 -2
  129. package/cpp/skia/include/gpu/vk/GrVkBackendContext.h +1 -1
  130. package/cpp/skia/include/gpu/vk/GrVkTypes.h +3 -3
  131. package/cpp/skia/include/gpu/vk/VulkanExtensions.h +3 -3
  132. package/cpp/skia/include/gpu/vk/VulkanMemoryAllocator.h +5 -7
  133. package/cpp/skia/include/pathops/SkPathOps.h +3 -3
  134. package/cpp/skia/include/ports/SkFontMgr_data.h +22 -0
  135. package/cpp/skia/include/ports/SkFontMgr_indirect.h +14 -14
  136. package/cpp/skia/include/ports/SkRemotableFontMgr.h +2 -2
  137. package/cpp/skia/include/ports/SkTypeface_win.h +2 -1
  138. package/cpp/skia/include/private/SkChecksum.h +32 -7
  139. package/cpp/skia/include/private/SkColorData.h +1 -26
  140. package/cpp/skia/include/private/SkGainmapInfo.h +97 -0
  141. package/cpp/skia/include/private/SkGainmapShader.h +53 -0
  142. package/cpp/skia/include/private/SkIDChangeListener.h +4 -3
  143. package/cpp/skia/include/private/SkJpegGainmapEncoder.h +71 -0
  144. package/cpp/skia/include/private/SkJpegMetadataDecoder.h +61 -0
  145. package/cpp/skia/include/private/SkOpts_spi.h +3 -1
  146. package/cpp/skia/include/private/SkPathRef.h +64 -47
  147. package/cpp/skia/include/private/SkSLDefines.h +5 -5
  148. package/cpp/skia/include/private/SkSLSampleUsage.h +0 -4
  149. package/cpp/skia/include/private/SkSpinlock.h +1 -1
  150. package/cpp/skia/include/private/SkWeakRefCnt.h +3 -0
  151. package/cpp/skia/include/private/{SingleOwner.h → base/SingleOwner.h} +8 -5
  152. package/cpp/skia/include/private/base/SkAPI.h +52 -0
  153. package/cpp/skia/include/private/base/SkAlign.h +39 -0
  154. package/cpp/skia/include/private/base/SkAlignedStorage.h +32 -0
  155. package/cpp/skia/include/private/base/SkAssert.h +92 -0
  156. package/cpp/skia/include/private/base/SkAttributes.h +102 -0
  157. package/cpp/skia/include/private/base/SkCPUTypes.h +25 -0
  158. package/cpp/skia/include/private/base/SkContainers.h +46 -0
  159. package/cpp/skia/include/private/base/SkDebug.h +27 -0
  160. package/cpp/skia/include/private/{SkDeque.h → base/SkDeque.h} +3 -1
  161. package/cpp/skia/include/private/base/SkFeatures.h +151 -0
  162. package/cpp/skia/include/private/{SkFixed.h → base/SkFixed.h} +9 -7
  163. package/cpp/skia/include/private/{SkFloatBits.h → base/SkFloatBits.h} +2 -3
  164. package/cpp/skia/include/private/{SkFloatingPoint.h → base/SkFloatingPoint.h} +18 -9
  165. package/cpp/skia/include/private/base/SkLoadUserConfig.h +63 -0
  166. package/cpp/skia/include/private/{SkMacros.h → base/SkMacros.h} +17 -2
  167. package/cpp/skia/include/private/{SkMalloc.h → base/SkMalloc.h} +4 -7
  168. package/cpp/skia/include/{core → private/base}/SkMath.h +25 -2
  169. package/cpp/skia/include/private/{SkMutex.h → base/SkMutex.h} +5 -5
  170. package/cpp/skia/include/private/{SkNoncopyable.h → base/SkNoncopyable.h} +2 -2
  171. package/cpp/skia/include/private/{SkOnce.h → base/SkOnce.h} +3 -1
  172. package/cpp/skia/include/private/base/SkPathEnums.h +25 -0
  173. package/cpp/skia/include/private/{SkSafe32.h → base/SkSafe32.h} +16 -1
  174. package/cpp/skia/include/private/{SkSemaphore.h → base/SkSemaphore.h} +4 -3
  175. package/cpp/skia/include/private/base/SkSpan_impl.h +129 -0
  176. package/cpp/skia/include/private/base/SkTArray.h +694 -0
  177. package/cpp/skia/include/private/{SkTDArray.h → base/SkTDArray.h} +17 -54
  178. package/cpp/skia/include/private/{SkTFitsIn.h → base/SkTFitsIn.h} +14 -8
  179. package/cpp/skia/include/private/{SkTLogic.h → base/SkTLogic.h} +1 -1
  180. package/cpp/skia/include/private/{SkTemplates.h → base/SkTemplates.h} +63 -88
  181. package/cpp/skia/include/private/{SkThreadID.h → base/SkThreadID.h} +5 -2
  182. package/cpp/skia/include/private/{SkTo.h → base/SkTo.h} +13 -2
  183. package/cpp/skia/include/private/base/SkTypeTraits.h +33 -0
  184. package/cpp/skia/include/private/chromium/GrVkSecondaryCBDrawContext.h +130 -0
  185. package/cpp/skia/include/private/chromium/SkChromeRemoteGlyphCache.h +5 -9
  186. package/cpp/skia/include/private/chromium/SkDiscardableMemory.h +70 -0
  187. package/cpp/skia/include/private/chromium/Slug.h +0 -9
  188. package/cpp/skia/include/private/gpu/ganesh/GrContext_Base.h +2 -1
  189. package/cpp/skia/include/private/gpu/ganesh/GrD3DTypesMinimal.h +1 -1
  190. package/cpp/skia/include/private/gpu/ganesh/GrDawnTypesPriv.h +1 -1
  191. package/cpp/skia/include/private/gpu/ganesh/GrGLTypesPriv.h +1 -1
  192. package/cpp/skia/include/private/gpu/ganesh/GrImageContext.h +1 -1
  193. package/cpp/skia/include/private/gpu/ganesh/GrMockTypesPriv.h +3 -2
  194. package/cpp/skia/include/private/gpu/ganesh/GrMtlTypesPriv.h +1 -1
  195. package/cpp/skia/include/private/gpu/ganesh/GrTypesPriv.h +17 -23
  196. package/cpp/skia/include/private/gpu/ganesh/GrVkTypesPriv.h +2 -2
  197. package/cpp/skia/include/private/gpu/graphite/DawnTypesPriv.h +38 -0
  198. package/cpp/skia/include/private/gpu/graphite/{MtlTypesPriv.h → MtlGraphiteTypesPriv.h} +5 -5
  199. package/cpp/skia/include/private/gpu/graphite/VulkanGraphiteTypesPriv.h +1 -9
  200. package/cpp/skia/include/private/gpu/vk/SkiaVulkan.h +4 -0
  201. package/cpp/skia/include/utils/SkCamera.h +1 -1
  202. package/cpp/skia/include/utils/SkCustomTypeface.h +7 -1
  203. package/cpp/skia/include/utils/SkNWayCanvas.h +6 -6
  204. package/cpp/skia/include/utils/SkOrderedFontMgr.h +7 -6
  205. package/cpp/skia/include/utils/SkPaintFilterCanvas.h +2 -2
  206. package/cpp/skia/include/utils/SkParsePath.h +1 -1
  207. package/cpp/skia/modules/skcms/skcms.h +14 -0
  208. package/cpp/skia/modules/skcms/src/Transform_inl.h +19 -0
  209. package/cpp/skia/modules/skparagraph/include/FontCollection.h +2 -2
  210. package/cpp/skia/modules/skparagraph/include/Paragraph.h +72 -2
  211. package/cpp/skia/modules/skparagraph/include/ParagraphCache.h +1 -11
  212. package/cpp/skia/modules/skparagraph/include/ParagraphPainter.h +63 -0
  213. package/cpp/skia/modules/skparagraph/include/TextStyle.h +27 -4
  214. package/cpp/skia/modules/skparagraph/include/TypefaceFontProvider.h +13 -13
  215. package/cpp/skia/modules/skresources/include/SkResources.h +18 -4
  216. package/cpp/skia/modules/svg/include/SkSVGAttribute.h +1 -1
  217. package/cpp/skia/modules/svg/include/SkSVGAttributeParser.h +2 -2
  218. package/cpp/skia/modules/svg/include/SkSVGContainer.h +2 -2
  219. package/cpp/skia/modules/svg/include/SkSVGDOM.h +1 -1
  220. package/cpp/skia/modules/svg/include/SkSVGFilterContext.h +2 -2
  221. package/cpp/skia/modules/svg/include/SkSVGGradient.h +2 -2
  222. package/cpp/skia/modules/svg/include/SkSVGIDMapper.h +2 -2
  223. package/cpp/skia/modules/svg/include/SkSVGRenderContext.h +3 -3
  224. package/cpp/skia/modules/svg/include/SkSVGSVG.h +1 -1
  225. package/cpp/skia/modules/svg/include/SkSVGTypes.h +22 -21
  226. package/cpp/skia/modules/svg/include/SkSVGValue.h +1 -1
  227. package/cpp/skia/{include/private → src/core}/SkTHash.h +41 -37
  228. package/ios/RNSkia-iOS/ViewScreenshotService.mm +1 -1
  229. package/libs/android/arm64-v8a/libskia.a +0 -0
  230. package/libs/android/arm64-v8a/libskottie.a +0 -0
  231. package/libs/android/arm64-v8a/libsksg.a +0 -0
  232. package/libs/android/arm64-v8a/libskshaper.a +0 -0
  233. package/libs/android/arm64-v8a/libsvg.a +0 -0
  234. package/libs/android/armeabi-v7a/libskia.a +0 -0
  235. package/libs/android/armeabi-v7a/libskottie.a +0 -0
  236. package/libs/android/armeabi-v7a/libsksg.a +0 -0
  237. package/libs/android/armeabi-v7a/libskshaper.a +0 -0
  238. package/libs/android/armeabi-v7a/libsvg.a +0 -0
  239. package/libs/android/x86/libskia.a +0 -0
  240. package/libs/android/x86/libskottie.a +0 -0
  241. package/libs/android/x86/libsksg.a +0 -0
  242. package/libs/android/x86/libskshaper.a +0 -0
  243. package/libs/android/x86/libsvg.a +0 -0
  244. package/libs/android/x86_64/libskia.a +0 -0
  245. package/libs/android/x86_64/libskottie.a +0 -0
  246. package/libs/android/x86_64/libsksg.a +0 -0
  247. package/libs/android/x86_64/libskshaper.a +0 -0
  248. package/libs/android/x86_64/libsvg.a +0 -0
  249. package/libs/ios/libskia.xcframework/Info.plist +5 -5
  250. package/libs/ios/libskia.xcframework/ios-arm64_arm64e/libskia.a +0 -0
  251. package/libs/ios/libskia.xcframework/ios-arm64_arm64e_x86_64-simulator/libskia.a +0 -0
  252. package/libs/ios/libskottie.xcframework/ios-arm64_arm64e/libskottie.a +0 -0
  253. package/libs/ios/libskottie.xcframework/ios-arm64_arm64e_x86_64-simulator/libskottie.a +0 -0
  254. package/libs/ios/libsksg.xcframework/ios-arm64_arm64e/libsksg.a +0 -0
  255. package/libs/ios/libsksg.xcframework/ios-arm64_arm64e_x86_64-simulator/libsksg.a +0 -0
  256. package/libs/ios/libskshaper.xcframework/ios-arm64_arm64e/libskshaper.a +0 -0
  257. package/libs/ios/libskshaper.xcframework/ios-arm64_arm64e_x86_64-simulator/libskshaper.a +0 -0
  258. package/libs/ios/libsvg.xcframework/ios-arm64_arm64e/libsvg.a +0 -0
  259. package/libs/ios/libsvg.xcframework/ios-arm64_arm64e_x86_64-simulator/libsvg.a +0 -0
  260. package/package.json +1 -1
  261. package/react-native-skia.podspec +1 -1
  262. package/scripts/install-npm.js +11 -1
  263. package/cpp/skia/include/core/SkImageEncoder.h +0 -71
  264. package/cpp/skia/include/gpu/GrConfig.h +0 -53
  265. package/cpp/skia/include/gpu/graphite/CombinationBuilder.h +0 -195
  266. package/cpp/skia/include/private/SkHalf.h +0 -38
  267. package/cpp/skia/include/private/SkImageInfoPriv.h +0 -199
  268. package/cpp/skia/include/private/SkSLIRNode.h +0 -64
  269. package/cpp/skia/include/private/SkSLLayout.h +0 -144
  270. package/cpp/skia/include/private/SkSLModifiers.h +0 -178
  271. package/cpp/skia/include/private/SkSLProgramElement.h +0 -77
  272. package/cpp/skia/include/private/SkSLProgramKind.h +0 -35
  273. package/cpp/skia/include/private/SkSLStatement.h +0 -86
  274. package/cpp/skia/include/private/SkSLString.h +0 -41
  275. package/cpp/skia/include/private/SkSLSymbol.h +0 -94
  276. package/cpp/skia/include/private/SkSafe_math.h +0 -52
  277. package/cpp/skia/include/private/SkStringView.h +0 -51
  278. package/cpp/skia/include/private/SkTArray.h +0 -655
  279. package/cpp/skia/include/private/SkUniquePaintParamsID.h +0 -35
  280. package/cpp/skia/include/private/SkVx.h +0 -1026
  281. package/cpp/skia/include/sksl/DSL.h +0 -37
  282. package/cpp/skia/include/sksl/DSLBlock.h +0 -58
  283. package/cpp/skia/include/sksl/DSLCase.h +0 -62
  284. package/cpp/skia/include/sksl/DSLCore.h +0 -492
  285. package/cpp/skia/include/sksl/DSLExpression.h +0 -241
  286. package/cpp/skia/include/sksl/DSLFunction.h +0 -113
  287. package/cpp/skia/include/sksl/DSLLayout.h +0 -92
  288. package/cpp/skia/include/sksl/DSLModifiers.h +0 -69
  289. package/cpp/skia/include/sksl/DSLStatement.h +0 -82
  290. package/cpp/skia/include/sksl/DSLSymbols.h +0 -61
  291. package/cpp/skia/include/sksl/DSLType.h +0 -271
  292. package/cpp/skia/include/sksl/DSLVar.h +0 -231
  293. package/cpp/skia/include/sksl/SkSLErrorReporter.h +0 -65
  294. package/cpp/skia/include/sksl/SkSLOperator.h +0 -154
  295. package/cpp/skia/include/sksl/SkSLPosition.h +0 -104
  296. package/cpp/skia/include/utils/SkRandom.h +0 -169
  297. package/cpp/skia/src/core/SkLRUCache.h +0 -126
  298. package/cpp/skia/src/core/SkTInternalLList.h +0 -302
  299. /package/cpp/skia/include/{core → codec}/SkPngChunkReader.h +0 -0
  300. /package/cpp/skia/include/private/{SkTPin.h → base/SkTPin.h} +0 -0
  301. /package/cpp/skia/include/private/{SkThreadAnnotations.h → base/SkThreadAnnotations.h} +0 -0
@@ -3,7 +3,7 @@ cmake_minimum_required(VERSION 3.4.1)
3
3
 
4
4
  set (CMAKE_VERBOSE_MAKEFILE ON)
5
5
  set (CMAKE_CXX_STANDARD 17)
6
- set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DSK_GL -DSK_BUILD_FOR_ANDROID -DFOLLY_NO_CONFIG=1 -DFOLLY_HAVE_CLOCK_GETTIME=1 -DFOLLY_HAVE_MEMRCHR=1 -DFOLLY_USE_LIBCPP=1 -DFOLLY_MOBILE=1 -DON_ANDROID -DONANDROID")
6
+ set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DSK_GL -DSK_GANESH -DSK_BUILD_FOR_ANDROID -DFOLLY_NO_CONFIG=1 -DFOLLY_HAVE_CLOCK_GETTIME=1 -DFOLLY_HAVE_MEMRCHR=1 -DFOLLY_USE_LIBCPP=1 -DFOLLY_MOBILE=1 -DON_ANDROID -DONANDROID")
7
7
 
8
8
  set (PACKAGE_NAME "rnskia")
9
9
  set (SKIA_LIB "skia")
@@ -278,6 +278,7 @@ if (ENABLE_PREFAB) {
278
278
  into "${project.buildDir}/headers/rnskia/"
279
279
  includeEmptyDirs = false
280
280
  include "**/*.h"
281
+ duplicatesStrategy = 'include'
281
282
  eachFile {
282
283
  String path = it.path
283
284
 
@@ -101,7 +101,7 @@ sk_sp<SkImage> JniPlatformContext::takeScreenshotFromViewTag(size_t tag) {
101
101
  // Create pixmap from pixels and make a copy of it so that
102
102
  // the SkImage owns its own pixels
103
103
  SkPixmap pm(skInfo, pixels, bmi.stride);
104
- auto skImage = SkImage::MakeRasterCopy(pm);
104
+ auto skImage = SkImages::RasterFromPixmapCopy(pm);
105
105
 
106
106
  // Unlock pixels
107
107
  AndroidBitmap_unlockPixels(env, bitmap);
@@ -14,7 +14,9 @@
14
14
  #include "SkBase64.h"
15
15
  #include "SkImage.h"
16
16
  #include "SkStream.h"
17
- #include <include/codec/SkCodec.h>
17
+ #include "codec/SkEncodedImageFormat.h"
18
+ #include "include/encode/SkJpegEncoder.h"
19
+ #include "include/encode/SkPngEncoder.h"
18
20
 
19
21
  #pragma clang diagnostic pop
20
22
 
@@ -70,7 +72,15 @@ public:
70
72
  auto quality = count == 2 ? arguments[1].asNumber() : 100.0;
71
73
 
72
74
  // Get data
73
- auto data = getObject()->encodeToData(format, quality);
75
+ sk_sp<SkData> data;
76
+ if (format == SkEncodedImageFormat::kJPEG) {
77
+ SkJpegEncoder::Options options;
78
+ options.fQuality = quality;
79
+ data = SkJpegEncoder::Encode(nullptr, getObject().get(), options);
80
+ } else {
81
+ SkPngEncoder::Options options;
82
+ data = SkPngEncoder::Encode(nullptr, getObject().get(), options);
83
+ }
74
84
  auto arrayCtor =
75
85
  runtime.global().getPropertyAsFunction(runtime, "Uint8Array");
76
86
  size_t size = data->size();
@@ -95,8 +105,19 @@ public:
95
105
  : SkEncodedImageFormat::kPNG;
96
106
 
97
107
  auto quality = count == 2 ? arguments[1].asNumber() : 100.0;
98
-
99
- auto data = getObject()->encodeToData(format, quality);
108
+ auto image = getObject();
109
+ if (image->isTextureBacked()) {
110
+ image = image->makeNonTextureImage();
111
+ }
112
+ sk_sp<SkData> data;
113
+ if (format == SkEncodedImageFormat::kJPEG) {
114
+ SkJpegEncoder::Options options;
115
+ options.fQuality = quality;
116
+ data = SkJpegEncoder::Encode(nullptr, image.get(), options);
117
+ } else {
118
+ SkPngEncoder::Options options;
119
+ data = SkPngEncoder::Encode(nullptr, image.get(), options);
120
+ }
100
121
  auto len = SkBase64::Encode(data->bytes(), data->size(), nullptr);
101
122
  auto buffer = std::string(len, 0);
102
123
  SkBase64::Encode(data->bytes(), data->size(),
@@ -18,7 +18,7 @@ class JsiSkImageFactory : public JsiSkHostObject {
18
18
  public:
19
19
  JSI_HOST_FUNCTION(MakeImageFromEncoded) {
20
20
  auto data = JsiSkData::fromValue(runtime, arguments[0]);
21
- auto image = SkImage::MakeFromEncoded(data);
21
+ auto image = SkImages::DeferredFromEncodedData(data);
22
22
  if (image == nullptr) {
23
23
  return jsi::Value::null();
24
24
  }
@@ -30,7 +30,7 @@ public:
30
30
  auto imageInfo = JsiSkImageInfo::fromValue(runtime, arguments[0]);
31
31
  auto pixelData = JsiSkData::fromValue(runtime, arguments[1]);
32
32
  auto bytesPerRow = arguments[2].asNumber();
33
- auto image = SkImage::MakeRasterData(*imageInfo, pixelData, bytesPerRow);
33
+ auto image = SkImages::RasterFromData(*imageInfo, pixelData, bytesPerRow);
34
34
  if (image == nullptr) {
35
35
  return jsi::Value::null();
36
36
  }
@@ -7,6 +7,7 @@
7
7
  #include <jsi/jsi.h>
8
8
 
9
9
  #include "JsiSkHostObjects.h"
10
+ #include "JsiSkMatrix.h"
10
11
  #include "JsiSkPoint.h"
11
12
  #include "JsiSkRRect.h"
12
13
  #include "JsiSkRect.h"
@@ -20,13 +21,12 @@
20
21
  #include "SkPathEffect.h"
21
22
  #include "SkPathOps.h"
22
23
  #include "SkPathTypes.h"
24
+ #include "SkPathUtils.h"
23
25
  #include "SkString.h"
24
26
  #include "SkStrokeRec.h"
25
27
  #include "SkTextUtils.h"
26
28
  #include "SkTrimPathEffect.h"
27
29
 
28
- #include "JsiSkMatrix.h"
29
-
30
30
  #pragma clang diagnostic pop
31
31
 
32
32
  namespace RNSkia {
@@ -284,8 +284,11 @@ public:
284
284
 
285
285
  auto jsiPrecision = opts.getProperty(runtime, "precision");
286
286
  auto precision = jsiPrecision.isUndefined() ? 1 : jsiPrecision.asNumber();
287
- auto result = p.getFillPath(path, &path, nullptr, precision);
288
- getObject()->swap(path);
287
+ auto result =
288
+ skpathutils::FillPathWithPaint(path, p, &path, nullptr, precision);
289
+ if (result) {
290
+ getObject()->swap(path);
291
+ }
289
292
  return result ? thisValue.getObject(runtime) : jsi::Value::null();
290
293
  }
291
294
 
@@ -320,8 +323,7 @@ public:
320
323
 
321
324
  JSI_HOST_FUNCTION(toSVGString) {
322
325
  SkPath path = *getObject();
323
- SkString s;
324
- SkParsePath::ToSVGString(path, &s);
326
+ auto s = SkParsePath::ToSVGString(path);
325
327
  return jsi::String::createFromUtf8(runtime, s.c_str());
326
328
  }
327
329
 
@@ -24,17 +24,15 @@ public:
24
24
  void push(T el) { _elements.push(el); }
25
25
 
26
26
  // Clears and returns all elements
27
- std::vector<T> popAll() { return popMultiple(_elements.size()); }
28
-
29
- // Pops the number of items up to limit
30
- std::vector<T> popMultiple(size_t limit) {
31
- auto size = std::min(limit, _elements.size());
27
+ std::vector<T> popAll() {
28
+ auto size = _elements.size();
32
29
  std::vector<T> tmp;
33
30
  tmp.reserve(size);
34
31
  for (size_t i = 0; i < size; ++i) {
35
32
  tmp.push_back(_elements.top());
36
33
  _elements.pop();
37
34
  }
35
+ std::reverse(std::begin(tmp), std::end(tmp));
38
36
  return tmp;
39
37
  }
40
38
 
@@ -50,7 +48,7 @@ public:
50
48
  // Clears and returns through reducer function in reversed order
51
49
  T popAsOne(std::function<T(T inner, T outer)> composer) {
52
50
  auto tmp = popAll();
53
- // std::reverse(std::begin(tmp), std::end(tmp));
51
+ std::reverse(std::begin(tmp), std::end(tmp));
54
52
  return std::accumulate(std::begin(tmp), std::end(tmp),
55
53
  static_cast<T>(nullptr), [=](T inner, T outer) {
56
54
  if (inner == nullptr) {
@@ -63,7 +61,7 @@ public:
63
61
  // Returns the size of the elements
64
62
  size_t size() { return _elements.size(); }
65
63
 
66
- protected:
64
+ private:
67
65
  std::stack<T> _elements;
68
66
  };
69
67
 
@@ -10,6 +10,7 @@
10
10
  #pragma clang diagnostic push
11
11
  #pragma clang diagnostic ignored "-Wdocumentation"
12
12
 
13
+ #include "SkBlurTypes.h"
13
14
  #include "SkMaskFilter.h"
14
15
 
15
16
  #pragma clang diagnostic pop
@@ -108,8 +108,8 @@ protected:
108
108
  // _path is const so we can't mutate it directly, let's replace the
109
109
  // path like this:
110
110
  auto p = std::make_shared<SkPath>(*_path.get());
111
- if (!strokePaint.getFillPath(*_path.get(), p.get(), nullptr,
112
- precision)) {
111
+ if (!skpathutils::FillPathWithPaint(*_path.get(), strokePaint,
112
+ p.get(), nullptr, precision)) {
113
113
  _path = nullptr;
114
114
  } else {
115
115
  _path = std::const_pointer_cast<const SkPath>(p);
@@ -5,6 +5,8 @@
5
5
  #include <memory>
6
6
  #include <utility>
7
7
 
8
+ #include "SkBlurTypes.h"
9
+
8
10
  namespace RNSkia {
9
11
 
10
12
  class BoxShadowProps : public DerivedProp<SkPaint> {
@@ -27,7 +27,7 @@ class SkShader;
27
27
  class SkAndroidFrameworkUtils {
28
28
  public:
29
29
 
30
- #if SK_SUPPORT_GPU
30
+ #if defined(SK_GANESH)
31
31
  /**
32
32
  * clipWithStencil draws the current clip into a stencil buffer with reference value and mask
33
33
  * set to 0x1. This function works only on a GPU canvas.
@@ -37,7 +37,7 @@ public:
37
37
  * @return true on success or false if clip is empty or not a GPU canvas.
38
38
  */
39
39
  static bool clipWithStencil(SkCanvas* canvas);
40
- #endif //SK_SUPPORT_GPU
40
+ #endif //defined(SK_GANESH)
41
41
 
42
42
  static void SafetyNetLog(const char*);
43
43
 
@@ -58,12 +58,6 @@ public:
58
58
  */
59
59
  static SkCanvas* getBaseWrappedCanvas(SkCanvas* canvas);
60
60
 
61
- /**
62
- * Skia will change the order in which local matrices concatenate. In order to not break Android
63
- * apps targeting older API levels we offer this function to use the legacy concatenation order.
64
- */
65
- static void UseLegacyLocalMatrixConcatenation();
66
-
67
61
  /**
68
62
  * If the shader represents a linear gradient ShaderAsALinearGradient
69
63
  * returns true and if info is not null, ShaderAsALinearGradient populates
@@ -0,0 +1,101 @@
1
+ /*
2
+ * Copyright 2023 Google LLC
3
+ *
4
+ * Use of this source code is governed by a BSD-style license that can be
5
+ * found in the LICENSE file.
6
+ */
7
+
8
+ #ifndef SkImageAndroid_DEFINED
9
+ #define SkImageAndroid_DEFINED
10
+
11
+ #include "include/core/SkImage.h"
12
+ #include "include/core/SkRefCnt.h"
13
+ #include "include/gpu/GrTypes.h"
14
+
15
+ class SkColorSpace;
16
+ class GrDirectContext;
17
+ class SkPixmap;
18
+ struct AHardwareBuffer;
19
+
20
+ namespace SkImages {
21
+
22
+ /** (See Skia bug 7447)
23
+ Creates SkImage from Android hardware buffer.
24
+ Returned SkImage takes a reference on the buffer.
25
+ Only available on Android, when __ANDROID_API__ is defined to be 26 or greater.
26
+ @param hardwareBuffer AHardwareBuffer Android hardware buffer
27
+ @param colorSpace range of colors; may be nullptr
28
+ @return created SkImage, or nullptr
29
+ */
30
+ SK_API sk_sp<SkImage> DeferredFromAHardwareBuffer(AHardwareBuffer* hardwareBuffer,
31
+ SkAlphaType alphaType = kPremul_SkAlphaType);
32
+ SK_API sk_sp<SkImage> DeferredFromAHardwareBuffer(
33
+ AHardwareBuffer* hardwareBuffer,
34
+ SkAlphaType alphaType,
35
+ sk_sp<SkColorSpace> colorSpace,
36
+ GrSurfaceOrigin surfaceOrigin = kTopLeft_GrSurfaceOrigin);
37
+
38
+ /** Creates SkImage from Android hardware buffer and uploads the data from the SkPixmap to it.
39
+ Returned SkImage takes a reference on the buffer.
40
+ Only available on Android, when __ANDROID_API__ is defined to be 26 or greater.
41
+ @param context GPU context
42
+ @param pixmap SkPixmap that contains data to be uploaded to the AHardwareBuffer
43
+ @param hardwareBuffer AHardwareBuffer Android hardware buffer
44
+ @param surfaceOrigin surface origin for resulting image
45
+ @return created SkImage, or nullptr
46
+ */
47
+ SK_API sk_sp<SkImage> TextureFromAHardwareBufferWithData(
48
+ GrDirectContext* context,
49
+ const SkPixmap& pixmap,
50
+ AHardwareBuffer* hardwareBuffer,
51
+ GrSurfaceOrigin surfaceOrigin = kTopLeft_GrSurfaceOrigin);
52
+
53
+ /**
54
+ * Like SkImagePriv::SkMakeImageFromRasterBitmap, except this can be pinned using
55
+ * skgpu::ganesh::PinAsTexture and CopyPixelMode is never.
56
+ */
57
+ SK_API sk_sp<SkImage> PinnableRasterFromBitmap(const SkBitmap&);
58
+
59
+ } // namespace SkImages
60
+
61
+ // TODO(kjlubick) remove this after Android has been ported.
62
+ namespace sk_image_factory {
63
+ inline sk_sp<SkImage> MakePinnableFromRasterBitmap(const SkBitmap& b) {
64
+ return SkImages::PinnableRasterFromBitmap(b);
65
+ }
66
+ } // namespace sk_image_factory
67
+
68
+ namespace skgpu::ganesh {
69
+ /**
70
+ * Will attempt to upload and lock the contents of the image as a texture, so that subsequent
71
+ * draws to a gpu-target will come from that texture (and not by looking at the original image
72
+ * src). In particular this is intended to use the texture even if the image's original content
73
+ * changes subsequent to this call (i.e. the src is mutable!).
74
+ *
75
+ * Only compatible with SkImages created from SkImages::PinnableRasterFromBitmap.
76
+ *
77
+ * All successful calls must be balanced by an equal number of calls to UnpinTexture().
78
+ *
79
+ * Once in this "pinned" state, the image has all of the same thread restrictions that exist
80
+ * for a natively created gpu image (e.g. SkImage::MakeFromTexture)
81
+ * - all drawing, pinning, unpinning must happen in the same thread as the GrContext.
82
+ *
83
+ * @return true if the image was successfully uploaded and locked into a texture
84
+ */
85
+ bool PinAsTexture(GrRecordingContext*, SkImage*);
86
+
87
+ /**
88
+ * The balancing call to a successful invocation of PinAsTexture. When a balanced
89
+ * number of calls have been made, then the "pinned" texture is free to be purged, etc. This
90
+ * also means that a subsequent "pin" call will look at the original content again, and if
91
+ * its uniqueID/generationID has changed, then a newer texture will be uploaded/pinned.
92
+ *
93
+ * Only compatible with SkImages created from SkImages::PinnableRasterFromBitmap.
94
+ *
95
+ * The context passed to unpin must match the one passed to pin.
96
+ */
97
+ void UnpinTexture(GrRecordingContext*, SkImage*);
98
+
99
+ } // namespace skgpu::ganesh
100
+
101
+ #endif
@@ -9,24 +9,27 @@
9
9
  #define SkAndroidCodec_DEFINED
10
10
 
11
11
  #include "include/codec/SkCodec.h"
12
- #include "include/core/SkAlphaType.h"
13
12
  #include "include/core/SkColorSpace.h"
14
- #include "include/core/SkColorType.h"
15
- #include "include/core/SkEncodedImageFormat.h"
16
13
  #include "include/core/SkImageInfo.h"
17
14
  #include "include/core/SkRefCnt.h"
18
15
  #include "include/core/SkSize.h"
19
16
  #include "include/core/SkTypes.h"
20
17
  #include "include/private/SkEncodedInfo.h"
21
- #include "include/private/SkNoncopyable.h"
18
+ #include "include/private/base/SkNoncopyable.h"
22
19
  #include "modules/skcms/skcms.h"
23
20
 
21
+ // TODO(kjlubick, bungeman) Replace these includes with forward declares
22
+ #include "include/codec/SkEncodedImageFormat.h" // IWYU pragma: keep
23
+ #include "include/core/SkAlphaType.h" // IWYU pragma: keep
24
+ #include "include/core/SkColorType.h" // IWYU pragma: keep
25
+
24
26
  #include <cstddef>
25
27
  #include <memory>
26
28
 
27
29
  class SkData;
28
30
  class SkPngChunkReader;
29
31
  class SkStream;
32
+ struct SkGainmapInfo;
30
33
  struct SkIRect;
31
34
 
32
35
  /**
@@ -118,10 +121,8 @@ public:
118
121
  /**
119
122
  * @param outputColorType Color type that the client will decode to.
120
123
  * @param prefColorSpace Preferred color space to decode to.
121
- * This may not return |prefColorSpace| for a couple reasons.
122
- * (1) Android Principles: 565 must be sRGB, F16 must be
123
- * linear sRGB, transfer function must be parametric.
124
- * (2) Codec Limitations: F16 requires a linear color space.
124
+ * This may not return |prefColorSpace| for
125
+ * specific color types.
125
126
  *
126
127
  * Returns the appropriate color space to decode to.
127
128
  */
@@ -262,6 +263,23 @@ public:
262
263
 
263
264
  SkCodec* codec() const { return fCodec.get(); }
264
265
 
266
+ /**
267
+ * Retrieve the gainmap for an image.
268
+ *
269
+ * @param outInfo On success, this is populated with the parameters for
270
+ * rendering this gainmap. This parameter must be non-nullptr.
271
+ *
272
+ * @param outGainmapImageStream On success, this is populated with a stream from which the
273
+ * gainmap image may be decoded. This parameter is optional, and
274
+ * may be set to nullptr.
275
+ *
276
+ * @return If this has a gainmap image and that gainmap image was
277
+ * successfully extracted then return true. Otherwise return
278
+ * false.
279
+ */
280
+ bool getAndroidGainmap(SkGainmapInfo* outInfo,
281
+ std::unique_ptr<SkStream>* outGainmapImageStream);
282
+
265
283
  protected:
266
284
  SkAndroidCodec(SkCodec*);
267
285
 
@@ -8,10 +8,7 @@
8
8
  #ifndef SkCodec_DEFINED
9
9
  #define SkCodec_DEFINED
10
10
 
11
- #include "include/codec/SkCodecAnimation.h"
12
11
  #include "include/codec/SkEncodedOrigin.h"
13
- #include "include/core/SkAlphaType.h"
14
- #include "include/core/SkEncodedImageFormat.h"
15
12
  #include "include/core/SkImageInfo.h"
16
13
  #include "include/core/SkPixmap.h"
17
14
  #include "include/core/SkRect.h"
@@ -20,21 +17,30 @@
20
17
  #include "include/core/SkTypes.h"
21
18
  #include "include/core/SkYUVAPixmaps.h"
22
19
  #include "include/private/SkEncodedInfo.h"
23
- #include "include/private/SkNoncopyable.h"
20
+ #include "include/private/base/SkNoncopyable.h"
24
21
  #include "modules/skcms/skcms.h"
25
22
 
26
23
  #include <cstddef>
24
+ #include <functional>
27
25
  #include <memory>
28
26
  #include <tuple>
29
27
  #include <vector>
30
28
 
31
- class SkAndroidCodec;
32
29
  class SkData;
33
30
  class SkFrameHolder;
34
31
  class SkImage;
35
32
  class SkPngChunkReader;
36
33
  class SkSampler;
37
34
  class SkStream;
35
+ struct SkGainmapInfo;
36
+ enum SkAlphaType : int;
37
+ enum class SkEncodedImageFormat;
38
+
39
+ namespace SkCodecAnimation {
40
+ enum class Blend;
41
+ enum class DisposalMethod;
42
+ }
43
+
38
44
 
39
45
  namespace DM {
40
46
  class CodecSrc;
@@ -767,6 +773,8 @@ protected:
767
773
  return fSrcXformFormat;
768
774
  }
769
775
 
776
+ virtual bool onGetGainmapInfo(SkGainmapInfo*, std::unique_ptr<SkStream>*) { return false; }
777
+
770
778
  virtual SkISize onGetScaledDimensions(float /*desiredScale*/) const {
771
779
  // By default, scaling is not supported.
772
780
  return this->dimensions();
@@ -887,8 +895,8 @@ private:
887
895
  const SkEncodedInfo fEncodedInfo;
888
896
  XformFormat fSrcXformFormat;
889
897
  std::unique_ptr<SkStream> fStream;
890
- bool fNeedsRewind;
891
- const SkEncodedOrigin fOrigin;
898
+ bool fNeedsRewind = false;
899
+ const SkEncodedOrigin fOrigin;
892
900
 
893
901
  SkImageInfo fDstInfo;
894
902
  Options fOptions;
@@ -904,13 +912,13 @@ private:
904
912
  skcms_AlphaFormat fDstXformAlphaFormat;
905
913
 
906
914
  // Only meaningful during scanline decodes.
907
- int fCurrScanline;
915
+ int fCurrScanline = -1;
908
916
 
909
- bool fStartedIncrementalDecode;
917
+ bool fStartedIncrementalDecode = false;
910
918
 
911
919
  // Allows SkAndroidCodec to call handleFrameIndex (potentially decoding a prior frame and
912
- // clearing to transparent) without SkCodec calling it, too.
913
- bool fAndroidCodecHandlesFrameIndex;
920
+ // clearing to transparent) without SkCodec itself calling it, too.
921
+ bool fUsingCallbackForHandleFrameIndex = false;
914
922
 
915
923
  bool initializeColorXform(const SkImageInfo& dstInfo, SkEncodedInfo::Alpha, bool srcIsOpaque);
916
924
 
@@ -934,17 +942,23 @@ private:
934
942
  return nullptr;
935
943
  }
936
944
 
945
+ // Callback for decoding a prior frame. The `Options::fFrameIndex` is ignored,
946
+ // being replaced by frameIndex. This allows opts to actually be a subclass of
947
+ // SkCodec::Options which SkCodec itself does not know how to copy or modify,
948
+ // but just passes through to the caller (where it can be reinterpret_cast'd).
949
+ using GetPixelsCallback = std::function<Result(const SkImageInfo&, void* pixels,
950
+ size_t rowBytes, const Options& opts,
951
+ int frameIndex)>;
952
+
937
953
  /**
938
954
  * Check for a valid Options.fFrameIndex, and decode prior frames if necessary.
939
955
  *
940
- * If androidCodec is not null, that means this SkCodec is owned by an SkAndroidCodec. In that
941
- * case, the Options will be treated as an AndroidOptions, and SkAndroidCodec will be used to
942
- * decode a prior frame, if a prior frame is needed. When such an owned SkCodec calls
943
- * handleFrameIndex, it will immediately return kSuccess, since SkAndroidCodec already handled
944
- * it.
956
+ * If GetPixelsCallback is not null, it will be used to decode a prior frame instead
957
+ * of using this SkCodec directly. It may also be used recursively, if that in turn
958
+ * depends on a prior frame. This is used by SkAndroidCodec.
945
959
  */
946
960
  Result handleFrameIndex(const SkImageInfo&, void* pixels, size_t rowBytes, const Options&,
947
- SkAndroidCodec* androidCodec = nullptr);
961
+ GetPixelsCallback = nullptr);
948
962
 
949
963
  // Methods for scanline decoding.
950
964
  virtual Result onStartScanlineDecode(const SkImageInfo& /*dstInfo*/,
@@ -0,0 +1,36 @@
1
+ /*
2
+ * Copyright 2015 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 SkEncodedImageFormat_DEFINED
9
+ #define SkEncodedImageFormat_DEFINED
10
+
11
+ #include <stdint.h>
12
+
13
+ /**
14
+ * Enum describing format of encoded data.
15
+ */
16
+ enum class SkEncodedImageFormat {
17
+ #ifdef SK_BUILD_FOR_GOOGLE3
18
+ kUnknown,
19
+ #endif
20
+ kBMP,
21
+ kGIF,
22
+ kICO,
23
+ kJPEG,
24
+ kPNG,
25
+ kWBMP,
26
+ kWEBP,
27
+ kPKM,
28
+ kKTX,
29
+ kASTC,
30
+ kDNG,
31
+ kHEIF,
32
+ kAVIF,
33
+ kJPEGXL,
34
+ };
35
+
36
+ #endif // SkEncodedImageFormat_DEFINED
@@ -0,0 +1,31 @@
1
+ /*
2
+ * Copyright 2023 Google LLC
3
+ *
4
+ * Use of this source code is governed by a BSD-style license that can be
5
+ * found in the LICENSE file.
6
+ */
7
+
8
+ #ifndef SkPixmapUtils_DEFINED
9
+ #define SkPixmapUtils_DEFINED
10
+
11
+ #include "include/codec/SkEncodedOrigin.h"
12
+ #include "include/core/SkImageInfo.h"
13
+ #include "include/private/base/SkAPI.h"
14
+
15
+ class SkPixmap;
16
+
17
+ namespace SkPixmapUtils {
18
+ /**
19
+ * Copy the pixels in src into dst, applying the orientation transformations specified
20
+ * by origin. If the inputs are invalid, this returns false and no copy is made.
21
+ */
22
+ SK_API bool Orient(const SkPixmap& dst, const SkPixmap& src, SkEncodedOrigin origin);
23
+
24
+ /**
25
+ * Return a copy of the provided ImageInfo with the width and height swapped.
26
+ */
27
+ SK_API SkImageInfo SwapWidthHeight(const SkImageInfo& info);
28
+
29
+ } // namespace SkPixmapUtils
30
+
31
+ #endif // SkPixmapUtils_DEFINED