Revision d03b26e by Brecht Van Lommel June 16, 2021, 18:19 (GMT) |
Fix T89204: slow repeated rendering with GPUOffscreen.draw_view3d Cache the GPUViewport so the framebuffers and associated textures are not reallocated each time. |
Revision a1cc704 by Lukas Toenne June 16, 2021, 17:35 (GMT) |
Edge-scrolling for node editor Starts scrolling when dragging a node or node link and going outside the current window. Largely copied from the VIEW2D_OT_edge_pan operator. Edge panning operator customdata and supporting functions now in UI_view2d.h, so they could be used by operators in other editor libraries. The VIEW2D_OT_edge_pan operator also uses this customdata and shared functions now. Operators properties can be used to configure edge panning margins and speed for each use case, rather than using hardcoded values. The speed function for edge panning has been tweaked somewhat: * "Speed per pixel" has been replaced with a "speed ramp" distance. This is more intuitive and also creates an upper bound for the speed, which can otherwise become extreme with large cursor distance. * "Max speed" is reached at the end of the speed ramp. * Padding the region inside and outside is applied as before, but both values are operator properties now. Node transform operator also supports edge panning. This requires an offset for changes in the view2d rect, otherwise nodes are "stuck" to the original view. Transform operator had cursor wrapping categorically enabled, but this gets quite confusing with the edge scrolling mechanism. A new TransInfo option T_NO_CURSOR_WRAP has been introduced to disable this behavior. The double negative is a bit annoying, but want to avoid affecting the existing transform modes, so by default it should still set the OP_IS_MODAL_GRAB_CURSOR flag (which then sets the WM_CURSOR_WRAP_XY flag during modal execution). Reviewed By: HooglyBoogly, JacquesLucke Differential Revision: https://developer.blender.org/D11073 |
June 16, 2021, 14:38 (GMT) |
LineArt: Cached calculation for modifiers in the same stack. This allows line art to run only once for each modifier stacks, with an option to toggle a specific line art modifier should use cache or re-do their own calculations. Reviewed By: Sebastian Parborg (zeddb), Hans Goudey (HooglyBoogly) Differential Revision: https://developer.blender.org/D11291 |
Revision b37093d by Jacques Lucke June 16, 2021, 14:29 (GMT) |
BLI: add C++ wrapper for task isolation This makes it easier to use task isolation in c++ code. Previously, one either had to check `WITH_TBB` (possibly indirectly through `WITH_OPENVDB`) or one had to use the C function which is less convenient. |
Revision 45d59e0 by Jacques Lucke June 16, 2021, 14:14 (GMT) |
BLI: add threading namespace This namespace groups threading related functions/classes. This avoids adding more threading related stuff to the blender namespace. Also it makes naming a bit easier, e.g. the c++ version of BLI_task_isolate could become blender::threading::isolate_task or something similar. Differential Revision: https://developer.blender.org/D11624 |
Revision 3953b82 by Bastien Montagne June 16, 2021, 14:09 (GMT) |
Tweaks to Constraints operators poll functions. Mainly: * Make `ED_operator_object_active_editable_ex` properly report poll messages on failure. * Add `ED_operator_object_active_local_editable_posemode_exclusive` for bone constraints requiring pure local Object (non-override one). * General cleanup and adding more poll messages on failures. |
Revision af3d712 by Bastien Montagne June 16, 2021, 14:09 (GMT) |
ShaderFX/LibOverride: Add `BKE_shaderfx_is_nonlocal_in_liboverride` util. Used to detect if a shaderfx is purely local, or comes from linked data, in case of a liboverride. Not actually used yet since we do not currently support adding shaderfx's to overrides, but will be in the future, and matches constraints and modifiers code. |
Revision 0cebe55 by Bastien Montagne June 16, 2021, 14:09 (GMT) |
ShaderFX operators: Tweak a bit poll functions, forbid in liboverride cases. Similar to what we do for constraints and modifiers, except that currently adding or editing shaderfx in liboverride objects is completely unsuported. Fix T88974. |
Revision 88aa056 by Manuel Castilla June 16, 2021, 12:04 (GMT) |
Fix: Image node alpha socket converted to operations twice On selecting a multi-layer image with a combined pass, a "Combined" socket is created and default combined pass socket "Image" is disabled by setting `SOCK_UNAVAIL` flag. When converting into operations, `ImageNode` converts alpha socket on finding any socket with a combined pass without checking the flag. Since commit rB93e2491ee724 an assertion fails when mapping sockets twice because now map `add_new` is used. Reviewed By: jbakker Differential Revision: https://developer.blender.org/D11566 |
Revision b66600b by Manuel Castilla June 16, 2021, 12:02 (GMT) |
Compositor: Full frame Value node Adds full frame implementation to Value node operation. No functional changes. Reviewed By: jbakker Differential Revision: https://developer.blender.org/D11594 |
Revision b406b67 by Manuel Castilla June 16, 2021, 12:00 (GMT) |
Compositor: Full frame RGB node Adds full frame implementation to RGB node operation. No functional changes. Reviewed By: jbakker Differential Revision: https://developer.blender.org/D11593 |
Revision 94084b2 by Jacques Lucke June 16, 2021, 10:20 (GMT) |
Geometry Nodes: fix z-up spline normal calculation Previously it didn't work when the tangents were collinear to the z axis. |
Revision 00fc110 by Kévin Dietrich June 16, 2021, 07:39 (GMT) |
Alembic procedural: support reading per-vertex UV sets This adds support for importing UV sets which are defined per vertex, instead of per face corners. Such UV sets can be generated when the mesh is split according to UV islands, or when there is only one UV island, in which cases only a single UV value can be stored per vertex since vertices will never be on a seam. |
Revision 4b36c5b by Campbell Barton June 16, 2021, 07:17 (GMT) |
Cleanup: sculpt mode checks when calculating stats Sculpting dynamic topology used to code-path for counting object then never used the result. Match object mode checks in string access & drawing. |
Revision c3fa7b7 by Campbell Barton June 16, 2021, 07:17 (GMT) |
Fix pose-mode statistics with multi-object editing - Include all objects in pose mode. - Show the number of objects in pose mode. - Show the number of objects in edit mode for all types of objects (not just meshes). |
Revision 1c0a490 by Campbell Barton June 16, 2021, 07:17 (GMT) |
Cleanup: minor simplification to status allocation |
Revision 3385c04 by Kévin Dietrich June 16, 2021, 06:22 (GMT) |
Alembic: support reading per-vertex UV sets This adds support for importing UV sets which are defined per vertex, instead of per face corners. Such UV sets can be generated when the mesh is split according to UV islands, or when there is only one UV island, in which cases only a single UV value can be stored per vertex since vertices will never be on a seam. Reviewed By: sybren Differential Revision: https://developer.blender.org/D11584 |
Revision 9fed003 by Jeroen Bakker June 16, 2021, 06:00 (GMT) |
Cleanup: reduce warnings when compiling release builds. |
June 16, 2021, 03:31 (GMT) |
Geometry Nodes: Separate Components Node Implementation of T86970. This node takes a geometry input with multiple components and outputs them by component type. Meshes, Curves, and Point Clouds support combining multiple input instances, while volumes will only output the first volume component input until suitable instance realization for multiple volumes is finished. When direct geometry instancing is implemented it will be possible to avoid realizing instances in this node. Differential Revision: https://developer.blender.org/D11577 |
Revision 2209321 by Campbell Barton June 16, 2021, 02:50 (GMT) |
Screen: simplify internal logic for new full-screen areas Creating a new full screen area had it's area initialized as empty, updating the screen then set the area to a 3D view (as a fallback), before the actual area type was set. This made setting the intended space-type run the 3D views exit callback on a 3D view without a View3D struct allocated, which the exit callback needed to account for. Resolve by calling ED_screen_change after the area type has been set. |
|