diff options
Diffstat (limited to 'core/os/os.h')
| -rw-r--r-- | core/os/os.h | 80 |
1 files changed, 73 insertions, 7 deletions
diff --git a/core/os/os.h b/core/os/os.h index 24e2b4f2d4..e908177df7 100644 --- a/core/os/os.h +++ b/core/os/os.h @@ -5,7 +5,7 @@ /* GODOT ENGINE */ /* http://www.godotengine.org */ /*************************************************************************/ -/* Copyright (c) 2007-2014 Juan Linietsky, Ariel Manzur. */ +/* Copyright (c) 2007-2015 Juan Linietsky, Ariel Manzur. */ /* */ /* Permission is hereby granted, free of charge, to any person obtaining */ /* a copy of this software and associated documentation files (the */ @@ -34,6 +34,7 @@ #include "vector.h" #include "os/main_loop.h" #include <stdarg.h> + /** @author Juan Linietsky <reduzio@gmail.com> */ @@ -50,11 +51,14 @@ class OS { String _local_clipboard; uint64_t frames_drawn; uint32_t _frame_delay; + uint64_t _msec_splash; bool _no_window; int _exit_code; int _orientation; float _fps; int _target_fps; + float _time_scale; + bool _pixel_snap; char *last_error; @@ -71,7 +75,7 @@ public: bool fullscreen; bool resizable; float get_aspect() const { return (float)width/(float)height; } - VideoMode(int p_width=640,int p_height=480,bool p_fullscreen=false, bool p_resizable = true) { width=p_width; height=p_height; fullscreen=p_fullscreen; resizable = p_resizable; } + VideoMode(int p_width=640,int p_height=480,bool p_fullscreen=false, bool p_resizable = true) {width=p_width; height=p_height; fullscreen=p_fullscreen; resizable = p_resizable; } }; protected: friend class Main; @@ -136,6 +140,7 @@ public: virtual MouseMode get_mouse_mode() const; + virtual void warp_mouse_pos(const Point2& p_to) {} virtual Point2 get_mouse_pos() const=0; virtual int get_mouse_button_state() const=0; virtual void set_window_title(const String& p_title)=0; @@ -146,7 +151,27 @@ public: virtual void set_video_mode(const VideoMode& p_video_mode,int p_screen=0)=0; virtual VideoMode get_video_mode(int p_screen=0) const=0; virtual void get_fullscreen_mode_list(List<VideoMode> *p_list,int p_screen=0) const=0; - + + + virtual int get_screen_count() const{ return 1; } + virtual int get_current_screen() const { return 0; } + virtual void set_current_screen(int p_screen) { } + virtual Point2 get_screen_position(int p_screen=0) const { return Point2(); } + virtual Size2 get_screen_size(int p_screen=0) const { return get_window_size(); } + virtual Point2 get_window_position() const { return Vector2(); } + virtual void set_window_position(const Point2& p_position) {} + virtual Size2 get_window_size() const=0; + virtual void set_window_size(const Size2 p_size){} + virtual void set_window_fullscreen(bool p_enabled) {} + virtual bool is_window_fullscreen() const { return true; } + virtual void set_window_resizable(bool p_enabled) {} + virtual bool is_window_resizable() const { return false; } + virtual void set_window_minimized(bool p_enabled) {} + virtual bool is_window_minimized() const { return false; } + virtual void set_window_maximized(bool p_enabled) {} + virtual bool is_window_maximized() const { return true; } + + virtual void set_iterations_per_second(int p_ips); virtual int get_iterations_per_second() const; @@ -159,6 +184,7 @@ public: virtual void set_low_processor_usage_mode(bool p_enabled); virtual bool is_in_low_processor_usage_mode() const; + virtual String get_installed_templates_path() const { return ""; }; virtual String get_executable_path() const; virtual Error execute(const String& p_path, const List<String>& p_arguments,bool p_blocking,ProcessID *r_child_id=NULL,String* r_pipe=NULL,int *r_exitcode=NULL)=0; virtual Error kill(const ProcessID& p_pid)=0; @@ -220,14 +246,22 @@ public: int min; int sec; }; - - virtual Date get_date() const=0; - virtual Time get_time() const=0; + + struct TimeZoneInfo { + int bias; + String name; + }; + + virtual Date get_date(bool local=false) const=0; + virtual Time get_time(bool local=false) const=0; + virtual TimeZoneInfo get_time_zone_info() const=0; virtual uint64_t get_unix_time() const; + virtual uint64_t get_system_time_msec() const; virtual void delay_usec(uint32_t p_usec) const=0; virtual uint64_t get_ticks_usec() const=0; uint32_t get_ticks_msec() const; + uint64_t get_splash_tick_msec() const; void set_frame_delay(uint32_t p_msec); uint32_t get_frame_delay() const; @@ -284,6 +318,20 @@ public: virtual String get_data_dir() const; virtual String get_resource_dir() const; + enum SystemDir { + SYSTEM_DIR_DESKTOP, + SYSTEM_DIR_DCIM, + SYSTEM_DIR_DOCUMENTS, + SYSTEM_DIR_DOWNLOADS, + SYSTEM_DIR_MOVIES, + SYSTEM_DIR_MUSIC, + SYSTEM_DIR_PICTURES, + SYSTEM_DIR_RINGTONES, + }; + + virtual String get_system_dir(SystemDir p_dir) const; + + virtual void set_no_window_mode(bool p_enable); virtual bool is_no_window_mode_enabled() const; @@ -321,7 +369,7 @@ public: virtual String get_unique_ID() const; - virtual Error native_video_play(String p_path, float p_volume); + virtual Error native_video_play(String p_path, float p_volume, String p_audio_track, String p_subtitle_track); virtual bool native_video_is_playing() const; virtual void native_video_pause(); virtual void native_video_stop(); @@ -331,6 +379,24 @@ public: virtual Error dialog_show(String p_title, String p_description, Vector<String> p_buttons, Object* p_obj, String p_callback); virtual Error dialog_input_text(String p_title, String p_description, String p_partial, Object* p_obj, String p_callback); + + enum LatinKeyboardVariant { + LATIN_KEYBOARD_QWERTY, + LATIN_KEYBOARD_QWERTZ, + LATIN_KEYBOARD_AZERTY, + LATIN_KEYBOARD_QZERTY, + LATIN_KEYBOARD_DVORAK, + LATIN_KEYBOARD_NEO, + }; + + + virtual LatinKeyboardVariant get_latin_keyboard_variant() const; + + void set_time_scale(float p_scale); + float get_time_scale() const; + + _FORCE_INLINE_ bool get_use_pixel_snap() const { return _pixel_snap; } + OS(); virtual ~OS(); |