[Bf-blender-cvs] [b6c1d3e1bd0] functions: make updating depsgraph work again
Jacques Lucke
noreply at git.blender.org
Fri Jul 12 14:50:37 CEST 2019
Commit: b6c1d3e1bd002ca5e8c108cf1a4a61f8c72831d2
Author: Jacques Lucke
Date: Fri Jul 12 12:39:57 2019 +0200
Branches: functions
https://developer.blender.org/rBb6c1d3e1bd002ca5e8c108cf1a4a61f8c72831d2
make updating depsgraph work again
===================================================================
M source/blender/functions/backends/dependencies/dependencies-c.cpp
M source/blender/functions/backends/dependencies/dependencies.cpp
M source/blender/functions/backends/dependencies/dependencies.hpp
===================================================================
diff --git a/source/blender/functions/backends/dependencies/dependencies-c.cpp b/source/blender/functions/backends/dependencies/dependencies-c.cpp
index 299b3976511..ecf7dbfc64b 100644
--- a/source/blender/functions/backends/dependencies/dependencies-c.cpp
+++ b/source/blender/functions/backends/dependencies/dependencies-c.cpp
@@ -1,15 +1,23 @@
#include "FN_dependencies.hpp"
+#include "DEG_depsgraph_build.h"
+#include "intern/builder/deg_builder_relations.h"
using namespace FN;
-void FN_function_update_dependencies(FnFunction UNUSED(fn_c),
- struct DepsNodeHandle *UNUSED(deps_node))
+static void update_depsgraph(DepsNodeHandle *deps_node, ArrayRef<Object *> transform_dependencies)
{
- // Function *fn = unwrap(fn_c);
- // const DependenciesBody *body = fn->body<DependenciesBody>();
- // if (body) {
- // Dependencies dependencies;
- // body->dependencies(dependencies);
- // dependencies.update_depsgraph(deps_node);
- // }
+ for (struct Object *ob : transform_dependencies) {
+ DEG_add_object_relation(deps_node, ob, DEG_OB_COMP_TRANSFORM, __func__);
+ }
+}
+
+void FN_function_update_dependencies(FnFunction fn_c, struct DepsNodeHandle *deps_node)
+{
+ Function *fn = unwrap(fn_c);
+ DependenciesBody *body = fn->body<DependenciesBody>();
+ if (body) {
+ ExternalDependenciesBuilder builder({});
+ body->dependencies(builder);
+ update_depsgraph(deps_node, builder.get_transform_dependencies());
+ }
}
diff --git a/source/blender/functions/backends/dependencies/dependencies.cpp b/source/blender/functions/backends/dependencies/dependencies.cpp
index c891cb98137..94b2ea80bb4 100644
--- a/source/blender/functions/backends/dependencies/dependencies.cpp
+++ b/source/blender/functions/backends/dependencies/dependencies.cpp
@@ -1,36 +1,7 @@
#include "dependencies.hpp"
-#include "DEG_depsgraph_build.h"
-#include "intern/builder/deg_builder_relations.h"
-
namespace FN {
BLI_COMPOSITION_IMPLEMENTATION(DependenciesBody);
-void Dependencies::add_object_transform_dependency(struct Object *object)
-{
- m_transform_dependencies.add(object);
-}
-
-void Dependencies::update_depsgraph(DepsNodeHandle *deps_node)
-{
- for (struct Object *ob : m_transform_dependencies) {
- DEG_add_object_relation(deps_node, ob, DEG_OB_COMP_TRANSFORM, __func__);
- }
-}
-
-void Dependencies::add_relations(struct DepsgraphRelationBuilderRef *builder_,
- const struct OperationKeyRef *target_)
-{
- auto builder = *(DEG::DepsgraphRelationBuilder *)builder_;
- auto target = *(DEG::OperationKey *)target_;
-
- for (struct Object *ob : m_transform_dependencies) {
- DEG::OperationKey from_key(
- (ID *)ob, DEG::NodeType::TRANSFORM, DEG::OperationCode::TRANSFORM_FINAL);
-
- builder.add_relation(from_key, target, "Function Dependency");
- }
-}
-
} /* namespace FN */
diff --git a/source/blender/functions/backends/dependencies/dependencies.hpp b/source/blender/functions/backends/dependencies/dependencies.hpp
index eb161754781..93b3f53903e 100644
--- a/source/blender/functions/backends/dependencies/dependencies.hpp
+++ b/source/blender/functions/backends/dependencies/dependencies.hpp
@@ -3,25 +3,8 @@
#include "FN_core.hpp"
struct Object;
-struct DepsNodeHandle;
-struct DepsgraphRelationBuilderRef;
-struct OperationKeyRef;
namespace FN {
-using namespace BLI;
-
-class Dependencies {
- private:
- SmallSet<struct Object *> m_transform_dependencies;
-
- public:
- void add_object_transform_dependency(struct Object *object);
-
- void update_depsgraph(DepsNodeHandle *deps_node);
-
- void add_relations(struct DepsgraphRelationBuilderRef *builder,
- const struct OperationKeyRef *target);
-};
class ExternalDependenciesBuilder {
private:
More information about the Bf-blender-cvs
mailing list