Пример #1
0
        private static IntPtr Create(IntPtr data, int length, MemoryMode mode, object context, ReleaseDelegate releaseProc)
        {
            var del = releaseProc != null && context != null
                                ? new ReleaseDelegate((_) => releaseProc(context))
                                : releaseProc;
            var proxy = DelegateProxies.Create(del, DelegateProxies.ReleaseDelegateProxy, out _, out var ctx);

            return(HarfBuzzApi.hb_blob_create(data, length, mode, ctx, proxy));
        }
Пример #2
0
 private static IntPtr Create(IntPtr data, int length, MemoryMode mode, object context, ReleaseDelegate releaseProc)
 {
     if (releaseProc == null)
     {
         return(HarfBuzzApi.hb_blob_create(data, length, mode, IntPtr.Zero, IntPtr.Zero));
     }
     else
     {
         var ctx = new NativeDelegateContext(context, releaseProc);
         return(HarfBuzzApi.hb_blob_create(data, length, mode, ctx.NativeContext, DestroyFunction.NativePointer));
     }
 }
Пример #3
0
 private static IntPtr Create(IntPtr data, uint length, MemoryMode mode, object user_data, BlobReleaseDelegate releaseProc)
 {
     if (releaseProc == null)
     {
         return(HarfBuzzApi.hb_blob_create(data, length, mode, IntPtr.Zero, IntPtr.Zero));
     }
     else
     {
         var ctx = new NativeDelegateContext(user_data, releaseProc);
         return(HarfBuzzApi.hb_blob_create(data, length, mode, ctx.NativeContext, destroy_func));
     }
 }
Пример #4
0
        private static IntPtr Create(IntPtr data, int length, MemoryMode mode, ReleaseDelegate releaseProc)
        {
            var proxy = DelegateProxies.Create(releaseProc, DelegateProxies.ReleaseDelegateProxy, out _, out var ctx);

            return(HarfBuzzApi.hb_blob_create(data, length, mode, ctx, proxy));
        }