public static GRGlInterface AssembleInterface(object context, GRGlGetProcDelegate get) { #if DESKTOP || WINDOWS_UWP var angle = AssembleAngleInterface(context, get); #endif // always use ANGLE on UWP #if WINDOWS_UWP return(angle); #else // first try ANGLE on Desktop #if DESKTOP if (angle != null) { return(angle); } #endif // always use the default on non-Windows var del = Marshal.GetFunctionPointerForDelegate(getProcDelegate); var ctx = new GRGlGetProcDelegateContext(context, get); var ptr = ctx.Wrap(); var glInterface = GetObject <GRGlInterface> (SkiaApi.gr_glinterface_assemble_interface(ptr, del)); GRGlGetProcDelegateContext.Free(ptr); return(glInterface); #endif }
public static GRGlInterface AssembleGlInterface (object context, GRGlGetProcDelegate get) { var del = Marshal.GetFunctionPointerForDelegate (getProcDelegate); var ctx = new GRGlGetProcDelegateContext (context, get); var ptr = ctx.Wrap (); var glInterface = GetObject<GRGlInterface> (SkiaApi.gr_glinterface_assemble_gl_interface (ptr, del)); GRGlGetProcDelegateContext.Free (ptr); return glInterface; }
public static GRGlInterface AssembleGlesInterface(object context, GRGlGetProcDelegate get) { var del = Marshal.GetFunctionPointerForDelegate(getProcDelegate); var ctx = new GRGlGetProcDelegateContext(context, get); var ptr = ctx.Wrap(); var glInterface = GetObject <GRGlInterface> (SkiaApi.gr_glinterface_assemble_gles_interface(ptr, del)); GRGlGetProcDelegateContext.Free(ptr); return(glInterface); }
public static GRGlInterface AssembleInterface(object context, GRGlGetProcDelegate get) { // if on Windows, try ANGLE if (PlatformConfiguration.IsWindows) { var angle = AssembleAngleInterface(context, get); if (angle != null) { return(angle); } } // try the native default var del = Marshal.GetFunctionPointerForDelegate(getProcDelegate); var ctx = new GRGlGetProcDelegateContext(context, get); var ptr = ctx.Wrap(); var glInterface = GetObject <GRGlInterface> (SkiaApi.gr_glinterface_assemble_interface(ptr, del)); GRGlGetProcDelegateContext.Free(ptr); return(glInterface); }
private static IntPtr GrGLGetProcInternal(IntPtr context, string name) { var ctx = GRGlGetProcDelegateContext.Unwrap(context); return(ctx.GetProc(ctx.Context, name)); }
public static GRGlInterface AssembleInterface (object context, GRGlGetProcDelegate get) { #if DESKTOP || WINDOWS_UWP var angle = AssembleAngleInterface (context, get); #endif // always use ANGLE on UWP #if WINDOWS_UWP return angle; #else // first try ANGLE on Desktop #if DESKTOP if (angle != null) return angle; #endif // always use the default on non-Windows var del = Marshal.GetFunctionPointerForDelegate (getProcDelegate); var ctx = new GRGlGetProcDelegateContext (context, get); var ptr = ctx.Wrap (); var glInterface = GetObject<GRGlInterface> (SkiaApi.gr_glinterface_assemble_interface (ptr, del)); GRGlGetProcDelegateContext.Free (ptr); return glInterface; #endif }