SW Tracking Report Feature Objectives Overview and Completed Features Objectives: Difference between pages

From JogampWiki
(Difference between pages)
Jump to navigation Jump to search
 
 
Line 1: Line 1:
This list exposes building blocks
Also see [[SW Tracking Report Feature Objectives Overview]] ...
for potential use and business case scenarios
using Java & JogAmp on Desktop and Embedded Devices.
 
Notably [[#Graph|Graph & Graph UI]] as well as [[#NEWT_+_Wayland|Wayland]] & [[#Vulkan|Vulkan]] support could be of interest here?
 
Also see [[Completed Features Objectives]] ...


= Graph =
= Graph =
[https://jausoft.com/blog/tag/graph_type_rendering/ Graph/GraphUI Progress Blog Entries]
[https://jausoft.com/blog/tag/graph_type_rendering/ 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 [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)
* 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.]]


== Graph UI ==
== Graph UI ==
Line 49: Line 18:


[https://jausoft.com/blog/2023/02/22/reimagine-java-on-desktop-bare-metal-devices/ Reimagine Java on Desktop & Bare-Metal Devices]  
[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...].
demonstrates the updated Graph Curve Rendering and UI. [https://jausoft.com/blog/tag/graph_type_rendering/ 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.
Notably the ''Graph Curve Rendering'' is almost feature complete, as well as our own user input including gesture detection within NEWT.


;Parent Main Node
[{{SERVER}}/bugzilla/buglist.cgi?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 Resolved GraphUI]
: [{{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>
    {
        "status":["IN_PROGRESS","CONFIRMED", "UNCONFIRMED"],
        "product":"graphui",
        "include_fields":"id,version,product,component,priority,severity,status,summary"
    }
</bugzilla>
;Completed Items ''graphui''
<bugzilla>
<bugzilla>
     {
     {
Line 77: Line 34:
== Jogl / Graph ==
== Jogl / Graph ==


[{{SERVER}}/bugzilla/showdependencytree.cgi?id=1064&hide_resolved=0 Dependency Tree Graph Font Issues]
[{{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>
    {
        "status":["IN_PROGRESS","CONFIRMED", "UNCONFIRMED"],
        "product":"jogl",
        "component":"graph",
        "include_fields":"id,version,product,component,priority,severity,status,summary"
    }
</bugzilla>
;Completed Items ''Jogl / graph''
<bugzilla>
<bugzilla>
     {
     {
Line 101: Line 43:
</bugzilla>
</bugzilla>


= OpenJFX =
== High DPI ==  
 
[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
 
= 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]


;Parent Main Node
: [{{SERVER}}/bugzilla/showdependencytree.cgi?id=1373&hide_resolved=0 Dependency Tree]
<bugzilla>
<bugzilla>
     {
     {
         "product":["newt","jinput"],
         "id":["1373", "1374", "1322"],
        "version":["2.5.0","3.0.0","tbd"],
         "include_fields":"id,version,product,component,status,resolution,summary"
        "cf_type":"FEATURE",
         "include_fields":"id,version,product,component,priority,severity,status,summary"
     }
     }
</bugzilla>
</bugzilla>


= NEWT + Wayland =
;Children blocking Parent
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  =
 
<bugzilla>
<bugzilla>
     {
     {
         "component":"vulkan",
         "blocks":["1373", "1374", "1322"],
        "cf_type":"FEATURE",
         "include_fields":"id,version,product,component,status,resolution,summary"
         "include_fields":"id,version,product,component,priority,severity,status,summary"
     }
     }
</bugzilla>
</bugzilla>


= Video Encoding/Decoding & Player =
== Java 11 ==
 
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
 
See [https://jogamp.org/bugzilla//buglist.cgi?bug_status=__open__&component=video&list_id=3053&product=Jogl related buglist]


;Parent Main Node
: [{{SERVER}}/bugzilla/showdependencytree.cgi?id=1363&hide_resolved=0 Dependency Tree]
<bugzilla>
<bugzilla>
     {
     {
         "component":"video",
         "id":["1363"],
         "include_fields":"id,version,product,component,priority,severity,status,summary"
         "include_fields":"id,version,product,component,status,resolution,summary"
     }
     }
</bugzilla>
</bugzilla>


= iOS Enhancements =
;Children blocking Parent
 
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)]] =
 
[{{SERVER}}/bugzilla/showdependencytree.cgi?id=1368&hide_resolved=0 Dependency Tree]
 
[{{SERVER}}/bugzilla/show_bug.cgi?id=1368 Root Parent Entry]
 
<bugzilla>
<bugzilla>
     {
     {
         "id":["1368", "1369"],
         "blocks":["1363"],
         "include_fields":"id,version,product,component,priority,severity,status,summary"
         "include_fields":"id,version,product,component,status,resolution,summary"
    }
</bugzilla>
 
= Misc =
 
<!-- bugzilla>
    {
        "product"!=["graphui","newt"],
        "component"!=["graph","vulkan"],
        "version":["2.5.0","3.0.0","tbd"],
        "cf_type":"FEATURE",
        "include_fields":"id,version,product,component,priority,severity,status,summary"
    }
</bugzilla-->
 
<bugzilla>
    {
        "version":["2.5.0","3.0.0","tbd"],
        "cf_type":"FEATURE",
        "include_fields":"id,version,product,component,priority,severity,status,summary"
     }
     }
</bugzilla>
</bugzilla>

Latest revision as of 14:09, 9 February 2024

Also see SW Tracking Report Feature Objectives Overview ...

Graph

Graph/GraphUI Progress Blog Entries

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.

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

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


High DPI

Parent Main Node
Dependency Tree
Full Query
ID Version Product Component Status Resolution Summary
1322 2.5.0 Jogl macosx RESOLVED FIXED JOGL sets pixel scale to 2 for GLJPanel not on Retina display
1373 2.5.0 General generic VERIFIED FIXED Support High-DPI across Platforms and Modules
1374 2.5.0 Jogl awt RESOLVED FIXED Support High-DPI for JRE>8 AWT on Windows, MacOSX and Linux

3 Total; 0 Open (0%); 2 Resolved (66.67%); 1 Verified (33.33%);


Children blocking Parent
Full Query
ID Version Product Component Status Resolution Summary
741 2 Jogl macosx RESOLVED FIXED Enable Hi-Dpi Mode on OSX (Retina)
1120 2.3.0 Jogl core RESOLVED FIXED Refine HiDPI Support
1130 2.3.0 Newt awt RESOLVED FIXED Add Mapping from AWT Component -> NEWT [Screen, MonitorDevice]
1322 2.5.0 Jogl macosx RESOLVED FIXED JOGL sets pixel scale to 2 for GLJPanel not on Retina display
1351 2.4.0 Newt macosx RESOLVED FIXED NEWT: Custom pointer pixels doubled on High-DPI Retina Display on OS X only
1358 2.4.0 Jogl swt VERIFIED FIXED Incorrect OpenGL surface size on SWT GLCanvas and NewtCanvasSWT w/ High-DPI scaling
1374 2.5.0 Jogl awt RESOLVED FIXED Support High-DPI for JRE>8 AWT on Windows, MacOSX and Linux
1421 2.4.0 Newt swt VERIFIED FIXED Incorrect OpenGL window position on NewtCanvasSWT on MacOS
1422 2.4.1 Newt swt VERIFIED FIXED NEWT: Handle SWT's DPI Scaling on non native dpi scaling platforms (Linux, Windows, ..)

9 Total; 0 Open (0%); 6 Resolved (66.67%); 3 Verified (33.33%);


Java 11

Parent Main Node
Dependency Tree
Full Query
ID Version Product Component Status Resolution Summary
1363 2.4.0 General builds RESOLVED FIXED Java 11+ Compatibility (Remove Warnings, Build and Run)

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


Children blocking Parent
Full Query
ID Version Product Component Status Resolution Summary
1317 2.4.0 Nativewindow core RESOLVED FIXED JOGL AWT sample crashes on Java 9
1417 2.4.0 General builds RESOLVED FIXED Android: Support building using current SDK and NDK v20 as of 2019-12-10

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