From 7afdd3fdb5c5fda9da87555b40a61e6a321c2414 Mon Sep 17 00:00:00 2001 From: Emmanuele Bassi Date: Thu, 17 Mar 2016 13:48:19 +0000 Subject: 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. --- gsk/gskcairorendererprivate.h | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) create mode 100644 gsk/gskcairorendererprivate.h (limited to 'gsk/gskcairorendererprivate.h') diff --git a/gsk/gskcairorendererprivate.h b/gsk/gskcairorendererprivate.h new file mode 100644 index 0000000000..7a9bd23456 --- /dev/null +++ b/gsk/gskcairorendererprivate.h @@ -0,0 +1,26 @@ +#ifndef __GSK_CAIRO_RENDERER_PRIVATE_H__ +#define __GSK_CAIRO_RENDERER_PRIVATE_H__ + +#include +#include + +G_BEGIN_DECLS + +#define GSK_TYPE_CAIRO_RENDERER (gsk_cairo_renderer_get_type ()) + +#define GSK_CAIRO_RENDERER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GSK_TYPE_CAIRO_RENDERER, GskCairoRenderer)) +#define GSK_IS_CAIRO_RENDERER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GSK_TYPE_CAIRO_RENDERER)) +#define GSK_CAIRO_RENDERER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GSK_TYPE_CAIRO_RENDERER, GskCairoRendererClass)) +#define GSK_IS_CAIRO_RENDERER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GSK_TYPE_CAIRO_RENDERER)) +#define GSK_CAIRO_RENDERER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GSK_TYPE_CAIRO_RENDERER, GskCairoRendererClass)) + +typedef struct _GskCairoRenderer GskCairoRenderer; +typedef struct _GskCairoRendererClass GskCairoRendererClass; + +GType gsk_cairo_renderer_get_type (void) G_GNUC_CONST; + +GskRenderer *gsk_cairo_renderer_new (void); + +G_END_DECLS + +#endif /* __GSK_CAIRO_RENDERER_PRIVATE_H__ */ -- cgit v1.2.1