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.
- package/README.md +51 -26
- package/android/CMakeLists.txt +45 -2
- package/android/build.gradle +1 -3
- package/android/kls_database.db +0 -0
- package/android/src/main/cpp/game-view.cpp +29 -0
- package/android/src/main/java/com/margelo/nitro/rngine/GameEngine.kt +1 -28
- package/android/src/main/java/com/margelo/nitro/rngine/GameView.kt +22 -166
- package/android/src/main/java/com/margelo/nitro/rngine/SvgLoaderHelper.kt +24 -0
- package/lib/module/GameMethods.js +46 -2
- package/lib/module/GameMethods.js.map +1 -1
- package/lib/module/GameMethods.nitro.js.map +1 -1
- package/lib/module/index.js +0 -1
- package/lib/module/index.js.map +1 -1
- package/lib/typescript/src/GameMethods.d.ts +2 -1
- package/lib/typescript/src/GameMethods.d.ts.map +1 -1
- package/lib/typescript/src/GameMethods.nitro.d.ts +5 -2
- package/lib/typescript/src/GameMethods.nitro.d.ts.map +1 -1
- package/lib/typescript/src/index.d.ts +1 -2
- package/lib/typescript/src/index.d.ts.map +1 -1
- package/lib/typescript/src/nativeTypes.d.ts +12 -0
- package/lib/typescript/src/nativeTypes.d.ts.map +1 -1
- package/lib/typescript/src/types.d.ts +7 -10
- package/lib/typescript/src/types.d.ts.map +1 -1
- package/nitro.json +0 -10
- package/nitrogen/generated/android/rngine+autolinking.cmake +0 -2
- package/nitrogen/generated/android/rngineOnLoad.cpp +0 -16
- package/nitrogen/generated/ios/Rngine-Swift-Cxx-Bridge.cpp +0 -33
- package/nitrogen/generated/ios/Rngine-Swift-Cxx-Bridge.hpp +0 -96
- package/nitrogen/generated/ios/Rngine-Swift-Cxx-Umbrella.hpp +0 -9
- package/nitrogen/generated/ios/RngineAutolinking.mm +0 -8
- package/nitrogen/generated/ios/RngineAutolinking.swift +0 -12
- package/nitrogen/generated/shared/c++/Entity.hpp +10 -2
- package/nitrogen/generated/shared/c++/EntityUpdate.hpp +10 -2
- package/nitrogen/generated/shared/c++/HybridGameMethodsSpec.cpp +4 -1
- package/nitrogen/generated/shared/c++/HybridGameMethodsSpec.hpp +8 -1
- package/nitrogen/generated/shared/c++/World.hpp +91 -0
- package/package.json +4 -1
- package/shared/CollisionUtils.hpp +1 -6
- package/{android/src/main/cpp/ColorUtils.hpp → shared/ColorUtils.cpp} +8 -12
- package/shared/ColorUtils.hpp +7 -0
- package/shared/GameLoop.cpp +142 -51
- package/shared/GameLoop.hpp +10 -14
- package/shared/GameMethods.cpp +101 -10
- package/shared/GameMethods.hpp +19 -1
- package/shared/GameRenderer.cpp +420 -0
- package/shared/GameRenderer.hpp +65 -0
- package/shared/GameStats.hpp +3 -3
- package/shared/Overlap.hpp +9 -0
- package/shared/skia/include/android/AHardwareBufferUtils.h +26 -0
- package/shared/skia/include/android/GrAHardwareBufferUtils.h +97 -0
- package/shared/skia/include/android/SkAndroidFrameworkUtils.h +83 -0
- package/shared/skia/include/android/SkAnimatedImage.h +193 -0
- package/shared/skia/include/android/SkCanvasAndroid.h +20 -0
- package/shared/skia/include/android/SkImageAndroid.h +100 -0
- package/shared/skia/include/android/SkSurfaceAndroid.h +50 -0
- package/shared/skia/include/android/graphite/SurfaceAndroid.h +59 -0
- package/shared/skia/include/android/vk/AndroidVulkanMemoryAllocator.h +31 -0
- package/shared/skia/include/codec/SkAndroidCodec.h +302 -0
- package/shared/skia/include/codec/SkAvifDecoder.h +80 -0
- package/shared/skia/include/codec/SkBmpDecoder.h +44 -0
- package/shared/skia/include/codec/SkBmpRustDecoder.h +42 -0
- package/shared/skia/include/codec/SkCodec.h +1178 -0
- package/shared/skia/include/codec/SkCodecAnimation.h +61 -0
- package/shared/skia/include/codec/SkEncodedImageFormat.h +33 -0
- package/shared/skia/include/codec/SkEncodedOrigin.h +71 -0
- package/shared/skia/include/codec/SkGifDecoder.h +44 -0
- package/shared/skia/include/codec/SkIcoDecoder.h +44 -0
- package/shared/skia/include/codec/SkJpegDecoder.h +51 -0
- package/shared/skia/include/codec/SkJpegxlDecoder.h +44 -0
- package/shared/skia/include/codec/SkPixmapUtils.h +31 -0
- package/shared/skia/include/codec/SkPngChunkReader.h +45 -0
- package/shared/skia/include/codec/SkPngDecoder.h +51 -0
- package/shared/skia/include/codec/SkPngRustDecoder.h +30 -0
- package/shared/skia/include/codec/SkRawDecoder.h +50 -0
- package/shared/skia/include/codec/SkWbmpDecoder.h +44 -0
- package/shared/skia/include/codec/SkWebpDecoder.h +51 -0
- package/shared/skia/include/config/SkUserConfig.h +141 -0
- package/shared/skia/include/core/SkAlphaType.h +45 -0
- package/shared/skia/include/core/SkAnnotation.h +52 -0
- package/shared/skia/include/core/SkArc.h +69 -0
- package/shared/skia/include/core/SkBBHFactory.h +67 -0
- package/shared/skia/include/core/SkBitmap.h +1264 -0
- package/shared/skia/include/core/SkBlendMode.h +112 -0
- package/shared/skia/include/core/SkBlender.h +30 -0
- package/shared/skia/include/core/SkBlurTypes.h +20 -0
- package/shared/skia/include/core/SkCPUContext.h +31 -0
- package/shared/skia/include/core/SkCPURecorder.h +76 -0
- package/shared/skia/include/core/SkCanvas.h +2770 -0
- package/shared/skia/include/core/SkCanvasVirtualEnforcer.h +61 -0
- package/shared/skia/include/core/SkCapabilities.h +35 -0
- package/shared/skia/include/core/SkClipOp.h +19 -0
- package/shared/skia/include/core/SkColor.h +469 -0
- package/shared/skia/include/core/SkColorFilter.h +150 -0
- package/shared/skia/include/core/SkColorSpace.h +432 -0
- package/shared/skia/include/core/SkColorTable.h +62 -0
- package/shared/skia/include/core/SkColorType.h +159 -0
- package/shared/skia/include/core/SkContourMeasure.h +215 -0
- package/shared/skia/include/core/SkCoverageMode.h +28 -0
- package/shared/skia/include/core/SkCubicMap.h +47 -0
- package/shared/skia/include/core/SkData.h +225 -0
- package/shared/skia/include/core/SkDataTable.h +122 -0
- package/shared/skia/include/core/SkDocument.h +93 -0
- package/shared/skia/include/core/SkDrawable.h +178 -0
- package/shared/skia/include/core/SkExecutor.h +59 -0
- package/shared/skia/include/core/SkFlattenable.h +115 -0
- package/shared/skia/include/core/SkFont.h +536 -0
- package/shared/skia/include/core/SkFontArguments.h +116 -0
- package/shared/skia/include/core/SkFontMetrics.h +139 -0
- package/shared/skia/include/core/SkFontMgr.h +178 -0
- package/shared/skia/include/core/SkFontParameters.h +43 -0
- package/shared/skia/include/core/SkFontScanner.h +45 -0
- package/shared/skia/include/core/SkFontStyle.h +84 -0
- package/shared/skia/include/core/SkFontTypes.h +25 -0
- package/shared/skia/include/core/SkFourByteTag.h +19 -0
- package/shared/skia/include/core/SkGraphics.h +169 -0
- package/shared/skia/include/core/SkImage.h +918 -0
- package/shared/skia/include/core/SkImageFilter.h +119 -0
- package/shared/skia/include/core/SkImageGenerator.h +140 -0
- package/shared/skia/include/core/SkImageInfo.h +634 -0
- package/shared/skia/include/core/SkM44.h +442 -0
- package/shared/skia/include/core/SkMallocPixelRef.h +45 -0
- package/shared/skia/include/core/SkMaskFilter.h +45 -0
- package/shared/skia/include/core/SkMatrix.h +1887 -0
- package/shared/skia/include/core/SkMesh.h +429 -0
- package/shared/skia/include/core/SkMilestone.h +9 -0
- package/shared/skia/include/core/SkOpenTypeSVGDecoder.h +30 -0
- package/shared/skia/include/core/SkOverdrawCanvas.h +94 -0
- package/shared/skia/include/core/SkPaint.h +698 -0
- package/shared/skia/include/core/SkPath.h +1145 -0
- package/shared/skia/include/core/SkPathBuilder.h +1052 -0
- package/shared/skia/include/core/SkPathEffect.h +88 -0
- package/shared/skia/include/core/SkPathIter.h +90 -0
- package/shared/skia/include/core/SkPathMeasure.h +96 -0
- package/shared/skia/include/core/SkPathTypes.h +71 -0
- package/shared/skia/include/core/SkPathUtils.h +39 -0
- package/shared/skia/include/core/SkPicture.h +291 -0
- package/shared/skia/include/core/SkPictureRecorder.h +115 -0
- package/shared/skia/include/core/SkPixelRef.h +120 -0
- package/shared/skia/include/core/SkPixmap.h +736 -0
- package/shared/skia/include/core/SkPoint.h +560 -0
- package/shared/skia/include/core/SkPoint3.h +149 -0
- package/shared/skia/include/core/SkRRect.h +548 -0
- package/shared/skia/include/core/SkRSXform.h +71 -0
- package/shared/skia/include/core/SkRasterHandleAllocator.h +94 -0
- package/shared/skia/include/core/SkRecorder.h +49 -0
- package/shared/skia/include/core/SkRect.h +1419 -0
- package/shared/skia/include/core/SkRefCnt.h +391 -0
- package/shared/skia/include/core/SkRegion.h +701 -0
- package/shared/skia/include/core/SkSamplingOptions.h +107 -0
- package/shared/skia/include/core/SkScalar.h +148 -0
- package/shared/skia/include/core/SkSerialProcs.h +127 -0
- package/shared/skia/include/core/SkShader.h +123 -0
- package/shared/skia/include/core/SkSize.h +93 -0
- package/shared/skia/include/core/SkSpan.h +174 -0
- package/shared/skia/include/core/SkStream.h +524 -0
- package/shared/skia/include/core/SkStrikeRef.h +96 -0
- package/shared/skia/include/core/SkString.h +297 -0
- package/shared/skia/include/core/SkStrokeRec.h +160 -0
- package/shared/skia/include/core/SkSurface.h +689 -0
- package/shared/skia/include/core/SkSurfaceProps.h +122 -0
- package/shared/skia/include/core/SkSwizzle.h +21 -0
- package/shared/skia/include/core/SkTextBlob.h +541 -0
- package/shared/skia/include/core/SkTextureCompressionType.h +30 -0
- package/shared/skia/include/core/SkTileMode.h +41 -0
- package/shared/skia/include/core/SkTiledImageUtils.h +125 -0
- package/shared/skia/include/core/SkTraceMemoryDump.h +121 -0
- package/shared/skia/include/core/SkTypeface.h +468 -0
- package/shared/skia/include/core/SkTypes.h +193 -0
- package/shared/skia/include/core/SkUnPreMultiply.h +55 -0
- package/shared/skia/include/core/SkVertices.h +136 -0
- package/shared/skia/include/core/SkYUVAInfo.h +311 -0
- package/shared/skia/include/core/SkYUVAPixmaps.h +335 -0
- package/shared/skia/include/docs/SkMultiPictureDocument.h +53 -0
- package/shared/skia/include/docs/SkPDFDocument.h +277 -0
- package/shared/skia/include/docs/SkPDFJpegHelpers.h +41 -0
- package/shared/skia/include/docs/SkXPSDocument.h +43 -0
- package/shared/skia/include/effects/Sk1DPathEffect.h +40 -0
- package/shared/skia/include/effects/Sk2DPathEffect.h +33 -0
- package/shared/skia/include/effects/SkBlenders.h +27 -0
- package/shared/skia/include/effects/SkBlurMaskFilter.h +35 -0
- package/shared/skia/include/effects/SkColorMatrix.h +57 -0
- package/shared/skia/include/effects/SkColorMatrixFilter.h +22 -0
- package/shared/skia/include/effects/SkCornerPathEffect.h +32 -0
- package/shared/skia/include/effects/SkDashPathEffect.h +43 -0
- package/shared/skia/include/effects/SkDiscretePathEffect.h +37 -0
- package/shared/skia/include/effects/SkGradient.h +206 -0
- package/shared/skia/include/effects/SkHighContrastFilter.h +84 -0
- package/shared/skia/include/effects/SkImageFilters.h +641 -0
- package/shared/skia/include/effects/SkLumaColorFilter.h +37 -0
- package/shared/skia/include/effects/SkOverdrawColorFilter.h +33 -0
- package/shared/skia/include/effects/SkPerlinNoiseShader.h +53 -0
- package/shared/skia/include/effects/SkRuntimeEffect.h +503 -0
- package/shared/skia/include/effects/SkShaderMaskFilter.h +28 -0
- package/shared/skia/include/effects/SkTableMaskFilter.h +47 -0
- package/shared/skia/include/effects/SkTrimPathEffect.h +45 -0
- package/shared/skia/include/encode/SkEncoder.h +63 -0
- package/shared/skia/include/encode/SkICC.h +36 -0
- package/shared/skia/include/encode/SkJpegEncoder.h +127 -0
- package/shared/skia/include/encode/SkPngEncoder.h +132 -0
- package/shared/skia/include/encode/SkPngRustEncoder.h +121 -0
- package/shared/skia/include/encode/SkWebpEncoder.h +87 -0
- package/shared/skia/include/gpu/GpuTypes.h +98 -0
- package/shared/skia/include/gpu/MutableTextureState.h +68 -0
- package/shared/skia/include/gpu/ShaderErrorHandler.h +46 -0
- package/shared/skia/include/gpu/ganesh/GrBackendSemaphore.h +50 -0
- package/shared/skia/include/gpu/ganesh/GrBackendSurface.h +257 -0
- package/shared/skia/include/gpu/ganesh/GrContextOptions.h +384 -0
- package/shared/skia/include/gpu/ganesh/GrContextThreadSafeProxy.h +175 -0
- package/shared/skia/include/gpu/ganesh/GrDirectContext.h +1027 -0
- package/shared/skia/include/gpu/ganesh/GrDriverBugWorkarounds.h +53 -0
- package/shared/skia/include/gpu/ganesh/GrDriverBugWorkaroundsAutogen.h +49 -0
- package/shared/skia/include/gpu/ganesh/GrExternalTextureGenerator.h +54 -0
- package/shared/skia/include/gpu/ganesh/GrRecordingContext.h +300 -0
- package/shared/skia/include/gpu/ganesh/GrTypes.h +193 -0
- package/shared/skia/include/gpu/ganesh/GrYUVABackendTextures.h +130 -0
- package/shared/skia/include/gpu/ganesh/SkImageGanesh.h +361 -0
- package/shared/skia/include/gpu/ganesh/SkMeshGanesh.h +57 -0
- package/shared/skia/include/gpu/ganesh/SkSurfaceGanesh.h +218 -0
- package/shared/skia/include/gpu/ganesh/d3d/GrD3DBackendContext.h +35 -0
- package/shared/skia/include/gpu/ganesh/d3d/GrD3DBackendSemaphore.h +20 -0
- package/shared/skia/include/gpu/ganesh/d3d/GrD3DBackendSurface.h +59 -0
- package/shared/skia/include/gpu/ganesh/d3d/GrD3DDirectContext.h +28 -0
- package/shared/skia/include/gpu/ganesh/d3d/GrD3DTypes.h +248 -0
- package/shared/skia/include/gpu/ganesh/gl/GrGLAssembleHelpers.h +17 -0
- package/shared/skia/include/gpu/ganesh/gl/GrGLAssembleInterface.h +45 -0
- package/shared/skia/include/gpu/ganesh/gl/GrGLBackendSurface.h +64 -0
- package/shared/skia/include/gpu/ganesh/gl/GrGLConfig.h +69 -0
- package/shared/skia/include/gpu/ganesh/gl/GrGLDirectContext.h +30 -0
- package/shared/skia/include/gpu/ganesh/gl/GrGLExtensions.h +79 -0
- package/shared/skia/include/gpu/ganesh/gl/GrGLFunctions.h +313 -0
- package/shared/skia/include/gpu/ganesh/gl/GrGLInterface.h +337 -0
- package/shared/skia/include/gpu/ganesh/gl/GrGLMakeWebGLInterface.h +19 -0
- package/shared/skia/include/gpu/ganesh/gl/GrGLTypes.h +219 -0
- package/shared/skia/include/gpu/ganesh/gl/egl/GrGLMakeEGLInterface.h +23 -0
- package/shared/skia/include/gpu/ganesh/gl/epoxy/GrGLMakeEpoxyEGLInterface.h +20 -0
- package/shared/skia/include/gpu/ganesh/gl/glx/GrGLMakeGLXInterface.h +23 -0
- package/shared/skia/include/gpu/ganesh/gl/ios/GrGLMakeIOSInterface.h +20 -0
- package/shared/skia/include/gpu/ganesh/gl/mac/GrGLMakeMacInterface.h +20 -0
- package/shared/skia/include/gpu/ganesh/gl/win/GrGLMakeWinInterface.h +20 -0
- package/shared/skia/include/gpu/ganesh/mock/GrMockBackendSurface.h +59 -0
- package/shared/skia/include/gpu/ganesh/mock/GrMockTypes.h +166 -0
- package/shared/skia/include/gpu/ganesh/mtl/GrMtlBackendContext.h +21 -0
- package/shared/skia/include/gpu/ganesh/mtl/GrMtlBackendSemaphore.h +23 -0
- package/shared/skia/include/gpu/ganesh/mtl/GrMtlBackendSurface.h +44 -0
- package/shared/skia/include/gpu/ganesh/mtl/GrMtlDirectContext.h +30 -0
- package/shared/skia/include/gpu/ganesh/mtl/GrMtlTypes.h +61 -0
- package/shared/skia/include/gpu/ganesh/mtl/SkSurfaceMetal.h +73 -0
- package/shared/skia/include/gpu/ganesh/vk/GrBackendDrawableInfo.h +44 -0
- package/shared/skia/include/gpu/ganesh/vk/GrVkBackendSemaphore.h +20 -0
- package/shared/skia/include/gpu/ganesh/vk/GrVkBackendSurface.h +71 -0
- package/shared/skia/include/gpu/ganesh/vk/GrVkDirectContext.h +33 -0
- package/shared/skia/include/gpu/ganesh/vk/GrVkTypes.h +101 -0
- package/shared/skia/include/gpu/graphite/BackendSemaphore.h +60 -0
- package/shared/skia/include/gpu/graphite/BackendTexture.h +65 -0
- package/shared/skia/include/gpu/graphite/Context.h +440 -0
- package/shared/skia/include/gpu/graphite/ContextOptions.h +239 -0
- package/shared/skia/include/gpu/graphite/GraphiteTypes.h +315 -0
- package/shared/skia/include/gpu/graphite/Image.h +428 -0
- package/shared/skia/include/gpu/graphite/ImageProvider.h +68 -0
- package/shared/skia/include/gpu/graphite/PersistentPipelineStorage.h +45 -0
- package/shared/skia/include/gpu/graphite/PrecompileContext.h +109 -0
- package/shared/skia/include/gpu/graphite/Recorder.h +355 -0
- package/shared/skia/include/gpu/graphite/Recording.h +100 -0
- package/shared/skia/include/gpu/graphite/Surface.h +121 -0
- package/shared/skia/include/gpu/graphite/TextureInfo.h +133 -0
- package/shared/skia/include/gpu/graphite/YUVABackendTextures.h +148 -0
- package/shared/skia/include/gpu/graphite/dawn/DawnBackendContext.h +77 -0
- package/shared/skia/include/gpu/graphite/dawn/DawnGraphiteTypes.h +163 -0
- package/shared/skia/include/gpu/graphite/dawn/DawnTypes.h +9 -0
- package/shared/skia/include/gpu/graphite/dawn/DawnUtils.h +9 -0
- package/shared/skia/include/gpu/graphite/mtl/MtlBackendContext.h +34 -0
- package/shared/skia/include/gpu/graphite/mtl/MtlGraphiteTypes.h +73 -0
- package/shared/skia/include/gpu/graphite/mtl/MtlGraphiteTypesUtils.h +10 -0
- package/shared/skia/include/gpu/graphite/mtl/MtlGraphiteTypes_cpp.h +50 -0
- package/shared/skia/include/gpu/graphite/mtl/MtlGraphiteUtils.h +9 -0
- package/shared/skia/include/gpu/graphite/precompile/PaintOptions.h +211 -0
- package/shared/skia/include/gpu/graphite/precompile/Precompile.h +59 -0
- package/shared/skia/include/gpu/graphite/precompile/PrecompileBase.h +76 -0
- package/shared/skia/include/gpu/graphite/precompile/PrecompileBlender.h +56 -0
- package/shared/skia/include/gpu/graphite/precompile/PrecompileColorFilter.h +95 -0
- package/shared/skia/include/gpu/graphite/precompile/PrecompileImageFilter.h +116 -0
- package/shared/skia/include/gpu/graphite/precompile/PrecompileMaskFilter.h +49 -0
- package/shared/skia/include/gpu/graphite/precompile/PrecompileRuntimeEffect.h +47 -0
- package/shared/skia/include/gpu/graphite/precompile/PrecompileShader.h +268 -0
- package/shared/skia/include/gpu/graphite/vk/VulkanGraphiteContext.h +31 -0
- package/shared/skia/include/gpu/graphite/vk/VulkanGraphiteTypes.h +104 -0
- package/shared/skia/include/gpu/graphite/vk/precompile/VulkanPrecompileShader.h +39 -0
- package/shared/skia/include/gpu/mtl/MtlMemoryAllocator.h +41 -0
- package/shared/skia/include/gpu/vk/VulkanBackendContext.h +57 -0
- package/shared/skia/include/gpu/vk/VulkanExtensions.h +73 -0
- package/shared/skia/include/gpu/vk/VulkanMemoryAllocator.h +117 -0
- package/shared/skia/include/gpu/vk/VulkanMutableTextureState.h +26 -0
- package/shared/skia/include/gpu/vk/VulkanPreferredFeatures.h +225 -0
- package/shared/skia/include/gpu/vk/VulkanTypes.h +245 -0
- package/shared/skia/include/pathops/SkPathOps.h +150 -0
- package/shared/skia/include/ports/SkCFObject.h +180 -0
- package/shared/skia/include/ports/SkFontConfigInterface.h +112 -0
- package/shared/skia/include/ports/SkFontMgr_FontConfigInterface.h +24 -0
- package/shared/skia/include/ports/SkFontMgr_Fontations.h +20 -0
- package/shared/skia/include/ports/SkFontMgr_android.h +48 -0
- package/shared/skia/include/ports/SkFontMgr_android_ndk.h +27 -0
- package/shared/skia/include/ports/SkFontMgr_data.h +22 -0
- package/shared/skia/include/ports/SkFontMgr_directory.h +21 -0
- package/shared/skia/include/ports/SkFontMgr_empty.h +21 -0
- package/shared/skia/include/ports/SkFontMgr_fontconfig.h +24 -0
- package/shared/skia/include/ports/SkFontMgr_fuchsia.h +21 -0
- package/shared/skia/include/ports/SkFontMgr_mac_ct.h +27 -0
- package/shared/skia/include/ports/SkFontScanner_Fontations.h +15 -0
- package/shared/skia/include/ports/SkFontScanner_FreeType.h +15 -0
- package/shared/skia/include/ports/SkImageGeneratorCG.h +28 -0
- package/shared/skia/include/ports/SkImageGeneratorNDK.h +40 -0
- package/shared/skia/include/ports/SkImageGeneratorWIC.h +41 -0
- package/shared/skia/include/ports/SkTypeface_fontations.h +24 -0
- package/shared/skia/include/ports/SkTypeface_mac.h +44 -0
- package/shared/skia/include/ports/SkTypeface_win.h +63 -0
- package/shared/skia/include/private/SingleOwner.h +75 -0
- package/shared/skia/include/private/SkAPI.h +52 -0
- package/shared/skia/include/private/SkASAN.h +56 -0
- package/shared/skia/include/private/SkAlign.h +51 -0
- package/shared/skia/include/private/SkAlignedStorage.h +32 -0
- package/shared/skia/include/private/SkAnySubclass.h +79 -0
- package/shared/skia/include/private/SkAssert.h +203 -0
- package/shared/skia/include/private/SkAttributes.h +96 -0
- package/shared/skia/include/private/SkCPUTypes.h +25 -0
- package/shared/skia/include/private/SkContainers.h +54 -0
- package/shared/skia/include/private/SkDebug.h +27 -0
- package/shared/skia/include/private/SkDeque.h +138 -0
- package/shared/skia/include/private/SkEncodedInfo.h +249 -0
- package/shared/skia/include/private/SkEnumBitMask.h +92 -0
- package/shared/skia/include/private/SkExif.h +69 -0
- package/shared/skia/include/private/SkFeatures.h +173 -0
- package/shared/skia/include/private/SkFixed.h +143 -0
- package/shared/skia/include/private/SkFloatingPoint.h +183 -0
- package/shared/skia/include/private/SkGainmapInfo.h +140 -0
- package/shared/skia/include/private/SkGainmapShader.h +60 -0
- package/shared/skia/include/private/SkHdrMetadata.h +357 -0
- package/shared/skia/include/private/SkIDChangeListener.h +76 -0
- package/shared/skia/include/private/SkJpegGainmapEncoder.h +48 -0
- package/shared/skia/include/private/SkJpegMetadataDecoder.h +103 -0
- package/shared/skia/include/private/SkLoadUserConfig.h +64 -0
- package/shared/skia/include/private/SkLog.h +62 -0
- package/shared/skia/include/private/SkLogPriority.h +34 -0
- package/shared/skia/include/private/SkMacros.h +170 -0
- package/shared/skia/include/private/SkMalloc.h +152 -0
- package/shared/skia/include/private/SkMath.h +77 -0
- package/shared/skia/include/private/SkMutex.h +72 -0
- package/shared/skia/include/private/SkNoncopyable.h +30 -0
- package/shared/skia/include/private/SkOnce.h +55 -0
- package/shared/skia/include/private/SkPathRef.h +90 -0
- package/shared/skia/include/private/SkPixelStorage.h +52 -0
- package/shared/skia/include/private/SkSLSampleUsage.h +85 -0
- package/shared/skia/include/private/SkSafe32.h +49 -0
- package/shared/skia/include/private/SkSemaphore.h +84 -0
- package/shared/skia/include/private/SkTArray.h +823 -0
- package/shared/skia/include/private/SkTDArray.h +247 -0
- package/shared/skia/include/private/SkTFitsIn.h +92 -0
- package/shared/skia/include/private/SkTLogic.h +56 -0
- package/shared/skia/include/private/SkTPin.h +23 -0
- package/shared/skia/include/private/SkTemplates.h +500 -0
- package/shared/skia/include/private/SkThreadAnnotations.h +104 -0
- package/shared/skia/include/private/SkThreadID.h +23 -0
- package/shared/skia/include/private/SkTo.h +39 -0
- package/shared/skia/include/private/SkTypeTraits.h +53 -0
- package/shared/skia/include/private/SkWeakRefCnt.h +173 -0
- package/shared/skia/include/private/SkXmp.h +62 -0
- package/shared/skia/include/private/chromium/GrDeferredDisplayList.h +120 -0
- package/shared/skia/include/private/chromium/GrDeferredDisplayListRecorder.h +62 -0
- package/shared/skia/include/private/chromium/GrPromiseImageTexture.h +43 -0
- package/shared/skia/include/private/chromium/GrSurfaceCharacterization.h +211 -0
- package/shared/skia/include/private/chromium/GrVkSecondaryCBDrawContext.h +131 -0
- package/shared/skia/include/private/chromium/SkChromeRemoteGlyphCache.h +150 -0
- package/shared/skia/include/private/chromium/SkCodecsICCProfileChromium.h +52 -0
- package/shared/skia/include/private/chromium/SkDiscardableMemory.h +70 -0
- package/shared/skia/include/private/chromium/SkExifChromium.h +26 -0
- package/shared/skia/include/private/chromium/SkImageChromium.h +117 -0
- package/shared/skia/include/private/chromium/SkPMColor.h +38 -0
- package/shared/skia/include/private/chromium/Slug.h +72 -0
- package/shared/skia/include/private/gpu/ganesh/GrContext_Base.h +104 -0
- package/shared/skia/include/private/gpu/ganesh/GrD3DTypesMinimal.h +60 -0
- package/shared/skia/include/private/gpu/ganesh/GrImageContext.h +56 -0
- package/shared/skia/include/private/gpu/ganesh/GrTextureGenerator.h +66 -0
- package/shared/skia/include/private/gpu/ganesh/GrTypesPriv.h +959 -0
- package/shared/skia/include/private/gpu/vk/SkiaVulkan.h +36 -0
- package/shared/skia/include/sksl/SkSLDebugTrace.h +25 -0
- package/shared/skia/include/sksl/SkSLVersion.h +27 -0
- package/shared/skia/include/svg/SkSVGCanvas.h +62 -0
- package/shared/skia/include/third_party/vulkan/vulkan/vk_icd.h +245 -0
- package/shared/skia/include/third_party/vulkan/vulkan/vk_layer.h +192 -0
- package/shared/skia/include/third_party/vulkan/vulkan/vk_platform.h +84 -0
- package/shared/skia/include/third_party/vulkan/vulkan/vk_video/vulkan_video_codec_av1std.h +394 -0
- package/shared/skia/include/third_party/vulkan/vulkan/vk_video/vulkan_video_codec_av1std_decode.h +109 -0
- package/shared/skia/include/third_party/vulkan/vulkan/vk_video/vulkan_video_codec_av1std_encode.h +143 -0
- package/shared/skia/include/third_party/vulkan/vulkan/vk_video/vulkan_video_codec_h264std.h +312 -0
- package/shared/skia/include/third_party/vulkan/vulkan/vk_video/vulkan_video_codec_h264std_decode.h +77 -0
- package/shared/skia/include/third_party/vulkan/vulkan/vk_video/vulkan_video_codec_h264std_encode.h +147 -0
- package/shared/skia/include/third_party/vulkan/vulkan/vk_video/vulkan_video_codec_h265std.h +446 -0
- package/shared/skia/include/third_party/vulkan/vulkan/vk_video/vulkan_video_codec_h265std_decode.h +67 -0
- package/shared/skia/include/third_party/vulkan/vulkan/vk_video/vulkan_video_codec_h265std_encode.h +157 -0
- package/shared/skia/include/third_party/vulkan/vulkan/vk_video/vulkan_video_codec_vp9std.h +151 -0
- package/shared/skia/include/third_party/vulkan/vulkan/vk_video/vulkan_video_codec_vp9std_decode.h +68 -0
- package/shared/skia/include/third_party/vulkan/vulkan/vk_video/vulkan_video_codecs_common.h +36 -0
- package/shared/skia/include/third_party/vulkan/vulkan/vulkan.h +103 -0
- package/shared/skia/include/third_party/vulkan/vulkan/vulkan_android.h +159 -0
- package/shared/skia/include/third_party/vulkan/vulkan/vulkan_beta.h +375 -0
- package/shared/skia/include/third_party/vulkan/vulkan/vulkan_core.h +25896 -0
- package/shared/skia/include/third_party/vulkan/vulkan/vulkan_directfb.h +59 -0
- package/shared/skia/include/third_party/vulkan/vulkan/vulkan_fuchsia.h +282 -0
- package/shared/skia/include/third_party/vulkan/vulkan/vulkan_ggp.h +62 -0
- package/shared/skia/include/third_party/vulkan/vulkan/vulkan_ios.h +50 -0
- package/shared/skia/include/third_party/vulkan/vulkan/vulkan_macos.h +50 -0
- package/shared/skia/include/third_party/vulkan/vulkan/vulkan_metal.h +244 -0
- package/shared/skia/include/third_party/vulkan/vulkan/vulkan_ohos.h +120 -0
- package/shared/skia/include/third_party/vulkan/vulkan/vulkan_screen.h +114 -0
- package/shared/skia/include/third_party/vulkan/vulkan/vulkan_vi.h +50 -0
- package/shared/skia/include/third_party/vulkan/vulkan/vulkan_wayland.h +59 -0
- package/shared/skia/include/third_party/vulkan/vulkan/vulkan_win32.h +372 -0
- package/shared/skia/include/third_party/vulkan/vulkan/vulkan_xcb.h +60 -0
- package/shared/skia/include/third_party/vulkan/vulkan/vulkan_xlib.h +60 -0
- package/shared/skia/include/third_party/vulkan/vulkan/vulkan_xlib_xrandr.h +50 -0
- package/shared/skia/include/utils/SkCamera.h +109 -0
- package/shared/skia/include/utils/SkCanvasStateUtils.h +81 -0
- package/shared/skia/include/utils/SkCustomTypeface.h +70 -0
- package/shared/skia/include/utils/SkEventTracer.h +93 -0
- package/shared/skia/include/utils/SkNWayCanvas.h +123 -0
- package/shared/skia/include/utils/SkNoDrawCanvas.h +78 -0
- package/shared/skia/include/utils/SkNullCanvas.h +22 -0
- package/shared/skia/include/utils/SkOrderedFontMgr.h +66 -0
- package/shared/skia/include/utils/SkPaintFilterCanvas.h +140 -0
- package/shared/skia/include/utils/SkParse.h +36 -0
- package/shared/skia/include/utils/SkParsePath.h +33 -0
- package/shared/skia/include/utils/SkShadowUtils.h +102 -0
- package/shared/skia/include/utils/SkTextUtils.h +43 -0
- package/shared/skia/include/utils/SkTraceEventPhase.h +19 -0
- package/shared/skia/include/utils/mac/SkCGUtils.h +90 -0
- package/shared/skia/modules/jsonreader/SkJSONReader.cpp +996 -0
- package/shared/skia/modules/jsonreader/SkJSONReader.h +389 -0
- package/shared/skia/modules/skcms/skcms.h +10 -0
- package/shared/skia/modules/skcms/src/Transform_inl.h +1600 -0
- package/shared/skia/modules/skcms/src/skcms_Transform.h +167 -0
- package/shared/skia/modules/skcms/src/skcms_internals.h +157 -0
- package/shared/skia/modules/skcms/src/skcms_public.h +496 -0
- package/shared/skia/modules/skottie/include/ExternalLayer.h +56 -0
- package/shared/skia/modules/skottie/include/Skottie.h +324 -0
- package/shared/skia/modules/skottie/include/SkottieProperty.h +190 -0
- package/shared/skia/modules/skottie/include/SlotManager.h +113 -0
- package/shared/skia/modules/skottie/include/TextShaper.h +197 -0
- package/shared/skia/modules/skottie/src/SkottieValue.h +56 -0
- package/shared/skia/modules/skottie/src/animator/Animator.h +89 -0
- package/shared/skia/modules/skottie/src/text/Font.h +82 -0
- package/shared/skia/modules/skottie/src/text/TextAdapter.h +155 -0
- package/shared/skia/modules/skottie/src/text/TextAnimator.h +122 -0
- package/shared/skia/modules/skottie/src/text/TextValue.h +28 -0
- package/shared/skia/modules/skparagraph/include/DartTypes.h +153 -0
- package/shared/skia/modules/skparagraph/include/FontArguments.h +46 -0
- package/shared/skia/modules/skparagraph/include/FontCollection.h +76 -0
- package/shared/skia/modules/skparagraph/include/Metrics.h +98 -0
- package/shared/skia/modules/skparagraph/include/Paragraph.h +289 -0
- package/shared/skia/modules/skparagraph/include/ParagraphBuilder.h +94 -0
- package/shared/skia/modules/skparagraph/include/ParagraphCache.h +52 -0
- package/shared/skia/modules/skparagraph/include/ParagraphPainter.h +63 -0
- package/shared/skia/modules/skparagraph/include/ParagraphStyle.h +160 -0
- package/shared/skia/modules/skparagraph/include/TextShadow.h +30 -0
- package/shared/skia/modules/skparagraph/include/TextStyle.h +392 -0
- package/shared/skia/modules/skparagraph/include/TypefaceFontProvider.h +78 -0
- package/shared/skia/modules/skresources/include/SkResources.h +291 -0
- package/shared/skia/modules/sksg/include/SkSGClipEffect.h +61 -0
- package/shared/skia/modules/sksg/include/SkSGColorFilter.h +135 -0
- package/shared/skia/modules/sksg/include/SkSGDraw.h +57 -0
- package/shared/skia/modules/sksg/include/SkSGEffectNode.h +50 -0
- package/shared/skia/modules/sksg/include/SkSGGeometryEffect.h +207 -0
- package/shared/skia/modules/sksg/include/SkSGGeometryNode.h +54 -0
- package/shared/skia/modules/sksg/include/SkSGGradient.h +108 -0
- package/shared/skia/modules/sksg/include/SkSGGroup.h +65 -0
- package/shared/skia/modules/sksg/include/SkSGImage.h +59 -0
- package/shared/skia/modules/sksg/include/SkSGInvalidationController.h +46 -0
- package/shared/skia/modules/sksg/include/SkSGMaskEffect.h +65 -0
- package/shared/skia/modules/sksg/include/SkSGMerge.h +74 -0
- package/shared/skia/modules/sksg/include/SkSGNode.h +128 -0
- package/shared/skia/modules/sksg/include/SkSGOpacityEffect.h +54 -0
- package/shared/skia/modules/sksg/include/SkSGPaint.h +112 -0
- package/shared/skia/modules/sksg/include/SkSGPath.h +68 -0
- package/shared/skia/modules/sksg/include/SkSGPlane.h +47 -0
- package/shared/skia/modules/sksg/include/SkSGRect.h +122 -0
- package/shared/skia/modules/sksg/include/SkSGRenderEffect.h +283 -0
- package/shared/skia/modules/sksg/include/SkSGRenderNode.h +157 -0
- package/shared/skia/modules/sksg/include/SkSGScene.h +47 -0
- package/shared/skia/modules/sksg/include/SkSGText.h +82 -0
- package/shared/skia/modules/sksg/include/SkSGTransform.h +127 -0
- package/shared/skia/modules/skshaper/include/SkShaper.h +318 -0
- package/shared/skia/modules/skshaper/include/SkShaper_coretext.h +26 -0
- package/shared/skia/modules/skshaper/include/SkShaper_factory.h +41 -0
- package/shared/skia/modules/skshaper/include/SkShaper_harfbuzz.h +39 -0
- package/shared/skia/modules/skshaper/include/SkShaper_skunicode.h +28 -0
- package/shared/skia/modules/skunicode/include/SkUnicode.h +321 -0
- package/shared/skia/modules/skunicode/include/SkUnicode_icu.h +18 -0
- package/shared/skia/modules/skunicode/include/SkUnicode_libgrapheme.h +19 -0
- package/shared/skia/modules/svg/include/SkSVGAttribute.h +110 -0
- package/shared/skia/modules/svg/include/SkSVGAttributeParser.h +170 -0
- package/shared/skia/modules/svg/include/SkSVGCircle.h +56 -0
- package/shared/skia/modules/svg/include/SkSVGClipPath.h +41 -0
- package/shared/skia/modules/svg/include/SkSVGContainer.h +52 -0
- package/shared/skia/modules/svg/include/SkSVGDOM.h +111 -0
- package/shared/skia/modules/svg/include/SkSVGDefs.h +23 -0
- package/shared/skia/modules/svg/include/SkSVGEllipse.h +51 -0
- package/shared/skia/modules/svg/include/SkSVGFe.h +93 -0
- package/shared/skia/modules/svg/include/SkSVGFeBlend.h +54 -0
- package/shared/skia/modules/svg/include/SkSVGFeColorMatrix.h +55 -0
- package/shared/skia/modules/svg/include/SkSVGFeComponentTransfer.h +82 -0
- package/shared/skia/modules/svg/include/SkSVGFeComposite.h +55 -0
- package/shared/skia/modules/svg/include/SkSVGFeDisplacementMap.h +56 -0
- package/shared/skia/modules/svg/include/SkSVGFeFlood.h +42 -0
- package/shared/skia/modules/svg/include/SkSVGFeGaussianBlur.h +50 -0
- package/shared/skia/modules/svg/include/SkSVGFeImage.h +44 -0
- package/shared/skia/modules/svg/include/SkSVGFeLightSource.h +93 -0
- package/shared/skia/modules/svg/include/SkSVGFeLighting.h +131 -0
- package/shared/skia/modules/svg/include/SkSVGFeMerge.h +63 -0
- package/shared/skia/modules/svg/include/SkSVGFeMorphology.h +55 -0
- package/shared/skia/modules/svg/include/SkSVGFeOffset.h +44 -0
- package/shared/skia/modules/svg/include/SkSVGFeTurbulence.h +49 -0
- package/shared/skia/modules/svg/include/SkSVGFilter.h +48 -0
- package/shared/skia/modules/svg/include/SkSVGFilterContext.h +69 -0
- package/shared/skia/modules/svg/include/SkSVGG.h +23 -0
- package/shared/skia/modules/svg/include/SkSVGGradient.h +56 -0
- package/shared/skia/modules/svg/include/SkSVGHiddenContainer.h +23 -0
- package/shared/skia/modules/svg/include/SkSVGIDMapper.h +19 -0
- package/shared/skia/modules/svg/include/SkSVGImage.h +67 -0
- package/shared/skia/modules/svg/include/SkSVGLine.h +53 -0
- package/shared/skia/modules/svg/include/SkSVGLinearGradient.h +47 -0
- package/shared/skia/modules/svg/include/SkSVGMask.h +49 -0
- package/shared/skia/modules/svg/include/SkSVGNode.h +235 -0
- package/shared/skia/modules/svg/include/SkSVGOpenTypeSVGDecoder.h +37 -0
- package/shared/skia/modules/svg/include/SkSVGPath.h +46 -0
- package/shared/skia/modules/svg/include/SkSVGPattern.h +61 -0
- package/shared/skia/modules/svg/include/SkSVGPoly.h +56 -0
- package/shared/skia/modules/svg/include/SkSVGRadialGradient.h +48 -0
- package/shared/skia/modules/svg/include/SkSVGRect.h +56 -0
- package/shared/skia/modules/svg/include/SkSVGRenderContext.h +229 -0
- package/shared/skia/modules/svg/include/SkSVGSVG.h +60 -0
- package/shared/skia/modules/svg/include/SkSVGShape.h +40 -0
- package/shared/skia/modules/svg/include/SkSVGStop.h +36 -0
- package/shared/skia/modules/svg/include/SkSVGText.h +128 -0
- package/shared/skia/modules/svg/include/SkSVGTransformableNode.h +48 -0
- package/shared/skia/modules/svg/include/SkSVGTypes.h +740 -0
- package/shared/skia/modules/svg/include/SkSVGUse.h +49 -0
- package/shared/skia/modules/svg/include/SkSVGValue.h +85 -0
- package/shared/skia/src/core/SkArenaAlloc.h +371 -0
- package/shared/skia/src/core/SkAutoLocaleSetter.h +94 -0
- package/shared/skia/src/core/SkChecksum.h +118 -0
- package/shared/skia/src/core/SkLRUCache.h +143 -0
- package/shared/skia/src/core/SkMathPriv.h +225 -0
- package/shared/skia/src/core/SkTHash.h +714 -0
- package/shared/skia/src/core/SkTInternalLList.h +304 -0
- package/shared/skia/src/core/SkTLazy.h +216 -0
- package/shared/skia/src/core/SkUTF.h +102 -0
- package/shared/skia/src/gpu/ganesh/gl/GrGLDefines.h +1162 -0
- package/src/GameMethods.nitro.ts +12 -2
- package/src/GameMethods.ts +57 -2
- package/src/index.tsx +1 -1
- package/src/nativeTypes.ts +13 -0
- package/src/types.ts +7 -9
- package/android/src/main/cpp/GameLoopJNI.cpp +0 -132
- package/android/src/main/java/com/margelo/nitro/rngine/Asset.kt +0 -9
- package/android/src/main/java/com/margelo/nitro/rngine/GameAssets.kt +0 -61
- package/android/src/main/java/com/margelo/nitro/rngine/Screen.kt +0 -9
- package/android/src/main/java/com/margelo/nitro/rngine/Shape.kt +0 -26
- package/android/src/main/java/com/margelo/nitro/rngine/Snapshot.kt +0 -3
- package/android/src/main/java/com/margelo/nitro/rngine/SnapshotSerializer.kt +0 -53
- package/lib/module/GameAssets.js +0 -41
- package/lib/module/GameAssets.js.map +0 -1
- package/lib/module/GameAssets.nitro.js +0 -5
- package/lib/module/GameAssets.nitro.js.map +0 -1
- package/lib/typescript/src/GameAssets.d.ts +0 -2
- package/lib/typescript/src/GameAssets.d.ts.map +0 -1
- package/lib/typescript/src/GameAssets.nitro.d.ts +0 -12
- package/lib/typescript/src/GameAssets.nitro.d.ts.map +0 -1
- package/nitrogen/generated/android/c++/JHybridGameAssetsSpec.cpp +0 -86
- package/nitrogen/generated/android/c++/JHybridGameAssetsSpec.hpp +0 -65
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/rngine/HybridGameAssetsSpec.kt +0 -63
- package/nitrogen/generated/ios/c++/HybridGameAssetsSpecSwift.cpp +0 -11
- package/nitrogen/generated/ios/c++/HybridGameAssetsSpecSwift.hpp +0 -99
- package/nitrogen/generated/ios/swift/Func_void.swift +0 -46
- package/nitrogen/generated/ios/swift/Func_void_std__exception_ptr.swift +0 -46
- package/nitrogen/generated/ios/swift/HybridGameAssetsSpec.swift +0 -57
- package/nitrogen/generated/ios/swift/HybridGameAssetsSpec_cxx.swift +0 -176
- package/nitrogen/generated/shared/c++/HybridGameAssetsSpec.cpp +0 -23
- package/nitrogen/generated/shared/c++/HybridGameAssetsSpec.hpp +0 -65
- package/src/GameAssets.nitro.ts +0 -14
- package/src/GameAssets.ts +0 -47
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright 2006 The Android Open Source Project
|
|
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 SkPathEffect_DEFINED
|
|
9
|
+
#define SkPathEffect_DEFINED
|
|
10
|
+
|
|
11
|
+
#include "include/core/SkFlattenable.h"
|
|
12
|
+
#include "include/core/SkRefCnt.h"
|
|
13
|
+
#include "include/core/SkTypes.h"
|
|
14
|
+
|
|
15
|
+
// TODO(kjlubick) update clients and remove this unnecessary #include
|
|
16
|
+
#include "include/core/SkPath.h" // IWYU pragma: keep
|
|
17
|
+
|
|
18
|
+
#include <cstddef>
|
|
19
|
+
|
|
20
|
+
class SkMatrix;
|
|
21
|
+
class SkPathBuilder;
|
|
22
|
+
class SkStrokeRec;
|
|
23
|
+
struct SkDeserialProcs;
|
|
24
|
+
struct SkRect;
|
|
25
|
+
|
|
26
|
+
/** \class SkPathEffect
|
|
27
|
+
|
|
28
|
+
SkPathEffect is the base class for objects in the SkPaint that affect
|
|
29
|
+
the geometry of a drawing primitive before it is transformed by the
|
|
30
|
+
canvas' matrix and drawn.
|
|
31
|
+
|
|
32
|
+
Dashing is implemented as a subclass of SkPathEffect.
|
|
33
|
+
*/
|
|
34
|
+
class SK_API SkPathEffect : public SkFlattenable {
|
|
35
|
+
public:
|
|
36
|
+
/**
|
|
37
|
+
* Returns a patheffect that apples each effect (first and second) to the original path,
|
|
38
|
+
* and returns a path with the sum of these.
|
|
39
|
+
*
|
|
40
|
+
* result = first(path) + second(path)
|
|
41
|
+
*
|
|
42
|
+
*/
|
|
43
|
+
static sk_sp<SkPathEffect> MakeSum(sk_sp<SkPathEffect> first, sk_sp<SkPathEffect> second);
|
|
44
|
+
|
|
45
|
+
/**
|
|
46
|
+
* Returns a patheffect that applies the inner effect to the path, and then applies the
|
|
47
|
+
* outer effect to the result of the inner's.
|
|
48
|
+
*
|
|
49
|
+
* result = outer(inner(path))
|
|
50
|
+
*/
|
|
51
|
+
static sk_sp<SkPathEffect> MakeCompose(sk_sp<SkPathEffect> outer, sk_sp<SkPathEffect> inner);
|
|
52
|
+
|
|
53
|
+
static SkFlattenable::Type GetFlattenableType() {
|
|
54
|
+
return kSkPathEffect_Type;
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
/**
|
|
58
|
+
* Given a src path (input) and a stroke-rec (input and output), apply
|
|
59
|
+
* this effect to the src path, returning the new path in dst, and return
|
|
60
|
+
* true. If this effect cannot be applied, return false and ignore dst
|
|
61
|
+
* and stroke-rec.
|
|
62
|
+
*
|
|
63
|
+
* The stroke-rec specifies the initial request for stroking (if any).
|
|
64
|
+
* The effect can treat this as input only, or it can choose to change
|
|
65
|
+
* the rec as well. For example, the effect can decide to change the
|
|
66
|
+
* stroke's width or join, or the effect can change the rec from stroke
|
|
67
|
+
* to fill (or fill to stroke) in addition to returning a new (dst) path.
|
|
68
|
+
*
|
|
69
|
+
* If this method returns true, the caller will apply (as needed) the
|
|
70
|
+
* resulting stroke-rec to dst and then draw.
|
|
71
|
+
*/
|
|
72
|
+
bool filterPath(SkPathBuilder* dst, const SkPath& src, SkStrokeRec*, const SkRect* cullR,
|
|
73
|
+
const SkMatrix& ctm) const;
|
|
74
|
+
bool filterPath(SkPathBuilder* dst, const SkPath& src, SkStrokeRec*) const;
|
|
75
|
+
|
|
76
|
+
/** True if this path effect requires a valid CTM */
|
|
77
|
+
bool needsCTM() const;
|
|
78
|
+
|
|
79
|
+
static sk_sp<SkPathEffect> Deserialize(const void* data, size_t size,
|
|
80
|
+
const SkDeserialProcs* procs = nullptr);
|
|
81
|
+
private:
|
|
82
|
+
SkPathEffect() = default;
|
|
83
|
+
friend class SkPathEffectBase;
|
|
84
|
+
|
|
85
|
+
using INHERITED = SkFlattenable;
|
|
86
|
+
};
|
|
87
|
+
|
|
88
|
+
#endif
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright 2025 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 SkPathIter_DEFINED
|
|
9
|
+
#define SkPathIter_DEFINED
|
|
10
|
+
|
|
11
|
+
#include "include/core/SkPathTypes.h"
|
|
12
|
+
#include "include/core/SkPoint.h"
|
|
13
|
+
#include "include/core/SkSpan.h"
|
|
14
|
+
|
|
15
|
+
#include <array>
|
|
16
|
+
#include <cstddef>
|
|
17
|
+
#include <optional>
|
|
18
|
+
|
|
19
|
+
class SK_API SkPathIter {
|
|
20
|
+
public:
|
|
21
|
+
struct Rec {
|
|
22
|
+
SkSpan<const SkPoint> fPoints;
|
|
23
|
+
float fConicWeight;
|
|
24
|
+
SkPathVerb fVerb;
|
|
25
|
+
|
|
26
|
+
float conicWeight() const {
|
|
27
|
+
SkASSERT(fVerb == SkPathVerb::kConic);
|
|
28
|
+
return fConicWeight;
|
|
29
|
+
}
|
|
30
|
+
};
|
|
31
|
+
|
|
32
|
+
SkPathIter(SkSpan<const SkPoint> pts, SkSpan<const SkPathVerb> vbs, SkSpan<const float> cns)
|
|
33
|
+
: pIndex(0), vIndex(0), cIndex(0)
|
|
34
|
+
, fPoints(pts), fVerbs(vbs), fConics(cns)
|
|
35
|
+
{
|
|
36
|
+
// For compat older iterators, we trim off a trailing Move.
|
|
37
|
+
// SkPathData is defined to never create this pattern, so perhaps in the future
|
|
38
|
+
// this check can be removed (or replaced by an assert)
|
|
39
|
+
if (!vbs.empty() && vbs.back() == SkPathVerb::kMove) {
|
|
40
|
+
fVerbs = vbs.first(vbs.size() - 1);
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
/* Holds the current verb, and its associated points
|
|
45
|
+
* move: pts[0]
|
|
46
|
+
* line: pts[0..1]
|
|
47
|
+
* quad: pts[0..2]
|
|
48
|
+
* conic: pts[0..2] fConicWeight
|
|
49
|
+
* cubic: pts[0..3]
|
|
50
|
+
* close: pts[0..1] ... as if close were a line from pts[0] to pts[1]
|
|
51
|
+
*/
|
|
52
|
+
std::optional<Rec> next();
|
|
53
|
+
|
|
54
|
+
std::optional<SkPathVerb> peekNextVerb() const {
|
|
55
|
+
if (vIndex < fVerbs.size()) {
|
|
56
|
+
return fVerbs[vIndex];
|
|
57
|
+
}
|
|
58
|
+
return {};
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
private:
|
|
62
|
+
size_t pIndex, vIndex, cIndex;
|
|
63
|
+
SkSpan<const SkPoint> fPoints;
|
|
64
|
+
SkSpan<const SkPathVerb> fVerbs;
|
|
65
|
+
SkSpan<const float> fConics;
|
|
66
|
+
std::array<SkPoint, 2> fClosePointStorage;
|
|
67
|
+
};
|
|
68
|
+
|
|
69
|
+
class SkPathContourIter {
|
|
70
|
+
public:
|
|
71
|
+
struct Rec {
|
|
72
|
+
SkSpan<const SkPoint> fPoints;
|
|
73
|
+
SkSpan<const SkPathVerb> fVerbs;
|
|
74
|
+
SkSpan<const float> fConics;
|
|
75
|
+
};
|
|
76
|
+
|
|
77
|
+
SkPathContourIter(SkSpan<const SkPoint> pts, SkSpan<const SkPathVerb> vbs,
|
|
78
|
+
SkSpan<const float> cns)
|
|
79
|
+
: fPoints(pts), fVerbs(vbs), fConics(cns)
|
|
80
|
+
{}
|
|
81
|
+
|
|
82
|
+
std::optional<Rec> next();
|
|
83
|
+
|
|
84
|
+
private:
|
|
85
|
+
SkSpan<const SkPoint> fPoints;
|
|
86
|
+
SkSpan<const SkPathVerb> fVerbs;
|
|
87
|
+
SkSpan<const float> fConics;
|
|
88
|
+
};
|
|
89
|
+
|
|
90
|
+
#endif
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright 2006 The Android Open Source Project
|
|
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 SkPathMeasure_DEFINED
|
|
9
|
+
#define SkPathMeasure_DEFINED
|
|
10
|
+
|
|
11
|
+
#include "include/core/SkContourMeasure.h"
|
|
12
|
+
#include "include/core/SkPoint.h"
|
|
13
|
+
#include "include/core/SkRefCnt.h"
|
|
14
|
+
#include "include/core/SkScalar.h"
|
|
15
|
+
#include "include/core/SkTypes.h"
|
|
16
|
+
#include "include/private/SkDebug.h"
|
|
17
|
+
|
|
18
|
+
class SkMatrix;
|
|
19
|
+
class SkPath;
|
|
20
|
+
class SkPathBuilder;
|
|
21
|
+
|
|
22
|
+
class SK_API SkPathMeasure {
|
|
23
|
+
public:
|
|
24
|
+
SkPathMeasure();
|
|
25
|
+
/** Initialize the pathmeasure with the specified path. The parts of the path that are needed
|
|
26
|
+
* are copied, so the client is free to modify/delete the path after this call.
|
|
27
|
+
*
|
|
28
|
+
* resScale controls the precision of the measure. values > 1 increase the
|
|
29
|
+
* precision (and possibly slow down the computation).
|
|
30
|
+
*/
|
|
31
|
+
SkPathMeasure(const SkPath& path, bool forceClosed, SkScalar resScale = 1);
|
|
32
|
+
~SkPathMeasure();
|
|
33
|
+
|
|
34
|
+
SkPathMeasure(SkPathMeasure&&) = default;
|
|
35
|
+
SkPathMeasure& operator=(SkPathMeasure&&) = default;
|
|
36
|
+
|
|
37
|
+
/** Reset the pathmeasure with the specified path. The parts of the path that are needed
|
|
38
|
+
* are copied, so the client is free to modify/delete the path after this call..
|
|
39
|
+
*/
|
|
40
|
+
void setPath(const SkPath*, bool forceClosed);
|
|
41
|
+
|
|
42
|
+
/** Return the total length of the current contour, or 0 if no path
|
|
43
|
+
is associated (e.g. resetPath(null))
|
|
44
|
+
*/
|
|
45
|
+
SkScalar getLength();
|
|
46
|
+
|
|
47
|
+
/** Pins distance to 0 <= distance <= getLength(), and then computes
|
|
48
|
+
the corresponding position and tangent.
|
|
49
|
+
Returns false if there is no path, or a zero-length path was specified, in which case
|
|
50
|
+
position and tangent are unchanged.
|
|
51
|
+
*/
|
|
52
|
+
[[nodiscard]] bool getPosTan(SkScalar distance, SkPoint* position, SkVector* tangent);
|
|
53
|
+
|
|
54
|
+
enum MatrixFlags {
|
|
55
|
+
kGetPosition_MatrixFlag = 0x01,
|
|
56
|
+
kGetTangent_MatrixFlag = 0x02,
|
|
57
|
+
kGetPosAndTan_MatrixFlag = kGetPosition_MatrixFlag | kGetTangent_MatrixFlag
|
|
58
|
+
};
|
|
59
|
+
|
|
60
|
+
/** Pins distance to 0 <= distance <= getLength(), and then computes
|
|
61
|
+
the corresponding matrix (by calling getPosTan).
|
|
62
|
+
Returns false if there is no path, or a zero-length path was specified, in which case
|
|
63
|
+
matrix is unchanged.
|
|
64
|
+
*/
|
|
65
|
+
[[nodiscard]] bool getMatrix(SkScalar distance, SkMatrix* matrix,
|
|
66
|
+
MatrixFlags flags = kGetPosAndTan_MatrixFlag);
|
|
67
|
+
|
|
68
|
+
/** Given a start and stop distance, append to dst the intervening segment(s).
|
|
69
|
+
If the segment is zero-length, return false, else return true.
|
|
70
|
+
startD and stopD are pinned to legal values (0..getLength()). If startD > stopD
|
|
71
|
+
then return false (and leave dst untouched).
|
|
72
|
+
Begin the segment with a moveTo if startWithMoveTo is true
|
|
73
|
+
*/
|
|
74
|
+
bool getSegment(SkScalar startD, SkScalar stopD, SkPathBuilder* dst, bool startWithMoveTo);
|
|
75
|
+
|
|
76
|
+
/** Return true if the current contour is closed()
|
|
77
|
+
*/
|
|
78
|
+
bool isClosed();
|
|
79
|
+
|
|
80
|
+
/** Move to the next contour in the path. Return true if one exists, or false if
|
|
81
|
+
we're done with the path.
|
|
82
|
+
*/
|
|
83
|
+
bool nextContour();
|
|
84
|
+
|
|
85
|
+
#ifdef SK_DEBUG
|
|
86
|
+
void dump();
|
|
87
|
+
#endif
|
|
88
|
+
|
|
89
|
+
const SkContourMeasure* currentMeasure() const { return fContour.get(); }
|
|
90
|
+
|
|
91
|
+
private:
|
|
92
|
+
SkContourMeasureIter fIter;
|
|
93
|
+
sk_sp<SkContourMeasure> fContour;
|
|
94
|
+
};
|
|
95
|
+
|
|
96
|
+
#endif
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright 2019 Google LLC
|
|
3
|
+
*
|
|
4
|
+
* Use of this source code is governed by a BSD-style license that can be
|
|
5
|
+
* found in the LICENSE file.
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
#ifndef SkPathTypes_DEFINED
|
|
9
|
+
#define SkPathTypes_DEFINED
|
|
10
|
+
|
|
11
|
+
#include "include/core/SkTypes.h"
|
|
12
|
+
|
|
13
|
+
#include <cstdint>
|
|
14
|
+
|
|
15
|
+
enum class SkPathFillType : uint8_t {
|
|
16
|
+
/** Specifies that "inside" is computed by a non-zero sum of signed edge crossings */
|
|
17
|
+
kWinding,
|
|
18
|
+
/** Specifies that "inside" is computed by an odd number of edge crossings */
|
|
19
|
+
kEvenOdd,
|
|
20
|
+
/** Same as Winding, but draws outside of the path, rather than inside */
|
|
21
|
+
kInverseWinding,
|
|
22
|
+
/** Same as EvenOdd, but draws outside of the path, rather than inside */
|
|
23
|
+
kInverseEvenOdd,
|
|
24
|
+
|
|
25
|
+
kDefault = kWinding,
|
|
26
|
+
};
|
|
27
|
+
|
|
28
|
+
static inline bool SkPathFillType_IsEvenOdd(SkPathFillType ft) {
|
|
29
|
+
return (static_cast<int>(ft) & 1) != 0;
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
static inline bool SkPathFillType_IsInverse(SkPathFillType ft) {
|
|
33
|
+
return (static_cast<int>(ft) & 2) != 0;
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
static inline SkPathFillType SkPathFillType_ToggleInverse(SkPathFillType ft) {
|
|
37
|
+
return static_cast<SkPathFillType>(static_cast<int>(ft) ^ 2);
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
static inline SkPathFillType SkPathFillType_ConvertToNonInverse(SkPathFillType ft) {
|
|
41
|
+
return static_cast<SkPathFillType>(static_cast<int>(ft) & 1);
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
enum class SkPathDirection : uint8_t {
|
|
45
|
+
/** clockwise direction for adding closed contours */
|
|
46
|
+
kCW,
|
|
47
|
+
/** counter-clockwise direction for adding closed contours */
|
|
48
|
+
kCCW,
|
|
49
|
+
|
|
50
|
+
kDefault = kCW,
|
|
51
|
+
};
|
|
52
|
+
|
|
53
|
+
enum SkPathSegmentMask {
|
|
54
|
+
kLine_SkPathSegmentMask = 1 << 0,
|
|
55
|
+
kQuad_SkPathSegmentMask = 1 << 1,
|
|
56
|
+
kConic_SkPathSegmentMask = 1 << 2,
|
|
57
|
+
kCubic_SkPathSegmentMask = 1 << 3,
|
|
58
|
+
};
|
|
59
|
+
|
|
60
|
+
enum class SkPathVerb : uint8_t {
|
|
61
|
+
kMove, //!< SkPath::RawIter returns 1 point
|
|
62
|
+
kLine, //!< SkPath::RawIter returns 2 points
|
|
63
|
+
kQuad, //!< SkPath::RawIter returns 3 points
|
|
64
|
+
kConic, //!< SkPath::RawIter returns 3 points + 1 weight
|
|
65
|
+
kCubic, //!< SkPath::RawIter returns 4 points
|
|
66
|
+
kClose, //!< SkPath::RawIter returns 0 points
|
|
67
|
+
|
|
68
|
+
kLast_Verb = kClose,
|
|
69
|
+
};
|
|
70
|
+
|
|
71
|
+
#endif
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright 2022 Google LLC
|
|
3
|
+
*
|
|
4
|
+
* Use of this source code is governed by a BSD-style license that can be
|
|
5
|
+
* found in the LICENSE file.
|
|
6
|
+
*/
|
|
7
|
+
#ifndef SkPathUtils_DEFINED
|
|
8
|
+
#define SkPathUtils_DEFINED
|
|
9
|
+
|
|
10
|
+
#include "include/core/SkScalar.h" // IWYU pragma: keep
|
|
11
|
+
#include "include/core/SkTypes.h"
|
|
12
|
+
|
|
13
|
+
class SkMatrix;
|
|
14
|
+
class SkPaint;
|
|
15
|
+
class SkPath;
|
|
16
|
+
class SkPathBuilder;
|
|
17
|
+
struct SkRect;
|
|
18
|
+
|
|
19
|
+
namespace skpathutils {
|
|
20
|
+
|
|
21
|
+
/* Returns the filled equivalent of the stroked path.
|
|
22
|
+
*
|
|
23
|
+
* @param src SkPath read to create a filled version
|
|
24
|
+
* @param paint uses settings for stroke cap, width, miter, join, and patheffect.
|
|
25
|
+
* @param dst results are written to this builder.
|
|
26
|
+
* @param cullRect optional limit passed to SkPathEffect
|
|
27
|
+
* @param ctm matrix to take into acount for increased precision (if it scales up).
|
|
28
|
+
* @return true if the result can be filled, or false if it is a hairline (to be stroked).
|
|
29
|
+
*/
|
|
30
|
+
SK_API bool FillPathWithPaint(const SkPath& src, const SkPaint& paint, SkPathBuilder* dst,
|
|
31
|
+
const SkRect* cullRect, const SkMatrix& ctm);
|
|
32
|
+
|
|
33
|
+
SK_API bool FillPathWithPaint(const SkPath& src, const SkPaint& paint, SkPathBuilder* dst);
|
|
34
|
+
|
|
35
|
+
SK_API SkPath FillPathWithPaint(const SkPath& src, const SkPaint& paint, bool* isFill = nullptr);
|
|
36
|
+
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
#endif
|
|
@@ -0,0 +1,291 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright 2007 The Android Open Source Project
|
|
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 SkPicture_DEFINED
|
|
9
|
+
#define SkPicture_DEFINED
|
|
10
|
+
|
|
11
|
+
#include "include/core/SkRect.h"
|
|
12
|
+
#include "include/core/SkRefCnt.h"
|
|
13
|
+
#include "include/core/SkShader.h" // IWYU pragma: keep
|
|
14
|
+
#include "include/core/SkTypes.h"
|
|
15
|
+
|
|
16
|
+
#include <atomic>
|
|
17
|
+
#include <cstddef>
|
|
18
|
+
#include <cstdint>
|
|
19
|
+
|
|
20
|
+
class SkCanvas;
|
|
21
|
+
class SkData;
|
|
22
|
+
class SkMatrix;
|
|
23
|
+
class SkStream;
|
|
24
|
+
class SkWStream;
|
|
25
|
+
enum class SkFilterMode;
|
|
26
|
+
struct SkDeserialProcs;
|
|
27
|
+
struct SkSerialProcs;
|
|
28
|
+
|
|
29
|
+
// TODO(kjlubick) Remove this after cleaning up clients
|
|
30
|
+
#include "include/core/SkTileMode.h" // IWYU pragma: keep
|
|
31
|
+
|
|
32
|
+
/** \class SkPicture
|
|
33
|
+
SkPicture records drawing commands made to SkCanvas. The command stream may be
|
|
34
|
+
played in whole or in part at a later time.
|
|
35
|
+
|
|
36
|
+
SkPicture is an abstract class. SkPicture may be generated by SkPictureRecorder
|
|
37
|
+
or SkDrawable, or from SkPicture previously saved to SkData or SkStream.
|
|
38
|
+
|
|
39
|
+
SkPicture may contain any SkCanvas drawing command, as well as one or more
|
|
40
|
+
SkCanvas matrix or SkCanvas clip. SkPicture has a cull SkRect, which is used as
|
|
41
|
+
a bounding box hint. To limit SkPicture bounds, use SkCanvas clip when
|
|
42
|
+
recording or drawing SkPicture.
|
|
43
|
+
*/
|
|
44
|
+
class SK_API SkPicture : public SkRefCnt {
|
|
45
|
+
public:
|
|
46
|
+
~SkPicture() override;
|
|
47
|
+
|
|
48
|
+
/** Recreates SkPicture that was serialized into a stream. Returns constructed SkPicture
|
|
49
|
+
if successful; otherwise, returns nullptr. Fails if data does not permit
|
|
50
|
+
constructing valid SkPicture.
|
|
51
|
+
|
|
52
|
+
procs->fPictureProc permits supplying a custom function to decode SkPicture.
|
|
53
|
+
If procs->fPictureProc is nullptr, default decoding is used. procs->fPictureCtx
|
|
54
|
+
may be used to provide user context to procs->fPictureProc; procs->fPictureProc
|
|
55
|
+
is called with a pointer to data, data byte length, and user context.
|
|
56
|
+
|
|
57
|
+
@param stream container for serial data
|
|
58
|
+
@param procs custom serial data decoders; may be nullptr
|
|
59
|
+
@return SkPicture constructed from stream data
|
|
60
|
+
*/
|
|
61
|
+
static sk_sp<SkPicture> MakeFromStream(SkStream* stream,
|
|
62
|
+
const SkDeserialProcs* procs = nullptr);
|
|
63
|
+
|
|
64
|
+
/** Recreates SkPicture that was serialized into data. Returns constructed SkPicture
|
|
65
|
+
if successful; otherwise, returns nullptr. Fails if data does not permit
|
|
66
|
+
constructing valid SkPicture.
|
|
67
|
+
|
|
68
|
+
procs->fPictureProc permits supplying a custom function to decode SkPicture.
|
|
69
|
+
If procs->fPictureProc is nullptr, default decoding is used. procs->fPictureCtx
|
|
70
|
+
may be used to provide user context to procs->fPictureProc; procs->fPictureProc
|
|
71
|
+
is called with a pointer to data, data byte length, and user context.
|
|
72
|
+
|
|
73
|
+
@param data container for serial data
|
|
74
|
+
@param procs custom serial data decoders; may be nullptr
|
|
75
|
+
@return SkPicture constructed from data
|
|
76
|
+
*/
|
|
77
|
+
static sk_sp<SkPicture> MakeFromData(const SkData* data,
|
|
78
|
+
const SkDeserialProcs* procs = nullptr);
|
|
79
|
+
|
|
80
|
+
/**
|
|
81
|
+
|
|
82
|
+
@param data pointer to serial data
|
|
83
|
+
@param size size of data
|
|
84
|
+
@param procs custom serial data decoders; may be nullptr
|
|
85
|
+
@return SkPicture constructed from data
|
|
86
|
+
*/
|
|
87
|
+
static sk_sp<SkPicture> MakeFromData(const void* data, size_t size,
|
|
88
|
+
const SkDeserialProcs* procs = nullptr);
|
|
89
|
+
|
|
90
|
+
/** \class SkPicture::AbortCallback
|
|
91
|
+
AbortCallback is an abstract class. An implementation of AbortCallback may
|
|
92
|
+
passed as a parameter to SkPicture::playback, to stop it before all drawing
|
|
93
|
+
commands have been processed.
|
|
94
|
+
|
|
95
|
+
If AbortCallback::abort returns true, SkPicture::playback is interrupted.
|
|
96
|
+
*/
|
|
97
|
+
class SK_API AbortCallback {
|
|
98
|
+
public:
|
|
99
|
+
/** Has no effect.
|
|
100
|
+
*/
|
|
101
|
+
virtual ~AbortCallback() = default;
|
|
102
|
+
|
|
103
|
+
/** Stops SkPicture playback when some condition is met. A subclass of
|
|
104
|
+
AbortCallback provides an override for abort() that can stop SkPicture::playback.
|
|
105
|
+
|
|
106
|
+
The part of SkPicture drawn when aborted is undefined. SkPicture instantiations are
|
|
107
|
+
free to stop drawing at different points during playback.
|
|
108
|
+
|
|
109
|
+
If the abort happens inside one or more calls to SkCanvas::save(), stack
|
|
110
|
+
of SkCanvas matrix and SkCanvas clip values is restored to its state before
|
|
111
|
+
SkPicture::playback was called.
|
|
112
|
+
|
|
113
|
+
@return true to stop playback
|
|
114
|
+
|
|
115
|
+
example: https://fiddle.skia.org/c/@Picture_AbortCallback_abort
|
|
116
|
+
*/
|
|
117
|
+
virtual bool abort() = 0;
|
|
118
|
+
|
|
119
|
+
protected:
|
|
120
|
+
AbortCallback() = default;
|
|
121
|
+
AbortCallback(const AbortCallback&) = delete;
|
|
122
|
+
AbortCallback& operator=(const AbortCallback&) = delete;
|
|
123
|
+
};
|
|
124
|
+
|
|
125
|
+
/** Replays the drawing commands on the specified canvas. In the case that the
|
|
126
|
+
commands are recorded, each command in the SkPicture is sent separately to canvas.
|
|
127
|
+
|
|
128
|
+
To add a single command to draw SkPicture to recording canvas, call
|
|
129
|
+
SkCanvas::drawPicture instead.
|
|
130
|
+
|
|
131
|
+
@param canvas receiver of drawing commands
|
|
132
|
+
@param callback allows interruption of playback
|
|
133
|
+
|
|
134
|
+
example: https://fiddle.skia.org/c/@Picture_playback
|
|
135
|
+
*/
|
|
136
|
+
virtual void playback(SkCanvas* canvas, AbortCallback* callback = nullptr) const = 0;
|
|
137
|
+
|
|
138
|
+
/** Returns cull SkRect for this picture, passed in when SkPicture was created.
|
|
139
|
+
Returned SkRect does not specify clipping SkRect for SkPicture; cull is hint
|
|
140
|
+
of SkPicture bounds.
|
|
141
|
+
|
|
142
|
+
SkPicture is free to discard recorded drawing commands that fall outside
|
|
143
|
+
cull.
|
|
144
|
+
|
|
145
|
+
@return bounds passed when SkPicture was created
|
|
146
|
+
|
|
147
|
+
example: https://fiddle.skia.org/c/@Picture_cullRect
|
|
148
|
+
*/
|
|
149
|
+
virtual SkRect cullRect() const = 0;
|
|
150
|
+
|
|
151
|
+
/** Returns a non-zero value unique among SkPicture in Skia process.
|
|
152
|
+
|
|
153
|
+
@return identifier for SkPicture
|
|
154
|
+
*/
|
|
155
|
+
uint32_t uniqueID() const { return fUniqueID; }
|
|
156
|
+
|
|
157
|
+
/** Returns storage containing SkData describing SkPicture, using optional custom
|
|
158
|
+
encoders.
|
|
159
|
+
|
|
160
|
+
procs->fPictureProc permits supplying a custom function to encode SkPicture.
|
|
161
|
+
If procs->fPictureProc is nullptr, default encoding is used. procs->fPictureCtx
|
|
162
|
+
may be used to provide user context to procs->fPictureProc; procs->fPictureProc
|
|
163
|
+
is called with a pointer to SkPicture and user context.
|
|
164
|
+
|
|
165
|
+
The default behavior for serializing SkImages is to encode a nullptr. Should
|
|
166
|
+
clients want to, for example, encode these SkImages as PNGs so they can be
|
|
167
|
+
deserialized, they must provide SkSerialProcs with the fImageProc set to do so.
|
|
168
|
+
|
|
169
|
+
@param procs custom serial data encoders; may be nullptr
|
|
170
|
+
@return storage containing serialized SkPicture
|
|
171
|
+
|
|
172
|
+
example: https://fiddle.skia.org/c/@Picture_serialize
|
|
173
|
+
*/
|
|
174
|
+
sk_sp<SkData> serialize(const SkSerialProcs* procs = nullptr) const;
|
|
175
|
+
|
|
176
|
+
/** Writes picture to stream, using optional custom encoders.
|
|
177
|
+
|
|
178
|
+
procs->fPictureProc permits supplying a custom function to encode SkPicture.
|
|
179
|
+
If procs->fPictureProc is nullptr, default encoding is used. procs->fPictureCtx
|
|
180
|
+
may be used to provide user context to procs->fPictureProc; procs->fPictureProc
|
|
181
|
+
is called with a pointer to SkPicture and user context.
|
|
182
|
+
|
|
183
|
+
The default behavior for serializing SkImages is to encode a nullptr. Should
|
|
184
|
+
clients want to, for example, encode these SkImages as PNGs so they can be
|
|
185
|
+
deserialized, they must provide SkSerialProcs with the fImageProc set to do so.
|
|
186
|
+
|
|
187
|
+
@param stream writable serial data stream
|
|
188
|
+
@param procs custom serial data encoders; may be nullptr
|
|
189
|
+
|
|
190
|
+
example: https://fiddle.skia.org/c/@Picture_serialize_2
|
|
191
|
+
*/
|
|
192
|
+
void serialize(SkWStream* stream, const SkSerialProcs* procs = nullptr) const;
|
|
193
|
+
|
|
194
|
+
/** Returns a placeholder SkPicture. Result does not draw, and contains only
|
|
195
|
+
cull SkRect, a hint of its bounds. Result is immutable; it cannot be changed
|
|
196
|
+
later. Result identifier is unique.
|
|
197
|
+
|
|
198
|
+
Returned placeholder can be intercepted during playback to insert other
|
|
199
|
+
commands into SkCanvas draw stream.
|
|
200
|
+
|
|
201
|
+
@param cull placeholder dimensions
|
|
202
|
+
@return placeholder with unique identifier
|
|
203
|
+
|
|
204
|
+
example: https://fiddle.skia.org/c/@Picture_MakePlaceholder
|
|
205
|
+
*/
|
|
206
|
+
static sk_sp<SkPicture> MakePlaceholder(SkRect cull);
|
|
207
|
+
|
|
208
|
+
/** Returns the approximate number of operations in SkPicture. Returned value
|
|
209
|
+
may be greater or less than the number of SkCanvas calls
|
|
210
|
+
recorded: some calls may be recorded as more than one operation, other
|
|
211
|
+
calls may be optimized away.
|
|
212
|
+
|
|
213
|
+
@param nested if true, include the op-counts of nested pictures as well, else
|
|
214
|
+
just return count the ops in the top-level picture.
|
|
215
|
+
@return approximate operation count
|
|
216
|
+
|
|
217
|
+
example: https://fiddle.skia.org/c/@Picture_approximateOpCount
|
|
218
|
+
*/
|
|
219
|
+
virtual int approximateOpCount(bool nested = false) const = 0;
|
|
220
|
+
|
|
221
|
+
/** Returns the approximate byte size of SkPicture. Does not include large objects
|
|
222
|
+
referenced by SkPicture.
|
|
223
|
+
|
|
224
|
+
@return approximate size
|
|
225
|
+
|
|
226
|
+
example: https://fiddle.skia.org/c/@Picture_approximateBytesUsed
|
|
227
|
+
*/
|
|
228
|
+
virtual size_t approximateBytesUsed() const = 0;
|
|
229
|
+
|
|
230
|
+
/** Return a new shader that will draw with this picture.
|
|
231
|
+
*
|
|
232
|
+
* @param tmx The tiling mode to use when sampling in the x-direction.
|
|
233
|
+
* @param tmy The tiling mode to use when sampling in the y-direction.
|
|
234
|
+
* @param mode How to filter the tiles
|
|
235
|
+
* @param localMatrix Optional matrix used when sampling
|
|
236
|
+
* @param tileRect The tile rectangle in picture coordinates: this represents the subset
|
|
237
|
+
* (or superset) of the picture used when building a tile. It is not
|
|
238
|
+
* affected by localMatrix and does not imply scaling (only translation
|
|
239
|
+
* and cropping). If null, the tile rect is considered equal to the picture
|
|
240
|
+
* bounds.
|
|
241
|
+
* @return Returns a new shader object. Note: this function never returns null.
|
|
242
|
+
*/
|
|
243
|
+
sk_sp<SkShader> makeShader(SkTileMode tmx, SkTileMode tmy, SkFilterMode mode,
|
|
244
|
+
const SkMatrix* localMatrix, const SkRect* tileRect) const;
|
|
245
|
+
|
|
246
|
+
sk_sp<SkShader> makeShader(SkTileMode tmx, SkTileMode tmy, SkFilterMode mode) const {
|
|
247
|
+
return this->makeShader(tmx, tmy, mode, nullptr, nullptr);
|
|
248
|
+
}
|
|
249
|
+
|
|
250
|
+
private:
|
|
251
|
+
// Allowed subclasses.
|
|
252
|
+
SkPicture();
|
|
253
|
+
friend class SkBigPicture;
|
|
254
|
+
friend class SkEmptyPicture;
|
|
255
|
+
friend class SkPicturePriv;
|
|
256
|
+
|
|
257
|
+
void serialize(SkWStream*, const SkSerialProcs*, class SkRefCntSet* typefaces,
|
|
258
|
+
bool textBlobsOnly=false) const;
|
|
259
|
+
static sk_sp<SkPicture> MakeFromStreamPriv(SkStream*, const SkDeserialProcs*,
|
|
260
|
+
class SkTypefacePlayback*,
|
|
261
|
+
int recursionLimit);
|
|
262
|
+
friend class SkPictureData;
|
|
263
|
+
|
|
264
|
+
/** Return true if the SkStream/Buffer represents a serialized picture, and
|
|
265
|
+
fills out SkPictInfo. After this function returns, the data source is not
|
|
266
|
+
rewound so it will have to be manually reset before passing to
|
|
267
|
+
MakeFromStream or MakeFromBuffer. Note, MakeFromStream and
|
|
268
|
+
MakeFromBuffer perform this check internally so these entry points are
|
|
269
|
+
intended for stand alone tools.
|
|
270
|
+
If false is returned, SkPictInfo is unmodified.
|
|
271
|
+
*/
|
|
272
|
+
static bool StreamIsSKP(SkStream*, struct SkPictInfo*);
|
|
273
|
+
static bool BufferIsSKP(class SkReadBuffer*, struct SkPictInfo*);
|
|
274
|
+
friend bool SkPicture_StreamIsSKP(SkStream*, struct SkPictInfo*);
|
|
275
|
+
|
|
276
|
+
// Returns NULL if this is not an SkBigPicture.
|
|
277
|
+
virtual const class SkBigPicture* asSkBigPicture() const { return nullptr; }
|
|
278
|
+
|
|
279
|
+
static bool IsValidPictInfo(const struct SkPictInfo& info);
|
|
280
|
+
static sk_sp<SkPicture> Forwardport(const struct SkPictInfo&,
|
|
281
|
+
const class SkPictureData*,
|
|
282
|
+
class SkReadBuffer* buffer);
|
|
283
|
+
|
|
284
|
+
struct SkPictInfo createHeader() const;
|
|
285
|
+
class SkPictureData* backport() const;
|
|
286
|
+
|
|
287
|
+
uint32_t fUniqueID;
|
|
288
|
+
mutable std::atomic<bool> fAddedToCache{false};
|
|
289
|
+
};
|
|
290
|
+
|
|
291
|
+
#endif
|