APIdia Launch Partner
Top Description Inners Fields Constructors Methods
com.sun.prism.impl.ps

public abstract Class BaseShaderContext

extends BaseContext
Class Inheritance
Known Direct Subclasses
com.sun.prism.mtl.MTLContext, com.sun.prism.null3d.DummyContext, com.sun.prism.d3d.D3DContext, com.sun.prism.es2.ES2Context
Imports
com.sun.glass.ui.Screen, com.sun.javafx.geom.Rectangle, com.sun.javafx.geom.transform.Affine3D, .BaseTransform, .GeneralTransform3D, com.sun.javafx.sg.prism.NGCamera, com.sun.prism.CompositeMode, .PixelFormat, .RTTexture, .RenderTarget, .ResourceFactory, .Texture, com.sun.prism.impl.BaseContext, .BaseGraphics, com.sun.prism.paint.Color, .Gradient, .ImagePattern, .LinearGradient, .Paint, .RadialGradient, com.sun.prism.ps.Shader, .ShaderFactory

Maintains resources such as Shaders and GlyphCaches that are intended to be cached on a per-Screen basis, and provides methods that are called by BaseShaderGraphics to validate current state. The inner State class is used to encapsulate the current and previously validated state (such as texture bindings) so that the validation routines can avoid redundant state changes. There should be only one BaseShaderContext per Screen, however there may be one or more State instances per BaseShaderContext.

A note about State objects... The JOGL architecture creates a GLContext for each GLDrawable (one GLContext per GLDrawable, and one GLDrawable per onscreen window). Resources such as textures and shaders can be shared between those GLContext instances, but other state (texture bindings, scissor rect, etc) cannot be shared. Therefore we need to maintain one State instance per GLContext instance, which means there may be more than one State instance per BaseShaderContext. The currentState variable holds the current State instance corresponding to the current RenderTarget, and is revalidated as part of the updateRenderTarget() method. The ES2 backend will create a new State instance for each window, but the D3D backend is free to create a single State instance that can be shared for the entire Screen.

Nested and Inner Type Summary

Modifier and TypeClass and Description
public static enum
public static enum
public static class

Field Summary

Modifier and TypeField and Description
private static final int
private static final int
private static final int
private static final int
private static final int
private static final int
private static final int
private Shader
private final ShaderFactory
private RTTexture
private static final int
private final Shader[]
private final Shader[]
private BaseShaderContext.State
private final Shader[]
private final Shader[]

Constructor Summary

AccessConstructor and Description
protected
BaseShaderContext(Screen screen, ShaderFactory factory, int vbQuads)

Method Summary

Modifier and TypeMethod and Description
public abstract void
blit(RTTexture srcRTT, RTTexture dstRTT, int srcX0, int srcY0, int srcX1, int srcY1, int dstX0, int dstY0, int dstX1, int dstY1)

private void
checkState(BaseShaderGraphics g, int checkFlags, BaseTransform xform, Shader shader)

public void
dispose()

Overrides com.sun.prism.impl.BaseContext.dispose.

Dispose of this context.

public void
private void
public RTTexture
private Shader
getPaintShader(boolean alphaTest, BaseShaderContext.MaskType maskType, Paint paint)

private Shader
private static int
protected void
init()

public void
initLCDBuffer(int width, int height)

public boolean
protected void
protected void
pack-priv void
protected void
protected void
setRenderTarget(RenderTarget target, NGCamera camera, boolean depthTest, boolean state3D)

Implements abstract com.sun.prism.impl.BaseContext.setRenderTarget.

protected void
setTexture(int texUnit, Texture tex)

protected abstract void
protected abstract void
private void
updatePaintShader(BaseShaderGraphics g, Shader shader, BaseShaderContext.MaskType maskType, Paint paint, float bx, float by, float bw, float bh)

private void
updatePerVertexColor(Paint paint, float extraAlpha)

protected abstract BaseShaderContext.State
updateRenderTarget(RenderTarget target, NGCamera camera, boolean depthTest)

protected abstract void
protected abstract void
updateTexture(int texUnit, Texture tex)

protected abstract void
public void
public void
public Shader
validateLCDOp(BaseShaderGraphics g, BaseTransform xform, Texture tex0, Texture tex1, boolean firstPass, Paint fillColor)

pack-priv Shader
public void
validatePaintOp(BaseGraphics g, BaseTransform xform, Texture maskTex, float bx, float by, float bw, float bh)

Implements abstract com.sun.prism.impl.BaseContext.validatePaintOp.

pack-priv Shader
validatePaintOp(BaseShaderGraphics g, BaseTransform xform, BaseShaderContext.MaskType maskType, float bx, float by, float bw, float bh)

pack-priv Shader
validatePaintOp(BaseShaderGraphics g, BaseTransform xform, BaseShaderContext.MaskType maskType, float bx, float by, float bw, float bh, float k1, float k2, float k3, float k4, float k5, float k6)

pack-priv Shader
validatePaintOp(BaseShaderGraphics g, BaseTransform xform, BaseShaderContext.MaskType maskType, Texture maskTex, float bx, float by, float bw, float bh, float k1, float k2, float k3, float k4, float k5, float k6)

pack-priv Shader
validatePaintOp(BaseShaderGraphics g, BaseTransform xform, Texture maskTex, float bx, float by, float bw, float bh)

pack-priv Shader
validatePaintOp(BaseShaderGraphics g, BaseTransform xform, BaseShaderContext.MaskType maskType, Texture maskTex, float bx, float by, float bw, float bh)

public void
pack-priv Shader
pack-priv Shader
Inherited from com.sun.prism.impl.BaseContext:
checkDisposedclearGlyphCachesdrawQuadsflushMaskflushVertexBuffergetAssociatedScreengetGlyphCachegetGradientTexturegetOvalTexturegetPerspectiveTransformNoClonegetRectTexturegetRectTextureMaxSizegetResourceFactorygetVertexBuffergetWrapRectTextureisDisposedrenderQuadssetDeviceParametersFor2DsetDeviceParametersFor3DsetRenderTargetupdateMaskTexturevalidateMaskTexture

Field Detail

CHECK_CLEAR_OP_MASKback to summary
private static final int CHECK_CLEAR_OP_MASK
CHECK_CLIPback to summary
private static final int CHECK_CLIP
CHECK_COMPOSITEback to summary
private static final int CHECK_COMPOSITE
CHECK_PAINT_OP_MASKback to summary
private static final int CHECK_PAINT_OP_MASK
CHECK_SHADERback to summary
private static final int CHECK_SHADER
CHECK_TEXTURE_OP_MASKback to summary
private static final int CHECK_TEXTURE_OP_MASK
CHECK_TRANSFORMback to summary
private static final int CHECK_TRANSFORM
externalShaderback to summary
private Shader externalShader
factoryback to summary
private final ShaderFactory factory

Hides com.sun.prism.impl.BaseContext.factory.

lcdBufferback to summary
private RTTexture lcdBuffer
NUM_STOCK_SHADER_SLOTSback to summary
private static final int NUM_STOCK_SHADER_SLOTS
specialATShadersback to summary
private final Shader[] specialATShaders
specialShadersback to summary
private final Shader[] specialShaders
stateback to summary
private BaseShaderContext.State state
stockATShadersback to summary
private final Shader[] stockATShaders
stockShadersback to summary
private final Shader[] stockShaders

Constructor Detail

BaseShaderContextback to summary
protected BaseShaderContext(Screen screen, ShaderFactory factory, int vbQuads)

Method Detail

blitback to summary
public abstract void blit(RTTexture srcRTT, RTTexture dstRTT, int srcX0, int srcY0, int srcX1, int srcY1, int dstX0, int dstY0, int dstX1, int dstY1)
checkStateback to summary
private void checkState(BaseShaderGraphics g, int checkFlags, BaseTransform xform, Shader shader)
disposeback to summary
public void dispose()

Overrides com.sun.prism.impl.BaseContext.dispose.

Doc from com.sun.prism.impl.BaseContext.dispose.

Dispose of this context. Subclass implementations can override this if needed. They must call super.dispose().

Annotations
@Override
disposeLCDBufferback to summary
public void disposeLCDBuffer()
disposeShadersback to summary
private void disposeShaders(Shader[] shaders)
getLCDBufferback to summary
public RTTexture getLCDBuffer()

Implements abstract com.sun.prism.impl.BaseContext.getLCDBuffer.

Annotations
@Override
getPaintShaderback to summary
private Shader getPaintShader(boolean alphaTest, BaseShaderContext.MaskType maskType, Paint paint)
getSpecialShaderback to summary
private Shader getSpecialShader(BaseGraphics g, BaseShaderContext.SpecialShaderType sst)
getStockShaderIndexback to summary
private static int getStockShaderIndex(BaseShaderContext.MaskType maskType, Paint paint)
initback to summary
protected void init()
initLCDBufferback to summary
public void initLCDBuffer(int width, int height)
isSuperShaderEnabledback to summary
public boolean isSuperShaderEnabled()

Overrides com.sun.prism.impl.BaseContext.isSuperShaderEnabled.

Annotations
@Override
releaseRenderTargetback to summary
protected void releaseRenderTarget()

Overrides com.sun.prism.impl.BaseContext.releaseRenderTarget.

Annotations
@Override
resetLastClipback to summary
protected void resetLastClip(BaseShaderContext.State state)
setExternalShaderback to summary
pack-priv void setExternalShader(BaseShaderGraphics g, Shader shader)
setPerspectiveTransformback to summary
protected void setPerspectiveTransform(GeneralTransform3D transform)

Overrides com.sun.prism.impl.BaseContext.setPerspectiveTransform.

Annotations
@Override
setRenderTargetback to summary
protected void setRenderTarget(RenderTarget target, NGCamera camera, boolean depthTest, boolean state3D)

Implements abstract com.sun.prism.impl.BaseContext.setRenderTarget.

Annotations
@Override
setTextureback to summary
protected void setTexture(int texUnit, Texture tex)
updateClipRectback to summary
protected abstract void updateClipRect(Rectangle clipRect)
updateCompositeModeback to summary
protected abstract void updateCompositeMode(CompositeMode mode)
updatePaintShaderback to summary
private void updatePaintShader(BaseShaderGraphics g, Shader shader, BaseShaderContext.MaskType maskType, Paint paint, float bx, float by, float bw, float bh)
updatePerVertexColorback to summary
private void updatePerVertexColor(Paint paint, float extraAlpha)
updateRenderTargetback to summary
protected abstract BaseShaderContext.State updateRenderTarget(RenderTarget target, NGCamera camera, boolean depthTest)
updateShaderTransformback to summary
protected abstract void updateShaderTransform(Shader shader, BaseTransform xform)
updateTextureback to summary
protected abstract void updateTexture(int texUnit, Texture tex)
updateWorldTransformback to summary
protected abstract void updateWorldTransform(BaseTransform xform)
validateClearOpback to summary
public void validateClearOp(BaseGraphics g)

Implements abstract com.sun.prism.impl.BaseContext.validateClearOp.

Annotations
@Override
validateLCDBufferback to summary
public void validateLCDBuffer(RenderTarget renderTarget)
validateLCDOpback to summary
public Shader validateLCDOp(BaseShaderGraphics g, BaseTransform xform, Texture tex0, Texture tex1, boolean firstPass, Paint fillColor)
validateMaskTextureOpback to summary
pack-priv Shader validateMaskTextureOp(BaseShaderGraphics g, BaseTransform xform, Texture tex0, Texture tex1, PixelFormat format)
validatePaintOpback to summary
public void validatePaintOp(BaseGraphics g, BaseTransform xform, Texture maskTex, float bx, float by, float bw, float bh)

Implements abstract com.sun.prism.impl.BaseContext.validatePaintOp.

Annotations
@Override
validatePaintOpback to summary
pack-priv Shader validatePaintOp(BaseShaderGraphics g, BaseTransform xform, BaseShaderContext.MaskType maskType, float bx, float by, float bw, float bh)
validatePaintOpback to summary
pack-priv Shader validatePaintOp(BaseShaderGraphics g, BaseTransform xform, BaseShaderContext.MaskType maskType, float bx, float by, float bw, float bh, float k1, float k2, float k3, float k4, float k5, float k6)
validatePaintOpback to summary
pack-priv Shader validatePaintOp(BaseShaderGraphics g, BaseTransform xform, BaseShaderContext.MaskType maskType, Texture maskTex, float bx, float by, float bw, float bh, float k1, float k2, float k3, float k4, float k5, float k6)
validatePaintOpback to summary
pack-priv Shader validatePaintOp(BaseShaderGraphics g, BaseTransform xform, Texture maskTex, float bx, float by, float bw, float bh)
validatePaintOpback to summary
pack-priv Shader validatePaintOp(BaseShaderGraphics g, BaseTransform xform, BaseShaderContext.MaskType maskType, Texture maskTex, float bx, float by, float bw, float bh)
validateTextureOpback to summary
public void validateTextureOp(BaseGraphics g, BaseTransform xform, Texture tex0, PixelFormat format)

Implements abstract com.sun.prism.impl.BaseContext.validateTextureOp.

Annotations
@Override
validateTextureOpback to summary
pack-priv Shader validateTextureOp(BaseShaderGraphics g, BaseTransform xform, Texture[] textures, PixelFormat format)
validateTextureOpback to summary
pack-priv Shader validateTextureOp(BaseShaderGraphics g, BaseTransform xform, Texture tex0, Texture tex1, PixelFormat format)
com.sun.prism.impl.ps back to summary

public final Enum BaseShaderContext.MaskType

extends Enum<BaseShaderContext.MaskType>
Class Inheritance

Field Summary

Modifier and TypeField and Description
public static final BaseShaderContext.MaskType
public static final BaseShaderContext.MaskType
public static final BaseShaderContext.MaskType
public static final BaseShaderContext.MaskType
public static final BaseShaderContext.MaskType
public static final BaseShaderContext.MaskType
public static final BaseShaderContext.MaskType
public static final BaseShaderContext.MaskType
public static final BaseShaderContext.MaskType
public static final BaseShaderContext.MaskType
public static final BaseShaderContext.MaskType
public static final BaseShaderContext.MaskType
private BaseShaderContext.MaskType
private String
private boolean
public static final BaseShaderContext.MaskType
public static final BaseShaderContext.MaskType

Constructor Summary

AccessConstructor and Description
private
private
MaskType(String name, boolean newstyle)

private

Method Summary

Modifier and TypeMethod and Description
public BaseShaderContext.MaskType
public String
public boolean
public static BaseShaderContext.MaskType
public static BaseShaderContext.MaskType[]
Inherited from java.lang.Enum:
clonecompareTodescribeConstableequalsfinalizegetDeclaringClasshashCodenameordinaltoStringvalueOf

Field Detail

ALPHA_ONEback to summary
public static final BaseShaderContext.MaskType ALPHA_ONE
ALPHA_TEXTUREback to summary
public static final BaseShaderContext.MaskType ALPHA_TEXTURE
ALPHA_TEXTURE_DIFFback to summary
public static final BaseShaderContext.MaskType ALPHA_TEXTURE_DIFF
DRAW_CIRCLEback to summary
public static final BaseShaderContext.MaskType DRAW_CIRCLE
DRAW_ELLIPSEback to summary
public static final BaseShaderContext.MaskType DRAW_ELLIPSE
DRAW_PGRAMback to summary
public static final BaseShaderContext.MaskType DRAW_PGRAM
DRAW_ROUNDRECTback to summary
public static final BaseShaderContext.MaskType DRAW_ROUNDRECT
DRAW_SEMIROUNDRECTback to summary
public static final BaseShaderContext.MaskType DRAW_SEMIROUNDRECT
FILL_CIRCLEback to summary
public static final BaseShaderContext.MaskType FILL_CIRCLE
FILL_ELLIPSEback to summary
public static final BaseShaderContext.MaskType FILL_ELLIPSE
FILL_PGRAMback to summary
public static final BaseShaderContext.MaskType FILL_PGRAM
FILL_ROUNDRECTback to summary
public static final BaseShaderContext.MaskType FILL_ROUNDRECT
filltypeback to summary
private BaseShaderContext.MaskType filltype
nameback to summary
private String name

Hides java.lang.Enum.name.

newPaintStyleback to summary
private boolean newPaintStyle
SOLIDback to summary
public static final BaseShaderContext.MaskType SOLID
TEXTUREback to summary
public static final BaseShaderContext.MaskType TEXTURE

Constructor Detail

MaskTypeback to summary
private MaskType(String name)
MaskTypeback to summary
private MaskType(String name, boolean newstyle)
MaskTypeback to summary
private MaskType(String name, BaseShaderContext.MaskType filltype)

Method Detail

getFillTypeback to summary
public BaseShaderContext.MaskType getFillType()
getNameback to summary
public String getName()
isNewPaintStyleback to summary
public boolean isNewPaintStyle()
valueOfback to summary
public static BaseShaderContext.MaskType valueOf(String name)
valuesback to summary
public static BaseShaderContext.MaskType[] values()
com.sun.prism.impl.ps back to summary

public final Enum BaseShaderContext.SpecialShaderType

extends Enum<BaseShaderContext.SpecialShaderType>
Class Inheritance

Field Summary

Modifier and TypeField and Description
private String
public static final BaseShaderContext.SpecialShaderType
public static final BaseShaderContext.SpecialShaderType
public static final BaseShaderContext.SpecialShaderType
public static final BaseShaderContext.SpecialShaderType
public static final BaseShaderContext.SpecialShaderType
public static final BaseShaderContext.SpecialShaderType

Constructor Summary

AccessConstructor and Description
private

Method Summary

Modifier and TypeMethod and Description
public String
public static BaseShaderContext.SpecialShaderType
public static BaseShaderContext.SpecialShaderType[]
Inherited from java.lang.Enum:
clonecompareTodescribeConstableequalsfinalizegetDeclaringClasshashCodenameordinaltoStringvalueOf

Field Detail

nameback to summary
private String name

Hides java.lang.Enum.name.

SUPERback to summary
public static final BaseShaderContext.SpecialShaderType SUPER
TEXTURE_First_LCDback to summary
public static final BaseShaderContext.SpecialShaderType TEXTURE_First_LCD
TEXTURE_MASK_RGBback to summary
public static final BaseShaderContext.SpecialShaderType TEXTURE_MASK_RGB
TEXTURE_RGBback to summary
public static final BaseShaderContext.SpecialShaderType TEXTURE_RGB
TEXTURE_SECOND_LCDback to summary
public static final BaseShaderContext.SpecialShaderType TEXTURE_SECOND_LCD
TEXTURE_YV12back to summary
public static final BaseShaderContext.SpecialShaderType TEXTURE_YV12

Constructor Detail

SpecialShaderTypeback to summary
private SpecialShaderType(String name)

Method Detail

getNameback to summary
public String getName()
valueOfback to summary
public static BaseShaderContext.SpecialShaderType valueOf(String name)
valuesback to summary
public static BaseShaderContext.SpecialShaderType[] values()
com.sun.prism.impl.ps back to summary

public Class BaseShaderContext.State

extends Object
Class Inheritance

Field Summary

Modifier and TypeField and Description
private boolean
private NGCamera
private Rectangle
private CompositeMode
private float
private float
private float
private float
private float
private float
private boolean
private RenderTarget
private Shader
private boolean
private Texture[]
private BaseTransform

Constructor Summary

AccessConstructor and Description
public

Method Summary

Modifier and TypeMethod and Description
public Texture[]
Inherited from java.lang.Object:
cloneequalsfinalizegetClasshashCodenotifynotifyAlltoStringwaitwaitwait

Field Detail

isXformValidback to summary
private boolean isXformValid
lastCameraback to summary
private NGCamera lastCamera
lastClipback to summary
private Rectangle lastClip
lastCompback to summary
private CompositeMode lastComp
lastConst1back to summary
private float lastConst1
lastConst2back to summary
private float lastConst2
lastConst3back to summary
private float lastConst3
lastConst4back to summary
private float lastConst4
lastConst5back to summary
private float lastConst5
lastConst6back to summary
private float lastConst6
lastDepthTestback to summary
private boolean lastDepthTest
lastRenderTargetback to summary
private RenderTarget lastRenderTarget
lastShaderback to summary
private Shader lastShader
lastState3Dback to summary
private boolean lastState3D
lastTexturesback to summary
private Texture[] lastTextures
lastTransformback to summary
private BaseTransform lastTransform

Constructor Detail

Stateback to summary
public State()

Method Detail

getLastTexturesback to summary
public Texture[] getLastTextures()