Release Clutter 1.11.4 (snapshot)
[profile/ivi/clutter.git] / clutter / clutter-paint-nodes.h
1 /*
2  * Clutter.
3  *
4  * An OpenGL based 'interactive canvas' library.
5  *
6  * Copyright (C) 2011  Intel Corporation.
7  *
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.
12  *
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.
17  *
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/>.
20  *
21  * Author:
22  *   Emmanuele Bassi <ebassi@linux.intel.com>
23  */
24
25 #if !defined(__CLUTTER_H_INSIDE__) && !defined(CLUTTER_COMPILATION)
26 #error "Only <clutter/clutter.h> can be included directly."
27 #endif
28
29 #ifndef __CLUTTER_PAINT_NODES_H__
30 #define __CLUTTER_PAINT_NODES_H__
31
32 #include <cogl/cogl.h>
33 #include <clutter/clutter-types.h>
34
35 G_BEGIN_DECLS
36
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))
40
41 /**
42  * ClutterColorNode:
43  *
44  * The <structname>ClutterTextNode</structname> structure is an opaque
45  * type whose members cannot be directly accessed.
46  *
47  * Since: 1.10
48  */
49 typedef struct _ClutterColorNode                ClutterColorNode;
50 typedef struct _ClutterColorNodeClass           ClutterColorNodeClass;
51
52 CLUTTER_AVAILABLE_IN_1_10
53 GType clutter_color_node_get_type (void) G_GNUC_CONST;
54
55 CLUTTER_AVAILABLE_IN_1_10
56 ClutterPaintNode *      clutter_color_node_new          (const ClutterColor    *color);
57
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))
61
62 /**
63  * ClutterTextureNode:
64  *
65  * The <structname>ClutterTextNode</structname> structure is an opaque
66  * type whose members cannot be directly accessed.
67  *
68  * Since: 1.10
69  */
70 typedef struct _ClutterTextureNode              ClutterTextureNode;
71 typedef struct _ClutterTextureNodeClass         ClutterTextureNodeClass;
72
73 CLUTTER_AVAILABLE_IN_1_10
74 GType clutter_texture_node_get_type (void) G_GNUC_CONST;
75
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);
81
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))
85
86 /**
87  * ClutterClipNode:
88  *
89  * The <structname>ClutterTextNode</structname> structure is an opaque
90  * type whose members cannot be directly accessed.
91  *
92  * Since: 1.10
93  */
94 typedef struct _ClutterClipNode                 ClutterClipNode;
95 typedef struct _ClutterClipNodeClass            ClutterClipNodeClass;
96
97 CLUTTER_AVAILABLE_IN_1_10
98 GType clutter_clip_node_get_type (void) G_GNUC_CONST;
99
100 CLUTTER_AVAILABLE_IN_1_10
101 ClutterPaintNode *      clutter_clip_node_new           (void);
102
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))
106
107 /**
108  * ClutterPipelineNode:
109  *
110  * The <structname>ClutterTextNode</structname> structure is an opaque
111  * type whose members cannot be directly accessed.
112  *
113  * Since: 1.10
114  */
115 typedef struct _ClutterPipelineNode             ClutterPipelineNode;
116 typedef struct _ClutterPipelineNodeClass        ClutterPipelineNodeClass;
117
118 CLUTTER_AVAILABLE_IN_1_10
119 GType clutter_pipeline_node_get_type (void) G_GNUC_CONST;
120
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 */
125
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))
129
130 /**
131  * ClutterTextNode:
132  *
133  * The <structname>ClutterTextNode</structname> structure is an opaque
134  * type whose members cannot be directly accessed.
135  *
136  * Since: 1.10
137  */
138 typedef struct _ClutterTextNode                 ClutterTextNode;
139 typedef struct _ClutterTextNodeClass            ClutterTextNodeClass;
140
141 CLUTTER_AVAILABLE_IN_1_10
142 GType clutter_text_node_get_type (void) G_GNUC_CONST;
143
144 CLUTTER_AVAILABLE_IN_1_10
145 ClutterPaintNode *      clutter_text_node_new           (PangoLayout           *layout,
146                                                          const ClutterColor    *color);
147
148 G_END_DECLS
149
150 #endif /* __CLUTTER_PAINT_NODES_H__ */