SW Tracking Report Feature Objectives Overview: Difference between revisions

From JogampWiki
Jump to navigation Jump to search
No edit summary
 
(52 intermediate revisions by 2 users not shown)
Line 1: Line 1:
== High DPI ==
This list exposes building blocks
for potential use and business case scenarios
using Java & JogAmp on Desktop and Embedded Devices.


[{{SERVER}}/bugzilla/showdependencytree.cgi?id=1373&hide_resolved=0 Dependency Tree]
Notably [[#Graph|Graph & Graph UI]] as well as [[#NEWT_+_Wayland|Wayland]] & [[#Vulkan|Vulkan]] support could be of interest here?


<bugzilla>
Also see [[Completed Features Objectives]] ...
    {
 
        "id":["1373"],
= Graph =
        "include_fields":"id,version,product,component,priority,severity,status,summary"
[https://jausoft.com/blog/tag/graph_type_rendering/ Graph/GraphUI Progress Blog Entries]
    }
 
</bugzilla>
== 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 [https://jausoft.com/blog/2024/01/21/graphui-frustum-culling-clipping-modelview-space/ 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)
** [https://jausoft.com/blog/2024/02/13/fixing-jogamps-graph-delaunay-tessellation-of-complex-non-convex-shapes/ First round done]
* 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)
* <s>Add subtitles in MediaPlayer GraphUI widget</s> ''([https://jausoft.com/blog/2024/02/07/graphui-mediaplayer-feature-complete/ 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 [[Maintainer_and_Contacts#Commercial_Support|Göthel Software e.K.]]
 
== OpenJDK Compatibility / Integration ==
 
Objectives should be to allow seamless integration into
OpenJDK's deployment and JVM launch methods.
 
A dual JAR file to be used with and without modules is desired,  
however it seems that certain JAR options are not available with this
configuration if our classes are not build as modules itself.
 
An optional [https://jogamp.org/bugzilla/show_bug.cgi?id=1505#c0 JVM Launch Pad (JLP)] might be helpful,
even though it instructs further complexity and is not helping
with a vanilla OpenJDK deployment.
 
=== OpenJDK >= 11 ===
 
See [https://jogamp.org/bugzilla/show_bug.cgi?id=1404 Bug 1404]
 
'''JVM Commandline Parameter'''


<bugzilla>
Current used 'add-opens' in my JogAmp test scripts for Java >= 11,
    {
covering all AWT utilization including background erase is:
        "blocks":["1373"],
        "include_fields":"id,version,product,component,priority,severity,status,summary"
    }
</bugzilla>


<pre>
--add-opens java.desktop/sun.awt=ALL-UNNAMED
--add-opens java.desktop/sun.awt.windows=ALL-UNNAMED
--add-opens java.desktop/sun.java2d=ALL-UNNAMED
</pre>


== Java 11 ==
=== OpenJDK >= 2x ===


[{{SERVER}}/bugzilla/showdependencytree.cgi?id=1363&hide_resolved=0 Dependency Tree]
See [https://jogamp.org/bugzilla/show_bug.cgi?id=1505 Bug 1505]


<bugzilla>
'''JVM Commandline Parameter'''
    {
        "id":["1363"],
        "include_fields":"id,version,product,component,priority,severity,status,summary"
    }
</bugzilla>


<bugzilla>
Current used 'add-opens' in my JogAmp test scripts for Java >= 23,
    {
covering all AWT utilization including background erase is:
        "blocks":["1363"],
        "include_fields":"id,version,product,component,priority,severity,status,summary"
    }
</bugzilla>


= Graph =
<pre>
--add-opens java.desktop/sun.awt=ALL-UNNAMED
--add-opens java.desktop/sun.awt.windows=ALL-UNNAMED
--add-opens java.desktop/sun.java2d=ALL-UNNAMED
--TO_BE_DETERMINED
</pre>


== Graph UI ==
== Graph UI ==


[{{SERVER}}/bugzilla/showdependencytree.cgi?id=803&hide_resolved=0 Dependency Tree]
[https://jausoft.com/blog/2023/02/22/reimagine-java-on-desktop-bare-metal-devices/ ''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 [https://jausoft.com/blog/2011/10/05/jogljogamp-red-square-moscow-nurbs-graphicon2011/ Resolution Independent NURBS Curves Rendering using Programmable Graphics Pipeline], i.e. rendering curves directly on the GPU, resolution independent [ [https://jogamp.org/doc/gpunurbs2011/p70-santina.pdf paper], [https://jogamp.org/doc/gpunurbs2011/graphicon2011-slides.pdf slides] ].


[{{SERVER}}/bugzilla/buglist.cgi?bug_status=UNCONFIRMED&bug_status=CONFIRMED&bug_status=IN_PROGRESS&bug_status=RESOLVED&bug_status=VERIFIED&columnlist=product%2Ccomponent%2Cassigned_to%2Cbug_status%2Cresolution%2Cversion%2Cshort_desc%2Cchangeddate&component=core&component=Plugin&list_id=2265&product=GraphUI&query_format=advanced&resolution=---&resolution=FIXED&resolution=INVALID&resolution=WONTFIX&resolution=DUPLICATE&resolution=WORKSFORME&resolution=MOVED All GraphUI]
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.


Parent ..
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 [{{SERVER}}/bugzilla/show_bug.cgi?id=1156  DRM/GBM as support by JOGL(EGL) and NEWT]
as demonstrated [https://ict.zafena.se/improved-graphical-information-technology/ by Xerxes on a Raspberry Pi4].


<bugzilla>
[https://jausoft.com/blog/2023/02/22/reimagine-java-on-desktop-bare-metal-devices/ Reimagine Java on Desktop & Bare-Metal Devices]
    {
demonstrates the updated Graph Curve Rendering and UI, while [https://jausoft.com/blog/2024/01/21/graphui-frustum-culling-clipping-modelview-space/ this update shows clipping and widgets]. [https://jausoft.com/blog/tag/graph_type_rendering/ Further updates will be posted here...].
        "id":["803"],
 
        "include_fields":"id,version,product,component,priority,severity,status,summary"
Notably the ''Graph Curve Rendering'' is almost feature complete, as well as our own user input including gesture detection within NEWT.
    }
</bugzilla>


Child blocking parent
;Parent Main Node
: [{{SERVER}}/bugzilla/showdependencytree.cgi?id=803&hide_resolved=0 Dependency Tree]
: [{{SERVER}}/bugzilla/buglist.cgi?bug_status=UNCONFIRMED&bug_status=CONFIRMED&bug_status=IN_PROGRESS&bug_status=RESOLVED&bug_status=VERIFIED&columnlist=product%2Ccomponent%2Cassigned_to%2Cbug_status%2Cresolution%2Cversion%2Cshort_desc%2Cchangeddate&component=core&component=Plugin&list_id=2265&product=GraphUI&query_format=advanced&resolution=---&resolution=FIXED&resolution=INVALID&resolution=WONTFIX&resolution=DUPLICATE&resolution=WORKSFORME&resolution=MOVED All GraphUI]


;Open Items ''graphui''
<bugzilla>
<bugzilla>
     {
     {
         "blocks":["803"],
         "status":["IN_PROGRESS","CONFIRMED", "UNCONFIRMED"],
        "product":"graphui",
         "include_fields":"id,version,product,component,priority,severity,status,summary"
         "include_fields":"id,version,product,component,priority,severity,status,summary"
     }
     }
</bugzilla>
</bugzilla>


All of product 'graphui'  
;Completed Items ''graphui''
 
<bugzilla>
<bugzilla>
     {
     {
        "status":["RESOLVED","VERIFIED"],
         "product":"graphui",
         "product":"graphui",
         "include_fields":"id,version,product,component,priority,severity,status,summary"
         "include_fields":"id,version,product,component,status,resolution,summary"
     }
     }
</bugzilla>
</bugzilla>
Line 77: Line 126:
[{{SERVER}}/bugzilla/buglist.cgi?bug_status=UNCONFIRMED&bug_status=CONFIRMED&bug_status=IN_PROGRESS&bug_status=RESOLVED&bug_status=VERIFIED&columnlist=product%2Ccomponent%2Cassigned_to%2Cbug_status%2Cresolution%2Cversion%2Cshort_desc%2Cchangeddate&component=graph&list_id=2264&product=Jogl&query_format=advanced&resolution=---&resolution=FIXED&resolution=INVALID&resolution=WONTFIX&resolution=DUPLICATE&resolution=WORKSFORME&resolution=MOVED All Jogl Graph]
[{{SERVER}}/bugzilla/buglist.cgi?bug_status=UNCONFIRMED&bug_status=CONFIRMED&bug_status=IN_PROGRESS&bug_status=RESOLVED&bug_status=VERIFIED&columnlist=product%2Ccomponent%2Cassigned_to%2Cbug_status%2Cresolution%2Cversion%2Cshort_desc%2Cchangeddate&component=graph&list_id=2264&product=Jogl&query_format=advanced&resolution=---&resolution=FIXED&resolution=INVALID&resolution=WONTFIX&resolution=DUPLICATE&resolution=WORKSFORME&resolution=MOVED All Jogl Graph]


;Open Items ''Jogl / graph''
<bugzilla>
<bugzilla>
     {
     {
        "status":["IN_PROGRESS","CONFIRMED", "UNCONFIRMED"],
         "product":"jogl",
         "product":"jogl",
         "component":"graph",
         "component":"graph",
        "include_fields":"id,version,product,component,priority,severity,status,summary"
    }
</bugzilla>
;Completed Items ''Jogl / graph''
<bugzilla>
    {
        "status":["RESOLVED","VERIFIED"],
        "product":"jogl",
        "component":"graph",
        "include_fields":"id,version,product,component,status,resolution,summary"
    }
</bugzilla>
= WebAssembly (wasm) Target Platform =
See [[WebAssembly (wasm) Target Platform]]
= NEWT =
* [{{SERVER}}/bugzilla/showdependencytree.cgi?id=807&hide_resolved=0 Dependency Tree NEWT Input Devices]
* [{{SERVER}}/bugzilla/showdependencytree.cgi?id=814&hide_resolved=0 Dependency Tree NEWT Pointer Event]
<bugzilla>
    {
        "product":["newt","jinput"],
        "version":["2.5.0","3.0.0","tbd"],
         "cf_type":"FEATURE",
         "cf_type":"FEATURE",
         "include_fields":"id,version,product,component,priority,severity,status,summary"
         "include_fields":"id,version,product,component,priority,severity,status,summary"
     }
     }
</bugzilla>
</bugzilla>
= 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
[https://jogamp.org/bugzilla/show_bug.cgi?id=1156 bare metal devices w/o a windowing system via the Linux DRM/GBM console mode]
throughout JOGL + NEWT.


= Vulkan  =
= Vulkan  =
Line 96: Line 180:
</bugzilla>
</bugzilla>


= NEWT =
= 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 [https://youtu.be/4gWStKCioi8?t=132 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


* [{{SERVER}}/bugzilla/showdependencytree.cgi?id=807&hide_resolved=0 Dependency Tree NEWT Input Devices]
See [https://jogamp.org/bugzilla//buglist.cgi?bug_status=__open__&component=video&list_id=3053&product=Jogl related buglist]
* [{{SERVER}}/bugzilla/showdependencytree.cgi?id=814&hide_resolved=0 Dependency Tree NEWT Pointer Event]


<bugzilla>
<bugzilla>
     {
     {
         "product":["newt","jinput"],
         "component":"video",
        "version":["2.5.0","3.0.0","tbd"],
        "cf_type":"FEATURE",
         "include_fields":"id,version,product,component,priority,severity,status,summary"
         "include_fields":"id,version,product,component,priority,severity,status,summary"
     }
     }
</bugzilla>
</bugzilla>
= iOS Enhancements =
Early iOS support has been demonstrated in 2019
* [https://jausoft.com/blog/2019/06/17/jogamp-ios-arm64-bring-up/ iOS Arm64 bring-up]
* [https://jausoft.com/blog/2019/06/23/jogamp-ios-arm64-port-first-visuals/ iOS Arm64 Port: First Visuals]
* [https://jausoft.com/blog/2019/07/08/jogamp-ios-arm64-port-newt/ iOS Arm64 Port: NEWT]
Enhancing this port would allow to use JogAmp in a similar fashion as on Android,
but using an OpenJDK iOS build.


= [[SCC Overview|Source Certification Contract (SCC)]] =
= [[SCC Overview|Source Certification Contract (SCC)]] =
Line 122: Line 221:
     }
     }
</bugzilla>
</bugzilla>
= OpenJFX =
[https://jogamp.org/bugzilla//show_bug.cgi?id=607#c20 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


= Misc =
= Misc =

Latest revision as of 07:11, 4 April 2024

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.

OpenJDK Compatibility / Integration

Objectives should be to allow seamless integration into OpenJDK's deployment and JVM launch methods.

A dual JAR file to be used with and without modules is desired, however it seems that certain JAR options are not available with this configuration if our classes are not build as modules itself.

An optional JVM Launch Pad (JLP) might be helpful, even though it instructs further complexity and is not helping with a vanilla OpenJDK deployment.

OpenJDK >= 11

See Bug 1404

JVM Commandline Parameter

Current used 'add-opens' in my JogAmp test scripts for Java >= 11, covering all AWT utilization including background erase is:

--add-opens java.desktop/sun.awt=ALL-UNNAMED 
--add-opens java.desktop/sun.awt.windows=ALL-UNNAMED 
--add-opens java.desktop/sun.java2d=ALL-UNNAMED

OpenJDK >= 2x

See Bug 1505

JVM Commandline Parameter

Current used 'add-opens' in my JogAmp test scripts for Java >= 23, covering all AWT utilization including background erase is:

--add-opens java.desktop/sun.awt=ALL-UNNAMED 
--add-opens java.desktop/sun.awt.windows=ALL-UNNAMED 
--add-opens java.desktop/sun.java2d=ALL-UNNAMED
--TO_BE_DETERMINED

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


WebAssembly (wasm) Target Platform

See WebAssembly (wasm) Target Platform

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

Full Query
ID Version Product Component Priority Severity Status Summary
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)

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


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

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