Mitsuba Renderer  0.5.0
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
mitsuba::RenderJob Class Reference

Coordinates the process of rendering a single image. More...

#include <mitsuba/render/renderjob.h>

+ Inheritance diagram for mitsuba::RenderJob:

Public Member Functions

 RenderJob (const std::string &threadName, Scene *scene, RenderQueue *queue, int sceneResID=-1, int sensorResID=-1, int samplerResID=-1, bool threadIsCritical=true, bool interactive=false)
 Create a new render job for the given scene. More...
 
void flush ()
 Write out the current (partially rendered) image. More...
 
void cancel ()
 Cancel a running render job. More...
 
bool wait ()
 Wait for the job to finish and return whether it was successful. More...
 
bool isInteractive () const
 Are partial results of the rendering process visible, e.g. in a graphical user interface? More...
 
void setInteractive (bool interactive)
 Define whether or not this is an interactive job. More...
 
ScenegetScene ()
 Get a pointer to the underlying scene. More...
 
const ScenegetScene () const
 Get a pointer to the underlying scene (const version) More...
 
RenderQueuegetRenderQueue ()
 Get a pointer to the underlying render queue. More...
 
const RenderQueuegetRenderQueue () const
 Get a pointer to the underlying render queue (const version) More...
 
Float getRenderTime () const
 Return the amount of time spent rendering the given job (in seconds) More...
 
virtual const ClassgetClass () const
 Retrieve this object's class. More...
 
- Public Member Functions inherited from mitsuba::Thread
 Thread (const std::string &name)
 Create a new thread object. More...
 
bool setPriority (EThreadPriority priority)
 Set the thread priority. More...
 
EThreadPriority getPriority () const
 Return the thread priority. More...
 
void setCoreAffinity (int core)
 Set the core affinity. More...
 
int getCoreAffinity () const
 Return the core affinity. More...
 
void setCritical (bool critical)
 Specify whether or not this thread is critical. More...
 
bool getCritical () const
 Return the value of the critical flag. More...
 
const std::string & getName () const
 Return the name of this thread. More...
 
void setName (const std::string &name)
 Set the name of this thread. More...
 
ThreadgetParent ()
 Return the parent thread. More...
 
const ThreadgetParent () const
 Return the parent thread (const version) More...
 
void setLogger (Logger *logger)
 Set the logger instance used to process log messages from this thread. More...
 
LoggergetLogger ()
 Return the thread's logger instance. More...
 
void setFileResolver (FileResolver *fresolver)
 Set the thread's file resolver. More...
 
FileResolvergetFileResolver ()
 Return the thread's file resolver. More...
 
bool isRunning () const
 Is this thread still running? More...
 
void start ()
 Start the thread. More...
 
void detach ()
 Detach the thread and release resources. More...
 
void join ()
 Wait until the thread finishes. More...
 
virtual std::string toString () const
 Return a string representation. 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...
 

Static Public Attributes

static Classm_theClass
 
- Static Public Attributes inherited from mitsuba::Thread
static Classm_theClass
 
- Static Public Attributes inherited from Object
static Classm_theClass
 Pointer to the object's class descriptor. More...
 

Protected Member Functions

virtual ~RenderJob ()
 Virtual destructor. More...
 
void run ()
 Run method. More...
 
- Protected Member Functions inherited from mitsuba::Thread
virtual ~Thread ()
 Virtual destructor. More...
 
void exit ()
 
void yield ()
 Yield to another processor. More...
 
- Protected Member Functions inherited from Object
virtual ~Object ()
 Virtual private deconstructor. (Will only be called by ref) More...
 

Additional Inherited Members

- Public Types inherited from mitsuba::Thread
enum  EThreadPriority {
  EIdlePriority = 0, ELowestPriority, ELowPriority, ENormalPriority,
  EHighPriority, EHighestPriority, ERealtimePriority
}
 Possible priority values for Thread::setPriority() More...
 
- Static Public Member Functions inherited from mitsuba::Thread
static int getID ()
 Return the thread ID. More...
 
static ThreadgetThread ()
 Return the current thread. More...
 
static void sleep (unsigned int ms)
 Sleep for a certain amount of time. More...
 
static void staticInitialization ()
 Initialize the threading system. More...
 
static void staticShutdown ()
 Shut down the threading system. More...
 
static void initializeOpenMP (size_t threadCount)
 Initialize Mitsuba's threading system for simultaneous use of OpenMP. More...
 
static ThreadregisterUnmanagedThread (const std::string &name)
 Register an unmanaged thread with Mitsuba (i.e. one that doesn't derive from mitsuba::Thread) More...
 
static void registerCrashHandler (bool(*handler)(void))
 Register a thread crash handler. 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...
 
- Static Protected Member Functions inherited from mitsuba::Thread
static void dispatch (Thread *thread)
 Thread dispatch function. More...
 

Detailed Description

Coordinates the process of rendering a single image.

Implemented as a thread so that multiple jobs can be executed concurrently.

Constructor & Destructor Documentation

mitsuba::RenderJob::RenderJob ( const std::string &  threadName,
Scene scene,
RenderQueue queue,
int  sceneResID = -1,
int  sensorResID = -1,
int  samplerResID = -1,
bool  threadIsCritical = true,
bool  interactive = false 
)

Create a new render job for the given scene.

When the Resource ID parameters (sceneResID, sensorResID, ..) are set to -1, the implementation will automatically register the associated objects (scene, sensor, sampler) with the scheduler and forward copies to all involved network rendering workers. When some of these resources have already been registered with the scheduler, their IDs can be provided to avoid this extra communication cost.

Parameters
threadNameThread name identifier for this render job
sceneScene to be rendered
queuePointer to a queue, to which this job should be added
sceneResIDResource ID of scene (or -1)
sensorResIDResource ID of scene->getSensor() (or -1)
samplerResIDResource ID of the sample generator (or -1)
threadIsCriticalWhen set to true, the entire program will terminate if this thread fails unexpectedly.
interactiveAre partial results of the rendering process visible, e.g. in a graphical user interface?
virtual mitsuba::RenderJob::~RenderJob ( )
protectedvirtual

Virtual destructor.

Member Function Documentation

void mitsuba::RenderJob::cancel ( )
inline

Cancel a running render job.

void mitsuba::RenderJob::flush ( )
inline

Write out the current (partially rendered) image.

virtual const Class* mitsuba::RenderJob::getClass ( ) const
virtual

Retrieve this object's class.

Reimplemented from mitsuba::Thread.

RenderQueue* mitsuba::RenderJob::getRenderQueue ( )
inline

Get a pointer to the underlying render queue.

const RenderQueue* mitsuba::RenderJob::getRenderQueue ( ) const
inline

Get a pointer to the underlying render queue (const version)

Float mitsuba::RenderJob::getRenderTime ( ) const
inline

Return the amount of time spent rendering the given job (in seconds)

Scene* mitsuba::RenderJob::getScene ( )
inline

Get a pointer to the underlying scene.

const Scene* mitsuba::RenderJob::getScene ( ) const
inline

Get a pointer to the underlying scene (const version)

bool mitsuba::RenderJob::isInteractive ( ) const
inline

Are partial results of the rendering process visible, e.g. in a graphical user interface?

Some integrators may choose to invest more time on generating high-quality intermediate results in this case.

void mitsuba::RenderJob::run ( )
protectedvirtual

Run method.

Implements mitsuba::Thread.

void mitsuba::RenderJob::setInteractive ( bool  interactive)
inline

Define whether or not this is an interactive job.

bool mitsuba::RenderJob::wait ( )
inline

Wait for the job to finish and return whether it was successful.

Member Data Documentation

Class* mitsuba::RenderJob::m_theClass
static

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