gtk/gsk/gskrendernodeiter.h
Emmanuele Bassi 7afdd3fdb5 Initial implementation of GSK rendering pipeline
GSK is conceptually split into two scene graphs:

 * a simple rendering tree of operations
 * a complex set of logical layers

The latter is built on the former, and adds convenience and high level
API for application developers.

The lower layer, though, is what gets transformed into the rendering
pipeline, as it's simple and thus can be transformed into appropriate
rendering commands with minimal state changes.

The lower layer is also suitable for reuse from more complex higher
layers, like the CSS machinery in GTK, without necessarily port those
layers to the GSK high level API.

This lower layer is based on GskRenderNode instances, which represent
the tree of rendering operations; and a GskRenderer instance, which
takes the render nodes and submits them (after potentially reordering
and transforming them to a more appropriate representation) to the
underlying graphic system.
2016-10-18 11:29:34 +01:00

46 lines
1.4 KiB
C

#ifndef __GSK_RENDER_NODE_ITER_H__
#define __GSK_RENDER_NODE_ITER_H__
#include <gsk/gskrendernode.h>
G_BEGIN_DECLS
#define GSK_TYPE_RENDER_NODE_ITER (gsk_render_node_iter_get_type())
typedef struct _GskRenderNodeIter GskRenderNodeIter;
struct _GskRenderNodeIter
{
/*< private >*/
gpointer dummy1;
gpointer dummy2;
gint64 dummy3;
gpointer dummy4;
gpointer dummy5;
};
GDK_AVAILABLE_IN_3_22
GType gsk_render_node_iter_get_type (void) G_GNUC_CONST;
GDK_AVAILABLE_IN_3_22
GskRenderNodeIter * gsk_render_node_iter_new (void);
GDK_AVAILABLE_IN_3_22
void gsk_render_node_iter_free (GskRenderNodeIter *iter);
GDK_AVAILABLE_IN_3_22
void gsk_render_node_iter_init (GskRenderNodeIter *iter,
GskRenderNode *node);
GDK_AVAILABLE_IN_3_22
gboolean gsk_render_node_iter_is_valid (GskRenderNodeIter *iter);
GDK_AVAILABLE_IN_3_22
gboolean gsk_render_node_iter_prev (GskRenderNodeIter *iter,
GskRenderNode **child);
GDK_AVAILABLE_IN_3_22
gboolean gsk_render_node_iter_next (GskRenderNodeIter *iter,
GskRenderNode **child);
GDK_AVAILABLE_IN_3_22
void gsk_render_node_iter_remove (GskRenderNodeIter *iter);
G_END_DECLS
#endif /* GSK_RENDER_NODE_ITER_H */