freenode/#clim - IRC Chatlog
Search
4:07:39
slyrus1
we all are, I just don't have time to track down the various issues that lead to disconnects and dropping into SLDB too frequently.
4:08:12
slyrus1
otoh, it's nice to see the progress (in related areas) that, e.g., jackdaniel and loke are making!
5:19:26
loke
The issue is rooted here: https://github.com/lokedhs/McCLIM/blob/freetype2/Core/clim-basic/recording.lisp#L1552
5:56:26
beach
loke: The problem seems to be that with-output-to-output-record creates an output record of type standard-sequence-output-record by default.
8:37:30
beach
loke: Adding an output record does not automatically call REPLAY (luckily). When you start the application initially, REPLAY is called, perhaps because the new pane is just exposed.
8:37:37
beach
But when you only run the redisplay function, replay is not called. Instead, you first call draw-rectangle on the pane, which will result in the pixels being drawn.
8:37:40
beach
But when you call draw-rectangle inside with-output-to-output-record, no pixels are drawn.
8:38:33
beach
When some region is exposed, replay-output-record is called, but with a clipping region that only replays the exposed region, which is why you see a partial rectangle.
8:39:20
beach
If you want to play with the output-record hierarchy, you need to call replay manually when you are done.
8:42:12
beach
If you just add a call (clim:replay (clim:stream-output-history stream) stream) at the end of your redisplay function, it works as expected.
8:44:00
loke
beach: Will it work even when I add output recrods to output records? In the actual application I create output recrods, then add them, and that fucntion is in turn called by another function that records _that_ and adds it (it's part of Climaxima where I record output records in order to measure them so I can place the parts of the maths equations in the right places. This is a recursive operatio)
8:45:20
beach
It ought to work. You get a hierarchy of nested output records. But when you call REPLAY on the output history of the stream, then all output records should be replayed normally.
8:45:52
beach
REPLAY calls REPLAY-OUTPUT-RECORD and if it is an output record that contains others, it calls itself recursively.
9:02:15
loke
I need to use the Harfbuzz function hb_ft_font_set_load_flags() to enable hinting on the shaper level.
9:02:34
loke
I challenge all of you to find a single piece of documentation that explains what the "flags" parameter actually means.
9:34:52
splittist
it looks like the hb folks are a bit ashamed of their abuse of the ft load-flags, judging by the TODO here https://github.com/harfbuzz/harfbuzz/blob/master/src/hb-ft.cc . Good luck!
10:20:47
loke
jackdaniel: I want to have your impot before I embart on a rather invasive change to the DRAW-TEXT stuff... based on what we discussed yestyerday.
10:23:02
loke
Currently, MEDIUM-DRAW-STRING implementations expect that their coordinates are already transformed
10:23:03
jackdaniel
it would be best, if we had added gs-transformation-mixin (just as we record with gs-ink-mixin etc)
10:24:51
loke
The problem is that the existing implementations expect that X and Y are already transformed. So we have two choices:
10:25:23
loke
1) Keep passing transformed coordinates, and if a text drawing implementation wasnt to support transformations they have to untrnasform the coordinates first.
10:25:49
loke
2) Change the interface so that the coordinates are not transformed. That requires making a modification to every existing implementation of MEDIUM-DRAW-STRING.
10:30:40
loke
Also, I'm wondering if the gs-xxx-mixin works? I mean, transformation is additive. Applying rotation on top of rotation creates a combination, and does not replace it.
10:32:57
jackdaniel
loke: if you could make a short summary about proposed changes etc I'll definetely go through it later this week, but now I have pending things and I can't jump into analyzing things
12:43:15
scymtym
jackdaniel: beach: i improved the flamegraph application a bit (and exported the necessary interfaces in SBCL). do you have any ideas what i could do with it? for example, it could be useful for optimizing mcclim itself, but it cannot go into quicklisp since it is SBCL-specific. could it be a mcclim demo or tool-for-development?
13:29:22
jackdaniel
scymtym: I think that Examples/ directory is the best place for it (and we could put it on demodemo menu), eventually we could put it in Apps/ and be a standalone tool