This list exposes building blocks
for potential use and business case scenarios
using Java & JogAmp on Desktop and Embedded Devices.
Notably Graph & Graph UI as well as Wayland & Vulkan support could be of interest here?
Also see Completed Features Objectives ...
Graph
Graph/GraphUI Progress Blog Entries
Desired Work Items
This is an ad-hoc list of desired features and fixes,
which shall result in proper bug-reports soon.
After having reached UI usability with widgets and clipping,
the following items are becoming more interesting
- Fix general issues with current implementation and API, if any
- Fix Graph rendering bugs (Tessellation)
- Use of super-sized triangles to render Graph lines & curves to allow
- Using a one-pass smooth AA Graph renderer to save resources otherwise used in our pass-2 FBO supersampling renderer
- Generate outlines, i.e. outlined fonts
- Generate special effects like glowing/pumping outlines indicating selection etc
- Allow passing or better attaching per-vertex color to Graph Outline (API)
Add subtitles in MediaPlayer GraphUI widget (done)
- Add video encoding in our FFmpeg binding, i.e. an FFMPEGMediaRecorder (Encoding + Multiplexing)
Further more, if so desired, a C++ implementation of our Graph + GraphUI framework
may also be of interest.
In case any company or organization is interested and likes to support
this work and may also like to receive support in adopting this framework,
please contact Göthel Software e.K.
Graph UI
Graph UI will enable an immersive UI within the 3D scene on the desktop, mobile and on bare-metal embedded systems without a windowing system.
Graph UI utilizes Resolution Independent NURBS Curves Rendering using Programmable Graphics Pipeline, i.e. rendering curves directly on the GPU, resolution independent [ paper, slides ].
This method allows us to have an ultimate fast font and UI rendering engine, suitable for all devices and applications. No CPU based curve nor font pre-rendering (matching a target resolution) is required.
Think of an integrated QT or OpenJFX in your 2D/3D application
working on desktop and embedded devices even w/o any windowing system on top
of a plain console DRM/GBM as support by JOGL(EGL) and NEWT
as demonstrated by Xerxes on a Raspberry Pi4.
Reimagine Java on Desktop & Bare-Metal Devices
demonstrates the updated Graph Curve Rendering and UI, while this update shows clipping and widgets. Further updates will be posted here....
Notably the Graph Curve Rendering is almost feature complete, as well as our own user input including gesture detection within NEWT.
- Parent Main Node
- Dependency Tree
- All GraphUI
- Open Items graphui
Full Query
4 Total;
4 Open (100%);
0 Resolved (0%);
0 Verified (0%);
- Completed Items graphui
Full Query
15 Total;
0 Open (0%);
15 Resolved (100%);
0 Verified (0%);
Jogl / Graph
Dependency Tree Graph Font Issues
All Jogl Graph
- Open Items Jogl / graph
Full Query
3 Total;
3 Open (100%);
0 Resolved (0%);
0 Verified (0%);
- Completed Items Jogl / graph
Full Query
33 Total;
0 Open (0%);
32 Resolved (96.97%);
1 Verified (3.03%);
OpenJFX
Bug report 607 describes different ways to either
- enhance external rendering via JOGL into an OpenJFX UI elements, or
- to replace OpenJFX's Glass w/ NEWT and Prism's OpenGL coding with JOGL
NEWT
Full Query
11 Total;
11 Open (100%);
0 Resolved (0%);
0 Verified (0%);
NEWT + Wayland
Currently NEWT supports the X11/Xorg windowing server on Unix alike platforms.
It might be desired to add direct support to Wayland, as we already added support for
bare metal devices w/o a windowing system via the Linux DRM/GBM console mode
throughout JOGL + NEWT.
Vulkan
Full Query
4 Total;
4 Open (100%);
0 Resolved (0%);
0 Verified (0%);
Video Encoding/Decoding & Player
Across our releases, we supported video encoding and decoding (with a player)
based on either FFmpeg or Android's library as shown in this clip at 2:12 min mark.
Goal would be to
- Update general ffmpeg video decoding support
- Enhance ffmpeg video encoding support
- Potentially add better control about video-frame to framebuffer control for editing software
See related buglist
Full Query
14 Total;
3 Open (21.43%);
11 Resolved (78.57%);
0 Verified (0%);
iOS Enhancements
Early iOS support has been demonstrated in 2019
Enhancing this port would allow to use JogAmp in a similar fashion as on Android,
but using an OpenJDK iOS build.
Dependency Tree
Root Parent Entry
Full Query
2 Total;
1 Open (50%);
1 Resolved (50%);
0 Verified (0%);
Misc
Full Query
ID |
Version |
Product |
Component |
Priority |
Severity |
Status |
Summary |
544 |
tbd |
GraphUI |
Core |
P3 |
enhancement |
UNCONFIRMED |
RFE for UI part of the graph package |
592 |
tbd |
Jinput |
core |
P5 |
enhancement |
IN_PROGRESS |
Migrate Jinput to JogAmp |
595 |
tbd |
Newt |
core |
P5 |
enhancement |
CONFIRMED |
NEWT event propagation to Jinput |
607 |
tbd |
Jogl |
javafx |
P5 |
enhancement |
IN_PROGRESS |
JavaFX 2+ and JOGL should work together |
674 |
3.0.0 |
Jogl |
swt |
P4 |
major |
IN_PROGRESS |
JOGL/SWT Windowing/Surface Interoperability |
686 |
tbd |
Jogl |
video |
P3 |
enhancement |
CONFIRMED |
Add native Libraries for GLMediaPlayer fallback w/ patent free Codecs like WebM or AV1 |
794 |
tbd |
Jogl |
wayland |
--- |
enhancement |
CONFIRMED |
Add Wayland Windowing/Surface Interoperability |
795 |
tbd |
Newt |
wayland |
--- |
enhancement |
CONFIRMED |
Add native Wayland Backend for NEWT |
803 |
2.5.0 |
GraphUI |
Core |
--- |
enhancement |
RESOLVED |
Establish Graph-UI Core .. |
804 |
tbd |
GraphUI |
Plugin |
--- |
enhancement |
UNCONFIRMED |
Add SVG Input Specification (Curved Geometry, Object Interaction) to Graph-UI |
807 |
tbd |
Newt |
core |
--- |
enhancement |
UNCONFIRMED |
NEWT Input: Add support for more devices a.k.a (Accelerometer, GPS, Compass, Joystick ..) |
808 |
tbd |
Newt |
core |
--- |
enhancement |
UNCONFIRMED |
NEWT Input: Add support for Gyroscope / Accelerometer Devices |
809 |
tbd |
Newt |
core |
--- |
enhancement |
UNCONFIRMED |
NEWT Input: Add support for Compass Devices |
811 |
tbd |
Jogl |
util |
P5 |
enhancement |
UNCONFIRMED |
The legacy text renderer doesn't support GL3 |
812 |
tbd |
Newt |
core |
--- |
enhancement |
CONFIRMED |
Add USB Topology / Graph to query device location etc. |
813 |
tbd |
Newt |
core |
--- |
enhancement |
CONFIRMED |
Allow InputDevice to be auto-assigned, e.g. via USB Topology (Monitor - Mouse/Keyboard) |
814 |
tbd |
Newt |
core |
--- |
enhancement |
CONFIRMED |
Enhance PointerEvent / Deprecate MouseEvent |
933 |
3.0.0 |
Jogl |
video |
P4 |
enhancement |
CONFIRMED |
Force GLMediaPlayer not to depend on machine time |
953 |
3.0.0 |
Jogl |
awt |
P5 |
enhancement |
CONFIRMED |
Allow the creation of a BufferedImage from a TextureData |
973 |
tbd |
Jogl |
core |
--- |
enhancement |
UNCONFIRMED |
NativeWindowFactory: Needs service provider interface (SPI) for TK specific implementations (Scaling) |
1008 |
tbd |
General |
builds |
--- |
enhancement |
IN_PROGRESS |
Adopt Automated Validation of Version Semantics |
1040 |
2.5.0 |
Jogl |
graph |
--- |
enhancement |
RESOLVED |
Font space character width problem (GPU renderer) |
1045 |
tbd |
Jogl |
opengl |
--- |
enhancement |
UNCONFIRMED |
Implement GLUgles2 |
1061 |
tbd |
Jogl |
graph |
--- |
enhancement |
RESOLVED |
Make possibility to draw antialiased text to different frame buffer |
1064 |
tbd |
Jogl |
graph |
P1 |
major |
IN_PROGRESS |
Fix Graph Font Rendering (group for related bugs) |
1095 |
tbd |
General |
infrastructure |
P3 |
enhancement |
CONFIRMED |
Establish self hosted forum/mailinglist on jogamp.org |
1115 |
tbd |
Jogl |
core |
--- |
enhancement |
UNCONFIRMED |
SRGB implementation |
1131 |
tbd |
Jogl |
graph |
--- |
major |
RESOLVED |
Some TTF fonts not working in the new Graph API renderer |
1132 |
tbd |
Jogl |
graph |
--- |
major |
RESOLVED |
OTF fonts can't be loaded in Graph API renderer |
1137 |
tbd |
Jogl |
vulkan |
--- |
enhancement |
CONFIRMED |
Add Support for Vulkan (group) |
1138 |
tbd |
Jogl |
vulkan |
--- |
enhancement |
UNCONFIRMED |
Common Subset of OpenCL >= 2.1 / Vulkan Command API (Queue, Buffer) and Context |
1139 |
tbd |
Jogl |
vulkan |
--- |
enhancement |
UNCONFIRMED |
Generalize high-level API GLContext, GLDrawable, GLAutoDrawable for Vulkan and OpenGL |
1140 |
tbd |
Jogl |
vulkan |
--- |
enhancement |
UNCONFIRMED |
Add Support for SPIR-V >= 2.0 (group) |
1152 |
tbd |
Jogl |
util |
--- |
enhancement |
UNCONFIRMED |
StereoDevice: Add HSW Display (Health and Safety Warning) at least in combination w/ OculusVR |
1162 |
tbd |
Jogl |
graph |
--- |
normal |
RESOLVED |
Using TextRegionUtil (RegionRenderer and RenderState) with user GL code |
1178 |
tbd |
Newt |
embedded |
--- |
enhancement |
IN_PROGRESS |
Prevent dual mousepointers and improve raspberry pi xorg experience when using NEWT BCM VC IV on Raspberry Pi |
1179 |
tbd |
Jogl |
windows |
--- |
enhancement |
UNCONFIRMED |
Provide fallback OpenGL ES 2 & 3 implementation using lib ANGLE on Windows |
1197 |
tbd |
Jogl |
util |
P5 |
enhancement |
UNCONFIRMED |
Texture and image API revamping |
1228 |
tbd |
Jogl |
graph |
--- |
enhancement |
RESOLVED |
Allow setting other glBlendFunc in GLRegion renderer |
1230 |
tbd |
Jogl |
graph |
--- |
normal |
RESOLVED |
Two-pass TextRenderer doesn't work if culling is enabled |
1242 |
3.0.0 |
Jogl |
util |
--- |
enhancement |
CONFIRMED |
Fix 'Texture.updateImage(...)' API and Implementation |
1256 |
tbd |
Gluegen |
core |
P3 |
enhancement |
IN_PROGRESS |
Provide General GlueGen Annotation Processor (Replacing specialized CStruct) |
1258 |
tbd |
Gluegen |
core |
P4 |
enhancement |
CONFIRMED |
Add Multiple JNI/Native to Java Callback Generation Techniques |
1260 |
3.0.0 |
Jogl |
video |
P4 |
minor |
CONFIRMED |
Allow the change of MAXIMUM_VIDEO_ASYNC of GLMediaPlayer |
1261 |
tbd |
Jogl |
opengl |
P4 |
enhancement |
UNCONFIRMED |
Allow changing of texture sampler type for multisampled FBO |
1262 |
tbd |
Jogl |
graph |
P4 |
major |
RESOLVED |
Allow multi-pass font rendering to choose FBO to render to |
1264 |
tbd |
Jogl |
util |
P5 |
normal |
UNCONFIRMED |
Methods to access (read, write) to pixels in TextureData |
1266 |
tbd |
Jogl |
awt |
P5 |
normal |
UNCONFIRMED |
Per canvas GLSL vertical flip skip method |
1303 |
tbd |
Jocl |
opencl |
P4 |
enhancement |
CONFIRMED |
Add ability to use clRetainMemObject() on CLBuffers instead of automatically releasing |
1321 |
tbd |
Jogl |
util |
P4 |
enhancement |
UNCONFIRMED |
JPEG encoder |
1323 |
tbd |
Jogl |
opengl |
P4 |
minor |
UNCONFIRMED |
Enhance the math utilities to support more operations on vectors, matrices and quaternions |
1328 |
tbd |
Java3D |
core |
P4 |
minor |
UNCONFIRMED |
Support for Compressed Texture formats DDS, ASTC, ETC2(container KTX) |
1335 |
tbd |
Java3D |
core |
P4 |
normal |
UNCONFIRMED |
Requesting a 24 depth bit cap can return an 8bit depth buffer if 16bit is the max |
1336 |
tbd |
Java3D |
core |
P4 |
normal |
UNCONFIRMED |
New property to default disable picking and collision testing |
1340 |
tbd |
Java3D |
core |
P4 |
normal |
UNCONFIRMED |
Vecmath uses import java.awt.Color which is poor design |
1341 |
tbd |
Java3D |
core |
P4 |
normal |
UNCONFIRMED |
MasterControl.stencilClear defaults to false, however true would be simpler |
1342 |
tbd |
Java3D |
core |
P4 |
normal |
UNCONFIRMED |
Add a SparseArray into Java3D for performance |
1343 |
tbd |
Java3D |
core |
P4 |
normal |
UNCONFIRMED |
New property j3d.autocompile |
1344 |
tbd |
Java3D |
core |
P4 |
normal |
UNCONFIRMED |
GL2ES2Pipeline fix texturemapping and inittexturemapping |
1345 |
tbd |
Java3D |
core |
P4 |
normal |
UNCONFIRMED |
GL2ES2Pipeline fix textureFillBackground |
1346 |
tbd |
Java3D |
core |
P4 |
normal |
UNCONFIRMED |
GL2ES2Pipeline fix decalling methods |
1349 |
tbd |
Java3D |
core |
P4 |
normal |
UNCONFIRMED |
Remove deprecated methods, use try with resource, generics and return type refinement in Java3D 1.7 |
1352 |
tbd |
Jogl |
util |
P4 |
minor |
UNCONFIRMED |
Identify if the pressed CTRL button was the right or left |
1361 |
3.0.0 |
Newt |
core |
P4 |
normal |
CONFIRMED |
Remove Flickering when resizing a Newt Window |
1368 |
tbd |
General |
builds |
P4 |
normal |
IN_PROGRESS |
Source Certification Contract (SCC) |
1373 |
2.5.0 |
General |
generic |
P4 |
major |
VERIFIED |
Support High-DPI across Platforms and Modules |
1404 |
tbd |
General |
generic |
P4 |
enhancement |
CONFIRMED |
Support Java 11+ Features (Module Encapsulation, jlink, ..) |
1427 |
3.0.0 |
Default |
default |
P5 |
enhancement |
UNCONFIRMED |
Move JMonkeyEngine's JogAmp backend into JogAmp repositories |
1434 |
2.5.0 |
Gluegen |
core |
P4 |
normal |
RESOLVED |
GlueGen: Revise Struct Mapping (No native code, support all pointer-pointer, func-pointer and pointer to const-type) |
1435 |
2.5.0 |
Gluegen |
core |
P4 |
normal |
RESOLVED |
GlueGen: Add support for JavaCallback |
1436 |
2.5.0 |
General |
builds |
P4 |
normal |
RESOLVED |
Build for older MacOS 17 (High Sierra), 18 Mojave and 19 (Catalina) support |
1437 |
2.5.0 |
Joal |
core |
P4 |
normal |
RESOLVED |
Use openal-soft to v1.23.1 buildin for GNU/Linux, MacOS and Windows |
1438 |
2.5.0 |
Joal |
core |
P4 |
normal |
RESOLVED |
Consolidate Sound3D / ALAudioSink w/ matching AudioSink + GLMediaPlayer |
1439 |
2.5.0 |
Joal |
core |
P4 |
normal |
RESOLVED |
Add AL_SOFT_events support via GlueGen JavaCallback and using extension in ALAudioSink |
1440 |
2.5.0 |
Joal |
core |
P4 |
normal |
RESOLVED |
Add SimpleSineSynth and add JOAL backend to jsynth |
1442 |
2.5.0 |
Gluegen |
core |
P4 |
normal |
RESOLVED |
GlueGen: Parse inner classes & interfaces of Java source files |
1443 |
2.5.0 |
Gluegen |
core |
P4 |
normal |
RESOLVED |
GlueGen: Parse Java annotations in source files |
1445 |
3.0.0 |
Gluegen |
core |
P4 |
normal |
UNCONFIRMED |
Add (Khronos) XML frontend parallel to existing C-Header frontend |
1448 |
2.5.0 |
Gluegen |
core |
P4 |
normal |
RESOLVED |
Merge upstream JCPP v1.4.14 and drop our PCPP |
1451 |
tbd |
Gluegen |
core |
P4 |
normal |
IN_PROGRESS |
Synchronize GlueGen Documentation |
1483 |
tbd |
GraphUI |
Plugin |
P4 |
normal |
CONFIRMED |
Enhanced Graph-UI Elements - II |
1506 |
tbd |
General |
generic |
P4 |
normal |
UNCONFIRMED |
Support WebAssembly (wasm) Target Platform (browser/web) |
82 Total;
62 Open (75.61%);
19 Resolved (23.17%);
1 Verified (1.22%);