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_NODE_H__
30 #define __CLUTTER_PAINT_NODE_H__
32 #include <cogl/cogl.h>
33 #include <clutter/clutter-types.h>
37 #define CLUTTER_TYPE_PAINT_NODE (clutter_paint_node_get_type ())
38 #define CLUTTER_PAINT_NODE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), CLUTTER_TYPE_PAINT_NODE, ClutterPaintNode))
39 #define CLUTTER_IS_PAINT_NODE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), CLUTTER_TYPE_PAINT_NODE))
41 typedef struct _ClutterPaintNodePrivate ClutterPaintNodePrivate;
42 typedef struct _ClutterPaintNodeClass ClutterPaintNodeClass;
44 CLUTTER_AVAILABLE_IN_1_10
45 GType clutter_paint_node_get_type (void) G_GNUC_CONST;
47 CLUTTER_AVAILABLE_IN_1_10
48 ClutterPaintNode * clutter_paint_node_ref (ClutterPaintNode *node);
49 CLUTTER_AVAILABLE_IN_1_10
50 void clutter_paint_node_unref (ClutterPaintNode *node);
52 CLUTTER_AVAILABLE_IN_1_10
53 void clutter_paint_node_set_name (ClutterPaintNode *node,
56 CLUTTER_AVAILABLE_IN_1_10
57 void clutter_paint_node_add_child (ClutterPaintNode *node,
58 ClutterPaintNode *child);
59 CLUTTER_AVAILABLE_IN_1_10
60 void clutter_paint_node_add_rectangle (ClutterPaintNode *node,
61 const ClutterActorBox *rect);
62 CLUTTER_AVAILABLE_IN_1_10
63 void clutter_paint_node_add_texture_rectangle (ClutterPaintNode *node,
64 const ClutterActorBox *rect,
69 #if defined(COGL_ENABLE_EXPERIMENTAL_2_0_API) && defined(CLUTTER_ENABLE_EXPERIMENTAL_API)
70 CLUTTER_AVAILABLE_IN_1_10
71 void clutter_paint_node_add_path (ClutterPaintNode *node,
73 CLUTTER_AVAILABLE_IN_1_10
74 void clutter_paint_node_add_primitive (ClutterPaintNode *node,
75 CoglPrimitive *primitive);
76 #endif /* COGL_ENABLE_EXPERIMENTAL_2_0_API && CLUTTER_ENABLE_EXPERIMENTAL_API */
78 #define CLUTTER_VALUE_HOLDS_PAINT_NODE(value) (G_VALUE_HOLDS (value, CLUTTER_TYPE_PAINT_NODE))
80 CLUTTER_AVAILABLE_IN_1_10
81 void clutter_value_set_paint_node (GValue *value,
83 CLUTTER_AVAILABLE_IN_1_10
84 void clutter_value_take_paint_node (GValue *value,
86 CLUTTER_AVAILABLE_IN_1_10
87 gpointer clutter_value_get_paint_node (const GValue *value);
88 CLUTTER_AVAILABLE_IN_1_10
89 gpointer clutter_value_dup_paint_node (const GValue *value);
93 #endif /* __CLUTTER_PAINT_NODE_H__ */