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) |
isIntrinsicPeergetPeerInstance, getPeers, getRenderer, getRenderer, getRendererForSize, getSoftwareRenderer, releaseCompatibleImage, releasePurgatory, transformprivate 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 PrRendererpublic 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 PPSDrawable createCompatibleImage(int w, int h)
createCompatibleImage in class Rendererpublic PPSDrawable getCompatibleImage(int w, int h)
getCompatibleImage in class Rendererpublic LockableResource createFloatTexture(int w, int h)
createFloatTexture in class Rendererpublic void updateFloatTexture(LockableResource texture, FloatMap map)
updateFloatTexture in class Rendererpublic 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)
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)
private static ShaderSource createShaderSource(java.lang.String name)
public static Renderer createRenderer(FilterContext fctx)