Constraint stack similarly to modifier stack is fully operate on what
have been given to it, without requesting original or evaluated IDs.
Validness of datablocks passed to constraint stack are to be handled
on dependency graph/evaluation stream levels.
Mainly affects for() loops.
The reason why loop parameter was declared outside of the loop roots
back to the times when not all compilers supported C99.
This file was originally a placeholder for all the old functions that
have not yet been ported to the new draw system. Over time all the
functions that needed refactor were gone, and the functions here are
still needed.
While moving the functions around I removed dead code and made sure the
existent comments start with a capital letter and end with a full stop.
- Move handling of private ID data (nodetree and master_collection)
under generic ID code. This shortens code a bit, but mostly avoids having
to modify all type-specific callback functions if/when we have to add
generic processing to IDs there.
- Seriously factorize `expand_xxx` area, in the same way we were already
doing in `direct_link_xxx` and `lib_link_xxx` areas.
Note that this actually also fixes some bugs (at least, potential ones),
like e.g. missing call to expand_id() for our beloved 'private ID'
(nodetrees & co), in current master code...
Differential Revision: https://developer.blender.org/D6764
Cache files are currently loaded via the Manta Python API. With very big caches this can slow down the viewport playback. Especially smoke simulations, which just load grids and no meshes, can suffer from this. This fix solves this problem by directly loading the cache files from disk (no Python). This fix has been in the works for some time. The developer of this patch is ready to handle any potential fall-out of this patch quickly.
Keyframes and channels were not updating immediately (you had to enter
channel and main regions with the mouse to force a redraw).
Differential Revision: https://developer.blender.org/D6762
Adds the invert vertex group option to the smooth modifier.
Setup same way as previous modifiers.
Reviewed By: mont29
Differential Revision: https://developer.blender.org/D6745
Adds the invert vertex group option to the Curve modifier.
Adds a short flag and char pad to the Curve modifier DNA. Passes the flag into the curve_deform_verts function as the weight values are found there and not in the modifiers .c file.
Reviewed By: mont29
Differential Revision: https://developer.blender.org/D6746
If the linked or append grease pencil object was added to the scene, the original file could have the datablock status in a different mode, so it's necessary to be sure is in object mode.
Differential Revision: https://developer.blender.org/D6759
Adds the invert vertex group option to the Lattice modifier.
Adds a short flag and modifies the existing char padding for the correct amount.
Adds a .invert_vgroup to the LatticeDeformUserdata.
Passes the flag into the lattice_deform_verts function where the weights around found and used.
For the other calls of lattice_deform_verts function they pass in NULL for the flag in the same way they pass NULL for the vgroup name.
Reviewed By: mont29
Differential Revision: https://developer.blender.org/D6747
Not sure when this happened but apparently the lower bar is now windows 7 [1]
This patch bumps to API version to 0x0601 (Win7) and cleans up any uses that
worked around the globally set API version.
[1] https://www.blender.org/download/requirements/
Reviewed By: brecht
Differential Revision: https://developer.blender.org/D6758
Apparently the compiled shader bump into some register limit and
the compiler instead of giving an error, does something incorrectly.
Differential Revision: https://developer.blender.org/D6759
When an edge loop is fully occluded the direction of movement
is not calculated resulting in unpredictable behavior.
So always calculate the direction of the groups of edge loops
but continue preventing occluded edges from affecting `mval_dir`
(global) value.
Differential Revision: https://developer.blender.org/D5247
The current edge slide is executed in this sequence:
- traverses all edges to find the ones selected,
- traverses each vertex of the selected edges,
- traverses each linked edge of the vertex to finally execute the code.
However the list of vertices that are part of selected edges are already
stored in `EdgeSlideData` through the `TransDataEdgeSlideVert *sv;` member.
Therefore, the code can be simplified as follows:
- traverses all `sv` in `EdgeSlideData`,
- get the `sv->v` vertex to finally execute the code.
Differential Revision: https://developer.blender.org/D5277
Liblink specific ID type function was so far running a loop over all IDs
of relevant type, unlike almost any other 'ID-callback-like' functions
in Blender, which usually let the looping controll to calling code.
The latter approach is more convinient when one want to add generic
(i.e. type-agnostic) code, since it typically only has to change code in
one place (caller function) instead of tens of places (all the callback
functions).
This commit also changes/sanitizes a few things that had nothing to do
in main liblink code, like mesh conversion from tessfaces to polys
(which can be done in after-linking versionning code), or scenes' cycles
detection/check regarding background 'set' scenes.
Reviewed By: brecht
Differential Revision: https://developer.blender.org/D6727
In current `readfile.c` code we have that:
https://developer.blender.org/diffusion/B/browse/master/source/blender/blenloader/intern/readfile.c$3523
This is unconditionally clearing nodetree's recalc flags, and was added by rB81a762e79f83 ages ago. Thing is, in main ID read code we only clear that flag when **not** in undo context.
This proposed change intends to properly handle those cases, by moving `id.recalc` flags clearing from `read_libblock()` to `direct_link_id()`, which is also called for all 'local' IDs (ntrees and master collections currently).
I’d expect that change to be straightforward (and maybe even fixing some odd undocumented bugs), however there is no .blend file testcases associated with changes in rB81a762e79f83, so wouldn’t mind that to be double checked before it goes to master.
Reviewed By: brecht
Differential Revision: https://developer.blender.org/D6711