From 7efa69a20d5cb4034a1831afa6f252c9e27f2a2c Mon Sep 17 00:00:00 2001 From: WiggleWizard <1405402+WiggleWizard@users.noreply.github.com> Date: Wed, 11 Sep 2024 12:03:09 +0100 Subject: [PATCH] Enabled multithreaded compilation and fixed some build warnings Enabled MT compilation for all first party TUs and some third party ones too. Disabled specific warnings in third party code, started fixing warnings in first party code as well --- .../CharacterControllerPanel.h | 6 ++-- Editor/src/ComponentsPanel/ComponentPanel.h | 4 +-- .../src/ComponentsPanel/SkinnedModelPanel.h | 2 +- Editor/src/Misc/ImGuiTextHelper.h | 4 +-- Editor/src/Windows/EditorInterface.cpp | 36 +++++++++---------- Editor/src/Windows/EditorSelectionPanel.cpp | 2 +- Editor/src/Windows/NewProjectWindow.cpp | 4 +-- .../ProjectSettings/ProjectSettingsWindow.cpp | 8 ++--- Nuake/dependencies/assimp_p5.lua | 7 ++++ Nuake/dependencies/freetype_p5.lua | 9 ++++- Nuake/dependencies/glfw_p5.lua | 2 ++ Nuake/dependencies/jolt_p5.lua | 8 +++++ Nuake/dependencies/msdf-atlas-gen_p5.lua | 7 ++++ Nuake/dependencies/yoga_p5.lua | 7 ++++ Nuake/src/Rendering/Renderer.h | 3 -- premake5.lua | 18 +++++++++- 16 files changed, 89 insertions(+), 38 deletions(-) diff --git a/Editor/src/ComponentsPanel/CharacterControllerPanel.h b/Editor/src/ComponentsPanel/CharacterControllerPanel.h index 7739efd3..6e7a1a8c 100644 --- a/Editor/src/ComponentsPanel/CharacterControllerPanel.h +++ b/Editor/src/ComponentsPanel/CharacterControllerPanel.h @@ -50,7 +50,7 @@ public: { ImGui::Text("Stick to floor step down"); ImGui::TableNextColumn(); - ImGui::DragFloat("##StickToFloorStepDown", &component.StickToFloorStepDown.y, -10.0f, 0.01, 0.0f); + ImGui::DragFloat("##StickToFloorStepDown", &component.StickToFloorStepDown.y, -10.0f, 0.01f, 0.0f); ImGui::TableNextColumn(); ComponentTableReset(component.StickToFloorStepDown.y, -0.5f); } @@ -58,7 +58,7 @@ public: { ImGui::Text("Step down extra"); ImGui::TableNextColumn(); - ImGui::DragFloat("##StepDownExtra", &component.StepDownExtra.y, -10.0f, 0.01, 0.0f); + ImGui::DragFloat("##StepDownExtra", &component.StepDownExtra.y, -10.0f, 0.01f, 0.0f); ImGui::TableNextColumn(); ComponentTableReset(component.StepDownExtra.y, 0.0f); } @@ -66,7 +66,7 @@ public: { ImGui::Text("Step up"); ImGui::TableNextColumn(); - ImGui::DragFloat("##StepUp", &component.SteppingStepUp.y, 0.0f, 0.01, 10.0f); + ImGui::DragFloat("##StepUp", &component.SteppingStepUp.y, 0.0f, 0.01f, 10.0f); ImGui::TableNextColumn(); ComponentTableReset(component.SteppingStepUp.y, 0.4f); } diff --git a/Editor/src/ComponentsPanel/ComponentPanel.h b/Editor/src/ComponentsPanel/ComponentPanel.h index b6e9baa0..0ed64a4d 100644 --- a/Editor/src/ComponentsPanel/ComponentPanel.h +++ b/Editor/src/ComponentsPanel/ComponentPanel.h @@ -26,7 +26,7 @@ ImGui::Text(##name); bool removed = false; \ bool headerOpened = ImGui::CollapsingHeader(#name, ImGuiTreeNodeFlags_DefaultOpen); \ ImGui::PopStyleVar(); \ - if (#name != "TRANSFORM" && ImGui::BeginPopupContextItem()) \ + if (strcmp(#name, "TRANSFORM") != 0 && ImGui::BeginPopupContextItem()) \ { \ if (ImGui::Selectable("Remove")) { removed = true; } \ ImGui::EndPopup(); \ @@ -42,7 +42,7 @@ ImGui::Text(##name); { \ delete boldFont; \ ImGui::PopStyleVar(); \ - ImGui::Indent(); \ + ImGui::Indent(); \ if (ImGui::BeginTable(#name, 3, ImGuiTableFlags_SizingStretchProp)) \ { \ ImGui::TableSetupColumn("name", 0, 0.25f); \ diff --git a/Editor/src/ComponentsPanel/SkinnedModelPanel.h b/Editor/src/ComponentsPanel/SkinnedModelPanel.h index 12d3c73e..9083d2cd 100644 --- a/Editor/src/ComponentsPanel/SkinnedModelPanel.h +++ b/Editor/src/ComponentsPanel/SkinnedModelPanel.h @@ -129,7 +129,7 @@ public: auto animations = model->GetAnimations(); if (ImGui::BeginCombo("Type", model->GetCurrentAnimation()->GetName().c_str())) { - for (int n = 0; n < model->GetAnimationsCount(); n++) + for (uint32_t n = 0; n < model->GetAnimationsCount(); n++) { bool is_selected = (animIndex == n); std::string animName = animations[n]->GetName(); diff --git a/Editor/src/Misc/ImGuiTextHelper.h b/Editor/src/Misc/ImGuiTextHelper.h index 87dde8df..1235abf5 100644 --- a/Editor/src/Misc/ImGuiTextHelper.h +++ b/Editor/src/Misc/ImGuiTextHelper.h @@ -6,7 +6,7 @@ void ImGuiTextSTD(const std::string& label, std::string& value) { char buffer[256]; memset(buffer, 0, sizeof(buffer)); - std::strncpy(buffer, value.c_str(), sizeof(buffer)); + strncpy_s(buffer, value.c_str(), sizeof(buffer)); if (ImGui::InputText(label.c_str(), buffer, sizeof(buffer))) { @@ -18,7 +18,7 @@ void ImGuiTextMultiline(const std::string& label, std::string& value) { char buffer[256]; memset(buffer, 0, sizeof(buffer)); - std::strncpy(buffer, value.c_str(), sizeof(buffer)); + strncpy_s(buffer, value.c_str(), sizeof(buffer)); if (ImGui::InputTextMultiline(label.c_str(), buffer, sizeof(buffer))) { value = std::string(buffer); diff --git a/Editor/src/Windows/EditorInterface.cpp b/Editor/src/Windows/EditorInterface.cpp index 0f4aedd6..d660fff4 100644 --- a/Editor/src/Windows/EditorInterface.cpp +++ b/Editor/src/Windows/EditorInterface.cpp @@ -645,12 +645,12 @@ namespace Nuake { float frameTime = 1000.0f / io.Framerate; int fps = (int)io.Framerate; ImGui::PushStyleVar(ImGuiStyleVar_ChildBorderSize, 0.0f); - ImGui::PushStyleColor(ImGuiCol_ChildBg, ImVec4(0.1, 0.1, 0.1, 1)); + ImGui::PushStyleColor(ImGuiCol_ChildBg, ImVec4(0.1f, 0.1f, 0.1f, 1)); ImGui::BeginChild("FPS", ImVec2(70, 30), false); std::string text = std::to_string(fps) + " fps"; - ImGui::SetCursorPosX(ImGui::GetCursorPosX() + ImGui::GetContentRegionAvail().x / 1.25 - ImGui::CalcTextSize(text.c_str()).x - - ImGui::GetScrollX() - 2 * ImGui::GetStyle().ItemSpacing.x); + ImGui::SetCursorPosX(ImGui::GetCursorPosX() + ImGui::GetContentRegionAvail().x / 1.25f - ImGui::CalcTextSize(text.c_str()).x + - ImGui::GetScrollX() - 2.f * ImGui::GetStyle().ItemSpacing.x); ImGui::SetCursorPosY(ImGui::GetCursorPosY() + 15 - (ImGui::CalcTextSize(text.c_str()).y) / 2.0); ImGui::Text(text.c_str()); @@ -953,9 +953,9 @@ namespace Nuake { BEGIN_COLLAPSE_HEADER(SKY); if (ImGui::BeginTable("EnvTable", 3, ImGuiTableFlags_BordersInner | ImGuiTableFlags_SizingStretchProp)) { - ImGui::TableSetupColumn("name", 0, 0.3); - ImGui::TableSetupColumn("set", 0, 0.6); - ImGui::TableSetupColumn("reset", 0, 0.1); + ImGui::TableSetupColumn("name", 0, 0.3f); + ImGui::TableSetupColumn("set", 0, 0.6f); + ImGui::TableSetupColumn("reset", 0, 0.1f); ImGui::TableNextColumn(); { @@ -1169,9 +1169,9 @@ namespace Nuake { BEGIN_COLLAPSE_HEADER(BLOOM) if (ImGui::BeginTable("BloomTable", 3, ImGuiTableFlags_BordersInner | ImGuiTableFlags_SizingStretchProp)) { - ImGui::TableSetupColumn("name", 0, 0.3); - ImGui::TableSetupColumn("set", 0, 0.6); - ImGui::TableSetupColumn("reset", 0, 0.1); + ImGui::TableSetupColumn("name", 0, 0.3f); + ImGui::TableSetupColumn("set", 0, 0.6f); + ImGui::TableSetupColumn("reset", 0, 0.1f); ImGui::TableNextColumn(); { @@ -1236,9 +1236,9 @@ namespace Nuake { BEGIN_COLLAPSE_HEADER(VOLUMETRIC) if (ImGui::BeginTable("EnvTable", 3, ImGuiTableFlags_BordersInner | ImGuiTableFlags_SizingStretchProp)) { - ImGui::TableSetupColumn("name", 0, 0.3); - ImGui::TableSetupColumn("set", 0, 0.6); - ImGui::TableSetupColumn("reset", 0, 0.1); + ImGui::TableSetupColumn("name", 0, 0.3f); + ImGui::TableSetupColumn("set", 0, 0.6f); + ImGui::TableSetupColumn("reset", 0, 0.1f); ImGui::TableNextColumn(); { @@ -1318,9 +1318,9 @@ namespace Nuake { BEGIN_COLLAPSE_HEADER(SSAO) if (ImGui::BeginTable("EnvTable", 3, ImGuiTableFlags_BordersInner | ImGuiTableFlags_SizingStretchProp)) { - ImGui::TableSetupColumn("name", 0, 0.3); - ImGui::TableSetupColumn("set", 0, 0.6); - ImGui::TableSetupColumn("reset", 0, 0.1); + ImGui::TableSetupColumn("name", 0, 0.3f); + ImGui::TableSetupColumn("set", 0, 0.6f); + ImGui::TableSetupColumn("reset", 0, 0.1f); ImGui::TableNextColumn(); { @@ -1810,9 +1810,9 @@ namespace Nuake { BEGIN_COLLAPSE_HEADER(BARREL_DISTORTION) if (ImGui::BeginTable("EnvTable", 3, ImGuiTableFlags_BordersInner | ImGuiTableFlags_SizingStretchProp)) { - ImGui::TableSetupColumn("name", 0, 0.3); - ImGui::TableSetupColumn("set", 0, 0.6); - ImGui::TableSetupColumn("reset", 0, 0.1); + ImGui::TableSetupColumn("name", 0, 0.3f); + ImGui::TableSetupColumn("set", 0, 0.6f); + ImGui::TableSetupColumn("reset", 0, 0.1f); { ImGui::TableNextColumn(); diff --git a/Editor/src/Windows/EditorSelectionPanel.cpp b/Editor/src/Windows/EditorSelectionPanel.cpp index 1e7316dc..fa73086f 100644 --- a/Editor/src/Windows/EditorSelectionPanel.cpp +++ b/Editor/src/Windows/EditorSelectionPanel.cpp @@ -77,7 +77,7 @@ void EditorSelectionPanel::Draw(EditorSelection selection) ImGui::SetCursorPosX((windowWidth - textWidth) * 0.5f); ImGui::SetCursorPosY((windowHeight - textHeight) * 0.5f); - ImGui::TextColored({1, 0.1, 0.1, 1.0}, text.c_str()); + ImGui::TextColored({1.f, 0.1f, 0.1f, 1.0f}, text.c_str()); } DrawFile(selection.File); diff --git a/Editor/src/Windows/NewProjectWindow.cpp b/Editor/src/Windows/NewProjectWindow.cpp index 4b7b07ce..848b9d29 100644 --- a/Editor/src/Windows/NewProjectWindow.cpp +++ b/Editor/src/Windows/NewProjectWindow.cpp @@ -53,7 +53,7 @@ namespace Nuake ImGui::PopStyleVar(); } - ImGui::PushStyleColor(ImGuiCol_ChildBg, ImVec4(0.1, 0.1, 0.1, 0.2f)); + ImGui::PushStyleColor(ImGuiCol_ChildBg, ImVec4(0.1f, 0.1f, 0.1f, 0.2f)); ImGui::BeginChild("TemplateContainer", { ImGui::GetContentRegionAvail().x - 64.0f, ImGui::GetContentRegionAvail().y }, true, ImGuiChildFlags_AlwaysUseWindowPadding); { ImGui::Dummy({ 4, 4 }); @@ -94,7 +94,7 @@ namespace Nuake if (showTitleEmptyWarning && projectTitle.empty()) { ImGui::SameLine(); - ImGui::TextColored({ 1.0, 0.1, 0.1, 1.0 }, ICON_FA_EXCLAMATION_TRIANGLE); + ImGui::TextColored({ 1.0f, 0.1f, 0.1f, 1.0f }, ICON_FA_EXCLAMATION_TRIANGLE); Nuake::UI::Tooltip("Title required"); } diff --git a/Editor/src/Windows/ProjectSettings/ProjectSettingsWindow.cpp b/Editor/src/Windows/ProjectSettings/ProjectSettingsWindow.cpp index 94d74d7d..24c0ca99 100644 --- a/Editor/src/Windows/ProjectSettings/ProjectSettingsWindow.cpp +++ b/Editor/src/Windows/ProjectSettings/ProjectSettingsWindow.cpp @@ -184,11 +184,11 @@ void ProjectSettingsCategoryPhysics::Draw() Engine::SetPhysicsStep(Engine::GetProject()->Settings.PhysicsStep); } - ImGui::DragInt("Maximum SubSteps", &Engine::GetProject()->Settings.MaxPhysicsSubStep, 1.0f, 8.0f, 128); + ImGui::DragInt("Maximum SubSteps", &Engine::GetProject()->Settings.MaxPhysicsSubStep, 1, 8, 128); - ImGui::DragInt("Maximum Bodies", &Engine::GetProject()->Settings.MaxPhysicsBodies, 1.0f, 256.0f, 8000); - ImGui::DragInt("Maximum Body Pair", &Engine::GetProject()->Settings.MaxPhysicsBodyPair, 1.0f, 256.0f, 4096.0f); - ImGui::DragInt("Maximum Contact Constraint", &Engine::GetProject()->Settings.MaxPhysicsContactConstraints, 1.0f, 256.0f, 4096.0f); + ImGui::DragInt("Maximum Bodies", &Engine::GetProject()->Settings.MaxPhysicsBodies, 1.0f, 256, 8000); + ImGui::DragInt("Maximum Body Pair", &Engine::GetProject()->Settings.MaxPhysicsBodyPair, 1.0f, 256, 4096); + ImGui::DragInt("Maximum Contact Constraint", &Engine::GetProject()->Settings.MaxPhysicsContactConstraints, 1.0f, 256, 4096); } ProjectSettingsCategoryAudio::ProjectSettingsCategoryAudio(Ref project) : diff --git a/Nuake/dependencies/assimp_p5.lua b/Nuake/dependencies/assimp_p5.lua index 76fc36f2..659610d9 100644 --- a/Nuake/dependencies/assimp_p5.lua +++ b/Nuake/dependencies/assimp_p5.lua @@ -119,6 +119,13 @@ project 'assimp' 'ASSIMP_BUILD_NO_3MF_EXPORTER', 'ASSIMP_BUILD_NO_ASSJSON_EXPORTER' } + + -- When building any Visual Studio solution + filter { "system:windows", "action:vs*"} + flags + { + "MultiProcessorCompile", + } filter "configurations:Debug" runtime "Debug" diff --git a/Nuake/dependencies/freetype_p5.lua b/Nuake/dependencies/freetype_p5.lua index 3ba9ee8a..61ed7905 100644 --- a/Nuake/dependencies/freetype_p5.lua +++ b/Nuake/dependencies/freetype_p5.lua @@ -60,7 +60,14 @@ project "Freetype" filter "system:windows" - systemversion "latest" + systemversion "latest" + + -- warning C4244: 'function': conversion from '__int64' to 'const unsigned int', possible loss of data + -- warning C4996: 'getenv': This function or variable may be unsafe. Consider using _dupenv_s instead + -- warning C4996: 'strncpy': This function or variable may be unsafe. Consider using strncpy_s instead. + -- warning C4267: '=': conversion from 'size_t' to 'FT_Int', possible loss of data + -- warning C4312: 'type cast': conversion from 'unsigned long' to 'void *' of greater size + disablewarnings { "4996", "4267", "4244", "4312" } defines { diff --git a/Nuake/dependencies/glfw_p5.lua b/Nuake/dependencies/glfw_p5.lua index d5472985..2b9b96ac 100644 --- a/Nuake/dependencies/glfw_p5.lua +++ b/Nuake/dependencies/glfw_p5.lua @@ -40,6 +40,8 @@ project "GLFW" { "_GLFW_WIN32", } + + disablewarnings { "4996" } filter "system:linux" diff --git a/Nuake/dependencies/jolt_p5.lua b/Nuake/dependencies/jolt_p5.lua index baa49950..97675a6d 100644 --- a/Nuake/dependencies/jolt_p5.lua +++ b/Nuake/dependencies/jolt_p5.lua @@ -36,6 +36,14 @@ project 'JoltPhysics' prebuildcommands { "cp %{prj.location}./Jolt.cpp %{prj.location}/" } + + -- When building any Visual Studio solution + filter { "system:windows", "action:vs*"} + flags + { + "MultiProcessorCompile", + } + filter "configurations:Debug" cppdialect "C++17" runtime "Debug" diff --git a/Nuake/dependencies/msdf-atlas-gen_p5.lua b/Nuake/dependencies/msdf-atlas-gen_p5.lua index ac5907fc..bea4d5b4 100644 --- a/Nuake/dependencies/msdf-atlas-gen_p5.lua +++ b/Nuake/dependencies/msdf-atlas-gen_p5.lua @@ -32,6 +32,13 @@ project 'msdf-gen' defines { } + + -- When building any Visual Studio solution + filter { "system:windows", "action:vs*"} + flags + { + "MultiProcessorCompile", + } filter "configurations:Debug" runtime "Debug" diff --git a/Nuake/dependencies/yoga_p5.lua b/Nuake/dependencies/yoga_p5.lua index 64e2fb80..530dcd24 100644 --- a/Nuake/dependencies/yoga_p5.lua +++ b/Nuake/dependencies/yoga_p5.lua @@ -25,6 +25,13 @@ project 'yoga' defines { } + -- When building any Visual Studio solution + filter { "system:windows", "action:vs*"} + flags + { + "MultiProcessorCompile", + } + filter "configurations:Debug" runtime "Debug" symbols "on" diff --git a/Nuake/src/Rendering/Renderer.h b/Nuake/src/Rendering/Renderer.h index 4c2fb838..9d1c7885 100644 --- a/Nuake/src/Rendering/Renderer.h +++ b/Nuake/src/Rendering/Renderer.h @@ -15,9 +15,6 @@ namespace Nuake { - struct TransformComponent; - struct LightComponent; - struct Light { TransformComponent transform; diff --git a/premake5.lua b/premake5.lua index d7256f2e..e78e21cc 100644 --- a/premake5.lua +++ b/premake5.lua @@ -210,7 +210,12 @@ project "Nuake" { "NK_WIN" } - + + filter { "system:windows", "action:vs*"} + flags + { + "MultiProcessorCompile", + } filter "configurations:Debug" runtime "Debug" @@ -308,6 +313,12 @@ project "NuakeRuntime" '{COPYFILE} "%{wks.location}/Nuake/dependencies/Coral/Coral.Managed/Coral.Managed.runtimeconfig.json" "%{wks.location}/%{prj.name}"' } + filter { "system:windows", "action:vs*"} + flags + { + "MultiProcessorCompile", + } + filter "system:linux" links { @@ -471,6 +482,11 @@ project "Editor" '{COPYFILE} "%{wks.location}/Nuake/dependencies/Coral/Coral.Managed/bin/%{cfg.buildcfg}/Coral.Managed.dll" "%{wks.location}/%{prj.name}"' } + filter { "system:windows", "action:vs*"} + flags + { + "MultiProcessorCompile", + } filter "system:linux" links