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