[Bf-blender-cvs] [d7fa0fc] wiggly-widgets: More info for widget undo push string
Commit: d7fa0fcaae139f0e24e9682d3ae4be0f242250ac Author: Antony Riakiotakis Date: Mon Nov 17 18:48:37 2014 +0100 Branches: wiggly-widgets https://developer.blender.org/rBd7fa0fcaae139f0e24e9682d3ae4be0f242250ac More info for widget undo push string === M source/blender/windowmanager/intern/wm_widgets.c === diff --git a/source/blender/windowmanager/intern/wm_widgets.c b/source/blender/windowmanager/intern/wm_widgets.c index 2443d19..daeef99 100644 --- a/source/blender/windowmanager/intern/wm_widgets.c +++ b/source/blender/windowmanager/intern/wm_widgets.c @@ -652,7 +652,9 @@ void wm_widgetmap_set_active_widget(struct wmWidgetMap *wmap, struct bContext *C widget-ptr = NULL; } else if (widget-prop) { - ED_undo_push(C, widget_undo); + char undo_str[256]; + BLI_snprintf(undo_str, 256, widget_undo: %s, RNA_property_ui_name(widget-prop)); + ED_undo_push(C, undo_str); } } ___ Bf-blender-cvs mailing list Bf-blender-cvs@blender.org http://lists.blender.org/mailman/listinfo/bf-blender-cvs
[Bf-blender-cvs] [36f18cd] wiggly-widgets: Arrow widget interaction:
Commit: 36f18cd35c40eb5f6e6fc03c4f53dd02ee179b5c Author: Antony Riakiotakis Date: Wed Nov 19 12:32:21 2014 +0100 Branches: wiggly-widgets https://developer.blender.org/rB36f18cd35c40eb5f6e6fc03c4f53dd02ee179b5c Arrow widget interaction: Fix interaction when pivot is beside the camera. basically we now do all calculations in 3D space and we do not scale correct the offset in 3D - this creates a nasty dependency loop between drawing and calculation for widgets bound to properties - ie offset depends on scale but scale depends on screen position - ie offset. Also added an extra callback to get the final position of the widget in 3d space and use that to calculate the scale. This takes care of bringing a close to the camera widget to the background and the widget keeping its initial size. The final position can be different from the initial position, especially when the widget is offset from the original position. === M source/blender/editors/space_view3d/space_view3d.c M source/blender/windowmanager/WM_api.h M source/blender/windowmanager/intern/wm_generic_widgets.c M source/blender/windowmanager/intern/wm_widgets.c M source/blender/windowmanager/wm.h === diff --git a/source/blender/editors/space_view3d/space_view3d.c b/source/blender/editors/space_view3d/space_view3d.c index 9f03741..15c4516 100644 --- a/source/blender/editors/space_view3d/space_view3d.c +++ b/source/blender/editors/space_view3d/space_view3d.c @@ -735,7 +735,7 @@ static void WIDGETGROUP_camera_create(struct wmWidgetGroup *wgroup) wmWidget *widget = NULL; PointerRNA *cameraptr = MEM_callocN(sizeof(PointerRNA), camerawidgetptr); - widget = WIDGET_arrow_new(UI_ARROW_STYLE_OFFSET_3D, NULL); + widget = WIDGET_arrow_new(0, NULL); WM_widget_register(wgroup, widget); WIDGET_arrow_set_color(widget, color_camera); diff --git a/source/blender/windowmanager/WM_api.h b/source/blender/windowmanager/WM_api.h index 06f491a..ffc7850 100644 --- a/source/blender/windowmanager/WM_api.h +++ b/source/blender/windowmanager/WM_api.h @@ -518,8 +518,6 @@ enum { UI_ARROW_STYLE_INVERTED = (1 2), /* clamp arrow interaction to property width */ UI_ARROW_STYLE_CONSTRAINED = (1 3), - /* force offset to be in 3D space, even if widget system is not 3D */ - UI_ARROW_STYLE_OFFSET_3D = (1 4), }; enum { diff --git a/source/blender/windowmanager/intern/wm_generic_widgets.c b/source/blender/windowmanager/intern/wm_generic_widgets.c index e813d6c..278e1d6 100644 --- a/source/blender/windowmanager/intern/wm_generic_widgets.c +++ b/source/blender/windowmanager/intern/wm_generic_widgets.c @@ -150,11 +150,22 @@ typedef struct ArrowInteraction { float orig_origin[3]; float orig_mouse[2]; float orig_offset; + float orig_scale; /* direction vector, projected in screen space */ float proj_direction[2]; } ArrowInteraction; + +static void widget_arrow_get_final_pos(struct wmWidget *widget, float pos[3]) +{ + ArrowWidget *arrow = (ArrowWidget *)widget; + + mul_v3_v3fl(pos, arrow-direction, arrow-offset); + add_v3_v3(pos, arrow-widget.origin); +} + + static void arrow_draw_intern(ArrowWidget *arrow, bool select, bool highlight, float scale) { float rot[3][3]; @@ -162,11 +173,7 @@ static void arrow_draw_intern(ArrowWidget *arrow, bool select, bool highlight, f float up[3] = {0.0f, 0.0f, 1.0f}; float final_pos[3]; - if (arrow-style UI_ARROW_STYLE_OFFSET_3D) - mul_v3_v3fl(final_pos, arrow-direction, arrow-offset); - else - mul_v3_v3fl(final_pos, arrow-direction, scale * arrow-offset); - add_v3_v3(final_pos, arrow-widget.origin); + widget_arrow_get_final_pos((wmWidget *)arrow, final_pos); rotation_between_vecs_to_mat3(rot, up, arrow-direction); copy_m4_m3(mat, rot); @@ -188,15 +195,9 @@ static void arrow_draw_intern(ArrowWidget *arrow, bool select, bool highlight, f if (arrow-widget.interaction_data) { ArrowInteraction *data = arrow-widget.interaction_data; - if (arrow-style UI_ARROW_STYLE_OFFSET_3D) - mul_v3_v3fl(final_pos, arrow-direction, data-orig_offset); - else - mul_v3_v3fl(final_pos, arrow-direction, scale * data-orig_offset); - add_v3_v3(final_pos, arrow-widget.origin); - copy_m4_m3(mat, rot); - copy_v3_v3(mat[3], final_pos); - mul_mat3_m4_fl(mat, scale); + copy_v3_v3(mat[3], data-orig_origin); + mul_mat3_m4_fl(mat, data-orig_scale); glPushMatrix(); glMultMatrixf(mat[0][0]); @@ -235,17 +236,19 @@ static int widget_arrow_handler(struct
[Bf-blender-cvs] [48a61db] depsgraph_refactor: Merge branch 'master' into depsgraph_refactor
Commit: 48a61dbd0592eecd2a87667ca833510712268b02 Author: Sergey Sharybin Date: Wed Nov 19 16:35:31 2014 +0500 Branches: depsgraph_refactor https://developer.blender.org/rB48a61dbd0592eecd2a87667ca833510712268b02 Merge branch 'master' into depsgraph_refactor === === ___ Bf-blender-cvs mailing list Bf-blender-cvs@blender.org http://lists.blender.org/mailman/listinfo/bf-blender-cvs
[Bf-blender-cvs] [58f7e89] wiggly-widgets: Add flag so widgets only draw on mouse over.
Commit: 58f7e89e392835de3df1d04ce7780684800ac38b Author: Antony Riakiotakis Date: Wed Nov 19 13:03:30 2014 +0100 Branches: wiggly-widgets https://developer.blender.org/rB58f7e89e392835de3df1d04ce7780684800ac38b Add flag so widgets only draw on mouse over. Camera widget now uses this, also now they only draw if limits is on. === M source/blender/editors/space_view3d/space_view3d.c M source/blender/windowmanager/WM_api.h M source/blender/windowmanager/intern/wm_widgets.c M source/blender/windowmanager/wm.h === diff --git a/source/blender/editors/space_view3d/space_view3d.c b/source/blender/editors/space_view3d/space_view3d.c index 15c4516..fb6d9d2 100644 --- a/source/blender/editors/space_view3d/space_view3d.c +++ b/source/blender/editors/space_view3d/space_view3d.c @@ -701,7 +701,8 @@ static bool WIDGETGROUP_camera_poll(struct wmWidgetGroup *UNUSED(wgroup), const Object *ob = CTX_data_active_object(C); if (ob ob-type == OB_CAMERA) { - return true; + Camera *ca = ob-data; + return (ca-flag CAM_SHOWLIMITS) != 0; } return false; } @@ -716,6 +717,7 @@ static void WIDGETGROUP_camera_update(struct wmWidgetGroup *wgroup, const struct RNA_pointer_create(ca-id, RNA_Camera, ca, cameraptr); WM_widget_set_origin(widget, ob-obmat[3]); + WM_widget_set_draw_on_hover_only(widget, true); WM_widget_property(widget, cameraptr, dof_distance); negate_v3_v3(dir, ob-obmat[2]); WIDGET_arrow_set_direction(widget, dir); diff --git a/source/blender/windowmanager/WM_api.h b/source/blender/windowmanager/WM_api.h index ffc7850..659ae02 100644 --- a/source/blender/windowmanager/WM_api.h +++ b/source/blender/windowmanager/WM_api.h @@ -494,6 +494,8 @@ void *WM_widget_customdata(struct wmWidget *widget); void WM_widget_set_origin(struct wmWidget *widget, float origin[3]); void WM_widget_set_draw(struct wmWidget *widget, bool draw); +void WM_widget_set_draw_on_hover_only(struct wmWidget *widget, bool draw); + void *WM_widgetgroup_customdata(struct wmWidgetGroup *wgroup); void WM_widgetgroup_customdata_set(struct wmWidgetGroup *wgroup, void *data); ListBase *WM_widgetgroup_widgets(struct wmWidgetGroup *wgroup); diff --git a/source/blender/windowmanager/intern/wm_widgets.c b/source/blender/windowmanager/intern/wm_widgets.c index 244f1d2..f6af313 100644 --- a/source/blender/windowmanager/intern/wm_widgets.c +++ b/source/blender/windowmanager/intern/wm_widgets.c @@ -291,7 +291,9 @@ void WM_widgets_draw(const struct bContext *C, struct ARegion *ar, bool is_3d) } for (widget_iter = wgroup-widgets.first; widget_iter; widget_iter = widget_iter-next) { - if (!(widget_iter-flag WM_WIDGET_SKIP_DRAW)) { + if (!(widget_iter-flag WM_WIDGET_SKIP_DRAW) + (!(widget_iter-flag WM_WIDGET_DRAW_HOVER) || (widget_iter-flag WM_WIDGET_HIGHLIGHT))) + { float scale = 1.0; if (do_scale) { @@ -391,6 +393,16 @@ void WM_widget_set_draw(struct wmWidget *widget, bool draw) } } +void WM_widget_set_draw_on_hover_only(struct wmWidget *widget, bool draw) +{ + if (draw) { + widget-flag |= WM_WIDGET_DRAW_HOVER; + } + else { + widget-flag = ~WM_WIDGET_DRAW_HOVER; + } +} + wmWidgetMapType *WM_widgetmaptype_find(const char *idname, int spaceid, int regionid, bool is_3d) { diff --git a/source/blender/windowmanager/wm.h b/source/blender/windowmanager/wm.h index 656e401..07ae91d 100644 --- a/source/blender/windowmanager/wm.h +++ b/source/blender/windowmanager/wm.h @@ -114,6 +114,8 @@ enum widgetflags { /* other stuff */ WM_WIDGET_FREE_DATA = (1 2), WM_WIDGET_SKIP_DRAW = (1 3), + + WM_WIDGET_DRAW_HOVER = (1 4), }; extern void wm_close_and_free(bContext *C, wmWindowManager *); ___ Bf-blender-cvs mailing list Bf-blender-cvs@blender.org http://lists.blender.org/mailman/listinfo/bf-blender-cvs
[Bf-blender-cvs] [fbd4dfb] master: Graph Editor: H/Shift-H now hide and unhide selected curves (Gooseberry Request)
Commit: fbd4dfb2c6435ca095fe64d2fbd76abdb9f550f9 Author: Joshua Leung Date: Thu Nov 20 02:24:42 2014 +1300 Branches: master https://developer.blender.org/rBfbd4dfb2c6435ca095fe64d2fbd76abdb9f550f9 Graph Editor: H/Shift-H now hide and unhide selected curves (Gooseberry Request) Revised the tools for managing which FCurves are visible in the Graph Editor curves area. Now, there are the following tools in place: * V (channels region only) = Hide all curves except those in selected channels [OLD] * H = Hide all selected curves [NEW] * Shift-H = Show all previously hidden curves [NEW] I've removed the old operator to toggle visibility status of selected curves, as it doesn't seem that useful anymore. === M release/scripts/startup/bl_ui/space_graph.py M source/blender/editors/animation/anim_channels_edit.c M source/blender/editors/space_graph/graph_ops.c === diff --git a/release/scripts/startup/bl_ui/space_graph.py b/release/scripts/startup/bl_ui/space_graph.py index 6fc3d9e..a815540 100644 --- a/release/scripts/startup/bl_ui/space_graph.py +++ b/release/scripts/startup/bl_ui/space_graph.py @@ -189,6 +189,8 @@ class GRAPH_MT_channel(Menu): layout.separator() layout.operator(anim.channels_editable_toggle) +layout.operator(graph.hide) +layout.operator(graph.unhide) layout.operator(anim.channels_visibility_set) layout.operator_menu_enum(graph.extrapolation_type, type, text=Extrapolation Mode) diff --git a/source/blender/editors/animation/anim_channels_edit.c b/source/blender/editors/animation/anim_channels_edit.c index b6ab040..33c9aab 100644 --- a/source/blender/editors/animation/anim_channels_edit.c +++ b/source/blender/editors/animation/anim_channels_edit.c @@ -1665,7 +1665,7 @@ static int animchannels_visibility_set_exec(bContext *C, wmOperator *UNUSED(op)) static void ANIM_OT_channels_visibility_set(wmOperatorType *ot) { /* identifiers */ - ot-name = Set Visibility; + ot-name = Show Selected Curves Only; ot-idname = ANIM_OT_channels_visibility_set; ot-description = Make only the selected animation channels visible in the Graph Editor; @@ -1677,83 +1677,6 @@ static void ANIM_OT_channels_visibility_set(wmOperatorType *ot) ot-flag = OPTYPE_REGISTER | OPTYPE_UNDO; } - -/* Toggle Channel Visibility Operator *** */ -/* NOTE: this operator is only valid in the Graph Editor channels region */ - -static int animchannels_visibility_toggle_exec(bContext *C, wmOperator *UNUSED(op)) -{ - bAnimContext ac; - ListBase anim_data = {NULL, NULL}; - ListBase all_data = {NULL, NULL}; - bAnimListElem *ale; - int filter; - short vis = ACHANNEL_SETFLAG_ADD; - - /* get editor data */ - if (ANIM_animdata_get_context(C, ac) == 0) - return OPERATOR_CANCELLED; - - /* get list of all channels that selection may need to be flushed to -* - hierarchy mustn't affect what we have access to here... -*/ - filter = (ANIMFILTER_DATA_VISIBLE | ANIMFILTER_LIST_CHANNELS | ANIMFILTER_NODUPLIS); - ANIM_animdata_filter(ac, all_data, filter, ac.data, ac.datatype); - - /* filter data -* - restrict this to only applying on settings we can get to in the list -*/ - filter = (ANIMFILTER_DATA_VISIBLE | ANIMFILTER_LIST_VISIBLE | ANIMFILTER_SEL | ANIMFILTER_NODUPLIS); - ANIM_animdata_filter(ac, anim_data, filter, ac.data, ac.datatype); - - /* See if we should be making showing all selected or hiding */ - for (ale = anim_data.first; ale; ale = ale-next) { - /* set the setting in the appropriate way (if available) */ - if (ANIM_channel_setting_get(ac, ale, ACHANNEL_SETTING_VISIBLE)) { - vis = ACHANNEL_SETFLAG_CLEAR; - break; - } - } - - /* Now set the flags */ - for (ale = anim_data.first; ale; ale = ale-next) { - /* hack: skip object channels for now, since flushing those will always flush everything, but they are always included */ - /* TODO: find out why this is the case, and fix that */ - if (ale-type == ANIMTYPE_OBJECT) - continue; - - /* change the setting */ - ANIM_channel_setting_set(ac, ale, ACHANNEL_SETTING_VISIBLE, vis); - - /* now, also flush selection status up/down as appropriate */ - ANIM_flush_setting_anim_channels(ac, all_data, ale, ACHANNEL_SETTING_VISIBLE, (vis == ACHANNEL_SETFLAG_ADD)); - } - - /* cleanup */ - ANIM_animdata_freelist(anim_data); -
[Bf-blender-cvs] [2ad6143] master: Cleanup: name hide/reveal, like rest of operators
Commit: 2ad61438d8a8e7bb5e03b89f8ba0863cdfa028ea Author: Campbell Barton Date: Wed Nov 19 14:35:00 2014 +0100 Branches: master https://developer.blender.org/rB2ad61438d8a8e7bb5e03b89f8ba0863cdfa028ea Cleanup: name hide/reveal, like rest of operators === M release/scripts/startup/bl_ui/space_graph.py M source/blender/editors/space_graph/graph_ops.c === diff --git a/release/scripts/startup/bl_ui/space_graph.py b/release/scripts/startup/bl_ui/space_graph.py index a815540..cb5926b 100644 --- a/release/scripts/startup/bl_ui/space_graph.py +++ b/release/scripts/startup/bl_ui/space_graph.py @@ -190,7 +190,7 @@ class GRAPH_MT_channel(Menu): layout.separator() layout.operator(anim.channels_editable_toggle) layout.operator(graph.hide) -layout.operator(graph.unhide) +layout.operator(graph.reveal) layout.operator(anim.channels_visibility_set) layout.operator_menu_enum(graph.extrapolation_type, type, text=Extrapolation Mode) diff --git a/source/blender/editors/space_graph/graph_ops.c b/source/blender/editors/space_graph/graph_ops.c index a4f5750..fe6d729 100644 --- a/source/blender/editors/space_graph/graph_ops.c +++ b/source/blender/editors/space_graph/graph_ops.c @@ -201,7 +201,7 @@ static void GRAPH_OT_cursor_set(wmOperatorType *ot) RNA_def_float(ot-srna, value, 0, -FLT_MAX, FLT_MAX, Value, , -100.0f, 100.0f); } -/* Hide/UnHide Curves - */ +/* Hide/Reveal */ static int graphview_curves_hide_exec(bContext *C, wmOperator *UNUSED(op)) { @@ -268,7 +268,7 @@ static void GRAPH_OT_hide(wmOperatorType *ot) /* */ -static int graphview_curves_unhide_exec(bContext *C, wmOperator *UNUSED(op)) +static int graphview_curves_reveal_exec(bContext *C, wmOperator *UNUSED(op)) { bAnimContext ac; ListBase anim_data = {NULL, NULL}; @@ -319,15 +319,15 @@ static int graphview_curves_unhide_exec(bContext *C, wmOperator *UNUSED(op)) return OPERATOR_FINISHED; } -static void GRAPH_OT_unhide(wmOperatorType *ot) +static void GRAPH_OT_reveal(wmOperatorType *ot) { /* identifiers */ - ot-name = Unhide Curves; - ot-idname = GRAPH_OT_unhide; + ot-name = Reveal Curves; + ot-idname = GRAPH_OT_reveal; ot-description = Make previously hidden curves visible again in Graph Editor view; /* api callbacks */ - ot-exec = graphview_curves_unhide_exec; + ot-exec = graphview_curves_reveal_exec; ot-poll = ED_operator_graphedit_active; /* flags */ @@ -350,7 +350,7 @@ void graphedit_operatortypes(void) WM_operatortype_append(GRAPH_OT_ghost_curves_clear); WM_operatortype_append(GRAPH_OT_hide); - WM_operatortype_append(GRAPH_OT_unhide); + WM_operatortype_append(GRAPH_OT_reveal); /* keyframes */ /* selection */ @@ -586,9 +586,9 @@ void graphedit_keymap(wmKeyConfig *keyconf) /* find (i.e. a shortcut for setting the name filter) */ WM_keymap_add_item(keymap, ANIM_OT_channels_find, FKEY, KM_PRESS, KM_CTRL, 0); - /* hide/unhide selected curves */ + /* hide/reveal selected curves */ WM_keymap_add_item(keymap, GRAPH_OT_hide, HKEY, KM_PRESS, 0, 0); - WM_keymap_add_item(keymap, GRAPH_OT_unhide, HKEY, KM_PRESS, KM_SHIFT, 0); + WM_keymap_add_item(keymap, GRAPH_OT_reveal, HKEY, KM_PRESS, KM_SHIFT, 0); /* channels */ ___ Bf-blender-cvs mailing list Bf-blender-cvs@blender.org http://lists.blender.org/mailman/listinfo/bf-blender-cvs
[Bf-blender-cvs] [793ed3f] master: Tweaks to hide/reveal hotkeys for Graph Editor
Commit: 793ed3fa74ded8545737910c5326024fe4775bfe Author: Joshua Leung Date: Thu Nov 20 02:46:45 2014 +1300 Branches: master https://developer.blender.org/rB793ed3fa74ded8545737910c5326024fe4775bfe Tweaks to hide/reveal hotkeys for Graph Editor Now the hotkeys here work in line with what's done for other parts of Blender * H = Hide selected * Shift-H = Hide unselected (i.e. old VKEY behaviour) * Alt-H = Reveal all === M source/blender/editors/animation/anim_channels_edit.c M source/blender/editors/space_graph/graph_ops.c === diff --git a/source/blender/editors/animation/anim_channels_edit.c b/source/blender/editors/animation/anim_channels_edit.c index 33c9aab..9a2235a 100644 --- a/source/blender/editors/animation/anim_channels_edit.c +++ b/source/blender/editors/animation/anim_channels_edit.c @@ -3034,7 +3034,7 @@ void ED_keymap_animchannels(wmKeyConfig *keyconf) WM_keymap_add_item(keymap, ANIM_OT_channels_ungroup, GKEY, KM_PRESS, KM_ALT, 0); /* Graph Editor only */ - WM_keymap_add_item(keymap, ANIM_OT_channels_visibility_set, VKEY, KM_PRESS, 0, 0); + WM_keymap_add_item(keymap, ANIM_OT_channels_visibility_set, HKEY, KM_PRESS, KM_SHIFT, 0); } /* ** */ diff --git a/source/blender/editors/space_graph/graph_ops.c b/source/blender/editors/space_graph/graph_ops.c index fe6d729..bb041c5 100644 --- a/source/blender/editors/space_graph/graph_ops.c +++ b/source/blender/editors/space_graph/graph_ops.c @@ -588,7 +588,7 @@ void graphedit_keymap(wmKeyConfig *keyconf) /* hide/reveal selected curves */ WM_keymap_add_item(keymap, GRAPH_OT_hide, HKEY, KM_PRESS, 0, 0); - WM_keymap_add_item(keymap, GRAPH_OT_reveal, HKEY, KM_PRESS, KM_SHIFT, 0); + WM_keymap_add_item(keymap, GRAPH_OT_reveal, HKEY, KM_PRESS, KM_ALT, 0); /* channels */ ___ Bf-blender-cvs mailing list Bf-blender-cvs@blender.org http://lists.blender.org/mailman/listinfo/bf-blender-cvs
[Bf-blender-cvs] [cd54f07] master: Fix: Shift-H now works in main graph editor area too
Commit: cd54f07a3c71ba146542e41c7b3407b287b52b4c Author: Joshua Leung Date: Thu Nov 20 03:07:09 2014 +1300 Branches: master https://developer.blender.org/rBcd54f07a3c71ba146542e41c7b3407b287b52b4c Fix: Shift-H now works in main graph editor area too In the process, I've removed the old operator (ANIM_OT_channels_visibility_set) and folded that option in with the hide operator, to make this consistent with how this is done in the 3D view and other parts of Blender. === M release/scripts/startup/bl_ui/space_graph.py M source/blender/editors/animation/anim_channels_edit.c M source/blender/editors/space_graph/graph_ops.c === diff --git a/release/scripts/startup/bl_ui/space_graph.py b/release/scripts/startup/bl_ui/space_graph.py index cb5926b..5861bc0 100644 --- a/release/scripts/startup/bl_ui/space_graph.py +++ b/release/scripts/startup/bl_ui/space_graph.py @@ -189,12 +189,14 @@ class GRAPH_MT_channel(Menu): layout.separator() layout.operator(anim.channels_editable_toggle) -layout.operator(graph.hide) -layout.operator(graph.reveal) -layout.operator(anim.channels_visibility_set) layout.operator_menu_enum(graph.extrapolation_type, type, text=Extrapolation Mode) layout.separator() +layout.operator(graph.hide, text=Hide Selected Curves).unselected = False +layout.operator(graph.hide, text=Hide Unselected Curves).unselected = True +layout.operator(graph.reveal) + +layout.separator() layout.operator(anim.channels_expand) layout.operator(anim.channels_collapse) diff --git a/source/blender/editors/animation/anim_channels_edit.c b/source/blender/editors/animation/anim_channels_edit.c index 9a2235a..579275d 100644 --- a/source/blender/editors/animation/anim_channels_edit.c +++ b/source/blender/editors/animation/anim_channels_edit.c @@ -1585,98 +1585,6 @@ static void ANIM_OT_channels_delete(wmOperatorType *ot) ot-flag = OPTYPE_REGISTER | OPTYPE_UNDO; } -/* Set Channel Visibility Operator *** */ -/* NOTE: this operator is only valid in the Graph Editor channels region */ - -static int animchannels_visibility_set_exec(bContext *C, wmOperator *UNUSED(op)) -{ - bAnimContext ac; - ListBase anim_data = {NULL, NULL}; - ListBase all_data = {NULL, NULL}; - bAnimListElem *ale; - int filter; - - /* get editor data */ - if (ANIM_animdata_get_context(C, ac) == 0) - return OPERATOR_CANCELLED; - - /* get list of all channels that selection may need to be flushed to -* - hierarchy mustn't affect what we have access to here... -*/ - filter = (ANIMFILTER_DATA_VISIBLE | ANIMFILTER_LIST_CHANNELS | ANIMFILTER_NODUPLIS); - ANIM_animdata_filter(ac, all_data, filter, ac.data, ac.datatype); - - /* hide all channels not selected -* - hierarchy matters if we're doing this from the channels region -* since we only want to apply this to channels we can see, -* and have these affect their relatives -* - but for Graph Editor, this gets used also from main region -* where hierarchy doesn't apply, as for [#21276] -*/ - if ((ac.spacetype == SPACE_IPO) (ac.regiontype != RGN_TYPE_CHANNELS)) { - /* graph editor (case 2) */ - filter = (ANIMFILTER_DATA_VISIBLE | ANIMFILTER_UNSEL | ANIMFILTER_CURVE_VISIBLE | ANIMFILTER_NODUPLIS); - } - else { - /* standard case */ - filter = (ANIMFILTER_DATA_VISIBLE | ANIMFILTER_LIST_VISIBLE | ANIMFILTER_UNSEL | ANIMFILTER_NODUPLIS); - } - ANIM_animdata_filter(ac, anim_data, filter, ac.data, ac.datatype); - - for (ale = anim_data.first; ale; ale = ale-next) { - /* clear setting first */ - ANIM_channel_setting_set(ac, ale, ACHANNEL_SETTING_VISIBLE, ACHANNEL_SETFLAG_CLEAR); - - /* now also flush selection status as appropriate -* NOTE: in some cases, this may result in repeat flushing being performed -*/ - ANIM_flush_setting_anim_channels(ac, all_data, ale, ACHANNEL_SETTING_VISIBLE, 0); - } - - ANIM_animdata_freelist(anim_data); - - /* make all the selected channels visible */ - filter = (ANIMFILTER_SEL | ANIMFILTER_NODUPLIS); - ANIM_animdata_filter(ac, anim_data, filter, ac.data, ac.datatype); - - for (ale = anim_data.first; ale; ale = ale-next) { - /* hack: skip object channels for now, since flushing those will always flush everything, but they are always included */ - /* TODO: find out why this is the case, and fix that */ -
[Bf-blender-cvs] [5352fef] multiview: Sequencer: proxy rebuild changes
Commit: 5352fef28f8fb25aadf52f7adf8884fb10fe04f2 Author: Dalai Felinto Date: Wed Nov 19 09:38:30 2014 -0200 Branches: multiview https://developer.blender.org/rB5352fef28f8fb25aadf52f7adf8884fb10fe04f2 Sequencer: proxy rebuild changes === M source/blender/blenkernel/intern/sequencer.c === diff --git a/source/blender/blenkernel/intern/sequencer.c b/source/blender/blenkernel/intern/sequencer.c index 063b588..79744e1 100644 --- a/source/blender/blenkernel/intern/sequencer.c +++ b/source/blender/blenkernel/intern/sequencer.c @@ -1718,10 +1718,13 @@ void BKE_sequencer_proxy_rebuild_finish(SeqIndexBuildContext *context, bool stop { if (context-index_context) { StripAnim *sanim; - for (sanim = context-seq-anims.first; sanim; sanim = sanim-next) { + + for (sanim = context-seq-anims.first; sanim; sanim = sanim-next) IMB_close_anim_proxies(sanim-anim); - } - IMB_close_anim_proxies(context-orig_seq-anim); + + for (sanim = context-orig_seq-anims.first; sanim; sanim = sanim-next) + IMB_close_anim_proxies(sanim-anim); + IMB_anim_index_rebuild_finish(context-index_context, stop); } ___ Bf-blender-cvs mailing list Bf-blender-cvs@blender.org http://lists.blender.org/mailman/listinfo/bf-blender-cvs
[Bf-blender-cvs] [52bc4bf] multiview: Sequencer: final bits of seq-anim stripped away (in favour of seq-anims)
Commit: 52bc4bff6948d856da9e1cf874af8b8c94d9459e Author: Dalai Felinto Date: Wed Nov 19 11:41:56 2014 -0200 Branches: multiview https://developer.blender.org/rB52bc4bff6948d856da9e1cf874af8b8c94d9459e Sequencer: final bits of seq-anim stripped away (in favour of seq-anims) Sequencer core todos: * Check on proxies * I may need a permanent flag to indicate something is multiview/stereo, to prevent overhead on rendering uncached. That should also prevent: * Fix issue of mono-videos (when in multiview) not showing a valid view for all the views. * Add multiview option to rna_sequencer_api add_movie_strip * (optional) Remove duplicate code of creating anims for all views * Test, Test, Test === M source/blender/blenkernel/BKE_sequencer.h M source/blender/blenkernel/intern/sequencer.c M source/blender/makesdna/DNA_sequence_types.h M source/blender/makesrna/intern/rna_color.c M source/blender/makesrna/intern/rna_sequencer_api.c === diff --git a/source/blender/blenkernel/BKE_sequencer.h b/source/blender/blenkernel/BKE_sequencer.h index 0e5e674..8f4dd71 100644 --- a/source/blender/blenkernel/BKE_sequencer.h +++ b/source/blender/blenkernel/BKE_sequencer.h @@ -224,6 +224,7 @@ void BKE_sequencer_base_clipboard_pointers_store(struct ListBase *seqbase); void BKE_sequencer_base_clipboard_pointers_restore(struct ListBase *seqbase, struct Main *bmain); void BKE_sequence_free(struct Scene *scene, struct Sequence *seq); +void BKE_sequence_free_anim(struct Sequence *seq); const char *BKE_sequence_give_name(struct Sequence *seq); void BKE_sequence_calc(struct Scene *scene, struct Sequence *seq); void BKE_sequence_calc_disp(struct Scene *scene, struct Sequence *seq); diff --git a/source/blender/blenkernel/intern/sequencer.c b/source/blender/blenkernel/intern/sequencer.c index 79744e1..90a4293 100644 --- a/source/blender/blenkernel/intern/sequencer.c +++ b/source/blender/blenkernel/intern/sequencer.c @@ -88,6 +88,7 @@ static ImBuf *seq_render_strip_stack(const SeqRenderData *context, ListBase *seq static ImBuf *seq_render_strip(const SeqRenderData *context, Sequence *seq, float cfra); static void seq_free_animdata(Scene *scene, Sequence *seq); static ImBuf *seq_render_mask(const SeqRenderData *context, Mask *mask, float nr, bool make_float); +static size_t seq_num_files(Scene *scene, char views_format); /* XXX */ #define SELECT 1 @@ -174,30 +175,13 @@ static void seq_free_strip(Strip *strip) MEM_freeN(strip); } -/* Functions to free imbuf and anim data on changes */ - -static void seq_free_anim(ListBase *anims) -{ - while (anims-last) { - StripAnim *sanim = anims-last; - BLI_remlink(anims, sanim); - - if (sanim-anim) { - IMB_free_anim(sanim-anim); - sanim-anim = NULL; - } - - MEM_freeN(sanim); - } -} - /* only give option to skip cache locally (static func) */ static void BKE_sequence_free_ex(Scene *scene, Sequence *seq, const bool do_cache) { if (seq-strip) seq_free_strip(seq-strip); - seq_free_anim(seq-anims); + BKE_sequence_free_anim(seq); if (seq-type SEQ_TYPE_EFFECT) { struct SeqEffectHandle sh = BKE_sequence_get_effect(seq); @@ -252,6 +236,22 @@ void BKE_sequence_free(Scene *scene, Sequence *seq) BKE_sequence_free_ex(scene, seq, true); } +/* Function to free imbuf and anim data on changes */ +void BKE_sequence_free_anim(Sequence *seq) +{ + while (seq-anims.last) { + StripAnim *sanim = seq-anims.last; + BLI_remlink(seq-anims, sanim); + + if (sanim-anim) { + IMB_free_anim(sanim-anim); + sanim-anim = NULL; + } + + MEM_freeN(sanim); + } +} + /* cache must be freed before calling this function * since it leaves the seqbase in an invalid state */ static void seq_free_sequence_recurse(Scene *scene, Sequence *seq) @@ -789,7 +789,7 @@ void BKE_sequence_calc(Scene *scene, Sequence *seq) /* note: caller should run BKE_sequence_calc(scene, seq) after */ void BKE_sequence_reload_new_file(Scene *scene, Sequence *seq, const bool lock_range) { - char str[FILE_MAX]; + char path[FILE_MAX]; int prev_startdisp = 0, prev_enddisp = 0; /* note: don't rename the strip, will break animation curves */ @@ -822,23 +822,66 @@ void BKE_sequence_reload_new_file(Scene *scene, Sequence *seq, const bool lock_r break; } case SEQ_TYPE_MOVIE: - // XXX MV SEQ MOV - BLI_join_dirfile(str, sizeof(str), seq-strip-dir, + { +
[Bf-blender-cvs] [13b196f] gooseberry: Merge branch 'master' into gooseberry
Commit: 13b196f4609d267a070d8136fa305915d2b6321d Author: Campbell Barton Date: Wed Nov 19 15:23:38 2014 +0100 Branches: gooseberry https://developer.blender.org/rB13b196f4609d267a070d8136fa305915d2b6321d Merge branch 'master' into gooseberry === === ___ Bf-blender-cvs mailing list Bf-blender-cvs@blender.org http://lists.blender.org/mailman/listinfo/bf-blender-cvs
[Bf-blender-cvs] [ca65c70] gooseberry: warnings
Commit: ca65c70ce18afaf607fc9c6a99bfe1ec6915c6d6 Author: Campbell Barton Date: Wed Nov 19 15:27:56 2014 +0100 Branches: gooseberry https://developer.blender.org/rBca65c70ce18afaf607fc9c6a99bfe1ec6915c6d6 warnings === M source/blender/editors/physics/particle_edit.c M source/blender/modifiers/intern/MOD_particleinstance.c M source/blender/physics/intern/implicit_blender.c === diff --git a/source/blender/editors/physics/particle_edit.c b/source/blender/editors/physics/particle_edit.c index b739f15..2c3280a 100644 --- a/source/blender/editors/physics/particle_edit.c +++ b/source/blender/editors/physics/particle_edit.c @@ -4151,7 +4151,7 @@ static void shape_cut(PEData *data, int pa_index) } } -static int shape_cut_exec(bContext *C, wmOperator *op) +static int shape_cut_exec(bContext *C, wmOperator *UNUSED(op)) { Scene *scene = CTX_data_scene(C); Object *ob = CTX_data_active_object(C); diff --git a/source/blender/modifiers/intern/MOD_particleinstance.c b/source/blender/modifiers/intern/MOD_particleinstance.c index e6e2295..2f49209 100644 --- a/source/blender/modifiers/intern/MOD_particleinstance.c +++ b/source/blender/modifiers/intern/MOD_particleinstance.c @@ -186,7 +186,7 @@ static DerivedMesh *applyModifier(ModifierData *md, Object *ob, int maxvert, maxpoly, maxloop, totpart = 0, first_particle = 0; int k, p, p_skip; short track = ob-trackflag % 3, trackneg, axis = pimd-axis; - float max_co = 0.0, min_co = 0.0, temp_co[3], cross[3]; + float max_co = 0.0, min_co = 0.0, temp_co[3]; float *size = NULL; trackneg = ((ob-trackflag 2) ? 1 : 0); diff --git a/source/blender/physics/intern/implicit_blender.c b/source/blender/physics/intern/implicit_blender.c index 82b98df..2f9adc6 100644 --- a/source/blender/physics/intern/implicit_blender.c +++ b/source/blender/physics/intern/implicit_blender.c @@ -332,7 +332,6 @@ static void print_sparse_matrix(fmatrix3x3 *m) } } } -#endif static void print_lvector(lfVector *v, int numverts) { @@ -389,6 +388,7 @@ static void print_bfmatrix(fmatrix3x3 *m) MEM_freeN(t); } +#endif /* copy 3x3 matrix */ DO_INLINE void cp_fmatrix(float to[3][3], float from[3][3]) ___ Bf-blender-cvs mailing list Bf-blender-cvs@blender.org http://lists.blender.org/mailman/listinfo/bf-blender-cvs
[Bf-blender-cvs] [896ee44] wiggly-widgets: Borrow transform system interaction: When arrow direction has direction close to view direction, use up/down movement of mouse to calculate offset.
Commit: 896ee44ed6cc1a53aeaed50b5a2cd6c147fc6353 Author: Antony Riakiotakis Date: Wed Nov 19 15:28:10 2014 +0100 Branches: wiggly-widgets https://developer.blender.org/rB896ee44ed6cc1a53aeaed50b5a2cd6c147fc6353 Borrow transform system interaction: When arrow direction has direction close to view direction, use up/down movement of mouse to calculate offset. === M source/blender/windowmanager/intern/wm_generic_widgets.c === diff --git a/source/blender/windowmanager/intern/wm_generic_widgets.c b/source/blender/windowmanager/intern/wm_generic_widgets.c index 1c7ece1..993c4cc 100644 --- a/source/blender/windowmanager/intern/wm_generic_widgets.c +++ b/source/blender/windowmanager/intern/wm_generic_widgets.c @@ -169,7 +169,7 @@ static void widget_arrow_get_final_pos(struct wmWidget *widget, float pos[3]) add_v3_v3(pos, arrow-widget.origin); } -static void arrow_draw_geom(ArrowWidget *arrow, bool select, bool highlight) +static void arrow_draw_geom(ArrowWidget *arrow, bool select) { if (arrow-style UI_ARROW_STYLE_CROSS) { glPushAttrib(GL_ENABLE_BIT); @@ -217,7 +217,7 @@ static void arrow_draw_intern(ArrowWidget *arrow, bool select, bool highlight) else glColor4fv(arrow-color); - arrow_draw_geom(arrow, select, highlight); + arrow_draw_geom(arrow, select); glPopMatrix(); @@ -233,7 +233,7 @@ static void arrow_draw_intern(ArrowWidget *arrow, bool select, bool highlight) glEnable(GL_BLEND); glColor4f(0.5f, 0.5f, 0.5f, 0.5f); - arrow_draw_geom(arrow, select, highlight); + arrow_draw_geom(arrow, select); glDisable(GL_BLEND); @@ -268,28 +268,43 @@ static int widget_arrow_handler(struct bContext *C, const struct wmEvent *event, float dir_2d[2], dir2d_final[2]; float fac, zfac; float facdir = 1.0f; - bool flip; + bool use_vertical = false; copy_v3_v3(orig_origin, data-orig_origin); orig_origin[3] = 1.0f; add_v3_v3v3(offset, orig_origin, arrow-direction); offset[3] = 1.0f; - zfac = ED_view3d_calc_zfac(rv3d, orig_origin, flip); - - if (flip) - zfac *= -1.0; - - /* multiply to projection space */ - mul_m4_v4(rv3d-persmat, orig_origin); - mul_m4_v4(rv3d-persmat, offset); - - mul_v4_fl(orig_origin, 1.0f/orig_origin[3]); - mul_v4_fl(offset, 1.0f/offset[3]); - sub_v2_v2v2(dir_2d, offset, orig_origin); - dir_2d[0] *= ar-winx; - dir_2d[1] *= ar-winy; - normalize_v2(dir_2d); + /* calculate view vector */ + if (rv3d-is_persp) { + sub_v3_v3v3(viewvec, orig_origin, rv3d-viewinv[3]); + } + else { + copy_v3_v3(viewvec, rv3d-viewinv[2]); + } + normalize_v3(viewvec); + + zfac = ED_view3d_calc_zfac(rv3d, orig_origin, NULL); + + /* first determine if view vector is really close to the direction. If it is, we use vertical movement to determine offset, +* just like transform system does */ + if (RAD2DEG(acos(dot_v3v3(viewvec, arrow-direction))) 5.0f) { + /* multiply to projection space */ + mul_m4_v4(rv3d-persmat, orig_origin); + mul_v4_fl(orig_origin, 1.0f/orig_origin[3]); + mul_m4_v4(rv3d-persmat, offset); + mul_v4_fl(offset, 1.0f/offset[3]); + + sub_v2_v2v2(dir_2d, offset, orig_origin); + dir_2d[0] *= ar-winx; + dir_2d[1] *= ar-winy; + normalize_v2(dir_2d); + } + else { + dir_2d[0] = 0.0f; + dir_2d[1] = 1.0f; + use_vertical = true; + } /* find mouse difference */ m_diff[0] = event-mval[0] - data-orig_mouse[0]; @@ -302,7 +317,7 @@ static int widget_arrow_handler(struct bContext *C, const struct wmEvent *event, add_v3_v3v3(orig_origin, offset, data-orig_origin); - /* calculate view vector */ + /* calculate view vector for the new position */ if (rv3d-is_persp) { sub_v3_v3v3(viewvec, orig_origin, rv3d-viewinv[3]); } @@ -310,13 +325,19 @@ static int widget_arrow_handler(struct bContext *C, const struct wmEvent *event, copy_v3_v3(viewvec, rv3d-viewinv[2]); } - /* now find a plane parallel to the view vector so we can intersect with the arrow direction */ - cross_v3_v3v3(tangent, viewvec, offset); - cross_v3_v3v3(plane, tangent, viewvec); - fac = dot_v3v3(plane, offset) / dot_v3v3(arrow-direction, plane); + normalize_v3(viewvec); + if (!use_vertical) { + /* now find a plane parallel to the view vector so we can intersect with the arrow direction */ +
[Bf-blender-cvs] [6ce5174] wiggly-widgets: Arrow Widget:
Commit: 6ce517430141c53fe397eddd3b30119851b70f8d Author: Antony Riakiotakis Date: Wed Nov 19 14:24:29 2014 +0100 Branches: wiggly-widgets https://developer.blender.org/rB6ce517430141c53fe397eddd3b30119851b70f8d Arrow Widget: Create a cross style widget, with wireframe cross. Allows setting a custom scale for the arrow widget also, an up orientation. === M source/blender/editors/space_view3d/space_view3d.c M source/blender/windowmanager/WM_api.h M source/blender/windowmanager/intern/wm_generic_widgets.c === diff --git a/source/blender/editors/space_view3d/space_view3d.c b/source/blender/editors/space_view3d/space_view3d.c index fb6d9d2..78056f4 100644 --- a/source/blender/editors/space_view3d/space_view3d.c +++ b/source/blender/editors/space_view3d/space_view3d.c @@ -717,10 +717,11 @@ static void WIDGETGROUP_camera_update(struct wmWidgetGroup *wgroup, const struct RNA_pointer_create(ca-id, RNA_Camera, ca, cameraptr); WM_widget_set_origin(widget, ob-obmat[3]); - WM_widget_set_draw_on_hover_only(widget, true); WM_widget_property(widget, cameraptr, dof_distance); negate_v3_v3(dir, ob-obmat[2]); WIDGET_arrow_set_direction(widget, dir); + WIDGET_arrow_set_up_vector(widget, ob-obmat[1]); + WIDGET_arrow_set_scale(widget, ca-drawsize); } @@ -733,11 +734,12 @@ static void WIDGETGROUP_camera_free(struct wmWidgetGroup *wgroup) static void WIDGETGROUP_camera_create(struct wmWidgetGroup *wgroup) { - float color_camera[4] = {1.0f, 0.7f, 0.2f, 1.0f}; + float color_camera[4] = {1.0f, 0.3f, 0.0f, 1.0f}; wmWidget *widget = NULL; PointerRNA *cameraptr = MEM_callocN(sizeof(PointerRNA), camerawidgetptr); - widget = WIDGET_arrow_new(0, NULL); + widget = WIDGET_arrow_new(UI_ARROW_STYLE_CROSS, NULL); + WM_widget_set_draw_on_hover_only(widget, true); WM_widget_register(wgroup, widget); WIDGET_arrow_set_color(widget, color_camera); diff --git a/source/blender/windowmanager/WM_api.h b/source/blender/windowmanager/WM_api.h index 659ae02..7425949 100644 --- a/source/blender/windowmanager/WM_api.h +++ b/source/blender/windowmanager/WM_api.h @@ -516,10 +516,11 @@ void WM_widgetmaptypes_free(void); enum { UI_ARROW_STYLE_NORMAL= 0, UI_ARROW_STYLE_NO_AXIS = (1 1), + UI_ARROW_STYLE_CROSS = (1 2), /* inverted offset during interaction - if set it also sets constrained below */ - UI_ARROW_STYLE_INVERTED = (1 2), + UI_ARROW_STYLE_INVERTED = (1 3), /* clamp arrow interaction to property width */ - UI_ARROW_STYLE_CONSTRAINED = (1 3), + UI_ARROW_STYLE_CONSTRAINED = (1 4), }; enum { @@ -530,6 +531,8 @@ enum { struct wmWidget *WIDGET_arrow_new(int style, void *customdata); void WIDGET_arrow_set_color(struct wmWidget *widget, float color[4]); void WIDGET_arrow_set_direction(struct wmWidget *widget, float direction[3]); +void WIDGET_arrow_set_up_vector(struct wmWidget *widget, float direction[3]); +void WIDGET_arrow_set_scale(struct wmWidget *widget, float scale); struct wmWidget *WIDGET_dial_new(int style, void *customdata); diff --git a/source/blender/windowmanager/intern/wm_generic_widgets.c b/source/blender/windowmanager/intern/wm_generic_widgets.c index 278e1d6..814beca 100644 --- a/source/blender/windowmanager/intern/wm_generic_widgets.c +++ b/source/blender/windowmanager/intern/wm_generic_widgets.c @@ -136,10 +136,15 @@ static void widget_draw_intern(WidgetDrawInfo *info, bool select) /* Arrow widget / +#define ARROW_UP_VECTOR_SET 1 + typedef struct ArrowWidget { wmWidget widget; int style; + int flag; float direction[3]; + float up[3]; + float scale; float color[4]; float offset; /* property range and minimum for constrained arrows */ @@ -165,20 +170,45 @@ static void widget_arrow_get_final_pos(struct wmWidget *widget, float pos[3]) add_v3_v3(pos, arrow-widget.origin); } +static void arrow_draw_geom(ArrowWidget *arrow, bool select, bool highlight) +{ + if (arrow-style UI_ARROW_STYLE_CROSS) { + glPushAttrib(GL_ENABLE_BIT); + glDisable(GL_LIGHTING); + glBegin(GL_LINES); + glVertex2f(-1.0, 0.f); + glVertex2f(1.0, 0.f); + glVertex2f(0.f, -1.0); + glVertex2f(0.f, 1.0); + glEnd(); + + glPopAttrib(); + } + else { + widget_draw_intern(arraw_head_draw_info, select); + } +} -static void arrow_draw_intern(ArrowWidget *arrow, bool select, bool highlight, float scale) +static void arrow_draw_intern(ArrowWidget *arrow, bool select, bool highlight) {
[Bf-blender-cvs] [134d695] wiggly-widgets: More refinement to the widget system. Now camera widget should be indistinguishable than the displayed widget (might probably be worth deleting the original)
Commit: 134d69582c5f6370437a6b4570d67251f65e7df1 Author: Antony Riakiotakis Date: Wed Nov 19 14:48:02 2014 +0100 Branches: wiggly-widgets https://developer.blender.org/rB134d69582c5f6370437a6b4570d67251f65e7df1 More refinement to the widget system. Now camera widget should be indistinguishable than the displayed widget (might probably be worth deleting the original) === M source/blender/editors/space_node/node_draw.c M source/blender/editors/space_view3d/space_view3d.c M source/blender/editors/space_view3d/view3d_draw.c M source/blender/windowmanager/WM_api.h M source/blender/windowmanager/intern/wm_generic_widgets.c M source/blender/windowmanager/intern/wm_widgets.c M source/blender/windowmanager/wm.h === diff --git a/source/blender/editors/space_node/node_draw.c b/source/blender/editors/space_node/node_draw.c index a2103f5..e85a3a4 100644 --- a/source/blender/editors/space_node/node_draw.c +++ b/source/blender/editors/space_node/node_draw.c @@ -1349,7 +1349,7 @@ void drawnodespace(const bContext *C, ARegion *ar) /* almost #wmOrtho2_region_pixelspace, but no +1 px */ //wmOrtho2_pixelspace(ar-winx, ar-winy); - WM_widgets_draw(C, ar, false); + WM_widgets_draw(C, ar); glMatrixMode(GL_PROJECTION); glPopMatrix(); diff --git a/source/blender/editors/space_view3d/space_view3d.c b/source/blender/editors/space_view3d/space_view3d.c index 78056f4..1be83b5 100644 --- a/source/blender/editors/space_view3d/space_view3d.c +++ b/source/blender/editors/space_view3d/space_view3d.c @@ -721,7 +721,7 @@ static void WIDGETGROUP_camera_update(struct wmWidgetGroup *wgroup, const struct negate_v3_v3(dir, ob-obmat[2]); WIDGET_arrow_set_direction(widget, dir); WIDGET_arrow_set_up_vector(widget, ob-obmat[1]); - WIDGET_arrow_set_scale(widget, ca-drawsize); + WM_widget_set_scale(widget, ca-drawsize); } @@ -740,6 +740,7 @@ static void WIDGETGROUP_camera_create(struct wmWidgetGroup *wgroup) widget = WIDGET_arrow_new(UI_ARROW_STYLE_CROSS, NULL); WM_widget_set_draw_on_hover_only(widget, true); + WM_widget_set_3d_scale(widget, false); WM_widget_register(wgroup, widget); WIDGET_arrow_set_color(widget, color_camera); diff --git a/source/blender/editors/space_view3d/view3d_draw.c b/source/blender/editors/space_view3d/view3d_draw.c index 6fc0d90..99ab628 100644 --- a/source/blender/editors/space_view3d/view3d_draw.c +++ b/source/blender/editors/space_view3d/view3d_draw.c @@ -3552,7 +3552,7 @@ void view3d_main_area_draw(const bContext *C, ARegion *ar) view3d_main_area_setup_view(scene, v3d, ar, NULL, NULL); glClear(GL_DEPTH_BUFFER_BIT); - WM_widgets_draw(C, ar, true); + WM_widgets_draw(C, ar); ED_region_pixelspace(ar); view3d_main_area_draw_info(C, scene, ar, v3d, grid_unit, render_border); diff --git a/source/blender/windowmanager/WM_api.h b/source/blender/windowmanager/WM_api.h index 7425949..35349a8 100644 --- a/source/blender/windowmanager/WM_api.h +++ b/source/blender/windowmanager/WM_api.h @@ -484,7 +484,7 @@ void WM_widget_operator(struct wmWidget *, int (*initialize_op)(struct bContext *, const struct wmEvent *, struct wmWidget *, struct PointerRNA *), const char *opname, const char *propname); -void WM_widgets_draw(const struct bContext *C, struct ARegion *ar, bool is_3d); +void WM_widgets_draw(const struct bContext *C, struct ARegion *ar); void WM_event_add_widget_handler(struct ARegion *ar); bool WM_widget_register(struct wmWidgetGroup *wgroup, struct wmWidget *widget); @@ -493,8 +493,9 @@ void WM_widget_unregister(struct wmWidgetGroup *wgroup, struct wmWidget *widget) void *WM_widget_customdata(struct wmWidget *widget); void WM_widget_set_origin(struct wmWidget *widget, float origin[3]); void WM_widget_set_draw(struct wmWidget *widget, bool draw); - +void WM_widget_set_3d_scale(struct wmWidget *widget, bool scale); void WM_widget_set_draw_on_hover_only(struct wmWidget *widget, bool draw); +void WM_widget_set_scale(struct wmWidget *widget, float scale); void *WM_widgetgroup_customdata(struct wmWidgetGroup *wgroup); void WM_widgetgroup_customdata_set(struct wmWidgetGroup *wgroup, void *data); diff --git a/source/blender/windowmanager/intern/wm_generic_widgets.c b/source/blender/windowmanager/intern/wm_generic_widgets.c index 814beca..1c7ece1 100644 --- a/source/blender/windowmanager/intern/wm_generic_widgets.c +++ b/source/blender/windowmanager/intern/wm_generic_widgets.c @@ -144,7 +144,6 @@ typedef struct ArrowWidget { int flag; float direction[3];
[Bf-blender-cvs] [189e897] GPencil_EditStrokes: Merge branch 'master' into GPencil_EditStrokes
Commit: 189e89769f259fcef02979888a489a34f0a10ed7 Author: Joshua Leung Date: Wed Nov 12 01:32:29 2014 +1300 Branches: GPencil_EditStrokes https://developer.blender.org/rB189e89769f259fcef02979888a489a34f0a10ed7 Merge branch 'master' into GPencil_EditStrokes Conflicts: source/blender/editors/gpencil/gpencil_buttons.c === === diff --cc source/blender/editors/gpencil/gpencil_buttons.c index 6d740ce,a7635c1..fe033c4 --- a/source/blender/editors/gpencil/gpencil_buttons.c +++ b/source/blender/editors/gpencil/gpencil_buttons.c @@@ -145,12 -145,13 +145,12 @@@ static void gp_drawui_layer(uiLayout *l /* active */ block = uiLayoutGetBlock(sub); icon = (gpl-flag GP_LAYER_ACTIVE) ? ICON_RADIOBUT_ON : ICON_RADIOBUT_OFF; - but = uiDefIconButBitS(block, TOG, GP_LAYER_ACTIVE, 0, icon, 0, 0, UI_UNIT_X, UI_UNIT_Y, - but = uiDefIconButBitI(block, UI_BTYPE_TOGGLE, GP_LAYER_ACTIVE, 0, icon, 0, 0, UI_UNIT_X, UI_UNIT_Y, ++ but = uiDefIconButBitS(block, UI_BTYPE_TOGGLE, GP_LAYER_ACTIVE, 0, icon, 0, 0, UI_UNIT_X, UI_UNIT_Y, gpl-flag, 0.0, 0.0, 0.0, 0.0, TIP_(Set active layer)); - uiButSetFunc(but, gp_ui_activelayer_cb, gpd, gpl); + UI_but_func_set(but, gp_ui_activelayer_cb, gpd, gpl); /* locked */ - icon = (gpl-flag GP_LAYER_LOCKED) ? ICON_LOCKED : ICON_UNLOCKED; - uiItemR(sub, ptr, lock, 0, , icon); + uiItemR(sub, ptr, lock, 0, , ICON_NONE); /* when layer is locked or hidden, only draw header */ if (gpl-flag (GP_LAYER_LOCKED | GP_LAYER_HIDE)) { ___ Bf-blender-cvs mailing list Bf-blender-cvs@blender.org http://lists.blender.org/mailman/listinfo/bf-blender-cvs
[Bf-blender-cvs] [bf4d864] GPencil_EditStrokes: Merge branch 'master' into GPencil_EditStrokes
Commit: bf4d8648bb28b65ec86db8fde10b4ac8faa05f52 Author: Joshua Leung Date: Thu Nov 20 03:29:59 2014 +1300 Branches: GPencil_EditStrokes https://developer.blender.org/rBbf4d8648bb28b65ec86db8fde10b4ac8faa05f52 Merge branch 'master' into GPencil_EditStrokes === === ___ Bf-blender-cvs mailing list Bf-blender-cvs@blender.org http://lists.blender.org/mailman/listinfo/bf-blender-cvs
[Bf-blender-cvs] [89bb9b4] GPencil_EditStrokes: Fix for UI api changes in master
Commit: 89bb9b46a4850ddc59295978286cbdfb6b6762a5 Author: Joshua Leung Date: Wed Nov 12 19:15:34 2014 +1300 Branches: GPencil_EditStrokes https://developer.blender.org/rB89bb9b46a4850ddc59295978286cbdfb6b6762a5 Fix for UI api changes in master === M source/blender/editors/animation/anim_channels_defines.c === diff --git a/source/blender/editors/animation/anim_channels_defines.c b/source/blender/editors/animation/anim_channels_defines.c index 4b92ba0..0d4cd68 100644 --- a/source/blender/editors/animation/anim_channels_defines.c +++ b/source/blender/editors/animation/anim_channels_defines.c @@ -3903,13 +3903,13 @@ void ANIM_channel_draw_widgets(bContext *C, bAnimContext *ac, bAnimListElem *ale RNA_pointer_create(ale-id, RNA_GPencilLayer, ale-data, ptr); - uiBlockSetEmboss(block, UI_EMBOSS); + UI_block_emboss_set(block, UI_EMBOSS); - uiDefButR(block, COLOR, 1, , offset, yminc, ICON_WIDTH, ICON_WIDTH, + uiDefButR(block, UI_BTYPE_COLOR, 1, , offset, yminc, ICON_WIDTH, ICON_WIDTH, ptr, color, -1, 0, 0, 0, 0, gpl-info); - uiBlockSetEmboss(block, UI_EMBOSSN); + UI_block_emboss_set(block, UI_EMBOSS_NONE); offset += ICON_WIDTH; } ___ Bf-blender-cvs mailing list Bf-blender-cvs@blender.org http://lists.blender.org/mailman/listinfo/bf-blender-cvs
[Bf-blender-cvs] [9e17304] GPencil_EditStrokes: Don't show New Layer operator when no GPencil datablock exists anymore
Commit: 9e17304ffb14704912ec22677ae273f99ef79547 Author: Joshua Leung Date: Wed Nov 12 19:23:17 2014 +1300 Branches: GPencil_EditStrokes https://developer.blender.org/rB9e17304ffb14704912ec22677ae273f99ef79547 Don't show New Layer operator when no GPencil datablock exists anymore === M release/scripts/startup/bl_ui/properties_grease_pencil_common.py === diff --git a/release/scripts/startup/bl_ui/properties_grease_pencil_common.py b/release/scripts/startup/bl_ui/properties_grease_pencil_common.py index a3fc290..0492ffc 100644 --- a/release/scripts/startup/bl_ui/properties_grease_pencil_common.py +++ b/release/scripts/startup/bl_ui/properties_grease_pencil_common.py @@ -249,10 +249,7 @@ class GreasePencilDataPanel(): layout.template_ID(gpd_owner, grease_pencil, new=gpencil.data_add, unlink=gpencil.data_unlink) # Grease Pencil data... -if gpd is None: -# even with no data, this operator will still work, as it makes gpd too -layout.operator(gpencil.layer_add, text=New Layer, icon='ZOOMIN') -else: +if gpd: self.draw_layers(context, layout, gpd) # only sequencer doesn't have a toolbar to show these settings in, ___ Bf-blender-cvs mailing list Bf-blender-cvs@blender.org http://lists.blender.org/mailman/listinfo/bf-blender-cvs
[Bf-blender-cvs] [5724460] GPencil_EditStrokes: Tweak to stroke editing drawing - Only show stroke points when in editmode
Commit: 57244603dd30dacc2253ff9f74e6a6ef46e466d7 Author: Joshua Leung Date: Thu Nov 20 03:55:34 2014 +1300 Branches: GPencil_EditStrokes https://developer.blender.org/rB57244603dd30dacc2253ff9f74e6a6ef46e466d7 Tweak to stroke editing drawing - Only show stroke points when in editmode === M source/blender/editors/gpencil/drawgpencil.c === diff --git a/source/blender/editors/gpencil/drawgpencil.c b/source/blender/editors/gpencil/drawgpencil.c index 8188738..9a356e9 100644 --- a/source/blender/editors/gpencil/drawgpencil.c +++ b/source/blender/editors/gpencil/drawgpencil.c @@ -1015,7 +1015,8 @@ static void gp_draw_data(bGPdata *gpd, int offsx, int offsy, int winx, int winy, *as they will have no bearings on what gets edited */ /* XXX: perhaps we don't want to show these when users are drawing... */ - if ((gpl-flag GP_LAYER_LOCKED) == 0) { + /* XXX: for now, we only show editing info when stroke can be edited */ + if ((gpl-flag GP_LAYER_LOCKED) == 0 (gpd-flag GP_DATA_STROKE_EDITMODE)) { gp_draw_strokes_edit(gpf, offsx, offsy, winx, winy, dflag, (gpl-color[3] 0.95f) ? gpl-color : NULL); } ___ Bf-blender-cvs mailing list Bf-blender-cvs@blender.org http://lists.blender.org/mailman/listinfo/bf-blender-cvs
[Bf-blender-cvs] [09aa72a] GPencil_EditStrokes: Compile fix for changes in master
Commit: 09aa72a5b7af4e1d4894966b7337c0da6754dff4 Author: Joshua Leung Date: Thu Nov 20 03:51:56 2014 +1300 Branches: GPencil_EditStrokes https://developer.blender.org/rB09aa72a5b7af4e1d4894966b7337c0da6754dff4 Compile fix for changes in master === M source/blender/makesrna/intern/rna_gpencil.c === diff --git a/source/blender/makesrna/intern/rna_gpencil.c b/source/blender/makesrna/intern/rna_gpencil.c index b1ce360..e151bdc 100644 --- a/source/blender/makesrna/intern/rna_gpencil.c +++ b/source/blender/makesrna/intern/rna_gpencil.c @@ -150,7 +150,7 @@ static void rna_GPencil_active_layer_index_range(PointerRNA *ptr, int *min, int bGPdata *gpd = (bGPdata *)ptr-id.data; *min = 0; - *max = max_ii(0, BLI_countlist(gpd-layers) - 1); + *max = max_ii(0, BLI_listbase_count(gpd-layers) - 1); *softmin = *min; *softmax = *max; ___ Bf-blender-cvs mailing list Bf-blender-cvs@blender.org http://lists.blender.org/mailman/listinfo/bf-blender-cvs
[Bf-blender-cvs] [ef310b2] wiggly-widgets: lost instance of transform manipulator
Commit: ef310b2ae1d8d1915a63be36d9fccf975322cbe8 Author: Antony Riakiotakis Date: Wed Nov 19 16:12:25 2014 +0100 Branches: wiggly-widgets https://developer.blender.org/rBef310b2ae1d8d1915a63be36d9fccf975322cbe8 lost instance of transform manipulator === M source/blender/editors/physics/physics_ops.c === diff --git a/source/blender/editors/physics/physics_ops.c b/source/blender/editors/physics/physics_ops.c index 9e9cf8f..ff89909 100644 --- a/source/blender/editors/physics/physics_ops.c +++ b/source/blender/editors/physics/physics_ops.c @@ -135,6 +135,9 @@ static void keymap_particle(wmKeyConfig *keyconf) kmi = WM_keymap_add_item(keymap, PARTICLE_OT_hide, HKEY, KM_PRESS, KM_SHIFT, 0); RNA_boolean_set(kmi-ptr, unselected, true); + kmi = WM_keymap_verify_item(keymap, VIEW3D_OT_manipulator, LEFTMOUSE, KM_PRESS, KM_ANY, 0); + RNA_boolean_set(kmi-ptr, release_confirm, true); + WM_keymap_add_item(keymap, PARTICLE_OT_brush_edit, LEFTMOUSE, KM_PRESS, 0, 0); WM_keymap_add_item(keymap, PARTICLE_OT_brush_edit, LEFTMOUSE, KM_PRESS, KM_SHIFT, 0); ___ Bf-blender-cvs mailing list Bf-blender-cvs@blender.org http://lists.blender.org/mailman/listinfo/bf-blender-cvs
[Bf-blender-cvs] [fee102e] wiggly-widgets: Bring back the old manipulator code, it works better with the transform system for now. Backup the old code in a new file
Commit: fee102e818785b2501854a55b23e6d18b39b5f9f Author: Antony Riakiotakis Date: Wed Nov 19 16:07:56 2014 +0100 Branches: wiggly-widgets https://developer.blender.org/rBfee102e818785b2501854a55b23e6d18b39b5f9f Bring back the old manipulator code, it works better with the transform system for now. Backup the old code in a new file === M source/blender/editors/include/ED_transform.h M source/blender/editors/space_view3d/space_view3d.c M source/blender/editors/space_view3d/view3d_draw.c M source/blender/editors/space_view3d/view3d_edit.c M source/blender/editors/space_view3d/view3d_ops.c A source/blender/editors/transform/manipulator_widget.c M source/blender/editors/transform/transform_manipulator.c === diff --git a/source/blender/editors/include/ED_transform.h b/source/blender/editors/include/ED_transform.h index d36472e..eda1794 100644 --- a/source/blender/editors/include/ED_transform.h +++ b/source/blender/editors/include/ED_transform.h @@ -155,6 +155,7 @@ void Transform_Properties(struct wmOperatorType *ot, int flags); /* view3d manipulators */ +/* typedef struct ManipulatorGroup { struct wmWidget *translate_x; struct wmWidget *translate_y; @@ -176,7 +177,10 @@ bool WIDGETGROUP_manipulator_poll(struct wmWidgetGroup *wgroup, const struct bCo void WIDGETGROUP_manipulator_update(struct wmWidgetGroup *wgroup, const struct bContext *C); void WIDGETGROUP_manipulator_free(struct wmWidgetGroup *wgroup); void WIDGETGROUP_manipulator_create(struct wmWidgetGroup *wgroup); +*/ +void BIF_draw_manipulator(const struct bContext *C); +int BIF_do_manipulator(struct bContext *C, const struct wmEvent *event, struct wmOperator *op); /* Snapping */ diff --git a/source/blender/editors/space_view3d/space_view3d.c b/source/blender/editors/space_view3d/space_view3d.c index 1be83b5..ab3a808 100644 --- a/source/blender/editors/space_view3d/space_view3d.c +++ b/source/blender/editors/space_view3d/space_view3d.c @@ -751,10 +751,12 @@ static void WIDGETGROUP_camera_create(struct wmWidgetGroup *wgroup) static void view3d_widgets(void) { struct wmWidgetMapType *wmaptype = WM_widgetmaptype_find(View3D, SPACE_VIEW3D, RGN_TYPE_WINDOW, true); + /* struct wmWidgetGroupType *wgroup_manipulator = WM_widgetgrouptype_new(WIDGETGROUP_manipulator_create, WIDGETGROUP_manipulator_poll, WIDGETGROUP_manipulator_update, WIDGETGROUP_manipulator_free); + */ struct wmWidgetGroupType *wgroup_light = WM_widgetgrouptype_new(WIDGETGROUP_lamp_create, WIDGETGROUP_lamp_poll, WIDGETGROUP_lamp_update, @@ -765,7 +767,7 @@ static void view3d_widgets(void) WIDGETGROUP_camera_update, WIDGETGROUP_camera_free); - WM_widgetgrouptype_register(wmaptype, wgroup_manipulator); + //WM_widgetgrouptype_register(wmaptype, wgroup_manipulator); WM_widgetgrouptype_register(wmaptype, wgroup_light); WM_widgetgrouptype_register(wmaptype, wgroup_camera); } diff --git a/source/blender/editors/space_view3d/view3d_draw.c b/source/blender/editors/space_view3d/view3d_draw.c index 99ab628..22779ca 100644 --- a/source/blender/editors/space_view3d/view3d_draw.c +++ b/source/blender/editors/space_view3d/view3d_draw.c @@ -3553,6 +3553,7 @@ void view3d_main_area_draw(const bContext *C, ARegion *ar) view3d_main_area_setup_view(scene, v3d, ar, NULL, NULL); glClear(GL_DEPTH_BUFFER_BIT); WM_widgets_draw(C, ar); + BIF_draw_manipulator(C); ED_region_pixelspace(ar); view3d_main_area_draw_info(C, scene, ar, v3d, grid_unit, render_border); diff --git a/source/blender/editors/space_view3d/view3d_edit.c b/source/blender/editors/space_view3d/view3d_edit.c index 1d433b7..e504050 100644 --- a/source/blender/editors/space_view3d/view3d_edit.c +++ b/source/blender/editors/space_view3d/view3d_edit.c @@ -863,7 +863,7 @@ void viewrotate_modal_keymap(wmKeyConfig *keyconf) {VIEWROT_MODAL_AXIS_SNAP_ENABLE,AXIS_SNAP_ENABLE, 0, Enable Axis Snap, }, {VIEWROT_MODAL_AXIS_SNAP_DISABLE, AXIS_SNAP_DISABLE, 0, Disable Axis Snap, }, - + {VIEWROT_MODAL_SWITCH_ZOOM, SWITCH_TO_ZOOM, 0, Switch to Zoom}, {VIEWROT_MODAL_SWITCH_MOVE, SWITCH_TO_MOVE, 0, Switch to Move}, @@
[Bf-blender-cvs] [bfa6b80] wiggly-widgets: Merge branch 'master' into wiggly-widgets
Commit: bfa6b80b8b5a2d0edf9fd2107c9fed8cdc2bcd7e Author: Antony Riakiotakis Date: Wed Nov 19 16:08:05 2014 +0100 Branches: wiggly-widgets https://developer.blender.org/rBbfa6b80b8b5a2d0edf9fd2107c9fed8cdc2bcd7e Merge branch 'master' into wiggly-widgets === === ___ Bf-blender-cvs mailing list Bf-blender-cvs@blender.org http://lists.blender.org/mailman/listinfo/bf-blender-cvs
[Bf-blender-cvs] [d19ae9b] mesh-transfer-data: Merge branch 'master' into mesh-transfer-data
Commit: d19ae9bf26b07af2dcc77a4fdc65f207535eeece Author: Bastien Montagne Date: Wed Nov 19 16:33:53 2014 +0100 Branches: mesh-transfer-data https://developer.blender.org/rBd19ae9bf26b07af2dcc77a4fdc65f207535eeece Merge branch 'master' into mesh-transfer-data === === ___ Bf-blender-cvs mailing list Bf-blender-cvs@blender.org http://lists.blender.org/mailman/listinfo/bf-blender-cvs
[Bf-blender-cvs] [35fea3a] mesh-transfer-data: Transfer operators: do not run several times on same mesh, nor on linked ones.
Commit: 35fea3a7c397d09d10c17ba837a9dfab8e97232d Author: Bastien Montagne Date: Wed Nov 19 15:33:23 2014 +0100 Branches: mesh-transfer-data https://developer.blender.org/rB35fea3a7c397d09d10c17ba837a9dfab8e97232d Transfer operators: do not run several times on same mesh, nor on linked ones. === M source/blender/editors/object/object_data_transfer.c === diff --git a/source/blender/editors/object/object_data_transfer.c b/source/blender/editors/object/object_data_transfer.c index 1ec692f..b52f6cc 100644 --- a/source/blender/editors/object/object_data_transfer.c +++ b/source/blender/editors/object/object_data_transfer.c @@ -31,6 +31,7 @@ #include MEM_guardedalloc.h +#include DNA_mesh_types.h #include DNA_modifier_types.h #include DNA_object_types.h #include DNA_scene_types.h @@ -45,6 +46,7 @@ #include BKE_mesh_mapping.h #include BKE_mesh_remap.h #include BKE_object.h +#include BKE_report.h #include RNA_access.h #include RNA_define.h @@ -259,11 +261,63 @@ static bool data_transfer_check(bContext *UNUSED(C), wmOperator *op) return false; } +/* Helper, used by both data_transfer_exec and datalayout_transfer_exec. */ +static void data_transfer_exec_preprocess_objects(bContext *C, wmOperator *op, Object *ob_src, ListBase *ctx_objects) +{ + CollectionPointerLink *ctx_ob; + CTX_data_selected_editable_objects(C, ctx_objects); + + for (ctx_ob = ctx_objects-first; ctx_ob; ctx_ob = ctx_ob-next) { + Object *ob = ctx_ob-ptr.data; + Mesh *me; + if ((ob == ob_src) || (ob-type != OB_MESH)) { + continue; + } + + me = ob-data; + if (me-id.lib) { + /* Do not transfer to linked data, not supported. */ + BKE_reportf(op-reports, RPT_WARNING, Skipping object '%s', linked data '%s' cannot be modified, + ob-id.name + 2, me-id.name + 2); + me-id.flag = ~LIB_DOIT; + continue; + } + + me-id.flag |= LIB_DOIT; + } +} + +/* Helper, used by both data_transfer_exec and datalayout_transfer_exec. */ +static bool data_transfer_exec_is_object_valid(wmOperator *op, Object *ob_src, Object *ob_dst) +{ + Mesh *me; + if ((ob_dst == ob_src) || (ob_dst-type != OB_MESH)) { + return false; + } + + me = ob_dst-data; + if (me-id.flag LIB_DOIT) { + me-id.flag = ~LIB_DOIT; + return true; + } + else if (me-id.lib == NULL) { + /* Do not transfer apply operation more than once. */ + /* XXX This is not nice regarding vgroups, which are half-Object data... :/ */ + BKE_reportf(op-reports, RPT_WARNING, + Skipping object '%s', data '%s' has already been processed with a previous object, + ob_dst-id.name + 2, me-id.name + 2); + } + return false; +} + static int data_transfer_exec(bContext *C, wmOperator *op) { Scene *scene = CTX_data_scene(C); Object *ob_src = CTX_data_active_object(C); + ListBase ctx_objects; + CollectionPointerLink *ctx_ob_dst; + bool changed = false; const int data_type = RNA_enum_get(op-ptr, data_type); @@ -296,25 +350,27 @@ static int data_transfer_exec(bContext *C, wmOperator *op) layers_select_dst[fromto_idx] = layers_dst; } - CTX_DATA_BEGIN (C, Object *, ob_dst, selected_editable_objects) - { - if ((ob_dst == ob_src) || (ob_dst-type != OB_MESH)) { - continue; - } + data_transfer_exec_preprocess_objects(C, op, ob_src, ctx_objects); - if (space_transform) { - BLI_SPACE_TRANSFORM_SETUP(space_transform, ob_dst, ob_src); - } + for (ctx_ob_dst = ctx_objects.first; ctx_ob_dst; ctx_ob_dst = ctx_ob_dst-next) { + Object *ob_dst = ctx_ob_dst-ptr.data; + if (data_transfer_exec_is_object_valid(op, ob_src, ob_dst)) { + if (space_transform) { + BLI_SPACE_TRANSFORM_SETUP(space_transform, ob_dst, ob_src); + } - if (BKE_object_data_transfer_mesh(scene, ob_src, ob_dst, data_type, use_create, - map_vert_mode, map_edge_mode, map_loop_mode, map_poly_mode, - space_transform, max_distance, ray_radius, layers_select_src, layers_select_dst, - mix_mode, mix_factor, NULL, false, op-reports)) - { - changed = true; + if
[Bf-blender-cvs] [3102ced] gooseberry: Merge branch 'wiggly-widgets' into gooseberry
Commit: 3102ced86466749f5cb0a99599588d0ac0fdf365 Author: Antony Riakiotakis Date: Wed Nov 19 16:48:04 2014 +0100 Branches: gooseberry https://developer.blender.org/rB3102ced86466749f5cb0a99599588d0ac0fdf365 Merge branch 'wiggly-widgets' into gooseberry Conflicts: source/blender/editors/include/ED_view3d.h source/blender/editors/space_view3d/view3d_draw.c source/blender/editors/transform/transform_manipulator.c === === diff --cc source/blender/editors/include/ED_view3d.h index b51e210,592448f..5ecb938 --- a/source/blender/editors/include/ED_view3d.h +++ b/source/blender/editors/include/ED_view3d.h @@@ -61,9 -62,8 +62,11 @@@ struct rcti struct wmOperator; struct wmOperatorType; struct wmWindow; +struct GPUFX; +struct GPUOffScreen; +struct GPUFXOptions; + struct wmWidget; + struct wmWidgetGroup; /* for derivedmesh drawing callbacks, for view3d_select, */ typedef struct ViewContext { ___ Bf-blender-cvs mailing list Bf-blender-cvs@blender.org http://lists.blender.org/mailman/listinfo/bf-blender-cvs
[Bf-blender-cvs] [713cf54] mesh-transfer-data: Finalize transfer datalayout for vgroups.
Commit: 713cf54d65e643d18656a8a3ba3347a8aa0d894e Author: Bastien Montagne Date: Wed Nov 19 18:01:45 2014 +0100 Branches: mesh-transfer-data https://developer.blender.org/rB713cf54d65e643d18656a8a3ba3347a8aa0d894e Finalize transfer datalayout for vgroups. As best as possible I think, given the specificities of vgroups (mix of object and mesh data). === M source/blender/blenkernel/intern/customdata.c M source/blender/blenkernel/intern/deform.c === diff --git a/source/blender/blenkernel/intern/customdata.c b/source/blender/blenkernel/intern/customdata.c index 6260696..e98de99 100644 --- a/source/blender/blenkernel/intern/customdata.c +++ b/source/blender/blenkernel/intern/customdata.c @@ -3603,6 +3603,11 @@ static void customdata_data_transfer_interp_generic( void *tmp_dst; + if (!sources) { + /* Not supported here, abort. */ + return; + } + if (data_type CD_FAKE) { data_size = laymap-data_size; } @@ -3705,13 +3710,16 @@ void CustomData_data_transfer(const MeshPairRemap *me_remap, const CustomDataTra cd_datatransfer_interp interp = NULL; size_t tmp_buff_size = 32; - void **tmp_data_src; + void **tmp_data_src = NULL; - if (!data_src || !data_dst) { + /* Note: NULL data_src may happen and be valid (see vgroups...). */ + if (!data_dst) { return; } - tmp_data_src = MEM_mallocN(sizeof(*tmp_data_src) * tmp_buff_size, __func__); + if (data_src) { + tmp_data_src = MEM_mallocN(sizeof(*tmp_data_src) * tmp_buff_size, __func__); + } if (data_type CD_FAKE) { data_step = laymap-elem_size; @@ -3739,18 +3747,20 @@ void CustomData_data_transfer(const MeshPairRemap *me_remap, const CustomDataTra continue; } - if (UNLIKELY(sources_num tmp_buff_size)) { - tmp_buff_size = (size_t)sources_num; - tmp_data_src = MEM_reallocN(tmp_data_src, sizeof(*tmp_data_src) * tmp_buff_size); - } + if (tmp_data_src) { + if (UNLIKELY(sources_num tmp_buff_size)) { + tmp_buff_size = (size_t)sources_num; + tmp_data_src = MEM_reallocN(tmp_data_src, sizeof(*tmp_data_src) * tmp_buff_size); + } - for (j = 0; j sources_num; j++) { - const size_t src_idx = (size_t)mapit-indices_src[j]; - tmp_data_src[j] = (char *)data_src + data_step * src_idx + data_offset; + for (j = 0; j sources_num; j++) { + const size_t src_idx = (size_t)mapit-indices_src[j]; + tmp_data_src[j] = (char *)data_src + data_step * src_idx + data_offset; + } } interp(laymap, (char *)data_dst + data_offset, tmp_data_src, mapit-weights_src, sources_num, mix_factor); } - MEM_freeN(tmp_data_src); + MEM_SAFE_FREE(tmp_data_src); } diff --git a/source/blender/blenkernel/intern/deform.c b/source/blender/blenkernel/intern/deform.c index 111f114..26c56fd 100644 --- a/source/blender/blenkernel/intern/deform.c +++ b/source/blender/blenkernel/intern/deform.c @@ -1082,11 +1082,13 @@ static void vgroups_datatransfer_interp(const CustomDataTransferLayerMap *laymap MDeformWeight *dw_dst = defvert_find_index(data_dst, idx_dst); float weight_src = 0.0f, weight_dst = 0.0f; - for (i = count; i--;) { - for (j = data_src[i]-totweight; j--;) { - if ((dw_src = data_src[i]-dw[j])-def_nr == idx_src) { - weight_src += dw_src-weight * weights[i]; - break; + if (sources) { + for (i = count; i--;) { + for (j = data_src[i]-totweight; j--;) { + if ((dw_src = data_src[i]-dw[j])-def_nr == idx_src) { + weight_src += dw_src-weight * weights[i]; + break; + } } } } @@ -1138,13 +1140,12 @@ static bool data_transfer_layersmapping_vgroups_multisrc_to_dst( } /* Create as much vgroups as necessary! */ for (; idx_dst idx_src; idx_dst++) { - BKE_defgroup_new(ob_dst, DATA_(Group)); - ob_dst-actdef = BLI_listbase_count(ob_dst-defbase); +
[Bf-blender-cvs] SVN commit: /data/svn/repos/bf-blender [61444] trunk/lib/ darwin-9.x.universal/sdl: OSX: Commit of SDL2 libraries
Revision: 61444 https://developer.blender.org/rBL61444 Author: sergey Date: 2014-11-19 18:38:16 + (Wed, 19 Nov 2014) Log Message: --- OSX: Commit of SDL2 libraries Modified Paths: -- trunk/lib/darwin-9.x.universal/sdl/include/SDL.h trunk/lib/darwin-9.x.universal/sdl/include/SDL_audio.h trunk/lib/darwin-9.x.universal/sdl/include/SDL_config.h trunk/lib/darwin-9.x.universal/sdl/include/SDL_cpuinfo.h trunk/lib/darwin-9.x.universal/sdl/include/SDL_endian.h trunk/lib/darwin-9.x.universal/sdl/include/SDL_error.h trunk/lib/darwin-9.x.universal/sdl/include/SDL_events.h trunk/lib/darwin-9.x.universal/sdl/include/SDL_joystick.h trunk/lib/darwin-9.x.universal/sdl/include/SDL_keyboard.h trunk/lib/darwin-9.x.universal/sdl/include/SDL_loadso.h trunk/lib/darwin-9.x.universal/sdl/include/SDL_main.h trunk/lib/darwin-9.x.universal/sdl/include/SDL_mouse.h trunk/lib/darwin-9.x.universal/sdl/include/SDL_mutex.h trunk/lib/darwin-9.x.universal/sdl/include/SDL_name.h trunk/lib/darwin-9.x.universal/sdl/include/SDL_opengl.h trunk/lib/darwin-9.x.universal/sdl/include/SDL_platform.h trunk/lib/darwin-9.x.universal/sdl/include/SDL_quit.h trunk/lib/darwin-9.x.universal/sdl/include/SDL_rwops.h trunk/lib/darwin-9.x.universal/sdl/include/SDL_stdinc.h trunk/lib/darwin-9.x.universal/sdl/include/SDL_syswm.h trunk/lib/darwin-9.x.universal/sdl/include/SDL_thread.h trunk/lib/darwin-9.x.universal/sdl/include/SDL_timer.h trunk/lib/darwin-9.x.universal/sdl/include/SDL_types.h trunk/lib/darwin-9.x.universal/sdl/include/SDL_version.h trunk/lib/darwin-9.x.universal/sdl/include/SDL_video.h trunk/lib/darwin-9.x.universal/sdl/include/begin_code.h trunk/lib/darwin-9.x.universal/sdl/include/close_code.h Added Paths: --- trunk/lib/darwin-9.x.universal/sdl/include/SDL_assert.h trunk/lib/darwin-9.x.universal/sdl/include/SDL_atomic.h trunk/lib/darwin-9.x.universal/sdl/include/SDL_bits.h trunk/lib/darwin-9.x.universal/sdl/include/SDL_blendmode.h trunk/lib/darwin-9.x.universal/sdl/include/SDL_clipboard.h trunk/lib/darwin-9.x.universal/sdl/include/SDL_config_android.h trunk/lib/darwin-9.x.universal/sdl/include/SDL_config_iphoneos.h trunk/lib/darwin-9.x.universal/sdl/include/SDL_config_macosx.h trunk/lib/darwin-9.x.universal/sdl/include/SDL_config_minimal.h trunk/lib/darwin-9.x.universal/sdl/include/SDL_config_pandora.h trunk/lib/darwin-9.x.universal/sdl/include/SDL_config_psp.h trunk/lib/darwin-9.x.universal/sdl/include/SDL_config_windows.h trunk/lib/darwin-9.x.universal/sdl/include/SDL_config_winrt.h trunk/lib/darwin-9.x.universal/sdl/include/SDL_config_wiz.h trunk/lib/darwin-9.x.universal/sdl/include/SDL_copying.h trunk/lib/darwin-9.x.universal/sdl/include/SDL_egl.h trunk/lib/darwin-9.x.universal/sdl/include/SDL_filesystem.h trunk/lib/darwin-9.x.universal/sdl/include/SDL_gamecontroller.h trunk/lib/darwin-9.x.universal/sdl/include/SDL_gesture.h trunk/lib/darwin-9.x.universal/sdl/include/SDL_haptic.h trunk/lib/darwin-9.x.universal/sdl/include/SDL_hints.h trunk/lib/darwin-9.x.universal/sdl/include/SDL_keycode.h trunk/lib/darwin-9.x.universal/sdl/include/SDL_log.h trunk/lib/darwin-9.x.universal/sdl/include/SDL_messagebox.h trunk/lib/darwin-9.x.universal/sdl/include/SDL_opengles.h trunk/lib/darwin-9.x.universal/sdl/include/SDL_opengles2.h trunk/lib/darwin-9.x.universal/sdl/include/SDL_pixels.h trunk/lib/darwin-9.x.universal/sdl/include/SDL_power.h trunk/lib/darwin-9.x.universal/sdl/include/SDL_rect.h trunk/lib/darwin-9.x.universal/sdl/include/SDL_render.h trunk/lib/darwin-9.x.universal/sdl/include/SDL_revision.h trunk/lib/darwin-9.x.universal/sdl/include/SDL_scancode.h trunk/lib/darwin-9.x.universal/sdl/include/SDL_shape.h trunk/lib/darwin-9.x.universal/sdl/include/SDL_surface.h trunk/lib/darwin-9.x.universal/sdl/include/SDL_system.h trunk/lib/darwin-9.x.universal/sdl/include/SDL_test.h trunk/lib/darwin-9.x.universal/sdl/include/SDL_test_assert.h trunk/lib/darwin-9.x.universal/sdl/include/SDL_test_common.h trunk/lib/darwin-9.x.universal/sdl/include/SDL_test_compare.h trunk/lib/darwin-9.x.universal/sdl/include/SDL_test_crc32.h trunk/lib/darwin-9.x.universal/sdl/include/SDL_test_font.h trunk/lib/darwin-9.x.universal/sdl/include/SDL_test_fuzzer.h trunk/lib/darwin-9.x.universal/sdl/include/SDL_test_harness.h trunk/lib/darwin-9.x.universal/sdl/include/SDL_test_images.h trunk/lib/darwin-9.x.universal/sdl/include/SDL_test_log.h trunk/lib/darwin-9.x.universal/sdl/include/SDL_test_md5.h trunk/lib/darwin-9.x.universal/sdl/include/SDL_test_random.h trunk/lib/darwin-9.x.universal/sdl/include/SDL_touch.h Removed Paths: - trunk/lib/darwin-9.x.universal/sdl/include/SDL_active.h
[Bf-blender-cvs] SVN commit: /data/svn/repos/bf-blender [61445] trunk/lib/ darwin-9.x.universal/sdl/lib/libSDL2.a: Bloody svn ignores binary files by default
Revision: 61445 https://developer.blender.org/rBL61445 Author: sergey Date: 2014-11-19 18:39:05 + (Wed, 19 Nov 2014) Log Message: --- Bloody svn ignores binary files by default Why can't it check we're committing libraries.. Added Paths: --- trunk/lib/darwin-9.x.universal/sdl/lib/libSDL2.a Added: trunk/lib/darwin-9.x.universal/sdl/lib/libSDL2.a === (Binary files differ) Index: trunk/lib/darwin-9.x.universal/sdl/lib/libSDL2.a === --- trunk/lib/darwin-9.x.universal/sdl/lib/libSDL2.a2014-11-19 18:38:16 UTC (rev 61444) +++ trunk/lib/darwin-9.x.universal/sdl/lib/libSDL2.a2014-11-19 18:39:05 UTC (rev 61445) Property changes on: trunk/lib/darwin-9.x.universal/sdl/lib/libSDL2.a ___ Added: svn:mime-type ## -0,0 +1 ## +application/octet-stream \ No newline at end of property ___ Bf-blender-cvs mailing list Bf-blender-cvs@blender.org http://lists.blender.org/mailman/listinfo/bf-blender-cvs
[Bf-blender-cvs] [82d2718] master: Switch to SDL2 on OSX
Commit: 82d2718c8fe463ef6461544dd69a4f76e835736d Author: Sergey Sharybin Date: Wed Nov 19 19:41:41 2014 +0100 Branches: master https://developer.blender.org/rB82d2718c8fe463ef6461544dd69a4f76e835736d Switch to SDL2 on OSX === M CMakeLists.txt M SConstruct M build_files/scons/config/darwin-config.py === diff --git a/CMakeLists.txt b/CMakeLists.txt index 924684c..d9f1d96 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1935,8 +1935,9 @@ elseif(APPLE) if(WITH_SDL) set(SDL ${LIBDIR}/sdl) set(SDL_INCLUDE_DIR ${SDL}/include) - set(SDL_LIBRARY SDL) + set(SDL_LIBRARY SDL2) set(SDL_LIBPATH ${SDL}/lib) + set(PLATFORM_LINKFLAGS ${PLATFORM_LINKFLAGS} -lazy_framework ForceFeedback) endif() set(PNG ${LIBDIR}/png) diff --git a/SConstruct b/SConstruct index dc60400..05d24c8 100644 --- a/SConstruct +++ b/SConstruct @@ -422,6 +422,9 @@ if env['OURPLATFORM']=='darwin': env.Append(LINKFLAGS=['-F/Library/Frameworks','-Xlinker','-weak_framework','-Xlinker','Jackmp']) print B.bc.OKGREEN + Using Jack +if env['WITH_BF_SDL']: +env.Append(LINKFLAGS=['-lazy_framework','ForceFeedback']) + if env['WITH_BF_QUICKTIME'] == 1: env['PLATFORM_LINKFLAGS'] = env['PLATFORM_LINKFLAGS']+['-framework','QTKit'] diff --git a/build_files/scons/config/darwin-config.py b/build_files/scons/config/darwin-config.py index 338065e..96a6352 100644 --- a/build_files/scons/config/darwin-config.py +++ b/build_files/scons/config/darwin-config.py @@ -68,7 +68,7 @@ BF_SNDFILE_LIBPATH = '${BF_SNDFILE}/lib ${BF_FFMPEG}/lib' #ogg libs are stored i WITH_BF_SDL = True BF_SDL = LIBDIR + '/sdl' #$(shell sdl-config --prefix) BF_SDL_INC = '${BF_SDL}/include' #$(shell $(BF_SDL)/bin/sdl-config --cflags) -BF_SDL_LIB = 'SDL' #BF_SDL #$(shell $(BF_SDL)/bin/sdl-config --libs) -lSDL_mixer +BF_SDL_LIB = 'SDL2' #BF_SDL #$(shell $(BF_SDL)/bin/sdl-config --libs) -lSDL_mixer BF_SDL_LIBPATH = '${BF_SDL}/lib' WITH_BF_OPENEXR = True ___ Bf-blender-cvs mailing list Bf-blender-cvs@blender.org http://lists.blender.org/mailman/listinfo/bf-blender-cvs
[Bf-blender-cvs] SVN commit: /data/svn/repos/bf-blender [61446] trunk/lib/ darwin-9.x.universal/sdl/lib/libSDL2.a: Renew libSDL2
Revision: 61446 https://developer.blender.org/rBL61446 Author: jensverwiebe Date: 2014-11-19 19:27:14 + (Wed, 19 Nov 2014) Log Message: --- Renew libSDL2 Modified Paths: -- trunk/lib/darwin-9.x.universal/sdl/lib/libSDL2.a Modified: trunk/lib/darwin-9.x.universal/sdl/lib/libSDL2.a === (Binary files differ) ___ Bf-blender-cvs mailing list Bf-blender-cvs@blender.org http://lists.blender.org/mailman/listinfo/bf-blender-cvs
[Bf-blender-cvs] [06df28e] mesh-transfer-data: Merge branch 'master' into mesh-transfer-data
Commit: 06df28e1ea2cdd20cd4c604639f303128b953fab Author: Bastien Montagne Date: Wed Nov 19 20:50:29 2014 +0100 Branches: mesh-transfer-data https://developer.blender.org/rB06df28e1ea2cdd20cd4c604639f303128b953fab Merge branch 'master' into mesh-transfer-data === === ___ Bf-blender-cvs mailing list Bf-blender-cvs@blender.org http://lists.blender.org/mailman/listinfo/bf-blender-cvs
[Bf-blender-cvs] [0cb1c2c] master: Cleanup: #define - enums.
Commit: 0cb1c2cdeebd62d15c29d57b20ace99377e22c8f Author: Bastien Montagne Date: Wed Nov 19 20:48:35 2014 +0100 Branches: master https://developer.blender.org/rB0cb1c2cdeebd62d15c29d57b20ace99377e22c8f Cleanup: #define - enums. === M source/blender/makesdna/DNA_ID.h M source/blender/makesdna/DNA_curve_types.h M source/blender/makesdna/DNA_dynamicpaint_types.h M source/blender/makesdna/DNA_freestyle_types.h === diff --git a/source/blender/makesdna/DNA_ID.h b/source/blender/makesdna/DNA_ID.h index 33d1445..6454370 100644 --- a/source/blender/makesdna/DNA_ID.h +++ b/source/blender/makesdna/DNA_ID.h @@ -44,54 +44,65 @@ struct FileData; struct ID; struct PackedFile; struct GPUTexture; - + typedef struct IDPropertyData { void *pointer; ListBase group; - int val, val2; /*note, we actually fit a double into these two ints*/ + int val, val2; /* note, we actually fit a double into these two ints */ } IDPropertyData; typedef struct IDProperty { struct IDProperty *next, *prev; char type, subtype; short flag; - char name[64]; /* MAX_IDPROP_NAME */ - int saved; /* saved is used to indicate if this struct has been saved yet. - * seemed like a good idea as a pad var was needed anyway :)*/ - IDPropertyData data;/* note, alignment for 64 bits */ - int len; /* array length, also (this is important!) string length + 1. - * the idea is to be able to reuse array realloc functions on strings.*/ + char name[64]; /* MAX_IDPROP_NAME */ + + /* saved is used to indicate if this struct has been saved yet. +* seemed like a good idea as a pad var was needed anyway :) */ + int saved; + IDPropertyData data; /* note, alignment for 64 bits */ + + /* array length, also (this is important!) string length + 1. +* the idea is to be able to reuse array realloc functions on strings.*/ + int len; + + /* Strings and arrays are both buffered, though the buffer isn't saved. */ /* totallen is total length of allocated array/string, including a buffer. -* Note that the buffering is mild; the code comes from python's list implementation.*/ - int totallen; /*strings and arrays are both buffered, though the buffer isn't saved.*/ +* Note that the buffering is mild; the code comes from python's list implementation. */ + int totallen; } IDProperty; -#define MAX_IDPROP_NAME64 -#define DEFAULT_ALLOC_FOR_NULL_STRINGS 64 +#define MAX_IDPROP_NAME 64 +#define DEFAULT_ALLOC_FOR_NULL_STRINGS 64 /*-type*/ -#define IDP_STRING 0 -#define IDP_INT1 -#define IDP_FLOAT 2 -#define IDP_ARRAY 5 -#define IDP_GROUP 6 -/* the ID link property type hasn't been implemented yet, this will require - * some cleanup of blenkernel, most likely.*/ -#define IDP_ID 7 -#define IDP_DOUBLE 8 -#define IDP_IDPARRAY 9 -#define IDP_NUMTYPES 10 +enum { + IDP_STRING = 0, + IDP_INT = 1, + IDP_FLOAT= 2, + IDP_ARRAY= 5, + IDP_GROUP= 6, + /* the ID link property type hasn't been implemented yet, this will require +* some cleanup of blenkernel, most likely. */ + IDP_ID = 7, + IDP_DOUBLE = 8, + IDP_IDPARRAY = 9, + IDP_NUMTYPES = 10, +}; /*-subtype */ /* IDP_STRING */ -#define IDP_STRING_SUB_UTF8 0 /* default */ -#define IDP_STRING_SUB_BYTE 1 /* arbitrary byte array, _not_ null terminated */ -/*-flag*/ -#define IDP_FLAG_GHOST (17) /* this means the property is set but RNA will return -* false when checking 'RNA_property_is_set', -* currently this is a runtime flag */ +enum { + IDP_STRING_SUB_UTF8 = 0, /* default */ + IDP_STRING_SUB_BYTE = 1, /* arbitrary byte array, _not_ null terminated */ +}; +/*-flag*/ +enum { + IDP_FLAG_GHOST = 1 7, /* this means the property is set but RNA will return false when checking +* 'RNA_property_is_set', currently this is a runtime flag */ +}; /* add any future new id property types here.*/ @@ -102,7 +113,7 @@ typedef struct IDProperty { * */ /* 2 characters for ID code and 64 for actual name */ -#define MAX_ID_NAME66 +#define MAX_ID_NAME 66 /* There's a nasty circular dependency here 'void *' to the rescue! I * really wonder why this is needed. */ @@ -129,14 +140,14 @@ typedef struct Library { ID id; ID *idblock; struct FileData *filedata; - char name[1024];/* path name used for
[Bf-blender-cvs] [a34f723] experimental-build: Merge branch 'master' into experimental-build
Commit: a34f7237996b8e678370927ea05cbfd1199ce79d Author: Bastien Montagne Date: Wed Nov 19 20:51:10 2014 +0100 Branches: experimental-build https://developer.blender.org/rBa34f7237996b8e678370927ea05cbfd1199ce79d Merge branch 'master' into experimental-build === === ___ Bf-blender-cvs mailing list Bf-blender-cvs@blender.org http://lists.blender.org/mailman/listinfo/bf-blender-cvs
[Bf-blender-cvs] [67b2406] experimental-build: Squashed commit of mesh-data-transfer branch.
Commit: 67b24066c285f7a8e995cef96a0082497deb5a6a Author: Bastien Montagne Date: Wed Nov 19 20:52:01 2014 +0100 Branches: experimental-build https://developer.blender.org/rB67b24066c285f7a8e995cef96a0082497deb5a6a Squashed commit of mesh-data-transfer branch. === M release/scripts/startup/bl_ui/properties_data_modifier.py M release/scripts/startup/bl_ui/space_view3d.py M source/blender/blenkernel/BKE_bvhutils.h M source/blender/blenkernel/BKE_customdata.h M source/blender/blenkernel/BKE_deform.h M source/blender/blenkernel/BKE_mesh_mapping.h A source/blender/blenkernel/BKE_mesh_remap.h A source/blender/blenkernel/BKE_object_data_transfer.h M source/blender/blenkernel/BKE_object_deform.h M source/blender/blenkernel/CMakeLists.txt M source/blender/blenkernel/intern/DerivedMesh.c M source/blender/blenkernel/intern/bvhutils.c M source/blender/blenkernel/intern/customdata.c A source/blender/blenkernel/intern/data_transfer_intern.h M source/blender/blenkernel/intern/deform.c M source/blender/blenkernel/intern/mesh_mapping.c A source/blender/blenkernel/intern/mesh_remap.c A source/blender/blenkernel/intern/object_data_transfer.c M source/blender/blenlib/BLI_rand.h M source/blender/blenlib/intern/rand.c M source/blender/editors/object/CMakeLists.txt A source/blender/editors/object/object_data_transfer.c M source/blender/editors/object/object_intern.h M source/blender/editors/object/object_modifier.c M source/blender/editors/object/object_ops.c M source/blender/editors/space_outliner/outliner_draw.c M source/blender/makesdna/DNA_modifier_types.h M source/blender/makesrna/RNA_access.h M source/blender/makesrna/RNA_enum_types.h M source/blender/makesrna/intern/rna_modifier.c M source/blender/modifiers/CMakeLists.txt M source/blender/modifiers/MOD_modifiertypes.h A source/blender/modifiers/intern/MOD_datatransfer.c M source/blender/modifiers/intern/MOD_util.c === diff --git a/release/scripts/startup/bl_ui/properties_data_modifier.py b/release/scripts/startup/bl_ui/properties_data_modifier.py index 7a96996..a224f9a 100644 --- a/release/scripts/startup/bl_ui/properties_data_modifier.py +++ b/release/scripts/startup/bl_ui/properties_data_modifier.py @@ -1225,6 +1225,118 @@ class DATA_PT_modifiers(ModifierButtonsPanel, Panel): col.prop(md, material_offset, text=Material Offset) +def DATA_TRANSFER(self, layout, ob, md): +row = layout.row(align=True) +row.prop(md, object) +sub = row.row(align=True) +sub.active = bool(md.object) +sub.prop(md, use_object_transform, text=, icon='GROUP') + +layout.separator() + +split = layout.split(0.333) +split.prop(md, use_vert_data) +use_vert = md.use_vert_data +row = split.row() +row.active = use_vert +row.prop(md, vert_mapping, text=) +if use_vert: +col = layout.column(align=True) +split = col.split(0.333, align=True) +sub = split.column(align=True) +sub.prop(md, data_types_verts_vgroup) +row = split.row(align=True) +row.prop(md, layers_vgroup_select_src, text=) +row.label(icon='RIGHTARROW_THIN') +row.prop(md, layers_vgroup_select_dst, text=) +split = col.split(0.333, align=True) +sub = split.column(align=True) +sub.prop(md, data_types_verts) + +layout.separator() + +split = layout.split(0.333) +split.prop(md, use_edge_data) +use_edge = md.use_edge_data +row = split.row() +row.active = use_edge +row.prop(md, edge_mapping, text=) +if use_edge: +col = layout.column(align=True) +split = col.split(0.333, align=True) +sub = split.column(align=True) +sub.prop(md, data_types_edges) + +layout.separator() + +split = layout.split(0.333) +split.prop(md, use_loop_data) +use_loop = md.use_loop_data +row = split.row() +row.active = use_loop +row.prop(md, loop_mapping, text=) +if use_loop: +col = layout.column(align=True) +split = col.split(0.333, align=True) +sub = split.column(align=True) +sub.prop(md, data_types_loops) +split = col.split(0.333, align=True) +sub = split.column(align=True) +sub.prop(md, data_types_loops_vcol) +row = split.row(align=True) +row.prop(md, layers_vcol_select_src, text=) +row.label(icon='RIGHTARROW') +row.prop(md, layers_vcol_select_dst, text=) +split = col.split(0.333,
[Bf-blender-cvs] [190e0bb] experimental-build: Revert Squashed commit of mesh-data-transfer branch.
Commit: 190e0bbd2dd76f4615d7862de1c221d471a763b2 Author: Bastien Montagne Date: Wed Nov 19 20:53:58 2014 +0100 Branches: experimental-build https://developer.blender.org/rB190e0bbd2dd76f4615d7862de1c221d471a763b2 Revert Squashed commit of mesh-data-transfer branch. This reverts commit 67b24066c285f7a8e995cef96a0082497deb5a6a. === M release/scripts/startup/bl_ui/properties_data_modifier.py M release/scripts/startup/bl_ui/space_view3d.py M source/blender/blenkernel/BKE_bvhutils.h M source/blender/blenkernel/BKE_customdata.h M source/blender/blenkernel/BKE_deform.h M source/blender/blenkernel/BKE_mesh_mapping.h D source/blender/blenkernel/BKE_mesh_remap.h D source/blender/blenkernel/BKE_object_data_transfer.h M source/blender/blenkernel/BKE_object_deform.h M source/blender/blenkernel/CMakeLists.txt M source/blender/blenkernel/intern/DerivedMesh.c M source/blender/blenkernel/intern/bvhutils.c M source/blender/blenkernel/intern/customdata.c D source/blender/blenkernel/intern/data_transfer_intern.h M source/blender/blenkernel/intern/deform.c M source/blender/blenkernel/intern/mesh_mapping.c D source/blender/blenkernel/intern/mesh_remap.c D source/blender/blenkernel/intern/object_data_transfer.c M source/blender/blenlib/BLI_rand.h M source/blender/blenlib/intern/rand.c M source/blender/editors/object/CMakeLists.txt D source/blender/editors/object/object_data_transfer.c M source/blender/editors/object/object_intern.h M source/blender/editors/object/object_modifier.c M source/blender/editors/object/object_ops.c M source/blender/editors/space_outliner/outliner_draw.c M source/blender/makesdna/DNA_modifier_types.h M source/blender/makesrna/RNA_access.h M source/blender/makesrna/RNA_enum_types.h M source/blender/makesrna/intern/rna_modifier.c M source/blender/modifiers/CMakeLists.txt M source/blender/modifiers/MOD_modifiertypes.h D source/blender/modifiers/intern/MOD_datatransfer.c M source/blender/modifiers/intern/MOD_util.c === diff --git a/release/scripts/startup/bl_ui/properties_data_modifier.py b/release/scripts/startup/bl_ui/properties_data_modifier.py index a224f9a..7a96996 100644 --- a/release/scripts/startup/bl_ui/properties_data_modifier.py +++ b/release/scripts/startup/bl_ui/properties_data_modifier.py @@ -1225,118 +1225,6 @@ class DATA_PT_modifiers(ModifierButtonsPanel, Panel): col.prop(md, material_offset, text=Material Offset) -def DATA_TRANSFER(self, layout, ob, md): -row = layout.row(align=True) -row.prop(md, object) -sub = row.row(align=True) -sub.active = bool(md.object) -sub.prop(md, use_object_transform, text=, icon='GROUP') - -layout.separator() - -split = layout.split(0.333) -split.prop(md, use_vert_data) -use_vert = md.use_vert_data -row = split.row() -row.active = use_vert -row.prop(md, vert_mapping, text=) -if use_vert: -col = layout.column(align=True) -split = col.split(0.333, align=True) -sub = split.column(align=True) -sub.prop(md, data_types_verts_vgroup) -row = split.row(align=True) -row.prop(md, layers_vgroup_select_src, text=) -row.label(icon='RIGHTARROW_THIN') -row.prop(md, layers_vgroup_select_dst, text=) -split = col.split(0.333, align=True) -sub = split.column(align=True) -sub.prop(md, data_types_verts) - -layout.separator() - -split = layout.split(0.333) -split.prop(md, use_edge_data) -use_edge = md.use_edge_data -row = split.row() -row.active = use_edge -row.prop(md, edge_mapping, text=) -if use_edge: -col = layout.column(align=True) -split = col.split(0.333, align=True) -sub = split.column(align=True) -sub.prop(md, data_types_edges) - -layout.separator() - -split = layout.split(0.333) -split.prop(md, use_loop_data) -use_loop = md.use_loop_data -row = split.row() -row.active = use_loop -row.prop(md, loop_mapping, text=) -if use_loop: -col = layout.column(align=True) -split = col.split(0.333, align=True) -sub = split.column(align=True) -sub.prop(md, data_types_loops) -split = col.split(0.333, align=True) -sub = split.column(align=True) -sub.prop(md, data_types_loops_vcol) -row = split.row(align=True) -row.prop(md, layers_vcol_select_src, text=) -row.label(icon='RIGHTARROW') -row.prop(md,
[Bf-blender-cvs] [0756fe2] master: Cleanup: Remove SD_BSDF_GLOSSY flag, unused.
Commit: 0756fe268464ff7441ff247f278aac57b35483e8 Author: Thomas Dinges Date: Thu Nov 20 07:53:22 2014 +0100 Branches: master https://developer.blender.org/rB0756fe268464ff7441ff247f278aac57b35483e8 Cleanup: Remove SD_BSDF_GLOSSY flag, unused. === M intern/cycles/kernel/closure/bsdf_ashikhmin_shirley.h M intern/cycles/kernel/closure/bsdf_hair.h M intern/cycles/kernel/closure/bsdf_microfacet.h M intern/cycles/kernel/closure/bsdf_phong_ramp.h M intern/cycles/kernel/kernel_types.h === diff --git a/intern/cycles/kernel/closure/bsdf_ashikhmin_shirley.h b/intern/cycles/kernel/closure/bsdf_ashikhmin_shirley.h index 1a1c1af..b94bdee 100644 --- a/intern/cycles/kernel/closure/bsdf_ashikhmin_shirley.h +++ b/intern/cycles/kernel/closure/bsdf_ashikhmin_shirley.h @@ -37,7 +37,7 @@ ccl_device int bsdf_ashikhmin_shirley_setup(ShaderClosure *sc) sc-data1 = sc-data0; sc-type = CLOSURE_BSDF_ASHIKHMIN_SHIRLEY_ID; - return SD_BSDF|SD_BSDF_HAS_EVAL|SD_BSDF_GLOSSY; + return SD_BSDF|SD_BSDF_HAS_EVAL; } ccl_device int bsdf_ashikhmin_shirley_aniso_setup(ShaderClosure *sc) @@ -46,7 +46,7 @@ ccl_device int bsdf_ashikhmin_shirley_aniso_setup(ShaderClosure *sc) sc-data1 = clamp(sc-data1, 1e-4f, 1.0f); sc-type = CLOSURE_BSDF_ASHIKHMIN_SHIRLEY_ANISO_ID; - return SD_BSDF|SD_BSDF_HAS_EVAL|SD_BSDF_GLOSSY; + return SD_BSDF|SD_BSDF_HAS_EVAL; } ccl_device void bsdf_ashikhmin_shirley_blur(ShaderClosure *sc, float roughness) diff --git a/intern/cycles/kernel/closure/bsdf_hair.h b/intern/cycles/kernel/closure/bsdf_hair.h index e0b5454..4f4fd5d 100644 --- a/intern/cycles/kernel/closure/bsdf_hair.h +++ b/intern/cycles/kernel/closure/bsdf_hair.h @@ -49,7 +49,7 @@ ccl_device int bsdf_hair_reflection_setup(ShaderClosure *sc) sc-type = CLOSURE_BSDF_HAIR_REFLECTION_ID; sc-data0 = clamp(sc-data0, 0.001f, 1.0f); sc-data1 = clamp(sc-data1, 0.001f, 1.0f); - return SD_BSDF|SD_BSDF_HAS_EVAL|SD_BSDF_GLOSSY; + return SD_BSDF|SD_BSDF_HAS_EVAL; } ccl_device int bsdf_hair_transmission_setup(ShaderClosure *sc) @@ -57,7 +57,7 @@ ccl_device int bsdf_hair_transmission_setup(ShaderClosure *sc) sc-type = CLOSURE_BSDF_HAIR_TRANSMISSION_ID; sc-data0 = clamp(sc-data0, 0.001f, 1.0f); sc-data1 = clamp(sc-data1, 0.001f, 1.0f); - return SD_BSDF|SD_BSDF_HAS_EVAL|SD_BSDF_GLOSSY; + return SD_BSDF|SD_BSDF_HAS_EVAL; } ccl_device float3 bsdf_hair_reflection_eval_reflect(const ShaderClosure *sc, const float3 I, const float3 omega_in, float *pdf) diff --git a/intern/cycles/kernel/closure/bsdf_microfacet.h b/intern/cycles/kernel/closure/bsdf_microfacet.h index 8737b0e..9561885 100644 --- a/intern/cycles/kernel/closure/bsdf_microfacet.h +++ b/intern/cycles/kernel/closure/bsdf_microfacet.h @@ -305,7 +305,7 @@ ccl_device int bsdf_microfacet_ggx_setup(ShaderClosure *sc) sc-type = CLOSURE_BSDF_MICROFACET_GGX_ID; - return SD_BSDF|SD_BSDF_HAS_EVAL|SD_BSDF_GLOSSY; + return SD_BSDF|SD_BSDF_HAS_EVAL; } ccl_device int bsdf_microfacet_ggx_aniso_setup(ShaderClosure *sc) @@ -315,7 +315,7 @@ ccl_device int bsdf_microfacet_ggx_aniso_setup(ShaderClosure *sc) sc-type = CLOSURE_BSDF_MICROFACET_GGX_ANISO_ID; - return SD_BSDF|SD_BSDF_HAS_EVAL|SD_BSDF_GLOSSY; + return SD_BSDF|SD_BSDF_HAS_EVAL; } ccl_device int bsdf_microfacet_ggx_refraction_setup(ShaderClosure *sc) @@ -325,7 +325,7 @@ ccl_device int bsdf_microfacet_ggx_refraction_setup(ShaderClosure *sc) sc-type = CLOSURE_BSDF_MICROFACET_GGX_REFRACTION_ID; - return SD_BSDF|SD_BSDF_HAS_EVAL|SD_BSDF_GLOSSY; + return SD_BSDF|SD_BSDF_HAS_EVAL; } ccl_device void bsdf_microfacet_ggx_blur(ShaderClosure *sc, float roughness) @@ -657,7 +657,7 @@ ccl_device int bsdf_microfacet_beckmann_setup(ShaderClosure *sc) sc-data1 = sc-data0; /* alpha_y */ sc-type = CLOSURE_BSDF_MICROFACET_BECKMANN_ID; - return SD_BSDF|SD_BSDF_HAS_EVAL|SD_BSDF_GLOSSY; + return SD_BSDF|SD_BSDF_HAS_EVAL; } ccl_device int bsdf_microfacet_beckmann_aniso_setup(ShaderClosure *sc) @@ -666,7 +666,7 @@ ccl_device int bsdf_microfacet_beckmann_aniso_setup(ShaderClosure *sc) sc-data1 = clamp(sc-data1, 0.0f, 1.0f); /* alpha_y */ sc-type = CLOSURE_BSDF_MICROFACET_BECKMANN_ANISO_ID; - return SD_BSDF|SD_BSDF_HAS_EVAL|SD_BSDF_GLOSSY; + return SD_BSDF|SD_BSDF_HAS_EVAL; } ccl_device int bsdf_microfacet_beckmann_refraction_setup(ShaderClosure *sc) @@ -675,7 +675,7 @@ ccl_device int bsdf_microfacet_beckmann_refraction_setup(ShaderClosure *sc) sc-data1 = sc-data0; /* alpha_y */ sc-type = CLOSURE_BSDF_MICROFACET_BECKMANN_REFRACTION_ID; - return SD_BSDF|SD_BSDF_HAS_EVAL|SD_BSDF_GLOSSY; + return