Commit: a7ea968246f08a5451bd98985efe6f8d8b384132
Author: Lukas Tönne
Date:   Sun Aug 24 15:38:45 2014 +0200
Branches: hair_system
https://developer.blender.org/rBa7ea968246f08a5451bd98985efe6f8d8b384132

Create hair threads in a separate function.

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

M       source/blender/hair/intern/HAIR_solver.cpp
M       source/blender/hair/intern/HAIR_solver.h

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

diff --git a/source/blender/hair/intern/HAIR_solver.cpp 
b/source/blender/hair/intern/HAIR_solver.cpp
index e4720a2..bb64efd 100644
--- a/source/blender/hair/intern/HAIR_solver.cpp
+++ b/source/blender/hair/intern/HAIR_solver.cpp
@@ -637,21 +637,8 @@ static void advance_state(SolverData *data)
        }
 }
 
-void Solver::step_threaded(float time, float timestep)
+void Solver::create_step_tasks(float time, float timestep, const 
PointContactCache &contacts)
 {
-       /* filter and cache Bullet contact information */
-       PointContactCache contacts;
-       cache_point_contacts(contacts);
-       
-       if (Debug::active) {
-               for (int i = 0; i < contacts.size(); ++i) {
-                       const PointContactInfo &info = contacts[i];
-                       Debug::line(info.world_point_hair, 
info.world_point_body, 0.6, 0.6, 0.6, hash_int_2d(2347, i));
-                       Debug::dot(info.world_point_hair, 0, 1, 0, 
hash_int_2d(2348, i));
-                       Debug::dot(info.world_point_body, 1, 0, 0, 
hash_int_2d(2349, i));
-               }
-       }
-       
        typedef std::vector<SolverTaskData> SolverTaskVector;
        
        const int max_points_per_task = 1024;
@@ -715,6 +702,24 @@ void Solver::step_threaded(float time, float timestep)
        BLI_task_pool_work_and_wait(task_pool);
        
        BLI_task_pool_free(task_pool);
+}
+
+void Solver::step_threaded(float time, float timestep)
+{
+       /* filter and cache Bullet contact information */
+       PointContactCache contacts;
+       cache_point_contacts(contacts);
+       
+       if (Debug::active) {
+               for (int i = 0; i < contacts.size(); ++i) {
+                       const PointContactInfo &info = contacts[i];
+                       Debug::line(info.world_point_hair, 
info.world_point_body, 0.6, 0.6, 0.6, hash_int_2d(2347, i));
+                       Debug::dot(info.world_point_hair, 0, 1, 0, 
hash_int_2d(2348, i));
+                       Debug::dot(info.world_point_body, 1, 0, 0, 
hash_int_2d(2349, i));
+               }
+       }
+       
+       create_step_tasks(time, timestep, contacts);
        
        advance_state(m_data);
 }
diff --git a/source/blender/hair/intern/HAIR_solver.h 
b/source/blender/hair/intern/HAIR_solver.h
index 6ec4f5d..a5f5cc5 100644
--- a/source/blender/hair/intern/HAIR_solver.h
+++ b/source/blender/hair/intern/HAIR_solver.h
@@ -169,6 +169,9 @@ public:
        
        void step_threaded(float time, float timestep);
        
+protected:
+       void create_step_tasks(float time, float timestep, const 
PointContactCache &contacts);
+       
 private:
        HairParams m_params;
        SolverForces m_forces;

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

Reply via email to