Equalizer  1.8.0
Parallel Rendering Framework
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Pages
eqPly::Channel Class Reference

The rendering entity, updating a part of a Window. More...

#include <channel.h>

+ Inheritance diagram for eqPly::Channel:
+ Collaboration diagram for eqPly::Channel:

Public Member Functions

 Channel (eq::Window *parent)
 
bool stopRendering () const
 
- Public Member Functions inherited from eq::Channel
EQ_API Channel (Window *parent)
 Construct a new 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 co::CommandQueue * getPipeThreadQueue ()
 
EQ_API co::CommandQueue * getCommandThreadQueue ()
 
EQ_API uint32_t getCurrentFrame () const
 
void waitFrameFinished (const uint32_t frame) 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 util::FrameBufferObjectgetFrameBufferObject ()
 
EQ_API const Vector3ub & getUniqueColor () const
 
EQ_API void addStatistic (Event &event)
 
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...
 
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...
 
virtual EQ_API void applyFrameBufferObject ()
 Apply the current alternate frame buffer. More...
 
EQ_API void bindFrameBuffer ()
 Rebind the current alternate FBO of the channel or window. More...
 
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...
 
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...
 
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 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
 
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
 
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

virtual ~Channel ()
 Destruct the channel. More...
 
bool configInit (const eq::uint128_t &initID) override
 Initialize this channel. More...
 
bool configExit () override
 Exit this channel. More...
 
void frameClear (const eq::uint128_t &frameID) override
 Clear the frame buffer. More...
 
void frameDraw (const eq::uint128_t &frameID) override
 Draw the scene. More...
 
void frameAssemble (const eq::uint128_t &, const eq::Frames &) override
 Assemble all input frames. More...
 
void frameReadback (const eq::uint128_t &, const eq::Frames &) override
 Read back the rendered frame buffer into the output frames. More...
 
void frameStart (const eq::uint128_t &, const uint32_t) override
 Start rendering a frame. More...
 
void frameFinish (const eq::uint128_t &, const uint32_t) override
 Finish rendering a frame. More...
 
void frameViewStart (const eq::uint128_t &frameID) override
 Start updating a destination channel. More...
 
void frameViewFinish (const eq::uint128_t &frameID) override
 Finish updating a destination channel. More...
 
bool useOrtho () const override
 Select perspective or orthographic rendering. More...
 
eq::Vector2f getJitter () const override
 
void notifyStopFrame (const uint32_t lastFrameNumber) override
 Notify interruption of the rendering. More...
 
- Protected Member Functions inherited from eq::Channel
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...
 
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...
 
virtual EQ_API void frameDrawFinish (const uint128_t &frameID, const uint32_t frameNumber)
 Finish drawing. 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 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 ()
 
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)
 

Additional Inherited Members

- Public Types inherited from eq::fabric::Channel< Window, Channel >
enum  Drawable
 The drawable format defines the components used as an alternate drawable for this channel. More...
 
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

The rendering entity, updating a part of a Window.

Definition at line 46 of file share/Equalizer/examples/eqPly/channel.h.

Constructor & Destructor Documentation

virtual eqPly::Channel::~Channel ( )
inlineprotectedvirtual

Destruct the channel.

Version
1.0

Reimplemented from eq::Channel.

Definition at line 54 of file share/Equalizer/examples/eqPly/channel.h.

Member Function Documentation

bool eqPly::Channel::configExit ( )
overrideprotectedvirtual

Exit this channel.

Version
1.0

Reimplemented from eq::Channel.

Definition at line 79 of file eqPly/channel.cpp.

References eq::Channel::configExit().

+ Here is the call graph for this function:

bool eqPly::Channel::configInit ( const eq::uint128_t &  initID)
overrideprotectedvirtual

Initialize this channel.

Parameters
initIDthe init identifier.
Version
1.0

Reimplemented from eq::Channel.

Definition at line 68 of file eqPly/channel.cpp.

References eq::Channel::configInit(), and eq::fabric::Channel< Window, Channel >::setNearFar().

+ Here is the call graph for this function:

void eqPly::Channel::frameAssemble ( const eq::uint128_t &  frameID,
const eq::Frames frames 
)
overrideprotectedvirtual

Assemble all input frames.

Called 0 to n times during one frame.

Parameters
frameIDthe per-frame identifier.
framesthe input frames.
Version
1.7.3

Reimplemented from eq::Channel.

Definition at line 192 of file eqPly/channel.cpp.

References eq::Channel::applyBuffer(), eq::Channel::applyViewport(), eq::Compositor::assembleFrames(), eq::Channel::frameAssemble(), eq::fabric::Channel< Window, Channel >::getEye(), eq::Frame::getPeriod(), eq::fabric::Channel< Window, Channel >::getPixelViewport(), eq::Frame::getSubPixel(), eq::Channel::resetAssemblyState(), and eq::Channel::setupAssemblyState().

+ Here is the call graph for this function:

void eqPly::Channel::frameClear ( const eq::uint128_t &  frameID)
overrideprotectedvirtual

Clear the frame buffer.

Called 0 to n times during one frame.

Parameters
frameIDthe per-frame identifier.
Version
1.0

Reimplemented from eq::Channel.

Definition at line 90 of file eqPly/channel.cpp.

References eq::Channel::applyBuffer(), eq::Channel::applyViewport(), eq::fabric::Channel< Window, Channel >::getEye(), eq::Channel::getUniqueColor(), eq::Channel::getView(), and eq::Channel::resetRegions().

+ Here is the call graph for this function:

void eqPly::Channel::frameDraw ( const eq::uint128_t &  frameID)
overrideprotectedvirtual

Draw the scene.

Called 0 to n times during one frame.

Parameters
frameIDthe per-frame identifier.
Version
1.0

Reimplemented from eq::Channel.

Definition at line 122 of file eqPly/channel.cpp.

References eq::Channel::frameDraw(), eq::fabric::Channel< Window, Channel >::getEye(), eq::fabric::Channel< Window, Channel >::getPeriod(), eq::fabric::Channel< Window, Channel >::getSubPixel(), eq::Channel::getUniqueColor(), and eq::fabric::Channel< Window, Channel >::getWindow().

+ Here is the call graph for this function:

void eqPly::Channel::frameFinish ( const eq::uint128_t &  frameID,
const uint32_t  frameNumber 
)
overrideprotectedvirtual

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

Reimplemented from eq::Channel.

Definition at line 297 of file eqPly/channel.cpp.

References eq::Channel::frameFinish().

+ Here is the call graph for this function:

void eqPly::Channel::frameReadback ( const eq::uint128_t &  frameID,
const eq::Frames frames 
)
overrideprotectedvirtual

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

Reimplemented from eq::Channel.

Definition at line 248 of file eqPly/channel.cpp.

References eq::fabric::Frame::BUFFER_COLOR, eq::Channel::frameReadback(), eq::Frame::setAlphaUsage(), eq::Frame::setQuality(), and eq::Frame::useCompressor().

+ Here is the call graph for this function:

void eqPly::Channel::frameStart ( const eq::uint128_t &  frameID,
const uint32_t  frameNumber 
)
overrideprotectedvirtual

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

Reimplemented from eq::Channel.

Definition at line 275 of file eqPly/channel.cpp.

References eq::Channel::frameStart().

+ Here is the call graph for this function:

void eqPly::Channel::frameViewFinish ( const eq::uint128_t &  frameID)
overrideprotectedvirtual

Finish updating a destination channel.

Called once on each destination channel, e.g., channels which are defined by a view/segment intersection, before frameFinish to update a part of a view.

This is typically used to do operations on the output channel after it has been fully updated, e.g., to draw a 2D overlay.

Parameters
frameIDthe per-frame identifier.
Version
1.0

Reimplemented from eq::Channel.

Definition at line 318 of file eqPly/channel.cpp.

References eq::Channel::applyBuffer(), eq::Channel::applyViewport(), eq::Channel::drawStatistics(), eq::Channel::frameViewFinish(), eq::Channel::getConfig(), eq::fabric::Channel< Window, Channel >::getEye(), eq::fabric::Channel< Window, Channel >::getPixelViewport(), eq::Channel::getView(), eq::Channel::resetAssemblyState(), eq::Config::sendEvent(), and eq::Channel::setupAssemblyState().

+ Here is the call graph for this function:

void eqPly::Channel::frameViewStart ( const eq::uint128_t &  frameID)
overrideprotectedvirtual

Start updating a destination channel.

Called once on each destination channel, e.g., channels which are defined by a view/segment intersection, after frameStart to update a part of a display.

Parameters
frameIDthe per-frame identifier.
Version
1.0

Reimplemented from eq::Channel.

Definition at line 287 of file eqPly/channel.cpp.

References eq::Channel::frameViewStart(), and eq::fabric::Channel< Window, Channel >::getPixelViewport().

+ Here is the call graph for this function:

eq::Vector2f eqPly::Channel::getJitter ( ) const
overrideprotectedvirtual
Returns
the jitter vector for the current subpixel decomposition.
Version
1.0

Reimplemented from eq::Channel.

Definition at line 495 of file eqPly/channel.cpp.

References eq::fabric::Channel< Window, Channel >::getEye(), eq::fabric::Channel< Window, Channel >::getFrustum(), eq::Channel::getJitter(), eq::fabric::Channel< Window, Channel >::getPixel(), eq::fabric::Channel< Window, Channel >::getPixelViewport(), and eq::Channel::getView().

+ Here is the call graph for this function:

void eqPly::Channel::notifyStopFrame ( const uint32_t  lastFrameNumber)
inlineoverrideprotectedvirtual

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

Reimplemented from eq::Channel.

Definition at line 70 of file share/Equalizer/examples/eqPly/channel.h.

bool eqPly::Channel::useOrtho ( ) const
overrideprotectedvirtual

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

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

Definition at line 379 of file eqPly/channel.cpp.


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