Age | Commit message (Collapse) | Author |
|
|
|
The versioning code introduced in rB38df935c0985 skips the composite node
tree that is used by the scene thus not correctly versioning Set Alpha
nodes outside of node groups. This fix iterates through all node trees to
version all Set Alpha nodes.
Reviewed By: JacquesLucke
Differential Revision: https://developer.blender.org/D10110
|
|
AMD 21.1.1 still has the same issues as reported in T82856.
|
|
Hans noticed that these dirty flags are only used for normals currently
and that the edge flag is not used at all. This patch still applies the
"entire" fix with all four flags.
Differential Revision: https://developer.blender.org/D10193
|
|
The issue was that boolean custom data layers were not written to files,
because the dna struct name `bool` does not exist. Adding a struct that
just contains a `bool/uint8_t` does not seem to be possible, it looks like
the minimum dna struct size is 4 bytes.
The proposed solution has two parts:
1. Write the custom data layer using `BLO_write_raw` instead of
`BLO_write_struct_array_by_name`.
2. When loading a file, reinitialize any custom data layer that was
not saved correctly (this is just a fix for existing files).
Differential Revision: https://developer.blender.org/D10194
|
|
|
|
Support custom revert actions, necessary for recover operations
to be able to reload the file with scripts enabled.
|
|
This function was doing too many things, with behaviors fairly different
depending on its input parameters. This was making the code fragile and
hard to follow.
Split it in three:
* `ed_undo_step_pre` does the common actions before we actually undo
data.
* `ed_undo_step_post` does the common actions after we have undone/redone
data.
Then, `ed_undo_step_direction`, `ed_undo_step_by_name` and
`ed_undo_step_by_index` do their actual specific actions, with their own
logic.
Note: Since the actual behavior of those three funtions is fairly
different (the first only undo/redo one effective step, the second is only
supposed to **undo** //before// given named step, and the third actually
undo/redo until given indexed step become active), we could also find
better names for those. right now, it sounds like they are doing the
same thing, with just different ways to specify the target step.
Note: This is part of on-going refactor work on undo system, see T83806.
Differential Revision: https://developer.blender.org/D10112
|
|
|
|
|
|
Support recovering blend files with scripts enabled,
needed to fix T85011, can be useful in general too.
Adding this also resolves an assert in BKE_autoexec_match,
since it ran even when scripts were enabled.
|
|
|
|
|
|
- Return success from WM_recover_last_session
- Avoid setting global variables is already called in WM_file_read.
While it didn't cause any problems, these assignments ran even when
recovering the session failed to load the file.
- Return OPERATOR_CANCELLED when the operator fails.
Returning success is needed to fix T85011.
|
|
|
|
|
|
|
|
|
|
Regression in recent commit c13383da416c9c99d03058caaf66c736af0272cb
which swapped undo/redo when calling the handlers.
Ref D10200
|
|
|
|
Issue is visible here https://developer.blender.org/F8626313.
If there is enough space for both the item name and the library hint, display
both. Otherwise, clip either the item name, the library hint, or both so that
not more than 60% and 40% of the available width are used repectively.
There are further improvements we could do, as noted in T84188, this just fixes
the regression for the release.
Part of T84188. There were multiple reports about this, see merged in and
mentioned reports in T84188 and T78012.
|
|
|
|
|
|
Displacement Smear brush.
Reviewed By: pablodp606
Maniphest Tasks: T84031
Differential Revision: https://developer.blender.org/D9956
|
|
|
|
The RNA path used for animating the settings passed to the node tree
is incorrect. Currently it's just `settings.property_name`, but it's
the path from the ID, not the modifier, so it should be
`modifiers[modifier_name].settings.property_name`.
However, the "Settings" struct is separated in RNA and DNA, which means
that the callback to get the RNA path does not know about the modifier's
name in order to fill the above path, so some reference to the modifier
in the "Settings" struct would be necessary, which would create a
convoluted layout in the `ModifierData` struct.
Instead, this commit simply removes the "Settings" struct from RNA,
which isn't as elegant from the point of view of the Python API,
but otherwise it's a nice simplification. Note that we don't remove the
"Settings" struct from DNA, because it would break reading old files.
Differential Revision: https://developer.blender.org/D10175
|
|
Important lesson to be learned here, leaving comments
is great and in the moment, they usually make sense.
Many months later they may not quite make as much sense
any more and time will have to be spend to figure out
what was meant, all of this would have been averted with a
better comment.
The zero terminator in this case, I can find no evidence
of it being used or relied on at any point. It does however
break GTests's `EXPECT_EXIT` macro that stops looking in
the output as soon as it sees the zts and doesn't end up
looking at the actual assert text being thrown. Which in
turn makes the`fcurve_active_keyframe`test fail when run
in debug mode on windows.
|
|
First step towards a better handling of relationships between IDs in
override context, especially when a resync is needed.
First, introduce a new flag to override operations,
`IDOVERRIDE_LIBRARY_FLAG_IDPOINTER_MATCH_REFERENCE`, for ID pointers.
It keeps track of whether an RNA ID pointer has been kept to its
'natural overriden ID' (in override hierarchy context), or has actually
been re-assigned to some other data-block.
Second, refactor how we deal with relationships between IDs in override
hierarchy code, especially in resync case. This will fixe several cases
listed in T83811, especially the case where an ID pointer to an existing
override needs to be updated to a new one due to a matching change in
linked data.
|
|
Filtering may make the Outliner tree empty. The function to find the drop
element should just return null then and let the caller decide how to deal with
it.
|
|
This function sets the `RegionView3D` matrices to the GPU.
But the OpenGL library is not actually being used by the operator.
|
|
Although the Knife Project operator converts 3D coordinates to screen
space, it doesn't really need opengl.
Differential Revision: https://developer.blender.org/D10178
|
|
|
|
In the CompositorOperation::deinitExecution the viewer could be freed at
the same time it was drawn in the image editor or node editor. There is
a guard for that but wasn't added during the migration of the two
editors to the draw manager.
|
|
|
|
Was introduced in the previous change in the image.
|
|
The `image_get_gpu_texture` didn't use the iuser->view_index but
recalculated the requested view again. This lead to inconsistent
behavior when switching between multi view textures or stereo textures.
This has been fixed by ensuring that the `iuser->view_index` is always
used.
An Image has only place to store 2 view textures. This is done for
right/left eye compositing. A multi view texture can have more views.
This would lead to reading and writing to unallocated space.
When a multiview texture is requested that is larger than 1. It will
always be cached as being the first eye. The `gpu_view` of the Image is
also used as a cache key to check this.
|
|
This got broken in 4b1112c8c96. A fix which will be consistent with image
editor is not obviously clear, so for the time being revert the change and
go back to state which was working for a long time.
|
|
|
|
//sigh//
|
|
|
|
Avoid sticking words together when it's not absolutely necessary.
|
|
|
|
During multiview rendering the `cryptomatte_accum_buffer` is not cleared
between the views and leaves artifacts on the next view to be rendered.
This change clears the accum buffer when it already exists and will be
reused for the next view.
|
|
Passing 4x arguments for the rectangle,
mixed in with round-box radius & color wasn't very readable.
Instead, pass a `rctf` as the first argument to UI box drawing functions.
|
|
The new GPU_SHADER_2D_WIDGET_BASE shader allows us to draw
many complex shapes with anti-aliasing.
One thing it can do is draw an opaque rounded rectangle with colors
that differ between its interior and outline.
In order to do the above in a single pass I recently added an "_ex"
version of UI_draw_roundbox that exposes most of that shaders features.
This simplifies interface_draw.c by removing redundancy in the calling
of this shader by using this new uber "_ex" version.
Ref D10189
|
|
Marked unused 2017 f69678482c849d873b9686cd6068946205db7c2b)
Remove since this remains unused,
split from D10189 to allow reverting if we ever need it back.
|
|
|
|
|
|
|
|
Only offset animation if whole strip is snapped.
Bug introduced in e36c05b3d191.
Reviewed By: ISS
Differential Revision: https://developer.blender.org/D10116
|