Allegro 5 api
#include <allegro5/allegro_primitives.h> void al_calculate_ribbon(float* dest, int dest_stride, const float *points, int points_stride, float thickness, int num_segments)
Calculates a ribbon given an array of points. The ribbon will go through all of the passed points. If thickness <= 0, then num_segments of points are required in the destination buffer, otherwise twice as many are needed. The destination and the points buffer should consist of regularly spaced doublets of floats, corresponding to x and y coordinates of the vertices.
Parameters:
dest - Pointer to the destination buffer
dest_stride - Distance (in bytes) between starts of successive pairs of coordinates in the destination buffer
points - An array of pairs of coordinates for each point
points_stride - Distance (in bytes) between starts successive pairs of coordinates in the points buffer
thickness - Thickness of the spline ribbon
num_segments - The number of points to calculate
al_draw_ribbon(3alleg5), al_calculate_arc(3alleg5), al_calculate_spline(3alleg5)