Class RegionRenderer
- java.lang.Object
-
- com.jogamp.graph.curve.opengl.RegionRenderer
-
public final class RegionRenderer extends Object
OpenGLRegionrenderer AllRegionrendering operations utilize a RegionRenderer. The RegionRenderer owns itsRenderState, a composition. The RegionRenderer manages and own all usedShaderPrograms, a composition. At itsdestruction, allShaderPrograms and itsRenderStatewill be destroyed and released.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static interfaceRegionRenderer.GLCallbackMay be passed toRegionRenderer ctor, e.g.
-
Field Summary
Fields Modifier and Type Field Description static RegionRenderer.GLCallbackdefaultBlendDisableDefaultGL.GL_BLENDdisableRegionRenderer.GLCallback, simply turning-off theGL.GL_BLENDstate and turning-on depth writing viaGL.glDepthMask(boolean)ifRenderState.BITHINT_GLOBAL_DEPTH_TEST_ENABLEDis set.static RegionRenderer.GLCallbackdefaultBlendEnableDefaultGL.GL_BLENDenableRegionRenderer.GLCallback, turning-off depth writing viaGL.glDepthMask(boolean)ifRenderState.BITHINT_GLOBAL_DEPTH_TEST_ENABLEDis set and turning-on theGL.GL_BLENDstate.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description voidclearHintMask(int mask)static RegionRenderercreate()Create a hardware accelerated RegionRenderer including itsRenderStatecomposition.static RegionRenderercreate(RegionRenderer.GLCallback enableCallback, RegionRenderer.GLCallback disableCallback)Create a hardware accelerated RegionRenderer including itsRenderStatecomposition.static RegionRenderercreate(PMVMatrix sharedPMVMatrix, RegionRenderer.GLCallback enableCallback, RegionRenderer.GLCallback disableCallback)Create a hardware accelerated RegionRenderer including itsRenderStatecomposition.voiddestroy(GL2ES2 gl)Deletes allShaderPrograms and nullifies its references includingRenderState#destroy(GL2ES2).voidenable(GL2ES2 gl, boolean enable)Enabling or disabling theRenderState's currentshader program.voidenable(GL2ES2 gl, boolean enable, RegionRenderer.GLCallback enableCB, RegionRenderer.GLCallback disableCB)Same asenable(GL2ES2, boolean)but allowing to forceRegionRenderer.GLCallbacks off.Vec4fgetColorStatic(Vec4f rgbaColor)intgetHeight()Return height of current viewportPMVMatrixgetMatrix()Borrow the currentPMVMatrix.RenderStategetRenderState()Return theRenderStatecomposition.RectigetViewport()Borrows the current Rect4i viewport w/o copying.RectigetViewport(Recti target)Copies the current Rect4i viewport in given target and returns it for chaining.floatgetWeight()intgetWidth()Return width of current viewportvoidinit(GL2ES2 gl)Initialize shader and bindings for GPU based rendering bound to the given GL object's GLContext if not initialized yet.booleanisHintMaskSet(int mask)booleanisInitialized()booleanisVBOSupported()voidreshapeNotify(int x, int y, int width, int height)No PMVMatrix operation is performed here.voidreshapeOrtho(int width, int height, float near, float far)Perspective orthogonal, method callsreshapeNotify(int, int, int, int).voidreshapePerspective(float angle, int width, int height, float near, float far)voidsetColorStatic(float r, float g, float b, float a)voidsetColorStatic(Vec4f rgbaColor)voidsetHintMask(int mask)voidsetWeight(float v)booleanuseShaderProgram(GL2ES2 gl, int renderModes, boolean pass1, int quality, int sampleCount, TextureSequence colorTexSeq)Generate, selects and caches the desired Curve-GraphShaderProgramaccording to the given parameters.
-
-
-
Field Detail
-
defaultBlendEnable
public static final RegionRenderer.GLCallback defaultBlendEnable
DefaultGL.GL_BLENDenableRegionRenderer.GLCallback, turning-off depth writing viaGL.glDepthMask(boolean)ifRenderState.BITHINT_GLOBAL_DEPTH_TEST_ENABLEDis set and turning-on theGL.GL_BLENDstate.Implementation also sets
RenderState'sblending bit-hint, which will causeGLRegion's draw-methodto set the properblend-functionand the clear-color to transparent-black in case ofmultipassFBO rendering.- See Also:
#create(Vertex.Factory extends Vertex>, RenderState, GLCallback, GLCallback),enable(GL2ES2, boolean)
-
defaultBlendDisable
public static final RegionRenderer.GLCallback defaultBlendDisable
DefaultGL.GL_BLENDdisableRegionRenderer.GLCallback, simply turning-off theGL.GL_BLENDstate and turning-on depth writing viaGL.glDepthMask(boolean)ifRenderState.BITHINT_GLOBAL_DEPTH_TEST_ENABLEDis set.Implementation also clears
RenderState'sblending bit-hint.- See Also:
#create(Vertex.Factory extends Vertex>, RenderState, GLCallback, GLCallback),enable(GL2ES2, boolean)
-
-
Method Detail
-
create
public static RegionRenderer create()
Create a hardware accelerated RegionRenderer including itsRenderStatecomposition.The optional
RegionRenderer.GLCallbacksenableCallbackanddisableCallbackmaybe used to issue certain tasks atenable(GL2ES2, boolean).
For example, instancesdefaultBlendEnableanddefaultBlendDisablecan be utilized to enable and disableGL.GL_BLEND.- Returns:
- an instance of Region Renderer
- See Also:
enable(GL2ES2, boolean)
-
create
public static RegionRenderer create(RegionRenderer.GLCallback enableCallback, RegionRenderer.GLCallback disableCallback)
Create a hardware accelerated RegionRenderer including itsRenderStatecomposition.The optional
RegionRenderer.GLCallbacksenableCallbackanddisableCallbackmaybe used to issue certain tasks atenable(GL2ES2, boolean).
For example, instancesdefaultBlendEnableanddefaultBlendDisablecan be utilized to enable and disableGL.GL_BLEND.- Parameters:
enableCallback- optionalRegionRenderer.GLCallback, if notnullwill be issued atinit(gl)andenable(gl, true).disableCallback- optionalRegionRenderer.GLCallback, if notnullwill be issued atenable(gl, false).- Returns:
- an instance of Region Renderer
- See Also:
enable(GL2ES2, boolean)
-
create
public static RegionRenderer create(PMVMatrix sharedPMVMatrix, RegionRenderer.GLCallback enableCallback, RegionRenderer.GLCallback disableCallback)
Create a hardware accelerated RegionRenderer including itsRenderStatecomposition.The optional
RegionRenderer.GLCallbacksenableCallbackanddisableCallbackmaybe used to issue certain tasks atenable(GL2ES2, boolean).
For example, instancesdefaultBlendEnableanddefaultBlendDisablecan be utilized to enable and disableGL.GL_BLEND.- Parameters:
sharedPMVMatrix- optional sharedPMVMatrixto be used for theRenderStatecomposition.enableCallback- optionalRegionRenderer.GLCallback, if notnullwill be issued atinit(gl)andenable(gl, true).disableCallback- optionalRegionRenderer.GLCallback, if notnullwill be issued atenable(gl, false).- Returns:
- an instance of Region Renderer
- See Also:
enable(GL2ES2, boolean)
-
isInitialized
public final boolean isInitialized()
-
getViewport
public final Recti getViewport(Recti target)
Copies the current Rect4i viewport in given target and returns it for chaining.
-
getViewport
public final Recti getViewport()
Borrows the current Rect4i viewport w/o copying.
-
getWidth
public final int getWidth()
Return width of current viewport
-
getHeight
public final int getHeight()
Return height of current viewport
-
isVBOSupported
public final boolean isVBOSupported()
-
init
public final void init(GL2ES2 gl) throws GLException
Initialize shader and bindings for GPU based rendering bound to the given GL object's GLContext if not initialized yet.Disables the renderer via
enable(GL2ES2, boolean)to remove any side-effects, ie ShaderState incl. shader program.Shall be called once before at initialization before a
draw()method, e.g.RegionRenderer#draw(GL2ES2, Region, int)- Parameters:
gl- referencing the current GLContext to which the ShaderState is bound to- Throws:
GLException- if initialization failed
-
destroy
public final void destroy(GL2ES2 gl)
Deletes allShaderPrograms and nullifies its references includingRenderState#destroy(GL2ES2).
-
getRenderState
public final RenderState getRenderState()
Return theRenderStatecomposition.
-
getWeight
public final float getWeight()
-
setWeight
public final void setWeight(float v)
-
setColorStatic
public final void setColorStatic(Vec4f rgbaColor)
-
setColorStatic
public final void setColorStatic(float r, float g, float b, float a)
-
isHintMaskSet
public final boolean isHintMaskSet(int mask)
-
setHintMask
public final void setHintMask(int mask)
-
clearHintMask
public final void clearHintMask(int mask)
-
enable
public final void enable(GL2ES2 gl, boolean enable)
Enabling or disabling theRenderState's currentshader program.useShaderProgram(GL2ES2, int, boolean, int, int, TextureSequence)generates, selects and caches the desired Curve-GraphShaderProgramandsets it currentin theRenderStatecomposition.In case enable and disable
RegionRenderer.GLCallbacks are setup via#create(Vertex.Factory extends Vertex>, RenderState, GLCallback, GLCallback), they will be called before toggling the shader program.- Parameters:
gl- current GL objectenable- if true enable the currentShaderProgram, otherwise disable.- See Also:
#create(Vertex.Factory extends Vertex>, RenderState, GLCallback, GLCallback),useShaderProgram(GL2ES2, int, boolean, int, int, TextureSequence),RenderState.setShaderProgram(GL2ES2, ShaderProgram),RenderState.getShaderProgram()
-
enable
public final void enable(GL2ES2 gl, boolean enable, RegionRenderer.GLCallback enableCB, RegionRenderer.GLCallback disableCB)
Same asenable(GL2ES2, boolean)but allowing to forceRegionRenderer.GLCallbacks off.- Parameters:
gl- current GL objectenable- if true enable the currentShaderProgram, otherwise disable.enableCB- explicitRegionRenderer.GLCallbackfor enabledisableCB- explicitRegionRenderer.GLCallbackfor disable- See Also:
enable(GL2ES2, boolean)
-
reshapeNotify
public final void reshapeNotify(int x, int y, int width, int height)No PMVMatrix operation is performed here.
-
reshapePerspective
public final void reshapePerspective(float angle, int width, int height, float near, float far)
-
reshapeOrtho
public final void reshapeOrtho(int width, int height, float near, float far)Perspective orthogonal, method callsreshapeNotify(int, int, int, int).
-
useShaderProgram
public final boolean useShaderProgram(GL2ES2 gl, int renderModes, boolean pass1, int quality, int sampleCount, TextureSequence colorTexSeq)
Generate, selects and caches the desired Curve-GraphShaderProgramaccording to the given parameters. The newly generated or cachedShaderProgramisset currentin theRenderStatecomposition and can be retrieved viaRenderState.getShaderProgram().- Parameters:
gl-renderModes-pass1-quality-sampleCount-colorTexSeq-- Returns:
- true if a new shader program is being used and hence external uniform-data and -location, as well as the attribute-location must be updated, otherwise false.
- See Also:
enable(GL2ES2, boolean),RenderState.setShaderProgram(GL2ES2, ShaderProgram),RenderState.getShaderProgram()
-
-