Use screen-specific privates for exa pixmap and gc privates
Signed-off-by: Keith Packard <keithp@keithp.com> Reviewed-by: Dave Airlie <airlied@redhat.com>
This commit is contained in:
parent
7ca32f1c28
commit
7651176b00
10
exa/exa.c
10
exa/exa.c
|
@ -38,8 +38,6 @@
|
||||||
#include "exa.h"
|
#include "exa.h"
|
||||||
|
|
||||||
DevPrivateKeyRec exaScreenPrivateKeyRec;
|
DevPrivateKeyRec exaScreenPrivateKeyRec;
|
||||||
DevPrivateKeyRec exaPixmapPrivateKeyRec;
|
|
||||||
DevPrivateKeyRec exaGCPrivateKeyRec;
|
|
||||||
|
|
||||||
#ifdef MITSHM
|
#ifdef MITSHM
|
||||||
static ShmFuncs exaShmFuncs = { NULL, NULL };
|
static ShmFuncs exaShmFuncs = { NULL, NULL };
|
||||||
|
@ -915,8 +913,8 @@ exaDriverInit(ScreenPtr pScreen, ExaDriverPtr pScreenInfo)
|
||||||
|
|
||||||
exaDDXDriverInit(pScreen);
|
exaDDXDriverInit(pScreen);
|
||||||
|
|
||||||
if (!dixRegisterPrivateKey
|
if (!dixRegisterScreenSpecificPrivateKey
|
||||||
(&exaGCPrivateKeyRec, PRIVATE_GC, sizeof(ExaGCPrivRec))) {
|
(pScreen, &pExaScr->gcPrivateKeyRec, PRIVATE_GC, sizeof(ExaGCPrivRec))) {
|
||||||
LogMessage(X_WARNING, "EXA(%d): Failed to allocate GC private\n",
|
LogMessage(X_WARNING, "EXA(%d): Failed to allocate GC private\n",
|
||||||
pScreen->myNum);
|
pScreen->myNum);
|
||||||
return FALSE;
|
return FALSE;
|
||||||
|
@ -964,8 +962,8 @@ exaDriverInit(ScreenPtr pScreen, ExaDriverPtr pScreenInfo)
|
||||||
* Hookup offscreen pixmaps
|
* Hookup offscreen pixmaps
|
||||||
*/
|
*/
|
||||||
if (pExaScr->info->flags & EXA_OFFSCREEN_PIXMAPS) {
|
if (pExaScr->info->flags & EXA_OFFSCREEN_PIXMAPS) {
|
||||||
if (!dixRegisterPrivateKey
|
if (!dixRegisterScreenSpecificPrivateKey
|
||||||
(&exaPixmapPrivateKeyRec, PRIVATE_PIXMAP,
|
(pScreen, &pExaScr->pixmapPrivateKeyRec, PRIVATE_PIXMAP,
|
||||||
sizeof(ExaPixmapPrivRec))) {
|
sizeof(ExaPixmapPrivRec))) {
|
||||||
LogMessage(X_WARNING,
|
LogMessage(X_WARNING,
|
||||||
"EXA(%d): Failed to allocate pixmap private\n",
|
"EXA(%d): Failed to allocate pixmap private\n",
|
||||||
|
|
|
@ -208,6 +208,8 @@ typedef struct {
|
||||||
RegionRec maskReg;
|
RegionRec maskReg;
|
||||||
PixmapPtr srcPix;
|
PixmapPtr srcPix;
|
||||||
|
|
||||||
|
DevPrivateKeyRec pixmapPrivateKeyRec;
|
||||||
|
DevPrivateKeyRec gcPrivateKeyRec;
|
||||||
} ExaScreenPrivRec, *ExaScreenPrivPtr;
|
} ExaScreenPrivRec, *ExaScreenPrivPtr;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -225,17 +227,11 @@ typedef struct {
|
||||||
extern DevPrivateKeyRec exaScreenPrivateKeyRec;
|
extern DevPrivateKeyRec exaScreenPrivateKeyRec;
|
||||||
|
|
||||||
#define exaScreenPrivateKey (&exaScreenPrivateKeyRec)
|
#define exaScreenPrivateKey (&exaScreenPrivateKeyRec)
|
||||||
extern DevPrivateKeyRec exaPixmapPrivateKeyRec;
|
|
||||||
|
|
||||||
#define exaPixmapPrivateKey (&exaPixmapPrivateKeyRec)
|
|
||||||
extern DevPrivateKeyRec exaGCPrivateKeyRec;
|
|
||||||
|
|
||||||
#define exaGCPrivateKey (&exaGCPrivateKeyRec)
|
|
||||||
|
|
||||||
#define ExaGetScreenPriv(s) ((ExaScreenPrivPtr)dixGetPrivate(&(s)->devPrivates, exaScreenPrivateKey))
|
#define ExaGetScreenPriv(s) ((ExaScreenPrivPtr)dixGetPrivate(&(s)->devPrivates, exaScreenPrivateKey))
|
||||||
#define ExaScreenPriv(s) ExaScreenPrivPtr pExaScr = ExaGetScreenPriv(s)
|
#define ExaScreenPriv(s) ExaScreenPrivPtr pExaScr = ExaGetScreenPriv(s)
|
||||||
|
|
||||||
#define ExaGetGCPriv(gc) ((ExaGCPrivPtr)dixGetPrivateAddr(&(gc)->devPrivates, exaGCPrivateKey))
|
#define ExaGetGCPriv(gc) ((ExaGCPrivPtr)dixGetPrivateAddr(&(gc)->devPrivates, &ExaGetScreenPriv(gc->pScreen)->gcPrivateKeyRec))
|
||||||
#define ExaGCPriv(gc) ExaGCPrivPtr pExaGC = ExaGetGCPriv(gc)
|
#define ExaGCPriv(gc) ExaGCPrivPtr pExaGC = ExaGetGCPriv(gc)
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -286,7 +282,7 @@ extern DevPrivateKeyRec exaGCPrivateKeyRec;
|
||||||
#define EXA_PIXMAP_SCORE_PINNED 1000
|
#define EXA_PIXMAP_SCORE_PINNED 1000
|
||||||
#define EXA_PIXMAP_SCORE_INIT 1001
|
#define EXA_PIXMAP_SCORE_INIT 1001
|
||||||
|
|
||||||
#define ExaGetPixmapPriv(p) ((ExaPixmapPrivPtr)dixGetPrivateAddr(&(p)->devPrivates, exaPixmapPrivateKey))
|
#define ExaGetPixmapPriv(p) ((ExaPixmapPrivPtr)dixGetPrivateAddr(&(p)->devPrivates, &ExaGetScreenPriv((p)->drawable.pScreen)->pixmapPrivateKeyRec))
|
||||||
#define ExaPixmapPriv(p) ExaPixmapPrivPtr pExaPixmap = ExaGetPixmapPriv(p)
|
#define ExaPixmapPriv(p) ExaPixmapPrivPtr pExaPixmap = ExaGetPixmapPriv(p)
|
||||||
|
|
||||||
#define EXA_RANGE_PITCH (1 << 0)
|
#define EXA_RANGE_PITCH (1 << 0)
|
||||||
|
|
Loading…
Reference in New Issue