APIdia Launch Partner
Top Description Fields Constructors Methods
com.sun.scenario.effect

public abstract Class FilterEffect<T extends RenderState>

extends Effect
Class Inheritance
Known Direct Subclasses
com.sun.scenario.effect.CoreEffect
Type Parameters
<T>
the specific subclass of RenderState returned from the getRenderState() method.
Imports
com.sun.javafx.geom.Point2D, .BaseBounds, .RectBounds, .Rectangle, com.sun.javafx.geom.transform.BaseTransform, .NoninvertibleTransformException, com.sun.scenario.effect.impl.state.RenderState

The implementation base class for Effect subclasses that operate by filtering the inputs at the pixel level.

Field Summary

Inherited from com.sun.scenario.effect.Effect:
DefaultInput

Constructor Summary

AccessConstructor and Description
protected
protected
protected
FilterEffect(Effect input1, Effect input2)

Method Summary

Modifier and TypeMethod and Description
public ImageData
filter(FilterContext fctx, BaseTransform transform, Rectangle outputClip, Object renderHelper, Effect defaultInput)

Implements abstract com.sun.scenario.effect.Effect.filter.

Applies this filter effect to the series of images represented by the input Effects and/or the given defaultInput viewed under the given transform.

protected abstract ImageData
filterImageDatas(FilterContext fctx, BaseTransform transform, Rectangle outputClip, T rstate, ImageData... inputDatas)

public BaseBounds
getBounds(BaseTransform transform, Effect defaultInput)

Implements abstract com.sun.scenario.effect.Effect.getBounds.

Returns the bounding box that will be affected by this filter operation when viewed under the specified transform, given its list of input Effects and the specified defaultInput effect.

public abstract T
getRenderState(FilterContext
the context object that would be used by the Renderer if this call is preparing for a render operation, or null
fctx
,
BaseTransform
the transform for the output of this operation
transform
,
Rectangle
the clip rectangle that may restrict this operation, or null
outputClip
,
Object
the rendering helper object that can be used to shortcut this operation under certain conditions, or null
renderHelper
,
Effect
the Effect to be used in place of any null inputs
defaultInput
)

Returns the object representing the rendering strategy and state for the filter operation characterized by the specified arguments.

public Point2D
transform(Point2D p, Effect defaultInput)

Overrides com.sun.scenario.effect.Effect.transform.

Transform the specified point p from the coordinate space of the primary content input to the coordinate space of the effect output.

public Point2D
untransform(Point2D p, Effect defaultInput)

Overrides com.sun.scenario.effect.Effect.untransform.

Transform the specified point p from the coordinate space of the output of the effect into the coordinate space of the primary content input.

protected static Rectangle
Inherited from com.sun.scenario.effect.Effect:
combineBoundscombineBoundscreateCompatibleImageensureTransformgetAccelTypegetCompatibleImagegetDefaultedInputgetDefaultedInputgetDirtyRegionsgetInputsgetNumInputsgetResultBoundsgetStatereducesOpaquePixelsreleaseCompatibleImagesetInputtransformBounds

Constructor Detail

FilterEffectback to summary
protected FilterEffect()
FilterEffectback to summary
protected FilterEffect(Effect input)
FilterEffectback to summary
protected FilterEffect(Effect input1, Effect input2)

Method Detail

filterback to summary
public ImageData filter(FilterContext fctx, BaseTransform transform, Rectangle outputClip, Object renderHelper, Effect defaultInput)

Implements abstract com.sun.scenario.effect.Effect.filter.

Doc from com.sun.scenario.effect.Effect.filter.

Applies this filter effect to the series of images represented by the input Effects and/or the given defaultInput viewed under the given transform. The filter does not need to create pixel data for any pixels that fall outside of the destination device-space (pixel) bounds specified by the outputClip Rectangle.

The filter might be able to use the renderHelper object to render the results directly on its own if the object is not null and implements an interface, such as ImageHelper, that the filter recognizes. If the effect renders itself then it will return a null for the ImageData result.

Note that the ImageData object returned by this method must be validated prior to use with ImageData#validate(com.sun.scenario.effect.FilterContext) method.

      boolean valid;

      do {
          ImageData res = filter(fctx, transform, clip, renderer, defaultInput);
          if (res == null) {
              break;
          }
          if (valid = res.validate(fctx)) {
              // Render res.getImage() to the appropriate destination
              // or use it as an input to another chain of effects.
          }
          res.unref();
      } while (!valid);
      

Annotations
@Override
filterImageDatasback to summary
protected abstract ImageData filterImageDatas(FilterContext fctx, BaseTransform transform, Rectangle outputClip, T rstate, ImageData... inputDatas)
getBoundsback to summary
public BaseBounds getBounds(BaseTransform transform, Effect defaultInput)

Implements abstract com.sun.scenario.effect.Effect.getBounds.

Doc from com.sun.scenario.effect.Effect.getBounds.

Returns the bounding box that will be affected by this filter operation when viewed under the specified transform, given its list of input Effects and the specified defaultInput effect. Note that the returned bounds can be smaller or larger than one or more of the inputs.

Annotations
@Override
getRenderStateback to summary
public abstract T getRenderState(FilterContext fctx, BaseTransform transform, Rectangle outputClip, Object renderHelper, Effect defaultInput)

Returns the object representing the rendering strategy and state for the filter operation characterized by the specified arguments. This call can also be used to get a state object for non-rendering cases like querying the bounds of an operation in which case the FilterContext object may be null. outputClip and renderHelper may always be null just as they may be null for a given filter operation.

Parameters
fctx:FilterContext

the context object that would be used by the Renderer if this call is preparing for a render operation, or null

transform:BaseTransform

the transform for the output of this operation

outputClip:Rectangle

the clip rectangle that may restrict this operation, or null

renderHelper:Object

the rendering helper object that can be used to shortcut this operation under certain conditions, or null

defaultInput:Effect

the Effect to be used in place of any null inputs

transformback to summary
public Point2D transform(Point2D p, Effect defaultInput)

Overrides com.sun.scenario.effect.Effect.transform.

Doc from com.sun.scenario.effect.Effect.transform.

Transform the specified point p from the coordinate space of the primary content input to the coordinate space of the effect output. In essence, this method asks the question "Which output coordinate is most affected by the data at the specified coordinate in the primary source input?"

The definition of which input represents the primary content input and how the coordinate space of that input compares to the coordinate space of the result varies from effect to effect. Note that some effects may have a reasonable definition of how to map source coordinates to destination coordinates, but not the reverse. In particular, effects which map source coordinates discontiguously into the result may have several output coordinates that are affected by a given input coordinate and may choose to return one of many equally valid answers, or an undefined result such as NaN, or some other anomalous value. Most effects perform simple transformations of the color of each pixel and so represent an identity transform and return the point unchanged.

Annotations
@Override
untransformback to summary
public Point2D untransform(Point2D p, Effect defaultInput)

Overrides com.sun.scenario.effect.Effect.untransform.

Doc from com.sun.scenario.effect.Effect.untransform.

Transform the specified point p from the coordinate space of the output of the effect into the coordinate space of the primary content input. In essence, this method asks the question "Which source coordinate contributes most to the definition of the output at the specified coordinate?"

The definition of which input represents the primary content input and how the coordinate space of that input compares to the coordinate space of the result varies from effect to effect. Note that some effects may have a reasonable definition of how to map destination coordinates back to source coordinates, but not the reverse. In particular, effects which produce entirely synthetic results not based on any content input may not be able to give a meaningful result to this query and may return undefined coordinates such as 0, Infinity, or NaN. Most effects perform simple transformations of the color of each pixel and so represent an identity transform and return the point unchanged.

Annotations
@Override
untransformClipback to summary
protected static Rectangle untransformClip(BaseTransform transform, Rectangle clip)