clutter-color

clutter-color — Color management and manipulation.

Functions

Types and Values

Object Hierarchy

    GBoxed
    ╰── ClutterColor
    GParam
    ╰── ClutterParamSpecColor

Description

ClutterColor is a simple type for representing colors in Clutter.

A ClutterColor is expressed as a 4-tuple of values ranging from zero to 255, one for each color channel plus one for the alpha.

The alpha channel is fully opaque at 255 and fully transparent at 0.

Functions

CLUTTER_COLOR_INIT()

#define CLUTTER_COLOR_INIT(r,g,b,a)     { (r), (g), (b), (a) }

A macro that initializes a ClutterColor, to be used when declaring it.

Parameters

r

value for the red channel, between 0 and 255

 

g

value for the green channel, between 0 and 255

 

b

value for the blue channel, between 0 and 255

 

a

value for the alpha channel, between 0 and 255

 

Since: 1.12


clutter_color_new ()

ClutterColor *
clutter_color_new (guint8 red,
                   guint8 green,
                   guint8 blue,
                   guint8 alpha);

Creates a new ClutterColor with the given values.

This function is the equivalent of:

1
clutter_color_init (clutter_color_alloc (), red, green, blue, alpha);

Parameters

red

red component of the color, between 0 and 255

 

green

green component of the color, between 0 and 255

 

blue

blue component of the color, between 0 and 255

 

alpha

alpha component of the color, between 0 and 255

 

Returns

the newly allocated color. Use clutter_color_free() when done.

[transfer full]

Since: 0.8


clutter_color_alloc ()

ClutterColor *
clutter_color_alloc (void);

Allocates a new, transparent black ClutterColor.

[constructor]

Returns

the newly allocated ClutterColor; use clutter_color_free() to free its resources.

[transfer full]

Since: 1.12


clutter_color_init ()

ClutterColor *
clutter_color_init (ClutterColor *color,
                    guint8 red,
                    guint8 green,
                    guint8 blue,
                    guint8 alpha);

Initializes color with the given values.

Parameters

color

a ClutterColor

 

red

red component of the color, between 0 and 255

 

green

green component of the color, between 0 and 255

 

blue

blue component of the color, between 0 and 255

 

alpha

alpha component of the color, between 0 and 255

 

Returns

the initialized ClutterColor.

[transfer none]

Since: 1.12


clutter_color_copy ()

ClutterColor *
clutter_color_copy (const ClutterColor *color);

Makes a copy of the color structure. The result must be freed using clutter_color_free().

Parameters

color

a ClutterColor

 

Returns

an allocated copy of color .

[transfer full]

Since: 0.2


clutter_color_free ()

void
clutter_color_free (ClutterColor *color);

Frees a color structure created with clutter_color_copy().

Parameters

color

a ClutterColor

 

Since: 0.2


clutter_color_add ()

void
clutter_color_add (const ClutterColor *a,
                   const ClutterColor *b,
                   ClutterColor *result);

Adds a to b and saves the resulting color inside result .

The alpha channel of result is set as as the maximum value between the alpha channels of a and b .

Parameters

a

a ClutterColor

 

b

a ClutterColor

 

result

return location for the result.

[out caller-allocates]

clutter_color_subtract ()

void
clutter_color_subtract (const ClutterColor *a,
                        const ClutterColor *b,
                        ClutterColor *result);

Subtracts b from a and saves the resulting color inside result .

This function assumes that the components of a are greater than the components of b ; the result is, otherwise, undefined.

The alpha channel of result is set as the minimum value between the alpha channels of a and b .

Parameters

a

a ClutterColor

 

b

a ClutterColor

 

result

return location for the result.

[out caller-allocates]

clutter_color_lighten ()

void
clutter_color_lighten (const ClutterColor *color,
                       ClutterColor *result);

Lightens color by a fixed amount, and saves the changed color in result .

Parameters

color

a ClutterColor

 

result

return location for the lighter color.

[out caller-allocates]

clutter_color_darken ()

void
clutter_color_darken (const ClutterColor *color,
                      ClutterColor *result);

Darkens color by a fixed amount, and saves the changed color in result .

Parameters

color

a ClutterColor

 

result

return location for the darker color.

[out caller-allocates]

clutter_color_shade ()

void
clutter_color_shade (const ClutterColor *color,
                     gdouble factor,
                     ClutterColor *result);

Shades color by factor and saves the modified color into result .

Parameters

color

a ClutterColor

 

factor

the shade factor to apply

 

result

return location for the shaded color.

[out caller-allocates]

clutter_color_to_string ()

gchar *
clutter_color_to_string (const ClutterColor *color);

Returns a textual specification of color in the hexadecimal form #rrggbbaa, where r, g, b and a are hexadecimal digits representing the red, green, blue and alpha components respectively.

Parameters

color

a ClutterColor

 

Returns

a newly-allocated text string.

[transfer full]

Since: 0.2


clutter_color_from_string ()

gboolean
clutter_color_from_string (ClutterColor *color,
                           const gchar *str);

Parses a string definition of a color, filling the ClutterColor.red, ClutterColor.green, ClutterColor.blue and ClutterColor.alpha fields of color .

The color is not allocated.

The format of str can be either one of:

  • a standard name (as taken from the X11 rgb.txt file)

  • an hexadecimal value in the form: #rgb, #rrggbb, #rgba, or #rrggbbaa

  • a RGB color in the form: rgb(r, g, b)

  • a RGB color in the form: rgba(r, g, b, a)

  • a HSL color in the form: hsl(h, s, l) -a HSL color in the form: hsla(h, s, l, a)

where 'r', 'g', 'b' and 'a' are (respectively) the red, green, blue color intensities and the opacity. The 'h', 's' and 'l' are (respectively) the hue, saturation and luminance values.

In the rgb() and rgba() formats, the 'r', 'g', and 'b' values are either integers between 0 and 255, or percentage values in the range between 0% and 100%; the percentages require the '%' character. The 'a' value, if specified, can only be a floating point value between 0.0 and 1.0.

In the hls() and hlsa() formats, the 'h' value (hue) is an angle between 0 and 360.0 degrees; the 'l' and 's' values (luminance and saturation) are percentage values in the range between 0% and 100%. The 'a' value, if specified, can only be a floating point value between 0.0 and 1.0.

Whitespace inside the definitions is ignored; no leading whitespace is allowed.

If the alpha component is not specified then it is assumed to be set to be fully opaque.

Parameters

color

return location for a ClutterColor.

[out caller-allocates]

str

a string specifiying a color

 

Returns

TRUE if parsing succeeded, and FALSE otherwise

Since: 1.0


clutter_color_to_hls ()

void
clutter_color_to_hls (const ClutterColor *color,
                      gfloat *hue,
                      gfloat *luminance,
                      gfloat *saturation);

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 ClutterColor

 

hue

return location for the hue value or NULL.

[out]

luminance

return location for the luminance value or NULL.

[out]

saturation

return location for the saturation value or NULL.

[out]

clutter_color_from_hls ()

void
clutter_color_from_hls (ClutterColor *color,
                        gfloat hue,
                        gfloat luminance,
                        gfloat saturation);

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

Parameters

color

return location for a ClutterColor.

[out]

hue

hue value, in the 0 .. 360 range

 

luminance

luminance value, in the 0 .. 1 range

 

saturation

saturation value, in the 0 .. 1 range

 

clutter_color_to_pixel ()

guint32
clutter_color_to_pixel (const ClutterColor *color);

Converts color into a packed 32 bit integer, containing all the four 8 bit channels used by ClutterColor.

Parameters

color

a ClutterColor

 

Returns

a packed color


clutter_color_from_pixel ()

void
clutter_color_from_pixel (ClutterColor *color,
                          guint32 pixel);

Converts pixel from the packed representation of a four 8 bit channel color to a ClutterColor.

Parameters

color

return location for a ClutterColor.

[out caller-allocates]

pixel

a 32 bit packed integer containing a color

 

clutter_color_hash ()

guint
clutter_color_hash (gconstpointer v);

Converts a ClutterColor to a hash value.

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

Parameters

v

a ClutterColor.

[type Clutter.Color]

Returns

a hash value corresponding to the color

Since: 1.0


clutter_color_equal ()

gboolean
clutter_color_equal (gconstpointer v1,
                     gconstpointer v2);

Compares two ClutterColors 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 ClutterColors as keys in a GHashTable.

Parameters

v1

a ClutterColor.

[type Clutter.Color]

v2

a ClutterColor.

[type Clutter.Color]

Returns

TRUE if the two colors are the same.

Since: 0.2


clutter_color_interpolate ()

void
clutter_color_interpolate (const ClutterColor *initial,
                           const ClutterColor *final,
                           gdouble progress,
                           ClutterColor *result);

Interpolates between initial and final ClutterColors using progress

Parameters

initial

the initial ClutterColor

 

final

the final ClutterColor

 

progress

the interpolation progress

 

result

return location for the interpolation.

[out]

Since: 1.6


clutter_value_set_color ()

void
clutter_value_set_color (GValue *value,
                         const ClutterColor *color);

Sets value to color .

Parameters

value

a GValue initialized to CLUTTER_TYPE_COLOR

 

color

the color to set

 

Since: 0.8


clutter_value_get_color ()

const ClutterColor *
clutter_value_get_color (const GValue *value);

Gets the ClutterColor contained in value .

Parameters

value

a GValue initialized to CLUTTER_TYPE_COLOR

 

Returns

the color inside the passed GValue.

[transfer none]

Since: 0.8


clutter_param_spec_color ()

GParamSpec *
clutter_param_spec_color (const gchar *name,
                          const gchar *nick,
                          const gchar *blurb,
                          const ClutterColor *default_value,
                          GParamFlags flags);

Creates a GParamSpec for properties using ClutterColor.

[skip]

Parameters

name

name of the property

 

nick

short name

 

blurb

description (can be translatable)

 

default_value

default value

 

flags

flags for the param spec

 

Returns

the newly created GParamSpec

Since: 0.8


clutter_color_get_static ()

const ClutterColor *
clutter_color_get_static (ClutterStaticColor color);

Retrieves a static color for the given color name

Static colors are created by Clutter and are guaranteed to always be available and valid

Parameters

color

the named global color

 

Returns

a pointer to a static color; the returned pointer is owned by Clutter and it should never be modified or freed

Since: 1.6

Types and Values

ClutterColor

typedef struct {
  guint8 red;
  guint8 green;
  guint8 blue;

  guint8 alpha;
} ClutterColor;

Color representation.

Members

guint8 red;

red component, between 0 and 255

 

guint8 green;

green component, between 0 and 255

 

guint8 blue;

blue component, between 0 and 255

 

guint8 alpha;

alpha component, between 0 and 255

 

struct ClutterParamSpecColor

struct ClutterParamSpecColor {
  ClutterColor *default_value;
};

A GParamSpec subclass for defining properties holding a ClutterColor.

Members

ClutterColor *default_value;

default color value

 

Since: 1.0