Ejemplo n.º 1
0
 // End a double buffer drawing operation.
 internal void End(Graphics graphics)
 {
     try
     {
         IntPtr display = dpy.Lock();
         if (handle != XDrawable.Zero)
         {
             if (usesXdbe)
             {
                 Xlib.XdbeSwapInfo info = new Xlib.XdbeSwapInfo();
                 info.swap_window = widget.GetWidgetHandle();
                 info.swap_action = Xlib.XdbeSwapAction.Background;
                 Xlib.XdbeSwapBuffers(display, ref info, 1);
             }
             else
             {
                 using (Graphics g = new Graphics(widget))
                 {
                     Xlib.XCopyArea
                         (display, handle,
                         widget.GetGCHandle(), g.gc, 0, 0,
                         (uint)width, (uint)height, 0, 0);
                 }
             }
         }
     }
     finally
     {
         dpy.Unlock();
     }
 }