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,64 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright 2022 Google LLC
|
|
3
|
+
*
|
|
4
|
+
* Use of this source code is governed by a BSD-style license that can be
|
|
5
|
+
* found in the LICENSE file.
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
#ifndef SK_USER_CONFIG_WAS_LOADED
|
|
9
|
+
|
|
10
|
+
// Include this to set reasonable defaults (e.g. for SK_CPU_LENDIAN)
|
|
11
|
+
#include "include/private/SkFeatures.h"
|
|
12
|
+
// Include this so that users can define the lowest active log priority in their config
|
|
13
|
+
#include "include/private/SkLogPriority.h" // IWYU pragma: keep
|
|
14
|
+
|
|
15
|
+
// Allows embedders that want to disable macros that take arguments to just
|
|
16
|
+
// define that symbol to be one of these
|
|
17
|
+
#define SK_NOTHING_ARG1(arg1)
|
|
18
|
+
#define SK_NOTHING_ARG2(arg1, arg2)
|
|
19
|
+
#define SK_NOTHING_ARG3(arg1, arg2, arg3)
|
|
20
|
+
|
|
21
|
+
// IWYU pragma: begin_exports
|
|
22
|
+
// Note: SK_USER_CONFIG_HEADER will not work with Bazel builds and some C++ compilers.
|
|
23
|
+
#if defined(SK_USER_CONFIG_HEADER)
|
|
24
|
+
#include SK_USER_CONFIG_HEADER
|
|
25
|
+
#elif defined(SK_USE_BAZEL_CONFIG_HEADER)
|
|
26
|
+
// The Bazel config file is presumed to be in the root directory of its Bazel Workspace.
|
|
27
|
+
// This is achieved in Skia by having a nested WORKSPACE in include/config and a cc_library
|
|
28
|
+
// defined in that folder. As a result, we do not try to include SkUserConfig.h from the
|
|
29
|
+
// top of Skia because Bazel sandboxing will move it to a different location.
|
|
30
|
+
#include "SkUserConfig.h" // NO_G3_REWRITE
|
|
31
|
+
#else
|
|
32
|
+
#include "include/config/SkUserConfig.h"
|
|
33
|
+
#endif
|
|
34
|
+
// IWYU pragma: end_exports
|
|
35
|
+
|
|
36
|
+
// Checks to make sure the SkUserConfig options do not conflict.
|
|
37
|
+
#if !defined(SK_DEBUG) && !defined(SK_RELEASE)
|
|
38
|
+
#ifdef NDEBUG
|
|
39
|
+
#define SK_RELEASE
|
|
40
|
+
#else
|
|
41
|
+
#define SK_DEBUG
|
|
42
|
+
#endif
|
|
43
|
+
#endif
|
|
44
|
+
|
|
45
|
+
#if defined(SK_DEBUG) && defined(SK_RELEASE)
|
|
46
|
+
# error "cannot define both SK_DEBUG and SK_RELEASE"
|
|
47
|
+
#elif !defined(SK_DEBUG) && !defined(SK_RELEASE)
|
|
48
|
+
# error "must define either SK_DEBUG or SK_RELEASE"
|
|
49
|
+
#endif
|
|
50
|
+
|
|
51
|
+
#if defined(SK_CPU_LENDIAN) && defined(SK_CPU_BENDIAN)
|
|
52
|
+
# error "cannot define both SK_CPU_LENDIAN and SK_CPU_BENDIAN"
|
|
53
|
+
#elif !defined(SK_CPU_LENDIAN) && !defined(SK_CPU_BENDIAN)
|
|
54
|
+
# error "must define either SK_CPU_LENDIAN or SK_CPU_BENDIAN"
|
|
55
|
+
#endif
|
|
56
|
+
|
|
57
|
+
#if defined(SK_CPU_BENDIAN) && !defined(I_ACKNOWLEDGE_SKIA_DOES_NOT_SUPPORT_BIG_ENDIAN)
|
|
58
|
+
#error "The Skia team is not endian-savvy enough to support big-endian CPUs."
|
|
59
|
+
#error "If you still want to use Skia,"
|
|
60
|
+
#error "please define I_ACKNOWLEDGE_SKIA_DOES_NOT_SUPPORT_BIG_ENDIAN."
|
|
61
|
+
#endif
|
|
62
|
+
|
|
63
|
+
#define SK_USER_CONFIG_WAS_LOADED
|
|
64
|
+
#endif // SK_USER_CONFIG_WAS_LOADED
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright 2026 Google LLC
|
|
3
|
+
*
|
|
4
|
+
* Use of this source code is governed by a BSD-style license that can be
|
|
5
|
+
* found in the LICENSE file.
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
#ifndef SkLog_DEFINED
|
|
9
|
+
#define SkLog_DEFINED
|
|
10
|
+
|
|
11
|
+
#include <cstdarg>
|
|
12
|
+
|
|
13
|
+
#include "include/private/SkAPI.h"
|
|
14
|
+
#include "include/private/SkAttributes.h"
|
|
15
|
+
#include "include/private/SkLoadUserConfig.h" // IWYU pragma: keep
|
|
16
|
+
#include "include/private/SkLogPriority.h"
|
|
17
|
+
|
|
18
|
+
#if !defined(SkLog)
|
|
19
|
+
// To be implemented per platform.
|
|
20
|
+
void SkLogVAList(SkLogPriority priority, const char format[], va_list args) SK_PRINTF_LIKE(2, 0);
|
|
21
|
+
void SK_SPI SkLog(SkLogPriority priority, const char format[], ...) SK_PRINTF_LIKE(2, 3);
|
|
22
|
+
#endif
|
|
23
|
+
|
|
24
|
+
/**
|
|
25
|
+
* TODO (b/469441457): SKGPU_GRAPHITE_LOWEST_ACTIVE_LOG_PRIORITY Was the config used to set the log
|
|
26
|
+
* priority, so we check for that define as well. Eventually, we should move clients using this
|
|
27
|
+
* define to the new one.
|
|
28
|
+
*/
|
|
29
|
+
#if defined(SKGPU_GRAPHITE_LOWEST_ACTIVE_LOG_PRIORITY)
|
|
30
|
+
static constexpr SkLogPriority MapGraphitePriority(skgpu::graphite::LogPriority priority) {
|
|
31
|
+
switch (priority) {
|
|
32
|
+
case skgpu::graphite::LogPriority::kError: return SkLogPriority::kError;
|
|
33
|
+
case skgpu::graphite::LogPriority::kWarning: return SkLogPriority::kWarning;
|
|
34
|
+
case skgpu::graphite::LogPriority::kInfo: return SkLogPriority::kInfo;
|
|
35
|
+
case skgpu::graphite::LogPriority::kDebug: return SkLogPriority::kDebug;
|
|
36
|
+
default: return SkLogPriority::kDebug;
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
#define SKIA_LOWEST_ACTIVE_LOG_PRIORITY MapGraphitePriority(SKGPU_GRAPHITE_LOWEST_ACTIVE_LOG_PRIORITY)
|
|
40
|
+
#endif
|
|
41
|
+
|
|
42
|
+
#if !defined(SKIA_LOWEST_ACTIVE_LOG_PRIORITY)
|
|
43
|
+
#ifdef SK_DEBUG
|
|
44
|
+
#define SKIA_LOWEST_ACTIVE_LOG_PRIORITY SkLogPriority::kDebug
|
|
45
|
+
#else
|
|
46
|
+
#define SKIA_LOWEST_ACTIVE_LOG_PRIORITY SkLogPriority::kInfo
|
|
47
|
+
#endif
|
|
48
|
+
#endif
|
|
49
|
+
|
|
50
|
+
#define SKIA_LOG(priority, fmt, ...) \
|
|
51
|
+
do { \
|
|
52
|
+
if constexpr (priority <= SKIA_LOWEST_ACTIVE_LOG_PRIORITY) { \
|
|
53
|
+
SkLog(priority, "[skia] " fmt "\n", ##__VA_ARGS__); \
|
|
54
|
+
} \
|
|
55
|
+
} while (0)
|
|
56
|
+
|
|
57
|
+
#define SKIA_LOG_E(fmt, ...) SKIA_LOG(SkLogPriority::kError, "** ERROR ** " fmt, ##__VA_ARGS__)
|
|
58
|
+
#define SKIA_LOG_W(fmt, ...) SKIA_LOG(SkLogPriority::kWarning, "WARNING - " fmt, ##__VA_ARGS__)
|
|
59
|
+
#define SKIA_LOG_I(fmt, ...) SKIA_LOG(SkLogPriority::kInfo, fmt, ##__VA_ARGS__)
|
|
60
|
+
#define SKIA_LOG_D(fmt, ...) SKIA_LOG(SkLogPriority::kDebug, fmt, ##__VA_ARGS__)
|
|
61
|
+
|
|
62
|
+
#endif // SkLog_DEFINED
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright 2026 Google LLC
|
|
3
|
+
*
|
|
4
|
+
* Use of this source code is governed by a BSD-style license that can be
|
|
5
|
+
* found in the LICENSE file.
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
#ifndef SkLogPriority_DEFINED
|
|
9
|
+
#define SkLogPriority_DEFINED
|
|
10
|
+
|
|
11
|
+
/**
|
|
12
|
+
* Note: this file may be included in clients' SkUserConfig.h files, so including any other headers
|
|
13
|
+
* in this file should be avoided.
|
|
14
|
+
*/
|
|
15
|
+
|
|
16
|
+
/**
|
|
17
|
+
* SKIA_LOWEST_ACTIVE_LOG_PRIORITY can be defined to one of these values (in
|
|
18
|
+
* SkUserConfig.h) to control Skia's logging behavior.
|
|
19
|
+
*
|
|
20
|
+
* For example:
|
|
21
|
+
* ```
|
|
22
|
+
* #define SKIA_LOWEST_ACTIVE_LOG_PRIORITY SkLogPriority::kWarning
|
|
23
|
+
* ```
|
|
24
|
+
* Would cause Skia to log warnings, non-fatal errors, and fatal errors.
|
|
25
|
+
* However, debug logs would be omitted.
|
|
26
|
+
*/
|
|
27
|
+
enum class SkLogPriority : int {
|
|
28
|
+
kError = 0,
|
|
29
|
+
kWarning = 1,
|
|
30
|
+
kInfo = 2,
|
|
31
|
+
kDebug = 3,
|
|
32
|
+
};
|
|
33
|
+
|
|
34
|
+
#endif // SkLogPriority_DEFINED
|
|
@@ -0,0 +1,170 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright 2018 Google LLC
|
|
3
|
+
*
|
|
4
|
+
* Use of this source code is governed by a BSD-style license that can be
|
|
5
|
+
* found in the LICENSE file.
|
|
6
|
+
*/
|
|
7
|
+
#ifndef SkMacros_DEFINED
|
|
8
|
+
#define SkMacros_DEFINED
|
|
9
|
+
|
|
10
|
+
#include "include/private/SkTo.h" // IWYU pragma: keep
|
|
11
|
+
|
|
12
|
+
/*
|
|
13
|
+
* Usage: SK_MACRO_CONCAT(a, b) to construct the symbol ab
|
|
14
|
+
*
|
|
15
|
+
* SK_MACRO_CONCAT_IMPL_PRIV just exists to make this work. Do not use directly
|
|
16
|
+
*
|
|
17
|
+
*/
|
|
18
|
+
#define SK_MACRO_CONCAT(X, Y) SK_MACRO_CONCAT_IMPL_PRIV(X, Y)
|
|
19
|
+
#define SK_MACRO_CONCAT_IMPL_PRIV(X, Y) X ## Y
|
|
20
|
+
|
|
21
|
+
/*
|
|
22
|
+
* Usage: SK_MACRO_APPEND_LINE(foo) to make foo123, where 123 is the current
|
|
23
|
+
* line number. Easy way to construct
|
|
24
|
+
* unique names for local functions or
|
|
25
|
+
* variables.
|
|
26
|
+
*/
|
|
27
|
+
#define SK_MACRO_APPEND_LINE(name) SK_MACRO_CONCAT(name, __LINE__)
|
|
28
|
+
|
|
29
|
+
#define SK_MACRO_APPEND_COUNTER(name) SK_MACRO_CONCAT(name, __COUNTER__)
|
|
30
|
+
|
|
31
|
+
/*
|
|
32
|
+
* Makes a string of X, where X is expanded before conversion to a string if X itself contains
|
|
33
|
+
* macros.
|
|
34
|
+
*
|
|
35
|
+
* Usage: SK_MACRO_STRINGIFY(__LINE__) to make "123", where 123 is the current line number.
|
|
36
|
+
*/
|
|
37
|
+
#define SK_MACRO_STRINGIFY(X) SK_MACRO_STRINGIFY_IMPL_PRIV(X)
|
|
38
|
+
#define SK_MACRO_STRINGIFY_IMPL_PRIV(X) #X
|
|
39
|
+
|
|
40
|
+
////////////////////////////////////////////////////////////////////////////////
|
|
41
|
+
|
|
42
|
+
// Can be used to bracket data types that must be dense/packed, e.g. hash keys.
|
|
43
|
+
#if defined(__clang__) // This should work on GCC too, but GCC diagnostic pop didn't seem to work!
|
|
44
|
+
#define SK_BEGIN_REQUIRE_DENSE _Pragma("GCC diagnostic push") \
|
|
45
|
+
_Pragma("GCC diagnostic error \"-Wpadded\"")
|
|
46
|
+
#define SK_END_REQUIRE_DENSE _Pragma("GCC diagnostic pop")
|
|
47
|
+
#else
|
|
48
|
+
#define SK_BEGIN_REQUIRE_DENSE
|
|
49
|
+
#define SK_END_REQUIRE_DENSE
|
|
50
|
+
#endif
|
|
51
|
+
|
|
52
|
+
#if defined(__clang__) && defined(__has_feature)
|
|
53
|
+
// Some compilers have a preprocessor that does not appear to do short-circuit
|
|
54
|
+
// evaluation as expected
|
|
55
|
+
#if __has_feature(leak_sanitizer) || __has_feature(address_sanitizer)
|
|
56
|
+
// Chrome had issues if we tried to include lsan_interface.h ourselves.
|
|
57
|
+
// https://github.com/llvm/llvm-project/blob/10a35632d55bb05004fe3d0c2d4432bb74897ee7/compiler-rt/include/sanitizer/lsan_interface.h#L26
|
|
58
|
+
extern "C" {
|
|
59
|
+
void __lsan_ignore_object(const void *p);
|
|
60
|
+
}
|
|
61
|
+
#define SK_INTENTIONALLY_LEAKED(X) __lsan_ignore_object(X)
|
|
62
|
+
#else
|
|
63
|
+
#define SK_INTENTIONALLY_LEAKED(X) ((void)0)
|
|
64
|
+
#endif
|
|
65
|
+
#else
|
|
66
|
+
#define SK_INTENTIONALLY_LEAKED(X) ((void)0)
|
|
67
|
+
#endif
|
|
68
|
+
|
|
69
|
+
#define SK_INIT_TO_AVOID_WARNING = 0
|
|
70
|
+
|
|
71
|
+
////////////////////////////////////////////////////////////////////////////////
|
|
72
|
+
|
|
73
|
+
/**
|
|
74
|
+
* Defines overloaded bitwise operators to make it easier to use an enum as a
|
|
75
|
+
* bitfield.
|
|
76
|
+
*/
|
|
77
|
+
#define SK_MAKE_BITFIELD_OPS(X) \
|
|
78
|
+
inline X operator ~(X a) { \
|
|
79
|
+
using U = std::underlying_type_t<X>; \
|
|
80
|
+
return (X) (~static_cast<U>(a)); \
|
|
81
|
+
} \
|
|
82
|
+
inline X operator |(X a, X b) { \
|
|
83
|
+
using U = std::underlying_type_t<X>; \
|
|
84
|
+
return (X) (static_cast<U>(a) | static_cast<U>(b)); \
|
|
85
|
+
} \
|
|
86
|
+
inline X& operator |=(X& a, X b) { \
|
|
87
|
+
return (a = a | b); \
|
|
88
|
+
} \
|
|
89
|
+
inline X operator &(X a, X b) { \
|
|
90
|
+
using U = std::underlying_type_t<X>; \
|
|
91
|
+
return (X) (static_cast<U>(a) & static_cast<U>(b)); \
|
|
92
|
+
} \
|
|
93
|
+
inline X& operator &=(X& a, X b) { \
|
|
94
|
+
return (a = a & b); \
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
#define SK_DECL_BITFIELD_OPS_FRIENDS(X) \
|
|
98
|
+
friend X operator ~(X a); \
|
|
99
|
+
friend X operator |(X a, X b); \
|
|
100
|
+
friend X& operator |=(X& a, X b); \
|
|
101
|
+
\
|
|
102
|
+
friend X operator &(X a, X b); \
|
|
103
|
+
friend X& operator &=(X& a, X b);
|
|
104
|
+
|
|
105
|
+
/**
|
|
106
|
+
* Wraps a C++11 enum that we use as a bitfield, and enables a limited amount of
|
|
107
|
+
* masking with type safety. Instantiated with the ~ operator.
|
|
108
|
+
*/
|
|
109
|
+
template<typename TFlags> class SkTFlagsMask {
|
|
110
|
+
public:
|
|
111
|
+
constexpr explicit SkTFlagsMask(TFlags value) : SkTFlagsMask(static_cast<int>(value)) {}
|
|
112
|
+
constexpr explicit SkTFlagsMask(int value) : fValue(value) {}
|
|
113
|
+
constexpr int value() const { return fValue; }
|
|
114
|
+
private:
|
|
115
|
+
const int fValue;
|
|
116
|
+
};
|
|
117
|
+
|
|
118
|
+
/**
|
|
119
|
+
* Defines bitwise operators that make it possible to use an enum class as a
|
|
120
|
+
* basic bitfield.
|
|
121
|
+
*/
|
|
122
|
+
#define SK_MAKE_BITFIELD_CLASS_OPS(X) \
|
|
123
|
+
[[maybe_unused]] constexpr SkTFlagsMask<X> operator~(X a) { \
|
|
124
|
+
return SkTFlagsMask<X>(~static_cast<int>(a)); \
|
|
125
|
+
} \
|
|
126
|
+
[[maybe_unused]] constexpr X operator|(X a, X b) { \
|
|
127
|
+
return static_cast<X>(static_cast<int>(a) | static_cast<int>(b)); \
|
|
128
|
+
} \
|
|
129
|
+
[[maybe_unused]] inline X& operator|=(X& a, X b) { \
|
|
130
|
+
return (a = a | b); \
|
|
131
|
+
} \
|
|
132
|
+
[[maybe_unused]] constexpr bool operator&(X a, X b) { \
|
|
133
|
+
return SkToBool(static_cast<int>(a) & static_cast<int>(b)); \
|
|
134
|
+
} \
|
|
135
|
+
[[maybe_unused]] constexpr SkTFlagsMask<X> operator|(SkTFlagsMask<X> a, SkTFlagsMask<X> b) { \
|
|
136
|
+
return SkTFlagsMask<X>(a.value() | b.value()); \
|
|
137
|
+
} \
|
|
138
|
+
[[maybe_unused]] constexpr SkTFlagsMask<X> operator|(SkTFlagsMask<X> a, X b) { \
|
|
139
|
+
return SkTFlagsMask<X>(a.value() | static_cast<int>(b)); \
|
|
140
|
+
} \
|
|
141
|
+
[[maybe_unused]] constexpr SkTFlagsMask<X> operator|(X a, SkTFlagsMask<X> b) { \
|
|
142
|
+
return SkTFlagsMask<X>(static_cast<int>(a) | b.value()); \
|
|
143
|
+
} \
|
|
144
|
+
[[maybe_unused]] constexpr X operator&(SkTFlagsMask<X> a, SkTFlagsMask<X> b) { \
|
|
145
|
+
return static_cast<X>(a.value() & b.value()); \
|
|
146
|
+
} \
|
|
147
|
+
[[maybe_unused]] constexpr X operator&(SkTFlagsMask<X> a, X b) { \
|
|
148
|
+
return static_cast<X>(a.value() & static_cast<int>(b)); \
|
|
149
|
+
} \
|
|
150
|
+
[[maybe_unused]] constexpr X operator&(X a, SkTFlagsMask<X> b) { \
|
|
151
|
+
return static_cast<X>(static_cast<int>(a) & b.value()); \
|
|
152
|
+
} \
|
|
153
|
+
[[maybe_unused]] inline X& operator&=(X& a, SkTFlagsMask<X> b) { \
|
|
154
|
+
return (a = a & b); \
|
|
155
|
+
} \
|
|
156
|
+
|
|
157
|
+
#define SK_DECL_BITFIELD_CLASS_OPS_FRIENDS(X) \
|
|
158
|
+
friend constexpr SkTFlagsMask<X> operator ~(X); \
|
|
159
|
+
friend constexpr X operator |(X, X); \
|
|
160
|
+
friend X& operator |=(X&, X); \
|
|
161
|
+
friend constexpr bool operator &(X, X); \
|
|
162
|
+
friend constexpr SkTFlagsMask<X> operator|(SkTFlagsMask<X>, SkTFlagsMask<X>); \
|
|
163
|
+
friend constexpr SkTFlagsMask<X> operator|(SkTFlagsMask<X>, X); \
|
|
164
|
+
friend constexpr SkTFlagsMask<X> operator|(X, SkTFlagsMask<X>); \
|
|
165
|
+
friend constexpr X operator&(SkTFlagsMask<X>, SkTFlagsMask<X>); \
|
|
166
|
+
friend constexpr X operator&(SkTFlagsMask<X>, X); \
|
|
167
|
+
friend constexpr X operator&(X, SkTFlagsMask<X>); \
|
|
168
|
+
friend X& operator &=(X&, SkTFlagsMask<X>)
|
|
169
|
+
|
|
170
|
+
#endif // SkMacros_DEFINED
|
|
@@ -0,0 +1,152 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright 2017 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 SkMalloc_DEFINED
|
|
9
|
+
#define SkMalloc_DEFINED
|
|
10
|
+
|
|
11
|
+
#include <cstring>
|
|
12
|
+
|
|
13
|
+
#include "include/private/SkAPI.h"
|
|
14
|
+
|
|
15
|
+
/*
|
|
16
|
+
memory wrappers to be implemented by the porting layer (platform)
|
|
17
|
+
*/
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
/** Free memory returned by sk_malloc(). It is safe to pass null. */
|
|
21
|
+
SK_API extern void sk_free(void*);
|
|
22
|
+
|
|
23
|
+
/**
|
|
24
|
+
* Called internally if we run out of memory. The platform implementation must
|
|
25
|
+
* not return, but should either throw an exception or otherwise exit.
|
|
26
|
+
*/
|
|
27
|
+
SK_API extern void sk_out_of_memory(void);
|
|
28
|
+
|
|
29
|
+
enum {
|
|
30
|
+
/**
|
|
31
|
+
* If this bit is set, the returned buffer must be zero-initialized. If this bit is not set
|
|
32
|
+
* the buffer can be uninitialized.
|
|
33
|
+
*/
|
|
34
|
+
SK_MALLOC_ZERO_INITIALIZE = 1 << 0,
|
|
35
|
+
|
|
36
|
+
/**
|
|
37
|
+
* If this bit is set, the implementation must throw/crash/quit if the request cannot
|
|
38
|
+
* be fulfilled. If this bit is not set, then it should return nullptr on failure.
|
|
39
|
+
*/
|
|
40
|
+
SK_MALLOC_THROW = 1 << 1,
|
|
41
|
+
};
|
|
42
|
+
/**
|
|
43
|
+
* Return a block of memory (at least 4-byte aligned) of at least the specified size.
|
|
44
|
+
* If the requested memory cannot be returned, either return nullptr or throw/exit, depending
|
|
45
|
+
* on the SK_MALLOC_THROW bit. If the allocation succeeds, the memory will be zero-initialized
|
|
46
|
+
* if the SK_MALLOC_ZERO_INITIALIZE bit was set.
|
|
47
|
+
*
|
|
48
|
+
* To free the memory, call sk_free()
|
|
49
|
+
*/
|
|
50
|
+
SK_API extern void* sk_malloc_flags(size_t size, unsigned flags);
|
|
51
|
+
|
|
52
|
+
/** Same as standard realloc(), but this one never returns null on failure. It will throw
|
|
53
|
+
* if it fails.
|
|
54
|
+
* If size is 0, it will call sk_free on buffer and return null. (This behavior is implementation-
|
|
55
|
+
* defined for normal realloc. We follow what glibc does.)
|
|
56
|
+
*/
|
|
57
|
+
SK_API extern void* sk_realloc_throw(void* buffer, size_t size);
|
|
58
|
+
|
|
59
|
+
/**
|
|
60
|
+
* Return the size of the block of memory allocated in reality for a given pointer. The pointer
|
|
61
|
+
* passed must have been allocated using the sk_malloc_* or sk_realloc_* functions. The "size"
|
|
62
|
+
* parameter indicates the size originally requested when the memory block was allocated, and
|
|
63
|
+
* the value returned by this function must be bigger or equal to it.
|
|
64
|
+
*/
|
|
65
|
+
SK_API extern size_t sk_malloc_size(void* addr, size_t size);
|
|
66
|
+
|
|
67
|
+
static inline void* sk_malloc_throw(size_t size) {
|
|
68
|
+
return sk_malloc_flags(size, SK_MALLOC_THROW);
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
static inline void* sk_calloc_throw(size_t size) {
|
|
72
|
+
return sk_malloc_flags(size, SK_MALLOC_THROW | SK_MALLOC_ZERO_INITIALIZE);
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
static inline void* sk_calloc_canfail(size_t size) {
|
|
76
|
+
#if defined(SK_BUILD_FOR_FUZZER)
|
|
77
|
+
// To reduce the chance of OOM, pretend we can't allocate more than 200kb.
|
|
78
|
+
if (size > 200000) {
|
|
79
|
+
return nullptr;
|
|
80
|
+
}
|
|
81
|
+
#endif
|
|
82
|
+
return sk_malloc_flags(size, SK_MALLOC_ZERO_INITIALIZE);
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
// Performs a safe multiply count * elemSize, checking for overflow
|
|
86
|
+
SK_API extern void* sk_calloc_throw(size_t count, size_t elemSize);
|
|
87
|
+
SK_API extern void* sk_malloc_throw(size_t count, size_t elemSize);
|
|
88
|
+
SK_API extern void* sk_realloc_throw(void* buffer, size_t count, size_t elemSize);
|
|
89
|
+
|
|
90
|
+
/**
|
|
91
|
+
* These variants return nullptr on failure
|
|
92
|
+
*/
|
|
93
|
+
static inline void* sk_malloc_canfail(size_t size) {
|
|
94
|
+
#if defined(SK_BUILD_FOR_FUZZER)
|
|
95
|
+
// To reduce the chance of OOM, pretend we can't allocate more than 200kb.
|
|
96
|
+
if (size > 200000) {
|
|
97
|
+
return nullptr;
|
|
98
|
+
}
|
|
99
|
+
#endif
|
|
100
|
+
return sk_malloc_flags(size, 0);
|
|
101
|
+
}
|
|
102
|
+
SK_API extern void* sk_malloc_canfail(size_t count, size_t elemSize);
|
|
103
|
+
|
|
104
|
+
// bzero is safer than memset, but we can't rely on it, so... sk_bzero()
|
|
105
|
+
static inline void sk_bzero(void* buffer, size_t size) {
|
|
106
|
+
// Please c.f. sk_careful_memcpy. It's undefined behavior to call memset(null, 0, 0).
|
|
107
|
+
if (size) {
|
|
108
|
+
memset(buffer, 0, size);
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
/**
|
|
113
|
+
* sk_careful_memcpy() is just like memcpy(), but guards against undefined behavior.
|
|
114
|
+
*
|
|
115
|
+
* It is undefined behavior to call memcpy() with null dst or src, even if len is 0.
|
|
116
|
+
* If an optimizer is "smart" enough, it can exploit this to do unexpected things.
|
|
117
|
+
* memcpy(dst, src, 0);
|
|
118
|
+
* if (src) {
|
|
119
|
+
* printf("%x\n", *src);
|
|
120
|
+
* }
|
|
121
|
+
* In this code the compiler can assume src is not null and omit the if (src) {...} check,
|
|
122
|
+
* unconditionally running the printf, crashing the program if src really is null.
|
|
123
|
+
* Of the compilers we pay attention to only GCC performs this optimization in practice.
|
|
124
|
+
*/
|
|
125
|
+
static inline void* sk_careful_memcpy(void* dst, const void* src, size_t len) {
|
|
126
|
+
// When we pass >0 len we had better already be passing valid pointers.
|
|
127
|
+
// So we just need to skip calling memcpy when len == 0.
|
|
128
|
+
if (len) {
|
|
129
|
+
memcpy(dst,src,len);
|
|
130
|
+
}
|
|
131
|
+
return dst;
|
|
132
|
+
}
|
|
133
|
+
|
|
134
|
+
static inline void* sk_careful_memmove(void* dst, const void* src, size_t len) {
|
|
135
|
+
// When we pass >0 len we had better already be passing valid pointers.
|
|
136
|
+
// So we just need to skip calling memcpy when len == 0.
|
|
137
|
+
if (len) {
|
|
138
|
+
memmove(dst,src,len);
|
|
139
|
+
}
|
|
140
|
+
return dst;
|
|
141
|
+
}
|
|
142
|
+
|
|
143
|
+
static inline int sk_careful_memcmp(const void* a, const void* b, size_t len) {
|
|
144
|
+
// When we pass >0 len we had better already be passing valid pointers.
|
|
145
|
+
// So we just need to skip calling memcmp when len == 0.
|
|
146
|
+
if (len == 0) {
|
|
147
|
+
return 0; // we treat zero-length buffers as "equal"
|
|
148
|
+
}
|
|
149
|
+
return memcmp(a, b, len);
|
|
150
|
+
}
|
|
151
|
+
|
|
152
|
+
#endif // SkMalloc_DEFINED
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright 2006 The Android Open Source Project
|
|
3
|
+
*
|
|
4
|
+
* Use of this source code is governed by a BSD-style license that can be
|
|
5
|
+
* found in the LICENSE file.
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
#ifndef SkMath_DEFINED
|
|
9
|
+
#define SkMath_DEFINED
|
|
10
|
+
|
|
11
|
+
#include "include/private/SkAssert.h"
|
|
12
|
+
#include "include/private/SkCPUTypes.h"
|
|
13
|
+
|
|
14
|
+
#include <cstdint>
|
|
15
|
+
#include <climits>
|
|
16
|
+
|
|
17
|
+
// Max Signed 16 bit value
|
|
18
|
+
static constexpr int16_t SK_MaxS16 = INT16_MAX;
|
|
19
|
+
static constexpr int16_t SK_MinS16 = -SK_MaxS16;
|
|
20
|
+
|
|
21
|
+
static constexpr int32_t SK_MaxS32 = INT32_MAX;
|
|
22
|
+
static constexpr int32_t SK_MinS32 = -SK_MaxS32;
|
|
23
|
+
static constexpr int32_t SK_NaN32 = INT32_MIN;
|
|
24
|
+
|
|
25
|
+
static constexpr int64_t SK_MaxS64 = INT64_MAX;
|
|
26
|
+
static constexpr int64_t SK_MinS64 = -SK_MaxS64;
|
|
27
|
+
|
|
28
|
+
// 64bit -> 32bit utilities
|
|
29
|
+
|
|
30
|
+
// Handy util that can be passed two ints, and will automatically promote to
|
|
31
|
+
// 64bits before the multiply, so the caller doesn't have to remember to cast
|
|
32
|
+
// e.g. (int64_t)a * b;
|
|
33
|
+
static inline int64_t sk_64_mul(int64_t a, int64_t b) {
|
|
34
|
+
return a * b;
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
static inline constexpr int32_t SkLeftShift(int32_t value, int32_t shift) {
|
|
38
|
+
return (int32_t) ((uint32_t) value << shift);
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
static inline constexpr int64_t SkLeftShift(int64_t value, int32_t shift) {
|
|
42
|
+
return (int64_t) ((uint64_t) value << shift);
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
///////////////////////////////////////////////////////////////////////////////
|
|
46
|
+
|
|
47
|
+
/**
|
|
48
|
+
* Returns true if value is a power of 2. Does not explicitly check for
|
|
49
|
+
* value <= 0.
|
|
50
|
+
*/
|
|
51
|
+
template <typename T> constexpr inline bool SkIsPow2(T value) {
|
|
52
|
+
return (value & (value - 1)) == 0;
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
///////////////////////////////////////////////////////////////////////////////
|
|
56
|
+
|
|
57
|
+
/**
|
|
58
|
+
* Return a*b/((1 << shift) - 1), rounding any fractional bits.
|
|
59
|
+
* Only valid if a and b are unsigned and <= 32767 and shift is > 0 and <= 8
|
|
60
|
+
*/
|
|
61
|
+
static inline unsigned SkMul16ShiftRound(U16CPU a, U16CPU b, int shift) {
|
|
62
|
+
SkASSERT(a <= 32767);
|
|
63
|
+
SkASSERT(b <= 32767);
|
|
64
|
+
SkASSERT(shift > 0 && shift <= 8);
|
|
65
|
+
unsigned prod = a*b + (1 << (shift - 1));
|
|
66
|
+
return (prod + (prod >> shift)) >> shift;
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
/**
|
|
70
|
+
* Return a*b/255, rounding any fractional bits.
|
|
71
|
+
* Only valid if a and b are unsigned and <= 32767.
|
|
72
|
+
*/
|
|
73
|
+
static inline U8CPU SkMulDiv255Round(U16CPU a, U16CPU b) {
|
|
74
|
+
return SkMul16ShiftRound(a, b, 8);
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
#endif
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright 2015 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 SkMutex_DEFINED
|
|
9
|
+
#define SkMutex_DEFINED
|
|
10
|
+
|
|
11
|
+
#include "include/private/SkAssert.h"
|
|
12
|
+
#include "include/private/SkDebug.h"
|
|
13
|
+
#include "include/private/SkSemaphore.h"
|
|
14
|
+
#include "include/private/SkThreadAnnotations.h"
|
|
15
|
+
#include "include/private/SkThreadID.h"
|
|
16
|
+
|
|
17
|
+
/**
|
|
18
|
+
* class SkMutex
|
|
19
|
+
*
|
|
20
|
+
* This allows us to have a mutex without needing the one in
|
|
21
|
+
* the C++ std library which does not work with all clients.
|
|
22
|
+
* go/cstyle#Disallowed_Stdlib
|
|
23
|
+
*/
|
|
24
|
+
|
|
25
|
+
class SK_CAPABILITY("mutex") SkMutex {
|
|
26
|
+
public:
|
|
27
|
+
constexpr SkMutex() = default;
|
|
28
|
+
|
|
29
|
+
~SkMutex() {
|
|
30
|
+
this->assertNotHeld();
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
void acquire() SK_ACQUIRE() {
|
|
34
|
+
fSemaphore.wait();
|
|
35
|
+
SkDEBUGCODE(fOwner = SkGetThreadID();)
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
void release() SK_RELEASE_CAPABILITY() {
|
|
39
|
+
this->assertHeld();
|
|
40
|
+
SkDEBUGCODE(fOwner = kIllegalThreadID;)
|
|
41
|
+
fSemaphore.signal();
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
void assertHeld() SK_ASSERT_CAPABILITY(this) {
|
|
45
|
+
SkASSERT(fOwner == SkGetThreadID());
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
void assertNotHeld() {
|
|
49
|
+
SkASSERT(fOwner == kIllegalThreadID);
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
private:
|
|
53
|
+
SkSemaphore fSemaphore{1};
|
|
54
|
+
SkDEBUGCODE(SkThreadID fOwner{kIllegalThreadID};)
|
|
55
|
+
};
|
|
56
|
+
|
|
57
|
+
class SK_SCOPED_CAPABILITY SkAutoMutexExclusive {
|
|
58
|
+
public:
|
|
59
|
+
SkAutoMutexExclusive(SkMutex& mutex) SK_ACQUIRE(mutex) : fMutex(mutex) { fMutex.acquire(); }
|
|
60
|
+
~SkAutoMutexExclusive() SK_RELEASE_CAPABILITY() { fMutex.release(); }
|
|
61
|
+
|
|
62
|
+
SkAutoMutexExclusive(const SkAutoMutexExclusive&) = delete;
|
|
63
|
+
SkAutoMutexExclusive(SkAutoMutexExclusive&&) = delete;
|
|
64
|
+
|
|
65
|
+
SkAutoMutexExclusive& operator=(const SkAutoMutexExclusive&) = delete;
|
|
66
|
+
SkAutoMutexExclusive& operator=(SkAutoMutexExclusive&&) = delete;
|
|
67
|
+
|
|
68
|
+
private:
|
|
69
|
+
SkMutex& fMutex;
|
|
70
|
+
};
|
|
71
|
+
|
|
72
|
+
#endif // SkMutex_DEFINED
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright 2006 The Android Open Source Project
|
|
3
|
+
*
|
|
4
|
+
* Use of this source code is governed by a BSD-style license that can be
|
|
5
|
+
* found in the LICENSE file.
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
#ifndef SkNoncopyable_DEFINED
|
|
9
|
+
#define SkNoncopyable_DEFINED
|
|
10
|
+
|
|
11
|
+
#include "include/private/SkAPI.h"
|
|
12
|
+
|
|
13
|
+
/** \class SkNoncopyable (DEPRECATED)
|
|
14
|
+
|
|
15
|
+
SkNoncopyable is the base class for objects that do not want to
|
|
16
|
+
be copied. It hides its copy-constructor and its assignment-operator.
|
|
17
|
+
*/
|
|
18
|
+
class SK_API SkNoncopyable {
|
|
19
|
+
public:
|
|
20
|
+
SkNoncopyable() = default;
|
|
21
|
+
|
|
22
|
+
SkNoncopyable(SkNoncopyable&&) = default;
|
|
23
|
+
SkNoncopyable& operator =(SkNoncopyable&&) = default;
|
|
24
|
+
|
|
25
|
+
private:
|
|
26
|
+
SkNoncopyable(const SkNoncopyable&) = delete;
|
|
27
|
+
SkNoncopyable& operator=(const SkNoncopyable&) = delete;
|
|
28
|
+
};
|
|
29
|
+
|
|
30
|
+
#endif
|