mirror of
				https://github.com/ocornut/imgui.git
				synced 2025-11-03 17:24:24 +00:00 
			
		
		
		
	Fonts: Adding references to the fact that .OTF fonts are supported (but haven't renamed the entry points)
This commit is contained in:
		@@ -103,7 +103,7 @@ See the [Screenshots Thread](https://github.com/ocornut/imgui/issues/123) for so
 | 
				
			|||||||

 | 
					
 | 
				
			||||||

 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
ImGui can load TTF fonts. UTF-8 is supported for text display and input. Here using Arial Unicode font to display Japanese. Initialize custom font with:
 | 
					ImGui can load TTF/OTF fonts. UTF-8 is supported for text display and input. Here using Arial Unicode font to display Japanese. Initialize custom font with:
 | 
				
			||||||
```
 | 
					```
 | 
				
			||||||
ImGuiIO& io = ImGui::GetIO();
 | 
					ImGuiIO& io = ImGui::GetIO();
 | 
				
			||||||
io.Fonts->AddFontFromFileTTF("ArialUni.ttf", 18.0f, NULL, io.Fonts->GetGlyphRangesJapanese());
 | 
					io.Fonts->AddFontFromFileTTF("ArialUni.ttf", 18.0f, NULL, io.Fonts->GetGlyphRangesJapanese());
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,6 +1,7 @@
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
 The code in imgui.cpp embeds a copy of 'ProggyClean.ttf' that you can use without any external files.
 | 
					 The code in imgui.cpp embeds a copy of 'ProggyClean.ttf' that you can use without any external files.
 | 
				
			||||||
 The files in this folder are only provided as a convenience, you can use any of your own .TTF files.
 | 
					 The files in this folder are only provided as a convenience, you can use any .TTF/.OTF.
 | 
				
			||||||
 | 
					 (Note: .OTF support in stb_truetype.h currently doesn't appear to load every font)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 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().
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -34,7 +35,7 @@
 | 
				
			|||||||
   ImGuiIO& io = ImGui::GetIO();
 | 
					   ImGuiIO& io = ImGui::GetIO();
 | 
				
			||||||
   io.Fonts->AddFontDefault();
 | 
					   io.Fonts->AddFontDefault();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 Load .TTF file with:
 | 
					 Load .TTF/.OTF file with:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
   ImGuiIO& io = ImGui::GetIO();
 | 
					   ImGuiIO& io = ImGui::GetIO();
 | 
				
			||||||
   io.Fonts->AddFontFromFileTTF("font.ttf", size_pixels);
 | 
					   io.Fonts->AddFontFromFileTTF("font.ttf", size_pixels);
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -448,7 +448,7 @@
 | 
				
			|||||||
     Depending on your application logic it may or not be inconvenient. You might want to track which key-downs were for ImGui (e.g. with an array of bool) and filter out the corresponding key-ups.)
 | 
					     Depending on your application logic it may or not be inconvenient. You might want to track which key-downs were for ImGui (e.g. with an array of bool) and filter out the corresponding key-ups.)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 Q: How can I load a different font than the default? (default is an embedded version of ProggyClean.ttf, rendered at size 13)
 | 
					 Q: How can I load a different font than the default? (default is an embedded version of ProggyClean.ttf, rendered at size 13)
 | 
				
			||||||
 A: Use the font atlas to load the TTF file you want:
 | 
					 A: Use the font atlas to load the TTF/OTF file you want:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      ImGuiIO& io = ImGui::GetIO();
 | 
					      ImGuiIO& io = ImGui::GetIO();
 | 
				
			||||||
      io.Fonts->AddFontFromFileTTF("myfontfile.ttf", size_in_pixels);
 | 
					      io.Fonts->AddFontFromFileTTF("myfontfile.ttf", size_in_pixels);
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										18
									
								
								imgui.h
									
									
									
									
									
								
							
							
						
						
									
										18
									
								
								imgui.h
									
									
									
									
									
								
							@@ -48,7 +48,7 @@ struct ImDrawData;                  // All draw command lists required to render
 | 
				
			|||||||
struct ImDrawList;                  // A single draw command list (generally one per window)
 | 
					struct ImDrawList;                  // A single draw command list (generally one per window)
 | 
				
			||||||
struct ImDrawVert;                  // A single vertex (20 bytes by default, override layout with IMGUI_OVERRIDE_DRAWVERT_STRUCT_LAYOUT)
 | 
					struct ImDrawVert;                  // A single vertex (20 bytes by default, override layout with IMGUI_OVERRIDE_DRAWVERT_STRUCT_LAYOUT)
 | 
				
			||||||
struct ImFont;                      // Runtime data for a single font within a parent ImFontAtlas
 | 
					struct ImFont;                      // Runtime data for a single font within a parent ImFontAtlas
 | 
				
			||||||
struct ImFontAtlas;                 // Runtime data for multiple fonts, bake multiple fonts into a single texture, TTF font loader
 | 
					struct ImFontAtlas;                 // Runtime data for multiple fonts, bake multiple fonts into a single texture, TTF/OTF font loader
 | 
				
			||||||
struct ImFontConfig;                // Configuration data when adding a font or merging fonts
 | 
					struct ImFontConfig;                // Configuration data when adding a font or merging fonts
 | 
				
			||||||
struct ImColor;                     // Helper functions to create a color that can be converted to either u32 or float4
 | 
					struct ImColor;                     // Helper functions to create a color that can be converted to either u32 or float4
 | 
				
			||||||
struct ImGuiIO;                     // Main configuration and I/O between your application and ImGui
 | 
					struct ImGuiIO;                     // Main configuration and I/O between your application and ImGui
 | 
				
			||||||
@@ -1301,10 +1301,10 @@ struct ImDrawData
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
struct ImFontConfig
 | 
					struct ImFontConfig
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
    void*           FontData;                   //          // TTF data
 | 
					    void*           FontData;                   //          // TTF/OTF data
 | 
				
			||||||
    int             FontDataSize;               //          // TTF data size
 | 
					    int             FontDataSize;               //          // TTF/OTF data size
 | 
				
			||||||
    bool            FontDataOwnedByAtlas;       // true     // TTF data ownership taken by the container ImFontAtlas (will delete memory itself). Set to true
 | 
					    bool            FontDataOwnedByAtlas;       // true     // TTF/OTF data ownership taken by the container ImFontAtlas (will delete memory itself). Set to true
 | 
				
			||||||
    int             FontNo;                     // 0        // Index of font within TTF file
 | 
					    int             FontNo;                     // 0        // Index of font within TTF/OTF file
 | 
				
			||||||
    float           SizePixels;                 //          // Size in pixels for rasterizer
 | 
					    float           SizePixels;                 //          // Size in pixels for rasterizer
 | 
				
			||||||
    int             OversampleH, OversampleV;   // 3, 1     // Rasterize at higher quality for sub-pixel positioning. We don't use sub-pixel positions on the Y axis.
 | 
					    int             OversampleH, OversampleV;   // 3, 1     // Rasterize at higher quality for sub-pixel positioning. We don't use sub-pixel positions on the Y axis.
 | 
				
			||||||
    bool            PixelSnapH;                 // false    // Align every glyph to pixel boundary. Useful e.g. if you are merging a non-pixel aligned font with the default font. If enabled, you can set OversampleH/V to 1.
 | 
					    bool            PixelSnapH;                 // false    // Align every glyph to pixel boundary. Useful e.g. if you are merging a non-pixel aligned font with the default font. If enabled, you can set OversampleH/V to 1.
 | 
				
			||||||
@@ -1320,7 +1320,7 @@ struct ImFontConfig
 | 
				
			|||||||
    IMGUI_API ImFontConfig();
 | 
					    IMGUI_API ImFontConfig();
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// Load and rasterize multiple TTF fonts into a same texture.
 | 
					// Load and rasterize multiple TTF/OTF fonts into a same texture.
 | 
				
			||||||
// Sharing a texture for multiple fonts allows us to reduce the number of draw calls during rendering.
 | 
					// Sharing a texture for multiple fonts allows us to reduce the number of draw calls during rendering.
 | 
				
			||||||
// We also add custom graphic data into the texture that serves for ImGui.
 | 
					// We also add custom graphic data into the texture that serves for ImGui.
 | 
				
			||||||
//  1. (Optional) Call AddFont*** functions. If you don't call any, the default font will be loaded for you.
 | 
					//  1. (Optional) Call AddFont*** functions. If you don't call any, the default font will be loaded for you.
 | 
				
			||||||
@@ -1335,9 +1335,9 @@ struct ImFontAtlas
 | 
				
			|||||||
    IMGUI_API ImFont*           AddFont(const ImFontConfig* font_cfg);
 | 
					    IMGUI_API ImFont*           AddFont(const ImFontConfig* font_cfg);
 | 
				
			||||||
    IMGUI_API ImFont*           AddFontDefault(const ImFontConfig* font_cfg = NULL);
 | 
					    IMGUI_API ImFont*           AddFontDefault(const ImFontConfig* font_cfg = NULL);
 | 
				
			||||||
    IMGUI_API ImFont*           AddFontFromFileTTF(const char* filename, float size_pixels, const ImFontConfig* font_cfg = NULL, const ImWchar* glyph_ranges = NULL);
 | 
					    IMGUI_API ImFont*           AddFontFromFileTTF(const char* filename, float size_pixels, const ImFontConfig* font_cfg = NULL, const ImWchar* glyph_ranges = NULL);
 | 
				
			||||||
    IMGUI_API ImFont*           AddFontFromMemoryTTF(void* ttf_data, int ttf_size, float size_pixels, const ImFontConfig* font_cfg = NULL, const ImWchar* glyph_ranges = NULL);                                        // Transfer ownership of 'ttf_data' to ImFontAtlas, will be deleted after Build()
 | 
					    IMGUI_API ImFont*           AddFontFromMemoryTTF(void* font_data, int font_size, float size_pixels, const ImFontConfig* font_cfg = NULL, const ImWchar* glyph_ranges = NULL);                                       // Transfer ownership of 'ttf_data' to ImFontAtlas, will be deleted after Build()
 | 
				
			||||||
    IMGUI_API ImFont*           AddFontFromMemoryCompressedTTF(const void* compressed_ttf_data, int compressed_ttf_size, float size_pixels, const ImFontConfig* font_cfg = NULL, const ImWchar* glyph_ranges = NULL);  // 'compressed_ttf_data' still owned by caller. Compress with binary_to_compressed_c.cpp
 | 
					    IMGUI_API ImFont*           AddFontFromMemoryCompressedTTF(const void* compressed_font_data, int compressed_font_size, float size_pixels, const ImFontConfig* font_cfg = NULL, const ImWchar* glyph_ranges = NULL); // 'compressed_font_data' still owned by caller. Compress with binary_to_compressed_c.cpp
 | 
				
			||||||
    IMGUI_API ImFont*           AddFontFromMemoryCompressedBase85TTF(const char* compressed_ttf_data_base85, float size_pixels, const ImFontConfig* font_cfg = NULL, const ImWchar* glyph_ranges = NULL);              // 'compressed_ttf_data_base85' still owned by caller. Compress with binary_to_compressed_c.cpp with -base85 paramaeter
 | 
					    IMGUI_API ImFont*           AddFontFromMemoryCompressedBase85TTF(const char* compressed_font_data_base85, float size_pixels, const ImFontConfig* font_cfg = NULL, const ImWchar* glyph_ranges = NULL);              // 'compressed_font_data_base85' still owned by caller. Compress with binary_to_compressed_c.cpp with -base85 paramaeter
 | 
				
			||||||
    IMGUI_API void              ClearTexData();             // Clear the CPU-side texture data. Saves RAM once the texture has been copied to graphics memory.
 | 
					    IMGUI_API void              ClearTexData();             // Clear the CPU-side texture data. Saves RAM once the texture has been copied to graphics memory.
 | 
				
			||||||
    IMGUI_API void              ClearInputData();           // Clear the input TTF data (inc sizes, glyph ranges)
 | 
					    IMGUI_API void              ClearInputData();           // Clear the input TTF data (inc sizes, glyph ranges)
 | 
				
			||||||
    IMGUI_API void              ClearFonts();               // Clear the ImGui-side font data (glyphs storage, UV coordinates)
 | 
					    IMGUI_API void              ClearFonts();               // Clear the ImGui-side font data (glyphs storage, UV coordinates)
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user