Equalizer
1.8.0
Parallel Rendering Framework
|
The rendering entity, updating a part of a Window. More...
#include <channel.h>
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 Pipe * | getPipe () |
EQ_API const Pipe * | getPipe () const |
EQ_API Node * | getNode () |
EQ_API const Node * | getNode () const |
EQ_API Config * | getConfig () |
EQ_API const Config * | getConfig () const |
EQ_API ServerPtr | getServer () |
EQ_API const GLEWContext * | glewGetContext () const |
Get the GLEW context for this channel. More... | |
EQ_API util::ObjectManager & | getObjectManager () |
EQ_API const DrawableConfig & | getDrawableConfig () const |
EQ_API View * | getNativeView () |
Get the channel's native view. More... | |
EQ_API const View * | getNativeView () const |
const-version of getNativeView() More... | |
EQ_API util::FrameBufferObject * | getFrameBufferObject () |
EQ_API const Vector3ub & | getUniqueColor () const |
EQ_API void | addStatistic (Event &event) |
EQ_API View * | getView () |
Get the channel's current View. More... | |
EQ_API const View * | getView () 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 ®ion) |
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 PixelViewports & | getRegions () 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 () |
Window * | getWindow () |
const Window * | 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) |
const PixelViewport & | getNativePixelViewport () 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 ColorMask & | getDrawBufferMask () const |
const PixelViewport & | getPixelViewport () 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 Viewport & | getViewport () const |
const Range & | getRange () const |
const Pixel & | getPixel () const |
const SubPixel & | getSubPixel () const |
const Zoom & | getZoom () 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 RenderContext & | getContext () const |
const RenderContext & | getNativeContext () 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 Object & | operator= (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< Channel > | Visitor |
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 |
The rendering entity, updating a part of a Window.
Definition at line 46 of file share/Equalizer/examples/eqPly/channel.h.
|
inlineprotectedvirtual |
Destruct the channel.
Reimplemented from eq::Channel.
Definition at line 54 of file share/Equalizer/examples/eqPly/channel.h.
|
overrideprotectedvirtual |
Exit this channel.
Reimplemented from eq::Channel.
Definition at line 79 of file eqPly/channel.cpp.
References eq::Channel::configExit().
|
overrideprotectedvirtual |
Initialize this channel.
initID | the init identifier. |
Reimplemented from eq::Channel.
Definition at line 68 of file eqPly/channel.cpp.
References eq::Channel::configInit(), and eq::fabric::Channel< Window, Channel >::setNearFar().
|
overrideprotectedvirtual |
Assemble all input frames.
Called 0 to n times during one frame.
frameID | the per-frame identifier. |
frames | the input frames. |
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().
|
overrideprotectedvirtual |
Clear the frame buffer.
Called 0 to n times during one frame.
frameID | the per-frame identifier. |
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().
|
overrideprotectedvirtual |
Draw the scene.
Called 0 to n times during one frame.
frameID | the per-frame identifier. |
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().
|
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().
frameID | the per-frame identifier. |
frameNumber | the frame to finish. |
Reimplemented from eq::Channel.
Definition at line 297 of file eqPly/channel.cpp.
References eq::Channel::frameFinish().
|
overrideprotectedvirtual |
Read back the rendered frame buffer into the output frames.
Called 0 to n times during one frame.
frameID | the per-frame identifier. |
frames | the output frames. |
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().
|
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().
frameID | the per-frame identifier. |
frameNumber | the frame to start. |
Reimplemented from eq::Channel.
Definition at line 275 of file eqPly/channel.cpp.
References eq::Channel::frameStart().
|
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.
frameID | the per-frame identifier. |
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().
|
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.
frameID | the per-frame identifier. |
Reimplemented from eq::Channel.
Definition at line 287 of file eqPly/channel.cpp.
References eq::Channel::frameViewStart(), and eq::fabric::Channel< Window, Channel >::getPixelViewport().
|
overrideprotectedvirtual |
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().
|
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.
lastFrameNumber | stop rendering until this frame has been processed. |
Reimplemented from eq::Channel.
Definition at line 70 of file share/Equalizer/examples/eqPly/channel.h.
|
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.
Reimplemented from eq::fabric::Channel< Window, Channel >.
Definition at line 379 of file eqPly/channel.cpp.