diff --git a/composite/compalloc.c b/composite/compalloc.c index b958b0942..cc69c68f2 100644 --- a/composite/compalloc.c +++ b/composite/compalloc.c @@ -560,8 +560,8 @@ compNewPixmap(WindowPtr pWin, int x, int y, int w, int h) } } else { - PictFormatPtr pSrcFormat = compWindowFormat(pParent); - PictFormatPtr pDstFormat = compWindowFormat(pWin); + PictFormatPtr pSrcFormat = PictureWindowFormat(pParent); + PictFormatPtr pDstFormat = PictureWindowFormat(pWin); XID inferiors = IncludeInferiors; int error; diff --git a/composite/compint.h b/composite/compint.h index 9e2713e93..30b724e3e 100644 --- a/composite/compint.h +++ b/composite/compint.h @@ -272,8 +272,6 @@ void #define compCheckTree(s) #endif -PictFormatPtr compWindowFormat(WindowPtr pWin); - void compSetPixmap(WindowPtr pWin, PixmapPtr pPixmap); diff --git a/composite/compwindow.c b/composite/compwindow.c index 6eb624b11..d0bcd183f 100644 --- a/composite/compwindow.c +++ b/composite/compwindow.c @@ -631,28 +631,6 @@ compGetRedirectBorderClip(WindowPtr pWin) return &cw->borderClip; } -static VisualPtr -compGetWindowVisual(WindowPtr pWin) -{ - ScreenPtr pScreen = pWin->drawable.pScreen; - VisualID vid = wVisual(pWin); - int i; - - for (i = 0; i < pScreen->numVisuals; i++) - if (pScreen->visuals[i].vid == vid) - return &pScreen->visuals[i]; - return 0; -} - -PictFormatPtr -compWindowFormat(WindowPtr pWin) -{ - ScreenPtr pScreen = pWin->drawable.pScreen; - - return PictureMatchVisual(pScreen, pWin->drawable.depth, - compGetWindowVisual(pWin)); -} - static void compWindowUpdateAutomatic(WindowPtr pWin) { @@ -660,8 +638,8 @@ compWindowUpdateAutomatic(WindowPtr pWin) ScreenPtr pScreen = pWin->drawable.pScreen; WindowPtr pParent = pWin->parent; PixmapPtr pSrcPixmap = (*pScreen->GetWindowPixmap) (pWin); - PictFormatPtr pSrcFormat = compWindowFormat(pWin); - PictFormatPtr pDstFormat = compWindowFormat(pWin->parent); + PictFormatPtr pSrcFormat = PictureWindowFormat(pWin); + PictFormatPtr pDstFormat = PictureWindowFormat(pWin->parent); int error; RegionPtr pRegion = DamageRegion(cw->damage); PicturePtr pSrcPicture = CreatePicture(0, &pSrcPixmap->drawable, diff --git a/dix/window.c b/dix/window.c index 98f5604c9..5cc3a502d 100644 --- a/dix/window.c +++ b/dix/window.c @@ -3660,3 +3660,16 @@ SetRootClip(ScreenPtr pScreen, Bool enable) WindowsRestructured(); FlushAllOutput(); } + +VisualPtr +WindowGetVisual(WindowPtr pWin) +{ + ScreenPtr pScreen = pWin->drawable.pScreen; + VisualID vid = wVisual(pWin); + int i; + + for (i = 0; i < pScreen->numVisuals; i++) + if (pScreen->visuals[i].vid == vid) + return &pScreen->visuals[i]; + return 0; +} diff --git a/hw/xfree86/modes/xf86Rotate.c b/hw/xfree86/modes/xf86Rotate.c index 6a661e195..31e03727e 100644 --- a/hw/xfree86/modes/xf86Rotate.c +++ b/hw/xfree86/modes/xf86Rotate.c @@ -46,28 +46,6 @@ /* borrowed from composite extension, move to Render and publish? */ -static VisualPtr -compGetWindowVisual(WindowPtr pWin) -{ - ScreenPtr pScreen = pWin->drawable.pScreen; - VisualID vid = wVisual(pWin); - int i; - - for (i = 0; i < pScreen->numVisuals; i++) - if (pScreen->visuals[i].vid == vid) - return &pScreen->visuals[i]; - return 0; -} - -static PictFormatPtr -compWindowFormat(WindowPtr pWin) -{ - ScreenPtr pScreen = pWin->drawable.pScreen; - - return PictureMatchVisual(pScreen, pWin->drawable.depth, - compGetWindowVisual(pWin)); -} - #define F(x) IntToxFixed(x) #define toF(x) ((float) (x) / 65536.0f) @@ -79,7 +57,7 @@ xf86RotateCrtcRedisplay(xf86CrtcPtr crtc, RegionPtr region) ScreenPtr screen = scrn->pScreen; WindowPtr root = screen->root; PixmapPtr dst_pixmap = crtc->rotatedPixmap; - PictFormatPtr format = compWindowFormat(screen->root); + PictFormatPtr format = PictureWindowFormat(screen->root); int error; PicturePtr src, dst; int n = RegionNumRects(region); diff --git a/include/window.h b/include/window.h index 64c56aeb3..7842b4d58 100644 --- a/include/window.h +++ b/include/window.h @@ -229,4 +229,5 @@ extern _X_EXPORT void EnableMapUnmapEvents(WindowPtr /* pWin */ ); extern _X_EXPORT void SetRootClip(ScreenPtr pScreen, Bool enable); extern _X_EXPORT void PrintWindowTree(void); +extern _X_EXPORT VisualPtr WindowGetVisual(WindowPtr /*pWin*/); #endif /* WINDOW_H */ diff --git a/mi/midispcur.c b/mi/midispcur.c index 9ee824283..df141cdc7 100644 --- a/mi/midispcur.c +++ b/mi/midispcur.c @@ -151,19 +151,6 @@ miDCRealizeCursor(ScreenPtr pScreen, CursorPtr pCursor) #ifdef ARGB_CURSOR #define EnsurePicture(picture,draw,win) (picture || miDCMakePicture(&picture,draw,win)) -static VisualPtr -miDCGetWindowVisual(WindowPtr pWin) -{ - ScreenPtr pScreen = pWin->drawable.pScreen; - VisualID vid = wVisual(pWin); - int i; - - for (i = 0; i < pScreen->numVisuals; i++) - if (pScreen->visuals[i].vid == vid) - return &pScreen->visuals[i]; - return 0; -} - static PicturePtr miDCMakePicture(PicturePtr * ppPicture, DrawablePtr pDraw, WindowPtr pWin) { @@ -174,10 +161,7 @@ miDCMakePicture(PicturePtr * ppPicture, DrawablePtr pDraw, WindowPtr pWin) PicturePtr pPicture; int error; - pVisual = miDCGetWindowVisual(pWin); - if (!pVisual) - return 0; - pFormat = PictureMatchVisual(pScreen, pDraw->depth, pVisual); + pFormat = PictureWindowFormat(pWin); if (!pFormat) return 0; pPicture = CreatePicture(0, pDraw, pFormat, diff --git a/render/picture.c b/render/picture.c index 788785354..ebbfa29e9 100644 --- a/render/picture.c +++ b/render/picture.c @@ -50,6 +50,14 @@ RESTYPE PictFormatType; RESTYPE GlyphSetType; int PictureCmapPolicy = PictureCmapPolicyDefault; +PictFormatPtr +PictureWindowFormat(WindowPtr pWindow) +{ + ScreenPtr pScreen = pWindow->drawable.pScreen; + return PictureMatchVisual(pScreen, pWindow->drawable.depth, + WindowGetVisual(pWindow)); +} + Bool PictureDestroyWindow(WindowPtr pWindow) { diff --git a/render/picturestr.h b/render/picturestr.h index 6da56563d..1cda88a80 100644 --- a/render/picturestr.h +++ b/render/picturestr.h @@ -377,6 +377,9 @@ extern _X_EXPORT RESTYPE GlyphSetType; } \ } \ +extern _X_EXPORT PictFormatPtr + PictureWindowFormat(WindowPtr pWindow); + extern _X_EXPORT Bool PictureDestroyWindow(WindowPtr pWindow);