vendoring NetVips

This commit is contained in:
Renjaya Raga Zenta 2025-07-31 00:17:59 +07:00
parent 36a0f8d39c
commit 33e9d5f43a
41 changed files with 21749 additions and 0 deletions

260
vendor/NetVips/Internal/GObject.cs vendored Normal file
View file

@ -0,0 +1,260 @@
using System.Runtime.InteropServices;
using System.Security;
using NetVips.Interop;
using GObjectManaged = NetVips.GObject;
using VipsBlobManaged = NetVips.VipsBlob;
namespace NetVips.Internal;
[SuppressUnmanagedCodeSecurity, UnmanagedFunctionPointer(CallingConvention.Cdecl)]
internal delegate void GWeakNotify(nint data, nint objectPointer);
internal static class GObject
{
[StructLayout(LayoutKind.Sequential)]
internal struct Struct
{
internal nint GTypeInstance;
internal uint RefCount;
internal nint QData;
}
[SuppressUnmanagedCodeSecurity]
[DllImport(Libraries.GObject, CallingConvention = CallingConvention.Cdecl,
EntryPoint = "g_object_set_property")]
internal static extern void SetProperty(GObjectManaged @object,
[MarshalAs(UnmanagedType.LPStr)] string propertyName, in GValue.Struct value);
[SuppressUnmanagedCodeSecurity]
[DllImport(Libraries.GObject, CallingConvention = CallingConvention.Cdecl,
EntryPoint = "g_object_get_property")]
internal static extern void GetProperty(GObjectManaged @object,
[MarshalAs(UnmanagedType.LPStr)] string propertyName, ref GValue.Struct value);
[SuppressUnmanagedCodeSecurity]
[DllImport(Libraries.GObject, CallingConvention = CallingConvention.Cdecl,
EntryPoint = "g_object_ref")]
internal static extern nint Ref(nint @object);
[SuppressUnmanagedCodeSecurity]
[DllImport(Libraries.GObject, CallingConvention = CallingConvention.Cdecl,
EntryPoint = "g_object_unref")]
internal static extern void Unref(nint @object);
[SuppressUnmanagedCodeSecurity]
[DllImport(Libraries.GObject, CallingConvention = CallingConvention.Cdecl,
EntryPoint = "g_object_weak_ref")]
internal static extern void WeakRef(GObjectManaged @object, GWeakNotify notify, nint data);
}
[StructLayout(LayoutKind.Sequential)]
internal struct GEnumValue
{
internal int Value;
[MarshalAs(UnmanagedType.LPStr)]
internal string ValueName;
[MarshalAs(UnmanagedType.LPStr)]
internal string ValueNick;
}
[StructLayout(LayoutKind.Sequential)]
internal struct GEnumClass
{
internal nint GTypeClass;
internal int Minimum;
internal int Maximum;
internal uint NValues;
internal nint Values;
}
internal static class GType
{
[SuppressUnmanagedCodeSecurity]
[DllImport(Libraries.GObject, CallingConvention = CallingConvention.Cdecl,
EntryPoint = "g_type_name")]
internal static extern nint Name(nint type);
[SuppressUnmanagedCodeSecurity]
[DllImport(Libraries.GObject, CallingConvention = CallingConvention.Cdecl,
EntryPoint = "g_type_from_name")]
internal static extern nint FromName([MarshalAs(UnmanagedType.LPStr)] string name);
[SuppressUnmanagedCodeSecurity]
[DllImport(Libraries.GObject, CallingConvention = CallingConvention.Cdecl,
EntryPoint = "g_type_fundamental")]
internal static extern nint Fundamental(nint typeId);
[SuppressUnmanagedCodeSecurity]
[DllImport(Libraries.GObject, CallingConvention = CallingConvention.Cdecl,
EntryPoint = "g_type_class_ref")]
internal static extern nint ClassRef(nint type);
}
internal static class GValue
{
[StructLayout(LayoutKind.Explicit, Size = 24)]
internal struct Struct
{
[FieldOffset(0)]
internal nint GType;
[FieldOffset(8)]
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 2)]
internal nint[] Data;
}
[SuppressUnmanagedCodeSecurity]
[DllImport(Libraries.GObject, CallingConvention = CallingConvention.Cdecl,
EntryPoint = "g_value_init")]
internal static extern nint Init(ref Struct value, nint gType);
[SuppressUnmanagedCodeSecurity]
[DllImport(Libraries.GObject, CallingConvention = CallingConvention.Cdecl,
EntryPoint = "g_value_unset")]
internal static extern void Unset(ref Struct value);
[SuppressUnmanagedCodeSecurity]
[DllImport(Libraries.GObject, CallingConvention = CallingConvention.Cdecl,
EntryPoint = "g_value_set_boolean")]
internal static extern void SetBoolean(ref Struct value, [MarshalAs(UnmanagedType.Bool)] bool vBoolean);
[SuppressUnmanagedCodeSecurity]
[DllImport(Libraries.GObject, CallingConvention = CallingConvention.Cdecl,
EntryPoint = "g_value_get_boolean")]
[return: MarshalAs(UnmanagedType.Bool)]
internal static extern bool GetBoolean(in Struct value);
[SuppressUnmanagedCodeSecurity]
[DllImport(Libraries.GObject, CallingConvention = CallingConvention.Cdecl,
EntryPoint = "g_value_set_int")]
internal static extern void SetInt(ref Struct value, int vInt);
[SuppressUnmanagedCodeSecurity]
[DllImport(Libraries.GObject, CallingConvention = CallingConvention.Cdecl,
EntryPoint = "g_value_get_int")]
internal static extern int GetInt(in Struct value);
[SuppressUnmanagedCodeSecurity]
[DllImport(Libraries.GObject, CallingConvention = CallingConvention.Cdecl,
EntryPoint = "g_value_set_uint64")]
internal static extern void SetUint64(ref Struct value, ulong vUint64);
[SuppressUnmanagedCodeSecurity]
[DllImport(Libraries.GObject, CallingConvention = CallingConvention.Cdecl,
EntryPoint = "g_value_get_uint64")]
internal static extern ulong GetUint64(in Struct value);
[SuppressUnmanagedCodeSecurity]
[DllImport(Libraries.GObject, CallingConvention = CallingConvention.Cdecl,
EntryPoint = "g_value_set_double")]
internal static extern void SetDouble(ref Struct value, double vDouble);
[SuppressUnmanagedCodeSecurity]
[DllImport(Libraries.GObject, CallingConvention = CallingConvention.Cdecl,
EntryPoint = "g_value_get_double")]
internal static extern double GetDouble(in Struct value);
[SuppressUnmanagedCodeSecurity]
[DllImport(Libraries.GObject, CallingConvention = CallingConvention.Cdecl,
EntryPoint = "g_value_set_string")]
internal static extern void SetString(ref Struct value, byte[] vString);
[SuppressUnmanagedCodeSecurity]
[DllImport(Libraries.GObject, CallingConvention = CallingConvention.Cdecl,
EntryPoint = "g_value_get_string")]
internal static extern nint GetString(in Struct value);
[SuppressUnmanagedCodeSecurity]
[DllImport(Libraries.GObject, CallingConvention = CallingConvention.Cdecl,
EntryPoint = "g_value_set_enum")]
internal static extern void SetEnum(ref Struct value, int vEnum);
[SuppressUnmanagedCodeSecurity]
[DllImport(Libraries.GObject, CallingConvention = CallingConvention.Cdecl,
EntryPoint = "g_value_get_enum")]
internal static extern int GetEnum(in Struct value);
[SuppressUnmanagedCodeSecurity]
[DllImport(Libraries.GObject, CallingConvention = CallingConvention.Cdecl,
EntryPoint = "g_value_set_flags")]
internal static extern void SetFlags(ref Struct value, uint vFlags);
[SuppressUnmanagedCodeSecurity]
[DllImport(Libraries.GObject, CallingConvention = CallingConvention.Cdecl,
EntryPoint = "g_value_get_flags")]
internal static extern uint GetFlags(in Struct value);
[SuppressUnmanagedCodeSecurity]
[DllImport(Libraries.GObject, CallingConvention = CallingConvention.Cdecl,
EntryPoint = "g_value_set_object")]
internal static extern void SetObject(ref Struct value, GObjectManaged vObject);
[SuppressUnmanagedCodeSecurity]
[DllImport(Libraries.GObject, CallingConvention = CallingConvention.Cdecl,
EntryPoint = "g_value_get_object")]
internal static extern nint GetObject(in Struct value);
[SuppressUnmanagedCodeSecurity]
[DllImport(Libraries.GObject, CallingConvention = CallingConvention.Cdecl,
EntryPoint = "g_value_set_boxed")]
internal static extern void SetBoxed(ref Struct value, VipsBlobManaged boxed);
}
internal static class GParamSpec
{
[StructLayout(LayoutKind.Sequential)]
internal struct Struct
{
internal nint GTypeInstance;
internal nint Name;
internal Enums.GParamFlags Flags;
internal nint ValueType;
internal nint OwnerType;
internal nint Nick;
internal nint Blurb;
internal nint QData;
internal uint RefCount;
internal uint ParamId;
}
[SuppressUnmanagedCodeSecurity]
[DllImport(Libraries.GObject, CallingConvention = CallingConvention.Cdecl,
EntryPoint = "g_param_spec_get_blurb")]
internal static extern nint GetBlurb(in Struct pspec);
}
[SuppressUnmanagedCodeSecurity, UnmanagedFunctionPointer(CallingConvention.Cdecl)]
internal delegate void GClosureNotify(nint data, nint closure);
internal static class GSignal
{
[SuppressUnmanagedCodeSecurity]
[DllImport(Libraries.GObject, CallingConvention = CallingConvention.Cdecl,
EntryPoint = "g_signal_connect_data")]
internal static extern ulong ConnectData(GObjectManaged instance,
[MarshalAs(UnmanagedType.LPStr)] string detailedSignal,
nint cHandler, nint data,
GClosureNotify destroyData, Enums.GConnectFlags connectFlags);
[SuppressUnmanagedCodeSecurity]
[DllImport(Libraries.GObject, CallingConvention = CallingConvention.Cdecl,
EntryPoint = "g_signal_handler_disconnect")]
internal static extern void HandlerDisconnect(GObjectManaged instance, ulong handlerId);
[SuppressUnmanagedCodeSecurity]
[DllImport(Libraries.GObject, CallingConvention = CallingConvention.Cdecl,
EntryPoint = "g_signal_handlers_disconnect_matched")]
internal static extern uint HandlersDisconnectMatched(GObjectManaged instance,
Enums.GSignalMatchType mask, uint signalId, uint detail, nint closure,
nint func, nint data);
}