[Bf-blender-cvs] [34d5651a17e] blender2.8: Remove old dependency graph

Sergey Sharybin noreply at git.blender.org
Wed Dec 5 15:35:49 CET 2018


Commit: 34d5651a17ef3be26ee66905d53b54e745cf1efc
Author: Sergey Sharybin
Date:   Wed Dec 5 15:34:50 2018 +0100
Branches: blender2.8
https://developer.blender.org/rB34d5651a17ef3be26ee66905d53b54e745cf1efc

Remove old dependency graph

Yes, again.

===================================================================

D	source/blender/blenkernel/intern/depsgraph.c

===================================================================

diff --git a/source/blender/blenkernel/intern/depsgraph.c b/source/blender/blenkernel/intern/depsgraph.c
deleted file mode 100644
index 621cd6cf5c8..00000000000
--- a/source/blender/blenkernel/intern/depsgraph.c
+++ /dev/null
@@ -1,3745 +0,0 @@
-/*
- * ***** BEGIN GPL LICENSE BLOCK *****
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
- *
- * This program 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 General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- *
- * The Original Code is Copyright (C) 2004 Blender Foundation.
- * All rights reserved.
- *
- * Contributor(s): none yet.
- *
- * ***** END GPL LICENSE BLOCK *****
- */
-
-/** \file blender/blenkernel/intern/depsgraph.c
- *  \ingroup bke
- */
-
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <math.h>
-
-#include "MEM_guardedalloc.h"
-
-#ifdef WIN32
-#  include "BLI_winstuff.h"
-#endif
-
-#include "BLI_utildefines.h"
-#include "BLI_listbase.h"
-#include "BLI_ghash.h"
-#include "BLI_threads.h"
-
-#include "DNA_anim_types.h"
-#include "DNA_camera_types.h"
-#include "DNA_cachefile_types.h"
-#include "DNA_group_types.h"
-#include "DNA_lamp_types.h"
-#include "DNA_lattice_types.h"
-#include "DNA_key_types.h"
-#include "DNA_material_types.h"
-#include "DNA_mesh_types.h"
-#include "DNA_node_types.h"
-#include "DNA_scene_types.h"
-#include "DNA_screen_types.h"
-#include "DNA_windowmanager_types.h"
-#include "DNA_movieclip_types.h"
-#include "DNA_mask_types.h"
-#include "DNA_modifier_types.h"
-#include "DNA_rigidbody_types.h"
-
-#include "BKE_anim.h"
-#include "BKE_animsys.h"
-#include "BKE_action.h"
-#include "BKE_DerivedMesh.h"
-#include "BKE_collision.h"
-#include "BKE_curve.h"
-#include "BKE_effect.h"
-#include "BKE_fcurve.h"
-#include "BKE_global.h"
-#include "BKE_idcode.h"
-#include "BKE_image.h"
-#include "BKE_key.h"
-#include "BKE_library.h"
-#include "BKE_main.h"
-#include "BKE_node.h"
-#include "BKE_material.h"
-#include "BKE_mball.h"
-#include "BKE_modifier.h"
-#include "BKE_object.h"
-#include "BKE_paint.h"
-#include "BKE_particle.h"
-#include "BKE_pointcache.h"
-#include "BKE_scene.h"
-#include "BKE_screen.h"
-#include "BKE_tracking.h"
-
-#include "GPU_buffers.h"
-
-#include "atomic_ops.h"
-
-#include "depsgraph_private.h"
-
-#include "DEG_depsgraph.h"
-#include "DEG_depsgraph_build.h"
-#include "DEG_depsgraph_debug.h"
-#include "DEG_depsgraph_query.h"
-
-#ifdef WITH_LEGACY_DEPSGRAPH
-
-static SpinLock threaded_update_lock;
-
-void DAG_init(void)
-{
-	BLI_spin_init(&threaded_update_lock);
-	DEG_register_node_types();
-}
-
-void DAG_exit(void)
-{
-	BLI_spin_end(&threaded_update_lock);
-	DEG_free_node_types();
-}
-
-/* Queue and stack operations for dag traversal
- *
- * the queue store a list of freenodes to avoid successive alloc/dealloc
- */
-
-DagNodeQueue *queue_create(int slots)
-{
-	DagNodeQueue *queue;
-	DagNodeQueueElem *elem;
-	int i;
-
-	queue = MEM_mallocN(sizeof(DagNodeQueue), "DAG queue");
-	queue->freenodes = MEM_mallocN(sizeof(DagNodeQueue), "DAG queue");
-	queue->count = 0;
-	queue->maxlevel = 0;
-	queue->first = queue->last = NULL;
-	elem = MEM_mallocN(sizeof(DagNodeQueueElem), "DAG queue elem3");
-	elem->node = NULL;
-	elem->next = NULL;
-	queue->freenodes->first = queue->freenodes->last = elem;
-
-	for (i = 1; i < slots; i++) {
-		elem = MEM_mallocN(sizeof(DagNodeQueueElem), "DAG queue elem4");
-		elem->node = NULL;
-		elem->next = NULL;
-		queue->freenodes->last->next = elem;
-		queue->freenodes->last = elem;
-	}
-	queue->freenodes->count = slots;
-	return queue;
-}
-
-void queue_raz(DagNodeQueue *queue)
-{
-	DagNodeQueueElem *elem;
-
-	elem = queue->first;
-	if (queue->freenodes->last)
-		queue->freenodes->last->next = elem;
-	else
-		queue->freenodes->first = queue->freenodes->last = elem;
-
-	elem->node = NULL;
-	queue->freenodes->count++;
-	while (elem->next) {
-		elem = elem->next;
-		elem->node = NULL;
-		queue->freenodes->count++;
-	}
-	queue->freenodes->last = elem;
-	queue->count = 0;
-}
-
-void queue_delete(DagNodeQueue *queue)
-{
-	DagNodeQueueElem *elem;
-	DagNodeQueueElem *temp;
-
-	elem = queue->first;
-	while (elem) {
-		temp = elem;
-		elem = elem->next;
-		MEM_freeN(temp);
-	}
-
-	elem = queue->freenodes->first;
-	while (elem) {
-		temp = elem;
-		elem = elem->next;
-		MEM_freeN(temp);
-	}
-
-	MEM_freeN(queue->freenodes);
-	MEM_freeN(queue);
-}
-
-/* insert in queue, remove in front */
-void push_queue(DagNodeQueue *queue, DagNode *node)
-{
-	DagNodeQueueElem *elem;
-	int i;
-
-	if (node == NULL) {
-		fprintf(stderr, "pushing null node\n");
-		return;
-	}
-	/*fprintf(stderr, "BFS push : %s %d\n", ((ID *) node->ob)->name, queue->count);*/
-
-	elem = queue->freenodes->first;
-	if (elem != NULL) {
-		queue->freenodes->first = elem->next;
-		if (queue->freenodes->last == elem) {
-			queue->freenodes->last = NULL;
-			queue->freenodes->first = NULL;
-		}
-		queue->freenodes->count--;
-	}
-	else { /* alllocating more */
-		elem = MEM_mallocN(sizeof(DagNodeQueueElem), "DAG queue elem1");
-		elem->node = NULL;
-		elem->next = NULL;
-		queue->freenodes->first = queue->freenodes->last = elem;
-
-		for (i = 1; i < DAGQUEUEALLOC; i++) {
-			elem = MEM_mallocN(sizeof(DagNodeQueueElem), "DAG queue elem2");
-			elem->node = NULL;
-			elem->next = NULL;
-			queue->freenodes->last->next = elem;
-			queue->freenodes->last = elem;
-		}
-		queue->freenodes->count = DAGQUEUEALLOC;
-
-		elem = queue->freenodes->first;
-		queue->freenodes->first = elem->next;
-	}
-	elem->next = NULL;
-	elem->node = node;
-	if (queue->last != NULL)
-		queue->last->next = elem;
-	queue->last = elem;
-	if (queue->first == NULL) {
-		queue->first = elem;
-	}
-	queue->count++;
-}
-
-
-/* insert in front, remove in front */
-void push_stack(DagNodeQueue *queue, DagNode *node)
-{
-	DagNodeQueueElem *elem;
-	int i;
-
-	elem = queue->freenodes->first;
-	if (elem != NULL) {
-		queue->freenodes->first = elem->next;
-		if (queue->freenodes->last == elem) {
-			queue->freenodes->last = NULL;
-			queue->freenodes->first = NULL;
-		}
-		queue->freenodes->count--;
-	}
-	else { /* alllocating more */
-		elem = MEM_mallocN(sizeof(DagNodeQueueElem), "DAG queue elem1");
-		elem->node = NULL;
-		elem->next = NULL;
-		queue->freenodes->first = queue->freenodes->last = elem;
-
-		for (i = 1; i < DAGQUEUEALLOC; i++) {
-			elem = MEM_mallocN(sizeof(DagNodeQueueElem), "DAG queue elem2");
-			elem->node = NULL;
-			elem->next = NULL;
-			queue->freenodes->last->next = elem;
-			queue->freenodes->last = elem;
-		}
-		queue->freenodes->count = DAGQUEUEALLOC;
-
-		elem = queue->freenodes->first;
-		queue->freenodes->first = elem->next;
-	}
-	elem->next = queue->first;
-	elem->node = node;
-	queue->first = elem;
-	if (queue->last == NULL)
-		queue->last = elem;
-	queue->count++;
-}
-
-
-DagNode *pop_queue(DagNodeQueue *queue)
-{
-	DagNodeQueueElem *elem;
-	DagNode *node;
-
-	elem = queue->first;
-	if (elem) {
-		queue->first = elem->next;
-		if (queue->last == elem) {
-			queue->last = NULL;
-			queue->first = NULL;
-		}
-		queue->count--;
-		if (queue->freenodes->last)
-			queue->freenodes->last->next = elem;
-		queue->freenodes->last = elem;
-		if (queue->freenodes->first == NULL)
-			queue->freenodes->first = elem;
-		node = elem->node;
-		elem->node = NULL;
-		elem->next = NULL;
-		queue->freenodes->count++;
-		return node;
-	}
-	else {
-		fprintf(stderr, "return null\n");
-		return NULL;
-	}
-}
-
-DagNode *get_top_node_queue(DagNodeQueue *queue)
-{
-	return queue->first->node;
-}
-
-DagForest *dag_init(void)
-{
-	DagForest *forest;
-	/* use callocN to init all zero */
-	forest = MEM_callocN(sizeof(DagForest), "DAG root");
-	forest->ugly_hack_sorry = true;
-	return forest;
-}
-
-/* isdata = object data... */
-/* XXX this needs to be extended to be more flexible (so that not only objects are evaluated via depsgraph)... */
-static void dag_add_driver_relation(AnimData *adt, DagForest *dag, DagNode *node, int isdata)
-{
-	FCurve *fcu;
-	DagNode *node1;
-
-	for (fcu = adt->drivers.first; fcu; fcu = fcu->next) {
-		ChannelDriver *driver = fcu->driver;
-		DriverVar *dvar;
-		int isdata_fcu = (isdata) || (fcu->rna_path && strstr(fcu->rna_path, "modifiers["));
-
-		/* loop over variables to get the target relationships */
-		for (dvar = driver->variables.first; dvar; dvar = dvar->next) {
-			/* only used targets */
-			DRIVER_TARGETS_USED_LOOPER_BEGIN(dvar)
-			{
-				if (dtar->id) {
-					/* FIXME: other data types need to be added here so that they can work! */
-					if (GS(dtar->id->name) == ID_OB) {
-						Object *ob = (Object *)dtar->id;
-
-						/* normal channel-drives-channel */
-						node1 = dag_get_node(dag, dtar->id);
-
-						/* check if bone... */
-						if ((ob->type == OB_ARMATURE) &&
-						    ( ((dtar->rna_path) && strstr(dtar->rna_path, "pose.bones[")) ||
-						      ((dtar->flag & DTAR_FLAG_STRUCT_REF) && (dtar->pchan_name[0])) ))
-						{
-							dag_add_relation(dag, node1, node, isdata_fcu ? DAG_RL_DATA_DATA : DAG_RL_DATA_OB, "Driver");
-						}
-						/* check if ob data */
-						else if (dtar->rna_path && strstr(dtar->rna_path, "data."))
-							dag_add_relation(dag, node1, node, isdata_fcu ? DAG_RL_DATA_DATA : DAG_RL_DATA_OB, "Driver");
-						/* normal */
-						else
-							dag_add_relation(dag, node1, node, isdata_fcu ? DAG_RL_OB_DATA : DAG_RL_OB_OB, "Driver");
-					}
-				}
-			}
-			DRIVER_TARGETS_LOOPER_END;
-		}
-	}
-}
-
-/* XXX: forward def for material driver handling... */
-static void dag_add_material_driver_relations(DagForest *dag, DagNode *node, Material *ma);
-
-/* recursive handling for shader nodetree drivers */
-static void dag_add_shader_nodetree_driver_relations(DagForest *dag, DagNode *node, bNo

@@ Diff output truncated at 10240 characters. @@



More information about the Bf-blender-cvs mailing list