Tcl/Tk Documentation > TkLib > GetGC
Tk_GetGC(tkwin, valueMask, valuePtr)
- 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.
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.graphics context