Dienstag, 29. März 2011

Now even with amd64 support ;)

Over the last few weeks I fixed a few bugs oracle's QA Team found, ranging from XErrors caused by Xorg's weird way of freeing pictures asscociated with a Drawable, fixes to the SHM fallback path (this also affects the traditional X11 backend) and some bugs in the XRender glyph cache causing a Java2Demo running all night eating all your resources and causing your machine to crash ;)
What I never noticed however was, that the pipeline didn't work on AMD64. It seems nobody gave it a try on 64-bit machines. When text was rendered - only the first half was displayed.
The reason was that XIDs are defined as "unsigned long", even if they only contain 4-byte values as which the pipeline treated them.

Things look quite good so far for JDK7, except for one bug which causes IntelliJ's editor to be completly unuseable, caused by a different definition of the SRC operator with antialising enabled. Java2D still blends with the background, whereas XRender doesn't blend at all.
A simple solution would be to fall-back to software for SRC, better would be to switch to SRC_OVER when possible (src doesn't contain alpha), hope I'll find some time for that soon...

Freitag, 4. März 2011

Caciocavallo goes Web

Currently I am working on a small university project to "port" AWT/Swing to html5/canvas ... basically its more or less like VNC, except that browsers are far more clumsy to work with. (its only a scriptable document viewer after all).
The project is based on Caciocavallo, which already saved me a lot of work - all you need to provide is more or less a framebuffer and Caciocavallo takes care of the rest.

Although for now only rendering works (only for a single app) and input-event support is non-existent, the screenshot already looks quite nice :