|
@@ -10,7 +10,7 @@
|
|
|
* Selected desired fileformats to be supported for loading. Some of those formats are
|
|
|
* supported by default, to remove support, just comment unrequired #define in this module
|
|
|
*
|
|
|
-* #define INCLUDE_DEFAULT_FONT / SUPPORT_DEFAULT_FONT
|
|
|
+* #define SUPPORT_DEFAULT_FONT
|
|
|
*
|
|
|
* DEPENDENCIES:
|
|
|
* stb_truetype - Load TTF file and rasterize characters data
|
|
@@ -37,6 +37,11 @@
|
|
|
*
|
|
|
**********************************************************************************************/
|
|
|
|
|
|
+// Default supported features
|
|
|
+//-------------------------------------
|
|
|
+#define SUPPORT_DEFAULT_FONT
|
|
|
+//-------------------------------------
|
|
|
+
|
|
|
#include "raylib.h"
|
|
|
|
|
|
#include <stdlib.h> // Required for: malloc(), free()
|
|
@@ -61,8 +66,6 @@
|
|
|
#define MAX_FORMATTEXT_LENGTH 64
|
|
|
#define MAX_SUBTEXT_LENGTH 64
|
|
|
|
|
|
-#define BIT_CHECK(a,b) ((a) & (1 << (b)))
|
|
|
-
|
|
|
//----------------------------------------------------------------------------------
|
|
|
// Types and Structures Definition
|
|
|
//----------------------------------------------------------------------------------
|
|
@@ -71,8 +74,10 @@
|
|
|
//----------------------------------------------------------------------------------
|
|
|
// Global variables
|
|
|
//----------------------------------------------------------------------------------
|
|
|
+#if defined(SUPPORT_DEFAULT_FONT)
|
|
|
static SpriteFont defaultFont; // Default font provided by raylib
|
|
|
// NOTE: defaultFont is loaded on InitWindow and disposed on CloseWindow [module: core]
|
|
|
+#endif
|
|
|
|
|
|
//----------------------------------------------------------------------------------
|
|
|
// Other Modules Functions Declaration (required by text)
|
|
@@ -89,14 +94,21 @@ static SpriteFont LoadRBMF(const char *fileName); // Load a rBMF font file (ra
|
|
|
static SpriteFont LoadBMFont(const char *fileName); // Load a BMFont file (AngelCode font file)
|
|
|
static SpriteFont LoadTTF(const char *fileName, int fontSize, int charsCount, int *fontChars); // Load spritefont from TTF data
|
|
|
|
|
|
+#if defined(SUPPORT_DEFAULT_FONT)
|
|
|
extern void LoadDefaultFont(void);
|
|
|
extern void UnloadDefaultFont(void);
|
|
|
+#endif
|
|
|
|
|
|
//----------------------------------------------------------------------------------
|
|
|
// Module Functions Definition
|
|
|
//----------------------------------------------------------------------------------
|
|
|
+#if defined(SUPPORT_DEFAULT_FONT)
|
|
|
+
|
|
|
+// Load raylib default font
|
|
|
extern void LoadDefaultFont(void)
|
|
|
{
|
|
|
+ #define BIT_CHECK(a,b) ((a) & (1 << (b)))
|
|
|
+
|
|
|
// NOTE: Using UTF8 encoding table for Unicode U+0000..U+00FF Basic Latin + Latin-1 Supplement
|
|
|
// http://www.utf8-chartable.de/unicode-utf8-table.pl
|
|
|
|
|
@@ -241,16 +253,23 @@ extern void LoadDefaultFont(void)
|
|
|
TraceLog(INFO, "[TEX ID %i] Default font loaded successfully", defaultFont.texture.id);
|
|
|
}
|
|
|
|
|
|
+// Unload raylib default font
|
|
|
extern void UnloadDefaultFont(void)
|
|
|
{
|
|
|
UnloadTexture(defaultFont.texture);
|
|
|
free(defaultFont.chars);
|
|
|
}
|
|
|
+#endif // SUPPORT_DEFAULT_FONT
|
|
|
|
|
|
// Get the default font, useful to be used with extended parameters
|
|
|
SpriteFont GetDefaultFont()
|
|
|
{
|
|
|
+#if defined(SUPPORT_DEFAULT_FONT)
|
|
|
return defaultFont;
|
|
|
+#else
|
|
|
+ SpriteFont font = { 0 };
|
|
|
+ return font;
|
|
|
+#endif
|
|
|
}
|
|
|
|
|
|
// Load SpriteFont from file into GPU memory (VRAM)
|
|
@@ -345,7 +364,7 @@ SpriteFont LoadSpriteFontTTF(const char *fileName, int fontSize, int charsCount,
|
|
|
void UnloadSpriteFont(SpriteFont spriteFont)
|
|
|
{
|
|
|
// NOTE: Make sure spriteFont is not default font (fallback)
|
|
|
- if (spriteFont.texture.id != defaultFont.texture.id)
|
|
|
+ if (spriteFont.texture.id != GetDefaultFont().texture.id)
|
|
|
{
|
|
|
UnloadTexture(spriteFont.texture);
|
|
|
free(spriteFont.chars);
|
|
@@ -360,7 +379,7 @@ void UnloadSpriteFont(SpriteFont spriteFont)
|
|
|
void DrawText(const char *text, int posX, int posY, int fontSize, Color color)
|
|
|
{
|
|
|
// Check if default font has been loaded
|
|
|
- if (defaultFont.texture.id != 0)
|
|
|
+ if (GetDefaultFont().texture.id != 0)
|
|
|
{
|
|
|
Vector2 position = { (float)posX, (float)posY };
|
|
|
|
|
@@ -471,7 +490,7 @@ int MeasureText(const char *text, int fontSize)
|
|
|
Vector2 vec = { 0.0f, 0.0f };
|
|
|
|
|
|
// Check if default font has been loaded
|
|
|
- if (defaultFont.texture.id != 0)
|
|
|
+ if (GetDefaultFont().texture.id != 0)
|
|
|
{
|
|
|
int defaultFontSize = 10; // Default Font chars height in pixel
|
|
|
if (fontSize < defaultFontSize) fontSize = defaultFontSize;
|