diff options
Diffstat (limited to 'graphics/asymptote/tinyexr/examples/exrview/OpenGLWindow/MacOpenGLWindow.h')
-rw-r--r-- | graphics/asymptote/tinyexr/examples/exrview/OpenGLWindow/MacOpenGLWindow.h | 118 |
1 files changed, 118 insertions, 0 deletions
diff --git a/graphics/asymptote/tinyexr/examples/exrview/OpenGLWindow/MacOpenGLWindow.h b/graphics/asymptote/tinyexr/examples/exrview/OpenGLWindow/MacOpenGLWindow.h new file mode 100644 index 0000000000..0d61f67567 --- /dev/null +++ b/graphics/asymptote/tinyexr/examples/exrview/OpenGLWindow/MacOpenGLWindow.h @@ -0,0 +1,118 @@ +#ifndef MAC_OPENGL_WINDOW_H +#define MAC_OPENGL_WINDOW_H + +#include "CommonWindowInterface.h" + +#define b3gDefaultOpenGLWindow MacOpenGLWindow + +class MacOpenGLWindow : public CommonWindowInterface +{ + struct MacOpenGLWindowInternalData* m_internalData; + float m_mouseX; + float m_mouseY; + int m_modifierFlags; + + b3MouseButtonCallback m_mouseButtonCallback; + b3MouseMoveCallback m_mouseMoveCallback; + b3WheelCallback m_wheelCallback; + b3KeyboardCallback m_keyboardCallback; + b3RenderCallback m_renderCallback; + + float m_retinaScaleFactor; + bool m_allowRetina; + +public: + + MacOpenGLWindow(); + virtual ~MacOpenGLWindow(); + + void init(int width, int height, const char* windowTitle); + + void closeWindow(); + + void startRendering(); + + void endRendering();//swap buffers + + virtual bool requestedExit() const; + + virtual void setRequestExit(); + + void getMouseCoordinates(int& x, int& y); + + void runMainLoop(); + + virtual bool isModifierKeyPressed(int key); + + void setMouseButtonCallback(b3MouseButtonCallback mouseCallback) + { + m_mouseButtonCallback = mouseCallback; + } + + void setMouseMoveCallback(b3MouseMoveCallback mouseCallback) + { + m_mouseMoveCallback = mouseCallback; + } + + void setResizeCallback(b3ResizeCallback resizeCallback); + + + void setKeyboardCallback( b3KeyboardCallback keyboardCallback) + { + m_keyboardCallback = keyboardCallback; + } + + virtual b3MouseMoveCallback getMouseMoveCallback() + { + return m_mouseMoveCallback; + } + virtual b3MouseButtonCallback getMouseButtonCallback() + { + return m_mouseButtonCallback; + } + virtual b3ResizeCallback getResizeCallback(); + + virtual b3WheelCallback getWheelCallback() + { + return m_wheelCallback; + } + + b3KeyboardCallback getKeyboardCallback() + { + return m_keyboardCallback; + } + + void setWheelCallback (b3WheelCallback wheelCallback) + { + m_wheelCallback = wheelCallback; + } + + float getRetinaScale() const + { + return m_retinaScaleFactor; + } + virtual void setAllowRetina(bool allow) + { + m_allowRetina = allow; + } + + virtual void createWindow(const b3gWindowConstructionInfo& ci); + + virtual float getTimeInSeconds(); + + + virtual int getWidth() const; + virtual int getHeight() const; + + + virtual void setRenderCallback( b3RenderCallback renderCallback); + + virtual void setWindowTitle(const char* title); + + int fileOpenDialog(char* filename, int maxNameLength); + +}; + + +#endif + |