[Bf-blender-cvs] [c319d47] experimental-build: Another experimental Cycles build
Commit: c319d47f8e7c5b8b9e3d7104c4a658d1d28a501c Author: Lukas Stockner Date: Mon Oct 3 03:59:21 2016 +0200 Branches: experimental-build https://developer.blender.org/rBc319d47f8e7c5b8b9e3d7104c4a658d1d28a501c Another experimental Cycles build Contains: - Cycles Denoising - NOTE: The Windows Black Square bug might still be in there, the fix is not as easy as it seemed... - Probabilistic Light Sampling Termination (D2217) - Better progress estimation system for Cycles (D2214) - Red Highlighting for invalid Shader Node connections (D2190) - IES Textures for Cycles Lights (D1543) - Blue-Noise Dithered Sampling (D2149) - Microjittered sampling (P366) - Light Group Render Passes - contain only light from lamps and/or meshes that are in the specified group (unsubmitted, just a quick test) - Cycles Shadow Catcher (D1788) It should be obvious from the name of this branch, but these changes are all highly experimental right now - especially when combined together. Don't expect to be able to use this for productive work :) === M CMakeLists.txt M intern/cycles/CMakeLists.txt M intern/cycles/app/CMakeLists.txt A intern/cycles/app/cycles_denoising.cpp A intern/cycles/app/cycles_denoising.h A intern/cycles/app/cycles_dithering.cpp M intern/cycles/app/cycles_standalone.cpp A intern/cycles/app/cycles_standalone.h M intern/cycles/blender/addon/__init__.py M intern/cycles/blender/addon/engine.py M intern/cycles/blender/addon/properties.py M intern/cycles/blender/addon/ui.py M intern/cycles/blender/blender_object.cpp M intern/cycles/blender/blender_python.cpp M intern/cycles/blender/blender_session.cpp M intern/cycles/blender/blender_session.h M intern/cycles/blender/blender_shader.cpp M intern/cycles/blender/blender_sync.cpp M intern/cycles/blender/blender_sync.h M intern/cycles/blender/blender_util.h M intern/cycles/device/device.h M intern/cycles/device/device_cpu.cpp M intern/cycles/device/device_cuda.cpp M intern/cycles/device/device_multi.cpp M intern/cycles/device/device_network.cpp M intern/cycles/device/device_opencl.cpp M intern/cycles/device/device_task.cpp M intern/cycles/device/device_task.h M intern/cycles/kernel/CMakeLists.txt M intern/cycles/kernel/bvh/bvh.h M intern/cycles/kernel/bvh/bvh_shadow_all.h M intern/cycles/kernel/bvh/qbvh_shadow_all.h M intern/cycles/kernel/closure/bsdf_ashikhmin_velvet.h M intern/cycles/kernel/closure/bsdf_diffuse.h M intern/cycles/kernel/closure/bsdf_diffuse_ramp.h M intern/cycles/kernel/closure/bsdf_microfacet.h M intern/cycles/kernel/closure/bsdf_microfacet_multi.h M intern/cycles/kernel/closure/bsdf_oren_nayar.h M intern/cycles/kernel/closure/bsdf_phong_ramp.h M intern/cycles/kernel/closure/bsdf_toon.h M intern/cycles/kernel/closure/bssrdf.h M intern/cycles/kernel/geom/geom_object.h M intern/cycles/kernel/geom/geom_triangle.h M intern/cycles/kernel/kernel_accumulate.h M intern/cycles/kernel/kernel_bake.h M intern/cycles/kernel/kernel_compat_cpu.h M intern/cycles/kernel/kernel_compat_cuda.h M intern/cycles/kernel/kernel_emission.h A intern/cycles/kernel/kernel_filter.h A intern/cycles/kernel/kernel_filter_old.h A intern/cycles/kernel/kernel_filter_pre.h A intern/cycles/kernel/kernel_filter_util.h M intern/cycles/kernel/kernel_light.h M intern/cycles/kernel/kernel_passes.h M intern/cycles/kernel/kernel_path.h M intern/cycles/kernel/kernel_path_branched.h M intern/cycles/kernel/kernel_path_state.h M intern/cycles/kernel/kernel_path_surface.h M intern/cycles/kernel/kernel_path_volume.h M intern/cycles/kernel/kernel_projection.h M intern/cycles/kernel/kernel_random.h M intern/cycles/kernel/kernel_shader.h M intern/cycles/kernel/kernel_shadow.h M intern/cycles/kernel/kernel_textures.h M intern/cycles/kernel/kernel_types.h M intern/cycles/kernel/kernel_volume.h M intern/cycles/kernel/kernels/cpu/kernel_cpu.h M intern/cycles/kernel/kernels/cpu/kernel_cpu_impl.h M intern/cycles/kernel/kernels/cuda/kernel.cu M intern/cycles/kernel/kernels/opencl/kernel_direct_lighting.cl M intern/cycles/kernel/kernels/opencl/kernel_next_iteration_setup.cl M intern/cycles/kernel/osl/osl_services.cpp M intern/cycles/kernel/shaders/CMakeLists.txt A intern/cycles/kernel/shaders/node_ies_light.osl M intern/cycles/kernel/split/kernel_background_buffer_update.h M intern/cycles/kernel/split/kernel_data_init.h M intern/cycles/kernel/split/kernel_direct_lighting.h M intern/cycles/kernel/split/kernel_holdout_emission_blurring_pathtermination_ao.h M
[Bf-blender-cvs] [19c1a1b] experimental-build: Merge remote-tracking branch 'origin/master' into experimental-build
Commit: 19c1a1b3e2e1a5c5359250fe7d7e311842907e74 Author: Lukas Stockner Date: Mon Oct 3 03:57:54 2016 +0200 Branches: experimental-build https://developer.blender.org/rB19c1a1b3e2e1a5c5359250fe7d7e311842907e74 Merge remote-tracking branch 'origin/master' into experimental-build === === ___ Bf-blender-cvs mailing list Bf-blender-cvs@blender.org https://lists.blender.org/mailman/listinfo/bf-blender-cvs
[Bf-blender-cvs] [97af83e] experimental-build: Revert "Another experimental Cycles build"
Commit: 97af83e404e964c7ec08adcce872c434995d Author: Lukas Stockner Date: Mon Oct 3 04:05:00 2016 +0200 Branches: experimental-build https://developer.blender.org/rB97af83e404e964c7ec08adcce872c434995d Revert "Another experimental Cycles build" This reverts commit c319d47f8e7c5b8b9e3d7104c4a658d1d28a501c. === M CMakeLists.txt M intern/cycles/CMakeLists.txt M intern/cycles/app/CMakeLists.txt D intern/cycles/app/cycles_denoising.cpp D intern/cycles/app/cycles_denoising.h D intern/cycles/app/cycles_dithering.cpp M intern/cycles/app/cycles_standalone.cpp D intern/cycles/app/cycles_standalone.h M intern/cycles/blender/addon/__init__.py M intern/cycles/blender/addon/engine.py M intern/cycles/blender/addon/properties.py M intern/cycles/blender/addon/ui.py M intern/cycles/blender/blender_object.cpp M intern/cycles/blender/blender_python.cpp M intern/cycles/blender/blender_session.cpp M intern/cycles/blender/blender_session.h M intern/cycles/blender/blender_shader.cpp M intern/cycles/blender/blender_sync.cpp M intern/cycles/blender/blender_sync.h M intern/cycles/blender/blender_util.h M intern/cycles/device/device.h M intern/cycles/device/device_cpu.cpp M intern/cycles/device/device_cuda.cpp M intern/cycles/device/device_multi.cpp M intern/cycles/device/device_network.cpp M intern/cycles/device/device_opencl.cpp M intern/cycles/device/device_task.cpp M intern/cycles/device/device_task.h M intern/cycles/kernel/CMakeLists.txt M intern/cycles/kernel/bvh/bvh.h M intern/cycles/kernel/bvh/bvh_shadow_all.h M intern/cycles/kernel/bvh/qbvh_shadow_all.h M intern/cycles/kernel/closure/bsdf_ashikhmin_velvet.h M intern/cycles/kernel/closure/bsdf_diffuse.h M intern/cycles/kernel/closure/bsdf_diffuse_ramp.h M intern/cycles/kernel/closure/bsdf_microfacet.h M intern/cycles/kernel/closure/bsdf_microfacet_multi.h M intern/cycles/kernel/closure/bsdf_oren_nayar.h M intern/cycles/kernel/closure/bsdf_phong_ramp.h M intern/cycles/kernel/closure/bsdf_toon.h M intern/cycles/kernel/closure/bssrdf.h M intern/cycles/kernel/geom/geom_object.h M intern/cycles/kernel/geom/geom_triangle.h M intern/cycles/kernel/kernel_accumulate.h M intern/cycles/kernel/kernel_bake.h M intern/cycles/kernel/kernel_compat_cpu.h M intern/cycles/kernel/kernel_compat_cuda.h M intern/cycles/kernel/kernel_emission.h D intern/cycles/kernel/kernel_filter.h D intern/cycles/kernel/kernel_filter_old.h D intern/cycles/kernel/kernel_filter_pre.h D intern/cycles/kernel/kernel_filter_util.h M intern/cycles/kernel/kernel_light.h M intern/cycles/kernel/kernel_passes.h M intern/cycles/kernel/kernel_path.h M intern/cycles/kernel/kernel_path_branched.h M intern/cycles/kernel/kernel_path_state.h M intern/cycles/kernel/kernel_path_surface.h M intern/cycles/kernel/kernel_path_volume.h M intern/cycles/kernel/kernel_projection.h M intern/cycles/kernel/kernel_random.h M intern/cycles/kernel/kernel_shader.h M intern/cycles/kernel/kernel_shadow.h M intern/cycles/kernel/kernel_textures.h M intern/cycles/kernel/kernel_types.h M intern/cycles/kernel/kernel_volume.h M intern/cycles/kernel/kernels/cpu/kernel_cpu.h M intern/cycles/kernel/kernels/cpu/kernel_cpu_impl.h M intern/cycles/kernel/kernels/cuda/kernel.cu M intern/cycles/kernel/kernels/opencl/kernel_direct_lighting.cl M intern/cycles/kernel/kernels/opencl/kernel_next_iteration_setup.cl M intern/cycles/kernel/osl/osl_services.cpp M intern/cycles/kernel/shaders/CMakeLists.txt D intern/cycles/kernel/shaders/node_ies_light.osl M intern/cycles/kernel/split/kernel_background_buffer_update.h M intern/cycles/kernel/split/kernel_data_init.h M intern/cycles/kernel/split/kernel_direct_lighting.h M intern/cycles/kernel/split/kernel_holdout_emission_blurring_pathtermination_ao.h M intern/cycles/kernel/split/kernel_lamp_emission.h M intern/cycles/kernel/split/kernel_next_iteration_setup.h M intern/cycles/kernel/svm/svm.h M intern/cycles/kernel/svm/svm_closure.h M intern/cycles/kernel/svm/svm_displace.h D intern/cycles/kernel/svm/svm_ies.h M intern/cycles/kernel/svm/svm_image.h M intern/cycles/kernel/svm/svm_types.h M intern/cycles/render/CMakeLists.txt M intern/cycles/render/bake.cpp M intern/cycles/render/bake.h M intern/cycles/render/buffers.cpp M intern/cycles/render/buffers.h D intern/cycles/render/denoising.cpp D intern/cycles/render/denoising.h M intern/cycles/render/film.cpp M intern/cycles/render/film.h M
[Bf-blender-cvs] [d1e68a9] temp_manipulators_core: Fix local ListBase var not initialized
Commit: d1e68a92aa55146d4adf5be014fda4606a5db54d Author: Julian Eisel Date: Mon Oct 3 01:35:02 2016 +0200 Branches: temp_manipulators_core https://developer.blender.org/rBd1e68a92aa55146d4adf5be014fda4606a5db54d Fix local ListBase var not initialized === M source/blender/windowmanager/manipulators/intern/wm_manipulatormap.c === diff --git a/source/blender/windowmanager/manipulators/intern/wm_manipulatormap.c b/source/blender/windowmanager/manipulators/intern/wm_manipulatormap.c index dab7d61..1aa71ce 100644 --- a/source/blender/windowmanager/manipulators/intern/wm_manipulatormap.c +++ b/source/blender/windowmanager/manipulators/intern/wm_manipulatormap.c @@ -419,7 +419,7 @@ wmManipulator *wm_manipulatormap_find_highlighted_manipulator( unsigned char *part) { wmManipulator *manipulator = NULL; - ListBase visible_3d_manipulators; + ListBase visible_3d_manipulators = {NULL}; for (wmManipulatorGroup *mgroup = mmap->manipulator_groups.first; mgroup; mgroup = mgroup->next) { if (wm_manipulatorgroup_is_visible(mgroup, C)) { ___ Bf-blender-cvs mailing list Bf-blender-cvs@blender.org https://lists.blender.org/mailman/listinfo/bf-blender-cvs
[Bf-blender-cvs] [100d043] custom-manipulators: Merge branch 'temp_manipulators_core' into custom-manipulators
Commit: 100d043fce2eabbbf3b55bb433551f5425180622 Author: Julian Eisel Date: Mon Oct 3 01:31:15 2016 +0200 Branches: custom-manipulators https://developer.blender.org/rB100d043fce2eabbbf3b55bb433551f5425180622 Merge branch 'temp_manipulators_core' into custom-manipulators Also made changes to get branch compile and work. Conflicts: source/blender/windowmanager/manipulators/wm_manipulator_wmapi.h === === diff --cc source/blender/editors/space_graph/graph_edit.c index 971f8a3,f38d368..6e6dbeb --- a/source/blender/editors/space_graph/graph_edit.c +++ b/source/blender/editors/space_graph/graph_edit.c @@@ -2748,177 -2746,3 +2748,177 @@@ void GRAPH_OT_driver_variables_paste(wm } /* ** */ + +typedef struct BackDropTransformData { + float init_offset[2]; + float init_zoom; + short event_type; +} BackDropTransformData; + +static int graph_widget_backdrop_transform_poll(bContext *C) +{ + SpaceIpo *sipo = CTX_wm_space_graph(C); + ARegion *ar = CTX_wm_region(C); + + return ((sipo != NULL) && + (ar->type->regionid == RGN_TYPE_WINDOW) && + (sipo->flag & SIPO_DRAW_BACKDROP) && + (sipo->backdrop_camera)); +} + +static void widgetgroup_backdrop_init(const bContext *UNUSED(C), wmManipulatorGroup *wgroup) +{ + wmManipulatorWrapper *wwrapper = MEM_mallocN(sizeof(wmManipulatorWrapper), __func__); + wgroup->customdata = wwrapper; + + wwrapper->manipulator = MANIPULATOR_rect_transform_new( + wgroup, "backdrop_cage", + MANIPULATOR_RECT_TRANSFORM_STYLE_SCALE_UNIFORM | MANIPULATOR_RECT_TRANSFORM_STYLE_TRANSLATE); +} + +static void widgetgroup_backdrop_refresh(const struct bContext *C, wmManipulatorGroup *wgroup) +{ + wmManipulator *cage = ((wmManipulatorWrapper *)wgroup->customdata)->manipulator; + ARegion *ar = CTX_wm_region(C); + const Scene *scene = CTX_data_scene(C); + const int width = (scene->r.size * scene->r.xsch) / 150.0f; + const int height = (scene->r.size * scene->r.ysch) / 150.0f; + float origin[3]; + + origin[0] = BLI_rcti_size_x(>winrct) / 2.0f; + origin[1] = BLI_rcti_size_y(>winrct) / 2.0f; + + WM_manipulator_set_origin(cage, origin); + MANIPULATOR_rect_transform_set_dimensions(cage, width, height); + + /* XXX hmmm, can't we do this in _init somehow? Issue is op->ptr is freed after OP is done. */ + wmOperator *op = wgroup->type->op; + WM_manipulator_set_property(cage, RECT_TRANSFORM_SLOT_OFFSET, op->ptr, "offset"); + WM_manipulator_set_property(cage, RECT_TRANSFORM_SLOT_SCALE, op->ptr, "scale"); +} + +static void GRAPH_WGT_backdrop_transform(wmManipulatorGroupType *wgt) +{ + wgt->name = "Backdrop Transform Widgets"; + + wgt->init = widgetgroup_backdrop_init; + wgt->refresh = widgetgroup_backdrop_refresh; +} + +static int graph_widget_backdrop_transform_invoke(bContext *C, wmOperator *op, const wmEvent *event) +{ + ScrArea *sa = CTX_wm_area(C); + SpaceIpo *sipo = CTX_wm_space_graph(C); + BackDropTransformData *data = MEM_mallocN(sizeof(BackDropTransformData), "overdrop transform data"); + + RNA_float_set_array(op->ptr, "offset", sipo->backdrop_offset); + RNA_float_set(op->ptr, "scale", sipo->backdrop_zoom); + + copy_v2_v2(data->init_offset, sipo->backdrop_offset); + data->init_zoom = sipo->backdrop_zoom; + data->event_type = event->type; + + op->customdata = data; + WM_event_add_modal_handler(C, op); + + ED_area_headerprint(sa, "Drag to place, and scale, Space/Enter/Caller key to confirm, R to recenter, RClick/Esc to cancel"); + + return OPERATOR_RUNNING_MODAL; +} + +static void graph_widget_backdrop_transform_finish(bContext *C, BackDropTransformData *data) +{ + ScrArea *sa = CTX_wm_area(C); + ED_area_headerprint(sa, NULL); + MEM_freeN(data); +} + +static void graph_widget_backdrop_transform_cancel(struct bContext *C, struct wmOperator *op) +{ + BackDropTransformData *data = op->customdata; + graph_widget_backdrop_transform_finish(C, data); +} + +static int graph_widget_backdrop_transform_modal(bContext *C, wmOperator *op, const wmEvent *event) +{ + ARegion *ar = CTX_wm_region(C); + BackDropTransformData *data = op->customdata; + + if (event->type == data->event_type && event->val == KM_PRESS) { + graph_widget_backdrop_transform_finish(C, data); + return OPERATOR_FINISHED; + } + + switch (event->type) { + case EVT_MANIPULATOR_UPDATE: + { + SpaceIpo *sipo = CTX_wm_space_graph(C); +
[Bf-blender-cvs] [cc00da8] fracture_modifier: dynamic fracture: added back constraint support for it
Commit: cc00da895ecab3e280b0fe84c808d45daf0e9f48 Author: Martin Felke Date: Mon Oct 3 01:21:23 2016 +0200 Branches: fracture_modifier https://developer.blender.org/rBcc00da895ecab3e280b0fe84c808d45daf0e9f48 dynamic fracture: added back constraint support for it === M source/blender/blenkernel/intern/fracture.c M source/blender/blenkernel/intern/rigidbody.c M source/blender/blenloader/intern/readfile.c M source/blender/modifiers/intern/MOD_fracture.c === diff --git a/source/blender/blenkernel/intern/fracture.c b/source/blender/blenkernel/intern/fracture.c index ddb1f60..604c289 100644 --- a/source/blender/blenkernel/intern/fracture.c +++ b/source/blender/blenkernel/intern/fracture.c @@ -2173,6 +2173,17 @@ void BKE_free_constraints(FractureModifierData *fmd) MeshIsland *mi = NULL; RigidBodyShardCon *rbsc = NULL; + //hmm after loading the pointers might be out of sync... + if (fmd->fracture_mode == MOD_FRACTURE_DYNAMIC) { + if (fmd->current_mi_entry) { + fmd->meshIslands = fmd->current_mi_entry->meshIslands; + } + else { + fmd->meshIslands.first = NULL; + fmd->meshIslands.last = NULL; + } + } + for (mi = fmd->meshIslands.first; mi; mi = mi->next) { if (mi->participating_constraints != NULL && mi->participating_constraint_count > 0) { MEM_freeN(mi->participating_constraints); diff --git a/source/blender/blenkernel/intern/rigidbody.c b/source/blender/blenkernel/intern/rigidbody.c index 7b9a822..8234507 100644 --- a/source/blender/blenkernel/intern/rigidbody.c +++ b/source/blender/blenkernel/intern/rigidbody.c @@ -2137,12 +2137,21 @@ static void check_fracture(rbContactPoint* cp, RigidBodyWorld *rbw) int id = rbw->cache_index_map[linear_index1]->meshisland_index; Shard *s = findShard(fmd1, id); - if (force > fmd1->dynamic_force || (/*force > fmd1->dynamic_force &&*/ s && ob2 && (fmd1->limit_impact && - can_break(ob2, ob1, fmd1->limit_impact, s + if ((force > fmd1->dynamic_force && (!fmd1->limit_impact || (fmd1->limit_impact && s && (s->parent_id > 0 || s->shard_id > 0)) || + (s && ob2 && (fmd1->limit_impact && can_break(ob2, ob1, fmd1->limit_impact, s)) { if (s) { float size[3]; - BKE_object_dimensions_get(ob2, size); + + if (ob1 == ob2 || (ob2 && ob2->rigidbody_object && ob2->rigidbody_object->type == RBO_TYPE_PASSIVE)) { + size[0] = -1.0f; //mark as invalid, so the regular object size is used + size[1] = -1.0f; + size[2] = -1.0f; + } + else { + BKE_object_dimensions_get(ob2, size); + } + copy_v3_v3(s->impact_loc, cp->contact_pos_world_onA); copy_v3_v3(s->impact_size, size); } @@ -2173,12 +2182,19 @@ static void check_fracture(rbContactPoint* cp, RigidBodyWorld *rbw) int id = rbw->cache_index_map[linear_index2]->meshisland_index; Shard *s = findShard(fmd2, id); - if (force > fmd2->dynamic_force || ( /*force > fmd2->dynamic_force &&*/ ob1 && s && (fmd2->limit_impact && - can_break(ob1, ob2, fmd2->limit_impact, s + if (force > fmd2->dynamic_force && (!fmd2->limit_impact || (fmd2->limit_impact && s && (s->parent_id > 0 || s->shard_id > 0)) || + (ob1 && s && (fmd2->limit_impact && can_break(ob1, ob2, fmd2->limit_impact, s) { if (s) { float size[3]; - BKE_object_dimensions_get(ob1, size); + if (ob1 == ob2 || (ob1 && ob1->rigidbody_object && ob1->rigidbody_object->type == RBO_TYPE_PASSIVE)) { +
[Bf-blender-cvs] [d4f3278] temp_manipulators_core: Fixes for custom-manipulators branch
Commit: d4f327896274b3f4995af3d0beb8c0cf0f36b803 Author: Julian Eisel Date: Mon Oct 3 00:52:41 2016 +0200 Branches: temp_manipulators_core https://developer.blender.org/rBd4f327896274b3f4995af3d0beb8c0cf0f36b803 Fixes for custom-manipulators branch === M source/blender/windowmanager/manipulators/intern/wm_manipulatorgroup.c M source/blender/windowmanager/manipulators/wm_manipulator_wmapi.h === diff --git a/source/blender/windowmanager/manipulators/intern/wm_manipulatorgroup.c b/source/blender/windowmanager/manipulators/intern/wm_manipulatorgroup.c index a938e8b..c2780d3 100644 --- a/source/blender/windowmanager/manipulators/intern/wm_manipulatorgroup.c +++ b/source/blender/windowmanager/manipulators/intern/wm_manipulatorgroup.c @@ -58,23 +58,16 @@ #include "wm_manipulator_intern.h" -/* wmManipulatorGroupType.flag_intern */ -enum { - /* manipulator group is attached to operator, and is only accessible as long as this runs */ - WM_MANIPULATORGROUPTYPE_OP = (1 << 0), -}; +/* */ +/** \name wmManipulatorGroup + * + * \{ */ /* wmManipulatorGroup.flag */ enum { WM_MANIPULATORGROUP_INITIALIZED = (1 << 2), /* mgroup has been initialized */ }; - -/* */ -/** \name wmManipulatorGroup - * - * \{ */ - /** * Create a new manipulator-group from \a mgrouptype. */ diff --git a/source/blender/windowmanager/manipulators/wm_manipulator_wmapi.h b/source/blender/windowmanager/manipulators/wm_manipulator_wmapi.h index cff0bca..7684b3a 100644 --- a/source/blender/windowmanager/manipulators/wm_manipulator_wmapi.h +++ b/source/blender/windowmanager/manipulators/wm_manipulator_wmapi.h @@ -55,6 +55,12 @@ struct wmManipulatorGroup *wm_manipulator_group_find( /* */ /* wmManipulatorGroup */ +/* wmManipulatorGroupType.flag */ +enum { + /* manipulator group is attached to operator, and is only accessible as long as this runs */ + WM_MANIPULATORGROUPTYPE_OP = (1 << 0), +}; + void MANIPULATORGROUP_OT_manipulator_select(struct wmOperatorType *ot); void MANIPULATORGROUP_OT_manipulator_tweak(struct wmOperatorType *ot); @@ -65,7 +71,7 @@ void wm_manipulatorgroup_attach_to_modal_handler( /* */ /* wmManipulatorMap */ -void wm_manipulatormap_delete(wmManipulatorMap *mmap); +void wm_manipulatormap_delete(struct wmManipulatorMap *mmap); void wm_manipulatormaptypes_free(void); void wm_manipulators_keymap(struct wmKeyConfig *keyconf); ___ Bf-blender-cvs mailing list Bf-blender-cvs@blender.org https://lists.blender.org/mailman/listinfo/bf-blender-cvs
[Bf-blender-cvs] [dbe1472] temp_manipulators_core: Refactor lookups for hovered manipulator
Commit: dbe147257d6b82c7911d6670568ccc41913109fd Author: Julian Eisel Date: Mon Oct 3 00:23:34 2016 +0200 Branches: temp_manipulators_core https://developer.blender.org/rBdbe147257d6b82c7911d6670568ccc41913109fd Refactor lookups for hovered manipulator 2D manipulators now have priority over 3D ones, think that's what you'd want usually. Untested code, need to merge into custom_manipulators first. === M source/blender/windowmanager/intern/wm_event_system.c M source/blender/windowmanager/manipulators/intern/wm_manipulator_intern.h M source/blender/windowmanager/manipulators/intern/wm_manipulatorgroup.c M source/blender/windowmanager/manipulators/intern/wm_manipulatormap.c M source/blender/windowmanager/manipulators/wm_manipulator_wmapi.h === diff --git a/source/blender/windowmanager/intern/wm_event_system.c b/source/blender/windowmanager/intern/wm_event_system.c index 1fa5b22..8da107f 100644 --- a/source/blender/windowmanager/intern/wm_event_system.c +++ b/source/blender/windowmanager/intern/wm_event_system.c @@ -2113,11 +2113,7 @@ static int wm_handlers_do_intern(bContext *C, wmEvent *event, ListBase *handlers /* handle manipulator highlighting */ if (event->type == MOUSEMOVE && !wm_manipulatormap_get_active_manipulator(mmap)) { - /* TODO should check for both, 2D and 3D manipulators and choose the one closest to cursor */ - manipulator = wm_manipulatormap_find_highlighted_3D(mmap, C, event, ); - if (!manipulator) { - manipulator = wm_manipulatormap_find_highlighted_manipulator(mmap, C, event, ); - } + manipulator = wm_manipulatormap_find_highlighted_manipulator(mmap, C, event, ); wm_manipulatormap_set_highlighted_manipulator(mmap, C, manipulator, part); } /* handle user configurable manipulator-map keymap */ diff --git a/source/blender/windowmanager/manipulators/intern/wm_manipulator_intern.h b/source/blender/windowmanager/manipulators/intern/wm_manipulator_intern.h index 52a5cb3..b830301 100644 --- a/source/blender/windowmanager/manipulators/intern/wm_manipulator_intern.h +++ b/source/blender/windowmanager/manipulators/intern/wm_manipulator_intern.h @@ -143,6 +143,11 @@ enum { struct wmManipulatorGroup *wm_manipulatorgroup_new_from_type(struct wmManipulatorGroupType *mgrouptype); void wm_manipulatorgroup_free(bContext *C, struct wmManipulatorMap *mmap, struct wmManipulatorGroup *mgroup); +wmManipulator *wm_manipulatorgroup_find_intersected_mainpulator( +const struct wmManipulatorGroup *mgroup, struct bContext *C, const struct wmEvent *event, +unsigned char *part); +void wm_manipulatorgroup_intersectable_manipulators_to_list( +const struct wmManipulatorGroup *mgroup, struct ListBase *listbase); void wm_manipulatorgroup_ensure_initialized(struct wmManipulatorGroup *mgroup, const struct bContext *C); bool wm_manipulatorgroup_is_visible(const struct wmManipulatorGroup *mgroup, const struct bContext *C); diff --git a/source/blender/windowmanager/manipulators/intern/wm_manipulatorgroup.c b/source/blender/windowmanager/manipulators/intern/wm_manipulatorgroup.c index 3f635f8..a938e8b 100644 --- a/source/blender/windowmanager/manipulators/intern/wm_manipulatorgroup.c +++ b/source/blender/windowmanager/manipulators/intern/wm_manipulatorgroup.c @@ -140,6 +140,37 @@ void wm_manipulatorgroup_attach_to_modal_handler( WM_event_add_mousemove(C); } +wmManipulator *wm_manipulatorgroup_find_intersected_mainpulator( +const wmManipulatorGroup *mgroup, bContext *C, const wmEvent *event, +unsigned char *part) +{ + for (wmManipulator *manipulator = mgroup->manipulators.first; manipulator; manipulator = manipulator->next) { + if (manipulator->intersect && (manipulator->flag & WM_MANIPULATOR_HIDDEN) == 0) { + if ((*part = manipulator->intersect(C, event, manipulator))) { + return manipulator; + } + } + } + + return NULL; +} + +/** + * Adds all manipulators of \a mgroup that can be selected to the head of \a listbase. Added items need freeing! + */ +void wm_manipulatorgroup_intersectable_manipulators_to_list(const wmManipulatorGroup *mgroup, ListBase *listbase) +{ + for (wmManipulator *manipulator = mgroup->manipulators.first; manipulator; manipulator = manipulator->next) { + if ((manipulator->flag & WM_MANIPULATOR_HIDDEN) == 0) { +
[Bf-blender-cvs] [2e595da] temp_manipulators_core: Refactor manipulator-group flags
Commit: 2e595daee3fa40737f5813349a4d7e6ad27d825f Author: Julian Eisel Date: Sun Oct 2 22:11:14 2016 +0200 Branches: temp_manipulators_core https://developer.blender.org/rB2e595daee3fa40737f5813349a4d7e6ad27d825f Refactor manipulator-group flags Flags are internal now, not exposed to non-manipulator window manager code. === M source/blender/makesdna/DNA_manipulator_types.h M source/blender/windowmanager/manipulators/WM_manipulator_types.h M source/blender/windowmanager/manipulators/intern/wm_manipulator_intern.h M source/blender/windowmanager/manipulators/intern/wm_manipulatorgroup.c M source/blender/windowmanager/manipulators/intern/wm_manipulatormap.c M source/blender/windowmanager/manipulators/wm_manipulator_wmapi.h === diff --git a/source/blender/makesdna/DNA_manipulator_types.h b/source/blender/makesdna/DNA_manipulator_types.h index 9a3289b..2414573 100644 --- a/source/blender/makesdna/DNA_manipulator_types.h +++ b/source/blender/makesdna/DNA_manipulator_types.h @@ -43,7 +43,7 @@ typedef struct wmManipulatorGroup { void *customdata; void (*customdata_free)(void *); /* for freeing customdata from above */ - int flag; + int flag; /* private */ int pad; } wmManipulatorGroup; diff --git a/source/blender/windowmanager/manipulators/WM_manipulator_types.h b/source/blender/windowmanager/manipulators/WM_manipulator_types.h index 2a3be7d..c4cdaea 100644 --- a/source/blender/windowmanager/manipulators/WM_manipulator_types.h +++ b/source/blender/windowmanager/manipulators/WM_manipulator_types.h @@ -66,6 +66,9 @@ typedef struct wmManipulatorGroupType { /* refresh data for drawing, called before each redraw */ wmManipulatorGroupDrawPrepareFunc draw_prepare; + /* manipulator-group will be treated as 2d if this isn't set to true */ + bool is_3d; + /* keymap init callback for this manipulator-group */ struct wmKeyMap *(*keymap_init)(const struct wmManipulatorGroupType *, struct wmKeyConfig *); /* keymap created with callback from above */ @@ -77,8 +80,7 @@ typedef struct wmManipulatorGroupType { /* RNA integration */ ExtensionRNA ext; - /* manipulatorTypeflags (includes copy of wmManipulatorMapType.flag - used for comparisons) */ - int flag; + char flag; /* if type is spawned from operator this is set here */ void *op; @@ -92,7 +94,6 @@ struct wmManipulatorMapType_Params { const char *idname; const int spaceid; const int regionid; - const int flag; }; /** diff --git a/source/blender/windowmanager/manipulators/intern/wm_manipulator_intern.h b/source/blender/windowmanager/manipulators/intern/wm_manipulator_intern.h index fd44b43..52a5cb3 100644 --- a/source/blender/windowmanager/manipulators/intern/wm_manipulator_intern.h +++ b/source/blender/windowmanager/manipulators/intern/wm_manipulator_intern.h @@ -143,6 +143,8 @@ enum { struct wmManipulatorGroup *wm_manipulatorgroup_new_from_type(struct wmManipulatorGroupType *mgrouptype); void wm_manipulatorgroup_free(bContext *C, struct wmManipulatorMap *mmap, struct wmManipulatorGroup *mgroup); +void wm_manipulatorgroup_ensure_initialized(struct wmManipulatorGroup *mgroup, const struct bContext *C); +bool wm_manipulatorgroup_is_visible(const struct wmManipulatorGroup *mgroup, const struct bContext *C); void wm_manipulatorgrouptype_keymap_init(struct wmManipulatorGroupType *mgrouptype, struct wmKeyConfig *keyconf); diff --git a/source/blender/windowmanager/manipulators/intern/wm_manipulatorgroup.c b/source/blender/windowmanager/manipulators/intern/wm_manipulatorgroup.c index f7a8895..3f635f8 100644 --- a/source/blender/windowmanager/manipulators/intern/wm_manipulatorgroup.c +++ b/source/blender/windowmanager/manipulators/intern/wm_manipulatorgroup.c @@ -58,6 +58,18 @@ #include "wm_manipulator_intern.h" +/* wmManipulatorGroupType.flag_intern */ +enum { + /* manipulator group is attached to operator, and is only accessible as long as this runs */ + WM_MANIPULATORGROUPTYPE_OP = (1 << 0), +}; + +/* wmManipulatorGroup.flag */ +enum { + WM_MANIPULATORGROUP_INITIALIZED = (1 << 2), /* mgroup has been initialized */ +}; + + /* */ /** \name wmManipulatorGroup * @@ -128,6 +140,22 @@ void wm_manipulatorgroup_attach_to_modal_handler( WM_event_add_mousemove(C); } +void wm_manipulatorgroup_ensure_initialized(wmManipulatorGroup *mgroup, const bContext *C) +{ + /* prepare for first draw */ + if (UNLIKELY((mgroup->flag & WM_MANIPULATORGROUP_INITIALIZED) == 0)) { + mgroup->type->init(C, mgroup); + mgroup->flag |= WM_MANIPULATORGROUP_INITIALIZED; + } +} + +bool
[Bf-blender-cvs] [3ee5ce1] master: [Windows/Cycles/Clang] Fix compilation error with clang-cl on windows
Commit: 3ee5ce155c4cc3f705038a12484351d21a71441d Author: lazydodo Date: Sun Oct 2 14:01:23 2016 -0600 Branches: master https://developer.blender.org/rB3ee5ce155c4cc3f705038a12484351d21a71441d [Windows/Cycles/Clang] Fix compilation error with clang-cl on windows === M intern/cycles/util/util_simd.h === diff --git a/intern/cycles/util/util_simd.h b/intern/cycles/util/util_simd.h index 36da155..8d4d790 100644 --- a/intern/cycles/util/util_simd.h +++ b/intern/cycles/util/util_simd.h @@ -71,7 +71,7 @@ __forceinline operator int ( ) const { return std::numeric_limits< #define _lzcnt_u64 __lzcnt64 #endif -#if defined(_WIN32) && !defined(__MINGW32__) +#if defined(_WIN32) && !defined(__MINGW32__) && !defined(__clang__) __forceinline int __popcnt(int in) { return _mm_popcnt_u32(in); ___ Bf-blender-cvs mailing list Bf-blender-cvs@blender.org https://lists.blender.org/mailman/listinfo/bf-blender-cvs
[Bf-blender-cvs] [72473a6] blender2.8: Fix compile errors with Alembic.
Commit: 72473a61b0a45cf31a42927e9b86d0f26a25590d Author: Kévin Dietrich Date: Sun Oct 2 20:52:25 2016 +0200 Branches: blender2.8 https://developer.blender.org/rB72473a61b0a45cf31a42927e9b86d0f26a25590d Fix compile errors with Alembic. === M source/blender/alembic/intern/abc_hair.cc M source/blender/alembic/intern/abc_points.cc === diff --git a/source/blender/alembic/intern/abc_hair.cc b/source/blender/alembic/intern/abc_hair.cc index 5a95944..f10cfba 100644 --- a/source/blender/alembic/intern/abc_hair.cc +++ b/source/blender/alembic/intern/abc_hair.cc @@ -58,8 +58,10 @@ AbcHairWriter::AbcHairWriter(Scene *scene, { m_psys = NULL; // = psys; +#if 0 OCurves curves(parent->alembicXform(), psys->name, m_time_sampling); m_schema = curves.getSchema(); +#endif } void AbcHairWriter::do_write() diff --git a/source/blender/alembic/intern/abc_points.cc b/source/blender/alembic/intern/abc_points.cc index 8b71123..bf9c483 100644 --- a/source/blender/alembic/intern/abc_points.cc +++ b/source/blender/alembic/intern/abc_points.cc @@ -66,8 +66,10 @@ AbcPointsWriter::AbcPointsWriter(Scene *scene, { m_psys = NULL; // = psys; +#if 0 OPoints points(parent->alembicXform(), psys->name, m_time_sampling); m_schema = points.getSchema(); +#endif } void AbcPointsWriter::do_write() ___ Bf-blender-cvs mailing list Bf-blender-cvs@blender.org https://lists.blender.org/mailman/listinfo/bf-blender-cvs
[Bf-blender-cvs] [c50ccc8] blender2.8: Merge branch 'master' into blender2.8
Commit: c50ccc847613bbe02bea64cee3f744b449da170c Author: Bastien Montagne Date: Sun Oct 2 18:53:01 2016 +0200 Branches: blender2.8 https://developer.blender.org/rBc50ccc847613bbe02bea64cee3f744b449da170c Merge branch 'master' into blender2.8 === === ___ Bf-blender-cvs mailing list Bf-blender-cvs@blender.org https://lists.blender.org/mailman/listinfo/bf-blender-cvs
[Bf-blender-cvs] [63f90d1] fracture_modifier: dynamic fracture, crash fix for autohide
Commit: 63f90d1099131cd9698ffd256e754bf4ac157774 Author: Martin Felke Date: Sun Oct 2 18:23:13 2016 +0200 Branches: fracture_modifier https://developer.blender.org/rB63f90d1099131cd9698ffd256e754bf4ac157774 dynamic fracture, crash fix for autohide === M source/blender/modifiers/intern/MOD_fracture.c === diff --git a/source/blender/modifiers/intern/MOD_fracture.c b/source/blender/modifiers/intern/MOD_fracture.c index 4bc8e7a..c6c3281 100644 --- a/source/blender/modifiers/intern/MOD_fracture.c +++ b/source/blender/modifiers/intern/MOD_fracture.c @@ -2945,6 +2945,10 @@ static void find_other_face(FractureModifierData *fmd, int i, BMesh* bm, Object* return; } + if (other >= bm->totface) { + return; + } + f1 = BM_face_at_index(bm, i); f2 = BM_face_at_index(bm, other); ___ Bf-blender-cvs mailing list Bf-blender-cvs@blender.org https://lists.blender.org/mailman/listinfo/bf-blender-cvs
[Bf-blender-cvs] [030bb2f] fracture_modifier: 8% faster fluidbaking with gcc and 30% faster with clang
Commit: 030bb2f7e0d3828c6efc8dfade51d3d077981436 Author: Jens Verwiebe Date: Sun Oct 2 17:58:40 2016 +0200 Branches: fracture_modifier https://developer.blender.org/rB030bb2f7e0d3828c6efc8dfade51d3d077981436 8% faster fluidbaking with gcc and 30% faster with clang === M intern/elbeem/intern/solver_class.h M intern/elbeem/intern/solver_main.cpp === diff --git a/intern/elbeem/intern/solver_class.h b/intern/elbeem/intern/solver_class.h index 593fea1..2b2e214 100644 --- a/intern/elbeem/intern/solver_class.h +++ b/intern/elbeem/intern/solver_class.h @@ -332,7 +332,7 @@ class LbmFsgrSolver : void debugMarkCellCall(int level, int vi,int vj,int vk); // loop over grid, stream update - void mainLoop(int lev); + void mainLoop(const int lev); // change time step size void adaptTimestep(); //! init mObjectSpeeds for current parametrization diff --git a/intern/elbeem/intern/solver_main.cpp b/intern/elbeem/intern/solver_main.cpp index 55a8d3e..34bd72e 100644 --- a/intern/elbeem/intern/solver_main.cpp +++ b/intern/elbeem/intern/solver_main.cpp @@ -355,7 +355,7 @@ void LbmFsgrSolver::fineAdvance() //! fine step function /*/ void -LbmFsgrSolver::mainLoop(int lev) +LbmFsgrSolver::mainLoop(const int lev) { // loops over _only inner_ cells --- @@ -376,13 +376,16 @@ LbmFsgrSolver::mainLoop(int lev) // main loop region const bool doReduce = true; const int gridLoopBound=1; + const int gDebugLevel = ::gDebugLevel; + int calcNumInvIfCells = 0; + LbmFloat calcInitialMass = 0; GRID_REGION_INIT(); #if PARALLEL==1 -#pragma omp parallel default(shared) num_threads(mNumOMPThreads) \ +#pragma omp parallel default(none) num_threads(mNumOMPThreads) \ reduction(+: \ calcCurrentMass,calcCurrentVolume, \ calcCellsFilled,calcCellsEmptied, \ - calcNumUsedCells ) + calcNumUsedCells,calcNumInvIfCells,calcInitialMass) GRID_REGION_START(); #else // PARALLEL==1 GRID_REGION_START(); @@ -468,7 +471,7 @@ LbmFsgrSolver::mainLoop(int lev) calcCurrentMass += iniRho; calcCurrentVolume += 1.0; calcNumUsedCells++; - mInitialMass += iniRho; + calcInitialMass += iniRho; // dont treat cell until next step continue; } @@ -479,7 +482,7 @@ LbmFsgrSolver::mainLoop(int lev) if(isnotValid) { // remove fluid cells, shouldnt be here anyway LbmFloat fluidRho = m[0]; FORDF1 { fluidRho += m[l]; } - mInitialMass -= fluidRho; + calcInitialMass -= fluidRho; const LbmFloat iniRho = 0.0; RAC(tcel, dMass) = RAC(tcel, dFfrac) = iniRho; RAC(tcel, dFlux) = FLUX_INIT; @@ -608,8 +611,8 @@ LbmFsgrSolver::mainLoop(int lev) // read distribution funtions of adjacent cells = stream step DEFAULT_STREAM; - if((nbored & CFFluid)==0) { newFlag |= CFNoNbFluid; mNumInvIfCells++; } - if((nbored & CFEmpty)==0) { newFlag |= CFNoNbEmpty; mNumInvIfCells++; } + if((nbored & CFFluid)==0) { newFlag |= CFNoNbFluid; calcNumInvIfCells++; } + if((nbored & CFEmpty)==0) { newFlag |= CFNoNbEmpty; calcNumInvIfCells++; } // calculate mass exchange for interface cells LbmFloat myfrac = RAC(ccel,dFfrac); @@ -809,7 +812,7 @@ LbmFsgrSolver::mainLoop(int lev) // fill if cells in inflow region if(myfrac<0.5) { mass += 0.25; - mInitialMass += 0.25; + calcInitialMass += 0.25; } const int OId = oldFlag>>24; const LbmVec vel(mObjectSpeeds[OId]); @@ -1013,7 +1016,7 @@ LbmFsgrSolver::mainLoop(int lev) if( (mass) <= (rho * ( -FSGR_MAGICNR)) ) { ifemptied = 1; } if(oldFlag & (CFMbndOutflow)) { - mInitialMass -= mass; + calcInitialMass -= mass; mass = myfrac = 0.0; iffilled = 0; ifemptied = 1; } @@
[Bf-blender-cvs] [ed54923] fracture_modifier: attempt to keep shards not affected by fracture kinematic if the object is kinematic / triggered
Commit: ed549237687c296f83b1aaf986c47bbe0051de39 Author: Martin Felke Date: Sun Oct 2 13:51:47 2016 +0200 Branches: fracture_modifier https://developer.blender.org/rBed549237687c296f83b1aaf986c47bbe0051de39 attempt to keep shards not affected by fracture kinematic if the object is kinematic / triggered === M source/blender/modifiers/intern/MOD_fracture.c === diff --git a/source/blender/modifiers/intern/MOD_fracture.c b/source/blender/modifiers/intern/MOD_fracture.c index c67df79..4bc8e7a 100644 --- a/source/blender/modifiers/intern/MOD_fracture.c +++ b/source/blender/modifiers/intern/MOD_fracture.c @@ -1197,7 +1197,7 @@ static FracPointCloud get_points_global(FractureModifierData *emd, Object *ob, D //sub_v3_v3(loc, cent); //sub_v3_v3(loc, s->centroid); - mul_v3_v3fl(size, s->impact_size, 0.75f); + mul_v3_v3fl(size, s->impact_size, 1.25f); sub_v3_v3v3(nmin, loc, size); add_v3_v3v3(nmax, loc, size); @@ -3366,14 +3366,15 @@ static void do_island_from_shard(FractureModifierData *fmd, Object *ob, Shard* s copy_v3_v3(mi->rigidbody->lin_vel, par->rigidbody->lin_vel); copy_v3_v3(mi->rigidbody->ang_vel, par->rigidbody->ang_vel); mi->rigidbody->flag = par->rigidbody->flag; + + //keep 1st level shards kinematic if parent is triggered + if (par->id == 0 && (par->rigidbody->flag & RBO_FLAG_USE_KINEMATIC_DEACTIVATION) && fmd->limit_impact) { + mi->rigidbody->flag |= RBO_FLAG_KINEMATIC; + mi->rigidbody->flag |= RBO_FLAG_NEEDS_VALIDATE; + } } mi->rigidbody->meshisland_index = mi->id; - - /*if (fmd->limit_impact) - { - set_rigidbody_type(fmd, s, mi); - }*/ } } ___ Bf-blender-cvs mailing list Bf-blender-cvs@blender.org https://lists.blender.org/mailman/listinfo/bf-blender-cvs
[Bf-blender-cvs] [c8b4ef2] asset-engine: Merge branch 'master' into asset-engine
Commit: c8b4ef2a59d4cb7ccc527df7142a68a74a244fd6 Author: Bastien Montagne Date: Fri Sep 30 16:00:02 2016 +0200 Branches: asset-engine https://developer.blender.org/rBc8b4ef2a59d4cb7ccc527df7142a68a74a244fd6 Merge branch 'master' into asset-engine === === ___ Bf-blender-cvs mailing list Bf-blender-cvs@blender.org https://lists.blender.org/mailman/listinfo/bf-blender-cvs