omegalib  13.1
omega::DisplayConfig Class Reference

Stores omegalib display configuration data. More...

#include <DisplayConfig.h>

Public Types

typedef KeyValue< String, Ref< DisplayTileConfig > > Tile
 

Public Member Functions

int setupMultiInstance (MultiInstanceConfig *mic)
 Modifies the display configuration to run on the tile subset specified in MultiInstanceConfig. More...
 
bool isHostInTileSection (const String &hostname, int tilex, int tiley, int tilew, int tileh)
 Returns true if the specified host is running a tile in the specified section. More...
 
void setTilesEnabled (int tilex, int tiley, int tilew, int tileh, bool enabled)
 Enables or disables tiles in the specified rectangle. More...
 
void setTilesEnabled (const String &tiles)
 Enables tiles based on their name. More...
 
std::pair< bool, Vector3fgetPixelPosition (int x, int y)
 Returns the position in real-world coordinates of the specified display pixel. More...
 
DisplayTileConfiggetTileFromPixel (int x, int y)
 
bool hasRayPointMapper ()
 Returns true if this configuration has a ray-point mapper function for the display geometry. More...
 
Vector2f rayToPoint (const Ray &r)
 Computes the intersection of a ray with the display geometry. More...
 
Ray getViewRay (Vector2i position)
 Returns a view ray given a global (canvas) pointer position in pixel coordinates. More...
 
Ray getViewRay (Vector2i position, DisplayTileConfig *dtc)
 Returns a view ray given a local pointer positon and a tile index. More...
 
bool getViewRayFromEvent (const Event &evt, Ray &ray, bool normalizedPointerCoords=false, Camera *=NULL)
 Computes a view ray from a pointer or wand event. More...
 
const RectgetCanvasRect () const
 Gts/sets the canvas minimum and maximum boundaries. More...
 
void setCanvasRect (const Rect &cr)
 
void bringToFront ()
 Make sure the canvas for this display configuration is on top of any other application. More...
 
bool isBringToFrontRequested ()
 Returns true if a bring to front has been requested in this frame. More...
 
 DisplayConfig ()
 
- Public Member Functions inherited from omicron::ReferenceType
 ReferenceType ()
 
virtual ~ReferenceType ()
 
void ref ()
 
void unref ()
 
long refCount ()
 

Static Public Member Functions

static void LoadConfig (Setting &s, DisplayConfig &cfg)
 
- Static Public Member Functions inherited from omicron::ReferenceType
static void printObjCounts ()
 

Public Attributes

bool openGLCoreProfile
 When set to true, OpenGL is initialized in forward-compatible core mode. More...
 
bool invertStereo
 When set to true, eyes are inverted in stereo mode. More...
 
bool disableConfigGenerator
 
bool verbose
 When set to true, the Display system will output additional diagnostic messages during startup and shutdown. More...
 
int latency
 Number of horizontal / vertical tiles in the display system. More...
 
Vector2i referenceTile
 (Used only for planar configurtions) Index of the tile whose center will be used as the origin of the display system geometry. More...
 
Vector3f referenceOffset
 Offset of reference tile center wrt world origin. More...
 
Vector2f tileSize
 Size of tile in meters. More...
 
Vector2f bezelSize
 Size of tile bezel in meters. More...
 
Vector2i tileResolution
 Tile resolution in pixels. More...
 
Vector2i displayResolution
 Full display resolution in pixels. More...
 
Vector2i windowOffset
 When set to true, window positions will be computed automatically in a multiwindow setting. More...
 
DisplayTileConfig::StereoMode stereoMode
 Global stereo mode. More...
 
bool enableVSync
 Enable vsync on all tiles. More...
 
bool enableSwapSync
 Enable swap sync on cluster displays. More...
 
bool fullscreen
 Enable fullscreen rendering. More...
 
bool borderless
 Disable window borders. More...
 
bool drawFps
 
Dictionary< String, Ref< DisplayTileConfig > > tiles
 Tile configurations. More...
 
int numTiles
 Total display resolution. More...
 
int numNodes
 Number of nodes for a multimachine display system. More...
 
DisplayNodeConfig nodes [MaxNodes]
 Node configurations for a multimachine display system. More...
 
int launcherInterval
 Interval in milliseconds between node launcher commands. More...
 
String nodeLauncher
 Node launcher command. More...
 
String nodeKiller
 Node killer command. More...
 
int basePort
 Default port used to connect to nodes. More...
 
DisplayTileConfigtileGrid [128][128]
 The tile grid is needed for 2d interaction with tiles. More...
 
Vector2i tileGridSize
 The number of horizontal and vertical tiles in the tile grid. More...
 
Ref< DisplayConfigBuilderconfigBuilder
 
Ref< RayPointMapperrayPointMapper
 
String canvasChangedCommand
 Script command to call when the canvas changes. More...
 
ICanvasListenercanvasListener
 
Vector3f canvasPosition
 Stores the transformation that converts a default 'full screen' view into the view used by the current canvas rect. More...
 
Quaternion canvasOrientation
 
Vector3f canvasScale
 
Vector3f(* computeEyePosition )(const Vector3f headSpaceEyePosition, const AffineTransform3 &headTransform, const DrawContext &dc)
 Function used to convert head-space eye positions into sensor-space (real world) eye positions. More...
 
bool panopticStereoEnabled
 Runtime settings. More...
 
bool forceMono
 Runtime flag:When set to true, all tiles will be forced to render in mono mode. More...
 

Static Public Attributes

static const int MaxNodes = 64
 

Friends

class DisplaySystem
 

Additional Inherited Members

- Static Protected Attributes inherited from omicron::ReferenceType
static List< ReferenceType * > mysObjList
 

Detailed Description

Stores omegalib display configuration data.

+ Inheritance diagram for omega::DisplayConfig:

Member Typedef Documentation

Constructor & Destructor Documentation

omega::DisplayConfig::DisplayConfig ( )
inline

Member Function Documentation

void omega::DisplayConfig::bringToFront ( )
inline

Make sure the canvas for this display configuration is on top of any other application.

const Rect & omega::DisplayConfig::getCanvasRect ( ) const
inline

Gts/sets the canvas minimum and maximum boundaries.

Normally, the minimum canvas point is (0,0) but in some settings (i.e. offset workspaces) the canvas starting point may be different. The canvas pixel rect is updated by the updateCanvasPixelSize method.

std::pair<bool, Vector3f> omega::DisplayConfig::getPixelPosition ( int  x,
int  y 
)

Returns the position in real-world coordinates of the specified display pixel.

Returns
a pair <bool, Vector3f>. The boolean is set to true only if a point for the corresponding pixel could be found (i.e. if the pixel is within the bounds of the display area)
DisplayTileConfig* omega::DisplayConfig::getTileFromPixel ( int  x,
int  y 
)
Ray omega::DisplayConfig::getViewRay ( Vector2i  position)

Returns a view ray given a global (canvas) pointer position in pixel coordinates.

Ray omega::DisplayConfig::getViewRay ( Vector2i  position,
DisplayTileConfig dtc 
)

Returns a view ray given a local pointer positon and a tile index.

bool omega::DisplayConfig::getViewRayFromEvent ( const Event evt,
Ray ray,
bool  normalizedPointerCoords = false,
Camera = NULL 
)

Computes a view ray from a pointer or wand event.

Returns true if the ray has been generated succesfully, false otherwise (i.e. because the event is not a wand or pointer event)

bool omega::DisplayConfig::hasRayPointMapper ( )
inline

Returns true if this configuration has a ray-point mapper function for the display geometry.

Ray-point mapper functions are used to speed-up ray to display surface intersections, by using an ideal representation of the display geometry.

bool omega::DisplayConfig::isBringToFrontRequested ( )
inline

Returns true if a bring to front has been requested in this frame.

bool omega::DisplayConfig::isHostInTileSection ( const String hostname,
int  tilex,
int  tiley,
int  tilew,
int  tileh 
)

Returns true if the specified host is running a tile in the specified section.

static void omega::DisplayConfig::LoadConfig ( Setting s,
DisplayConfig cfg 
)
static
Vector2f omega::DisplayConfig::rayToPoint ( const Ray r)
inline

Computes the intersection of a ray with the display geometry.

Returns
a display surface point in normalized coordinates, or (-1, -1) if no intersection was found.
void omega::DisplayConfig::setCanvasRect ( const Rect cr)
void omega::DisplayConfig::setTilesEnabled ( int  tilex,
int  tiley,
int  tilew,
int  tileh,
bool  enabled 
)

Enables or disables tiles in the specified rectangle.

Tiles must be part of the tile grid.

void omega::DisplayConfig::setTilesEnabled ( const String tiles)

Enables tiles based on their name.

Accepts a string of space-separated tile names. Any tile not passed in the string will be disabled.

int omega::DisplayConfig::setupMultiInstance ( MultiInstanceConfig mic)

Modifies the display configuration to run on the tile subset specified in MultiInstanceConfig.

This call modifies enabled tiles and port assignments in the display configuration and Assings the application an instance id. The instance id is written in the id field of MultiInstanceConfig and is returned by this call.

Friends And Related Function Documentation

friend class DisplaySystem
friend

Member Data Documentation

int omega::DisplayConfig::basePort

Default port used to connect to nodes.

Vector2f omega::DisplayConfig::bezelSize

Size of tile bezel in meters.

bool omega::DisplayConfig::borderless

Disable window borders.

String omega::DisplayConfig::canvasChangedCommand

Script command to call when the canvas changes.

ICanvasListener* omega::DisplayConfig::canvasListener
Quaternion omega::DisplayConfig::canvasOrientation
Vector3f omega::DisplayConfig::canvasPosition

Stores the transformation that converts a default 'full screen' view into the view used by the current canvas rect.

This transform is computed by configuration builders or canvas listeners to transform an immersive view and readjust it as the canvas changes. If this node transform is set to identity, the view will not follow a canvas, and the canvas will behave as a movable 2D window into the VR world.

Remarks
this value is used in DrawContext::updateTransforms We need to use a SceneNode here instead of a simple node because we still need to forward updateTraversals to the camera, and updateTraversal is implemented in SceneNode
Vector3f omega::DisplayConfig::canvasScale
Vector3f(* omega::DisplayConfig::computeEyePosition) (const Vector3f headSpaceEyePosition, const AffineTransform3 &headTransform, const DrawContext &dc)

Function used to convert head-space eye positions into sensor-space (real world) eye positions.

Used by DrawContext::updateTransforms Custom config builders can override this with custom implementations. For instance, the cylindrical config builder ovverides it to add support for CAVE2 panoptic stereo mode.

Ref<DisplayConfigBuilder> omega::DisplayConfig::configBuilder
bool omega::DisplayConfig::disableConfigGenerator
Vector2i omega::DisplayConfig::displayResolution

Full display resolution in pixels.

Will be calculated during setup.

bool omega::DisplayConfig::drawFps
bool omega::DisplayConfig::enableSwapSync

Enable swap sync on cluster displays.

bool omega::DisplayConfig::enableVSync

Enable vsync on all tiles.

bool omega::DisplayConfig::forceMono

Runtime flag:When set to true, all tiles will be forced to render in mono mode.

bool omega::DisplayConfig::fullscreen

Enable fullscreen rendering.

bool omega::DisplayConfig::invertStereo

When set to true, eyes are inverted in stereo mode.

int omega::DisplayConfig::latency

Number of horizontal / vertical tiles in the display system.

int omega::DisplayConfig::launcherInterval

Interval in milliseconds between node launcher commands.

const int omega::DisplayConfig::MaxNodes = 64
static
String omega::DisplayConfig::nodeKiller

Node killer command.

String omega::DisplayConfig::nodeLauncher

Node launcher command.

DisplayNodeConfig omega::DisplayConfig::nodes[MaxNodes]

Node configurations for a multimachine display system.

int omega::DisplayConfig::numNodes

Number of nodes for a multimachine display system.

int omega::DisplayConfig::numTiles

Total display resolution.

Will be computed automatically during the setup process, users should leave this blank.

bool omega::DisplayConfig::openGLCoreProfile

When set to true, OpenGL is initialized in forward-compatible core mode.

Version
10.4
bool omega::DisplayConfig::panopticStereoEnabled

Runtime settings.

Runtime flag: when set to true, observer orientation will still use camera orientation even

Ref<RayPointMapper> omega::DisplayConfig::rayPointMapper
Vector3f omega::DisplayConfig::referenceOffset

Offset of reference tile center wrt world origin.

Vector2i omega::DisplayConfig::referenceTile

(Used only for planar configurtions) Index of the tile whose center will be used as the origin of the display system geometry.

DisplayTileConfig::StereoMode omega::DisplayConfig::stereoMode

Global stereo mode.

Will be used by tiles that specify 'Default" as their stereo mode.

DisplayTileConfig* omega::DisplayConfig::tileGrid[128][128]

The tile grid is needed for 2d interaction with tiles.

and for applications running on tile subsets. Configuration generators fill this up.

Vector2i omega::DisplayConfig::tileGridSize

The number of horizontal and vertical tiles in the tile grid.

Configuration generators fill this up together with tileGrid;

Vector2i omega::DisplayConfig::tileResolution

Tile resolution in pixels.

Dictionary<String, Ref<DisplayTileConfig> > omega::DisplayConfig::tiles

Tile configurations.

Vector2f omega::DisplayConfig::tileSize

Size of tile in meters.

bool omega::DisplayConfig::verbose

When set to true, the Display system will output additional diagnostic messages during startup and shutdown.

Vector2i omega::DisplayConfig::windowOffset

When set to true, window positions will be computed automatically in a multiwindow setting.

Offset of the first window in pixels (valid for multiwindow settings)


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