On Thu, 24 Sep 2020 02:46:31 GMT, Nir Lisker <nlis...@openjdk.org> wrote:

>> CSR: https://bugs.openjdk.java.net/browse/JDK-8218264
>
> Nir Lisker has updated the pull request incrementally with one additional 
> commit since the last revision:
> 
>   Change range after clamping

The public API and implementation looks good. I left a few inline comments.

I'll review the CSR in parallel with your fixing the few things I noted.

modules/javafx.graphics/src/main/java/com/sun/javafx/sg/prism/NGPointLight.java 
line 118:

> 116:         }
> 117:     }
> 118: }

Add newline here.

modules/javafx.graphics/src/main/native-prism-d3d/D3DLight.cc line 49:

> 47:     attenuation[1] = 0;
> 48:     attenuation[2] = 0;
> 49:     maxRange = 0;

Same comment as in `NGShape3D` about using infinity here, although if this 
value is always set from the Java side, then
this native default might not matter.

modules/javafx.graphics/src/main/native-prism-d3d/D3DLight.cc line 64:

> 62: }
> 63:
> 64: /*void D3DLight::setRange(float r) {

Remove this unused function?

modules/javafx.graphics/src/main/native-prism-es2/GLContext.c line 2128:

> 2126:     meshViewInfo->pointLightAttenuation[1] = 0;
> 2127:     meshViewInfo->pointLightAttenuation[2] = 0;
> 2128:     meshViewInfo->pointLightMaxRange = 0;

Same comment as `D3DLight.cc` about the default value.

tests/system/src/test/java/test/javafx/scene/lighting3D/PointLightAttenuationTest.java
 line 51:

> 49: public class PointLightAttenuationTest {
> 50:
> 51:     private static final double DELTA = 1d/255; // smallest color 
> resolution

This test fails on my MacBook Pro system. Our other robot-based tests use a 
higher tolerance because of various
problems we run into trying to look for exact values. I recommend a tolerance 
of `10d/255`, which will still catch
whether or not attenuation is used.

tests/system/src/test/java/test/javafx/scene/lighting3D/PointLightAttenuationTest.java
 line 105:

> 103:             double attenBlueDiag = 
> snapshot.getPixelReader().getColor(SAMPLE_DIST, 0).getBlue();
> 104:             assertEquals("Wrong color value", nonAttenBlueCenter * 
> attnCenter, attenBlueCenter, DELTA);
> 105:             assertEquals("Wrong color value", nonAttenBlueDiag * 
> attnDiag, attenBlueDiag, DELTA);

This test looks good. Maybe you could also add a test of quadratic attenuation 
and max range?

-------------

PR: https://git.openjdk.java.net/jfx/pull/43

Reply via email to