Commit: a8eea18edfe497e42dbb5cb924f413da94f19d92
Author: Sergey Sharybin
Date:   Thu Dec 18 20:33:25 2014 +0500
Branches: depsgraph_refactor
https://developer.blender.org/rBa8eea18edfe497e42dbb5cb924f413da94f19d92

Depsgraph: Move task callback to the depsgraph_eval file

It's just more a hassle of having separate file and some public-ish
API to pass all the data around. Easier just have single file with
all evaluation.

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

M       source/blender/depsgraph/CMakeLists.txt
M       source/blender/depsgraph/intern/depsgraph_debug.cpp
M       source/blender/depsgraph/intern/depsgraph_eval.cpp
M       source/blender/depsgraph/intern/depsgraph_eval.h
D       source/blender/depsgraph/util/depsgraph_util_task.cpp
D       source/blender/depsgraph/util/depsgraph_util_task.h

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

diff --git a/source/blender/depsgraph/CMakeLists.txt 
b/source/blender/depsgraph/CMakeLists.txt
index bd23b6c..a9d8774 100644
--- a/source/blender/depsgraph/CMakeLists.txt
+++ b/source/blender/depsgraph/CMakeLists.txt
@@ -79,8 +79,6 @@ set(SRC
        util/depsgraph_util_id.h
        util/depsgraph_util_map.h
        util/depsgraph_util_set.h
-       util/depsgraph_util_task.h
-       util/depsgraph_util_task.cpp
 )
 
 TEST_UNORDERED_MAP_SUPPORT()
diff --git a/source/blender/depsgraph/intern/depsgraph_debug.cpp 
b/source/blender/depsgraph/intern/depsgraph_debug.cpp
index c9bafda..b7e1c52 100644
--- a/source/blender/depsgraph/intern/depsgraph_debug.cpp
+++ b/source/blender/depsgraph/intern/depsgraph_debug.cpp
@@ -61,7 +61,6 @@ extern "C" {
 #include "depsgraph_types.h"
 #include "depsgraph_intern.h"
 #include "depsgraph_queue.h"
-#include "depsgraph_util_task.h"
 
 /* ************************************************ */
 /* Graphviz Debugging */
diff --git a/source/blender/depsgraph/intern/depsgraph_eval.cpp 
b/source/blender/depsgraph/intern/depsgraph_eval.cpp
index 738be88..36680e4 100644
--- a/source/blender/depsgraph/intern/depsgraph_eval.cpp
+++ b/source/blender/depsgraph/intern/depsgraph_eval.cpp
@@ -26,36 +26,17 @@
  * Evaluation engine entrypoints for Depsgraph Engine
  */
 
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-
 #include "MEM_guardedalloc.h"
 
+#include "PIL_time.h"
+
 extern "C" {
-#include "BLI_blenlib.h"
-#include "BLI_string.h"
 #include "BLI_task.h"
-#include "BLI_threads.h"
 #include "BLI_utildefines.h"
 
-#include "DNA_anim_types.h"
-#include "DNA_object_types.h"
-#include "DNA_scene_types.h"
-
-#include "BKE_action.h"
-#include "BKE_animsys.h"
-#include "BKE_constraint.h"
-#include "BKE_DerivedMesh.h"
-#include "BKE_main.h"
-#include "BKE_object.h"
-#include "BKE_scene.h"
-#include "BKE_global.h" /* XXX only for debug value, remove eventually */
+#include "DNA_ID.h"
 
-#include "DEG_depsgraph.h"
-
-#include "RNA_access.h"
-#include "RNA_types.h"
+#include "BKE_global.h" /* XXX only for debug value, remove eventually */
 } /* extern "C" */
 
 #include "atomic_ops.h"
@@ -89,6 +70,44 @@ void DEG_set_eval_mode(eDEG_EvalMode mode)
 /* ********************** */
 /* Evaluation Entrypoints */
 
+struct DepsgraphEvalState {
+       EvaluationContext *eval_ctx;
+       Depsgraph *graph;
+};
+
+static void deg_task_run_func(TaskPool *pool,
+                              void *taskdata,
+                              int UNUSED(threadid))
+{
+       DepsgraphEvalState *state = (DepsgraphEvalState 
*)BLI_task_pool_userdata(pool);
+       OperationDepsNode *node = (OperationDepsNode *)taskdata;
+       if (node->is_noop()) {
+               deg_schedule_children(pool, state->eval_ctx, state->graph, 
node);
+               return;
+       }
+
+       /* Get context. */
+       // TODO: who initialises this? "Init" operations aren't able to 
initialise it!!!
+       ComponentDepsNode *comp = node->owner;
+       BLI_assert(comp != NULL);
+
+       /* Take note of current time. */
+       double start_time = PIL_check_seconds_timer();
+       DepsgraphDebug::task_started(node);
+
+       /* Should only be the case for NOOPs, which never get to this point. */
+       BLI_assert(node->evaluate != NULL);
+
+       /* Perform operation. */
+       node->evaluate(state->eval_ctx);
+
+       /* Note how long this took. */
+       double end_time = PIL_check_seconds_timer();
+       DepsgraphDebug::task_completed(node, end_time - start_time);
+
+       deg_schedule_children(pool, state->eval_ctx, state->graph, node);
+}
+
 static void calculate_pending_parents(Depsgraph *graph)
 {
        for (Depsgraph::OperationNodes::const_iterator it_op = 
graph->operations.begin();
@@ -156,7 +175,7 @@ static void schedule_graph(TaskPool *pool, 
EvaluationContext *eval_ctx, Depsgrap
        {
                OperationDepsNode *node = *it;
                if ((node->flag & DEPSOP_FLAG_NEEDS_UPDATE) && 
node->num_links_pending == 0) {
-                       BLI_task_pool_push(pool, DEG_task_run_func, node, 
false, TASK_PRIORITY_LOW);
+                       BLI_task_pool_push(pool, deg_task_run_func, node, 
false, TASK_PRIORITY_LOW);
                        node->scheduled = true;
                }
        }
@@ -185,14 +204,13 @@ void deg_schedule_children(TaskPool *pool, 
EvaluationContext *eval_ctx,
                                BLI_spin_unlock(&graph->lock);
 
                                if (need_schedule) {
-                                       BLI_task_pool_push(pool, 
DEG_task_run_func, child, false, TASK_PRIORITY_LOW);
+                                       BLI_task_pool_push(pool, 
deg_task_run_func, child, false, TASK_PRIORITY_LOW);
                                }
                        }
                }
        }
 }
 
-
 /* Evaluate all nodes tagged for updating,
  * ! This is usually done as part of main loop, but may also be
  *   called from frame-change update.
diff --git a/source/blender/depsgraph/intern/depsgraph_eval.h 
b/source/blender/depsgraph/intern/depsgraph_eval.h
index ad5b733..8223b89 100644
--- a/source/blender/depsgraph/intern/depsgraph_eval.h
+++ b/source/blender/depsgraph/intern/depsgraph_eval.h
@@ -35,8 +35,6 @@
 
 #include "DEG_depsgraph.h"
 
-#include "depsgraph_util_task.h"
-
 struct Depsgraph;
 struct OperationDepsNode;
 
@@ -136,7 +134,7 @@ typedef struct DEG_PoseContext {
 
 struct Depsgraph;
 struct OperationDepsNode;
-struct Taskpool;
+struct TaskPool;
 void deg_schedule_children(TaskPool *pool, EvaluationContext *eval_ctx, 
Depsgraph *graph, OperationDepsNode *node);
 
 #endif // __DEPSGRAPH_EVAL_TYPES_H__
diff --git a/source/blender/depsgraph/util/depsgraph_util_task.cpp 
b/source/blender/depsgraph/util/depsgraph_util_task.cpp
deleted file mode 100644
index 39e6d88..0000000
--- a/source/blender/depsgraph/util/depsgraph_util_task.cpp
+++ /dev/null
@@ -1,72 +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) 2013 Blender Foundation.
- * All rights reserved.
- *
- * Original Author: Brecht van Lommel
- * Contributor(s): Lukas Toenne
- *
- * ***** END GPL LICENSE BLOCK *****
- */
-
-#include <stdlib.h>
-#include "BLI_utildefines.h"
-#include "BLI_compiler_attrs.h"
-#include "PIL_time.h"
-
-extern "C" {
-#include "BLI_task.h"
-}
-
-#include "depsgraph_debug.h"
-#include "depsgraph_eval.h"
-
-#include "depsgraph_util_task.h"
-
-/* Task */
-
-void DEG_task_run_func(TaskPool *pool, void *taskdata, int UNUSED(threadid))
-{
-       DepsgraphEvalState *state = (DepsgraphEvalState 
*)BLI_task_pool_userdata(pool);
-       OperationDepsNode *node = (OperationDepsNode *)taskdata;
-       if (node->is_noop()) {
-               deg_schedule_children(pool, state->eval_ctx, state->graph, 
node);
-               return;
-       }
-
-       /* get context */
-       // TODO: who initialises this? "Init" operations aren't able to 
initialise it!!!
-       ComponentDepsNode *comp = node->owner;
-       BLI_assert(comp != NULL);
-
-       /* take note of current time */
-       double start_time = PIL_check_seconds_timer();
-       DepsgraphDebug::task_started(node);
-
-       /* should only be the case for NOOPs, which never get to this point */
-       BLI_assert(node->evaluate);
-
-       /* perform operation */
-       node->evaluate(state->eval_ctx);
-
-       /* note how long this took */
-       double end_time = PIL_check_seconds_timer();
-       DepsgraphDebug::task_completed(node, end_time - start_time);
-
-       deg_schedule_children(pool, state->eval_ctx, state->graph, node);
-}
diff --git a/source/blender/depsgraph/util/depsgraph_util_task.h 
b/source/blender/depsgraph/util/depsgraph_util_task.h
deleted file mode 100644
index 858adc1..0000000
--- a/source/blender/depsgraph/util/depsgraph_util_task.h
+++ /dev/null
@@ -1,43 +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) 2013 Blender Foundation.
- * All rights reserved.
- *
- * Original Author: Brecht van Lommel
- * Contributor(s): Lukas Toenne
- *
- * ***** END GPL LICENSE BLOCK *****
- */
-
-#ifndef __DEPSGRAPH_UTIL_TASK_H__
-#define __DEPSGRAPH_UTIL_TASK_H__
-
-#include "depsnode_operation.h"
-
-struct Depsgraph;
-struct EvaluationContext;
-struct TaskPool;
-
-struct DepsgraphEvalState {
-       EvaluationContext *eval_ctx;
-       Depsgraph *graph;
-};
-
-void DEG_task_run_func(TaskPool *pool, void *taskdata, int threadid);
-
-#endif /* __DEPSGRAPH_UTIL_TASK_H__ */

_______________________________________________
Bf-blender-cvs mailing list
[email protected]
http://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to