diff options
author | RĂ©mi Verschelde <rverschelde@gmail.com> | 2018-03-05 10:50:35 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-03-05 10:50:35 +0100 |
commit | b3f43496a503096e52d6e3f7522a24b251e7bc98 (patch) | |
tree | 6fbafc2f88cc50525a261581112f25abf9887498 /core/os | |
parent | 6a6aab498eab5d35621079aa6b0548e74e00dcb6 (diff) | |
parent | d780d774aa4630302fddbef0516e3f96beacd7b5 (diff) |
Merge pull request #17256 from marcelofg55/drivers_funcs
Clean and expose get_audio/video_driver_* funcs on OS class
Diffstat (limited to 'core/os')
-rw-r--r-- | core/os/os.cpp | 29 | ||||
-rw-r--r-- | core/os/os.h | 17 |
2 files changed, 40 insertions, 6 deletions
diff --git a/core/os/os.cpp b/core/os/os.cpp index 422acf95dc..618a4bbac3 100644 --- a/core/os/os.cpp +++ b/core/os/os.cpp @@ -34,6 +34,7 @@ #include "input.h" #include "os/file_access.h" #include "project_settings.h" +#include "servers/audio_server.h" #include "version_generated.gen.h" #include <stdarg.h> @@ -627,6 +628,34 @@ void OS::center_window() { set_window_position(Vector2(x, y)); } +int OS::get_video_driver_count() const { + + return 2; +} + +const char *OS::get_video_driver_name(int p_driver) const { + + switch (p_driver) { + case VIDEO_DRIVER_GLES2: + return "GLES2"; + case VIDEO_DRIVER_GLES3: + default: + return "GLES3"; + } +} + +int OS::get_audio_driver_count() const { + + return AudioDriverManager::get_driver_count(); +} + +const char *OS::get_audio_driver_name(int p_driver) const { + + AudioDriver *driver = AudioDriverManager::get_driver(p_driver); + ERR_FAIL_COND_V(!driver, ""); + return AudioDriverManager::get_driver(p_driver)->get_name(); +} + OS::OS() { void *volatile stack_bottom; diff --git a/core/os/os.h b/core/os/os.h index 38e55fa3b7..f8033c2546 100644 --- a/core/os/os.h +++ b/core/os/os.h @@ -44,6 +44,11 @@ @author Juan Linietsky <reduzio@gmail.com> */ +enum VideoDriver { + VIDEO_DRIVER_GLES3, + VIDEO_DRIVER_GLES2 +}; + class OS { static OS *singleton; @@ -115,12 +120,6 @@ protected: RenderThreadMode _render_thread_mode; // functions used by main to initialize/deintialize the OS - virtual int get_video_driver_count() const = 0; - virtual const char *get_video_driver_name(int p_driver) const = 0; - - virtual int get_audio_driver_count() const = 0; - virtual const char *get_audio_driver_name(int p_driver) const = 0; - void add_logger(Logger *p_logger); virtual void initialize_core() = 0; @@ -175,6 +174,12 @@ public: 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_video_driver_count() const; + virtual const char *get_video_driver_name(int p_driver) const; + + virtual int get_audio_driver_count() const; + virtual const char *get_audio_driver_name(int p_driver) const; + virtual int get_screen_count() const { return 1; } virtual int get_current_screen() const { return 0; } virtual void set_current_screen(int p_screen) {} |