# 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 _dmxGCPriv * | dmxGCPrivPtr

## 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().

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

Get private.

Referenced by dmxBECreateGC(), dmxBEFreeGC(), dmxChangeClip(), dmxChangeGC(), dmxCopyArea(), dmxCopyGC(), dmxCopyPlane(), dmxCreateGC(), dmxDestroyClip(), dmxFillPolygon(), dmxImageText16(), dmxImageText8(), dmxPolyArc(), dmxPolyFillArc(), dmxPolyFillRect(), dmxPolylines(), dmxPolyPoint(), dmxPolyRectangle(), dmxPolySegment(), dmxPolyText16(), dmxPolyText8(), dmxPutImage(), and dmxValidateGC().

## Typedef Documentation

typedef struct _dmxGCPriv * dmxGCPrivPtr

typedef struct _dmxGCPriv dmxGCPrivRec

GC private area.

## Function Documentation

void dmxBECreateGC | ( | ScreenPtr | pScreen,
|  | GCPtr | pGC |
| ) |  |  |

Create the GC on the back-end server.

References _DMXScreenInfo::beDisplay, _DMXScreenInfo::beNumPixmapFormats, _DMXScreenInfo::bePixmapFormats, DMX_GET_GC_PRIV, dmxScreens, _dmxGCPriv::gc, and _DMXScreenInfo::scrnDefDrawables.

Referenced by dmxBECreateResources(), dmxBECreateScratchGCs(), and dmxCreateGC().

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 |
| ) |  |  |

Change the clip rects for a GC.

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

void dmxChangeGC | ( | GCPtr | pGC,
|  | unsigned long | mask |
| ) |  |  |

Set the values in the graphics context on the back-end server associated with pGC's screen.

References _DMXScreenInfo::beDisplay, DMX_GC_FUNC_EPILOGUE, DMX_GC_FUNC_PROLOGUE, DMX_GET_GC_PRIV, DMX_GET_PIXMAP_PRIV, dmxFontPrivateIndex, dmxScreens, dmxSync(), _dmxFontPriv::font, _dmxGCPriv::gc, _dmxGCPriv::msc, and _dmxPixPriv::pixmap.

Referenced by dmxBECreateResources().

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 | ) |

Destroy a GC's clip rects.

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

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.

Generated June 29, 2004 for Distributed Multihead X by doxygen 1.3.4. </addres>