Escher-based X peers

Today I’ve checked in my Escher based X peers in GNU Classpath. This AWT peer implementation is done completely without native code and connects to an X server directly via TCP or Unix sockets. It is capable of running many Swing apps, does AWT 1.1 style graphics and fonts and is quite fast.

The next step will be a Graphics2D impl on top of Escher’s GLX implementation. This will be quite some work, especially because OpenGL doesn’t support all features that Graphics2D requires, like clipping against arbitrary shapes, stroking and – most importantly – filling arbitrary polygons (these need to be tesselated into triangle-like things before). Also, this depends on some serious work on Classpath’s TTF font implementation, I need to add hinting in order to get smaller glyphs rendered without making the viewer blind 😉

Finally accelerated

After nearly 5 years of struggle, I managed today to get my graphics card (A Radeon IGP 320M chip) 2D and 3D accelerated today under Linux. I needed to install a custom ACPI DSDT (from into my kernel, which is fairly easy in Ubuntu Dapper (simply drop it into /etc/mkinitramfs and reconfigure the kernel package). This fixes a couple of problems and most importantly avoids instant lockup when starting DRM.

Next I compiled and installed Mesa and DRI from CVS sources following this guide. I had to fiddle a bit with the correct dirs, and voila! OpenGL works and even 2D graphics is much smoother now (due to the use of AGP I guess).

I hope the distros will pick this up soon so that I can live without these hacks. Yay, now I can use Google Earth and play Quake without making my CPU heat up like hell 🙂

Java2D, here we come!


GNU Classpath 0.92 will be the bestest release ever. So many apps get liberated by it. I was pointed to JaxoDraw, tried it and was blown away by having it running out of the box with current Classpath and Cacao:

JaxoDraw on GNU Classpath


I guess screenshots of the latest progress soon get boring. I can’t resist to post one more now, this time it’s OpenJump which got liberated

Update: Unfortunately I made a mistake and openjump got loaded through the wrong VM. I am working hard on fixing OpenJump with GNU Classpath now.

Update 2: I fixed a couple of bugs in JTree and was able to get the following, this time really using GNU Classpath:


Another screenshot in the series of cool apps that get liberated through Sven’s great Java2D work. This one makes me especially happy because it is the application that I worked on before I started hacking on Classpath. It more or less brought me to Classpath in the first place (because I wanted it to be free). It’s Xebece. Maybe this progress gets me into hacking on it again.
Xebece on GNU Classpath


Another nice screenie.

JEdit on Classpath