![]()  | 
  
    Jolt Physics
    
   A multi core friendly Game Physics Engine 
   | 
 
#include <JobSystemWithBarrier.h>
  
Public Member Functions | |
| JPH_OVERRIDE_NEW_DELETE | JobSystemWithBarrier (uint inMaxBarriers) | 
| JobSystemWithBarrier ()=default | |
| virtual | ~JobSystemWithBarrier () override | 
| void | Init (uint inMaxBarriers) | 
| virtual Barrier * | CreateBarrier () override | 
| Create a new barrier, used to wait on jobs.  More... | |
| virtual void | DestroyBarrier (Barrier *inBarrier) override | 
| Destroy a barrier when it is no longer used. The barrier should be empty at this point.  More... | |
| virtual void | WaitForJobs (Barrier *inBarrier) override | 
| Wait for a set of jobs to be finished, note that only 1 thread can be waiting on a barrier at a time.  More... | |
  Public Member Functions inherited from JobSystem | |
| virtual | ~JobSystem ()=default | 
| Destructor.  More... | |
| virtual int | GetMaxConcurrency () const =0 | 
| Get maximum number of concurrently executing jobs.  More... | |
| virtual JobHandle | CreateJob (const char *inName, ColorArg inColor, const JobFunction &inJobFunction, uint32 inNumDependencies=0)=0 | 
| virtual Barrier * | CreateBarrier ()=0 | 
| Create a new barrier, used to wait on jobs.  More... | |
| virtual void | DestroyBarrier (Barrier *inBarrier)=0 | 
| Destroy a barrier when it is no longer used. The barrier should be empty at this point.  More... | |
| virtual void | WaitForJobs (Barrier *inBarrier)=0 | 
| Wait for a set of jobs to be finished, note that only 1 thread can be waiting on a barrier at a time.  More... | |
  Public Member Functions inherited from NonCopyable | |
| NonCopyable ()=default | |
| NonCopyable (const NonCopyable &)=delete | |
| void | operator= (const NonCopyable &)=delete | 
Additional Inherited Members | |
  Public Types inherited from JobSystem | |
| using | JobFunction = function< void()> | 
| Main function of the job.  More... | |
  Protected Member Functions inherited from JobSystem | |
| virtual void | QueueJob (Job *inJob)=0 | 
| Adds a job to the job queue.  More... | |
| virtual void | QueueJobs (Job **inJobs, uint inNumJobs)=0 | 
| Adds a number of jobs at once to the job queue.  More... | |
| virtual void | FreeJob (Job *inJob)=0 | 
| Frees a job.  More... | |
Implementation of the Barrier class for a JobSystem
This class can be used to make it easier to create a new JobSystem implementation that integrates with your own job system. It will implement all functionality relating to barriers, so the only functions that are left to be implemented are:
See instructions in JobSystem for more information on how to implement these.
      
  | 
  explicit | 
Constructs barriers
      
  | 
  default | 
      
  | 
  overridevirtual | 
      
  | 
  overridevirtual | 
Create a new barrier, used to wait on jobs.
Implements JobSystem.
      
  | 
  overridevirtual | 
Destroy a barrier when it is no longer used. The barrier should be empty at this point.
Implements JobSystem.
| void JobSystemWithBarrier::Init | ( | uint | inMaxBarriers | ) | 
Initialize the barriers
| inMaxBarriers | Max number of barriers that can be allocated at any time | 
      
  | 
  overridevirtual | 
Wait for a set of jobs to be finished, note that only 1 thread can be waiting on a barrier at a time.
Implements JobSystem.