|
@@ -67,22 +67,22 @@ using namespace Windows::Devices::Sensors;
|
|
using namespace Windows::ApplicationModel::DataTransfer;
|
|
using namespace Windows::ApplicationModel::DataTransfer;
|
|
using namespace concurrency;
|
|
using namespace concurrency;
|
|
|
|
|
|
-int OSUWP::get_video_driver_count() const {
|
|
|
|
|
|
+int OS_UWP::get_video_driver_count() const {
|
|
return 2;
|
|
return 2;
|
|
}
|
|
}
|
|
|
|
|
|
-Size2 OSUWP::get_window_size() const {
|
|
|
|
|
|
+Size2 OS_UWP::get_window_size() const {
|
|
Size2 size;
|
|
Size2 size;
|
|
size.width = video_mode.width;
|
|
size.width = video_mode.width;
|
|
size.height = video_mode.height;
|
|
size.height = video_mode.height;
|
|
return size;
|
|
return size;
|
|
}
|
|
}
|
|
|
|
|
|
-int OSUWP::get_current_video_driver() const {
|
|
|
|
|
|
+int OS_UWP::get_current_video_driver() const {
|
|
return video_driver_index;
|
|
return video_driver_index;
|
|
}
|
|
}
|
|
|
|
|
|
-void OSUWP::set_window_size(const Size2 p_size) {
|
|
|
|
|
|
+void OS_UWP::set_window_size(const Size2 p_size) {
|
|
|
|
|
|
Windows::Foundation::Size new_size;
|
|
Windows::Foundation::Size new_size;
|
|
new_size.Width = p_size.width;
|
|
new_size.Width = p_size.width;
|
|
@@ -97,7 +97,7 @@ void OSUWP::set_window_size(const Size2 p_size) {
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
-void OSUWP::set_window_fullscreen(bool p_enabled) {
|
|
|
|
|
|
+void OS_UWP::set_window_fullscreen(bool p_enabled) {
|
|
|
|
|
|
ApplicationView ^ view = ApplicationView::GetForCurrentView();
|
|
ApplicationView ^ view = ApplicationView::GetForCurrentView();
|
|
|
|
|
|
@@ -117,12 +117,12 @@ void OSUWP::set_window_fullscreen(bool p_enabled) {
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
-bool OSUWP::is_window_fullscreen() const {
|
|
|
|
|
|
+bool OS_UWP::is_window_fullscreen() const {
|
|
|
|
|
|
return ApplicationView::GetForCurrentView()->IsFullScreenMode;
|
|
return ApplicationView::GetForCurrentView()->IsFullScreenMode;
|
|
}
|
|
}
|
|
|
|
|
|
-void OSUWP::set_keep_screen_on(bool p_enabled) {
|
|
|
|
|
|
+void OS_UWP::set_keep_screen_on(bool p_enabled) {
|
|
|
|
|
|
if (is_keep_screen_on() == p_enabled) return;
|
|
if (is_keep_screen_on() == p_enabled) return;
|
|
|
|
|
|
@@ -134,7 +134,7 @@ void OSUWP::set_keep_screen_on(bool p_enabled) {
|
|
OS::set_keep_screen_on(p_enabled);
|
|
OS::set_keep_screen_on(p_enabled);
|
|
}
|
|
}
|
|
|
|
|
|
-void OSUWP::initialize_core() {
|
|
|
|
|
|
+void OS_UWP::initialize_core() {
|
|
|
|
|
|
last_button_state = 0;
|
|
last_button_state = 0;
|
|
|
|
|
|
@@ -167,36 +167,36 @@ void OSUWP::initialize_core() {
|
|
cursor_shape = CURSOR_ARROW;
|
|
cursor_shape = CURSOR_ARROW;
|
|
}
|
|
}
|
|
|
|
|
|
-bool OSUWP::can_draw() const {
|
|
|
|
|
|
+bool OS_UWP::can_draw() const {
|
|
|
|
|
|
return !minimized;
|
|
return !minimized;
|
|
};
|
|
};
|
|
|
|
|
|
-void OSUWP::set_window(Windows::UI::Core::CoreWindow ^ p_window) {
|
|
|
|
|
|
+void OS_UWP::set_window(Windows::UI::Core::CoreWindow ^ p_window) {
|
|
window = p_window;
|
|
window = p_window;
|
|
}
|
|
}
|
|
|
|
|
|
-void OSUWP::screen_size_changed() {
|
|
|
|
|
|
+void OS_UWP::screen_size_changed() {
|
|
|
|
|
|
gl_context->reset();
|
|
gl_context->reset();
|
|
};
|
|
};
|
|
|
|
|
|
-Error OSUWP::initialize(const VideoMode &p_desired, int p_video_driver, int p_audio_driver) {
|
|
|
|
|
|
+Error OS_UWP::initialize(const VideoMode &p_desired, int p_video_driver, int p_audio_driver) {
|
|
|
|
|
|
main_loop = NULL;
|
|
main_loop = NULL;
|
|
outside = true;
|
|
outside = true;
|
|
|
|
|
|
- ContextEGL::Driver opengl_api_type = ContextEGL::GLES_2_0;
|
|
|
|
|
|
+ ContextEGL_UWP::Driver opengl_api_type = ContextEGL_UWP::GLES_2_0;
|
|
|
|
|
|
if (p_video_driver == VIDEO_DRIVER_GLES2) {
|
|
if (p_video_driver == VIDEO_DRIVER_GLES2) {
|
|
- opengl_api_type = ContextEGL::GLES_2_0;
|
|
|
|
|
|
+ opengl_api_type = ContextEGL_UWP::GLES_2_0;
|
|
}
|
|
}
|
|
|
|
|
|
bool gl_initialization_error = false;
|
|
bool gl_initialization_error = false;
|
|
|
|
|
|
gl_context = NULL;
|
|
gl_context = NULL;
|
|
while (!gl_context) {
|
|
while (!gl_context) {
|
|
- gl_context = memnew(ContextEGL(window, opengl_api_type));
|
|
|
|
|
|
+ gl_context = memnew(ContextEGL_UWP(window, opengl_api_type));
|
|
|
|
|
|
if (gl_context->initialize() != OK) {
|
|
if (gl_context->initialize() != OK) {
|
|
memdelete(gl_context);
|
|
memdelete(gl_context);
|
|
@@ -209,7 +209,7 @@ Error OSUWP::initialize(const VideoMode &p_desired, int p_video_driver, int p_au
|
|
}
|
|
}
|
|
|
|
|
|
p_video_driver = VIDEO_DRIVER_GLES2;
|
|
p_video_driver = VIDEO_DRIVER_GLES2;
|
|
- opengl_api_type = ContextEGL::GLES_2_0;
|
|
|
|
|
|
+ opengl_api_type = ContextEGL_UWP::GLES_2_0;
|
|
} else {
|
|
} else {
|
|
gl_initialization_error = true;
|
|
gl_initialization_error = true;
|
|
break;
|
|
break;
|
|
@@ -218,7 +218,7 @@ Error OSUWP::initialize(const VideoMode &p_desired, int p_video_driver, int p_au
|
|
}
|
|
}
|
|
|
|
|
|
while (true) {
|
|
while (true) {
|
|
- if (opengl_api_type == ContextEGL::GLES_3_0) {
|
|
|
|
|
|
+ if (opengl_api_type == ContextEGL_UWP::GLES_3_0) {
|
|
if (RasterizerGLES3::is_viable() == OK) {
|
|
if (RasterizerGLES3::is_viable() == OK) {
|
|
RasterizerGLES3::register_config();
|
|
RasterizerGLES3::register_config();
|
|
RasterizerGLES3::make_current();
|
|
RasterizerGLES3::make_current();
|
|
@@ -226,7 +226,7 @@ Error OSUWP::initialize(const VideoMode &p_desired, int p_video_driver, int p_au
|
|
} else {
|
|
} else {
|
|
if (GLOBAL_GET("rendering/quality/driver/driver_fallback") == "Best") {
|
|
if (GLOBAL_GET("rendering/quality/driver/driver_fallback") == "Best") {
|
|
p_video_driver = VIDEO_DRIVER_GLES2;
|
|
p_video_driver = VIDEO_DRIVER_GLES2;
|
|
- opengl_api_type = ContextEGL::GLES_2_0;
|
|
|
|
|
|
+ opengl_api_type = ContextEGL_UWP::GLES_2_0;
|
|
continue;
|
|
continue;
|
|
} else {
|
|
} else {
|
|
gl_initialization_error = true;
|
|
gl_initialization_error = true;
|
|
@@ -235,7 +235,7 @@ Error OSUWP::initialize(const VideoMode &p_desired, int p_video_driver, int p_au
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
- if (opengl_api_type == ContextEGL::GLES_2_0) {
|
|
|
|
|
|
+ if (opengl_api_type == ContextEGL_UWP::GLES_2_0) {
|
|
if (RasterizerGLES2::is_viable() == OK) {
|
|
if (RasterizerGLES2::is_viable() == OK) {
|
|
RasterizerGLES2::register_config();
|
|
RasterizerGLES2::register_config();
|
|
RasterizerGLES2::make_current();
|
|
RasterizerGLES2::make_current();
|
|
@@ -349,7 +349,7 @@ Error OSUWP::initialize(const VideoMode &p_desired, int p_video_driver, int p_au
|
|
return OK;
|
|
return OK;
|
|
}
|
|
}
|
|
|
|
|
|
-void OSUWP::set_clipboard(const String &p_text) {
|
|
|
|
|
|
+void OS_UWP::set_clipboard(const String &p_text) {
|
|
|
|
|
|
DataPackage ^ clip = ref new DataPackage();
|
|
DataPackage ^ clip = ref new DataPackage();
|
|
clip->RequestedOperation = DataPackageOperation::Copy;
|
|
clip->RequestedOperation = DataPackageOperation::Copy;
|
|
@@ -358,7 +358,7 @@ void OSUWP::set_clipboard(const String &p_text) {
|
|
Clipboard::SetContent(clip);
|
|
Clipboard::SetContent(clip);
|
|
};
|
|
};
|
|
|
|
|
|
-String OSUWP::get_clipboard() const {
|
|
|
|
|
|
+String OS_UWP::get_clipboard() const {
|
|
|
|
|
|
if (managed_object->clipboard != nullptr)
|
|
if (managed_object->clipboard != nullptr)
|
|
return managed_object->clipboard->Data();
|
|
return managed_object->clipboard->Data();
|
|
@@ -366,25 +366,25 @@ String OSUWP::get_clipboard() const {
|
|
return "";
|
|
return "";
|
|
};
|
|
};
|
|
|
|
|
|
-void OSUWP::input_event(const Ref<InputEvent> &p_event) {
|
|
|
|
|
|
+void OS_UWP::input_event(const Ref<InputEvent> &p_event) {
|
|
|
|
|
|
input->parse_input_event(p_event);
|
|
input->parse_input_event(p_event);
|
|
};
|
|
};
|
|
|
|
|
|
-void OSUWP::delete_main_loop() {
|
|
|
|
|
|
+void OS_UWP::delete_main_loop() {
|
|
|
|
|
|
if (main_loop)
|
|
if (main_loop)
|
|
memdelete(main_loop);
|
|
memdelete(main_loop);
|
|
main_loop = NULL;
|
|
main_loop = NULL;
|
|
}
|
|
}
|
|
|
|
|
|
-void OSUWP::set_main_loop(MainLoop *p_main_loop) {
|
|
|
|
|
|
+void OS_UWP::set_main_loop(MainLoop *p_main_loop) {
|
|
|
|
|
|
input->set_main_loop(p_main_loop);
|
|
input->set_main_loop(p_main_loop);
|
|
main_loop = p_main_loop;
|
|
main_loop = p_main_loop;
|
|
}
|
|
}
|
|
|
|
|
|
-void OSUWP::finalize() {
|
|
|
|
|
|
+void OS_UWP::finalize() {
|
|
|
|
|
|
if (main_loop)
|
|
if (main_loop)
|
|
memdelete(main_loop);
|
|
memdelete(main_loop);
|
|
@@ -403,19 +403,19 @@ void OSUWP::finalize() {
|
|
joypad = nullptr;
|
|
joypad = nullptr;
|
|
}
|
|
}
|
|
|
|
|
|
-void OSUWP::finalize_core() {
|
|
|
|
|
|
+void OS_UWP::finalize_core() {
|
|
|
|
|
|
NetSocketPosix::cleanup();
|
|
NetSocketPosix::cleanup();
|
|
}
|
|
}
|
|
|
|
|
|
-void OSUWP::alert(const String &p_alert, const String &p_title) {
|
|
|
|
|
|
+void OS_UWP::alert(const String &p_alert, const String &p_title) {
|
|
|
|
|
|
Platform::String ^ alert = ref new Platform::String(p_alert.c_str());
|
|
Platform::String ^ alert = ref new Platform::String(p_alert.c_str());
|
|
Platform::String ^ title = ref new Platform::String(p_title.c_str());
|
|
Platform::String ^ title = ref new Platform::String(p_title.c_str());
|
|
|
|
|
|
MessageDialog ^ msg = ref new MessageDialog(alert, title);
|
|
MessageDialog ^ msg = ref new MessageDialog(alert, title);
|
|
|
|
|
|
- UICommand ^ close = ref new UICommand("Close", ref new UICommandInvokedHandler(managed_object, &OSUWP::ManagedType::alert_close));
|
|
|
|
|
|
+ UICommand ^ close = ref new UICommand("Close", ref new UICommandInvokedHandler(managed_object, &OS_UWP::ManagedType::alert_close));
|
|
msg->Commands->Append(close);
|
|
msg->Commands->Append(close);
|
|
msg->DefaultCommandIndex = 0;
|
|
msg->DefaultCommandIndex = 0;
|
|
|
|
|
|
@@ -424,17 +424,17 @@ void OSUWP::alert(const String &p_alert, const String &p_title) {
|
|
msg->ShowAsync();
|
|
msg->ShowAsync();
|
|
}
|
|
}
|
|
|
|
|
|
-void OSUWP::ManagedType::alert_close(IUICommand ^ command) {
|
|
|
|
|
|
+void OS_UWP::ManagedType::alert_close(IUICommand ^ command) {
|
|
|
|
|
|
alert_close_handle = false;
|
|
alert_close_handle = false;
|
|
}
|
|
}
|
|
|
|
|
|
-void OSUWP::ManagedType::on_clipboard_changed(Platform::Object ^ sender, Platform::Object ^ ev) {
|
|
|
|
|
|
+void OS_UWP::ManagedType::on_clipboard_changed(Platform::Object ^ sender, Platform::Object ^ ev) {
|
|
|
|
|
|
update_clipboard();
|
|
update_clipboard();
|
|
}
|
|
}
|
|
|
|
|
|
-void OSUWP::ManagedType::update_clipboard() {
|
|
|
|
|
|
+void OS_UWP::ManagedType::update_clipboard() {
|
|
|
|
|
|
DataPackageView ^ data = Clipboard::GetContent();
|
|
DataPackageView ^ data = Clipboard::GetContent();
|
|
|
|
|
|
@@ -446,7 +446,7 @@ void OSUWP::ManagedType::update_clipboard() {
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
-void OSUWP::ManagedType::on_accelerometer_reading_changed(Accelerometer ^ sender, AccelerometerReadingChangedEventArgs ^ args) {
|
|
|
|
|
|
+void OS_UWP::ManagedType::on_accelerometer_reading_changed(Accelerometer ^ sender, AccelerometerReadingChangedEventArgs ^ args) {
|
|
|
|
|
|
AccelerometerReading ^ reading = args->Reading;
|
|
AccelerometerReading ^ reading = args->Reading;
|
|
|
|
|
|
@@ -456,7 +456,7 @@ void OSUWP::ManagedType::on_accelerometer_reading_changed(Accelerometer ^ sender
|
|
reading->AccelerationZ));
|
|
reading->AccelerationZ));
|
|
}
|
|
}
|
|
|
|
|
|
-void OSUWP::ManagedType::on_magnetometer_reading_changed(Magnetometer ^ sender, MagnetometerReadingChangedEventArgs ^ args) {
|
|
|
|
|
|
+void OS_UWP::ManagedType::on_magnetometer_reading_changed(Magnetometer ^ sender, MagnetometerReadingChangedEventArgs ^ args) {
|
|
|
|
|
|
MagnetometerReading ^ reading = args->Reading;
|
|
MagnetometerReading ^ reading = args->Reading;
|
|
|
|
|
|
@@ -466,7 +466,7 @@ void OSUWP::ManagedType::on_magnetometer_reading_changed(Magnetometer ^ sender,
|
|
reading->MagneticFieldZ));
|
|
reading->MagneticFieldZ));
|
|
}
|
|
}
|
|
|
|
|
|
-void OSUWP::ManagedType::on_gyroscope_reading_changed(Gyrometer ^ sender, GyrometerReadingChangedEventArgs ^ args) {
|
|
|
|
|
|
+void OS_UWP::ManagedType::on_gyroscope_reading_changed(Gyrometer ^ sender, GyrometerReadingChangedEventArgs ^ args) {
|
|
|
|
|
|
GyrometerReading ^ reading = args->Reading;
|
|
GyrometerReading ^ reading = args->Reading;
|
|
|
|
|
|
@@ -476,7 +476,7 @@ void OSUWP::ManagedType::on_gyroscope_reading_changed(Gyrometer ^ sender, Gyrome
|
|
reading->AngularVelocityZ));
|
|
reading->AngularVelocityZ));
|
|
}
|
|
}
|
|
|
|
|
|
-void OSUWP::set_mouse_mode(MouseMode p_mode) {
|
|
|
|
|
|
+void OS_UWP::set_mouse_mode(MouseMode p_mode) {
|
|
|
|
|
|
if (p_mode == MouseMode::MOUSE_MODE_CAPTURED) {
|
|
if (p_mode == MouseMode::MOUSE_MODE_CAPTURED) {
|
|
|
|
|
|
@@ -501,41 +501,41 @@ void OSUWP::set_mouse_mode(MouseMode p_mode) {
|
|
SetEvent(mouse_mode_changed);
|
|
SetEvent(mouse_mode_changed);
|
|
}
|
|
}
|
|
|
|
|
|
-OSUWP::MouseMode OSUWP::get_mouse_mode() const {
|
|
|
|
|
|
+OS_UWP::MouseMode OS_UWP::get_mouse_mode() const {
|
|
|
|
|
|
return mouse_mode;
|
|
return mouse_mode;
|
|
}
|
|
}
|
|
|
|
|
|
-Point2 OSUWP::get_mouse_position() const {
|
|
|
|
|
|
+Point2 OS_UWP::get_mouse_position() const {
|
|
|
|
|
|
return Point2(old_x, old_y);
|
|
return Point2(old_x, old_y);
|
|
}
|
|
}
|
|
|
|
|
|
-int OSUWP::get_mouse_button_state() const {
|
|
|
|
|
|
+int OS_UWP::get_mouse_button_state() const {
|
|
|
|
|
|
return last_button_state;
|
|
return last_button_state;
|
|
}
|
|
}
|
|
|
|
|
|
-void OSUWP::set_window_title(const String &p_title) {
|
|
|
|
|
|
+void OS_UWP::set_window_title(const String &p_title) {
|
|
}
|
|
}
|
|
|
|
|
|
-void OSUWP::set_video_mode(const VideoMode &p_video_mode, int p_screen) {
|
|
|
|
|
|
+void OS_UWP::set_video_mode(const VideoMode &p_video_mode, int p_screen) {
|
|
|
|
|
|
video_mode = p_video_mode;
|
|
video_mode = p_video_mode;
|
|
}
|
|
}
|
|
-OS::VideoMode OSUWP::get_video_mode(int p_screen) const {
|
|
|
|
|
|
+OS::VideoMode OS_UWP::get_video_mode(int p_screen) const {
|
|
|
|
|
|
return video_mode;
|
|
return video_mode;
|
|
}
|
|
}
|
|
-void OSUWP::get_fullscreen_mode_list(List<VideoMode> *p_list, int p_screen) const {
|
|
|
|
|
|
+void OS_UWP::get_fullscreen_mode_list(List<VideoMode> *p_list, int p_screen) const {
|
|
}
|
|
}
|
|
|
|
|
|
-String OSUWP::get_name() {
|
|
|
|
|
|
+String OS_UWP::get_name() {
|
|
|
|
|
|
return "UWP";
|
|
return "UWP";
|
|
}
|
|
}
|
|
|
|
|
|
-OS::Date OSUWP::get_date(bool utc) const {
|
|
|
|
|
|
+OS::Date OS_UWP::get_date(bool utc) const {
|
|
|
|
|
|
SYSTEMTIME systemtime;
|
|
SYSTEMTIME systemtime;
|
|
if (utc)
|
|
if (utc)
|
|
@@ -551,7 +551,7 @@ OS::Date OSUWP::get_date(bool utc) const {
|
|
date.dst = false;
|
|
date.dst = false;
|
|
return date;
|
|
return date;
|
|
}
|
|
}
|
|
-OS::Time OSUWP::get_time(bool utc) const {
|
|
|
|
|
|
+OS::Time OS_UWP::get_time(bool utc) const {
|
|
|
|
|
|
SYSTEMTIME systemtime;
|
|
SYSTEMTIME systemtime;
|
|
if (utc)
|
|
if (utc)
|
|
@@ -566,7 +566,7 @@ OS::Time OSUWP::get_time(bool utc) const {
|
|
return time;
|
|
return time;
|
|
}
|
|
}
|
|
|
|
|
|
-OS::TimeZoneInfo OSUWP::get_time_zone_info() const {
|
|
|
|
|
|
+OS::TimeZoneInfo OS_UWP::get_time_zone_info() const {
|
|
TIME_ZONE_INFORMATION info;
|
|
TIME_ZONE_INFORMATION info;
|
|
bool daylight = false;
|
|
bool daylight = false;
|
|
if (GetTimeZoneInformation(&info) == TIME_ZONE_ID_DAYLIGHT)
|
|
if (GetTimeZoneInformation(&info) == TIME_ZONE_ID_DAYLIGHT)
|
|
@@ -583,7 +583,7 @@ OS::TimeZoneInfo OSUWP::get_time_zone_info() const {
|
|
return ret;
|
|
return ret;
|
|
}
|
|
}
|
|
|
|
|
|
-uint64_t OSUWP::get_unix_time() const {
|
|
|
|
|
|
+uint64_t OS_UWP::get_unix_time() const {
|
|
|
|
|
|
FILETIME ft;
|
|
FILETIME ft;
|
|
SYSTEMTIME st;
|
|
SYSTEMTIME st;
|
|
@@ -605,14 +605,14 @@ uint64_t OSUWP::get_unix_time() const {
|
|
return (*(uint64_t *)&ft - *(uint64_t *)&fep) / 10000000;
|
|
return (*(uint64_t *)&ft - *(uint64_t *)&fep) / 10000000;
|
|
};
|
|
};
|
|
|
|
|
|
-void OSUWP::delay_usec(uint32_t p_usec) const {
|
|
|
|
|
|
+void OS_UWP::delay_usec(uint32_t p_usec) const {
|
|
|
|
|
|
int msec = p_usec < 1000 ? 1 : p_usec / 1000;
|
|
int msec = p_usec < 1000 ? 1 : p_usec / 1000;
|
|
|
|
|
|
// no Sleep()
|
|
// no Sleep()
|
|
WaitForSingleObjectEx(GetCurrentThread(), msec, false);
|
|
WaitForSingleObjectEx(GetCurrentThread(), msec, false);
|
|
}
|
|
}
|
|
-uint64_t OSUWP::get_ticks_usec() const {
|
|
|
|
|
|
+uint64_t OS_UWP::get_ticks_usec() const {
|
|
|
|
|
|
uint64_t ticks;
|
|
uint64_t ticks;
|
|
uint64_t time;
|
|
uint64_t time;
|
|
@@ -626,13 +626,13 @@ uint64_t OSUWP::get_ticks_usec() const {
|
|
return time;
|
|
return time;
|
|
}
|
|
}
|
|
|
|
|
|
-void OSUWP::process_events() {
|
|
|
|
|
|
+void OS_UWP::process_events() {
|
|
|
|
|
|
joypad->process_controllers();
|
|
joypad->process_controllers();
|
|
process_key_events();
|
|
process_key_events();
|
|
}
|
|
}
|
|
|
|
|
|
-void OSUWP::process_key_events() {
|
|
|
|
|
|
+void OS_UWP::process_key_events() {
|
|
|
|
|
|
for (int i = 0; i < key_event_pos; i++) {
|
|
for (int i = 0; i < key_event_pos; i++) {
|
|
|
|
|
|
@@ -653,7 +653,7 @@ void OSUWP::process_key_events() {
|
|
key_event_pos = 0;
|
|
key_event_pos = 0;
|
|
}
|
|
}
|
|
|
|
|
|
-void OSUWP::queue_key_event(KeyEvent &p_event) {
|
|
|
|
|
|
+void OS_UWP::queue_key_event(KeyEvent &p_event) {
|
|
// This merges Char events with the previous Key event, so
|
|
// This merges Char events with the previous Key event, so
|
|
// the unicode can be retrieved without sending duplicate events.
|
|
// the unicode can be retrieved without sending duplicate events.
|
|
if (p_event.type == KeyEvent::MessageType::CHAR_EVENT_MESSAGE && key_event_pos > 0) {
|
|
if (p_event.type == KeyEvent::MessageType::CHAR_EVENT_MESSAGE && key_event_pos > 0) {
|
|
@@ -670,7 +670,7 @@ void OSUWP::queue_key_event(KeyEvent &p_event) {
|
|
key_event_buffer[key_event_pos++] = p_event;
|
|
key_event_buffer[key_event_pos++] = p_event;
|
|
}
|
|
}
|
|
|
|
|
|
-void OSUWP::set_cursor_shape(CursorShape p_shape) {
|
|
|
|
|
|
+void OS_UWP::set_cursor_shape(CursorShape p_shape) {
|
|
|
|
|
|
ERR_FAIL_INDEX(p_shape, CURSOR_MAX);
|
|
ERR_FAIL_INDEX(p_shape, CURSOR_MAX);
|
|
|
|
|
|
@@ -702,62 +702,62 @@ void OSUWP::set_cursor_shape(CursorShape p_shape) {
|
|
cursor_shape = p_shape;
|
|
cursor_shape = p_shape;
|
|
}
|
|
}
|
|
|
|
|
|
-void OSUWP::set_custom_mouse_cursor(const RES &p_cursor, CursorShape p_shape, const Vector2 &p_hotspot) {
|
|
|
|
|
|
+void OS_UWP::set_custom_mouse_cursor(const RES &p_cursor, CursorShape p_shape, const Vector2 &p_hotspot) {
|
|
// TODO
|
|
// TODO
|
|
}
|
|
}
|
|
|
|
|
|
-Error OSUWP::execute(const String &p_path, const List<String> &p_arguments, bool p_blocking, ProcessID *r_child_id, String *r_pipe, int *r_exitcode, bool read_stderr) {
|
|
|
|
|
|
+Error OS_UWP::execute(const String &p_path, const List<String> &p_arguments, bool p_blocking, ProcessID *r_child_id, String *r_pipe, int *r_exitcode, bool read_stderr) {
|
|
|
|
|
|
return FAILED;
|
|
return FAILED;
|
|
};
|
|
};
|
|
|
|
|
|
-Error OSUWP::kill(const ProcessID &p_pid) {
|
|
|
|
|
|
+Error OS_UWP::kill(const ProcessID &p_pid) {
|
|
|
|
|
|
return FAILED;
|
|
return FAILED;
|
|
};
|
|
};
|
|
|
|
|
|
-Error OSUWP::set_cwd(const String &p_cwd) {
|
|
|
|
|
|
+Error OS_UWP::set_cwd(const String &p_cwd) {
|
|
|
|
|
|
return FAILED;
|
|
return FAILED;
|
|
}
|
|
}
|
|
|
|
|
|
-String OSUWP::get_executable_path() const {
|
|
|
|
|
|
+String OS_UWP::get_executable_path() const {
|
|
|
|
|
|
return "";
|
|
return "";
|
|
}
|
|
}
|
|
|
|
|
|
-void OSUWP::set_icon(const Ref<Image> &p_icon) {
|
|
|
|
|
|
+void OS_UWP::set_icon(const Ref<Image> &p_icon) {
|
|
}
|
|
}
|
|
|
|
|
|
-bool OSUWP::has_environment(const String &p_var) const {
|
|
|
|
|
|
+bool OS_UWP::has_environment(const String &p_var) const {
|
|
|
|
|
|
return false;
|
|
return false;
|
|
};
|
|
};
|
|
|
|
|
|
-String OSUWP::get_environment(const String &p_var) const {
|
|
|
|
|
|
+String OS_UWP::get_environment(const String &p_var) const {
|
|
|
|
|
|
return "";
|
|
return "";
|
|
};
|
|
};
|
|
|
|
|
|
-bool OSUWP::set_environment(const String &p_var, const String &p_value) const {
|
|
|
|
|
|
+bool OS_UWP::set_environment(const String &p_var, const String &p_value) const {
|
|
|
|
|
|
return false;
|
|
return false;
|
|
}
|
|
}
|
|
|
|
|
|
-String OSUWP::get_stdin_string(bool p_block) {
|
|
|
|
|
|
+String OS_UWP::get_stdin_string(bool p_block) {
|
|
|
|
|
|
return String();
|
|
return String();
|
|
}
|
|
}
|
|
|
|
|
|
-void OSUWP::move_window_to_foreground() {
|
|
|
|
|
|
+void OS_UWP::move_window_to_foreground() {
|
|
}
|
|
}
|
|
|
|
|
|
-Error OSUWP::shell_open(String p_uri) {
|
|
|
|
|
|
+Error OS_UWP::shell_open(String p_uri) {
|
|
|
|
|
|
return FAILED;
|
|
return FAILED;
|
|
}
|
|
}
|
|
|
|
|
|
-String OSUWP::get_locale() const {
|
|
|
|
|
|
+String OS_UWP::get_locale() const {
|
|
|
|
|
|
#if WINAPI_FAMILY == WINAPI_FAMILY_PHONE_APP // this should work on phone 8.1, but it doesn't
|
|
#if WINAPI_FAMILY == WINAPI_FAMILY_PHONE_APP // this should work on phone 8.1, but it doesn't
|
|
return "en";
|
|
return "en";
|
|
@@ -767,39 +767,39 @@ String OSUWP::get_locale() const {
|
|
#endif
|
|
#endif
|
|
}
|
|
}
|
|
|
|
|
|
-void OSUWP::release_rendering_thread() {
|
|
|
|
|
|
+void OS_UWP::release_rendering_thread() {
|
|
|
|
|
|
gl_context->release_current();
|
|
gl_context->release_current();
|
|
}
|
|
}
|
|
|
|
|
|
-void OSUWP::make_rendering_thread() {
|
|
|
|
|
|
+void OS_UWP::make_rendering_thread() {
|
|
|
|
|
|
gl_context->make_current();
|
|
gl_context->make_current();
|
|
}
|
|
}
|
|
|
|
|
|
-void OSUWP::swap_buffers() {
|
|
|
|
|
|
+void OS_UWP::swap_buffers() {
|
|
|
|
|
|
gl_context->swap_buffers();
|
|
gl_context->swap_buffers();
|
|
}
|
|
}
|
|
|
|
|
|
-bool OSUWP::has_touchscreen_ui_hint() const {
|
|
|
|
|
|
+bool OS_UWP::has_touchscreen_ui_hint() const {
|
|
|
|
|
|
TouchCapabilities ^ tc = ref new TouchCapabilities();
|
|
TouchCapabilities ^ tc = ref new TouchCapabilities();
|
|
return tc->TouchPresent != 0 || UIViewSettings::GetForCurrentView()->UserInteractionMode == UserInteractionMode::Touch;
|
|
return tc->TouchPresent != 0 || UIViewSettings::GetForCurrentView()->UserInteractionMode == UserInteractionMode::Touch;
|
|
}
|
|
}
|
|
|
|
|
|
-bool OSUWP::has_virtual_keyboard() const {
|
|
|
|
|
|
+bool OS_UWP::has_virtual_keyboard() const {
|
|
|
|
|
|
return UIViewSettings::GetForCurrentView()->UserInteractionMode == UserInteractionMode::Touch;
|
|
return UIViewSettings::GetForCurrentView()->UserInteractionMode == UserInteractionMode::Touch;
|
|
}
|
|
}
|
|
|
|
|
|
-void OSUWP::show_virtual_keyboard(const String &p_existing_text, const Rect2 &p_screen_rect) {
|
|
|
|
|
|
+void OS_UWP::show_virtual_keyboard(const String &p_existing_text, const Rect2 &p_screen_rect) {
|
|
|
|
|
|
InputPane ^ pane = InputPane::GetForCurrentView();
|
|
InputPane ^ pane = InputPane::GetForCurrentView();
|
|
pane->TryShow();
|
|
pane->TryShow();
|
|
}
|
|
}
|
|
|
|
|
|
-void OSUWP::hide_virtual_keyboard() {
|
|
|
|
|
|
+void OS_UWP::hide_virtual_keyboard() {
|
|
|
|
|
|
InputPane ^ pane = InputPane::GetForCurrentView();
|
|
InputPane ^ pane = InputPane::GetForCurrentView();
|
|
pane->TryHide();
|
|
pane->TryHide();
|
|
@@ -818,7 +818,7 @@ static String format_error_message(DWORD id) {
|
|
return msg;
|
|
return msg;
|
|
}
|
|
}
|
|
|
|
|
|
-Error OSUWP::open_dynamic_library(const String p_path, void *&p_library_handle, bool p_also_set_library_path) {
|
|
|
|
|
|
+Error OS_UWP::open_dynamic_library(const String p_path, void *&p_library_handle, bool p_also_set_library_path) {
|
|
|
|
|
|
String full_path = "game/" + p_path;
|
|
String full_path = "game/" + p_path;
|
|
p_library_handle = (void *)LoadPackagedLibrary(full_path.c_str(), 0);
|
|
p_library_handle = (void *)LoadPackagedLibrary(full_path.c_str(), 0);
|
|
@@ -830,14 +830,14 @@ Error OSUWP::open_dynamic_library(const String p_path, void *&p_library_handle,
|
|
return OK;
|
|
return OK;
|
|
}
|
|
}
|
|
|
|
|
|
-Error OSUWP::close_dynamic_library(void *p_library_handle) {
|
|
|
|
|
|
+Error OS_UWP::close_dynamic_library(void *p_library_handle) {
|
|
if (!FreeLibrary((HMODULE)p_library_handle)) {
|
|
if (!FreeLibrary((HMODULE)p_library_handle)) {
|
|
return FAILED;
|
|
return FAILED;
|
|
}
|
|
}
|
|
return OK;
|
|
return OK;
|
|
}
|
|
}
|
|
|
|
|
|
-Error OSUWP::get_dynamic_library_symbol_handle(void *p_library_handle, const String p_name, void *&p_symbol_handle, bool p_optional) {
|
|
|
|
|
|
+Error OS_UWP::get_dynamic_library_symbol_handle(void *p_library_handle, const String p_name, void *&p_symbol_handle, bool p_optional) {
|
|
p_symbol_handle = (void *)GetProcAddress((HMODULE)p_library_handle, p_name.utf8().get_data());
|
|
p_symbol_handle = (void *)GetProcAddress((HMODULE)p_library_handle, p_name.utf8().get_data());
|
|
if (!p_symbol_handle) {
|
|
if (!p_symbol_handle) {
|
|
if (!p_optional) {
|
|
if (!p_optional) {
|
|
@@ -850,7 +850,7 @@ Error OSUWP::get_dynamic_library_symbol_handle(void *p_library_handle, const Str
|
|
return OK;
|
|
return OK;
|
|
}
|
|
}
|
|
|
|
|
|
-void OSUWP::run() {
|
|
|
|
|
|
+void OS_UWP::run() {
|
|
|
|
|
|
if (!main_loop)
|
|
if (!main_loop)
|
|
return;
|
|
return;
|
|
@@ -874,35 +874,35 @@ void OSUWP::run() {
|
|
main_loop->finish();
|
|
main_loop->finish();
|
|
}
|
|
}
|
|
|
|
|
|
-MainLoop *OSUWP::get_main_loop() const {
|
|
|
|
|
|
+MainLoop *OS_UWP::get_main_loop() const {
|
|
|
|
|
|
return main_loop;
|
|
return main_loop;
|
|
}
|
|
}
|
|
|
|
|
|
-String OSUWP::get_user_data_dir() const {
|
|
|
|
|
|
+String OS_UWP::get_user_data_dir() const {
|
|
|
|
|
|
Windows::Storage::StorageFolder ^ data_folder = Windows::Storage::ApplicationData::Current->LocalFolder;
|
|
Windows::Storage::StorageFolder ^ data_folder = Windows::Storage::ApplicationData::Current->LocalFolder;
|
|
|
|
|
|
return String(data_folder->Path->Data()).replace("\\", "/");
|
|
return String(data_folder->Path->Data()).replace("\\", "/");
|
|
}
|
|
}
|
|
|
|
|
|
-bool OSUWP::_check_internal_feature_support(const String &p_feature) {
|
|
|
|
|
|
+bool OS_UWP::_check_internal_feature_support(const String &p_feature) {
|
|
return p_feature == "pc" || p_feature == "s3tc";
|
|
return p_feature == "pc" || p_feature == "s3tc";
|
|
}
|
|
}
|
|
|
|
|
|
-OS::PowerState OSUWP::get_power_state() {
|
|
|
|
|
|
+OS::PowerState OS_UWP::get_power_state() {
|
|
return power_manager->get_power_state();
|
|
return power_manager->get_power_state();
|
|
}
|
|
}
|
|
|
|
|
|
-int OSUWP::get_power_seconds_left() {
|
|
|
|
|
|
+int OS_UWP::get_power_seconds_left() {
|
|
return power_manager->get_power_seconds_left();
|
|
return power_manager->get_power_seconds_left();
|
|
}
|
|
}
|
|
|
|
|
|
-int OSUWP::get_power_percent_left() {
|
|
|
|
|
|
+int OS_UWP::get_power_percent_left() {
|
|
return power_manager->get_power_percent_left();
|
|
return power_manager->get_power_percent_left();
|
|
}
|
|
}
|
|
|
|
|
|
-OSUWP::OSUWP() {
|
|
|
|
|
|
+OS_UWP::OS_UWP() {
|
|
|
|
|
|
key_event_pos = 0;
|
|
key_event_pos = 0;
|
|
force_quit = false;
|
|
force_quit = false;
|
|
@@ -936,7 +936,7 @@ OSUWP::OSUWP() {
|
|
_set_logger(memnew(CompositeLogger(loggers)));
|
|
_set_logger(memnew(CompositeLogger(loggers)));
|
|
}
|
|
}
|
|
|
|
|
|
-OSUWP::~OSUWP() {
|
|
|
|
|
|
+OS_UWP::~OS_UWP() {
|
|
#ifdef STDOUT_FILE
|
|
#ifdef STDOUT_FILE
|
|
fclose(stdo);
|
|
fclose(stdo);
|
|
#endif
|
|
#endif
|