modules/graphics/src/main/java/com/sun/scenario/effect/impl/EffectPeer.java

Print this page

        

*** 30,49 **** import com.sun.scenario.effect.FilterContext; import com.sun.scenario.effect.ImageData; import com.sun.javafx.geom.Rectangle; import com.sun.javafx.geom.transform.BaseTransform; import com.sun.javafx.geom.transform.NoninvertibleTransformException; /** * The abstract base class for all {@code Effect} implementation peers. */ ! public abstract class EffectPeer { private final FilterContext fctx; private final Renderer renderer; private final String uniqueName; private Effect effect; private int pass; protected EffectPeer(FilterContext fctx, Renderer renderer, String uniqueName) { if (fctx == null) { throw new IllegalArgumentException("FilterContext must be non-null"); --- 30,54 ---- import com.sun.scenario.effect.FilterContext; import com.sun.scenario.effect.ImageData; import com.sun.javafx.geom.Rectangle; import com.sun.javafx.geom.transform.BaseTransform; import com.sun.javafx.geom.transform.NoninvertibleTransformException; + import com.sun.scenario.effect.impl.state.RenderState; /** * The abstract base class for all {@code Effect} implementation peers. + * + * @param <T> an optional subclass of RenderState that can be assumed as the + * return value for the getRenderState() method */ ! public abstract class EffectPeer<T extends RenderState> { private final FilterContext fctx; private final Renderer renderer; private final String uniqueName; private Effect effect; + private T renderState; private int pass; protected EffectPeer(FilterContext fctx, Renderer renderer, String uniqueName) { if (fctx == null) { throw new IllegalArgumentException("FilterContext must be non-null");
*** 56,65 **** --- 61,71 ---- public boolean isImageDataCompatible(ImageData id) { return getRenderer().isImageDataCompatible(id); } public abstract ImageData filter(Effect effect, + T renderState, BaseTransform transform, Rectangle outputClip, ImageData... inputs); /**
*** 99,108 **** --- 105,122 ---- protected void setEffect(Effect effect) { this.effect = effect; } + protected T getRenderState() { + return renderState; + } + + protected void setRenderState(T renderState) { + this.renderState = renderState; + } + public final int getPass() { return pass; } public void setPass(int pass) {