TransluXent

Future

Future

We plan to extend both the implementation and the protocol:

Implementation

  • Implement more graphics primitives using OpenGL instead of cfb.

    This currently is kind of stalled since I only have a poor TNT2 which lacks pbuffer support and has a buggy implementation of Copy[Sub]TexImage2d. So rendering to textures is kind of hard with this hardware.

  • Perhaps more glitter like shadows and stuff?

Possible Protocol Extensions

  • Introduce new visuals representing an RGBA plane.

    The idea is that certain windows among them top level windows could provide not only a color but also an alpha value. Note: This actually is kind of implemented, try drawing a pixel value of say #x20FF0000 to a window to get red with approximately 1/8 opacity.

  • A new graphics context function called GCblend or something which would allow the standard X11 graphics primitives to apply alpha-blending.

    One could utilize the spare fourth octet of a pixel value to specify the alpha channel. Example:

    ;; assume ARGB pixel format
    (with-gcontext (gc :foreground #x88FF0000
                       :function :blend)
      (draw-rectangle window gc 100 100 100 100 t))
    
    or in C:
    XSetForeground (dpy, gc, 0x88FF0000);
    XSetFunction (dpy, gc, GCBlend);
    XFillRectangle (dpy, win, gc, 100, 100, 100, 100);
    
Gilbert Baumann <unk6@rz.uni-karlsruhe.de>
Ettlingen, Germany