Blender  V3.3
Functions
BLI_bitmap_draw_2d.h File Reference

Go to the source code of this file.

Functions

void BLI_bitmap_draw_2d_line_v2v2i (const int p1[2], const int p2[2], bool(*callback)(int, int, void *), void *user_data)
 
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 (int xmin, int ymin, int xmax, int ymax, const int verts[][2], int verts_len, void(*callback)(int x, int x_end, int y, void *), void *user_data)
 

Function Documentation

◆ BLI_bitmap_draw_2d_line_v2v2i()

void BLI_bitmap_draw_2d_line_v2v2i ( const int  p1[2],
const int  p2[2],
bool(*)(int, int, void *)  callback,
void user_data 
)

Plot a line from p1 to p2 (inclusive).

Note
For clipped line drawing, see: http://stackoverflow.com/a/40902741/432509

Definition at line 26 of file bitmap_draw_2d.c.

References callback, error(), user_data, x2, and y1.

Referenced by ED_view3d_depth_read_cached_seg(), and eyedropper_colorband_sample_segment().

◆ BLI_bitmap_draw_2d_poly_v2i_n()

void BLI_bitmap_draw_2d_poly_v2i_n ( int  xmin,
int  ymin,
int  xmax,
int  ymax,
const int  verts[][2],
int  verts_len,
void(*)(int x, int x_end, int y, void *)  callback,
void user_data 
)

Draws a filled polygon with support for self intersections.

Parameters
callbackTakes the x, y coords and x-span (x_end is not inclusive), note that x_end will always be greater than x, so we can use:
do {
func(x, y);
} while (++x != x_end);
_GL_VOID GLfloat value _GL_VOID_RET _GL_VOID const GLuint GLboolean *residences _GL_BOOL_RET _GL_VOID GLsizei GLfloat GLfloat GLfloat GLfloat const GLubyte *bitmap _GL_VOID_RET _GL_VOID GLenum const void *lists _GL_VOID_RET _GL_VOID const GLdouble *equation _GL_VOID_RET _GL_VOID GLdouble GLdouble blue _GL_VOID_RET _GL_VOID GLfloat GLfloat blue _GL_VOID_RET _GL_VOID GLint GLint blue _GL_VOID_RET _GL_VOID GLshort GLshort blue _GL_VOID_RET _GL_VOID GLubyte GLubyte blue _GL_VOID_RET _GL_VOID GLuint GLuint blue _GL_VOID_RET _GL_VOID GLushort GLushort blue _GL_VOID_RET _GL_VOID GLbyte GLbyte GLbyte alpha _GL_VOID_RET _GL_VOID GLdouble GLdouble GLdouble alpha _GL_VOID_RET _GL_VOID GLfloat GLfloat GLfloat alpha _GL_VOID_RET _GL_VOID GLint GLint GLint alpha _GL_VOID_RET _GL_VOID GLshort GLshort GLshort alpha _GL_VOID_RET _GL_VOID GLubyte GLubyte GLubyte alpha _GL_VOID_RET _GL_VOID GLuint GLuint GLuint alpha _GL_VOID_RET _GL_VOID GLushort GLushort GLushort alpha _GL_VOID_RET _GL_VOID GLenum mode _GL_VOID_RET _GL_VOID GLint y

Definition at line 315 of file bitmap_draw_2d.c.

References BLI_assert, BLI_qsort_r(), callback, draw_poly_v2i_n__span_y_sort(), max_ii(), MEM_freeN, MEM_mallocN, min_ii(), SWAP, user_data, verts, x, and y.

Referenced by draw_filled_lasso(), DRW_select_buffer_bitmap_from_poly(), sculpt_gesture_init_from_lasso(), and track_mask_gpencil_layer_rasterize().

◆ BLI_bitmap_draw_2d_tri_v2i()

void BLI_bitmap_draw_2d_tri_v2i ( const int  p1[2],
const int  p2[2],
const int  p3[2],
void(*)(int x, int x_end, int y, void *)  callback,
void user_data 
)
Note
Unclipped (clipped version can be added if needed).

Definition at line 203 of file bitmap_draw_2d.c.

References BLI_assert, callback, draw_tri_flat_max(), draw_tri_flat_min(), inv_slope(), ORDER_VARS2, ORDER_VARS3_BY, and user_data.