API Change Proposal - Re: MSAA and Scene anti aliasing
Chien Yang
chien.yang at oracle.com
Wed Jul 31 16:36:05 PDT 2013
I agree, however I would prefer a single class over subclasses if
possible. I have added Jim's proposal to the JIRA for consideration.
https://javafx-jira.kenai.com/browse/RT-31878
Thanks,
- Chien
On 7/31/2013 3:21 PM, Kevin Rushforth wrote:
> This seems cleaner in terms of extensibility. I think we can wait on
> adding anything other than the public static finals for this release,
> but plan to extend it using something like what Jim suggests.
>
> -- Kevin
>
>
> Richard Bair wrote:
>> Personally I liked this approach. It was like an enum in ease of use
>> but much more extensible in the future when we add more anti-aliasing
>> types and twiddles.
>>
>> Richard
>>
>> On Jul 31, 2013, at 1:36 PM, Jim Graham <james.graham at oracle.com> wrote:
>>
>>> D'oh! I knew I should have been checking this list a bit. I hope
>>> this isn't too late to have any impact...
>>>
>>> As an intermediate solution this is fine, but when we want to get
>>> into providing settings for MSAA and FSAA and other algorithms I
>>> think classes are more flexible than enums. How about this solution:
>>>
>>> package javafx.?
>>>
>>> public class SceneAntialiasing {
>>> public static final SceneAntialiasing DISABLED;
>>> public static final SceneAntialiasing BALANCED;
>>> public static final SceneAntialiasing FASTEST;
>>> public static final SceneAntialiasing NICEST;
>>>
>>> public static SceneAntialiasing[] getAvailableTechniques() { }
>>>
>>> SceneAntialiasing() { /* package private constructor! */ }
>>> }
>>>
>>> public class MsaaAntialiasing extends SceneAntialiasing {
>>> MSaaAntialiasing(int numsamp) { /* package private */ }
>>> public int getNumSamples();
>>> }
>>>
>>> public class FsaaAntialiasing extends SceneAntialiasing {
>>> FsaaAntialiasing(int numsamp) { /* package private */ }
>>> public int getNumSamples();
>>> }
>>>
>>> Note that there are ways for the system to construct these objects
>>> without providing public constructors so that these become
>>> statically defined by the system.
>>>
>>> What about Anisotropic filtering? Is that considered a form of AA,
>>> or an option on top of AA?
>>>
>>> ...jim
>>>
>>> On 7/24/2013 3:07 PM, Chien Yang wrote:
>>>> Thanks for the help! I was of 2 minds about it; alphabetical or
>>>> logical.
>>>>
>>>> public enum SceneAntiAliasing {
>>>> DISABLED, // disables anti-aliasing
>>>> BALANCED, // enables anti-aliasing using optimal system setting
>>>> available that balances speed and quality
>>>> FASTEST, // enables anti-aliasing using minimum system setting
>>>> available that results in better frame rate
>>>> NICEST // enables anti-aliasing using maximum system setting
>>>> available that results in best visual quality
>>>> }
>>>>
>>>> - Chien
>>>>
>>>> On 7/24/2013 2:49 PM, Richard Bair wrote:
>>>>> Just to be picky, I would put DISABLED first in the list. It seems
>>>>> more consistent to have the only OFF mode to be first and then all
>>>>> the rest of the options (which happen to then have ordinals > 0)
>>>>> will be some form of ON mode.
>>>>>
>>>>> Richard
>>>>>
>>>>> On Jul 24, 2013, at 2:37 PM, Chien Yang <chien.yang at oracle.com>
>>>>> wrote:
>>>>>
>>>>>> Thank you for the feedback! We decided to drop DEFAULT in favor
>>>>>> of BALANCED. So here is the revised SceneAntiAliasing enum entries:
>>>>>>
>>>>>> public enum SceneAntiAliasing {
>>>>>> BALANCED, // enables anti-aliasing using optimal system
>>>>>> setting available that balances speed and quality
>>>>>> DISABLED, // disables anti-aliasing
>>>>>> FASTEST, // enables anti-aliasing using minimum system setting
>>>>>> available that results in better frame rate
>>>>>> NICEST // enables anti-aliasing using maximum system setting
>>>>>> available that results in best visual quality
>>>>>> }
>>>>>>
>>>>>> Thanks,
>>>>>> - Chien
>>>>>>
>>>>>> On 7/23/2013 1:29 PM, Chien Yang wrote:
>>>>>>> Hi all,
>>>>>>>
>>>>>>> We appreciate all the feedback you have contributed to this
>>>>>>> topic. After listening to the feedback and an internal
>>>>>>> discussion, we would like to propose a minor change to the API
>>>>>>> for supporting scene anti-aliasing. We intentionally choose not
>>>>>>> to expose the number of samples and techniques used in this
>>>>>>> release, but this doesn't preclude future addition when the time
>>>>>>> is right for more options. This change will be tracked by
>>>>>>> RT-31878 (https://javafx-jira.kenai.com/browse/RT-31878):
>>>>>>>
>>>>>>> Anti-aliasing API Change Proposal:
>>>>>>>
>>>>>>> Constructors remove:
>>>>>>> public Scene(Parent root, double width, double height, boolean
>>>>>>> depthBuffer, boolean antiAliasing)
>>>>>>> public SubScene(Parent root, double width, double height,
>>>>>>> boolean depthBuffer, boolean antiAliasing)
>>>>>>>
>>>>>>> Constructor add:
>>>>>>> public Scene(Parent root, double width, double height, boolean
>>>>>>> depthBuffer, SceneAntiAliasing antiAliasing)
>>>>>>> public SubScene(Parent root, double width, double height,
>>>>>>> boolean depthBuffer, SceneAntiAliasing antiAliasing)
>>>>>>>
>>>>>>> Note:The antiAliasing argument will be used if the underlying
>>>>>>> graphics driver has anti-aliasing support.
>>>>>>>
>>>>>>> Where SceneAntiAliasing is an enum with the following entries at
>>>>>>> the moment:
>>>>>>>
>>>>>>> public enum SceneAntiAliasing {
>>>>>>> DISABLED, // disables anti-aliasing
>>>>>>> DEFAULT, // enables anti-aliasing using a default system
>>>>>>> setting available that balances speed and quality
>>>>>>> FASTEST, // enables anti-aliasing using minimum system
>>>>>>> setting available that results in better frame rate
>>>>>>> NICEST // enables anti-aliasing using maximum system setting
>>>>>>> available that results in best visual quality
>>>>>>> }
>>>>>>>
>>>>>>> Thanks,
>>>>>>> - Chien
>>
More information about the openjfx-dev
mailing list