diff --git a/cogl/cogl/cogl-node-private.h b/cogl/cogl/cogl-node-private.h deleted file mode 100644 index 13d1e6e49..000000000 --- a/cogl/cogl/cogl-node-private.h +++ /dev/null @@ -1,92 +0,0 @@ -/* - * Cogl - * - * A Low Level GPU Graphics and Utilities API - * - * Copyright (C) 2008,2009,2010 Intel Corporation. - * - * Permission is hereby granted, free of charge, to any person - * obtaining a copy of this software and associated documentation - * files (the "Software"), to deal in the Software without - * restriction, including without limitation the rights to use, copy, - * modify, merge, publish, distribute, sublicense, and/or sell copies - * of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be - * included in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, - * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND - * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS - * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN - * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN - * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - * - * - * - * Authors: - * Robert Bragg - */ - -#pragma once - -#include "cogl/cogl-list.h" - -typedef struct _CoglNodeClass CoglNodeClass; - -/* Pipelines and layers represent their state in a tree structure where - * some of the state relating to a given pipeline or layer may actually - * be owned by one if is ancestors in the tree. We have a common data - * type to track the tree hierarchy so we can share code... */ -struct _CoglNode -{ - GObject parent_instance; - - /* The parent pipeline/layer */ - CoglNode *parent; - - /* The list entry here contains pointers to the node's siblings */ - CoglList link; - - /* List of children */ - CoglList children; - - /* TRUE if the node took a strong reference on its parent. Weak - * pipelines for instance don't take a reference on their parent. */ - gboolean has_parent_reference; -}; - -struct _CoglNodeClass -{ - GObjectClass parent_class; -}; - -#define COGL_TYPE_NODE (cogl_node_get_type ()) -#define COGL_NODE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), COGL_TYPE_NODE, CoglNode)) -#define COGL_NODE_CONST(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), COGL_TYPE_NODE, CoglNode const)) -#define COGL_NODE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), COGL_TYPE_NODE, CoglNodeClass)) -#define COGL_IS_NODE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), COGL_TYPE_NODE)) -#define COGL_IS_NODE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), COGL_TYPE_NODE)) -#define COGL_NODE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), COGL_TYPE_NODE, CoglNodeClass)) - -G_DEFINE_AUTOPTR_CLEANUP_FUNC (CoglNode, g_object_unref) - -GType cogl_node_get_type (void) G_GNUC_CONST; - -void -_cogl_pipeline_node_set_parent (CoglNode *node, - CoglNode *parent, - gboolean take_strong_reference); - -void -_cogl_pipeline_node_unparent (CoglNode *node); - -typedef gboolean (*CoglNodeChildCallback) (CoglNode *child, void *user_data); - -void -_cogl_pipeline_node_foreach_child (CoglNode *node, - CoglNodeChildCallback callback, - void *user_data); diff --git a/cogl/cogl/cogl-node.c b/cogl/cogl/cogl-node.c deleted file mode 100644 index 8ca13e79a..000000000 --- a/cogl/cogl/cogl-node.c +++ /dev/null @@ -1,114 +0,0 @@ -/* - * Cogl - * - * A Low Level GPU Graphics and Utilities API - * - * Copyright (C) 2008,2009,2010 Intel Corporation. - * - * Permission is hereby granted, free of charge, to any person - * obtaining a copy of this software and associated documentation - * files (the "Software"), to deal in the Software without - * restriction, including without limitation the rights to use, copy, - * modify, merge, publish, distribute, sublicense, and/or sell copies - * of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be - * included in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, - * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND - * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS - * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN - * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN - * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - * - * - * - * Authors: - * Robert Bragg - */ - -#include "config.h" - -#include "cogl/cogl-util.h" -#include "cogl/cogl-node-private.h" - -G_DEFINE_ABSTRACT_TYPE (CoglNode, cogl_node, G_TYPE_OBJECT) - -static void -cogl_node_class_init (CoglNodeClass *klass) -{ -} - -static void -cogl_node_init (CoglNode *node) -{ - node->parent = NULL; - _cogl_list_init (&node->children); -} - -void -_cogl_pipeline_node_set_parent (CoglNode *node, - CoglNode *parent, - gboolean take_strong_reference) -{ - /* NB: the old parent may indirectly be keeping the new parent alive - * so we have to ref the new parent before unrefing the old. - * - * Note: we take a reference here regardless of - * take_strong_reference because weak children may need special - * handling when the parent disposes itself which relies on a - * consistent link to all weak nodes. Once the node is linked to its - * parent then we remove the reference at the end if - * take_strong_reference == FALSE. */ - g_object_ref (parent); - - if (node->parent) - _cogl_pipeline_node_unparent (node); - - _cogl_list_insert (&parent->children, &node->link); - - node->parent = parent; - node->has_parent_reference = take_strong_reference; - - /* Now that there is a consistent parent->child link we can remove - * the parent reference if no reference was requested. If it turns - * out that the new parent was only being kept alive by the old - * parent then it will be disposed of here. */ - if (!take_strong_reference) - g_object_unref (parent); -} - -void -_cogl_pipeline_node_unparent (CoglNode *node) -{ - CoglNode *parent = node->parent; - - if (parent == NULL) - return; - - g_return_if_fail (!_cogl_list_empty (&parent->children)); - - _cogl_list_remove (&node->link); - - if (node->has_parent_reference) - g_object_unref (parent); - - node->parent = NULL; -} - -void -_cogl_pipeline_node_foreach_child (CoglNode *node, - CoglNodeChildCallback callback, - void *user_data) -{ - CoglNode *child, *next; - - _cogl_list_for_each_safe (child, next, &node->children, link) - callback (child, user_data); -} - - diff --git a/cogl/cogl/cogl-types.h b/cogl/cogl/cogl-types.h index 574df4463..1c2b47293 100644 --- a/cogl/cogl/cogl-types.h +++ b/cogl/cogl/cogl-types.h @@ -335,7 +335,6 @@ typedef struct _CoglDisplay CoglDisplay; typedef struct _CoglFramebufferBits CoglFramebufferBits; typedef struct _CoglFrameInfo CoglFrameInfo; typedef struct _CoglIndices CoglIndices; -typedef struct _CoglNode CoglNode; typedef struct _CoglParamSpecColor CoglParamSpecColor; typedef struct _CoglPipeline CoglPipeline; typedef struct _CoglPixelBuffer CoglPixelBuffer; diff --git a/cogl/cogl/meson.build b/cogl/cogl/meson.build index e67ab00ac..6c7b4b11c 100644 --- a/cogl/cogl/meson.build +++ b/cogl/cogl/meson.build @@ -204,8 +204,6 @@ cogl_sources = [ 'cogl-memory-stack.c', 'cogl-meta-texture.c', 'cogl-mutter.h', - 'cogl-node-private.h', - 'cogl-node.c', 'cogl-offscreen-private.h', 'cogl-offscreen.c', 'cogl-onscreen-private.h',