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-09-02Cleanup: Further split of node link Bezier calculation functionHans Goudey
Now dragged handles are handled separately, and the function returns a statically sized array by value. The functions are also renamed to be more consistent with curve naming elsewhere in Blender.
2022-09-02Fix: Ensure topology cache exists when drawing nodesHans Goudey
This was missed in 58c650a44c251a41c89375d697efdf07153016e0.
2022-09-02Cleanup: Split node link draw culling to separate functionHans Goudey
This was only really used in one place, so better to just do it there rather than requiring another argument for the handle calculation.
2022-09-02Cleanup: Return earlyHans Goudey
2022-09-02Cleanup: Remove unnecessary struct keyword usage in node editorHans Goudey
2022-09-02Cleanup: Remove unused structHans Goudey
Unused after 217d0a15243d12da070e8a68c2603bab73be2164
2022-09-02Cleanup: Use C++ vector types in node editorHans Goudey
2022-09-02Nodes: Use existing nodes span cacheHans Goudey
Use cache from 25e307d725d0b924f rather than creating a new vector on every redraw.
2022-09-01Node Editor: Visual tweaks to node linksLeon Schittek
Several visual tweaks to node links to make them overall fit in better with the look of the node editor: - Change the link thickness with the zoom level to a certain degree. - Remove the fuzziness of the node link and its shadow/outline. - The link outline color can now be made transparent. - Add circles at the end of dragged links when connecting to sockets. - Improve the banding of the color interpolation along the link. - Adjust the spacing of dashes along straight node links. Reviewed By: Pablo Vazquez, Hans Goudey Differential Revision: http://developer.blender.org/D15036
2022-08-31Nodes: move NodeTreeRef functionality into node runtime dataJacques Lucke
The purpose of `NodeTreeRef` was to speed up various queries on a read-only `bNodeTree`. Not that we have runtime data in nodes and sockets, we can also store the result of some queries there. This has some benefits: * No need for a read-only separate node tree data structure which increased complexity. * Makes it easier to reuse cached queries in more parts of Blender that can benefit from it. A downside is that we loose some type safety that we got by having different types for input and output sockets, as well as internal and non-internal links. This patch also refactors `DerivedNodeTree` so that it does not use `NodeTreeRef` anymore, but uses `bNodeTree` directly instead. To provide a convenient API (that is also close to what `NodeTreeRef` has), a new approach is implemented: `bNodeTree`, `bNode`, `bNodeSocket` and `bNodeLink` now have C++ methods declared in `DNA_node_types.h` which are implemented in `BKE_node_runtime.hh`. To make this work, `makesdna` now skips c++ sections when parsing dna header files. No user visible changes are expected. Differential Revision: https://developer.blender.org/D15491
2022-08-31Node: Mix nodeCharlie Jolly
This patch is a response to T92588 and is implemented as a Function/Shader node. This node has support for Float, Vector and Color data types. For Vector it supports uniform and non-uniform mixing. For Color it now has the option to remove factor clamping. It replaces the Mix RGB for Shader and Geometry node trees. As discussed in T96219, this patch converts existing nodes in .blend files. The old node is still available in the Python API but hidden from the menus. Reviewed By: HooglyBoogly, JacquesLucke, simonthommes, brecht Maniphest Tasks: T92588 Differential Revision: https://developer.blender.org/D13749
2022-08-29Fix T98968: Node reroute tool doesn't add to framesPratik Borhade
If reroute node lies in side the frame node boundaries then set frame node as the parent of reroute. Differential Revision: https://developer.blender.org/D15739
2022-08-29I18n: translate newly created node group socketsDamien Picard
Translate: - new group socket names - default names Input and Output - on connecting a link from another node - new geometry nodes input and output socket names Reviewed By: mont29 Differential Revision: https://developer.blender.org/D15763
2022-08-27Cleanup: pass notifiers as constCampbell Barton
2022-08-24Merge branch 'blender-v3.3-release'Philipp Oeser
2022-08-24Fix T100590: Crash when changing active image texture nodePhilipp Oeser
Mistake in own rBc76d7f7bde35. Happened when no image was set in the Image Editor already (which is now checked for). Maniphest Tasks: T100590 Differential Revision: https://developer.blender.org/D15761
2022-08-23Merge branch 'blender-v3.3-release'Philipp Oeser
2022-08-23Fix T99493: better syncing between Node Editor and Image EditorPhilipp Oeser
Since {rBb0cb0a785475}, changing the active texture in the Node Editor would also change the current image in the Image Editor. While this was an overall improvement, this was not desired when the image currently looked at was a `Render Result` or a `Viewer Node` (artists usually want to keep focus on these). With this patch, syncing the active texture change from the Node Editor to the Image Editor will now only happen if the Image Editor's current image is not a Render Result or a Viewer Node. NOTE: Syncing the active paint slot to the Image Editor still happens (even if the Image Editor's current image is not a Render Result or a Viewer Node), behavior was not changed since this is a much more explicit action while texture painting and probably desired in that case. Maniphest Tasks: T99493 Differential Revision: https://developer.blender.org/D15749
2022-08-23Merge branch 'blender-v3.3-release'Jacques Lucke
2022-08-23Fix T100579: internal links are drawn when sockets are hiddenJacques Lucke
2022-08-21Fix T100430: Restore larger node socket snap hitboxLeon Schittek
Restore old hitbox for connecting links to sockets. Commit rBd9d97db018d2 improved the node socket snapping when nodes are close together by decreasing the tolerance around the cursor when checking for nodes in front, that might occlude the socket. In doing so it also reduced the hitbox of the node socket itself that extended outside of the node. This commit restores the old node socket hitbox while keeping the improved behavior when nodes are close together with the following changes: 1) When looking for the socket under the cursor, iterate through the nodes front to back, which prioritizes node sockets in the foreground. 2) Instead of checking for another node underneath the cursor it checks if the socket is actually occluded by another node. The way the occlusion test for sockets is tweaked you can now connect to sockets that are only partially occluded, which is a bit more forgiving than previously. Reviewed By: Hans Goudey Differential Revision: http://developer.blender.org/D15731
2022-08-21Fix T100430: Restore larger node socket snap hitboxLeon Schittek
Restore old hitbox for connecting links to sockets. Commit rBd9d97db018d2 improved the node socket snapping when nodes are close together by decreasing the tolerance around the cursor when checking for nodes in front, that might occlude the socket. In doing so it also reduced the hitbox of the node socket itself that extended outside of the node. This commit restores the old node socket hitbox while keeping the improved behavior when nodes are close together with the following changes: 1) When looking for the socket under the cursor, iterate through the nodes front to back, which prioritizes node sockets in the foreground. 2) Instead of checking for another node underneath the cursor it checks if the socket is actually occluded by another node. The way the occlusion test for sockets is tweaked you can now connect to sockets that are only partially occluded, which is a bit more forgiving than previously. Reviewed By: Hans Goudey Differential Revision: http://developer.blender.org/D15731
2022-08-17Merge branch 'blender-v3.3-release'Hans Goudey
2022-08-17Fix: Node editor context path for curves objectsHans Goudey
The object data path item wasn't added properly. Also remove some of the unnecessary variables and forward declarations.
2022-08-15GPU: replace GLEW with libepoxyChristian Rauch
With libepoxy we can choose between EGL and GLX at runtime, as well as dynamically open EGL and GLX libraries without linking to them. This will make it possible to build with Wayland, EGL, GLVND support while still running on systems that only have X11, GLX and libGL. It also paves the way for headless rendering through EGL. libepoxy is a new library dependency, and is included in the precompiled libraries. GLEW is no longer a dependency, and WITH_SYSTEM_GLEW was removed. Includes contributions by Brecht Van Lommel, Ray Molenkamp, Campbell Barton and Sergey Sharybin. Ref T76428 Differential Revision: https://developer.blender.org/D15291
2022-08-09Compositor: Rename compositor build optionOmar Emara
Currently, the compositor can be disabled using the WITH_COMPOSITOR build option. Since, we intent to always build the realtime compositor, we need to make the distinction between both compositors clear. So this patch renames the option to WITH_COMPOSITOR_CPU. Additionally, the check for the option was moved inside the compositor modules' own CMake file in preparation for the realtime compositor code. Differential Revision: https://developer.blender.org/D15622 Reviewed By: Jeroen Bakker, Ray Molenkamp
2022-08-04Cleanup: Move RNA path functions into own C++ fileJulian Eisel
NOTE: This is committed to the 3.3 branch as part of D15606, which we decided should go to this release still (by Bastien, Dalai and me). That is because these are important usability fixes/improvements to have for the LTS release. Adds `rna_path.cc` and `RNA_path.h`. `rna_access.c` is a quite big file, which makes it rather hard and inconvenient to navigate. RNA path functions form a nicely coherent unit that can stand well on it's own, so it makes sense to split them off to mitigate the problem. Moreover, I was looking into refactoring the quite convoluted/overloaded `rna_path_parse()`, and found that some C++ features may help greatly with that. So having that code compile in C++ would be helpful to attempt that. Differential Revision: https://developer.blender.org/D15540 Reviewed by: Brecht Van Lommel, Campbell Barton, Bastien Montagne
2022-08-02Nodes: Remove node after link drag search cancelHans Goudey
Remove the node if the transform operation is cancelled rather than confirmed. This is consistent with the regular search menu.
2022-08-02Cleanup: simplify function for adding node to editorHans Goudey
Split it into two functions, one for static node types, and another for ID names.
2022-07-29Cleanup: Move RNA path functions into own C++ fileJulian Eisel
Adds `rna_path.cc` and `RNA_path.h`. `rna_access.c` is a quite big file, which makes it rather hard and inconvenient to navigate. RNA path functions form a nicely coherent unit that can stand well on it's own, so it makes sense to split them off to mitigate the problem. Moreover, I was looking into refactoring the quite convoluted/overloaded `rna_path_parse()`, and found that some C++ features may help greatly with that. So having that code compile in C++ would be helpful to attempt that. Differential Revision: https://developer.blender.org/D15540 Reviewed by: Brecht Van Lommel, Campbell Barton, Bastien Montagne
2022-07-29Cleanup: Nodes: Store node group idname in tree typeHans Goudey
There was already a utility to retrieve the correct node group idname from the context, `node_group_idname`, but often it's clearer to use lower-level arguments, or the context isn't accessible. Storing the group idname in the tree type makes it accessible without rewriting it elsewhere.
2022-07-27Nodes: Allow using escape key to exit node resizingHans Goudey
2022-07-26Fix T98982: cannot change default value of some node group input typesJacques Lucke
2022-07-25Fix T99880: no node timing for frames in node groupsJacques Lucke
2022-07-22Curves: support sculpting on deformed curvesJacques Lucke
Previously, curves sculpt tools only worked on original data. This was very limiting, because one could effectively only sculpt the curves when all procedural effects were turned off. This patch adds support for curves sculpting while looking the result of procedural effects (like deformation based on the surface mesh). This functionality is also known as "crazy space" support in Blender. For more details see D15407. Differential Revision: https://developer.blender.org/D15407
2022-07-20Fix T99847: Dragging image from Image Editor to Node Editor brokenJulian Eisel
Oversight in b0da080c2cb9. The `session_uuid` operator property wouldn't be checked by the invoke callback, and if neither the `filepath` nor the `name` property were set, the File Browser would open.
2022-07-11Fix/Cleanup UI messages.Bastien Montagne
2022-07-07Cleanup: Remove redundant filtering of legacy normal attributeHans Goudey
This is already done inside of `attribute_search_add_items`.
2022-06-30Cleanup: Remove scene frame macros (`CFRA` et al.)Julian Eisel
Removes the following macros for scene/render frame values: - `CFRA` - `SUBFRA` - `SFRA` - `EFRA` These macros don't add much, other than saving a few characters when typing. It's not immediately clear what they refer to, they just hide what they actually access. Just be explicit and clear about that. Plus these macros gave read and write access to the variables, so eyesores like this would be done (eyesore because it looks like assigning to a constant): ``` CFRA = some_frame_nbr; ``` Reviewed By: sergey Differential Revision: https://developer.blender.org/D15311
2022-06-23Fix T94621: Missing selection indication for virtual node socketsMax Edge
A small regression as a result of adding a custom outline to the empty virtual socket, which ended up overriding the colors when selected with Shift+LMB. Differential Revision: https://developer.blender.org/D15103
2022-06-03Geometry Nodes: Show supported types in geo socket tooltipAngus Stanton
Show the supported geometry types returned by geometry node socket declarations in the socket inspection tooltip. Differential Revision: https://developer.blender.org/D14802
2022-06-03Compositor: add pre/post/cancel handlers and background job infoPhilipp Oeser
Main motivation is from T54314 where there was no way to read from a Viewer image datablock after the compositor has run. The only solution there was to do a full rerender (which obviously takes much longer). Adding a handler avoids having to rerender. This uses new syntax from rBf4456a4d3c97 and also adds "COMPOSITE" as a job type that can be queried by `bpy.app.is_job_running`. NOTE: there is another issue when multiple viewers are used and these get active via RNA (compo execution is not triggered there yet -- unlike when a viewer is selected in the Editor -- this is an issue of `ED_node_set_active` vs. only `nodeSetActive`, but this will be tackled separately) Maniphest Tasks: T54314 Differential Revision: https://developer.blender.org/D15078
2022-06-01Cleanup: use 'e' prefix for enum typesCampbell Barton
- CustomDataType -> eCustomDataType - CustomDataMask -> eCustomDataMask - AttributeDomain -> eAttrDomain - NamedAttributeUsage -> eNamedAttrUsage
2022-05-31Geometry Nodes: Don't allow UI attributes as modifier field inputsJacques Lucke
This is an extension of 4669178fc3786e1, applying the same changes to attributes chosen in the field inputs of the geometry nodes modifier. If a UI/internal attribute is used, the attribute name button will have a red alert. Adding a disabled hint is currently a bit more complex. Also hide UI attributes in attribute search for the named attribute node. Part of D14934
2022-05-30Fix T96157: Make size of Frame Node label independent from Line WidthDominik Fill
This commits corrects the calculation of the Frame Node label size, making it independent of the 'Line Width' user preference. Since `U.dpi` is actually DPI divided by `U.pixelsize` and `U.pixelsize` is calculated from line-width multiplying by `U.pixelsize` undoes the connection between line-width and label size. It now stays the same, regardless of the line-width setting. Reviewed By: Julian Eisel, Harley Acheson Differential Revision: https://developer.blender.org/D14338
2022-05-30Cleanup: Clang tidyHans Goudey
Mostly duplicate includes, also use nullptr, and using default member initializers.
2022-05-30Nodes: add separately allocated runtime data for nodes and socketsJacques Lucke
This is a follow up to rBbb0fc675822f313c5546a2498a162472c2571ecb. Now the same kind of run-time data is added to nodes and sockets. Differential Revision: https://developer.blender.org/D15060
2022-05-25Cleanup: spelling, unbalanced doxy sectionsCampbell Barton
2022-05-24Drag & drop: Use session UUID of IDs instead of name for droppingJulian Eisel
Dropping would pass the name of the ID to drop to the properties of the drop operator. This would then lookup the ID by name. With linking and/or library overrides, multiple IDs of the same name and type may exist, which is why the session UUID should be used instead. All operators used for dropping support this now and the drop code passes the session UUID instead of the name. Also see 917c096be6b9 and 8f79fa9c6780. Some drop operators were already using the session UUIDs. This converts the remaining ones. The "name" property is kept working as before, since some scripts use this. Side-effect: The "Name" property won't show up in the Adjust Last Operation anymore, which was the case for some of these operators, and its value won't be remembered over multiple executions of the operator. Both were not at all useful from what I can tell, and I doubt this was done intentionally.
2022-05-24Cleanup: Use new helpers for passing IDs from drag & drop to operatorsJulian Eisel
There are now some generalized helpers for passing IDs from drag & drop to operators via operator properties, mostly introduced in 917c096be6b9 and 8f79fa9c6780. These can be used in a bunch of places to reduce duplicated code and explicitly share a common solution. Side-effect: The "Name" property won't show up in the Adjust Last Operation anymore, and its value won't be remembered over multiple executions of the operator. Both were not at all useful from what I can tell, and I doubt this was done intentionally.