lilypond-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Gets vertical skylines from grob stencils (issue 5626052)


From: Joe Neeman
Subject: Re: Gets vertical skylines from grob stencils (issue 5626052)
Date: Sun, 12 Feb 2012 21:41:34 -0800


On Thu, Feb 9, 2012 at 9:50 AM, address@hidden <address@hidden> wrote:
On Feb 7, 2012, at 6:47 PM, address@hidden wrote:


I did some experiments with caching that are up on:
dev/skylines-cached

Hey all,

Fresh branch up at dev/skylines-cached.  This patch should only increase compilation time of a LilyPond score by 1-2 seconds for every minute.
 
Wow, that's quite some work you've done. I haven't read it carefully yet, but here are some broad suggestions/comments:

Regarding your comment in axis-group-interface.cc:802, if it gets called twice, there's a bug (usually caused because we've asked for the extent of a cross-staff grob before line-breaking has happened). I'm fine with trying to detect the bug and continue, but I think there should be a programming_error (at least for NDEBUG builds; see the way cyclic dependencies are reported in grob-property.cc).

Since you seem to be expanding the scope of skylines, you may want to add some more flexible constructors instead of doing everything with boxes. For example, it should be easy to add a skyline constructor that builds a skyline from a collection of line segments. Then you can approximate beziers with line segments instead of boxes. I think I even had some code for this lying around, but I can't find it now...

add_grobs_of_one_priority looks ok, but a bit complicated. It would be simpler if you got rid of the boxes altogether and only used skylines. You could "hardcode" ly:grob::vertical-skylines-from-stencil as a default for vertical-skylines in the same way that ly:grob::stencil-height is hardcoded as a default for Y-extent. Then you can assume that every grob has a skyline.

Cheers,
Joe


reply via email to

[Prev in Thread] Current Thread [Next in Thread]