modules/graphics/src/main/jsl-decora/LinearConvolveShadow.jsl

Print this page

        

@@ -22,47 +22,35 @@
  * or visit www.oracle.com if you need additional information or have any
  * questions.
  */
 
 <<
-private LinearConvolveKernel getKernel() {
-    return (LinearConvolveKernel) AccessHelper.getState(getEffect());
-}
-
-public int getPow2ScaleX(LinearConvolveKernel kernel) {
-    return kernel.getPow2ScaleX();
-}
-
-public int getPow2ScaleY(LinearConvolveKernel kernel) {
-    return kernel.getPow2ScaleY();
-}
-
 public Rectangle getResultBounds(com.sun.javafx.geom.transform.BaseTransform transform,
                                  com.sun.javafx.geom.Rectangle outputClip,
                                  com.sun.scenario.effect.ImageData... inputDatas)
 {
-    return getKernel().getScaledResultBounds(inputDatas[0].getTransformedBounds(outputClip), getPass());
+    return getRenderState().getPassResultBounds(inputDatas[0].getTransformedBounds(outputClip));
 }
 
 private int getCount() {
-    return (getKernel().getScaledKernelSize(getPass()) + 3) / 4;
+    return (getRenderState().getPassKernelSize() + 3) / 4;
 }
 
 private float[] getOffset() {
-    return getKernel().getVector(getInputNativeBounds(0), getInputTransform(0), getPass());
+    return getRenderState().getPassVector();
 }
 
 private FloatBuffer getWeights() {
-    return getKernel().getWeights(getPass());
+    return getRenderState().getPassWeights();
 }
 
 private int getWeightsArrayLength() {
-    return getKernel().getWeightsArrayLength(getPass());
+    return getRenderState().getPassWeightsArrayLength();
 }
 
 private float[] getShadowColor() {
-    return getKernel().getShadowColorComponents(getPass());
+    return getRenderState().getPassShadowColorComponents();
 }
 >>
 
 param sampler img;
 param int count;

@@ -71,14 +59,14 @@
 // offset.z = dx offset to first weighted convolution sample
 // offset.w = dy offset to first weighted convolution sample
 param float4 offset;
 param float4 shadowColor;
 // value for each location in the offsets array:
-//   weights[i].x = weight for pos0 + offset + i*direction*4+0
-//   weights[i].y = weight for pos0 + offset + i*direction*4+1
-//   weights[i].z = weight for pos0 + offset + i*direction*4+2
-//   weights[i].w = weight for pos0 + offset + i*direction*4+3
+//   weights[i].x = weight for pos0 + offset.zw + (i*4+0)*offset.xy
+//   weights[i].y = weight for pos0 + offset.zw + (i*4+1)*offset.xy
+//   weights[i].z = weight for pos0 + offset.zw + (i*4+2)*offset.xy
+//   weights[i].w = weight for pos0 + offset.zw + (i*4+3)*offset.xy
 param float4 weights[%d];
 
 void main()
 {
     int i;