summaryrefslogtreecommitdiff
path: root/graphics/asymptote/tinyexr/examples/exrview/OpenGLWindow/MacOpenGLWindow.h
diff options
context:
space:
mode:
Diffstat (limited to 'graphics/asymptote/tinyexr/examples/exrview/OpenGLWindow/MacOpenGLWindow.h')
-rw-r--r--graphics/asymptote/tinyexr/examples/exrview/OpenGLWindow/MacOpenGLWindow.h118
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
+