lilypond-devel
[Top][All Lists]
Advanced

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

breaking cleanups


From: Joe Neeman
Subject: breaking cleanups
Date: Sun, 03 Sep 2006 20:04:57 +1000

This patch gets rid of the old line breaker. It keeps the old page
breaker for now, but it is no longer the default. It adds horizontal
compression penalties, for which I don't think there are any outstanding
objections. I might make the penalty configurable in a later patch
anyway. The current penalty is a bit arbitrary and I don't really like
adding un-configurable, arbitrary constants.

The patch also fixes a number of bugs that I discovered when I tried to
make web with the new page-breaker as default. The ChangeLog is long,
but most of the changes are small.

2006-09-02  Joe Neeman  <address@hidden>

        * lily/simple-spacer.cc (get_line_forces): Ignore loose columns
        unless they are breakable. This fixes discrepancies between the forces
        calculated here and the forces calculated in get_line_configuration.

        * lily/grob.cc (pure_relative_y_coordinate): fix some
        mis-estimation that was happening with piano staves.

        * lily/constrained-breaking.cc (resize): don't choke if we get a
        measure that won't fit on a line.
        (combine_demerits): don't consider uniformity when ragged

        * lily/page-spacing.cc (solve): why the f* were there two of these?
        (calc_subproblem): properly handle the case where a system is taller
        than the page.

        * lily/system.cc (get_paper_system): ensure that all the permissions
        and penalties are passed to the paper systems.

        * lily/page-breaking.cc (create_system_list): support system-count.

        * scm/define-grobs.scm (pure-print-callbacks): add
        ly:script-interface::print

        * lily/page-spacing.cc (min_page_count): fix calculation of min
        pages if we are ragged and there are non-zero springs.

        * scm/layout-page-layout.scm: if the pure-height estimates are under
        the real height, allow space-systems to ignore padding if it is
        needed in order to fit the systems on one page

        * lily/optimal-page-breaking.cc (try_page_spacing): fix reading
        ragged properties
        (solve): fix performance problem. Make sure we always get at least
        one solution

        * lily/page-breaking.cc (make_pages): include write-page-breaks
        and page-stencil

        * lily/paper-score.cc (calc_breaking): remove Gourlay breaker

        * scm/define-grobs.scm: add the new slur-callback
        fix pure-relevant to not exclude grobs whose extent is already
        calculated

        * ly/paper-defaults.ly: make ly:optimal-breaking the new default
        page breaker

        * lily/slur.cc (pure_height): new callback to estimate the height
        of a slur






reply via email to

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