Photon Engine 2.0.0-beta
A physically based renderer.
|
#include <SpiralScheduler.h>
Public Member Functions | |
SpiralScheduler () | |
SpiralScheduler (std::size_t numWorkers, const WorkUnit &totalWorkUnit, std::size_t tileSize) | |
SpiralScheduler (std::size_t numWorkers, const WorkUnit &totalWorkUnit, const math::Vector2S &tileSize) | |
Public Member Functions inherited from ph::WorkScheduler | |
WorkScheduler () | |
A scheduler with no work load. | |
WorkScheduler (std::size_t numWorkers, const WorkUnit &totalWorkUnit) | |
A scheduler with specific number of workers and work load. | |
bool | dispatch (WorkUnit *out_workUnit) override |
Get some amount of work. | |
bool | schedule (WorkUnit *out_workUnit) |
Get some amount of work. | |
void | scheduleAll (std::vector< WorkUnit > &out_workUnits) |
void | submit (const WorkUnit &workUnit) |
float | getScheduledFraction () const |
float | getSubmittedFraction () const |
bool | isExhausted () const |
Checks if all works had been scheduled. | |
Public Member Functions inherited from ph::IWorkDispatcher | |
virtual | ~IWorkDispatcher ()=default |
Additional Inherited Members | |
Protected Attributes inherited from ph::WorkScheduler | |
std::size_t | m_numWorkers |
WorkUnit | m_totalWorkUnit |
std::size_t | m_totalVolume |
std::size_t | m_scheduledVolume |
std::size_t | m_submittedVolume |
Divide work region into rectangles, each rectangle has the complete depth. The order of each scheduled rectangle forms a spiral shape originating from the center.
|
inline |
|
inline |
|
inline |