public abstract class BaseShaderContext extends BaseContext
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.
Modifier and Type | Class and Description |
---|---|
static class |
BaseShaderContext.MaskType |
static class |
BaseShaderContext.SpecialShaderType |
static class |
BaseShaderContext.State |
Modifier | Constructor and Description |
---|---|
protected |
BaseShaderContext(Screen screen,
ShaderFactory factory,
int vbQuads) |
Modifier and Type | Method and Description |
---|---|
abstract void |
blit(RTTexture srcRTT,
RTTexture dstRTT,
int srcX0,
int srcY0,
int srcX1,
int srcY1,
int dstX0,
int dstY0,
int dstX1,
int dstY1) |
void |
disposeLCDBuffer() |
RTTexture |
getLCDBuffer() |
protected void |
init() |
void |
initLCDBuffer(int width,
int height) |
boolean |
isSuperShaderEnabled() |
protected void |
releaseRenderTarget() |
protected void |
resetLastClip(BaseShaderContext.State state) |
protected void |
setPerspectiveTransform(GeneralTransform3D transform) |
protected void |
setRenderTarget(RenderTarget target,
NGCamera camera,
boolean depthTest,
boolean state3D) |
protected abstract void |
updateClipRect(Rectangle clipRect) |
protected abstract void |
updateCompositeMode(CompositeMode mode) |
protected abstract BaseShaderContext.State |
updateRenderTarget(RenderTarget target,
NGCamera camera,
boolean depthTest) |
protected abstract void |
updateShaderTransform(Shader shader,
BaseTransform xform) |
protected abstract void |
updateTexture(int texUnit,
Texture tex) |
protected abstract void |
updateWorldTransform(BaseTransform xform) |
void |
validateClearOp(BaseGraphics g) |
void |
validateLCDBuffer(RenderTarget renderTarget) |
Shader |
validateLCDOp(BaseShaderGraphics g,
BaseTransform xform,
Texture tex0,
Texture tex1,
boolean firstPass,
Paint fillColor) |
void |
validatePaintOp(BaseGraphics g,
BaseTransform xform,
Texture maskTex,
float bx,
float by,
float bw,
float bh) |
void |
validateTextureOp(BaseGraphics g,
BaseTransform xform,
Texture tex0,
PixelFormat format) |
clearGlyphCaches, drawQuads, flushMask, flushVertexBuffer, getAssociatedScreen, getGlyphCache, getGradientTexture, getOvalTexture, getPerspectiveTransformNoClone, getRectTexture, getRectTextureMaxSize, getResourceFactory, getVertexBuffer, getWrapRectTexture, renderQuads, setDeviceParametersFor2D, setDeviceParametersFor3D, setRenderTarget, updateMaskTexture, validateMaskTexture
protected BaseShaderContext(Screen screen, ShaderFactory factory, int vbQuads)
protected void init()
protected void setPerspectiveTransform(GeneralTransform3D transform)
setPerspectiveTransform
in class BaseContext
protected void resetLastClip(BaseShaderContext.State state)
protected abstract BaseShaderContext.State updateRenderTarget(RenderTarget target, NGCamera camera, boolean depthTest)
protected abstract void updateTexture(int texUnit, Texture tex)
protected abstract void updateShaderTransform(Shader shader, BaseTransform xform)
protected abstract void updateWorldTransform(BaseTransform xform)
protected abstract void updateClipRect(Rectangle clipRect)
protected abstract void updateCompositeMode(CompositeMode mode)
public boolean isSuperShaderEnabled()
isSuperShaderEnabled
in class BaseContext
public void validateClearOp(BaseGraphics g)
validateClearOp
in class BaseContext
public void validatePaintOp(BaseGraphics g, BaseTransform xform, Texture maskTex, float bx, float by, float bw, float bh)
validatePaintOp
in class BaseContext
public void validateTextureOp(BaseGraphics g, BaseTransform xform, Texture tex0, PixelFormat format)
validateTextureOp
in class BaseContext
public Shader validateLCDOp(BaseShaderGraphics g, BaseTransform xform, Texture tex0, Texture tex1, boolean firstPass, Paint fillColor)
public void initLCDBuffer(int width, int height)
public void disposeLCDBuffer()
public RTTexture getLCDBuffer()
getLCDBuffer
in class BaseContext
public void validateLCDBuffer(RenderTarget renderTarget)
public abstract void blit(RTTexture srcRTT, RTTexture dstRTT, int srcX0, int srcY0, int srcX1, int srcY1, int dstX0, int dstY0, int dstX1, int dstY1)
protected void setRenderTarget(RenderTarget target, NGCamera camera, boolean depthTest, boolean state3D)
setRenderTarget
in class BaseContext
protected void releaseRenderTarget()
releaseRenderTarget
in class BaseContext
Copyright © 2020. All rights reserved.