|
@@ -176,6 +176,25 @@ void DrawLineBezier(Vector2 startPos, Vector2 endPos, float thick, Color color)
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+// Draw lines sequence
|
|
|
+void DrawLineStrip(Vector2 *points, int pointsCount, Color color)
|
|
|
+{
|
|
|
+ if (pointsCount >= 2)
|
|
|
+ {
|
|
|
+ if (rlCheckBufferLimit(pointsCount)) rlglDraw();
|
|
|
+
|
|
|
+ rlBegin(RL_LINES);
|
|
|
+ rlColor4ub(color.r, color.g, color.b, color.a);
|
|
|
+
|
|
|
+ for (int i = 0; i < pointsCount - 1; i++)
|
|
|
+ {
|
|
|
+ rlVertex2f(points[i].x, points[i].y);
|
|
|
+ rlVertex2f(points[i + 1].x, points[i + 1].y);
|
|
|
+ }
|
|
|
+ rlEnd();
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
// Draw a color-filled circle
|
|
|
void DrawCircle(int centerX, int centerY, float radius, Color color)
|
|
|
{
|
|
@@ -1208,6 +1227,37 @@ void DrawTriangleLines(Vector2 v1, Vector2 v2, Vector2 v3, Color color)
|
|
|
rlEnd();
|
|
|
}
|
|
|
|
|
|
+// Draw a triangle fan defined by points
|
|
|
+// NOTE: First point provided is shared by all triangles
|
|
|
+void DrawTriangleFan(Vector2 *points, int pointsCount, Color color)
|
|
|
+{
|
|
|
+ if (pointsCount >= 3)
|
|
|
+ {
|
|
|
+ if (rlCheckBufferLimit((pointsCount - 2)*4)) rlglDraw();
|
|
|
+
|
|
|
+ rlEnableTexture(GetShapesTexture().id);
|
|
|
+ rlBegin(RL_QUADS);
|
|
|
+ rlColor4ub(color.r, color.g, color.b, color.a);
|
|
|
+
|
|
|
+ for (int i = 1; i < pointsCount - 1; i++)
|
|
|
+ {
|
|
|
+ rlTexCoord2f(recTexShapes.x/texShapes.width, recTexShapes.y/texShapes.height);
|
|
|
+ rlVertex2f(points[0].x, points[0].y);
|
|
|
+
|
|
|
+ rlTexCoord2f(recTexShapes.x/texShapes.width, (recTexShapes.y + recTexShapes.height)/texShapes.height);
|
|
|
+ rlVertex2f(points[i].x, points[i].y);
|
|
|
+
|
|
|
+ rlTexCoord2f((recTexShapes.x + recTexShapes.width)/texShapes.width, (recTexShapes.y + recTexShapes.height)/texShapes.height);
|
|
|
+ rlVertex2f(points[i + 1].x, points[i + 1].y);
|
|
|
+
|
|
|
+ rlTexCoord2f((recTexShapes.x + recTexShapes.width)/texShapes.width, recTexShapes.y/texShapes.height);
|
|
|
+ rlVertex2f(points[i + 1].x, points[i + 1].y);
|
|
|
+ }
|
|
|
+ rlEnd();
|
|
|
+ rlDisableTexture();
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
// Draw a regular polygon of n sides (Vector version)
|
|
|
void DrawPoly(Vector2 center, int sides, float radius, float rotation, Color color)
|
|
|
{
|
|
@@ -1256,55 +1306,6 @@ void DrawPoly(Vector2 center, int sides, float radius, float rotation, Color col
|
|
|
rlPopMatrix();
|
|
|
}
|
|
|
|
|
|
-// Draw a closed polygon defined by points
|
|
|
-void DrawPolyEx(Vector2 *points, int pointsCount, Color color)
|
|
|
-{
|
|
|
- if (pointsCount >= 3)
|
|
|
- {
|
|
|
- if (rlCheckBufferLimit((pointsCount - 2)*4)) rlglDraw();
|
|
|
-
|
|
|
- rlEnableTexture(GetShapesTexture().id);
|
|
|
- rlBegin(RL_QUADS);
|
|
|
- rlColor4ub(color.r, color.g, color.b, color.a);
|
|
|
-
|
|
|
- for (int i = 1; i < pointsCount - 1; i++)
|
|
|
- {
|
|
|
- rlTexCoord2f(recTexShapes.x/texShapes.width, recTexShapes.y/texShapes.height);
|
|
|
- rlVertex2f(points[0].x, points[0].y);
|
|
|
-
|
|
|
- rlTexCoord2f(recTexShapes.x/texShapes.width, (recTexShapes.y + recTexShapes.height)/texShapes.height);
|
|
|
- rlVertex2f(points[i].x, points[i].y);
|
|
|
-
|
|
|
- rlTexCoord2f((recTexShapes.x + recTexShapes.width)/texShapes.width, (recTexShapes.y + recTexShapes.height)/texShapes.height);
|
|
|
- rlVertex2f(points[i + 1].x, points[i + 1].y);
|
|
|
-
|
|
|
- rlTexCoord2f((recTexShapes.x + recTexShapes.width)/texShapes.width, recTexShapes.y/texShapes.height);
|
|
|
- rlVertex2f(points[i + 1].x, points[i + 1].y);
|
|
|
- }
|
|
|
- rlEnd();
|
|
|
- rlDisableTexture();
|
|
|
- }
|
|
|
-}
|
|
|
-
|
|
|
-// Draw polygon using lines
|
|
|
-void DrawPolyExLines(Vector2 *points, int pointsCount, Color color)
|
|
|
-{
|
|
|
- if (pointsCount >= 2)
|
|
|
- {
|
|
|
- if (rlCheckBufferLimit(pointsCount)) rlglDraw();
|
|
|
-
|
|
|
- rlBegin(RL_LINES);
|
|
|
- rlColor4ub(color.r, color.g, color.b, color.a);
|
|
|
-
|
|
|
- for (int i = 0; i < pointsCount - 1; i++)
|
|
|
- {
|
|
|
- rlVertex2f(points[i].x, points[i].y);
|
|
|
- rlVertex2f(points[i + 1].x, points[i + 1].y);
|
|
|
- }
|
|
|
- rlEnd();
|
|
|
- }
|
|
|
-}
|
|
|
-
|
|
|
// Define default texture used to draw shapes
|
|
|
void SetShapesTexture(Texture2D texture, Rectangle source)
|
|
|
{
|