this is a can of worms, at the moment blender depends on broken behavior for metaballs:
find_basis_mball() can return a metaball object that fails a is_basis_mball() check which makes this logic very confusing (added note about this in mball.c).
Metaballs needs a refactor however at least make drawing fail consistently,
For wire draw is_basis_mball() wasn't being checked, for solid drawing it was (hence the strange wire frame).
For now the motherball needs to exist in the main scene else it wont work.
scene.frame_set() was sending out a frame change notifier which would update the scene loosing any un-keyed changes after a script ran.
for now use a window redraw notifier.
Operator redo in 3D window now moves context to the main region,
makes knife cut work (and probably others)
Todo: this callback should be shared with other redo panels. On the
todo list.
Editmode undo operator was using the operator OPTYPE_UNDO flag as well as its own EM_DO_UNDO option.
This gave 2 problems.
- python suppressed undos would fail (as in the report).
- Undo push was called twice on exiting editmode for no reason.
Use the operator undo in this case.
Tweaked keymap for Graph Editor Ctrl-LMB so that the popup menu for displaying reports won't get dismissed immediately. Changing keymap here from KM_PRESS to KM_CLICK
* Keyframing operators now use the reports system for displaying all its error messages.
- The benefit of this is that users no longer need to check the console for error messages if keyframing fails.
- Unfortunately, reports are not currently viewable in any space/view in Blender, so...
* Added a temporary operator (UI_OT_reports_to_textblock), which can be accessed in the UI from the button which appears in place of the icon when more than one report exists. This dumps the current list of reports to a textblock "Recent Reports", from which they can be viewed.
This isn't really nice, but at least we now have a way to view these again, which makes debugging some things a pain.
* Bugfix #24606 - when trying to add keyframes to F-Curves with F-Modifiers already which alter the curve significantly enough that the keyframes will have no effect, there are now warnings which aim to alleviate any confusion.
Also use const char in many other parts of blenders code.
Currently this gives warnings for setting operator id, label and description since these are an exception and allocated beforehand.
Disable projection painting for soften tools.
Also it looks like smear tools support projection in the code, so
enabled project paint menu for such tools
Here is a image of it in action:
http://www.pasteall.org/pic/show.php?id=6351
What it monitors:
* VRAM used by textures created via bf_gpu and BL_Textures
What it does not monitor:
* VRAM used by the Blender ui
* VRAM used by 2d filters
* VRAM allocated by the user via KX_Scene.pre_draw and KX_Scene.pre_draw
from Dan Eicher (dna)
Made some edits to the patch because only the first spline was getting the updates.
also added path functions for splines and spline points (request from ZanQdo so splines can be keyframed).
Very old bug: Material/Render: the "filter" option for transparent
absorption also works for alpha==0, but in that case another part
of render code just didn't add the faces in render list.
The main reason to have this is so renders can be scripted to write to a specific file without having to do annoying tricks like set a dummy start/end frame range, render an animation and work out the current frame image will be written to, then rename after rendering.
Also made some 'char *' args into 'const char *'
Using texture nodes for displacement crashes, a conflict between using
nodes in render and for displacement at same time. Code simply disables
texture nodes for displacement for now, until we have better handling for it.
(on our long todo)
- don't rename the image when saving (problematic if the image is used with linked libraries)
- file writing and path updating was duplicated for multilayer images.
It was called "map on length", but it actually makes the UV
values of curves/nurbs to become used as "Generated" texture
map input.
Sorry; this might break own local UI py script saves... :)
- Warn for armature deformed meshes which are scaled, these don't work quite the same as in blender, reported as [#24663].
- Use matrix.decompose() to convert a matrix to loc/rot/scale.
- get vert/edge/face lists for each mesh only once.
- faster euler rad -> deg conversion function.
- incorrect range check broke ZYX euler rotations, use MIN/MAX constants so this doesn't happen again.
- BGE Armature PyAPI also wasn't using correct min/max with rotation modes.
- clamp on file read rather then when calling the rotation functions, so developers don't use invalid args without realizing it.
- added assert() checks for debug builds so invalid axis constants don't slip through.
Doing F1-load a lot of times on same .blend could crash.
Janne karhu provided a potential fix, which is good to add
anyway. Will ask him to verify too.
Added XXX warning for these lines, after filesel exec no
context variables should be re-used. Is for later investigation.