Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2021-03-12Cleanup: Compiler warnings with COM_TM_NOTHREAD active.Jeroen Bakker
2021-03-12Cleanup: document `FileSelectAssetLibraryUID::type`Sybren A. Stüvel
No functional changes.
2021-03-12LibOverride: Add a new operation to Outliner to enforce resync of hierarchies.Bastien Montagne
This is basically done by ignoring override operations from old override affecting ID pointer properties, when the new (destination) one is not NULL. Fix T86501: New object added to overridden collection doesn't show up in linking file on Resync. This is more of a work-around actually, since there is no real way to fix the issue in a fully automated and consistent way, it is caused by older blender files being saved with 'broken' overrides. WARNING: This cannot ensure that some purposedly edited/overridden ID pointer properties won't be lost in the process.
2021-03-12Fix first part of T86501: Crash during resync process.Bastien Montagne
Code would end up freeing some of the newly created overrides, which were assigned to the matching linked ID's `newid` pointer, accessed again further down the code. Note that this is not a normal expected situation, and it won't give a proper resync result anyway, but it might happen in some complicated corner cases, and also quite often when dealing with older .blend files.
2021-03-12IDRemap: Add option to also remap internal runtime ID pointers.Bastien Montagne
In some cases (advanced, low-level), we also want to remap pointers like `ID.newid` or `ID.orig_id`. Only known case currently is `id_delete`, to avoid leaving potential access to freed memory. See next commit and T86501.
2021-03-12LibQuery: Add an option to process internal runtime ID pointers.Bastien Montagne
In some cases (advanced, low-level code) we also want to process ID pointers like `ID.newid` or `ID.orig_id`.
2021-03-12Fix T86455: vertex color baking issue with sculpt vertex colorsPhilipp Oeser
Baking to Vertex Colors would always bake to sculpt vertex colors (if such a layer is present) even if those are not enabled in the experimental preferences. This would bake without an error but leave the user without a result to look in the viewport. Now check if sculpt vertex colors are enabled and only bake to them in that case. Maniphest Tasks: T86455 Differential Revision: https://developer.blender.org/D10692
2021-03-12Cleanup: remove workaround for MSVC PyTypeObject declarationsCampbell Barton
This is no longer needed for MSVC-2017.
2021-03-12Cleanup: set the window manager to the updated context on loadCampbell Barton
While this happened to be corrected by code that runs afterwards, leaving this in an invalid state could cause problems in the future.
2021-03-12Cleanup: make_source_archive.py minor changes & commentsCampbell Barton
- Add notes on portability. - Use encoding argument for all file IO. - Use integer math to calculate major/minor version, while float division should be fine prefer matching Blender.
2021-03-12Cleanup: incorrect doxy section titleCampbell Barton
Also correct typo.
2021-03-12Cleanup: break out of loop earlyCampbell Barton
2021-03-12Cleanup: redundant flag checkCampbell Barton
2021-03-12Cleanup: redundant outliner includesCampbell Barton
2021-03-12Alembic procedural: specific result type for cache lookupsKévin Dietrich
This type, CacheLookupResult, holds the data for the current time, or an explanation as to why no data is available (already loaded, or simply nothing available). This is useful to document the behavior of the code but also, in future changes, to respond appropriately for missing data.
2021-03-12Alembic procedural: add support for instancingKévin Dietrich
Inside of the procedural, instances are AlembicObjects which point to the AlembicObject that they instance. In Alembic, an instance is an untyped Object pointing to the original (instanced) one through its source path. During the archive traversal we detect such instances and, only if the instanced object is asked to be rendered, set the instance's AlembicObject to point to the original's AlembicObject. Cycles Object Nodes are created for each AlembicObject, but only for non-instances are Geometries created, which are then shared between Object Nodes. It is supposed, and expected, that all instances share the same shaders, which will be set to be the ones found on the original object. As for caching, the data cache for an AlembicObject is only valid for non-instances and should not be read to or from as it is implicitly shared.
2021-03-12Alembic procedural: move cache building out of object update methodsKévin Dietrich
This will help support instancing as cache building is now decoupled from the logic to update the Nodes' sockets as data (and cache) will need to be shared by different Geometries somehow, and also simplify implementing different data caching methods by centralizing this operation.
2021-03-12Alembic procedural: fix missing attribute updateKévin Dietrich
We need to explicitely tag the Attribute and AttributeSet as modified if we change or add/remove data. This is more of a bandaid until attributes handling is refactored to be able to reuse routines from the Attribute API.
2021-03-12Cleanup: unused variableKévin Dietrich
2021-03-12Alembic procedural: fix potential zero scale matrix generationKévin Dietrich
This can happen during user edits or with files missing the global scale property.
2021-03-12Added missing file to last commit:Fabian Schempp
Nodes: Add Attribute Remove Node D10697
2021-03-12Nodes: Add Attribute Remove NodeFabian Schempp
This patch adds a node, that removes an attribute if possible, otherwise it adds an error message. Differential Revision: https://developer.blender.org/D10697
2021-03-12Fix issue with normalsHans Goudey
2021-03-11Use full "Fill Type" textHans Goudey
2021-03-11Add working cone node based on cylinder codeHans Goudey
2021-03-11Nodes: Fix drag link from output to already linked Multi-Input SocketFabian Schempp
This patch fixes a visual bug related to connecting an output socket to a Multi-Input Socket, that already has a link to that same output. In this case, the drag link got a new index and snapped to a new position. This path makes the drag link snap to the same position as the first link between the two sockets. Differential Revision: https://developer.blender.org/D10689
2021-03-11Fix missing UI updates, caused by own earlier commitJulian Eisel
Caused by 46aa70cb486d. RNA would send property update notifiers with the owner ID as `reference` data. Since above's commit we'd only send the notifiers to editors if the reference data address matches the space's address. So editors wouldn't get the notifiers at all. The owner ID for space properties is always the screen AFAIK. So allow notifiers with the screen as reference to be passed to editors as well, think this is reasonable to do either way. For example, steps to reproduce were: * Open Asset Browser * Mark some data-blocks of different types as assets (e.g. object & its material) * Switch between the categories in the Asset Browser. The asset list wouldn't be updated.
2021-03-11Cleanup: remove unnecessary `const` from function declarationSybren A. Stüvel
No functional changes.
2021-03-11GPencil: Remove limitation to use only one Lattice modifierAntonio Vazquez
This limitation was necessary in older versions, but now can be removed.
2021-03-11Fix warning from own previous commitJulian Eisel
2021-03-11UI: Avoid unnecessary redraws of unrelated editors on space changesJulian Eisel
When adding a notifier, `reference` data can be passed. The notifier system uses this to filter out listeners, for example if data of a scene changes, windows showing a different scene won't get the notifiers sent to their listeners. For the `NC_SPACE` notifiers, a number of places also passed the space as `reference`, but that wasn't used at all. The notifier would still be sent to all listeners in all windows (and the listeners didn't use it either). Causing some unnecessary updates (e.g. see ed2c4825d3e2344). With this commit, passing a space will make sure the notifier is only sent to that exact space. Some code seems to already have expected that to be the case. However there were some cases that passed the space as `reference` without reason, which would break with this commit (meaning they wouldn't redraw or update correctly). Corrected these so they don't pass the space anymore.
2021-03-11Fix Asset Browser showing oudated list for changes done while browser is hiddenJulian Eisel
Steps to reproduce were: * Open an Asset Browser * "Mark Asset" on some data-block * Change the Asset Browser into a different editor (not File Browser!) * "Clear Asset" on the data-block again, or mark another asset * Change back to the Asset Browser, it will show an outdated list Now the file-browser reloads local file data after spaces were changed. Note that the current notifier code doesn't limit the space-change notifiers to the affected spaces, so changing any visible space will trigger this. That's an issue to be fixed separately.
2021-03-11GPencil: Fix unreported Fill fails if the stroke was taggedAntonio Vazquez
In some situations the strokes could be tagged before filling, so it's necessary to reset before.
2021-03-11Fix regression in 2cc5af9c553cfc00b7d4616445ad954597a92d94Campbell Barton
The check for undo-depth increment/decrement assumed a newly loaded window manager would have a different pointer. This broke bl_animation_fcurves test indirectly, the change to undo-depth caused the redo panel to attempt to popup in background mode - which isn't supported. Now the pointer is unchanged, the undo-depth is assumed to match the value used when calling the operator. The undo-depth is now properly maintained between file loads, which is an improvement on the original behavior which reset it.
2021-03-11Fix T86199: error when adding custom fluid diffusion presetSiddhartha Jejurkar
Differential Revision: https://developer.blender.org/D10694
2021-03-11Fluid: Updated hidden symbol visibility commentSebastián Barschkis
It turns out that on official arm64 devices (not DevKit) the linker warnings still show up. So just leaving this as is. Ref D9002
2021-03-11Cleanup: spellingCampbell Barton
2021-03-11Fix T86431: Keep memory location of the window manager on file loadCampbell Barton
Keep the pointer location from the initial window-manager between file load operations. This is needed as the Python API may hold references to keymaps for e.g. which are transferred to the newly loaded window manager, without their `PointerRNA.owner_id` fields being updated. Since there is only ever one window manager, keep the memory at the same location so the Python ID pointers stay valid. Reviewed By: mont29 Ref D10690
2021-03-11WM: keep the current state when a blend fails to loadCampbell Barton
Previously many operations would run on file load, even if the file did not load. Pre/post load handlers were called, timers canceled, all undo data freed, editors exited ... etc. Now keep the blend file in it's current state. This simplifies updating this area of code as there is one less possible situation to account for.
2021-03-11Cleanup: split file read and setup into separate stepsCampbell Barton
Currently file loading performs almost all reloading logic even in the case loading the file fails, causing the file to be in a state that isn't well defined: undo is cleared, timers are canceled & scripts are re-registered.
2021-03-11Cleanup: file loading/recover checksCampbell Barton
- Don't set G.relbase_valid until the file is loaded. - Remove unnecessary string pointer comparison. - Remove unused filename being passed to 'setup_app_data'.
2021-03-11Remove duplicate nodesHans Goudey
2021-03-11LibOverride: auto-run resync process on file reading.Bastien Montagne
Part of T83811 & D10649.
2021-03-11LibOverride: Add second part of auto-resync code.Bastien Montagne
`BKE_lib_override_library_main_resync` uses `LIB_TAG_LIB_OVERRIDE_NEED_RESYNC` tags set by RNA override apply code, and perform detection for the remaining cases (those were new overrides need to be created for data that was not present before in the library). And then it actually resync all needed local overrides. Part of T83811 & D10649.
2021-03-11LibOverride: First stage of detection of 'need resync'.Bastien Montagne
We can fairly easily detect some resync-needed cases when applying the overrides operations on a Pointer RNA property. This should cover all cases where an existing override's ID pointer is changed in its linked data. We still have to add code to detect when a not-yet-overridden linked ID needs to become overridden (because its relations to other data-blocks changed in a way that requires it). Part of T83811 & D10649.
2021-03-11LibOverride: Do not delete no-more-used overrides during resync if they are ↵Bastien Montagne
user-edited. Ultimately those will be listed with a special icon in the upcomming Outliner overrides view. Part of T83811 & D10649.
2021-03-11LibOverride: Add a utils to check if override has been user-edited.Bastien Montagne
Part of T83811 & D10649.
2021-03-11Cycles: Change device-only memory to actually only allocate on the devicePatrick Mours
This patch changes the `MEM_DEVICE_ONLY` type to only allocate on the device and fail if that is not possible anymore because out-of-memory (since OptiX acceleration structures may not be allocated in host memory). It also fixes high peak memory usage during OptiX acceleration structure building. Reviewed By: brecht Maniphest Tasks: T85985 Differential Revision: https://developer.blender.org/D10535
2021-03-11Cleanup: Add comment explaining plan for new Outliner tree-element code designJulian Eisel
Explains how we can get rid of implicit assumptions and `void *` arguments/storage in the future.
2021-03-11Cleanup: Pass anim-data directly to Outliner anim-data tree element constructorJulian Eisel
Rather than letting the `TreeElementAnimData` constructor take an ID from which we get the animation-data based on an assumption on how it's stored, let the constructor take the animation-data directly. That way we further centralize the assumptions on the data passed to the element creation to `tree_element_create()`. The following commit will add a comment explaining the plan to entirely get rid of those assumptions in the future.