## Paint Nodes

Paint Nodes — ClutterPaintNode implementations

## Functions

ClutterPaintNode * | clutter_color_node_new ()
ClutterPaintNode * | clutter_texture_node_new ()
ClutterPaintNode * | clutter_pipeline_node_new ()
ClutterPaintNode * | clutter_text_node_new ()
ClutterPaintNode * | clutter_clip_node_new ()

## Types and Values

| ClutterColorNode
| ClutterColorNodeClass
| ClutterTextureNode
| ClutterTextureNodeClass
| ClutterPipelineNode
| ClutterPipelineNodeClass
| ClutterTextNode
| ClutterTextNodeClass
| ClutterClipNode
| ClutterClipNodeClass

## Description

Clutter provides a set of predefined ClutterPaintNode implementations that cover all the state changes available.

## Functions

### clutter_color_node_new ()

    ClutterPaintNode *
    clutter_color_node_new (const ClutterColor *color);

Creates a new ClutterPaintNode that will paint a solid color fill using `color` .

#### Parameters

color | the color to paint, or `NULL`. | [allow-none]

#### Returns

the newly created ClutterPaintNode. Use `clutter_paint_node_unref()` when done.

[transfer full]

Since 1.10

### clutter_texture_node_new ()

    ClutterPaintNode *
    clutter_texture_node_new (CoglTexture *texture,
                              const ClutterColor *color,
                              ClutterScalingFilter min_filter,
                              ClutterScalingFilter mag_filter);

Creates a new ClutterPaintNode that will paint the passed `texture` .

This function will take a reference on `texture` , so it is safe to call `cogl_object_unref()` on `texture` when it returns.

The `color` must not be pre-multiplied with its ClutterColor.alpha channel value; if `color` is `NULL`, a fully opaque white color will be used for blending.

#### Parameters

texture | a CoglTexture |
color | a ClutterColor used for blending, or `NULL`. | [allow-none]
min_filter | the minification filter for the texture |
mag_filter | the magnification filter for the texture |

#### Returns

the newly created ClutterPaintNode. Use `clutter_paint_node_unref()` when done.

[transfer full]

Since 1.10

### clutter_pipeline_node_new ()

    ClutterPaintNode *
    clutter_pipeline_node_new (CoglPipeline *pipeline);

Creates a new ClutterPaintNode that will use the `pipeline` to paint its contents.

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

#### Parameters

pipeline | a Cogl pipeline state object, or `NULL`. | [allow-none]

#### Returns

the newly created ClutterPaintNode. Use `clutter_paint_node_unref()` when done.

[transfer full]

Since 1.10

### clutter_text_node_new ()

    ClutterPaintNode *
    clutter_text_node_new (PangoLayout *layout,
                           const ClutterColor *color);

Creates a new ClutterPaintNode that will paint a PangoLayout with the given color.

This function takes a reference on the passed `layout` , so it is safe to call `g_object_unref()` after it returns.

#### Parameters

layout | a PangoLayout, or `NULL`. | [allow-none]
color | the color used to paint the layout, or `NULL`. | [allow-none]

#### Returns

the newly created ClutterPaintNode. Use `clutter_paint_node_unref()` when done.

[transfer full]

Since 1.10

### clutter_clip_node_new ()

    ClutterPaintNode *
    clutter_clip_node_new (void);

Creates a new ClutterPaintNode that will clip its child nodes to the 2D regions added to it.

#### Returns

the newly created ClutterPaintNode. Use `clutter_paint_node_unref()` when done.

[transfer full]

Since 1.10

## Types and Values

### ClutterColorNode

    typedef struct _ClutterColorNode ClutterColorNode;

The ClutterTextNode structure is an opaque type whose members cannot be directly accessed.

Since 1.10

### ClutterColorNodeClass

    typedef struct _ClutterColorNodeClass ClutterColorNodeClass;

The <structname>ClutterColorNodeClass</structname> structure is an opaque type whose members cannot be directly accessed.

Since 1.10

### ClutterTextureNode

    typedef struct _ClutterTextureNode ClutterTextureNode;

The ClutterTextNode structure is an opaque type whose members cannot be directly accessed.

Since 1.10

### ClutterTextureNodeClass

    typedef struct _ClutterTextureNodeClass ClutterTextureNodeClass;

The <structname>ClutterTextureNodeClass</structname> structure is an opaque type whose members cannot be directly accessed.

Since 1.10

### ClutterPipelineNode

    typedef struct _ClutterPipelineNode ClutterPipelineNode;

The ClutterTextNode structure is an opaque type whose members cannot be directly accessed.

Since 1.10

### ClutterPipelineNodeClass

    typedef struct _ClutterPipelineNodeClass ClutterPipelineNodeClass;

The <structname>ClutterPipelineNodeClass</structname> structure is an opaque type whose members cannot be directly accessed.

Since 1.10

### ClutterTextNode

    typedef struct _ClutterTextNode ClutterTextNode;

The ClutterTextNode structure is an opaque type whose members cannot be directly accessed.

Since 1.10

### ClutterTextNodeClass

    typedef struct _ClutterTextNodeClass ClutterTextNodeClass;

The <structname>ClutterTextNodeClass</structname> structure is an opaque type whose contents cannot be directly accessed.

Since 1.10

### ClutterClipNode

    typedef struct _ClutterClipNode ClutterClipNode;

The ClutterTextNode structure is an opaque type whose members cannot be directly accessed.

Since 1.10

### ClutterClipNodeClass

    typedef struct _ClutterClipNodeClass ClutterClipNodeClass;

The <structname>ClutterClipNodeClass</structname> structure is an opaque type whose members cannot be directly accessed.

Since 1.10