Compare commits

..

10 Commits
v1.44 ... v1.47

Author SHA1 Message Date
Stephan Dilly
a5b4dc8ba9 fix #11 2015-12-26 15:21:59 +01:00
Stephan Dilly
2de7e50511 update to imgui 1.47 2015-12-26 14:44:18 +01:00
Stephan Dilly
8642306672 Merge pull request #10 from MrSmith33/master
Add ImDrawList functions. Fix spacing.
2015-11-22 13:01:58 +01:00
Andrey Penechko
26892981b9 Add ImDrawList functions. Fix spacing. 2015-11-17 20:58:37 +02:00
Stephan Dilly
af11bb9aa2 Update README.md 2015-11-16 09:22:17 +01:00
Stephan Dilly
b936bb3369 add missing methods from a previous release 2015-10-19 13:04:19 +02:00
Stephan Dilly
713d9f587c update to imgui 1.46 2015-10-19 13:01:52 +02:00
Stephan Dilly
59218e28d0 update visual studio project (VS2015) and imgui to version where version number is correctly set 2015-09-07 15:28:06 +02:00
Stephan Dilly
32b310e31f Update README.md 2015-09-07 01:49:39 +02:00
Stephan Dilly
5fe328beae upgrade to imgui 1.45 2015-09-07 01:48:05 +02:00
7 changed files with 643 additions and 239 deletions

2
.gitignore vendored
View File

@@ -33,3 +33,5 @@ cimgui/cimgui.v12.suo
cimgui/Release/
.idea
CMakeLists.txt
cimgui/.vs/
cimgui/cimgui.vcxproj.user

View File

@@ -8,7 +8,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))
Notes:
* currently this wrapper is based on version [1.44 of imgui](https://github.com/ocornut/imgui/releases/tag/v1.44)
* currently this wrapper is based on version [1.46 of imgui](https://github.com/ocornut/imgui/releases/tag/v1.46)
* 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

View File

@@ -12,6 +12,11 @@ CIMGUI_API ImGuiStyle* igGetStyle()
return &ImGui::GetStyle();
}
CIMGUI_API ImDrawData* igGetDrawData()
{
return ImGui::GetDrawData();
}
CIMGUI_API void igNewFrame()
{
ImGui::NewFrame();
@@ -89,6 +94,11 @@ CIMGUI_API void igGetContentRegionAvail(struct ImVec2* out)
*out = ImGui::GetContentRegionAvail();
}
CIMGUI_API float igGetContentRegionAvailWidth()
{
return ImGui::GetContentRegionAvailWidth();
}
CIMGUI_API void igGetWindowContentRegionMin(ImVec2* out)
{
*out = ImGui::GetWindowContentRegionMin();
@@ -99,6 +109,11 @@ CIMGUI_API void igGetWindowContentRegionMax(ImVec2* out)
*out = ImGui::GetWindowContentRegionMax();
}
CIMGUI_API float igGetWindowContentRegionWidth()
{
return ImGui::GetWindowContentRegionWidth();
}
CIMGUI_API ImDrawList* igGetWindowDrawList()
{
return ImGui::GetWindowDrawList();
@@ -134,6 +149,11 @@ CIMGUI_API float igGetWindowWidth()
return ImGui::GetWindowWidth();
}
CIMGUI_API float igGetWindowHeight()
{
return ImGui::GetWindowHeight();
}
CIMGUI_API bool igIsWindowCollapsed()
{
return ImGui::IsWindowCollapsed();
@@ -154,6 +174,16 @@ CIMGUI_API void igSetNextWindowSize(CONST ImVec2 size, ImGuiSetCond cond)
ImGui::SetNextWindowSize(size, cond);
}
CIMGUI_API void igSetNextWindowContentSize(CONST ImVec2 size)
{
ImGui::SetNextWindowContentSize(size);
}
CIMGUI_API void igSetNextWindowContentWidth(float width)
{
ImGui::SetNextWindowContentWidth(width);
}
CIMGUI_API void igSetNextWindowCollapsed(bool collapsed, ImGuiSetCond cond)
{
ImGui::SetNextWindowCollapsed(collapsed,cond);
@@ -204,16 +234,31 @@ CIMGUI_API void igSetWindowFocus2(CONST char* name)
ImGui::SetWindowFocus(name);
}
CIMGUI_API float igGetScrollX()
{
return ImGui::GetScrollX();
}
CIMGUI_API float igGetScrollY()
{
return ImGui::GetScrollY();
}
CIMGUI_API float igGetScrollMaxX()
{
return ImGui::GetScrollMaxX();
}
CIMGUI_API float igGetScrollMaxY()
{
return ImGui::GetScrollMaxY();
}
CIMGUI_API void igSetScrollX(float scroll_x)
{
return ImGui::SetScrollX(scroll_x);
}
CIMGUI_API void igSetScrollY(float scroll_y)
{
return ImGui::SetScrollY(scroll_y);
@@ -280,6 +325,16 @@ CIMGUI_API void igPopStyleVar(int count)
return ImGui::PopStyleVar(count);
}
CIMGUI_API ImU32 igGetColorU32(ImGuiCol idx, float alpha_mul)
{
return ImGui::GetColorU32(idx,alpha_mul);
}
CIMGUI_API ImU32 igGetColorU32Vec(CONST ImVec4* col)
{
return ImGui::GetColorU32(*col);
}
// Parameters stacks (current window)
CIMGUI_API void igPushItemWidth(float item_width)
{
@@ -351,12 +406,12 @@ CIMGUI_API void igEndTooltip()
}
// Popup
CIMGUI_API void igOpenPopup(const char* str_id)
CIMGUI_API void igOpenPopup(CONST char* str_id)
{
return ImGui::OpenPopup(str_id);
}
CIMGUI_API bool igBeginPopup(const char* str_id)
CIMGUI_API bool igBeginPopup(CONST char* str_id)
{
return ImGui::BeginPopup(str_id);
}
@@ -407,9 +462,9 @@ CIMGUI_API void igSeparator()
return ImGui::Separator();
}
CIMGUI_API void igSameLine(float pos_x, float spacing_w)
CIMGUI_API void igSameLine(float local_pos_x, float spacing_w)
{
return ImGui::SameLine(pos_x, spacing_w);
return ImGui::SameLine(local_pos_x, spacing_w);
}
CIMGUI_API void igSpacing()
@@ -482,9 +537,9 @@ CIMGUI_API float igGetCursorPosY()
return ImGui::GetCursorPosY();
}
CIMGUI_API void igSetCursorPos(CONST ImVec2 pos)
CIMGUI_API void igSetCursorPos(CONST ImVec2 local_pos)
{
return ImGui::SetCursorPos(pos);
return ImGui::SetCursorPos(local_pos);
}
CIMGUI_API void igSetCursorPosX(float x)
@@ -770,6 +825,11 @@ CIMGUI_API void igPlotHistogram2(CONST char* label, float(*values_getter)(voi
return ImGui::PlotHistogram(label, values_getter, data, values_count, values_offset, overlay_text, scale_min, scale_max, graph_size);
}
CIMGUI_API void igProgressBar(float fraction, CONST ImVec2* size_arg, const char* overlay)
{
return ImGui::ProgressBar(fraction,*size_arg,overlay);
}
// Widgets: Sliders (tip: ctrl+click on a slider to input text)
CIMGUI_API bool igSliderFloat(CONST char* label, float* v, float v_min, float v_max, CONST char* display_format, float power)
{
@@ -847,7 +907,7 @@ CIMGUI_API bool igDragFloat4(CONST char* label, float v[4], float v_sp
return ImGui::DragFloat4(label, v, v_speed, v_min, v_max, display_format, power);
}
CIMGUI_API bool igDragFloatRange2(const char* label, float* v_current_min, float* v_current_max, float v_speed, float v_min, float v_max, const char* display_format, const char* display_format_max, float power)
CIMGUI_API bool igDragFloatRange2(CONST char* label, float* v_current_min, float* v_current_max, float v_speed, float v_min, float v_max, CONST char* display_format, CONST char* display_format_max, float power)
{
return ImGui::DragFloatRange2(label,v_current_min,v_current_max,v_speed,v_min,v_max,display_format,display_format_max,power);
}
@@ -872,7 +932,7 @@ CIMGUI_API bool igDragInt4(CONST char* label, int v[4], float v_speed,
return ImGui::DragInt4(label, v, v_speed, v_min, v_max, display_format);
}
CIMGUI_API bool igDragIntRange2(const char* label, int* v_current_min, int* v_current_max, float v_speed, int v_min, int v_max, const char* display_format, const char* display_format_max)
CIMGUI_API bool igDragIntRange2(CONST char* label, int* v_current_min, int* v_current_max, float v_speed, int v_min, int v_max, CONST char* display_format, CONST char* display_format_max)
{
return ImGui::DragIntRange2(label,v_current_min,v_current_max,v_speed,v_min,v_max,display_format,display_format_max);
}
@@ -1082,14 +1142,14 @@ CIMGUI_API void igValueFloat(CONST char* prefix, float v, CONST char* float_f
ImGui::Value(prefix,v,float_format);
}
CIMGUI_API void igColor(CONST char* prefix, CONST ImVec4 v)
CIMGUI_API void igValueColor(CONST char* prefix, CONST ImVec4 v)
{
ImGui::Color(prefix,v);
ImGui::ValueColor(prefix,v);
}
CIMGUI_API void igColor2(CONST char* prefix, unsigned int v)
CIMGUI_API void igValueColor2(CONST char* prefix, unsigned int v)
{
ImGui::Color(prefix,v);
ImGui::ValueColor(prefix,v);
}
// Logging: all text output from interface is redirected to tty/file/clipboard. Tree nodes are automatically opened.
@@ -1200,6 +1260,11 @@ CIMGUI_API bool igIsRectVisible(CONST ImVec2 item_size)
return ImGui::IsRectVisible(item_size);
}
CIMGUI_API int igGetKeyIndex(ImGuiKey key)
{
return ImGui::GetKeyIndex(key);
}
CIMGUI_API bool igIsKeyDown(int key_index)
{
return ImGui::IsKeyDown(key_index);
@@ -1245,9 +1310,9 @@ CIMGUI_API bool igIsMouseHoveringAnyWindow()
return ImGui::IsMouseHoveringAnyWindow();
}
CIMGUI_API bool igIsMouseHoveringRect(CONST ImVec2 rect_min, CONST ImVec2 rect_max)
CIMGUI_API bool igIsMouseHoveringRect(CONST ImVec2 pos_min, CONST ImVec2 pos_max, bool clip)
{
return ImGui::IsMouseHoveringRect(rect_min,rect_max);
return ImGui::IsMouseHoveringRect(pos_min,pos_max,clip);
}
CIMGUI_API bool igIsMouseDragging(int button, float lock_threshold)
@@ -1264,6 +1329,11 @@ CIMGUI_API void igGetMousePos(ImVec2* pOut)
*pOut = ImGui::GetMousePos();
}
CIMGUI_API void igGetMousePosOnOpeningCurrentPopup(ImVec2* pOut)
{
*pOut = ImGui::GetMousePosOnOpeningCurrentPopup();
}
CIMGUI_API void igGetMouseDragDelta(ImVec2* pOut, int button, float lock_threshold)
{
*pOut = ImGui::GetMouseDragDelta(button,lock_threshold);
@@ -1284,6 +1354,36 @@ CIMGUI_API void igSetMouseCursor(ImGuiMouseCursor type)
ImGui::SetMouseCursor(type);
}
CIMGUI_API void igCaptureKeyboardFromApp()
{
return ImGui::CaptureKeyboardFromApp();
}
CIMGUI_API void igCaptureMouseFromApp()
{
return ImGui::CaptureMouseFromApp();
}
CIMGUI_API void* igMemAlloc(size_t sz)
{
return ImGui::MemAlloc(sz);
}
CIMGUI_API void igMemFree(void* ptr)
{
return ImGui::MemFree(ptr);
}
CIMGUI_API CONST char* igGetClipboardText()
{
return ImGui::GetClipboardText();
}
CIMGUI_API void igSetClipboardText(CONST char* text)
{
return ImGui::SetClipboardText(text);
}
CIMGUI_API float igGetTime()
{
return ImGui::GetTime();
@@ -1314,9 +1414,9 @@ CIMGUI_API void igCalcListClipping(int items_count, float items_height, int*
ImGui::CalcListClipping(items_count,items_height,out_items_display_start,out_items_display_end);
}
CIMGUI_API bool igBeginChildFrame(ImGuiID id, CONST ImVec2 size)
CIMGUI_API bool igBeginChildFrame(ImGuiID id, CONST ImVec2 size, ImGuiWindowFlags extra_flags)
{
return ImGui::BeginChildFrame(id, size);
return ImGui::BeginChildFrame(id, size, extra_flags);
}
CIMGUI_API void igEndChildFrame()
@@ -1324,6 +1424,11 @@ CIMGUI_API void igEndChildFrame()
ImGui::EndChildFrame();
}
CIMGUI_API void igColorConvertU32ToFloat4(ImVec4* pOut, ImU32 in)
{
*pOut = ImGui::ColorConvertU32ToFloat4(in);
}
CIMGUI_API ImU32 igColorConvertFloat4ToU32(CONST ImVec4 in)
{
return ImGui::ColorConvertFloat4ToU32(in);
@@ -1368,3 +1473,8 @@ CIMGUI_API void ImGuiIO_AddInputCharactersUTF8(CONST char* utf8_chars)
{
return ImGui::GetIO().AddInputCharactersUTF8(utf8_chars);
}
CIMGUI_API void ImGuiIO_ClearInputCharacters()
{
return ImGui::GetIO().ClearInputCharacters();
}

View File

@@ -25,6 +25,7 @@ typedef int ImGuiColorEditMode;
CIMGUI_API ImGuiIO* igGetIO();
CIMGUI_API ImGuiStyle* igGetStyle();
CIMGUI_API ImDrawData* igGetDrawData();
CIMGUI_API void igNewFrame();
CIMGUI_API void igRender();
CIMGUI_API void igShutdown();
@@ -42,8 +43,10 @@ CIMGUI_API bool igBeginChildEx(ImGuiID id, CONST struct ImVec2 size,
CIMGUI_API void igEndChild();
CIMGUI_API void igGetContentRegionMax(struct ImVec2* out);
CIMGUI_API void igGetContentRegionAvail(struct ImVec2* out);
CIMGUI_API float igGetContentRegionAvailWidth();
CIMGUI_API void igGetWindowContentRegionMin(struct ImVec2* out);
CIMGUI_API void igGetWindowContentRegionMax(struct ImVec2* out);
CIMGUI_API float igGetWindowContentRegionWidth();
CIMGUI_API ImDrawList* igGetWindowDrawList();
CIMGUI_API ImFont* igGetWindowFont();
CIMGUI_API float igGetWindowFontSize();
@@ -51,11 +54,14 @@ CIMGUI_API void igSetWindowFontScale(float scale);
CIMGUI_API void igGetWindowPos(struct ImVec2* out);
CIMGUI_API void igGetWindowSize(struct ImVec2* out);
CIMGUI_API float igGetWindowWidth();
CIMGUI_API float igGetWindowHeight();
CIMGUI_API bool igIsWindowCollapsed();
CIMGUI_API void igSetNextWindowPos(CONST struct ImVec2 pos, ImGuiSetCond cond);
CIMGUI_API void igSetNextWindowPosCenter(ImGuiSetCond cond);
CIMGUI_API void igSetNextWindowSize(CONST struct ImVec2 size, ImGuiSetCond cond);
CIMGUI_API void igSetNextWindowContentSize(CONST ImVec2 size);
CIMGUI_API void igSetNextWindowContentWidth(float width);
CIMGUI_API void igSetNextWindowCollapsed(bool collapsed, ImGuiSetCond cond);
CIMGUI_API void igSetNextWindowFocus();
CIMGUI_API void igSetWindowPos(CONST struct ImVec2 pos, ImGuiSetCond cond);
@@ -67,8 +73,11 @@ CIMGUI_API void igSetWindowSize2(CONST char* name, CONST struct ImVe
CIMGUI_API void igSetWindowCollapsed2(CONST char* name, bool collapsed, ImGuiSetCond cond);
CIMGUI_API void igSetWindowFocus2(CONST char* name);
CIMGUI_API float igGetScrollX();
CIMGUI_API float igGetScrollY();
CIMGUI_API float igGetScrollMaxX();
CIMGUI_API float igGetScrollMaxY();
CIMGUI_API void igSetScrollX(float scroll_x);
CIMGUI_API void igSetScrollY(float scroll_y);
CIMGUI_API void igSetScrollHere(float center_y_ratio = 0.5f);
CIMGUI_API void igSetScrollFromPosY(float pos_y, float center_y_ratio = 0.5f);
@@ -84,15 +93,18 @@ CIMGUI_API void igPopStyleColor(int count);
CIMGUI_API void igPushStyleVar(ImGuiStyleVar idx, float val);
CIMGUI_API void igPushStyleVarVec(ImGuiStyleVar idx, CONST struct ImVec2 val);
CIMGUI_API void igPopStyleVar(int count);
CIMGUI_API ImU32 igGetColorU32(ImGuiCol idx, float alpha_mul);
CIMGUI_API ImU32 igGetColorU32Vec(CONST ImVec4* col);
// Parameters stacks (current window)
CIMGUI_API void igPushItemWidth(float item_width);
CIMGUI_API void igPopItemWidth();
CIMGUI_API float igCalcItemWidth();
CIMGUI_API void igPushAllowKeyboardFocus(bool v);
CIMGUI_API void igPopAllowKeyboardFocus();
CIMGUI_API void igPushTextWrapPos(float wrap_pos_x);
CIMGUI_API void igPopTextWrapPos();
CIMGUI_API void igPushAllowKeyboardFocus(bool v);
CIMGUI_API void igPopAllowKeyboardFocus();
CIMGUI_API void igPushButtonRepeat(bool repeat);
CIMGUI_API void igPopButtonRepeat();
@@ -100,7 +112,7 @@ CIMGUI_API void igPopButtonRepeat();
CIMGUI_API void igBeginGroup();
CIMGUI_API void igEndGroup();
CIMGUI_API void igSeparator();
CIMGUI_API void igSameLine(float pos_x, float spacing_w);
CIMGUI_API void igSameLine(float local_pos_x, float spacing_w);
CIMGUI_API void igSpacing();
CIMGUI_API void igDummy(CONST ImVec2* size);
CIMGUI_API void igIndent();
@@ -115,7 +127,7 @@ CIMGUI_API int igGetColumnsCount();
CIMGUI_API void igGetCursorPos(struct ImVec2* pOut);
CIMGUI_API float igGetCursorPosX();
CIMGUI_API float igGetCursorPosY();
CIMGUI_API void igSetCursorPos(CONST struct ImVec2 pos);
CIMGUI_API void igSetCursorPos(CONST struct ImVec2 local_pos);
CIMGUI_API void igSetCursorPosX(float x);
CIMGUI_API void igSetCursorPosY(float y);
CIMGUI_API void igGetCursorStartPos(struct ImVec2* pOut);
@@ -174,6 +186,8 @@ CIMGUI_API void igPlotLines(CONST char* label, CONST float* values,
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 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 ImVec2* size_arg, const char* overlay);
// Widgets: Sliders (tip: ctrl+click on a slider to input text)
CIMGUI_API bool igSliderFloat(CONST char* label, float* v, float v_min, float v_max, CONST char* display_format, float power);
@@ -193,12 +207,12 @@ CIMGUI_API bool igDragFloat(CONST char* label, float* v, float v_spe
CIMGUI_API bool igDragFloat2(CONST char* label, float v[2], float v_speed, float v_min, float v_max, CONST char* display_format, float power);
CIMGUI_API bool igDragFloat3(CONST char* label, float v[3], float v_speed, float v_min, float v_max, CONST char* display_format, float power);
CIMGUI_API bool igDragFloat4(CONST char* label, float v[4], float v_speed, float v_min, float v_max, CONST char* display_format, float power);
CIMGUI_API bool igDragFloatRange2(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);
CIMGUI_API bool igDragFloatRange2(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);
CIMGUI_API bool igDragInt(CONST char* label, int* v, float v_speed, int v_min, int v_max, CONST char* display_format); // If v_max >= v_max we have no bound
CIMGUI_API bool igDragInt2(CONST char* label, int v[2], float v_speed, int v_min, int v_max, CONST char* display_format);
CIMGUI_API bool igDragInt3(CONST char* label, int v[3], float v_speed, int v_min, int v_max, CONST char* display_format);
CIMGUI_API bool igDragInt4(CONST char* label, int v[4], float v_speed, int v_min, int v_max, CONST char* display_format);
CIMGUI_API bool igDragIntRange2(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);
CIMGUI_API bool igDragIntRange2(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);
// Widgets: Input
@@ -238,8 +252,8 @@ CIMGUI_API void igValueBool(CONST char* prefix, bool b);
CIMGUI_API void igValueInt(CONST char* prefix, int v);
CIMGUI_API void igValueUInt(CONST char* prefix, unsigned int v);
CIMGUI_API void igValueFloat(CONST char* prefix, float v, CONST char* float_format);
CIMGUI_API void igColor(CONST char* prefix, CONST struct ImVec4 v);
CIMGUI_API void igColor2(CONST char* prefix, unsigned int v);
CIMGUI_API void igValueColor(CONST char* prefix, CONST struct ImVec4 v);
CIMGUI_API void igValueColor2(CONST char* prefix, unsigned int v);
// Tooltip
CIMGUI_API void igSetTooltip(CONST char* fmt, ...);
@@ -298,13 +312,15 @@ CIMGUI_API void igCalcItemRectClosestPoint(struct ImVec2* pOut, CONS
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 igCalcListClipping(int items_count, float items_height, int* out_items_display_start, int* out_items_display_end);
CIMGUI_API bool igBeginChildFrame(ImGuiID id, CONST struct ImVec2 size);
CIMGUI_API bool igBeginChildFrame(ImGuiID id, CONST struct ImVec2 size, ImGuiWindowFlags extra_flags);
CIMGUI_API void igEndChildFrame();
CIMGUI_API void igColorConvertU32ToFloat4(ImVec4* pOut, ImU32 in);
CIMGUI_API ImU32 igColorConvertFloat4ToU32(CONST struct ImVec4 in);
CIMGUI_API void igColorConvertRGBtoHSV(float r, float g, float b, float* out_h, float* out_s, float* out_v);
CIMGUI_API void igColorConvertHSVtoRGB(float h, float s, float v, float* out_r, float* out_g, float* out_b);
CIMGUI_API int igGetKeyIndex(ImGuiKey key);
CIMGUI_API bool igIsKeyDown(int key_index);
CIMGUI_API bool igIsKeyPressed(int key_index, bool repeat);
CIMGUI_API bool igIsKeyReleased(int key_index);
@@ -314,13 +330,22 @@ CIMGUI_API bool igIsMouseDoubleClicked(int button);
CIMGUI_API bool igIsMouseReleased(int button);
CIMGUI_API bool igIsMouseHoveringWindow();
CIMGUI_API bool igIsMouseHoveringAnyWindow();
CIMGUI_API bool igIsMouseHoveringRect(CONST struct ImVec2 rect_min, CONST struct ImVec2 rect_max);
CIMGUI_API bool igIsMouseHoveringRect(CONST struct ImVec2 pos_min, CONST struct ImVec2 pos_max, bool clip);
CIMGUI_API bool igIsMouseDragging(int button, float lock_threshold);
CIMGUI_API void igGetMousePos(struct ImVec2* pOut);
CIMGUI_API void igGetMousePosOnOpeningCurrentPopup(ImVec2* pOut);
CIMGUI_API void igGetMouseDragDelta(struct ImVec2* pOut, int button, float lock_threshold);
CIMGUI_API void igResetMouseDragDelta(int button);
CIMGUI_API ImGuiMouseCursor igGetMouseCursor();
CIMGUI_API void igSetMouseCursor(ImGuiMouseCursor type);
CIMGUI_API void igCaptureKeyboardFromApp();
CIMGUI_API void igCaptureMouseFromApp();
// Helpers functions to access functions pointers in ImGui::GetIO()
CIMGUI_API void* igMemAlloc(size_t sz);
CIMGUI_API void igMemFree(void* ptr);
CIMGUI_API CONST char* igGetClipboardText();
CIMGUI_API void igSetClipboardText(CONST char* text);
// Internal state access - if you want to share ImGui state between modules (e.g. DLL) or allocate it yourself
CIMGUI_API CONST char* igGetVersion();
@@ -342,11 +367,68 @@ CIMGUI_API void ImFontAtlas_Clear(ImFontAtlas* atlas);
CIMGUI_API void ImGuiIO_AddInputCharacter(unsigned short c);
CIMGUI_API void ImGuiIO_AddInputCharactersUTF8(CONST char* utf8_chars);
CIMGUI_API void ImGuiIO_ClearInputCharacters();
//ImDrawData
CIMGUI_API void ImDrawData_DeIndexAllBuffers(ImDrawData* drawData);
//ImDrawList
CIMGUI_API int ImDrawList_GetVertexBufferSize(ImDrawList* list);
CIMGUI_API ImDrawVert* ImDrawList_GetVertexPtr(ImDrawList* list, int n);
CIMGUI_API int ImDrawList_GetIndexBufferSize(ImDrawList* list);
CIMGUI_API ImDrawIdx* ImDrawList_GetIndexPtr(ImDrawList* list, int n);
CIMGUI_API int ImDrawList_GetCmdSize(ImDrawList* list);
CIMGUI_API ImDrawCmd* ImDrawList_GetCmdPtr(ImDrawList* list, int n);
CIMGUI_API void ImDrawData_DeIndexAllBuffers(ImDrawData* drawData);
CIMGUI_API void ImDrawList_Clear(ImDrawList* list);
CIMGUI_API void ImDrawList_ClearFreeMemory(ImDrawList* list);
CIMGUI_API void ImDrawList_PushClipRect(ImDrawList* list, CONST struct ImVec4 clip_rect); // Scissoring. The values are x1, y1, x2, y2.
CIMGUI_API void ImDrawList_PushClipRectFullScreen(ImDrawList* list);
CIMGUI_API void ImDrawList_PopClipRect(ImDrawList* list);
CIMGUI_API void ImDrawList_PushTextureID(ImDrawList* list, CONST ImTextureID texture_id);
CIMGUI_API void ImDrawList_PopTextureID(ImDrawList* list);
// Primitives
CIMGUI_API void ImDrawList_AddLine(ImDrawList* list, CONST struct ImVec2 a, CONST struct ImVec2 b, ImU32 col, float thickness);
CIMGUI_API void ImDrawList_AddRect(ImDrawList* list, CONST struct ImVec2 a, CONST struct ImVec2 b, ImU32 col, float rounding, int rounding_corners);
CIMGUI_API void ImDrawList_AddRectFilled(ImDrawList* list, CONST struct ImVec2 a, CONST struct ImVec2 b, ImU32 col, float rounding, int rounding_corners);
CIMGUI_API void ImDrawList_AddRectFilledMultiColor(ImDrawList* list, CONST struct ImVec2 a, CONST struct ImVec2 b, ImU32 col_upr_left, ImU32 col_upr_right, ImU32 col_bot_right, ImU32 col_bot_left);
CIMGUI_API void ImDrawList_AddTriangleFilled(ImDrawList* list, CONST struct ImVec2 a, CONST struct ImVec2 b, CONST struct ImVec2 c, ImU32 col);
CIMGUI_API void ImDrawList_AddCircle(ImDrawList* list, CONST struct ImVec2 centre, float radius, ImU32 col, int num_segments);
CIMGUI_API void ImDrawList_AddCircleFilled(ImDrawList* list, CONST struct ImVec2 centre, float radius, ImU32 col, int num_segments);
CIMGUI_API void ImDrawList_AddText(ImDrawList* list, CONST struct ImVec2 pos, ImU32 col, CONST char* text_begin, CONST char* text_end);
CIMGUI_API void ImDrawList_AddTextExt(ImDrawList* list, CONST ImFont* font, float font_size, CONST struct ImVec2 pos, ImU32 col, CONST char* text_begin, CONST char* text_end, float wrap_width, CONST ImVec4* cpu_fine_clip_rect);
CIMGUI_API void ImDrawList_AddImage(ImDrawList* list, ImTextureID user_texture_id, CONST struct ImVec2 a, CONST struct ImVec2 b, CONST struct ImVec2 uv0, CONST struct ImVec2 uv1, ImU32 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_AddConvexPolyFilled(ImDrawList* list, CONST ImVec2* points, CONST int num_points, ImU32 col, bool anti_aliased);
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);
// Stateful path API, add points then finish with PathFill() or PathStroke()
CIMGUI_API void ImDrawList_PathClear(ImDrawList* list);
CIMGUI_API void ImDrawList_PathLineTo(ImDrawList* list, CONST struct ImVec2 pos);
CIMGUI_API void ImDrawList_PathLineToMergeDuplicate(ImDrawList* list, CONST struct ImVec2 pos);
CIMGUI_API void ImDrawList_PathFill(ImDrawList* list, ImU32 col);
CIMGUI_API void ImDrawList_PathStroke(ImDrawList* list, ImU32 col, bool closed, float thickness);
CIMGUI_API void ImDrawList_PathArcTo(ImDrawList* list, CONST struct ImVec2 centre, float radius, float a_min, float a_max, int num_segments);
CIMGUI_API void ImDrawList_PathArcToFast(ImDrawList* list, CONST struct ImVec2 centre, float radius, int a_min_of_12, int a_max_of_12); // Use precomputed angles for a 12 steps circle
CIMGUI_API void ImDrawList_PathBezierCurveTo(ImDrawList* list, CONST struct ImVec2 p1, CONST struct ImVec2 p2, CONST struct ImVec2 p3, int num_segments);
CIMGUI_API void ImDrawList_PathRect(ImDrawList* list, CONST struct ImVec2 rect_min, CONST struct ImVec2 rect_max, float rounding, int rounding_corners);
// Channels
CIMGUI_API void ImDrawList_ChannelsSplit(ImDrawList* list, int channels_count);
CIMGUI_API void ImDrawList_ChannelsMerge(ImDrawList* list);
CIMGUI_API void ImDrawList_ChannelsSetCurrent(ImDrawList* list, int channel_index);
// Advanced
CIMGUI_API void ImDrawList_AddCallback(ImDrawList* list, ImDrawCallback callback, void* callback_data); // Your rendering function must check for 'UserCallback' in ImDrawCmd and call the function instead of rendering triangles.
CIMGUI_API void ImDrawList_AddDrawCmd(ImDrawList* list); // This is useful if you need to forcefully create a new draw call (to allow for dependent rendering / blending). Otherwise primitives are merged into the same draw-call as much as possible
// Internal helpers
CIMGUI_API void ImDrawList_PrimReserve(ImDrawList* list, int idx_count, int vtx_count);
CIMGUI_API void ImDrawList_PrimRect(ImDrawList* list, CONST struct ImVec2 a, CONST struct ImVec2 b, ImU32 col);
CIMGUI_API void ImDrawList_PrimRectUV(ImDrawList* list, CONST struct ImVec2 a, CONST struct ImVec2 b, CONST struct ImVec2 uv_a, CONST struct ImVec2 uv_b, ImU32 col);
CIMGUI_API void ImDrawList_PrimVtx(ImDrawList* list, CONST struct ImVec2 pos, CONST struct ImVec2 uv, ImU32 col);
CIMGUI_API void ImDrawList_PrimWriteVtx(ImDrawList* list, CONST struct ImVec2 pos, CONST struct ImVec2 uv, ImU32 col);
CIMGUI_API void ImDrawList_PrimWriteIdx(ImDrawList* list, ImDrawIdx idx);
CIMGUI_API void ImDrawList_UpdateClipRect(ImDrawList* list);
CIMGUI_API void ImDrawList_UpdateTextureID(ImDrawList* list);

View File

@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Project DefaultTargets="Build" ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup Label="ProjectConfigurations">
<ProjectConfiguration Include="Debug|Win32">
<Configuration>Debug</Configuration>
@@ -19,13 +19,13 @@
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<UseDebugLibraries>true</UseDebugLibraries>
<PlatformToolset>v120</PlatformToolset>
<PlatformToolset>v140</PlatformToolset>
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<UseDebugLibraries>false</UseDebugLibraries>
<PlatformToolset>v120</PlatformToolset>
<PlatformToolset>v140</PlatformToolset>
<WholeProgramOptimization>true</WholeProgramOptimization>
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>

View File

@@ -36,3 +36,213 @@ CIMGUI_API void ImDrawData_DeIndexAllBuffers(ImDrawData* drawData)
{
return drawData->DeIndexAllBuffers();
}
CIMGUI_API void ImDrawList_Clear(ImDrawList* list)
{
return list->Clear();
}
CIMGUI_API void ImDrawList_ClearFreeMemory(ImDrawList* list)
{
return list->ClearFreeMemory();
}
CIMGUI_API void ImDrawList_PushClipRect(ImDrawList* list, CONST struct ImVec4 clip_rect)
{
return list->PushClipRect(clip_rect);
}
CIMGUI_API void ImDrawList_PushClipRectFullScreen(ImDrawList* list)
{
return list->PushClipRectFullScreen();
}
CIMGUI_API void ImDrawList_PopClipRect(ImDrawList* list)
{
return list->PopClipRect();
}
CIMGUI_API void ImDrawList_PushTextureID(ImDrawList* list, CONST ImTextureID texture_id)
{
return list->PushTextureID(texture_id);
}
CIMGUI_API void ImDrawList_PopTextureID(ImDrawList* list)
{
return list->PopTextureID();
}
CIMGUI_API void ImDrawList_AddLine(ImDrawList* list, CONST struct ImVec2 a, CONST struct ImVec2 b, ImU32 col, float thickness)
{
return list->AddLine(a, b, col, thickness);
}
CIMGUI_API void ImDrawList_AddRect(ImDrawList* list, CONST struct ImVec2 a, CONST struct ImVec2 b, ImU32 col, float rounding, int rounding_corners)
{
return list->AddRect(a, b, col, rounding, rounding_corners);
}
CIMGUI_API void ImDrawList_AddRectFilled(ImDrawList* list, CONST struct ImVec2 a, CONST struct ImVec2 b, ImU32 col, float rounding, int rounding_corners)
{
return list->AddRectFilled(a, b, col, rounding, rounding_corners);
}
CIMGUI_API void ImDrawList_AddRectFilledMultiColor(ImDrawList* list, CONST struct ImVec2 a, CONST struct ImVec2 b, ImU32 col_upr_left, ImU32 col_upr_right, ImU32 col_bot_right, ImU32 col_bot_left)
{
return list->AddRectFilledMultiColor(a, b, col_upr_left, col_upr_right, col_bot_right, col_bot_left);
}
CIMGUI_API void ImDrawList_AddTriangleFilled(ImDrawList* list, CONST struct ImVec2 a, CONST struct ImVec2 b, CONST struct ImVec2 c, ImU32 col)
{
return list->AddTriangleFilled(a, b, c, col);
}
CIMGUI_API void ImDrawList_AddCircle(ImDrawList* list, CONST struct ImVec2 centre, float radius, ImU32 col, int num_segments)
{
return list->AddCircle(centre, radius, col, num_segments);
}
CIMGUI_API void ImDrawList_AddCircleFilled(ImDrawList* list, CONST struct ImVec2 centre, float radius, ImU32 col, int num_segments)
{
return list->AddCircleFilled(centre, radius, col, num_segments);
}
CIMGUI_API void ImDrawList_AddText(ImDrawList* list, CONST struct ImVec2 pos, ImU32 col, CONST char* text_begin, CONST char* text_end)
{
return list->AddText(pos, col, text_begin, text_end);
}
CIMGUI_API void ImDrawList_AddTextExt(ImDrawList* list, CONST ImFont* font, float font_size, CONST struct ImVec2 pos, ImU32 col, CONST char* text_begin, CONST char* text_end, float wrap_width, CONST ImVec4* cpu_fine_clip_rect)
{
return list->AddText(font, font_size, pos, col, text_begin, text_end, wrap_width, cpu_fine_clip_rect);
}
CIMGUI_API void ImDrawList_AddImage(ImDrawList* list, ImTextureID user_texture_id, CONST struct ImVec2 a, CONST struct ImVec2 b, CONST struct ImVec2 uv0, CONST struct ImVec2 uv1, ImU32 col)
{
return list->AddImage(user_texture_id, a, b, uv0, uv1, col);
}
CIMGUI_API void ImDrawList_AddPolyline(ImDrawList* list, CONST ImVec2* points, CONST int num_points, ImU32 col, bool closed, float thickness, bool anti_aliased)
{
return list->AddPolyline(points, num_points, col, closed, thickness, anti_aliased);
}
CIMGUI_API void ImDrawList_AddConvexPolyFilled(ImDrawList* list, CONST ImVec2* points, CONST int num_points, ImU32 col, bool anti_aliased)
{
return list->AddConvexPolyFilled(points, num_points, col, anti_aliased);
}
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)
{
return list->AddBezierCurve(pos0, cp0, cp1, pos1, col, thickness, num_segments);
}
CIMGUI_API void ImDrawList_PathClear(ImDrawList* list)
{
return list->PathClear();
}
CIMGUI_API void ImDrawList_PathLineTo(ImDrawList* list, CONST struct ImVec2 pos)
{
return list->PathLineTo(pos);
}
CIMGUI_API void ImDrawList_PathLineToMergeDuplicate(ImDrawList* list, CONST struct ImVec2 pos)
{
return list->PathLineToMergeDuplicate(pos);
}
CIMGUI_API void ImDrawList_PathFill(ImDrawList* list, ImU32 col)
{
return list->PathFill(col);
}
CIMGUI_API void ImDrawList_PathStroke(ImDrawList* list, ImU32 col, bool closed, float thickness)
{
return list->PathStroke(col, closed, thickness);
}
CIMGUI_API void ImDrawList_PathArcTo(ImDrawList* list, CONST struct ImVec2 centre, float radius, float a_min, float a_max, int num_segments)
{
return list->PathArcTo(centre, radius, a_min, a_max, num_segments);
}
CIMGUI_API void ImDrawList_PathArcToFast(ImDrawList* list, CONST struct ImVec2 centre, float radius, int a_min_of_12, int a_max_of_12)
{
return list->PathArcToFast(centre, radius, a_min_of_12, a_max_of_12);
}
CIMGUI_API void ImDrawList_PathBezierCurveTo(ImDrawList* list, CONST struct ImVec2 p1, CONST struct ImVec2 p2, CONST struct ImVec2 p3, int num_segments)
{
return list->PathBezierCurveTo(p1, p2, p3, num_segments);
}
CIMGUI_API void ImDrawList_PathRect(ImDrawList* list, CONST struct ImVec2 rect_min, CONST struct ImVec2 rect_max, float rounding, int rounding_corners)
{
return list->PathRect(rect_min, rect_max, rounding, rounding_corners);
}
CIMGUI_API void ImDrawList_ChannelsSplit(ImDrawList* list, int channels_count)
{
return list->ChannelsSplit(channels_count);
}
CIMGUI_API void ImDrawList_ChannelsMerge(ImDrawList* list)
{
return list->ChannelsMerge();
}
CIMGUI_API void ImDrawList_ChannelsSetCurrent(ImDrawList* list, int channel_index)
{
return list->ChannelsSetCurrent(channel_index);
}
CIMGUI_API void ImDrawList_AddCallback(ImDrawList* list, ImDrawCallback callback, void* callback_data)
{
return list->AddCallback(callback, callback_data);
}
CIMGUI_API void ImDrawList_AddDrawCmd(ImDrawList* list)
{
return list->AddDrawCmd();
}
CIMGUI_API void ImDrawList_PrimReserve(ImDrawList* list, int idx_count, int vtx_count)
{
return list->PrimReserve(idx_count, vtx_count);
}
CIMGUI_API void ImDrawList_PrimRect(ImDrawList* list, CONST struct ImVec2 a, CONST struct ImVec2 b, ImU32 col)
{
return list->PrimRect(a, b, col);
}
CIMGUI_API void ImDrawList_PrimRectUV(ImDrawList* list, CONST struct ImVec2 a, CONST struct ImVec2 b, CONST struct ImVec2 uv_a, CONST struct ImVec2 uv_b, ImU32 col)
{
return list->PrimRectUV(a, b, uv_a, uv_b, col);
}
CIMGUI_API void ImDrawList_PrimVtx(ImDrawList* list, CONST struct ImVec2 pos, CONST struct ImVec2 uv, ImU32 col)
{
return list->PrimVtx(pos, uv, col);
}
CIMGUI_API void ImDrawList_PrimWriteVtx(ImDrawList* list, CONST struct ImVec2 pos, CONST struct ImVec2 uv, ImU32 col)
{
return list->PrimWriteVtx(pos, uv, col);
}
CIMGUI_API void ImDrawList_PrimWriteIdx(ImDrawList* list, ImDrawIdx idx)
{
return list->PrimWriteIdx(idx);
}
CIMGUI_API void ImDrawList_UpdateClipRect(ImDrawList* list)
{
return list->UpdateClipRect();
}
CIMGUI_API void ImDrawList_UpdateTextureID(ImDrawList* list)
{
return list->UpdateTextureID();
}

2
imgui

Submodule imgui updated: a99ba42a39...24d186753e