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-06-02Nodes: move some files to C++Jacques Lucke
This just moves a couple of files in `space_node` to C++ and fixes related errors. The goal is to be able to use C++ data structures to simplify the code. Differential Revision: https://developer.blender.org/D11451
2021-04-12UI/Nodes: Improve feedback when adding node fails (e.g. on drag & drop)Julian Eisel
This is especially useful when trying to add a node group instance, e.g. via drag & drop from the Outliner or Asset Browser. Previously this would just silently fail, with no information why. This is a source of confusion, e.g. earlier, it took me a moment to realize I was dragging a node group into itself, which failed of course. Blender should always try to help the user with useful error messages. Adds error messages like: "Nesting a node group inside of itself is not allowed", "Not a compositor node tree", etc. Adds a disabled hint return argument to node and node tree polling functions. On error the hint is reported, or could even be shown in advance (e.g. if checked via an operator poll option). Differential Revision: https://developer.blender.org/D10422 Reviewed by: Jacques Lucke
2021-03-10Nodes: Sortable Multi Input SocketsFabian Schempp
This Patch removes the auto sorting from Multi-Input Sockets and allows the links to be sorted by drag and drop instead. As a minor related change, it fixes the drawing of the mute line to connect to the first input instead of the socket's center.
2021-02-15UI/Nodes: Adding node groups via drag & drop (e.g. from Asset Browser)Julian Eisel
Adds `NODE_OT_add_group` operator to add a node group from a given name, and uses that to register a node editor drop-box. When dropping a node-group asset, the ID will be appended. This is what we do for other ID assets too. Should the node group insertion fail (e.g. the group is not compatible with the current tree, as checked by the poll), the appended data-block is removed. Differential Revision: https://developer.blender.org/D10405 Reviewed by: Jacques Lucke
2021-02-05Cleanup: correct spelling in commentsCampbell Barton
2020-12-02Geometry Nodes: initial scattering and geometry nodesJacques Lucke
This is the initial merge from the geometry-nodes branch. Nodes: * Attribute Math * Boolean * Edge Split * Float Compare * Object Info * Point Distribute * Point Instance * Random Attribute * Random Float * Subdivision Surface * Transform * Triangulate It includes the initial evaluation of geometry node groups in the Geometry Nodes modifier. Notes on the Generic attribute access API The API adds an indirection for attribute access. That has the following benefits: * Most code does not have to care about how an attribute is stored internally. This is mainly necessary, because we have to deal with "legacy" attributes such as vertex weights and attributes that are embedded into other structs such as vertex positions. * When reading from an attribute, we generally don't care what domain the attribute is stored on. So we want to abstract away the interpolation that that adapts attributes from one domain to another domain (this is not actually implemented yet). Other possible improvements for later iterations include: * Actually implement interpolation between domains. * Don't use inheritance for the different attribute types. A single class for read access and one for write access might be enough, because we know all the ways in which attributes are stored internally. We don't want more different internal structures in the future. On the contrary, ideally we can consolidate the different storage formats in the future to reduce the need for this indirection. * Remove the need for heap allocations when creating attribute accessors. It includes commits from: * Dalai Felinto * Hans Goudey * Jacques Lucke * Léo Depoix
2020-11-06Cleanup: use doxy sections for node_group.cCampbell Barton
2020-11-06Cleanup: use STR_ELEM macroCampbell Barton
2020-10-20Fix T81684: node location not handled correctlyJacques Lucke
Reviewers: ISS Differential Revision: https://developer.blender.org/D9236
2020-10-16Cleanup: reduce variable scopesJacques Lucke
2020-10-14Cleanup: multi-line comment blocksCampbell Barton
2020-10-07Refactor: remove `BKE_<id_type>_copy` functions.Bastien Montagne
Those were only shallow wrappers around `BKE_id_copy`, barely used (even fully unused in some cases), and we want to get rid of those ID-specific helpers for the common ID management tasks. Also prevents weird custom behaviors (like `BKE_object_copy`, who was the only basic ID copy function to reset user count of the new copy to zero). Part of 71219.
2020-10-02CleanUp: snode_group_offset -> space_node_group_offsetJeroen Bakker
2020-08-06Fix T79408: ungroup operation update animation data incorrectlyJacques Lucke
Reviewers: sybren, sergey Differential Revision: https://developer.blender.org/D8464
2020-08-04Node Groups: expose the SOCK_HIDE_VALUE flag for node group inputs.Alexander Gavrilov
This flag specifies that even when the socket is not connected, the node should not display the input field for the constant input value. This is useful for inputs like Normal, which have special handling for the missing input case and don't use a constant value. Currently there is no way to change this flag from Python, and through UI it can only be done by re-creating the socket. This patch exposes the flag through RNA and UI, makes sure it is properly updated when changed, and adds special handling to ensure that it is correctly set when creating a node group from a node set that includes reroute nodes. Differential Revision: https://developer.blender.org/D8395
2020-08-04Node Groups: fix placement of the Output node when creating a group.Alexander Gavrilov
Instead of assuming the node width, compute the actual right bound. Otherwise BSDF nodes tend to be too wide, and intersect Output. Differential Revision: https://developer.blender.org/D8395
2020-07-03Cleanup: Editors/Space/Node, Clang-Tidy else-after-return fixesSybren A. Stüvel
This addresses warnings from Clang-Tidy's `readability-else-after-return` rule in the `source/blender/editors/space_node` module. No functional changes.
2020-04-20Simulations: Add simulation node tree typeJacques Lucke
This implements a new builtin node tree type called `SimulationNodeTree`. It is not yet embedded in the `Simulation` data block. The node tree will initially be used for the new particle nodes system. When the cmake option `WITH_NEW_SIMULATION_TYPE` is enabled, a new `Simulation Editor` is shown in the editors menu (which is just a node editor). This patch does not add entries to the Add Node menu, so it is empty. Reviewers: brecht Differential Revision: https://developer.blender.org/D7287
2020-04-06Fix user counting when ungrouping a node group.Maxim Vasiliev
Existing code for ungrouping did not correctly handle user counters: - counter for the group was not decremented - counters for containing nodes were not incremented The latter resulted in losing some nodes after orphan cleaning or several save/reload cycles. The bug did not have destructive consequences until recently, because it was compensated by another bug (fixed in rBe993667a46c2). Maniphest Tasks: T74665, T74682 Differential Revision: https://developer.blender.org/D7332
2020-03-19Cleanup: `make format` after SortedIncludes changeDalai Felinto
2020-02-10Cleanup/refactor: Rename `BKE_library` files to `BKE_lib`.Bastien Montagne
Note that `BKE_library.h`/`library.c` were renamed to `BKE_lib_id.h`/`lib_id.c` to avoid having a too generic name here. Part of T72604.
2019-10-07Cleanup: clang-formatCampbell Barton
2019-10-02Fix T70331 Node group passthrough is brokenClément Foucault
2019-10-01Nodes: discard hidden sockets when grouping a single node.Miguel Porces
At the moment, grouping a single node that has hidden sockets, exposes all sockets in the node group. This patch just filters hidden sockets, so that the node group's interface remains the same as the node being grouped. Differential Revision: https://developer.blender.org/D5533
2019-09-07Cleanup: use post increment/decrementCampbell Barton
When the result isn't used, prefer post increment/decrement (already used nearly everywhere in Blender).
2019-08-22Revert "Fix T68971: Copy As New Driver from Material node creates a bad ↵Bastien Montagne
reference." This reverts commits 54fd8176d7e91, 4c5becb6b1 and 8f578150e. Those kind of commits must be reviewed and approved by project owners. That one: * Broke Collada building by not properly updating all calls to modified function. * Broke *whole* ID management by not properly updating library_query.c. And in general, I am strongly against backward ID pointers, those are *always* a serious PITA for ID management. Sometimes they cannot be avoided, but in general other ways to get that kind of info should be investigated first.
2019-08-22Fix T68971: Copy As New Driver from Material node creates a bad reference.Alexander Gavrilov
NodeTree structures of materials and some other data blocks are effectively node group data block objects that are contained inside the parent block. Thus, direct references to them are only valid while blender is running, and are lost on save. Fix Copy As New Driver to create a reference that goes through the owner data block, by adding a new runtime field to bNodeTree.
2019-06-07Fix T65612: Ungroup in Node Editor CrashesSergey Sharybin
2019-06-04Fix T64247: Crash on playback with special shader node treeSergey Sharybin
The root of the problem goes to the fact that node tree copying uses source tree and nodes for a temporary storage. This makes it so multiple dependency graphs can not be reliably evaluated from different threads if they are using same original node tree. Solved by doing the following: - Commonly used tree copying function (which is used by library manager) keeps source tree, nodes and sockets untouched. - All the related areas (like node tree's callback) now have const qualifier on the input. - Areas which needs to have those temporary pointers assigned are now using explicit function. Would be really cool to get rid of those temporary pointers completely, but this is a bit tricky due to hairy nature of the code. Can happen any time now though: is easy enough to generalize the new pointers mapping. Note that this change is only intended to solve the crash. The fact that icons shouldn't be updated on playback will be fixed as a separate change. Reviewers: brecht, fclem Reviewed By: brecht, fclem Subscribers: brecht, fclem Differential Revision: https://developer.blender.org/D5002
2019-04-24Nodes: avoid slow and unecessary node group updates on file readBrecht Van Lommel
On file read we need to update group nodes in case the group they refer to has changed its inputs and outputs. This had O(n^2) time complexity and was updating all datablocks even if they did not change.
2019-04-17ClangFormat: apply to source, most of internCampbell Barton
Apply clang format as proposed in T53211. For details on usage and instructions for migrating branches without conflicts, see: https://wiki.blender.org/wiki/Tools/ClangFormat
2019-04-16Cleanup: trailing commasCampbell Barton
2019-03-26Cleanup: style, use braces for editor/spacesCampbell Barton
2019-03-16Fix ID user counting issues with NodeCustomGroup.Miguel Porces
User counting now happens before init() and after free() methods, so that the ID users are in a valid state when Python might modify them. ID user counting was moved into node.c and simplified. Patch by Miguel with further refactoring by Brecht. Ref D4370.
2019-02-18doxygen: add newline after \fileCampbell Barton
While \file doesn't need an argument, it can't have another doxy command after it.
2019-02-13Fix T61506: Wrong user counting with ID properties in pynodes.Bastien Montagne
Nuke away old nodeCopyNode(), much better to use new BKE_node_copy_ex(), which behaves as expected for the various optional flags that can be passed. This also removes the need to handle ID refcounting in calling code (ugly!) and allows us to remove an even uglier name from our codebase! :D Note that this fixes three related issues actually, that bug was also affecting copy/paste of nodes, and 'Separate with copy' operator (the latter being actually fully wrong, since it was not refcounting anything, not even node->id pointer...).
2019-02-06Cleanup: remove redundant doxygen \file argumentCampbell Barton
Move \ingroup onto same line to be more compact and make it clear the file is in the group.
2019-02-03Cleanup: trailing commasCampbell Barton
Needed for clan-format not to wrap onto one line.
2019-02-01Cleanup: remove redundant, invalid info from headersCampbell Barton
BF-admins agree to remove header information that isn't useful, to reduce noise. - BEGIN/END license blocks Developers should add non license comments as separate comment blocks. No need for separator text. - Contributors This is often invalid, outdated or misleading especially when splitting files. It's more useful to git-blame to find out who has developed the code. See P901 for script to perform these edits.
2019-01-26Cleanup: remove redundant BKE/BLI/BIF headersCampbell Barton
2019-01-15Cleanup: comment line length (editors)Campbell Barton
Prevents clang-format wrapping text before comments.
2019-01-15Cleanup: replace usages of deprecated BKE_libblock_free by BKE_id_free.Bastien Montagne
2018-11-23Fix T57996: Crash - delete node with a driven parameterSergey Sharybin
2018-08-23Fix T56347: Driven values not supported in node groups.Bastien Montagne
Need to rebuild dependency graph when we add or remove nodes from a tree...
2018-07-02Cleanup: use bool for poll functionsCampbell Barton
2018-06-12Cleanup: remove some G.main from ED's animsys.Bastien Montagne
The easy ones - there some much, much trickier to tackle there...
2018-06-09Cleanup: remove some G.main usages.Bastien Montagne
2018-06-04Cleanup: strip trailing space in editorsCampbell Barton
2017-10-18Cleanup: Use const for RNA EnumPropertyItem argsCampbell Barton
Practically all access to enum data is read-only.
2017-07-19Fix T52092: Crash un-grouping nodesCampbell Barton