mirror of
				https://github.com/Drezil/imgui.git
				synced 2025-11-03 22:51:06 +01:00 
			
		
		
		
	This commit is contained in:
		@@ -38,7 +38,7 @@ Dear ImGui is highly portable and only requires a few things to run and render,
 | 
				
			|||||||
 - Optional: multi-viewports support.
 | 
					 - Optional: multi-viewports support.
 | 
				
			||||||
 etc.
 | 
					 etc.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
This is essentially what each backends are doing + obligatory portability cruft. Using default backends ensure you can get all those features including the ones that would be harder to implement on your side (e.g. multi-viewports support).
 | 
					This is essentially what each backend is doing + obligatory portability cruft. Using default backends ensure you can get all those features including the ones that would be harder to implement on your side (e.g. multi-viewports support).
 | 
				
			||||||
 | 
					
 | 
				
			||||||
It is important to understand the difference between the core Dear ImGui library (files in the root folder)
 | 
					It is important to understand the difference between the core Dear ImGui library (files in the root folder)
 | 
				
			||||||
and backends which we are describing here (backends/ folder).
 | 
					and backends which we are describing here (backends/ folder).
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -72,7 +72,7 @@ Please read 'PROGRAMMER GUIDE' in imgui.cpp for notes on how to setup Dear ImGui
 | 
				
			|||||||
Please read the comments and instruction at the top of each file.
 | 
					Please read the comments and instruction at the top of each file.
 | 
				
			||||||
Please read FAQ at http://www.dearimgui.org/faq
 | 
					Please read FAQ at http://www.dearimgui.org/faq
 | 
				
			||||||
 | 
					
 | 
				
			||||||
If you are using of the backend provided here, you can add the backends/imgui_impl_xxxx(.cpp,.h)
 | 
					If you are using any of the backends provided here, you can add the backends/imgui_impl_xxxx(.cpp,.h)
 | 
				
			||||||
files to your project and use as-in. Each imgui_impl_xxxx.cpp file comes with its own individual
 | 
					files to your project and use as-in. Each imgui_impl_xxxx.cpp file comes with its own individual
 | 
				
			||||||
Changelog, so if you want to update them later it will be easier to catch up with what changed.
 | 
					Changelog, so if you want to update them later it will be easier to catch up with what changed.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -654,7 +654,7 @@ A reasonably skinned application may look like (screenshot from [#2529](https://
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
### Q: Why using C++ (as opposed to C)?
 | 
					### Q: Why using C++ (as opposed to C)?
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Dear ImGui takes advantage of a few C++ languages features for convenience but nothing anywhere Boost insanity/quagmire. Dear ImGui does NOT require C++11 so it can be used with most old C++ compilers. Dear ImGui doesn't use any C++ header file. Language-wise, function overloading and default parameters are used to make the API easier to use and code more terse. Doing so I believe the API is sitting on a sweet spot and giving up on those features would make the API more cumbersome. Other features such as namespace, constructors and templates (in the case of the ImVector<> class) are also relied on as a convenience.
 | 
					Dear ImGui takes advantage of a few C++ languages features for convenience but nothing anywhere Boost insanity/quagmire. Dear ImGui doesn't use any C++ header file. Dear ImGui uses a very small subset of C++11 features. In particular, function overloading and default parameters are used to make the API easier to use and code more terse. Doing so I believe the API is sitting on a sweet spot and giving up on those features would make the API more cumbersome. Other features such as namespace, constructors and templates (in the case of the ImVector<> class) are also relied on as a convenience.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
There is an auto-generated [c-api for Dear ImGui (cimgui)](https://github.com/cimgui/cimgui) by Sonoro1234 and Stephan Dilly. It is designed for creating bindings to other languages. If possible, I would suggest using your target language functionalities to try replicating the function overloading and default parameters used in C++ else the API may be harder to use. Also see [Bindings](https://github.com/ocornut/imgui/wiki/Bindings) for various third-party bindings.
 | 
					There is an auto-generated [c-api for Dear ImGui (cimgui)](https://github.com/cimgui/cimgui) by Sonoro1234 and Stephan Dilly. It is designed for creating bindings to other languages. If possible, I would suggest using your target language functionalities to try replicating the function overloading and default parameters used in C++ else the API may be harder to use. Also see [Bindings](https://github.com/ocornut/imgui/wiki/Bindings) for various third-party bindings.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -309,7 +309,7 @@ ImFont* font = io.Fonts->AddFontFromMemoryCompressedBase85TTF(compressed_data_ba
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
## About filenames
 | 
					## About filenames
 | 
				
			||||||
 | 
					
 | 
				
			||||||
**Please note that many new C/C++ users have issues their files _because the filename they provide is wrong_.**
 | 
					**Please note that many new C/C++ users have issues loading their files _because the filename they provide is wrong_.**
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Two things to watch for:
 | 
					Two things to watch for:
 | 
				
			||||||
- Make sure your IDE/debugger settings starts your executable from the right working directory. In Visual Studio you can change your working directory in project `Properties > General > Debugging > Working Directory`. People assume that their execution will start from the root folder of the project, where by default it oftens start from the folder where object or executable files are stored.
 | 
					- Make sure your IDE/debugger settings starts your executable from the right working directory. In Visual Studio you can change your working directory in project `Properties > General > Debugging > Working Directory`. People assume that their execution will start from the root folder of the project, where by default it oftens start from the folder where object or executable files are stored.
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1110,7 +1110,7 @@ ImGuiIO::ImGuiIO()
 | 
				
			|||||||
{
 | 
					{
 | 
				
			||||||
    // Most fields are initialized with zero
 | 
					    // Most fields are initialized with zero
 | 
				
			||||||
    memset(this, 0, sizeof(*this));
 | 
					    memset(this, 0, sizeof(*this));
 | 
				
			||||||
    IM_ASSERT(IM_ARRAYSIZE(ImGuiIO::MouseDown) == ImGuiMouseButton_COUNT && IM_ARRAYSIZE(ImGuiIO::MouseClicked) == ImGuiMouseButton_COUNT); // Our pre-C++11 IM_STATIC_ASSERT() macros triggers warning on modern compilers so we don't use it here.
 | 
					    IM_STATIC_ASSERT(IM_ARRAYSIZE(ImGuiIO::MouseDown) == ImGuiMouseButton_COUNT && IM_ARRAYSIZE(ImGuiIO::MouseClicked) == ImGuiMouseButton_COUNT);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    // Settings
 | 
					    // Settings
 | 
				
			||||||
    ConfigFlags = ImGuiConfigFlags_None;
 | 
					    ConfigFlags = ImGuiConfigFlags_None;
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										4
									
								
								imgui.h
									
									
									
									
									
								
							
							
						
						
									
										4
									
								
								imgui.h
									
									
									
									
									
								
							@@ -224,8 +224,8 @@ typedef signed short        ImS16;  // 16-bit signed integer
 | 
				
			|||||||
typedef unsigned short      ImU16;  // 16-bit unsigned integer
 | 
					typedef unsigned short      ImU16;  // 16-bit unsigned integer
 | 
				
			||||||
typedef signed int          ImS32;  // 32-bit signed integer == int
 | 
					typedef signed int          ImS32;  // 32-bit signed integer == int
 | 
				
			||||||
typedef unsigned int        ImU32;  // 32-bit unsigned integer (often used to store packed colors)
 | 
					typedef unsigned int        ImU32;  // 32-bit unsigned integer (often used to store packed colors)
 | 
				
			||||||
typedef signed   long long  ImS64;  // 64-bit signed integer (C++11)
 | 
					typedef signed   long long  ImS64;  // 64-bit signed integer
 | 
				
			||||||
typedef unsigned long long  ImU64;  // 64-bit unsigned integer (C++11)
 | 
					typedef unsigned long long  ImU64;  // 64-bit unsigned integer
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// Character types
 | 
					// Character types
 | 
				
			||||||
// (we generally use UTF-8 encoded string in the API. This is storage specifically for a decoded character used for keyboard input and display)
 | 
					// (we generally use UTF-8 encoded string in the API. This is storage specifically for a decoded character used for keyboard input and display)
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -402,10 +402,9 @@ void ImDrawListSharedData::SetCircleTessellationMaxError(float max_error)
 | 
				
			|||||||
void ImDrawList::_ResetForNewFrame()
 | 
					void ImDrawList::_ResetForNewFrame()
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
    // Verify that the ImDrawCmd fields we want to memcmp() are contiguous in memory.
 | 
					    // Verify that the ImDrawCmd fields we want to memcmp() are contiguous in memory.
 | 
				
			||||||
    // (those should be IM_STATIC_ASSERT() in theory but with our pre C++11 setup the whole check doesn't compile with GCC)
 | 
					    IM_STATIC_ASSERT(IM_OFFSETOF(ImDrawCmd, ClipRect) == 0);
 | 
				
			||||||
    IM_ASSERT(IM_OFFSETOF(ImDrawCmd, ClipRect) == 0);
 | 
					    IM_STATIC_ASSERT(IM_OFFSETOF(ImDrawCmd, TextureId) == sizeof(ImVec4));
 | 
				
			||||||
    IM_ASSERT(IM_OFFSETOF(ImDrawCmd, TextureId) == sizeof(ImVec4));
 | 
					    IM_STATIC_ASSERT(IM_OFFSETOF(ImDrawCmd, VtxOffset) == sizeof(ImVec4) + sizeof(ImTextureID));
 | 
				
			||||||
    IM_ASSERT(IM_OFFSETOF(ImDrawCmd, VtxOffset) == sizeof(ImVec4) + sizeof(ImTextureID));
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
    CmdBuffer.resize(0);
 | 
					    CmdBuffer.resize(0);
 | 
				
			||||||
    IdxBuffer.resize(0);
 | 
					    IdxBuffer.resize(0);
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,10 +1,6 @@
 | 
				
			|||||||
// dear imgui: wrappers for C++ standard library (STL) types (std::string, etc.)
 | 
					// dear imgui: wrappers for C++ standard library (STL) types (std::string, etc.)
 | 
				
			||||||
// This is also an example of how you may wrap your own similar types.
 | 
					// This is also an example of how you may wrap your own similar types.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// Compatibility:
 | 
					 | 
				
			||||||
// - std::string support is only guaranteed to work from C++11.
 | 
					 | 
				
			||||||
//   If you try to use it pre-C++11, please share your findings (w/ info about compiler/architecture)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
// Changelog:
 | 
					// Changelog:
 | 
				
			||||||
// - v0.10: Initial version. Added InputText() / InputTextMultiline() calls with std::string
 | 
					// - v0.10: Initial version. Added InputText() / InputTextMultiline() calls with std::string
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,10 +1,6 @@
 | 
				
			|||||||
// dear imgui: wrappers for C++ standard library (STL) types (std::string, etc.)
 | 
					// dear imgui: wrappers for C++ standard library (STL) types (std::string, etc.)
 | 
				
			||||||
// This is also an example of how you may wrap your own similar types.
 | 
					// This is also an example of how you may wrap your own similar types.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// Compatibility:
 | 
					 | 
				
			||||||
// - std::string support is only guaranteed to work from C++11.
 | 
					 | 
				
			||||||
//   If you try to use it pre-C++11, please share your findings (w/ info about compiler/architecture)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
// Changelog:
 | 
					// Changelog:
 | 
				
			||||||
// - v0.10: Initial version. Added InputText() / InputTextMultiline() calls with std::string
 | 
					// - v0.10: Initial version. Added InputText() / InputTextMultiline() calls with std::string
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -26,12 +26,12 @@ See https://gist.github.com/ocornut/b3a9ecf13502fd818799a452969649ad
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
### Comparaison
 | 
					### Comparaison
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Small, thin anti-aliased fonts are typically benefiting a lots from Freetype's hinting:
 | 
					Small, thin anti-aliased fonts typically benefit a lot from FreeType's hinting:
 | 
				
			||||||

 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
### Colorful glyphs/emojis
 | 
					### Colorful glyphs/emojis
 | 
				
			||||||
 | 
					
 | 
				
			||||||
You can use the `ImGuiFreeTypeBuilderFlags_LoadColor` flag to load certain colorful glyphs. See
 | 
					You can use the `ImGuiFreeTypeBuilderFlags_LoadColor` flag to load certain colorful glyphs. See the
 | 
				
			||||||
["Using Colorful Glyphs/Emojis"](https://github.com/ocornut/imgui/edit/master/docs/FONTS.md#using-colorful-glyphsemojis) section of FONTS.md.
 | 
					["Using Colorful Glyphs/Emojis"](https://github.com/ocornut/imgui/edit/master/docs/FONTS.md#using-colorful-glyphsemojis) section of FONTS.md.
 | 
				
			||||||
 | 
					
 | 
				
			||||||

 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user