## Graphics Contexts Graphics Contexts — A shared pool of GdkGC objects |

## Synopsis

    #include <gtk/gtk.h>

    GdkGC*      gtk_gc_get                      (gint depth,
                                                 GdkColormap *colormap,
                                                 GdkGCValues *values,
                                                 GdkGCValuesMask values_mask);
    void        gtk_gc_release                  (GdkGC *gc);

## Description

These functions provide access to a shared pool of GdkGC objects. When a new GdkGC is needed, `gtk_gc_get()` is called with the required depth, colormap and GdkGCValues. If a GdkGC with the required properties already exists then that is returned. If not, a new GdkGC is created. When the GdkGC is no longer needed, `gtk_gc_release()` should be called.

## Details

### gtk_gc_get ()

    GdkGC*      gtk_gc_get                      (gint depth,
                                                 GdkColormap *colormap,
                                                 GdkGCValues *values,
                                                 GdkGCValuesMask values_mask);

Gets a GdkGC with the given depth, colormap and GdkGCValues. If a GdkGC with the given properties already exists then it is returned, otherwise a new GdkGC is created. The returned GdkGC should be released with `gtk_gc_release()` when it is no longer needed.

`depth` : | the depth of the GdkGC to create.
`colormap` : | the GdkColormap (FIXME: I don't know why this is needed).
`values` : | a GdkGCValues struct containing settings for the GdkGC.
`values_mask` : | a set of flags indicating which of the fields in `values` has been set.
Returns : | a GdkGC.

### gtk_gc_release ()

    void        gtk_gc_release                  (GdkGC *gc);

Releases a GdkGC allocated using `gtk_gc_get()`.

`gc` : | a GdkGC.