* Fix using enter key for selecting item in a submenu.
* Fix some non working buttons in nodes.
* Fix memory leak when using glsl.
* Change triple buffer proxy test a bit, hopefully this succeeds
on more cards now.
Some drawing tweaks for animsys:
- added notifier ND_KEYS type, to send proper notes around.
now insert-key redraws fcurve/action view
- made slider-draggers disappear when view is total or bigger.
Also experimented with making sliders go away entirely, but
this conflicts too much with current code for channel lists.
Ali: I think you have to make call that calculates the 'tot'
for channels, and run this in region listener, including the
totRect update for view2d.
The 'minsize' for channels also fails when there's a slider,
it always doesn't fit then :)
Made 'select-tweak-grab' work in 3d window, fcurve and nodes.
For nodes it works with both left/right, the others follow
user preset for select.
Tweak is a WM event, which also follows user preset for
tablet-style tweaks (release = apply).
You enable tweak events with an operator WM_OT_tweak_gesture.
Keymap entries can assign to left/middle/right button or to
action/select button tweaks.
Joshua asked me to check depsgraph drivers; i've added the
very minimal case, but further I'm stuck, need help.
Also made region listeners for Graph Editor work for all.
Filewindow: restored some usability issues :)
(Andrea: Hope you're OK, I needed to test stuff, and
file open was a pain!)
- F1: shows last saved/opened file now
- Enter key loads, ESC cancels
- Hilites on mousemove now show same theme colors as before
- Enabled intended roundbox draw (was added to UI api)
- Tweaked roundbox hilites to nicely surround text
- Text was drawing too close to collumn dividers
- Brought back missing glDisable(GL_BLEND), messed with draw
- On file-open, mouse position is used to show active file
* Copy/Paste still needs to be cleaned up to be functional. Auto-set preview range + View All also need some work to become functional...
* Smooth has been moved to Alt-O hotkey, as Shift-O was taken for Sample
* Renamed a few operators for DopeSheet to be more in line with Graph Editor ones, and to be less obscure.
* The 'join' and 'remove doubles' tools are not likely to be restored. I think that a few of the new tools cover this lack anyway. We can restore them if there is a real need.
* Record tool needs a rethink to be genuinely useful, so it's not included here anymore.
A note for anyone wanting to play with implementing this: store the sampled points using the new FPoint type in the FCurve instead of using BezTriples, as FPoints are used for storing sampled/baked data.
* Snap + Mirror Keyframes (Shift-S and Shift-M)
* Set Handle/Interpolation type
* Snap current frame to selected keyframes (Ctrl-Shift-S) from the DopeSheet
* Toggle visibility of all handles (Ctrl H) from AnimSys2 branch also ported
I've ported the transform tools for this editor as they existed in the AnimSys2 branch (minus some of the experimental pivot options which were not useful enough yet).
Hotkeys are:
* GKEY - transforms points as always
* RKEY - rotates points (only useful for a single 'knot')
* SKEY - scales points
* EKEY - like in the DopeSheet, the 'extend' translation tool only moves all the keyframes on the same side of the current frame indicator as the mouse
Useful tweaks ported from AnimSys2 include:
* Auto-snapping is on by default for time-values on the keyframes only. Handles are not snapped (or shouldn't be).
* Rotating/Scaling new keyframes using default handles (i.e. Auto-Handles) now works, as the handle is now converted to aligned so that changes can be seen.
* ShapeKey conversions should now go to the correct places
* Added fix for drivers to prevent crashes when no driver object is provided (Franky from BBB seems to have one such driver for some reason).
* Temporarily disabled a check when evaluating drivers for whether the driver is tagged for evaluation. Drivers still need to be correctly tagged AND ordered by the Depsgraph to work correctly.
Added support in threaded compositor to copy the viewer
image safely away, prevents crashing especially for
people using blender -E or redrawing viewer while it
composites.
(Note; reloading images in nodes, render result, and
probably other cases have to be checked still)
Compositor now uses threaded jobs.
- updates happen per preview node! Check this file for
fun: http://www.blender.org/bf/composite_image.blend
(any compo node could get preview!)
- had to ensure the composite data gets fully copied before
it executes thread, so editing is not frustrated.
- put back node buttons (missing init)
- added WM_jobs api call to check for running job,
illustrated with red light icon in 'use nodes' button.
- added another callback to WM_jobs, to initialize.
use this init to ensure you only do it when job really
starts.
- added an extra notifier option for WM_jobs, to signal
finished job (like redraw image view)
- fixed file read error, it copied the screen it read,
instead of using it.
- commented out annoying prints for missing ops in imagewin
* Cleaned up code for borderselect with BKEY. There's still a bug here where y-values don't seem to be getting properly checked, so nothing seems to happen.
* Set up some code for transforming keyframes. It currently uses the wrong code though (i.e. it uses the code for Action Editor which is 1D not 2D, and doesn't have some of the special checks needed). More work on this later.
* Objects parented to bones now load correctly again (so Mancandy no longer looks like he had a run-in with a lawn mulcher). Was caused by a typo. I'm not sure how that got in there (or who did it)
* Action/Graph Editors would crash when loading files with Materials with some drivers.
* Copied files containing code for tools from Action Editor to use as a base for the Graph Editor's tools. The toolsets are now very similar, so it should just be a case of making a few tweaks here and there. Currently all of these tools are #if-def'd out, as there are still a few things to clean up.
(BUILDSYSTEM MAINTAINERS BEWARE!)
* Tweaked some UI stuff (width of mode selector in header, names in the spacetype choosing menu)
* Fixed a few bugs which were causing crashes when loading old files with IPO Editors open.
This commit brings back the drawing code for the 'Graph Editor'. I've decided to call it this, as currently it can show either F-Curves for Animation stored in Actions, or F-Curves for Drivers.
Currently, it shows all curves, since some of the necessary filtering code (i.e. for limiting curve visibility) hasn't been put in place yet. At least this serves as good proof that we can have F-Curves from multiple sources at least.
It should be noted that the code still has to be modified to work with some of the new Animato features, such as F-Curve Modifiers (cycles are an example of one of the features that use this). Also, a nicer way to set the colours of the curves needs to be investigated.
Notes:
* Fixed a few bugs in RNA User-Preferences wrapping
* The keyframe drawing uses the new-style drawing for handles from AnimSys2. There's a minor bug that sometimes occurs, where a distorted handle gets drawn at the origin of the grid on the first run. Hints anyone?
* Removed most of the old data from SpaceIpo struct, as the new code uses that. Maybe later, the directories/files at least should get renamed.
* Removed ancient hack for NVidia/TNT drivers. It is probably no longer needed, but could be restored if someone needs it.
It opens the files selector if "filename" property has not been set, else it executes the operator directly. Brecht, you might want to check, currently only sequencer add operators use it.
* Added back Effects menu back, replaced SEQUENCER_OT_add_color_strip with SEQUENCER_OT_add_effect_strip.
* Made sequencer header use operator UI functions.
* gcc complains when char's are used as array indicies when they are not explicitly signed/unsigned, corrected previous change for vpaint to silence this error.
* Made the various datatypes in the DopeSheet get shown again (NOTE: some of the types that don't get conversions to Animato yet may need some further checking).
* Did some code cleanup to allow F-Curve channels to always show RNA-based names correctly
Simple toolbox-style menu system. Brecht will review it
though, and/or check on way to use it for menus.
I tried to avoid uiBlock and rna stuff all over. :)
Quick image test:
http://www.blender.org/bf/rt.jpg
Examples you can read in:
- editors/screen/screen_ops.c:testing123() (press F5)
- editors/object/object_edit.c:object_add_primitive_invoke()
(press SHIFT+A)
Concept is simple:
uiMenuBegin(): returns a handle.
uiMenuEnd(): puts it all to work.
In between you can add items like:
uiMenuItemVal(): a name, icon, retval (use uiMenuFunc())
uiMenuItemO(): an operator + icon
uiMenuItemEnumO(): an operator, property name, value
Sublevels go easy too:
uiMenuLevel(): creates item for sublevel, with function pointer.
Inside that function you can use all menu calls again.
Levels can go as deep you want.
uiMenuLevelEnumO(): creates operator sublevel for an enum
ANIM_OT_toggle_time -> ANIM_OT_time_toggle
SCULPT_OT_toggle_mode -> SCULPT_OT_sculptmode_toggle
UV_OT_select_inverse -> UV_OT_select_invert
NODE_OT_toggle_visibility -> NODE_OT_visibility_toggle
OBJECT_OT_toggle_editmode -> OBJECT_OT_editmode_toggle
toggle was used last in other operators eg- VIEW3D_OT_vpaint_toggle and VIEW3D_OT_wpaint_toggle.
'invert' was used everywhere else.
* sequencer transform now does overlap checks.
* removed old transform functions from sequencer_edit.c
* shuffle_seq moved to kernel, now moves strips to the end of the last sequence of itschannel (if all channels are used). 2.4x would remove the strip.
* most of the 'Strip' menu items now call their operators in the header menu, some for view and select too.
* Action Editor/Dopesheet now displays names retrieved from RNA in the form - "<Struct/OwnerName>.<PropertyName>.<ArrayIndex>"
i.e. "HeadBone.Location.X"
i.e. "Cube.Rotation.Y"
i.e. "Material.Diffuse Color.G"
For now, the first part of the name may be unclear as it is easy to confuse Material channels with Object ones if the material was called "Object1" or so (theoretrical example only). This will be explored further.
* Also, fixed crashes when loading some old files with 'Object' Action Channels in their Actions
* make MSVC happy. M_PI is defined for MSVC, but these constants are available only after
doing #define _USE_MATH_DEFINES before including math.h.
Good to remember for in the future (no need to define our own M_PI's).
* Added a rotation setting to brush (and brush RNA)
* Brought back strength and rotation modes for radial control
* Brought back brush texture for radial control
* Turned off display of sculpt brush during radial control operator
Notes:
* So far, only size mode ported and tested, still strength and rotation to do
* Brought this back for sculptmode first, still to do are particle edit, vpaint, wpaint, texpaint, and I guess image paint?
* Changed the wm paint cursor slightly, to take a customdata pointer.
* Still need to bring back brush texture display in the cursor
- Brought back code for particle edit and fluidsim
- Sanitized code from globals and bad level calls,
so its ready to come back working.
- Fixed cirle selecting (Ckey now)
- Enabled undo for editmode curve, armature, particle
and lattice
(another commit following)