@shopify/react-native-skia 0.1.213 → 0.1.214
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/cpp/rnskia-android/SkiaOpenGLHelper.h +3 -2
- package/android/cpp/rnskia-android/SkiaOpenGLSurfaceFactory.cpp +9 -2
- package/cpp/api/JsiSkSurface.h +4 -1
- package/cpp/skia/include/android/GrAHardwareBufferUtils.h +99 -0
- package/cpp/skia/include/android/SkHeifDecoder.h +10 -3
- package/cpp/skia/include/codec/SkAvifDecoder.h +1 -0
- package/cpp/skia/include/codec/SkBmpDecoder.h +1 -0
- package/cpp/skia/include/codec/SkCodec.h +4 -3
- package/cpp/skia/include/codec/SkEncodedImageFormat.h +0 -3
- package/cpp/skia/include/codec/SkGifDecoder.h +1 -0
- package/cpp/skia/include/codec/SkIcoDecoder.h +1 -0
- package/cpp/skia/include/codec/SkJpegDecoder.h +1 -0
- package/cpp/skia/include/codec/SkJpegxlDecoder.h +1 -0
- package/cpp/skia/include/codec/SkPngDecoder.h +1 -0
- package/cpp/skia/include/codec/SkRawDecoder.h +1 -0
- package/cpp/skia/include/codec/SkWbmpDecoder.h +1 -0
- package/cpp/skia/include/codec/SkWebpDecoder.h +1 -0
- package/cpp/skia/include/config/SkUserConfig.h +0 -2
- package/cpp/skia/include/core/SkBitmap.h +8 -8
- package/cpp/skia/include/core/SkCanvas.h +37 -50
- package/cpp/skia/include/core/SkCapabilities.h +2 -7
- package/cpp/skia/include/core/SkColor.h +1 -1
- package/cpp/skia/include/core/SkColorFilter.h +6 -0
- package/cpp/skia/include/core/SkColorTable.h +3 -0
- package/cpp/skia/include/core/SkColorType.h +2 -0
- package/cpp/skia/include/core/SkContourMeasure.h +12 -8
- package/cpp/skia/include/core/SkDocument.h +1 -0
- package/cpp/skia/include/core/SkFont.h +11 -2
- package/cpp/skia/include/core/SkFontMgr.h +2 -3
- package/cpp/skia/include/core/SkGraphics.h +3 -13
- package/cpp/skia/include/core/SkImage.h +57 -111
- package/cpp/skia/include/core/SkImageFilter.h +6 -1
- package/cpp/skia/include/core/SkImageGenerator.h +8 -0
- package/cpp/skia/include/core/SkImageInfo.h +0 -2
- package/cpp/skia/include/core/SkM44.h +7 -3
- package/cpp/skia/include/core/SkMallocPixelRef.h +4 -1
- package/cpp/skia/include/core/SkMatrix.h +17 -17
- package/cpp/skia/include/core/SkMesh.h +71 -61
- package/cpp/skia/include/core/SkMilestone.h +1 -1
- package/cpp/skia/include/core/SkOverdrawCanvas.h +25 -0
- package/cpp/skia/include/core/SkPaint.h +1 -1
- package/cpp/skia/include/core/SkPath.h +12 -4
- package/cpp/skia/include/core/SkPathMeasure.h +3 -4
- package/cpp/skia/include/core/SkPicture.h +19 -6
- package/cpp/skia/include/core/SkPictureRecorder.h +6 -6
- package/cpp/skia/include/core/SkPixmap.h +2 -3
- package/cpp/skia/include/core/SkRRect.h +1 -1
- package/cpp/skia/include/core/SkRect.h +107 -110
- package/cpp/skia/include/core/SkRefCnt.h +1 -1
- package/cpp/skia/include/core/SkRegion.h +7 -1
- package/cpp/skia/include/core/SkSerialProcs.h +14 -0
- package/cpp/skia/include/core/SkShader.h +9 -0
- package/cpp/skia/include/core/SkStream.h +9 -9
- package/cpp/skia/include/core/SkString.h +1 -1
- package/cpp/skia/include/core/SkSurface.h +14 -25
- package/cpp/skia/include/core/SkTextBlob.h +17 -4
- package/cpp/skia/include/core/SkTiledImageUtils.h +28 -0
- package/cpp/skia/include/core/SkTypeface.h +7 -2
- package/cpp/skia/include/core/SkTypes.h +4 -12
- package/cpp/skia/include/docs/SkPDFDocument.h +17 -3
- package/cpp/skia/include/effects/SkImageFilters.h +73 -24
- package/cpp/skia/include/effects/SkRuntimeEffect.h +20 -51
- package/cpp/skia/include/gpu/GpuTypes.h +13 -0
- package/cpp/skia/include/gpu/GrBackendSurface.h +95 -262
- package/cpp/skia/include/gpu/GrContextOptions.h +7 -1
- package/cpp/skia/include/gpu/GrDirectContext.h +138 -128
- package/cpp/skia/include/gpu/GrRecordingContext.h +9 -4
- package/cpp/skia/include/gpu/GrSurfaceInfo.h +0 -24
- package/cpp/skia/include/gpu/GrTypes.h +16 -1
- package/cpp/skia/include/gpu/GrYUVABackendTextures.h +4 -4
- package/cpp/skia/include/gpu/d3d/GrD3DTypes.h +2 -2
- package/cpp/skia/include/gpu/ganesh/SkImageGanesh.h +44 -12
- package/cpp/skia/include/gpu/ganesh/SkMeshGanesh.h +57 -0
- package/cpp/skia/include/gpu/ganesh/SkSurfaceGanesh.h +2 -1
- package/cpp/skia/include/gpu/ganesh/gl/GrGLBackendSurface.h +58 -0
- package/cpp/skia/include/gpu/ganesh/gl/GrGLDirectContext.h +29 -0
- package/cpp/skia/include/gpu/ganesh/mtl/SkSurfaceMetal.h +1 -1
- package/cpp/skia/include/gpu/ganesh/vk/GrVkBackendSurface.h +67 -0
- package/cpp/skia/include/gpu/gl/GrGLInterface.h +2 -2
- package/cpp/skia/include/gpu/graphite/BackendTexture.h +14 -3
- package/cpp/skia/include/gpu/graphite/Context.h +93 -13
- package/cpp/skia/include/gpu/graphite/ContextOptions.h +19 -8
- package/cpp/skia/include/gpu/graphite/GraphiteTypes.h +23 -0
- package/cpp/skia/include/gpu/graphite/Image.h +56 -0
- package/cpp/skia/include/gpu/graphite/ImageProvider.h +5 -0
- package/cpp/skia/include/gpu/graphite/Recorder.h +26 -9
- package/cpp/skia/include/gpu/graphite/Recording.h +7 -5
- package/cpp/skia/include/gpu/graphite/TextureInfo.h +8 -0
- package/cpp/skia/include/gpu/graphite/mtl/MtlGraphiteTypes.h +2 -2
- package/cpp/skia/include/gpu/mtl/GrMtlTypes.h +2 -2
- package/cpp/skia/include/gpu/vk/GrVkTypes.h +4 -3
- package/cpp/skia/include/ports/SkCFObject.h +1 -1
- package/cpp/skia/include/private/SkGainmapInfo.h +4 -13
- package/cpp/skia/include/private/SkJpegGainmapEncoder.h +1 -24
- package/cpp/skia/include/private/SkWeakRefCnt.h +1 -1
- package/cpp/skia/include/private/base/SkAnySubclass.h +73 -0
- package/cpp/skia/include/private/base/SkAssert.h +106 -12
- package/cpp/skia/include/private/base/SkAttributes.h +0 -12
- package/cpp/skia/include/private/base/SkFeatures.h +0 -3
- package/cpp/skia/include/private/base/SkFloatingPoint.h +58 -105
- package/cpp/skia/include/private/base/SkSpan_impl.h +18 -12
- package/cpp/skia/include/private/base/SkTArray.h +22 -17
- package/cpp/skia/include/private/base/SkTDArray.h +5 -6
- package/cpp/skia/include/private/base/SkTemplates.h +50 -30
- package/cpp/skia/include/private/chromium/GrDeferredDisplayListRecorder.h +5 -2
- package/cpp/skia/include/private/chromium/GrSurfaceCharacterization.h +2 -2
- package/cpp/skia/include/private/chromium/SkChromeRemoteGlyphCache.h +13 -8
- package/cpp/skia/include/private/chromium/SkDiscardableMemory.h +1 -1
- package/cpp/skia/include/private/chromium/SkImageChromium.h +16 -3
- package/cpp/skia/include/private/chromium/Slug.h +11 -4
- package/cpp/skia/include/private/gpu/ganesh/GrD3DTypesMinimal.h +1 -1
- package/cpp/skia/include/private/gpu/ganesh/GrGLTypesPriv.h +6 -9
- package/cpp/skia/include/private/gpu/ganesh/GrTypesPriv.h +29 -13
- package/cpp/skia/include/private/gpu/ganesh/GrVkTypesPriv.h +2 -28
- package/cpp/skia/include/private/gpu/graphite/ContextOptionsPriv.h +34 -0
- package/cpp/skia/include/private/gpu/graphite/DawnTypesPriv.h +6 -0
- package/cpp/skia/include/private/gpu/graphite/MtlGraphiteTypesPriv.h +8 -0
- package/cpp/skia/include/private/gpu/graphite/VulkanGraphiteTypesPriv.h +10 -0
- package/cpp/skia/include/utils/SkBase64.h +2 -2
- package/cpp/skia/include/utils/SkNWayCanvas.h +1 -11
- package/cpp/skia/include/utils/SkNoDrawCanvas.h +0 -2
- package/cpp/skia/include/utils/SkPaintFilterCanvas.h +1 -2
- package/cpp/skia/include/utils/SkShadowUtils.h +15 -1
- package/cpp/skia/include/utils/SkTextUtils.h +1 -1
- package/cpp/skia/modules/skparagraph/include/Paragraph.h +107 -1
- package/cpp/skia/modules/skparagraph/include/ParagraphBuilder.h +3 -2
- package/cpp/skia/modules/skparagraph/include/ParagraphStyle.h +4 -0
- package/cpp/skia/modules/skparagraph/include/TypefaceFontProvider.h +5 -3
- package/cpp/skia/modules/svg/include/SkSVGAttributeParser.h +4 -0
- package/cpp/skia/src/core/SkChecksum.h +2 -1
- package/cpp/skia/src/core/SkPathPriv.h +1 -1
- package/cpp/skia/src/core/SkTHash.h +19 -9
- package/ios/RNSkia-iOS/RNSkMetalCanvasProvider.mm +3 -1
- package/ios/RNSkia-iOS/SkiaMetalSurfaceFactory.mm +1 -1
- package/lib/commonjs/dom/nodes/datatypes/Rect.js +5 -1
- package/lib/commonjs/dom/nodes/datatypes/Rect.js.map +1 -1
- package/lib/commonjs/external/reanimated/index.d.ts +1 -0
- package/lib/commonjs/external/reanimated/index.js +13 -0
- package/lib/commonjs/external/reanimated/index.js.map +1 -1
- package/lib/commonjs/external/reanimated/moduleWrapper.js +3 -8
- package/lib/commonjs/external/reanimated/moduleWrapper.js.map +1 -1
- package/lib/commonjs/external/reanimated/renderHelpers.js +46 -1
- package/lib/commonjs/external/reanimated/renderHelpers.js.map +1 -1
- package/lib/commonjs/external/reanimated/useDerivedValueOnJS.d.ts +2 -0
- package/lib/commonjs/external/reanimated/useDerivedValueOnJS.js +26 -0
- package/lib/commonjs/external/reanimated/useDerivedValueOnJS.js.map +1 -0
- package/lib/commonjs/external/reanimated/useSharedValueEffect.js +2 -5
- package/lib/commonjs/external/reanimated/useSharedValueEffect.js.map +1 -1
- package/lib/commonjs/skia/types/MaskFilter.js +4 -0
- package/lib/commonjs/skia/types/MaskFilter.js.map +1 -1
- package/lib/commonjs/skia/web/JsiSkPicture.js +2 -1
- package/lib/commonjs/skia/web/JsiSkPicture.js.map +1 -1
- package/lib/commonjs/views/SkiaBaseWebView.js +1 -1
- package/lib/commonjs/views/SkiaBaseWebView.js.map +1 -1
- package/lib/commonjs/views/types.js +3 -0
- package/lib/commonjs/views/types.js.map +1 -1
- package/lib/module/dom/nodes/datatypes/Rect.js +5 -1
- package/lib/module/dom/nodes/datatypes/Rect.js.map +1 -1
- package/lib/module/external/reanimated/index.d.ts +1 -0
- package/lib/module/external/reanimated/index.js +1 -0
- package/lib/module/external/reanimated/index.js.map +1 -1
- package/lib/module/external/reanimated/moduleWrapper.js +1 -9
- package/lib/module/external/reanimated/moduleWrapper.js.map +1 -1
- package/lib/module/external/reanimated/renderHelpers.js +48 -2
- package/lib/module/external/reanimated/renderHelpers.js.map +1 -1
- package/lib/module/external/reanimated/useDerivedValueOnJS.d.ts +2 -0
- package/lib/module/external/reanimated/useDerivedValueOnJS.js +15 -0
- package/lib/module/external/reanimated/useDerivedValueOnJS.js.map +1 -0
- package/lib/module/external/reanimated/useSharedValueEffect.js +3 -6
- package/lib/module/external/reanimated/useSharedValueEffect.js.map +1 -1
- package/lib/module/skia/types/MaskFilter.js +3 -0
- package/lib/module/skia/types/MaskFilter.js.map +1 -1
- package/lib/module/views/types.js +3 -0
- package/lib/module/views/types.js.map +1 -1
- package/lib/typescript/src/external/reanimated/index.d.ts +1 -0
- package/lib/typescript/src/external/reanimated/useDerivedValueOnJS.d.ts +2 -0
- package/libs/android/arm64-v8a/libskia.a +0 -0
- package/libs/android/arm64-v8a/libskottie.a +0 -0
- package/libs/android/arm64-v8a/libskparagraph.a +0 -0
- package/libs/android/arm64-v8a/libsksg.a +0 -0
- package/libs/android/arm64-v8a/libskshaper.a +0 -0
- package/libs/android/arm64-v8a/libskunicode.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/libskparagraph.a +0 -0
- package/libs/android/armeabi-v7a/libsksg.a +0 -0
- package/libs/android/armeabi-v7a/libskshaper.a +0 -0
- package/libs/android/armeabi-v7a/libskunicode.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/libskparagraph.a +0 -0
- package/libs/android/x86/libsksg.a +0 -0
- package/libs/android/x86/libskshaper.a +0 -0
- package/libs/android/x86/libskunicode.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/libskparagraph.a +0 -0
- package/libs/android/x86_64/libsksg.a +0 -0
- package/libs/android/x86_64/libskshaper.a +0 -0
- package/libs/android/x86_64/libskunicode.a +0 -0
- package/libs/android/x86_64/libsvg.a +0 -0
- package/libs/ios/libskia.xcframework/Info.plist +5 -5
- 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/libskparagraph.xcframework/Info.plist +5 -5
- package/libs/ios/libskparagraph.xcframework/ios-arm64_arm64e/libskparagraph.a +0 -0
- package/libs/ios/libskparagraph.xcframework/ios-arm64_arm64e_x86_64-simulator/libskparagraph.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/libskunicode.xcframework/Info.plist +5 -5
- package/libs/ios/libskunicode.xcframework/ios-arm64_arm64e/libskunicode.a +0 -0
- package/libs/ios/libskunicode.xcframework/ios-arm64_arm64e_x86_64-simulator/libskunicode.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 +1 -1
- package/react-native-skia.podspec +1 -1
- package/src/dom/nodes/datatypes/Rect.ts +6 -2
- package/src/external/reanimated/index.ts +1 -0
- package/src/external/reanimated/moduleWrapper.ts +6 -10
- package/src/external/reanimated/renderHelpers.ts +41 -1
- package/src/external/reanimated/useDerivedValueOnJS.ts +24 -0
- package/src/external/reanimated/useSharedValueEffect.ts +4 -7
- package/cpp/skia/include/core/SkDeferredDisplayList.h +0 -15
- package/cpp/skia/include/core/SkDeferredDisplayListRecorder.h +0 -15
- package/cpp/skia/include/core/SkPromiseImageTexture.h +0 -20
- package/cpp/skia/include/core/SkSurfaceCharacterization.h +0 -15
- package/cpp/skia/include/core/SkTime.h +0 -63
- package/cpp/skia/include/effects/SkOpPathEffect.h +0 -43
- package/cpp/skia/include/effects/SkStrokeAndFillPathEffect.h +0 -28
- package/cpp/skia/include/gpu/GrBackendSurfaceMutableState.h +0 -32
- package/cpp/skia/include/gpu/dawn/GrDawnTypes.h +0 -95
- package/cpp/skia/include/private/SkBitmaskEnum.h +0 -59
- package/cpp/skia/include/private/SkSLDefines.h +0 -64
- package/cpp/skia/include/private/SkShadowFlags.h +0 -27
- package/cpp/skia/include/private/gpu/ganesh/GrDawnTypesPriv.h +0 -26
- /package/cpp/skia/{include/private/base → src/core}/SkPathEnums.h +0 -0
|
@@ -8,23 +8,24 @@
|
|
|
8
8
|
#ifndef SkMesh_DEFINED
|
|
9
9
|
#define SkMesh_DEFINED
|
|
10
10
|
|
|
11
|
-
#include "include/core/
|
|
12
|
-
|
|
13
|
-
#ifdef SK_ENABLE_SKSL
|
|
14
|
-
#include "include/core/SkAlphaType.h"
|
|
11
|
+
#include "include/core/SkData.h"
|
|
15
12
|
#include "include/core/SkRect.h"
|
|
16
13
|
#include "include/core/SkRefCnt.h"
|
|
17
14
|
#include "include/core/SkSpan.h"
|
|
18
15
|
#include "include/core/SkString.h"
|
|
19
16
|
#include "include/effects/SkRuntimeEffect.h"
|
|
17
|
+
#include "include/private/base/SkAPI.h"
|
|
20
18
|
|
|
19
|
+
#include <cstddef>
|
|
20
|
+
#include <cstdint>
|
|
21
21
|
#include <memory>
|
|
22
|
+
#include <string_view>
|
|
22
23
|
#include <tuple>
|
|
23
24
|
#include <vector>
|
|
24
25
|
|
|
25
26
|
class GrDirectContext;
|
|
26
27
|
class SkColorSpace;
|
|
27
|
-
|
|
28
|
+
enum SkAlphaType : int;
|
|
28
29
|
|
|
29
30
|
namespace SkSL { struct Program; }
|
|
30
31
|
|
|
@@ -102,6 +103,7 @@ public:
|
|
|
102
103
|
};
|
|
103
104
|
|
|
104
105
|
using Uniform = SkRuntimeEffect::Uniform;
|
|
106
|
+
using Child = SkRuntimeEffect::Child;
|
|
105
107
|
|
|
106
108
|
~SkMeshSpecification();
|
|
107
109
|
|
|
@@ -166,13 +168,22 @@ public:
|
|
|
166
168
|
*/
|
|
167
169
|
SkSpan<const Uniform> uniforms() const { return SkSpan(fUniforms); }
|
|
168
170
|
|
|
169
|
-
/**
|
|
171
|
+
/**
|
|
172
|
+
* Provides basic info about individual children: names, indices and runtime effect type.
|
|
173
|
+
* TODO(b/40045302): SkMesh will currently reject mesh specifications that include child effects
|
|
174
|
+
*/
|
|
175
|
+
SkSpan<const Child> children() const { return SkSpan(fChildren); }
|
|
176
|
+
|
|
177
|
+
/** Returns a pointer to the named child's description, or nullptr if not found. */
|
|
178
|
+
const Child* findChild(std::string_view name) const;
|
|
179
|
+
|
|
180
|
+
/** Returns a pointer to the named uniform variable's description, or nullptr if not found. */
|
|
170
181
|
const Uniform* findUniform(std::string_view name) const;
|
|
171
182
|
|
|
172
|
-
/** Returns pointer to the named attribute, or nullptr if not found. */
|
|
183
|
+
/** Returns a pointer to the named attribute, or nullptr if not found. */
|
|
173
184
|
const Attribute* findAttribute(std::string_view name) const;
|
|
174
185
|
|
|
175
|
-
/** Returns pointer to the named varying, or nullptr if not found. */
|
|
186
|
+
/** Returns a pointer to the named varying, or nullptr if not found. */
|
|
176
187
|
const Varying* findVarying(std::string_view name) const;
|
|
177
188
|
|
|
178
189
|
size_t stride() const { return fStride; }
|
|
@@ -200,6 +211,7 @@ private:
|
|
|
200
211
|
int passthroughLocalCoordsVaryingIndex,
|
|
201
212
|
uint32_t deadVaryingMask,
|
|
202
213
|
std::vector<Uniform> uniforms,
|
|
214
|
+
std::vector<Child> children,
|
|
203
215
|
std::unique_ptr<const SkSL::Program>,
|
|
204
216
|
std::unique_ptr<const SkSL::Program>,
|
|
205
217
|
ColorType,
|
|
@@ -215,6 +227,7 @@ private:
|
|
|
215
227
|
const std::vector<Attribute> fAttributes;
|
|
216
228
|
const std::vector<Varying> fVaryings;
|
|
217
229
|
const std::vector<Uniform> fUniforms;
|
|
230
|
+
const std::vector<Child> fChildren;
|
|
218
231
|
const std::unique_ptr<const SkSL::Program> fVS;
|
|
219
232
|
const std::unique_ptr<const SkSL::Program> fFS;
|
|
220
233
|
const size_t fStride;
|
|
@@ -230,18 +243,18 @@ private:
|
|
|
230
243
|
* A vertex buffer, a topology, optionally an index buffer, and a compatible SkMeshSpecification.
|
|
231
244
|
*
|
|
232
245
|
* The data in the vertex buffer is expected to contain the attributes described by the spec
|
|
233
|
-
* for vertexCount vertices beginning at vertexOffset. vertexOffset must be aligned to the
|
|
246
|
+
* for vertexCount vertices, beginning at vertexOffset. vertexOffset must be aligned to the
|
|
234
247
|
* SkMeshSpecification's vertex stride. The size of the buffer must be at least vertexOffset +
|
|
235
248
|
* spec->stride()*vertexCount (even if vertex attributes contains pad at the end of the stride). If
|
|
236
|
-
* the specified bounds
|
|
237
|
-
* applied to the vertices in the custom mesh then the result is undefined.
|
|
249
|
+
* the specified bounds do not contain all the points output by the spec's vertex program when
|
|
250
|
+
* applied to the vertices in the custom mesh, then the result is undefined.
|
|
238
251
|
*
|
|
239
252
|
* MakeIndexed may be used to create an indexed mesh. indexCount indices are read from the index
|
|
240
|
-
* buffer at the specified offset which must be aligned to 2. The indices are always unsigned
|
|
241
|
-
* integers. The index count must be at least 3.
|
|
253
|
+
* buffer at the specified offset, which must be aligned to 2. The indices are always unsigned
|
|
254
|
+
* 16-bit integers. The index count must be at least 3.
|
|
242
255
|
*
|
|
243
|
-
* If Make() is used the implicit index sequence is 0, 1, 2, 3, ... and vertexCount must be at
|
|
244
|
-
* 3.
|
|
256
|
+
* If Make() is used, the implicit index sequence is 0, 1, 2, 3, ... and vertexCount must be at
|
|
257
|
+
* least 3.
|
|
245
258
|
*
|
|
246
259
|
* Both Make() and MakeIndexed() take a SkData with the uniform values. See
|
|
247
260
|
* SkMeshSpecification::uniformSize() and SkMeshSpecification::uniforms() for sizing and packing
|
|
@@ -249,7 +262,7 @@ private:
|
|
|
249
262
|
*/
|
|
250
263
|
class SkMesh {
|
|
251
264
|
public:
|
|
252
|
-
class IndexBuffer
|
|
265
|
+
class IndexBuffer : public SkRefCnt {
|
|
253
266
|
public:
|
|
254
267
|
virtual size_t size() const = 0;
|
|
255
268
|
|
|
@@ -292,64 +305,27 @@ public:
|
|
|
292
305
|
SkMesh& operator=(const SkMesh&);
|
|
293
306
|
SkMesh& operator=(SkMesh&&);
|
|
294
307
|
|
|
295
|
-
/**
|
|
296
|
-
* Makes an index buffer to be used with SkMeshes. The buffer may be CPU- or GPU-backed
|
|
297
|
-
* depending on whether GrDirectContext* is nullptr.
|
|
298
|
-
*
|
|
299
|
-
* @param GrDirectContext* If nullptr a CPU-backed object is returned. Otherwise, the data is
|
|
300
|
-
* uploaded to the GPU and a GPU-backed buffer is returned. It may
|
|
301
|
-
* only be used to draw into SkSurfaces that are backed by the passed
|
|
302
|
-
* GrDirectContext.
|
|
303
|
-
* @param data The data used to populate the buffer, or nullptr to create a zero-
|
|
304
|
-
* initialized buffer.
|
|
305
|
-
* @param size Both the size of the data in 'data' and the size of the resulting
|
|
306
|
-
* buffer.
|
|
307
|
-
*/
|
|
308
|
-
static sk_sp<IndexBuffer> MakeIndexBuffer(GrDirectContext*, const void* data, size_t size);
|
|
309
|
-
|
|
310
|
-
/**
|
|
311
|
-
* Makes a copy of an index buffer. The implementation currently only supports a CPU-backed
|
|
312
|
-
* source buffer.
|
|
313
|
-
*/
|
|
314
|
-
static sk_sp<IndexBuffer> CopyIndexBuffer(GrDirectContext*, sk_sp<IndexBuffer>);
|
|
315
|
-
|
|
316
|
-
/**
|
|
317
|
-
* Makes a vertex buffer to be used with SkMeshes. The buffer may be CPU- or GPU-backed
|
|
318
|
-
* depending on whether GrDirectContext* is nullptr.
|
|
319
|
-
*
|
|
320
|
-
* @param GrDirectContext* If nullptr a CPU-backed object is returned. Otherwise, the data is
|
|
321
|
-
* uploaded to the GPU and a GPU-backed buffer is returned. It may
|
|
322
|
-
* only be used to draw into SkSurfaces that are backed by the passed
|
|
323
|
-
* GrDirectContext.
|
|
324
|
-
* @param data The data used to populate the buffer, or nullptr to create a zero-
|
|
325
|
-
* initialized buffer.
|
|
326
|
-
* @param size Both the size of the data in 'data' and the size of the resulting
|
|
327
|
-
* buffer.
|
|
328
|
-
*/
|
|
329
|
-
static sk_sp<VertexBuffer> MakeVertexBuffer(GrDirectContext*, const void*, size_t size);
|
|
330
|
-
|
|
331
|
-
/**
|
|
332
|
-
* Makes a copy of a vertex buffer. The implementation currently only supports a CPU-backed
|
|
333
|
-
* source buffer.
|
|
334
|
-
*/
|
|
335
|
-
static sk_sp<VertexBuffer> CopyVertexBuffer(GrDirectContext*, sk_sp<VertexBuffer>);
|
|
336
|
-
|
|
337
308
|
enum class Mode { kTriangles, kTriangleStrip };
|
|
338
309
|
|
|
339
310
|
struct Result;
|
|
340
311
|
|
|
312
|
+
using ChildPtr = SkRuntimeEffect::ChildPtr;
|
|
313
|
+
|
|
341
314
|
/**
|
|
342
315
|
* Creates a non-indexed SkMesh. The returned SkMesh can be tested for validity using
|
|
343
316
|
* SkMesh::isValid(). An invalid mesh simply fails to draws if passed to SkCanvas::drawMesh().
|
|
344
317
|
* If the mesh is invalid the returned string give contain the reason for the failure (e.g. the
|
|
345
318
|
* vertex buffer was null or uniform data too small).
|
|
346
319
|
*/
|
|
320
|
+
|
|
321
|
+
// TODO(b/40045302): support for `children` is a work-in-progress
|
|
347
322
|
static Result Make(sk_sp<SkMeshSpecification>,
|
|
348
323
|
Mode,
|
|
349
324
|
sk_sp<VertexBuffer>,
|
|
350
325
|
size_t vertexCount,
|
|
351
326
|
size_t vertexOffset,
|
|
352
327
|
sk_sp<const SkData> uniforms,
|
|
328
|
+
SkSpan<ChildPtr> children,
|
|
353
329
|
const SkRect& bounds);
|
|
354
330
|
|
|
355
331
|
/**
|
|
@@ -358,6 +334,8 @@ public:
|
|
|
358
334
|
* If the mesh is invalid the returned string give contain the reason for the failure (e.g. the
|
|
359
335
|
* index buffer was null or uniform data too small).
|
|
360
336
|
*/
|
|
337
|
+
|
|
338
|
+
// TODO(b/40045302): support for `children` is a work-in-progress
|
|
361
339
|
static Result MakeIndexed(sk_sp<SkMeshSpecification>,
|
|
362
340
|
Mode,
|
|
363
341
|
sk_sp<VertexBuffer>,
|
|
@@ -367,6 +345,7 @@ public:
|
|
|
367
345
|
size_t indexCount,
|
|
368
346
|
size_t indexOffset,
|
|
369
347
|
sk_sp<const SkData> uniforms,
|
|
348
|
+
SkSpan<ChildPtr> children,
|
|
370
349
|
const SkRect& bounds);
|
|
371
350
|
|
|
372
351
|
sk_sp<SkMeshSpecification> refSpec() const { return fSpec; }
|
|
@@ -389,13 +368,13 @@ public:
|
|
|
389
368
|
sk_sp<const SkData> refUniforms() const { return fUniforms; }
|
|
390
369
|
const SkData* uniforms() const { return fUniforms.get(); }
|
|
391
370
|
|
|
371
|
+
SkSpan<const ChildPtr> children() const { return SkSpan(fChildren); }
|
|
372
|
+
|
|
392
373
|
SkRect bounds() const { return fBounds; }
|
|
393
374
|
|
|
394
375
|
bool isValid() const;
|
|
395
376
|
|
|
396
377
|
private:
|
|
397
|
-
friend struct SkMeshPriv;
|
|
398
|
-
|
|
399
378
|
std::tuple<bool, SkString> validate() const;
|
|
400
379
|
|
|
401
380
|
sk_sp<SkMeshSpecification> fSpec;
|
|
@@ -404,6 +383,7 @@ private:
|
|
|
404
383
|
sk_sp<IndexBuffer> fIB;
|
|
405
384
|
|
|
406
385
|
sk_sp<const SkData> fUniforms;
|
|
386
|
+
std::vector<ChildPtr> fChildren;
|
|
407
387
|
|
|
408
388
|
size_t fVOffset = 0; // Must be a multiple of spec->stride()
|
|
409
389
|
size_t fVCount = 0;
|
|
@@ -418,6 +398,36 @@ private:
|
|
|
418
398
|
|
|
419
399
|
struct SkMesh::Result { SkMesh mesh; SkString error; };
|
|
420
400
|
|
|
421
|
-
|
|
401
|
+
namespace SkMeshes {
|
|
402
|
+
/**
|
|
403
|
+
* Makes a CPU-backed index buffer to be used with SkMeshes.
|
|
404
|
+
*
|
|
405
|
+
* @param data The data used to populate the buffer, or nullptr to create a zero-
|
|
406
|
+
* initialized buffer.
|
|
407
|
+
* @param size Both the size of the data in 'data' and the size of the resulting
|
|
408
|
+
* buffer.
|
|
409
|
+
*/
|
|
410
|
+
SK_API sk_sp<SkMesh::IndexBuffer> MakeIndexBuffer(const void* data, size_t size);
|
|
411
|
+
|
|
412
|
+
/**
|
|
413
|
+
* Makes a copy of an index buffer. The copy will be CPU-backed.
|
|
414
|
+
*/
|
|
415
|
+
SK_API sk_sp<SkMesh::IndexBuffer> CopyIndexBuffer(sk_sp<SkMesh::IndexBuffer>);
|
|
416
|
+
|
|
417
|
+
/**
|
|
418
|
+
* Makes a CPU-backed vertex buffer to be used with SkMeshes.
|
|
419
|
+
*
|
|
420
|
+
* @param data The data used to populate the buffer, or nullptr to create a zero-
|
|
421
|
+
* initialized buffer.
|
|
422
|
+
* @param size Both the size of the data in 'data' and the size of the resulting
|
|
423
|
+
* buffer.
|
|
424
|
+
*/
|
|
425
|
+
SK_API sk_sp<SkMesh::VertexBuffer> MakeVertexBuffer(const void*, size_t size);
|
|
426
|
+
|
|
427
|
+
/**
|
|
428
|
+
* Makes a copy of a vertex buffer. The copy will be CPU-backed.
|
|
429
|
+
*/
|
|
430
|
+
SK_API sk_sp<SkMesh::VertexBuffer> CopyVertexBuffer(sk_sp<SkMesh::VertexBuffer>);
|
|
431
|
+
} // namespace SkMeshes
|
|
422
432
|
|
|
423
433
|
#endif
|
|
@@ -8,9 +8,34 @@
|
|
|
8
8
|
#ifndef SkOverdrawCanvas_DEFINED
|
|
9
9
|
#define SkOverdrawCanvas_DEFINED
|
|
10
10
|
|
|
11
|
+
#include "include/core/SkCanvas.h"
|
|
11
12
|
#include "include/core/SkCanvasVirtualEnforcer.h"
|
|
13
|
+
#include "include/core/SkColor.h"
|
|
14
|
+
#include "include/core/SkPaint.h"
|
|
15
|
+
#include "include/core/SkSamplingOptions.h"
|
|
16
|
+
#include "include/core/SkScalar.h"
|
|
17
|
+
#include "include/private/base/SkAPI.h"
|
|
12
18
|
#include "include/utils/SkNWayCanvas.h"
|
|
13
19
|
|
|
20
|
+
#include <cstddef>
|
|
21
|
+
|
|
22
|
+
class SkData;
|
|
23
|
+
class SkDrawable;
|
|
24
|
+
class SkImage;
|
|
25
|
+
class SkMatrix;
|
|
26
|
+
class SkPath;
|
|
27
|
+
class SkPicture;
|
|
28
|
+
class SkRRect;
|
|
29
|
+
class SkRegion;
|
|
30
|
+
class SkTextBlob;
|
|
31
|
+
class SkVertices;
|
|
32
|
+
enum class SkBlendMode;
|
|
33
|
+
namespace sktext { class GlyphRunList; }
|
|
34
|
+
struct SkDrawShadowRec;
|
|
35
|
+
struct SkPoint;
|
|
36
|
+
struct SkRSXform;
|
|
37
|
+
struct SkRect;
|
|
38
|
+
|
|
14
39
|
/**
|
|
15
40
|
* Captures all drawing commands. Rather than draw the actual content, this device
|
|
16
41
|
* increments the alpha channel of each pixel every time it would have been touched
|
|
@@ -598,7 +598,7 @@ public:
|
|
|
598
598
|
|
|
599
599
|
/** (to be made private)
|
|
600
600
|
Returns true if SkPaint does not include elements requiring extensive computation
|
|
601
|
-
to compute
|
|
601
|
+
to compute device bounds of drawn geometry. For instance, SkPaint with SkPathEffect
|
|
602
602
|
always returns false.
|
|
603
603
|
|
|
604
604
|
@return true if SkPaint allows for fast computation of bounds
|
|
@@ -330,10 +330,10 @@ public:
|
|
|
330
330
|
|
|
331
331
|
/** Specifies whether SkPath is volatile; whether it will be altered or discarded
|
|
332
332
|
by the caller after it is drawn. SkPath by default have volatile set false, allowing
|
|
333
|
-
|
|
333
|
+
Skia to attach a cache of data which speeds repeated drawing.
|
|
334
334
|
|
|
335
335
|
Mark temporary paths, discarded or modified after use, as volatile
|
|
336
|
-
to inform
|
|
336
|
+
to inform Skia that the path need not be cached.
|
|
337
337
|
|
|
338
338
|
Mark animating SkPath volatile to improve performance.
|
|
339
339
|
Mark unchanging SkPath non-volatile to improve repeated rendering.
|
|
@@ -1248,8 +1248,16 @@ public:
|
|
|
1248
1248
|
the last contour or start a new contour.
|
|
1249
1249
|
*/
|
|
1250
1250
|
enum AddPathMode {
|
|
1251
|
-
|
|
1252
|
-
|
|
1251
|
+
/** Contours are appended to the destination path as new contours.
|
|
1252
|
+
*/
|
|
1253
|
+
kAppend_AddPathMode,
|
|
1254
|
+
/** Extends the last contour of the destination path with the first countour
|
|
1255
|
+
of the source path, connecting them with a line. If the last contour is
|
|
1256
|
+
closed, a new empty contour starting at its start point is extended instead.
|
|
1257
|
+
If the destination path is empty, the result is the source path.
|
|
1258
|
+
The last path of the result is closed only if the last path of the source is.
|
|
1259
|
+
*/
|
|
1260
|
+
kExtend_AddPathMode,
|
|
1253
1261
|
};
|
|
1254
1262
|
|
|
1255
1263
|
/** Appends src to SkPath, offset by (dx, dy).
|
|
@@ -42,8 +42,7 @@ public:
|
|
|
42
42
|
Returns false if there is no path, or a zero-length path was specified, in which case
|
|
43
43
|
position and tangent are unchanged.
|
|
44
44
|
*/
|
|
45
|
-
bool
|
|
46
|
-
SkVector* tangent);
|
|
45
|
+
[[nodiscard]] bool getPosTan(SkScalar distance, SkPoint* position, SkVector* tangent);
|
|
47
46
|
|
|
48
47
|
enum MatrixFlags {
|
|
49
48
|
kGetPosition_MatrixFlag = 0x01,
|
|
@@ -56,8 +55,8 @@ public:
|
|
|
56
55
|
Returns false if there is no path, or a zero-length path was specified, in which case
|
|
57
56
|
matrix is unchanged.
|
|
58
57
|
*/
|
|
59
|
-
bool
|
|
60
|
-
|
|
58
|
+
[[nodiscard]] bool getMatrix(SkScalar distance, SkMatrix* matrix,
|
|
59
|
+
MatrixFlags flags = kGetPosAndTan_MatrixFlag);
|
|
61
60
|
|
|
62
61
|
/** Given a start and stop distance, return in dst the intervening segment(s).
|
|
63
62
|
If the segment is zero-length, return false, else return true.
|
|
@@ -10,19 +10,24 @@
|
|
|
10
10
|
|
|
11
11
|
#include "include/core/SkRect.h"
|
|
12
12
|
#include "include/core/SkRefCnt.h"
|
|
13
|
-
#include "include/core/
|
|
14
|
-
#include "include/core/SkShader.h"
|
|
15
|
-
#include "include/core/SkTileMode.h"
|
|
13
|
+
#include "include/core/SkShader.h" // IWYU pragma: keep
|
|
16
14
|
#include "include/core/SkTypes.h"
|
|
17
15
|
|
|
16
|
+
#include <atomic>
|
|
17
|
+
#include <cstddef>
|
|
18
|
+
#include <cstdint>
|
|
19
|
+
|
|
18
20
|
class SkCanvas;
|
|
19
21
|
class SkData;
|
|
20
|
-
struct SkDeserialProcs;
|
|
21
|
-
class SkImage;
|
|
22
22
|
class SkMatrix;
|
|
23
|
-
struct SkSerialProcs;
|
|
24
23
|
class SkStream;
|
|
25
24
|
class SkWStream;
|
|
25
|
+
enum class SkFilterMode;
|
|
26
|
+
struct SkDeserialProcs;
|
|
27
|
+
struct SkSerialProcs;
|
|
28
|
+
|
|
29
|
+
// TODO(kjlubick) Remove this after cleaning up clients
|
|
30
|
+
#include "include/core/SkTileMode.h" // IWYU pragma: keep
|
|
26
31
|
|
|
27
32
|
/** \class SkPicture
|
|
28
33
|
SkPicture records drawing commands made to SkCanvas. The command stream may be
|
|
@@ -157,6 +162,10 @@ public:
|
|
|
157
162
|
may be used to provide user context to procs->fPictureProc; procs->fPictureProc
|
|
158
163
|
is called with a pointer to SkPicture and user context.
|
|
159
164
|
|
|
165
|
+
The default behavior for serializing SkImages is to encode a nullptr. Should
|
|
166
|
+
clients want to, for example, encode these SkImages as PNGs so they can be
|
|
167
|
+
deserialized, they must provide SkSerialProcs with the fImageProc set to do so.
|
|
168
|
+
|
|
160
169
|
@param procs custom serial data encoders; may be nullptr
|
|
161
170
|
@return storage containing serialized SkPicture
|
|
162
171
|
|
|
@@ -171,6 +180,10 @@ public:
|
|
|
171
180
|
may be used to provide user context to procs->fPictureProc; procs->fPictureProc
|
|
172
181
|
is called with a pointer to SkPicture and user context.
|
|
173
182
|
|
|
183
|
+
The default behavior for serializing SkImages is to encode a nullptr. Should
|
|
184
|
+
clients want to, for example, encode these SkImages as PNGs so they can be
|
|
185
|
+
deserialized, they must provide SkSerialProcs with the fImageProc set to do so.
|
|
186
|
+
|
|
174
187
|
@param stream writable serial data stream
|
|
175
188
|
@param procs custom serial data encoders; may be nullptr
|
|
176
189
|
|
|
@@ -8,9 +8,10 @@
|
|
|
8
8
|
#ifndef SkPictureRecorder_DEFINED
|
|
9
9
|
#define SkPictureRecorder_DEFINED
|
|
10
10
|
|
|
11
|
-
#include "include/core/
|
|
12
|
-
#include "include/core/SkPicture.h"
|
|
11
|
+
#include "include/core/SkRect.h"
|
|
13
12
|
#include "include/core/SkRefCnt.h"
|
|
13
|
+
#include "include/core/SkScalar.h"
|
|
14
|
+
#include "include/private/base/SkAPI.h"
|
|
14
15
|
|
|
15
16
|
#include <memory>
|
|
16
17
|
|
|
@@ -20,9 +21,11 @@ namespace android {
|
|
|
20
21
|
};
|
|
21
22
|
#endif
|
|
22
23
|
|
|
24
|
+
class SkBBHFactory;
|
|
25
|
+
class SkBBoxHierarchy;
|
|
23
26
|
class SkCanvas;
|
|
24
27
|
class SkDrawable;
|
|
25
|
-
class
|
|
28
|
+
class SkPicture;
|
|
26
29
|
class SkRecord;
|
|
27
30
|
class SkRecorder;
|
|
28
31
|
|
|
@@ -31,9 +34,6 @@ public:
|
|
|
31
34
|
SkPictureRecorder();
|
|
32
35
|
~SkPictureRecorder();
|
|
33
36
|
|
|
34
|
-
enum FinishFlags {
|
|
35
|
-
};
|
|
36
|
-
|
|
37
37
|
/** Returns the canvas that records the drawing commands.
|
|
38
38
|
@param bounds the cull rect used when recording this picture. Any drawing the falls outside
|
|
39
39
|
of this rect is undefined, and may be drawn or it may not.
|
|
@@ -17,7 +17,6 @@
|
|
|
17
17
|
#include "include/core/SkSize.h"
|
|
18
18
|
#include "include/private/base/SkAPI.h"
|
|
19
19
|
#include "include/private/base/SkAssert.h"
|
|
20
|
-
#include "include/private/base/SkAttributes.h"
|
|
21
20
|
|
|
22
21
|
#include <cstddef>
|
|
23
22
|
#include <cstdint>
|
|
@@ -115,7 +114,7 @@ public:
|
|
|
115
114
|
|
|
116
115
|
/** Deprecated.
|
|
117
116
|
*/
|
|
118
|
-
bool
|
|
117
|
+
[[nodiscard]] bool reset(const SkMask& mask);
|
|
119
118
|
|
|
120
119
|
/** Sets subset width, height, pixel address to intersection of SkPixmap with area,
|
|
121
120
|
if intersection is not empty; and return true. Otherwise, leave subset unchanged
|
|
@@ -127,7 +126,7 @@ public:
|
|
|
127
126
|
@param area bounds to intersect with SkPixmap
|
|
128
127
|
@return true if intersection of SkPixmap and area is not empty
|
|
129
128
|
*/
|
|
130
|
-
bool
|
|
129
|
+
[[nodiscard]] bool extractSubset(SkPixmap* subset, const SkIRect& area) const;
|
|
131
130
|
|
|
132
131
|
/** Returns width, height, SkAlphaType, SkColorType, and SkColorSpace.
|
|
133
132
|
|
|
@@ -394,7 +394,7 @@ public:
|
|
|
394
394
|
@param dy offset added to rect().fTop and rect().fBottom
|
|
395
395
|
@return SkRRect bounds offset by (dx, dy), with unchanged corner radii
|
|
396
396
|
*/
|
|
397
|
-
SkRRect
|
|
397
|
+
[[nodiscard]] SkRRect makeOffset(SkScalar dx, SkScalar dy) const {
|
|
398
398
|
return SkRRect(fRect.makeOffset(dx, dy), fRadii, fType);
|
|
399
399
|
}
|
|
400
400
|
|