I am going to replace it after I finish making the ANSI escape parser
modular again (it became a bit less modular during the development of
this terminal).
These changes are part of an effort to make the terminal more efficient.
Another goal is to make the terminal use the "new-style" compositor
interface, which is still in development.
Major speed improvement, though it might make things like "Scale
windows" look a bit less polished; windows that are scaled up in scale
mode are rendered with bilinear scaling. Will probably replace with the
FAST/GOOD macros later.
Also, add the framework for Alt+Tab window picking (not implemented yet)
Also fix the mouse to account for this... development.
Smoother mouse movement all around, though it may make things slightlys
lower by spamming lots of mouse packets. Just write good clients and
everything will be fine...
There are both some good changes and some terribly hacky changes in this
commit.
- Server uses a different struct than client now for windows, so
arbitrary compositor things like effect parameters can be added
without having to rebuild everything. That's good.
- Client window structs no longer attempt to track or use window
locations. That's good.
- Windows do not destroy in response to the destory command, but rather,
a special animation is triggered; the end state for this animation
calls the actually window destruction code. That's a hack.
- Animations are based on rendered frames, not on time. That's a hack.