--- old/modules/graphics/src/main/java/com/sun/scenario/effect/Crop.java 2014-02-21 17:02:17.000000000 -0800 +++ new/modules/graphics/src/main/java/com/sun/scenario/effect/Crop.java 2014-02-21 17:02:17.000000000 -0800 @@ -31,6 +31,7 @@ import com.sun.javafx.geom.DirtyRegionPool; import com.sun.javafx.geom.Rectangle; import com.sun.javafx.geom.transform.BaseTransform; +import com.sun.scenario.effect.impl.state.RenderState; /** * An effect that returns a cropped version of the input. @@ -176,21 +177,26 @@ if (!id.validate(fctx)) { return new ImageData(fctx, null, null); } - ImageData ret = filterImageDatas(fctx, transform, cropRect, id); + RenderState rstate = getRenderState(fctx, transform, cropRect, renderHelper, defaultInput); + ImageData ret = filterImageDatas(fctx, transform, cropRect, rstate, id); id.unref(); return ret; } @Override - protected Rectangle getInputClip(int inputIndex, - BaseTransform transform, - Rectangle outputClip) + public RenderState getRenderState(FilterContext fctx, + BaseTransform transform, + Rectangle outputClip, + Object renderHelper, + Effect defaultInput) { // RT-27564 // TODO: Since we also crop to the "crop input" and since cropping // is a form of clipping, we could further restrict the bounds we - // ask from the content input here... - return outputClip; + // ask from the content input here, but for now we will use the stock + // RenderSpaceRenderState object which simply passes along the output + // clip to the inputs unmodified. + return RenderState.RenderSpaceRenderState; } @Override