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