SW Tracking Report Feature Objectives Overview

From JogampWiki
Revision as of 02:42, 21 January 2024 by Sgothel (talk | contribs) (→‎Graph)
Jump to navigation Jump to search

This list exposes building blocks for potential use and business case scenarios using Java & JogAmp on Desktop and Embedded Devices.

Notably Graph UI could be of interest here?

Also see Completed Features Objectives ...

Graph

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)
  • Implement a one-pass smooth AA Graph renderer, allowing to save resources of pass-2 FBO supersampling
  • Allow passing per-vertex color to Graph Outline (API)
  • Add subtitles in MediaPlayer GraphUI widget
  • Add video encoding in our FFMPeg binding, i.e. an FFMPEGMediaRecorder (Encoding + Multiplexing)

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 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. 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

No results.

0 Total; 0 Open (0%); 0 Resolved (0%); 0 Verified (0%);


Completed Items graphui

No results.

0 Total; 0 Open (0%); 0 Resolved (0%); 0 Verified (0%);


Jogl / Graph

Dependency Tree Graph Font Issues

All Jogl Graph

Open Items Jogl / graph
Full Query
ID Version Product Component Priority Severity Status Summary
1064 tbd Jogl graph P1 major IN_PROGRESS Fix Graph Font Rendering (group for related bugs)
1502 2.6.0 Jogl graph P4 normal IN_PROGRESS Graph: Improve Performance of Non-Convex/Intersection Classification and/or Intersection-Test itself (Bug 1501)
1503 2.6.0 Jogl graph P4 normal IN_PROGRESS Graph: Resolve Tessellation Bugs (Delaunay Triangulation) - Part II

3 Total; 3 Open (100%); 0 Resolved (0%); 0 Verified (0%);


Completed Items Jogl / graph
Full Query
ID Version Product Component Status Resolution Summary
492 2 Jogl graph VERIFIED FIXED New TextRenderer on Win7-64bit-NV-QuadroFX5800 Java-32bit - FBObject produces GL_OUT_OF_MEMORY
636 2 Jogl graph RESOLVED FIXED Quaternion multiplication unexpected behavior
703 2 Jogl graph RESOLVED FIXED Quaternion SLERP not working jumping and returning incorrect interpolation
754 2 Jogl graph RESOLVED FIXED Remove Ubuntu fonts from jogl-all.jar, provide it separately to reduce footprint for the masses.
801 2 Jogl graph RESOLVED FIXED Cleanup Graph API, Remove Redundancies.
802 2 Jogl graph RESOLVED FIXED Enhance Graph Performance w/ Text Rendering
1040 2.5.0 Jogl graph RESOLVED FIXED Font space character width problem (GPU renderer)
1041 2.6.0 Jogl graph RESOLVED FIXED GPU Font rendering bugs on bold fonts
1061 tbd Jogl graph RESOLVED WONTFIX Make possibility to draw antialiased text to different frame buffer
1091 2.3.0 Jogl graph RESOLVED FIXED Graph FontFactory: Add method allowing Font loading via InputStream
1131 tbd Jogl graph RESOLVED FIXED Some TTF fonts not working in the new Graph API renderer
1132 tbd Jogl graph RESOLVED WONTFIX OTF fonts can't be loaded in Graph API renderer
1133 2.6.0 Jogl graph RESOLVED FIXED Some TTF fonts producing squares instead of characters
1162 tbd Jogl graph RESOLVED INVALID Using TextRegionUtil (RegionRenderer and RenderState) with user GL code
1228 tbd Jogl graph RESOLVED WONTFIX Allow setting other glBlendFunc in GLRegion renderer
1229 2.6.0 Jogl graph RESOLVED FIXED Some TextRenderer tests not giving expected results
1230 tbd Jogl graph RESOLVED WONTFIX Two-pass TextRenderer doesn't work if culling is enabled
1262 tbd Jogl graph RESOLVED WONTFIX Allow multi-pass font rendering to choose FBO to render to
1272 tbd Jogl graph RESOLVED FIXED Two-pass TextRenderer color changing during runtime doesn't work if glyph caching is enabled
1355 tbd Jogl graph RESOLVED FIXED buggy text rendering in GPUTextNewtDemo
1461 2.6.0 Jogl graph RESOLVED FIXED Graph Fonts: Add 'Material Icons Round-Regular' (APL-2 license)
1462 2.6.0 Jogl graph RESOLVED FIXED Graph Font: Add name + codepoint to ID and Glyph mapping plus traversing through all Glyphs
1463 2.6.0 Jogl graph RESOLVED FIXED Graph Font: Whitespace or undefined Glyphs shall not cover (any) height exceeding overall CharSequence
1465 2.6.0 Jogl graph RESOLVED FIXED Graph / GraphUI: Render a Region's ColorTexture in proper aspect-ratio, letter-boxed or zoomed (config)
1466 2.6.0 Jogl graph RESOLVED FIXED Graph / GraphUI: Fix color mixing in Region shader with texture, colorStatic and colorChannel
1485 2.6.0 Jogl graph RESOLVED FIXED Graph: Support AABBox Clipping to [GL]Region
1486 2.6.0 Jogl graph RESOLVED FIXED Graph/GraphUI AA-Quality + SampleCount Params: Push 'em down to RegionRenderer's RenderState usually rarely set from top of user API, reducing complexity
1487 2.6.0 Jogl graph RESOLVED FIXED Graph: Use Frustum Clipping instead of AABBox + GraphUI Support
1488 2.6.0 Jogl graph RESOLVED FIXED Graph: Resolve Performance Regression in RegionRenderer's ShaderKey Utilization
1493 2.6.0 Jogl graph RESOLVED FIXED GLMediaPlayer/GraphUI: Support Displaying Text/ASS Subtitles
1494 2.6.0 Jogl graph RESOLVED FIXED GLMediaPlayer/GraphUI: Support Displaying Bitmap'ed Subtitles (PGS ..)
1497 2.6.0 Jogl graph RESOLVED FIXED Merge Bernhard Haumacher's typecast work, providing documentation as well as Cmap table fix
1501 2.6.0 Jogl graph RESOLVED FIXED Graph: Resolve Tessellation Bugs (Delaunay Triangulation)

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
ID Version Product Component Priority Severity Status Summary
592 tbd Jinput core P5 enhancement IN_PROGRESS Migrate Jinput to JogAmp
595 tbd Newt core P5 enhancement CONFIRMED NEWT event propagation to Jinput
795 tbd Newt wayland --- enhancement CONFIRMED Add native Wayland Backend for NEWT
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
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
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
1361 3.0.0 Newt core P4 normal CONFIRMED Remove Flickering when resizing a Newt Window

11 Total; 11 Open (100%); 0 Resolved (0%); 0 Verified (0%);


Vulkan

No results.

0 Total; 0 Open (0%); 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
ID Version Product Component Priority Severity Status Summary
686 tbd Jogl video P3 enhancement CONFIRMED Add native Libraries for GLMediaPlayer fallback w/ patent free Codecs like WebM or AV1
933 3.0.0 Jogl video P4 enhancement CONFIRMED Force GLMediaPlayer not to depend on machine time
1173 2.5.0 Jogl video --- major RESOLVED GLMediaPlayer: EOS not reported for FFMPEG video
1216 2.5.0 Jogl video --- major RESOLVED GLMediaPlayer: MP3 Playback Issues (duration and EOS)
1260 3.0.0 Jogl video P4 minor CONFIRMED Allow the change of MAXIMUM_VIDEO_ASYNC of GLMediaPlayer
1286 2.5.0 Jogl video P4 major RESOLVED Multiple GLMediaPlayers init stream deadlock
1297 2.5.0 Jogl video P4 normal RESOLVED Native crash while destroying GLMediaPlayer
1356 2.4.0 Jogl video P4 normal RESOLVED "Future proof" ffmpeg libraries loading prevents using legit libraries
1420 2.5.0 Jogl video P4 major RESOLVED Enable FFmpeg 4, 5 and 6 in FFMPEGMediaPlayer and allow loading provided libs (option)
1455 2.6.0 Jogl video P4 normal RESOLVED GLMediaPlayer: Add isAutioMuted() query on volume and earmark audio-volume if not initialized and set it when AudioSink becomes available
1469 2.6.0 Jogl video P4 normal RESOLVED FFmpeg binding uses ReleaseStringChars instead of ReleaseStringUTFChars for GetStringUTFChars() acquired UTF
1472 2.6.0 Jogl video P4 major RESOLVED GLMediaPlayer Enhance AV Synchronization
1491 2.6.0 Jogl video P4 normal RESOLVED GLMediaPlayer: Remove resource restrictions and locking with shared GLContext (*GraphicsDevice)
1492 2.6.0 Jogl video P4 normal RESOLVED GLMediaPlayer: Support Tracking, Showing and Switching of Audio & Subtitle Tracks

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.

Source Certification Contract (SCC)

Dependency Tree

Root Parent Entry

Full Query
ID Version Product Component Priority Severity Status Summary
1368 tbd General builds P4 normal IN_PROGRESS Source Certification Contract (SCC)
1369 2.4.0 Gluegen core P4 normal RESOLVED SCC: Implement basic Secure Hash (SHA256) build time signatures & runtime validation

2 Total; 1 Open (50%); 1 Resolved (50%); 0 Verified (0%);


Misc

No results.

0 Total; 0 Open (0%); 0 Resolved (0%); 0 Verified (0%);