@ -1894,7 +1894,7 @@ bool    ImFontAtlasBuildWithStbTruetype(ImFontAtlas* atlas) 
			
		
	
		
			
				
					                    continue ;   
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					                const  int  codepoint  =  range . first_unicode_codepoint_in_range  +  char_idx ;   
			
		
	
		
			
				
					                if  ( cfg . MergeMode  & &  dst_font - > FindGlyphNoFallback ( ( unsigned  short ) codepoint ) )   
			
		
	
		
			
				
					                if  ( cfg . MergeMode  & &  dst_font - > FindGlyphNoFallback ( ( ImWchar ) codepoint ) )   
			
		
	
		
			
				
					                    continue ;   
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					                float  char_advance_x_org  =  pc . xadvance ;   
			
		
	
	
		
			
				
					
						
							
								 
						
						
							
								 
						
						
					 
				
				@ -2316,21 +2316,21 @@ void ImFont::BuildLookupTable() 
			
		
	
		
			
				
					    {   
			
		
	
		
			
				
					        int  codepoint  =  ( int ) Glyphs [ i ] . Codepoint ;   
			
		
	
		
			
				
					        IndexAdvanceX [ codepoint ]  =  Glyphs [ i ] . AdvanceX ;   
			
		
	
		
			
				
					        IndexLookup [ codepoint ]  =  ( unsigned  short ) i ;   
			
		
	
		
			
				
					        IndexLookup [ codepoint ]  =  ( ImWchar ) i ;   
			
		
	
		
			
				
					    }   
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					    // Create a glyph to handle TAB
   
			
		
	
		
			
				
					    // FIXME: Needs proper TAB handling but it needs to be contextualized (or we could arbitrary say that each string starts at "column 0" ?)
   
			
		
	
		
			
				
					    if  ( FindGlyph ( ( unsigned  short ) '   ' ) )   
			
		
	
		
			
				
					    if  ( FindGlyph ( ( ImWchar ) '   ' ) )   
			
		
	
		
			
				
					    {   
			
		
	
		
			
				
					        if  ( Glyphs . back ( ) . Codepoint  ! =  ' \t ' )    // So we can call this function multiple times
   
			
		
	
		
			
				
					            Glyphs . resize ( Glyphs . Size  +  1 ) ;   
			
		
	
		
			
				
					        ImFontGlyph &  tab_glyph  =  Glyphs . back ( ) ;   
			
		
	
		
			
				
					        tab_glyph  =  * FindGlyph ( ( unsigned  short ) '   ' ) ;   
			
		
	
		
			
				
					        tab_glyph  =  * FindGlyph ( ( ImWchar ) '   ' ) ;   
			
		
	
		
			
				
					        tab_glyph . Codepoint  =  ' \t ' ;   
			
		
	
		
			
				
					        tab_glyph . AdvanceX  * =  4 ;   
			
		
	
		
			
				
					        IndexAdvanceX [ ( int ) tab_glyph . Codepoint ]  =  ( float ) tab_glyph . AdvanceX ;   
			
		
	
		
			
				
					        IndexLookup [ ( int ) tab_glyph . Codepoint ]  =  ( unsigned  short ) ( Glyphs . Size - 1 ) ;   
			
		
	
		
			
				
					        IndexLookup [ ( int ) tab_glyph . Codepoint ]  =  ( ImWchar ) ( Glyphs . Size - 1 ) ;   
			
		
	
		
			
				
					    }   
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					    FallbackGlyph  =  FindGlyphNoFallback ( FallbackChar ) ;   
			
		
	
	
		
			
				
					
						
						
						
							
								 
						
					 
				
				@ -2352,7 +2352,7 @@ void ImFont::GrowIndex(int new_size) 
			
		
	
		
			
				
					    if  ( new_size  < =  IndexLookup . Size )   
			
		
	
		
			
				
					        return ;   
			
		
	
		
			
				
					    IndexAdvanceX . resize ( new_size ,  - 1.0f ) ;   
			
		
	
		
			
				
					    IndexLookup . resize ( new_size ,  ( unsigned  short ) - 1 ) ;   
			
		
	
		
			
				
					    IndexLookup . resize ( new_size ,  ( ImWchar ) - 1 ) ;   
			
		
	
		
			
				
					}  
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					// x0/y0/x1/y1 are offset from the character upper-left layout position, in pixels. Therefore x0/y0 are often fairly close to zero.
  
			
		
	
	
		
			
				
					
						
							
								 
						
						
							
								 
						
						
					 
				
				@ -2385,13 +2385,13 @@ void ImFont::AddRemapChar(ImWchar dst, ImWchar src, bool overwrite_dst) 
			
		
	
		
			
				
					    IM_ASSERT ( IndexLookup . Size  >  0 ) ;     // Currently this can only be called AFTER the font has been built, aka after calling ImFontAtlas::GetTexDataAs*() function.
   
			
		
	
		
			
				
					    int  index_size  =  IndexLookup . Size ;   
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					    if  ( dst  <  index_size  & &  IndexLookup . Data [ dst ]  = =  ( unsigned  short ) - 1  & &  ! overwrite_dst )  // 'dst' already exists
   
			
		
	
		
			
				
					    if  ( dst  <  index_size  & &  IndexLookup . Data [ dst ]  = =  ( ImWchar ) - 1  & &  ! overwrite_dst )  // 'dst' already exists
   
			
		
	
		
			
				
					        return ;   
			
		
	
		
			
				
					    if  ( src  > =  index_size  & &  dst  > =  index_size )  // both 'dst' and 'src' don't exist -> no-op
   
			
		
	
		
			
				
					        return ;   
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					    GrowIndex ( dst  +  1 ) ;   
			
		
	
		
			
				
					    IndexLookup [ dst ]  =  ( src  <  index_size )  ?  IndexLookup . Data [ src ]  :  ( unsigned  short ) - 1 ;   
			
		
	
		
			
				
					    IndexLookup [ dst ]  =  ( src  <  index_size )  ?  IndexLookup . Data [ src ]  :  ( ImWchar ) - 1 ;   
			
		
	
		
			
				
					    IndexAdvanceX [ dst ]  =  ( src  <  index_size )  ?  IndexAdvanceX . Data [ src ]  :  1.0f ;   
			
		
	
		
			
				
					}  
			
		
	
		
			
				
					
 
			
		
	
	
		
			
				
					
						
						
						
							
								 
						
					 
				
				@ -2399,8 +2399,8 @@ const ImFontGlyph* ImFont::FindGlyph(ImWchar c) const 
			
		
	
		
			
				
					{  
			
		
	
		
			
				
					    if  ( c  > =  IndexLookup . Size )   
			
		
	
		
			
				
					        return  FallbackGlyph ;   
			
		
	
		
			
				
					    const  unsigned  short i  =  IndexLookup [ c ] ;   
			
		
	
		
			
				
					    if  ( i  = =  ( unsigned  short ) - 1 )   
			
		
	
		
			
				
					    const  ImWchar i  =  IndexLookup [ c ] ;   
			
		
	
		
			
				
					    if  ( i  = =  ( ImWchar ) - 1 )   
			
		
	
		
			
				
					        return  FallbackGlyph ;   
			
		
	
		
			
				
					    return  & Glyphs . Data [ i ] ;   
			
		
	
		
			
				
					}  
			
		
	
	
		
			
				
					
						
						
						
							
								 
						
					 
				
				@ -2409,8 +2409,8 @@ const ImFontGlyph* ImFont::FindGlyphNoFallback(ImWchar c) const 
			
		
	
		
			
				
					{  
			
		
	
		
			
				
					    if  ( c  > =  IndexLookup . Size )   
			
		
	
		
			
				
					        return  NULL ;   
			
		
	
		
			
				
					    const  unsigned  short i  =  IndexLookup [ c ] ;   
			
		
	
		
			
				
					    if  ( i  = =  ( unsigned  short ) - 1 )   
			
		
	
		
			
				
					    const  ImWchar i  =  IndexLookup [ c ] ;   
			
		
	
		
			
				
					    if  ( i  = =  ( ImWchar ) - 1 )   
			
		
	
		
			
				
					        return  NULL ;   
			
		
	
		
			
				
					    return  & Glyphs . Data [ i ] ;   
			
		
	
		
			
				
					}  
			
		
	
	
		
			
				
					
						
							
								 
						
						
							
								 
						
						
					 
				
				@ -2608,7 +2608,7 @@ ImVec2 ImFont::CalcTextSizeA(float size, float max_width, float wrap_width, cons 
			
		
	
		
			
				
					    return  text_size ;   
			
		
	
		
			
				
					}  
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					void  ImFont : : RenderChar ( ImDrawList *  draw_list ,  float  size ,  ImVec2  pos ,  ImU32  col ,  unsigned  short c )  const  
			
		
	
		
			
				
					void  ImFont : : RenderChar ( ImDrawList *  draw_list ,  float  size ,  ImVec2  pos ,  ImU32  col ,  ImWchar c )  const  
			
		
	
		
			
				
					{  
			
		
	
		
			
				
					    if  ( c  = =  '   '  | |  c  = =  ' \t '  | |  c  = =  ' \n '  | |  c  = =  ' \r ' )  // Match behavior of RenderText(), those 4 codepoints are hard-coded.
   
			
		
	
		
			
				
					        return ;   
			
		
	
	
		
			
				
					
						
							
								 
						
						
							
								 
						
						
					 
				
				@ -2733,7 +2733,7 @@ void ImFont::RenderText(ImDrawList* draw_list, float size, ImVec2 pos, ImU32 col 
			
		
	
		
			
				
					        }   
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					        float  char_width  =  0.0f ;   
			
		
	
		
			
				
					        if  ( const  ImFontGlyph *  glyph  =  FindGlyph ( ( unsigned  short ) c ) )   
			
		
	
		
			
				
					        if  ( const  ImFontGlyph *  glyph  =  FindGlyph ( ( ImWchar ) c ) )   
			
		
	
		
			
				
					        {   
			
		
	
		
			
				
					            char_width  =  glyph - > AdvanceX  *  scale ;