summaryrefslogtreecommitdiff
path: root/platform/haiku/os_haiku.h
blob: dfe559c969a6a16aa1dc50b7984bfaebb6086401 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
#ifndef OS_HAIKU_H
#define OS_HAIKU_H

#include "drivers/unix/os_unix.h"
#include "servers/visual_server.h"
#include "servers/visual/rasterizer.h"

class OS_Haiku : public OS_Unix {
private:
	MainLoop* main_loop;
	Rasterizer* rasterizer;
	VisualServer* visual_server;
	VideoMode current_video_mode;

	virtual void delete_main_loop();

protected:
	virtual int get_video_driver_count() const;
	virtual const char* get_video_driver_name(int p_driver) const;	
	virtual VideoMode get_default_video_mode() const;

	virtual void initialize(const VideoMode& p_desired, int p_video_driver, int p_audio_driver);
	virtual void finalize();

	virtual void set_main_loop(MainLoop* p_main_loop);

public:
	OS_Haiku();
	void run();

	virtual String get_name();

	virtual MainLoop* get_main_loop() const;
	virtual bool can_draw() const;

	virtual Point2 get_mouse_pos() const;
	virtual int get_mouse_button_state() const;
	virtual void set_cursor_shape(CursorShape p_shape);

	virtual void set_window_title(const String& p_title);
	virtual Size2 get_window_size() const;

	virtual void set_video_mode(const VideoMode& p_video_mode, int p_screen=0);
	virtual VideoMode get_video_mode(int p_screen=0) const;
	virtual void get_fullscreen_mode_list(List<VideoMode> *p_list, int p_screen=0) const;
	virtual String get_executable_path() const;
};

#endif