-
Notifications
You must be signed in to change notification settings - Fork 3
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
camera fix, ImGui added (restyle!), perf measure
- Loading branch information
Showing
33 changed files
with
35,331 additions
and
88 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1 +1,4 @@ | ||
# Dvokutnik() | ||
|
||
## Fonts sources | ||
- [ProggyVector Regular](https://github.com/bluescan/proggyfonts) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,43 @@ | ||
#ifndef __DK_GRAPH_GUI_H__ | ||
#define __DK_GRAPH_GUI_H__ | ||
|
||
#include "graph/imgui/imgui.h" // TODO: remove | ||
#include "sys/events/MouseMoveEvent.h" | ||
#include "sys/events/MousePressEvent.h" | ||
#include "sys/events/MouseReleaseEvent.h" | ||
#include "sys/events/KeyPressEvent.h" | ||
#include "sys/events/KeyReleaseEvent.h" | ||
|
||
namespace dk::graph | ||
{ | ||
|
||
class GUI : public | ||
sys::EventListener<sys::MouseMoveEvent>, | ||
sys::EventListener<sys::MousePressEvent>, | ||
sys::EventListener<sys::MouseReleaseEvent>, | ||
sys::EventListener<sys::KeyPressEvent>, | ||
sys::EventListener<sys::KeyReleaseEvent> | ||
{ | ||
private: | ||
static GUI s_this; // TODO: remove. GUI must be one per window | ||
|
||
static int convert_mouse_btn(sys::MouseBtn btn) noexcept; | ||
|
||
public: | ||
static void update() noexcept; | ||
static void render() noexcept; | ||
|
||
void handle(const sys::MouseMoveEvent& e) noexcept override; | ||
void handle(const sys::MousePressEvent& e) noexcept override; | ||
void handle(const sys::MouseReleaseEvent& e) noexcept override; | ||
|
||
void handle(const sys::KeyPressEvent& e) noexcept override; | ||
void handle(const sys::KeyReleaseEvent& e) noexcept override; | ||
|
||
// TODO: get window ptr. not static | ||
static Status create() noexcept; | ||
}; | ||
|
||
} | ||
|
||
#endif // !__DK_GRAPH_H__ |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,73 @@ | ||
//----------------------------------------------------------------------------- | ||
// COMPILE-TIME OPTIONS FOR DEAR IMGUI | ||
// Runtime options (clipboard callbacks, enabling various features, etc.) can generally be set via the ImGuiIO structure. | ||
// You can use ImGui::SetAllocatorFunctions() before calling ImGui::CreateContext() to rewire memory allocation functions. | ||
//----------------------------------------------------------------------------- | ||
// A) You may edit imconfig.h (and not overwrite it when updating imgui, or maintain a patch/branch with your modifications to imconfig.h) | ||
// B) or add configuration directives in your own file and compile with #define IMGUI_USER_CONFIG "myfilename.h" | ||
// If you do so you need to make sure that configuration settings are defined consistently _everywhere_ dear imgui is used, which include | ||
// the imgui*.cpp files but also _any_ of your code that uses imgui. This is because some compile-time options have an affect on data structures. | ||
// Defining those options in imconfig.h will ensure every compilation unit gets to see the same data structure layouts. | ||
// Call IMGUI_CHECKVERSION() from your .cpp files to verify that the data structures your files are using are matching the ones imgui.cpp is using. | ||
//----------------------------------------------------------------------------- | ||
|
||
#pragma once | ||
|
||
//---- Define assertion handler. Defaults to calling assert(). | ||
//#define IM_ASSERT(_EXPR) MyAssert(_EXPR) | ||
//#define IM_ASSERT(_EXPR) ((void)(_EXPR)) // Disable asserts | ||
|
||
//---- Define attributes of all API symbols declarations, e.g. for DLL under Windows. | ||
//#define IMGUI_API __declspec( dllexport ) | ||
//#define IMGUI_API __declspec( dllimport ) | ||
|
||
//---- Don't define obsolete functions/enums names. Consider enabling from time to time after updating to avoid using soon-to-be obsolete function/names. | ||
//#define IMGUI_DISABLE_OBSOLETE_FUNCTIONS | ||
|
||
//---- Don't implement demo windows functionality (ShowDemoWindow()/ShowStyleEditor()/ShowUserGuide() methods will be empty) | ||
//---- It is very strongly recommended to NOT disable the demo windows during development. Please read the comments in imgui_demo.cpp. | ||
//#define IMGUI_DISABLE_DEMO_WINDOWS | ||
|
||
//---- Don't implement some functions to reduce linkage requirements. | ||
//#define IMGUI_DISABLE_WIN32_DEFAULT_CLIPBOARD_FUNCTIONS // [Win32] Don't implement default clipboard handler. Won't use and link with OpenClipboard/GetClipboardData/CloseClipboard etc. | ||
//#define IMGUI_DISABLE_WIN32_DEFAULT_IME_FUNCTIONS // [Win32] Don't implement default IME handler. Won't use and link with ImmGetContext/ImmSetCompositionWindow. | ||
//#define IMGUI_DISABLE_WIN32_FUNCTIONS // [Win32] Won't use and link with any Win32 function. | ||
//#define IMGUI_DISABLE_FORMAT_STRING_FUNCTIONS // Don't implement ImFormatString/ImFormatStringV so you can implement them yourself if you don't want to link with vsnprintf. | ||
//#define IMGUI_DISABLE_MATH_FUNCTIONS // Don't implement ImFabs/ImSqrt/ImPow/ImFmod/ImCos/ImSin/ImAcos/ImAtan2 wrapper so you can implement them yourself. Declare your prototypes in imconfig.h. | ||
//#define IMGUI_DISABLE_DEFAULT_ALLOCATORS // Don't implement default allocators calling malloc()/free() to avoid linking with them. You will need to call ImGui::SetAllocatorFunctions(). | ||
|
||
//---- Include imgui_user.h at the end of imgui.h as a convenience | ||
//#define IMGUI_INCLUDE_IMGUI_USER_H | ||
|
||
//---- Pack colors to BGRA8 instead of RGBA8 (to avoid converting from one to another) | ||
//#define IMGUI_USE_BGRA_PACKED_COLOR | ||
|
||
//---- Avoid multiple STB libraries implementations, or redefine path/filenames to prioritize another version | ||
// By default the embedded implementations are declared static and not available outside of imgui cpp files. | ||
//#define IMGUI_STB_TRUETYPE_FILENAME "my_folder/stb_truetype.h" | ||
//#define IMGUI_STB_RECT_PACK_FILENAME "my_folder/stb_rect_pack.h" | ||
//#define IMGUI_DISABLE_STB_TRUETYPE_IMPLEMENTATION | ||
//#define IMGUI_DISABLE_STB_RECT_PACK_IMPLEMENTATION | ||
|
||
//---- Define constructor and implicit cast operators to convert back<>forth between your math types and ImVec2/ImVec4. | ||
// This will be inlined as part of ImVec2 and ImVec4 class declarations. | ||
/* | ||
#define IM_VEC2_CLASS_EXTRA \ | ||
ImVec2(const MyVec2& f) { x = f.x; y = f.y; } \ | ||
operator MyVec2() const { return MyVec2(x,y); } | ||
#define IM_VEC4_CLASS_EXTRA \ | ||
ImVec4(const MyVec4& f) { x = f.x; y = f.y; z = f.z; w = f.w; } \ | ||
operator MyVec4() const { return MyVec4(x,y,z,w); } | ||
*/ | ||
|
||
//---- Use 32-bit vertex indices (default is 16-bit) to allow meshes with more than 64K vertices. Render function needs to support it. | ||
//#define ImDrawIdx unsigned int | ||
|
||
//---- Tip: You can add extra functions within the ImGui:: namespace, here or in your own headers files. | ||
/* | ||
namespace ImGui | ||
{ | ||
void MyFunction(const char* name, const MyMatrix44& v); | ||
} | ||
*/ |
Oops, something went wrong.