Equalizer  1.13.0
Parallel Rendering Framework
eq::Channel Class Reference

A channel represents a two-dimensional viewport within a Window. More...

#include <channel.h>

+ Inheritance diagram for eq::Channel:
+ Collaboration diagram for eq::Channel:

Public Member Functions

EQ_API Channel (Window *parent)
 Construct a new channel. More...
 
virtual EQ_API ~Channel ()
 Destruct the channel. More...
 
virtual EQ_API void drawStatistics ()
 Draw a statistics overlay. More...
 
virtual EQ_API void outlineViewport ()
 Outline the current pixel viewport. More...
 
void changeLatency (const uint32_t latency)
 
EQ_API void addResultImageListener (ResultImageListener *listener)
 Add a listener that gets notified everytime a new frame was rendered for a destination channel. More...
 
EQ_API void removeResultImageListener (ResultImageListener *listener)
 Remove a result image listener to stop receival of notifications on new images. More...
 
virtual EQ_API std::string getDumpImageFileName () const
 
Data Access
EQ_API co::CommandQueue * getPipeThreadQueue ()
 
EQ_API co::CommandQueue * getCommandThreadQueue ()
 
EQ_API uint32_t getCurrentFrame () const
 
bool waitFrameFinished (uint32_t frame, uint32_t timeout) const
 
EQ_API bool isStopped () const
 
EQ_API PipegetPipe ()
 
EQ_API const PipegetPipe () const
 
EQ_API NodegetNode ()
 
EQ_API const NodegetNode () const
 
EQ_API ConfiggetConfig ()
 
EQ_API const ConfiggetConfig () const
 
EQ_API ServerPtr getServer ()
 
EQ_API const GLEWContext * glewGetContext () const
 Get the GLEW context for this channel. More...
 
EQ_API util::ObjectManagergetObjectManager ()
 
EQ_API const DrawableConfig & getDrawableConfig () const
 
EQ_API ViewgetNativeView ()
 Get the channel's native view. More...
 
EQ_API const ViewgetNativeView () const
 const-version of getNativeView() More...
 
EQ_API const Vector3ub & getUniqueColor () const
 
EQ_API void addStatistic (Event &event)
 
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 or a placeholder value for the task decomposition parameters.

virtual EQ_API Vector2f getJitter () const
 
EQ_API ViewgetView ()
 Get the channel's current View. More...
 
EQ_API const ViewgetView () const
 Const version of getView(). More...
 
EQ_API Frustumf getScreenFrustum () const
 Returns an orthographic frustum for 2D operations on the view. More...
 
Operations

Operations are only meaningful from within certain callbacks.

They are just convenience wrappers applying context-specific data to the OpenGL state using the context-specific data access above.

virtual EQ_API void applyBuffer ()
 Apply the current rendering buffer, including the color mask. More...
 
virtual EQ_API void applyColorMask () const
 Apply the current color mask. More...
 
virtual EQ_API void applyViewport () const
 Apply the OpenGL viewport for the current rendering task. More...
 
virtual EQ_API void applyFrustum () const
 Apply the frustum matrix for the current rendering task. More...
 
virtual EQ_API void applyPerspective () const
 Apply the perspective frustum matrix for the current rendering task. More...
 
virtual EQ_API void applyOrtho () const
 Apply the orthographic frustum matrix for the current rendering task. More...
 
EQ_API void applyScreenFrustum () const
 Apply an orthographic frustum for pixel-based 2D operations. More...
 
virtual EQ_API void applyHeadTransform () const
 Apply the transformation to position the view frustum. More...
 
virtual EQ_API void applyPerspectiveTransform () const
 Apply the transformation to position the perspective view frustum. More...
 
virtual EQ_API void applyOrthoTransform () const
 Apply the transformation to position the orthographic view frustum. More...
 
EQ_API void applyOverlayState ()
 Apply the state for pixel-based 2D overlay rendering operations. More...
 
EQ_API void resetOverlayState ()
 Reset the overlay state setup by applyOverlayState() More...
 
EQ_API void bindFrameBuffer ()
 Rebind the window frame buffer. More...
 
EQ_API void bindDrawFrameBuffer ()
 Rebind the window draw buffer. More...
 
Region of Interest.
virtual EQ_API void resetRegions ()
 Reset the declared regions of interest. More...
 
virtual EQ_API void declareRegion (const eq::PixelViewport &region)
 Declare a region covered by the current draw or assemble operation. More...
 
EQ_API void declareRegion (const eq::Viewport &vp)
 Convenience method to declare a region in relative coordinates. More...
 
EQ_API PixelViewport getRegion () const
 
EQ_API const PixelViewportsgetRegions () const
 Get the current regions of interest. More...
 
Events
EQ_API EventOCommand sendError (const uint32_t error)
 Send a channel error event to the application node. More...
 
virtual EQ_API bool processEvent (const Event &event)
 Process a received event. More...
 
- Public Member Functions inherited from eq::fabric::Channel< Window, Channel >
virtual bool omitOutput () const
 
virtual void output (std::ostream &) const
 
void init ()
 
WindowgetWindow ()
 
const WindowgetWindow () 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)
 
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...
 
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 Vector2i & getMaxSize () const
 
EQFABRIC_INL ChannelPath getPath () const
 
virtual EQFABRIC_INL void backup ()
 
virtual EQFABRIC_INL void restore ()
 
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 Frustumf & getFrustum () const
 
const Frustumf & getPerspective () const
 
const Frustumf & getOrtho () const
 
const Matrix4f & getHeadTransform () const
 Return the view matrix. More...
 
const Matrix4f & getPerspectiveTransform () const
 Return the perspective view matrix. More...
 
const Matrix4f & getOrthoTransform () 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 Vector2i & getPixelOffset () const
 Get the channel's current position wrt the destination channel. More...
 
Eye getEye () const
 
const Vector4i & getOverdraw () const
 
uint32_t getTaskID () const
 
const RenderContextgetContext () const
 
EQFABRIC_INL int32_t getIAttribute (const IAttribute attr) const
 
EQFABRIC_INL const std::string & getSAttribute (const SAttribute attr) 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 Member Functions

EQ_API void attach (const uint128_t &id, const uint32_t instanceID)
 
virtual void frameTilesStart (const uint128_t &)
 Start a batch of tile rendering operations. More...
 
virtual void frameTilesFinish (const uint128_t &)
 Finish a batch of tile rendering operations. More...
 
virtual EQ_API void notifyViewportChanged ()
 Notification that parameters influencing the vp/pvp have changed. More...
 
virtual EQ_API void notifyStopFrame (const uint32_t lastFrameNumber)
 Notify interruption of the rendering. More...
 
Actions
EQ_API void startFrame (const uint32_t frameNumber)
 Start a frame by unlocking all child resources. More...
 
EQ_API void releaseFrame (const uint32_t frameNumber)
 Signal the completion of a frame to the parent. More...
 
EQ_API void releaseFrameLocal (const uint32_t frameNumber)
 Release the local synchronization of the parent for a frame. More...
 
virtual EQ_API void setupAssemblyState ()
 Setup the OpenGL state for a readback or assemble operation. More...
 
virtual EQ_API void resetAssemblyState ()
 Reset the OpenGL state after an assembly operation. More...
 
Task Methods

The task methods (callbacks) are called by Equalizer during rendering to execute various rendering tasks.

Each task method has a useful default implementation, but at least frameDraw() is implemented by an application.

virtual EQ_API bool configInit (const uint128_t &initID)
 Initialize this channel. More...
 
virtual EQ_API bool configExit ()
 Exit this channel. More...
 
virtual EQ_API void frameStart (const uint128_t &frameID, const uint32_t frameNumber)
 Start rendering a frame. More...
 
virtual EQ_API void frameFinish (const uint128_t &frameID, const uint32_t frameNumber)
 Finish rendering a frame. More...
 
virtual EQ_API void frameDrawFinish (const uint128_t &frameID, const uint32_t frameNumber)
 Finish drawing. More...
 
virtual EQ_API void frameClear (const uint128_t &frameID)
 Clear the frame buffer. More...
 
virtual EQ_API void frameDraw (const uint128_t &frameID)
 Draw the scene. More...
 
virtual EQ_API void frameAssemble (const uint128_t &frameID, const Frames &frames)
 Assemble all input frames. More...
 
virtual EQ_API void frameReadback (const uint128_t &frameID, const Frames &frames)
 Read back the rendered frame buffer into the output frames. More...
 
virtual EQ_API void frameViewStart (const uint128_t &frameID)
 Start updating a destination channel. More...
 
virtual EQ_API void frameViewFinish (const uint128_t &frameID)
 Finish updating a destination channel. More...
 
virtual EQ_API void frameDrawOverlay (const uint128_t &frameID)
 Draw 2D overlay content on a destination channel. More...
 
- Protected Member Functions inherited from eq::fabric::Channel< Window, Channel >
EQFABRIC_INL Channel (Window *parent)
 Construct a new channel.
 
 Channel (const Channel &from)
 Construct a copy of a channel (view/segment dest).
 
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 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 ()
 
void overrideContext (const RenderContext &context)
 
void resetContext ()
 
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)
 

Friends

class fabric::Window< Pipe, Window, Channel, WindowSettings >
 

Additional Inherited Members

- Public Types inherited from eq::fabric::Channel< Window, Channel >
typedef LeafVisitor< ChannelVisitor
 The channel visitor type.
 
typedef Window Parent
 The parent window type.
 
enum  IAttribute
 Integer attributes for a channel. More...
 
enum  SAttribute
 String attributes. More...
 
- 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...
 
- Static Public Member Functions inherited from eq::fabric::Channel< Window, Channel >
static EQFABRIC_INL const std::string & getIAttributeString (const IAttribute attr)
 
static EQFABRIC_INL const std::string & getSAttributeString (const SAttribute attr)
 
- Protected Types inherited from eq::fabric::Channel< Window, Channel >
enum  DirtyBits
 

Detailed Description

A channel represents a two-dimensional viewport within a Window.

The channel is the basic rendering entity. It represents a 2D rendering area within a Window. It executes all rendering-relevant tasks, such as clear, draw, assemble and readback. Each rendering task is using its own RenderContext, which is computed by the server based on the rendering description of the current configuration.

See also
fabric::Channel

Definition at line 43 of file channel.h.

Constructor & Destructor Documentation

EQ_API eq::Channel::Channel ( Window parent)
explicit

Construct a new channel.

Version
1.0
virtual EQ_API eq::Channel::~Channel ( )
virtual

Destruct the channel.

Version
1.0

Reimplemented from eq::fabric::Channel< Window, Channel >.

Member Function Documentation

EQ_API void eq::Channel::addResultImageListener ( ResultImageListener listener)

Add a listener that gets notified everytime a new frame was rendered for a destination channel.

The channel does not take ownership of the listener. The notification always happens in the render thread.

Parameters
listenerthe new listener to add
Version
1.9
virtual EQ_API void eq::Channel::applyBuffer ( )
virtual

Apply the current rendering buffer, including the color mask.

See also
getReadBuffer() , getDrawBuffer(), getDrawBufferMask()
Version
1.0
virtual EQ_API void eq::Channel::applyColorMask ( ) const
virtual

Apply the current color mask.

See also
applyBuffer(), getDrawBufferMask()
Version
1.0
virtual EQ_API void eq::Channel::applyFrustum ( ) const
virtual

Apply the frustum matrix for the current rendering task.

If a sub-pixel decomposition is defined, the frustum is jittered by the amount given by getJitter() to implement software anti-aliasing. Applications which want to implement a different multi-sampling algorithm, e.g., depth-of-field, have to re-implement getJitter() or applyFrustum() accordingly.

See also
useOrtho(), getJitter(), getSubPixel()
Version
1.0
virtual EQ_API void eq::Channel::applyHeadTransform ( ) const
virtual

Apply the transformation to position the view frustum.

Version
1.0
See also
useOrtho()
virtual EQ_API void eq::Channel::applyOrtho ( ) const
virtual

Apply the orthographic frustum matrix for the current rendering task.

Version
1.0
virtual EQ_API void eq::Channel::applyOrthoTransform ( ) const
virtual

Apply the transformation to position the orthographic view frustum.

Version
1.0
EQ_API void eq::Channel::applyOverlayState ( )

Apply the state for pixel-based 2D overlay rendering operations.

Version
1.11
virtual EQ_API void eq::Channel::applyPerspective ( ) const
virtual

Apply the perspective frustum matrix for the current rendering task.

Version
1.0
virtual EQ_API void eq::Channel::applyPerspectiveTransform ( ) const
virtual

Apply the transformation to position the perspective view frustum.

Version
1.0
EQ_API void eq::Channel::applyScreenFrustum ( ) const

Apply an orthographic frustum for pixel-based 2D operations.

One unit of the frustum covers one pixel on screen. The frustum is positioned relative to the view.

Version
1.0
virtual EQ_API void eq::Channel::applyViewport ( ) const
virtual

Apply the OpenGL viewport for the current rendering task.

See also
getViewport()
Version
1.0
EQ_API void eq::Channel::bindDrawFrameBuffer ( )

Rebind the window draw buffer.

Version
1.9
EQ_API void eq::Channel::bindFrameBuffer ( )

Rebind the window frame buffer.

Version
1.0
virtual EQ_API bool eq::Channel::configExit ( )
protectedvirtual

Exit this channel.

Version
1.0
virtual EQ_API bool eq::Channel::configInit ( const uint128_t &  initID)
protectedvirtual

Initialize this channel.

Parameters
initIDthe init identifier.
Version
1.0
virtual EQ_API void eq::Channel::declareRegion ( const eq::PixelViewport &  region)
virtual

Declare a region covered by the current draw or assemble operation.

The region is relative to the current pixel viewport. It is clipped against the current pixel viewport of the channel. Called with the full pixel viewport after frameDraw if no region has been declared.

Declaring a single, empty region causes this channel to not read back any pixel data, i.e., if it did not draw anything.

The implementation might merge or split the declared regions.

Version
1.3
EQ_API void eq::Channel::declareRegion ( const eq::Viewport &  vp)

Convenience method to declare a region in relative coordinates.

The given viewport is relative to the current pixel viewport.

Version
1.3
virtual EQ_API void eq::Channel::drawStatistics ( )
virtual

Draw a statistics overlay.

Version
1.0
virtual EQ_API void eq::Channel::frameAssemble ( const uint128_t &  frameID,
const Frames frames 
)
protectedvirtual

Assemble all input frames.

Called 0 to n times during one frame.

Parameters
frameIDthe per-frame identifier.
framesthe input frames.
Version
1.7.3
virtual EQ_API void eq::Channel::frameClear ( const uint128_t &  frameID)
protectedvirtual

Clear the frame buffer.

Called 0 to n times during one frame.

Parameters
frameIDthe per-frame identifier.
Version
1.0
virtual EQ_API void eq::Channel::frameDraw ( const uint128_t &  frameID)
protectedvirtual

Draw the scene.

Called 0 to n times during one frame.

Parameters
frameIDthe per-frame identifier.
Version
1.0
virtual EQ_API void eq::Channel::frameDrawFinish ( const uint128_t &  frameID,
const uint32_t  frameNumber 
)
protectedvirtual

Finish drawing.

Called once per frame after the last draw operation. Typically releases the local node thread synchronization for this frame.

Parameters
frameIDthe per-frame identifier.
frameNumberthe frame to finished with draw.
Version
1.0
virtual EQ_API void eq::Channel::frameDrawOverlay ( const uint128_t &  frameID)
protectedvirtual

Draw 2D overlay content on a destination channel.

This is called by frameViewFinish().

Parameters
frameIDthe per-frame identifier.
Version
1.11
virtual EQ_API void eq::Channel::frameFinish ( const uint128_t &  frameID,
const uint32_t  frameNumber 
)
protectedvirtual

Finish rendering a frame.

Called once at the end of each frame, to do per-frame updates of channel-specific data. This method has to call releaseFrame().

Parameters
frameIDthe per-frame identifier.
frameNumberthe frame to finish.
Version
1.0
virtual EQ_API void eq::Channel::frameReadback ( const uint128_t &  frameID,
const Frames frames 
)
protectedvirtual

Read back the rendered frame buffer into the output frames.

Called 0 to n times during one frame.

Parameters
frameIDthe per-frame identifier.
framesthe output frames.
Version
1.7.3
1.0
virtual EQ_API void eq::Channel::frameStart ( const uint128_t &  frameID,
const uint32_t  frameNumber 
)
protectedvirtual

Start rendering a frame.

Called once at the beginning of each frame, to do per-frame updates of channel-specific data. This method has to call startFrame().

Parameters
frameIDthe per-frame identifier.
frameNumberthe frame to start.
See also
Config::startFrame()
Version
1.0
virtual void eq::Channel::frameTilesFinish ( const uint128_t &  )
inlineprotectedvirtual

Finish a batch of tile rendering operations.

Version
1.1.6

Definition at line 598 of file channel.h.

virtual void eq::Channel::frameTilesStart ( const uint128_t &  )
inlineprotectedvirtual

Start a batch of tile rendering operations.

Version
1.1.6

Definition at line 595 of file channel.h.

virtual EQ_API void eq::Channel::frameViewFinish ( const uint128_t &  frameID)
protectedvirtual

Finish updating a destination channel.

Called once for each destination channel's eye pass, before frameFinish() to update a part of a display. Destination channels are the final display channels, e.g., channels which are defined by a view/segment intersection.

This is typically used to do operations on the output channel after it has been fully updated, e.g., to draw a 2D overlay or to perform post-processing on the rendered image.

Parameters
frameIDthe per-frame identifier.
Version
1.0
virtual EQ_API void eq::Channel::frameViewStart ( const uint128_t &  frameID)
protectedvirtual

Start updating a destination channel.

Called once for each destination channel's eye pass, after frameStart() to update a part of a display. Destination channels are the final display channels, e.g., channels which are defined by a view/segment intersection.

Parameters
frameIDthe per-frame identifier.
Version
1.0
EQ_API Config* eq::Channel::getConfig ( )
Returns
the parent config.
Version
1.0
EQ_API const Config* eq::Channel::getConfig ( ) const
Returns
the parent config.
Version
1.0
EQ_API const DrawableConfig& eq::Channel::getDrawableConfig ( ) const
Returns
the channel's drawable config.
Version
1.0
virtual EQ_API std::string eq::Channel::getDumpImageFileName ( ) const
virtual
Returns
filename for image if SATTR_DUMP_IMAGE, default "getCurrentFrame().rgb"
Version
1.9
virtual EQ_API Vector2f eq::Channel::getJitter ( ) const
virtual
Returns
the jitter vector for the current subpixel decomposition.
Version
1.0
EQ_API View* eq::Channel::getNativeView ( )

Get the channel's native view.

This function always returns the channel's native view, no matter in which context it is called. Only destination channels have a native view.

Returns
the channel's native view, or 0 if it does not have one.
See also
getView()
Version
1.0
EQ_API const View* eq::Channel::getNativeView ( ) const

const-version of getNativeView()

Version
1.0
EQ_API Node* eq::Channel::getNode ( )
Returns
the parent node.
Version
1.0
EQ_API const Node* eq::Channel::getNode ( ) const
Returns
the parent node.
Version
1.0
EQ_API util::ObjectManager& eq::Channel::getObjectManager ( )
Returns
the window's object manager instance.
Version
1.0
EQ_API Pipe* eq::Channel::getPipe ( )
Returns
the parent pipe.
Version
1.0
EQ_API const Pipe* eq::Channel::getPipe ( ) const
Returns
the parent pipe.
Version
1.0
EQ_API PixelViewport eq::Channel::getRegion ( ) const
Returns
a region covering all declared regions.
Version
1.3
EQ_API const PixelViewports& eq::Channel::getRegions ( ) const

Get the current regions of interest.

The returned regions are guaranteed not to overlap with each other. Therefore they may differ in number and size from the declared regions. The actual algorithm to create the non-overlapping regions is unspecified and may change in the future.

Returns
current regions of interest.
Version
1.3
EQ_API Frustumf eq::Channel::getScreenFrustum ( ) const

Returns an orthographic frustum for 2D operations on the view.

One unit of the frustum covers one pixel on screen. The frustum is positioned relative to the view.

Returns
the 2D orthographic frustum.
Version
1.0
EQ_API ServerPtr eq::Channel::getServer ( )
Returns
the parent server.
Version
1.0
EQ_API const Vector3ub& eq::Channel::getUniqueColor ( ) const
Returns
a fixed unique color for this channel.
Version
1.0
EQ_API View* eq::Channel::getView ( )

Get the channel's current View.

During a frame task method, i.e., in one of the frameFoo functions, the view is set to the view of the destination channel, that is, the channel for which this channel is executing the rendering task. Outside of a frame task method the native view of the channel, or 0, is returned.

Returns
the channel's view, or 0 if it does not have a view.
See also
getNativeView()
Version
1.0
EQ_API const View* eq::Channel::getView ( ) const

Const version of getView().

Version
1.0
EQ_API const GLEWContext* eq::Channel::glewGetContext ( ) const

Get the GLEW context for this channel.

The GLEW context is initialized during window initialization, and provides access to OpenGL extensions. This function does not follow the Equalizer naming conventions, since GLEW uses a function of this name to automatically resolve OpenGL function entry points. Therefore, any supported GL function can be called directly from an initialized Channel.

Returns
the extended OpenGL function table for the channel's OpenGL context.
Version
1.0
EQ_API bool eq::Channel::isStopped ( ) const
Returns
true if this channel is stopped, false otherwise.
Version
1.0
virtual EQ_API void eq::Channel::notifyStopFrame ( const uint32_t  lastFrameNumber)
protectedvirtual

Notify interruption of the rendering.

This method is called from the Client command thread, as opposed to the rendering thread. Its purpose is to cause the rendering thread to stop its operations as soon as possible. Normal rendering shall recommence after the given frame.

Parameters
lastFrameNumberstop rendering until this frame has been processed.
Version
1.0
virtual EQ_API void eq::Channel::notifyViewportChanged ( )
protectedvirtual

Notification that parameters influencing the vp/pvp have changed.

Reimplemented from eq::fabric::Channel< Window, Channel >.

virtual EQ_API void eq::Channel::outlineViewport ( )
virtual

Outline the current pixel viewport.

Version
1.0
virtual EQ_API bool eq::Channel::processEvent ( const Event &  event)
virtual

Process a received event.

The task of this method is to update the channel as necessary, and transform the event into a config event to be send to the application using Config::sendEvent().

Parameters
eventthe received event.
Returns
true when the event was handled, false if not.
Version
1.0
EQ_API void eq::Channel::releaseFrame ( const uint32_t  frameNumber)
protected

Signal the completion of a frame to the parent.

Parameters
frameNumberthe frame to end.
Version
1.0
EQ_API void eq::Channel::releaseFrameLocal ( const uint32_t  frameNumber)
protected

Release the local synchronization of the parent for a frame.

Parameters
frameNumberthe frame to release.
Version
1.0
EQ_API void eq::Channel::removeResultImageListener ( ResultImageListener listener)

Remove a result image listener to stop receival of notifications on new images.

Parameters
listenerthe new listener to remove
Version
1.9
virtual EQ_API void eq::Channel::resetAssemblyState ( )
protectedvirtual

Reset the OpenGL state after an assembly operation.

Version
1.0
EQ_API void eq::Channel::resetOverlayState ( )

Reset the overlay state setup by applyOverlayState()

Version
1.11
virtual EQ_API void eq::Channel::resetRegions ( )
virtual

Reset the declared regions of interest.

Called from frameStart and frameClear to reset the area to be used to optimize compositing and load balancing for each frame.

Version
1.3
EQ_API EventOCommand eq::Channel::sendError ( const uint32_t  error)

Send a channel error event to the application node.

Parameters
errorthe error code.
Version
1.7.1
virtual EQ_API void eq::Channel::setupAssemblyState ( )
protectedvirtual

Setup the OpenGL state for a readback or assemble operation.

The default implementation is very conservative and saves any state which is potentially changed by the assembly routines. Applications may overwrite this and resetAssemblyState() to optimize performance in accordance with their rendering code.

Version
1.0
EQ_API void eq::Channel::startFrame ( const uint32_t  frameNumber)
protected

Start a frame by unlocking all child resources.

Parameters
frameNumberthe frame to start.
Version
1.0

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