From d8f01324d01c3ef203cba355f70d1a110ad19b17 Mon Sep 17 00:00:00 2001 From: ink-soul Date: Tue, 13 Jun 2023 14:50:25 +0800 Subject: [PATCH] fix loading error when loading from Chinese path --- base/VulkanUtils.hpp | 7 ------- src/render/render.cpp | 18 +++++++++++------- src/render/render.h | 4 +++- 3 files changed, 14 insertions(+), 15 deletions(-) diff --git a/base/VulkanUtils.hpp b/base/VulkanUtils.hpp index 58987a4..74fd425 100644 --- a/base/VulkanUtils.hpp +++ b/base/VulkanUtils.hpp @@ -1,10 +1,3 @@ -/* -* Vulkan utilities -* -* Copyright(C) 2018 by Sascha Willems - www.saschawillems.de -* -* This code is licensed under the MIT license(MIT) (http://opensource.org/licenses/MIT) -*/ #pragma once diff --git a/src/render/render.cpp b/src/render/render.cpp index be54f49..528e0d2 100644 --- a/src/render/render.cpp +++ b/src/render/render.cpp @@ -1687,23 +1687,27 @@ PlumageRender::PlumageRender() // TO DO : language switch if (gui->header(chineseUI.model)) { if (gui->button(chineseUI.openNewModel)) { - std::string filename = ""; - char buffer[MAX_PATH]; - OPENFILENAME ofn; + std::wstring filename = L""; + wchar_t buffer[MAX_PATH]; + OPENFILENAMEW ofn; ZeroMemory(&buffer, sizeof(buffer)); ZeroMemory(&ofn, sizeof(ofn)); ofn.lStructSize = sizeof(ofn); - ofn.lpstrFilter = "glTF files\0*.gltf;*.glb\0"; + ofn.lpstrFilter = L"glTF files\0*.gltf;*.glb\0"; ofn.lpstrFile = buffer; ofn.nMaxFile = MAX_PATH; - ofn.lpstrTitle = "Select a glTF file to load"; + ofn.lpstrTitle = L"Select a glTF file to load"; ofn.Flags = OFN_DONTADDTORECENT | OFN_FILEMUSTEXIST | OFN_NOCHANGEDIR; - if (GetOpenFileNameA(&ofn)) { + if (GetOpenFileNameW(&ofn)) { filename = buffer; + } + if (!filename.empty()) { vkDeviceWaitIdle(device); - loadScene(filename); + std::wstring_convert> converter; + std::string stringFilename = converter.to_bytes(filename); + loadScene(stringFilename); setupDescriptors(); updateCBs = true; } diff --git a/src/render/render.h b/src/render/render.h index aeeeac6..92380c5 100644 --- a/src/render/render.h +++ b/src/render/render.h @@ -7,7 +7,9 @@ #include #include #include -#include +#include +#include +#include #include "algorithm"