* python Blender.GetPaths() - absolute=0 wasnt working
* BLI_cleanup_file and BLI_cleanup_file were treating the // prefix as a duplicate path, now ignores //
* BLI_convertstringcode was removing the trailing slash from a path
(tested these path functions didnt mess up with some of the peach files and with pointcache)
button input didnt
work. narrow down this test to the part of the pydriver module init that uses a blender textblock as a module. This should
should reload the pydriver dict whenever the "EnableScriptlinks" state changes. but for now working numbuttons is priority.
Originally the only way to run scripts automatically was with scriptlinks, which could be disabled for loading untrusted blend files.
Since then PyDrivers and PyConstraints would run even when G.f&G_DOSCRIPTLINKS was disabled.
Gensher, Theeth and Ianwill agree its acceptable to reuse the flag for other areas python runs automatically.
PyNodes still have no way to be disabled, (todo before 2.46a)
a script error with a script that has an interface would not stop the interface from running again immediately, causing an annoying
error message loop.
Bug #13277, reported by Juho (bebraw) Vepsalainen (thanks!) - a typo made pynodes w/o input socket definitions fail with an out of range error when accessing the output sockets in the script.
* scene.object.context and scene.object.selected had broken get_item
funcs so scene.object.context[i] returned the wrong object.
* aligning the view to an object (numpad*key), did not disable the
ortho view grid.
* long standing problem where opening a relative image would fail with
no message. BLI_convertstringcode was returning a path with /../../'s
that need to be cleaned before the path could be read, the path was also
invalid from unix shell so its not a blender path reading problem.
* python api render() would clamp the endframe to a short.
* python api's render() and renderAnim() would not render compositing because the name they gave to RE_NewRender was NOT G.scene->id.name, added comments to
G.scene->id.name
Patch from Jean-Michel Soler (with slight modifs)
Small BPy feature to help script writers deal with armatures and vertex groups (calls the bone heat method to create and assign groups)
fixing [#11362] Blender.Draw.Image() method does not clip properly
also return silently on zero zoomlevel rather then raising an error, only raise an error on negative values.
- "Memoryblock free: attempt to free NULL pointer" messages related to the Material node (Add->Input->Material). Deleting it and quitting Blender would bring 2 or 3 of these warnings. Trivial fix (check if NULL) in blenkernel/intern/node.c, though Nodes devs may be interested. Found while testing to fix the following bug:
== PyNodes ==
- Bug #11715 reported by Alexanter Feterman:
http://projects.blender.org/tracker/?func=detail&atid=125&aid=11715&group_id=9
Adding a Dynamic node and setting it to a pynode script would crash Blender if no Material Node (MatNode) was present.
Thanks Alexander for reporting and Brecht for assigning it to me.
removed frame numbering from BLI_convertstringcode into its own function (BLI_convertstringframe), many uses of BLI_convertstringcode were passing dummy frames values anyway.
in cases where adding the current frame number to a filename is needed run BLI_convertstringframe(...) after BLI_convertstringcode(...)
There are some cases Im not sure BLI_convertstringframe is needed, these have been commented as todo, but at least have the same functionality they used to.
Bug #10104 reported by bebraw: missing check for how many node sockets were being created by a pynode script. Too many (more than MAX_SOCKET == 64) would crash Blender.
http://projects.blender.org/tracker/?func=detail&atid=125&aid=10104&group_id=9
Notes: moved the MAX_SOCKET define from node.c to BKE_node.h so I could use it in Node.c. Also improved error reporting in pynodes when errors occur in the init stage.
Thanks Juho (bebraw), Tom (assigned the bug to me) and Brecht (mentioned the MAX_SOCKET define).
* in scene.c in blenkernel, set_last_seq (defined in src - editseq.c) is called... this may/may not need some stubs for game-engine stuff
* removed unused vars due to old particle-effects stuff
Added BLI_split_dirfile_basic, that only splits the path into directory and file. without checking the dir exists or creating it, without changing the original string that is passed to it.
1) Added support for a var called "__node__" in pynode scripts, that can be used to point to the desired pynode object, to make sure it is chosen.
2) Fixed a semi-obscure crash that could happen when reparsing a pynode script that was used by multiple nodes in different scenes. Memory corruption would happen if the reparsing failed during the recreation of the pynode object, not when executing it.
This means when moving large projects with many images/videos/sounds is possible with 'File, External Data, Find Missing Files'.
- needed so we can put peach animatic, glrenders & testrenders on the dvd.
also datatoc.c - brecht's fixes from apricot.
Finishing a few needed things before the release: changed ShadeInput vars access from a single getAttribute function to individual methods, one for each var, for faster access (needed, since these are accessed over and over during rendering).
Very repetitive code, so I used a few macros to write it. Compiles w/o warnings here (linux, gcc 4.3.0), please report any problems.
This is just an internal change, the Python API is still the same.