Added thickness argument to DrawLine function
This commit is contained in:
parent
6f044c57ac
commit
5296362f97
|
|
@ -1155,7 +1155,7 @@ RLAPI void SetShapesTexture(Texture2D texture, Rectangle source); // Set t
|
||||||
// Basic shapes drawing functions
|
// Basic shapes drawing functions
|
||||||
RLAPI void DrawPixel(int posX, int posY, Color color); // Draw a pixel
|
RLAPI void DrawPixel(int posX, int posY, Color color); // Draw a pixel
|
||||||
RLAPI void DrawPixelV(Vector2 position, Color color); // Draw a pixel (Vector version)
|
RLAPI void DrawPixelV(Vector2 position, Color color); // Draw a pixel (Vector version)
|
||||||
RLAPI void DrawLine(int startPosX, int startPosY, int endPosX, int endPosY, Color color); // Draw a line
|
RLAPI void DrawLine(int startPosX, int startPosY, int endPosX, int endPosY, Color color, float thick); // Draw a line
|
||||||
RLAPI void DrawLineV(Vector2 startPos, Vector2 endPos, Color color); // Draw a line (Vector version)
|
RLAPI void DrawLineV(Vector2 startPos, Vector2 endPos, Color color); // Draw a line (Vector version)
|
||||||
RLAPI void DrawLineEx(Vector2 startPos, Vector2 endPos, float thick, Color color); // Draw a line defining thickness
|
RLAPI void DrawLineEx(Vector2 startPos, Vector2 endPos, float thick, Color color); // Draw a line defining thickness
|
||||||
RLAPI void DrawLineBezier(Vector2 startPos, Vector2 endPos, float thick, Color color); // Draw a line using cubic-bezier curves in-out
|
RLAPI void DrawLineBezier(Vector2 startPos, Vector2 endPos, float thick, Color color); // Draw a line using cubic-bezier curves in-out
|
||||||
|
|
|
||||||
|
|
@ -122,13 +122,24 @@ void DrawPixelV(Vector2 position, Color color)
|
||||||
}
|
}
|
||||||
|
|
||||||
// Draw a line
|
// Draw a line
|
||||||
void DrawLine(int startPosX, int startPosY, int endPosX, int endPosY, Color color)
|
void DrawLine(int startPosX, int startPosY, int endPosX, int endPosY, Color color, float thick)
|
||||||
{
|
{
|
||||||
rlBegin(RL_LINES);
|
Vector2 delta = { endPosX - startPosX, endPosY - startPosY };
|
||||||
rlColor4ub(color.r, color.g, color.b, color.a);
|
float length = sqrtf(delta.x*delta.x + delta.y*delta.y);
|
||||||
rlVertex2i(startPosX, startPosY);
|
|
||||||
rlVertex2i(endPosX, endPosY);
|
if ((length > 0) && (thick > 0))
|
||||||
rlEnd();
|
{
|
||||||
|
float scale = thick/(2*length);
|
||||||
|
Vector2 radius = { -scale*delta.y, scale*delta.x };
|
||||||
|
Vector2 strip[4] = {
|
||||||
|
{ startPosX - radius.x, startPosY - radius.y },
|
||||||
|
{ startPosX + radius.x, startPosY + radius.y },
|
||||||
|
{ endPosX - radius.x, endPosY - radius.y },
|
||||||
|
{ endPosX + radius.x, endPosY + radius.y }
|
||||||
|
};
|
||||||
|
|
||||||
|
DrawTriangleStrip(strip, 4, color);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Draw a line (Vector version)
|
// Draw a line (Vector version)
|
||||||
|
|
@ -139,6 +150,7 @@ void DrawLineV(Vector2 startPos, Vector2 endPos, Color color)
|
||||||
rlVertex2f(startPos.x, startPos.y);
|
rlVertex2f(startPos.x, startPos.y);
|
||||||
rlVertex2f(endPos.x, endPos.y);
|
rlVertex2f(endPos.x, endPos.y);
|
||||||
rlEnd();
|
rlEnd();
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Draw a line defining thickness
|
// Draw a line defining thickness
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user