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-07-19Cleanup: Separate keyframes_draw and keyframes_keylist.Jeroen Bakker
The keylist functions are used in other places for none drawing related stuff. Fe pose_slide uses it.
2021-07-19Revert "Depsgraph: Implement 'ID_RECALC_GEOMETRY_DEFORM'"Germano Cavalcante
This reverts commits bfa3dc91b75407b063f2ac991b176d98c050f92d, 52b94049f2a71a74f52247f83657cf3a5c8712b4, ae379714e4f1eca74f5f77532a6e959f29445236, a770faa811ee62837eb540b0bd83ca0770f16663, 4ed029fc02b022cb5ff28ed3ce70992c450d2be5, 101a493ab556c6597ac91fba204059be67b35990 and 62a2faa7ef39130446716d7a06215cd1df1eb2ac. And fixes T89955. Changing the dependency graph is a can of worms and the result is a kind of unpredictable. A different solution will be planned.
2021-07-19Object update: Remove fallback from batch_cache_deform_tagGermano Cavalcante
Falback is not really necessary, and causes `BKE_object_data_batch_cache_dirty_tag` to run multithreaded in an unsafe way. No functional changes.
2021-07-19Fix T89941: No path`s bevel update, when I change bevel profile curveGermano Cavalcante
Update was skipping the batch cache.
2021-07-19Cleanup: minor correction to delaunay_2d_cdt doc-stringCampbell Barton
Use more conventional syntax for default arguments.
2021-07-19Cleanup: remove unused MTex.pmapto, pmaptoneg & definesCampbell Barton
These have not been in use since 2.57 fafbd9d71b95776d1c7583476de74fccefab7f10.
2021-07-19Fix: memcpy overlapping region ASAN warning in curve trim nodeHans Goudey
2021-07-19Cleanup: Make curve trim node code more semantically correctHans Goudey
The code used `Spline::LookupResult` in a way that referred to evaluated points and control points interchangeably. That didn't affect the logic, but the code became harder to read. Instead, introduce a local struct to contain the data in a more obvious way.
2021-07-18Update documentation string for mathutils.geometry.delaunay_2d_cdt.Howard Trickey
2021-07-18Make it optional to track input->output mapping in delaunay_2d_calc.Howard Trickey
Some uses of delaunay_2d_calc don't need to know the original verts, edges, and faces that correspond to output elements. This change adds a "need_ids" value to the CDT input spec, default true, which tracks the input ids only when true. The python api mathutils.geometry.delaunay_2d_cdt gets an optional final bool argument that is the value of need_ids. If the argument is not supplied, it is true by default, so this won't break old uses of the API. On a sample text test, not tracking ids save about 30% of the runtime. For most inputs the difference will not be so dramatic: it only really kicks in if there are a lot of holes.
2021-07-18Fix T89929: Crash when hiding in the render a previously keyframed volumeGermano Cavalcante
Regression introduced in {rBbfa3dc91b754}. `ID_RECALC_GEOMETRY` should tag all operations of the `GEOMETRY` component and not just the operation of node `GEOMETRY_EVAL_INIT`.
2021-07-18Geometry Nodes: Curve Trim NodeAngus Stanton
This node implements shortening each spline in the curve based on either a length from the start of each spline, or a factor of the total length of each spline, similar to the "Start & End Mapping" panel of curve properties. For Bezier curves, the first and last control points are adjusted to maintain the shape of the curve, but NURB splines are currently implicitly converted to poly splines. The node is implemented to avoid copying where possible, so it outputs a changed version of the input curve rather than a new one. Differential Revision: https://developer.blender.org/D11901
2021-07-18Speed up Delaunay raycast.Eric Abrahamsson
From Erik Abrahamsson, this uses parallel loops for raycasting. It speeds up one example with many crossings of a bezier curve, from 0.68s to 0.28s.
2021-07-18Versioning: fix vertex group name loss in linked duplicates.Alexander Gavrilov
After rB3b6ee8cee708 by @HooglyBoogly vertex groups were moved to mesh data, and versioning code was provided to upgrade old files. However, it fails to consider the case of linked duplicates having different name lists, and dependent on the object order can cause some of the names to be lost. This can even be all of them, if there is a duplicate without any names, which can be easily created by lazy Python code. To fix this, change the code to use the longest available name list. Differential Revision: https://developer.blender.org/D11958
2021-07-18Fix: Incorrect logic in spline lookup functionAngus Stanton
This section of code deals with evaluated points, so that is the size it should use.
2021-07-18Greatly improve speed of Delaunay when have a lot of holes.Howard Trickey
Using part of a patch from Erik Abrahamsson, this replaces the use of linked lists for original id tracking by Sets. I had thought that the lists were unlikely to grow to more than a few elements, but when the mesh has a lot of holes (whose original ids go *outside* the hole, and therefore, most of the mesh), this assumption can be very wrong. On a Text regression test, the time went from 11.67s to 0.16s with this fix. I also tested to make sure that Boolean didn't slow down with this, and found it actually had a very slight speedup. Using Sets exposed a dependency on the ordering of the items in the id lists, luckily caught by a mesh intersect regression test, so fixed that.
2021-07-18Fix T89868: Crash showing thumbnail of wide-aspect imageJesse Yurkovich
Scaling down images could create images with a width or height of zero. Clamp at 1 to prevent a crash, also add an assert to scaling functions. Ref D11956
2021-07-16Cleanup: Simplify realizing of pointcloud instancesHans Goudey
Just a small change to make the function slightly shorter.
2021-07-16Fix T89624: Vertex painting causes mesh to flickerGermano Cavalcante
The `ibo.lines_paint_mask` extractor doesn't have a callback to iterate bmesh faces, this made `filter_into` ignore the extractor.
2021-07-16Cleanup: Simplify logic, use C++ typesHans Goudey
Also remove an unecessary null check, and make inner loop simpler.
2021-07-16VSE: Fix multicam splitting all selected stripsRichard Antalik
`split_multicam` used split operator, where if more strips than multicam were selected, all would be split, which is undesirable. Add `Sequence.split()` RNA API function. to split individual strips. Function accepts `frame` and `split_method arguments`. Returns right strip after splitting. In case when strip being split have effects, these will be split too, so no invalid state should be created. Selection is not handled, this is by design up to user. Reviewed By: sergey Differential Revision: https://developer.blender.org/D11926
2021-07-16Fix T89722: Duplicate macro can cause strips to overlapRichard Antalik
Bug caused by 78693d524c13 accidentally removing overlap handling when transform operator is canceled. Reviewed By: campbellbarton Differential Revision: https://developer.blender.org/D11899
2021-07-16Cleanup: Move gpencil_geom.c to C++Hans Goudey
This will help enable development on optimizations to the perimeter calculation here. Using C++ data structures like Array can make the code easier to read as well. Longer term, this can help improve integration with attributes and possibly the new curve code (since strokes and curves are quite similar in theory). Differential Revision: https://developer.blender.org/D11941
2021-07-16Fix T89899: Crashes when accessing vertex groups from objectsHans Goudey
We need to be more strict about trying to retrieve a list of vertex group names from objects now, as only three object types support them. This commit adds a check for vertex group support in a few places, the data transfer operator/modifier, copying vertex groups to selected objects, and the vertex group remove and clear functions. Differential Revision: https://developer.blender.org/D11947
2021-07-16Cleanup: Get vertex group names directly from grease pencil dataHans Goudey
2021-07-16Cleanup: Remove redundant logicHans Goudey
The object type was checked twice unnecessarily. Also use a function for the check to be more explicit.
2021-07-16Surface Deform: support sparse binding mode for improving performance.Alexander Gavrilov
When a vertex group is used to limit the influence of the modifier to a subset of vertices, binding data for vertices with zero weight is not needed. This wastes memory, disk space and CPU cycles. If the vertex group contents is known to be final and constant, it is reasonable to optimize by only storing data group vertices. This has to be an option in case the group can change. Supporting this requires adding a vertex index field and spliting the vertex count into mesh and bind variants, but both happen to fit in available padding. The old numverts field is renamed to the new bound vertex count field to maintain the array length invariant. Versioning is used to initialize the other new fields. If a file with sparse binding is opened in an old blender version, it is corrupted into a non-sparse bind with vertex count mismatch, preventing the modifier from working until rebind. Differential Revision: https://developer.blender.org/D11924
2021-07-16Fix T89875: False dependency cycle on particle systemsGermano Cavalcante
`POINT_CACHE_RESET` pointed to `GEOMETRY_EVAL_INIT` while `GEOMETRY_EVAL_INIT` pointed to `POINT_CACHE_RESET`. Now `POINT_CACHE_RESET` points to the same nodes pointed to by `GEOMETRY_EVAL_INIT` thus avoiding the dependency cycle.
2021-07-16Fix T89782: Segfault populating popup menu with dimensions above the opengl ↵Germano Cavalcante
limit The crash happens because `GPU_offscreen_create` is called with `err_out` `NULL`. This patch proposes a solution within the `GPU_offscreen_create` itself and raises an error report in the interface if a menu is called with dimensions beyond what is supported. Ref T89782 Maniphest Tasks: T89782 Differential Revision: https://developer.blender.org/D11927
2021-07-16Cleanup: preview rendering, update assumptions in commentSybren A. Stüvel
The `action_preview_render()` function used to just render, but now it also temporarily applies the pose. Its comment is now updated for this. No functional changes.
2021-07-16Fix T89861: Checking face selection breaks UV stitch operatorCampbell Barton
2021-07-16Fix T70356: Scaling up 1x1 pixel image reads past buffer boundsCampbell Barton
Also resolve a crash when when displaying thumbnails, see T89868.
2021-07-16Cleanup: reduce variable scope in task_iterator.cCampbell Barton
Would have prevented the error in 15cdcb4e9085c3cf35528c2f7e559955b4ff531a.
2021-07-16Fix error using uninitialized state in BLI_task_parallel_mempoolCampbell Barton
Single threaded operation used the state before it had variables written into it. Error in 15cdcb4e9085c3cf35528c2f7e559955b4ff531a.
2021-07-16Cleanup: sort struct declarationsCampbell Barton
2021-07-16Cleanup: remove redundant parenthesesCampbell Barton
2021-07-16Cleanup: spelling in commentsCampbell Barton
2021-07-16Cleanup: compiler warningsCampbell Barton
2021-07-15Fix T49944: Compositor ID Mask Anti-Aliasing not workingAidan Haile
Replaces current ID Mask node Anti-Aliasing operation by SMAA operations with default settings as proposed by Jeroen Bakker. SMAA produces smoother edges. Reviewed By: manzanilla Differential Revision: https://developer.blender.org/D11881
2021-07-15UI: Flip driver editor debug linesRed Mser
In driver editor, vertically flip the value debug lines to align them with the timeline header values. This makes it easier to read the values. Also set the line width explicitly, which was incorrect in some cases. Differential Revision: https://developer.blender.org/D8877
2021-07-15Cleanup: Clang tidyHans Goudey
2021-07-15Cleanup: Remove use of designated initializers in C++ codeHans Goudey
Does not compile on Windows.
2021-07-15Cleanup: Move UI list template code to own file (C++)Julian Eisel
This move was already prepared with 788d38046032 and 26b098c04fbe. The template is quite big already, better to give it its own file. Plus it could use some C++ features like RAII and maybe some more object oriented code. I plan further refactoring there.
2021-07-15Fix failing tests from vertex group name parameter copyHans Goudey
It turns out `BKE_mesh_copy_parameters` can be called while other tools are running calculations, which meant that it was called at the same time as `armature_deform_coords_impl`. Beause of that, we shouldn't do any freeing (of the old vertex group names) there. Since the materials are copied in the "for_eval" version anyway, it seems to make sense to copy the vertex group name list there also. Fixes T89877, and also the failing `deform_modifiers` test. Differential Revision: https://developer.blender.org/D11936
2021-07-15Cleanup: unused variable captureJacques Lucke
2021-07-15Animation/add-ons: Enable the poselib add-on by defaultSybren A. Stüvel
The new Asset Browser-based pose library is partially implemented in an add-on. This commit enables the add-on by default, as the old pose library was built-in and thus always enabled. The ability to disable the add-on is there mostly for cases where people/studios want to use their own custom pose library.
2021-07-15Fix T88281: Pose Library 'flip pose' sometimes flips wrongSybren A. Stüvel
Correct cases where the X-axis of the bone (in pose space) aligns with the pose-space Y or Z-axis. In these cases the decomposition of the matrix fails, and a negative scale of the X-axis turns into a 180° rotation around the Y-axis. An extra -1 scale to the X and Z axes of the resulting matrix seems to fix things.
2021-07-15UI/Assets: Initial Asset View UI templateJulian Eisel
The asset view UI template is a mini-version of the Asset Browser that can be placed in regular layouts, regions or popups. At this point it's made specifically for placement in vertical layouts, it can be made more flexible in the future. Generally the way this is implemented will likely change a lot still as the asset system evolves. The Pose Library add-on will use the asset view to display pose libraries in the 3D View sidebar. References: * https://developer.blender.org/T86139 * https://code.blender.org/2021/06/asset-browser-project-update/#what-are-we-building * https://code.blender.org/2021/05/pose-library-v2-0/#use-from-3d-viewport Notes: * Important limitation: Due to the early & WIP implementation of the asset list, all asset views showing the same library will show the same assets. That is despite the ID type filter option the template provides. The first asset view created will determine what's visible. Of course this should be made to work eventually. * The template supports passing an activate and a drag operator name. The former is called when an asset is clicked on (e.g. to apply the asset) the latter when dragging (e.g. to .blend a pose asset). If no drag operator is set, regular asset drag & drop will be executed. * The template returns the properties for both operators (see example below). * The argument list for using the template is quite long, but we can't avoid that currently. The UI list design requires that we pass a number of RNA or custom properties to work with, that for the Pose Libraries should be registered at the Pose Library add-on level, not in core Blender. * Idea is that Python scripts or add-ons that want to use the asset view can register custom properties, to hold data like the list of assets, and the active asset index. Maybe that will change in future and we can manage these internally. As an example, the pose library add-on uses it like this: ``` activate_op_props, drag_op_props = layout.template_asset_view( "pose_assets", workspace, "active_asset_library", wm, "pose_assets", workspace, "active_pose_asset_index", filter_id_types={"filter_action"}, activate_operator="poselib.apply_pose_asset", drag_operator="poselib.blend_pose_asset", ) drag_op_props.release_confirm = True drag_op_props.flipped = wm.poselib_flipped activate_op_props.flipped = wm.poselib_flipped ```
2021-07-15Cleanup: Use const for UI icon getter functionJulian Eisel
2021-07-15UI: Support defining UI lists in CJulian Eisel
So far all UI lists had to be defined in Python, this makes it possible to define them in C as well. Note that there is a whole bunch of special handling for the Python API that isn't there for C. I think most importantly custom properties support, which currently can't be added for C defined UI lists. The upcoming asset view UI template will use this, which needs to be defined in C. Adds a new file `interface_template_list.cc`, which at this point is mostly a dummy to have a place for the `ED_uilisttypes_ui()` definition. I plan a separate cleanup to move the UI-list template to that file.