Right Mouse on area edges has menu to Split or Join. Works like 2.4.
Code needed cleanup and upgrade; operators were hardcoded tied to using
the area corner widgets only. In theory this is getting py ready even,
but that might need some additional testing. :)
The "Script" was added in the original rna commit but for no apparent reason the controller was renamed from the original 2.49 name.
Spotted/reverted in time.
- Added option "Fixed Texture" to the UI. Because of strange reason,
this feature was implemented but hidden from users.
Would be cool, if somebody familiar with 2d texture paiting check.
- Fixed some issues in existing code of fixed texture paiting.
It now handles brush radius and curve correct.
- Also fixed issue with paiting with texture from node tree - it used
to be painted with regular brush color instead of texture.
Paint strokes now can be mapped to any key. The operators now store the
event it was started with, so it ends with a release. Even hotkeys work
(while hold).
Second method for not having python crash blender on invalid access (ifdef'd out ATM, so no functional change).
This uses a weakref list per ID, and invalidates all members of that list when the ID is freed.
the list is not stores in the ID pointer but using a hash table since storing python in DNA data is not acceptable.
This is more correct then the previous method but shows down execution of scripts significantly since its always adding and removing from lists when data is created and freed.
Reported by Edwin Amsler
The function for extrapolating the template name with the frame number didn't properly NULL-terminate the
resulting string, this causing broken names and weird paths (if you were lucky - totally unusuable names
detected while stepping through the code).
- Linking logic buttons had draw glitch, caused by reading
data from free'd buttons
- Doing an undo with mouse-over Curve Widget caused crash or
corruption.
Both related to code that tries to keep the "active" button in
memory. On each redraw of UI, buttons are re-created, which makes
it all tricky... hope we're safer now.
Also: added back undo pushes on adding links in logic editor.
This uses pythons GC so its no overhead during runtime but makes removing ID's slower.
Commented definition 'USE_PYRNA_INVALIDATE_GC' for now, so no functional change.
* For rendering every object's inverse matrix "ob->imat" needs to
be in render view coordinates, but for drawing in 3d view it needs
to be in global coordinates. Originally (way back in historical
times) ob->imat was only used for rendering, but over the years
other uses came up too. Before 2.5 this wasn't a problem as
rendering was a totally blocking operation, but with the new
"interactive ui while rendering" the problems started. Basically
any update that redrew the 3d view while rendering (like rotating
the scene with mouse) updated the inverse matrix into global
coordinates thus invalidating it for the render, leading to all
kinds of strange discontinuities with textures and volumetrics.
* Problems were very easy to achieve using orco/object coordinates
for pretty much any textures (bump, point density, volume, sky),
for examples see bug reports 24906 and 25229. Render baking normals
in object coordinates was wrong most of the time too.
* Now there is a separate inverse matrix ob->imat_ren that's
calculated at the beginning of rendering and is used in all places
inside render code where it's needed. This way the original ob->imat
can change at will during rendering without causing problems.
- use own OrderedDictMini class, pythons collections.OrderedDict is overkill, 179 sloc. replaced with own, 11 lines.
- remove code which stored the class file & line per RNA subclass, this was useful but would raise its own exception every time to generate a stack trace to get the class info so we could use of the class failed to register. the class stores its module & name which can be enough to find where it was defined.