040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync/*
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsyncCopyright 1987, 1998 The Open Group
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsyncPermission to use, copy, modify, distribute, and sell this software and its
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsyncdocumentation for any purpose is hereby granted without fee, provided that
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsyncthe above copyright notice appear in all copies and that both that
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsynccopyright notice and this permission notice appear in supporting
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsyncdocumentation.
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsyncThe above copyright notice and this permission notice shall be included in
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsyncall copies or substantial portions of the Software.
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsyncTHE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsyncIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsyncFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsyncOPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsyncAN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsyncCONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsyncExcept as contained in this notice, the name of The Open Group shall not be
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsyncused in advertising or otherwise to promote the sale, use or other dealings
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsyncin this Software without prior written authorization from The Open Group.
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsyncCopyright 1987 by Digital Equipment Corporation, Maynard, Massachusetts.
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync All Rights Reserved
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsyncPermission to use, copy, modify, and distribute this software and its
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsyncdocumentation for any purpose and without fee is hereby granted,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsyncprovided that the above copyright notice appear in all copies and that
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsyncboth that copyright notice and this permission notice appear in
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsyncsupporting documentation, and that the name of Digital not be
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsyncused in advertising or publicity pertaining to distribution of the
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsyncsoftware without specific, written prior permission.
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsyncDIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsyncALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsyncDIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsyncANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsyncWHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsyncARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsyncSOFTWARE.
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync*/
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync#ifndef CMAP_H
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync#define CMAP_H 1
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync#include <X11/Xproto.h>
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync#include "screenint.h"
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync#include "window.h"
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync/* these follow X.h's AllocNone and AllocAll */
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync#define CM_PSCREEN 2
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync#define CM_PWIN 3
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync/* Passed internally in colormap.c */
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync#define REDMAP 0
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync#define GREENMAP 1
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync#define BLUEMAP 2
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync#define PSEUDOMAP 3
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync#define AllocPrivate (-1)
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync#define AllocTemporary (-2)
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync#define DynamicClass 1
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync/* Values for the flags field of a colormap. These should have 1 bit set
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync * and not overlap */
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync#define IsDefault 1
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync#define AllAllocated 2
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync#define BeingCreated 4
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsynctypedef CARD32 Pixel;
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsynctypedef struct _CMEntry *EntryPtr;
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync/* moved to screenint.h: typedef struct _ColormapRec *ColormapPtr */
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsynctypedef struct _colorResource *colorResourcePtr;
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsyncextern int CreateColormap(
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync Colormap /*mid*/,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync ScreenPtr /*pScreen*/,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync VisualPtr /*pVisual*/,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync ColormapPtr* /*ppcmap*/,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync int /*alloc*/,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync int /*client*/);
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsyncextern int FreeColormap(
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync pointer /*pmap*/,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync XID /*mid*/);
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsyncextern int TellLostMap(
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync WindowPtr /*pwin*/,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync pointer /* Colormap *pmid */);
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsyncextern int TellGainedMap(
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync WindowPtr /*pwin*/,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync pointer /* Colormap *pmid */);
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsyncextern int CopyColormapAndFree(
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync Colormap /*mid*/,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync ColormapPtr /*pSrc*/,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync int /*client*/);
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsyncextern int AllocColor(
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync ColormapPtr /*pmap*/,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync unsigned short* /*pred*/,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync unsigned short* /*pgreen*/,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync unsigned short* /*pblue*/,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync Pixel* /*pPix*/,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync int /*client*/);
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsyncextern void FakeAllocColor(
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync ColormapPtr /*pmap*/,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync xColorItem * /*item*/);
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsyncextern void FakeFreeColor(
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync ColormapPtr /*pmap*/,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync Pixel /*pixel*/);
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsynctypedef int (*ColorCompareProcPtr)(
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync EntryPtr /*pent*/,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync xrgb * /*prgb*/);
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsyncextern int FindColor(
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync ColormapPtr /*pmap*/,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync EntryPtr /*pentFirst*/,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync int /*size*/,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync xrgb* /*prgb*/,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync Pixel* /*pPixel*/,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync int /*channel*/,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync int /*client*/,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync ColorCompareProcPtr /*comp*/);
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsyncextern int QueryColors(
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync ColormapPtr /*pmap*/,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync int /*count*/,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync Pixel* /*ppixIn*/,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync xrgb* /*prgbList*/);
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsyncextern int FreeClientPixels(
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync pointer /*pcr*/,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync XID /*fakeid*/);
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsyncextern int AllocColorCells(
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync int /*client*/,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync ColormapPtr /*pmap*/,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync int /*colors*/,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync int /*planes*/,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync Bool /*contig*/,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync Pixel* /*ppix*/,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync Pixel* /*masks*/);
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsyncextern int AllocColorPlanes(
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync int /*client*/,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync ColormapPtr /*pmap*/,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync int /*colors*/,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync int /*r*/,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync int /*g*/,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync int /*b*/,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync Bool /*contig*/,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync Pixel* /*pixels*/,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync Pixel* /*prmask*/,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync Pixel* /*pgmask*/,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync Pixel* /*pbmask*/);
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsyncextern int FreeColors(
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync ColormapPtr /*pmap*/,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync int /*client*/,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync int /*count*/,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync Pixel* /*pixels*/,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync Pixel /*mask*/);
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsyncextern int StoreColors(
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync ColormapPtr /*pmap*/,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync int /*count*/,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync xColorItem* /*defs*/);
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsyncextern int IsMapInstalled(
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync Colormap /*map*/,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync WindowPtr /*pWin*/);
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync#endif /* CMAP_H */