瀏覽代碼

Rectangle parameters changed to float

- Some examples tweaks
- Reviewed ImageFormat()
- Use float for text fontSize
Ray San 7 年之前
父節點
當前提交
6324697ffd

+ 1 - 1
examples/core/core_3d_camera_free.c

@@ -21,7 +21,7 @@ int main()
     InitWindow(screenWidth, screenHeight, "raylib [core] example - 3d camera free");
 
     // Define the camera to look into our 3d world
-    Camera camera;
+    Camera3D camera;
     camera.position = (Vector3){ 10.0f, 10.0f, 10.0f }; // Camera position
     camera.target = (Vector3){ 0.0f, 0.0f, 0.0f };      // Camera looking at point
     camera.up = (Vector3){ 0.0f, 1.0f, 0.0f };          // Camera up vector (rotation towards target)

+ 1 - 1
examples/textures/textures_image_generation.c

@@ -58,7 +58,7 @@ int main()
     {
         // Update
         //----------------------------------------------------------------------------------
-        if (IsMouseButtonPressed(MOUSE_LEFT_BUTTON))
+        if (IsMouseButtonPressed(MOUSE_LEFT_BUTTON) || IsKeyPressed(KEY_RIGHT))
         {
             currentTexture = (currentTexture + 1)%NUM_TEXTURES; // Cycle between the textures
         }

+ 4 - 13
examples/textures/textures_image_processing.c

@@ -51,7 +51,7 @@ int main()
     // NOTE: Textures MUST be loaded after Window initialization (OpenGL context is required)
 
     Image image = LoadImage("resources/parrots.png");   // Loaded in CPU memory (RAM)
-    ImageFormat(&image, UNCOMPRESSED_R8G8B8A8);         // Format image to RGBA 32bit (required for texture update)
+    ImageFormat(&image, UNCOMPRESSED_R8G8B8A8);         // Format image to RGBA 32bit (required for texture update) <-- ISSUE
     Texture2D texture = LoadTextureFromImage(image);    // Image converted to texture, GPU memory (VRAM)
 
     int currentProcess = NONE;
@@ -121,18 +121,9 @@ int main()
             // Draw rectangles
             for (int i = 0; i < NUM_PROCESSES; i++)
             {
-                if (i == currentProcess)
-                {
-                    DrawRectangleRec(selectRecs[i], SKYBLUE);
-                    DrawRectangleLines(selectRecs[i].x, selectRecs[i].y, selectRecs[i].width, selectRecs[i].height, BLUE);
-                    DrawText(processText[i], selectRecs[i].x + selectRecs[i].width/2 - MeasureText(processText[i], 10)/2, selectRecs[i].y + 11, 10, DARKBLUE);
-                }
-                else
-                {
-                    DrawRectangleRec(selectRecs[i], LIGHTGRAY);
-                    DrawRectangleLines(selectRecs[i].x, selectRecs[i].y, selectRecs[i].width, selectRecs[i].height, GRAY);
-                    DrawText(processText[i], selectRecs[i].x + selectRecs[i].width/2 - MeasureText(processText[i], 10)/2, selectRecs[i].y + 11, 10, DARKGRAY);
-                }
+                DrawRectangleRec(selectRecs[i], (i == currentProcess) ? SKYBLUE : LIGHTGRAY);
+                DrawRectangleLines(selectRecs[i].x, selectRecs[i].y, selectRecs[i].width, selectRecs[i].height, (i == currentProcess) ? BLUE : GRAY);
+                DrawText(processText[i], selectRecs[i].x + selectRecs[i].width/2 - MeasureText(processText[i], 10)/2, selectRecs[i].y + 11, 10, (i == currentProcess) ? DARKBLUE : DARKGRAY);
             }
 
             DrawTexture(texture, screenWidth - texture.width - 60, screenHeight/2 - texture.height/2, WHITE);

+ 8 - 8
src/raylib.h

@@ -349,10 +349,10 @@ typedef struct Color {
 
 // Rectangle type
 typedef struct Rectangle {
-    int x;
-    int y;
-    int width;
-    int height;
+    float x;
+    float y;
+    float width;
+    float height;
 } Rectangle;
 
 // Image type, bpp always RGBA (32bit)
@@ -915,11 +915,11 @@ RLAPI void ImageResizeNN(Image *image,int newWidth,int newHeight);
 RLAPI void ImageMipmaps(Image *image);                                                                   // Generate all mipmap levels for a provided image
 RLAPI void ImageDither(Image *image, int rBpp, int gBpp, int bBpp, int aBpp);                            // Dither image data to 16bpp or lower (Floyd-Steinberg dithering)
 RLAPI Image ImageText(const char *text, int fontSize, Color color);                                      // Create an image from text (default font)
-RLAPI Image ImageTextEx(SpriteFont font, const char *text, float fontSize, int spacing, Color tint);     // Create an image from text (custom sprite font)
+RLAPI Image ImageTextEx(SpriteFont font, const char *text, float fontSize, float spacing, Color tint);     // Create an image from text (custom sprite font)
 RLAPI void ImageDraw(Image *dst, Image src, Rectangle srcRec, Rectangle dstRec);                         // Draw a source image within a destination image
 RLAPI void ImageDrawRectangle(Image *dst, Vector2 position, Rectangle rec, Color color);                 // Draw rectangle within an image
 RLAPI void ImageDrawText(Image *dst, Vector2 position, const char *text, int fontSize, Color color);     // Draw text (default font) within an image (destination)
-RLAPI void ImageDrawTextEx(Image *dst, Vector2 position, SpriteFont font, const char *text, float fontSize, int spacing, Color color); // Draw text (custom sprite font) within an image (destination)
+RLAPI void ImageDrawTextEx(Image *dst, Vector2 position, SpriteFont font, const char *text, float fontSize, float spacing, Color color); // Draw text (custom sprite font) within an image (destination)
 RLAPI void ImageFlipVertical(Image *image);                                                              // Flip image vertically
 RLAPI void ImageFlipHorizontal(Image *image);                                                            // Flip image horizontally
 RLAPI void ImageColorTint(Image *image, Color color);                                                    // Modify image color: tint
@@ -964,11 +964,11 @@ RLAPI void UnloadSpriteFont(SpriteFont font);
 // Text drawing functions
 RLAPI void DrawFPS(int posX, int posY);                                                                  // Shows current FPS
 RLAPI void DrawText(const char *text, int posX, int posY, int fontSize, Color color);                    // Draw text (using default font)
-RLAPI void DrawTextEx(SpriteFont font, const char* text, Vector2 position, float fontSize, int spacing, Color tint); // Draw text using SpriteFont and additional parameters
+RLAPI void DrawTextEx(SpriteFont font, const char* text, Vector2 position, float fontSize, float spacing, Color tint); // Draw text using SpriteFont and additional parameters
 
 // Text misc. functions
 RLAPI int MeasureText(const char *text, int fontSize);                                                   // Measure string width for default font
-RLAPI Vector2 MeasureTextEx(SpriteFont font, const char *text, float fontSize, int spacing);             // Measure string size for SpriteFont
+RLAPI Vector2 MeasureTextEx(SpriteFont font, const char *text, float fontSize, float spacing);           // Measure string size for SpriteFont
 RLAPI const char *FormatText(const char *text, ...);                                                     // Formatting of text with variables to 'embed'
 RLAPI const char *SubText(const char *text, int position, int length);                                   // Get a piece of a text string
 RLAPI int GetGlyphIndex(SpriteFont font, int character);                                                 // Returns index position for a unicode character on sprite font

+ 18 - 18
src/shapes.c

@@ -324,7 +324,7 @@ void DrawRectanglePro(Rectangle rec, Vector2 origin, float rotation, Color color
     rlEnableTexture(GetTextureDefault().id);
 
     rlPushMatrix();
-        rlTranslatef((float)rec.x, (float)rec.y, 0);
+        rlTranslatef(rec.x, rec.y, 0);
         rlRotatef(rotation, 0, 0, 1);
         rlTranslatef(-origin.x, -origin.y, 0);
 
@@ -333,9 +333,9 @@ void DrawRectanglePro(Rectangle rec, Vector2 origin, float rotation, Color color
             rlNormal3f(0.0f, 0.0f, 1.0f);                          // Normal vector pointing towards viewer
 
             rlVertex2f(0.0f, 0.0f);
-            rlVertex2f(0.0f, (float)rec.height);
-            rlVertex2f((float)rec.width, (float)rec.height);
-            rlVertex2f((float)rec.width, 0.0f);
+            rlVertex2f(0.0f, rec.height);
+            rlVertex2f(rec.width, rec.height);
+            rlVertex2f(rec.width, 0.0f);
         rlEnd();
     rlPopMatrix();
 
@@ -369,23 +369,23 @@ void DrawRectangleGradientEx(Rectangle rec, Color col1, Color col2, Color col3,
 
         // NOTE: Default raylib font character 95 is a white square
         rlColor4ub(col1.r, col1.g, col1.b, col1.a);
-        rlTexCoord2f((float)GetDefaultFont().chars[95].rec.x/GetDefaultFont().texture.width, 
-                     (float)GetDefaultFont().chars[95].rec.y/GetDefaultFont().texture.height);
+        rlTexCoord2f(GetDefaultFont().chars[95].rec.x/GetDefaultFont().texture.width, 
+                     GetDefaultFont().chars[95].rec.y/GetDefaultFont().texture.height);
         rlVertex2f(rec.x, rec.y);
         
         rlColor4ub(col2.r, col2.g, col2.b, col2.a);
-        rlTexCoord2f((float)GetDefaultFont().chars[95].rec.x/GetDefaultFont().texture.width, 
-                     (float)(GetDefaultFont().chars[95].rec.y + GetDefaultFont().chars[95].rec.height)/GetDefaultFont().texture.height);
+        rlTexCoord2f(GetDefaultFont().chars[95].rec.x/GetDefaultFont().texture.width, 
+                     (GetDefaultFont().chars[95].rec.y + GetDefaultFont().chars[95].rec.height)/GetDefaultFont().texture.height);
         rlVertex2f(rec.x, rec.y + rec.height);
         
         rlColor4ub(col3.r, col3.g, col3.b, col3.a);
-        rlTexCoord2f((float)(GetDefaultFont().chars[95].rec.x + GetDefaultFont().chars[95].rec.width)/GetDefaultFont().texture.width, 
-                     (float)(GetDefaultFont().chars[95].rec.y + GetDefaultFont().chars[95].rec.height)/GetDefaultFont().texture.height);
+        rlTexCoord2f((GetDefaultFont().chars[95].rec.x + GetDefaultFont().chars[95].rec.width)/GetDefaultFont().texture.width, 
+                     (GetDefaultFont().chars[95].rec.y + GetDefaultFont().chars[95].rec.height)/GetDefaultFont().texture.height);
         rlVertex2f(rec.x + rec.width, rec.y + rec.height);
         
         rlColor4ub(col4.r, col4.g, col4.b, col4.a);
-        rlTexCoord2f((float)(GetDefaultFont().chars[95].rec.x + GetDefaultFont().chars[95].rec.width)/GetDefaultFont().texture.width, 
-                     (float)GetDefaultFont().chars[95].rec.y/GetDefaultFont().texture.height);
+        rlTexCoord2f((GetDefaultFont().chars[95].rec.x + GetDefaultFont().chars[95].rec.width)/GetDefaultFont().texture.width, 
+                     GetDefaultFont().chars[95].rec.y/GetDefaultFont().texture.height);
         rlVertex2f(rec.x + rec.width, rec.y);
     rlEnd();
     
@@ -667,14 +667,14 @@ bool CheckCollisionCircleRec(Vector2 center, float radius, Rectangle rec)
     float dx = fabsf(center.x - recCenterX);
     float dy = fabsf(center.y - recCenterY);
 
-    if (dx > ((float)rec.width/2.0f + radius)) { return false; }
-    if (dy > ((float)rec.height/2.0f + radius)) { return false; }
+    if (dx > (rec.width/2.0f + radius)) { return false; }
+    if (dy > (rec.height/2.0f + radius)) { return false; }
 
-    if (dx <= ((float)rec.width/2.0f)) { return true; }
-    if (dy <= ((float)rec.height/2.0f)) { return true; }
+    if (dx <= (rec.width/2.0f)) { return true; }
+    if (dy <= (rec.height/2.0f)) { return true; }
 
-    float cornerDistanceSq = (dx - (float)rec.width/2.0f)*(dx - (float)rec.width/2.0f) + 
-						     (dy - (float)rec.height/2.0f)*(dy - (float)rec.height/2.0f);
+    float cornerDistanceSq = (dx - rec.width/2.0f)*(dx - rec.width/2.0f) + 
+						     (dy - rec.height/2.0f)*(dy - rec.height/2.0f);
 
     return (cornerDistanceSq <= (radius*radius));
 }

+ 4 - 4
src/text.c

@@ -364,13 +364,13 @@ void DrawText(const char *text, int posX, int posY, int fontSize, Color color)
         if (fontSize < defaultFontSize) fontSize = defaultFontSize;
         int spacing = fontSize/defaultFontSize;
 
-        DrawTextEx(GetDefaultFont(), text, position, (float)fontSize, spacing, color);
+        DrawTextEx(GetDefaultFont(), text, position, (float)fontSize, (float)spacing, color);
     }
 }
 
 // Draw text using SpriteFont
 // NOTE: chars spacing is NOT proportional to fontSize
-void DrawTextEx(SpriteFont font, const char *text, Vector2 position, float fontSize, int spacing, Color tint)
+void DrawTextEx(SpriteFont font, const char *text, Vector2 position, float fontSize, float spacing, Color tint)
 {
     int length = strlen(text);
     int textOffsetX = 0;        // Offset between characters
@@ -476,14 +476,14 @@ int MeasureText(const char *text, int fontSize)
         if (fontSize < defaultFontSize) fontSize = defaultFontSize;
         int spacing = fontSize/defaultFontSize;
 
-        vec = MeasureTextEx(GetDefaultFont(), text, (float)fontSize, spacing);
+        vec = MeasureTextEx(GetDefaultFont(), text, (float)fontSize, (float)spacing);
     }
 
     return (int)vec.x;
 }
 
 // Measure string size for SpriteFont
-Vector2 MeasureTextEx(SpriteFont font, const char *text, float fontSize, int spacing)
+Vector2 MeasureTextEx(SpriteFont font, const char *text, float fontSize, float spacing)
 {
     int len = strlen(text);
     int tempLen = 0;                // Used to count longer text line num chars

+ 35 - 35
src/textures.c

@@ -713,7 +713,7 @@ void ImageFormat(Image *image, int newFormat)
                 {
                     image->data = (unsigned char *)malloc(image->width*image->height*3*sizeof(unsigned char));
 
-                    for (int i = 0; i < image->width*image->height*3; i += 3, k++)
+                    for (int i = 0, k = 0; i < image->width*image->height*3; i += 3, k++)
                     {
                         ((unsigned char *)image->data)[i] = pixels[k].r;
                         ((unsigned char *)image->data)[i + 1] = pixels[k].g;
@@ -766,7 +766,7 @@ void ImageFormat(Image *image, int newFormat)
                 {
                     image->data = (unsigned char *)malloc(image->width*image->height*4*sizeof(unsigned char));
 
-                    for (int i = 0; i < image->width*image->height*3; i += 3, k++)
+                    for (int i = 0, k = 0; i < image->width*image->height*4; i += 4, k++)
                     {
                         ((unsigned char *)image->data)[i] = pixels[k].r;
                         ((unsigned char *)image->data)[i + 1] = pixels[k].g;
@@ -787,7 +787,7 @@ void ImageFormat(Image *image, int newFormat)
                 {
                     image->data = (float *)malloc(image->width*image->height*3*sizeof(float));
 
-                    for (int i = 0; i < image->width*image->height*3; i += 3, k++)
+                    for (int i = 0, k = 0; i < image->width*image->height*3; i += 3, k++)
                     {
                         ((float *)image->data)[i] = (float)pixels[k].r/255.0f;
                         ((float *)image->data)[i + 1] = (float)pixels[k].g/255.0f;
@@ -798,7 +798,7 @@ void ImageFormat(Image *image, int newFormat)
                 {
                     image->data = (float *)malloc(image->width*image->height*4*sizeof(float));
 
-                    for (int i = 0; i < image->width*image->height*4; i += 4, k++)
+                    for (int i = 0, k = 0; i < image->width*image->height*4; i += 4, k++)
                     {
                         ((float *)image->data)[i] = (float)pixels[k].r/255.0f;
                         ((float *)image->data)[i + 1] = (float)pixels[k].g/255.0f;
@@ -977,13 +977,13 @@ void ImageCrop(Image *image, Rectangle crop)
     {
         // Start the cropping process
         Color *pixels = GetImageData(*image);   // Get data as Color pixels array
-        Color *cropPixels = (Color *)malloc(crop.width*crop.height*sizeof(Color));
+        Color *cropPixels = (Color *)malloc((int)crop.width*(int)crop.height*sizeof(Color));
 
-        for (int j = crop.y; j < (crop.y + crop.height); j++)
+        for (int j = (int)crop.y; j < (int)(crop.y + crop.height); j++)
         {
-            for (int i = crop.x; i < (crop.x + crop.width); i++)
+            for (int i = (int)crop.x; i < (int)(crop.x + crop.width); i++)
             {
-                cropPixels[(j - crop.y)*crop.width + (i - crop.x)] = pixels[j*image->width + i];
+                cropPixels[(j - (int)crop.y)*(int)crop.width + (i - (int)crop.x)] = pixels[j*image->width + i];
             }
         }
 
@@ -993,7 +993,7 @@ void ImageCrop(Image *image, Rectangle crop)
 
         UnloadImage(*image);
 
-        *image = LoadImageEx(cropPixels, crop.width, crop.height);
+        *image = LoadImageEx(cropPixels, (int)crop.width, (int)crop.height);
 
         free(cropPixels);
 
@@ -1316,14 +1316,14 @@ void ImageDraw(Image *dst, Image src, Rectangle srcRec, Rectangle dstRec)
     
     // Blit pixels, copy source image into destination
     // TODO: Probably out-of-bounds blitting could be considered here instead of so much cropping...
-    for (int j = dstRec.y; j < (dstRec.y + dstRec.height); j++)
+    for (int j = (int)dstRec.y; j < (int)(dstRec.y + dstRec.height); j++)
     {
-        for (int i = dstRec.x; i < (dstRec.x + dstRec.width); i++)
+        for (int i = (int)dstRec.x; i < (int)(dstRec.x + dstRec.width); i++)
         {
             // Alpha blending (https://en.wikipedia.org/wiki/Alpha_compositing)
             
-            fdst = ColorNormalize(dstPixels[j*dst->width + i]);
-            fsrc = ColorNormalize(srcPixels[(j - dstRec.y)*dstRec.width + (i - dstRec.x)]);
+            fdst = ColorNormalize(dstPixels[j*(int)dst->width + i]);
+            fsrc = ColorNormalize(srcPixels[(j - (int)dstRec.y)*(int)dstRec.width + (i - (int)dstRec.x)]);
 
             fout.w = fsrc.w + fdst.w*(1.0f - fsrc.w);
             
@@ -1340,10 +1340,10 @@ void ImageDraw(Image *dst, Image src, Rectangle srcRec, Rectangle dstRec)
                 fout.z = (fsrc.z*fsrc.w + fdst.z*fdst.w*(1 - fsrc.w))/fout.w;
             }
 
-            dstPixels[j*dst->width + i] = (Color){ (unsigned char)(fout.x*255.0f), 
-                                                   (unsigned char)(fout.y*255.0f), 
-                                                   (unsigned char)(fout.z*255.0f), 
-                                                   (unsigned char)(fout.w*255.0f) };
+            dstPixels[j*(int)dst->width + i] = (Color){ (unsigned char)(fout.x*255.0f), 
+                                                        (unsigned char)(fout.y*255.0f), 
+                                                        (unsigned char)(fout.z*255.0f), 
+                                                        (unsigned char)(fout.w*255.0f) };
 
             // TODO: Support other blending options
         }
@@ -1351,7 +1351,7 @@ void ImageDraw(Image *dst, Image src, Rectangle srcRec, Rectangle dstRec)
 
     UnloadImage(*dst);  // NOTE: Only dst->data is unloaded
 
-    *dst = LoadImageEx(dstPixels, dst->width, dst->height);
+    *dst = LoadImageEx(dstPixels, (int)dst->width, (int)dst->height);
     ImageFormat(dst, dst->format);
 
     free(srcPixels);
@@ -1363,15 +1363,15 @@ Image ImageText(const char *text, int fontSize, Color color)
 {
     int defaultFontSize = 10;   // Default Font chars height in pixel
     if (fontSize < defaultFontSize) fontSize = defaultFontSize;
-    int spacing = fontSize/defaultFontSize;
+    int spacing = (float)fontSize/defaultFontSize;
 
-    Image imText = ImageTextEx(GetDefaultFont(), text, (float)fontSize, spacing, color);
+    Image imText = ImageTextEx(GetDefaultFont(), text, (float)fontSize, (float)spacing, color);
 
     return imText;
 }
 
 // Create an image from text (custom sprite font)
-Image ImageTextEx(SpriteFont font, const char *text, float fontSize, int spacing, Color tint)
+Image ImageTextEx(SpriteFont font, const char *text, float fontSize, float spacing, Color tint)
 {
     int length = strlen(text);
     int posX = 0;
@@ -1451,7 +1451,7 @@ void ImageDrawRectangle(Image *dst, Vector2 position, Rectangle rec, Color color
 {
     Image imRec = GenImageColor(rec.width, rec.height, color);
     
-    Rectangle dstRec = { (int)position.x, (int)position.y, imRec.width, imRec.height };
+    Rectangle dstRec = { position.x, position.y, imRec.width, imRec.height };
 
     ImageDraw(dst, imRec, rec, dstRec);
     
@@ -1462,16 +1462,16 @@ void ImageDrawRectangle(Image *dst, Vector2 position, Rectangle rec, Color color
 void ImageDrawText(Image *dst, Vector2 position, const char *text, int fontSize, Color color)
 {
     // NOTE: For default font, sapcing is set to desired font size / default font size (10)
-    ImageDrawTextEx(dst, position, GetDefaultFont(), text, (float)fontSize, fontSize/10, color);
+    ImageDrawTextEx(dst, position, GetDefaultFont(), text, (float)fontSize, (float)fontSize/10, color);
 }
 
 // Draw text (custom sprite font) within an image (destination)
-void ImageDrawTextEx(Image *dst, Vector2 position, SpriteFont font, const char *text, float fontSize, int spacing, Color color)
+void ImageDrawTextEx(Image *dst, Vector2 position, SpriteFont font, const char *text, float fontSize, float spacing, Color color)
 {
     Image imText = ImageTextEx(font, text, fontSize, spacing, color);
 
     Rectangle srcRec = { 0, 0, imText.width, imText.height };
-    Rectangle dstRec = { (int)position.x, (int)position.y, imText.width, imText.height };
+    Rectangle dstRec = { position.x, position.y, imText.width, imText.height };
 
     ImageDraw(dst, imText, srcRec, dstRec);
 
@@ -2020,7 +2020,7 @@ void DrawTextureV(Texture2D texture, Vector2 position, Color tint)
 void DrawTextureEx(Texture2D texture, Vector2 position, float rotation, float scale, Color tint)
 {
     Rectangle sourceRec = { 0, 0, texture.width, texture.height };
-    Rectangle destRec = { (int)position.x, (int)position.y, texture.width*scale, texture.height*scale };
+    Rectangle destRec = { position.x, position.y, texture.width*scale, texture.height*scale };
     Vector2 origin = { 0, 0 };
 
     DrawTexturePro(texture, sourceRec, destRec, origin, rotation, tint);
@@ -2029,7 +2029,7 @@ void DrawTextureEx(Texture2D texture, Vector2 position, float rotation, float sc
 // Draw a part of a texture (defined by a rectangle)
 void DrawTextureRec(Texture2D texture, Rectangle sourceRec, Vector2 position, Color tint)
 {
-    Rectangle destRec = { (int)position.x, (int)position.y, abs(sourceRec.width), abs(sourceRec.height) };
+    Rectangle destRec = { position.x, position.y, sourceRec.width, sourceRec.height };
     Vector2 origin = { 0, 0 };
 
     DrawTexturePro(texture, sourceRec, destRec, origin, 0.0f, tint);
@@ -2048,7 +2048,7 @@ void DrawTexturePro(Texture2D texture, Rectangle sourceRec, Rectangle destRec, V
         rlEnableTexture(texture.id);
 
         rlPushMatrix();
-            rlTranslatef((float)destRec.x, (float)destRec.y, 0);
+            rlTranslatef(destRec.x, destRec.y, 0);
             rlRotatef(rotation, 0, 0, 1);
             rlTranslatef(-origin.x, -origin.y, 0);
 
@@ -2057,20 +2057,20 @@ void DrawTexturePro(Texture2D texture, Rectangle sourceRec, Rectangle destRec, V
                 rlNormal3f(0.0f, 0.0f, 1.0f);                          // Normal vector pointing towards viewer
 
                 // Bottom-left corner for texture and quad
-                rlTexCoord2f((float)sourceRec.x/texture.width, (float)sourceRec.y/texture.height);
+                rlTexCoord2f(sourceRec.x/texture.width, sourceRec.y/texture.height);
                 rlVertex2f(0.0f, 0.0f);
 
                 // Bottom-right corner for texture and quad
-                rlTexCoord2f((float)sourceRec.x/texture.width, (float)(sourceRec.y + sourceRec.height)/texture.height);
-                rlVertex2f(0.0f, (float)destRec.height);
+                rlTexCoord2f(sourceRec.x/texture.width, (sourceRec.y + sourceRec.height)/texture.height);
+                rlVertex2f(0.0f, destRec.height);
 
                 // Top-right corner for texture and quad
-                rlTexCoord2f((float)(sourceRec.x + sourceRec.width)/texture.width, (float)(sourceRec.y + sourceRec.height)/texture.height);
-                rlVertex2f((float)destRec.width, (float)destRec.height);
+                rlTexCoord2f((sourceRec.x + sourceRec.width)/texture.width, (sourceRec.y + sourceRec.height)/texture.height);
+                rlVertex2f(destRec.width, destRec.height);
 
                 // Top-left corner for texture and quad
-                rlTexCoord2f((float)(sourceRec.x + sourceRec.width)/texture.width, (float)sourceRec.y/texture.height);
-                rlVertex2f((float)destRec.width, 0.0f);
+                rlTexCoord2f((sourceRec.x + sourceRec.width)/texture.width, sourceRec.y/texture.height);
+                rlVertex2f(destRec.width, 0.0f);
             rlEnd();
         rlPopMatrix();