Browse Source

REVIEWED: text_draw_3d, code formatting

raysan5 4 years ago
parent
commit
00e71faed6

+ 0 - 0
examples/text/resources/shaders/glsl330/alphaDiscard.fs → examples/text/resources/shaders/glsl330/alpha_discard.fs


+ 70 - 73
examples/text/text_draw_3d.c

@@ -17,30 +17,41 @@
 *   This example has been created using raylib 3.5 (www.raylib.com)
 *   This example has been created using raylib 3.5 (www.raylib.com)
 *   raylib is licensed under an unmodified zlib/libpng license (View raylib.h for details)
 *   raylib is licensed under an unmodified zlib/libpng license (View raylib.h for details)
 *
 *
-*   Copyright (C) 2021 Vlad Adrian (@Demizdor - https://github.com/Demizdor) 
-*   Copyright (C) 2021 Ramon Santamaria (@raysan5)
+*   Example contributed by Vlad Adrian (@Demizdor) and reviewed by Ramon Santamaria (@raysan5)
+*
+*   Copyright (C) 2021 Vlad Adrian (@Demizdor - https://github.com/Demizdor)
+*
 ********************************************************************************************/
 ********************************************************************************************/
 
 
-#include <stddef.h>     // for NULL 
-#include <math.h>       // for sinf()
 #include "raylib.h"
 #include "raylib.h"
 #include "rlgl.h"
 #include "rlgl.h"
 
 
+#include <stddef.h>     // Required for: NULL 
+#include <math.h>       // Required for: sinf()
+
 // To make it work with the older RLGL module just comment the line below
 // To make it work with the older RLGL module just comment the line below
 #define RAYLIB_NEW_RLGL
 #define RAYLIB_NEW_RLGL
 
 
 //--------------------------------------------------------------------------------------
 //--------------------------------------------------------------------------------------
 // Globals
 // Globals
 //--------------------------------------------------------------------------------------
 //--------------------------------------------------------------------------------------
-#define LETTER_BOUNDRY_SIZE 0.25f
-#define TEXT_MAX_LAYERS 32
+#define LETTER_BOUNDRY_SIZE     0.25f
+#define TEXT_MAX_LAYERS         32
+#define LETTER_BOUNDRY_COLOR    VIOLET
 
 
 bool SHOW_LETTER_BOUNDRY = false;
 bool SHOW_LETTER_BOUNDRY = false;
-#define LETTER_BOUDRY_COLOR VIOLET
 bool SHOW_TEXT_BOUNDRY = false;
 bool SHOW_TEXT_BOUNDRY = false;
-//--------------------------------------------------------------------------------------
 
 
+//--------------------------------------------------------------------------------------
+// Data Types definition
+//--------------------------------------------------------------------------------------
 
 
+// Configuration structure for waving the text
+typedef struct {
+    Vector3 waveRange;
+    Vector3 waveSpeed;
+    Vector3 waveOffset;
+} WaveTextConfig;
 
 
 //--------------------------------------------------------------------------------------
 //--------------------------------------------------------------------------------------
 // Module Functions Declaration
 // Module Functions Declaration
@@ -51,12 +62,7 @@ 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);
 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.
 // 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);
 Vector3 MeasureText3D(Font font, const char* text, float fontSize, float fontSpacing, float lineSpacing);
-// Configuration structure for waving the text
-typedef struct {
-    Vector3 waveRange;
-    Vector3 waveSpeed;
-    Vector3 waveOffset;
-} WaveTextConfig;
+
 // Draw a 2D text in 3D space and wave the parts that start with `~~` and end with `~~`.
 // 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
 // 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);
 void DrawTextWave3D(Font font, const char *text, Vector3 position, float fontSize, float fontSpacing, float lineSpacing, bool backface, WaveTextConfig* config, float time, Color tint);
@@ -64,9 +70,6 @@ void DrawTextWave3D(Font font, const char *text, Vector3 position, float fontSiz
 Vector3 MeasureTextWave3D(Font font, const char* text, float fontSize, float fontSpacing, float lineSpacing);
 Vector3 MeasureTextWave3D(Font font, const char* text, float fontSize, float fontSpacing, float lineSpacing);
 // Generates a nice color with a random hue
 // Generates a nice color with a random hue
 Color GenerateRandomColor(float s, float v);
 Color GenerateRandomColor(float s, float v);
-//--------------------------------------------------------------------------------------
-
-
 
 
 //------------------------------------------------------------------------------------
 //------------------------------------------------------------------------------------
 // Program main entry point
 // Program main entry point
@@ -81,7 +84,7 @@ int main(void)
     SetConfigFlags(FLAG_MSAA_4X_HINT|FLAG_VSYNC_HINT);
     SetConfigFlags(FLAG_MSAA_4X_HINT|FLAG_VSYNC_HINT);
     InitWindow(screenWidth, screenHeight, "raylib [text] example - draw 2D text in 3D");
     InitWindow(screenWidth, screenHeight, "raylib [text] example - draw 2D text in 3D");
 
 
-    bool spin = true; // Spin the camera?
+    bool spin = true;        // Spin the camera?
     bool multicolor = false; // Multicolor mode
     bool multicolor = false; // Multicolor mode
     
     
     // Define the camera to look into our 3d world
     // Define the camera to look into our 3d world
@@ -105,7 +108,7 @@ int main(void)
     float fontSpacing = 0.5f;
     float fontSpacing = 0.5f;
     float lineSpacing = -1.0f;
     float lineSpacing = -1.0f;
     
     
-    // Set the text
+    // Set the text (using markdown!)
     char text[64] = "Hello ~~World~~ in 3D!";
     char text[64] = "Hello ~~World~~ in 3D!";
     Vector3 tbox = {0};
     Vector3 tbox = {0};
     int layers = 1;
     int layers = 1;
@@ -124,7 +127,7 @@ int main(void)
     Color dark = RED;
     Color dark = RED;
     
     
     // Load the alpha discard shader
     // Load the alpha discard shader
-    Shader alphaDiscard = LoadShader(NULL, "resources/shaders/glsl330/alphaDiscard.fs");
+    Shader alphaDiscard = LoadShader(NULL, "resources/shaders/glsl330/alpha_discard.fs");
     
     
     // Array filled with multiple random colors (when multicolor mode is set)
     // Array filled with multiple random colors (when multicolor mode is set)
     Color multi[TEXT_MAX_LAYERS] = {0};
     Color multi[TEXT_MAX_LAYERS] = {0};
@@ -147,7 +150,7 @@ int main(void)
                 UnloadFont(font);
                 UnloadFont(font);
                 font = LoadFontEx(droppedFiles[0], fontSize, 0, 0);
                 font = LoadFontEx(droppedFiles[0], fontSize, 0, 0);
             }
             }
-            else if(IsFileExtension(droppedFiles[0], ".fnt")) 
+            else if (IsFileExtension(droppedFiles[0], ".fnt")) 
             {
             {
                 UnloadFont(font);
                 UnloadFont(font);
                 font = LoadFont(droppedFiles[0]);
                 font = LoadFont(droppedFiles[0]);
@@ -157,9 +160,9 @@ int main(void)
         }
         }
         
         
         // Handle Events
         // Handle Events
-        if(IsKeyPressed(KEY_F1)) SHOW_LETTER_BOUNDRY = !SHOW_LETTER_BOUNDRY;
-        if(IsKeyPressed(KEY_F2)) SHOW_TEXT_BOUNDRY = !SHOW_TEXT_BOUNDRY;
-        if(IsKeyPressed(KEY_F3)) 
+        if (IsKeyPressed(KEY_F1)) SHOW_LETTER_BOUNDRY = !SHOW_LETTER_BOUNDRY;
+        if (IsKeyPressed(KEY_F2)) SHOW_TEXT_BOUNDRY = !SHOW_TEXT_BOUNDRY;
+        if (IsKeyPressed(KEY_F3)) 
         { 
         { 
             // Handle camera change
             // Handle camera change
             spin = !spin; 
             spin = !spin; 
@@ -170,7 +173,7 @@ int main(void)
             camera.fovy = 45.0f;                                    // Camera field-of-view Y
             camera.fovy = 45.0f;                                    // Camera field-of-view Y
             camera.projection = CAMERA_PERSPECTIVE;                 // Camera mode type
             camera.projection = CAMERA_PERSPECTIVE;                 // Camera mode type
             
             
-            if(spin) 
+            if (spin) 
             {
             {
                 camera.position = (Vector3){ -10.0f, 15.0f, -10.0f };   // Camera position
                 camera.position = (Vector3){ -10.0f, 15.0f, -10.0f };   // Camera position
                 SetCameraMode(camera, CAMERA_ORBITAL);
                 SetCameraMode(camera, CAMERA_ORBITAL);
@@ -183,7 +186,7 @@ int main(void)
         }
         }
         
         
         // Handle clicking the cube
         // Handle clicking the cube
-        if(IsMouseButtonPressed(MOUSE_LEFT_BUTTON))
+        if (IsMouseButtonPressed(MOUSE_LEFT_BUTTON))
         {
         {
             Ray ray = GetMouseRay(GetMousePosition(), camera);
             Ray ray = GetMouseRay(GetMousePosition(), camera);
 
 
@@ -191,36 +194,35 @@ int main(void)
             bool collision = CheckCollisionRayBox(ray,
             bool collision = CheckCollisionRayBox(ray,
                             (BoundingBox){(Vector3){ cubePosition.x - cubeSize.x/2, cubePosition.y - cubeSize.y/2, cubePosition.z - cubeSize.z/2 },
                             (BoundingBox){(Vector3){ cubePosition.x - cubeSize.x/2, cubePosition.y - cubeSize.y/2, cubePosition.z - cubeSize.z/2 },
                                           (Vector3){ cubePosition.x + cubeSize.x/2, cubePosition.y + cubeSize.y/2, cubePosition.z + cubeSize.z/2 }});
                                           (Vector3){ cubePosition.x + cubeSize.x/2, cubePosition.y + cubeSize.y/2, cubePosition.z + cubeSize.z/2 }});
-            if(collision) 
+            if (collision) 
             {
             {
-            	// generate new random colors
+            	// Generate new random colors
                 light = GenerateRandomColor(0.5f, 0.78f);
                 light = GenerateRandomColor(0.5f, 0.78f);
                 dark = GenerateRandomColor(0.4f, 0.58f);
                 dark = GenerateRandomColor(0.4f, 0.58f);
             }
             }
         }
         }
         
         
         // Handle text layers changes
         // Handle text layers changes
-        if(IsKeyPressed(KEY_HOME)){ if(layers > 1) --layers; }
-        else if(IsKeyPressed(KEY_END)) { if(layers < TEXT_MAX_LAYERS) ++layers; }
+        if (IsKeyPressed(KEY_HOME)) { if (layers > 1) --layers; }
+        else if (IsKeyPressed(KEY_END)) { if (layers < TEXT_MAX_LAYERS) ++layers; }
         
         
         // Handle text changes
         // Handle text changes
-        if(IsKeyPressed(KEY_LEFT)) fontSize -= 0.5f;
-        else if(IsKeyPressed(KEY_RIGHT)) fontSize += 0.5f;
-        else if(IsKeyPressed(KEY_UP)) fontSpacing -= 0.1f;
-        else if(IsKeyPressed(KEY_DOWN)) fontSpacing += 0.1f;
-        else if(IsKeyPressed(KEY_PAGE_UP)) lineSpacing -= 0.1f;
-        else if(IsKeyPressed(KEY_PAGE_DOWN)) lineSpacing += 0.1f;
-        else if(IsKeyDown(KEY_INSERT)) layerDistance -= 0.001f;
-        else if(IsKeyDown(KEY_DELETE)) layerDistance += 0.001f;
-        else if(IsKeyPressed(KEY_TAB)) 
+        if (IsKeyPressed(KEY_LEFT)) fontSize -= 0.5f;
+        else if (IsKeyPressed(KEY_RIGHT)) fontSize += 0.5f;
+        else if (IsKeyPressed(KEY_UP)) fontSpacing -= 0.1f;
+        else if (IsKeyPressed(KEY_DOWN)) fontSpacing += 0.1f;
+        else if (IsKeyPressed(KEY_PAGE_UP)) lineSpacing -= 0.1f;
+        else if (IsKeyPressed(KEY_PAGE_DOWN)) lineSpacing += 0.1f;
+        else if (IsKeyDown(KEY_INSERT)) layerDistance -= 0.001f;
+        else if (IsKeyDown(KEY_DELETE)) layerDistance += 0.001f;
+        else if (IsKeyPressed(KEY_TAB)) 
         {
         {
-            // enable /disable multicolor mode
-            multicolor = !multicolor;
+            multicolor = !multicolor;   // Enable /disable multicolor mode
             
             
-            if(multicolor) 
+            if (multicolor) 
             {
             {
                 // Fill color array with random colors
                 // Fill color array with random colors
-                for(int i=0; i<TEXT_MAX_LAYERS; ++i) 
+                for (int i = 0; i < TEXT_MAX_LAYERS; ++i) 
                 {
                 {
                     multi[i] = GenerateRandomColor(0.5f, 0.8f);
                     multi[i] = GenerateRandomColor(0.5f, 0.8f);
                     multi[i].a = GetRandomValue(0, 255);
                     multi[i].a = GetRandomValue(0, 255);
@@ -230,17 +232,18 @@ int main(void)
         
         
         // Handle text input
         // Handle text input
         int ch = GetCharPressed();
         int ch = GetCharPressed();
-        if(IsKeyPressed(KEY_BACKSPACE)) 
+        if (IsKeyPressed(KEY_BACKSPACE)) 
         {
         {
-            // remove last char
+            // Remove last char
             int len = TextLength(text);
             int len = TextLength(text);
-            if(len > 0) text[len-1] = '\0';
+            if (len > 0) text[len - 1] = '\0';
         } 
         } 
-        else if(IsKeyPressed(KEY_ENTER)) 
+        else if (IsKeyPressed(KEY_ENTER)) 
         {
         {
             // handle newline
             // handle newline
             int len = TextLength(text);
             int len = TextLength(text);
-            if(len < sizeof(text)-1) {
+            if (len < sizeof(text) - 1)
+            {
                 text[len] = '\n'; 
                 text[len] = '\n'; 
                 text[len+1] ='\0';
                 text[len+1] ='\0';
             }
             }
@@ -249,7 +252,8 @@ int main(void)
         {
         {
             // append only printable chars
             // append only printable chars
             int len = TextLength(text);
             int len = TextLength(text);
-            if(len < sizeof(text)-1) {
+            if (len < sizeof(text) - 1)
+            {
                 text[len] = ch; 
                 text[len] = ch; 
                 text[len+1] ='\0';
                 text[len+1] ='\0';
             }
             }
@@ -283,15 +287,16 @@ int main(void)
                     rlPushMatrix();
                     rlPushMatrix();
                         rlRotatef(90.0f, 1.0f, 0.0f, 0.0f);
                         rlRotatef(90.0f, 1.0f, 0.0f, 0.0f);
                         rlRotatef(90.0f, 0.0f, 0.0f, -1.0f);
                         rlRotatef(90.0f, 0.0f, 0.0f, -1.0f);
-                        for(int i=0; i<layers; ++i) 
+                        
+                        for (int i = 0; i < layers; ++i) 
                         {
                         {
                             Color clr = light;
                             Color clr = light;
                             if(multicolor) clr = multi[i];
                             if(multicolor) clr = multi[i];
-                            DrawTextWave3D(font, text, (Vector3){-tbox.x/2.0f, layerDistance*i, -4.5f}, fontSize, fontSpacing, lineSpacing, true, &wcfg, time, clr);
+                            DrawTextWave3D(font, text, (Vector3){ -tbox.x/2.0f, layerDistance*i, -4.5f }, fontSize, fontSpacing, lineSpacing, true, &wcfg, time, clr);
                         }
                         }
                         
                         
-                        if(SHOW_TEXT_BOUNDRY) // draw the text boundry if set
-                            DrawCubeWiresV((Vector3){0.0f, 0.0f, -4.5f+tbox.z/2}, tbox, dark);
+                        // Draw the text boundry if set
+                        if (SHOW_TEXT_BOUNDRY) DrawCubeWiresV((Vector3){ 0.0f, 0.0f, -4.5f + tbox.z/2 }, tbox, dark);
                     rlPopMatrix();
                     rlPopMatrix();
                     
                     
                     // Don't draw the letter boundries for the 3D text below
                     // Don't draw the letter boundries for the 3D text below
@@ -302,42 +307,42 @@ int main(void)
                     //-------------------------------------------------------------------------
                     //-------------------------------------------------------------------------
                     rlPushMatrix();
                     rlPushMatrix();
                         rlRotatef(180.0f, 0.0f, 1.0f, 0.0f);
                         rlRotatef(180.0f, 0.0f, 1.0f, 0.0f);
-                        char* opt = (char*)TextFormat("< SIZE: %2.1f >", fontSize);
+                        char *opt = (char *)TextFormat("< SIZE: %2.1f >", fontSize);
                         quads += TextLength(opt);
                         quads += TextLength(opt);
                         Vector3 m = MeasureText3D(GetFontDefault(), opt, 8.0f, 1.0f, 0.0f);
                         Vector3 m = MeasureText3D(GetFontDefault(), opt, 8.0f, 1.0f, 0.0f);
                         Vector3 pos = { -m.x/2.0f, 0.01f, 2.0f};
                         Vector3 pos = { -m.x/2.0f, 0.01f, 2.0f};
                         DrawText3D(GetFontDefault(), opt, pos, 8.0f, 1.0f, 0.0f, false, BLUE);
                         DrawText3D(GetFontDefault(), opt, pos, 8.0f, 1.0f, 0.0f, false, BLUE);
                         pos.z += 0.5f + m.z;
                         pos.z += 0.5f + m.z;
                         
                         
-                        opt = (char*)TextFormat("< SPACING: %2.1f >", fontSpacing);
+                        opt = (char *)TextFormat("< SPACING: %2.1f >", fontSpacing);
                         quads += TextLength(opt);
                         quads += TextLength(opt);
                         m = MeasureText3D(GetFontDefault(), opt, 8.0f, 1.0f, 0.0f);
                         m = MeasureText3D(GetFontDefault(), opt, 8.0f, 1.0f, 0.0f);
                         pos.x = -m.x/2.0f;
                         pos.x = -m.x/2.0f;
                         DrawText3D(GetFontDefault(), opt, pos, 8.0f, 1.0f, 0.0f, false, BLUE);
                         DrawText3D(GetFontDefault(), opt, pos, 8.0f, 1.0f, 0.0f, false, BLUE);
                         pos.z += 0.5f + m.z;
                         pos.z += 0.5f + m.z;
                         
                         
-                        opt = (char*)TextFormat("< LINE: %2.1f >", lineSpacing);
+                        opt = (char *)TextFormat("< LINE: %2.1f >", lineSpacing);
                         quads += TextLength(opt);
                         quads += TextLength(opt);
                         m = MeasureText3D(GetFontDefault(), opt, 8.0f, 1.0f, 0.0f);
                         m = MeasureText3D(GetFontDefault(), opt, 8.0f, 1.0f, 0.0f);
                         pos.x = -m.x/2.0f;
                         pos.x = -m.x/2.0f;
                         DrawText3D(GetFontDefault(), opt, pos, 8.0f, 1.0f, 0.0f, false, BLUE);
                         DrawText3D(GetFontDefault(), opt, pos, 8.0f, 1.0f, 0.0f, false, BLUE);
                         pos.z += 1.0f + m.z;
                         pos.z += 1.0f + m.z;
                         
                         
-                        opt = (char*)TextFormat("< LBOX: %3s >", slb ?"ON":"OFF");
+                        opt = (char *)TextFormat("< LBOX: %3s >", slb? "ON" : "OFF");
                         quads += TextLength(opt);
                         quads += TextLength(opt);
                         m = MeasureText3D(GetFontDefault(), opt, 8.0f, 1.0f, 0.0f);
                         m = MeasureText3D(GetFontDefault(), opt, 8.0f, 1.0f, 0.0f);
                         pos.x = -m.x/2.0f;
                         pos.x = -m.x/2.0f;
                         DrawText3D(GetFontDefault(), opt, pos, 8.0f, 1.0f, 0.0f, false, RED);
                         DrawText3D(GetFontDefault(), opt, pos, 8.0f, 1.0f, 0.0f, false, RED);
                         pos.z += 0.5f + m.z;
                         pos.z += 0.5f + m.z;
                         
                         
-                        opt = (char*)TextFormat("< TBOX: %3s >", SHOW_TEXT_BOUNDRY ?"ON":"OFF");
+                        opt = (char *)TextFormat("< TBOX: %3s >", SHOW_TEXT_BOUNDRY? "ON" : "OFF");
                         quads += TextLength(opt);
                         quads += TextLength(opt);
                         m = MeasureText3D(GetFontDefault(), opt, 8.0f, 1.0f, 0.0f);
                         m = MeasureText3D(GetFontDefault(), opt, 8.0f, 1.0f, 0.0f);
                         pos.x = -m.x/2.0f;
                         pos.x = -m.x/2.0f;
                         DrawText3D(GetFontDefault(), opt, pos, 8.0f, 1.0f, 0.0f, false, RED);
                         DrawText3D(GetFontDefault(), opt, pos, 8.0f, 1.0f, 0.0f, false, RED);
                         pos.z += 0.5f + m.z;
                         pos.z += 0.5f + m.z;
                         
                         
-                        opt = (char*)TextFormat("< LAYER DISTANCE: %.3f >", layerDistance);
+                        opt = (char *)TextFormat("< LAYER DISTANCE: %.3f >", layerDistance);
                         quads += TextLength(opt);
                         quads += TextLength(opt);
                         m = MeasureText3D(GetFontDefault(), opt, 8.0f, 1.0f, 0.0f);
                         m = MeasureText3D(GetFontDefault(), opt, 8.0f, 1.0f, 0.0f);
                         pos.x = -m.x/2.0f;
                         pos.x = -m.x/2.0f;
@@ -400,7 +405,7 @@ int main(void)
             "Press [F3] to toggle the camera", 10, 35, 10, BLACK);
             "Press [F3] to toggle the camera", 10, 35, 10, BLACK);
             
             
             quads += TextLength(text)*2*layers;
             quads += TextLength(text)*2*layers;
-            char* tmp = (char*)TextFormat("%2i layer(s) | %s camera | %4i quads (%4i verts)", layers, spin ? "ORBITAL" : "FREE", quads, quads*4);
+            char *tmp = (char *)TextFormat("%2i layer(s) | %s camera | %4i quads (%4i verts)", layers, spin? "ORBITAL" : "FREE", quads, quads*4);
             int width = MeasureText(tmp, 10);
             int width = MeasureText(tmp, 10);
             DrawText(tmp, screenWidth - 20 - width, 10, 10, DARKGREEN);
             DrawText(tmp, screenWidth - 20 - width, 10, 10, DARKGREEN);
             
             
@@ -436,12 +441,9 @@ int main(void)
     return 0;
     return 0;
 }
 }
 
 
-
-
 //--------------------------------------------------------------------------------------
 //--------------------------------------------------------------------------------------
 // Module Functions Definitions
 // Module Functions Definitions
 //--------------------------------------------------------------------------------------
 //--------------------------------------------------------------------------------------
-
 // Draw codepoint at specified position in 3D space
 // Draw codepoint at specified position in 3D space
 void DrawTextCodepoint3D(Font font, int codepoint, Vector3 position, float fontSize, bool backface, Color tint)
 void DrawTextCodepoint3D(Font font, int codepoint, Vector3 position, float fontSize, bool backface, Color tint)
 {
 {
@@ -476,13 +478,13 @@ void DrawTextCodepoint3D(Font font, int codepoint, Vector3 position, float fontS
         const float th = (srcRec.y+srcRec.height)/font.texture.height;
         const float th = (srcRec.y+srcRec.height)/font.texture.height;
         
         
         if(SHOW_LETTER_BOUNDRY)
         if(SHOW_LETTER_BOUNDRY)
-            DrawCubeWiresV((Vector3){ position.x+width/2, position.y, position.z+height/2}, (Vector3){width, LETTER_BOUNDRY_SIZE, height}, LETTER_BOUDRY_COLOR);
+            DrawCubeWiresV((Vector3){ position.x + width/2, position.y, position.z + height/2}, (Vector3){ width, LETTER_BOUNDRY_SIZE, height }, LETTER_BOUNDRY_COLOR);
 
 
 #if defined(RAYLIB_NEW_RLGL)
 #if defined(RAYLIB_NEW_RLGL)
-        rlCheckRenderBatchLimit(4+4*backface);
+        rlCheckRenderBatchLimit(4 + 4*backface);
         rlSetTexture(font.texture.id);
         rlSetTexture(font.texture.id);
 #else
 #else
-        if (rlCheckBufferLimit(4+4*backface)) rlglDraw();
+        if (rlCheckBufferLimit(4 + 4*backface)) rlglDraw();
         rlEnableTexture(font.texture.id);
         rlEnableTexture(font.texture.id);
 #endif
 #endif
         rlPushMatrix();
         rlPushMatrix();
@@ -498,7 +500,7 @@ void DrawTextCodepoint3D(Font font, int codepoint, Vector3 position, float fontS
                 rlTexCoord2f(tw, th); rlVertex3f(x + width, y, z + height);     // Bottom Right Of The Texture and Quad
                 rlTexCoord2f(tw, th); rlVertex3f(x + width, y, z + height);     // Bottom Right Of The Texture and Quad
                 rlTexCoord2f(tw, ty); rlVertex3f(x + width, y, z);              // Top Right Of The Texture and Quad
                 rlTexCoord2f(tw, ty); rlVertex3f(x + width, y, z);              // Top Right Of The Texture and Quad
             
             
-                if(backface)
+                if (backface)
                 {
                 {
                     // Back Face
                     // Back Face
                     rlNormal3f(0.0f, -1.0f, 0.0f);                              // Normal Pointing Down
                     rlNormal3f(0.0f, -1.0f, 0.0f);                              // Normal Pointing Down
@@ -515,11 +517,9 @@ void DrawTextCodepoint3D(Font font, int codepoint, Vector3 position, float fontS
 #else
 #else
         rlDisableTexture();
         rlDisableTexture();
 #endif
 #endif
-     
     }
     }
 }
 }
 
 
-
 void DrawText3D(Font font, const char *text, Vector3 position, float fontSize, float fontSpacing, float lineSpacing, bool backface, Color tint)
 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
     int length = TextLength(text);          // Total length in bytes of the text, scanned by codepoints in loop
@@ -529,7 +529,6 @@ void DrawText3D(Font font, const char *text, Vector3 position, float fontSize, f
     
     
     float scale = fontSize/(float)font.baseSize;
     float scale = fontSize/(float)font.baseSize;
     
     
-
     for (int i = 0; i < length;)
     for (int i = 0; i < length;)
     {
     {
         // Get next codepoint from byte string and glyph index in font
         // Get next codepoint from byte string and glyph index in font
@@ -568,7 +567,6 @@ Vector3 MeasureText3D(Font font, const char* text, float fontSize, float fontSpa
     int len = TextLength(text);
     int len = TextLength(text);
     int tempLen = 0;                // Used to count longer text line num chars
     int tempLen = 0;                // Used to count longer text line num chars
     int lenCounter = 0;
     int lenCounter = 0;
-
     
     
     float tempTextWidth = 0.0f;     // Used to count longer text line width
     float tempTextWidth = 0.0f;     // Used to count longer text line width
 
 
@@ -685,7 +683,6 @@ Vector3 MeasureTextWave3D(Font font, const char* text, float fontSize, float fon
     int len = TextLength(text);
     int len = TextLength(text);
     int tempLen = 0;                // Used to count longer text line num chars
     int tempLen = 0;                // Used to count longer text line num chars
     int lenCounter = 0;
     int lenCounter = 0;
-
     
     
     float tempTextWidth = 0.0f;     // Used to count longer text line width
     float tempTextWidth = 0.0f;     // Used to count longer text line width
 
 
@@ -744,7 +741,7 @@ Vector3 MeasureTextWave3D(Font font, const char* text, float fontSize, float fon
 
 
 Color GenerateRandomColor(float s, float v)
 Color GenerateRandomColor(float s, float v)
 {
 {
-    const float Phi = 0.618033988749895; // golden ratio conjugate
+    const float Phi = 0.618033988749895f; // Golden ratio conjugate
     float h = GetRandomValue(0, 360);
     float h = GetRandomValue(0, 360);
     h = fmodf((h + h*Phi), 360.0f);
     h = fmodf((h + h*Phi), 360.0f);
     return ColorFromHSV(h, s, v);
     return ColorFromHSV(h, s, v);