[prev in list] [next in list] [prev in thread] [next in thread]
List: openjdk-openjfx-dev
Subject: Re: API Change Proposal - Re: MSAA and Scene anti aliasing
From: Richard Bair <richard.bair () oracle ! com>
Date: 2013-07-31 23:47:37
Message-ID: AFA23E89-6AF4-43D3-B5D0-229A77B7457A () oracle ! com
[Download RAW message or body]
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.yang@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.graham@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@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
> > >
>
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic