diff --git a/FocusTerra/.vs/FocusTerra/v16/.suo b/FocusTerra/.vs/FocusTerra/v16/.suo index 93d0f3e47f1e8ba3eaa1904bf85af848f0803862..8f4537ac83e7128f0f79db25628d783f010df4c8 100644 Binary files a/FocusTerra/.vs/FocusTerra/v16/.suo and b/FocusTerra/.vs/FocusTerra/v16/.suo differ diff --git a/FocusTerra/.vs/FocusTerra/v16/ipch/AutoPCH/3b7f66ca6222ba83/GUI_HANDLER.ipch b/FocusTerra/.vs/FocusTerra/v16/ipch/AutoPCH/3b7f66ca6222ba83/GUI_HANDLER.ipch index 2f5a8373e0a48e8e1f74ffb502ff7f1c2816ea92..22c638f0478de4e2db442a91bfb0e6085f99ec8a 100644 Binary files a/FocusTerra/.vs/FocusTerra/v16/ipch/AutoPCH/3b7f66ca6222ba83/GUI_HANDLER.ipch and b/FocusTerra/.vs/FocusTerra/v16/ipch/AutoPCH/3b7f66ca6222ba83/GUI_HANDLER.ipch differ diff --git a/FocusTerra/.vs/FocusTerra/v16/ipch/AutoPCH/5510542e53f89a96/EVENT_LOGGER.ipch b/FocusTerra/.vs/FocusTerra/v16/ipch/AutoPCH/5510542e53f89a96/EVENT_LOGGER.ipch new file mode 100644 index 0000000000000000000000000000000000000000..1ad622fc4bce8e52dc4d043656a523aa5e4ed4ab Binary files /dev/null and b/FocusTerra/.vs/FocusTerra/v16/ipch/AutoPCH/5510542e53f89a96/EVENT_LOGGER.ipch differ diff --git a/FocusTerra/.vs/FocusTerra/v16/ipch/AutoPCH/9c176c9b7be732e9/EVENT_LOGGER.ipch b/FocusTerra/.vs/FocusTerra/v16/ipch/AutoPCH/9c176c9b7be732e9/EVENT_LOGGER.ipch new file mode 100644 index 0000000000000000000000000000000000000000..d421d026bf4186313997f79b028caf02d0a36d19 Binary files /dev/null and b/FocusTerra/.vs/FocusTerra/v16/ipch/AutoPCH/9c176c9b7be732e9/EVENT_LOGGER.ipch differ diff --git a/FocusTerra/.vs/FocusTerra/v16/ipch/AutoPCH/a6645457074853fb/PEVENT.ipch b/FocusTerra/.vs/FocusTerra/v16/ipch/AutoPCH/a6645457074853fb/PEVENT.ipch index aa0e5a7a2a7a8fd62d4f7305bf3be9b869dd6e86..df7c7989a16485e6afbf3ee27e83a6d1d0eb912a 100644 Binary files a/FocusTerra/.vs/FocusTerra/v16/ipch/AutoPCH/a6645457074853fb/PEVENT.ipch and b/FocusTerra/.vs/FocusTerra/v16/ipch/AutoPCH/a6645457074853fb/PEVENT.ipch differ diff --git a/FocusTerra/.vs/FocusTerra/v16/ipch/AutoPCH/cb00a5d01c33728d/MAIN_TESTING.ipch b/FocusTerra/.vs/FocusTerra/v16/ipch/AutoPCH/cb00a5d01c33728d/MAIN_TESTING.ipch index ebc0b18f115bad52af99e13450254fd2489bcfd7..b3f142aed0ae1b5c7569e591cf4f650142215c6c 100644 Binary files a/FocusTerra/.vs/FocusTerra/v16/ipch/AutoPCH/cb00a5d01c33728d/MAIN_TESTING.ipch and b/FocusTerra/.vs/FocusTerra/v16/ipch/AutoPCH/cb00a5d01c33728d/MAIN_TESTING.ipch differ diff --git a/FocusTerra/FocusTerra/FocusTerra.vcxproj b/FocusTerra/FocusTerra/FocusTerra.vcxproj index 015108d50d534e4a536c3a5bd5b1ab19f18a1286..6c1a5c06ba68ab7e7e93d4024ef88e351b80fb9a 100644 --- a/FocusTerra/FocusTerra/FocusTerra.vcxproj +++ b/FocusTerra/FocusTerra/FocusTerra.vcxproj @@ -156,6 +156,7 @@ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild> <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">false</ExcludedFromBuild> </ClCompile> + <ClCompile Include="..\..\src\event_logger.cpp" /> <ClCompile Include="..\..\src\glad.c" /> <ClCompile Include="..\..\src\gui_handler.cpp" /> <ClCompile Include="..\..\src\imgui\imgui.cpp" /> @@ -176,7 +177,9 @@ <ClCompile Include="..\..\src\main_refactored.cpp"> <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild> </ClCompile> - <ClCompile Include="..\..\src\main_testing.cpp" /> + <ClCompile Include="..\..\src\main_testing.cpp"> + <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">false</ExcludedFromBuild> + </ClCompile> <ClCompile Include="..\..\src\pevent.cpp" /> <ClCompile Include="..\..\src\shader.cpp" /> <ClCompile Include="..\..\src\toolbox.cpp" /> @@ -187,6 +190,7 @@ <ClInclude Include="..\..\include\blockchain_handler.hpp" /> <ClInclude Include="..\..\include\drawer.hpp" /> <ClInclude Include="..\..\include\drawing_handler.hpp" /> + <ClInclude Include="..\..\include\event_logger.hpp" /> <ClInclude Include="..\..\include\gui_handler.hpp" /> <ClInclude Include="..\..\include\input_handler.hpp" /> <ClInclude Include="..\..\include\pevent.hpp" /> diff --git a/FocusTerra/FocusTerra/FocusTerra.vcxproj.filters b/FocusTerra/FocusTerra/FocusTerra.vcxproj.filters index aa1a46e40d002bbcb4e4497c8e101b27be077836..52a80307d09f66f6f26d4366f9fa53063f1131a1 100644 --- a/FocusTerra/FocusTerra/FocusTerra.vcxproj.filters +++ b/FocusTerra/FocusTerra/FocusTerra.vcxproj.filters @@ -84,6 +84,9 @@ <ClCompile Include="..\..\src\drawing_handler.cpp"> <Filter>Source Files</Filter> </ClCompile> + <ClCompile Include="..\..\src\event_logger.cpp"> + <Filter>Source Files</Filter> + </ClCompile> </ItemGroup> <ItemGroup> <ClInclude Include="..\..\include\imgui\imconfig.h"> @@ -158,6 +161,9 @@ <ClInclude Include="..\..\include\drawer.hpp"> <Filter>Header Files</Filter> </ClInclude> + <ClInclude Include="..\..\include\event_logger.hpp"> + <Filter>Header Files</Filter> + </ClInclude> </ItemGroup> <ItemGroup> <None Include="..\..\build\Makefile"> diff --git a/FocusTerra/FocusTerra/x64/Release/FocusTerra.iobj b/FocusTerra/FocusTerra/x64/Release/FocusTerra.iobj index 51194ff518679983817add26f47549260391699a..d34b96ce3b759bd6e71a65c6608e506a2ac06983 100644 Binary files a/FocusTerra/FocusTerra/x64/Release/FocusTerra.iobj and b/FocusTerra/FocusTerra/x64/Release/FocusTerra.iobj differ diff --git a/FocusTerra/FocusTerra/x64/Release/FocusTerra.ipdb b/FocusTerra/FocusTerra/x64/Release/FocusTerra.ipdb index 2ced24fe5d769d27224db8ba52f4d3294464b453..a6a4133c30dcab3b946cf0f4ba6f4c0cad8268a9 100644 Binary files a/FocusTerra/FocusTerra/x64/Release/FocusTerra.ipdb and b/FocusTerra/FocusTerra/x64/Release/FocusTerra.ipdb differ diff --git a/FocusTerra/FocusTerra/x64/Release/FocusTerra.log b/FocusTerra/FocusTerra/x64/Release/FocusTerra.log index 80a8a988f4ddbf3c403007ef45e206c4abf7b809..0667720528f2fecb599dc0b0010f375ff566703c 100644 --- a/FocusTerra/FocusTerra/x64/Release/FocusTerra.log +++ b/FocusTerra/FocusTerra/x64/Release/FocusTerra.log @@ -1,7 +1,8 @@ - blockchain_handler.cpp + event_logger.cpp Generating code - 1 of 1965 functions (<0.1%) were compiled, the rest were copied from previous compilation. +C:\Users\engel\VS_Projects\FocusTerra\framebuffer-testing\src\main_testing.cpp(98): warning C4715: 'SDL_main': not all control paths return a value + 4 of 2014 functions ( 0.2%) were compiled, the rest were copied from previous compilation. 0 functions were new in current compilation - 14 functions had inline decision re-evaluated but remain unchanged + 15 functions had inline decision re-evaluated but remain unchanged Finished generating code FocusTerra.vcxproj -> C:\Users\engel\VS_Projects\FocusTerra\framebuffer-testing\FocusTerra\x64\Release\FocusTerra.exe diff --git a/FocusTerra/FocusTerra/x64/Release/FocusTerra.tlog/CL.command.1.tlog b/FocusTerra/FocusTerra/x64/Release/FocusTerra.tlog/CL.command.1.tlog index 7ac7b616913e08689489f53143412b26945a5c9a..252f1e33c8e726076c4e7abf8b24c793f53da484 100644 Binary files a/FocusTerra/FocusTerra/x64/Release/FocusTerra.tlog/CL.command.1.tlog and b/FocusTerra/FocusTerra/x64/Release/FocusTerra.tlog/CL.command.1.tlog differ diff --git a/FocusTerra/FocusTerra/x64/Release/FocusTerra.tlog/CL.read.1.tlog b/FocusTerra/FocusTerra/x64/Release/FocusTerra.tlog/CL.read.1.tlog index 0b519d5e9e2c940d32417e47377097f1c0f04f4f..7c9049b5f373acc985896f4a54980adedda5c217 100644 Binary files a/FocusTerra/FocusTerra/x64/Release/FocusTerra.tlog/CL.read.1.tlog and b/FocusTerra/FocusTerra/x64/Release/FocusTerra.tlog/CL.read.1.tlog differ diff --git a/FocusTerra/FocusTerra/x64/Release/FocusTerra.tlog/CL.write.1.tlog b/FocusTerra/FocusTerra/x64/Release/FocusTerra.tlog/CL.write.1.tlog index f441d135063cdc93d105b6baf4826eb1befa8275..39ebcd39e33c54f023d35cdf1e1af7457f3813ef 100644 Binary files a/FocusTerra/FocusTerra/x64/Release/FocusTerra.tlog/CL.write.1.tlog and b/FocusTerra/FocusTerra/x64/Release/FocusTerra.tlog/CL.write.1.tlog differ diff --git a/FocusTerra/FocusTerra/x64/Release/FocusTerra.tlog/link.command.1.tlog b/FocusTerra/FocusTerra/x64/Release/FocusTerra.tlog/link.command.1.tlog index 13fd9074d0df265fc067f3f4afb3f575b5aa3b47..56e44dcb627329919733b74d4ed75673071a1793 100644 Binary files a/FocusTerra/FocusTerra/x64/Release/FocusTerra.tlog/link.command.1.tlog and b/FocusTerra/FocusTerra/x64/Release/FocusTerra.tlog/link.command.1.tlog differ diff --git a/FocusTerra/FocusTerra/x64/Release/FocusTerra.tlog/link.read.1.tlog b/FocusTerra/FocusTerra/x64/Release/FocusTerra.tlog/link.read.1.tlog index a0c4e707df40ae3229149dcda2857715061364b6..85fd0710b70cdd3b7bff0538fa3ad8829efc15d9 100644 Binary files a/FocusTerra/FocusTerra/x64/Release/FocusTerra.tlog/link.read.1.tlog and b/FocusTerra/FocusTerra/x64/Release/FocusTerra.tlog/link.read.1.tlog differ diff --git a/FocusTerra/FocusTerra/x64/Release/FocusTerra.tlog/link.write.1.tlog b/FocusTerra/FocusTerra/x64/Release/FocusTerra.tlog/link.write.1.tlog index 5151764a34e32f2de6f72743d9db254b53241d26..a381ca51cbcd86814968ec84591dde5e83479798 100644 Binary files a/FocusTerra/FocusTerra/x64/Release/FocusTerra.tlog/link.write.1.tlog and b/FocusTerra/FocusTerra/x64/Release/FocusTerra.tlog/link.write.1.tlog differ diff --git a/FocusTerra/FocusTerra/x64/Release/blockchain_handler.obj b/FocusTerra/FocusTerra/x64/Release/blockchain_handler.obj index 21884fd6753813e3adc06a5420a8ea19ffa164db..340667c63a10ce5c1e89618b4c09d712cfec6c86 100644 Binary files a/FocusTerra/FocusTerra/x64/Release/blockchain_handler.obj and b/FocusTerra/FocusTerra/x64/Release/blockchain_handler.obj differ diff --git a/FocusTerra/FocusTerra/x64/Release/drawer.obj b/FocusTerra/FocusTerra/x64/Release/drawer.obj index 03688448fa94a99e70e8fadad42f40177f22774a..347045a0b9530ad27a3c70eb06292c5c2a9b873d 100644 Binary files a/FocusTerra/FocusTerra/x64/Release/drawer.obj and b/FocusTerra/FocusTerra/x64/Release/drawer.obj differ diff --git a/FocusTerra/FocusTerra/x64/Release/drawing_handler.obj b/FocusTerra/FocusTerra/x64/Release/drawing_handler.obj index 360e3f09be4e7ba728f6d34d5b7e6ef6553552d2..82416e322b139c852309815aa1226b2a7b0054ea 100644 Binary files a/FocusTerra/FocusTerra/x64/Release/drawing_handler.obj and b/FocusTerra/FocusTerra/x64/Release/drawing_handler.obj differ diff --git a/FocusTerra/FocusTerra/x64/Release/event_logger.obj b/FocusTerra/FocusTerra/x64/Release/event_logger.obj new file mode 100644 index 0000000000000000000000000000000000000000..7caa94038a865f7212b6600ff9209c7ad12b3cc5 Binary files /dev/null and b/FocusTerra/FocusTerra/x64/Release/event_logger.obj differ diff --git a/FocusTerra/FocusTerra/x64/Release/gui_handler.obj b/FocusTerra/FocusTerra/x64/Release/gui_handler.obj index 15bde6ed3aac741d857d9f9491e6c38144caee13..4d83a1ea338c4784e185284ab4573095f86968b1 100644 Binary files a/FocusTerra/FocusTerra/x64/Release/gui_handler.obj and b/FocusTerra/FocusTerra/x64/Release/gui_handler.obj differ diff --git a/FocusTerra/FocusTerra/x64/Release/input_handler.obj b/FocusTerra/FocusTerra/x64/Release/input_handler.obj index 9d2b5ceeb9b8d60dc612f733a1035272368291df..f7ea4b6375094a6158fcbe1d58dc3557ed125742 100644 Binary files a/FocusTerra/FocusTerra/x64/Release/input_handler.obj and b/FocusTerra/FocusTerra/x64/Release/input_handler.obj differ diff --git a/FocusTerra/FocusTerra/x64/Release/main_testing.obj b/FocusTerra/FocusTerra/x64/Release/main_testing.obj index dc31e425adbd30279723a93eaaac0773d8ba9dfd..3f3096447026a59509a50c945fd5367a7d3061ae 100644 Binary files a/FocusTerra/FocusTerra/x64/Release/main_testing.obj and b/FocusTerra/FocusTerra/x64/Release/main_testing.obj differ diff --git a/FocusTerra/FocusTerra/x64/Release/toolbox.obj b/FocusTerra/FocusTerra/x64/Release/toolbox.obj index a37f74f1873c5154c94b7f4d9672841a3a7fcd56..7044af185b7886dd4dcf125ff16d14a7e7cdd53c 100644 Binary files a/FocusTerra/FocusTerra/x64/Release/toolbox.obj and b/FocusTerra/FocusTerra/x64/Release/toolbox.obj differ diff --git a/FocusTerra/FocusTerra/x64/Release/vc142.pdb b/FocusTerra/FocusTerra/x64/Release/vc142.pdb index 626d15007894b91199bc65c1b1907bd75a0543e3..af0fda61d036e9170d8179bc6835eb23481ba298 100644 Binary files a/FocusTerra/FocusTerra/x64/Release/vc142.pdb and b/FocusTerra/FocusTerra/x64/Release/vc142.pdb differ diff --git a/FocusTerra/FocusTerra/x64/Release/wave_handler.obj b/FocusTerra/FocusTerra/x64/Release/wave_handler.obj index 203a500b237679641473456a7791f45a1e971711..69c4f9e9e04cfd7e69da52a3258e1572737aefbd 100644 Binary files a/FocusTerra/FocusTerra/x64/Release/wave_handler.obj and b/FocusTerra/FocusTerra/x64/Release/wave_handler.obj differ diff --git a/FocusTerra/x64/Release/FocusTerra.exe b/FocusTerra/x64/Release/FocusTerra.exe index c0287ed19dd99f0d7937cba6f3125b27bd261155..c4ca888eef735f1bf357a7d8c032b100368ea4c9 100644 Binary files a/FocusTerra/x64/Release/FocusTerra.exe and b/FocusTerra/x64/Release/FocusTerra.exe differ diff --git a/FocusTerra/x64/Release/FocusTerra.pdb b/FocusTerra/x64/Release/FocusTerra.pdb index acccb5e7bd2aa0498135afb7d55906c0f2b7ffed..a07a9174b459a48580523992b767833439ed0b42 100644 Binary files a/FocusTerra/x64/Release/FocusTerra.pdb and b/FocusTerra/x64/Release/FocusTerra.pdb differ diff --git a/include/event_logger.hpp b/include/event_logger.hpp new file mode 100644 index 0000000000000000000000000000000000000000..2ee915fc137160376c82193a4aebe001a31fec20 --- /dev/null +++ b/include/event_logger.hpp @@ -0,0 +1,22 @@ +#pragma once +#include <array> +#include <pevent.hpp> +#include <toolbox.hpp> +#include <string> + +class EventLogger { +public: + EventLogger(); + EventLogger(const EventLogger& o) = default; + + void push_events(Toolbox&); + + //DOWN, UP, MOVE, OTHER + unsigned i_down=0, i_up=0, i_move=0, i_other=0; + std::array<Pevent, 16> events_down; + std::array<Pevent, 16> events_up; + std::array<Pevent, 16> events_move; + std::array<Pevent, 16> events_other; +}; + +std::string ptos(const Pevent&); \ No newline at end of file diff --git a/include/gui_handler.hpp b/include/gui_handler.hpp index fa3ebcfe5e4ae7bc290adc6b5d97349d8aa84676..ae4fcb11663866c7b9f5e3cff47925779564d758 100644 --- a/include/gui_handler.hpp +++ b/include/gui_handler.hpp @@ -3,6 +3,7 @@ #include <imgui.h> #include <imgui_impl_sdl.h> #include <imgui_impl_opengl3.h> +#include <event_logger.hpp> class GuiHandler { public: GuiHandler(float gui_pos): gui_pos_(gui_pos) {} @@ -20,10 +21,13 @@ private: float gui_pos_; /*Portion of screen allocated to GUI*/ /*Potentially we need to do something else here*/ ImGuiIO io_; /*io*/ - SDL_Event next_event_; /*Next SDL_Event to take place*/ + SDL_Event next_event_ = {}; /*Next SDL_Event to take place*/ SDL_FingerID fingerID_ = -42; /*Finger currently controlling GUI*/ SDL_TouchID deviceID_ = -1; /*Touchdevice that is controlling GUI*/ /*For SDL_FINGERDOWN and SDL_FINGERUP we need some special treatment, it's a 2-step procedure*/ bool lowering_finger_ = false; bool raising_finger_ = false; + + /*Event Logger for debugging*/ + EventLogger evlog = {}; }; \ No newline at end of file diff --git a/src/event_logger.cpp b/src/event_logger.cpp new file mode 100644 index 0000000000000000000000000000000000000000..0b19cad2c4c13441c869c90dd1813b86b5a0f3a1 --- /dev/null +++ b/src/event_logger.cpp @@ -0,0 +1,100 @@ +#include <event_logger.hpp> +#include <toolbox.hpp> +#include <string> + +EventLogger::EventLogger() +{ + for (size_t i = 0; i < 16; ++i) { + events_down[i] = {}; + events_up[i] = {}; + events_move[i] = {}; + events_other[i] = {}; + } +} + +void EventLogger::push_events(Toolbox& tb) { + for (auto pev : tb.events) { + switch (pev.type) { + case PEVENTTYPE::DOWN: + events_down[(i_down++) % 16] = pev; + break; + case PEVENTTYPE::UP: + events_up[(i_up++) % 16] = pev; + break; + case PEVENTTYPE::MOVE: + events_move[(i_move++) % 16] = pev; + break; + case PEVENTTYPE::OTHER: + events_other[(i_other++) % 16] = pev; + break; + default: + break; + } + } +} + +/*Convert Pevent to std::string*/ +std::string ptos(const Pevent& pev) { + std::string pev_type = ""; + std::string sdl_type = ""; + std::string pev_fscoords = "(" + std::to_string(pev.fscoord_x) + ", " + std::to_string(pev.fscoord_y) + ")"; + std::string pev_itcoords = "(" + std::to_string(pev.itcoord_x) + ", " + std::to_string(pev.itcoord_y) + ")"; + std::string sdl_coords = "(n/a, n/a)"; + switch (pev.type) { + case PEVENTTYPE::DOWN: + pev_type = "DOWN"; + switch (pev.event.type) { + case SDL_MOUSEBUTTONDOWN: + sdl_type = "SDL_MOUSEBUTTONDOWN"; + sdl_coords = "(" + std::to_string(pev.event.button.x) + ", " + std::to_string(pev.event.button.y) + ")"; + break; + case SDL_FINGERDOWN: + sdl_type = "SDL_FINGERDOWN"; + sdl_coords = "(" + std::to_string(pev.event.tfinger.x) + ", " + std::to_string(pev.event.tfinger.y) + ")"; + break; + default: + sdl_type = std::to_string(pev.event.type); + break; + } + break; + case PEVENTTYPE::UP: + pev_type = "UP"; + switch (pev.event.type) { + case SDL_MOUSEBUTTONUP: + sdl_type = "SDL_MOUSEBUTTONUP"; + sdl_coords = "(" + std::to_string(pev.event.button.x) + ", " + std::to_string(pev.event.button.y) + ")"; + break; + case SDL_FINGERUP: + sdl_type = "SDL_FINGERUP"; + sdl_coords = "(" + std::to_string(pev.event.tfinger.x) + ", " + std::to_string(pev.event.tfinger.y) + ")"; + break; + default: + sdl_type = std::to_string(pev.event.type); + break; + } + break; + case PEVENTTYPE::MOVE: + pev_type = "MOVE"; + switch (pev.event.type) { + case SDL_MOUSEMOTION: + sdl_type = "SDL_MOUSEMOTION"; + sdl_coords = "(" + std::to_string(pev.event.motion.x) + ", " + std::to_string(pev.event.motion.y) + ")"; + break; + case SDL_FINGERMOTION: + sdl_type = "SDL_FINGERMOTION"; + sdl_coords = "(" + std::to_string(pev.event.tfinger.x) + ", " + std::to_string(pev.event.tfinger.y) + ")"; + break; + default: + sdl_type = std::to_string(pev.event.type); + break; + } + break; + case PEVENTTYPE::OTHER: + pev_type = "OTHER"; + sdl_type = std::to_string(pev.event.type); + break; + default: + break; + } + return pev_type + " " + sdl_type + " " + pev_fscoords + " " + pev_itcoords + " " + sdl_coords; +} \ No newline at end of file diff --git a/src/gui_handler.cpp b/src/gui_handler.cpp index 1416b19c75e3b7e02013bd866fdfaabd409e08ee..768599d60970d284665ae171b548905ca92b6bb9 100644 --- a/src/gui_handler.cpp +++ b/src/gui_handler.cpp @@ -26,6 +26,9 @@ void GuiHandler::update(Toolbox& tb) { } } + /*Debugging: Hand off events to event logger evlog*/ + evlog.push_events(tb); + /*Check if the GUI received input*/ SDL_Event event; bool have_event = false; @@ -36,7 +39,7 @@ void GuiHandler::update(Toolbox& tb) { have_event = true; } /*Are we in the second step of raising a finger?*/ - if (raising_finger_) { + else if (raising_finger_) { event.type = SDL_USEREVENT; raising_finger_ = false; have_event = true; @@ -208,7 +211,7 @@ void GuiHandler::update(Toolbox& tb) { ImGui::End(); - /*Developer window*/ + /*Debugging: Developer window*/ ImGui::Begin("Developer", nullptr, ImGuiWindowFlags_AlwaysAutoResize); ImGui::Text("Application average %.3f ms/frame (%.1f FPS)", 1000.0 / double(ImGui::GetIO().Framerate), double(ImGui::GetIO().Framerate)); ImGui::Text("Mouse Coordinates: (%5.f, %5.f)", ImGui::GetIO().MousePos[0], ImGui::GetIO().MousePos[1]); @@ -219,6 +222,35 @@ void GuiHandler::update(Toolbox& tb) { ImGui::Text("Blockchain Length: %d", tb.num_blocks); ImGui::Text("Drawers: %d", tb.num_drawers); ImGui::End(); + + /*Debugging: Event Console*/ + ImGui::SetNextWindowPos(ImVec2(tb.screen_w * (0.5), 0.f), ImGuiCond_Always); + ImGui::Begin("Events", nullptr, ImGuiWindowFlags_AlwaysAutoResize); + ImGui::NewLine(); + ImGui::Text("UP EVENTS"); + for (const Pevent& pev : evlog.events_up) { + std::string str = ptos(pev); + ImGui::Text(str.c_str()); + } + ImGui::NewLine(); + ImGui::Text("DOWN EVENTS"); + for (const Pevent& pev : evlog.events_down) { + std::string str = ptos(pev); + ImGui::Text(str.c_str()); + } + ImGui::NewLine(); + ImGui::Text("MOVE EVENTS"); + for (const Pevent& pev : evlog.events_move) { + std::string str = ptos(pev); + ImGui::Text(str.c_str()); + } + ImGui::NewLine(); + ImGui::Text("OTHER EVENTS"); + for (const Pevent& pev : evlog.events_other) { + std::string str = ptos(pev); + ImGui::Text(str.c_str()); + } + ImGui::End(); } void GuiHandler::render(Toolbox &tb) {