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;