| 
				
				
					
						
					
				
				
				 | 
			
			 | 
			
			@ -699,7 +699,7 @@ Image GenImageFontAtlas(const GlyphInfo *chars, Rectangle **charRecs, int glyphC | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			    for (int i = 0; i < glyphCount; i++) | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			    { | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			        if (chars[i].image.width > maxGlyphWidth) maxGlyphWidth = chars[i].image.width; | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			        totalWidth += chars[i].image.width + 2*padding; | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			        totalWidth += chars[i].image.width + 4*padding; | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			    } | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			
 | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			//#define SUPPORT_FONT_ATLAS_SIZE_CONSERVATIVE | 
			
		
		
	
	
		
			
				| 
				
				
				
					
						
					
				
				 | 
			
			 | 
			
			@ -713,15 +713,28 @@ Image GenImageFontAtlas(const GlyphInfo *chars, Rectangle **charRecs, int glyphC | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			        imageSize *= 2;                                 // Double the size of image (to keep POT) | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			        rowCount = imageSize/(fontSize + 2*padding);    // Calculate new row count for the new image size | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			    } | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			
 | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			    atlas.width = imageSize;   // Atlas bitmap width | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			    atlas.height = imageSize;  // Atlas bitmap height | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			#else | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			    // No need for a so-conservative atlas generation | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			    float totalArea = totalWidth*fontSize*1.3f; | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			    float totalArea = totalWidth*fontSize*1.2f; | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			    float imageMinSize = sqrtf(totalArea); | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			    int imageSize = (int)powf(2, ceilf(logf(imageMinSize)/logf(2))); | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			
 | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			    if (totalArea < ((imageSize*imageSize)/2)) | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			    { | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			        atlas.width = imageSize;    // Atlas bitmap width | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			        atlas.height = imageSize/2; // Atlas bitmap height | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			    } | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			    else | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			    { | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			        atlas.width = imageSize;   // Atlas bitmap width | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			        atlas.height = imageSize;  // Atlas bitmap height | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			    } | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			#endif | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			
 | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			    atlas.width = imageSize;   // Atlas bitmap width | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			    atlas.height = imageSize;  // Atlas bitmap height | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			
 | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			    atlas.data = (unsigned char *)RL_CALLOC(1, atlas.width*atlas.height);   // Create a bitmap to store characters (8 bpp) | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			    atlas.format = PIXELFORMAT_UNCOMPRESSED_GRAYSCALE; | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			    atlas.mipmaps = 1; | 
			
		
		
	
	
		
			
				| 
				
					
						
					
				
				
				
				 | 
			
			 | 
			
			
 |