RFR: 8242523: Update the animation and clip envelope classes

Nir Lisker nlisker at openjdk.java.net
Wed May 13 00:31:08 UTC 2020


On Mon, 11 May 2020 04:30:28 GMT, Ambarish Rapte <arapte at openjdk.org> wrote:

>> Mostly refactoring in preparation of the upcoming fixes. The changes might look like a lot, but it's mostly rearranging
>> of methods. Summery of changes:
>> ### Animation
>> * Added `isNearZero` and `areNearEqual` methods that deal with `EPSILON` checks.
>> * Added `isStopped`, `isRunning` and `isPaused` convenience methods.
>> * Added `runHandler` method to deal with running the handler.
>> * Moved methods to be grouped closer to where they are used rather than by visibility.
>> * Removed the static import for `TickCalculation`.
>> * Various small subjective readability changes.
>> * Behavioral changes: switching `autoReverse` and `onFinished` properties from "Simple" to "Base" properties; and lazily
>>   initializing the `cuePoints` map.
>> 
>> ### Clip Envelopes
>> * Added `MultiLoopClipEnvelope` as an intermediate parent for infinite and finite clip envelopes.
>> * Rearranged methods order to be consistent.
>> * Replaced the `checkBounds` method with a new overload of `Utils.clamp`.
>> * Renamed `pos` to `cyclePos`.
>> * Extracted common methods: `changedDirection` and `ticksRateChange`
>> * Added internal documentation.
>> 
>> Also corrected a typo in `TicksCalculation` and added an explanation for an animation test.
>
> modules/javafx.graphics/src/main/java/com/sun/scenario/animation/shared/MultiLoopClipEnvelope.java line 59:
> 
>> 58:         return Math.round((ticks - deltaTicks) * Math.abs(newRate / rate));
>> 59:      }
>> 60:
> 
> This is similar to `ClipEnvelope.ticksRateChange()` with a minor difference. Can this be removed from here and
> `ClipEnvelope.ticksRateChange()` be reused ?

I think that in the next patches there will be another change here anyway that will make this more sensible. I just
tried to split the final patch into more manageable chunks so some changes need future vision.

-------------

PR: https://git.openjdk.java.net/jfx/pull/196


More information about the openjfx-dev mailing list