コード例 #1
0
ファイル: SKDrawable.cs プロジェクト: witness123/SkiaSharp
        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
ファイル: SKDrawable.cs プロジェクト: witness123/SkiaSharp
        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
ファイル: SKDrawable.cs プロジェクト: witness123/SkiaSharp
        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
ファイル: SKDrawable.cs プロジェクト: witness123/SkiaSharp
        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));
        }