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