#include <mitsuba/render/imageproc.h>
Public Member Functions | |
virtual const Class * | getClass () const |
Retrieve this object's class. More... | |
Implementation of the ParallelProcess interface | |
virtual EStatus | generateWork (WorkUnit *unit, int worker) |
Generate a piece of work. More... | |
Public Member Functions inherited from mitsuba::ParallelProcess | |
virtual void | processResult (const WorkResult *result, bool cancelled)=0 |
Called whenever a work unit has been completed. More... | |
virtual void | handleCancellation () |
Called when the parallel process is canceled by Scheduler::cancel(). More... | |
EStatus | getReturnStatus () const |
Query the return status of a process after its execution has finished. More... | |
virtual ref< WorkProcessor > | createWorkProcessor () const =0 |
Create an instance of the algorithm responsible for executing the work units of this parallel process. More... | |
virtual void | bindResource (const std::string &name, int id) |
Bind a resource to this parallel process. More... | |
virtual bool | isLocal () const |
Is this process strictly local? More... | |
ELogLevel | getLogLevel () const |
Return the log level for events associated with this process. More... | |
const ResourceBindings & | getResourceBindings () const |
Return a list of all bound resources. More... | |
virtual std::vector< std::string > | getRequiredPlugins () |
Return a list of plugins required by this parallel process. More... | |
Public Member Functions inherited from Object | |
Object () | |
Construct a new object. More... | |
int | getRefCount () const |
Return the current reference count. More... | |
void | incRef () const |
Increase the reference count of the object by one. More... | |
void | decRef (bool autoDeallocate=true) const |
Decrease the reference count of the object and possibly deallocate it. More... | |
virtual std::string | toString () const |
Return a human-readable string representation of the object's contents. More... | |
Static Public Attributes | |
static Class * | m_theClass |
Static Public Attributes inherited from mitsuba::ParallelProcess | |
static Class * | m_theClass |
Static Public Attributes inherited from Object | |
static Class * | m_theClass |
Pointer to the object's class descriptor. More... | |
Protected Types | |
enum | EDirection { ERight = 0, EDown, ELeft, EUp } |
Protected Member Functions | |
void | init (const Point2i &offset, const Vector2i &size, uint32_t blockSize) |
BlockedImageProcess () | |
Protected constructor. More... | |
virtual | ~BlockedImageProcess () |
Virtual destructor. More... | |
Protected Member Functions inherited from mitsuba::ParallelProcess | |
ParallelProcess () | |
Protected constructor. More... | |
virtual | ~ParallelProcess () |
Virtual destructor. More... | |
Protected Member Functions inherited from Object | |
virtual | ~Object () |
Virtual private deconstructor. (Will only be called by ref) More... | |
Protected Attributes | |
Point2i | m_offset |
Vector2i | m_size |
Vector2i | m_numBlocks |
Point2i | m_curBlock |
int | m_direction |
int | m_numSteps |
int | m_stepsLeft |
int | m_numBlocksTotal |
int | m_numBlocksGenerated |
int | m_blockSize |
Protected Attributes inherited from mitsuba::ParallelProcess | |
ResourceBindings | m_bindings |
EStatus | m_returnStatus |
ELogLevel | m_logLevel |
Additional Inherited Members | |
Public Types inherited from mitsuba::ParallelProcess | |
enum | EStatus { EUnknown, EPause, ESuccess, EFailure } |
Return codes used by generateWork() and getReturnStatus() More... | |
typedef std::map< std::string, int > | ResourceBindings |
Binding from local resource names to global resource IDs. More... | |
Static Public Member Functions inherited from Object | |
static void | staticInitialization () |
Initializes the built-in reference count debugger (if enabled) More... | |
static void | staticShutdown () |
Free the memory taken by staticInitialization() More... | |
Abstract parallel process, which performs a certain task (to be defined by the subclass) on the pixels of an image where work on adjacent pixels is independent. For preview purposes, a spiraling pattern of square pixel blocks is generated.
|
protected |
|
inlineprotected |
Protected constructor.
|
inlineprotectedvirtual |
Virtual destructor.
Generate a piece of work.
Takes a pre-allocated WorkUnit instance of the appropriate sub-type and size (as specified by ParallelProcess::getWorkUnitName()) and fills it with the appropriate content. Returns ESuccess on success and EFailure or EPause when no more work is left – in that case, the work unit will be ignored and the process completed (EFailure) or temporarily paused (EPause). When EPause was used, resubmission via Scheduler::schedule() will be required once more work is available. In some cases, it is useful to distribute 'nearby' pieces of work to the same processor – the worker
parameter can be used to implement this. This function should run as quickly as possible, since it will be executed while the scheduler mutex is held. A thrown exception will lead to the termination of the parallel process.
unit | Work unit data structure to be filled |
worker | ID of the worker executing this function |
Implements mitsuba::ParallelProcess.
Reimplemented in mitsuba::BlockedRenderProcess.
|
virtual |
Retrieve this object's class.
Reimplemented from mitsuba::ParallelProcess.
Reimplemented in mitsuba::BlockedRenderProcess.
|
protected |
Initialize the image process
offset | Integer offset of the image region to be processed |
size | Size of the image region to be processed |
blockSize | Size of the generated square pixel blocks |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
static |