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
path: root/source
AgeCommit message (Collapse)Author
2021-05-04Fix T87935: allow library overrides on NLA/FCurve modifiersSybren A. Stüvel
Mark NLA/FCurve modifier properties as library-overridable. It was already allowed to add such modifiers to a library-overridden object, but then the properties of those modifiers were read-only, limiting their use.
2021-05-04Animation: correct active track/strip pointers after copying NLA tracksSybren A. Stüvel
After copying NLA tracks from one `AnimData` to another, also ensure that the `AnimData::act_track` and `AnimData::actstrip` pointers are pointing to the copy rather than the original. This is a necessary step to allow library overrides on NLA modifiers without crashing Blender. The remapping of the pointers is done by looping over the tracks/strips and comparing pointers. Alternatively, I could update the copy functions themselves to keep track of those pointers and return them, but IMO that would produce more spaghetti (they're also used in cases where this pointer-remapping is not desired).
2021-05-04"File > External Data" menu improvements and cleanupDalai Felinto
All changes: * Include `file.pack_libraries` and `file.unpack_libraries` to the menu [1]. * Rename "Pack Blender Libraries" → "Pack Linked Libraries" [2]. * Rename "Unpack Blender Libraries" → "Unpack Linked Libraries" [2]. * Rename "Pack All Into .blend" → "Pack Resources" [3] * Rename "Unpack All Into Files" → "Unpack Resources" [3] * Rename "☑ Automatically Pack Into .blend" → "☑ Automatically Pack Resources" [3] * Rename "Make All Paths Relative" → "Make Paths Relative" [4] * Rename "Make All Paths Absolute" → "Make Paths Absolute" [4] * Add separators accordingly --- [1] - This was never exposed since its original commit rB16411da41e40. Now that operator not listed in menus don't show up in the search, this became even more hidden. [2] - The original name (Pack Blender Library) was not clear enough. Pose Libraries and Asset Libraries are also technically Blender libraries. [3] - The term All was misleading since it didn't include the Linked Libraries. [4] - No need to use "All". It is not used in the Report/Find Missing Files either. This commit put this in the File > External Data menu. Differential Revision: https://developer.blender.org/D11109
2021-05-04Fix T87489: Text Data-Blocks get deleted on Recursive PurgeSebastian Parborg
Text data block were not considered special in the recursive purge function. So they would get deleted if they had no actual users. To fix this we instead make text data block use "fake user" so that addon authors can specify script files that should be removed if nothing is using it anymore. Per default, new text object have "fake user" set. So functionality wise, the user has to explicitly specify that they want the text object to be purge-able. Reviewed By: Bastien Differential Revision: http://developer.blender.org/D10983
2021-05-04Geometry Nodes: refactor instances componentJacques Lucke
The main goal of this refactor is to not store Object/Collection pointers for every individual instance. Instead instances now store a handle for the referenced data. The actual Object/Collection pointers are stored in a new `InstanceReference` class. This refactor also allows for some better optimizations further down the line, because one does not have to search through all instances anymore to find what data is instanced. Furthermore, this refactor makes it easier to support instancing `GeometrySet` or any other data that has to be owned by the `InstancesComponent`. Differential Revision: https://developer.blender.org/D11125
2021-05-04Merge branch 'blender-v2.93-release'Germano Cavalcante
2021-05-04Fix (unreported): 'CoInitializeEx' being called without 'CoUninitialize'Germano Cavalcante
Problem introduced in {rB1f223b9a}. This was possibly causing random crashes in Blender file browser when compiled with ASAN. Microsoft documents indicate that any call to `CoInitializeEx` must be balanced by a corresponding call to `CoUninitialize`. https://docs.microsoft.com/en-us/windows/win32/api/combaseapi/nf-combaseapi-coinitializeex#remarks
2021-05-03Fix T87982: crash switching render slots while render is in progressBrecht Van Lommel
2021-05-03Geometry Nodes: Initial basic curve data supportHans Goudey
This patch adds initial curve support to geometry nodes. Currently there is only one node available, the "Curve to Mesh" node, T87428. However, the aim of the changes here is larger than just supporting curve data in nodes-- it also uses the opportunity to add better spline data structures, intended to replace the existing curve evaluation code. The curve code in Blender is quite old, and it's generally regarded as some of the messiest, hardest-to-understand code as well. The classes in `BKE_spline.hh` aim to be faster, more extensible, and much more easily understandable. Further explanation can be found in comments in that file. Initial builtin spline attributes are supported-- reading and writing from the `cyclic` and `resolution` attributes works with any of the attribute nodes. Also, only Z-up normal calculation is implemented at the moment, and tilts do not apply yet. **Limitations** - For now, you must bring curves into the node tree with an "Object Info" node. Changes to the curve modifier stack will come later. - Converting to a mesh is necessary to visualize the curve data. Further progress can be tracked in: T87245 Higher level design document: https://wiki.blender.org/wiki/Modules/Physics_Nodes/Projects/EverythingNodes/CurveNodes Differential Revision: https://developer.blender.org/D11091
2021-05-03Merge branch 'blender-v2.93-release'Antonio Vazquez
2021-05-03Fix T88005: GPencil inverse fill leaves unwanted line at viewport edge.Antonio Vazquez
There was a function to set 2 pixels wide for inverse filling, but this must not be done in the borders of the image. Now, the borders are checked before set 2 pixels.
2021-05-03Cleanup: spellingCampbell Barton
2021-05-03WM: disable idle event handling timer when simulating eventsCampbell Barton
2021-05-03Movieclip: Use first clip frame for size detectionSergey Sharybin
Using scene frame 1 is not reliable in cases when there is a frame offset is involved. Using frame 1 seems more reliable, although might still fail under certain circumstances. More reliable fix would require a deeper change in the data structure and the logic about frame loading and size detection.
2021-05-03Fix wrong tracking curves after changing clip offsetSergey Sharybin
The issue was caused by frame start/offset change triggering clip reload, which was happening with a hardcoded scene frame index of 1, which could be outside of the actual clip frames. Solved by removing source change tag from the frame start/offset update. The source doesn't really change: the resolution will stay the same, as well as media type, its duration. So the tag was not needed.
2021-05-03Cleanup: use boolean for has_event variable & return valueCampbell Barton
2021-05-03Merge branch 'blender-v2.93-release'Philipp Oeser
2021-05-03Fix T87969: crash accesing FaceMaps / PaintMask data in editmodePhilipp Oeser
Workaround for crash when accessing FaceMaps / PaintMask data in editmode, just disallow access in editmode as is done with UVs. Same fix as in {rB3e2619b3e72a}. Maniphest Tasks: T87969 Differential Revision: https://developer.blender.org/D11146
2021-05-03Fix compilation error after recent compositor fixSergey Sharybin
Apparently, there is no emplace semantic available in the Vector in the stable branch.
2021-05-03Merge branch 'blender-v2.93-release'Sergey Sharybin
2021-05-03Fix T87989: Crash using OpenCL in compositorSergey Sharybin
Initial report was mentioning the Classroom demo scene, but this is probably because the scene was pre-configured to be used with OpenCL. Would expect any OpenCL compositing to be failing prior to this fix. The reason why crash was happening is due to OpenCL queue being released from OpenCLDevice destructor. Is not that obvious, but when Vector (including std::vector) is holding elements by value a destructor will be called on "old" memory when vector capacitance changes. Solved by making forbidding copy semantic for compositor devices and forcing move semantic to be used. Also use emplace semantic in the devices vector initialization.
2021-05-03Geometry Nodes: Parallelize attribute nodesHans Goudey
This commit significantly speeds up many of the attribute nodes when multiple threads are available in linear situations when parallelism cannot be achieved elsewhere. See the differential for a table of timing comparisons tested on a Ryzen 3700x. For an attribute with 4 million elements, the nodes were about 3 to 9 times faster. The changes are not exhaustive, other nodes could still be parallelized in the future. Also, it would be possible to further optimize the grain size in `parallel_for`, but I'd rather make sure it isn't too small. I tested some different values, but also relied on intuition-- increasing grain size for less complex operations and vice versa. Differential Revision: https://developer.blender.org/D11139
2021-05-03Merge branch 'blender-v2.93-release'Alexander Gavrilov
2021-05-03LibOverride: temporarily fix the material driver workaround with a hack.Alexander Gavrilov
Currently overriding properties within material node trees is not supported. However there is a workaround that allows feeding values through drivers via an intermediate custom property, as described in T82404. The workaround relies on the behavior of the ID copying code that always patches datablock self-references even without any overrides. Unfortunately, this broke during development of 2.93. This happened because a call RNA_struct_override_matches added in rB2281db72b0157 detects that no override exists, and 'restores' the self-reference to point to the original datablock. To avoid this, mark the Material.node_tree property with the PROPOVERRIDE_IGNORE flag to stop RNA_struct_override_matches from recursing into the currently unsupported node tree sub-block. This flag should be removed when this is properly supported. This was confirmed to fix the workaround and discussed with @mont29.
2021-05-03Cleanup: clang-tidyJacques Lucke
2021-05-03Cleanup: clang-tidyJacques Lucke
2021-05-02Merge branch 'blender-v2.93-release'Howard Trickey
2021-05-02Fix T87554 Exact Boolean performance bug.Howard Trickey
There was a quadratic algorithm extracting triangles from a coplanar cluster. This is now linear. Also found and fixed a bug in the same area related to the triangulator added recently: it didn't get the right correspondence between new edges and original edges.
2021-05-02Merge branch 'blender-v2.93-release'Antonio Vazquez
2021-05-02GPencil: Fix unreported problem when save file in Curve Edit modeAntonio Vazquez
This is related to T87905
2021-05-02Merge branch 'blender-v2.93-release'Robert Guetzkow
2021-05-02Fix T82824: Draw sensor size with correct alphaRobert Guetzkow
Previously the option in the camera's //Object Data Properties > Viewport Display > Sensor// would not display the sensor in camera view. This seemed to be caused by the theme color `TH_VIEW_OVERLAY` having zero set for the alpha channel and alpha blending being active, resulting in no visible output. Hence `immUniformThemeColorShade(TH_VIEW_OVERLAY, 100);` is replaced with `immUniformThemeColorShadeAlpha(TH_VIEW_OVERLAY, 100, 255);`. Reviewed By: mano-wii Differential Revision: https://developer.blender.org/D11075
2021-05-01UI: Object Thumbnails Orientation ChangeHarley Acheson
Object orientation for thumbnail creation changed to be slightly oblique (tilted to one side and from above) to better show shape, especially when axis-aligned. Camera lens changed to 85 to avoid distortion of close objects like human heads. see D9940 for details and examples. Differential Revision: https://developer.blender.org/D9940 Reviewed by Julian Eisel
2021-05-01Merge branch 'blender-v2.93-release'Antonio Vazquez
2021-05-01Fix T87905: GPencil modifiers not applied if saved with multiframeAntonio Vazquez
When saving a file in Edit mode with Multiframe enabled, the render did not include the modifiers. Now the multiframe is not enabled if it's doing a render.
2021-05-01GPencil: Auto lock layers, tooltip grammar fixTomasz Kaye
Reviewed By: #grease_pencil, antoniov Differential Revision: https://developer.blender.org/D11136
2021-05-01Merge branch 'blender-v2.93-release'Campbell Barton
2021-05-01Fix T86450: Random dark UI elements when redrawingCampbell Barton
Resolves occasional glitch/flicker drawing dark buttons in the UI. Regression in 405a5d3bd7ada5dd5af605b59ba07c7144f144a2 which removed shader unbinding when the batch is drawn. GPU_shader_bind could run with the sRGB uniform in an unexpected state. Reviewed By: fclem Ref D11124
2021-04-30Merge branch 'blender-v2.93-release'Bastien Montagne
2021-04-30LibOverride: Make drivers' 'mute' flag overridable.Bastien Montagne
Request from Blender studio for cached pipeline.
2021-04-30LibOverride: Fix infinite resync loop in some invalid file cases.Bastien Montagne
Multi-overrides of a same linked ID in a same override hierarchy are currently not supported and can cause all kind of issues. In some cases they could lead to infinite loop trying to resync the same ID over and over, this is now prevented. Found in some Blender studio production files.
2021-04-30Cleanup: compiler warningsCampbell Barton
2021-04-30Merge branch 'blender-v2.93-release'Campbell Barton
2021-04-30Revert "Fix crash running constraint, modifier, fx from missing NULL check"Campbell Barton
This reverts commit f4d5a69cf8512aafcc697d1b09f65489015b6af4. This causes bpy.ops.object.modifier_apply.poll() to fail as well as modifier binding operators (breaking tests).
2021-04-30BLI: support removing Map elements during iterationJacques Lucke
While it was technically safe to call Map.remove while iterating over a map, it wasn't really designed to work. Also it wasn't very efficient, because to remove the element, the map would have to search it again. Now it is possible to remove an element given an iterator into the map. It is safe to remove the element while iterating over the map. Obviously, the removed element must not be accessed anymore after it has been removed.
2021-04-30BLI: add a common base class for Map iteratorsJacques Lucke
This is useful for an upcoming commit that allows removing an element based on an iterator.
2021-04-30Cleanup: Rename `#if GPU_USE_PY_REFERENCES` to `#ifndef ↵Germano Cavalcante
GPU_NO_USE_PY_REFERENCES` This is safer for incremental build. And there was already a macro `GPU_USE_PY_REFERENCES` used elsewhere.
2021-04-30Fix accidental lines removed in the last commitGermano Cavalcante
2021-04-30Fix gross errors in previous commitGermano Cavalcante
2021-04-30Python GPU: Add new methods to port the code templates in the manualGermano Cavalcante
This commit adds a new API tha allow to replace the bgl API in the exemples on: https://docs.blender.org/api/current/gpu.html **Overview (New API):** ``` gpu.state: active_framebuffer_get GPUFramebuffer: read_color GPUOffscreen: texture_color ``` Reviewed By: brecht Differential Revision: https://developer.blender.org/D11031