os_haiku.h 2.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  1. #ifndef OS_HAIKU_H
  2. #define OS_HAIKU_H
  3. #include "os/input.h"
  4. #include "drivers/unix/os_unix.h"
  5. #include "servers/visual_server.h"
  6. #include "servers/visual/rasterizer.h"
  7. #include "servers/physics_server.h"
  8. #include "servers/physics_2d/physics_2d_server_sw.h"
  9. #include "servers/audio/audio_server_sw.h"
  10. #include "servers/audio/sample_manager_sw.h"
  11. #include "servers/spatial_sound/spatial_sound_server_sw.h"
  12. #include "servers/spatial_sound_2d/spatial_sound_2d_server_sw.h"
  13. #include "servers/audio/audio_driver_dummy.h"
  14. #include "context_gl_haiku.h"
  15. #include "haiku_application.h"
  16. #include "haiku_direct_window.h"
  17. class OS_Haiku : public OS_Unix {
  18. private:
  19. HaikuApplication* app;
  20. HaikuDirectWindow* window;
  21. MainLoop* main_loop;
  22. InputDefault* input;
  23. Rasterizer* rasterizer;
  24. VisualServer* visual_server;
  25. VideoMode current_video_mode;
  26. PhysicsServer* physics_server;
  27. Physics2DServer* physics_2d_server;
  28. AudioServerSW* audio_server;
  29. SampleManagerMallocSW* sample_manager;
  30. SpatialSoundServerSW* spatial_sound_server;
  31. SpatialSound2DServerSW* spatial_sound_2d_server;
  32. AudioDriverDummy driver_dummy; // TODO: use a real driver
  33. #if defined(OPENGL_ENABLED) || defined(LEGACYGL_ENABLED)
  34. ContextGL_Haiku* context_gl;
  35. #endif
  36. virtual void delete_main_loop();
  37. protected:
  38. virtual int get_video_driver_count() const;
  39. virtual const char* get_video_driver_name(int p_driver) const;
  40. virtual VideoMode get_default_video_mode() const;
  41. virtual void initialize(const VideoMode& p_desired, int p_video_driver, int p_audio_driver);
  42. virtual void finalize();
  43. virtual void set_main_loop(MainLoop* p_main_loop);
  44. public:
  45. OS_Haiku();
  46. void run();
  47. virtual String get_name();
  48. virtual MainLoop* get_main_loop() const;
  49. virtual bool can_draw() const;
  50. virtual void release_rendering_thread();
  51. virtual void make_rendering_thread();
  52. virtual void swap_buffers();
  53. virtual Point2 get_mouse_pos() const;
  54. virtual int get_mouse_button_state() const;
  55. virtual void set_cursor_shape(CursorShape p_shape);
  56. virtual void set_window_title(const String& p_title);
  57. virtual Size2 get_window_size() const;
  58. virtual Point2 get_window_position() const;
  59. virtual void set_window_position(const Point2& p_position);
  60. virtual void set_video_mode(const VideoMode& p_video_mode, int p_screen=0);
  61. virtual VideoMode get_video_mode(int p_screen=0) const;
  62. virtual void get_fullscreen_mode_list(List<VideoMode> *p_list, int p_screen=0) const;
  63. virtual String get_executable_path() const;
  64. };
  65. #endif