示例#1
0
        private static void GetBoundsInternal(IntPtr d, void *context, SKRect *rect)
        {
            var drawable = DelegateProxies.GetUserData <SKDrawable> ((IntPtr)context, out _);
            var bounds   = drawable.OnGetBounds();

            *rect = bounds;
        }
示例#2
0
        protected override void DisposeNative()
        {
            DelegateProxies.GetUserData <SKTraceMemoryDump> (userData, out var gch);

            SkiaApi.sk_managedtracememorydump_delete(Handle);

            gch.Free();
        }
示例#3
0
        private static void DumpStringValueInternal(IntPtr d, void *context, void *dumpName, void *valueName, void *value)
        {
            var dump = DelegateProxies.GetUserData <SKTraceMemoryDump> ((IntPtr)context, out _);

            dump.OnDumpStringValue(
                Marshal.PtrToStringAnsi((IntPtr)dumpName),
                Marshal.PtrToStringAnsi((IntPtr)valueName),
                Marshal.PtrToStringAnsi((IntPtr)value));
        }
示例#4
0
        private static void DestroyInternal(IntPtr s, IntPtr context)
        {
            var stream = DelegateProxies.GetUserData <SKAbstractManagedWStream> (context, out var gch);

            if (stream != null)
            {
                Interlocked.Exchange(ref stream.fromNative, 1);
                stream.Dispose();
            }
            gch.Free();
        }
示例#5
0
        private static void DestroyInternal(IntPtr d, void *context)
        {
            var drawable = DelegateProxies.GetUserData <SKDrawable> ((IntPtr)context, out var gch);

            if (drawable != null)
            {
                Interlocked.Exchange(ref drawable.fromNative, 1);
                drawable.Dispose();
            }
            gch.Free();
        }
示例#6
0
        private static IntPtr NewPictureSnapshotInternal(IntPtr d, void *context)
        {
            var drawable = DelegateProxies.GetUserData <SKDrawable> ((IntPtr)context, out _);

            return(drawable.OnSnapshot()?.Handle ?? IntPtr.Zero);
        }
示例#7
0
        private static bool RewindInternal(IntPtr s, void *context)
        {
            var stream = DelegateProxies.GetUserData <SKAbstractManagedStream> ((IntPtr)context, out _);

            return(stream.OnRewind());
        }
示例#8
0
        private static void DrawInternal(IntPtr d, void *context, IntPtr canvas)
        {
            var drawable = DelegateProxies.GetUserData <SKDrawable> ((IntPtr)context, out _);

            drawable.OnDraw(SKCanvas.GetObject(canvas, false));
        }
示例#9
0
        private static IntPtr PeekInternal(IntPtr s, void *context, void *buffer, IntPtr size)
        {
            var stream = DelegateProxies.GetUserData <SKAbstractManagedStream> ((IntPtr)context, out _);

            return(stream.OnPeek((IntPtr)buffer, size));
        }
示例#10
0
        private static IntPtr BytesWrittenInternal(IntPtr s, IntPtr context)
        {
            var stream = DelegateProxies.GetUserData <SKAbstractManagedWStream> (context, out _);

            return(stream.OnBytesWritten());
        }
示例#11
0
        private static void GetBoundsInternal(IntPtr d, IntPtr context, out SKRect rect)
        {
            var drawable = DelegateProxies.GetUserData <SKDrawable> (context, out _);

            rect = drawable.OnGetBounds();
        }
示例#12
0
        private static bool WriteInternal(IntPtr s, IntPtr context, IntPtr buffer, IntPtr size)
        {
            var stream = DelegateProxies.GetUserData <SKAbstractManagedWStream> (context, out _);

            return(stream.OnWrite(buffer, size));
        }
示例#13
0
        private static void FlushInternal(IntPtr s, IntPtr context)
        {
            var stream = DelegateProxies.GetUserData <SKAbstractManagedWStream> (context, out _);

            stream.OnFlush();
        }
示例#14
0
        private static IntPtr DuplicateInternal(IntPtr s, void *context)
        {
            var stream = DelegateProxies.GetUserData <SKAbstractManagedStream> ((IntPtr)context, out _);

            return(stream.OnDuplicate());
        }
示例#15
0
        private static bool HasLengthInternal(IntPtr s, IntPtr context)
        {
            var stream = DelegateProxies.GetUserData <SKAbstractManagedStream> (context, out _);

            return(stream.OnHasLength());
        }
示例#16
0
        private static bool SeekInternal(IntPtr s, IntPtr context, IntPtr position)
        {
            var stream = DelegateProxies.GetUserData <SKAbstractManagedStream> (context, out _);

            return(stream.OnSeek(position));
        }
示例#17
0
        private static IntPtr ForkInternal(IntPtr s, IntPtr context)
        {
            var stream = DelegateProxies.GetUserData <SKAbstractManagedStream> (context, out _);

            return(stream.OnFork());
        }
示例#18
0
        private static bool MoveInternal(IntPtr s, IntPtr context, int offset)
        {
            var stream = DelegateProxies.GetUserData <SKAbstractManagedStream> (context, out _);

            return(stream.OnMove(offset));
        }