mirror of
				https://github.com/Drezil/imgui.git
				synced 2025-10-31 21:21:06 +01:00 
			
		
		
		
	Comments in imgui.h
This commit is contained in:
		
							
								
								
									
										50
									
								
								imgui.h
									
									
									
									
									
								
							
							
						
						
									
										50
									
								
								imgui.h
									
									
									
									
									
								
							| @@ -112,6 +112,7 @@ Index of this file: | ||||
| // Forward declarations and basic types | ||||
| //----------------------------------------------------------------------------- | ||||
|  | ||||
| // Forward declarations | ||||
| struct ImDrawChannel;               // Temporary storage to output draw commands out of order, used by ImDrawListSplitter and ImDrawList::ChannelsSplit() | ||||
| struct ImDrawCmd;                   // A single draw command within a parent ImDrawList (generally maps to 1 GPU draw call, unless it is a callback) | ||||
| struct ImDrawData;                  // 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 | ||||
| struct ImGuiStorage;                // Helper for key->value storage | ||||
| struct ImGuiStyle;                  // Runtime data for styling/colors | ||||
| struct ImGuiTextBuffer;             // Helper to hold and append into a text buffer (~string builder) | ||||
| struct ImGuiTextFilter;             // Helper to parse and apply text filters (e.g. "aaaaa[,bbbb][,ccccc]") | ||||
| struct ImGuiTextFilter;             // 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 | ||||
| typedef void* 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 | ||||
| typedef unsigned int ImGuiID;       // Unique ID used by widgets (typically hashed from a stack of string) | ||||
| #ifndef ImWchar | ||||
| #define ImWchar ImWchar16 | ||||
| #endif | ||||
| typedef unsigned short ImWchar16;   // A single U16 character for keyboard input/display. We encode them as multi bytes UTF-8 when used in strings. | ||||
| typedef unsigned int ImWchar32;     // 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. | ||||
| typedef int ImGuiCol;               // -> enum ImGuiCol_             // Enum: A color identifier for styling | ||||
| typedef int ImGuiCond;              // -> enum ImGuiCond_            // Enum: A condition for many Set*() functions | ||||
| typedef int ImGuiDataType;          // -> enum ImGuiDataType_        // Enum: A primary data type | ||||
| @@ -174,10 +168,21 @@ typedef int ImGuiTabBarFlags;       // -> enum ImGuiTabBarFlags_     // Flags: f | ||||
| typedef int ImGuiTabItemFlags;      // -> enum ImGuiTabItemFlags_    // Flags: for BeginTabItem() | ||||
| typedef int ImGuiTreeNodeFlags;     // -> enum ImGuiTreeNodeFlags_   // Flags: for TreeNode(), TreeNodeEx(), CollapsingHeader() | ||||
| typedef int ImGuiWindowFlags;       // -> enum ImGuiWindowFlags_     // Flags: for Begin(), BeginChild() | ||||
|  | ||||
| // Other types | ||||
| #ifndef ImTextureID                 // ImTextureID [configurable type: override in imconfig.h] | ||||
| typedef void* 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 | ||||
| typedef unsigned int ImGuiID;       // A unique ID used by widgets, typically hashed from a stack of string. | ||||
| typedef unsigned short ImWchar16;   // A single decoded U16 character/code point for keyboard input/display. We encode them as multi bytes UTF-8 when used in strings. | ||||
| typedef unsigned int ImWchar32;     // A single decoded U32 character/code point for keyboard input/display. To enable, use '#define ImWchar ImWchar32' in imconfig.h. | ||||
| typedef int (*ImGuiInputTextCallback)(ImGuiInputTextCallbackData *data); | ||||
| typedef void (*ImGuiSizeCallback)(ImGuiSizeCallbackData* data); | ||||
|  | ||||
| // Scalar data types | ||||
| // Basic scalar data types | ||||
| typedef signed char         ImS8;   // 8-bit signed integer | ||||
| typedef unsigned char       ImU8;   // 8-bit unsigned integer | ||||
| typedef signed short        ImS16;  // 16-bit signed integer | ||||
| @@ -196,7 +201,7 @@ typedef signed   long long  ImS64;  // 64-bit signed integer (post C++11) | ||||
| typedef unsigned long long  ImU64;  // 64-bit unsigned integer (post C++11) | ||||
| #endif | ||||
|  | ||||
| // 2D vector (often used to store positions, sizes, etc.) | ||||
| // 2D vector (often used to store positions or sizes) | ||||
| struct ImVec2 | ||||
| { | ||||
|     float                                   x, y; | ||||
| @@ -234,7 +239,6 @@ namespace ImGui | ||||
|     IMGUI_API void          DestroyContext(ImGuiContext* ctx = NULL);   // NULL = destroy current context | ||||
|     IMGUI_API ImGuiContext* GetCurrentContext(); | ||||
|     IMGUI_API void          SetCurrentContext(ImGuiContext* ctx); | ||||
|     IMGUI_API bool          DebugCheckVersionAndDataLayout(const char* version_str, size_t sz_io, size_t sz_style, size_t sz_vec2, size_t sz_vec4, size_t sz_drawvert, size_t sz_drawidx); | ||||
|  | ||||
|     // Main | ||||
|     IMGUI_API ImGuiIO&      GetIO();                                    // access the IO structure (mouse/keyboard/gamepad inputs, time, various configuration options/flags) | ||||
| @@ -633,7 +637,7 @@ namespace ImGui | ||||
|     IMGUI_API void          LogText(const char* 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_API bool          BeginDragDropSource(ImGuiDragDropFlags flags = 0);                                      // call when the current item is active. If this return true, you can call SetDragDropPayload() + EndDragDropSource() | ||||
|     IMGUI_API bool          SetDragDropPayload(const char* type, const void* data, size_t sz, ImGuiCond cond = 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_API void          EndDragDropSource();                                                                    // only call EndDragDropSource() if BeginDragDropSource() returns true! | ||||
| @@ -726,7 +730,8 @@ namespace ImGui | ||||
|     IMGUI_API void          SetMouseCursor(ImGuiMouseCursor cursor_type);                       // set desired cursor type | ||||
|     IMGUI_API void          CaptureMouseFromApp(bool want_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_API const char*   GetClipboardText(); | ||||
|     IMGUI_API void          SetClipboardText(const char* text); | ||||
|  | ||||
| @@ -738,6 +743,9 @@ namespace ImGui | ||||
|     IMGUI_API void          SaveIniSettingsToDisk(const char* 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_API const char*   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_API bool          DebugCheckVersionAndDataLayout(const char* version_str, size_t sz_io, size_t sz_style, size_t sz_vec2, size_t sz_vec4, size_t sz_drawvert, size_t sz_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. | ||||
| //----------------------------------------------------------------------------- | ||||
|  | ||||
| // Draw callbacks for advanced uses. | ||||
| // ImDrawCallback: Draw callbacks for advanced uses [configurable type: override in imconfig.h] | ||||
| // NB: You most likely do NOT need to use draw callbacks just to create your own widget or customized UI rendering, | ||||
| // you can poke into the draw list for that! Draw callback may be useful for example to: | ||||
| //  A) Change your GPU render state, | ||||
| @@ -1858,9 +1866,9 @@ struct ImDrawCmd | ||||
|     ImDrawCmd() { ElemCount = 0; TextureId = (ImTextureID)NULL; VtxOffset = IdxOffset = 0;  UserCallback = NULL; UserCallbackData = NULL; } | ||||
| }; | ||||
|  | ||||
| // Vertex index | ||||
| // (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. | ||||
| #ifndef ImDrawIdx | ||||
| typedef unsigned short ImDrawIdx; | ||||
| #endif | ||||
|   | ||||
		Reference in New Issue
	
	Block a user