Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
35 commits
Select commit Hold shift + click to select a range
44ea2aa
Move Skottie into a new package
mattleibow May 31, 2022
42154a8
ws
mattleibow May 31, 2022
4330c93
The tests
mattleibow May 31, 2022
eb5449f
nuspec
mattleibow May 31, 2022
ecd1a45
that too
mattleibow May 31, 2022
85fa204
sln
mattleibow Jun 1, 2022
5129e2b
make iOS happy
mattleibow Jun 1, 2022
db98562
build classic
mattleibow Jun 1, 2022
61a8bd9
Squashed commit of the following:
mattleibow Jun 1, 2022
00c4ba3
that
mattleibow Jun 1, 2022
3744381
samples
mattleibow Jun 1, 2022
3a990d2
Standardize TFMs a bit
mattleibow Jun 1, 2022
2957408
more
mattleibow Jun 1, 2022
92291b7
add the .0 to the projects
mattleibow Jun 1, 2022
9f09162
copy the tizen targets
mattleibow Jun 1, 2022
dd41719
sort
mattleibow Jun 1, 2022
10d1bf9
Merge branch 'dev/classic' into dev/move-skottie
mattleibow Jun 1, 2022
d6ca418
Merge remote-tracking branch 'origin/main' into dev/classic
mattleibow Jun 1, 2022
6c84fab
Merge branch 'dev/classic' into dev/move-skottie
mattleibow Jun 1, 2022
333d068
fix readme
mattleibow Jun 1, 2022
922d940
classic
mattleibow Jun 1, 2022
0098f29
old stuff
mattleibow Jun 1, 2022
7ec0b0d
Merge branch 'dev/classic' into dev/move-skottie
mattleibow Jun 1, 2022
533694e
add missing thing
mattleibow Jun 1, 2022
f7ebd07
samples
mattleibow Jun 1, 2022
45c82e8
the rest
mattleibow Jun 1, 2022
2bf43f5
sg is in skottie
mattleibow Jun 1, 2022
12cbfb4
siging
mattleibow Jun 1, 2022
c3f055f
Merge remote-tracking branch 'origin/main' into dev/move-skottie
mattleibow Jun 2, 2022
6681cea
Merge branch 'main' into dev/move-skottie
mattleibow Jun 3, 2022
43bc952
docs
mattleibow Jun 3, 2022
1f5c965
latest
mattleibow Jun 3, 2022
06463f6
actually build the libs
mattleibow Jun 3, 2022
b511e34
fast build
mattleibow Jun 3, 2022
6602ca8
revert fast build
mattleibow Jun 3, 2022
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions VERSIONS.txt
Original file line number Diff line number Diff line change
Expand Up @@ -83,6 +83,7 @@ SkiaSharp.Views.Maui.Controls nuget 2.88.1
SkiaSharp.Views.Maui.Controls.Compatibility nuget 2.88.1
SkiaSharp.Views.Blazor nuget 2.88.1
SkiaSharp.HarfBuzz nuget 2.88.1
SkiaSharp.Skottie nuget 2.88.1
SkiaSharp.Vulkan.SharpVk nuget 2.88.1
HarfBuzzSharp nuget 2.8.2.1
HarfBuzzSharp.NativeAssets.Android nuget 2.8.2.1
Expand Down
14 changes: 14 additions & 0 deletions binding/Binding/Properties/SkiaSharpAssemblyInfo.cs
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,20 @@
"dafa277b22de47d6ffea449674a4f9fccf84d15069089380284dbdd35f46cdff12a1bd78e4ef00" +
"65d016df")]

[assembly: InternalsVisibleTo("SkiaSharp.SceneGraph, PublicKey=" +
"002400000480000094000000060200000024000052534131000400000100010079159977d2d03a" +
"8e6bea7a2e74e8d1afcc93e8851974952bb480a12c9134474d04062447c37e0e68c080536fcf3c" +
"3fbe2ff9c979ce998475e506e8ce82dd5b0f350dc10e93bf2eeecf874b24770c5081dbea7447fd" +
"dafa277b22de47d6ffea449674a4f9fccf84d15069089380284dbdd35f46cdff12a1bd78e4ef00" +
"65d016df")]

[assembly: InternalsVisibleTo("SkiaSharp.Skottie, PublicKey=" +
"002400000480000094000000060200000024000052534131000400000100010079159977d2d03a" +
"8e6bea7a2e74e8d1afcc93e8851974952bb480a12c9134474d04062447c37e0e68c080536fcf3c" +
"3fbe2ff9c979ce998475e506e8ce82dd5b0f350dc10e93bf2eeecf874b24770c5081dbea7447fd" +
"dafa277b22de47d6ffea449674a4f9fccf84d15069089380284dbdd35f46cdff12a1bd78e4ef00" +
"65d016df")]

[assembly: AssemblyMetadata("IsTrimmable", "True")]

#if __IOS__ || __TVOS__ || __WATCHOS__ || __MACOS__
Expand Down
372 changes: 0 additions & 372 deletions binding/Binding/SkiaApi.generated.cs

Large diffs are not rendered by default.

Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
<Project Sdk="MSBuild.Sdk.Extras/3.0.44">
<PropertyGroup>
<TargetFrameworks>$(ClassicTargetFrameworks)</TargetFrameworks>
<RootNamespace>SkiaSharp.SceneGraph</RootNamespace>
<AssemblyName>SkiaSharp.SceneGraph</AssemblyName>
<PackagingGroup>SkiaSharp.Skottie</PackagingGroup>
</PropertyGroup>
<ItemGroup>
<ProjectReference Include="..\SkiaSharp.Classic\SkiaSharp.Classic.csproj" />
</ItemGroup>
<ItemGroup>
<Compile Include="..\SkiaSharp.SceneGraph\**\*.cs" Exclude="..\SkiaSharp.SceneGraph\bin\**;..\SkiaSharp.SceneGraph\obj\**" Link="%(RecursiveDir)%(Filename)%(Extension)" />
</ItemGroup>
</Project>
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ namespace SkiaSharp.SceneGraph
public unsafe class InvalidationController : SKObject, ISKSkipObjectRegistration
{
public InvalidationController ()
: this (SkiaApi.sksg_invalidation_controller_new (), true)
: this (SceneGraphApi.sksg_invalidation_controller_new (), true)
{
}

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

protected override void DisposeNative ()
{
SkiaApi.sksg_invalidation_controller_delete (Handle);
SceneGraphApi.sksg_invalidation_controller_delete (Handle);
}

public unsafe void Invalidate(SKRect rect, SKMatrix matrix)
public unsafe void Invalidate (SKRect rect, SKMatrix matrix)
{
SkiaApi.sksg_invalidation_controller_inval (Handle, &rect, &matrix);
SceneGraphApi.sksg_invalidation_controller_inval (Handle, &rect, &matrix);
}

public unsafe SKRect Bounds
{
public unsafe SKRect Bounds {
get {
SKRect rect;
SkiaApi.sksg_invalidation_controller_get_bounds (Handle, &rect);
SceneGraphApi.sksg_invalidation_controller_get_bounds (Handle, &rect);
return rect;
}
}

public unsafe void Begin ()
{
SkiaApi.sksg_invalidation_controller_begin (Handle);
SceneGraphApi.sksg_invalidation_controller_begin (Handle);
}

public unsafe void End ()
{
SkiaApi.sksg_invalidation_controller_end (Handle);
SceneGraphApi.sksg_invalidation_controller_end (Handle);
}

public unsafe void Reset ()
{
SkiaApi.sksg_invalidation_controller_reset (Handle);
SceneGraphApi.sksg_invalidation_controller_reset (Handle);
}
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
using System;
using System.Reflection;
using System.Resources;
using System.Runtime.CompilerServices;

[assembly: AssemblyTitle("SkiaSharp.SceneGraph")]
[assembly: AssemblyCompany("Microsoft Corporation")]
[assembly: AssemblyProduct("SkiaSharp")]
[assembly: AssemblyCopyright("© Microsoft Corporation. All rights reserved.")]
[assembly: NeutralResourcesLanguage("en")]

#if DEBUG
[assembly: AssemblyConfiguration("Debug")]
#else
[assembly: AssemblyConfiguration("Release")]
#endif

[assembly: InternalsVisibleTo("SkiaSharp.Tests, PublicKey=" +
"002400000480000094000000060200000024000052534131000400000100010079159977d2d03a" +
"8e6bea7a2e74e8d1afcc93e8851974952bb480a12c9134474d04062447c37e0e68c080536fcf3c" +
"3fbe2ff9c979ce998475e506e8ce82dd5b0f350dc10e93bf2eeecf874b24770c5081dbea7447fd" +
"dafa277b22de47d6ffea449674a4f9fccf84d15069089380284dbdd35f46cdff12a1bd78e4ef00" +
"65d016df")]

[assembly: InternalsVisibleTo("SkiaSharp.Skottie, PublicKey=" +
"002400000480000094000000060200000024000052534131000400000100010079159977d2d03a" +
"8e6bea7a2e74e8d1afcc93e8851974952bb480a12c9134474d04062447c37e0e68c080536fcf3c" +
"3fbe2ff9c979ce998475e506e8ce82dd5b0f350dc10e93bf2eeecf874b24770c5081dbea7447fd" +
"dafa277b22de47d6ffea449674a4f9fccf84d15069089380284dbdd35f46cdff12a1bd78e4ef00" +
"65d016df")]

[assembly: AssemblyMetadata("IsTrimmable", "True")]

#if __IOS__ || __TVOS__ || __WATCHOS__ || __MACOS__
// This attribute allows you to mark your assemblies as “safe to link”.
// When the attribute is present, the linker—if enabled—will process the assembly
// even if you’re using the “Link SDK assemblies only” option, which is the default for device builds.
#pragma warning disable CS0618 // Type or member is obsolete
[assembly: Foundation.LinkerSafe]
#pragma warning restore CS0618 // Type or member is obsolete
#endif
21 changes: 21 additions & 0 deletions binding/SkiaSharp.SceneGraph/SceneGraphApi.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
using System;

namespace SkiaSharp
{
internal partial class SceneGraphApi
{
#if __IOS__ || __TVOS__ || __WATCHOS__
private const string SKIA = "@rpath/libSkiaSharp.framework/libSkiaSharp";
#else
private const string SKIA = "libSkiaSharp";
#endif

#if USE_DELEGATES
private static readonly Lazy<IntPtr> libSkiaSharpHandle =
new Lazy<IntPtr> (() => LibraryLoader.LoadLocalLibrary<SkiaApi> (SKIA));

private static T GetSymbol<T> (string name) where T : Delegate =>
LibraryLoader.GetSymbolDelegate<T> (libSkiaSharpHandle.Value, name);
#endif
}
}
227 changes: 227 additions & 0 deletions binding/SkiaSharp.SceneGraph/SceneGraphApi.generated.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,227 @@
using System;
using System.Runtime.InteropServices;

#region Namespaces

using SkiaSharp.SceneGraph;

#endregion

#region Class declarations

using gr_backendrendertarget_t = System.IntPtr;
using gr_backendtexture_t = System.IntPtr;
using gr_direct_context_t = System.IntPtr;
using gr_glinterface_t = System.IntPtr;
using gr_recording_context_t = System.IntPtr;
using gr_vk_extensions_t = System.IntPtr;
using gr_vk_memory_allocator_t = System.IntPtr;
using gr_vkinterface_t = System.IntPtr;
using sk_3dview_t = System.IntPtr;
using sk_bitmap_t = System.IntPtr;
using sk_canvas_t = System.IntPtr;
using sk_codec_t = System.IntPtr;
using sk_colorfilter_t = System.IntPtr;
using sk_colorspace_icc_profile_t = System.IntPtr;
using sk_colorspace_t = System.IntPtr;
using sk_colortable_t = System.IntPtr;
using sk_compatpaint_t = System.IntPtr;
using sk_data_t = System.IntPtr;
using sk_document_t = System.IntPtr;
using sk_drawable_t = System.IntPtr;
using sk_font_t = System.IntPtr;
using sk_fontmgr_t = System.IntPtr;
using sk_fontstyle_t = System.IntPtr;
using sk_fontstyleset_t = System.IntPtr;
using sk_image_t = System.IntPtr;
using sk_imagefilter_croprect_t = System.IntPtr;
using sk_imagefilter_t = System.IntPtr;
using sk_manageddrawable_t = System.IntPtr;
using sk_managedtracememorydump_t = System.IntPtr;
using sk_maskfilter_t = System.IntPtr;
using sk_matrix44_t = System.IntPtr;
using sk_nodraw_canvas_t = System.IntPtr;
using sk_nvrefcnt_t = System.IntPtr;
using sk_nway_canvas_t = System.IntPtr;
using sk_opbuilder_t = System.IntPtr;
using sk_overdraw_canvas_t = System.IntPtr;
using sk_paint_t = System.IntPtr;
using sk_path_effect_t = System.IntPtr;
using sk_path_iterator_t = System.IntPtr;
using sk_path_rawiterator_t = System.IntPtr;
using sk_path_t = System.IntPtr;
using sk_pathmeasure_t = System.IntPtr;
using sk_picture_recorder_t = System.IntPtr;
using sk_picture_t = System.IntPtr;
using sk_pixelref_factory_t = System.IntPtr;
using sk_pixmap_t = System.IntPtr;
using sk_refcnt_t = System.IntPtr;
using sk_region_cliperator_t = System.IntPtr;
using sk_region_iterator_t = System.IntPtr;
using sk_region_spanerator_t = System.IntPtr;
using sk_region_t = System.IntPtr;
using sk_rrect_t = System.IntPtr;
using sk_runtimeeffect_t = System.IntPtr;
using sk_runtimeeffect_uniform_t = System.IntPtr;
using sk_shader_t = System.IntPtr;
using sk_stream_asset_t = System.IntPtr;
using sk_stream_filestream_t = System.IntPtr;
using sk_stream_managedstream_t = System.IntPtr;
using sk_stream_memorystream_t = System.IntPtr;
using sk_stream_streamrewindable_t = System.IntPtr;
using sk_stream_t = System.IntPtr;
using sk_string_t = System.IntPtr;
using sk_surface_t = System.IntPtr;
using sk_surfaceprops_t = System.IntPtr;
using sk_svgcanvas_t = System.IntPtr;
using sk_textblob_builder_t = System.IntPtr;
using sk_textblob_t = System.IntPtr;
using sk_tracememorydump_t = System.IntPtr;
using sk_typeface_t = System.IntPtr;
using sk_vertices_t = System.IntPtr;
using sk_wstream_dynamicmemorystream_t = System.IntPtr;
using sk_wstream_filestream_t = System.IntPtr;
using sk_wstream_managedstream_t = System.IntPtr;
using sk_wstream_t = System.IntPtr;
using sk_xmlstreamwriter_t = System.IntPtr;
using sk_xmlwriter_t = System.IntPtr;
using skottie_animation_builder_t = System.IntPtr;
using skottie_animation_t = System.IntPtr;
using skottie_logger_t = System.IntPtr;
using skottie_marker_observer_t = System.IntPtr;
using skottie_property_observer_t = System.IntPtr;
using skottie_resource_provider_t = System.IntPtr;
using sksg_invalidation_controller_t = System.IntPtr;
using vk_device_t = System.IntPtr;
using vk_instance_t = System.IntPtr;
using vk_physical_device_features_2_t = System.IntPtr;
using vk_physical_device_features_t = System.IntPtr;
using vk_physical_device_t = System.IntPtr;
using vk_queue_t = System.IntPtr;

#endregion

#region Functions

namespace SkiaSharp
{
internal unsafe partial class SceneGraphApi
{
#region sksg_invalidation_controller.h

// void sksg_invalidation_controller_begin(sksg_invalidation_controller_t* instance)
#if !USE_DELEGATES
[DllImport (SKIA, CallingConvention = CallingConvention.Cdecl)]
internal static extern void sksg_invalidation_controller_begin (sksg_invalidation_controller_t instance);
#else
private partial class Delegates {
[UnmanagedFunctionPointer (CallingConvention.Cdecl)]
internal delegate void sksg_invalidation_controller_begin (sksg_invalidation_controller_t instance);
}
private static Delegates.sksg_invalidation_controller_begin sksg_invalidation_controller_begin_delegate;
internal static void sksg_invalidation_controller_begin (sksg_invalidation_controller_t instance) =>
(sksg_invalidation_controller_begin_delegate ??= GetSymbol<Delegates.sksg_invalidation_controller_begin> ("sksg_invalidation_controller_begin")).Invoke (instance);
#endif

// void sksg_invalidation_controller_delete(sksg_invalidation_controller_t* instance)
#if !USE_DELEGATES
[DllImport (SKIA, CallingConvention = CallingConvention.Cdecl)]
internal static extern void sksg_invalidation_controller_delete (sksg_invalidation_controller_t instance);
#else
private partial class Delegates {
[UnmanagedFunctionPointer (CallingConvention.Cdecl)]
internal delegate void sksg_invalidation_controller_delete (sksg_invalidation_controller_t instance);
}
private static Delegates.sksg_invalidation_controller_delete sksg_invalidation_controller_delete_delegate;
internal static void sksg_invalidation_controller_delete (sksg_invalidation_controller_t instance) =>
(sksg_invalidation_controller_delete_delegate ??= GetSymbol<Delegates.sksg_invalidation_controller_delete> ("sksg_invalidation_controller_delete")).Invoke (instance);
#endif

// void sksg_invalidation_controller_end(sksg_invalidation_controller_t* instance)
#if !USE_DELEGATES
[DllImport (SKIA, CallingConvention = CallingConvention.Cdecl)]
internal static extern void sksg_invalidation_controller_end (sksg_invalidation_controller_t instance);
#else
private partial class Delegates {
[UnmanagedFunctionPointer (CallingConvention.Cdecl)]
internal delegate void sksg_invalidation_controller_end (sksg_invalidation_controller_t instance);
}
private static Delegates.sksg_invalidation_controller_end sksg_invalidation_controller_end_delegate;
internal static void sksg_invalidation_controller_end (sksg_invalidation_controller_t instance) =>
(sksg_invalidation_controller_end_delegate ??= GetSymbol<Delegates.sksg_invalidation_controller_end> ("sksg_invalidation_controller_end")).Invoke (instance);
#endif

// void sksg_invalidation_controller_get_bounds(sksg_invalidation_controller_t* instance, sk_rect_t* bounds)
#if !USE_DELEGATES
[DllImport (SKIA, CallingConvention = CallingConvention.Cdecl)]
internal static extern void sksg_invalidation_controller_get_bounds (sksg_invalidation_controller_t instance, SKRect* bounds);
#else
private partial class Delegates {
[UnmanagedFunctionPointer (CallingConvention.Cdecl)]
internal delegate void sksg_invalidation_controller_get_bounds (sksg_invalidation_controller_t instance, SKRect* bounds);
}
private static Delegates.sksg_invalidation_controller_get_bounds sksg_invalidation_controller_get_bounds_delegate;
internal static void sksg_invalidation_controller_get_bounds (sksg_invalidation_controller_t instance, SKRect* bounds) =>
(sksg_invalidation_controller_get_bounds_delegate ??= GetSymbol<Delegates.sksg_invalidation_controller_get_bounds> ("sksg_invalidation_controller_get_bounds")).Invoke (instance, bounds);
#endif

// void sksg_invalidation_controller_inval(sksg_invalidation_controller_t* instance, sk_rect_t* rect, sk_matrix_t* matrix)
#if !USE_DELEGATES
[DllImport (SKIA, CallingConvention = CallingConvention.Cdecl)]
internal static extern void sksg_invalidation_controller_inval (sksg_invalidation_controller_t instance, SKRect* rect, SKMatrix* matrix);
#else
private partial class Delegates {
[UnmanagedFunctionPointer (CallingConvention.Cdecl)]
internal delegate void sksg_invalidation_controller_inval (sksg_invalidation_controller_t instance, SKRect* rect, SKMatrix* matrix);
}
private static Delegates.sksg_invalidation_controller_inval sksg_invalidation_controller_inval_delegate;
internal static void sksg_invalidation_controller_inval (sksg_invalidation_controller_t instance, SKRect* rect, SKMatrix* matrix) =>
(sksg_invalidation_controller_inval_delegate ??= GetSymbol<Delegates.sksg_invalidation_controller_inval> ("sksg_invalidation_controller_inval")).Invoke (instance, rect, matrix);
#endif

// sksg_invalidation_controller_t* sksg_invalidation_controller_new()
#if !USE_DELEGATES
[DllImport (SKIA, CallingConvention = CallingConvention.Cdecl)]
internal static extern sksg_invalidation_controller_t sksg_invalidation_controller_new ();
#else
private partial class Delegates {
[UnmanagedFunctionPointer (CallingConvention.Cdecl)]
internal delegate sksg_invalidation_controller_t sksg_invalidation_controller_new ();
}
private static Delegates.sksg_invalidation_controller_new sksg_invalidation_controller_new_delegate;
internal static sksg_invalidation_controller_t sksg_invalidation_controller_new () =>
(sksg_invalidation_controller_new_delegate ??= GetSymbol<Delegates.sksg_invalidation_controller_new> ("sksg_invalidation_controller_new")).Invoke ();
#endif

// void sksg_invalidation_controller_reset(sksg_invalidation_controller_t* instance)
#if !USE_DELEGATES
[DllImport (SKIA, CallingConvention = CallingConvention.Cdecl)]
internal static extern void sksg_invalidation_controller_reset (sksg_invalidation_controller_t instance);
#else
private partial class Delegates {
[UnmanagedFunctionPointer (CallingConvention.Cdecl)]
internal delegate void sksg_invalidation_controller_reset (sksg_invalidation_controller_t instance);
}
private static Delegates.sksg_invalidation_controller_reset sksg_invalidation_controller_reset_delegate;
internal static void sksg_invalidation_controller_reset (sksg_invalidation_controller_t instance) =>
(sksg_invalidation_controller_reset_delegate ??= GetSymbol<Delegates.sksg_invalidation_controller_reset> ("sksg_invalidation_controller_reset")).Invoke (instance);
#endif

#endregion

}
}

#endregion Functions

#region Delegates

#endregion

#region Structs

#endregion

#region Enums

#endregion
Loading