Revision 7b5acc8 by Jeroen Bakker August 13, 2021, 06:34 (GMT) |
Cleanup: remove unused draw_gpencil_channel. Code is integrated with draw_scene_channel since 2.80. |
Revision 160d57d by Campbell Barton August 13, 2021, 06:01 (GMT) |
Docs: tooltip update missing from 3e775a4fc57cfd48954adcf284354312f34d5412 |
Revision 3e775a4 by Campbell Barton August 13, 2021, 05:51 (GMT) |
PyAPI: remove the .py extension requirement for startup registration This was left over from when these scripts were loaded as modules, where their names needed to be compatible with Pythons module naming. Version patch existing files so text with register enabled without a `.py` extension wont start executing on startup. Resolves T89532. |
Revision 41e6509 by Campbell Barton August 13, 2021, 05:39 (GMT) |
Mesh: replace saacos with acosf for normal calculation The clamped version of acos isn't needed as degenerate (nan) coordinates result in zeroed vectors which don't need clamping. |
Revision 8fa05ef by Campbell Barton August 13, 2021, 05:15 (GMT) |
Docs: note that normalize_v# functions zero out input containing nan |
Revision 92f4abc by Campbell Barton August 13, 2021, 04:41 (GMT) |
Cleanup: remove unused BKE_mesh_calc_normals_mapping functions This supported calculating normals for MPoly array which was copied to an MFace aligned array. Remove the functions entirely since MFace use is being phased out and these function isn't used anywhere. |
Revision b51a473 by Campbell Barton August 13, 2021, 04:37 (GMT) |
Cleanup: remove use of BKE_mesh_calc_normals_mapping_simple Use BKE_mesh_calc_normals instead of BKE_mesh_calc_normals_mapping_simple for curve modifier calculation. This only made sense for derived-mesh which is no longer used. |
Revision ab34477 by Campbell Barton August 13, 2021, 03:55 (GMT) |
Cleanup: code-comments Use capitalization, remove unnecessary ellipsis. |
Revision ed38d0c by Campbell Barton August 13, 2021, 03:33 (GMT) |
Cleanup: split BKE_mesh_calc_normals_poly function in two Remove the 'only_face_normals' argument. - BKE_mesh_calc_normals_poly for polygon normals. - BKE_mesh_calc_normals_poly_and_vertex for poly and vertex normals. Order arguments logically: - Pair array and length arguments. - Position normal array arguments (to be filled) last. |
Revision 399b6ec by Campbell Barton August 13, 2021, 00:21 (GMT) |
Mesh: optimize normal calculation Optimize mesh normal calculation. - Remove the intermediate `lnors_weighted` array, accumulate directly into the normal array using a spin-lock for thread safety. - Remove single threaded iteration over loops (normal calculation is now fully multi-threaded). - Remove stack array (alloca) for pre-calculating edge-directions. Summary of Performance Characteristics: - The largest gains are for single high poly meshes, with isolated normal-calculation benchmarks of meshes over ~1.5 million showing 2x+ speedup, ~25 million polygons are ~2.85x faster. - Single lower poly meshes (250k polys) can be ~2x slower. Since these meshes aren't normally a bottleneck, and this problem isn't noticeable on large scenes, we considered the performance trade-off reasonable. - The performance difference reduces with larger scenes, tests with production files from "Sprite Fight" showing the same or slightly better overall performance. NOTE: tested on a AMD Ryzen TR 3970X 32-Core. For more details & benchmarking scripts, see the patch description. Reviewed By: mont29 Ref D11993 |
Revision 1275ce6 by Hans Goudey August 12, 2021, 19:12 (GMT) |
Cleanup: Remove unused includes I noticed this file was recompiling when adding a node. |
Revision e0fd5fe by Jacques Lucke August 12, 2021, 15:36 (GMT) |
Geometry Nodes: tag normals dirty after join Under some circumstances the normals were not tagged dirty even though they are. |
Revision f801d40 by Campbell Barton August 12, 2021, 15:07 (GMT) |
Fix T89241: 3D Text "Scale to Fit" wraps onto the second line Disable wrapping when "scale to fit" is used, assert the error is small so an invalid scale-to-fit value wont go by unnoticed. |
Revision 3930b8c by Philipp Oeser August 12, 2021, 14:46 (GMT) |
Fix NLA action cannot be unlinked in certain cases The poll for unlinking calls `nla_panel_context` without providing an adt pointer, and there is a check for this pointer in `nla_panel_context` leading to never returning true if it is not provided. (this is fine if there are tracks already, poll would succeed in this case, `nla_panel_context` goes a different code path then) Same call to `nla_panel_context` is also done in the beginning of the corresponding unlink exec function (but this time providing the pointer because it is used later), so it makes sense to do the same thing in the poll function. Equal check is also done in the panel poll function, so now these are all in sync. Part of T87681. Maniphest Tasks: T87681 Differential Revision: https://developer.blender.org/D11041 |
Revision 333c3c9 by Philipp Oeser August 12, 2021, 14:41 (GMT) |
Fix T89805: NLA crash without active track Was reported for a file which does not have an active track set in AnimData even though it was in strip twek mode (but this was accessed in is_nlatrack_evaluatable()). Root cause for this is not totally clear, but I assume the situation is described as part T87681 (and is fixed in D11052). This patch here just prevents the crash for files that are already in the borked state. Reviewers: sybren Maniphest Tasks: T89805 Differential Revision: https://developer.blender.org/D12085 |
Revision dc8844f by Philipp Oeser August 12, 2021, 14:33 (GMT) |
Fix T88498: 'Clear Parent' does not clear parent_bone Clearing the parent from the UI using the X (or from python) clears the `parsubstr` and set `partype` back to `PAROBJECT`. Using the Clear Parent operator would leave the `parsubstr` (and thus `parent_bone`) untouched even though this operator claims to "clear parenting relationship completely" (it also removes parent deform modifiers for example). So now, also clear `parsubstr` and set back to `PAROBJECT` [which is default]. Maniphest Tasks: T88498 Differential Revision: https://developer.blender.org/D11503 |
August 12, 2021, 12:24 (GMT) |
Add Extras Dropdown Menu to Constraints Add Apply Constraint, Duplicate Constraint, and Copy To Selected operators, and include them in a menu similar to the menu for modifiers. The shortcuts in the extras menu are also matched to modifiers. All the here added operators are intended to work exactly like the analogous ones for modifiers. That means the apply operator should apply a constraint as if it was first in the list, just like modifiers do. I have added the same warning message as for modifiers when that happens. The decision to use this approach of appling the constraint as if it was first, was made for consistency with modifiers. People are already used to how it works there. Is also provides more intricate control over the applied transforms, then just applying all constraints up to that one. Apply all constraints is already kinda implemented in Bake Animation. Reviewed By: HooglyBoogly, sybren, #user_interface Differential Revision: https://developer.blender.org/D10914 |
Revision 215734b by Germano Cavalcante August 12, 2021, 11:52 (GMT) |
Fix T88386: Continuous Grab occasionally jumping on Arm64 MacOS During the processing of a continuous drag event, other mouse move events may be in the queue waiting to be processed. But when a mouse wrapping happens, these waiting mouse move events become out of date as they report a mouse position prior to wrapping. The current code ignores these events by comparing their `timestamp` to the time recorded in the last mouse wrapping. The bug happens because the computed value in `mach_absolute_time() * 1e-9` for some reason is incompatible with the value of `[event timestamp]`. Since macOS 10.6, we have a new way to get the amount of time the system has been awake. `[[NSProcessInfo processInfo] systemUptime]`. Using this updated method fixed the problem. Differential Revision: https://developer.blender.org/D12202 |
Revision 6293cf6 by Campbell Barton August 12, 2021, 10:43 (GMT) |
Fix T90630: Crash loading certain user preferences Clearing the window was done in wm_file_read_post which was deferred. This was needed as it left the context in an invalid state where the window was set but the screen wasn't. Crashing when setting up keymaps that attempted to access the scene from the window in the property update function. Regression in 497bc4d19977abc7b9e2c0f5024a23057e680954 |
Revision ad2fb92 by Campbell Barton August 12, 2021, 07:42 (GMT) |
Cleanup: remove redundant variable |
|