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-07-08Remove recalculations.temp-T95933-object-mode-curve-selectionJeroen Bakker
2022-07-08Use drw_view to retrieve view matrix inverse.Jeroen Bakker
2022-07-08Screen space curvce outline.Jeroen Bakker
2022-07-08Merge branch 'master' into temp-T95933-object-mode-curve-selectionJeroen Bakker
2022-07-08Cleanup: Move mesh legacy conversion to a separate fileHans Goudey
It's helpful to make the separation of legacy data formats explicit, because it declutters actively changed code and makes it clear which areas do not follow Blender's current design. In this case I separated the `MFace`/"tessface" conversion code into a separate blenkernel .cc file and header. This also makes refactoring to remove these functions simpler because they're easier to find. In the future, conversions to the `MLoopUV` type and `MVert` can be implemented here for the same reasons (see T95965). Differential Revision: https://developer.blender.org/D15396
2022-07-08Fix T99364: Unable to select bones when custom shape display is disabledCampbell Barton
Regression in [0] which revealed an error in [1]. Logic for pose channel custom transform ignored ARM_NO_CUSTOM. [0]: 3267c91b4d5caab7da8aef071a446dd2e86f86a9 [1]: c3fef001ee926fc183255b623f56da9fc5fcbb73
2022-07-08Cleanup: spelling in commentsCampbell Barton
Also move mis-placed doc-string.
2022-07-08Cleanup: formatCampbell Barton
2022-07-08Cleanup: Calm GCC Conversion WarningHarley Acheson
Commit b9c0eed206b0 introduced a GCC conversion warning because of an assignment of a long int value to an int. Own Code
2022-07-07BLF: Add Support for Variable FontsHarley Acheson
Add support for Variable/Multiple Master font features. These are fonts that contain a range of design variations along multiple axes. This contains no client-facing options. See D12977 for details and examples Differential Revision: https://developer.blender.org/D12977 Reviewed by Brecht Van Lommel
2022-07-07Fix T99332: resize video in image editor does not update correctlyBrecht Van Lommel
Use the image user from the image editor to correctly get the frame in the operators. Based on patch by Nicolas (john-g-h-doe) with changes by me. Differential Revision: https://developer.blender.org/D15380
2022-07-07Cleanup: Remove unused variableHans Goudey
2022-07-07Cleanup: improve asserts in generic spanJacques Lucke
2022-07-07BLI: make some spans default constructibleJacques Lucke
`GSpan` and spans based on virtual arrays were not default constructible before, which made them hard to use sometimes. It's generally fine for spans to be empty. The main thing the keep in mind is that the type pointer in `GSpan` may be null now. Generally, code receiving spans as input can assume that the type is not-null, but sometimes that may be valid. The old #type() method that returned a reference to the type still exists. It asserts when the type is null.
2022-07-07LibOverride: Make fully editable when creating an experimental user setting.Bastien Montagne
This is temporary to investigate which behavior should be kept when creating an override hierarchy if there are no cherry-picked data defined: make all overrides user-editable, or not. This removes the 'make override - fully editable' menu entries.
2022-07-07UI: Superimposed pin icon for workspace scene pinning in the scene switcherJulian Eisel
Followup to the previous commit, to display a pin icon in the scene switcher. This is a good indicator to have and such workspace-wide functionality should be available in the topbar, close to what it belongs to (scene switching). Downside is that it makes this already crowded region even more crowded. But thanks to the use of superimposed icons, it's not too noisy visually. Differential Revision: https://developer.blender.org/D11890 Reviewed by: Campbell Barton
2022-07-07Workspaces: Option to pin scene to a workspaceJulian Eisel
Adds a "Pin Scene" option to the workspace. When activated, the workspace will remember the scene that was last activated in it, so that when switching back to this workspace, the same scene will be reactivated. This is important for a VSE workflow, so that users can switch between different workspaces displaying a scene and thus a timeline for a specific task. The option can be found in the Properties, Workspace tab. D11890 additionally adds an icon for this to the scene switcher in the topbar. The workspace data contains a pointer to the scene which is a UI to scene data relation. When appending a workspace, the pointer is cleared. Differential Revision: https://developer.blender.org/D9140 Reviewed by: Brecht Van Lommel, Bastien Montagne (no final accept, but was fine with the general design earlier)
2022-07-07Outliner, Library Overrides: List child objects under parentsJulian Eisel
Because children point to, or "use" their parent, the Library Overrides Hierarchies mode in the Outliner would show parents contained in children, not children contained in a parent. See D15339 for pictures. In production files this would make the rig listed under all its children, so it would appear many times in the tree. Now it appears once and the children are collected under it. Refactors the tree building, so instead of using `BKE_library_foreach_ID_link()`, it now uses the ID relations mapping in `MainIDRelations`. Reviewed By: mont29 Differential Revision: https://developer.blender.org/D15339
2022-07-07Fix T99256: Regression: Meta balls segfaulting copy-to-selected.Bastien Montagne
Revealed by rB43167a2c251b, but actuall issue is the `rna_MetaBall_update_data` function expecting a never-NULL `scene` pointer, which is not guaranteed. This lead to refactoring the duo `rna_MetaBall_update_data`/`BKE_mball_properties_copy`, since it was doing a very sub-optimal O(n^2) process, new code is O(2n) now (n being the number of Objects). Not sure why the objects were processed through the existing bases of the existing scene in the first place, this could miss a lot of affected objects (e.g. in case said objects are in an excluded collection, etc.). Also noticed that both old and new implementation can fail to fully propagate changes to all affected meta-balls in some specific corner cases, added a comment about it in the code. Reviewed By: sergey Maniphest Tasks: T99256 Differential Revision: https://developer.blender.org/D15338
2022-07-07Compositor: Pre-fill motion tracking fieldsSergey Sharybin
Extends current functionality which was only filling in the active movie clip. Now we also pre-fill tracking object name, as well as (plane)track name.
2022-07-07Cleanup: Use std::move for geometry setHans Goudey
The only real improvement is avoiding some reference counting, but the main for the change is consistency. Also don't move a StringRef, since that doesn't own any data anyway.
2022-07-07Cleanup: Use C++ style of avoiding unused variable warningsHans Goudey
As documented in the best practices section of the style guide: https://wiki.blender.org/wiki/Style_Guide/Best_Practice_C_Cpp
2022-07-07Cleanup: Use generic index mask utilityHans Goudey
This may lead to improved performance from multithreading as well.
2022-07-07Fix: Spreadsheet does not display original curves dataHans Goudey
The spreadsheet ignored the component choice in the data set region for curves and volume objects, and the original curves data-block wasn't retrieved from the original object.
2022-07-07Fix T99505: NLA tweak mode crashes with GPencil dataAmélie Fondevilla
Adding Grease Pencil keyframes in the dopesheet (rB92d7f9ac56e0) lead to crashes from the NLA editor (T99505). This is now resolved, by removing grease pencil keyframes from NLA editor (as it was in 3.2), and filtering them out of all NLA-related operations. Reviewed By: sybren Differential Revision: https://developer.blender.org/D15391
2022-07-07Fix T99453: Regression: Crash on calling menu searchPratik Borhade
Fix T99453. Crash due to null pointer access. So wrap the function call in simple `if` check Reviewed By: sybren Maniphest Tasks: T99453 Differential Revision: https://developer.blender.org/D15370
2022-07-07Fix T99386: Driven modifiers are always re-evaluated during animationSergey Sharybin
Even if the driver is not dependent on time the modifiers were always re-evaluated during playback. This is due to the legacy nature of the check whether modifier depends on time or not: it was simply checking for sub-string match for modifier in the F-Curve and drivers RNA paths. Nowadays such dependencies are created by the dependency graph builder, which allows to have more granular control over what depends on what. The code is now simplified to only check for "static" dependency of the modifier form time: for example, Wave modifier which always depends on time (even without explicit animation involved). This change also fixes missing relation from the animation component to the shader_fx modifiers, fixing race condition. Additional files used to verify relations: - Geometry: F13257368 - Grease Pencil: F13257369 - Shader FX: F13257370 In these files different types of modifiers have an animated property, and the purpose of the test is to verify that the modifiers do react to the animation and that there is a relation between animation and geometry components of the object. The latter one can only be checked using the dependency graph relation visualization. The drivers are not tested by these files. Those are not typically depend on time, and if there were missing relation from driver to the modifier we'd receive a bug report already. As well as if there was a bug in missing time relation to a driver we'd also receive a report. Differential Revision: https://developer.blender.org/D15358
2022-07-07Cleanup: Remove redundant filtering of legacy normal attributeHans Goudey
This is already done inside of `attribute_search_add_items`.
2022-07-07Cleanup: Correct comment with spreadsheet enum typeHans Goudey
2022-07-07Cleanup: Improve variable nameHans Goudey
The new name makes more sense in non-node-related contexts.
2022-07-07Curves: Add sculpt selection overlayHans Goudey
This commit adds visualization to the selection in curves sculpt mode. Previously it was only possible to see the selection when it was connected to a material. In order to obstruct the users vision as little as possible, the selected areas of the curve are left as is, but a dark overlay is drawn over unselected areas. To make it work, the overlay requests the selection attribute and then ensures that the evaluation is complete for curves. Then it retrieves the evaluated selection GPU texture and passes that to the shader. This reuses the existing generic attribute extraction system because there currently wouldn't be any benefits to dealing with selection separately, and because it avoids duplication of the logic that extracts attributes from curves and evaluates them if necessary. Differential Revision: https://developer.blender.org/D15219
2022-07-07GHOST: initialize grab axis for windowsCampbell Barton
While this didn't cause any user visible bugs, ASAN would report an error when passing it as an argument.
2022-07-07ID Management: Purge: Make outliner button use recursive purge.Bastien Montagne
This change the 'Purge' button of the Outliner 'Orphaned' view to use recursive purge, i.e. it wil not only delete immediately unused IDs (as listed in the view) anymore, but also all their unused dependencies.
2022-07-07Fix T98029: Support isolated islands of IDs when purging unused ones.Bastien Montagne
Cases were e.g. an object would use a material, and this material would use this object (e.g. through a driver), even if both those data-blocks are technically unused, they would remain forever since they were not detected as such. Now this is properly detected and purged as part of the 'recursive purge' operation.
2022-07-07Fix T99491: Crash when opening modifiers panelFalk David
This crashed because in `get_active_fcurve_channel`, the filter did not filter out channels with no fcurve. The fix adds the filter `ANIMFILTER_FCURVESONLY`. See rB92d7f9ac56e0ff1e65c364487542dfb7c32a0a67 for the new filter. Maniphest Tasks: T99491 Differential Revision: https://developer.blender.org/D15386
2022-07-07Fix: Save modified images during file closeJesse Yurkovich
Regressed in the following commit due to an inverted conditional: {rB1159b63a07fd2cbc7fc48e162d57721c9c85b3f6} Differential Revision: https://developer.blender.org/D15389
2022-07-07Fix T99388: Obey relative path option when saving UDIMsJesse Yurkovich
Ensure that the Image maintains the proper file path after saving all the individual tiles. The image_save_post function is unaware that the filepath it receives is only for a single tile, not the entire Image, and happily keeps setting ima->filepath to the concrete filepath for each tile. There were 2 problems with the code that attempted to correct the Image filepath back to the UDIM virtual form: - It would trample the "relative" directory that might have been set - It would do the wrong thing if no tiles could be saved at all The design is now as follows: Example of trying to save to a new PathB | | all tiles ok | any tile not ok| | -------------------------------- | ---------------- | ---------------| | ima->filepath is currently empty | set to new PathB | keep empty | | ima->filepath is currently PathA | set to new PathB | keep PathA | Differential Revision: https://developer.blender.org/D15384
2022-07-07OBJ: more robust .mtl texture offset/scale parsing (T89421)Aras Pranckevicius
As pointed out in a comment on T89421, if a MTL file contained something like: `map_Ka -o 1 2.png` then it was parsed as having offset `1 2` and the texture filename just a `.png`. Make it so that mtl option numbers are parsed in a way where the number is only accepted only if it's followed by whitespace. Differential Revision: https://developer.blender.org/D15385
2022-07-07OBJ: always set eevee blend mode when material "d" is below 1.0Aras Pranckevicius
Fixes T97743: the import code was setting EEVEE blending mode whenever a transparency texture was present (map_d), or when the materials illum was saying "yo, transparency!". But if only the material's d was below 1.0, it was not setting the blend mode, which is different to user expectations. Differential Revision: https://developer.blender.org/D15383
2022-07-07Fix T99342: GPencil multiframe falloff is scaling wrongly in rotationAntonio Vazquez
The falloff was applied to scale by error. Now, the falloff is only applied to the rotation. Differential Revision: https://developer.blender.org/D15364 .
2022-07-07Cleanup: use arguments for internal wayland cursor grabbingCampbell Barton
Pass in arguments for internal grab logic instead of accessing some values from the window and other values as arguments. While more verbose it's simpler to reason about.
2022-07-07Fix T99270: bones using empties as custom shapes can't be selectedCampbell Barton
Regression in [0] which didn't account for the bounds of empty objects. Add support support calculating bounds from empty draw-type to use in pose-bone culling. [0]: 3267c91b4d5caab7da8aef071a446dd2e86f86a9
2022-07-07Python: show additional context for PyDriver errors in the stderrCampbell Barton
Showing the expression alone may not be enough to track down an error evaluating a py-driver. Show information about the target ID & property in the error message as well.
2022-07-07Python: clear Py-driver variables on exitCampbell Barton
These kinds of leaks are relatively harmless, it reduces the number of un-freed data reported by valgrind on exit.
2022-07-07Cleanup: use boolean types & early exit on failure for PyDriverCampbell Barton
Also use __func__ for printing the funciton name.
2022-07-07Cleanup: formatCampbell Barton
2022-07-07Fix Py-driver byte code access with Python 3.11Campbell Barton
Error in [0] which assumed the struct member was renamed however byte-code access from PyCodeObject now requires an API call. Thanks to @music for pointing this out. [0]: 780c0ea097444c3be60314dffd203c099720badb
2022-07-06Fix T99334: Ignore edit-related snap options in Object modejon denning
When in Object Mode, any of the active- and edit-related snapping options (Include Active, Include Edited, Include Non-Edited) should be ignored when in Object Mode, otherwise snapping could be effectively disabled. This commit forces snap code to ignore the active- and edit-related options when in Object Mode. Reviewed By: Germano Cavalcante (mano-wii) Differential Revision: https://developer.blender.org/D15366
2022-07-06UI: Adjust and fix shader node descriptionsHans Goudey
The tooltips added for shader nodes in D15309 are very helpful already. This commit makes a few tweaks to make them more consistent, concise, and includes some fixes. Note that this might move some descriptions further away from the wording in the manual. * Make wording more concise * Start fewer new sentences * Use "For Example" slightly less * Avoid repeating the node's name unnecessarily * Spelling/grammar fixes * Don't capitalize some words * Use consistent verb conjugation * Use ASCII characters/more common quote symbols * Corrections to information * Plural/singular corrections * "smoke domains" -> "volume grids" * Fix tooltip for separate and combine color nodes * Refer to color sockets as colors rather than "images" * Avoid "advice" in a few places, which should be left for the manual * Remove information for sockets and could be in their tooltips * Avoid referring to the locations of a property in the UI * Avoid manual newlines (mostly reserve for "Note:") * Leave UI code in control of wrapping, which is more consistent * Add some information * That the UV map and color attribute nodes use a default * That Voronoi is "based on the distance to random points" * Add "(Deprecated)" to old color combine and separate nodes Differential Revision: https://developer.blender.org/D15381
2022-07-06Object: Speed up duplication of large selections by doing fewer collection syncsAras Pranckevicius
Previous code was doing N collection syncs when duplicating N objects. New code avoids all the intermediate syncs by using BKE_layer_collection_resync_forbid and BKE_layer_collection_resync_allow, and then does one BKE_main_collection_sync + BKE_main_collection_sync_remap for the whole operation. There is some complexity involved where the Base things of newly duplicated objects can't be found yet, without the sync, so some work on them (marking them selected, active, ...) has to be deferred until after the sync. Timings: scene with 10k cubes, each with unique mesh (Windows, VS2022 Release build, AMD Ryzen 5950X): - Shift+D duplicate: 13.6s -> 9.2s - Alt+D duplicate: 4.76s -> 1.53s Reviewed By: Bastien Montagne Differential Revision: https://developer.blender.org/D14150