Age | Commit message (Collapse) | Author |
|
For this to work, the utility function needs to be callable without
context, which is only needed for a File Browser specific hack anyway
(doesn't apply to this usage of it).
|
|
Keeps files minimal and focused. I much prefer that over having all
kinds of stuff in general files like `asset_edit.cc`.
|
|
While the asset-handle design is supposed to be temporary (see
35affaa971cf), I prefer keeping the fact that it's nothing but a file
entry pointer an implementation detail that is abstracted away. So this
introduces getters for the file data we typically access for
asset-handles.
|
|
Note that the current asset-handle design is temporary, see
35affaa971cf. I still prefer this to be const, as code outside the
asset-list/file-list code should never mess with the file data of an
asset.
|
|
The asset handle design is only temporary (see 35affaa971cf) and this
RNA property is only needed for internal, technical reasons of the asset
view template. So although not nice, at least make it clear in the RNA
property description that this should not be used.
|
|
|
|
The same check used for the curve to mesh node.
|
|
The new faces should have a winding direction that points them outward,
the fix was swapping the order of each face's edge and vertex indices.
|
|
Using const indexes and offsets helps to make the logic less sequential,
which is hopefully easier to understand and possibly easier to parallelize
in the future. Also order return arguments last.
|
|
Fix segfault in `BKE_armature_find_selected_bones_test` by property
initializing the bone hierarchy listbases.
No functional changes to Blender.
|
|
If there were lots of selected objects without an existing rigid body,
we would add rigid bodies to them one by one.
This would be slow in python, now we instead do this as a batch
operation in C.
On my (Intel) MacBook it used to take 60 seconds and with this change it
takes about 0.3 seconds.
Reviewed By: Sebastian Parborg
Differential Revision: http://developer.blender.org/D11957
|
|
|
|
Remove the assumption of the pose library that Action groups are named
after the bones in the armature. Even though this assumption is correct
when the keys are created by Blender, action groups can be renamed. Keys
created by Python scripts can also use arbitrary group names.
Since there is more code in Blender making this assumption, and looping
over selected bones is also a common occurrence, this commit contains
some generic functionality to aid in this:
- `BKE_armature_find_selected_bones`: function that iterates over all
bones in an armature and calls a callback for each selected one. It
returns a struct with info about the selection states (all or no bones
selected).
- `BKE_armature_find_selected_bone_names(armature)` uses the above
function to return a set of selected bone names.
- `BKE_pose_find_fcurves_with_bones()` calls a callback for each FCurve
in an Action that targets a bone, also passing it the bone name.
|
|
No functional changes.
|
|
No functional changes
|
|
No functional changes.
|
|
Convert `pose_backup.c` (in C) to `pose_backup.cc` (in C++). This will
make future improvements easier. For now, it's the same code with just
some additional explicit casts (C++ doesn't allow implicitly casting
`void *`), `NULL` changed into `nullptr`, and some other simple changes.
No functional changes.
|
|
adding/removing AOVs
Just refresh the node's outputs via ntreeCompositUpdateRLayers().
Maniphest Tasks: T89981
Differential Revision: https://developer.blender.org/D11973
|
|
modifier, rather than button context
When done from the Properties Editor, the context's modifier should be
used (this is where the button is located), when done from elsewhere,
the active modifier is still the way to go (since the context modifier is
not available then)
Maniphest Tasks: T89982
Differential Revision: https://developer.blender.org/D11972
|
|
This caused the "cyclic" attribute to appear dysfunctional.
|
|
The node tagged polys normals dirty, but the function to calculate the
normals didn't clear the dirty flags for polys. Now clear the poly and
corner dirty normal flags.
|
|
While doxygen supports both, conform to our style guide.
Note that single back-tick's are already used in a majority of comments.
|
|
These used their own ad-hoc syntax.
|
|
|
|
|
|
The test forgot to set the new need_ids field, which luckily
exposed a bug in the C api for delaunay when that field is false.
Fixed the bug and the test, and added a test for the need_ids false
case.
|
|
Operation receiving inputs was being folded more than once
when it was constant foldable.
|
|
Wording on the UI, slider consistency and material mask switches layout.
Reviewed By: Sebastian Parborg (zeddb)
Differential Revision: http://developer.blender.org/D11839
|
|
Use C comments for plain text.
|
|
|
|
Also use `const Curve *` instead of `const Object *`, since the
function works at a lower level than objects anyway.
And also remove another unused function. Since this section of code
for converting curves to meshes will likely be replaced, it's nicer to
see which parts actually remain used at this point.
|
|
|
|
Function signatures for snap callbacks used `const` incorrectly
which was hidden by casting function types.
This made it seem as if the input arguments wouldn't be change and
wouldn't be initialized.
Name return arguments with an `r_` prefix, order them last,
remove function casts and correct `const` usage.
|
|
|
|
|
|
|
|
When fixing issues, seeing operation results can be helpful for
detecting which operation went wrong.
This commit adds an option for exporting all operations results to
image files.
Exceptions are:
- Output operations: They are already exported or can be seen in UI.
- Constant operations: There are too many and is rarely useful.
They are exported to "<temp session folder>/COM_operations/"
with filenames "<operation class name>_<operation id>.png".
Only works on full frame execution mode.
Reviewed By: jbakker
Differential Revision: https://developer.blender.org/D11722
|
|
Adds full frame implementation to this node operation.
No functional changes.
2.4x faster than tiled fallback.
Reviewed By: jbakker
Differential Revision: https://developer.blender.org/D11677
|
|
Adds full frame implementation to this node operations.
No functional changes.
2.3x faster than tiled fallback on average.
Reviewed By: jbakker
Differential Revision: https://developer.blender.org/D11686
|
|
Adds full frame implementation to this node operation.
No functional changes.
No performance changes.
Reviewed By: jbakker
Differential Revision: https://developer.blender.org/D11698
|
|
Adds full frame implementation to this node operation.
No functional changes.
No performances changes.
Reviewed By: jbakker
Differential Revision: https://developer.blender.org/D11750
|
|
Adds full frame implementation to this node operation.
No functional changes.
3x times faster than tiled fallback.
Reviewed By: jbakker
Differential Revision: https://developer.blender.org/D11635
|
|
Currently we mostly iterate buffer areas using x/y loops or through
utility methods extending from base classes.
To simplify code in simple operations this commit adds wrappers for
specifying buffer areas and their iterators for raw buffers with any
element stride:
- BufferRange: Specifies a range of contiguous buffer elements from a
given element index.
- BufferRangeIterator: Iterates elements in a BufferRange.
- BufferArea: Specifies a rectangle area of elements in a 2D buffer.
- BufferAreaIterator: Iterates elements in a BufferArea.
- BuffersIterator: Simultaneously iterates an area of elements in an
output buffer and any number of input buffers.
- BuffersIteratorBuilder: Helper for building BuffersIterator adding
buffers one by one.
For iterating areas coordinates it adds `XRange` and `YRange` methods
that return `IndexRange`.
Reviewed By: jbakker
Differential Revision: https://developer.blender.org/D11882
|
|
Although currently only the asset list code uses the asset library
reference wrapper, it can stand on its own and may be used in more
places in the future. So I prefer to give it its own source & header
file.
Also removed unused includes, added proper namespaces as per our C++
style guidelines, and removed an unnecessary TODO comment.
|
|
|
|
description string.
No operator or macro should be missing description. But if they do, then
they should use NULL pointer, and not an empty string.
This behavior was already enforced (through an assert) for operators,
previous commit made it the same for macros.
|
|
Code dealing with macro operators missing description field was slightly
different than the one from Operator registration.
This lead to invalid memory accesses in some python introspection cases
like the i18n messages extraction code in `bl_i18n_utils` module.
|
|
The keylist functions are used in other places for none drawing related
stuff. Fe pose_slide uses it.
|
|
This reverts commits
bfa3dc91b75407b063f2ac991b176d98c050f92d,
52b94049f2a71a74f52247f83657cf3a5c8712b4,
ae379714e4f1eca74f5f77532a6e959f29445236,
a770faa811ee62837eb540b0bd83ca0770f16663,
4ed029fc02b022cb5ff28ed3ce70992c450d2be5,
101a493ab556c6597ac91fba204059be67b35990 and
62a2faa7ef39130446716d7a06215cd1df1eb2ac.
And fixes T89955.
Changing the dependency graph is a can of worms and the result is
a kind of unpredictable.
A different solution will be planned.
|
|
Falback is not really necessary, and causes
`BKE_object_data_batch_cache_dirty_tag` to run multithreaded in an
unsafe way.
No functional changes.
|