diff options
author | Bastien Montagne <montagne29@wanadoo.fr> | 2017-04-26 13:11:40 +0300 |
---|---|---|
committer | Bastien Montagne <montagne29@wanadoo.fr> | 2017-04-26 13:11:40 +0300 |
commit | 88a7d3438dc61674e4fd95698a7feffd3c9c05bb (patch) | |
tree | e7dabe78feed128b7b91b90a48a69f841a1e78be /source | |
parent | 621b8bdf86412786e561a5e25fb7583ed61e2b0d (diff) |
Move imm_draw_line_box_dashed to GPU_immediate_util.
Diffstat (limited to 'source')
-rw-r--r-- | source/blender/gpu/GPU_immediate_util.h | 2 | ||||
-rw-r--r-- | source/blender/gpu/intern/gpu_immediate_util.c | 26 | ||||
-rw-r--r-- | source/blender/windowmanager/intern/wm_gesture.c | 18 |
3 files changed, 28 insertions, 18 deletions
diff --git a/source/blender/gpu/GPU_immediate_util.h b/source/blender/gpu/GPU_immediate_util.h index 730b31ed277..3131dda2a48 100644 --- a/source/blender/gpu/GPU_immediate_util.h +++ b/source/blender/gpu/GPU_immediate_util.h @@ -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( diff --git a/source/blender/gpu/intern/gpu_immediate_util.c b/source/blender/gpu/intern/gpu_immediate_util.c index 52829c6956b..49ced32cd51 100644 --- a/source/blender/gpu/intern/gpu_immediate_util.c +++ b/source/blender/gpu/intern/gpu_immediate_util.c @@ -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. */ diff --git a/source/blender/windowmanager/intern/wm_gesture.c b/source/blender/windowmanager/intern/wm_gesture.c index 38b843772ab..cfe62846bfd 100644 --- a/source/blender/windowmanager/intern/wm_gesture.c +++ b/source/blender/windowmanager/intern/wm_gesture.c @@ -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; |