aboutsummaryrefslogtreecommitdiffstats
path: root/src
Commit message (Collapse)AuthorAgeFilesLines
* GraphUI Demo: Rename UISceneDemoU01a -> UIGraphDemoU01a, not using GraphUI's ↵Sven Gothel2023-09-011-4/+24
| | | | Scene but manual GLEventListener etc, add a few Glyph tests
* GraphUI Demo FontView01: Fix '-showUnderline', i.e. glyphListener shall use ↵Sven Gothel2023-08-281-1/+1
| | | | the last element in container, the GlyphShape
* GraphUI Demo FontView01: Enhance usability and refactor: Add left-column ↵Sven Gothel2023-08-281-78/+206
| | | | | | | | | | | | | | | | | | | | glyphSymbol number, mouse-wheel scrolling, Fitting the font info, .. - Add mouse-wheel scrolling, for one-line and with control for one page. - Add left-column glyphSymbol number, for orientation while scrolling - Fitting the font info, i.e. consider width + height Refactoring further isolated the addGlyphs(..) functionality in same method, etc. Used to test Graph's capabilitry to properly read, detect and visualize certain fonts. Previous Graph fixes were triggered by this procedure, i.e. commits - 733cc5272cfed10fa07b707e29fd756f44581508 - 920e529516bb264f04138ed1caca80d4925e3773 - 7fd51917b0cc85c3dc3d07592093a62b213d1ea5 Further the proper detection of non-contour/whitespace allows FontView to skip them and only show usably Glyphs without noise.
* Graph Font: Make TypecastRenderer.DEBUG package private to be used by ↵Sven Gothel2023-08-281-1/+1
| | | | TypecastFont
* GraphUI Shape: Show dirty-state in getSubString()Sven Gothel2023-08-281-1/+13
|
* Graph Font + Glyph: More robust detetection and API definition of ↵Sven Gothel2023-08-289-71/+178
| | | | | | non-contour/whitespace Glyphs (detect and allow to skip 'em) We also drop shapes for both, but for id 0 (unknown).
* Graph Loop: Make initFromPolyline() and locateClosestVertex() more robust, ↵Sven Gothel2023-08-284-12/+34
| | | | | | report error but do not crash. This behavior has been evaluated with a few fonts and the WIP FontView01 demo application.
* UISceneDemo03: Detail demo description, add blog entrySven Gothel2023-08-271-3/+7
|
* GraphUI Demo: UISceneDemo03: Add optional audio (only) via '-audio <URL or ↵Sven Gothel2023-08-271-4/+108
| | | | file-path>' using our GLMediaPlayer (FFmpeg + JOAL/OpenAL)
* GraphUI: Button: Reduce default DEFAULT_LABEL_ZOFFSET from 0.005f -> ↵Sven Gothel2023-08-271-1/+1
| | | | | | | | | 0.0001f, have to check if working on all platforms (TODO) Otherwise, we have to resolve the 'one Region' for the Button (backgroung shape + text on top) implementation with two OutlineShapes. As of now, we use the z-offset of the text above background to avoid z-fighting. This is like a manual application of glPolygonOffset(..) directly on the produced vertices.
* GraphUI: Extract generalized AnimGroup functionality from UISceneDemo03*, ↵Sven Gothel2023-08-277-781/+1336
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | providing sets of animated Shapes (GlyphShape or any other) Hardcoding the whole animation process into user code is not feasible to allow a quick add-on. GraphUI's new AnimGroup is a Group and allows to add multiple AnimGroup.Set of AnimGroup.ShapeData. +++ AnimGroup.ShapeData holds the actual Shape and its start- and target position as well as its active animation state and an optional user object attachment. AnimGroup.Set holds a list of AnimGroup.ShapeData as well as the animation properties and states like acceleration and velocity for translation and angular operations. It also contains the AnimGroup.LerpFunc for linear interpolation of the next position as called via AnimGroup.tick() over all sets. AnimGroup.LerpFunc is intended to perform the linear interpolation for the next position, either user provided or one of the provided may be used, i.e. TargetLerp, ScrollLerp and SineLerp. To setup the start- and target position for each AnimGroup.ShapeData, a AnimGroup.ShapeSetup is used - user implementated or one of the build-in of AnimGroup.addGlyphSetHorizScroll01(..), AnimGroup.assGlyphSetRandom01(..). +++ UISceneDemo03 consolidated UISceneDemo03 + UISceneDemo03b (deleted) and shows the following AnimGroup capabilities: - Two repetitive scrolling text lines. One text shorter than the line-width and one longer. - One line of animated rectangles, rotating around their z-axis - A text animation assembling one line of text, each glyph coming from from a random 3D point moving to its destination all at once including rotation. - One line of text with sine wave animation
* Add TestVec3f01NOUI: This test shall be enhanced, only priliminary angle ↵Sven Gothel2023-08-271-0/+137
| | | | tests for now
* AABBox: Fix intersects2DRegion(..), add resize{Height, Width}(..) and AABBox ↵Sven Gothel2023-08-271-4/+57
| | | | | | | | | ctor using Vec3f low and high intersects2DRegion(..) got the passed width and height wrong, i.e. given object low position >= this-low position and given object high position including width/height <= this-high position is required to match for intersection.
* Vec3f: Add UNIX_X and UNIX_X_NEG, enhance API docSven Gothel2023-08-271-2/+4
|
* Quaternion: Add rotateByAngleNormalAxis(..) variant using Vec3f axisSven Gothel2023-08-271-1/+18
|
* GraphUI: Use thread-save and lock-free CopyOnWriteArrayList for List<Shape>, ↵Sven Gothel2023-08-272-4/+4
| | | | allowing off-thread mutation
* AABBox: Add set(AABBox)Sven Gothel2023-08-251-0/+13
|
* GraphUI: Shape: Add runSynced(Runnable); Add setPMVMatrix(..) to setup ↵Sven Gothel2023-08-251-39/+100
| | | | complete PMVMatrix, use it in getSurfaceSize(..), shapeToWinCoord(..) and winToShapeCoord(..)
* GraphUI: Group API doc + remove GlyphShape's redundant many getOrigPos() ↵Sven Gothel2023-08-252-40/+7
| | | | variants
* Vec[234]f: Add scale(Vec[234]f s) variant for convenienceSven Gothel2023-08-233-0/+9
|
* TestSWTAccessor02NewtGLWindow: Use lambda for SWTAccessor.invokeOnOSTKThread(..)Sven Gothel2023-08-231-4/+5
|
* Demos: Use Runnable lambda for window.destroy() off-thread and use ↵Sven Gothel2023-08-2310-57/+37
| | | | key-symbols F4, ESC and Q to trigger off-thread window.destroy()
* UISceneDemo03b: Add a little more customization ..Sven Gothel2023-08-191-6/+23
|
* Bug 1310: Reset GLJPanel states @ dispose(..) and always reshapeImpl(..) @ ↵v2.5.0Sven Gothel2023-08-181-7/+30
| | | | | | | | | addNotify(), leading to proper initialization sequence when re-adding panel. The proper initialization sequence subsequently also leads to proper glViewport initialization, see commit d17d807a76ba9cb940542264fcad9cf71c7ec585 No side-effects expected, just ensuring same code-path compared to initial addNotify().
* Bug 1310: Detect missing glViewport(..) on Windows before ↵Sven Gothel2023-08-181-2/+24
| | | | | | | | | | | | | | | | | GLEventListener.reshape(..) when re-adding GLJPanel When re-adding GLJPanel on Windows glViewport() is not called through - GLJPanel.Updater.display() - GLDrawableHelper.reshape() - GLDrawableHelper.setViewportAndClear() Instead the following sequence is called due to sendReshape == false: - GLJPanel.Updater.display() - GLDrawableHelper.display() ** missing glViewport(..) ** This bug is not visible on X11 or MacOS since the glViewport is only set to a different user value on Windows ...
* Demos: ..demos.graph.ui.util.GraphUIDemoArgs -> ..demos.util.CommandlineOptionsSven Gothel2023-08-1316-34/+33
|
* GraphUIDemoArgs: Issue GLProfile.initSingleton() once in static init block, ↵Sven Gothel2023-08-132-1/+5
| | | | | | ensuring JOGL is completely initialized Noteable: On MacOS 13.1 (aarch64) UISceneDemo20 won't show the window if NEWT is initialized before JOGL core via GLProfile.initSingleton().
* UISceneDemo20: Fix info/debug text title GPUUISceneGLListener0A -> UISceneDemo20Sven Gothel2023-08-131-7/+8
|
* Minor cleanup of imports, etc: FBObject, GLContext*, Texture, ..Sven Gothel2023-08-137-58/+36
| | | | TODO: Full cleanup perhaps
* Texture ctor w/ external textureID: Pass `ownsTextureID` where true hands ↵Sven Gothel2023-08-133-17/+48
| | | | | | | | | over ownership and allows destroy() to delete it, otherwise not. Fixes GraphUI's GLButton. GraphUI's GLButton uses the offscreen's FBO texture and hence can't pass over ownership of the texture. Hence the Texture instance is created w/o handing over ownership! GLMediaPlayerImpl does hand over ownership of the generated and passed texture to the Texture ctor.
* GraphUIDemoArgs: Add GL4 coreSven Gothel2023-08-131-0/+2
|
* Demos: Add main() to GearsES2, .. allowing to be used for simple bringup testsSven Gothel2023-08-133-12/+166
|
* Animator*: Add ctor variants passing modeBits directly, i.e. enable/disable ↵Sven Gothel2023-08-1369-741/+941
| | | | AWT rendering thread support. Adopt it in tests and demos
* FontViewListener01/TestTextRendererNEWT21: Use 30 pixelPerCell (total w/ ↵Sven Gothel2023-08-121-10/+21
| | | | gap) for test case to compare pixel-by-pixel
* Graph TextRegionUtil.drawString3D(..): Allow null `rgbaColor` w/o ↵Sven Gothel2023-08-121-6/+12
| | | | color-channel again, was enforced to be set in commit bb6ee81bc5514663bb7b22224fcdd5ba34a51ac6
* GLMediaPlayer: Show more reasonable DEBUG output in factory; Impl initGL(GL) ↵Sven Gothel2023-08-112-6/+26
| | | | shall handle null streamWorker, i.e. when using NullGLMediaPlayer
* Untangle joal from build requirements as introduced via new jogl-demosSven Gothel2023-08-073-6/+4
| | | | | | | | | | | | | | | | | | To enjoy the UISceneDemo20 demo, joal shall exist at its usual location. However, pass build if not available. Also drop ant + junit from demos. - Rename jogl-demo-android.{jar,apk} -> jogl-demos-android.{jar,apk} - New demo classpath - Add non-joal demo classpath - Add joal demo classpath. - Drop junit + ant from both - Remove joal from junit compile path. - Build test: demo compilation (Java + Android) - Drop joal dependencies if not available
* Test Bug1310: Remove and re-add a GLJPanel from its Swing parent (working)Sven Gothel2023-08-071-0/+246
| | | | Also tested with Sofr-HiDPI on Linux using GDK_SCALE=2
* Graph / GraphUI Demos: Don't use the color-channel if not required (mixing ↵Sven Gothel2023-08-026-14/+17
| | | | | | | colors within one region) Note, commit bb6ee81bc5514663bb7b22224fcdd5ba34a51ac6 relaxes the requirement for using a color-channel.
* Graph TextRegionUtil.drawString3D(..): Redefine 'rgbaColor' semantics: ↵Sven Gothel2023-08-021-3/+24
| | | | | | | | | | Either fill color-channel with value if used and set static-color to white - or just set static color channel with value. Have the given rgbaColor to definitely setting the text color regardless whether a color channel is used or not. Note: Using a color-channel is more expensive (color value per vertex) and should only be required if mixing colors within one region! Also removes potential side-effects if color-channel is used but user forgets to set the static value properly.
* Graph RenderState: Initialize colorStatic w/ all white (1,1,1,1) if ↵Sven Gothel2023-08-021-1/+1
| | | | | | | | | | | | color-channel is used and no static-color set Commit a973324a75b55b722caa755a7a573be849d997e4 was setting the alpha to 1, which avoids the 'discard' in the shader. This at least gave us a black color ;-) However, the shader modulates the color, i.e. color-channel * color-static, therefor we need an all-white color-static as default if user only sets the color-channel.
* Graph RegionRenderer.destroy(): Detach RenderState from GL instanceSven Gothel2023-08-021-0/+1
| | | | Remove potential leak
* Graph: Simplify RegionRenderer API by exposing common RenderState methods ↵Sven Gothel2023-08-0219-91/+98
| | | | (and fwd 'em to RenderState aggregate)
* UISceneDemoU01a: Destory textRegion @ disposeSven Gothel2023-08-011-0/+1
|
* Graph Add {GLRegion, GraphShape}.setTextureUnit(int): Allowing to set ↵Sven Gothel2023-08-016-10/+48
| | | | texture unit after ctor
* Graph RegionRendered.init(..): Disable renderer (and shader programs etc) to ↵Sven Gothel2023-08-013-11/+7
| | | | avoid side-effects. Usually called @ GLEventListener.init(..)
* Graph RenderState: Initialize colorStatic w/ alpha=1 to avoid invisible ↵Sven Gothel2023-08-011-1/+1
| | | | | | rendering if no static color has been set Shader either uses just colorStatic or multiplies it w/ the color-stream value
* Graph GLRegion.create(..): Expose variant with custom pass2TexUnit for VBAA ↵Sven Gothel2023-08-011-5/+23
| | | | (default texture unit is 0)
* Add Graph/GraphUI UISceneDemoU01a, showcase integration and multiple ↵Sven Gothel2023-08-011-0/+351
| | | | projection settings
* GLStateTracker: Add tracking of blending states (part-1)Sven Gothel2023-08-011-2/+129
|