diff --git a/src/raylib.h b/src/raylib.h index 07674531d..f46f276c4 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 8c7f24197..8197735f0 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