Re: API Change Proposal - Re: MSAA and Scene anti aliasing

2013-10-08 Thread Thor Johannesson
Hi All,

Need to revive this thread, to remind everyone that anti-aliasing API change is 
going in. And should be available in build b112.
See bug report for some further detail/discussion: 
https://javafx-jira.kenai.com/browse/RT-31878

Initially only available anti-aliasing modes are BALANCED and DISABLED, as per 
decision by Kevin and Richard.  FASTEST and NICEST should come later.

The new class SceneAntialiasing  should resembled below:

/**
 * The JavaFX {@code SceneAntialiasing} class specifies the level of
 * anti-aliasing desired. Scene anti-aliasing is primarily used when rendering
 * 3D primitives, which are otherwise rendered aliased.
 * p
 * Note: In order for {@code SceneAntialiasing} to have an affect, the 
underlying
 * system must support:
 * {@link javafx.application.ConditionalFeature#SCENE3D 
ConditionalFeature.SCENE3D}
 * and anti-aliasing.
 * /p
 * @since JavaFX 8.0
 */
public final class SceneAntialiasing {
/**
 * Disables anti-aliasing
 */
public static final SceneAntialiasing DISABLED = new 
SceneAntialiasing(DISABLED);
/**
 * Enables anti-aliasing optimizing for a balance of quality and performance
 */
public static final SceneAntialiasing BALANCED = new 
SceneAntialiasing(BALANCED);
...
private SceneAntialiasing(String value) { val = value; }
}

Note this is a potential breaking change, and the following constructors will 
change!

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)


-Thor
On Jul 24, 2013, at 2:37 PM, Chien Yang 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
 



Re: API Change Proposal - Re: MSAA and Scene anti aliasing

2013-07-31 Thread Chien Yang
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 

Re: API Change Proposal - Re: MSAA and Scene anti aliasing

2013-07-31 Thread Richard Bair
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 

Re: API Change Proposal - Re: MSAA and Scene anti aliasing

2013-07-31 Thread Richard Bair
Sorry let me be clear. Having a class vs an enum was my preferred approach and 
I'm glad with Jim's nudge it looks like we'll go there. Having just the few 
predefined constants as a starting point I think is good, and we can add 
sub-types and more goodness in the future.

Richard

On Jul 31, 2013, at 4:47 PM, Richard Bair richard.b...@oracle.com wrote:

 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, 

Re: API Change Proposal - Re: MSAA and Scene anti aliasing

2013-07-24 Thread Chien Yang
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




Re: API Change Proposal - Re: MSAA and Scene anti aliasing

2013-07-24 Thread Chien Yang

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




Re: API Change Proposal - Re: MSAA and Scene anti aliasing

2013-07-24 Thread Kevin Rushforth

+1 on having DISABLED be first.

-- Kevin


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
  


  


Re: API Change Proposal - Re: MSAA and Scene anti aliasing

2013-07-23 Thread Felix Bembrick
I am not sure I like the name of the value DEFAULT.  To me default
implies some kind of typical option for the particular platform which
could conceivably be very different on each platform.  For example, on my
Windows super-computer with ultra fast GPU the default would logically be
something like 16x whereas on my iPhone I would expect the default to be
using only 2x.  The comment for DEFAULT implies that it's really more of a
BALANCED or MODERATE setting that would have the same characteristics on
each platform.


On 24 July 2013 06:29, Chien Yang chien.y...@oracle.com 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-31878https://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



Re: API Change Proposal - Re: MSAA and Scene anti aliasing

2013-07-23 Thread Chien Yang
We are way past the feature freeze date for this release. The objective 
now is to ensure the API is clean and doesn't preclude future options. 
Currently MSAA is the only supported technique and specifying the number 
of samples will require additional API which we aren't ready to commit.


- Chien

On 7/23/2013 2:04 PM, Felix Bembrick wrote:

Exactly.

I think we need to come up with a word that implies that it's really a 
balance of quality and speed. That's why I suggested BALANCED but I am 
hoping we can do even better than that.


As an aside, why did you decide to not expose the setting of either 
the AA type or number of samples?  I would have though that serious 
graphics developers would really like to have such options available 
to them.



On 24 July 2013 06:58, Chien Yang chien.y...@oracle.com 
mailto:chien.y...@oracle.com wrote:


Yes, very good point, we struggled with the DEFAULT value too. It
doesn't really convey the in between value of FAST and NICEST.

- Chien


On 7/23/2013 1:41 PM, Felix Bembrick wrote:

I am not sure I like the name of the value DEFAULT.  To me
default implies some kind of typical option for the
particular platform which could conceivably be very different on
each platform.  For example, on my Windows super-computer with
ultra fast GPU the default would logically be something like
16x whereas on my iPhone I would expect the default to be using
only 2x.  The comment for DEFAULT implies that it's really more
of a BALANCED or MODERATE setting that would have the same
characteristics on each platform.


On 24 July 2013 06:29, Chien Yang chien.y...@oracle.com
mailto:chien.y...@oracle.com 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