@shopify/react-native-skia 0.1.196 → 0.1.199
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/android/CMakeLists.txt +32 -31
- package/android/cpp/rnskia-android/SkiaOpenGLRenderer.cpp +4 -2
- package/android/cpp/rnskia-android/SkiaOpenGLRenderer.h +3 -0
- package/cpp/api/JsiSkImage.h +1 -1
- package/cpp/api/JsiSkShaderFactory.h +4 -4
- package/cpp/api/JsiSkSurface.h +0 -1
- package/cpp/api/JsiSkSurfaceFactory.h +2 -1
- package/cpp/rnskia/RNSkView.h +20 -40
- package/cpp/rnskia/dom/nodes/JsiShaderNodes.h +2 -2
- package/cpp/rnskia/values/RNSkReadonlyValue.h +6 -7
- package/cpp/skia/include/android/SkCanvasAndroid.h +20 -0
- package/cpp/skia/include/android/SkHeifDecoder.h +43 -0
- package/cpp/skia/include/android/SkSurfaceAndroid.h +50 -0
- package/cpp/skia/include/codec/SkAvifDecoder.h +43 -0
- package/cpp/skia/include/codec/SkBmpDecoder.h +43 -0
- package/cpp/skia/include/codec/SkCodec.h +25 -1
- package/cpp/skia/include/codec/SkGifDecoder.h +43 -0
- package/cpp/skia/include/codec/SkIcoDecoder.h +43 -0
- package/cpp/skia/include/codec/SkJpegDecoder.h +43 -0
- package/cpp/skia/include/codec/SkJpegxlDecoder.h +43 -0
- package/cpp/skia/include/codec/SkPngDecoder.h +43 -0
- package/cpp/skia/include/codec/SkRawDecoder.h +49 -0
- package/cpp/skia/include/codec/SkWbmpDecoder.h +43 -0
- package/cpp/skia/include/codec/SkWebpDecoder.h +43 -0
- package/cpp/skia/include/core/SkBBHFactory.h +5 -1
- package/cpp/skia/include/core/SkBlender.h +0 -2
- package/cpp/skia/include/core/SkCanvas.h +4 -23
- package/cpp/skia/include/core/SkColorFilter.h +14 -1
- package/cpp/skia/include/core/SkColorTable.h +59 -0
- package/cpp/skia/include/core/SkContourMeasure.h +3 -0
- package/cpp/skia/include/core/SkDeferredDisplayList.h +8 -104
- package/cpp/skia/include/core/SkDeferredDisplayListRecorder.h +8 -91
- package/cpp/skia/include/core/SkDrawable.h +5 -2
- package/cpp/skia/include/core/SkGraphics.h +7 -19
- package/cpp/skia/include/core/SkImage.h +157 -249
- package/cpp/skia/include/core/SkImageGenerator.h +0 -31
- package/cpp/skia/include/core/SkMilestone.h +1 -1
- package/cpp/skia/include/core/SkPathMeasure.h +3 -3
- package/cpp/skia/include/core/SkPictureRecorder.h +1 -1
- package/cpp/skia/include/core/SkPoint.h +5 -563
- package/cpp/skia/include/core/SkPoint3.h +1 -0
- package/cpp/skia/include/core/SkPromiseImageTexture.h +4 -30
- package/cpp/skia/include/core/SkRect.h +8 -8
- package/cpp/skia/include/core/SkSamplingOptions.h +4 -2
- package/cpp/skia/include/core/SkScalar.h +1 -1
- package/cpp/skia/include/core/SkSerialProcs.h +5 -1
- package/cpp/skia/include/core/SkShader.h +14 -21
- package/cpp/skia/include/core/SkString.h +2 -0
- package/cpp/skia/include/core/SkSurface.h +169 -701
- package/cpp/skia/include/core/SkSurfaceCharacterization.h +8 -256
- package/cpp/skia/include/core/SkTiledImageUtils.h +97 -0
- package/cpp/skia/include/core/SkTypes.h +4 -2
- package/cpp/skia/include/core/SkYUVAPixmaps.h +0 -5
- package/cpp/skia/include/effects/SkGradientShader.h +10 -1
- package/cpp/skia/include/effects/SkImageFilters.h +62 -37
- package/cpp/skia/include/effects/SkPerlinNoiseShader.h +28 -29
- package/cpp/skia/include/effects/SkRuntimeEffect.h +17 -12
- package/cpp/skia/include/gpu/GrBackendSurface.h +12 -39
- package/cpp/skia/include/gpu/GrBackendSurfaceMutableState.h +6 -0
- package/cpp/skia/include/gpu/GrContextThreadSafeProxy.h +3 -3
- package/cpp/skia/include/gpu/GrDirectContext.h +103 -3
- package/cpp/skia/include/gpu/GrRecordingContext.h +10 -19
- package/cpp/skia/include/gpu/MutableTextureState.h +4 -0
- package/cpp/skia/include/gpu/ganesh/GrExternalTextureGenerator.h +54 -0
- package/cpp/skia/include/gpu/ganesh/SkImageGanesh.h +20 -76
- package/cpp/skia/include/gpu/ganesh/SkSurfaceGanesh.h +217 -0
- package/cpp/skia/include/gpu/ganesh/mtl/SkSurfaceMetal.h +73 -0
- package/cpp/skia/include/gpu/gl/GrGLTypes.h +13 -2
- package/cpp/skia/include/gpu/graphite/BackendSemaphore.h +78 -0
- package/cpp/skia/include/gpu/graphite/BackendTexture.h +1 -0
- package/cpp/skia/include/gpu/graphite/Image.h +277 -0
- package/cpp/skia/include/gpu/graphite/ImageProvider.h +1 -1
- package/cpp/skia/include/gpu/graphite/Recording.h +1 -4
- package/cpp/skia/include/gpu/graphite/Surface.h +81 -0
- package/cpp/skia/include/gpu/graphite/TextureInfo.h +5 -7
- package/cpp/skia/include/gpu/graphite/YUVABackendTextures.h +2 -2
- package/cpp/skia/include/gpu/mock/GrMockTypes.h +23 -8
- package/cpp/skia/include/ports/SkTypeface_fontations.h +21 -0
- package/cpp/skia/include/private/SkGainmapInfo.h +2 -0
- package/cpp/skia/include/private/SkGainmapShader.h +1 -0
- package/cpp/skia/include/private/SkJpegMetadataDecoder.h +19 -1
- package/cpp/skia/include/private/SkPathRef.h +13 -15
- package/cpp/skia/include/private/SkXmp.h +53 -0
- package/cpp/skia/include/private/base/SkFeatures.h +0 -4
- package/cpp/skia/include/private/base/SkFloatingPoint.h +11 -5
- package/cpp/skia/include/private/base/SkPoint_impl.h +569 -0
- package/cpp/skia/include/private/base/SkSpan_impl.h +3 -7
- package/cpp/skia/include/private/base/SkTArray.h +11 -11
- package/cpp/skia/include/private/chromium/GrDeferredDisplayList.h +120 -0
- package/cpp/skia/include/private/chromium/GrDeferredDisplayListRecorder.h +98 -0
- package/cpp/skia/include/private/chromium/GrPromiseImageTexture.h +43 -0
- package/cpp/skia/include/private/chromium/GrSurfaceCharacterization.h +215 -0
- package/cpp/skia/include/private/chromium/GrVkSecondaryCBDrawContext.h +6 -6
- package/cpp/skia/include/private/chromium/SkImageChromium.h +104 -0
- package/cpp/skia/include/private/chromium/Slug.h +7 -3
- package/cpp/skia/include/private/gpu/ganesh/GrContext_Base.h +7 -3
- package/cpp/skia/include/private/gpu/ganesh/GrGLTypesPriv.h +2 -0
- package/cpp/skia/include/private/gpu/ganesh/GrImageContext.h +3 -2
- package/cpp/skia/include/private/gpu/ganesh/GrMtlTypesPriv.h +10 -2
- package/cpp/skia/include/{gpu → private/gpu}/ganesh/GrTextureGenerator.h +2 -13
- package/cpp/skia/include/private/gpu/ganesh/GrTypesPriv.h +1 -1
- package/cpp/skia/include/private/gpu/graphite/DawnTypesPriv.h +7 -0
- package/cpp/skia/include/private/gpu/graphite/MtlGraphiteTypesPriv.h +19 -6
- package/cpp/skia/include/private/gpu/graphite/VulkanGraphiteTypesPriv.h +13 -0
- package/cpp/skia/include/third_party/vulkan/vulkan/vulkan.h +0 -1
- package/cpp/skia/include/third_party/vulkan/vulkan/vulkan_android.h +14 -1
- package/cpp/skia/include/third_party/vulkan/vulkan/vulkan_core.h +999 -79
- package/cpp/skia/modules/skcms/src/Transform_inl.h +36 -236
- package/cpp/skia/modules/skparagraph/include/Paragraph.h +2 -0
- package/cpp/skia/modules/skparagraph/include/ParagraphBuilder.h +16 -0
- package/cpp/skia/modules/skparagraph/include/TextStyle.h +6 -2
- package/cpp/skia/modules/skresources/include/SkResources.h +1 -1
- package/cpp/skia/modules/svg/include/SkSVGCircle.h +1 -1
- package/cpp/skia/modules/svg/include/SkSVGClipPath.h +1 -1
- package/cpp/skia/modules/svg/include/SkSVGContainer.h +1 -1
- package/cpp/skia/modules/svg/include/SkSVGDOM.h +1 -1
- package/cpp/skia/modules/svg/include/SkSVGDefs.h +1 -1
- package/cpp/skia/modules/svg/include/SkSVGEllipse.h +1 -1
- package/cpp/skia/modules/svg/include/SkSVGFe.h +1 -1
- package/cpp/skia/modules/svg/include/SkSVGFeBlend.h +1 -1
- package/cpp/skia/modules/svg/include/SkSVGFeColorMatrix.h +1 -1
- package/cpp/skia/modules/svg/include/SkSVGFeComposite.h +1 -1
- package/cpp/skia/modules/svg/include/SkSVGFeDisplacementMap.h +1 -1
- package/cpp/skia/modules/svg/include/SkSVGFeFlood.h +1 -1
- package/cpp/skia/modules/svg/include/SkSVGFeGaussianBlur.h +1 -1
- package/cpp/skia/modules/svg/include/SkSVGFeImage.h +1 -1
- package/cpp/skia/modules/svg/include/SkSVGFeLightSource.h +1 -1
- package/cpp/skia/modules/svg/include/SkSVGFeLighting.h +1 -1
- package/cpp/skia/modules/svg/include/SkSVGFeOffset.h +1 -1
- package/cpp/skia/modules/svg/include/SkSVGFeTurbulence.h +1 -1
- package/cpp/skia/modules/svg/include/SkSVGFilter.h +1 -1
- package/cpp/skia/modules/svg/include/SkSVGG.h +1 -1
- package/cpp/skia/modules/svg/include/SkSVGGradient.h +1 -1
- package/cpp/skia/modules/svg/include/SkSVGHiddenContainer.h +1 -1
- package/cpp/skia/modules/svg/include/SkSVGImage.h +1 -1
- package/cpp/skia/modules/svg/include/SkSVGLine.h +1 -1
- package/cpp/skia/modules/svg/include/SkSVGLinearGradient.h +1 -1
- package/cpp/skia/modules/svg/include/SkSVGMask.h +1 -1
- package/cpp/skia/modules/svg/include/SkSVGNode.h +1 -1
- package/cpp/skia/modules/svg/include/SkSVGPath.h +1 -1
- package/cpp/skia/modules/svg/include/SkSVGPattern.h +1 -1
- package/cpp/skia/modules/svg/include/SkSVGPoly.h +1 -1
- package/cpp/skia/modules/svg/include/SkSVGRadialGradient.h +1 -1
- package/cpp/skia/modules/svg/include/SkSVGRect.h +1 -1
- package/cpp/skia/modules/svg/include/SkSVGRenderContext.h +3 -3
- package/cpp/skia/modules/svg/include/SkSVGSVG.h +1 -1
- package/cpp/skia/modules/svg/include/SkSVGShape.h +1 -1
- package/cpp/skia/modules/svg/include/SkSVGStop.h +1 -1
- package/cpp/skia/modules/svg/include/SkSVGText.h +1 -1
- package/cpp/skia/modules/svg/include/SkSVGTransformableNode.h +1 -1
- package/cpp/skia/modules/svg/include/SkSVGTypes.h +21 -21
- package/cpp/skia/modules/svg/include/SkSVGUse.h +1 -1
- package/cpp/skia/modules/svg/include/SkSVGValue.h +2 -2
- package/cpp/skia/{include/private → src/core}/SkChecksum.h +32 -17
- package/cpp/skia/src/core/SkTHash.h +1 -1
- package/ios/RNSkia-iOS/RNSkMetalCanvasProvider.mm +3 -1
- package/ios/RNSkia-iOS/SkiaMetalRenderer.mm +3 -1
- package/lib/commonjs/renderer/Canvas.js +24 -13
- package/lib/commonjs/renderer/Canvas.js.map +1 -1
- package/lib/commonjs/skia/core/Data.d.ts +2 -2
- package/lib/commonjs/skia/core/Data.js.map +1 -1
- package/lib/commonjs/skia/core/RRect.js +5 -1
- package/lib/commonjs/skia/core/RRect.js.map +1 -1
- package/lib/commonjs/skia/core/Rect.js +32 -6
- package/lib/commonjs/skia/core/Rect.js.map +1 -1
- package/lib/commonjs/skia/types/Color.js.map +1 -1
- package/lib/commonjs/skia/types/JsiInstance.d.ts +2 -4
- package/lib/commonjs/skia/types/JsiInstance.js.map +1 -1
- package/lib/module/renderer/Canvas.js +25 -14
- package/lib/module/renderer/Canvas.js.map +1 -1
- package/lib/module/skia/core/Data.d.ts +2 -2
- package/lib/module/skia/core/Data.js.map +1 -1
- package/lib/module/skia/core/RRect.js +5 -1
- package/lib/module/skia/core/RRect.js.map +1 -1
- package/lib/module/skia/core/Rect.js +32 -6
- package/lib/module/skia/core/Rect.js.map +1 -1
- package/lib/module/skia/types/Color.js.map +1 -1
- package/lib/module/skia/types/JsiInstance.d.ts +2 -4
- package/lib/module/skia/types/JsiInstance.js.map +1 -1
- package/lib/typescript/src/skia/core/Data.d.ts +2 -2
- package/lib/typescript/src/skia/types/JsiInstance.d.ts +2 -4
- package/libs/android/arm64-v8a/libskia.a +0 -0
- package/libs/android/arm64-v8a/libskottie.a +0 -0
- package/libs/android/arm64-v8a/libsksg.a +0 -0
- package/libs/android/arm64-v8a/libsvg.a +0 -0
- package/libs/android/armeabi-v7a/libskia.a +0 -0
- package/libs/android/armeabi-v7a/libskottie.a +0 -0
- package/libs/android/armeabi-v7a/libsksg.a +0 -0
- package/libs/android/armeabi-v7a/libsvg.a +0 -0
- package/libs/android/x86/libskia.a +0 -0
- package/libs/android/x86/libskottie.a +0 -0
- package/libs/android/x86/libsksg.a +0 -0
- package/libs/android/x86/libsvg.a +0 -0
- package/libs/android/x86_64/libskia.a +0 -0
- package/libs/android/x86_64/libskottie.a +0 -0
- package/libs/android/x86_64/libsksg.a +0 -0
- package/libs/android/x86_64/libsvg.a +0 -0
- package/libs/ios/libskia.xcframework/ios-arm64_arm64e/libskia.a +0 -0
- package/libs/ios/libskia.xcframework/ios-arm64_arm64e_x86_64-simulator/libskia.a +0 -0
- package/libs/ios/libskottie.xcframework/ios-arm64_arm64e/libskottie.a +0 -0
- package/libs/ios/libskottie.xcframework/ios-arm64_arm64e_x86_64-simulator/libskottie.a +0 -0
- package/libs/ios/libsksg.xcframework/Info.plist +5 -5
- package/libs/ios/libsksg.xcframework/ios-arm64_arm64e/libsksg.a +0 -0
- package/libs/ios/libsksg.xcframework/ios-arm64_arm64e_x86_64-simulator/libsksg.a +0 -0
- package/libs/ios/libskshaper.xcframework/ios-arm64_arm64e/libskshaper.a +0 -0
- package/libs/ios/libskshaper.xcframework/ios-arm64_arm64e_x86_64-simulator/libskshaper.a +0 -0
- package/libs/ios/libsvg.xcframework/Info.plist +5 -5
- package/libs/ios/libsvg.xcframework/ios-arm64_arm64e/libsvg.a +0 -0
- package/libs/ios/libsvg.xcframework/ios-arm64_arm64e_x86_64-simulator/libsvg.a +0 -0
- package/package.json +3 -4
- package/src/renderer/Canvas.tsx +25 -19
- package/src/skia/core/Data.ts +3 -3
- package/src/skia/core/RRect.tsx +4 -2
- package/src/skia/core/Rect.ts +29 -12
- package/src/skia/types/Color.ts +1 -1
- package/src/skia/types/JsiInstance.ts +2 -5
- package/cpp/skia/include/effects/SkTableColorFilter.h +0 -29
- package/cpp/skia/include/private/SkOpts_spi.h +0 -23
- package/cpp/skia/include/private/SkSpinlock.h +0 -57
- package/cpp/skia/include/private/chromium/GrSlug.h +0 -16
- package/scripts/install-npm.js +0 -33
|
@@ -8,11 +8,12 @@
|
|
|
8
8
|
#ifndef SkRuntimeEffect_DEFINED
|
|
9
9
|
#define SkRuntimeEffect_DEFINED
|
|
10
10
|
|
|
11
|
-
#include "include/core/SkBlender.h"
|
|
12
|
-
#include "include/core/SkColorFilter.h"
|
|
11
|
+
#include "include/core/SkBlender.h" // IWYU pragma: keep
|
|
12
|
+
#include "include/core/SkColorFilter.h" // IWYU pragma: keep
|
|
13
13
|
#include "include/core/SkData.h"
|
|
14
|
-
#include "include/core/
|
|
14
|
+
#include "include/core/SkFlattenable.h"
|
|
15
15
|
#include "include/core/SkMatrix.h"
|
|
16
|
+
#include "include/core/SkRefCnt.h"
|
|
16
17
|
#include "include/core/SkShader.h"
|
|
17
18
|
#include "include/core/SkSpan.h"
|
|
18
19
|
#include "include/core/SkString.h"
|
|
@@ -20,34 +21,38 @@
|
|
|
20
21
|
#include "include/private/SkSLSampleUsage.h"
|
|
21
22
|
#include "include/private/base/SkOnce.h"
|
|
22
23
|
#include "include/private/base/SkTemplates.h"
|
|
24
|
+
#include "include/private/base/SkTo.h"
|
|
25
|
+
#include "include/private/base/SkTypeTraits.h"
|
|
23
26
|
|
|
24
|
-
#include <
|
|
27
|
+
#include <cstddef>
|
|
28
|
+
#include <cstdint>
|
|
29
|
+
#include <cstring>
|
|
30
|
+
#include <memory>
|
|
25
31
|
#include <optional>
|
|
32
|
+
#include <string>
|
|
33
|
+
#include <string_view>
|
|
34
|
+
#include <utility>
|
|
26
35
|
#include <vector>
|
|
27
36
|
|
|
28
37
|
#ifdef SK_ENABLE_SKSL
|
|
29
38
|
|
|
39
|
+
#include "include/sksl/SkSLDebugTrace.h"
|
|
30
40
|
#include "include/sksl/SkSLVersion.h"
|
|
31
41
|
|
|
32
42
|
class GrRecordingContext;
|
|
33
43
|
class SkFilterColorProgram;
|
|
34
44
|
class SkImage;
|
|
35
|
-
|
|
45
|
+
struct SkIPoint;
|
|
46
|
+
struct SkImageInfo;
|
|
36
47
|
|
|
37
48
|
namespace SkSL {
|
|
38
|
-
class DebugTrace;
|
|
39
49
|
class DebugTracePriv;
|
|
40
|
-
class ErrorReporter;
|
|
41
50
|
class FunctionDefinition;
|
|
42
51
|
struct Program;
|
|
43
52
|
enum class ProgramKind : int8_t;
|
|
44
53
|
struct ProgramSettings;
|
|
45
54
|
} // namespace SkSL
|
|
46
55
|
|
|
47
|
-
namespace skvm {
|
|
48
|
-
class Program;
|
|
49
|
-
}
|
|
50
|
-
|
|
51
56
|
namespace SkSL::RP {
|
|
52
57
|
class Program;
|
|
53
58
|
}
|
|
@@ -319,7 +324,7 @@ private:
|
|
|
319
324
|
friend class GrGLSLSkSLFP; //
|
|
320
325
|
#endif
|
|
321
326
|
|
|
322
|
-
friend class
|
|
327
|
+
friend class SkRuntimeShader; // fBaseProgram, fMain, fSampleUsages, getRPProgram()
|
|
323
328
|
friend class SkRuntimeBlender; //
|
|
324
329
|
friend class SkRuntimeColorFilter; //
|
|
325
330
|
|
|
@@ -8,36 +8,38 @@
|
|
|
8
8
|
#ifndef GrBackendSurface_DEFINED
|
|
9
9
|
#define GrBackendSurface_DEFINED
|
|
10
10
|
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
#include "include/gpu/GrBackendSurfaceMutableState.h"
|
|
15
|
-
|
|
16
|
-
#include "include/gpu/GrSurfaceInfo.h"
|
|
11
|
+
#include "include/core/SkRefCnt.h"
|
|
12
|
+
#include "include/core/SkSize.h"
|
|
13
|
+
#include "include/gpu/GpuTypes.h"
|
|
17
14
|
#include "include/gpu/GrTypes.h"
|
|
18
|
-
#include "include/
|
|
15
|
+
#include "include/private/base/SkAPI.h"
|
|
16
|
+
#include "include/private/gpu/ganesh/GrTypesPriv.h"
|
|
17
|
+
|
|
19
18
|
#ifdef SK_GL
|
|
20
19
|
#include "include/gpu/gl/GrGLTypes.h"
|
|
21
20
|
#include "include/private/gpu/ganesh/GrGLTypesPriv.h"
|
|
22
21
|
#endif
|
|
22
|
+
|
|
23
23
|
#include "include/gpu/mock/GrMockTypes.h"
|
|
24
|
+
|
|
24
25
|
#ifdef SK_VULKAN
|
|
25
26
|
#include "include/gpu/vk/GrVkTypes.h"
|
|
26
27
|
#include "include/private/gpu/ganesh/GrVkTypesPriv.h"
|
|
28
|
+
#include "include/private/gpu/vk/SkiaVulkan.h"
|
|
27
29
|
#endif
|
|
28
30
|
|
|
29
31
|
#ifdef SK_DAWN
|
|
30
32
|
#include "include/gpu/dawn/GrDawnTypes.h"
|
|
31
33
|
#endif
|
|
32
34
|
|
|
35
|
+
#include <cstdint>
|
|
33
36
|
#include <string>
|
|
37
|
+
#include <string_view>
|
|
34
38
|
|
|
35
|
-
class GrVkImageLayout;
|
|
36
|
-
class GrGLTextureParameters;
|
|
37
|
-
class GrColorFormatDesc;
|
|
38
39
|
enum class SkTextureCompressionType;
|
|
39
40
|
|
|
40
41
|
namespace skgpu {
|
|
42
|
+
class MutableTextureState;
|
|
41
43
|
class MutableTextureStateRef;
|
|
42
44
|
}
|
|
43
45
|
|
|
@@ -58,33 +60,6 @@ class GrD3DResourceState;
|
|
|
58
60
|
class SkString;
|
|
59
61
|
#endif
|
|
60
62
|
|
|
61
|
-
#if !defined(SK_GANESH)
|
|
62
|
-
|
|
63
|
-
// SkSurfaceCharacterization always needs a minimal version of this
|
|
64
|
-
class SK_API GrBackendFormat {
|
|
65
|
-
public:
|
|
66
|
-
bool isValid() const { return false; }
|
|
67
|
-
};
|
|
68
|
-
|
|
69
|
-
// SkSurface and SkImage rely on a minimal version of these always being available
|
|
70
|
-
class SK_API GrBackendTexture {
|
|
71
|
-
public:
|
|
72
|
-
GrBackendTexture() {}
|
|
73
|
-
|
|
74
|
-
bool isValid() const { return false; }
|
|
75
|
-
};
|
|
76
|
-
|
|
77
|
-
class SK_API GrBackendRenderTarget {
|
|
78
|
-
public:
|
|
79
|
-
GrBackendRenderTarget() {}
|
|
80
|
-
|
|
81
|
-
bool isValid() const { return false; }
|
|
82
|
-
bool isFramebufferOnly() const { return false; }
|
|
83
|
-
};
|
|
84
|
-
#else
|
|
85
|
-
|
|
86
|
-
enum class GrGLFormat;
|
|
87
|
-
|
|
88
63
|
class SK_API GrBackendFormat {
|
|
89
64
|
public:
|
|
90
65
|
// Creates an invalid backend format.
|
|
@@ -663,5 +638,3 @@ private:
|
|
|
663
638
|
};
|
|
664
639
|
|
|
665
640
|
#endif
|
|
666
|
-
|
|
667
|
-
#endif
|
|
@@ -10,6 +10,12 @@
|
|
|
10
10
|
|
|
11
11
|
#include "include/gpu/MutableTextureState.h"
|
|
12
12
|
|
|
13
|
+
#ifdef SK_VULKAN
|
|
14
|
+
#include "include/private/gpu/vk/SkiaVulkan.h"
|
|
15
|
+
|
|
16
|
+
#include <cstdint>
|
|
17
|
+
#endif
|
|
18
|
+
|
|
13
19
|
class GrBackendSurfaceMutableState : public skgpu::MutableTextureState {
|
|
14
20
|
public:
|
|
15
21
|
GrBackendSurfaceMutableState() = default;
|
|
@@ -22,9 +22,9 @@
|
|
|
22
22
|
class GrBackendFormat;
|
|
23
23
|
class GrCaps;
|
|
24
24
|
class GrContextThreadSafeProxyPriv;
|
|
25
|
+
class GrSurfaceCharacterization;
|
|
25
26
|
class GrThreadSafeCache;
|
|
26
27
|
class GrThreadSafePipelineBuilder;
|
|
27
|
-
class SkSurfaceCharacterization;
|
|
28
28
|
class SkSurfaceProps;
|
|
29
29
|
enum class SkTextureCompressionType;
|
|
30
30
|
|
|
@@ -85,7 +85,7 @@ public:
|
|
|
85
85
|
* willUseGLFBO0 = false
|
|
86
86
|
* vkRTSupportsInputAttachment = false
|
|
87
87
|
*/
|
|
88
|
-
|
|
88
|
+
GrSurfaceCharacterization createCharacterization(
|
|
89
89
|
size_t cacheMaxResourceBytes,
|
|
90
90
|
const SkImageInfo& ii,
|
|
91
91
|
const GrBackendFormat& backendFormat,
|
|
@@ -102,7 +102,7 @@ public:
|
|
|
102
102
|
/*
|
|
103
103
|
* Retrieve the default GrBackendFormat for a given SkColorType and renderability.
|
|
104
104
|
* It is guaranteed that this backend format will be the one used by the following
|
|
105
|
-
* SkColorType and
|
|
105
|
+
* SkColorType and GrSurfaceCharacterization-based createBackendTexture methods.
|
|
106
106
|
*
|
|
107
107
|
* The caller should check that the returned format is valid.
|
|
108
108
|
*/
|
|
@@ -36,6 +36,7 @@ class GrResourceProvider;
|
|
|
36
36
|
class SkData;
|
|
37
37
|
class SkImage;
|
|
38
38
|
class SkPixmap;
|
|
39
|
+
class SkSurface;
|
|
39
40
|
class SkTaskGroup;
|
|
40
41
|
class SkTraceMemoryDump;
|
|
41
42
|
enum SkColorType : int;
|
|
@@ -55,6 +56,10 @@ namespace skgpu {
|
|
|
55
56
|
namespace sktext { namespace gpu { class StrikeCache; } }
|
|
56
57
|
namespace wgpu { class Device; } // IWYU pragma: keep
|
|
57
58
|
|
|
59
|
+
namespace SkSurfaces {
|
|
60
|
+
enum class BackendSurfaceAccess;
|
|
61
|
+
}
|
|
62
|
+
|
|
58
63
|
class SK_API GrDirectContext : public GrRecordingContext {
|
|
59
64
|
public:
|
|
60
65
|
#ifdef SK_GL
|
|
@@ -408,10 +413,105 @@ public:
|
|
|
408
413
|
void flush(sk_sp<const SkImage> image);
|
|
409
414
|
|
|
410
415
|
/** Version of flush() that uses a default GrFlushInfo. Also submits the flushed work to the
|
|
411
|
-
|
|
412
|
-
|
|
416
|
+
* GPU.
|
|
417
|
+
*/
|
|
413
418
|
void flushAndSubmit(sk_sp<const SkImage> image);
|
|
414
419
|
|
|
420
|
+
/** Issues pending SkSurface commands to the GPU-backed API objects and resolves any SkSurface
|
|
421
|
+
* MSAA. A call to GrDirectContext::submit is always required to ensure work is actually sent
|
|
422
|
+
* to the gpu. Some specific API details:
|
|
423
|
+
* GL: Commands are actually sent to the driver, but glFlush is never called. Thus some
|
|
424
|
+
* sync objects from the flush will not be valid until a submission occurs.
|
|
425
|
+
*
|
|
426
|
+
* Vulkan/Metal/D3D/Dawn: Commands are recorded to the backend APIs corresponding command
|
|
427
|
+
* buffer or encoder objects. However, these objects are not sent to the gpu until a
|
|
428
|
+
* submission occurs.
|
|
429
|
+
*
|
|
430
|
+
* The work that is submitted to the GPU will be dependent on the BackendSurfaceAccess that is
|
|
431
|
+
* passed in.
|
|
432
|
+
*
|
|
433
|
+
* If BackendSurfaceAccess::kNoAccess is passed in all commands will be issued to the GPU.
|
|
434
|
+
*
|
|
435
|
+
* If BackendSurfaceAccess::kPresent is passed in and the backend API is not Vulkan, it is
|
|
436
|
+
* treated the same as kNoAccess. If the backend API is Vulkan, the VkImage that backs the
|
|
437
|
+
* SkSurface will be transferred back to its original queue. If the SkSurface was created by
|
|
438
|
+
* wrapping a VkImage, the queue will be set to the queue which was originally passed in on
|
|
439
|
+
* the GrVkImageInfo. Additionally, if the original queue was not external or foreign the
|
|
440
|
+
* layout of the VkImage will be set to VK_IMAGE_LAYOUT_PRESENT_SRC_KHR.
|
|
441
|
+
*
|
|
442
|
+
* The GrFlushInfo describes additional options to flush. Please see documentation at
|
|
443
|
+
* GrFlushInfo for more info.
|
|
444
|
+
*
|
|
445
|
+
* If the return is GrSemaphoresSubmitted::kYes, only initialized GrBackendSemaphores will be
|
|
446
|
+
* submitted to the gpu during the next submit call (it is possible Skia failed to create a
|
|
447
|
+
* subset of the semaphores). The client should not wait on these semaphores until after submit
|
|
448
|
+
* has been called, but must keep them alive until then. If a submit flag was passed in with
|
|
449
|
+
* the flush these valid semaphores can we waited on immediately. If this call returns
|
|
450
|
+
* GrSemaphoresSubmitted::kNo, the GPU backend will not submit any semaphores to be signaled on
|
|
451
|
+
* the GPU. Thus the client should not have the GPU wait on any of the semaphores passed in
|
|
452
|
+
* with the GrFlushInfo. Regardless of whether semaphores were submitted to the GPU or not, the
|
|
453
|
+
* client is still responsible for deleting any initialized semaphores.
|
|
454
|
+
* Regardless of semaphore submission the context will still be flushed. It should be
|
|
455
|
+
* emphasized that a return value of GrSemaphoresSubmitted::kNo does not mean the flush did not
|
|
456
|
+
* happen. It simply means there were no semaphores submitted to the GPU. A caller should only
|
|
457
|
+
* take this as a failure if they passed in semaphores to be submitted.
|
|
458
|
+
*
|
|
459
|
+
* Pending surface commands are flushed regardless of the return result.
|
|
460
|
+
*
|
|
461
|
+
* @param surface The GPU backed surface to be flushed. Has no effect on a CPU-backed surface.
|
|
462
|
+
* @param access type of access the call will do on the backend object after flush
|
|
463
|
+
* @param info flush options
|
|
464
|
+
*/
|
|
465
|
+
GrSemaphoresSubmitted flush(sk_sp<SkSurface> surface,
|
|
466
|
+
SkSurfaces::BackendSurfaceAccess access,
|
|
467
|
+
const GrFlushInfo& info);
|
|
468
|
+
GrSemaphoresSubmitted flush(SkSurface* surface,
|
|
469
|
+
SkSurfaces::BackendSurfaceAccess access,
|
|
470
|
+
const GrFlushInfo& info);
|
|
471
|
+
|
|
472
|
+
/**
|
|
473
|
+
* Same as above except:
|
|
474
|
+
*
|
|
475
|
+
* If a skgpu::MutableTextureState is passed in, at the end of the flush we will transition
|
|
476
|
+
* the surface to be in the state requested by the skgpu::MutableTextureState. If the surface
|
|
477
|
+
* (or SkImage or GrBackendSurface wrapping the same backend object) is used again after this
|
|
478
|
+
* flush the state may be changed and no longer match what is requested here. This is often
|
|
479
|
+
* used if the surface will be used for presenting or external use and the client wants backend
|
|
480
|
+
* object to be prepped for that use. A finishedProc or semaphore on the GrFlushInfo will also
|
|
481
|
+
* include the work for any requested state change.
|
|
482
|
+
*
|
|
483
|
+
* If the backend API is Vulkan, the caller can set the skgpu::MutableTextureState's
|
|
484
|
+
* VkImageLayout to VK_IMAGE_LAYOUT_UNDEFINED or queueFamilyIndex to VK_QUEUE_FAMILY_IGNORED to
|
|
485
|
+
* tell Skia to not change those respective states.
|
|
486
|
+
*
|
|
487
|
+
* @param surface The GPU backed surface to be flushed. Has no effect on a CPU-backed surface.
|
|
488
|
+
* @param info flush options
|
|
489
|
+
* @param newState optional state change request after flush
|
|
490
|
+
*/
|
|
491
|
+
GrSemaphoresSubmitted flush(sk_sp<SkSurface> surface,
|
|
492
|
+
const GrFlushInfo& info,
|
|
493
|
+
const skgpu::MutableTextureState* newState = nullptr);
|
|
494
|
+
GrSemaphoresSubmitted flush(SkSurface* surface,
|
|
495
|
+
const GrFlushInfo& info,
|
|
496
|
+
const skgpu::MutableTextureState* newState = nullptr);
|
|
497
|
+
|
|
498
|
+
/** Call to ensure all reads/writes of the surface have been issued to the underlying 3D API.
|
|
499
|
+
* Skia will correctly order its own draws and pixel operations. This must to be used to ensure
|
|
500
|
+
* correct ordering when the surface backing store is accessed outside Skia (e.g. direct use of
|
|
501
|
+
* the 3D API or a windowing system). This is equivalent to
|
|
502
|
+
* calling ::flush with a default GrFlushInfo followed by ::submit(syncCpu).
|
|
503
|
+
*
|
|
504
|
+
* Has no effect on a CPU-backed surface.
|
|
505
|
+
*/
|
|
506
|
+
void flushAndSubmit(sk_sp<SkSurface> surface, bool syncCpu = false);
|
|
507
|
+
|
|
508
|
+
/**
|
|
509
|
+
* Flushes the given surface with the default GrFlushInfo.
|
|
510
|
+
*
|
|
511
|
+
* Has no effect on a CPU-backed surface.
|
|
512
|
+
*/
|
|
513
|
+
void flush(sk_sp<SkSurface> surface);
|
|
514
|
+
|
|
415
515
|
/**
|
|
416
516
|
* Submit outstanding work to the gpu from all previously un-submitted flushes. The return
|
|
417
517
|
* value of the submit will indicate whether or not the submission to the GPU was successful.
|
|
@@ -444,7 +544,7 @@ public:
|
|
|
444
544
|
/**
|
|
445
545
|
* Retrieve the default GrBackendFormat for a given SkColorType and renderability.
|
|
446
546
|
* It is guaranteed that this backend format will be the one used by the following
|
|
447
|
-
* SkColorType and
|
|
547
|
+
* SkColorType and GrSurfaceCharacterization-based createBackendTexture methods.
|
|
448
548
|
*
|
|
449
549
|
* The caller should check that the returned format is valid.
|
|
450
550
|
*/
|
|
@@ -8,26 +8,27 @@
|
|
|
8
8
|
#ifndef GrRecordingContext_DEFINED
|
|
9
9
|
#define GrRecordingContext_DEFINED
|
|
10
10
|
|
|
11
|
+
#include "include/core/SkColorType.h"
|
|
11
12
|
#include "include/core/SkRefCnt.h"
|
|
13
|
+
#include "include/core/SkString.h" // IWYU pragma: keep
|
|
12
14
|
#include "include/core/SkTypes.h"
|
|
13
15
|
#include "include/private/base/SkTArray.h"
|
|
16
|
+
#include "include/private/gpu/ganesh/GrContext_Base.h"
|
|
14
17
|
#include "include/private/gpu/ganesh/GrImageContext.h"
|
|
15
18
|
|
|
16
|
-
#if GR_GPU_STATS && GR_TEST_UTILS
|
|
17
19
|
#include <map>
|
|
20
|
+
#include <memory>
|
|
18
21
|
#include <string>
|
|
19
|
-
#endif
|
|
20
22
|
|
|
21
23
|
class GrAuditTrail;
|
|
22
|
-
class
|
|
24
|
+
class GrContextThreadSafeProxy;
|
|
25
|
+
class GrDirectContext;
|
|
23
26
|
class GrDrawingManager;
|
|
24
27
|
class GrOnFlushCallbackObject;
|
|
25
|
-
class GrMemoryPool;
|
|
26
28
|
class GrProgramDesc;
|
|
27
29
|
class GrProgramInfo;
|
|
28
30
|
class GrProxyProvider;
|
|
29
31
|
class GrRecordingContextPriv;
|
|
30
|
-
class GrSurfaceProxy;
|
|
31
32
|
class GrThreadSafeCache;
|
|
32
33
|
class SkArenaAlloc;
|
|
33
34
|
class SkCapabilities;
|
|
@@ -38,25 +39,17 @@ class SubRunAllocator;
|
|
|
38
39
|
class TextBlobRedrawCoordinator;
|
|
39
40
|
}
|
|
40
41
|
|
|
41
|
-
#if GR_TEST_UTILS
|
|
42
|
-
class SkString;
|
|
43
|
-
#endif
|
|
44
|
-
|
|
45
42
|
class GrRecordingContext : public GrImageContext {
|
|
46
43
|
public:
|
|
47
44
|
~GrRecordingContext() override;
|
|
48
45
|
|
|
49
|
-
SK_API GrBackendFormat defaultBackendFormat(SkColorType ct, GrRenderable renderable) const {
|
|
50
|
-
return INHERITED::defaultBackendFormat(ct, renderable);
|
|
51
|
-
}
|
|
52
|
-
|
|
53
46
|
/**
|
|
54
47
|
* Reports whether the GrDirectContext associated with this GrRecordingContext is abandoned.
|
|
55
48
|
* When called on a GrDirectContext it may actively check whether the underlying 3D API
|
|
56
49
|
* device/context has been disconnected before reporting the status. If so, calling this
|
|
57
50
|
* method will transition the GrDirectContext to the abandoned state.
|
|
58
51
|
*/
|
|
59
|
-
bool abandoned() override { return
|
|
52
|
+
bool abandoned() override { return GrImageContext::abandoned(); }
|
|
60
53
|
|
|
61
54
|
/*
|
|
62
55
|
* Can a SkSurface be created with the given color type. To check whether MSAA is supported
|
|
@@ -96,7 +89,7 @@ public:
|
|
|
96
89
|
* is not supported at all.
|
|
97
90
|
*/
|
|
98
91
|
SK_API int maxSurfaceSampleCountForColorType(SkColorType colorType) const {
|
|
99
|
-
return
|
|
92
|
+
return GrImageContext::maxSurfaceSampleCountForColorType(colorType);
|
|
100
93
|
}
|
|
101
94
|
|
|
102
95
|
SK_API sk_sp<const SkCapabilities> skCapabilities() const;
|
|
@@ -126,8 +119,8 @@ public:
|
|
|
126
119
|
|
|
127
120
|
protected:
|
|
128
121
|
friend class GrRecordingContextPriv; // for hidden functions
|
|
129
|
-
friend class
|
|
130
|
-
friend class
|
|
122
|
+
friend class GrDeferredDisplayList; // for OwnedArenas
|
|
123
|
+
friend class GrDeferredDisplayListPriv; // for ProgramData
|
|
131
124
|
|
|
132
125
|
// Like Arenas, but preserves ownership of the underlying pools.
|
|
133
126
|
class OwnedArenas {
|
|
@@ -275,8 +268,6 @@ private:
|
|
|
275
268
|
#if GR_TEST_UTILS
|
|
276
269
|
int fSuppressWarningMessages = 0;
|
|
277
270
|
#endif
|
|
278
|
-
|
|
279
|
-
using INHERITED = GrImageContext;
|
|
280
271
|
};
|
|
281
272
|
|
|
282
273
|
/**
|
|
@@ -8,10 +8,14 @@
|
|
|
8
8
|
#ifndef skgpu_MutableTextureState_DEFINED
|
|
9
9
|
#define skgpu_MutableTextureState_DEFINED
|
|
10
10
|
|
|
11
|
+
#include "include/core/SkTypes.h"
|
|
11
12
|
#include "include/gpu/GpuTypes.h"
|
|
12
13
|
|
|
13
14
|
#ifdef SK_VULKAN
|
|
15
|
+
#include "include/private/gpu/vk/SkiaVulkan.h"
|
|
14
16
|
#include "include/private/gpu/vk/VulkanTypesPriv.h"
|
|
17
|
+
|
|
18
|
+
#include <cstdint>
|
|
15
19
|
#endif
|
|
16
20
|
|
|
17
21
|
#include <new>
|
|
@@ -0,0 +1,54 @@
|
|
|
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 GrExternalTextureGenerator_DEFINED
|
|
9
|
+
#define GrExternalTextureGenerator_DEFINED
|
|
10
|
+
|
|
11
|
+
#include "include/core/SkRefCnt.h"
|
|
12
|
+
#include "include/gpu/GrBackendSurface.h"
|
|
13
|
+
#include "include/private/base/SkAPI.h"
|
|
14
|
+
#include "include/private/gpu/ganesh/GrTextureGenerator.h"
|
|
15
|
+
|
|
16
|
+
#include <memory>
|
|
17
|
+
|
|
18
|
+
class GrRecordingContext;
|
|
19
|
+
class GrSurfaceProxyView;
|
|
20
|
+
class SkImage;
|
|
21
|
+
enum class GrImageTexGenPolicy : int;
|
|
22
|
+
namespace skgpu { enum class Mipmapped : bool; }
|
|
23
|
+
struct SkImageInfo;
|
|
24
|
+
|
|
25
|
+
class GrExternalTexture {
|
|
26
|
+
public:
|
|
27
|
+
virtual ~GrExternalTexture() = default;
|
|
28
|
+
virtual GrBackendTexture getBackendTexture() = 0;
|
|
29
|
+
virtual void dispose() = 0;
|
|
30
|
+
};
|
|
31
|
+
|
|
32
|
+
class SK_API GrExternalTextureGenerator : public GrTextureGenerator {
|
|
33
|
+
public:
|
|
34
|
+
GrExternalTextureGenerator(const SkImageInfo& info);
|
|
35
|
+
|
|
36
|
+
GrSurfaceProxyView onGenerateTexture(GrRecordingContext*,
|
|
37
|
+
const SkImageInfo&,
|
|
38
|
+
skgpu::Mipmapped,
|
|
39
|
+
GrImageTexGenPolicy) override;
|
|
40
|
+
virtual std::unique_ptr<GrExternalTexture> generateExternalTexture(GrRecordingContext *,
|
|
41
|
+
skgpu::Mipmapped) = 0;
|
|
42
|
+
};
|
|
43
|
+
|
|
44
|
+
namespace SkImages {
|
|
45
|
+
/**
|
|
46
|
+
* Like SkImages::DeferredFromGenerator except allows for the use of GrTextureGenerator.
|
|
47
|
+
*
|
|
48
|
+
* @param gen producer of textures
|
|
49
|
+
* @return created SkImage, or nullptr
|
|
50
|
+
*/
|
|
51
|
+
SK_API sk_sp<SkImage> DeferredFromTextureGenerator(std::unique_ptr<GrTextureGenerator> gen);
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
#endif // GrExternalTextureGenerator_DEFINED
|
|
@@ -14,25 +14,24 @@
|
|
|
14
14
|
#include "include/gpu/GrTypes.h"
|
|
15
15
|
#include "include/private/base/SkAPI.h"
|
|
16
16
|
|
|
17
|
+
// TODO(kjlubick) remove after chromium is migrated to include this directly
|
|
18
|
+
#include "include/private/chromium/SkImageChromium.h" // IWYU pragma: keep
|
|
19
|
+
|
|
17
20
|
#include <functional>
|
|
18
21
|
#include <utility>
|
|
19
22
|
|
|
20
|
-
class GrBackendFormat;
|
|
21
23
|
class GrBackendTexture;
|
|
22
|
-
class GrContextThreadSafeProxy;
|
|
23
24
|
class GrDirectContext;
|
|
24
25
|
class GrRecordingContext;
|
|
25
|
-
class GrYUVABackendTextureInfo;
|
|
26
26
|
class GrYUVABackendTextures;
|
|
27
27
|
class SkColorSpace;
|
|
28
28
|
class SkData;
|
|
29
29
|
class SkPixmap;
|
|
30
|
-
class SkPromiseImageTexture;
|
|
31
30
|
class SkYUVAPixmaps;
|
|
32
31
|
enum SkAlphaType : int;
|
|
33
32
|
enum SkColorType : int;
|
|
34
33
|
enum class SkTextureCompressionType;
|
|
35
|
-
struct
|
|
34
|
+
struct SkIRect;
|
|
36
35
|
|
|
37
36
|
/**
|
|
38
37
|
* All factories in this file refer to the Ganesh GPU backend when they say GPU.
|
|
@@ -262,77 +261,6 @@ SK_API sk_sp<SkImage> TextureFromYUVATextures(GrRecordingContext* context,
|
|
|
262
261
|
SK_API sk_sp<SkImage> TextureFromYUVATextures(GrRecordingContext* context,
|
|
263
262
|
const GrYUVABackendTextures& yuvaTextures);
|
|
264
263
|
|
|
265
|
-
using PromiseImageTextureContext = void*;
|
|
266
|
-
using PromiseImageTextureFulfillProc = sk_sp<SkPromiseImageTexture> (*)(PromiseImageTextureContext);
|
|
267
|
-
using PromiseImageTextureReleaseProc = void (*)(PromiseImageTextureContext);
|
|
268
|
-
|
|
269
|
-
/** Create a new GPU-backed SkImage that is very similar to an SkImage created by BorrowTextureFrom.
|
|
270
|
-
The difference is that the caller need not have created the texture nor populated it with the
|
|
271
|
-
image pixel data. Moreover, the SkImage may be created on a thread as the creation of the
|
|
272
|
-
image does not require access to the backend API or GrDirectContext. Instead of passing a
|
|
273
|
-
GrBackendTexture the client supplies a description of the texture consisting of
|
|
274
|
-
GrBackendFormat, width, height, and GrMipmapped state. The resulting SkImage can be drawn
|
|
275
|
-
to a SkDeferredDisplayListRecorder or directly to a GPU-backed SkSurface.
|
|
276
|
-
When the actual texture is required to perform a backend API draw, textureFulfillProc will
|
|
277
|
-
be called to receive a GrBackendTexture. The properties of the GrBackendTexture must match
|
|
278
|
-
those set during the SkImage creation, and it must refer to a valid existing texture in the
|
|
279
|
-
backend API context/device, and be populated with the image pixel data. The texture cannot
|
|
280
|
-
be deleted until textureReleaseProc is called.
|
|
281
|
-
There is at most one call to each of textureFulfillProc and textureReleaseProc.
|
|
282
|
-
textureReleaseProc is always called even if image creation fails or if the
|
|
283
|
-
image is never fulfilled (e.g. it is never drawn or all draws are clipped out)
|
|
284
|
-
@param gpuContextProxy the thread-safe proxy of the gpu context. required.
|
|
285
|
-
@param backendFormat format of promised gpu texture
|
|
286
|
-
@param dimensions width & height of promised gpu texture
|
|
287
|
-
@param mipmapped mip mapped state of promised gpu texture
|
|
288
|
-
@param origin surface origin of promised gpu texture
|
|
289
|
-
@param colorType color type of promised gpu texture
|
|
290
|
-
@param alphaType alpha type of promised gpu texture
|
|
291
|
-
@param colorSpace range of colors; may be nullptr
|
|
292
|
-
@param textureFulfillProc function called to get actual gpu texture
|
|
293
|
-
@param textureReleaseProc function called when texture can be deleted
|
|
294
|
-
@param textureContext state passed to textureFulfillProc and textureReleaseProc
|
|
295
|
-
@return created SkImage, or nullptr
|
|
296
|
-
*/
|
|
297
|
-
SK_API sk_sp<SkImage> PromiseTextureFrom(sk_sp<GrContextThreadSafeProxy> gpuContextProxy,
|
|
298
|
-
const GrBackendFormat& backendFormat,
|
|
299
|
-
SkISize dimensions,
|
|
300
|
-
GrMipmapped mipmapped,
|
|
301
|
-
GrSurfaceOrigin origin,
|
|
302
|
-
SkColorType colorType,
|
|
303
|
-
SkAlphaType alphaType,
|
|
304
|
-
sk_sp<SkColorSpace> colorSpace,
|
|
305
|
-
PromiseImageTextureFulfillProc textureFulfillProc,
|
|
306
|
-
PromiseImageTextureReleaseProc textureReleaseProc,
|
|
307
|
-
PromiseImageTextureContext textureContext);
|
|
308
|
-
|
|
309
|
-
/** This is similar to 'PromiseTextureFrom' but it creates a GPU-backed SkImage from YUV[A] data.
|
|
310
|
-
The source data may be planar (i.e. spread across multiple textures). In
|
|
311
|
-
the extreme Y, U, V, and A are all in different planes and thus the image is specified by
|
|
312
|
-
four textures. 'backendTextureInfo' describes the planar arrangement, texture formats,
|
|
313
|
-
conversion to RGB, and origin of the textures. Separate 'textureFulfillProc' and
|
|
314
|
-
'textureReleaseProc' calls are made for each texture. Each texture has its own
|
|
315
|
-
PromiseImageTextureContext. If 'backendTextureInfo' is not valid then no release proc
|
|
316
|
-
calls are made. Otherwise, the calls will be made even on failure. 'textureContexts' has one
|
|
317
|
-
entry for each of the up to four textures, as indicated by 'backendTextureInfo'.
|
|
318
|
-
Currently the mip mapped property of 'backendTextureInfo' is ignored. However, in the
|
|
319
|
-
near future it will be required that if it is kYes then textureFulfillProc must return
|
|
320
|
-
a mip mapped texture for each plane in order to successfully draw the image.
|
|
321
|
-
@param gpuContextProxy the thread-safe proxy of the gpu context. required.
|
|
322
|
-
@param backendTextureInfo info about the promised yuva gpu texture
|
|
323
|
-
@param imageColorSpace range of colors; may be nullptr
|
|
324
|
-
@param textureFulfillProc function called to get actual gpu texture
|
|
325
|
-
@param textureReleaseProc function called when texture can be deleted
|
|
326
|
-
@param textureContexts state passed to textureFulfillProc and textureReleaseProc
|
|
327
|
-
@return created SkImage, or nullptr
|
|
328
|
-
*/
|
|
329
|
-
SK_API sk_sp<SkImage> PromiseTextureFromYUVA(sk_sp<GrContextThreadSafeProxy> gpuContextProxy,
|
|
330
|
-
const GrYUVABackendTextureInfo& backendTextureInfo,
|
|
331
|
-
sk_sp<SkColorSpace> imageColorSpace,
|
|
332
|
-
PromiseImageTextureFulfillProc textureFulfillProc,
|
|
333
|
-
PromiseImageTextureReleaseProc textureReleaseProc,
|
|
334
|
-
PromiseImageTextureContext textureContexts[]);
|
|
335
|
-
|
|
336
264
|
/** Retrieves the existing backend texture. If SkImage is not a Ganesh-backend texture image
|
|
337
265
|
or otherwise does not have such a texture, false is returned. Otherwise, outTexture will
|
|
338
266
|
be set to the image's texture.
|
|
@@ -380,6 +308,22 @@ inline bool GetBackendTextureFromImage(GrDirectContext* context,
|
|
|
380
308
|
backendTextureReleaseProc);
|
|
381
309
|
}
|
|
382
310
|
|
|
311
|
+
/** Returns subset of this image as a texture-backed image.
|
|
312
|
+
|
|
313
|
+
Returns nullptr if any of the following are true:
|
|
314
|
+
- Subset is empty
|
|
315
|
+
- Subset is not contained inside the image's bounds
|
|
316
|
+
- Pixels in the source image could not be read or copied
|
|
317
|
+
- The source image is texture-backed and context does not match the source image's context.
|
|
318
|
+
|
|
319
|
+
@param context the non-null GrDirectContext to which the subset should be uploaded.
|
|
320
|
+
@param subset bounds of returned SkImage
|
|
321
|
+
@return the subsetted image, uploaded as a texture, or nullptr
|
|
322
|
+
*/
|
|
323
|
+
SK_API sk_sp<SkImage> SubsetTextureFrom(GrDirectContext* context,
|
|
324
|
+
const SkImage* img,
|
|
325
|
+
const SkIRect& subset);
|
|
326
|
+
|
|
383
327
|
} // namespace SkImages
|
|
384
328
|
|
|
385
329
|
#endif
|