Patch by Darryl Pogue (paradox).
Blender cuts off datablock names at 20 chars, which causes issues if you're trying to access Scenes with a string longer
than 20 chars.
Ex.
s = 'GuildPub-Writers_GLOBAL'
Blender.Scene.New(s) #This creates the scene "GuildPub-Writers_GLOB"
Blender.Scene.Get(s) #This throws an error: the name and the string don't match
This patch cuts down the input of Scene.Get() to the 20 char limits, thus making the the above example return the correct
scene.
- calling Text_reset within C/Api funcs didnt decref the Py_None Text_reset returned.
- Text_delete wasnt checking if the input was an int.
- a number of functions wernt checking if the text was removed.
console.py
- added clear output
- command history leaves empty command before wrapping
- add imports as dummy user input so commands written to a text file will run.
- faster writing of output to a textblock.
Commit patch #7788, allow to set the render step, so it's
possible make render every N frames only.
The step is change in Scene buttons (F10), below start and
end frame buttons.
Also add a command line options (-j), so it's possible to
overwrite the file step (useful for renderfarm).
[ Brecht, this work with OpenGL renders and simulated
the skipped frames, please double check ]
Patch #9673: "Short patch to make spacehandler event scripts work more like normal python gui script handlers" by Steven Truppe:
http://projects.blender.org/tracker/?func=detail&atid=127&aid=9673&group_id=9
This patch adds the Blender.eventValue variable available for space handlers, holding the event value (aka 1 for button and key presses, X or Y coordinate for mousex / mousey movement). Thanks, Steven. PS: this doesn't break existing scripts.
Bug #17599:
Summary: Python constraints, good in 2.46 not working anymore in 2.47
http://projects.blender.org/tracker/?func=detail&atid=125&aid=17599&group_id=9
Improved my old hack to avoid frame changed scriptlinks from running when rendering stills, should fix this bug. It also causes REDRAW scriptlinks to be executed during renders, but that conforms to how FRAMECHANGED ones work.
BTW: this can still be improved. The current system meant to disable all Python functionality at once needs imo to be replaced by one that allows to enable / disable per feature (scriptlinks, pyconstraints, pynodes, etc.). A better way to inform scriptlinks about what is going on (render, anim, render anim, etc.) would also help. Will discuss with others.
QUATERNION
B_BONE_REST
INVERT_VERTGROUP
MULTIMODIFIER
to the bpy armature modifier API.
It also fixes a significant problem - In the docs, it refers to
the 'VERTGROUP' field as being a string value, shared
by lattice, armature, etc, referring to the 'VGroup' field in the
armature modifier that defines a vertex group 'mask'
which the armature's effect is restricted to.
However, previously, for some very mistaken reason, in processing
the getters/setters for the armature modifier, the
VERTGROUP field was pointing to the quite different 'Vert. Groups'
toggle in the armature modifier, that enables or
disables using vertex groups for deformation (as opposed to
envelopes).
I've fixed this, so VERTGROUP points to the VGroup string, as is
already defined in the docs and consistent with other
modifiers like Lattice. A new field: 'VGROUPS' has been added,
which is the analog to the 'Vert Groups' toggle.
The 'opposite' of the "Insert Key" tool.
- Use the hotkey Ctrl-Alt-IKEY to activate.
- Only available in 3d-view and buttons window
I've added an extra var to verify_ipo and verify_ipocurve to save having to make another duplicate of that code. Hopefully the gameengine compiles ok with this.
* Moved all keyframing functions to their own file (keyframing.c)
* Merged all the different keyframing options (needed, visual, fast) into a single API call. The direct benefit of this is that it allows them to be used in conjunction with each other. Also, this means that when using the IKEY, autokeying settings for these are respected too.
* Implemented 'keyingsets' system (instead of directly calling insertkey on relevant channels), which is easier to maintain and cleaner. A keyingset basically defines all the channels that can be keyframed together. This paves the way for custom keyingsets sometime down the track (and also for quick-insert keyframes for previously used keyingset).
Menus for choosing the keying set to use are generated automatically from the definitions.
----------
Second and final part of MTex API changes. Added support for new attributes for MTex World objects, stricter checking of attribute types for materia/lamp/world MTex objects, setters for lamp.textures and world.textures attributes, and updated documentation.
----------
Bugfix #14425. Particle.Get() could return a list of invalid items. The API
still needs more work, but for now throw an NotImplemented exception.
----------
Add access to MTex objects from Lamps and Worlds (first pass). Since the
MTex structure is slightly difference between materials, lamps, and worlds,
a field is added to the BPy MTex object to distinquish which type it wraps.
Attempting to access attributes which are unique to materials for lamp or
world MTex objects throw an exception. The next pass will implement MTex
attributes which are specific to Lamps and Worlds.
A new attribute (textures) is added to each module. It is compatible with
the previous Material.getTextures(), which returns a tuple of either MTex
objects or None. Surprised we never added an attribute for this before in
all the changes and refactoring.
the features that are needed to run the game. Compile tested with
scons, make, but not cmake, that seems to have an issue not related
to these changes. The changes include:
* GLSL support in the viewport and game engine, enable in the game
menu in textured draw mode.
* Synced and merged part of the duplicated blender and gameengine/
gameplayer drawing code.
* Further refactoring of game engine drawing code, especially mesh
storage changed a lot.
* Optimizations in game engine armatures to avoid recomputations.
* A python function to get the framerate estimate in game.
* An option take object color into account in materials.
* An option to restrict shadow casters to a lamp's layers.
* Increase from 10 to 18 texture slots for materials, lamps, word.
An extra texture slot shows up once the last slot is used.
* Memory limit for undo, not enabled by default yet because it
needs the .B.blend to be changed.
* Multiple undo for image painting.
* An offset for dupligroups, so not all objects in a group have to
be at the origin.
There were several buggy things here (in order of significance):
1) PyAPI method didn't check to make sure that there was an active posechannel when deleting posechannel constraints. This was required by constraint_active_func() to be able to update the 'active' flags for the constraints in that stack
2) PyAPI method removed the links to the constraint data from the constraints list, even though that wasn't necessary, and may have caused memory leaks.
3) constraint_active_func() had no error checking for no constraints-stack being found
* Material.c - functions for get/setRayTransGlossSamples were not being used.
* BPY_interface.c - removed function GetName(), since everything else just uses id->name+2.
* header_info.c - added ifdef win32 around copy_game_dll since its not needed for other os's yet