## Color Type Color Type — A generic color definition |

## Functions

CoglColor * | cogl_color_new ()
CoglColor * | cogl_color_copy ()
void | cogl_color_free ()
void | cogl_color_init_from_4f ()
void | cogl_color_init_from_4fv ()
void | cogl_color_init_from_4ub ()
void | cogl_color_set_from_4ub ()
void | cogl_color_set_from_4f ()
float | cogl_color_get_red ()
float | cogl_color_get_green ()
float | cogl_color_get_blue ()
float | cogl_color_get_alpha ()
unsigned char | cogl_color_get_red_byte ()
unsigned char | cogl_color_get_green_byte ()
unsigned char | cogl_color_get_blue_byte ()
unsigned char | cogl_color_get_alpha_byte ()
float | cogl_color_get_red_float ()
float | cogl_color_get_green_float ()
float | cogl_color_get_blue_float ()
float | cogl_color_get_alpha_float ()
void | cogl_color_set_red ()
void | cogl_color_set_green ()
void | cogl_color_set_blue ()
void | cogl_color_set_alpha ()
void | cogl_color_set_red_byte ()
void | cogl_color_set_green_byte ()
void | cogl_color_set_blue_byte ()
void | cogl_color_set_alpha_byte ()
void | cogl_color_set_red_float ()
void | cogl_color_set_green_float ()
void | cogl_color_set_blue_float ()
void | cogl_color_set_alpha_float ()
void | cogl_color_premultiply ()
void | cogl_color_unpremultiply ()
CoglBool | cogl_color_equal ()
void | cogl_color_init_from_hsl ()
void | cogl_color_to_hsl ()

## Types and Values

struct | CoglColor

## Description

CoglColor is a simple structure holding the definition of a color such that it can be efficiently used by GL

## Functions

### cogl_color_new ()

    CoglColor *
    cogl_color_new (void);

Creates a new (empty) color

#### Returns

a newly-allocated CoglColor. Use `cogl_color_free()` to free the allocated resources

Since: 1.0

### cogl_color_copy ()

    CoglColor *
    cogl_color_copy (const CoglColor *color);

Creates a copy of `color`

#### Parameters

color | the color to copy |

#### Returns

a newly-allocated CoglColor. Use `cogl_color_free()` to free the allocate resources

Since: 1.0

### cogl_color_free ()

    void
    cogl_color_free (CoglColor *color);

Frees the resources allocated by `cogl_color_new()` and `cogl_color_copy()`

#### Parameters

color | the color to free |

Since: 1.0

### cogl_color_init_from_4f ()

    void
    cogl_color_init_from_4f (CoglColor *color,
                             float red,
                             float green,
                             float blue,
                             float alpha);

Sets the values of the passed channels into a CoglColor

#### Parameters

color | A pointer to a CoglColor to initialize |
red | value of the red channel, between 0 and 1.0 |
green | value of the green channel, between 0 and 1.0 |
blue | value of the blue channel, between 0 and 1.0 |
alpha | value of the alpha channel, between 0 and 1.0 |

Since: 1.4

### cogl_color_init_from_4fv ()

    void
    cogl_color_init_from_4fv (CoglColor *color,
                              const float *color_array);

Sets the values of the passed channels into a CoglColor

#### Parameters

color | A pointer to a CoglColor to initialize |
color_array | a pointer to an array of 4 float color components |

Since: 1.4

### cogl_color_init_from_4ub ()

    void
    cogl_color_init_from_4ub (CoglColor *color,
                              uint8_t red,
                              uint8_t green,
                              uint8_t blue,
                              uint8_t alpha);

Sets the values of the passed channels into a CoglColor.

#### Parameters

color | A pointer to a CoglColor to initialize |
red | value of the red channel, between 0 and 255 |
green | value of the green channel, between 0 and 255 |
blue | value of the blue channel, between 0 and 255 |
alpha | value of the alpha channel, between 0 and 255 |

Since: 1.4

### cogl_color_set_from_4ub ()

    void
    cogl_color_set_from_4ub (CoglColor *color,
                             uint8_t red,
                             uint8_t green,
                             uint8_t blue,
                             uint8_t alpha);

`cogl_color_set_from_4ub` has been deprecated since version 1.4 and should not be used in newly-written code.

Use cogl_color_init_from_4ub instead.

Sets the values of the passed channels into a CoglColor.

#### Parameters

color | A pointer to a CoglColor to initialize |
red | value of the red channel, between 0 and 255 |
green | value of the green channel, between 0 and 255 |
blue | value of the blue channel, between 0 and 255 |
alpha | value of the alpha channel, between 0 and 255 |

Since: 1.0

### cogl_color_set_from_4f ()

    void
    cogl_color_set_from_4f (CoglColor *color,
                            float red,
                            float green,
                            float blue,
                            float alpha);

`cogl_color_set_from_4f` has been deprecated since version 1.4 and should not be used in newly-written code.

Use cogl_color_init_from_4f instead.

Sets the values of the passed channels into a CoglColor

#### Parameters

color | A pointer to a CoglColor to initialize |
red | value of the red channel, between 0 and `1`.0 |
green | value of the green channel, between 0 and `1`.0 |
blue | value of the blue channel, between 0 and `1`.0 |
alpha | value of the alpha channel, between 0 and `1`.0 |

Since: 1.0

### cogl_color_get_red ()

    float
    cogl_color_get_red (const CoglColor *color);

Retrieves the red channel of `color` as a fixed point value between 0 and 1.0.

#### Parameters

color | a CoglColor |

#### Returns

the red channel of the passed color

Since: 1.0

### cogl_color_get_green ()

    float
    cogl_color_get_green (const CoglColor *color);

Retrieves the green channel of `color` as a fixed point value between 0 and 1.0.

#### Parameters

color | a CoglColor |

#### Returns

the green channel of the passed color

Since: 1.0

### cogl_color_get_blue ()

    float
    cogl_color_get_blue (const CoglColor *color);

Retrieves the blue channel of `color` as a fixed point value between 0 and 1.0.

#### Parameters

color | a CoglColor |

#### Returns

the blue channel of the passed color

Since: 1.0

### cogl_color_get_alpha ()

    float
    cogl_color_get_alpha (const CoglColor *color);

Retrieves the alpha channel of `color` as a fixed point value between 0 and 1.0.

#### Parameters

color | a CoglColor |

#### Returns

the alpha channel of the passed color

Since: 1.0

### cogl_color_get_red_byte ()

    unsigned char
    cogl_color_get_red_byte (const CoglColor *color);

Retrieves the red channel of `color` as a byte value between 0 and 255

#### Parameters

color | a CoglColor |

#### Returns

the red channel of the passed color

Since: 1.0

### cogl_color_get_green_byte ()

    unsigned char
    cogl_color_get_green_byte (const CoglColor *color);

Retrieves the green channel of `color` as a byte value between 0 and 255

#### Parameters

color | a CoglColor |

#### Returns

the green channel of the passed color

Since: 1.0

### cogl_color_get_blue_byte ()

    unsigned char
    cogl_color_get_blue_byte (const CoglColor *color);

Retrieves the blue channel of `color` as a byte value between 0 and 255

#### Parameters

color | a CoglColor |

#### Returns

the blue channel of the passed color

Since: 1.0

### cogl_color_get_alpha_byte ()

    unsigned char
    cogl_color_get_alpha_byte (const CoglColor *color);

Retrieves the alpha channel of `color` as a byte value between 0 and 255

#### Parameters

color | a CoglColor |

#### Returns

the alpha channel of the passed color

Since: 1.0

### cogl_color_get_red_float ()

    float
    cogl_color_get_red_float (const CoglColor *color);

Retrieves the red channel of `color` as a floating point value between 0.0 and 1.0

#### Parameters

color | a CoglColor |

#### Returns

the red channel of the passed color

Since: 1.0

### cogl_color_get_green_float ()

    float
    cogl_color_get_green_float (const CoglColor *color);

Retrieves the green channel of `color` as a floating point value between 0.0 and 1.0

#### Parameters

color | a CoglColor |

#### Returns

the green channel of the passed color

Since: 1.0

### cogl_color_get_blue_float ()

    float
    cogl_color_get_blue_float (const CoglColor *color);

Retrieves the blue channel of `color` as a floating point value between 0.0 and 1.0

#### Parameters

color | a CoglColor |

#### Returns

the blue channel of the passed color

Since: 1.0

### cogl_color_get_alpha_float ()

    float
    cogl_color_get_alpha_float (const CoglColor *color);

Retrieves the alpha channel of `color` as a floating point value between 0.0 and 1.0

#### Parameters

color | a CoglColor |

#### Returns

the alpha channel of the passed color

Since: 1.0

### cogl_color_set_red ()

    void
    cogl_color_set_red (CoglColor *color,
                        float red);

Sets the red channel of `color` to `red` .

#### Parameters

color | a CoglColor |
red | a float value between 0.0f and 1.0f |

Since: 1.4

### cogl_color_set_green ()

    void
    cogl_color_set_green (CoglColor *color,
                          float green);

Sets the green channel of `color` to `green` .

#### Parameters

color | a CoglColor |
green | a float value between 0.0f and 1.0f |

Since: 1.4

### cogl_color_set_blue ()

    void
    cogl_color_set_blue (CoglColor *color,
                         float blue);

Sets the blue channel of `color` to `blue` .

#### Parameters

color | a CoglColor |
blue | a float value between 0.0f and 1.0f |

Since: 1.4

### cogl_color_set_alpha ()

    void
    cogl_color_set_alpha (CoglColor *color,
                          float alpha);

Sets the alpha channel of `color` to `alpha` .

#### Parameters

color | a CoglColor |
alpha | a float value between 0.0f and 1.0f |

Since: 1.4

### cogl_color_set_red_byte ()

    void
    cogl_color_set_red_byte (CoglColor *color,
                             unsigned char red);

Sets the red channel of `color` to `red` .

#### Parameters

color | a CoglColor |
red | a byte value between 0 and 255 |

Since: 1.4

### cogl_color_set_green_byte ()

    void
    cogl_color_set_green_byte (CoglColor *color,
                               unsigned char green);

Sets the green channel of `color` to `green` .

#### Parameters

color | a CoglColor |
green | a byte value between 0 and 255 |

Since: 1.4

### cogl_color_set_blue_byte ()

    void
    cogl_color_set_blue_byte (CoglColor *color,
                              unsigned char blue);

Sets the blue channel of `color` to `blue` .

#### Parameters

color | a CoglColor |
blue | a byte value between 0 and 255 |

Since: 1.4

### cogl_color_set_alpha_byte ()

    void
    cogl_color_set_alpha_byte (CoglColor *color,
                               unsigned char alpha);

Sets the alpha channel of `color` to `alpha` .

#### Parameters

color | a CoglColor |
alpha | a byte value between 0 and 255 |

Since: 1.4

### cogl_color_set_red_float ()

    void
    cogl_color_set_red_float (CoglColor *color,
                              float red);

Sets the red channel of `color` to `red` .

#### Parameters

color | a CoglColor |
red | a float value between 0.0f and 1.0f |

Since: 1.4

### cogl_color_set_green_float ()

    void
    cogl_color_set_green_float (CoglColor *color,
                                float green);

Sets the green channel of `color` to `green` .

#### Parameters

color | a CoglColor |
green | a float value between 0.0f and 1.0f |

Since: 1.4

### cogl_color_set_blue_float ()

    void
    cogl_color_set_blue_float (CoglColor *color,
                               float blue);

Sets the blue channel of `color` to `blue` .

#### Parameters

color | a CoglColor |
blue | a float value between 0.0f and 1.0f |

Since: 1.4

### cogl_color_set_alpha_float ()

    void
    cogl_color_set_alpha_float (CoglColor *color,
                                float alpha);

Sets the alpha channel of `color` to `alpha` .

#### Parameters

color | a CoglColor |
alpha | a float value between 0.0f and 1.0f |

Since: 1.4

### cogl_color_premultiply ()

    void
    cogl_color_premultiply (CoglColor *color);

Converts a non-premultiplied color to a pre-multiplied color. For example, semi-transparent red is (1.0, 0, 0, 0.5) when non-premultiplied and (0.5, 0, 0, 0.5) when premultiplied.

#### Parameters

color | the color to premultiply |

Since: 1.0

### cogl_color_unpremultiply ()

    void
    cogl_color_unpremultiply (CoglColor *color);

Converts a pre-multiplied color to a non-premultiplied color. For example, semi-transparent red is (0.5, 0, 0, 0.5) when premultiplied and (1.0, 0, 0, 0.5) when non-premultiplied.

#### Parameters

color | the color to unpremultiply |

Since: 1.4

### cogl_color_equal ()

    CoglBool
    cogl_color_equal (const void *v1,
                      const void *v2);

Compares two CoglColors and checks if they are the same.

This function can be passed to `g_hash_table_new()` as the `key_equal_func` parameter, when using CoglColors as keys in a GHashTable.

#### Parameters

v1 | a CoglColor |
v2 | a CoglColor |

#### Returns

`TRUE` if the two colors are the same.

Since: 1.0

### cogl_color_init_from_hsl ()

    void
    cogl_color_init_from_hsl (CoglColor *color,
                              float hue,
                              float saturation,
                              float luminance);

Converts a color expressed in HLS (hue, luminance and saturation) values into a CoglColor.

#### Parameters

color | return location for a CoglColor. | [out]
hue | hue value, in the 0 .. 360 range |
saturation | saturation value, in the 0 .. 1 range |
luminance | luminance value, in the 0 .. 1 range |

Since: 1.16

### cogl_color_to_hsl ()

    void
    cogl_color_to_hsl (const CoglColor *color,
                       float *hue,
                       float *saturation,
                       float *luminance);

Converts `color` to the HLS format.

The `hue` value is in the 0 .. 360 range. The `luminance` and `saturation` values are in the 0 .. 1 range.

#### Parameters

color | a CoglColor |
hue | return location for the hue value or `NULL`. | [out]
saturation | return location for the saturation value or `NULL`. | [out]
luminance | return location for the luminance value or `NULL`. | [out]

Since: 1.16

## Types and Values

### struct CoglColor

    struct CoglColor {
    };

A structure for holding a color definition. The contents of the CoglColor structure are private and should never by accessed directly.

#### Members

Since: 1.0