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
path: root/source
AgeCommit message (Collapse)Author
2020-12-23Fix T84013: Crash closing maximized File Browser opened from PreferencesJulian Eisel
After 1e799dd26ec1, the logic to recognize a temporary File Browser window didn't work correctly anymore. It would recognize a maximized File Browser inside a temporary window as a temporary File Browser window, and attempt to close this (rather than returning to the previous layout). The logic there was pretty weak, and still is I think. A more stable solution would need bigger refactoring. With this, it's also not possible to maximize or fullscreen an area within a temporary window (Preferences, File Browser, render window) anymore. Think that won't make a noticable difference, since you couldn't open multiple areas there anyway, and the area seems to be maximized already. Cleaned up the code a bit to not become more confusing with the changes.
2020-12-23Sculpt Undo: Fix broken memory size and potential use of uninitialized ↵Bastien Montagne
variables. That code looked really like a joke tbh... Random reported memory usage is not really that important, but the uninitialized items counts was potentially fairly severe.
2020-12-23Cleanup: Reduce Variable scope clip_buttonsAaron Carlisle
2020-12-22Cleanup: Use true and false for booleansHans Goudey
2020-12-22WM: minor optimization for when there is a large number of notifiersBrecht Van Lommel
Don't add the same stats refresh notifiers multiple times, it can be slow to search the full list of notifiers for duplicates when there are many. Fundamentally the time complexity in searching for duplicates is still bad. Inspired by D9901 from Erik Abrahamsson
2020-12-22UI: keep image open button always visible in image editor datablock selectorBrecht Van Lommel
Does not need to be hidden in the menu.
2020-12-22Cleanup: Reduce variable scope in object.cHans Goudey
2020-12-22RNA: make `bpy.data.orphans_purge()` return number of deleted datablocksSybren A. Stüvel
Sometimes multiple calls to `bpy.data.orphans_purge()` are needed to delete all orphans, because a call can turn previously-used datablocks into orphans. Returning the number of deleted datablocks makes it possible to keep looping until nothing can be deleted any more. This patch keeps track of deletions in `id_delete()` so that it can be returned up the call stack. Reviewed By: mont29 Differential Revision: https://developer.blender.org/D9918
2020-12-22VSE: handle IO errors when reading disk cache header and versionSybren A. Stüvel
Respond to return values of `fscanf()` and `fread()` to detect and handle I/O errors. Not only is error handling a good idea, this also prevents warnings from GCC that `fread()` and `fscanf()` return values are ignored. Reviewed By: ISS Differential Revision: https://developer.blender.org/D9915
2020-12-22VSE: Fix animation versioning for bezier F-curvesRichard Antalik
`seq_convert_transform_animation()` converted only keyframed value, but when bezier interpolation is used, posotion of handles was unchanged. This caused significant difference in animation. I have checked only linear interpolation when testing versioning originally.
2020-12-22UI: Properties editor popover and outliner syncNathan Craddock
This adds a popover to the properties editor. Currently the only setting is for controlling outliner to properties syncing. Because we cannot define a perfect heuristic to determine when properties editors should change tabs based on outliner icon selection, we need an option to enable or disable this behavior per properties editor. There are 3 options for controlling the syncing. Auto uses the heuristic to only allow tab switching when a properties editor and outliner share a border. On and off enable and disable syncing respectively. Differential Revision: https://developer.blender.org/D9758
2020-12-21Nla Refactor: Better blend function parm namingWayde Moss
**Renames parms**: | **old name** | **new name** | old_value | lower_value | target_value | blended_value | value | strip_value | inf | influence **Reason**: {D8296} allows full nla stack evaluation with proper keyframing support. These names should make it more intuitive how all the data gets processed and inverted. Note, that I do use the term "strip_value" instead of something like "fcurve_value" of the tweak strip. Technically, "strip_value" is closer to what is solved for. For example, if a noise fmodifier was active for the fcurve, then the remapping would appear to be wrong. In the future, further solving can be done afterward, outside of the nla system, to remove the effects of fmodifiers. **Renames functions**: | nla_invert_blend_value | nla_blend_get_inverted_strip_value | nla_invert_combine_value | nla_combine_get_inverted_strip_value **Reason**: D8296 adds get_inverted_lower_value() variants, so "invert" alone is too vague. **Renames NlaKeyframingContext member**: | nla_channels | lower_eval_data **Reason**: D8296 evaluates the upper stack. This name makes it more obvious what data is stored there. No functional changes (relative to the dependency below) Split from {D9247} Depends on {D9694} since the code was so close to eachother. Reviewed By: sybren Differential Revision: https://developer.blender.org/D9695
2020-12-21Fix/workaround geometry nodes not working with deformation motion blurBrecht Van Lommel
Always assume geometry nodes produce potentially animated meshes or point clouds. In general it is hard to check if geometry nodes are animated, and for modifiers this was already weak. The better solution will likely involving checking which geometry was modified by the depsgraph on frame change, to replace the current mechanism of manually checking for certain types of modifiers and animation.
2020-12-21Weight Paint: fix Multi-Paint weight display after rB5502517c3.Alexander Gavrilov
Weight Paint Multi-Paint definitely depends on the weight specific flag, and vertex group locking also involves group name symmetry via BKE_object_defgroup_mirror_selection. These two are also features implemented by me so I feel confident. The rest of object_vgroup.c possibly should be changed too, but that requires more consideration than these obvious cases.
2020-12-21Cleanup: Reduce indentationHans Goudey
2020-12-21UI: Use better icon for identifying assetsJulian Eisel
Use the `ASSET_MANAGER` icon which is more appropriate than the current one which was just an unused icon that seemed sorta fitting, but was only meant to be temporary. The `ASSET_MANAGER` icon is already used for the Asset Browser, so it's being reused which we normally avoid. So we may still want to create a dedicated one, maybe a variation of this one.
2020-12-21Fix T84010: Missing scale animation versioning codeRichard Antalik
Code was removed in 247b10e6a25b but it was incorrect in first place. Conversion was done for `offset_x` and `offset_y` channel originally, but it should be done for `scale_x` and `scale_y`
2020-12-21Fix some UI messages and update i18n spellcheck utils.Bastien Montagne
2020-12-21Fix T83989: Attribute Math node ignores its operation settingGarry R. Osgood
T83989 observes that the Attribute Math node always adds its operands regardless of its operator setting. This was caused by an oversight committed in rB23233fcf056e42, which overlooked adjusting the exec function to use the new storage location. Differential Revision: https://developer.blender.org/D9909
2020-12-21Cleanup: Correct commentHans Goudey
2020-12-20fix T83880: Added check for valid context object to avoid null pointer ↵Gaia Clary
exception when no object in scene
2020-12-20VSE: Add options to select neighboring handlesPeter Fog
Options added to `sequencer.select_handles()` operator. Reviewed By: ISS Differential Revision: https://developer.blender.org/D7707
2020-12-20UI: Reorder enums in render results image editor headerYevgeny Makarov
The convention is to put the label at the bottom of the enum, or in the spot furthest away from the button. This commit reorders the items in the "Slot", "Layer", and "Pass" menus to be consistent with this convention. It also reorders the numbering so that higher numbers are lower. The original patch was by Adrian Newton (@TFS), with slight changes and additions. Differential Revision: https://developer.blender.org/D7142
2020-12-20VSE: Remove cost calculation from cacheRichard Antalik
This value was meant to be used for keeping images that are slowest to render in cache. Method of measurement was flawed, because it doesn't take UI overhead into consideration. Cache panel is to be removed because users should not have to tweak settings like this. It is not useful for development either, therefore it is removed completely.
2020-12-20VSE: Fix incorrect cache memory usage calculationRichard Antalik
If image is cached twice, it's size has been counted twice as well, but only image reference count is increased, not memory usage. Use `MEM_get_memory_in_use()` instead of size own tracking.
2020-12-19Compositor: New Exposure NodeAaron Carlisle
This new node increases the radiance of an image by a scalar value. Previously, the only way to adjust the the exposure of an image was with math node or using the scene's color management. Reviewed By: jbakker Differential Revision: https://developer.blender.org/D9677
2020-12-19Cleanup: Use typedef for UI emboss type enumHans Goudey
Previously both `char` and `int` were used to represent this enum. Differential Revision: https://developer.blender.org/D9903
2020-12-19Cleanup: Split SEQ_sequencer.h fileRichard Antalik
2020-12-19Cleanup: Rename BKE_sequencer functionsRichard Antalik
API functions get SEQ_ prefix. Intern functions get seq_ prefix Functions also have appropriate category included in name.
2020-12-19Fix T83868: Button animation states no longer visible without embossHans Goudey
This bug was caused by making it so that non-embossed modifier icon buttons could become an operator button and retain their red highlight for disabled modifiers. The icon button needs emboss turned off, but in earlier versions of Blender, `UI_EMBOSS_NONE` would be overridden by animation or red alert states. Instead of abusing "NONE" to mean "none unless there is animation or red alert", this commit adds a new emboss flag for that situation, `UI_EMBOSS_NONE_OR_STATUS`, which uses no emboss unless there is an animation state, or another status. There are only a few situations where this is necessary, so the change isn't too big. Differential Revision: https://developer.blender.org/D9902
2020-12-19Fix build error after previous commitHans Goudey
I tested building so many times while making this patch, but somehow the previous commit was missing a padding variable, I have no idea how.
2020-12-19Cleanup: Remove unused variables from the bNode structHans Goudey
In some cases the variables were set but never used anywhere. Differential Revision: https://developer.blender.org/D9889
2020-12-19Cleanup: Use true and false for booleansHans Goudey
2020-12-18Cleanup: Declare variables where initializedHans Goudey
Also decrease scope of some variable declarations.
2020-12-18Cleanup: Use bool instead of intHans Goudey
2020-12-18UI: Redesigned data-block selectorsJulian Eisel
The previous design is rather old and has a couple of problems: * Scalability: The current solution of adding little icon buttons next to the data-block name field doesn't scale well. It only works if there's a small number of operations. We need to be able to place more items there for better data-block management. Especially with the introduction of library overrides. * Discoverability: It's not obvious what some of the icons do. They appear and disappear, but it's not obvious why some are available at times and others not. * Unclear Status: Currently their library status (linked, indirectly linked, broken link, library override) isn't really clear. * Unusual behavior: Some of the icon buttons allow Shift or Ctrl clicking to invoke alternative behaviors. This is not a usual pattern in Blender. This patch does the following changes: * Adds a menu to the right of the name button to access all kinds of operations (create, delete, unlink, user management, library overrides, etc). * Make good use of the "disabled hint" for tooltips, to explain why buttons are disabled. The UI team wants to establish this as a good practise. * Use superimposed icons for duplicate and unlink, rather than extra buttons (uses less space, looks less distracting and is a nice + consistent design language). * Remove fake user and user count button, they are available from the menu now. * Support tooltips for superimposed icons (committed mouse hover feedback to master already). * Slightly increase size of the name button - it was already a bit small before, and the move from real buttons to superimposed icons reduces usable space for the name itself. * More clearly differentiate between duplicate and creating a new data-block. The latter is only available in the menu. * Display library status icon on the left (linked, missing library, overridden, asset) * Disables "Make Single User" button - in review we weren't sure if there are good use-cases for it, so better to see if we can remove it. Note that I do expect some aspects of this design to change still. I think some changes are problematic, but others disagreed. I will open a feedback thread on devtalk to see what others think. Differential Revision: https://developer.blender.org/D8554 Reviewed by: Bastien Montagne Design discussed and agreed on with the UI team, also see T79959.
2020-12-18UI: Rename "Float Color" attribute data type to "Color"Hans Goudey
Since "Float Color" is more commonly used than "Byte Color", which is not exposed in the interface yet anyway, it makes sense to drop the "Float" label on the color data type name.
2020-12-18Geometry Nodes: support randomly picking instances from collectionJacques Lucke
This uses the "id" attribute to randomly pick instances from a collection for each point. There is one issue. When the collection is updated (e.g. when an object is added to it), the nodes modifier is not automatically updated. It seems like we don't have the infrastructure to support this dependency yet. The same issue exists in the Boolean modifier and with collision collections. This should be solved separately soonish. When "Whole Collection" is disabled, one direct child of the input collection is instanced at each point. A direct child can be an object or a collection. Currently, all objects are picked approximately equally often. In the future, we will provide more control over which point gets which instance. Differential Revision: https://developer.blender.org/D9884 Ref T82372.
2020-12-18GPencil: Fix potential error in interpolate frameAntonio Vazquez
As now it is using a duplicated frame, the untag must be done before copying the frames.
2020-12-18Fix T83916: Cannot drag link from socket if node is inside framePhilipp Oeser
Caused by rB7470c10601d0 where iterating nodetree nodes was changed from backwards to forwards by mistake. Maniphest Tasks: T83916 Differential Revision: https://developer.blender.org/D9890
2020-12-18Fix T83716: Dope Sheet, incorrect scaling of channel UI elementsVincent Blankfield
Change the top coordinate of the animation channel list UI elements to `rect->ymin` so they correctly span from `rect->ymin` to `channel_height`. Some buttons in the dope sheet channels didn't scale properly with the `Keyframe Scale Factor` preferences setting. This was caused by using the `ymid` value (`ymid = BLI_rctf_cent_y(rect) - 0.5f * ICON_WIDTH`) to position the buttons that supposed to fill all vertical space in the channel (with `channel_height` height). The `ymid` value is only appropriate for the UI elements that with `ICON_WIDTH` height. Maniphest Tasks: T83716 Reviewed by: sybren Differential Revision: https://developer.blender.org/D9841
2020-12-18Geometry Nodes: do not crash when there are undefined nodesJacques Lucke
Undefined geometry nodes will just output a default value now.
2020-12-18Functions: add generic pointer class for const pointersJacques Lucke
This adds a GPointer class, which is mostly the same as GMutablePointer. The main difference is that GPointer references const data, while GMutablePointer references non-const data.
2020-12-18Function Nodes: Input VectorDalai Felinto
Ref: T82651 Normally people use "Combine XYZ" to input a vector, but it is more interesting to have an explicit vector input. So this is basically "Combine XYZ" without any input sockets, the values are stored in the node itself. Differential Revision: https://developer.blender.org/D9885
2020-12-18Fix T83494: Eevee clamp node incorrect when min > max.Jeroen Bakker
In glsl the clamp function has undefined behavior when min > max. For the clamp node this resulted in differences between cycles and eevee. This patch adds the expected implementation for minmax. The old clamp function is still used in cases where we know for certain that the input values are correct (math node clamp option). GPU uses optimized code and silicon in these cases.
2020-12-18Fix T83625: Shading attribute names cause compilation error.Jeroen Bakker
Some GPU platforms don't support having more than one underscore in sequence in an attribute name. This change will remove the underscore as a possible character when encoding to save names.
2020-12-18Fix T82591: Performance regression when rendering at very high resolutionJeroen Bakker
This patch introduces a partial update of GPUTexture. When rendering a large image the GPUTexture could have been scaled. The old implementation would rescale the image on CPU and create a new GPUTexture. This resulted in flooding the PCI bus. The new solution would only scale and upload the parts of the GPUTexture that has been changed. It does this by keeping track of areas of 256x256 pixels. When something changes the tiles that cover that changes will be rescaled and uploaded the next time the GPUTexture is requested. Test situation: Default Cube, 4 samples, 19200x10800 tile size 512. Blender 2.83.9: 4m27s. Blender 2.91: 20+m (regression) This patch: 1m01s. There is still room for more optimizations: * Reduce the time that an image is locked. ** Use task scheduling to update the tiles of an image. ** Generic optimization of the ImBuf scale method. Maniphest Tasks: T82591 Differential Revision: https://developer.blender.org/D9591
2020-12-18Outliner: Set active modifier on clickHans Goudey
The outliner already expands the panel for the modifier you click on, this just extends that idea to also set it active, which is consistent with behavior of active and selected items elsewhere in Blender.
2020-12-18Cleanup: Various clang tidy warningsHans Goudey
There are more in the new mesh fairing code and in the poisson distribution code, this commit doesn't fix those.
2020-12-18Fix T82960: Inaccurate selection on collapsed outliner rowsNathan Craddock
After rB15083d9e1 the outliner tree is not rebuilt after expanding or collapsing rows. Because the tree is no longer rebuilt the positions and flags of the elements are not cleared when collapsing a row. This caused hover highlights and selections on the collapsed child icons to be incorrect in many cases. For example, only the direct children of a collapsed element are drawn inline. If any grandchild elements had been previously icon row flagged they would continue to be evaluated as icon row elements despite being hidden. In this case the x coordinates of the child and grandchild would overlap causing selection to appear erratic. Now the flags for inline row icons are explicitly cleared, which was previously only done because the tree was rebuilt on collapsing rows.