Skip to content

Commit 4683ac7

Browse files
authored
Move Skottie and SceneGraph out of the core SkiaSharp.dll (mono#2091)
1 parent c8cdc0e commit 4683ac7

File tree

80 files changed

+2463
-535
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

80 files changed

+2463
-535
lines changed

VERSIONS.txt

+1
Original file line numberDiff line numberDiff line change
@@ -83,6 +83,7 @@ SkiaSharp.Views.Maui.Controls nuget 2.88.1
8383
SkiaSharp.Views.Maui.Controls.Compatibility nuget 2.88.1
8484
SkiaSharp.Views.Blazor nuget 2.88.1
8585
SkiaSharp.HarfBuzz nuget 2.88.1
86+
SkiaSharp.Skottie nuget 2.88.1
8687
SkiaSharp.Vulkan.SharpVk nuget 2.88.1
8788
HarfBuzzSharp nuget 2.8.2.1
8889
HarfBuzzSharp.NativeAssets.Android nuget 2.8.2.1

binding/Binding/Properties/SkiaSharpAssemblyInfo.cs

+14
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,20 @@
3737
"dafa277b22de47d6ffea449674a4f9fccf84d15069089380284dbdd35f46cdff12a1bd78e4ef00" +
3838
"65d016df")]
3939

40+
[assembly: InternalsVisibleTo("SkiaSharp.SceneGraph, PublicKey=" +
41+
"002400000480000094000000060200000024000052534131000400000100010079159977d2d03a" +
42+
"8e6bea7a2e74e8d1afcc93e8851974952bb480a12c9134474d04062447c37e0e68c080536fcf3c" +
43+
"3fbe2ff9c979ce998475e506e8ce82dd5b0f350dc10e93bf2eeecf874b24770c5081dbea7447fd" +
44+
"dafa277b22de47d6ffea449674a4f9fccf84d15069089380284dbdd35f46cdff12a1bd78e4ef00" +
45+
"65d016df")]
46+
47+
[assembly: InternalsVisibleTo("SkiaSharp.Skottie, PublicKey=" +
48+
"002400000480000094000000060200000024000052534131000400000100010079159977d2d03a" +
49+
"8e6bea7a2e74e8d1afcc93e8851974952bb480a12c9134474d04062447c37e0e68c080536fcf3c" +
50+
"3fbe2ff9c979ce998475e506e8ce82dd5b0f350dc10e93bf2eeecf874b24770c5081dbea7447fd" +
51+
"dafa277b22de47d6ffea449674a4f9fccf84d15069089380284dbdd35f46cdff12a1bd78e4ef00" +
52+
"65d016df")]
53+
4054
[assembly: AssemblyMetadata("IsTrimmable", "True")]
4155

4256
#if __IOS__ || __TVOS__ || __WATCHOS__ || __MACOS__

binding/Binding/SkiaApi.generated.cs

-372
Large diffs are not rendered by default.
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
<Project Sdk="MSBuild.Sdk.Extras/3.0.44">
2+
<PropertyGroup>
3+
<TargetFrameworks>$(ClassicTargetFrameworks)</TargetFrameworks>
4+
<RootNamespace>SkiaSharp.SceneGraph</RootNamespace>
5+
<AssemblyName>SkiaSharp.SceneGraph</AssemblyName>
6+
<PackagingGroup>SkiaSharp.Skottie</PackagingGroup>
7+
</PropertyGroup>
8+
<ItemGroup>
9+
<ProjectReference Include="..\SkiaSharp.Classic\SkiaSharp.Classic.csproj" />
10+
</ItemGroup>
11+
<ItemGroup>
12+
<Compile Include="..\SkiaSharp.SceneGraph\**\*.cs" Exclude="..\SkiaSharp.SceneGraph\bin\**;..\SkiaSharp.SceneGraph\obj\**" Link="%(RecursiveDir)%(Filename)%(Extension)" />
13+
</ItemGroup>
14+
</Project>

binding/Binding/SceneGraph/InvalidationController.cs renamed to binding/SkiaSharp.SceneGraph/InvalidationController.cs

+9-10
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ namespace SkiaSharp.SceneGraph
88
public unsafe class InvalidationController : SKObject, ISKSkipObjectRegistration
99
{
1010
public InvalidationController ()
11-
: this (SkiaApi.sksg_invalidation_controller_new (), true)
11+
: this (SceneGraphApi.sksg_invalidation_controller_new (), true)
1212
{
1313
}
1414

@@ -19,36 +19,35 @@ internal InvalidationController (IntPtr handle, bool owns)
1919

2020
protected override void DisposeNative ()
2121
{
22-
SkiaApi.sksg_invalidation_controller_delete (Handle);
22+
SceneGraphApi.sksg_invalidation_controller_delete (Handle);
2323
}
2424

25-
public unsafe void Invalidate(SKRect rect, SKMatrix matrix)
25+
public unsafe void Invalidate (SKRect rect, SKMatrix matrix)
2626
{
27-
SkiaApi.sksg_invalidation_controller_inval (Handle, &rect, &matrix);
27+
SceneGraphApi.sksg_invalidation_controller_inval (Handle, &rect, &matrix);
2828
}
2929

30-
public unsafe SKRect Bounds
31-
{
30+
public unsafe SKRect Bounds {
3231
get {
3332
SKRect rect;
34-
SkiaApi.sksg_invalidation_controller_get_bounds (Handle, &rect);
33+
SceneGraphApi.sksg_invalidation_controller_get_bounds (Handle, &rect);
3534
return rect;
3635
}
3736
}
3837

3938
public unsafe void Begin ()
4039
{
41-
SkiaApi.sksg_invalidation_controller_begin (Handle);
40+
SceneGraphApi.sksg_invalidation_controller_begin (Handle);
4241
}
4342

4443
public unsafe void End ()
4544
{
46-
SkiaApi.sksg_invalidation_controller_end (Handle);
45+
SceneGraphApi.sksg_invalidation_controller_end (Handle);
4746
}
4847

4948
public unsafe void Reset ()
5049
{
51-
SkiaApi.sksg_invalidation_controller_reset (Handle);
50+
SceneGraphApi.sksg_invalidation_controller_reset (Handle);
5251
}
5352
}
5453
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
using System;
2+
using System.Reflection;
3+
using System.Resources;
4+
using System.Runtime.CompilerServices;
5+
6+
[assembly: AssemblyTitle("SkiaSharp.SceneGraph")]
7+
[assembly: AssemblyCompany("Microsoft Corporation")]
8+
[assembly: AssemblyProduct("SkiaSharp")]
9+
[assembly: AssemblyCopyright("© Microsoft Corporation. All rights reserved.")]
10+
[assembly: NeutralResourcesLanguage("en")]
11+
12+
#if DEBUG
13+
[assembly: AssemblyConfiguration("Debug")]
14+
#else
15+
[assembly: AssemblyConfiguration("Release")]
16+
#endif
17+
18+
[assembly: InternalsVisibleTo("SkiaSharp.Tests, PublicKey=" +
19+
"002400000480000094000000060200000024000052534131000400000100010079159977d2d03a" +
20+
"8e6bea7a2e74e8d1afcc93e8851974952bb480a12c9134474d04062447c37e0e68c080536fcf3c" +
21+
"3fbe2ff9c979ce998475e506e8ce82dd5b0f350dc10e93bf2eeecf874b24770c5081dbea7447fd" +
22+
"dafa277b22de47d6ffea449674a4f9fccf84d15069089380284dbdd35f46cdff12a1bd78e4ef00" +
23+
"65d016df")]
24+
25+
[assembly: InternalsVisibleTo("SkiaSharp.Skottie, PublicKey=" +
26+
"002400000480000094000000060200000024000052534131000400000100010079159977d2d03a" +
27+
"8e6bea7a2e74e8d1afcc93e8851974952bb480a12c9134474d04062447c37e0e68c080536fcf3c" +
28+
"3fbe2ff9c979ce998475e506e8ce82dd5b0f350dc10e93bf2eeecf874b24770c5081dbea7447fd" +
29+
"dafa277b22de47d6ffea449674a4f9fccf84d15069089380284dbdd35f46cdff12a1bd78e4ef00" +
30+
"65d016df")]
31+
32+
[assembly: AssemblyMetadata("IsTrimmable", "True")]
33+
34+
#if __IOS__ || __TVOS__ || __WATCHOS__ || __MACOS__
35+
// This attribute allows you to mark your assemblies as “safe to link”.
36+
// When the attribute is present, the linker—if enabled—will process the assembly
37+
// even if you’re using the “Link SDK assemblies only” option, which is the default for device builds.
38+
#pragma warning disable CS0618 // Type or member is obsolete
39+
[assembly: Foundation.LinkerSafe]
40+
#pragma warning restore CS0618 // Type or member is obsolete
41+
#endif
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
using System;
2+
3+
namespace SkiaSharp
4+
{
5+
internal partial class SceneGraphApi
6+
{
7+
#if __IOS__ || __TVOS__ || __WATCHOS__
8+
private const string SKIA = "@rpath/libSkiaSharp.framework/libSkiaSharp";
9+
#else
10+
private const string SKIA = "libSkiaSharp";
11+
#endif
12+
13+
#if USE_DELEGATES
14+
private static readonly Lazy<IntPtr> libSkiaSharpHandle =
15+
new Lazy<IntPtr> (() => LibraryLoader.LoadLocalLibrary<SkiaApi> (SKIA));
16+
17+
private static T GetSymbol<T> (string name) where T : Delegate =>
18+
LibraryLoader.GetSymbolDelegate<T> (libSkiaSharpHandle.Value, name);
19+
#endif
20+
}
21+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,227 @@
1+
using System;
2+
using System.Runtime.InteropServices;
3+
4+
#region Namespaces
5+
6+
using SkiaSharp.SceneGraph;
7+
8+
#endregion
9+
10+
#region Class declarations
11+
12+
using gr_backendrendertarget_t = System.IntPtr;
13+
using gr_backendtexture_t = System.IntPtr;
14+
using gr_direct_context_t = System.IntPtr;
15+
using gr_glinterface_t = System.IntPtr;
16+
using gr_recording_context_t = System.IntPtr;
17+
using gr_vk_extensions_t = System.IntPtr;
18+
using gr_vk_memory_allocator_t = System.IntPtr;
19+
using gr_vkinterface_t = System.IntPtr;
20+
using sk_3dview_t = System.IntPtr;
21+
using sk_bitmap_t = System.IntPtr;
22+
using sk_canvas_t = System.IntPtr;
23+
using sk_codec_t = System.IntPtr;
24+
using sk_colorfilter_t = System.IntPtr;
25+
using sk_colorspace_icc_profile_t = System.IntPtr;
26+
using sk_colorspace_t = System.IntPtr;
27+
using sk_colortable_t = System.IntPtr;
28+
using sk_compatpaint_t = System.IntPtr;
29+
using sk_data_t = System.IntPtr;
30+
using sk_document_t = System.IntPtr;
31+
using sk_drawable_t = System.IntPtr;
32+
using sk_font_t = System.IntPtr;
33+
using sk_fontmgr_t = System.IntPtr;
34+
using sk_fontstyle_t = System.IntPtr;
35+
using sk_fontstyleset_t = System.IntPtr;
36+
using sk_image_t = System.IntPtr;
37+
using sk_imagefilter_croprect_t = System.IntPtr;
38+
using sk_imagefilter_t = System.IntPtr;
39+
using sk_manageddrawable_t = System.IntPtr;
40+
using sk_managedtracememorydump_t = System.IntPtr;
41+
using sk_maskfilter_t = System.IntPtr;
42+
using sk_matrix44_t = System.IntPtr;
43+
using sk_nodraw_canvas_t = System.IntPtr;
44+
using sk_nvrefcnt_t = System.IntPtr;
45+
using sk_nway_canvas_t = System.IntPtr;
46+
using sk_opbuilder_t = System.IntPtr;
47+
using sk_overdraw_canvas_t = System.IntPtr;
48+
using sk_paint_t = System.IntPtr;
49+
using sk_path_effect_t = System.IntPtr;
50+
using sk_path_iterator_t = System.IntPtr;
51+
using sk_path_rawiterator_t = System.IntPtr;
52+
using sk_path_t = System.IntPtr;
53+
using sk_pathmeasure_t = System.IntPtr;
54+
using sk_picture_recorder_t = System.IntPtr;
55+
using sk_picture_t = System.IntPtr;
56+
using sk_pixelref_factory_t = System.IntPtr;
57+
using sk_pixmap_t = System.IntPtr;
58+
using sk_refcnt_t = System.IntPtr;
59+
using sk_region_cliperator_t = System.IntPtr;
60+
using sk_region_iterator_t = System.IntPtr;
61+
using sk_region_spanerator_t = System.IntPtr;
62+
using sk_region_t = System.IntPtr;
63+
using sk_rrect_t = System.IntPtr;
64+
using sk_runtimeeffect_t = System.IntPtr;
65+
using sk_runtimeeffect_uniform_t = System.IntPtr;
66+
using sk_shader_t = System.IntPtr;
67+
using sk_stream_asset_t = System.IntPtr;
68+
using sk_stream_filestream_t = System.IntPtr;
69+
using sk_stream_managedstream_t = System.IntPtr;
70+
using sk_stream_memorystream_t = System.IntPtr;
71+
using sk_stream_streamrewindable_t = System.IntPtr;
72+
using sk_stream_t = System.IntPtr;
73+
using sk_string_t = System.IntPtr;
74+
using sk_surface_t = System.IntPtr;
75+
using sk_surfaceprops_t = System.IntPtr;
76+
using sk_svgcanvas_t = System.IntPtr;
77+
using sk_textblob_builder_t = System.IntPtr;
78+
using sk_textblob_t = System.IntPtr;
79+
using sk_tracememorydump_t = System.IntPtr;
80+
using sk_typeface_t = System.IntPtr;
81+
using sk_vertices_t = System.IntPtr;
82+
using sk_wstream_dynamicmemorystream_t = System.IntPtr;
83+
using sk_wstream_filestream_t = System.IntPtr;
84+
using sk_wstream_managedstream_t = System.IntPtr;
85+
using sk_wstream_t = System.IntPtr;
86+
using sk_xmlstreamwriter_t = System.IntPtr;
87+
using sk_xmlwriter_t = System.IntPtr;
88+
using skottie_animation_builder_t = System.IntPtr;
89+
using skottie_animation_t = System.IntPtr;
90+
using skottie_logger_t = System.IntPtr;
91+
using skottie_marker_observer_t = System.IntPtr;
92+
using skottie_property_observer_t = System.IntPtr;
93+
using skottie_resource_provider_t = System.IntPtr;
94+
using sksg_invalidation_controller_t = System.IntPtr;
95+
using vk_device_t = System.IntPtr;
96+
using vk_instance_t = System.IntPtr;
97+
using vk_physical_device_features_2_t = System.IntPtr;
98+
using vk_physical_device_features_t = System.IntPtr;
99+
using vk_physical_device_t = System.IntPtr;
100+
using vk_queue_t = System.IntPtr;
101+
102+
#endregion
103+
104+
#region Functions
105+
106+
namespace SkiaSharp
107+
{
108+
internal unsafe partial class SceneGraphApi
109+
{
110+
#region sksg_invalidation_controller.h
111+
112+
// void sksg_invalidation_controller_begin(sksg_invalidation_controller_t* instance)
113+
#if !USE_DELEGATES
114+
[DllImport (SKIA, CallingConvention = CallingConvention.Cdecl)]
115+
internal static extern void sksg_invalidation_controller_begin (sksg_invalidation_controller_t instance);
116+
#else
117+
private partial class Delegates {
118+
[UnmanagedFunctionPointer (CallingConvention.Cdecl)]
119+
internal delegate void sksg_invalidation_controller_begin (sksg_invalidation_controller_t instance);
120+
}
121+
private static Delegates.sksg_invalidation_controller_begin sksg_invalidation_controller_begin_delegate;
122+
internal static void sksg_invalidation_controller_begin (sksg_invalidation_controller_t instance) =>
123+
(sksg_invalidation_controller_begin_delegate ??= GetSymbol<Delegates.sksg_invalidation_controller_begin> ("sksg_invalidation_controller_begin")).Invoke (instance);
124+
#endif
125+
126+
// void sksg_invalidation_controller_delete(sksg_invalidation_controller_t* instance)
127+
#if !USE_DELEGATES
128+
[DllImport (SKIA, CallingConvention = CallingConvention.Cdecl)]
129+
internal static extern void sksg_invalidation_controller_delete (sksg_invalidation_controller_t instance);
130+
#else
131+
private partial class Delegates {
132+
[UnmanagedFunctionPointer (CallingConvention.Cdecl)]
133+
internal delegate void sksg_invalidation_controller_delete (sksg_invalidation_controller_t instance);
134+
}
135+
private static Delegates.sksg_invalidation_controller_delete sksg_invalidation_controller_delete_delegate;
136+
internal static void sksg_invalidation_controller_delete (sksg_invalidation_controller_t instance) =>
137+
(sksg_invalidation_controller_delete_delegate ??= GetSymbol<Delegates.sksg_invalidation_controller_delete> ("sksg_invalidation_controller_delete")).Invoke (instance);
138+
#endif
139+
140+
// void sksg_invalidation_controller_end(sksg_invalidation_controller_t* instance)
141+
#if !USE_DELEGATES
142+
[DllImport (SKIA, CallingConvention = CallingConvention.Cdecl)]
143+
internal static extern void sksg_invalidation_controller_end (sksg_invalidation_controller_t instance);
144+
#else
145+
private partial class Delegates {
146+
[UnmanagedFunctionPointer (CallingConvention.Cdecl)]
147+
internal delegate void sksg_invalidation_controller_end (sksg_invalidation_controller_t instance);
148+
}
149+
private static Delegates.sksg_invalidation_controller_end sksg_invalidation_controller_end_delegate;
150+
internal static void sksg_invalidation_controller_end (sksg_invalidation_controller_t instance) =>
151+
(sksg_invalidation_controller_end_delegate ??= GetSymbol<Delegates.sksg_invalidation_controller_end> ("sksg_invalidation_controller_end")).Invoke (instance);
152+
#endif
153+
154+
// void sksg_invalidation_controller_get_bounds(sksg_invalidation_controller_t* instance, sk_rect_t* bounds)
155+
#if !USE_DELEGATES
156+
[DllImport (SKIA, CallingConvention = CallingConvention.Cdecl)]
157+
internal static extern void sksg_invalidation_controller_get_bounds (sksg_invalidation_controller_t instance, SKRect* bounds);
158+
#else
159+
private partial class Delegates {
160+
[UnmanagedFunctionPointer (CallingConvention.Cdecl)]
161+
internal delegate void sksg_invalidation_controller_get_bounds (sksg_invalidation_controller_t instance, SKRect* bounds);
162+
}
163+
private static Delegates.sksg_invalidation_controller_get_bounds sksg_invalidation_controller_get_bounds_delegate;
164+
internal static void sksg_invalidation_controller_get_bounds (sksg_invalidation_controller_t instance, SKRect* bounds) =>
165+
(sksg_invalidation_controller_get_bounds_delegate ??= GetSymbol<Delegates.sksg_invalidation_controller_get_bounds> ("sksg_invalidation_controller_get_bounds")).Invoke (instance, bounds);
166+
#endif
167+
168+
// void sksg_invalidation_controller_inval(sksg_invalidation_controller_t* instance, sk_rect_t* rect, sk_matrix_t* matrix)
169+
#if !USE_DELEGATES
170+
[DllImport (SKIA, CallingConvention = CallingConvention.Cdecl)]
171+
internal static extern void sksg_invalidation_controller_inval (sksg_invalidation_controller_t instance, SKRect* rect, SKMatrix* matrix);
172+
#else
173+
private partial class Delegates {
174+
[UnmanagedFunctionPointer (CallingConvention.Cdecl)]
175+
internal delegate void sksg_invalidation_controller_inval (sksg_invalidation_controller_t instance, SKRect* rect, SKMatrix* matrix);
176+
}
177+
private static Delegates.sksg_invalidation_controller_inval sksg_invalidation_controller_inval_delegate;
178+
internal static void sksg_invalidation_controller_inval (sksg_invalidation_controller_t instance, SKRect* rect, SKMatrix* matrix) =>
179+
(sksg_invalidation_controller_inval_delegate ??= GetSymbol<Delegates.sksg_invalidation_controller_inval> ("sksg_invalidation_controller_inval")).Invoke (instance, rect, matrix);
180+
#endif
181+
182+
// sksg_invalidation_controller_t* sksg_invalidation_controller_new()
183+
#if !USE_DELEGATES
184+
[DllImport (SKIA, CallingConvention = CallingConvention.Cdecl)]
185+
internal static extern sksg_invalidation_controller_t sksg_invalidation_controller_new ();
186+
#else
187+
private partial class Delegates {
188+
[UnmanagedFunctionPointer (CallingConvention.Cdecl)]
189+
internal delegate sksg_invalidation_controller_t sksg_invalidation_controller_new ();
190+
}
191+
private static Delegates.sksg_invalidation_controller_new sksg_invalidation_controller_new_delegate;
192+
internal static sksg_invalidation_controller_t sksg_invalidation_controller_new () =>
193+
(sksg_invalidation_controller_new_delegate ??= GetSymbol<Delegates.sksg_invalidation_controller_new> ("sksg_invalidation_controller_new")).Invoke ();
194+
#endif
195+
196+
// void sksg_invalidation_controller_reset(sksg_invalidation_controller_t* instance)
197+
#if !USE_DELEGATES
198+
[DllImport (SKIA, CallingConvention = CallingConvention.Cdecl)]
199+
internal static extern void sksg_invalidation_controller_reset (sksg_invalidation_controller_t instance);
200+
#else
201+
private partial class Delegates {
202+
[UnmanagedFunctionPointer (CallingConvention.Cdecl)]
203+
internal delegate void sksg_invalidation_controller_reset (sksg_invalidation_controller_t instance);
204+
}
205+
private static Delegates.sksg_invalidation_controller_reset sksg_invalidation_controller_reset_delegate;
206+
internal static void sksg_invalidation_controller_reset (sksg_invalidation_controller_t instance) =>
207+
(sksg_invalidation_controller_reset_delegate ??= GetSymbol<Delegates.sksg_invalidation_controller_reset> ("sksg_invalidation_controller_reset")).Invoke (instance);
208+
#endif
209+
210+
#endregion
211+
212+
}
213+
}
214+
215+
#endregion Functions
216+
217+
#region Delegates
218+
219+
#endregion
220+
221+
#region Structs
222+
223+
#endregion
224+
225+
#region Enums
226+
227+
#endregion

0 commit comments

Comments
 (0)