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
2020-12-12UI: Allow Outliners to pass selected data-blocks to operators via contextJulian Eisel
The way the Outliner integrates operations on selected tree elements is known to be quite problematic amongst developers. The context menu is generated in an unusual way and doesn't use the normal operator system. Instead, changes are applied via a recursive callback system. Things are quite ad-hoc, and the callbacks often implement logic that should not be in the Outliner, but in entirely different modules. Often these modules already contain the logic, but as proper operators. This commit is a step into a hopefully better direction that should allow us to put actual operators into Outliner context menus. It starts solving the problem of: How can the Outliner pass selected data to operators. It implements it for data-blocks only, but other data could do it in the same way. Idea is to keep doing what operators were initially designed to do: Operate on context. Operators can now query a "selected_ids" context member (`CTX_data_selected_ids()` in C, `bpy.context.selected_ids` in .py). If an Outliner is active, it will generate a list of selected data-blocks as a response, via its `SpaceType.context` callback. Any other editor could do the same. No user visible changes. This new design isn't actually used yet. It will be soon for asset operators. Reviewed as part of https://developer.blender.org/D9717. Reviewed by: Brecht Van Lommel
2020-12-11Fix error in recent commitGermano Cavalcante
Introduced in rBcada56b1f72f537f9ab007cfafd430ac10c292fb
2020-12-11Fix: Fix potential memory leak in BLI_getenvRay Molenkamp
Issue introduced in rB87b19b3aba0c and unlikely to occur but no reason not to have correct code.
2020-12-11Cleanup: Python GPU: change prefix 'bpygpu_' to 'py_' in static functionsGermano Cavalcante
2020-12-11Cleanup: GPU Python: Use 'PyC_ParseStringEnum' for string enumGermano Cavalcante
2020-12-11Fix: BLI_getenv returns ascii not UTF8 on windowsRay Molenkamp
BLI_getenv has always incorrectly returned ascii rather than UTF-8. This change corrects this behaviour. This resolves issues when the `BLENDER_USER_CONFIG` environment variable contains a path with Unicode characters on windows as reported in T74510 (but unlikely the root cause for the issue at hand there) Differential Revision: https://developer.blender.org/D9831 Reviewed by: brecht
2020-12-11Cleanup: clang-formatHarley Acheson
Forgot to run Make Format on recent spelling changes
2020-12-11Fix T83586: Cycles failing to load OpenEXR image with EXR RGBAZ channelsValdemar Lindberg
Don't refuse to load 5-channel images, instead drop any channels after the 4th and hope that the first channels represent RGBA. Differential Revision: https://developer.blender.org/D9820
2020-12-11Fix T83050: Crash dragging shared collection to master collectionHans Goudey
The flag syncing code expects to find collection flags in same view layer before and after the move, it even has an assert for it. However, there is one case where this doesn't happen, when dragging a collection that exists in two scenes to the master collection. This commit removes this assert, frees the temporary flag structs separately, and updates some comments with this information. There is more detail in the adjusted comment. Differential Revision: https://developer.blender.org/D9785
2020-12-11Cleanup: clang tidyJacques Lucke
2020-12-11Readme file to extern libraries about the attribution documentDalai Felinto
2020-12-11Fix T83280: Crash when deleting hair collision collection.Bastien Montagne
Root of the issue was missing management of ID pointers in the cloth modifier data stored in ParticleSystem for hair physics, in the 'foreach_id' particle system code. Using modifier's 'foreach_id' code in psys one unfortunately requires some ugly conversion gymnastics, but this is still better than having dedicated code for that case. Note that this is actually a fairly critical issue, fix should be backported to 2.91.1 should we do it, and to 2.83 LTS as well I think.
2020-12-11Licenses: Attribution documentDalai Felinto
This document helps Blender users to known what is the library of each individual 3rd party components that Blender depend on. Generated using: https://github.com/amzn/oss-attribution-builder This is based on the libraries in extern and the svn libraries. For the libraries in extern the README.blender was used as reference. For the libraries in svn I used `cmake/versions.cmake`. Note that the crediting is a bit of hit and miss. For some projects this is very clear, while for others I had to do some digging. Either way I gave my best shot. The sources to (re-)generate this file is local at the moment. But it should be moved to our infra-structure at some point. Differential Revision: https://developer.blender.org/D9798
2020-12-11Geometry Nodes: support instancing collectionsJacques Lucke
The Point Instance node can instance entire collections now. Before, only individual collections were supported. Randomly selecting objects from the collection on a per point basis is not support, yet. Last part of D9739. Ref T82372.
2020-12-11Geometry Nodes: support collection socketsJacques Lucke
Part of D9739.
2020-12-11Nodes: add Collection socket typeJacques Lucke
The implementation is pretty much the same as for Object sockets. The socket color is the one that is used for collections in the outliner. Part of D9739.
2020-12-11Cycles: enable OpenCL rendering on recent Intel GPUsSergey Sharybin
Based on testing by Intel, rendering on Iris GPUs and upcoming Xe GPUs should work. This is enabled on Windows and Linux. More testing is needed to verify correctness and performance in production scenes, but our basic benchmark files seem to give correct results.
2020-12-11Cleanup: compiler warningsBrecht Van Lommel
If you mark one function as override in a class, all must be marked.
2020-12-11Trackpad: Fix wrong scroll deltas on RetinaYevgeny Makarov
Scale Mac trackpad scrolling changes by pixel size of output device. Differential Revision: https://developer.blender.org/D9723 Reviewed by Brecht Van Lommel
2020-12-11UI: Consistent Range DescriptionsYevgeny Makarov
Unifying range descriptions as a value 'to' a value. Differential Revision: https://developer.blender.org/D9771 Reviewed by Julian Eisel
2020-12-11Refactor/extend BKE API to get special user directoriesJulian Eisel
The previous `BKE_appdir_folder_default()` was confusing, it would return the home directory on Linux and macOS, but the Documents directory on Windows. Plus, for the Asset Browser, we want to use the Documents directory for the default asset library on all platforms. This attempts to clean up the API to avoid confusion, while adding the newly needed functionality. * `BKE_appdir_folder_default()` should behave as before, but the implementation changed: ** Removes apparently incorrect usage of `XDG_DOCUMENTS_DIR` on Unix systems - this seems to be a config file variable, not an environment variable. Always use `$HOME` instead, which this ended up using anyway. ** On Windows it doesn't attempt to use `%HOME%` anymore and gets the Documents directory directly. * Add `BKE_appdir_folder_home()` to gives the top-level user directory on all platforms. * Add `BKE_appdir_folder_documents()` to always get the user documents directory on all platforms. There should be no user noticable behavior change. Differential Revision: https://developer.blender.org/D9800 Reviewed by: Brecht Van Lommel
2020-12-11Ghost: Support queries for special user directories (desktop, documents, etc.)Julian Eisel
When we had to get special user directories, we'd usually do it in varying, rather ad-hoc ways. It would be done with a bunch of `#ifdef`s for the different operating systems. Also, some of the used Win32 functions were legacy ones and the API docs recommend using newer ones. Further, seems `BKE_appdir_folder_default()` used `XDG_DOCUMENTS_DIR` wrong. It's not supposed to be an environment variable but a value inside a config file. This adds the platform dependent logic to Ghost, so we can abstract it away nicely using the `GHOST_ISystemPaths` interface. Getting the desktop directory for example can now easily be done with: `GHOST_getUserSpecialDir(GHOST_kUserSpecialDirDesktop).` For now I added the logic for desktop, documents, downloads, videos, images and music directories, even though we only use the Documents one. We can extend/ change this as needed, it's easy to do now. On Windows and macOS, it uses pretty much the same way to access the directories as elsewhere already. On Linux, it uses the `xdg-user-dir` command that seems to be available by default on most Linux systems. No functional changes. The new queries are not actually used yet. Differential Revision: https://developer.blender.org/D9800 Reviewed by: Brecht Van Lommel
2020-12-11GPencil: Add Link support to Effects using Ctrl+LAntonio Vazquez
The effects were not supported in this operator, but it was supported in the Outliner. Differential Revision: https://developer.blender.org/D9824
2020-12-11Fix T82881: Paint mask 'deselect on nothing' missed viewport updatePhilipp Oeser
Was failing for weightpaint and vertexpaint. Selection flags were actually changed, but the update in the viewport wasnt immediate, leading to confusion when the update happened later (e.g. when using the weight gradient tool as done in the report). We need to tag ID_RECALC_SELECT and send ND_SELECT notifier here. This could be done explicitly, but there is also existing functionality available that does this. Note: the way updates happen for paintfaces vs. paintverts looks a bit inconsistent (so this could be part of a later cleanup commit) Maniphest Tasks: T82881 Differential Revision: https://developer.blender.org/D9631
2020-12-11UI: Correct help text in the Parent panelThomas Beck
Tracking Axis and Up Axis were still referring to duplis (DupliFrame) - changed it to be in line with Aaron's info about them in our manual
2020-12-11Cycles: Add CPU+GPU rendering support with OptiXPatrick Mours
Adds support for building multiple BVH types in order to support using both CPU and OptiX devices for rendering simultaneously. Primitive packing for Embree and OptiX is now standalone, so it only needs to be run once and can be shared between the two. Additionally, BVH building was made a device call, so that each device backend can decide how to perform the building. The multi-device for instance creates a special multi-BVH that holds references to several sub-BVHs, one for each sub-device. Reviewed By: brecht, kevindietrich Differential Revision: https://developer.blender.org/D9718
2020-12-11Geometry Nodes: add Attribute Mix nodeJacques Lucke
This node can be used to mix two attributes in various ways. The blend modes are the same as in the MixRGB shader node. Differential Revision: https://developer.blender.org/D9737 Ref T82374.
2020-12-11Cleanup: remove some forward declared enumsJacques Lucke
Forward declaring enums are not allowed in C++. Differential Revision: https://developer.blender.org/D9811
2020-12-11Fix wrong operator return values in Outliner code.Bastien Montagne
Mistakes in rBac8b641b77e0 and rBf254f66587f2. Spotted while inverstigating T83592.
2020-12-11GeometryNodes: Make properties exposed in modifier overridable.Bastien Montagne
2020-12-11Cleanup: Fix typo in comment.Bastien Montagne
2020-12-11Correct the order of the last two arguments in ↵Evan Wilson
`eevee_cryptomatte_shading_group_create` When compiling on Windows, the following warnings occur: ```[3468/4560] Building C object source\blender\draw\CMakeFiles\bf_draw.dir\engines\eevee\eevee_cryptomatte.c.obj C:\blender-git\blender\source\blender\draw\engines\eevee\eevee_cryptomatte.c(306): warning C4047: 'function': 'bool' differs in levels of indirection from 'void *' C:\blender-git\blender\source\blender\draw\engines\eevee\eevee_cryptomatte.c(306): warning C4024: 'eevee_cryptomatte_shading_group_create': different types for formal and actual parameter 5``` As @Severin pointed out [here](https://developer.blender.org/rB76a0b322e4d3244e59a154c8255b84a4fbc33117#288960), this is due to the last two arguments being flipped. This diff corrects the order. Reviewed By: Severin, fclem Differential Revision: https://developer.blender.org/D9809
2020-12-11Workaround T83651: Crash dragging multiple buttons in the clip editorCampbell Barton
Avoid the crash, dragging multiple buttons still needs fixing.
2020-12-11Cleanup: sort cmake file listsCampbell Barton
2020-12-11Cleanup: trailing spaceCampbell Barton
2020-12-11Cleanup: spelling, expand on FCurve.rna_path docstringCampbell Barton
2020-12-11UI: Use 'and' Instead of '&' in DescriptionsYevgeny Makarov
Use 'and' instead of ampersand in descriptions and comments. Differential Revision: https://developer.blender.org/D9797 Reviewed by Aaron Carlisle
2020-12-11Fix T83640: No immediate updates when changing the settings of a just-Philipp Oeser
duplicated particle system When particle settings are duplicated along with the particle system, this means a change in relations, was missing 'DEG_relations_tag_update'. Maniphest Tasks: T83640 Differential Revision: https://developer.blender.org/D9823
2020-12-10UI: Use words instead of symbols for float comparison itemsHans Goudey
Though they are nice and concise, users should not be expected to know the meaning of symbols like `!=`.
2020-12-10Geometry Nodes: Add helper function to check if attribute existsHans Goudey
2020-12-10Nodes: fix incorrectly parameter name and typeJacques Lucke
The parameter type was incorrectly changed in rB6be56c13e96048cbc494ba5473a8deaf2cf5a6f8 by me. This can be any id and does not have to be a node tree.
2020-12-10Fix T83630 Exact Boolean assert failure in Debug build.Howard Trickey
I thought I had reasoned that the add_patch would only happen when the patch was not already in a cell, but I missed reasoning about merged cells. So switched to a set 'add' instead of 'add_new'.
2020-12-10Geometry Nodes: Attribute Fill NodeHans Goudey
This commit adds a node that fills every element of an attribute with the same value. Currently it supports float, vector, and color attributes. An immediate use case is for "billboard" scattering. Currently people are using the same input to a Random Attribute node's min and max input to fill every element of a vector with the same value, which is an unintuitive way to accomplish the same thing. Differential Revision: https://developer.blender.org/D9790
2020-12-10Geometry Nodes: rename modifyPointCloud to modifyGeometrySetJacques Lucke
Since the initial merge of the geometry nodes project, the modifyPointCloud function already was already modifying a geometry set. The function wasn't renamed back then, because then the merge would have touched many more files. Ref T83357.
2020-12-10Fix T83361: UV Editor does not draw pinned selected UVs as pinnedPhilipp Oeser
Caused by rB4212b6528af. outlineColor is computed by the vertex shader, so not a uniform. So outlineColor was undefined. note: it was still possible to run into the situation that a selected UV is drawn ontop of a selected pinned UV [you had to disable sticky selection for this], now also make sure selected-pinned are drawn topmost, then selected, then unselected UVs. Maniphest Tasks: T83361 Differential Revision: https://developer.blender.org/D9786
2020-12-10Merge remote-tracking branch 'origin/master' into geometry-nodesDalai Felinto
2020-12-10Geometry Nodes: fix recursive instance transformsJacques Lucke
Previously, the transformation of recursive instances did not work as on would expect. Second-level instances would detach from first-level instances when the object was moved.
2020-12-10Fix missing custom-property escaping for whole-character keying setCampbell Barton
Custom properties with characters that needed escaping had f-curves created with invalid paths.
2020-12-10Fix missing string escaping in RNA_path_appendCampbell Barton
This was escaping the '[' character, which isn't needed for quoted text.
2020-12-10Tests: fix 'ctest -j' running multiple tests at onceCampbell Barton
bl_blendfile_io & bl_blendfile_liblink shared a filename, which could make these tests fail.