Tk_GetGC(3) Tk Library Procedures Tk_GetGC(3)
____________________________________________________________________________________________________________
NAME
Tk_GetGC, Tk_FreeGC - maintain database of read-only graphics contexts
SYNOPSIS
#include <tk.h>
GC
Tk_GetGC(tkwin, valueMask, valuePtr)
Tk_FreeGC(display, gc)
ARGUMENTS
Tk_Window tkwin (in) Token for window in which the graphics context will be used.
unsigned long valueMask (in) Mask of bits (such as GCForeground or GCStipple) indicating
which fields of *valuePtr are valid.
XGCValues *valuePtr (in) Pointer to structure describing the desired values for the
graphics context.
Display *display (in) Display for which gc was allocated.
GC gc (in) X identifier for graphics context that is no longer needed.
Must have been allocated by Tk_GetGC.
____________________________________________________________________________________________________________
DESCRIPTION
Tk_GetGC and Tk_FreeGC manage a collection of graphics contexts being used by an application. The
procedures allow graphics contexts to be shared, thereby avoiding the server overhead that would be
incurred if a separate GC were created for each use. Tk_GetGC takes arguments describing the desired
graphics context and returns an X identifier for a GC that fits the description. The graphics con-text context
text that is returned will have default values in all of the fields not specified explicitly by val-ueMask valueMask
ueMask and valuePtr.
Tk_GetGC maintains a database of all the graphics contexts it has created. Whenever possible, a call
to Tk_GetGC will return an existing graphics context rather than creating a new one. This approach
can substantially reduce server overhead, so Tk_GetGC should generally be used in preference to the
Xlib procedure XCreateGC, which creates a new graphics context on each call.
Since the return values of Tk_GetGC are shared, callers should never modify the graphics contexts
returned by Tk_GetGC. If a graphics context must be modified dynamically, then it should be created
by calling XCreateGC instead of Tk_GetGC.
When a graphics context is no longer needed, Tk_FreeGC should be called to release it. There should
be exactly one call to Tk_FreeGC for each call to Tk_GetGC. When a graphics context is no longer in
use anywhere (i.e. it has been freed as many times as it has been gotten) Tk_FreeGC will release it
to the X server and delete it from the database.
KEYWORDS
graphics context
Tk Tk_GetGC(3)
|