aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorRay <raysan5@gmail.com>2017-09-30 00:46:31 +0200
committerRay <raysan5@gmail.com>2017-09-30 00:46:31 +0200
commit4f9de9527f8301e024fe81a42f0b9dfc50bae1a6 (patch)
tree24713d3f9521b537ad57c1569c7675bb79b1f077 /src
parent639f41cf5412affbe85439e318205cf855716114 (diff)
downloadraylib-4f9de9527f8301e024fe81a42f0b9dfc50bae1a6.tar.gz
raylib-4f9de9527f8301e024fe81a42f0b9dfc50bae1a6.zip
Review gradient rectangle drawing
Added: DrawRectangleGradientV() Added: DrawRectangleGradientH()
Diffstat (limited to 'src')
-rw-r--r--src/raylib.h3
-rw-r--r--src/shapes.c20
2 files changed, 12 insertions, 11 deletions
diff --git a/src/raylib.h b/src/raylib.h
index 07674531..f46f276c 100644
--- a/src/raylib.h
+++ b/src/raylib.h
@@ -856,7 +856,8 @@ RLAPI void DrawCircleLines(int centerX, int centerY, float radius, Color color);
RLAPI void DrawRectangle(int posX, int posY, int width, int height, Color color); // Draw a color-filled rectangle
RLAPI void DrawRectangleRec(Rectangle rec, Color color); // Draw a color-filled rectangle
RLAPI void DrawRectanglePro(Rectangle rec, Vector2 origin, float rotation, Color color); // Draw a color-filled rectangle with pro parameters
-RLAPI void DrawRectangleGradient(int posX, int posY, int width, int height, Color color1, Color color2); // Draw a gradient-filled rectangle
+RLAPI void DrawRectangleGradientV(int posX, int posY, int width, int height, Color color1, Color color2);// Draw a vertical-gradient-filled rectangle
+RLAPI void DrawRectangleGradientH(int posX, int posY, int width, int height, Color color1, Color color2);// Draw a horizontal-gradient-filled rectangle
RLAPI void DrawRectangleGradientEx(Rectangle rec, Color col1, Color col2, Color col3, Color col4); // Draw a gradient-filled rectangle with custom vertex colors
RLAPI void DrawRectangleV(Vector2 position, Vector2 size, Color color); // Draw a color-filled rectangle (Vector version)
RLAPI void DrawRectangleLines(int posX, int posY, int width, int height, Color color); // Draw rectangle outline
diff --git a/src/shapes.c b/src/shapes.c
index 8c7f2419..8197735f 100644
--- a/src/shapes.c
+++ b/src/shapes.c
@@ -274,22 +274,22 @@ void DrawRectanglePro(Rectangle rec, Vector2 origin, float rotation, Color color
rlDisableTexture();
}
-// Draw a gradient-filled rectangle
+// Draw a vertical-gradient-filled rectangle
// NOTE: Gradient goes from bottom (color1) to top (color2)
-void DrawRectangleGradient(int posX, int posY, int width, int height, Color color1, Color color2)
+void DrawRectangleGradientV(int posX, int posY, int width, int height, Color color1, Color color2)
{
- rlBegin(RL_TRIANGLES);
- rlColor4ub(color1.r, color1.g, color1.b, color1.a); rlVertex2i(posX, posY);
- rlColor4ub(color2.r, color2.g, color2.b, color2.a); rlVertex2i(posX, posY + height);
- rlColor4ub(color2.r, color2.g, color2.b, color2.a); rlVertex2i(posX + width, posY + height);
+ DrawRectangleGradientEx((Rectangle){ posX, posY, width, height }, color1, color2, color2, color1);
+}
- rlColor4ub(color1.r, color1.g, color1.b, color1.a); rlVertex2i(posX, posY);
- rlColor4ub(color2.r, color2.g, color2.b, color2.a); rlVertex2i(posX + width, posY + height);
- rlColor4ub(color1.r, color1.g, color1.b, color1.a); rlVertex2i(posX + width, posY);
- rlEnd();
+// Draw a horizontal-gradient-filled rectangle
+// NOTE: Gradient goes from bottom (color1) to top (color2)
+void DrawRectangleGradientH(int posX, int posY, int width, int height, Color color1, Color color2)
+{
+ DrawRectangleGradientEx((Rectangle){ posX, posY, width, height }, color1, color1, color2, color2);
}
// Draw a gradient-filled rectangle
+// NOTE: Colors refer to corners, starting at top-lef corner and counter-clockwise
void DrawRectangleGradientEx(Rectangle rec, Color col1, Color col2, Color col3, Color col4)
{
rlEnableTexture(GetTextureDefault().id); // Default white texture