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 >>> >