## GskRenderNodeIter GskRenderNodeIter — Iterator helper for render nodes |

## Functions

GskRenderNodeIter * | gsk_render_node_iter_new ()
void | gsk_render_node_iter_free ()
void | gsk_render_node_iter_init ()
gboolean | gsk_render_node_iter_is_valid ()
gboolean | gsk_render_node_iter_prev ()
gboolean | gsk_render_node_iter_next ()
void | gsk_render_node_iter_remove ()

## Object Hierarchy

        GBoxed
        ╰── GskRenderNodeIter

## Description

TODO

## Functions

### gsk_render_node_iter_new ()

    GskRenderNodeIter *
    gsk_render_node_iter_new (void);

Allocates a new GskRenderNodeIter.

[constructor]

#### Returns

the newly allocated GskRenderNodeIter.

[transfer full]

Since: 3.90

### gsk_render_node_iter_free ()

    void
    gsk_render_node_iter_free (GskRenderNodeIter *iter);

Frees the resources allocated by `gsk_render_node_iter_new()`.

#### Parameters

iter | a GskRenderNodeIter |

Since: 3.90

### gsk_render_node_iter_init ()

    void
    gsk_render_node_iter_init (GskRenderNodeIter *iter,
                               GskRenderNode *node);

Initializes a GskRenderNodeIter for iterating over the children of `node` .

It's safe to call this function multiple times on the same GskRenderNodeIter instance.

#### Parameters

iter | a GskRenderNodeIter |
node | a GskRenderNode |

Since: 3.90

### gsk_render_node_iter_is_valid ()

    gboolean
    gsk_render_node_iter_is_valid (GskRenderNodeIter *iter);

Checks whether a GskRenderNodeIter is associated to a GskRenderNode, or whether the associated node was modified while iterating.

#### Parameters

iter | a GskRenderNodeIter |

#### Returns

`TRUE` if the iterator is still valid.

Since: 3.90

### gsk_render_node_iter_prev ()

    gboolean
    gsk_render_node_iter_prev (GskRenderNodeIter *iter,
                               GskRenderNode **child);

Advances the `iter` and retrieves the previous child of the root GskRenderNode used to initialize the GskRenderNodeIter.

If the iterator could advance, this function returns `TRUE` and sets the `child` argument with the child GskRenderNode.

If the iterator could not advance, this function returns `FALSE` and the contents of the `child` argument are undefined.

#### Parameters

iter | a GskRenderNodeIter |
child | return location for a GskRenderNode. | [out][transfer none]

#### Returns

`TRUE` if the iterator could advance, and `FALSE` otherwise

Since: 3.90

### gsk_render_node_iter_next ()

    gboolean
    gsk_render_node_iter_next (GskRenderNodeIter *iter,
                               GskRenderNode **child);

Advances the `iter` and retrieves the next child of the root GskRenderNode used to initialize the GskRenderNodeIter.

If the iterator could advance, this function returns `TRUE` and sets the `child` argument with the child GskRenderNode.

If the iterator could not advance, this function returns `FALSE` and the contents of the `child` argument are undefined.

#### Parameters

iter | a GskRenderNodeIter |
child | return location for a GskRenderNode. | [out][transfer none]

#### Returns

`TRUE` if the iterator could advance, and `FALSE` otherwise

Since: 3.90

### gsk_render_node_iter_remove ()

    void
    gsk_render_node_iter_remove (GskRenderNodeIter *iter);

Removes the child GskRenderNode currently being visited by the iterator.

Calling this function on an invalid GskRenderNodeIter results in undefined behavior.

#### Parameters

iter | a GskRenderNodeIter |

Since: 3.90

## Types and Values