Equalizer  1.7.3
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Pages
eq::fabric::Channel< W, C > Class Template Reference

Base data transport class for channels. More...

#include <channel.h>

+ Inheritance diagram for eq::fabric::Channel< W, C >:
+ Collaboration diagram for eq::fabric::Channel< W, C >:

Public Types

enum  Drawable { FB_WINDOW = LB_BIT_NONE, FBO_COLOR = LB_BIT1, FBO_DEPTH = LB_BIT2, FBO_STENCIL = LB_BIT3 }
 The drawable format defines the components used as an alternate drawable for this channel. More...
 
typedef LeafVisitor< C > Visitor
 The channel visitor type.
 
typedef W Parent
 The parent window type.
 
- Public Types inherited from eq::fabric::Object
enum  DirtyBits {
  DIRTY_NAME = Serializable::DIRTY_CUSTOM << 0, DIRTY_USERDATA = Serializable::DIRTY_CUSTOM << 1, DIRTY_TASKS = Serializable::DIRTY_CUSTOM << 2, DIRTY_REMOVED = Serializable::DIRTY_CUSTOM << 3,
  DIRTY_SERIAL = Serializable::DIRTY_CUSTOM << 4, DIRTY_CUSTOM = Serializable::DIRTY_CUSTOM << 6, DIRTY_OBJECT_BITS = DIRTY_NAME | DIRTY_USERDATA
}
 The changed parts of the object since the last pack(). More...
 

Public Member Functions

virtual bool omitOutput () const
 
virtual void output (std::ostream &) const
 
Data Access
void init ()
 
W * getWindow ()
 
const W * getWindow () const
 
bool isDestination () const
 
void setViewVersion (const co::ObjectVersion &view)
 
const co::ObjectVersion & getViewVersion () const
 
void setPixelViewport (const PixelViewport &pvp)
 
EQFABRIC_INL void setViewport (const Viewport &vp)
 
virtual void notifyViewportChanged ()
 
const PixelViewportgetNativePixelViewport () const
 
bool hasFixedViewport () const
 
EQFABRIC_INL void setNearFar (const float nearPlane, const float farPlane)
 Set the near and far planes for this channel. More...
 
uint32_t getDrawable () const
 
EQFABRIC_INL VisitorResult accept (Visitor &visitor)
 Perform a depth-first traversal of this channel. More...
 
EQFABRIC_INL VisitorResult accept (Visitor &visitor) const
 Const-version of accept(). More...
 
EQFABRIC_INL void setCapabilities (const uint64_t bitmask)
 Set the capabilities supported by the channel. More...
 
EQFABRIC_INL uint64_t getCapabilities () const
 
EQFABRIC_INL void setMaxSize (const Vector2i &size)
 
void setOverdraw (const Vector4i &overdraw)
 
const Vector2igetMaxSize () const
 
EQFABRIC_INL ChannelPath getPath () const
 
virtual EQFABRIC_INL void backup ()
 
virtual EQFABRIC_INL void restore ()
 
Context-specific data access.

The data returned by these methods depends on the context (callback) they are called from, typically the data for the current rendering task.

If they are called outside of a frame task method, they return the channel's native parameter, e.g., a placeholder value for the task decomposition parameters.

uint32_t getDrawBuffer () const
 
uint32_t getReadBuffer () const
 
const ColorMaskgetDrawBufferMask () const
 
const PixelViewportgetPixelViewport () const
 
virtual bool useOrtho () const
 Select perspective or orthographic rendering. More...
 
const FrustumfgetFrustum () const
 
const FrustumfgetPerspective () const
 
const FrustumfgetOrtho () const
 
const Matrix4fgetHeadTransform () const
 Return the view matrix. More...
 
const Matrix4fgetPerspectiveTransform () const
 Return the perspective view matrix. More...
 
const Matrix4fgetOrthoTransform () const
 Return the orthographic view matrix. More...
 
const ViewportgetViewport () const
 
const RangegetRange () const
 
const PixelgetPixel () const
 
const SubPixelgetSubPixel () const
 
const ZoomgetZoom () const
 
uint32_t getPeriod () const
 
uint32_t getPhase () const
 
const Vector2igetPixelOffset () const
 Get the channel's current position wrt the destination channel. More...
 
Eye getEye () const
 
const Vector4igetOverdraw () const
 
uint32_t getTaskID () const
 
- Public Member Functions inherited from eq::fabric::Object
virtual EQFABRIC_API bool isDirty () const
 
virtual EQFABRIC_API uint128_t commit (const uint32_t incarnation=CO_COMMIT_NEXT)
 
virtual EQFABRIC_API void setName (const std::string &name)
 Set the name of the object. More...
 
EQFABRIC_API const std::string & getName () const
 
EQFABRIC_API void setUserData (co::Object *userData)
 Set user-specific data. More...
 
EQFABRIC_API co::Object * getUserData ()
 
EQFABRIC_API const co::Object * getUserData () const
 
EQFABRIC_API uint32_t getTasks () const
 Return the set of tasks this channel might execute in the worst case. More...
 
EQFABRIC_API uint32_t getSerial () const
 

Protected Types

enum  DirtyBits {
  DIRTY_ATTRIBUTES = Object::DIRTY_CUSTOM << 0, DIRTY_VIEWPORT = Object::DIRTY_CUSTOM << 1, DIRTY_MEMBER = Object::DIRTY_CUSTOM << 2, DIRTY_FRUSTUM = Object::DIRTY_CUSTOM << 3,
  DIRTY_CAPABILITIES = Object::DIRTY_CUSTOM << 4, DIRTY_CHANNEL_BITS
}
 

Protected Member Functions

EQFABRIC_INL Channel (W *parent)
 Construct a new channel.
 
 Channel (const Channel &from)
 Construct a copy of a channel (view/segment dest).
 
virtual EQFABRIC_INL ~Channel ()
 Destruct the channel.
 
virtual EQFABRIC_INL void serialize (co::DataOStream &os, const uint64_t dirtyBits)
 
virtual EQFABRIC_INL void deserialize (co::DataIStream &is, const uint64_t dirtyBits)
 
virtual EQFABRIC_INL void setDirty (const uint64_t bits)
 
void setDrawable (const uint32_t drawable)
 
void setIAttribute (const IAttribute attr, const int32_t value)
 
void setSAttribute (const SAttribute attr, const std::string &value)
 
virtual ChangeType getChangeType () const
 
virtual uint64_t getRedistributableBits () const
 
virtual void updateCapabilities ()
 
Render context access
void overrideContext (RenderContext &context)
 
void resetContext ()
 
const RenderContextgetContext () const
 
const RenderContextgetNativeContext () const
 
- Protected Member Functions inherited from eq::fabric::Object
EQFABRIC_API Object ()
 Construct a new Object. More...
 
EQFABRIC_API Object (const Object &)
 Construct an unmapped, unregistered copy of an object. More...
 
virtual EQFABRIC_API ~Object ()
 Destruct the object. More...
 
EQFABRIC_API Objectoperator= (const Object &from)
 NOP assignment operator. More...
 
virtual bool hasMasterUserData ()
 
virtual uint32_t getUserDataLatency () const
 
EQFABRIC_API void setTasks (const uint32_t tasks)
 
virtual EQFABRIC_API void notifyDetach ()
 
EQFABRIC_API void postRemove (Object *child)
 
virtual void removeChild (const uint128_t &)
 
template<class C , class S >
void commitChild (C *child, S *sender, uint32_t cmd, const uint32_t incarnation)
 
template<class C >
void commitChild (C *child, const uint32_t incarnation)
 
template<class C , class S >
void commitChildren (const std::vector< C * > &children, S *sender, uint32_t cmd, const uint32_t incarnation)
 
template<class C >
void commitChildren (const std::vector< C * > &children, uint32_t cmd, const uint32_t incarnation)
 
template<class C >
void commitChildren (const std::vector< C * > &children, const uint32_t incarnation)
 
template<class C >
void syncChildren (const std::vector< C * > &children)
 
template<class P , class C >
void releaseChildren (const std::vector< C * > &children)
 
EQFABRIC_API bool _cmdSync (co::ICommand &command)
 

Attributes

enum  IAttribute { IATTR_HINT_STATISTICS, IATTR_HINT_SENDTOKEN, IATTR_LAST, IATTR_ALL = IATTR_LAST + 5 }
 Integer attributes for a channel. More...
 
enum  SAttribute { SATTR_DUMP_IMAGE, SATTR_LAST, SATTR_ALL = SATTR_LAST + 5 }
 String attributes. More...
 
EQFABRIC_INL int32_t getIAttribute (const IAttribute attr) const
 
EQFABRIC_INL std::string getSAttribute (const SAttribute attr) const
 
static EQFABRIC_INL const
std::string & 
getIAttributeString (const IAttribute attr)
 
static EQFABRIC_INL const
std::string & 
getSAttributeString (const SAttribute attr)
 

Detailed Description

template<class W, class C>
class eq::fabric::Channel< W, C >

Base data transport class for channels.

See Also
eq::Channel

Definition at line 33 of file fabric/channel.h.

Member Enumeration Documentation

template<class W, class C>
enum eq::fabric::Channel::Drawable

The drawable format defines the components used as an alternate drawable for this channel.

If an alternate drawable is configured, the channel uses the appropriate targets in place of the window's frame buffer.

Version
1.0
Enumerator
FB_WINDOW 

Use the window's frame buffer.

FBO_COLOR 

Use an FBO for color values.

FBO_DEPTH 

Use an FBO for depth values.

FBO_STENCIL 

Use an FBO for stencil values.

Definition at line 45 of file fabric/channel.h.

template<class W, class C>
enum eq::fabric::Channel::IAttribute

Integer attributes for a channel.

Version
1.0
Enumerator
IATTR_HINT_STATISTICS 

Statistics gathering mode (OFF, FASTEST [ON], NICEST)

IATTR_HINT_SENDTOKEN 

Use a send token for output frames (OFF, ON)

Definition at line 307 of file fabric/channel.h.

template<class W, class C>
enum eq::fabric::Channel::SAttribute

String attributes.

Definition at line 318 of file fabric/channel.h.

Member Function Documentation

template<class W, class C>
EQFABRIC_INL VisitorResult eq::fabric::Channel< W, C >::accept ( Visitor visitor)

Perform a depth-first traversal of this channel.

Parameters
visitorthe visitor.
Returns
the result of the visitor traversal.
Version
1.0
template<class W, class C>
EQFABRIC_INL VisitorResult eq::fabric::Channel< W, C >::accept ( Visitor visitor) const

Const-version of accept().

Version
1.0
template<class W, class C>
EQFABRIC_INL uint64_t eq::fabric::Channel< W, C >::getCapabilities ( ) const
Returns
the supported capabilities.
Version
1.0
template<class W, class C>
uint32_t eq::fabric::Channel< W, C >::getDrawable ( ) const
inline
Returns
the channel's framebuffer attachment configuration.
Version
1.0

Definition at line 108 of file fabric/channel.h.

template<class W, class C>
uint32_t eq::fabric::Channel< W, C >::getDrawBuffer ( ) const
inline
Returns
the current draw buffer for glDrawBuffer.
Version
1.0

Definition at line 159 of file fabric/channel.h.

template<class W, class C>
const ColorMask& eq::fabric::Channel< W, C >::getDrawBufferMask ( ) const
inline
Returns
the current color mask for glColorMask.
Version
1.0

Definition at line 165 of file fabric/channel.h.

template<class W, class C>
Eye eq::fabric::Channel< W, C >::getEye ( ) const
inline
Returns
the currently rendered eye pass.
Version
1.0

Definition at line 294 of file fabric/channel.h.

template<class W, class C>
const Frustumf& eq::fabric::Channel< W, C >::getFrustum ( ) const
inline
Returns
the current frustum for glFrustum or glOrtho.
Version
1.0

Definition at line 188 of file fabric/channel.h.

template<class W, class C>
const Matrix4f& eq::fabric::Channel< W, C >::getHeadTransform ( ) const
inline

Return the view matrix.

The view matrix is part of the GL_MODEL*VIEW* matrix, and is typically applied first to the GL_MODELVIEW matrix.

Returns
the head transformation matrix
Version
1.0

Definition at line 212 of file fabric/channel.h.

template<class W, class C>
EQFABRIC_INL int32_t eq::fabric::Channel< W, C >::getIAttribute ( const IAttribute  attr) const
Returns
the value of an integer attribute.
Version
1.0
template<class W, class C>
static EQFABRIC_INL const std::string& eq::fabric::Channel< W, C >::getIAttributeString ( const IAttribute  attr)
static
Returns
the name of an integer attribute.
Version
1.7.2
template<class W, class C>
const PixelViewport& eq::fabric::Channel< W, C >::getNativePixelViewport ( ) const
inline
Returns
the native pixel viewport.
Version
1.0

Definition at line 85 of file fabric/channel.h.

template<class W, class C>
const Frustumf& eq::fabric::Channel< W, C >::getOrtho ( ) const
inline
Returns
the current orthographic frustum for glOrtho.
Version
1.0

Definition at line 201 of file fabric/channel.h.

Referenced by eq::fabric::Channel< Window, Channel >::getFrustum().

+ Here is the caller graph for this function:

template<class W, class C>
const Matrix4f& eq::fabric::Channel< W, C >::getOrthoTransform ( ) const
inline

Return the orthographic view matrix.

The view matrix is part of the GL_MODEL*VIEW* matrix, and is typically applied first to the GL_MODELVIEW matrix.

Returns
the head transformation matrix
Version
1.0

Definition at line 236 of file fabric/channel.h.

Referenced by eq::fabric::Channel< Window, Channel >::getHeadTransform().

+ Here is the caller graph for this function:

template<class W, class C>
const Vector4i& eq::fabric::Channel< W, C >::getOverdraw ( ) const
inline
Warning
Undocumented - may not be supported in the future

Definition at line 297 of file fabric/channel.h.

template<class W, class C>
uint32_t eq::fabric::Channel< W, C >::getPeriod ( ) const
inline
Returns
the DPlex period for the current rendering task.
Version
1.0

Definition at line 273 of file fabric/channel.h.

template<class W, class C>
const Frustumf& eq::fabric::Channel< W, C >::getPerspective ( ) const
inline
Returns
the current perspective frustum for glFrustum.
Version
1.0

Definition at line 195 of file fabric/channel.h.

Referenced by eq::fabric::Channel< Window, Channel >::getFrustum().

+ Here is the caller graph for this function:

template<class W, class C>
const Matrix4f& eq::fabric::Channel< W, C >::getPerspectiveTransform ( ) const
inline

Return the perspective view matrix.

The view matrix is part of the GL_MODEL*VIEW* matrix, and is typically applied first to the GL_MODELVIEW matrix.

Returns
the head transformation matrix
Version
1.0

Definition at line 224 of file fabric/channel.h.

Referenced by eq::fabric::Channel< Window, Channel >::getHeadTransform().

+ Here is the caller graph for this function:

template<class W, class C>
uint32_t eq::fabric::Channel< W, C >::getPhase ( ) const
inline
Returns
the DPlex phase for the current rendering task.
Version
1.0

Definition at line 279 of file fabric/channel.h.

template<class W, class C>
const Pixel& eq::fabric::Channel< W, C >::getPixel ( ) const
inline
Returns
the pixel decomposition for the current rendering task.
Version
1.0

Definition at line 255 of file fabric/channel.h.

template<class W, class C>
const Vector2i& eq::fabric::Channel< W, C >::getPixelOffset ( ) const
inline

Get the channel's current position wrt the destination channel.

Note that computing this value from the current viewport and pixel viewport is inaccurate because it neglects rounding errors of the pixel viewport done by the server.

Returns
the channel's current position wrt the destination channel.
Version
1.0

Definition at line 291 of file fabric/channel.h.

template<class W, class C>
const PixelViewport& eq::fabric::Channel< W, C >::getPixelViewport ( ) const
inline
Returns
the current pixel viewport for glViewport and glScissor.
Version
1.0

Definition at line 172 of file fabric/channel.h.

template<class W, class C>
const Range& eq::fabric::Channel< W, C >::getRange ( ) const
inline
Returns
the database range for the current rendering task.
Version
1.0

Definition at line 249 of file fabric/channel.h.

template<class W, class C>
uint32_t eq::fabric::Channel< W, C >::getReadBuffer ( ) const
inline
Returns
the current read buffer for glReadBuffer.
Version
1.0

Definition at line 162 of file fabric/channel.h.

template<class W, class C>
EQFABRIC_INL std::string eq::fabric::Channel< W, C >::getSAttribute ( const SAttribute  attr) const
Returns
the value of a string attribute.
Version
1.7.2
template<class W, class C>
static EQFABRIC_INL const std::string& eq::fabric::Channel< W, C >::getSAttributeString ( const SAttribute  attr)
static
Returns
the name of an string attribute.
Version
1.7.2
template<class W, class C>
const SubPixel& eq::fabric::Channel< W, C >::getSubPixel ( ) const
inline
Returns
the subpixel decomposition for the current rendering task.
Version
1.0

Definition at line 261 of file fabric/channel.h.

template<class W, class C>
uint32_t eq::fabric::Channel< W, C >::getTaskID ( ) const
inline
Warning
Undocumented - may not be supported in the future

Definition at line 300 of file fabric/channel.h.

template<class W, class C>
const Viewport& eq::fabric::Channel< W, C >::getViewport ( ) const
inline
Returns
the fractional viewport wrt the destination view.
Version
1.0

Definition at line 243 of file fabric/channel.h.

template<class W, class C>
W* eq::fabric::Channel< W, C >::getWindow ( )
inline
Returns
the parent window.
Version
1.0

Definition at line 59 of file fabric/channel.h.

template<class W, class C>
const W* eq::fabric::Channel< W, C >::getWindow ( ) const
inline
Returns
the parent window.
Version
1.0

Definition at line 62 of file fabric/channel.h.

template<class W, class C>
const Zoom& eq::fabric::Channel< W, C >::getZoom ( ) const
inline
Returns
the up/downscale zoom factor for the current rendering task.
Version
1.0

Definition at line 267 of file fabric/channel.h.

template<class W, class C>
bool eq::fabric::Channel< W, C >::hasFixedViewport ( ) const
inline
Returns
true if a viewport was specified last.
Version
1.0

Definition at line 89 of file fabric/channel.h.

template<class W, class C>
EQFABRIC_INL void eq::fabric::Channel< W, C >::setCapabilities ( const uint64_t  bitmask)

Set the capabilities supported by the channel.

Channel which do not support all capabilities required by the current destination view do not execute any tasks. The capabilities are an application-defined bit mask. By default all bits are set.

Version
1.0
template<class W, class C>
EQFABRIC_INL void eq::fabric::Channel< W, C >::setMaxSize ( const Vector2i size)
Warning
Undocumented - may not be supported in the future
template<class W, class C>
EQFABRIC_INL void eq::fabric::Channel< W, C >::setNearFar ( const float  nearPlane,
const float  farPlane 
)

Set the near and far planes for this channel.

The given near and far planes update the current perspective and orthographics frustum accordingly. Furthermore, they will be used in the future by the server to compute the frusta.

Parameters
nearPlanethe near plane.
farPlanethe far plane.
Version
1.0
template<class W, class C>
virtual bool eq::fabric::Channel< W, C >::useOrtho ( ) const
inlinevirtual

Select perspective or orthographic rendering.

Influences the behaviour of getFrustum, getHeadTransform and the corresponding apply methods in eq::Channel. Intended to be overwritten by the implementation to select orthographic rendering.

Version
1.0

Definition at line 182 of file fabric/channel.h.

Referenced by eq::fabric::Channel< Window, Channel >::getFrustum(), and eq::fabric::Channel< Window, Channel >::getHeadTransform().

+ Here is the caller graph for this function:


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