Re: Line breaking, simple-spacer, etc.
In define-markup-commands.scm, there are references to things like wordwrap-internal-markup-list and make-wordwrap-internal-markup-list. For example, in the function define-builtin-markup-list-command, there is the application (make-wordwrap-internal-markup-list #t args). I can not find where these functions are defined. Grepping the whole source tree only yields occurrences where they are applied. I presume there must be some sort of dynamic building of the name and binding it to the the body (also there is the question then, how is the body constructed)? Those functions are created by the define-markup-list-command macro (defined in markup.scm). Werner ___ lilypond-devel mailing list lilypond-devel@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-devel
Re: Line breaking, simple-spacer, etc.
Werner LEMBERG Wednesday, February 10, 2010 8:01 AM In define-markup-commands.scm, there are references to things like wordwrap-internal-markup-list and make-wordwrap-internal-markup-list. For example, in the function define-builtin-markup-list-command, there is the application (make-wordwrap-internal-markup-list #t args). I can not find where these functions are defined. Grepping the whole source tree only yields occurrences where they are applied. I presume there must be some sort of dynamic building of the name and binding it to the the body (also there is the question then, how is the body constructed)? Those functions are created by the define-markup-list-command macro (defined in markup.scm). ... and used to define wordwrap-internal-markup-list at line 975 in scm/define-markup-commands.scm, for example. Trevor ___ lilypond-devel mailing list lilypond-devel@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-devel
Re: Line breaking, simple-spacer, etc.
Quoting Joe Neeman joenee...@gmail.com: We create lots of extra grobs (eg. a BarNumber at every bar line) but most of them are not drawn. See the break-visibility property in item-interface. Thanks Joe, this explanation does help a lot. I hope I am not abusing your (and the list's) patience by asking another question: In define-markup-commands.scm, there are references to things like wordwrap-internal-markup-list and make-wordwrap-internal-markup-list. For example, in the function define-builtin-markup-list-command, there is the application (make-wordwrap-internal-markup-list #t args). I can not find where these functions are defined. Grepping the whole source tree only yields occurrences where they are applied. I presume there must be some sort of dynamic building of the name and binding it to the the body (also there is the question then, how is the body constructed)? ___ lilypond-devel mailing list lilypond-devel@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-devel
Line breaking, simple-spacer, etc.
I am experimenting with some modifications to the line breaking code, and I am stuck trying to understand how some of it works. So far my understanding is that Simple_spacer operates on a vector of Grobs, and it is a well-known Constrained-QP problem (rods = constraints, springs = quadratic function to minimize). What I don't understand is, if the spacer operates at the level of Grobs, which are built at an earlier stage in the pipeline, how are the changes necessitated by differences in line breaking, taken into account? in other words, if I take the last measure of a line and place it on the next line, it is not just a matter of literally moving that graphic to where the start of the next line is, but I also need to draw a clef, key signature, and possibly other fundamental things -- but at that stage in the rendering pipeline, is it not too late?? ___ lilypond-devel mailing list lilypond-devel@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-devel
Re: Line breaking, simple-spacer, etc.
On Thu, 2010-02-04 at 15:33 -0500, Boris Shingarov wrote: I am experimenting with some modifications to the line breaking code, and I am stuck trying to understand how some of it works. So far my understanding is that Simple_spacer operates on a vector of Grobs, and it is a well-known Constrained-QP problem (rods = constraints, springs = quadratic function to minimize). What I don't understand is, if the spacer operates at the level of Grobs, which are built at an earlier stage in the pipeline, how are the changes necessitated by differences in line breaking, taken into account? in other words, if I take the last measure of a line and place it on the next line, it is not just a matter of literally moving that graphic to where the start of the next line is, but I also need to draw a clef, key signature, and possibly other fundamental things -- but at that stage in the rendering pipeline, is it not too late?? We create lots of extra grobs (eg. a BarNumber at every bar line) but most of them are not drawn. See the break-visibility property in item-interface. Cheers, Joe ___ lilypond-devel mailing list lilypond-devel@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-devel