commit 70f62ca5d121e5e71548246d468b5e7baa5faf25 Author: Sven Gothel Date: Fri Aug 18 14:19:48 2023 +0200 Bug 1310: Reset GLJPanel states @ dispose(..) and always reshapeImpl(..) @ 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(). commit d17d807a76ba9cb940542264fcad9cf71c7ec585 Author: Sven Gothel Date: Fri Aug 18 14:15:02 2023 +0200 Bug 1310: Detect missing glViewport(..) on Windows before 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 ... commit 142b1b8342c1ddb41878230051706db5c03033dd Author: Sven Gothel Date: Tue Aug 15 21:15:46 2023 +0200 README: Fix links commit e05ccaeca666ee04b0114a356669c94ebb6542d3 Author: Sven Gothel Date: Tue Aug 15 21:12:54 2023 +0200 README: Fix JOGL inception, pre Sun launch and later acquired by Sun. commit b4d60749244a7b34cd3facfd1499fc6df1896c69 Author: Sven Gothel Date: Mon Aug 14 00:29:36 2023 +0200 Add make/scripts/test-fat-jars.sh for a quick bringup-test commit 5688f22d01e10efd97fb4bf280bbefa591dc6789 Author: Sven Gothel Date: Sun Aug 13 06:16:28 2023 +0200 MacOS test scripts: Enable FFmpeg6 from Homebrew Install Homebrew https://brew.sh/ > /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" Follow further directions... Install FFmpeg (Currently v6) https://formulae.brew.sh/formula/ffmpeg > brew install ffmpeg or > brew install fmpeg@6 Leaves the ffmpeg libraries in: - x86_64: /usr/local/Cellar/ffmpeg/6.0/lib - aarch64: /opt/homebrew/Cellar/ffmpeg/6.0/lib commit e231dd3c6e21b0b0de050851e1902ae391c87abd Author: Sven Gothel Date: Sun Aug 13 05:18:18 2023 +0200 Demos: ..demos.graph.ui.util.GraphUIDemoArgs -> ..demos.util.CommandlineOptions commit d0bb5159f986f7e05c07360c88192f1a29f89122 Author: Sven Gothel Date: Sun Aug 13 05:14:06 2023 +0200 GraphUIDemoArgs: Issue GLProfile.initSingleton() once in static init block, 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(). commit 8cf369093538bf482fa9902f52cec75f04b7e7eb Author: Sven Gothel Date: Sun Aug 13 03:08:50 2023 +0200 UISceneDemo20: Fix info/debug text title GPUUISceneGLListener0A -> UISceneDemo20 commit c8b03bc28390bc8ca078118ba7c29dfec505f837 Author: Sven Gothel Date: Sun Aug 13 03:01:25 2023 +0200 Minor cleanup of imports, etc: FBObject, GLContext*, Texture, .. TODO: Full cleanup perhaps commit a3e18cefd3e90df53ff375997c8f4fdc3da19aa3 Author: Sven Gothel Date: Sun Aug 13 02:48:20 2023 +0200 make/scripts/tests.sh: Add Basic demos if jogl-demos.jar commit 76698d1923ccd9c7f22fe8500c6c4531c2d0c3ae Author: Sven Gothel Date: Sun Aug 13 02:47:14 2023 +0200 Texture ctor w/ external textureID: Pass `ownsTextureID` where true hands 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. commit 2aa80761ace63492c859632317a47cdcc8cfae5f Author: Sven Gothel Date: Sun Aug 13 02:40:21 2023 +0200 GraphUIDemoArgs: Add GL4 core commit 059a7b860ec703ac4c416241f6edc165ad313dcc Author: Sven Gothel Date: Sun Aug 13 02:39:59 2023 +0200 Demos: Add main() to GearsES2, .. allowing to be used for simple bringup tests commit 52b745ed2196d3e00102e8fccace25f41386a016 Author: Sven Gothel Date: Sun Aug 13 02:38:21 2023 +0200 Animator*: Add ctor variants passing modeBits directly, i.e. enable/disable AWT rendering thread support. Adopt it in tests and demos commit c25a2900e52505ff894701928227d5bcd70b72d3 Author: Sven Gothel Date: Sat Aug 12 18:47:13 2023 +0200 WWW: Replace Gephi icon w/ a more friendly JogAmp website matching preview one (white background, showing a graph) commit 429e92c3403e0275ec91000cfda85951152850dd Author: Sven Gothel Date: Sat Aug 12 17:06:44 2023 +0200 Fix typo of commit d8e086e0321ef1021f4a7810d7bfd2306c4ac725: jogl{s->}-demo{->s}-android commit d11f7c489f4736289e7a182d2f1387a2830f1164 Author: Sven Gothel Date: Sat Aug 12 15:01:26 2023 +0200 Add GraphUI to javadoc source path commit 4c1ab563fe276236ff5be52d0ef28e05bbe33aaa Author: Sven Gothel Date: Sat Aug 12 02:55:53 2023 +0200 FontViewListener01/TestTextRendererNEWT21: Use 30 pixelPerCell (total w/ gap) for test case to compare pixel-by-pixel commit 4226760454fccee7b8c4127ce5a326807eec547b Author: Sven Gothel Date: Sat Aug 12 02:54:28 2023 +0200 Graph TextRegionUtil.drawString3D(..): Allow null `rgbaColor` w/o color-channel again, was enforced to be set in commit bb6ee81bc5514663bb7b22224fcdd5ba34a51ac6 commit 19895532b6b605f3a839071c6082214b06dd89bb Author: Sven Gothel Date: Fri Aug 11 05:25:39 2023 +0200 GLMediaPlayer: Show more reasonable DEBUG output in factory; Impl initGL(GL) shall handle null streamWorker, i.e. when using NullGLMediaPlayer commit 1442d8dc875af3e945e656509105c89e394647c3 Author: Sven Gothel Date: Thu Aug 10 11:13:27 2023 +0200 Bug 1450: Remove nativewindow's drm-gbm GlueGen config's manual constant definitions, now properly passed from GlueGen commit f85feef7bcb0b798d7a760e548548ae564bd0f6a Author: Sven Gothel Date: Mon Aug 7 22:06:44 2023 +0200 README: Add Mathieu Féry, who enhanced GlueGen commit d8e086e0321ef1021f4a7810d7bfd2306c4ac725 Author: Sven Gothel Date: Mon Aug 7 22:05:13 2023 +0200 Untangle joal from build requirements as introduced via new jogl-demos 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 commit 5b2236c39d1aa751658f3d30101752a145af7187 Author: Sven Gothel Date: Mon Aug 7 13:32:06 2023 +0200 scripts/tests.sh: Add TestGLJPanelReadd01Bug1310AWT commit c1b6094db1297f92141c4c9d9a3714ab185e242b Author: Sven Gothel Date: Mon Aug 7 13:31:50 2023 +0200 README/index: 'Graph UI' -> GraphUI commit 5be77843127a785bcdfc4dbc041fcf42c6971592 Author: Sven Gothel Date: Mon Aug 7 13:30:44 2023 +0200 Test Bug1310: Remove and re-add a GLJPanel from its Swing parent (working) Also tested with Sofr-HiDPI on Linux using GDK_SCALE=2 commit 1f2df348fb2a78e8e8774a00acff2b554fc973cd Author: Sven Gothel Date: Mon Aug 7 04:14:42 2023 +0200 README/index: Fix link to OpenGL_API_Divergence.html commit 430b8a061b061ceb9c03deb84380335612f71737 Author: Sven Gothel Date: Mon Aug 7 04:11:58 2023 +0200 Update README.md, index.html (Graph/GraphUI, references) and add OpenGL_API_Divergence.md commit bcc4b5de41dcfca5eac19111506b996d3531d908 Author: Sven Gothel Date: Sun Aug 6 21:46:25 2023 +0200 Bug 1441, 852: Annotate ARB_draw_indirect dual sourcing, remove redundant manual declarations commit af321b4a90a4da9351dfbdd6d9a8202a73fc8c05 Author: Sven Gothel Date: Sun Aug 6 21:26:04 2023 +0200 Bug 1441 - Fix ARB_multi_draw_indirect: Belongs to GL4, glMultiDrawElementsIndirect shall only have VBO indirect access commit 7437eb0e4a6bbbfb96047677716d9306e9b2acbd Author: Sven Gothel Date: Wed Aug 2 15:44:25 2023 +0200 Graph / GraphUI Demos: Don't use the color-channel if not required (mixing colors within one region) Note, commit bb6ee81bc5514663bb7b22224fcdd5ba34a51ac6 relaxes the requirement for using a color-channel. commit bb6ee81bc5514663bb7b22224fcdd5ba34a51ac6 Author: Sven Gothel Date: Wed Aug 2 15:42:38 2023 +0200 Graph TextRegionUtil.drawString3D(..): Redefine 'rgbaColor' semantics: 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. commit 94def2d64fd6fb2d789e5d9176f67941f0bb5b8a Author: Sven Gothel Date: Wed Aug 2 14:41:05 2023 +0200 Graph RenderState: Initialize colorStatic w/ all white (1,1,1,1) if 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. commit a4793735eeead4ae5d54422bf8d76511094088ea Author: Sven Gothel Date: Wed Aug 2 14:38:26 2023 +0200 Graph RegionRenderer.destroy(): Detach RenderState from GL instance Remove potential leak commit 463a5cd983f0dfe1aea54574c25b532645b0502f Author: Sven Gothel Date: Wed Aug 2 14:36:58 2023 +0200 Graph: Simplify RegionRenderer API by exposing common RenderState methods (and fwd 'em to RenderState aggregate) commit aa4463568da2dee0af8bc8d959444f67cd9a5c69 Author: Sven Gothel Date: Tue Aug 1 20:05:29 2023 +0200 Update tests script .. (consolidate GraphUI demo lines) commit c777df3147deb5a97b4dced9a1629cacd8a6db16 Author: Sven Gothel Date: Tue Aug 1 18:58:00 2023 +0200 UISceneDemoU01a: Destory textRegion @ dispose commit de4767e90f752cb9804403fa4ac775394bb45324 Author: Sven Gothel Date: Tue Aug 1 18:57:41 2023 +0200 Graph Add {GLRegion, GraphShape}.setTextureUnit(int): Allowing to set texture unit after ctor commit 285459363469e60df9db51a4c0485ec21d4e04ae Author: Sven Gothel Date: Tue Aug 1 17:46:27 2023 +0200 Graph RegionRendered.init(..): Disable renderer (and shader programs etc) to avoid side-effects. Usually called @ GLEventListener.init(..) commit a973324a75b55b722caa755a7a573be849d997e4 Author: Sven Gothel Date: Tue Aug 1 17:45:16 2023 +0200 Graph RenderState: Initialize colorStatic w/ alpha=1 to avoid invisible rendering if no static color has been set Shader either uses just colorStatic or multiplies it w/ the color-stream value commit d6f7c51dff01fdea5ce610c6da60ca2ac9cb9c43 Author: Sven Gothel Date: Tue Aug 1 17:43:46 2023 +0200 Graph GLRegion.create(..): Expose variant with custom pass2TexUnit for VBAA (default texture unit is 0) commit da3943d26342b8d71aa3fdf0d7f46f96e5b098dd Author: Sven Gothel Date: Tue Aug 1 14:08:31 2023 +0200 Add Graph/GraphUI UISceneDemoU01a, showcase integration and multiple projection settings commit 76078006e7befe830a235fbceda0d46e7db0c149 Author: Sven Gothel Date: Tue Aug 1 14:07:27 2023 +0200 GLStateTracker: Add tracking of blending states (part-1) commit 16b9a3ac358b3ad34dd9eb9df090b59f25e26b75 Author: Sven Gothel Date: Tue Aug 1 14:06:48 2023 +0200 GLStateTracker: Encapsulate PixelStateMap for PixelStorei states (prepare for tracking of blending states) commit 7d9bfe58e6ef48e5c7d3da322dbc558285791af9 Author: Sven Gothel Date: Tue Aug 1 13:59:02 2023 +0200 GraphUI: Add Shape.getSurfacePort(..): Similar to getSurfaceSize(..) but returns the whole Recti viewport of the shape commit b2e62fee23dcb8cfab4293fd5bfefcf22cdd2b14 Author: Sven Gothel Date: Tue Aug 1 13:57:39 2023 +0200 Graph: Minor cleanup: TextRegionUtil: Fix API doc references; RegionRenderer.enable(..) merge '!enable' branch, fix API doc commit c7119250096c093eba539ea0187159a98f5901f5 Author: Sven Gothel Date: Tue Aug 1 13:55:21 2023 +0200 README: Add Harvey to contributors (missed him, sorry) commit be9c3e42e618148584689a1ccf30c8c3f4e6227a Author: Sven Gothel Date: Sat Jul 15 14:35:02 2023 +0200 Add {GL, GLContext}.getDefaultDrawBuffer() to complement getDefaultReadBuffer() commit ddbffc38f001e3297d560ab1f6b3e7575771bdc5 Author: Sven Gothel Date: Mon Jul 10 19:25:25 2023 +0200 README.md: JogAmp History & Milestones: Added Java3D + Ardor3D, added GlueGen JavaCallback (grouped) commit 27d0be94c4350352ac122c6af0a00314a919032d Author: Sven Gothel Date: Mon Jul 10 19:23:40 2023 +0200 NativeSignatureJavaMethodBindingEmitter: Adopt to GlueGen changes commit 585bc34ca6e08cf5602eb7dbdb618b7a5771190c Author: Sven Gothel Date: Fri Jun 16 02:41:55 2023 +0200 Adopt to GlueGen Struct API Change get/set array arguments commit 4267837c591c9c205ff5206afaf38bba8c4215ac Author: Sven Gothel Date: Fri Jun 9 20:31:17 2023 +0200 Adopt to GlueGen commit 952e0c1f83c9e0583a97d39988a6ba1428911c8c To limit growing code due to GlueGen's more capable new `Struct` emitter (more supported setter), `Struct` with intended read-only access have been marked `ImmutableAccess` in their GlueGen config file. Produced code with above setting compared with pre-GlueGen change is reduced while also having dropped all of the JNI calls retrieving `Struct` values. Only calls to function-pointer produced JNI methods, of course. commit 6fa48e0595d6b607195eee53c0b985a8cddfa7bb Author: Sven Gothel Date: Sun Jun 11 01:35:04 2023 +0200 README.md: Shorten gl4java section commit 26a7f1ce88dec1eea610d401137d04a1866ada9d Author: Sven Gothel Date: Sun Jun 11 00:41:15 2023 +0200 README.md: Adding JogAmp History & Milestones, ... commit 6a22d9fa307c7cd4de1dca280ecdfeb3b3200184 Author: Tom G. Christensen Date: Wed Jun 7 09:51:15 2023 +0200 Add swt 4.26 for gtk-linux-ppc64le This is required for the Linux/ppc64le target to build. ba2338ad6c24516a9686baf75c289d4a3fac488bd68a3b88e725cbf611f5e681209feb6ddf5848e21dcf0e9c33c1c8d898f44f02ae2dc499816a8fe191525bf9 swt-4.26-gtk-linux-ppc64le.zip commit 4ae2f5bb09ebab70414f62de793445033394ff91 Author: Tom G. Christensen Date: Wed Jun 7 09:36:23 2023 +0200 Add support for Linux/ppc64le architecture commit 25fd535a11803c74a4fb63c627bee6f771d83480 Author: Glenn Burkhardt Date: Sun Jun 4 15:50:56 2023 -0400 Use DPI scaling to scale drawn fonts. commit 00f72bac04138781c99c5d10229fb21d1406c9c2 Author: Andreas Schwab Date: Wed May 24 14:28:04 2023 +0200 Add support for riscv64 architecture commit aea2254d1226b9471893113bde2bf1e54c24b14c Author: Sven Gothel Date: Tue May 23 02:19:22 2023 +0200 GraphUI UISceneDemo20: Add OpenAL spatial 3D sound features: Add SimpleSineSynth Button and have MediaButton to produce mono-only for 3D sound - Move SimpleSineSynth and MediaPlayer around for spatial 3D sound - Shape's center is the Source position - SimpleSineSynth controlls: - click to enable - scroll vertical -> frequency change - scroll vertical + ctrl-key -> volume/amplitude change commit 31d430e19fdd6dcd69e652df10ac34dcfa0e7add Author: Sven Gothel Date: Tue May 23 02:15:53 2023 +0200 GraphUI Shape: Add one-shot init callback, will be called after each draw(..) until it returns true. commit 8c0f65869a4689d5f908249de3a3439930f2886e Author: Sven Gothel Date: Tue May 23 02:15:00 2023 +0200 GraphUI Scene: Drop redundant and wrong setupMatrix(pmv) for forOne(..) and forAll(..), should be setup before call by user commit a792b8f61d1274ba34fed6f8e1361117bd0e703e Author: Sven Gothel Date: Tue May 23 02:13:40 2023 +0200 GraphUI MediaButton: Expose AudioSink commit b294b6e4f9a3dc24bcdce28f0a9c45eda8755f1f Author: Sven Gothel Date: Tue May 23 02:13:08 2023 +0200 GLMediaPlayer: Add setAudioChannelLimit(..), correlating with AudioSink.setChannelLimit() .. May be utilized to enforce 1 channel (mono) downsampling in combination with JOAL/OpenAL to experience spatial 3D position effects. commit 55fb624ac388a88c068bd9f9e7cc3164458d6201 Author: Sven Gothel Date: Tue May 23 02:11:34 2023 +0200 make/build-test.xml: Add JOAL to classpath commit 3e8894de1b26caf93e7d7b395aff332a3c522d65 Author: Sven Gothel Date: Sun May 21 16:51:52 2023 +0200 *MediaPlayer: Adop to JOAL 39a32fd56de313c31bd197ee6022288e97f9729a commit 07da0949aae6d13c7cca12bc4728e98b161dbf42 Author: Sven Gothel Date: Sat May 20 14:34:33 2023 +0200 Relocate 'jar/atomic/jogl-fonts-p0.jar' -> 'jar/jogl-fonts-p0.jar' to simplify inclusion in distribution; UbuntuFontLoader's Uri is patched accordingly. This font jar file is actually not an atomic in the sense it being aggregated to e.g. jogl-all.jar or even a fat jar. Hence it is more suitable to have it all visible in the top-dir next to the main jars. commit 77dc88ce6aa36673af46a296a15fb438154d3a0a Author: Sven Gothel Date: Sat May 20 08:08:10 2023 +0200 build.xml: Preserve README.md, copy filtered README-zip-bundles.txt to archive w/ same name commit 2cc4643d7d2c31607a3089eaa3d77cb6b68df9be Author: Sven Gothel Date: Sat May 20 06:26:15 2023 +0200 FFMPEGMediaPlayer: Adjust to AudioFormat changes commit 7905a197ee21e07bb3a6f5ea33fb789c98253af0 Author: Sven Gothel Date: Thu May 18 07:39:37 2023 +0200 MovieCube: Restart @ EOS commit 439d8e69a91c5c906dc5813beed85bc88e81f69b Author: Sven Gothel Date: Thu May 18 07:14:32 2023 +0200 FFMPEGMediaPlayer: AudioFormat is now a stand-alone class (gluegen 2b339721a4d6dd4f3af129a4654375b15c7ea340) commit 4971a01724d926039fbdbabafca1b36dab380409 Author: Sven Gothel Date: Wed May 17 18:14:43 2023 +0200 make/scripts/tests.sh: Adjust D_ARGS for AudioSink (moved to gluegen/joal); Validated GLMediaPlayer ... Validated GLMediaPlayer w/ new AudioSink and channels > 2 for ALAudioSink with openal-soft > 1.18 (w/o AL_SOFT_buffer_samples). commit 5f72e750d6650059f9a5ce028e95984bb8f34c81 Author: Sven Gothel Date: Wed May 17 08:15:43 2023 +0200 Common av classes (*AudioSink, ..) are promoted to gluegen (commit 270172bcbd91f96d4a38a3d73e23d744f57a25b8) and joal (commit 03f4bb63ce8a358b1c2ef303480e1887d72ecb2e) commit 900c35c6a49e0d53e38dd07da709bf81e28abd3e Author: Sven Gothel Date: Mon May 15 06:47:22 2023 +0200 HiDPI: Revise AWT GLCanvas/GLJPanel ScalableSurface: No setSurfaceScale(), have AWT toolkit define pixelScale only (simplification) This aligns with Glenn's initial AWT patch commit e5e7514d649cd7dd28bbb8e04b72338dc09c2c83, i.e. removing redundancies... Tested on Linux, Windows and MacOS w/ GLCanvas, GLJPanel and GLWindow using pixelScale values: - Linux: 1, 2 - Windows: 1, 1.25, 2 - MacOS: 1, 2 commit cc5e46d8096a9395246518ad413385167f5f8eee Author: Sven Gothel Date: Mon May 15 06:20:40 2023 +0200 Fix MovieSimpleActivity1: Adjust to GLMediaPlayer API change (commit 9a7b9768e2e018a33ca44a170f372fee84c26a27) Was missing .. commit 80ccc1f98f0c1391acc6d27de82eac97ca1c27b9 Author: Sven Gothel Date: Sun May 14 15:44:31 2023 +0200 HiDPI: Complete testing on Windows (AWT, NEWT, AWT+NEWT): AWT pixel scale propagated properly to our AWT GLCanvas and NEWT commit e01bfdc83c70ca63d52dee086a5c8584d7662252 Author: Sven Gothel Date: Sun May 14 15:27:06 2023 +0200 HiDPI: Revert WindowImpl.applySoftPixelScale()'s if( DEBUG...) { ..; dumpStack(); } commit fd575243e2c8754bc4580526de05462761c320ab Author: Sven Gothel Date: Sun May 14 05:51:50 2023 +0200 SurfaceScaleUtils: Remove unused isZero(..) commit 9d1e7c9adca97780a5b45b135c5693cffee218fc Author: Sven Gothel Date: Sun May 14 05:41:22 2023 +0200 HiDPI AWT/NEWT: Propagate AWT enforced pixelScale via setSurfaceScale() blocking native change by monitor-pixelScale (Windows, X11) commit cfe56e9e6bda15873fefce6f03d343ccdfc51f9b Author: Sven Gothel Date: Sat May 13 06:27:03 2023 +0200 HiDPI: NEWT/MacOS: WindowDriver.sizeScreenPosInsetsChanged() is called w/ client-area in windowUnits (*fix regression*) commit 309cd9fb55d57739f08147840165910f59c4b432 Author: Sven Gothel Date: Sat May 13 06:25:41 2023 +0200 HiDPI: TestGearsES2NEWT: Show MonitorDevice properties, validating pixelScale commit f6021300d928f6902fb582cd3e9fc74bb0261db1 Author: Sven Gothel Date: Tue May 9 07:02:19 2023 +0200 Fix GLMediaPlayerImpl.initGL(GL): Allow null==gl and audio-only mode (regression to initial implementation) commit 9a7b9768e2e018a33ca44a170f372fee84c26a27 Author: Sven Gothel Date: Tue May 9 06:48:29 2023 +0200 GLMediaPlayer: Replace GLMediaEventListener.EVENT_CHANGE_* 'int event_mask' with EventMask.Bit/EventMask commit 72a8c2a524a7af1f3db5102c666a65644b95e08a Author: Sven Gothel Date: Sun May 7 19:49:11 2023 +0200 JOGL File Layout: Have *-java-src.zip inside jar folder, add missing jar/jogl-demos-java-src.zip commit 542044df793f59f56bbd9e16d0e7620b78c55128 Author: Sven Gothel Date: Sat May 6 20:55:03 2023 +0200 MacOSXCGLDrawableFactory.canCreateGLPbuffer(): Disabled for MacOS >= 10.13 (High Sierra) This expands blocking Pbuffer on MacOS, see commit 1562a6d4c71b27378612306f825c2530c938f859 commit 40ba8332851364614512324f489ab984cf020586 Author: Sven Gothel Date: Sat May 6 17:37:09 2023 +0200 Nativewindow OSXmisc.m: Minor cleanup commit 2ab85d08bc3d42b9de2e55b8001c932348758e64 Author: Sven Gothel Date: Sat May 6 17:36:35 2023 +0200 doc/HowToBuild.html: Align w/ GlueGen (MacOS changes, min deployment target 10.7) commit 45a3a220c43cdc40112b0bb9677197139b758347 Author: Sven Gothel Date: Fri May 5 03:17:35 2023 +0200 Graph CDTriangulator2D: Drop invalid innerPoly, avoiding Loop.initFromPolyline(..) outline.getGraphPoint().size() < 3 IllegalArgumentException This issue has to be added to our CD .. /* * Font FreeMono-Bold: ID 0 + 465: Glyph[id 465 'uni020F', advance 600, leftSideBearings 42, kerning[size 0, horiz true, cross true], shape true], OutlineShape@5e8a459[outlines 2, vertices 34] Drop innerPoly ctrlpts < 3 - innerPo[vertices 2, ctrlpts 2] < 3 - outline[vertices 4, ctrlpts 4] - Input[vertices 4] * * Font FreeSans-Regular: ID 0 + 409: Glyph[id 409 'Udieresiscaron', advance 720, leftSideBearings 80, kerning[size 0, horiz true, cross false], shape true], OutlineShape@5eb97ced[outlines 3, vertices 33] Drop innerPoly ctrlpts < 3 - innerPo[vertices 1, ctrlpts 1] < 3 - outline[vertices 1, ctrlpts 1] - Input[vertices 1] * Stack: at jogamp.graph.curve.tess.CDTriangulator2D.addCurve(CDTriangulator2D.java:97) at com.jogamp.graph.curve.OutlineShape.triangulateImpl(OutlineShape.java:988) at com.jogamp.graph.curve.OutlineShape.getTriangles(OutlineShape.java:1012) at com.jogamp.graph.curve.Region.countOutlineShape(Region.java:503) at com.jogamp.graph.ui.shapes.GlyphShape.(GlyphShape.java:77) */ commit 67973c43fb1f6873b19b327b3c665452e5131960 Author: Sven Gothel Date: Fri May 5 03:13:53 2023 +0200 Graph GLRegion: DEBUG_BUFFER (growth) 'jogl.debug.graph.curve.Buffer' commit aebe4cd8bec1f15b45c0d1df5363c442bb9f8db7 Author: Sven Gothel Date: Thu May 4 23:22:04 2023 +0200 doc/HowToBuild.html: Align w/ GlueGen's MacOS changes commit 986dc527acf5aa27d244cb15d7a024ae8ca4ed17 Author: Sven Gothel Date: Thu May 4 17:28:51 2023 +0200 HowToBuild: MacOS: Detail cmake commandline installation and mention 7-Zip commit f702eb7a5dcb1b5ede5a48ba17b558991285220f Author: Sven Gothel Date: Thu May 4 03:30:03 2023 +0200 Graph GLRegion.growBuffer(..): Disable debug output (static final flag) commit e3e58836fc6578aa8814731c9b15581b3e0cb580 Author: Sven Gothel Date: Thu May 4 03:29:17 2023 +0200 AudioSinkFactory: Add debug output in case of failed initialization commit 4f3a757646d16cf18d4a41e67abf63411f35c300 Author: Sven Gothel Date: Thu May 4 03:28:46 2023 +0200 Graph FontFactor: Adopt to GlueGen commit 69d22df0a6132dbf8b88fd04090c0bc81129237f IOUtil.copyStream2File() changes commit 7011ad1131f6d412f6947cfcf9bcad042d4badb4 Author: Sven Gothel Date: Thu May 4 03:27:29 2023 +0200 Windows tests scripts: Update Graph* and *Movie* demos cmdline launches commit 1e9adf43f23b6780a6885dfe6bf3d06e1147f0c3 Author: Sven Gothel Date: Thu May 4 03:26:31 2023 +0200 HowToBuild: Windows: We use MinGW64 w/ 'posix threads' instead of 'win32 threads', allowing C++ std::mutex etc to be used (openal-soft) commit 34a6853f8bef69277863dba181195a9275b55b16 Author: Sven Gothel Date: Sat Apr 29 03:22:51 2023 +0200 GraphUI GridLayout: Handle 'diffBL' in 2nd path, no need to store as we don't use PMVMatrix for computation commit 45298f3d4ef14cf3cc8eafb568f8b891c0aa4b41 Author: Sven Gothel Date: Sat Apr 29 03:18:25 2023 +0200 GraphUI GridLayout: Remove old unused layout0(..) method commit a9c76153fd9a472679c1fc85189f6d4ecda7979e Author: Sven Gothel Date: Sat Apr 29 03:13:01 2023 +0200 GraphUI Working GridLayout w/ and w/o cell-size and alignment; Added BoxLayout. commit 0b7559a6f5f92dd4af9b80bc2a24b8b1d6140bfe Author: Sven Gothel Date: Fri Apr 28 23:56:22 2023 +0200 GraphUI Shape: Use null rotPivot indicating unset (isZero not sufficient); toString() just drop no-border and no-padding. commit db139c97e193b0df385867615bd7a61ee9e5f3a4 Author: Sven Gothel Date: Fri Apr 28 14:54:57 2023 +0200 GraphUI Shape: Fix hasPadding() and add padding + border details to toString() commit a7afdc0530fd5c8e2f24d9be58db4c8b8e11e368 Author: Sven Gothel Date: Fri Apr 28 14:54:09 2023 +0200 GraphUI Add Alignment and Gap for layout commit a8fb422a828001612203aea23e8a4cdf9392e491 Author: Sven Gothel Date: Fri Apr 28 12:44:10 2023 +0200 GraphUI Shape: [add|remove]MouseListener(): Return shape for chaining commit 3ddcde7f2fd21e0a418f756519e42ee190ede07e Author: Sven Gothel Date: Fri Apr 28 12:43:36 2023 +0200 GraphUI Colors: Use pure white modulation w/ color-channel on no-action for original color, adjust defaults accordingly commit 87814f1c86b132a16ddf6822d05b83c3ed091fe2 Author: Sven Gothel Date: Fri Apr 28 12:40:23 2023 +0200 GraphUI Revise Padding and Border: Padding + Border belong to Shape's bounds. Account for both (seperately) and add border rendering to Group as well. commit bd10664189e944699492008776819a28a2d95ecf Author: Sven Gothel Date: Fri Apr 28 12:36:47 2023 +0200 GraphUI GraphShape: Apply {update->reset}GLRegion() See commit 386f9652e0169b0aa7f6ead1bf230d5d67d00a38 commit b029e3388667be46250948565440f92917cb50ef Author: Sven Gothel Date: Fri Apr 28 12:20:30 2023 +0200 GraphUI GraphShape: Refine API doc commit 386f9652e0169b0aa7f6ead1bf230d5d67d00a38 Author: Sven Gothel Date: Fri Apr 28 12:19:07 2023 +0200 GraphUI GraphShape: {update->reset}GLRegion() and reserve vertices+indices if (rect) border is present commit b7ef5e6fac72e0ed1c19eae27801c14772c2ba46 Author: Sven Gothel Date: Fri Apr 28 11:18:01 2023 +0200 AABBox: Add 'translate' w/ dedicated components commit 02fd04ed37e710f639b9e76f6a93137c7b2b61c2 Author: Sven Gothel Date: Fri Apr 28 11:16:51 2023 +0200 [PMV]Matrix[4f]: Clarify 'mulVec[34]f' in-place arg properties, add pure in-place variant and use it in PMVMatrix dropping temporary commit b4b6061918d73bce53f5bcc4faf994b8a42c2c7d Author: Sven Gothel Date: Fri Apr 28 11:14:40 2023 +0200 Vec[234]f: Add 'max' and 'min' function commit 2aae33b94cea15b2fc0c54479277611c67cdaf13 Author: Sven Gothel Date: Thu Apr 20 22:00:11 2023 +0200 GraphUI GraphShape: createGLRegion() -> updateGLRegion(), called by addShapeToRegion() impl to utilize OutlineShape -> GLRegion ctor w/ proper buffer-size This way we avoid unnecessary buffer growth and allow creation of 'always' fitting buffer sizes. +++ Update or freshly create the GLRegion, while allocating its buffers with given initial `vertexCount` and `indexCount`. Method shall be invoked by the addShapeToRegion(GLProfile, GL2ES2) implementation before actually adding the OutlineShape to the GLRegion. addShapeToRegion(GLProfile, GL2ES2) is capable to determine initial `vertexCount` and `indexCount` buffer sizes, as it composes the OutlineShapes to be added. updateGLRegion(GLProfile, GL2ES2, TextureSequence, OutlineShape) maybe used for convenience. In case GLRegion is `null`, a new instance is being created. In case the GLRegion already exists, it will be either cleared if the GL2ES2 `gl` instance is not `null` or earmarked for deletion at a later time and a new instance is being created. commit c21082a5d7caf0ae6e29144358b4b4a1eafec019 Author: Sven Gothel Date: Thu Apr 20 21:48:15 2023 +0200 Graph GLRegion/TextRegionUtil: Enhance pre-determination of buffer-size, increase default initial 16->64 (unsued) - Region.countOutlineShape(..) now returns unpatched 3*triangle value for indices, avoiding grow - TextRegionUtil.addStringToRegion() uses countStringRegion(..) per default - Added GLRegion.create(.., OutlineShape) for convenience, using Region.countOutlineShape(..) - Refined API doc - commit a251f5734cc1f5c907f239c3ca3a4f1d4c262058 Author: Sven Gothel Date: Thu Apr 20 21:39:21 2023 +0200 Graph OutlineShape.get{Outline->}VectexCount() renamed commit 97751b036e945fc3afe5e46a6a0b5f96d2b9698b Author: Sven Gothel Date: Thu Apr 20 21:37:27 2023 +0200 GLArrayDataClient: Refine API doc for grow*() and reserve() commit fad6cd0cc8033b6ef1ee16998cccd0d756030147 Author: Sven Gothel Date: Thu Apr 20 04:39:30 2023 +0200 GraphUI Button.createGLRegion(): Pre-calc Region buffer size for BaseButton (16) + Label-Text to avoid buffer grow commit 593b9c6360fd32fdca7d4e3da71525be15157726 Author: Sven Gothel Date: Thu Apr 20 04:18:27 2023 +0200 Graph GLRegion*: Utilize interleaved GLSL buffers for vertices, curveParams and the optional colors (GPU effeciency and performance; Increased CPU buffer growth performance) Besides simplification, interleaved GPU memory boosts - effeciency - performance Since only one underlying backing buffer on the CPU (host) has to be managed, it also increases buffer growth performance. commit 8041c69644acb5bd68bb6404ba8744163e8f2a30 Author: Sven Gothel Date: Thu Apr 20 04:13:14 2023 +0200 GLArrayDataServer.addGLSLSubArray(): Return (actual) GLArrayDataWrapper instead of just GLArrayData interface, exposing and allowing mutable access to attribute location for interleaved sub-arrays commit 736d7a18f3e25744a31f85acedbd5b417f073afe Author: Sven Gothel Date: Wed Apr 19 20:56:34 2023 +0200 Graph VBORegion2P*.renderVBO(): Add comment on BITHINT_GLOBAL_DEPTH_TEST_ENABLED usage -> To be investigated. commit 920efa82bf88a30b1180687955b175fc9c3abc1d Author: Sven Gothel Date: Wed Apr 19 20:55:36 2023 +0200 Graph [GL]Region: Use small initial indices/vertices count (640 -> 16), since (huge) text glyph gets always pre-calculated. Region.countOutlineShape() indices ceiling raised from 60% to 90% of vertices, otherwise gets exceeded too often later on. commit eaa7891dbd430a9fe04f7b7d0e4e4764af4e6aa2 Author: Sven Gothel Date: Wed Apr 19 20:52:52 2023 +0200 Graph GLRegion: Consolidate pass-1 common data (indices, vertices, ..) and all related methods. Add growCount stat. commit c947fe21a0c62b4aa3b5af66e3109d9d50833d29 Author: Sven Gothel Date: Wed Apr 19 20:48:43 2023 +0200 Graph Region.addOutlineShape(): Fix DEBUG_INSTANCE path, enable perf counter if disabled. commit 93fede2562cab03478bbc1e0df1846a42103c563 Author: Sven Gothel Date: Wed Apr 19 20:47:12 2023 +0200 Graph: Region.countOutlineShape(..) -> static, allow usage w/o instance; TextRegionUtil.addStringToRegion() grow region buffer w/ counting (as well); GLRegion.create(..) count + reuse create(.., size) static-ctor All supported string -> region method utilize pre-calc of size and growth! Before, GraphUI's Label0 used TextRegionUtil.addStringToRegion() and hence missed this optimization path. commit 7a2f6bfdfadcaba1d6fecc2389ba7b91e927104a Author: Sven Gothel Date: Wed Apr 19 20:39:10 2023 +0200 GraphUI {Round->Base}Button, denoting perpendicular or round corners (aka rectangle or oval shape) - Button + BaseButton setter also pass this for chaining - Button {twoPassLabel->label}ZOffset, investigate whether z-offset still required (not if blending is enabled!) - commit 18c405bb970d34cbdeef4af9fa06e612d5edbffb Author: Sven Gothel Date: Tue Apr 18 08:25:50 2023 +0200 Graph Font.getGlyphShapeBounds(): Use variant w/ 2 temp AffineTransform matching getGlyphBounds() commit 73bd9a33835b37b542765198f59a105431569fa7 Author: Sven Gothel Date: Tue Apr 18 08:24:53 2023 +0200 GraphUI Test: Have TestTextRendererNEWT21's FontViewListener01 use 8mm/cell to match old screenshots for regression test. No rendering regressions w/ last Graph changes found. commit 70d2b056e69562e83156d0435208be8124f2ff86 Author: Sven Gothel Date: Tue Apr 18 05:45:24 2023 +0200 GraphUI: Add BoxLayout and Margin, todo: Have GridLayout properly use Gap w/ Padding and alignment (Margin?) (CSS alike) commit 3ecba411d2677beee1996ebe9f3017c3fa3ef69e Author: Sven Gothel Date: Tue Apr 18 05:43:24 2023 +0200 GraphUI Padding: Use CSS alike ctor semantics, hence swizzle ctor arguments commit 84ef03374eb1ebef08c2bd5c764a45f9ad21cec1 Author: Sven Gothel Date: Tue Apr 18 05:27:42 2023 +0200 Graph OutlineShape.checkOverlaps(): Test overlap first to drop overlaps.contains(..) test commit f4bf997e5d9efcf299ef871030e7faf58f5b0289 Author: Sven Gothel Date: Tue Apr 18 05:26:06 2023 +0200 VectorUtil: Fix isVec3InTriangle3(..) testing p1, p2 and p3 commit c65c750e032118f229050ff8e834961264ed0591 Author: Sven Gothel Date: Tue Apr 18 05:15:16 2023 +0200 Graph + GraphUI: Consolidate Vertex: Drop SVertex and factory, use Vec[234]f instead of float[] and remove unused VectorUtil methods After Matrix4f consolidation and proving same or better performance on non array types, this enhances code readability, simplifies API, reduces bugs and may improve performance. GraphUI: - Have RoundButton as a functional class to make a round or rectangular backdrop, i.e. impl. addShapeToRegion() via reused addRoundShapeToRegion() commit cd845589eea6c7773007e013bd5f2f37242cbe1a Author: Sven Gothel Date: Tue Apr 18 04:39:07 2023 +0200 GraphUI Demos: Move GraphUIDemoArgs to sub-package util commit 6259e407e07b1a2f51dc10eaecacc5f2aedef389 Author: Sven Gothel Date: Fri Apr 14 18:25:23 2023 +0200 GraphUI Demo FontView01: Add font-name and selected glyphID to screenshot filename (documentation) commit a798d6bcbdccebe58d3a46ce07aedb574a15ef51 Author: Sven Gothel Date: Fri Apr 14 18:17:59 2023 +0200 GraphUI Demo FontView01: Add screenshot per selected Glyph commit 92764721a1705e68c0dbf2fe77b22ded26e2f9b4 Author: Sven Gothel Date: Fri Apr 14 18:01:51 2023 +0200 GraphUI Demo FontView01: Separate general font metrix (height, line-height) from actual Glyph metrix commit 57fb1fd99b5f0cc08b4e900fb2ce7c4d76351e63 Author: Sven Gothel Date: Fri Apr 14 17:54:59 2023 +0200 GraphUI Demo FontView01: Add 'infoGrid' w/ GlyphShape (-> DAG SG reusing instance) + details in text, active via mouse-click The GlyphShape instance will be reused in this use-case, i.e. once in the 'mainGrid' and if selected, in the 'infoGrid'. This also demos our DAG capability. Further textual details are also shown in the text label. commit dfae4e3d9a171d2bba62d828ef4b5ce3980f90a7 Author: Sven Gothel Date: Fri Apr 14 17:51:50 2023 +0200 GraphUI Group.drawImpl0(): Copy List to array and sort using Shape.ZAscendingComparator - fixes z-order issue, as we shall do same approach as in Scene.display() - fixes mutated container issue if a Shape gets removed or added to original List commit 64c95ce8d90d3b488fa5909603321b377cae7f9f Author: Sven Gothel Date: Fri Apr 14 17:49:55 2023 +0200 GraphUI Container.removeShape(..): Return removed Shape, add removeShape(index) variant; Group.(add|remove)Shape(..) markShapeDirty() to recompute bbox and layout. commit a31c3487bebdded597ff8a76b48399ae5691f843 Author: Sven Gothel Date: Fri Apr 14 17:46:30 2023 +0200 Typecast Font.getGlyph(..): Fix Glyph case w/ 0 getOutlineVectexCount() -> isWhiteSpace = true, use emptyShape commit ac4e63b87cc311004de65230688911df538f0866 Author: Sven Gothel Date: Fri Apr 14 17:45:23 2023 +0200 Typecast Font: Add API doc for getLineHeight(), remove unused Vec3f import commit 7d4e3a072c4aa8ef3745fa968b3e563064d83e27 Author: Sven Gothel Date: Fri Apr 14 17:44:51 2023 +0200 Graph OutlineShape: Add getOutlineVectexCount(), i.e. total vertex count of all Outlines commit 3d0f8a7cd720801c6f247c38c95df556a10fff27 Author: Sven Gothel Date: Fri Apr 14 17:43:55 2023 +0200 Typecast Font.Glyph: Expose isUndefined(), i.e. name == ".notdef" commit e4bddd1682233257a20eb73e22b068d5d4694860 Author: Sven Gothel Date: Fri Apr 14 17:42:57 2023 +0200 Typecast: Expose (new) getGlyphCount(): GlyfTable.getSize() -> (OTFont,Font).getGlyphCount() commit be865f7fdb672ce41110231ba71903671942268b Author: Sven Gothel Date: Fri Apr 14 17:39:58 2023 +0200 Typecast GlyfTable: Use `final` qualifier (cleanup) commit 5b85091196a128c2d68258ed19f1d8d1726a05d8 Author: Sven Gothel Date: Fri Apr 14 07:10:48 2023 +0200 GraphUI Demo/Test: FontView[Listener]01: Use 10 'mmPerCell', Monitor resolution independent for display same size. commit 041a03d0619f84c19daf57745f6dd27f4ce17539 Author: Sven Gothel Date: Fri Apr 14 06:32:22 2023 +0200 GraphUI Tests: Add TestTextRendererNEWT21 using FontViewListener01 (like FontView01 demos) rendering a grid of each glyph for better validation for many fonts and renderModes/sampleCount commit 4b6a5a7a816acb03cc8f1cbb4a9571447f80eef2 Author: Sven Gothel Date: Fri Apr 14 06:31:04 2023 +0200 GraphUI Demo FontView01: Use full window size if grid is not otherwise defined and scale group accordingly commit 34e5631c701f2e45b733dc26a5899651a3d5e0c5 Author: Sven Gothel Date: Fri Apr 14 06:29:53 2023 +0200 Graph Unit Tests: Minor edits: Wait for GLRunnable done on screenshot, ... commit 2209e1bdd5741913ea11fffd0a9bca9b2d18e83f Author: Sven Gothel Date: Fri Apr 14 06:28:52 2023 +0200 GraphUI Demos: Use new Scene.screenshot(.. screen.nextScreenShotFile(..)) commit 94e58738b8f7aa4db46081ab6f96d5f16e2b681e Author: Sven Gothel Date: Fri Apr 14 06:26:58 2023 +0200 GraphUI Shape.validate(*): Return this for chaining commit 582614bf3c1e0bac4ecb2689410c9673838e62c4 Author: Sven Gothel Date: Fri Apr 14 06:26:31 2023 +0200 GraphUI Scene: Use getRenderModeString(..) w/ sample-counts where applicable, restructure screenshot(..) by using nextScreenshotFile(..) - all using default tech representation commit beb4a2d910c4534ed10dfbb9a895acb89ed54822 Author: Sven Gothel Date: Fri Apr 14 06:23:58 2023 +0200 Graph TypecastFont: Avoid PostTable (out-of-bounds) for glyph_name when not even a Glyph was mapped to the ID commit 401440e5466a0d180d5d0e563ed474f4c23d839c Author: Sven Gothel Date: Fri Apr 14 06:22:52 2023 +0200 Graph Region: Add NORM_RENDERING_BIT (0) for better documented usage; Add getRenderModeString(renderModes, graphSampleCount, fsaaSampleCount) for unified tech representation commit 0017e5f6e7e8410d566dcefd9f42ffd0d4fc61e7 Author: Sven Gothel Date: Thu Apr 13 06:29:16 2023 +0200 GraphUI Scene.screenshot(): Add convenient variant to be executed on-display call. FontView stays open and issues a screenshot. commit 823fe11a49ac2160da86cdf894c84efa9fb1ae2c Author: Sven Gothel Date: Thu Apr 13 06:00:54 2023 +0200 GraphUI Demos: Adding prelim FontView01, which may become a 'little FontForge' ;-) commit aca5b9b176f3c3393d8c7666a252488d44b18f2e Author: Sven Gothel Date: Thu Apr 13 05:41:01 2023 +0200 GraphUI GridLayout: Also adjust potential bottom-left delta when centering shape to cell (like GlyphShape w/ underline) commit c1ad62f886d135932280270933f14fe4433b84a9 Author: Sven Gothel Date: Thu Apr 13 05:40:18 2023 +0200 GraphUI Shape: Add onClicked(..) commit a832ea9863f4479085c46eb43f5c79c50b0dc518 Author: Sven Gothel Date: Thu Apr 13 05:39:57 2023 +0200 GraphUI Group: Avoid additional shapes-loop w/o layouter commit 05d1b20c611bbc15134790235f2cfb2a323c3198 Author: Sven Gothel Date: Thu Apr 13 05:39:17 2023 +0200 GraphUI Rectangle: Construct shape w/ 0/0 bottom-left origin as recommended by Shape spec commit eabb01bcf5ea4b10431d9b2b58e35bb5ed49b1e6 Author: Sven Gothel Date: Thu Apr 13 00:32:51 2023 +0200 GraphUI Demos: Fix var-name typo, its velocity .. or how to propagate a typo from an initial test case to all of 'em ;-) commit 6a0ac90182efba40b0e6dab8f6390898aced70e8 Author: Sven Gothel Date: Wed Apr 12 19:20:24 2023 +0200 GraphUI GridLayout: Functional Grid Layout w/ Padding, demo'ed in UISceneDemo20 with button Groups All layout magic is simply performed in Group.Layout.layout(..) @ validate, incl. updating the bounding box to have the padding included. This demonstrates GraphUI's capability to be used with correct layout, i.e. its pure matrix based position, scale and rotation. commit 92ec47e74eef3ba47627b04ddf78996fa3a2296f Author: Sven Gothel Date: Wed Apr 12 19:07:27 2023 +0200 GraphUI TreeTool: Iterate from start to end (not vice versa), eliminating potential side-effects - fixing forSortedAll(..) commit 3224346312357430eeb7af3f561e85f9695870b6 Author: Sven Gothel Date: Wed Apr 12 19:05:10 2023 +0200 Graph/Math: Cleanup toString(), spacing and use System.lineSeparator() commit 2fbaa25d70854de2857d9fa20ac6a34c294a4222 Author: Sven Gothel Date: Wed Apr 12 18:56:29 2023 +0200 GraphUI: Return this on setter/modifier methods for chaining commit 1e74a2d782c2f6e79c14e42df0b2acbe17271662 Author: Sven Gothel Date: Wed Apr 12 06:53:55 2023 +0200 GraphUI Demos: Use GraphUIDemoArgs for UISceneDemo1[01] commit 8cbcdc3589bbb1f30b79b4c30fb1d8180e5c3b36 Author: Sven Gothel Date: Mon Apr 10 06:14:04 2023 +0200 GraphUI UISceneDemo03b: Action with the Glyph Group Container: Rotate auto and w/ scroll-wheel (or zoom if alt is pressed) commit 3a0aadb747fe3a62799278fc97cf777662851a94 Author: Sven Gothel Date: Mon Apr 10 06:12:37 2023 +0200 GraphUI UISceneDemo03: Use Group as a Container to hold all Glyphs and have them no more interacting when arrived. Play: Drag 'em ;-) commit c71cb787f99d2fe367aaa7eaa03c8d2ba9042ac1 Author: Sven Gothel Date: Mon Apr 10 06:11:11 2023 +0200 GraphUI TreeTool: For all forAll*(): Allow acting upon Container Shape, i.e. 1st visit Shape, only therafter (if false) traverse into Container This is required to allow actions on a Container itself. commit b421ffb2eceba36037add192e786ef75a152aa99 Author: Sven Gothel Date: Mon Apr 10 06:09:00 2023 +0200 GraphUI Scene.pickShape(): Consider isInteractive() most early in visitor() before gluUnProjectRay(..) commit 5406ac7c12e3aa4be6475f4fb12eca03a188c2f4 Author: Sven Gothel Date: Mon Apr 10 06:07:28 2023 +0200 GraphUI Shape: Refined toString(), add onToggle(Listener), at toggle() only markStateDirty() if toggleable commit 8b7a44c486662a4f3088fcac4babdec0c553d7b7 Author: Sven Gothel Date: Mon Apr 10 06:06:13 2023 +0200 GraphUI: Group is non-interactive per default -> setInteractive(..) commit 05de3b0797ea2e41462a3a419bccc998c77a30dd Author: Sven Gothel Date: Mon Apr 10 06:05:41 2023 +0200 GraphUI: Container (Group, Scene): Add removeAllShapes() and expose frustum-culling get/set commit df60909c70b5dba10c9734e0c26d31e0649f4309 Author: Sven Gothel Date: Sun Apr 9 08:26:57 2023 +0200 Matrix4f.mapWin*(): Drop unused temp matrices, map*() returns false on invPMv null; PMVMatrix: Make Mvi, Mvit optional at ctor, add user PMv and PMvi - used at gluUnProject() .. Matrix4f.mapWin*() variants w/ invPMv don't need temp matrices, they also shall handle null invPMv -> return false to streamline usage w/ PMVMatrix if inversion failed. PMVMatrix adds user space common premultiplies Pmv and Pmvi on demand like Frustum. These are commonly required for e.g. gluUnProject(..)/mapWinToObj(..) and might benefit from caching if stack is maintained and no modification occured. PMVMatrix now has the shader related Mvi and Mvit optional at construction(!), so its backing buffers. This reduces footprint for other use cases. The 2nd temp matrix is also on-demand, to reduce footprint for certain use cases. Removed public access to temporary storage. +++ While these additional matrices are on demand and/or at request @ ctor, general memory footprint is reduced per default and hence deemed acceptable while still having PMVMatrix acting as a core flexible matrix provider. commit 003eb8ca1f296f287dc3d224fa19781705e10dd9 Author: Sven Gothel Date: Sat Apr 8 20:23:09 2023 +0200 PMVMatrix: Expose temporary storage (w/o side-effects) for efficiency; GraphUI.Shape: Efficiently reuse matPMv and temporary PMVMatrix storage Reuse PMv in Shape.getSurfaceSize() and Shape.winToShapeCoord(), for the latter we invert the reused PMv for mapWinToObj (i.e. UnProject). commit fc93a9aca67d0c4a11f70601743f58723a7fddd3 Author: Sven Gothel Date: Sat Apr 8 20:18:26 2023 +0200 GraphUI Demos: Use GraphUIDemoArgs commit f0ded6e338cbc23f90c53e43673ae774580d9cb0 Author: Sven Gothel Date: Sat Apr 8 19:51:11 2023 +0200 GraphUI: Adjust for rotation: Drag-resize and -move (flip x- and/or y-axix), as well as getSurfaceSize(..) (use absolute size) Tested w/ UISceneDemo01b and UISceneDemo03, where you now can pick any moving glyph at any rotation and drag it. commit c65c15281a887dd17308f4c73933188dc13261a0 Author: Sven Gothel Date: Sat Apr 8 02:41:00 2023 +0200 README.md: Add blog + 2 more individuals (total +3 today) commit 9a0b3014428a6a9483abb02769637f76e4c8c728 Author: Sven Gothel Date: Sat Apr 8 02:28:23 2023 +0200 PMVMatrix API doc: Use `` to quote code since {@code } causes block-quoting w/ Doxygen. Doxygen uses markdown commit 3d5d25b8f51f810f5350b63ef34e5aff7fb73bd3 Author: Sven Gothel Date: Sat Apr 8 02:27:20 2023 +0200 Doxygen: Refine javapublic + javaall, update README.md and www/index.html text commit 30bcae5642cb954efb0af07a5f5922f5eb7ca29a Author: Sven Gothel Date: Fri Apr 7 10:43:00 2023 +0200 Adding experimental Doxygen target 'doxygen.public' .. (WIP) Must be manually incoked now, is working but currently takes everything (dot graph takes its good time). Benefits - Working nice html docs - UML and collab diagrams - Gets all tests and demos referenced, user can easily look it up - Source is also included, nice browsing The current setup might be too big .. we will see. commit f6e4b4afcec4425f266536d02fd0487e383aa1c4 Author: Sven Gothel Date: Fri Apr 7 09:23:20 2023 +0200 VBORegion2P*ES2: Just instantiate SyncMatrices4f16 in place, drop local ref commit 9eb42eded3a67cb6afad862d64b6c6dd9c4aa5a3 Author: Sven Gothel Date: Fri Apr 7 08:47:13 2023 +0200 LICENSE: Year range bump, update URL refs commit 84a6d63205ec49ddfb36b57fe2888425ecda3a5a Author: Sven Gothel Date: Fri Apr 7 08:46:18 2023 +0200 PMVMatrix rewrite using Matrix4f, providing SyncMatrix4f* for GLUniformData; Utilize Vec3f, Recti, .. throughout API (Matrix4f, AABBox, .. Graph*) Big Easter Cleanup - Net -214 lines of code, despite new classes. - GLUniformData buffer can be synced w/ underlying data via SyncAction/SyncBuffer, e.g. SyncMatrix4f + SyncMatrices4f - PMVMatrix rewrite using Matrix4f and providing SyncMatrix4f/Matrices4f to sync w/ GLUniformData - Additional SyncMatrix4f16 + SyncMatrices4f16 covering Matrix4f sync w/ GLUniformData w/o PMVMatrix - Utilize Vec3f, Recti, .. throughout API (Matrix4f, AABBox, .. Graph*) - Moved FloatUtil -> Matrix4f, kept a few basic matrix ops for ProjectFloat - Most, if not all, float[] and int[] should have been moved to proper classes - int[] -> Recti for viewport rectangle - Matrix4f and PMVMatrix is covered by math unit tests (as was FloatUtil before) -> save Passed all unit tests on AMD64 GNU/Linux commit 10b60e10ece3cbc3e0b8a68ac73229371530e0ba Author: Sven Gothel Date: Wed Apr 5 23:36:25 2023 +0200 Matrix4f Perf: Enhance invert(), Drop (test) load on Matrix4f.mul(Matrix4f) for fair and realistic numbers - Both mul() ops faster than FloatUtil Enhanced invert() of Matrix4f* and FloatUtil: Use 1f/det factor for burst scale. Enhanced Matrix4f.invert(..): Use factored-out mulScale() to deliver the scale, giving a good 10% advantage on aarch64 and amd64. Brings Matrix4f.invert(..) on par w/ FloatUtil, on aarch64 even a 14% advantage. +++ TestMatrix4f02MulNOUI added an additional Matrix4f.load() to the mul(Matrix4f) loop test, which surely is an extra burden and not realistic as the mul(Matrix4f, Matrix4f) and FloatUtil pendants also don't count loading a value. Matrix4f.mul(Matrix4f) shall be used to utilize an already stored value anyways. Matrix4f.mul(Matrix4f) didn't really exist in FloatUtil. Same is true for Matrix4f.invert(), re-grouped order, i.e. pushing the non-arg variant last. +++ Revised performance numbers from commit 15e60161787224e85172685f74dc0ac195969b51 AMD64 + OpenJDK17 - FloatUtil.multMatrix(a, a_off, b, b_off, dest) is considerable slower than all - Matrix4f.mul(a, b) roughly ~10% faster than FloatUtil.multMatrix(a, b, dest) - Matrix4f.mul(b) roughly ~18% faster than FloatUtil.multMatrix(a, b, dest) (*) - Matrix4f.invert(a) roughly ~ 2% faster than FloatUtil.invertMatrix(..) - Matrix4f.invert() roughly ~ 4% slower than FloatUtil.invertMatrix(..) (*) - Launched: nice -19 scripts/tests-x64.sh RaspberryPi 4b aarch64 + OpenJDK17 - FloatUtil.multMatrix(a, a_off, b, b_off, dest) is considerable slower than all - Matrix4f.mul(a, b) roughly ~ 9% faster than FloatUtil.multMatrix(a, b, dest) - Matrix4f.mul(b) roughly ~14% faster than FloatUtil.multMatrix(a, b, dest) (*) - Matrix4f.invert(a) roughly ~14% faster than FloatUtil.invertMatrix(..) - Matrix4f.invert() roughly ~12% faster than FloatUtil.invertMatrix(..) (*) - Launched: nice -19 scripts/tests-linux-aarch64.sh (*) not a true comparison in feature, as operating on 'this' matrix values for one argument, unavailable to FloatUtil. Conclusion - Matrix4f.mul(..) is considerable faster! - Matrix4f.invert(..) faster, esp on aarch64 And additional Matrix4fb tests using float[16] similar to FloatUtil also demonstrates less performance compared to Matrix4f using dedicated float fields. commit 24113f8e3452df8c8bb9e6136fa12bfed3bcc312 Author: Sven Gothel Date: Wed Apr 5 10:19:34 2023 +0200 AABBOX: Revert API doc copy/type errors from commit 15e60161787224e85172685f74dc0ac195969b51 commit 339a246403b1eee3c8dbfda89943a80c2b855c85 Author: Sven Gothel Date: Wed Apr 5 10:06:44 2023 +0200 TestAWTCardLayoutAnimatorStartStopBug532: Suppress warnings commit 1eb9d91bbf5d24a02c4d9e98501ff51eb7ecdcd0 Author: Sven Gothel Date: Wed Apr 5 10:06:26 2023 +0200 GraphUI: Adopting Vec*f API; Adding Group; Scene + Group are Container, 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. commit 15e60161787224e85172685f74dc0ac195969b51 Author: Sven Gothel Date: Wed Apr 5 09:42:28 2023 +0200 Math: Complete Matrix4f w/ Vec[234]f and adopt it throughout Quaternion, 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 .. commit 603233b19373bfa157dd033132bff809af6a123f Author: Sven Gothel Date: Fri Mar 31 11:09:26 2023 +0200 GraphUI: Use Shape.ZAscendingComparator in Scene, to be reused across typs commit 4f32f3aba62a73cafecec8af461cff4d0d475882 Author: Sven Gothel Date: Fri Mar 31 11:06:44 2023 +0200 GraphUI: Relocate com.jogamp.graph.ui.gl.* -> com.jogamp.graph.ui.*, resolve GL/VK abstraction at a later time differently Actual GPU rendering toolkit dependency can be abstracted differently, i.e. GPU <- { GL, VK } etc. commit 759a381963476e2e64b7afba0d6ef2bafeb35417 Author: Sven Gothel Date: Thu Mar 30 23:32:05 2023 +0200 Graph Shader: Complete the USE_DISCARD logic avoiding output set after discard, even though technically allowed (ignored after discard) commit 6af985dc6d2c848a899bfea4f82540e8db181988 Author: Sven Gothel Date: Thu Mar 30 21:08:00 2023 +0200 GraphUI Shape: DragZoom: Allow resize_sxy_min down to 1/2%, need to find a 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 ;-) commit 4f2e451d9f6d8edadc1dc392d3831d3b25675693 Author: Sven Gothel Date: Thu Mar 30 20:55:53 2023 +0200 GraphUI: Fix debug-box and allow API access in Shape (off, thickness fractional to box size) and Scene for all Shapes. commit 68092a50c3b5d7fca72b1b9dc01d59b4444bcefb Author: Sven Gothel Date: Thu Mar 30 20:50:44 2023 +0200 GraphUI Demos: Cover more std arguments via GraphUIDemoArgs commit 7eb31a920506f7c25ed3ce79ac44dcf06d3fca82 Author: Sven Gothel Date: Thu Mar 30 20:48:20 2023 +0200 Graph GLSL: Enable 'discard' in fragment shader w/o 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. commit adb1373821d60394343b6716a6d0ee179f875a36 Author: Sven Gothel Date: Thu Mar 30 05:32:55 2023 +0200 GraphUI Demo: UISceneDemo20 use Scene.screenshot(..), drop own code commit 783e052fc82c188342873c64652dec3a3d505a6e Author: Sven Gothel Date: Thu Mar 30 05:28:15 2023 +0200 GraphUI Demo UISceneDemo03: Add 1 space padding to demo-text, make screenshots, add launch screen (visible @ '-wait') commit 655993caf745fc31e1d389b660b650b8f8c7d4f5 Author: Sven Gothel Date: Thu Mar 30 05:25:55 2023 +0200 GraphUI Scene: Add screenshot(..) method for convenience commit d959e28119a5a973968d47a988d3dd4b6320db87 Author: Sven Gothel Date: Thu Mar 30 04:41:51 2023 +0200 GraphUI: Add GlyphShape representing a single Font.Glyph as a GraphShape; 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 commit 901df212f75db8cf51349f53abeaed6ef62b61d3 Author: Sven Gothel Date: Thu Mar 30 04:18:56 2023 +0200 GraphUI Shape.setTransform(..): Scale before rotate to preserve target-size in rotation commit f569ac9222125372b97bd73aa5cb5ad05a4f7da9 Author: Sven Gothel Date: Thu Mar 30 04:09:00 2023 +0200 GraphUI Shape: Refine API doc commit c3ae7d6b6ecc98146c2c011aac2edb75af5f928f Author: Sven Gothel Date: Thu Mar 30 04:02:24 2023 +0200 Graph*: API doc refinement commit 67cfcbab5497401e15c92746858974c444a0c155 Author: Sven Gothel Date: Thu Mar 30 04:01:29 2023 +0200 Vec2f, Vec3f: Return this @ set(..), add set(float[]) and add(float, ..) commit 6e6ddc8bf13f52c1aa99232b89b614ada48966d7 Author: Sven Gothel Date: Tue Mar 28 13:02:00 2023 +0200 README: Shorten sponsor text commit 552ae194c5766242e1f00cfa221d24c1412c0bd4 Author: Sven Gothel Date: Tue Mar 28 13:01:01 2023 +0200 WWW: Remove 'Sponsor' button, annoying and no feedback commit 943a656c155bcba21e63059ef5d59be7198053c8 Author: Sven Gothel Date: Tue Mar 28 05:05:23 2023 +0200 GraphUI Shape: Rename rotOrigin -> rotPivot commit 00e38d20592859100353f99407ba44fa5659603b Author: Sven Gothel Date: Tue Mar 28 05:04:49 2023 +0200 GraphUI Shape.setTransform(): Fix !sameScaleRotatePivot && hasRotate && !hasRotPivot: Don't scale pivot back from center-pivot, same as w/ hasRotPivot A copy & paste bug .. commit c315d5be3468514322a619cdb20723bb0bc574f7 Author: Sven Gothel Date: Tue Mar 28 04:47:31 2023 +0200 GraphUI Scene: Added API doc args commit ad6349be75698cc2aba19e3cade426e093f58f9c Author: Sven Gothel Date: Tue Mar 28 04:47:09 2023 +0200 Graph Font: TypecastFont: getGlyphBoundsFU() + processString(): If isWhitespace() continue w/ AABBox resize, but don't earmark this (whitespace) glyph for next left_glyph (kerning). commit e7e49f80af493b5bed7ea29fbc7fb2c7155e1d93 Author: Sven Gothel Date: Tue Mar 28 04:43:49 2023 +0200 GraphUI Demo UISceneDemo03: Add kerning and compensate on label 0/0 origin using Glyph bounds minY() commit 1fbace65be988e28c463b3c85d8646aa512b0480 Author: Sven Gothel Date: Tue Mar 28 04:42:14 2023 +0200 GraphUI Demo UISceneDemo02: Use em-sized label w/ scale. commit 55b552bb87fb1fefcf53dd7784a53d605969de96 Author: Sven Gothel Date: Tue Mar 28 04:41:10 2023 +0200 GraphUI: Decouple GraphShape from Shape, i.e. allow future Shape w/o Graph/GLRegion commit 34632c59b5f664c41ef52a4abb9e3e1b484657d4 Author: Sven Gothel Date: Tue Mar 28 02:57:48 2023 +0200 GraphUI Button: Simplify addShapeToRegion() commit fd66215f7e1e766d906234b978b0ad50cafc4716 Author: Sven Gothel Date: Tue Mar 28 02:54:36 2023 +0200 GraphUI Label: Add getScaledLineHeight() and refine setFontScale(), i.e. only act and markDirty() on change commit 6104bbdce6029d1e3c39aaa5b0f86d9f5ac5965d Author: Sven Gothel Date: Tue Mar 28 02:53:00 2023 +0200 GraphUI Label: Remove glyphVisitor's debug code (exception handling) commit d6fbb827781a349892d215c6854202f6f24f78e5 Author: Sven Gothel Date: Tue Mar 28 02:50:46 2023 +0200 GraphUI: Label: Enforce bottom-left origin @ 0/0 for good drag-zoom experience (working sticky edge) commit 5b86483177ec97b30cb82c337483be376e0a1a8e Author: Sven Gothel Date: Tue Mar 28 02:49:14 2023 +0200 GraphUI: Shape: Fix setTransform(): Scale around center and rotate around pivot-point or center; Assume Shape origin to be bottom-left for drag-zoom. Removes questionable scale-hack. commit a88a261a6cc78977224c9311d8383ead881d98bc Author: Sven Gothel Date: Mon Mar 27 15:51:59 2023 +0200 GraphUI: Shape.dispatchMouseEvent(): Rename dsx/dsxy -> sx/sy as they denominate whole scale-factor, not their delta commit 9bb1c269bc64d385e2b584c34f842990f72ad31d Author: Sven Gothel Date: Tue Mar 28 02:41:48 2023 +0200 Graph RenderState: Add setColorStatic(float[]) variant commit 114cc7be0f43a6cf2540caa0ed47948d7cade54f Author: Sven Gothel Date: Tue Mar 28 02:41:30 2023 +0200 Graph Font.GlyphVisitor*: Pass 'char symbol' to visitor, passing full text-processing information commit f7125f6bb2db418064a170ae42466e13b8f51f70 Author: Sven Gothel Date: Tue Mar 28 02:39:49 2023 +0200 Graph Font.Glyph: Add getFont() (the owner) commit 143b67f063d4a3a0f51806355bca23ef4dc0dc3b Author: Sven Gothel Date: Mon Mar 27 14:17:28 2023 +0200 GraphUI Demos: Remove unused GPUUISceneTextAnim01 commit c9f1d8bb7a564100c8a1084bc8d914f2f4e5e3d2 Author: Sven Gothel Date: Tue Mar 28 02:37:47 2023 +0200 Graph FontScale: Simplify names, fix API doc and add unit test commit 9b91a24ee6f383ca53556c466d84baf56f16940b Author: Sven Gothel Date: Mon Mar 27 14:12:01 2023 +0200 Graph Font: Rename getBBox*() -> getBounds*() to preserve a common semantic name commit 0cea1ffbf415d40b9cff582b15fb5b736ae42580 Author: Sven Gothel Date: Mon Mar 27 13:59:47 2023 +0200 Graph: Fix Font.getGlyphBoundsFU(): FU of advance is requested here. Regression from commit a5d593478afa2298282a0624b2490fde84c3a292 commit e0b096195bd5dd2670b026c972c44ea0b684b757 Author: Sven Gothel Date: Mon Mar 27 13:57:16 2023 +0200 Quaternion: Shorten toString() type name commit b01bfd38a4e3cea81aa6ea70ab7d5a59f827cee9 Author: Sven Gothel Date: Mon Mar 27 13:45:18 2023 +0200 WWW: Cleanup Featured Projects intro and have section links bold. commit 622b32d0ffd263bbd3ae0bd7e9fe57aefce728f1 Author: Sven Gothel Date: Mon Mar 27 13:39:46 2023 +0200 WWW: Add Games: Wakfu + Archipelago commit ab95624f85cf2ee5fa8d2753ed68597b221fc9c9 Author: Sven Gothel Date: Wed Mar 22 17:03:53 2023 +0100 GraphUI Demos: (Text) Type Animation ... commit 95ea4470e7a9dd79dd502db800333e350f311d3d Author: Sven Gothel Date: Wed Mar 22 17:02:32 2023 +0100 UISceneDemo0[01]: Useless minor editing (can't move animator lower as sadly used in our window dtor event handler) commit 089025825be32ba733313b8c2390223f14edb017 Author: Sven Gothel Date: Wed Mar 22 17:01:43 2023 +0100 Add Vec2f and Vec3f, to support a more simple OO vector-math usage, e.g. for animation etc Implementation borrowed my 'gfxbox2' C++ project and its layout from OpenAL's Vec3f. commit 9e4d575d7f7a9817cf11fa4e33504a379d271a21 Author: Sven Gothel Date: Wed Mar 22 16:59:15 2023 +0100 Graph: Remove OutlineShape.Visitor* as being replaced by Font.GlyphVisitor (We may ressurect them if needed for a future use case) commit a5d593478afa2298282a0624b2490fde84c3a292 Author: Sven Gothel Date: Wed Mar 22 16:55:04 2023 +0100 Graph Font Processing: Use Font.GlyphVisitor instead of OutlineShape.Visitor, allowing to use the Glyph (information). commit 960af62429aef3ec573a7f6fa3ed6b0f5552376f Author: Sven Gothel Date: Wed Mar 22 16:53:05 2023 +0100 Graph Font Processing: Produce a 'whitespace' Glyph w/ an OutlineShape (box) to allow better handling of such non-contour symbols. commit f1784eda1866181a1e008c2f935705bf7b0baeb6 Author: Sven Gothel Date: Wed Mar 22 11:11:14 2023 +0100 GraphUI Demos: Adopt to shapesSharpness -> oshapesSharpness rename commit 7d436c60c0eca056e1ee3aca57a022968888cbd7 Author: Sven Gothel Date: Wed Mar 22 11:10:15 2023 +0100 GraphUI Shape: Make access private where possible & reasonable, synchronize dirty and in draw(..) the whole dirty-validate() region.draw() commit f283aa2c7b64100de62a10c0e0aa48911956f222 Author: Sven Gothel Date: Wed Mar 22 11:07:38 2023 +0100 GraphUI Scene: getStatusText(..) drop unset values, be more semantic sensitive (msaa -> smsaa) commit 5bdc5f947353d59930609daad5e223764a1e12e4 Author: Sven Gothel Date: Wed Mar 22 11:06:23 2023 +0100 GraphUI Scene: Add removeShape*(GL2ES2..) variant w/ their destruction for convenience commit fbbdf8b82e159078274475c5013f2f1147b0a4d8 Author: Sven Gothel Date: Wed Mar 22 11:05:19 2023 +0100 GraphUI Scene: Add optional frustum culling (default: disabled) commit d025006b8d24382bad810070f4fa5368f66ff223 Author: Sven Gothel Date: Tue Mar 21 14:24:50 2023 +0100 GraphUI Shape.setTransform(): Remove 'wiggling' w/ origin, text issue came from Scene.PMVMatrixSetup bug, all shapes resize fine now. Scene.PMVMatrixSetup bug missed modelview initialition before gluUnProject(), fixed in commit 74e11bd9a49f61e49d3c73c4f9b87b4fb7fbaaf3. commit 74e11bd9a49f61e49d3c73c4f9b87b4fb7fbaaf3 Author: Sven Gothel Date: Tue Mar 21 14:16:00 2023 +0100 GraphUI: Fix Scene.PMVMatrixSetup impl: Setup modelview before using setPlanBox(..)'s gluUnProject(..) commit 1cbe45b9d7f21a751332d6f8dd948992e75dfe99 Author: Sven Gothel Date: Tue Mar 21 14:12:48 2023 +0100 GraphUI Scene: Move reshape() below init from in-between display() impls commit 033c96fc22912c48539c5473283455c0179543ef Author: Sven Gothel Date: Tue Mar 21 11:00:42 2023 +0100 GraphUI UISceneDemo20: Consolidate the actual implementation and main launcher to our new UISceneDemo naming series commit d4bab2edea41a67438a62c04074c2aad855bedcd Author: Sven Gothel Date: Tue Mar 21 10:38:14 2023 +0100 GraphUI UISceneDemo*: Stop animation loop if window got destroyed commit 7ae5fc44a1661f4bd800018ea8882fe62c884094 Author: Sven Gothel Date: Tue Mar 21 10:05:20 2023 +0100 NEWTEvent*.getEventTypeString(): Like MouseEvent, drop redundant leading type in returned string commit 701b19241319079552ffc0d77b8913fb2f28dcd7 Author: Sven Gothel Date: Tue Mar 21 09:50:14 2023 +0100 GraphUI UISceneDemo*: Add windowResized() callback to update window title showing current surfaceSize commit ed6b881ed3e1ac3c30f0d5329be08b77b82a70cb Author: Sven Gothel Date: Tue Mar 21 09:43:29 2023 +0100 Eclipse: Remove the CDT C/C++ Nature, since it breaks the Java type hierarchy lookup besides other things commit 989a20559ebaa387f8f253c8415e41f6da925d82 Author: Sven Gothel Date: Tue Mar 21 09:42:49 2023 +0100 GraphUI UISceneDemo*: Use lambdas for GLAutoDrawable.invoke(..) to reduce LOC GLAutoDrawable.invoke(..) API doc: Add semantics about GLRunnable return value. commit 59a7fdeb4ed36f0014ba1fdcc0ec144c04aaa2d5 Author: Sven Gothel Date: Tue Mar 21 09:33:06 2023 +0100 Graph: Cleanup Vertex.Factory referencing: Only bind to OutlineShape and use 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'. commit 8abe939c5132e4a58c4b9a6b31f0b1fd10734516 Author: Sven Gothel Date: Mon Mar 20 21:32:54 2023 +0100 GraphUI Shape/Label: Allow validate(..) w/o current GL context, used by e.g. Label.setText(..) and getBounds(), preparations for more animation. Hence Shape.validate(..) is now synchronized, avoiding parallel resource modding from render- and other animating thread. commit 118d754af34d6d475600e6747e01e950a6cf77cf Author: Sven Gothel Date: Mon Mar 20 20:48:44 2023 +0100 GraphUI Shape: Provide empty default implementation for clearImpl() and destroyImpl() commit 9a9309c7bf2b5edc27b5f84bee547c5bf0539010 Author: Sven Gothel Date: Mon Mar 20 14:23:01 2023 +0100 GraphUI Scene: Add getDefaultVertexFactory(), fix getRenderState() API doc (can't be null) commit af201b19064d2526743c89c218a51b0a3ee837c2 Author: Sven Gothel Date: Mon Mar 20 14:22:15 2023 +0100 GLArrayDataClient: Allow null buffer @ growIfNeeded(), removed from commit 90a95e6f689b479f3c3ae3caf4e30447030c7682 A null buffer is possible in case initialElementCount at ctor is <= 0 commit 16139461033dff906ab4dfcecb7b6da06174f222 Author: Sven Gothel Date: Mon Mar 20 14:21:24 2023 +0100 Rename UISceneDemo{02->10} commit 28656f9822ed0028095b1d60490c3ee56a1a9dce Author: Sven Gothel Date: Mon Mar 20 12:11:51 2023 +0100 GraphUI Label: Fix naming semantics: 'pixelScale' -> 'fontScale', i.e. font-scale factor, by which the em-sized type glyphs shall be scaled commit 0c22ce0ac52573195920e5aa957babe4b3a22296 Author: Sven Gothel Date: Mon Mar 20 12:02:24 2023 +0100 GraphUI Demos: Bring back GPUUISceneGLListener0A .. - Contrary to UISceneDemo0[01], here we - Call the Scene GLEventListener methods manually - Issue glClear* ourselves - Using own PMVMatrixSetup - gluPerspective like Scene's default - no normal scale to 1, keep distance to near plane for rotation effects. We scale Shapes - translate origin to bottom-left - Scale Button not by screen-size but Scene.getBounds() dimension, hence issue setupUI() from reshape() and not from init() - GLButton: Using additional view-rotation like UISceneDemo01 - Multi-line text labels resize issues are - Supposed sticky-edge is moving (Sticky-edge are the opposites of the picked drag point) commit 5bb9fa1ee0ec1acc6097b81f93f11a5dd263c870 Author: Sven Gothel Date: Mon Mar 20 11:54:14 2023 +0100 GraphUI UISceneDemo01: Stop rotating animation if GLButton animation is toggled off commit d73542248c51dfcfa6a23366a6797076cde48191 Author: Sven Gothel Date: Mon Mar 20 11:53:22 2023 +0100 GraphUI Scene: Add [add|remove]Shapes(Collection) .. for convenience commit 613253b9416b231eece0adbdebc50342cf578597 Author: Sven Gothel Date: Mon Mar 20 11:52:46 2023 +0100 GraphUI Shape.setTransform(): Fix center semantics (half size) and consider origin (resolves multi-line text resize issues) commit 0d7aa5218c36b291b2d24c8c9bb118b2a8d2e71a Author: Sven Gothel Date: Mon Mar 20 07:04:54 2023 +0100 GraphUI Scene: Move GLEventListener implementations reshape() and dispose() to the others, init(), display(). Ease review. commit 1cb97973a7403fe1b47665e8250bc568444301da Author: Sven Gothel Date: Mon Mar 20 06:40:30 2023 +0100 GraphUI MediaButton: Only mark region dirty if already exists commit b2a271e289047a7e5bba6c09540061c43527db3c Author: Sven Gothel Date: Mon Mar 20 06:20:23 2023 +0100 UISceneDemo02: The 'dirty' variant w/ listener (printf) attached commit 89ccd3bec5eab5323f14b8b62a9f722ec65f702e Author: Sven Gothel Date: Mon Mar 20 06:19:42 2023 +0100 UISceneDemo01: Use GLButton shape w/ animating and rotating gears and set up an own Scene.PMVMatrixSetup with a plane dimension of 100 commit 0b476231be5cf4a42e7030d7e0f88589811c1c88 Author: Sven Gothel Date: Mon Mar 20 06:18:31 2023 +0100 GraphUI Default Scene.PMVMatrixSetup: Scale (back) projection to have normalized plane dimensions, 1 for the greater of width and height commit 89d43b49537b021bbfe52ef8563ac9d9d7661534 Author: Sven Gothel Date: Mon Mar 20 06:16:40 2023 +0100 GraphUI Scene: Be quiet commit 253a91c252eed70edaee25cca3288cafa6de8071 Author: Sven Gothel Date: Mon Mar 20 06:16:16 2023 +0100 GraphUI GLButton: Add missing destroyImpl(..) to destroy the ImageSequence and FBO-GLAD commit ac53d2e06c14e808529d8e653a9ec6a1438acfc0 Author: Sven Gothel Date: Mon Mar 20 06:15:38 2023 +0100 Demos GearsES2: Expose view rotation vars and listener commit 8f9aedd75946fabfa56f3b58a097ab434a83f1d2 Author: Sven Gothel Date: Mon Mar 20 06:15:04 2023 +0100 GLOffscreenAutoDrawable: Remove unused import commit 5b901e32c3c9dc2e40c694add6c3c2b31c8d8a95 Author: Sven Gothel Date: Mon Mar 20 06:14:31 2023 +0100 Add FloatUtil.isZero(float) using FloatUtil.EPSILON commit 94c895bcf8a98218cf5dc7832f00212ce32945ec Author: Sven Gothel Date: Sun Mar 19 16:27:18 2023 +0100 Demo MovieSimple: Default to useOrigScale=false, enable @ main w/ -orig_scale commit a43869543093d0bbd154df7ea6908a5b53a8302e Author: Sven Gothel Date: Sun Mar 19 16:09:52 2023 +0100 GraphUI: Add UISceneDemo00 for linear animation in one main function; UISceneDemo01 simply provides shape drag-move and -resize commit 01d35625f848ed3a97fae750ff2e8928f9d6538a Author: Sven Gothel Date: Sun Mar 19 15:34:24 2023 +0100 GraphUI Shape win<->obj/shape mapping: Return actual int[] or float[] result or null on error instead of boolean to easy API usage commit 8eb70fb10a4f81c93dbc4ed12571a67ffbc1649a Author: Sven Gothel Date: Sun Mar 19 08:55:47 2023 +0100 GraphUI UISceneDemo01: Fix disposal, use windowDestroyed() WindowListener to stop animator commit 860c550033c46299460ae751e91ecc491abfe549 Author: Sven Gothel Date: Sun Mar 19 08:45:55 2023 +0100 GraphUI UISceneDemo01: Res independent Shape, in Scene attached to GLWindow showing simple linear Shape movement w/ listener attached commit 2ece7d9a2c9c176b5834f31e157548bca733bdb9 Author: Sven Gothel Date: Sun Mar 19 08:28:56 2023 +0100 Graph UI Shape: Remove debug println @ mouse drag release commit d8339b73322e31f9f6624137da30d53a626001c3 Author: Sven Gothel Date: Sun Mar 19 08:14:25 2023 +0100 Graph UI: Apply API changes to demos *WIP* (not all working yet, but compile clean) commit 37224b6c84a66788813856f806a727d73991f546 Author: Sven Gothel Date: Sun Mar 19 08:13:11 2023 +0100 Graph UI: Adopt Shape implementations to Shape API changes (simplification) commit 6c13d824a00eff448cef6bec7010e9c682df7d62 Author: Sven Gothel Date: Sun Mar 19 08:11:01 2023 +0100 Graph UI Shape: Fix move and resize via 1-pointer mouse drag: Need to apply scale on drag-delta, operating on scaled-model-viewpoint Further, on resize, we have different sticky edges for either bottom-right or bottom-left drag resize. commit a9910af82c46b0ea918f65444c87d130a684a103 Author: Sven Gothel Date: Sun Mar 19 08:07:45 2023 +0100 Graph UI Shape: Fix setTransform(): Take back unscaled-center 1st, then add back later (scaled); TODO: Add alignment features commit 32f7a476770d0a4ef853eab8f3c78a7ea801a180 Author: Sven Gothel Date: Sun Mar 19 08:06:01 2023 +0100 Graph Shape: Add onMove(Shape.Listener), allowing user to track Shape movement commit a81fff28e9380ebce877d974d402ef613b5ea850 Author: Sven Gothel Date: Sun Mar 19 08:04:48 2023 +0100 Add Scene.PMVMatrixSetup for programmable PMVMatrix setup in Scene replacing fixed projection params; Simplify API requirements .. Scene: - Add Scene.PMVMatrixSetup and use it throughout Scene/Shape for reshape(), setupMatrix() and Shape's win<->obj coordinate mappings. - Default Scene.PMVMatrixSetup is no more moving origin to bottom-left, kept at screen-center. - Add waitUntilDisplayer(), allowing to wait until 1st display is completed, ensuring certain states are well set (init, reshape and 1st display on Shapes, plane-box, ..) Shape: - Rename setPosition() -> moveTo() - Add getBounds(GLProfile) to retrieve AABBox before rendering, - Enhance validateImpl(..) to allow this mode @ initial validation (only) commit c04c8947c7cd0788ea8a4e615887d236eb2fbbb8 Author: Sven Gothel Date: Sun Mar 19 07:47:18 2023 +0100 Graph Scene: RegionRenderer is owned and never null commit ea4938a5e82332382c493044cbbd691e17743fb2 Author: Sven Gothel Date: Sun Mar 19 07:42:43 2023 +0100 Graph Shape: Add missing drawGLSelect(..) commit 25e9a5ea1fc95fc58117c67df7928755166d7748 Author: Sven Gothel Date: Sun Mar 19 07:42:08 2023 +0100 Graph Shape: Mark methods final and enhance API doc commit e3202d1bd0df1f182fbd864de0b4825f962a57d4 Author: Sven Gothel Date: Sun Mar 19 07:35:13 2023 +0100 Graph Scene: Customize clearColor + clearMask used @ display(..), i.e. either use custom setting or avoid it at all for seamless client renderer integration commit ed33aa9957358a30f7a45f92a2efbb6d06650c39 Author: Sven Gothel Date: Sun Mar 19 07:30:23 2023 +0100 Graph: Scene: Add experimental pickShapeGL(..), i.e. glSelect (Not working correctly with all renderModes yet, inactive; Not good on text) commit c37c96ce30b7fcdbaf9d6b682729edb43a139d0d Author: Sven Gothel Date: Sun Mar 19 07:14:57 2023 +0100 Graph: Add RegionRenderer.enable(..) variant w/ passing enable + disable GLCallback commit a6b57c0a3751f37b425e0bd69155d3dbab7e147c Author: Sven Gothel Date: Sun Mar 19 07:14:01 2023 +0100 Graph: GLRegion.draw(): Mod curRenderModes by sampleCount { 0 = no-sampling, -1 = glSelect } (Experimental not working fully) commit 535680eadef89078e6fc62adff21ec9923c968a3 Author: Sven Gothel Date: Sun Mar 19 07:08:51 2023 +0100 Graph: GLRegion: Pass curRenderModes to updateImpl() + drawImpl(), prepare switch by sampleCount; Don't use any resource not requested by curRenderModes commit c0fcaf04b042f8337c90116c98c833ff4a356e1c Author: Sven Gothel Date: Sun Mar 19 06:25:39 2023 +0100 Graph : Misc API doc commit b481b66e45579b3365a06d54912c15d6544b697f Author: Sven Gothel Date: Sun Mar 19 06:23:54 2023 +0100 Graph: Add RenderState API doc; RegionRenderer: Remove unused shell method, left over from f8584748e33aab56780eca5cf7009a5a0d11991d commit 5f5bad23d9d84f76855749d4efcda85792f312c9 Author: Sven Gothel Date: Sun Mar 19 06:18:26 2023 +0100 Fix MovieSimple regression of commit 00dbacc5af3531af50e77a02d534dc11e08de10f, 913b00f8b876e29af91677ef61b3eb35d6853e6e commit a39c72b5a928a57c074d379f7c426c18eb076f73 Author: Sven Gothel Date: Sun Mar 19 06:12:09 2023 +0100 NEWT MouseEvent.getEventTypeString(): Shorten by removing leading 'EVENT_MOUSE_' commit 603068a4e6af5293db10db73ead3a83b7a74af34 Author: Sven Gothel Date: Sun Mar 19 06:11:35 2023 +0100 API doc cleanup, add + refine math tests API doc commit f8584748e33aab56780eca5cf7009a5a0d11991d Author: Sven Gothel Date: Wed Mar 15 03:37:44 2023 +0100 Graph: Make RenderState a composition of RegionRenderer, which also creates and destroys it. Dropping this also from user (complexity). commit b3fe96b2916eb0359412aa8e57a9b1a9577f247d Author: Sven Gothel Date: Wed Mar 15 03:34:01 2023 +0100 ShaderProgram field programLinked: Set to false @ release()/destroy(), On useProgram() only throw exception if 'on==true' is requested (disabling after delettion is OK) commit 6ab750aa0b3b3d5be8c8f3a6388faea9149c5765 Author: Sven Gothel Date: Wed Mar 15 03:31:49 2023 +0100 opengl/util/glsl/Shader*: Mark classes and fields final, rename dump{Shader->}Source(), refine string output. commit c01a4ad712cfa2d1f8746daf161d9052c8acfccd Author: Sven Gothel Date: Wed Mar 15 03:26:30 2023 +0100 Fix ShaderProgram ownership bug, introduced in commit 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. commit 00dbacc5af3531af50e77a02d534dc11e08de10f Author: Sven Gothel Date: Wed Mar 15 03:17:31 2023 +0100 Demos: Minor cleanups; MovieSimple: Remove unused variables etc .. left over from transition to use TextureSequenceES2 commit 8d33d4c33d436f634bcb918977dd0a058d7edbda Author: Sven Gothel Date: Wed Mar 15 03:12:23 2023 +0100 GraphUI: Scene/Shape: Decouple PMVMatrix operations (picking, obj<->win) by using a local instance, enable performing on any thread (not using a blocking GL renderer thread) Shape got 2 win<->obj and size-retrieval variants: (a) using given PMVMatrix and viewport (b) using a local PMVMatrix w/ Scene's viewport and using Scene's setupMatrix() commit 8300903aac92a468f0c1bf979017869be19f7a99 Author: Sven Gothel Date: Wed Mar 15 02:44:39 2023 +0100 GraphUI: Complete rename of UISceneDemo01 commit c5e0818072730985f8d2d4c4b227aa937ba53595 Author: Sven Gothel Date: Wed Mar 15 02:43:23 2023 +0100 GLMediaPlayer usage: Fix verbose strings, disable verbose in GraphUI demos commit 7981d94481c82570d944162ca5950d314bfed0c1 Author: Sven Gothel Date: Wed Mar 15 02:41:53 2023 +0100 GraphUI: Rename UISceneDemo00 -> UISceneDemo01 commit 94c01e08a59929220686e131d1ce706e5cec6e16 Author: Sven Gothel Date: Tue Mar 14 16:41:37 2023 +0100 Graph: Have RegionRenderer.reshapeNotify(..) track x/y as well (vieport); GraphUI.Scene using RegionRenderer's viewport (no duplicate) commit 4d1d546aee01fe27e6b331b23be9be7cc3a5f883 Author: Sven Gothel Date: Tue Mar 14 15:18:04 2023 +0100 GraphUI: Add a most simple Scene demo with one Shape. commit 0d5409586b4467525447e3da72077b999372e79c Author: Sven Gothel Date: Tue Mar 14 15:15:57 2023 +0100 GPUUISceneGLListener0A: Simplify according to Scene class changes (view-based in model-space), have Scene manage resources in full. commit 40286313e716c476308b7621b6031c485aaff7be Author: Sven Gothel Date: Tue Mar 14 15:13:34 2023 +0100 GraphUI: Label: Rename pixelSize -> pixelScale, since we are view-based or in model-space. commit e219ce85b450f760671f07fde72c8d119616bb8f Author: Sven Gothel Date: Tue Mar 14 15:04:33 2023 +0100 GraphUI: MediaButton: No need to re-create GLRegion (anymore), just markShapeDirty() to force reupload of texture-coordinates; Also don't mute audio, user shall configure the GLMediaPlayer... commit 8f7f3f2c693b033e80b5b494c841a36dc5d2c2a8 Author: Sven Gothel Date: Tue Mar 14 15:03:12 2023 +0100 GraphUI: UIShapeDemo01.reshape(): Drop redundant glViewport(..) call commit e41f65f34afade96ba211bae0ce9dc8146435c00 Author: Sven Gothel Date: Tue Mar 14 15:01:56 2023 +0100 GraphUI: Button: Allow user to configure 2-pass label z-offset commit 9c471fe3efe7413b76eeb70b480de9e9c8f19b86 Author: Sven Gothel Date: Tue Mar 14 15:01:07 2023 +0100 GraphUI: GLButton: Don't pass FBO size @ ctor, calculate true view-size @ 1st draw commit d85f0417cc88610408853b2b22d0339e63e1a719 Author: Sven Gothel Date: Tue Mar 14 14:29:45 2023 +0100 GraphUI: Scene: Add simplified ctor w/ user defined zNear, zFar and sceneDistance; Expose the scene-plane AABBox and add surfaceToObjSize() to compute surface-size in object coords. commit 4089f4687c64668d8abe1fe998517ef005d5dc60 Author: Sven Gothel Date: Tue Mar 14 14:25:12 2023 +0100 Graph: RegionRenderer: Adopt to TextureSequence API Change: Use setTextureLookupFunctionName(..) before using hash and/or code. commit 861125339541de2670950aa66a496643ca5cf029 Author: Sven Gothel Date: Tue Mar 14 14:24:03 2023 +0100 Graph: Region: Add API doc on markStateDirty() and markShapeDirty() commit f7e8f8467ced9f494f8cafc51ca9e77038042905 Author: Sven Gothel Date: Tue Mar 14 14:23:16 2023 +0100 AABBox: Add API doc comment on reset() and hence default ctor regarding infinite dimension commit 5922ac12e89fd7b60e91b1b46dce93d0c35d2fd0 Author: Sven Gothel Date: Tue Mar 14 14:22:31 2023 +0100 GLMediaPlayerImpl: Only kick-off StreamWorker at initGL(..) commit 3e17551fa1a61d1044d4e3d76c0f09293c4584d4 Author: Sven Gothel Date: Tue Mar 14 14:22:01 2023 +0100 GLMediaPlayerImpl: Zero textureFragmentShaderHashCode and default lookupFunction on Uninitialized state commit e11d86828f3c5450d9f5443c6b0482b54b82cfdf Author: Sven Gothel Date: Tue Mar 14 14:20:28 2023 +0100 FFMPEGMediaPlayer: More detailed DEBUG messages on audioSink commit d1aea2def5aa526f0a78f3f034ceb9ab1b0d3905 Author: Sven Gothel Date: Tue Mar 14 14:19:42 2023 +0100 make/scripts/setenv.jogl.sh: Add JOAL_LIB_DIR to LD_LIBRARY_PATH (used if not testing using jars but classpath) commit 4b63ffc8c475604d9ea1cc588ee33dfe7980ba86 Author: Sven Gothel Date: Tue Mar 14 14:18:49 2023 +0100 build: Disable oculusvr by default, allow manual enable via property 'oculusvr.enabled' commit 6faab9ada2a7e2b99bb20ce828915a07fdcbea27 Author: Sven Gothel Date: Tue Mar 14 14:17:53 2023 +0100 TextureSequence (API Change): Use setTextureLookupFunctionName(..) explicitly to set the name upfront, clarifying workflow. Impl: ImageSequence + GLMediaPlayerImpl commit 67a723477ecd818fbc5859fe20ee536a3b4efae5 Author: Sven Gothel Date: Mon Mar 13 21:38:29 2023 +0100 GLRegion + RegionRenderer: Add clearShader(..) to delete all ShaderPrograms and is references. commit 6feb3738231210b03edefa7a60cf11e644fb7a5d Author: Sven Gothel Date: Mon Mar 13 06:49:31 2023 +0100 GraphUI: MediaButton: Adapt GLMediaPlayer changes: Ready right away and reset on Init: GLMediaPlayer.initGL() + recreate GLRegion commit 357964eba18e73eb69e0ad68c85fca0a0e1ea192 Author: Sven Gothel Date: Mon Mar 13 06:47:05 2023 +0100 GLMediaPlayerImpl: isTextureAvailable() is always true after lastFrame init; Use private isPausedOrPlaying() to determine shaderCodeHash commit 6b39e7be037f13a72d7ba1ead24f01697823d779 Author: Sven Gothel Date: Mon Mar 13 06:05:47 2023 +0100 GraphUI: Cleanup 1-pointer zoom, add generic PinchToZoom-Gesture for 2-pointer zoom; Scene: Align method names.. commit 9fd84fa482aa354f0636fcd006edd7b71b27c02d Author: Sven Gothel Date: Mon Mar 13 06:03:28 2023 +0100 GraphUI: Use pre-calc'ing buffer sizes for Label shape commit e9a0f5cdc2bca9ca97175d2fa3c1b722a574b267 Author: Sven Gothel Date: Mon Mar 13 06:02:33 2023 +0100 Graph: Add GLRegion creation w/ pre-calculating its buffer sizes; TextRegionUtil: Use pre-calc'ing buffer sizes for GLRegion; TextRendererGLELBase: Fix temp AffineTransform usage commit 913b00f8b876e29af91677ef61b3eb35d6853e6e Author: Sven Gothel Date: Mon Mar 13 05:59:34 2023 +0100 GLMediaPlayer: Overhaul and simplify states, allow usage before stream ready 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 commit 5efd3a6d9cf12d38ce6d7c91f9c5968927f3253a Author: Sven Gothel Date: Mon Mar 13 05:53:35 2023 +0100 build-test.xml: Add src.demos to determine to skip build or not commit 35d07fa97404921bb8e9b5185d6f89a3c09d0e9f Author: Sven Gothel Date: Mon Mar 13 05:52:59 2023 +0100 Move png assets (NEWT icons + GLMediaPlayer dummy/test) to simple classpath, allowing access w/o jars. TODO: Test Android. commit 4b6db72f86eef63196da0c13cd205314d5a109ee Author: Sven Gothel Date: Sat Mar 11 07:35:46 2023 +0100 Demos: FontSetDemos: Remove remove fonts commit 5dd295c4947f0abc8463b0e4c1ef52bb99402563 Author: Sven Gothel Date: Sat Mar 11 07:32:30 2023 +0100 Demos: Remove unused fonts commit 63372e2517bbd94a340808b0cf15fb556eae18b8 Author: Sven Gothel Date: Sat Mar 11 07:22:35 2023 +0100 GraphUI: Shape: Add build-in resize w/ 1-pointer-click and drag in 1/4th bottom-left or bottom-right corner. Rename translate -> position. commit d27baa9f6980d6e2b570999607b003a11393ea95 Author: Sven Gothel Date: Sat Mar 11 07:08:56 2023 +0100 Cleanup Demos: Move demos to jogl-demos.jar (here Graph + AudioVideo), ready for easy deployment and test w/ junit/ant commit 32f245d0ad381828c2c731840e2d978e8cbc3df3 Author: Sven Gothel Date: Fri Mar 10 03:20:08 2023 +0100 GraphUI: Add package.html (dummy) commit 3131eaaf5272ca3f0011e334eb08c6ba68702a6c Author: Sven Gothel Date: Fri Mar 10 03:11:24 2023 +0100 GraphUI: Promote API to JOGL via graphui.jar or within any jogl-all*.jar (WIP) Root package is 'com.jogamp.graph.ui.gl', i.e. a sub-package of Graph denoting UI and OpenGL usage. Implementation will stay small, hence relative files size costs are minimal. Source and build is in parallel to nativewindow, jogl and newt and has a dependency to all of them. The NEWT dependencies are merely the input listener .. commit 3eb5686393de9218d17f9dc3b3f2e2062430034e Author: Ewout ter Hoeven Date: Thu Mar 9 10:43:50 2023 +0100 Enable GitHub sponsor button Adds a FUNDING.yml file that enables a sponsor button to become visible in the top of the repository. This button links to the sponsor page and thus makes the possibility to donate easier and more visible. See https://docs.github.com/en/repositories/managing-your-repositorys-settings-and-features/customizing-your-repository/displaying-a-sponsor-button-in-your-repository commit 52e4bc6cd4ace3fdf7ccaf790566500670709a44 Author: Sven Gothel Date: Thu Mar 9 05:48:51 2023 +0100 GraphUI: Revision: Simplify resource handling via SceneUIController, add general functionality in UIShape (drag, ..) commit dbaffae26675b70dc8a741943f116f2d17488eda Author: Sven Gothel Date: Thu Mar 9 05:32:18 2023 +0100 Adopt to RegionRenderer.init(..) dropped unused renderModes argument commit 4cc2787766d1d692c668d0cabd9f4619de396f72 Author: Sven Gothel Date: Thu Mar 9 05:31:04 2023 +0100 Misc: Add MonitorDevice.perMMToPerInch(..); Drop unused RegionRenderer.init(..) renderModes argument commit cda90eeef4607511dd1f6432f770dd4fefe7dd1c Author: Sven Gothel Date: Wed Mar 8 07:22:24 2023 +0100 Rename NonFSAAGLCapabilitiesChooser -> NonFSAAGLCapsChooser (too long) commit 10e74469da647d377967477d30a67ca5e36ed148 Author: Sven Gothel Date: Wed Mar 8 07:15:16 2023 +0100 TestTextRendererNEWT20: Cover Graph-VBAA, Graph-MSAA, FSAA, NONE .. (have proper filenames for screenshots) commit bbaccf87a4f3ab10095017c1d375ed624979ec7b Author: Sven Gothel Date: Wed Mar 8 06:26:04 2023 +0100 Add raspi4b test script w/ set screen-size commit 6c7091317c5531691bcae7c18f8e07d5fcbece9f Author: Sven Gothel Date: Wed Mar 8 06:12:15 2023 +0100 Apply NonFSAAGLCapabilitiesChooser in NEWTGLContext (tests only). TODO: Consider applying it in default chooser? commit d76fc6f518606def8ddc52e0cd4d8a29bd2536fc Author: Sven Gothel Date: Wed Mar 8 05:39:56 2023 +0100 Graph: Font: Add equals() + hash() API doc; GraphUI's Label*.setText(): Only modify values if text and/or font differs, skipping markShapeDirty() saves performance. commit adfe4abec47313d2c533096f6c3e9a94d2fc4571 Author: Sven Gothel Date: Wed Mar 8 05:35:29 2023 +0100 Graph GPUUISceneNewtDemo: Filter out all FSAA (multisample) caps if undesired (Graph VBAA + MSAA); Add NonFSAAGLCapabilitiesChooser Notable: On RaspiPi4b w/ Mesa3D's Broadcom/VC driver, the chosen capabilities is a multisamnple one even though not requested. This causes - extra performance overhead - doubled AA: 1st our VBAA, then the FSAA (multisample) -> loss of sharpness Simply dropping the undersired FSAA helps and ups performance on the Raspi board (22 -> 35 fps). commit b7ad260cd68b0cbbe1e61b95ed8c90aa97487186 Author: Sven Gothel Date: Wed Mar 8 05:25:34 2023 +0100 [GL]Capabilities*: Enhance identity-check in root Capabilities.equals(..), comparing the VisualID first; Added VisualIDHolder.isVisualIDSupported(VIDType) We cannot accept 2 capabilities with different VisualID but same attributes otherwise accepted as equal, since the underlying windowing system uniquely identifies them via their VisualID. Such comparison is used in certail GLAutoDrawable implementations like AWT GLCanvas to determine a configuration change etc. commit 058ebd3072fd86550e147147bce784f14310abae Author: Sven Gothel Date: Tue Mar 7 23:45:32 2023 +0100 PerfTextRendererNEWT00: Scale font to match screen witdh after producing the region, i.e. have a proper resolution independent layout. commit 9e3070acf9c70a8b333435889ae77e581cd65b32 Author: Sven Gothel Date: Tue Mar 7 23:10:43 2023 +0100 Graph Demos: Add 'JOGL line' and tweak PerfTextRendererNEWT00 a little to fit on small displays commit ad1511295afc0256fa02d6d434db4b119f96f056 Author: Sven Gothel Date: Tue Mar 7 21:55:18 2023 +0100 Graph Perf: PerfTextRendererNEWT00 Disable VSync per default (duh!) PC 'regioned' perf enhanced a little bit, for some reason the RPI performance went down a tiny bit (fluctuations?). commit 9a14dd8d40be4f4d88ba8424e908129ff628e259 Author: Sven Gothel Date: Tue Mar 7 20:04:11 2023 +0100 Graph Perf Update: 1296 chars to Region per Frame: RaspiPi4 10.25ms (Region) + 3.4ms (draw), PC 2.97ms (Region) + 0.36ms (draw) (GOOD) Performance update from commit 607eb99b9cad227dd7be6d149c6b6cf57d060c35 (Note: There I mentioned the total duration for 20 frames, not per frame) A Performance @ 2.4.0 with 119,787 vertices: - doc/curve/tests/perf00/rpi4_old.log - RaspiPi4 57.20ms (Region) + 23.4ms (draw) B Performance @ commit 607eb99b9cad227dd7be6d149c6b6cf57d060c35 with 81,092 vertices: - doc/curve/tests/perf01/rpi4_7.log + doc/curve/tests/perf01/pc_7.log - RaspiPi4 11.76ms (Region) + 3.5ms (draw), PC 3.4ms (Region) + 0.35ms (draw) C Now with 81,092 vertices (and a slight bigger buffer due to 'count' pre-size): - doc/curve/tests/perf02/rpi4_10.log + doc/curve/tests/perf02/pc_10.log - RaspiPi4 10.25ms (Region) + 3.4ms (draw), PC 2.97ms (Region) + 0.36ms (draw) Hence we enhanced performance from A -> C reasonably. Most important is that neither 'Flight Recorder' not 'Visual VM' could identify Region.addOutlineShape()'s triangulation nor vertices compounding to be significant throttle. After further triangulation bugfixes (delauny tesselation), we might analyze performance of this method further. Enhancements of VBO GLArrayData data management where Region.addOutlineShape() finally we pushes the data into the VBO helped to remove certain overhead. Mostly the buffer-size enhancements including API-hooks to count the required vertices & indices to issue Region.setBufferCapacity() helped to ease the GC. commit 8476bc8420eafaf741f37ddf3c2f2d4660b31109 Author: Sven Gothel Date: Tue Mar 7 19:23:31 2023 +0100 GLArrayData: Fix API doc typo in sealed() commit a615ae554ad00581ff722f89f151e7551f9473a4 Author: Sven Gothel Date: Tue Mar 7 19:07:29 2023 +0100 scripts/tests.sh: Refine uncommented section about 'Flight Recorder' setup commit a388c51f7730086f665fb64f02ee0bd51e79f8ff Author: Sven Gothel Date: Tue Mar 7 19:06:03 2023 +0100 Graph: Region: Enhance API doc, fix typo .. (brace close left open during selected commits) commit 3bad09f6b7c7f9c93a6cf385abb51a6563e8aec0 Author: Sven Gothel Date: Tue Mar 7 19:05:05 2023 +0100 Graph Perf: Add Region.countOutlineShape(), Font.processString(Visitor2,..), TextRegionUtil.countStringRegion() allowing to use Region.setBufferCapacity() commit 5e79fea8981a13d155e0b958aa3e20a546c533bb Author: Sven Gothel Date: Tue Mar 7 18:31:35 2023 +0100 Graph Perf: Font*: Remove PerfCounterCtrl since the Region counter is more than enough commit 1231a2fd45b12ae936d803d0266fba941e8f46b6 Author: Sven Gothel Date: Tue Mar 7 18:29:41 2023 +0100 Graph Perf: OutlineShape: Uncomment all debug code to keep it smaller commit b266c94103dae5ad7a117ab7e0fb6b401ca3c85b Author: Sven Gothel Date: Tue Mar 7 18:28:54 2023 +0100 Graph Perf: Region*: Add setBufferCapacity(..) and cut-off growBuffer() early if not needed (track capacity); Align all VBORegion* buffer init/set/grow impl. commit 01aac34c2c08d01d728c7906cb1cc132e8e7fab1 Author: Sven Gothel Date: Tue Mar 7 18:25:53 2023 +0100 Graph Perf: Region: split addOutlineShape() -> addOutlineShape0() (fast) and addOutlineShape1() (slow perf+debug), rename growBufferSize() -> growBuffer() commit 657df3d32a291a74e7eb31c8ccef0fde151afcc1 Author: Sven Gothel Date: Tue Mar 7 18:05:15 2023 +0100 Graph Perf: Region*: Rely on growBuffer(..) per addOutlineShape() and known buffer data-type to directly put[34][sif](..) skipping GLArrayDataClient/Buffers buffer-growth and validations commit 90a95e6f689b479f3c3ae3caf4e30447030c7682 Author: Sven Gothel Date: Tue Mar 7 17:56:08 2023 +0100 GLArrayData: Promote sealed() from GLArrayDataEditable, to correctly being used for getElemCount() instead of 0==position, ... (API change) API Change - sealed() moved up from GLArrayDataEditable -> GLArrayData - GLArrayDataWrapper is sealed by default - getSizeInBytes() -> getByteCount() - Semantics of getElemCount() and getByteCount() - Correctly use sealed() to switch from position to limit - instead of 0==position Aligned method names: - getElemCount() - elemPosition() - remainingElems() - getElemCapacity() to corresponding byte counts: - getByteCount() - bytePosition() - remainingBytes() - getByteCapacity() commit 8fbb5bb2f4312b52c24375db3055198a18d66319 Author: Sven Gothel Date: Tue Mar 7 05:25:07 2023 +0100 Graph: Bring back passing through temp AffineTransform instances (optional, but recommended) commit 14a47f60d2dc7c4f6b2d910fcc8489726443db22 Author: Sven Gothel Date: Tue Mar 7 04:05:10 2023 +0100 Graph Perf Test: {Test->Perf}TextRendererNEWT00: Drop junit, ... (WIP) Also tested w/ alternative JVM (Azul) .. works well, no big difference (but slower startup time, but might be OpenJDK 17->19 related as well). Printing usual system infos to make the test record useful. Cmdline is: com.jogamp.opengl.test.junit.graph.PerfTextRendererNEWT00 -es2 -Nperf -long_text -loop 40 commit fb03e913c0c55a9a96e93a00ef6590b9bea9a62a Author: Sven Gothel Date: Tue Mar 7 01:33:22 2023 +0100 Clock: Use Clock.currentNanos() instead of System.nanoTime(); Enhancing FPSCounterImpl accuracy by maintaining timestamps in [ns] Idea: Perhaps we want to use [ns] for FPSCounter's method types by now? commit 607eb99b9cad227dd7be6d149c6b6cf57d060c35 Author: Sven Gothel Date: Tue Mar 7 00:15:02 2023 +0100 Graph Perf Counter: Use GlueGen's Clock.currentNanos() to ease on performance-hit measuring performance. This was mostly notable on a Raspberry-Pi 4 arm64, where perfromance degragated around 3x using high-freq counter. Using our well determined Clock.currentNanos() removes this overhead, back to 'easy measuring' and having a well defined 'currentNanos()' since module start. TestTextRendererNEWT00 can enable Region and Font perf-counter w/ '-perf', w/o it only uses its own counter and hence reduce the high-freq burden (64% perf win on raspi4). +++ Below numbers show that Region.addOutlineShape() perhaps needs a little performance work to allow long text to be processed in 'real time' on embedded platform. Hower, usually we cache the Region for long text and can have at least one liner to be renderer within 60fps fast, i.e. Region produced in ~26ms for a 81 char line instead of ~130ms for 664 chars. +++ Raspberry Pi 4b, OpenJDK17, Debian 11: Using current medium sized text_1 w/ 664 chars, w/o '-perf' and after having passed 40 frames, we have following durations: - process the OutlineShape -> Region: 129ms (text) - Render the Region: 53ms Startup Times: - loading GlueGen - loading test 0 [ms] - loading GlueGen - start test 1,910 [ms] - loading test - start test 1,910 [ms] - loading test - gl 2,631 [ms] - loading test - graph 2,636 [ms] - loading test - txt 2,844 [ms] - loading test - draw 3,062 [ms] Perf .. 1 / 1: Perf Launch: Total: graph 5, txt 207, draw 218, txt+draw 425 [ms] 1 / 1: Perf Launch: PerLoop: graph 5,505,740, txt 207,530,736, draw 218,393,680, txt+draw 425,924,416 [ns] 20 / 20: Perf Frame20: Total: graph 16, txt 376, draw 281, txt+draw 657 [ms] 20 / 20: Perf Frame20: PerLoop: graph 807,055, txt 18,820,824, draw 14,075,146, txt+draw 32,895,970 [ns] 20 / 40: Perf Frame40: Total: graph 3, txt 129, draw 53, txt+draw 182 [ms] 20 / 40: Perf Frame40: PerLoop: graph 176,670, txt 6,451,330, draw 2,658,217, txt+draw 9,109,547 [ns] +++ On a modern desktop (~2y old), GNU/Linux Debian 11, AMD GPU on Mesa3D: Using current medium sized text_1 w/ 664 chars, w/o '-perf' and after having passed 40 frames, we have following durations: - process the OutlineShape -> Region: 42ms (text) - Render the Region: 5ms Startup Times: - loading GlueGen - loading test 0 [ms] - loading GlueGen - start test 310 [ms] - loading test - start test 309 [ms] - loading test - gl 459 [ms] - loading test - graph 460 [ms] - loading test - txt 490 [ms] - loading test - draw 506 [ms] Perf .. 1 / 1: Perf Launch: Total: graph 1, txt 29, draw 15, txt+draw 45 [ms] 1 / 1: Perf Launch: PerLoop: graph 1,191,096, txt 29,868,436, draw 15,519,445, txt+draw 45,387,881 [ns] 20 / 20: Perf Frame20: Total: graph 240, txt 68, draw 21, txt+draw 89 [ms] 20 / 20: Perf Frame20: PerLoop: graph 12,045,651, txt 3,415,402, draw 1,069,348, txt+draw 4,484,750 [ns] 20 / 40: Perf Frame40: Total: graph 283, txt 42, draw 5, txt+draw 47 [ms] 20 / 40: Perf Frame40: PerLoop: graph 14,152,395, txt 2,116,114, draw 265,292, txt+draw 2,381,406 [ns] commit e5e7514d649cd7dd28bbb8e04b72338dc09c2c83 Author: Glenn Burkhardt Date: Mon Mar 6 08:46:16 2023 -0500 Fix for AWT GLCcanvas DPI scaling. Forum thread https://forum.jogamp.org/DPI-scaling-not-working-td4042206.html commit 95250b79766f62d9e5a0f1f46f98ea1f5983a77f Author: Sven Gothel Date: Mon Mar 6 11:22:30 2023 +0100 Adapt to GlueGen dropping Platform.currentTimeMicros(), use Platform.currentTimeMillis() commit 2920be3622adf2b14cfad7d0261c11dc7e8151db Author: Sven Gothel Date: Mon Mar 6 11:21:45 2023 +0100 Graph: Use PerfCounterCtrl interface and Instant/Duration & Clock.getMonotonicTime() ... commit 8c441b4fc5a63967cfded3ec58cc0736a0aadb0f Author: Sven Gothel Date: Mon Mar 6 05:15:27 2023 +0100 NEWT DRM EGL/GBM: WindowDriver: Don't issue glFinish() here, as eglSwapBuffers(..) already performs this task (TODO: More Tests!) commit 88852f2518a44ea0253e0a4db67d6973bbe97834 Author: Sven Gothel Date: Mon Mar 6 05:13:50 2023 +0100 TestTextRendererNEWT00: Add '-perf' mode using new perf counter, testing on PC and raspi-aarch64 .. commit 64231ca5afb36846a09dc9ecab0655d8bc339cf9 Author: Sven Gothel Date: Mon Mar 6 05:12:46 2023 +0100 Graph: Font: Add perf counter (w/ API) commit a3901230167c062be05c5b3fe350025f11bfd663 Author: Sven Gothel Date: Mon Mar 6 05:12:01 2023 +0100 Graph: Region: Add perf counter (w/ API); Utilize put[34][sif](..); Fix indices growBufferSize(); Add GLRegion.create(..) w/ initial vertices/indices count; Up default[VI]Count; Following heuristcs were found, hence we might want to calculate these for each font (TODO): /** * Heuristics with TestTextRendererNEWT00 text_1 + text_2 = 1334 chars * - FreeSans ~ vertices 64/char, indices 33/char * - Ubuntu Light ~ vertices 100/char, indices 50/char * - FreeSerif ~ vertices 115/char, indices 61/char * * Now let's assume a minimum of 10 chars will be rendered */ commit 4072655fe5c549949828ba86783b1fcc377869c8 Author: Sven Gothel Date: Mon Mar 6 05:04:00 2023 +0100 scripts/tests.sh: add testmobile launch w/ JOGAMP_MOBILE_CLASSPATH Also add commented-out FlightRecording, not yet usefull - lacking depth for our methods. commit 525ae22469646abe6f22c9b6e62eb6cdb297b0b6 Author: Sven Gothel Date: Mon Mar 6 02:19:50 2023 +0100 GLArrayData: year-range commit 874a49592e5233722fb8e455aa741c351f1c50a2 Author: Sven Gothel Date: Mon Mar 6 02:19:27 2023 +0100 GLArrayData*: Minor edits: API doc, space and year-range commit f12043cbb8c7b5ea20937dbe6799ca5e635019d0 Author: Sven Gothel Date: Mon Mar 6 02:18:39 2023 +0100 GLArrayDataEditable: Clarify API doc on clear*(..) and rewind() commit a424365f723fb540b0895ea009df3506ca0619a7 Author: Sven Gothel Date: Mon Mar 6 02:15:53 2023 +0100 GLArrayDataClient: Minor toString() and DEBUG output fixes commit c14b85395d2b3b75d09d9b9fd2eeecb20aad46af Author: Sven Gothel Date: Mon Mar 6 02:15:23 2023 +0100 GLArrayData[Editable,Client]: Add put[34][bsif](..) and array put[bsif](..) variants for flexibility/performance Notable: The array-put is slower than small range single-puts, e.g. put3i(..). Uses GlueGen's Buffers change commit 69b748925038b7d44fa6318536642b426e3d3e38 commit d87f510194ad2eead2a42b41a3cbe1077f65a695 Author: Sven Gothel Date: Sun Mar 5 04:42:56 2023 +0100 NEWT Screen: Allow injection of global (single) monitor size in [mm] via newt.ws.mmwidth and newt.ws.mmheight property This is essential on bare-metal devices where the screen DRM/GBM driver does not provide the screen-size (in mm). Otherwise we would have resolution/(size_mm=0) infinity density and none of our graph font demos would work, as we compute pixel-em-size based using dpi and pixel-pt-size. commit 8d4e039dfd490d3f2290523ea75c9f51460bae41 Author: Sven Gothel Date: Sun Mar 5 04:38:30 2023 +0100 FFMPEGMediaPlayer: Cleanup API doc FFmpeg versions commit e26c9ed7e965d526830ec0112eb2f58832ebca16 Author: Sven Gothel Date: Sat Mar 4 20:41:49 2023 +0100 GLDrawableFactory: Fix typos and mention 'surfaceless' in createDummyDrawable(..) commit 82d9be20b7eb95f31babdf233eb48db00a9eda55 Author: Sven Gothel Date: Sat Mar 4 19:58:26 2023 +0100 make/scripts/tests.sh: Update for my personal unit-test runs commit ead8651394c792950025114cfcb6476e8b82bf50 Author: Sven Gothel Date: Sat Mar 4 19:57:39 2023 +0100 GLDrawableFactoryImpl:createDummyDrawable(): Similar to createOffscreenDrawable() prefer createSurfacelessImpl() over createDummySurfaceImpl() to reduce resources (no actual window) This enhances the 'dummy drawable' use-case implementation, i.e. for shared context. commit 0b796fe6963705a231bc1f24a5b4e6651b7e928f Author: Sven Gothel Date: Sat Mar 4 05:23:45 2023 +0100 GLDrawableFactoryImpl:createMutableSurfaceImpl(..): Pass orig AbstractGraphicsDevice to allow EGLDrawableFactory to use the original device's native-dislay-ID for sharing resources. commit 09f0018363778a6cbf594bc2bf71d899d36e3c46 Author: Sven Gothel Date: Sat Mar 4 05:08:07 2023 +0100 GLDrawableFactoryImpl:createDummySurfaceImpl() and createSurfacelessImpl(): Pass orig AbstractGraphicsDevice to allow EGLDrawableFactory to use the original device's native-dislay-ID for sharing resources. EGLDrawableFactory to use the original device's native-dislay-ID for sharing resources, e.g. GLContext. EGL 1.4 requires same native-display-ID of share-list context and newly created context! commit 64e741cbdcc0cc22f5b59fca01fa031879eff68c Author: Sven Gothel Date: Sat Mar 4 05:03:35 2023 +0100 EGLGraphicsDevice: Cleanup and enhance API doc for clarity ... commit be56e83a48e0d0701dc20fe30009cc82b82a4f4b Author: Sven Gothel Date: Sat Mar 4 04:54:16 2023 +0100 GLProfile::initProfilesForDeviceCritical(): initLock.addOwner(t) only if t is not orig-owner commit 24b238fb9b7503f30f9309eec289386a4003f3da Author: Sven Gothel Date: Sat Mar 4 04:28:59 2023 +0100 GLMediaPlayerImpl: destroyImpl(..) @ initGL(..) exception: Don't wait for streamWorker stop result (-> deadlock) commit bc05d39965ec513a468b841dd1e696c2e371fdd2 Author: Sven Gothel Date: Thu Mar 2 23:41:20 2023 +0100 Drop redundant NativeWindowFactory.getDefaultToolkitLock(type, deviceHandle) variant commit c5e68482a747c6d0fef8a4b3fdb1fe098f81965d Author: Sven Gothel Date: Thu Mar 2 23:33:41 2023 +0100 GLProfile.isValidArrayDataType() add missing accepted types for ES3/GL3+ but dropping its usage (GLArrayDataWrapper validation) Skip GLProfile based index, comps, type validation, might not be future proof. commit a1f22eaf5707a287692fd56d46abe4fff4910f75 Author: Sven Gothel Date: Wed Mar 1 11:30:08 2023 +0100 Reformat README.txt -> README.md, add list of work items and call for sponsorship. commit 6d7f33107f9f8371bb07e6584b64a64ec65956dd Author: Sven Gothel Date: Tue Feb 28 15:59:49 2023 +0100 JOGL Homepage: Rearrange, add MeteoInfo and Sweet Home 3D commit 98ea4a77debc15e5fd9b4188da1bf37b4872f34c Author: Sven Gothel Date: Sun Feb 26 23:04:42 2023 +0100 FFmpeg: Fix using 'av_channel_layout_uninit', use own loaded linked 'sp_av_channel_layout_uninit' commit 8577308dc26da61c850692137c7475a67427b98a Author: Sven Gothel Date: Sun Feb 26 23:03:43 2023 +0100 Windows test scripts: Inject FFmpeg 5.1.2 and Mesa3D (disabled C:\Windows\System32\opengl32.dll) commit cdbae2a8840e768f9946a85e80e36535e11856cf Author: Sven Gothel Date: Sat Feb 25 02:24:49 2023 +0100 Movie* Demos: Add screenshots w/ 'S' key; Cleanup screenshot filename creation in other demos. commit a7d2ffa2f42343a0356084a3701075720f44fd5c Author: Sven Gothel Date: Fri Feb 24 22:20:20 2023 +0100 Graph Region: Fix printBufferStats(..) override commit 307479391f955a5bd611b4ad4db6f53e097d15c5 Author: Sven Gothel Date: Fri Feb 24 22:15:20 2023 +0100 Graph Region: Address overflow issue using GL2ES3 integer indices (WIP...); Ease GLArrayData* buffer growth. Using integer indices, i.e. GL_UNSIGNED_INT, requires us to pass a GLProfile 'hint' to the GLRegion ctor. Region.max_indices is computed in this regard and used in Region.addOutlineShape(). TODO: If exceeding max_indices, the code path needs some work. Buffer growth is eased via GLArrayData using its golden growth ratio and manually triggering growth before processing all triangles in Region.addOutlineShape(). +++ TextRegionUtil static drawText() won't clear passed Region anymore, caller has to do this if so intended. commit 6ac71d7fee514f1bf388990b9373d190424699d9 Author: Sven Gothel Date: Fri Feb 24 22:01:06 2023 +0100 GLArrayData*: Expose reserve() for total elementCount and growIfNeeded() for additional components ... commit 3d537d4239e3772ffdb33592e5e66844d94ac9f3 Author: Sven Gothel Date: Fri Feb 24 15:33:39 2023 +0100 GLArrayData*: Shorten methods (*API Change*), use proper constructor and finalize immutables, add growthFactor (default golden ratio 1.618), add getCapacity*() and printStats(..) The growthFactor becomes essential for better growth behavior and can be set via setGrowthFactor(). The other changes were merely to clean up the GLArrayData interface and its 4 implementations. Not great to change its API, but one name was misleading ['getComponentCount' -> 'getCompsPerEleme'], so overall .. readability is enhanced. Motivation for this change was the performance analysis and improvement of our Graph Curve Renderer. commit d2d09d37be87bebf7700b9f82bccdf94a7ff5e51 Author: Sven Gothel Date: Thu Feb 23 22:23:38 2023 +0100 Graph Font: Fix TypecastRenderer TTF corner-case: Prefer initial segment's moveTo (start) to be onCurve One of the FreeSerif fonts starts a new segment with two off-curves, where the mid-point is not onCurve. Here we have to test whether the previous (point-1 or in code: point_m) is onCurve and simply start our 'turtle' making the shape there .. commit 0bc7cc3a8dc68005f52082a4e3181e09d8e36599 Author: Sven Gothel Date: Thu Feb 23 22:19:12 2023 +0100 Eclipse: Add CDT nature to edit C/C++ files commit 2ecf00d7733c473358b652c50b83cb95f65174ff Author: Sven Gothel Date: Thu Feb 23 22:18:39 2023 +0100 FFMPEGMediaPlayer: Add implementation update for FFmpeg version 4.* (Debian 11), 5.* (Debian 12) and 6.* (Current Development trunk) From here on, libav support has been dropped. Required FFmpeg libraries to be fully matched by their major runtime- and compiletime-versions are: - avcodec - avformat - avutil - swresample Library avdevice is optional and only used for video input devices (camera). Library avresample has been removed, since FFmpeg dropped it as well in version 6.* and swresample is preferred for lower versions. The matching major-versions of each library to the FFmpeg version is documented within FFMPEGMediaPlayer class API-doc. Each implementation version uses the non-deprecated FFmpeg code-path and compilation using matching header files is warning-free. commit 55a3e7e548bbc3333318ee55dbab39f016b8d5f6 Author: Sven Gothel Date: Thu Feb 23 22:10:17 2023 +0100 FFMPEGMediaPlayer: Replace old FFmpeg header w/ FFmpeg version 4.3, 5.1 and 6.0 (major version counts for binary compatibility) commit dc48fb0f101dfefd3f4fb23f585d14de7fa9a6fe Author: Sven Gothel Date: Thu Feb 23 22:07:26 2023 +0100 Graph UI: Update demos, move pure demo code from demos/ui -> demos, rename test-shapes commit 6bf76cfc2dcba22d377346f132b5e90b92dc192c Author: Sven Gothel Date: Sun Feb 19 17:45:08 2023 +0100 Graph: Update demos .. commit 4f7d133b7f7c06f35d75cb46d5e13aa215fee52d Author: Sven Gothel Date: Sun Feb 19 17:38:14 2023 +0100 Graph TextRegionUtil: Fix HashMap (font,text)->GLRegion: Preserve key data (fontName, text) for equals Otherwise we would need to use a mostly collision free secure hash algo, Black2b-512 or sha256/512 commit 2a6f255ff65bc499ae53da96f5b43a4e4c525861 Author: Sven Gothel Date: Sun Feb 19 17:35:53 2023 +0100 Graph TypecastFont: Add hashCode() and equals(), feed TypecastGlyph w/ LeftSideBearings commit 60827d6df7c99f77ab95e25a6e94da74ccb1e2b6 Author: Sven Gothel Date: Sun Feb 19 17:34:47 2023 +0100 Graph Font.Glyph: Cleanup: Remove Font and getScale() from interface (redundant), add getLeftSideBearings*() from htmx table; Flatten TypecastGlyph impl by merging its Metrics, add equal() complementing hashCode() commit c30471f8bf51d403ab9cd1a253742f757407cee6 Author: Sven Gothel Date: Sun Feb 19 05:27:09 2023 +0100 Graph Font: Add more DEBUG info .. commit 4b814826897b33ee88565bc72dca10d99473e187 Author: Sven Gothel Date: Sun Feb 19 05:26:26 2023 +0100 Graph Font: Simplify CmapFormat selection (cmap symbol -> glyph-idx), just use Unicode and if not available use a symbol font commit dd98cf0ae983429187256ab3236fa7dad1cd13d0 Author: Sven Gothel Date: Sun Feb 19 05:21:11 2023 +0100 Graph Font: Add 'name' to Glyph; Drop erroneous Glyph ID_SPACE, ID_CR manual mapping, rely on no-shape for 'space' non-contour. Drop erroneous Glyph ID_SPACE, ID_CR to rely on no-shape for 'space' non-contour resolves different cmap-mappings of fonts, not following 'some std'. Hence getGlyph(glyph_id) no more uses the `font.getGlyph(Glyph.ID_UNKNOWN)` shape, but a null-shape as intended and using the hmtx and hhea table values for asvance and bounds. This fixes 'space' spacing in general and specifically FreeSerif-Regular and the like. This path also simplifies processing/layout of glyphs in process(..) and get*BoundsFU(..). commit da88b0f2ac0b09082222ce1a387987e8cdd5f21d Author: Sven Gothel Date: Sun Feb 19 05:12:04 2023 +0100 Graph Font.Metrics: Use unchanges sign of (+) ascent, (-) descent and (+) lineGap, document them properly and fix Font.getLineHeightFU() commit 3d2b65bd43d5abb1acf59754ee325c25b8c299ff Author: Sven Gothel Date: Fri Feb 17 22:40:47 2023 +0100 Rename VectorUtil.ccw(..) -> isCCW(..) commit 0f86f8fc54855b6453e5c270b3480632f3a401d1 Author: Sven Gothel Date: Fri Feb 17 22:40:16 2023 +0100 Graph Overflow Bug: Reorder TestTextRendererNEWT* tests from simple to complex example code, ascending commit 3573631ced62383b9871f98f65f354958042331b Author: Sven Gothel Date: Fri Feb 17 20:48:17 2023 +0100 Graph UI: Fix UIShape's PMVMatrix handling of getSurfaceSize, objToWinCoord and winToObjCoord (expect all set, no doubling); GLEventListenerButton: Resize FBO to screen-size for proper 1:1 quality commit bff89da495f45d39eed57318666f2f31cce1043a Author: Sven Gothel Date: Fri Feb 17 15:08:36 2023 +0100 Graph RoundButton: setDimension -> setSize commit 26f66b4d18d8e148ece2af57ce39e9b4a5d5b1fb Author: Sven Gothel Date: Fri Feb 17 15:07:40 2023 +0100 Graph GPUUISceneGLListener0A: Prep for reshape_resize, notch up relative sizes a little commit 963457df750d78bf70b5d705a90010215835f5f6 Author: Sven Gothel Date: Fri Feb 17 14:24:47 2023 +0100 Graph Demos: Formatting .. GPUUISceneGLListener0A: Formatting and move reshape() after init() commit ce1d75c14cd082d1af0796ae7402187cdf23ac7d Author: Sven Gothel Date: Fri Feb 17 14:21:54 2023 +0100 Graph: Outline: Remove minor redundancy commit 69fd2003d2744922a8bb48fb42c8a278bf35476e Author: Sven Gothel Date: Fri Feb 17 12:18:29 2023 +0100 TestTextRendererNEWT01: Drop unused import commit e72dbd286ba95913711ac812bc979204f2073b7c Author: Sven Gothel Date: Fri Feb 17 12:17:57 2023 +0100 Graph: Fix Loop.initFromPolyline()'s Winding determination, document Winding rules for OutlineShape and add get/setWinding in Outline Loop.initFromPolyline()'s Winding determination used a 3-point triangle-area method, which is insufficent for complex shapes like serif 'g' or 'æ'. Solved by using the whole area over the Outline shape. Note: Loop.initFromPolyline()'s Winding determination is used to convert the inner shape or holes to CW only. Therefor the outter bondary shapes must be CCW. This details has been documented within OutlineShape, anchor 'windingrules'. Since the conversion of 'CCW -> CW' for inner shapes or holes is covered, a safe user path would be to completely create CCW shapes. However, this has not been hardcoded and is left to the user. Impact: Fixes rendering serif 'g' or 'æ'. The enhanced unit test TestTextRendererNEWT01 produces snapshots for all fonts within FontSet01. While it shows proper rendering of the single Glyphs it exposes another Region/Curve Renderer bug, i.e. sort-of a Region overflow crossing over from the box-end to the start. commit 4aca9d8252afbdc9e7dfd234c086f889623bb140 Author: Sven Gothel Date: Thu Feb 16 05:41:37 2023 +0100 Graph Font: Enhance API doc (source of values), better get*Bounds() names, dropping redundant getMetricWidth*(); Fix getMetricBoundsFU() commit 996ffe0df682981c0eba88130e134c4f94a06415 Author: Sven Gothel Date: Thu Feb 16 05:39:04 2023 +0100 Graph Unit Tests: General cleanup, adding UITypeDemo01 w/ TestObject* to determine CurveRenderer issues commit 6558c7b744525d1db5fe1f0a227958e4f0025622 Author: Sven Gothel Date: Thu Feb 16 02:01:51 2023 +0100 Graph UI: Move methods SceneUIController to UIShape public providing win<->obj coord transformation, enhance documentation a little, Have win<->obj coord transformation in UIShape public: - Move SceneUIController.transformShape() -> UIShape.setTransform() - Move SceneUIController.windowToShapeCoordsImpl() -> UIShape.winToObjCoord() - Add UIShape.objToWinCoord() - Add UIShape.getSurfaceSize() commit b5c604bbdfb8278feaa5e5f5f8c047ab48c4d514 Author: Sven Gothel Date: Thu Feb 16 01:54:58 2023 +0100 Graph: TypecastRenderer: Fix point-loop (no reduced 'count - 1', no break on endOfContour), remove redundant branch B3, add Type-2 and add code dump for testing Realigned renderer code w/ Typecast's AWT demo: - TTF Quadratic Shape - The inner loop 'offset < count' is sufficient, otherwise could drop last point - point_0.endOfCountour is valid as a last point - Branch-3 and hence point-3 is not required as handled via B4 and subsequent B6 - Type-2 Cubic Shape - Added .. not tested yet Also added optional debug code dump via java cmdline `-Djogl.debug.graph.font.Renderer.Code`, which dumps plain OutlineShape construction code for testing and debugging our CurveRenderer. commit 0f40fee0cd5d1dd36f68a02b81f2cff90261ef6b Author: Sven Gothel Date: Thu Feb 16 01:45:38 2023 +0100 Typecast: Glyph: getGlyphIndex() -> getID() to simplify name commit 3d489704360798ff146a6628eec60d52e3607f47 Author: Sven Gothel Date: Thu Feb 16 01:44:50 2023 +0100 Typecast: Assign _glyphIndex w/ ctor argument (+ code cleanup) commit 7db4fe3cd9bbf1deac82e027d0b7dd53fc89971e Author: Sven Gothel Date: Thu Feb 16 01:43:21 2023 +0100 Graph: Merge UIListener01 + UINewtDemo01 -> UIShapeDemo01 to have simple test cases commit 8d598ac75213a7d298b2633bf5d84b215339769e Author: Sven Gothel Date: Wed Feb 15 06:58:54 2023 +0100 Graph: TextRegionUtil: Make addStringToRegion(..) versatile/usable w/ optional AffineTransform (see Label0) commit f8d23faf8655453c65ccc0262697676ca47e91c1 Author: Sven Gothel Date: Wed Feb 15 04:18:17 2023 +0100 Graph: RegionRenderer: Offer borrowing current viewport w/o copy commit 91f5d1019c59f56654f40ce18d70d15117b7f302 Author: Sven Gothel Date: Wed Feb 15 04:17:41 2023 +0100 Graph TextRegionUtil: Move ShapeVisitor to OutlineShape.Visitor and processString(..) to Font, cleaning up .. Further having Font.processString() return the AABBox of the whole string's 'laidout' OutlineShapes, which is used for (debug) Font.getPointsBounds2(..) just to validate the coordinated with the Glyph based AABBox of Font.getPointsBounds(..). Static TextRegionUtil.drawString(..) no more require to pass the temp AffineTransform instances (ugly). commit 250832f581d8acccf0b62259e2ec08adb259be0e Author: Sven Gothel Date: Tue Feb 14 09:43:35 2023 +0100 Graph RegionRenderer: Expose int[4] viewport for convenience commit 3c3f663bfe25e296b46344a2825c6a2714c29c89 Author: Sven Gothel Date: Tue Feb 14 09:42:34 2023 +0100 Graph Font: getGlyph(char symbol -> int glyph_id), add kerning to getPointsBoundsFU(); Glyph: Drop getSymbol() commit 53259c43474eb9bc1475365ed251344202c4c179 Author: Sven Gothel Date: Tue Feb 14 09:32:53 2023 +0100 Graph OutlineShape: Path2F alike sub-path ctor: Add z coordinate for custom plane. commit 1f0bcfa5c7ff62cad3280a18a4e0f779257c46cc Author: David Hall Date: Mon Feb 13 05:04:10 2023 -0500 Add GL_DEBUG_SEVERITY_NOTIFICATION to getDbgSeverityString() commit 6d2009d33495a01ae3b59a4be6004c1a5e7007ad Author: Sven Gothel Date: Mon Feb 13 07:01:54 2023 +0100 Graph Type Rendering: Drop pixelSize and use font em-size [0..1] throughout system. - All pixelSize metrics methods are dropped in Font* - TypecastGlyph.Advance dropped, i.e. dropping prescales glyph advance based on pixelSize - TextRegionUtil produces OutlineShape in font em-size [0..1] added to GLRegion - Adjusted demos commit 93c51380f34c3eb203f46df52fed49a8a967510e Author: Sven Gothel Date: Sun Feb 12 07:17:16 2023 +0100 Graph font/typecast: Adopt to our Typecast updates (see below); Fix kerning; Use TestTextRendererNEWT01 to produce validation snaps - Move kerning handling from Font to Font.Glyph using binary-search for right-glyph-id on kerning subset from this instance (left) - TextRegionUtil: Kerning must be added before translation as it applies before the current right-glyph. - TestTextRendererNEWT01 produces validation snapshots against LibreOffice print-preview snapshots - GPUTextRendererListenerBase01 added another text for kerning validation, show more font-size details (pt, px, mm) commit 87060fe41b559418ea7b383e162d3d80fb515e0b Author: Sven Gothel Date: Sun Feb 12 02:48:16 2023 +0100 Typecast: Mark current status w/ our branch of upstream, jogl_patches, commit 90c4a8348cbe182bf3f0bcc55fd015f19ed0686f commit 8bf9b05ea13978f214c29d5b1220da3cad2489dd Author: Sven Gothel Date: Sun Feb 12 00:57:01 2023 +0100 Typecast: Table: Use package-protected static final const, remove notAvailable String commit cb2b1c0af77b4f2318fb5acafbced52d1add69ae Author: Sven Gothel Date: Sun Feb 12 00:55:54 2023 +0100 Typecast: KernSubtableFormat2: Use package-protection commit e3b0a8ce3de3e9ab7057f129a579dbab7a66ad4a Author: Sven Gothel Date: Sun Feb 12 00:55:23 2023 +0100 Typecast: KernSubtable: Remove getKerningTable(..), will be implemented in higher API layer w/ binary-search commit 0e5e38478a6197b2dc65960c55bc831d6b4796a7 Author: Sven Gothel Date: Sun Feb 12 00:54:40 2023 +0100 GlyfCompositeDescript: Remove useless try { } in ctor; Remove redundant variable in range-based for-loops commit d9be96fcbcf6ca71ef72aa45ca02fcdd25c3b0ff Author: Sven Gothel Date: Sun Feb 12 00:53:13 2023 +0100 Typecast: *Font*: Use constructor instead for static read(). TTFont: Add ctor for File and InputStream commit aea3a62c0139d1dfc208ede21d3f402d9a66df12 Author: Sven Gothel Date: Sat Feb 11 19:01:52 2023 +0100 Update included Typecast library to 2019-09-15 commit 0d55ac0eb4a39a7f8f2a796c7eebd3ea778ba9a7 - Using Typecast's new git repo https://github.com/dcsch/typecast - Preserved our changes - Preserved loading fonts and glyph on input stream w/o font data array copies TODO - Maintain an original branch in Typecast w/ our changes to ease updates. Then we merely need to change the package name. - This also shall help to allow Typecast to use our patches, if so desired. commit feb8de27f848b5213423389cf0e19cbd88095682 Author: Sven Gothel Date: Fri Feb 10 14:20:35 2023 +0100 Font/Graph, {Font, Glyph}/Typecast: Add kerning and expose values in original font-units (FU) to have them scaled later ( fu * pixelScale / unitsPerEM ) Scaling from font-units (funits, or FU) is now performed by the renderer itself, i.e. applying the scale-factor 'fontPixelSize / font.getMetrics().getUnitsPerEM()' to the PMV matrix to render the whole graph GLRegion. This finally provides proper device and resolution independent font utilization. Further, preliminary kerning has been added. +++ Also ... TypecastFont: - getGlyphID(..) getGlyph(..) enforce symbol mapping to Glyph.ID_SPACE Glyph.ID_CR, as some fonts ave an erroneous cmap (FreeSerif-Regular) - add getKerning(..) TODO: Add binary search - Set TypecastFont.USE_PRESCALED_ADVANCE := false, i.e. dropping all prescaled pixel-sized advance values mapped to font pixel-size as we utilize font-units only for later uniform scaling. - Drop virtual getPixelSize() and add static FontScale.toPixels(..) - Add fullString() for debugging purposed, including some font tables commit bc951476c67282d9676f33ee25fb0f697a4dbe45 Author: Sven Gothel Date: Fri Feb 10 14:04:21 2023 +0100 Typecase: OTFont: Provide KernTable accessor commit dc1319bb52558b52a68600f4b1fbe9e290b5c9bd Author: Sven Gothel Date: Fri Feb 10 14:03:48 2023 +0100 Typecast: OTGlyph: Maintain the glyphID, add toString() commit da08083d2155a439a7ccf2460fca10aca6e59d92 Author: Sven Gothel Date: Fri Feb 10 14:02:44 2023 +0100 Typecast: HeadTable: Use 'int' to hold 'uint16' unitsPerEM value commit be0d8cb42fa4c94233a7dd6d89a125ebb7bf2074 Author: Sven Gothel Date: Fri Feb 10 14:01:54 2023 +0100 Typecast: Kerning: Use 'int' to cover 'uint16' values; Detail KernSubtable and hold a KernSubtableFormat0 ref in KernTable commit 6365b7e6bde5f2fc0bc55f19804acc0319eaf5a8 Author: Sven Gothel Date: Mon Feb 6 02:38:25 2023 +0100 Graph: TypecastRenderer: Add comment about TTF Glyph's having Winding.CW commit 18fc81fab7ba11ae3a4cdd1e94c199371f7c2e91 Author: Sven Gothel Date: Mon Feb 6 02:31:14 2023 +0100 Graph: Path2D -> self-contained Path2D (w/ Iterator) fixed; OutlineShape: Add Path2F addPath(..), emphasize required Winding.CW GPURegionGLListener01 used by TestRegionRendererNEWT01 covers Path2F CCW and CW (reverse add) methods. commit a671e88c59153a39e46a64f2cb924d205f06e3f8 Author: Sven Gothel Date: Sun Feb 5 12:34:20 2023 +0100 Graph: OutlineShape: Add positional addVertex() variants for component based addVertex methods commit dddb088571d2d5174ba68aa0a34ad62eaa06243a Author: Sven Gothel Date: Sun Feb 5 12:21:08 2023 +0100 Graph: Fix Region/Text Renderer: Add RegionRenderer enable/disable for blending stubs in display (Mesa3D results are otherwise broken) commit 973bcfcfe5a0f147cf2e00deb50897f23989f26a Author: Sven Gothel Date: Sun Feb 5 12:19:36 2023 +0100 Graph: TestTextRendererNEWT01: No VBAA sample-count on MSAA test, fixed window size 1024x640 commit 79ffd5f330112b755d787a5f79ff8eb985c23476 Author: Sven Gothel Date: Sun Feb 5 12:14:53 2023 +0100 Graph: TestTextRendererNEWT00: Alin w/ other tests, add DEPTH_TEST and allow custom window size commit 180d07d331f935195b1e3bbb2d5cf4525a6b21a0 Author: Sven Gothel Date: Sun Feb 5 12:13:45 2023 +0100 Graph: TypecastRenderer: Simplify addShape*(), use OutlineShape's vertexFactory instance commit dbff115343200e08cf2310a379011f9a9fcdd334 Author: Sven Gothel Date: Sun Feb 5 12:12:42 2023 +0100 Graph: Path2D: Remove redundant accessors, comment on append(..) commit bba021b2ce3b09251dd5635f418d5db5e141a304 Author: Sven Gothel Date: Sun Feb 5 11:44:59 2023 +0100 Graph: OutlineShape: Make class final, getOutlineNumber() -> getOutlineCount() commit c1b03cc7cd6c300bb0fa09d2d32cea2c82b72769 Author: Sven Gothel Date: Sat Feb 4 20:21:59 2023 +0100 Graph; Path2D[Iterator]: Add 'fast path' access to points array reference and index etc, used to avoid arraycopy (efficancy) commit 8f5daf7343b7fd3d4ea83e20cb1dc5ae263a0d38 Author: Sven Gothel Date: Sat Feb 4 20:18:34 2023 +0100 Graph: Complete move jogamp.graph.plane to public com.jogamp.graph.plane commit 3fb68b6060dd49955ef14ab295d4897e720ed8f2 Author: Sven Gothel Date: Sat Feb 4 20:16:21 2023 +0100 Graph: Move jogamp.graph.plane to public com.jogamp.graph.plane