CommonWindowInterface.h 2.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788
  1. #ifndef B3G_WINDOW_INTERFACE_H
  2. #define B3G_WINDOW_INTERFACE_H
  3. #include "CommonCallbacks.h"
  4. struct b3gWindowConstructionInfo
  5. {
  6. int m_width;
  7. int m_height;
  8. bool m_fullscreen;
  9. int m_colorBitsPerPixel;
  10. void* m_windowHandle;
  11. const char* m_title;
  12. int m_openglVersion;
  13. int m_renderDevice;
  14. b3gWindowConstructionInfo(int width = 1024, int height = 768)
  15. : m_width(width),
  16. m_height(height),
  17. m_fullscreen(false),
  18. m_colorBitsPerPixel(32),
  19. m_windowHandle(0),
  20. m_title("title"),
  21. m_openglVersion(3),
  22. m_renderDevice(-1)
  23. {
  24. }
  25. };
  26. class CommonWindowInterface
  27. {
  28. public:
  29. virtual ~CommonWindowInterface()
  30. {
  31. }
  32. virtual void createDefaultWindow(int width, int height, const char* title)
  33. {
  34. b3gWindowConstructionInfo ci(width, height);
  35. ci.m_title = title;
  36. createWindow(ci);
  37. }
  38. virtual void createWindow(const b3gWindowConstructionInfo& ci) = 0;
  39. virtual void closeWindow() = 0;
  40. virtual void runMainLoop() = 0;
  41. virtual float getTimeInSeconds() = 0;
  42. virtual bool requestedExit() const = 0;
  43. virtual void setRequestExit() = 0;
  44. virtual void startRendering() = 0;
  45. virtual void endRendering() = 0;
  46. virtual bool isModifierKeyPressed(int key) = 0;
  47. virtual void setMouseMoveCallback(b3MouseMoveCallback mouseCallback) = 0;
  48. virtual b3MouseMoveCallback getMouseMoveCallback() = 0;
  49. virtual void setMouseButtonCallback(b3MouseButtonCallback mouseCallback) = 0;
  50. virtual b3MouseButtonCallback getMouseButtonCallback() = 0;
  51. virtual void setResizeCallback(b3ResizeCallback resizeCallback) = 0;
  52. virtual b3ResizeCallback getResizeCallback() = 0;
  53. virtual void setWheelCallback(b3WheelCallback wheelCallback) = 0;
  54. virtual b3WheelCallback getWheelCallback() = 0;
  55. virtual void setKeyboardCallback(b3KeyboardCallback keyboardCallback) = 0;
  56. virtual b3KeyboardCallback getKeyboardCallback() = 0;
  57. virtual void setRenderCallback(b3RenderCallback renderCallback) = 0;
  58. virtual void setWindowTitle(const char* title) = 0;
  59. virtual float getRetinaScale() const = 0;
  60. virtual void setAllowRetina(bool allow) = 0;
  61. virtual int getWidth() const = 0;
  62. virtual int getHeight() const = 0;
  63. virtual int fileOpenDialog(char* fileName, int maxFileNameLength) = 0;
  64. };
  65. #endif //B3G_WINDOW_INTERFACE_H