|
@@ -30,6 +30,7 @@
|
|
|
|
|
|
#include "os_uwp.h"
|
|
#include "os_uwp.h"
|
|
|
|
|
|
|
|
+#include "drivers/gles2/rasterizer_gles2.h"
|
|
#include "drivers/gles3/rasterizer_gles3.h"
|
|
#include "drivers/gles3/rasterizer_gles3.h"
|
|
#include "drivers/unix/ip_unix.h"
|
|
#include "drivers/unix/ip_unix.h"
|
|
#include "drivers/windows/dir_access_windows.h"
|
|
#include "drivers/windows/dir_access_windows.h"
|
|
@@ -66,12 +67,7 @@ using namespace Windows::ApplicationModel::DataTransfer;
|
|
using namespace concurrency;
|
|
using namespace concurrency;
|
|
|
|
|
|
int OSUWP::get_video_driver_count() const {
|
|
int OSUWP::get_video_driver_count() const {
|
|
-
|
|
|
|
- return 1;
|
|
|
|
-}
|
|
|
|
-const char *OSUWP::get_video_driver_name(int p_driver) const {
|
|
|
|
-
|
|
|
|
- return "GLES3";
|
|
|
|
|
|
+ return 2;
|
|
}
|
|
}
|
|
|
|
|
|
Size2 OSUWP::get_window_size() const {
|
|
Size2 OSUWP::get_window_size() const {
|
|
@@ -133,18 +129,6 @@ void OSUWP::set_keep_screen_on(bool p_enabled) {
|
|
OS::set_keep_screen_on(p_enabled);
|
|
OS::set_keep_screen_on(p_enabled);
|
|
}
|
|
}
|
|
|
|
|
|
-int OSUWP::get_audio_driver_count() const {
|
|
|
|
-
|
|
|
|
- return AudioDriverManager::get_driver_count();
|
|
|
|
-}
|
|
|
|
-
|
|
|
|
-const char *OSUWP::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();
|
|
|
|
-}
|
|
|
|
-
|
|
|
|
void OSUWP::initialize_core() {
|
|
void OSUWP::initialize_core() {
|
|
|
|
|
|
last_button_state = 0;
|
|
last_button_state = 0;
|
|
@@ -185,10 +169,9 @@ bool OSUWP::can_draw() const {
|
|
return !minimized;
|
|
return !minimized;
|
|
};
|
|
};
|
|
|
|
|
|
-void OSUWP::set_gl_context(ContextEGL *p_context) {
|
|
|
|
-
|
|
|
|
- gl_context = p_context;
|
|
|
|
-};
|
|
|
|
|
|
+void OSUWP::set_window(Windows::UI::Core::CoreWindow ^ p_window) {
|
|
|
|
+ window = p_window;
|
|
|
|
+}
|
|
|
|
|
|
void OSUWP::screen_size_changed() {
|
|
void OSUWP::screen_size_changed() {
|
|
|
|
|
|
@@ -200,6 +183,11 @@ Error OSUWP::initialize(const VideoMode &p_desired, int p_video_driver, int p_au
|
|
main_loop = NULL;
|
|
main_loop = NULL;
|
|
outside = true;
|
|
outside = true;
|
|
|
|
|
|
|
|
+ if (p_video_driver == VIDEO_DRIVER_GLES2) {
|
|
|
|
+ gl_context = memnew(ContextEGL(window, ContextEGL::GLES_2_0));
|
|
|
|
+ } else {
|
|
|
|
+ gl_context = memnew(ContextEGL(window, ContextEGL::GLES_3_0));
|
|
|
|
+ }
|
|
gl_context->initialize();
|
|
gl_context->initialize();
|
|
VideoMode vm;
|
|
VideoMode vm;
|
|
vm.width = gl_context->get_window_width();
|
|
vm.width = gl_context->get_window_width();
|
|
@@ -240,8 +228,13 @@ Error OSUWP::initialize(const VideoMode &p_desired, int p_video_driver, int p_au
|
|
|
|
|
|
gl_context->make_current();
|
|
gl_context->make_current();
|
|
|
|
|
|
- RasterizerGLES3::register_config();
|
|
|
|
- RasterizerGLES3::make_current();
|
|
|
|
|
|
+ if (p_video_driver == VIDEO_DRIVER_GLES2) {
|
|
|
|
+ RasterizerGLES2::register_config();
|
|
|
|
+ RasterizerGLES2::make_current();
|
|
|
|
+ } else {
|
|
|
|
+ RasterizerGLES3::register_config();
|
|
|
|
+ RasterizerGLES3::make_current();
|
|
|
|
+ }
|
|
gl_context->set_use_vsync(vm.use_vsync);
|
|
gl_context->set_use_vsync(vm.use_vsync);
|
|
|
|
|
|
visual_server = memnew(VisualServerRaster);
|
|
visual_server = memnew(VisualServerRaster);
|