lilypond-devel
[Top][All Lists]
Advanced

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

Re: Caches the interior skylines of vertical axis groups and systems. (i


From: address@hidden
Subject: Re: Caches the interior skylines of vertical axis groups and systems. (issue 7185044)
Date: Tue, 26 Feb 2013 00:11:14 +0100

On 25 févr. 2013, at 23:34, address@hidden wrote:

> 
> On 25 févr. 2013, at 16:29, address@hidden wrote:
> 
>> On 2013/02/24 16:20:53, mike7 wrote:
>>> On 24 févr. 2013, at 17:18, David Kastrup <mailto:address@hidden> wrote:
>> 
>>>> "address@hidden" <mailto:address@hidden> writes:
>>>> 
>>>>> On 24 févr. 2013, at 16:37, mailto:address@hidden wrote:
>>>>> 
>>>>>> On 2013/02/24 13:27:39, mike7 wrote:
>>>>>>> On 24 févr. 2013, at 12:40, mailto:address@hidden wrote:
>>>>>> 
>>>>>>>> Stupid question: could you not just check whether
>>>>>>>> outside-staff-priority has been set, and if it has, pass the
>> buck
>>>>>>>> to the right kind of callback automatically?  That way, the user
>>>>>>>> does not need to meddle with callbacks himself.
>>>>>> 
>>>>>>> Yup, but it'd require creating an Outside_staff_callback engraver
>>>>>>> with a call to acknowledge_grob.  Calls to acknowledge_grob are
>>>>>>> expensive and should be used only if there's no other viable
>>>>>>> solution.
>>>>>> 
>>>>>> Why can't the current Y-offset callback check
>> outside-staff-priority
>>>>>> on the grob?  Why would there be a need for an acknowledger?
>>>>> 
>>>>> That's exactly how the new Y-offset callbacks are implemented in
>> this
>>>>> patch set.  The problem is that not all grobs have a Y-offset
>>>>> callback.
>>>> 
>>>> Well, something heeded outside-staff-priority previously, apparently
>>>> calculating an offset based on it.  What happened to it?
>> 
>>> Before, there was a call to translate_axis.  It wasn't done as a
>>> callback for a Y-offset property but rather a vertical-skylines
>>> property for VerticalAxisGroup that called translate_axis many times
>>> (follow, in current master,
>>> Axis_group_interface::calc_vertical_skylines to
>>> avoid_outside_staff_collisions and you'll see how this is done).
>>> This makes it impossible to wipe caches and recompute properties
>>> with more information.  The goal of this patch is to eliminate that
>>> call to translate_axis so that the callback(s) for Y-offset
>>> calculate the entire offset, which means we can cache and recache
>>> pure equivalents.
>> 
>> This is really like pulling teeth.  Something _obviously_ consults
>> Y-offset, or overriding it with a callback would not have an effect.
>> Now said something can also check Y-offset for being unset (presumably
>> the default) and outside-staff-priority for being set (the
>> non-default) and call up the most likely of the totally dissimilarly
>> named callbacks you mention in changes.tely without bothering to say
>> which one to choose under what circumstances.
>> 
>> Can you _merge_ those callbacks?  Then there is no need to pick one.
>> 
> 
> They are currently merged in that y-aligned-side automatically calls 
> calc-outside-staff-y-offset at the end.  I forget why I didn't merge them 
> completely - there was a reason at one point, but they may be mergeable.  
> Will look into it.

I see now why I didn't merge these two functions.

The tuplet-bracket-interface currently implements a property called 'padding 
that would be read by helper functions called via 
ly:side-position-interface::y-aligned-side.  We don't want this, so we write a 
second function that circumvents this and only does outside staff positioning.

Cheers,
MS


reply via email to

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