24 #include <eq/fabric/channel.h> 53 EQ_API
virtual ~Channel();
57 EQ_API co::CommandQueue* getPipeThreadQueue();
58 EQ_API co::CommandQueue* getCommandThreadQueue();
59 EQ_API uint32_t getCurrentFrame()
const;
62 bool waitFrameFinished(uint32_t frame, uint32_t timeout)
const;
68 EQ_API
bool isStopped()
const;
71 EQ_API
Pipe* getPipe();
74 EQ_API
const Pipe* getPipe()
const;
77 EQ_API
Node* getNode();
80 EQ_API
const Node* getNode()
const;
104 EQ_API
const GLEWContext* glewGetContext()
const;
110 EQ_API
const DrawableConfig& getDrawableConfig()
const;
122 EQ_API
View* getNativeView();
125 EQ_API
const View* getNativeView()
const;
128 EQ_API
const Vector3ub& getUniqueColor()
const;
131 EQ_API
void addStatistic(Statistic& event);
148 EQ_API
virtual Vector2f getJitter()
const;
162 EQ_API
View* getView();
165 EQ_API
const View* getView()
const;
176 EQ_API Frustumf getScreenFrustum()
const;
192 EQ_API
virtual void applyBuffer();
199 EQ_API
virtual void applyColorMask()
const;
206 EQ_API
virtual void applyViewport()
const;
220 EQ_API
virtual void applyFrustum()
const;
226 EQ_API
virtual void applyPerspective()
const;
232 EQ_API
virtual void applyOrtho()
const;
241 EQ_API
void applyScreenFrustum()
const;
248 EQ_API
virtual void applyHeadTransform()
const;
254 EQ_API
virtual void applyPerspectiveTransform()
const;
260 EQ_API
virtual void applyOrthoTransform()
const;
266 EQ_API
void applyOverlayState();
272 EQ_API
void resetOverlayState();
278 EQ_API
void bindFrameBuffer();
284 EQ_API
void bindDrawFrameBuffer();
296 EQ_API
virtual void resetRegions();
312 EQ_API
virtual void declareRegion(
const eq::PixelViewport& region);
320 EQ_API
void declareRegion(
const eq::Viewport& vp);
323 EQ_API PixelViewport getRegion()
const;
347 EQ_API EventOCommand sendError(
const uint32_t error);
360 EQ_API
virtual bool processEvent(EventType type, SizeEvent& event);
361 EQ_API
virtual bool processEvent(EventType type, PointerEvent& event);
362 EQ_API
virtual bool processEvent(EventType type, KeyEvent& event);
363 EQ_API
virtual bool processEvent(Statistic& event);
367 EQ_API
virtual void drawStatistics();
370 EQ_API
virtual void outlineViewport();
378 void changeLatency(
const uint32_t latency);
406 EQ_API
virtual std::string getDumpImageFileName()
const;
410 EQ_API
void attach(
const uint128_t&
id,
const uint32_t instanceID);
420 EQ_API
void startFrame(
const uint32_t frameNumber);
428 EQ_API
void releaseFrame(
const uint32_t frameNumber);
436 EQ_API
void releaseFrameLocal(
const uint32_t frameNumber);
448 EQ_API
virtual void setupAssemblyState();
451 EQ_API
virtual void resetAssemblyState();
469 EQ_API
virtual bool configInit(
const uint128_t& initID);
472 EQ_API
virtual bool configExit();
485 EQ_API
virtual void frameStart(
const uint128_t& frameID,
486 const uint32_t frameNumber);
498 EQ_API
virtual void frameFinish(
const uint128_t& frameID,
499 const uint32_t frameNumber);
511 EQ_API
virtual void frameDrawFinish(
const uint128_t& frameID,
512 const uint32_t frameNumber);
522 EQ_API
virtual void frameClear(
const uint128_t& frameID);
532 EQ_API
virtual void frameDraw(
const uint128_t& frameID);
543 EQ_API
virtual void frameAssemble(
const uint128_t& frameID,
556 EQ_API
virtual void frameReadback(
const uint128_t& frameID,
570 EQ_API
virtual void frameViewStart(
const uint128_t& frameID);
587 EQ_API
virtual void frameViewFinish(
const uint128_t& frameID);
597 EQ_API
virtual void frameDrawOverlay(
const uint128_t& frameID);
605 EQ_API
virtual void notifyViewportChanged();
619 EQ_API
virtual void notifyStopFrame(
const uint32_t lastFrameNumber);
622 detail::Channel*
const _impl;
623 friend class fabric::Window<Pipe, Window, Channel, WindowSettings>;
627 void _overrideContext(RenderContext& context);
630 void _initDrawableConfig();
633 void _frameTiles(RenderContext& context,
const bool isLocal,
634 const uint128_t& queueID,
const uint32_t tasks,
635 const co::ObjectVersions& frames);
638 void _refFrame(
const uint32_t frameNumber);
641 void _unrefFrame(
const uint32_t frameNumber);
644 void _transmitImage(
const co::ObjectVersion& frameDataVersion,
645 const uint128_t& nodeID,
const co::NodeID& netNodeID,
646 const uint64_t imageIndex,
const uint32_t frameNumber,
647 const uint32_t taskID);
649 void _frameReadback(
const uint128_t& frameID,
650 const co::ObjectVersions& frames);
651 void _finishReadback(
const co::ObjectVersion& frameDataVersion,
652 const uint64_t imageIndex,
const uint32_t frameNumber,
653 const uint32_t taskID,
654 const std::vector<uint128_t>& nodes,
655 const co::NodeIDs& netNodes);
657 bool _asyncFinishReadback(
const std::vector<size_t>& imagePos,
660 void _asyncTransmit(
FrameDataPtr frame,
const uint32_t frameNumber,
661 const uint64_t image,
662 const std::vector<uint128_t>& nodes,
663 const co::NodeIDs& netNodes,
const uint32_t taskID);
665 void _setReady(
const bool async, detail::RBStat* stat,
667 void _asyncSetReady(
const FrameDataPtr frame, detail::RBStat* stat,
668 const std::vector<uint128_t>& nodes,
669 const co::NodeIDs& netNodes);
671 void _setReady(
FrameDataPtr frame, detail::RBStat* stat,
672 const std::vector<uint128_t>& nodes,
673 const co::NodeIDs& netNodes);
676 co::QueueSlave* _getQueue(
const uint128_t& queueID);
678 Frames _getFrames(
const co::ObjectVersions& frameIDs,
const bool isOutput);
680 void _createTransferWindow();
681 void _deleteTransferWindow();
684 bool _cmdConfigInit(co::ICommand& command);
685 bool _cmdConfigExit(co::ICommand& command);
686 bool _cmdFrameStart(co::ICommand& command);
687 bool _cmdFrameFinish(co::ICommand& command);
688 bool _cmdFrameClear(co::ICommand& command);
689 bool _cmdFrameDraw(co::ICommand& command);
690 bool _cmdFrameDrawFinish(co::ICommand& command);
691 bool _cmdFrameAssemble(co::ICommand& command);
692 bool _cmdFrameReadback(co::ICommand& command);
693 bool _cmdFinishReadback(co::ICommand& command);
694 bool _cmdFrameSetReady(co::ICommand& command);
695 bool _cmdFrameTransmitImage(co::ICommand& command);
696 bool _cmdFrameSetReadyNode(co::ICommand& command);
697 bool _cmdFrameViewStart(co::ICommand& command);
698 bool _cmdFrameViewFinish(co::ICommand& command);
699 bool _cmdStopFrame(co::ICommand& command);
700 bool _cmdFrameTiles(co::ICommand& command);
701 bool _cmdDeleteTransferWindow(co::ICommand& command);
703 LB_TS_VAR(_pipeThread);
707 #endif // EQ_CHANNEL_H std::vector< PixelViewport > PixelViewports
A vector of eq::PixelViewport.
lunchbox::RefPtr< Server > ServerPtr
A reference-counted pointer to an eq::Server.
A channel represents a two-dimensional viewport within a Window.
A configuration is a visualization session driven by an application.
virtual void frameTilesStart(const uint128_t &)
Start a batch of tile rendering operations.
A Pipe represents a graphics card (GPU) on a Node.
A Node represents a single computer in the cluster.
EQ_API Config * getConfig(const int argc, char **argv)
Convenience function to retrieve a configuration.
std::vector< Frame * > Frames
A vector of pointers to eq::Frame.
A Window represents an on-screen or off-screen drawable.
The result image listener gets notified on new images produced by destination channels.
The Equalizer client library.
A View is a 2D area of a Layout.
lunchbox::RefPtr< FrameData > FrameDataPtr
A reference-counted pointer to an eq::FrameData.
Base data transport class for windows.
virtual void frameTilesFinish(const uint128_t &)
Finish a batch of tile rendering operations.
A facility class to manage OpenGL objects across shared contexts.
Base data transport class for channels.