--- old/modules/graphics/src/main/jsl-decora/LinearConvolveShadow.jsl 2014-02-21 17:02:04.000000000 -0800 +++ new/modules/graphics/src/main/jsl-decora/LinearConvolveShadow.jsl 2014-02-21 17:02:04.000000000 -0800 @@ -24,43 +24,31 @@ */ << -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(); } >> @@ -73,10 +61,10 @@ 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()