This commit is contained in:
OusmBlueNinja 2025-05-08 09:36:11 -05:00
parent f419430bac
commit 31d50d60c3
3 changed files with 39 additions and 7 deletions

View File

@ -43,7 +43,7 @@ DockId=0x00000019,0
[Window][Console] [Window][Console]
Pos=390,680 Pos=390,680
Size=1185,273 Size=1185,497
Collapsed=0 Collapsed=0
DockId=0x00000013,0 DockId=0x00000013,0

View File

@ -1,3 +1,2 @@
[COMPILE] g++ -std=c++20 -Wall -g -Isrc/include -Isrc/include/lua -Isrc/vendor -Isrc/vendor/imgui -Isrc/vendor/box2d -Isrc/vendor/xxhash -Isrc/vendor/miniaudio -Isrc/vendor/imguizmo -IC:/msys64/mingw64/include -Isrc\vendor\imgui -IC:\msys64\mingw64\lib\libyaml-cpp.a -MMD -MP -c src\src\Engine.cpp -o src\build\Engine.o
[LINK] g++ src\build\Engine.o src\build\main.o src\build\Renderer.o src\build\Components\AnimationComponent.o src\build\Components\AudioPlayerComponent.o src\build\Components\CameraComponent.o src\build\Components\LightComponent.o src\build\Components\ParticleComponent.o src\build\Components\PhysicsComponent.o src\build\Components\ScriptComponent.o src\build\Components\SpriteComponent.o src\build\Components\TextComonent.o src\build\Components\TilemapComponent.o src\build\core\audio\AudioEngine.o src\build\core\functions\Prefab.o src\build\core\functions\ScenePacker.o src\build\core\scripts\LuaGlobalBridge.o src\build\core\scripts\ScriptCore.o src\build\core\utils\AssetManager.o src\build\core\utils\EngineConfig.o src\build\core\utils\ExceptionHandler.o src\build\core\utils\FileDialog.o src\build\core\utils\input.o src\build\core\utils\LoadingWindow.o src\build\core\utils\Logging.o src\build\core\utils\Popup.o src\build\core\utils\Profiler.o src\build\core\utils\Texture.o src\build\core\utils\utils.o src\build\editor\windows\AssetBrowser.o src\build\editor\windows\AudioInfo.o src\build\editor\windows\Inspector.o src\build\editor\windows\LuaGlobals.o src\build\Entitys\Object.o src\build\utils\GameObjectsList.o src\build\utils\Shader.o src\build\utils\UID.o src\build\lapi.o src\build\lauxlib.o src\build\lbaselib.o src\build\lcode.o src\build\lcorolib.o src\build\lctype.o src\build\ldblib.o src\build\ldebug.o src\build\ldo.o src\build\ldump.o src\build\lfunc.o src\build\lgc.o src\build\linit.o src\build\liolib.o src\build\llex.o src\build\lmathlib.o src\build\lmem.o src\build\loadlib.o src\build\lobject.o src\build\lopcodes.o src\build\loslib.o src\build\lparser.o src\build\lstate.o src\build\lstring.o src\build\lstrlib.o src\build\ltable.o src\build\ltablib.o src\build\ltm.o src\build\lua.o src\build\luac.o src\build\lundump.o src\build\lutf8lib.o src\build\lvm.o src\build\lzio.o src\build\imgui.o src\build\imgui_demo.o src\build\imgui_draw.o src\build\imgui_impl_glfw.o src\build\imgui_impl_opengl3.o src\build\imgui_tables.o src\build\imgui_widgets.o src\build\aabb.o src\build\arena_allocator.o src\build\array.o src\build\bitset.o src\build\body.o src\build\broad_phase.o src\build\constraint_graph.o src\build\contact.o src\build\contact_solver.o src\build\core.o src\build\distance.o src\build\distance_joint.o src\build\dynamic_tree.o src\build\geometry.o src\build\hull.o src\build\id_pool.o src\build\island.o src\build\joint.o src\build\manifold.o src\build\math_functions.o src\build\motor_joint.o src\build\mouse_joint.o src\build\mover.o src\build\prismatic_joint.o src\build\revolute_joint.o src\build\sensor.o src\build\shape.o src\build\solver.o src\build\solver_set.o src\build\table.o src\build\timer.o src\build\types.o src\build\weld_joint.o src\build\wheel_joint.o src\build\world.o src\build\xxhash.o src\build\miniaudio.o src\build\ImGuizmo.o -o src\build\app.exe -LC:\msys64\mingw64\lib -lglfw3 -lglew32 -lopengl32 -lgdi32 -lyaml-cpp -lcomdlg32 -lssl -lcrypto -ldbghelp -lz [LINK] g++ src\build\Engine.o src\build\main.o src\build\Renderer.o src\build\Components\AnimationComponent.o src\build\Components\AudioPlayerComponent.o src\build\Components\CameraComponent.o src\build\Components\LightComponent.o src\build\Components\ParticleComponent.o src\build\Components\PhysicsComponent.o src\build\Components\ScriptComponent.o src\build\Components\SpriteComponent.o src\build\Components\TextComonent.o src\build\Components\TilemapComponent.o src\build\core\audio\AudioEngine.o src\build\core\functions\Prefab.o src\build\core\functions\ScenePacker.o src\build\core\scripts\LuaGlobalBridge.o src\build\core\scripts\ScriptCore.o src\build\core\utils\AssetManager.o src\build\core\utils\EngineConfig.o src\build\core\utils\ExceptionHandler.o src\build\core\utils\FileDialog.o src\build\core\utils\input.o src\build\core\utils\LoadingWindow.o src\build\core\utils\Logging.o src\build\core\utils\Popup.o src\build\core\utils\Profiler.o src\build\core\utils\Texture.o src\build\core\utils\utils.o src\build\editor\windows\AssetBrowser.o src\build\editor\windows\AudioInfo.o src\build\editor\windows\Inspector.o src\build\editor\windows\LuaGlobals.o src\build\Entitys\Object.o src\build\utils\GameObjectsList.o src\build\utils\Shader.o src\build\utils\UID.o src\build\lapi.o src\build\lauxlib.o src\build\lbaselib.o src\build\lcode.o src\build\lcorolib.o src\build\lctype.o src\build\ldblib.o src\build\ldebug.o src\build\ldo.o src\build\ldump.o src\build\lfunc.o src\build\lgc.o src\build\linit.o src\build\liolib.o src\build\llex.o src\build\lmathlib.o src\build\lmem.o src\build\loadlib.o src\build\lobject.o src\build\lopcodes.o src\build\loslib.o src\build\lparser.o src\build\lstate.o src\build\lstring.o src\build\lstrlib.o src\build\ltable.o src\build\ltablib.o src\build\ltm.o src\build\lua.o src\build\luac.o src\build\lundump.o src\build\lutf8lib.o src\build\lvm.o src\build\lzio.o src\build\imgui.o src\build\imgui_demo.o src\build\imgui_draw.o src\build\imgui_impl_glfw.o src\build\imgui_impl_opengl3.o src\build\imgui_tables.o src\build\imgui_widgets.o src\build\aabb.o src\build\arena_allocator.o src\build\array.o src\build\bitset.o src\build\body.o src\build\broad_phase.o src\build\constraint_graph.o src\build\contact.o src\build\contact_solver.o src\build\core.o src\build\distance.o src\build\distance_joint.o src\build\dynamic_tree.o src\build\geometry.o src\build\hull.o src\build\id_pool.o src\build\island.o src\build\joint.o src\build\manifold.o src\build\math_functions.o src\build\motor_joint.o src\build\mouse_joint.o src\build\mover.o src\build\prismatic_joint.o src\build\revolute_joint.o src\build\sensor.o src\build\shape.o src\build\solver.o src\build\solver_set.o src\build\table.o src\build\timer.o src\build\types.o src\build\weld_joint.o src\build\wheel_joint.o src\build\world.o src\build\xxhash.o src\build\miniaudio.o src\build\ImGuizmo.o -o src\build\app.exe -LC:\msys64\mingw64\lib -lglfw3 -lglew32 -lopengl32 -lgdi32 -lyaml-cpp -lcomdlg32 -lssl -lcrypto -ldbghelp -lz
[ERROR] Runtime crash
Command 'src\build\app.exe' returned non-zero exit status 3221225477.

View File

@ -445,7 +445,7 @@ void DrawGizmoForObject(const std::shared_ptr<Object> &obj,
// Model matrix at z = 1 to avoid clipping // Model matrix at z = 1 to avoid clipping
glm::mat4 model = glm::translate(glm::mat4(1.0f), glm::vec3(obj->GetLocalPosition(), 1.0f)); glm::mat4 model = glm::translate(glm::mat4(1.0f), glm::vec3(obj->GetLocalPosition(), 1.0f));
model = glm::rotate(model, obj->GetLocalRotation(), glm::vec3(0, 0, 1)); model = glm::rotate(model, glm::radians(obj->GetLocalRotation()), glm::vec3(0, 0, 1));
ImGuizmo::SetOrthographic(true); ImGuizmo::SetOrthographic(true);
ImGuizmo::SetDrawlist(); ImGuizmo::SetDrawlist();
@ -616,6 +616,9 @@ void Engine::collectObjects(bool playing, const glm::vec2 &camPos, float camZoom
m_collectStack.push_back(root); m_collectStack.push_back(root);
} }
//! o(n) i think, but not really sure.
// There are not any neted for loops. so i think is O(n) or maby O(2n)
while (!m_collectStack.empty()) while (!m_collectStack.empty())
{ {
auto obj = m_collectStack.back(); auto obj = m_collectStack.back();
@ -627,7 +630,6 @@ void Engine::collectObjects(bool playing, const glm::vec2 &camPos, float camZoom
Object *raw = obj.get(); Object *raw = obj.get();
m_toDraw.push_back(raw); m_toDraw.push_back(raw);
// Light rendering
if (auto *light = raw->GetComponent<LightComponent>().get()) if (auto *light = raw->GetComponent<LightComponent>().get())
{ {
const glm::vec2 world = raw->GetWorldPosition(); const glm::vec2 world = raw->GetWorldPosition();
@ -644,7 +646,6 @@ void Engine::collectObjects(bool playing, const glm::vec2 &camPos, float camZoom
} }
} }
// Component collection
if (auto *particle = raw->GetComponent<ParticleComponent>().get()) if (auto *particle = raw->GetComponent<ParticleComponent>().get())
m_particleUpdates.push_back(particle); m_particleUpdates.push_back(particle);
@ -657,7 +658,6 @@ void Engine::collectObjects(bool playing, const glm::vec2 &camPos, float camZoom
m_physicsUpdates.push_back(physics); m_physicsUpdates.push_back(physics);
} }
// Push children to the stack
const auto &children = raw->GetChildren(); const auto &children = raw->GetChildren();
m_collectStack.insert(m_collectStack.end(), children.begin(), children.end()); m_collectStack.insert(m_collectStack.end(), children.begin(), children.end());
} }
@ -715,6 +715,30 @@ void Engine::Run()
Logger::Draw(); Logger::Draw();
profiler.EndEngineSection(); profiler.EndEngineSection();
{
if (ImGui::BeginPopupModal("ConfirmClearScene", nullptr, ImGuiWindowFlags_AlwaysAutoResize))
{
ImGui::Text("Are you sure you want to clear the scene?");
ImGui::Separator();
if (ImGui::Button("Yes", ImVec2(120, 0)))
{
objects.clear();
selected = nullptr;
ImGui::CloseCurrentPopup();
}
ImGui::SameLine();
if (ImGui::Button("Cancel", ImVec2(120, 0)))
ImGui::CloseCurrentPopup();
ImGui::EndPopup();
}
}
profiler.BeginEngineSection("BeginMainMenuBar"); profiler.BeginEngineSection("BeginMainMenuBar");
if (ImGui::BeginMainMenuBar()) if (ImGui::BeginMainMenuBar())
@ -744,6 +768,7 @@ void Engine::Run()
SaveScene(file); SaveScene(file);
selected = nullptr; selected = nullptr;
} }
if (ImGui::MenuItem("Load Scene")) if (ImGui::MenuItem("Load Scene"))
{ {
std::string file = OpenFileDialog(FileDialogType::Scenes); std::string file = OpenFileDialog(FileDialogType::Scenes);
@ -752,6 +777,12 @@ void Engine::Run()
LoadScene(file); LoadScene(file);
selected = nullptr; selected = nullptr;
} }
ImGui::Separator();
if (ImGui::MenuItem("Clear Scene"))
ImGui::OpenPopup("ConfirmClearScene");
ImGui::EndMenu(); ImGui::EndMenu();
} }
@ -828,6 +859,8 @@ void Engine::Run()
DrawAudioPlayingList(); DrawAudioPlayingList();
DrawImGuiWindow(); DrawImGuiWindow();
{ {
PROFILE_ENGINE_SCOPE("Engine::DrawSceneTree"); PROFILE_ENGINE_SCOPE("Engine::DrawSceneTree");