summaryrefslogtreecommitdiff
path: root/hw/xwin/wincmap.c
diff options
context:
space:
mode:
Diffstat (limited to 'hw/xwin/wincmap.c')
-rw-r--r--hw/xwin/wincmap.c809
1 files changed, 370 insertions, 439 deletions
diff --git a/hw/xwin/wincmap.c b/hw/xwin/wincmap.c
index d526a9201..610437ad4 100644
--- a/hw/xwin/wincmap.c
+++ b/hw/xwin/wincmap.c
@@ -36,59 +36,56 @@
#endif
#include "win.h"
-
/*
* Local prototypes
*/
static int
-winListInstalledColormaps (ScreenPtr pScreen, Colormap *pmaps);
+ winListInstalledColormaps(ScreenPtr pScreen, Colormap * pmaps);
static void
-winStoreColors (ColormapPtr pmap, int ndef, xColorItem *pdefs);
+ winStoreColors(ColormapPtr pmap, int ndef, xColorItem * pdefs);
static void
-winInstallColormap (ColormapPtr pmap);
+ winInstallColormap(ColormapPtr pmap);
static void
-winUninstallColormap (ColormapPtr pmap);
+ winUninstallColormap(ColormapPtr pmap);
static void
-winResolveColor (unsigned short *pred,
- unsigned short *pgreen,
- unsigned short *pblue,
- VisualPtr pVisual);
+
+winResolveColor(unsigned short *pred,
+ unsigned short *pgreen,
+ unsigned short *pblue, VisualPtr pVisual);
static Bool
-winCreateColormap (ColormapPtr pmap);
+ winCreateColormap(ColormapPtr pmap);
static void
-winDestroyColormap (ColormapPtr pmap);
+ winDestroyColormap(ColormapPtr pmap);
static Bool
-winGetPaletteDIB (ScreenPtr pScreen, ColormapPtr pcmap);
+ winGetPaletteDIB(ScreenPtr pScreen, ColormapPtr pcmap);
static Bool
-winGetPaletteDD (ScreenPtr pScreen, ColormapPtr pcmap);
-
+ winGetPaletteDD(ScreenPtr pScreen, ColormapPtr pcmap);
/*
* Set screen functions for colormaps
*/
void
-winSetColormapFunctions (ScreenPtr pScreen)
+winSetColormapFunctions(ScreenPtr pScreen)
{
- pScreen->CreateColormap = winCreateColormap;
- pScreen->DestroyColormap = winDestroyColormap;
- pScreen->InstallColormap = winInstallColormap;
- pScreen->UninstallColormap = winUninstallColormap;
- pScreen->ListInstalledColormaps = winListInstalledColormaps;
- pScreen->StoreColors = winStoreColors;
- pScreen->ResolveColor = winResolveColor;
+ pScreen->CreateColormap = winCreateColormap;
+ pScreen->DestroyColormap = winDestroyColormap;
+ pScreen->InstallColormap = winInstallColormap;
+ pScreen->UninstallColormap = winUninstallColormap;
+ pScreen->ListInstalledColormaps = winListInstalledColormaps;
+ pScreen->StoreColors = winStoreColors;
+ pScreen->ResolveColor = winResolveColor;
}
-
/* See Porting Layer Definition - p. 30 */
/*
* Walk the list of installed colormaps, filling the pmaps list
@@ -96,576 +93,510 @@ winSetColormapFunctions (ScreenPtr pScreen)
* a count of the total number of installed maps.
*/
static int
-winListInstalledColormaps (ScreenPtr pScreen, Colormap *pmaps)
+winListInstalledColormaps(ScreenPtr pScreen, Colormap * pmaps)
{
- winScreenPriv(pScreen);
-
- /*
- * There will only be one installed colormap, so we only need
- * to return one id, and the count of installed maps will always
- * be one.
- */
- *pmaps = pScreenPriv->pcmapInstalled->mid;
- return 1;
+ winScreenPriv(pScreen);
+
+ /*
+ * There will only be one installed colormap, so we only need
+ * to return one id, and the count of installed maps will always
+ * be one.
+ */
+ *pmaps = pScreenPriv->pcmapInstalled->mid;
+ return 1;
}
-
/* See Porting Layer Definition - p. 30 */
/* See Programming Windows - p. 663 */
static void
-winInstallColormap (ColormapPtr pColormap)
+winInstallColormap(ColormapPtr pColormap)
{
- ScreenPtr pScreen = pColormap->pScreen;
- winScreenPriv(pScreen);
- ColormapPtr oldpmap = pScreenPriv->pcmapInstalled;
+ ScreenPtr pScreen = pColormap->pScreen;
+
+ winScreenPriv(pScreen);
+ ColormapPtr oldpmap = pScreenPriv->pcmapInstalled;
#if CYGDEBUG
- winDebug ("winInstallColormap\n");
+ winDebug("winInstallColormap\n");
#endif
-
- /* Did the colormap actually change? */
- if (pColormap != oldpmap)
- {
+
+ /* Did the colormap actually change? */
+ if (pColormap != oldpmap) {
#if CYGDEBUG
- winDebug ("winInstallColormap - Colormap has changed, attempt "
- "to install.\n");
+ winDebug("winInstallColormap - Colormap has changed, attempt "
+ "to install.\n");
#endif
-
- /* Was there a previous colormap? */
- if (oldpmap != (ColormapPtr) None)
- {
- /* There was a previous colormap; tell clients it is gone */
- WalkTree (pColormap->pScreen, TellLostMap, (char *)&oldpmap->mid);
- }
-
- /* Install new colormap */
- pScreenPriv->pcmapInstalled = pColormap;
- WalkTree (pColormap->pScreen, TellGainedMap, (char *)&pColormap->mid);
-
- /* Call the engine specific colormap install procedure */
- if (!((*pScreenPriv->pwinInstallColormap) (pColormap)))
- {
- winErrorFVerb (2, "winInstallColormap - Screen specific colormap install "
- "procedure failed. Continuing, but colors may be "
- "messed up from now on.\n");
- }
+
+ /* Was there a previous colormap? */
+ if (oldpmap != (ColormapPtr) None) {
+ /* There was a previous colormap; tell clients it is gone */
+ WalkTree(pColormap->pScreen, TellLostMap, (char *) &oldpmap->mid);
+ }
+
+ /* Install new colormap */
+ pScreenPriv->pcmapInstalled = pColormap;
+ WalkTree(pColormap->pScreen, TellGainedMap, (char *) &pColormap->mid);
+
+ /* Call the engine specific colormap install procedure */
+ if (!((*pScreenPriv->pwinInstallColormap) (pColormap))) {
+ winErrorFVerb(2,
+ "winInstallColormap - Screen specific colormap install "
+ "procedure failed. Continuing, but colors may be "
+ "messed up from now on.\n");
+ }
}
- /* Save a pointer to the newly installed colormap */
- pScreenPriv->pcmapInstalled = pColormap;
+ /* Save a pointer to the newly installed colormap */
+ pScreenPriv->pcmapInstalled = pColormap;
}
-
/* See Porting Layer Definition - p. 30 */
static void
-winUninstallColormap (ColormapPtr pmap)
+winUninstallColormap(ColormapPtr pmap)
{
- winScreenPriv(pmap->pScreen);
- ColormapPtr curpmap = pScreenPriv->pcmapInstalled;
+ winScreenPriv(pmap->pScreen);
+ ColormapPtr curpmap = pScreenPriv->pcmapInstalled;
#if CYGDEBUG
- winDebug ("winUninstallColormap\n");
+ winDebug("winUninstallColormap\n");
#endif
- /* Is the colormap currently installed? */
- if (pmap != curpmap)
- {
- /* Colormap not installed, nothing to do */
- return;
+ /* Is the colormap currently installed? */
+ if (pmap != curpmap) {
+ /* Colormap not installed, nothing to do */
+ return;
}
-
- /* Clear the installed colormap flag */
- pScreenPriv->pcmapInstalled = NULL;
-
- /*
- * NOTE: The default colormap does not get "uninstalled" before
- * it is destroyed.
- */
-
- /* Install the default cmap in place of the cmap to be uninstalled */
- if (pmap->mid != pmap->pScreen->defColormap)
- {
- dixLookupResourceByType((pointer) &curpmap, pmap->pScreen->defColormap,
- RT_COLORMAP, NullClient, DixUnknownAccess);
- (*pmap->pScreen->InstallColormap) (curpmap);
+
+ /* Clear the installed colormap flag */
+ pScreenPriv->pcmapInstalled = NULL;
+
+ /*
+ * NOTE: The default colormap does not get "uninstalled" before
+ * it is destroyed.
+ */
+
+ /* Install the default cmap in place of the cmap to be uninstalled */
+ if (pmap->mid != pmap->pScreen->defColormap) {
+ dixLookupResourceByType((pointer) &curpmap, pmap->pScreen->defColormap,
+ RT_COLORMAP, NullClient, DixUnknownAccess);
+ (*pmap->pScreen->InstallColormap) (curpmap);
}
}
-
/* See Porting Layer Definition - p. 30 */
static void
-winStoreColors (ColormapPtr pmap,
- int ndef,
- xColorItem *pdefs)
+winStoreColors(ColormapPtr pmap, int ndef, xColorItem * pdefs)
{
- ScreenPtr pScreen = pmap->pScreen;
- winScreenPriv(pScreen);
- winCmapPriv(pmap);
- int i;
- unsigned short nRed, nGreen, nBlue;
+ ScreenPtr pScreen = pmap->pScreen;
+
+ winScreenPriv(pScreen);
+ winCmapPriv(pmap);
+ int i;
+ unsigned short nRed, nGreen, nBlue;
#if CYGDEBUG
- if (ndef != 1)
- winDebug ("winStoreColors - ndef: %d\n",
- ndef);
+ if (ndef != 1)
+ winDebug("winStoreColors - ndef: %d\n", ndef);
#endif
- /* Save the new colors in the colormap privates */
- for (i = 0; i < ndef; ++i)
- {
- /* Adjust the colors from the X color spec to the Windows color spec */
- nRed = pdefs[i].red >> 8;
- nGreen = pdefs[i].green >> 8;
- nBlue = pdefs[i].blue >> 8;
-
- /* Copy the colors to a palette entry table */
- pCmapPriv->peColors[pdefs[0].pixel + i].peRed = nRed;
- pCmapPriv->peColors[pdefs[0].pixel + i].peGreen = nGreen;
- pCmapPriv->peColors[pdefs[0].pixel + i].peBlue = nBlue;
-
- /* Copy the colors to a RGBQUAD table */
- pCmapPriv->rgbColors[pdefs[0].pixel + i].rgbRed = nRed;
- pCmapPriv->rgbColors[pdefs[0].pixel + i].rgbGreen = nGreen;
- pCmapPriv->rgbColors[pdefs[0].pixel + i].rgbBlue = nBlue;
+ /* Save the new colors in the colormap privates */
+ for (i = 0; i < ndef; ++i) {
+ /* Adjust the colors from the X color spec to the Windows color spec */
+ nRed = pdefs[i].red >> 8;
+ nGreen = pdefs[i].green >> 8;
+ nBlue = pdefs[i].blue >> 8;
+
+ /* Copy the colors to a palette entry table */
+ pCmapPriv->peColors[pdefs[0].pixel + i].peRed = nRed;
+ pCmapPriv->peColors[pdefs[0].pixel + i].peGreen = nGreen;
+ pCmapPriv->peColors[pdefs[0].pixel + i].peBlue = nBlue;
+
+ /* Copy the colors to a RGBQUAD table */
+ pCmapPriv->rgbColors[pdefs[0].pixel + i].rgbRed = nRed;
+ pCmapPriv->rgbColors[pdefs[0].pixel + i].rgbGreen = nGreen;
+ pCmapPriv->rgbColors[pdefs[0].pixel + i].rgbBlue = nBlue;
#if CYGDEBUG
- winDebug ("winStoreColors - nRed %d nGreen %d nBlue %d\n",
- nRed, nGreen, nBlue);
+ winDebug("winStoreColors - nRed %d nGreen %d nBlue %d\n",
+ nRed, nGreen, nBlue);
#endif
}
- /* Call the engine specific store colors procedure */
- if (!((pScreenPriv->pwinStoreColors) (pmap, ndef, pdefs)))
- {
- winErrorFVerb (2, "winStoreColors - Engine cpecific color storage procedure "
- "failed. Continuing, but colors may be messed up from now "
- "on.\n");
+ /* Call the engine specific store colors procedure */
+ if (!((pScreenPriv->pwinStoreColors) (pmap, ndef, pdefs))) {
+ winErrorFVerb(2,
+ "winStoreColors - Engine cpecific color storage procedure "
+ "failed. Continuing, but colors may be messed up from now "
+ "on.\n");
}
}
-
/* See Porting Layer Definition - p. 30 */
static void
-winResolveColor (unsigned short *pred,
- unsigned short *pgreen,
- unsigned short *pblue,
- VisualPtr pVisual)
+winResolveColor(unsigned short *pred,
+ unsigned short *pgreen,
+ unsigned short *pblue, VisualPtr pVisual)
{
#if CYGDEBUG
- winDebug ("winResolveColor ()\n");
+ winDebug("winResolveColor ()\n");
#endif
- miResolveColor (pred, pgreen, pblue, pVisual);
+ miResolveColor(pred, pgreen, pblue, pVisual);
}
-
/* See Porting Layer Definition - p. 29 */
static Bool
-winCreateColormap (ColormapPtr pmap)
+winCreateColormap(ColormapPtr pmap)
{
- winPrivCmapPtr pCmapPriv = NULL;
- ScreenPtr pScreen = pmap->pScreen;
- winScreenPriv(pScreen);
+ winPrivCmapPtr pCmapPriv = NULL;
+ ScreenPtr pScreen = pmap->pScreen;
+
+ winScreenPriv(pScreen);
#if CYGDEBUG
- winDebug ("winCreateColormap\n");
+ winDebug("winCreateColormap\n");
#endif
- /* Allocate colormap privates */
- if (!winAllocateCmapPrivates (pmap))
- {
- ErrorF ("winCreateColorma - Couldn't allocate cmap privates\n");
- return FALSE;
+ /* Allocate colormap privates */
+ if (!winAllocateCmapPrivates(pmap)) {
+ ErrorF("winCreateColorma - Couldn't allocate cmap privates\n");
+ return FALSE;
}
- /* Get a pointer to the newly allocated privates */
- pCmapPriv = winGetCmapPriv (pmap);
-
- /*
- * FIXME: This is some evil hackery to help in handling some X clients
- * that expect the top pixel to be white. This "help" only lasts until
- * some client overwrites the top colormap entry.
- *
- * We don't want to actually allocate the top entry, as that causes
- * problems with X clients that need 7 planes (128 colors) in the default
- * colormap, such as Magic 7.1.
- */
- pCmapPriv->rgbColors[WIN_NUM_PALETTE_ENTRIES - 1].rgbRed = 255;
- pCmapPriv->rgbColors[WIN_NUM_PALETTE_ENTRIES - 1].rgbGreen = 255;
- pCmapPriv->rgbColors[WIN_NUM_PALETTE_ENTRIES - 1].rgbBlue = 255;
- pCmapPriv->peColors[WIN_NUM_PALETTE_ENTRIES - 1].peRed = 255;
- pCmapPriv->peColors[WIN_NUM_PALETTE_ENTRIES - 1].peGreen = 255;
- pCmapPriv->peColors[WIN_NUM_PALETTE_ENTRIES - 1].peBlue = 255;
-
- /* Call the engine specific colormap initialization procedure */
- if (!((*pScreenPriv->pwinCreateColormap) (pmap)))
- {
- ErrorF ("winCreateColormap - Engine specific colormap creation "
- "procedure failed. Aborting.\n");
- return FALSE;
+ /* Get a pointer to the newly allocated privates */
+ pCmapPriv = winGetCmapPriv(pmap);
+
+ /*
+ * FIXME: This is some evil hackery to help in handling some X clients
+ * that expect the top pixel to be white. This "help" only lasts until
+ * some client overwrites the top colormap entry.
+ *
+ * We don't want to actually allocate the top entry, as that causes
+ * problems with X clients that need 7 planes (128 colors) in the default
+ * colormap, such as Magic 7.1.
+ */
+ pCmapPriv->rgbColors[WIN_NUM_PALETTE_ENTRIES - 1].rgbRed = 255;
+ pCmapPriv->rgbColors[WIN_NUM_PALETTE_ENTRIES - 1].rgbGreen = 255;
+ pCmapPriv->rgbColors[WIN_NUM_PALETTE_ENTRIES - 1].rgbBlue = 255;
+ pCmapPriv->peColors[WIN_NUM_PALETTE_ENTRIES - 1].peRed = 255;
+ pCmapPriv->peColors[WIN_NUM_PALETTE_ENTRIES - 1].peGreen = 255;
+ pCmapPriv->peColors[WIN_NUM_PALETTE_ENTRIES - 1].peBlue = 255;
+
+ /* Call the engine specific colormap initialization procedure */
+ if (!((*pScreenPriv->pwinCreateColormap) (pmap))) {
+ ErrorF("winCreateColormap - Engine specific colormap creation "
+ "procedure failed. Aborting.\n");
+ return FALSE;
}
- return TRUE;
+ return TRUE;
}
-
/* See Porting Layer Definition - p. 29, 30 */
static void
-winDestroyColormap (ColormapPtr pColormap)
+winDestroyColormap(ColormapPtr pColormap)
{
- winScreenPriv(pColormap->pScreen);
- winCmapPriv(pColormap);
-
- /* Call the engine specific colormap destruction procedure */
- if (!((*pScreenPriv->pwinDestroyColormap) (pColormap)))
- {
- winErrorFVerb (2, "winDestroyColormap - Engine specific colormap destruction "
- "procedure failed. Continuing, but it is possible that memory "
- "was leaked, or that colors will be messed up from now on.\n");
+ winScreenPriv(pColormap->pScreen);
+ winCmapPriv(pColormap);
+
+ /* Call the engine specific colormap destruction procedure */
+ if (!((*pScreenPriv->pwinDestroyColormap) (pColormap))) {
+ winErrorFVerb(2,
+ "winDestroyColormap - Engine specific colormap destruction "
+ "procedure failed. Continuing, but it is possible that memory "
+ "was leaked, or that colors will be messed up from now on.\n");
}
- /* Free the colormap privates */
- free (pCmapPriv);
- winSetCmapPriv (pColormap, NULL);
+ /* Free the colormap privates */
+ free(pCmapPriv);
+ winSetCmapPriv(pColormap, NULL);
#if CYGDEBUG
- winDebug ("winDestroyColormap - Returning\n");
+ winDebug("winDestroyColormap - Returning\n");
#endif
}
-
/*
* Internal function to load the palette used by the Shadow DIB
*/
static Bool
-winGetPaletteDIB (ScreenPtr pScreen, ColormapPtr pcmap)
+winGetPaletteDIB(ScreenPtr pScreen, ColormapPtr pcmap)
{
- winScreenPriv(pScreen);
- int i;
- Pixel pixel; /* Pixel == CARD32 */
- CARD16 nRed, nGreen, nBlue; /* CARD16 == unsigned short */
- UINT uiColorsRetrieved = 0;
- RGBQUAD rgbColors[WIN_NUM_PALETTE_ENTRIES];
-
- /* Get the color table for the screen */
- uiColorsRetrieved = GetDIBColorTable (pScreenPriv->hdcScreen,
- 0,
- WIN_NUM_PALETTE_ENTRIES,
- rgbColors);
- if (uiColorsRetrieved == 0)
- {
- ErrorF ("winGetPaletteDIB - Could not retrieve screen color table\n");
- return FALSE;
+ winScreenPriv(pScreen);
+ int i;
+ Pixel pixel; /* Pixel == CARD32 */
+ CARD16 nRed, nGreen, nBlue; /* CARD16 == unsigned short */
+ UINT uiColorsRetrieved = 0;
+ RGBQUAD rgbColors[WIN_NUM_PALETTE_ENTRIES];
+
+ /* Get the color table for the screen */
+ uiColorsRetrieved = GetDIBColorTable(pScreenPriv->hdcScreen,
+ 0, WIN_NUM_PALETTE_ENTRIES, rgbColors);
+ if (uiColorsRetrieved == 0) {
+ ErrorF("winGetPaletteDIB - Could not retrieve screen color table\n");
+ return FALSE;
}
#if CYGDEBUG
- winDebug ("winGetPaletteDIB - Retrieved %d colors from DIB\n",
- uiColorsRetrieved);
+ winDebug("winGetPaletteDIB - Retrieved %d colors from DIB\n",
+ uiColorsRetrieved);
#endif
- /* Set the DIB color table to the default screen palette */
- if (SetDIBColorTable (pScreenPriv->hdcShadow,
- 0,
- uiColorsRetrieved,
- rgbColors) == 0)
- {
- ErrorF ("winGetPaletteDIB - SetDIBColorTable () failed\n");
- return FALSE;
+ /* Set the DIB color table to the default screen palette */
+ if (SetDIBColorTable(pScreenPriv->hdcShadow,
+ 0, uiColorsRetrieved, rgbColors) == 0) {
+ ErrorF("winGetPaletteDIB - SetDIBColorTable () failed\n");
+ return FALSE;
}
- /* Alloc each color in the DIB color table */
- for (i = 0; i < uiColorsRetrieved; ++i)
- {
- pixel = i;
+ /* Alloc each color in the DIB color table */
+ for (i = 0; i < uiColorsRetrieved; ++i) {
+ pixel = i;
- /* Extract the color values for current palette entry */
- nRed = rgbColors[i].rgbRed << 8;
- nGreen = rgbColors[i].rgbGreen << 8;
- nBlue = rgbColors[i].rgbBlue << 8;
+ /* Extract the color values for current palette entry */
+ nRed = rgbColors[i].rgbRed << 8;
+ nGreen = rgbColors[i].rgbGreen << 8;
+ nBlue = rgbColors[i].rgbBlue << 8;
#if CYGDEBUG
- winDebug ("winGetPaletteDIB - Allocating a color: %d; "
- "%d %d %d\n",
- pixel, nRed, nGreen, nBlue);
+ winDebug("winGetPaletteDIB - Allocating a color: %d; "
+ "%d %d %d\n", pixel, nRed, nGreen, nBlue);
#endif
- /* Allocate a entry in the X colormap */
- if (AllocColor (pcmap,
- &nRed,
- &nGreen,
- &nBlue,
- &pixel,
- 0) != Success)
- {
- ErrorF ("winGetPaletteDIB - AllocColor () failed, pixel %d\n",
- i);
- return FALSE;
- }
-
- if (i != pixel
- || nRed != rgbColors[i].rgbRed
- || nGreen != rgbColors[i].rgbGreen
- || nBlue != rgbColors[i].rgbBlue)
- {
- winDebug ("winGetPaletteDIB - Got: %d; "
- "%d %d %d\n",
- (int) pixel, nRed, nGreen, nBlue);
- }
-
- /* FIXME: Not sure that this bit is needed at all */
- pcmap->red[i].co.local.red = nRed;
- pcmap->red[i].co.local.green = nGreen;
- pcmap->red[i].co.local.blue = nBlue;
+ /* Allocate a entry in the X colormap */
+ if (AllocColor(pcmap, &nRed, &nGreen, &nBlue, &pixel, 0) != Success) {
+ ErrorF("winGetPaletteDIB - AllocColor () failed, pixel %d\n", i);
+ return FALSE;
+ }
+
+ if (i != pixel
+ || nRed != rgbColors[i].rgbRed
+ || nGreen != rgbColors[i].rgbGreen
+ || nBlue != rgbColors[i].rgbBlue) {
+ winDebug("winGetPaletteDIB - Got: %d; "
+ "%d %d %d\n", (int) pixel, nRed, nGreen, nBlue);
+ }
+
+ /* FIXME: Not sure that this bit is needed at all */
+ pcmap->red[i].co.local.red = nRed;
+ pcmap->red[i].co.local.green = nGreen;
+ pcmap->red[i].co.local.blue = nBlue;
}
- /* System is using a colormap */
- /* Set the black and white pixel indices */
- pScreen->whitePixel = uiColorsRetrieved - 1;
- pScreen->blackPixel = 0;
+ /* System is using a colormap */
+ /* Set the black and white pixel indices */
+ pScreen->whitePixel = uiColorsRetrieved - 1;
+ pScreen->blackPixel = 0;
- return TRUE;
+ return TRUE;
}
-
/*
* Internal function to load the standard system palette being used by DD
*/
static Bool
-winGetPaletteDD (ScreenPtr pScreen, ColormapPtr pcmap)
+winGetPaletteDD(ScreenPtr pScreen, ColormapPtr pcmap)
{
- int i;
- Pixel pixel; /* Pixel == CARD32 */
- CARD16 nRed, nGreen, nBlue; /* CARD16 == unsigned short */
- UINT uiSystemPaletteEntries;
- LPPALETTEENTRY ppeColors = NULL;
- HDC hdc = NULL;
-
- /* Get a DC to obtain the default palette */
- hdc = GetDC (NULL);
- if (hdc == NULL)
- {
- ErrorF ("winGetPaletteDD - Couldn't get a DC\n");
- return FALSE;
+ int i;
+ Pixel pixel; /* Pixel == CARD32 */
+ CARD16 nRed, nGreen, nBlue; /* CARD16 == unsigned short */
+ UINT uiSystemPaletteEntries;
+ LPPALETTEENTRY ppeColors = NULL;
+ HDC hdc = NULL;
+
+ /* Get a DC to obtain the default palette */
+ hdc = GetDC(NULL);
+ if (hdc == NULL) {
+ ErrorF("winGetPaletteDD - Couldn't get a DC\n");
+ return FALSE;
}
- /* Get the number of entries in the system palette */
- uiSystemPaletteEntries = GetSystemPaletteEntries (hdc,
- 0, 0, NULL);
- if (uiSystemPaletteEntries == 0)
- {
- ErrorF ("winGetPaletteDD - Unable to determine number of "
- "system palette entries\n");
- return FALSE;
+ /* Get the number of entries in the system palette */
+ uiSystemPaletteEntries = GetSystemPaletteEntries(hdc, 0, 0, NULL);
+ if (uiSystemPaletteEntries == 0) {
+ ErrorF("winGetPaletteDD - Unable to determine number of "
+ "system palette entries\n");
+ return FALSE;
}
#if CYGDEBUG
- winDebug ("winGetPaletteDD - uiSystemPaletteEntries %d\n",
- uiSystemPaletteEntries);
+ winDebug("winGetPaletteDD - uiSystemPaletteEntries %d\n",
+ uiSystemPaletteEntries);
#endif
-
- /* Allocate palette entries structure */
- ppeColors = malloc (uiSystemPaletteEntries * sizeof (PALETTEENTRY));
- if (ppeColors == NULL)
- {
- ErrorF ("winGetPaletteDD - malloc () for colormap failed\n");
- return FALSE;
+
+ /* Allocate palette entries structure */
+ ppeColors = malloc(uiSystemPaletteEntries * sizeof(PALETTEENTRY));
+ if (ppeColors == NULL) {
+ ErrorF("winGetPaletteDD - malloc () for colormap failed\n");
+ return FALSE;
}
- /* Get system palette entries */
- GetSystemPaletteEntries (hdc,
- 0, uiSystemPaletteEntries, ppeColors);
+ /* Get system palette entries */
+ GetSystemPaletteEntries(hdc, 0, uiSystemPaletteEntries, ppeColors);
- /* Allocate an X colormap entry for every system palette entry */
- for (i = 0; i < uiSystemPaletteEntries; ++i)
- {
- pixel = i;
+ /* Allocate an X colormap entry for every system palette entry */
+ for (i = 0; i < uiSystemPaletteEntries; ++i) {
+ pixel = i;
- /* Extract the color values for current palette entry */
- nRed = ppeColors[i].peRed << 8;
- nGreen = ppeColors[i].peGreen << 8;
- nBlue = ppeColors[i].peBlue << 8;
+ /* Extract the color values for current palette entry */
+ nRed = ppeColors[i].peRed << 8;
+ nGreen = ppeColors[i].peGreen << 8;
+ nBlue = ppeColors[i].peBlue << 8;
#if CYGDEBUG
- winDebug ("winGetPaletteDD - Allocating a color: %d; "
- "%d %d %d\n",
- pixel, nRed, nGreen, nBlue);
+ winDebug("winGetPaletteDD - Allocating a color: %d; "
+ "%d %d %d\n", pixel, nRed, nGreen, nBlue);
#endif
- if (AllocColor (pcmap,
- &nRed,
- &nGreen,
- &nBlue,
- &pixel,
- 0) != Success)
- {
- ErrorF ("winGetPaletteDD - AllocColor () failed, pixel %d\n",
- i);
- free (ppeColors);
- ppeColors = NULL;
- return FALSE;
- }
-
- pcmap->red[i].co.local.red = nRed;
- pcmap->red[i].co.local.green = nGreen;
- pcmap->red[i].co.local.blue = nBlue;
+ if (AllocColor(pcmap, &nRed, &nGreen, &nBlue, &pixel, 0) != Success) {
+ ErrorF("winGetPaletteDD - AllocColor () failed, pixel %d\n", i);
+ free(ppeColors);
+ ppeColors = NULL;
+ return FALSE;
+ }
+
+ pcmap->red[i].co.local.red = nRed;
+ pcmap->red[i].co.local.green = nGreen;
+ pcmap->red[i].co.local.blue = nBlue;
}
- /* System is using a colormap */
- /* Set the black and white pixel indices */
- pScreen->whitePixel = uiSystemPaletteEntries - 1;
- pScreen->blackPixel = 0;
+ /* System is using a colormap */
+ /* Set the black and white pixel indices */
+ pScreen->whitePixel = uiSystemPaletteEntries - 1;
+ pScreen->blackPixel = 0;
- /* Free colormap */
- free(ppeColors);
- ppeColors = NULL;
+ /* Free colormap */
+ free(ppeColors);
+ ppeColors = NULL;
- /* Free the DC */
- if (hdc != NULL)
- {
- ReleaseDC (NULL, hdc);
- hdc = NULL;
+ /* Free the DC */
+ if (hdc != NULL) {
+ ReleaseDC(NULL, hdc);
+ hdc = NULL;
}
- return TRUE;
+ return TRUE;
}
-
/*
* Install the standard fb colormap, or the GDI colormap,
* depending on the current screen depth.
*/
Bool
-winCreateDefColormap (ScreenPtr pScreen)
+winCreateDefColormap(ScreenPtr pScreen)
{
- winScreenPriv(pScreen);
- winScreenInfo *pScreenInfo = pScreenPriv->pScreenInfo;
- unsigned short zero = 0, ones = 0xFFFF;
- VisualPtr pVisual = pScreenPriv->pRootVisual;
- ColormapPtr pcmap = NULL;
- Pixel wp, bp;
+ winScreenPriv(pScreen);
+ winScreenInfo *pScreenInfo = pScreenPriv->pScreenInfo;
+ unsigned short zero = 0, ones = 0xFFFF;
+ VisualPtr pVisual = pScreenPriv->pRootVisual;
+ ColormapPtr pcmap = NULL;
+ Pixel wp, bp;
#if CYGDEBUG
- winDebug ("winCreateDefColormap\n");
+ winDebug("winCreateDefColormap\n");
#endif
- /* Use standard fb colormaps for non palettized color modes */
- if (pScreenInfo->dwBPP > 8)
- {
- winDebug ("winCreateDefColormap - Deferring to " \
- "fbCreateDefColormap ()\n");
- return fbCreateDefColormap (pScreen);
+ /* Use standard fb colormaps for non palettized color modes */
+ if (pScreenInfo->dwBPP > 8) {
+ winDebug("winCreateDefColormap - Deferring to "
+ "fbCreateDefColormap ()\n");
+ return fbCreateDefColormap(pScreen);
}
- /*
- * AllocAll for non-Dynamic visual classes,
- * AllocNone for Dynamic visual classes.
- */
+ /*
+ * AllocAll for non-Dynamic visual classes,
+ * AllocNone for Dynamic visual classes.
+ */
- /*
- * Dynamic visual classes allow the colors of the color map
- * to be changed by clients.
- */
+ /*
+ * Dynamic visual classes allow the colors of the color map
+ * to be changed by clients.
+ */
#if CYGDEBUG
- winDebug ("winCreateDefColormap - defColormap: %d\n",
- pScreen->defColormap);
+ winDebug("winCreateDefColormap - defColormap: %d\n", pScreen->defColormap);
#endif
- /* Allocate an X colormap, owned by client 0 */
- if (CreateColormap (pScreen->defColormap,
- pScreen,
- pVisual,
- &pcmap,
- (pVisual->class & DynamicClass) ? AllocNone : AllocAll,
- 0) != Success)
- {
- ErrorF ("winCreateDefColormap - CreateColormap failed\n");
- return FALSE;
+ /* Allocate an X colormap, owned by client 0 */
+ if (CreateColormap(pScreen->defColormap,
+ pScreen,
+ pVisual,
+ &pcmap,
+ (pVisual->class & DynamicClass) ? AllocNone : AllocAll,
+ 0) != Success) {
+ ErrorF("winCreateDefColormap - CreateColormap failed\n");
+ return FALSE;
}
- if (pcmap == NULL)
- {
- ErrorF ("winCreateDefColormap - Colormap could not be created\n");
- return FALSE;
+ if (pcmap == NULL) {
+ ErrorF("winCreateDefColormap - Colormap could not be created\n");
+ return FALSE;
}
#if CYGDEBUG
- winDebug ("winCreateDefColormap - Created a colormap\n");
+ winDebug("winCreateDefColormap - Created a colormap\n");
#endif
- /* Branch on the visual class */
- if (!(pVisual->class & DynamicClass))
- {
- /* Branch on engine type */
- if (pScreenInfo->dwEngine == WIN_SERVER_SHADOW_GDI)
- {
- /* Load the colors being used by the Shadow DIB */
- if (!winGetPaletteDIB (pScreen, pcmap))
- {
- ErrorF ("winCreateDefColormap - Couldn't get DIB colors\n");
- return FALSE;
- }
- }
- else
- {
- /* Load the colors from the default system palette */
- if (!winGetPaletteDD (pScreen, pcmap))
- {
- ErrorF ("winCreateDefColormap - Couldn't get colors "
- "for DD\n");
- return FALSE;
- }
- }
+ /* Branch on the visual class */
+ if (!(pVisual->class & DynamicClass)) {
+ /* Branch on engine type */
+ if (pScreenInfo->dwEngine == WIN_SERVER_SHADOW_GDI) {
+ /* Load the colors being used by the Shadow DIB */
+ if (!winGetPaletteDIB(pScreen, pcmap)) {
+ ErrorF("winCreateDefColormap - Couldn't get DIB colors\n");
+ return FALSE;
+ }
+ }
+ else {
+ /* Load the colors from the default system palette */
+ if (!winGetPaletteDD(pScreen, pcmap)) {
+ ErrorF("winCreateDefColormap - Couldn't get colors "
+ "for DD\n");
+ return FALSE;
+ }
+ }
}
- else
- {
- wp = pScreen->whitePixel;
- bp = pScreen->blackPixel;
-
- /* Allocate a black and white pixel */
- if ((AllocColor (pcmap, &ones, &ones, &ones, &wp, 0) !=
- Success)
- ||
- (AllocColor (pcmap, &zero, &zero, &zero, &bp, 0) !=
- Success))
- {
- ErrorF ("winCreateDefColormap - Couldn't allocate bp or wp\n");
- return FALSE;
- }
-
- pScreen->whitePixel = wp;
- pScreen->blackPixel = bp;
+ else {
+ wp = pScreen->whitePixel;
+ bp = pScreen->blackPixel;
+
+ /* Allocate a black and white pixel */
+ if ((AllocColor(pcmap, &ones, &ones, &ones, &wp, 0) != Success)
+ || (AllocColor(pcmap, &zero, &zero, &zero, &bp, 0) != Success)) {
+ ErrorF("winCreateDefColormap - Couldn't allocate bp or wp\n");
+ return FALSE;
+ }
+
+ pScreen->whitePixel = wp;
+ pScreen->blackPixel = bp;
#if 0
- /* Have to reserve first 10 and last ten pixels in DirectDraw windowed */
- if (pScreenInfo->dwEngine != WIN_SERVER_SHADOW_GDI)
- {
- int k;
- Pixel p;
-
- for (k = 1; k < 10; ++k)
- {
- p = k;
- if (AllocColor (pcmap, &ones, &ones, &ones, &p, 0) != Success)
- FatalError ("Foo!\n");
- }
-
- for (k = 245; k < 255; ++k)
- {
- p = k;
- if (AllocColor (pcmap, &zero, &zero, &zero, &p, 0) != Success)
- FatalError ("Baz!\n");
- }
- }
+ /* Have to reserve first 10 and last ten pixels in DirectDraw windowed */
+ if (pScreenInfo->dwEngine != WIN_SERVER_SHADOW_GDI) {
+ int k;
+ Pixel p;
+
+ for (k = 1; k < 10; ++k) {
+ p = k;
+ if (AllocColor(pcmap, &ones, &ones, &ones, &p, 0) != Success)
+ FatalError("Foo!\n");
+ }
+
+ for (k = 245; k < 255; ++k) {
+ p = k;
+ if (AllocColor(pcmap, &zero, &zero, &zero, &p, 0) != Success)
+ FatalError("Baz!\n");
+ }
+ }
#endif
}
- /* Install the created colormap */
- (*pScreen->InstallColormap)(pcmap);
+ /* Install the created colormap */
+ (*pScreen->InstallColormap) (pcmap);
#if CYGDEBUG
- winDebug ("winCreateDefColormap - Returning\n");
+ winDebug("winCreateDefColormap - Returning\n");
#endif
- return TRUE;
+ return TRUE;
}