Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

switch to recent devPrivates ABI (as used in X.org's Xserver) #560

Open
wants to merge 44 commits into
base: 3.6.x
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
44 commits
Select commit Hold shift + click to select a range
ddd5284
Move EXTENSION_BASE and EXTENSION_EVENT_BASE to misc.h.
Nov 6, 2017
f8925ad
Add a common ARRAY_SIZE macro to dix.h
fooishbar Nov 6, 2017
bb64abb
X.org cherry-pick reverting X.org bug #6924.
sunweaver Jul 29, 2018
660fa50
mi{Create,Destroy}GCOps are unused, nuke 'em.
nwnk Nov 7, 2017
0a0e5d1
nxagent: Fake backing store support via Composite extension.
sunweaver Nov 20, 2017
1dd2f20
randr: Backport latest devPrivates ABI from X.org
sunweaver Nov 6, 2017
84f0b08
composite: Backport latest devPrivates ABI from X.org.
sunweaver Nov 6, 2017
b6eb64c
Xext: Backport latest devPrivates ABI from X.org.
sunweaver Nov 6, 2017
01ccaa8
include: Backport latest devPrivates ABI from X.org.
sunweaver Nov 7, 2017
66d68df
dix: Backport latest devPrivates ABI from X.org.
sunweaver Nov 7, 2017
a30c9ba
mi: Backport latest devPrivates ABI from X.org.
sunweaver Nov 7, 2017
a83f29c
xkb: Backport latest devPrivates ABI from X.org.
sunweaver Nov 7, 2017
71710e9
dbe: Backport latest devPrivates ABI from X.org.
sunweaver Nov 7, 2017
d3ae956
render: Backport latest devPrivates ABI from X.org.
sunweaver Nov 10, 2017
c0a1a89
damageext: Backport latest devPrivates ABI from X.org.
sunweaver Nov 10, 2017
d112afa
miext/cw: Backport latest devPrivates ABI from X.org.
sunweaver Nov 10, 2017
25c563c
xfixes: Backport latest devPrivates ABI from X.org.
sunweaver Nov 10, 2017
83d7159
record: Backport latest devPrivates ABI from X.org.
sunweaver Nov 10, 2017
4d4d45e
fb: Backport latest devPrivate ABI from X.org.
sunweaver Nov 10, 2017
5b3f2b7
miext/damage: Backport latest devPrivate ABI from X.org.
sunweaver Nov 13, 2017
310c2f3
rebase miext/damage/ devPrivates backport
sunweaver Nov 13, 2017
8910e8f
hw/nxagent: Backport latest devPrivates ABI from X.org.
sunweaver Nov 15, 2017
6cff6ac
rebase devPrivates xkb
sunweaver Nov 21, 2017
103dc70
rebase devPrivates dix
sunweaver Nov 21, 2017
f80ab1f
rebase devPrivates xkb
sunweaver Nov 21, 2017
e44213b
rebase devPrivates dix
sunweaver Nov 21, 2017
6df3122
rebase devPrivates include
sunweaver Nov 21, 2017
9235790
rebase devPrivates nxagent
sunweaver Nov 21, 2017
f7ee2e4
Eviscerate save-under support.
nwnk Nov 21, 2017
a19e251
Start devices after windows are initialized.
Nov 22, 2017
85129d1
mi: Don't save midispcur rendering resources for each cursor
keith-packard Nov 22, 2017
6109e99
dix/render: consolidate window format matching code.
airlied Nov 22, 2017
041b36e
mi: Delete unused flicker-free MoveCursor code.
jameysharp Nov 22, 2017
a7a3326
rebase devPrivates render
sunweaver Nov 22, 2017
fe360d8
rebase devPrivates nxagent
sunweaver Nov 22, 2017
51bfb20
rebase devPrivates include
sunweaver Nov 22, 2017
d1cedfb
rebase devPrivates dix
sunweaver Nov 22, 2017
0f6a6c1
rebase devPrivates Xext
sunweaver Jul 30, 2018
5351dcc
rebase devPrivates dix
sunweaver Jul 30, 2018
db6fca8
rebase devPrivates mi
sunweaver Jul 30, 2018
871386a
rebase devPrivates mi
sunweaver Jul 30, 2018
bfbc191
rebase devPrivates xfixes
sunweaver Jul 30, 2018
c4e0696
rebase devPrivates include/
sunweaver Jul 30, 2018
353e683
rebase devPrivates dix
sunweaver Jul 30, 2018
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
63 changes: 32 additions & 31 deletions nx-X11/programs/Xserver/Xext/panoramiX.c
Original file line number Diff line number Diff line change
Expand Up @@ -109,8 +109,12 @@ static void PanoramiXResetProc(ExtensionEntry*);
int (* SavedProcVector[256]) (ClientPtr client) = { NULL, };
ScreenInfo *GlobalScrInfo = NULL;

static int PanoramiXGCIndex = -1;
static int PanoramiXScreenIndex = -1;
static DevPrivateKeyRec PanoramiXGCKeyRec;

#define PanoramiXGCKey (&PanoramiXGCKeyRec)
static DevPrivateKeyRec PanoramiXScreenKeyRec;

#define PanoramiXScreenKey (&PanoramiXScreenKeyRec)

typedef struct {
DDXPointRec clipOrg;
Expand Down Expand Up @@ -139,20 +143,19 @@ GCFuncs XineramaGCFuncs = {
};

#define Xinerama_GC_FUNC_PROLOGUE(pGC)\
PanoramiXGCPtr pGCPriv = \
(PanoramiXGCPtr) (pGC)->devPrivates[PanoramiXGCIndex].ptr;\
PanoramiXGCPtr pGCPriv = (PanoramiXGCPtr) \
dixLookupPrivate(&(pGC)->devPrivates, PanoramiXGCKey); \
(pGC)->funcs = pGCPriv->wrapFuncs;

#define Xinerama_GC_FUNC_EPILOGUE(pGC)\
pGCPriv->wrapFuncs = (pGC)->funcs;\
(pGC)->funcs = &XineramaGCFuncs;


static Bool
XineramaCloseScreen (ScreenPtr pScreen)
{
PanoramiXScreenPtr pScreenPriv =
(PanoramiXScreenPtr) pScreen->devPrivates[PanoramiXScreenIndex].ptr;
PanoramiXScreenPtr pScreenPriv = (PanoramiXScreenPtr)
dixLookupPrivate(&pScreen->devPrivates, PanoramiXScreenKey);

pScreen->CloseScreen = pScreenPriv->CloseScreen;
pScreen->CreateGC = pScreenPriv->CreateGC;
Expand All @@ -161,7 +164,7 @@ XineramaCloseScreen (ScreenPtr pScreen)
if (pScreen->myNum == 0)
RegionUninit(&PanoramiXScreenRegion);

free ((void *) pScreenPriv);
free (pScreenPriv);

return (*pScreen->CloseScreen) (pScreen);
}
Expand All @@ -170,14 +173,14 @@ Bool
XineramaCreateGC(GCPtr pGC)
{
ScreenPtr pScreen = pGC->pScreen;
PanoramiXScreenPtr pScreenPriv =
(PanoramiXScreenPtr) pScreen->devPrivates[PanoramiXScreenIndex].ptr;
PanoramiXScreenPtr pScreenPriv = (PanoramiXScreenPtr)
dixLookupPrivate(&pScreen->devPrivates, PanoramiXScreenKey);
Bool ret;

pScreen->CreateGC = pScreenPriv->CreateGC;
if((ret = (*pScreen->CreateGC)(pGC))) {
PanoramiXGCPtr pGCPriv =
(PanoramiXGCPtr) pGC->devPrivates[PanoramiXGCIndex].ptr;
PanoramiXGCPtr pGCPriv = (PanoramiXGCPtr)
dixLookupPrivate(&pGC->devPrivates, PanoramiXGCKey);

pGCPriv->wrapFuncs = pGC->funcs;
pGC->funcs = &XineramaGCFuncs;
Expand Down Expand Up @@ -283,8 +286,8 @@ XineramaCopyGC (
unsigned long mask,
GCPtr pGCDst
){
PanoramiXGCPtr pSrcPriv =
(PanoramiXGCPtr) pGCSrc->devPrivates[PanoramiXGCIndex].ptr;
PanoramiXGCPtr pSrcPriv = (PanoramiXGCPtr)
dixLookupPrivate(&pGCSrc->devPrivates, PanoramiXGCKey);
Xinerama_GC_FUNC_PROLOGUE (pGCDst);

if(mask & GCTileStipXOrigin)
Expand Down Expand Up @@ -494,6 +497,17 @@ void PanoramiXExtensionInit(int argc, char *argv[])
if (noPanoramiXExtension)
return;

if (!dixRegisterPrivateKey(&PanoramiXScreenKeyRec, PRIVATE_SCREEN, 0)) {
noPanoramiXExtension = TRUE;
return;
}

if (!dixRegisterPrivateKey
(&PanoramiXGCKeyRec, PRIVATE_GC, sizeof(PanoramiXGCRec))) {
noPanoramiXExtension = TRUE;
return;
}

GlobalScrInfo = &screenInfo; /* For debug visibility */
PanoramiXNumScreens = screenInfo.numScreens;
if (PanoramiXNumScreens == 1) { /* Only 1 screen */
Expand Down Expand Up @@ -524,20 +538,13 @@ void PanoramiXExtensionInit(int argc, char *argv[])
calloc(PanoramiXNumScreens, sizeof(PanoramiXData));

BREAK_IF(!panoramiXdataPtr);
BREAK_IF((PanoramiXGCIndex = AllocateGCPrivateIndex()) < 0);
BREAK_IF((PanoramiXScreenIndex = AllocateScreenPrivateIndex()) < 0);

for (i = 0; i < PanoramiXNumScreens; i++) {
pScreen = screenInfo.screens[i];
if(!AllocateGCPrivate(pScreen, PanoramiXGCIndex,
sizeof(PanoramiXGCRec))) {
noPanoramiXExtension = TRUE;
return;
}

pScreenPriv = malloc(sizeof(PanoramiXScreenRec));
pScreen->devPrivates[PanoramiXScreenIndex].ptr =
(void *)pScreenPriv;
dixSetPrivate(&pScreen->devPrivates, PanoramiXScreenKey,
pScreenPriv);
if(!pScreenPriv) {
noPanoramiXExtension = TRUE;
return;
Expand Down Expand Up @@ -640,7 +647,6 @@ Bool PanoramiXCreateConnectionBlock(void)
{
int i, j, length;
Bool disableBackingStore = FALSE;
Bool disableSaveUnders = FALSE;
int old_width, old_height;
float width_mult, height_mult;
xWindowRoot *root;
Expand All @@ -666,17 +672,12 @@ Bool PanoramiXCreateConnectionBlock(void)
}
if(pScreen->backingStoreSupport != screenInfo.screens[0]->backingStoreSupport)
disableBackingStore = TRUE;
if(pScreen->saveUnderSupport != screenInfo.screens[0]->saveUnderSupport)
disableSaveUnders = TRUE;
}

if(disableBackingStore || disableSaveUnders) {
if(disableBackingStore) {
for(i = 0; i < screenInfo.numScreens; i++) {
pScreen = screenInfo.screens[i];
if(disableBackingStore)
pScreen->backingStoreSupport = NotUseful;
if(disableSaveUnders)
pScreen->saveUnderSupport = NotUseful;
pScreen->backingStoreSupport = NotUseful;
}
}

Expand Down
18 changes: 12 additions & 6 deletions nx-X11/programs/Xserver/Xext/saver.c
Original file line number Diff line number Diff line change
Expand Up @@ -233,11 +233,15 @@ MakeScreenPrivate (
ScreenPtr /* pScreen */
);

static int ScreenPrivateIndex;
static DevPrivateKeyRec ScreenPrivateKeyRec;

#define GetScreenPrivate(s) ((ScreenSaverScreenPrivatePtr)(s)->devPrivates[ScreenPrivateIndex].ptr)
#define SetScreenPrivate(s,v) ((s)->devPrivates[ScreenPrivateIndex].ptr = (void *) v);
#define SetupScreen(s) ScreenSaverScreenPrivatePtr pPriv = (s ? GetScreenPrivate(s) : NULL)
#define ScreenPrivateKey (&ScreenPrivateKeyRec)

#define GetScreenPrivate(s) ((ScreenSaverScreenPrivatePtr) \
dixLookupPrivate(&(s)->devPrivates, ScreenPrivateKey))
#define SetScreenPrivate(s,v) \
dixSetPrivate(&(s)->devPrivates, ScreenPrivateKey, v);
#define SetupScreen(s) ScreenSaverScreenPrivatePtr pPriv = (s ? GetScreenPrivate(s) : NULL)

#define New(t) ((t *) malloc (sizeof (t)))

Expand All @@ -256,17 +260,19 @@ ScreenSaverExtensionInit(void)
int i;
ScreenPtr pScreen;

if (!dixRegisterPrivateKey(&ScreenPrivateKeyRec, PRIVATE_SCREEN, 0))
return;

AttrType = CreateNewResourceType(ScreenSaverFreeAttr);
EventType = CreateNewResourceType(ScreenSaverFreeEvents);
SuspendType = CreateNewResourceType(ScreenSaverFreeSuspend);
ScreenPrivateIndex = AllocateScreenPrivateIndex ();

for (i = 0; i < screenInfo.numScreens; i++)
{
pScreen = screenInfo.screens[i];
SetScreenPrivate (pScreen, NULL);
}
if (AttrType && EventType && SuspendType && ScreenPrivateIndex != -1 &&
if (AttrType && EventType && SuspendType &&
(extEntry = AddExtension(ScreenSaverName, ScreenSaverNumberEvents, 0,
ProcScreenSaverDispatch, SProcScreenSaverDispatch,
ScreenSaverResetProc, StandardMinorOpcode)))
Expand Down
Loading