Commit message (Collapse) | Author | Age | Files | Lines | ||
---|---|---|---|---|---|---|
... | ||||||
* | Math: Complete Matrix4f w/ Vec[234]f and adopt it throughout Quaternion, ↵ | Sven Gothel | 2023-04-05 | 26 | -889/+3258 | |
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Ray, AABBox, Frustum, Stereo*, ... adding hook to PMVMatrix Motivation was to simplify matrix + vector math usage, ease review and avoid usage bugs. Matrix4f implementation uses dedicated float fields instead of an array. Performance didn't increase much, as JVM >= 11(?) has some optimizations to drop the array bounds check. AMD64 + OpenJDK17 - Matrix4f.mul(a, b) got a roughly ~10% enhancement over FloatUtil.multMatrix(a, b, dest) - Matrix4f.mul(b) roughly ~3% slower than FloatUtil.multMatrix(a, b, dest) - FloatUtil.multMatrix(a, a_off, b, b_off, dest) is considerable slower than all - Matrix4f.invert(..) roughly ~3% slower than FloatUtil.invertMatrix(..) RaspberryPi 4b aarch64 + OpenJDK17 - Matrix4f.mul(a, b) got a roughly ~10% enhancement over FloatUtil.multMatrix(a, b, dest) - Matrix4f.mul(b) roughly ~20% slower than FloatUtil.multMatrix(a, b) - FloatUtil.multMatrix(a, a_off, b, b_off, dest) is considerable slower than all - Matrix4f.invert(..) roughly ~4% slower than FloatUtil.invertMatrix(..) Conclusion - Matrix4f.mul(b) needs to be revised (esp for aarch64) - Matrix4f.invert(..) should also not be slower .. | |||||
* | Graph Shader: Complete the USE_DISCARD logic avoiding output set after ↵ | Sven Gothel | 2023-03-30 | 12 | -36/+67 | |
| | | | | discard, even though technically allowed (ignored after discard) | |||||
* | Graph GLSL: Enable 'discard' in fragment shader w/o ↵ | Sven Gothel | 2023-03-30 | 14 | -55/+64 | |
| | | | | | | | | | GLRendererQuirks.GLSLBuggyDiscard to avoid overdraw of such regions. Historically we disabled `discard` due to an old NV tegra2 compiler bug, which caused the compiler to freeze. Today we no more seem to have this GLSL compiler issue, i.e. GLRendererQuirks.GLSLBuggyDiscard never gets set. | |||||
* | Graph*: API doc refinement | Sven Gothel | 2023-03-30 | 1 | -1/+1 | |
| | ||||||
* | Vec2f, Vec3f: Return this @ set(..), add set(float[]) and add(float, ..) | Sven Gothel | 2023-03-30 | 2 | -22/+60 | |
| | ||||||
* | Graph Font: TypecastFont: getGlyphBoundsFU() + processString(): If ↵ | Sven Gothel | 2023-03-28 | 1 | -4/+6 | |
| | | | | isWhitespace() continue w/ AABBox resize, but don't earmark this (whitespace) glyph for next left_glyph (kerning). | |||||
* | Graph RenderState: Add setColorStatic(float[]) variant | Sven Gothel | 2023-03-28 | 1 | -0/+3 | |
| | ||||||
* | Graph Font.GlyphVisitor*: Pass 'char symbol' to visitor, passing full ↵ | Sven Gothel | 2023-03-28 | 4 | -10/+11 | |
| | | | | text-processing information | |||||
* | Graph Font.Glyph: Add getFont() (the owner) | Sven Gothel | 2023-03-28 | 2 | -0/+8 | |
| | ||||||
* | Graph FontScale: Simplify names, fix API doc and add unit test | Sven Gothel | 2023-03-28 | 1 | -27/+102 | |
| | ||||||
* | Graph Font: Rename getBBox*() -> getBounds*() to preserve a common semantic name | Sven Gothel | 2023-03-27 | 4 | -14/+14 | |
| | ||||||
* | Graph: Fix Font.getGlyphBoundsFU(): FU of advance is requested here. | Sven Gothel | 2023-03-27 | 1 | -1/+1 | |
| | | | | Regression from commit a5d593478afa2298282a0624b2490fde84c3a292 | |||||
* | Quaternion: Shorten toString() type name | Sven Gothel | 2023-03-27 | 1 | -1/+2 | |
| | ||||||
* | Add Vec2f and Vec3f, to support a more simple OO vector-math usage, e.g. for ↵ | Sven Gothel | 2023-03-22 | 2 | -0/+528 | |
| | | | | | | | | animation etc Implementation borrowed my 'gfxbox2' C++ project <https://jausoft.com/cgit/cs_class/gfxbox2.git/tree/include/pixel/pixel3f.hpp#n29> and its layout from OpenAL's Vec3f. | |||||
* | Graph: Remove OutlineShape.Visitor* as being replaced by Font.GlyphVisitor | Sven Gothel | 2023-03-22 | 2 | -24/+1 | |
| | | | | (We may ressurect them if needed for a future use case) | |||||
* | Graph Font Processing: Use Font.GlyphVisitor instead of ↵ | Sven Gothel | 2023-03-22 | 5 | -28/+78 | |
| | | | | OutlineShape.Visitor, allowing to use the Glyph (information). | |||||
* | Graph Font Processing: Produce a 'whitespace' Glyph w/ an OutlineShape (box) ↵ | Sven Gothel | 2023-03-22 | 3 | -5/+76 | |
| | | | | to allow better handling of such non-contour symbols. | |||||
* | GraphUI UISceneDemo*: Use lambdas for GLAutoDrawable.invoke(..) to reduce LOC | Sven Gothel | 2023-03-21 | 1 | -0/+7 | |
| | | | | GLAutoDrawable.invoke(..) API doc: Add semantics about GLRunnable return value. | |||||
* | Graph: Cleanup Vertex.Factory referencing: Only bind to OutlineShape and use ↵ | Sven Gothel | 2023-03-21 | 4 | -54/+29 | |
| | | | | | | | its default. GraphUI: Always use default. Graph RegionRenderer, its RenderState as well as GraphUI's Scene don't need to have knowledge of Vertex.Factory, which is only used within OutlineShape and its 'inner geom workings'. | |||||
* | GLArrayDataClient: Allow null buffer @ growIfNeeded(), removed from commit ↵ | Sven Gothel | 2023-03-20 | 1 | -20/+1 | |
| | | | | | | 90a95e6f689b479f3c3ae3caf4e30447030c7682 A null buffer is possible in case initialElementCount at ctor is <= 0 | |||||
* | GLOffscreenAutoDrawable: Remove unused import | Sven Gothel | 2023-03-20 | 1 | -2/+0 | |
| | ||||||
* | Add FloatUtil.isZero(float) using FloatUtil.EPSILON | Sven Gothel | 2023-03-20 | 1 | -0/+8 | |
| | ||||||
* | Graph: Add RegionRenderer.enable(..) variant w/ passing enable + disable ↵ | Sven Gothel | 2023-03-19 | 1 | -4/+15 | |
| | | | | GLCallback | |||||
* | Graph: GLRegion.draw(): Mod curRenderModes by sampleCount { 0 = no-sampling, ↵ | Sven Gothel | 2023-03-19 | 1 | -1/+19 | |
| | | | | -1 = glSelect } (Experimental not working fully) | |||||
* | Graph: GLRegion: Pass curRenderModes to updateImpl() + drawImpl(), prepare ↵ | Sven Gothel | 2023-03-19 | 5 | -73/+112 | |
| | | | | switch by sampleCount; Don't use any resource not requested by curRenderModes | |||||
* | Graph : Misc API doc | Sven Gothel | 2023-03-19 | 2 | -2/+5 | |
| | ||||||
* | Graph: Add RenderState API doc; RegionRenderer: Remove unused shell method, ↵ | Sven Gothel | 2023-03-19 | 2 | -6/+8 | |
| | | | | left over from f8584748e33aab56780eca5cf7009a5a0d11991d | |||||
* | API doc cleanup, add + refine math tests | Sven Gothel | 2023-03-19 | 8 | -18/+36 | |
| | | | | API doc | |||||
* | Graph: Make RenderState a composition of RegionRenderer, which also creates ↵ | Sven Gothel | 2023-03-15 | 3 | -33/+120 | |
| | | | | and destroys it. Dropping this also from user (complexity). | |||||
* | ShaderProgram field programLinked: Set to false @ release()/destroy(), On ↵ | Sven Gothel | 2023-03-15 | 1 | -1/+5 | |
| | | | | useProgram() only throw exception if 'on==true' is requested (disabling after delettion is OK) | |||||
* | opengl/util/glsl/Shader*: Mark classes and fields final, rename ↵ | Sven Gothel | 2023-03-15 | 4 | -22/+41 | |
| | | | | dump{Shader->}Source(), refine string output. | |||||
* | Fix ShaderProgram ownership bug, introduced in commit ↵ | Sven Gothel | 2023-03-15 | 6 | -70/+45 | |
| | | | | | | | | | 67a723477ecd818fbc5859fe20ee536a3b4efae5 (reverting and clarifying) All Graph ShaderPrograms used are owned by RegionRenderer, not RenderState nor [GL]Region*, hence [GL]Region* shall only nullify the resources but not destroy the shader currently in use. One RegionRenderer maybe used for multuple Regions. | |||||
* | Graph: Have RegionRenderer.reshapeNotify(..) track x/y as well (vieport); ↵ | Sven Gothel | 2023-03-14 | 2 | -8/+13 | |
| | | | | GraphUI.Scene using RegionRenderer's viewport (no duplicate) | |||||
* | Graph: RegionRenderer: Adopt to TextureSequence API Change: Use ↵ | Sven Gothel | 2023-03-14 | 1 | -9/+8 | |
| | | | | setTextureLookupFunctionName(..) before using hash and/or code. | |||||
* | Graph: Region: Add API doc on markStateDirty() and markShapeDirty() | Sven Gothel | 2023-03-14 | 1 | -5/+13 | |
| | ||||||
* | AABBox: Add API doc comment on reset() and hence default ctor regarding ↵ | Sven Gothel | 2023-03-14 | 1 | -3/+10 | |
| | | | | infinite dimension | |||||
* | GLMediaPlayerImpl: Only kick-off StreamWorker at initGL(..) | Sven Gothel | 2023-03-14 | 1 | -5/+0 | |
| | ||||||
* | GLMediaPlayerImpl: Zero textureFragmentShaderHashCode and default ↵ | Sven Gothel | 2023-03-14 | 1 | -6/+3 | |
| | | | | lookupFunction on Uninitialized state | |||||
* | FFMPEGMediaPlayer: More detailed DEBUG messages on audioSink | Sven Gothel | 2023-03-14 | 1 | -3/+3 | |
| | ||||||
* | TextureSequence (API Change): Use setTextureLookupFunctionName(..) ↵ | Sven Gothel | 2023-03-14 | 4 | -31/+77 | |
| | | | | explicitly to set the name upfront, clarifying workflow. Impl: ImageSequence + GLMediaPlayerImpl | |||||
* | GLRegion + RegionRenderer: Add clearShader(..) to delete all ShaderPrograms ↵ | Sven Gothel | 2023-03-13 | 6 | -12/+59 | |
| | | | | and is references. | |||||
* | GLMediaPlayerImpl: isTextureAvailable() is always true after lastFrame init; ↵ | Sven Gothel | 2023-03-13 | 1 | -2/+6 | |
| | | | | Use private isPausedOrPlaying() to determine shaderCodeHash | |||||
* | Graph: Add GLRegion creation w/ pre-calculating its buffer sizes; ↵ | Sven Gothel | 2023-03-13 | 2 | -2/+60 | |
| | | | | | | TextRegionUtil: Use pre-calc'ing buffer sizes for GLRegion; TextRendererGLELBase: Fix temp AffineTransform usage | |||||
* | GLMediaPlayer: Overhaul and simplify states, allow usage before stream ready ↵ | Sven Gothel | 2023-03-13 | 9 | -96/+242 | |
| | | | | | | | | | | | | | | | showing test-texture. Adding stop(); (API Change) - allow multiple initGL(..) @ uninitialized and initialized - allows usage before stream is ready - using a test-texture @ uninitialized - adding stop() API change - initStream() -> playStream() - play() -> resume() FFMPEG: Added 'ready' check for robustness | |||||
* | Move png assets (NEWT icons + GLMediaPlayer dummy/test) to simple classpath, ↵ | Sven Gothel | 2023-03-13 | 2 | -1/+1 | |
| | | | | allowing access w/o jars. TODO: Test Android. | |||||
* | Misc: Add MonitorDevice.perMMToPerInch(..); Drop unused ↵ | Sven Gothel | 2023-03-09 | 1 | -3/+2 | |
| | | | | RegionRenderer.init(..) renderModes argument | |||||
* | Merge pull request #110 from gbburkhardt/master | Göthel Software | 2023-03-08 | 1 | -1/+7 | |
|\ | | | | | Fix for AWT GLCcanvas DPI scaling. Forum thread https://forum.jogamp… | |||||
| * | Fix for AWT GLCcanvas DPI scaling. Forum thread ↵ | Glenn Burkhardt | 2023-03-06 | 1 | -1/+7 | |
| | | | | | | | | https://forum.jogamp.org/DPI-scaling-not-working-td4042206.html | |||||
* | | Rename NonFSAAGLCapabilitiesChooser -> NonFSAAGLCapsChooser (too long) | Sven Gothel | 2023-03-08 | 1 | -3/+3 | |
| | | ||||||
* | | Apply NonFSAAGLCapabilitiesChooser in NEWTGLContext (tests only). TODO: ↵ | Sven Gothel | 2023-03-08 | 1 | -3/+14 | |
| | | | | | | | | Consider applying it in default chooser? |