existing check for driver to use GIL was not thread safe and could cause, details in the report.
This bug was caused by a check to avoid hanging, a fix for [#27683] that worked in 2.4x because the UI didn't use python to draw while rendering.
Apply a different fix for [#27683], when calling an operator, call PyEval_SaveThread(), then PyEval_RestoreThread() so the GIL can be aquired by threads started by the operator - in this case bake starting a thread that evaluates drivers.
vector * matrix
vector *= matrix
vector * quaternion
vector *= quaternion
Use the reverse order instead, enable WITH_ASSERT_ABORT in cmake to promote the warnings into errors.
[#28032] Python Mathutils: Matrix Multiplication Error
Since they ended up reversing the order we better keep old code unless its proven to be incorrect.
also change Matrix.__repr__ function args to evaluate correctly (need to be inside a tuple).
- add back slicing for buffers, (was previously in 2.4x but not working in py3):
buf = bgl.Buffer(...)
ls = buf[:]
- fix for crash with negative index access not being clamped.
- improve repr() function for multi dimensional buffers.
- add back 'list' attribute, but print deprecation warning.
- use getset rather then getattr
- remove verbose Buffer docstring, better use sphinx docs for this
- replace bge.Buffer with the Buffer class and add a __new__ function to the class so it can be called.
- improve error messages
- comment/remove assignments from values to themselves.
- add case break statements (no functional change but some source code checkers notice).
- fix python errors when the sculpt brush is None.
lambda_cp_line --> line_point_factor_v3
lambda_cp_line2 --> line_point_factor_v2
correction to previous commit function name
isect_seg_sphere_v3 --> isect_line_sphere_v3
... since its not clipped.
added a clip argument to the python version of the function.
Python:
* adds bpy.app.handlers which contains lists, each for an event type:
render_pre, render_post, load_pre, load_post, save_pre, save_post
* each list item needs to be a callable object which takes 1 argument (the ID).
* callbacks are cleared on file load.
Example:
def MyFunc(scene): print("Callback:", data)
bpy.app.handlers.render_post.append(MyFunc)
C:
* This patch adds a generic C callback api which is currently only used by python.
* Unlike python callbacks these are not cleared on file load.
- add support for IDProp array slicing, but not resizing.
- rename array attribute type to typecode and use chars 'f', 'd', 'i' which match pythons array module. (was using int's which only have a meaning internally).
- rename function 'convert_to_pyobject' to 'to_dict' and 'to_list' for IDProp group and array types respectively.
- remove 'len' array attribute, calling len(array) is fine.