diff options
author | Clément Foucault <foucault.clem@gmail.com> | 2020-09-16 21:27:10 +0300 |
---|---|---|
committer | Clément Foucault <foucault.clem@gmail.com> | 2020-09-16 21:27:32 +0300 |
commit | 6ade522f277fb74d4691973b7bb55840300043a2 (patch) | |
tree | 1d09279f04406d74d5611223a72a479832613759 /source/blender/editors/sculpt_paint/paint_cursor.c | |
parent | 1fb7f36acb04cd4e158a376cecffcd1468c24393 (diff) |
Fix T79523 Paint Cursor: Wide line not supported on OSX
This replace the use of GPU_line_width by the specialized
GPU_SHADER_3D_POLYLINE_UNIFORM_COLOR shader.
Diffstat (limited to 'source/blender/editors/sculpt_paint/paint_cursor.c')
-rw-r--r-- | source/blender/editors/sculpt_paint/paint_cursor.c | 18 |
1 files changed, 12 insertions, 6 deletions
diff --git a/source/blender/editors/sculpt_paint/paint_cursor.c b/source/blender/editors/sculpt_paint/paint_cursor.c index 55abb269660..7379bdde4ab 100644 --- a/source/blender/editors/sculpt_paint/paint_cursor.c +++ b/source/blender/editors/sculpt_paint/paint_cursor.c @@ -1839,22 +1839,28 @@ static void paint_cursor_update_anchored_location(PaintCursorContext *pcontext) static void paint_cursor_setup_2D_drawing(PaintCursorContext *pcontext) { - GPU_line_width(2.0f); GPU_blend(GPU_BLEND_ALPHA); - GPU_line_smooth(true); pcontext->pos = GPU_vertformat_attr_add( immVertexFormat(), "pos", GPU_COMP_F32, 2, GPU_FETCH_FLOAT); - immBindBuiltinProgram(GPU_SHADER_2D_UNIFORM_COLOR); + + float viewport[4]; + GPU_viewport_size_get_f(viewport); + immBindBuiltinProgram(GPU_SHADER_3D_POLYLINE_UNIFORM_COLOR); + immUniform2fv("viewportSize", &viewport[2]); + immUniform1f("lineWidth", 2.0f * U.pixelsize); } static void paint_cursor_setup_3D_drawing(PaintCursorContext *pcontext) { - GPU_line_width(2.0f); GPU_blend(GPU_BLEND_ALPHA); - GPU_line_smooth(true); pcontext->pos = GPU_vertformat_attr_add( immVertexFormat(), "pos", GPU_COMP_F32, 3, GPU_FETCH_FLOAT); - immBindBuiltinProgram(GPU_SHADER_3D_UNIFORM_COLOR); + + float viewport[4]; + GPU_viewport_size_get_f(viewport); + immBindBuiltinProgram(GPU_SHADER_3D_POLYLINE_UNIFORM_COLOR); + immUniform2fv("viewportSize", &viewport[2]); + immUniform1f("lineWidth", 2.0f * U.pixelsize); } static void paint_cursor_restore_drawing_state(void) |