The current code does not support overriding this data, and it is
generated at runtime anyway.
This may have to be revisited later, but for the time being, be
consistent and do not try to generate override data for this.
Pull Request: https://projects.blender.org/blender/blender/pulls/122554
In most common cases, an Pointer or Collection rna property needs a
custom liboverride 'apply' callback, if it supports modifying or adding
data in liboverrides.
The main change in this commit is that diffing code won't generate
anymore operations that are not supported on such properties.
In addition, the check on such invalid operations at liboverride apply
time has been turned into a `CLOG_ERROR` message, instead of an assert.
This is both more visible (as it also prints in release builds), and
less critical (as it won't terminate blender execution).
These default assignements have not actually been needed/useful since a
very long time already. It was likely a left-over from early stages of
the project. While not a problem so far, it makes it harder to
distinguish RNA properties whith a custom liboverride handling, from the
ones using the default code.
Keeping them to `nullptr` by default also makes these callbacks definition
behavior more in line with other RNA properties callbacks, which are
usually non-null only when a custom function is defined.
No behavioral changes are expected from this commit.
The 'Frame All', 'Frame Selected', and 'Frame Scene/Preview Range'
operators will now use a smaller margin. It will use the smallest of two
sizes:
- A fixed size in UI-scaled pixels, or
- 10% of the available editor width.
Previously Blender always used the latter. This was considered too
large, especially when the editor was wide.
This also unifies the margin calculations for the graph editor, dope
sheet, and timeline. Earlier versions used smaller margins for the graph
editor than for the other editors, but this is no longer necessary.
Pull Request: https://projects.blender.org/blender/blender/pulls/122320
Previously, the stroke operations were created in the `stroke_test_start`
callback function. This causes a few issues:
* Each mode had it's own `test_start` function and it's own function
to create the stroke operations.
* Only the mouse position was available for the start sample.
With this change, the `stroke_test_start` function now does nothing.
Instead, the operations are created in the common `stroke_update_step`
function using `get_stroke_operation` the first time it's called.
This also means that the start sample is populated with the correct
start pressure.
Pull Request: https://projects.blender.org/blender/blender/pulls/122555
BLF font rendering isn't compatible with render graph as it
rewrites buffers that are not yet drawn. To work around this issue
the vertex buffers should always be created on device and not
directly altered by CPU code.
Pull Request: https://projects.blender.org/blender/blender/pulls/122648
Blender crashes when the interactive GPU compositor is running in a node
editor while rendering. This is because the GPU compositor is sharing
the same GPU context used for rendering, which is not allowed. To fix
this, we use a dedicated render list for interactive compositing, to use
its dedicated GPU context.
This is implemented by keeping another render list for the purpose of
compositing and similarly clearing its context when it is no longer
needed.
Pull Request: https://projects.blender.org/blender/blender/pulls/122472
Code was getting a direction (to grow in) from the last point in a curve
and another point in the middle of the curve.
On a curve with only two points, these points were the same, resulting
in a zero delta and thus doing nothing.
To resolve, take the root point instead in this scenario to get a valid
direction.
Pull Request: https://projects.blender.org/blender/blender/pulls/122644
A variety of non-functional style changes for the recently added
DomeLight code:
- Remove unused includes and forward decls
- Changed NULL -> nullptr
- Use `motionSampleTime` name consistently
- Moved the `r_value` out parameter to the last position per our coding
guidelines
Pull Request: https://projects.blender.org/blender/blender/pulls/122641
Reduce dependence on Blender headers as much as possible and move closer
to an include-what-you-use setup.
- Removes unnecessary includes
- Replaces some includes with more appropriate, narrower, substitutes
Pull Request: https://projects.blender.org/blender/blender/pulls/122619
- Don't show the "Mouse X" and "Mouse Y" properties in the redo panel
for all the modes that don't use them.
- Use the recently added dynamic version of the "depends on cursor"
setting to only wait for mouse click for the "cursor surface" mode.
Arguably these should be different operators anyway.
- Support passing in operator ID's using Python dot syntax.
- Support define operators that haven't yet been registered
matching Blender's own behavior.
Also add doc-string for bpy.types.Macro.define.
All class methods were excluded which makes sense for methods such
as poll, draw ... etc. however this would also exclude utility methods
that aren't associated with RNA classes.
The following methods for `bpy.types` classes are now included:
- Macro.define
- UI_UL_list.sort_items_by_name
- {Header/Menu/Panel/UIList}.{append/prepend/remove/is_extended}