summaryrefslogtreecommitdiffstats
path: root/src/3rdparty/imgui/imconfig.h
diff options
context:
space:
mode:
authorLaszlo Agocs <laszlo.agocs@qt.io>2017-11-11 20:44:39 +0100
committerLaszlo Agocs <laszlo.agocs@qt.io>2017-11-21 15:10:35 +0000
commit0abf68125b41e48fa21e8c2f52c72c0eac998584 (patch)
tree0dc782814f03d810faf7f984370d6518c87b56b5 /src/3rdparty/imgui/imconfig.h
parent1c8a205972ccaffd497d86fa2627f23f00018b7c (diff)
Add an in-scene profiling view
Do two consecutive double-clicks, taps, or press F12 (once the 3DS window has focus(?)) to unleash the awesomeness. Uses Dear Imgui. The important point here is being in-scene and lightweight, meaning this will function as-is on mobile and embedded. None of the alternatives (widgets, embed Qt Quick, etc.) can satisfy these criterias. CPU and memory stats are only available on Windows at the moment. There are several further ideas in the pipeline (framegraph statistics in particular). Also, the Qt 3D profiling could be hooked up in some form eventually. Note: This is not a replacement for qt3dsexplorer and similar. The goal is to keep this focused on graphics. Some of the debug features of q3dsviewer will get migrated though (like it is already done with the shadow toggle). Task-number: QT3DS-324 Task-number: QT3DS-325 Change-Id: Iac85867c7e3f45aff51af445d028f15fa044a88d Reviewed-by: Andy Nichols <andy.nichols@qt.io>
Diffstat (limited to 'src/3rdparty/imgui/imconfig.h')
-rw-r--r--src/3rdparty/imgui/imconfig.h74
1 files changed, 74 insertions, 0 deletions
diff --git a/src/3rdparty/imgui/imconfig.h b/src/3rdparty/imgui/imconfig.h
new file mode 100644
index 0000000..950b4cb
--- /dev/null
+++ b/src/3rdparty/imgui/imconfig.h
@@ -0,0 +1,74 @@
+//-----------------------------------------------------------------------------
+// USER IMPLEMENTATION
+// This file contains compile-time options for ImGui.
+// Other options (memory allocation overrides, callbacks, etc.) can be set at runtime via the ImGuiIO structure - ImGui::GetIO().
+//-----------------------------------------------------------------------------
+
+#pragma once
+
+//---- Define assertion handler. Defaults to calling assert().
+//#define IM_ASSERT(_EXPR) MyAssert(_EXPR)
+
+//---- Define attributes of all API symbols declarations, e.g. for DLL under Windows.
+//#define IMGUI_API __declspec( dllexport )
+//#define IMGUI_API __declspec( dllimport )
+
+//---- Include imgui_user.h at the end of imgui.h
+//#define IMGUI_INCLUDE_IMGUI_USER_H
+
+//---- Don't implement default handlers for Windows (so as not to link with OpenClipboard() and others Win32 functions)
+//#define IMGUI_DISABLE_WIN32_DEFAULT_CLIPBOARD_FUNCS
+//#define IMGUI_DISABLE_WIN32_DEFAULT_IME_FUNCS
+
+//---- Don't implement test window functionality (ShowTestWindow()/ShowStyleEditor()/ShowUserGuide() methods will be empty)
+//---- It is very strongly recommended to NOT disable the test windows. Please read the comment at the top of imgui_demo.cpp to learn why.
+//#define IMGUI_DISABLE_TEST_WINDOWS
+
+//---- Don't define obsolete functions names. Consider enabling from time to time or when updating to reduce like hood of using already obsolete function/names
+//#define IMGUI_DISABLE_OBSOLETE_FUNCTIONS
+
+//---- Pack colors to BGRA instead of RGBA (remove need to post process vertex buffer in back ends)
+//#define IMGUI_USE_BGRA_PACKED_COLOR
+
+//---- Implement STB libraries in a namespace to avoid conflicts
+//#define IMGUI_STB_NAMESPACE ImGuiStb
+
+//---- Define constructor and implicit cast operators to convert back<>forth from your math types and ImVec2/ImVec4.
+/*
+#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 (instead of default: 16-bit) to allow meshes with more than 64K vertices
+//#define ImDrawIdx unsigned int
+
+//---- Tip: You can add extra functions within the ImGui:: namespace, here or in your own headers files.
+//---- e.g. create variants of the ImGui::Value() helper for your low-level math types, or your own widgets/helpers.
+/*
+namespace ImGui
+{
+ void Value(const char* prefix, const MyMatrix44& v, const char* float_format = NULL);
+}
+*/
+
+// Qt3D does not like 2 component position attributes (in bounding volume calculation for instance).
+// Therefore, add a z vertex coordinate.
+#define IMGUI_OVERRIDE_DRAWVERT_STRUCT_LAYOUT \
+ struct ImDrawVert { \
+ ImVec2 pos; \
+ float z; \
+ ImVec2 uv; \
+ ImU32 col; \
+ };
+
+// The WindowsWindows_10x86_64WinRTWinRT_10armv7 CI config did not like the
+// clipboard and imm stuff so disable it for now on winrt.
+#ifdef Q_OS_WINRT
+#define IMGUI_DISABLE_WIN32_DEFAULT_CLIPBOARD_FUNCS
+#define IMGUI_DISABLE_WIN32_DEFAULT_IME_FUNCS
+#endif