On Sun, 24 May 2026 13:26:42 GMT, Marius Hanl <[email protected]> wrote:

>> I think it should be ok for this PR (corresponds to the status quo), but you 
>> do bring a good point: `isEmbedded()` is extremely vague - is it referring 
>> to a 8085 kind of embedded or embedded linux on 2 GHz arm chip?  
>> 
>> And what does it mean, exactly?  There are a few places that use it 
>> currently, like sub-pixel (LCD) font rendering, some caching in 
>> `TitledPaneSkin`, texture mapping in Phong material, etc.
>> 
>> Perhaps instead we should consider splitting it into individual features 
>> like `low power`, `resource constrained`, `reduced graphic quality` and the 
>> like.
>> 
>> What do you think?
>
> Agree. I initially wanted to add a System Property instead - but decided 
> against because I want to keep the behavior for now.
> 
> But I'm definitely in favor of a better method.
> 
> Regarding `Platform.Preferences.reducedMotion`, this seems like a good 
> candidate here and also `Pagination` prev/next Animation - maybe the 
> `TitledPane` `animated` property default and some more. 
> +1 from me.
> 
> I think this would not solve all cases though, as Andy mentioned there are 
> some other locations where `reducedMotion` makes not that much sense 
> probably, but instead something like `reduced graphic quality` or similar.
> 
> How about I create a ticket, and the two of you add any details I haven't 
> covered - so we have a well-documented ticket? Then I can send an email and 
> see what kind of feedback we get.

In the past, Web CSS had media types that tried to define platforms like `tv`, 
`projection`, `handheld`, etc. with the same idea: some platforms should be 
treated differently than other platforms. Those are now deprecated, because the 
idea has proven to be incoherent. If I have a laptop computer, is it `screen`? 
Does it become `handheld` when I pick it up? What if I connect it to a video 
projector, now it's suddenly `projection`? Why should my application now look 
and feel different?

When we tie behaviors to specific platforms, we go down the same incoherent and 
wrong path. An embedded platform can be extremely resource-constrained, but it 
can also be more powerful than a desktop platform. We introduced 
`reducedMotion`, `reducedTransparency`, and `reducedData` to allow 
_applications_ instead of _platforms_ to be in charge of defining behavior 
characteristics, and those settings directly describe what they control; 
there's no need to guess what it should mean for an application.

The API is there, we just need to start using it. I would also prefer that we 
start by using what we already have, and not try to come up with even more 
settings without having used any of the existing settings. I think this can be 
done as part of this PR because it already touches the code; if you don't want 
to do that, then with a follow-up PR.

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

PR Review Comment: https://git.openjdk.org/jfx/pull/2146#discussion_r3294816018

Reply via email to