# dmxgc.c File Reference

`#include "dmx.h"`
`#include "dmxsync.h"`
`#include "dmxgc.h"`
`#include "dmxgcops.h"`
`#include "dmxpixmap.h"`
`#include "dmxfont.h"`
`#include "gcstruct.h"`
`#include "pixmapstr.h"`
`#include "migc.h"`

## Functions

Bool | dmxInitGC (ScreenPtr pScreen)
void | dmxBECreateGC (ScreenPtr pScreen, GCPtr pGC)
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)
Bool | dmxBEFreeGC (GCPtr pGC)
void | dmxDestroyGC (GCPtr pGC)
void | dmxChangeClip (GCPtr pGC, int type, pointer pvalue, int nrects)
void | dmxDestroyClip (GCPtr pGC)
void | dmxCopyClip (GCPtr pGCDst, GCPtr pGCSrc)

## Variables

static GCFuncs | dmxGCFuncs
static GCOps | dmxGCOps

## Detailed Description

This file provides support for GCs.

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

## Variable Documentation

GCFuncs dmxGCFuncs `[static]`

Initial value:

     {
        dmxValidateGC,
        dmxChangeGC,
        dmxCopyGC,
        dmxDestroyGC,
        dmxChangeClip,
        dmxDestroyClip,
        dmxCopyClip,
    }

Referenced by dmxCreateGC().

GCOps dmxGCOps `[static]`

Initial value:

     {
        dmxFillSpans,
        dmxSetSpans,
        dmxPutImage,
        dmxCopyArea,
        dmxCopyPlane,
        dmxPolyPoint,
        dmxPolylines,
        dmxPolySegment,
        dmxPolyRectangle,
        dmxPolyArc,
        dmxFillPolygon,
        dmxPolyFillRect,
        dmxPolyFillArc,
        dmxPolyText8,
        dmxPolyText16,
        dmxImageText8,
        dmxImageText16,
        dmxImageGlyphBlt,
        dmxPolyGlyphBlt,
        dmxPushPixels
    }