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,355 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright 2021 Google LLC
|
|
3
|
+
*
|
|
4
|
+
* Use of this source code is governed by a BSD-style license that can be
|
|
5
|
+
* found in the LICENSE file.
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
#ifndef skgpu_graphite_Recorder_DEFINED
|
|
9
|
+
#define skgpu_graphite_Recorder_DEFINED
|
|
10
|
+
|
|
11
|
+
#include "include/core/SkCPURecorder.h"
|
|
12
|
+
#include "include/core/SkRecorder.h"
|
|
13
|
+
#include "include/core/SkRefCnt.h"
|
|
14
|
+
#include "include/core/SkSurface.h"
|
|
15
|
+
#include "include/gpu/graphite/GraphiteTypes.h"
|
|
16
|
+
#include "include/gpu/graphite/Recording.h"
|
|
17
|
+
#include "include/private/SingleOwner.h"
|
|
18
|
+
#include "include/private/SkAPI.h"
|
|
19
|
+
#include "include/private/SkTArray.h"
|
|
20
|
+
|
|
21
|
+
#include <chrono>
|
|
22
|
+
#include <cstddef>
|
|
23
|
+
#include <cstdint>
|
|
24
|
+
#include <memory>
|
|
25
|
+
#include <optional>
|
|
26
|
+
|
|
27
|
+
class SkCanvas;
|
|
28
|
+
class SkPixmap;
|
|
29
|
+
class SkTraceMemoryDump;
|
|
30
|
+
struct SkISize;
|
|
31
|
+
struct SkImageInfo;
|
|
32
|
+
|
|
33
|
+
#if defined(SK_BUILD_FOR_ANDROID)
|
|
34
|
+
struct AHardwareBuffer;
|
|
35
|
+
#endif
|
|
36
|
+
|
|
37
|
+
namespace skgpu {
|
|
38
|
+
enum class BackendApi : unsigned int;
|
|
39
|
+
class RefCntedCallback;
|
|
40
|
+
class TokenTracker;
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
namespace sktext::gpu {
|
|
44
|
+
class StrikeCache;
|
|
45
|
+
class TextBlobRedrawCoordinator;
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
namespace skgpu::graphite {
|
|
49
|
+
|
|
50
|
+
class AtlasProvider;
|
|
51
|
+
class BackendTexture;
|
|
52
|
+
class Context;
|
|
53
|
+
class Device;
|
|
54
|
+
class DrawBufferManager;
|
|
55
|
+
class StorageBufferManager;
|
|
56
|
+
class ImageProvider;
|
|
57
|
+
class PaintParamsKeyBuilder;
|
|
58
|
+
class PipelineDataGatherer;
|
|
59
|
+
class ProxyReadCountMap;
|
|
60
|
+
class RecorderPriv;
|
|
61
|
+
class ResourceProvider;
|
|
62
|
+
class RuntimeEffectDictionary;
|
|
63
|
+
class SharedContext;
|
|
64
|
+
class TaskList;
|
|
65
|
+
class TextureInfo;
|
|
66
|
+
class UploadBufferManager;
|
|
67
|
+
class UploadList;
|
|
68
|
+
|
|
69
|
+
struct RecorderOptionsPriv;
|
|
70
|
+
|
|
71
|
+
using KeyAndDataBuilder = std::pair<PipelineDataGatherer, PaintParamsKeyBuilder>;
|
|
72
|
+
|
|
73
|
+
struct SK_API RecorderOptions final {
|
|
74
|
+
RecorderOptions();
|
|
75
|
+
RecorderOptions(const RecorderOptions&);
|
|
76
|
+
~RecorderOptions();
|
|
77
|
+
|
|
78
|
+
sk_sp<ImageProvider> fImageProvider;
|
|
79
|
+
|
|
80
|
+
static constexpr size_t kDefaultRecorderBudget = 256 * (1 << 20);
|
|
81
|
+
// What is the budget for GPU resources allocated and held by this Recorder.
|
|
82
|
+
size_t fGpuBudgetInBytes = kDefaultRecorderBudget;
|
|
83
|
+
// If Recordings are known to be played back in the order they are recorded, then Graphite
|
|
84
|
+
// may be able to make certain assumptions that improve performance. This is often the case
|
|
85
|
+
// if the content being drawn triggers the use of internal atlasing in Graphite (e.g. text).
|
|
86
|
+
std::optional<bool> fRequireOrderedRecordings;
|
|
87
|
+
|
|
88
|
+
// Private options that are only meant for testing within Skia's tools.
|
|
89
|
+
RecorderOptionsPriv* fRecorderOptionsPriv = nullptr;
|
|
90
|
+
};
|
|
91
|
+
|
|
92
|
+
class SK_API Recorder final : public SkRecorder {
|
|
93
|
+
public:
|
|
94
|
+
Recorder(const Recorder&) = delete;
|
|
95
|
+
Recorder(Recorder&&) = delete;
|
|
96
|
+
Recorder& operator=(const Recorder&) = delete;
|
|
97
|
+
Recorder& operator=(Recorder&&) = delete;
|
|
98
|
+
|
|
99
|
+
~Recorder() override;
|
|
100
|
+
|
|
101
|
+
BackendApi backend() const;
|
|
102
|
+
|
|
103
|
+
Type type() const override { return SkRecorder::Type::kGraphite; }
|
|
104
|
+
skcpu::Recorder* cpuRecorder() override;
|
|
105
|
+
|
|
106
|
+
std::unique_ptr<Recording> snap();
|
|
107
|
+
|
|
108
|
+
ImageProvider* clientImageProvider() { return fClientImageProvider.get(); }
|
|
109
|
+
const ImageProvider* clientImageProvider() const { return fClientImageProvider.get(); }
|
|
110
|
+
|
|
111
|
+
/**
|
|
112
|
+
* Gets the maximum supported texture size.
|
|
113
|
+
*/
|
|
114
|
+
int maxTextureSize() const;
|
|
115
|
+
|
|
116
|
+
/**
|
|
117
|
+
* Creates a new backend gpu texture matching the dimensions and TextureInfo. If an invalid
|
|
118
|
+
* TextureInfo or a TextureInfo Skia can't support is passed in, this will return an invalid
|
|
119
|
+
* BackendTexture. Thus the client should check isValid on the returned BackendTexture to know
|
|
120
|
+
* if it succeeded or not.
|
|
121
|
+
*
|
|
122
|
+
* If this does return a valid BackendTexture, the caller is required to use
|
|
123
|
+
* Recorder::deleteBackendTexture or Context::deleteBackendTexture to delete the texture. It is
|
|
124
|
+
* safe to use the Context that created this Recorder or any other Recorder created from the
|
|
125
|
+
* same Context to call deleteBackendTexture.
|
|
126
|
+
*/
|
|
127
|
+
BackendTexture createBackendTexture(SkISize dimensions, const TextureInfo&);
|
|
128
|
+
|
|
129
|
+
#ifdef SK_BUILD_FOR_ANDROID
|
|
130
|
+
BackendTexture createBackendTexture(AHardwareBuffer*,
|
|
131
|
+
bool isRenderable,
|
|
132
|
+
bool isProtectedContent,
|
|
133
|
+
SkISize dimensions,
|
|
134
|
+
bool fromAndroidWindow = false) const;
|
|
135
|
+
#endif
|
|
136
|
+
|
|
137
|
+
/**
|
|
138
|
+
* If possible, updates a backend texture with the provided pixmap data. The client
|
|
139
|
+
* should check the return value to see if the update was successful. The client is required
|
|
140
|
+
* to insert a Recording into the Context and call `submit` to send the upload work to the gpu.
|
|
141
|
+
* The backend texture must be compatible with the provided pixmap(s). Compatible, in this case,
|
|
142
|
+
* means that the backend format is compatible with the base pixmap's colortype. The src data
|
|
143
|
+
* can be deleted when this call returns. When the BackendTexture is safe to be destroyed by the
|
|
144
|
+
* client, Skia will call the passed in GpuFinishedProc. The BackendTexture should not be
|
|
145
|
+
* destroyed before that.
|
|
146
|
+
* If the backend texture is mip mapped, the data for all the mipmap levels must be provided.
|
|
147
|
+
* In the mipmapped case all the colortypes of the provided pixmaps must be the same.
|
|
148
|
+
* Additionally, all the miplevels must be sized correctly (please see
|
|
149
|
+
* SkMipmap::ComputeLevelSize and ComputeLevelCount).
|
|
150
|
+
* Note: the pixmap's alphatypes and colorspaces are ignored.
|
|
151
|
+
* For the Vulkan backend after a successful update the layout of the created VkImage will be:
|
|
152
|
+
* VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL
|
|
153
|
+
*/
|
|
154
|
+
bool updateBackendTexture(const BackendTexture&,
|
|
155
|
+
const SkPixmap srcData[],
|
|
156
|
+
int numLevels,
|
|
157
|
+
GpuFinishedProc = nullptr,
|
|
158
|
+
GpuFinishedContext = nullptr);
|
|
159
|
+
|
|
160
|
+
/**
|
|
161
|
+
* If possible, updates a compressed backend texture filled with the provided raw data. The
|
|
162
|
+
* client should check the return value to see if the update was successful. The client is
|
|
163
|
+
* required to insert a Recording into the Context and call `submit` to send the upload work to
|
|
164
|
+
* the gpu. When the BackendTexture is safe to be destroyed by the client, Skia will call the
|
|
165
|
+
* passed in GpuFinishedProc. The BackendTexture should not be destroyed before that.
|
|
166
|
+
* If the backend texture is mip mapped, the data for all the mipmap levels must be provided.
|
|
167
|
+
* Additionally, all the miplevels must be sized correctly (please see
|
|
168
|
+
* SkMipMap::ComputeLevelSize and ComputeLevelCount).
|
|
169
|
+
* For the Vulkan backend after a successful update the layout of the created VkImage will be:
|
|
170
|
+
* VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL
|
|
171
|
+
*/
|
|
172
|
+
bool updateCompressedBackendTexture(const BackendTexture&,
|
|
173
|
+
const void* data,
|
|
174
|
+
size_t dataSize,
|
|
175
|
+
GpuFinishedProc = nullptr,
|
|
176
|
+
GpuFinishedContext = nullptr);
|
|
177
|
+
|
|
178
|
+
/**
|
|
179
|
+
* Called to delete the passed in BackendTexture. This should only be called if the
|
|
180
|
+
* BackendTexture was created by calling Recorder::createBackendTexture on a Recorder that is
|
|
181
|
+
* associated with the same Context. If the BackendTexture is not valid or does not match the
|
|
182
|
+
* BackendApi of the Recorder then nothing happens.
|
|
183
|
+
*
|
|
184
|
+
* Otherwise this will delete/release the backend object that is wrapped in the BackendTexture.
|
|
185
|
+
* The BackendTexture will be reset to an invalid state and should not be used again.
|
|
186
|
+
*/
|
|
187
|
+
void deleteBackendTexture(const BackendTexture&);
|
|
188
|
+
|
|
189
|
+
// Adds a proc that will be moved to the Recording upon snap, subsequently attached to the
|
|
190
|
+
// CommandBuffer when the Recording is added, and called when that CommandBuffer is submitted
|
|
191
|
+
// and finishes. If the Recorder or Recording is deleted before the proc is added to the
|
|
192
|
+
// CommandBuffer, it will be called with result Failure.
|
|
193
|
+
void addFinishInfo(const InsertFinishInfo&);
|
|
194
|
+
|
|
195
|
+
// Returns a canvas that will record to a proxy surface, which must be instantiated on replay.
|
|
196
|
+
// This can only be called once per Recording; subsequent calls will return null until a
|
|
197
|
+
// Recording is snapped. Additionally, the returned SkCanvas is only valid until the next
|
|
198
|
+
// Recording snap, at which point it is deleted.
|
|
199
|
+
SkCanvas* makeDeferredCanvas(const SkImageInfo&, const TextureInfo&);
|
|
200
|
+
|
|
201
|
+
/**
|
|
202
|
+
* Frees GPU resources created and held by the Recorder. Can be called to reduce GPU memory
|
|
203
|
+
* pressure. Any resources that are still in use (e.g. being used by work submitted to the GPU)
|
|
204
|
+
* will not be deleted by this call. If the caller wants to make sure all resources are freed,
|
|
205
|
+
* then they should first make sure to submit and wait on any outstanding work.
|
|
206
|
+
*/
|
|
207
|
+
void freeGpuResources();
|
|
208
|
+
|
|
209
|
+
/**
|
|
210
|
+
* Purge GPU resources on the Recorder that haven't been used in the past 'msNotUsed'
|
|
211
|
+
* milliseconds or are otherwise marked for deletion, regardless of whether the context is under
|
|
212
|
+
* budget. Optionally provide a `microsMaxPurgingDur` after which Skia should stop purging
|
|
213
|
+
* resources.
|
|
214
|
+
*/
|
|
215
|
+
void performDeferredCleanup(
|
|
216
|
+
std::chrono::milliseconds msNotUsed,
|
|
217
|
+
std::optional<std::chrono::microseconds> microsMaxPurgingDur = std::nullopt);
|
|
218
|
+
|
|
219
|
+
/**
|
|
220
|
+
* Returns the number of bytes of the Recorder's gpu memory cache budget that are currently in
|
|
221
|
+
* use.
|
|
222
|
+
*/
|
|
223
|
+
size_t currentBudgetedBytes() const;
|
|
224
|
+
|
|
225
|
+
/**
|
|
226
|
+
* Returns the number of bytes of the Recorder's resource cache that are currently purgeable.
|
|
227
|
+
*/
|
|
228
|
+
size_t currentPurgeableBytes() const;
|
|
229
|
+
|
|
230
|
+
/**
|
|
231
|
+
* Returns the size of Recorder's gpu memory cache budget in bytes.
|
|
232
|
+
*/
|
|
233
|
+
size_t maxBudgetedBytes() const;
|
|
234
|
+
|
|
235
|
+
/**
|
|
236
|
+
* Sets the size of Recorders's gpu memory cache budget in bytes. If the new budget is lower
|
|
237
|
+
* than the current budget, the cache will try to free resources to get under the new budget.
|
|
238
|
+
*/
|
|
239
|
+
void setMaxBudgetedBytes(size_t bytes);
|
|
240
|
+
|
|
241
|
+
/**
|
|
242
|
+
* Enumerates all cached GPU resources owned by the Recorder and dumps their memory to
|
|
243
|
+
* traceMemoryDump.
|
|
244
|
+
*/
|
|
245
|
+
void dumpMemoryStatistics(SkTraceMemoryDump* traceMemoryDump) const;
|
|
246
|
+
|
|
247
|
+
// Provides access to functions that aren't part of the public API.
|
|
248
|
+
RecorderPriv priv();
|
|
249
|
+
const RecorderPriv priv() const; // NOLINT(readability-const-return-type)
|
|
250
|
+
|
|
251
|
+
private:
|
|
252
|
+
static constexpr int kMaxKeyAndDataBuilders = 2;
|
|
253
|
+
|
|
254
|
+
friend class Context; // For ctor
|
|
255
|
+
friend class Device; // For registering and deregistering Devices;
|
|
256
|
+
friend class RecorderPriv; // for ctor and hidden methods
|
|
257
|
+
|
|
258
|
+
// If Context is non-null, the Recorder will use the Context's resource provider
|
|
259
|
+
// instead of creating its own.
|
|
260
|
+
Recorder(sk_sp<SharedContext>, const RecorderOptions&, const Context*);
|
|
261
|
+
|
|
262
|
+
SingleOwner* singleOwner() const { return &fSingleOwner; }
|
|
263
|
+
|
|
264
|
+
// We keep track of all Devices that are connected to a Recorder. This allows the client to
|
|
265
|
+
// safely delete an SkSurface or a Recorder in any order. If the client deletes the Recorder
|
|
266
|
+
// we need to notify all Devices that the Recorder is no longer valid. If we delete the
|
|
267
|
+
// SkSurface/Device first we will flush all the Device's into the Recorder before deregistering
|
|
268
|
+
// it from the Recorder.
|
|
269
|
+
//
|
|
270
|
+
// We take a ref on the Device so that ~Device() does not have to deregister the recorder
|
|
271
|
+
// (which can happen on any thread if the Device outlives the Surface via an Image view).
|
|
272
|
+
// Recorder::flushTrackedDevices() cleans up uniquely held and immutable Devices on the recorder
|
|
273
|
+
// thread so this extra ref is not significantly increasing the Device lifetime.
|
|
274
|
+
//
|
|
275
|
+
// Note: We could probably get by with only registering Devices directly connected to
|
|
276
|
+
// SkSurfaces. All other one off Devices will be created in a controlled scope where the
|
|
277
|
+
// Recorder should still be valid by the time they need to flush their work when the Device is
|
|
278
|
+
// deleted. We would have to make sure we safely handle cases where a client calls saveLayer
|
|
279
|
+
// then either deletes the SkSurface or Recorder before calling restore. For simplicity we just
|
|
280
|
+
// register every device for now, but if we see extra overhead in pushing back the extra
|
|
281
|
+
// pointers, we can look into only registering SkSurface Devices.
|
|
282
|
+
void registerDevice(sk_sp<Device>);
|
|
283
|
+
void deregisterDevice(const Device*);
|
|
284
|
+
|
|
285
|
+
SkCanvas* makeCaptureCanvas(SkCanvas*) override;
|
|
286
|
+
void createCaptureBreakpoint(SkSurface*) override;
|
|
287
|
+
|
|
288
|
+
sk_sp<SharedContext> fSharedContext;
|
|
289
|
+
ResourceProvider* fResourceProvider; // May point to the Context's resource provider
|
|
290
|
+
std::unique_ptr<ResourceProvider> fOwnedResourceProvider; // May be null
|
|
291
|
+
|
|
292
|
+
sk_sp<RuntimeEffectDictionary> fRuntimeEffectDict;
|
|
293
|
+
|
|
294
|
+
// NOTE: These are stored by pointer to allow them to be forward declared.
|
|
295
|
+
std::unique_ptr<TaskList> fRootTaskList;
|
|
296
|
+
// Aggregated one-time uploads that precede all tasks in the root task list.
|
|
297
|
+
std::unique_ptr<UploadList> fRootUploads;
|
|
298
|
+
|
|
299
|
+
std::unique_ptr<UploadBufferManager> fUploadBufferManager;
|
|
300
|
+
// Depends on fUploadBufferManager (holds a pointer to it). Must be destroyed first.
|
|
301
|
+
std::unique_ptr<DrawBufferManager> fDrawBufferManager;
|
|
302
|
+
sk_sp<StorageBufferManager> fStorageBufferManager;
|
|
303
|
+
std::unique_ptr<ProxyReadCountMap> fProxyReadCounts;
|
|
304
|
+
|
|
305
|
+
skia_private::STArray<kMaxKeyAndDataBuilders, std::unique_ptr<KeyAndDataBuilder>>
|
|
306
|
+
fKeyAndDataBuilders;
|
|
307
|
+
|
|
308
|
+
// Iterating over tracked devices in flushTrackedDevices() needs to be re-entrant and support
|
|
309
|
+
// additions to fTrackedDevices if registerDevice() is triggered by a temporary device during
|
|
310
|
+
// flushing. Removals are handled by setting elements to null; final clean up is handled at the
|
|
311
|
+
// end of the initial call to flushTrackedDevices().
|
|
312
|
+
skia_private::TArray<sk_sp<Device>> fTrackedDevices;
|
|
313
|
+
int fFlushingDevicesIndex = -1;
|
|
314
|
+
|
|
315
|
+
uint32_t fUniqueID; // Needed for MessageBox handling for text
|
|
316
|
+
uint32_t fNextRecordingID = 1;
|
|
317
|
+
const bool fRequireOrderedRecordings;
|
|
318
|
+
|
|
319
|
+
std::unique_ptr<AtlasProvider> fAtlasProvider;
|
|
320
|
+
std::unique_ptr<TokenTracker> fTokenTracker;
|
|
321
|
+
std::unique_ptr<sktext::gpu::StrikeCache> fStrikeCache;
|
|
322
|
+
std::unique_ptr<sktext::gpu::TextBlobRedrawCoordinator> fTextBlobCache;
|
|
323
|
+
sk_sp<ImageProvider> fClientImageProvider;
|
|
324
|
+
|
|
325
|
+
// In debug builds we guard against improper thread handling
|
|
326
|
+
// This guard is passed to the ResourceCache.
|
|
327
|
+
// TODO: Should we also pass this to Device, DrawContext, and similar classes?
|
|
328
|
+
mutable SingleOwner fSingleOwner;
|
|
329
|
+
|
|
330
|
+
sk_sp<Device> fTargetProxyDevice;
|
|
331
|
+
std::unique_ptr<SkCanvas> fTargetProxyCanvas;
|
|
332
|
+
std::unique_ptr<Recording::LazyProxyData> fTargetProxyData;
|
|
333
|
+
|
|
334
|
+
skia_private::TArray<sk_sp<RefCntedCallback>> fFinishedProcs;
|
|
335
|
+
|
|
336
|
+
// Tracks the flushing state to ensure recursive flushing does not occur.
|
|
337
|
+
SkDEBUGCODE(bool fIsFlushingTrackedDevices = false;)
|
|
338
|
+
|
|
339
|
+
#if defined(GPU_TEST_UTILS)
|
|
340
|
+
// For testing use only -- the Context used to create this Recorder
|
|
341
|
+
Context* fContext = nullptr;
|
|
342
|
+
#endif
|
|
343
|
+
|
|
344
|
+
#if defined(SK_DUMP_TASKS)
|
|
345
|
+
// Traverses and dumps the task list at Recorder::snap()
|
|
346
|
+
void dumpTasks(TaskList*) const;
|
|
347
|
+
|
|
348
|
+
// Log of all callers of RecorderPriv::flushTrackedDevices
|
|
349
|
+
SkTDArray<const char*> fFlushSources;
|
|
350
|
+
#endif
|
|
351
|
+
};
|
|
352
|
+
|
|
353
|
+
} // namespace skgpu::graphite
|
|
354
|
+
|
|
355
|
+
#endif // skgpu_graphite_Recorder_DEFINED
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright 2021 Google LLC
|
|
3
|
+
*
|
|
4
|
+
* Use of this source code is governed by a BSD-style license that can be
|
|
5
|
+
* found in the LICENSE file.
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
#ifndef skgpu_graphite_Recording_DEFINED
|
|
9
|
+
#define skgpu_graphite_Recording_DEFINED
|
|
10
|
+
|
|
11
|
+
#include "include/core/SkRefCnt.h"
|
|
12
|
+
#include "include/private/SkAPI.h"
|
|
13
|
+
#include "include/private/SkTArray.h"
|
|
14
|
+
#include <cstddef>
|
|
15
|
+
#include <cstdint>
|
|
16
|
+
#include <memory>
|
|
17
|
+
#include <unordered_set>
|
|
18
|
+
#include <vector>
|
|
19
|
+
|
|
20
|
+
struct SkISize;
|
|
21
|
+
|
|
22
|
+
namespace skgpu {
|
|
23
|
+
class RefCntedCallback;
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
namespace skgpu::graphite {
|
|
27
|
+
|
|
28
|
+
class Caps;
|
|
29
|
+
class CommandBuffer;
|
|
30
|
+
class RecordingPriv;
|
|
31
|
+
class Resource;
|
|
32
|
+
class ResourceProvider;
|
|
33
|
+
class TaskList;
|
|
34
|
+
class Texture;
|
|
35
|
+
class TextureInfo;
|
|
36
|
+
class TextureProxy;
|
|
37
|
+
|
|
38
|
+
class SK_API Recording final {
|
|
39
|
+
public:
|
|
40
|
+
~Recording();
|
|
41
|
+
|
|
42
|
+
RecordingPriv priv();
|
|
43
|
+
|
|
44
|
+
private:
|
|
45
|
+
friend class Recorder; // for ctor and LazyProxyData
|
|
46
|
+
friend class RecordingPriv;
|
|
47
|
+
|
|
48
|
+
// LazyProxyData is used if this recording should be replayed to a target that is provided on
|
|
49
|
+
// replay, and it handles the target proxy's instantiation with the provided target.
|
|
50
|
+
class LazyProxyData {
|
|
51
|
+
public:
|
|
52
|
+
LazyProxyData(const Caps*, SkISize dimensions, const TextureInfo&);
|
|
53
|
+
~LazyProxyData();
|
|
54
|
+
|
|
55
|
+
TextureProxy* lazyProxy();
|
|
56
|
+
sk_sp<TextureProxy> refLazyProxy();
|
|
57
|
+
|
|
58
|
+
bool lazyInstantiate(ResourceProvider*, sk_sp<Texture>);
|
|
59
|
+
|
|
60
|
+
private:
|
|
61
|
+
sk_sp<Texture> fTarget;
|
|
62
|
+
sk_sp<TextureProxy> fTargetProxy;
|
|
63
|
+
};
|
|
64
|
+
|
|
65
|
+
struct ProxyHash {
|
|
66
|
+
std::size_t operator()(const sk_sp<TextureProxy>& proxy) const;
|
|
67
|
+
};
|
|
68
|
+
|
|
69
|
+
Recording(uint32_t uniqueID,
|
|
70
|
+
uint32_t recorderID,
|
|
71
|
+
std::unique_ptr<LazyProxyData> targetProxyData,
|
|
72
|
+
skia_private::TArray<sk_sp<RefCntedCallback>>&& finishedProcs);
|
|
73
|
+
|
|
74
|
+
void addResourceRef(sk_sp<Resource>);
|
|
75
|
+
|
|
76
|
+
// Used to verify ordering if recorder ID is not SK_InvalidGenID
|
|
77
|
+
uint32_t fUniqueID;
|
|
78
|
+
uint32_t fRecorderID;
|
|
79
|
+
|
|
80
|
+
// We don't always take refs to all resources used by specific Tasks (e.g. a common buffer used
|
|
81
|
+
// for uploads). Instead we'll just hold onto one ref for those Resources outside the Tasks.
|
|
82
|
+
// Those refs are stored in the array here and will eventually be passed onto a CommandBuffer
|
|
83
|
+
// when the Recording adds its commands.
|
|
84
|
+
std::vector<sk_sp<Resource>> fExtraResourceRefs;
|
|
85
|
+
|
|
86
|
+
// This is held by a pointer instead of being inline to allow TaskList to be forward declared.
|
|
87
|
+
// Depends on fExtraResourceRefs (tasks reference resources). Must be destroyed first.
|
|
88
|
+
std::unique_ptr<TaskList> fRootTaskList;
|
|
89
|
+
|
|
90
|
+
std::unordered_set<sk_sp<TextureProxy>, ProxyHash> fNonVolatileLazyProxies;
|
|
91
|
+
std::unordered_set<sk_sp<TextureProxy>, ProxyHash> fVolatileLazyProxies;
|
|
92
|
+
|
|
93
|
+
std::unique_ptr<LazyProxyData> fTargetProxyData;
|
|
94
|
+
|
|
95
|
+
skia_private::TArray<sk_sp<RefCntedCallback>> fFinishedProcs;
|
|
96
|
+
};
|
|
97
|
+
|
|
98
|
+
} // namespace skgpu::graphite
|
|
99
|
+
|
|
100
|
+
#endif // skgpu_graphite_Recording_DEFINED
|
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright 2023 Google LLC
|
|
3
|
+
*
|
|
4
|
+
* Use of this source code is governed by a BSD-style license that can be
|
|
5
|
+
* found in the LICENSE file.
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
#ifndef skgpu_graphite_Surface_DEFINED
|
|
9
|
+
#define skgpu_graphite_Surface_DEFINED
|
|
10
|
+
|
|
11
|
+
#include "include/core/SkRefCnt.h"
|
|
12
|
+
#include "include/core/SkSurface.h"
|
|
13
|
+
#include "include/gpu/GpuTypes.h"
|
|
14
|
+
|
|
15
|
+
#include <string_view>
|
|
16
|
+
|
|
17
|
+
class SkImage;
|
|
18
|
+
struct SkImageInfo;
|
|
19
|
+
|
|
20
|
+
namespace skgpu::graphite {
|
|
21
|
+
class BackendTexture;
|
|
22
|
+
class Recorder;
|
|
23
|
+
} // namespace skgpu::graphite
|
|
24
|
+
|
|
25
|
+
namespace SkSurfaces {
|
|
26
|
+
using ReleaseContext = void*;
|
|
27
|
+
using TextureReleaseProc = void (*)(ReleaseContext);
|
|
28
|
+
|
|
29
|
+
/**
|
|
30
|
+
* The 'AsImage' and 'AsImageCopy' API/entry points are currently only available for
|
|
31
|
+
* Graphite.
|
|
32
|
+
*
|
|
33
|
+
* In this API, SkSurface no longer supports copy-on-write behavior. Instead, when creating
|
|
34
|
+
* an image for a surface, the client must explicitly indicate if a copy should be made.
|
|
35
|
+
* In both of the below calls the resource backing the surface will never change.
|
|
36
|
+
*
|
|
37
|
+
* The 'AsImage' entry point has some major ramifications for the mutability of the
|
|
38
|
+
* returned SkImage. Since the originating surface and the returned image share the
|
|
39
|
+
* same backing, care must be taken by the client to ensure that the contents of the image
|
|
40
|
+
* reflect the desired contents when it is consumed by the gpu.
|
|
41
|
+
* Note: if the backing GPU buffer isn't textureable this method will return null. Graphite
|
|
42
|
+
* will not attempt to make a copy.
|
|
43
|
+
* Note: For 'AsImage', the mipmapping of the image will match that of the source surface.
|
|
44
|
+
*
|
|
45
|
+
* The 'AsImageCopy' entry point allows subsetting and the addition of mipmaps (since
|
|
46
|
+
* a copy is already being made).
|
|
47
|
+
*
|
|
48
|
+
* In Graphite, the legacy API call (i.e., makeImageSnapshot) will just always make a copy.
|
|
49
|
+
*/
|
|
50
|
+
SK_API sk_sp<SkImage> AsImage(sk_sp<const SkSurface>);
|
|
51
|
+
SK_API sk_sp<SkImage> AsImageCopy(sk_sp<const SkSurface>,
|
|
52
|
+
const SkIRect* subset = nullptr,
|
|
53
|
+
skgpu::Mipmapped = skgpu::Mipmapped::kNo);
|
|
54
|
+
|
|
55
|
+
/**
|
|
56
|
+
* In Graphite, while clients hold a ref on an SkSurface, the backing gpu object does _not_
|
|
57
|
+
* count against the budget. Once an SkSurface is freed, the backing gpu object may or may
|
|
58
|
+
* not become a scratch (i.e., reusable) resource but, if it does, it will be counted against
|
|
59
|
+
* the budget.
|
|
60
|
+
*/
|
|
61
|
+
SK_API sk_sp<SkSurface> RenderTarget(skgpu::graphite::Recorder*,
|
|
62
|
+
const SkImageInfo& imageInfo,
|
|
63
|
+
skgpu::Mipmapped = skgpu::Mipmapped::kNo,
|
|
64
|
+
const SkSurfaceProps* surfaceProps = nullptr,
|
|
65
|
+
std::string_view label = {});
|
|
66
|
+
|
|
67
|
+
/**
|
|
68
|
+
* Wraps a GPU-backed texture in an SkSurface. Depending on the backend gpu API, the caller may
|
|
69
|
+
* be required to ensure the texture is valid for the lifetime of the returned SkSurface. The
|
|
70
|
+
* required lifetimes for the specific apis are:
|
|
71
|
+
* Metal: Skia will call retain on the underlying MTLTexture so the caller can drop it once
|
|
72
|
+
* this call returns.
|
|
73
|
+
*
|
|
74
|
+
* SkSurface is returned if all the parameters are valid. The backendTexture is valid if its
|
|
75
|
+
* format agrees with colorSpace and recorder; for instance, if backendTexture has an sRGB
|
|
76
|
+
* configuration, then the recorder must support sRGB, and colorSpace must be present. Further,
|
|
77
|
+
* backendTexture's width and height must not exceed the recorder's capabilities, and the
|
|
78
|
+
* recorder must be able to support the back-end texture.
|
|
79
|
+
*
|
|
80
|
+
* DEPRECATED: Use WrapBackendTexture that does not take a `colorType`.
|
|
81
|
+
*/
|
|
82
|
+
SK_API sk_sp<SkSurface> WrapBackendTexture(skgpu::graphite::Recorder*,
|
|
83
|
+
const skgpu::graphite::BackendTexture&,
|
|
84
|
+
SkColorType colorType,
|
|
85
|
+
sk_sp<SkColorSpace> colorSpace,
|
|
86
|
+
const SkSurfaceProps* props,
|
|
87
|
+
TextureReleaseProc = nullptr,
|
|
88
|
+
ReleaseContext = nullptr,
|
|
89
|
+
std::string_view label = {});
|
|
90
|
+
/**
|
|
91
|
+
* Wraps a GPU-backed texture in an SkSurface. Depending on the backend gpu API, the caller may
|
|
92
|
+
* be required to ensure the texture is valid for the lifetime of the returned SkSurface. The
|
|
93
|
+
* required lifetimes for the specific apis are:
|
|
94
|
+
* Metal: Skia will call retain on the underlying MTLTexture so the caller can drop it once
|
|
95
|
+
* this call returns.
|
|
96
|
+
*
|
|
97
|
+
* SkSurface is returned if all the parameters are valid. The backendTexture is valid if its
|
|
98
|
+
* format and dimensions are supported by the context that created the recorder. The color type
|
|
99
|
+
* reported by the SkSurface's image info is inferred from backend texture's format, matching as
|
|
100
|
+
* closely as possible when a texture format is not representable exactly as an SkColorType. This
|
|
101
|
+
* is fine as the SkColorType represents the data layout were the texture to be read to CPU memory.
|
|
102
|
+
*
|
|
103
|
+
* For single-channel texture formats, the alpha-only SkColorType is selected as that is more
|
|
104
|
+
* consistently defined for data types. The implication of this is that the alpha channel output
|
|
105
|
+
* from fragment shading will be what's stored in the texture, regardless of whether its format was
|
|
106
|
+
* A or R.
|
|
107
|
+
*
|
|
108
|
+
* For other formats and color types, the ambiguities between BGR and RGB channel order are
|
|
109
|
+
* irrelevant for rendering and sampling on the GPU. Those swizzles can reliably be handled by the
|
|
110
|
+
* hardware and there's no semantic change for the related SkColorTypes.
|
|
111
|
+
*/
|
|
112
|
+
SK_API sk_sp<SkSurface> WrapBackendTexture(skgpu::graphite::Recorder*,
|
|
113
|
+
const skgpu::graphite::BackendTexture&,
|
|
114
|
+
sk_sp<SkColorSpace> colorSpace,
|
|
115
|
+
const SkSurfaceProps* props,
|
|
116
|
+
TextureReleaseProc = nullptr,
|
|
117
|
+
ReleaseContext = nullptr,
|
|
118
|
+
std::string_view label = {});
|
|
119
|
+
} // namespace SkSurfaces
|
|
120
|
+
|
|
121
|
+
#endif // skgpu_graphite_Surface_DEFINED
|