|
|
- #ifndef B3G_WINDOW_INTERFACE_H
- #define B3G_WINDOW_INTERFACE_H
-
-
- typedef void (*b3WheelCallback)(float deltax, float deltay);
- typedef void (*b3ResizeCallback)( float width, float height);
- typedef void (*b3MouseMoveCallback)( float x, float y);
- typedef void (*b3MouseButtonCallback)(int button, int state, float x, float y);
- typedef void (*b3KeyboardCallback)(int keycode, int state);
- typedef void (*b3RenderCallback) ();
-
- enum {
- B3G_ESCAPE = 27,
- B3G_F1 = 0xff00,
- B3G_F2,
- B3G_F3,
- B3G_F4,
- B3G_F5,
- B3G_F6,
- B3G_F7,
- B3G_F8,
- B3G_F9,
- B3G_F10,
- B3G_F11,
- B3G_F12,
- B3G_F13,
- B3G_F14,
- B3G_F15,
- B3G_LEFT_ARROW,
- B3G_RIGHT_ARROW,
- B3G_UP_ARROW,
- B3G_DOWN_ARROW,
- B3G_PAGE_UP,
- B3G_PAGE_DOWN,
- B3G_END,
- B3G_HOME,
- B3G_INSERT,
- B3G_DELETE,
- B3G_BACKSPACE,
- B3G_SHIFT,
- B3G_CONTROL,
- B3G_ALT,
- B3G_RETURN
- };
-
- struct b3gWindowConstructionInfo
- {
- int m_width;
- int m_height;
- bool m_fullscreen;
- int m_colorBitsPerPixel;
- void* m_windowHandle;
- const char* m_title;
- int m_openglVersion;
-
-
- b3gWindowConstructionInfo(int width=1024, int height=768)
- :m_width(width),
- m_height(height),
- m_fullscreen(false),
- m_colorBitsPerPixel(32),
- m_windowHandle(0),
- m_title("title"),
- m_openglVersion(3)
- {
- }
- };
-
-
- class CommonWindowInterface
- {
- public:
-
- virtual ~CommonWindowInterface()
- {
- }
-
- virtual void createDefaultWindow(int width, int height, const char* title)
- {
- b3gWindowConstructionInfo ci(width,height);
- ci.m_title = title;
- createWindow(ci);
- }
-
- virtual void createWindow(const b3gWindowConstructionInfo& ci)=0;
-
- virtual void closeWindow()=0;
-
- virtual void runMainLoop()=0;
- virtual float getTimeInSeconds()=0;
-
- virtual bool requestedExit() const = 0;
- virtual void setRequestExit() = 0;
-
- virtual void startRendering()=0;
-
- virtual void endRendering()=0;
-
- virtual bool isModifierKeyPressed(int key) = 0;
-
- virtual void setMouseMoveCallback(b3MouseMoveCallback mouseCallback)=0;
- virtual b3MouseMoveCallback getMouseMoveCallback()=0;
-
- virtual void setMouseButtonCallback(b3MouseButtonCallback mouseCallback)=0;
- virtual b3MouseButtonCallback getMouseButtonCallback()=0;
-
- virtual void setResizeCallback(b3ResizeCallback resizeCallback)=0;
- virtual b3ResizeCallback getResizeCallback()=0;
-
- virtual void setWheelCallback(b3WheelCallback wheelCallback)=0;
- virtual b3WheelCallback getWheelCallback()=0;
-
- virtual void setKeyboardCallback( b3KeyboardCallback keyboardCallback)=0;
- virtual b3KeyboardCallback getKeyboardCallback()=0;
-
- virtual void setRenderCallback( b3RenderCallback renderCallback) = 0;
-
- virtual void setWindowTitle(const char* title)=0;
-
- virtual float getRetinaScale() const =0;
- virtual void setAllowRetina(bool allow) =0;
-
- virtual int getWidth() const = 0;
- virtual int getHeight() const = 0;
-
- virtual int fileOpenDialog(char* fileName, int maxFileNameLength) = 0;
-
- };
-
- #endif //B3G_WINDOW_INTERFACE_H
|