Go to the documentation of this file.
32 #error Must include imgui.h before imgui_internal.h
42 #pragma warning (push)
43 #pragma warning (disable: 4251) // class 'xxx' needs to have dll-interface to be used by clients of struct 'xxx' // when IMGUI_API is set to__declspec(dllexport)
47 #if defined(__clang__)
48 #pragma clang diagnostic push
49 #pragma clang diagnostic ignored "-Wunused-function" // for stb_textedit.h
50 #pragma clang diagnostic ignored "-Wmissing-prototypes" // for stb_textedit.h
51 #pragma clang diagnostic ignored "-Wold-style-cast"
52 #if __has_warning("-Wzero-as-null-pointer-constant")
53 #pragma clang diagnostic ignored "-Wzero-as-null-pointer-constant"
55 #if __has_warning("-Wdouble-promotion")
56 #pragma clang diagnostic ignored "-Wdouble-promotion"
58 #elif defined(__GNUC__)
59 #pragma GCC diagnostic push
60 #pragma GCC diagnostic ignored "-Wpragmas" // warning: unknown option after '#pragma GCC diagnostic' kind
61 #pragma GCC diagnostic ignored "-Wclass-memaccess" // [__GNUC__ >= 8] warning: 'memset/memcpy' clearing/writing an object of type 'xxxx' with no trivial copy-assignment; use assignment or value-initialization instead
65 #ifdef IMGUI_DISABLE_FORMAT_STRING_FUNCTIONS // Renamed in 1.74
66 #error Use IMGUI_DISABLE_DEFAULT_FORMAT_FUNCTIONS
68 #ifdef IMGUI_DISABLE_MATH_FUNCTIONS // Renamed in 1.74
69 #error Use IMGUI_DISABLE_DEFAULT_MATH_FUNCTIONS
125 #undef STB_TEXTEDIT_STRING
126 #undef STB_TEXTEDIT_CHARTYPE
127 #define STB_TEXTEDIT_STRING ImGuiInputTextState
128 #define STB_TEXTEDIT_CHARTYPE ImWchar
129 #define STB_TEXTEDIT_GETWIDTH_NEWLINE -1.0f
130 #define STB_TEXTEDIT_UNDOSTATECOUNT 99
131 #define STB_TEXTEDIT_UNDOCHARCOUNT 999
149 #ifndef IMGUI_DEBUG_LOG
150 #define IMGUI_DEBUG_LOG(_FMT,...) printf("[%05d] " _FMT, GImGui->FrameCount, __VA_ARGS__)
154 #if (__cplusplus >= 201100)
155 #define IM_STATIC_ASSERT(_COND) static_assert(_COND, "")
157 #define IM_STATIC_ASSERT(_COND) typedef char static_assertion_##__line__[(_COND)?1:-1]
163 #ifdef IMGUI_DEBUG_PARANOID
164 #define IM_ASSERT_PARANOID(_EXPR) IM_ASSERT(_EXPR)
166 #define IM_ASSERT_PARANOID(_EXPR)
171 #ifndef IM_ASSERT_USER_ERROR
172 #define IM_ASSERT_USER_ERROR(_EXP,_MSG) IM_ASSERT((_EXP) && _MSG) // Recoverable User Error
176 #define IM_PI 3.14159265358979323846f
178 #define IM_NEWLINE "\r\n" // Play it nice with Windows users (Update: since 2018-05, Notepad finally appears to support Unix-style carriage returns!)
180 #define IM_NEWLINE "\n"
182 #define IM_TABSIZE (4)
183 #define IM_F32_TO_INT8_UNBOUND(_VAL) ((int)((_VAL) * 255.0f + ((_VAL)>=0 ? 0.5f : -0.5f))) // Unsaturated, for display purpose
184 #define IM_F32_TO_INT8_SAT(_VAL) ((int)(ImSaturate(_VAL) * 255.0f + 0.5f)) // Saturated, always output 0..255
185 #define IM_FLOOR(_VAL) ((float)(int)(_VAL)) // ImFloor() is not inlined in MSVC debug builds
186 #define IM_ROUND(_VAL) ((float)(int)((_VAL) + 0.5f)) //
190 #define IMGUI_CDECL __cdecl
214 #define ImQsort qsort
217 #ifndef IMGUI_DISABLE_OBSOLETE_FUNCTIONS
238 IMGUI_API const char*
ImStristr(
const char* haystack,
const char* haystack_end,
const char* needle,
const char* needle_end);
248 static inline bool ImCharIsBlankW(
unsigned int c) {
return c ==
' ' || c ==
'\t' || c == 0x3000; }
261 #ifdef IMGUI_DEFINE_MATH_OPERATORS
280 #ifdef IMGUI_DISABLE_FILE_FUNCTIONS
281 #define IMGUI_DISABLE_DEFAULT_FILE_FUNCTIONS
290 #ifndef IMGUI_DISABLE_DEFAULT_FILE_FUNCTIONS
298 #define IMGUI_DISABLE_TTY_FUNCTIONS // Can't use stdout, fflush if we are not using default file functions
304 #ifndef IMGUI_DISABLE_DEFAULT_MATH_FUNCTIONS
305 #define ImFabs(X) fabsf(X)
306 #define ImSqrt(X) sqrtf(X)
307 #define ImFmod(X, Y) fmodf((X), (Y))
308 #define ImCos(X) cosf(X)
309 #define ImSin(X) sinf(X)
310 #define ImAcos(X) acosf(X)
311 #define ImAtan2(Y, X) atan2f((Y), (X))
312 #define ImAtof(STR) atof(STR)
313 #define ImFloorStd(X) floorf(X) // We already uses our own ImFloor() { return (float)(int)v } internally so the standard one wrapper is named differently (it's used by e.g. stb_truetype)
314 #define ImCeil(X) ceilf(X)
315 static inline float ImPow(
float x,
float y) {
return powf(
x,
y); }
316 static inline double ImPow(
double x,
double y) {
return pow(
x,
y); }
320 template<
typename T>
static inline T ImMin(
T lhs,
T rhs) {
return lhs < rhs ? lhs : rhs; }
321 template<
typename T>
static inline T ImMax(
T lhs,
T rhs) {
return lhs >= rhs ? lhs : rhs; }
322 template<
typename T>
static inline T ImClamp(
T v,
T mn,
T mx) {
return (
v < mn) ? mn : (
v > mx) ? mx :
v; }
323 template<
typename T>
static inline T ImLerp(
T a,
T b,
float t) {
return (
T)(
a + (
b -
a) * t); }
324 template<
typename T>
static inline void ImSwap(
T&
a,
T&
b) {
T tmp =
a;
a =
b;
b = tmp; }
334 static inline float ImSaturate(
float f) {
return (
f < 0.0
f) ? 0.0f : (
f > 1.0f) ? 1.0
f :
f; }
337 static inline float ImInvLength(
const ImVec2& lhs,
float fail_value) {
float d = lhs.
x*lhs.
x + lhs.
y*lhs.
y;
if (
d > 0.0
f)
return 1.0f /
ImSqrt(
d);
return fail_value; }
338 static inline float ImFloor(
float f) {
return (
float)(int)(
f); }
365 int a_mod = (
n & 31);
366 int b_mod = ((n2 >=
n + 31) ? 31 : (n2 & 31)) + 1;
424 T*
alloc_chunk(
size_t sz) {
size_t HDR_SZ = 4; sz = ((HDR_SZ + sz) + 3u) & ~3u;
int off = Buf.
Size; Buf.
resize(off + (
int)sz); ((
int*)(
void*)(Buf.
Data + off))[0] = (int)sz;
return (
T*)(
void*)(Buf.
Data + off + (
int)HDR_SZ); }
543 #ifdef IMGUI_ENABLE_TEST_ENGINE
545 ImGuiItemStatusFlags_Openable = 1 << 10,
546 ImGuiItemStatusFlags_Opened = 1 << 11,
547 ImGuiItemStatusFlags_Checkable = 1 << 12,
548 ImGuiItemStatusFlags_Checked = 1 << 13
692 ImRect(
float x1,
float y1,
float x2,
float y2) : Min(x1, y1), Max(x2, y2) {}
705 void Add(
const ImVec2&
p) {
if (Min.
x >
p.x) Min.
x =
p.x;
if (Min.
y >
p.y) Min.
y =
p.y;
if (Max.
x <
p.x) Max.
x =
p.x;
if (Max.
y <
p.y) Max.
y =
p.y; }
706 void Add(
const ImRect&
r) {
if (Min.
x >
r.Min.x) Min.
x =
r.Min.x;
if (Min.
y >
r.Min.y) Min.
y =
r.Min.y;
if (Max.
x <
r.Max.x) Max.
x =
r.Max.x;
if (Max.
y <
r.Max.y) Max.
y =
r.Max.y; }
707 void Expand(
const float amount) { Min.
x -= amount; Min.
y -= amount; Max.
x += amount; Max.
y += amount; }
708 void Expand(
const ImVec2& amount) { Min.
x -= amount.
x; Min.
y -= amount.
y; Max.
x += amount.
x; Max.
y += amount.
y; }
762 float Pos[3], NextWidths[3];
765 void Update(
int count,
float spacing,
bool clear);
766 float DeclColumns(
float w0,
float w1,
float w2);
767 float CalcExtraSpace(
float avail_w)
const;
782 ImStb::STB_TexteditState
Stb;
791 void ClearText() { CurLenW = CurLenA = 0; TextW[0] = 0; TextA[0] = 0; CursorClamp(); }
795 void OnKeyPressed(
int key);
799 void CursorClamp() { Stb.cursor =
ImMin(Stb.cursor, CurLenW); Stb.select_start =
ImMin(Stb.select_start, CurLenW); Stb.select_end =
ImMin(Stb.select_end, CurLenW); }
800 bool HasSelection()
const {
return Stb.select_start != Stb.select_end; }
802 void SelectAll() { Stb.select_start = 0; Stb.cursor = Stb.select_end = CurLenW; Stb.has_preferred_x = 0; }
890 #define IM_DRAWLIST_CIRCLE_AUTO_SEGMENT_MIN 12
891 #define IM_DRAWLIST_CIRCLE_AUTO_SEGMENT_MAX 512
892 #define IM_DRAWLIST_CIRCLE_AUTO_SEGMENT_CALC(_RAD,_MAXERROR) ImClamp((int)((IM_PI * 2.0f) / ImAcos(((_RAD) - (_MAXERROR)) / (_RAD))), IM_DRAWLIST_CIRCLE_AUTO_SEGMENT_MIN, IM_DRAWLIST_CIRCLE_AUTO_SEGMENT_MAX)
895 #ifndef IM_DRAWLIST_ARCFAST_TESSELLATION_MULTIPLIER
896 #define IM_DRAWLIST_ARCFAST_TESSELLATION_MULTIPLIER 1
916 void SetCircleSegmentMaxError(
float max_error);
1417 short StackSizesBackup[6];
1421 CursorPos = CursorPosPrevLine = CursorStartPos = CursorMaxPos =
ImVec2(0.0
f, 0.0
f);
1422 CurrLineSize = PrevLineSize =
ImVec2(0.0
f, 0.0
f);
1423 CurrLineTextBaseOffset = PrevLineTextBaseOffset = 0.0f;
1430 LastItemRect = LastItemDisplayRect =
ImRect();
1432 NavLayerActiveMask = NavLayerActiveMaskNext = 0x00;
1435 NavFocusScopeIdCurrent = 0;
1436 NavHideHighlightOneFrame =
false;
1437 NavHasScroll =
false;
1439 MenuBarAppending =
false;
1440 MenuBarOffset =
ImVec2(0.0
f, 0.0
f);
1442 TreeJumpToParentOnPopMask = 0x00;
1443 StateStorage =
NULL;
1444 CurrentColumns =
NULL;
1446 FocusCounterRegular = FocusCounterTabStop = -1;
1450 TextWrapPos = -1.0f;
1451 memset(StackSizesBackup, 0,
sizeof(StackSizesBackup));
1547 ImGuiID GetIDNoKeepAlive(
const char*
str,
const char* str_end =
NULL);
1548 ImGuiID GetIDNoKeepAlive(
const void* ptr);
1831 #ifndef IMGUI_DISABLE_OBSOLETE_FUNCTIONS
1862 template<
typename T,
typename SIGNED_T,
typename FLOAT_T>
IMGUI_API bool SliderBehaviorT(
const ImRect& bb,
ImGuiID id,
ImGuiDataType data_type,
T*
v,
T v_min,
T v_max,
const char*
format,
float power,
ImGuiSliderFlags flags,
ImRect* out_grab_bb);
1885 IMGUI_API void PlotEx(
ImGuiPlotType plot_type,
const char*
label,
float (*values_getter)(
void*
data,
int idx),
void*
data,
int values_count,
int values_offset,
const char* overlay_text,
float scale_min,
float scale_max,
ImVec2 frame_size);
1912 #ifndef IM_DEBUG_BREAK
1913 #if defined(__clang__)
1914 #define IM_DEBUG_BREAK() __builtin_debugtrap()
1915 #elif defined (_MSC_VER)
1916 #define IM_DEBUG_BREAK() __debugbreak()
1918 #define IM_DEBUG_BREAK() IM_ASSERT(0) // It is expected that you define IM_DEBUG_BREAK() into something that will break nicely in a debugger!
1920 #endif // #ifndef IM_DEBUG_BREAK
1924 #ifdef IMGUI_ENABLE_TEST_ENGINE
1925 extern void ImGuiTestEngineHook_PreNewFrame(
ImGuiContext* ctx);
1926 extern void ImGuiTestEngineHook_PostNewFrame(
ImGuiContext* ctx);
1929 extern void ImGuiTestEngineHook_Log(
ImGuiContext* ctx,
const char*
fmt, ...);
1930 #define IMGUI_TEST_ENGINE_ITEM_ADD(_BB, _ID) ImGuiTestEngineHook_ItemAdd(&g, _BB, _ID) // Register item bounding box
1931 #define IMGUI_TEST_ENGINE_ITEM_INFO(_ID, _LABEL, _FLAGS) ImGuiTestEngineHook_ItemInfo(&g, _ID, _LABEL, _FLAGS) // Register item label and status flags (optional)
1932 #define IMGUI_TEST_ENGINE_LOG(_FMT, ...) ImGuiTestEngineHook_Log(&g, _FMT, __VA_ARGS__) // Custom log entry from user land into test log
1934 #define IMGUI_TEST_ENGINE_ITEM_ADD(_BB, _ID) do { } while (0)
1935 #define IMGUI_TEST_ENGINE_ITEM_INFO(_ID, _LABEL, _FLAGS) do { } while (0)
1936 #define IMGUI_TEST_ENGINE_LOG(_FMT, ...) do { } while (0)
1939 #if defined(__clang__)
1940 #pragma clang diagnostic pop
1941 #elif defined(__GNUC__)
1942 #pragma GCC diagnostic pop
1946 #pragma warning (pop)
1949 #endif // #ifndef IMGUI_DISABLE
int KeyMap[ImGuiKey_COUNT]
float BackupCurrLineTextBaseOffset
IMGUI_API void ClosePopupToLevel(int remaining, bool restore_focus_to_window_under_popup)
ImGuiInputTextState InputTextState
ImGuiInputSource ActiveIdSource
IMGUI_API ImGuiWindow * GetTopMostPopupModal()
IMGUI_API ImVec2 CalcWindowExpectedSize(ImGuiWindow *window)
@ ImGuiNextWindowDataFlags_HasSizeConstraint
static bool ImIsPowerOfTwo(int v)
ImDrawListSplitter Splitter
IMGUI_API bool SliderBehavior(const ImRect &bb, ImGuiID id, ImGuiDataType data_type, void *p_v, const void *p_min, const void *p_max, const char *format, float power, ImGuiSliderFlags flags, ImRect *out_grab_bb)
IMGUI_API void ColorPickerOptionsPopup(const float *ref_col, ImGuiColorEditFlags flags)
signed char ResizeBorderHeld
ImGuiItemStatusFlags GetItemStatusFlags()
bool Contains(const ImRect &r) const
int LogDepthToExpandDefault
bool NavInitRequestFromMove
IMGUI_API void PopFocusScope()
T * GetByIndex(ImPoolIdx n)
GLuint const GLchar * name
void ClipWithFull(const ImRect &r)
const IMGUI_API char * ImStrSkipBlank(const char *str)
IMGUI_API void PushItemFlag(ImGuiItemFlags option, bool enabled)
static float ImPow(float x, float y)
@ ImGuiItemFlags_Disabled
IMGUI_API void FlattenIntoSingleLayer()
T * GetByKey(ImGuiID key)
ImVector< ImGuiSettingsHandler > SettingsHandlers
IMGUI_API bool CollapseButton(ImGuiID id, const ImVec2 &pos)
int FramerateSecPerFrameIdx
IMGUI_API bool ScrollbarEx(const ImRect &bb, ImGuiID id, ImGuiAxis axis, float *p_scroll_v, float avail_v, float contents_v, ImDrawCornerFlags rounding_corners)
ImGuiColumns * CurrentColumns
IMGUI_API void SetCurrentFont(ImFont *font)
@ ImGuiNavDirSourceFlags_PadLStick
ImRect NavInitResultRectRel
void ImBitArraySetBit(ImU32 *arr, int n)
IMGUI_API ImU64 ImFileRead(void *data, ImU64 size, ImU64 count, ImFileHandle file)
ImGuiPayload DragDropPayload
@ ImGuiButtonFlags_MouseButtonRight
IMGUI_API void UpdateMouseMovingWindowNewFrame()
static float ImDot(const ImVec2 &a, const ImVec2 &b)
ImGuiNextItemDataFlags Flags
ImRect MenuBarRect() const
bool ActiveIdIsJustActivated
IMGUI_API ImGuiID GetID(const char *str_id)
@ ImGuiButtonFlags_AlignTextBaseLine
static T ImClamp(T v, T mn, T mx)
ImStb::STB_TexteditState Stb
T * GetOrAddByKey(ImGuiID key)
IMGUI_API ImU32 ImHashStr(const char *data, size_t data_size=0, ImU32 seed=0)
IMGUI_API ImGuiColumns * FindOrCreateColumns(ImGuiWindow *window, ImGuiID id)
IMGUI_API int ImFormatString(char *buf, size_t buf_size, const char *fmt,...) IM_FMTARGS(3)
void Expand(const float amount)
ImGuiInputTextCallback UserCallback
@ ImGuiSelectableFlags_DrawHoveredWhenHeld
@ ImGuiSelectableFlags_SetNavIdOnHover
float HoveredIdNotActiveTimer
@ ImGuiNextItemDataFlags_None
IMGUI_API int ImStrnicmp(const char *str1, const char *str2, size_t count)
IMGUI_API void RenderArrowPointingAt(ImDrawList *draw_list, ImVec2 pos, ImVec2 half_sz, ImGuiDir direction, ImU32 col)
ImGuiID NavActivateDownId
IMGUI_API bool DataTypeApplyOpFromText(const char *buf, const char *initial_value_buf, ImGuiDataType data_type, void *p_data, const char *format)
@ ImGuiButtonFlags_NoNavFocus
ImGuiMenuColumns MenuColumns
ImGuiID HoveredIdPreviousFrame
@ ImGuiNavDirSourceFlags_Keyboard
static ImVec2 ImRotate(const ImVec2 &v, float cos_a, float sin_a)
bool WithinFrameScopeWithImplicitWindow
IMGUI_API ImVec2 ImTriangleClosestPoint(const ImVec2 &a, const ImVec2 &b, const ImVec2 &c, const ImVec2 &p)
const IMGUI_API char * ImParseFormatFindStart(const char *format)
ImVector< ImGuiPopupData > OpenPopupStack
ImGuiStyleMod(ImGuiStyleVar idx, float v)
@ ImGuiPlotType_Histogram
uint128 operator*(const uint128 &lhs, const uint128 &rhs)
int GetRedoAvailCount() const
@ ImGuiTooltipFlags_OverridePreviousTooltip
@ ImGuiNavMoveFlags_AllowCurrentNavId
IMGUI_API char * ImStrdup(const char *str)
IMGUI_API ImGuiWindow * FindWindowByName(const char *name)
static bool rm(upb_table *t, lookupkey_t key, upb_value *val, upb_tabkey *removed, uint32_t hash, eqlfunc_t *eql)
ImGuiWindow * ActiveIdPreviousFrameWindow
IMGUI_API void PopColumnsBackground()
int index_from_ptr(const T *it) const
float DragDropAcceptIdCurrRectSurface
IMGUI_API void GcAwakeTransientWindowBuffers(ImGuiWindow *window)
@ ImGuiNextWindowDataFlags_HasCollapsed
ImGuiID NextSelectedTabId
IMGUI_API void MarkItemEdited(ImGuiID id)
void TranslateY(float dy)
IMGUI_API bool BeginDragDropTargetCustom(const ImRect &bb, ImGuiID id)
int WantCaptureMouseNextFrame
@ ImGuiButtonFlags_PressedOnClick
@ ImGuiButtonFlags_NoHoldingActiveId
IMGUI_API ImVec2 CalcItemSize(ImVec2 size, float default_w, float default_h)
int NavLayerActiveMaskNext
@ ImGuiNavMoveFlags_WrapY
@ ImGuiButtonFlags_MouseButtonLeft
@ ImGuiButtonFlags_Disabled
IMGUI_API void SeparatorEx(ImGuiSeparatorFlags flags)
IMGUI_API int CalcTypematicRepeatAmount(float t0, float t1, float repeat_delay, float repeat_rate)
ImGuiNavLayer NavLayerCurrent
Duration & operator+=(Duration &d1, const Duration &d2)
ImGuiCond SetWindowSizeAllowFlags
GLuint GLsizei const GLchar * label
ImVec2 MenuBarOffsetMinVal
IMGUI_API bool ItemHoverable(const ImRect &bb, ImGuiID id)
float DragSpeedDefaultRatio
IMGUI_API void ImTriangleBarycentricCoords(const ImVec2 &a, const ImVec2 &b, const ImVec2 &c, const ImVec2 &p, float &out_u, float &out_v, float &out_w)
@ ImGuiNavMoveFlags_AlsoScoreVisibleSet
float PrevLineTextBaseOffset
IMGUI_API int ImParseFormatPrecision(const char *format, int default_value)
static int ImUpperPowerOfTwo(int v)
IMGUI_API void SetScrollY(float scroll_y)
ImRect LastItemDisplayRect
ImGuiID ActiveIdPreviousFrame
ImVector< unsigned char > DragDropPayloadBufHeap
bool ActiveIdPreviousFrameHasBeenEditedBefore
ImGuiTabBar * CurrentTabBar
IMGUI_API bool DragBehaviorT(ImGuiDataType data_type, T *v, float v_speed, T v_min, T v_max, const char *format, float power, ImGuiDragFlags flags)
@ ImGuiSelectableFlags_SpanAvailWidth
ImGuiTextBuffer LogBuffer
float WheelingWindowTimer
@ ImGuiTabBarFlags_DockNode
static float ImFloor(float f)
ImGuiNavMoveResult NavMoveResultLocal
ImGuiNextWindowData NextWindowData
IMGUI_API ImGuiWindow * FindWindowByID(ImGuiID id)
ImGuiWindow * ParentWindow
@ ImGuiColorEditFlags__OptionsDefault
IMGUI_API int ImTextStrToUtf8(char *buf, int buf_size, const ImWchar *in_text, const ImWchar *in_text_end)
ImFont InputTextPasswordFont
ImVector< char > InitialTextA
@ ImGuiNavMoveFlags_ScrollToEdge
IMGUI_API int ImFormatStringV(char *buf, size_t buf_size, const char *fmt, va_list args) IM_FMTLIST(3)
IMGUI_API void RenderMouseCursor(ImDrawList *draw_list, ImVec2 pos, float scale, ImGuiMouseCursor mouse_cursor, ImU32 col_fill, ImU32 col_border, ImU32 col_shadow)
ImRect LastItemDisplayRect
static ImU32 ImHash(const void *data, int size, ImU32 seed=0)
ImGuiSelectableFlagsPrivate_
uint128 operator/(const uint128 &lhs, const uint128 &rhs)
ImGuiID NavNextActivateId
ImDrawList BackgroundDrawList
@ ImGuiInputReadMode_Repeat
static int ImModPositive(int a, int b)
ImVector< ImGuiID > MenusIdSubmittedThisFrame
IMGUI_API void BeginColumns(const char *str_id, int count, ImGuiColumnsFlags flags=0)
ImGuiStorage * StateStorage
float NavInputs[ImGuiNavInput_COUNT]
ImVector< float > TextWrapPosStack
#define IM_DRAWLIST_ARCFAST_TESSELLATION_MULTIPLIER
ImGuiCond SetWindowCollapsedAllowFlags
ImGuiTextBuffer TabsNames
@ ImGuiTabBarFlags_SaveSettings
int ImGuiNavHighlightFlags
static PyObject * Add(PyObject *self, PyObject *file_descriptor_proto)
IMGUI_API ImGuiTabItem * TabBarFindTabByID(ImGuiTabBar *tab_bar, ImGuiID tab_id)
float LastTabContentHeight
IMGUI_API void NavMoveRequestCancel()
@ ImGuiColumnsFlags_NoBorder
float ScrollbarClickDeltaToGrabCenter
ImGuiID NavFocusScopeIdCurrent
IMGUI_API bool IsDragDropPayloadBeingAccepted()
@ ImGuiNavDirSourceFlags_None
ImFont * GetDefaultFont()
@ ImGuiTabItemFlags_NoCloseButton
IMGUI_API bool FocusableItemRegister(ImGuiWindow *window, ImGuiID id)
IMGUI_API float GetColumnOffsetFromNorm(const ImGuiColumns *columns, float offset_norm)
IMGUI_API void ClearActiveID()
bool NavDisableMouseHover
int ImGuiNextItemDataFlags
IMGUI_API void RenderText(ImVec2 pos, const char *text, const char *text_end=NULL, bool hide_text_after_hash=true)
ImGuiItemHoveredDataBackup()
IMGUI_API void BringWindowToDisplayFront(ImGuiWindow *window)
ImVector< ImGuiPtrOrIndex > CurrentTabBarStack
IMGUI_API void FocusTopMostWindowUnderOne(ImGuiWindow *under_this_window, ImGuiWindow *ignore_window)
ImGuiDragDropFlags DragDropAcceptFlags
ImPool< ImGuiTabBar > TabBars
IMGUI_API void RenderTextClipped(const ImVec2 &pos_min, const ImVec2 &pos_max, const char *text, const char *text_end, const ImVec2 *text_size_if_known, const ImVec2 &align=ImVec2(0, 0), const ImRect *clip_rect=NULL)
ImVector< ImGuiColumnData > Columns
uint128 operator-(const uint128 &val)
const IMGUI_API char * ImParseFormatFindEnd(const char *format)
@ ImGuiWindowFlags_MenuBar
@ ImGuiPopupPositionPolicy_ComboBox
@ ImGuiSelectableFlags_SelectOnClick
IMGUI_API ImVec2 TabItemCalcSize(const char *label, bool has_close_button)
void ImBitArrayClearBit(ImU32 *arr, int n)
ImGuiID DragDropAcceptIdPrev
#define T(upbtypeconst, upbtype, ctype, default_value)
IMGUI_API void RenderNavHighlight(const ImRect &bb, ImGuiID id, ImGuiNavHighlightFlags flags=ImGuiNavHighlightFlags_TypeDefault)
bool DebugItemPickerActive
@ ImGuiButtonFlags_PressedOnRelease
bool Overlaps(const ImRect &r) const
ImGuiWindow * NavWindowingTarget
static T ImAddClampOverflow(T a, T b, T mn, T mx)
void Remove(ImGuiID key, ImPoolIdx idx)
ImVector< ImGuiGroupData > GroupStack
bool NavHideHighlightOneFrame
ImVector< char > PrivateClipboard
ImVector< ImGuiWindow * > CurrentWindowStack
static T ImMin(T lhs, T rhs)
IMGUI_API void PushFocusScope(ImGuiID id)
static uint32_t idx(tarjan *t, const upb_refcounted *r)
@ ImGuiInputSource_NavGamepad
bool IsNavInputTest(ImGuiNavInput n, ImGuiInputReadMode rm)
IMGUI_API bool SplitterBehavior(const ImRect &bb, ImGuiID id, ImGuiAxis axis, float *size1, float *size2, float min_size1, float min_size2, float hover_extend=0.0f, float hover_visibility_delay=0.0f)
ImVector< ImGuiTabItem > Tabs
void TranslateX(float dx)
@ ImGuiButtonFlags_MouseButtonShift_
ImGuiWindow * GetCurrentWindow()
IMGUI_API bool BeginChildEx(const char *name, ImGuiID id, const ImVec2 &size_arg, bool border, ImGuiWindowFlags flags)
ImVec2 BackupCurrLineSize
IMGUI_API ImGuiID GetHoveredID()
GLboolean GLboolean GLboolean b
const IMGUI_API ImWchar * ImStrbolW(const ImWchar *buf_mid_line, const ImWchar *buf_begin)
ImVector< ImU32 > Storage
float CurveTessellationTol
IMGUI_API bool IsPopupOpen(const char *str_id)
@ ImGuiItemFlags_NoNavDefaultFocus
@ ImGuiTextFlags_NoWidthForLargeClippedText
@ ImGuiInputReadMode_RepeatFast
ImGuiItemStatusFlags LastItemStatusFlags
IMGUI_API ImFileHandle ImFileOpen(const char *filename, const char *mode)
int FocusRequestCurrCounterTabStop
ImVector< ImFont * > FontStack
IMGUI_API float CalcWrapWidthForPos(const ImVec2 &pos, float wrap_pos_x)
static float ImSaturate(float f)
bool VisibleTabWasSubmitted
void Translate(const ImVec2 &d)
GLenum GLenum GLsizei const GLuint GLboolean enabled
IMGUI_API ImVec2 FindBestWindowPosForPopupEx(const ImVec2 &ref_pos, const ImVec2 &size, ImGuiDir *last_dir, const ImRect &r_outer, const ImRect &r_avoid, ImGuiPopupPositionPolicy policy=ImGuiPopupPositionPolicy_Default)
static size_t begin(const upb_table *t)
ImVec2 PlatformImeLastPos
ImGuiID GetFocusScopeID()
@ ImGuiNextWindowDataFlags_HasPos
IMGUI_API void ImFontAtlasBuildInit(ImFontAtlas *atlas)
ImGuiNavMoveFlags NavMoveRequestFlags
IMGUI_API bool IsKeyPressed(int user_key_index, bool repeat=true)
IMGUI_API bool IsClippedEx(const ImRect &bb, ImGuiID id, bool clip_even_when_logged)
bool ActiveIdAllowOverlap
static bool ImCharIsBlankW(unsigned int c)
@ ImGuiSeparatorFlags_SpanAllColumns
ImRect SizeConstraintRect
ImGuiWindow * FocusRequestCurrWindow
int(* ImGuiInputTextCallback)(ImGuiInputTextCallbackData *data)
ImRect(float x1, float y1, float x2, float y2)
IMGUI_API void ClosePopupsOverWindow(ImGuiWindow *ref_window, bool restore_focus_to_window_under_popup)
IMGUI_API void ImFontAtlasBuildPackCustomRects(ImFontAtlas *atlas, void *stbrp_context_opaque)
IMGUI_API void RenderColorRectWithAlphaCheckerboard(ImDrawList *draw_list, ImVec2 p_min, ImVec2 p_max, ImU32 fill_col, float grid_step, ImVec2 grid_off, float rounding=0.0f, int rounding_corners_flags=~0)
void Expand(const ImVec2 &amount)
IMGUI_API ImGuiID GetWindowScrollbarID(ImGuiWindow *window, ImGuiAxis axis)
IMGUI_API void GcCompactTransientWindowBuffers(ImGuiWindow *window)
ImGuiWindow * NavWindowingTargetAnim
@ ImGuiButtonFlags_MouseButtonMiddle
@ ImGuiNavMoveFlags_WrapX
@ ImGuiButtonFlags_NoHoveredOnFocus
IMGUI_API void ShadeVertsLinearColorGradientKeepAlpha(ImDrawList *draw_list, int vert_start_idx, int vert_end_idx, ImVec2 gradient_p0, ImVec2 gradient_p1, ImU32 col0, ImU32 col1)
@ ImGuiButtonFlags_Repeat
float TitleBarHeight() const
IMGUI_API void ImStrncpy(char *dst, const char *src, size_t count)
@ ImGuiItemStatusFlags_None
ImGuiWindow * NavWindowingList
IMGUI_API bool DragBehavior(ImGuiID id, ImGuiDataType data_type, void *p_v, float v_speed, const void *p_min, const void *p_max, const char *format, float power, ImGuiDragFlags flags)
float ColorEditLastColor[3]
@ ImGuiButtonFlags_NoKeyModifiers
float OffsetNormBeforeResize
ImDrawListFlags InitialFlags
GLint GLenum GLboolean GLsizei stride
@ ImGuiNavDirSourceFlags_PadDPad
GLint GLint GLsizei GLint border
ImVector< ImGuiWindow * > Windows
IMGUI_API void SetScrollX(float scroll_x)
IMGUI_API ImU64 ImFileGetSize(ImFileHandle file)
ImGuiWindow * HoveredRootWindow
@ ImGuiColumnsFlags_NoForceWithinWindow
IMGUI_API void TreePushOverrideID(ImGuiID id)
@ ImGuiColumnsFlags_NoResize
IMGUI_API ImU32 ImHashData(const void *data, size_t data_size, ImU32 seed=0)
IMGUI_API void SetNavIDWithRectRel(ImGuiID id, int nav_layer, ImGuiID focus_scope_id, const ImRect &rect_rel)
@ ImGuiNavForward_ForwardActive
IMGUI_API bool TabItemLabelAndCloseButton(ImDrawList *draw_list, const ImRect &bb, ImGuiTabItemFlags flags, ImVec2 frame_padding, const char *label, ImGuiID tab_id, ImGuiID close_button_id)
@ ImGuiNavMoveFlags_LoopX
IMGUI_API bool ButtonEx(const char *label, const ImVec2 &size_arg=ImVec2(0, 0), ImGuiButtonFlags flags=0)
@ ImGuiButtonFlags_PressedOnClickReleaseAnywhere
@ ImGuiNavMoveFlags_LoopY
@ ImGuiButtonFlags_PressedOnDragDropHold
IMGUI_API float GetColumnNormFromOffset(const ImGuiColumns *columns, float offset)
int WantCaptureKeyboardNextFrame
bool HasSelection() const
IMGUI_API ImVec2 GetContentRegionMaxAbs()
IMGUI_API void UpdateWindowParentAndRootLinks(ImGuiWindow *window, ImGuiWindowFlags flags, ImGuiWindow *parent_window)
GLint GLint GLsizei GLint GLenum format
IMGUI_API bool IsMouseDragPastThreshold(ImGuiMouseButton button, float lock_threshold=-1.0f)
void ImBitArraySetBitRange(ImU32 *arr, int n, int n2)
ImGuiNextItemData NextItemData
int FocusRequestNextCounterRegular
ImVector< ImGuiPopupData > BeginPopupStack
ImRect(const ImVec2 &min, const ImVec2 &max)
IMGUI_API void SetFocusID(ImGuiID id, ImGuiWindow *window)
@ ImGuiButtonFlags_PressedOnClickRelease
IMGUI_API bool ItemAdd(const ImRect &bb, ImGuiID id, const ImRect *nav_bb=NULL)
IMGUI_API ImGuiWindowSettings * FindWindowSettings(ImGuiID id)
ImVec4 ClipRectFullscreen
@ ImGuiSelectableFlags_SelectOnRelease
IMGUI_API ImRect GetWindowAllowedExtentRect(ImGuiWindow *window)
@ ImGuiItemStatusFlags_ToggledSelection
ImGuiPtrOrIndex(int index)
IMGUI_API void PopItemFlag()
void Add(const ImVec2 &p)
bool ActiveIdHasBeenPressedBefore
ImGuiWindow * ActiveIdWindow
IMGUI_API ImGuiContext * GImGui
ImGuiDragDropFlags DragDropSourceFlags
bool Contains(const T *p) const
IMGUI_API void LogRenderedText(const ImVec2 *ref_pos, const char *text, const char *text_end=NULL)
GTEST_API_ const char * fmt
IMGUI_API void RenderArrow(ImDrawList *draw_list, ImVec2 pos, ImU32 col, ImGuiDir dir, float scale=1.0f)
@ ImGuiLayoutType_Vertical
ImGuiNavMoveResult NavMoveResultLocalVisibleSet
void Remove(ImGuiID key, const T *p)
IMGUI_API ImVec2 ScrollToBringRectIntoView(ImGuiWindow *window, const ImRect &item_rect)
IMGUI_API void UpdateHoveredWindowAndCaptureFlags()
ImGuiInputSource NavInputSource
IMGUI_API ImVec2 GetNavInputAmount2d(ImGuiNavDirSourceFlags dir_sources, ImGuiInputReadMode mode, float slow_factor=0.0f, float fast_factor=0.0f)
ImGuiNextWindowDataFlags_
@ ImGuiTabBarFlags_IsFocused
IMGUI_API bool IsWindowNavFocusable(ImGuiWindow *window)
float ImTriangleArea(const ImVec2 &a, const ImVec2 &b, const ImVec2 &c)
ImGuiLayoutType LayoutType
static float ImLinearSweep(float current, float target, float speed)
void Add(const ImRect &r)
@ ImGuiButtonFlags_MouseButtonDefault_
IMGUI_API bool InputTextEx(const char *label, const char *hint, char *buf, int buf_size, const ImVec2 &size_arg, ImGuiInputTextFlags flags, ImGuiInputTextCallback callback=NULL, void *user_data=NULL)
@ ImGuiInputSource_NavKeyboard
#define IM_ARRAYSIZE(_ARR)
IMGUI_API void SetHoveredID(ImGuiID id)
ImGuiID BackupActiveIdIsAlive
IMGUI_API bool BeginPopupEx(ImGuiID id, ImGuiWindowFlags extra_flags)
IMGUI_API void ImFontAtlasBuildMultiplyCalcLookupTable(unsigned char out_table[256], float in_multiply_factor)
int GetTabOrder(const ImGuiTabItem *tab) const
@ ImGuiColumnsFlags_GrowParentContentsSize
ImVector< ImDrawList * > Layers[2]
int HiddenFramesCannotSkipItems
IMGUI_API void ActivateItem(ImGuiID id)
void reserve(int new_capacity)
const IMGUI_API char * FindRenderedTextEnd(const char *text, const char *text_end=NULL)
ImPoolIdx GetIndex(const T *p) const
@ ImGuiButtonFlags_AllowItemOverlap
ImGuiID DragDropAcceptIdCurr
IMGUI_API void SetActiveID(ImGuiID id, ImGuiWindow *window)
ImGuiColorEditFlags ColorEditOptions
int MemoryDrawListIdxCapacity
@ ImGuiNavHighlightFlags_None
@ ImGuiNextWindowDataFlags_HasSize
bool IsActiveIdUsingKey(ImGuiKey key)
const IMGUI_API ImGuiDataTypeInfo * DataTypeGetInfo(ImGuiDataType data_type)
IMGUI_API bool TempInputScalar(const ImRect &bb, ImGuiID id, const char *label, ImGuiDataType data_type, void *p_data, const char *format)
bool IsKeyPressedMap(ImGuiKey key, bool repeat=true)
IMGUI_API bool ImFileClose(ImFileHandle file)
IMGUI_API void TabBarCloseTab(ImGuiTabBar *tab_bar, ImGuiTabItem *tab)
@ ImGuiItemStatusFlags_HoveredRect
ImGuiID NavActivatePressedId
@ ImGuiNavForward_ForwardQueued
bool HoveredIdAllowOverlap
IMGUI_API bool TreeNodeBehaviorIsOpen(ImGuiID id, ImGuiTreeNodeFlags flags=0)
IMGUI_API void ShadeVertsLinearUV(ImDrawList *draw_list, int vert_start_idx, int vert_end_idx, const ImVec2 &a, const ImVec2 &b, const ImVec2 &uv_a, const ImVec2 &uv_b, bool clamp)
IMGUI_API void StartMouseMovingWindow(ImGuiWindow *window)
@ ImGuiInputReadMode_Pressed
void(* ReadLineFn)(ImGuiContext *ctx, ImGuiSettingsHandler *handler, void *entry, const char *line)
static T ImMax(T lhs, T rhs)
GLenum GLuint GLenum GLsizei const GLchar * buf
ImRect TitleBarRect() const
const SETUP_TEARDOWN_TESTCONTEXT char * key
@ ImGuiNextWindowDataFlags_HasFocus
ImVec2ih(const ImVec2 &rhs)
bool IsActiveIdUsingNavInput(ImGuiNavInput input)
@ ImGuiNextItemDataFlags_HasWidth
bool Contains(const ImVec2 &p) const
IMGUI_API void FocusableItemUnregister(ImGuiWindow *window)
IMGUI_API ImGuiWindowSettings * CreateNewWindowSettings(const char *name)
ImVector< ImGuiWindow * > ChildWindows
IMGUI_API void RenderRectFilledRangeH(ImDrawList *draw_list, const ImRect &rect, ImU32 col, float x_start_norm, float x_end_norm, float rounding)
ImGuiNavMoveResult NavMoveResultOther
@ ImGuiSeparatorFlags_Horizontal
float NavWindowingHighlightAlpha
T * alloc_chunk(size_t sz)
static float ImInvLength(const ImVec2 &lhs, float fail_value)
ImGuiSizeCallback SizeCallback
ImVec2 ContentSizeExplicit
IMGUI_API ImDrawList * GetForegroundDrawList()
IMGUI_API void ClearDragDrop()
typedef void(APIENTRY *GLDEBUGPROCARB)(GLenum source
ImDrawList ForegroundDrawList
ImGuiMouseCursor MouseCursor
IMGUI_API void RenderFrameBorder(ImVec2 p_min, ImVec2 p_max, float rounding=0.0f)
ImVector< ImWchar > TextW
bool DragDropWithinSource
bool TestBit(int n) const
IMGUI_API void PlotEx(ImGuiPlotType plot_type, const char *label, float(*values_getter)(void *data, int idx), void *data, int values_count, int values_offset, const char *overlay_text, float scale_min, float scale_max, ImVec2 frame_size)
IMGUI_API void ColorEditOptionsPopup(const float *col, ImGuiColorEditFlags flags)
IMGUI_API int ImStrlenW(const ImWchar *str)
IMGUI_API int ImTextCountUtf8BytesFromStr(const ImWchar *in_text, const ImWchar *in_text_end)
@ ImGuiItemStatusFlags_Edited
void DebugStartItemPicker()
IMGUI_API bool TreeNodeBehavior(ImGuiID id, ImGuiTreeNodeFlags flags, const char *label, const char *label_end=NULL)
@ ImGuiTreeNodeFlags_ClipLabelForTrailingButton
ImGuiID NavJustMovedToFocusScopeId
Duration & operator/=(Duration &d, int64 r)
IMGUI_API void Scrollbar(ImGuiAxis axis)
IMGUI_API void RenderCheckMark(ImDrawList *draw_list, ImVec2 pos, ImU32 col, float sz)
GLdouble GLdouble GLdouble z
IMGUI_API void MarkIniSettingsDirty()
static void ImSwap(T &a, T &b)
ImGuiNavForward NavMoveRequestForward
const IMGUI_API char * ImParseFormatTrimDecorations(const char *format, char *buf, size_t buf_size)
IMGUI_API void RenderBullet(ImDrawList *draw_list, ImVec2 pos, ImU32 col)
IMGUI_API void NavMoveRequestTryWrapping(ImGuiWindow *window, ImGuiNavMoveFlags move_flags)
ImRect NavScoringRectScreen
IMGUI_API int ImStricmp(const char *str1, const char *str2)
IMGUI_API void RenderTextClippedEx(ImDrawList *draw_list, const ImVec2 &pos_min, const ImVec2 &pos_max, const char *text, const char *text_end, const ImVec2 *text_size_if_known, const ImVec2 &align=ImVec2(0, 0), const ImRect *clip_rect=NULL)
@ ImGuiItemFlags_MixedValue
int MemoryDrawListVtxCapacity
IMGUI_API void RenderFrame(ImVec2 p_min, ImVec2 p_max, ImU32 fill_col, bool border=true, float rounding=0.0f)
IMGUI_API void Indent(float indent_w=0.0f)
int offset_from_ptr(const T *p)
IMGUI_API void ColorTooltip(const char *text, const float *col, ImGuiColorEditFlags flags)
IMGUI_API bool ImTriangleContainsPoint(const ImVec2 &a, const ImVec2 &b, const ImVec2 &c, const ImVec2 &p)
@ ImGuiNavHighlightFlags_TypeThin
const IMGUI_API char * ImStrchrRange(const char *str_begin, const char *str_end, char c)
float FramerateSecPerFrame[120]
ImGuiTextBuffer SettingsIniData
bool TempInputIsActive(ImGuiID id)
float CircleSegmentMaxError
ImGuiID ReorderRequestTabId
IMGUI_API bool IsWindowChildOf(ImGuiWindow *window, ImGuiWindow *potential_parent)
IMGUI_API ImGuiID GetWindowResizeID(ImGuiWindow *window, int n)
IMGUI_API void SetWindowCollapsed(bool collapsed, ImGuiCond cond=0)
ImGuiID DebugItemPickerBreakId
IMGUI_API int ImTextCountUtf8BytesFromChar(const char *in_text, const char *in_text_end)
IMGUI_API void ShrinkWidths(ImGuiShrinkWidthItem *items, int count, float width_excess)
IMGUI_API ImU32 ImAlphaBlendColors(ImU32 col_a, ImU32 col_b)
ImVector< ImGuiColorMod > ColorModifiers
IMGUI_API bool SliderBehaviorT(const ImRect &bb, ImGuiID id, ImGuiDataType data_type, T *v, T v_min, T v_max, const char *format, float power, ImGuiSliderFlags flags, ImRect *out_grab_bb)
@ ImGuiNavHighlightFlags_NoRounding
ImGuiStyleMod(ImGuiStyleVar idx, ImVec2 v)
ImVec2 WheelingWindowRefMousePos
ImGuiNextWindowDataFlags Flags
float CalcFontSize() const
unsigned char DragDropPayloadBufLocal[16]
ImVector< ImGuiColumns > ColumnsStorage
bool ActiveIdHasBeenEditedBefore
IMGUI_API void PushColumnClipRect(int column_index)
IMGUI_API bool NavMoveRequestButNoResultYet()
int ImGuiNavDirSourceFlags
#define IM_PLACEMENT_NEW(_PTR)
void * SizeCallbackUserData
IMGUI_API void ImFontAtlasBuildFinish(ImFontAtlas *atlas)
@ ImGuiNavHighlightFlags_TypeDefault
@ ImGuiInputReadMode_Released
IMGUI_API void NavMoveRequestForward(ImGuiDir move_dir, ImGuiDir clip_dir, const ImRect &bb_rel, ImGuiNavMoveFlags move_flags)
static T ImLerp(T a, T b, float t)
IMGUI_API void EndColumns()
ImU32 TreeJumpToParentOnPopMask
bool IsNavInputDown(ImGuiNavInput n)
void resize(int new_size)
IMGUI_API float GetNavInputAmount(ImGuiNavInput n, ImGuiInputReadMode mode)
@ ImGuiSelectableFlags_NoHoldingActiveID
IMGUI_API void TextEx(const char *text, const char *text_end=NULL, ImGuiTextFlags flags=0)
IMGUI_API ImVec2 ImBezierCalc(const ImVec2 &p1, const ImVec2 &p2, const ImVec2 &p3, const ImVec2 &p4, float t)
ImU32 ActiveIdUsingNavInputMask
@ ImGuiInputReadMode_RepeatSlow
ImGuiCond SetWindowPosAllowFlags
IMGUI_API char * ImStrdupcpy(char *dst, size_t *p_dst_size, const char *str)
@ ImGuiNavHighlightFlags_AlwaysDraw
static T ImSubClampOverflow(T a, T b, T mn, T mx)
short BeginOrderWithinParent
IMGUI_API void ItemSize(const ImVec2 &size, float text_baseline_y=-1.0f)
IMGUI_API void PushMultiItemsWidths(int components, float width_full)
ImVector< ImGuiWindow * > WindowsFocusOrder
IMGUI_API void BeginTooltipEx(ImGuiWindowFlags extra_flags, ImGuiTooltipFlags tooltip_flags)
@ ImGuiItemStatusFlags_HasDeactivated
float MenuBarHeight() const
ImGuiInputTextState * GetInputTextState(ImGuiID id)
IMGUI_API ImVec2 ImLineClosestPoint(const ImVec2 &a, const ImVec2 &b, const ImVec2 &p)
ImGuiStyleMod(ImGuiStyleVar idx, int v)
ImGuiWindow * RootWindowForNav
@ ImGuiSliderFlags_Vertical
const char * GetTabName(const ImGuiTabItem *tab) const
char TempBuffer[1024 *3+1]
IMGUI_API int DataTypeFormatString(char *buf, int buf_size, ImGuiDataType data_type, const void *p_data, const char *format)
@ ImGuiItemStatusFlags_Deactivated
ImDrawDataBuilder DrawDataBuilder
IMGUI_API void Initialize(ImGuiContext *context)
IMGUI_API bool ButtonBehavior(const ImRect &bb, ImGuiID id, bool *out_hovered, bool *out_held, ImGuiButtonFlags flags=0)
IMGUI_API void NavInitWindow(ImGuiWindow *window, bool force_reinit)
@ ImGuiSeparatorFlags_None
IMGUI_API ImVec2 ImBezierClosestPoint(const ImVec2 &p1, const ImVec2 &p2, const ImVec2 &p3, const ImVec2 &p4, const ImVec2 &p, int num_segments)
const IMGUI_API char * ImStreolRange(const char *str, const char *str_end)
bool IsActiveIdUsingNavDir(ImGuiDir dir)
ImVector< ImGuiShrinkWidthItem > ShrinkWidthBuffer
@ ImGuiItemFlags_ButtonRepeat
IMGUI_API void SetWindowSize(const ImVec2 &size, ImGuiCond cond=0)
ImGuiWindow * FocusRequestNextWindow
bool NavMoveFromClampedRefRect
ImVector< ImGuiID > IDStack
bool SelectedAllMouseLock
ImU64 ActiveIdUsingKeyInputMask
IMGUI_API void SetWindowPos(const ImVec2 &pos, ImGuiCond cond=0)
ImU32 ActiveIdUsingNavDirMask
ImRect DragDropTargetRect
IMGUI_API void TabItemBackground(ImDrawList *draw_list, const ImRect &bb, ImGuiTabItemFlags flags, ImU32 col)
IMGUI_API ImVec2 FindBestWindowPosForPopup(ImGuiWindow *window)
bool ActiveIdHasBeenEditedThisFrame
IMGUI_API int ImTextCountCharsFromUtf8(const char *in_text, const char *in_text_end)
@ ImGuiItemStatusFlags_HasDisplayRect
int GetUndoAvailCount() const
ImVec2 BackupCursorMaxPos
IMGUI_API void BringWindowToDisplayBack(ImGuiWindow *window)
@ ImGuiPopupPositionPolicy_Default
@ ImGuiButtonFlags_MouseButtonMask_
IMGUI_API void TabBarQueueChangeTabOrder(ImGuiTabBar *tab_bar, const ImGuiTabItem *tab, int dir)
int WantTextInputNextFrame
IMGUI_API void DataTypeApplyOp(ImGuiDataType data_type, int op, void *output, void *arg_1, const void *arg_2)
@ ImGuiButtonFlags_FlattenChildren
@ ImGuiItemFlags_NoTabStop
@ ImGuiNextWindowDataFlags_None
ImGuiWindow * RootWindowForTitleBarHighlight
GLint GLenum GLsizei GLsizei GLsizei GLint GLsizei const GLvoid * data
static bool ImCharIsBlankA(char c)
IMGUI_API void * ImFileLoadToMemory(const char *filename, const char *mode, size_t *out_file_size=NULL, int padding_bytes=0)
IMGUI_API void FocusWindow(ImGuiWindow *window)
@ ImGuiNextWindowDataFlags_HasBgAlpha
@ ImGuiButtonFlags_PressedOnDefault_
ImGuiWindow * WheelingWindow
bool NavWindowingToggleLayer
@ ImGuiItemStatusFlags_ToggledOpen
T * ptr_from_offset(int off)
bool BackupActiveIdPreviousFrameIsAlive
IMGUI_API T RoundScalarWithFormatT(const char *format, ImGuiDataType data_type, T v)
IMGUI_API void RenderTextWrapped(ImVec2 pos, const char *text, const char *text_end, float wrap_width)
IMGUI_API ImGuiWindowSettings * FindOrCreateWindowSettings(const char *name)
Duration & operator*=(Duration &d, int64 r)
IMGUI_API void LogToBuffer(int auto_open_depth=-1)
int HiddenFramesCanSkipItems
ImGuiPtrOrIndex(void *ptr)
@ ImGuiColumnsFlags_NoPreserveWidths
bool FontAtlasOwnedByContext
IMGUI_API bool IsItemToggledSelection()
ImVec2 ActiveIdClickOffset
float FramerateSecPerFrameAccum
@ ImGuiWindowFlags_NoTitleBar
IMGUI_API bool BeginTabBarEx(ImGuiTabBar *tab_bar, const ImRect &bb, ImGuiTabBarFlags flags)
ImGuiInputTextFlags UserFlags
void Reserve(int capacity)
static PyObject * GetIndex(PyBaseDescriptor *self, void *closure)
IMGUI_API float SliderCalcRatioFromValueT(ImGuiDataType data_type, T v, T v_min, T v_max, float power, float linear_zero_pos)
bool DragDropWithinTarget
@ ImGuiNextItemDataFlags_HasOpen
IMGUI_API ImGuiSettingsHandler * FindSettingsHandler(const char *type_name)
bool ImBitArrayTestBit(const ImU32 *arr, int n)
IMGUI_API int ImTextCharFromUtf8(unsigned int *out_char, const char *in_text, const char *in_text_end)
ImVector< float > ItemWidthStack
IMGUI_API ImVec2 ImBezierClosestPointCasteljau(const ImVec2 &p1, const ImVec2 &p2, const ImVec2 &p3, const ImVec2 &p4, const ImVec2 &p, float tess_tol)
@ ImGuiLayoutType_Horizontal
IMGUI_API bool ArrowButtonEx(const char *str_id, ImGuiDir dir, ImVec2 size_arg, ImGuiButtonFlags flags=0)
void DebugDrawItemRect(ImU32 col=IM_COL32(255, 0, 0, 255))
void ClipWith(const ImRect &r)
ImGuiWindow * CurrentWindow
IMGUI_API bool TempInputText(const ImRect &bb, ImGuiID id, const char *label, char *buf, int buf_size, ImGuiInputTextFlags flags)
ImGuiLayoutType ParentLayoutType
GLint GLint GLsizei GLint GLenum GLenum const GLvoid * pixels
const upb_json_parsermethod const upb_symtab upb_sink * output
int DragDropAcceptFrameCount
GLubyte GLubyte GLubyte GLubyte w
float CurrLineTextBaseOffset
IMGUI_API void ImFontAtlasBuildMultiplyRectAlpha8(const unsigned char table[256], unsigned char *pixels, int x, int y, int w, int h, int stride)
int FocusRequestNextCounterTabStop
ImGuiContext(ImFontAtlas *shared_font_atlas)
ImChunkStream< ImGuiWindowSettings > SettingsWindows
IMGUI_API void SetScrollFromPosY(float local_y, float center_y_ratio=0.5f)
float ScrollingTargetDistToVisibility
ImGuiStorage StateStorage
ImVector< ImGuiWindow * > WindowsTempSortBuffer
IMGUI_API void PushColumnsBackground()
IMGUI_API void OpenPopupEx(ImGuiID id)
bool DragCurrentAccumDirty
@ ImGuiDragFlags_Vertical
static float ImLengthSqr(const ImVec2 &lhs)
void(* ImGuiSizeCallback)(ImGuiSizeCallbackData *data)
ImDrawListSharedData DrawListSharedData
IMGUI_API bool TabItemEx(ImGuiTabBar *tab_bar, const char *label, bool *p_open, ImGuiTabItemFlags flags)
const IMGUI_API char * ImStristr(const char *haystack, const char *haystack_end, const char *needle, const char *needle_end)
IMGUI_API void RenderTextEllipsis(ImDrawList *draw_list, const ImVec2 &pos_min, const ImVec2 &pos_max, float clip_max_x, float ellipsis_max_x, const char *text, const char *text_end, const ImVec2 *text_size_if_known)
@ ImGuiButtonFlags_PressedOnMask_
#define STB_TEXTEDIT_UNDOSTATECOUNT
IMGUI_API bool CloseButton(ImGuiID id, const ImVec2 &pos)
#define IM_COL32(R, G, B, A)
GLboolean GLboolean GLboolean GLboolean a
ImVector< ImGuiStyleMod > StyleModifiers
IMGUI_API bool ImFontAtlasBuildWithStbTruetype(ImFontAtlas *atlas)
IMGUI_API ImGuiID GetColumnsID(const char *str_id, int count)
ImGuiWindow * GetCurrentWindowRead()
ImGuiWindow * NavLastChildNavWindow
int DragDropSourceFrameCount
@ ImGuiInputReadMode_Down
IMGUI_API void Shutdown(ImGuiContext *context)
bool ActiveIdPreviousFrameIsAlive
void(* WriteAllFn)(ImGuiContext *ctx, ImGuiSettingsHandler *handler, ImGuiTextBuffer *out_buf)
@ ImGuiDragDropFlags_None
ImGuiTreeNodeFlagsPrivate_
ImGuiWindow * HoveredWindow
IMGUI_API void SetScrollFromPosX(float local_x, float center_x_ratio=0.5f)
IMGUI_API ImGuiDir ImGetDirQuadrantFromDelta(float dx, float dy)
int ImGuiNextWindowDataFlags
IMGUI_API void BringWindowToFocusFront(ImGuiWindow *window)
int chunk_size(const T *p)
ImGuiItemStatusFlags LastItemStatusFlags
IMGUI_API ImU32 GetColorU32(ImGuiCol idx, float alpha_mul=1.0f)
ImVec2 ScrollTargetCenterRatio
IMGUI_API void UpdateMouseMovingWindowEndFrame()
ImVec2ih(short _x, short _y)
@ ImGuiButtonFlags_DontClosePopups
ImGuiDir AutoPosLastDirection
IMGUI_API void ImStrTrimBlanks(char *str)
Duration & operator-=(Duration &d1, const Duration &d2)
IMGUI_API void KeepAliveID(ImGuiID id)
@ ImGuiNextWindowDataFlags_HasContentSize
IMGUI_API void LogBegin(ImGuiLogType type, int auto_open_depth)
IMGUI_API void AddRect(const ImVec2 &p_min, const ImVec2 &p_max, ImU32 col, float rounding=0.0f, ImDrawCornerFlags rounding_corners=ImDrawCornerFlags_All, float thickness=1.0f)
@ ImGuiItemFlags_Default_
ImVector< ImGuiItemFlags > ItemFlagsStack
IMGUI_API void PushOverrideID(ImGuiID id)
@ ImGuiButtonFlags_PressedOnDoubleClick
GLfloat GLfloat GLfloat GLfloat h
IMGUI_API void TabBarRemoveTab(ImGuiTabBar *tab_bar, ImGuiID tab_id)
int FocusRequestCurrCounterRegular
uint128 operator+(const uint128 &lhs, const uint128 &rhs)
@ ImGuiItemFlags_SelectableDontClosePopup
IMGUI_API void ImFontAtlasBuildSetupFont(ImFontAtlas *atlas, ImFont *font, ImFontConfig *font_config, float ascent, float descent)
IMGUI_API void SetNavID(ImGuiID id, int nav_layer, ImGuiID focus_scope_id)
IMGUI_API ImU64 ImFileWrite(const void *data, ImU64 size, ImU64 count, ImFileHandle file)
static ImVec2 ImMul(const ImVec2 &lhs, const ImVec2 &rhs)
@ ImGuiSeparatorFlags_Vertical
short BeginOrderWithinContext
IMGUI_API int ImTextStrFromUtf8(ImWchar *buf, int buf_size, const char *in_text, const char *in_text_end, const char **in_remaining=NULL)
ImGuiTabItemFlagsPrivate_
ImGuiWindow * MovingWindow
libaditof
Author(s):
autogenerated on Wed May 21 2025 02:06:54