summaryrefslogtreecommitdiffhomepage
path: root/src/textures.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/textures.c')
-rw-r--r--src/textures.c136
1 files changed, 68 insertions, 68 deletions
diff --git a/src/textures.c b/src/textures.c
index ad34d9c3..17ed07cf 100644
--- a/src/textures.c
+++ b/src/textures.c
@@ -3065,20 +3065,20 @@ void DrawTextureV(Texture2D texture, Vector2 position, Color tint)
// Draw a Texture2D with extended parameters
void DrawTextureEx(Texture2D texture, Vector2 position, float rotation, float scale, Color tint)
{
- Rectangle sourceRec = { 0.0f, 0.0f, (float)texture.width, (float)texture.height };
- Rectangle destRec = { position.x, position.y, (float)texture.width*scale, (float)texture.height*scale };
+ Rectangle source = { 0.0f, 0.0f, (float)texture.width, (float)texture.height };
+ Rectangle dest = { position.x, position.y, (float)texture.width*scale, (float)texture.height*scale };
Vector2 origin = { 0.0f, 0.0f };
- DrawTexturePro(texture, sourceRec, destRec, origin, rotation, tint);
+ DrawTexturePro(texture, source, dest, origin, rotation, tint);
}
// Draw a part of a texture (defined by a rectangle)
-void DrawTextureRec(Texture2D texture, Rectangle sourceRec, Vector2 position, Color tint)
+void DrawTextureRec(Texture2D texture, Rectangle source, Vector2 position, Color tint)
{
- Rectangle destRec = { position.x, position.y, fabsf(sourceRec.width), fabsf(sourceRec.height) };
+ Rectangle dest = { position.x, position.y, fabsf(source.width), fabsf(source.height) };
Vector2 origin = { 0.0f, 0.0f };
- DrawTexturePro(texture, sourceRec, destRec, origin, 0.0f, tint);
+ DrawTexturePro(texture, source, dest, origin, 0.0f, tint);
}
// Draw texture quad with tiling and offset parameters
@@ -3092,85 +3092,85 @@ void DrawTextureQuad(Texture2D texture, Vector2 tiling, Vector2 offset, Rectangl
DrawTexturePro(texture, source, quad, origin, 0.0f, tint);
}
-// Draw part of a texture (defined by a rectangle) with rotation and scale tiled into destRec.
+// Draw part of a texture (defined by a rectangle) with rotation and scale tiled into dest.
// NOTE: For tilling a whole texture DrawTextureQuad() is better
-void DrawTextureTiled(Texture2D texture, Rectangle sourceRec, Rectangle destRec, Vector2 origin, float rotation, float scale, Color tint)
+void DrawTextureTiled(Texture2D texture, Rectangle source, Rectangle dest, Vector2 origin, float rotation, float scale, Color tint)
{
if (texture.id <= 0 || scale <= 0.0f) return; // Wanna see a infinite loop?!...just delete this line!
- int tileWidth = (int)(sourceRec.width*scale), tileHeight = (int)(sourceRec.height*scale);
- if (destRec.width < tileWidth && destRec.height < tileHeight)
+ int tileWidth = (int)(source.width*scale), tileHeight = (int)(source.height*scale);
+ if (dest.width < tileWidth && dest.height < tileHeight)
{
// Can fit only one tile
- DrawTexturePro(texture, (Rectangle){sourceRec.x, sourceRec.y, ((float)destRec.width/tileWidth)*sourceRec.width, ((float)destRec.height/tileHeight)*sourceRec.height},
- (Rectangle){destRec.x, destRec.y, destRec.width, destRec.height}, origin, rotation, tint);
+ DrawTexturePro(texture, (Rectangle){source.x, source.y, ((float)dest.width/tileWidth)*source.width, ((float)dest.height/tileHeight)*source.height},
+ (Rectangle){dest.x, dest.y, dest.width, dest.height}, origin, rotation, tint);
}
- else if (destRec.width <= tileWidth)
+ else if (dest.width <= tileWidth)
{
// Tiled vertically (one column)
int dy = 0;
- for (;dy+tileHeight < destRec.height; dy += tileHeight)
+ for (;dy+tileHeight < dest.height; dy += tileHeight)
{
- DrawTexturePro(texture, (Rectangle){sourceRec.x, sourceRec.y, ((float)destRec.width/tileWidth)*sourceRec.width, sourceRec.height}, (Rectangle){destRec.x, destRec.y + dy, destRec.width, (float)tileHeight}, origin, rotation, tint);
+ DrawTexturePro(texture, (Rectangle){source.x, source.y, ((float)dest.width/tileWidth)*source.width, source.height}, (Rectangle){dest.x, dest.y + dy, dest.width, (float)tileHeight}, origin, rotation, tint);
}
// Fit last tile
- if (dy < destRec.height)
+ if (dy < dest.height)
{
- DrawTexturePro(texture, (Rectangle){sourceRec.x, sourceRec.y, ((float)destRec.width/tileWidth)*sourceRec.width, ((float)(destRec.height - dy)/tileHeight)*sourceRec.height},
- (Rectangle){destRec.x, destRec.y + dy, destRec.width, destRec.height - dy}, origin, rotation, tint);
+ DrawTexturePro(texture, (Rectangle){source.x, source.y, ((float)dest.width/tileWidth)*source.width, ((float)(dest.height - dy)/tileHeight)*source.height},
+ (Rectangle){dest.x, dest.y + dy, dest.width, dest.height - dy}, origin, rotation, tint);
}
}
- else if (destRec.height <= tileHeight)
+ else if (dest.height <= tileHeight)
{
// Tiled horizontally (one row)
int dx = 0;
- for (;dx+tileWidth < destRec.width; dx += tileWidth)
+ for (;dx+tileWidth < dest.width; dx += tileWidth)
{
- DrawTexturePro(texture, (Rectangle){sourceRec.x, sourceRec.y, sourceRec.width, ((float)destRec.height/tileHeight)*sourceRec.height}, (Rectangle){destRec.x + dx, destRec.y, (float)tileWidth, destRec.height}, origin, rotation, tint);
+ DrawTexturePro(texture, (Rectangle){source.x, source.y, source.width, ((float)dest.height/tileHeight)*source.height}, (Rectangle){dest.x + dx, dest.y, (float)tileWidth, dest.height}, origin, rotation, tint);
}
// Fit last tile
- if (dx < destRec.width)
+ if (dx < dest.width)
{
- DrawTexturePro(texture, (Rectangle){sourceRec.x, sourceRec.y, ((float)(destRec.width - dx)/tileWidth)*sourceRec.width, ((float)destRec.height/tileHeight)*sourceRec.height},
- (Rectangle){destRec.x + dx, destRec.y, destRec.width - dx, destRec.height}, origin, rotation, tint);
+ DrawTexturePro(texture, (Rectangle){source.x, source.y, ((float)(dest.width - dx)/tileWidth)*source.width, ((float)dest.height/tileHeight)*source.height},
+ (Rectangle){dest.x + dx, dest.y, dest.width - dx, dest.height}, origin, rotation, tint);
}
}
else
{
// Tiled both horizontally and vertically (rows and columns)
int dx = 0;
- for (;dx+tileWidth < destRec.width; dx += tileWidth)
+ for (;dx+tileWidth < dest.width; dx += tileWidth)
{
int dy = 0;
- for (;dy+tileHeight < destRec.height; dy += tileHeight)
+ for (;dy+tileHeight < dest.height; dy += tileHeight)
{
- DrawTexturePro(texture, sourceRec, (Rectangle){destRec.x + dx, destRec.y + dy, (float)tileWidth, (float)tileHeight}, origin, rotation, tint);
+ DrawTexturePro(texture, source, (Rectangle){dest.x + dx, dest.y + dy, (float)tileWidth, (float)tileHeight}, origin, rotation, tint);
}
- if (dy < destRec.height)
+ if (dy < dest.height)
{
- DrawTexturePro(texture, (Rectangle){sourceRec.x, sourceRec.y, sourceRec.width, ((float)(destRec.height - dy)/tileHeight)*sourceRec.height},
- (Rectangle){destRec.x + dx, destRec.y + dy, (float)tileWidth, destRec.height - dy}, origin, rotation, tint);
+ DrawTexturePro(texture, (Rectangle){source.x, source.y, source.width, ((float)(dest.height - dy)/tileHeight)*source.height},
+ (Rectangle){dest.x + dx, dest.y + dy, (float)tileWidth, dest.height - dy}, origin, rotation, tint);
}
}
// Fit last column of tiles
- if (dx < destRec.width)
+ if (dx < dest.width)
{
int dy = 0;
- for (;dy+tileHeight < destRec.height; dy += tileHeight)
+ for (;dy+tileHeight < dest.height; dy += tileHeight)
{
- DrawTexturePro(texture, (Rectangle){sourceRec.x, sourceRec.y, ((float)(destRec.width - dx)/tileWidth)*sourceRec.width, sourceRec.height},
- (Rectangle){destRec.x + dx, destRec.y + dy, destRec.width - dx, (float)tileHeight}, origin, rotation, tint);
+ DrawTexturePro(texture, (Rectangle){source.x, source.y, ((float)(dest.width - dx)/tileWidth)*source.width, source.height},
+ (Rectangle){dest.x + dx, dest.y + dy, dest.width - dx, (float)tileHeight}, origin, rotation, tint);
}
// Draw final tile in the bottom right corner
- if (dy < destRec.height)
+ if (dy < dest.height)
{
- DrawTexturePro(texture, (Rectangle){sourceRec.x, sourceRec.y, ((float)(destRec.width - dx)/tileWidth)*sourceRec.width, ((float)(destRec.height - dy)/tileHeight)*sourceRec.height},
- (Rectangle){destRec.x + dx, destRec.y + dy, destRec.width - dx, destRec.height - dy}, origin, rotation, tint);
+ DrawTexturePro(texture, (Rectangle){source.x, source.y, ((float)(dest.width - dx)/tileWidth)*source.width, ((float)(dest.height - dy)/tileHeight)*source.height},
+ (Rectangle){dest.x + dx, dest.y + dy, dest.width - dx, dest.height - dy}, origin, rotation, tint);
}
}
}
@@ -3178,7 +3178,7 @@ void DrawTextureTiled(Texture2D texture, Rectangle sourceRec, Rectangle destRec,
// Draw a part of a texture (defined by a rectangle) with 'pro' parameters
// NOTE: origin is relative to destination rectangle size
-void DrawTexturePro(Texture2D texture, Rectangle sourceRec, Rectangle destRec, Vector2 origin, float rotation, Color tint)
+void DrawTexturePro(Texture2D texture, Rectangle source, Rectangle dest, Vector2 origin, float rotation, Color tint)
{
// Check if texture is valid
if (texture.id > 0)
@@ -3188,13 +3188,13 @@ void DrawTexturePro(Texture2D texture, Rectangle sourceRec, Rectangle destRec, V
bool flipX = false;
- if (sourceRec.width < 0) { flipX = true; sourceRec.width *= -1; }
- if (sourceRec.height < 0) sourceRec.y -= sourceRec.height;
+ if (source.width < 0) { flipX = true; source.width *= -1; }
+ if (source.height < 0) source.y -= source.height;
rlEnableTexture(texture.id);
rlPushMatrix();
- rlTranslatef(destRec.x, destRec.y, 0.0f);
+ rlTranslatef(dest.x, dest.y, 0.0f);
rlRotatef(rotation, 0.0f, 0.0f, 1.0f);
rlTranslatef(-origin.x, -origin.y, 0.0f);
@@ -3203,24 +3203,24 @@ 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
- if (flipX) rlTexCoord2f((sourceRec.x + sourceRec.width)/width, sourceRec.y/height);
- else rlTexCoord2f(sourceRec.x/width, sourceRec.y/height);
+ if (flipX) rlTexCoord2f((source.x + source.width)/width, source.y/height);
+ else rlTexCoord2f(source.x/width, source.y/height);
rlVertex2f(0.0f, 0.0f);
// Bottom-right corner for texture and quad
- if (flipX) rlTexCoord2f((sourceRec.x + sourceRec.width)/width, (sourceRec.y + sourceRec.height)/height);
- else rlTexCoord2f(sourceRec.x/width, (sourceRec.y + sourceRec.height)/height);
- rlVertex2f(0.0f, destRec.height);
+ if (flipX) rlTexCoord2f((source.x + source.width)/width, (source.y + source.height)/height);
+ else rlTexCoord2f(source.x/width, (source.y + source.height)/height);
+ rlVertex2f(0.0f, dest.height);
// Top-right corner for texture and quad
- if (flipX) rlTexCoord2f(sourceRec.x/width, (sourceRec.y + sourceRec.height)/height);
- else rlTexCoord2f((sourceRec.x + sourceRec.width)/width, (sourceRec.y + sourceRec.height)/height);
- rlVertex2f(destRec.width, destRec.height);
+ if (flipX) rlTexCoord2f(source.x/width, (source.y + source.height)/height);
+ else rlTexCoord2f((source.x + source.width)/width, (source.y + source.height)/height);
+ rlVertex2f(dest.width, dest.height);
// Top-left corner for texture and quad
- if (flipX) rlTexCoord2f(sourceRec.x/width, sourceRec.y/height);
- else rlTexCoord2f((sourceRec.x + sourceRec.width)/width, sourceRec.y/height);
- rlVertex2f(destRec.width, 0.0f);
+ if (flipX) rlTexCoord2f(source.x/width, source.y/height);
+ else rlTexCoord2f((source.x + source.width)/width, source.y/height);
+ rlVertex2f(dest.width, 0.0f);
rlEnd();
rlPopMatrix();
@@ -3229,20 +3229,20 @@ void DrawTexturePro(Texture2D texture, Rectangle sourceRec, Rectangle destRec, V
}
// Draws a texture (or part of it) that stretches or shrinks nicely using n-patch info
-void DrawTextureNPatch(Texture2D texture, NPatchInfo nPatchInfo, Rectangle destRec, Vector2 origin, float rotation, Color tint)
+void DrawTextureNPatch(Texture2D texture, NPatchInfo nPatchInfo, Rectangle dest, Vector2 origin, float rotation, Color tint)
{
if (texture.id > 0)
{
float width = (float)texture.width;
float height = (float)texture.height;
- float patchWidth = (destRec.width <= 0.0f)? 0.0f : destRec.width;
- float patchHeight = (destRec.height <= 0.0f)? 0.0f : destRec.height;
+ float patchWidth = (dest.width <= 0.0f)? 0.0f : dest.width;
+ float patchHeight = (dest.height <= 0.0f)? 0.0f : dest.height;
- if (nPatchInfo.sourceRec.width < 0) nPatchInfo.sourceRec.x -= nPatchInfo.sourceRec.width;
- if (nPatchInfo.sourceRec.height < 0) nPatchInfo.sourceRec.y -= nPatchInfo.sourceRec.height;
- if (nPatchInfo.type == NPT_3PATCH_HORIZONTAL) patchHeight = nPatchInfo.sourceRec.height;
- if (nPatchInfo.type == NPT_3PATCH_VERTICAL) patchWidth = nPatchInfo.sourceRec.width;
+ if (nPatchInfo.source.width < 0) nPatchInfo.source.x -= nPatchInfo.source.width;
+ if (nPatchInfo.source.height < 0) nPatchInfo.source.y -= nPatchInfo.source.height;
+ if (nPatchInfo.type == NPT_3PATCH_HORIZONTAL) patchHeight = nPatchInfo.source.height;
+ if (nPatchInfo.type == NPT_3PATCH_VERTICAL) patchWidth = nPatchInfo.source.width;
bool drawCenter = true;
bool drawMiddle = true;
@@ -3277,19 +3277,19 @@ void DrawTextureNPatch(Texture2D texture, NPatchInfo nPatchInfo, Rectangle destR
vertD.y = patchHeight; // outer bottom
Vector2 coordA, coordB, coordC, coordD;
- coordA.x = nPatchInfo.sourceRec.x/width;
- coordA.y = nPatchInfo.sourceRec.y/height;
- coordB.x = (nPatchInfo.sourceRec.x + leftBorder)/width;
- coordB.y = (nPatchInfo.sourceRec.y + topBorder)/height;
- coordC.x = (nPatchInfo.sourceRec.x + nPatchInfo.sourceRec.width - rightBorder)/width;
- coordC.y = (nPatchInfo.sourceRec.y + nPatchInfo.sourceRec.height - bottomBorder)/height;
- coordD.x = (nPatchInfo.sourceRec.x + nPatchInfo.sourceRec.width)/width;
- coordD.y = (nPatchInfo.sourceRec.y + nPatchInfo.sourceRec.height)/height;
+ coordA.x = nPatchInfo.source.x/width;
+ coordA.y = nPatchInfo.source.y/height;
+ coordB.x = (nPatchInfo.source.x + leftBorder)/width;
+ coordB.y = (nPatchInfo.source.y + topBorder)/height;
+ coordC.x = (nPatchInfo.source.x + nPatchInfo.source.width - rightBorder)/width;
+ coordC.y = (nPatchInfo.source.y + nPatchInfo.source.height - bottomBorder)/height;
+ coordD.x = (nPatchInfo.source.x + nPatchInfo.source.width)/width;
+ coordD.y = (nPatchInfo.source.y + nPatchInfo.source.height)/height;
rlEnableTexture(texture.id);
rlPushMatrix();
- rlTranslatef(destRec.x, destRec.y, 0.0f);
+ rlTranslatef(dest.x, dest.y, 0.0f);
rlRotatef(rotation, 0.0f, 0.0f, 1.0f);
rlTranslatef(-origin.x, -origin.y, 0.0f);