Hi
On Wed, Mar 28, 2012 at 8:14 PM, Ville Syrjälä ville.syrjala@linux.intel.com wrote:
On Wed, Mar 28, 2012 at 10:30:20AM -0700, Jesse Barnes wrote:
On Tue, 27 Mar 2012 16:57:29 +0200 David Herrmann dh.herrmann@googlemail.com wrote:
Hi
Motivated by Jesse's letter to the lazyweb [1] I worked on a kmscon program. It provides a terminal-emulator similar to the in-kernel terminal-emulator based on DRM. It is written from scratch and needs as external dependencies only mesa (libdrm, libgbm, libEGL, libGLESv2), udev, xproto (build-time dep), libxkbcommon, freetype2 and currently glib (only for unicode support). It uses a very recent version of libxkbcommon but it should be easy to fix ./src/kbd_xkb.c if you use an older version (or use --disable-xkbcommon to use a very basic keyboard handler).
Awesome! Now get the distros to pick this up and turn off CONFIG_VT! :)
Ville's comment about a texture atlas is a good one, if nothing else I think it should improve cache behavior.
You could also render a large batch of glyphs with just a single glDrawElements()/glDrawArrays() call. Looks like the current code does a glDrawArrays() for each glyph.
I switched to cairo again and this works much better than my first attempt with freetype+GL (even with higher row/cols counts). I also switched to pango so I don't have to care for unicode combined-chacraters which are not supported by freetype2 out-of-the box and need to be emulated.
I might, though, give freetype+OpenGL another try with your approach to draw all glyphs with one glDrawArrays() call. However, I now wanna concentrate on the VTE layer for now.
-- Ville Syrjälä Intel OTC
Thanks looking over it! David