diff options
author | Peter Hutterer <peter@cs.unisa.edu.au> | 2007-11-07 15:37:23 +1030 |
---|---|---|
committer | Peter Hutterer <peter@cs.unisa.edu.au> | 2007-11-07 15:37:23 +1030 |
commit | 0b729051c04da7068f1e6dd319190bd0a362b2c0 (patch) | |
tree | 6e15c5de67a40d04167fcf0a2e0e26af8eca11c2 /hw/xfree86/xf8_32bpp/xf86overlay.c | |
parent | b7ee005d327372c1e414ee6c526f9f7aee14bc86 (diff) | |
parent | d7c5e8bfc1aecbd23a4cbb2eab08656587aac2e8 (diff) |
Merge branch 'master' into mpx
Conflicts:
Xi/extinit.c
Xi/grabdev.c
Xi/setmode.c
Xi/ungrdev.c
dix/devices.c
dix/events.c
dix/getevents.c
include/dix.h
mi/midispcur.c
mi/misprite.c
xkb/xkbActions.c
xkb/xkbEvents.c
xkb/xkbPrKeyEv.c
Diffstat (limited to 'hw/xfree86/xf8_32bpp/xf86overlay.c')
-rw-r--r-- | hw/xfree86/xf8_32bpp/xf86overlay.c | 74 |
1 files changed, 5 insertions, 69 deletions
diff --git a/hw/xfree86/xf8_32bpp/xf86overlay.c b/hw/xfree86/xf8_32bpp/xf86overlay.c index c5585ca6d..47b2b52db 100644 --- a/hw/xfree86/xf8_32bpp/xf86overlay.c +++ b/hw/xfree86/xf8_32bpp/xf86overlay.c @@ -32,9 +32,8 @@ static Bool OverlayCloseScreen (int, ScreenPtr); static Bool OverlayCreateGC(GCPtr pGC); static Bool OverlayDestroyPixmap(PixmapPtr); -static PixmapPtr OverlayCreatePixmap(ScreenPtr, int, int, int); +static PixmapPtr OverlayCreatePixmap(ScreenPtr, int, int, int, unsigned); static Bool OverlayChangeWindowAttributes(WindowPtr, unsigned long); -static void OverlayPaintWindow(WindowPtr, RegionPtr, int); /** Funcs **/ static void OverlayValidateGC(GCPtr, unsigned long, DrawablePtr); @@ -159,8 +158,6 @@ typedef struct { CreatePixmapProcPtr CreatePixmap; DestroyPixmapProcPtr DestroyPixmap; ChangeWindowAttributesProcPtr ChangeWindowAttributes; - PaintWindowBackgroundProcPtr PaintWindowBackground; - PaintWindowBorderProcPtr PaintWindowBorder; int LockPrivate; } OverlayScreenRec, *OverlayScreenPtr; @@ -284,16 +281,12 @@ xf86Overlay8Plus32Init (ScreenPtr pScreen) pScreenPriv->CreatePixmap = pScreen->CreatePixmap; pScreenPriv->DestroyPixmap = pScreen->DestroyPixmap; pScreenPriv->ChangeWindowAttributes = pScreen->ChangeWindowAttributes; - pScreenPriv->PaintWindowBackground = pScreen->PaintWindowBackground; - pScreenPriv->PaintWindowBorder = pScreen->PaintWindowBorder; pScreen->CreateGC = OverlayCreateGC; pScreen->CloseScreen = OverlayCloseScreen; pScreen->CreatePixmap = OverlayCreatePixmap; pScreen->DestroyPixmap = OverlayDestroyPixmap; pScreen->ChangeWindowAttributes = OverlayChangeWindowAttributes; - pScreen->PaintWindowBackground = OverlayPaintWindow; - pScreen->PaintWindowBorder = OverlayPaintWindow; pScreenPriv->LockPrivate = 0; @@ -346,13 +339,14 @@ OverlayCreateGC(GCPtr pGC) } static PixmapPtr -OverlayCreatePixmap(ScreenPtr pScreen, int w, int h, int depth) +OverlayCreatePixmap(ScreenPtr pScreen, int w, int h, int depth, + unsigned usage_hint) { OverlayScreenPtr pScreenPriv = OVERLAY_GET_SCREEN_PRIVATE(pScreen); PixmapPtr pPix; pScreen->CreatePixmap = pScreenPriv->CreatePixmap; - pPix = (*pScreen->CreatePixmap) (pScreen, w, h, depth); + pPix = (*pScreen->CreatePixmap) (pScreen, w, h, depth, usage_hint); pScreen->CreatePixmap = OverlayCreatePixmap; /* We initialize all the privates */ @@ -402,8 +396,6 @@ OverlayCloseScreen (int i, ScreenPtr pScreen) pScreen->CreatePixmap = pScreenPriv->CreatePixmap; pScreen->DestroyPixmap = pScreenPriv->DestroyPixmap; pScreen->ChangeWindowAttributes = pScreenPriv->ChangeWindowAttributes; - pScreen->PaintWindowBackground = pScreenPriv->PaintWindowBackground; - pScreen->PaintWindowBorder = pScreenPriv->PaintWindowBorder; xfree ((pointer) pScreenPriv); @@ -435,62 +427,6 @@ OverlayChangeWindowAttributes (WindowPtr pWin, unsigned long mask) return result; } -static void -OverlayPaintWindow( - WindowPtr pWin, - RegionPtr pReg, - int what -){ - ScreenPtr pScreen = pWin->drawable.pScreen; - OverlayScreenPtr pScreenPriv = OVERLAY_GET_SCREEN_PRIVATE(pScreen); - OverlayPixmapPtr pixPriv; - PixmapPtr oldPix = NULL; - - if(what == PW_BACKGROUND) { - if(pWin->drawable.depth == 8) { - if(pWin->backgroundState == ParentRelative) { - do { - pWin = pWin->parent; - } while (pWin->backgroundState == ParentRelative); - } - - if(pWin->backgroundState == BackgroundPixmap) { - oldPix = pWin->background.pixmap; - pixPriv = OVERLAY_GET_PIXMAP_PRIVATE(oldPix); - /* have to do this here because alot of applications - incorrectly assume changes to a pixmap that is - a window background go into effect immediatedly */ - if(pixPriv->dirty & IS_DIRTY) - OverlayRefreshPixmap(pWin->background.pixmap); - pWin->background.pixmap = pixPriv->pix32; - } - } - - pScreen->PaintWindowBackground = pScreenPriv->PaintWindowBackground; - (*pScreen->PaintWindowBackground) (pWin, pReg, what); - pScreen->PaintWindowBackground = OverlayPaintWindow; - - if(oldPix) - pWin->background.pixmap = oldPix; - } else { - if((pWin->drawable.depth == 8) && !pWin->borderIsPixel) { - oldPix = pWin->border.pixmap; - pixPriv = OVERLAY_GET_PIXMAP_PRIVATE(oldPix); - if(pixPriv->dirty & IS_DIRTY) - OverlayRefreshPixmap(pWin->border.pixmap); - pWin->border.pixmap = pixPriv->pix32; - } - - pScreen->PaintWindowBorder = pScreenPriv->PaintWindowBorder; - (*pScreen->PaintWindowBorder) (pWin, pReg, what); - pScreen->PaintWindowBorder = OverlayPaintWindow; - - if(oldPix) - pWin->border.pixmap = oldPix; - } -} - - /*********************** GC Funcs *****************************/ @@ -504,7 +440,7 @@ OverlayRefreshPixmap(PixmapPtr pix8) PixmapPtr newPix; newPix = (*pScreen->CreatePixmap)(pScreen, pix8->drawable.width, - pix8->drawable.height, 24); + pix8->drawable.height, 24, 0); newPix->drawable.depth = 8; /* Bad Mark! Bad Mark! */ pixPriv->pix32 = newPix; } |