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