Move imm_draw_line_box_dashed to GPU_immediate_util.

This commit is contained in:
2017-04-26 12:11:40 +02:00
parent 621b8bdf86
commit 88a7d3438d
3 changed files with 28 additions and 18 deletions

View File

@@ -44,6 +44,8 @@ void imm_draw_line_box(unsigned pos, float x1, float y1, float x2, float y2);
void imm_draw_line_box_3d(unsigned pos, float x1, float y1, float x2, float y2);
void imm_draw_line_box_dashed(uint pos, uint line_origin, float x1, float y1, float x2, float y2);
void imm_draw_checker_box(float x1, float y1, float x2, float y2);
void imm_draw_cylinder_fill_normal_3d(

View File

@@ -181,6 +181,32 @@ void imm_draw_line_box_3d(unsigned pos, float x1, float y1, float x2, float y2)
immEnd();
}
/** Same as \a imm_draw_line_box, but for dashed shader. */
/* TODO find a way to generate screen-space dashed lines without that line_origin ugly hack
* (would not bet it's possible with current GLSL though :( ). */
void imm_draw_line_box_dashed(uint pos, uint line_origin, float x1, float y1, float x2, float y2)
{
immBegin(PRIM_LINES, 8);
immAttrib2f(line_origin, x1, y1);
immVertex2f(pos, x1, y1);
immVertex2f(pos, x1, y2);
immAttrib2f(line_origin, x1, y2);
immVertex2f(pos, x1, y2);
immVertex2f(pos, x2, y2);
immAttrib2f(line_origin, x2, y1);
immVertex2f(pos, x2, y2);
immVertex2f(pos, x2, y1);
immAttrib2f(line_origin, x1, y1);
immVertex2f(pos, x2, y1);
immVertex2f(pos, x1, y1);
immEnd();
}
/**
* Draw a standard checkerboard to indicate transparent backgrounds.
*/

View File

@@ -199,24 +199,6 @@ static void wm_gesture_draw_line(wmGesture *gt)
immUnbindProgram();
}
static void imm_draw_line_box_dashed(unsigned pos, unsigned line_origin, float x1, float y1, float x2, float y2)
{
immBegin(PRIM_LINES, 8);
immAttrib2f(line_origin, x1, y1);
immVertex2f(pos, x1, y1);
immVertex2f(pos, x1, y2);
immAttrib2f(line_origin, x1, y2);
immVertex2f(pos, x1, y2);
immVertex2f(pos, x2, y2);
immAttrib2f(line_origin, x2, y1);
immVertex2f(pos, x2, y2);
immVertex2f(pos, x2, y1);
immAttrib2f(line_origin, x1, y1);
immVertex2f(pos, x2, y1);
immVertex2f(pos, x1, y1);
immEnd();
}
static void wm_gesture_draw_rect(wmGesture *gt)
{
rcti *rect = (rcti *)gt->customdata;