Photon Engine 2.0.0-beta
A physically based renderer.
|
#include <TileScheduler.h>
Public Types | |
enum class | EOrigin { LowerLeft , LowerRight , UpperLeft , UpperRight } |
Public Member Functions | |
TileScheduler () | |
TileScheduler (std::size_t numWorkers, const WorkUnit &totalWorkUnit, const math::Vector2S &tileSize) | |
TileScheduler (std::size_t numWorkers, const WorkUnit &totalWorkUnit, const math::Vector2S &tileSize, EOrigin origin, std::size_t prioriAxis) | |
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 with prescribed dimensions.
|
strong |
|
inline |
|
inline |
|
inline |