## 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
        ├── ClutterClipNode
        ├── ClutterPipelineNode
        ╰── ClutterTextNode

## 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 ClutterPaintNodes 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