Foundation
Loading...
Searching...
No Matches
Classes | Public Member Functions | Protected Member Functions | Private Types | Private Member Functions | Private Attributes | List of all members
Foundation::Examples::FoundationJoltJobSystem Class Referencefinal

#include <JoltCommon.hpp>

Inheritance diagram for Foundation::Examples::FoundationJoltJobSystem:

Classes

struct  QueuedJob
 

Public Member Functions

 FoundationJoltJobSystem (Core::JobSystem *jobs, uint32_t maxJobs, uint32_t maxBarriers, Core::Allocator *allocator=GLOBAL_ALLOC)
 
 ~FoundationJoltJobSystem () override
 
int GetMaxConcurrency () const override
 
JPH::JobHandle CreateJob (char const *name, JPH::ColorArg color, JobFunction const &function, JPH::uint32 dependencyCount=0) override
 
void WaitForJobs (Barrier *barrier) override
 

Protected Member Functions

void QueueJob (JoltJob *job) override
 
void QueueJobs (JoltJob **jobs, JPH::uint count) override
 
void FreeJob (JoltJob *job) override
 

Private Types

using JoltJob = JPH::JobSystem::Job
 

Private Member Functions

JoltJobJobAt (uint32_t index) const noexcept
 

Private Attributes

Core::AllocatormAllocator
 
size_t mMaxJobs
 
Core::ScopedArena mJobArena
 
Core::Vector< uint32_t > mFreelist
 
Core::Mutex mFreelistMutex
 
Core::JobSystemmJobs
 

Member Typedef Documentation

◆ JoltJob

using Foundation::Examples::FoundationJoltJobSystem::JoltJob = JPH::JobSystem::Job
private

Constructor & Destructor Documentation

◆ FoundationJoltJobSystem()

Foundation::Examples::FoundationJoltJobSystem::FoundationJoltJobSystem ( Core::JobSystem jobs,
uint32_t  maxJobs,
uint32_t  maxBarriers,
Core::Allocator allocator = GLOBAL_ALLOC 
)
inline

◆ ~FoundationJoltJobSystem()

Foundation::Examples::FoundationJoltJobSystem::~FoundationJoltJobSystem ( )
inlineoverride

Member Function Documentation

◆ CreateJob()

JPH::JobHandle Foundation::Examples::FoundationJoltJobSystem::CreateJob ( char const *  name,
JPH::ColorArg  color,
JobFunction const &  function,
JPH::uint32  dependencyCount = 0 
)
inlineoverride

◆ FreeJob()

void Foundation::Examples::FoundationJoltJobSystem::FreeJob ( JoltJob job)
inlineoverrideprotected

◆ GetMaxConcurrency()

int Foundation::Examples::FoundationJoltJobSystem::GetMaxConcurrency ( ) const
inlineoverride

◆ JobAt()

JoltJob * Foundation::Examples::FoundationJoltJobSystem::JobAt ( uint32_t  index) const
inlineprivatenoexcept

◆ QueueJob()

void Foundation::Examples::FoundationJoltJobSystem::QueueJob ( JoltJob job)
inlineoverrideprotected

◆ QueueJobs()

void Foundation::Examples::FoundationJoltJobSystem::QueueJobs ( JoltJob **  jobs,
JPH::uint  count 
)
inlineoverrideprotected

◆ WaitForJobs()

void Foundation::Examples::FoundationJoltJobSystem::WaitForJobs ( Barrier *  barrier)
inlineoverride

Member Data Documentation

◆ mAllocator

Core::Allocator* Foundation::Examples::FoundationJoltJobSystem::mAllocator
private

◆ mFreelist

Core::Vector<uint32_t> Foundation::Examples::FoundationJoltJobSystem::mFreelist
private

◆ mFreelistMutex

Core::Mutex Foundation::Examples::FoundationJoltJobSystem::mFreelistMutex
private

◆ mJobArena

Core::ScopedArena Foundation::Examples::FoundationJoltJobSystem::mJobArena
private

◆ mJobs

Core::JobSystem* Foundation::Examples::FoundationJoltJobSystem::mJobs
private

◆ mMaxJobs

size_t Foundation::Examples::FoundationJoltJobSystem::mMaxJobs
private

The documentation for this class was generated from the following file: