From 870a48506ec8c60c5ad7a01decd10ce94191fbe1 Mon Sep 17 00:00:00 2001 From: Pier-Olivier Boulianne Date: Mon, 24 Mar 2025 00:16:12 -0400 Subject: [PATCH 1/3] Added FMOD submodule --- .gitmodules | 3 +++ Dependencies.lua | 1 + StarEngine/premake5.lua | 3 +++ StarEngine/vendor/FMOD-Audio | 1 + premake5.lua | 1 + 5 files changed, 9 insertions(+) create mode 160000 StarEngine/vendor/FMOD-Audio diff --git a/.gitmodules b/.gitmodules index f669594c..e41ef8f1 100644 --- a/.gitmodules +++ b/.gitmodules @@ -20,3 +20,6 @@ [submodule "StarEngine/vendor/Box2D"] path = StarEngine/vendor/Box2D url = https://github.com/sheazywi/box2d +[submodule "StarEngine/vendor/FMOD-Audio"] + path = StarEngine/vendor/FMOD-Audio + url = https://github.com/sheazywi/FMOD-Audio-Engine diff --git a/Dependencies.lua b/Dependencies.lua index 96e80511..db11920c 100644 --- a/Dependencies.lua +++ b/Dependencies.lua @@ -12,6 +12,7 @@ IncludeDir["ImGui"] = "%{wks.location}/StarEngine/vendor/imgui" IncludeDir["ImGuizmo"] = "%{wks.location}/StarEngine/vendor/imguizmo" IncludeDir["glm"] = "%{wks.location}/StarEngine/vendor/glm" IncludeDir["entt"] = "%{wks.location}/StarEngine/vendor/entt/include" +IncludeDir["FMODAudio"] = "%{wks.location}/StarEngine/vendor/FMOD-Audio/AudioEngine/Include" IncludeDir["shaderc"] = "%{wks.location}/StarEngine/vendor/shaderc/include" IncludeDir["SPIRV_Cross"] = "%{wks.location}/StarEngine/vendor/SPIRV-Cross" IncludeDir["VulkanSDK"] = "%{VULKAN_SDK}/Include" diff --git a/StarEngine/premake5.lua b/StarEngine/premake5.lua index 227d5bff..d4cca384 100644 --- a/StarEngine/premake5.lua +++ b/StarEngine/premake5.lua @@ -42,6 +42,7 @@ project "StarEngine" "%{IncludeDir.entt}", "%{IncludeDir.yaml_cpp}", "%{IncludeDir.ImGuizmo}", + "%{IncludeDir.FMODAudio}", "%{IncludeDir.VulkanSDK}" } @@ -53,6 +54,7 @@ project "StarEngine" "opengl32.lib", "yaml-cpp", "Box2D", + "FMODAudioEngine", "dwmapi.lib" } @@ -64,6 +66,7 @@ project "StarEngine" defines { + } filter "configurations:Debug" diff --git a/StarEngine/vendor/FMOD-Audio b/StarEngine/vendor/FMOD-Audio new file mode 160000 index 00000000..4d84391c --- /dev/null +++ b/StarEngine/vendor/FMOD-Audio @@ -0,0 +1 @@ +Subproject commit 4d84391c2ee5905b40f9351d80514391edca3a14 diff --git a/premake5.lua b/premake5.lua index 410f1d89..817bce68 100644 --- a/premake5.lua +++ b/premake5.lua @@ -31,6 +31,7 @@ group "Dependencies" include "StarEngine/vendor/GLAD" include "StarEngine/vendor/imgui" include "StarEngine/vendor/yaml-cpp" + include "StarEngine/vendor/FMOD-Audio" group "" include "StarEngine" From 836ebfab34cb2fd02e2e1b6980cefed2efaa90a8 Mon Sep 17 00:00:00 2001 From: Pier-Olivier Boulianne Date: Fri, 28 Mar 2025 20:58:30 -0400 Subject: [PATCH 2/3] update now working but still not initializing --- Dependencies.lua | 3 ++- StarEngine/premake5.lua | 6 +++--- StarEngine/vendor/FMOD-Audio | 2 +- 3 files changed, 6 insertions(+), 5 deletions(-) diff --git a/Dependencies.lua b/Dependencies.lua index db11920c..d8029eb6 100644 --- a/Dependencies.lua +++ b/Dependencies.lua @@ -12,7 +12,8 @@ IncludeDir["ImGui"] = "%{wks.location}/StarEngine/vendor/imgui" IncludeDir["ImGuizmo"] = "%{wks.location}/StarEngine/vendor/imguizmo" IncludeDir["glm"] = "%{wks.location}/StarEngine/vendor/glm" IncludeDir["entt"] = "%{wks.location}/StarEngine/vendor/entt/include" -IncludeDir["FMODAudio"] = "%{wks.location}/StarEngine/vendor/FMOD-Audio/AudioEngine/Include" +IncludeDir["FMODCore"] = "%{wks.location}/StarEngine/vendor/FMOD-Audio/AudioEngine/Include" +IncludeDir["FMODEngine"] = "%{wks.location}/StarEngine/vendor/FMOD-Audio/AudioEngine" IncludeDir["shaderc"] = "%{wks.location}/StarEngine/vendor/shaderc/include" IncludeDir["SPIRV_Cross"] = "%{wks.location}/StarEngine/vendor/SPIRV-Cross" IncludeDir["VulkanSDK"] = "%{VULKAN_SDK}/Include" diff --git a/StarEngine/premake5.lua b/StarEngine/premake5.lua index d4cca384..9869dfdb 100644 --- a/StarEngine/premake5.lua +++ b/StarEngine/premake5.lua @@ -42,7 +42,8 @@ project "StarEngine" "%{IncludeDir.entt}", "%{IncludeDir.yaml_cpp}", "%{IncludeDir.ImGuizmo}", - "%{IncludeDir.FMODAudio}", + "%{IncludeDir.FMODCore}", + "%{IncludeDir.FMODEngine}", "%{IncludeDir.VulkanSDK}" } @@ -54,7 +55,6 @@ project "StarEngine" "opengl32.lib", "yaml-cpp", "Box2D", - "FMODAudioEngine", "dwmapi.lib" } @@ -106,4 +106,4 @@ project "StarEngine" } filter "action:vs2022" - buildoptions { "/utf-8" } \ No newline at end of file + buildoptions { "/utf-8" } diff --git a/StarEngine/vendor/FMOD-Audio b/StarEngine/vendor/FMOD-Audio index 4d84391c..df8f015f 160000 --- a/StarEngine/vendor/FMOD-Audio +++ b/StarEngine/vendor/FMOD-Audio @@ -1 +1 @@ -Subproject commit 4d84391c2ee5905b40f9351d80514391edca3a14 +Subproject commit df8f015f6a0ffdb242f4e2f9076e816e703560ca From 6fc8cc066e2ac9cf00e2d6d36c3a660649d647d5 Mon Sep 17 00:00:00 2001 From: Pier-Olivier Boulianne Date: Fri, 28 Mar 2025 22:09:59 -0400 Subject: [PATCH 3/3] added up fonction --- StarEngine/src/StarEngine/Core/Application.cpp | 10 ++++++++++ StarEngine/src/StarEngine/Core/Application.h | 6 +++++- 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/StarEngine/src/StarEngine/Core/Application.cpp b/StarEngine/src/StarEngine/Core/Application.cpp index 0ab99fd5..7aa92ac0 100644 --- a/StarEngine/src/StarEngine/Core/Application.cpp +++ b/StarEngine/src/StarEngine/Core/Application.cpp @@ -26,6 +26,10 @@ namespace StarEngine m_Window = Window::Create(WindowProps(m_Specification.Name)); m_Window->SetEventCallback(SE_BIND_EVENT_FN(Application::OnEvent)); + m_AudioEngine = new AudioEngine(); + + m_AudioEngine->Init(); + Renderer::Init(); m_ImGuiLayer = new ImGuiLayer(); @@ -36,6 +40,10 @@ namespace StarEngine { SE_PROFILE_FUNCTION(); + m_AudioEngine->Terminate(); + m_AudioEngine = nullptr; + delete m_AudioEngine; + Renderer::Shutdown(); } @@ -107,6 +115,8 @@ namespace StarEngine m_ImGuiLayer->End(); } + m_AudioEngine->Update(); + m_Window->OnUpdate(); } } diff --git a/StarEngine/src/StarEngine/Core/Application.h b/StarEngine/src/StarEngine/Core/Application.h index d29800dc..321a0c78 100644 --- a/StarEngine/src/StarEngine/Core/Application.h +++ b/StarEngine/src/StarEngine/Core/Application.h @@ -11,6 +11,8 @@ #include "StarEngine/ImGui/ImGuiLayer.h" +#include "AudioEngine.h" + int main(int argc, char** argv); namespace StarEngine @@ -68,8 +70,10 @@ namespace StarEngine LayerStack m_LayerStack; float m_LastFrameTime = 0.0f; private: + AudioEngine* m_AudioEngine; + static Application* s_Instance; - friend int ::main(int argc, char** argv); + friend int::main(int argc, char** argv); }; // To be defined in CLIENT