## ClutterPaintNode

ClutterPaintNode — Paint objects

## Functions

ClutterPaintNode * | clutter_paint_node_ref ()
void | clutter_paint_node_unref ()
void | clutter_paint_node_set_name ()
void | clutter_paint_node_add_child ()
void | clutter_paint_node_add_rectangle ()
void | clutter_paint_node_add_texture_rectangle ()
void | clutter_paint_node_add_path ()
void | clutter_paint_node_add_primitive ()
#define | CLUTTER_VALUE_HOLDS_PAINT_NODE ()
void | clutter_value_set_paint_node ()
void | clutter_value_take_paint_node ()
gpointer | clutter_value_get_paint_node ()
gpointer | clutter_value_dup_paint_node ()

## Types and Values

| ClutterPaintNode
| ClutterPaintNodeClass

## Object Hierarchy

        ClutterPaintNode

## Description

ClutterPaintNode is an element in the render graph.

The render graph contains all the elements that need to be painted by Clutter when submitting a frame to the graphics system.

The render graph is distinct from the scene graph: the scene graph is composed by actors, which can be visible or invisible; the scene graph elements also respond to events. The render graph, instead, is only composed by nodes that will be painted.

Each ClutterActor can submit multiple ClutterPaintNode<!-- -->s to the render graph.

## Functions

### clutter_paint_node_ref ()

    ClutterPaintNode *
    clutter_paint_node_ref (ClutterPaintNode *node);

Acquires a reference on `node` .

#### Parameters

node | a ClutterPaintNode |

#### Returns

the ClutterPaintNode.

[transfer full]

Since: 1.10

### clutter_paint_node_unref ()

    void
    clutter_paint_node_unref (ClutterPaintNode *node);

Releases a reference on `node` .

#### Parameters

node | a ClutterPaintNode |

Since: 1.10

### clutter_paint_node_set_name ()

    void
    clutter_paint_node_set_name (ClutterPaintNode *node,
                                 const char *name);

Sets a user-readable `name` for `node` .

The `name` will be used for debugging purposes.

The `node` will copy the passed string.

#### Parameters

node | a ClutterPaintNode |
name | a string annotating the `node` |

Since: 1.10

### clutter_paint_node_add_child ()

    void
    clutter_paint_node_add_child (ClutterPaintNode *node,
                                  ClutterPaintNode *child);

Adds `child` to the list of children of `node` .

This function will acquire a reference on `child` .

#### Parameters

node | a ClutterPaintNode |
child | the child ClutterPaintNode to add |

Since: 1.10

### clutter_paint_node_add_rectangle ()

    void
    clutter_paint_node_add_rectangle (ClutterPaintNode *node,
                                      const ClutterActorBox *rect);

Adds a rectangle region to the `node` , as described by the passed `rect` .

#### Parameters

node | a ClutterPaintNode |
rect | a ClutterActorBox |

Since: 1.10

### clutter_paint_node_add_texture_rectangle ()

    void
    clutter_paint_node_add_texture_rectangle
                                   (ClutterPaintNode *node,
                                    const ClutterActorBox *rect,
                                    float x_1,
                                    float y_1,
                                    float x_2,
                                    float y_2);

Adds a rectangle region to the `node` , with texture coordinates.

#### Parameters

node | a ClutterPaintNode |
rect | a ClutterActorBox |
x_1 | the left X coordinate of the texture |
y_1 | the top Y coordinate of the texture |
x_2 | the right X coordinate of the texture |
y_2 | the bottom Y coordinate of the texture |

Since: 1.10

### clutter_paint_node_add_path ()

    void
    clutter_paint_node_add_path (ClutterPaintNode *node,
                                 CoglPath *path);

Adds a region described as a path to the `node` .

This function acquires a reference on the passed `path` , so it is safe to call `cogl_object_unref()` when it returns.

#### Parameters

node | a ClutterPaintNode |
path | a Cogl path |

Since: 1.10

Stability Level: Unstable

### clutter_paint_node_add_primitive ()

    void
    clutter_paint_node_add_primitive (ClutterPaintNode *node,
                                      CoglPrimitive *primitive);

Adds a region described by a Cogl primitive to the `node` .

This function acquires a reference on `primitive` , so it is safe to call `cogl_object_unref()` when it returns.

#### Parameters

node | a ClutterPaintNode |
primitive | a Cogl primitive |

Since: 1.10

### CLUTTER_VALUE_HOLDS_PAINT_NODE()

    #define CLUTTER_VALUE_HOLDS_PAINT_NODE(value)   (G_VALUE_HOLDS (value, CLUTTER_TYPE_PAINT_NODE))

Evaluates to `TRUE` if the `value` has been initialized to hold a ClutterPaintNode.

#### Parameters

value | a GValue |

Since: 1.10

### clutter_value_set_paint_node ()

    void
    clutter_value_set_paint_node (GValue *value,
                                  gpointer node);

Sets the contents of a GValue initialized with `CLUTTER_TYPE_PAINT_NODE`.

This function increased the reference count of `node` ; if you do not wish to increase the reference count, use `clutter_value_take_paint_node()` instead. The reference count will be released by `g_value_unset()`.

#### Parameters

value | a GValue initialized with `CLUTTER_TYPE_PAINT_NODE` |
node | a ClutterPaintNode, or `NULL`. | [type Clutter.PaintNode][allow-none]

Since: 1.10

### clutter_value_take_paint_node ()

    void
    clutter_value_take_paint_node (GValue *value,
                                   gpointer node);

Sets the contents of a GValue initialized with `CLUTTER_TYPE_PAINT_NODE`.

Unlike `clutter_value_set_paint_node()`, this function will not take a reference on the passed `node` : instead, it will take ownership of the current reference count.

#### Parameters

value | a GValue, initialized with `CLUTTER_TYPE_PAINT_NODE` |
node | a ClutterPaintNode, or `NULL`. | [type Clutter.PaintNode][allow-none]

Since: 1.10

### clutter_value_get_paint_node ()

    gpointer
    clutter_value_get_paint_node (const GValue *value);

Retrieves a pointer to the ClutterPaintNode contained inside the passed GValue.

#### Parameters

value | a GValue initialized with `CLUTTER_TYPE_PAINT_NODE` |

#### Returns

a pointer to a ClutterPaintNode, or `NULL`.

[transfer none][type Clutter.PaintNode]

Since: 1.10

### clutter_value_dup_paint_node ()

    gpointer
    clutter_value_dup_paint_node (const GValue *value);

Retrieves a pointer to the ClutterPaintNode contained inside the passed GValue, and if not `NULL` it will increase the reference count.

#### Parameters

value | a GValue initialized with `CLUTTER_TYPE_PAINT_NODE` |

#### Returns

a pointer to the ClutterPaintNode, with its reference count increased, or `NULL`.

[transfer full][type Clutter.PaintNode]

Since: 1.10

## Types and Values

### ClutterPaintNode

    typedef struct _ClutterPaintNode ClutterPaintNode;

The `ClutterPaintNode` structure contains only private data and it should be accessed using the provided API.

Since: 1.10

### ClutterPaintNodeClass

    typedef struct _ClutterPaintNodeClass ClutterPaintNodeClass;

The `ClutterPaintNodeClass` structure contains only private data.

Since: 1.10