mirror of
https://github.com/X11Libre/xserver.git
synced 2026-10-23 01:29:58 +00:00
devPrivates rework: since API is already broken, switch everything
over to new system. Need to update documentation and address some remaining vestiges of old system such as CursorRec structure, fb "offman" structure, and FontRec privates.
This commit is contained in:
parent
8554707326
commit
4017d31902
261 changed files with 1642 additions and 3957 deletions
|
|
@ -60,7 +60,7 @@
|
|||
#include "xf86cmap.h"
|
||||
|
||||
#define SCREEN_PROLOGUE(pScreen, field) ((pScreen)->field = \
|
||||
((CMapScreenPtr) (pScreen)->devPrivates[CMapScreenIndex].ptr)->field)
|
||||
((CMapScreenPtr)dixLookupPrivate(&(pScreen)->devPrivates, CMapScreenKey))->field)
|
||||
#define SCREEN_EPILOGUE(pScreen, field, wrapper)\
|
||||
((pScreen)->field = wrapper)
|
||||
|
||||
|
|
@ -102,9 +102,8 @@ typedef struct {
|
|||
int overscan;
|
||||
} CMapColormapRec, *CMapColormapPtr;
|
||||
|
||||
static unsigned long CMapGeneration = 0;
|
||||
static int CMapScreenIndex = -1;
|
||||
static int CMapColormapIndex = -1;
|
||||
static DevPrivateKey CMapScreenKey = NULL;
|
||||
static DevPrivateKey CMapColormapKey = &CMapColormapKey;
|
||||
|
||||
static void CMapInstallColormap(ColormapPtr);
|
||||
static void CMapStoreColors(ColormapPtr, int, xColorItem *);
|
||||
|
|
@ -119,7 +118,6 @@ static int CMapChangeGamma(int, Gamma);
|
|||
|
||||
static void ComputeGamma(CMapScreenPtr);
|
||||
static Bool CMapAllocateColormapPrivate(ColormapPtr);
|
||||
static Bool CMapInitDefMap(ColormapPtr,int);
|
||||
static void CMapRefreshColors(ColormapPtr, int, int*);
|
||||
static void CMapSetOverscan(ColormapPtr, int, int *);
|
||||
static void CMapReinstallMap(ColormapPtr);
|
||||
|
|
@ -145,13 +143,7 @@ _X_EXPORT Bool xf86HandleColormaps(
|
|||
if(!maxColors || !sigRGBbits || !loadPalette)
|
||||
return FALSE;
|
||||
|
||||
if(CMapGeneration != serverGeneration) {
|
||||
if(((CMapScreenIndex = AllocateScreenPrivateIndex()) < 0) ||
|
||||
((CMapColormapIndex = AllocateColormapPrivateIndex(
|
||||
CMapInitDefMap)) < 0))
|
||||
return FALSE;
|
||||
CMapGeneration = serverGeneration;
|
||||
}
|
||||
CMapScreenKey = &CMapScreenKey;
|
||||
|
||||
elements = 1 << sigRGBbits;
|
||||
|
||||
|
|
@ -169,7 +161,7 @@ _X_EXPORT Bool xf86HandleColormaps(
|
|||
return FALSE;
|
||||
}
|
||||
|
||||
pScreen->devPrivates[CMapScreenIndex].ptr = (pointer)pScreenPriv;
|
||||
dixSetPrivate(&pScreen->devPrivates, CMapScreenKey, pScreenPriv);
|
||||
|
||||
pScreenPriv->CloseScreen = pScreen->CloseScreen;
|
||||
pScreenPriv->CreateColormap = pScreen->CreateColormap;
|
||||
|
|
@ -225,12 +217,6 @@ _X_EXPORT Bool xf86HandleColormaps(
|
|||
return TRUE;
|
||||
}
|
||||
|
||||
static Bool
|
||||
CMapInitDefMap(ColormapPtr cmap, int index)
|
||||
{
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
|
||||
/**** Screen functions ****/
|
||||
|
||||
|
|
@ -254,8 +240,8 @@ CMapColormapUseMax(VisualPtr pVisual, CMapScreenPtr pScreenPriv)
|
|||
static Bool
|
||||
CMapAllocateColormapPrivate(ColormapPtr pmap)
|
||||
{
|
||||
CMapScreenPtr pScreenPriv =
|
||||
(CMapScreenPtr) pmap->pScreen->devPrivates[CMapScreenIndex].ptr;
|
||||
CMapScreenPtr pScreenPriv = (CMapScreenPtr)dixLookupPrivate(
|
||||
&pmap->pScreen->devPrivates, CMapScreenKey);
|
||||
CMapColormapPtr pColPriv;
|
||||
CMapLinkPtr pLink;
|
||||
int numColors;
|
||||
|
|
@ -274,7 +260,7 @@ CMapAllocateColormapPrivate(ColormapPtr pmap)
|
|||
return FALSE;
|
||||
}
|
||||
|
||||
pmap->devPrivates[CMapColormapIndex].ptr = (pointer)pColPriv;
|
||||
dixSetPrivate(&pmap->devPrivates, CMapColormapKey, pColPriv);
|
||||
|
||||
pColPriv->numColors = numColors;
|
||||
pColPriv->colors = colors;
|
||||
|
|
@ -296,8 +282,8 @@ static Bool
|
|||
CMapCreateColormap (ColormapPtr pmap)
|
||||
{
|
||||
ScreenPtr pScreen = pmap->pScreen;
|
||||
CMapScreenPtr pScreenPriv =
|
||||
(CMapScreenPtr)pScreen->devPrivates[CMapScreenIndex].ptr;
|
||||
CMapScreenPtr pScreenPriv = (CMapScreenPtr)dixLookupPrivate(
|
||||
&pScreen->devPrivates, CMapScreenKey);
|
||||
Bool ret = FALSE;
|
||||
|
||||
pScreen->CreateColormap = pScreenPriv->CreateColormap;
|
||||
|
|
@ -314,10 +300,10 @@ static void
|
|||
CMapDestroyColormap (ColormapPtr cmap)
|
||||
{
|
||||
ScreenPtr pScreen = cmap->pScreen;
|
||||
CMapScreenPtr pScreenPriv =
|
||||
(CMapScreenPtr) pScreen->devPrivates[CMapScreenIndex].ptr;
|
||||
CMapColormapPtr pColPriv =
|
||||
(CMapColormapPtr) cmap->devPrivates[CMapColormapIndex].ptr;
|
||||
CMapScreenPtr pScreenPriv = (CMapScreenPtr)dixLookupPrivate(
|
||||
&pScreen->devPrivates, CMapScreenKey);
|
||||
CMapColormapPtr pColPriv = (CMapColormapPtr)dixLookupPrivate(
|
||||
&cmap->devPrivates, CMapColormapKey);
|
||||
CMapLinkPtr prevLink = NULL, pLink = pScreenPriv->maps;
|
||||
|
||||
if(pColPriv) {
|
||||
|
|
@ -356,8 +342,8 @@ CMapStoreColors(
|
|||
){
|
||||
ScreenPtr pScreen = pmap->pScreen;
|
||||
VisualPtr pVisual = pmap->pVisual;
|
||||
CMapScreenPtr pScreenPriv =
|
||||
(CMapScreenPtr) pScreen->devPrivates[CMapScreenIndex].ptr;
|
||||
CMapScreenPtr pScreenPriv = (CMapScreenPtr)dixLookupPrivate(
|
||||
&pScreen->devPrivates, CMapScreenKey);
|
||||
int *indices = pScreenPriv->PreAllocIndices;
|
||||
int num = ndef;
|
||||
|
||||
|
|
@ -373,8 +359,8 @@ CMapStoreColors(
|
|||
return;
|
||||
|
||||
if(pVisual->class == DirectColor) {
|
||||
CMapColormapPtr pColPriv =
|
||||
(CMapColormapPtr) pmap->devPrivates[CMapColormapIndex].ptr;
|
||||
CMapColormapPtr pColPriv = (CMapColormapPtr)dixLookupPrivate(
|
||||
&pmap->devPrivates, CMapColormapKey);
|
||||
int i;
|
||||
|
||||
if (CMapColormapUseMax(pVisual, pScreenPriv)) {
|
||||
|
|
@ -431,8 +417,8 @@ CMapInstallColormap(ColormapPtr pmap)
|
|||
{
|
||||
ScreenPtr pScreen = pmap->pScreen;
|
||||
int index = pScreen->myNum;
|
||||
CMapScreenPtr pScreenPriv =
|
||||
(CMapScreenPtr) pScreen->devPrivates[CMapScreenIndex].ptr;
|
||||
CMapScreenPtr pScreenPriv = (CMapScreenPtr)dixLookupPrivate(
|
||||
&pScreen->devPrivates, CMapScreenKey);
|
||||
|
||||
if (pmap == miInstalledMaps[index])
|
||||
return;
|
||||
|
|
@ -462,8 +448,8 @@ static Bool
|
|||
CMapEnterVT(int index, int flags)
|
||||
{
|
||||
ScreenPtr pScreen = screenInfo.screens[index];
|
||||
CMapScreenPtr pScreenPriv =
|
||||
(CMapScreenPtr) pScreen->devPrivates[CMapScreenIndex].ptr;
|
||||
CMapScreenPtr pScreenPriv = (CMapScreenPtr)dixLookupPrivate(
|
||||
&pScreen->devPrivates, CMapScreenKey);
|
||||
|
||||
if((*pScreenPriv->EnterVT)(index, flags)) {
|
||||
if(miInstalledMaps[index])
|
||||
|
|
@ -478,8 +464,8 @@ static Bool
|
|||
CMapSwitchMode(int index, DisplayModePtr mode, int flags)
|
||||
{
|
||||
ScreenPtr pScreen = screenInfo.screens[index];
|
||||
CMapScreenPtr pScreenPriv =
|
||||
(CMapScreenPtr) pScreen->devPrivates[CMapScreenIndex].ptr;
|
||||
CMapScreenPtr pScreenPriv = (CMapScreenPtr)dixLookupPrivate(
|
||||
&pScreen->devPrivates, CMapScreenKey);
|
||||
|
||||
if((*pScreenPriv->SwitchMode)(index, mode, flags)) {
|
||||
if(miInstalledMaps[index])
|
||||
|
|
@ -494,8 +480,8 @@ static int
|
|||
CMapSetDGAMode(int index, int num, DGADevicePtr dev)
|
||||
{
|
||||
ScreenPtr pScreen = screenInfo.screens[index];
|
||||
CMapScreenPtr pScreenPriv =
|
||||
(CMapScreenPtr) pScreen->devPrivates[CMapScreenIndex].ptr;
|
||||
CMapScreenPtr pScreenPriv = (CMapScreenPtr)dixLookupPrivate(
|
||||
&pScreen->devPrivates, CMapScreenKey);
|
||||
int ret;
|
||||
|
||||
ret = (*pScreenPriv->SetDGAMode)(index, num, dev);
|
||||
|
|
@ -516,10 +502,10 @@ CMapSetDGAMode(int index, int num, DGADevicePtr dev)
|
|||
static void
|
||||
CMapReinstallMap(ColormapPtr pmap)
|
||||
{
|
||||
CMapScreenPtr pScreenPriv =
|
||||
(CMapScreenPtr) pmap->pScreen->devPrivates[CMapScreenIndex].ptr;
|
||||
CMapColormapPtr cmapPriv =
|
||||
(CMapColormapPtr) pmap->devPrivates[CMapColormapIndex].ptr;
|
||||
CMapScreenPtr pScreenPriv = (CMapScreenPtr)dixLookupPrivate(
|
||||
&pmap->pScreen->devPrivates, CMapScreenKey);
|
||||
CMapColormapPtr cmapPriv = (CMapColormapPtr)dixLookupPrivate(
|
||||
&pmap->devPrivates, CMapColormapKey);
|
||||
ScrnInfoPtr pScrn = xf86Screens[pmap->pScreen->myNum];
|
||||
int i = cmapPriv->numColors;
|
||||
int *indices = pScreenPriv->PreAllocIndices;
|
||||
|
|
@ -547,10 +533,10 @@ CMapReinstallMap(ColormapPtr pmap)
|
|||
static void
|
||||
CMapRefreshColors(ColormapPtr pmap, int defs, int* indices)
|
||||
{
|
||||
CMapScreenPtr pScreenPriv =
|
||||
(CMapScreenPtr) pmap->pScreen->devPrivates[CMapScreenIndex].ptr;
|
||||
CMapColormapPtr pColPriv =
|
||||
(CMapColormapPtr) pmap->devPrivates[CMapColormapIndex].ptr;
|
||||
CMapScreenPtr pScreenPriv = (CMapScreenPtr)dixLookupPrivate(
|
||||
&pmap->pScreen->devPrivates, CMapScreenKey);
|
||||
CMapColormapPtr pColPriv = (CMapColormapPtr)dixLookupPrivate(
|
||||
&pmap->devPrivates, CMapColormapKey);
|
||||
VisualPtr pVisual = pmap->pVisual;
|
||||
ScrnInfoPtr pScrn = xf86Screens[pmap->pScreen->myNum];
|
||||
int numColors, i;
|
||||
|
|
@ -681,10 +667,10 @@ CMapCompareColors(LOCO *color1, LOCO *color2)
|
|||
static void
|
||||
CMapSetOverscan(ColormapPtr pmap, int defs, int *indices)
|
||||
{
|
||||
CMapScreenPtr pScreenPriv =
|
||||
(CMapScreenPtr) pmap->pScreen->devPrivates[CMapScreenIndex].ptr;
|
||||
CMapColormapPtr pColPriv =
|
||||
(CMapColormapPtr) pmap->devPrivates[CMapColormapIndex].ptr;
|
||||
CMapScreenPtr pScreenPriv = (CMapScreenPtr)dixLookupPrivate(
|
||||
&pmap->pScreen->devPrivates, CMapScreenKey);
|
||||
CMapColormapPtr pColPriv = (CMapColormapPtr)dixLookupPrivate(
|
||||
&pmap->devPrivates, CMapColormapKey);
|
||||
ScrnInfoPtr pScrn = xf86Screens[pmap->pScreen->myNum];
|
||||
VisualPtr pVisual = pmap->pVisual;
|
||||
int i;
|
||||
|
|
@ -819,8 +805,8 @@ CMapSetOverscan(ColormapPtr pmap, int defs, int *indices)
|
|||
static void
|
||||
CMapUnwrapScreen(ScreenPtr pScreen)
|
||||
{
|
||||
CMapScreenPtr pScreenPriv =
|
||||
(CMapScreenPtr) pScreen->devPrivates[CMapScreenIndex].ptr;
|
||||
CMapScreenPtr pScreenPriv = (CMapScreenPtr)dixLookupPrivate(
|
||||
&pScreen->devPrivates, CMapScreenKey);
|
||||
ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum];
|
||||
|
||||
pScreen->CloseScreen = pScreenPriv->CloseScreen;
|
||||
|
|
@ -904,10 +890,11 @@ CMapChangeGamma(
|
|||
CMapLinkPtr pLink;
|
||||
|
||||
/* Is this sufficient checking ? */
|
||||
if(CMapScreenIndex == -1)
|
||||
if(CMapScreenKey == NULL)
|
||||
return BadImplementation;
|
||||
|
||||
pScreenPriv = (CMapScreenPtr)pScreen->devPrivates[CMapScreenIndex].ptr;
|
||||
pScreenPriv = (CMapScreenPtr)dixLookupPrivate(&pScreen->devPrivates,
|
||||
CMapScreenKey);
|
||||
if(!pScreenPriv)
|
||||
return BadImplementation;
|
||||
|
||||
|
|
@ -925,8 +912,8 @@ CMapChangeGamma(
|
|||
/* mark all colormaps on this screen */
|
||||
pLink = pScreenPriv->maps;
|
||||
while(pLink) {
|
||||
pColPriv =
|
||||
(CMapColormapPtr) pLink->cmap->devPrivates[CMapColormapIndex].ptr;
|
||||
pColPriv = (CMapColormapPtr)dixLookupPrivate(&pLink->cmap->devPrivates,
|
||||
CMapColormapKey);
|
||||
pColPriv->recalculate = TRUE;
|
||||
pLink = pLink->next;
|
||||
}
|
||||
|
|
@ -997,10 +984,11 @@ xf86ChangeGammaRamp(
|
|||
CMapScreenPtr pScreenPriv;
|
||||
CMapLinkPtr pLink;
|
||||
|
||||
if(CMapScreenIndex == -1)
|
||||
if(CMapScreenKey == NULL)
|
||||
return BadImplementation;
|
||||
|
||||
pScreenPriv = (CMapScreenPtr)pScreen->devPrivates[CMapScreenIndex].ptr;
|
||||
pScreenPriv = (CMapScreenPtr)dixLookupPrivate(&pScreen->devPrivates,
|
||||
CMapScreenKey);
|
||||
if(!pScreenPriv)
|
||||
return BadImplementation;
|
||||
|
||||
|
|
@ -1012,8 +1000,8 @@ xf86ChangeGammaRamp(
|
|||
/* mark all colormaps on this screen */
|
||||
pLink = pScreenPriv->maps;
|
||||
while(pLink) {
|
||||
pColPriv =
|
||||
(CMapColormapPtr) pLink->cmap->devPrivates[CMapColormapIndex].ptr;
|
||||
pColPriv = (CMapColormapPtr)dixLookupPrivate(&pLink->cmap->devPrivates,
|
||||
CMapColormapKey);
|
||||
pColPriv->recalculate = TRUE;
|
||||
pLink = pLink->next;
|
||||
}
|
||||
|
|
@ -1056,9 +1044,10 @@ xf86GetGammaRampSize(ScreenPtr pScreen)
|
|||
{
|
||||
CMapScreenPtr pScreenPriv;
|
||||
|
||||
if(CMapScreenIndex == -1) return 0;
|
||||
if(CMapScreenKey == NULL) return 0;
|
||||
|
||||
pScreenPriv = (CMapScreenPtr)pScreen->devPrivates[CMapScreenIndex].ptr;
|
||||
pScreenPriv = (CMapScreenPtr)dixLookupPrivate(&pScreen->devPrivates,
|
||||
CMapScreenKey);
|
||||
if(!pScreenPriv) return 0;
|
||||
|
||||
return pScreenPriv->gammaElements;
|
||||
|
|
@ -1076,10 +1065,11 @@ xf86GetGammaRamp(
|
|||
LOCO *entry;
|
||||
int shift, sigbits;
|
||||
|
||||
if(CMapScreenIndex == -1)
|
||||
if(CMapScreenKey == NULL)
|
||||
return BadImplementation;
|
||||
|
||||
pScreenPriv = (CMapScreenPtr)pScreen->devPrivates[CMapScreenIndex].ptr;
|
||||
pScreenPriv = (CMapScreenPtr)dixLookupPrivate(&pScreen->devPrivates,
|
||||
CMapScreenKey);
|
||||
if(!pScreenPriv)
|
||||
return BadImplementation;
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue