how to implement delayed calculation of node/shape
la.tinca at gmail.com
Mon Aug 27 11:14:46 UTC 2018
>From Scene doc: "The scene graph detects dynamic node changes which affect
layout (such as a change in size or content) and calls requestLayout(),
which marks that branch as needing layout so that on the next pulse, a
top-down layout pass is executed on that branch by invoking layout() on
that branch's root. During that layout pass, the layoutChildren() callback
method will be called on each parent to layout its children. This mechanism
is designed to maximize layout efficiency by ensuring multiple layout
requests are coalesced and processed in a single pass rather than executing
re-layout on on each minute change."
Parent class has a layoutChildren() method that can be overriden. Do you
mean processing my own classes here depending on their dirty state?
If not, can you elaborate on that suggestion?
On Mon, Aug 27, 2018 at 12:16 PM Tom Schindl <tom.schindl at bestsolution.at>
> Why not do the necessary stuff on the next layout-pass?
> On 27.08.18 09:48, Zsolt Kúti wrote:
> > Thank you for the idea, I'll explore it.
> > On Sun, Aug 26, 2018 at 5:16 PM Michael Paus <mp at jugs.org> wrote:
> >> One possible solution for this would be to use an AnimationTimer.
> >> Maintain a dirty state somewhere and check that when the AnimationTimer
> >> gets called for the next pulse.
> >> Am 26.08.18 um 16:59 schrieb Zsolt Kúti:
> >>> Hi,
> >>> Some of my classes extend Path or Group and constructed by non-trivial
> >>> algorithms that may use many properties, either standard (like
> >> strokeWidth)
> >>> or non-standard ones. Setting a property calculates a new state at
> >> present.
> >>> When several properties are set it means a lot of unnecessary
> >> calculations
> >>> done.
> >>> I would like to delay geometry/shape calculations similar the way
> >>> Node/Shape do. They signal their state changes by dirty flagging and on
> >>> pulse necessary synchronization does recalculations when being dirty.
> >>> However relevant methods despite being public are deprecated (tipically
> >>> ones starting with impl_) and cannot be relied upon.
> >>> Is there a way to achive that kind of design for own classes?
> >>> Thx!
> >>> Zsolt
> Tom Schindl, CTO
> BestSolution.at EDV Systemhaus GmbH
> Eduard-Bodem-Gasse 5-7. A-6020 Innsbruck
> Reg. Nr. FN 222302s am Firmenbuchgericht Innsbruck
More information about the openjfx-dev