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-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-09Fix viewport operators with a view locked cameraCampbell Barton
Smooth-view wasn't working properly with a locked-camera this could animate from the wrong position if the camera wasn't in sync with the underlying viewport transformation. Resolve issues for: - VIEW3D_OT_view_orbit - VIEW3D_OT_view_roll - VIEW3D_OT_zoom_border
2022-08-09Fix missing undo steps for smooth-view operatorsCampbell Barton
Support pushing undo steps for smooth-view operations that manipulate the camera. Now V3D_SmoothParams take optional undo arguments. Used for: - VIEW3D_OT_view_center_cursor - VIEW3D_OT_view_center_pick - VIEW3D_OT_view_orbit - VIEW3D_OT_view_roll - VIEW3D_OT_zoom_border Follow up fix for T92099.
2022-08-06Fix T92099: No undo when moving viewport with camera locked to viewPratik Borhade
Supports undo step generation while navigating in locked camera view. NDOF & track-pad navigation are not included for now. Actions that uses smooth view can be supported but are outside the scope of this change, includes undo push for: - VIEW3D_OT_view_pan - VIEW3D_OT_dolly - VIEW3D_OT_fly - VIEW3D_OT_move - VIEW3D_OT_rotate - VIEW3D_OT_walk - VIEW3D_OT_zoom Reviewed by: campbellbarton Ref D15345
2022-03-11Cleanup: use M_PI_2 and M_PI_4 where possibleHallam Roberts
The constant M_PI_4 is added to GLSL to ensure it works there too. Differential Revision: https://developer.blender.org/D14288
2022-03-03i18n: Fix more potential contextual issues with "Back" UI label.Bastien Montagne
Add 'ID_ACTION' context to some animation curve interpolation enums. Related to T95506/T43295.
2022-03-01Cleanup: ED_view3d_win_to_delta & ED_view3d_calc_zfac usageCampbell Barton
- Rename ED_view3d_win_to_delta `mval` argument to `xy_delta` as it as it was misleading since this is an screen-space offset not a region relative cursor position (typical use of the name `mval`). Also rename the variable passed to this function which also used the term `mval` in many places. - Re-order the output argument of ED_view3d_win_to_delta last. use an r_ prefix for return arguments. - Document how the `zfac` argument is intended to be used. - Split ED_view3d_calc_zfac into two functions as the `r_flip` argument was only used in some special cases.
2022-02-18Cleanup: simplify viewmove_applyCampbell Barton
Check for a camera-view before checking if the view is locked to the cursor/object since the camera-view takes priority, it reads better to check that first. Also reuse the event offset variable.
2022-02-18Cleanup: move camera-view pan/zoom into utility functionsCampbell Barton
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-02-05Partially pevert "Fix error in b1b1a74af15b4eaa0757ad88acfbcac73b9a64fe"Germano Cavalcante
This partially reverts commit 81d2eda2bf8a0d73ed7bbf077c9fa4ffcf54aa6c. That commit introduced unrelated changes.
2022-02-05Fix error in b1b1a74af15b4eaa0757ad88acfbcac73b9a64feGermano Cavalcante
`op` --> `op->customdata`
2022-02-05Cleanup: set 'op->customdata' out of 'viewops_data_create'Germano Cavalcante
Setting the `op->customdata` out of `viewops_data_create` makes the usage of the function clearer thus making the code easier to read.
2022-02-05Cleanup: merge functions with similar usageGermano Cavalcante
`viewops_data_alloc` allocates and stores some pointers in `ViewOpsData` while `viewops_data_create` reuses already stored pointers and also stores others in `ViewOpsData`. The similar names and usages can confuse and in this case it also creates a dependency on the order in which these functions are called. Merging these functions simplifies usage and deduplicates code.
2022-02-04View3D: move some of the early returns from operators to the poll functionGermano Cavalcante
Some navigation operators check flags like `RV3D_LOCK_ROTATION` in the invoke function to see if the operation can be performed. As the comment indicates, these checks should be in the poll function. This avoids redundant initialization. Note that this brings functional changes as now operators with context `EXEC_DEFAULT` will also be affected by the flag. (There doesn't seem to be a problem with the current code). Differential Revision: https://developer.blender.org/D14005
2022-02-04Cleanup: spelling in commentsCampbell Barton
Also update viewport comments.
2022-02-03Cleanup: Rename 'TRACKBALLSIZE' to 'V3D_OP_TRACKBALLSIZE'Germano Cavalcante
2022-02-03Cleanup: Split View3D navigation code into specific compilation unitsGermano Cavalcante
The view3d_edit.c file is already getting big (5436 lines) and mixes operators of different uses. Splitting the code makes it easier to read and simplifies the implementation of new features. Differential Revision: https://developer.blender.org/D13976