## RGBA Colors

RGBA Colors — RGBA colors

## Synopsis

    #include <gdk/gdk.h>

                        GdkRGBA;
    GdkRGBA *           gdk_rgba_copy                       (const GdkRGBA *rgba);
    void                gdk_rgba_free                       (GdkRGBA *rgba);
    gboolean            gdk_rgba_parse                      (GdkRGBA *rgba,
                                                             const gchar *spec);
    gboolean            gdk_rgba_equal                      (gconstpointer p1,
                                                             gconstpointer p2);
    guint               gdk_rgba_hash                       (gconstpointer p);
    gchar *             gdk_rgba_to_string                  (const GdkRGBA *rgba);

## Description

The GdkRGBA struct is a convenient way to pass rgba colors around. It's based on cairo's way to deal with colors and mirrors its behavior. All values are in the range from 0.0 to 1.0 inclusive. So the color (0.0, 0.0, 0.0, 0.0) represents transparent black and (1.0, 1.0, 1.0, 1.0) is opaque white. Other values will be clamped to this range when drawing.

## Details

### GdkRGBA

    typedef struct {
      gdouble red;
      gdouble green;
      gdouble blue;
      gdouble alpha;
    } GdkRGBA;

The GdkRGBA structure is used to represent a (possibly translucent) color, in a way that is compatible with cairos notion of color.

gdouble `red`; | The intensity of the red channel from 0.0 to 1.0 inclusive
gdouble `green`; | The intensity of the green channel from 0.0 to 1.0 inclusive
gdouble `blue`; | The intensity of the blue channel from 0.0 to 1.0 inclusive
gdouble `alpha`; | The opacity of the color from 0.0 for completely translucent to 1.0 for opaque

### gdk_rgba_copy ()

    GdkRGBA *           gdk_rgba_copy                       (const GdkRGBA *rgba);

Makes a copy of a GdkRGBA structure.

The result must be freed through `gdk_rgba_free()`.

`rgba` : | a GdkRGBA
Returns : | A newly allocated GdkRGBA, with the same contents as `rgba`

Since 3.0

### gdk_rgba_free ()

    void                gdk_rgba_free                       (GdkRGBA *rgba);

Frees a GdkRGBA struct created with `gdk_rgba_copy()`

`rgba` : | a GdkRGBA

Since 3.0

### gdk_rgba_parse ()

    gboolean            gdk_rgba_parse                      (GdkRGBA *rgba,
                                                             const gchar *spec);

Parses a textual representation of a color, filling in the `red`, `green`, `blue` and `alpha` fields of the `rgba` struct.

The string can be either one of:

- A standard name (Taken from the X11 rgb.txt file).
- A hex value in the form 'rgb' 'rrggbb' 'rrrgggbbb' or 'rrrrggggbbbb'
- A RGB color in the form 'rgb(r,g,b)' (In this case the color will have full opacity)
- A RGBA color in the form 'rgba(r,g,b,a)'

Where 'r', 'g', 'b' and 'a' are respectively the red, green, blue and alpha color values. In the last two cases, r g and b are either integers in the range 0 to 255 or precentage values in the range 0% to 100%, and a is a floating point value in the range 0 to 1.

`rgba` : | the GdkRGBA struct to fill in
`spec` : | the string specifying the color
Returns : | `TRUE` if the parsing succeeded

Since 3.0

### gdk_rgba_equal ()

    gboolean            gdk_rgba_equal                      (gconstpointer p1,
                                                             gconstpointer p2);

Compares two RGBA colors.

`p1` : | a GdkRGBA pointer. [type GdkRGBA]
`p2` : | another GdkRGBA pointer. [type GdkRGBA]
Returns : | `TRUE` if the two colors compare equal

Since 3.0

### gdk_rgba_hash ()

    guint               gdk_rgba_hash                       (gconstpointer p);

A hash function suitable for using for a hash table that stores GdkRGBAs.

`p` : | a GdkRGBA pointer. [type GdkRGBA]
Returns : | The hash value for `p`

Since 3.0

### gdk_rgba_to_string ()

    gchar *             gdk_rgba_to_string                  (const GdkRGBA *rgba);

Returns a textual specification of `rgba` in the form `rgb (r, g, b)` or `rgba (r, g, b, a)`, where 'r', 'g', 'b' and 'a' represent the red, green, blue and alpha values respectively. r, g, and b are represented as integers in the range 0 to 255, and a is represented as floating point value in the range 0 to 1.

These string forms are string forms those supported by the CSS3 colors module, and can be parsed by `gdk_rgba_parse()`.

Note that this string representation may loose some precision, since r, g and b are represented as 8-bit integers. If this is a concern, you should use a different representation.

`rgba` : | a GdkRGBA
Returns : | A newly allocated text string

Since 3.0