al_draw_polyline(1) Allegro 5 API


#include <allegro5/allegro_primitives.h>
void al_draw_polyline(const float* vertices, int vertex_stride,
   int vertex_count, int join_style, int cap_style,
   ALLEGRO_COLOR color, float thickness, float miter_limit)


Draw a series of line segments.

  • vertices - Interleaved array of (x, y) vertex coordinates
  • vertex_stride - the number of bytes between pairs of vertices (the stride)
  • vertex_count - Number of vertices in the array
  • join_style - Member of ALLEGRO_LINE_JOIN(3alleg5) specifying how to render the joins between line segments
  • cap_style - Member of ALLEGRO_LINE_CAP(3alleg5) specifying how to render the end caps
  • color - Color of the line
  • thickness - Thickness of the line, pass <= 0 to draw hairline lines
  • miter_limit - Parameter for miter join style

The stride is normally 2 * sizeof(float) but may be more if the vertex coordinates are in an array of some structure type, e.g.

struct VertexInfo {
   float x;
   float y;
   int id;
void my_draw(struct VertexInfo verts[], int vertex_count, ALLEGRO_COLOR c)
   al_draw_polyline((float *)verts, sizeof(VertexInfo), vertex_count,

The stride may also be negative if the vertices are stored in reverse order.