diff --git a/CMakeLists.txt b/CMakeLists.txt index 15388e93da..8062bcfd50 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1676,7 +1676,6 @@ set(LinkCommon ${CoreLibName} ${CMAKE_THREAD_LIBS_INIT} ${nativeExtraLibs}) if(HEADLESS) add_executable(PPSSPPHeadless headless/Headless.cpp - UI/OnScreenDisplay.cpp headless/StubHost.h headless/Compare.cpp headless/Compare.h) @@ -1695,7 +1694,6 @@ if(UNITTEST) unittest/JitHarness.cpp Core/MIPS/ARM/ArmRegCache.cpp Core/MIPS/ARM/ArmRegCacheFPU.cpp - UI/OnScreenDisplay.cpp ) target_link_libraries(unitTest ${COCOA_LIBRARY} ${LinkCommon} Common) diff --git a/Core/CwCheat.cpp b/Core/CwCheat.cpp index ca0bc3b90a..d3a1474c6c 100644 --- a/Core/CwCheat.cpp +++ b/Core/CwCheat.cpp @@ -1,5 +1,4 @@ #include "i18n/i18n.h" -#include "UI/OnScreenDisplay.h" #include "Common/StringUtils.h" #include "Common/ChunkFile.h" #include "Common/FileUtil.h" @@ -7,6 +6,7 @@ #include "Core/CoreParameter.h" #include "Core/CwCheat.h" #include "Core/Config.h" +#include "Core/Host.h" #include "Core/MIPS/MIPS.h" #include "Core/ELF/ParamSFO.h" #include "Core/System.h" @@ -50,7 +50,7 @@ static void __CheatStart() { } if (!File::Exists(activeCheatFile)) { I18NCategory *err = GetI18NCategory("Error"); - osm.Show(err->T("Unable to create cheat file, disk may be full")); + host->NotifyUserMessage(err->T("Unable to create cheat file, disk may be full")); } } diff --git a/Core/Dialog/SavedataParam.cpp b/Core/Dialog/SavedataParam.cpp index 463715de81..162fb0c1e1 100644 --- a/Core/Dialog/SavedataParam.cpp +++ b/Core/Dialog/SavedataParam.cpp @@ -19,6 +19,7 @@ #include "base/logging.h" #include "Common/ChunkFile.h" #include "Core/Config.h" +#include "Core/Host.h" #include "Core/Reporting.h" #include "Core/System.h" #include "Core/Dialog/SavedataParam.h" @@ -30,7 +31,6 @@ #include "Core/ELF/ParamSFO.h" #include "Core/HW/MemoryStick.h" #include "Core/Util/PPGeDraw.h" -#include "UI/OnScreenDisplay.h" #include "image/png_load.h" @@ -372,7 +372,7 @@ bool SavedataParam::Save(SceUtilitySavedataParam* param, const std::string &save if (!pspFileSystem.GetFileInfo(dirPath).exists) { if (!pspFileSystem.MkDir(dirPath)) { I18NCategory *err = GetI18NCategory("Error"); - osm.Show(err->T("Unable to write savedata, disk may be full")); + host->NotifyUserMessage(err->T("Unable to write savedata, disk may be full")); } } @@ -397,7 +397,7 @@ bool SavedataParam::Save(SceUtilitySavedataParam* param, const std::string &save if (EncryptData(decryptMode, cryptedData, &cryptedSize, &aligned_len, cryptedHash, (HasKey(param) ? param->key : 0)) != 0) { I18NCategory *err = GetI18NCategory("Error"); - osm.Show(err->T("Save encryption failed. This save won't work on real PSP"), 6.0f); + host->NotifyUserMessage(err->T("Save encryption failed. This save won't work on real PSP"), 6.0f); ERROR_LOG(SCEUTILITY,"Save encryption failed. This save won't work on real PSP"); delete[] cryptedData; cryptedData = 0; @@ -642,8 +642,8 @@ void SavedataParam::LoadCryptedSave(SceUtilitySavedataParam *param, u8 *data, u8 // Don't notify the user if we're not going to upgrade the save. if (!g_Config.bEncryptSave) { I18NCategory *di = GetI18NCategory("Dialog"); - osm.Show(di->T("When you save, it will load on a PSP, but not an older PPSSPP"), 6.0f); - osm.Show(di->T("Old savedata detected"), 6.0f); + host->NotifyUserMessage(di->T("When you save, it will load on a PSP, but not an older PPSSPP"), 6.0f); + host->NotifyUserMessage(di->T("Old savedata detected"), 6.0f); } } else { if (decryptMode == 5 && prevCryptMode == 3) { diff --git a/Core/FileSystems/DirectoryFileSystem.cpp b/Core/FileSystems/DirectoryFileSystem.cpp index 329172b4c1..03a6385190 100644 --- a/Core/FileSystems/DirectoryFileSystem.cpp +++ b/Core/FileSystems/DirectoryFileSystem.cpp @@ -26,8 +26,8 @@ #include "Core/FileSystems/ISOFileSystem.h" #include "Core/HLE/sceKernel.h" #include "Core/HW/MemoryStick.h" +#include "Core/Host.h" #include "Core/Reporting.h" -#include "UI/OnScreenDisplay.h" #ifdef _WIN32 #include "Common/CommonWindows.h" @@ -223,7 +223,7 @@ bool DirectoryFileHandle::Open(std::string &basePath, std::string &fileName, Fil if (w32err == ERROR_DISK_FULL || w32err == ERROR_NOT_ENOUGH_QUOTA) { // This is returned when the disk is full. I18NCategory *err = GetI18NCategory("Error"); - osm.Show(err->T("Disk full while writing data")); + host->NotifyUserMessage(err->T("Disk full while writing data")); error = SCE_KERNEL_ERROR_ERRNO_NO_PERM; } } @@ -278,7 +278,7 @@ bool DirectoryFileHandle::Open(std::string &basePath, std::string &fileName, Fil } else if (errno == ENOSPC) { // This is returned when the disk is full. I18NCategory *err = GetI18NCategory("Error"); - osm.Show(err->T("Disk full while writing data")); + host->NotifyUserMessage(err->T("Disk full while writing data")); error = SCE_KERNEL_ERROR_ERRNO_NO_PERM; } #endif @@ -333,13 +333,13 @@ size_t DirectoryFileHandle::Write(const u8* pointer, s64 size) } if (diskFull) { - // Sign extend on 64-bit. ERROR_LOG(FILESYS, "Disk full"); I18NCategory *err = GetI18NCategory("Error"); - osm.Show(err->T("Disk full while writing data")); + host->NotifyUserMessage(err->T("Disk full while writing data")); // We only return an error when the disk is actually full. // When writing this would cause the disk to be full, so it wasn't written, we return 0. if (MemoryStick_FreeSpace() == 0) { + // Sign extend on 64-bit. return (size_t)(s64)(s32)SCE_KERNEL_ERROR_ERRNO_DEVICE_NO_FREE_SPACE; } } diff --git a/Core/HLE/proAdhoc.cpp b/Core/HLE/proAdhoc.cpp index b57a711218..e2a0aa54ed 100644 --- a/Core/HLE/proAdhoc.cpp +++ b/Core/HLE/proAdhoc.cpp @@ -24,10 +24,10 @@ #include #include "util/text/parsers.h" #include "Core/Core.h" +#include "Core/Host.h" #include "Core/HLE/sceKernelInterrupt.h" #include "Core/HLE/sceKernelThread.h" #include "Core/HLE/sceKernelMemory.h" -#include "UI/OnScreenDisplay.h" #include "proAdhoc.h" #include "i18n/i18n.h" @@ -1419,7 +1419,7 @@ int initNetwork(SceNetAdhocctlAdhocId *adhoc_id){ iResult = getaddrinfo(g_Config.proAdhocServer.c_str(),0,NULL,&resultAddr); if (iResult != 0) { ERROR_LOG(SCENET, "DNS Error (%s)\n", g_Config.proAdhocServer.c_str()); - osm.Show("DNS Error connecting to " + g_Config.proAdhocServer, 8.0f); + host->NotifyUserMessage("DNS Error connecting to " + g_Config.proAdhocServer, 8.0f); return iResult; } for (ptr = resultAddr; ptr != NULL; ptr = ptr->ai_next) { @@ -1442,7 +1442,7 @@ int initNetwork(SceNetAdhocctlAdhocId *adhoc_id){ char buffer[512]; snprintf(buffer, sizeof(buffer), "Socket error (%i) when connecting to %s/%u.%u.%u.%u:%u", errno, g_Config.proAdhocServer.c_str(), sip[0], sip[1], sip[2], sip[3], ntohs(server_addr.sin_port)); ERROR_LOG(SCENET, "%s", buffer); - osm.Show(std::string(buffer), 8.0f); + host->NotifyUserMessage(buffer, 8.0f); return iResult; } @@ -1458,7 +1458,7 @@ int initNetwork(SceNetAdhocctlAdhocId *adhoc_id){ changeBlockingMode(metasocket, 1); // Change to non-blocking if (sent > 0) { I18NCategory *n = GetI18NCategory("Networking"); - osm.Show(n->T("Network Initialized"), 1.0); + host->NotifyUserMessage(n->T("Network Initialized"), 1.0); return 0; } else{ diff --git a/Core/Host.h b/Core/Host.h index 6395769ff1..45c83c9c5c 100644 --- a/Core/Host.h +++ b/Core/Host.h @@ -64,6 +64,8 @@ public: virtual bool CanCreateShortcut() {return false;} virtual bool CreateDesktopShortcut(std::string argumentPath, std::string title) {return false;} + virtual void NotifyUserMessage(const std::string &message, float duration = 1.0f, u32 color = 0x00FFFFFF, const char *id = nullptr) {} + // Used for headless. virtual bool ShouldSkipUI() { return false; } virtual void SendDebugOutput(const std::string &output) {} diff --git a/GPU/Common/FramebufferCommon.cpp b/GPU/Common/FramebufferCommon.cpp index 20dd23a266..8cba489400 100644 --- a/GPU/Common/FramebufferCommon.cpp +++ b/GPU/Common/FramebufferCommon.cpp @@ -22,13 +22,13 @@ #include "Common/Common.h" #include "Core/Config.h" #include "Core/CoreParameter.h" +#include "Core/Host.h" #include "Core/Reporting.h" #include "Core/ELF/ParamSFO.h" #include "Core/System.h" #include "GPU/Common/FramebufferCommon.h" #include "GPU/GPUInterface.h" #include "GPU/GPUState.h" -#include "UI/OnScreenDisplay.h" // Gross dependency! void CenterDisplayOutputRect(float *x, float *y, float *w, float *h, float origW, float origH, float frameW, float frameH, int rotation) { float outW; @@ -1012,5 +1012,5 @@ void FramebufferManagerCommon::ShowScreenResolution() { messageStream << gr->T("Window Size") << ": "; messageStream << PSP_CoreParameter().pixelWidth << "x" << PSP_CoreParameter().pixelHeight; - osm.Show(messageStream.str(), 2.0f, 0xFFFFFF, -1, true, "resize"); + host->NotifyUserMessage(messageStream.str(), 2.0f, 0xFFFFFF, "resize"); } \ No newline at end of file diff --git a/GPU/Directx9/ShaderManagerDX9.cpp b/GPU/Directx9/ShaderManagerDX9.cpp index 8a90a616b1..8c6fcaa5bf 100644 --- a/GPU/Directx9/ShaderManagerDX9.cpp +++ b/GPU/Directx9/ShaderManagerDX9.cpp @@ -22,12 +22,14 @@ #include #include "helper/global.h" #include "base/logging.h" +#include "i18n/i18n.h" #include "math/lin/matrix4x4.h" #include "math/math_util.h" #include "util/text/utf8.h" #include "Common/Common.h" #include "Core/Config.h" +#include "Core/Host.h" #include "Core/Reporting.h" #include "GPU/Math3D.h" #include "GPU/GPUState.h" @@ -35,7 +37,6 @@ #include "GPU/Directx9/ShaderManagerDX9.h" #include "GPU/Directx9/DrawEngineDX9.h" #include "GPU/Directx9/FramebufferDX9.h" -#include "UI/OnScreenDisplay.h" namespace DX9 { @@ -613,8 +614,9 @@ VSShader *ShaderManagerDX9::ApplyShader(int prim, u32 vertType) { vs = new VSShader(VSID, codeBuffer_, useHWTransform); if (vs->Failed()) { + I18NCategory *gr = GetI18NCategory("Graphics"); ERROR_LOG(HLE, "Shader compilation failed, falling back to software transform"); - osm.Show("hardware transform error - falling back to software", 2.5f, 0xFF3030FF, -1, true); + host->NotifyUserMessage(gr->T("hardware transform error - falling back to software"), 2.5f, 0xFF3030FF); delete vs; ComputeVertexShaderID(&VSID, vertType, false); diff --git a/GPU/GLES/Framebuffer.cpp b/GPU/GLES/Framebuffer.cpp index 8dad33f70d..4cf69c2599 100644 --- a/GPU/GLES/Framebuffer.cpp +++ b/GPU/GLES/Framebuffer.cpp @@ -46,8 +46,6 @@ #include "GPU/GLES/DrawEngineGLES.h" #include "GPU/GLES/ShaderManager.h" -#include "UI/OnScreenDisplay.h" - // #define DEBUG_READ_PIXELS 1 static const char tex_fs[] = @@ -180,9 +178,9 @@ void FramebufferManager::CompileDraw2DProgram() { } } if (!firstLine.empty()) { - osm.Show("Post-shader error: " + firstLine + "...", 10.0f, 0xFF3090FF); + host->NotifyUserMessage("Post-shader error: " + firstLine + "...", 10.0f, 0xFF3090FF); } else { - osm.Show("Post-shader error, see log for details", 10.0f, 0xFF3090FF); + host->NotifyUserMessage("Post-shader error, see log for details", 10.0f, 0xFF3090FF); } usePostShader_ = false; } else { diff --git a/GPU/GLES/ShaderManager.cpp b/GPU/GLES/ShaderManager.cpp index 5b3f92c6f6..9e49c236dc 100644 --- a/GPU/GLES/ShaderManager.cpp +++ b/GPU/GLES/ShaderManager.cpp @@ -26,12 +26,14 @@ #include "base/logging.h" #include "base/timeutil.h" +#include "i18n/i18n.h" #include "math/math_util.h" #include "math/lin/matrix4x4.h" #include "profiler/profiler.h" #include "Common/FileUtil.h" #include "Core/Config.h" +#include "Core/Host.h" #include "Core/Reporting.h" #include "GPU/Math3D.h" #include "GPU/GPUState.h" @@ -39,9 +41,7 @@ #include "GPU/GLES/GLStateCache.h" #include "GPU/GLES/ShaderManager.h" #include "GPU/GLES/DrawEngineGLES.h" -#include "UI/OnScreenDisplay.h" #include "Framebuffer.h" -#include "i18n/i18n.h" Shader::Shader(const char *code, uint32_t glShaderType, bool useHWTransform) : failed_(false), useHWTransform_(useHWTransform) { @@ -845,7 +845,7 @@ Shader *ShaderManager::ApplyVertexShader(int prim, u32 vertType, ShaderID *VSID) if (vs->Failed()) { I18NCategory *gr = GetI18NCategory("Graphics"); ERROR_LOG(G3D, "Shader compilation failed, falling back to software transform"); - osm.Show(gr->T("hardware transform error - falling back to software"), 2.5f, 0xFF3030FF, -1, true); + host->NotifyUserMessage(gr->T("hardware transform error - falling back to software"), 2.5f, 0xFF3030FF); delete vs; // TODO: Look for existing shader with the appropriate ID, use that instead of generating a new one - however, need to make sure diff --git a/GPU/GLES/TextureCache.cpp b/GPU/GLES/TextureCache.cpp index dfd436e0f8..956acad3a6 100644 --- a/GPU/GLES/TextureCache.cpp +++ b/GPU/GLES/TextureCache.cpp @@ -38,7 +38,6 @@ #include "GPU/GLES/ShaderManager.h" #include "GPU/GLES/DrawEngineGLES.h" #include "GPU/Common/TextureDecoder.h" -#include "UI/OnScreenDisplay.h" #ifdef _M_SSE #include @@ -1917,9 +1916,9 @@ void TextureCache::LoadTextureLevel(TexCacheEntry &entry, ReplacedTexture &repla I18NCategory *err = GetI18NCategory("Error"); if (scaleFactor > 1) { - osm.Show(err->T("Warning: Video memory FULL, reducing upscaling and switching to slow caching mode"), 2.0f); + host->NotifyUserMessage(err->T("Warning: Video memory FULL, reducing upscaling and switching to slow caching mode"), 2.0f); } else { - osm.Show(err->T("Warning: Video memory FULL, switching to slow caching mode"), 2.0f); + host->NotifyUserMessage(err->T("Warning: Video memory FULL, switching to slow caching mode"), 2.0f); } } else if (err != GL_NO_ERROR) { // We checked the err anyway, might as well log if there is one. diff --git a/GPU/Vulkan/FramebufferVulkan.cpp b/GPU/Vulkan/FramebufferVulkan.cpp index b16a90eab7..4aba64abd1 100644 --- a/GPU/Vulkan/FramebufferVulkan.cpp +++ b/GPU/Vulkan/FramebufferVulkan.cpp @@ -50,8 +50,6 @@ #include "GPU/Vulkan/ShaderManagerVulkan.h" #include "GPU/Vulkan/VulkanUtil.h" -#include "UI/OnScreenDisplay.h" - const VkFormat framebufFormat = VK_FORMAT_R8G8B8A8_UNORM; static const char tex_fs[] = R"(#version 400 diff --git a/GPU/Vulkan/ShaderManagerVulkan.cpp b/GPU/Vulkan/ShaderManagerVulkan.cpp index 18dd767c1e..e0397adc8f 100644 --- a/GPU/Vulkan/ShaderManagerVulkan.cpp +++ b/GPU/Vulkan/ShaderManagerVulkan.cpp @@ -39,7 +39,6 @@ #include "GPU/Vulkan/FramebufferVulkan.h" #include "GPU/Vulkan/FragmentShaderGeneratorVulkan.h" #include "GPU/Vulkan/VertexShaderGeneratorVulkan.h" -#include "UI/OnScreenDisplay.h" VulkanFragmentShader::VulkanFragmentShader(VulkanContext *vulkan, ShaderID id, const char *code, bool useHWTransform) : vulkan_(vulkan), id_(id), failed_(false), useHWTransform_(useHWTransform), module_(0) { diff --git a/GPU/Vulkan/TextureCacheVulkan.cpp b/GPU/Vulkan/TextureCacheVulkan.cpp index 446290f917..2d0a03891c 100644 --- a/GPU/Vulkan/TextureCacheVulkan.cpp +++ b/GPU/Vulkan/TextureCacheVulkan.cpp @@ -42,7 +42,6 @@ #include "GPU/Vulkan/ShaderManagerVulkan.h" #include "GPU/Vulkan/DrawEngineVulkan.h" #include "GPU/Common/TextureDecoder.h" -#include "UI/OnScreenDisplay.h" #ifdef _M_SSE #include @@ -1360,9 +1359,9 @@ void TextureCacheVulkan::BuildTexture(TexCacheEntry *const entry,VulkanPushBuffe I18NCategory *err = GetI18NCategory("Error"); if (scaleFactor > 1) { - osm.Show(err->T("Warning: Video memory FULL, reducing upscaling and switching to slow caching mode"), 2.0f); + host->NotifyUserMessage(err->T("Warning: Video memory FULL, reducing upscaling and switching to slow caching mode"), 2.0f); } else { - osm.Show(err->T("Warning: Video memory FULL, switching to slow caching mode"), 2.0f); + host->NotifyUserMessage(err->T("Warning: Video memory FULL, switching to slow caching mode"), 2.0f); } scaleFactor = 1; diff --git a/UI/HostTypes.h b/UI/HostTypes.h index 3d18d9b681..d591a60d58 100644 --- a/UI/HostTypes.h +++ b/UI/HostTypes.h @@ -18,6 +18,7 @@ #pragma once #include "Core/Host.h" +#include "UI/OnScreenDisplay.h" #if !defined(MOBILE_DEVICE) && defined(USING_QT_UI) #include "Core/Debugger/SymbolMap.h" @@ -50,6 +51,10 @@ public: bool IsDebuggingEnabled() override {return false;} bool AttemptLoadSymbolMap() override {return false;} void SetWindowTitle(const char *message) override {} + + void NotifyUserMessage(const std::string &message, float duration = 1.0f, u32 color = 0x00FFFFFF, const char *id = nullptr) override { + osm.Show(message, duration, color, -1, true, id); + } }; #if !defined(MOBILE_DEVICE) && defined(USING_QT_UI) @@ -126,6 +131,11 @@ public: mainWindow->setWindowTitle(title); } + + void NotifyUserMessage(const std::string &message, float duration = 1.0f, u32 color = 0x00FFFFFF, const char *id = nullptr) override { + osm.Show(message, duration, color, -1, true, id); + } + bool GPUDebuggingActive() { auto dialogDisplayList = mainWindow->GetDialogDisplaylist(); diff --git a/UI/UI.vcxproj b/UI/UI.vcxproj index 596eba30a8..8fbcf5c79f 100644 --- a/UI/UI.vcxproj +++ b/UI/UI.vcxproj @@ -60,6 +60,7 @@ + diff --git a/UI/UI.vcxproj.filters b/UI/UI.vcxproj.filters index 72f02e5b73..4ee956b350 100644 --- a/UI/UI.vcxproj.filters +++ b/UI/UI.vcxproj.filters @@ -132,6 +132,7 @@ Screens + diff --git a/Windows/WindowsHost.cpp b/Windows/WindowsHost.cpp index 9121e630b4..d2d7582389 100644 --- a/Windows/WindowsHost.cpp +++ b/Windows/WindowsHost.cpp @@ -34,10 +34,12 @@ #include "input/keycodes.h" #include "util/text/utf8.h" +#include "Common/StringUtils.h" #include "Core/Core.h" #include "Core/Config.h" #include "Core/CoreParameter.h" #include "Core/System.h" +#include "Core/Debugger/SymbolMap.h" #include "Windows/EmuThread.h" #include "Windows/DSoundStream.h" #include "Windows/WindowsHost.h" @@ -54,10 +56,8 @@ #include "Windows/XinputDevice.h" #include "Windows/KeyboardDevice.h" -#include "Core/Debugger/SymbolMap.h" - -#include "Common/StringUtils.h" #include "Windows/main.h" +#include "UI/OnScreenDisplay.h" static const int numCPUs = 1; @@ -348,3 +348,7 @@ void WindowsHost::GoFullscreen(bool viewFullscreen) { void WindowsHost::ToggleDebugConsoleVisibility() { MainWindow::ToggleDebugConsoleVisibility(); } + +void WindowsHost::NotifyUserMessage(const std::string &message, float duration, u32 color, const char *id) { + osm.Show(message, duration, color, -1, true, id); +} diff --git a/Windows/WindowsHost.h b/Windows/WindowsHost.h index ed00d060f0..df95185ddc 100644 --- a/Windows/WindowsHost.h +++ b/Windows/WindowsHost.h @@ -64,6 +64,8 @@ public: bool CanCreateShortcut() override; bool CreateDesktopShortcut(std::string argumentPath, std::string title) override; + void NotifyUserMessage(const std::string &message, float duration = 1.0f, u32 color = 0x00FFFFFF, const char *id = nullptr) override; + void GoFullscreen(bool) override; std::shared_ptr keyboard; diff --git a/android/jni/Android.mk b/android/jni/Android.mk index 1a10dcc739..3cdb8d29b3 100644 --- a/android/jni/Android.mk +++ b/android/jni/Android.mk @@ -169,7 +169,6 @@ EXEC_AND_LIB_FILES := \ $(SRC)/Core/MIPS/IR/IRPassSimplify.cpp \ $(SRC)/Core/MIPS/IR/IRRegCache.cpp \ $(SRC)/UI/ui_atlas.cpp \ - $(SRC)/UI/OnScreenDisplay.cpp \ $(SRC)/ext/libkirk/AES.c \ $(SRC)/ext/libkirk/amctrl.c \ $(SRC)/ext/libkirk/SHA1.c \ @@ -411,6 +410,7 @@ LOCAL_SRC_FILES := \ $(SRC)/UI/TouchControlVisibilityScreen.cpp \ $(SRC)/UI/CwCheatScreen.cpp \ $(SRC)/UI/InstallZipScreen.cpp \ + $(SRC)/UI/OnScreenDisplay.cpp \ $(SRC)/UI/ProfilerDraw.cpp \ $(SRC)/UI/NativeApp.cpp \ $(SRC)/UI/ComboKeyMappingScreen.cpp diff --git a/headless/Headless.vcxproj b/headless/Headless.vcxproj index c1ae2d41fa..ce1048f8be 100644 --- a/headless/Headless.vcxproj +++ b/headless/Headless.vcxproj @@ -224,7 +224,6 @@ - @@ -266,7 +265,6 @@ - diff --git a/headless/Headless.vcxproj.filters b/headless/Headless.vcxproj.filters index d699015802..65c3c90c80 100644 --- a/headless/Headless.vcxproj.filters +++ b/headless/Headless.vcxproj.filters @@ -3,7 +3,6 @@ - Windows @@ -28,7 +27,6 @@ - Windows