dmxgc.h File Reference
#include "gcstruct.h"

Go to the source code of this file.

Data Structures

struct  _dmxGCPriv

Defines

#define DMX_GET_GC_PRIV(_pGC)   (dmxGCPrivPtr)dixLookupPrivate(&(_pGC)->devPrivates, dmxGCPrivateKey)
#define DMX_GC_FUNC_PROLOGUE(_pGC)
#define DMX_GC_FUNC_EPILOGUE(_pGC)

Typedefs

typedef struct _dmxGCPriv dmxGCPrivRec
typedef struct _dmxGCPrivdmxGCPrivPtr

Functions

Bool dmxInitGC (ScreenPtr pScreen)
Bool dmxCreateGC (GCPtr pGC)
void dmxValidateGC (GCPtr pGC, unsigned long changes, DrawablePtr pDrawable)
void dmxChangeGC (GCPtr pGC, unsigned long mask)
void dmxCopyGC (GCPtr pGCSrc, unsigned long changes, GCPtr pGCDst)
void dmxDestroyGC (GCPtr pGC)
void dmxChangeClip (GCPtr pGC, int type, pointer pvalue, int nrects)
void dmxDestroyClip (GCPtr pGC)
void dmxCopyClip (GCPtr pGCDst, GCPtr pGCSrc)
void dmxBECreateGC (ScreenPtr pScreen, GCPtr pGC)
Bool dmxBEFreeGC (GCPtr pGC)

Detailed Description

Interface for GC support.

See also:
dmxgc.c

Define Documentation

#define DMX_GC_FUNC_EPILOGUE (   _pGC)
Value:
do {                                                                    \
    dmxGCPrivPtr _pGCPriv = DMX_GET_GC_PRIV(_pGC);                      \
    DMX_WRAP(funcs, &dmxGCFuncs, _pGCPriv, (_pGC));                     \
    if (_pGCPriv->ops)                                                  \
        DMX_WRAP(ops, &dmxGCOps, _pGCPriv, (_pGC));                     \
} while (0)

Referenced by dmxChangeClip(), dmxChangeGC(), dmxCopyClip(), dmxCopyGC(), dmxDestroyClip(), dmxDestroyGC(), and dmxValidateGC().

#define DMX_GC_FUNC_PROLOGUE (   _pGC)
Value:
do {                                                                    \
    dmxGCPrivPtr _pGCPriv = DMX_GET_GC_PRIV(_pGC);                      \
    DMX_UNWRAP(funcs, _pGCPriv, (_pGC));                                \
    if (_pGCPriv->ops)                                                  \
        DMX_UNWRAP(ops, _pGCPriv, (_pGC));                              \
} while (0)

Referenced by dmxChangeClip(), dmxChangeGC(), dmxCopyClip(), dmxCopyGC(), dmxDestroyClip(), dmxDestroyGC(), and dmxValidateGC().


Typedef Documentation

typedef struct _dmxGCPriv * dmxGCPrivPtr
typedef struct _dmxGCPriv dmxGCPrivRec

GC private area.


Function Documentation

void dmxBECreateGC ( ScreenPtr  pScreen,
GCPtr  pGC 
)
Bool dmxBEFreeGC ( GCPtr  pGC)

Free the pGC on the back-end server.

References _DMXScreenInfo::beDisplay, DMX_GET_GC_PRIV, dmxScreens, and _dmxGCPriv::gc.

Referenced by dmxBEDestroyResources(), dmxBEDestroyScratchGCs(), and dmxDestroyGC().

void dmxChangeClip ( GCPtr  pGC,
int  type,
pointer  pvalue,
int  nrects 
)
void dmxChangeGC ( GCPtr  pGC,
unsigned long  mask 
)
void dmxCopyClip ( GCPtr  pGCDst,
GCPtr  pGCSrc 
)

Copy a GC's clip rects.

References DMX_GC_FUNC_EPILOGUE, and DMX_GC_FUNC_PROLOGUE.

void dmxCopyGC ( GCPtr  pGCSrc,
unsigned long  changes,
GCPtr  pGCDst 
)

Copy pGCSrc to pGCDst on the back-end server associated with pGCSrc's screen.

References _DMXScreenInfo::beDisplay, DMX_GC_FUNC_EPILOGUE, DMX_GC_FUNC_PROLOGUE, DMX_GET_GC_PRIV, dmxScreens, and _dmxGCPriv::gc.

Bool dmxCreateGC ( GCPtr  pGC)

Create a graphics context on the back-end server associated /a pGC's screen.

References _DMXScreenInfo::beDisplay, DMX_GET_GC_PRIV, DMX_UNWRAP, DMX_WRAP, dmxBECreateGC(), dmxCreateGC(), dmxGCFuncs, dmxScreens, _dmxGCPriv::funcs, _dmxGCPriv::gc, _dmxGCPriv::msc, and _dmxGCPriv::ops.

Referenced by dmxCreateGC(), and dmxScreenInit().

void dmxDestroyClip ( GCPtr  pGC)
void dmxDestroyGC ( GCPtr  pGC)

Destroy the graphics context, pGC and free the corresponding GC on the back-end server.

References _DMXScreenInfo::beDisplay, DMX_GC_FUNC_EPILOGUE, DMX_GC_FUNC_PROLOGUE, dmxBEFreeGC(), and dmxScreens.

Bool dmxInitGC ( ScreenPtr  pScreen)

Initialize the GC on pScreen

References dmxGCPrivateKeyRec.

Referenced by dmxScreenInit().

void dmxValidateGC ( GCPtr  pGC,
unsigned long  changes,
DrawablePtr  pDrawable 
)

Validate a graphics context, pGC, locally in the DMX server and recompute the composite clip, if necessary.

References DMX_GC_FUNC_EPILOGUE, DMX_GC_FUNC_PROLOGUE, DMX_GET_GC_PRIV, and _dmxGCPriv::ops.