4 * An OpenGL based 'interactive canvas' library.
6 * Copyright (C) 2010 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_OFFSCREEN_EFFECT_H__
30 #define __CLUTTER_OFFSCREEN_EFFECT_H__
32 #include <cogl/cogl.h>
33 #include <clutter/clutter-effect.h>
34 #include <clutter/clutter-cogl-compat.h>
38 #define CLUTTER_TYPE_OFFSCREEN_EFFECT (clutter_offscreen_effect_get_type ())
39 #define CLUTTER_OFFSCREEN_EFFECT(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), CLUTTER_TYPE_OFFSCREEN_EFFECT, ClutterOffscreenEffect))
40 #define CLUTTER_IS_OFFSCREEN_EFFECT(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), CLUTTER_TYPE_OFFSCREEN_EFFECT))
41 #define CLUTTER_OFFSCREEN_EFFECT_CLASS(k) (G_TYPE_CHECK_CLASS_CAST ((k), CLUTTER_TYPE_OFFSCREEN_EFFECT, ClutterOffscreenEffectClass))
42 #define CLUTTER_IS_OFFSCREEN_EFFECT_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), CLUTTER_TYPE_OFFSCREEN_EFFECT))
43 #define CLUTTER_OFFSCREEN_EFFECT_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), CLUTTER_TYPE_OFFSCREEN_EFFECT, ClutterOffscreenEffectClass))
45 typedef struct _ClutterOffscreenEffect ClutterOffscreenEffect;
46 typedef struct _ClutterOffscreenEffectPrivate ClutterOffscreenEffectPrivate;
47 typedef struct _ClutterOffscreenEffectClass ClutterOffscreenEffectClass;
50 * ClutterOffscreenEffect:
52 * The #ClutterOffscreenEffect structure contains only private data
53 * and should be accessed using the provided API
57 struct _ClutterOffscreenEffect
60 ClutterEffect parent_instance;
62 ClutterOffscreenEffectPrivate *priv;
66 * ClutterOffscreenEffectClass:
67 * @create_texture: virtual function
68 * @paint_target: virtual function
70 * The #ClutterOffscreenEffectClass structure contains only private data
74 struct _ClutterOffscreenEffectClass
77 ClutterEffectClass parent_class;
80 CoglHandle (* create_texture) (ClutterOffscreenEffect *effect,
83 void (* paint_target) (ClutterOffscreenEffect *effect);
86 void (* _clutter_offscreen1) (void);
87 void (* _clutter_offscreen2) (void);
88 void (* _clutter_offscreen3) (void);
89 void (* _clutter_offscreen4) (void);
90 void (* _clutter_offscreen5) (void);
91 void (* _clutter_offscreen6) (void);
92 void (* _clutter_offscreen7) (void);
95 GType clutter_offscreen_effect_get_type (void) G_GNUC_CONST;
97 CoglMaterial * clutter_offscreen_effect_get_target (ClutterOffscreenEffect *effect);
99 CLUTTER_AVAILABLE_IN_1_10
100 CoglHandle clutter_offscreen_effect_get_texture (ClutterOffscreenEffect *effect);
102 void clutter_offscreen_effect_paint_target (ClutterOffscreenEffect *effect);
103 CoglHandle clutter_offscreen_effect_create_texture (ClutterOffscreenEffect *effect,
106 gboolean clutter_offscreen_effect_get_target_size (ClutterOffscreenEffect *effect,
112 #endif /* __CLUTTER_OFFSCREEN_EFFECT_H__ */