16 *
17 * You should have received a copy of the GNU General Public License version
18 * 2 along with this work; if not, write to the Free Software Foundation,
19 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
20 *
21 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
22 * or visit www.oracle.com if you need additional information or have any
23 * questions.
24 */
25
26 package com.sun.scenario.effect.impl.prism.ps;
27
28 import com.sun.javafx.geom.Rectangle;
29 import com.sun.javafx.geom.transform.BaseTransform;
30 import com.sun.prism.ps.Shader;
31 import com.sun.scenario.effect.Effect;
32 import com.sun.scenario.effect.FilterContext;
33 import com.sun.scenario.effect.ImageData;
34 import com.sun.scenario.effect.impl.EffectPeer;
35 import com.sun.scenario.effect.impl.Renderer;
36
37 public abstract class PPSEffectPeer extends EffectPeer {
38
39 protected PPSEffectPeer(FilterContext fctx, Renderer r, String shaderName) {
40 super(fctx, r, shaderName);
41 }
42
43 @Override
44 public final ImageData filter(final Effect effect,
45 final BaseTransform transform,
46 final Rectangle outputClip,
47 final ImageData... inputs)
48 {
49 setEffect(effect);
50 setDestBounds(getResultBounds(transform, outputClip, inputs));
51 return filterImpl(inputs);
52 }
53
54 abstract ImageData filterImpl(ImageData... inputs);
55
56 protected abstract boolean isSamplerLinear(int i);
57
58 protected abstract Shader createShader();
59
60 protected abstract void updateShader(Shader shader);
61
62 /**
63 * Disposes resources associated with this peer.
64 * Warning: called from the rendering thread.
65 */
66 @Override
67 public abstract void dispose();
68
69 @Override
|
16 *
17 * You should have received a copy of the GNU General Public License version
18 * 2 along with this work; if not, write to the Free Software Foundation,
19 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
20 *
21 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
22 * or visit www.oracle.com if you need additional information or have any
23 * questions.
24 */
25
26 package com.sun.scenario.effect.impl.prism.ps;
27
28 import com.sun.javafx.geom.Rectangle;
29 import com.sun.javafx.geom.transform.BaseTransform;
30 import com.sun.prism.ps.Shader;
31 import com.sun.scenario.effect.Effect;
32 import com.sun.scenario.effect.FilterContext;
33 import com.sun.scenario.effect.ImageData;
34 import com.sun.scenario.effect.impl.EffectPeer;
35 import com.sun.scenario.effect.impl.Renderer;
36 import com.sun.scenario.effect.impl.state.RenderState;
37
38 public abstract class PPSEffectPeer<T extends RenderState> extends EffectPeer<T> {
39
40 protected PPSEffectPeer(FilterContext fctx, Renderer r, String shaderName) {
41 super(fctx, r, shaderName);
42 }
43
44 @Override
45 public final ImageData filter(final Effect effect,
46 final T renderState,
47 final BaseTransform transform,
48 final Rectangle outputClip,
49 final ImageData... inputs)
50 {
51 setEffect(effect);
52 setRenderState(renderState);
53 setDestBounds(getResultBounds(transform, outputClip, inputs));
54 return filterImpl(inputs);
55 }
56
57 abstract ImageData filterImpl(ImageData... inputs);
58
59 protected abstract boolean isSamplerLinear(int i);
60
61 protected abstract Shader createShader();
62
63 protected abstract void updateShader(Shader shader);
64
65 /**
66 * Disposes resources associated with this peer.
67 * Warning: called from the rendering thread.
68 */
69 @Override
70 public abstract void dispose();
71
72 @Override
|