clutter/paint-nodes: Expose ClutterLayerNode

It will be useful to port ClutterOffscreenEffect in
the future.

https://gitlab.gnome.org/GNOME/mutter/merge_requests/872
This commit is contained in:
Georges Basile Stavracas Neto 2019-10-17 17:52:21 +02:00
parent f18e2d2e62
commit 1d8807a171
3 changed files with 34 additions and 32 deletions

View File

@ -139,30 +139,6 @@ ClutterPaintNode * clutter_paint_node_get_last_child (Clutter
G_GNUC_INTERNAL G_GNUC_INTERNAL
ClutterPaintNode * clutter_paint_node_get_parent (ClutterPaintNode *node); ClutterPaintNode * clutter_paint_node_get_parent (ClutterPaintNode *node);
#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;
GType _clutter_layer_node_get_type (void) G_GNUC_CONST;
ClutterPaintNode * _clutter_layer_node_new (const CoglMatrix *projection,
const cairo_rectangle_t *viewport,
float width,
float height,
guint8 opacity);
G_END_DECLS G_END_DECLS
#endif /* __CLUTTER_PAINT_NODE_PRIVATE_H__ */ #endif /* __CLUTTER_PAINT_NODE_PRIVATE_H__ */

View File

@ -1078,11 +1078,9 @@ clutter_clip_node_new (void)
} }
/* /*
* ClutterLayerNode (private) * ClutterLayerNode
*/ */
#define clutter_layer_node_get_type _clutter_layer_node_get_type
struct _ClutterLayerNode struct _ClutterLayerNode
{ {
ClutterPaintNode parent_instance; ClutterPaintNode parent_instance;
@ -1268,11 +1266,11 @@ clutter_layer_node_init (ClutterLayerNode *self)
* Since: 1.10 * Since: 1.10
*/ */
ClutterPaintNode * ClutterPaintNode *
_clutter_layer_node_new (const CoglMatrix *projection, clutter_layer_node_new (const CoglMatrix *projection,
const cairo_rectangle_t *viewport, const cairo_rectangle_t *viewport,
float width, float width,
float height, float height,
guint8 opacity) guint8 opacity)
{ {
ClutterLayerNode *res; ClutterLayerNode *res;
CoglColor color; CoglColor color;

View File

@ -163,6 +163,34 @@ CLUTTER_EXPORT
ClutterPaintNode * clutter_root_node_new (CoglFramebuffer *framebuffer, ClutterPaintNode * clutter_root_node_new (CoglFramebuffer *framebuffer,
const ClutterColor *clear_color, const ClutterColor *clear_color,
CoglBufferBit clear_flags); 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 CoglMatrix *projection,
const cairo_rectangle_t *viewport,
float width,
float height,
guint8 opacity);
G_END_DECLS G_END_DECLS
#endif /* __CLUTTER_PAINT_NODES_H__ */ #endif /* __CLUTTER_PAINT_NODES_H__ */