protected override unsafe void OnRender(Cairo.Context cr, Gtk.Widget widget, Gdk.Rectangle background_area, Gdk.Rectangle cell_area, Gtk.CellRendererState flags) { #if GTKCORE RenderNativeDelegate renderNativeDelegate = null; IntPtr *ptr = (IntPtr *)((long)LookupGType().GetThresholdType().GetClassPtr() + class_abi.GetFieldOffset("render")); if (*ptr != IntPtr.Zero) { renderNativeDelegate = (RenderNativeDelegate)Marshal.GetDelegateForFunctionPointer(*ptr, typeof(RenderNativeDelegate)); if (renderNativeDelegate != null) { IntPtr intPtr = GLib.Marshaller.StructureToPtrAlloc(background_area); IntPtr intPtr2 = GLib.Marshaller.StructureToPtrAlloc(cell_area); renderNativeDelegate(base.Handle, cr?.Handle ?? IntPtr.Zero, widget?.Handle ?? IntPtr.Zero, intPtr, intPtr2, (int)flags); Marshal.FreeHGlobal(intPtr); Marshal.FreeHGlobal(intPtr2); } } #endif if (editingRow == row) { return; } using (var graphics = new Graphics(new GraphicsHandler(widget, cr))) { var item = Handler.Source.GetItem(Row); var args = new CellPaintEventArgs(graphics, cell_area.ToEto(), flags.ToEto(), item); Handler.Callback.OnPaint(Handler.Widget, args); } }
static void OverrideRender(GLib.GType gtype, RenderNativeDelegate callback) { unsafe { IntPtr *raw_ptr = (IntPtr *)(((long)gtype.GetClassPtr()) + (long)class_abi.GetFieldOffset("render")); *raw_ptr = Marshal.GetFunctionPointerForDelegate((Delegate)callback); } }
private bool InternalRender(Gdk.GLContext context) { RenderNativeDelegate unmanaged = class_abi.BaseOverride <RenderNativeDelegate>(this.LookupGType(), "render"); if (unmanaged == null) { return(false); } bool __result = unmanaged(this.Handle, context == null ? IntPtr.Zero : context.Handle); return(__result); }
private bool InternalRender(Gdk.GLContext context) { RenderNativeDelegate unmanaged = null; unsafe { IntPtr *raw_ptr = (IntPtr *)(((long)this.LookupGType().GetThresholdType().GetClassPtr()) + (long)class_abi.GetFieldOffset("render")); unmanaged = (RenderNativeDelegate)Marshal.GetDelegateForFunctionPointer(*raw_ptr, typeof(RenderNativeDelegate)); } if (unmanaged == null) { return(false); } bool __result = unmanaged(this.Handle, context == null ? IntPtr.Zero : context.Handle); return(__result); }
private bool InternalRender(Gst.Buffer audio, Gst.Video.VideoFrame video) { RenderNativeDelegate unmanaged = null; unsafe { IntPtr *raw_ptr = (IntPtr *)(((long)this.LookupGType().GetThresholdType().GetClassPtr()) + (long)class_abi.GetFieldOffset("render")); unmanaged = (RenderNativeDelegate)Marshal.GetDelegateForFunctionPointer(*raw_ptr, typeof(RenderNativeDelegate)); } if (unmanaged == null) { return(false); } IntPtr native_video = GLib.Marshaller.StructureToPtrAlloc(video); bool __result = unmanaged(this.Handle, audio == null ? IntPtr.Zero : audio.Handle, native_video); Marshal.FreeHGlobal(native_video); return(__result); }
static void OverrideRender (Gst.GLib.GType gtype, RenderNativeDelegate callback) { GstBaseSinkClass class_iface = GetClassStruct (gtype, false); class_iface.Render = callback; OverrideClassStruct (gtype, class_iface); }