Compare commits

..

4 Commits

Author SHA1 Message Date
Stephan Dilly
3f0014b569 update readme 2017-12-27 16:25:11 +01:00
Stephan Dilly
49d62d30cf update to imgui 1.53 2017-12-27 16:24:15 +01:00
Stephan Dilly
2ea2b91ee1 auto format 2017-12-27 14:15:22 +01:00
Stephan Dilly
e75eaa7239 auto format 2017-12-27 14:14:46 +01:00
6 changed files with 1321 additions and 1114 deletions

View File

@@ -7,7 +7,7 @@ Most of the functions have wrapper counterparts now, missing stuff is added on a
This library is intended as a intermediate layer to be able to use imgui from other languages that can interface with C (like D - see [D-binding](https://github.com/Extrawurst/DerelictImgui)) This library is intended as a intermediate layer to be able to use imgui from other languages that can interface with C (like D - see [D-binding](https://github.com/Extrawurst/DerelictImgui))
Notes: Notes:
* currently this wrapper is based on version [1.52 of imgui](https://github.com/ocornut/imgui/releases/tag/v1.52) * currently this wrapper is based on version [1.53 of imgui](https://github.com/ocornut/imgui/releases/tag/v1.53)
* does not compile with pure C compiler yet (for writing bindings in languages that are able to use C-ABI it is enough though, see D-bindings) * does not compile with pure C compiler yet (for writing bindings in languages that are able to use C-ABI it is enough though, see D-bindings)
# usage # usage

View File

@@ -31,6 +31,11 @@ CIMGUI_API void igRender()
ImGui::Render(); ImGui::Render();
} }
CIMGUI_API void igEndFrame()
{
ImGui::EndFrame();
}
CIMGUI_API void igShutdown() CIMGUI_API void igShutdown()
{ {
ImGui::Shutdown(); ImGui::Shutdown();
@@ -46,9 +51,9 @@ CIMGUI_API void igShowStyleEditor(ImGuiStyle* ref)
ImGui::ShowStyleEditor(ref); ImGui::ShowStyleEditor(ref);
} }
CIMGUI_API void igShowTestWindow(bool* opened) CIMGUI_API void igShowDemoWindow(bool *opened)
{ {
ImGui::ShowTestWindow(opened); ImGui::ShowDemoWindow(opened);
} }
IMGUI_API void igShowMetricsWindow(bool *opened) IMGUI_API void igShowMetricsWindow(bool *opened)
@@ -56,6 +61,16 @@ IMGUI_API void igShowMetricsWindow(bool* opened)
ImGui::ShowMetricsWindow(opened); ImGui::ShowMetricsWindow(opened);
} }
CIMGUI_API void igShowStyleSelector(CONST char *label)
{
ImGui::ShowStyleSelector(label);
}
CIMGUI_API void igShowFontSelector(CONST char *label)
{
ImGui::ShowFontSelector(label);
}
// Window // Window
CIMGUI_API bool igBegin(CONST char *name, bool *p_opened, ImGuiWindowFlags flags) CIMGUI_API bool igBegin(CONST char *name, bool *p_opened, ImGuiWindowFlags flags)
@@ -178,11 +193,6 @@ CIMGUI_API void igSetNextWindowContentSize(CONST ImVec2 size)
ImGui::SetNextWindowContentSize(size); ImGui::SetNextWindowContentSize(size);
} }
CIMGUI_API void igSetNextWindowContentWidth(float width)
{
ImGui::SetNextWindowContentWidth(width);
}
CIMGUI_API void igSetNextWindowCollapsed(bool collapsed, ImGuiCond cond) CIMGUI_API void igSetNextWindowCollapsed(bool collapsed, ImGuiCond cond)
{ {
ImGui::SetNextWindowCollapsed(collapsed, cond); ImGui::SetNextWindowCollapsed(collapsed, cond);
@@ -273,11 +283,6 @@ CIMGUI_API void igSetScrollFromPosY(float pos_y, float center_y_ratio)
return ImGui::SetScrollFromPosY(pos_y, center_y_ratio); return ImGui::SetScrollFromPosY(pos_y, center_y_ratio);
} }
CIMGUI_API void igSetKeyboardFocusHere(int offset)
{
ImGui::SetKeyboardFocusHere(offset);
}
CIMGUI_API void igSetStateStorage(ImGuiStorage *tree) CIMGUI_API void igSetStateStorage(ImGuiStorage *tree)
{ {
ImGui::SetStateStorage(tree); ImGui::SetStateStorage(tree);
@@ -592,9 +597,14 @@ CIMGUI_API float igGetTextLineHeightWithSpacing()
return ImGui::GetTextLineHeightWithSpacing(); return ImGui::GetTextLineHeightWithSpacing();
} }
CIMGUI_API float igGetItemsLineHeightWithSpacing() CIMGUI_API float igGetFrameHeight()
{ {
return ImGui::GetItemsLineHeightWithSpacing(); return ImGui::GetFrameHeight();
}
CIMGUI_API float igGetFrameHeightWithSpacing()
{
return ImGui::GetFrameHeightWithSpacing();
} }
//Columns //Columns
@@ -652,7 +662,6 @@ CIMGUI_API void igPushIDStrRange(CONST char* str_begin, CONST char* str_end)
return ImGui::PushID(str_begin, str_end); return ImGui::PushID(str_begin, str_end);
} }
CIMGUI_API void igPushIDPtr(CONST void *ptr_id) CIMGUI_API void igPushIDPtr(CONST void *ptr_id)
{ {
return ImGui::PushID(ptr_id); return ImGui::PushID(ptr_id);
@@ -817,21 +826,6 @@ CIMGUI_API bool igRadioButton(CONST char* label, int* v, int v_button)
return ImGui::RadioButton(label, v, v_button); return ImGui::RadioButton(label, v, v_button);
} }
CIMGUI_API bool igCombo(CONST char* label, int* current_item, CONST char* CONST* items, int items_count, int height_in_items)
{
return ImGui::Combo(label, current_item, items, items_count, height_in_items);
}
CIMGUI_API bool igCombo2(CONST char* label, int* current_item, CONST char* items_separated_by_zeros, int height_in_items)
{
return ImGui::Combo(label, current_item, items_separated_by_zeros, height_in_items);
}
CIMGUI_API bool igCombo3(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)
{
return ImGui::Combo(label, current_item, items_getter, data, items_count, height_in_items);
}
CIMGUI_API void igPlotLines(CONST char *label, CONST float *values, int values_count, int values_offset, CONST char *overlay_text, float scale_min, float scale_max, ImVec2 graph_size, int stride) CIMGUI_API void igPlotLines(CONST char *label, CONST float *values, int values_count, int values_offset, CONST char *overlay_text, float scale_min, float scale_max, ImVec2 graph_size, int stride)
{ {
return ImGui::PlotLines(label, values, values_count, values_offset, overlay_text, scale_min, scale_max, graph_size, stride); return ImGui::PlotLines(label, values, values_count, values_offset, overlay_text, scale_min, scale_max, graph_size, stride);
@@ -913,6 +907,31 @@ CIMGUI_API bool igVSliderInt(CONST char* label, CONST ImVec2 size, int* v, int v
return ImGui::VSliderInt(label, size, v, v_min, v_max, display_format); return ImGui::VSliderInt(label, size, v, v_min, v_max, display_format);
} }
CIMGUI_API bool igBeginCombo(CONST char *label, CONST char *preview_value, ImGuiComboFlags flags)
{
return ImGui::BeginCombo(label, preview_value, flags);
}
CIMGUI_API void igEndCombo()
{
return ImGui::EndCombo();
}
CIMGUI_API bool igCombo(CONST char *label, int *current_item, CONST char *CONST *items, int items_count, int popup_max_height_in_items)
{
return ImGui::Combo(label, current_item, items, items_count, popup_max_height_in_items);
}
CIMGUI_API bool igCombo2(CONST char *label, int *current_item, CONST char *items_separated_by_zeros, int popup_max_height_in_items)
{
return ImGui::Combo(label, current_item, items_separated_by_zeros, popup_max_height_in_items);
}
CIMGUI_API bool igCombo3(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)
{
return ImGui::Combo(label, current_item, items_getter, data, items_count, popup_max_height_in_items);
}
// Widgets: Color Editor/Picker (tip: the ColorEdit* functions have a little colored preview square that can be left-clicked to open a picker, and right-clicked to open an option menu.) // Widgets: Color Editor/Picker (tip: the ColorEdit* functions have a little colored preview square that can be left-clicked to open a picker, and right-clicked to open an option menu.)
CIMGUI_API bool igColorEdit3(CONST char *label, float col[3], ImGuiColorEditFlags flags) CIMGUI_API bool igColorEdit3(CONST char *label, float col[3], ImGuiColorEditFlags flags)
{ {
@@ -1046,7 +1065,6 @@ CIMGUI_API bool igInputInt4(CONST char* label, int v[4], ImGuiInputTextFlags ext
return ImGui::InputInt4(label, v, extra_flags); return ImGui::InputInt4(label, v, extra_flags);
} }
// Widgets: Trees // Widgets: Trees
CIMGUI_API bool igTreeNode(CONST char *label) CIMGUI_API bool igTreeNode(CONST char *label)
{ {
@@ -1292,6 +1310,36 @@ CIMGUI_API void igLogText(CONST char* fmt, ...)
ImGui::LogText("%s", buffer); ImGui::LogText("%s", buffer);
} }
CIMGUI_API bool igBeginDragDropSource(ImGuiDragDropFlags flags, int mouse_button)
{
return ImGui::BeginDragDropSource(flags, mouse_button);
}
CIMGUI_API bool igSetDragDropPayload(CONST char *type, CONST void *data, size_t size, ImGuiCond cond)
{
return ImGui::SetDragDropPayload(type, data, size, cond);
}
CIMGUI_API void igEndDragDropSource()
{
ImGui::EndDragDropSource();
}
CIMGUI_API bool igBeginDragDropTarget()
{
return ImGui::BeginDragDropTarget();
}
CIMGUI_API CONST struct ImGuiPayload *igAcceptDragDropPayload(CONST char *type, ImGuiDragDropFlags flags)
{
return ImGui::AcceptDragDropPayload(type, flags);
}
CIMGUI_API void igEndDragDropTarget()
{
ImGui::EndDragDropTarget();
}
CIMGUI_API void igPushClipRect(CONST struct ImVec2 clip_rect_min, CONST struct ImVec2 clip_rect_max, bool intersect_with_current_clip_rect) CIMGUI_API void igPushClipRect(CONST struct ImVec2 clip_rect_min, CONST struct ImVec2 clip_rect_max, bool intersect_with_current_clip_rect)
{ {
return ImGui::PushClipRect(clip_rect_min, clip_rect_max, intersect_with_current_clip_rect); return ImGui::PushClipRect(clip_rect_min, clip_rect_max, intersect_with_current_clip_rect);
@@ -1307,6 +1355,26 @@ CIMGUI_API void igStyleColorsClassic(struct ImGuiStyle * dst)
ImGui::StyleColorsClassic(dst); ImGui::StyleColorsClassic(dst);
} }
CIMGUI_API void igStyleColorsDark(struct ImGuiStyle *dst)
{
ImGui::StyleColorsDark(dst);
}
CIMGUI_API void igStyleColorsLight(struct ImGuiStyle *dst)
{
ImGui::StyleColorsLight(dst);
}
CIMGUI_API void igSetItemDefaultFocus()
{
ImGui::SetItemDefaultFocus();
}
CIMGUI_API void igSetKeyboardFocusHere(int offset)
{
ImGui::SetKeyboardFocusHere(offset);
}
// Utilities // Utilities
CIMGUI_API bool igIsItemHovered(ImGuiHoveredFlags flags) CIMGUI_API bool igIsItemHovered(ImGuiHoveredFlags flags)
{ {
@@ -1358,9 +1426,9 @@ CIMGUI_API void igSetItemAllowOverlap()
ImGui::SetItemAllowOverlap(); ImGui::SetItemAllowOverlap();
} }
CIMGUI_API bool igIsWindowFocused() CIMGUI_API bool igIsWindowFocused(ImGuiFocusedFlags flags)
{ {
return ImGui::IsWindowFocused(); return ImGui::IsWindowFocused(flags);
} }
CIMGUI_API bool igIsWindowHovered(ImGuiHoveredFlags) CIMGUI_API bool igIsWindowHovered(ImGuiHoveredFlags)
@@ -1368,19 +1436,9 @@ CIMGUI_API bool igIsWindowHovered(ImGuiHoveredFlags)
return ImGui::IsWindowHovered(); return ImGui::IsWindowHovered();
} }
CIMGUI_API bool igIsRootWindowFocused() CIMGUI_API bool igIsAnyWindowFocused()
{ {
return ImGui::IsRootWindowFocused(); return ImGui::IsAnyWindowFocused();
}
CIMGUI_API bool igIsRootWindowOrAnyChildFocused()
{
return ImGui::IsRootWindowOrAnyChildFocused();
}
CIMGUI_API bool igIsRootWindowOrAnyChildHovered(ImGuiHoveredFlags flags)
{
return ImGui::IsRootWindowOrAnyChildHovered(flags);
} }
CIMGUI_API bool igIsAnyWindowHovered() CIMGUI_API bool igIsAnyWindowHovered()
@@ -1528,6 +1586,16 @@ CIMGUI_API int igGetFrameCount()
return ImGui::GetFrameCount(); return ImGui::GetFrameCount();
} }
CIMGUI_API struct ImDrawList *igGetOverlayDrawList()
{
return ImGui::GetOverlayDrawList();
}
CIMGUI_API struct ImDrawListSharedData *igGetDrawListSharedData()
{
return ImGui::GetDrawListSharedData();
}
CIMGUI_API CONST char *igGetStyleColorName(ImGuiCol idx) CIMGUI_API CONST char *igGetStyleColorName(ImGuiCol idx)
{ {
return ImGui::GetStyleColorName(idx); return ImGui::GetStyleColorName(idx);
@@ -1621,7 +1689,8 @@ CIMGUI_API void ImGuiIO_ClearInputCharacters()
CIMGUI_API struct ImGuiTextFilter *ImGuiTextFilter_Create(const char *default_filter) CIMGUI_API struct ImGuiTextFilter *ImGuiTextFilter_Create(const char *default_filter)
{ {
ImGuiTextFilter *filter = (ImGuiTextFilter *)ImGui::MemAlloc(sizeof(ImGuiTextFilter)); ImGuiTextFilter *filter = (ImGuiTextFilter *)ImGui::MemAlloc(sizeof(ImGuiTextFilter));
IM_PLACEMENT_NEW(filter) ImGuiTextFilter(default_filter); IM_PLACEMENT_NEW(filter)
ImGuiTextFilter(default_filter);
return filter; return filter;
} }
@@ -1664,7 +1733,8 @@ CIMGUI_API const char* ImGuiTextFilter_GetInputBuf(struct ImGuiTextFilter* filte
CIMGUI_API struct ImGuiTextBuffer *ImGuiTextBuffer_Create() CIMGUI_API struct ImGuiTextBuffer *ImGuiTextBuffer_Create()
{ {
ImGuiTextBuffer *buffer = (ImGuiTextBuffer *)ImGui::MemAlloc(sizeof(ImGuiTextBuffer)); ImGuiTextBuffer *buffer = (ImGuiTextBuffer *)ImGui::MemAlloc(sizeof(ImGuiTextBuffer));
IM_PLACEMENT_NEW(buffer) ImGuiTextBuffer(); IM_PLACEMENT_NEW(buffer)
ImGuiTextBuffer();
return buffer; return buffer;
} }
@@ -1709,26 +1779,29 @@ CIMGUI_API const char* ImGuiTextBuffer_c_str(const struct ImGuiTextBuffer* buffe
return buffer->c_str(); return buffer->c_str();
} }
CIMGUI_API void ImGuiTextBuffer_append(struct ImGuiTextBuffer* buffer, const char* fmt, ...) CIMGUI_API void ImGuiTextBuffer_appendf(struct ImGuiTextBuffer *buffer, const char *fmt, ...)
{ {
va_list args; va_list args;
va_start(args, fmt); va_start(args, fmt);
buffer->appendv(fmt, args); buffer->appendfv(fmt, args);
va_end(args); va_end(args);
} }
CIMGUI_API void ImGuiTextBuffer_appendv(struct ImGuiTextBuffer* buffer, const char* fmt, va_list args) CIMGUI_API void ImGuiTextBuffer_appendfv(struct ImGuiTextBuffer *buffer, const char *fmt, va_list args)
{ {
buffer->appendv(fmt, args); buffer->appendfv(fmt, args);
} }
CIMGUI_API struct ImGuiStorage* ImGuiStorage_Create() { CIMGUI_API struct ImGuiStorage *ImGuiStorage_Create()
{
ImGuiStorage *storage = (ImGuiStorage *)ImGui::MemAlloc(sizeof(ImGuiStorage)); ImGuiStorage *storage = (ImGuiStorage *)ImGui::MemAlloc(sizeof(ImGuiStorage));
IM_PLACEMENT_NEW(storage) ImGuiStorage(); IM_PLACEMENT_NEW(storage)
ImGuiStorage();
return storage; return storage;
} }
CIMGUI_API void ImGuiStorage_Destroy(struct ImGuiStorage* storage) { CIMGUI_API void ImGuiStorage_Destroy(struct ImGuiStorage *storage)
{
storage->~ImGuiStorage(); storage->~ImGuiStorage();
ImGui::MemFree(storage); ImGui::MemFree(storage);
} }

View File

@@ -40,6 +40,7 @@ struct ImFontAtlas;
struct ImDrawCmd; struct ImDrawCmd;
struct ImGuiListClipper; struct ImGuiListClipper;
struct ImGuiTextFilter; struct ImGuiTextFilter;
struct ImGuiPayload;
#if defined __cplusplus #if defined __cplusplus
#define IMFONTGLYPH ImFontGlyph #define IMFONTGLYPH ImFontGlyph
@@ -65,6 +66,11 @@ typedef int ImGuiInputTextFlags;
typedef int ImGuiSelectableFlags; typedef int ImGuiSelectableFlags;
typedef int ImGuiTreeNodeFlags; typedef int ImGuiTreeNodeFlags;
typedef int ImGuiHoveredFlags; typedef int ImGuiHoveredFlags;
typedef int ImGuiComboFlags;
typedef int ImGuiDragDropFlags;
typedef int ImGuiFocusedFlags;
typedef int ImDrawCornerFlags;
typedef int ImDrawListFlags;
typedef int (*ImGuiTextEditCallback)(struct ImGuiTextEditCallbackData *data); typedef int (*ImGuiTextEditCallback)(struct ImGuiTextEditCallbackData *data);
typedef void (*ImGuiSizeConstraintCallback)(struct ImGuiSizeConstraintCallbackData *data); typedef void (*ImGuiSizeConstraintCallback)(struct ImGuiSizeConstraintCallbackData *data);
typedef void (*ImDrawCallback)(CONST struct ImDrawList *parent_list, CONST struct ImDrawCmd *cmd); typedef void (*ImDrawCallback)(CONST struct ImDrawList *parent_list, CONST struct ImDrawCmd *cmd);
@@ -75,15 +81,18 @@ typedef unsigned long long ImU64;
#endif #endif
#ifdef CIMGUI_DEFINE_ENUMS_AND_STRUCTS #ifdef CIMGUI_DEFINE_ENUMS_AND_STRUCTS
struct ImVec2 { struct ImVec2
{
float x, y; float x, y;
}; };
struct ImVec4 { struct ImVec4
{
float x, y, z, w; float x, y, z, w;
}; };
enum { enum
{
ImGuiWindowFlags_NoTitleBar = 1 << 0, ImGuiWindowFlags_NoTitleBar = 1 << 0,
ImGuiWindowFlags_NoResize = 1 << 1, ImGuiWindowFlags_NoResize = 1 << 1,
ImGuiWindowFlags_NoMove = 1 << 2, ImGuiWindowFlags_NoMove = 1 << 2,
@@ -91,7 +100,7 @@ enum {
ImGuiWindowFlags_NoScrollWithMouse = 1 << 4, ImGuiWindowFlags_NoScrollWithMouse = 1 << 4,
ImGuiWindowFlags_NoCollapse = 1 << 5, ImGuiWindowFlags_NoCollapse = 1 << 5,
ImGuiWindowFlags_AlwaysAutoResize = 1 << 6, ImGuiWindowFlags_AlwaysAutoResize = 1 << 6,
ImGuiWindowFlags_ShowBorders = 1 << 7, //ImGuiWindowFlags_ShowBorders = 1 << 7,
ImGuiWindowFlags_NoSavedSettings = 1 << 8, ImGuiWindowFlags_NoSavedSettings = 1 << 8,
ImGuiWindowFlags_NoInputs = 1 << 9, ImGuiWindowFlags_NoInputs = 1 << 9,
ImGuiWindowFlags_MenuBar = 1 << 10, ImGuiWindowFlags_MenuBar = 1 << 10,
@@ -100,10 +109,12 @@ enum {
ImGuiWindowFlags_NoBringToFrontOnFocus = 1 << 13, ImGuiWindowFlags_NoBringToFrontOnFocus = 1 << 13,
ImGuiWindowFlags_AlwaysVerticalScrollbar = 1 << 14, ImGuiWindowFlags_AlwaysVerticalScrollbar = 1 << 14,
ImGuiWindowFlags_AlwaysHorizontalScrollbar = 1 << 15, ImGuiWindowFlags_AlwaysHorizontalScrollbar = 1 << 15,
ImGuiWindowFlags_AlwaysUseWindowPadding = 1 << 16 ImGuiWindowFlags_AlwaysUseWindowPadding = 1 << 16,
ImGuiWindowFlags_ResizeFromAnySide = 1 << 17,
}; };
enum { enum
{
ImGuiInputTextFlags_CharsDecimal = 1 << 0, ImGuiInputTextFlags_CharsDecimal = 1 << 0,
ImGuiInputTextFlags_CharsHexadecimal = 1 << 1, ImGuiInputTextFlags_CharsHexadecimal = 1 << 1,
ImGuiInputTextFlags_CharsUppercase = 1 << 2, ImGuiInputTextFlags_CharsUppercase = 1 << 2,
@@ -119,13 +130,15 @@ enum {
ImGuiInputTextFlags_NoHorizontalScroll = 1 << 12, ImGuiInputTextFlags_NoHorizontalScroll = 1 << 12,
ImGuiInputTextFlags_AlwaysInsertMode = 1 << 13, ImGuiInputTextFlags_AlwaysInsertMode = 1 << 13,
ImGuiInputTextFlags_ReadOnly = 1 << 14, ImGuiInputTextFlags_ReadOnly = 1 << 14,
ImGuiInputTextFlags_Password = 1 << 15 ImGuiInputTextFlags_Password = 1 << 15,
ImGuiInputTextFlags_NoUndoRedo = 1 << 16,
}; };
enum { enum
{
ImGuiTreeNodeFlags_Selected = 1 << 0, ImGuiTreeNodeFlags_Selected = 1 << 0,
ImGuiTreeNodeFlags_Framed = 1 << 1, ImGuiTreeNodeFlags_Framed = 1 << 1,
ImGuiTreeNodeFlags_AllowOverlapMode = 1 << 2, ImGuiTreeNodeFlags_AllowItemOverlap = 1 << 2,
ImGuiTreeNodeFlags_NoTreePushOnOpen = 1 << 3, ImGuiTreeNodeFlags_NoTreePushOnOpen = 1 << 3,
ImGuiTreeNodeFlags_NoAutoOpenOnLog = 1 << 4, ImGuiTreeNodeFlags_NoAutoOpenOnLog = 1 << 4,
ImGuiTreeNodeFlags_DefaultOpen = 1 << 5, ImGuiTreeNodeFlags_DefaultOpen = 1 << 5,
@@ -137,22 +150,56 @@ enum {
ImGuiTreeNodeFlags_CollapsingHeader = ImGuiTreeNodeFlags_Framed | ImGuiTreeNodeFlags_NoAutoOpenOnLog ImGuiTreeNodeFlags_CollapsingHeader = ImGuiTreeNodeFlags_Framed | ImGuiTreeNodeFlags_NoAutoOpenOnLog
}; };
enum { enum
{
ImGuiSelectableFlags_DontClosePopups = 1 << 0, ImGuiSelectableFlags_DontClosePopups = 1 << 0,
ImGuiSelectableFlags_SpanAllColumns = 1 << 1, ImGuiSelectableFlags_SpanAllColumns = 1 << 1,
ImGuiSelectableFlags_AllowDoubleClick = 1 << 2 ImGuiSelectableFlags_AllowDoubleClick = 1 << 2
}; };
enum ImGuiHoveredFlags_ enum ImGuiComboFlags_
{ {
ImGuiHoveredFlags_Default = 0, ImGuiComboFlags_PopupAlignLeft = 1 << 0,
ImGuiHoveredFlags_AllowWhenBlockedByPopup = 1 << 0, ImGuiComboFlags_HeightSmall = 1 << 1,
ImGuiHoveredFlags_AllowWhenBlockedByActiveItem = 1 << 2, ImGuiComboFlags_HeightRegular = 1 << 2,
ImGuiHoveredFlags_AllowWhenOverlapped = 1 << 3, ImGuiComboFlags_HeightLarge = 1 << 3,
ImGuiHoveredFlags_RectOnly = ImGuiHoveredFlags_AllowWhenBlockedByPopup | ImGuiHoveredFlags_AllowWhenBlockedByActiveItem | ImGuiHoveredFlags_AllowWhenOverlapped ImGuiComboFlags_HeightLargest = 1 << 4,
ImGuiComboFlags_HeightMask_ = ImGuiComboFlags_HeightSmall | ImGuiComboFlags_HeightRegular | ImGuiComboFlags_HeightLarge | ImGuiComboFlags_HeightLargest
}; };
enum { enum ImGuiFocusedFlags_
{
ImGuiFocusedFlags_ChildWindows = 1 << 0,
ImGuiFocusedFlags_RootWindow = 1 << 1,
ImGuiFocusedFlags_RootAndChildWindows = ImGuiFocusedFlags_RootWindow | ImGuiFocusedFlags_ChildWindows
};
enum ImGuiHoveredFlags_
{
ImGuiHoveredFlags_ChildWindows = 1 << 0,
ImGuiHoveredFlags_RootWindow = 1 << 1,
ImGuiHoveredFlags_AllowWhenBlockedByPopup = 1 << 2,
//ImGuiHoveredFlags_AllowWhenBlockedByModal = 1 << 3,
ImGuiHoveredFlags_AllowWhenBlockedByActiveItem = 1 << 4,
ImGuiHoveredFlags_AllowWhenOverlapped = 1 << 5,
ImGuiHoveredFlags_RectOnly = ImGuiHoveredFlags_AllowWhenBlockedByPopup | ImGuiHoveredFlags_AllowWhenBlockedByActiveItem | ImGuiHoveredFlags_AllowWhenOverlapped,
ImGuiHoveredFlags_RootAndChildWindows = ImGuiHoveredFlags_RootWindow | ImGuiHoveredFlags_ChildWindows
};
enum ImGuiDragDropFlags_
{
ImGuiDragDropFlags_SourceNoPreviewTooltip = 1 << 0,
ImGuiDragDropFlags_SourceNoDisableHover = 1 << 1,
ImGuiDragDropFlags_SourceNoHoldToOpenOthers = 1 << 2,
ImGuiDragDropFlags_SourceAllowNullID = 1 << 3,
ImGuiDragDropFlags_SourceExtern = 1 << 4,
ImGuiDragDropFlags_AcceptBeforeDelivery = 1 << 10,
ImGuiDragDropFlags_AcceptNoDrawDefaultRect = 1 << 11,
ImGuiDragDropFlags_AcceptPeekOnly = ImGuiDragDropFlags_AcceptBeforeDelivery | ImGuiDragDropFlags_AcceptNoDrawDefaultRect
};
enum
{
ImGuiKey_Tab, ImGuiKey_Tab,
ImGuiKey_LeftArrow, ImGuiKey_LeftArrow,
ImGuiKey_RightArrow, ImGuiKey_RightArrow,
@@ -175,11 +222,12 @@ enum {
ImGuiKey_COUNT ImGuiKey_COUNT
}; };
enum { enum
{
ImGuiCol_Text, ImGuiCol_Text,
ImGuiCol_TextDisabled, ImGuiCol_TextDisabled,
ImGuiCol_WindowBg, ImGuiCol_WindowBg,
ImGuiCol_ChildWindowBg, ImGuiCol_ChildBg,
ImGuiCol_PopupBg, ImGuiCol_PopupBg,
ImGuiCol_Border, ImGuiCol_Border,
ImGuiCol_BorderShadow, ImGuiCol_BorderShadow,
@@ -194,7 +242,6 @@ enum {
ImGuiCol_ScrollbarGrab, ImGuiCol_ScrollbarGrab,
ImGuiCol_ScrollbarGrabHovered, ImGuiCol_ScrollbarGrabHovered,
ImGuiCol_ScrollbarGrabActive, ImGuiCol_ScrollbarGrabActive,
ImGuiCol_ComboBg,
ImGuiCol_CheckMark, ImGuiCol_CheckMark,
ImGuiCol_SliderGrab, ImGuiCol_SliderGrab,
ImGuiCol_SliderGrabActive, ImGuiCol_SliderGrabActive,
@@ -219,17 +266,24 @@ enum {
ImGuiCol_PlotHistogramHovered, ImGuiCol_PlotHistogramHovered,
ImGuiCol_TextSelectedBg, ImGuiCol_TextSelectedBg,
ImGuiCol_ModalWindowDarkening, ImGuiCol_ModalWindowDarkening,
ImGuiCol_DragDropTarget,
ImGuiCol_COUNT ImGuiCol_COUNT
}; };
enum { enum
{
ImGuiStyleVar_Alpha, ImGuiStyleVar_Alpha,
ImGuiStyleVar_WindowPadding, ImGuiStyleVar_WindowPadding,
ImGuiStyleVar_WindowRounding, ImGuiStyleVar_WindowRounding,
ImGuiStyleVar_WindowBorderSize,
ImGuiStyleVar_WindowMinSize, ImGuiStyleVar_WindowMinSize,
ImGuiStyleVar_ChildWindowRounding, ImGuiStyleVar_ChildRounding,
ImGuiStyleVar_ChildBorderSize,
ImGuiStyleVar_PopupRounding,
ImGuiStyleVar_PopupBorderSize,
ImGuiStyleVar_FramePadding, ImGuiStyleVar_FramePadding,
ImGuiStyleVar_FrameRounding, ImGuiStyleVar_FrameRounding,
ImGuiStyleVar_FrameBorderSize,
ImGuiStyleVar_ItemSpacing, ImGuiStyleVar_ItemSpacing,
ImGuiStyleVar_ItemInnerSpacing, ImGuiStyleVar_ItemInnerSpacing,
ImGuiStyleVar_IndentSpacing, ImGuiStyleVar_IndentSpacing,
@@ -238,7 +292,8 @@ enum {
ImGuiStyleVar_Count_ ImGuiStyleVar_Count_
}; };
enum { enum
{
ImGuiColorEditFlags_NoAlpha = 1 << 1, ImGuiColorEditFlags_NoAlpha = 1 << 1,
ImGuiColorEditFlags_NoPicker = 1 << 2, ImGuiColorEditFlags_NoPicker = 1 << 2,
ImGuiColorEditFlags_NoOptions = 1 << 3, ImGuiColorEditFlags_NoOptions = 1 << 3,
@@ -260,7 +315,8 @@ enum {
ImGuiColorEditFlags_PickerHueWheel = 1 << 19 ImGuiColorEditFlags_PickerHueWheel = 1 << 19
}; };
enum { enum
{
ImGuiMouseCursor_None = -1, ImGuiMouseCursor_None = -1,
ImGuiMouseCursor_Arrow = 0, ImGuiMouseCursor_Arrow = 0,
ImGuiMouseCursor_TextInput, ImGuiMouseCursor_TextInput,
@@ -272,22 +328,48 @@ enum {
ImGuiMouseCursor_Count_ ImGuiMouseCursor_Count_
}; };
enum { enum
{
ImGuiCond_Always = 1 << 0, ImGuiCond_Always = 1 << 0,
ImGuiCond_Once = 1 << 1, ImGuiCond_Once = 1 << 1,
ImGuiCond_FirstUseEver = 1 << 2, ImGuiCond_FirstUseEver = 1 << 2,
ImGuiCond_Appearing = 1 << 3 ImGuiCond_Appearing = 1 << 3
}; };
struct ImGuiStyle { enum ImDrawCornerFlags_
{
ImDrawCornerFlags_TopLeft = 1 << 0,
ImDrawCornerFlags_TopRight = 1 << 1,
ImDrawCornerFlags_BotLeft = 1 << 2,
ImDrawCornerFlags_BotRight = 1 << 3,
ImDrawCornerFlags_Top = ImDrawCornerFlags_TopLeft | ImDrawCornerFlags_TopRight,
ImDrawCornerFlags_Bot = ImDrawCornerFlags_BotLeft | ImDrawCornerFlags_BotRight,
ImDrawCornerFlags_Left = ImDrawCornerFlags_TopLeft | ImDrawCornerFlags_BotLeft,
ImDrawCornerFlags_Right = ImDrawCornerFlags_TopRight | ImDrawCornerFlags_BotRight,
ImDrawCornerFlags_All = 0xF
};
enum ImDrawListFlags_
{
ImDrawListFlags_AntiAliasedLines = 1 << 0,
ImDrawListFlags_AntiAliasedFill = 1 << 1
};
struct ImGuiStyle
{
float Alpha; float Alpha;
struct ImVec2 WindowPadding; struct ImVec2 WindowPadding;
struct ImVec2 WindowMinSize;
float WindowRounding; float WindowRounding;
float WindowBorderSize;
ImVec2 WindowMinSize;
struct ImVec2 WindowTitleAlign; struct ImVec2 WindowTitleAlign;
float ChildWindowRounding; float ChildRounding;
float ChildBorderSize;
float PopupRounding;
float PopupBorderSize;
struct ImVec2 FramePadding; struct ImVec2 FramePadding;
float FrameRounding; float FrameRounding;
float FrameBorderSize;
struct ImVec2 ItemSpacing; struct ImVec2 ItemSpacing;
struct ImVec2 ItemInnerSpacing; struct ImVec2 ItemInnerSpacing;
struct ImVec2 TouchExtraPadding; struct ImVec2 TouchExtraPadding;
@@ -301,17 +383,18 @@ struct ImGuiStyle {
struct ImVec2 DisplayWindowPadding; struct ImVec2 DisplayWindowPadding;
struct ImVec2 DisplaySafeAreaPadding; struct ImVec2 DisplaySafeAreaPadding;
bool AntiAliasedLines; bool AntiAliasedLines;
bool AntiAliasedShapes; bool AntiAliasedFill;
float CurveTessellationTol; float CurveTessellationTol;
struct ImVec4 Colors[ImGuiCol_COUNT]; struct ImVec4 Colors[ImGuiCol_COUNT];
}; };
struct ImGuiIO { struct ImGuiIO
{
struct ImVec2 DisplaySize; struct ImVec2 DisplaySize;
float DeltaTime; float DeltaTime;
float IniSavingRate; float IniSavingRate;
const char* IniFilename; CONST char *IniFilename;
const char* LogFilename; CONST char *LogFilename;
float MouseDoubleClickTime; float MouseDoubleClickTime;
float MouseDoubleClickMaxDist; float MouseDoubleClickMaxDist;
float MouseDragThreshold; float MouseDragThreshold;
@@ -326,10 +409,11 @@ struct ImGuiIO {
struct ImVec2 DisplayFramebufferScale; struct ImVec2 DisplayFramebufferScale;
struct ImVec2 DisplayVisibleMin; struct ImVec2 DisplayVisibleMin;
struct ImVec2 DisplayVisibleMax; struct ImVec2 DisplayVisibleMax;
bool OSXBehaviors; bool OptMacOSXBehaviors;
bool OptCursorBlink;
void (*RenderDrawListsFn)(struct ImDrawData *data); void (*RenderDrawListsFn)(struct ImDrawData *data);
const char* (*GetClipboardTextFn)(void* user_data); CONST char *(*GetClipboardTextFn)(void *user_data);
void (*SetClipboardTextFn)(void* user_data, const char* text); void (*SetClipboardTextFn)(void *user_data, CONST char *text);
void *ClipboardUserData; void *ClipboardUserData;
void *(*MemAllocFn)(size_t sz); void *(*MemAllocFn)(size_t sz);
void (*MemFreeFn)(void *ptr); void (*MemFreeFn)(void *ptr);
@@ -363,12 +447,14 @@ struct ImGuiIO {
bool MouseDownOwned[5]; bool MouseDownOwned[5];
float MouseDownDuration[5]; float MouseDownDuration[5];
float MouseDownDurationPrev[5]; float MouseDownDurationPrev[5];
ImVec2 MouseDragMaxDistanceAbs[5];
float MouseDragMaxDistanceSqr[5]; float MouseDragMaxDistanceSqr[5];
float KeysDownDuration[512]; float KeysDownDuration[512];
float KeysDownDurationPrev[512]; float KeysDownDurationPrev[512];
}; };
struct ImGuiTextEditCallbackData { struct ImGuiTextEditCallbackData
{
ImGuiInputTextFlags EventFlag; ImGuiInputTextFlags EventFlag;
ImGuiInputTextFlags Flags; ImGuiInputTextFlags Flags;
void *UserData; void *UserData;
@@ -384,14 +470,16 @@ struct ImGuiTextEditCallbackData {
int SelectionEnd; int SelectionEnd;
}; };
struct ImGuiSizeConstraintCallbackData { struct ImGuiSizeConstraintCallbackData
{
void *UserData; void *UserData;
struct ImVec2 Pos; struct ImVec2 Pos;
struct ImVec2 CurrentSize; struct ImVec2 CurrentSize;
struct ImVec2 DesiredSize; struct ImVec2 DesiredSize;
}; };
struct ImDrawCmd { struct ImDrawCmd
{
unsigned int ElemCount; unsigned int ElemCount;
struct ImVec4 ClipRect; struct ImVec4 ClipRect;
ImTextureID TextureId; ImTextureID TextureId;
@@ -399,7 +487,8 @@ struct ImDrawCmd {
void *UserCallbackData; void *UserCallbackData;
}; };
struct ImDrawData { struct ImDrawData
{
bool Valid; bool Valid;
struct ImDrawList **CmdLists; struct ImDrawList **CmdLists;
int CmdListsCount; int CmdListsCount;
@@ -414,7 +503,8 @@ struct ImDrawVert
ImU32 col; ImU32 col;
}; };
struct ImFontConfig { struct ImFontConfig
{
void *FontData; void *FontData;
int FontDataSize; int FontDataSize;
bool FontDataOwnedByAtlas; bool FontDataOwnedByAtlas;
@@ -424,7 +514,7 @@ struct ImFontConfig {
bool PixelSnapH; bool PixelSnapH;
struct ImVec2 GlyphExtraSpacing; struct ImVec2 GlyphExtraSpacing;
struct ImVec2 GlyphOffset; struct ImVec2 GlyphOffset;
const ImWchar* GlyphRanges; CONST ImWchar *GlyphRanges;
bool MergeMode; bool MergeMode;
char Name[32]; char Name[32];
struct ImFont *DstFont; struct ImFont *DstFont;
@@ -436,6 +526,19 @@ struct ImGuiListClipper
float ItemsHeight; float ItemsHeight;
int ItemsCount, StepNo, DisplayStart, DisplayEnd; int ItemsCount, StepNo, DisplayStart, DisplayEnd;
}; };
struct ImGuiPayload
{
CONST void *Data;
int DataSize;
ImGuiID SourceId;
ImGuiID SourceParentId;
int DataFrameCount;
char DataType[8 + 1];
bool Preview;
bool Delivery;
};
#endif // CIMGUI_DEFINE_ENUMS_AND_STRUCTS #endif // CIMGUI_DEFINE_ENUMS_AND_STRUCTS
// Main // Main
@@ -444,12 +547,15 @@ CIMGUI_API struct ImGuiStyle* igGetStyle();
CIMGUI_API struct ImDrawData *igGetDrawData(); CIMGUI_API struct ImDrawData *igGetDrawData();
CIMGUI_API void igNewFrame(); CIMGUI_API void igNewFrame();
CIMGUI_API void igRender(); CIMGUI_API void igRender();
CIMGUI_API void igEndFrame();
CIMGUI_API void igShutdown(); CIMGUI_API void igShutdown();
// Demo/Debug/Info // Demo/Debug/Info
CIMGUI_API void igShowTestWindow(bool* opened); CIMGUI_API void igShowDemoWindow(bool *opened);
CIMGUI_API void igShowMetricsWindow(bool *opened); CIMGUI_API void igShowMetricsWindow(bool *opened);
CIMGUI_API void igShowStyleEditor(struct ImGuiStyle *ref); CIMGUI_API void igShowStyleEditor(struct ImGuiStyle *ref);
CIMGUI_API void igShowStyleSelector(CONST char *label);
CIMGUI_API void igShowFontSelector(CONST char *label);
CIMGUI_API void igShowUserGuide(); CIMGUI_API void igShowUserGuide();
// Window // Window
@@ -479,7 +585,6 @@ CIMGUI_API void igSetNextWindowPos(CONST struct ImVec2 pos, ImGuiCon
CIMGUI_API void igSetNextWindowSize(CONST struct ImVec2 size, ImGuiCond cond); CIMGUI_API void igSetNextWindowSize(CONST struct ImVec2 size, ImGuiCond cond);
CIMGUI_API void igSetNextWindowSizeConstraints(CONST struct ImVec2 size_min, CONST struct ImVec2 size_max, ImGuiSizeConstraintCallback custom_callback, void *custom_callback_data); CIMGUI_API void igSetNextWindowSizeConstraints(CONST struct ImVec2 size_min, CONST struct ImVec2 size_max, ImGuiSizeConstraintCallback custom_callback, void *custom_callback_data);
CIMGUI_API void igSetNextWindowContentSize(CONST struct ImVec2 size); CIMGUI_API void igSetNextWindowContentSize(CONST struct ImVec2 size);
CIMGUI_API void igSetNextWindowContentWidth(float width);
CIMGUI_API void igSetNextWindowCollapsed(bool collapsed, ImGuiCond cond); CIMGUI_API void igSetNextWindowCollapsed(bool collapsed, ImGuiCond cond);
CIMGUI_API void igSetNextWindowFocus(); CIMGUI_API void igSetNextWindowFocus();
CIMGUI_API void igSetWindowPos(CONST struct ImVec2 pos, ImGuiCond cond); CIMGUI_API void igSetWindowPos(CONST struct ImVec2 pos, ImGuiCond cond);
@@ -499,7 +604,6 @@ CIMGUI_API void igSetScrollX(float scroll_x);
CIMGUI_API void igSetScrollY(float scroll_y); CIMGUI_API void igSetScrollY(float scroll_y);
CIMGUI_API void igSetScrollHere(float center_y_ratio); CIMGUI_API void igSetScrollHere(float center_y_ratio);
CIMGUI_API void igSetScrollFromPosY(float pos_y, float center_y_ratio); CIMGUI_API void igSetScrollFromPosY(float pos_y, float center_y_ratio);
CIMGUI_API void igSetKeyboardFocusHere(int offset);
CIMGUI_API void igSetStateStorage(struct ImGuiStorage *tree); CIMGUI_API void igSetStateStorage(struct ImGuiStorage *tree);
CIMGUI_API struct ImGuiStorage *igGetStateStorage(); CIMGUI_API struct ImGuiStorage *igGetStateStorage();
@@ -520,7 +624,6 @@ CIMGUI_API ImU32 igGetColorU32(ImGuiCol idx, float alpha_mul);
CIMGUI_API ImU32 igGetColorU32Vec(CONST struct ImVec4 *col); CIMGUI_API ImU32 igGetColorU32Vec(CONST struct ImVec4 *col);
CIMGUI_API ImU32 igGetColorU32U32(ImU32 col); CIMGUI_API ImU32 igGetColorU32U32(ImU32 col);
// Parameters stacks (current window) // Parameters stacks (current window)
CIMGUI_API void igPushItemWidth(float item_width); CIMGUI_API void igPushItemWidth(float item_width);
CIMGUI_API void igPopItemWidth(); CIMGUI_API void igPopItemWidth();
@@ -554,7 +657,8 @@ CIMGUI_API void igSetCursorScreenPos(CONST struct ImVec2 pos);
CIMGUI_API void igAlignTextToFramePadding(); CIMGUI_API void igAlignTextToFramePadding();
CIMGUI_API float igGetTextLineHeight(); CIMGUI_API float igGetTextLineHeight();
CIMGUI_API float igGetTextLineHeightWithSpacing(); CIMGUI_API float igGetTextLineHeightWithSpacing();
CIMGUI_API float igGetItemsLineHeightWithSpacing(); CIMGUI_API float igGetFrameHeight();
CIMGUI_API float igGetFrameHeightWithSpacing();
//Columns //Columns
CIMGUI_API void igColumns(int count, CONST char *id, bool border); CIMGUI_API void igColumns(int count, CONST char *id, bool border);
@@ -604,15 +708,18 @@ CIMGUI_API bool igCheckbox(CONST char* label, bool* v);
CIMGUI_API bool igCheckboxFlags(CONST char *label, unsigned int *flags, unsigned int flags_value); CIMGUI_API bool igCheckboxFlags(CONST char *label, unsigned int *flags, unsigned int flags_value);
CIMGUI_API bool igRadioButtonBool(CONST char *label, bool active); CIMGUI_API bool igRadioButtonBool(CONST char *label, bool active);
CIMGUI_API bool igRadioButton(CONST char *label, int *v, int v_button); CIMGUI_API bool igRadioButton(CONST char *label, int *v, int v_button);
CIMGUI_API bool igCombo(CONST char* label, int* current_item, CONST char* CONST* items, int items_count, int height_in_items);
CIMGUI_API bool igCombo2(CONST char* label, int* current_item, CONST char* items_separated_by_zeros, int height_in_items);
CIMGUI_API bool igCombo3(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);
CIMGUI_API void igPlotLines(CONST char *label, CONST float *values, int values_count, int values_offset, CONST char *overlay_text, float scale_min, float scale_max, struct ImVec2 graph_size, int stride); CIMGUI_API void igPlotLines(CONST char *label, CONST float *values, int values_count, int values_offset, CONST char *overlay_text, float scale_min, float scale_max, struct ImVec2 graph_size, int stride);
CIMGUI_API void igPlotLines2(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, struct ImVec2 graph_size); CIMGUI_API void igPlotLines2(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, struct ImVec2 graph_size);
CIMGUI_API void igPlotHistogram(CONST char *label, CONST float *values, int values_count, int values_offset, CONST char *overlay_text, float scale_min, float scale_max, struct ImVec2 graph_size, int stride); CIMGUI_API void igPlotHistogram(CONST char *label, CONST float *values, int values_count, int values_offset, CONST char *overlay_text, float scale_min, float scale_max, struct ImVec2 graph_size, int stride);
CIMGUI_API void igPlotHistogram2(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, struct ImVec2 graph_size); CIMGUI_API void igPlotHistogram2(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, struct ImVec2 graph_size);
CIMGUI_API void igProgressBar(float fraction, CONST struct ImVec2 *size_arg, CONST char *overlay); CIMGUI_API void igProgressBar(float fraction, CONST struct ImVec2 *size_arg, CONST char *overlay);
CIMGUI_API bool igBeginCombo(CONST char *label, CONST char *preview_value, ImGuiComboFlags flags);
CIMGUI_API void igEndCombo();
CIMGUI_API bool igCombo(CONST char *label, int *current_item, CONST char *CONST *items, int items_count, int popup_max_height_in_items);
CIMGUI_API bool igCombo2(CONST char *label, int *current_item, CONST char *items_separated_by_zeros, int popup_max_height_in_items);
CIMGUI_API bool igCombo3(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);
// Widgets: Drags (tip: ctrl+click on a drag box to input with keyboard. manually input values aren't clamped, can go off-bounds) // Widgets: Drags (tip: ctrl+click on a drag box to input with keyboard. manually input values aren't clamped, can go off-bounds)
// For all the Float2/Float3/Float4/Int2/Int3/Int4 versions of every functions, note that a 'float v[X]' function argument is the same as 'float* v', the array syntax is just a way to document the number of elements that are expected to be accessible. You can pass address of your first element out of a contiguous set, e.g. &myvector.x // For all the Float2/Float3/Float4/Int2/Int3/Int4 versions of every functions, note that a 'float v[X]' function argument is the same as 'float* v', the array syntax is just a way to document the number of elements that are expected to be accessible. You can pass address of your first element out of a contiguous set, e.g. &myvector.x
CIMGUI_API bool igDragFloat(CONST char *label, float *v, float v_speed, float v_min, float v_max, CONST char *display_format, float power); // If v_max >= v_max we have no bound CIMGUI_API bool igDragFloat(CONST char *label, float *v, float v_speed, float v_min, float v_max, CONST char *display_format, float power); // If v_max >= v_max we have no bound
@@ -713,7 +820,7 @@ CIMGUI_API bool igMenuItemPtr(CONST char* label, CONST char* shortcu
// Popup // Popup
CIMGUI_API void igOpenPopup(CONST char *str_id); CIMGUI_API void igOpenPopup(CONST char *str_id);
CIMGUI_API bool igOpenPopupOnItemClick(const char* str_id, int mouse_button); CIMGUI_API bool igOpenPopupOnItemClick(CONST char *str_id, int mouse_button);
CIMGUI_API bool igBeginPopup(CONST char *str_id); CIMGUI_API bool igBeginPopup(CONST char *str_id);
CIMGUI_API bool igBeginPopupModal(CONST char *name, bool *p_open, ImGuiWindowFlags extra_flags); CIMGUI_API bool igBeginPopupModal(CONST char *name, bool *p_open, ImGuiWindowFlags extra_flags);
CIMGUI_API bool igBeginPopupContextItem(CONST char *str_id, int mouse_button); CIMGUI_API bool igBeginPopupContextItem(CONST char *str_id, int mouse_button);
@@ -731,12 +838,24 @@ CIMGUI_API void igLogFinish();
CIMGUI_API void igLogButtons(); CIMGUI_API void igLogButtons();
CIMGUI_API void igLogText(CONST char *fmt, ...); CIMGUI_API void igLogText(CONST char *fmt, ...);
CIMGUI_API bool igBeginDragDropSource(ImGuiDragDropFlags flags, int mouse_button);
CIMGUI_API bool igSetDragDropPayload(CONST char *type, CONST void *data, size_t size, ImGuiCond cond);
CIMGUI_API void igEndDragDropSource();
CIMGUI_API bool igBeginDragDropTarget();
CIMGUI_API CONST struct ImGuiPayload *igAcceptDragDropPayload(CONST char *type, ImGuiDragDropFlags flags);
CIMGUI_API void igEndDragDropTarget();
// Clipping // Clipping
CIMGUI_API void igPushClipRect(CONST struct ImVec2 clip_rect_min, CONST struct ImVec2 clip_rect_max, bool intersect_with_current_clip_rect); CIMGUI_API void igPushClipRect(CONST struct ImVec2 clip_rect_min, CONST struct ImVec2 clip_rect_max, bool intersect_with_current_clip_rect);
CIMGUI_API void igPopClipRect(); CIMGUI_API void igPopClipRect();
// Styles // Styles
CIMGUI_API void igStyleColorsClassic(struct ImGuiStyle *dst); CIMGUI_API void igStyleColorsClassic(struct ImGuiStyle *dst);
CIMGUI_API void igStyleColorsDark(struct ImGuiStyle *dst);
CIMGUI_API void igStyleColorsLight(struct ImGuiStyle *dst);
CIMGUI_API void igSetItemDefaultFocus();
CIMGUI_API void igSetKeyboardFocusHere(int offset);
// Utilities // Utilities
CIMGUI_API bool igIsItemHovered(ImGuiHoveredFlags flags); CIMGUI_API bool igIsItemHovered(ImGuiHoveredFlags flags);
@@ -749,16 +868,18 @@ CIMGUI_API void igGetItemRectMin(struct ImVec2* pOut);
CIMGUI_API void igGetItemRectMax(struct ImVec2 *pOut); CIMGUI_API void igGetItemRectMax(struct ImVec2 *pOut);
CIMGUI_API void igGetItemRectSize(struct ImVec2 *pOut); CIMGUI_API void igGetItemRectSize(struct ImVec2 *pOut);
CIMGUI_API void igSetItemAllowOverlap(); CIMGUI_API void igSetItemAllowOverlap();
CIMGUI_API bool igIsWindowFocused(); CIMGUI_API bool igIsWindowFocused(ImGuiFocusedFlags flags);
CIMGUI_API bool igIsWindowHovered(ImGuiHoveredFlags falgs); CIMGUI_API bool igIsWindowHovered(ImGuiHoveredFlags falgs);
CIMGUI_API bool igIsRootWindowFocused(); CIMGUI_API bool igIsAnyWindowFocused();
CIMGUI_API bool igIsRootWindowOrAnyChildFocused();
CIMGUI_API bool igIsRootWindowOrAnyChildHovered(ImGuiHoveredFlags flags);
CIMGUI_API bool igIsAnyWindowHovered(); CIMGUI_API bool igIsAnyWindowHovered();
CIMGUI_API bool igIsRectVisible(CONST struct ImVec2 item_size); CIMGUI_API bool igIsRectVisible(CONST struct ImVec2 item_size);
CIMGUI_API bool igIsRectVisible2(CONST struct ImVec2 *rect_min, CONST struct ImVec2 *rect_max); CIMGUI_API bool igIsRectVisible2(CONST struct ImVec2 *rect_min, CONST struct ImVec2 *rect_max);
CIMGUI_API float igGetTime(); CIMGUI_API float igGetTime();
CIMGUI_API int igGetFrameCount(); CIMGUI_API int igGetFrameCount();
CIMGUI_API struct ImDrawList *igGetOverlayDrawList();
CIMGUI_API struct ImDrawListSharedData *igGetDrawListSharedData();
CIMGUI_API CONST char *igGetStyleColorName(ImGuiCol idx); CIMGUI_API CONST char *igGetStyleColorName(ImGuiCol idx);
CIMGUI_API void igCalcItemRectClosestPoint(struct ImVec2 *pOut, CONST struct ImVec2 pos, bool on_edge, float outward); CIMGUI_API void igCalcItemRectClosestPoint(struct ImVec2 *pOut, CONST struct ImVec2 pos, bool on_edge, float outward);
CIMGUI_API void igCalcTextSize(struct ImVec2 *pOut, CONST char *text, CONST char *text_end, bool hide_text_after_double_hash, float wrap_width); CIMGUI_API void igCalcTextSize(struct ImVec2 *pOut, CONST char *text, CONST char *text_end, bool hide_text_after_double_hash, float wrap_width);
@@ -784,7 +905,8 @@ CIMGUI_API bool igIsMouseDoubleClicked(int button);
CIMGUI_API bool igIsMouseReleased(int button); CIMGUI_API bool igIsMouseReleased(int button);
CIMGUI_API bool igIsMouseDragging(int button, float lock_threshold); CIMGUI_API bool igIsMouseDragging(int button, float lock_threshold);
CIMGUI_API bool igIsMouseHoveringRect(CONST struct ImVec2 r_min, CONST struct ImVec2 r_max, bool clip); CIMGUI_API bool igIsMouseHoveringRect(CONST struct ImVec2 r_min, CONST struct ImVec2 r_max, bool clip);
CIMGUI_API bool igIsMousePosValid(CONST struct ImVec2* mouse_pos);; CIMGUI_API bool igIsMousePosValid(CONST struct ImVec2 *mouse_pos);
;
CIMGUI_API void igGetMousePos(struct ImVec2 *pOut); CIMGUI_API void igGetMousePos(struct ImVec2 *pOut);
CIMGUI_API void igGetMousePosOnOpeningCurrentPopup(struct ImVec2 *pOut); CIMGUI_API void igGetMousePosOnOpeningCurrentPopup(struct ImVec2 *pOut);
CIMGUI_API void igGetMouseDragDelta(struct ImVec2 *pOut, int button, float lock_threshold); CIMGUI_API void igGetMouseDragDelta(struct ImVec2 *pOut, int button, float lock_threshold);
@@ -815,27 +937,27 @@ CIMGUI_API void ImGuiIO_AddInputCharactersUTF8(CONST char* u
CIMGUI_API void ImGuiIO_ClearInputCharacters(); CIMGUI_API void ImGuiIO_ClearInputCharacters();
// ImGuiTextFilter // ImGuiTextFilter
CIMGUI_API struct ImGuiTextFilter* ImGuiTextFilter_Create(const char* default_filter); CIMGUI_API struct ImGuiTextFilter *ImGuiTextFilter_Create(CONST char *default_filter);
CIMGUI_API void ImGuiTextFilter_Destroy(struct ImGuiTextFilter *filter); CIMGUI_API void ImGuiTextFilter_Destroy(struct ImGuiTextFilter *filter);
CIMGUI_API void ImGuiTextFilter_Clear(struct ImGuiTextFilter *filter); CIMGUI_API void ImGuiTextFilter_Clear(struct ImGuiTextFilter *filter);
CIMGUI_API bool ImGuiTextFilter_Draw(struct ImGuiTextFilter* filter, const char* label, float width); CIMGUI_API bool ImGuiTextFilter_Draw(struct ImGuiTextFilter *filter, CONST char *label, float width);
CIMGUI_API bool ImGuiTextFilter_PassFilter(const struct ImGuiTextFilter* filter, const char* text, const char* text_end); CIMGUI_API bool ImGuiTextFilter_PassFilter(CONST struct ImGuiTextFilter *filter, CONST char *text, CONST char *text_end);
CIMGUI_API bool ImGuiTextFilter_IsActive(const struct ImGuiTextFilter* filter); CIMGUI_API bool ImGuiTextFilter_IsActive(CONST struct ImGuiTextFilter *filter);
CIMGUI_API void ImGuiTextFilter_Build(struct ImGuiTextFilter *filter); CIMGUI_API void ImGuiTextFilter_Build(struct ImGuiTextFilter *filter);
CIMGUI_API const char* ImGuiTextFilter_GetInputBuf(struct ImGuiTextFilter* filter); CIMGUI_API CONST char *ImGuiTextFilter_GetInputBuf(struct ImGuiTextFilter *filter);
// ImGuiTextBuffer // ImGuiTextBuffer
CIMGUI_API struct ImGuiTextBuffer *ImGuiTextBuffer_Create(); CIMGUI_API struct ImGuiTextBuffer *ImGuiTextBuffer_Create();
CIMGUI_API void ImGuiTextBuffer_Destroy(struct ImGuiTextBuffer *buffer); CIMGUI_API void ImGuiTextBuffer_Destroy(struct ImGuiTextBuffer *buffer);
CIMGUI_API char ImGuiTextBuffer_index(struct ImGuiTextBuffer *buffer, int i); CIMGUI_API char ImGuiTextBuffer_index(struct ImGuiTextBuffer *buffer, int i);
CIMGUI_API const char* ImGuiTextBuffer_begin(const struct ImGuiTextBuffer* buffer); CIMGUI_API CONST char *ImGuiTextBuffer_begin(CONST struct ImGuiTextBuffer *buffer);
CIMGUI_API const char* ImGuiTextBuffer_end(const struct ImGuiTextBuffer* buffer); CIMGUI_API CONST char *ImGuiTextBuffer_end(CONST struct ImGuiTextBuffer *buffer);
CIMGUI_API int ImGuiTextBuffer_size(const struct ImGuiTextBuffer* buffer); CIMGUI_API int ImGuiTextBuffer_size(CONST struct ImGuiTextBuffer *buffer);
CIMGUI_API bool ImGuiTextBuffer_empty(struct ImGuiTextBuffer *buffer); CIMGUI_API bool ImGuiTextBuffer_empty(struct ImGuiTextBuffer *buffer);
CIMGUI_API void ImGuiTextBuffer_clear(struct ImGuiTextBuffer *buffer); CIMGUI_API void ImGuiTextBuffer_clear(struct ImGuiTextBuffer *buffer);
CIMGUI_API const char* ImGuiTextBuffer_c_str(const struct ImGuiTextBuffer* buffer); CIMGUI_API CONST char *ImGuiTextBuffer_c_str(CONST struct ImGuiTextBuffer *buffer);
CIMGUI_API void ImGuiTextBuffer_append(struct ImGuiTextBuffer* buffer, const char* fmt, ...); CIMGUI_API void ImGuiTextBuffer_appendf(struct ImGuiTextBuffer *buffer, CONST char *fmt, ...);
CIMGUI_API void ImGuiTextBuffer_appendv(struct ImGuiTextBuffer* buffer, const char* fmt, va_list args); CIMGUI_API void ImGuiTextBuffer_appendfv(struct ImGuiTextBuffer *buffer, CONST char *fmt, va_list args);
// ImGuiStorage // ImGuiStorage
CIMGUI_API struct ImGuiStorage *ImGuiStorage_Create(); CIMGUI_API struct ImGuiStorage *ImGuiStorage_Create();
@@ -856,7 +978,7 @@ CIMGUI_API void ImGuiStorage_SetAllInt(struct ImGuiStorage*
// ImGuiTextEditCallbackData // ImGuiTextEditCallbackData
CIMGUI_API void ImGuiTextEditCallbackData_DeleteChars(struct ImGuiTextEditCallbackData *data, int pos, int bytes_count); CIMGUI_API void ImGuiTextEditCallbackData_DeleteChars(struct ImGuiTextEditCallbackData *data, int pos, int bytes_count);
CIMGUI_API void ImGuiTextEditCallbackData_InsertChars(struct ImGuiTextEditCallbackData* data, int pos, const char* text, const char* text_end); CIMGUI_API void ImGuiTextEditCallbackData_InsertChars(struct ImGuiTextEditCallbackData *data, int pos, CONST char *text, CONST char *text_end);
CIMGUI_API bool ImGuiTextEditCallbackData_HasSelection(struct ImGuiTextEditCallbackData *data); CIMGUI_API bool ImGuiTextEditCallbackData_HasSelection(struct ImGuiTextEditCallbackData *data);
// ImGuiListClipper // ImGuiListClipper
@@ -899,8 +1021,9 @@ CIMGUI_API void ImDrawList_AddText(struct ImDrawList* list, CONST st
CIMGUI_API void ImDrawList_AddTextExt(struct ImDrawList *list, CONST struct ImFont *font, float font_size, CONST struct ImVec2 pos, ImU32 col, CONST char *text_begin, CONST char *text_end, float wrap_width, CONST struct ImVec4 *cpu_fine_clip_rect); CIMGUI_API void ImDrawList_AddTextExt(struct ImDrawList *list, CONST struct ImFont *font, float font_size, CONST struct ImVec2 pos, ImU32 col, CONST char *text_begin, CONST char *text_end, float wrap_width, CONST struct ImVec4 *cpu_fine_clip_rect);
CIMGUI_API void ImDrawList_AddImage(struct ImDrawList *list, ImTextureID user_texture_id, CONST struct ImVec2 a, CONST struct ImVec2 b, CONST struct ImVec2 uv_a, CONST struct ImVec2 uv_b, ImU32 col); CIMGUI_API void ImDrawList_AddImage(struct ImDrawList *list, ImTextureID user_texture_id, CONST struct ImVec2 a, CONST struct ImVec2 b, CONST struct ImVec2 uv_a, CONST struct ImVec2 uv_b, ImU32 col);
CIMGUI_API void ImDrawList_AddImageQuad(struct ImDrawList *list, ImTextureID user_texture_id, CONST struct ImVec2 a, CONST struct ImVec2 b, CONST struct ImVec2 c, CONST struct ImVec2 d, CONST struct ImVec2 uv_a, CONST struct ImVec2 uv_b, CONST struct ImVec2 uv_c, CONST struct ImVec2 uv_d, ImU32 col); CIMGUI_API void ImDrawList_AddImageQuad(struct ImDrawList *list, ImTextureID user_texture_id, CONST struct ImVec2 a, CONST struct ImVec2 b, CONST struct ImVec2 c, CONST struct ImVec2 d, CONST struct ImVec2 uv_a, CONST struct ImVec2 uv_b, CONST struct ImVec2 uv_c, CONST struct ImVec2 uv_d, ImU32 col);
CIMGUI_API void ImDrawList_AddPolyline(struct ImDrawList* list, CONST struct ImVec2* points, CONST int num_points, ImU32 col, bool closed, float thickness, bool anti_aliased); CIMGUI_API void ImDrawList_AddImageRounded(struct ImDrawList *list, ImTextureID user_texture_id, CONST struct ImVec2 a, CONST struct ImVec2 b, CONST struct ImVec2 uv_a, CONST struct ImVec2 uv_b, ImU32 col, float rounding, int rounding_corners);
CIMGUI_API void ImDrawList_AddConvexPolyFilled(struct ImDrawList* list, CONST struct ImVec2* points, CONST int num_points, ImU32 col, bool anti_aliased); CIMGUI_API void ImDrawList_AddPolyline(struct ImDrawList *list, CONST struct ImVec2 *points, CONST int num_points, ImU32 col, bool closed, float thickness);
CIMGUI_API void ImDrawList_AddConvexPolyFilled(struct ImDrawList *list, CONST struct ImVec2 *points, CONST int num_points, ImU32 col);
CIMGUI_API void ImDrawList_AddBezierCurve(struct ImDrawList *list, CONST struct ImVec2 pos0, CONST struct ImVec2 cp0, CONST struct ImVec2 cp1, CONST struct ImVec2 pos1, ImU32 col, float thickness, int num_segments); CIMGUI_API void ImDrawList_AddBezierCurve(struct ImDrawList *list, CONST struct ImVec2 pos0, CONST struct ImVec2 cp0, CONST struct ImVec2 cp1, CONST struct ImVec2 pos1, ImU32 col, float thickness, int num_segments);
// Stateful path API, add points then finish with PathFill() or PathStroke() // Stateful path API, add points then finish with PathFill() or PathStroke()
@@ -936,7 +1059,7 @@ CIMGUI_API void ImDrawList_UpdateTextureID(struct ImDrawList* list);
// ImDrawData // ImDrawData
CIMGUI_API void ImDrawData_DeIndexAllBuffers(struct ImDrawData *drawData); CIMGUI_API void ImDrawData_DeIndexAllBuffers(struct ImDrawData *drawData);
CIMGUI_API void ImDrawData_ScaleClipRects(struct ImDrawData* drawData, const struct ImVec2 sc); CIMGUI_API void ImDrawData_ScaleClipRects(struct ImDrawData *drawData, CONST struct ImVec2 sc);
// ImFontAtlas // ImFontAtlas
CIMGUI_API void ImFontAtlas_GetTexDataAsRGBA32(struct ImFontAtlas *atlas, unsigned char **out_pixels, int *out_width, int *out_height, int *out_bytes_per_pixel); CIMGUI_API void ImFontAtlas_GetTexDataAsRGBA32(struct ImFontAtlas *atlas, unsigned char **out_pixels, int *out_width, int *out_height, int *out_bytes_per_pixel);
@@ -973,37 +1096,38 @@ CIMGUI_API int ImFontAtlas_Fonts_size(struct ImFontAtlas* atlas);
CIMGUI_API struct ImFont *ImFontAtlas_Fonts_index(struct ImFontAtlas *atlas, int index); CIMGUI_API struct ImFont *ImFontAtlas_Fonts_index(struct ImFontAtlas *atlas, int index);
// ImFont // ImFont
CIMGUI_API float ImFont_GetFontSize(const struct ImFont* font); CIMGUI_API float ImFont_GetFontSize(CONST struct ImFont *font);
CIMGUI_API void ImFont_SetFontSize(struct ImFont *font, float FontSize_); CIMGUI_API void ImFont_SetFontSize(struct ImFont *font, float FontSize_);
CIMGUI_API float ImFont_GetScale(const struct ImFont* font); CIMGUI_API float ImFont_GetScale(CONST struct ImFont *font);
CIMGUI_API void ImFont_SetScale(struct ImFont *font, float Scale_); CIMGUI_API void ImFont_SetScale(struct ImFont *font, float Scale_);
CIMGUI_API void ImFont_GetDisplayOffset(const struct ImFont* font, struct ImVec2* pOut); CIMGUI_API void ImFont_GetDisplayOffset(CONST struct ImFont *font, struct ImVec2 *pOut);
CIMGUI_API const struct IMFONTGLYPH* ImFont_GetFallbackGlyph(const struct ImFont* font); CIMGUI_API CONST struct IMFONTGLYPH *ImFont_GetFallbackGlyph(CONST struct ImFont *font);
CIMGUI_API void ImFont_SetFallbackGlyph(struct ImFont* font, const struct IMFONTGLYPH* FallbackGlyph_); CIMGUI_API void ImFont_SetFallbackGlyph(struct ImFont *font, CONST struct IMFONTGLYPH *FallbackGlyph_);
CIMGUI_API float ImFont_GetFallbackAdvanceX(const struct ImFont* font); CIMGUI_API float ImFont_GetFallbackAdvanceX(CONST struct ImFont *font);
CIMGUI_API ImWchar ImFont_GetFallbackChar(const struct ImFont* font); CIMGUI_API ImWchar ImFont_GetFallbackChar(CONST struct ImFont *font);
CIMGUI_API short ImFont_GetConfigDataCount(const struct ImFont* font); CIMGUI_API short ImFont_GetConfigDataCount(CONST struct ImFont *font);
CIMGUI_API struct ImFontConfig *ImFont_GetConfigData(struct ImFont *font); CIMGUI_API struct ImFontConfig *ImFont_GetConfigData(struct ImFont *font);
CIMGUI_API struct ImFontAtlas *ImFont_GetContainerAtlas(struct ImFont *font); CIMGUI_API struct ImFontAtlas *ImFont_GetContainerAtlas(struct ImFont *font);
CIMGUI_API float ImFont_GetAscent(const struct ImFont* font); CIMGUI_API float ImFont_GetAscent(CONST struct ImFont *font);
CIMGUI_API float ImFont_GetDescent(const struct ImFont* font); CIMGUI_API float ImFont_GetDescent(CONST struct ImFont *font);
CIMGUI_API int ImFont_GetMetricsTotalSurface(const struct ImFont* font); CIMGUI_API int ImFont_GetMetricsTotalSurface(CONST struct ImFont *font);
CIMGUI_API void ImFont_ClearOutputData(struct ImFont *font); CIMGUI_API void ImFont_ClearOutputData(struct ImFont *font);
CIMGUI_API void ImFont_BuildLookupTable(struct ImFont *font); CIMGUI_API void ImFont_BuildLookupTable(struct ImFont *font);
CIMGUI_API const struct IMFONTGLYPH* ImFont_FindGlyph(const struct ImFont* font, ImWchar c); CIMGUI_API CONST struct IMFONTGLYPH *ImFont_FindGlyph(CONST struct ImFont *font, ImWchar c);
CIMGUI_API void ImFont_SetFallbackChar(struct ImFont *font, ImWchar c); CIMGUI_API void ImFont_SetFallbackChar(struct ImFont *font, ImWchar c);
CIMGUI_API float ImFont_GetCharAdvance(const struct ImFont* font, ImWchar c); CIMGUI_API float ImFont_GetCharAdvance(CONST struct ImFont *font, ImWchar c);
CIMGUI_API bool ImFont_IsLoaded(const struct ImFont* font); CIMGUI_API bool ImFont_IsLoaded(CONST struct ImFont *font);
CIMGUI_API void ImFont_CalcTextSizeA(const struct ImFont* font, struct ImVec2* pOut, float size, float max_width, float wrap_width, const char* text_begin, const char* text_end, const char** remaining); // utf8 CIMGUI_API CONST char *ImFont_GetDebugName(CONST struct ImFont *font);
CIMGUI_API const char* ImFont_CalcWordWrapPositionA(const struct ImFont* font, float scale, const char* text, const char* text_end, float wrap_width); CIMGUI_API void ImFont_CalcTextSizeA(CONST struct ImFont *font, struct ImVec2 *pOut, float size, float max_width, float wrap_width, CONST char *text_begin, CONST char *text_end, CONST char **remaining); // utf8
CIMGUI_API void ImFont_RenderChar(const struct ImFont* font, struct ImDrawList* draw_list, float size, struct ImVec2 pos, ImU32 col, unsigned short c); CIMGUI_API CONST char *ImFont_CalcWordWrapPositionA(CONST struct ImFont *font, float scale, CONST char *text, CONST char *text_end, float wrap_width);
CIMGUI_API void ImFont_RenderText(const struct ImFont* font, struct ImDrawList* draw_list, float size, struct ImVec2 pos, ImU32 col, const struct ImVec4* clip_rect, const char* text_begin, const char* text_end, float wrap_width, bool cpu_fine_clip); CIMGUI_API void ImFont_RenderChar(CONST struct ImFont *font, struct ImDrawList *draw_list, float size, struct ImVec2 pos, ImU32 col, unsigned short c);
CIMGUI_API void ImFont_RenderText(CONST struct ImFont *font, struct ImDrawList *draw_list, float size, struct ImVec2 pos, ImU32 col, CONST struct ImVec4 *clip_rect, CONST char *text_begin, CONST char *text_end, float wrap_width, bool cpu_fine_clip);
// ImFont::Glyph // ImFont::Glyph
CIMGUI_API int ImFont_Glyphs_size(const struct ImFont* font); CIMGUI_API int ImFont_Glyphs_size(CONST struct ImFont *font);
CIMGUI_API struct IMFONTGLYPH *ImFont_Glyphs_index(struct ImFont *font, int index); CIMGUI_API struct IMFONTGLYPH *ImFont_Glyphs_index(struct ImFont *font, int index);
// ImFont::IndexXAdvance // ImFont::IndexXAdvance
CIMGUI_API int ImFont_IndexXAdvance_size(const struct ImFont* font); CIMGUI_API int ImFont_IndexXAdvance_size(CONST struct ImFont *font);
CIMGUI_API float ImFont_IndexXAdvance_index(const struct ImFont* font, int index); CIMGUI_API float ImFont_IndexXAdvance_index(CONST struct ImFont *font, int index);
// ImFont::IndexLookup // ImFont::IndexLookup
CIMGUI_API int ImFont_IndexLookup_size(const struct ImFont* font); CIMGUI_API int ImFont_IndexLookup_size(CONST struct ImFont *font);
CIMGUI_API unsigned short ImFont_IndexLookup_index(const struct ImFont* font, int index); CIMGUI_API unsigned short ImFont_IndexLookup_index(CONST struct ImFont *font, int index);

View File

@@ -157,14 +157,19 @@ CIMGUI_API void ImDrawList_AddImageQuad(struct ImDrawList* list, ImTextureID use
return list->AddImageQuad(user_texture_id, a, b, c, d, uv_a, uv_b, uv_c, uv_d, col); return list->AddImageQuad(user_texture_id, a, b, c, d, uv_a, uv_b, uv_c, uv_d, col);
} }
CIMGUI_API void ImDrawList_AddPolyline(ImDrawList* list, CONST ImVec2* points, CONST int num_points, ImU32 col, bool closed, float thickness, bool anti_aliased) CIMGUI_API void ImDrawList_AddImageRounded(struct ImDrawList *list, ImTextureID user_texture_id, CONST struct ImVec2 a, CONST struct ImVec2 b, CONST struct ImVec2 uv_a, CONST struct ImVec2 uv_b, ImU32 col, float rounding, int rounding_corners)
{ {
return list->AddPolyline(points, num_points, col, closed, thickness, anti_aliased); list->AddImageRounded(user_texture_id, a, b, uv_a, uv_b, col, rounding, rounding_corners);
} }
CIMGUI_API void ImDrawList_AddConvexPolyFilled(ImDrawList* list, CONST ImVec2* points, CONST int num_points, ImU32 col, bool anti_aliased) CIMGUI_API void ImDrawList_AddPolyline(ImDrawList *list, CONST ImVec2 *points, CONST int num_points, ImU32 col, bool closed, float thickness)
{ {
return list->AddConvexPolyFilled(points, num_points, col, anti_aliased); return list->AddPolyline(points, num_points, col, closed, thickness);
}
CIMGUI_API void ImDrawList_AddConvexPolyFilled(ImDrawList *list, CONST ImVec2 *points, CONST int num_points, ImU32 col)
{
return list->AddConvexPolyFilled(points, num_points, col);
} }
CIMGUI_API void ImDrawList_AddBezierCurve(ImDrawList *list, CONST struct ImVec2 pos0, CONST struct ImVec2 cp0, CONST struct ImVec2 cp1, CONST struct ImVec2 pos1, ImU32 col, float thickness, int num_segments) CIMGUI_API void ImDrawList_AddBezierCurve(ImDrawList *list, CONST struct ImVec2 pos0, CONST struct ImVec2 cp0, CONST struct ImVec2 cp1, CONST struct ImVec2 pos1, ImU32 col, float thickness, int num_segments)

View File

@@ -164,7 +164,7 @@ CIMGUI_API ImFont* ImFontAtlas_Fonts_index(struct ImFontAtlas* atlas, int index)
} }
// ImFont // ImFont
CIMGUI_API float ImFont_GetFontSize(const struct ImFont* font) CIMGUI_API float ImFont_GetFontSize(CONST struct ImFont *font)
{ {
return font->FontSize; return font->FontSize;
} }
@@ -174,7 +174,7 @@ CIMGUI_API void ImFont_SetFontSize(struct ImFont* font, float FontSize_)
font->FontSize = FontSize_; font->FontSize = FontSize_;
} }
CIMGUI_API float ImFont_GetScale(const struct ImFont* font) CIMGUI_API float ImFont_GetScale(CONST struct ImFont *font)
{ {
return font->Scale; return font->Scale;
} }
@@ -184,32 +184,32 @@ CIMGUI_API void ImFont_SetScale(struct ImFont* font, float Scale_)
font->Scale = Scale_; font->Scale = Scale_;
} }
CIMGUI_API void ImFont_GetDisplayOffset(const struct ImFont* font, ImVec2* pOut) CIMGUI_API void ImFont_GetDisplayOffset(CONST struct ImFont *font, ImVec2 *pOut)
{ {
*pOut = font->DisplayOffset; *pOut = font->DisplayOffset;
} }
CIMGUI_API const struct IMFONTGLYPH* ImFont_GetFallbackGlyph(const struct ImFont* font) CIMGUI_API CONST struct IMFONTGLYPH *ImFont_GetFallbackGlyph(CONST struct ImFont *font)
{ {
return font->FallbackGlyph; return font->FallbackGlyph;
} }
CIMGUI_API void ImFont_SetFallbackGlyph(struct ImFont* font, const struct IMFONTGLYPH* FallbackGlyph_) CIMGUI_API void ImFont_SetFallbackGlyph(struct ImFont *font, CONST struct IMFONTGLYPH *FallbackGlyph_)
{ {
font->FallbackGlyph = FallbackGlyph_; font->FallbackGlyph = FallbackGlyph_;
} }
CIMGUI_API float ImFont_GetFallbackAdvanceX(const struct ImFont* font) CIMGUI_API float ImFont_GetFallbackAdvanceX(CONST struct ImFont *font)
{ {
return font->FallbackAdvanceX; return font->FallbackAdvanceX;
} }
CIMGUI_API ImWchar ImFont_GetFallbackChar(const struct ImFont* font) CIMGUI_API ImWchar ImFont_GetFallbackChar(CONST struct ImFont *font)
{ {
return font->FallbackChar; return font->FallbackChar;
} }
CIMGUI_API short ImFont_GetConfigDataCount(const struct ImFont* font) CIMGUI_API short ImFont_GetConfigDataCount(CONST struct ImFont *font)
{ {
return font->ConfigDataCount; return font->ConfigDataCount;
} }
@@ -224,17 +224,17 @@ CIMGUI_API struct ImFontAtlas* ImFont_GetContainerAtlas(struct ImFont* font)
return font->ContainerAtlas; return font->ContainerAtlas;
} }
CIMGUI_API float ImFont_GetAscent(const struct ImFont* font) CIMGUI_API float ImFont_GetAscent(CONST struct ImFont *font)
{ {
return font->Ascent; return font->Ascent;
} }
CIMGUI_API float ImFont_GetDescent(const struct ImFont* font) CIMGUI_API float ImFont_GetDescent(CONST struct ImFont *font)
{ {
return font->Descent; return font->Descent;
} }
CIMGUI_API int ImFont_GetMetricsTotalSurface(const struct ImFont* font) CIMGUI_API int ImFont_GetMetricsTotalSurface(CONST struct ImFont *font)
{ {
return font->MetricsTotalSurface; return font->MetricsTotalSurface;
} }
@@ -249,7 +249,7 @@ CIMGUI_API void ImFont_BuildLookupTable(struct ImFont* font)
font->BuildLookupTable(); font->BuildLookupTable();
} }
CIMGUI_API const struct IMFONTGLYPH* ImFont_FindGlyph(const struct ImFont* font, ImWchar c) CIMGUI_API CONST struct IMFONTGLYPH *ImFont_FindGlyph(CONST struct ImFont *font, ImWchar c)
{ {
return font->FindGlyph(c); return font->FindGlyph(c);
} }
@@ -259,38 +259,43 @@ CIMGUI_API void ImFont_SetFallbackChar(struct ImFont* font, ImWchar c)
font->SetFallbackChar(c); font->SetFallbackChar(c);
} }
CIMGUI_API float ImFont_GetCharAdvance(const struct ImFont* font, ImWchar c) CIMGUI_API float ImFont_GetCharAdvance(CONST struct ImFont *font, ImWchar c)
{ {
return font->GetCharAdvance(c); return font->GetCharAdvance(c);
} }
CIMGUI_API bool ImFont_IsLoaded(const struct ImFont* font) CIMGUI_API bool ImFont_IsLoaded(CONST struct ImFont *font)
{ {
return font->IsLoaded(); return font->IsLoaded();
} }
CIMGUI_API void ImFont_CalcTextSizeA(const struct ImFont* font, ImVec2* pOut, float size, float max_width, float wrap_width, const char* text_begin, const char* text_end, const char** remaining) CIMGUI_API CONST char *ImFont_GetDebugName(CONST struct ImFont *font)
{
return font->GetDebugName();
}
CIMGUI_API void ImFont_CalcTextSizeA(CONST struct ImFont *font, ImVec2 *pOut, float size, float max_width, float wrap_width, CONST char *text_begin, CONST char *text_end, CONST char **remaining)
{ {
*pOut = font->CalcTextSizeA(size, max_width, wrap_width, text_begin, text_end, remaining); *pOut = font->CalcTextSizeA(size, max_width, wrap_width, text_begin, text_end, remaining);
} }
CIMGUI_API const char* ImFont_CalcWordWrapPositionA(const struct ImFont* font, float scale, const char* text, const char* text_end, float wrap_width) CIMGUI_API CONST char *ImFont_CalcWordWrapPositionA(CONST struct ImFont *font, float scale, CONST char *text, CONST char *text_end, float wrap_width)
{ {
return font->CalcWordWrapPositionA(scale, text, text_end, wrap_width); return font->CalcWordWrapPositionA(scale, text, text_end, wrap_width);
} }
CIMGUI_API void ImFont_RenderChar(const struct ImFont* font, ImDrawList* draw_list, float size, ImVec2 pos, ImU32 col, unsigned short c) CIMGUI_API void ImFont_RenderChar(CONST struct ImFont *font, ImDrawList *draw_list, float size, ImVec2 pos, ImU32 col, unsigned short c)
{ {
return font->RenderChar(draw_list, size, pos, col, c); return font->RenderChar(draw_list, size, pos, col, c);
} }
CIMGUI_API void ImFont_RenderText(const struct ImFont* font, ImDrawList* draw_list, float size, ImVec2 pos, ImU32 col, const ImVec4* clip_rect, const char* text_begin, const char* text_end, float wrap_width, bool cpu_fine_clip) CIMGUI_API void ImFont_RenderText(CONST struct ImFont *font, ImDrawList *draw_list, float size, ImVec2 pos, ImU32 col, CONST ImVec4 *clip_rect, CONST char *text_begin, CONST char *text_end, float wrap_width, bool cpu_fine_clip)
{ {
return font->RenderText(draw_list, size, pos, col, *clip_rect, text_begin, text_end, wrap_width, cpu_fine_clip); return font->RenderText(draw_list, size, pos, col, *clip_rect, text_begin, text_end, wrap_width, cpu_fine_clip);
} }
// ImFont::Glyph // ImFont::Glyph
CIMGUI_API int ImFont_Glyphs_size(const struct ImFont* font) CIMGUI_API int ImFont_Glyphs_size(CONST struct ImFont *font)
{ {
return font->Glyphs.size(); return font->Glyphs.size();
} }
@@ -301,23 +306,23 @@ CIMGUI_API struct IMFONTGLYPH* ImFont_Glyphs_index(struct ImFont* font, int inde
} }
// ImFont::IndexXAdvance // ImFont::IndexXAdvance
CIMGUI_API int ImFont_IndexXAdvance_size(const struct ImFont* font) CIMGUI_API int ImFont_IndexXAdvance_size(CONST struct ImFont *font)
{ {
return font->IndexAdvanceX.size(); return font->IndexAdvanceX.size();
} }
CIMGUI_API float ImFont_IndexXAdvance_index(const struct ImFont* font, int index) CIMGUI_API float ImFont_IndexXAdvance_index(CONST struct ImFont *font, int index)
{ {
return font->IndexAdvanceX[index]; return font->IndexAdvanceX[index];
} }
// ImFont::IndexLookup // ImFont::IndexLookup
CIMGUI_API int ImFont_IndexLookup_size(const struct ImFont* font) CIMGUI_API int ImFont_IndexLookup_size(CONST struct ImFont *font)
{ {
return font->IndexLookup.size(); return font->IndexLookup.size();
} }
CIMGUI_API unsigned short ImFont_IndexLookup_index(const struct ImFont* font, int index) CIMGUI_API unsigned short ImFont_IndexLookup_index(CONST struct ImFont *font, int index)
{ {
return font->IndexLookup[index]; return font->IndexLookup[index];
} }

2
imgui

Submodule imgui updated: 9f200d10d5...e916310b2e