diff options
Diffstat (limited to 'hw/dmx/dmxcmap.c')
-rw-r--r-- | hw/dmx/dmxcmap.c | 136 |
1 files changed, 73 insertions, 63 deletions
diff --git a/hw/dmx/dmxcmap.c b/hw/dmx/dmxcmap.c index ca9ef1ff9..450627b40 100644 --- a/hw/dmx/dmxcmap.c +++ b/hw/dmx/dmxcmap.c @@ -46,14 +46,15 @@ #include "micmap.h" -static Bool dmxAllocateColormapPrivates(ColormapPtr pColormap) +static Bool +dmxAllocateColormapPrivates(ColormapPtr pColormap) { - dmxColormapPrivPtr pCmapPriv; + dmxColormapPrivPtr pCmapPriv; - pCmapPriv = (dmxColormapPrivPtr)malloc(sizeof(*pCmapPriv)); + pCmapPriv = (dmxColormapPrivPtr) malloc(sizeof(*pCmapPriv)); if (!pCmapPriv) - return FALSE; - pCmapPriv->cmap = (Colormap)0; + return FALSE; + pCmapPriv->cmap = (Colormap) 0; DMX_SET_COLORMAP_PRIV(pColormap, pCmapPriv); @@ -61,63 +62,66 @@ static Bool dmxAllocateColormapPrivates(ColormapPtr pColormap) } /** Create \a pColormap on the back-end server. */ -Bool dmxBECreateColormap(ColormapPtr pColormap) +Bool +dmxBECreateColormap(ColormapPtr pColormap) { - ScreenPtr pScreen = pColormap->pScreen; - DMXScreenInfo *dmxScreen = &dmxScreens[pScreen->myNum]; - dmxColormapPrivPtr pCmapPriv = DMX_GET_COLORMAP_PRIV(pColormap); - VisualPtr pVisual = pColormap->pVisual; - Visual *visual = dmxLookupVisual(pScreen, pVisual); + ScreenPtr pScreen = pColormap->pScreen; + DMXScreenInfo *dmxScreen = &dmxScreens[pScreen->myNum]; + dmxColormapPrivPtr pCmapPriv = DMX_GET_COLORMAP_PRIV(pColormap); + VisualPtr pVisual = pColormap->pVisual; + Visual *visual = dmxLookupVisual(pScreen, pVisual); if (visual) { - pCmapPriv->cmap = XCreateColormap(dmxScreen->beDisplay, - dmxScreen->scrnWin, - visual, - (pVisual->class & DynamicClass ? - AllocAll : AllocNone)); - return pCmapPriv->cmap != 0; + pCmapPriv->cmap = XCreateColormap(dmxScreen->beDisplay, + dmxScreen->scrnWin, + visual, + (pVisual->class & DynamicClass ? + AllocAll : AllocNone)); + return pCmapPriv->cmap != 0; } else { - dmxLog(dmxWarning, "dmxBECreateColormap: No visual found\n"); - return 0; + dmxLog(dmxWarning, "dmxBECreateColormap: No visual found\n"); + return 0; } } /** Create colormap on back-end server associated with \a pColormap's * screen. */ -Bool dmxCreateColormap(ColormapPtr pColormap) +Bool +dmxCreateColormap(ColormapPtr pColormap) { - ScreenPtr pScreen = pColormap->pScreen; - DMXScreenInfo *dmxScreen = &dmxScreens[pScreen->myNum]; - Bool ret = TRUE; + ScreenPtr pScreen = pColormap->pScreen; + DMXScreenInfo *dmxScreen = &dmxScreens[pScreen->myNum]; + Bool ret = TRUE; if (!dmxAllocateColormapPrivates(pColormap)) - return FALSE; + return FALSE; if (dmxScreen->beDisplay) { - if (!dmxBECreateColormap(pColormap)) - return FALSE; + if (!dmxBECreateColormap(pColormap)) + return FALSE; } DMX_UNWRAP(CreateColormap, dmxScreen, pScreen); if (pScreen->CreateColormap) - ret = pScreen->CreateColormap(pColormap); + ret = pScreen->CreateColormap(pColormap); DMX_WRAP(CreateColormap, dmxCreateColormap, dmxScreen, pScreen); return ret; } /** Destroy \a pColormap on the back-end server. */ -Bool dmxBEFreeColormap(ColormapPtr pColormap) +Bool +dmxBEFreeColormap(ColormapPtr pColormap) { - ScreenPtr pScreen = pColormap->pScreen; - DMXScreenInfo *dmxScreen = &dmxScreens[pScreen->myNum]; - dmxColormapPrivPtr pCmapPriv = DMX_GET_COLORMAP_PRIV(pColormap); + ScreenPtr pScreen = pColormap->pScreen; + DMXScreenInfo *dmxScreen = &dmxScreens[pScreen->myNum]; + dmxColormapPrivPtr pCmapPriv = DMX_GET_COLORMAP_PRIV(pColormap); if (pCmapPriv->cmap) { - XFreeColormap(dmxScreen->beDisplay, pCmapPriv->cmap); - pCmapPriv->cmap = (Colormap)0; - return TRUE; + XFreeColormap(dmxScreen->beDisplay, pCmapPriv->cmap); + pCmapPriv->cmap = (Colormap) 0; + return TRUE; } return FALSE; @@ -125,88 +129,94 @@ Bool dmxBEFreeColormap(ColormapPtr pColormap) /** Destroy colormap on back-end server associated with \a pColormap's * screen. */ -void dmxDestroyColormap(ColormapPtr pColormap) +void +dmxDestroyColormap(ColormapPtr pColormap) { - ScreenPtr pScreen = pColormap->pScreen; - DMXScreenInfo *dmxScreen = &dmxScreens[pScreen->myNum]; - dmxColormapPrivPtr pCmapPriv = DMX_GET_COLORMAP_PRIV(pColormap); + ScreenPtr pScreen = pColormap->pScreen; + DMXScreenInfo *dmxScreen = &dmxScreens[pScreen->myNum]; + dmxColormapPrivPtr pCmapPriv = DMX_GET_COLORMAP_PRIV(pColormap); if (dmxScreen->beDisplay) - dmxBEFreeColormap(pColormap); + dmxBEFreeColormap(pColormap); free(pCmapPriv); DMX_SET_COLORMAP_PRIV(pColormap, NULL); DMX_UNWRAP(DestroyColormap, dmxScreen, pScreen); if (pScreen->DestroyColormap) - pScreen->DestroyColormap(pColormap); + pScreen->DestroyColormap(pColormap); DMX_WRAP(DestroyColormap, dmxDestroyColormap, dmxScreen, pScreen); } /** Install colormap on back-end server associated with \a pColormap's * screen. */ -void dmxInstallColormap(ColormapPtr pColormap) +void +dmxInstallColormap(ColormapPtr pColormap) { - ScreenPtr pScreen = pColormap->pScreen; - DMXScreenInfo *dmxScreen = &dmxScreens[pScreen->myNum]; - dmxColormapPrivPtr pCmapPriv = DMX_GET_COLORMAP_PRIV(pColormap); + ScreenPtr pScreen = pColormap->pScreen; + DMXScreenInfo *dmxScreen = &dmxScreens[pScreen->myNum]; + dmxColormapPrivPtr pCmapPriv = DMX_GET_COLORMAP_PRIV(pColormap); DMX_UNWRAP(InstallColormap, dmxScreen, pScreen); if (pScreen->InstallColormap) - pScreen->InstallColormap(pColormap); + pScreen->InstallColormap(pColormap); DMX_WRAP(InstallColormap, dmxInstallColormap, dmxScreen, pScreen); if (dmxScreen->beDisplay) { - XInstallColormap(dmxScreen->beDisplay, pCmapPriv->cmap); - dmxSync(dmxScreen, FALSE); + XInstallColormap(dmxScreen->beDisplay, pCmapPriv->cmap); + dmxSync(dmxScreen, FALSE); } } /** Store colors in \a pColormap on back-end server associated with \a * pColormap's screen. */ -void dmxStoreColors(ColormapPtr pColormap, int ndef, xColorItem *pdef) +void +dmxStoreColors(ColormapPtr pColormap, int ndef, xColorItem * pdef) { - ScreenPtr pScreen = pColormap->pScreen; - DMXScreenInfo *dmxScreen = &dmxScreens[pScreen->myNum]; - dmxColormapPrivPtr pCmapPriv = DMX_GET_COLORMAP_PRIV(pColormap); + ScreenPtr pScreen = pColormap->pScreen; + DMXScreenInfo *dmxScreen = &dmxScreens[pScreen->myNum]; + dmxColormapPrivPtr pCmapPriv = DMX_GET_COLORMAP_PRIV(pColormap); if (dmxScreen->beDisplay && (pColormap->pVisual->class & DynamicClass)) { XColor *color = malloc(sizeof(*color) * ndef); - int i; - + int i; + if (color) { for (i = 0; i < ndef; i++) { color[i].pixel = pdef[i].pixel; - color[i].red = pdef[i].red; - color[i].blue = pdef[i].blue; + color[i].red = pdef[i].red; + color[i].blue = pdef[i].blue; color[i].green = pdef[i].green; color[i].flags = pdef[i].flags; - color[i].pad = pdef[i].pad; + color[i].pad = pdef[i].pad; } XStoreColors(dmxScreen->beDisplay, pCmapPriv->cmap, color, ndef); free(color); - } else { /* xalloc failed, so fallback */ + } + else { /* xalloc failed, so fallback */ XColor c; + for (i = 0; i < ndef; i++) { c.pixel = pdef[i].pixel; - c.red = pdef[i].red; - c.blue = pdef[i].blue; + c.red = pdef[i].red; + c.blue = pdef[i].blue; c.green = pdef[i].green; c.flags = pdef[i].flags; - c.pad = pdef[i].pad; + c.pad = pdef[i].pad; XStoreColor(dmxScreen->beDisplay, pCmapPriv->cmap, &c); } } - dmxSync(dmxScreen, FALSE); + dmxSync(dmxScreen, FALSE); } DMX_UNWRAP(StoreColors, dmxScreen, pScreen); if (pScreen->StoreColors) - pScreen->StoreColors(pColormap, ndef, pdef); + pScreen->StoreColors(pColormap, ndef, pdef); DMX_WRAP(StoreColors, dmxStoreColors, dmxScreen, pScreen); } /** Create the DMX server's default colormap. */ -Bool dmxCreateDefColormap(ScreenPtr pScreen) +Bool +dmxCreateDefColormap(ScreenPtr pScreen) { return miCreateDefColormap(pScreen); } |