structImDrawChannel;// Temporary storage to output draw commands out of order, used by ImDrawListSplitter and ImDrawList::ChannelsSplit()
structImDrawCmd;// A single draw command within a parent ImDrawList (generally maps to 1 GPU draw call, unless it is a callback)
structImDrawData;// All draw command lists required to render the frame + pos/size coordinates to use for the projection matrix.
@ -135,19 +136,12 @@ struct ImGuiSizeCallbackData; // Callback data when using SetNextWindowSiz
structImGuiStorage;// Helper for key->value storage
structImGuiStyle;// Runtime data for styling/colors
structImGuiTextBuffer;// Helper to hold and append into a text buffer (~string builder)
structImGuiTextFilter;// Helper to parse and apply text filters (e.g. "aaaaa[,bbbb][,ccccc]")
structImGuiTextFilter;// Helper to parse and apply text filters (e.g. "aaaaa[,bbbbb][,ccccc]")
// Typedefs and Enums/Flags (declared as int for compatibility with old C++, to allow using as flags and to not pollute the top of this file)
// Use your programming IDE "Go to definition" facility on the names in the central column below to find the actual flags/enum lists.
#ifndef ImTextureID
typedefvoid*ImTextureID;// User data to identify a texture (this is whatever to you want it to be! read the FAQ about ImTextureID in imgui.cpp)
#endif
typedefunsignedintImGuiID;// Unique ID used by widgets (typically hashed from a stack of string)
#ifndef ImWchar
#define ImWchar ImWchar16
#endif
typedefunsignedshortImWchar16;// A single U16 character for keyboard input/display. We encode them as multi bytes UTF-8 when used in strings.
typedefunsignedintImWchar32;// A single U32 character for keyboard input/display. Define ImWchar to ImWchar32 to use it. See imconfig.h .
// Enums/Flags (declared as int for compatibility with old C++, to allow using as flags and to not pollute the top of this file)
// - Tip: Use your programming IDE navigation facilities on the names in the _central column_ below to find the actual flags/enum lists!
// In Visual Studio IDE: CTRL+comma ("Edit.NavigateTo") can follow symbols in comments, whereas CTRL+F12 ("Edit.GoToImplementation") cannot.
// With Visual Assist installed: ALT+G ("VAssistX.GoToImplementation") can also follow symbols in comments.
typedefintImGuiCol;// -> enum ImGuiCol_ // Enum: A color identifier for styling
typedefintImGuiCond;// -> enum ImGuiCond_ // Enum: A condition for many Set*() functions
typedefintImGuiDataType;// -> enum ImGuiDataType_ // Enum: A primary data type
@ -174,10 +168,21 @@ typedef int ImGuiTabBarFlags; // -> enum ImGuiTabBarFlags_ // Flags: f
typedefintImGuiTabItemFlags;// -> enum ImGuiTabItemFlags_ // Flags: for BeginTabItem()
typedefintImGuiTreeNodeFlags;// -> enum ImGuiTreeNodeFlags_ // Flags: for TreeNode(), TreeNodeEx(), CollapsingHeader()
typedefintImGuiWindowFlags;// -> enum ImGuiWindowFlags_ // Flags: for Begin(), BeginChild()
// Other types
#ifndef ImTextureID // ImTextureID [configurable type: override in imconfig.h]
typedefvoid*ImTextureID;// User data for rendering back-end to identify a texture. This is whatever to you want it to be! read the FAQ about ImTextureID for details.
#endif
#ifndef ImWchar // ImWchar [configurable type: override in imconfig.h]
#define ImWchar ImWchar16 // Storage for a single decoded character/code point, default to 16-bit. Set to ImWchar32 to support larger Unicode planes. Note that we generally support UTF-8 encoded string, this is storage for a decoded character.
#endif
typedefunsignedintImGuiID;// A unique ID used by widgets, typically hashed from a stack of string.
typedefunsignedshortImWchar16;// A single decoded U16 character/code point for keyboard input/display. We encode them as multi bytes UTF-8 when used in strings.
typedefunsignedintImWchar32;// A single decoded U32 character/code point for keyboard input/display. To enable, use '#define ImWchar ImWchar32' in imconfig.h.
IMGUI_APIImGuiIO&GetIO();// access the IO structure (mouse/keyboard/gamepad inputs, time, various configuration options/flags)
@ -633,7 +637,7 @@ namespace ImGui
IMGUI_APIvoidLogText(constchar*fmt,...)IM_FMTARGS(1);// pass text data straight to log (without being displayed)
// Drag and Drop
// [BETA API] API may evolve!
// - [BETA API] API may evolve!
IMGUI_APIboolBeginDragDropSource(ImGuiDragDropFlagsflags=0);// call when the current item is active. If this return true, you can call SetDragDropPayload() + EndDragDropSource()
IMGUI_APIboolSetDragDropPayload(constchar*type,constvoid*data,size_tsz,ImGuiCondcond=0);// type is a user defined string of maximum 32 characters. Strings starting with '_' are reserved for dear imgui internal types. Data is copied and held by imgui.
IMGUI_APIvoidEndDragDropSource();// only call EndDragDropSource() if BeginDragDropSource() returns true!
@ -726,7 +730,8 @@ namespace ImGui
IMGUI_APIvoidSetMouseCursor(ImGuiMouseCursorcursor_type);// set desired cursor type
IMGUI_APIvoidCaptureMouseFromApp(boolwant_capture_mouse_value=true);// attention: misleading name! manually override io.WantCaptureMouse flag next frame (said flag is entirely left for your application to handle). This is equivalent to setting "io.WantCaptureMouse = want_capture_mouse_value;" after the next NewFrame() call.
// Clipboard Utilities (also see the LogToClipboard() function to capture or output text data to the clipboard)
// Clipboard Utilities
// - Also see the LogToClipboard() function to capture GUI into clipboard, or easily output text data to the clipboard.
IMGUI_APIconstchar*GetClipboardText();
IMGUI_APIvoidSetClipboardText(constchar*text);
@ -738,6 +743,9 @@ namespace ImGui
IMGUI_APIvoidSaveIniSettingsToDisk(constchar*ini_filename);// this is automatically called (if io.IniFilename is not empty) a few seconds after any modification that should be reflected in the .ini file (and also by DestroyContext).
IMGUI_APIconstchar*SaveIniSettingsToMemory(size_t*out_ini_size=NULL);// return a zero-terminated string with the .ini data which you can save by your own mean. call when io.WantSaveIniSettings is set, then save data by your own mean and clear io.WantSaveIniSettings.
// Debug Utilities
IMGUI_APIboolDebugCheckVersionAndDataLayout(constchar*version_str,size_tsz_io,size_tsz_style,size_tsz_vec2,size_tsz_vec4,size_tsz_drawvert,size_tsz_drawidx);// This is called by IMGUI_CHECKVERSION() macro.
// Memory Allocators
// - All those functions are not reliant on the current context.
// - If you reload the contents of imgui.cpp at runtime, you may need to call SetCurrentContext() + SetAllocatorFunctions() again because we use global storage for those.
@ -1825,7 +1833,7 @@ struct ImColor
// Hold a series of drawing commands. The user provides a renderer for ImDrawData which essentially contains an array of ImDrawList.
// (to allow large meshes with 16-bit indices: set 'io.BackendFlags |= ImGuiBackendFlags_RendererHasVtxOffset' and handle ImDrawCmd::VtxOffset in the renderer back-end)
// (to use 32-bit indices: override with '#define ImDrawIdx unsigned int' in imconfig.h)
// Vertex index, default to 16-bit
// To allow large meshes with 16-bit indices: set 'io.BackendFlags |= ImGuiBackendFlags_RendererHasVtxOffset' and handle ImDrawCmd::VtxOffset in the renderer back-end (recommended).
// To use 32-bit indices: override with '#define ImDrawIdx unsigned int' in imconfig.h.