Class Region
- java.lang.Object
-
- com.jogamp.graph.curve.Region
-
-
Field Summary
Fields Modifier and Type Field Description static int
AA_RENDERING_MASK
2-pass rendering bit-mask includingMSAA_RENDERING_BIT
andVBAA_RENDERING_BIT
.static int
COLORCHANNEL_RENDERING_BIT
Rendering-Mode bit forRegion
to optionally enable a color-channel per vertex.static int
COLORTEXTURE_RENDERING_BIT
Rendering-Mode bit forRegion
static boolean
DEBUG
Debug flag for [com.]jogamp.graph.curve.* incl.static boolean
DEBUG_ALL_EVENT
static boolean
DEBUG_INSTANCE
static int
DEFAULT_AA_QUALITY
Default pass2 AA-quality rendering 1 for Graph Region AArender-modes
:VBAA_RENDERING_BIT
.static int
DEFAULT_AA_SAMPLE_COUNT
Default pass2 AA sample count 4 for Graph Region AArender-modes
:VBAA_RENDERING_BIT
orMSAA_RENDERING_BIT
.static int
DEFAULT_TWO_PASS_TEXTURE_UNIT
static int
MAX_AA_QUALITY
Maximum pass2 AA-quality rendering 1 for Graph Region AArender-modes
:VBAA_RENDERING_BIT
.static int
MAX_AA_SAMPLE_COUNT
Maximum pass2 AA sample count 8 for Graph Region AArender-modes
:VBAA_RENDERING_BIT
orMSAA_RENDERING_BIT
.static int
MIN_AA_QUALITY
Minimum pass2 AA-quality rendering 0 for Graph Region AArender-modes
:VBAA_RENDERING_BIT
.static int
MIN_AA_SAMPLE_COUNT
Minimum pass2 AA sample count 1 for Graph Region AArender-modes
:VBAA_RENDERING_BIT
orMSAA_RENDERING_BIT
.static int
MSAA_RENDERING_BIT
Rendering-Mode bit forRegion
static int
NORM_RENDERING_BIT
Rendering-Mode bit forRegion
static int
VARWEIGHT_RENDERING_BIT
Rendering-Mode bit forRegion
static int
VBAA_RENDERING_BIT
Rendering-Mode bit forRegion
-
Method Summary
All Methods Static Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description void
addOutlineShape(OutlineShape shape, com.jogamp.math.geom.plane.AffineTransform t, com.jogamp.math.Vec4f rgbaColor)
Add the givenOutlineShape
to this region with the given optionalAffineTransform
.void
addOutlineShapes(List<OutlineShape> shapes, com.jogamp.math.geom.plane.AffineTransform transform, com.jogamp.math.Vec4f rgbaColor)
Add the given list ofOutlineShape
s to this region with the given optionalAffineTransform
.static int
clipAAQuality(int v)
Returns clipped AA quality value to [MIN_AA_QUALITY
..MAX_AA_QUALITY
]static int
clipAASampleCount(int v)
Returns clipped AA sample-count to [MIN_AA_SAMPLE_COUNT
..MAX_AA_SAMPLE_COUNT
]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.com.jogamp.math.geom.AABBox
getBounds()
com.jogamp.math.geom.Frustum
getFrustum()
int
getRenderModes()
Returns bit-field of render modes, seecreate(..)
.static String
getRenderModeString(int renderModes)
Returns a unique technical description string for renderModes as follows:static String
getRenderModeString(int renderModes, int graphAAQuality, int graphSampleCount, int fsaaSampleCount)
Return a unique technical description string for renderModes and sample counts as follows:abstract boolean
growBuffer(int verticesCount, int indicesCount)
Increase the renderer buffers if necessary to add given counts of vertices- and index elements.boolean
hasColorChannel()
Returns true ifgetRenderModes()
has a color channel, i.e.static boolean
hasColorChannel(int renderModes)
Returns true if render mode has a color channel, i.e.boolean
hasColorTexture()
Returns true if render mode has a color texture, i.e.static boolean
hasColorTexture(int renderModes)
Returns true if render mode has a color texture, i.e.boolean
hasVariableWeight()
Returns true if capable of variable weights, otherwise false.static boolean
hasVariableWeight(int renderModes)
Returns true if render mode capable of variable weights, i.e.static boolean
isGraphAA(int renderModes)
Returns true if givenrenderModes
has any ofAA_RENDERING_MASK
set.boolean
isMSAA()
Returns true if capable of two pass rendering - MSAA, otherwise false.static boolean
isMSAA(int renderModes)
Returns true if givenrenderModes
hasMSAA_RENDERING_BIT
set.boolean
isRenderModeSet(int mask)
static boolean
isRenderModeSet(int renderModes, int mask)
boolean
isShapeDirty()
Returns true if this region's shape are dirty, seemarkShapeDirty()
.boolean
isStateDirty()
Returns true if this region's state is dirty, seemarkStateDirty()
.static boolean
isTwoPass(int renderModes)
Returns true if givenrenderModes
has any ofAA_RENDERING_MASK
set.boolean
isVBAA()
Returns true if capable of two pass rendering - VBAA, otherwise false.static boolean
isVBAA(int renderModes)
Returns true if givenrenderModes
hasVBAA_RENDERING_BIT
set.void
markShapeDirty()
Mark this region's shape dirty, i.e.void
markStateDirty()
Mark this region's render-state dirty, i.e.PerfCounterCtrl
perfCounter()
abstract void
printBufferStats(PrintStream out)
Print implementation buffer stats like detailed and total size and capacity in bytes etcabstract boolean
setBufferCapacity(int verticesCount, int indicesCount)
Set the renderer buffers pre-emptively for given vertices- and index counts.void
setFrustum(com.jogamp.math.geom.Frustum frustum)
SetFrustum
culling for#addOutlineShape(OutlineShape, AffineTransform, float[])
.static int
setRenderMode(int renderModes, int mask, boolean v)
String
toString()
boolean
usesI32Idx()
Returns true if implementation uses `int32_t` sized indices implying at least aGLProfile.isGL2ES3()
alike context.
-
-
-
Field Detail
-
DEBUG_ALL_EVENT
public static final boolean DEBUG_ALL_EVENT
-
DEBUG_INSTANCE
public static final boolean DEBUG_INSTANCE
-
DEBUG
public static final boolean DEBUG
Debug flag for [com.]jogamp.graph.curve.* incl. Region (graph.curve)
-
NORM_RENDERING_BIT
public static final int NORM_RENDERING_BIT
Rendering-Mode bit forRegion
One pass `norm` rendering either using no AA or underlying full-screen AA (fsaa).
This mode-bit is a shader-key.
- See Also:
- Constant Field Values
-
MSAA_RENDERING_BIT
public static final int MSAA_RENDERING_BIT
Rendering-Mode bit forRegion
MSAA based Anti-Aliasing, a two pass region rendering, slower and more resource hungry (FBO with sample buffer), but providing fast MSAA in case the whole scene is not rendered with MSAA.
In case sample count is 1, no FBO sample buffer is used but a simple bilinear texture filter.
This mode-bit is a shader-key.
- See Also:
- Constant Field Values
-
VBAA_RENDERING_BIT
public static final int VBAA_RENDERING_BIT
Rendering-Mode bit forRegion
View 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.
In case sample count is 1, no FBO supersampling is performed but a simple bilinear texture filter used.
Depending on AA-quality,
MAX_AA_QUALITY
denotes full 4x billinear filtering per sample and0
denotes 1x flipquad filtering per sample.This mode-bit is a shader-key.
- See Also:
- Constant Field Values
-
AA_RENDERING_MASK
public static final int AA_RENDERING_MASK
2-pass rendering bit-mask includingMSAA_RENDERING_BIT
andVBAA_RENDERING_BIT
.- See Also:
- Constant Field Values
-
VARWEIGHT_RENDERING_BIT
public static final int VARWEIGHT_RENDERING_BIT
Rendering-Mode bit forRegion
Use 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.
This mode-bit is a shader-key.
- See Also:
- Constant Field Values
-
COLORCHANNEL_RENDERING_BIT
public static final int COLORCHANNEL_RENDERING_BIT
Rendering-Mode bit forRegion
to 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 color
can being used for a monotonic color.This mode-bit is a shader-key.
- 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 forRegion
If set, a color texture is used to determine the color via {#link TextureSequence} passed to implementation, e.g. GLRegion.
This mode-bit is a shader-key.
-
MIN_AA_QUALITY
public static final int MIN_AA_QUALITY
Minimum pass2 AA-quality rendering 0 for Graph Region AArender-modes
:VBAA_RENDERING_BIT
.- See Also:
- Constant Field Values
-
MAX_AA_QUALITY
public static final int MAX_AA_QUALITY
Maximum pass2 AA-quality rendering 1 for Graph Region AArender-modes
:VBAA_RENDERING_BIT
.- See Also:
- Constant Field Values
-
DEFAULT_AA_QUALITY
public static final int DEFAULT_AA_QUALITY
Default pass2 AA-quality rendering 1 for Graph Region AArender-modes
:VBAA_RENDERING_BIT
.- See Also:
- Constant Field Values
-
MIN_AA_SAMPLE_COUNT
public static final int MIN_AA_SAMPLE_COUNT
Minimum pass2 AA sample count 1 for Graph Region AArender-modes
:VBAA_RENDERING_BIT
orMSAA_RENDERING_BIT
.- See Also:
- Constant Field Values
-
MAX_AA_SAMPLE_COUNT
public static final int MAX_AA_SAMPLE_COUNT
Maximum pass2 AA sample count 8 for Graph Region AArender-modes
:VBAA_RENDERING_BIT
orMSAA_RENDERING_BIT
.- See Also:
- Constant Field Values
-
DEFAULT_AA_SAMPLE_COUNT
public static final int DEFAULT_AA_SAMPLE_COUNT
Default pass2 AA sample count 4 for Graph Region AArender-modes
:VBAA_RENDERING_BIT
orMSAA_RENDERING_BIT
.- 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
-
clipAAQuality
public static final int clipAAQuality(int v)
Returns clipped AA quality value to [MIN_AA_QUALITY
..MAX_AA_QUALITY
]
-
clipAASampleCount
public static final int clipAASampleCount(int v)
Returns clipped AA sample-count to [MIN_AA_SAMPLE_COUNT
..MAX_AA_SAMPLE_COUNT
]
-
isRenderModeSet
public static final boolean isRenderModeSet(int renderModes, int mask)
-
setRenderMode
public static final int setRenderMode(int renderModes, int mask, boolean v)
-
isVBAA
public static boolean isVBAA(int renderModes)
Returns true if givenrenderModes
hasVBAA_RENDERING_BIT
set.
-
isMSAA
public static boolean isMSAA(int renderModes)
Returns true if givenrenderModes
hasMSAA_RENDERING_BIT
set.
-
isGraphAA
public static boolean isGraphAA(int renderModes)
Returns true if givenrenderModes
has any ofAA_RENDERING_MASK
set.
-
isTwoPass
public static boolean isTwoPass(int renderModes)
Returns true if givenrenderModes
has any ofAA_RENDERING_MASK
set.
-
hasVariableWeight
public static boolean hasVariableWeight(int renderModes)
Returns true if render mode capable of variable weights, i.e. the bitVARWEIGHT_RENDERING_BIT
is set, otherwise false.
-
hasColorChannel
public static boolean hasColorChannel(int renderModes)
Returns true if render mode has a color channel, i.e. the bitCOLORCHANNEL_RENDERING_BIT
is set, otherwise false.
-
hasColorTexture
public static boolean hasColorTexture(int renderModes)
Returns true if render mode has a color texture, i.e. the bitCOLORTEXTURE_RENDERING_BIT
is 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 graphAAQuality, int graphSampleCount, int fsaaSampleCount)
Return a unique technical description string for renderModes and sample counts as follows:getRenderModeString(int)
-q{AA-quality}-s{sampleCount}-fsaa{CapsNumSamples}- Parameters:
renderModes
- the used Graph renderModes, seecreate(..)
graphAAQuality
- Graph AA quality, seeDEFAULT_AA_QUALITY
, set to negative value to mark undefinedgraphSampleCount
- Graph sample count forVBAA_RENDERING_BIT
orMSAA_RENDERING_BIT
fsaaSampleCount
- 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(..)
.
-
isRenderModeSet
public final boolean isRenderModeSet(int mask)
-
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_BIT
is 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_BIT
is set, otherwise false.- See Also:
getRenderModes()
,#isColorTextureLetterbox()
-
getFrustum
public final com.jogamp.math.geom.Frustum getFrustum()
-
setFrustum
public final void setFrustum(com.jogamp.math.geom.Frustum frustum)
SetFrustum
culling 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 capacities
or grown usinggrowBuffer(int, int)
.Method is utilized in
GLRegion ctor w/ font + text
, computing the initial capacity.- Parameters:
shape
- theOutlineShape
to 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 capacities
or grown usinggrowBuffer(int, int)
.- Parameters:
shapes
- list ofOutlineShape
to 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, com.jogamp.math.geom.plane.AffineTransform t, com.jogamp.math.Vec4f rgbaColor)
Add the givenOutlineShape
to this region with the given optionalAffineTransform
.In case
frustum culling is set
, theOutlineShape
is dropped if it'sbounding-box
is fully outside of the frustum. The optionalAffineTransform
is applied to the bounding-box beforehand.- Parameters:
shape
- theOutlineShape
to addt
- the optionalAffineTransform
to be applied on each vertexrgbaColor
- ifhasColorChannel()
RGBA color must be passed, otherwise value is ignored.
-
addOutlineShapes
public final void addOutlineShapes(List<OutlineShape> shapes, com.jogamp.math.geom.plane.AffineTransform transform, com.jogamp.math.Vec4f rgbaColor)
Add the given list ofOutlineShape
s to this region with the given optionalAffineTransform
.In case
frustum culling is set
, theOutlineShape
s are dropped if it'sbounding-box
is fully outside of the frustum. The optionalAffineTransform
is applied to the bounding-box beforehand.- Parameters:
shapes
- list ofOutlineShape
to addt
- the optionalAffineTransform
to be applied on each vertexrgbaColor
- ifhasColorChannel()
RGBA color must be passed, otherwise value is ignored.
-
getBounds
public final com.jogamp.math.geom.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()
.
-
-