summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDave Airlie <airlied@redhat.com>2012-06-27 14:36:04 +0100
committerKeith Packard <keithp@keithp.com>2012-06-28 10:43:35 -0700
commit957bf959fb577b292a3e4f6bb67740ca09e7aeb9 (patch)
tree54093fb0af60b8ff0b22d647fe3c7b9a5f3d4cfb
parenta7b97b0fa85d695ae19d194cfa3267159d149e5d (diff)
dix/render: consolidate window format matching code.
This code existed in 3 different forms, perhaps it should be consolidated. Reviewed-by: Keith Packard <keithp@keithp.com> Reviewed-by: Alex Deucher <alexander.deucher@amd.com> Signed-off-by: Dave Airlie <airlied@redhat.com> Signed-off-by: Keith Packard <keithp@keithp.com>
-rw-r--r--composite/compalloc.c4
-rw-r--r--composite/compint.h2
-rw-r--r--composite/compwindow.c26
-rw-r--r--dix/window.c13
-rw-r--r--hw/xfree86/modes/xf86Rotate.c24
-rw-r--r--include/window.h1
-rw-r--r--mi/midispcur.c18
-rw-r--r--render/picture.c8
-rw-r--r--render/picturestr.h3
9 files changed, 31 insertions, 68 deletions
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);