SW Tracking Report Feature Objectives Overview

From JogampWiki
Revision as of 11:04, 14 February 2024 by Gouessej (talk | contribs) (→‎Graph UI)
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 & 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
ID Version Product Component Priority Severity Status Summary
544 tbd GraphUI Core P3 enhancement UNCONFIRMED RFE for UI part of the graph package
804 tbd GraphUI Plugin --- enhancement UNCONFIRMED Add SVG Input Specification (Curved Geometry, Object Interaction) to Graph-UI
805 2.6.0 GraphUI Core --- enhancement IN_PROGRESS Basic Graph-UI Widgets - I
1483 tbd GraphUI Plugin P4 normal CONFIRMED Enhanced Graph-UI Elements - II

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


Completed Items graphui
Full Query
ID Version Product Component Status Resolution Summary
803 2.5.0 GraphUI Core RESOLVED FIXED Establish Graph-UI Core ..
1454 2.6.0 GraphUI Core RESOLVED FIXED GraphUI Scene: Elevate active (selected) shape (add z-offset) and select (pick) in Z descending order
1456 2.6.0 GraphUI Core RESOLVED FIXED GraphUI: Add CSS alike Layout for Group: GridLayout and BoxLayout
1457 2.6.0 GraphUI Core RESOLVED FIXED GraphUI: Add AnimGroup, providing sets of custom animated Shapes
1458 2.6.0 GraphUI Core RESOLVED FIXED GraphUI Z-Epsilon Support: Expose Z-Epsilon API in Scene and utilization in Button
1459 2.6.0 GraphUI Core RESOLVED FIXED GraphUI Shape: Add active (pointer over/left) state and callback Listener
1460 2.6.0 GraphUI Core RESOLVED FIXED GraphUI Shape: Allow keeping aspect-ratio at resize
1464 2.6.0 GraphUI Core RESOLVED FIXED GraphUI Scene: Resolve Data Race Modding Z Position activating a shape and Arrays.sort(..)
1467 2.6.0 GraphUI Core RESOLVED FIXED GraphUI: Don't de-activate a Shape if became active via 'mouseOver' (mouseDragged)
1489 2.6.0 GraphUI Core RESOLVED FIXED GraphUI Group: Resolve Performance Regression in Scene.pickShape(): Drop invisible and clipped shapes
1490 2.6.0 GraphUI Core RESOLVED FIXED GraphUI Group: Resolve Performance Issues with Shape Mv Transform -> PMVMatrix4f; Group/Scene's temp sorted arrays
1495 2.6.0 GraphUI Core RESOLVED FIXED GraphUI Shape: Only updateMat() if marked dirty once in applyMatToMv() and getMat(*)
1496 2.6.0 GraphUI Core RESOLVED FIXED GraphUI Shape: Allow markShapeDirty() and markStateDirty() to be lock free
1498 2.6.0 GraphUI Core RESOLVED FIXED GraphUI: Fix Picking Traversal throughout Groups in Z-Descending Order, testing Children and fallback to Group if positive
1499 2.6.0 GraphUI Core RESOLVED FIXED GraphUI MediaPlayer: Add Time-Code & optional Still-Images as mouse-over on time RangeSlider

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

No results.

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


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%);


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

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

No results.

0 Total; 0 Open (0%); 0 Resolved (0%); 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%);