Core extensions should have their bugs reported as any other issue in
Blender.
This PR removes their "Rrport a Bug" link.
I left the link only for glTF since it has its own tracker. But I
wouldn't mind removing it as well.
Ref: !125218
When dropping an extension from extensions.blender.org which is
still in the review queue - an error was shown making it seem like
the extension was not compatible with the system.
Adjust wording to clarify that it was not found in the remote repo
which can be caused by it not being part of the repository or when
it's incompatible.
Resolves#125046.
This adds two new nodes:
* `Grease Pencil to Curves`: Converts each grease pencil layer into an instance
that contains curves.
* `Curves to Grease Pencil`: Converts top-level curve instances into grease
pencil layers.
This opens up many new opportunities:
* Use grease pencil as input to other procedural systems that don't necessarily
output grease pencil.
* Generate grease pencil from scratch using geometry nodes.
* Temporarily convert grease pencil data to curves to use more powerful features
for curves processing.
Some data on layers are not attributes yet unfortunately, so there is some
special case handling for the `opacity` attribute. This was previously discussed
at the geometry nodes workshop:
https://devtalk.blender.org/t/2024-05-13-geometry-nodes-workshop-notes/34760#grease-pencil-14
Pull Request: https://projects.blender.org/blender/blender/pulls/124279
When "bl_info" was on the first line, the legacy add-on would not
install. Correct the check which would also incorrectly detect legacy
add-ons when "bl_info" wasn't found at all.
Regression in [0] caused extensions checks used the same directory & URL
for all remote repositories when checking for updates on startup.
[0]: d2049f0aa7
This PR removes the "Widget Label" text style, found in Preferences /
Themes / Text Style. This results in both labels and the text found in
input boxes sharing settings. This results in a slight loss of
customization but it isn't that useful to have these things separate
and results in code complication and errors.
Pull Request: https://projects.blender.org/blender/blender/pulls/122898
The filter for grease pencil objects wasn't showing up.
The code was still checking for the legacy type.
Now, we're checking for the right object type and
are also looking at the `bpy.data.grease_pencils_v3`
list to make the checkbox show up in the UI.
Follow up to !123570
With !122709, many Sculpt tools were changed to remove the visual brush
radius displayed by the brush cursor to avoid confusing users. This had
the unintended side effect of forcing these tools to use the default
arrow cursor.
This commit adds the PAINT_CROSS cursor back to various Sculpt Mode
tools to remain consistent within the overall mode.
Pull Request: https://projects.blender.org/blender/blender/pulls/124946
Improvements to Area maintenance, adding the ability to move and dock
areas to any location, including between multiple windows. Allows
transitioning between splitting, joining, moving, and docking without
early commit. Improved visual feedback. Design Doc #124915. Added
as experiment feature.
Pull Request: https://projects.blender.org/blender/blender/pulls/123414
When the user attempted to install a previously enabled add-on as an
extension after enabling online access and *without* viewing extensions,
installation would fail.
Resolve by adding a check that the remote repository data is available,
adding a button to refresh remote repositories if it's not.
- Fixes incorrect handling of incompatible engines. There is a global list of compatible
engines, but `create_cycles_material` didn't use it, displaying an incorrect warning
when using the operator.
- Add `BLENDER_EEVEE_NEXT` to compatible engines.
- Remove `BLENDER_EEVEE` from compatible engines.
- Add render method option. This replaces the material `blend_method`
- Remove material blend method option (replaced by `render_method`)
- Remove material shadow option. Not needed anymore as shadows use
the node tree for evaluation.
**TODO**
- Manual should still be updated. Will be done after this patch lands.
- I did some basic tests. I am not familiar with this operator, but think it
should handle all the different cases. Would be nice to have some
render tests for this to detect regressions.
Implements: #122315
Pull Request: https://projects.blender.org/blender/blender/pulls/124094
The logic to handle disabling, upgrading & re-enabling extensions
incorrectly assumed all installed add-ons were enabled.
Resolve by only using this logic on installed & enabled add-ons.
This allows the draw tool to temporarily enable the eraser.
Adds a new `BrushStrokeMode` called `BRUSH_STROKE_ERASE`.
This is used by the keymap to enable erasing while using
the draw tool with CTRL.
Pull Request: https://projects.blender.org/blender/blender/pulls/124591
Interpolation tool for strokes ported from GPv2.
Adds a new operator that inserts a new frame with interpolated curves.
The source curves are taken from the previous/next keyframe.
Co-authored-by: Hans Goudey <hans@blender.org>
Pull Request: https://projects.blender.org/blender/blender/pulls/122155
Add the concept of 'active slot' within an Action. This allows
clicking on a slot in the Action editor, to select it and mark it as
'active'.
Note that this does _not_ add support for action slots in
`ANIM_set_active_channel()`, as that function doesn't get enough info
to do that, and refactoring it is not on my wishlist.
RNA property `action.slots.active` can be used to access and set the
active slot in Python. `slot.active` can be used to query the slot's
active state, and is read-only (so that there is one way to set the
active slot).
A panel in the Action editor shows info about the active slot. This
panel is just a minimal UI that shows the name and an icon
representing the idtype of the active slot.
Pull Request: https://projects.blender.org/blender/blender/pulls/124422
The (GPv2) fill tool has an "extension" mode to assist with filling
small gaps where strokes don't fully meet.
- Overlay: Draws various helpers during modal fill tool operation, using
the same functions as the render-to-image used for applying the fill
tool.
- Extension lines: Scrolling or page up/down extends the tips of strokes
and draws extra boundary lines to limit filling.
- Extension circles: Press S to toggle the mode. This draws circles
around stroke tips.
- Stroke overlay: This can be enabled in the brush settings
(_Advanced > Visual Aids_) to draw strokes in a simple color on top of
the viewport.
- Extension line collision: Tests for intersections of extension lines
with other lines and with strokes, and cuts them short. Enable in
brush settings (_Advanced > Strokes Collision_).
- Better defaults for extension increments: The values are in Blender
units, and quite arbitrary. Using lower values makes it feel more like
GPv2 in the 2D animation template.
- Draw functions in the `ed::greasepencil::image_render` namespace now
consistently expect coordinates in view space (avoids confusion and
works better for 2D elements).
- Some internal renaming and cleanup (many variable names come from GPv2
and were not very clear).
Pull Request: https://projects.blender.org/blender/blender/pulls/122771
When Blender started with an extension enabled from a repository that
referenced a directory that didn't exist - creating the directory
and extensions would fail to import the extension.
This happened because the missing state of the module was cached.
Resolve by clearing Python's path cache for the repository after
running install actions which may have created the directory.
Also run importlib.invalidate_caches() when manually refreshing local
extensions to ensure modules cached as missing can be imported if
they have become available.
`UnifiedPaintPanel.get_brush_mode()` may return `None` when the current
tool doesn't use brushes. In the specific case of primitive tools
("Line", "Polyline", "Arc", etc) in grease pencil draw mode, the tools
actually should use brushes, but this isn't implemented properly yet
with brush assets. Still handle this case cleanly.