Death to TOG-CUP.
If you still care about 8bpp visuals that much, fix Composite to provide synthetic visuals.
This commit is contained in:
parent
4da9ec16e9
commit
a7503615a6
|
@ -104,13 +104,6 @@ if XPRINT
|
|||
BUILTIN_SRCS += $(XPRINT_SRCS)
|
||||
endif
|
||||
|
||||
# Colormap Utilization Protocol: Less flashing when switching between
|
||||
# PsuedoColor apps and better sharing of limited colormap slots
|
||||
CUP_SRCS = cup.c
|
||||
if CUP
|
||||
MODULE_SRCS += $(CUP_SRCS)
|
||||
endif
|
||||
|
||||
# Multi-buffering extension
|
||||
MULTIBUFFER_SRCS = mbuf.c
|
||||
EXTRA_MULTIBUFFER_SRCS = mbufbf.c mbufpx.c
|
||||
|
@ -157,7 +150,6 @@ EXTRA_DIST = \
|
|||
$(XINERAMA_SRCS) \
|
||||
$(XEVIE_SRCS) \
|
||||
$(XPRINT_SRCS) \
|
||||
$(CUP_SRCS) \
|
||||
$(MULTIBUFFER_SRCS) \
|
||||
$(EXTRA_MULTIBUFFER_SRCS) \
|
||||
$(FONTCACHE_SRCS) \
|
||||
|
|
342
Xext/cup.c
342
Xext/cup.c
|
@ -1,342 +0,0 @@
|
|||
/*
|
||||
|
||||
Copyright 1997, 1998 The Open Group
|
||||
|
||||
Permission to use, copy, modify, distribute, and sell this software and its
|
||||
documentation for any purpose is hereby granted without fee, provided that
|
||||
the above copyright notice appear in all copies and that both that
|
||||
copyright notice and this permission notice appear in supporting
|
||||
documentation.
|
||||
|
||||
The above copyright notice and this permission notice shall be included in
|
||||
all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
|
||||
AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
|
||||
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
|
||||
Except as contained in this notice, the name of The Open Group shall not be
|
||||
used in advertising or otherwise to promote the sale, use or other dealings
|
||||
in this Software without prior written authorization from The Open Group.
|
||||
|
||||
*/
|
||||
|
||||
#define NEED_REPLIES
|
||||
#define NEED_EVENTS
|
||||
#ifdef HAVE_DIX_CONFIG_H
|
||||
#include <dix-config.h>
|
||||
#endif
|
||||
|
||||
#include <X11/X.h>
|
||||
#include <X11/Xproto.h>
|
||||
#include "misc.h"
|
||||
#include "dixstruct.h"
|
||||
#include "extnsionst.h"
|
||||
#include "colormapst.h"
|
||||
#include "scrnintstr.h"
|
||||
#include "servermd.h"
|
||||
#include "swapreq.h"
|
||||
#define _XCUP_SERVER_
|
||||
#include <X11/extensions/Xcupstr.h>
|
||||
#include <X11/Xfuncproto.h>
|
||||
|
||||
#include "../os/osdep.h"
|
||||
|
||||
#include "modinit.h"
|
||||
|
||||
static int ProcDispatch(ClientPtr client);
|
||||
static int SProcDispatch(ClientPtr client);
|
||||
static void ResetProc(ExtensionEntry* extEntry);
|
||||
|
||||
#if defined(WIN32) || defined(TESTWIN32)
|
||||
#define HAVE_SPECIAL_DESKTOP_COLORS
|
||||
#endif
|
||||
|
||||
static xColorItem citems[] = {
|
||||
#ifndef HAVE_SPECIAL_DESKTOP_COLORS
|
||||
#define CUP_BLACK_PIXEL 0
|
||||
#define CUP_WHITE_PIXEL 1
|
||||
/* pix red green blue */
|
||||
{ 0, 0, 0, 0, 0, 0 },
|
||||
{ 1, 0xffff, 0xffff, 0xffff, 0, 0 }
|
||||
#else
|
||||
#ifndef WIN32
|
||||
/*
|
||||
This approximates the MS-Windows desktop colormap for testing
|
||||
purposes but has black and white pixels in the typical Unix
|
||||
locations, which should be switched if necessary if your system
|
||||
has blackPixel and whitePixel swapped. No entries are provided
|
||||
for colormap entries 254 and 255 because AllocColor/FindColor
|
||||
will reuse entries zero and one.
|
||||
*/
|
||||
{ 0, 0, 0, 0, 0, 0 },
|
||||
{ 1, 0xffff, 0xffff, 0xffff, 0, 0 },
|
||||
{ 2, 0x8000, 0, 0, 0, 0 },
|
||||
{ 3, 0, 0x8000, 0, 0, 0 },
|
||||
{ 4, 0x8000, 0x8000, 0, 0, 0 },
|
||||
{ 5, 0, 0, 0x8000, 0, 0 },
|
||||
{ 6, 0x8000, 0, 0x8000, 0, 0 },
|
||||
{ 7, 0, 0x8000, 0x8000, 0, 0 },
|
||||
{ 8, 0xc000, 0xc000, 0xc000, 0, 0 },
|
||||
{ 9, 0xc000, 0xdc00, 0xc000, 0, 0 },
|
||||
{ 246, 0xa000, 0xa000, 0xa000, 0, 0 },
|
||||
{ 247, 0x8000, 0x8000, 0x8000, 0, 0 },
|
||||
{ 248, 0xffff, 0, 0, 0, 0 },
|
||||
{ 249, 0, 0xffff, 0, 0, 0 },
|
||||
{ 250, 0xffff, 0xffff, 0, 0, 0 },
|
||||
{ 251, 0, 0, 0xffff, 0, 0 },
|
||||
{ 252, 0xffff, 0, 0xffff, 0, 0 },
|
||||
{ 253, 0, 0xffff, 0xffff, 0, 0 }
|
||||
#else
|
||||
/*
|
||||
this is the MS-Windows desktop, adjusted for X's 16-bit color
|
||||
specifications.
|
||||
*/
|
||||
{ 0, 0, 0, 0, 0, 0 },
|
||||
{ 1, 0x8000, 0, 0, 0, 0 },
|
||||
{ 2, 0, 0x8000, 0, 0, 0 },
|
||||
{ 3, 0x8000, 0x8000, 0, 0, 0 },
|
||||
{ 4, 0, 0, 0x8000, 0, 0 },
|
||||
{ 5, 0x8000, 0, 0x8000, 0, 0 },
|
||||
{ 6, 0, 0x8000, 0x8000, 0, 0 },
|
||||
{ 7, 0xc000, 0xc000, 0xc000, 0, 0 },
|
||||
{ 8, 0xc000, 0xdc00, 0xc000, 0, 0 },
|
||||
{ 9, 0xa600, 0xca00, 0xf000, 0, 0 },
|
||||
{ 246, 0xff00, 0xfb00, 0xf000, 0, 0 },
|
||||
{ 247, 0xa000, 0xa000, 0xa400, 0, 0 },
|
||||
{ 248, 0x8000, 0x8000, 0x8000, 0, 0 },
|
||||
{ 249, 0xff00, 0, 0, 0, 0 },
|
||||
{ 250, 0, 0xff00, 0, 0, 0 },
|
||||
{ 251, 0xff00, 0xff00, 0, 0, 0 },
|
||||
{ 252, 0, 0, 0xff00, 0, 0 },
|
||||
{ 253, 0xff00, 0, 0xff00, 0, 0 },
|
||||
{ 254, 0, 0xff00, 0xff00, 0, 0 },
|
||||
{ 255, 0xff00, 0xff00, 0xff00, 0, 0 }
|
||||
#endif
|
||||
#endif
|
||||
};
|
||||
#define NUM_DESKTOP_COLORS (sizeof citems / sizeof citems[0])
|
||||
|
||||
void
|
||||
XcupExtensionInit (INITARGS)
|
||||
{
|
||||
(void) AddExtension (XCUPNAME,
|
||||
0,
|
||||
XcupNumberErrors,
|
||||
ProcDispatch,
|
||||
SProcDispatch,
|
||||
ResetProc,
|
||||
StandardMinorOpcode);
|
||||
|
||||
/* PC servers initialize the desktop colors (citems) here! */
|
||||
}
|
||||
|
||||
/*ARGSUSED*/
|
||||
static
|
||||
void ResetProc(
|
||||
ExtensionEntry* extEntry)
|
||||
{
|
||||
}
|
||||
|
||||
static
|
||||
int ProcQueryVersion(
|
||||
register ClientPtr client)
|
||||
{
|
||||
/* REQUEST (xXcupQueryVersionReq); */
|
||||
xXcupQueryVersionReply rep;
|
||||
register int n;
|
||||
|
||||
REQUEST_SIZE_MATCH (xXcupQueryVersionReq);
|
||||
rep.type = X_Reply;
|
||||
rep.length = 0;
|
||||
rep.sequence_number = client->sequence;
|
||||
rep.server_major_version = XCUP_MAJOR_VERSION;
|
||||
rep.server_minor_version = XCUP_MINOR_VERSION;
|
||||
if (client->swapped) {
|
||||
swaps (&rep.sequence_number, n);
|
||||
swapl (&rep.length, n);
|
||||
swaps (&rep.server_major_version, n);
|
||||
swaps (&rep.server_minor_version, n);
|
||||
}
|
||||
WriteToClient (client, sizeof (xXcupQueryVersionReply), (char *)&rep);
|
||||
return client->noClientException;
|
||||
}
|
||||
|
||||
static
|
||||
int ProcGetReservedColormapEntries(
|
||||
register ClientPtr client)
|
||||
{
|
||||
REQUEST (xXcupGetReservedColormapEntriesReq);
|
||||
xXcupGetReservedColormapEntriesReply rep;
|
||||
xColorItem* cptr;
|
||||
register int n;
|
||||
|
||||
REQUEST_SIZE_MATCH (xXcupGetReservedColormapEntriesReq);
|
||||
|
||||
if (stuff->screen >= screenInfo.numScreens)
|
||||
return BadValue;
|
||||
|
||||
#ifndef HAVE_SPECIAL_DESKTOP_COLORS
|
||||
citems[CUP_BLACK_PIXEL].pixel =
|
||||
screenInfo.screens[stuff->screen]->blackPixel;
|
||||
citems[CUP_WHITE_PIXEL].pixel =
|
||||
screenInfo.screens[stuff->screen]->whitePixel;
|
||||
#endif
|
||||
|
||||
rep.type = X_Reply;
|
||||
rep.sequence_number = client->sequence;
|
||||
rep.length = NUM_DESKTOP_COLORS * 3;
|
||||
if (client->swapped) {
|
||||
swaps (&rep.sequence_number, n);
|
||||
swapl (&rep.length, n);
|
||||
}
|
||||
WriteToClient (client, sizeof (xXcupGetReservedColormapEntriesReply), (char *)&rep);
|
||||
for (n = 0, cptr = citems; n < NUM_DESKTOP_COLORS; n++, cptr++) {
|
||||
if (client->swapped) SwapColorItem (cptr);
|
||||
WriteToClient (client, SIZEOF(xColorItem), (char *)cptr);
|
||||
}
|
||||
return client->noClientException;
|
||||
}
|
||||
|
||||
static
|
||||
int ProcStoreColors(
|
||||
register ClientPtr client)
|
||||
{
|
||||
REQUEST (xXcupStoreColorsReq);
|
||||
ColormapPtr pcmp;
|
||||
int rc;
|
||||
|
||||
REQUEST_AT_LEAST_SIZE (xXcupStoreColorsReq);
|
||||
rc = dixLookupResource((pointer *)&pcmp, stuff->cmap, RT_COLORMAP,
|
||||
client, DixAddAccess);
|
||||
|
||||
if (rc == Success) {
|
||||
int ncolors, n;
|
||||
xXcupStoreColorsReply rep;
|
||||
xColorItem* cptr;
|
||||
|
||||
if (!(pcmp->class & DynamicClass))
|
||||
return BadMatch;
|
||||
|
||||
ncolors = (client->req_len << 2) - SIZEOF (xXcupStoreColorsReq);
|
||||
if (ncolors % SIZEOF(xColorItem))
|
||||
return BadLength;
|
||||
|
||||
ncolors /= SIZEOF (xColorItem);
|
||||
|
||||
|
||||
for (n = 0, cptr = (xColorItem*) &stuff[1]; n < ncolors; n++) {
|
||||
Pixel pixel = cptr->pixel;
|
||||
|
||||
if (AllocColor (pcmp,
|
||||
&cptr->red, &cptr->green, &cptr->blue,
|
||||
&pixel, client->index) == Success) {
|
||||
cptr->pixel = pixel;
|
||||
cptr->flags = 0x08;
|
||||
} else
|
||||
cptr->flags = 0;
|
||||
cptr = (xColorItem*) (((char*)cptr) + SIZEOF(xColorItem));
|
||||
}
|
||||
|
||||
rep.type = X_Reply;
|
||||
rep.sequence_number = client->sequence;
|
||||
rep.length = ncolors * 3;
|
||||
if (client->swapped) {
|
||||
swaps (&rep.sequence_number, n);
|
||||
swapl (&rep.length, n);
|
||||
}
|
||||
WriteToClient (client, sizeof (xXcupGetReservedColormapEntriesReply), (char *)&rep);
|
||||
for (n = 0, cptr = (xColorItem*) &stuff[1]; n < ncolors; n++) {
|
||||
if (client->swapped) SwapColorItem (cptr);
|
||||
WriteToClient (client, SIZEOF(xColorItem), (char *)cptr);
|
||||
cptr = (xColorItem*) (((char*)cptr) + SIZEOF(xColorItem));
|
||||
}
|
||||
return client->noClientException;
|
||||
} else {
|
||||
client->errorValue = stuff->cmap;
|
||||
return (rc == BadValue) ? BadColor : rc;
|
||||
}
|
||||
}
|
||||
|
||||
static
|
||||
int ProcDispatch(
|
||||
register ClientPtr client)
|
||||
{
|
||||
REQUEST (xReq);
|
||||
switch (stuff->data)
|
||||
{
|
||||
case X_XcupQueryVersion:
|
||||
return ProcQueryVersion (client);
|
||||
case X_XcupGetReservedColormapEntries:
|
||||
return ProcGetReservedColormapEntries (client);
|
||||
case X_XcupStoreColors:
|
||||
return ProcStoreColors (client);
|
||||
default:
|
||||
return BadRequest;
|
||||
}
|
||||
}
|
||||
|
||||
static
|
||||
int SProcQueryVersion(
|
||||
register ClientPtr client)
|
||||
{
|
||||
register int n;
|
||||
|
||||
REQUEST(xXcupQueryVersionReq);
|
||||
swaps(&stuff->length, n);
|
||||
return ProcQueryVersion(client);
|
||||
}
|
||||
|
||||
static
|
||||
int SProcGetReservedColormapEntries(
|
||||
ClientPtr client)
|
||||
{
|
||||
register int n;
|
||||
|
||||
REQUEST (xXcupGetReservedColormapEntriesReq);
|
||||
swaps (&stuff->length, n);
|
||||
swapl (&stuff->screen, n);
|
||||
REQUEST_AT_LEAST_SIZE (xXcupGetReservedColormapEntriesReq);
|
||||
return ProcGetReservedColormapEntries (client);
|
||||
}
|
||||
|
||||
static
|
||||
int SProcXcupStoreColors(
|
||||
ClientPtr client)
|
||||
{
|
||||
register int n;
|
||||
int count;
|
||||
xColorItem* pItem;
|
||||
|
||||
REQUEST (xXcupStoreColorsReq);
|
||||
swaps (&stuff->length, n);
|
||||
REQUEST_AT_LEAST_SIZE (xXcupStoreColorsReq);
|
||||
swapl(&stuff->cmap, n);
|
||||
pItem = (xColorItem*) &stuff[1];
|
||||
for(count = LengthRestB(stuff)/sizeof(xColorItem); --count >= 0; )
|
||||
SwapColorItem(pItem++);
|
||||
return ProcStoreColors (client);
|
||||
}
|
||||
|
||||
static
|
||||
int SProcDispatch(
|
||||
register ClientPtr client)
|
||||
{
|
||||
REQUEST(xReq);
|
||||
switch (stuff->data)
|
||||
{
|
||||
case X_XcupQueryVersion:
|
||||
return SProcQueryVersion (client);
|
||||
case X_XcupGetReservedColormapEntries:
|
||||
return SProcGetReservedColormapEntries (client);
|
||||
case X_XcupStoreColors:
|
||||
return SProcXcupStoreColors (client);
|
||||
default:
|
||||
return BadRequest;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -83,7 +83,6 @@
|
|||
#undef XF86MISC
|
||||
#undef XFreeXDGA
|
||||
#undef XF86DRI
|
||||
#undef TOGCUP
|
||||
#undef SCREENSAVER
|
||||
#undef RANDR
|
||||
#undef XFIXES
|
||||
|
|
|
@ -155,15 +155,6 @@ static ExtensionModule extensionModules[] = {
|
|||
NULL
|
||||
},
|
||||
#endif
|
||||
#ifdef TOGCUP
|
||||
{
|
||||
XcupExtensionInit,
|
||||
XCUPNAME,
|
||||
&noXcupExtension,
|
||||
NULL,
|
||||
NULL
|
||||
},
|
||||
#endif
|
||||
#ifdef XV
|
||||
{
|
||||
XvExtensionInit,
|
||||
|
|
|
@ -83,12 +83,6 @@ extern void FontCacheExtensionInit(INITARGS);
|
|||
#include "fontcachstr.h"
|
||||
#endif
|
||||
|
||||
#ifdef TOGCUP
|
||||
extern void XcupExtensionInit(INITARGS);
|
||||
#define _XCUP_SERVER_
|
||||
#include <X11/extensions/Xcupstr.h>
|
||||
#endif
|
||||
|
||||
#ifdef XV
|
||||
extern void XvExtensionInit(INITARGS);
|
||||
extern void XvMCExtensionInit(INITARGS);
|
||||
|
|
|
@ -388,9 +388,6 @@ _X_HIDDEN void *dixLookupTab[] = {
|
|||
#ifdef XSYNC
|
||||
SYMVAR(noSyncExtension)
|
||||
#endif
|
||||
#ifdef TOGCUP
|
||||
SYMVAR(noXcupExtension)
|
||||
#endif
|
||||
#ifdef RES
|
||||
SYMVAR(noResExtension)
|
||||
#endif
|
||||
|
|
|
@ -413,9 +413,6 @@
|
|||
/* Support Xv extension */
|
||||
#undef XV
|
||||
|
||||
/* Build TOG-CUP extension */
|
||||
#undef TOGCUP
|
||||
|
||||
/* Build Multibuffer extension */
|
||||
#undef MULTIBUFFER
|
||||
|
||||
|
|
|
@ -106,10 +106,6 @@ extern Bool noSecurityExtension;
|
|||
extern Bool noSyncExtension;
|
||||
#endif
|
||||
|
||||
#ifdef TOGCUP
|
||||
extern Bool noXcupExtension;
|
||||
#endif
|
||||
|
||||
#ifdef RES
|
||||
extern Bool noResExtension;
|
||||
#endif
|
||||
|
|
|
@ -160,9 +160,6 @@ extern Bool noSecurityExtension;
|
|||
#ifdef XSYNC
|
||||
extern Bool noSyncExtension;
|
||||
#endif
|
||||
#ifdef TOGCUP
|
||||
extern Bool noXcupExtension;
|
||||
#endif
|
||||
#ifdef RES
|
||||
extern Bool noResExtension;
|
||||
#endif
|
||||
|
@ -331,9 +328,6 @@ extern void GlxExtensionInit(INITARGS);
|
|||
#ifdef XF86DRI
|
||||
extern void XFree86DRIExtensionInit(INITARGS);
|
||||
#endif
|
||||
#ifdef TOGCUP
|
||||
extern void XcupExtensionInit(INITARGS);
|
||||
#endif
|
||||
#ifdef DPMSExtension
|
||||
extern void DPMSExtensionInit(INITARGS);
|
||||
#endif
|
||||
|
@ -421,9 +415,6 @@ static ExtensionToggle ExtensionToggleList[] =
|
|||
#ifdef XSYNC
|
||||
{ "SYNC", &noSyncExtension },
|
||||
#endif
|
||||
#ifdef TOGCUP
|
||||
{ "TOG-CUP", &noXcupExtension },
|
||||
#endif
|
||||
#ifdef RES
|
||||
{ "X-Resource", &noResExtension },
|
||||
#endif
|
||||
|
@ -568,9 +559,6 @@ InitExtensions(argc, argv)
|
|||
#ifdef XPRINT
|
||||
XpExtensionInit(); /* server-specific extension, cannot be disabled */
|
||||
#endif
|
||||
#ifdef TOGCUP
|
||||
if (!noXcupExtension) XcupExtensionInit();
|
||||
#endif
|
||||
#if defined(DPMSExtension) && !defined(NO_HW_ONLY_EXTS)
|
||||
if (!noDPMSExtension) DPMSExtensionInit();
|
||||
#endif
|
||||
|
|
|
@ -180,9 +180,6 @@ _X_EXPORT Bool noSecurityExtension = FALSE;
|
|||
#ifdef XSYNC
|
||||
_X_EXPORT Bool noSyncExtension = FALSE;
|
||||
#endif
|
||||
#ifdef TOGCUP
|
||||
_X_EXPORT Bool noXcupExtension = FALSE;
|
||||
#endif
|
||||
#ifdef RES
|
||||
_X_EXPORT Bool noResExtension = FALSE;
|
||||
#endif
|
||||
|
|
Loading…
Reference in New Issue