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
10:26:30
john-a-carroll
jackdaniel: was the display issue meant to go away with (setq clim:*default-server-path* '(:clx-fb :mirroring :single)) ?
10:26:41
john-a-carroll
I'm running macOS / XQuartz 2.8.1 and with that *default-server-path* I still get glitches: http://users.sussex.ac.uk/~johnca/scroll-test-it.webm
10:27:29
jackdaniel
it went away for beach, as I've said I don't observe on my desktop the problem. I'm considering starting it in vm to reproduce and investigate
10:30:32
john-a-carroll
Hmm. Possibly it's timing-related because for me the glitches appear in different places each time
10:34:34
john-a-carroll
For me, it looks a bit like random-nick's https://0x0.st/-xP5.webm but not quite as bad
10:41:04
jackdaniel
speaking of repainting, one issue with this is the fact that drei confuses redisplay and repaint (basically having a single implementation for both) and its functions are not reentrant
10:41:34
jackdaniel
so when you call repaint from inside display function on a drei pane you may have very interesting results, including error buffer popping up
10:47:01
jackdaniel
that's fine; but I'd also like to have a solid implementation of a plain text-field and text-editor panes in core
10:47:28
jackdaniel
(by plain I don't mean simplistic, I mean - with narrowed scope of functionality to bare minimum)