|
|
|
@@ -30,7 +30,7 @@
|
|
|
|
|
// Library Version
|
|
|
|
|
// (Integer encoded as XYYZZ for use in #if preprocessor conditionals, e.g. '#if IMGUI_VERSION_NUM >= 12345')
|
|
|
|
|
#define IMGUI_VERSION "1.92.7 WIP"
|
|
|
|
|
#define IMGUI_VERSION_NUM 19267
|
|
|
|
|
#define IMGUI_VERSION_NUM 19268
|
|
|
|
|
#define IMGUI_HAS_TABLE // Added BeginTable() - from IMGUI_VERSION_NUM >= 18000
|
|
|
|
|
#define IMGUI_HAS_TEXTURES // Added ImGuiBackendFlags_RendererHasTextures - from IMGUI_VERSION_NUM >= 19198
|
|
|
|
|
|
|
|
|
@@ -1703,6 +1703,7 @@ enum ImGuiInputFlags_
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
// Configuration flags stored in io.ConfigFlags. Set by user/application.
|
|
|
|
|
// Note that nowadays most of our configuration options are in other ImGuiIO fields, e.g. io.ConfigWindowsMoveFromTitleBarOnly.
|
|
|
|
|
enum ImGuiConfigFlags_
|
|
|
|
|
{
|
|
|
|
|
ImGuiConfigFlags_None = 0,
|
|
|
|
@@ -1712,10 +1713,9 @@ enum ImGuiConfigFlags_
|
|
|
|
|
ImGuiConfigFlags_NoMouseCursorChange = 1 << 5, // Instruct backend to not alter mouse cursor shape and visibility. Use if the backend cursor changes are interfering with yours and you don't want to use SetMouseCursor() to change mouse cursor. You may want to honor requests from imgui by reading GetMouseCursor() yourself instead.
|
|
|
|
|
ImGuiConfigFlags_NoKeyboard = 1 << 6, // Instruct dear imgui to disable keyboard inputs and interactions. This is done by ignoring keyboard events and clearing existing states.
|
|
|
|
|
|
|
|
|
|
// User storage (to allow your backend/engine to communicate to code that may be shared between multiple projects. Those flags are NOT used by core Dear ImGui)
|
|
|
|
|
// [Unused] User storage (to allow your backend/engine to communicate to code that may be shared between multiple projects. Those flags are NOT used by core Dear ImGui)
|
|
|
|
|
ImGuiConfigFlags_IsSRGB = 1 << 20, // Application is SRGB-aware.
|
|
|
|
|
ImGuiConfigFlags_IsTouchScreen = 1 << 21, // Application is using a touch screen instead of a mouse.
|
|
|
|
|
|
|
|
|
|
#ifndef IMGUI_DISABLE_OBSOLETE_FUNCTIONS
|
|
|
|
|
ImGuiConfigFlags_NavEnableSetMousePos = 1 << 2, // [moved/renamed in 1.91.4] -> use bool io.ConfigNavMoveSetMousePos
|
|
|
|
|
ImGuiConfigFlags_NavNoCaptureKeyboard = 1 << 3, // [moved/renamed in 1.91.4] -> use bool io.ConfigNavCaptureKeyboard
|
|
|
|
@@ -2856,16 +2856,16 @@ enum ImGuiListClipperFlags_
|
|
|
|
|
// - The clipper also handles various subtleties related to keyboard/gamepad navigation, wrapping etc.
|
|
|
|
|
struct ImGuiListClipper
|
|
|
|
|
{
|
|
|
|
|
ImGuiContext* Ctx; // Parent UI context
|
|
|
|
|
int DisplayStart; // First item to display, updated by each call to Step()
|
|
|
|
|
int DisplayEnd; // End of items to display (exclusive)
|
|
|
|
|
int UserIndex; // Helper storage for user convenience/code. Optional, and otherwise unused if you don't use it.
|
|
|
|
|
int ItemsCount; // [Internal] Number of items
|
|
|
|
|
float ItemsHeight; // [Internal] Height of item after a first step and item submission can calculate it
|
|
|
|
|
ImGuiListClipperFlags Flags; // [Internal] Flags, currently not yet well exposed.
|
|
|
|
|
double StartPosY; // [Internal] Cursor position at the time of Begin() or after table frozen rows are all processed
|
|
|
|
|
double StartSeekOffsetY; // [Internal] Account for frozen rows in a table and initial loss of precision in very large windows.
|
|
|
|
|
ImGuiContext* Ctx; // [Internal] Parent UI context
|
|
|
|
|
void* TempData; // [Internal] Internal data
|
|
|
|
|
ImGuiListClipperFlags Flags; // [Internal] Flags, currently not yet well exposed.
|
|
|
|
|
|
|
|
|
|
// items_count: Use INT_MAX if you don't know how many items you have (in which case the cursor won't be advanced in the final step, and you can call SeekCursorForItem() manually if you need)
|
|
|
|
|
// items_height: Use -1.0f to be calculated automatically on first step. Otherwise pass in the distance between your items, typically GetTextLineHeightWithSpacing() or GetFrameHeightWithSpacing().
|
|
|
|
@@ -2896,17 +2896,18 @@ struct ImGuiListClipper
|
|
|
|
|
// - It is important that we are keeping those disabled by default so they don't leak in user space.
|
|
|
|
|
// - This is in order to allow user enabling implicit cast operators between ImVec2/ImVec4 and their own types (using IM_VEC2_CLASS_EXTRA in imconfig.h)
|
|
|
|
|
// - Add '#define IMGUI_DEFINE_MATH_OPERATORS' before including this file (or in imconfig.h) to access courtesy maths operators for ImVec2 and ImVec4.
|
|
|
|
|
// - We intentionally provide ImVec2*float but not float*ImVec2: this is rare enough and we want to reduce the surface for possible user mistake.
|
|
|
|
|
#ifdef IMGUI_DEFINE_MATH_OPERATORS
|
|
|
|
|
#define IMGUI_DEFINE_MATH_OPERATORS_IMPLEMENTED
|
|
|
|
|
IM_MSVC_RUNTIME_CHECKS_OFF
|
|
|
|
|
// ImVec2 operators
|
|
|
|
|
inline ImVec2 operator*(const ImVec2& lhs, const float rhs) { return ImVec2(lhs.x * rhs, lhs.y * rhs); }
|
|
|
|
|
inline ImVec2 operator*(const float lhs, const ImVec2& rhs) { return ImVec2(lhs * rhs.x, lhs * rhs.y); }
|
|
|
|
|
inline ImVec2 operator/(const ImVec2& lhs, const float rhs) { return ImVec2(lhs.x / rhs, lhs.y / rhs); }
|
|
|
|
|
inline ImVec2 operator+(const ImVec2& lhs, const ImVec2& rhs) { return ImVec2(lhs.x + rhs.x, lhs.y + rhs.y); }
|
|
|
|
|
inline ImVec2 operator-(const ImVec2& lhs, const ImVec2& rhs) { return ImVec2(lhs.x - rhs.x, lhs.y - rhs.y); }
|
|
|
|
|
inline ImVec2 operator*(const ImVec2& lhs, const ImVec2& rhs) { return ImVec2(lhs.x * rhs.x, lhs.y * rhs.y); }
|
|
|
|
|
inline ImVec2 operator/(const ImVec2& lhs, const ImVec2& rhs) { return ImVec2(lhs.x / rhs.x, lhs.y / rhs.y); }
|
|
|
|
|
inline ImVec2 operator+(const ImVec2& lhs) { return lhs; }
|
|
|
|
|
inline ImVec2 operator-(const ImVec2& lhs) { return ImVec2(-lhs.x, -lhs.y); }
|
|
|
|
|
inline ImVec2& operator*=(ImVec2& lhs, const float rhs) { lhs.x *= rhs; lhs.y *= rhs; return lhs; }
|
|
|
|
|
inline ImVec2& operator/=(ImVec2& lhs, const float rhs) { lhs.x /= rhs; lhs.y /= rhs; return lhs; }
|
|
|
|
@@ -2918,12 +2919,20 @@ inline bool operator==(const ImVec2& lhs, const ImVec2& rhs) { return lhs.x =
|
|
|
|
|
inline bool operator!=(const ImVec2& lhs, const ImVec2& rhs) { return lhs.x != rhs.x || lhs.y != rhs.y; }
|
|
|
|
|
// ImVec4 operators
|
|
|
|
|
inline ImVec4 operator*(const ImVec4& lhs, const float rhs) { return ImVec4(lhs.x * rhs, lhs.y * rhs, lhs.z * rhs, lhs.w * rhs); }
|
|
|
|
|
inline ImVec4 operator*(const float lhs, const ImVec4& rhs) { return ImVec4(lhs * rhs.x, lhs * rhs.y, lhs * rhs.z, lhs * rhs.w); }
|
|
|
|
|
inline ImVec4 operator/(const ImVec4& lhs, const float rhs) { return ImVec4(lhs.x / rhs, lhs.y / rhs, lhs.z / rhs, lhs.w / rhs); }
|
|
|
|
|
inline ImVec4 operator+(const ImVec4& lhs, const ImVec4& rhs) { return ImVec4(lhs.x + rhs.x, lhs.y + rhs.y, lhs.z + rhs.z, lhs.w + rhs.w); }
|
|
|
|
|
inline ImVec4 operator-(const ImVec4& lhs, const ImVec4& rhs) { return ImVec4(lhs.x - rhs.x, lhs.y - rhs.y, lhs.z - rhs.z, lhs.w - rhs.w); }
|
|
|
|
|
inline ImVec4 operator*(const ImVec4& lhs, const ImVec4& rhs) { return ImVec4(lhs.x * rhs.x, lhs.y * rhs.y, lhs.z * rhs.z, lhs.w * rhs.w); }
|
|
|
|
|
inline ImVec4 operator/(const ImVec4& lhs, const ImVec4& rhs) { return ImVec4(lhs.x / rhs.x, lhs.y / rhs.y, lhs.z / rhs.z, lhs.w / rhs.w); }
|
|
|
|
|
inline ImVec4 operator+(const ImVec4& lhs) { return lhs; }
|
|
|
|
|
inline ImVec4 operator-(const ImVec4& lhs) { return ImVec4(-lhs.x, -lhs.y, -lhs.z, -lhs.w); }
|
|
|
|
|
inline ImVec4& operator*=(ImVec4& lhs, const float rhs) { lhs.x *= rhs; lhs.y *= rhs; lhs.z *= rhs; lhs.w *= rhs; return lhs; }
|
|
|
|
|
inline ImVec4& operator/=(ImVec4& lhs, const float rhs) { lhs.x /= rhs; lhs.y /= rhs; lhs.z /= rhs; lhs.w /= rhs; return lhs; }
|
|
|
|
|
inline ImVec4& operator+=(ImVec4& lhs, const ImVec4& rhs) { lhs.x += rhs.x; lhs.y += rhs.y; lhs.z += rhs.z; lhs.w += rhs.w; return lhs; }
|
|
|
|
|
inline ImVec4& operator-=(ImVec4& lhs, const ImVec4& rhs) { lhs.x -= rhs.x; lhs.y -= rhs.y; lhs.z -= rhs.z; lhs.w -= rhs.w; return lhs; }
|
|
|
|
|
inline ImVec4& operator*=(ImVec4& lhs, const ImVec4& rhs) { lhs.x *= rhs.x; lhs.y *= rhs.y; lhs.z *= rhs.z; lhs.w *= rhs.w; return lhs; }
|
|
|
|
|
inline ImVec4& operator/=(ImVec4& lhs, const ImVec4& rhs) { lhs.x /= rhs.x; lhs.y /= rhs.y; lhs.z /= rhs.z; lhs.w /= rhs.w; return lhs; }
|
|
|
|
|
inline bool operator==(const ImVec4& lhs, const ImVec4& rhs) { return lhs.x == rhs.x && lhs.y == rhs.y && lhs.z == rhs.z && lhs.w == rhs.w; }
|
|
|
|
|
inline bool operator!=(const ImVec4& lhs, const ImVec4& rhs) { return lhs.x != rhs.x || lhs.y != rhs.y || lhs.z != rhs.z || lhs.w != rhs.w; }
|
|
|
|
|
IM_MSVC_RUNTIME_CHECKS_RESTORE
|
|
|
|
|