[gsharp-devel] replaying beams

Christophe Rhodes csr21 at cam.ac.uk
Sun Aug 14 11:40:57 UTC 2005


Hi,

Eagle-eyed users of gsharp CVS (i.e. Robert :-) have spotted that
replaying beam output records doesn't quite generate the same output
as redrawing them.  To see this, enter beamed quavers G (a fifth above
middle C) and middle C, obscure the window, bring it to the front, and
then move the gsharp cursor: the beam will change weight.

While investigating this, I found a rather more drastic example: after
those, enter middle C and then the G above (to get an
upward-sloping-beam rather than a downward-sloping one), and perform
the same operation -- the glitch will be much, much more obvious :-)

So there are two bugs.  I'm happy about my fix to the second one,
which was simply a failure to obey CLIM's bounding-rectangle protocol
(we were generating a bounding rectangle with y2 < y1).  The fix for
the first one, also included, is perhaps a little more invasive than
I'd like, but basically boils down to the fact that the system is
confused over whether the glyphs are light or not.  I don't actually
know what is in the medium-ink, if it's not +black+, but adding an
explicit light-glyph-p slot for the output-record fixes the replay
glitches.

Patch attached.  (I'm getting good at removing one-pixel
discrepancies...)

-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: beam-replaying.diff
URL: <https://mailman.common-lisp.net/pipermail/gsharp-devel/attachments/20050814/fee91fad/attachment.ksh>
-------------- next part --------------

Cheers,

Christophe


More information about the gsharp-devel mailing list