public class PPSRenderer extends PrRenderer
Renderer.RendererState
Modifier and Type | Field and Description |
---|---|
private ResourceFactoryListener |
listener |
private boolean |
needsSWDispMap |
private ResourceFactory |
rf |
private ShaderSource |
shaderSource |
private Renderer.RendererState |
state |
Modifier | Constructor and Description |
---|---|
private |
PPSRenderer(Screen screen,
ShaderSource shaderSource) |
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. |
PPSDrawable |
createCompatibleImage(int w,
int h) |
PrDrawable |
createDrawable(RTTexture rtt) |
LockableResource |
createFloatTexture(int w,
int h) |
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. |
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 shader-based backend. |
static Renderer |
createRenderer(FilterContext fctx) |
Shader |
createShader(java.lang.String name,
java.util.Map<java.lang.String,java.lang.Integer> samplers,
java.util.Map<java.lang.String,java.lang.Integer> params,
boolean isPixcoordUsed) |
private static ShaderSource |
createShaderSource(java.lang.String name) |
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) |
PPSDrawable |
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) |
void |
updateFloatTexture(LockableResource texture,
FloatMap map) |
isIntrinsicPeer
getPeerInstance, getPeers, getRenderer, getRenderer, getRendererForSize, getSoftwareRenderer, releaseCompatibleImage, releasePurgatory, transform
private final ResourceFactory rf
private final ShaderSource shaderSource
private Renderer.RendererState state
private boolean needsSWDispMap
private final ResourceFactoryListener listener
private PPSRenderer(Screen screen, ShaderSource shaderSource)
public PrDrawable createDrawable(RTTexture rtt)
createDrawable
in class PrRenderer
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 PPSDrawable createCompatibleImage(int w, int h)
createCompatibleImage
in class Renderer
public PPSDrawable getCompatibleImage(int w, int h)
getCompatibleImage
in class Renderer
public LockableResource createFloatTexture(int w, int h)
createFloatTexture
in class Renderer
public void updateFloatTexture(LockableResource texture, FloatMap map)
updateFloatTexture
in class Renderer
public Shader createShader(java.lang.String name, java.util.Map<java.lang.String,java.lang.Integer> samplers, java.util.Map<java.lang.String,java.lang.Integer> params, boolean isPixcoordUsed)
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 shader-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)
private static ShaderSource createShaderSource(java.lang.String name)
public static Renderer createRenderer(FilterContext fctx)