1 #ifndef MAC_OPENGL_WINDOW_H
2 #define MAC_OPENGL_WINDOW_H
3 
4 #include "CommonWindowInterface.h"
5 
6 #define b3gDefaultOpenGLWindow MacOpenGLWindow
7 
8 class MacOpenGLWindow : public CommonWindowInterface
9 {
10     struct MacOpenGLWindowInternalData* m_internalData;
11     float m_mouseX;
12     float m_mouseY;
13    int m_modifierFlags;
14 
15     b3MouseButtonCallback m_mouseButtonCallback;
16     b3MouseMoveCallback m_mouseMoveCallback;
17     b3WheelCallback m_wheelCallback;
18     b3KeyboardCallback m_keyboardCallback;
19 	b3RenderCallback m_renderCallback;
20 
21     float m_retinaScaleFactor;
22 	bool m_allowRetina;
23 
24 public:
25 
26     MacOpenGLWindow();
27     virtual ~MacOpenGLWindow();
28 
29     void init(int width, int height, const char* windowTitle);
30 
31     void closeWindow();
32 
33     void startRendering();
34 
35     void endRendering();//swap buffers
36 
37   	virtual bool	requestedExit() const;
38 
39 	virtual	void	setRequestExit();
40 
41     void getMouseCoordinates(int& x, int& y);
42 
43     void runMainLoop();
44 
45      virtual bool    isModifierKeyPressed(int key);
46 
setMouseButtonCallback(b3MouseButtonCallback mouseCallback)47     void setMouseButtonCallback(b3MouseButtonCallback	mouseCallback)
48     {
49         m_mouseButtonCallback = mouseCallback;
50     }
51 
setMouseMoveCallback(b3MouseMoveCallback mouseCallback)52     void setMouseMoveCallback(b3MouseMoveCallback	mouseCallback)
53     {
54         m_mouseMoveCallback = mouseCallback;
55     }
56 
57     void setResizeCallback(b3ResizeCallback resizeCallback);
58 
59 
setKeyboardCallback(b3KeyboardCallback keyboardCallback)60 	void setKeyboardCallback( b3KeyboardCallback	keyboardCallback)
61     {
62         m_keyboardCallback = keyboardCallback;
63     }
64 
getMouseMoveCallback()65 	virtual b3MouseMoveCallback getMouseMoveCallback()
66 	{
67 		return m_mouseMoveCallback;
68 	}
getMouseButtonCallback()69 	virtual b3MouseButtonCallback getMouseButtonCallback()
70 	{
71 		return m_mouseButtonCallback;
72 	}
73 	virtual b3ResizeCallback getResizeCallback();
74 
getWheelCallback()75 	virtual b3WheelCallback getWheelCallback()
76 	{
77 		return m_wheelCallback;
78 	}
79 
getKeyboardCallback()80     b3KeyboardCallback getKeyboardCallback()
81 	{
82 		return m_keyboardCallback;
83 	}
84 
setWheelCallback(b3WheelCallback wheelCallback)85 	void setWheelCallback (b3WheelCallback wheelCallback)
86     {
87         m_wheelCallback = wheelCallback;
88     }
89 
getRetinaScale()90     float getRetinaScale() const
91     {
92         return m_retinaScaleFactor;
93     }
setAllowRetina(bool allow)94 	virtual	void	setAllowRetina(bool allow)
95 	{
96 		m_allowRetina = allow;
97 	}
98 
99 	virtual	void	createWindow(const b3gWindowConstructionInfo& ci);
100 
101 	virtual	float	getTimeInSeconds();
102 
103 
104     virtual int   getWidth() const;
105     virtual int   getHeight() const;
106 
107 
108 	virtual void setRenderCallback( b3RenderCallback renderCallback);
109 
110 	virtual void setWindowTitle(const char* title);
111 
112     int fileOpenDialog(char* filename, int maxNameLength);
113 
114 };
115 
116 
117 #endif
118 
119