30 #ifdef IMGUI_USER_CONFIG 31 #include IMGUI_USER_CONFIG 33 #if !defined(IMGUI_DISABLE_INCLUDE_IMCONFIG_H) || defined(IMGUI_INCLUDE_IMCONFIG_H) 48 #define IMGUI_VERSION "1.67 WIP" 49 #define IMGUI_VERSION_NUM 16602 50 #define IMGUI_CHECKVERSION() ImGui::DebugCheckVersionAndDataLayout(IMGUI_VERSION, sizeof(ImGuiIO), sizeof(ImGuiStyle), sizeof(ImVec2), sizeof(ImVec4), sizeof(ImDrawVert)) 57 #ifndef IMGUI_IMPL_API 58 #define IMGUI_IMPL_API IMGUI_API 64 #define IM_ASSERT(_EXPR) assert(_EXPR) // You can override the default assert handler by editing imconfig.h 66 #if defined(__clang__) || defined(__GNUC__) 67 #define IM_FMTARGS(FMT) __attribute__((format(printf, FMT, FMT+1))) // Apply printf-style warnings to user functions. 68 #define IM_FMTLIST(FMT) __attribute__((format(printf, FMT, 0))) 70 #define IM_FMTARGS(FMT) 71 #define IM_FMTLIST(FMT) 73 #define IM_ARRAYSIZE(_ARR) ((int)(sizeof(_ARR)/sizeof(*_ARR))) // Size of a static C-style array. Don't use on pointers! 74 #define IM_OFFSETOF(_TYPE,_MEMBER) ((size_t)&(((_TYPE*)0)->_MEMBER)) // Offset of _MEMBER within _TYPE. Standardized as offsetof() in modern C++. 77 #if defined(__clang__) 78 #pragma clang diagnostic push 79 #pragma clang diagnostic ignored "-Wold-style-cast" 80 #elif defined(__GNUC__) && __GNUC__ >= 8 81 #pragma GCC diagnostic push 82 #pragma GCC diagnostic ignored "-Wclass-memaccess" 151 #if defined(_MSC_VER) && !defined(__clang__) 152 typedef signed __int64
ImS64;
153 typedef unsigned __int64
ImU64;
154 #elif (defined(__clang__) || defined(__GNUC__)) && (__cplusplus < 201100) 156 typedef int64_t
ImS64;
157 typedef uint64_t
ImU64;
168 ImVec2(
float _x,
float _y) { x = _x; y = _y; }
170 #ifdef IM_VEC2_CLASS_EXTRA 180 ImVec4(
float _x,
float _y,
float _z,
float _w) { x = _x; y = _y; z = _z; w = _w; }
181 #ifdef IM_VEC4_CLASS_EXTRA 354 IMGUI_API void PushID(
const char* str_id_begin,
const char* str_id_end);
383 IMGUI_API void Image(
ImTextureID user_texture_id,
const ImVec2& size,
const ImVec2& uv0 =
ImVec2(0,0),
const ImVec2& uv1 =
ImVec2(1,1),
const ImVec4& tint_col =
ImVec4(1,1,1,1),
const ImVec4& border_col =
ImVec4(0,0,0,0));
384 IMGUI_API bool ImageButton(
ImTextureID user_texture_id,
const ImVec2& size,
const ImVec2& uv0 =
ImVec2(0,0),
const ImVec2& uv1 =
ImVec2(1,1),
int frame_padding = -1,
const ImVec4& bg_col =
ImVec4(0,0,0,0),
const ImVec4& tint_col =
ImVec4(1,1,1,1));
397 IMGUI_API bool Combo(
const char* label,
int* current_item,
const char*
const items[],
int items_count,
int popup_max_height_in_items = -1);
398 IMGUI_API bool Combo(
const char* label,
int* current_item,
const char* items_separated_by_zeros,
int popup_max_height_in_items = -1);
399 IMGUI_API bool Combo(
const char* label,
int* current_item,
bool(*items_getter)(
void* data,
int idx,
const char** out_text),
void* data,
int items_count,
int popup_max_height_in_items = -1);
406 IMGUI_API bool DragFloat(
const char* label,
float* v,
float v_speed = 1.0
f,
float v_min = 0.0
f,
float v_max = 0.0
f,
const char* format =
"%.3f",
float power = 1.0
f);
407 IMGUI_API bool DragFloat2(
const char* label,
float v[2],
float v_speed = 1.0
f,
float v_min = 0.0
f,
float v_max = 0.0
f,
const char* format =
"%.3f",
float power = 1.0
f);
408 IMGUI_API bool DragFloat3(
const char* label,
float v[3],
float v_speed = 1.0
f,
float v_min = 0.0
f,
float v_max = 0.0
f,
const char* format =
"%.3f",
float power = 1.0
f);
409 IMGUI_API bool DragFloat4(
const char* label,
float v[4],
float v_speed = 1.0
f,
float v_min = 0.0
f,
float v_max = 0.0
f,
const char* format =
"%.3f",
float power = 1.0
f);
410 IMGUI_API bool DragFloatRange2(
const char* label,
float* v_current_min,
float* v_current_max,
float v_speed = 1.0
f,
float v_min = 0.0
f,
float v_max = 0.0
f,
const char* format =
"%.3f",
const char* format_max = NULL,
float power = 1.0
f);
411 IMGUI_API bool DragInt(
const char* label,
int* v,
float v_speed = 1.0
f,
int v_min = 0,
int v_max = 0,
const char* format =
"%d");
412 IMGUI_API bool DragInt2(
const char* label,
int v[2],
float v_speed = 1.0
f,
int v_min = 0,
int v_max = 0,
const char* format =
"%d");
413 IMGUI_API bool DragInt3(
const char* label,
int v[3],
float v_speed = 1.0
f,
int v_min = 0,
int v_max = 0,
const char* format =
"%d");
414 IMGUI_API bool DragInt4(
const char* label,
int v[4],
float v_speed = 1.0
f,
int v_min = 0,
int v_max = 0,
const char* format =
"%d");
415 IMGUI_API bool DragIntRange2(
const char* label,
int* v_current_min,
int* v_current_max,
float v_speed = 1.0
f,
int v_min = 0,
int v_max = 0,
const char* format =
"%d",
const char* format_max = NULL);
416 IMGUI_API bool DragScalar(
const char* label,
ImGuiDataType data_type,
void* v,
float v_speed,
const void* v_min = NULL,
const void* v_max = NULL,
const char* format = NULL,
float power = 1.0
f);
417 IMGUI_API bool DragScalarN(
const char* label,
ImGuiDataType data_type,
void* v,
int components,
float v_speed,
const void* v_min = NULL,
const void* v_max = NULL,
const char* format = NULL,
float power = 1.0
f);
422 IMGUI_API bool SliderFloat(
const char* label,
float* v,
float v_min,
float v_max,
const char* format =
"%.3f",
float power = 1.0
f);
423 IMGUI_API bool SliderFloat2(
const char* label,
float v[2],
float v_min,
float v_max,
const char* format =
"%.3f",
float power = 1.0
f);
424 IMGUI_API bool SliderFloat3(
const char* label,
float v[3],
float v_min,
float v_max,
const char* format =
"%.3f",
float power = 1.0
f);
425 IMGUI_API bool SliderFloat4(
const char* label,
float v[4],
float v_min,
float v_max,
const char* format =
"%.3f",
float power = 1.0
f);
426 IMGUI_API bool SliderAngle(
const char* label,
float* v_rad,
float v_degrees_min = -360.0
f,
float v_degrees_max = +360.0
f,
const char* format =
"%.0f deg");
427 IMGUI_API bool SliderInt(
const char* label,
int* v,
int v_min,
int v_max,
const char* format =
"%d");
428 IMGUI_API bool SliderInt2(
const char* label,
int v[2],
int v_min,
int v_max,
const char* format =
"%d");
429 IMGUI_API bool SliderInt3(
const char* label,
int v[3],
int v_min,
int v_max,
const char* format =
"%d");
430 IMGUI_API bool SliderInt4(
const char* label,
int v[4],
int v_min,
int v_max,
const char* format =
"%d");
432 IMGUI_API bool SliderScalarN(
const char* label,
ImGuiDataType data_type,
void* v,
int components,
const void* v_min,
const void* v_max,
const char* format = NULL,
float power = 1.0
f);
433 IMGUI_API bool VSliderFloat(
const char* label,
const ImVec2& size,
float* v,
float v_min,
float v_max,
const char* format =
"%.3f",
float power = 1.0
f);
434 IMGUI_API bool VSliderInt(
const char* label,
const ImVec2& size,
int* v,
int v_min,
int v_max,
const char* format =
"%d");
492 IMGUI_API bool ListBox(
const char* label,
int* current_item,
const char*
const items[],
int items_count,
int height_in_items = -1);
493 IMGUI_API bool ListBox(
const char* label,
int* current_item,
bool (*items_getter)(
void* data,
int idx,
const char** out_text),
void* data,
int items_count,
int height_in_items = -1);
499 IMGUI_API void PlotLines(
const char* label,
const float*
values,
int values_count,
int values_offset = 0,
const char* overlay_text = NULL,
float scale_min = FLT_MAX,
float scale_max = FLT_MAX,
ImVec2 graph_size =
ImVec2(0, 0),
int stride =
sizeof(
float));
500 IMGUI_API void PlotLines(
const char* label,
float(*values_getter)(
void* data,
int idx),
void* data,
int values_count,
int values_offset = 0,
const char* overlay_text = NULL,
float scale_min = FLT_MAX,
float scale_max = FLT_MAX,
ImVec2 graph_size =
ImVec2(0, 0));
501 IMGUI_API void PlotHistogram(
const char* label,
const float* values,
int values_count,
int values_offset = 0,
const char* overlay_text = NULL,
float scale_min = FLT_MAX,
float scale_max = FLT_MAX,
ImVec2 graph_size =
ImVec2(0, 0),
int stride =
sizeof(
float));
502 IMGUI_API void PlotHistogram(
const char* label,
float(*values_getter)(
void* data,
int idx),
void* data,
int values_count,
int values_offset = 0,
const char* overlay_text = NULL,
float scale_min = FLT_MAX,
float scale_max = FLT_MAX,
ImVec2 graph_size =
ImVec2(0, 0));
509 IMGUI_API void Value(
const char* prefix,
float v,
const char* float_format = NULL);
518 IMGUI_API bool MenuItem(
const char* label,
const char* shortcut = NULL,
bool selected =
false,
bool enabled =
true);
519 IMGUI_API bool MenuItem(
const char* label,
const char* shortcut,
bool* p_selected,
bool enabled =
true);
549 IMGUI_API void Columns(
int count = 1,
const char*
id = NULL,
bool border =
true);
623 IMGUI_API ImVec2 CalcTextSize(
const char* text,
const char* text_end = NULL,
bool hide_text_after_double_hash =
false,
float wrap_width = -1.0
f);
624 IMGUI_API void CalcListClipping(
int items_count,
float items_height,
int* out_items_display_start,
int* out_items_display_end);
672 IMGUI_API void SetAllocatorFunctions(
void* (*alloc_func)(
size_t sz,
void* user_data),
void(*free_func)(
void* ptr,
void* user_data),
void* user_data = NULL);
771 #ifndef IMGUI_DISABLE_OBSOLETE_FUNCTIONS 873 #define IMGUI_PAYLOAD_TYPE_COLOR_3F "_COL3F" // float[3]: Standard type for colors, without alpha. User code may use this type. 874 #define IMGUI_PAYLOAD_TYPE_COLOR_4F "_COL4F" // float[4]: Standard type for colors. User code may use this type. 1040 #ifndef IMGUI_DISABLE_OBSOLETE_FUNCTIONS 1080 #ifndef IMGUI_DISABLE_OBSOLETE_FUNCTIONS 1135 #ifndef IMGUI_DISABLE_OBSOLETE_FUNCTIONS 1151 #ifndef IMGUI_DISABLE_OBSOLETE_FUNCTIONS 1165 template<
typename T>
1178 inline ImVector() { Size = Capacity = 0; Data = NULL; }
1183 inline bool empty()
const {
return Size == 0; }
1184 inline int size()
const {
return Size; }
1191 inline const T*
begin()
const {
return Data; }
1192 inline T*
end() {
return Data + Size; }
1193 inline const T*
end()
const {
return Data + Size; }
1200 inline int _grow_capacity(
int sz)
const {
int new_capacity = Capacity ? (Capacity + Capacity/2) : 8;
return new_capacity > sz ? new_capacity : sz; }
1201 inline void resize(
int new_size) {
if (new_size > Capacity) reserve(_grow_capacity(new_size)); Size = new_size; }
1202 inline void resize(
int new_size,
const T& v) {
if (new_size > Capacity) reserve(_grow_capacity(new_size));
if (new_size > Size)
for (
int n = Size; n < new_size; n++) memcpy(&Data[n], &v,
sizeof(v)); Size = new_size; }
1203 inline void reserve(
int new_capacity) {
if (new_capacity <= Capacity)
return; T* new_data = (T*)
ImGui::MemAlloc((
size_t)new_capacity *
sizeof(T));
if (Data) { memcpy(new_data, Data, (
size_t)Size *
sizeof(T));
ImGui::MemFree(Data); } Data = new_data; Capacity = new_capacity; }
1206 inline void push_back(
const T& v) {
if (Size == Capacity) reserve(_grow_capacity(Size + 1)); memcpy(&Data[Size], &v,
sizeof(v)); Size++; }
1208 inline void push_front(
const T& v) {
if (Size == 0) push_back(v);
else insert(Data, v); }
1209 inline T*
erase(
const T* it) {
IM_ASSERT(it >= Data && it < Data+Size);
const ptrdiff_t off = it - Data; memmove(Data + off, Data + off + 1, ((
size_t)Size - (
size_t)off - 1) *
sizeof(T)); Size--;
return Data + off; }
1210 inline T*
erase(
const T* it,
const T* it_last){
IM_ASSERT(it >= Data && it < Data+Size && it_last > it && it_last <= Data+Size);
const ptrdiff_t count = it_last - it;
const ptrdiff_t off = it - Data; memmove(Data + off, Data + off + count, ((
size_t)Size - (
size_t)off - count) *
sizeof(T)); Size -= (int)count;
return Data + off; }
1211 inline T*
erase_unsorted(
const T* it) {
IM_ASSERT(it >= Data && it < Data+Size);
const ptrdiff_t off = it - Data;
if (it < Data+Size-1) memcpy(Data + off, Data + Size - 1,
sizeof(T)); Size--;
return Data + off; }
1212 inline T*
insert(
const T* it,
const T& v) {
IM_ASSERT(it >= Data && it <= Data+Size);
const ptrdiff_t off = it - Data;
if (Size == Capacity) reserve(_grow_capacity(Size + 1));
if (off < (
int)Size) memmove(Data + off + 1, Data + off, ((
size_t)Size - (
size_t)off) *
sizeof(T)); memcpy(&Data[off], &v,
sizeof(v)); Size++;
return Data + off; }
1213 inline bool contains(
const T& v)
const {
const T* data = Data;
const T* data_end = Data + Size;
while (data < data_end)
if (*data++ == v)
return true;
return false; }
1214 inline int index_from_ptr(
const T* it)
const {
IM_ASSERT(it >= Data && it <= Data+Size);
const ptrdiff_t off = it - Data;
return (
int)off; }
1260 IMGUI_API void ScaleAllSizes(
float scale_factor);
1319 const char* (*GetClipboardTextFn)(
void* user_data);
1320 void (*SetClipboardTextFn)(
void* user_data,
const char* text);
1325 void (*ImeSetInputScreenPosFn)(
int x,
int y);
1328 #ifndef IMGUI_DISABLE_OBSOLETE_FUNCTIONS 1334 void* RenderDrawListsFnUnused;
1354 IMGUI_API void AddInputCharactersUTF8(
const char* str);
1382 double MouseClickedTime[5];
1383 bool MouseClicked[5];
1384 bool MouseDoubleClicked[5];
1385 bool MouseReleased[5];
1386 bool MouseDownOwned[5];
1387 float MouseDownDuration[5];
1388 float MouseDownDurationPrev[5];
1390 float MouseDragMaxDistanceSqr[5];
1391 float KeysDownDuration[512];
1392 float KeysDownDurationPrev[512];
1434 IMGUI_API void DeleteChars(
int pos,
int bytes_count);
1435 IMGUI_API void InsertChars(
int pos,
const char* text,
const char* text_end = NULL);
1460 char DataType[32+1];
1465 void Clear() { SourceId = SourceParentId = 0; Data = NULL; DataSize = 0; memset(DataType, 0,
sizeof(DataType)); DataFrameCount = -1; Preview = Delivery =
false; }
1466 bool IsDataType(
const char*
type)
const {
return DataFrameCount != -1 && strcmp(type, DataType) == 0; }
1476 #ifndef IMGUI_DISABLE_OBSOLETE_FUNCTIONS 1521 inline void*
operator new(size_t,
ImNewDummy,
void* ptr) {
return ptr; }
1523 #define IM_PLACEMENT_NEW(_PTR) new(ImNewDummy(), _PTR) 1524 #define IM_NEW(_TYPE) new(ImNewDummy(), ImGui::MemAlloc(sizeof(_TYPE))) _TYPE 1533 operator bool()
const {
int current_frame =
ImGui::GetFrameCount();
if (RefFrame == current_frame)
return false; RefFrame = current_frame;
return true; }
1537 #ifndef IMGUI_DISABLE_OBSOLETE_FUNCTIONS 1538 #define IMGUI_ONCE_UPON_A_FRAME static ImGuiOnceUponAFrame imgui_oaf; if (imgui_oaf) // OBSOLETED in 1.51, will remove! 1545 IMGUI_API bool Draw(
const char* label =
"Filter (inc,-exc)",
float width = 0.0
f);
1546 IMGUI_API bool PassFilter(
const char* text,
const char* text_end = NULL)
const;
1548 void Clear() { InputBuf[0] = 0; Build(); }
1558 TextRange(
const char* _b,
const char* _e) { b = _b; e = _e; }
1560 const char*
end ()
const {
return e; }
1574 static char EmptyString[1];
1579 const char*
end()
const {
return Buf.
Data ? &Buf.
back() : EmptyString; }
1602 union {
int val_i;
float val_f;
void*
val_p; };
1655 int ItemsCount,
StepNo, DisplayStart, DisplayEnd;
1669 #ifdef IMGUI_USE_BGRA_PACKED_COLOR 1670 #define IM_COL32_R_SHIFT 16 1671 #define IM_COL32_G_SHIFT 8 1672 #define IM_COL32_B_SHIFT 0 1673 #define IM_COL32_A_SHIFT 24 1674 #define IM_COL32_A_MASK 0xFF000000 1676 #define IM_COL32_R_SHIFT 0 1677 #define IM_COL32_G_SHIFT 8 1678 #define IM_COL32_B_SHIFT 16 1679 #define IM_COL32_A_SHIFT 24 1680 #define IM_COL32_A_MASK 0xFF000000 1682 #define IM_COL32(R,G,B,A) (((ImU32)(A)<<IM_COL32_A_SHIFT) | ((ImU32)(B)<<IM_COL32_B_SHIFT) | ((ImU32)(G)<<IM_COL32_G_SHIFT) | ((ImU32)(R)<<IM_COL32_R_SHIFT)) 1683 #define IM_COL32_WHITE IM_COL32(255,255,255,255) // Opaque white = 0xFFFFFFFF 1684 #define IM_COL32_BLACK IM_COL32(0,0,0,255) // Opaque black 1685 #define IM_COL32_BLACK_TRANS IM_COL32(0,0,0,0) // Transparent black = 0x00000000 1696 ImColor(
int r,
int g,
int b,
int a = 255) {
float sc = 1.0f/255.0f; Value.
x = (float)r * sc; Value.
y = (float)g * sc; Value.
z = (float)b * sc; Value.
w = (float)a * sc; }
1698 ImColor(
float r,
float g,
float b,
float a = 1.0f) { Value.
x = r; Value.
y = g; Value.
z = b; Value.
w = a; }
1705 static ImColor HSV(
float h,
float s,
float v,
float a = 1.0f) {
float r,g,b;
ImGui::ColorConvertHSVtoRGB(h, s, v, r, g, b);
return ImColor(r,g,b,a); }
1729 ImDrawCmd() { ElemCount = 0; ClipRect.
x = ClipRect.
y = ClipRect.
z = ClipRect.
w = 0.0f; TextureId = (
ImTextureID)NULL; UserCallback = NULL; UserCallbackData = NULL; }
1738 #ifndef IMGUI_OVERRIDE_DRAWVERT_STRUCT_LAYOUT 1750 IMGUI_OVERRIDE_DRAWVERT_STRUCT_LAYOUT;
1812 IMGUI_API void PushClipRectFullScreen();
1828 IMGUI_API void AddCircle(
const ImVec2& centre,
float radius,
ImU32 col,
int num_segments = 12,
float thickness = 1.0
f);
1829 IMGUI_API void AddCircleFilled(
const ImVec2& centre,
float radius,
ImU32 col,
int num_segments = 12);
1830 IMGUI_API void AddText(
const ImVec2& pos,
ImU32 col,
const char* text_begin,
const char* text_end = NULL);
1831 IMGUI_API void AddText(
const ImFont* font,
float font_size,
const ImVec2& pos,
ImU32 col,
const char* text_begin,
const char* text_end = NULL,
float wrap_width = 0.0
f,
const ImVec4* cpu_fine_clip_rect = NULL);
1833 IMGUI_API void AddImageQuad(
ImTextureID user_texture_id,
const ImVec2& a,
const ImVec2& b,
const ImVec2& c,
const ImVec2& d,
const ImVec2& uv_a =
ImVec2(0,0),
const ImVec2& uv_b =
ImVec2(1,0),
const ImVec2& uv_c =
ImVec2(1,1),
const ImVec2& uv_d =
ImVec2(0,1),
ImU32 col = 0xFFFFFFFF);
1835 IMGUI_API void AddPolyline(
const ImVec2* points,
const int num_points,
ImU32 col,
bool closed,
float thickness);
1844 inline void PathStroke(
ImU32 col,
bool closed,
float thickness = 1.0f) { AddPolyline(_Path.
Data, _Path.
Size, col, closed, thickness); _Path.
Size = 0; }
1845 IMGUI_API void PathArcTo(
const ImVec2& centre,
float radius,
float a_min,
float a_max,
int num_segments = 10);
1846 IMGUI_API void PathArcToFast(
const ImVec2& centre,
float radius,
int a_min_of_12,
int a_max_of_12);
1853 IMGUI_API void ChannelsSplit(
int channels_count);
1855 IMGUI_API void ChannelsSetCurrent(
int channel_index);
1866 IMGUI_API void PrimReserve(
int idx_count,
int vtx_count);
1892 void Clear() { Valid =
false; CmdLists = NULL; CmdListsCount = TotalVtxCount = TotalIdxCount = 0; DisplayPos = DisplaySize =
ImVec2(0.
f, 0.
f); }
1942 bool GetBit(
int n)
const {
int off = (n >> 5);
int mask = 1 << (n & 31);
return (UsedChars[off] & mask) != 0; }
1943 void SetBit(
int n) {
int off = (n >> 5);
int mask = 1 << (n & 31); UsedChars[off] |= mask; }
1945 IMGUI_API void AddText(
const char* text,
const char* text_end = NULL);
1982 IMGUI_API ImFont* AddFontFromMemoryCompressedTTF(
const void* compressed_font_data,
int compressed_font_size,
float size_pixels,
const ImFontConfig* font_cfg = NULL,
const ImWchar* glyph_ranges = NULL);
1983 IMGUI_API ImFont* AddFontFromMemoryCompressedBase85TTF(
const char* compressed_font_data_base85,
float size_pixels,
const ImFontConfig* font_cfg = NULL,
const ImWchar* glyph_ranges = NULL);
1995 IMGUI_API void GetTexDataAsAlpha8(
unsigned char** out_pixels,
int* out_width,
int* out_height,
int* out_bytes_per_pixel = NULL);
1996 IMGUI_API void GetTexDataAsRGBA32(
unsigned char** out_pixels,
int* out_width,
int* out_height,
int* out_bytes_per_pixel = NULL);
1997 bool IsBuilt() {
return Fonts.Size > 0 && (TexPixelsAlpha8 != NULL || TexPixelsRGBA32 != NULL); }
2025 unsigned short X,
Y;
2029 CustomRect() { ID = 0xFFFFFFFF; Width = Height = 0; X = Y = 0xFFFF; GlyphAdvanceX = 0.0f; GlyphOffset =
ImVec2(0,0); Font = NULL; }
2033 IMGUI_API int AddCustomRectRegular(
unsigned int id,
int width,
int height);
2062 int CustomRectIds[1];
2064 #ifndef IMGUI_DISABLE_OBSOLETE_FUNCTIONS 2101 bool IsLoaded()
const {
return ContainerAtlas != NULL; }
2106 IMGUI_API ImVec2 CalcTextSizeA(
float size,
float max_width,
float wrap_width,
const char* text_begin,
const char* text_end = NULL,
const char** remaining = NULL)
const;
2107 IMGUI_API const char* CalcWordWrapPositionA(
float scale,
const char* text,
const char* text_end,
float wrap_width)
const;
2113 IMGUI_API void AddGlyph(
ImWchar c,
float x0,
float y0,
float x1,
float y1,
float u0,
float v0,
float u1,
float v1,
float advance_x);
2116 #ifndef IMGUI_DISABLE_OBSOLETE_FUNCTIONS 2121 #if defined(__clang__) 2122 #pragma clang diagnostic pop 2123 #elif defined(__GNUC__) && __GNUC__ >= 8 2124 #pragma GCC diagnostic pop 2128 #ifdef IMGUI_INCLUDE_IMGUI_USER_H 2129 #include "imgui_user.h" IMGUI_API bool BeginPopupContextItem(const char *str_id=NULL, int mouse_button=1)
IMGUI_API bool DragIntRange2(const char *label, int *v_current_min, int *v_current_max, float v_speed=1.0f, int v_min=0, int v_max=0, const char *format="%d", const char *format_max=NULL)
ImVector< T > & operator=(const ImVector< T > &src)
IMGUI_API void SetNextWindowSize(const ImVec2 &size, ImGuiCond cond=0)
IMGUI_API bool ColorPicker3(const char *label, float col[3], ImGuiColorEditFlags flags=0)
IMGUI_API void ShowFontSelector(const char *label)
IMGUI_API void Image(ImTextureID user_texture_id, const ImVec2 &size, const ImVec2 &uv0=ImVec2(0, 0), const ImVec2 &uv1=ImVec2(1, 1), const ImVec4 &tint_col=ImVec4(1, 1, 1, 1), const ImVec4 &border_col=ImVec4(0, 0, 0, 0))
IMGUI_API void TextColoredV(const ImVec4 &col, const char *fmt, va_list args) IM_FMTLIST(2)
ImVector< ImTextureID > _TextureIdStack
IMGUI_API bool IsWindowHovered(ImGuiHoveredFlags flags=0)
IMGUI_API float GetCursorPosX()
IMGUI_API void CaptureKeyboardFromApp(bool want_capture_keyboard_value=true)
void PathStroke(ImU32 col, bool closed, float thickness=1.0f)
IMGUI_API ImVec2 GetCursorStartPos()
IMGUI_API bool InputFloat3(const char *label, float v[3], int decimal_precision, ImGuiInputTextFlags flags=0)
IMGUI_API void SetTooltip(const char *fmt,...) IM_FMTARGS(1)
IMGUI_API void RenderText(ImVec2 pos, const char *text, const char *text_end=NULL, bool hide_text_after_hash=true)
IMGUI_API bool IsMouseReleased(int button)
IMGUI_API void SetNextTreeNodeOpen(bool is_open, ImGuiCond cond=0)
IMGUI_API void LoadIniSettingsFromMemory(const char *ini_data, size_t ini_size=0)
IMGUI_API bool DebugCheckVersionAndDataLayout(const char *version_str, size_t sz_io, size_t sz_style, size_t sz_vec2, size_t sz_vec4, size_t sz_drawvert)
IMGUI_API ImVec2 GetCursorPos()
bool ConfigWindowsResizeFromEdges
ImVector(const ImVector< T > &src)
const char * GetDebugName() const
IMGUI_API float GetFontSize()
IMGUI_API bool TreeNodeExV(const void *ptr_id, ImGuiTreeNodeFlags flags, const char *fmt, va_list args) IM_FMTLIST(3)
IMGUI_API bool ImageButton(ImTextureID user_texture_id, const ImVec2 &size, const ImVec2 &uv0=ImVec2(0, 0), const ImVec2 &uv1=ImVec2(1, 1), int frame_padding=-1, const ImVec4 &bg_col=ImVec4(0, 0, 0, 0), const ImVec4 &tint_col=ImVec4(1, 1, 1, 1))
bool ConfigMacOSXBehaviors
IMGUI_API bool SliderInt3(const char *label, int v[3], int v_min, int v_max, const char *format="%d")
IMGUI_API void SetTabItemClosed(const char *tab_or_docked_window_label)
IMGUI_API void ProgressBar(float fraction, const ImVec2 &size_arg=ImVec2(-1, 0), const char *overlay=NULL)
IMGUI_API void SetColumnWidth(int column_index, float width)
void SetTexID(ImTextureID id)
IMGUI_API void AlignTextToFramePadding()
void(* ImDrawCallback)(const ImDrawList *parent_list, const ImDrawCmd *cmd)
IMGUI_API ImGuiStorage * GetStateStorage()
void reserve(int capacity)
IMGUI_API bool ArrowButton(const char *str_id, ImGuiDir dir)
IMGUI_API void StyleColorsDark(ImGuiStyle *dst=NULL)
void PathFillConvex(ImU32 col)
IMGUI_API bool TreeNodeEx(const void *ptr_id, ImGuiTreeNodeFlags flags, const char *fmt,...) IM_FMTARGS(3)
IMGUI_API bool OpenPopupOnItemClick(const char *str_id=NULL, int mouse_button=1)
IMGUI_API void SetCursorPos(const ImVec2 &local_pos)
IMGUI_API bool BeginCombo(const char *label, const char *preview_value, ImGuiComboFlags flags=0)
int(* ImGuiInputTextCallback)(ImGuiInputTextCallbackData *data)
IMGUI_API void SaveIniSettingsToDisk(const char *ini_filename)
std::vector< double > values
IMGUI_API bool BeginPopupModal(const char *name, bool *p_open=NULL, ImGuiWindowFlags flags=0)
IMGUI_API bool ListBox(const char *label, int *current_item, bool(*items_getter)(void *data, int idx, const char **out_text), void *data, int items_count, int height_in_items=-1)
bool ConfigInputTextCursorBlink
IMGUI_API const ImGuiPayload * AcceptDragDropPayload(const char *type, ImGuiDragDropFlags flags=0)
IMGUI_API bool InputFloat4(const char *label, float v[4], int decimal_precision, ImGuiInputTextFlags flags=0)
ImGuiInputTextFlags EventFlag
IMGUI_API bool IsItemDeactivatedAfterEdit()
IMGUI_API bool IsMouseClicked(int button, bool repeat=false)
IMGUI_API bool IsItemClicked(int mouse_button=0)
IMGUI_API bool IsKeyPressed(int user_key_index, bool repeat=true)
float CurveTessellationTol
IMGUI_API void PopTextWrapPos()
void push_back(const T &v)
IMGUI_API void CalcListClipping(int items_count, float items_height, int *out_items_display_start, int *out_items_display_end)
IMGUI_API bool IsMouseDown(int button)
IMGUI_API bool IsItemEdited()
ImVector< ImFontGlyph > Glyphs
static bool IsMouseHoveringAnyWindow()
IMGUI_API ImVec2 GetItemRectMin()
IMGUI_API bool IsItemActive()
ImGuiInputTextFlags Flags
IMGUI_API bool ColorPicker4(const char *label, float col[4], ImGuiColorEditFlags flags=0, const float *ref_col=NULL)
void(* ImGuiSizeCallback)(ImGuiSizeCallbackData *data)
IMGUI_API bool SliderInt4(const char *label, int v[4], int v_min, int v_max, const char *format="%d")
IMGUI_API void SetNextWindowFocus()
IMGUI_API ImVec2 GetMouseDragDelta(int button=0, float lock_threshold=-1.0f)
IMGUI_API void NewFrame()
ImDrawList(const ImDrawListSharedData *shared_data)
ImGuiInputTextCallbackData ImGuiTextEditCallbackData
static bool IsRootWindowFocused()
IMGUI_API void SetItemDefaultFocus()
IMGUI_API bool DragFloatRange2(const char *label, float *v_current_min, float *v_current_max, float v_speed=1.0f, float v_min=0.0f, float v_max=0.0f, const char *format="%.3f", const char *format_max=NULL, float power=1.0f)
IMGUI_API void EndTooltip()
IMGUI_API void LogButtons()
IMGUI_API bool InputFloat(const char *label, float *v, float step, float step_fast, int decimal_precision, ImGuiInputTextFlags flags=0)
IMGUI_API void PlotLines(const char *label, float(*values_getter)(void *data, int idx), void *data, int values_count, int values_offset=0, const char *overlay_text=NULL, float scale_min=FLT_MAX, float scale_max=FLT_MAX, ImVec2 graph_size=ImVec2(0, 0))
IMGUI_API bool Selectable(const char *label, bool *p_selected, ImGuiSelectableFlags flags=0, const ImVec2 &size=ImVec2(0, 0))
IMGUI_API bool InputInt(const char *label, int *v, int step=1, int step_fast=100, ImGuiInputTextFlags flags=0)
float operator[](size_t i) const
IMGUI_API void SetAllocatorFunctions(void *(*alloc_func)(size_t sz, void *user_data), void(*free_func)(void *ptr, void *user_data), void *user_data=NULL)
IMGUI_API void PopAllowKeyboardFocus()
IMGUI_API bool SmallButton(const char *label)
IMGUI_API bool IsMouseHoveringRect(const ImVec2 &r_min, const ImVec2 &r_max, bool clip=true)
const char * BackendPlatformName
IMGUI_API void PushClipRect(const ImVec2 &clip_rect_min, const ImVec2 &clip_rect_max, bool intersect_with_current_clip_rect)
IMGUI_API void CaptureMouseFromApp(bool want_capture_mouse_value=true)
IMGUI_API bool BeginPopup(const char *str_id, ImGuiWindowFlags flags=0)
IMGUI_API bool DragFloat2(const char *label, float v[2], float v_speed=1.0f, float v_min=0.0f, float v_max=0.0f, const char *format="%.3f", float power=1.0f)
unsigned char * TexPixelsAlpha8
IMGUI_API void ShowMetricsWindow(bool *p_open=NULL)
const value_type * const_iterator
IMGUI_API void BeginTooltip()
IMGUI_API bool VSliderFloat(const char *label, const ImVec2 &size, float *v, float v_min, float v_max, const char *format="%.3f", float power=1.0f)
IMGUI_API bool IsWindowAppearing()
IMGUI_API bool DragScalar(const char *label, ImGuiDataType data_type, void *v, float v_speed, const void *v_min=NULL, const void *v_max=NULL, const char *format=NULL, float power=1.0f)
bool FontDataOwnedByAtlas
IMGUI_API void SetNextWindowSizeConstraints(const ImVec2 &size_min, const ImVec2 &size_max, ImGuiSizeCallback custom_callback=NULL, void *custom_callback_data=NULL)
IMGUI_API void * MemAlloc(size_t size)
void resize(int new_size)
const ImFontGlyph * FallbackGlyph
IMGUI_API void Indent(float indent_w=0.0f)
float GetCharAdvance(ImWchar c) const
IMGUI_API bool IsWindowFocused(ImGuiFocusedFlags flags=0)
void swap(ImVector< T > &rhs)
IMGUI_API void PushButtonRepeat(bool repeat)
bool IsDataType(const char *type) const
IMGUI_API void ResetMouseDragDelta(int button=0)
IMGUI_API void BulletTextV(const char *fmt, va_list args) IM_FMTLIST(1)
IMGUI_API void SetWindowFocus(const char *name)
IMGUI_API ImGuiMouseCursor GetMouseCursor()
IMGUI_API float GetColumnOffset(int column_index=-1)
IMGUI_API bool SliderScalarN(const char *label, ImGuiDataType data_type, void *v, int components, const void *v_min, const void *v_max, const char *format=NULL, float power=1.0f)
IMGUI_API void SetScrollHereY(float center_y_ratio=0.5f)
const ImDrawListSharedData * _Data
IMGUI_API bool InputTextMultiline(const char *label, char *buf, size_t buf_size, const ImVec2 &size=ImVec2(0, 0), ImGuiInputTextFlags flags=0, ImGuiInputTextCallback callback=NULL, void *user_data=NULL)
static void SetWindowCollapsed(ImGuiWindow *window, bool collapsed, ImGuiCond cond)
IMGUI_API void EndTabItem()
ImColor(int r, int g, int b, int a=255)
IMGUI_API void DestroyContext(ImGuiContext *ctx=NULL)
IMGUI_API bool IsItemHovered(ImGuiHoveredFlags flags=0)
ImVector< ImFont * > Fonts
static bool IsMouseHoveringWindow()
IMGUI_API bool InputInt4(const char *label, int v[4], ImGuiInputTextFlags flags=0)
IMGUI_API ImVec2 GetItemRectSize()
void SetHSV(float h, float s, float v, float a=1.0f)
void PrimWriteVtx(const ImVec2 &pos, const ImVec2 &uv, ImU32 col)
IMGUI_API float GetWindowWidth()
IMGUI_API bool IsAnyItemFocused()
static bool IsItemHoveredRect()
IMGUI_API bool BeginChild(ImGuiID id, const ImVec2 &size=ImVec2(0, 0), bool border=false, ImGuiWindowFlags flags=0)
IMGUI_API ImVec2 GetContentRegionMax()
static float GetItemsLineHeightWithSpacing()
IMGUI_API bool CheckboxFlags(const char *label, unsigned int *flags, unsigned int flags_value)
IMGUI_API bool TreeNode(const void *ptr_id, const char *fmt,...) IM_FMTARGS(2)
IMGUI_API bool BeginChildFrame(ImGuiID id, const ImVec2 &size, ImGuiWindowFlags flags=0)
IMGUI_API bool InputInt2(const char *label, int v[2], ImGuiInputTextFlags flags=0)
IMGUI_API bool ColorEdit4(const char *label, float col[4], ImGuiColorEditFlags flags=0)
IMGUI_API bool BeginMenuBar()
IMGUI_API void PushStyleVar(ImGuiStyleVar idx, const ImVec2 &val)
IMGUI_API void MemFree(void *ptr)
static bool IsRootWindowOrAnyChildHovered()
IMGUI_API void TextWrappedV(const char *fmt, va_list args) IM_FMTLIST(1)
IMGUI_API bool IsMousePosValid(const ImVec2 *mouse_pos=NULL)
IMGUI_API void SetStateStorage(ImGuiStorage *storage)
IMGUI_API ImVec2 GetMousePos()
IMGUI_API void EndDragDropSource()
ImVector< CustomRect > CustomRects
IMGUI_API ImGuiID GetID(const void *ptr_id)
IMGUI_API void EndDragDropTarget()
IMGUI_API void SetMouseCursor(ImGuiMouseCursor type)
static bool IsRootWindowOrAnyChildFocused()
IMGUI_API ImVec2 GetContentRegionAvail()
IMGUI_API bool CollapsingHeader(const char *label, bool *p_open, ImGuiTreeNodeFlags flags=0)
IMGUI_API bool DragFloat(const char *label, float *v, float v_speed=1.0f, float v_min=0.0f, float v_max=0.0f, const char *format="%.3f", float power=1.0f)
static ImVec2 CalcItemRectClosestPoint(const ImVec2 &pos, bool on_edge=false, float outward=0.f)
IMGUI_API float GetScrollMaxY()
IMGUI_API bool DragScalarN(const char *label, ImGuiDataType data_type, void *v, int components, float v_speed, const void *v_min=NULL, const void *v_max=NULL, const char *format=NULL, float power=1.0f)
IMGUI_API void SetCurrentContext(ImGuiContext *ctx)
ImFontAtlas * ContainerAtlas
IMGUI_API ImDrawList * GetWindowDrawList()
void * BackendPlatformUserData
IMGUI_API void ShowDemoWindow(bool *p_open=NULL)
IMGUI_API bool IsKeyDown(int user_key_index)
IMGUI_API void PopStyleVar(int count=1)
IMGUI_API void SetScrollY(float scroll_y)
IMGUI_API void SetTooltipV(const char *fmt, va_list args) IM_FMTLIST(1)
IMGUI_API ImVec2 CalcTextSize(const char *text, const char *text_end=NULL, bool hide_text_after_double_hash=false, float wrap_width=-1.0f)
IMGUI_API ImVec2 GetWindowContentRegionMin()
IMGUI_API bool BeginPopupContextWindow(const char *str_id=NULL, int mouse_button=1, bool also_over_items=true)
IMGUI_API void Dummy(const ImVec2 &size)
ImVec2 GetClipRectMin() const
IMGUI_API void BulletText(const char *fmt,...) IM_FMTARGS(1)
ImVector< ImWchar > InputQueueCharacters
int MetricsActiveAllocations
IMGUI_API bool IsAnyItemHovered()
static void SetWindowSize(ImGuiWindow *window, const ImVec2 &size, ImGuiCond cond)
IMGUI_API const char * GetStyleColorName(ImGuiCol idx)
IMGUI_API bool IsMouseDragging(int button=0, float lock_threshold=-1.0f)
IMGUI_API ImVec2 GetWindowContentRegionMax()
Pair(ImGuiID _key, void *_val_p)
IMGUI_API bool SliderFloat4(const char *label, float v[4], float v_min, float v_max, const char *format="%.3f", float power=1.0f)
IMGUI_API void SetScrollFromPosY(float local_y, float center_y_ratio=0.5f)
unsigned int RasterizerFlags
ImVector< ImDrawChannel > _Channels
IMGUI_API void TextUnformatted(const char *text, const char *text_end=NULL)
static bool IsPosHoveringAnyWindow(const ImVec2 &)
IMGUI_API bool InputScalar(const char *label, ImGuiDataType data_type, void *v, const void *step=NULL, const void *step_fast=NULL, const char *format=NULL, ImGuiInputTextFlags flags=0)
IMGUI_API void SetColumnOffset(int column_index, float offset_x)
IMGUI_API void Unindent(float indent_w=0.0f)
void push_front(const T &v)
IMGUI_API bool DragInt2(const char *label, int v[2], float v_speed=1.0f, int v_min=0, int v_max=0, const char *format="%d")
static bool IsItemDeactivatedAfterChange()
IMGUI_API int GetColumnsCount()
IMGUI_API void PlotHistogram(const char *label, float(*values_getter)(void *data, int idx), void *data, int values_count, int values_offset=0, const char *overlay_text=NULL, float scale_min=FLT_MAX, float scale_max=FLT_MAX, ImVec2 graph_size=ImVec2(0, 0))
ImVec2 GetClipRectMax() const
ImVector< ImDrawCmd > CmdBuffer
IMGUI_API bool ColorEdit3(const char *label, float col[3], ImGuiColorEditFlags flags=0)
IMGUI_API bool DragInt4(const char *label, int v[4], float v_speed=1.0f, int v_min=0, int v_max=0, const char *format="%d")
const T & operator[](int i) const
IMGUI_API ImVec2 GetMousePosOnOpeningCurrentPopup()
float MouseDoubleClickTime
const ImWchar * GlyphRanges
T * erase_unsorted(const T *it)
IMGUI_API bool ShowStyleSelector(const char *label)
IMGUI_API ImGuiIO & GetIO()
IMGUI_API void LabelTextV(const char *label, const char *fmt, va_list args) IM_FMTLIST(2)
unsigned int * TexPixelsRGBA32
IMGUI_API ImFont * GetFont()
const char * c_str() const
IMGUI_API void EndGroup()
IMGUI_API int GetColumnIndex()
IMGUI_API bool IsItemDeactivated()
IMGUI_API bool IsKeyReleased(int user_key_index)
IMGUI_API void LogToFile(int max_depth=-1, const char *filename=NULL)
static void SetScrollHere(float center_ratio=0.5f)
IMGUI_API bool SliderAngle(const char *label, float *v_rad, float v_degrees_min=-360.0f, float v_degrees_max=+360.0f, const char *format="%.0f deg")
IMGUI_API ImGuiContext * GetCurrentContext()
IMGUI_API void EndCombo()
IMGUI_API bool IsWindowCollapsed()
static bool IsAnyWindowHovered()
const CustomRect * GetCustomRectByIndex(int index) const
IMGUI_API void ShowStyleEditor(ImGuiStyle *ref=NULL)
IMGUI_API bool DragFloat4(const char *label, float v[4], float v_speed=1.0f, float v_min=0.0f, float v_max=0.0f, const char *format="%.3f", float power=1.0f)
IMGUI_API float GetContentRegionAvailWidth()
IMGUI_API bool VSliderInt(const char *label, const ImVec2 &size, int *v, int v_min, int v_max, const char *format="%d")
IMGUI_API void PushItemWidth(float item_width)
IMGUI_API bool MenuItem(const char *label, const char *shortcut, bool *p_selected, bool enabled=true)
IMGUI_API ImGuiContext * CreateContext(ImFontAtlas *shared_font_atlas=NULL)
IMGUI_API bool Button(const char *label, const ImVec2 &size=ImVec2(0, 0))
IMGUI_API bool IsItemFocused()
IMGUI_API void Separator()
void * BackendRendererUserData
IMGUI_API bool VSliderScalar(const char *label, const ImVec2 &size, ImGuiDataType data_type, void *v, const void *v_min, const void *v_max, const char *format=NULL, float power=1.0f)
bool ConfigWindowsMoveFromTitleBarOnly
IMGUI_API void BeginGroup()
bool FontAllowUserScaling
T * erase(const T *it, const T *it_last)
static void AlignFirstTextHeightToWidgets()
IMGUI_API float GetScrollX()
ImFontGlyphRangesBuilder()
IMGUI_API const ImGuiPayload * GetDragDropPayload()
IMGUI_API bool BeginPopupContextVoid(const char *str_id=NULL, int mouse_button=1)
IMGUI_API void SetCursorPosX(float local_x)
ImGuiListClipper(int items_count=-1, float items_height=-1.0f)
unsigned int _VtxCurrentIdx
IMGUI_API void SameLine(float local_pos_x=0.0f, float spacing_w=-1.0f)
ImVector< int > UsedChars
IMGUI_API float GetColumnWidth(int column_index=-1)
IMGUI_API ImVec2 GetWindowSize()
ImVec2(float _x, float _y)
IMGUI_API void EndPopup()
IMGUI_API float GetTreeNodeToLabelSpacing()
IMGUI_API ImVec2 GetFontTexUvWhitePixel()
IMGUI_API void TextV(const char *fmt, va_list args) IM_FMTLIST(1)
IMGUI_API void NextColumn()
IMGUI_API bool ColorButton(const char *desc_id, const ImVec4 &col, ImGuiColorEditFlags flags=0, ImVec2 size=ImVec2(0, 0))
Pair(ImGuiID _key, int _val_i)
IMGUI_API void EndTabBar()
const char * begin() const
IMGUI_API void PushStyleColor(ImGuiCol idx, const ImVec4 &col)
IMGUI_API bool SliderScalar(const char *label, ImGuiDataType data_type, void *v, const void *v_min, const void *v_max, const char *format=NULL, float power=1.0f)
ImVector< ImDrawIdx > IdxBuffer
IMGUI_API bool InputFloat2(const char *label, float v[2], int decimal_precision, ImGuiInputTextFlags flags=0)
const char * BackendRendererName
IMGUI_API float GetWindowHeight()
IMGUI_API bool BeginMainMenuBar()
IMGUI_API ImU32 ColorConvertFloat4ToU32(const ImVec4 &in)
ImVec2 DisplaySafeAreaPadding
typedef void(GLAD_API_PTR *GLDEBUGPROC)(GLenum source
IMGUI_API void TreePush(const void *ptr_id=NULL)
IMGUI_API void PushFont(ImFont *font)
IMGUI_API void SetNextWindowPos(const ImVec2 &pos, ImGuiCond cond=0, const ImVec2 &pivot=ImVec2(0, 0))
ImVec2 DisplayWindowPadding
IMGUI_API void SetClipboardText(const char *text)
IMGUI_API bool InvisibleButton(const char *str_id, const ImVec2 &size)
int MetricsRenderVertices
IMGUI_API void EndChild()
IMGUI_API float GetWindowContentRegionWidth()
IMGUI_API float GetScrollMaxX()
int _grow_capacity(int sz) const
IMGUI_API bool BeginMenu(const char *label, bool enabled=true)
IMGUI_API bool DragInt(const char *label, int *v, float v_speed=1.0f, int v_min=0, int v_max=0, const char *format="%d")
IMGUI_API float GetTextLineHeightWithSpacing()
bool HasSelection() const
IMGUI_API void TextWrapped(const char *fmt,...) IM_FMTARGS(1)
static bool IsAnyWindowFocused()
static void ShowTestWindow()
IMGUI_API bool DragInt3(const char *label, int v[3], float v_speed=1.0f, int v_min=0, int v_max=0, const char *format="%d")
static void SetNextWindowContentWidth(float w)
IMGUI_API void ListBoxFooter()
IMGUI_API void TextColored(const ImVec4 &col, const char *fmt,...) IM_FMTARGS(2)
IMGUI_API bool SliderInt(const char *label, int *v, int v_min, int v_max, const char *format="%d")
void PrimVtx(const ImVec2 &pos, const ImVec2 &uv, ImU32 col)
IMGUI_API float CalcItemWidth()
ImDrawCallback UserCallback
IMGUI_API int GetKeyPressedAmount(int key_index, float repeat_delay, float rate)
IMGUI_API void Text(const char *fmt,...) IM_FMTARGS(1)
IMGUI_API void LogToTTY(int max_depth=-1)
float MouseDoubleClickMaxDist
ImDrawVert * _VtxWritePtr
ImGuiBackendFlags BackendFlags
IMGUI_API ImVec2 GetCursorScreenPos()
IMGUI_API void PushTextWrapPos(float wrap_local_pos_x=0.0f)
IMGUI_API void EndChildFrame()
IMGUI_API bool BeginDragDropSource(ImGuiDragDropFlags flags=0)
IMGUI_API void ShowAboutWindow(bool *p_open=NULL)
IMGUI_API bool SliderFloat(const char *label, float *v, float v_min, float v_max, const char *format="%.3f", float power=1.0f)
IMGUI_API void PopItemWidth()
IMGUI_API void SetNextWindowBgAlpha(float alpha)
IMGUI_API bool ListBoxHeader(const char *label, int items_count, int height_in_items=-1)
ImGuiInputTextCallback ImGuiTextEditCallback
IMGUI_API void LogText(const char *fmt,...) IM_FMTARGS(1)
IMGUI_API bool IsItemVisible()
IMGUI_API bool SliderFloat3(const char *label, float v[3], float v_min, float v_max, const char *format="%.3f", float power=1.0f)
bool contains(const T &v) const
IMGUI_API double GetTime()
IMGUI_API bool BeginDragDropTarget()
IMGUI_API void EndFrame()
IMGUI_API float GetTextLineHeight()
IMGUI_API void LabelText(const char *label, const char *fmt,...) IM_FMTARGS(2)
ImVec4(float _x, float _y, float _z, float _w)
ImGuiConfigFlags ConfigFlags
void PathLineToMergeDuplicate(const ImVec2 &pos)
void PathLineTo(const ImVec2 &pos)
IMGUI_API int GetFrameCount()
IMGUI_API void StyleColorsLight(ImGuiStyle *dst=NULL)
IMGUI_API bool TreeNodeV(const void *ptr_id, const char *fmt, va_list args) IM_FMTLIST(2)
IMGUI_API const char * GetClipboardText()
IMGUI_API void SetNextWindowContentSize(const ImVec2 &size)
int index_from_ptr(const T *it) const
IMGUI_API int GetKeyIndex(ImGuiKey imgui_key)
IMGUI_API void PopButtonRepeat()
IMGUI_API bool Checkbox(const char *label, bool *v)
ImVector< ImDrawVert > VtxBuffer
void * BackendLanguageUserData
IMGUI_API void SetNextWindowCollapsed(bool collapsed, ImGuiCond cond=0)
IMGUI_API bool DragFloat3(const char *label, float v[3], float v_speed=1.0f, float v_min=0.0f, float v_max=0.0f, const char *format="%.3f", float power=1.0f)
IMGUI_API void LoadIniSettingsFromDisk(const char *ini_filename)
IMGUI_API ImVec2 GetItemRectMax()
IMGUI_API float GetScrollY()
IMGUI_API void SetCursorScreenPos(const ImVec2 &pos)
IMGUI_API void PushID(int int_id)
ImVec2 DisplayFramebufferScale
IMGUI_API void LogToClipboard(int max_depth=-1)
IMGUI_API bool InputScalarN(const char *label, ImGuiDataType data_type, void *v, int components, const void *step=NULL, const void *step_fast=NULL, const char *format=NULL, ImGuiInputTextFlags flags=0)
IMGUI_API void EndMenuBar()
IMGUI_API bool Combo(const char *label, int *current_item, bool(*items_getter)(void *data, int idx, const char **out_text), void *data, int items_count, int popup_max_height_in_items=-1)
IMGUI_API const char * GetVersion()
IMGUI_API float GetFrameHeight()
IMGUI_API void SetCursorPosY(float local_y)
IMGUI_API void PushAllowKeyboardFocus(bool allow_keyboard_focus)
ImVector< float > IndexAdvanceX
IMGUI_API ImVec2 GetWindowPos()
ImVector< ImDrawCmd > CmdBuffer
ImColor(float r, float g, float b, float a=1.0f)
IMGUI_API ImGuiStyle & GetStyle()
IMGUI_API void ColorConvertRGBtoHSV(float r, float g, float b, float &out_h, float &out_s, float &out_v)
IMGUI_API bool SliderInt2(const char *label, int v[2], int v_min, int v_max, const char *format="%d")
IMGUI_API void SetItemAllowOverlap()
IMGUI_API bool SliderFloat2(const char *label, float v[2], float v_min, float v_max, const char *format="%.3f", float power=1.0f)
static void SetNextWindowPosCenter(ImGuiCond c=0)
IMGUI_API void CloseCurrentPopup()
IMGUI_API void PopClipRect()
IMGUI_API void OpenPopup(const char *str_id)
IMGUI_API const char * SaveIniSettingsToMemory(size_t *out_ini_size=NULL)
void resize(int new_size, const T &v)
IMGUI_API bool InputText(const char *label, char *buf, size_t buf_size, ImGuiInputTextFlags flags=0, ImGuiInputTextCallback callback=NULL, void *user_data=NULL)
Pair(ImGuiID _key, float _val_f)
ImFontGlyphRangesBuilder GlyphRangesBuilder
static ImDrawList * GetOverlayDrawList(ImGuiWindow *)
T * insert(const T *it, const T &v)
ImVector< TextRange > Filters
ImColor(const ImVec4 &col)
ImVector< ImWchar > IndexLookup
ImVector< ImDrawIdx > IdxBuffer
void reserve(int new_capacity)
ImVector< ImFontConfig > ConfigData
IMGUI_API void TextDisabled(const char *fmt,...) IM_FMTARGS(1)
IMGUI_API ImDrawData * GetDrawData()
IMGUI_API void ShowUserGuide()
IMGUI_API const ImVec4 & GetStyleColorVec4(ImGuiCol idx)
ImFontConfig * ConfigData
IMGUI_API void Columns(int count=1, const char *id=NULL, bool border=true)
IMGUI_API void SetWindowFontScale(float scale)
IMGUI_API float GetFrameHeightWithSpacing()
IMGUI_API bool IsMouseDoubleClicked(int button)
IMGUI_API void StyleColorsClassic(ImGuiStyle *dst=NULL)
IMGUI_API bool IsAnyItemActive()
IMGUI_API bool Begin(const char *name, bool *p_open, const ImVec2 &size_on_first_use, float bg_alpha_override=-1.0f, ImGuiWindowFlags flags=0)
IMGUI_API bool BeginTabItem(const char *label, bool *p_open=NULL, ImGuiTabItemFlags flags=0)
IMGUI_API void ColorConvertHSVtoRGB(float h, float s, float v, float &out_r, float &out_g, float &out_b)
void PrimWriteIdx(ImDrawIdx idx)
IMGUI_API bool SetDragDropPayload(const char *type, const void *data, size_t size, ImGuiCond cond=0)
IMGUI_API ImDrawListSharedData * GetDrawListSharedData()
IMGUI_API float GetCursorPosY()
IMGUI_API void SetColorEditOptions(ImGuiColorEditFlags flags)
IMGUI_API void SetKeyboardFocusHere(int offset=0)
IMGUI_API void Value(const char *prefix, float v, const char *float_format=NULL)
IMGUI_API void LogFinish()
static ImColor HSV(float h, float s, float v, float a=1.0f)
IMGUI_API void SetScrollX(float scroll_x)
IMGUI_API bool InputDouble(const char *label, double *v, double step=0.0f, double step_fast=0.0f, const char *format="%.6f", ImGuiInputTextFlags flags=0)
IMGUI_API void TreeAdvanceToLabelPos()
IMGUI_API ImU32 GetColorU32(ImU32 col)
IMGUI_API ImVec4 ColorConvertU32ToFloat4(ImU32 in)
IMGUI_API void PopStyleColor(int count=1)
static void SetWindowPos(ImGuiWindow *window, const ImVec2 &pos, ImGuiCond cond)
IMGUI_API bool RadioButton(const char *label, int *v, int v_button)
ImVector< ImVec4 > _ClipRectStack
IMGUI_API void EndMainMenuBar()
IMGUI_API void TextDisabledV(const char *fmt, va_list args) IM_FMTLIST(1)
IMGUI_API bool BeginTabBar(const char *str_id, ImGuiTabBarFlags flags=0)
IMGUI_API bool IsAnyMouseDown()
IMGUI_API bool IsPopupOpen(const char *str_id)
IMGUI_API bool IsRectVisible(const ImVec2 &rect_min, const ImVec2 &rect_max)
IMGUI_API bool InputInt3(const char *label, int v[3], ImGuiInputTextFlags flags=0)