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,138 @@
|
|
|
1
|
+
|
|
2
|
+
/*
|
|
3
|
+
* Copyright 2006 The Android Open Source Project
|
|
4
|
+
*
|
|
5
|
+
* Use of this source code is governed by a BSD-style license that can be
|
|
6
|
+
* found in the LICENSE file.
|
|
7
|
+
*/
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
#ifndef SkDeque_DEFINED
|
|
11
|
+
#define SkDeque_DEFINED
|
|
12
|
+
|
|
13
|
+
#include "include/private/SkAPI.h"
|
|
14
|
+
|
|
15
|
+
#include <cstddef>
|
|
16
|
+
|
|
17
|
+
/*
|
|
18
|
+
* The deque class works by blindly creating memory space of a specified element
|
|
19
|
+
* size. It manages the memory as a doubly linked list of blocks each of which
|
|
20
|
+
* can contain multiple elements. Pushes and pops add/remove blocks from the
|
|
21
|
+
* beginning/end of the list as necessary while each block tracks the used
|
|
22
|
+
* portion of its memory.
|
|
23
|
+
* One behavior to be aware of is that the pops do not immediately remove an
|
|
24
|
+
* empty block from the beginning/end of the list (Presumably so push/pop pairs
|
|
25
|
+
* on the block boundaries don't cause thrashing). This can result in the first/
|
|
26
|
+
* last element not residing in the first/last block.
|
|
27
|
+
*/
|
|
28
|
+
class SK_API SkDeque {
|
|
29
|
+
public:
|
|
30
|
+
/**
|
|
31
|
+
* elemSize specifies the size of each individual element in the deque
|
|
32
|
+
* allocCount specifies how many elements are to be allocated as a block
|
|
33
|
+
*/
|
|
34
|
+
explicit SkDeque(size_t elemSize, int allocCount = 1);
|
|
35
|
+
SkDeque(size_t elemSize, void* storage, size_t storageSize, int allocCount = 1);
|
|
36
|
+
~SkDeque();
|
|
37
|
+
|
|
38
|
+
bool empty() const { return 0 == fCount; }
|
|
39
|
+
int count() const { return fCount; }
|
|
40
|
+
size_t elemSize() const { return fElemSize; }
|
|
41
|
+
|
|
42
|
+
const void* front() const { return fFront; }
|
|
43
|
+
const void* back() const { return fBack; }
|
|
44
|
+
|
|
45
|
+
void* front() { return fFront; }
|
|
46
|
+
void* back() { return fBack; }
|
|
47
|
+
|
|
48
|
+
/**
|
|
49
|
+
* push_front and push_back return a pointer to the memory space
|
|
50
|
+
* for the new element
|
|
51
|
+
*/
|
|
52
|
+
void* push_front();
|
|
53
|
+
void* push_back();
|
|
54
|
+
|
|
55
|
+
void pop_front();
|
|
56
|
+
void pop_back();
|
|
57
|
+
|
|
58
|
+
private:
|
|
59
|
+
struct Block;
|
|
60
|
+
|
|
61
|
+
public:
|
|
62
|
+
class Iter {
|
|
63
|
+
public:
|
|
64
|
+
enum IterStart {
|
|
65
|
+
kFront_IterStart,
|
|
66
|
+
kBack_IterStart,
|
|
67
|
+
};
|
|
68
|
+
|
|
69
|
+
/**
|
|
70
|
+
* Creates an uninitialized iterator. Must be reset()
|
|
71
|
+
*/
|
|
72
|
+
Iter();
|
|
73
|
+
|
|
74
|
+
Iter(const SkDeque& d, IterStart startLoc);
|
|
75
|
+
void* next();
|
|
76
|
+
void* prev();
|
|
77
|
+
|
|
78
|
+
void reset(const SkDeque& d, IterStart startLoc);
|
|
79
|
+
|
|
80
|
+
private:
|
|
81
|
+
SkDeque::Block* fCurBlock;
|
|
82
|
+
char* fPos;
|
|
83
|
+
size_t fElemSize;
|
|
84
|
+
};
|
|
85
|
+
|
|
86
|
+
// Inherit privately from Iter to prevent access to reverse iteration
|
|
87
|
+
class F2BIter : private Iter {
|
|
88
|
+
public:
|
|
89
|
+
F2BIter() {}
|
|
90
|
+
|
|
91
|
+
/**
|
|
92
|
+
* Wrap Iter's 2 parameter ctor to force initialization to the
|
|
93
|
+
* beginning of the deque
|
|
94
|
+
*/
|
|
95
|
+
F2BIter(const SkDeque& d) : INHERITED(d, kFront_IterStart) {}
|
|
96
|
+
|
|
97
|
+
using Iter::next;
|
|
98
|
+
|
|
99
|
+
/**
|
|
100
|
+
* Wrap Iter::reset to force initialization to the beginning of the
|
|
101
|
+
* deque
|
|
102
|
+
*/
|
|
103
|
+
void reset(const SkDeque& d) {
|
|
104
|
+
this->INHERITED::reset(d, kFront_IterStart);
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
private:
|
|
108
|
+
using INHERITED = Iter;
|
|
109
|
+
};
|
|
110
|
+
|
|
111
|
+
private:
|
|
112
|
+
// allow unit test to call numBlocksAllocated
|
|
113
|
+
friend class DequeUnitTestHelper;
|
|
114
|
+
|
|
115
|
+
void* fFront;
|
|
116
|
+
void* fBack;
|
|
117
|
+
|
|
118
|
+
Block* fFrontBlock;
|
|
119
|
+
Block* fBackBlock;
|
|
120
|
+
size_t fElemSize;
|
|
121
|
+
void* fInitialStorage;
|
|
122
|
+
int fCount; // number of elements in the deque
|
|
123
|
+
int fAllocCount; // number of elements to allocate per block
|
|
124
|
+
|
|
125
|
+
Block* allocateBlock(int allocCount);
|
|
126
|
+
void freeBlock(Block* block);
|
|
127
|
+
|
|
128
|
+
/**
|
|
129
|
+
* This returns the number of chunk blocks allocated by the deque. It
|
|
130
|
+
* can be used to gauge the effectiveness of the selected allocCount.
|
|
131
|
+
*/
|
|
132
|
+
int numBlocksAllocated() const;
|
|
133
|
+
|
|
134
|
+
SkDeque(const SkDeque&) = delete;
|
|
135
|
+
SkDeque& operator=(const SkDeque&) = delete;
|
|
136
|
+
};
|
|
137
|
+
|
|
138
|
+
#endif
|
|
@@ -0,0 +1,249 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright 2016 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 SkEncodedInfo_DEFINED
|
|
9
|
+
#define SkEncodedInfo_DEFINED
|
|
10
|
+
|
|
11
|
+
#include "include/core/SkAlphaType.h"
|
|
12
|
+
#include "include/core/SkColorSpace.h"
|
|
13
|
+
#include "include/core/SkColorType.h"
|
|
14
|
+
#include "include/core/SkData.h"
|
|
15
|
+
#include "include/core/SkImageInfo.h"
|
|
16
|
+
#include "include/core/SkRefCnt.h"
|
|
17
|
+
#include "include/core/SkTypes.h"
|
|
18
|
+
#include "include/private/SkAPI.h"
|
|
19
|
+
#include "include/private/SkHdrMetadata.h"
|
|
20
|
+
#include "include/private/SkTo.h"
|
|
21
|
+
#include "modules/skcms/skcms.h"
|
|
22
|
+
|
|
23
|
+
#include <cstdint>
|
|
24
|
+
#include <memory>
|
|
25
|
+
#include <tuple>
|
|
26
|
+
#include <utility>
|
|
27
|
+
|
|
28
|
+
namespace SkCodecs {
|
|
29
|
+
class ColorProfile;
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
struct SK_API SkEncodedInfo {
|
|
33
|
+
public:
|
|
34
|
+
enum Alpha {
|
|
35
|
+
kOpaque_Alpha,
|
|
36
|
+
kUnpremul_Alpha,
|
|
37
|
+
|
|
38
|
+
// Each pixel is either fully opaque or fully transparent.
|
|
39
|
+
// There is no difference between requesting kPremul or kUnpremul.
|
|
40
|
+
kBinary_Alpha,
|
|
41
|
+
};
|
|
42
|
+
|
|
43
|
+
/*
|
|
44
|
+
* We strive to make the number of components per pixel obvious through
|
|
45
|
+
* our naming conventions.
|
|
46
|
+
* Ex: kRGB has 3 components. kRGBA has 4 components.
|
|
47
|
+
*
|
|
48
|
+
* This sometimes results in redundant Alpha and Color information.
|
|
49
|
+
* Ex: kRGB images must also be kOpaque.
|
|
50
|
+
*/
|
|
51
|
+
enum Color {
|
|
52
|
+
// PNG, WBMP
|
|
53
|
+
kGray_Color,
|
|
54
|
+
|
|
55
|
+
// PNG
|
|
56
|
+
kGrayAlpha_Color,
|
|
57
|
+
|
|
58
|
+
// PNG with Skia-specific sBIT
|
|
59
|
+
// Like kGrayAlpha, except this expects to be treated as
|
|
60
|
+
// kAlpha_8_SkColorType, which ignores the gray component. If
|
|
61
|
+
// decoded to full color (e.g. kN32), the gray component is respected
|
|
62
|
+
// (so it can share code with kGrayAlpha).
|
|
63
|
+
kXAlpha_Color,
|
|
64
|
+
|
|
65
|
+
// PNG
|
|
66
|
+
// 565 images may be encoded to PNG by specifying the number of
|
|
67
|
+
// significant bits for each channel. This is a strange 565
|
|
68
|
+
// representation because the image is still encoded with 8 bits per
|
|
69
|
+
// component.
|
|
70
|
+
k565_Color,
|
|
71
|
+
|
|
72
|
+
// PNG, GIF, BMP
|
|
73
|
+
kPalette_Color,
|
|
74
|
+
|
|
75
|
+
// PNG, RAW
|
|
76
|
+
kRGB_Color,
|
|
77
|
+
kRGBA_Color,
|
|
78
|
+
|
|
79
|
+
// BMP
|
|
80
|
+
kBGR_Color,
|
|
81
|
+
kBGRX_Color,
|
|
82
|
+
kBGRA_Color,
|
|
83
|
+
|
|
84
|
+
// JPEG, WEBP
|
|
85
|
+
kYUV_Color,
|
|
86
|
+
|
|
87
|
+
// WEBP
|
|
88
|
+
kYUVA_Color,
|
|
89
|
+
|
|
90
|
+
// JPEG
|
|
91
|
+
// Photoshop actually writes inverted CMYK data into JPEGs, where zero
|
|
92
|
+
// represents 100% ink coverage. For this reason, we treat CMYK JPEGs
|
|
93
|
+
// as having inverted CMYK. libjpeg-turbo warns that this may break
|
|
94
|
+
// other applications, but the CMYK JPEGs we see on the web expect to
|
|
95
|
+
// be treated as inverted CMYK.
|
|
96
|
+
kInvertedCMYK_Color,
|
|
97
|
+
kYCCK_Color,
|
|
98
|
+
};
|
|
99
|
+
|
|
100
|
+
static SkEncodedInfo Make(
|
|
101
|
+
int width, int height, Color color, Alpha alpha, int bitsPerComponent);
|
|
102
|
+
|
|
103
|
+
static SkEncodedInfo Make(
|
|
104
|
+
int width, int height, Color color, Alpha alpha, int bitsPerComponent,
|
|
105
|
+
std::unique_ptr<SkCodecs::ColorProfile> profile);
|
|
106
|
+
|
|
107
|
+
static SkEncodedInfo Make(
|
|
108
|
+
int width, int height, Color color, Alpha alpha, int bitsPerComponent,
|
|
109
|
+
std::unique_ptr<SkCodecs::ColorProfile> profile, int colorDepth);
|
|
110
|
+
|
|
111
|
+
static SkEncodedInfo Make(
|
|
112
|
+
int width, int height, Color color, Alpha alpha, int bitsPerComponent,
|
|
113
|
+
int colorDepth,
|
|
114
|
+
std::unique_ptr<SkCodecs::ColorProfile> profile, const skhdr::Metadata& hdrMetadata);
|
|
115
|
+
|
|
116
|
+
/*
|
|
117
|
+
* Returns a recommended SkImageInfo.
|
|
118
|
+
*
|
|
119
|
+
* TODO: Leave this up to the client.
|
|
120
|
+
*/
|
|
121
|
+
SkImageInfo makeImageInfo() const;
|
|
122
|
+
|
|
123
|
+
int width() const { return fWidth; }
|
|
124
|
+
int height() const { return fHeight; }
|
|
125
|
+
Color color() const { return fColor; }
|
|
126
|
+
Alpha alpha() const { return fAlpha; }
|
|
127
|
+
bool opaque() const { return fAlpha == kOpaque_Alpha; }
|
|
128
|
+
|
|
129
|
+
// TODO(https://issues.skia.org/issues/464217864): Remove direct access to the
|
|
130
|
+
// skcms_ICCProfile and change profileData() to serialize a new profile.
|
|
131
|
+
const skcms_ICCProfile* profile() const;
|
|
132
|
+
sk_sp<const SkData> profileData() const;
|
|
133
|
+
const SkCodecs::ColorProfile* colorProfile() const {
|
|
134
|
+
return fColorProfile.get();
|
|
135
|
+
}
|
|
136
|
+
|
|
137
|
+
uint8_t bitsPerComponent() const { return fBitsPerComponent; }
|
|
138
|
+
|
|
139
|
+
uint8_t bitsPerPixel() const {
|
|
140
|
+
switch (fColor) {
|
|
141
|
+
case kGray_Color:
|
|
142
|
+
return fBitsPerComponent;
|
|
143
|
+
case kXAlpha_Color:
|
|
144
|
+
case kGrayAlpha_Color:
|
|
145
|
+
return 2 * fBitsPerComponent;
|
|
146
|
+
case kPalette_Color:
|
|
147
|
+
return fBitsPerComponent;
|
|
148
|
+
case kRGB_Color:
|
|
149
|
+
case kBGR_Color:
|
|
150
|
+
case kYUV_Color:
|
|
151
|
+
case k565_Color:
|
|
152
|
+
return 3 * fBitsPerComponent;
|
|
153
|
+
case kRGBA_Color:
|
|
154
|
+
case kBGRA_Color:
|
|
155
|
+
case kBGRX_Color:
|
|
156
|
+
case kYUVA_Color:
|
|
157
|
+
case kInvertedCMYK_Color:
|
|
158
|
+
case kYCCK_Color:
|
|
159
|
+
return 4 * fBitsPerComponent;
|
|
160
|
+
}
|
|
161
|
+
SkASSERT(false);
|
|
162
|
+
return 0;
|
|
163
|
+
}
|
|
164
|
+
|
|
165
|
+
SkEncodedInfo(const SkEncodedInfo& orig) = delete;
|
|
166
|
+
SkEncodedInfo& operator=(const SkEncodedInfo&) = delete;
|
|
167
|
+
|
|
168
|
+
SkEncodedInfo(SkEncodedInfo&& orig);
|
|
169
|
+
SkEncodedInfo& operator=(SkEncodedInfo&&);
|
|
170
|
+
|
|
171
|
+
// Explicit copy method, to avoid accidental copying.
|
|
172
|
+
SkEncodedInfo copy() const;
|
|
173
|
+
|
|
174
|
+
// Return number of bits of R/G/B channel
|
|
175
|
+
uint8_t getColorDepth() const {
|
|
176
|
+
return fColorDepth;
|
|
177
|
+
}
|
|
178
|
+
|
|
179
|
+
// Return the HDR metadata associated with this image. Note that even SDR images can include
|
|
180
|
+
// HDR metadata (e.g, indicating how to inverse tone map when displayed on an HDR display).
|
|
181
|
+
const skhdr::Metadata& getHdrMetadata() const {
|
|
182
|
+
return fHdrMetadata;
|
|
183
|
+
}
|
|
184
|
+
|
|
185
|
+
~SkEncodedInfo();
|
|
186
|
+
|
|
187
|
+
private:
|
|
188
|
+
SkEncodedInfo(
|
|
189
|
+
int width, int height, Color color, Alpha alpha, uint8_t bitsPerComponent,
|
|
190
|
+
uint8_t colorDepth,
|
|
191
|
+
std::unique_ptr<SkCodecs::ColorProfile> profile, const skhdr::Metadata& hdrMetadata);
|
|
192
|
+
|
|
193
|
+
static void VerifyColor(Color color, Alpha alpha, int bitsPerComponent) {
|
|
194
|
+
// Avoid `-Wunused-parameter` warnings on non-debug builds.
|
|
195
|
+
std::ignore = alpha;
|
|
196
|
+
std::ignore = bitsPerComponent;
|
|
197
|
+
|
|
198
|
+
switch (color) {
|
|
199
|
+
case kGray_Color:
|
|
200
|
+
SkASSERT(kOpaque_Alpha == alpha);
|
|
201
|
+
return;
|
|
202
|
+
case kGrayAlpha_Color:
|
|
203
|
+
SkASSERT(kOpaque_Alpha != alpha);
|
|
204
|
+
return;
|
|
205
|
+
case kPalette_Color:
|
|
206
|
+
SkASSERT(16 != bitsPerComponent);
|
|
207
|
+
return;
|
|
208
|
+
case kRGB_Color:
|
|
209
|
+
case kBGR_Color:
|
|
210
|
+
case kBGRX_Color:
|
|
211
|
+
SkASSERT(kOpaque_Alpha == alpha);
|
|
212
|
+
SkASSERT(bitsPerComponent >= 8);
|
|
213
|
+
return;
|
|
214
|
+
case kYUV_Color:
|
|
215
|
+
case kInvertedCMYK_Color:
|
|
216
|
+
case kYCCK_Color:
|
|
217
|
+
SkASSERT(kOpaque_Alpha == alpha);
|
|
218
|
+
SkASSERT(8 == bitsPerComponent);
|
|
219
|
+
return;
|
|
220
|
+
case kRGBA_Color:
|
|
221
|
+
SkASSERT(bitsPerComponent >= 8);
|
|
222
|
+
return;
|
|
223
|
+
case kBGRA_Color:
|
|
224
|
+
case kYUVA_Color:
|
|
225
|
+
SkASSERT(8 == bitsPerComponent);
|
|
226
|
+
return;
|
|
227
|
+
case kXAlpha_Color:
|
|
228
|
+
SkASSERT(kUnpremul_Alpha == alpha);
|
|
229
|
+
SkASSERT(8 == bitsPerComponent);
|
|
230
|
+
return;
|
|
231
|
+
case k565_Color:
|
|
232
|
+
SkASSERT(kOpaque_Alpha == alpha);
|
|
233
|
+
SkASSERT(8 == bitsPerComponent);
|
|
234
|
+
return;
|
|
235
|
+
}
|
|
236
|
+
SkASSERT(false); // Unrecognized `color` enum value.
|
|
237
|
+
}
|
|
238
|
+
|
|
239
|
+
int fWidth;
|
|
240
|
+
int fHeight;
|
|
241
|
+
Color fColor;
|
|
242
|
+
Alpha fAlpha;
|
|
243
|
+
uint8_t fBitsPerComponent;
|
|
244
|
+
uint8_t fColorDepth;
|
|
245
|
+
std::unique_ptr<const SkCodecs::ColorProfile> fColorProfile;
|
|
246
|
+
skhdr::Metadata fHdrMetadata;
|
|
247
|
+
};
|
|
248
|
+
|
|
249
|
+
#endif
|
|
@@ -0,0 +1,92 @@
|
|
|
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 SkEnumBitMask_DEFINED
|
|
9
|
+
#define SkEnumBitMask_DEFINED
|
|
10
|
+
|
|
11
|
+
#include "include/private/SkAttributes.h"
|
|
12
|
+
|
|
13
|
+
#include <type_traits>
|
|
14
|
+
|
|
15
|
+
/**
|
|
16
|
+
* Wraps an enum that is used for flags, and enables masking with type safety. Example:
|
|
17
|
+
*
|
|
18
|
+
* enum class MyFlags {
|
|
19
|
+
* kNone = 0,
|
|
20
|
+
* kA = 1,
|
|
21
|
+
* kB = 2,
|
|
22
|
+
* kC = 4,
|
|
23
|
+
* };
|
|
24
|
+
*
|
|
25
|
+
* SK_MAKE_BITMASK_OPS(MyFlags)
|
|
26
|
+
*
|
|
27
|
+
* ...
|
|
28
|
+
*
|
|
29
|
+
* SkEnumBitMask<MyFlags> flags = MyFlags::kA | MyFlags::kB;
|
|
30
|
+
*
|
|
31
|
+
* if (flags & MyFlags::kB) {}
|
|
32
|
+
*
|
|
33
|
+
* ...
|
|
34
|
+
*/
|
|
35
|
+
template<typename E>
|
|
36
|
+
class SkEnumBitMask {
|
|
37
|
+
using I = std::underlying_type_t<E>;
|
|
38
|
+
public:
|
|
39
|
+
SK_ALWAYS_INLINE constexpr SkEnumBitMask() : SkEnumBitMask(I(0)) {}
|
|
40
|
+
SK_ALWAYS_INLINE constexpr SkEnumBitMask(E e) : SkEnumBitMask(static_cast<I>(e)) {}
|
|
41
|
+
|
|
42
|
+
SK_ALWAYS_INLINE constexpr explicit operator bool() const { return fValue; }
|
|
43
|
+
SK_ALWAYS_INLINE constexpr I value() const { return fValue; }
|
|
44
|
+
|
|
45
|
+
SK_ALWAYS_INLINE constexpr bool operator==(SkEnumBitMask m) const { return fValue == m.fValue; }
|
|
46
|
+
SK_ALWAYS_INLINE constexpr bool operator!=(SkEnumBitMask m) const { return fValue != m.fValue; }
|
|
47
|
+
|
|
48
|
+
SK_ALWAYS_INLINE constexpr SkEnumBitMask operator|(SkEnumBitMask m) const {
|
|
49
|
+
return SkEnumBitMask(fValue | m.fValue);
|
|
50
|
+
}
|
|
51
|
+
SK_ALWAYS_INLINE constexpr SkEnumBitMask operator&(SkEnumBitMask m) const {
|
|
52
|
+
return SkEnumBitMask(fValue & m.fValue);
|
|
53
|
+
}
|
|
54
|
+
SK_ALWAYS_INLINE constexpr SkEnumBitMask operator^(SkEnumBitMask m) const {
|
|
55
|
+
return SkEnumBitMask(fValue ^ m.fValue);
|
|
56
|
+
}
|
|
57
|
+
SK_ALWAYS_INLINE constexpr SkEnumBitMask operator~() const { return SkEnumBitMask(~fValue); }
|
|
58
|
+
|
|
59
|
+
SK_ALWAYS_INLINE SkEnumBitMask& operator|=(SkEnumBitMask m) { return *this = *this | m; }
|
|
60
|
+
SK_ALWAYS_INLINE SkEnumBitMask& operator&=(SkEnumBitMask m) { return *this = *this & m; }
|
|
61
|
+
SK_ALWAYS_INLINE SkEnumBitMask& operator^=(SkEnumBitMask m) { return *this = *this ^ m; }
|
|
62
|
+
|
|
63
|
+
private:
|
|
64
|
+
SK_ALWAYS_INLINE constexpr explicit SkEnumBitMask(I value) : fValue(value) {}
|
|
65
|
+
|
|
66
|
+
I fValue;
|
|
67
|
+
};
|
|
68
|
+
|
|
69
|
+
/**
|
|
70
|
+
* Defines functions that make it possible to use bitwise operators on an enum.
|
|
71
|
+
*/
|
|
72
|
+
#define SK_MAKE_BITMASK_OPS(E) \
|
|
73
|
+
[[maybe_unused]] constexpr SkEnumBitMask<E> operator|(E a, E b) { \
|
|
74
|
+
return SkEnumBitMask<E>(a) | b; \
|
|
75
|
+
} \
|
|
76
|
+
[[maybe_unused]] constexpr SkEnumBitMask<E> operator&(E a, E b) { \
|
|
77
|
+
return SkEnumBitMask<E>(a) & b; \
|
|
78
|
+
} \
|
|
79
|
+
[[maybe_unused]] constexpr SkEnumBitMask<E> operator^(E a, E b) { \
|
|
80
|
+
return SkEnumBitMask<E>(a) ^ b; \
|
|
81
|
+
} \
|
|
82
|
+
[[maybe_unused]] constexpr SkEnumBitMask<E> operator~(E e) { \
|
|
83
|
+
return ~SkEnumBitMask<E>(e); \
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
#define SK_DECL_BITMASK_OPS_FRIENDS(E) \
|
|
87
|
+
friend constexpr SkEnumBitMask<E> operator|(E, E); \
|
|
88
|
+
friend constexpr SkEnumBitMask<E> operator&(E, E); \
|
|
89
|
+
friend constexpr SkEnumBitMask<E> operator^(E, E); \
|
|
90
|
+
friend constexpr SkEnumBitMask<E> operator~(E);
|
|
91
|
+
|
|
92
|
+
#endif // SkEnumBitMask_DEFINED
|
|
@@ -0,0 +1,69 @@
|
|
|
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 SkExif_DEFINED
|
|
9
|
+
#define SkExif_DEFINED
|
|
10
|
+
|
|
11
|
+
#include "include/codec/SkEncodedOrigin.h"
|
|
12
|
+
#include "include/core/SkRefCnt.h"
|
|
13
|
+
#include "include/private/SkAPI.h"
|
|
14
|
+
|
|
15
|
+
#include <cstdint>
|
|
16
|
+
#include <optional>
|
|
17
|
+
|
|
18
|
+
class SkData;
|
|
19
|
+
|
|
20
|
+
namespace SkExif {
|
|
21
|
+
|
|
22
|
+
// Tag values that are parsed by Parse and stored in Metadata.
|
|
23
|
+
static constexpr uint16_t kOriginTag = 0x112;
|
|
24
|
+
static constexpr uint16_t kResolutionUnitTag = 0x0128;
|
|
25
|
+
static constexpr uint16_t kXResolutionTag = 0x011a;
|
|
26
|
+
static constexpr uint16_t kYResolutionTag = 0x011b;
|
|
27
|
+
static constexpr uint16_t kPixelXDimensionTag = 0xa002;
|
|
28
|
+
static constexpr uint16_t kPixelYDimensionTag = 0xa003;
|
|
29
|
+
|
|
30
|
+
struct Metadata {
|
|
31
|
+
// The image orientation.
|
|
32
|
+
std::optional<SkEncodedOrigin> fOrigin;
|
|
33
|
+
|
|
34
|
+
// The HDR headroom property.
|
|
35
|
+
// https://developer.apple.com/documentation/appkit/images_and_pdf/applying_apple_hdr_effect_to_your_photos
|
|
36
|
+
std::optional<float> fHdrHeadroom;
|
|
37
|
+
|
|
38
|
+
// Resolution.
|
|
39
|
+
std::optional<uint16_t> fResolutionUnit;
|
|
40
|
+
std::optional<float> fXResolution;
|
|
41
|
+
std::optional<float> fYResolution;
|
|
42
|
+
|
|
43
|
+
// Size in pixels.
|
|
44
|
+
std::optional<uint32_t> fPixelXDimension;
|
|
45
|
+
std::optional<uint32_t> fPixelYDimension;
|
|
46
|
+
};
|
|
47
|
+
|
|
48
|
+
/*
|
|
49
|
+
* Parse the metadata specified in |data| and write them to |metadata|. Stop only at an
|
|
50
|
+
* unrecoverable error (allow truncated input).
|
|
51
|
+
*/
|
|
52
|
+
void SK_API Parse(Metadata& metadata, const SkData* data);
|
|
53
|
+
|
|
54
|
+
/*
|
|
55
|
+
* Write exif data that includes the values in |metadata| and returns it as SkData
|
|
56
|
+
* untruncated. Return nullptr if a write to the data stream fails or if
|
|
57
|
+
* |metadata.fHdrHeadroom| has value.
|
|
58
|
+
* This function cannot write an IFD entry based on the HdrHeadroom value because
|
|
59
|
+
* the information of maker33 and maker48 are lost in decoding.
|
|
60
|
+
* For metadata that belongs in a subIFD the function will write it to one and
|
|
61
|
+
* store it after the root IFD.
|
|
62
|
+
* Data that does not fit within kSizeEntry, is appended to the end of the data,
|
|
63
|
+
* after the subIFD if it exists.
|
|
64
|
+
*/
|
|
65
|
+
sk_sp<SkData> WriteExif(Metadata& metadata);
|
|
66
|
+
|
|
67
|
+
} // namespace SkExif
|
|
68
|
+
|
|
69
|
+
#endif
|