Prevent potential problems from untrusted XML (typically themes)
traversing into data outside the intended targets.
From what I can tell it's not currently possible but changes to RNA
could allow for this which would likely go by unnoticed.
Further details in code-comments.
It was too easy to click on Install by mistake, while trying to click on
the "⌄" menu. This is particulary problematic since we enable add-ons by
default.
Co-authored by: Pablo Vazquez, based on (informal) report by Campbell Barton.
Add utility class to check extension visibility to remove
incomplete logic that was duplicated into operator code.
Also minor refactoring to reduce the number of arguments passed
to internal function.s
The Object node is not currently exposed in the XML API, but rather
implicitly created along with Mesh nodes. This prevents accessing
features that are dependent on this node, like caustics settings.
Pull Request: https://projects.blender.org/blender/cycles/pulls/8
The vertex normals and tangent space attributes are not currently exposed by
the XML API, in the Mesh node. This notably prevents the XML API user
from applying normal maps to meshes in tangent space.
To overcome this situation, this commit adds three attributes to the Mesh node:
N: vertex normals
tangent: tangents
tangent_sign: tangent signs
Nota: at the moment, these attributes are only available for non-subdivided
meshes.
Pull Request: https://projects.blender.org/blender/cycles/pulls/9
Disambiguate
- "Thickness": use "Material" for EEVEE's thickness material setting.
- "Generated": use "Texture" for texture coordinates, "Image" for
image source, keep default context for animation keyframe types.
Translate
- Split "Online access required to (check for|install) updates..."
into 2x2 messages individually translatable.
- "Geometry" input in bake node.
- "New" for the Palette ID: extract it as part of the
BLT_I18N_MSGID_MULTI_CTXT for "New".
Some issues reported by Gabriel Gazzán and Satoshi Yamasaki.
Pull Request: https://projects.blender.org/blender/blender/pulls/123404
The versioning code was introduced in 4.1 release cycle when
we were planning to release EEVEE next in 4.1. This means that
the versioning was not applied to files created in 4.1 using
EEVEE-Legacy and loaded into 4.2.
Moving the code just before the EEVEE-Legacy removal make
the versioning work as expected. There is no side effect
inside the versioning code.
Fix#123500
When enabled, jittered shadows were jittering inside the
shading light radius that is clamped to a minimum for
numerical precision reasons.
This patch sets the shadow radius to 0 only if the original
light radius is also zero, and use the former to determine
wether or not to apply jittering.
This changes the sorting for the installed extensions.
- Update.
- Enable.
- A-Z.
Don't use A-Z for "Available" extensions to prevent name manipulation
to bring an extension up on the ranks.
Match the design of !123728, rewritten to support sorting across
multiple repositories and update tags which weren't handled in the PR.
Details:
- Remove the "Filter" popover & the option "Updates Available"
since updates are now shown first.
- Add an iterator to for visible extensions to de-duplicate logic which
was copied for code that scanned for tags.
- Split out logic for drawing an extension into it's own function.
- Tags are now calculated based on visible extensions limited by search.
Accumulating allocates previous colors (which are used in
`do_vpaint_brush_blur_XXX`).
The actual problem here was that the state of `brush_use_accumulate`
was not consistent across the lifetime of strokes.
Vertexpaint was doing the allocation in `vertex_paint_init_stroke`
(**before** `update_cache_invariants` where the mode gets changed to
`BRUSH_STROKE_SMOOTH` etc.), so here it still seemed we would use
accumulation, whereas later (after internally switching the tool/brush)
this was not the case anymore, leading to wrong behavior of
`do_vpaint_brush_blur_XXX`.
So now move the allocation to `init_session_data` (same as for
weightpaint) to make sure all codepaths have a consistent state of
`brush_use_accumulate`.
NOTE: this was made more obvious since 6de6d7267f3d added SHIFT-blurring
to the keymap
Pull Request: https://projects.blender.org/blender/blender/pulls/123778
This was the case when mulitple objects had changes in multi-object-
editmode.
Similar to f8b11528b2 & 3dd08beab308, this now ensures we have mesh data
in editmode.
Pull Request: https://projects.blender.org/blender/blender/pulls/123732
On some Macs, MNEE would be disabled in Cycles to work around a bug.
However this just led to these devices skipping over MNEE related
parts of the rendering pipeline and not properly progressing through
the render.
This commit fixes this issue by properly disabling MNEE on these devices.
Pull Request: https://projects.blender.org/blender/blender/pulls/123765
This happened because `BKE_object_get_evaluated_mesh` now only returns
the mesh if there are no pending depsgraph updates. However, given that the
ID was tagged for changes before the evaluated mesh was accessed, it looked
like there were missing updates when there were not.
Now the depsgraph tag is only set after the object has actually been modified.
The currently available `wayland-protocol` libraries in lib-linux_x64
repo do not appear to be advertised 1.36 (or 1.35) versions, since the
tablet protocol is not available among the stable ones.
This reverts commit 2a85eaaf169c51cfb24d4564fa58b4c89ce6d773.
Pull Request: https://projects.blender.org/blender/blender/pulls/123774
The issue was caused by the ImBuf of the scene strip render sharing the float
buffer pixels with the ImBuf from the render result. If the render result is
ever gets freed (i.e., by a request to perform another render) it'll leave the
strip ImBuf pointing to a freed memory.
This was caused by the #109788.
The simple solution is to restore the code to the state prior to the ImBuf
refactor in the RenderRsult. A better solution would be to use implicit
sharing, similar to how it was done in the #108045.
Pull Request: https://projects.blender.org/blender/blender/pulls/123731
Provide a convenient way to access a writable directory for extensions.
This will typically be accessed via:
bpy.utils.extension_path_user(__package__, create=True)
This API is provided as some extensions on extensions.blender.org
are writing into the extensions own directory which is error prone:
- The extensions own directory is removed when upgrading.
- Users may not have write access to the extensions directory,
especially with "System" repositories which may be on shared network
drives for example.
These directories are only removed when:
- Uninstalling the extension.
- Removing the repository and its files.
When removing a repository & files a valid module name was assumed.
While this should always be the case, add an additional check so in
the unlikely event of memory/file corruption (especially `..`)
recursively removing files outside the repository is never allowed.
Recently, `volume` property has been added to scene strips. This causes
only volume property to be animated when adding fades with `fades_add`
operator.
Add fades to volume and opacity properties if these are available.
Pull Request: https://projects.blender.org/blender/blender/pulls/123236
select_box operator needs different context in preview and sequencer
regions. It wasn't specified, so it defaulted to sequencer context and
wasn't working in preview.
This PR sets poll for region and sets correct context for preview. This
also means shortcut appears on menu item in preview now.
Pull Request: https://projects.blender.org/blender/blender/pulls/123757
Changes the way the face set index generated for intialize by material.
In current implementation face set index is generated by adding 1 to
material index. In most cases it'll work fine. But in some cases hidden
face sets and material face sets can have same index.
Pull Request: https://projects.blender.org/blender/blender/pulls/123465
When autopep8 is accessed as a Python module (using `--no-subprocess`),
which is now default on MS-Windows.
- Perform version checks on the module version instead of the command.
- Remove checks for the command existing in the PATH.
- Adjust errors to make sense for a Python module.
when computing coefficients in volume, the volume density of the object
at the top of the stack is used, which leads to wrong result if
overlapping volumes have different scales.
This commit fixes the problem by pre-multiplying the volume density per
object when evaluating the shader.
Pull Request: https://projects.blender.org/blender/blender/pulls/123733
Functionality from [0] to skip-saving remote repositories was only
applied when dropping extensions. Now this is done when installing
from the file selector too.
[0]: 9b7f2c9976c4523fbee35bd0e286e92e22af5f85