Blender Git Commits

Blender Git commits from all branches.

Page: 245 / 2888

July 14, 2021, 16:17 (GMT)
UI: Internal support for custom UI list item drag & activate operators

For pose libraries, we need to be able to apply a pose whenever
activating (clicking) an item in the Pose Library asset view and blend
it by dragging (press & move). And since we want to allow Python scripts
to define what happens at least when activating an asset (so they can
define for example a custom "Apply" operator for preset assets), it
makes sense to just let them pass an operator name to the asset view
template. The template will be introduced in a following commit.
July 14, 2021, 15:57 (GMT)
UI: New UI list layout type for big preview tiles

This new layout type is meant for the upcoming asset view UI template.
With it it is possible to show big asset previews with their names in a
responsive grid layout.

Notes:
* The layout is only available for C defined UI lists. We could expose
it to Python, but I think there are still some scrolling issues to be
fixed first. (The asset view template doesn't use scrolling for the UI
list.)
* I'd consider this a more usable version of the existing `GRID` layout
type. We may remove that in favor of the new one in future.
July 14, 2021, 15:29 (GMT)
Cycles X: make OptiX 7.3 the minimum required SDK version

This ensure the new faster builtin curve intersection is used, and lets us
simplify the code a bit.

Differential Revision: https://developer.blender.org/D11866
July 14, 2021, 15:24 (GMT)
Cycles X: restore shadow pass

Differential Revision: https://developer.blender.org/D11896
July 14, 2021, 15:23 (GMT)
Cycles X: reduce GPU state memory usage when some features are not enabled

In particular: volumes, subsurface, denoising and light passes.

In a scene without these features, we go from 538MB to 346MB for the state
memory usage. This also improves performance, presumably due to reduced
memory traffic.

Differential Revision: https://developer.blender.org/D11915
July 14, 2021, 15:23 (GMT)
Cycles X: change requested device features to bitflags

So that they can be shared between host and device.

Differential Revision: https://developer.blender.org/D11914
July 14, 2021, 15:23 (GMT)
Cycles X: use less memory for float3 integrator state on GPU

Allocate different device_only_memory size depending if the device is CPU
or GPU, since for GPU we don't align to 16 bytes for SSE.

Also adds some sanity checks and ensure float3 is not used in device_vector
since it's incompatible for sharing data between CPU and GPU.

Differential Revision: https://developer.blender.org/D11913
July 14, 2021, 15:23 (GMT)
Cleanup: remove disabled OpenCL implementation

To be replaced with something else for non-NVIDIA devices later. Makes it
easier to do some of the upcoming changes.

Differential Revision: https://developer.blender.org/D11912
July 14, 2021, 15:21 (GMT)
Add "id_properties_clear()" calls to UI data tests
July 14, 2021, 15:05 (GMT)
Cleanup: Reoder definition
July 14, 2021, 15:03 (GMT)
UI: UI list refactor & preparations for asset view template

This is more of a first-pass refactor for the UI list template. More
improvements could be done, but that's better done separately. Main
purpose of this is to make the UI list code more manageable and ready
for the asset view template.

No functional changes for users.

* Split the huge template function into more manageable functions, with
clear names and a few structs with high coherency.
* Move runtime data management to the template code, with a free
callback called from BKE. This is UI data and should be managed at
that level.
* Replace boolean arguments with bit-flags (easily extendable and more
readable from the caller).
* Allow passing custom-data to the UI list for callbacks to access.
* Make list grip button for resizing optional.
* Put logic for generating the internal UI list identifier (stored in
.blends) into function. This is a quite important bit and a later
commit adds a related function. Good to have a clear API for this.
* Improve naming, comments, etc.

As part of further cleanups I'd like to move this to an own file.
July 14, 2021, 15:02 (GMT)
Assets: Add an active asset library per workspace, for the UI to use

This per-workspace active asset library will be used by the asset views
later. Note that Asset Browsers have their own active asset library,
overriding the one from the workspace.

As part of this the `FileSelectAssetLibraryUID` type gets replaced by
`AssetLibraryReference` which is on the asset level now, not the
File/Asset Browser level. But some more work is needed to complete that,
which is better done in a separate commit.
This also moves the asset library from/to enum-value logic from RNA to
the editor asset level, which will later be used by the asset view.
July 14, 2021, 15:02 (GMT)
Assets: Expose active asset library in context

For the Asset Browser, this returns the active asset library of the
Asset Browser, otherwise it returns the one active in the workspace.

This gives simple access to the active asset library from UI code and
Python scripts. For example the upcoming Pose Library add-on uses this,
as well as the upcoming asset view template.
July 14, 2021, 15:02 (GMT)
Assets: AssetHandle type as temporary design to reference assets

With temporary I mean that this is not intended to be part of the
eventual asset system design. For that we are planning to have an
`AssetRepresentation` instead, see T87235. Once the `AssetList` is
implemented (see T88184), that would be the owner of the asset
representations.

However for the upcoming asset system, asset browser, asset view and
pose library commits we need some kind of asset handle to pass around.
That is what this commit introduces.
Idea is a handle to wrap the `FileDirEntry` representing the asset, and
an API to access its data (currently very small, will be extended in
further commits). So the fact that an asset is currently a file
internally is abstracted away. However: We have to expose it as file in
the Python API, because we can't return the asset-handle directly there,
for reasons explained in the code. So the active asset file is exposed
as `bpy.context.asset_file_handle`.
July 14, 2021, 15:02 (GMT)
Assets: Show asset path in asset browser sidebar

It's useful to know where an asset is stored in, before this there was no way
to tell this. This could probably be displayed nicer in the UI but we're
currently unsure how. But at least the information is there now.
July 14, 2021, 15:02 (GMT)
Assets: Initial Asset List as part of the Asset System design

Implements a basic, WIP version of the asset list. This is needed to
give the asset view UI template asset reading and displaying
functionality.

See:
* Asset System: Data Storage, Reading & UI Access - https://developer.blender.org/T88184

Especially the asset list internals should change. It uses the
File/Asset Browser's `FileList` API, which isn't really meant for access
from outside the File Browser. But as explained in T88184, it does a lot
of the stuff we currently need, so we (Sybren St�vel and I) decided to
go this route for now. Work on a file-list rewrite which integrates well
with the asset system started in the `asset-system-filelist` branch.

Further includes:
* Operator to reload the asset list.
* New `bpy.types.AssetHandle.get_full_library_path()` function, which
gets the full path of the asset via the asset-list.
* Changes to preview loading to prevent the preview loading job to run
eternally for asset views. File Browsers have this issue too, but
should be fixed separately.
July 14, 2021, 15:02 (GMT)
File/Asset Browser: Extend file-entry and asset handle Python API

Adds the following to `bpy.types.FileSelectEntry`:
* `id_type`: The data-block type the file represenets, if any.
* `local_id`: The local data-block it represents, if any (assets only).

And the following to `bpy.types.AssetHandle`:
* `local_id`: The local data-block the asset represents, if any.

This kind of information and the references are important for asset related
operators and UIs. They will be used by upcoming Pose Library features.
July 14, 2021, 15:02 (GMT)
Assets: Abstraction for temporary loading of asset data-blocks

This is an editor-level abstraction for the `BLO_library_temp_xxx()`
API for temporary loading of data-blocks from another Blend file. It
abstracts away the asset specific code, like asset file-path handling
and local asset data-block handling.

Main use-case for this is applying assets as presets that are based on
data-blocks, like poses. Such preset assets are an important part of the
asset system design, so such an abstraction will likely find more usage
in the future.
July 14, 2021, 15:02 (GMT)
Assets: Open Blend File operator

Add operator 'Open Blend File' to the Asset Browser. This operator:
- starts a new Blender process,
- opens the blend file containing the asset,
- monitors the new Blender process, and when it stops,
- reloads the assets to show any changes made.
July 14, 2021, 15:02 (GMT)
Animation: apply pose to all or selected bones of armature

New function `BKE_pose_apply_action_all_bones()`, which will be
necessary for the upcoming pose library v2.0.

This renames the function `BKE_pose_apply_action` to
`BKE_pose_apply_action_selected_bones`, to reflect that it only works on
selected bones, to contrast it to the new function.
By: Miika HämäläinenLast update: Nov-07-2014 14:18MiikaHweb | 2003-2021