Graph Editor: added region for buttons (properties), so we can
check drivers again! Works like view3d, press NKEY. No buttons
there yet though... no time anymore today, it'll require some
RNA magic probably.
Animsys bugfix: files didn't read or write all supported animdata
structs yet (key was missing for read, crashing). Now it supports
all 10 implemented ID types:
OB CU KE MA TE NT LA CA WO SCE
Small fixes for animsys:
- Blender 2.4x allowed drivers to exist without object target, these
got converted resulting in error prints. Now they get skipped.
- Animdata struct was not created for objects with poses, but without
action/nla linked.
- An action-channel-constraint-ipo gets inserted in drivers differently
than a pose-bone-constraint-ipo. Not sure yet how... but it makes a
different depsgraph relation.
Error is of course in depsgraph, that'll get tackled. For correct
driver eval I've made 'object update ob' also been called for
the 'object update data' tag.
These operators - ANIM_OT_keyingset_add_new() and ANIM_OT_keyingset_add_destination() - are designed for use from PyAPI or through some other means, and as such, have not been assigned any hotkeys.
They should only be used when all the relevant settings can be supplied to them, which in ideal circumstances would be through some script used by a rigger to define all the necessary Keying Sets for their rig for example.
Whether we will be building many of the utilities for the PyAPI like this remains to be seen.
Note: the second one doesn't work yet, as there are problems with accessing certain operator props.
* Image painting back. 2d paint, 3d paint and projection, undo,
pressure, repeating paint operations, etc should all work.
Drawing cursor needs a bit of work, only gets shown when enabling
texture paint mode now.
* Move sculpt, image paint, and vertex/weight paint into a single
sculpt_paint module. Doesn't make much difference now, but nice
to have it together for better integration and consistency in
the future.
- Mesh Rip back (Vkey). For those who keep wondering how
it works: just put mouse cursor somewhere close to the
selection, press V and mouse mouse away from it. Feels
like real rip!
- Made extrude sorta work, no menu/options yet though.
But it does transform!
- Added an short event->mval[2] with region coords,
easier coding for the guys :)
- Fill operator standard delivers 'beauty' now
Made sliders behave correct in SpaceGraph and SpaceAction.
- no slider draw when all is visible
- sliders update correct when visibility changes.
Still an issue here to tackle; view2d->tot is used incorrect...
it's set on window size now (??), it should be the boundbox of
the entire contents. That allows correct slider draws and ops
like 'view home'.
Will poke Joshua tomorrow. :)
The rotation is through glRotatef and as you can see it's ugly,
the freetype2 allow apply a transformation (2x2 mat) to the glyph
before load, so I want to try using that.
Another thing to add is the 4x4 mat to get the scale and size from
there.. but I need commit this now to continue from my home.
Assorted smaller fixes:
- Fix: modal keymaps for editmode in view3d were not set again
when you copy areas or go fullscreen.
- Improved "redo last op" (F6) to search back in history for
a redoable operator. Operator also used wrong pupmenu type.
- On creating new FCurve editor, the channel rainbow colors are
set correct.
- EditMesh: fixed code for Spin/Screw, correct props, init and
error reporting. (Spin hotkey ALT+R temporary)
- recompiled all to check for uninitialized variable warnings.
(compile flag should be -O for this). Fixed some proto's.
- Fix in ESC for render output window; it didn't check the 'full' and
'prevspace' flags correct. In some cases it left the screen in 'full'
mode on ESC.
- Added modal handler on a render, which catches the ESC while render,
to prevent that ESC to be passed on to the image window.
This handler can be further elaborated later to prevent edit accidents
while render is in progress.
I already notice some derivedmesh/customdata free errors on render now
Cleanup of saving code for Image window.
Little extra: added poll() check for buttons, greying out inactive
menu items or buttons. You can see it work in Image menu.
(Item 'save image' is grey when it wasn't saved, then you have to
use the 'save as' item).
Carefully designing poll checks is worth a trial once. :)
Do note that cpu time for polls should be totally minimal.
Several things in one commit; could not split this up easily,
one job invoked another, and so on. :)
- Added pulldowns for save/load .blend file in top bar.
- To enable "Save" without further popups (save over)
I've added a signaling function in window header to
indicate a succesful save.
- On any undo push it now signals 'file changed'. This
goes by notifiers nicely, but now registers only the
undopushes, which is quite unreliable. "Changed" state
shows in header as "Blender*" and for OSX with the
standard close button black dot.
- Made screencast show a button in top bar indicating such,
and allowing quit. No hotkey for quit yet... but ESC will
keep casting now.
- Fixed new BLF_init(), which should be in WM_init() and not
on any .B.blend read.
- Fixed CTRL+F3 "Save Screenshot", which was still using old
fileselect code.
******
added a ARMATURE_OT_bone_add operator, ita generic operator to add a bone it behaves the same way as the old add bone (making a bone not set the tail but have it selected), commiting this so other add bone ops like add bonre pinative or making new armature
* Added Particle wrapping patch by Roelf de Kock. It's not
complete yet and I haven't reviewed it, but committing anyway,
will get to it later.
* Added "Percentage" subtype for floats. Doesn't really do
much besides making auto rna buttons into sliders rather than
numeric inputs, but can later display in % rather than 0.0-1.0.
* With one item in ID databrowse list, you couldn't activate it.
* Render result without render image now displays grid at size
according to render settings again.
them nicely repeatable, and splitting up the big edit_text
operator into individual operator so it's all nicely scriptable,
documented, configurable, etc..
* Insert Text, Line Break, Insert Lorem
* Toggle Case, Set Case, Toggle Style, Set Style, Set Material
* Copy Text, Cut Text, Paste Text, Paste File, Paste Buffer
* Move, Move Select, Delete
* Change Spacing, Change Character
Notes
* Text (datablock) to Object doesn't work yet, will need to
implement text editor context for that.
* Some shortcut keys don't work because screen/wm overrides them,
ctrl+x, ctrl+left/right. That override goes top down which works
well for some cases, but here we need to override in the other
direction.
* There's no unicode support in RNA, or the user interface code
for that matter, but text strings can contain these characters.
At the moment it stores a UTF-8 string in char arrays, which is
supposed to be nicely compatible with ascii. Seems reasonable to
add support for UTF-8 in the interface code, python bindings, ..
eventually?
I change the #if 0 with #if WITH_FREETYPE2, also fix a lot of typos, etc.
This is the basic but now it draw text!!, I am using the "User Preference"
space to test the library, nobody is working on that and the option are
in the outliner now so...
TODO-next: using the 4x4 mat, string size, bounding box, aspect and rotate.
Notes: I update the Makefile, missing some include and other things so
maybe scons, cmake and msvc also need update ?
Fix for the 'repeat last operator' option. It didn't work yet well
outside editmode. Now undo/redo has to fully keep the UI alive,
even when called from within a running popup.
Another fix: when regions collapse/hide they were not effectively
disabled, still accepting events. (like Nkey in 3d window).
Bugfix: passing on uninitialized var to a function made msvc halt.
Strange that gcc didnt complain :)
Brecht: check if this 'a' was needed as counter or so?
Node/Composite tinkering:
- titles in headers and on collapsed nodes back
- backdrop option draws again (no scroll operator yet)
- added preview option in blur, filter and mix nodes.
Just for fun while working :) Probably every node
should get this...
Small fixes for filewindow;
- on resize area/window, the load button disappeared.
- made scrollers indicate what direction works
- mousewheel scroll switches to horizontal automatically now
(assuming we keep filelists horiz, previews vertical scrolled)
View2d got hacked a bit by me for it; i guess for some cases
the scroll value should become customizable. Will come back
later!
NOTE: upon further testing, quick-record-animation feature does not work with auto-ik yet. Although it would be desireable to have, it is not a priority at this point, since adding that would require a bit of reworking of that code for something it wasn't intended for.
- Auto-IK works again now.
- Quick-animate feature works with Auto-IK now.
- Also disabled the checks for existing animation data for this, making it easier to use/discover. At least we've got undo to cover for the cases where the user didn't intend to do this.
To use, simply enable Auto-Keyframing and start the animation playback from the TimeLine.
Then at any time while the playback is still running (and Auto-Keyframing is still enabled), select any object/bone and start moving it around.
You can also select other objects/bones and move them around using standard transform tools (grab/rotate/scale), or exit transform for the active/selected object(s), and move on to other objects instead. Repeat until satisfactory!
This is similar to the old 'Record IPO' functionality (and/or is closer to the 'Mouse Recording' in 3DSMax), except it's much cooler, and is more flexible at the same time. It's
"good for quick and dirty tests, or things with timing, where it's easier to do it real time" - William Reynish, or "handycam effect or eyes animation" - Pepeland.
Additional Notes:
- for now, the objects that are used for this currently need some animation data already. This limitation is temporary.
- eventually, 'samples' (i.e. baked-data) not keyframes will be made by this tool as samples are more suitable for such large sets of densely spaced points