Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2022-09-25Cleanup: remove redundant double parenthesisCampbell Barton
2022-09-14ViewLayer: Lazy sync of scene data.Monique Dewanchand
When a change happens which invalidates view layers the syncing will be postponed until the first usage. This will improve importing or adding many objects in a single operation/script. `BKE_view_layer_need_resync_tag` is used to tag the view layer to be out of sync. Before accessing `BKE_view_layer_active_base_get`, `BKE_view_layer_active_object_get`, `BKE_view_layer_active_collection` or `BKE_view_layer_object_bases` the caller should call `BKE_view_layer_synced_ensure`. Having two functions ensures that partial syncing could be added as smaller patches in the future. Tagging a view layer out of sync could be replaced with a partial sync. Eventually the number of full resyncs could be reduced. After all tagging has been replaced with partial syncs the ensure_sync could be phased out. This patch has been added to discuss the details and consequences of the current approach. For clarity the call to BKE_view_layer_ensure_sync is placed close to the getters. In the future this could be placed in more strategical places to reduce the number of calls or improve performance. Finding those strategical places isn't that clear. When multiple operations are grouped in a single script you might want to always check for resync. Some areas found that can be improved. This list isn't complete. These areas aren't addressed by this patch as these changes would be hard to detect to the reviewer. The idea is to add changes to these areas as a separate patch. It might be that the initial commit would reduce performance compared to master, but will be fixed by the additional patches. **Object duplication** During object duplication the syncing is temporarily disabled. With this patch this isn't useful as when disabled the view_layer is accessed to locate bases. This can be improved by first locating the source bases, then duplicate and sync and locate the new bases. Will be solved in a separate patch for clarity reasons ({D15886}). **Object add** `BKE_object_add` not only adds a new object, but also selects and activates the new base. This requires the view_layer to be resynced. Some callers reverse the selection and activation (See `get_new_constraint_target`). We should make the selection and activation optional. This would make it possible to add multiple objects without having to resync per object. **Postpone Activate Base** Setting the basact is done in many locations. They follow a rule as after an action find the base and set the basact. Finding the base could require a resync. The idea is to store in the view_layer the object which base will be set in the basact during the next sync, reducing the times resyncing needs to happen. Reviewed By: mont29 Maniphest Tasks: T73411 Differential Revision: https://developer.blender.org/D15885
2022-09-14Adding `const Scene*` parameter in many areas.Monique Dewanchand
Related to {D15885} that requires scene parameter to be added in many places. To speed up the review process the adding of the scene parameter was added in a separate patch. Reviewed By: mont29 Maniphest Tasks: T73411 Differential Revision: https://developer.blender.org/D15930
2022-09-08Cleanup: make meaning of base visibility flags more clearBrecht Van Lommel
Rename, add comments, and use flag in the depsgraph to ensure the logic matches. Differential Revision: https://developer.blender.org/D15883
2022-09-07Cleanup: Remove some references to proxies in comments/log messages.Bastien Montagne
Note that there are still some references to proxies left, in some cases it's unclear if the code related to the comment is even still relevant, this goes beyond mere cleanup to address then.
2022-09-01Cleanup: Remove/replace View Layer macros.Monique Dewanchand
This patch is a cleanup required before refactoring the view layer syncing process {T73411}. * Remove FIRSTBASE. * Remove LASTBASE. * Remove BASACT. * Remove OBEDIT_FROM_WORKSPACE. * Replace OBACT with BKE_view_layer_active_object. * Replace OBEDIT_FROM_VIEW_LAYER with BKE_view_layer_edit_object. Reviewed By: mont29 Maniphest Tasks: T73411 Differential Revision: https://developer.blender.org/D15799
2022-08-17Cleanup: Move view layer array utils from macros to functionsHans Goudey
These macros don't compile in C++ because of taking an address of a temporary and use of designated initializers. Besides that, using functions can improve debugging and type safety. Differentil Revision: https://developer.blender.org/D15693
2022-07-19Fix error printed in console when running Shade Flat operatorBrecht Van Lommel
Only the Shade Smooth operator has autosmooth settings.
2022-06-27Cleanup: spelling in commentsCampbell Barton
2022-05-24Merge remote-tracking branch 'origin/blender-v3.2-release'Sybren A. Stüvel
2022-05-24Redraw Motion Paths panel after creating motion pathSybren A. Stüvel
Add notifier such that the Motion Paths panel in the Object Properties tab gets redrawn, after using the Create Motion Path button. The reason it didn't update was that the button actually triggers a popup, and then executes in the context of that popup. It now actually emits a `ND_DRAW_ANIMVIZ` notifier, and ensures that the panel redraws on that.
2022-05-19Merge branch 'blender-v3.2-release'Bastien Montagne
2022-05-19Fix (studio-reported) more possibilities to edit content of linked/override ↵Bastien Montagne
collections. Existing code for the `Move` operator, and some `Collections` panel operations (Object properties) was absolutely not override-safe, and sometimes not even linked-data safe.
2022-05-11Mesh: Add Auto Smooth option to Shade Smooth operatorPablo Vazquez
Add a property to the **Shade Smooth** operator to quickly enable the Mesh `use_auto_smooth` option. The `Angle` property is exposed in the **Adjust Last Operation** panel to make it easy to tweak on multiple objects without having to go to the Properties editor. The operator is exposed in the `Object` menu and `Object Context Menu`. === Demo === {F13066173, size=full} Regarding the implementation, there are multiple ways to go about this (like making a whole new operator altogether), but I think a property is the cleanest/simplest. I imagine there are simpler ways to achieve this without duplicating the `use_auto_smooth` property in the operator itself (getting it from the Mesh props?), but I couldn't find other operators doing something similar. Reviewed By: #modeling, mont29 Differential Revision: https://developer.blender.org/D14894
2022-04-28Cleanup: unbalanced doxy sections, add some sectionsCampbell Barton
2022-04-26Animation: Sensible frame range for motion pathsColin Marmond
Motion paths can now be initialised to more sensible frame ranges, rather than simply 1-250: - Scene Frame Range - Selected Keyframes - All Keyframes Reviewed By: sybren, looch, dfelinto, pablico Maniphest Tasks: T93047 Differential Revision: https://developer.blender.org/D13687
2022-04-13Fix T97207: Move to Collections Menu Grayed out when in Local ViewDalai Felinto
This behaviour was introduced in a687d98e6782 to bring the old obscure "M" operator to remove objects from the local view. In order to avoid the keymap clash with the Move to Collection operator, the Move to Collection was artificially restricted to work in local view. In retrospect, the "Remove from Local View" operator is in the menu anyways, so it didn't even need to have a shortcut (back in 2.79 the operator was not in a menu). The changes introduced here are: * No shortcut for "Remove from Local View" * No more restrictions to "Move/Link to Collection" from local view. Thanks for Philipp Oeser for digging the old commit that introduced this and for the rationale on the changes.
2022-03-29LibOverride: Massive edits to 'editable' IDs checks in editors code.Bastien Montagne
Add new `BKE_id_is_editable` helper in `BKE_lib_id.h`, that supercedes previous check (simple `ID_IS_LINKED()` macro) for many editing cases. This allows to also take into account 'system override' (aka non-editable override) case. Ref: {T95707}.
2022-03-15Cleanup: correct unbalanced doxy sectionsCampbell Barton
2022-03-14Revert "Animation: Sensible frame range for motion paths"Sybren A. Stüvel
This reverts commit 1558b270e9fcbc2e23fa248b0e7e770dddae155c. An earlier commit (rB101fadcf6b93c) introduced some new functionality, which was overlooked in reviewing this commit & got broken. Will re-commit after the issue has been fixed. Ref: D13687
2022-03-14WM: avoid hard coded modifier key checks in object.hide_collectionCampbell Barton
These checks aren't always valid when there are multiple events in the queue.
2022-03-01Cleanup: use doxygen comments, correct spellingCampbell Barton
Also move eDupli_ID_Flags doc-string to it's declaration.
2022-02-28Animation: Sensible frame range for motion pathsColin Marmont
Motion paths can now be initialised to more sensible frame ranges, rather than simply 1-250: - Scene Frame Range - Selected Keyframes - All Keyframes The Motion Paths operators are now also added to the Object context menu and the Dopesheet context menu. The scene range operator was removed, because the operators now automatically find the range when baking the motion paths. The clear operator now appears separated in "Selected Only" and "All", because it was not clear for the user what the button was doing. Reviewed By: sybren, looch Maniphest Tasks: T93047 Differential Revision: https://developer.blender.org/D13687
2022-02-25Cleanup: use flags for wmEvent modifier keysCampbell Barton
Using flags makes checking multiple modifiers at once more convenient and avoids macros/functions such as IS_EVENT_MOD & WM_event_modifier_flag which have been removed. It also simplifies checking if modifier keys have changed.
2022-02-23Cleanup: Remove repeated word in commentsCampbell Barton
2022-02-18Cleanup: Rename original curve object type enumHans Goudey
This commit renames enums related the "Curve" object type and ID type to add `_LEGACY` to the end. The idea is to make our aspirations clearer in the code and to avoid ambiguities between `CURVE` and `CURVES`. Ref T95355 To summarize for the record, the plans are: - In the short/medium term, replace the `Curve` object data type with `Curves` - In the longer term (no immediate plans), use a proper data block for 3D text and surfaces. Differential Revision: https://developer.blender.org/D14114
2022-02-18Curves: add initial edit mode supportKévin Dietrich
This adds initial support for edit mode for the experimental new curves object. For now we can only toggle in and out of the mode, no real interraction is possible. This patch also adds empty menus in edit mode. Those were added mainly to quiet warnings as the menus are programmatically added to the edit mode based on the object type and context. Ref T95769 Reviewed By: JacquesLucke, HooglyBoogly Maniphest Tasks: T95769 Differential Revision: https://developer.blender.org/D14136
2022-02-11File headers: SPDX License migrationCampbell Barton
Use a shorter/simpler license convention, stops the header taking so much space. Follow the SPDX license specification: https://spdx.org/licenses - C/C++/objc/objc++ - Python - Shell Scripts - CMake, GNUmakefile While most of the source tree has been included - `./extern/` was left out. - `./intern/cycles` & `./intern/atomic` are also excluded because they use different header conventions. doc/license/SPDX-license-identifiers.txt has been added to list SPDX all used identifiers. See P2788 for the script that automated these edits. Reviewed By: brecht, mont29, sergey Ref D14069
2022-01-27Fix T93766: 'New Collection' entry in 'Move to collection' menu is not ↵Yevgeny Makarov
translated. Also fixes similar issues regarding some liboverride menu entries. Reviewed By: mont29 Maniphest Tasks: T93766 Differential Revision: https://developer.blender.org/D13513
2021-12-17Cleanup: use more common naming suffix for item callbacksCampbell Barton
2021-12-08Cleanup: move public doc-strings into headers for 'editors'Campbell Barton
Ref T92709
2021-10-18Animation: Motion Paths Refresh AllJan-Willem van Dronkelaar
Adds a button, Update All Paths, to the Motion Paths property tabs and will always show. The operator goes through all visible objects and updates their motion paths. The current implementation has a subtle functional change. Calculating or updating motion paths for armature objects (through the Object tab, not Armature tab) now also updates the paths for its bones. We could preserve the old behavior but it doesn't seem necessary. It seems more likely that the animator wants to update both anyways. Reviewed by: sybren Maniphest Tasks: T83068 Differential Revision: https://developer.blender.org/D11667
2021-10-03Cleanup: spelling in stringsCampbell Barton
2021-08-04Cleanup: rename restrict to hide/visibility in Object, Collection, MaskLayerBrecht Van Lommel
This makes the internal naming consistent with the public API. And also gives us a visibility_flag rather than restrictflag that can be extended with more flags.
2021-07-13Cleanup: minor changes to edit-mesh API callsCampbell Barton
Rename: - EDBM_mesh_free -> EDBM_mesh_free_data BKE_editmesh_free -> BKE_editmesh_free_data Since this doesn't free the edit-mesh pointer. - BKE_editmesh_free_derivedmesh -> BKE_editmesh_free_derived_caches Since this no longer uses derived-mesh, match naming for the related object function BKE_object_free_derived_caches. Also remove `do_tessellate` argument from BKE_editmesh_create, since the caller can explicitly do this if it's needed, with the advantage that it can be combined with normal calculation which is faster on high-poly meshes.
2021-07-03Cleanup: consistent use of tags: NOTE/TODO/FIXME/XXXCampbell Barton
Also use doxy style function reference `#` prefix chars when referencing identifiers.
2021-06-30Cleanup: use const arguments for accessor functionsCampbell Barton
2021-06-26Cleanup: full sentences in comments, improve comment formattingCampbell Barton
2021-06-24Cleanup: comment blocks, trailing space in commentsCampbell Barton
2021-06-14BMesh: support face-normal calculation in normal & looptri functionsCampbell Barton
Support calculating face normals when tessellating. When this is done before updating vertex normals it gives ~20% performance improvement. Now vertex normal calculation only needs to perform a single pass on the mesh vertices when called after tessellation. Extended versions of normal & looptri update functions have been added: - BM_mesh_calc_tessellation_ex - BM_mesh_normals_update_ex Most callers don't need to be aware of this detail by using: - BKE_editmesh_looptri_and_normals_calc - BKE_editmesh_looptri_and_normals_calc_with_partial - EDBM_update also takes advantage of this, where calling EDBM_update with calc_looptri & calc_normals enabled uses the faster normal updating logic.
2021-05-07Cleanup: de-duplicate checks in object-mode item callbackCampbell Barton
2021-05-07Fix inconsistency setting particle edit-modeCampbell Barton
The check to include particle edit mode in the object-mode drop-down didn't match the poll function to edit particle edit mode. Share the check between both functions.
2021-04-28Add NULL check to Object.pose from 6eb2f71875c69f5f6073fed2d285fe8ef662ba03Campbell Barton
2021-04-28Fix T87631: Crash undoing edit-mode bone duplicationCampbell Barton
Edit mode could leave pose channels in the object that didn't have an associated bone. These are now cleared when freeing edit-mode data.
2021-04-08Object: add ED_object_editmode_free_ex utility functionCampbell Barton
2021-04-08Cleanup: rename variable (using underscore separator)Campbell Barton
Prepare for adding another variable that reads poorly without a separator.
2021-04-08Revert "Fix entering edit-mode when object mode and edit-data don't match"Campbell Barton
Before this change, object-data could only have one of the objects referencing it in edit-mode. Reverting since multiple meshes in edit-mode (for the same object data) isn't thread-safe as the evaluated edit-meshes are created in the original edit-mesh, causing a crash updating the depsgraph for linked duplicates, see: T86767. While we could support this case, it's a bigger project without significant benefits, so reinstate the limitation of only allowing a single object to be in edit-mode for each object data. This adds back the error from T85974 which caused an assertion but didn't crash in release builds. This reverts commit 2b60d7d09c51716e8d98834061c1a61ed6b96cf5.
2021-03-05Cleanup: rename evt to eventCampbell Barton
Following naming convention of most operators.
2021-02-25Fix entering edit-mode when object mode and edit-data don't matchCampbell Barton
In rare cases, it's possible for an object to have edit-mode data without it's Object.mode set to edit-mode. This could happen with undo, part of fix for: T85974.
2021-01-22Fix outliner and animation editors exiting multi-object edit-modeCampbell Barton
When multiple objects were in edit-mode, only the active object would exit edit-mode.