9c36cfb4b8b2d22ef211115ce7f7015f05984c4b
During development of Collection Export, it was noticed that our various IO formats deal with errors in vastly different ways [1]. The crashes were all fixed but now the motivating scenario is as follows: If you setup a Collection Exporter for OBJ, STL, or PLY, and if it runs into an error during processing, the C++ operator will return "FINISHED" to the caller but the operator will also RPT_ERROR. This causes the caller, Collection Export, to indicate "success" to the user but the RPT_ERROR then causes a UI report that indicates failure. This PR chooses to use the presence of the RPT_ERROR as indication of "CANCELLED" operator status and should be safe enough to also apply to 4.2 LTS. This aligns with what Python does [2] and with what the new GSoC import nodes have chosen to do [3]. Though doing this on import isn't quite correct so this PR does not add that in to the base import operators. Alembic and USD are better behaved in this scenario already. However, they have their own quirks to follow-up afterwards. [1] https://projects.blender.org/blender/blender/issues/117881 [2] https://projects.blender.org/blender/blender/src/branch/main/source/blender/python/intern/bpy_capi_utils.cc#L25 [3] https://projects.blender.org/blender/blender/src/branch/main/source/blender/nodes/geometry/nodes/node_geo_import_obj.cc#L49 Pull Request: https://projects.blender.org/blender/blender/pulls/127525
…
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%
