On Sat, 2007-08-25 at 14:42 +0200, Tamas K Papp wrote:
Does it work for anybody else?
Hi Joubert,
My mistake, the X11 code has been rewritten again. Sorry for the frequent changes, the only justification is that I hope it is getting better and cleaner each time.
No problem; I'm still in the early growing pains of my GUI framework (busy switching from cl-cairo) so this comes with the territory.
You will find the corrected version of x11-example.lisp on the site now. In the current version, each window has its own event loop and
Got it from svn - works fine.
thread (in the previous code, it used to be one loop/thread per display). I find this approach eliminates some rare but nasty redrawing bugs.
Currently, you can create xlib contexts with
(create-xlib-context width height)
and you can supply optional arguments display-name (if nil as by default, Xlib will use your $DISPLAY settings) and window-name (the title of the window).
That's good, I know previously you had to call it with ":0".
Also, in the current version you will find sync-lock, sync-unlock and the macro
(with-sync-lock (context) ...)
which suspends redrawing the window for operations in its body. Use it for drawings with lots of elements, they will appear on the screen at the same time, and drawing will be much faster.
I did notice the speed increase in the X11 sample.
Joubert