[PATCH 1/2] Replace miSpriteCursorFuncRec with direct calls to midispcur.c.

Jamey Sharp jamey at minilop.net
Tue May 18 16:50:25 PDT 2010


Nobody wraps the mi software-cursor sprite rendering implementations.

Signed-off-by: Jamey Sharp <jamey at minilop.net>
---
 mi/midispcur.c |   58 ++++++------------------------------
 mi/misprite.c  |   38 ++++++------------------
 mi/misprite.h  |   88 ++++++++++++-------------------------------------------
 3 files changed, 38 insertions(+), 146 deletions(-)

diff --git a/mi/midispcur.c b/mi/midispcur.c
index 4de37d7..16495e4 100644
--- a/mi/midispcur.c
+++ b/mi/midispcur.c
@@ -97,44 +97,6 @@ typedef struct {
 #endif
 } miDCCursorRec, *miDCCursorPtr;
 
-/*
- * sprite/cursor method table
- */
-
-static Bool	miDCRealizeCursor(ScreenPtr pScreen, CursorPtr pCursor);
-static Bool	miDCUnrealizeCursor(ScreenPtr pScreen, CursorPtr pCursor);
-static Bool	miDCPutUpCursor(DeviceIntPtr pDev, ScreenPtr pScreen, 
-                                CursorPtr pCursor, int x, int y, 
-                                unsigned long source, unsigned long mask);
-static Bool	miDCSaveUnderCursor(DeviceIntPtr pDev, ScreenPtr pScreen, 
-                                    int x, int y,
-				    int w, int h);
-static Bool	miDCRestoreUnderCursor(DeviceIntPtr pDev, ScreenPtr pScreen, 
-                                       int x, int y,
-				       int w, int h);
-static Bool	miDCMoveCursor(DeviceIntPtr pDev, ScreenPtr pScreen, 
-                               CursorPtr pCursor, int x, int y, 
-                               int w, int h, int dx, int dy,
-			       unsigned long source, unsigned long mask);
-static Bool	miDCChangeSave(DeviceIntPtr pDev, ScreenPtr pScreen, 
-                               int x, int y, int w, int h,	
-                               int dx, int dy);
-
-static Bool     miDCDeviceInitialize(DeviceIntPtr pDev, ScreenPtr pScreen);
-static void     miDCDeviceCleanup(DeviceIntPtr pDev, ScreenPtr pScreen);
-
-static miSpriteCursorFuncRec miDCFuncs = {
-    miDCRealizeCursor,
-    miDCUnrealizeCursor,
-    miDCPutUpCursor,
-    miDCSaveUnderCursor,
-    miDCRestoreUnderCursor,
-    miDCMoveCursor,
-    miDCChangeSave,
-    miDCDeviceInitialize,
-    miDCDeviceCleanup
-};
-
 Bool
 miDCInitialize (ScreenPtr pScreen, miPointerScreenFuncPtr screenFuncs)
 {
@@ -150,7 +112,7 @@ miDCInitialize (ScreenPtr pScreen, miPointerScreenFuncPtr screenFuncs)
 
     dixSetPrivate(&pScreen->devPrivates, miDCScreenKey, pScreenPriv);
 
-    if (!miSpriteInitialize (pScreen, &miDCFuncs, screenFuncs))
+    if (!miSpriteInitialize (pScreen, screenFuncs))
     {
 	free((pointer) pScreenPriv);
 	return FALSE;
@@ -170,7 +132,7 @@ miDCCloseScreen (int index, ScreenPtr pScreen)
     return (*pScreen->CloseScreen) (index, pScreen);
 }
 
-static Bool
+Bool
 miDCRealizeCursor (ScreenPtr pScreen, CursorPtr pCursor)
 {
     if (pCursor->bits->refcnt <= 1)
@@ -329,7 +291,7 @@ miDCRealize (ScreenPtr pScreen, CursorPtr pCursor)
     return pPriv;
 }
 
-static Bool
+Bool
 miDCUnrealizeCursor (ScreenPtr pScreen, CursorPtr pCursor)
 {
     miDCCursorPtr   pPriv;
@@ -426,7 +388,7 @@ miDCMakeGC(WindowPtr pWin)
 }
 
 
-static Bool
+Bool
 miDCPutUpCursor (DeviceIntPtr pDev, ScreenPtr pScreen, CursorPtr pCursor,
                  int x, int y, unsigned long source, unsigned long mask)
 {
@@ -471,7 +433,7 @@ miDCPutUpCursor (DeviceIntPtr pDev, ScreenPtr pScreen, CursorPtr pCursor,
     return TRUE;
 }
 
-static Bool
+Bool
 miDCSaveUnderCursor (DeviceIntPtr pDev, ScreenPtr pScreen,
                      int x, int y, int w, int h)
 {
@@ -505,7 +467,7 @@ miDCSaveUnderCursor (DeviceIntPtr pDev, ScreenPtr pScreen,
     return TRUE;
 }
 
-static Bool
+Bool
 miDCRestoreUnderCursor (DeviceIntPtr pDev, ScreenPtr pScreen,
                         int x, int y, int w, int h)
 {
@@ -532,7 +494,7 @@ miDCRestoreUnderCursor (DeviceIntPtr pDev, ScreenPtr pScreen,
     return TRUE;
 }
 
-static Bool
+Bool
 miDCChangeSave (DeviceIntPtr pDev, ScreenPtr pScreen,
                 int x, int y, int w, int h, int dx, int dy)
 {
@@ -665,7 +627,7 @@ miDCChangeSave (DeviceIntPtr pDev, ScreenPtr pScreen,
     return TRUE;
 }
 
-static Bool
+Bool
 miDCMoveCursor (DeviceIntPtr pDev, ScreenPtr pScreen, CursorPtr pCursor,
                 int x, int y, int w, int h, int dx, int dy,
                 unsigned long source, unsigned long mask)
@@ -764,7 +726,7 @@ miDCMoveCursor (DeviceIntPtr pDev, ScreenPtr pScreen, CursorPtr pCursor,
     return TRUE;
 }
 
-static Bool
+Bool
 miDCDeviceInitialize(DeviceIntPtr pDev, ScreenPtr pScreen)
 {
     miDCBufferPtr   pBuffer;
@@ -839,7 +801,7 @@ failure:
     return FALSE;
 }
 
-static void
+void
 miDCDeviceCleanup(DeviceIntPtr pDev, ScreenPtr pScreen)
 {
     miDCBufferPtr   pBuffer;
diff --git a/mi/misprite.c b/mi/misprite.c
index 9f10a2b..fb73ef1 100644
--- a/mi/misprite.c
+++ b/mi/misprite.c
@@ -94,7 +94,6 @@ typedef struct {
     ColormapPtr     pInstalledMap;
     ColormapPtr     pColormap;
     VisualPtr	    pVisual;
-    miSpriteCursorFuncPtr    funcs;
     DamagePtr	    pDamage;		/* damage tracking structure */
     Bool            damageRegistered;
 } miSpriteScreenRec, *miSpriteScreenPtr;
@@ -289,7 +288,6 @@ miSpriteReportDamage (DamagePtr pDamage, RegionPtr pRegion, void *closure)
 
 Bool
 miSpriteInitialize (ScreenPtr               pScreen,
-                    miSpriteCursorFuncPtr   cursorFuncs,
                     miPointerScreenFuncPtr  screenFuncs)
 {
     miSpriteScreenPtr	pScreenPriv;
@@ -336,7 +334,6 @@ miSpriteInitialize (ScreenPtr               pScreen,
 
     pScreenPriv->pInstalledMap = NULL;
     pScreenPriv->pColormap = NULL;
-    pScreenPriv->funcs = cursorFuncs;
     pScreenPriv->colors[SOURCE_COLOR].red = 0;
     pScreenPriv->colors[SOURCE_COLOR].green = 0;
     pScreenPriv->colors[SOURCE_COLOR].blue = 0;
@@ -760,10 +757,8 @@ miSpriteFindColors (miCursorInfoPtr pDevCursor, ScreenPtr pScreen)
 static Bool
 miSpriteRealizeCursor (DeviceIntPtr pDev, ScreenPtr pScreen, CursorPtr pCursor)
 {
-    miSpriteScreenPtr	pScreenPriv;
     miCursorInfoPtr pCursorInfo;
 
-    pScreenPriv = dixLookupPrivate(&pScreen->devPrivates, miSpriteScreenKey);
     if (!IsMaster(pDev) && !pDev->u.master)
         return FALSE;
 
@@ -772,27 +767,21 @@ miSpriteRealizeCursor (DeviceIntPtr pDev, ScreenPtr pScreen, CursorPtr pCursor)
     if (pCursor == pCursorInfo->pCursor)
 	pCursorInfo->checkPixels = TRUE;
 
-    return (*pScreenPriv->funcs->RealizeCursor) (pScreen, pCursor);
+    return miDCRealizeCursor(pScreen, pCursor);
 }
 
 static Bool
 miSpriteUnrealizeCursor(DeviceIntPtr pDev, ScreenPtr pScreen, CursorPtr pCursor)
 {
-    miSpriteScreenPtr	pScreenPriv;
-
-    pScreenPriv = dixLookupPrivate(&pScreen->devPrivates, miSpriteScreenKey);
-    return (*pScreenPriv->funcs->UnrealizeCursor) (pScreen, pCursor);
+    return miDCUnrealizeCursor(pScreen, pCursor);
 }
 
 static void
 miSpriteSetCursor (DeviceIntPtr pDev, ScreenPtr pScreen,
                    CursorPtr pCursor, int x, int y)
 {
-    miSpriteScreenPtr	pScreenPriv;
     miCursorInfoPtr pPointer;
 
-    pScreenPriv = dixLookupPrivate(&pScreen->devPrivates, miSpriteScreenKey);
-
     if (!IsMaster(pDev) && !pDev->u.master)
         return;
 
@@ -861,7 +850,7 @@ miSpriteSetCursor (DeviceIntPtr pDev, ScreenPtr pScreen,
 		pointer->saved.y1 -= dy;
 		pointer->saved.x2 -= dx;
 		pointer->saved.y2 -= dy;
-		(void) (*pScreenPriv->funcs->ChangeSave) (pScreen,
+		(void) miDCChangeSave(pScreen,
 				pointer->saved.x1,
  				pointer->saved.y1,
                                 pointer->saved.x2 -
@@ -870,7 +859,7 @@ miSpriteSetCursor (DeviceIntPtr pDev, ScreenPtr pScreen,
                                 pointer->saved.y1,
 				dx, dy);
 	    }
-	    (void) (*pScreenPriv->funcs->MoveCursor) (pScreen, pCursor,
+	    (void) miDCMoveCursor(pScreen, pCursor,
 				  pointer->saved.x1,
  				  pointer->saved.y1,
                                   pointer->saved.x2 -
@@ -920,12 +909,9 @@ miSpriteMoveCursor (DeviceIntPtr pDev, ScreenPtr pScreen, int x, int y)
 static Bool
 miSpriteDeviceCursorInitialize(DeviceIntPtr pDev, ScreenPtr pScreen)
 {
-    miSpriteScreenPtr pScreenPriv;
     miCursorInfoPtr pCursorInfo;
     int ret = FALSE;
 
-    pScreenPriv = dixLookupPrivate(&pScreen->devPrivates, miSpriteScreenKey);
-
     pCursorInfo = malloc(sizeof(miCursorInfoRec));
     if (!pCursorInfo)
         return FALSE;
@@ -940,7 +926,7 @@ miSpriteDeviceCursorInitialize(DeviceIntPtr pDev, ScreenPtr pScreen)
     pCursorInfo->checkPixels = TRUE;
     pCursorInfo->pScreen = FALSE;
 
-    ret = (*pScreenPriv->funcs->DeviceCursorInitialize)(pDev, pScreen);
+    ret = miDCDeviceInitialize(pDev, pScreen);
     if (!ret)
     {
         free(pCursorInfo);
@@ -954,13 +940,7 @@ static void
 miSpriteDeviceCursorCleanup(DeviceIntPtr pDev, ScreenPtr pScreen)
 {
     if (DevHasCursor(pDev))
-    {
-        miSpriteScreenPtr pScreenPriv;
-        pScreenPriv = dixLookupPrivate(&pScreen->devPrivates,
-                                       miSpriteScreenKey);
-
-        (*pScreenPriv->funcs->DeviceCursorCleanup)(pDev, pScreen);
-    }
+        miDCDeviceCleanup(pDev, pScreen);
 }
 
 /*
@@ -984,7 +964,7 @@ miSpriteRemoveCursor (DeviceIntPtr pDev, ScreenPtr pScreen)
     miSpriteIsDown(pCursorInfo);
     pCursorInfo->pCacheWin = NullWindow;
     miSpriteDisableDamage(pScreen, pScreenPriv);
-    if (!(*pScreenPriv->funcs->RestoreUnderCursor) (pDev,
+    if (!miDCRestoreUnderCursor(pDev,
                                          pScreen,
 					 pCursorInfo->saved.x1,
                                          pCursorInfo->saved.y1,
@@ -1026,7 +1006,7 @@ miSpriteSaveUnderCursor(DeviceIntPtr pDev, ScreenPtr pScreen)
     y = pCursorInfo->y - (int)pCursor->bits->yhot;
     miSpriteDisableDamage(pScreen, pScreenPriv);
 
-    (*pScreenPriv->funcs->SaveUnderCursor) (pDev,
+    miDCSaveUnderCursor(pDev,
                                       pScreen,
 				      pCursorInfo->saved.x1,
 				      pCursorInfo->saved.y1,
@@ -1069,7 +1049,7 @@ miSpriteRestoreCursor (DeviceIntPtr pDev, ScreenPtr pScreen)
     SPRITE_DEBUG(("RestoreCursor %d\n", pDev->id));
     if (pCursorInfo->checkPixels)
         miSpriteFindColors (pCursorInfo, pScreen);
-    if ((*pScreenPriv->funcs->PutUpCursor) (pDev, pScreen,
+    if (miDCPutUpCursor(pDev, pScreen,
                 pCursor, x, y,
                 pScreenPriv->colors[SOURCE_COLOR].pixel,
                 pScreenPriv->colors[MASK_COLOR].pixel))
diff --git a/mi/misprite.h b/mi/misprite.h
index 72dc06f..78bf52c 100644
--- a/mi/misprite.h
+++ b/mi/misprite.h
@@ -32,76 +32,26 @@ used in advertising or otherwise to promote the sale, use or other dealings
 in this Software without prior written authorization from The Open Group.
 */
 
-typedef struct {
-    Bool	(*RealizeCursor)(
-		ScreenPtr /*pScreen*/,
-		CursorPtr /*pCursor*/
-);
-    Bool	(*UnrealizeCursor)(
-		ScreenPtr /*pScreen*/,
-		CursorPtr /*pCursor*/
-);
-    Bool	(*PutUpCursor)(
-                DeviceIntPtr /*pDev*/,
-		ScreenPtr /*pScreen*/,
-		CursorPtr /*pCursor*/,
-		int /*x*/,
-		int /*y*/,
-		unsigned long /*source*/,
-		unsigned long /*mask*/
-);
-    Bool	(*SaveUnderCursor)(
-                DeviceIntPtr /*pDev*/,
-		ScreenPtr /*pScreen*/,
-		int /*x*/,
-		int /*y*/,
-		int /*w*/,
-		int /*h*/
-);
-    Bool	(*RestoreUnderCursor)(
-                DeviceIntPtr /*pDev*/,
-		ScreenPtr /*pScreen*/,
-		int /*x*/,
-		int /*y*/,
-		int /*w*/,
-		int /*h*/
-);
-    Bool	(*MoveCursor)(
-                DeviceIntPtr /*pDev*/,
-		ScreenPtr /*pScreen*/,
-		CursorPtr /*pCursor*/,
-		int /*x*/,
-		int /*y*/,
-		int /*w*/,
-		int /*h*/,
-		int /*dx*/,
-		int /*dy*/,
-		unsigned long /*source*/,
-		unsigned long /*mask*/
-);
-    Bool	(*ChangeSave)(
-                DeviceIntPtr /*pDev*/,
-		ScreenPtr /*pScreen*/,
-		int /*x*/,
-		int /*y*/,
-		int /*w*/,
-		int /*h*/,
-		int /*dx*/,
-		int /*dy*/
-);
-    Bool	(*DeviceCursorInitialize)(
-                DeviceIntPtr /*pDev*/,
-		ScreenPtr /*pScreen*/
-);
-    void	(*DeviceCursorCleanup)(
-                DeviceIntPtr /*pDev*/,
-		ScreenPtr /*pScreen*/
-);
-
-} miSpriteCursorFuncRec, *miSpriteCursorFuncPtr;
-
 extern Bool miSpriteInitialize(
     ScreenPtr /*pScreen*/,
-    miSpriteCursorFuncPtr /*cursorFuncs*/,
     miPointerScreenFuncPtr /*screenFuncs*/
 );
+
+extern Bool miDCRealizeCursor(ScreenPtr pScreen, CursorPtr pCursor);
+extern Bool miDCUnrealizeCursor(ScreenPtr pScreen, CursorPtr pCursor);
+extern Bool miDCPutUpCursor(DeviceIntPtr pDev, ScreenPtr pScreen,
+                            CursorPtr pCursor, int x, int y,
+                            unsigned long source, unsigned long mask);
+extern Bool miDCSaveUnderCursor(DeviceIntPtr pDev, ScreenPtr pScreen,
+                                int x, int y, int w, int h);
+extern Bool miDCRestoreUnderCursor(DeviceIntPtr pDev, ScreenPtr pScreen,
+                                   int x, int y, int w, int h);
+extern Bool miDCMoveCursor(DeviceIntPtr pDev, ScreenPtr pScreen,
+                           CursorPtr pCursor, int x, int y,
+                           int w, int h, int dx, int dy,
+                           unsigned long source, unsigned long mask);
+extern Bool miDCChangeSave(DeviceIntPtr pDev, ScreenPtr pScreen,
+                           int x, int y, int w, int h,
+                           int dx, int dy);
+extern Bool miDCDeviceInitialize(DeviceIntPtr pDev, ScreenPtr pScreen);
+extern void miDCDeviceCleanup(DeviceIntPtr pDev, ScreenPtr pScreen);
-- 
1.7.0



More information about the xorg-devel mailing list