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
2021-12-25Cleanup: Do not use magic numberAaron Carlisle
2021-12-25Cleanup: Use array for BKE cursor functionsAaron Carlisle
Differential Revision: https://developer.blender.org/D12962
2021-12-25Cleanup: Define node tree icon in register functionAaron Carlisle
I suppose this was done to reduce then dependencies. However, most nodes already depend on UI code so this isnt too useful.
2021-12-25Cleanup: use new c++ guarded allocator APIAaron Carlisle
API added in rBa3ad5abf2fe85d623f9e78fefc34e27bdc14632e
2021-12-24Cleanup: Use vector instead of linked listHans Goudey
2021-12-24Fix T94322: add missing updates after recent refactorJacques Lucke
This was a regression in rB7e712b2d6a0d257d272ed35622b41d06274af8df.
2021-12-24Cleanup: remove unused button functionSybren A. Stüvel
rB05f900e3466b45a19e13bea6dd641e4f7b8b46e9 removed unused button functions, but since that commit the `uiDefIconTextButBit()` static function sits unused as well. It's now been removed.
2021-12-24Fix T94357: Node Ungroup operator copies current node treeHans Goudey
This was a mistake in rBfdc4a1a590d8befb1ff which copied the parent node tree into itself rather than accessing the node group's nodes.
2021-12-23Cleanup: Remove unused UI button definition functionsHans Goudey
These were part of the older buttons API that shouldn't be used in more places at this point. Most layouts should be built with the regular layout system API and RNA properties. This sort of button can still be created though, since these were just shortcuts anyway.
2021-12-23Cache File: use panels to organize UIKévin Dietrich
This adds interface panels to organize the Cache File UI parameters for modifiers and constraints into related components: velocity, time, and render procedural. Properties relating to the three aforementioned components are separated from `uiTemplateCacheFile` into their own functions (e.g. `uiTemplateCacheFileVelocity` for the velocity one), which are in turn called from the specific panel creation routines of the modifiers and constraints (for constraints, the functions are exposed to the RNA). `uiTemplateCacheFile` now only shows the properties for the file path, and in the case of constraints, the scale property. The properties that are only defined per modifier (like the velocity scale), are shown in the proper modifier layout panel if applicable. Reviewed By: sybren Differential Revision: https://developer.blender.org/D13652
2021-12-23Graph Slider Ops: Show error when no valid keys are foundChristoph Lendenfeld
When using graph slider operators like D9374 it showed a warning when no keys were selected. However since that stops the modal operation it should be an Error. Also the message was misleading since it could error for different reasons than stated. Reviewed by: Sybren A. Stüvel Differential Revision: https://developer.blender.org/D13655 Ref: D13655
2021-12-23Cleanup: remove BKE_animdata_driver_path_hackSybren A. Stüvel
The `BKE_animdata_driver_path_hack()` function has had almost no effect since rB51b796ff1528, and basically boils down to: ``` return base_path ? base_path : RNA_path_from_ID_to_property(ptr, prop); ``` Since `base_path` was `NULL` in the majority of cases, it's just been replaced by a direct call to `RNA_path_from_ID_to_property()`. The conditional now just appears in one remaining case. This relates to T91387. Reviewed By: mont29 Differential Revision: https://developer.blender.org/D13646
2021-12-23LibOverride: protect better against using on complex inter-dependency cases.Bastien Montagne
Do not allow 3DView operator to run on the liboverride of an instantiating Empty object. And tweak behavior in the Outliner operations too. Related to T94226. Note that this remains fairly exotic, bad idea not recommended cases, such complex inter-dependencies between different libraries inside a same liboverride hierarchy is just not possible to handle properly.
2021-12-22Fix: Missing update when toggling node muteHans Goudey
Toggling node mute doesn't cause node trees to reevaluate after rB7e712b2d6a0d257. Toggling a link mute still works though. To fix this, the operator tags the node and node with a new update tag function (that uses an existing tag internally). Differential Revision: https://developer.blender.org/D13653
2021-12-22Fix T93408: Snap performance regression at high poll rateGermano Cavalcante
Caused by {rBfba9cd019f21f29bad1a6f3713370c5172dbc97f}. The snap timer was accidentally modified and damaged.
2021-12-22Nodes: Remove unnecessary node tree socket taggingHans Goudey
`SOCK_IN_USE` is now set in `update_socket_used_tags` in `node_tree_update.cc` when a node tree is changed. It doesn't need to run every single redraw. Removing this results in a small speedup of 0.4 ms when drawing a tree with about 4000 nodes (from about 70 ms total). Differential Revision: https://developer.blender.org/D13645
2021-12-22Cleanup: Remove debug print.Bastien Montagne
2021-12-22Fix T93999: GPencil Box tool allows decreasing subdiv, but not increaseAntonio Vazquez
The problem was the number of points for each edge of the box was wrong and the wheelmouse effect was anulated. Also fixed the value displayed in the status bar to keep consistency with subdivision value. Reviewed By: lichtwerk Maniphest Tasks: T93999 Differential Revision: https://developer.blender.org/D1363
2021-12-22Nodes: Refactor to remove node and socket "new" pointersHans Goudey
These pointers point to the new nodes when duplicating, and their even used to point to "original" nodes for "localized" trees. They're just a bad design decision that make code confusing and buggy. Instead, node copy functions now optionally add to a map of old to new socket pointers. The case where the compositor abused these pointers as "original" pointers are handled by looking up the string node names. Differential Revision: https://developer.blender.org/D13518
2021-12-21Cleanup: Clang tidy, restore alphabetical sortingHans Goudey
2021-12-21Fix T94191: correct (time) translation headers not showing DeltaXGermano Cavalcante
Caused by {rBb0d9e6797fb8} For the header (both Graph Editor case in general `headerTranslation` as well as `headerTimeTranslate`) we are interested in deltas values (not absolute values). Since culprit commit, `snapFrameTransform` was not working with deltas anymore, but we have to compensate for this. For the Graph Editor, this only worked "by accident" in rB7192e57d63a5, since `ival` is still zero at this point. So now, reacquire the delta right after the snap operation. Also use a more appropriate center value in the translate operator. Maniphest Tasks: T94191 Differential Revision: https://developer.blender.org/D13641
2021-12-21Cleanup: use BKE_pose_is_layer_visible in more placesPhilipp Oeser
This was added in rBd13970de8627, now use in more places.
2021-12-21Nodes: refactor node tree update handlingJacques Lucke
Goals of this refactor: * More unified approach to updating everything that needs to be updated after a change in a node tree. * The updates should happen in the correct order and quadratic or worse algorithms should be avoided. * Improve detection of changes to the output to avoid tagging the depsgraph when it's not necessary. * Move towards a more declarative style of defining nodes by having a more centralized update procedure. The refactor consists of two main parts: * Node tree tagging and update refactor. * Generally, when changes are done to a node tree, it is tagged dirty until a global update function is called that updates everything in the correct order. * The tagging is more fine-grained compared to before, to allow for more precise depsgraph update tagging. * Depsgraph changes. * The shading specific depsgraph node for node trees as been removed. * Instead, there is a new `NTREE_OUTPUT` depsgrap node, which is only tagged when the output of the node tree changed (e.g. the Group Output or Material Output node). * The copy-on-write relation from node trees to the data block they are embedded in is now non-flushing. This avoids e.g. triggering a material update after the shader node tree changed in unrelated ways. Instead the material has a flushing relation to the new `NTREE_OUTPUT` node now. * The depsgraph no longer reports data block changes through to cycles through `Depsgraph.updates` when only the node tree changed in ways that do not affect the output. Avoiding unnecessary updates seems to work well for geometry nodes and cycles. The situation is a bit worse when there are drivers on the node tree, but that could potentially be improved separately in the future. Avoiding updates in eevee and the compositor is more tricky, but also less urgent. * Eevee updates are triggered by calling `DRW_notify_view_update` in `ED_render_view3d_update` indirectly from `DEG_editors_update`. * Compositor updates are triggered by `ED_node_composite_job` in `node_area_refresh`. This is triggered by calling `ED_area_tag_refresh` in `node_area_listener`. Removing updates always has the risk of breaking some dependency that no one was aware of. It's not unlikely that this will happen here as well. Adding back missing updates should be quite a bit easier than getting rid of unnecessary updates though. Differential Revision: https://developer.blender.org/D13246
2021-12-21Cleanup: clang formatPhilipp Oeser
Missed in rB7c9e4099854a, sorry.
2021-12-21Fix T92930: Outliner "Show Active" bone fails in certain situationsPhilipp Oeser
Outliner would frame the armature object instead of the bone if the bone was on a hidden armature layer. Similar to issues reported in e.g. T58068 and T80464, this is due to the fact that `BKE_pose_channel_active` always checks for the armature layer (and returns NULL if a bone is not on a visible armature layer). Now propose to make this layer check **optional** (and e.g. from the Outliner be more permissive). This also introduces `BKE_pose_channel_active_if_layer_visible` which just wraps `BKE_pose_channel_active` with the check being ON. Maniphest Tasks: T92930 Differential Revision: https://developer.blender.org/D13154
2021-12-20Run clang-formatJoseph Eagar
2021-12-20Sculpt: split sculpt.c into three filesJoseph Eagar
Sculpt.c is now three files: * Sculpt.c: main API methods and the brush stroke operator * Sculpt_brushes.c: Code for individual brushes. * Sculpt_ops.c: Sculpt operators other than the brush stroke operator. TODO: split brush stroke operator into a new file (sculpt_stroke.c?).
2021-12-20Fix T93570: VSE image transforms in preview dont autokeyPhilipp Oeser
This was basically not implemented, do this via `ED_autokeyframe_property` in a new dedicated function in special_aftertrans_update. Maniphest Tasks: T93570 Differential Revision: https://developer.blender.org/D13608
2021-12-20VSE: Clamp sound strip when adding movie stripRichard Antalik
When adding multiple movie strips and sound stream is longer than video, this results in gaps between video strips, which is undesirable.
2021-12-18Fix T94173: Missing update for frame node sizeHans Goudey
Before d56bbfea7b420d7, nodes were updated (size calculated and buttons added) in reverse order. Instead, now calculate the size of frame nodes after all other nodes. Separating the drawing further may be a good step to removing the O(n^2) loop later on.
2021-12-18Cleanup: compiler warnings with clangBrecht Van Lommel
Includes use of memcpy to avoid warnings about deprecated members.
2021-12-18Function to return a list of keyframe segmentsChristoph Lendenfeld
Add a function that returns a list of keyframe segments A segment being a continuous selection of keyframes Will be used by future operators in the graph editor Reviewed by: Sybren A. Stüvel Differential Revision: https://developer.blender.org/D13531 Ref: D13531
2021-12-18Fix T94184: Outliner: Collection dragging tooltip is not updatingGermano Cavalcante
In the context of the dragdrop tooltip, the event referenced to the window is out of date and contains invalid `mval` values. Avoid using `win->eventstate` as much as possible.
2021-12-17Cleanup: use new c++ guarded allocator api in some filesJacques Lucke
2021-12-17Allocator: simplify using guarded allocator in C++ codeJacques Lucke
Using the `MEM_*` API from C++ code was a bit annoying: * When converting C to C++ code, one often has to add a type cast on returned `void *`. That leads to having the same type name three times in the same line. This patch reduces the amount to two and removes the `sizeof(...)` from the line. * The existing alternative of using `OBJECT_GUARDED_NEW` looks a out of place compared to other allocation methods. Sometimes `MEM_CXX_CLASS_ALLOC_FUNCS` can be used when structs are defined in C++ code. It doesn't look great but it's definitely better. The downside is that it makes the name of the allocation less useful. That's because the same name is used for all allocations of a type, independend of where it is allocated. This patch introduces three new functions: `MEM_new`, `MEM_cnew` and `MEM_delete`. These cover the majority of use cases (array allocation is not covered). The `OBJECT_GUARDED_*` macros are removed because they are not needed anymore. Differential Revision: https://developer.blender.org/D13502
2021-12-17UI: make Remap User dialog in outliner widerPhil Stopford
The previous size was too small for common object names. Differential Revision: https://developer.blender.org/D13604
2021-12-17UI: Fix node socket alignment in some casesAlessio Monti di Sopra
The patch fixes some misalignments in the nodes' sockets/options recently introduced in 26d2caee3ba0, while maintaining the original fix for T92268. The original fix made the top padding always of the same size; while that works when the first row of the other node is `Socket | Socket`, it doesn't for other more common cases, `like Socket | Node Option`, where the text results misaligned. Differential Revision: https://developer.blender.org/D13451
2021-12-17Fix T94137: GPencil: Eraser does not erase first pointPhilipp Oeser
The eraser checks the current, previous and next point (and sets pc0, pc1 & pc2 corresponding to that for futher occlusion/brush/clipping checks). For the very first point, it sets pc0 to pc1 [which makes sense, there is no previous point, so we should assume the previous segment is "visible" as soon as the first point is], but does so *before* pc1 is even calculated. This makes following occlusion/brush/clipping checks work with zero values [which leads to no earsing in most cases]. Now *first* calculate pc1, *then* set pc0 to pc1. Maniphest Tasks: T94137 Differential Revision: https://developer.blender.org/D13593
2021-12-17Outliner ID Remap Users: hide ID type from the UIPhilipp Oeser
The correct type should be set by invoke already, changing it to a non- matching type (e.g. trying to remap Mesh users with a Camera block) does not really make sense afaict, reason being that we would be presented with the "Invalid old/new ID pair" message in such case anyways (code checks GS(old_id->name) == GS(new_id->name)). This alone wouldnt be a pressing issue, but since doing this with an object ID type crashes atm., it seems to make sense to clean this up now (of course the crash should be looked into, but this is for a separate patch -- if that is solved, we could also think about adding the "Remap Users" entry back in the context menu for objects as well [which was removed in rB17bd5c9d4b1e for some reason]). Part of T93799. Differential Revision: https://developer.blender.org/D13512
2021-12-17UI: move "undo history" from a custom popup to a menu typeCampbell Barton
This lets the undo history expand as a regular sub-menu instead of being a popup. Also disable the active undo step menu item as this is a no-op.
2021-12-17Cleanup: spelling in commentsCampbell Barton
2021-12-17Cleanup: use more common naming suffix for item callbacksCampbell Barton
2021-12-16Fix T94109: 3d cursor crash when using shortcutGermano Cavalcante
Operator was erroneously starting edge_slide operation. Revert part of the changes in rB3fab16fe8eb4 as obedit_type was being confused with object_mode.
2021-12-16Fix T94115: Selecting current action in undo history undoes allCampbell Barton
When selecting the current undo step there is no need to do anything. Fix and minor refactor to de-duplicate refreshing after running undo/redo & undo history.
2021-12-16UI: support Copy To Selected for id-properties [GN modifier properties]Philipp Oeser
Both {key Alt} editing behavior as well as `Copy To Selected` were not working on geometry nodes modifiers (even if these matched exactly - having the same nodegroup - on multiple objects) Reason is that code checks pointer equality on the discovered properties [geometry nodes modifier properties are stored as ID properties], but these are not the same across objects (since these are fetched from NodesModifierSettings - which are different on different objects). note: if general custom properties are "API defined" on existing classes, this was working, we are getting the exact property for different IDs in this case Now be more permissive with ID properties not defined on classes in general and dont check pointer equality for them. For ID properties on specific IDs (not the ones defined on classes) this //might// be undesired (havent spotted issues though, even if equally named ID properies with different types existed -- this then simply does nothing). For geometry nodes modifiers, new code also checks if the nodegroups are the same [since generic naming "Input_XXX" is shared for all modifiers -- and starting to copy over things to unrelated modifiers is not desired here]. Fixes T93983. Maniphest Tasks: T93983 Differential Revision: https://developer.blender.org/D13573
2021-12-16UI: deduplicate code for Copy To Selected and Alt-button tweakingPhilipp Oeser
This resolves an old TODO to deduplicate code in copy_to_selected_button & ui_selectcontext_begin. This is also in hindsight of adding id-property support [incl. Geometry Nodes modifier properties] for this in the next commit. No behavior change expected here. ref T93983 & D13573
2021-12-16Nodes: Begin splitting composite node buttons into individual filesAaron Carlisle
Currently, most node buttons are defined in `drawnode.cc` however, this is inconvenient because it requires editing many files when adding new nodes. The goal is to minimize the number of files needed to add or update a node. This commit moves most of the node layout functions for composite nodes into their respected `source/blender/nodes/composite/nodes` file. In the future, these functions will be simplified to `node_layout` once files have their own namespace. See {D13466} for more information. Reviewed By: HooglyBoogly Differential Revision: https://developer.blender.org/D13523
2021-12-16Remove G.relbase_validCampbell Barton
In almost all cases there is no difference between `G.relbase_valid` and checking `G.main->filepath` isn't an empty string. In many places a non-empty string is already being used instead of `G.relbase_valid`. The only situation where this was needed was when saving from `wm_file_write` where they temporarily became out of sync. This has been replaced by adding a new member to `BlendFileWriteParams` to account for saving an unsaved file for the first time. Reviewed By: brecht Ref D13564
2021-12-16Cleanup: spellingCampbell Barton
2021-12-16Cleanup: unused variable warningCampbell Barton