Commit Graph

583 Commits

Author SHA1 Message Date
Pratik Borhade
dda364637c Fix #130059: Rigify Limb menu disppears for some rotation fields
Caused by 78b9218c98
Undefined `iface_` is used, this terminates execution of further UI panel draw
code. Fix this by importing iface_ from module.

Pull Request: https://projects.blender.org/blender/blender/pulls/130063
2024-11-12 12:08:53 +01:00
Campbell Barton
cd07e729a2 Fix #130024: addon_utils.enable(..) doesn't setup extensions wheels
addon_utils.enable/disable now handle wheels so that the functions can
be used with extension add-ons.

A new argument `refresh_handled` supports scripts handing refresh
themselves which is needed to avoid refreshing many times in cases
when there are multiple calls to enable/disable.

This is mostly useful for internal operations.
2024-11-09 11:44:34 +11:00
Campbell Barton
08693d05c1 Fix missing wheel refresh after updating extensions
Applying all available updates wasn't re-synchronizing wheels.
2024-11-09 00:41:23 +11:00
Campbell Barton
ec22e967ad Fix error installing extensions with wheels
Error in [0] caused versions not to match when enabling
extensions after installation or upgrade.

[0]: a3a3dda563
2024-11-09 00:41:21 +11:00
Campbell Barton
67865cb73a Tests: add tests to ensure literal paths are properly handled
Add tests to ensure literal paths are handled properly
(created as part of the fix for #129724).
2024-11-08 16:08:38 +11:00
Campbell Barton
4be66511de Extensions: quote paths in error messages, improve missing file error 2024-11-08 16:08:38 +11:00
Campbell Barton
ae5f5c5bca Fix #129724: building extensions fails with non empty paths 2024-11-08 16:08:38 +11:00
Campbell Barton
a3a3dda563 Extensions: support for filtering based on Python versions
Support multiple extensions with different Python versions in a similar
way to how "platforms" are handled now.

This will be needed when Blender upgrades to a newer version of Python
so extensions which have a binary dependency on Python 3.11 don't
attempt to install in a Blender built with a newer Python version.

Details:

- Extensions from incompatible Python versions are not listed.
- Python versions are extracted from wheel names.
- An extension may include wheels for multiple Python versions,
  only the compatible wheels will be installed.
- Links may include a "python_versions" field which is checked
  when dropping into Blender.
- JSON generated by the "server-generate" command include the:
  "python_versions" field for extensions that include wheels.
- The "python_versions" field is optional, when omitted no version
  checks are performed.

Also correct watch_test make target.

Ref #128750.
2024-11-07 18:16:11 +11:00
Campbell Barton
3d76e43e4a Extensions: exclude "wheels" from the static JSON package listing
While relatively harmless, it's unnecessary bloat.
2024-11-06 11:47:51 +11:00
Julien Duroure
1f5d24fe0d glTF exporter: Fix some UDIM export
- Do not export tiles if no vertices in it
- fix check jpg & webp detection for udim textures
2024-10-31 15:11:51 +01:00
Julien Duroure
912c85bb9d glTF exporter: Fix #129407 - fix crash when step is != 1 and actions are not aligned
Example:
Step is 3
Action starts at 1, so the action will try to export frames 1 / 4 / 7 / 10, etc...
But full object backing is enable, and scene starts at 0.
So cached data are on frame 0 / 3 / 6 / 9 / 12, etc...

When we are trying to export the action on armature after the full bake on empty, we are trying to retrieve frame 1, but cache was on 0 / 3 / 6 / 9
2024-10-31 14:52:55 +01:00
Julien Duroure
1d108b0d77 glTF exporter: Fix Regression #128807 - avoid spaming stdout
error log will go to stderr, and others to stdout
A new parameter in operator to set the loglevel from command line bpy.ops.export_scene.gltf(loglevel=logging.INFO)
If not set from the ops, value is -1, and is set, as before, from the bpy.app.debug_value
2024-10-31 14:28:40 +01:00
Julien Duroure
c872ae4959 glTF exporter: Fix regression exporting animated camera
Was introduced bu KHR_animation_pointer
2024-10-31 14:15:24 +01:00
Julien Duroure
d723afe49f glTF exporter: Fix regression exporting emission with texture
Regression was introduced by KHR_animation_pointer
2024-10-31 14:08:22 +01:00
Julien Duroure
2c67b22bbb glTF exporter: Remove some typing
This crashes bpy as a module (not sure why)
Cf #126807
2024-10-31 14:00:15 +01:00
Julien Duroure
0b3010d84c glTF exporter: Fix #128647: Make KHR_materials_variants a not required extension
This extension is enabled, but not required for reading the file
2024-10-31 13:53:51 +01:00
Julien Duroure
fb2edb17d9 glTF exporter: fix typo in hook name
Preventing having 2 hooks with same name at different places
2024-10-31 13:44:37 +01:00
Julien Duroure
16754328f6 glTF exporter: Manage alpha when performing RGB2BW conversion
Based on what is visually done in viewport
2024-10-31 13:39:04 +01:00
Julien Duroure
080877be6b glTF exporter: Fix #129548 - Regression - Export ShapeKeys when only Armature modifier
Set a custom property (ignore at export) that can identify and differenciate:
- evaluated mesh
- geometry node with SK
2024-10-31 13:27:37 +01:00
Julien Duroure
e04ac909b2 glTF: Set min Blender version 4.3
Because Draco lib is avaiable for bpy as a module only since 4.3
2024-10-31 13:18:08 +01:00
Julien Duroure
b25da97fef glTF: Fix #113469: enable Draco compression for bpy as a py module
By looking in correct directory for bpy module
This was of course already available for Blender itself since few years
2024-10-31 13:13:19 +01:00
Campbell Barton
790fdd35b4 Fix hydra storm add-on not showing material preview
Check panels COMPAT_ENGINES contains BLENDER_EEVEE_NEXT.
2024-10-30 11:35:52 +11:00
Bastien Montagne
678e6adc52 Fix (bcon24 reported) FBX export: objects export order being unreliable.
Now always order exported objects by their names, regardless of their
source (collection, viewlayer, selection...).
2024-10-29 12:28:08 +01:00
Campbell Barton
e3e6dd8fdb Fix #125958: Disable/uninstall an add-on can keep its dependencies
Python wheels from extensions were not being removed after
install/uninstall in some cases - although installing an extension
afterwards that used wheels would recalculate deps & remove them.

- Installing an extension didn't include the extension in the
  compatibility-cache, causing uninstalling not to remove deps.
- Uninstalling an extension wasn't re-calculating the deps,
  leaving them as-is.

Always write the compatibility-cache after installing and uninstalling
so changes are detected & handled.
2024-10-24 20:53:07 +11:00
Campbell Barton
21457db162 Cleanup: remove deprecated typing use for extensions utility
Also replace some uses of Generator with Iterator.
2024-10-23 15:44:06 +11:00
Campbell Barton
f4f50fa2c5 Cleanup: replace typing.Union/Option with logical OR for extensions
Also remove use of deprecated typing.Sequence.
2024-10-18 10:08:12 +11:00
Campbell Barton
a66601ee95 Cleanup: remove deprecated typing built-ins for extension logic
Deprecated since Python 3.9 but still used in many docs/examples.
2024-10-17 19:11:40 +11:00
Julien Duroure
665d7378c0 glTF: cleanup formating 2024-10-16 17:25:26 +02:00
Campbell Barton
44d0452a78 Cleanup: spelling in comments 2024-10-15 12:51:05 +11:00
Campbell Barton
3f7e14295f Cleanup: format 2024-10-11 11:00:24 +11:00
YimingWu
87f227ef7a Fix #128838: Extension: Support _universal2 suffix for Mac
Some python wheels can have `_universal2` suffixes which are built for
both intel and arm architectures. This fix takes care of that.
2024-10-10 21:15:33 +08:00
Campbell Barton
b0fb6a1b2c Fix #128840: extension build asserts when "type" is missing
Building an extension when the manifest didn't define a "type"
would assert instead of reporting the missing field.

Return earlier when there are errors to prevent the assertion.
2024-10-10 23:28:11 +11:00
Jordan Henshaw
70a429bb18 UI: Fix missing hyphen in "Addon Tags" label
Add missing hyphen for consistency with rest of UI,
following the Human Interface Guidelines.

Pull Request: https://projects.blender.org/blender/blender/pulls/127822
2024-10-08 18:23:58 +02:00
Campbell Barton
1563ba7e6c Fix #128175: Updating extension can remove the extension on WIN32
On Windows an entire directory may be locked when any files inside it
are opened by another process. This can cause operations that
recursively remove a directory (uninstalling & updating) to fail
with a partially removed extension.

The case of uninstalling was already handled, where failure to remove
a directory would stage the extension for later removal.
In the case of updating however, the user could be left with a broken
(partially removed) extension where some files were removed, as the
directory was locked, the update would fail to extract new files.

Address this issue by renaming the directory before recursive removal.

The following logic has been implemented:

- If any files in the directory are locked, renaming will fail.
  So even though the operation fails the extension is left intact.

- If renaming succeeds, it's possible to apply the update.

  While it's possible (albeit unlikely) recursive removal fails,
  which could be caused by file-system permissions issues corruption or
  a process could open a file between rename & removal.

  In this case the renamed directory is staged for later removal.

Other changes:

- Resolve a related problem where the user could install an
  extension previously staged for removal, now installing an extension
  ensured it's not removed later.

  This would occur if uninstalling failed, the user resolves
  directory-lock, uninstalls again, then re-installs the extension.

- When an extension fails to be removed, don't attempt to remove
  user configuration for that extension.

  Prefer to keep the extension & it's settings in their "current state"
  if it can't be removed.
2024-10-03 12:15:27 +10:00
Campbell Barton
0b69e1d6f5 Cleanup: double quotes for strings, replace f-string with str.format 2024-10-02 15:46:11 +10:00
Campbell Barton
729004390d Cleanup: quiet pylint warnings for extensions 2024-10-01 16:07:05 +10:00
Campbell Barton
38c30c5c43 Extensions: resolve test failing
Enable the extensions add-on by default, without this, it's enabled
on startup, causing the preferences to be tagged as modified.
2024-10-01 15:36:54 +10:00
Campbell Barton
22cdf8da1e Extensions: only apply SSL workaround for Python older than 3.12.6
Skip the workaround for versions of Python that contain the fix.
2024-10-01 13:06:05 +10:00
Campbell Barton
0afce08c20 Cleanup: use Python format specifiers 2024-10-01 10:14:48 +10:00
Campbell Barton
6cbdf0223b Cleanup: defer imports on startup 2024-10-01 10:01:16 +10:00
Campbell Barton
a9dee36974 Cleanup: remove unused variables, imports 2024-09-27 23:37:18 +10:00
Julien Duroure
3cfeebe7c7 glTF exporter: fix crash managing shader node groups
Happen when multiple link on the same socket
2024-09-26 15:22:13 +02:00
Julien Duroure
98a7aa2c41 glTF importer: Fix #127829: Importing Vertex Color on points / edges primitives 2024-09-26 15:11:43 +02:00
Julien Duroure
0208582c16 glTF exporter: Fix exporting Vertex Color on point/edge 2024-09-26 15:02:47 +02:00
Julien Duroure
d5f1ff250b glTF exporter: fix crash using full collection hierarchy export 2024-09-26 14:51:15 +02:00
notrudyyy
1939eb03a7 Refactor: Mesh: Normalize input normals in set custom normals
To reduce code duplication in importers, modifies the C++
set_custom_normals API functions to normalize the input normals.

Reverts !124336, !124267, and !124261 as the normalization now
occurs in the API call.

Resolves #124358.

Pull Request: https://projects.blender.org/blender/blender/pulls/127814
2024-09-19 20:12:40 +02:00
Jesse Yurkovich
b8f236510d Fix: error in node wrangler format string 2024-09-16 04:50:18 +02:00
Jacques Lucke
92febd5fb2 Fix: error in node wrangler format string 2024-09-14 13:29:45 +02:00
Mateusz Grzeliński
6822e61c6f Fix #126792: "extension install" sub-command fails to install
Do not report error when local repo does not have manifest and we are
asking for remote repositories.
If the errors list is filled with any error the operation is considered
failure.

Ref: !127360
2024-09-13 16:43:49 +10:00
Julien Duroure
00bc059894 glTF: Fix typo in a previous commit 2024-09-12 15:50:58 +02:00