[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