diff options
Diffstat (limited to 'source/blender/blenlib/BLI_bitmap_draw_2d.h')
-rw-r--r-- | source/blender/blenlib/BLI_bitmap_draw_2d.h | 30 |
1 files changed, 25 insertions, 5 deletions
diff --git a/source/blender/blenlib/BLI_bitmap_draw_2d.h b/source/blender/blenlib/BLI_bitmap_draw_2d.h index 8331d8fac08..3831ed3c9e7 100644 --- a/source/blender/blenlib/BLI_bitmap_draw_2d.h +++ b/source/blender/blenlib/BLI_bitmap_draw_2d.h @@ -24,23 +24,43 @@ extern "C" { #endif +/** + * Plot a line from \a p1 to \a p2 (inclusive). + * + * \note For clipped line drawing, see: http://stackoverflow.com/a/40902741/432509 + */ void BLI_bitmap_draw_2d_line_v2v2i(const int p1[2], const int p2[2], bool (*callback)(int, int, void *), void *user_data); +/** + * \note Unclipped (clipped version can be added if needed). + */ void BLI_bitmap_draw_2d_tri_v2i(const int p1[2], const int p2[2], const int p3[2], void (*callback)(int x, int x_end, int y, void *), void *user_data); -void BLI_bitmap_draw_2d_poly_v2i_n(const int xmin, - const int ymin, - const int xmax, - const int ymax, +/** + * Draws a filled polygon with support for self intersections. + * + * \param callback: Takes the x, y coords and x-span (\a x_end is not inclusive), + * note that \a x_end will always be greater than \a x, so we can use: + * + * \code{.c} + * do { + * func(x, y); + * } while (++x != x_end); + * \endcode + */ +void BLI_bitmap_draw_2d_poly_v2i_n(int xmin, + int ymin, + int xmax, + int ymax, const int verts[][2], - const int verts_len, + int verts_len, void (*callback)(int x, int x_end, int y, void *), void *user_data); |