Avoid unnecessary GraphicsExpose events.
This commit is contained in:
parent
66e3a85586
commit
9cfeb5b88c
|
@ -1242,27 +1242,29 @@ static BOOL BITBLT_InternalStretchBlt( DC *dcDst, INT xDst, INT yDst,
|
|||
case SRCCOPY: /* 0xcc */
|
||||
if (dcSrc->w.bitsPerPixel == dcDst->w.bitsPerPixel)
|
||||
{
|
||||
XSetGraphicsExposures( display, physDevDst->gc, True );
|
||||
BOOL expose = !(dcSrc->w.flags & DC_MEMORY) && !(dcDst->w.flags & DC_MEMORY);
|
||||
if ( expose ) XSetGraphicsExposures( display, physDevDst->gc, True );
|
||||
XSetFunction( display, physDevDst->gc, GXcopy );
|
||||
XCopyArea( display, physDevSrc->drawable,
|
||||
physDevDst->drawable, physDevDst->gc,
|
||||
visRectSrc.left, visRectSrc.top,
|
||||
width, height, visRectDst.left, visRectDst.top );
|
||||
XSetGraphicsExposures( display, physDevDst->gc, False );
|
||||
if ( expose ) XSetGraphicsExposures( display, physDevDst->gc, False );
|
||||
return TRUE;
|
||||
}
|
||||
if (dcSrc->w.bitsPerPixel == 1)
|
||||
{
|
||||
BOOL expose = !(dcSrc->w.flags & DC_MEMORY) && !(dcDst->w.flags & DC_MEMORY);
|
||||
XSetBackground( display, physDevDst->gc, physDevDst->textPixel );
|
||||
XSetForeground( display, physDevDst->gc,
|
||||
physDevDst->backgroundPixel );
|
||||
XSetFunction( display, physDevDst->gc, GXcopy );
|
||||
XSetGraphicsExposures( display, physDevDst->gc, True );
|
||||
if ( expose ) XSetGraphicsExposures( display, physDevDst->gc, True );
|
||||
XCopyPlane( display, physDevSrc->drawable,
|
||||
physDevDst->drawable, physDevDst->gc,
|
||||
visRectSrc.left, visRectSrc.top,
|
||||
width, height, visRectDst.left, visRectDst.top, 1 );
|
||||
XSetGraphicsExposures( display, physDevDst->gc, False );
|
||||
if ( expose ) XSetGraphicsExposures( display, physDevDst->gc, False );
|
||||
return TRUE;
|
||||
}
|
||||
break;
|
||||
|
@ -1290,6 +1292,7 @@ static BOOL BITBLT_InternalStretchBlt( DC *dcDst, INT xDst, INT yDst,
|
|||
}
|
||||
|
||||
tmpGC = XCreateGC( display, physDevDst->drawable, 0, NULL );
|
||||
XSetGraphicsExposures( display, tmpGC, False );
|
||||
pixmaps[DST] = XCreatePixmap( display, X11DRV_GetXRootWindow(), width, height,
|
||||
dcDst->w.bitsPerPixel );
|
||||
if (useSrc)
|
||||
|
|
|
@ -112,6 +112,7 @@ HBITMAP X11DRV_BITMAP_SelectObject( DC * dc, HBITMAP hbitmap,
|
|||
{
|
||||
TSXFreeGC( display, physDev->gc );
|
||||
physDev->gc = TSXCreateGC( display, physDev->drawable, 0, NULL );
|
||||
TSXSetGraphicsExposures( display, physDev->gc, False );
|
||||
dc->w.bitsPerPixel = bmp->bitmap.bmBitsPixel;
|
||||
DC_InitDC( dc );
|
||||
}
|
||||
|
|
|
@ -402,8 +402,12 @@ static void EVENT_ProcessEvent( XEvent *event )
|
|||
}
|
||||
}
|
||||
|
||||
TRACE(event, "Got event %s for hwnd %04x\n",
|
||||
event_names[event->type], pWnd? pWnd->hwndSelf : 0 );
|
||||
if ( !pWnd && event->xany.window != X11DRV_GetXRootWindow() )
|
||||
ERR( event, "Got event %s for unknown Window %08lx\n",
|
||||
event_names[event->type], event->xany.window );
|
||||
else
|
||||
TRACE( event, "Got event %s for hwnd %04x\n",
|
||||
event_names[event->type], pWnd? pWnd->hwndSelf : 0 );
|
||||
|
||||
switch(event->type)
|
||||
{
|
||||
|
|
Loading…
Reference in New Issue