Sorry let me be clear. Having a class vs an enum was my preferred approach and 
I'm glad with Jim's nudge it looks like we'll go there. Having just the few 
predefined constants as a starting point I think is good, and we can add 
sub-types and more goodness in the future.

Richard

On Jul 31, 2013, at 4:47 PM, Richard Bair <richard.b...@oracle.com> wrote:

> I'm pretty confident we'll want different sub-types as we go along (CSAA, 
> MSAA, FXAA -- there are a lot of different ways to do full-scene 
> anti-aliasing and I bet that they will have different parameters for 
> controlling their various algorithms), but we can cross that bridge later.
> 
> Richard
> 
> On Jul 31, 2013, at 4:36 PM, Chien Yang <chien.y...@oracle.com> wrote:
> 
>> 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.gra...@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.y...@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
>>>> 
>> 
> 

Reply via email to