libera/#clim - IRC Chatlog
Search
3:08:07
beach
Krystof: Yes, coordinate swizzling was designed to make that work with mirrored sheets. The X11 window created would have a limited size, and the sheet transformation(s) would be set up to do the right thing. But we have had trouble with that code.
3:08:08
beach
Plus, it turns out that sheets should not be mirrored unless they represent foreign gadgets. So we (or I thought we) got rid of most mirrored sheets so that only the top sheet is mirrored.
9:03:24
jackdaniel
while we have made from provisions to simplify the coordinate swizzling it is still indespensible for correctly representing nested mirrors; we've discussed it a few times before. clx works rather fine with a single mirror, but it is still not a default choice
9:04:14
jackdaniel
now, let me try to reproduce the issue, perhaps it is time to swallow the pillow and throw the repaint queue into the mix
9:06:45
jackdaniel
now, do we talk about "we don't need it because we want a single mirror by default" or do we talk about fulfilling requirements of the specification?
9:07:15
jackdaniel
because clim allows the programmer to define their own pane that is mirrored (by inheriting from specific mixins)
9:07:22
beach
But thanks for the explanation. I now understand why the problem resembles that of coordinate swizzling. Because it is the same problem. :)
9:08:53
jackdaniel
I'm aware that there is something fishy, because john-o-carroll reported a similar issue I could not reproduce
9:10:28
jackdaniel
my suspiction is that some x11 instances may have a bug and some not regarding changing the xlib:window geometry or clearing it
9:12:22
jackdaniel
sure, but I might have misunderstood the issue, that's why I'm showing what I did
9:14:42
jackdaniel
that said, it is not certain that the issue is related to coordinate swizzling and multiple mirrors (however it is a most likely suspect)
9:18:12
jackdaniel
(setf clim:*default-server-path* '(:clx-ttf :mirroring :single)) ;; and that you did not forget that :clx-ttf is a keyword?
9:22:25
jackdaniel
perhaps I'll install in a virtual machine some generic os and try to reproduce there
9:23:30
jackdaniel
it is a good idea to have .~/.mcclim-init.lisp but McCLM doesn't read such files right now
9:25:29
jackdaniel
slightly off topic, but I've been thinking for a while now about virtual file system inside the lisp runtime, then we could use all file functions on in-memory data. I hope that I'll have time to make it work in ecl some day
9:34:35
beach
Clouseau scrolling is pretty slow though. Not sure whether that's specific to Clouseau or not.
9:39:27
beach
What you just said makes me think it is the solution to several problems, including the slowness of displaying all those lines.
9:39:28
jackdaniel
the apparent slowness is also a result (perhaps a regression) of something I've changed some time ago - we force the sheet repaint when the geometry changes (not only dispatch the repaint)
9:40:20
jackdaniel
(consider i.e an interactive operation in the listener (ql:quickload 'whatever) - it would be desired to see the output not only after the system is fully loaded)
9:51:16
jackdaniel
n.b regarding double buffering, the macro with-output-buffered is part of the specification (not that it is implemented)
9:52:20
jackdaniel
right. I have a prototype implementation in one of my branches, but I'm not sure if that approach is the right thing
9:52:42
jackdaniel
also using such macro would be slightly with odds with the fixed framerate approach
9:53:27
jackdaniel
but leaving the programmer with control when to "flush" their complicated drawing make sense to, even if not by default
9:53:52
jackdaniel
i.e (with-output-buffered (medium) (some-lenghy-operation)) would give them a separate pixmap to draw on