[Bf-blender-cvs] [0f1c86542ea] sculpt-mode-features: Brush cursor: Fix smooth stroke line position

Pablo Dobarro noreply at git.blender.org
Mon Mar 18 04:37:04 CET 2019


Commit: 0f1c86542ea2ae42f9136af43899f648a2c74fa5
Author: Pablo Dobarro
Date:   Mon Mar 18 02:31:04 2019 +0100
Branches: sculpt-mode-features
https://developer.blender.org/rB0f1c86542ea2ae42f9136af43899f648a2c74fa5

Brush cursor: Fix smooth stroke line position

Reset the viewport to its original state after drawing the vertex
preview.

===================================================================

M	source/blender/editors/sculpt_paint/paint_cursor.c

===================================================================

diff --git a/source/blender/editors/sculpt_paint/paint_cursor.c b/source/blender/editors/sculpt_paint/paint_cursor.c
index a570600d9cb..90010693222 100644
--- a/source/blender/editors/sculpt_paint/paint_cursor.c
+++ b/source/blender/editors/sculpt_paint/paint_cursor.c
@@ -1259,8 +1259,8 @@ static void paint_draw_cursor(bContext *C, int x, int y, void *UNUSED(unused))
 				else {
 					rds = BKE_brush_unprojected_radius_get(scene, brush);
 				}
+
 				wmViewport(&ar->winrct);
-				wmOrtho2_pixelspace(ar->winx, ar->winy);
 
 				/* draw 3D vertex preview */
 				if (len_v3v3(gi.nearest_vertex_co, gi.location) < rds) {
@@ -1286,6 +1286,7 @@ static void paint_draw_cursor(bContext *C, int x, int y, void *UNUSED(unused))
 
 				GPU_matrix_pop();
 				GPU_matrix_pop_projection();
+				wmWindowViewport(win);
 
 			}
 			else {
@@ -1293,16 +1294,16 @@ static void paint_draw_cursor(bContext *C, int x, int y, void *UNUSED(unused))
 				imm_draw_circle_wire_3d(pos3d, translation[0], translation[1], final_radius, 40);
 			}
 		} else {
-			if (vc.obact->sculpt->cache) {
+			if (vc.obact->sculpt->cache && !vc.obact->sculpt->cache->first_time) {
 				SculptSession *ss = vc.obact->sculpt;
 				wmViewport(&ar->winrct);
-				wmOrtho2_pixelspace(ar->winx, ar->winy);
 				float cursor_location[3];
 				copy_v3_v3(cursor_location, ss->cache->true_location);
 				if (ss->cache->brush->sculpt_tool == SCULPT_TOOL_GRAB) {
 					add_v3_v3(cursor_location, ss->cache->grab_delta);
 				}
 				cursor_draw_point_with_symmetry(pos3d, ar, cursor_location, sd, vc.obact, vc.rv3d->persmat, ss->cache->radius);
+				wmWindowViewport(win);
 			}
 		}
 	}



More information about the Bf-blender-cvs mailing list