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

An abstract drawing device. More...

#include <mitsuba/hw/device.h>

+ Inheritance diagram for mitsuba::Device:

Public Types

enum  EEventType {
  ENoEvent = 0x0000, EQuitEvent = 0x0001, EKeyDownEvent = 0x0002, EKeyUpEvent = 0x0004,
  EMouseMotionEvent = 0x0008, EMouseDragEvent = 0x0010, EMouseButtonDownEvent = 0x0020, EMouseButtonUpEvent = 0x0040,
  EMouseEnterEvent = 0x0080, EMouseLeaveEvent = 0x0100, EMouseBeginDragEvent = 0x0200, EMouseEndDragEvent = 0x0400,
  EMouseDoubleClickEvent = 0x0800, EGainFocusEvent = 0x1000, ELoseFocusEvent = 0x2000, EResizeEvent = 0x4000
}
 Device event types. More...
 
enum  EKeyboardModifiers { EShiftModifier = 0x01, EControlModifier = 0x02, EAltModifier = 0x04, EMetaModifier = 0x08 }
 Device keyboard event modifiers. More...
 
enum  EMouseButton {
  ENoButton = 0x0, ELeftButton = 0x01, EMiddleButton = 0x02, ERightButton = 0x04,
  EWheelUpButton = 0x08, EWheelDownButton = 0x10
}
 Device keyboard event modifiers. More...
 
enum  ESpecialKeys {
  ENoSpecial = 0, EKeyEscape, EKeyF1, EKeyF2,
  EKeyF3, EKeyF4, EKeyF5, EKeyF6,
  EKeyF7, EKeyF8, EKeyF9, EKeyF10,
  EKeyF11, EKeyF12, EKeyF13, EKeyF14,
  EKeyF15, EKeyBackspace, EKeyTab, EKeyClear,
  EKeyReturn, EKeyPause, EKeyInsert, EKeyDelete,
  EKeyUp, EKeyDown, EKeyLeft, EKeyRight,
  EKeyHome, EKeyEnd, EKeyPageUp, EKeyPageDown,
  EKeyNumLock, EKeyCapsLock, EKeyScrollLock, EKeyLShift,
  EKeyRShift, EKeyLAlt, EKeyRAlt, EKeyLMeta,
  EKeyRMeta, EKeyLControl, EKeyRControl, EKeyKeyPad0,
  EKeyKeyPad1, EKeyKeyPad2, EKeyKeyPad3, EKeyKeyPad4,
  EKeyKeyPad5, EKeyKeyPad6, EKeyKeyPad7, EKeyKeyPad8,
  EKeyKeyPad9, EKeyKeyPadPeriod, EKeyKeyPadDivide, EKeyKeyPadMultiply,
  EKeyKeyPadMinus, EKeyKeyPadPlus, EKeyKeyPadEnter, EKeyKeyPadEquals,
  EKeyLastSpecialKey
}
 Device special keys. More...
 

Public Member Functions

Vector2i getSize () const
 Return the dimension of the device. More...
 
void setSize (const Vector2i &dimension)
 Set the dimension of the device. More...
 
Float getAspect () const
 Return the aspect ratio of the device. More...
 
Point2i getPosition () const
 Return the position of the device. More...
 
virtual void setPosition (const Point2i &position)
 Set the position of the device. More...
 
void setFSAA (int fsaa)
 Set the FSAA sample count, do this before Init() More...
 
int getFSAA () const
 Return the FSAA sample count. More...
 
virtual void setVisible (bool visible)=0
 Only applies to devices, which are UI windows. More...
 
void setColorBits (int colorBits)
 A convenience method. More...
 
void setRedBits (int redBits)
 Set the amount of bits for the red component. More...
 
int getRedBits () const
 Return the amount of bits for the red component. More...
 
void setGreenBits (int greenBits)
 Set the amount of bits for the green component. More...
 
int getGreenBits () const
 Return the amount of bits for the green component. More...
 
void setBlueBits (int blueBits)
 Set the amount of bits for the blue component. More...
 
int getBlueBits () const
 Return the amount of bits for the blue component. More...
 
void setAlphaBits (int alphaBits)
 Set the amount of bits for the alpha component. More...
 
int getAlphaBits () const
 Return the amount of bits for the alpha component. More...
 
void setDepthBits (int depthBits)
 Set the amount of bits for the depth component. More...
 
int getDepthBits () const
 Return the amount of bits for the depth component. More...
 
void setStencilBits (int stencilBits)
 Set the amount of bits for the stencil component. More...
 
int getStencilBits () const
 Return the amount of bits for the stencil component. More...
 
void setDoubleBuffer (bool doubleBuffer)
 Define whether to enable double buffering. More...
 
bool getDoubleBuffer () const
 
void setFullscreen (bool fullscreen)
 
bool getFullscreen () const
 Return whether full screen drawing is enabled. More...
 
void setResizeAllowed (bool resizeAllowed)
 
bool isResizeAllowed () const
 Return whether it is possible to resize the window. More...
 
void setCenter (bool center)
 Define whether to enable window centering. More...
 
bool getCenter () const
 Return whether window centering is enabled. More...
 
void setShowFPS (bool showFPS)
 Define whether to show the frames per second. More...
 
bool getShowFPS () const
 Return whether to show the frames per second. More...
 
int getFPS () const
 Return the frames per second (0 if no data is available) More...
 
void setXPos (int xpos)
 Set the x window position. More...
 
virtual void setTitle (const std::string &title)
 Set the window title. More...
 
const std::string & getTitle () const
 Return the window title. More...
 
const SessiongetSession () const
 Get the session. More...
 
SessiongetSession ()
 Get the session. More...
 
virtual void init (Device *other=NULL)
 
virtual void shutdown ()
 Shut the device down. More...
 
void addCallback (DeviceEventListener *callback)
 Add an event callback to the device. More...
 
void removeCallback (DeviceEventListener *callback)
 Remove an event callback from the device. More...
 
virtual void makeCurrent (Renderer *renderer)=0
 Associate the renderer with this device. More...
 
virtual void flip ()
 Flip the buffers (when using double buffering) More...
 
virtual const ClassgetClass () const
 Retrieve this object's class. 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 Member Functions

static Devicecreate (Session *session)
 Construct a new device using the appropriate implementation. 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 Public Attributes

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

Protected Member Functions

virtual ~Device ()
 Virtual destructor. More...
 
 Device (Session *session)
 Create a new device. More...
 
void fireDeviceEvent (const DeviceEvent &event)
 Send a device event using the registered callbacks. More...
 
- Protected Member Functions inherited from Object
virtual ~Object ()
 Virtual private deconstructor. (Will only be called by ref) More...
 

Protected Attributes

ref< Sessionm_session
 
ref< Timerm_timer
 
Vector2i m_size
 
Point2i m_position
 
int m_fsaa
 
int m_redBits
 
int m_greenBits
 
int m_blueBits
 
int m_alphaBits
 
int m_depthBits
 
int m_stencilBits
 
bool m_doubleBuffer
 
bool m_initialized
 
bool m_fullscreen
 
bool m_center
 
bool m_showFPS
 
bool m_resizeAllowed
 
int m_fpsCounter
 
int m_fps
 
int m_lastTime
 
std::string m_title
 
std::list< DeviceEventListener * > m_callbacks
 

Detailed Description

An abstract drawing device.

Member Enumeration Documentation

Device event types.

Enumerator
ENoEvent 
EQuitEvent 
EKeyDownEvent 
EKeyUpEvent 
EMouseMotionEvent 
EMouseDragEvent 
EMouseButtonDownEvent 
EMouseButtonUpEvent 
EMouseEnterEvent 
EMouseLeaveEvent 
EMouseBeginDragEvent 
EMouseEndDragEvent 
EMouseDoubleClickEvent 
EGainFocusEvent 
ELoseFocusEvent 
EResizeEvent 

Device keyboard event modifiers.

Enumerator
EShiftModifier 
EControlModifier 
EAltModifier 
EMetaModifier 

Device keyboard event modifiers.

Enumerator
ENoButton 
ELeftButton 
EMiddleButton 
ERightButton 
EWheelUpButton 
EWheelDownButton 

Device special keys.

Enumerator
ENoSpecial 
EKeyEscape 
EKeyF1 
EKeyF2 
EKeyF3 
EKeyF4 
EKeyF5 
EKeyF6 
EKeyF7 
EKeyF8 
EKeyF9 
EKeyF10 
EKeyF11 
EKeyF12 
EKeyF13 
EKeyF14 
EKeyF15 
EKeyBackspace 
EKeyTab 
EKeyClear 
EKeyReturn 
EKeyPause 
EKeyInsert 
EKeyDelete 
EKeyUp 
EKeyDown 
EKeyLeft 
EKeyRight 
EKeyHome 
EKeyEnd 
EKeyPageUp 
EKeyPageDown 
EKeyNumLock 
EKeyCapsLock 
EKeyScrollLock 
EKeyLShift 
EKeyRShift 
EKeyLAlt 
EKeyRAlt 
EKeyLMeta 
EKeyRMeta 
EKeyLControl 
EKeyRControl 
EKeyKeyPad0 
EKeyKeyPad1 
EKeyKeyPad2 
EKeyKeyPad3 
EKeyKeyPad4 
EKeyKeyPad5 
EKeyKeyPad6 
EKeyKeyPad7 
EKeyKeyPad8 
EKeyKeyPad9 
EKeyKeyPadPeriod 
EKeyKeyPadDivide 
EKeyKeyPadMultiply 
EKeyKeyPadMinus 
EKeyKeyPadPlus 
EKeyKeyPadEnter 
EKeyKeyPadEquals 
EKeyLastSpecialKey 

Constructor & Destructor Documentation

virtual mitsuba::Device::~Device ( )
protectedvirtual

Virtual destructor.

mitsuba::Device::Device ( Session session)
protected

Create a new device.

Member Function Documentation

void mitsuba::Device::addCallback ( DeviceEventListener callback)

Add an event callback to the device.

static Device* mitsuba::Device::create ( Session session)
static

Construct a new device using the appropriate implementation.

void mitsuba::Device::fireDeviceEvent ( const DeviceEvent event)
protected

Send a device event using the registered callbacks.

virtual void mitsuba::Device::flip ( )
virtual

Flip the buffers (when using double buffering)

Reimplemented in mitsuba::NSGLDevice, mitsuba::X11Device, mitsuba::WGLDevice, and mitsuba::GLXDevice.

int mitsuba::Device::getAlphaBits ( ) const
inline

Return the amount of bits for the alpha component.

Float mitsuba::Device::getAspect ( ) const
inline

Return the aspect ratio of the device.

int mitsuba::Device::getBlueBits ( ) const
inline

Return the amount of bits for the blue component.

bool mitsuba::Device::getCenter ( ) const
inline

Return whether window centering is enabled.

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

Retrieve this object's class.

Reimplemented from Object.

Reimplemented in mitsuba::NSGLDevice, mitsuba::WGLDevice, mitsuba::X11Device, and mitsuba::GLXDevice.

int mitsuba::Device::getDepthBits ( ) const
inline

Return the amount of bits for the depth component.

bool mitsuba::Device::getDoubleBuffer ( ) const
inline
int mitsuba::Device::getFPS ( ) const
inline

Return the frames per second (0 if no data is available)

int mitsuba::Device::getFSAA ( ) const
inline

Return the FSAA sample count.

bool mitsuba::Device::getFullscreen ( ) const
inline

Return whether full screen drawing is enabled.

int mitsuba::Device::getGreenBits ( ) const
inline

Return the amount of bits for the green component.

Point2i mitsuba::Device::getPosition ( ) const
inline

Return the position of the device.

int mitsuba::Device::getRedBits ( ) const
inline

Return the amount of bits for the red component.

const Session* mitsuba::Device::getSession ( ) const
inline

Get the session.

Session* mitsuba::Device::getSession ( )
inline

Get the session.

bool mitsuba::Device::getShowFPS ( ) const
inline

Return whether to show the frames per second.

Vector2i mitsuba::Device::getSize ( ) const
inline

Return the dimension of the device.

int mitsuba::Device::getStencilBits ( ) const
inline

Return the amount of bits for the stencil component.

const std::string& mitsuba::Device::getTitle ( ) const
inline

Return the window title.

virtual void mitsuba::Device::init ( Device other = NULL)
virtual

Initialize the renderer. Optionally, an existing device instance can be provided as a second argument – this is primarily meant to create a device that will be able to support a shared context with another device.

Reimplemented in mitsuba::NSGLDevice, mitsuba::X11Device, and mitsuba::WGLDevice.

bool mitsuba::Device::isResizeAllowed ( ) const
inline

Return whether it is possible to resize the window.

virtual void mitsuba::Device::makeCurrent ( Renderer renderer)
pure virtual

Associate the renderer with this device.

Implemented in mitsuba::NSGLDevice, mitsuba::X11Device, and mitsuba::WGLDevice.

void mitsuba::Device::removeCallback ( DeviceEventListener callback)

Remove an event callback from the device.

void mitsuba::Device::setAlphaBits ( int  alphaBits)

Set the amount of bits for the alpha component.

void mitsuba::Device::setBlueBits ( int  blueBits)

Set the amount of bits for the blue component.

void mitsuba::Device::setCenter ( bool  center)

Define whether to enable window centering.

void mitsuba::Device::setColorBits ( int  colorBits)

A convenience method.

Sets the amount of bits for the red, green and blue components

void mitsuba::Device::setDepthBits ( int  depthBits)

Set the amount of bits for the depth component.

void mitsuba::Device::setDoubleBuffer ( bool  doubleBuffer)

Define whether to enable double buffering.

void mitsuba::Device::setFSAA ( int  fsaa)

Set the FSAA sample count, do this before Init()

void mitsuba::Device::setFullscreen ( bool  fullscreen)
void mitsuba::Device::setGreenBits ( int  greenBits)

Set the amount of bits for the green component.

virtual void mitsuba::Device::setPosition ( const Point2i position)
virtual

Set the position of the device.

Reimplemented in mitsuba::NSGLDevice, mitsuba::X11Device, and mitsuba::WGLDevice.

void mitsuba::Device::setRedBits ( int  redBits)

Set the amount of bits for the red component.

void mitsuba::Device::setResizeAllowed ( bool  resizeAllowed)
void mitsuba::Device::setShowFPS ( bool  showFPS)
inline

Define whether to show the frames per second.

void mitsuba::Device::setSize ( const Vector2i dimension)

Set the dimension of the device.

void mitsuba::Device::setStencilBits ( int  stencilBits)

Set the amount of bits for the stencil component.

virtual void mitsuba::Device::setTitle ( const std::string &  title)
virtual

Set the window title.

Reimplemented in mitsuba::NSGLDevice, mitsuba::X11Device, and mitsuba::WGLDevice.

virtual void mitsuba::Device::setVisible ( bool  visible)
pure virtual

Only applies to devices, which are UI windows.

Implemented in mitsuba::NSGLDevice, mitsuba::X11Device, and mitsuba::WGLDevice.

void mitsuba::Device::setXPos ( int  xpos)

Set the x window position.

virtual void mitsuba::Device::shutdown ( )
virtual

Shut the device down.

Reimplemented in mitsuba::NSGLDevice, mitsuba::X11Device, and mitsuba::WGLDevice.

Member Data Documentation

int mitsuba::Device::m_alphaBits
protected
int mitsuba::Device::m_blueBits
protected
std::list<DeviceEventListener *> mitsuba::Device::m_callbacks
protected
bool mitsuba::Device::m_center
protected
int mitsuba::Device::m_depthBits
protected
bool mitsuba::Device::m_doubleBuffer
protected
int mitsuba::Device::m_fps
protected
int mitsuba::Device::m_fpsCounter
protected
int mitsuba::Device::m_fsaa
protected
bool mitsuba::Device::m_fullscreen
protected
int mitsuba::Device::m_greenBits
protected
bool mitsuba::Device::m_initialized
protected
int mitsuba::Device::m_lastTime
protected
Point2i mitsuba::Device::m_position
protected
int mitsuba::Device::m_redBits
protected
bool mitsuba::Device::m_resizeAllowed
protected
ref<Session> mitsuba::Device::m_session
protected
bool mitsuba::Device::m_showFPS
protected
Vector2i mitsuba::Device::m_size
protected
int mitsuba::Device::m_stencilBits
protected
Class* mitsuba::Device::m_theClass
static
ref<Timer> mitsuba::Device::m_timer
protected
std::string mitsuba::Device::m_title
protected

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