1 2 #ifndef GLFW_OPENGL_WINDOW_H 3 #define GLFW_OPENGL_WINDOW_H 4 5 #ifdef B3_USE_GLFW 6 7 #include "../CommonInterfaces/CommonWindowInterface.h" 8 9 #define b3gDefaultOpenGLWindow GLFWOpenGLWindow 10 11 class GLFWOpenGLWindow : public CommonWindowInterface 12 { 13 struct GLFWOpenGLWindowInternalData* m_data; 14 15 protected: 16 public: 17 GLFWOpenGLWindow(); 18 19 virtual ~GLFWOpenGLWindow(); 20 21 virtual void createDefaultWindow(int width, int height, const char* title); 22 23 virtual void createWindow(const b3gWindowConstructionInfo& ci); 24 25 virtual void closeWindow(); 26 27 virtual void runMainLoop(); 28 virtual float getTimeInSeconds(); 29 30 virtual bool requestedExit() const; 31 virtual void setRequestExit(); 32 33 virtual void startRendering(); 34 35 virtual void endRendering(); 36 37 virtual bool isModifierKeyPressed(int key); 38 39 virtual void setMouseMoveCallback(b3MouseMoveCallback mouseCallback); 40 virtual b3MouseMoveCallback getMouseMoveCallback(); 41 42 virtual void setMouseButtonCallback(b3MouseButtonCallback mouseCallback); 43 virtual b3MouseButtonCallback getMouseButtonCallback(); 44 45 virtual void setResizeCallback(b3ResizeCallback resizeCallback); 46 virtual b3ResizeCallback getResizeCallback(); 47 48 virtual void setWheelCallback(b3WheelCallback wheelCallback); 49 virtual b3WheelCallback getWheelCallback(); 50 51 virtual void setKeyboardCallback(b3KeyboardCallback keyboardCallback); 52 virtual b3KeyboardCallback getKeyboardCallback(); 53 54 virtual void setRenderCallback(b3RenderCallback renderCallback); 55 56 virtual void setWindowTitle(const char* title); 57 58 virtual float getRetinaScale() const; 59 virtual void setAllowRetina(bool allow); 60 61 virtual int getWidth() const; 62 virtual int getHeight() const; 63 64 virtual int fileOpenDialog(char* fileName, int maxFileNameLength); 65 66 void keyboardCallbackInternal(int key, int state); 67 void mouseButtonCallbackInternal(int button, int state); 68 void mouseCursorCallbackInternal(double xPos, double yPos); 69 void resizeInternal(int width, int height); 70 }; 71 #endif //B3_USE_GLFW 72 #endif //GLFW_OPENGL_WINDOW_H 73