| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
| |
|
|
|
|
| |
jogl{s->}-demo{->s}-android
|
| |
|
|
|
|
| |
shall handle null streamWorker, i.e. when using NullGLMediaPlayer
|
|
|
|
| |
definitions, now properly passed from GlueGen
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
| |
|
|
|
|
| |
manual declarations
|
|
|
|
| |
glMultiDrawElementsIndirect shall only have VBO indirect access
|
| |
|
|
|
|
| |
projection settings
|
| |
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
| |
This is required for the Linux/ppc64le target to build.
ba2338ad6c24516a9686baf75c289d4a3fac488bd68a3b88e725cbf611f5e681209feb6ddf5848e21dcf0e9c33c1c8d898f44f02ae2dc499816a8fe191525bf9
swt-4.26-gtk-linux-ppc64le.zip
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
| |
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.
|
|
|
|
| |
archive w/ same name
|
|
|
|
|
|
|
| |
Validated GLMediaPlayer ...
Validated GLMediaPlayer w/ new AudioSink
and channels > 2 for ALAudioSink with openal-soft > 1.18 (w/o AL_SOFT_buffer_samples).
|
|
|
|
| |
270172bcbd91f96d4a38a3d73e23d744f57a25b8) and joal (commit 03f4bb63ce8a358b1c2ef303480e1887d72ecb2e)
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
| |
propagated properly to our AWT GLCanvas and NEWT
|
|
|
|
| |
blocking native change by monitor-pixelScale (Windows, X11)
|
|
|
|
| |
jar/jogl-demos-java-src.zip
|
|
|
|
| |
10.7)
|
| |
|
|
|
|
| |
threads', allowing C++ std::mutex etc to be used (openal-soft)
|
| |
|
|
|
|
| |
Padding and alignment (Margin?) (CSS alike)
|
|
|
|
| |
FontView01 demos) rendering a grid of each glyph for better validation for many fonts and renderModes/sampleCount
|
|
|
|
| |
FontForge' ;-)
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
| |
and w/ scroll-wheel (or zoom if alt is pressed)
|
|
|
|
|
|
| |
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.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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 ..
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
| |
Graph/GLRegion
|
| |
|
|
|
|
| |
launcher to our new UISceneDemo naming series
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- 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)
|
|
|
|
| |
UISceneDemo01 simply provides shape drag-move and -resize
|
|
|
|
| |
clean)
|
|
|
|
| |
API doc
|