object on top of everything anymore. It can be useful to see objects
that are in front too, and if you don't want to see them you can
just go into local viewmode. It's also more consistent with editmode
which doesn't draw on top either.
Another experiment to support threading properly. By default the Python Interpreter releases its lock every 100 instructions so that other threads get a chance to run Python code and API calls. But that is not enough to prevent race conditions causing artifacts (and maybe crashes) during threaded rendering, since all threads will access the same pynodes data.
So I'm disabling this automatic releasing of the lock (the GIL) by the interpreter, which seems to be a better option for how Blender uses Python.
rotation settings into account. Now if rotation is not set to None,
instead of automatically deriving it from the particle path (which
is useful for feathers), it uses the rotation settings (useful for
distributing twigs randomly).
flag bit was changed and not changed back, and the flag was moved
back from image user to image. This meant that files saved both
before and during the premul changes did not read premul settings
correct anymore.
Now it uses the old premul flag bit again, which also keeps forward
compatibility.
was the new jittering of the start position gave self intersections,
especially noticable with for example edgesplit because in that case
it can't detect them as well. 'Solution' now is to bias the start
position away from the surface a bit according to how much the start
position was jittered.
Fixed the following problems with Bevel code
-meshes with 2 edged faces left over at the end would cause buffer
overrun whens converting from a Bmesh to a Derived Mesh. The
conversion process now checks for both double edges and faces
and removes them when present.
-BME_reverse_loop euler had a bug that was causing the corruption of
radial cycle. This would lead to the bevel tool hanging for a long time
and possibly crashing.
-Added optimization of BME_reverse loop so that it no longer does tiny
allocations but instead uses an area of 'scratch' memory. The same thing
will be done to the Make Face euler soon
-Added proper call to selection flushing for editmode.
-Some miscellaneous cleanups and removal of unneeded debug printfs.
* initial values I added in radialcontrol.c might need to be reviewed if they cause problems(I used 200, as it seems many tools were setting that)
* #pragma warnings are the only warnings I still get, so that means we have a clean slate again
[#8354] Blender or Python25.dll crash on... quit, reported by David B. (myvain)
The BPy_FreeButtonsList() function is also called after we call Py_Finalize(). Calling PyGILState_Ensure()/Release() there crashes Blender. Added a test to prevent this, but note that function still runs Python API code to free a buttons list. Doesn't seem to give problems, though. Thanks, David.
One problem was that the previous render buffer was stored in the
render window or image window itself, which means that when closing
it, or switching from one to the other, things didn't work as expected.
Also in the image editor, color sampling the previous render buffer or
saving it didn't work correct.
Small update to where a PyGILState_Ensure() call is made.
--
Let me use this commit to mention a couple things related to this change to make Python thread-safe in Blender:
1) This page explains the changes: http://wiki.blender.org/index.php/BlenderDev/BPythonAPI/Threads
2) If you experience hangs (deadlocks) when running anything related to Python in Blender, the related part in the code may need a proper Ensure/Release block, as explained in the above link.
From Joshua (aligorith)'s previous commit to this file:
"* various problems related to gilstate calls being added in strange places (could someone familiar with python double check that they're in the right places now)?"
I checked the two places you fixed, second one is ok, the first one needed to be before the call to create a py dict -- done. Thanks for catching them!
platforms. Cause was a function(rng_getFloat(), rng_getFloat()),
apparently the order in which rng_getFloat() is evaluated is not
compatible between operating systems.
Fixes
[#5211] Sound scrubbing does not work after blend file load
also fixes:
if you hit the timeline playbutton, you can reseek by clicking on the timeline.
Now audio doesn't stop anymore and keeps on playing from the new position
instead.
Fixes a lot of small things:
* zoom in/out in preview is more fine grained (use SHIFT)
* zebra scopes don't try to draw the border and fail
* lock/unlock now locks/unlocks all selected strips
* fix redraw problems of panel on lock/unlock
* buttons-panel is redrawn on translate, so that position information is shown
* added lock / hide to Strip-Menu
* fixed small drawing problems in header
TODO: find a good key for lock / unlock (Shift-L | Alt-Shift-L isn't that nice
to press...)
* missing include for depsgraph from previous commit
* various problems related to gilstate calls being added in strange places (could someone familiar with python double check that they're in the right places now)?
Submitted by: Thomas Knight (epat)
Parts committed:
1) Fixed a few misspellings in some error strings.
2) Fixed a (theoretical) bug with pyconstraints where a text object could be deleted from python but would remain linked
to the constraint it was assigned to - causing slight UI usage discontinuities!
Not committed yet:
3) Particle system bugfix in this patch has not been committed. Could jahka or brecht check this.
The following is a commit of Levi Schooley's bevel code and
the bmesh library it depends on. The current editmode bevel has
been replaced with a new per edge bevel function. Vertex beveling is
also availible.
To set weights for the modifier to use, use the ctrl-shift-e shortcut on either edges
or vertices.
Recursive beveling is turned of for the time being.