Go to file
Bastien Montagne c2e6969c56 Refactor modifier copying code.
Things like pointers to particle systems, or softbody data being stored
outside of its modifier, make it impossible for internal modifier copy
data code to be self-contained currently. It requires extra processing.

In existing code this was handled in several different places, in
several ways, and alltogether fairly inconsistently. Some cases were
even not properly handled, causing e.g. crashes as in T82945.

This commit addresses those issues by:
 * Adding comments about the hackish/unsafe parts `psys` implies when
   copying some modifier data (since we need to ensure particle system
   copying and remapping of those pointers separately).
 * Adding as-best-as-possible handling of those cases to
   `BKE_object_copy_modifier` (note that it remains fragile, but is
   expected to behave 'good enough' in any practical usecase).
 * Remove special handling for specific editor code
   (`copy_or_reuse_particle_system`). This should never have been
   accepted in ED code area, and is now handled by
   `BKE_object_copy_modifier`.
 * Factorize copying of the whole modifier stack into new
   `BKE_object_modifier_stack_copy`, now used by both `object_copy_data`
   and `BKE_object_link_modifiers`.

Note that this implies that `BKE_object_copy_modifier` and
`BKE_object_copy_gpencil_modifier` are now to be used exclusively to
copy single modifiers. Full modifier stack copy should always use
`BKE_object_modifier_stack_copy` instead.

Fix T82945: Crash when dragging modifiers in Outliner.

Maniphest Tasks: T82945

Differential Revision: https://developer.blender.org/D10148
2021-01-19 18:58:35 +01:00
.github Add Probot Stale configuration file 2019-10-11 14:13:29 +02:00
build_files Fix automated tests when building with GCC and march=native 2021-01-14 17:37:39 +01:00
doc PyAPI Docs: Terminal instructions for Windows incorrect 2021-01-07 15:58:47 -05:00
extern Fluid: Updated Mantaflow source files 2021-01-13 09:49:38 +01:00
intern Cycles: Fix missing OpenCL extensions in certain cases 2021-01-18 15:47:00 +01:00
release Fix T66681: Blender 2.7x keymap inconsistencies 2021-01-19 12:20:48 +11:00
source Refactor modifier copying code. 2021-01-19 18:58:35 +01:00
tests Tests: skip OSL render tests in build without OSL 2021-01-14 13:14:43 +01:00
.arcconfig Fix .arcconfig not working with latest arcanist version 2020-03-01 22:35:31 +01:00
.clang-format Cleanup: add SEQ_ALL_BEGIN, SEQ_CURRENT_BEGIN to .clang-format 2020-08-26 09:59:15 +10:00
.clang-tidy Cleanup: Clang-Tidy, modernize-use-using 2020-12-04 12:46:43 +01:00
.editorconfig editorconfig: correct indent size 2019-04-17 13:34:46 +02:00
.git-blame-ignore-revs Cleanup: add commits to .git-blame-ignore-revs. 2020-12-02 13:20:43 +05:30
.gitignore Fluid: Added wavelet noise tile to the gitignore 2020-01-29 19:21:52 +01:00
.gitmodules Update for moving blender2.8 to master. 2018-12-21 12:15:21 +01:00
CMakeLists.txt Tests: run suites instead of individual test cases 2021-01-11 11:29:30 +01:00
COPYING
GNUmakefile Unix/macOS: support building with Ccache 2020-12-21 10:47:35 +05:30
make.bat Build: add "make test" command for Windows, output log file 2019-09-12 20:23:03 +02:00
readme.rst readme: separate development links 2019-04-13 14:45:51 +02:00

.. Keep this document short & concise,
   linking to external resources instead of including content in-line.
   See 'release/text/readme.html' for the end user read-me.


Blender
=======

Blender is the free and open source 3D creation suite.
It supports the entirety of the 3D pipeline-modeling, rigging, animation, simulation, rendering, compositing,
motion tracking and video editing.

.. figure:: https://code.blender.org/wp-content/uploads/2018/12/springrg.jpg
   :scale: 50 %
   :align: center


Project Pages
-------------

- `Main Website <http://www.blender.org>`__
- `Reference Manual <https://docs.blender.org/manual/en/latest/index.html>`__
- `User Community <https://www.blender.org/community/>`__

Development
-----------

- `Build Instructions <https://wiki.blender.org/wiki/Building_Blender>`__
- `Code Review & Bug Tracker <https://developer.blender.org>`__
- `Developer Forum <https://devtalk.blender.org>`__
- `Developer Documentation <https://wiki.blender.org>`__


License
-------

Blender as a whole is licensed under the GNU Public License, Version 3.
Individual files may have a different, but compatible license.

See `blender.org/about/license <https://www.blender.org/about/license>`__ for details.