1
0
mirror of https://github.com/godotengine/godot.git synced 2025-11-05 12:10:55 +00:00

Fix compilation for UWP

This commit is contained in:
George Marques
2017-04-29 11:48:23 -03:00
parent abe09919bf
commit f7bd21a022
8 changed files with 161 additions and 50 deletions

View File

@@ -28,24 +28,22 @@
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/*************************************************************************/
#include "os_uwp.h"
#include "drivers/gles2/rasterizer_gles2.h"
#include "drivers/gles3/rasterizer_gles3.h"
#include "drivers/unix/ip_unix.h"
#include "drivers/windows/dir_access_windows.h"
#include "drivers/windows/file_access_windows.h"
#include "drivers/windows/mutex_windows.h"
#include "drivers/windows/rw_lock_windows.h"
#include "drivers/windows/semaphore_windows.h"
#include "main/main.h"
#include "os/memory_pool_dynamic_static.h"
#include "servers/audio_server.h"
#include "servers/visual/visual_server_raster.h"
#include "thread_uwp.h"
//#include "servers/visual/visual_server_wrap_mt.h"
#include "drivers/unix/ip_unix.h"
#include "global_config.h"
#include "io/marshalls.h"
#include "os/memory_pool_dynamic_prealloc.h"
#include "main/main.h"
#include "platform/windows/packet_peer_udp_winsock.h"
#include "platform/windows/stream_peer_winsock.h"
#include "platform/windows/tcp_server_winsock.h"
#include "servers/audio_server.h"
#include "servers/visual/visual_server_raster.h"
#include "thread_uwp.h"
#include <ppltasks.h>
#include <wrl.h>
@@ -149,9 +147,6 @@ const char *OSUWP::get_audio_driver_name(int p_driver) const {
return AudioDriverManager::get_driver(p_driver)->get_name();
}
static MemoryPoolStatic *mempool_static = NULL;
static MemoryPoolDynamic *mempool_dynamic = NULL;
void OSUWP::initialize_core() {
last_button_state = 0;
@@ -161,32 +156,19 @@ void OSUWP::initialize_core() {
ThreadUWP::make_default();
SemaphoreWindows::make_default();
MutexWindows::make_default();
RWLockWindows::make_default();
FileAccess::make_default<FileAccessWindows>(FileAccess::ACCESS_RESOURCES);
FileAccess::make_default<FileAccessWindows>(FileAccess::ACCESS_USERDATA);
FileAccess::make_default<FileAccessWindows>(FileAccess::ACCESS_FILESYSTEM);
//FileAccessBufferedFA<FileAccessWindows>::make_default();
DirAccess::make_default<DirAccessWindows>(DirAccess::ACCESS_RESOURCES);
DirAccess::make_default<DirAccessWindows>(DirAccess::ACCESS_USERDATA);
DirAccess::make_default<DirAccessWindows>(DirAccess::ACCESS_FILESYSTEM);
//TCPServerWinsock::make_default();
//StreamPeerWinsock::make_default();
TCPServerWinsock::make_default();
StreamPeerWinsock::make_default();
PacketPeerUDPWinsock::make_default();
mempool_static = new MemoryPoolStaticMalloc;
#if 1
mempool_dynamic = memnew(MemoryPoolDynamicStatic);
#else
#define DYNPOOL_SIZE 4 * 1024 * 1024
void *buffer = malloc(DYNPOOL_SIZE);
mempool_dynamic = memnew(MemoryPoolDynamicPrealloc(buffer, DYNPOOL_SIZE));
#endif
// We need to know how often the clock is updated
if (!QueryPerformanceFrequency((LARGE_INTEGER *)&ticks_per_second))
ticks_per_second = 1000;
@@ -259,13 +241,18 @@ void OSUWP::initialize(const VideoMode &p_desired, int p_video_driver, int p_aud
set_video_mode(vm);
gl_context->make_current();
rasterizer = memnew(RasterizerGLES2);
visual_server = memnew(VisualServerRaster(rasterizer));
RasterizerGLES3::register_config();
RasterizerGLES3::make_current();
visual_server = memnew(VisualServerRaster);
// FIXME: Reimplement threaded rendering? Or remove?
/*
if (get_render_thread_mode() != RENDER_THREAD_UNSAFE) {
visual_server = memnew(VisualServerWrapMT(visual_server, get_render_thread_mode() == RENDER_SEPARATE_THREAD));
}
*/
//
physics_server = memnew(PhysicsServerSW);
@@ -288,7 +275,7 @@ void OSUWP::initialize(const VideoMode &p_desired, int p_video_driver, int p_aud
ERR_PRINT("Initializing audio failed.");
}
power_manager = memnew(PowerWinRT);
power_manager = memnew(PowerUWP);
managed_object->update_clipboard();
@@ -381,14 +368,6 @@ void OSUWP::finalize() {
if (gl_context)
memdelete(gl_context);
#endif
if (rasterizer)
memdelete(rasterizer);
/*
if (debugger_connection_console) {
memdelete(debugger_connection_console);
}
*/
memdelete(input);
@@ -400,11 +379,8 @@ void OSUWP::finalize() {
joypad = nullptr;
}
void OSUWP::finalize_core() {
if (mempool_dynamic)
memdelete(mempool_dynamic);
delete mempool_static;
void OSUWP::finalize_core() {
}
void OSUWP::vprint(const char *p_format, va_list p_list, bool p_stderr) {
@@ -880,15 +856,20 @@ String OSUWP::get_data_dir() const {
return String(data_folder->Path->Data()).replace("\\", "/");
}
PowerState OSWinrt::get_power_state() {
bool OSUWP::check_feature_support(const String &p_feature) {
return VisualServer::get_singleton()->has_os_feature(p_feature);
}
PowerState OSUWP::get_power_state() {
return power_manager->get_power_state();
}
int OSWinrt::get_power_seconds_left() {
int OSUWP::get_power_seconds_left() {
return power_manager->get_power_seconds_left();
}
int OSWinrt::get_power_percent_left() {
int OSUWP::get_power_percent_left() {
return power_manager->get_power_percent_left();
}