4 * An OpenGL based 'interactive canvas' library.
6 * Copyright (C) 2011 Intel Corporation.
8 * This library is free software; you can redistribute it and/or
9 * modify it under the terms of the GNU Lesser General Public
10 * License as published by the Free Software Foundation; either
11 * version 2 of the License, or (at your option) any later version.
13 * This library is distributed in the hope that it will be useful,
14 * but WITHOUT ANY WARRANTY; without even the implied warranty of
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
16 * Lesser General Public License for more details.
18 * You should have received a copy of the GNU Lesser General Public
19 * License along with this library. If not, see <http://www.gnu.org/licenses/>.
22 * Emmanuele Bassi <ebassi@linux.intel.com>
25 #if !defined(__CLUTTER_H_INSIDE__) && !defined(CLUTTER_COMPILATION)
26 #error "Only <clutter/clutter.h> can be included directly."
29 #ifndef __CLUTTER_PAINT_NODES_H__
30 #define __CLUTTER_PAINT_NODES_H__
32 #include <cogl/cogl.h>
33 #include <clutter/clutter-types.h>
37 #define CLUTTER_TYPE_COLOR_NODE (clutter_color_node_get_type ())
38 #define CLUTTER_COLOR_NODE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), CLUTTER_TYPE_COLOR_NODE, ClutterColorNode))
39 #define CLUTTER_IS_COLOR_NODE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), CLUTTER_TYPE_COLOR_NODE))
44 * The <structname>ClutterTextNode</structname> structure is an opaque
45 * type whose members cannot be directly accessed.
49 typedef struct _ClutterColorNode ClutterColorNode;
50 typedef struct _ClutterColorNodeClass ClutterColorNodeClass;
52 CLUTTER_AVAILABLE_IN_1_10
53 GType clutter_color_node_get_type (void) G_GNUC_CONST;
55 CLUTTER_AVAILABLE_IN_1_10
56 ClutterPaintNode * clutter_color_node_new (const ClutterColor *color);
58 #define CLUTTER_TYPE_TEXTURE_NODE (clutter_texture_node_get_type ())
59 #define CLUTTER_TEXTURE_NODE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), CLUTTER_TYPE_TEXTURE_NODE, ClutterTextureNode))
60 #define CLUTTER_IS_TEXTURE_NODE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), CLUTTER_TYPE_TEXTURE_NODE))
65 * The <structname>ClutterTextNode</structname> structure is an opaque
66 * type whose members cannot be directly accessed.
70 typedef struct _ClutterTextureNode ClutterTextureNode;
71 typedef struct _ClutterTextureNodeClass ClutterTextureNodeClass;
73 CLUTTER_AVAILABLE_IN_1_10
74 GType clutter_texture_node_get_type (void) G_GNUC_CONST;
76 CLUTTER_AVAILABLE_IN_1_10
77 ClutterPaintNode * clutter_texture_node_new (CoglTexture *texture,
78 const ClutterColor *color,
79 ClutterScalingFilter min_filter,
80 ClutterScalingFilter mag_filter);
82 #define CLUTTER_TYPE_CLIP_NODE (clutter_clip_node_get_type ())
83 #define CLUTTER_CLIP_NODE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), CLUTTER_TYPE_CLIP_NODE, ClutterClipNode))
84 #define CLUTTER_IS_CLIP_NODE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), CLUTTER_TYPE_CLIP_NODE))
89 * The <structname>ClutterTextNode</structname> structure is an opaque
90 * type whose members cannot be directly accessed.
94 typedef struct _ClutterClipNode ClutterClipNode;
95 typedef struct _ClutterClipNodeClass ClutterClipNodeClass;
97 CLUTTER_AVAILABLE_IN_1_10
98 GType clutter_clip_node_get_type (void) G_GNUC_CONST;
100 CLUTTER_AVAILABLE_IN_1_10
101 ClutterPaintNode * clutter_clip_node_new (void);
103 #define CLUTTER_TYPE_PIPELINE_NODE (clutter_pipeline_node_get_type ())
104 #define CLUTTER_PIPELINE_NODE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), CLUTTER_TYPE_PIPELINE_NODE, ClutterPipelineNode))
105 #define CLUTTER_IS_PIPELINE_NODE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), CLUTTER_TYPE_PIPELINE_NODE))
108 * ClutterPipelineNode:
110 * The <structname>ClutterTextNode</structname> structure is an opaque
111 * type whose members cannot be directly accessed.
115 typedef struct _ClutterPipelineNode ClutterPipelineNode;
116 typedef struct _ClutterPipelineNodeClass ClutterPipelineNodeClass;
118 CLUTTER_AVAILABLE_IN_1_10
119 GType clutter_pipeline_node_get_type (void) G_GNUC_CONST;
121 #if defined(COGL_ENABLE_EXPERIMENTAL_2_0_API) && defined(CLUTTER_ENABLE_EXPERIMENTAL_API)
122 CLUTTER_AVAILABLE_IN_1_10
123 ClutterPaintNode * clutter_pipeline_node_new (CoglPipeline *pipeline);
124 #endif /* COGL_ENABLE_EXPERIMENTAL_2_0_API && CLUTTER_ENABLE_EXPERIMENTAL_API */
126 #define CLUTTER_TYPE_TEXT_NODE (clutter_text_node_get_type ())
127 #define CLUTTER_TEXT_NODE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), CLUTTER_TYPE_TEXT_NODE, ClutterTextNode))
128 #define CLUTTER_IS_TEXT_NODE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), CLUTTER_TYPE_TEXT_NODE))
133 * The <structname>ClutterTextNode</structname> structure is an opaque
134 * type whose members cannot be directly accessed.
138 typedef struct _ClutterTextNode ClutterTextNode;
139 typedef struct _ClutterTextNodeClass ClutterTextNodeClass;
141 CLUTTER_AVAILABLE_IN_1_10
142 GType clutter_text_node_get_type (void) G_GNUC_CONST;
144 CLUTTER_AVAILABLE_IN_1_10
145 ClutterPaintNode * clutter_text_node_new (PangoLayout *layout,
146 const ClutterColor *color);
150 #endif /* __CLUTTER_PAINT_NODES_H__ */