* Adds two new python handlers: scene_update_pre() and scene_update_post()
These run before and after Blender does a scene update on making modifications
to the scene.
* Datablocks now have an is_updated property. This will be set to true in the
above callbacks if the datablock was tagged to be updated. This works for the
most common datablocks used for rendering: object, material, world, lamsp,
texture, mesh, curve.
* Datablock collections also have an is_updated property. If this is set, it
means one datablock of this type was added, removed or modified. It's also
useful as a quick check to avoid looping over all datablocks.
* RenderEngine.view_update() can also check these properties, for interactive
viewport rendering.
http://wiki.blender.org/index.php/Dev:2.6/Source/Render/UpdateAPI
linked
Shapekey actions weren't getting copied when their owner data was.
This was due to the IMO totally convoluted way in which the duplicate
action flags have been set up:
- the function to copy animdata takes a param to specify whether
actions are copied or not, but this is never touched (i.e. this always
just gets FALSE passed in)
- instead, we jump around in hoops later figuring out whether the
userpref wants copying to occur, then fixing up the links
IIRC, part of this may be due to a desire/need to not duplicate
actions when dealing with NodeTree copies for multi-threaded
rendering, but at the expense of complicating everything else.
Speaker objects fully functional!
Minor changes:
* Fixed three memory bugs found via valgrind.
* Fixed bug with jack transport crashing after file loading.
* Sound NLA Strips now start at CFRA instead of 0.
Second part of previous commit. Now, when speaker objects are created,
they are created by default with an NLA sound strip so that it is easy
to just start immediately using this to do cool stuff (i.e. timing
when you want the sound to start).
* Minor audaspace library improvements.
* Considering location, velocity and orientation in AUD_SequencerReader and AUD_SequencerHandle.
* Bugfix: Maximum and Minimum volume weren't used before in the software device.
* Bugfix: Adding speaker objects via info space crashed.
* Listener settings now get updated in the audio system.
Fixed some bugs with mesh primitive add
operators. Suzanne now faces forward,
instead of down. Cylinder and circle
both now work. Cone lets you adjust the
diameter at both ends now.
I also reorganized the walker code, to
be more maintainable and understandable.
Using search for operators showed ambigious names like "Duplicate" or "Delete".
Default names should give at least a descriptive label. In case operators
are collected in a group name-shortening should be handled separaly.
was not recursively restoring sound strips on paste.
also found many duplicate functions were defining the transform mode as in int but getting as an enum, use enum for both now.