summaryrefslogtreecommitdiffstats
path: root/make
Commit message (Collapse)AuthorAgeFilesLines
* scripts/tests.sh: Add TestGLJPanelReadd01Bug1310AWTSven Gothel2023-08-071-1/+2
|
* Bug 1441, 852: Annotate ARB_draw_indirect dual sourcing, remove redundant ↵Sven Gothel2023-08-062-8/+1
| | | | manual declarations
* Bug 1441 - Fix ARB_multi_draw_indirect: Belongs to GL4, ↵Sven Gothel2023-08-066-19/+115
| | | | glMultiDrawElementsIndirect shall only have VBO indirect access
* Update tests script .. (consolidate GraphUI demo lines)Sven Gothel2023-08-011-24/+8
|
* Add Graph/GraphUI UISceneDemoU01a, showcase integration and multiple ↵Sven Gothel2023-08-011-1/+2
| | | | projection settings
* Add {GL, GLContext}.getDefaultDrawBuffer() to complement getDefaultReadBuffer()Sven Gothel2023-07-151-0/+5
|
* Adopt to GlueGen commit 952e0c1f83c9e0583a97d39988a6ba1428911c8cSven Gothel2023-06-1613-25/+58
| | | | | | | | | 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.
* Add swt 4.26 for gtk-linux-ppc64leTom G. Christensen2023-06-078-0/+1589
| | | | | | | This is required for the Linux/ppc64le target to build. ba2338ad6c24516a9686baf75c289d4a3fac488bd68a3b88e725cbf611f5e681209feb6ddf5848e21dcf0e9c33c1c8d898f44f02ae2dc499816a8fe191525bf9 swt-4.26-gtk-linux-ppc64le.zip
* Add support for Linux/ppc64le architectureTom G. Christensen2023-06-074-4/+33
|
* Add support for riscv64 architectureAndreas Schwab2023-05-244-4/+32
|
* make/build-test.xml: Add JOAL to classpathSven Gothel2023-05-233-5/+7
|
* Relocate 'jar/atomic/jogl-fonts-p0.jar' -> 'jar/jogl-fonts-p0.jar' to ↵Sven Gothel2023-05-201-0/+2
| | | | | | | 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.
* build.xml: Preserve README.md, copy filtered README-zip-bundles.txt to ↵Sven Gothel2023-05-201-1/+2
| | | | archive w/ same name
* make/scripts/tests.sh: Adjust D_ARGS for AudioSink (moved to gluegen/joal); ↵Sven Gothel2023-05-171-5/+6
| | | | | | | Validated GLMediaPlayer ... Validated GLMediaPlayer w/ new AudioSink and channels > 2 for ALAudioSink with openal-soft > 1.18 (w/o AL_SOFT_buffer_samples).
* Common av classes (*AudioSink, ..) are promoted to gluegen (commit ↵Sven Gothel2023-05-171-2/+2
| | | | 270172bcbd91f96d4a38a3d73e23d744f57a25b8) and joal (commit 03f4bb63ce8a358b1c2ef303480e1887d72ecb2e)
* HiDPI: Revise AWT GLCanvas/GLJPanel ScalableSurface: No setSurfaceScale(), ↵Sven Gothel2023-05-152-4/+5
| | | | | | | | | | | 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
* HiDPI: Complete testing on Windows (AWT, NEWT, AWT+NEWT): AWT pixel scale ↵Sven Gothel2023-05-143-2/+25
| | | | propagated properly to our AWT GLCanvas and NEWT
* HiDPI AWT/NEWT: Propagate AWT enforced pixelScale via setSurfaceScale() ↵Sven Gothel2023-05-141-1/+5
| | | | blocking native change by monitor-pixelScale (Windows, X11)
* JOGL File Layout: Have *-java-src.zip inside jar folder, add missing ↵Sven Gothel2023-05-071-8/+5
| | | | jar/jogl-demos-java-src.zip
* doc/HowToBuild.html: Align w/ GlueGen (MacOS changes, min deployment target ↵Sven Gothel2023-05-061-1/+1
| | | | 10.7)
* Windows tests scripts: Update Graph* and *Movie* demos cmdline launchesSven Gothel2023-05-044-20/+43
|
* HowToBuild: Windows: We use MinGW64 w/ 'posix threads' instead of 'win32 ↵Sven Gothel2023-05-041-1/+1
| | | | threads', allowing C++ std::mutex etc to be used (openal-soft)
* GraphUI Working GridLayout w/ and w/o cell-size and alignment; Added BoxLayout.Sven Gothel2023-04-291-1/+2
|
* GraphUI: Add BoxLayout and Margin, todo: Have GridLayout properly use Gap w/ ↵Sven Gothel2023-04-181-1/+2
| | | | Padding and alignment (Margin?) (CSS alike)
* GraphUI Tests: Add TestTextRendererNEWT21 using FontViewListener01 (like ↵Sven Gothel2023-04-141-0/+2
| | | | FontView01 demos) rendering a grid of each glyph for better validation for many fonts and renderModes/sampleCount
* GraphUI Demos: Adding prelim FontView01, which may become a 'little ↵Sven Gothel2023-04-131-1/+2
| | | | FontForge' ;-)
* GraphUI GridLayout: Functional Grid Layout w/ Padding, demo'ed in ↵Sven Gothel2023-04-121-2/+2
| | | | | | | | | | 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.
* GraphUI UISceneDemo03b: Action with the Glyph Group Container: Rotate auto ↵Sven Gothel2023-04-101-2/+3
| | | | and w/ scroll-wheel (or zoom if alt is pressed)
* GraphUI: Adjust for rotation: Drag-resize and -move (flip x- and/or y-axix), ↵Sven Gothel2023-04-081-4/+4
| | | | | | 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.
* Doxygen: Refine javapublic + javaall, update README.md and www/index.html textSven Gothel2023-04-082-2377/+24
|
* Adding experimental Doxygen target 'doxygen.public' .. (WIP)Sven Gothel2023-04-073-0/+2397
| | | | | | | | | | | | 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.
* PMVMatrix rewrite using Matrix4f, providing SyncMatrix4f* for GLUniformData; ↵Sven Gothel2023-04-071-12/+17
| | | | | | | | | | | | | | | | | 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
* Matrix4f Perf: Enhance invert(), Drop (test) load on Matrix4f.mul(Matrix4f) ↵Sven Gothel2023-04-051-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* GraphUI: Adopting Vec*f API; Adding Group; Scene + Group are Container, ↵Sven Gothel2023-04-051-2/+2
| | | | | | | | | | | | | | | | traversing the PMVMatrix throughout childs (-> see TreeTool). Utilizing the Vec*f (and Matrix4f) API w/ AABBox et al renders our code more clean & safe, see commit 15e60161787224e85172685f74dc0ac195969b51. A Group allows to contain multiple Shapes, hence the PMVMatrix must be traversed accordingly using TreeTool for all operations (draw, picking, win->obj coordinates, ..). Hence Scene + Group are now implementing Container and reuse code via TreeTool and a Shape.Visitor*. This will allow further simplification of user code.
* Math: Complete Matrix4f w/ Vec[234]f and adopt it throughout Quaternion, ↵Sven Gothel2023-04-052-2/+14
| | | | | | | | | | | | | | | | | | | | | | | | | | | Ray, AABBox, Frustum, Stereo*, ... adding hook to PMVMatrix Motivation was to simplify matrix + vector math usage, ease review and avoid usage bugs. Matrix4f implementation uses dedicated float fields instead of an array. Performance didn't increase much, as JVM >= 11(?) has some optimizations to drop the array bounds check. AMD64 + OpenJDK17 - Matrix4f.mul(a, b) got a roughly ~10% enhancement over FloatUtil.multMatrix(a, b, dest) - Matrix4f.mul(b) roughly ~3% slower than FloatUtil.multMatrix(a, b, dest) - FloatUtil.multMatrix(a, a_off, b, b_off, dest) is considerable slower than all - Matrix4f.invert(..) roughly ~3% slower than FloatUtil.invertMatrix(..) RaspberryPi 4b aarch64 + OpenJDK17 - Matrix4f.mul(a, b) got a roughly ~10% enhancement over FloatUtil.multMatrix(a, b, dest) - Matrix4f.mul(b) roughly ~20% slower than FloatUtil.multMatrix(a, b) - FloatUtil.multMatrix(a, a_off, b, b_off, dest) is considerable slower than all - Matrix4f.invert(..) roughly ~4% slower than FloatUtil.invertMatrix(..) Conclusion - Matrix4f.mul(b) needs to be revised (esp for aarch64) - Matrix4f.invert(..) should also not be slower ..
* GraphUI: Add GlyphShape representing a single Font.Glyph as a GraphShape; ↵Sven Gothel2023-03-301-2/+2
| | | | | | | | | | | | | | | | | | Use w/ UISceneDemo03 Type Animation... A list of GlyphShape can be created via GlyphShape.processString(..), which preserves all details incl. intended original unscaled position and its kerning. Whitespace or contourless Glyphs are dropped. A GlyphShape is represented in font em-size [0..1] unscaled. +++ UISceneDemo03 Type Animation - Using GlyphShape and apply scaling via its Shape.setScale() - Recalc fontScale per used text - Refined 'arrival' criteria and smoothing out near target w/ speed-up rotation - Using GraphUIDemoArgs to parse common commandline demo options
* GraphUI: Decouple GraphShape from Shape, i.e. allow future Shape w/o ↵Sven Gothel2023-03-281-2/+4
| | | | Graph/GLRegion
* GraphUI Demos: (Text) Type Animation ...Sven Gothel2023-03-221-1/+2
|
* GraphUI UISceneDemo20: Consolidate the actual implementation and main ↵Sven Gothel2023-03-211-5/+7
| | | | launcher to our new UISceneDemo naming series
* GraphUI Demos: Bring back GPUUISceneGLListener0A ..Sven Gothel2023-03-201-2/+3
| | | | | | | | | | | | | | | | | | | | - 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)
* GraphUI: Add UISceneDemo00 for linear animation in one main function; ↵Sven Gothel2023-03-191-0/+1
| | | | UISceneDemo01 simply provides shape drag-move and -resize
* Graph UI: Apply API changes to demos *WIP* (not all working yet, but compile ↵Sven Gothel2023-03-191-2/+4
| | | | clean)
* API doc cleanup, add + refine math testsSven Gothel2023-03-191-0/+3
| | | | API doc
* GraphUI: Rename UISceneDemo00 -> UISceneDemo01Sven Gothel2023-03-151-2/+2
|
* GraphUI: Add a most simple Scene demo with one Shape.Sven Gothel2023-03-141-0/+2
|
* make/scripts/setenv.jogl.sh: Add JOAL_LIB_DIR to LD_LIBRARY_PATH (used if ↵Sven Gothel2023-03-141-2/+3
| | | | not testing using jars but classpath)
* build: Disable oculusvr by default, allow manual enable via property ↵Sven Gothel2023-03-142-1/+9
| | | | 'oculusvr.enabled'
* build-test.xml: Add src.demos to determine to skip build or notSven Gothel2023-03-131-0/+1
|
* Move png assets (NEWT icons + GLMediaPlayer dummy/test) to simple classpath, ↵Sven Gothel2023-03-137-9/+24
| | | | allowing access w/o jars. TODO: Test Android.
* GraphUI: Shape: Add build-in resize w/ 1-pointer-click and drag in 1/4th ↵Sven Gothel2023-03-111-2/+2
| | | | bottom-left or bottom-right corner. Rename translate -> position.