1 /*
2 * Copyright (c) 2017 Derelict Developers
3 * All rights reserved.
4 *
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions are
7 * met:
8 *
9 * * Redistributions of source code must retain the above copyright
10 *   notice, this list of conditions and the following disclaimer.
11 *
12 * * Redistributions in binary form must reproduce the above copyright
13 *   notice, this list of conditions and the following disclaimer in the
14 *   documentation and/or other materials provided with the distribution.
15 *
16 * * Neither the names 'Derelict', 'DerelictImgui', nor the names of its contributors
17 *   may be used to endorse or promote products derived from this software
18 *   without specific prior written permission.
19 *
20 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
21 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
22 * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
23 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
24 * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
25 * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
26 * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
27 * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
28 * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
29 * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
30 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
31 */
32 module derelict.imgui.imgui;
33 
34 public
35 {
36     import derelict.imgui.types;
37     import derelict.imgui.funcs;
38 }
39 
40 private
41 {
42     import derelict.util.loader;
43 
44     version(darwin)
45         version = MacOSX;
46     version(OSX)
47         version = MacOSX;
48 }
49 
50 private
51 {
52     import derelict.util.loader;
53     import derelict.util.system;
54 
55     static if(Derelict_OS_Windows)
56         enum libNames = "cimgui.dll";
57     else static if (Derelict_OS_Mac)
58         enum libNames = "cimgui.dylib";
59     else static if (Derelict_OS_Linux)
60         enum libNames = "cimgui.so";
61     else
62         static assert(0, "Need to implement imgui libNames for this operating system.");
63 }
64 
65 final class DerelictImguiLoader : SharedLibLoader
66 {
67     protected
68     {
69         override void loadSymbols()
70         {
71             //search: (ig\S+)
72             //replace: bindFunc\(cast\(void**\)&$1, "$1"\);
73 
74             bindFunc(cast(void**)&igGetIO, "igGetIO");
75             bindFunc(cast(void**)&igGetStyle, "igGetStyle");
76             bindFunc(cast(void**)&igGetDrawData, "igGetDrawData");
77             bindFunc(cast(void**)&igNewFrame, "igNewFrame");
78             bindFunc(cast(void**)&igRender, "igRender");
79             bindFunc(cast(void**)&igShutdown, "igShutdown");
80             bindFunc(cast(void**)&igShowDemoWindow, "igShowDemoWindow");
81             bindFunc(cast(void**)&igShowMetricsWindow, "igShowMetricsWindow");
82             bindFunc(cast(void**)&igShowStyleEditor, "igShowStyleEditor");
83             bindFunc(cast(void**)&igShowStyleSelector, "igShowStyleSelector");
84             bindFunc(cast(void**)&igShowFontSelector, "igShowFontSelector");
85             bindFunc(cast(void**)&igShowUserGuide, "igShowUserGuide");
86             bindFunc(cast(void**)&igBegin, "igBegin");
87             bindFunc(cast(void**)&igEnd, "igEnd");
88             bindFunc(cast(void**)&igBeginChild, "igBeginChild");
89             bindFunc(cast(void**)&igBeginChildEx, "igBeginChildEx");
90             bindFunc(cast(void**)&igEndChild, "igEndChild");
91             bindFunc(cast(void**)&igGetContentRegionMax, "igGetContentRegionMax");
92             bindFunc(cast(void**)&igGetContentRegionAvail, "igGetContentRegionAvail");
93             bindFunc(cast(void**)&igGetContentRegionAvailWidth, "igGetContentRegionAvailWidth");
94             bindFunc(cast(void**)&igGetWindowContentRegionMin, "igGetWindowContentRegionMin");
95             bindFunc(cast(void**)&igGetWindowContentRegionMax, "igGetWindowContentRegionMax");
96             bindFunc(cast(void**)&igGetWindowContentRegionWidth, "igGetWindowContentRegionWidth");
97             bindFunc(cast(void**)&igGetWindowDrawList, "igGetWindowDrawList");
98             bindFunc(cast(void**)&igGetWindowPos, "igGetWindowPos");
99             bindFunc(cast(void**)&igGetWindowSize, "igGetWindowSize");
100             bindFunc(cast(void**)&igGetWindowWidth, "igGetWindowWidth");
101             bindFunc(cast(void**)&igGetWindowHeight, "igGetWindowHeight");
102             bindFunc(cast(void**)&igIsWindowCollapsed, "igIsWindowCollapsed");
103             bindFunc(cast(void**)&igSetWindowFontScale, "igSetWindowFontScale");
104             bindFunc(cast(void**)&igSetNextWindowPos, "igSetNextWindowPos");
105             bindFunc(cast(void**)&igSetNextWindowSize, "igSetNextWindowSize");
106             bindFunc(cast(void**)&igSetNextWindowSizeConstraints, "igSetNextWindowSizeConstraints");
107             bindFunc(cast(void**)&igSetNextWindowContentSize, "igSetNextWindowContentSize");
108             bindFunc(cast(void**)&igSetNextWindowCollapsed, "igSetNextWindowCollapsed");
109             bindFunc(cast(void**)&igSetNextWindowFocus, "igSetNextWindowFocus");
110             bindFunc(cast(void**)&igSetWindowPos, "igSetWindowPos");
111             bindFunc(cast(void**)&igSetWindowSize, "igSetWindowSize");
112             bindFunc(cast(void**)&igSetWindowCollapsed, "igSetWindowCollapsed");
113             bindFunc(cast(void**)&igSetWindowFocus, "igSetWindowFocus");
114             bindFunc(cast(void**)&igSetWindowPosByName, "igSetWindowPosByName");
115             bindFunc(cast(void**)&igSetWindowSize2, "igSetWindowSize2");
116             bindFunc(cast(void**)&igSetWindowCollapsed2, "igSetWindowCollapsed2");
117             bindFunc(cast(void**)&igSetWindowFocus2, "igSetWindowFocus2");
118             bindFunc(cast(void**)&igGetScrollX, "igGetScrollX");
119             bindFunc(cast(void**)&igGetScrollY, "igGetScrollY");
120             bindFunc(cast(void**)&igGetScrollMaxX, "igGetScrollMaxX");
121             bindFunc(cast(void**)&igGetScrollMaxY, "igGetScrollMaxY");
122             bindFunc(cast(void**)&igSetScrollX, "igSetScrollX");
123             bindFunc(cast(void**)&igSetScrollY, "igSetScrollY");
124             bindFunc(cast(void**)&igSetScrollHere, "igSetScrollHere");
125             bindFunc(cast(void**)&igSetScrollFromPosY, "igSetScrollFromPosY");
126             bindFunc(cast(void**)&igSetKeyboardFocusHere, "igSetKeyboardFocusHere");
127             bindFunc(cast(void**)&igSetStateStorage, "igSetStateStorage");
128             bindFunc(cast(void**)&igGetStateStorage, "igGetStateStorage");
129             bindFunc(cast(void**)&igPushFont, "igPushFont");
130             bindFunc(cast(void**)&igPopFont, "igPopFont");
131             bindFunc(cast(void**)&igPushStyleColorU32, "igPushStyleColorU32");
132             bindFunc(cast(void**)&igPushStyleColor, "igPushStyleColor");
133             bindFunc(cast(void**)&igPopStyleColor, "igPopStyleColor");
134             bindFunc(cast(void**)&igPushStyleVar, "igPushStyleVar");
135             bindFunc(cast(void**)&igPushStyleVarVec, "igPushStyleVarVec");
136             bindFunc(cast(void**)&igPopStyleVar, "igPopStyleVar");
137             bindFunc(cast(void**)&igGetStyleColorVec4, "igGetStyleColorVec4");
138             bindFunc(cast(void**)&igGetFont, "igGetFont");
139             bindFunc(cast(void**)&igGetFontSize, "igGetFontSize");
140             bindFunc(cast(void**)&igGetFontTexUvWhitePixel, "igGetFontTexUvWhitePixel");
141             bindFunc(cast(void**)&igGetColorU32, "igGetColorU32");
142             bindFunc(cast(void**)&igGetColorU32Vec, "igGetColorU32Vec");
143             bindFunc(cast(void**)&igGetColorU32U32, "igGetColorU32U32");
144             bindFunc(cast(void**)&igPushItemWidth, "igPushItemWidth");
145             bindFunc(cast(void**)&igPopItemWidth, "igPopItemWidth");
146             bindFunc(cast(void**)&igCalcItemWidth, "igCalcItemWidth");
147             bindFunc(cast(void**)&igPushTextWrapPos, "igPushTextWrapPos");
148             bindFunc(cast(void**)&igPopTextWrapPos, "igPopTextWrapPos");
149             bindFunc(cast(void**)&igPushAllowKeyboardFocus, "igPushAllowKeyboardFocus");
150             bindFunc(cast(void**)&igPopAllowKeyboardFocus, "igPopAllowKeyboardFocus");
151             bindFunc(cast(void**)&igPushButtonRepeat, "igPushButtonRepeat");
152             bindFunc(cast(void**)&igPopButtonRepeat, "igPopButtonRepeat");
153             bindFunc(cast(void**)&igSeparator, "igSeparator");
154             bindFunc(cast(void**)&igSameLine, "igSameLine");
155             bindFunc(cast(void**)&igNewLine, "igNewLine");
156             bindFunc(cast(void**)&igSpacing, "igSpacing");
157             bindFunc(cast(void**)&igDummy, "igDummy");
158             bindFunc(cast(void**)&igIndent, "igIndent");
159             bindFunc(cast(void**)&igUnindent, "igUnindent");
160             bindFunc(cast(void**)&igBeginGroup, "igBeginGroup");
161             bindFunc(cast(void**)&igEndGroup, "igEndGroup");
162             bindFunc(cast(void**)&igGetCursorPos, "igGetCursorPos");
163             bindFunc(cast(void**)&igGetCursorPosX, "igGetCursorPosX");
164             bindFunc(cast(void**)&igGetCursorPosY, "igGetCursorPosY");
165             bindFunc(cast(void**)&igSetCursorPos, "igSetCursorPos");
166             bindFunc(cast(void**)&igSetCursorPosX, "igSetCursorPosX");
167             bindFunc(cast(void**)&igSetCursorPosY, "igSetCursorPosY");
168             bindFunc(cast(void**)&igGetCursorStartPos, "igGetCursorStartPos");
169             bindFunc(cast(void**)&igGetCursorScreenPos, "igGetCursorScreenPos");
170             bindFunc(cast(void**)&igSetCursorScreenPos, "igSetCursorScreenPos");
171             bindFunc(cast(void**)&igAlignTextToFramePadding, "igAlignTextToFramePadding");
172             bindFunc(cast(void**)&igGetTextLineHeight, "igGetTextLineHeight");
173             bindFunc(cast(void**)&igGetTextLineHeightWithSpacing, "igGetTextLineHeightWithSpacing");
174             bindFunc(cast(void**)&igGetFrameHeightWithSpacing, "igGetFrameHeightWithSpacing");
175             bindFunc(cast(void**)&igColumns, "igColumns");
176             bindFunc(cast(void**)&igNextColumn, "igNextColumn");
177             bindFunc(cast(void**)&igGetColumnIndex, "igGetColumnIndex");
178             bindFunc(cast(void**)&igGetColumnWidth, "igGetColumnWidth");
179             bindFunc(cast(void**)&igSetColumnWidth, "igSetColumnWidth");
180             bindFunc(cast(void**)&igGetColumnOffset, "igGetColumnOffset");
181             bindFunc(cast(void**)&igSetColumnOffset, "igSetColumnOffset");
182             bindFunc(cast(void**)&igGetColumnsCount, "igGetColumnsCount");
183             bindFunc(cast(void**)&igPushIDStr, "igPushIDStr");
184             bindFunc(cast(void**)&igPushIDStrRange, "igPushIDStrRange");
185             bindFunc(cast(void**)&igPushIDPtr, "igPushIDPtr");
186             bindFunc(cast(void**)&igPushIDInt, "igPushIDInt");
187             bindFunc(cast(void**)&igPopID, "igPopID");
188             bindFunc(cast(void**)&igGetIDStr, "igGetIDStr");
189             bindFunc(cast(void**)&igGetIDStrRange, "igGetIDStrRange");
190             bindFunc(cast(void**)&igGetIDPtr, "igGetIDPtr");
191             bindFunc(cast(void**)&igText, "igText");
192             bindFunc(cast(void**)&igTextV, "igTextV");
193             bindFunc(cast(void**)&igTextColored, "igTextColored");
194             bindFunc(cast(void**)&igTextColoredV, "igTextColoredV");
195             bindFunc(cast(void**)&igTextDisabled, "igTextDisabled");
196             bindFunc(cast(void**)&igTextDisabledV, "igTextDisabledV");
197             bindFunc(cast(void**)&igTextWrapped, "igTextWrapped");
198             bindFunc(cast(void**)&igTextWrappedV, "igTextWrappedV");
199             bindFunc(cast(void**)&igTextUnformatted, "igTextUnformatted");
200             bindFunc(cast(void**)&igLabelText, "igLabelText");
201             bindFunc(cast(void**)&igLabelTextV, "igLabelTextV");
202             bindFunc(cast(void**)&igBullet, "igBullet");
203             bindFunc(cast(void**)&igBulletText, "igBulletText");
204             bindFunc(cast(void**)&igBulletTextV, "igBulletTextV");
205             bindFunc(cast(void**)&igButton, "igButton");
206             bindFunc(cast(void**)&igSmallButton, "igSmallButton");
207             bindFunc(cast(void**)&igInvisibleButton, "igInvisibleButton");
208             bindFunc(cast(void**)&igImage, "igImage");
209             bindFunc(cast(void**)&igImageButton, "igImageButton");
210             bindFunc(cast(void**)&igCheckbox, "igCheckbox");
211             bindFunc(cast(void**)&igCheckboxFlags, "igCheckboxFlags");
212             bindFunc(cast(void**)&igRadioButtonBool, "igRadioButtonBool");
213             bindFunc(cast(void**)&igRadioButton, "igRadioButton");
214             bindFunc(cast(void**)&igCombo, "igCombo");
215             bindFunc(cast(void**)&igCombo2, "igCombo2");
216             bindFunc(cast(void**)&igCombo3, "igCombo3");
217             bindFunc(cast(void**)&igPlotLines, "igPlotLines");
218             bindFunc(cast(void**)&igPlotLines2, "igPlotLines2");
219             bindFunc(cast(void**)&igPlotHistogram, "igPlotHistogram");
220             bindFunc(cast(void**)&igPlotHistogram2, "igPlotHistogram2");
221             bindFunc(cast(void**)&igProgressBar, "igProgressBar");
222             bindFunc(cast(void**)&igDragFloat, "igDragFloat");
223             bindFunc(cast(void**)&igDragFloat2, "igDragFloat2");
224             bindFunc(cast(void**)&igDragFloat3, "igDragFloat3");
225             bindFunc(cast(void**)&igDragFloat4, "igDragFloat4");
226             bindFunc(cast(void**)&igDragFloatRange2, "igDragFloatRange2");
227             bindFunc(cast(void**)&igDragInt, "igDragInt");
228             bindFunc(cast(void**)&igDragInt2, "igDragInt2");
229             bindFunc(cast(void**)&igDragInt3, "igDragInt3");
230             bindFunc(cast(void**)&igDragInt4, "igDragInt4");
231             bindFunc(cast(void**)&igDragIntRange2, "igDragIntRange2");
232             bindFunc(cast(void**)&igInputText, "igInputText");
233             bindFunc(cast(void**)&igInputTextMultiline, "igInputTextMultiline");
234             bindFunc(cast(void**)&igInputFloat, "igInputFloat");
235             bindFunc(cast(void**)&igInputFloat2, "igInputFloat2");
236             bindFunc(cast(void**)&igInputFloat3, "igInputFloat3");
237             bindFunc(cast(void**)&igInputFloat4, "igInputFloat4");
238             bindFunc(cast(void**)&igInputInt, "igInputInt");
239             bindFunc(cast(void**)&igInputInt2, "igInputInt2");
240             bindFunc(cast(void**)&igInputInt3, "igInputInt3");
241             bindFunc(cast(void**)&igInputInt4, "igInputInt4");
242             bindFunc(cast(void**)&igSliderFloat, "igSliderFloat");
243             bindFunc(cast(void**)&igSliderFloat2, "igSliderFloat2");
244             bindFunc(cast(void**)&igSliderFloat3, "igSliderFloat3");
245             bindFunc(cast(void**)&igSliderFloat4, "igSliderFloat4");
246             bindFunc(cast(void**)&igSliderAngle, "igSliderAngle");
247             bindFunc(cast(void**)&igSliderInt, "igSliderInt");
248             bindFunc(cast(void**)&igSliderInt2, "igSliderInt2");
249             bindFunc(cast(void**)&igSliderInt3, "igSliderInt3");
250             bindFunc(cast(void**)&igSliderInt4, "igSliderInt4");
251             bindFunc(cast(void**)&igVSliderFloat, "igVSliderFloat");
252             bindFunc(cast(void**)&igVSliderInt, "igVSliderInt");
253             bindFunc(cast(void**)&igColorEdit3, "igColorEdit3");
254             bindFunc(cast(void**)&igColorEdit4, "igColorEdit4");
255             bindFunc(cast(void**)&igColorPicker3, "igColorPicker3");
256             bindFunc(cast(void**)&igColorPicker4, "igColorPicker4");
257             bindFunc(cast(void**)&igColorButton, "igColorButton");
258             bindFunc(cast(void**)&igSetColorEditOptions, "igSetColorEditOptions");
259             bindFunc(cast(void**)&igTreeNode, "igTreeNode");
260             bindFunc(cast(void**)&igTreeNodeStr, "igTreeNodeStr");
261             bindFunc(cast(void**)&igTreeNodePtr, "igTreeNodePtr");
262             bindFunc(cast(void**)&igTreeNodeStrV, "igTreeNodeStrV");
263             bindFunc(cast(void**)&igTreeNodePtrV, "igTreeNodePtrV");
264             bindFunc(cast(void**)&igTreeNodeEx, "igTreeNodeEx");
265             bindFunc(cast(void**)&igTreeNodeExStr, "igTreeNodeExStr");
266             bindFunc(cast(void**)&igTreeNodeExPtr, "igTreeNodeExPtr");
267             bindFunc(cast(void**)&igTreeNodeExV, "igTreeNodeExV");
268             bindFunc(cast(void**)&igTreeNodeExVPtr, "igTreeNodeExVPtr");
269             bindFunc(cast(void**)&igTreePushStr, "igTreePushStr");
270             bindFunc(cast(void**)&igTreePushPtr, "igTreePushPtr");
271             bindFunc(cast(void**)&igTreePop, "igTreePop");
272             bindFunc(cast(void**)&igTreeAdvanceToLabelPos, "igTreeAdvanceToLabelPos");
273             bindFunc(cast(void**)&igGetTreeNodeToLabelSpacing, "igGetTreeNodeToLabelSpacing");
274             bindFunc(cast(void**)&igSetNextTreeNodeOpen, "igSetNextTreeNodeOpen");
275             bindFunc(cast(void**)&igCollapsingHeader, "igCollapsingHeader");
276             bindFunc(cast(void**)&igCollapsingHeaderEx, "igCollapsingHeaderEx");
277             bindFunc(cast(void**)&igSelectable, "igSelectable");
278             bindFunc(cast(void**)&igSelectableEx, "igSelectableEx");
279             bindFunc(cast(void**)&igListBox, "igListBox");
280             bindFunc(cast(void**)&igListBox2, "igListBox2");
281             bindFunc(cast(void**)&igListBoxHeader, "igListBoxHeader");
282             bindFunc(cast(void**)&igListBoxHeader2, "igListBoxHeader2");
283             bindFunc(cast(void**)&igListBoxFooter, "igListBoxFooter");
284             bindFunc(cast(void**)&igValueBool, "igValueBool");
285             bindFunc(cast(void**)&igValueInt, "igValueInt");
286             bindFunc(cast(void**)&igValueUInt, "igValueUInt");
287             bindFunc(cast(void**)&igValueFloat, "igValueFloat");
288             bindFunc(cast(void**)&igSetTooltip, "igSetTooltip");
289             bindFunc(cast(void**)&igSetTooltipV, "igSetTooltipV");
290             bindFunc(cast(void**)&igBeginTooltip, "igBeginTooltip");
291             bindFunc(cast(void**)&igEndTooltip, "igEndTooltip");
292             bindFunc(cast(void**)&igBeginMainMenuBar, "igBeginMainMenuBar");
293             bindFunc(cast(void**)&igEndMainMenuBar, "igEndMainMenuBar");
294             bindFunc(cast(void**)&igBeginMenuBar, "igBeginMenuBar");
295             bindFunc(cast(void**)&igEndMenuBar, "igEndMenuBar");
296             bindFunc(cast(void**)&igBeginMenu, "igBeginMenu");
297             bindFunc(cast(void**)&igEndMenu, "igEndMenu");
298             bindFunc(cast(void**)&igMenuItem, "igMenuItem");
299             bindFunc(cast(void**)&igMenuItemPtr, "igMenuItemPtr");
300             bindFunc(cast(void**)&igOpenPopup, "igOpenPopup");
301             bindFunc(cast(void**)&igBeginPopup, "igBeginPopup");
302             bindFunc(cast(void**)&igBeginPopupModal, "igBeginPopupModal");
303             bindFunc(cast(void**)&igBeginPopupContextItem, "igBeginPopupContextItem");
304             bindFunc(cast(void**)&igBeginPopupContextWindow, "igBeginPopupContextWindow");
305             bindFunc(cast(void**)&igBeginPopupContextVoid, "igBeginPopupContextVoid");
306             bindFunc(cast(void**)&igEndPopup, "igEndPopup");
307             bindFunc(cast(void**)&igIsPopupOpen, "igIsPopupOpen");
308             bindFunc(cast(void**)&igCloseCurrentPopup, "igCloseCurrentPopup");
309             bindFunc(cast(void**)&igLogToTTY, "igLogToTTY");
310             bindFunc(cast(void**)&igLogToFile, "igLogToFile");
311             bindFunc(cast(void**)&igLogToClipboard, "igLogToClipboard");
312             bindFunc(cast(void**)&igLogFinish, "igLogFinish");
313             bindFunc(cast(void**)&igLogButtons, "igLogButtons");
314             bindFunc(cast(void**)&igLogText, "igLogText");
315             bindFunc(cast(void**)&igPushClipRect, "igPushClipRect");
316             bindFunc(cast(void**)&igPopClipRect, "igPopClipRect");
317             bindFunc(cast(void**)&igIsItemHovered, "igIsItemHovered");
318             bindFunc(cast(void**)&igIsItemActive, "igIsItemActive");
319             bindFunc(cast(void**)&igIsItemClicked, "igIsItemClicked");
320             bindFunc(cast(void**)&igIsItemVisible, "igIsItemVisible");
321             bindFunc(cast(void**)&igIsAnyItemHovered, "igIsAnyItemHovered");
322             bindFunc(cast(void**)&igIsAnyItemActive, "igIsAnyItemActive");
323             bindFunc(cast(void**)&igGetItemRectMin, "igGetItemRectMin");
324             bindFunc(cast(void**)&igGetItemRectMax, "igGetItemRectMax");
325             bindFunc(cast(void**)&igGetItemRectSize, "igGetItemRectSize");
326             bindFunc(cast(void**)&igSetItemAllowOverlap, "igSetItemAllowOverlap");
327             bindFunc(cast(void**)&igIsWindowFocused, "igIsWindowFocused");
328             bindFunc(cast(void**)&igIsWindowHovered, "igIsWindowHovered");
329             bindFunc(cast(void**)&igIsAnyWindowHovered, "igIsAnyWindowHovered");
330             bindFunc(cast(void**)&igIsRectVisible, "igIsRectVisible");
331             bindFunc(cast(void**)&igIsRectVisible2, "igIsRectVisible2");
332             bindFunc(cast(void**)&igGetTime, "igGetTime");
333             bindFunc(cast(void**)&igGetFrameCount, "igGetFrameCount");
334             bindFunc(cast(void**)&igGetStyleColorName, "igGetStyleColorName");
335             bindFunc(cast(void**)&igCalcItemRectClosestPoint, "igCalcItemRectClosestPoint");
336             bindFunc(cast(void**)&igCalcTextSize, "igCalcTextSize");
337             bindFunc(cast(void**)&igCalcListClipping, "igCalcListClipping");
338             bindFunc(cast(void**)&igBeginChildFrame, "igBeginChildFrame");
339             bindFunc(cast(void**)&igEndChildFrame, "igEndChildFrame");
340             bindFunc(cast(void**)&igColorConvertU32ToFloat4, "igColorConvertU32ToFloat4");
341             bindFunc(cast(void**)&igColorConvertFloat4ToU32, "igColorConvertFloat4ToU32");
342             bindFunc(cast(void**)&igColorConvertRGBtoHSV, "igColorConvertRGBtoHSV");
343             bindFunc(cast(void**)&igColorConvertHSVtoRGB, "igColorConvertHSVtoRGB");
344             bindFunc(cast(void**)&igGetKeyIndex, "igGetKeyIndex");
345             bindFunc(cast(void**)&igIsKeyDown, "igIsKeyDown");
346             bindFunc(cast(void**)&igIsKeyPressed, "igIsKeyPressed");
347             bindFunc(cast(void**)&igIsKeyReleased, "igIsKeyReleased");
348             bindFunc(cast(void**)&igIsMouseDown, "igIsMouseDown");
349             bindFunc(cast(void**)&igIsMouseClicked, "igIsMouseClicked");
350             bindFunc(cast(void**)&igIsMouseDoubleClicked, "igIsMouseDoubleClicked");
351             bindFunc(cast(void**)&igIsMouseReleased, "igIsMouseReleased");
352             bindFunc(cast(void**)&igIsMouseDragging, "igIsMouseDragging");
353             bindFunc(cast(void**)&igIsMouseHoveringRect, "igIsMouseHoveringRect");
354             bindFunc(cast(void**)&igIsMousePosValid, "igIsMousePosValid");
355             bindFunc(cast(void**)&igGetMousePos, "igGetMousePos");
356             bindFunc(cast(void**)&igGetMousePosOnOpeningCurrentPopup, "igGetMousePosOnOpeningCurrentPopup");
357             bindFunc(cast(void**)&igGetMouseDragDelta, "igGetMouseDragDelta");
358             bindFunc(cast(void**)&igResetMouseDragDelta, "igResetMouseDragDelta");
359             bindFunc(cast(void**)&igGetMouseCursor, "igGetMouseCursor");
360             bindFunc(cast(void**)&igSetMouseCursor, "igSetMouseCursor");
361             bindFunc(cast(void**)&igCaptureKeyboardFromApp, "igCaptureKeyboardFromApp");
362             bindFunc(cast(void**)&igCaptureMouseFromApp, "igCaptureMouseFromApp");
363 
364             bindFunc(cast(void**)&igMemAlloc, "igMemAlloc");
365             bindFunc(cast(void**)&igMemFree, "igMemFree");
366             bindFunc(cast(void**)&igGetClipboardText, "igGetClipboardText");
367             bindFunc(cast(void**)&igSetClipboardText, "igSetClipboardText");
368 
369             bindFunc(cast(void**)&igGetVersion, "igGetVersion");
370             bindFunc(cast(void**)&igCreateContext, "igCreateContext");
371             bindFunc(cast(void**)&igDestroyContext, "igDestroyContext");
372             bindFunc(cast(void**)&igGetCurrentContext, "igGetCurrentContext");
373             bindFunc(cast(void**)&igSetCurrentContext, "igSetCurrentContext");
374 
375             bindFunc(cast(void**)&ImGuiIO_AddInputCharacter, "ImGuiIO_AddInputCharacter");
376             bindFunc(cast(void**)&ImGuiIO_AddInputCharactersUTF8, "ImGuiIO_AddInputCharactersUTF8");
377             bindFunc(cast(void**)&ImGuiIO_ClearInputCharacters, "ImGuiIO_ClearInputCharacters");
378             bindFunc(cast(void**)&ImGuiTextFilter_Create, "ImGuiTextFilter_Create");
379             bindFunc(cast(void**)&ImGuiTextFilter_Destroy, "ImGuiTextFilter_Destroy");
380             bindFunc(cast(void**)&ImGuiTextFilter_Clear, "ImGuiTextFilter_Clear");
381             bindFunc(cast(void**)&ImGuiTextFilter_Draw, "ImGuiTextFilter_Draw");
382             bindFunc(cast(void**)&ImGuiTextFilter_PassFilter, "ImGuiTextFilter_PassFilter");
383             bindFunc(cast(void**)&ImGuiTextFilter_IsActive, "ImGuiTextFilter_IsActive");
384             bindFunc(cast(void**)&ImGuiTextFilter_Build, "ImGuiTextFilter_Build");
385             bindFunc(cast(void**)&ImGuiTextFilter_GetInputBuf, "ImGuiTextFilter_GetInputBuf");
386             bindFunc(cast(void**)&ImGuiTextBuffer_Create, "ImGuiTextBuffer_Create");
387             bindFunc(cast(void**)&ImGuiTextBuffer_Destroy, "ImGuiTextBuffer_Destroy");
388             bindFunc(cast(void**)&ImGuiTextBuffer_index, "ImGuiTextBuffer_index");
389             bindFunc(cast(void**)&ImGuiTextBuffer_begin, "ImGuiTextBuffer_begin");
390             bindFunc(cast(void**)&ImGuiTextBuffer_end, "ImGuiTextBuffer_end");
391             bindFunc(cast(void**)&ImGuiTextBuffer_size, "ImGuiTextBuffer_size");
392             bindFunc(cast(void**)&ImGuiTextBuffer_empty, "ImGuiTextBuffer_empty");
393             bindFunc(cast(void**)&ImGuiTextBuffer_clear, "ImGuiTextBuffer_clear");
394             bindFunc(cast(void**)&ImGuiTextBuffer_c_str, "ImGuiTextBuffer_c_str");
395             bindFunc(cast(void**)&ImGuiTextBuffer_appendf, "ImGuiTextBuffer_appendf");
396             bindFunc(cast(void**)&ImGuiTextBuffer_appendfv, "ImGuiTextBuffer_appendfv");
397             bindFunc(cast(void**)&ImGuiStorage_Create, "ImGuiStorage_Create");
398             bindFunc(cast(void**)&ImGuiStorage_Destroy, "ImGuiStorage_Destroy");
399             bindFunc(cast(void**)&ImGuiStorage_Clear, "ImGuiStorage_Clear");
400             bindFunc(cast(void**)&ImGuiStorage_GetInt, "ImGuiStorage_GetInt");
401             bindFunc(cast(void**)&ImGuiStorage_SetInt, "ImGuiStorage_SetInt");
402             bindFunc(cast(void**)&ImGuiStorage_GetBool, "ImGuiStorage_GetBool");
403             bindFunc(cast(void**)&ImGuiStorage_SetBool, "ImGuiStorage_SetBool");
404             bindFunc(cast(void**)&ImGuiStorage_GetFloat, "ImGuiStorage_GetFloat");
405             bindFunc(cast(void**)&ImGuiStorage_SetFloat, "ImGuiStorage_SetFloat");
406             bindFunc(cast(void**)&ImGuiStorage_GetVoidPtr, "ImGuiStorage_GetVoidPtr");
407             bindFunc(cast(void**)&ImGuiStorage_SetVoidPtr, "ImGuiStorage_SetVoidPtr");
408             bindFunc(cast(void**)&ImGuiStorage_GetIntRef, "ImGuiStorage_GetIntRef");
409             bindFunc(cast(void**)&ImGuiStorage_GetBoolRef, "ImGuiStorage_GetBoolRef");
410             bindFunc(cast(void**)&ImGuiStorage_GetFloatRef, "ImGuiStorage_GetFloatRef");
411             bindFunc(cast(void**)&ImGuiStorage_GetVoidPtrRef, "ImGuiStorage_GetVoidPtrRef");
412             bindFunc(cast(void**)&ImGuiStorage_SetAllInt, "ImGuiStorage_SetAllInt");
413             bindFunc(cast(void**)&ImGuiTextEditCallbackData_DeleteChars, "ImGuiTextEditCallbackData_DeleteChars");
414             bindFunc(cast(void**)&ImGuiTextEditCallbackData_InsertChars, "ImGuiTextEditCallbackData_InsertChars");
415             bindFunc(cast(void**)&ImGuiTextEditCallbackData_HasSelection, "ImGuiTextEditCallbackData_HasSelection");
416             bindFunc(cast(void**)&ImGuiListClipper_Begin, "ImGuiListClipper_Begin");
417             bindFunc(cast(void**)&ImGuiListClipper_End, "ImGuiListClipper_End");
418             bindFunc(cast(void**)&ImGuiListClipper_Step, "ImGuiListClipper_Step");
419             bindFunc(cast(void**)&ImGuiListClipper_GetDisplayStart, "ImGuiListClipper_GetDisplayStart");
420             bindFunc(cast(void**)&ImGuiListClipper_GetDisplayEnd, "ImGuiListClipper_GetDisplayEnd");
421             bindFunc(cast(void**)&ImDrawList_GetVertexBufferSize, "ImDrawList_GetVertexBufferSize");
422             bindFunc(cast(void**)&ImDrawList_GetVertexPtr, "ImDrawList_GetVertexPtr");
423             bindFunc(cast(void**)&ImDrawList_GetIndexBufferSize, "ImDrawList_GetIndexBufferSize");
424             bindFunc(cast(void**)&ImDrawList_GetIndexPtr, "ImDrawList_GetIndexPtr");
425             bindFunc(cast(void**)&ImDrawList_GetCmdSize, "ImDrawList_GetCmdSize");
426             bindFunc(cast(void**)&ImDrawList_GetCmdPtr, "ImDrawList_GetCmdPtr");
427             bindFunc(cast(void**)&ImDrawList_Clear, "ImDrawList_Clear");
428             bindFunc(cast(void**)&ImDrawList_ClearFreeMemory, "ImDrawList_ClearFreeMemory");
429             bindFunc(cast(void**)&ImDrawList_PushClipRect, "ImDrawList_PushClipRect");
430             bindFunc(cast(void**)&ImDrawList_PushClipRectFullScreen, "ImDrawList_PushClipRectFullScreen");
431             bindFunc(cast(void**)&ImDrawList_PopClipRect, "ImDrawList_PopClipRect");
432             bindFunc(cast(void**)&ImDrawList_PushTextureID, "ImDrawList_PushTextureID");
433             bindFunc(cast(void**)&ImDrawList_PopTextureID, "ImDrawList_PopTextureID");
434             bindFunc(cast(void**)&ImDrawList_GetClipRectMin, "ImDrawList_GetClipRectMin");
435             bindFunc(cast(void**)&ImDrawList_GetClipRectMax, "ImDrawList_GetClipRectMax");
436             bindFunc(cast(void**)&ImDrawList_AddLine, "ImDrawList_AddLine");
437             bindFunc(cast(void**)&ImDrawList_AddRect, "ImDrawList_AddRect");
438             bindFunc(cast(void**)&ImDrawList_AddRectFilled, "ImDrawList_AddRectFilled");
439             bindFunc(cast(void**)&ImDrawList_AddRectFilledMultiColor, "ImDrawList_AddRectFilledMultiColor");
440             bindFunc(cast(void**)&ImDrawList_AddQuad, "ImDrawList_AddQuad");
441             bindFunc(cast(void**)&ImDrawList_AddQuadFilled, "ImDrawList_AddQuadFilled");
442             bindFunc(cast(void**)&ImDrawList_AddTriangle, "ImDrawList_AddTriangle");
443             bindFunc(cast(void**)&ImDrawList_AddTriangleFilled, "ImDrawList_AddTriangleFilled");
444             bindFunc(cast(void**)&ImDrawList_AddCircle, "ImDrawList_AddCircle");
445             bindFunc(cast(void**)&ImDrawList_AddCircleFilled, "ImDrawList_AddCircleFilled");
446             bindFunc(cast(void**)&ImDrawList_AddText, "ImDrawList_AddText");
447             bindFunc(cast(void**)&ImDrawList_AddTextExt, "ImDrawList_AddTextExt");
448             bindFunc(cast(void**)&ImDrawList_AddImage, "ImDrawList_AddImage");
449             bindFunc(cast(void**)&ImDrawList_AddImageQuad, "ImDrawList_AddImageQuad");
450             bindFunc(cast(void**)&ImDrawList_AddPolyline, "ImDrawList_AddPolyline");
451             bindFunc(cast(void**)&ImDrawList_AddConvexPolyFilled, "ImDrawList_AddConvexPolyFilled");
452             bindFunc(cast(void**)&ImDrawList_AddBezierCurve, "ImDrawList_AddBezierCurve");
453             bindFunc(cast(void**)&ImDrawList_PathClear, "ImDrawList_PathClear");
454             bindFunc(cast(void**)&ImDrawList_PathLineTo, "ImDrawList_PathLineTo");
455             bindFunc(cast(void**)&ImDrawList_PathLineToMergeDuplicate, "ImDrawList_PathLineToMergeDuplicate");
456             bindFunc(cast(void**)&ImDrawList_PathFillConvex, "ImDrawList_PathFillConvex");
457             bindFunc(cast(void**)&ImDrawList_PathStroke, "ImDrawList_PathStroke");
458             bindFunc(cast(void**)&ImDrawList_PathArcTo, "ImDrawList_PathArcTo");
459             bindFunc(cast(void**)&ImDrawList_PathArcToFast, "ImDrawList_PathArcToFast");
460             bindFunc(cast(void**)&ImDrawList_PathBezierCurveTo, "ImDrawList_PathBezierCurveTo");
461             bindFunc(cast(void**)&ImDrawList_PathRect, "ImDrawList_PathRect");
462             bindFunc(cast(void**)&ImDrawList_ChannelsSplit, "ImDrawList_ChannelsSplit");
463             bindFunc(cast(void**)&ImDrawList_ChannelsMerge, "ImDrawList_ChannelsMerge");
464             bindFunc(cast(void**)&ImDrawList_ChannelsSetCurrent, "ImDrawList_ChannelsSetCurrent");
465             bindFunc(cast(void**)&ImDrawList_AddCallback, "ImDrawList_AddCallback");
466             bindFunc(cast(void**)&ImDrawList_AddDrawCmd, "ImDrawList_AddDrawCmd");
467             bindFunc(cast(void**)&ImDrawList_PrimReserve, "ImDrawList_PrimReserve");
468             bindFunc(cast(void**)&ImDrawList_PrimRect, "ImDrawList_PrimRect");
469             bindFunc(cast(void**)&ImDrawList_PrimRectUV, "ImDrawList_PrimRectUV");
470             bindFunc(cast(void**)&ImDrawList_PrimQuadUV, "ImDrawList_PrimQuadUV");
471             bindFunc(cast(void**)&ImDrawList_PrimVtx, "ImDrawList_PrimVtx");
472             bindFunc(cast(void**)&ImDrawList_PrimWriteVtx, "ImDrawList_PrimWriteVtx");
473             bindFunc(cast(void**)&ImDrawList_PrimWriteIdx, "ImDrawList_PrimWriteIdx");
474             bindFunc(cast(void**)&ImDrawList_UpdateClipRect, "ImDrawList_UpdateClipRect");
475             bindFunc(cast(void**)&ImDrawList_UpdateTextureID, "ImDrawList_UpdateTextureID");
476             bindFunc(cast(void**)&ImDrawData_DeIndexAllBuffers, "ImDrawData_DeIndexAllBuffers");
477             bindFunc(cast(void**)&ImDrawData_ScaleClipRects, "ImDrawData_ScaleClipRects");
478             bindFunc(cast(void**)&ImFontAtlas_AddFont, "ImFontAtlas_AddFont");
479             bindFunc(cast(void**)&ImFontAtlas_AddFontDefault, "ImFontAtlas_AddFontDefault");
480             bindFunc(cast(void**)&ImFontAtlas_AddFontFromFileTTF, "ImFontAtlas_AddFontFromFileTTF");
481             bindFunc(cast(void**)&ImFontAtlas_AddFontFromMemoryTTF, "ImFontAtlas_AddFontFromMemoryTTF");
482             bindFunc(cast(void**)&ImFontAtlas_AddFontFromMemoryCompressedTTF, "ImFontAtlas_AddFontFromMemoryCompressedTTF");
483             bindFunc(cast(void**)&ImFontAtlas_AddFontFromMemoryCompressedBase85TTF, "ImFontAtlas_AddFontFromMemoryCompressedBase85TTF");
484             bindFunc(cast(void**)&ImFontAtlas_ClearTexData, "ImFontAtlas_ClearTexData");
485             bindFunc(cast(void**)&ImFontAtlas_ClearInputData, "ImFontAtlas_ClearInputData");
486             bindFunc(cast(void**)&ImFontAtlas_ClearFonts, "ImFontAtlas_ClearFonts");
487             bindFunc(cast(void**)&ImFontAtlas_Clear, "ImFontAtlas_Clear");
488             bindFunc(cast(void**)&ImFontAtlas_GetTexDataAsAlpha8, "ImFontAtlas_GetTexDataAsAlpha8");
489             bindFunc(cast(void**)&ImFontAtlas_GetTexDataAsRGBA32, "ImFontAtlas_GetTexDataAsRGBA32");
490             bindFunc(cast(void**)&ImFontAtlas_SetTexID, "ImFontAtlas_SetTexID");
491             bindFunc(cast(void**)&ImFontAtlas_GetGlyphRangesDefault, "ImFontAtlas_GetGlyphRangesDefault");
492             bindFunc(cast(void**)&ImFontAtlas_GetGlyphRangesKorean, "ImFontAtlas_GetGlyphRangesKorean");
493             bindFunc(cast(void**)&ImFontAtlas_GetGlyphRangesJapanese, "ImFontAtlas_GetGlyphRangesJapanese");
494             bindFunc(cast(void**)&ImFontAtlas_GetGlyphRangesChinese, "ImFontAtlas_GetGlyphRangesChinese");
495             bindFunc(cast(void**)&ImFontAtlas_GetGlyphRangesCyrillic, "ImFontAtlas_GetGlyphRangesCyrillic");
496             bindFunc(cast(void**)&ImFontAtlas_GetGlyphRangesThai, "ImFontAtlas_GetGlyphRangesThai");
497             bindFunc(cast(void**)&ImFontAtlas_GetTexID, "ImFontAtlas_GetTexID");
498             bindFunc(cast(void**)&ImFontAtlas_GetTexPixelsAlpha8, "ImFontAtlas_GetTexPixelsAlpha8");
499             bindFunc(cast(void**)&ImFontAtlas_GetTexPixelsRGBA32, "ImFontAtlas_GetTexPixelsRGBA32");
500             bindFunc(cast(void**)&ImFontAtlas_GetTexWidth, "ImFontAtlas_GetTexWidth");
501             bindFunc(cast(void**)&ImFontAtlas_GetTexHeight, "ImFontAtlas_GetTexHeight");
502             bindFunc(cast(void**)&ImFontAtlas_GetTexDesiredWidth, "ImFontAtlas_GetTexDesiredWidth");
503             bindFunc(cast(void**)&ImFontAtlas_SetTexDesiredWidth, "ImFontAtlas_SetTexDesiredWidth");
504             bindFunc(cast(void**)&ImFontAtlas_GetTexGlyphPadding, "ImFontAtlas_GetTexGlyphPadding");
505             bindFunc(cast(void**)&ImFontAtlas_SetTexGlyphPadding, "ImFontAtlas_SetTexGlyphPadding");
506             bindFunc(cast(void**)&ImFontAtlas_GetTexUvWhitePixel, "ImFontAtlas_GetTexUvWhitePixel");
507             bindFunc(cast(void**)&ImFontAtlas_Fonts_size, "ImFontAtlas_Fonts_size");
508             bindFunc(cast(void**)&ImFontAtlas_Fonts_index, "ImFontAtlas_Fonts_index");
509             bindFunc(cast(void**)&ImFont_GetFontSize, "ImFont_GetFontSize");
510             bindFunc(cast(void**)&ImFont_SetFontSize, "ImFont_SetFontSize");
511             bindFunc(cast(void**)&ImFont_GetScale, "ImFont_GetScale");
512             bindFunc(cast(void**)&ImFont_SetScale, "ImFont_SetScale");
513             bindFunc(cast(void**)&ImFont_GetDisplayOffset, "ImFont_GetDisplayOffset");
514             bindFunc(cast(void**)&ImFont_GetFallbackGlyph, "ImFont_GetFallbackGlyph");
515             bindFunc(cast(void**)&ImFont_SetFallbackGlyph, "ImFont_SetFallbackGlyph");
516             bindFunc(cast(void**)&ImFont_GetFallbackAdvanceX, "ImFont_GetFallbackAdvanceX");
517             bindFunc(cast(void**)&ImFont_GetFallbackChar, "ImFont_GetFallbackChar");
518             bindFunc(cast(void**)&ImFont_GetConfigDataCount, "ImFont_GetConfigDataCount");
519             bindFunc(cast(void**)&ImFont_GetConfigData, "ImFont_GetConfigData");
520             bindFunc(cast(void**)&ImFont_GetContainerAtlas, "ImFont_GetContainerAtlas");
521             bindFunc(cast(void**)&ImFont_GetAscent, "ImFont_GetAscent");
522             bindFunc(cast(void**)&ImFont_GetDescent, "ImFont_GetDescent");
523             bindFunc(cast(void**)&ImFont_GetMetricsTotalSurface, "ImFont_GetMetricsTotalSurface");
524             bindFunc(cast(void**)&ImFont_ClearOutputData, "ImFont_ClearOutputData");
525             bindFunc(cast(void**)&ImFont_BuildLookupTable, "ImFont_BuildLookupTable");
526             bindFunc(cast(void**)&ImFont_FindGlyph, "ImFont_FindGlyph");
527             bindFunc(cast(void**)&ImFont_SetFallbackChar, "ImFont_SetFallbackChar");
528             bindFunc(cast(void**)&ImFont_GetCharAdvance, "ImFont_GetCharAdvance");
529             bindFunc(cast(void**)&ImFont_IsLoaded, "ImFont_IsLoaded");
530             bindFunc(cast(void**)&ImFont_CalcTextSizeA, "ImFont_CalcTextSizeA");
531             bindFunc(cast(void**)&ImFont_CalcWordWrapPositionA, "ImFont_CalcWordWrapPositionA");
532             bindFunc(cast(void**)&ImFont_RenderChar, "ImFont_RenderChar");
533             bindFunc(cast(void**)&ImFont_RenderText, "ImFont_RenderText");
534             bindFunc(cast(void**)&ImFont_Glyphs_size, "ImFont_Glyphs_size");
535             bindFunc(cast(void**)&ImFont_Glyphs_index, "ImFont_Glyphs_index");
536             bindFunc(cast(void**)&ImFont_IndexXAdvance_size, "ImFont_IndexXAdvance_size");
537             bindFunc(cast(void**)&ImFont_IndexXAdvance_index, "ImFont_IndexXAdvance_index");
538             bindFunc(cast(void**)&ImFont_IndexLookup_size, "ImFont_IndexLookup_size");
539             bindFunc(cast(void**)&ImFont_IndexLookup_index, "ImFont_IndexLookup_index");
540 		}
541     }
542 
543     public
544     {
545         this()
546         {
547             super(libNames);
548         }
549     }
550 }
551 
552 __gshared DerelictImguiLoader DerelictImgui;
553 
554 shared static this()
555 {
556     DerelictImgui = new DerelictImguiLoader();
557 }