23 #include <eq/notifierInterface.h> 24 #include <eq/windowSettings.h> 25 #include <eq/visitorResult.h> 27 #include <eq/fabric/renderContext.h> 28 #include <eq/fabric/window.h> 29 #include <eq/util/bitmapFont.h> 30 #include <eq/util/objectManager.h> 75 EQ_API co::CommandQueue* getPipeThreadQueue();
76 EQ_API co::CommandQueue* getCommandThreadQueue();
77 EQ_API uint32_t getCurrentFrame()
const;
101 bool isRunning()
const {
return (_state == STATE_RUNNING); }
107 bool isStopped()
const {
return (_state == STATE_STOPPED); }
119 RenderContext& context )
const;
148 {
return _objectManager; }
179 EQ_API
const GLEWContext* getTransferGlewContext()
const;
186 EQ_API uint32_t getColorFormat()
const;
198 EQ_API
virtual void flush()
const;
207 EQ_API
virtual void finish()
const;
227 EQ_API
virtual void makeCurrent(
const bool cache =
true )
const;
236 EQ_API
virtual void bindFrameBuffer()
const;
239 EQ_API
virtual void bindDrawFrameBuffer()
const;
242 EQ_API
virtual void updateFrameBuffer()
const;
245 EQ_API
void notifyViewportChanged()
override;
274 bool createTransferWindow();
277 void deleteTransferWindow();
292 EQ_API EventOCommand
sendError(
const uint32_t error )
final;
298 EQ_API
bool processEvent( EventType type, SizeEvent& event )
override;
301 EQ_API
bool processEvent( EventType type, PointerEvent& event )
override;
304 EQ_API
bool processEvent( EventType type, KeyEvent& event )
override;
307 EQ_API
bool processEvent( EventType type, AxisEvent& event )
override;
310 EQ_API
bool processEvent( EventType type, ButtonEvent& event )
override;
320 void attach(
const uint128_t&
id,
const uint32_t instanceID )
override;
330 EQ_API
void startFrame(
const uint32_t frameNumber );
362 EQ_API
virtual bool configInit(
const uint128_t& initID );
382 EQ_API
virtual bool configInitGL(
const uint128_t& initID );
403 EQ_API
virtual void frameStart(
const uint128_t& frameID,
404 const uint32_t frameNumber );
419 EQ_API
virtual void frameFinish(
const uint128_t& frameID,
420 const uint32_t frameNumber );
433 const uint32_t frameNumber );
446 const Window* _sharedContextWindow;
467 std::vector< RenderContext > _renderContexts[2];
475 int64_t _lastSwapTime;
484 void _addRenderContext(
const RenderContext& context );
488 Channels _getEventChannels(
const PointerEvent& event );
491 void _setupObjectManager();
493 void _releaseObjectManager();
499 void _enterBarrier( co::ObjectVersion barrier );
502 bool _cmdCreateChannel( co::ICommand& command );
503 bool _cmdDestroyChannel(co::ICommand& command );
504 bool _cmdConfigInit( co::ICommand& command );
505 bool _cmdConfigExit( co::ICommand& command );
506 bool _cmdFrameStart( co::ICommand& command );
507 bool _cmdFrameFinish( co::ICommand& command );
508 bool _cmdThrottleFramerate( co::ICommand& command );
509 bool _cmdFlush( co::ICommand& command );
510 bool _cmdFinish( co::ICommand& command );
511 bool _cmdBarrier( co::ICommand& command );
512 bool _cmdNVBarrier( co::ICommand& command );
513 bool _cmdSwap( co::ICommand& command );
514 bool _cmdFrameDrawFinish( co::ICommand& command );
516 LB_TS_VAR( _pipeThread )
520 #endif // EQ_WINDOW_H virtual EQ_API bool configInitSystemWindow(const uint128_t &initID)
Initialize the OS-specific window.
const util::ObjectManager & getObjectManager() const
A channel represents a two-dimensional viewport within a Window.
EQ_API const Config * getConfig() const
A configuration is a visualization session driven by an application.
virtual EQ_API ~Window()
Destruct the window.
A Pipe represents a graphics card (GPU) on a Node.
EQ_API ClientPtr getClient()
EQ_API EventOCommand sendError(const uint32_t error) final
Send a window error event to the application node.
A wrapper around AGL, WGL and GLX bitmap fonts.
EQ_API void setSystemWindow(SystemWindow *window)
Set the OS-specific window.
A Node represents a single computer in the cluster.
EQ_API Window(Pipe *parent)
Construct a new window.
virtual EQ_API void frameDrawFinish(const uint128_t &frameID, const uint32_t frameNumber)
Finish drawing.
const SystemPipe * getSystemPipe() const
lunchbox::RefPtr< Server > ServerPtr
A reference-counted pointer to an eq::Server.
std::vector< Channel * > Channels
A vector of pointers to channels.
virtual EQ_API void frameStart(const uint128_t &frameID, const uint32_t frameNumber)
Start rendering a frame.
virtual EQ_API void flush() const
Flush outstanding rendering requests.
EQ_API void setSharedContextWindow(const Window *sharedContextWindow)
Set the window with which this window shares the OpenGL context.
A Window represents an on-screen or off-screen drawable.
The interface definition for system-specific GPU handling.
EQ_API const Node * getNode() const
A base class for notifying errors and events.
EQ_API void releaseFrame(const uint32_t frameNumber)
Signal the completion of a frame to the parent.
lunchbox::RefPtr< Client > ClientPtr
A reference-counted pointer to an eq::Client.
EQ_API void startFrame(const uint32_t frameNumber)
Start a frame by unlocking all child resources.
virtual EQ_API void makeCurrent(const bool cache=true) const
Make the window's drawable and context current.
virtual EQ_API bool configExit()
Exit this window.
EQ_API ServerPtr getServer()
The Equalizer client library.
virtual EQ_API bool configExitSystemWindow()
De-initialize the OS-specific window.
virtual EQ_API void drawFPS()
Render the current framerate as on overlay.
SystemWindow * getSystemWindow()
virtual EQ_API void finish() const
Finish outstanding rendering requests.
The interface definition for system-specific windowing code.
virtual bool configExitGL()
De-initialize the OpenGL state for this window.
Base data transport class for windows.
EQ_API bool getRenderContext(const int32_t x, const int32_t y, RenderContext &context) const
Get the last rendering context at the x, y position.
A facility class to manage OpenGL objects across shared contexts.
virtual EQ_API void frameFinish(const uint128_t &frameID, const uint32_t frameNumber)
Finish rendering a frame.
virtual EQ_API void swapBuffers()
Swap the front and back buffer of the window.
EQ_API const GLEWContext * glewGetContext() const
Get the GLEW context for this window.
EQ_API const util::BitmapFont * getMediumFont()
EQ_API bool processEvent(EventType type) override
EQ_API const util::BitmapFont * getSmallFont()
virtual EQ_API bool configInitGL(const uint128_t &initID)
Initialize the OpenGL state for this window.
virtual EQ_API bool configInit(const uint128_t &initID)
Initialize this window.
virtual EQ_API void doneCurrent() const
This results in no context being current in the current thread.
EQ_API void releaseFrameLocal(const uint32_t frameNumber)
Signal the release of the local synchronization to the parent.
EQ_API const Window * getSharedContextWindow() const
util::ObjectManager & getObjectManager()
const SystemWindow * getSystemWindow() const