mi: malloc checks for misprite and midispcur, code cleanup
removed IsMPDev()
This commit is contained in:
parent
023da4e804
commit
85ea408e38
16
Changelog
16
Changelog
|
@ -14,12 +14,24 @@ Files:
|
||||||
|
|
||||||
____________________________________________________________
|
____________________________________________________________
|
||||||
|
|
||||||
mi: mipointer.c cleanup, reducing code duplication, using MPHasCursor()
|
mi: mipointer.c cleanup, reducing code duplication, using MPHasCursor(),
|
||||||
instead of IsMPDev()
|
removing IsMPDev()
|
||||||
|
|
||||||
Files:
|
Files:
|
||||||
mi/mipointer.c
|
mi/mipointer.c
|
||||||
|
|
||||||
|
____________________________________________________________
|
||||||
|
|
||||||
|
mi: malloc checks for misprite and midispcur, code cleanup
|
||||||
|
removed IsMPDev()
|
||||||
|
|
||||||
|
Files:
|
||||||
|
mi/misprite.c
|
||||||
|
mi/mipointer.c
|
||||||
|
mi/midispcur.c
|
||||||
|
dix/events.c
|
||||||
|
|
||||||
|
|
||||||
== 23.11.06 ==
|
== 23.11.06 ==
|
||||||
mi: closing memory leak, miPointer is freed in miPointerCloseScreen
|
mi: closing memory leak, miPointer is freed in miPointerCloseScreen
|
||||||
bugfix: uninitialized pPointer in miPointerGetPosition ifndef MPX
|
bugfix: uninitialized pPointer in miPointerGetPosition ifndef MPX
|
||||||
|
|
40
dix/events.c
40
dix/events.c
|
@ -259,9 +259,9 @@ typedef struct {
|
||||||
static SpritePtr sprite; /* info about the cursor sprite */
|
static SpritePtr sprite; /* info about the cursor sprite */
|
||||||
|
|
||||||
#ifdef MPX
|
#ifdef MPX
|
||||||
static SpritePtr mpsprites; /* info about the MPX sprites */
|
#define MPXDBG(...) fprintf (stderr, "MPX: " __VA_ARGS__)
|
||||||
|
|
||||||
extern BOOL IsMPDev(DeviceIntPtr dev);
|
static SpritePtr mpsprites; /* info about the MPX sprites */
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* True for the core pointer and any MPX device.
|
* True for the core pointer and any MPX device.
|
||||||
|
@ -371,7 +371,7 @@ XineramaSetCursorPosition(
|
||||||
SpritePtr pSprite = sprite;
|
SpritePtr pSprite = sprite;
|
||||||
|
|
||||||
#ifdef MPX
|
#ifdef MPX
|
||||||
if (IsMPDev(pDev))
|
if (MPHasCursor(pDev))
|
||||||
pSprite = &mpsprites[pDev->id];
|
pSprite = &mpsprites[pDev->id];
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
@ -416,7 +416,7 @@ XineramaConstrainCursor(DeviceIntPtr pDev)
|
||||||
BoxRec newBox;
|
BoxRec newBox;
|
||||||
|
|
||||||
#ifdef MPX
|
#ifdef MPX
|
||||||
if (IsMPDev(pDev))
|
if (MPHasCursor(pDev))
|
||||||
pSprite = &mpsprites[pDev->id];
|
pSprite = &mpsprites[pDev->id];
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
@ -445,7 +445,7 @@ XineramaCheckPhysLimits(
|
||||||
if (!cursor)
|
if (!cursor)
|
||||||
return;
|
return;
|
||||||
#ifdef MPX
|
#ifdef MPX
|
||||||
if (IsMPDev(pDev))
|
if (MPHasCursor(pDev))
|
||||||
pSprite = &mpsprites[pDev->id];
|
pSprite = &mpsprites[pDev->id];
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
@ -583,7 +583,7 @@ XineramaCheckMotion(xEvent *xE, DeviceIntPtr pDev)
|
||||||
SpritePtr pSprite = sprite;
|
SpritePtr pSprite = sprite;
|
||||||
|
|
||||||
#ifdef MPX
|
#ifdef MPX
|
||||||
if (IsMPDev(pDev))
|
if (MPHasCursor(pDev))
|
||||||
pSprite = &mpsprites[pDev->id];
|
pSprite = &mpsprites[pDev->id];
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
@ -704,7 +704,7 @@ XineramaChangeToCursor(DeviceIntPtr pDev, CursorPtr cursor)
|
||||||
SpritePtr pSprite = sprite;
|
SpritePtr pSprite = sprite;
|
||||||
|
|
||||||
#ifdef MPX
|
#ifdef MPX
|
||||||
if (IsMPDev(pDev))
|
if (MPHasCursor(pDev))
|
||||||
pSprite = &mpsprites[pDev->id];
|
pSprite = &mpsprites[pDev->id];
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
@ -748,7 +748,7 @@ ConfineToShape(DeviceIntPtr pDev, RegionPtr shape, int *px, int *py)
|
||||||
int incx = 1, incy = 1;
|
int incx = 1, incy = 1;
|
||||||
SpritePtr pSprite = sprite;
|
SpritePtr pSprite = sprite;
|
||||||
#ifdef MPX
|
#ifdef MPX
|
||||||
if (IsMPDev(pDev))
|
if (MPHasCursor(pDev))
|
||||||
pSprite = &mpsprites[pDev->id];
|
pSprite = &mpsprites[pDev->id];
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
@ -794,7 +794,7 @@ CheckPhysLimits(
|
||||||
SpritePtr pSprite = sprite;
|
SpritePtr pSprite = sprite;
|
||||||
|
|
||||||
#ifdef MPX
|
#ifdef MPX
|
||||||
if (IsMPDev(pDev))
|
if (MPHasCursor(pDev))
|
||||||
pSprite = &mpsprites[pDev->id];
|
pSprite = &mpsprites[pDev->id];
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
@ -924,7 +924,7 @@ PointerConfinedToScreen(DeviceIntPtr pDev)
|
||||||
{
|
{
|
||||||
SpritePtr pSprite = sprite;
|
SpritePtr pSprite = sprite;
|
||||||
#ifdef MPX
|
#ifdef MPX
|
||||||
if (IsMPDev(pDev))
|
if (MPHasCursor(pDev))
|
||||||
pSprite = &mpsprites[pDev->id];
|
pSprite = &mpsprites[pDev->id];
|
||||||
#endif
|
#endif
|
||||||
return pSprite->confined;
|
return pSprite->confined;
|
||||||
|
@ -936,7 +936,7 @@ ChangeToCursor(DeviceIntPtr pDev, CursorPtr cursor)
|
||||||
SpritePtr pSprite = sprite;
|
SpritePtr pSprite = sprite;
|
||||||
|
|
||||||
#ifdef MPX
|
#ifdef MPX
|
||||||
if (IsMPDev(pDev))
|
if (MPHasCursor(pDev))
|
||||||
pSprite = &mpsprites[pDev->id];
|
pSprite = &mpsprites[pDev->id];
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
@ -979,7 +979,7 @@ PostNewCursor(DeviceIntPtr pDev)
|
||||||
SpritePtr pSprite = sprite;
|
SpritePtr pSprite = sprite;
|
||||||
|
|
||||||
#ifdef MPX
|
#ifdef MPX
|
||||||
if (IsMPDev(pDev))
|
if (MPHasCursor(pDev))
|
||||||
pSprite = &mpsprites[pDev->id];
|
pSprite = &mpsprites[pDev->id];
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
@ -1018,7 +1018,7 @@ _X_EXPORT WindowPtr
|
||||||
GetSpriteWindow(DeviceIntPtr pDev)
|
GetSpriteWindow(DeviceIntPtr pDev)
|
||||||
{
|
{
|
||||||
#ifdef MPX
|
#ifdef MPX
|
||||||
if(IsMPDev(pDev))
|
if(MPHasCursor(pDev))
|
||||||
return mpsprites[pDev->id].win;
|
return mpsprites[pDev->id].win;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
@ -1036,7 +1036,7 @@ GetSpritePosition(DeviceIntPtr pDev, int *px, int *py)
|
||||||
{
|
{
|
||||||
SpritePtr pSprite = sprite;
|
SpritePtr pSprite = sprite;
|
||||||
#ifdef MPX
|
#ifdef MPX
|
||||||
if (IsMPDev(pDev))
|
if (MPHasCursor(pDev))
|
||||||
pSprite = &mpsprites[pDev->id];
|
pSprite = &mpsprites[pDev->id];
|
||||||
#endif
|
#endif
|
||||||
*px = pSprite->hotPhys.x;
|
*px = pSprite->hotPhys.x;
|
||||||
|
@ -1860,7 +1860,7 @@ FixUpEventFromWindow(
|
||||||
{
|
{
|
||||||
SpritePtr pSprite = sprite;
|
SpritePtr pSprite = sprite;
|
||||||
#ifdef MPX
|
#ifdef MPX
|
||||||
if (IsMPDev(pDev))
|
if (MPHasCursor(pDev))
|
||||||
pSprite = &mpsprites[pDev->id];
|
pSprite = &mpsprites[pDev->id];
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
@ -2094,7 +2094,7 @@ CheckMotion(xEvent *xE, DeviceIntPtr pDev)
|
||||||
SpritePtr pSprite = sprite;
|
SpritePtr pSprite = sprite;
|
||||||
|
|
||||||
#ifdef MPX
|
#ifdef MPX
|
||||||
if (IsMPDev(pDev))
|
if (MPHasCursor(pDev))
|
||||||
pSprite = &mpsprites[pDev->id];
|
pSprite = &mpsprites[pDev->id];
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
@ -2131,7 +2131,7 @@ CheckMotion(xEvent *xE, DeviceIntPtr pDev)
|
||||||
xeviehot.y = pSprite->hot.y;
|
xeviehot.y = pSprite->hot.y;
|
||||||
#endif
|
#endif
|
||||||
pSprite->hotPhys = pSprite->hot;
|
pSprite->hotPhys = pSprite->hot;
|
||||||
#ifndef MPX /* XXX ndef!! */
|
#if !defined MPX
|
||||||
if ((pSprite->hotPhys.x != XE_KBPTR.rootX) ||
|
if ((pSprite->hotPhys.x != XE_KBPTR.rootX) ||
|
||||||
(pSprite->hotPhys.y != XE_KBPTR.rootY))
|
(pSprite->hotPhys.y != XE_KBPTR.rootY))
|
||||||
{
|
{
|
||||||
|
@ -2177,7 +2177,7 @@ WindowsRestructured()
|
||||||
DeviceIntPtr pDev = inputInfo.devices;
|
DeviceIntPtr pDev = inputInfo.devices;
|
||||||
while(pDev)
|
while(pDev)
|
||||||
{
|
{
|
||||||
if (pDev != inputInfo.keyboard)
|
if (MPHasCursor(pDev))
|
||||||
CheckMotion((xEvent *)NULL, pDev);
|
CheckMotion((xEvent *)NULL, pDev);
|
||||||
pDev = pDev->next;
|
pDev = pDev->next;
|
||||||
}
|
}
|
||||||
|
@ -2318,7 +2318,7 @@ NewCurrentScreen(DeviceIntPtr pDev, ScreenPtr newScreen, int x, int y)
|
||||||
{
|
{
|
||||||
SpritePtr pSprite = sprite;
|
SpritePtr pSprite = sprite;
|
||||||
#ifdef MPX
|
#ifdef MPX
|
||||||
if (IsMPDev(pDev))
|
if (MPHasCursor(pDev))
|
||||||
pSprite = &mpsprites[pDev->id];
|
pSprite = &mpsprites[pDev->id];
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
@ -3051,7 +3051,7 @@ ProcessPointerEvent (register xEvent *xE, register DeviceIntPtr mouse, int count
|
||||||
SpritePtr pSprite = sprite;
|
SpritePtr pSprite = sprite;
|
||||||
|
|
||||||
#ifdef MPX
|
#ifdef MPX
|
||||||
if (IsMPDev(mouse))
|
if (MPHasCursor(mouse))
|
||||||
pSprite = &mpsprites[mouse->id];
|
pSprite = &mpsprites[mouse->id];
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
|
@ -139,6 +139,7 @@ miDCInitialize (pScreen, screenFuncs)
|
||||||
miPointerScreenFuncPtr screenFuncs;
|
miPointerScreenFuncPtr screenFuncs;
|
||||||
{
|
{
|
||||||
miDCScreenPtr pScreenPriv;
|
miDCScreenPtr pScreenPriv;
|
||||||
|
miDCBufferPtr pBuffer;
|
||||||
|
|
||||||
if (miDCGeneration != serverGeneration)
|
if (miDCGeneration != serverGeneration)
|
||||||
{
|
{
|
||||||
|
@ -154,36 +155,33 @@ miDCInitialize (pScreen, screenFuncs)
|
||||||
/*
|
/*
|
||||||
* initialize the entire private structure to zeros
|
* initialize the entire private structure to zeros
|
||||||
*/
|
*/
|
||||||
|
#if !defined MPX
|
||||||
pScreenPriv->pCoreBuffer = (miDCBufferPtr)xalloc(sizeof(miDCBufferRec));
|
pScreenPriv->pCoreBuffer = (miDCBufferPtr)xalloc(sizeof(miDCBufferRec));
|
||||||
|
if (!pScreenPriv->pCoreBuffer)
|
||||||
pScreenPriv->pCoreBuffer->pSourceGC =
|
{
|
||||||
pScreenPriv->pCoreBuffer->pMaskGC =
|
xfree((pointer)pScreenPriv);
|
||||||
pScreenPriv->pCoreBuffer->pSaveGC =
|
return FALSE;
|
||||||
pScreenPriv->pCoreBuffer->pRestoreGC =
|
}
|
||||||
pScreenPriv->pCoreBuffer->pMoveGC =
|
pBuffer = pScreenPriv->pCoreBuffer;
|
||||||
pScreenPriv->pCoreBuffer->pPixSourceGC =
|
#else /* ifdef MPX */
|
||||||
pScreenPriv->pCoreBuffer->pPixMaskGC = NULL;
|
|
||||||
#ifdef ARGB_CURSOR
|
|
||||||
pScreenPriv->pCoreBuffer->pRootPicture = NULL;
|
|
||||||
pScreenPriv->pCoreBuffer->pTempPicture = NULL;
|
|
||||||
#endif
|
|
||||||
|
|
||||||
pScreenPriv->pCoreBuffer->pSave = pScreenPriv->pCoreBuffer->pTemp = NULL;
|
|
||||||
|
|
||||||
#ifdef MPX
|
|
||||||
{
|
{
|
||||||
int mpBufferIdx = 0;
|
int mpBufferIdx = 0;
|
||||||
|
|
||||||
pScreenPriv->pMPBuffers = (miDCBufferPtr)xalloc(MAX_DEVICES *
|
pScreenPriv->pMPBuffers = (miDCBufferPtr)xalloc(MAX_DEVICES *
|
||||||
sizeof(miDCBufferRec));
|
sizeof(miDCBufferRec));
|
||||||
|
if (!pScreenPriv->pMPBuffers)
|
||||||
|
{
|
||||||
|
xfree((pointer)pScreenPriv);
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
|
|
||||||
/* virtual core pointer ID is 1 */
|
/* virtual core pointer ID is 1 */
|
||||||
xfree(pScreenPriv->pCoreBuffer);
|
|
||||||
pScreenPriv->pCoreBuffer = &pScreenPriv->pMPBuffers[1];
|
pScreenPriv->pCoreBuffer = &pScreenPriv->pMPBuffers[1];
|
||||||
|
|
||||||
while (mpBufferIdx < MAX_DEVICES)
|
while(mpBufferIdx < MAX_DEVICES)
|
||||||
{
|
{
|
||||||
miDCBufferPtr pBuffer = &pScreenPriv->pMPBuffers[mpBufferIdx];
|
pBuffer = &pScreenPriv->pMPBuffers[mpBufferIdx];
|
||||||
|
#endif
|
||||||
pBuffer->pSourceGC =
|
pBuffer->pSourceGC =
|
||||||
pBuffer->pMaskGC =
|
pBuffer->pMaskGC =
|
||||||
pBuffer->pSaveGC =
|
pBuffer->pSaveGC =
|
||||||
|
@ -198,11 +196,13 @@ miDCInitialize (pScreen, screenFuncs)
|
||||||
|
|
||||||
pBuffer->pSave = pBuffer->pTemp = NULL;
|
pBuffer->pSave = pBuffer->pTemp = NULL;
|
||||||
|
|
||||||
|
#ifdef MPX
|
||||||
mpBufferIdx++;
|
mpBufferIdx++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
||||||
pScreenPriv->CloseScreen = pScreen->CloseScreen;
|
pScreenPriv->CloseScreen = pScreen->CloseScreen;
|
||||||
pScreen->CloseScreen = miDCCloseScreen;
|
pScreen->CloseScreen = miDCCloseScreen;
|
||||||
|
|
||||||
|
|
|
@ -71,13 +71,6 @@ static miPointerPtr miPointer;
|
||||||
*/
|
*/
|
||||||
static miPointerRec miMPPointers[MAX_DEVICES];
|
static miPointerRec miMPPointers[MAX_DEVICES];
|
||||||
|
|
||||||
|
|
||||||
/* Check if the given device is a MP device. */
|
|
||||||
_X_EXPORT Bool
|
|
||||||
IsMPDev(DeviceIntPtr pDev)
|
|
||||||
{
|
|
||||||
return (pDev && pDev->isMPDev && pDev->id < MAX_DEVICES);
|
|
||||||
}
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
static Bool miPointerRealizeCursor(DeviceIntPtr pDev, ScreenPtr pScreen,
|
static Bool miPointerRealizeCursor(DeviceIntPtr pDev, ScreenPtr pScreen,
|
||||||
|
|
108
mi/misprite.c
108
mi/misprite.c
|
@ -187,11 +187,9 @@ miSpriteInitialize (pScreen, cursorFuncs, screenFuncs)
|
||||||
miSpriteCursorFuncPtr cursorFuncs;
|
miSpriteCursorFuncPtr cursorFuncs;
|
||||||
miPointerScreenFuncPtr screenFuncs;
|
miPointerScreenFuncPtr screenFuncs;
|
||||||
{
|
{
|
||||||
#ifdef MPX
|
|
||||||
int mpCursorIdx = 0;
|
|
||||||
#endif
|
|
||||||
miSpriteScreenPtr pScreenPriv;
|
miSpriteScreenPtr pScreenPriv;
|
||||||
VisualPtr pVisual;
|
VisualPtr pVisual;
|
||||||
|
miCursorInfoPtr pCursorInfo;
|
||||||
|
|
||||||
if (!DamageSetup (pScreen))
|
if (!DamageSetup (pScreen))
|
||||||
return FALSE;
|
return FALSE;
|
||||||
|
@ -239,73 +237,71 @@ miSpriteInitialize (pScreen, cursorFuncs, screenFuncs)
|
||||||
|
|
||||||
pScreenPriv->BlockHandler = pScreen->BlockHandler;
|
pScreenPriv->BlockHandler = pScreen->BlockHandler;
|
||||||
|
|
||||||
|
#if !defined MPX
|
||||||
pScreenPriv->cp = (miCursorInfoPtr)xalloc(sizeof(miCursorInfoRec));
|
pScreenPriv->cp = (miCursorInfoPtr)xalloc(sizeof(miCursorInfoRec));
|
||||||
pScreenPriv->cp->pCursor = NULL;
|
if (!pScreenPriv->cp)
|
||||||
pScreenPriv->cp->x = 0;
|
{
|
||||||
pScreenPriv->cp->y = 0;
|
xfree((pointer)pScreenPriv);
|
||||||
pScreenPriv->cp->isUp = FALSE;
|
return FALSE;
|
||||||
pScreenPriv->cp->shouldBeUp = FALSE;
|
}
|
||||||
pScreenPriv->cp->pCacheWin = NullWindow;
|
pCursorInfo = pScreenPriv->cp;
|
||||||
pScreenPriv->cp->isInCacheWin = FALSE;
|
#else
|
||||||
pScreenPriv->cp->checkPixels = TRUE;
|
/* alloc and zero memory for all MPX cursors */
|
||||||
pScreenPriv->cp->pInstalledMap = NULL;
|
pScreenPriv->mpCursors = (miCursorInfoPtr)xalloc(MAX_DEVICES * sizeof(miCursorInfoRec));
|
||||||
pScreenPriv->cp->pColormap = NULL;
|
if (!pScreenPriv->mpCursors)
|
||||||
pScreenPriv->cp->colors[SOURCE_COLOR].red = 0;
|
{
|
||||||
pScreenPriv->cp->colors[SOURCE_COLOR].green = 0;
|
xfree((pointer)pScreenPriv->cp);
|
||||||
pScreenPriv->cp->colors[SOURCE_COLOR].blue = 0;
|
xfree((pointer)pScreenPriv);
|
||||||
pScreenPriv->cp->colors[MASK_COLOR].red = 0;
|
return FALSE;
|
||||||
pScreenPriv->cp->colors[MASK_COLOR].green = 0;
|
}
|
||||||
pScreenPriv->cp->colors[MASK_COLOR].blue = 0;
|
pScreenPriv->cp = &(pScreenPriv->mpCursors[1]);
|
||||||
|
|
||||||
|
{
|
||||||
|
int mpCursorIdx = 0;
|
||||||
|
while (mpCursorIdx < MAX_DEVICES)
|
||||||
|
{
|
||||||
|
pCursorInfo = &(pScreenPriv->mpCursors[mpCursorIdx]);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
pCursorInfo->pCursor = NULL;
|
||||||
|
pCursorInfo->x = 0;
|
||||||
|
pCursorInfo->y = 0;
|
||||||
|
pCursorInfo->isUp = FALSE;
|
||||||
|
pCursorInfo->shouldBeUp = FALSE;
|
||||||
|
pCursorInfo->pCacheWin = NullWindow;
|
||||||
|
pCursorInfo->isInCacheWin = FALSE;
|
||||||
|
pCursorInfo->checkPixels = TRUE;
|
||||||
|
pCursorInfo->pInstalledMap = NULL;
|
||||||
|
pCursorInfo->pColormap = NULL;
|
||||||
|
pCursorInfo->colors[SOURCE_COLOR].red = 0;
|
||||||
|
pCursorInfo->colors[SOURCE_COLOR].green = 0;
|
||||||
|
pCursorInfo->colors[SOURCE_COLOR].blue = 0;
|
||||||
|
pCursorInfo->colors[MASK_COLOR].red = 0;
|
||||||
|
pCursorInfo->colors[MASK_COLOR].green = 0;
|
||||||
|
pCursorInfo->colors[MASK_COLOR].blue = 0;
|
||||||
|
|
||||||
|
#ifdef MPX
|
||||||
|
mpCursorIdx++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
pScreenPriv->funcs = cursorFuncs;
|
pScreenPriv->funcs = cursorFuncs;
|
||||||
pScreen->devPrivates[miSpriteScreenIndex].ptr = (pointer) pScreenPriv;
|
pScreen->devPrivates[miSpriteScreenIndex].ptr = (pointer) pScreenPriv;
|
||||||
|
|
||||||
pScreen->CloseScreen = miSpriteCloseScreen;
|
pScreen->CloseScreen = miSpriteCloseScreen;
|
||||||
pScreen->GetImage = miSpriteGetImage;
|
pScreen->GetImage = miSpriteGetImage;
|
||||||
pScreen->GetSpans = miSpriteGetSpans;
|
pScreen->GetSpans = miSpriteGetSpans;
|
||||||
pScreen->SourceValidate = miSpriteSourceValidate;
|
pScreen->SourceValidate = miSpriteSourceValidate;
|
||||||
|
|
||||||
pScreen->CopyWindow = miSpriteCopyWindow;
|
pScreen->CopyWindow = miSpriteCopyWindow;
|
||||||
|
|
||||||
pScreen->SaveDoomedAreas = miSpriteSaveDoomedAreas;
|
pScreen->SaveDoomedAreas = miSpriteSaveDoomedAreas;
|
||||||
|
|
||||||
pScreen->InstallColormap = miSpriteInstallColormap;
|
pScreen->InstallColormap = miSpriteInstallColormap;
|
||||||
pScreen->StoreColors = miSpriteStoreColors;
|
pScreen->StoreColors = miSpriteStoreColors;
|
||||||
|
|
||||||
pScreen->BlockHandler = miSpriteBlockHandler;
|
pScreen->BlockHandler = miSpriteBlockHandler;
|
||||||
|
|
||||||
#ifdef MPX
|
|
||||||
/* alloc and zero memory for all MPX cursors */
|
|
||||||
pScreenPriv->mpCursors = (miCursorInfoPtr)xalloc(MAX_DEVICES * sizeof(miCursorInfoRec));
|
|
||||||
while (mpCursorIdx < MAX_DEVICES)
|
|
||||||
{
|
|
||||||
miCursorInfoPtr cursor = &(pScreenPriv->mpCursors[mpCursorIdx]);
|
|
||||||
|
|
||||||
cursor->id = mpCursorIdx;
|
|
||||||
cursor->pCursor = NULL;
|
|
||||||
cursor->x = 0;
|
|
||||||
cursor->y = 0;
|
|
||||||
cursor->isUp = FALSE;
|
|
||||||
cursor->shouldBeUp = FALSE;
|
|
||||||
cursor->pCacheWin = NullWindow;
|
|
||||||
cursor->isInCacheWin = FALSE;
|
|
||||||
cursor->checkPixels = TRUE;
|
|
||||||
cursor->pInstalledMap = NULL;
|
|
||||||
cursor->pColormap = NULL;
|
|
||||||
cursor->colors[SOURCE_COLOR].red = 0;
|
|
||||||
cursor->colors[SOURCE_COLOR].green = 0;
|
|
||||||
cursor->colors[SOURCE_COLOR].blue = 0;
|
|
||||||
cursor->colors[MASK_COLOR].red = 0;
|
|
||||||
cursor->colors[MASK_COLOR].green = 0;
|
|
||||||
cursor->colors[MASK_COLOR].blue = 0;
|
|
||||||
|
|
||||||
mpCursorIdx++;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* virtual core pointer has id 1, we might as well save the memory */
|
|
||||||
xfree(pScreenPriv->cp);
|
|
||||||
pScreenPriv->cp = &(pScreenPriv->mpCursors[1]);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
damageRegister = 0;
|
damageRegister = 0;
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue