public class PSWRenderer extends PrRenderer
Renderer.RendererState
Modifier and Type | Field and Description |
---|---|
private RendererDelegate |
delegate |
private ResourceFactory |
resourceFactory |
private Screen |
screen |
private Renderer.RendererState |
state |
Modifier | Constructor and Description |
---|---|
private |
PSWRenderer(ResourceFactory factory,
RendererDelegate delegate) |
private |
PSWRenderer(Screen screen,
RendererDelegate delegate) |
Modifier and Type | Method and Description |
---|---|
void |
clearImage(Filterable filterable)
Mainly used by
ImagePool for the purpose of clearing
an image before handing it back to the user. |
PSWDrawable |
createCompatibleImage(int w,
int h) |
PrDrawable |
createDrawable(RTTexture rtt) |
ImageData |
createImageData(FilterContext fctx,
Filterable src)
Mainly used by the
Identity effect for the purpose of
creating a cached ImageData from the given platform-specific
image (e.g. |
private EffectPeer |
createIntrinsicPeer(FilterContext fctx,
java.lang.String name)
Creates a new
EffectPeer instance that can be used by
any of the Prism-based backend implementations. |
static PSWRenderer |
createJSWInstance(FilterContext fctx) |
static PSWRenderer |
createJSWInstance(ResourceFactory factory)
Returns a
JSW (Java/CPU) renderer for the given screen. |
static PSWRenderer |
createJSWInstance(Screen screen)
Returns a
JSW (Java/CPU) renderer for the given screen. |
protected EffectPeer |
createPeer(FilterContext fctx,
java.lang.String name,
int unrollCount)
Creates a new peer given the context, name and unroll count.
|
private EffectPeer |
createPlatformPeer(FilterContext fctx,
java.lang.String name,
int unrollCount)
Creates a new
EffectPeer instance that is specific to
the current software-based backend. |
static Renderer |
createRenderer(FilterContext fctx) |
private static PSWRenderer |
createSSEInstance(Screen screen)
Returns an
SSE (SIMD/CPU) renderer for the given screen. |
protected void |
dispose()
Disposes this renderer (flushes the associated images).
|
Effect.AccelType |
getAccelType()
Returns the
Effect.AccelType used by default for peers of this renderer. |
protected Renderer |
getBackupRenderer()
Returns an instance of backup renderer to be used if this renderer
is in
LOST state. |
int |
getCompatibleHeight(int h) |
PSWDrawable |
getCompatibleImage(int w,
int h) |
int |
getCompatibleWidth(int w) |
Renderer.RendererState |
getRendererState()
Warning: may be called on the rendering thread
|
boolean |
isImageDataCompatible(ImageData id)
Determines whether the passed
ImageData is compatible with this
renderer (that is, if it can be used as a input source for this
renderer's peers). |
protected void |
markLost()
Marks this renderer as lost.
|
Filterable |
transform(FilterContext fctx,
Filterable original,
BaseTransform transform,
Rectangle origBounds,
Rectangle xformBounds) |
ImageData |
transform(FilterContext fctx,
ImageData original,
BaseTransform transform,
Rectangle origBounds,
Rectangle xformBounds) |
isIntrinsicPeer
createFloatTexture, getPeerInstance, getPeers, getRenderer, getRenderer, getRendererForSize, getSoftwareRenderer, releaseCompatibleImage, releasePurgatory, transform, updateFloatTexture
private final Screen screen
private final ResourceFactory resourceFactory
private final RendererDelegate delegate
private Renderer.RendererState state
private PSWRenderer(Screen screen, RendererDelegate delegate)
private PSWRenderer(ResourceFactory factory, RendererDelegate delegate)
public PrDrawable createDrawable(RTTexture rtt)
createDrawable
in class PrRenderer
public static PSWRenderer createJSWInstance(Screen screen)
JSW
(Java/CPU) renderer for the given screen.JSW
(Java/CPU) rendererpublic static PSWRenderer createJSWInstance(ResourceFactory factory)
JSW
(Java/CPU) renderer for the given screen.JSW
(Java/CPU) rendererpublic static PSWRenderer createJSWInstance(FilterContext fctx)
private static PSWRenderer createSSEInstance(Screen screen)
SSE
(SIMD/CPU) renderer for the given screen.SSE
(SIMD/CPU) rendererpublic static Renderer createRenderer(FilterContext fctx)
public Effect.AccelType getAccelType()
Renderer
Effect.AccelType
used by default for peers of this renderer.
Note that the Renderer may specialize in peers of this type, and
it may create them in general by default, but the renderers all
look for an Intrinsic peer for a given operation as well so the
actual peer implementaiton for a given effect may sometimes differ
from this AccelType
. Care should be taken if the actual
AccelType
for a specific operation is needed, then the
EffectPeer.getAccelType()
should be consulted directly
in those cases.getAccelType
in class Renderer
AccelType
used by typical peers of this rendererpublic Renderer.RendererState getRendererState()
getRendererState
in class Renderer
Renderer.RendererState
protected Renderer getBackupRenderer()
Renderer
LOST
state.getBackupRenderer
in class Renderer
protected void dispose()
protected final void markLost()
public int getCompatibleWidth(int w)
getCompatibleWidth
in class Renderer
public int getCompatibleHeight(int h)
getCompatibleHeight
in class Renderer
public final PSWDrawable createCompatibleImage(int w, int h)
createCompatibleImage
in class Renderer
public PSWDrawable getCompatibleImage(int w, int h)
getCompatibleImage
in class Renderer
private EffectPeer createIntrinsicPeer(FilterContext fctx, java.lang.String name)
EffectPeer
instance that can be used by
any of the Prism-based backend implementations. For example,
we can implement the Reflection
effect using only
Prism operations, so we can share that implemenation across all
of the Prism-based backends.fctx
- the filter contextname
- the name of the effect peerEffectPeer
instanceprivate EffectPeer createPlatformPeer(FilterContext fctx, java.lang.String name, int unrollCount)
EffectPeer
instance that is specific to
the current software-based backend.fctx
- the filter contextname
- the name of the effect peerunrollCount
- the unroll countEffectPeer
instanceprotected EffectPeer createPeer(FilterContext fctx, java.lang.String name, int unrollCount)
Renderer
createPeer
in class Renderer
fctx
- context shared with the renderername
- of the peerunrollCount
- unroll countpublic boolean isImageDataCompatible(ImageData id)
Renderer
ImageData
is compatible with this
renderer (that is, if it can be used as a input source for this
renderer's peers).isImageDataCompatible
in class Renderer
id
- ImageData
to be checkedpublic void clearImage(Filterable filterable)
Renderer
ImagePool
for the purpose of clearing
an image before handing it back to the user.clearImage
in class Renderer
filterable
- the image to be clearedpublic ImageData createImageData(FilterContext fctx, Filterable src)
Renderer
Identity
effect for the purpose of
creating a cached ImageData
from the given platform-specific
image (e.g. a BufferedImage
wrapped in a J2DImage
).createImageData
in class Renderer
fctx
- the filter contextImageData
public Filterable transform(FilterContext fctx, Filterable original, BaseTransform transform, Rectangle origBounds, Rectangle xformBounds)
public ImageData transform(FilterContext fctx, ImageData original, BaseTransform transform, Rectangle origBounds, Rectangle xformBounds)