/* * Clutter. * * An OpenGL based 'interactive canvas' library. * * Copyright (C) 2011 Intel Corporation. * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library. If not, see . * * Author: * Emmanuele Bassi */ #ifndef __CLUTTER_PAINT_NODES_H__ #define __CLUTTER_PAINT_NODES_H__ #if !defined(__CLUTTER_H_INSIDE__) && !defined(CLUTTER_COMPILATION) #error "Only can be included directly." #endif #include #include G_BEGIN_DECLS #define CLUTTER_TYPE_COLOR_NODE (clutter_color_node_get_type ()) #define CLUTTER_COLOR_NODE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), CLUTTER_TYPE_COLOR_NODE, ClutterColorNode)) #define CLUTTER_IS_COLOR_NODE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), CLUTTER_TYPE_COLOR_NODE)) /** * ClutterColorNode: * * The #ClutterTextNode structure is an opaque * type whose members cannot be directly accessed. * * Since: 1.10 */ typedef struct _ClutterColorNode ClutterColorNode; typedef struct _ClutterColorNodeClass ClutterColorNodeClass; CLUTTER_EXPORT GType clutter_color_node_get_type (void) G_GNUC_CONST; CLUTTER_EXPORT ClutterPaintNode * clutter_color_node_new (const ClutterColor *color); #define CLUTTER_TYPE_TEXTURE_NODE (clutter_texture_node_get_type ()) #define CLUTTER_TEXTURE_NODE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), CLUTTER_TYPE_TEXTURE_NODE, ClutterTextureNode)) #define CLUTTER_IS_TEXTURE_NODE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), CLUTTER_TYPE_TEXTURE_NODE)) /** * ClutterTextureNode: * * The #ClutterTextNode structure is an opaque * type whose members cannot be directly accessed. * * Since: 1.10 */ typedef struct _ClutterTextureNode ClutterTextureNode; typedef struct _ClutterTextureNodeClass ClutterTextureNodeClass; CLUTTER_EXPORT GType clutter_texture_node_get_type (void) G_GNUC_CONST; CLUTTER_EXPORT ClutterPaintNode * clutter_texture_node_new (CoglTexture *texture, const ClutterColor *color, ClutterScalingFilter min_filter, ClutterScalingFilter mag_filter); #define CLUTTER_TYPE_CLIP_NODE (clutter_clip_node_get_type ()) #define CLUTTER_CLIP_NODE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), CLUTTER_TYPE_CLIP_NODE, ClutterClipNode)) #define CLUTTER_IS_CLIP_NODE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), CLUTTER_TYPE_CLIP_NODE)) /** * ClutterClipNode: * * The #ClutterTextNode structure is an opaque * type whose members cannot be directly accessed. * * Since: 1.10 */ typedef struct _ClutterClipNode ClutterClipNode; typedef struct _ClutterClipNodeClass ClutterClipNodeClass; CLUTTER_EXPORT GType clutter_clip_node_get_type (void) G_GNUC_CONST; CLUTTER_EXPORT ClutterPaintNode * clutter_clip_node_new (void); #define CLUTTER_TYPE_PIPELINE_NODE (clutter_pipeline_node_get_type ()) #define CLUTTER_PIPELINE_NODE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), CLUTTER_TYPE_PIPELINE_NODE, ClutterPipelineNode)) #define CLUTTER_IS_PIPELINE_NODE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), CLUTTER_TYPE_PIPELINE_NODE)) /** * ClutterPipelineNode: * * The #ClutterTextNode structure is an opaque * type whose members cannot be directly accessed. * * Since: 1.10 */ typedef struct _ClutterPipelineNode ClutterPipelineNode; typedef struct _ClutterPipelineNodeClass ClutterPipelineNodeClass; CLUTTER_EXPORT GType clutter_pipeline_node_get_type (void) G_GNUC_CONST; CLUTTER_EXPORT ClutterPaintNode * clutter_pipeline_node_new (CoglPipeline *pipeline); #define CLUTTER_TYPE_TEXT_NODE (clutter_text_node_get_type ()) #define CLUTTER_TEXT_NODE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), CLUTTER_TYPE_TEXT_NODE, ClutterTextNode)) #define CLUTTER_IS_TEXT_NODE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), CLUTTER_TYPE_TEXT_NODE)) /** * ClutterTextNode: * * The #ClutterTextNode structure is an opaque * type whose members cannot be directly accessed. * * Since: 1.10 */ typedef struct _ClutterTextNode ClutterTextNode; typedef struct _ClutterTextNodeClass ClutterTextNodeClass; CLUTTER_EXPORT GType clutter_text_node_get_type (void) G_GNUC_CONST; CLUTTER_EXPORT ClutterPaintNode * clutter_text_node_new (PangoLayout *layout, const ClutterColor *color); #define CLUTTER_TYPE_ACTOR_NODE (clutter_actor_node_get_type ()) #define CLUTTER_ACTOR_NODE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), CLUTTER_TYPE_ACTOR_NODE, ClutterActorNode)) #define CLUTTER_IS_ACTOR_NODE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), CLUTTER_TYPE_ACTOR_NODE)) /** * ClutterActorNode: * * The #ClutterActorNode structure is an opaque * type whose members cannot be directly accessed. */ typedef struct _ClutterActorNode ClutterActorNode; typedef struct _ClutterActorNode ClutterActorNodeClass; CLUTTER_EXPORT GType clutter_actor_node_get_type (void) G_GNUC_CONST; CLUTTER_EXPORT ClutterPaintNode * clutter_actor_node_new (ClutterActor *actor, int opacity); #define CLUTTER_TYPE_ROOT_NODE (clutter_root_node_get_type ()) #define CLUTTER_ROOT_NODE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), CLUTTER_TYPE_ROOT_NODE, ClutterRootNode)) #define CLUTTER_IS_ROOT_NODE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), CLUTTER_TYPE_ROOT_NODE)) /** * ClutterRootNode: * * The #ClutterRootNode structure is an opaque * type whose members cannot be directly accessed. */ typedef struct _ClutterRootNode ClutterRootNode; typedef struct _ClutterPaintNodeClass ClutterRootNodeClass; CLUTTER_EXPORT GType clutter_root_node_get_type (void) G_GNUC_CONST; CLUTTER_EXPORT ClutterPaintNode * clutter_root_node_new (CoglFramebuffer *framebuffer, const ClutterColor *clear_color, CoglBufferBit clear_flags); #define CLUTTER_TYPE_LAYER_NODE (clutter_layer_node_get_type ()) #define CLUTTER_LAYER_NODE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), CLUTTER_TYPE_LAYER_NODE, ClutterLayerNode)) #define CLUTTER_IS_LAYER_NODE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), CLUTTER_TYPE_LAYER_NODE)) /* * ClutterLayerNode: * * The #ClutterLayerNode structure is an opaque * type whose members cannot be directly accessed. * * Since: 1.10 */ typedef struct _ClutterLayerNode ClutterLayerNode; typedef struct _ClutterLayerNodeClass ClutterLayerNodeClass; CLUTTER_EXPORT GType clutter_layer_node_get_type (void) G_GNUC_CONST; CLUTTER_EXPORT ClutterPaintNode * clutter_layer_node_new (const graphene_matrix_t *projection, const cairo_rectangle_t *viewport, float width, float height, guint8 opacity); CLUTTER_EXPORT ClutterPaintNode * clutter_layer_node_new_to_framebuffer (CoglFramebuffer *framebuffer, CoglPipeline *pipeline); #define CLUTTER_TYPE_TRANSFORM_NODE (clutter_transform_node_get_type ()) #define CLUTTER_TRANSFORM_NODE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), CLUTTER_TYPE_TRANSFORM_NODE, ClutterTransformNode)) #define CLUTTER_IS_TRANSFORM_NODE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), CLUTTER_TYPE_TRANSFORM_NODE)) /* * ClutterTransformNode: * * The #ClutterLayerNode structure is an opaque * type whose members cannot be directly accessed. * * Since: 1.10 */ typedef struct _ClutterTransformNode ClutterTransformNode; typedef struct _ClutterPaintNodeClass ClutterTransformNodeClass; CLUTTER_EXPORT GType clutter_transform_node_get_type (void) G_GNUC_CONST; CLUTTER_EXPORT ClutterPaintNode * clutter_transform_node_new (const graphene_matrix_t *projection); #define CLUTTER_TYPE_BLIT_NODE (clutter_blit_node_get_type ()) #define CLUTTER_BLIT_NODE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), CLUTTER_TYPE_BLIT_NODE, ClutterBlitNode)) #define CLUTTER_IS_BLIT_NODE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), CLUTTER_TYPE_BLIT_NODE)) /* * ClutterBlitNode: * * The #ClutterBlitNode structure is an opaque * type whose members cannot be directly accessed. */ typedef struct _ClutterBlitNode ClutterBlitNode; typedef struct _ClutterPaintNodeClass ClutterBlitNodeClass; CLUTTER_EXPORT GType clutter_blit_node_get_type (void) G_GNUC_CONST; CLUTTER_EXPORT ClutterPaintNode * clutter_blit_node_new (CoglFramebuffer *src); CLUTTER_EXPORT void clutter_blit_node_add_blit_rectangle (ClutterBlitNode *blit_node, int src_x, int src_y, int dst_x, int dst_y, int width, int height); #define CLUTTER_TYPE_BLUR_NODE (clutter_blur_node_get_type ()) #define CLUTTER_BLUR_NODE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), CLUTTER_TYPE_BLUR_NODE, ClutterBlurNode)) #define CLUTTER_IS_BLUR_NODE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), CLUTTER_TYPE_BLUR_NODE)) /** * ClutterBlurNode: * * The #ClutterBurNode structure is an opaque * type whose members cannot be directly accessed. */ typedef struct _ClutterBlurNode ClutterBlurNode; typedef struct _ClutterLayerNodeClass ClutterBlurNodeClass; CLUTTER_EXPORT GType clutter_blur_node_get_type (void) G_GNUC_CONST; CLUTTER_EXPORT ClutterPaintNode * clutter_blur_node_new (unsigned int width, unsigned int height, float sigma); G_END_DECLS #endif /* __CLUTTER_PAINT_NODES_H__ */