|
|
@ -47,7 +47,7 @@ bool SHOW_TEXT_BOUNDRY = false; |
|
|
|
//-------------------------------------------------------------------------------------- |
|
|
|
|
|
|
|
// Configuration structure for waving the text |
|
|
|
typedef struct { |
|
|
|
typedef struct n">WaveTextConfig { |
|
|
|
Vector3 waveRange; |
|
|
|
Vector3 waveSpeed; |
|
|
|
Vector3 waveOffset; |
|
|
@ -57,19 +57,19 @@ typedef struct { |
|
|
|
// Module Functions Declaration |
|
|
|
//-------------------------------------------------------------------------------------- |
|
|
|
// Draw a codepoint in 3D space |
|
|
|
void DrawTextCodepoint3D(Font font, int codepoint, Vector3 position, float fontSize, bool backface, Color tint); |
|
|
|
static void DrawTextCodepoint3D(Font font, int codepoint, Vector3 position, float fontSize, bool backface, Color tint); |
|
|
|
// Draw a 2D text in 3D space |
|
|
|
void DrawText3D(Font font, const char *text, Vector3 position, float fontSize, float fontSpacing, float lineSpacing, bool backface, Color tint); |
|
|
|
static void DrawText3D(Font font, const char *text, Vector3 position, float fontSize, float fontSpacing, float lineSpacing, bool backface, Color tint); |
|
|
|
// Measure a text in 3D. For some reason `MeasureTextEx()` just doesn't seem to work so i had to use this instead. |
|
|
|
Vector3 MeasureText3D(Font font, const char* text, float fontSize, float fontSpacing, float lineSpacing); |
|
|
|
static Vector3 MeasureText3D(Font font, const char *text, float fontSize, float fontSpacing, float lineSpacing); |
|
|
|
|
|
|
|
// Draw a 2D text in 3D space and wave the parts that start with `~~` and end with `~~`. |
|
|
|
// This is a modified version of the original code by @Nighten found here https://github.com/NightenDushi/Raylib_DrawTextStyle |
|
|
|
void DrawTextWave3D(Font font, const char *text, Vector3 position, float fontSize, float fontSpacing, float lineSpacing, bool backface, WaveTextConfig* config, float time, Color tint); |
|
|
|
static void DrawTextWave3D(Font font, const char *text, Vector3 position, float fontSize, float fontSpacing, float lineSpacing, bool backface, WaveTextConfig *config, float time, Color tint); |
|
|
|
// Measure a text in 3D ignoring the `~~` chars. |
|
|
|
Vector3 MeasureTextWave3D(Font font, const char* text, float fontSize, float fontSpacing, float lineSpacing); |
|
|
|
static Vector3 MeasureTextWave3D(Font font, const char *text, float fontSize, float fontSpacing, float lineSpacing); |
|
|
|
// Generates a nice color with a random hue |
|
|
|
Color GenerateRandomColor(float s, float v); |
|
|
|
static Color GenerateRandomColor(float s, float v); |
|
|
|
|
|
|
|
//------------------------------------------------------------------------------------ |
|
|
|
// Program main entry point |
|
|
@ -445,7 +445,7 @@ int main(void) |
|
|
|
// Module Functions Definitions |
|
|
|
//-------------------------------------------------------------------------------------- |
|
|
|
// Draw codepoint at specified position in 3D space |
|
|
|
void DrawTextCodepoint3D(Font font, int codepoint, Vector3 position, float fontSize, bool backface, Color tint) |
|
|
|
static void DrawTextCodepoint3D(Font font, int codepoint, Vector3 position, float fontSize, bool backface, Color tint) |
|
|
|
{ |
|
|
|
// Character index position in sprite font |
|
|
|
// NOTE: In case a codepoint is not available in the font, index returned points to '?' |
|
|
@ -511,7 +511,8 @@ void DrawTextCodepoint3D(Font font, int codepoint, Vector3 position, float fontS |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
void DrawText3D(Font font, const char *text, Vector3 position, float fontSize, float fontSpacing, float lineSpacing, bool backface, Color tint) |
|
|
|
// Draw a 2D text in 3D space |
|
|
|
static void DrawText3D(Font font, const char *text, Vector3 position, float fontSize, float fontSpacing, float lineSpacing, bool backface, Color tint) |
|
|
|
{ |
|
|
|
int length = TextLength(text); // Total length in bytes of the text, scanned by codepoints in loop |
|
|
|
|
|
|
@ -553,7 +554,8 @@ void DrawText3D(Font font, const char *text, Vector3 position, float fontSize, f |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
Vector3 MeasureText3D(Font font, const char* text, float fontSize, float fontSpacing, float lineSpacing) |
|
|
|
// Measure a text in 3D. For some reason `MeasureTextEx()` just doesn't seem to work so i had to use this instead. |
|
|
|
static Vector3 MeasureText3D(Font font, const char* text, float fontSize, float fontSpacing, float lineSpacing) |
|
|
|
{ |
|
|
|
int len = TextLength(text); |
|
|
|
int tempLen = 0; // Used to count longer text line num chars |
|
|
@ -607,8 +609,9 @@ Vector3 MeasureText3D(Font font, const char* text, float fontSize, float fontSpa |
|
|
|
return vec; |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
void DrawTextWave3D(Font font, const char *text, Vector3 position, float fontSize, float fontSpacing, float lineSpacing, bool backface, WaveTextConfig* config, float time, Color tint) |
|
|
|
// Draw a 2D text in 3D space and wave the parts that start with `~~` and end with `~~`. |
|
|
|
// This is a modified version of the original code by @Nighten found here https://github.com/NightenDushi/Raylib_DrawTextStyle |
|
|
|
static void DrawTextWave3D(Font font, const char *text, Vector3 position, float fontSize, float fontSpacing, float lineSpacing, bool backface, WaveTextConfig* config, float time, Color tint) |
|
|
|
{ |
|
|
|
int length = TextLength(text); // Total length in bytes of the text, scanned by codepoints in loop |
|
|
|
|
|
|
@ -669,7 +672,8 @@ void DrawTextWave3D(Font font, const char *text, Vector3 position, float fontSiz |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
Vector3 MeasureTextWave3D(Font font, const char* text, float fontSize, float fontSpacing, float lineSpacing) |
|
|
|
// Measure a text in 3D ignoring the `~~` chars. |
|
|
|
static Vector3 MeasureTextWave3D(Font font, const char* text, float fontSize, float fontSpacing, float lineSpacing) |
|
|
|
{ |
|
|
|
int len = TextLength(text); |
|
|
|
int tempLen = 0; // Used to count longer text line num chars |
|
|
@ -730,7 +734,8 @@ Vector3 MeasureTextWave3D(Font font, const char* text, float fontSize, float fon |
|
|
|
return vec; |
|
|
|
} |
|
|
|
|
|
|
|
Color GenerateRandomColor(float s, float v) |
|
|
|
// Generates a nice color with a random hue |
|
|
|
static Color GenerateRandomColor(float s, float v) |
|
|
|
{ |
|
|
|
const float Phi = 0.618033988749895f; // Golden ratio conjugate |
|
|
|
float h = GetRandomValue(0, 360); |
|
|
|