rngine 0.8.0 → 0.8.2
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 +50 -25
- 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 +44 -0
- 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 +1 -0
- package/lib/typescript/src/GameMethods.d.ts.map +1 -1
- package/lib/typescript/src/GameMethods.nitro.d.ts +3 -0
- package/lib/typescript/src/GameMethods.nitro.d.ts.map +1 -1
- package/lib/typescript/src/index.d.ts +0 -1
- package/lib/typescript/src/index.d.ts.map +1 -1
- package/lib/typescript/src/nativeTypes.d.ts +6 -0
- package/lib/typescript/src/nativeTypes.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 +13 -1
- package/nitrogen/generated/shared/c++/EntityUpdate.hpp +13 -1
- package/nitrogen/generated/shared/c++/HybridGameMethodsSpec.cpp +3 -0
- package/nitrogen/generated/shared/c++/HybridGameMethodsSpec.hpp +4 -0
- package/nitrogen/generated/shared/c++/Screen.hpp +14 -2
- 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 +45 -27
- package/shared/GameLoop.hpp +1 -11
- package/shared/GameMethods.cpp +103 -6
- package/shared/GameMethods.hpp +17 -0
- package/shared/GameRenderer.cpp +431 -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 +4 -0
- package/src/GameMethods.ts +55 -0
- package/src/index.tsx +0 -1
- package/src/nativeTypes.ts +6 -0
- 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,117 @@
|
|
|
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 SkImageChromium_DEFINED
|
|
9
|
+
#define SkImageChromium_DEFINED
|
|
10
|
+
|
|
11
|
+
#include "include/core/SkRefCnt.h"
|
|
12
|
+
#include "include/private/SkAPI.h"
|
|
13
|
+
|
|
14
|
+
class GrBackendFormat;
|
|
15
|
+
class GrContextThreadSafeProxy;
|
|
16
|
+
class GrPromiseImageTexture;
|
|
17
|
+
class GrDirectContext;
|
|
18
|
+
class GrYUVABackendTextureInfo;
|
|
19
|
+
class SkColorSpace;
|
|
20
|
+
class SkImage;
|
|
21
|
+
enum SkAlphaType : int;
|
|
22
|
+
enum SkColorType : int;
|
|
23
|
+
enum GrSurfaceOrigin : int;
|
|
24
|
+
namespace skgpu {
|
|
25
|
+
enum class Mipmapped : bool;
|
|
26
|
+
}
|
|
27
|
+
struct SkISize;
|
|
28
|
+
|
|
29
|
+
/**
|
|
30
|
+
* These functions expose features that are only for external use in Chromium.
|
|
31
|
+
*/
|
|
32
|
+
|
|
33
|
+
namespace SkImages {
|
|
34
|
+
|
|
35
|
+
using PromiseImageTextureContext = void*;
|
|
36
|
+
using PromiseImageTextureFulfillProc = sk_sp<GrPromiseImageTexture> (*)(PromiseImageTextureContext);
|
|
37
|
+
using PromiseImageTextureReleaseProc = void (*)(PromiseImageTextureContext);
|
|
38
|
+
|
|
39
|
+
/** Create a new GPU-backed SkImage that is very similar to an SkImage created by BorrowTextureFrom.
|
|
40
|
+
The difference is that the caller need not have created the texture nor populated it with the
|
|
41
|
+
image pixel data. Moreover, the SkImage may be created on a thread as the creation of the
|
|
42
|
+
image does not require access to the backend API or GrDirectContext. Instead of passing a
|
|
43
|
+
GrBackendTexture the client supplies a description of the texture consisting of
|
|
44
|
+
GrBackendFormat, width, height, and skgpu::Mipmapped state. The resulting SkImage can be drawn
|
|
45
|
+
to a GrDeferredDisplayListRecorder or directly to a GPU-backed SkSurface.
|
|
46
|
+
When the actual texture is required to perform a backend API draw, textureFulfillProc will
|
|
47
|
+
be called to receive a GrBackendTexture. The properties of the GrBackendTexture must match
|
|
48
|
+
those set during the SkImage creation, and it must refer to a valid existing texture in the
|
|
49
|
+
backend API context/device, and be populated with the image pixel data. The texture cannot
|
|
50
|
+
be deleted until textureReleaseProc is called.
|
|
51
|
+
There is at most one call to each of textureFulfillProc and textureReleaseProc.
|
|
52
|
+
textureReleaseProc is always called even if image creation fails or if the
|
|
53
|
+
image is never fulfilled (e.g. it is never drawn or all draws are clipped out)
|
|
54
|
+
@param gpuContextProxy the thread-safe proxy of the gpu context. required.
|
|
55
|
+
@param backendFormat format of promised gpu texture
|
|
56
|
+
@param dimensions width & height of promised gpu texture
|
|
57
|
+
@param mipmapped mip mapped state of promised gpu texture
|
|
58
|
+
@param origin surface origin of promised gpu texture
|
|
59
|
+
@param colorType color type of promised gpu texture
|
|
60
|
+
@param alphaType alpha type of promised gpu texture
|
|
61
|
+
@param colorSpace range of colors; may be nullptr
|
|
62
|
+
@param textureFulfillProc function called to get actual gpu texture
|
|
63
|
+
@param textureReleaseProc function called when texture can be deleted
|
|
64
|
+
@param textureContext state passed to textureFulfillProc and textureReleaseProc
|
|
65
|
+
@return created SkImage, or nullptr
|
|
66
|
+
*/
|
|
67
|
+
SK_API sk_sp<SkImage> PromiseTextureFrom(sk_sp<GrContextThreadSafeProxy> gpuContextProxy,
|
|
68
|
+
const GrBackendFormat& backendFormat,
|
|
69
|
+
SkISize dimensions,
|
|
70
|
+
skgpu::Mipmapped mipmapped,
|
|
71
|
+
GrSurfaceOrigin origin,
|
|
72
|
+
SkColorType colorType,
|
|
73
|
+
SkAlphaType alphaType,
|
|
74
|
+
sk_sp<SkColorSpace> colorSpace,
|
|
75
|
+
PromiseImageTextureFulfillProc textureFulfillProc,
|
|
76
|
+
PromiseImageTextureReleaseProc textureReleaseProc,
|
|
77
|
+
PromiseImageTextureContext textureContext);
|
|
78
|
+
|
|
79
|
+
/** This is similar to 'PromiseTextureFrom' but it creates a GPU-backed SkImage from YUV[A] data.
|
|
80
|
+
The source data may be planar (i.e. spread across multiple textures). In
|
|
81
|
+
the extreme Y, U, V, and A are all in different planes and thus the image is specified by
|
|
82
|
+
four textures. 'backendTextureInfo' describes the planar arrangement, texture formats,
|
|
83
|
+
conversion to RGB, and origin of the textures. Separate 'textureFulfillProc' and
|
|
84
|
+
'textureReleaseProc' calls are made for each texture. Each texture has its own
|
|
85
|
+
PromiseImageTextureContext. If 'backendTextureInfo' is not valid then no release proc
|
|
86
|
+
calls are made. Otherwise, the calls will be made even on failure. 'textureContexts' has one
|
|
87
|
+
entry for each of the up to four textures, as indicated by 'backendTextureInfo'.
|
|
88
|
+
Currently the mip mapped property of 'backendTextureInfo' is ignored. However, in the
|
|
89
|
+
near future it will be required that if it is kYes then textureFulfillProc must return
|
|
90
|
+
a mip mapped texture for each plane in order to successfully draw the image.
|
|
91
|
+
@param gpuContextProxy the thread-safe proxy of the gpu context. required.
|
|
92
|
+
@param backendTextureInfo info about the promised yuva gpu texture
|
|
93
|
+
@param imageColorSpace range of colors; may be nullptr
|
|
94
|
+
@param textureFulfillProc function called to get actual gpu texture
|
|
95
|
+
@param textureReleaseProc function called when texture can be deleted
|
|
96
|
+
@param textureContexts state passed to textureFulfillProc and textureReleaseProc
|
|
97
|
+
@return created SkImage, or nullptr
|
|
98
|
+
*/
|
|
99
|
+
SK_API sk_sp<SkImage> PromiseTextureFromYUVA(sk_sp<GrContextThreadSafeProxy> gpuContextProxy,
|
|
100
|
+
const GrYUVABackendTextureInfo& backendTextureInfo,
|
|
101
|
+
sk_sp<SkColorSpace> imageColorSpace,
|
|
102
|
+
PromiseImageTextureFulfillProc textureFulfillProc,
|
|
103
|
+
PromiseImageTextureReleaseProc textureReleaseProc,
|
|
104
|
+
PromiseImageTextureContext textureContexts[]);
|
|
105
|
+
|
|
106
|
+
/** Returns the GPU context associated with this image or nullptr if the image is not Ganesh-backed.
|
|
107
|
+
We expose this only to help transition certain API calls and do not intend for this to stick
|
|
108
|
+
around forever.
|
|
109
|
+
*/
|
|
110
|
+
SK_API GrDirectContext* GetContext(const SkImage* src);
|
|
111
|
+
inline GrDirectContext* GetContext(const sk_sp<const SkImage>& src) {
|
|
112
|
+
return GetContext(src.get());
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
} // namespace SkImages
|
|
116
|
+
|
|
117
|
+
#endif
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright 2025 Google LLC
|
|
3
|
+
*
|
|
4
|
+
* Use of this source code is governed by a BSD-style license that can be
|
|
5
|
+
* found in the LICENSE file.
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
#ifndef SkPMColor_DEFINED
|
|
9
|
+
#define SkPMColor_DEFINED
|
|
10
|
+
|
|
11
|
+
#include "include/core/SkColor.h"
|
|
12
|
+
#include "include/private/SkAPI.h"
|
|
13
|
+
|
|
14
|
+
#include <cstdint>
|
|
15
|
+
|
|
16
|
+
/** Returns a SkPMColor value from already premultiplied 8-bit component values.
|
|
17
|
+
|
|
18
|
+
@param a amount of alpha, from fully transparent (0) to fully opaque (255)
|
|
19
|
+
@param r amount of red, from no red (0) to full red (255)
|
|
20
|
+
@param g amount of green, from no green (0) to full green (255)
|
|
21
|
+
@param b amount of blue, from no blue (0) to full blue (255)
|
|
22
|
+
@return premultiplied color
|
|
23
|
+
*/
|
|
24
|
+
SK_API SkPMColor SkPMColorSetARGB(SkAlpha a, uint8_t r, uint8_t g, uint8_t b);
|
|
25
|
+
|
|
26
|
+
/** Returns alpha component of premultiplied color. */
|
|
27
|
+
SK_API SkAlpha SkPMColorGetA(SkPMColor);
|
|
28
|
+
|
|
29
|
+
/** Returns red component of premultiplied color. */
|
|
30
|
+
SK_API uint8_t SkPMColorGetR(SkPMColor);
|
|
31
|
+
|
|
32
|
+
/** Returns green component of premultiplied color. */
|
|
33
|
+
SK_API uint8_t SkPMColorGetG(SkPMColor);
|
|
34
|
+
|
|
35
|
+
/** Returns blue component of premultiplied color. */
|
|
36
|
+
SK_API uint8_t SkPMColorGetB(SkPMColor);
|
|
37
|
+
|
|
38
|
+
#endif
|
|
@@ -0,0 +1,72 @@
|
|
|
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 sktext_gpu_Slug_DEFINED
|
|
9
|
+
#define sktext_gpu_Slug_DEFINED
|
|
10
|
+
|
|
11
|
+
#include "include/core/SkRect.h"
|
|
12
|
+
#include "include/core/SkRefCnt.h"
|
|
13
|
+
#include "include/private/SkAPI.h"
|
|
14
|
+
|
|
15
|
+
#include <cstddef>
|
|
16
|
+
#include <cstdint>
|
|
17
|
+
|
|
18
|
+
class SkCanvas;
|
|
19
|
+
class SkData;
|
|
20
|
+
class SkPaint;
|
|
21
|
+
class SkReadBuffer;
|
|
22
|
+
class SkStrikeClient;
|
|
23
|
+
class SkTextBlob;
|
|
24
|
+
class SkWriteBuffer;
|
|
25
|
+
struct SkDeserialProcs;
|
|
26
|
+
struct SkPoint;
|
|
27
|
+
|
|
28
|
+
namespace sktext::gpu {
|
|
29
|
+
// Slug encapsulates an SkTextBlob at a specific origin, using a specific paint. It can be
|
|
30
|
+
// manipulated using matrix and clip changes to the canvas. If the canvas is transformed, then
|
|
31
|
+
// the Slug will also transform with smaller glyphs using bi-linear interpolation to render. You
|
|
32
|
+
// can think of a Slug as making a rubber stamp out of a SkTextBlob.
|
|
33
|
+
class SK_API Slug : public SkRefCnt {
|
|
34
|
+
public:
|
|
35
|
+
// Return nullptr if the blob would not draw. This is not because of clipping, but because of
|
|
36
|
+
// some paint optimization. The Slug is captured as if drawn using drawTextBlob.
|
|
37
|
+
static sk_sp<Slug> ConvertBlob(
|
|
38
|
+
SkCanvas* canvas, const SkTextBlob& blob, SkPoint origin, const SkPaint& paint);
|
|
39
|
+
|
|
40
|
+
// Serialize the slug.
|
|
41
|
+
sk_sp<SkData> serialize() const;
|
|
42
|
+
size_t serialize(void* buffer, size_t size) const;
|
|
43
|
+
|
|
44
|
+
// Set the client parameter to the appropriate SkStrikeClient when typeface ID translation
|
|
45
|
+
// is needed.
|
|
46
|
+
static sk_sp<Slug> Deserialize(const void* data,
|
|
47
|
+
size_t size,
|
|
48
|
+
const SkStrikeClient* client = nullptr);
|
|
49
|
+
static sk_sp<Slug> MakeFromBuffer(SkReadBuffer& buffer);
|
|
50
|
+
|
|
51
|
+
// Allows clients to deserialize SkPictures that contain slug data
|
|
52
|
+
static void AddDeserialProcs(SkDeserialProcs* procs, const SkStrikeClient* client = nullptr);
|
|
53
|
+
|
|
54
|
+
// Draw the Slug obeying the canvas's mapping and clipping.
|
|
55
|
+
void draw(SkCanvas* canvas, const SkPaint& paint) const;
|
|
56
|
+
|
|
57
|
+
virtual SkRect sourceBounds() const = 0;
|
|
58
|
+
virtual SkRect sourceBoundsWithOrigin () const = 0;
|
|
59
|
+
|
|
60
|
+
virtual void doFlatten(SkWriteBuffer&) const = 0;
|
|
61
|
+
|
|
62
|
+
uint32_t uniqueID() const { return fUniqueID; }
|
|
63
|
+
|
|
64
|
+
private:
|
|
65
|
+
static uint32_t NextUniqueID();
|
|
66
|
+
const uint32_t fUniqueID{NextUniqueID()};
|
|
67
|
+
};
|
|
68
|
+
|
|
69
|
+
|
|
70
|
+
} // namespace sktext::gpu
|
|
71
|
+
|
|
72
|
+
#endif // sktext_gpu_Slug_DEFINED
|
|
@@ -0,0 +1,104 @@
|
|
|
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 GrContext_Base_DEFINED
|
|
9
|
+
#define GrContext_Base_DEFINED
|
|
10
|
+
|
|
11
|
+
#include "include/core/SkRefCnt.h"
|
|
12
|
+
#include "include/gpu/ganesh/GrTypes.h"
|
|
13
|
+
#include "include/private/SkAPI.h"
|
|
14
|
+
|
|
15
|
+
#include <cstdint>
|
|
16
|
+
|
|
17
|
+
class GrBaseContextPriv;
|
|
18
|
+
class GrCaps;
|
|
19
|
+
class GrContextThreadSafeProxy;
|
|
20
|
+
class GrDirectContext;
|
|
21
|
+
class GrImageContext;
|
|
22
|
+
class GrRecordingContext;
|
|
23
|
+
enum SkColorType : int;
|
|
24
|
+
enum class SkTextureCompressionType;
|
|
25
|
+
struct GrContextOptions;
|
|
26
|
+
class GrBackendFormat;
|
|
27
|
+
|
|
28
|
+
class GrContext_Base : public SkRefCnt {
|
|
29
|
+
public:
|
|
30
|
+
~GrContext_Base() override;
|
|
31
|
+
|
|
32
|
+
/*
|
|
33
|
+
* Safely downcast to a GrDirectContext.
|
|
34
|
+
*/
|
|
35
|
+
virtual GrDirectContext* asDirectContext() { return nullptr; }
|
|
36
|
+
|
|
37
|
+
/*
|
|
38
|
+
* The 3D API backing this context
|
|
39
|
+
*/
|
|
40
|
+
SK_API GrBackendApi backend() const;
|
|
41
|
+
|
|
42
|
+
/*
|
|
43
|
+
* Retrieve the default GrBackendFormat for a given SkColorType and renderability.
|
|
44
|
+
* It is guaranteed that this backend format will be the one used by the GrContext
|
|
45
|
+
* SkColorType and GrSurfaceCharacterization-based createBackendTexture methods.
|
|
46
|
+
*
|
|
47
|
+
* The caller should check that the returned format is valid.
|
|
48
|
+
*/
|
|
49
|
+
SK_API GrBackendFormat defaultBackendFormat(SkColorType, GrRenderable) const;
|
|
50
|
+
|
|
51
|
+
SK_API GrBackendFormat compressedBackendFormat(SkTextureCompressionType) const;
|
|
52
|
+
|
|
53
|
+
/**
|
|
54
|
+
* Gets the maximum supported sample count for a color type. 1 is returned if only non-MSAA
|
|
55
|
+
* rendering is supported for the color type. 0 is returned if rendering to this color type
|
|
56
|
+
* is not supported at all.
|
|
57
|
+
*/
|
|
58
|
+
SK_API int maxSurfaceSampleCountForColorType(SkColorType colorType) const;
|
|
59
|
+
|
|
60
|
+
// TODO: When the public version is gone, rename to refThreadSafeProxy and add raw ptr ver.
|
|
61
|
+
sk_sp<GrContextThreadSafeProxy> threadSafeProxy();
|
|
62
|
+
|
|
63
|
+
// Provides access to functions that aren't part of the public API.
|
|
64
|
+
GrBaseContextPriv priv();
|
|
65
|
+
const GrBaseContextPriv priv() const; // NOLINT(readability-const-return-type)
|
|
66
|
+
|
|
67
|
+
protected:
|
|
68
|
+
friend class GrBaseContextPriv; // for hidden functions
|
|
69
|
+
|
|
70
|
+
explicit GrContext_Base(sk_sp<GrContextThreadSafeProxy>);
|
|
71
|
+
|
|
72
|
+
virtual bool init();
|
|
73
|
+
|
|
74
|
+
/**
|
|
75
|
+
* An identifier for this context. The id is used by all compatible contexts. For example,
|
|
76
|
+
* if SkImages are created on one thread using an image creation context, then fed into a
|
|
77
|
+
* DDL Recorder on second thread (which has a recording context) and finally replayed on
|
|
78
|
+
* a third thread with a direct context, then all three contexts will report the same id.
|
|
79
|
+
* It is an error for an image to be used with contexts that report different ids.
|
|
80
|
+
*/
|
|
81
|
+
uint32_t contextID() const;
|
|
82
|
+
|
|
83
|
+
bool matches(GrContext_Base* candidate) const {
|
|
84
|
+
return candidate && candidate->contextID() == this->contextID();
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
/*
|
|
88
|
+
* The options in effect for this context
|
|
89
|
+
*/
|
|
90
|
+
const GrContextOptions& options() const;
|
|
91
|
+
|
|
92
|
+
const GrCaps* caps() const;
|
|
93
|
+
sk_sp<const GrCaps> refCaps() const;
|
|
94
|
+
|
|
95
|
+
virtual GrImageContext* asImageContext() { return nullptr; }
|
|
96
|
+
virtual GrRecordingContext* asRecordingContext() { return nullptr; }
|
|
97
|
+
|
|
98
|
+
sk_sp<GrContextThreadSafeProxy> fThreadSafeProxy;
|
|
99
|
+
|
|
100
|
+
private:
|
|
101
|
+
using INHERITED = SkRefCnt;
|
|
102
|
+
};
|
|
103
|
+
|
|
104
|
+
#endif
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright 2020 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 GrD3DTypesMinimal_DEFINED
|
|
9
|
+
#define GrD3DTypesMinimal_DEFINED
|
|
10
|
+
|
|
11
|
+
// Minimal definitions of Direct3D types, without including d3d12.h
|
|
12
|
+
|
|
13
|
+
#include "include/core/SkRefCnt.h"
|
|
14
|
+
|
|
15
|
+
#include <dxgiformat.h>
|
|
16
|
+
#include <memory>
|
|
17
|
+
|
|
18
|
+
#include "include/gpu/ganesh/GrTypes.h"
|
|
19
|
+
|
|
20
|
+
struct ID3D12Resource;
|
|
21
|
+
class GrD3DResourceState;
|
|
22
|
+
typedef int GrD3DResourceStateEnum;
|
|
23
|
+
struct GrD3DSurfaceInfo;
|
|
24
|
+
struct GrD3DTextureResourceInfo;
|
|
25
|
+
struct GrD3DTextureResourceSpec;
|
|
26
|
+
struct GrD3DFenceInfo;
|
|
27
|
+
|
|
28
|
+
// This struct is to used to store the the actual information about the Direct3D backend image on
|
|
29
|
+
// GrBackendTexture and GrBackendRenderTarget. When a client calls getD3DTextureInfo on a
|
|
30
|
+
// GrBackendTexture/RenderTarget, we use the GrD3DBackendSurfaceInfo to create a snapshot
|
|
31
|
+
// GrD3DTextureResourceInfo object. Internally, this uses a ref count GrD3DResourceState object to
|
|
32
|
+
// track the current D3D12_RESOURCE_STATES which can be shared with an internal GrD3DTextureResource
|
|
33
|
+
// so that state updates can be seen by all users of the texture.
|
|
34
|
+
struct GrD3DBackendSurfaceInfo {
|
|
35
|
+
GrD3DBackendSurfaceInfo(const GrD3DTextureResourceInfo& info, sk_sp<GrD3DResourceState> state);
|
|
36
|
+
~GrD3DBackendSurfaceInfo();
|
|
37
|
+
|
|
38
|
+
GrD3DBackendSurfaceInfo(const GrD3DBackendSurfaceInfo&);
|
|
39
|
+
GrD3DBackendSurfaceInfo& operator=(const GrD3DBackendSurfaceInfo&);
|
|
40
|
+
|
|
41
|
+
GrD3DBackendSurfaceInfo(GrD3DBackendSurfaceInfo&&);
|
|
42
|
+
GrD3DBackendSurfaceInfo& operator=(GrD3DBackendSurfaceInfo&&);
|
|
43
|
+
|
|
44
|
+
void setResourceState(GrD3DResourceStateEnum state);
|
|
45
|
+
|
|
46
|
+
sk_sp<GrD3DResourceState> getResourceState() const;
|
|
47
|
+
|
|
48
|
+
GrD3DTextureResourceInfo snapTextureResourceInfo() const;
|
|
49
|
+
|
|
50
|
+
bool isProtected() const;
|
|
51
|
+
#if defined(GPU_TEST_UTILS)
|
|
52
|
+
bool operator==(const GrD3DBackendSurfaceInfo& that) const;
|
|
53
|
+
#endif
|
|
54
|
+
|
|
55
|
+
private:
|
|
56
|
+
std::unique_ptr<GrD3DTextureResourceInfo> fTextureResourceInfo;
|
|
57
|
+
sk_sp<GrD3DResourceState> fResourceState;
|
|
58
|
+
};
|
|
59
|
+
|
|
60
|
+
#endif
|
|
@@ -0,0 +1,56 @@
|
|
|
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 GrImageContext_DEFINED
|
|
9
|
+
#define GrImageContext_DEFINED
|
|
10
|
+
|
|
11
|
+
#include "include/core/SkRefCnt.h"
|
|
12
|
+
#include "include/private/SingleOwner.h"
|
|
13
|
+
#include "include/private/SkAPI.h"
|
|
14
|
+
#include "include/private/gpu/ganesh/GrContext_Base.h"
|
|
15
|
+
|
|
16
|
+
class GrContextThreadSafeProxy;
|
|
17
|
+
class GrImageContextPriv;
|
|
18
|
+
|
|
19
|
+
// This is now just a view on a ThreadSafeProxy, that SkImages can attempt to
|
|
20
|
+
// downcast to a GrDirectContext as a backdoor to some operations. Once we remove the backdoors,
|
|
21
|
+
// this goes away and SkImages just hold ThreadSafeProxies.
|
|
22
|
+
class GrImageContext : public GrContext_Base {
|
|
23
|
+
public:
|
|
24
|
+
~GrImageContext() override;
|
|
25
|
+
|
|
26
|
+
// Provides access to functions that aren't part of the public API.
|
|
27
|
+
GrImageContextPriv priv();
|
|
28
|
+
const GrImageContextPriv priv() const; // NOLINT(readability-const-return-type)
|
|
29
|
+
|
|
30
|
+
protected:
|
|
31
|
+
friend class GrImageContextPriv; // for hidden functions
|
|
32
|
+
|
|
33
|
+
explicit GrImageContext(sk_sp<GrContextThreadSafeProxy>);
|
|
34
|
+
|
|
35
|
+
SK_API virtual void abandonContext();
|
|
36
|
+
SK_API virtual bool abandoned();
|
|
37
|
+
|
|
38
|
+
/** This is only useful for debug purposes */
|
|
39
|
+
skgpu::SingleOwner* singleOwner() const { return &fSingleOwner; }
|
|
40
|
+
|
|
41
|
+
GrImageContext* asImageContext() override { return this; }
|
|
42
|
+
|
|
43
|
+
private:
|
|
44
|
+
// When making promise images, we currently need a placeholder GrImageContext instance to give
|
|
45
|
+
// to the SkImage that has no real power, just a wrapper around the ThreadSafeProxy.
|
|
46
|
+
// TODO: De-power SkImage to ThreadSafeProxy or at least figure out a way to share one instance.
|
|
47
|
+
static sk_sp<GrImageContext> MakeForPromiseImage(sk_sp<GrContextThreadSafeProxy>);
|
|
48
|
+
|
|
49
|
+
// In debug builds we guard against improper thread handling
|
|
50
|
+
// This guard is passed to the GrDrawingManager and, from there to all the
|
|
51
|
+
// GrSurfaceDrawContexts. It is also passed to the GrResourceProvider and SkGpuDevice.
|
|
52
|
+
// TODO: Move this down to GrRecordingContext.
|
|
53
|
+
mutable skgpu::SingleOwner fSingleOwner;
|
|
54
|
+
};
|
|
55
|
+
|
|
56
|
+
#endif
|
|
@@ -0,0 +1,66 @@
|
|
|
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 GrTextureGenerator_DEFINED
|
|
9
|
+
#define GrTextureGenerator_DEFINED
|
|
10
|
+
|
|
11
|
+
#include "include/core/SkImageGenerator.h"
|
|
12
|
+
#include "include/gpu/ganesh/GrTypes.h"
|
|
13
|
+
#include "include/private/SkAPI.h"
|
|
14
|
+
|
|
15
|
+
#include <cstdint>
|
|
16
|
+
|
|
17
|
+
class GrRecordingContext;
|
|
18
|
+
class GrSurfaceProxyView;
|
|
19
|
+
enum class GrImageTexGenPolicy : int;
|
|
20
|
+
namespace skgpu { enum class Mipmapped : bool; }
|
|
21
|
+
struct SkImageInfo;
|
|
22
|
+
|
|
23
|
+
class SK_API GrTextureGenerator : public SkImageGenerator {
|
|
24
|
+
public:
|
|
25
|
+
bool isTextureGenerator() const final { return true; }
|
|
26
|
+
|
|
27
|
+
/**
|
|
28
|
+
* If the generator can natively/efficiently return its pixels as a GPU image (backed by a
|
|
29
|
+
* texture) this will return that image. If not, this will return NULL.
|
|
30
|
+
*
|
|
31
|
+
* Regarding the GrRecordingContext parameter:
|
|
32
|
+
*
|
|
33
|
+
* It must be non-NULL. The generator should only succeed if:
|
|
34
|
+
* - its internal context is the same
|
|
35
|
+
* - it can somehow convert its texture into one that is valid for the provided context.
|
|
36
|
+
*
|
|
37
|
+
* If the mipmapped parameter is kYes, the generator should try to create a TextureProxy that
|
|
38
|
+
* at least has the mip levels allocated and the base layer filled in. If this is not possible,
|
|
39
|
+
* the generator is allowed to return a non mipped proxy, but this will have some additional
|
|
40
|
+
* overhead in later allocating mips and copying of the base layer.
|
|
41
|
+
*
|
|
42
|
+
* GrImageTexGenPolicy determines whether or not a new texture must be created (and its budget
|
|
43
|
+
* status) or whether this may (but is not required to) return a pre-existing texture that is
|
|
44
|
+
* retained by the generator (kDraw).
|
|
45
|
+
*/
|
|
46
|
+
GrSurfaceProxyView generateTexture(GrRecordingContext*,
|
|
47
|
+
const SkImageInfo& info,
|
|
48
|
+
skgpu::Mipmapped mipmapped,
|
|
49
|
+
GrImageTexGenPolicy);
|
|
50
|
+
|
|
51
|
+
// External clients should override GrExternalTextureGenerator instead of trying to implement
|
|
52
|
+
// this (which uses private Skia types)
|
|
53
|
+
virtual GrSurfaceProxyView onGenerateTexture(GrRecordingContext*, const SkImageInfo&,
|
|
54
|
+
skgpu::Mipmapped, GrImageTexGenPolicy) = 0;
|
|
55
|
+
|
|
56
|
+
// Most internal SkImageGenerators produce textures and views that use kTopLeft_GrSurfaceOrigin.
|
|
57
|
+
// If the generator may produce textures with different origins (e.g.
|
|
58
|
+
// GrAHardwareBufferImageGenerator) it should override this function to return the correct
|
|
59
|
+
// origin. Implementations should be thread-safe.
|
|
60
|
+
virtual GrSurfaceOrigin origin() const { return kTopLeft_GrSurfaceOrigin; }
|
|
61
|
+
|
|
62
|
+
protected:
|
|
63
|
+
GrTextureGenerator(const SkImageInfo& info, uint32_t uniqueId = kNeedNewImageUniqueID);
|
|
64
|
+
};
|
|
65
|
+
|
|
66
|
+
#endif // GrTextureGenerator_DEFINED
|