20 #ifndef EQ_GLX_WINDOW_H
21 #define EQ_GLX_WINDOW_H
23 #include <eq/glx/types.h>
24 #include <eq/glWindow.h>
30 namespace detail {
class Window; }
49 # pragma clang diagnostic push
50 # pragma clang diagnostic ignored "-Woverloaded-virtual"
53 # pragma clang diagnostic pop
65 Display* xDisplay,
const GLXEWContext* glxewContext,
197 void makeCurrent(
const bool cache =
true )
const override;
204 const uint32_t barrier )
override;
214 detail::Window*
const _impl;
217 XID _createGLXWindow( GLXFBConfig* fbConfig,
const PixelViewport& pvp );
220 void _initSwapSync();
224 #endif // EQ_GLX_WINDOW_H
EQ_API bool processEvent(const WindowEvent &event) override
virtual Display * getXDisplay()=0
bool configInit() override
Initialize this window for the glX window system.
virtual bool processEvent(const WindowEvent &event)=0
Process the given event.
Equalizer default implementation of a glX window.
void joinNVSwapBarrier(const uint32_t group, const uint32_t barrier) override
Implementation untested for glX.
virtual GLXFBConfig * chooseGLXFBConfig()
Choose a GLX framebuffer config based on the window's attributes.
A message pump receiving and dispatching X11 events.
virtual bool configInitGLXWindow(GLXFBConfig *fbConfig)
Initialize the window with a window and bind the glX context.
EQ_API Display * getXDisplay() override
void leaveNVSwapBarrier()
Unbind a GLX_NV_swap_barrier.
virtual GLXContext createGLXContext(GLXFBConfig *fbConfig)
Create a glX context.
A set of settings to setup an eq::SystemWindow.
EQ_API XID getXDrawable() const override
virtual bool configInitGLXDrawable(GLXFBConfig *fbConfig)
Initialize the window's drawable (fullscreen, pbuffer or window) and bind the glX context...
void makeCurrent(const bool cache=true) const override
EQ_API const GLXEWContext * glxewGetContext() const
Window(NotifierInterface &parent, const WindowSettings &settings, Display *xDisplay, const GLXEWContext *glxewContext, MessagePump *messagePump)
Construct a new glX/X11 system window.
virtual EQ_API void exitEventHandler()
Deregister with the GLXEventHandler, called by setXDrawable().
EQ_API GLWindow(NotifierInterface &parent, const WindowSettings &settings)
Construct a new OpenGL window.
virtual bool configInitGLXPBuffer(GLXFBConfig *fbConfig)
Initialize the window with a PBuffer and bind the glX context.
A system window for OpenGL rendering.
A base class for notifying errors and events.
virtual ~Window()
Destruct this glX window.
virtual EQ_API void initEventHandler()
Register with the pipe's GLXEventHandler, called by setXDrawable().
virtual XID getXDrawable() const =0
virtual void setGLXContext(GLXContext context)
Set the glX rendering context for this window.
A window-system event for a glx::WindowIF.
void configExit() override
The interface defining the minimum functionality for a glX window.
EQ_API GLXContext getGLXContext() const override
virtual GLXContext getGLXContext() const =0
void swapBuffers() override
virtual void setXDrawable(XID drawable)
Set the X11 drawable ID for this window.