Games Task Scheduler (GTS)
A multi-processor scheduling framework for games engines
gts::SimplePartitioner Class Reference

Recursively splits a range until it is no longer divisible. More...

#include <Partitioners.h>

Public Types

using splitter_type = EvenSplitter
 

Public Member Functions

template<typename TRange >
GTS_INLINE SimplePartitioner (SimplePartitioner &, uint16_t, TRange const &)
 
template<typename TPattern , typename TRange >
GTS_INLINE Taskexecute (TaskContext const &ctx, TPattern *pPattern, TRange &range)
 
template<typename TPattern , typename TRange >
GTS_INLINE void initialOffer (TaskContext const &ctx, TPattern *pPattern, TRange &range, splitter_type const &splitter)
 
template<typename TPattern , typename TRange >
GTS_INLINE TaskdoExecute (TaskContext const &ctx, TPattern *pPattern, TRange &range, splitter_type const &splitter)
 
template<typename TRange >
GTS_INLINE void adjustIfStolen (Task *)
 
template<typename TRange >
GTS_INLINE void initialize (uint16_t)
 
GTS_INLINE bool isDivisible ()
 

Static Public Member Functions

template<typename TRange >
static GTS_INLINE void split ()
 
template<typename TRange >
static GTS_INLINE uint16_t getSplit (SimplePartitioner &)
 

Detailed Description

Recursively splits a range until it is no longer divisible.