cogl: Drop CoglNode
It's not necessary anymore. Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/4155>
This commit is contained in:
parent
8540362d1d
commit
b0fd29ece2
@ -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 <robert@linux.intel.com>
|
||||
*/
|
||||
|
||||
#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);
|
@ -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 <robert@linux.intel.com>
|
||||
*/
|
||||
|
||||
#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);
|
||||
}
|
||||
|
||||
|
@ -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;
|
||||
|
@ -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',
|
||||
|
Loading…
x
Reference in New Issue
Block a user