Blender Git Commit Log

All Blender Git commits.

Page: 868 / 8462

March 3, 2021, 17:15 (GMT)
Cleanup: use zero_v3 to clear colors.
March 3, 2021, 17:15 (GMT)
Cleanup: Make node_composite_cryptomatte CPP.

Core API of cryptomatte is also CPP.
March 3, 2021, 17:15 (GMT)
Cleanup: clang tidy

Warnings:
* readability-inconsistent-declaration-parameter-name
* readability-redundant-smartptr-get
March 3, 2021, 17:15 (GMT)
Cleanup: clang tidy

Can use const parameter.
March 3, 2021, 17:15 (GMT)
Cleanup: clang tidy

Warning: else-after-return/break
March 3, 2021, 17:15 (GMT)
Cleanup: make format
March 3, 2021, 17:15 (GMT)
Fix (unreported) Outliner missing updates copying IDs via python

Steps to reproduce:
- switch to Scripting workspace
- execute bpy.data.meshes['Cube'].copy()
- Outliner will not show the new mesh immediately

Now just send appropriate notifier.

Differential Revision: https://developer.blender.org/D10584
March 3, 2021, 17:15 (GMT)
Nodes: store references to bNodeLinks in NodeTreeRef

Sometimes it is useful to have this information available to be able
to read information from links.
March 3, 2021, 17:15 (GMT)
Fix crash when dragging nodes

The `bNodeLinkDrag` struct was NULL when dragging a node instead of
a link. It is allocated with `calloc` anyway, so this field doesn't
need to be explitely cleared.
March 3, 2021, 17:15 (GMT)
Cleanup: minor changes to Python RNA pointer assignment

Don't assign the BPy_StructRNA a value which can be 'None',
instead, set it to NULL.
March 3, 2021, 17:15 (GMT)
Cleanup: Use span and float matrix type in direct boolean code

This commit includes a few simple improvements to the direct mesh
boolean code added recently.
- Passing the transforms and meshes to `direct_mesh_boolean` as spans
makes the function easier to call from C++.
- The definition of `TransMat`, was unecessary when we have the
`float4x4` type already used elsewhere in C++ code.

Differential Revision: https://developer.blender.org/D10592
March 3, 2021, 17:15 (GMT)
Fix T85966: Wrong link picked when dragging multi-input socket

The socket drag operator stored the index of the last picked socket
into RNA in case the mouse cursor leaves the link while dragging.

This id was not unique which is why sometimes a link from an other node
with the same id is picked.

This patch changes the way the last picked link is stored and stores a
pointer to the link directly into bNodeLinkDrag struct instead.

Differential Revision: https://developer.blender.org/D10590
March 3, 2021, 17:15 (GMT)
Cleanup: spelling, minor corrections

Also use doxygen comments for sculpt functions.
March 3, 2021, 17:15 (GMT)
Python API: Expose CurveMapping Reset View function

The Python API for the curve mapping widget offers the `update`
function, but no way to reset the view to the clipping rectangle.

This commit adds a blenkernel function for this operation,
and exposes it to the CurvMapping RNA API. This allows addons
to display a more user-friendly view of the data in this widget.

Differential Revision: https://developer.blender.org/D10561
March 3, 2021, 17:15 (GMT)
Geometry Nodes: Attribute search drop-down

This commit adds a search for existing attributes when you click
on an attribute field. This is useful because otherwise you have
to remember which attributes should be available at each node in
the tree.

The fundamental complication is that this information is not
accessible statically. So the search data is only a cache from
the previous node tree evaluation. The information is added
with `BKE_nodetree_attribute_hint_add`, currently for every
input geometry socket for a single node.

This is only an initial implementation, and later versions will
expose the data type and domain of the attributes.

Differential Revision: https://developer.blender.org/D10519
March 3, 2021, 17:15 (GMT)
UI: Rename search button variable

I landed D10527 in rB1a8aee0a7cec accidentally, and the version there was
missing a name change discussed in review. This commit just renames the
boolean variable controlling the special behavior for attribute search.

Original message meant for this change:
For geometry nodes we will use search buttons to display a list of
attributes available the last time the node tree was executed (D10519).
Because this list is just a hint, we need to be able to enter any string,
not just strings from the search items.

This patch adds a boolean option to string buttons to enable this.
The change is quite simple, changes to behavior are only required in
two places. The type-specific button struct changes help a lot here.

Differential Revision: https://developer.blender.org/D10527
March 3, 2021, 17:15 (GMT)
CMake/deps: Append platform CFLAGS and LDFLAGS to Python build to ensure compatibility with minimum macOS version

Similarly to other dependencies, the Python build should make use of the default CMake arguments. On macOS, for example, these arguments are required to set the deployment target correctly.

See also: https://devtalk.blender.org/t/compiling-latest-branch-on-macos-fails-undefined-symbol/17649

Reviewed By: brecht, sybren

Differential Revision: https://developer.blender.org/D10498
March 3, 2021, 17:15 (GMT)
UI: Clean up labels and descriptions: "Draw" to "Display"

In Blender, we used to use the term 'draw' to refer to information
displayed to the user. For version 2.80, it was decided to change these
instances to 'display' instead. This was to avoid the ambiguity between
end-user drawing tools and display options.

From the Oxford English Dictionary:
- Draw: produce (a picture or diagram) by making lines and marks on
paper with a pencil, pen, etc.
- Display: show (data or an image) on a computer, television, or
other screen.

Therefore, we should use draw when referring to drawing tools for
making marks, but use display when referring to information
shown/displayed to the user. From a user POV, the computer displays
certain information, whereas the user draws a mark.

Apparently this change was not implemented consistently, so this patch
changes all remaining relevant instances of "draw".

Differential Revision: https://developer.blender.org/D10551
March 3, 2021, 17:15 (GMT)
UI: Expose an "is first search" boolean to search button callbacks

Currently when you open an RNA collection search button, like a
vertex group selector, the search filter isn't applied until you
start typing, in order to display every option at the start.
Otherwise they wouldn't be visible, since the search filter would
run for the current text.

Currently this check happens in one place, but it relies on the
`changed` value of `uiBut`. This is fine in the interface directory,
but anywhere else it would require exposing `uiBut.changed`, which
is probably too low-level to expose.

The solution is adding an `is_first` argument to the search callbacks,
which is nice for a few reasons:
- They work at a higher level of abstraction, meaning they don't
have to worry about how exactly to tell if this is the first
search.
- It makes it easier to do special behavior when the search menu
is first opened.
- Then, obviously, it makes that state accessible without including
`interface_intern.h`.

Needed for attribute search: T85658

Differential Revision: https://developer.blender.org/D10528
March 3, 2021, 17:15 (GMT)
Fix Node UI Storage Threading Issues

Since the same node tree can be used in modifiers on different objects,
there can be multiple threads writing to the maps in the node tree UI
storage at the same time. The additions for attribute name hints and
error messages made it so this would often cause a crash or at least
an ASAN report. This patch adds locks to prevent multiple threads
from using the maps concurrently.

In a brief test I actually didn't observe a crash without the global
`bNodeTree` UI storage mutex, but I think it's necessary for the change
to be correct, and I did notice some unfreed memory without it anyway.
Ideally it would be in a node tree runtime struct though.

Differential Revision: https://developer.blender.org/D10577
By: Miika HämäläinenLast update: Nov-07-2014 14:18MiikaHweb | 2003-2021