[Bf-committers] GHOST improvements (proposal)
mneko at freemail.hu
Mon Jun 16 08:49:38 CEST 2014
This as an early attempt to start a discussion about the following
feature. I don't know yet how much time I can afford into this in the
next months but I'm going to start a development about the followings in
a local branch. If it fits somehow into the official development plans,
I offer this work for the community.
I already have C programming experience with the OS event systems on
both Linux, Windows and Mac. I wrote interfaces for Wacom tablet drivers
before. I also wrote interfaces for various input devices, mostly for
video capture, sometimes with hardware level i/o.
After some debugging in the GHOST module I think it needs some serious
changes. It has issues with the modifier handling and with absolute vs.
relative coordinate systems as well. I have the knowledge to fix these
but what if I start to improve it and add support for some awesome things?
The idea I'm trying to sell you is not new, so maybe a patent search
needed before doing anything. But I think the "mouse" cursor needs to
have the same 3D position, rotation and scale attributes as any objects
in the program - 9 degrees of freedom. With this, the user can move,
rotate and scale directly. There are hardware devices to do this (or
parts of it) already, just Blender cannot support them.
It's a 3D program, hopefully with stereo 3D view in the near future, so
I think the existing traditional mouse event system is just not enough.
As far as I know GHOST is not a standard and entirely Blender-specific
so it has the freedom to make this change.
My plan is to extend the mouse position events with some additional
fields. I don't know yet what is the best form: position+rotation+scale,
or a matrix, or a position and a vector, or... So I appreciate any ideas
about this. Also there must be a 2D compatibility layer to project the
3D position onto the monitor's surface for the existing pure 2D
operations. And all of these must be compatible with the future stereo
view modes too.
In this project first I'm going to replace the modifier handling
(already discussed here: https://developer.blender.org/T40155). You can
use it for a rookie test on me if you want.
These are radical changes to the API so I can understand if you don't
want it anyway.
Please let me know what do you think about these. This is just an idea,
not started yet.
Laszlo Fazekas (totoro)
More information about the Bf-committers