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}
Checking for exact flags known to draw before the current item was
becoming overly complicated, more so now showing extension updates
depends on checking other settings.
Instead, keep track of the status info being populated or not.
- Add a report to explain why allocation fails and display
the current limit.
- Add heuristic to avoid out of memory issue.
- Remove the delay property that did not do anything
right now.
- Reduce default clip end by half.
Fix#121916
Pull Request: https://projects.blender.org/blender/blender/pulls/122572
This allows for exporting multiple versions of an asset's textures
without having to manually save or do manual edits from within the UI.
This is beneficial for game creators who might want to store the
original textures at full resolution, but then bake down at export time
for multiple different targets quality levels. It can also be good for
compressing textures for VR usage.
This only affects USDZ exports.
Default option: Keep textures at the same resolution. Choosing a
resolution will downsample any images that exceed that maximum
resolution while leaving the others.
A custom setting is provided to allow the user to manually enter their
desired size if the provided options aren't suitable.
Co-authored-by: Charles Wardlaw <cwardlaw@nvidia.com>
Pull Request: https://projects.blender.org/blender/blender/pulls/121237