The argument in the uiButSetFunc is a Image struct, but
BKE_image_multilayer_index expect a RenderResult struct, so when
you load a exr file and try change the Layer, Blender crash.
(image_layer_cb call BKE_image_multilayer_index)
* Pointcache now uses the process id to construct the path for unsaved files. (so 2 or more blender's open wont try to read/write the same pointcache)
* Temp pointcache is cleared when existing blender, added BIF_clear_tempfiles() for this. Should also be usedto clear EXR's in the temp dir (TODO), BIF_clear_tempfiles also needs to be added in more places. (On file load for instace)
The RE_WriteResult function don't call BLI_make_existing_file
like BKE_write_ibuf, so if you append a directory to the output
path and it don't exist, the exr_begin_write fail to create
the file and blender crash.
Note that this is only 1 line of code and don't touch
anything in the render code.
The limit in the UI tooltips to set the amount of
images used in animation allow the zero value,
that cause a segfault.
This commit fix the UI, add a init value of 1 to
the node and also check in case that
node_composit_get_image return NULL.
number of particles/face. Now for > 25 particles/face it switches
to using a QMC hammersley distribution, much faster, for less
jitter still looks a bit better.
This time is was due to different accuracy of floating point computation,
now it uses does a comparison a bit different to avoid this.
Also changed the vectoquat function to be threadsafe.
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.