Class Region
- java.lang.Object
-
- com.jogamp.graph.curve.Region
-
-
Field Summary
Fields Modifier and Type Field Description static intCOLORCHANNEL_RENDERING_BITRendering-Mode bit forRegionto optionally enable a color-channel per vertex.static intCOLORTEXTURE_RENDERING_BITRendering-Mode bit forRegionstatic booleanDEBUGDebug flag for region impl (graph.curve)static booleanDEBUG_INSTANCEstatic intDEFAULT_TWO_PASS_TEXTURE_UNITstatic intMAX_QUALITYDefault maximumquality, 1.static intMSAA_RENDERING_BITRendering-Mode bit forRegionstatic intNORM_RENDERING_BITRendering-Mode bit forRegionstatic intVARWEIGHT_RENDERING_BITRendering-Mode bit forRegionstatic intVBAA_RENDERING_BITRendering-Mode bit forRegion
-
Method Summary
All Methods Static Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description voidaddOutlineShape(OutlineShape shape, AffineTransform t, Vec4f rgbaColor)Add the givenOutlineShapeto this region with the given optionalAffineTransform.voidaddOutlineShapes(List<OutlineShape> shapes, AffineTransform transform, Vec4f rgbaColor)Add the given list ofOutlineShapes to this region with the given optionalAffineTransform.static int[]countOutlineShape(OutlineShape shape, int[] vertIndexCount)Count required number of vertices and indices adding to given int[2] `vertIndexCount` array.static int[]countOutlineShapes(List<OutlineShape> shapes, int[] vertIndexCount)Count required number of vertices and indices adding to given int[2] `vertIndexCount` array.AABBoxgetBounds()FrustumgetFrustum()intgetQuality()SeeMAX_QUALITYintgetRenderModes()Returns bit-field of render modes, seecreate(..).static StringgetRenderModeString(int renderModes)Returns a unique technical description string for renderModes as follows:static StringgetRenderModeString(int renderModes, int graphSampleCount, int fsaaSampleCount)Return a unique technical description string for renderModes and sample counts as follows:abstract booleangrowBuffer(int verticesCount, int indicesCount)Increase the renderer buffers if necessary to add given counts of vertices- and index elements.booleanhasColorChannel()Returns true ifgetRenderModes()has a color channel, i.e.static booleanhasColorChannel(int renderModes)Returns true if render mode has a color channel, i.e.booleanhasColorTexture()Returns true if render mode has a color texture, i.e.static booleanhasColorTexture(int renderModes)Returns true if render mode has a color texture, i.e.booleanhasVariableWeight()Returns true if capable of variable weights, otherwise false.static booleanhasVariableWeight(int renderModes)Returns true if render mode capable of variable weights, i.e.booleanisMSAA()Returns true if capable of two pass rendering - MSAA, otherwise false.static booleanisMSAA(int renderModes)booleanisShapeDirty()Returns true if this region's shape are dirty, seemarkShapeDirty().booleanisStateDirty()Returns true if this region's state is dirty, seemarkStateDirty().static booleanisTwoPass(int renderModes)booleanisVBAA()Returns true if capable of two pass rendering - VBAA, otherwise false.static booleanisVBAA(int renderModes)voidmarkShapeDirty()Mark this region's shape dirty, i.e.voidmarkStateDirty()Mark this region's render-state dirty, i.e.PerfCounterCtrlperfCounter()abstract voidprintBufferStats(PrintStream out)Print implementation buffer stats like detailed and total size and capacity in bytes etcabstract booleansetBufferCapacity(int verticesCount, int indicesCount)Set the renderer buffers pre-emptively for given vertices- and index counts.voidsetFrustum(Frustum frustum)SetFrustumculling for#addOutlineShape(OutlineShape, AffineTransform, float[]).voidsetQuality(int q)SeeMAX_QUALITYStringtoString()booleanusesI32Idx()Returns true if implementation uses `int32_t` sized indices implying at least aGLProfile.isGL2ES3()alike context.
-
-
-
Field Detail
-
DEBUG
public static final boolean DEBUG
Debug flag for region impl (graph.curve)
-
DEBUG_INSTANCE
public static final boolean DEBUG_INSTANCE
-
NORM_RENDERING_BIT
public static final int NORM_RENDERING_BIT
Rendering-Mode bit forRegionOne pass `norm` rendering either using no AA or underlying full-screen AA (fsaa).
- See Also:
- Constant Field Values
-
MSAA_RENDERING_BIT
public static final int MSAA_RENDERING_BIT
Rendering-Mode bit forRegionMSAA based Anti-Aliasing, a two pass region rendering, slower and more resource hungry (FBO), but providing fast MSAA in case the whole scene is not rendered with MSAA.
- See Also:
- Constant Field Values
-
VBAA_RENDERING_BIT
public static final int VBAA_RENDERING_BIT
Rendering-Mode bit forRegionView based Anti-Aliasing, a two pass region rendering, slower and more resource hungry (FBO), but AA is perfect. Otherwise the default fast one pass MSAA region rendering is being used.
- See Also:
- Constant Field Values
-
VARWEIGHT_RENDERING_BIT
public static final int VARWEIGHT_RENDERING_BIT
Rendering-Mode bit forRegionUse non uniform weights [0.0 .. 1.9] for curve region rendering. Otherwise the default weight 1.0 for uniform curve region rendering is being applied.
- See Also:
- Constant Field Values
-
COLORCHANNEL_RENDERING_BIT
public static final int COLORCHANNEL_RENDERING_BIT
Rendering-Mode bit forRegionto optionally enable a color-channel per vertex.If set, a color channel attribute per vertex is added to the stream via
#addOutlineShape(OutlineShape, AffineTransform, float[]), otherwisestatic colorcan being used for a monotonic color.- See Also:
getRenderModes(),hasColorChannel(),#addOutlineShape(OutlineShape, AffineTransform, float[]),com.jogamp.graph.curve.opengl.RegionRenderer#setColorStatic(com.jogamp.opengl.GL2ES2, float, float, float, float), Constant Field Values
-
COLORTEXTURE_RENDERING_BIT
public static final int COLORTEXTURE_RENDERING_BIT
Rendering-Mode bit forRegionIf set, a color texture is used to determine the color.
- See Also:
- Constant Field Values
-
MAX_QUALITY
public static final int MAX_QUALITY
Default maximumquality, 1.- See Also:
- Constant Field Values
-
DEFAULT_TWO_PASS_TEXTURE_UNIT
public static final int DEFAULT_TWO_PASS_TEXTURE_UNIT
- See Also:
- Constant Field Values
-
-
Method Detail
-
isVBAA
public static boolean isVBAA(int renderModes)
-
isMSAA
public static boolean isMSAA(int renderModes)
-
isTwoPass
public static boolean isTwoPass(int renderModes)
-
hasVariableWeight
public static boolean hasVariableWeight(int renderModes)
Returns true if render mode capable of variable weights, i.e. the bitVARWEIGHT_RENDERING_BITis set, otherwise false.
-
hasColorChannel
public static boolean hasColorChannel(int renderModes)
Returns true if render mode has a color channel, i.e. the bitCOLORCHANNEL_RENDERING_BITis set, otherwise false.
-
hasColorTexture
public static boolean hasColorTexture(int renderModes)
Returns true if render mode has a color texture, i.e. the bitCOLORTEXTURE_RENDERING_BITis set, otherwise false.
-
getRenderModeString
public static String getRenderModeString(int renderModes)
Returns a unique technical description string for renderModes as follows:(vbaa|msaa|norm)[-curve][-cols][-ctex]- Parameters:
renderModes- Graph renderModes, seecreate(..)
-
getRenderModeString
public static String getRenderModeString(int renderModes, int graphSampleCount, int fsaaSampleCount)
Return a unique technical description string for renderModes and sample counts as follows:getRenderModeString(int)-s{sampleCount}-fsaa{CapsNumSamples}- Parameters:
renderModes- the used Graph renderModes, seecreate(..)graphSampleCount- Graph sample count forVBAA_RENDERING_BITorMSAA_RENDERING_BITfsaaSampleCount- full-screen AA (fsaa) sample count, retrieved e.g. viaGLCapabilitiesImmutable.getNumSamples()
-
printBufferStats
public abstract void printBufferStats(PrintStream out)
Print implementation buffer stats like detailed and total size and capacity in bytes etc
-
usesI32Idx
public final boolean usesI32Idx()
Returns true if implementation uses `int32_t` sized indices implying at least aGLProfile.isGL2ES3()alike context. Otherwise method returns false onGLProfile.isGLES2()using `uint16_t` sized indices.
-
growBuffer
public abstract boolean growBuffer(int verticesCount, int indicesCount)Increase the renderer buffers if necessary to add given counts of vertices- and index elements.Buffers will not change if remaining free slots, capacity less position, satisfy count elements.
- Parameters:
verticesCount- number of vertex elements to add if necessaryindicesCount- number of index elements to add if necessary- Returns:
- true if buffer size has changed, i.e. grown. Otherwise false.
- See Also:
setBufferCapacity(int, int),countOutlineShape(OutlineShape, int[]),countOutlineShapes(List, int[])
-
setBufferCapacity
public abstract boolean setBufferCapacity(int verticesCount, int indicesCount)Set the renderer buffers pre-emptively for given vertices- and index counts.Buffers will not change if given count elements is lower or equal current capacity.
- Parameters:
verticesCount- number of vertices to holdindicesCount- number of indices to hold- Returns:
- true if buffer size has changed, i.e. grown. Otherwise false.
- See Also:
growBuffer(int, int),countOutlineShape(OutlineShape, int[]),countOutlineShapes(List, int[])
-
getRenderModes
public final int getRenderModes()
Returns bit-field of render modes, seecreate(..).
-
getQuality
public final int getQuality()
SeeMAX_QUALITY
-
setQuality
public final void setQuality(int q)
SeeMAX_QUALITY
-
isVBAA
public final boolean isVBAA()
Returns true if capable of two pass rendering - VBAA, otherwise false.- See Also:
getRenderModes()
-
isMSAA
public final boolean isMSAA()
Returns true if capable of two pass rendering - MSAA, otherwise false.- See Also:
getRenderModes()
-
hasVariableWeight
public final boolean hasVariableWeight()
Returns true if capable of variable weights, otherwise false.- See Also:
getRenderModes()
-
hasColorChannel
public final boolean hasColorChannel()
Returns true ifgetRenderModes()has a color channel, i.e.COLORCHANNEL_RENDERING_BITis set. Otherwise returns false.- See Also:
COLORCHANNEL_RENDERING_BIT,getRenderModes(),#addOutlineShape(OutlineShape, AffineTransform, float[]),com.jogamp.graph.curve.opengl.RegionRenderer#setColorStatic(com.jogamp.opengl.GL2ES2, float, float, float, float)
-
hasColorTexture
public final boolean hasColorTexture()
Returns true if render mode has a color texture, i.e. the bitCOLORTEXTURE_RENDERING_BITis set, otherwise false.- See Also:
getRenderModes()
-
getFrustum
public final Frustum getFrustum()
-
setFrustum
public final void setFrustum(Frustum frustum)
SetFrustumculling for#addOutlineShape(OutlineShape, AffineTransform, float[]).
-
perfCounter
public PerfCounterCtrl perfCounter()
-
countOutlineShape
public static final int[] countOutlineShape(OutlineShape shape, int[] vertIndexCount)
Count required number of vertices and indices adding to given int[2] `vertIndexCount` array.The region's buffer can be either set using
setBufferCapacity(int, int),GLRegion ctor w/ initial capacitiesor grown usinggrowBuffer(int, int).Method is utilized in
GLRegion ctor w/ font + text, computing the initial capacity.- Parameters:
shape- theOutlineShapeto countvertIndexCount- the int[2] storage where the counted vertices and indices are added, vertices at [0] and indices at [1]- Returns:
- the given int[2] storage for chaining
- See Also:
setBufferCapacity(int, int),growBuffer(int, int)
-
countOutlineShapes
public static final int[] countOutlineShapes(List<OutlineShape> shapes, int[] vertIndexCount)
Count required number of vertices and indices adding to given int[2] `vertIndexCount` array.The region's buffer can be either set using
setBufferCapacity(int, int),GLRegion ctor w/ initial capacitiesor grown usinggrowBuffer(int, int).- Parameters:
shapes- list ofOutlineShapeto countvertIndexCount- the int[2] storage where the counted vertices and indices are added, vertices at [0] and indices at [1]- Returns:
- the given int[2] storage for chaining
- See Also:
setBufferCapacity(int, int),growBuffer(int, int)
-
addOutlineShape
public final void addOutlineShape(OutlineShape shape, AffineTransform t, Vec4f rgbaColor)
Add the givenOutlineShapeto this region with the given optionalAffineTransform.In case
frustum culling is set, theOutlineShapeis dropped if it'sbounding-boxis fully outside of the frustum. The optionalAffineTransformis applied to the bounding-box beforehand.- Parameters:
shape- theOutlineShapeto addt- the optionalAffineTransformto be applied on each vertexrgbaColor- ifhasColorChannel()RGBA color must be passed, otherwise value is ignored.
-
addOutlineShapes
public final void addOutlineShapes(List<OutlineShape> shapes, AffineTransform transform, Vec4f rgbaColor)
Add the given list ofOutlineShapes to this region with the given optionalAffineTransform.In case
frustum culling is set, theOutlineShapes are dropped if it'sbounding-boxis fully outside of the frustum. The optionalAffineTransformis applied to the bounding-box beforehand.- Parameters:
shapes- list ofOutlineShapeto addt- the optionalAffineTransformto be applied on each vertexrgbaColor- ifhasColorChannel()RGBA color must be passed, otherwise value is ignored.
-
getBounds
public final AABBox getBounds()
- Returns:
- the AxisAligned bounding box of current region
-
markShapeDirty
public final void markShapeDirty()
Mark this region's shape dirty, i.e. its vertices, triangles, lines and/or color-texture coordinates changed.The data will be re-uploaded to the GPU at next
draw(..).In 2-pass mode, this implies updating the FBO itself as well.
-
isShapeDirty
public final boolean isShapeDirty()
Returns true if this region's shape are dirty, seemarkShapeDirty().
-
markStateDirty
public final void markStateDirty()
Mark this region's render-state dirty, i.e. re-selecting a shader program regarding color-texture and -channel, and rendering the region into the FBO in 2-pass mode.In 1-pass mode, re-selection of the shader-program is based on color-texture and -channel only.
-
isStateDirty
public final boolean isStateDirty()
Returns true if this region's state is dirty, seemarkStateDirty().
-
-