mirror of
				https://github.com/Drezil/imgui.git
				synced 2025-11-04 07:01:04 +01:00 
			
		
		
		
	Documentation
This commit is contained in:
		@@ -8,7 +8,12 @@ The files in this folder are suggested fonts, provided as a convenience.
 | 
				
			|||||||
Fonts are rasterized in a single texture at the time of calling either of io.Fonts->GetTexDataAsAlpha8()/GetTexDataAsRGBA32()/Build().
 | 
					Fonts are rasterized in a single texture at the time of calling either of io.Fonts->GetTexDataAsAlpha8()/GetTexDataAsRGBA32()/Build().
 | 
				
			||||||
Also read dear imgui FAQ in imgui.cpp!
 | 
					Also read dear imgui FAQ in imgui.cpp!
 | 
				
			||||||
 | 
					
 | 
				
			||||||
In this document:
 | 
					If you have other loading/merging/adding fonts, you can post on the Dear ImGui "Getting Started" forum:
 | 
				
			||||||
 | 
					  https://discourse.dearimgui.org/c/getting-started
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					---------------------------------------
 | 
				
			||||||
 | 
					 INDEX:
 | 
				
			||||||
 | 
					---------------------------------------
 | 
				
			||||||
 | 
					
 | 
				
			||||||
- Readme First / FAQ
 | 
					- Readme First / FAQ
 | 
				
			||||||
- Using Icons
 | 
					- Using Icons
 | 
				
			||||||
@@ -30,6 +35,7 @@ In this document:
 | 
				
			|||||||
       u8"hello"
 | 
					       u8"hello"
 | 
				
			||||||
       u8"こんにちは"   // this will be encoded as UTF-8
 | 
					       u8"こんにちは"   // this will be encoded as UTF-8
 | 
				
			||||||
 - If you want to include a backslash \ character in your string literal, you need to double them e.g. "folder\\filename".
 | 
					 - If you want to include a backslash \ character in your string literal, you need to double them e.g. "folder\\filename".
 | 
				
			||||||
 | 
					 - Please use the Discourse forum (https://discourse.dearimgui.org) and not the Github issue tracker.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
---------------------------------------
 | 
					---------------------------------------
 | 
				
			||||||
@@ -97,13 +103,19 @@ In this document:
 | 
				
			|||||||
   config.GlyphExtraSpacing.x = 1.0f;
 | 
					   config.GlyphExtraSpacing.x = 1.0f;
 | 
				
			||||||
   ImFont* font = io.Fonts->AddFontFromFileTTF("font.ttf", size_pixels, &config);
 | 
					   ImFont* font = io.Fonts->AddFontFromFileTTF("font.ttf", size_pixels, &config);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 If you have very large number of glyphs or multiple fonts:
 | 
					 If you have very large number of glyphs or multiple fonts, the texture may become too big for your graphics API.
 | 
				
			||||||
 | 
					 The typical result of failing to upload a texture is if every glyphs appears as white rectangles.
 | 
				
			||||||
 | 
					 In particular, using a large range such as GetGlyphRangesChineseSimplifiedCommon() is not recommended unless you 
 | 
				
			||||||
 | 
					 set OversampleH/OversampleV to 1 and use a small font size.
 | 
				
			||||||
 | 
					 Mind the fact that some graphics drivers have texture size limitation.
 | 
				
			||||||
 | 
					 If you are building a PC application, mind the fact that your users may use hardware with lower limitations than yours.
 | 
				
			||||||
 | 
					 Some solutions:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  - Mind the fact that some graphics drivers have texture size limitation.
 | 
					  - 1) Reduce glyphs ranges by calculating them from source localization data. You can use ImFont::GlyphRangesBuilder for this purpose,
 | 
				
			||||||
  - Set io.Fonts.TexDesiredWidth to specify a texture width to minimize texture height (see comment in ImFontAtlas::Build function).
 | 
					    this will be the biggest win. 
 | 
				
			||||||
  - Set io.Fonts.Flags |= ImFontAtlasFlags_NoPowerOfTwoHeight; to disable rounding the texture height to the next power of two.
 | 
					  - 2) You may reduce oversampling, e.g. config.OversampleH = config.OversampleV = 1, this will largely reduce your texture size.
 | 
				
			||||||
  - You may reduce oversampling, e.g. config.OversampleH = 1, this will largely reduce your textue size.
 | 
					  - 3) Set io.Fonts.TexDesiredWidth to specify a texture width to minimize texture height (see comment in ImFontAtlas::Build function).
 | 
				
			||||||
  - Reduce glyphs ranges, consider calculating them based on your source data if this is possible.
 | 
					  - 4) Set io.Fonts.Flags |= ImFontAtlasFlags_NoPowerOfTwoHeight; to disable rounding the texture height to the next power of two.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 Combine two fonts into one:
 | 
					 Combine two fonts into one:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -175,11 +187,8 @@ In this document:
 | 
				
			|||||||
 The tool optionally used Base85 encoding to reduce the size of _source code_ but the read-only arrays will be about 20% bigger. 
 | 
					 The tool optionally used Base85 encoding to reduce the size of _source code_ but the read-only arrays will be about 20% bigger. 
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 Then load the font with:
 | 
					 Then load the font with:
 | 
				
			||||||
 
 | 
					 | 
				
			||||||
   ImFont* font = io.Fonts->AddFontFromMemoryCompressedTTF(compressed_data, compressed_data_size, size_pixels, ...);
 | 
					   ImFont* font = io.Fonts->AddFontFromMemoryCompressedTTF(compressed_data, compressed_data_size, size_pixels, ...);
 | 
				
			||||||
   
 | 
					 or: 
 | 
				
			||||||
 Or 
 | 
					 | 
				
			||||||
 
 | 
					 | 
				
			||||||
   ImFont* font = io.Fonts->AddFontFromMemoryCompressedBase85TTF(compressed_data_base85, size_pixels, ...);
 | 
					   ImFont* font = io.Fonts->AddFontFromMemoryCompressedBase85TTF(compressed_data_base85, size_pixels, ...);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user