[Konsole-devel] Gauging Feature Merge Inquiry

Jacob Alexander triplehaata at gmail.com
Thu Jul 26 02:07:50 UTC 2012


Hi Konsole Team!

First off, Konsole has always been my favourite terminal emulator. Great
job guys!
(sadly having to install KDE puts me off on some installs due to limited
space)


I'm taking (just finished really) an "Intro to Graphics" at my university
(TuxRacer came out of this exact course at UWaterloo). And it was required
of me to do a "project" for the course.

I did an OpenGL terminal emulator. As in each character is rendered
individually (either using a Texture mapped font, or each of the pixels
individually as 1x1x1 cubes). This allows for animations per character, and
per line.
I've implemented multiple post-processing effects such as Motion Blur, Font
Glow, and Reflection.

Now, to do my development, I used a heavily modified version of qtermwidget
that I worked on in 2008 (an old version of Konsole 4 ported to pure Qt4).
To start I worked at splitting out only TerminalDisplay.cpp into separate
inheritable classes, so I could test the 2D and 3D renders in place.
Currently I've been restricted to OpenGL 2.1 (which is what's supported on
my system).

Anyways, before I say more, I probably should show some screenshots (both
taken from a computer using an AMD 4870 using the opensource ati driver).
It runs very well on recent Intel integrated graphics.


(This one still had some font alignment issues)
http://imgur.com/bKdNs

(Glow, Spline Path, Skybox, Rotation animation, font alignment issues are
fixed here)
http://imgur.com/DoC1b


There are still lots of bugs, and the performance is lacking (still need to
do heavy optimizations), but is showing good promise (did this in about 10
days while working on all my other crazy engineering courses :P).

So, my question is:
Would the Konsole team be interested in a feature like this?
I have no problems cleaning it up (and making it fast, though that will
involve more invasive changes to Konsole since I would want to update the
history/screen buffer and video buffer simultaneously in order to get rid
of latency issues when updating characters and utilizing video buffer for
buffer storage) and preparing it for review (according to whatever
standards the Konsole team has).

The 3D renderer would, in no way, replace the current 2D renderer and would
be designed to live beside it, so you could turn it on/off. (oh, and I've
achieved pixel perfect emulation of fonts when using an Orthographic
perspective mode, so yes, you can still use it like a normal terminal, my
screenshots are just to show off features)


Here's the repo if any are interested (basic functionality is there, but I
still have a lot of cleanup/optimization to do).
https://bitbucket.org/HaaTa/baulktermgl/overview
(Needs Qt 4.8, and GSL to build, and is only configured to use Terminus atm)


If there is interest. Let me know what the suggested next steps would be.

If there isn't any interest (that's ok too), I'll be porting the updates
from the latest Konsole into my version, and work on optimizing my features
(and doing invasive changes as needed).


I'm also very interested in comments, and suggestions!


Thanks!
-Jacob Alexander
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.kde.org/pipermail/konsole-devel/attachments/20120725/8442175a/attachment.html>


More information about the konsole-devel mailing list