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,211 @@
|
|
|
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 GrSurfaceCharacterization_DEFINED
|
|
9
|
+
#define GrSurfaceCharacterization_DEFINED
|
|
10
|
+
|
|
11
|
+
#include "include/core/SkColorSpace.h" // IWYU pragma: keep
|
|
12
|
+
#include "include/core/SkColorType.h"
|
|
13
|
+
#include "include/core/SkImageInfo.h"
|
|
14
|
+
#include "include/core/SkRefCnt.h"
|
|
15
|
+
#include "include/core/SkSize.h"
|
|
16
|
+
#include "include/core/SkSurfaceProps.h"
|
|
17
|
+
#include "include/core/SkTypes.h"
|
|
18
|
+
#include "include/gpu/GpuTypes.h"
|
|
19
|
+
#include "include/gpu/ganesh/GrBackendSurface.h"
|
|
20
|
+
#include "include/gpu/ganesh/GrContextThreadSafeProxy.h"
|
|
21
|
+
#include "include/gpu/ganesh/GrTypes.h"
|
|
22
|
+
#include "include/private/SkDebug.h"
|
|
23
|
+
|
|
24
|
+
#include <cstddef>
|
|
25
|
+
#include <utility>
|
|
26
|
+
|
|
27
|
+
/** \class GrSurfaceCharacterization
|
|
28
|
+
A surface characterization contains all the information Ganesh requires to makes its internal
|
|
29
|
+
rendering decisions. When passed into a GrDeferredDisplayListRecorder it will copy the
|
|
30
|
+
data and pass it on to the GrDeferredDisplayList if/when it is created. Note that both of
|
|
31
|
+
those objects (the Recorder and the DisplayList) will take a ref on the
|
|
32
|
+
GrContextThreadSafeProxy and SkColorSpace objects.
|
|
33
|
+
*/
|
|
34
|
+
class SK_API GrSurfaceCharacterization {
|
|
35
|
+
public:
|
|
36
|
+
enum class Textureable : bool { kNo = false, kYes = true };
|
|
37
|
+
enum class UsesGLFBO0 : bool { kNo = false, kYes = true };
|
|
38
|
+
// This flag indicates that the backing VkImage for this Vulkan surface will have the
|
|
39
|
+
// VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT set. This bit allows skia to handle advanced blends
|
|
40
|
+
// more optimally in a shader by being able to directly read the dst values.
|
|
41
|
+
enum class VkRTSupportsInputAttachment : bool { kNo = false, kYes = true };
|
|
42
|
+
// This flag indicates if the surface is wrapping a raw Vulkan secondary command buffer.
|
|
43
|
+
enum class VulkanSecondaryCBCompatible : bool { kNo = false, kYes = true };
|
|
44
|
+
|
|
45
|
+
GrSurfaceCharacterization()
|
|
46
|
+
: fCacheMaxResourceBytes(0)
|
|
47
|
+
, fOrigin(kBottomLeft_GrSurfaceOrigin)
|
|
48
|
+
, fSampleCnt(0)
|
|
49
|
+
, fIsTextureable(Textureable::kYes)
|
|
50
|
+
, fIsMipmapped(skgpu::Mipmapped::kYes)
|
|
51
|
+
, fUsesGLFBO0(UsesGLFBO0::kNo)
|
|
52
|
+
, fVulkanSecondaryCBCompatible(VulkanSecondaryCBCompatible::kNo)
|
|
53
|
+
, fIsProtected(skgpu::Protected::kNo)
|
|
54
|
+
, fSurfaceProps() {}
|
|
55
|
+
|
|
56
|
+
GrSurfaceCharacterization(GrSurfaceCharacterization&&) = default;
|
|
57
|
+
GrSurfaceCharacterization& operator=(GrSurfaceCharacterization&&) = default;
|
|
58
|
+
|
|
59
|
+
GrSurfaceCharacterization(const GrSurfaceCharacterization&) = default;
|
|
60
|
+
GrSurfaceCharacterization& operator=(const GrSurfaceCharacterization& other) = default;
|
|
61
|
+
bool operator==(const GrSurfaceCharacterization& other) const;
|
|
62
|
+
bool operator!=(const GrSurfaceCharacterization& other) const {
|
|
63
|
+
return !(*this == other);
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
/*
|
|
67
|
+
* Return a new surface characterization with the only difference being a different width
|
|
68
|
+
* and height
|
|
69
|
+
*/
|
|
70
|
+
GrSurfaceCharacterization createResized(int width, int height) const;
|
|
71
|
+
|
|
72
|
+
/*
|
|
73
|
+
* Return a new surface characterization with only a replaced color space
|
|
74
|
+
*/
|
|
75
|
+
GrSurfaceCharacterization createColorSpace(sk_sp<SkColorSpace>) const;
|
|
76
|
+
|
|
77
|
+
/*
|
|
78
|
+
* Return a new surface characterization with the backend format replaced. A colorType
|
|
79
|
+
* must also be supplied to indicate the interpretation of the new format.
|
|
80
|
+
*/
|
|
81
|
+
GrSurfaceCharacterization createBackendFormat(SkColorType colorType,
|
|
82
|
+
const GrBackendFormat& backendFormat) const;
|
|
83
|
+
|
|
84
|
+
/*
|
|
85
|
+
* Return a new surface characterization with just a different use of FBO0 (in GL)
|
|
86
|
+
*/
|
|
87
|
+
GrSurfaceCharacterization createFBO0(bool usesGLFBO0) const;
|
|
88
|
+
|
|
89
|
+
GrContextThreadSafeProxy* contextInfo() const { return fContextInfo.get(); }
|
|
90
|
+
sk_sp<GrContextThreadSafeProxy> refContextInfo() const { return fContextInfo; }
|
|
91
|
+
size_t cacheMaxResourceBytes() const { return fCacheMaxResourceBytes; }
|
|
92
|
+
|
|
93
|
+
bool isValid() const { return kUnknown_SkColorType != fImageInfo.colorType(); }
|
|
94
|
+
|
|
95
|
+
const SkImageInfo& imageInfo() const { return fImageInfo; }
|
|
96
|
+
const GrBackendFormat& backendFormat() const { return fBackendFormat; }
|
|
97
|
+
GrSurfaceOrigin origin() const { return fOrigin; }
|
|
98
|
+
SkISize dimensions() const { return fImageInfo.dimensions(); }
|
|
99
|
+
int width() const { return fImageInfo.width(); }
|
|
100
|
+
int height() const { return fImageInfo.height(); }
|
|
101
|
+
SkColorType colorType() const { return fImageInfo.colorType(); }
|
|
102
|
+
int sampleCount() const { return fSampleCnt; }
|
|
103
|
+
bool isTextureable() const { return Textureable::kYes == fIsTextureable; }
|
|
104
|
+
bool isMipMapped() const { return skgpu::Mipmapped::kYes == fIsMipmapped; }
|
|
105
|
+
bool usesGLFBO0() const { return UsesGLFBO0::kYes == fUsesGLFBO0; }
|
|
106
|
+
bool vkRTSupportsInputAttachment() const {
|
|
107
|
+
return VkRTSupportsInputAttachment::kYes == fVkRTSupportsInputAttachment;
|
|
108
|
+
}
|
|
109
|
+
bool vulkanSecondaryCBCompatible() const {
|
|
110
|
+
return VulkanSecondaryCBCompatible::kYes == fVulkanSecondaryCBCompatible;
|
|
111
|
+
}
|
|
112
|
+
skgpu::Protected isProtected() const { return fIsProtected; }
|
|
113
|
+
SkColorSpace* colorSpace() const { return fImageInfo.colorSpace(); }
|
|
114
|
+
sk_sp<SkColorSpace> refColorSpace() const { return fImageInfo.refColorSpace(); }
|
|
115
|
+
const SkSurfaceProps& surfaceProps()const { return fSurfaceProps; }
|
|
116
|
+
|
|
117
|
+
private:
|
|
118
|
+
friend class SkSurface_Ganesh; // for 'set' & 'config'
|
|
119
|
+
friend class GrVkSecondaryCBDrawContext; // for 'set' & 'config'
|
|
120
|
+
friend class GrContextThreadSafeProxy; // for private ctor
|
|
121
|
+
friend class GrVkContextThreadSafeProxy; // for private ctor
|
|
122
|
+
friend class GrDeferredDisplayListRecorder; // for 'config'
|
|
123
|
+
friend class SkSurface; // for 'config'
|
|
124
|
+
|
|
125
|
+
SkDEBUGCODE(void validate() const;)
|
|
126
|
+
|
|
127
|
+
GrSurfaceCharacterization(sk_sp<GrContextThreadSafeProxy> contextInfo,
|
|
128
|
+
size_t cacheMaxResourceBytes,
|
|
129
|
+
const SkImageInfo& ii,
|
|
130
|
+
const GrBackendFormat& backendFormat,
|
|
131
|
+
GrSurfaceOrigin origin,
|
|
132
|
+
int sampleCnt,
|
|
133
|
+
Textureable isTextureable,
|
|
134
|
+
skgpu::Mipmapped isMipmapped,
|
|
135
|
+
UsesGLFBO0 usesGLFBO0,
|
|
136
|
+
VkRTSupportsInputAttachment vkRTSupportsInputAttachment,
|
|
137
|
+
VulkanSecondaryCBCompatible vulkanSecondaryCBCompatible,
|
|
138
|
+
skgpu::Protected isProtected,
|
|
139
|
+
const SkSurfaceProps& surfaceProps)
|
|
140
|
+
: fContextInfo(std::move(contextInfo))
|
|
141
|
+
, fCacheMaxResourceBytes(cacheMaxResourceBytes)
|
|
142
|
+
, fImageInfo(ii)
|
|
143
|
+
, fBackendFormat(std::move(backendFormat))
|
|
144
|
+
, fOrigin(origin)
|
|
145
|
+
, fSampleCnt(sampleCnt)
|
|
146
|
+
, fIsTextureable(isTextureable)
|
|
147
|
+
, fIsMipmapped(isMipmapped)
|
|
148
|
+
, fUsesGLFBO0(usesGLFBO0)
|
|
149
|
+
, fVkRTSupportsInputAttachment(vkRTSupportsInputAttachment)
|
|
150
|
+
, fVulkanSecondaryCBCompatible(vulkanSecondaryCBCompatible)
|
|
151
|
+
, fIsProtected(isProtected)
|
|
152
|
+
, fSurfaceProps(surfaceProps) {
|
|
153
|
+
if (fSurfaceProps.flags() & SkSurfaceProps::kDynamicMSAA_Flag) {
|
|
154
|
+
// Dynamic MSAA is not currently supported with DDL.
|
|
155
|
+
*this = {};
|
|
156
|
+
}
|
|
157
|
+
SkDEBUGCODE(this->validate());
|
|
158
|
+
}
|
|
159
|
+
|
|
160
|
+
void set(sk_sp<GrContextThreadSafeProxy> contextInfo,
|
|
161
|
+
size_t cacheMaxResourceBytes,
|
|
162
|
+
const SkImageInfo& ii,
|
|
163
|
+
const GrBackendFormat& backendFormat,
|
|
164
|
+
GrSurfaceOrigin origin,
|
|
165
|
+
int sampleCnt,
|
|
166
|
+
Textureable isTextureable,
|
|
167
|
+
skgpu::Mipmapped isMipmapped,
|
|
168
|
+
UsesGLFBO0 usesGLFBO0,
|
|
169
|
+
VkRTSupportsInputAttachment vkRTSupportsInputAttachment,
|
|
170
|
+
VulkanSecondaryCBCompatible vulkanSecondaryCBCompatible,
|
|
171
|
+
skgpu::Protected isProtected,
|
|
172
|
+
const SkSurfaceProps& surfaceProps) {
|
|
173
|
+
if (surfaceProps.flags() & SkSurfaceProps::kDynamicMSAA_Flag) {
|
|
174
|
+
// Dynamic MSAA is not currently supported with DDL.
|
|
175
|
+
*this = {};
|
|
176
|
+
} else {
|
|
177
|
+
fContextInfo = std::move(contextInfo);
|
|
178
|
+
fCacheMaxResourceBytes = cacheMaxResourceBytes;
|
|
179
|
+
|
|
180
|
+
fImageInfo = ii;
|
|
181
|
+
fBackendFormat = std::move(backendFormat);
|
|
182
|
+
fOrigin = origin;
|
|
183
|
+
fSampleCnt = sampleCnt;
|
|
184
|
+
fIsTextureable = isTextureable;
|
|
185
|
+
fIsMipmapped = isMipmapped;
|
|
186
|
+
fUsesGLFBO0 = usesGLFBO0;
|
|
187
|
+
fVkRTSupportsInputAttachment = vkRTSupportsInputAttachment;
|
|
188
|
+
fVulkanSecondaryCBCompatible = vulkanSecondaryCBCompatible;
|
|
189
|
+
fIsProtected = isProtected;
|
|
190
|
+
fSurfaceProps = surfaceProps;
|
|
191
|
+
}
|
|
192
|
+
SkDEBUGCODE(this->validate());
|
|
193
|
+
}
|
|
194
|
+
|
|
195
|
+
sk_sp<GrContextThreadSafeProxy> fContextInfo;
|
|
196
|
+
size_t fCacheMaxResourceBytes;
|
|
197
|
+
|
|
198
|
+
SkImageInfo fImageInfo;
|
|
199
|
+
GrBackendFormat fBackendFormat;
|
|
200
|
+
GrSurfaceOrigin fOrigin;
|
|
201
|
+
int fSampleCnt;
|
|
202
|
+
Textureable fIsTextureable;
|
|
203
|
+
skgpu::Mipmapped fIsMipmapped;
|
|
204
|
+
UsesGLFBO0 fUsesGLFBO0;
|
|
205
|
+
VkRTSupportsInputAttachment fVkRTSupportsInputAttachment;
|
|
206
|
+
VulkanSecondaryCBCompatible fVulkanSecondaryCBCompatible;
|
|
207
|
+
skgpu::Protected fIsProtected;
|
|
208
|
+
SkSurfaceProps fSurfaceProps;
|
|
209
|
+
};
|
|
210
|
+
|
|
211
|
+
#endif
|
|
@@ -0,0 +1,131 @@
|
|
|
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 GrVkSecondaryCBDrawContext_DEFINED
|
|
9
|
+
#define GrVkSecondaryCBDrawContext_DEFINED
|
|
10
|
+
|
|
11
|
+
#include "include/core/SkRefCnt.h"
|
|
12
|
+
#include "include/core/SkSurfaceProps.h"
|
|
13
|
+
#include "include/core/SkTypes.h"
|
|
14
|
+
|
|
15
|
+
#include <memory>
|
|
16
|
+
|
|
17
|
+
class GrBackendSemaphore;
|
|
18
|
+
class GrDeferredDisplayList;
|
|
19
|
+
class GrRecordingContext;
|
|
20
|
+
class GrSurfaceCharacterization;
|
|
21
|
+
struct GrVkDrawableInfo;
|
|
22
|
+
namespace skgpu::ganesh {
|
|
23
|
+
class Device;
|
|
24
|
+
}
|
|
25
|
+
class SkCanvas;
|
|
26
|
+
struct SkImageInfo;
|
|
27
|
+
class SkSurfaceProps;
|
|
28
|
+
|
|
29
|
+
/**
|
|
30
|
+
* This class is a private header that is intended to only be used inside of Chromium. This requires
|
|
31
|
+
* Chromium to burrow in and include this specifically since it is not part of skia's public include
|
|
32
|
+
* directory.
|
|
33
|
+
*/
|
|
34
|
+
|
|
35
|
+
/**
|
|
36
|
+
* This class is used to draw into an external Vulkan secondary command buffer that is imported
|
|
37
|
+
* by the client. The secondary command buffer that gets imported must already have had begin called
|
|
38
|
+
* on it with VK_COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT. Thus any draws to the imported
|
|
39
|
+
* command buffer cannot require changing the render pass. This requirement means that certain types
|
|
40
|
+
* of draws will not be supported when using a GrVkSecondaryCBDrawContext. This includes:
|
|
41
|
+
* Draws that require a dst copy for blending will be dropped
|
|
42
|
+
* Text draws will be dropped (these may require intermediate uploads of text data)
|
|
43
|
+
* Read and Write pixels will not work
|
|
44
|
+
* Any other draw that requires a copy will fail (this includes using backdrop filter with save
|
|
45
|
+
* layer).
|
|
46
|
+
* Stenciling is also disabled, but that should not restrict any actual draws from working.
|
|
47
|
+
*
|
|
48
|
+
* While using a GrVkSecondaryCBDrawContext, the client can also draw into normal SkSurfaces and
|
|
49
|
+
* then draw those SkSufaces (as SkImages) into the GrVkSecondaryCBDrawContext. If any of the
|
|
50
|
+
* previously mentioned unsupported draws are needed by the client, they can draw them into an
|
|
51
|
+
* offscreen surface, and then draw that into the GrVkSecondaryCBDrawContext.
|
|
52
|
+
*
|
|
53
|
+
* After all drawing to the GrVkSecondaryCBDrawContext has been done, the client must call flush()
|
|
54
|
+
* on the GrVkSecondaryCBDrawContext to actually fill in the secondary VkCommandBuffer with the
|
|
55
|
+
* draws.
|
|
56
|
+
*
|
|
57
|
+
* Additionally, the client must keep the GrVkSecondaryCBDrawContext alive until the secondary
|
|
58
|
+
* VkCommandBuffer has been submitted and all work finished on the GPU. Before deleting the
|
|
59
|
+
* GrVkSecondaryCBDrawContext, the client must call releaseResources() so that Skia can cleanup
|
|
60
|
+
* any internal objects that were created for the draws into the secondary command buffer.
|
|
61
|
+
*/
|
|
62
|
+
class SK_SPI GrVkSecondaryCBDrawContext : public SkRefCnt {
|
|
63
|
+
public:
|
|
64
|
+
static sk_sp<GrVkSecondaryCBDrawContext> Make(GrRecordingContext*,
|
|
65
|
+
const SkImageInfo&,
|
|
66
|
+
const GrVkDrawableInfo&,
|
|
67
|
+
const SkSurfaceProps* props);
|
|
68
|
+
|
|
69
|
+
~GrVkSecondaryCBDrawContext() override;
|
|
70
|
+
|
|
71
|
+
SkCanvas* getCanvas();
|
|
72
|
+
|
|
73
|
+
// Records all the draws to the imported secondary command buffer and sets any dependent
|
|
74
|
+
// offscreen draws to the GPU.
|
|
75
|
+
void flush();
|
|
76
|
+
|
|
77
|
+
/** Inserts a list of GPU semaphores that Skia will have the driver wait on before executing
|
|
78
|
+
commands for this secondary CB. The wait semaphores will get added to the VkCommandBuffer
|
|
79
|
+
owned by this GrContext when flush() is called, and not the command buffer which the
|
|
80
|
+
Secondary CB is from. This will guarantee that the driver waits on the semaphores before
|
|
81
|
+
the secondary command buffer gets executed. We will submit the semphore to wait at
|
|
82
|
+
VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT and VK_PIPELINE_STAGE_TRANSFER_BIT. If this
|
|
83
|
+
call returns false, then the GPU back end will not wait on any passed in semaphores, and the
|
|
84
|
+
client will still own the semaphores, regardless of the value of deleteSemaphoresAfterWait.
|
|
85
|
+
|
|
86
|
+
If deleteSemaphoresAfterWait is false then Skia will not delete the semaphores. In this case
|
|
87
|
+
it is the client's responsibility to not destroy or attempt to reuse the semaphores until it
|
|
88
|
+
knows that Skia has finished waiting on them. This can be done by using finishedProcs
|
|
89
|
+
on flush calls.
|
|
90
|
+
|
|
91
|
+
@param numSemaphores size of waitSemaphores array
|
|
92
|
+
@param waitSemaphores array of semaphore containers
|
|
93
|
+
@paramm deleteSemaphoresAfterWait who owns and should delete the semaphores
|
|
94
|
+
@return true if GPU is waiting on semaphores
|
|
95
|
+
*/
|
|
96
|
+
bool wait(int numSemaphores,
|
|
97
|
+
const GrBackendSemaphore waitSemaphores[],
|
|
98
|
+
bool deleteSemaphoresAfterWait = true);
|
|
99
|
+
|
|
100
|
+
// This call will release all resources held by the draw context. The client must call
|
|
101
|
+
// releaseResources() before deleting the drawing context. However, the resources also include
|
|
102
|
+
// any Vulkan resources that were created and used for draws. Therefore the client must only
|
|
103
|
+
// call releaseResources() after submitting the secondary command buffer, and waiting for it to
|
|
104
|
+
// finish on the GPU. If it is called earlier then some vulkan objects may be deleted while they
|
|
105
|
+
// are still in use by the GPU.
|
|
106
|
+
void releaseResources();
|
|
107
|
+
|
|
108
|
+
const SkSurfaceProps& props() const { return fProps; }
|
|
109
|
+
|
|
110
|
+
// TODO: Fill out these calls to support DDL
|
|
111
|
+
bool characterize(GrSurfaceCharacterization* characterization) const;
|
|
112
|
+
|
|
113
|
+
#ifndef SK_DDL_IS_UNIQUE_POINTER
|
|
114
|
+
bool draw(sk_sp<const GrDeferredDisplayList> deferredDisplayList);
|
|
115
|
+
#else
|
|
116
|
+
bool draw(const GrDeferredDisplayList* deferredDisplayList);
|
|
117
|
+
#endif
|
|
118
|
+
|
|
119
|
+
bool isCompatible(const GrSurfaceCharacterization& characterization) const;
|
|
120
|
+
|
|
121
|
+
private:
|
|
122
|
+
explicit GrVkSecondaryCBDrawContext(sk_sp<skgpu::ganesh::Device>, const SkSurfaceProps*);
|
|
123
|
+
|
|
124
|
+
sk_sp<skgpu::ganesh::Device> fDevice;
|
|
125
|
+
std::unique_ptr<SkCanvas> fCachedCanvas;
|
|
126
|
+
const SkSurfaceProps fProps;
|
|
127
|
+
|
|
128
|
+
using INHERITED = SkRefCnt;
|
|
129
|
+
};
|
|
130
|
+
|
|
131
|
+
#endif
|
|
@@ -0,0 +1,150 @@
|
|
|
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 SkChromeRemoteGlyphCache_DEFINED
|
|
9
|
+
#define SkChromeRemoteGlyphCache_DEFINED
|
|
10
|
+
|
|
11
|
+
#include "include/core/SkRefCnt.h"
|
|
12
|
+
#include "include/core/SkTypeface.h"
|
|
13
|
+
#include "include/private/SkAPI.h"
|
|
14
|
+
|
|
15
|
+
#include <cstddef>
|
|
16
|
+
#include <cstdint>
|
|
17
|
+
#include <memory>
|
|
18
|
+
#include <vector>
|
|
19
|
+
|
|
20
|
+
class SkAutoDescriptor;
|
|
21
|
+
class SkCanvas;
|
|
22
|
+
class SkColorSpace;
|
|
23
|
+
class SkStrikeCache;
|
|
24
|
+
class SkStrikeClientImpl;
|
|
25
|
+
class SkStrikeServerImpl;
|
|
26
|
+
class SkSurfaceProps;
|
|
27
|
+
namespace sktext::gpu { class Slug; }
|
|
28
|
+
|
|
29
|
+
using SkDiscardableHandleId = uint32_t;
|
|
30
|
+
// This class is not thread-safe.
|
|
31
|
+
class SkStrikeServer {
|
|
32
|
+
public:
|
|
33
|
+
// An interface used by the server to create handles for pinning SkStrike
|
|
34
|
+
// entries on the remote client.
|
|
35
|
+
class DiscardableHandleManager {
|
|
36
|
+
public:
|
|
37
|
+
SK_SPI virtual ~DiscardableHandleManager() = default;
|
|
38
|
+
|
|
39
|
+
// Creates a new *locked* handle and returns a unique ID that can be used to identify
|
|
40
|
+
// it on the remote client.
|
|
41
|
+
SK_SPI virtual SkDiscardableHandleId createHandle() = 0;
|
|
42
|
+
|
|
43
|
+
// Returns true if the handle could be successfully locked. The server can
|
|
44
|
+
// assume it will remain locked until the next set of serialized entries is
|
|
45
|
+
// pulled from the SkStrikeServer.
|
|
46
|
+
// If returns false, the cache entry mapped to the handle has been deleted
|
|
47
|
+
// on the client. Any subsequent attempts to lock the same handle are not
|
|
48
|
+
// allowed.
|
|
49
|
+
SK_SPI virtual bool lockHandle(SkDiscardableHandleId) = 0;
|
|
50
|
+
|
|
51
|
+
// Returns true if a handle has been deleted on the remote client. It is
|
|
52
|
+
// invalid to use a handle id again with this manager once this returns true.
|
|
53
|
+
SK_SPI virtual bool isHandleDeleted(SkDiscardableHandleId) = 0;
|
|
54
|
+
};
|
|
55
|
+
|
|
56
|
+
SK_SPI explicit SkStrikeServer(DiscardableHandleManager* discardableHandleManager);
|
|
57
|
+
SK_SPI ~SkStrikeServer();
|
|
58
|
+
|
|
59
|
+
// Create an analysis SkCanvas used to populate the SkStrikeServer with ops
|
|
60
|
+
// which will be serialized and rendered using the SkStrikeClient.
|
|
61
|
+
SK_API std::unique_ptr<SkCanvas> makeAnalysisCanvas(int width, int height,
|
|
62
|
+
const SkSurfaceProps& props,
|
|
63
|
+
sk_sp<SkColorSpace> colorSpace,
|
|
64
|
+
bool DFTSupport,
|
|
65
|
+
bool DFTPerspSupport = true);
|
|
66
|
+
|
|
67
|
+
// Serializes the strike data captured using a canvas returned by ::makeAnalysisCanvas. Any
|
|
68
|
+
// handles locked using the DiscardableHandleManager will be assumed to be
|
|
69
|
+
// unlocked after this call.
|
|
70
|
+
SK_SPI void writeStrikeData(std::vector<uint8_t>* memory);
|
|
71
|
+
|
|
72
|
+
// Testing helpers
|
|
73
|
+
void setMaxEntriesInDescriptorMapForTesting(size_t count);
|
|
74
|
+
size_t remoteStrikeMapSizeForTesting() const;
|
|
75
|
+
|
|
76
|
+
private:
|
|
77
|
+
SkStrikeServerImpl* impl();
|
|
78
|
+
|
|
79
|
+
std::unique_ptr<SkStrikeServerImpl> fImpl;
|
|
80
|
+
};
|
|
81
|
+
|
|
82
|
+
class SkStrikeClient {
|
|
83
|
+
public:
|
|
84
|
+
// This enum is used in histogram reporting in chromium. Please don't re-order the list of
|
|
85
|
+
// entries, and consider it to be append-only.
|
|
86
|
+
enum CacheMissType : uint32_t {
|
|
87
|
+
// Hard failures where no fallback could be found.
|
|
88
|
+
kFontMetrics = 0,
|
|
89
|
+
kGlyphMetrics = 1,
|
|
90
|
+
kGlyphImage = 2,
|
|
91
|
+
kGlyphPath = 3,
|
|
92
|
+
|
|
93
|
+
// (DEPRECATED) The original glyph could not be found and a fallback was used.
|
|
94
|
+
kGlyphMetricsFallback = 4,
|
|
95
|
+
kGlyphPathFallback = 5,
|
|
96
|
+
|
|
97
|
+
kGlyphDrawable = 6,
|
|
98
|
+
kLast = kGlyphDrawable
|
|
99
|
+
};
|
|
100
|
+
|
|
101
|
+
// An interface to delete handles that may be pinned by the remote server.
|
|
102
|
+
class DiscardableHandleManager : public SkRefCnt {
|
|
103
|
+
public:
|
|
104
|
+
~DiscardableHandleManager() override = default;
|
|
105
|
+
|
|
106
|
+
// Returns true if the handle was unlocked and can be safely deleted. Once
|
|
107
|
+
// successful, subsequent attempts to delete the same handle are invalid.
|
|
108
|
+
virtual bool deleteHandle(SkDiscardableHandleId) = 0;
|
|
109
|
+
|
|
110
|
+
virtual void assertHandleValid(SkDiscardableHandleId) {}
|
|
111
|
+
|
|
112
|
+
virtual void notifyCacheMiss(CacheMissType type, int fontSize) = 0;
|
|
113
|
+
|
|
114
|
+
struct ReadFailureData {
|
|
115
|
+
size_t memorySize;
|
|
116
|
+
size_t bytesRead;
|
|
117
|
+
uint64_t typefaceSize;
|
|
118
|
+
uint64_t strikeCount;
|
|
119
|
+
uint64_t glyphImagesCount;
|
|
120
|
+
uint64_t glyphPathsCount;
|
|
121
|
+
};
|
|
122
|
+
virtual void notifyReadFailure(const ReadFailureData& data) {}
|
|
123
|
+
};
|
|
124
|
+
|
|
125
|
+
SK_SPI explicit SkStrikeClient(sk_sp<DiscardableHandleManager>,
|
|
126
|
+
bool isLogging = true,
|
|
127
|
+
SkStrikeCache* strikeCache = nullptr);
|
|
128
|
+
SK_SPI ~SkStrikeClient();
|
|
129
|
+
|
|
130
|
+
// Deserializes the strike data from a SkStrikeServer. All messages generated
|
|
131
|
+
// from a server when serializing the ops must be deserialized before the op
|
|
132
|
+
// is rasterized.
|
|
133
|
+
// Returns false if the data is invalid.
|
|
134
|
+
SK_SPI bool readStrikeData(const volatile void* memory, size_t memorySize);
|
|
135
|
+
|
|
136
|
+
// Given a descriptor re-write the Rec mapping the typefaceID from the renderer to the
|
|
137
|
+
// corresponding typefaceID on the GPU.
|
|
138
|
+
SK_SPI bool translateTypefaceID(SkAutoDescriptor* descriptor) const;
|
|
139
|
+
|
|
140
|
+
// Testing helpers
|
|
141
|
+
sk_sp<SkTypeface> retrieveTypefaceUsingServerIDForTest(SkTypefaceID) const;
|
|
142
|
+
|
|
143
|
+
// Given a buffer, unflatten into a slug making sure to do the typefaceID translation from
|
|
144
|
+
// renderer to GPU. Returns nullptr if there was a problem.
|
|
145
|
+
sk_sp<sktext::gpu::Slug> deserializeSlugForTest(const void* data, size_t size) const;
|
|
146
|
+
|
|
147
|
+
private:
|
|
148
|
+
std::unique_ptr<SkStrikeClientImpl> fImpl;
|
|
149
|
+
};
|
|
150
|
+
#endif // SkChromeRemoteGlyphCache_DEFINED
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright 2026 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 SkCodecsICCProfileChromium_DEFINED
|
|
9
|
+
#define SkCodecsICCProfileChromium_DEFINED
|
|
10
|
+
|
|
11
|
+
#include <memory>
|
|
12
|
+
|
|
13
|
+
#include "include/core/SkData.h"
|
|
14
|
+
#include "include/core/SkRefCnt.h"
|
|
15
|
+
#include "include/private/SkAPI.h"
|
|
16
|
+
#include "modules/skcms/skcms.h"
|
|
17
|
+
|
|
18
|
+
namespace SkCodecs {
|
|
19
|
+
|
|
20
|
+
// Allows Chromium code that does not use SkCodec to parse ICC profiles
|
|
21
|
+
// using the same parser that SkCodec uses (skcms or moxcms).
|
|
22
|
+
class SK_API ICCProfileChromium {
|
|
23
|
+
public:
|
|
24
|
+
virtual ~ICCProfileChromium() = default;
|
|
25
|
+
|
|
26
|
+
// Force all ICC profile parsing to use skcms instead of the build-default
|
|
27
|
+
// parser. This is intended for Chromium to have a kill-switch to fall back
|
|
28
|
+
// to skcms if moxcms causes issues in the field.
|
|
29
|
+
//
|
|
30
|
+
// This is a global setting and is NOT thread-safe with respect to concurrent
|
|
31
|
+
// codec operations. It should be called once early during process startup.
|
|
32
|
+
static void ForceSkcms(bool forceSkcms);
|
|
33
|
+
|
|
34
|
+
// Returns nullptr if parsing fails. May retain `data`. Uses the parser
|
|
35
|
+
// selected by ForceSkcms (defaults to the build-default parser).
|
|
36
|
+
static std::unique_ptr<ICCProfileChromium> Make(sk_sp<SkData> data);
|
|
37
|
+
|
|
38
|
+
// Return the parsed profile. The pointers in the structure are guaranteed
|
|
39
|
+
// to be valid until `this` is destroyed.
|
|
40
|
+
virtual const skcms_ICCProfile& GetProfile() const = 0;
|
|
41
|
+
|
|
42
|
+
protected:
|
|
43
|
+
ICCProfileChromium() = default;
|
|
44
|
+
|
|
45
|
+
private:
|
|
46
|
+
ICCProfileChromium(const ICCProfileChromium&) = delete;
|
|
47
|
+
ICCProfileChromium& operator=(const ICCProfileChromium&) = delete;
|
|
48
|
+
};
|
|
49
|
+
|
|
50
|
+
} // namespace SkCodecs
|
|
51
|
+
|
|
52
|
+
#endif // SkCodecsICCProfileChromium_DEFINED
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright 2013 Google Inc.
|
|
3
|
+
*
|
|
4
|
+
* Use of this source code is governed by a BSD-style license that can be
|
|
5
|
+
* found in the LICENSE file.
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
#ifndef SkDiscardableMemory_DEFINED
|
|
9
|
+
#define SkDiscardableMemory_DEFINED
|
|
10
|
+
|
|
11
|
+
#include "include/core/SkRefCnt.h"
|
|
12
|
+
#include "include/core/SkTypes.h"
|
|
13
|
+
|
|
14
|
+
/**
|
|
15
|
+
* Interface for discardable memory. Implementation is provided by the
|
|
16
|
+
* embedder.
|
|
17
|
+
*/
|
|
18
|
+
class SK_SPI SkDiscardableMemory {
|
|
19
|
+
public:
|
|
20
|
+
/**
|
|
21
|
+
* Factory method that creates, initializes and locks an SkDiscardableMemory
|
|
22
|
+
* object. If either of these steps fails, a nullptr pointer will be returned.
|
|
23
|
+
*/
|
|
24
|
+
static SkDiscardableMemory* Create(size_t bytes);
|
|
25
|
+
|
|
26
|
+
/**
|
|
27
|
+
* Factory class that creates, initializes and locks an SkDiscardableMemory
|
|
28
|
+
* object. If either of these steps fails, a nullptr pointer will be returned.
|
|
29
|
+
*/
|
|
30
|
+
class Factory : public SkRefCnt {
|
|
31
|
+
public:
|
|
32
|
+
virtual SkDiscardableMemory* create(size_t bytes) = 0;
|
|
33
|
+
private:
|
|
34
|
+
using INHERITED = SkRefCnt;
|
|
35
|
+
};
|
|
36
|
+
|
|
37
|
+
/** Must not be called while locked.
|
|
38
|
+
*/
|
|
39
|
+
virtual ~SkDiscardableMemory() {}
|
|
40
|
+
|
|
41
|
+
/**
|
|
42
|
+
* Locks the memory, prevent it from being discarded. Once locked. you may
|
|
43
|
+
* obtain a pointer to that memory using the data() method.
|
|
44
|
+
*
|
|
45
|
+
* lock() may return false, indicating that the underlying memory was
|
|
46
|
+
* discarded and that the lock failed.
|
|
47
|
+
*
|
|
48
|
+
* Nested calls to lock are not allowed.
|
|
49
|
+
*/
|
|
50
|
+
[[nodiscard]] virtual bool lock() = 0;
|
|
51
|
+
|
|
52
|
+
/**
|
|
53
|
+
* Returns the current pointer for the discardable memory. This call is ONLY
|
|
54
|
+
* valid when the discardable memory object is locked.
|
|
55
|
+
*/
|
|
56
|
+
virtual void* data() = 0;
|
|
57
|
+
|
|
58
|
+
/**
|
|
59
|
+
* Unlock the memory so that it can be purged by the system. Must be called
|
|
60
|
+
* after every successful lock call.
|
|
61
|
+
*/
|
|
62
|
+
virtual void unlock() = 0;
|
|
63
|
+
|
|
64
|
+
protected:
|
|
65
|
+
SkDiscardableMemory() = default;
|
|
66
|
+
SkDiscardableMemory(const SkDiscardableMemory&) = delete;
|
|
67
|
+
SkDiscardableMemory& operator=(const SkDiscardableMemory&) = delete;
|
|
68
|
+
};
|
|
69
|
+
|
|
70
|
+
#endif
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright 2026 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 SkExifChromium_DEFINED
|
|
9
|
+
#define SkExifChromium_DEFINED
|
|
10
|
+
|
|
11
|
+
#include "include/private/SkAPI.h"
|
|
12
|
+
|
|
13
|
+
namespace SkExif {
|
|
14
|
+
|
|
15
|
+
// Force all EXIF parsing to use the C++ SkExif parser instead of the
|
|
16
|
+
// build-default parser. This is intended for Chromium to have a kill-switch
|
|
17
|
+
// to fall back to the C++ implementation if rust_exif causes issues in the
|
|
18
|
+
// field.
|
|
19
|
+
//
|
|
20
|
+
// This is a global setting and is NOT thread-safe with respect to concurrent
|
|
21
|
+
// codec operations. It should be called once early during process startup.
|
|
22
|
+
SK_API void ForceSkExif(bool forceSkExif);
|
|
23
|
+
|
|
24
|
+
} // namespace SkExif
|
|
25
|
+
|
|
26
|
+
#endif // SkExifChromium_DEFINED
|