751745b2deb8d8d4b2e9240c12c5054f8b9cd6ea
`GpencilIOParams.ob` is set to `CTX_data_active_object` at the beginning of the export [which is not ensured to be a valid `OB_GPENCIL_LEGACY` object, non-valid objects are filtered out later in `create_object_list`]. From this (potential non-greasepencil) object's data, a "global `bGPdata` is stored in `GpencilIOParams`. From here, it can only go downwards as `stroke_point_radius_get`, `export_stroke_to_polyline`, `BKE_gpencil_stroke_perimeter_from_view` all use this "global" `bGPdata`. Two possible solutions might exist: - [1] just cancel the operator if the active object is not a `OB_GPENCIL_LEGACY` object - [2] make sure we use corresponding `bGPdata` when iterating over valid objects to export This PR chooses [2] since it also seems wrong to always use the `bGPdata` from the active object for certain calculations when iterating many objects. For example, the export ignores different values for `Thickness Scale` on different objects and always takes the value from the active object, which does not seem to be by design. NOTE: this changes behavior (see above) but for the better Pull Request: https://projects.blender.org/blender/blender/pulls/123224
…
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.
Project Pages
Development
License
Blender as a whole is licensed under the GNU General Public License, Version 3. Individual files may have a different, but compatible license.
See blender.org/about/license for details.
Description
Languages
C++
78%
Python
14.9%
C
2.9%
GLSL
1.9%
CMake
1.2%
Other
0.9%
