New: Custom region draw callbacks.
For Martin: an example is now in space_view3d/view3d_edit.c
On middlemouse rotate view, it draws a small square in center.
It works likes this:
#include "ED_space_api.h"
handle= ED_region_draw_cb_activate(region->type, drawfunc, type)
and to stop it:
ED_region_draw_cb_exit(region->type, handle)
drawfunc is of type (const bContext *C, ARegion *ar)
currently it gets called only as type REGION_DRAW_POST, later we
can add more (PRE, POST_XRAY, POST_2D, etc).
For correct usage, these calls should return leaving view transform
unaltered.
Vertex Paint back!
Added WM level "paint cursor" system, which manages a custom painting
cursor for tools or modes.
- Activate it with WM_paint_cursor_activate(). That function wants two
callbacks, a poll(C) to check whether there's a cursor in given context
and ARegion, and a draw(C, x, y) which gets called when appropriate.
- While paintcursor is active, the WM handles necessary redrawing events
for all regions, also to nicely clear the cursor on region exit.
- WM_paint_cursor_activate returns a handle, which you have to use to
end the paint cursor. This handle also means you can register as many
custom cursors as you want.
At the moment, vertex paint mode registers only a mousemove handler,
all other events are still normally handled. This is stuff for the
future todo.
Porting relevant drawing code over from AnimSys2. It is currently not hooked up to anything else yet, so don't expect any curves to draw for a while. I'll need this for validating that my recorded animation system will work. ;)
Two more files, vpaint.c and editdeform.c
No functionality working related to this yet, tomorrow!
(Added editdeform.c in mesh after all, it's doing hardly no lattice
stuff, and it seems out of place in anim_api)
* Compiling fixes for RNA - removed duplicate RNA wrapping for posechannels, removed some irrelevant code, and fixed some errors.
* Commented out/removed some evil old stuff from pose-code
* Removed texfade, wasn't a very useful option (same result can be created with the falloff curve)
* Removed CurveMapping from sculptdata, moved instead to Brush
* Removed rake field from sculptdata, moved to Brush.flag
* Moved Anchored flag from sculpt to Brush, same for direction field
* Removed BrushData, replaced usages with the regular Brush type
* Removed hardcoded brushes and brush_type from sculptdata, replaced with a pointer to the current Brush
* Made sculpt tool type settable in Brush
* Changed symmetry and axis lock fields to flags
fixes for crashes that seem to have been introduced by changes in context handling.
TODO: initialization for windowtype pupmenu if a previous SpaceFile was there.
* add SConscript to have it build with this buildsystem too :)
* commented out GHOST_Types.h - I guess any stuff that was used from it should be
properly done through event system (WM).
further cleanup:
- moved struct FileList* back to SpaceFile
- fix for memory related errors and freeing operator in file_free
- removed wmSubWindowSet, we're not doing OpenGL select in filebrowser
- removed drawing of load button when invoked from windowtype pupmenu
2.5 MSVC projectfiles:
- slipped in removal of multires_firstlevel.c in blenkernel
soc-2008-nicholasbishop branch.
Note: any old code with multires_test() or multires_level1_test() can
just be deleted, not needed by the multires modifier.
Made ED_screen api calls:
- ED_screen_full_newspace()
- ED_screen_full_prevspace()
Which now gets called by F1 operator, to move to
full-screen-sized browser. For testing fun its default
now. Might become user setting. Also have to check
on opening a temp window for this (and for render).
File window: load now happens with proper free of operator.
still a bit of mystery how main handler loop survives after
a file load... will investigate once. :)
- basic drawing of list and thumbnail view (switchable through 'favourits' icon in header)
- selection of files and directories (bookmarks) works with the RMB (right mouse button)
- load operator for files still unstable (no check for correct file type) and incomplete. (WM_operator_free missing)
immediate TODOS:
- fix load file operator
- finish drawing of buttons in header
- drawing of detailed list with all file info.
- finish selection and execute operators (LMB and MMB execute)
later todos:
- parent dir
- keymap for all the shortcuts
- append/link and databrowse
- ...
Bugfix: WM gesture manager was not assigning gesture to the
context-defined region, making border select calls from a
header not work.
This fixes Node header option "Border select".
Transform Numeric Input: Inverse
Press "/" to toggle inverse value (1/N).
Makes it easy to scale down by specific values (you can just type S / 7 to scale down by 7, for example).
This doesn't give full fraction input (X/Y).
Suggestion from a talk with Gwenouille on ba.org
Cleanup:
- Makefile was using confused link order, now all intern and
and extern libs are put after blender and editor libs
- Old stubs.c in editors/screen removed. The leftover python
stubs calls were moved to python module.