diff --git a/engine/core/src/engine.cpp b/engine/core/src/engine.cpp index 7a593a1..266060d 100755 --- a/engine/core/src/engine.cpp +++ b/engine/core/src/engine.cpp @@ -84,7 +84,7 @@ void engine::set_app(prism::app* p_app) { this->current_app = p_app; - if(platform::supports_feature(PlatformFeature::Windowing) && ::engine->get_app()->is_multimodal()) { + if(platform::supports_feature(PlatformFeature::Windowing) && get_app()->is_multimodal()) { ImGui::GetIO().ConfigFlags |= ImGuiConfigFlags_ViewportsEnable; } @@ -427,7 +427,7 @@ void engine::add_window(void* native_handle, const platform::window_ptr window_p current_renderer = std::make_unique(gfx); ImGuiViewport* main_viewport = ImGui::GetMainViewport(); - main_viewport->PlatformHandle = ::engine->get_main_window(); + main_viewport->PlatformHandle = get_main_window(); } const auto drawable_extent = platform::get_window_drawable_size(window_ptr); diff --git a/engine/gfx/dx12/src/gfx_dx12.cpp b/engine/gfx/dx12/src/gfx_dx12.cpp index 5b54f8e..e2f02d0 100755 --- a/engine/gfx/dx12/src/gfx_dx12.cpp +++ b/engine/gfx/dx12/src/gfx_dx12.cpp @@ -5,6 +5,7 @@ #include #include +#include // from https://stackoverflow.com/a/18374698 std::string ws2s(const std::wstring& wstr) { diff --git a/platforms/sdl/main.cpp.in b/platforms/sdl/main.cpp.in index 8cc7173..8d2713d 100644 --- a/platforms/sdl/main.cpp.in +++ b/platforms/sdl/main.cpp.in @@ -34,7 +34,7 @@ std::vector windows; std::map renderers; SDL_Window* main_window = nullptr; -SDL_Window* get_window(const platform::window_ptr index) { +extern "C" SDL_Window* get_window(const platform::window_ptr index) { for(auto& window : windows) { if(window == index) return window; diff --git a/platforms/sdl/sdl_metal.mm b/platforms/sdl/sdl_metal.mm index 85dc2f5..732128e 100644 --- a/platforms/sdl/sdl_metal.mm +++ b/platforms/sdl/sdl_metal.mm @@ -10,7 +10,7 @@ extern std::vector windows; extern std::map renderers; -SDL_Window* get_window(platform::window_ptr index); +extern "C" SDL_Window* get_window(platform::window_ptr index); CAMetalLayer* get_layer(platform::window_ptr index) { return (__bridge CAMetalLayer*)SDL_RenderGetMetalLayer(renderers[get_window(index)]); } diff --git a/platforms/sdl/sdl_vulkan.cpp b/platforms/sdl/sdl_vulkan.cpp index 0a6f6e1..0a3208f 100644 --- a/platforms/sdl/sdl_vulkan.cpp +++ b/platforms/sdl/sdl_vulkan.cpp @@ -5,7 +5,7 @@ extern std::vector windows; -SDL_Window* get_window(platform::window_ptr index); +extern "C" SDL_Window* get_window(platform::window_ptr index); void* create_vulkan_surface(platform::window_ptr window, void* surface_creation_info) { auto vulkan_surface_info = (vulkan_surface_creation_info*)surface_creation_info;