summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJamey Sharp <jamey@minilop.net>2010-05-18 16:48:08 -0700
committerJamey Sharp <jamey@minilop.net>2010-05-19 10:00:49 -0700
commit936b09f2a3e31afe41050c00736bbb6b812c7003 (patch)
treefe038f92b11155c9ea916b30c8869fe7b6fd9221
parent673eb707ce6737284c4886265ba149c5587a74e2 (diff)
Replace miSpriteCursorFuncRec with direct calls to midispcur.c.
Nobody wraps the mi software-cursor sprite rendering implementations. Signed-off-by: Jamey Sharp <jamey@minilop.net> Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
-rw-r--r--mi/midispcur.c58
-rw-r--r--mi/misprite.c68
-rw-r--r--mi/misprite.h88
3 files changed, 53 insertions, 161 deletions
diff --git a/mi/midispcur.c b/mi/midispcur.c
index 1acc46933..61e313305 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 9f10a2b0d..385f67acd 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,16 +964,16 @@ miSpriteRemoveCursor (DeviceIntPtr pDev, ScreenPtr pScreen)
miSpriteIsDown(pCursorInfo);
pCursorInfo->pCacheWin = NullWindow;
miSpriteDisableDamage(pScreen, pScreenPriv);
- if (!(*pScreenPriv->funcs->RestoreUnderCursor) (pDev,
- pScreen,
- pCursorInfo->saved.x1,
- pCursorInfo->saved.y1,
- pCursorInfo->saved.x2 -
- pCursorInfo->saved.x1,
- pCursorInfo->saved.y2 -
- pCursorInfo->saved.y1))
+ if (!miDCRestoreUnderCursor(pDev,
+ pScreen,
+ pCursorInfo->saved.x1,
+ pCursorInfo->saved.y1,
+ pCursorInfo->saved.x2 -
+ pCursorInfo->saved.x1,
+ pCursorInfo->saved.y2 -
+ pCursorInfo->saved.y1))
{
- miSpriteIsUp(pCursorInfo);
+ miSpriteIsUp(pCursorInfo);
}
miSpriteEnableDamage(pScreen, pScreenPriv);
DamageDrawInternal (pScreen, FALSE);
@@ -1026,14 +1006,14 @@ miSpriteSaveUnderCursor(DeviceIntPtr pDev, ScreenPtr pScreen)
y = pCursorInfo->y - (int)pCursor->bits->yhot;
miSpriteDisableDamage(pScreen, pScreenPriv);
- (*pScreenPriv->funcs->SaveUnderCursor) (pDev,
- pScreen,
- pCursorInfo->saved.x1,
- pCursorInfo->saved.y1,
- pCursorInfo->saved.x2 -
- pCursorInfo->saved.x1,
- pCursorInfo->saved.y2 -
- pCursorInfo->saved.y1);
+ miDCSaveUnderCursor(pDev,
+ pScreen,
+ pCursorInfo->saved.x1,
+ pCursorInfo->saved.y1,
+ pCursorInfo->saved.x2 -
+ pCursorInfo->saved.x1,
+ pCursorInfo->saved.y2 -
+ pCursorInfo->saved.y1);
SPRITE_DEBUG(("SaveUnderCursor %d\n", pDev->id));
miSpriteEnableDamage(pScreen, pScreenPriv);
DamageDrawInternal (pScreen, FALSE);
@@ -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 72dc06fc7..78bf52cd4 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);