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