API Change Proposal - Re: MSAA and Scene anti aliasing
Thor Johannesson
thor.johannesson at oracle.com
Tue Oct 8 13:43:43 PDT 2013
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
>
More information about the openjfx-dev
mailing list