11 #if !defined(IMGUI_DISABLE_INCLUDE_IMCONFIG_H) || defined(IMGUI_INCLUDE_IMCONFIG_H) 19 #define IMGUI_VERSION "1.49" 29 #define IM_ASSERT(_EXPR) assert(_EXPR) 33 #if defined(__clang__) || defined(__GNUC__) 34 #define IM_PRINTFARGS(FMT) __attribute__((format(printf, FMT, (FMT+1)))) 36 #define IM_PRINTFARGS(FMT) 39 #if defined(__clang__) 40 #pragma clang diagnostic push 41 #pragma clang diagnostic ignored "-Wold-style-cast" 66 typedef unsigned int ImU32;
92 ImVec2(
float _x,
float _y) { x = _x; y = _y; }
93 #ifdef IM_VEC2_CLASS_EXTRA // Define constructor and implicit cast operators in imconfig.h to convert back<>forth from your math types and ImVec2. 102 ImVec4(
float _x,
float _y,
float _z,
float _w) { x = _x; y = _y; z = _z; w = _w; }
103 #ifdef IM_VEC4_CLASS_EXTRA // Define constructor and implicit cast operators in imconfig.h to convert back<>forth from your math types and ImVec4. 123 #define CONCAT_(x,y) x##y 124 #define CONCAT(x,y) CONCAT_(x,y) 125 #define ImGui_ScopePushFont(f) ImGui::ScopePushFont CONCAT(scope_push_font, __LINE__) (f) 126 #define ImGui_ScopePushStyleColor(idx, col) ImGui::ScopePushStyleColor CONCAT(scope_push_style_color, __LINE__) (idx, col) 127 #define ImGui_ScopePushStyleVar(idx, val) ImGui::ScopePushStyleVar CONCAT(scope_push_style_var, __LINE__) (idx, val) 278 IMGUI_API void PushID(
const char* str_id_begin,
const char* str_id_end);
306 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));
307 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));
312 IMGUI_API bool Combo(
const char* label,
int* current_item,
const char** items,
int items_count,
int height_in_items = -1,
bool show_arrow_down =
true);
313 IMGUI_API bool Combo(
const char* label,
int* current_item,
const char* items_separated_by_zeros,
int height_in_items = -1,
bool show_arrow_down =
true);
314 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 height_in_items = -1,
bool show_arrow_down =
true);
319 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));
320 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));
321 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));
322 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));
327 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* display_format =
"%.3f",
float power = 1.0
f);
328 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* display_format =
"%.3f",
float power = 1.0
f);
329 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* display_format =
"%.3f",
float power = 1.0
f);
330 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* display_format =
"%.3f",
float power = 1.0
f);
331 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* display_format =
"%.3f",
const char* display_format_max =
NULL,
float power = 1.0
f);
332 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* display_format =
"%.0f");
333 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* display_format =
"%.0f");
334 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* display_format =
"%.0f");
335 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* display_format =
"%.0f");
336 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* display_format =
"%.0f",
const char* display_format_max =
NULL);
351 IMGUI_API bool SeekSlider(
const char* label,
int* v,
const char* display_format =
"%.0f%%");
352 IMGUI_API bool SliderFloat(
const char* label,
float* v,
float v_min,
float v_max,
const char* display_format =
"%.3f",
float power = 1.0
f,
bool render_bg =
false);
353 IMGUI_API bool SliderFloat2(
const char* label,
float v[2],
float v_min,
float v_max,
const char* display_format =
"%.3f",
float power = 1.0
f);
354 IMGUI_API bool SliderFloat3(
const char* label,
float v[3],
float v_min,
float v_max,
const char* display_format =
"%.3f",
float power = 1.0
f);
355 IMGUI_API bool SliderFloat4(
const char* label,
float v[4],
float v_min,
float v_max,
const char* display_format =
"%.3f",
float power = 1.0
f);
356 IMGUI_API bool SliderAngle(
const char* label,
float* v_rad,
float v_degrees_min = -360.0
f,
float v_degrees_max = +360.0
f);
357 IMGUI_API bool SliderInt(
const char* label,
int* v,
int v_min,
int v_max,
const char* display_format =
"%.0f",
bool render_bg =
false);
358 IMGUI_API bool SliderInt2(
const char* label,
int v[2],
int v_min,
int v_max,
const char* display_format =
"%.0f");
359 IMGUI_API bool SliderInt3(
const char* label,
int v[3],
int v_min,
int v_max,
const char* display_format =
"%.0f");
360 IMGUI_API bool SliderInt4(
const char* label,
int v[4],
int v_min,
int v_max,
const char* display_format =
"%.0f");
361 IMGUI_API bool VSliderFloat(
const char* label,
const ImVec2& size,
float* v,
float v_min,
float v_max,
const char* display_format =
"%.3f",
float power = 1.0
f,
bool render_bg =
false);
362 IMGUI_API bool VSliderInt(
const char* label,
const ImVec2& size,
int* v,
int v_min,
int v_max,
const char* display_format =
"%.0f");
366 IMGUI_API bool SliderIntWithSteps(
const char* label,
int* v,
int v_min,
int v_max,
int v_step=1,
const char* display_format =
"%.3f");
391 IMGUI_API bool ListBox(
const char* label,
int* current_item,
const char** items,
int items_count,
int height_in_items = -1);
392 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);
467 IMGUI_API void CalcListClipping(
int items_count,
float items_height,
int* out_items_display_start,
int* out_items_display_end);
514 #ifndef IMGUI_DISABLE_OBSOLETE_FUNCTIONS 823 const char* (*GetClipboardTextFn)();
824 void (*SetClipboardTextFn)(
const char* text);
828 void* (*MemAllocFn)(
size_t sz);
833 void (*ImeSetInputScreenPosFn)(
int x,
int y);
853 IMGUI_API void AddInputCharactersUTF8(
const char* utf8_chars);
875 bool MouseClicked[5];
877 float MouseClickedTime[5];
878 bool MouseDoubleClicked[5];
879 bool MouseReleased[5];
880 bool MouseDownOwned[5];
881 float MouseDownDuration[5];
882 float MouseDownDurationPrev[5];
883 float MouseDragMaxDistanceSqr[5];
884 float KeysDownDuration[512];
885 float KeysDownDurationPrev[512];
911 inline bool empty()
const {
return Size == 0; }
912 inline int size()
const {
return Size; }
919 inline iterator
begin() {
return Data; }
920 inline const_iterator
begin()
const {
return Data; }
921 inline iterator
end() {
return Data + Size; }
922 inline const_iterator
end()
const {
return Data + Size; }
926 inline const value_type&
back()
const {
IM_ASSERT(Size > 0);
return Data[Size-1]; }
929 inline int _grow_capacity(
int new_size) {
int new_capacity = Capacity ? (Capacity + Capacity/2) : 8;
return new_capacity > new_size ? new_capacity : new_size; }
931 inline void resize(
int new_size) {
if (new_size > Capacity) reserve(_grow_capacity(new_size)); Size = new_size; }
934 if (new_capacity <= Capacity)
return;
935 T* new_data = (value_type*)
ImGui::MemAlloc((
size_t)new_capacity *
sizeof(value_type));
936 memcpy(new_data, Data, (
size_t)Size *
sizeof(value_type));
939 Capacity = new_capacity;
942 inline void push_back(
const value_type&
v) {
if (Size == Capacity) reserve(_grow_capacity(Size+1)); Data[Size++] =
v; }
945 inline iterator
erase(const_iterator
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(value_type)); Size--;
return Data + off; }
946 inline iterator
insert(const_iterator
it,
const value_type&
v) {
IM_ASSERT(it >= Data && it <= Data+Size);
const ptrdiff_t off = it - Data;
if (Size == Capacity) reserve(Capacity ? Capacity * 2 : 4);
if (off < (
int)Size) memmove(Data + off + 1, Data + off, ((
size_t)Size - (
size_t)off) *
sizeof(value_type)); Data[off] =
v; Size++;
return Data + off; }
957 #define IMGUI_ONCE_UPON_A_FRAME static ImGuiOnceUponAFrame imgui_oaf##__LINE__; if (imgui_oaf##__LINE__) 962 operator bool()
const {
int current_frame =
ImGui::GetFrameCount();
if (RefFrame == current_frame)
return false; RefFrame = current_frame;
return true; }
974 TextRange(
const char* _b,
const char* _e) { b = _b; e = _e; }
976 const char*
end()
const {
return e; }
979 static bool is_blank(
char c) {
return c ==
' ' || c ==
'\t'; }
980 void trim_blanks() {
while (b < e && is_blank(*b)) b++;
while (e > b && is_blank(*(e-1))) e--; }
990 void Clear() { InputBuf[0] = 0; Build(); }
991 bool Draw(
const char*
label =
"Filter (inc,-exc)",
float width = 0.0
f);
992 bool PassFilter(
const char* text,
const char* text_end =
NULL)
const;
1028 union {
int val_i;
float val_f;
void*
val_p; };
1085 void DeleteChars(
int pos,
int bytes_count);
1086 void InsertChars(
int pos,
const char* text,
const char* text_end =
NULL);
1109 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; }
1110 ImColor(
ImU32 rgba) {
float sc = 1.0f/255.0f; Value.
x = (float)(rgba&0xFF) * sc; Value.
y = (float)((rgba>>8)&0xFF) * sc; Value.
z = (float)((rgba>>16)&0xFF) * sc; Value.
w = (float)(rgba >> 24) * sc; }
1118 static ImColor HSV(
float h,
float s,
float v,
float a = 1.0
f) {
float r,
g,
b;
ImGui::ColorConvertHSVtoRGB(h, s, v, r, g, b);
return ImColor(r,g,b,
a); }
1138 int ItemsCount,
StepNo, DisplayStart, DisplayEnd;
1157 #define IM_COL32(R,G,B,A) (((ImU32)(A)<<24) | ((ImU32)(B)<<16) | ((ImU32)(G)<<8) | ((ImU32)(R))) 1158 #define IM_COL32_WHITE (0xFFFFFFFF) 1159 #define IM_COL32_BLACK (0xFF000000) 1160 #define IM_COL32_BLACK_TRANS (0x00000000) // Transparent black 1177 ImDrawCmd() { ElemCount = 0; ClipRect.
x = ClipRect.
y = -8192.0f; ClipRect.
z = ClipRect.
w = +8192.0f; TextureId =
NULL; UserCallback =
NULL; UserCallbackData =
NULL; }
1186 #ifndef IMGUI_OVERRIDE_DRAWVERT_STRUCT_LAYOUT 1197 IMGUI_OVERRIDE_DRAWVERT_STRUCT_LAYOUT;
1236 IMGUI_API void PushClipRectFullScreen();
1251 IMGUI_API void AddCircleFilled(
const ImVec2& centre,
float radius,
ImU32 col,
int num_segments = 12);
1256 IMGUI_API void AddConvexPolyFilled(
const ImVec2* points,
const int num_points,
ImU32 col,
bool anti_aliased);
1264 inline void PathStroke(
ImU32 col,
bool closed,
float thickness = 1.0
f) { AddPolyline(_Path.
Data, _Path.
Size, col, closed, thickness,
true); PathClear(); }
1265 IMGUI_API void PathArcTo(
const ImVec2& centre,
float radius,
float a_min,
float a_max,
int num_segments = 10);
1266 IMGUI_API void PathArcToFast(
const ImVec2& centre,
float radius,
int a_min_of_12,
int a_max_of_12);
1268 IMGUI_API void PathRect(
const ImVec2& rect_min,
const ImVec2& rect_max,
float rounding = 0.0
f,
int rounding_corners = 0x0F);
1273 IMGUI_API void ChannelsSplit(
int channels_count);
1275 IMGUI_API void ChannelsSetCurrent(
int channel_index);
1285 IMGUI_API void PrimReserve(
int idx_count,
int vtx_count);
1306 ImDrawData() { Valid =
false; CmdLists =
NULL; CmdListsCount = TotalVtxCount = TotalIdxCount = 0; }
1361 IMGUI_API void GetTexDataAsAlpha8(
unsigned char** out_pixels,
int* out_width,
int* out_height,
int* out_bytes_per_pixel =
NULL);
1362 IMGUI_API void GetTexDataAsRGBA32(
unsigned char** out_pixels,
int* out_width,
int* out_height,
int* out_bytes_per_pixel =
NULL);
1387 IMGUI_API void RenderCustomTexData(
int pass,
void* rects);
1431 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;
1432 IMGUI_API const char* CalcWordWrapPositionA(
float scale,
const char* text,
const char* text_end,
float wrap_width)
const;
1441 #if defined(__clang__) 1442 #pragma clang diagnostic pop 1448 #ifdef IMGUI_INCLUDE_IMGUI_USER_H 1449 #include "imgui_user.h"
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))
ImVector< ImTextureID > _TextureIdStack
IMGUI_API float GetCursorPosX()
IMGUI_API void ValueColor(const char *prefix, unsigned int v)
void PathStroke(ImU32 col, bool closed, float thickness=1.0f)
IMGUI_API bool IsKeyPressed(int key_index, bool repeat=true)
IMGUI_API ImVec2 GetCursorStartPos()
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 bool BeginChildFrame(ImGuiID id, const ImVec2 &size, ImGuiWindowFlags extra_flags=0)
GLboolean GLboolean GLboolean b
ScopePushStyleVar(ImGuiStyleVar idx, const ImVec2 &val)
IMGUI_API ImVec2 GetCursorPos()
IMGUI_API bool BeginPopupContextItem(const char *str_id, int mouse_button=1)
IMGUI_API void ShowTestWindow(bool *p_open=NULL)
IMGUI_API void SetTooltip(const char *fmt,...) IM_PRINTFARGS(1)
IMGUI_API void BulletText(const char *fmt,...) IM_PRINTFARGS(1)
IMGUI_API void SetScrollFromPosY(float pos_y, float center_y_ratio=0.5f)
typedef void(APIENTRY *GLDEBUGPROC)(GLenum source
#define IM_PRINTFARGS(FMT)
GLuint const GLchar * name
static bool GetWindowIsFocused()
IMGUI_API float GetFontSize()
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 DoubleClickSelectsWord
IMGUI_API void ProgressBar(float fraction, const ImVec2 &size_arg=ImVec2(-1, 0), const char *overlay=NULL)
IMGUI_API void LabelTextV(const char *label, const char *fmt, va_list args)
void(* ImDrawCallback)(const ImDrawList *parent_list, const ImDrawCmd *cmd)
IMGUI_API bool BeginChild(ImGuiID id, const ImVec2 &size=ImVec2(0, 0), bool border=false, ImGuiWindowFlags extra_flags=0)
IMGUI_API ImGuiStorage * GetStateStorage()
IMGUI_API bool InputTextMultiline(const char *label, char *buf, size_t buf_size, const ImVec2 &size=ImVec2(0, 0), ImGuiInputTextFlags flags=0, ImGuiTextEditCallback callback=NULL, void *user_data=NULL)
IMGUI_API void Icon(const char *icon)
IMGUI_API void SetNextWindowCollapsed(bool collapsed, ImGuiSetCond cond=0)
IMGUI_API bool IsRootWindowFocused()
IMGUI_API bool IsWindowFocused()
IMGUI_API bool InputInt3(const char *label, int v[3], ImGuiInputTextFlags extra_flags=0)
IMGUI_API void SetCursorPos(const ImVec2 &local_pos)
std::vector< uint32_t > split(const std::string &s, char delim)
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)
void resize(int new_size)
IMGUI_API void ShowUserGuide()
GLenum GLenum GLenum GLenum GLenum scale
IMGUI_API bool IsMouseClicked(int button, bool repeat=false)
IMGUI_API bool IsItemClicked(int mouse_button=0)
float CurveTessellationTol
IMGUI_API void PopTextWrapPos()
ImGuiInputTextFlags Flags
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)
const value_type & operator[](int i) const
IMGUI_API ImVec2 GetItemRectMin()
IMGUI_API bool IsItemActive()
IMGUI_API void * MemAlloc(size_t sz)
IMGUI_API void SetNextWindowFocus()
IMGUI_API ImVec2 GetMouseDragDelta(int button=0, float lock_threshold=-1.0f)
IMGUI_API void NewFrame()
IMGUI_API const char * GetStyleColName(ImGuiCol idx)
IMGUI_API bool IsRootWindowOrAnyChildHovered()
static const textual_icon repeat
IMGUI_API void SetNextWindowPos(const ImVec2 &pos, ImGuiSetCond cond=0)
IMGUI_API void EndTooltip()
IMGUI_API bool InputInt4(const char *label, int v[4], ImGuiInputTextFlags extra_flags=0)
const value_type * const_iterator
IMGUI_API void LogButtons()
IMGUI_API int GetKeyIndex(ImGuiKey key)
value_type & operator[](int i)
IMGUI_API bool BeginPopupContextWindow(bool also_over_items=true, const char *str_id=NULL, int mouse_button=1)
IMGUI_API void CaptureMouseFromApp(bool capture=true)
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))
static bool IsClipped(const ImVec2 &size)
int(* ImGuiTextEditCallback)(ImGuiTextEditCallbackData *data)
IMGUI_API void SetScrollHere(float center_y_ratio=0.5f)
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)
IMGUI_API void PushClipRect(const ImVec2 &clip_rect_min, const ImVec2 &clip_rect_max, bool intersect_with_current_clip_rect)
IMGUI_API bool Begin(const char *name, bool *p_open, const ImVec2 &size_on_first_use, float bg_alpha=-1.0f, ImGuiWindowFlags flags=0)
unsigned char * TexPixelsAlpha8
IMGUI_API void ShowMetricsWindow(bool *p_open=NULL)
IMGUI_API void BeginTooltip()
IMGUI_API void BulletTextV(const char *fmt, va_list args)
IMGUI_API bool IsMouseHoveringAnyWindow()
bool FontDataOwnedByAtlas
bool ShortcutsUseSuperKey
void swap(ImVector< T > &rhs)
GLdouble GLdouble GLdouble w
const_iterator begin() const
static void SetWindowSize(ImGuiWindow *window, const ImVec2 &size, ImGuiSetCond cond)
IMGUI_API void Indent(float indent_w=0.0f)
IMGUI_API void PushTextWrapPos(float wrap_pos_x=0.0f)
IMGUI_API void PushButtonRepeat(bool repeat)
IMGUI_API void ResetMouseDragDelta(int button=0)
IMGUI_API bool IsWindowHovered()
IMGUI_API void SetWindowFocus(const char *name)
ImGuiAlign WindowTitleAlign
IMGUI_API bool IsItemHoveredRect()
bool MultiSelectUsesSuperKey
GLfloat GLfloat GLfloat GLfloat h
IMGUI_API ImGuiMouseCursor GetMouseCursor()
IMGUI_API float GetColumnOffset(int column_index=-1)
IMGUI_API bool ColorButton(const ImVec4 &col, bool small_height=false, bool outline_border=true)
bool HasSelection() const
IMGUI_API void SetStateStorage(ImGuiStorage *tree)
IMGUI_API void TextDisabled(const char *fmt,...) IM_PRINTFARGS(1)
IMGUI_API bool InputText(const char *label, char *buf, size_t buf_size, ImGuiInputTextFlags flags=0, ImGuiTextEditCallback callback=NULL, void *user_data=NULL)
ImColor(int r, int g, int b, int a=255)
ImVector< ImFont * > Fonts
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 SliderInt(const char *label, int *v, int v_min, int v_max, const char *display_format="%.0f", bool render_bg=false)
IMGUI_API ImVec2 GetContentRegionMax()
IMGUI_API bool CheckboxFlags(const char *label, unsigned int *flags, unsigned int flags_value)
IMGUI_API void TextDisabledV(const char *fmt, va_list args)
void ClearInputCharacters()
IMGUI_API bool BeginMenuBar()
IMGUI_API void AlignFirstTextHeightToWidgets()
IMGUI_API void PushStyleVar(ImGuiStyleVar idx, const ImVec2 &val)
GLboolean GLboolean GLboolean GLboolean a
IMGUI_API void MemFree(void *ptr)
IMGUI_API ImGuiContext * CreateContext(void *(*malloc_fn)(size_t)=NULL, void(*free_fn)(void *)=NULL)
GLenum GLuint GLenum GLsizei const GLchar * buf
IMGUI_API ImVec2 GetMousePos()
IMGUI_API bool InputFloat3(const char *label, float v[3], int decimal_precision=-1, ImGuiInputTextFlags extra_flags=0)
IMGUI_API void PushAllowKeyboardFocus(bool v)
int _grow_capacity(int new_size)
IMGUI_API bool BeginPopup(const char *str_id)
IMGUI_API ImGuiID GetID(const void *ptr_id)
IMGUI_API void SameLine(float pos_x=0.0f, float spacing_w=-1.0f)
IMGUI_API void SetMouseCursor(ImGuiMouseCursor type)
IMGUI_API bool SliderFloat2(const char *label, float v[2], float v_min, float v_max, const char *display_format="%.3f", float power=1.0f)
IMGUI_API ImVec2 GetContentRegionAvail()
IMGUI_API void CaptureKeyboardFromApp(bool capture=true)
static ImFont * GetWindowFont()
ImGuiInputTextFlags EventFlag
const value_type & back() const
IMGUI_API float GetScrollMaxY()
IMGUI_API void SetCurrentContext(ImGuiContext *ctx)
ImFontAtlas * ContainerAtlas
IMGUI_API ImDrawList * GetWindowDrawList()
IMGUI_API bool InputInt2(const char *label, int v[2], ImGuiInputTextFlags extra_flags=0)
IMGUI_API void PopStyleVar(int count=1)
IMGUI_API void SetScrollY(float scroll_y)
static void SetScrollPosHere()
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 IsPosHoveringAnyWindow(const ImVec2 &pos)
IMGUI_API void Dummy(const ImVec2 &size)
IMGUI_API void SetNextWindowPosCenter(ImGuiSetCond cond=0)
IMGUI_API bool IsAnyItemHovered()
IMGUI_API bool IsMouseDragging(int button=0, float lock_threshold=-1.0f)
IMGUI_API ImVec2 GetWindowContentRegionMax()
IMGUI_API bool IsRectVisible(const ImVec2 &size)
Pair(ImGuiID _key, void *_val_p)
IMGUI_API bool TreeNodeEx(const void *ptr_id, ImGuiTreeNodeFlags flags, const char *fmt,...) IM_PRINTFARGS(3)
ImVector< ImDrawChannel > _Channels
IMGUI_API void TextUnformatted(const char *text, const char *text_end=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 *display_format="%.3f", float power=1.0f)
static void SetWindowCollapsed(ImGuiWindow *window, bool collapsed, ImGuiSetCond cond)
IMGUI_API bool TreeNodeExV(const void *ptr_id, ImGuiTreeNodeFlags flags, const char *fmt, va_list args)
IMGUI_API bool ColorEdit3(const char *label, float col[3])
IMGUI_API void SetColumnOffset(int column_index, float offset_x)
IMGUI_API void SetNextWindowContentWidth(float width)
IMGUI_API void Unindent(float indent_w=0.0f)
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))
IMGUI_API bool SliderAngle(const char *label, float *v_rad, float v_degrees_min=-360.0f, float v_degrees_max=+360.0f)
ImVector< ImDrawCmd > CmdBuffer
static bool IsMouseHoveringBox(const ImVec2 &rect_min, const ImVec2 &rect_max)
IMGUI_API void LabelText(const char *label, const char *fmt,...) IM_PRINTFARGS(2)
IMGUI_API bool SliderFloat3(const char *label, float v[3], float v_min, float v_max, const char *display_format="%.3f", float power=1.0f)
IMGUI_API ImVec2 GetMousePosOnOpeningCurrentPopup()
float MouseDoubleClickTime
const ImWchar * GlyphRanges
void(* ImGuiSizeConstraintCallback)(ImGuiSizeConstraintCallbackData *data)
IMGUI_API ImGuiIO & GetIO()
IMGUI_API bool SeekSlider(const char *label, int *v, const char *display_format="%.0f%%")
IMGUI_API void SetNextWindowSize(const ImVec2 &size, ImGuiSetCond cond=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 *display_format="%.0f")
IMGUI_API bool InputFloat2(const char *label, float v[2], int decimal_precision=-1, ImGuiInputTextFlags extra_flags=0)
IMGUI_API bool IsRootWindowOrAnyChildFocused()
IMGUI_API ImU32 GetColorU32(const ImVec4 &col)
unsigned int * TexPixelsRGBA32
IMGUI_API bool InputFloat4(const char *label, float v[4], int decimal_precision=-1, ImGuiInputTextFlags extra_flags=0)
IMGUI_API ImFont * GetFont()
IMGUI_API void EndGroup()
IMGUI_API float GetTime()
IMGUI_API void TextV(const char *fmt, va_list args)
const char * c_str() const
IMGUI_API int GetColumnIndex()
IMGUI_API void LogToFile(int max_depth=-1, const char *filename=NULL)
IMGUI_API void SetNextWindowSizeConstraints(const ImVec2 &size_min, const ImVec2 &size_max, ImGuiSizeConstraintCallback custom_callback=NULL, void *custom_callback_data=NULL)
IMGUI_API bool InputFloat(const char *label, float *v, float step=0.0f, float step_fast=0.0f, int decimal_precision=-1, ImGuiInputTextFlags extra_flags=0)
IMGUI_API ImGuiContext * GetCurrentContext()
void reserve(int new_capacity)
IMGUI_API bool IsWindowCollapsed()
IMGUI_API void SetCursorPosX(float x)
GLenum GLenum GLsizei const GLuint GLboolean enabled
IMGUI_API float GetContentRegionAvailWidth()
GLint GLint GLsizei GLint border
IMGUI_API void ColorEditMode(ImGuiColorEditMode mode)
ImVector< float > IndexXAdvance
GLdouble GLdouble GLint stride
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 void Text(const char *fmt,...) IM_PRINTFARGS(1)
IMGUI_API bool Button(const char *label, const ImVec2 &size=ImVec2(0, 0))
IMGUI_API float GetItemsLineHeightWithSpacing()
IMGUI_API void Separator()
IMGUI_API void BeginGroup()
bool FontAllowUserScaling
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 *display_format="%.3f", const char *display_format_max=NULL, float power=1.0f)
IMGUI_API bool SliderFloat4(const char *label, float v[4], float v_min, float v_max, const char *display_format="%.3f", float power=1.0f)
ScopePushFont(ImFont *font)
IMGUI_API float GetScrollX()
IMGUI_API bool IsKeyReleased(int key_index)
float GetCharAdvance(ImWchar c) const
IMGUI_API bool SliderInt4(const char *label, int v[4], int v_min, int v_max, const char *display_format="%.0f")
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 *display_format="%.3f", float power=1.0f)
IMGUI_API bool BeginPopupContextVoid(const char *str_id=NULL, int mouse_button=1)
ImGuiListClipper(int items_count=-1, float items_height=-1.0f)
unsigned int _VtxCurrentIdx
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 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 height_in_items=-1, bool show_arrow_down=true)
IMGUI_API ImVec2 GetFontTexUvWhitePixel()
IMGUI_API void NextColumn()
Pair(ImGuiID _key, int _val_i)
IMGUI_API void PushStyleColor(ImGuiCol idx, const ImVec4 &col)
ImVector< ImDrawIdx > IdxBuffer
static float GetWindowFontSize()
ScopePushStyleVar(ImGuiStyleVar idx, float val)
IMGUI_API float GetWindowHeight()
IMGUI_API bool ButtonEx(const char *label, const ImVec2 &size_arg=ImVec2(0, 0), ImGuiButtonFlags 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 *display_format="%.3f", float power=1.0f)
const value_type & front() const
IMGUI_API bool BeginMainMenuBar()
IMGUI_API void SetNextTreeNodeOpen(bool is_open, ImGuiSetCond cond=0)
IMGUI_API ImU32 ColorConvertFloat4ToU32(const ImVec4 &in)
ImVec2 DisplaySafeAreaPadding
const Glyph * FallbackGlyph
IMGUI_API void TreePush(const void *ptr_id=NULL)
IMGUI_API void PushFont(ImFont *font)
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()
IMGUI_API void SetTooltipV(const char *fmt, va_list args)
IMGUI_API bool BeginMenu(const char *label, bool enabled=true)
IMGUI_API float GetTextLineHeightWithSpacing()
GLsizei const GLfloat * values
iterator insert(const_iterator it, const value_type &v)
IMGUI_API void ListBoxFooter()
IMGUI_API bool SliderIntWithSteps(const char *label, int *v, int v_min, int v_max, int v_step=1, const char *display_format="%.3f")
void PrimVtx(const ImVec2 &pos, const ImVec2 &uv, ImU32 col)
IMGUI_API float CalcItemWidth()
ImDrawCallback UserCallback
IMGUI_API bool SliderFloat(const char *label, float *v, float v_min, float v_max, const char *display_format="%.3f", float power=1.0f, bool render_bg=false)
IMGUI_API void DestroyContext(ImGuiContext *ctx)
IMGUI_API void LogToTTY(int max_depth=-1)
float MouseDoubleClickMaxDist
ImDrawVert * _VtxWritePtr
IMGUI_API ImVec2 GetCursorScreenPos()
IMGUI_API void Shutdown()
IMGUI_API void EndChildFrame()
IMGUI_API bool SliderInt3(const char *label, int v[3], int v_min, int v_max, const char *display_format="%.0f")
void push_back(const value_type &v)
IMGUI_API void PopItemWidth()
static bool GetWindowCollapsed()
IMGUI_API bool TreeNodeV(const void *ptr_id, const char *fmt, va_list args)
iterator erase(const_iterator it)
static ImVec2 GetItemBoxMin()
static ImVec2 GetItemBoxMax()
IMGUI_API bool ListBoxHeader(const char *label, int items_count, int height_in_items=-1)
IMGUI_API bool IsItemVisible()
IMGUI_API void TextColoredV(const ImVec4 &col, const char *fmt, va_list args)
GLuint GLsizei const GLchar * label
IMGUI_API float GetTextLineHeight()
IMGUI_API bool SliderInt2(const char *label, int v[2], int v_min, int v_max, const char *display_format="%.0f")
IMGUI_API bool IsMouseHoveringWindow()
ImVec4(float _x, float _y, float _z, float _w)
void PathLineToMergeDuplicate(const ImVec2 &pos)
void PathLineTo(const ImVec2 &pos)
IMGUI_API int GetFrameCount()
IMGUI_API bool BeginPopupModal(const char *name, bool *p_open=NULL, ImGuiWindowFlags extra_flags=0)
IMGUI_API const char * GetClipboardText()
ImVector< short > IndexLookup
IMGUI_API void SetNextWindowContentSize(const ImVec2 &size)
IMGUI_API void PopButtonRepeat()
IMGUI_API bool ColorEdit4(const char *label, float col[4], bool show_alpha=true)
IMGUI_API bool Checkbox(const char *label, bool *v)
ImVector< ImDrawVert > VtxBuffer
IMGUI_API bool VSliderInt(const char *label, const ImVec2 &size, int *v, int v_min, int v_max, const char *display_format="%.0f")
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)
const char * begin() const
IMGUI_API void EndMenuBar()
IMGUI_API const char * GetVersion()
static bool IsRectClipped(const ImVec2 &size)
IMGUI_API void SetContentRegionWidth(float y)
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 *display_format="%.0f", const char *display_format_max=NULL)
IMGUI_API ImVec2 GetWindowPos()
static void OpenNextNode(bool open)
ImVector< ImDrawCmd > CmdBuffer
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 *display_format="%.0f")
ImColor(float r, float g, float b, float a=1.0f)
IMGUI_API ImGuiStyle & GetStyle()
IMGUI_API void TextWrappedV(const char *fmt, va_list args)
IMGUI_API void ColorConvertRGBtoHSV(float r, float g, float b, float &out_h, float &out_s, float &out_v)
IMGUI_API void SetItemAllowOverlap()
IMGUI_API void CloseCurrentPopup()
IMGUI_API bool IsKeyDown(int key_index)
IMGUI_API void PopClipRect()
IMGUI_API void OpenPopup(const char *str_id)
IMGUI_API bool TreeNode(const void *ptr_id, const char *fmt,...) IM_PRINTFARGS(2)
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 *display_format="%.0f")
bool WordMovementUsesAltKey
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 *display_format="%.3f", float power=1.0f)
Pair(ImGuiID _key, float _val_f)
IMGUI_API void TextWrapped(const char *fmt,...) IM_PRINTFARGS(1)
ImVector< TextRange > Filters
ImColor(const ImVec4 &col)
IMGUI_API void SetCursorPosY(float y)
ImVector< ImDrawIdx > IdxBuffer
ImVector< ImFontConfig > ConfigData
IMGUI_API bool VSliderFloat(const char *label, const ImVec2 &size, float *v, float v_min, float v_max, const char *display_format="%.3f", float power=1.0f, bool render_bg=false)
IMGUI_API ImDrawData * GetDrawData()
static bool CollapsingHeader(const char *label, const char *str_id, bool framed=true, bool default_open=false)
ImFontConfig * ConfigData
IMGUI_API void Columns(int count=1, const char *id=NULL, bool border=true)
IMGUI_API void SetWindowFontScale(float scale)
IMGUI_API bool DragInt(const char *label, int *v, float v_speed=1.0f, int v_min=0, int v_max=0, const char *display_format="%.0f")
IMGUI_API bool IsMouseDoubleClicked(int button)
IMGUI_API bool IsAnyItemActive()
float ChildWindowRounding
static void SetWindowPos(ImGuiWindow *window, const ImVec2 &pos, ImGuiSetCond cond)
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 float GetCursorPosY()
IMGUI_API bool IsItemHovered()
IMGUI_API void SetKeyboardFocusHere(int offset=0)
IMGUI_API void Value(const char *prefix, float v, const char *float_format=NULL)
IMGUI_API void ShowStyleEditor(ImGuiStyle *ref=NULL)
IMGUI_API void LogText(const char *fmt,...) IM_PRINTFARGS(1)
IMGUI_API void LogFinish()
const_iterator end() const
static ImColor HSV(float h, float s, float v, float a=1.0f)
GLdouble GLdouble GLint GLint const GLdouble * points
IMGUI_API void SetScrollX(float scroll_x)
IMGUI_API void TreeAdvanceToLabelPos()
IMGUI_API bool InputInt(const char *label, int *v, int step=1, int step_fast=100, ImGuiInputTextFlags extra_flags=0)
IMGUI_API ImVec4 ColorConvertU32ToFloat4(ImU32 in)
ScopePushStyleColor(ImGuiCol idx, const ImVec4 &col)
IMGUI_API void PopStyleColor(int count=1)
IMGUI_API bool RadioButton(const char *label, int *v, int v_button)
ImVector< ImVec4 > _ClipRectStack
IMGUI_API void EndMainMenuBar()
IMGUI_API void TextColored(const ImVec4 &col, const char *fmt,...) IM_PRINTFARGS(2)
IMGUI_API ImVec2 CalcItemRectClosestPoint(const ImVec2 &pos, bool on_edge=false, float outward=+0.0f)