From 6363ae5fb6975a6f2e7c1093ce81f25b699e3e61 Mon Sep 17 00:00:00 2001 From: Sven Göthel Date: Sun, 14 Jan 2024 04:19:10 +0100 Subject: Graph/GraphUI: Revise Graph Region ShaderMapping, fix AABBox-Clipping for Pass2-AA, revise Pass2 AA Quality parameter .. Misc: - Graph VBORegion2PVBAAES2: Drop unused FBO rescale - Move MIN/MAX QUALITY/SAMPLE from GraphUI Scene -> Graph Region +++ Quality -> Pass2 AA Quality - Drop quality field in region - Pass quality to GLRegion.draw(..) similar to sampleCount for dynamic shader and switch - TODO: Pass quality parameter in TextRegionUtil's functions Fix RegionRenderer Shader Mapping - Use ShaderKey class to properly implement the hash value and equals method - For this, TextureSequence.getTextureFragmentShaderHashID() has been added to provide actual shader-snippet for the equals function - All required criterias are included in the hash value and equals method Fix AABBox Clipping for Pass-2 AA - Clipping in pass2-AA must happen in pass2 on actual gcu_PMVMatrix01 (not ortho) +++ GraphUI GraphShape - Rename: [get,set]{->AA}Quality() GraphUI Scene - Rename: mark{All->}ShapesDirty(), set{AllShapes->}Sharpness(), set{AllShapes->AA}Quality() - Fix setSampleCount(..), i.e. markStatesDirty() not markShapesDirty() - Fix setAAQuality(), markShapesDirty() and markStatesDirty(): Use forAll(..) to traverse through all shapes and groups. GraphUI Group - Add setFixedSize() - Add setClipOnBox() - Document setRelayoutOnDirtyShapes(), isShapeDirty() --- .../classes/com/jogamp/graph/curve/opengl/GLRegion.java | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) (limited to 'src/jogl/classes/com/jogamp/graph/curve/opengl/GLRegion.java') diff --git a/src/jogl/classes/com/jogamp/graph/curve/opengl/GLRegion.java b/src/jogl/classes/com/jogamp/graph/curve/opengl/GLRegion.java index af8a54177..5849a8581 100644 --- a/src/jogl/classes/com/jogamp/graph/curve/opengl/GLRegion.java +++ b/src/jogl/classes/com/jogamp/graph/curve/opengl/GLRegion.java @@ -511,14 +511,15 @@ public abstract class GLRegion extends Region { *

* @param gl current {@link GL2ES2}. * @param renderer the {@link RegionRenderer} to be used - * @param sampleCount desired multisampling sample count for vbaa- or msaa-rendering. + * @param pass2Quality pass2 AA-quality selector in the range [{@link Region#MIN_AA_QUALITY}..{@link Region#MAX_AA_QUALITY}] for Graph Region AA {@link Region#getRenderModes() render-modes}: {@link Region#VBAA_RENDERING_BIT} + * @param sampleCount desired pass2 AA-multisampling sample count in the typical range [{@link Region#MIN_AA_SAMPLE_COUNT}..{@link Region#MAX_AA_SAMPLE_COUNT}] for Graph Region AA {@link Region#getRenderModes() render-modes}: {@link Region#VBAA_RENDERING_BIT}, {@link Region#MSAA_RENDERING_BIT} * Use -1 for glSelect mode, pass1 w/o any color texture nor channel, use static select color only. * The actual used scample-count is written back when msaa-rendering is enabled, otherwise the store is untouched. * @see RegionRenderer#enable(GL2ES2, boolean) */ - public final void draw(final GL2ES2 gl, final RegionRenderer renderer, final int[/*1*/] sampleCount) { + public final void draw(final GL2ES2 gl, final RegionRenderer renderer, final int pass2Quality, final int[/*1*/] sampleCount) { final int curRenderModes; - if( null == sampleCount || 0 == sampleCount[0] ) { + if( 0 == sampleCount[0] ) { // no sampling, reduce to pass1 curRenderModes = getRenderModes() & ~( VBAA_RENDERING_BIT | MSAA_RENDERING_BIT ); } else if( 0 > sampleCount[0] ) { @@ -528,6 +529,9 @@ public abstract class GLRegion extends Region { // normal 2-pass sampling curRenderModes = getRenderModes(); } + // System.err.println("XXX.0 "+Region.getRenderModeString(getRenderModes(), sampleCount[0], 0)+": "+ + // Region.getRenderModeString(lastRenderModes, sampleCount[0], 0)+" -> "+Region.getRenderModeString(curRenderModes, sampleCount[0], 0)); + if( lastRenderModes != curRenderModes ) { markShapeDirty(); markStateDirty(); @@ -535,7 +539,7 @@ public abstract class GLRegion extends Region { if( isShapeDirty() ) { updateImpl(gl, renderer, curRenderModes); } - drawImpl(gl, renderer, curRenderModes, sampleCount); + drawImpl(gl, renderer, curRenderModes, pass2Quality, sampleCount); clearDirtyBits(DIRTY_SHAPE|DIRTY_STATE); lastRenderModes = curRenderModes; } @@ -549,5 +553,5 @@ public abstract class GLRegion extends Region { */ protected abstract void updateImpl(final GL2ES2 gl, final RegionRenderer renderer, final int curRenderModes); - protected abstract void drawImpl(final GL2ES2 gl, final RegionRenderer renderer, final int curRenderModes, final int[/*1*/] sampleCount); + protected abstract void drawImpl(final GL2ES2 gl, final RegionRenderer renderer, final int curRenderModes, int pass2Quality, final int[/*1*/] sampleCount); } -- cgit v1.2.3