Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | GraphUI: Adopting Vec*f API; Adding Group; Scene + Group are Container, ↵ | Sven Gothel | 2023-04-05 | 20 | -275/+1216 |
| | | | | | | | | | | | | | | | | traversing the PMVMatrix throughout childs (-> see TreeTool). Utilizing the Vec*f (and Matrix4f) API w/ AABBox et al renders our code more clean & safe, see commit 15e60161787224e85172685f74dc0ac195969b51. A Group allows to contain multiple Shapes, hence the PMVMatrix must be traversed accordingly using TreeTool for all operations (draw, picking, win->obj coordinates, ..). Hence Scene + Group are now implementing Container and reuse code via TreeTool and a Shape.Visitor*. This will allow further simplification of user code. | ||||
* | Math: Complete Matrix4f w/ Vec[234]f and adopt it throughout Quaternion, ↵ | Sven Gothel | 2023-04-05 | 48 | -1376/+6592 |
| | | | | | | | | | | | | | | | | | | | | | | | | | | | 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 .. | ||||
* | GraphUI: Use Shape.ZAscendingComparator in Scene, to be reused across typs | Sven Gothel | 2023-03-31 | 2 | -29/+33 |
| | |||||
* | GraphUI: Relocate com.jogamp.graph.ui.gl.* -> com.jogamp.graph.ui.*, resolve ↵ | Sven Gothel | 2023-03-31 | 26 | -72/+71 |
| | | | | | | GL/VK abstraction at a later time differently Actual GPU rendering toolkit dependency can be abstracted differently, i.e. GPU <- { GL, VK } etc. | ||||
* | 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) | ||||
* | GraphUI Shape: DragZoom: Allow resize_sxy_min down to 1/2%, need to find a ↵ | Sven Gothel | 2023-03-30 | 1 | -1/+1 |
| | | | | | | | | | | good way to auto-deteminate this one (dpi, ..) Type animation UISceneDemo03 requires this to resize a single glyph, i.e. 0.03f was too big. 1% might be OK, but then .. maybe not. In general, a dpi autodetermination of a minimal scale/size might be OK, assuming user sits in front of a screen and not having a multi-screen circus arena setup ;-) | ||||
* | GraphUI: Fix debug-box and allow API access in Shape (off, thickness ↵ | Sven Gothel | 2023-03-30 | 7 | -34/+79 |
| | | | | fractional to box size) and Scene for all Shapes. | ||||
* | GraphUI Demos: Cover more std arguments via GraphUIDemoArgs | Sven Gothel | 2023-03-30 | 3 | -104/+53 |
| | |||||
* | 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. | ||||
* | GraphUI Demo: UISceneDemo20 use Scene.screenshot(..), drop own code | Sven Gothel | 2023-03-30 | 1 | -31/+3 |
| | |||||
* | GraphUI Demo UISceneDemo03: Add 1 space padding to demo-text, make ↵ | Sven Gothel | 2023-03-30 | 1 | -10/+36 |
| | | | | screenshots, add launch screen (visible @ '-wait') | ||||
* | GraphUI Scene: Add screenshot(..) method for convenience | Sven Gothel | 2023-03-30 | 1 | -4/+37 |
| | |||||
* | GraphUI: Add GlyphShape representing a single Font.Glyph as a GraphShape; ↵ | Sven Gothel | 2023-03-30 | 5 | -116/+419 |
| | | | | | | | | | | | | | | | | | | Use w/ UISceneDemo03 Type Animation... A list of GlyphShape can be created via GlyphShape.processString(..), which preserves all details incl. intended original unscaled position and its kerning. Whitespace or contourless Glyphs are dropped. A GlyphShape is represented in font em-size [0..1] unscaled. +++ UISceneDemo03 Type Animation - Using GlyphShape and apply scaling via its Shape.setScale() - Recalc fontScale per used text - Refined 'arrival' criteria and smoothing out near target w/ speed-up rotation - Using GraphUIDemoArgs to parse common commandline demo options | ||||
* | GraphUI Shape.setTransform(..): Scale before rotate to preserve target-size ↵ | Sven Gothel | 2023-03-30 | 1 | -14/+14 |
| | | | | in rotation | ||||
* | GraphUI Shape: Refine API doc | Sven Gothel | 2023-03-30 | 1 | -8/+8 |
| | |||||
* | Graph*: API doc refinement | Sven Gothel | 2023-03-30 | 2 | -1/+8 |
| | |||||
* | Vec2f, Vec3f: Return this @ set(..), add set(float[]) and add(float, ..) | Sven Gothel | 2023-03-30 | 2 | -22/+60 |
| | |||||
* | README: Shorten sponsor text | Sven Gothel | 2023-03-28 | 1 | -1/+1 |
| | |||||
* | WWW: Remove 'Sponsor' button, annoying and no feedback | Sven Gothel | 2023-03-28 | 1 | -3/+1 |
| | |||||
* | GraphUI Shape: Rename rotOrigin -> rotPivot | Sven Gothel | 2023-03-28 | 1 | -18/+18 |
| | |||||
* | GraphUI Shape.setTransform(): Fix !sameScaleRotatePivot && hasRotate && ↵ | Sven Gothel | 2023-03-28 | 1 | -2/+2 |
| | | | | | | !hasRotPivot: Don't scale pivot back from center-pivot, same as w/ hasRotPivot A copy & paste bug .. | ||||
* | GraphUI Scene: Added API doc args | Sven Gothel | 2023-03-28 | 1 | -6/+6 |
| | |||||
* | 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). | ||||
* | GraphUI Demo UISceneDemo03: Add kerning and compensate on label 0/0 origin ↵ | Sven Gothel | 2023-03-28 | 1 | -8/+22 |
| | | | | using Glyph bounds minY() | ||||
* | GraphUI Demo UISceneDemo02: Use em-sized label w/ scale. | Sven Gothel | 2023-03-28 | 1 | -8/+8 |
| | |||||
* | GraphUI: Decouple GraphShape from Shape, i.e. allow future Shape w/o ↵ | Sven Gothel | 2023-03-28 | 19 | -305/+469 |
| | | | | Graph/GLRegion | ||||
* | GraphUI Button: Simplify addShapeToRegion() | Sven Gothel | 2023-03-28 | 2 | -15/+15 |
| | |||||
* | GraphUI Label: Add getScaledLineHeight() and refine setFontScale(), i.e. ↵ | Sven Gothel | 2023-03-28 | 1 | -3/+21 |
| | | | | only act and markDirty() on change | ||||
* | GraphUI Label: Remove glyphVisitor's debug code (exception handling) | Sven Gothel | 2023-03-28 | 1 | -10/+2 |
| | |||||
* | GraphUI: Label: Enforce bottom-left origin @ 0/0 for good drag-zoom ↵ | Sven Gothel | 2023-03-28 | 1 | -3/+4 |
| | | | | experience (working sticky edge) | ||||
* | GraphUI: Shape: Fix setTransform(): Scale around center and rotate around ↵ | Sven Gothel | 2023-03-28 | 1 | -26/+40 |
| | | | | pivot-point or center; Assume Shape origin to be bottom-left for drag-zoom. Removes questionable scale-hack. | ||||
* | GraphUI: Shape.dispatchMouseEvent(): Rename dsx/dsxy -> sx/sy as they ↵ | Sven Gothel | 2023-03-28 | 1 | -7/+7 |
| | | | | denominate whole scale-factor, not their delta | ||||
* | 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 | 5 | -11/+12 |
| | | | | text-processing information | ||||
* | Graph Font.Glyph: Add getFont() (the owner) | Sven Gothel | 2023-03-28 | 2 | -0/+8 |
| | |||||
* | GraphUI Demos: Remove unused GPUUISceneTextAnim01 | Sven Gothel | 2023-03-28 | 1 | -303/+0 |
| | |||||
* | Graph FontScale: Simplify names, fix API doc and add unit test | Sven Gothel | 2023-03-28 | 11 | -36/+173 |
| | |||||
* | Graph Font: Rename getBBox*() -> getBounds*() to preserve a common semantic name | Sven Gothel | 2023-03-27 | 6 | -17/+17 |
| | |||||
* | 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 |
| | |||||
* | WWW: Cleanup Featured Projects intro and have section links bold. | Sven Gothel | 2023-03-27 | 1 | -3/+3 |
| | |||||
* | WWW: Add Games: Wakfu + Archipelago | Sven Gothel | 2023-03-27 | 3 | -0/+20 |
| | |||||
* | GraphUI Demos: (Text) Type Animation ... | Sven Gothel | 2023-03-22 | 3 | -1/+699 |
| | |||||
* | UISceneDemo0[01]: Useless minor editing (can't move animator lower as sadly ↵ | Sven Gothel | 2023-03-22 | 2 | -2/+1 |
| | | | | used in our window dtor event handler) | ||||
* | 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 | 7 | -35/+90 |
| | | | | 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 Demos: Adopt to shapesSharpness -> oshapesSharpness rename | Sven Gothel | 2023-03-22 | 7 | -7/+7 |
| | |||||
* | GraphUI Shape: Make access private where possible & reasonable, synchronize ↵ | Sven Gothel | 2023-03-22 | 6 | -42/+55 |
| | | | | dirty and in draw(..) the whole dirty-validate() region.draw() |