#ifndef X11_OPENGL_WINDOW_H #define X11_OPENGL_WINDOW_H #define b3gDefaultOpenGLWindow X11OpenGLWindow #include "../CommonInterfaces/CommonWindowInterface.h" class X11OpenGLWindow : public CommonWindowInterface { struct InternalData2* m_data; bool m_OpenGLInitialized; bool m_requestedExit; protected: void enableOpenGL(); void disableOpenGL(); void pumpMessage(); int getAsciiCodeFromVirtualKeycode(int orgCode); public: X11OpenGLWindow(); virtual ~X11OpenGLWindow(); virtual void createWindow(const b3gWindowConstructionInfo& ci); virtual void closeWindow(); virtual void startRendering(); virtual void renderAllObjects(); virtual void endRendering(); virtual float getRetinaScale() const { return 1.f; } virtual void setAllowRetina(bool /*allowRetina*/){}; virtual void runMainLoop(); virtual float getTimeInSeconds(); virtual bool requestedExit() const; virtual void setRequestExit(); virtual bool isModifierKeyPressed(int key); virtual void setMouseMoveCallback(b3MouseMoveCallback mouseCallback); virtual void setMouseButtonCallback(b3MouseButtonCallback mouseCallback); virtual void setResizeCallback(b3ResizeCallback resizeCallback); virtual void setWheelCallback(b3WheelCallback wheelCallback); virtual void setKeyboardCallback(b3KeyboardCallback keyboardCallback); virtual b3MouseMoveCallback getMouseMoveCallback(); virtual b3MouseButtonCallback getMouseButtonCallback(); virtual b3ResizeCallback getResizeCallback(); virtual b3WheelCallback getWheelCallback(); virtual b3KeyboardCallback getKeyboardCallback(); virtual void setRenderCallback(b3RenderCallback renderCallback); virtual void setWindowTitle(const char* title); virtual int getWidth() const; virtual int getHeight() const; int fileOpenDialog(char* filename, int maxNameLength); }; #endif