eq::Channel Class Reference

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

#include <channel.h>

Inheritance diagram for eq::Channel:
Inheritance graph
[legend]
Collaboration diagram for eq::Channel:
Collaboration graph
[legend]

List of all members.

Public Types

enum  Drawable { FB_WINDOW = EQ_BIT_NONE, FBO_COLOR = EQ_BIT1, FBO_DEPTH = EQ_BIT2, FBO_STENCIL = EQ_BIT3 }
 

The drawable format defining the components used as an alternate drawable for this cannel.

More...

Public Member Functions

 Channel (Window *parent)
 Construct a new channel.
virtual ~Channel ()
 Destruct the channel.
virtual bool processEvent (const Event &event)
 Process a received event.
virtual void drawStatistics ()
 Draw a statistics overlay.
virtual void outlineViewport ()
 Outline the current pixel viewport.
Data Access



WindowgetWindow ()
const WindowgetWindow () const
PipegetPipe ()
const PipegetPipe () const
NodegetNode ()
const NodegetNode () const
ConfiggetConfig ()
const ConfiggetConfig () const
ServerPtr getServer ()
const std::string & getName () const
GLEWContext * glewGetContext ()
 Get the GLEW context for this channel.
const GLEWContext * glewGetContext () const
 Const-version for glewGetContext().
Window::ObjectManagergetObjectManager ()
uint32_t getTasks () const
 Return the set of tasks this channel might execute in the worst case.
VisitorResult accept (ChannelVisitor &visitor)
 Traverse this channel using a channel visitor.
VisitorResult accept (ChannelVisitor &visitor) const
 Const-version of accept().
void setNearFar (const float nearPlane, const float farPlane)
 Set the near and far planes for this channel.
const Vector3ubgetUniqueColor () const
 Return a fixed unique color for this channel.
const ViewgetNativeView () const
 Get the channel's native view.
const PixelViewportgetNativePixelViewPort () const
util::FrameBufferObjectgetFrameBufferObject ()
void addStatistic (Event &event)
 Add a new statistics event for the current frame.
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 frameFoo 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
const FrustumfgetFrustum () const
const FrustumfgetOrtho () const
Vector2f getJitter () const
const Matrix4fgetHeadTransform () const
 Return the view matrix.
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.
Eye getEye () const
const FrameVectorgetInputFrames ()
const FrameVectorgetOutputFrames ()
const ViewgetView () const
 Get the channel's View.
Frustumf getScreenFrustum () const
 Returns an orthographic frustum for 2D operations on the view.
const Vector4igetOverdraw () const
void setMaxSize (const Vector2i &size)
uint32_t getTaskID () const
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 void applyBuffer ()
 Apply the current rendering buffer, including the color mask.
virtual void applyColorMask () const
 Apply the current color mask.
virtual void applyViewport () const
 Apply the OpenGL viewport for the current rendering task.
virtual void applyFrustum () const
 Apply the perspective frustum matrix for the current rendering task.
virtual void applyOrtho () const
 Apply the orthographic frustum matrix for the current rendering task.
void applyScreenFrustum () const
 Apply a orthographic frustum for pixel-based 2D operations.
virtual void applyHeadTransform () const
 Apply the modeling transformation to position and orient the view frustum.
virtual void applyFrameBufferObject ()
 Apply the current alternate frame buffer.
void bindFrameBuffer ()
 Rebind the current alternate FBO of the channel or window.

Protected Member Functions

void attachToSession (const uint32_t id, const uint32_t instanceID, net::Session *session)
Actions



void startFrame (const uint32_t frameNumber)
 Start a frame by unlocking all child resources.
void releaseFrame (const uint32_t frameNumber)
 Signal the completion of a frame to the parent.
void releaseFrameLocal (const uint32_t frameNumber)
 Release the local synchronization of the parent for a frame.
virtual void setupAssemblyState ()
 Setup the OpenGL state for a readback or assemble operation.
virtual void resetAssemblyState ()
 Reset the OpenGL state after an assembly operation.
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 bool configInit (const uint32_t initID)
 Initialize this channel.
virtual bool configExit ()
 Exit this channel.
virtual void frameStart (const uint32_t frameID, const uint32_t frameNumber)
 Start rendering a frame.
virtual void frameFinish (const uint32_t frameID, const uint32_t frameNumber)
 Finish rendering a frame.
virtual void frameDrawFinish (const uint32_t frameID, const uint32_t frameNumber)
 Finish drawing.
virtual void frameClear (const uint32_t frameID)
 Clear the frame buffer.
virtual void frameDraw (const uint32_t frameID)
 Draw the scene.
virtual void frameAssemble (const uint32_t frameID)
 Assemble input frames.
virtual void frameReadback (const uint32_t frameID)
 Read back the rendered scene.
virtual void frameViewStart (const uint32_t frameID)
 Start updating a destination channel.
virtual void frameViewFinish (const uint32_t frameID)
 Finish updating a destination channel.
Error information.



void setErrorMessage (const std::string &message)
 Set a message why the last operation failed.

Friends

class Window

Attributes



enum  IAttribute {
  IATTR_HINT_STATISTICS, IATTR_HINT_SENDTOKEN, IATTR_FILL1, IATTR_FILL2,
  IATTR_ALL
}
 

Integer attributes for a channel.

More...
int32_t getIAttribute (const IAttribute attr) const
static const std::string & getIAttributeString (const IAttribute attr)

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.

Definition at line 51 of file lib/client/channel.h.


Member Enumeration Documentation

The drawable format defining the components used as an alternate drawable for this cannel.

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

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 61 of file lib/client/channel.h.

Integer attributes for a channel.

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 409 of file lib/client/channel.h.


Constructor & Destructor Documentation

eq::Channel::Channel ( Window parent  ) 

Construct a new channel.

Reimplemented in eqHello::Channel, eqNbody::Channel, eqPixelBench::Channel, eqPly::Channel, and eVolve::Channel.

Definition at line 64 of file lib/client/channel.cpp.

References EQINFO.

eq::Channel::~Channel (  )  [virtual]

Destruct the channel.

Reimplemented in eqNbody::Channel, eqPixelBench::Channel, eqPly::Channel, and eVolve::Channel.

Definition at line 79 of file lib/client/channel.cpp.

References EQINFO.


Member Function Documentation

Window* eq::Channel::getWindow (  )  [inline]
Returns:
the parent window.

Definition at line 80 of file lib/client/channel.h.

Referenced by eq::ChannelStatistics::ChannelStatistics(), and eq::ChannelStatistics::~ChannelStatistics().

Here is the caller graph for this function:

const Window* eq::Channel::getWindow (  )  const [inline]
Returns:
the parent window.

Definition at line 83 of file lib/client/channel.h.

Pipe * eq::Channel::getPipe (  ) 
Returns:
the parent pipe.

Definition at line 119 of file lib/client/channel.cpp.

References eq::Window::getPipe().

Referenced by eVolve::Channel::frameDraw(), eqNbody::Channel::frameDraw(), getNativeView(), and getView().

Here is the call graph for this function:

Here is the caller graph for this function:

const Pipe * eq::Channel::getPipe (  )  const
Returns:
the parent pipe.

Definition at line 124 of file lib/client/channel.cpp.

References eq::Window::getPipe().

Here is the call graph for this function:

Node * eq::Channel::getNode (  ) 
Returns:
the parent node.

Definition at line 130 of file lib/client/channel.cpp.

References eq::Window::getNode().

Here is the call graph for this function:

const Node * eq::Channel::getNode (  )  const
Returns:
the parent node.

Definition at line 135 of file lib/client/channel.cpp.

References eq::Window::getNode().

Here is the call graph for this function:

Config * eq::Channel::getConfig (  ) 
Returns:
the parent config.

Definition at line 141 of file lib/client/channel.cpp.

References eq::Window::getConfig().

Referenced by eq::ChannelStatistics::ChannelStatistics(), drawStatistics(), eqPixelBench::Channel::frameStart(), eqPly::Channel::frameViewFinish(), processEvent(), and eq::ChannelStatistics::~ChannelStatistics().

Here is the call graph for this function:

Here is the caller graph for this function:

const Config * eq::Channel::getConfig (  )  const
Returns:
the parent config.

Definition at line 146 of file lib/client/channel.cpp.

References eq::Window::getConfig().

Here is the call graph for this function:

ServerPtr eq::Channel::getServer (  ) 
Returns:
the parent server.

Definition at line 152 of file lib/client/channel.cpp.

References eq::Window::getServer().

Referenced by setNearFar().

Here is the call graph for this function:

Here is the caller graph for this function:

const std::string& eq::Channel::getName (  )  const [inline]
Returns:
the name of the window.

Definition at line 107 of file lib/client/channel.h.

Referenced by eq::ChannelStatistics::ChannelStatistics(), eqPly::Channel::configInit(), and eqPixelBench::Channel::frameStart().

Here is the caller graph for this function:

GLEWContext * eq::Channel::glewGetContext (  ) 

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.

Definition at line 165 of file lib/client/channel.cpp.

References eq::Window::glewGetContext().

Referenced by setupAssemblyState().

Here is the call graph for this function:

Here is the caller graph for this function:

Window::ObjectManager * eq::Channel::getObjectManager (  ) 
Returns:
the window's object manager instance.

Definition at line 158 of file lib/client/channel.cpp.

References eq::Window::getObjectManager().

Referenced by eq::Compositor::assembleImageDB_GLSL(), eVolve::Channel::frameAssemble(), and frameReadback().

Here is the call graph for this function:

Here is the caller graph for this function:

uint32_t eq::Channel::getTasks (  )  const [inline]

Return the set of tasks this channel might execute in the worst case.

It is not guaranteed that all the tasks will be actually executed during rendering.

Returns:
the tasks.
Warning:
Experimental - may not be supported in the future

Definition at line 139 of file lib/client/channel.h.

VisitorResult eq::Channel::accept ( ChannelVisitor visitor  ) 

Traverse this channel using a channel visitor.

Parameters:
visitor the visitor.
Returns:
the result of the visitor traversal.

Definition at line 176 of file lib/client/channel.cpp.

References eq::ChannelVisitor::visit().

Here is the call graph for this function:

VisitorResult eq::Channel::accept ( ChannelVisitor visitor  )  const

Const-version of accept().

Definition at line 181 of file lib/client/channel.cpp.

References eq::ChannelVisitor::visit().

Here is the call graph for this function:

void eq::Channel::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:
nearPlane the near plane.
farPlane the far plane.

Definition at line 349 of file lib/client/channel.cpp.

References eq::base::RefPtr< T >::get(), getServer(), and eq::net::Object::send().

Referenced by eVolve::Channel::configInit(), and eqPly::Channel::configInit().

Here is the call graph for this function:

Here is the caller graph for this function:

const Vector3ub& eq::Channel::getUniqueColor (  )  const [inline]

Return a fixed unique color for this channel.

Definition at line 165 of file lib/client/channel.h.

Referenced by eVolve::Channel::configInit(), eqPly::Channel::frameClear(), frameClear(), and eqPly::Channel::frameDraw().

Here is the caller graph for this function:

const View * eq::Channel::getNativeView (  )  const

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()

Definition at line 613 of file lib/client/channel.cpp.

References getPipe(), and eq::Pipe::getView().

Here is the call graph for this function:

const PixelViewport& eq::Channel::getNativePixelViewPort (  )  const [inline]
Returns:
the channel's native pixel viewport.

Definition at line 180 of file lib/client/channel.h.

util::FrameBufferObject * eq::Channel::getFrameBufferObject (  ) 
Returns:
the FBO used as an alternate frame buffer.

Definition at line 602 of file lib/client/channel.cpp.

void eq::Channel::addStatistic ( Event event  ) 

Add a new statistics event for the current frame.

For internal use only.

Definition at line 379 of file lib/client/channel.cpp.

References processEvent(), and eq::Event::statistic.

Referenced by eq::ChannelStatistics::~ChannelStatistics().

Here is the call graph for this function:

Here is the caller graph for this function:

uint32_t eq::Channel::getDrawBuffer (  )  const
Returns:
the current draw buffer for glDrawBuffer.

Definition at line 504 of file lib/client/channel.cpp.

Referenced by applyBuffer().

Here is the caller graph for this function:

uint32_t eq::Channel::getReadBuffer (  )  const
Returns:
the current read buffer for glReadBuffer.

Definition at line 509 of file lib/client/channel.cpp.

Referenced by applyBuffer().

Here is the caller graph for this function:

const ColorMask & eq::Channel::getDrawBufferMask (  )  const
Returns:
the current color mask for glColorMask.

Definition at line 514 of file lib/client/channel.cpp.

Referenced by applyColorMask(), and eq::Compositor::setupStencilBuffer().

Here is the caller graph for this function:

const PixelViewport & eq::Channel::getPixelViewport (  )  const
Returns:
the current pixel viewport for glViewport and glScissor.

Definition at line 494 of file lib/client/channel.cpp.

Referenced by applyViewport(), drawStatistics(), eVolve::Channel::frameAssemble(), eqPly::Channel::frameAssemble(), eqPly::Channel::frameViewFinish(), eqPly::Channel::frameViewStart(), getJitter(), getScreenFrustum(), outlineViewport(), and setupAssemblyState().

Here is the caller graph for this function:

const Frustumf & eq::Channel::getFrustum (  )  const
Returns:
the current perspective frustum for glFrustum.

Definition at line 519 of file lib/client/channel.cpp.

Referenced by eqPly::Channel::applyFrustum(), applyFrustum(), and getJitter().

Here is the caller graph for this function:

const Frustumf & eq::Channel::getOrtho (  )  const
Returns:
the current orthographic frustum for glOrtho.

Definition at line 524 of file lib/client/channel.cpp.

Referenced by eqPly::Channel::applyFrustum(), and applyOrtho().

Here is the caller graph for this function:

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

Definition at line 744 of file lib/client/channel.cpp.

References eq::base::RNG::get(), getFrustum(), getPixel(), getPixelViewport(), and getSubPixel().

Referenced by applyFrustum(), and applyOrtho().

Here is the call graph for this function:

Here is the caller graph for this function:

const Matrix4f & eq::Channel::getHeadTransform (  )  const

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

Definition at line 564 of file lib/client/channel.cpp.

Referenced by applyHeadTransform().

Here is the caller graph for this function:

const Viewport & eq::Channel::getViewport (  )  const
Returns:
the fractional viewport wrt the destination view.

Definition at line 489 of file lib/client/channel.cpp.

Referenced by drawStatistics(), and getScreenFrustum().

Here is the caller graph for this function:

const Range & eq::Channel::getRange (  )  const
Returns:
the database range for the current rendering task.

Definition at line 529 of file lib/client/channel.cpp.

Referenced by eVolve::Channel::frameAssemble(), eVolve::Channel::frameClear(), and eVolve::Channel::frameDraw().

Here is the caller graph for this function:

const Pixel & eq::Channel::getPixel (  )  const
Returns:
the pixel decomposition for the current rendering task.

Definition at line 534 of file lib/client/channel.cpp.

Referenced by getJitter(), and getScreenFrustum().

Here is the caller graph for this function:

const SubPixel & eq::Channel::getSubPixel (  )  const
Returns:
the subpixel decomposition for the current rendering task.

Definition at line 539 of file lib/client/channel.cpp.

Referenced by eqPly::Channel::frameDraw(), and getJitter().

Here is the caller graph for this function:

const Zoom & eq::Channel::getZoom (  )  const
Returns:
the up/downscale factor for the current rendering task.

Definition at line 544 of file lib/client/channel.cpp.

uint32_t eq::Channel::getPeriod (  )  const
Returns:
the DPlex period for the current rendering task.
Version:
1.0

Definition at line 549 of file lib/client/channel.cpp.

Referenced by eqPly::Channel::frameDraw().

Here is the caller graph for this function:

uint32_t eq::Channel::getPhase (  )  const
Returns:
the DPlex phase for the current rendering task.
Version:
1.0

Definition at line 554 of file lib/client/channel.cpp.

const Vector2i & eq::Channel::getPixelOffset (  )  const

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.

Definition at line 499 of file lib/client/channel.cpp.

Eye eq::Channel::getEye (  )  const
Returns:
the currently rendered eye pass.

Definition at line 559 of file lib/client/channel.cpp.

Referenced by eqPly::Channel::frameAssemble(), eqPly::Channel::frameClear(), eqPly::Channel::frameDraw(), and eqPly::Channel::frameViewFinish().

Here is the caller graph for this function:

const FrameVector& eq::Channel::getInputFrames (  )  [inline]
Returns:
the list of input frames, used from frameAssemble().

Definition at line 273 of file lib/client/channel.h.

Referenced by eVolve::Channel::frameAssemble(), eqPly::Channel::frameAssemble(), and frameAssemble().

Here is the caller graph for this function:

const FrameVector& eq::Channel::getOutputFrames (  )  [inline]
Returns:
the list of output frames, used from frameReadback().

Definition at line 276 of file lib/client/channel.h.

Referenced by eVolve::Channel::frameReadback(), eqPly::Channel::frameReadback(), and frameReadback().

Here is the caller graph for this function:

const View * eq::Channel::getView (  )  const

Get the channel's 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 is returned.

Returns:
the channel's view, or 0 if it does not have a view.
See also:
getNativeView()

Definition at line 607 of file lib/client/channel.cpp.

References getPipe(), and eq::Pipe::getView().

Referenced by eqPly::Channel::frameClear(), and eqPly::Channel::frameViewFinish().

Here is the call graph for this function:

Here is the caller graph for this function:

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.

Definition at line 569 of file lib/client/channel.cpp.

References getPixel(), getPixelViewport(), getViewport(), eq::PixelViewport::getXEnd(), and eq::PixelViewport::getYEnd().

Referenced by applyScreenFrustum().

Here is the call graph for this function:

Here is the caller graph for this function:

const Vector4i & eq::Channel::getOverdraw (  )  const

For internal use only.

Undocumented - may not be supported in the future

Definition at line 586 of file lib/client/channel.cpp.

void eq::Channel::setMaxSize ( const Vector2i size  ) 

For internal use only.

Undocumented - may not be supported in the future

Definition at line 591 of file lib/client/channel.cpp.

uint32_t eq::Channel::getTaskID (  )  const

For internal use only.

Undocumented - may not be supported in the future

Definition at line 597 of file lib/client/channel.cpp.

Referenced by eq::ChannelStatistics::ChannelStatistics().

Here is the caller graph for this function:

void eq::Channel::applyBuffer (  )  [virtual]
void eq::Channel::applyColorMask (  )  const [virtual]

Apply the current color mask.

See also:
applyBuffer(), getDrawBufferMask()

Definition at line 656 of file lib/client/channel.cpp.

References getDrawBufferMask().

Referenced by applyBuffer().

Here is the call graph for this function:

Here is the caller graph for this function:

void eq::Channel::applyViewport (  )  const [virtual]
void eq::Channel::applyFrustum (  )  const [virtual]

Apply the perspective 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 applyFrustum() accordingly.

See also:
getFrustum(), getJitter(), getSubPixel()

Reimplemented in eqPly::Channel, and eVolve::Channel.

Definition at line 677 of file lib/client/channel.cpp.

References EQVERB, getFrustum(), and getJitter().

Referenced by eqPixelBench::Channel::frameDraw(), and frameDraw().

Here is the call graph for this function:

Here is the caller graph for this function:

void eq::Channel::applyOrtho (  )  const [virtual]

Apply the orthographic frustum matrix for the current rendering task.

The same jitter as in applyFrustum() is applied.

See also:
getOrtho(), getJitter()

Definition at line 689 of file lib/client/channel.cpp.

References EQVERB, getJitter(), and getOrtho().

Referenced by eVolve::Channel::applyFrustum().

Here is the call graph for this function:

Here is the caller graph for this function:

void eq::Channel::applyScreenFrustum (  )  const

Apply a 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.

Definition at line 701 of file lib/client/channel.cpp.

References EQVERB, and getScreenFrustum().

Referenced by drawStatistics().

Here is the call graph for this function:

Here is the caller graph for this function:

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 an config event to be send to the application using Config::sendEvent().

Parameters:
event the received event.
Returns:
true when the event was handled, false if not.

Definition at line 782 of file lib/client/channel.cpp.

References eq::Event::CHANNEL_RESIZE, EQWARN, getConfig(), eq::Event::originator, eq::Event::resize, eq::Config::sendEvent(), eq::Event::STATISTIC, eq::Event::type, and eq::Event::VIEW_RESIZE.

Referenced by addStatistic().

Here is the call graph for this function:

Here is the caller graph for this function:

void eq::Channel::drawStatistics (  )  [virtual]

Draw a statistics overlay.

Definition at line 841 of file lib/client/channel.cpp.

References applyBuffer(), applyScreenFrustum(), applyViewport(), eq::Window::drawFPS(), EQ_MAX, EQ_MIN, getConfig(), getPixelViewport(), eq::Window::getSmallFont(), eq::Config::getStatistics(), getViewport(), eq::PixelViewport::hasArea(), resetAssemblyState(), and setupAssemblyState().

Referenced by eqPly::Channel::frameViewFinish().

Here is the call graph for this function:

Here is the caller graph for this function:

void eq::Channel::outlineViewport (  )  [virtual]

Outline the current pixel viewport.

Definition at line 1149 of file lib/client/channel.cpp.

References getPixelViewport(), eq::PixelViewport::getXEnd(), eq::PixelViewport::getYEnd(), resetAssemblyState(), and setupAssemblyState().

Referenced by eVolve::Channel::frameDraw().

Here is the call graph for this function:

Here is the caller graph for this function:

int32_t eq::Channel::getIAttribute ( const IAttribute  attr  )  const
Returns:
the value of an integer attribute.

Definition at line 1168 of file lib/client/channel.cpp.

Referenced by eq::ChannelStatistics::ChannelStatistics(), and eq::ChannelStatistics::~ChannelStatistics().

Here is the caller graph for this function:

const std::string & eq::Channel::getIAttributeString ( const IAttribute  attr  )  [static]
Returns:
the name of an integer attribute.

Definition at line 1173 of file lib/client/channel.cpp.

void eq::Channel::attachToSession ( const uint32_t  id,
const uint32_t  instanceID,
net::Session session 
) [protected, virtual]

For internal use only.

Reimplemented from eq::net::Object.

Definition at line 85 of file lib/client/channel.cpp.

References eq::Window::getPipeThreadQueue(), and eq::net::Dispatcher::registerCommand().

Here is the call graph for this function:

void eq::Channel::startFrame ( const uint32_t  frameNumber  )  [inline, protected]

Start a frame by unlocking all child resources.

Parameters:
frameNumber the frame to start.

Definition at line 440 of file lib/client/channel.h.

Referenced by frameStart().

Here is the caller graph for this function:

void eq::Channel::releaseFrame ( const uint32_t  frameNumber  )  [inline, protected]

Signal the completion of a frame to the parent.

Parameters:
frameNumber the frame to end.

Definition at line 447 of file lib/client/channel.h.

Referenced by frameFinish().

Here is the caller graph for this function:

void eq::Channel::releaseFrameLocal ( const uint32_t  frameNumber  )  [inline, protected]

Release the local synchronization of the parent for a frame.

Parameters:
frameNumber the frame to release.

Definition at line 454 of file lib/client/channel.h.

Referenced by frameDrawFinish().

Here is the caller graph for this function:

void eq::Channel::setupAssemblyState (  )  [protected, virtual]

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.

Definition at line 456 of file lib/client/channel.cpp.

References getPixelViewport(), eq::Window::getPixelViewport(), eq::util::FrameBufferObject::getPixelViewport(), glewGetContext(), and eq::util::Accum::usesFBO().

Referenced by drawStatistics(), eqPly::Channel::frameAssemble(), frameAssemble(), eqPixelBench::Channel::frameDraw(), frameReadback(), eqPly::Channel::frameViewFinish(), and outlineViewport().

Here is the call graph for this function:

Here is the caller graph for this function:

bool eq::Channel::configInit ( const uint32_t  initID  )  [protected, virtual]

Initialize this channel.

Parameters:
initID the init identifier.

Reimplemented in eqPly::Channel, and eVolve::Channel.

Definition at line 192 of file lib/client/channel.cpp.

Referenced by eVolve::Channel::configInit(), and eqPly::Channel::configInit().

Here is the caller graph for this function:

bool eq::Channel::configExit (  )  [protected, virtual]

Exit this channel.

Reimplemented in eqPly::Channel.

Definition at line 186 of file lib/client/channel.cpp.

virtual void eq::Channel::frameStart ( const uint32_t  frameID,
const uint32_t  frameNumber 
) [inline, protected, virtual]

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:
frameID the per-frame identifier.
frameNumber the frame to start.
See also:
Config::startFrame()

Reimplemented in eqPixelBench::Channel, eqPly::Channel, and eVolve::Channel.

Definition at line 501 of file lib/client/channel.h.

References startFrame().

Here is the call graph for this function:

virtual void eq::Channel::frameFinish ( const uint32_t  frameID,
const uint32_t  frameNumber 
) [inline, protected, virtual]

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:
frameID the per-frame identifier.
frameNumber the frame to finish.

Reimplemented in eqPly::Channel.

Definition at line 514 of file lib/client/channel.h.

References releaseFrame().

Here is the call graph for this function:

virtual void eq::Channel::frameDrawFinish ( const uint32_t  frameID,
const uint32_t  frameNumber 
) [inline, protected, virtual]

Finish drawing.

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

Parameters:
frameID the per-frame identifier.
frameNumber the frame to finished with draw.

Definition at line 527 of file lib/client/channel.h.

References releaseFrameLocal().

Here is the call graph for this function:

void eq::Channel::frameClear ( const uint32_t  frameID  )  [protected, virtual]

Clear the frame buffer.

Called 0 to n times during one frame.

Parameters:
frameID the per-frame identifier.

Reimplemented in eqNbody::Channel, eqPly::Channel, and eVolve::Channel.

Definition at line 389 of file lib/client/channel.cpp.

References applyBuffer(), applyViewport(), and getUniqueColor().

Here is the call graph for this function:

void eq::Channel::frameDraw ( const uint32_t  frameID  )  [protected, virtual]

Draw the scene.

Called 0 to n times during one frame.

Parameters:
frameID the per-frame identifier.

Reimplemented in eqHello::Channel, eqNbody::Channel, eqPixelBench::Channel, eqPly::Channel, and eVolve::Channel.

Definition at line 407 of file lib/client/channel.cpp.

References applyBuffer(), applyFrustum(), applyHeadTransform(), and applyViewport().

Here is the call graph for this function:

void eq::Channel::frameAssemble ( const uint32_t  frameID  )  [protected, virtual]

Assemble input frames.

Called 0 to n times during one frame.

Parameters:
frameID the per-frame identifier.
See also:
getInputFrames

Reimplemented in eqPly::Channel, and eVolve::Channel.

Definition at line 421 of file lib/client/channel.cpp.

References applyBuffer(), applyViewport(), eq::Compositor::assembleFrames(), getInputFrames(), resetAssemblyState(), and setupAssemblyState().

Here is the call graph for this function:

void eq::Channel::frameReadback ( const uint32_t  frameID  )  [protected, virtual]

Read back the rendered scene.

Called 0 to n times during one frame.

Parameters:
frameID the per-frame identifier.
See also:
getOutputFrames

Reimplemented in eqPly::Channel, and eVolve::Channel.

Definition at line 432 of file lib/client/channel.cpp.

References applyBuffer(), applyViewport(), eq::Window::getColorFormat(), getObjectManager(), getOutputFrames(), resetAssemblyState(), eq::Frame::setColorFormat(), setupAssemblyState(), eq::Frame::startReadback(), and eq::Frame::syncReadback().

Here is the call graph for this function:

virtual void eq::Channel::frameViewStart ( const uint32_t  frameID  )  [inline, protected, virtual]

Start updating a destination channel.

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

Parameters:
frameID the per-frame identifier.

Reimplemented in eqPly::Channel.

Definition at line 578 of file lib/client/channel.h.

virtual void eq::Channel::frameViewFinish ( const uint32_t  frameID  )  [inline, protected, virtual]

Finish updating a destination channel.

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

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:
frameID the per-frame identifier.

Reimplemented in eqPly::Channel, and eVolve::Channel.

Definition at line 592 of file lib/client/channel.h.

void eq::Channel::setErrorMessage ( const std::string &  message  )  [protected]

Set a message why the last operation failed.

The message will be transmitted to the originator of the request, for example to Config::init when set from within the configInit method.

Parameters:
message the error message.

Definition at line 478 of file lib/client/channel.cpp.


The documentation for this class was generated from the following files:
Generated on Sat Feb 6 13:02:59 2010 for Equalizer 0.9.1 by  doxygen 1.6.1