Release mode crash bug fixed (uninitialized variable....)

master
Joey Pollack 3 years ago
parent 9c37b81765
commit 3dd13b06f5

@ -12,4 +12,6 @@ echo Removing the build directory
del /s /q build
rd /s /q build
mkdir build
:END

@ -14,7 +14,7 @@ namespace lunarium
{
Panel::Panel(std::string name, PanelDockZone dock_zone, bool isOpen, int window_flags)
: mIsOpen(isOpen), mPanelName(name), mDockZone(dock_zone), mWindowFlags(window_flags),
mX(-1), mY(-1), mWidth(-1), mHeight(-1)
mX(-1), mY(-1), mWidth(-1), mHeight(-1), mNumPushedStyles(0)
{
}

@ -8,6 +8,7 @@
#include "panel_manager.h"
#include "gui.h"
#include <editor/editor.h>
#include <gui/panel.h>
#include <utils/logger.h>
#include <dearimgui/imgui_internal.h> // To use the DockWindowXXX methods
@ -133,6 +134,7 @@ namespace lunarium
{
if ((*iter)->IsOpen())
{
ImGui::SetNextWindowClass(&mWindowClass);
(*iter)->OnUIRender();
}
@ -162,7 +164,6 @@ namespace lunarium
mDockSpaceID = ImGui::DockSpace(ImGui::GetID(dock_name.c_str()), ImVec2(0, 0), 0, &mWindowClass);
if (!ImGui::DockBuilderGetNode(mDockSpaceID) || mResetDockSpace)
{
Logger::Trace(GUI::LogCat, "Resetting Dockspace: %s", dock_name.c_str());
mResetDockSpace = false;
ImGui::DockBuilderRemoveNode(mDockSpaceID);

@ -53,7 +53,15 @@ int main(int argc, char** argv)
//std::cout << "\nEngine core successfully initialized!\n";
try
{
core.RunGameLoop();
}
catch(const std::exception& e)
{
lunarium::Logger::Fatal(lunarium::LogCategory::CORE, "Unhandled exception: %s", e.what());
}
core.Shutdown();
lunarium::Logger::GetInstance()->FreeAllListeners();

@ -103,13 +103,16 @@ namespace editor
int w, h;
Core::MainWindow().GetFramebufferSize(&w, &h);
OrthographicCamera main_cam(Vec2f { 0.0f, 0.0f }, Sizef { (float)w, (float)h });
Core::GUI().NewFrame();
Core::Graphics().ResetFrameStats();
Core::Graphics().BeginDraw(&main_cam);
// No non-gui graphics are drawn
Core::Graphics().EndDraw(); // Graphics end draw must happen before GUI end frame
OnRender(&Core::Graphics());
Core::GUI().EndFrame();
Core::MainWindow().SwapBuffers();
@ -117,6 +120,7 @@ namespace editor
void Editor::OnRender(lunarium::Renderer2D* g)
{
DoMainMenu();
//DoStatusBar();
RenderWindow();
@ -170,6 +174,7 @@ namespace editor
void Editor::RenderWindow()
{
ImGuiViewport* Viewport = ImGui::GetWindowViewport();
ImGui::SetNextWindowPos( Viewport->WorkPos );
ImGui::SetNextWindowSize( Viewport->WorkSize );
ImGui::SetNextWindowViewport( Viewport->ID );
@ -208,6 +213,7 @@ namespace editor
////////////////////////////////////////////////////////////
void Editor::DoMainMenu()
{
//throw std::exception("TEST ERROR");
ImGui::BeginMainMenuBar();
// File

@ -59,6 +59,7 @@ namespace editor
ImGui::SetCursorPosY(row_height);
if (ImGui::BeginChild("Directory Tree", ImVec2(wind_size.x * 0.15f, wind_size.y), true, ImGuiWindowFlags_NoCollapse))
{
ImGui::SetNextItemOpen(true);
DoDirTree(mAssetDirectory);
mSyncTree = false;
@ -69,6 +70,7 @@ namespace editor
ImGui::SetCursorPosX(ImGui::GetCursorPosX() + wind_size.x * 0.15f);
// Contents
DoContentArea(wind_size);
//HandlePopupActions();
@ -137,6 +139,7 @@ namespace editor
{
if (std::filesystem::exists(mSelectedDir))
{
float yPos = ImGui::GetCursorPosY();
float xPos = ImGui::GetCursorPosX();
float left = xPos;
@ -162,6 +165,7 @@ namespace editor
ImVec2(DataManager::mNewFolderIcon->GetWidth(), DataManager::mNewFolderIcon->GetHeight()),
ImVec2(0, 0), ImVec2(1, 1), 4))
{
OpenPopup(PopUp::NEW_FOLDER).LogIfFailed(Editor::LogCat);
}

@ -31,6 +31,7 @@ namespace lunarium { namespace editor
: Panel("Properties", PanelDockZone::DDZ_RIGHT, true, ImGuiWindowFlags_NoCollapse | ImGuiWindowFlags_NoScrollbar),
mpSelectedAsset(nullptr), mpSelectedEntity(nullptr), mIsLocked(false)
{
// ADD COMPONENT POPUP
AddPopup(Popup::ADD_COMP, "Add Component", [](Panel* p)
{
PropertiesView* pv = (PropertiesView*)p;
@ -39,9 +40,15 @@ namespace lunarium { namespace editor
PRESENT_COMP_CHOICE("Tag Component", TagComponent, pv)
PRESENT_COMP_CHOICE("Transform Component", TransformComponent, pv)
if ((ImGui::IsMouseClicked(ImGuiMouseButton_Left) && !ImGui::IsWindowHovered()))
{
return false;
}
return true;
}).LogIfFailed(Editor::LogCat);
// ADD COMP FAILED POPUP
AddPopup(Popup::ADD_COMP_FAIL, "Add Comp Fail", [] (Panel* p)
{
ImGui::Text("Can not add that component - Entity already has it");

@ -72,6 +72,7 @@ namespace lunarium
Entity *pSelection = nullptr;
if (!mpWorld)
{
ImGui::Text("No World Loaded");
return;
}

@ -3,32 +3,28 @@ Pos=0,546
Size=1280,174
Collapsed=0
DockId=0x00000003,0
ClassId=0x00000001
[Window][World Tree]
Pos=0,24
Size=204,520
Pos=0,22
Size=204,522
Collapsed=0
DockId=0x00000007,0
ClassId=0x00000001
[Window][World View]
Pos=206,24
Size=816,520
Pos=206,22
Size=816,522
Collapsed=0
DockId=0x00000008,0
ClassId=0x00000001
[Window][Properties]
Pos=1024,24
Size=256,520
Pos=1024,22
Size=256,522
Collapsed=0
DockId=0x00000006,0
ClassId=0x00000001
[Window][Lunarium Editor]
Pos=0,24
Size=1280,696
Pos=0,22
Size=1280,698
Collapsed=0
[Window][Debug##Default]
@ -36,55 +32,8 @@ Pos=60,60
Size=400,400
Collapsed=0
[Window][File Browser]
ViewportPos=526,598
ViewportId=0x2389D759
Size=600,400
Collapsed=0
[Window][Map Editor]
ViewportPos=622,126
ViewportId=0xDAA48CA2
Size=1056,762
Collapsed=0
[Window][Map Canvas]
ViewportPos=622,126
ViewportId=0xDAA48CA2
Pos=8,56
Size=830,698
Collapsed=0
DockId=0x0000000E,0
ClassId=0x00000045
[Window][Tile Set View]
ViewportPos=622,126
ViewportId=0xDAA48CA2
Pos=840,56
Size=208,698
Collapsed=0
DockId=0x0000000C,0
ClassId=0x00000045
[Window][DockSpaceViewport_11111111]
Size=1280,720
Collapsed=0
[Window][Dear ImGui Demo]
ViewportPos=172,128
ViewportId=0xE927CF2F
Size=550,680
Collapsed=0
[Docking][Data]
DockSpace ID=0x27CF68A1 Pos=630,182 Size=1040,698 Split=Y
DockNode ID=0x00000009 Parent=0x27CF68A1 SizeRef=1056,570 Split=X
DockNode ID=0x0000000B Parent=0x00000009 SizeRef=843,570 Split=X
DockNode ID=0x0000000D Parent=0x0000000B SizeRef=168,570
DockNode ID=0x0000000E Parent=0x0000000B SizeRef=673,570 CentralNode=1 Selected=0xB3CA1100
DockNode ID=0x0000000C Parent=0x00000009 SizeRef=211,570 Selected=0xB093288C
DockNode ID=0x0000000A Parent=0x27CF68A1 SizeRef=1056,190
DockSpace ID=0x2F8DD699 Window=0xBEB76114 Pos=476,90 Size=1280,696 Split=Y
DockSpace ID=0x2F8DD699 Pos=240,154 Size=1280,698 Split=Y
DockNode ID=0x00000001 Parent=0x2F8DD699 SizeRef=1280,538 Split=X
DockNode ID=0x00000005 Parent=0x00000001 SizeRef=1022,538 Split=X
DockNode ID=0x00000007 Parent=0x00000005 SizeRef=204,538 Selected=0xFD1747F8

Loading…
Cancel
Save