[Bf-blender-cvs] [30da20d] custom-manipulators: Fixes to make branch working after latest merge

Julian Eisel noreply at git.blender.org
Mon Oct 3 19:27:32 CEST 2016


Commit: 30da20d0ee0133ff609f92c681ad7b1a34282b62
Author: Julian Eisel
Date:   Mon Oct 3 18:59:29 2016 +0200
Branches: custom-manipulators
https://developer.blender.org/rB30da20d0ee0133ff609f92c681ad7b1a34282b62

Fixes to make branch working after latest merge

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

M	source/blender/editors/space_graph/space_graph.c
M	source/blender/editors/space_image/space_image.c
M	source/blender/editors/space_node/node_draw.c
M	source/blender/editors/space_node/space_node.c
M	source/blender/editors/space_sequencer/sequencer_draw.c
M	source/blender/editors/space_sequencer/space_sequencer.c
M	source/blender/editors/space_view3d/space_view3d.c
M	source/blender/editors/space_view3d/view3d_draw.c
M	source/blender/windowmanager/manipulators/intern/wm_manipulatormap.c

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

diff --git a/source/blender/editors/space_graph/space_graph.c b/source/blender/editors/space_graph/space_graph.c
index 79c4db8..e7a965d 100644
--- a/source/blender/editors/space_graph/space_graph.c
+++ b/source/blender/editors/space_graph/space_graph.c
@@ -349,8 +349,7 @@ static void graph_main_region_draw(const bContext *C, ARegion *ar)
 	UI_view2d_view_restore(C);
 	
 	/* finally draw any widgets here */
-	WM_manipulatormap_update(C, ar->manipulator_map);
-	WM_manipulatormap_draw(C, ar->manipulator_map, false, true);
+	WM_manipulatormap_draw(ar->manipulator_map, C, WM_MANIPULATORMAP_DRAWSTEP_2D);
 	
 	/* scrollers */
 	// FIXME: args for scrollers depend on the type of data being shown...
diff --git a/source/blender/editors/space_image/space_image.c b/source/blender/editors/space_image/space_image.c
index 9dc55eb..08e0dee 100644
--- a/source/blender/editors/space_image/space_image.c
+++ b/source/blender/editors/space_image/space_image.c
@@ -677,7 +677,7 @@ static void image_main_region_init(wmWindowManager *wm, ARegion *ar)
 		ar->manipulator_map = WM_manipulatormap_new_from_type(&(const struct wmManipulatorMapType_Params) {
 		        "Image_UV", SPACE_IMAGE, RGN_TYPE_WINDOW});
 	}
-	WM_manipulatormaps_add_handlers(ar, ar->manipulator_map);
+	WM_manipulatormap_add_handlers(ar, ar->manipulator_map);
 
 	/* mask polls mode */
 	keymap = WM_keymap_find(wm->defaultconf, "Mask Editing", 0, 0);
@@ -819,8 +819,7 @@ static void image_main_region_draw(const bContext *C, ARegion *ar)
 		UI_view2d_view_restore(C);
 	}
 
-	WM_manipulatormap_update(C, ar->manipulator_map);
-	WM_manipulatormap_draw(C, ar->manipulator_map, false, true);
+	WM_manipulatormap_draw(ar->manipulator_map, C, WM_MANIPULATORMAP_DRAWSTEP_2D);
 
 	draw_image_cache(C, ar);
 
diff --git a/source/blender/editors/space_node/node_draw.c b/source/blender/editors/space_node/node_draw.c
index eb16374..41e3243 100644
--- a/source/blender/editors/space_node/node_draw.c
+++ b/source/blender/editors/space_node/node_draw.c
@@ -1378,8 +1378,7 @@ void drawnodespace(const bContext *C, ARegion *ar)
 			glaDefine2DArea(&ar->winrct);
 			wmOrtho2_pixelspace(ar->winx, ar->winy);
 
-			WM_manipulatormap_update(C, ar->manipulator_map);
-			WM_manipulatormap_draw(C, ar->manipulator_map, false, true);
+			WM_manipulatormap_draw(ar->manipulator_map, C, WM_MANIPULATORMAP_DRAWSTEP_2D);
 
 			glMatrixMode(GL_PROJECTION);
 			glPopMatrix();
diff --git a/source/blender/editors/space_node/space_node.c b/source/blender/editors/space_node/space_node.c
index 74e2684..9da9866 100644
--- a/source/blender/editors/space_node/space_node.c
+++ b/source/blender/editors/space_node/space_node.c
@@ -654,7 +654,7 @@ static void node_main_region_init(wmWindowManager *wm, ARegion *ar)
 		        "Node_Canvas", SPACE_NODE, RGN_TYPE_WINDOW});
 	}
 
-	WM_manipulatormaps_add_handlers(ar, ar->manipulator_map);
+	WM_manipulatormap_add_handlers(ar, ar->manipulator_map);
 
 	/* own keymaps */
 	keymap = WM_keymap_find(wm->defaultconf, "Node Generic", SPACE_NODE, 0);
diff --git a/source/blender/editors/space_sequencer/sequencer_draw.c b/source/blender/editors/space_sequencer/sequencer_draw.c
index 6657c2b..4d9d361 100644
--- a/source/blender/editors/space_sequencer/sequencer_draw.c
+++ b/source/blender/editors/space_sequencer/sequencer_draw.c
@@ -73,6 +73,7 @@
 #include "UI_view2d.h"
 
 #include "WM_api.h"
+#include "WM_types.h"
 
 #include "MEM_guardedalloc.h"
 
@@ -1678,10 +1679,9 @@ void draw_timeline_seq(const bContext *C, ARegion *ar)
 
 	/* reset view matrix */
 	UI_view2d_view_restore(C);
-	
+
 	/* finally draw any widgets here */
-	WM_manipulatormap_update(C, ar->manipulator_map);
-	WM_manipulatormap_draw(C, ar->manipulator_map, false, true);
+	WM_manipulatormap_draw(ar->manipulator_map, C, WM_MANIPULATORMAP_DRAWSTEP_2D);
 
 	/* scrollers */
 	unit = (sseq->flag & SEQ_DRAWFRAMES) ? V2D_UNIT_FRAMES : V2D_UNIT_SECONDS;
diff --git a/source/blender/editors/space_sequencer/space_sequencer.c b/source/blender/editors/space_sequencer/space_sequencer.c
index ddddd4f..5aa5321 100644
--- a/source/blender/editors/space_sequencer/space_sequencer.c
+++ b/source/blender/editors/space_sequencer/space_sequencer.c
@@ -605,8 +605,7 @@ static void sequencer_preview_region_draw(const bContext *C, ARegion *ar)
 		ED_scene_draw_fps(scene, &rect);
 	}
 
-	WM_manipulatormap_update(C, ar->manipulator_map);
-	WM_manipulatormap_draw(C, ar->manipulator_map, false, true);
+	WM_manipulatormap_draw(ar->manipulator_map, C, WM_MANIPULATORMAP_DRAWSTEP_2D);
 }
 
 static void sequencer_preview_region_listener(bScreen *UNUSED(sc), ScrArea *UNUSED(sa), ARegion *ar, wmNotifier *wmn)
diff --git a/source/blender/editors/space_view3d/space_view3d.c b/source/blender/editors/space_view3d/space_view3d.c
index 73a4093..6561e74 100644
--- a/source/blender/editors/space_view3d/space_view3d.c
+++ b/source/blender/editors/space_view3d/space_view3d.c
@@ -505,7 +505,7 @@ static void view3d_main_region_init(wmWindowManager *wm, ARegion *ar)
 		        "View3D", SPACE_VIEW3D, RGN_TYPE_WINDOW});
 	}
 
-	WM_manipulatormaps_add_handlers(ar, ar->manipulator_map);
+	WM_manipulatormap_add_handlers(ar, ar->manipulator_map);
 
 	/* object ops. */
 	
diff --git a/source/blender/editors/space_view3d/view3d_draw.c b/source/blender/editors/space_view3d/view3d_draw.c
index a7639d8..12aa24a 100644
--- a/source/blender/editors/space_view3d/view3d_draw.c
+++ b/source/blender/editors/space_view3d/view3d_draw.c
@@ -79,6 +79,7 @@
 #include "BIF_glutil.h"
 
 #include "WM_api.h"
+#include "WM_types.h"
 
 #include "BLF_api.h"
 #include "BLT_translation.h"
@@ -4083,12 +4084,10 @@ static void view3d_main_region_draw_objects(const bContext *C, Scene *scene, Vie
 	/* main drawing call */
 	view3d_draw_objects(C, scene, v3d, ar, grid_unit, true, false, do_compositing ? rv3d->compositor : NULL);
 
-	/* manipulators need to be updated *after* view matrix was set up
-	 * XXX since we do 2 draw calls (with and without depth culling),
-	 * it might be better to have 2 update calls, too */
-	WM_manipulatormap_update(C, ar->manipulator_map);
-	/* draw depth culled manipulators */
-	WM_manipulatormap_draw(C, ar->manipulator_map, true, false);
+	/* draw depth culled manipulators - manipulators need to be updated *after* view matrix was set up */
+	/* TODO depth culling manipulators is not yet supported, just drawing _3D here, should
+	 * later become _IN_SCENE (and draw _3D separate) */
+	WM_manipulatormap_draw(ar->manipulator_map, C, WM_MANIPULATORMAP_DRAWSTEP_3D);
 
 	/* post process */
 	if (do_compositing) {
@@ -4231,7 +4230,6 @@ void view3d_main_region_draw(const bContext *C, ARegion *ar)
 	const char *grid_unit = NULL;
 	rcti border_rect;
 	bool render_border, clip_border;
-	bool update_widgets = true;
 
 	/* if we only redraw render border area, skip opengl draw and also
 	 * don't do scissor because it's already set */
@@ -4241,7 +4239,6 @@ void view3d_main_region_draw(const bContext *C, ARegion *ar)
 	/* draw viewport using opengl */
 	if (v3d->drawtype != OB_RENDER || !view3d_main_region_do_render_draw(scene) || clip_border) {
 		view3d_main_region_draw_objects(C, scene, v3d, ar, &grid_unit);
-		update_widgets = false; /* widgets were updated in view3d_main_area_draw_objects */
 
 #ifdef DEBUG_DRAW
 		bl_debug_draw();
@@ -4259,10 +4256,7 @@ void view3d_main_region_draw(const bContext *C, ARegion *ar)
 	view3d_main_region_setup_view(scene, v3d, ar, NULL, NULL);
 	glClear(GL_DEPTH_BUFFER_BIT);
 
-	if (update_widgets) {
-		WM_manipulatormap_update(C, ar->manipulator_map);
-	}
-	WM_manipulatormap_draw(C, ar->manipulator_map, false, true);
+	WM_manipulatormap_draw(ar->manipulator_map, C, WM_MANIPULATORMAP_DRAWSTEP_2D);
 
 	ED_region_pixelspace(ar);
 	
diff --git a/source/blender/windowmanager/manipulators/intern/wm_manipulatormap.c b/source/blender/windowmanager/manipulators/intern/wm_manipulatormap.c
index 4be9cba..8d9d9ff 100644
--- a/source/blender/windowmanager/manipulators/intern/wm_manipulatormap.c
+++ b/source/blender/windowmanager/manipulators/intern/wm_manipulatormap.c
@@ -240,14 +240,6 @@ static void manipulatormap_prepare_drawing(
 	manipulatormap_tag_updated(mmap);
 }
 
-static void manipulator_draw(wmManipulator *manipulator, const bContext *C, ListBase *draw_manipulators)
-{
-	BLI_assert(BLI_findindex(draw_manipulators, manipulator) != -1);
-	manipulator->draw(C, manipulator);
-	/* free/remove manipulator link after drawing */
-	BLI_freelinkN(draw_manipulators, manipulator);
-}
-
 /**
  * Draw all visible manipulators in \a mmap.
  * Uses global draw_manipulators listbase.
@@ -288,8 +280,9 @@ static void manipulators_draw_list(const wmManipulatorMap *mmap, const bContext
 		wmManipulator *manipulator = link->data;
 		link_next = link->next;
 
-		/* removes/frees manipulator link from draw_manipulators */
-		manipulator_draw(manipulator, C, draw_manipulators);
+		manipulator->draw(C, manipulator);
+		/* free/remove manipulator link after drawing */
+		BLI_freelinkN(draw_manipulators, link);
 	}
 
 
@@ -303,7 +296,7 @@ static void manipulators_draw_list(const wmManipulatorMap *mmap, const bContext
 
 void WM_manipulatormap_draw(wmManipulatorMap *mmap, const bContext *C, const int drawstep)
 {
-	static ListBase draw_manipulators = {NULL};
+	ListBase draw_manipulators = {NULL};
 
 	manipulatormap_prepare_drawing(mmap, C, &draw_manipulators, drawstep);
 	manipulators_draw_list(mmap, C, &draw_manipulators);




More information about the Bf-blender-cvs mailing list