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) |
isIntrinsicPeercreateFloatTexture, getPeerInstance, getPeers, getRenderer, getRenderer, getRendererForSize, getSoftwareRenderer, releaseCompatibleImage, releasePurgatory, transform, updateFloatTextureprivate 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 PrRendererpublic 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()
RendererEffect.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 RendererAccelType used by typical peers of this rendererpublic Renderer.RendererState getRendererState()
getRendererState in class RendererRenderer.RendererStateprotected Renderer getBackupRenderer()
RendererLOST state.getBackupRenderer in class Rendererprotected void dispose()
protected final void markLost()
public int getCompatibleWidth(int w)
getCompatibleWidth in class Rendererpublic int getCompatibleHeight(int h)
getCompatibleHeight in class Rendererpublic final PSWDrawable createCompatibleImage(int w, int h)
createCompatibleImage in class Rendererpublic PSWDrawable getCompatibleImage(int w, int h)
getCompatibleImage in class Rendererprivate 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)
RenderercreatePeer in class Rendererfctx - context shared with the renderername - of the peerunrollCount - unroll countpublic boolean isImageDataCompatible(ImageData id)
RendererImageData is compatible with this
renderer (that is, if it can be used as a input source for this
renderer's peers).isImageDataCompatible in class Rendererid - ImageData to be checkedpublic void clearImage(Filterable filterable)
RendererImagePool for the purpose of clearing
an image before handing it back to the user.clearImage in class Rendererfilterable - the image to be clearedpublic ImageData createImageData(FilterContext fctx, Filterable src)
RendererIdentity 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 Rendererfctx - the filter contextImageDatapublic 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)