{
  "_class" : "hudson.matrix.MatrixRun",
  "actions" : [
    {
      
    },
    {
      "_class" : "hudson.model.CauseAction",
      "causes" : [
        {
          "_class" : "hudson.model.Cause$UpstreamCause",
          "shortDescription" : "Started by upstream project \"jogl\" build number 1,535",
          "upstreamBuild" : 1535,
          "upstreamProject" : "jogl",
          "upstreamUrl" : "job/jogl/"
        }
      ]
    },
    {
      
    },
    {
      "_class" : "hudson.plugins.git.util.BuildData",
      "buildsByBranchName" : {
        "origin/master" : {
          "_class" : "hudson.plugins.git.util.Build",
          "buildNumber" : 1535,
          "buildResult" : None,
          "marked" : {
            "SHA1" : "0a307e574c422ccfa60b3abd93e69fcb79d01787",
            "branch" : [
              {
                "SHA1" : "0a307e574c422ccfa60b3abd93e69fcb79d01787",
                "name" : "origin/master"
              }
            ]
          },
          "revision" : {
            "SHA1" : "0a307e574c422ccfa60b3abd93e69fcb79d01787",
            "branch" : [
              {
                "SHA1" : "0a307e574c422ccfa60b3abd93e69fcb79d01787",
                "name" : "origin/master"
              }
            ]
          }
        }
      },
      "lastBuiltRevision" : {
        "SHA1" : "0a307e574c422ccfa60b3abd93e69fcb79d01787",
        "branch" : [
          {
            "SHA1" : "0a307e574c422ccfa60b3abd93e69fcb79d01787",
            "name" : "origin/master"
          }
        ]
      },
      "remoteUrls" : [
        "git://jogamp.org/srv/scm/jogl.git"
      ],
      "scmName" : ""
    },
    {
      
    },
    {
      "_class" : "hudson.tasks.junit.TestResultAction",
      "failCount" : 4,
      "skipCount" : 21,
      "totalCount" : 1193,
      "urlName" : "testReport"
    },
    {
      
    },
    {
      "_class" : "org.jenkinsci.plugins.displayurlapi.actions.RunDisplayAction"
    }
  ],
  "artifacts" : [
    
  ],
  "building" : False,
  "description" : None,
  "displayName" : "#1535",
  "duration" : 3448632,
  "estimatedDuration" : 3583845,
  "executor" : None,
  "fullDisplayName" : "jogl » macos-x86_64 #1535",
  "id" : "1535",
  "inProgress" : False,
  "keepLog" : False,
  "number" : 1535,
  "queueId" : 131,
  "result" : "UNSTABLE",
  "timestamp" : 1751130797636,
  "url" : "https://jogamp.org/chuck/job/jogl/label=macos-x86_64/1535/",
  "builtOn" : "macos-x86_64-jau-012",
  "changeSet" : {
    "_class" : "hudson.plugins.git.GitChangeSetList",
    "items" : [
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/demos/com/jogamp/opengl/demos/graph/ui/UISceneDemo03b.java",
          "make/scripts/tests.sh"
        ],
        "commitId" : "f8434687e144967164b770e4d323b77fd9d295da",
        "timestamp" : 1692459934000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sven%20gothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "UISceneDemo03b: Add a little more customization ..\u000a",
        "date" : "2023-08-19 17:45:34 +0200",
        "id" : "f8434687e144967164b770e4d323b77fd9d295da",
        "msg" : "UISceneDemo03b: Add a little more customization ..",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "make/scripts/tests.sh"
          },
          {
            "editType" : "edit",
            "file" : "src/demos/com/jogamp/opengl/demos/graph/ui/UISceneDemo03b.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/demos/com/jogamp/opengl/demos/av/MovieSBSStereo.java",
          "src/demos/com/jogamp/opengl/demos/graph/ui/UISceneDemo10.java",
          "src/demos/com/jogamp/opengl/demos/graph/GPURegionNewtDemo.java",
          "src/demos/com/jogamp/opengl/demos/graph/ui/UIShapeDemo01.java",
          "src/demos/com/jogamp/opengl/demos/av/MovieSimple.java",
          "src/demos/com/jogamp/opengl/demos/av/MovieCube.java",
          "src/demos/com/jogamp/opengl/demos/graph/GPUTextNewtDemo.java",
          "src/demos/com/jogamp/opengl/demos/graph/ui/UITypeDemo01.java",
          "src/demos/com/jogamp/opengl/demos/graph/ui/UISceneDemo20.java",
          "src/demos/com/jogamp/opengl/demos/graph/ui/UISceneDemo03.java"
        ],
        "commitId" : "fd93c0692ea3ed32bcbd1f08cca2290b6da3d451",
        "timestamp" : 1692762052000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sven%20gothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "Demos: Use Runnable lambda for window.destroy() off-thread and use key-symbols F4, ESC and Q to trigger off-thread window.destroy()\u000a",
        "date" : "2023-08-23 05:40:52 +0200",
        "id" : "fd93c0692ea3ed32bcbd1f08cca2290b6da3d451",
        "msg" : "Demos: Use Runnable lambda for window.destroy() off-thread and use key-symbols F4, ESC and Q to trigger off-thread window.destroy()",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/demos/com/jogamp/opengl/demos/av/MovieSimple.java"
          },
          {
            "editType" : "edit",
            "file" : "src/demos/com/jogamp/opengl/demos/graph/ui/UISceneDemo10.java"
          },
          {
            "editType" : "edit",
            "file" : "src/demos/com/jogamp/opengl/demos/graph/ui/UIShapeDemo01.java"
          },
          {
            "editType" : "edit",
            "file" : "src/demos/com/jogamp/opengl/demos/graph/GPURegionNewtDemo.java"
          },
          {
            "editType" : "edit",
            "file" : "src/demos/com/jogamp/opengl/demos/graph/GPUTextNewtDemo.java"
          },
          {
            "editType" : "edit",
            "file" : "src/demos/com/jogamp/opengl/demos/graph/ui/UITypeDemo01.java"
          },
          {
            "editType" : "edit",
            "file" : "src/demos/com/jogamp/opengl/demos/av/MovieSBSStereo.java"
          },
          {
            "editType" : "edit",
            "file" : "src/demos/com/jogamp/opengl/demos/graph/ui/UISceneDemo03.java"
          },
          {
            "editType" : "edit",
            "file" : "src/demos/com/jogamp/opengl/demos/av/MovieCube.java"
          },
          {
            "editType" : "edit",
            "file" : "src/demos/com/jogamp/opengl/demos/graph/ui/UISceneDemo20.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/test/com/jogamp/opengl/test/junit/jogl/swt/TestSWTAccessor02NewtGLWindow.java"
        ],
        "commitId" : "64f7f17dc2db744106f1c71b576ef8e29a8854bd",
        "timestamp" : 1692762084000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sven%20gothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "TestSWTAccessor02NewtGLWindow: Use lambda for SWTAccessor.invokeOnOSTKThread(..)\u000a",
        "date" : "2023-08-23 05:41:24 +0200",
        "id" : "64f7f17dc2db744106f1c71b576ef8e29a8854bd",
        "msg" : "TestSWTAccessor02NewtGLWindow: Use lambda for SWTAccessor.invokeOnOSTKThread(..)",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/test/com/jogamp/opengl/test/junit/jogl/swt/TestSWTAccessor02NewtGLWindow.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/jogl/classes/com/jogamp/opengl/math/Vec3f.java",
          "src/jogl/classes/com/jogamp/opengl/math/Vec2f.java",
          "src/jogl/classes/com/jogamp/opengl/math/Vec4f.java"
        ],
        "commitId" : "ca49bcc03029156e52dfc29f886501548e9bf397",
        "timestamp" : 1692762355000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sven%20gothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "Vec[234]f: Add scale(Vec[234]f s) variant for convenience\u000a",
        "date" : "2023-08-23 05:45:55 +0200",
        "id" : "ca49bcc03029156e52dfc29f886501548e9bf397",
        "msg" : "Vec[234]f: Add scale(Vec[234]f s) variant for convenience",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/com/jogamp/opengl/math/Vec2f.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/com/jogamp/opengl/math/Vec4f.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/com/jogamp/opengl/math/Vec3f.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/graphui/classes/com/jogamp/graph/ui/Group.java",
          "src/graphui/classes/com/jogamp/graph/ui/shapes/GlyphShape.java"
        ],
        "commitId" : "090e0368895ccfe46a852cc66c7e2e6a78ee01be",
        "timestamp" : 1692981758000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sven%20gothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "GraphUI: Group API doc + remove GlyphShape's redundant many getOrigPos() variants\u000a",
        "date" : "2023-08-25 18:42:38 +0200",
        "id" : "090e0368895ccfe46a852cc66c7e2e6a78ee01be",
        "msg" : "GraphUI: Group API doc + remove GlyphShape's redundant many getOrigPos() variants",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/com/jogamp/graph/ui/shapes/GlyphShape.java"
          },
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/com/jogamp/graph/ui/Group.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/graphui/classes/com/jogamp/graph/ui/Shape.java"
        ],
        "commitId" : "dafb6cc85b4f183d12bfb34e702f01860fe2b59c",
        "timestamp" : 1692981852000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sven%20gothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "GraphUI: Shape: Add runSynced(Runnable); Add setPMVMatrix(..) to setup complete PMVMatrix, use it in getSurfaceSize(..), shapeToWinCoord(..) and winToShapeCoord(..)\u000a",
        "date" : "2023-08-25 18:44:12 +0200",
        "id" : "dafb6cc85b4f183d12bfb34e702f01860fe2b59c",
        "msg" : "GraphUI: Shape: Add runSynced(Runnable); Add setPMVMatrix(..) to setup complete PMVMatrix, use it in getSurfaceSize(..), shapeToWinCoord(..) and winToShapeCoord(..)",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/com/jogamp/graph/ui/Shape.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/jogl/classes/com/jogamp/opengl/math/geom/AABBox.java"
        ],
        "commitId" : "faa80aa8c6e5231ed4c00df6ccb0fb715974eb40",
        "timestamp" : 1692981871000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sven%20gothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "AABBox: Add set(AABBox)\u000a",
        "date" : "2023-08-25 18:44:31 +0200",
        "id" : "faa80aa8c6e5231ed4c00df6ccb0fb715974eb40",
        "msg" : "AABBox: Add set(AABBox)",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/com/jogamp/opengl/math/geom/AABBox.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/graphui/classes/com/jogamp/graph/ui/Group.java",
          "src/graphui/classes/com/jogamp/graph/ui/Scene.java"
        ],
        "commitId" : "c13fed83f20db55ee0b0b548ef6526a95fd2d6c4",
        "timestamp" : 1693134573000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sven%20gothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "GraphUI: Use thread-save and lock-free CopyOnWriteArrayList for List<Shape>, allowing off-thread mutation\u000a",
        "date" : "2023-08-27 13:09:33 +0200",
        "id" : "c13fed83f20db55ee0b0b548ef6526a95fd2d6c4",
        "msg" : "GraphUI: Use thread-save and lock-free CopyOnWriteArrayList for List<Shape>, allowing off-thread mutation",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/com/jogamp/graph/ui/Scene.java"
          },
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/com/jogamp/graph/ui/Group.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/jogl/classes/com/jogamp/opengl/math/Quaternion.java"
        ],
        "commitId" : "9ed41468fbf3d93555ac6c16630b25220f55aa39",
        "timestamp" : 1693134584000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sven%20gothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "Quaternion: Add rotateByAngleNormalAxis(..) variant using Vec3f axis\u000a",
        "date" : "2023-08-27 13:09:44 +0200",
        "id" : "9ed41468fbf3d93555ac6c16630b25220f55aa39",
        "msg" : "Quaternion: Add rotateByAngleNormalAxis(..) variant using Vec3f axis",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/com/jogamp/opengl/math/Quaternion.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/jogl/classes/com/jogamp/opengl/math/Vec3f.java"
        ],
        "commitId" : "72980712910d1c49e324f1463d987be3ea280abd",
        "timestamp" : 1693134590000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sven%20gothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "Vec3f: Add UNIX_X and UNIX_X_NEG, enhance API doc\u000a",
        "date" : "2023-08-27 13:09:50 +0200",
        "id" : "72980712910d1c49e324f1463d987be3ea280abd",
        "msg" : "Vec3f: Add UNIX_X and UNIX_X_NEG, enhance API doc",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/com/jogamp/opengl/math/Vec3f.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/jogl/classes/com/jogamp/opengl/math/geom/AABBox.java"
        ],
        "commitId" : "2f62d6f6f3f2fd56f87e9ec40023ca5b7bec9252",
        "timestamp" : 1693134596000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sven%20gothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "AABBox: Fix intersects2DRegion(..), add resize{Height, Width}(..) and AABBox ctor using Vec3f low and high\u000a\u000aintersects2DRegion(..) got the passed width and height wrong,\u000ai.e. given object low position >= this-low position\u000aand given object high position including width/height <= this-high position\u000ais required to match for intersection.\u000a",
        "date" : "2023-08-27 13:09:56 +0200",
        "id" : "2f62d6f6f3f2fd56f87e9ec40023ca5b7bec9252",
        "msg" : "AABBox: Fix intersects2DRegion(..), add resize{Height, Width}(..) and AABBox ctor using Vec3f low and high",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/com/jogamp/opengl/math/geom/AABBox.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/test/com/jogamp/opengl/test/junit/jogl/math/TestVec3f01NOUI.java",
          "make/scripts/tests.sh"
        ],
        "commitId" : "74e9bd8a46e20666700ce79e22d08a2a05f2c26f",
        "timestamp" : 1693134603000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sven%20gothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "Add TestVec3f01NOUI: This test shall be enhanced, only priliminary angle tests for now\u000a",
        "date" : "2023-08-27 13:10:03 +0200",
        "id" : "74e9bd8a46e20666700ce79e22d08a2a05f2c26f",
        "msg" : "Add TestVec3f01NOUI: This test shall be enhanced, only priliminary angle tests for now",
        "paths" : [
          {
            "editType" : "add",
            "file" : "src/test/com/jogamp/opengl/test/junit/jogl/math/TestVec3f01NOUI.java"
          },
          {
            "editType" : "edit",
            "file" : "make/scripts/tests.sh"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/graphui/classes/com/jogamp/graph/ui/AnimGroup.java",
          "src/demos/com/jogamp/opengl/demos/util/MiscUtils.java",
          "src/demos/com/jogamp/opengl/demos/util/CommandlineOptions.java",
          "src/demos/com/jogamp/opengl/demos/graph/ui/UISceneDemoU01a.java",
          "src/demos/com/jogamp/opengl/demos/graph/ui/UISceneDemo03b.java",
          "src/demos/com/jogamp/opengl/demos/graph/ui/UISceneDemo20.java",
          "make/scripts/tests.sh",
          "src/demos/com/jogamp/opengl/demos/graph/ui/UISceneDemo03.java"
        ],
        "commitId" : "4448010d8d787c73d48f54b296c3a8c2499aeaa0",
        "timestamp" : 1693134613000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sven%20gothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "GraphUI: Extract generalized AnimGroup functionality from UISceneDemo03*, providing sets of animated Shapes (GlyphShape or any other)\u000a\u000aHardcoding the whole animation process into user code is not feasible to allow a quick add-on.\u000a\u000aGraphUI's new AnimGroup is a Group and allows to add multiple AnimGroup.Set of AnimGroup.ShapeData.\u000a\u000a+++\u000a\u000aAnimGroup.ShapeData holds the actual Shape and its start- and target position\u000aas well as its active animation state and an optional user object attachment.\u000a\u000aAnimGroup.Set holds a list of AnimGroup.ShapeData as well as the animation properties\u000aand states like acceleration and velocity for translation and angular operations.\u000aIt also contains the AnimGroup.LerpFunc for linear interpolation of the next position\u000aas called via AnimGroup.tick() over all sets.\u000a\u000aAnimGroup.LerpFunc is intended to perform the linear interpolation for the next position,\u000aeither user provided or one of the provided may be used, i.e. TargetLerp, ScrollLerp and SineLerp.\u000a\u000aTo setup the start- and target position for each AnimGroup.ShapeData,\u000aa AnimGroup.ShapeSetup is used - user implementated or one of the build-in\u000aof AnimGroup.addGlyphSetHorizScroll01(..), AnimGroup.assGlyphSetRandom01(..).\u000a\u000a+++\u000a\u000aUISceneDemo03 consolidated UISceneDemo03 + UISceneDemo03b (deleted)\u000aand shows the following AnimGroup capabilities:\u000a\u000a- Two repetitive scrolling text lines. One text shorter than the line-width and one longer.\u000a\u000a- One line of animated rectangles, rotating around their z-axis\u000a\u000a- A text animation assembling one line of text,\u000a  each glyph coming from from a random 3D point moving to its destination all at once including rotation.\u000a\u000a- One line of text with sine wave animation\u000a",
        "date" : "2023-08-27 13:10:13 +0200",
        "id" : "4448010d8d787c73d48f54b296c3a8c2499aeaa0",
        "msg" : "GraphUI: Extract generalized AnimGroup functionality from UISceneDemo03*, providing sets of animated Shapes (GlyphShape or any other)",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/demos/com/jogamp/opengl/demos/util/CommandlineOptions.java"
          },
          {
            "editType" : "add",
            "file" : "src/graphui/classes/com/jogamp/graph/ui/AnimGroup.java"
          },
          {
            "editType" : "edit",
            "file" : "make/scripts/tests.sh"
          },
          {
            "editType" : "delete",
            "file" : "src/demos/com/jogamp/opengl/demos/graph/ui/UISceneDemo03b.java"
          },
          {
            "editType" : "edit",
            "file" : "src/demos/com/jogamp/opengl/demos/graph/ui/UISceneDemo20.java"
          },
          {
            "editType" : "edit",
            "file" : "src/demos/com/jogamp/opengl/demos/graph/ui/UISceneDemoU01a.java"
          },
          {
            "editType" : "edit",
            "file" : "src/demos/com/jogamp/opengl/demos/util/MiscUtils.java"
          },
          {
            "editType" : "edit",
            "file" : "src/demos/com/jogamp/opengl/demos/graph/ui/UISceneDemo03.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/graphui/classes/com/jogamp/graph/ui/shapes/Button.java"
        ],
        "commitId" : "7cba3e8e8bc0f224cc4be8bd1290068ed5429365",
        "timestamp" : 1693134617000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sven%20gothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "GraphUI: Button: Reduce default DEFAULT_LABEL_ZOFFSET from 0.005f -> 0.0001f, have to check if working on all platforms (TODO)\u000a\u000aOtherwise, we have to resolve the 'one Region' for the Button (backgroung shape + text on top)\u000aimplementation with two OutlineShapes.\u000aAs of now, we use the z-offset of the text above background to avoid z-fighting.\u000aThis is like a manual application of glPolygonOffset(..) directly on the produced vertices.\u000a",
        "date" : "2023-08-27 13:10:17 +0200",
        "id" : "7cba3e8e8bc0f224cc4be8bd1290068ed5429365",
        "msg" : "GraphUI: Button: Reduce default DEFAULT_LABEL_ZOFFSET from 0.005f -> 0.0001f, have to check if working on all platforms (TODO)",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/com/jogamp/graph/ui/shapes/Button.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "make/scripts/test-fat-jars.sh"
        ],
        "commitId" : "0054a35d22ae74b8af211211715d702ef05b88a7",
        "timestamp" : 1693135396000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sven%20gothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "make/scripts/test-fat-jars.sh: Adjust UISceneDemo03b -> UISceneDemo03\u000a",
        "date" : "2023-08-27 13:23:16 +0200",
        "id" : "0054a35d22ae74b8af211211715d702ef05b88a7",
        "msg" : "make/scripts/test-fat-jars.sh: Adjust UISceneDemo03b -> UISceneDemo03",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "make/scripts/test-fat-jars.sh"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/demos/com/jogamp/opengl/demos/graph/ui/UISceneDemo03.java"
        ],
        "commitId" : "93087a60bb9397155b4a68eb03991ada2563dfe9",
        "timestamp" : 1693144949000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sven%20gothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "GraphUI Demo: UISceneDemo03: Add optional audio (only) via '-audio <URL or file-path>' using our GLMediaPlayer (FFmpeg + JOAL/OpenAL)\u000a",
        "date" : "2023-08-27 16:02:29 +0200",
        "id" : "93087a60bb9397155b4a68eb03991ada2563dfe9",
        "msg" : "GraphUI Demo: UISceneDemo03: Add optional audio (only) via '-audio <URL or file-path>' using our GLMediaPlayer (FFmpeg + JOAL/OpenAL)",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/demos/com/jogamp/opengl/demos/graph/ui/UISceneDemo03.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/demos/com/jogamp/opengl/demos/graph/ui/UISceneDemo03.java"
        ],
        "commitId" : "d6056f4daf2bd6f19cc3f8ff7ca1a812d8db9695",
        "timestamp" : 1693163173000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sven%20gothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "UISceneDemo03: Detail demo description, add blog entry\u000a",
        "date" : "2023-08-27 21:06:13 +0200",
        "id" : "d6056f4daf2bd6f19cc3f8ff7ca1a812d8db9695",
        "msg" : "UISceneDemo03: Detail demo description, add blog entry",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/demos/com/jogamp/opengl/demos/graph/ui/UISceneDemo03.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/jogl/classes/jogamp/graph/curve/tess/CDTriangulator2D.java",
          "src/jogl/classes/jogamp/graph/curve/tess/GraphOutline.java",
          "src/jogl/classes/jogamp/graph/curve/tess/Loop.java",
          "src/jogl/classes/com/jogamp/graph/curve/Region.java"
        ],
        "commitId" : "733cc5272cfed10fa07b707e29fd756f44581508",
        "timestamp" : 1693256076000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sven%20gothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "Graph Loop: Make initFromPolyline() and locateClosestVertex() more robust, report error but do not crash.\u000a\u000aThis behavior has been evaluated with a few fonts and the WIP FontView01 demo application.\u000a",
        "date" : "2023-08-28 22:54:36 +0200",
        "id" : "733cc5272cfed10fa07b707e29fd756f44581508",
        "msg" : "Graph Loop: Make initFromPolyline() and locateClosestVertex() more robust, report error but do not crash.",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/jogamp/graph/curve/tess/CDTriangulator2D.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/jogamp/graph/curve/tess/Loop.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/jogamp/graph/curve/tess/GraphOutline.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/com/jogamp/graph/curve/Region.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/graphui/classes/com/jogamp/graph/ui/AnimGroup.java",
          "src/jogl/classes/com/jogamp/graph/curve/opengl/GLRegion.java",
          "src/jogl/classes/com/jogamp/graph/font/Font.java",
          "src/jogl/classes/com/jogamp/opengl/math/geom/AABBox.java",
          "src/graphui/classes/com/jogamp/graph/ui/shapes/Label.java",
          "src/jogl/classes/jogamp/graph/font/typecast/TypecastFont.java",
          "src/jogl/classes/jogamp/graph/font/typecast/TypecastGlyph.java",
          "src/jogl/classes/com/jogamp/graph/curve/opengl/TextRegionUtil.java",
          "src/graphui/classes/com/jogamp/graph/ui/shapes/GlyphShape.java"
        ],
        "commitId" : "920e529516bb264f04138ed1caca80d4925e3773",
        "timestamp" : 1693256273000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sven%20gothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "Graph Font + Glyph: More robust detetection and API definition of non-contour/whitespace Glyphs (detect and allow to skip 'em)\u000a\u000aWe also drop shapes for both, but for id 0 (unknown).\u000a",
        "date" : "2023-08-28 22:57:53 +0200",
        "id" : "920e529516bb264f04138ed1caca80d4925e3773",
        "msg" : "Graph Font + Glyph: More robust detetection and API definition of non-contour/whitespace Glyphs (detect and allow to skip 'em)",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/jogamp/graph/font/typecast/TypecastFont.java"
          },
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/com/jogamp/graph/ui/AnimGroup.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/com/jogamp/opengl/math/geom/AABBox.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/com/jogamp/graph/curve/opengl/GLRegion.java"
          },
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/com/jogamp/graph/ui/shapes/Label.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/com/jogamp/graph/curve/opengl/TextRegionUtil.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/com/jogamp/graph/font/Font.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/jogamp/graph/font/typecast/TypecastGlyph.java"
          },
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/com/jogamp/graph/ui/shapes/GlyphShape.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/graphui/classes/com/jogamp/graph/ui/Shape.java"
        ],
        "commitId" : "7fd51917b0cc85c3dc3d07592093a62b213d1ea5",
        "timestamp" : 1693256397000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sven%20gothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "GraphUI Shape: Show dirty-state in getSubString()\u000a",
        "date" : "2023-08-28 22:59:57 +0200",
        "id" : "7fd51917b0cc85c3dc3d07592093a62b213d1ea5",
        "msg" : "GraphUI Shape: Show dirty-state in getSubString()",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/com/jogamp/graph/ui/Shape.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/jogl/classes/jogamp/graph/font/typecast/TypecastRenderer.java"
        ],
        "commitId" : "f66947ef42fa827dafd359061d3b60efe4c7e432",
        "timestamp" : 1693257158000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sven%20gothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "Graph Font: Make TypecastRenderer.DEBUG package private to be used by TypecastFont\u000a",
        "date" : "2023-08-28 23:12:38 +0200",
        "id" : "f66947ef42fa827dafd359061d3b60efe4c7e432",
        "msg" : "Graph Font: Make TypecastRenderer.DEBUG package private to be used by TypecastFont",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/jogamp/graph/font/typecast/TypecastRenderer.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "make/scripts/tests.sh",
          "src/demos/com/jogamp/opengl/demos/graph/ui/FontView01.java"
        ],
        "commitId" : "d45e0ae4046f1bd42a3b5107984b77c4f5ee0276",
        "timestamp" : 1693257565000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sven%20gothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "GraphUI Demo FontView01: Enhance usability and refactor: Add left-column glyphSymbol number, mouse-wheel scrolling, Fitting the font info, ..\u000a\u000a- Add mouse-wheel scrolling, for one-line and with control for one page.\u000a- Add left-column glyphSymbol number, for orientation while scrolling\u000a- Fitting the font info, i.e. consider width + height\u000a\u000aRefactoring further isolated the addGlyphs(..) functionality in same method, etc.\u000a\u000aUsed to test Graph's capabilitry to properly read, detect and visualize certain fonts.\u000aPrevious Graph fixes were triggered by this procedure,\u000ai.e. commits\u000a- 733cc5272cfed10fa07b707e29fd756f44581508\u000a- 920e529516bb264f04138ed1caca80d4925e3773\u000a- 7fd51917b0cc85c3dc3d07592093a62b213d1ea5\u000a\u000aFurther the proper detection of non-contour/whitespace\u000aallows FontView to skip them and only show usably Glyphs without noise.\u000a",
        "date" : "2023-08-28 23:19:25 +0200",
        "id" : "d45e0ae4046f1bd42a3b5107984b77c4f5ee0276",
        "msg" : "GraphUI Demo FontView01: Enhance usability and refactor: Add left-column glyphSymbol number, mouse-wheel scrolling, Fitting the font info, ..",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "make/scripts/tests.sh"
          },
          {
            "editType" : "edit",
            "file" : "src/demos/com/jogamp/opengl/demos/graph/ui/FontView01.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/demos/com/jogamp/opengl/demos/graph/ui/FontView01.java"
        ],
        "commitId" : "35746b3a618d94b03fc1ab465114d4d97540f45d",
        "timestamp" : 1693258727000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sven%20gothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "GraphUI Demo FontView01: Fix '-showUnderline', i.e. glyphListener shall use the last element in container, the GlyphShape\u000a",
        "date" : "2023-08-28 23:38:47 +0200",
        "id" : "35746b3a618d94b03fc1ab465114d4d97540f45d",
        "msg" : "GraphUI Demo FontView01: Fix '-showUnderline', i.e. glyphListener shall use the last element in container, the GlyphShape",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/demos/com/jogamp/opengl/demos/graph/ui/FontView01.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/demos/com/jogamp/opengl/demos/graph/ui/UIGraphDemoU01a.java",
          "make/scripts/tests.sh",
          "src/demos/com/jogamp/opengl/demos/graph/ui/UISceneDemoU01a.java"
        ],
        "commitId" : "5d83a6271495fe43141ee2c7f301f16ea0389134",
        "timestamp" : 1693560987000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sven%20gothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "GraphUI Demo: Rename UISceneDemoU01a -> UIGraphDemoU01a, not using GraphUI's Scene but manual GLEventListener etc, add a few Glyph tests\u000a",
        "date" : "2023-09-01 11:36:27 +0200",
        "id" : "5d83a6271495fe43141ee2c7f301f16ea0389134",
        "msg" : "GraphUI Demo: Rename UISceneDemoU01a -> UIGraphDemoU01a, not using GraphUI's Scene but manual GLEventListener etc, add a few Glyph tests",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "make/scripts/tests.sh"
          },
          {
            "editType" : "add",
            "file" : "src/demos/com/jogamp/opengl/demos/graph/ui/UIGraphDemoU01a.java"
          },
          {
            "editType" : "delete",
            "file" : "src/demos/com/jogamp/opengl/demos/graph/ui/UISceneDemoU01a.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/jogl/classes/com/jogamp/graph/font/Font.java",
          "src/jogl/classes/jogamp/graph/font/typecast/TypecastFont.java"
        ],
        "commitId" : "f6dd8e9562d7e0bbf681c268f40ff4c819057915",
        "timestamp" : 1693562267000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sven%20gothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "Graph Font + Glyph: Fix whitespace definition: Include 'no original underlying shape' and add API doc\u000a\u000aRegression was introduced with commit 920e529516bb264f04138ed1caca80d4925e3773\u000a'Robust detetection and API definition of non-contour/whitespace Glyphs'.\u000a\u000aIssue was mistaken a glyph as undefined if not having an underlying shape,\u000awhich is true for some fonts (e.g. 'space').\u000a\u000a+++\u000a\u000aAlso Use post table's name if no underlying shape exists.\u000a",
        "date" : "2023-09-01 11:57:47 +0200",
        "id" : "f6dd8e9562d7e0bbf681c268f40ff4c819057915",
        "msg" : "Graph Font + Glyph: Fix whitespace definition: Include 'no original underlying shape' and add API doc",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/jogamp/graph/font/typecast/TypecastFont.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/com/jogamp/graph/font/Font.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/demos/com/jogamp/opengl/demos/graph/ui/UIGraphDemoU01a.java",
          "src/test/com/jogamp/opengl/test/junit/jogl/glsl/TestGLSLShaderState01NEWT.java",
          "src/test/com/jogamp/opengl/test/junit/graph/GPURendererListenerBase01.java",
          "src/demos/com/jogamp/opengl/demos/es2/TextureSequenceES2.java",
          "src/test/com/jogamp/opengl/test/junit/jogl/demos/es2/TextureSequenceCubeES2.java",
          "src/jogl/classes/com/jogamp/graph/curve/opengl/RegionRenderer.java",
          "src/test/com/jogamp/opengl/test/junit/jogl/offscreen/ReadBuffer2Screen.java",
          "src/test/com/jogamp/opengl/test/junit/jogl/demos/es2/PointsDemoES2.java",
          "src/demos/com/jogamp/opengl/demos/es2/PointsDemoES2.java",
          "src/demos/com/jogamp/opengl/demos/graph/GPURendererListenerBase01.java",
          "src/test/com/jogamp/opengl/test/junit/jogl/demos/gl4/TrianglesInstancedRendererHardcoded.java",
          "src/graphui/classes/com/jogamp/graph/ui/Scene.java",
          "src/test/com/jogamp/opengl/test/junit/jogl/glsl/TestGLSLShaderState02NEWT.java",
          "src/demos/com/jogamp/opengl/demos/av/MovieSBSStereo.java",
          "src/demos/com/jogamp/opengl/demos/es2/TextureSequenceCubeES2.java",
          "src/demos/com/jogamp/opengl/demos/graph/ui/UIShapeDemo01.java",
          "src/demos/com/jogamp/opengl/demos/graph/ui/UITypeDemo01.java",
          "src/test/com/jogamp/opengl/test/junit/jogl/demos/gl4/TriangleInstancedRendererWithShaderState.java",
          "src/jogl/classes/com/jogamp/opengl/util/PMVMatrix.java"
        ],
        "commitId" : "71576e94af890e2a4a98225ed258445ba7db0f26",
        "timestamp" : 1693679063000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sven%20gothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "PMVMatrix.gluPerspective(): Redfine angle in radians instead of degrees ** API Change **\u000a\u000aSince this is an extra implementation of PMVMatrix and not of GLMatrixFunc, we shall use the default ISO dimension avoiding conversion.\u000a\u000aThis alsi redefined Graph's RegionRenderer.reshapePerspective() angle definition from degrees to radians\u000a",
        "date" : "2023-09-02 20:24:23 +0200",
        "id" : "71576e94af890e2a4a98225ed258445ba7db0f26",
        "msg" : "PMVMatrix.gluPerspective(): Redfine angle in radians instead of degrees ** API Change **",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/demos/com/jogamp/opengl/demos/graph/GPURendererListenerBase01.java"
          },
          {
            "editType" : "edit",
            "file" : "src/test/com/jogamp/opengl/test/junit/jogl/glsl/TestGLSLShaderState01NEWT.java"
          },
          {
            "editType" : "edit",
            "file" : "src/test/com/jogamp/opengl/test/junit/jogl/demos/es2/TextureSequenceCubeES2.java"
          },
          {
            "editType" : "edit",
            "file" : "src/test/com/jogamp/opengl/test/junit/graph/GPURendererListenerBase01.java"
          },
          {
            "editType" : "edit",
            "file" : "src/test/com/jogamp/opengl/test/junit/jogl/demos/gl4/TriangleInstancedRendererWithShaderState.java"
          },
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/com/jogamp/graph/ui/Scene.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/com/jogamp/opengl/util/PMVMatrix.java"
          },
          {
            "editType" : "edit",
            "file" : "src/test/com/jogamp/opengl/test/junit/jogl/offscreen/ReadBuffer2Screen.java"
          },
          {
            "editType" : "edit",
            "file" : "src/demos/com/jogamp/opengl/demos/es2/TextureSequenceCubeES2.java"
          },
          {
            "editType" : "edit",
            "file" : "src/demos/com/jogamp/opengl/demos/graph/ui/UIGraphDemoU01a.java"
          },
          {
            "editType" : "edit",
            "file" : "src/test/com/jogamp/opengl/test/junit/jogl/glsl/TestGLSLShaderState02NEWT.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/com/jogamp/graph/curve/opengl/RegionRenderer.java"
          },
          {
            "editType" : "edit",
            "file" : "src/demos/com/jogamp/opengl/demos/av/MovieSBSStereo.java"
          },
          {
            "editType" : "edit",
            "file" : "src/demos/com/jogamp/opengl/demos/es2/TextureSequenceES2.java"
          },
          {
            "editType" : "edit",
            "file" : "src/test/com/jogamp/opengl/test/junit/jogl/demos/gl4/TrianglesInstancedRendererHardcoded.java"
          },
          {
            "editType" : "edit",
            "file" : "src/demos/com/jogamp/opengl/demos/graph/ui/UITypeDemo01.java"
          },
          {
            "editType" : "edit",
            "file" : "src/test/com/jogamp/opengl/test/junit/jogl/demos/es2/PointsDemoES2.java"
          },
          {
            "editType" : "edit",
            "file" : "src/demos/com/jogamp/opengl/demos/es2/PointsDemoES2.java"
          },
          {
            "editType" : "edit",
            "file" : "src/demos/com/jogamp/opengl/demos/graph/ui/UIShapeDemo01.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/demos/com/jogamp/opengl/demos/util/CommandlineOptions.java"
        ],
        "commitId" : "d891e70a99dfcebc205f97ed42b91111710c5176",
        "timestamp" : 1693679183000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sven%20gothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "Demos: CommandlineOptions: Add total_duration command line option '-duration <floar>' in seconds\u000a",
        "date" : "2023-09-02 20:26:23 +0200",
        "id" : "d891e70a99dfcebc205f97ed42b91111710c5176",
        "msg" : "Demos: CommandlineOptions: Add total_duration command line option '-duration <floar>' in seconds",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/demos/com/jogamp/opengl/demos/util/CommandlineOptions.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/demos/com/jogamp/opengl/demos/graph/ui/UISceneDemo00.java",
          "src/demos/com/jogamp/opengl/demos/graph/ui/UISceneDemo02.java",
          "src/demos/com/jogamp/opengl/demos/graph/ui/UISceneDemo01b.java",
          "src/demos/com/jogamp/opengl/demos/graph/ui/UISceneDemo01.java"
        ],
        "commitId" : "ef63d2e288fe47762d9cf743d11cd01f8d255349",
        "timestamp" : 1693682834000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sven%20gothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "GraphUI Demos: Proper use of CommandlineOptions\u000a",
        "date" : "2023-09-02 21:27:14 +0200",
        "id" : "ef63d2e288fe47762d9cf743d11cd01f8d255349",
        "msg" : "GraphUI Demos: Proper use of CommandlineOptions",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/demos/com/jogamp/opengl/demos/graph/ui/UISceneDemo02.java"
          },
          {
            "editType" : "edit",
            "file" : "src/demos/com/jogamp/opengl/demos/graph/ui/UISceneDemo01b.java"
          },
          {
            "editType" : "edit",
            "file" : "src/demos/com/jogamp/opengl/demos/graph/ui/UISceneDemo00.java"
          },
          {
            "editType" : "edit",
            "file" : "src/demos/com/jogamp/opengl/demos/graph/ui/UISceneDemo01.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/demos/com/jogamp/opengl/demos/graph/ui/UIGraphDemoU01a.java",
          "src/demos/com/jogamp/opengl/demos/graph/ui/UISceneDemo01.java",
          "src/demos/com/jogamp/opengl/demos/graph/ui/UISceneDemo00.java",
          "src/demos/com/jogamp/opengl/demos/util/CommandlineOptions.java",
          "src/demos/com/jogamp/opengl/demos/graph/ui/UISceneDemo11.java",
          "src/jogl/classes/com/jogamp/graph/curve/Region.java",
          "src/demos/com/jogamp/opengl/demos/graph/ui/UISceneDemo03.java",
          "src/graphui/classes/com/jogamp/graph/ui/Scene.java",
          "src/test/com/jogamp/opengl/test/junit/graph/FontViewListener01.java",
          "src/demos/com/jogamp/opengl/demos/graph/ui/FontView01.java",
          "src/demos/com/jogamp/opengl/demos/graph/ui/UISceneDemo10.java",
          "src/demos/com/jogamp/opengl/demos/graph/ui/UISceneDemo02.java",
          "src/demos/com/jogamp/opengl/demos/graph/ui/UISceneDemo01b.java"
        ],
        "commitId" : "c059585e246ed707ba490f9d2bae3a8b90e949a7",
        "timestamp" : 1693701007000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sven%20gothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "GraphUI Scene: Pass sampleCount in ctor variant and refine API doc, clip to [1..8]; Add clarity in Region; Demos CommandlineOptions adds actual graphAASamples set and utilized\u000a",
        "date" : "2023-09-03 02:30:07 +0200",
        "id" : "c059585e246ed707ba490f9d2bae3a8b90e949a7",
        "msg" : "GraphUI Scene: Pass sampleCount in ctor variant and refine API doc, clip to [1..8]; Add clarity in Region; Demos CommandlineOptions adds actual graphAASamples set and utilized",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/demos/com/jogamp/opengl/demos/graph/ui/UISceneDemo00.java"
          },
          {
            "editType" : "edit",
            "file" : "src/demos/com/jogamp/opengl/demos/graph/ui/UISceneDemo01.java"
          },
          {
            "editType" : "edit",
            "file" : "src/demos/com/jogamp/opengl/demos/graph/ui/UISceneDemo03.java"
          },
          {
            "editType" : "edit",
            "file" : "src/demos/com/jogamp/opengl/demos/util/CommandlineOptions.java"
          },
          {
            "editType" : "edit",
            "file" : "src/demos/com/jogamp/opengl/demos/graph/ui/UISceneDemo11.java"
          },
          {
            "editType" : "edit",
            "file" : "src/demos/com/jogamp/opengl/demos/graph/ui/UISceneDemo02.java"
          },
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/com/jogamp/graph/ui/Scene.java"
          },
          {
            "editType" : "edit",
            "file" : "src/demos/com/jogamp/opengl/demos/graph/ui/FontView01.java"
          },
          {
            "editType" : "edit",
            "file" : "src/demos/com/jogamp/opengl/demos/graph/ui/UISceneDemo10.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/com/jogamp/graph/curve/Region.java"
          },
          {
            "editType" : "edit",
            "file" : "src/test/com/jogamp/opengl/test/junit/graph/FontViewListener01.java"
          },
          {
            "editType" : "edit",
            "file" : "src/demos/com/jogamp/opengl/demos/graph/ui/UIGraphDemoU01a.java"
          },
          {
            "editType" : "edit",
            "file" : "src/demos/com/jogamp/opengl/demos/graph/ui/UISceneDemo01b.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/demos/com/jogamp/opengl/demos/graph/ui/UISceneDemo10.java",
          "src/demos/com/jogamp/opengl/demos/graph/ui/UILayoutGrid01.java",
          "src/demos/com/jogamp/opengl/demos/graph/ui/UISceneDemo01.java",
          "src/demos/com/jogamp/opengl/demos/graph/ui/UISceneDemo00.java",
          "src/demos/com/jogamp/opengl/demos/graph/ui/UILayoutBox01.java",
          "src/demos/com/jogamp/opengl/demos/graph/ui/UISceneDemo20.java",
          "src/demos/com/jogamp/opengl/demos/graph/ui/UISceneDemo11.java",
          "src/demos/com/jogamp/opengl/demos/graph/ui/UISceneDemo01b.java",
          "src/demos/com/jogamp/opengl/demos/graph/ui/UISceneDemo03.java",
          "src/graphui/classes/com/jogamp/graph/ui/Scene.java"
        ],
        "commitId" : "e6087583dc06c823f54bb6206af2acb0e2119b4c",
        "timestamp" : 1693701581000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sven%20gothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "GraphUI Scene: Generalize its interface PMVMatrixSetup and usage of its DefaultPMVMatrixSetup w/o orthogonal alike scale-back but fully parametric\u000a",
        "date" : "2023-09-03 02:39:41 +0200",
        "id" : "e6087583dc06c823f54bb6206af2acb0e2119b4c",
        "msg" : "GraphUI Scene: Generalize its interface PMVMatrixSetup and usage of its DefaultPMVMatrixSetup w/o orthogonal alike scale-back but fully parametric",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/demos/com/jogamp/opengl/demos/graph/ui/UISceneDemo10.java"
          },
          {
            "editType" : "edit",
            "file" : "src/demos/com/jogamp/opengl/demos/graph/ui/UILayoutGrid01.java"
          },
          {
            "editType" : "edit",
            "file" : "src/demos/com/jogamp/opengl/demos/graph/ui/UISceneDemo01b.java"
          },
          {
            "editType" : "edit",
            "file" : "src/demos/com/jogamp/opengl/demos/graph/ui/UISceneDemo01.java"
          },
          {
            "editType" : "edit",
            "file" : "src/demos/com/jogamp/opengl/demos/graph/ui/UISceneDemo03.java"
          },
          {
            "editType" : "edit",
            "file" : "src/demos/com/jogamp/opengl/demos/graph/ui/UISceneDemo20.java"
          },
          {
            "editType" : "edit",
            "file" : "src/demos/com/jogamp/opengl/demos/graph/ui/UISceneDemo00.java"
          },
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/com/jogamp/graph/ui/Scene.java"
          },
          {
            "editType" : "edit",
            "file" : "src/demos/com/jogamp/opengl/demos/graph/ui/UILayoutBox01.java"
          },
          {
            "editType" : "edit",
            "file" : "src/demos/com/jogamp/opengl/demos/graph/ui/UISceneDemo11.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/test/com/jogamp/opengl/test/junit/jogl/math/Matrix4fb.java",
          "src/jogl/classes/com/jogamp/opengl/math/Vec3f.java",
          "src/jogl/classes/com/jogamp/graph/geom/Outline.java",
          "src/test/com/jogamp/opengl/test/junit/jogl/math/TestFloatUtil01NOUI.java",
          "src/jogl/classes/com/jogamp/opengl/math/FloatUtil.java",
          "src/jogl/classes/com/jogamp/opengl/math/VectorUtil.java",
          "src/jogl/classes/com/jogamp/opengl/math/Quaternion.java",
          "src/jogl/classes/com/jogamp/opengl/math/Vec2f.java",
          "src/jogl/classes/com/jogamp/opengl/math/Matrix4f.java",
          "src/jogl/classes/com/jogamp/graph/curve/OutlineShape.java",
          "src/jogl/classes/com/jogamp/opengl/math/Vec4f.java"
        ],
        "commitId" : "47233ea7014e34adca8a5c1d2323a57e9de1c7fa",
        "timestamp" : 1693722684000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sven%20gothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "FloatUtil.isEqual(..): Rename raw {isEqual->isEqualRaw}(a,b) varianr w/o EPSILON; Add isEqual(a,b) w/ default EPSILON; Use it where applicable\u000a\u000aAlso add isEqual2(a,b) w/o corner cases (NaN, Inf) used for comparison in Graph Outline, OutlineShape and later GraphUI Shape.\u000a",
        "date" : "2023-09-03 08:31:24 +0200",
        "id" : "47233ea7014e34adca8a5c1d2323a57e9de1c7fa",
        "msg" : "FloatUtil.isEqual(..): Rename raw {isEqual->isEqualRaw}(a,b) varianr w/o EPSILON; Add isEqual(a,b) w/ default EPSILON; Use it where applicable",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/test/com/jogamp/opengl/test/junit/jogl/math/Matrix4fb.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/com/jogamp/opengl/math/VectorUtil.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/com/jogamp/opengl/math/FloatUtil.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/com/jogamp/opengl/math/Vec2f.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/com/jogamp/opengl/math/Vec3f.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/com/jogamp/opengl/math/Matrix4f.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/com/jogamp/graph/geom/Outline.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/com/jogamp/graph/curve/OutlineShape.java"
          },
          {
            "editType" : "edit",
            "file" : "src/test/com/jogamp/opengl/test/junit/jogl/math/TestFloatUtil01NOUI.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/com/jogamp/opengl/math/Vec4f.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/com/jogamp/opengl/math/Quaternion.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/graphui/classes/com/jogamp/graph/ui/Shape.java"
        ],
        "commitId" : "deeb9db8ed288dcfbbb478c01b4508a691d81b80",
        "timestamp" : 1693722768000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sven%20gothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "GraphUI Shape: Enhance API doc for colors\u000a",
        "date" : "2023-09-03 08:32:48 +0200",
        "id" : "deeb9db8ed288dcfbbb478c01b4508a691d81b80",
        "msg" : "GraphUI Shape: Enhance API doc for colors",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/com/jogamp/graph/ui/Shape.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/graphui/classes/com/jogamp/graph/ui/Shape.java"
        ],
        "commitId" : "604b7cd0a4062a5aa44d669a51882f7f80efd08f",
        "timestamp" : 1693722837000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sven%20gothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "GraphUI Shape.ZAscendingComparator: Use (faster) FloatUtil.isEqual2(a,b) and consider Z-scaling\u000a",
        "date" : "2023-09-03 08:33:57 +0200",
        "id" : "604b7cd0a4062a5aa44d669a51882f7f80efd08f",
        "msg" : "GraphUI Shape.ZAscendingComparator: Use (faster) FloatUtil.isEqual2(a,b) and consider Z-scaling",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/com/jogamp/graph/ui/Shape.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/graphui/classes/com/jogamp/graph/ui/shapes/Button.java",
          "src/graphui/classes/com/jogamp/graph/ui/Scene.java"
        ],
        "commitId" : "bc4a97a3751b32a7825a41481959f04ff3efb3d2",
        "timestamp" : 1693723048000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sven%20gothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "GraphUI Scene: Expose Z-Epsilon API for default and current PMVMatrixSetup values; Button add Z-Epsilon API for ctor and setLabelZOffset(..)\u000a",
        "date" : "2023-09-03 08:37:28 +0200",
        "id" : "bc4a97a3751b32a7825a41481959f04ff3efb3d2",
        "msg" : "GraphUI Scene: Expose Z-Epsilon API for default and current PMVMatrixSetup values; Button add Z-Epsilon API for ctor and setLabelZOffset(..)",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/com/jogamp/graph/ui/shapes/Button.java"
          },
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/com/jogamp/graph/ui/Scene.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/graphui/classes/com/jogamp/graph/ui/shapes/Button.java"
        ],
        "commitId" : "b161ec3e6527ddfca0de10961de2c984016fe88b",
        "timestamp" : 1693723101000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sven%20gothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "GraphUI Button: Add label bounds to own shape (adds used z-range)\u000a",
        "date" : "2023-09-03 08:38:21 +0200",
        "id" : "b161ec3e6527ddfca0de10961de2c984016fe88b",
        "msg" : "GraphUI Button: Add label bounds to own shape (adds used z-range)",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/com/jogamp/graph/ui/shapes/Button.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/graphui/classes/com/jogamp/graph/ui/GraphShape.java",
          "src/graphui/classes/com/jogamp/graph/ui/shapes/Rectangle.java",
          "src/graphui/classes/com/jogamp/graph/ui/shapes/Button.java",
          "src/graphui/classes/com/jogamp/graph/ui/shapes/BaseButton.java",
          "src/graphui/classes/com/jogamp/graph/ui/Shape.java",
          "src/graphui/classes/jogamp/graph/ui/shapes/Label0.java",
          "src/jogl/classes/com/jogamp/opengl/math/FloatUtil.java",
          "src/graphui/classes/com/jogamp/graph/ui/shapes/Label.java",
          "src/graphui/classes/com/jogamp/graph/ui/Scene.java"
        ],
        "commitId" : "d5b17eddf7e7f1c33b269a3a2ed8eca959c6d639",
        "timestamp" : 1693801685000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sven%20gothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "GraphUI Enhance: API doc; Scene/Button Z-offset and -epsilon; Push temp AffineTransform to local method; Simplify BaseButton setCorner(0) -> setPerp(); Protected abstract ctor ..\u000a",
        "date" : "2023-09-04 06:28:05 +0200",
        "id" : "d5b17eddf7e7f1c33b269a3a2ed8eca959c6d639",
        "msg" : "GraphUI Enhance: API doc; Scene/Button Z-offset and -epsilon; Push temp AffineTransform to local method; Simplify BaseButton setCorner(0) -> setPerp(); Protected abstract ctor ..",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/com/jogamp/graph/ui/GraphShape.java"
          },
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/com/jogamp/graph/ui/Scene.java"
          },
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/com/jogamp/graph/ui/shapes/Rectangle.java"
          },
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/jogamp/graph/ui/shapes/Label0.java"
          },
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/com/jogamp/graph/ui/shapes/Button.java"
          },
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/com/jogamp/graph/ui/Shape.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/com/jogamp/opengl/math/FloatUtil.java"
          },
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/com/jogamp/graph/ui/shapes/Label.java"
          },
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/com/jogamp/graph/ui/shapes/BaseButton.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/graphui/classes/com/jogamp/graph/ui/GraphShape.java"
        ],
        "commitId" : "c3bb3fb871a92a71e7a6b05897a3dd9b62842fc5",
        "timestamp" : 1693801696000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sven%20gothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "GraphUI GraphShape: Split renderModes -> final renderModesReq + mutable renderModes, allowing the latter to be adjusted e.g. in case a color-channel is required\u000a",
        "date" : "2023-09-04 06:28:16 +0200",
        "id" : "c3bb3fb871a92a71e7a6b05897a3dd9b62842fc5",
        "msg" : "GraphUI GraphShape: Split renderModes -> final renderModesReq + mutable renderModes, allowing the latter to be adjusted e.g. in case a color-channel is required",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/com/jogamp/graph/ui/GraphShape.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/graphui/classes/com/jogamp/graph/ui/shapes/Button.java",
          "src/demos/com/jogamp/opengl/demos/graph/ui/UISceneDemo10.java",
          "src/demos/com/jogamp/opengl/demos/graph/ui/UISceneDemo02.java",
          "src/demos/com/jogamp/opengl/demos/graph/ui/UIShapeDemo01.java",
          "src/graphui/classes/jogamp/graph/ui/shapes/Label0.java",
          "src/graphui/classes/com/jogamp/graph/ui/shapes/Label.java",
          "src/demos/com/jogamp/opengl/demos/graph/ui/UITypeDemo01.java",
          "src/demos/com/jogamp/opengl/demos/graph/ui/UISceneDemo11.java",
          "src/demos/com/jogamp/opengl/demos/graph/ui/UISceneDemo20.java",
          "src/demos/com/jogamp/opengl/demos/graph/ui/UISceneDemo01b.java"
        ],
        "commitId" : "4ca9efd6759856f46eb0cedde28998bc2b68d2cb",
        "timestamp" : 1693801706000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sven%20gothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "GraphUI: Button/Label: Complete String -> CharSequence type change for text, rename Button set{Label->Text}(..), adjust demo/text code\u000a",
        "date" : "2023-09-04 06:28:26 +0200",
        "id" : "4ca9efd6759856f46eb0cedde28998bc2b68d2cb",
        "msg" : "GraphUI: Button/Label: Complete String -> CharSequence type change for text, rename Button set{Label->Text}(..), adjust demo/text code",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/demos/com/jogamp/opengl/demos/graph/ui/UISceneDemo11.java"
          },
          {
            "editType" : "edit",
            "file" : "src/demos/com/jogamp/opengl/demos/graph/ui/UIShapeDemo01.java"
          },
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/com/jogamp/graph/ui/shapes/Button.java"
          },
          {
            "editType" : "edit",
            "file" : "src/demos/com/jogamp/opengl/demos/graph/ui/UISceneDemo02.java"
          },
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/com/jogamp/graph/ui/shapes/Label.java"
          },
          {
            "editType" : "edit",
            "file" : "src/demos/com/jogamp/opengl/demos/graph/ui/UITypeDemo01.java"
          },
          {
            "editType" : "edit",
            "file" : "src/demos/com/jogamp/opengl/demos/graph/ui/UISceneDemo10.java"
          },
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/jogamp/graph/ui/shapes/Label0.java"
          },
          {
            "editType" : "edit",
            "file" : "src/demos/com/jogamp/opengl/demos/graph/ui/UISceneDemo20.java"
          },
          {
            "editType" : "edit",
            "file" : "src/demos/com/jogamp/opengl/demos/graph/ui/UISceneDemo01b.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/graphui/classes/com/jogamp/graph/ui/layout/Margin.java",
          "src/graphui/classes/com/jogamp/graph/ui/layout/Padding.java"
        ],
        "commitId" : "ba1c13b4eb4db2f15d2ee72d768748ab1f5d5639",
        "timestamp" : 1693801709000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sven%20gothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "GraphUI Margin, Alignment: Reuse ctor for default-ctor\u000a",
        "date" : "2023-09-04 06:28:29 +0200",
        "id" : "ba1c13b4eb4db2f15d2ee72d768748ab1f5d5639",
        "msg" : "GraphUI Margin, Alignment: Reuse ctor for default-ctor",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/com/jogamp/graph/ui/layout/Padding.java"
          },
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/com/jogamp/graph/ui/layout/Margin.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/jogl/classes/com/jogamp/graph/geom/plane/Crossing2F.java",
          "src/jogl/classes/com/jogamp/opengl/math/FloatUtil.java",
          "src/jogl/classes/com/jogamp/opengl/math/Quaternion.java",
          "src/demos/com/jogamp/opengl/demos/graph/ui/UITypeDemo01.java",
          "src/demos/com/jogamp/opengl/demos/graph/ui/UIShapeDemo01.java",
          "src/jogl/classes/com/jogamp/graph/geom/plane/AffineTransform.java"
        ],
        "commitId" : "e06d1d07125fb9489ea45d05fb40a562e2c4ca46",
        "timestamp" : 1693802729000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sven%20gothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "FloatUtil.abs(a): Mark as deprecated, use Math.abs(a) directly. We assume it is an intrinsic + branch-less implementation\u000a\u000aExpected implementation is\u000a\u000a- return Float.intBitsToFloat(Float.floatToRawIntBits(a) & 0x7fffffff);\u000a\u000areplacing old implementation\u000a\u000a- return (a <= 0.0F) ? 0.0F - a : a;\u000a\u000a.. also market as @IntrinsicCandidate\u000a\u000aHence we shall leave it to the JRE core-lib implementation...\u000a",
        "date" : "2023-09-04 06:45:29 +0200",
        "id" : "e06d1d07125fb9489ea45d05fb40a562e2c4ca46",
        "msg" : "FloatUtil.abs(a): Mark as deprecated, use Math.abs(a) directly. We assume it is an intrinsic + branch-less implementation",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/demos/com/jogamp/opengl/demos/graph/ui/UIShapeDemo01.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/com/jogamp/opengl/math/FloatUtil.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/com/jogamp/graph/geom/plane/AffineTransform.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/com/jogamp/opengl/math/Quaternion.java"
          },
          {
            "editType" : "edit",
            "file" : "src/demos/com/jogamp/opengl/demos/graph/ui/UITypeDemo01.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/com/jogamp/graph/geom/plane/Crossing2F.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/graphui/classes/com/jogamp/graph/ui/GraphShape.java"
        ],
        "commitId" : "6d9c0fc96485da515789921eb9d3ef8988807e54",
        "timestamp" : 1693873602000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sven%20gothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "GraphUI: Use z-top of bounding box for border rectangle, not z-center\u000a",
        "date" : "2023-09-05 02:26:42 +0200",
        "id" : "6d9c0fc96485da515789921eb9d3ef8988807e54",
        "msg" : "GraphUI: Use z-top of bounding box for border rectangle, not z-center",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/com/jogamp/graph/ui/GraphShape.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/graphui/classes/com/jogamp/graph/ui/Scene.java"
        ],
        "commitId" : "05bb1255e9feab213fb2cc463049623a57c2e1fa",
        "timestamp" : 1693873664000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sven%20gothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "GraphUI Scene: Only set dbgBorderThickness on shape if not zero and shape has no border yet, i.e. don't override\u000a",
        "date" : "2023-09-05 02:27:44 +0200",
        "id" : "05bb1255e9feab213fb2cc463049623a57c2e1fa",
        "msg" : "GraphUI Scene: Only set dbgBorderThickness on shape if not zero and shape has no border yet, i.e. don't override",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/com/jogamp/graph/ui/Scene.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/graphui/classes/com/jogamp/graph/ui/Scene.java"
        ],
        "commitId" : "b91fe4cd16646f134ce8242af30a9f69ecc6ca3e",
        "timestamp" : 1693873721000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sven%20gothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "GraphUI Scene: Add invoke(boolean wait, GLRunnable) for convenience using GLAutoDrawable.invoke(..)\u000a",
        "date" : "2023-09-05 02:28:41 +0200",
        "id" : "b91fe4cd16646f134ce8242af30a9f69ecc6ca3e",
        "msg" : "GraphUI Scene: Add invoke(boolean wait, GLRunnable) for convenience using GLAutoDrawable.invoke(..)",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/com/jogamp/graph/ui/Scene.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/graphui/classes/com/jogamp/graph/ui/Shape.java"
        ],
        "commitId" : "d741d4869221f218d76c3b8c38c83116c07598c0",
        "timestamp" : 1693873792000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sven%20gothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "GraphUI Shape: Add setScale(..) and scale(..) with Vec3f for convenience; Add border-color in toString() if hasBorder()\u000a",
        "date" : "2023-09-05 02:29:52 +0200",
        "id" : "d741d4869221f218d76c3b8c38c83116c07598c0",
        "msg" : "GraphUI Shape: Add setScale(..) and scale(..) with Vec3f for convenience; Add border-color in toString() if hasBorder()",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/com/jogamp/graph/ui/Shape.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/graphui/classes/com/jogamp/graph/ui/layout/Alignment.java"
        ],
        "commitId" : "8439522d73b60bcf61cc59550df6297bbafe73fb",
        "timestamp" : 1693873851000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sven%20gothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "GraphUI Layout Alignment: Separate center alignment to horizontal and vertical\u000a",
        "date" : "2023-09-05 02:30:51 +0200",
        "id" : "8439522d73b60bcf61cc59550df6297bbafe73fb",
        "msg" : "GraphUI Layout Alignment: Separate center alignment to horizontal and vertical",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/com/jogamp/graph/ui/layout/Alignment.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/graphui/classes/com/jogamp/graph/ui/layout/Padding.java",
          "src/graphui/classes/com/jogamp/graph/ui/layout/Gap.java"
        ],
        "commitId" : "f39a084c6a34a083698ca56e9122642e839234c2",
        "timestamp" : 1693874084000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sven%20gothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "GraphUI Layout: Html'ify API header of Gap and Padding\u000a",
        "date" : "2023-09-05 02:34:44 +0200",
        "id" : "f39a084c6a34a083698ca56e9122642e839234c2",
        "msg" : "GraphUI Layout: Html'ify API header of Gap and Padding",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/com/jogamp/graph/ui/layout/Padding.java"
          },
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/com/jogamp/graph/ui/layout/Gap.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/demos/com/jogamp/opengl/demos/graph/ui/util/Tooltips.java",
          "src/graphui/classes/com/jogamp/graph/ui/Group.java",
          "src/demos/com/jogamp/opengl/demos/graph/ui/UILayoutGrid01.java",
          "src/graphui/classes/com/jogamp/graph/ui/layout/BoxLayout.java",
          "src/demos/com/jogamp/opengl/demos/graph/ui/UILayoutBox01.java",
          "src/graphui/classes/com/jogamp/graph/ui/layout/GridLayout.java",
          "src/graphui/classes/com/jogamp/graph/ui/layout/Margin.java",
          "make/scripts/tests.sh"
        ],
        "commitId" : "ddd6cac8cc658ce542cb98e85f7d262f9917d37a",
        "timestamp" : 1693875282000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sven%20gothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "GraphUI Layout: Fix BoxLayout scale, margin and padding; Add same padding behavior to BoxLayout and GridLayout.\u000a\u000aFor all:\u000a- Padding is applied to each {@Shape} via {@link Shape#setPaddding(Padding)} if passed in constructor\u000a\u000aBoxLayout:\u000a- Optionally centered {@link Alignment.Bit#CenterHoriz horizontally}, {@link Alignment.Bit#CenterVert vertically} or {@link Alignment#Center both}.\u000a- Optionally scaled to cell-size if given and {@link Alignment#Fill}\u000a- Margin is ignored on dimension with center {@link Alignment}\u000a- Not implemented {@link Alignment}: Top, Right, Bottom, Left\u000a\u000aGridLayout:\u000a- Optionally centered {@link Alignment.Bit#CenterHoriz horizontally}, {@link Alignment.Bit#CenterVert vertically} or {@link Alignment#Center both}.\u000a- Optionally scaled to cell-size if given and {@link Alignment#Fill}\u000a- Without cell-size behaves like a grid bag using individual shape sizes including padding\u000a- Can be filled in {@link Order#COLUMN} or {@link Order#ROW} major-order.\u000a- Not implemented {@link Alignment}: Top, Right, Bottom, Left\u000a\u000aChanges to Group.Layout interface:\u000a- Added preValidate(Shape) allowing to prepare the shape before validation, used to inject Padding\u000a\u000aChanges to Margin:\u000a- Removed the complex CENTER property and using Alignment in BoxLayout as well\u000a\u000aChanges to BoxLayout:\u000a- Using Alignment\u000a\u000a+++\u000a\u000aTested via UILayoutBox01 and UILayoutGrid01,\u000atry the tooltip by clicking on the group's description label.\u000a",
        "date" : "2023-09-05 02:54:42 +0200",
        "id" : "ddd6cac8cc658ce542cb98e85f7d262f9917d37a",
        "msg" : "GraphUI Layout: Fix BoxLayout scale, margin and padding; Add same padding behavior to BoxLayout and GridLayout.",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "make/scripts/tests.sh"
          },
          {
            "editType" : "add",
            "file" : "src/demos/com/jogamp/opengl/demos/graph/ui/util/Tooltips.java"
          },
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/com/jogamp/graph/ui/layout/GridLayout.java"
          },
          {
            "editType" : "edit",
            "file" : "src/demos/com/jogamp/opengl/demos/graph/ui/UILayoutBox01.java"
          },
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/com/jogamp/graph/ui/Group.java"
          },
          {
            "editType" : "edit",
            "file" : "src/demos/com/jogamp/opengl/demos/graph/ui/UILayoutGrid01.java"
          },
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/com/jogamp/graph/ui/layout/BoxLayout.java"
          },
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/com/jogamp/graph/ui/layout/Margin.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "make/build.xml"
        ],
        "commitId" : "29c9bc1bc6560f40d011a5e3ea66f085a710265e",
        "timestamp" : 1693875372000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sven%20gothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "make/build.xml: Add target 'all.but-onejar', allowing a quick build w/o the all-jar files as usable with atomic jars like: make/scripts/tests.sh `USE_BUILDDIR=1`\u000a",
        "date" : "2023-09-05 02:56:12 +0200",
        "id" : "29c9bc1bc6560f40d011a5e3ea66f085a710265e",
        "msg" : "make/build.xml: Add target 'all.but-onejar', allowing a quick build w/o the all-jar files as usable with atomic jars like: make/scripts/tests.sh `USE_BUILDDIR=1`",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "make/build.xml"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "make/build.xml"
        ],
        "commitId" : "4e94635bb7d0f7161d587dcd923b1c1ab275e7bf",
        "timestamp" : 1694864569000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sven%20gothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "make/build.xml: Fix target 'all.but-onejar', adding targets 'one.lib.dir' and 'test.compile' to have native libs in place and update tests/demos\u000a\u000a'all.but-onejar' was introduced in commit 29c9bc1bc6560f40d011a5e3ea66f085a710265e\u000a",
        "date" : "2023-09-16 13:42:49 +0200",
        "id" : "4e94635bb7d0f7161d587dcd923b1c1ab275e7bf",
        "msg" : "make/build.xml: Fix target 'all.but-onejar', adding targets 'one.lib.dir' and 'test.compile' to have native libs in place and update tests/demos",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "make/build.xml"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/graphui/classes/com/jogamp/graph/ui/Group.java",
          "src/graphui/classes/com/jogamp/graph/ui/Shape.java"
        ],
        "commitId" : "d1cfa99135154e8e651e86ebc48a0f635fad38aa",
        "timestamp" : 1694865645000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sven%20gothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "GraphUI Group: Override isShapeDirty(), performing a deep dirty state update on all group member to allow validate to function\u000a",
        "date" : "2023-09-16 14:00:45 +0200",
        "id" : "d1cfa99135154e8e651e86ebc48a0f635fad38aa",
        "msg" : "GraphUI Group: Override isShapeDirty(), performing a deep dirty state update on all group member to allow validate to function",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/com/jogamp/graph/ui/Group.java"
          },
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/com/jogamp/graph/ui/Shape.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/graphui/classes/com/jogamp/graph/ui/Group.java"
        ],
        "commitId" : "1e55d2a6a157cb9d70f7a879cc9a9bc97db5413d",
        "timestamp" : 1694865805000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sven%20gothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "GraphUI Group.validateImpl(): Pick RenderMode for border from 1st Shape if required (hasBorder() and null border yet)\u000a\u000aThis avoid changing the RenderMode and hence actual shader rendering the item.\u000a",
        "date" : "2023-09-16 14:03:25 +0200",
        "id" : "1e55d2a6a157cb9d70f7a879cc9a9bc97db5413d",
        "msg" : "GraphUI Group.validateImpl(): Pick RenderMode for border from 1st Shape if required (hasBorder() and null border yet)",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/com/jogamp/graph/ui/Group.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/demos/com/jogamp/opengl/demos/graph/ui/UILayoutBox01.java",
          "src/graphui/classes/com/jogamp/graph/ui/layout/GridLayout.java",
          "src/graphui/classes/com/jogamp/graph/ui/layout/Margin.java",
          "src/graphui/classes/com/jogamp/graph/ui/layout/BoxLayout.java",
          "src/graphui/classes/com/jogamp/graph/ui/layout/Alignment.java",
          "src/graphui/classes/com/jogamp/graph/ui/layout/Gap.java"
        ],
        "commitId" : "e5de90b67efe8e8ca518159b3a73295d751764c1",
        "timestamp" : 1694871501000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sven%20gothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "GraphUI BoxLayout: Margin is only ignored for center Alignment w/o Fill scale. {Box,Grid}Layout: Always remove Bottom-Left delta and refine API doc of  incl scale behavior\u000a\u000aGraphUI BoxLayout: Margin is only ignored for center Alignment w/o Fill scale.\u000a  Margin outside of a shape is not scaled and hence must be considered\u000a  when using Fill scale.\u000a\u000a{Box,Grid}Layout: Always remove Bottom-Left delta\u000a  Previously we were only dropping the negative extend.\u000a\u000a  However, since our scale and center algo uses the AABBox width and height,\u000a  which excludes the bottom-left delta, we have to drop such offset.\u000a\u000a  TODO: Otherwise, we would need adjust for the bottom-left extend\u000a  when NOT centering for each direction!\u000a  This might be a useful enhancement in case one likes to drop\u000a  shapes as-is w/o centering.\u000a\u000a{Box,Grid}Layout: Refine API doc of  incl scale behavior\u000a",
        "date" : "2023-09-16 15:38:21 +0200",
        "id" : "e5de90b67efe8e8ca518159b3a73295d751764c1",
        "msg" : "GraphUI BoxLayout: Margin is only ignored for center Alignment w/o Fill scale. {Box,Grid}Layout: Always remove Bottom-Left delta and refine API doc of  incl scale behavior",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/com/jogamp/graph/ui/layout/BoxLayout.java"
          },
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/com/jogamp/graph/ui/layout/Gap.java"
          },
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/com/jogamp/graph/ui/layout/GridLayout.java"
          },
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/com/jogamp/graph/ui/layout/Alignment.java"
          },
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/com/jogamp/graph/ui/layout/Margin.java"
          },
          {
            "editType" : "edit",
            "file" : "src/demos/com/jogamp/opengl/demos/graph/ui/UILayoutBox01.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/jogl/classes/jogamp/graph/curve/opengl/VBORegionSPES2.java",
          "src/newt/classes/com/jogamp/newt/Window.java",
          "src/jogl/classes/jogamp/graph/curve/opengl/VBORegion2PMSAAES2.java",
          "src/jogl/classes/com/jogamp/opengl/math/FloatUtil.java",
          "src/jogl/classes/com/jogamp/graph/curve/opengl/RegionRenderer.java",
          "src/jogl/classes/jogamp/graph/curve/opengl/VBORegion2PVBAAES2.java",
          "src/jogl/classes/com/jogamp/graph/curve/Region.java",
          "src/newt/classes/jogamp/newt/Debug.java",
          "src/jogl/classes/jogamp/opengl/macosx/cgl/MacOSXCGLContext.java",
          "src/jogl/classes/jogamp/opengl/Debug.java"
        ],
        "commitId" : "aac1265340ae2ee1cad6bbf89369ba0288a6a290",
        "timestamp" : 1694871648000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sven%20gothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "Debug.debugExplicit(): Define and use explicit symbol debug flag; Use it for certain debug output to keep most silence for debugAll()\u000a",
        "date" : "2023-09-16 15:40:48 +0200",
        "id" : "aac1265340ae2ee1cad6bbf89369ba0288a6a290",
        "msg" : "Debug.debugExplicit(): Define and use explicit symbol debug flag; Use it for certain debug output to keep most silence for debugAll()",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/newt/classes/com/jogamp/newt/Window.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/com/jogamp/opengl/math/FloatUtil.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/com/jogamp/graph/curve/opengl/RegionRenderer.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/com/jogamp/graph/curve/Region.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/jogamp/opengl/Debug.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/jogamp/graph/curve/opengl/VBORegion2PVBAAES2.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/jogamp/opengl/macosx/cgl/MacOSXCGLContext.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/jogamp/graph/curve/opengl/VBORegion2PMSAAES2.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/jogamp/graph/curve/opengl/VBORegionSPES2.java"
          },
          {
            "editType" : "edit",
            "file" : "src/newt/classes/jogamp/newt/Debug.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/graphui/classes/com/jogamp/graph/ui/shapes/GlyphShape.java"
        ],
        "commitId" : "6f6841941abf326ebdc09173fe4e7c678d2c5569",
        "timestamp" : 1694871828000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sven%20gothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "GraphUI GlyphShape: Add copy-ctor variant\u000a",
        "date" : "2023-09-16 15:43:48 +0200",
        "id" : "6f6841941abf326ebdc09173fe4e7c678d2c5569",
        "msg" : "GraphUI GlyphShape: Add copy-ctor variant",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/com/jogamp/graph/ui/shapes/GlyphShape.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/graphui/classes/com/jogamp/graph/ui/layout/GridLayout.java",
          "src/graphui/classes/com/jogamp/graph/ui/layout/BoxLayout.java"
        ],
        "commitId" : "06b9e84c635cffc4a51beb6a38b5f5c111edcb7f",
        "timestamp" : 1694907531000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sven%20gothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "GraphUI Layout: Remove unused leftover var and complete GridLayout ctor\u000a",
        "date" : "2023-09-17 01:38:51 +0200",
        "id" : "06b9e84c635cffc4a51beb6a38b5f5c111edcb7f",
        "msg" : "GraphUI Layout: Remove unused leftover var and complete GridLayout ctor",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/com/jogamp/graph/ui/layout/GridLayout.java"
          },
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/com/jogamp/graph/ui/layout/BoxLayout.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/graphui/classes/com/jogamp/graph/ui/shapes/Label.java"
        ],
        "commitId" : "3309ea8e83241f34cb1e83b660c633b3778f34df",
        "timestamp" : 1694907573000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sven%20gothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "GraphUI Label: Add convenient methods getUnscaledGlyphBounds(..)\u000a",
        "date" : "2023-09-17 01:39:33 +0200",
        "id" : "3309ea8e83241f34cb1e83b660c633b3778f34df",
        "msg" : "GraphUI Label: Add convenient methods getUnscaledGlyphBounds(..)",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/com/jogamp/graph/ui/shapes/Label.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "make/scripts/tests.sh",
          "src/demos/com/jogamp/opengl/demos/graph/ui/FontView01.java"
        ],
        "commitId" : "dbe9eee971b6ac7efa01ccb32bc16577f13c53dd",
        "timestamp" : 1694907934000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sven%20gothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "FontView01: Have all layout performed by our Box/Grid-Layout classes w/o manual calculus (the goal)\u000a\u000aIn some cases we still query a previous added box for width or height though.\u000a\u000aBut in general, using the Group w/ Box- or GridLayout and Fill/Center relieves us from manually scaling things.\u000a",
        "date" : "2023-09-17 01:45:34 +0200",
        "id" : "dbe9eee971b6ac7efa01ccb32bc16577f13c53dd",
        "msg" : "FontView01: Have all layout performed by our Box/Grid-Layout classes w/o manual calculus (the goal)",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "make/scripts/tests.sh"
          },
          {
            "editType" : "edit",
            "file" : "src/demos/com/jogamp/opengl/demos/graph/ui/FontView01.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "etc/test.bat"
        ],
        "commitId" : "b81cf8ca025f2a525a192ec24c63f95cb54b7444",
        "timestamp" : 1694907985000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sven%20gothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "etc/test.bat: Override test.log logfile, don't append\u000a",
        "date" : "2023-09-17 01:46:25 +0200",
        "id" : "b81cf8ca025f2a525a192ec24c63f95cb54b7444",
        "msg" : "etc/test.bat: Override test.log logfile, don't append",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "etc/test.bat"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/demos/com/jogamp/opengl/demos/graph/ui/UILayoutBox01.java",
          "src/demos/com/jogamp/opengl/demos/graph/ui/UILayoutGrid01.java"
        ],
        "commitId" : "376554c6a5bd25edd5490f51118a92ef93a0fc33",
        "timestamp" : 1695091916000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sven%20gothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "GraphUI Layout Tests: Use blue for group border and black for shape border; UILayoutGrid01: Add Padding/Non-Padding comparison\u000a",
        "date" : "2023-09-19 04:51:56 +0200",
        "id" : "376554c6a5bd25edd5490f51118a92ef93a0fc33",
        "msg" : "GraphUI Layout Tests: Use blue for group border and black for shape border; UILayoutGrid01: Add Padding/Non-Padding comparison",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/demos/com/jogamp/opengl/demos/graph/ui/UILayoutGrid01.java"
          },
          {
            "editType" : "edit",
            "file" : "src/demos/com/jogamp/opengl/demos/graph/ui/UILayoutBox01.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/graphui/classes/com/jogamp/graph/ui/layout/GridLayout.java",
          "src/graphui/classes/com/jogamp/graph/ui/layout/BoxLayout.java"
        ],
        "commitId" : "162f8e309b67c333a482d636e59d207a6c5924e7",
        "timestamp" : 1695092020000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sven%20gothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "GraphUI GridLayout: Fix scaled non-center: Only add center offset if requested and avoid double-add.\u000a",
        "date" : "2023-09-19 04:53:40 +0200",
        "id" : "162f8e309b67c333a482d636e59d207a6c5924e7",
        "msg" : "GraphUI GridLayout: Fix scaled non-center: Only add center offset if requested and avoid double-add.",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/com/jogamp/graph/ui/layout/BoxLayout.java"
          },
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/com/jogamp/graph/ui/layout/GridLayout.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/graphui/classes/com/jogamp/graph/ui/layout/GridLayout.java"
        ],
        "commitId" : "52d3dd3b3d684d6ba37e573764c3006c4ba20494",
        "timestamp" : 1695094476000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sven%20gothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "GraphUI GridLayout: Disable TRACE_LAYOUT\u000a",
        "date" : "2023-09-19 05:34:36 +0200",
        "id" : "52d3dd3b3d684d6ba37e573764c3006c4ba20494",
        "msg" : "GraphUI GridLayout: Disable TRACE_LAYOUT",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/com/jogamp/graph/ui/layout/GridLayout.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/demos/com/jogamp/opengl/demos/graph/ui/FontView01.java"
        ],
        "commitId" : "81702c02e5111b6b5db8cbcc94e06472ee566b0a",
        "timestamp" : 1695094555000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sven%20gothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "GraphUI Demo FontView: Prescan available countour glyphs for fluent scrolling ..\u000a",
        "date" : "2023-09-19 05:35:55 +0200",
        "id" : "81702c02e5111b6b5db8cbcc94e06472ee566b0a",
        "msg" : "GraphUI Demo FontView: Prescan available countour glyphs for fluent scrolling ..",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/demos/com/jogamp/opengl/demos/graph/ui/FontView01.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/graphui/classes/com/jogamp/graph/ui/layout/GridLayout.java",
          "src/graphui/classes/com/jogamp/graph/ui/layout/BoxLayout.java"
        ],
        "commitId" : "e676a65eac2bfa2abbfcd346492868ed17dc4667",
        "timestamp" : 1695101416000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sven%20gothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "GraphUI Layout (Box/Grid): Adjust bottom-left offset according to center-axis\u000a\u000a- Remove the negative or positive delta on centered axis.\u000a- Only remove negative offset of non-centered axis (i.e. underline)\u000a",
        "date" : "2023-09-19 07:30:16 +0200",
        "id" : "e676a65eac2bfa2abbfcd346492868ed17dc4667",
        "msg" : "GraphUI Layout (Box/Grid): Adjust bottom-left offset according to center-axis",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/com/jogamp/graph/ui/layout/BoxLayout.java"
          },
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/com/jogamp/graph/ui/layout/GridLayout.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/demos/com/jogamp/opengl/demos/graph/ui/FontView01.java"
        ],
        "commitId" : "bbe845846ffc00807395a5070a7352c6bbe7e4ef",
        "timestamp" : 1695101513000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sven%20gothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "GraphUI Demo Fontview: Fix '-showUnderline' mode; Fix and simplify addGlyphs(..) loop; Add Margin on glyphShapeBox\u000a",
        "date" : "2023-09-19 07:31:53 +0200",
        "id" : "bbe845846ffc00807395a5070a7352c6bbe7e4ef",
        "msg" : "GraphUI Demo Fontview: Fix '-showUnderline' mode; Fix and simplify addGlyphs(..) loop; Add Margin on glyphShapeBox",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/demos/com/jogamp/opengl/demos/graph/ui/FontView01.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/jogl/classes/com/jogamp/graph/curve/OutlineShapeXForm.java",
          "src/jogl/classes/com/jogamp/opengl/math/geom/AABBox.java",
          "src/jogl/classes/com/jogamp/math/util/SyncMatrix4f16.java",
          "src/test/com/jogamp/opengl/test/junit/jogl/math/TestMatrix4f02MulNOUI.java",
          "src/test/com/jogamp/opengl/test/junit/graph/TestTextRendererNEWT01.java",
          "src/jogl/classes/com/jogamp/opengl/util/SyncBuffer.java",
          "src/jogl/classes/com/jogamp/opengl/math/Recti.java",
          "src/test/com/jogamp/opengl/test/junit/jogl/math/TestMatrix4fProject02NOUI.java",
          "src/test/com/jogamp/opengl/test/junit/jogl/math/TestGluUnprojectFloatNOUI.java",
          "src/jogl/classes/com/jogamp/math/geom/AABBox.java",
          "src/demos/com/jogamp/opengl/demos/graph/ui/testshapes/Glyph01UbuntuLight_o.java",
          "src/test/com/jogamp/opengl/test/junit/math/TestGluUnprojectDoubleNOUI.java",
          "src/graphui/classes/com/jogamp/graph/ui/Shape.java",
          "src/jogl/classes/com/jogamp/math/Vert3fImmutable.java",
          "src/graphui/classes/com/jogamp/graph/ui/shapes/Label.java",
          "src/demos/com/jogamp/opengl/demos/graph/ui/UISceneDemo11.java",
          "src/test/com/jogamp/opengl/test/junit/graph/GPUTextRendererListenerBase01.java",
          "src/test/com/jogamp/opengl/test/junit/graph/FontViewListener01.java",
          "src/jogl/classes/com/jogamp/opengl/math/FovHVHalves.java",
          "src/jogl/classes/com/jogamp/graph/geom/plane/Path2F.java",
          "src/jogl/classes/jogamp/graph/curve/opengl/VBORegion2PMSAAES2.java",
          "src/jogl/classes/com/jogamp/opengl/math/Vec4f.java",
          "src/jogl/classes/com/jogamp/math/geom/plane/NoninvertibleTransformException.java",
          "src/jogl/classes/com/jogamp/math/Binary16.java",
          "src/demos/com/jogamp/opengl/demos/graph/GPURegionGLListener10.java",
          "src/jogl/classes/com/jogamp/opengl/util/stereo/StereoGLEventListener.java",
          "src/newt/classes/jogamp/newt/driver/macosx/ScreenDriver.java",
          "src/demos/com/jogamp/opengl/demos/graph/ui/UISceneDemo01.java",
          "src/jogl/classes/com/jogamp/math/Ray.java",
          "src/test/com/jogamp/opengl/test/junit/math/TestMatrix4f02MulNOUI.java",
          "src/test/com/jogamp/opengl/test/junit/jogl/demos/es2/TextureSequenceCubeES2.java",
          "src/jogl/classes/jogamp/graph/font/typecast/TypecastFont.java",
          "src/jogl/classes/com/jogamp/opengl/util/stereo/ViewerPose.java",
          "src/graphui/classes/com/jogamp/graph/ui/Scene.java",
          "src/test/com/jogamp/opengl/test/junit/jogl/math/TestGluUnprojectDoubleNOUI.java",
          "src/jogl/classes/com/jogamp/math/Binary64.java",
          "src/test/com/jogamp/opengl/test/junit/graph/TextRendererGLELBase.java",
          "src/jogl/classes/com/jogamp/math/geom/plane/IllegalPathStateException.java",
          "src/jogl/classes/com/jogamp/math/FloatUtil.java",
          "src/test/com/jogamp/opengl/test/junit/jogl/demos/es2/GearsES2.java",
          "src/jogl/classes/com/jogamp/opengl/math/Binary32.java",
          "src/jogl/classes/jogamp/graph/curve/tess/GraphVertex.java",
          "src/test/com/jogamp/opengl/test/junit/graph/TestFontScale01NOUI.java",
          "src/jogl/classes/com/jogamp/opengl/math/Quaternion.java",
          "src/jogl/classes/com/jogamp/graph/curve/opengl/TextRegionUtil.java",
          "src/graphui/classes/com/jogamp/graph/ui/Container.java",
          "src/jogl/classes/jogamp/graph/curve/tess/CDTriangulator2D.java",
          "src/test/com/jogamp/opengl/test/junit/graph/GPURegionGLListener10.java",
          "src/test/com/jogamp/opengl/test/junit/jogl/demos/es2/ElektronenMultiplizierer.java",
          "src/jogl/classes/com/jogamp/opengl/math/Vec2i.java",
          "src/demos/com/jogamp/opengl/demos/graph/ui/util/Tooltips.java",
          "src/jogl/classes/com/jogamp/graph/geom/Outline.java",
          "src/test/com/jogamp/opengl/test/junit/jogl/math/TestQuaternion01NOUI.java",
          "src/jogl/classes/com/jogamp/opengl/util/stereo/generic/GenericStereoDeviceFactory.java",
          "src/demos/com/jogamp/opengl/demos/graph/ui/FontView01.java",
          "src/jogl/classes/com/jogamp/graph/geom/Vertex.java",
          "src/test/com/jogamp/opengl/test/junit/jogl/math/TestBinary16NOUI.java",
          "src/jogl/classes/com/jogamp/graph/curve/opengl/RenderState.java",
          "src/test/com/jogamp/opengl/test/junit/math/TestMatrix4fProject02NOUI.java",
          "src/graphui/classes/com/jogamp/graph/ui/layout/Padding.java",
          "src/demos/com/jogamp/opengl/demos/graph/ui/UITypeDemo01.java",
          "src/demos/com/jogamp/opengl/demos/graph/ui/UISceneDemo20.java",
          "src/jogl/classes/com/jogamp/graph/curve/opengl/GLRegion.java",
          "src/jogl/classes/com/jogamp/graph/geom/plane/NoninvertibleTransformException.java",
          "src/jogl/classes/com/jogamp/opengl/util/SyncMatrix4f16.java",
          "src/test/com/jogamp/opengl/test/junit/jogl/math/TestMatrix4fMatrixMulNOUI.java",
          "src/demos/com/jogamp/opengl/demos/es2/PointsDemoES2.java",
          "src/test/com/jogamp/opengl/test/junit/jogl/math/TestMatrix4f03InversionNOUI.java",
          "src/test/com/jogamp/opengl/test/junit/jogl/demos/gl4/TrianglesInstancedRendererHardcoded.java",
          "src/test/com/jogamp/opengl/test/junit/math/TestMatrix4fProject01NOUI.java",
          "src/test/com/jogamp/opengl/test/junit/jogl/demos/es2/Mix2TexturesES2.java",
          "src/test/com/jogamp/opengl/test/junit/jogl/math/TestPMVMatrix03NOUI.java",
          "src/jogl/classes/com/jogamp/math/Quaternion.java",
          "src/test/com/jogamp/opengl/test/junit/jogl/demos/es2/RedSquareMappedES2.java",
          "src/jogl/classes/com/jogamp/graph/geom/plane/Crossing2F.java",
          "src/jogl/classes/jogamp/opengl/util/stereo/GenericStereoDeviceRenderer.java",
          "src/oculusvr/classes/jogamp/opengl/oculusvr/OVRStereoDeviceRenderer.java",
          "src/jogl/classes/com/jogamp/math/Vert2fImmutable.java",
          "src/jogl/classes/jogamp/opengl/util/glsl/fixedfunc/FixedFuncHook.java",
          "src/jogl/classes/com/jogamp/graph/font/Font.java",
          "src/graphui/classes/com/jogamp/graph/ui/layout/BoxLayout.java",
          "src/test/com/jogamp/opengl/test/junit/jogl/math/TestFloatUtil01NOUI.java",
          "src/jogl/classes/jogamp/graph/curve/tess/Loop.java",
          "src/jogl/classes/com/jogamp/math/FixedPoint.java",
          "src/demos/com/jogamp/opengl/demos/graph/GPURegionGLListener01.java",
          "src/test/com/jogamp/opengl/test/junit/math/TestPMVTransform01NOUI.java",
          "src/jogl/classes/com/jogamp/math/util/SyncAction.java",
          "src/test/com/jogamp/opengl/test/junit/util/MiscUtils.java",
          "src/test/com/jogamp/opengl/test/junit/jogl/demos/es2/TextureDraw01ES2Listener.java",
          "src/test/com/jogamp/opengl/test/junit/math/Matrix4fb.java",
          "src/test/com/jogamp/opengl/test/junit/graph/TestFontsNEWT00.java",
          "src/graphui/classes/com/jogamp/graph/ui/GraphShape.java",
          "src/test/com/jogamp/opengl/test/junit/jogl/math/TestPMVMatrix01NEWT.java",
          "src/graphui/classes/com/jogamp/graph/ui/Group.java",
          "src/demos/com/jogamp/opengl/demos/es2/RedSquareES2.java",
          "src/test/com/jogamp/opengl/test/junit/math/TestMatrix4f03InversionNOUI.java",
          "src/jogl/classes/com/jogamp/opengl/util/stereo/StereoDeviceRenderer.java",
          "src/graphui/classes/jogamp/graph/ui/shapes/Label0.java",
          "src/test/com/jogamp/opengl/test/junit/jogl/math/TestMatrix4f01NOUI.java",
          "src/test/com/jogamp/opengl/test/junit/jogl/acore/TestFBOMRTNEWT01.java",
          "src/test/com/jogamp/opengl/test/junit/jogl/demos/es2/PointsDemoES2.java",
          "src/jogl/classes/com/jogamp/math/Matrix4f.java",
          "src/jogl/classes/com/jogamp/opengl/math/Vert3fImmutable.java",
          "src/test/com/jogamp/opengl/test/junit/math/TestGluUnprojectFloatNOUI.java",
          "src/jogl/classes/com/jogamp/math/VectorUtil.java",
          "src/jogl/classes/com/jogamp/math/geom/plane/Winding.java",
          "src/test/com/jogamp/opengl/test/junit/math/TestMatrix4f01NOUI.java",
          "src/jogl/classes/com/jogamp/opengl/util/PMVMatrix.java",
          "src/graphui/classes/com/jogamp/graph/ui/AnimGroup.java",
          "src/graphui/classes/com/jogamp/graph/ui/shapes/Rectangle.java",
          "src/jogl/classes/com/jogamp/opengl/math/FloatUtil.java",
          "src/jogl/classes/com/jogamp/opengl/util/stereo/StereoUtil.java",
          "src/test/com/jogamp/opengl/test/junit/jogl/offscreen/ReadBuffer2Screen.java",
          "src/jogl/classes/com/jogamp/opengl/util/SyncMatrices4f.java",
          "src/test/com/jogamp/opengl/test/junit/math/TestBinary32NOUI.java",
          "src/jogl/classes/com/jogamp/graph/geom/plane/AffineTransform.java",
          "src/jogl/classes/com/jogamp/math/Vec3d.java",
          "src/jogl/classes/com/jogamp/math/geom/plane/AffineTransform.java",
          "src/jogl/classes/com/jogamp/opengl/util/stereo/StereoDevice.java",
          "src/test/com/jogamp/opengl/test/junit/graph/GPURegionGLListener01.java",
          "src/jogl/classes/com/jogamp/opengl/math/FixedPoint.java",
          "src/newt/classes/jogamp/newt/MonitorModeProps.java",
          "src/jogl/classes/jogamp/opengl/util/glsl/fixedfunc/FixedFuncPipeline.java",
          "src/test/com/jogamp/opengl/test/junit/graph/GPURendererListenerBase01.java",
          "src/demos/com/jogamp/opengl/demos/graph/ui/UISceneDemo00.java",
          "src/jogl/classes/com/jogamp/math/util/SyncMatrices4f16.java",
          "src/oculusvr/classes/jogamp/opengl/oculusvr/OVRUtil.java",
          "src/jogl/classes/com/jogamp/graph/geom/plane/WindingRule.java",
          "src/newt/classes/jogamp/newt/driver/ios/ScreenDriver.java",
          "src/jogl/classes/com/jogamp/graph/curve/Region.java",
          "src/demos/com/jogamp/opengl/demos/es2/TextureSequenceCubeES2.java",
          "src/newt/classes/jogamp/newt/driver/macosx/WindowDriver.java",
          "src/jogl/classes/com/jogamp/opengl/util/stereo/EyeParameter.java",
          "src/jogl/classes/com/jogamp/math/DoubleUtil.java",
          "src/jogl/classes/com/jogamp/graph/geom/plane/IllegalPathStateException.java",
          "src/jogl/classes/com/jogamp/math/Vec2i.java",
          "src/test/com/jogamp/opengl/test/junit/jogl/glsl/TestGLSLShaderState01NEWT.java",
          "src/test/com/jogamp/opengl/test/junit/jogl/demos/gl3/GeomShader01TextureGL3.java",
          "src/test/com/jogamp/opengl/test/junit/jogl/demos/es2/MultisampleDemoES2.java",
          "src/jogl/classes/com/jogamp/math/Vec4f.java",
          "src/jogl/classes/com/jogamp/math/geom/plane/Path2F.java",
          "src/graphui/classes/jogamp/graph/ui/TreeTool.java",
          "src/test/com/jogamp/opengl/test/junit/jogl/math/TestMatrix4fProject01NOUI.java",
          "src/jogl/classes/com/jogamp/opengl/math/VectorUtil.java",
          "src/graphui/classes/com/jogamp/graph/ui/layout/Margin.java",
          "src/jogl/classes/jogamp/opengl/macosx/cgl/MacOSXCGLContext.java",
          "src/demos/com/jogamp/opengl/demos/graph/ui/UISceneDemo10.java",
          "src/jogl/classes/com/jogamp/graph/geom/plane/Winding.java",
          "src/test/com/jogamp/opengl/test/junit/jogl/math/TestPMVTransform01NOUI.java",
          "src/test/com/jogamp/opengl/test/junit/jogl/demos/es2/RedSquareES2.java",
          "src/graphui/classes/com/jogamp/graph/ui/shapes/GlyphShape.java",
          "src/test/com/jogamp/opengl/test/junit/jogl/demos/gl4/TriangleInstancedRendererWithShaderState.java",
          "src/demos/com/jogamp/opengl/demos/graph/ui/UIGraphDemoU01a.java",
          "src/demos/com/jogamp/opengl/demos/graph/ui/UILayoutGrid01.java",
          "src/jogl/classes/com/jogamp/opengl/math/Binary16.java",
          "src/jogl/classes/jogamp/opengl/util/av/GLMediaPlayerImpl.java",
          "src/jogl/classes/com/jogamp/opengl/math/Vert2fImmutable.java",
          "src/jogl/classes/com/jogamp/math/Vec3f.java",
          "src/jogl/classes/com/jogamp/opengl/math/Vec2f.java",
          "src/jogl/classes/com/jogamp/math/Binary32.java",
          "src/test/com/jogamp/opengl/test/junit/math/TestPMVMatrix02NOUI.java",
          "src/jogl/classes/com/jogamp/opengl/math/geom/Frustum.java",
          "src/test/com/jogamp/opengl/test/junit/math/TestVec3f01NOUI.java",
          "src/jogl/classes/jogamp/opengl/util/stereo/GenericStereoDevice.java",
          "src/jogl/classes/com/jogamp/opengl/math/Binary64.java",
          "src/test/com/jogamp/opengl/test/junit/math/TestPMVMatrix01NEWT.java",
          "src/test/com/jogamp/opengl/test/junit/math/TestBinary16NOUI.java",
          "src/jogl/classes/com/jogamp/opengl/math/Vec3f.java",
          "src/jogl/classes/com/jogamp/opengl/GLUniformData.java",
          "src/jogl/classes/com/jogamp/math/Vec2f.java",
          "src/jogl/classes/com/jogamp/math/geom/plane/Crossing2F.java",
          "src/jogl/classes/jogamp/opengl/ProjectFloat.java",
          "src/test/com/jogamp/opengl/test/junit/math/TestFloatUtil01NOUI.java",
          "src/test/com/jogamp/opengl/test/junit/jogl/util/DemoGL2ES2ImmModeSink.java",
          "src/jogl/classes/jogamp/graph/font/typecast/ot/TTGlyph.java",
          "src/jogl/classes/jogamp/graph/font/typecast/TypecastHMetrics.java",
          "make/scripts/tests.sh",
          "make/build-jogl.xml",
          "src/demos/com/jogamp/opengl/demos/av/MovieSBSStereo.java",
          "src/jogl/classes/com/jogamp/opengl/util/glsl/fixedfunc/FixedFuncUtil.java",
          "src/jogl/classes/com/jogamp/math/util/SyncMatrices4f.java",
          "src/graphui/classes/com/jogamp/graph/ui/layout/Gap.java",
          "src/jogl/classes/jogamp/opengl/util/stereo/ScaleAndOffset2D.java",
          "src/demos/com/jogamp/opengl/demos/av/StereoDemo01.java",
          "src/demos/com/jogamp/opengl/demos/graph/GPUTextRendererListenerBase01.java",
          "src/test/com/jogamp/opengl/test/junit/jogl/math/TestBinary32NOUI.java",
          "src/demos/com/jogamp/opengl/demos/es2/GearsES2.java",
          "src/test/com/jogamp/opengl/test/junit/jogl/demos/es2/LineSquareXDemoES2.java",
          "src/demos/com/jogamp/opengl/demos/graph/GPURegionGLListener00.java",
          "src/jogl/classes/jogamp/opengl/glu/GLUquadricImpl.java",
          "src/test/com/jogamp/opengl/test/junit/jogl/math/Matrix4fb.java",
          "src/jogl/classes/com/jogamp/math/geom/plane/WindingRule.java",
          "src/test/com/jogamp/opengl/test/junit/graph/PerfTextRendererNEWT00.java",
          "src/jogl/classes/jogamp/graph/curve/opengl/VBORegion2PVBAAES2.java",
          "src/graphui/classes/com/jogamp/graph/ui/layout/GridLayout.java",
          "src/demos/com/jogamp/opengl/demos/graph/ui/UISceneDemo03.java",
          "src/jogl/classes/com/jogamp/graph/curve/OutlineShape.java",
          "src/test/com/jogamp/opengl/test/junit/graph/TestTextRendererNEWTBugXXXX.java",
          "src/oculusvr/classes/jogamp/opengl/oculusvr/OVRStereoDevice.java",
          "src/demos/com/jogamp/opengl/demos/graph/ui/UISceneDemo01b.java",
          "src/jogl/classes/com/jogamp/opengl/util/SyncAction.java",
          "src/jogl/classes/com/jogamp/opengl/util/SyncMatrices4f16.java",
          "src/test/com/jogamp/opengl/test/junit/math/TestMatrix4fMatrixMulNOUI.java",
          "src/jogl/classes/com/jogamp/math/util/PMVMatrix4f.java",
          "src/jogl/classes/jogamp/graph/font/typecast/ot/T2Glyph.java",
          "src/jogl/classes/jogamp/graph/font/typecast/TypecastRenderer.java",
          "src/jogl/classes/jogamp/graph/font/typecast/TypecastGlyph.java",
          "src/newt/classes/jogamp/newt/driver/ios/WindowDriver.java",
          "src/demos/com/jogamp/opengl/demos/graph/GPURendererListenerBase01.java",
          "src/jogl/classes/com/jogamp/math/Recti.java",
          "src/graphui/classes/com/jogamp/graph/ui/shapes/Button.java",
          "src/test/com/jogamp/opengl/test/junit/math/TestBinary64NOUI.java",
          "src/newt/classes/jogamp/newt/WindowImpl.java",
          "src/demos/com/jogamp/opengl/demos/graph/ui/UISceneDemo02.java",
          "src/demos/com/jogamp/opengl/demos/graph/ui/UIShapeDemo01.java",
          "src/jogl/classes/com/jogamp/math/geom/Frustum.java",
          "src/jogl/classes/jogamp/opengl/util/glsl/GLSLTextureRaster.java",
          "src/demos/com/jogamp/opengl/demos/graph/TextRendererGLELBase.java",
          "src/test/com/jogamp/opengl/test/junit/jogl/math/TestVec3f01NOUI.java",
          "src/demos/com/jogamp/opengl/demos/graph/ui/UILayoutBox01.java",
          "src/jogl/classes/com/jogamp/math/FovHVHalves.java",
          "src/test/com/jogamp/opengl/test/junit/jogl/math/TestBinary64NOUI.java",
          "src/jogl/classes/com/jogamp/opengl/math/Matrix4f.java",
          "src/test/com/jogamp/opengl/test/junit/math/TestQuaternion01NOUI.java",
          "src/jogl/classes/com/jogamp/opengl/util/stereo/LocationSensorParameter.java",
          "src/jogl/classes/jogamp/graph/curve/tess/CDTriangulator2DExpAddOn.java",
          "src/test/com/jogamp/opengl/test/junit/jogl/demos/es2/FBOMix2DemosES2.java",
          "src/demos/com/jogamp/opengl/demos/es2/TextureSequenceES2.java",
          "src/test/com/jogamp/opengl/test/junit/jogl/demos/es2/TextureDraw02ES2ListenerFBO.java",
          "src/jogl/classes/com/jogamp/graph/geom/Triangle.java",
          "src/jogl/classes/com/jogamp/graph/curve/opengl/RegionRenderer.java",
          "src/jogl/classes/com/jogamp/math/util/SyncMatrix4f.java",
          "src/test/com/jogamp/opengl/test/junit/jogl/glsl/TestRulerNEWT01.java",
          "src/test/com/jogamp/opengl/test/junit/jogl/glsl/TestGLSLShaderState02NEWT.java",
          "src/test/com/jogamp/opengl/test/junit/math/TestPMVMatrix03NOUI.java",
          "src/jogl/classes/com/jogamp/opengl/util/SyncMatrix4f.java",
          "src/jogl/classes/jogamp/graph/font/typecast/ot/Glyph.java",
          "src/test/com/jogamp/opengl/test/junit/jogl/math/TestPMVMatrix02NOUI.java",
          "src/demos/com/jogamp/opengl/demos/graph/GPUTextNewtDemo.java",
          "src/jogl/classes/com/jogamp/opengl/math/Ray.java",
          "src/jogl/classes/com/jogamp/math/util/SyncBuffer.java"
        ],
        "commitId" : "5d6e8a367c03644740187e500c6de5d3ac039d5e",
        "timestamp" : 1695232315000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sven%20gothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "Bug 1452 - Decouple math functionality to 'com.jogamp.math' to be toolkit agnostic (PMVMatrix, Matrix4f, Vec4f, ..)\u000a\u000aMath functionality (PMVMatrix, Matrix4f, Vec4f, ..)\u000a- shall be used toolkit agnostic, e.g. independent from OpenGL\u000a- shall be reused within our upcoming Vulkan implementation\u000a- may also move outside of JOGL, i.e. GlueGen or within its own package to be reused for other purposed.\u000a\u000aThe 'com.jogamp.opengl.util.PMVMatrix' currently also used to feed in GLUniformData\u000avia the toolkit agnostic SyncAction and SyncBuffer\u000ashall also be split to a toolkit agnostic variant.\u000a\u000aAn OpenGL PMVMatrix specialization implementing GLMatrixFunc can still exist,\u000abeing derived from the toolkit agnostic base implementation.\u000a\u000a+++\u000a\u000aInitial commit .. compile clean, passing most unit tests.\u000a",
        "date" : "2023-09-20 19:51:55 +0200",
        "id" : "5d6e8a367c03644740187e500c6de5d3ac039d5e",
        "msg" : "Bug 1452 - Decouple math functionality to 'com.jogamp.math' to be toolkit agnostic (PMVMatrix, Matrix4f, Vec4f, ..)",
        "paths" : [
          {
            "editType" : "add",
            "file" : "src/test/com/jogamp/opengl/test/junit/math/TestBinary32NOUI.java"
          },
          {
            "editType" : "delete",
            "file" : "src/jogl/classes/com/jogamp/graph/geom/plane/IllegalPathStateException.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/jogamp/graph/font/typecast/ot/TTGlyph.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/jogamp/graph/font/typecast/ot/Glyph.java"
          },
          {
            "editType" : "add",
            "file" : "src/jogl/classes/com/jogamp/math/Binary64.java"
          },
          {
            "editType" : "add",
            "file" : "src/jogl/classes/com/jogamp/math/FloatUtil.java"
          },
          {
            "editType" : "delete",
            "file" : "src/test/com/jogamp/opengl/test/junit/jogl/math/TestMatrix4f03InversionNOUI.java"
          },
          {
            "editType" : "delete",
            "file" : "src/jogl/classes/com/jogamp/graph/geom/plane/Winding.java"
          },
          {
            "editType" : "delete",
            "file" : "src/test/com/jogamp/opengl/test/junit/jogl/math/TestMatrix4fProject02NOUI.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/com/jogamp/graph/curve/opengl/GLRegion.java"
          },
          {
            "editType" : "edit",
            "file" : "src/demos/com/jogamp/opengl/demos/graph/ui/UISceneDemo20.java"
          },
          {
            "editType" : "edit",
            "file" : "src/demos/com/jogamp/opengl/demos/graph/ui/UIShapeDemo01.java"
          },
          {
            "editType" : "delete",
            "file" : "src/jogl/classes/com/jogamp/opengl/math/FovHVHalves.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/jogamp/opengl/macosx/cgl/MacOSXCGLContext.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/jogamp/graph/curve/opengl/VBORegion2PVBAAES2.java"
          },
          {
            "editType" : "add",
            "file" : "src/jogl/classes/com/jogamp/math/geom/Frustum.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/com/jogamp/opengl/util/glsl/fixedfunc/FixedFuncUtil.java"
          },
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/com/jogamp/graph/ui/layout/Gap.java"
          },
          {
            "editType" : "add",
            "file" : "src/jogl/classes/com/jogamp/math/geom/plane/NoninvertibleTransformException.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/com/jogamp/opengl/util/stereo/ViewerPose.java"
          },
          {
            "editType" : "edit",
            "file" : "src/oculusvr/classes/jogamp/opengl/oculusvr/OVRUtil.java"
          },
          {
            "editType" : "add",
            "file" : "src/jogl/classes/com/jogamp/math/geom/plane/AffineTransform.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/com/jogamp/opengl/util/stereo/StereoDevice.java"
          },
          {
            "editType" : "add",
            "file" : "src/test/com/jogamp/opengl/test/junit/math/TestPMVMatrix01NEWT.java"
          },
          {
            "editType" : "delete",
            "file" : "src/jogl/classes/com/jogamp/opengl/math/Vert3fImmutable.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/jogamp/graph/curve/tess/CDTriangulator2DExpAddOn.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/com/jogamp/graph/geom/Vertex.java"
          },
          {
            "editType" : "delete",
            "file" : "src/test/com/jogamp/opengl/test/junit/jogl/math/TestMatrix4f02MulNOUI.java"
          },
          {
            "editType" : "edit",
            "file" : "src/test/com/jogamp/opengl/test/junit/graph/TestFontScale01NOUI.java"
          },
          {
            "editType" : "edit",
            "file" : "src/demos/com/jogamp/opengl/demos/graph/GPURegionGLListener01.java"
          },
          {
            "editType" : "add",
            "file" : "src/test/com/jogamp/opengl/test/junit/math/TestMatrix4f02MulNOUI.java"
          },
          {
            "editType" : "add",
            "file" : "src/test/com/jogamp/opengl/test/junit/math/TestQuaternion01NOUI.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/com/jogamp/graph/geom/Outline.java"
          },
          {
            "editType" : "add",
            "file" : "src/jogl/classes/com/jogamp/math/Vec3f.java"
          },
          {
            "editType" : "edit",
            "file" : "src/test/com/jogamp/opengl/test/junit/jogl/demos/es2/Mix2TexturesES2.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/jogamp/opengl/util/glsl/fixedfunc/FixedFuncPipeline.java"
          },
          {
            "editType" : "edit",
            "file" : "src/demos/com/jogamp/opengl/demos/graph/ui/UISceneDemo11.java"
          },
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/com/jogamp/graph/ui/Container.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/jogamp/graph/curve/tess/CDTriangulator2D.java"
          },
          {
            "editType" : "add",
            "file" : "src/jogl/classes/com/jogamp/math/DoubleUtil.java"
          },
          {
            "editType" : "delete",
            "file" : "src/jogl/classes/com/jogamp/opengl/util/SyncMatrix4f16.java"
          },
          {
            "editType" : "edit",
            "file" : "src/demos/com/jogamp/opengl/demos/es2/TextureSequenceCubeES2.java"
          },
          {
            "editType" : "edit",
            "file" : "src/demos/com/jogamp/opengl/demos/graph/ui/UIGraphDemoU01a.java"
          },
          {
            "editType" : "delete",
            "file" : "src/jogl/classes/com/jogamp/graph/geom/plane/AffineTransform.java"
          },
          {
            "editType" : "edit",
            "file" : "src/newt/classes/jogamp/newt/driver/macosx/ScreenDriver.java"
          },
          {
            "editType" : "edit",
            "file" : "src/demos/com/jogamp/opengl/demos/graph/TextRendererGLELBase.java"
          },
          {
            "editType" : "add",
            "file" : "src/test/com/jogamp/opengl/test/junit/math/TestGluUnprojectFloatNOUI.java"
          },
          {
            "editType" : "delete",
            "file" : "src/test/com/jogamp/opengl/test/junit/jogl/math/TestMatrix4fProject01NOUI.java"
          },
          {
            "editType" : "edit",
            "file" : "src/demos/com/jogamp/opengl/demos/graph/ui/util/Tooltips.java"
          },
          {
            "editType" : "edit",
            "file" : "src/test/com/jogamp/opengl/test/junit/util/MiscUtils.java"
          },
          {
            "editType" : "edit",
            "file" : "src/newt/classes/jogamp/newt/driver/ios/ScreenDriver.java"
          },
          {
            "editType" : "edit",
            "file" : "src/newt/classes/jogamp/newt/MonitorModeProps.java"
          },
          {
            "editType" : "add",
            "file" : "src/test/com/jogamp/opengl/test/junit/math/TestFloatUtil01NOUI.java"
          },
          {
            "editType" : "edit",
            "file" : "src/demos/com/jogamp/opengl/demos/graph/GPUTextRendererListenerBase01.java"
          },
          {
            "editType" : "delete",
            "file" : "src/test/com/jogamp/opengl/test/junit/jogl/math/TestPMVMatrix01NEWT.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/jogamp/graph/font/typecast/TypecastFont.java"
          },
          {
            "editType" : "edit",
            "file" : "src/demos/com/jogamp/opengl/demos/av/MovieSBSStereo.java"
          },
          {
            "editType" : "edit",
            "file" : "src/demos/com/jogamp/opengl/demos/graph/ui/UILayoutGrid01.java"
          },
          {
            "editType" : "edit",
            "file" : "src/test/com/jogamp/opengl/test/junit/jogl/demos/gl4/TrianglesInstancedRendererHardcoded.java"
          },
          {
            "editType" : "add",
            "file" : "src/jogl/classes/com/jogamp/math/util/SyncBuffer.java"
          },
          {
            "editType" : "edit",
            "file" : "src/test/com/jogamp/opengl/test/junit/graph/GPURegionGLListener01.java"
          },
          {
            "editType" : "delete",
            "file" : "src/jogl/classes/com/jogamp/opengl/math/VectorUtil.java"
          },
          {
            "editType" : "edit",
            "file" : "make/scripts/tests.sh"
          },
          {
            "editType" : "delete",
            "file" : "src/jogl/classes/com/jogamp/graph/geom/plane/Path2F.java"
          },
          {
            "editType" : "delete",
            "file" : "src/jogl/classes/com/jogamp/opengl/math/geom/Frustum.java"
          },
          {
            "editType" : "add",
            "file" : "src/jogl/classes/com/jogamp/math/Vert3fImmutable.java"
          },
          {
            "editType" : "delete",
            "file" : "src/test/com/jogamp/opengl/test/junit/jogl/math/TestPMVTransform01NOUI.java"
          },
          {
            "editType" : "edit",
            "file" : "src/demos/com/jogamp/opengl/demos/graph/ui/UISceneDemo01b.java"
          },
          {
            "editType" : "delete",
            "file" : "src/jogl/classes/com/jogamp/opengl/math/Binary64.java"
          },
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/com/jogamp/graph/ui/Shape.java"
          },
          {
            "editType" : "edit",
            "file" : "src/test/com/jogamp/opengl/test/junit/jogl/glsl/TestGLSLShaderState02NEWT.java"
          },
          {
            "editType" : "delete",
            "file" : "src/jogl/classes/com/jogamp/opengl/math/FloatUtil.java"
          },
          {
            "editType" : "edit",
            "file" : "src/test/com/jogamp/opengl/test/junit/jogl/demos/es2/TextureDraw01ES2Listener.java"
          },
          {
            "editType" : "delete",
            "file" : "src/jogl/classes/com/jogamp/opengl/util/SyncAction.java"
          },
          {
            "editType" : "add",
            "file" : "src/jogl/classes/com/jogamp/math/FovHVHalves.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/jogamp/graph/curve/tess/Loop.java"
          },
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/com/jogamp/graph/ui/Scene.java"
          },
          {
            "editType" : "add",
            "file" : "src/jogl/classes/com/jogamp/math/geom/AABBox.java"
          },
          {
            "editType" : "edit",
            "file" : "src/test/com/jogamp/opengl/test/junit/jogl/glsl/TestRulerNEWT01.java"
          },
          {
            "editType" : "delete",
            "file" : "src/test/com/jogamp/opengl/test/junit/jogl/math/TestMatrix4fMatrixMulNOUI.java"
          },
          {
            "editType" : "delete",
            "file" : "src/test/com/jogamp/opengl/test/junit/jogl/math/TestVec3f01NOUI.java"
          },
          {
            "editType" : "add",
            "file" : "src/jogl/classes/com/jogamp/math/util/SyncMatrices4f.java"
          },
          {
            "editType" : "edit",
            "file" : "src/test/com/jogamp/opengl/test/junit/jogl/demos/es2/RedSquareMappedES2.java"
          },
          {
            "editType" : "add",
            "file" : "src/test/com/jogamp/opengl/test/junit/math/Matrix4fb.java"
          },
          {
            "editType" : "edit",
            "file" : "src/oculusvr/classes/jogamp/opengl/oculusvr/OVRStereoDeviceRenderer.java"
          },
          {
            "editType" : "edit",
            "file" : "src/demos/com/jogamp/opengl/demos/es2/PointsDemoES2.java"
          },
          {
            "editType" : "edit",
            "file" : "src/test/com/jogamp/opengl/test/junit/jogl/offscreen/ReadBuffer2Screen.java"
          },
          {
            "editType" : "delete",
            "file" : "src/test/com/jogamp/opengl/test/junit/jogl/math/TestFloatUtil01NOUI.java"
          },
          {
            "editType" : "add",
            "file" : "src/jogl/classes/com/jogamp/math/FixedPoint.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/com/jogamp/graph/curve/OutlineShapeXForm.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/com/jogamp/graph/curve/Region.java"
          },
          {
            "editType" : "edit",
            "file" : "src/test/com/jogamp/opengl/test/junit/jogl/demos/es2/TextureSequenceCubeES2.java"
          },
          {
            "editType" : "edit",
            "file" : "src/demos/com/jogamp/opengl/demos/es2/TextureSequenceES2.java"
          },
          {
            "editType" : "edit",
            "file" : "src/demos/com/jogamp/opengl/demos/graph/ui/UISceneDemo01.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/com/jogamp/opengl/util/stereo/StereoUtil.java"
          },
          {
            "editType" : "edit",
            "file" : "src/test/com/jogamp/opengl/test/junit/jogl/demos/gl3/GeomShader01TextureGL3.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/com/jogamp/opengl/GLUniformData.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/com/jogamp/graph/geom/Triangle.java"
          },
          {
            "editType" : "delete",
            "file" : "src/jogl/classes/com/jogamp/opengl/math/Vec4f.java"
          },
          {
            "editType" : "edit",
            "file" : "src/test/com/jogamp/opengl/test/junit/jogl/demos/es2/TextureDraw02ES2ListenerFBO.java"
          },
          {
            "editType" : "add",
            "file" : "src/jogl/classes/com/jogamp/math/Vec2f.java"
          },
          {
            "editType" : "edit",
            "file" : "src/test/com/jogamp/opengl/test/junit/jogl/demos/es2/LineSquareXDemoES2.java"
          },
          {
            "editType" : "add",
            "file" : "src/jogl/classes/com/jogamp/math/Ray.java"
          },
          {
            "editType" : "edit",
            "file" : "src/test/com/jogamp/opengl/test/junit/jogl/acore/TestFBOMRTNEWT01.java"
          },
          {
            "editType" : "add",
            "file" : "src/test/com/jogamp/opengl/test/junit/math/TestPMVMatrix02NOUI.java"
          },
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/com/jogamp/graph/ui/shapes/Rectangle.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/jogamp/graph/font/typecast/ot/T2Glyph.java"
          },
          {
            "editType" : "edit",
            "file" : "src/newt/classes/jogamp/newt/driver/macosx/WindowDriver.java"
          },
          {
            "editType" : "add",
            "file" : "src/test/com/jogamp/opengl/test/junit/math/TestGluUnprojectDoubleNOUI.java"
          },
          {
            "editType" : "add",
            "file" : "src/jogl/classes/com/jogamp/math/VectorUtil.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/jogamp/opengl/glu/GLUquadricImpl.java"
          },
          {
            "editType" : "delete",
            "file" : "src/test/com/jogamp/opengl/test/junit/jogl/math/Matrix4fb.java"
          },
          {
            "editType" : "edit",
            "file" : "src/demos/com/jogamp/opengl/demos/es2/GearsES2.java"
          },
          {
            "editType" : "delete",
            "file" : "src/jogl/classes/com/jogamp/opengl/math/Quaternion.java"
          },
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/com/jogamp/graph/ui/shapes/GlyphShape.java"
          },
          {
            "editType" : "add",
            "file" : "src/jogl/classes/com/jogamp/math/Binary32.java"
          },
          {
            "editType" : "delete",
            "file" : "src/jogl/classes/com/jogamp/opengl/math/Matrix4f.java"
          },
          {
            "editType" : "add",
            "file" : "src/jogl/classes/com/jogamp/math/Binary16.java"
          },
          {
            "editType" : "add",
            "file" : "src/jogl/classes/com/jogamp/math/geom/plane/Crossing2F.java"
          },
          {
            "editType" : "delete",
            "file" : "src/test/com/jogamp/opengl/test/junit/jogl/math/TestPMVMatrix03NOUI.java"
          },
          {
            "editType" : "delete",
            "file" : "src/jogl/classes/com/jogamp/opengl/util/SyncMatrices4f.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/jogamp/opengl/util/stereo/ScaleAndOffset2D.java"
          },
          {
            "editType" : "edit",
            "file" : "src/test/com/jogamp/opengl/test/junit/jogl/demos/gl4/TriangleInstancedRendererWithShaderState.java"
          },
          {
            "editType" : "edit",
            "file" : "src/test/com/jogamp/opengl/test/junit/graph/GPURendererListenerBase01.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/jogamp/graph/font/typecast/TypecastRenderer.java"
          },
          {
            "editType" : "delete",
            "file" : "src/jogl/classes/com/jogamp/graph/geom/plane/WindingRule.java"
          },
          {
            "editType" : "add",
            "file" : "src/jogl/classes/com/jogamp/math/Recti.java"
          },
          {
            "editType" : "delete",
            "file" : "src/jogl/classes/com/jogamp/opengl/math/Recti.java"
          },
          {
            "editType" : "edit",
            "file" : "src/test/com/jogamp/opengl/test/junit/jogl/glsl/TestGLSLShaderState01NEWT.java"
          },
          {
            "editType" : "add",
            "file" : "src/test/com/jogamp/opengl/test/junit/math/TestBinary16NOUI.java"
          },
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/com/jogamp/graph/ui/layout/BoxLayout.java"
          },
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/jogamp/graph/ui/shapes/Label0.java"
          },
          {
            "editType" : "edit",
            "file" : "src/oculusvr/classes/jogamp/opengl/oculusvr/OVRStereoDevice.java"
          },
          {
            "editType" : "delete",
            "file" : "src/test/com/jogamp/opengl/test/junit/jogl/math/TestGluUnprojectFloatNOUI.java"
          },
          {
            "editType" : "edit",
            "file" : "src/demos/com/jogamp/opengl/demos/graph/ui/UISceneDemo00.java"
          },
          {
            "editType" : "edit",
            "file" : "src/test/com/jogamp/opengl/test/junit/graph/TestFontsNEWT00.java"
          },
          {
            "editType" : "add",
            "file" : "src/test/com/jogamp/opengl/test/junit/math/TestPMVTransform01NOUI.java"
          },
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/com/jogamp/graph/ui/shapes/Label.java"
          },
          {
            "editType" : "edit",
            "file" : "src/test/com/jogamp/opengl/test/junit/graph/TextRendererGLELBase.java"
          },
          {
            "editType" : "edit",
            "file" : "src/test/com/jogamp/opengl/test/junit/jogl/demos/es2/FBOMix2DemosES2.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/com/jogamp/graph/curve/opengl/TextRegionUtil.java"
          },
          {
            "editType" : "edit",
            "file" : "src/newt/classes/jogamp/newt/driver/ios/WindowDriver.java"
          },
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/com/jogamp/graph/ui/Group.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/jogamp/opengl/util/glsl/fixedfunc/FixedFuncHook.java"
          },
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/com/jogamp/graph/ui/layout/Padding.java"
          },
          {
            "editType" : "add",
            "file" : "src/test/com/jogamp/opengl/test/junit/math/TestVec3f01NOUI.java"
          },
          {
            "editType" : "add",
            "file" : "src/test/com/jogamp/opengl/test/junit/math/TestMatrix4fProject01NOUI.java"
          },
          {
            "editType" : "add",
            "file" : "src/test/com/jogamp/opengl/test/junit/math/TestBinary64NOUI.java"
          },
          {
            "editType" : "add",
            "file" : "src/jogl/classes/com/jogamp/math/util/SyncMatrix4f16.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/com/jogamp/graph/curve/opengl/RenderState.java"
          },
          {
            "editType" : "add",
            "file" : "src/test/com/jogamp/opengl/test/junit/math/TestPMVMatrix03NOUI.java"
          },
          {
            "editType" : "edit",
            "file" : "src/test/com/jogamp/opengl/test/junit/graph/GPURegionGLListener10.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/com/jogamp/opengl/util/stereo/EyeParameter.java"
          },
          {
            "editType" : "add",
            "file" : "src/test/com/jogamp/opengl/test/junit/math/TestMatrix4fProject02NOUI.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/jogamp/opengl/ProjectFloat.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/jogamp/graph/font/typecast/TypecastHMetrics.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/com/jogamp/opengl/util/stereo/LocationSensorParameter.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/jogamp/graph/font/typecast/TypecastGlyph.java"
          },
          {
            "editType" : "add",
            "file" : "src/jogl/classes/com/jogamp/math/Vert2fImmutable.java"
          },
          {
            "editType" : "add",
            "file" : "src/jogl/classes/com/jogamp/math/Vec4f.java"
          },
          {
            "editType" : "add",
            "file" : "src/jogl/classes/com/jogamp/math/util/SyncMatrix4f.java"
          },
          {
            "editType" : "edit",
            "file" : "src/test/com/jogamp/opengl/test/junit/graph/TestTextRendererNEWT01.java"
          },
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/com/jogamp/graph/ui/GraphShape.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/com/jogamp/graph/curve/OutlineShape.java"
          },
          {
            "editType" : "add",
            "file" : "src/jogl/classes/com/jogamp/math/Vec2i.java"
          },
          {
            "editType" : "delete",
            "file" : "src/test/com/jogamp/opengl/test/junit/jogl/math/TestBinary32NOUI.java"
          },
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/com/jogamp/graph/ui/AnimGroup.java"
          },
          {
            "editType" : "edit",
            "file" : "src/demos/com/jogamp/opengl/demos/es2/RedSquareES2.java"
          },
          {
            "editType" : "add",
            "file" : "src/jogl/classes/com/jogamp/math/Matrix4f.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/jogamp/graph/curve/opengl/VBORegion2PMSAAES2.java"
          },
          {
            "editType" : "add",
            "file" : "src/test/com/jogamp/opengl/test/junit/math/TestMatrix4f03InversionNOUI.java"
          },
          {
            "editType" : "delete",
            "file" : "src/jogl/classes/com/jogamp/opengl/util/SyncMatrix4f.java"
          },
          {
            "editType" : "delete",
            "file" : "src/test/com/jogamp/opengl/test/junit/jogl/math/TestGluUnprojectDoubleNOUI.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/jogamp/graph/curve/tess/GraphVertex.java"
          },
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/com/jogamp/graph/ui/layout/GridLayout.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/com/jogamp/opengl/util/stereo/generic/GenericStereoDeviceFactory.java"
          },
          {
            "editType" : "edit",
            "file" : "src/demos/com/jogamp/opengl/demos/av/StereoDemo01.java"
          },
          {
            "editType" : "add",
            "file" : "src/jogl/classes/com/jogamp/math/geom/plane/WindingRule.java"
          },
          {
            "editType" : "edit",
            "file" : "src/demos/com/jogamp/opengl/demos/graph/GPURegionGLListener00.java"
          },
          {
            "editType" : "edit",
            "file" : "src/test/com/jogamp/opengl/test/junit/jogl/demos/es2/GearsES2.java"
          },
          {
            "editType" : "edit",
            "file" : "make/build-jogl.xml"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/com/jogamp/opengl/util/stereo/StereoDeviceRenderer.java"
          },
          {
            "editType" : "delete",
            "file" : "src/jogl/classes/com/jogamp/opengl/math/Binary32.java"
          },
          {
            "editType" : "add",
            "file" : "src/jogl/classes/com/jogamp/math/geom/plane/Path2F.java"
          },
          {
            "editType" : "edit",
            "file" : "src/test/com/jogamp/opengl/test/junit/jogl/util/DemoGL2ES2ImmModeSink.java"
          },
          {
            "editType" : "edit",
            "file" : "src/demos/com/jogamp/opengl/demos/graph/GPURegionGLListener10.java"
          },
          {
            "editType" : "add",
            "file" : "src/jogl/classes/com/jogamp/math/geom/plane/IllegalPathStateException.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/com/jogamp/graph/curve/opengl/RegionRenderer.java"
          },
          {
            "editType" : "delete",
            "file" : "src/jogl/classes/com/jogamp/graph/geom/plane/NoninvertibleTransformException.java"
          },
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/com/jogamp/graph/ui/shapes/Button.java"
          },
          {
            "editType" : "delete",
            "file" : "src/test/com/jogamp/opengl/test/junit/jogl/math/TestQuaternion01NOUI.java"
          },
          {
            "editType" : "add",
            "file" : "src/test/com/jogamp/opengl/test/junit/math/TestMatrix4f01NOUI.java"
          },
          {
            "editType" : "add",
            "file" : "src/jogl/classes/com/jogamp/math/geom/plane/Winding.java"
          },
          {
            "editType" : "edit",
            "file" : "src/demos/com/jogamp/opengl/demos/graph/GPURendererListenerBase01.java"
          },
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/jogamp/graph/ui/TreeTool.java"
          },
          {
            "editType" : "delete",
            "file" : "src/test/com/jogamp/opengl/test/junit/jogl/math/TestMatrix4f01NOUI.java"
          },
          {
            "editType" : "add",
            "file" : "src/jogl/classes/com/jogamp/math/Vec3d.java"
          },
          {
            "editType" : "delete",
            "file" : "src/jogl/classes/com/jogamp/opengl/math/geom/AABBox.java"
          },
          {
            "editType" : "delete",
            "file" : "src/jogl/classes/com/jogamp/opengl/math/FixedPoint.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/jogamp/opengl/util/glsl/GLSLTextureRaster.java"
          },
          {
            "editType" : "delete",
            "file" : "src/jogl/classes/com/jogamp/opengl/math/Vec2i.java"
          },
          {
            "editType" : "add",
            "file" : "src/jogl/classes/com/jogamp/math/util/SyncAction.java"
          },
          {
            "editType" : "edit",
            "file" : "src/test/com/jogamp/opengl/test/junit/jogl/demos/es2/PointsDemoES2.java"
          },
          {
            "editType" : "edit",
            "file" : "src/test/com/jogamp/opengl/test/junit/jogl/demos/es2/RedSquareES2.java"
          },
          {
            "editType" : "edit",
            "file" : "src/test/com/jogamp/opengl/test/junit/graph/PerfTextRendererNEWT00.java"
          },
          {
            "editType" : "delete",
            "file" : "src/jogl/classes/com/jogamp/opengl/math/Ray.java"
          },
          {
            "editType" : "delete",
            "file" : "src/jogl/classes/com/jogamp/opengl/math/Vec2f.java"
          },
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/com/jogamp/graph/ui/layout/Margin.java"
          },
          {
            "editType" : "delete",
            "file" : "src/jogl/classes/com/jogamp/opengl/util/SyncBuffer.java"
          },
          {
            "editType" : "delete",
            "file" : "src/test/com/jogamp/opengl/test/junit/jogl/math/TestPMVMatrix02NOUI.java"
          },
          {
            "editType" : "edit",
            "file" : "src/test/com/jogamp/opengl/test/junit/jogl/demos/es2/MultisampleDemoES2.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/jogamp/opengl/util/stereo/GenericStereoDevice.java"
          },
          {
            "editType" : "delete",
            "file" : "src/jogl/classes/com/jogamp/opengl/math/Binary16.java"
          },
          {
            "editType" : "edit",
            "file" : "src/demos/com/jogamp/opengl/demos/graph/ui/testshapes/Glyph01UbuntuLight_o.java"
          },
          {
            "editType" : "delete",
            "file" : "src/jogl/classes/com/jogamp/opengl/math/Vert2fImmutable.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/com/jogamp/graph/font/Font.java"
          },
          {
            "editType" : "edit",
            "file" : "src/demos/com/jogamp/opengl/demos/graph/ui/UISceneDemo03.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/com/jogamp/opengl/util/stereo/StereoGLEventListener.java"
          },
          {
            "editType" : "add",
            "file" : "src/test/com/jogamp/opengl/test/junit/math/TestMatrix4fMatrixMulNOUI.java"
          },
          {
            "editType" : "delete",
            "file" : "src/test/com/jogamp/opengl/test/junit/jogl/math/TestBinary64NOUI.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/jogamp/opengl/util/av/GLMediaPlayerImpl.java"
          },
          {
            "editType" : "delete",
            "file" : "src/test/com/jogamp/opengl/test/junit/jogl/math/TestBinary16NOUI.java"
          },
          {
            "editType" : "edit",
            "file" : "src/demos/com/jogamp/opengl/demos/graph/ui/UISceneDemo10.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/jogamp/opengl/util/stereo/GenericStereoDeviceRenderer.java"
          },
          {
            "editType" : "edit",
            "file" : "src/test/com/jogamp/opengl/test/junit/graph/TestTextRendererNEWTBugXXXX.java"
          },
          {
            "editType" : "edit",
            "file" : "src/demos/com/jogamp/opengl/demos/graph/ui/UILayoutBox01.java"
          },
          {
            "editType" : "add",
            "file" : "src/jogl/classes/com/jogamp/math/util/SyncMatrices4f16.java"
          },
          {
            "editType" : "edit",
            "file" : "src/test/com/jogamp/opengl/test/junit/jogl/demos/es2/ElektronenMultiplizierer.java"
          },
          {
            "editType" : "edit",
            "file" : "src/newt/classes/jogamp/newt/WindowImpl.java"
          },
          {
            "editType" : "edit",
            "file" : "src/demos/com/jogamp/opengl/demos/graph/ui/UITypeDemo01.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/com/jogamp/opengl/util/PMVMatrix.java"
          },
          {
            "editType" : "edit",
            "file" : "src/test/com/jogamp/opengl/test/junit/graph/GPUTextRendererListenerBase01.java"
          },
          {
            "editType" : "add",
            "file" : "src/jogl/classes/com/jogamp/math/Quaternion.java"
          },
          {
            "editType" : "edit",
            "file" : "src/demos/com/jogamp/opengl/demos/graph/GPUTextNewtDemo.java"
          },
          {
            "editType" : "delete",
            "file" : "src/jogl/classes/com/jogamp/graph/geom/plane/Crossing2F.java"
          },
          {
            "editType" : "edit",
            "file" : "src/demos/com/jogamp/opengl/demos/graph/ui/FontView01.java"
          },
          {
            "editType" : "delete",
            "file" : "src/jogl/classes/com/jogamp/opengl/math/Vec3f.java"
          },
          {
            "editType" : "edit",
            "file" : "src/test/com/jogamp/opengl/test/junit/graph/FontViewListener01.java"
          },
          {
            "editType" : "edit",
            "file" : "src/demos/com/jogamp/opengl/demos/graph/ui/UISceneDemo02.java"
          },
          {
            "editType" : "delete",
            "file" : "src/jogl/classes/com/jogamp/opengl/util/SyncMatrices4f16.java"
          },
          {
            "editType" : "add",
            "file" : "src/jogl/classes/com/jogamp/math/util/PMVMatrix4f.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/graphui/classes/com/jogamp/graph/ui/Group.java",
          "src/graphui/classes/com/jogamp/graph/ui/Scene.java",
          "src/graphui/classes/com/jogamp/graph/ui/Container.java"
        ],
        "commitId" : "5eabbd8d3fc2b1e670b7641575efefe3fe235980",
        "timestamp" : 1695232354000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sven%20gothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "GraphUI Container: Add getShapeCount() and add API doc ..\u000a",
        "date" : "2023-09-20 19:52:34 +0200",
        "id" : "5eabbd8d3fc2b1e670b7641575efefe3fe235980",
        "msg" : "GraphUI Container: Add getShapeCount() and add API doc ..",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/com/jogamp/graph/ui/Scene.java"
          },
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/com/jogamp/graph/ui/Group.java"
          },
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/com/jogamp/graph/ui/Container.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/graphui/classes/com/jogamp/graph/ui/shapes/GlyphShape.java"
        ],
        "commitId" : "be37d52f188b73ce2e6ae58cad60f0400da61d68",
        "timestamp" : 1695232676000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sven%20gothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "GraphUI GlyphShape.addShapeToRegion(): In case the Font.Glyph has no shape, at least add an empty region to avoid an NPE\u000a",
        "date" : "2023-09-20 19:57:56 +0200",
        "id" : "be37d52f188b73ce2e6ae58cad60f0400da61d68",
        "msg" : "GraphUI GlyphShape.addShapeToRegion(): In case the Font.Glyph has no shape, at least add an empty region to avoid an NPE",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/com/jogamp/graph/ui/shapes/GlyphShape.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/test/com/jogamp/opengl/test/junit/graph/FontViewListener01.java",
          "src/test/com/jogamp/opengl/test/junit/graph/TestTextRendererNEWT21.java"
        ],
        "commitId" : "6c81be1f822ae4e9824c20a8016881047e5728cf",
        "timestamp" : 1695233539000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sven%20gothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "GraphUI Test: FontViewListener01: Align to FontView01 .. fix invsible GlyphShape by adding a BoxLayout w/ Center and parent Group w/ GridLayout FillCenter\u000a",
        "date" : "2023-09-20 20:12:19 +0200",
        "id" : "6c81be1f822ae4e9824c20a8016881047e5728cf",
        "msg" : "GraphUI Test: FontViewListener01: Align to FontView01 .. fix invsible GlyphShape by adding a BoxLayout w/ Center and parent Group w/ GridLayout FillCenter",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/test/com/jogamp/opengl/test/junit/graph/FontViewListener01.java"
          },
          {
            "editType" : "edit",
            "file" : "src/test/com/jogamp/opengl/test/junit/graph/TestTextRendererNEWT21.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/demos/com/jogamp/opengl/demos/graph/ui/FontView01.java",
          "make/scripts/tests.sh"
        ],
        "commitId" : "9d351d095398a2899fe662dc31fcc725d2a73a85",
        "timestamp" : 1695233712000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sven%20gothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "GraphUI Demo FontView01: Re-add Margin for glyphInfoBox (text) and use Group's getShapeCount() ..\u000a",
        "date" : "2023-09-20 20:15:12 +0200",
        "id" : "9d351d095398a2899fe662dc31fcc725d2a73a85",
        "msg" : "GraphUI Demo FontView01: Re-add Margin for glyphInfoBox (text) and use Group's getShapeCount() ..",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/demos/com/jogamp/opengl/demos/graph/ui/FontView01.java"
          },
          {
            "editType" : "edit",
            "file" : "make/scripts/tests.sh"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/jogl/classes/jogamp/opengl/util/av/GLMediaPlayerImpl.java",
          "make/scripts/tests.sh"
        ],
        "commitId" : "77eab439147af69089fa3ebf07d64ee3b4d67bfd",
        "timestamp" : 1695391853000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sven%20gothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "GLMediaPlayerImpl: Replace StreamWorker thread management with GlueGen's new WorkerThread, helping to simplify code\u000a",
        "date" : "2023-09-22 16:10:53 +0200",
        "id" : "77eab439147af69089fa3ebf07d64ee3b4d67bfd",
        "msg" : "GLMediaPlayerImpl: Replace StreamWorker thread management with GlueGen's new WorkerThread, helping to simplify code",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/jogamp/opengl/util/av/GLMediaPlayerImpl.java"
          },
          {
            "editType" : "edit",
            "file" : "make/scripts/tests.sh"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/demos/com/jogamp/opengl/demos/av/MovieCube.java",
          "src/demos/com/jogamp/opengl/demos/av/MovieSimple.java"
        ],
        "commitId" : "e4267876d0aca64e9cfa8fa9be0bc8d6e3309b83",
        "timestamp" : 1695392066000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sven%20gothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "Demos MovieSimple, MovieCube: Use Uri.tryUriOrFile(..) and have user just use '-url YOUR_LOC' for file and URL. MovieSimple: Just use multiple '-url LOC' on commandline to determine window-count and so forth ..\u000a",
        "date" : "2023-09-22 16:14:26 +0200",
        "id" : "e4267876d0aca64e9cfa8fa9be0bc8d6e3309b83",
        "msg" : "Demos MovieSimple, MovieCube: Use Uri.tryUriOrFile(..) and have user just use '-url YOUR_LOC' for file and URL. MovieSimple: Just use multiple '-url LOC' on commandline to determine window-count and so forth ..",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/demos/com/jogamp/opengl/demos/av/MovieCube.java"
          },
          {
            "editType" : "edit",
            "file" : "src/demos/com/jogamp/opengl/demos/av/MovieSimple.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "make/config/oculusvr/oculusvr-ovr-CustomJavaCode.java",
          "src/oculusvr/classes/jogamp/opengl/oculusvr/OVRStereoDeviceRenderer.java",
          "src/oculusvr/classes/jogamp/opengl/oculusvr/OVRStereoDevice.java"
        ],
        "commitId" : "c505b85fc4c5f8bc1de6ae7f571d33e401c04e56",
        "timestamp" : 1695393816000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sven%20gothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "OculusVR: Adapt to latest GlueGen changes\u000a",
        "date" : "2023-09-22 16:43:36 +0200",
        "id" : "c505b85fc4c5f8bc1de6ae7f571d33e401c04e56",
        "msg" : "OculusVR: Adapt to latest GlueGen changes",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/oculusvr/classes/jogamp/opengl/oculusvr/OVRStereoDevice.java"
          },
          {
            "editType" : "edit",
            "file" : "make/config/oculusvr/oculusvr-ovr-CustomJavaCode.java"
          },
          {
            "editType" : "edit",
            "file" : "src/oculusvr/classes/jogamp/opengl/oculusvr/OVRStereoDeviceRenderer.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "oculusvr-sdk"
        ],
        "commitId" : "e9e68d786716e743c7c8e93bf3a882cc6ef2f979",
        "timestamp" : 1695393862000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sven%20gothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "Bump oculusvr-sdk\u000a",
        "date" : "2023-09-22 16:44:22 +0200",
        "id" : "e9e68d786716e743c7c8e93bf3a882cc6ef2f979",
        "msg" : "Bump oculusvr-sdk",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "oculusvr-sdk"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/graphui/classes/com/jogamp/graph/ui/Scene.java"
        ],
        "commitId" : "cbb0035b5c5df6eada04e38a3478091cca0fe9c5",
        "timestamp" : 1695430899000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sven%20gothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "Bug 1452: GraphUI Scene DefaultPMVMatrixSetup.set(): Fix regression of commit 5d6e8a367c03644740187e500c6de5d3ac039d5e\u000a\u000a-            pmv.glMatrixMode(GLMatrixFunc.GL_PROJECTION);\u000a-            pmv.glLoadIdentity();\u000a-            pmv.gluPerspective(angle, ratio, zNear, zFar);\u000a-            pmv.glTranslatef(0f, 0f, scene_dist);\u000a+            pmv.loadPIdentity();\u000a+            pmv.perspectiveP(angle, ratio, zNear, zFar);\u000a+            pmv.translateMv(0f, 0f, scene_dist);\u000a                          ^^\u000a                          Was projection matrix.\u000a\u000aFixed.\u000a\u000aNote: resolved via TraceGL and comparing output -> P matrix differed,\u000ahere translation.\u000a",
        "date" : "2023-09-23 03:01:39 +0200",
        "id" : "cbb0035b5c5df6eada04e38a3478091cca0fe9c5",
        "msg" : "Bug 1452: GraphUI Scene DefaultPMVMatrixSetup.set(): Fix regression of commit 5d6e8a367c03644740187e500c6de5d3ac039d5e",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/com/jogamp/graph/ui/Scene.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/graphui/classes/com/jogamp/graph/ui/shapes/Button.java"
        ],
        "commitId" : "f2a29726c42c91694ad4e3fa9b016708876d60da",
        "timestamp" : 1695430927000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sven%20gothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "GraphUI Button.getSubString(): Expose labelZOffset\u000a",
        "date" : "2023-09-23 03:02:07 +0200",
        "id" : "f2a29726c42c91694ad4e3fa9b016708876d60da",
        "msg" : "GraphUI Button.getSubString(): Expose labelZOffset",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/com/jogamp/graph/ui/shapes/Button.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/jogl/classes/com/jogamp/math/util/PMVMatrix4f.java"
        ],
        "commitId" : "0110b2970935040aac5ee0bfa8757982c092b939",
        "timestamp" : 1695431045000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sven%20gothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "Bug 1452: PMVMatrix4f: Drop redundant unused mulWith*(Vec*...) 'v_out = M * v_in', user can simply get the desired matrix and apply its mulVec*(..) operation\u000a",
        "date" : "2023-09-23 03:04:05 +0200",
        "id" : "0110b2970935040aac5ee0bfa8757982c092b939",
        "msg" : "Bug 1452: PMVMatrix4f: Drop redundant unused mulWith*(Vec*...) 'v_out = M * v_in', user can simply get the desired matrix and apply its mulVec*(..) operation",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/com/jogamp/math/util/PMVMatrix4f.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/jogl/classes/jogamp/opengl/util/av/GLMediaPlayerImpl.java"
        ],
        "commitId" : "0d89f1ebae1a790151551ad9b027105d91972877",
        "timestamp" : 1695431140000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sven%20gothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "GLMediaPlayerImpl: Recover lost StreamException information from commit 77eab439147af69089fa3ebf07d64ee3b4d67bfd\u000a",
        "date" : "2023-09-23 03:05:40 +0200",
        "id" : "0d89f1ebae1a790151551ad9b027105d91972877",
        "msg" : "GLMediaPlayerImpl: Recover lost StreamException information from commit 77eab439147af69089fa3ebf07d64ee3b4d67bfd",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/jogamp/opengl/util/av/GLMediaPlayerImpl.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/graphui/classes/com/jogamp/graph/ui/AnimGroup.java",
          "src/demos/com/jogamp/opengl/demos/graph/ui/UIGraphDemoU01a.java",
          "src/graphui/classes/com/jogamp/graph/ui/Group.java",
          "src/demos/com/jogamp/opengl/demos/graph/ui/UIShapeDemo01.java",
          "src/graphui/classes/com/jogamp/graph/ui/layout/BoxLayout.java",
          "src/graphui/classes/com/jogamp/graph/ui/Shape.java",
          "src/graphui/classes/jogamp/graph/ui/TreeTool.java",
          "src/demos/com/jogamp/opengl/demos/graph/ui/UITypeDemo01.java",
          "src/graphui/classes/com/jogamp/graph/ui/layout/GridLayout.java",
          "src/demos/com/jogamp/opengl/demos/graph/ui/UISceneDemo01b.java",
          "src/graphui/classes/com/jogamp/graph/ui/Scene.java"
        ],
        "commitId" : "6c97c5fa201d221a37773db54994d27e34ba86c3",
        "timestamp" : 1695431517000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sven%20gothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "Bug 1452: GraphUI Shape: Rename setMvTransform(..) -> setTransformMv(..), aligning w/ PMVMatrix4f naming ..\u000a\u000aOriginal name was simply setTransform(..), so now let's keep using the suffix denominating the matrix\u000awhile keep the main subject/verb upfront. Was an off reading ..\u000a",
        "date" : "2023-09-23 03:11:57 +0200",
        "id" : "6c97c5fa201d221a37773db54994d27e34ba86c3",
        "msg" : "Bug 1452: GraphUI Shape: Rename setMvTransform(..) -> setTransformMv(..), aligning w/ PMVMatrix4f naming ..",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/com/jogamp/graph/ui/Group.java"
          },
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/com/jogamp/graph/ui/AnimGroup.java"
          },
          {
            "editType" : "edit",
            "file" : "src/demos/com/jogamp/opengl/demos/graph/ui/UISceneDemo01b.java"
          },
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/com/jogamp/graph/ui/layout/BoxLayout.java"
          },
          {
            "editType" : "edit",
            "file" : "src/demos/com/jogamp/opengl/demos/graph/ui/UITypeDemo01.java"
          },
          {
            "editType" : "edit",
            "file" : "src/demos/com/jogamp/opengl/demos/graph/ui/UIGraphDemoU01a.java"
          },
          {
            "editType" : "edit",
            "file" : "src/demos/com/jogamp/opengl/demos/graph/ui/UIShapeDemo01.java"
          },
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/com/jogamp/graph/ui/Shape.java"
          },
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/com/jogamp/graph/ui/Scene.java"
          },
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/jogamp/graph/ui/TreeTool.java"
          },
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/com/jogamp/graph/ui/layout/GridLayout.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/demos/com/jogamp/opengl/demos/graph/ui/UILayoutBoxGridOffset01.java",
          "make/scripts/tests.sh"
        ],
        "commitId" : "3ecb8e9d1bfd1149f32b05c13c5ec1be6c0cab54",
        "timestamp" : 1695434543000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sven%20gothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "GraphUI Layout: Add UILayoutBoxGridOffset01, showing behavior w/ shapes not starting at 0/0 but at an offset\u000a\u000aOK for centered or non-zoomed .. as used w/ FontView01 to show the underline space.\u000aSure, Fill (zoom) w/o center on offset shapes is tricky and a matter of definition and taste, but in general useless.\u000a",
        "date" : "2023-09-23 04:02:23 +0200",
        "id" : "3ecb8e9d1bfd1149f32b05c13c5ec1be6c0cab54",
        "msg" : "GraphUI Layout: Add UILayoutBoxGridOffset01, showing behavior w/ shapes not starting at 0/0 but at an offset",
        "paths" : [
          {
            "editType" : "add",
            "file" : "src/demos/com/jogamp/opengl/demos/graph/ui/UILayoutBoxGridOffset01.java"
          },
          {
            "editType" : "edit",
            "file" : "make/scripts/tests.sh"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/graphui/classes/com/jogamp/graph/ui/Scene.java",
          "src/graphui/classes/com/jogamp/graph/ui/Shape.java"
        ],
        "commitId" : "84b26f9efcd62cc8c41bf3cd867482080d16d7a0",
        "timestamp" : 1695494330000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sven%20gothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "Bug 1454 - GraphUI Scene: Elevate active (selected) shape (add z-offset) and select (pick) in Z descending order\u000a\u000aPicking (select) a shape shall process all shapes in Z descending order,\u000ai.e. top shape first. This is a bug currently.\u000a\u000aNote: Picking (selecting) a shape using a (mouse-)pointer device\u000ais active by mouse-moved and not only mouse-clicked.\u000aTherefor, we select shapes by mouse-over.\u000a\u000aThe active selected shape shall have an elevated Z offset to be rendered on top\u000aof the others on same plane.\u000a- This avoids them being rendered below others while moving them around etc.\u000a- This also avoids flickering of overlapping shapes with mouse over.\u000a- This stabilizes the UI experience\u000a",
        "date" : "2023-09-23 20:38:50 +0200",
        "id" : "84b26f9efcd62cc8c41bf3cd867482080d16d7a0",
        "msg" : "Bug 1454 - GraphUI Scene: Elevate active (selected) shape (add z-offset) and select (pick) in Z descending order",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/com/jogamp/graph/ui/Shape.java"
          },
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/com/jogamp/graph/ui/Scene.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/jogl/classes/jogamp/opengl/util/av/GLMediaPlayerImpl.java",
          "src/jogl/classes/com/jogamp/opengl/util/av/GLMediaPlayer.java"
        ],
        "commitId" : "13a81396bd5183d1f2c00c517936c54efaa61db3",
        "timestamp" : 1695494649000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sven%20gothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "Bug 1455 - GLMediaPlayer: Add isAutioMuted() query on volume and earmark audio-volume if not initialized and set it when AudioSink becomes available\u000a\u000aSetting the audio volume before initialization shall impact GLMediaPlayer when it becomes initialized.\u000a\u000aFurther add a query if audio is muted, merely based on volume.\u000a",
        "date" : "2023-09-23 20:44:09 +0200",
        "id" : "13a81396bd5183d1f2c00c517936c54efaa61db3",
        "msg" : "Bug 1455 - GLMediaPlayer: Add isAutioMuted() query on volume and earmark audio-volume if not initialized and set it when AudioSink becomes available",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/jogamp/opengl/util/av/GLMediaPlayerImpl.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/com/jogamp/opengl/util/av/GLMediaPlayer.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/demos/com/jogamp/opengl/demos/graph/ui/UISceneDemo20.java"
        ],
        "commitId" : "1281e1ace2fbc884dd3ad4b561054a19f8e498c5",
        "timestamp" : 1695515741000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sven%20gothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "UISceneDemo20: Set proper z-epsilon for all Buttons on reshape to use the perfect minimum label-z-offset\u000a",
        "date" : "2023-09-24 02:35:41 +0200",
        "id" : "1281e1ace2fbc884dd3ad4b561054a19f8e498c5",
        "msg" : "UISceneDemo20: Set proper z-epsilon for all Buttons on reshape to use the perfect minimum label-z-offset",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/demos/com/jogamp/opengl/demos/graph/ui/UISceneDemo20.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/graphui/classes/com/jogamp/graph/ui/shapes/Button.java"
        ],
        "commitId" : "2e52e801cfb14a96c60bf3e003af221efeddf3c3",
        "timestamp" : 1695515777000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sven%20gothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "GraphUI Button: Remove redundant ctors and methods. ZOffset shall be simply given, calculated by caller\u000a",
        "date" : "2023-09-24 02:36:17 +0200",
        "id" : "2e52e801cfb14a96c60bf3e003af221efeddf3c3",
        "msg" : "GraphUI Button: Remove redundant ctors and methods. ZOffset shall be simply given, calculated by caller",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/com/jogamp/graph/ui/shapes/Button.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/graphui/classes/com/jogamp/graph/ui/Scene.java"
        ],
        "commitId" : "9f900c7f88d70808e24ed8b48087126dad0c3188",
        "timestamp" : 1695515940000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sven%20gothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "Bug 1454 - GraphUI Scene: Make active ZOffset scale configurable\u000a",
        "date" : "2023-09-24 02:39:00 +0200",
        "id" : "9f900c7f88d70808e24ed8b48087126dad0c3188",
        "msg" : "Bug 1454 - GraphUI Scene: Make active ZOffset scale configurable",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/com/jogamp/graph/ui/Scene.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/graphui/classes/com/jogamp/graph/ui/Scene.java",
          "src/graphui/classes/com/jogamp/graph/ui/Shape.java"
        ],
        "commitId" : "f29347ff72a13fa8344d21dc3589af3ff8b370cf",
        "timestamp" : 1695515966000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sven%20gothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "Bug 1459 - GraphUI Shape: Add active (pointer over/left) state and callback Listener\u000a\u000aWe already track this state within Scene, i.e. a shape is marked active when pointer is over it and released from active-duty when pointer left.\u000a\u000aScene shall notify the Shape so it can track this state locally\u000aand also forward this event to the user via the typical Shape.Listener callback.\u000a",
        "date" : "2023-09-24 02:39:26 +0200",
        "id" : "f29347ff72a13fa8344d21dc3589af3ff8b370cf",
        "msg" : "Bug 1459 - GraphUI Shape: Add active (pointer over/left) state and callback Listener",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/com/jogamp/graph/ui/Scene.java"
          },
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/com/jogamp/graph/ui/Shape.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/demos/com/jogamp/opengl/demos/graph/ui/UISceneDemo20.java"
        ],
        "commitId" : "ff36502e7ffeb9108368c517c401fad120b73d0a",
        "timestamp" : 1695518762000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sven%20gothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "UISceneDemo20 Use onToggle(..) for media-button (audio on/off) as well as use direct lambdas for all its other listener\u000a",
        "date" : "2023-09-24 03:26:02 +0200",
        "id" : "ff36502e7ffeb9108368c517c401fad120b73d0a",
        "msg" : "UISceneDemo20 Use onToggle(..) for media-button (audio on/off) as well as use direct lambdas for all its other listener",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/demos/com/jogamp/opengl/demos/graph/ui/UISceneDemo20.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/jogl/classes/jogamp/opengl/util/av/impl/FFMPEGMediaPlayer.java",
          "src/jogl/classes/jogamp/opengl/util/av/GLMediaPlayerImpl.java"
        ],
        "commitId" : "3dc4d80b0b8b0d4d82368b229ee403bf5937e1de",
        "timestamp" : 1695519418000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sven%20gothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "GLMediaPlayer: Stop audio streaming to AudioSink on zero volume (Flush on mute and play on un-mute)\u000a",
        "date" : "2023-09-24 03:36:58 +0200",
        "id" : "3dc4d80b0b8b0d4d82368b229ee403bf5937e1de",
        "msg" : "GLMediaPlayer: Stop audio streaming to AudioSink on zero volume (Flush on mute and play on un-mute)",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/jogamp/opengl/util/av/GLMediaPlayerImpl.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/jogamp/opengl/util/av/impl/FFMPEGMediaPlayer.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/graphui/classes/com/jogamp/graph/ui/shapes/MediaButton.java"
        ],
        "commitId" : "1911d5dfb53c7757eedfebe289074661e125bea0",
        "timestamp" : 1695526887000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sven%20gothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "GraphUI MediaButton: Return this for chaining on setter\u000a",
        "date" : "2023-09-24 05:41:27 +0200",
        "id" : "1911d5dfb53c7757eedfebe289074661e125bea0",
        "msg" : "GraphUI MediaButton: Return this for chaining on setter",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/com/jogamp/graph/ui/shapes/MediaButton.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/graphui/classes/com/jogamp/graph/ui/Shape.java"
        ],
        "commitId" : "55b0c752721b782295e856dda5b2791c879cec87",
        "timestamp" : 1695527009000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sven%20gothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "GraphUI Shape: Crossref input modifier funcs in API doc; Condense simple setter/getter\u000a",
        "date" : "2023-09-24 05:43:29 +0200",
        "id" : "55b0c752721b782295e856dda5b2791c879cec87",
        "msg" : "GraphUI Shape: Crossref input modifier funcs in API doc; Condense simple setter/getter",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/com/jogamp/graph/ui/Shape.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/demos/com/jogamp/opengl/demos/graph/ui/UISceneDemo20.java",
          "src/graphui/classes/com/jogamp/graph/ui/Shape.java"
        ],
        "commitId" : "bcb71a24ff6c211ea67b4916bd7e43e502f7bfe5",
        "timestamp" : 1695527212000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sven%20gothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "Bug 1460 - GraphUI Shape: Allow keeping aspect-ratio at resize\u000a\u000aFor certain shapes the aspect-ratio shall be kept, e.g. MediaButton etc.\u000a",
        "date" : "2023-09-24 05:46:52 +0200",
        "id" : "bcb71a24ff6c211ea67b4916bd7e43e502f7bfe5",
        "msg" : "Bug 1460 - GraphUI Shape: Allow keeping aspect-ratio at resize",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/com/jogamp/graph/ui/Shape.java"
          },
          {
            "editType" : "edit",
            "file" : "src/demos/com/jogamp/opengl/demos/graph/ui/UISceneDemo20.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/graphui/classes/com/jogamp/graph/ui/shapes/Label.java"
        ],
        "commitId" : "b87b41eb55959f4fbf70e4ed868701545e6ed687",
        "timestamp" : 1695531559000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sven%20gothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "GraphUI Label: Condense getUnscaledGlyphBounds()\u000a",
        "date" : "2023-09-24 06:59:19 +0200",
        "id" : "b87b41eb55959f4fbf70e4ed868701545e6ed687",
        "msg" : "GraphUI Label: Condense getUnscaledGlyphBounds()",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/com/jogamp/graph/ui/shapes/Label.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/demos/com/jogamp/opengl/demos/graph/ui/FontView01.java"
        ],
        "commitId" : "55052919c8977dcf103f53a44f0391de39eb3979",
        "timestamp" : 1695533349000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sven%20gothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "GraphUI Demo FontView01: Add mode showing the Glyph's name below in grid\u000a\u000aYeah, for good eyes only .. but enough to label the Greek alphabet :)\u000a",
        "date" : "2023-09-24 07:29:09 +0200",
        "id" : "55052919c8977dcf103f53a44f0391de39eb3979",
        "msg" : "GraphUI Demo FontView01: Add mode showing the Glyph's name below in grid",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/demos/com/jogamp/opengl/demos/graph/ui/FontView01.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/jogl/classes/jogamp/graph/font/fonts/ubuntu/CONTRIBUTING.txt",
          "src/jogl/classes/jogamp/graph/font/fonts/ubuntu/FONTLOG.txt",
          "src/jogl/classes/jogamp/graph/font/fonts/ubuntu/LICENCE-FAQ.txt"
        ],
        "commitId" : "c9bf488a916ee1a27dc1ce46467b0a40a365a492",
        "timestamp" : 1695536511000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sven%20gothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "Graph Fonts: Remove not required text files from Ubuntu fonts\u000a",
        "date" : "2023-09-24 08:21:51 +0200",
        "id" : "c9bf488a916ee1a27dc1ce46467b0a40a365a492",
        "msg" : "Graph Fonts: Remove not required text files from Ubuntu fonts",
        "paths" : [
          {
            "editType" : "delete",
            "file" : "src/jogl/classes/jogamp/graph/font/fonts/ubuntu/FONTLOG.txt"
          },
          {
            "editType" : "delete",
            "file" : "src/jogl/classes/jogamp/graph/font/fonts/ubuntu/CONTRIBUTING.txt"
          },
          {
            "editType" : "delete",
            "file" : "src/jogl/classes/jogamp/graph/font/fonts/ubuntu/LICENCE-FAQ.txt"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/jogl/classes/jogamp/graph/font/FontLoaderImpl.java",
          "src/jogl/classes/jogamp/graph/font/UbuntuFontLoader.java"
        ],
        "commitId" : "652cfd2f307e0a34537ff8ec5ae2d023cfc2ce5d",
        "timestamp" : 1695537052000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sven%20gothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "Graph Fonts UbuntuFontLoader: Factor out FontLoaderImpl and have get(..) synchronized for static fontMap field access\u000a",
        "date" : "2023-09-24 08:30:52 +0200",
        "id" : "652cfd2f307e0a34537ff8ec5ae2d023cfc2ce5d",
        "msg" : "Graph Fonts UbuntuFontLoader: Factor out FontLoaderImpl and have get(..) synchronized for static fontMap field access",
        "paths" : [
          {
            "editType" : "add",
            "file" : "src/jogl/classes/jogamp/graph/font/FontLoaderImpl.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/jogamp/graph/font/UbuntuFontLoader.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/jogl/classes/com/jogamp/graph/font/FontFactory.java",
          "src/jogl/classes/jogamp/graph/font/SymbolsFontLoader.java",
          "src/demos/com/jogamp/opengl/demos/graph/ui/UISceneDemo03.java",
          "src/jogl/classes/jogamp/graph/font/fonts/symbols/README.txt",
          "src/jogl/classes/jogamp/graph/font/fonts/symbols/MaterialIconsRound-Regular.ttf"
        ],
        "commitId" : "0c8700589abffe13e42f18d3c755541268d44a34",
        "timestamp" : 1695549713000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sven%20gothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "Graph Fonts: Add 'Material Icons Round-Regular' (APL-2 license) and use it in UISceneDemo03 via hard coded unicode symbol numbers\u000a",
        "date" : "2023-09-24 12:01:53 +0200",
        "id" : "0c8700589abffe13e42f18d3c755541268d44a34",
        "msg" : "Graph Fonts: Add 'Material Icons Round-Regular' (APL-2 license) and use it in UISceneDemo03 via hard coded unicode symbol numbers",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/demos/com/jogamp/opengl/demos/graph/ui/UISceneDemo03.java"
          },
          {
            "editType" : "add",
            "file" : "src/jogl/classes/jogamp/graph/font/SymbolsFontLoader.java"
          },
          {
            "editType" : "add",
            "file" : "src/jogl/classes/jogamp/graph/font/fonts/symbols/MaterialIconsRound-Regular.ttf"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/com/jogamp/graph/font/FontFactory.java"
          },
          {
            "editType" : "add",
            "file" : "src/jogl/classes/jogamp/graph/font/fonts/symbols/README.txt"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/jogl/classes/com/jogamp/graph/curve/opengl/GLRegion.java",
          "src/graphui/classes/com/jogamp/graph/ui/AnimGroup.java",
          "src/demos/com/jogamp/opengl/demos/graph/ui/UIGraphDemoU01a.java",
          "src/test/com/jogamp/opengl/test/junit/graph/TestFontsNEWT00.java",
          "src/graphui/classes/com/jogamp/graph/ui/Container.java",
          "src/jogl/classes/com/jogamp/graph/font/Font.java",
          "src/demos/com/jogamp/opengl/demos/graph/ui/UILayoutGrid01.java",
          "src/graphui/classes/com/jogamp/graph/ui/shapes/Label.java",
          "src/graphui/classes/jogamp/graph/ui/TreeTool.java",
          "src/jogl/classes/jogamp/graph/font/typecast/TypecastFont.java",
          "src/jogl/classes/jogamp/graph/font/typecast/TypecastGlyph.java",
          "src/graphui/classes/com/jogamp/graph/ui/Scene.java",
          "src/demos/com/jogamp/opengl/demos/graph/ui/UISceneDemo03.java",
          "src/test/com/jogamp/opengl/test/junit/graph/FontViewListener01.java",
          "src/demos/com/jogamp/opengl/demos/graph/ui/FontView01.java",
          "src/demos/com/jogamp/opengl/demos/graph/ui/UILayoutBox01.java",
          "src/demos/com/jogamp/opengl/demos/graph/ui/UILayoutBoxGridOffset01.java",
          "src/jogl/classes/com/jogamp/graph/curve/opengl/TextRegionUtil.java",
          "src/graphui/classes/com/jogamp/graph/ui/shapes/GlyphShape.java"
        ],
        "commitId" : "a8de1673ca83475227fcc914fd94a9a0be1cba79",
        "timestamp" : 1695567049000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sven%20gothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "Bug 1462 - Graph Font: Add name + codepoint to ID and Glyph mapping plus traversing through all Glyphs\u000a\u000aSee UISceneDemo03\u000anew Button(options.renderModes, fontSymbols, \" \"+fontSymbols.getUTF16String(\"pause\")+\" \", buttonWidth, buttonHeight); // pause\u000a\u000aUnicode codepoint symbol is also contained in FontGlyph\u000a",
        "date" : "2023-09-24 16:50:49 +0200",
        "id" : "a8de1673ca83475227fcc914fd94a9a0be1cba79",
        "msg" : "Bug 1462 - Graph Font: Add name + codepoint to ID and Glyph mapping plus traversing through all Glyphs",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/com/jogamp/graph/ui/Scene.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/com/jogamp/graph/curve/opengl/GLRegion.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/jogamp/graph/font/typecast/TypecastFont.java"
          },
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/com/jogamp/graph/ui/AnimGroup.java"
          },
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/com/jogamp/graph/ui/shapes/Label.java"
          },
          {
            "editType" : "edit",
            "file" : "src/test/com/jogamp/opengl/test/junit/graph/FontViewListener01.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/com/jogamp/graph/font/Font.java"
          },
          {
            "editType" : "edit",
            "file" : "src/demos/com/jogamp/opengl/demos/graph/ui/UILayoutBoxGridOffset01.java"
          },
          {
            "editType" : "edit",
            "file" : "src/demos/com/jogamp/opengl/demos/graph/ui/UIGraphDemoU01a.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/jogamp/graph/font/typecast/TypecastGlyph.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/com/jogamp/graph/curve/opengl/TextRegionUtil.java"
          },
          {
            "editType" : "edit",
            "file" : "src/demos/com/jogamp/opengl/demos/graph/ui/UILayoutBox01.java"
          },
          {
            "editType" : "edit",
            "file" : "src/demos/com/jogamp/opengl/demos/graph/ui/FontView01.java"
          },
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/jogamp/graph/ui/TreeTool.java"
          },
          {
            "editType" : "edit",
            "file" : "src/demos/com/jogamp/opengl/demos/graph/ui/UILayoutGrid01.java"
          },
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/com/jogamp/graph/ui/Container.java"
          },
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/com/jogamp/graph/ui/shapes/GlyphShape.java"
          },
          {
            "editType" : "edit",
            "file" : "src/test/com/jogamp/opengl/test/junit/graph/TestFontsNEWT00.java"
          },
          {
            "editType" : "edit",
            "file" : "src/demos/com/jogamp/opengl/demos/graph/ui/UISceneDemo03.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/test/com/jogamp/opengl/test/junit/graph/TextRendererGLELBase.java",
          "src/test/com/jogamp/opengl/test/junit/graph/TestTextRendererNEWT01.java",
          "src/demos/com/jogamp/opengl/demos/graph/TextRendererGLELBase.java",
          "src/test/com/jogamp/opengl/test/junit/graph/TestTextRendererNEWTBugXXXX.java"
        ],
        "commitId" : "9db8aeaf345a373029bd497c5125f8471aecbd4e",
        "timestamp" : 1695567097000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sven%20gothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "Graph Font Tests: Fix missing codepoint -> GlyphID conversion\u000a",
        "date" : "2023-09-24 16:51:37 +0200",
        "id" : "9db8aeaf345a373029bd497c5125f8471aecbd4e",
        "msg" : "Graph Font Tests: Fix missing codepoint -> GlyphID conversion",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/demos/com/jogamp/opengl/demos/graph/TextRendererGLELBase.java"
          },
          {
            "editType" : "edit",
            "file" : "src/test/com/jogamp/opengl/test/junit/graph/TestTextRendererNEWTBugXXXX.java"
          },
          {
            "editType" : "edit",
            "file" : "src/test/com/jogamp/opengl/test/junit/graph/TestTextRendererNEWT01.java"
          },
          {
            "editType" : "edit",
            "file" : "src/test/com/jogamp/opengl/test/junit/graph/TextRendererGLELBase.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/jogl/classes/com/jogamp/graph/font/Font.java"
        ],
        "commitId" : "36d8475adaf0abb5eae93b5c6a110e21c1b32399",
        "timestamp" : 1695567141000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sven%20gothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "Graph Font: API doc: Fix typos 'Return ' .. to 'Returns `.\u000a",
        "date" : "2023-09-24 16:52:21 +0200",
        "id" : "36d8475adaf0abb5eae93b5c6a110e21c1b32399",
        "msg" : "Graph Font: API doc: Fix typos 'Return ' .. to 'Returns `.",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/com/jogamp/graph/font/Font.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/demos/com/jogamp/opengl/demos/graph/ui/UIMediaGrid01.java"
        ],
        "commitId" : "176ea9245a201bbba381245bc46657b30de9f4b3",
        "timestamp" : 1695567596000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sven%20gothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "GraphUI Demos UIMediaGrid01: Demos multiple MediaButton in a grid - performance & stability\u000a",
        "date" : "2023-09-24 16:59:56 +0200",
        "id" : "176ea9245a201bbba381245bc46657b30de9f4b3",
        "msg" : "GraphUI Demos UIMediaGrid01: Demos multiple MediaButton in a grid - performance & stability",
        "paths" : [
          {
            "editType" : "add",
            "file" : "src/demos/com/jogamp/opengl/demos/graph/ui/UIMediaGrid01.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "make/scripts/tests.sh"
        ],
        "commitId" : "397bd0df305e8f5b15e98523eb94cfad2ee5bb41",
        "timestamp" : 1695567742000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sven%20gothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "Bump make/scripts/tests.sh\u000a",
        "date" : "2023-09-24 17:02:22 +0200",
        "id" : "397bd0df305e8f5b15e98523eb94cfad2ee5bb41",
        "msg" : "Bump make/scripts/tests.sh",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "make/scripts/tests.sh"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/demos/com/jogamp/opengl/demos/graph/ui/UISceneDemo20.java"
        ],
        "commitId" : "1beed5ba82b55a292bb1f916d615f152139a7060",
        "timestamp" : 1695569101000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sven%20gothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "Bug 1462 / 1462: GraphUI Demo UISceneDemo20: Replace some text in buttons with symbols\u000a",
        "date" : "2023-09-24 17:25:01 +0200",
        "id" : "1beed5ba82b55a292bb1f916d615f152139a7060",
        "msg" : "Bug 1462 / 1462: GraphUI Demo UISceneDemo20: Replace some text in buttons with symbols",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/demos/com/jogamp/opengl/demos/graph/ui/UISceneDemo20.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/graphui/classes/com/jogamp/graph/ui/layout/GridLayout.java",
          "src/graphui/classes/com/jogamp/graph/ui/layout/BoxLayout.java"
        ],
        "commitId" : "306ab40451f79dc6e41113efd597bddbd79514a5",
        "timestamp" : 1695694445000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sven%20gothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "GraphUI Layout: Simplify non-centered negative-offset (underline) removal\u000a",
        "date" : "2023-09-26 04:14:05 +0200",
        "id" : "306ab40451f79dc6e41113efd597bddbd79514a5",
        "msg" : "GraphUI Layout: Simplify non-centered negative-offset (underline) removal",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/com/jogamp/graph/ui/layout/BoxLayout.java"
          },
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/com/jogamp/graph/ui/layout/GridLayout.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/graphui/classes/com/jogamp/graph/ui/GraphShape.java"
        ],
        "commitId" : "2a9382b4e5d0387bfd939fdbdf281b730b67ee9b",
        "timestamp" : 1695694580000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sven%20gothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "GraphUI GraphShape: Factor out static addRectangle(..) to be reused for debugging purposes\u000a",
        "date" : "2023-09-26 04:16:20 +0200",
        "id" : "2a9382b4e5d0387bfd939fdbdf281b730b67ee9b",
        "msg" : "GraphUI GraphShape: Factor out static addRectangle(..) to be reused for debugging purposes",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/com/jogamp/graph/ui/GraphShape.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/graphui/classes/com/jogamp/graph/ui/Shape.java"
        ],
        "commitId" : "e5eadcdaa615dbeb762885b50435a1f79d6ca895",
        "timestamp" : 1695694814000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sven%20gothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "GraphUI Shape: Use a bitfield for the many binrary states instead of boolean to preserver footprint ..\u000a",
        "date" : "2023-09-26 04:20:14 +0200",
        "id" : "e5eadcdaa615dbeb762885b50435a1f79d6ca895",
        "msg" : "GraphUI Shape: Use a bitfield for the many binrary states instead of boolean to preserver footprint ..",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/com/jogamp/graph/ui/Shape.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/graphui/classes/com/jogamp/graph/ui/GraphShape.java",
          "src/graphui/classes/com/jogamp/graph/ui/Shape.java"
        ],
        "commitId" : "5f876580500471531dc6973eda7eb4d9878b871d",
        "timestamp" : 1695696328000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sven%20gothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "GraphUI: Mark some more methods final in Shape + GraphShape\u000a",
        "date" : "2023-09-26 04:45:28 +0200",
        "id" : "5f876580500471531dc6973eda7eb4d9878b871d",
        "msg" : "GraphUI: Mark some more methods final in Shape + GraphShape",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/com/jogamp/graph/ui/GraphShape.java"
          },
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/com/jogamp/graph/ui/Shape.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/jogl/classes/jogamp/graph/font/typecast/TypecastFont.java"
        ],
        "commitId" : "949558bc0bcd10a24293b5880c90940008d0118a",
        "timestamp" : 1695696786000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sven%20gothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "Bug 1463 - Graph Font: Whitespace or undefined Glyphs shall not cover (any) height exceeding overall CharSequence\u000a\u000aTypecastFont using `metrics.getAscentFU() - metrics.getDescentFU()` for ascent used for all undefined and whitespace Glyphs w/o a spatial outline,\u000aleads to a potential exceeding height compared to the actual used\u000abounding box of the rendered text.\u000aThis in turn leads to layout issues, e.g. button labels are placed too low.\u000a\u000aSolution:\u000a- Whitespace/Undefined: Drop full height 'metrics.getAscentFU() - metrics.getDescentFU()', b/c of non-existing shape height.\u000a- Otherwise, layout on AABBox or created empty shape would pick up such default hhea-table ascent which might exceed actual string height.\u000a\u000aSideeffect would be if user relies on height of a whitespace.\u000aHowever, knowing this fact - a user may always pick the hhea-table's ascent metric values as exposed in Font and Font.Metric.\u000a\u000aThis resolves remaining layout issues, including button labels.\u000a",
        "date" : "2023-09-26 04:53:06 +0200",
        "id" : "949558bc0bcd10a24293b5880c90940008d0118a",
        "msg" : "Bug 1463 - Graph Font: Whitespace or undefined Glyphs shall not cover (any) height exceeding overall CharSequence",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/jogamp/graph/font/typecast/TypecastFont.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/graphui/classes/com/jogamp/graph/ui/Shape.java"
        ],
        "commitId" : "2dc2907618a528f9ad3666c0450be26ecd850602",
        "timestamp" : 1695697624000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sven%20gothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "GraphUI Shape: Add remaining binary states to bitfield to preserver footprint ..\u000a\u000aSee commit e5eadcdaa615dbeb762885b50435a1f79d6ca895\u000a",
        "date" : "2023-09-26 05:07:04 +0200",
        "id" : "2dc2907618a528f9ad3666c0450be26ecd850602",
        "msg" : "GraphUI Shape: Add remaining binary states to bitfield to preserver footprint ..",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/com/jogamp/graph/ui/Shape.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/graphui/classes/com/jogamp/graph/ui/Shape.java"
        ],
        "commitId" : "42c67292e026325a493ec968e0f46749286e82dc",
        "timestamp" : 1695697784000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sven%20gothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "GraphUI Shape: Issue onToggleListener on setToggle(..) to complete user experience, add overridable toggleNotify(..) allowing implementations to react before listener.\u000a",
        "date" : "2023-09-26 05:09:44 +0200",
        "id" : "42c67292e026325a493ec968e0f46749286e82dc",
        "msg" : "GraphUI Shape: Issue onToggleListener on setToggle(..) to complete user experience, add overridable toggleNotify(..) allowing implementations to react before listener.",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/com/jogamp/graph/ui/Shape.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/graphui/classes/com/jogamp/graph/ui/shapes/Button.java"
        ],
        "commitId" : "3025466c5c79ffb06c761dbfa380e643d562994a",
        "timestamp" : 1695697902000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sven%20gothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "GraphUI Button: Increase default spacing a little: x .12 -> .20, y .42 -> .46\u000a",
        "date" : "2023-09-26 05:11:42 +0200",
        "id" : "3025466c5c79ffb06c761dbfa380e643d562994a",
        "msg" : "GraphUI Button: Increase default spacing a little: x .12 -> .20, y .42 -> .46",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/com/jogamp/graph/ui/shapes/Button.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/graphui/classes/com/jogamp/graph/ui/shapes/Button.java",
          "src/demos/com/jogamp/opengl/demos/graph/ui/FontView01.java",
          "src/demos/com/jogamp/opengl/demos/graph/ui/UIShapeDemo01.java",
          "src/demos/com/jogamp/opengl/demos/graph/ui/UISceneDemo20.java",
          "src/demos/com/jogamp/opengl/demos/graph/ui/UISceneDemo03.java"
        ],
        "commitId" : "893903d2ece1193aa87257bd6162754dfb89f9f9",
        "timestamp" : 1695699264000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sven%20gothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "GraphUI Button: Support toggle'ed labels and fixed font size scaling for symbols (see setFixedLabelSize()),\u000a\u000aThis allows convenient instantiation of a Button changing its text (or symbol) when toggled, e.g.:\u000a\u000aUISceneDemo03:\u000a+            final Button button = new Button(options.renderModes, fontSymbols,\u000a+                        fontSymbols.getUTF16String(\"play_arrow\"),  fontSymbols.getUTF16String(\"pause\"),\u000a+                        buttonWidth, buttonHeight, buttonZOffset);\u000a+            button.setSpacing(symSpacing, fixedSymSize);\u000a\u000a+++\u000a\u000asetFixedLabelSize(..):\u000a\u000aSets fixed label font size clipped to range [0 .. 1], defaults to {@code 0, 0}.\u000a\u000aUse {@code w=0, h=1} when using single symbols from fixed sized symbol fonts!\u000aUse {@link #setSpacing(Vec2f, Vec2f)} to also set spacing.\u000a\u000aThe fixed label font size is used as the denominator when scaling.{@code max(fixedLabelSize, fontLabelSize)},\u000ahence reasonable values are either {@code 1} to enable using the given font-size\u000afor the axis or {@code 0} to scale up/down the font to match the button box less spacing for the axis.\u000a",
        "date" : "2023-09-26 05:34:24 +0200",
        "id" : "893903d2ece1193aa87257bd6162754dfb89f9f9",
        "msg" : "GraphUI Button: Support toggle'ed labels and fixed font size scaling for symbols (see setFixedLabelSize()),",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/demos/com/jogamp/opengl/demos/graph/ui/UISceneDemo03.java"
          },
          {
            "editType" : "edit",
            "file" : "src/demos/com/jogamp/opengl/demos/graph/ui/UIShapeDemo01.java"
          },
          {
            "editType" : "edit",
            "file" : "src/demos/com/jogamp/opengl/demos/graph/ui/FontView01.java"
          },
          {
            "editType" : "edit",
            "file" : "src/demos/com/jogamp/opengl/demos/graph/ui/UISceneDemo20.java"
          },
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/com/jogamp/graph/ui/shapes/Button.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/demos/com/jogamp/opengl/demos/graph/ui/UISceneDemo20.java"
        ],
        "commitId" : "e0664688e45c07b8bc082f960b6790e592dd2034",
        "timestamp" : 1695699962000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sven%20gothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "GraphUI Demo UISceneDemo20: Give 'Show FPS' a toggle text 'Hide FPS' .. and have the text resize being of fixed aspect-ratio (like the movie)\u000a",
        "date" : "2023-09-26 05:46:02 +0200",
        "id" : "e0664688e45c07b8bc082f960b6790e592dd2034",
        "msg" : "GraphUI Demo UISceneDemo20: Give 'Show FPS' a toggle text 'Hide FPS' .. and have the text resize being of fixed aspect-ratio (like the movie)",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/demos/com/jogamp/opengl/demos/graph/ui/UISceneDemo20.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/demos/com/jogamp/opengl/demos/graph/ui/util/Tooltips.java",
          "src/demos/com/jogamp/opengl/demos/graph/ui/FontView01.java"
        ],
        "commitId" : "c5fde40428937c08486226e9d4488a0ca1a00377",
        "timestamp" : 1695701951000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sven%20gothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "GraphUI Demos: Minor refinements..\u000a",
        "date" : "2023-09-26 06:19:11 +0200",
        "id" : "c5fde40428937c08486226e9d4488a0ca1a00377",
        "msg" : "GraphUI Demos: Minor refinements..",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/demos/com/jogamp/opengl/demos/graph/ui/util/Tooltips.java"
          },
          {
            "editType" : "edit",
            "file" : "src/demos/com/jogamp/opengl/demos/graph/ui/FontView01.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "make/scripts/tests-x64.sh",
          "src/test/com/jogamp/opengl/test/junit/jogl/demos/es2/newt/TestGearsES2NewtCanvasAWT.java",
          "src/test/com/jogamp/opengl/test/junit/jogl/demos/es2/newt/TestBug1431NewtCanvasAWT.java",
          "src/newt/native/X11Window.c",
          "src/newt/native/X11Display.c",
          "src/newt/native/X11Common.h",
          "make/scripts/tests.sh"
        ],
        "commitId" : "a0e6d5883de009d4649d011633090d7660fa229a",
        "timestamp" : 1695938903000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sven%20gothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "Bug 1431: Fix NewtCanvasAWT resize on X11, broken since commit ad38d1559854985b1131e5b6c7274a392b5bc265\u000a\u000aCommit ad38d1559854985b1131e5b6c7274a392b5bc265 introduced XTranslateCoordinates(..) to savely validate\u000athe client-space window position against the parent (root).\u000a\u000aTotally missing in this change was the NEWT child window case\u000asince it always used the root-window as the destination.\u000a\u000aThis change tracks the parent-window (valid parent Window or NULL)\u000awithin the JavaWindow struct and either uses the parent-window\u000aif available or the root-window for XTranslateCoordinates(..).\u000aThis results in the proper client-space position.\u000a\u000aValidated against\u000a- TestGearsES2NewtCanvasAWT\u000a- TestBug1431NewtCanvasAWT\u000a\u000aon Debian 12 w/ Java17.\u000a",
        "date" : "2023-09-29 00:08:23 +0200",
        "id" : "a0e6d5883de009d4649d011633090d7660fa229a",
        "msg" : "Bug 1431: Fix NewtCanvasAWT resize on X11, broken since commit ad38d1559854985b1131e5b6c7274a392b5bc265",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/newt/native/X11Display.c"
          },
          {
            "editType" : "add",
            "file" : "src/test/com/jogamp/opengl/test/junit/jogl/demos/es2/newt/TestBug1431NewtCanvasAWT.java"
          },
          {
            "editType" : "edit",
            "file" : "make/scripts/tests-x64.sh"
          },
          {
            "editType" : "edit",
            "file" : "src/test/com/jogamp/opengl/test/junit/jogl/demos/es2/newt/TestGearsES2NewtCanvasAWT.java"
          },
          {
            "editType" : "edit",
            "file" : "src/newt/native/X11Common.h"
          },
          {
            "editType" : "edit",
            "file" : "make/scripts/tests.sh"
          },
          {
            "editType" : "edit",
            "file" : "src/newt/native/X11Window.c"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "make/scripts/test-fat-jars.sh",
          "src/newt/classes/com/jogamp/newt/awt/NewtCanvasAWT.java",
          "make/scripts/tests-x64.bat",
          "src/newt/classes/jogamp/newt/driver/awt/AWTCanvas.java",
          "make/scripts/run-test-until-crash.sh",
          "src/jogl/classes/com/jogamp/opengl/awt/GLCanvas.java",
          "make/scripts/tests-x64-dbg.bat",
          "src/nativewindow/classes/jogamp/nativewindow/jawt/JAWTUtil.java",
          "make/scripts/tests.sh",
          "make/scripts/tests-win.bat",
          "make/build-test.xml"
        ],
        "commitId" : "2e46eb1bf06ef07801062122716aa99a6c871646",
        "timestamp" : 1695950548000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sven%20gothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "Bug 1430 - Fix Background erase not disabled with AWT GLCanvas and NewtCanvasAWT\u000a\u000aCommit c5431f46b7bf64f109315ec78461859dd88f202a\u000areduced the disableBackgroundErase(..) to SunToolkit's variation which doesn't work on Windows\u000aas it does not act upon the java.awt.Canvas peer post addNotify().\u000a\u000aThis re-introduces the java.awt.Canvas method via class JAWTUtil.BackgroundEraseControl\u000aand its called only after addNotify() on Windows and ASAP for everyone else.\u000aMethod also calles the SunTookit variation just to be sure.\u000a",
        "date" : "2023-09-29 03:22:28 +0200",
        "id" : "2e46eb1bf06ef07801062122716aa99a6c871646",
        "msg" : "Bug 1430 - Fix Background erase not disabled with AWT GLCanvas and NewtCanvasAWT",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "make/build-test.xml"
          },
          {
            "editType" : "edit",
            "file" : "make/scripts/test-fat-jars.sh"
          },
          {
            "editType" : "edit",
            "file" : "src/nativewindow/classes/jogamp/nativewindow/jawt/JAWTUtil.java"
          },
          {
            "editType" : "edit",
            "file" : "make/scripts/tests-x64-dbg.bat"
          },
          {
            "editType" : "edit",
            "file" : "make/scripts/tests-x64.bat"
          },
          {
            "editType" : "edit",
            "file" : "make/scripts/run-test-until-crash.sh"
          },
          {
            "editType" : "edit",
            "file" : "make/scripts/tests.sh"
          },
          {
            "editType" : "edit",
            "file" : "make/scripts/tests-win.bat"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/com/jogamp/opengl/awt/GLCanvas.java"
          },
          {
            "editType" : "edit",
            "file" : "src/newt/classes/com/jogamp/newt/awt/NewtCanvasAWT.java"
          },
          {
            "editType" : "edit",
            "file" : "src/newt/classes/jogamp/newt/driver/awt/AWTCanvas.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/jogl/classes/jogamp/graph/curve/opengl/VBORegionSPES2.java",
          "src/jogl/classes/com/jogamp/opengl/util/texture/TextureCoords.java",
          "src/jogl/classes/jogamp/graph/curve/opengl/shader/varyings.glsl",
          "src/jogl/classes/com/jogamp/graph/curve/opengl/RegionRenderer.java",
          "src/jogl/classes/jogamp/graph/curve/opengl/VBORegion2PVBAAES2.java",
          "src/jogl/classes/com/jogamp/opengl/util/texture/TextureSequence.java",
          "src/jogl/classes/com/jogamp/graph/curve/Region.java",
          "src/graphui/classes/com/jogamp/graph/ui/shapes/MediaButton.java",
          "src/demos/com/jogamp/opengl/demos/graph/ui/UIMediaGrid01.java",
          "make/scripts/tests.sh",
          "src/jogl/classes/jogamp/graph/curve/opengl/shader/curverenderer01-segment-head.fp",
          "src/graphui/classes/com/jogamp/graph/ui/shapes/GLButton.java",
          "src/jogl/classes/jogamp/graph/curve/opengl/shader/curverenderer01-pass1.vp",
          "src/jogl/classes/jogamp/graph/curve/opengl/shader/curverenderer01-pass1-curve_simple.glsl",
          "src/graphui/classes/com/jogamp/graph/ui/shapes/ImageButton.java",
          "src/jogl/classes/jogamp/graph/curve/opengl/VBORegion2PMSAAES2.java",
          "src/demos/com/jogamp/opengl/demos/graph/ui/UIMediaGrid00.java",
          "src/graphui/classes/com/jogamp/graph/ui/shapes/TexSeqButton.java",
          "src/jogl/classes/jogamp/graph/curve/opengl/shader/uniforms.glsl",
          "src/jogl/classes/jogamp/graph/curve/opengl/shader/functions.glsl"
        ],
        "commitId" : "297c48f4fefd1ab59800524ea5f0dd56684d6786",
        "timestamp" : 1696030139000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sven%20gothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "Bug 1465 - Graph / GraphUI: Render a Region's ColorTexture in proper aspect-ratio, letter-boxed or zoomed (config) + Bug 1466 Fix color mixing\u000a\u000aBug 1465: Region currently simply bloats a given texture to its region AABBox,\u000awhich renders textures with the wrong aspect ratio.\u000a\u000aAdd facility to program the texture-coordinates to either letter-box\u000aor scaled-up (and cut) true aspect-ratio.\u000aDefault shall be zoom (scale-up and cut),\u000abut user shall be able to set a flag in the Region for letter-box.\u000a\u000aHave the shader clip texture coordinates properly,\u000abest w/o branching to soothe performance.\u000a\u000aSee functions.glsl\u000a\u000a+++\u000a\u000aBug 1466: Current color mix: texture * color_channel * color_static\u000ais useless in GraphUI.\u000a\u000acolor_static shall modulate the texture, which works.\u000aBut in case of color_channel (attribute/varying)\u000awe want it to be mixed so it can become the more dominant color\u000afor e.g. a border.\u000a\u000aDesired is:\u000a\u000acolor = vec4( mix( tex.rgb * gcu_ColorStatic.rgb, gcv_Color.rgb, gcv_Color.a ),\u000a              mix( tex.a * gcu_ColorStatic.a, 1, gcv_Color.a) );\u000a",
        "date" : "2023-09-30 01:28:59 +0200",
        "id" : "297c48f4fefd1ab59800524ea5f0dd56684d6786",
        "msg" : "Bug 1465 - Graph / GraphUI: Render a Region's ColorTexture in proper aspect-ratio, letter-boxed or zoomed (config) + Bug 1466 Fix color mixing",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/jogamp/graph/curve/opengl/VBORegionSPES2.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/com/jogamp/opengl/util/texture/TextureSequence.java"
          },
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/com/jogamp/graph/ui/shapes/GLButton.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/jogamp/graph/curve/opengl/shader/uniforms.glsl"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/com/jogamp/graph/curve/Region.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/com/jogamp/graph/curve/opengl/RegionRenderer.java"
          },
          {
            "editType" : "edit",
            "file" : "make/scripts/tests.sh"
          },
          {
            "editType" : "add",
            "file" : "src/jogl/classes/jogamp/graph/curve/opengl/shader/functions.glsl"
          },
          {
            "editType" : "add",
            "file" : "src/demos/com/jogamp/opengl/demos/graph/ui/UIMediaGrid00.java"
          },
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/com/jogamp/graph/ui/shapes/MediaButton.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/jogamp/graph/curve/opengl/shader/curverenderer01-segment-head.fp"
          },
          {
            "editType" : "edit",
            "file" : "src/demos/com/jogamp/opengl/demos/graph/ui/UIMediaGrid01.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/jogamp/graph/curve/opengl/VBORegion2PMSAAES2.java"
          },
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/com/jogamp/graph/ui/shapes/ImageButton.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/jogamp/graph/curve/opengl/shader/curverenderer01-pass1.vp"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/jogamp/graph/curve/opengl/VBORegion2PVBAAES2.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/jogamp/graph/curve/opengl/shader/varyings.glsl"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/jogamp/graph/curve/opengl/shader/curverenderer01-pass1-curve_simple.glsl"
          },
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/com/jogamp/graph/ui/shapes/TexSeqButton.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/com/jogamp/opengl/util/texture/TextureCoords.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/jogl/classes/jogamp/opengl/util/av/impl/FFMPEGMediaPlayer.java"
        ],
        "commitId" : "dd9f05890a157bf1688c3c325512e208cdd628ee",
        "timestamp" : 1696030237000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sven%20gothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "FFMPEGMediaPlayer: Insert GLSL comment-line documenting the addressed VideoPixelFormat conversion for easier debugging\u000a",
        "date" : "2023-09-30 01:30:37 +0200",
        "id" : "dd9f05890a157bf1688c3c325512e208cdd628ee",
        "msg" : "FFMPEGMediaPlayer: Insert GLSL comment-line documenting the addressed VideoPixelFormat conversion for easier debugging",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/jogamp/opengl/util/av/impl/FFMPEGMediaPlayer.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/graphui/classes/com/jogamp/graph/ui/Group.java"
        ],
        "commitId" : "972682a9247d3b4e8deb07b4ac1867d090f5ffff",
        "timestamp" : 1696030348000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sven%20gothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "GraphUI: Group: Add attribute to allow not to relayout if child Shapes are dirty. Only issue validate on childs if theyre shape is dirty\u000a",
        "date" : "2023-09-30 01:32:28 +0200",
        "id" : "972682a9247d3b4e8deb07b4ac1867d090f5ffff",
        "msg" : "GraphUI: Group: Add attribute to allow not to relayout if child Shapes are dirty. Only issue validate on childs if theyre shape is dirty",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/com/jogamp/graph/ui/Group.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/graphui/classes/com/jogamp/graph/ui/Scene.java",
          "src/graphui/classes/com/jogamp/graph/ui/Shape.java"
        ],
        "commitId" : "4b8574c63e100f0ef8bb2ad292d71f612e6cfceb",
        "timestamp" : 1696030943000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sven%20gothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "Bug 1454 + Bug 1464: Maintain a Shape local 'zOffset' and only consider it for sorting w/o actually modifying the position (enogh to be painted on top and for selection)\u000a\u000aAlso use a simplified comparison using only float relational operations w/o NaN/Inf bit-stuff or epsilon,\u000aas it should be accurate enough for this cause.\u000a\u000aThis shall also resolve Bug 1454, as we no more modify the position directly\u000abut the local zOffset field .. but this has to be seen (data race).\u000a",
        "date" : "2023-09-30 01:42:23 +0200",
        "id" : "4b8574c63e100f0ef8bb2ad292d71f612e6cfceb",
        "msg" : "Bug 1454 + Bug 1464: Maintain a Shape local 'zOffset' and only consider it for sorting w/o actually modifying the position (enogh to be painted on top and for selection)",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/com/jogamp/graph/ui/Shape.java"
          },
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/com/jogamp/graph/ui/Scene.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/graphui/classes/com/jogamp/graph/ui/Shape.java"
        ],
        "commitId" : "b38890a32ff35e364d5c433a0afa6c9fdda2c90a",
        "timestamp" : 1696030970000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sven%20gothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "GraphUI: Shape: Add missing 'markShapeDirty()' on setBorderColor()\u000a",
        "date" : "2023-09-30 01:42:50 +0200",
        "id" : "b38890a32ff35e364d5c433a0afa6c9fdda2c90a",
        "msg" : "GraphUI: Shape: Add missing 'markShapeDirty()' on setBorderColor()",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/com/jogamp/graph/ui/Shape.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/graphui/classes/com/jogamp/graph/ui/Scene.java"
        ],
        "commitId" : "05a344b98277a19858cd5c4a22e93620ec05a8d5",
        "timestamp" : 1696031196000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sven%20gothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "Bug 1467 - GraphUI: Don't de-activate a Shape if became active via 'mouseOver' (mouseDragged)\u000a\u000aWhen using a mouse, Scene activates a Shape if mouse is over it (mouseOver).\u000a\u000aHence don't de-activate such Shape via mouse-button clicked or released.\u000a",
        "date" : "2023-09-30 01:46:36 +0200",
        "id" : "05a344b98277a19858cd5c4a22e93620ec05a8d5",
        "msg" : "Bug 1467 - GraphUI: Don't de-activate a Shape if became active via 'mouseOver' (mouseDragged)",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/com/jogamp/graph/ui/Scene.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/demos/com/jogamp/opengl/demos/util/MiscUtils.java",
          "src/demos/com/jogamp/opengl/demos/av/MovieCube.java",
          "src/demos/com/jogamp/opengl/demos/av/MovieSimple.java"
        ],
        "commitId" : "b0893eda1035bcb1c6a88e52dac6cd00dfedf696",
        "timestamp" : 1696182912000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sven%20gothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "Bug 1468: Demos MiscUtil.destroyWindow() Call GLAutoDrawable.destroy() directly w/o mitigation attempts (off-thread)\u000a",
        "date" : "2023-10-01 19:55:12 +0200",
        "id" : "b0893eda1035bcb1c6a88e52dac6cd00dfedf696",
        "msg" : "Bug 1468: Demos MiscUtil.destroyWindow() Call GLAutoDrawable.destroy() directly w/o mitigation attempts (off-thread)",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/demos/com/jogamp/opengl/demos/util/MiscUtils.java"
          },
          {
            "editType" : "edit",
            "file" : "src/demos/com/jogamp/opengl/demos/av/MovieCube.java"
          },
          {
            "editType" : "edit",
            "file" : "src/demos/com/jogamp/opengl/demos/av/MovieSimple.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/newt/classes/jogamp/newt/driver/android/WindowDriver.java",
          "src/newt/classes/jogamp/newt/driver/windows/WindowDriver.java",
          "src/newt/native/WindowsWindow.c",
          "src/newt/classes/com/jogamp/newt/Window.java",
          "src/newt/classes/com/jogamp/newt/opengl/GLWindow.java",
          "src/newt/classes/jogamp/newt/DefaultEDTUtil.java",
          "src/newt/classes/jogamp/newt/driver/ios/WindowDriver.java",
          "src/newt/native/X11Display.c",
          "make/scripts/tests.sh",
          "src/newt/classes/jogamp/newt/driver/x11/WindowDriver.java",
          "src/newt/native/IOSNewtUIWindow.m",
          "src/newt/classes/jogamp/newt/WindowImpl.java",
          "src/demos/com/jogamp/opengl/demos/util/MiscUtils.java",
          "src/test/com/jogamp/opengl/test/junit/jogl/demos/es2/GearsES2.java",
          "src/newt/native/MacNewtNSWindow.m",
          "src/test/com/jogamp/opengl/test/junit/jogl/demos/es2/RedSquareES2.java",
          "src/newt/classes/jogamp/newt/driver/x11/DisplayDriver.java",
          "make/scripts/tests-win.bat",
          "src/newt/native/drm_gbm.c",
          "src/newt/native/KDWindow.c",
          "src/newt/classes/jogamp/newt/DisplayImpl.java",
          "src/jogl/classes/jogamp/opengl/GLContextImpl.java",
          "src/newt/classes/jogamp/newt/driver/macosx/WindowDriver.java",
          "src/newt/native/X11Window.c",
          "src/newt/native/bcm_vc_iv.c",
          "src/jogl/classes/jogamp/opengl/GLAutoDrawableBase.java",
          "src/test/com/jogamp/opengl/test/junit/jogl/acore/TestDestroyGLAutoDrawableNewtAWT.java"
        ],
        "commitId" : "f842843df2c77f5badaace6858d3336151ce0827",
        "timestamp" : 1696268562000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sven%20gothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "Bug 1468 - SIGSEGV on use after free when destroying NEWT Window/Display via a native dispatch'ed event like key/mouse/touch input\u000a\u000aSIGSEGV on use after free of native X11 Display* at XEventsQueued in DisplayDriver.DispatchMessages0.\u000a\u000aThis potentially happens when an application destroys\u000athe NEWT Window/Display from an action being called directly\u000afrom DisplayDriver.DispatchMessages0 (itself), i.e. keyboard or mouse input.\u000a\u000aDisplayDriver.DispatchMessages0 stays in the event loop and the next\u000aXEventsQueued call causes a SIGSEGV due to already deleted\u000adisplay driver connection and hence invalid native X11 Display*.\u000a\u000aThis issue also exist for other Windowing System drivers,\u000awhere the native (dispatch) method sticks to a loop\u000aand still (re)uses the window or display handle.\u000a\u000aOne is WindowsWindow, where touch events are looped,\u000abut such handler could have closed the window.\u000a\u000aQuerying the status of a window / display instance before dispatching\u000ais not be good enough\u000a- resource could already be GC'ed, so we also would need to query jobject status\u000a- would imply an addition Java callback\u000a\u000a+++\u000a\u000aThis fix: Having the Java callbacks return\u000aa boolean with the value Window.isNativeValid().\u000a\u000aThis way the dispatch logic\u000a- can bail out right away w/o using the resource anymore\u000a\u000a- must be reviewed by myself due to changed Call{Void->Boolean}*(..)\u000a  invocation change.\u000a  This review shall resolve potential similar issues.\u000a\u000a+++\u000a\u000aTested on X11/Linux/GNU, Windows and MacOS\u000awith new TestDestroyGLAutoDrawableNewtAWT,\u000awhich tests all destruction invocation variants.\u000a",
        "date" : "2023-10-02 19:42:42 +0200",
        "id" : "f842843df2c77f5badaace6858d3336151ce0827",
        "msg" : "Bug 1468 - SIGSEGV on use after free when destroying NEWT Window/Display via a native dispatch'ed event like key/mouse/touch input",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/newt/classes/jogamp/newt/DisplayImpl.java"
          },
          {
            "editType" : "edit",
            "file" : "src/newt/native/drm_gbm.c"
          },
          {
            "editType" : "edit",
            "file" : "src/demos/com/jogamp/opengl/demos/util/MiscUtils.java"
          },
          {
            "editType" : "edit",
            "file" : "src/newt/native/KDWindow.c"
          },
          {
            "editType" : "edit",
            "file" : "src/newt/classes/jogamp/newt/WindowImpl.java"
          },
          {
            "editType" : "edit",
            "file" : "src/newt/classes/com/jogamp/newt/Window.java"
          },
          {
            "editType" : "edit",
            "file" : "src/newt/classes/jogamp/newt/driver/ios/WindowDriver.java"
          },
          {
            "editType" : "edit",
            "file" : "make/scripts/tests.sh"
          },
          {
            "editType" : "edit",
            "file" : "src/test/com/jogamp/opengl/test/junit/jogl/demos/es2/RedSquareES2.java"
          },
          {
            "editType" : "edit",
            "file" : "src/newt/classes/jogamp/newt/driver/android/WindowDriver.java"
          },
          {
            "editType" : "edit",
            "file" : "src/test/com/jogamp/opengl/test/junit/jogl/demos/es2/GearsES2.java"
          },
          {
            "editType" : "edit",
            "file" : "src/newt/native/bcm_vc_iv.c"
          },
          {
            "editType" : "edit",
            "file" : "src/newt/classes/jogamp/newt/driver/macosx/WindowDriver.java"
          },
          {
            "editType" : "edit",
            "file" : "src/newt/native/X11Window.c"
          },
          {
            "editType" : "edit",
            "file" : "src/newt/classes/jogamp/newt/driver/x11/WindowDriver.java"
          },
          {
            "editType" : "edit",
            "file" : "make/scripts/tests-win.bat"
          },
          {
            "editType" : "edit",
            "file" : "src/newt/native/MacNewtNSWindow.m"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/jogamp/opengl/GLContextImpl.java"
          },
          {
            "editType" : "edit",
            "file" : "src/newt/native/WindowsWindow.c"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/jogamp/opengl/GLAutoDrawableBase.java"
          },
          {
            "editType" : "edit",
            "file" : "src/newt/native/IOSNewtUIWindow.m"
          },
          {
            "editType" : "edit",
            "file" : "src/newt/classes/jogamp/newt/driver/windows/WindowDriver.java"
          },
          {
            "editType" : "edit",
            "file" : "src/newt/classes/jogamp/newt/DefaultEDTUtil.java"
          },
          {
            "editType" : "edit",
            "file" : "src/newt/classes/com/jogamp/newt/opengl/GLWindow.java"
          },
          {
            "editType" : "edit",
            "file" : "src/newt/native/X11Display.c"
          },
          {
            "editType" : "add",
            "file" : "src/test/com/jogamp/opengl/test/junit/jogl/acore/TestDestroyGLAutoDrawableNewtAWT.java"
          },
          {
            "editType" : "edit",
            "file" : "src/newt/classes/jogamp/newt/driver/x11/DisplayDriver.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/jogl/native/libav/ffmpeg_impl_template.c"
        ],
        "commitId" : "af13e40ee502e69bb12e979e406c1a9793535482",
        "timestamp" : 1696268760000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sven%20gothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "Bug 1469 - FFmpeg binding uses ReleaseStringChars instead of ReleaseStringUTFChars for GetStringUTFChars() acquired UTF\u000a",
        "date" : "2023-10-02 19:46:00 +0200",
        "id" : "af13e40ee502e69bb12e979e406c1a9793535482",
        "msg" : "Bug 1469 - FFmpeg binding uses ReleaseStringChars instead of ReleaseStringUTFChars for GetStringUTFChars() acquired UTF",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/jogl/native/libav/ffmpeg_impl_template.c"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/newt/native/MacNewtNSWindow.m",
          "src/newt/native/IOSNewtUIWindow.m",
          "src/newt/native/bcm_vc_iv.c",
          "src/newt/native/drm_gbm.c",
          "src/newt/native/WindowsWindow.c",
          "src/newt/native/bcm_egl.c"
        ],
        "commitId" : "7a2ee84416989476b7b2fd05ce484a5c7fcf81e8",
        "timestamp" : 1696268944000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sven%20gothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "Bug 1470 - NEWT/JNI: Perform exception check and rethrow for all Java Callbacks as recommended\u000a",
        "date" : "2023-10-02 19:49:04 +0200",
        "id" : "7a2ee84416989476b7b2fd05ce484a5c7fcf81e8",
        "msg" : "Bug 1470 - NEWT/JNI: Perform exception check and rethrow for all Java Callbacks as recommended",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/newt/native/WindowsWindow.c"
          },
          {
            "editType" : "edit",
            "file" : "src/newt/native/bcm_egl.c"
          },
          {
            "editType" : "edit",
            "file" : "src/newt/native/IOSNewtUIWindow.m"
          },
          {
            "editType" : "edit",
            "file" : "src/newt/native/MacNewtNSWindow.m"
          },
          {
            "editType" : "edit",
            "file" : "src/newt/native/drm_gbm.c"
          },
          {
            "editType" : "edit",
            "file" : "src/newt/native/bcm_vc_iv.c"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/jogl/classes/com/jogamp/opengl/GLEventAdapter.java"
        ],
        "commitId" : "3c13e7be0bcd7c5fca03f57cb1b0e3351c2ac3a9",
        "timestamp" : 1696269078000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sven%20gothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "Bug 1471: Add a GLEventAdapter for GLEventListener similar to the other Adapter patterns\u000a",
        "date" : "2023-10-02 19:51:18 +0200",
        "id" : "3c13e7be0bcd7c5fca03f57cb1b0e3351c2ac3a9",
        "msg" : "Bug 1471: Add a GLEventAdapter for GLEventListener similar to the other Adapter patterns",
        "paths" : [
          {
            "editType" : "add",
            "file" : "src/jogl/classes/com/jogamp/opengl/GLEventAdapter.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/jogl/native/JoglCommon.c",
          "src/jogl/native/JoglCommon.h",
          "src/jogl/native/libav/ffmpeg_impl_template.c"
        ],
        "commitId" : "e8c3c0382d58c8eabf4b96aa555683252c10d569",
        "timestamp" : 1696271438000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sven%20gothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "Bug 1470 - FFmpeg / JNI: Perform exception check and rethrow for all Java Callbacks as recommended\u000a",
        "date" : "2023-10-02 20:30:38 +0200",
        "id" : "e8c3c0382d58c8eabf4b96aa555683252c10d569",
        "msg" : "Bug 1470 - FFmpeg / JNI: Perform exception check and rethrow for all Java Callbacks as recommended",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/jogl/native/JoglCommon.c"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/native/JoglCommon.h"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/native/libav/ffmpeg_impl_template.c"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/demos/com/jogamp/opengl/demos/graph/ui/UISceneDemo20.java",
          "src/graphui/classes/com/jogamp/graph/ui/Scene.java"
        ],
        "commitId" : "69549319e1d9ddf4d3903aa077f2c4cebb54195e",
        "timestamp" : 1696292634000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sven%20gothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "GraphUI Scene: Add custom one-time GLRunnable disposable action list, allowing to properly take-down user resources at dispose(GLAutoDrawable)\u000a\u000aUsed for UISceneDemo20 to stop and release SimpleSineSynth and its ALAudioSink.\u000a\u000aThe latter causes a bad exit (crash at OpenAL32.dll) on OpenJDK's Window Binary if not stopped!\u000a",
        "date" : "2023-10-03 02:23:54 +0200",
        "id" : "69549319e1d9ddf4d3903aa077f2c4cebb54195e",
        "msg" : "GraphUI Scene: Add custom one-time GLRunnable disposable action list, allowing to properly take-down user resources at dispose(GLAutoDrawable)",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/demos/com/jogamp/opengl/demos/graph/ui/UISceneDemo20.java"
          },
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/com/jogamp/graph/ui/Scene.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/graphui/classes/com/jogamp/graph/ui/Group.java",
          "src/graphui/classes/com/jogamp/graph/ui/Container.java",
          "src/demos/com/jogamp/opengl/demos/graph/ui/UILayoutGrid01.java",
          "src/graphui/classes/com/jogamp/graph/ui/layout/BoxLayout.java",
          "make/scripts/tests-x64.bat",
          "src/graphui/classes/com/jogamp/graph/ui/Shape.java",
          "src/demos/com/jogamp/opengl/demos/graph/ui/UILayoutBox01.java",
          "src/demos/com/jogamp/opengl/demos/graph/ui/UILayoutBoxGridOffset01.java",
          "make/scripts/tests-x64-dbg.bat",
          "src/demos/com/jogamp/opengl/demos/graph/ui/UISceneDemo20.java",
          "make/scripts/tests.sh",
          "make/scripts/tests-win.bat"
        ],
        "commitId" : "c8ec6fa7cc16a0777db16af8b4d0d0b898f8b546",
        "timestamp" : 1696293452000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sven%20gothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "GraphUI Shape: 'int name' -> 'int id' and add 'String name', change get/set methods accordingly\u000a",
        "date" : "2023-10-03 02:37:32 +0200",
        "id" : "c8ec6fa7cc16a0777db16af8b4d0d0b898f8b546",
        "msg" : "GraphUI Shape: 'int name' -> 'int id' and add 'String name', change get/set methods accordingly",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/demos/com/jogamp/opengl/demos/graph/ui/UILayoutBoxGridOffset01.java"
          },
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/com/jogamp/graph/ui/layout/BoxLayout.java"
          },
          {
            "editType" : "edit",
            "file" : "src/demos/com/jogamp/opengl/demos/graph/ui/UILayoutGrid01.java"
          },
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/com/jogamp/graph/ui/Shape.java"
          },
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/com/jogamp/graph/ui/Container.java"
          },
          {
            "editType" : "edit",
            "file" : "src/demos/com/jogamp/opengl/demos/graph/ui/UISceneDemo20.java"
          },
          {
            "editType" : "edit",
            "file" : "make/scripts/tests.sh"
          },
          {
            "editType" : "edit",
            "file" : "src/demos/com/jogamp/opengl/demos/graph/ui/UILayoutBox01.java"
          },
          {
            "editType" : "edit",
            "file" : "make/scripts/tests-win.bat"
          },
          {
            "editType" : "edit",
            "file" : "make/scripts/tests-x64.bat"
          },
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/com/jogamp/graph/ui/Group.java"
          },
          {
            "editType" : "edit",
            "file" : "make/scripts/tests-x64-dbg.bat"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/graphui/classes/com/jogamp/graph/ui/Scene.java"
        ],
        "commitId" : "4fd725b1cd4bf4d9f1bd3a20e3b23784485c3751",
        "timestamp" : 1696293727000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sven%20gothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "GraphUI Shape: Complete commit c8ec6fa7cc16a0777db16af8b4d0d0b898f8b546\u000a",
        "date" : "2023-10-03 02:42:07 +0200",
        "id" : "4fd725b1cd4bf4d9f1bd3a20e3b23784485c3751",
        "msg" : "GraphUI Shape: Complete commit c8ec6fa7cc16a0777db16af8b4d0d0b898f8b546",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/com/jogamp/graph/ui/Scene.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/jogl/classes/jogamp/graph/curve/opengl/VBORegionSPES2.java",
          "src/jogl/classes/jogamp/graph/curve/opengl/VBORegion2PVBAAES2.java",
          "src/jogl/classes/com/jogamp/opengl/util/texture/TextureSequence.java",
          "src/jogl/classes/jogamp/graph/curve/opengl/VBORegion2PMSAAES2.java"
        ],
        "commitId" : "3b994439acd0c001b64e96634636026f11af619c",
        "timestamp" : 1696299143000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sven%20gothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "TextureSequence.setTexCoordBBox(): Add 'verbose' parameter for debug output instead hard coded branch\u000a",
        "date" : "2023-10-03 04:12:23 +0200",
        "id" : "3b994439acd0c001b64e96634636026f11af619c",
        "msg" : "TextureSequence.setTexCoordBBox(): Add 'verbose' parameter for debug output instead hard coded branch",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/jogamp/graph/curve/opengl/VBORegion2PMSAAES2.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/jogamp/graph/curve/opengl/VBORegion2PVBAAES2.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/com/jogamp/opengl/util/texture/TextureSequence.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/jogamp/graph/curve/opengl/VBORegionSPES2.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/jogl/classes/jogamp/opengl/util/av/impl/FFMPEGMediaPlayer.java"
        ],
        "commitId" : "1db4e6813bf4c70c5ba465beaee6eab8ee547d18",
        "timestamp" : 1696299517000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sven%20gothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "FFMPEGMediaPlayer: Always use own textureLookupShader and validate its custom name against GLSL internal 'texture2D', add missing VideoPixelFormat conversions\u000a\u000aAlways use own textureLookupShader, avoiding confusion or even race conditions.\u000a\u000aValidate textureLookupShader custom name against GLSL internal 'texture2D' (illegal override)\u000a\u000aAdd missing VideoPixelFormat conversions:\u000a- RGB24, ARGB, RGBA, ABGR, BGRA\u000a",
        "date" : "2023-10-03 04:18:37 +0200",
        "id" : "1db4e6813bf4c70c5ba465beaee6eab8ee547d18",
        "msg" : "FFMPEGMediaPlayer: Always use own textureLookupShader and validate its custom name against GLSL internal 'texture2D', add missing VideoPixelFormat conversions",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/jogamp/opengl/util/av/impl/FFMPEGMediaPlayer.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/jogl/classes/jogamp/opengl/util/av/impl/FFMPEGMediaPlayer.java",
          "make/scripts/tests.sh"
        ],
        "commitId" : "d0dd0c04463c6b09b1f15ce6cc3a2c50286c57bf",
        "timestamp" : 1696412148000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sven%20gothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "Bug 1473 - ALAudioSink: AV Synchronization: Adopt to JOAL ALAudioSink changes\u000a\u000aFFMPEGMediaPlayer: This also effectively reduces the audio buffer size from 3000ms -> 768ms,\u000athe new default for audio streams with video.\u000a",
        "date" : "2023-10-04 11:35:48 +0200",
        "id" : "d0dd0c04463c6b09b1f15ce6cc3a2c50286c57bf",
        "msg" : "Bug 1473 - ALAudioSink: AV Synchronization: Adopt to JOAL ALAudioSink changes",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/jogamp/opengl/util/av/impl/FFMPEGMediaPlayer.java"
          },
          {
            "editType" : "edit",
            "file" : "make/scripts/tests.sh"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/jogl/classes/jogamp/opengl/util/av/GLMediaPlayerImpl.java"
        ],
        "commitId" : "e066250b908f0f2187d468d2c5ab586341031753",
        "timestamp" : 1696413910000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sven%20gothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "Bug 1472: GLMediaPlayer AVSync: Refine AVSync debug output (WIP)\u000a\u000aUsing `-Djogl.debug.GLMediaPlayer.AVSync -Djogamp.debug.AudioSink` to trace AVSync issues for now.\u000a",
        "date" : "2023-10-04 12:05:10 +0200",
        "id" : "e066250b908f0f2187d468d2c5ab586341031753",
        "msg" : "Bug 1472: GLMediaPlayer AVSync: Refine AVSync debug output (WIP)",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/jogamp/opengl/util/av/GLMediaPlayerImpl.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/jogl/classes/jogamp/opengl/util/av/GLMediaPlayerImpl.java"
        ],
        "commitId" : "86210fde931400ff6f1b0a2da48ca031a957df8d",
        "timestamp" : 1696435803000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sven%20gothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "Bug 1472: GLMediaPlayerImpl: Track repeatedFrame count\u000a",
        "date" : "2023-10-04 18:10:03 +0200",
        "id" : "86210fde931400ff6f1b0a2da48ca031a957df8d",
        "msg" : "Bug 1472: GLMediaPlayerImpl: Track repeatedFrame count",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/jogamp/opengl/util/av/GLMediaPlayerImpl.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/jogl/classes/com/jogamp/opengl/util/av/GLMediaPlayer.java",
          "src/jogl/native/libav/ffmpeg_impl_template.c",
          "src/jogl/classes/jogamp/opengl/util/av/GLMediaPlayerImpl.java",
          "src/demos/com/jogamp/opengl/demos/av/MovieSimple.java",
          "src/jogl/classes/jogamp/opengl/util/av/NullGLMediaPlayer.java",
          "src/jogl/classes/jogamp/opengl/util/av/impl/FFMPEGMediaPlayer.java",
          "src/jogl/classes/jogamp/opengl/util/av/impl/OMXGLMediaPlayer.java",
          "src/jogl/classes/jogamp/opengl/android/av/AndroidGLMediaPlayerAPI14.java"
        ],
        "commitId" : "b1956113f5601b0cc6ac525d3918a0dfa8d240af",
        "timestamp" : 1697346413000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sven%20gothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "Bug 1472: Enhance GLMediaPlayer AV Sync: Utilize SCR aware audio PTS used as master-clock, enabling proper AV sync w/ untouched audio\u000a\u000aWe can finally utilize the added pass through audio PTS, see commits\u000a- GlueGen 52725b4c6525487f93407f529dc0a758b387a4fc\u000a- JOAL 12029f1ec1d8afa576e1ac61655f318cc37c1d16\u000a\u000aThis enables us to use the audio PTS as the master-clock and adjust video to the untouched audio.\u000a\u000aIn case no audio is selected/playing or audio is muted,\u000awe sync merely on the system-clock (SCR) w/o audio.\u000a\u000aAV granularity is 22ms, however, since the ALAudioSink PTS may be a little late,\u000ait renders even a slightly better sync in case of too early audio (d_apts < 0).\u000a\u000aSince video frames are sync'ed to audio, the resync procedure may result\u000ain a hysteresis swinging into sync. This might be notable at start\u000aand when resumed audio or after seek.\u000a\u000aWe leave the audio frames untouched to reduce processing burden\u000aand allow non-disrupted listening.\u000a\u000aPassed AV sync tests\u000a- Five-minute-sync-test.mp4\u000a- Audio-Video-Sync-Test-Calibration-23.98fps-24fps.mp4\u000a- Audio-Video-Sync-Test-2.mkv\u000a",
        "date" : "2023-10-15 07:06:53 +0200",
        "id" : "b1956113f5601b0cc6ac525d3918a0dfa8d240af",
        "msg" : "Bug 1472: Enhance GLMediaPlayer AV Sync: Utilize SCR aware audio PTS used as master-clock, enabling proper AV sync w/ untouched audio",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/jogamp/opengl/util/av/impl/FFMPEGMediaPlayer.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/com/jogamp/opengl/util/av/GLMediaPlayer.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/jogamp/opengl/android/av/AndroidGLMediaPlayerAPI14.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/native/libav/ffmpeg_impl_template.c"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/jogamp/opengl/util/av/GLMediaPlayerImpl.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/jogamp/opengl/util/av/impl/OMXGLMediaPlayer.java"
          },
          {
            "editType" : "edit",
            "file" : "src/demos/com/jogamp/opengl/demos/av/MovieSimple.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/jogamp/opengl/util/av/NullGLMediaPlayer.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/jogl/classes/jogamp/opengl/util/av/impl/FFMPEGDynamicLibraryBundleInfo.java",
          "src/jogl/native/libav/ffmpeg_impl_template.c"
        ],
        "commitId" : "2c80bb2e6eb12e155d747daf8a08362396d5e0fc",
        "timestamp" : 1697346615000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sven%20gothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "Bug 1472: Enhance GLMediaPlayer AV Sync: Fix FFMPEGMediaPlayer's audio resample: Use swr_get_out_samples(..) to calculate the required output sample count\u000a\u000aNotable when playing audio with e.g. 24k sample rate on a 48k OpenAL ALAudioSink,\u000athe sample duration was cut in half due to erroneous resampling missing half the required samples.\u000a\u000aUsing swr_get_out_samples(..) resolves this issue pre swr_convert(..), the resampling.\u000a",
        "date" : "2023-10-15 07:10:15 +0200",
        "id" : "2c80bb2e6eb12e155d747daf8a08362396d5e0fc",
        "msg" : "Bug 1472: Enhance GLMediaPlayer AV Sync: Fix FFMPEGMediaPlayer's audio resample: Use swr_get_out_samples(..) to calculate the required output sample count",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/jogamp/opengl/util/av/impl/FFMPEGDynamicLibraryBundleInfo.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/native/libav/ffmpeg_impl_template.c"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/jogl/classes/jogamp/opengl/util/av/GLMediaPlayerImpl.java"
        ],
        "commitId" : "bd2aa98d57c0c03bbface35000ed1c4bac6470e2",
        "timestamp" : 1697389352000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sven%20gothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "Bug 1472: Enhance GLMediaPlayer AV Sync: Fine tune AV heuristics to (multiple of) audio_dequeued_ms\u000a\u000aThe case of lagging audio to the audio master-clock (by experience) is a rare and probably synthethic case\u000aof the AV async videos, was\u000a  dt_a > MAX_VIDEO_ASYNC && d_apts > 0\u000anow with increased threshold max_adelay = Math.max( 4*audio_dequeued_ms, 4*MAX_VIDEO_ASYNC )\u000a  dt_a > max_adelay && d_apts > 0\u000a\u000aIn conjunction the video-repeat case (video pts > SCR) shall use a higher threshold _when_\u000adetecting, i.e. min1_audio_queued_ms = Math.max( 2*audio_dequeued_ms, 2*MAX_VIDEO_ASYNC )\u000ato ensure enough buffered audio exists (2 audio-frames) before the next getNextTexture()\u000ahits within vsync.\u000a\u000aThis early detection and min1_audio_queued_ms threshold\u000ais double of the late threshold for video-repeat min0_audio_queued_ms = Math.max( audio_dequeued_ms, MAX_VIDEO_ASYNC ),\u000awhen the to-be repeated frame shall be displayed within getNextThreshold().\u000aFailing this requirement (1 audio-frame) will discard it and gather the next video-frame,\u000aallowing to fill the audio-buffer. A subsequent AV sync shall correct the difference.\u000aStrategy is less intervention on less buffered-audio.\u000a\u000aThis shorter tolerance also reduces some video lag or stuttering on 24fps -> 60fps films.\u000a",
        "date" : "2023-10-15 19:02:32 +0200",
        "id" : "bd2aa98d57c0c03bbface35000ed1c4bac6470e2",
        "msg" : "Bug 1472: Enhance GLMediaPlayer AV Sync: Fine tune AV heuristics to (multiple of) audio_dequeued_ms",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/jogamp/opengl/util/av/GLMediaPlayerImpl.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/jogl/classes/com/jogamp/opengl/awt/GLJPanel.java"
        ],
        "commitId" : "d6cf89f22a5926b437c4430eb166972d90fd92be",
        "timestamp" : 1697409636000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sven%20gothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "GLJPanel: Allow disabling GLSL vertical flip programmatically via setUseGLSLVerticalFlip(false) in addition to property 'jogl.gljpanel.noglsl'\u000a\u000aSuche setting would enable the slow path of flipping a potentially 'big' framebuffer via the CPU.\u000a\u000aThe best performance path is using the GLSL shader to vertically flip the FBO,\u000aor - w/o using the shader - to render the GL scene vertically-flipped and set the flag 'flipVertical' to false.\u000a- property \"jogl.gljpanel.noverticalflip\"\u000a- setter setSkipGLOrientationVerticalFlip(boolean)\u000a  If set to <code>true</code>, user needs to flip the OpenGL rendered scene\u000a  <i>if {@link #isGLOriented()} == true</i>, e.g. via the projection matrix.<br/>\u000a  See constraints of {@link #isGLOriented()}.\u000a",
        "date" : "2023-10-16 00:40:36 +0200",
        "id" : "d6cf89f22a5926b437c4430eb166972d90fd92be",
        "msg" : "GLJPanel: Allow disabling GLSL vertical flip programmatically via setUseGLSLVerticalFlip(false) in addition to property 'jogl.gljpanel.noglsl'",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/com/jogamp/opengl/awt/GLJPanel.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/jogl/classes/com/jogamp/opengl/awt/GLJPanel.java"
        ],
        "commitId" : "76cf00ea0a157b33af9b2ffa608ded992f8c0ff2",
        "timestamp" : 1697410460000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sven%20gothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "GLJPanel: Fix DEBUG output USE_GLSL_TEXTURE_RASTERIZER -> USE_GLSL_VERTICAL_FLIP, changed names in commit d6cf89f22a5926b437c4430eb166972d90fd92be\u000a",
        "date" : "2023-10-16 00:54:20 +0200",
        "id" : "76cf00ea0a157b33af9b2ffa608ded992f8c0ff2",
        "msg" : "GLJPanel: Fix DEBUG output USE_GLSL_TEXTURE_RASTERIZER -> USE_GLSL_VERTICAL_FLIP, changed names in commit d6cf89f22a5926b437c4430eb166972d90fd92be",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/com/jogamp/opengl/awt/GLJPanel.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/demos/com/jogamp/opengl/demos/av/MovieSBSStereo.java",
          "src/jogl/classes/com/jogamp/opengl/util/av/GLMediaPlayer.java",
          "src/demos/com/jogamp/opengl/demos/av/MovieCube.java",
          "src/jogl/classes/jogamp/opengl/util/av/GLMediaPlayerImpl.java",
          "src/demos/com/jogamp/opengl/demos/av/MovieSimple.java"
        ],
        "commitId" : "ee29eaf770d0d3627e5989dcae58a87cf27184d3",
        "timestamp" : 1697421804000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sven%20gothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "Bug 1472: GLMediaPlayer: Expose SCR PTS and encourage its usage, removes user from selecting video or audio PTS.\u000a",
        "date" : "2023-10-16 04:03:24 +0200",
        "id" : "ee29eaf770d0d3627e5989dcae58a87cf27184d3",
        "msg" : "Bug 1472: GLMediaPlayer: Expose SCR PTS and encourage its usage, removes user from selecting video or audio PTS.",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/com/jogamp/opengl/util/av/GLMediaPlayer.java"
          },
          {
            "editType" : "edit",
            "file" : "src/demos/com/jogamp/opengl/demos/av/MovieSimple.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/jogamp/opengl/util/av/GLMediaPlayerImpl.java"
          },
          {
            "editType" : "edit",
            "file" : "src/demos/com/jogamp/opengl/demos/av/MovieCube.java"
          },
          {
            "editType" : "edit",
            "file" : "src/demos/com/jogamp/opengl/demos/av/MovieSBSStereo.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/jogl/classes/jogamp/opengl/util/av/GLMediaPlayerImpl.java",
          "src/demos/com/jogamp/opengl/demos/av/MovieSimple.java"
        ],
        "commitId" : "dac49f32e09d61f5ba9be53a21d351843a48761b",
        "timestamp" : 1697421940000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sven%20gothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "Bug 1472: GLMediaPlayer: Handle setPlaySpeed() like setAudioVolume() if stream is not yet initialized or playing, cached clipped value and set at initGL(..)\u000a",
        "date" : "2023-10-16 04:05:40 +0200",
        "id" : "dac49f32e09d61f5ba9be53a21d351843a48761b",
        "msg" : "Bug 1472: GLMediaPlayer: Handle setPlaySpeed() like setAudioVolume() if stream is not yet initialized or playing, cached clipped value and set at initGL(..)",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/jogamp/opengl/util/av/GLMediaPlayerImpl.java"
          },
          {
            "editType" : "edit",
            "file" : "src/demos/com/jogamp/opengl/demos/av/MovieSimple.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/jogl/classes/jogamp/opengl/util/av/GLMediaPlayerImpl.java"
        ],
        "commitId" : "a35ca1763c773b4533b9b9850a9842522303ad01",
        "timestamp" : 1697422311000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sven%20gothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "Bug 1472: GLMediaPlayer.getNextTexture(): Fix playSpeed > 1; Handle !hasVideoFrame upfront, simplifying sync-block\u000a\u000aFix playSpeed > 1: dt_v (keep playSpeed factor), allow drop frame on no-frames w/ playSpeed > 2\u000a",
        "date" : "2023-10-16 04:11:51 +0200",
        "id" : "a35ca1763c773b4533b9b9850a9842522303ad01",
        "msg" : "Bug 1472: GLMediaPlayer.getNextTexture(): Fix playSpeed > 1; Handle !hasVideoFrame upfront, simplifying sync-block",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/jogamp/opengl/util/av/GLMediaPlayerImpl.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/jogl/classes/jogamp/opengl/util/av/impl/FFMPEGMediaPlayer.java"
        ],
        "commitId" : "f5ac5dec4bd339da45df3f23e8677c673c985db6",
        "timestamp" : 1697423074000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sven%20gothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "FFMPEGMediaPlayer: Remove unconditional DEBUG output\u000a\u000aLeft behind hacking for AV sync ..\u000a",
        "date" : "2023-10-16 04:24:34 +0200",
        "id" : "f5ac5dec4bd339da45df3f23e8677c673c985db6",
        "msg" : "FFMPEGMediaPlayer: Remove unconditional DEBUG output",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/jogamp/opengl/util/av/impl/FFMPEGMediaPlayer.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/jogl/classes/jogamp/opengl/util/av/GLMediaPlayerImpl.java"
        ],
        "commitId" : "14e3a4640844e7857bb8569379129964ff46cab2",
        "timestamp" : 1697429395000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sven%20gothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "GLMediaPlayerImpl: Don't reset SCR on video_scr_reset or irq'ed rendering w/o video-frame (fixes 'massive' seek'ing)\u000a",
        "date" : "2023-10-16 06:09:55 +0200",
        "id" : "14e3a4640844e7857bb8569379129964ff46cab2",
        "msg" : "GLMediaPlayerImpl: Don't reset SCR on video_scr_reset or irq'ed rendering w/o video-frame (fixes 'massive' seek'ing)",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/jogamp/opengl/util/av/GLMediaPlayerImpl.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/jogl/classes/jogamp/opengl/util/av/GLMediaPlayerImpl.java"
        ],
        "commitId" : "11ee5d827d634cfcb3d9785912a42bfd874976ba",
        "timestamp" : 1697429473000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sven%20gothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "GLMediaPlayerImpl: Use a PTS av_scr_cpy from av_scr for getPTS() avoiding direct user-exposure and potential data-race\u000a",
        "date" : "2023-10-16 06:11:13 +0200",
        "id" : "11ee5d827d634cfcb3d9785912a42bfd874976ba",
        "msg" : "GLMediaPlayerImpl: Use a PTS av_scr_cpy from av_scr for getPTS() avoiding direct user-exposure and potential data-race",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/jogamp/opengl/util/av/GLMediaPlayerImpl.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/jogl/classes/jogamp/opengl/util/av/GLMediaPlayerImpl.java"
        ],
        "commitId" : "b7d41ff2430adad96d546228c99b4a4610a6b752",
        "timestamp" : 1697457383000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sven%20gothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "GLMediaPlayer: Recognize !use_audio when repeating (caching) a video-frame, i.e. ignore audio_queued_ms in such case (Fixes video sync on SCR w/o audio)\u000a",
        "date" : "2023-10-16 13:56:23 +0200",
        "id" : "b7d41ff2430adad96d546228c99b4a4610a6b752",
        "msg" : "GLMediaPlayer: Recognize !use_audio when repeating (caching) a video-frame, i.e. ignore audio_queued_ms in such case (Fixes video sync on SCR w/o audio)",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/jogamp/opengl/util/av/GLMediaPlayerImpl.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/jogl/classes/jogamp/opengl/util/av/GLMediaPlayerImpl.java"
        ],
        "commitId" : "9e63207f07de7ab5805d166be992c7faeebef5cc",
        "timestamp" : 1697458096000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sven%20gothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "GLMediaPlayer: Don't resetAVPTS() on resume(), allowing less AV sync disruption after pause(flush:=false)\u000a",
        "date" : "2023-10-16 14:08:16 +0200",
        "id" : "9e63207f07de7ab5805d166be992c7faeebef5cc",
        "msg" : "GLMediaPlayer: Don't resetAVPTS() on resume(), allowing less AV sync disruption after pause(flush:=false)",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/jogamp/opengl/util/av/GLMediaPlayerImpl.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/jogl/classes/jogamp/opengl/util/av/GLMediaPlayerImpl.java"
        ],
        "commitId" : "3ee35be6e15298bb8366abd850cea01202418e25",
        "timestamp" : 1697458635000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sven%20gothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "GLMediaPlayer.getPerfString(): Don't show audio pts values is no_audio, misleading and wrong info (e.g. on mute)\u000a",
        "date" : "2023-10-16 14:17:15 +0200",
        "id" : "3ee35be6e15298bb8366abd850cea01202418e25",
        "msg" : "GLMediaPlayer.getPerfString(): Don't show audio pts values is no_audio, misleading and wrong info (e.g. on mute)",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/jogamp/opengl/util/av/GLMediaPlayerImpl.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/jogl/classes/jogamp/opengl/DesktopGLDynamicLookupHelper.java",
          "src/oculusvr/classes/com/jogamp/oculusvr/OVRDynamicLibraryBundleInfo.java",
          "src/jogl/classes/com/jogamp/opengl/cg/CgDynamicLibraryBundleInfo.java",
          "src/jogl/classes/jogamp/opengl/util/av/impl/FFMPEGDynamicLibraryBundleInfo.java",
          "src/jogl/classes/jogamp/opengl/GLDynamicLibraryBundleInfo.java"
        ],
        "commitId" : "736b717b5d6d2b2e7ac4066f54495e8e111d0e01",
        "timestamp" : 1700989234000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sven%20gothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "Bug 1479 - NativeLibrary: Add getNativeLibraryPath() returning actual native library path, support throughout DynamicLibraryBundle[Info]\u000a",
        "date" : "2023-11-26 10:00:34 +0100",
        "id" : "736b717b5d6d2b2e7ac4066f54495e8e111d0e01",
        "msg" : "Bug 1479 - NativeLibrary: Add getNativeLibraryPath() returning actual native library path, support throughout DynamicLibraryBundle[Info]",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/oculusvr/classes/com/jogamp/oculusvr/OVRDynamicLibraryBundleInfo.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/jogamp/opengl/GLDynamicLibraryBundleInfo.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/jogamp/opengl/DesktopGLDynamicLookupHelper.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/jogamp/opengl/util/av/impl/FFMPEGDynamicLibraryBundleInfo.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/com/jogamp/opengl/cg/CgDynamicLibraryBundleInfo.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/jogl/native/libav/ffmpeg_impl_template.c"
        ],
        "commitId" : "44ec1a4669a099adadb15e5f7ae6ce75c6afa985",
        "timestamp" : 1701693281000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sven%20gothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "FFMpeg: Fix and clarify 'resend package' and 'continue draining frames' states\u000a",
        "date" : "2023-12-04 13:34:41 +0100",
        "id" : "44ec1a4669a099adadb15e5f7ae6ce75c6afa985",
        "msg" : "FFMpeg: Fix and clarify 'resend package' and 'continue draining frames' states",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/jogl/native/libav/ffmpeg_impl_template.c"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/jogl/native/libav/ffmpeg_impl_template.c"
        ],
        "commitId" : "2e3092d1ed533b819e2b6442e0d9563818599564",
        "timestamp" : 1701693322000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sven%20gothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "FFMpeg: Just be nice and flush GL stream, no finish sync required\u000a",
        "date" : "2023-12-04 13:35:22 +0100",
        "id" : "2e3092d1ed533b819e2b6442e0d9563818599564",
        "msg" : "FFMpeg: Just be nice and flush GL stream, no finish sync required",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/jogl/native/libav/ffmpeg_impl_template.c"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/graphui/classes/com/jogamp/graph/ui/Scene.java"
        ],
        "commitId" : "75955684c15c593133d619ddc38ad5674073de38",
        "timestamp" : 1701693684000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sven%20gothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "GraphUI Scene: Allow attaching GLAutoDrawable manually and adding GLEventListener (API)\u000a",
        "date" : "2023-12-04 13:41:24 +0100",
        "id" : "75955684c15c593133d619ddc38ad5674073de38",
        "msg" : "GraphUI Scene: Allow attaching GLAutoDrawable manually and adding GLEventListener (API)",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/com/jogamp/graph/ui/Scene.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/graphui/classes/com/jogamp/graph/ui/Shape.java"
        ],
        "commitId" : "f8ec81aea5f2b1355e283aba93814c7ea38e67b9",
        "timestamp" : 1702365213000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sven%20gothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "GraphUI Shape: Simplify setIO(..) usage (private)\u000a",
        "date" : "2023-12-12 08:13:33 +0100",
        "id" : "f8ec81aea5f2b1355e283aba93814c7ea38e67b9",
        "msg" : "GraphUI Shape: Simplify setIO(..) usage (private)",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/com/jogamp/graph/ui/Shape.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/graphui/classes/com/jogamp/graph/ui/Shape.java"
        ],
        "commitId" : "b481746f83440b120d0333a07747b7fafcb2295d",
        "timestamp" : 1702365337000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sven%20gothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "GraphUI Shape: Add IO_ACTIVABLE state\u000a",
        "date" : "2023-12-12 08:15:37 +0100",
        "id" : "b481746f83440b120d0333a07747b7fafcb2295d",
        "msg" : "GraphUI Shape: Add IO_ACTIVABLE state",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/com/jogamp/graph/ui/Shape.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/demos/com/jogamp/opengl/demos/graph/ui/UISceneDemo20.java",
          "src/demos/com/jogamp/opengl/demos/graph/ui/UISceneDemo10.java",
          "src/graphui/classes/com/jogamp/graph/ui/Shape.java"
        ],
        "commitId" : "f5978af858b387b5e58cf470c4edcf40ac0cabfd",
        "timestamp" : 1702365744000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sven%20gothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "GraphUI Shape: Use Shape.MoveListener for Shape.onMove(..) providing more details of the translation\u000a",
        "date" : "2023-12-12 08:22:24 +0100",
        "id" : "f5978af858b387b5e58cf470c4edcf40ac0cabfd",
        "msg" : "GraphUI Shape: Use Shape.MoveListener for Shape.onMove(..) providing more details of the translation",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/demos/com/jogamp/opengl/demos/graph/ui/UISceneDemo20.java"
          },
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/com/jogamp/graph/ui/Shape.java"
          },
          {
            "editType" : "edit",
            "file" : "src/demos/com/jogamp/opengl/demos/graph/ui/UISceneDemo10.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/graphui/classes/com/jogamp/graph/ui/Group.java",
          "src/graphui/classes/com/jogamp/graph/ui/Shape.java"
        ],
        "commitId" : "b7f8a70674e36a8c324f91d0f73f89667c3c8300",
        "timestamp" : 1702366063000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sven%20gothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "GraphUI Shape/Group: Group.isActive() also returns true if any child is active; Add isContainer() to avoid rfeflection\u000a",
        "date" : "2023-12-12 08:27:43 +0100",
        "id" : "b7f8a70674e36a8c324f91d0f73f89667c3c8300",
        "msg" : "GraphUI Shape/Group: Group.isActive() also returns true if any child is active; Add isContainer() to avoid rfeflection",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/com/jogamp/graph/ui/Group.java"
          },
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/com/jogamp/graph/ui/Shape.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/graphui/classes/com/jogamp/graph/ui/AnimGroup.java",
          "src/graphui/classes/com/jogamp/graph/ui/Group.java",
          "src/demos/com/jogamp/opengl/demos/graph/ui/UIShapeDemo01.java",
          "src/graphui/classes/com/jogamp/graph/ui/Shape.java",
          "src/demos/com/jogamp/opengl/demos/graph/ui/UITypeDemo01.java",
          "src/demos/com/jogamp/opengl/demos/graph/ui/UISceneDemo20.java",
          "src/graphui/classes/com/jogamp/graph/ui/Scene.java",
          "src/graphui/classes/com/jogamp/graph/ui/shapes/GlyphShape.java"
        ],
        "commitId" : "8b30ea9859fb1a1e9d1a373a0e355748b9a7c8ef",
        "timestamp" : 1702863257000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sven%20gothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "GraphUI Shape: Rename [set|is]{Enabled -> Visible}(..) for clarity\u000a\u000aNote that invisible shapes are still considered for picking/activation.\u000aTo completely mute the shape, issue {@link #setInteractive(boolean)} as well.\u000a",
        "date" : "2023-12-18 02:34:17 +0100",
        "id" : "8b30ea9859fb1a1e9d1a373a0e355748b9a7c8ef",
        "msg" : "GraphUI Shape: Rename [set|is]{Enabled -> Visible}(..) for clarity",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/com/jogamp/graph/ui/Group.java"
          },
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/com/jogamp/graph/ui/Shape.java"
          },
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/com/jogamp/graph/ui/Scene.java"
          },
          {
            "editType" : "edit",
            "file" : "src/demos/com/jogamp/opengl/demos/graph/ui/UIShapeDemo01.java"
          },
          {
            "editType" : "edit",
            "file" : "src/demos/com/jogamp/opengl/demos/graph/ui/UITypeDemo01.java"
          },
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/com/jogamp/graph/ui/shapes/GlyphShape.java"
          },
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/com/jogamp/graph/ui/AnimGroup.java"
          },
          {
            "editType" : "edit",
            "file" : "src/demos/com/jogamp/opengl/demos/graph/ui/UISceneDemo20.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/demos/com/jogamp/opengl/demos/av/MovieSBSStereo.java"
        ],
        "commitId" : "a503f9c06faaa3cf0b9af18ad07e50b02bc19318",
        "timestamp" : 1702863347000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sven%20gothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "MovieSBSStereo: GLMediaPlayer.setTextureMinMagFilter() must be called before initialization\u000a",
        "date" : "2023-12-18 02:35:47 +0100",
        "id" : "a503f9c06faaa3cf0b9af18ad07e50b02bc19318",
        "msg" : "MovieSBSStereo: GLMediaPlayer.setTextureMinMagFilter() must be called before initialization",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/demos/com/jogamp/opengl/demos/av/MovieSBSStereo.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/graphui/classes/com/jogamp/graph/ui/shapes/MediaButton.java"
        ],
        "commitId" : "c5890ee3e6bfa8aa40a55145b3b7e8a9bca344be",
        "timestamp" : 1702863601000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sven%20gothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "GraphUI MediaButton: Disable AA_RENDERING_MASK for GLMediaPlayer color texture (effiency, less artifacts)\u000a\u000a2-pass Graph-AA is not desired for video textures to enhance efficiency and reduce artifacts.\u000a\u000aConsider using 'mPlayer.setTextureMinMagFilter( new int[] { GL.GL_LINEAR, GL.GL_LINEAR } )'\u000aof passed GLMediaPlayer instance to use bilinear filtering for different sizes.\u000a",
        "date" : "2023-12-18 02:40:01 +0100",
        "id" : "c5890ee3e6bfa8aa40a55145b3b7e8a9bca344be",
        "msg" : "GraphUI MediaButton: Disable AA_RENDERING_MASK for GLMediaPlayer color texture (effiency, less artifacts)",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/com/jogamp/graph/ui/shapes/MediaButton.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/demos/com/jogamp/opengl/demos/graph/ui/UISceneDemo20.java"
        ],
        "commitId" : "0fd9d02430082e930fe1058b08f4d80155a007ed",
        "timestamp" : 1702863671000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sven%20gothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "GraphUI UISceneDemo20: Only use ALAudioSink if its context is already created (ready)\u000a",
        "date" : "2023-12-18 02:41:11 +0100",
        "id" : "0fd9d02430082e930fe1058b08f4d80155a007ed",
        "msg" : "GraphUI UISceneDemo20: Only use ALAudioSink if its context is already created (ready)",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/demos/com/jogamp/opengl/demos/graph/ui/UISceneDemo20.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/graphui/classes/com/jogamp/graph/ui/layout/BoxLayout.java",
          "src/graphui/classes/com/jogamp/graph/ui/layout/Alignment.java"
        ],
        "commitId" : "47061b4528953eea0632f04082013bf38f0fe863",
        "timestamp" : 1702863752000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sven%20gothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "GraphUI Alignment: Use Alignment.None instead of default ctor.\u000a",
        "date" : "2023-12-18 02:42:32 +0100",
        "id" : "47061b4528953eea0632f04082013bf38f0fe863",
        "msg" : "GraphUI Alignment: Use Alignment.None instead of default ctor.",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/com/jogamp/graph/ui/layout/BoxLayout.java"
          },
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/com/jogamp/graph/ui/layout/Alignment.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/graphui/classes/com/jogamp/graph/ui/GraphShape.java",
          "src/graphui/classes/com/jogamp/graph/ui/layout/BoxLayout.java",
          "src/graphui/classes/com/jogamp/graph/ui/layout/Gap.java",
          "src/demos/com/jogamp/opengl/demos/graph/ui/UILayoutBox01.java",
          "src/graphui/classes/com/jogamp/graph/ui/layout/Padding.java",
          "src/graphui/classes/com/jogamp/graph/ui/layout/GridLayout.java",
          "src/graphui/classes/com/jogamp/graph/ui/layout/Margin.java"
        ],
        "commitId" : "ad8471401f7ca004df823f7f7436c2cbc4676195",
        "timestamp" : 1702864491000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sven%20gothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "GraphUI Padding, Margin, Gap: Use zero value constant None instead of default ctor\u000a",
        "date" : "2023-12-18 02:54:51 +0100",
        "id" : "ad8471401f7ca004df823f7f7436c2cbc4676195",
        "msg" : "GraphUI Padding, Margin, Gap: Use zero value constant None instead of default ctor",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/com/jogamp/graph/ui/layout/GridLayout.java"
          },
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/com/jogamp/graph/ui/GraphShape.java"
          },
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/com/jogamp/graph/ui/layout/Padding.java"
          },
          {
            "editType" : "edit",
            "file" : "src/demos/com/jogamp/opengl/demos/graph/ui/UILayoutBox01.java"
          },
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/com/jogamp/graph/ui/layout/Gap.java"
          },
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/com/jogamp/graph/ui/layout/BoxLayout.java"
          },
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/com/jogamp/graph/ui/layout/Margin.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/jogl/classes/com/jogamp/graph/curve/Region.java"
        ],
        "commitId" : "d5701c831643b99a0eb76883b0fc392641b6404d",
        "timestamp" : 1702864531000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sven%20gothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "Graph Region: Edit API doc for AA_RENDERING_MASK\u000a",
        "date" : "2023-12-18 02:55:31 +0100",
        "id" : "d5701c831643b99a0eb76883b0fc392641b6404d",
        "msg" : "Graph Region: Edit API doc for AA_RENDERING_MASK",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/com/jogamp/graph/curve/Region.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/graphui/classes/com/jogamp/graph/ui/Group.java",
          "src/graphui/classes/com/jogamp/graph/ui/Shape.java"
        ],
        "commitId" : "d0e77a9d3fee687011d0ff0d610f49262cc2834f",
        "timestamp" : 1702865153000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sven%20gothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "GraphUI Shape: Rename is{Container -> Group}(), denoting a group only\u000a",
        "date" : "2023-12-18 03:05:53 +0100",
        "id" : "d0e77a9d3fee687011d0ff0d610f49262cc2834f",
        "msg" : "GraphUI Shape: Rename is{Container -> Group}(), denoting a group only",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/com/jogamp/graph/ui/Shape.java"
          },
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/com/jogamp/graph/ui/Group.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/graphui/classes/com/jogamp/graph/ui/Group.java",
          "src/graphui/classes/com/jogamp/graph/ui/Scene.java"
        ],
        "commitId" : "7ae9dae12553f2f8f0e6dcd494f972a50c62cb1f",
        "timestamp" : 1702865971000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sven%20gothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "GraphUI Container: Cleanup or Group/Scene add*/remove* methods\u000a",
        "date" : "2023-12-18 03:19:31 +0100",
        "id" : "7ae9dae12553f2f8f0e6dcd494f972a50c62cb1f",
        "msg" : "GraphUI Container: Cleanup or Group/Scene add*/remove* methods",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/com/jogamp/graph/ui/Scene.java"
          },
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/com/jogamp/graph/ui/Group.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/jogl/classes/jogamp/graph/curve/opengl/shader/curverenderer01-single.vp"
        ],
        "commitId" : "e31129b8bfd1d53fcd709b1c6f58f45de928062e",
        "timestamp" : 1702866085000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sven%20gothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "Graph Shader: Fix 'curverenderer01-single.vp' aligning w/ 'curverenderer01-pass1.vp' (commit 297c48f4fefd1ab59800524ea5f0dd56684d6786)\u000a",
        "date" : "2023-12-18 03:21:25 +0100",
        "id" : "e31129b8bfd1d53fcd709b1c6f58f45de928062e",
        "msg" : "Graph Shader: Fix 'curverenderer01-single.vp' aligning w/ 'curverenderer01-pass1.vp' (commit 297c48f4fefd1ab59800524ea5f0dd56684d6786)",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/jogamp/graph/curve/opengl/shader/curverenderer01-single.vp"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/graphui/classes/com/jogamp/graph/ui/Shape.java"
        ],
        "commitId" : "cf924e3ff144408ea175c8aeac0819bd1a05467d",
        "timestamp" : 1702866564000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sven%20gothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "GraphUI Shape: Fix Z{Ascending,Descending}Comparator using and exposing getAdjustedZ()\u000a\u000agetAdjustedZ() simply returns `position.z() * getScale().z() + zOffset`,\u000ai.e. with added zOffset reflecting activation status (renders shape/group on top).\u000a",
        "date" : "2023-12-18 03:29:24 +0100",
        "id" : "cf924e3ff144408ea175c8aeac0819bd1a05467d",
        "msg" : "GraphUI Shape: Fix Z{Ascending,Descending}Comparator using and exposing getAdjustedZ()",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/com/jogamp/graph/ui/Shape.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/graphui/classes/com/jogamp/graph/ui/Group.java",
          "src/graphui/classes/com/jogamp/graph/ui/Shape.java"
        ],
        "commitId" : "a4fc84cba410e7e7082e8fd097cb0185d0aac1a2",
        "timestamp" : 1702868019000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sven%20gothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "Bug 805: GraphUI Group: Add 'widget-mode' used to utilize a group as one visible UI widget element (activation, visibility)\u000a\u000aEnabled widget behavior for a group causes\u000a- the whole group to be shown on top on (mouse over) activation of one of its elements via getAdjustedZ()\u000a- this group's onActivation(Listener) to handle all it's elements activation events\u000a- isActive() of this group and its sub-groups to return true if one of its elements is active\u000a",
        "date" : "2023-12-18 03:53:39 +0100",
        "id" : "a4fc84cba410e7e7082e8fd097cb0185d0aac1a2",
        "msg" : "Bug 805: GraphUI Group: Add 'widget-mode' used to utilize a group as one visible UI widget element (activation, visibility)",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/com/jogamp/graph/ui/Group.java"
          },
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/com/jogamp/graph/ui/Shape.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/graphui/classes/com/jogamp/graph/ui/Scene.java",
          "src/graphui/classes/com/jogamp/graph/ui/Shape.java"
        ],
        "commitId" : "121260d2b7bc4f57a16ca53ed1b08082d7977bbe",
        "timestamp" : 1702870297000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sven%20gothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "Bug 805: GraphUI Scene/Shape Pick-Active/Interaction: Pick shall complete traversion for most inner interactive shape; ...\u000a\u000aPick shall complete traversion for most inner interactive shape\u000a- Shape::dispatchMouseEvent() is only invoked for interactive shapes, impl. simplified.\u000a\u000a- Remove 'Scene::dispatchMouseEvent(..)', use 'Scene::dispatchMouseEventPickShape(..)' for given use cases\u000a\u000a- Scene::dispatchMouseEventForShape(..) used for mouseDragged() only,\u000a  i.e. using activeShape.\u000a\u000a+++\u000a\u000aThis allows a 'group widget' being used, allowing to click on inner shapes like a button.\u000a",
        "date" : "2023-12-18 04:31:37 +0100",
        "id" : "121260d2b7bc4f57a16ca53ed1b08082d7977bbe",
        "msg" : "Bug 805: GraphUI Scene/Shape Pick-Active/Interaction: Pick shall complete traversion for most inner interactive shape; ...",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/com/jogamp/graph/ui/Shape.java"
          },
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/com/jogamp/graph/ui/Scene.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/jogl/classes/jogamp/opengl/util/av/impl/FFMPEGMediaPlayer.java",
          "src/jogl/classes/com/jogamp/opengl/util/av/GLMediaPlayer.java",
          "src/jogl/classes/jogamp/opengl/android/av/AndroidGLMediaPlayerAPI14.java",
          "src/jogl/classes/jogamp/opengl/util/av/impl/FFMPEGDynamicLibraryBundleInfo.java",
          "src/jogl/classes/jogamp/opengl/util/av/GLMediaPlayerImpl.java",
          "src/jogl/classes/jogamp/opengl/util/av/NullGLMediaPlayer.java"
        ],
        "commitId" : "d99c2d8b28470d335ab5b30124ef8b0607b3b90f",
        "timestamp" : 1702874942000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sven%20gothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "GLMediaPlayer: Add printNativeInfo(..) exposing used native library information (if any), FFMPEG* utilizes NativeLibrary.get[Native]LibraryPath()\u000a",
        "date" : "2023-12-18 05:49:02 +0100",
        "id" : "d99c2d8b28470d335ab5b30124ef8b0607b3b90f",
        "msg" : "GLMediaPlayer: Add printNativeInfo(..) exposing used native library information (if any), FFMPEG* utilizes NativeLibrary.get[Native]LibraryPath()",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/com/jogamp/opengl/util/av/GLMediaPlayer.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/jogamp/opengl/util/av/impl/FFMPEGMediaPlayer.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/jogamp/opengl/util/av/GLMediaPlayerImpl.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/jogamp/opengl/android/av/AndroidGLMediaPlayerAPI14.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/jogamp/opengl/util/av/NullGLMediaPlayer.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/jogamp/opengl/util/av/impl/FFMPEGDynamicLibraryBundleInfo.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/graphui/classes/com/jogamp/graph/ui/Group.java",
          "src/graphui/classes/com/jogamp/graph/ui/Container.java",
          "src/graphui/classes/com/jogamp/graph/ui/Shape.java"
        ],
        "commitId" : "47f5e083ba79ac02590a452149e31bf433109346",
        "timestamp" : 1702887104000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sven%20gothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "Bug 805: GraphUI: Add Group.replaceShape(..) and Shape.getParent()\u000a\u000aGroup.replaceShape(..) allows replacing a shape w/o disturbing a layout, e.g. to zoom one element\u000aby taking it out of a grid-group and placing it on-top of the Scene while using a placeholder in the grid\u000auntil returned.\u000a\u000aShape.getParent() - depending on use-case (w/o DAG) - allows access and control of a shape's Group.\u000a",
        "date" : "2023-12-18 09:11:44 +0100",
        "id" : "47f5e083ba79ac02590a452149e31bf433109346",
        "msg" : "Bug 805: GraphUI: Add Group.replaceShape(..) and Shape.getParent()",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/com/jogamp/graph/ui/Group.java"
          },
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/com/jogamp/graph/ui/Container.java"
          },
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/com/jogamp/graph/ui/Shape.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "make/scripts/tests-x64.sh",
          "src/demos/com/jogamp/opengl/demos/graph/ui/UIMediaGrid00.java",
          "src/demos/com/jogamp/opengl/demos/graph/ui/UIMediaGrid01.java",
          "make/scripts/tests.sh",
          "src/graphui/classes/com/jogamp/graph/ui/widgets/MediaUI01.java"
        ],
        "commitId" : "c306094e8dbba3c9e77953daaf8054731f327923",
        "timestamp" : 1702889250000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sven%20gothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "Bug 805: GraphUI: Add MediaUI01 widtget (MediaButton w/ full feature controls), used in demos UIMediaGrid0[01]\u000a",
        "date" : "2023-12-18 09:47:30 +0100",
        "id" : "c306094e8dbba3c9e77953daaf8054731f327923",
        "msg" : "Bug 805: GraphUI: Add MediaUI01 widtget (MediaButton w/ full feature controls), used in demos UIMediaGrid0[01]",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "make/scripts/tests.sh"
          },
          {
            "editType" : "edit",
            "file" : "src/demos/com/jogamp/opengl/demos/graph/ui/UIMediaGrid01.java"
          },
          {
            "editType" : "edit",
            "file" : "src/demos/com/jogamp/opengl/demos/graph/ui/UIMediaGrid00.java"
          },
          {
            "editType" : "add",
            "file" : "src/graphui/classes/com/jogamp/graph/ui/widgets/MediaUI01.java"
          },
          {
            "editType" : "edit",
            "file" : "make/scripts/tests-x64.sh"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/jogl/classes/com/jogamp/opengl/util/av/GLMediaPlayer.java"
        ],
        "commitId" : "3ea26f16a0ea976b37e8661fdc9ed9ddaa1e985e",
        "timestamp" : 1702889433000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sven%20gothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "GLMediaPlayer: TEXTURE_COUNT_DEFAULT 4 -> 3 as tested via UIMediaGrid01, usable w/ fix for Bug 1472 (Enhance A/V Sync)\u000a",
        "date" : "2023-12-18 09:50:33 +0100",
        "id" : "3ea26f16a0ea976b37e8661fdc9ed9ddaa1e985e",
        "msg" : "GLMediaPlayer: TEXTURE_COUNT_DEFAULT 4 -> 3 as tested via UIMediaGrid01, usable w/ fix for Bug 1472 (Enhance A/V Sync)",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/com/jogamp/opengl/util/av/GLMediaPlayer.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/jogl/classes/jogamp/opengl/util/av/impl/OMXGLMediaPlayer.java"
        ],
        "commitId" : "9dbfdcd7524b2bbd5eecb7fd45bbc544e24724c5",
        "timestamp" : 1702889479000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sven%20gothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "OMXGLMediaPlayer: Add 'printNativeInfo(..)' - completes commit d99c2d8b28470d335ab5b30124ef8b0607b3b90f\u000a",
        "date" : "2023-12-18 09:51:19 +0100",
        "id" : "9dbfdcd7524b2bbd5eecb7fd45bbc544e24724c5",
        "msg" : "OMXGLMediaPlayer: Add 'printNativeInfo(..)' - completes commit d99c2d8b28470d335ab5b30124ef8b0607b3b90f",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/jogamp/opengl/util/av/impl/OMXGLMediaPlayer.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/demos/com/jogamp/opengl/demos/graph/ui/UIMediaGrid01.java",
          "src/demos/com/jogamp/opengl/demos/graph/ui/UIMediaGrid00.java"
        ],
        "commitId" : "8e8507e93dc603ece8417e6931d58dbbd6042201",
        "timestamp" : 1702891645000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sven%20gothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "UIMediaGrid0{01}: Minor cleanup: Drop unused local Font\u000a",
        "date" : "2023-12-18 10:27:25 +0100",
        "id" : "8e8507e93dc603ece8417e6931d58dbbd6042201",
        "msg" : "UIMediaGrid0{01}: Minor cleanup: Drop unused local Font",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/demos/com/jogamp/opengl/demos/graph/ui/UIMediaGrid01.java"
          },
          {
            "editType" : "edit",
            "file" : "src/demos/com/jogamp/opengl/demos/graph/ui/UIMediaGrid00.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/graphui/classes/com/jogamp/graph/ui/Shape.java"
        ],
        "commitId" : "1bf9f42690880413e8d58a5525ec76605bfdfe83",
        "timestamp" : 1703003399000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sven%20gothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "GraphUI Shape.move*(): Don't notify MotionListener on programmatic move.\u000a",
        "date" : "2023-12-19 17:29:59 +0100",
        "id" : "1bf9f42690880413e8d58a5525ec76605bfdfe83",
        "msg" : "GraphUI Shape.move*(): Don't notify MotionListener on programmatic move.",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/com/jogamp/graph/ui/Shape.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/graphui/classes/com/jogamp/graph/ui/Shape.java"
        ],
        "commitId" : "53c2891909941d0261c15e5679bb108f3c70fb82",
        "timestamp" : 1703003471000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sven%20gothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "GraphUI Shape: setParent() pp -> protected, allow to override setName()\u000a",
        "date" : "2023-12-19 17:31:11 +0100",
        "id" : "53c2891909941d0261c15e5679bb108f3c70fb82",
        "msg" : "GraphUI Shape: setParent() pp -> protected, allow to override setName()",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/com/jogamp/graph/ui/Shape.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/graphui/classes/com/jogamp/graph/ui/Shape.java"
        ],
        "commitId" : "b76f3c048fb93e7b2c66d7aca4f88f3cbf4b6046",
        "timestamp" : 1703003528000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sven%20gothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "GraphUI Shape: Unify 'resetState()' for clear and destroy, refine API doc\u000a",
        "date" : "2023-12-19 17:32:08 +0100",
        "id" : "b76f3c048fb93e7b2c66d7aca4f88f3cbf4b6046",
        "msg" : "GraphUI Shape: Unify 'resetState()' for clear and destroy, refine API doc",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/com/jogamp/graph/ui/Shape.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/graphui/classes/com/jogamp/graph/ui/Group.java"
        ],
        "commitId" : "0944e120702c8bbaa562b817d387651addb11b86",
        "timestamp" : 1703003615000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sven%20gothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "GraphUI Group: Allow override of clearImpl0() and destroyImpl0()\u000a",
        "date" : "2023-12-19 17:33:35 +0100",
        "id" : "0944e120702c8bbaa562b817d387651addb11b86",
        "msg" : "GraphUI Group: Allow override of clearImpl0() and destroyImpl0()",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/com/jogamp/graph/ui/Group.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/graphui/classes/com/jogamp/graph/ui/shapes/Rectangle.java"
        ],
        "commitId" : "eb99bfc27f9f49387cbb08471debcd4d61e4f745",
        "timestamp" : 1703003731000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sven%20gothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "GraphUI Shape Rectangle: Draw simple filled rect if lineWidth==0, drop AA_RENDERING_MASK from renderModes (not necessary for a rect)\u000a",
        "date" : "2023-12-19 17:35:31 +0100",
        "id" : "eb99bfc27f9f49387cbb08471debcd4d61e4f745",
        "msg" : "GraphUI Shape Rectangle: Draw simple filled rect if lineWidth==0, drop AA_RENDERING_MASK from renderModes (not necessary for a rect)",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/com/jogamp/graph/ui/shapes/Rectangle.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/graphui/classes/com/jogamp/graph/ui/widgets/MediaPlayer.java",
          "src/demos/com/jogamp/opengl/demos/graph/ui/UIMediaGrid00.java",
          "src/graphui/classes/com/jogamp/graph/ui/widgets/RangeSlider.java",
          "src/graphui/classes/com/jogamp/graph/ui/widgets/Widget.java",
          "src/demos/com/jogamp/opengl/demos/graph/ui/UIMediaGrid01.java",
          "src/graphui/classes/com/jogamp/graph/ui/widgets/MediaUI01.java"
        ],
        "commitId" : "feb3d34be097bcbef5ebc40342b405a832ac581f",
        "timestamp" : 1703004017000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sven%20gothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "Bug 805: GraphUI: Add Widget 'marker' (a Group), derived by {MediaUI01 -> MediaPlayer} and new RangeSlider\u000a\u000a- A widget specifies specific UI semantics including individual controls.\u000a- Being a {@link Group}, implementations provide shape(s) and its instance can be added to the user's scene.\u000a- Due to the specific nature of widgets,\u000a  individual controls/listener may be provided with semantic values.\u000a\u000a+++\u000a\u000aMediaPlayer exposes a RangeSlider for current position (view and control).\u000a",
        "date" : "2023-12-19 17:40:17 +0100",
        "id" : "feb3d34be097bcbef5ebc40342b405a832ac581f",
        "msg" : "Bug 805: GraphUI: Add Widget 'marker' (a Group), derived by {MediaUI01 -> MediaPlayer} and new RangeSlider",
        "paths" : [
          {
            "editType" : "add",
            "file" : "src/graphui/classes/com/jogamp/graph/ui/widgets/Widget.java"
          },
          {
            "editType" : "edit",
            "file" : "src/demos/com/jogamp/opengl/demos/graph/ui/UIMediaGrid01.java"
          },
          {
            "editType" : "delete",
            "file" : "src/graphui/classes/com/jogamp/graph/ui/widgets/MediaUI01.java"
          },
          {
            "editType" : "add",
            "file" : "src/graphui/classes/com/jogamp/graph/ui/widgets/MediaPlayer.java"
          },
          {
            "editType" : "add",
            "file" : "src/graphui/classes/com/jogamp/graph/ui/widgets/RangeSlider.java"
          },
          {
            "editType" : "edit",
            "file" : "src/demos/com/jogamp/opengl/demos/graph/ui/UIMediaGrid00.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/graphui/classes/com/jogamp/graph/ui/Scene.java",
          "src/graphui/classes/com/jogamp/graph/ui/Shape.java"
        ],
        "commitId" : "a782f343aeecbfdb640198bcc73794a90f63730d",
        "timestamp" : 1703430578000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sven%20gothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "GraphUI Scene/Shape: Add KeyListener for activeShape\u000a",
        "date" : "2023-12-24 16:09:38 +0100",
        "id" : "a782f343aeecbfdb640198bcc73794a90f63730d",
        "msg" : "GraphUI Scene/Shape: Add KeyListener for activeShape",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/com/jogamp/graph/ui/Scene.java"
          },
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/com/jogamp/graph/ui/Shape.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/graphui/classes/com/jogamp/graph/ui/Shape.java"
        ],
        "commitId" : "fdedf6cff64efc1d7ab554c2bf084392a099ef0f",
        "timestamp" : 1703430609000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sven%20gothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "GraphUI Shape: Allow overriding of setColor(..) and setPressedColorMod(..)\u000a",
        "date" : "2023-12-24 16:10:09 +0100",
        "id" : "fdedf6cff64efc1d7ab554c2bf084392a099ef0f",
        "msg" : "GraphUI Shape: Allow overriding of setColor(..) and setPressedColorMod(..)",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/com/jogamp/graph/ui/Shape.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/graphui/classes/com/jogamp/graph/ui/widgets/MediaPlayer.java",
          "src/demos/com/jogamp/opengl/demos/graph/ui/UIMediaGrid01.java",
          "src/demos/com/jogamp/opengl/demos/graph/ui/UIMediaGrid00.java"
        ],
        "commitId" : "b5e6a852451f2a78a1783ca8fbd704005fbafd07",
        "timestamp" : 1703441461000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sven%20gothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "GraphUI MediaPlayer Widget: Issue playStream(..) and setTextureUnit(..) by caller, reducing specification\u000a",
        "date" : "2023-12-24 19:11:01 +0100",
        "id" : "b5e6a852451f2a78a1783ca8fbd704005fbafd07",
        "msg" : "GraphUI MediaPlayer Widget: Issue playStream(..) and setTextureUnit(..) by caller, reducing specification",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/com/jogamp/graph/ui/widgets/MediaPlayer.java"
          },
          {
            "editType" : "edit",
            "file" : "src/demos/com/jogamp/opengl/demos/graph/ui/UIMediaGrid00.java"
          },
          {
            "editType" : "edit",
            "file" : "src/demos/com/jogamp/opengl/demos/graph/ui/UIMediaGrid01.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/graphui/classes/com/jogamp/graph/ui/widgets/MediaPlayer.java",
          "src/demos/com/jogamp/opengl/demos/graph/ui/FontView01.java",
          "src/graphui/classes/com/jogamp/graph/ui/widgets/RangeSlider.java",
          "make/scripts/tests.sh"
        ],
        "commitId" : "c6e39c6e313a34688ca0164d7a34b6465e92396f",
        "timestamp" : 1703441572000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sven%20gothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "GraphUI RangeSlider Widget: Add rectangular page-sized knob mode using a 'page size' of covered view.  Resolve color-setup.\u000a\u000aTested with FontView01\u000a",
        "date" : "2023-12-24 19:12:52 +0100",
        "id" : "c6e39c6e313a34688ca0164d7a34b6465e92396f",
        "msg" : "GraphUI RangeSlider Widget: Add rectangular page-sized knob mode using a 'page size' of covered view.  Resolve color-setup.",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/demos/com/jogamp/opengl/demos/graph/ui/FontView01.java"
          },
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/com/jogamp/graph/ui/widgets/MediaPlayer.java"
          },
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/com/jogamp/graph/ui/widgets/RangeSlider.java"
          },
          {
            "editType" : "edit",
            "file" : "make/scripts/tests.sh"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/jogl/classes/com/jogamp/opengl/util/av/GLMediaPlayer.java",
          "src/jogl/native/libav/ffmpeg_impl_template.c",
          "src/jogl/classes/jogamp/opengl/util/av/impl/FFMPEGv0600Natives.java",
          "src/jogl/classes/jogamp/opengl/util/av/impl/FFMPEGDynamicLibraryBundleInfo.java",
          "src/jogl/classes/jogamp/opengl/util/av/GLMediaPlayerImpl.java",
          "src/jogl/classes/jogamp/opengl/util/av/impl/FFMPEGv0400Natives.java",
          "src/jogl/classes/jogamp/opengl/util/av/impl/FFMPEGMediaPlayer.java",
          "src/graphui/classes/com/jogamp/graph/ui/widgets/MediaPlayer.java",
          "src/jogl/classes/jogamp/opengl/util/av/impl/FFMPEGNatives.java",
          "src/jogl/classes/jogamp/opengl/util/av/impl/FFMPEGv0500Natives.java"
        ],
        "commitId" : "68b2dad19bd6d84f18b22f967ce320b448e8a270",
        "timestamp" : 1703967496000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sven%20gothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "GLMediaPlayer/FFMPEGMediaPlayer: Add chapter metadata support and use com.jogamp.common.av.PTS.millisToTimeStr(..)\u000a\u000aChapter metadata is now supported via our FFMPEGMediaPlayer implementation.\u000a\u000aAdded public method: 'Chapters[] GLMediaPlayer.getChapters()'\u000a",
        "date" : "2023-12-30 21:18:16 +0100",
        "id" : "68b2dad19bd6d84f18b22f967ce320b448e8a270",
        "msg" : "GLMediaPlayer/FFMPEGMediaPlayer: Add chapter metadata support and use com.jogamp.common.av.PTS.millisToTimeStr(..)",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/jogamp/opengl/util/av/impl/FFMPEGNatives.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/jogamp/opengl/util/av/impl/FFMPEGv0600Natives.java"
          },
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/com/jogamp/graph/ui/widgets/MediaPlayer.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/jogamp/opengl/util/av/impl/FFMPEGv0400Natives.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/jogamp/opengl/util/av/impl/FFMPEGv0500Natives.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/com/jogamp/opengl/util/av/GLMediaPlayer.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/native/libav/ffmpeg_impl_template.c"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/jogamp/opengl/util/av/impl/FFMPEGMediaPlayer.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/jogamp/opengl/util/av/impl/FFMPEGDynamicLibraryBundleInfo.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/jogamp/opengl/util/av/GLMediaPlayerImpl.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/graphui/classes/com/jogamp/graph/ui/shapes/MediaButton.java"
        ],
        "commitId" : "f89bfe3d830a2b489e8b2488d07677ee057124f0",
        "timestamp" : 1703967526000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sven%20gothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "GraphUI MediaButton: Add clearImpl(..), stopping and rewinding stream\u000a",
        "date" : "2023-12-30 21:18:46 +0100",
        "id" : "f89bfe3d830a2b489e8b2488d07677ee057124f0",
        "msg" : "GraphUI MediaButton: Add clearImpl(..), stopping and rewinding stream",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/com/jogamp/graph/ui/shapes/MediaButton.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/graphui/classes/com/jogamp/graph/ui/Group.java"
        ],
        "commitId" : "5ad98721c2f868aca0567e2467b5dfb0c071c490",
        "timestamp" : 1703982269000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sven%20gothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "GraphUI Group: Fix layout w/ zero shapes (empty), i.e. set AABBox to zero\u000a",
        "date" : "2023-12-31 01:24:29 +0100",
        "id" : "5ad98721c2f868aca0567e2467b5dfb0c071c490",
        "msg" : "GraphUI Group: Fix layout w/ zero shapes (empty), i.e. set AABBox to zero",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/com/jogamp/graph/ui/Group.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/graphui/classes/com/jogamp/graph/ui/widgets/MediaPlayer.java",
          "src/demos/com/jogamp/opengl/demos/graph/ui/FontView01.java",
          "src/graphui/classes/com/jogamp/graph/ui/widgets/RangeSlider.java"
        ],
        "commitId" : "6af37910eac365ed2b5ac957276337fe71f7e56b",
        "timestamp" : 1703982473000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sven%20gothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "GraphUI RangeSlider: Add rectangular marks (e.g. for chapters, see MediaPlayer), by simply overlay marks on bar\u000a\u000aKnob color defaults to 0.80f, 0.80f, 0.80f, 0.7f, i.e. light-mode better matching MediaPlayer use-case.\u000a",
        "date" : "2023-12-31 01:27:53 +0100",
        "id" : "6af37910eac365ed2b5ac957276337fe71f7e56b",
        "msg" : "GraphUI RangeSlider: Add rectangular marks (e.g. for chapters, see MediaPlayer), by simply overlay marks on bar",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/demos/com/jogamp/opengl/demos/graph/ui/FontView01.java"
          },
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/com/jogamp/graph/ui/widgets/RangeSlider.java"
          },
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/com/jogamp/graph/ui/widgets/MediaPlayer.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/graphui/classes/com/jogamp/graph/ui/Group.java",
          "src/graphui/classes/com/jogamp/graph/ui/GraphShape.java",
          "src/graphui/classes/com/jogamp/graph/ui/Container.java",
          "src/graphui/classes/com/jogamp/graph/ui/Shape.java",
          "src/demos/com/jogamp/opengl/demos/util/CommandlineOptions.java",
          "src/demos/com/jogamp/opengl/demos/graph/ui/UISceneDemo20.java",
          "src/graphui/classes/com/jogamp/graph/ui/Scene.java",
          "src/demos/com/jogamp/opengl/demos/graph/ui/UISceneDemo03.java"
        ],
        "commitId" : "259fce6ca0fa4fe92e6dc2266d442c62723eb73c",
        "timestamp" : 1704599041000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sgothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "GraphUI Cleanup: Simplify Shape.draw*() and Container.{add,remove*}Shape[s](); Remove Scene.setDebugBorderBox()\u000a\u000aSimplify Shape/Scene\u000a- Split scene.display()/shape.drawImpl0() and scene.displayGLSelect()/shape.drawToSelectImpl0()\u000a\u000aSimplify Container (Scene/Group)\u000a- {add,remove*}Shape[s](), i.e. drop unusual removeShape*() and simplify implementation\u000a\u000aScene\u000a- Remove setDebugBorderBox()\u000a",
        "date" : "2024-01-07 04:44:01 +0100",
        "id" : "259fce6ca0fa4fe92e6dc2266d442c62723eb73c",
        "msg" : "GraphUI Cleanup: Simplify Shape.draw*() and Container.{add,remove*}Shape[s](); Remove Scene.setDebugBorderBox()",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/com/jogamp/graph/ui/Group.java"
          },
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/com/jogamp/graph/ui/Scene.java"
          },
          {
            "editType" : "edit",
            "file" : "src/demos/com/jogamp/opengl/demos/util/CommandlineOptions.java"
          },
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/com/jogamp/graph/ui/GraphShape.java"
          },
          {
            "editType" : "edit",
            "file" : "src/demos/com/jogamp/opengl/demos/graph/ui/UISceneDemo03.java"
          },
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/com/jogamp/graph/ui/Shape.java"
          },
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/com/jogamp/graph/ui/Container.java"
          },
          {
            "editType" : "edit",
            "file" : "src/demos/com/jogamp/opengl/demos/graph/ui/UISceneDemo20.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/graphui/classes/com/jogamp/graph/ui/widgets/MediaPlayer.java",
          "src/graphui/classes/com/jogamp/graph/ui/Group.java",
          "src/graphui/classes/com/jogamp/graph/ui/Shape.java"
        ],
        "commitId" : "79eba1f0e450a75f01505ca5ed5817ec481491a8",
        "timestamp" : 1704599296000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sgothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "GraphUI Shape: Maintain multiple Activation Listener (ArrayList instead of single instance)\u000a\u000aThis allows listenting to activation of Group members, while Group is set to widget-mode.\u000aFor the latter, Group adds a forward listener to itself.\u000a",
        "date" : "2024-01-07 04:48:16 +0100",
        "id" : "79eba1f0e450a75f01505ca5ed5817ec481491a8",
        "msg" : "GraphUI Shape: Maintain multiple Activation Listener (ArrayList instead of single instance)",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/com/jogamp/graph/ui/widgets/MediaPlayer.java"
          },
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/com/jogamp/graph/ui/Shape.java"
          },
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/com/jogamp/graph/ui/Group.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/jogl/classes/jogamp/opengl/util/av/impl/FFMPEGMediaPlayer.java",
          "src/graphui/classes/com/jogamp/graph/ui/widgets/MediaPlayer.java",
          "src/jogl/classes/com/jogamp/opengl/util/av/GLMediaPlayer.java",
          "src/graphui/classes/com/jogamp/graph/ui/shapes/MediaButton.java",
          "src/jogl/classes/jogamp/opengl/util/av/GLMediaPlayerImpl.java"
        ],
        "commitId" : "e9e1732dc6691cb72920f25b1fb8431e94c7b561",
        "timestamp" : 1704599391000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sgothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "GraphUI MediaPlayer / GLMediaPlayer: Add current chapter-title to info-field\u000a",
        "date" : "2024-01-07 04:49:51 +0100",
        "id" : "e9e1732dc6691cb72920f25b1fb8431e94c7b561",
        "msg" : "GraphUI MediaPlayer / GLMediaPlayer: Add current chapter-title to info-field",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/com/jogamp/graph/ui/widgets/MediaPlayer.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/jogamp/opengl/util/av/impl/FFMPEGMediaPlayer.java"
          },
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/com/jogamp/graph/ui/shapes/MediaButton.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/jogamp/opengl/util/av/GLMediaPlayerImpl.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/com/jogamp/opengl/util/av/GLMediaPlayer.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/graphui/classes/com/jogamp/graph/ui/widgets/RangeSlider.java"
        ],
        "commitId" : "cf0c60eaabd7334c0ae2099a1f999032cddf14dd",
        "timestamp" : 1704599477000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sgothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "GraphUI RangeSlider.addMark(): Return the mark-shape and use double itemLen (in sliding direction) for better visibility\u000a",
        "date" : "2024-01-07 04:51:17 +0100",
        "id" : "cf0c60eaabd7334c0ae2099a1f999032cddf14dd",
        "msg" : "GraphUI RangeSlider.addMark(): Return the mark-shape and use double itemLen (in sliding direction) for better visibility",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/com/jogamp/graph/ui/widgets/RangeSlider.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/graphui/classes/com/jogamp/graph/ui/TooltipText.java",
          "src/graphui/classes/com/jogamp/graph/ui/widgets/MediaPlayer.java",
          "src/graphui/classes/com/jogamp/graph/ui/Tooltip.java",
          "make/scripts/tests.sh",
          "src/graphui/classes/com/jogamp/graph/ui/Scene.java",
          "src/graphui/classes/com/jogamp/graph/ui/Shape.java"
        ],
        "commitId" : "fa973b03fc1d6af5696cee27e1824c45da3150b4",
        "timestamp" : 1704599788000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sgothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "GraphUI Shape: Enable Tooltip (currently text only) to be displayed after delay w/o mouse-move (1s)\u000a\u000aFor efficiency, all Tooltip instances is hooked to Scene via Shape as well as its\u000asingleton pop-up HUD tip after delay and no mouse move.\u000a\u000aTooltipText is a simple text Button implementation,\u000abut other more fancy HUD tips can be implemented.\u000a\u000aShape adds\u000a- 'public Tooltip setToolTip(final CharSequence text, final Font font, final float scaleY, final Scene scene)'\u000a\u000aDemoed within MediaPlayer widget.\u000a",
        "date" : "2024-01-07 04:56:28 +0100",
        "id" : "fa973b03fc1d6af5696cee27e1824c45da3150b4",
        "msg" : "GraphUI Shape: Enable Tooltip (currently text only) to be displayed after delay w/o mouse-move (1s)",
        "paths" : [
          {
            "editType" : "add",
            "file" : "src/graphui/classes/com/jogamp/graph/ui/Tooltip.java"
          },
          {
            "editType" : "edit",
            "file" : "make/scripts/tests.sh"
          },
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/com/jogamp/graph/ui/Scene.java"
          },
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/com/jogamp/graph/ui/Shape.java"
          },
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/com/jogamp/graph/ui/widgets/MediaPlayer.java"
          },
          {
            "editType" : "add",
            "file" : "src/graphui/classes/com/jogamp/graph/ui/TooltipText.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/graphui/classes/com/jogamp/graph/ui/Tooltip.java",
          "src/graphui/classes/com/jogamp/graph/ui/Scene.java",
          "src/graphui/classes/com/jogamp/graph/ui/Shape.java"
        ],
        "commitId" : "d80762bdaf79a852cde2391479bb066968ae573c",
        "timestamp" : 1704629142000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sgothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "GraphUI Shape: Ease Tooltip managment via Scene: Only started Tooltip is required to tick(), drop List<Tooltip>\u000a",
        "date" : "2024-01-07 13:05:42 +0100",
        "id" : "d80762bdaf79a852cde2391479bb066968ae573c",
        "msg" : "GraphUI Shape: Ease Tooltip managment via Scene: Only started Tooltip is required to tick(), drop List<Tooltip>",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/com/jogamp/graph/ui/Tooltip.java"
          },
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/com/jogamp/graph/ui/Scene.java"
          },
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/com/jogamp/graph/ui/Shape.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/demos/com/jogamp/opengl/demos/graph/ui/util/Tooltips.java",
          "src/graphui/classes/com/jogamp/graph/ui/shapes/Button.java",
          "src/graphui/classes/com/jogamp/graph/ui/widgets/MediaPlayer.java",
          "src/demos/com/jogamp/opengl/demos/graph/ui/UISceneDemo20.java",
          "src/demos/com/jogamp/opengl/demos/graph/ui/UIShapeDemo01.java"
        ],
        "commitId" : "c2452b211dc3f347dbffaac4e6c35b3c3e8c6d65",
        "timestamp" : 1704658802000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sgothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "GraphUI Button.setLabelColor(..): Add alpha channel and variant w/ Vec4f for flexibility\u000a",
        "date" : "2024-01-07 21:20:02 +0100",
        "id" : "c2452b211dc3f347dbffaac4e6c35b3c3e8c6d65",
        "msg" : "GraphUI Button.setLabelColor(..): Add alpha channel and variant w/ Vec4f for flexibility",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/demos/com/jogamp/opengl/demos/graph/ui/UISceneDemo20.java"
          },
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/com/jogamp/graph/ui/shapes/Button.java"
          },
          {
            "editType" : "edit",
            "file" : "src/demos/com/jogamp/opengl/demos/graph/ui/UIShapeDemo01.java"
          },
          {
            "editType" : "edit",
            "file" : "src/demos/com/jogamp/opengl/demos/graph/ui/util/Tooltips.java"
          },
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/com/jogamp/graph/ui/widgets/MediaPlayer.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/graphui/classes/com/jogamp/graph/ui/TooltipText.java",
          "src/graphui/classes/com/jogamp/graph/ui/widgets/MediaPlayer.java",
          "src/graphui/classes/com/jogamp/graph/ui/Tooltip.java",
          "src/graphui/classes/com/jogamp/graph/ui/Scene.java",
          "src/graphui/classes/com/jogamp/graph/ui/Shape.java"
        ],
        "commitId" : "6dbd73108ec0b2f829674c07771c232395034157",
        "timestamp" : 1704659238000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sgothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "GraphUI Tooltip: Simplify integration w/ Scene + Shape; Use Shape.setToolTip(Tooltip) for generic usage; Add TooltipText colors.\u000a\u000aShape also takes care of setting Tooltip's tool-Shape (itself),\u000asimplifying Tooltip ctor and having it more independent from Scene/Shape.\u000a\u000aTooltip also drop Scene reference, as it shall be passed from Scene caller\u000aat Tooltip.createTip(..)\u000a",
        "date" : "2024-01-07 21:27:18 +0100",
        "id" : "6dbd73108ec0b2f829674c07771c232395034157",
        "msg" : "GraphUI Tooltip: Simplify integration w/ Scene + Shape; Use Shape.setToolTip(Tooltip) for generic usage; Add TooltipText colors.",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/com/jogamp/graph/ui/Shape.java"
          },
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/com/jogamp/graph/ui/Scene.java"
          },
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/com/jogamp/graph/ui/Tooltip.java"
          },
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/com/jogamp/graph/ui/TooltipText.java"
          },
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/com/jogamp/graph/ui/widgets/MediaPlayer.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/graphui/classes/com/jogamp/graph/ui/shapes/Rectangle.java",
          "src/graphui/classes/com/jogamp/graph/ui/widgets/MediaPlayer.java"
        ],
        "commitId" : "e6bbc1a93ff4925d2aae33de527353826f81bcf1",
        "timestamp" : 1704664088000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sgothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "GraphUI Rectangle: Remove dropping AA_RENDERING_MASK, i.e. allow VBAA_RENDERING_BIT again\u000a\u000aDropping AA was added in commit eb99bfc27f9f49387cbb08471debcd4d61e4f745,\u000abut non-planar rectangles need AA to avoid stairs.\u000a\u000aHence manually dropping some AA in MediaPlayer for blending rectangles.\u000aRangeSlider already drops AA for its bars etc.\u000a",
        "date" : "2024-01-07 22:48:08 +0100",
        "id" : "e6bbc1a93ff4925d2aae33de527353826f81bcf1",
        "msg" : "GraphUI Rectangle: Remove dropping AA_RENDERING_MASK, i.e. allow VBAA_RENDERING_BIT again",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/com/jogamp/graph/ui/shapes/Rectangle.java"
          },
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/com/jogamp/graph/ui/widgets/MediaPlayer.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/demos/com/jogamp/opengl/demos/graph/ui/UIGraphDemoU01a.java",
          "src/demos/com/jogamp/opengl/demos/graph/ui/UILayoutGrid01.java",
          "src/demos/com/jogamp/opengl/demos/graph/ui/UISceneDemo01.java",
          "src/demos/com/jogamp/opengl/demos/util/CommandlineOptions.java",
          "src/demos/com/jogamp/opengl/demos/es2/LandscapeES2.java",
          "src/demos/com/jogamp/opengl/demos/es2/PointsDemoES2.java",
          "src/demos/com/jogamp/opengl/demos/graph/ui/UIMediaGrid01.java",
          "src/demos/com/jogamp/opengl/demos/graph/ui/UISceneDemo11.java",
          "src/demos/com/jogamp/opengl/demos/graph/ui/UISceneDemo03.java",
          "src/demos/com/jogamp/opengl/demos/graph/ui/FontView01.java",
          "src/demos/com/jogamp/opengl/demos/graph/ui/UISceneDemo10.java",
          "src/demos/com/jogamp/opengl/demos/graph/ui/UISceneDemo02.java",
          "src/demos/com/jogamp/opengl/demos/graph/ui/UIShapeDemo01.java",
          "src/demos/com/jogamp/opengl/demos/graph/ui/UILayoutBox01.java",
          "src/demos/com/jogamp/opengl/demos/graph/ui/UILayoutBoxGridOffset01.java",
          "src/demos/com/jogamp/opengl/demos/graph/ui/UIMediaGrid00.java",
          "src/demos/com/jogamp/opengl/demos/es2/GearsES2.java",
          "src/demos/com/jogamp/opengl/demos/graph/ui/UISceneDemo20.java",
          "src/demos/com/jogamp/opengl/demos/graph/ui/UISceneDemo01b.java"
        ],
        "commitId" : "cb50ca301d927683374212e8efe9818f53f818c1",
        "timestamp" : 1704717436000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sgothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "GraphUI Demos: Have CommandlineOptions produce GLProfile and full GLCapabilities request, removing code duplication\u000a",
        "date" : "2024-01-08 13:37:16 +0100",
        "id" : "cb50ca301d927683374212e8efe9818f53f818c1",
        "msg" : "GraphUI Demos: Have CommandlineOptions produce GLProfile and full GLCapabilities request, removing code duplication",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/demos/com/jogamp/opengl/demos/graph/ui/UISceneDemo03.java"
          },
          {
            "editType" : "edit",
            "file" : "src/demos/com/jogamp/opengl/demos/graph/ui/UIMediaGrid01.java"
          },
          {
            "editType" : "edit",
            "file" : "src/demos/com/jogamp/opengl/demos/graph/ui/UILayoutGrid01.java"
          },
          {
            "editType" : "edit",
            "file" : "src/demos/com/jogamp/opengl/demos/graph/ui/UILayoutBox01.java"
          },
          {
            "editType" : "edit",
            "file" : "src/demos/com/jogamp/opengl/demos/graph/ui/UISceneDemo01b.java"
          },
          {
            "editType" : "edit",
            "file" : "src/demos/com/jogamp/opengl/demos/graph/ui/UILayoutBoxGridOffset01.java"
          },
          {
            "editType" : "edit",
            "file" : "src/demos/com/jogamp/opengl/demos/graph/ui/FontView01.java"
          },
          {
            "editType" : "edit",
            "file" : "src/demos/com/jogamp/opengl/demos/graph/ui/UISceneDemo10.java"
          },
          {
            "editType" : "edit",
            "file" : "src/demos/com/jogamp/opengl/demos/util/CommandlineOptions.java"
          },
          {
            "editType" : "edit",
            "file" : "src/demos/com/jogamp/opengl/demos/graph/ui/UIGraphDemoU01a.java"
          },
          {
            "editType" : "edit",
            "file" : "src/demos/com/jogamp/opengl/demos/graph/ui/UISceneDemo11.java"
          },
          {
            "editType" : "edit",
            "file" : "src/demos/com/jogamp/opengl/demos/graph/ui/UIMediaGrid00.java"
          },
          {
            "editType" : "edit",
            "file" : "src/demos/com/jogamp/opengl/demos/es2/LandscapeES2.java"
          },
          {
            "editType" : "edit",
            "file" : "src/demos/com/jogamp/opengl/demos/es2/GearsES2.java"
          },
          {
            "editType" : "edit",
            "file" : "src/demos/com/jogamp/opengl/demos/graph/ui/UISceneDemo01.java"
          },
          {
            "editType" : "edit",
            "file" : "src/demos/com/jogamp/opengl/demos/graph/ui/UISceneDemo20.java"
          },
          {
            "editType" : "edit",
            "file" : "src/demos/com/jogamp/opengl/demos/es2/PointsDemoES2.java"
          },
          {
            "editType" : "edit",
            "file" : "src/demos/com/jogamp/opengl/demos/graph/ui/UISceneDemo02.java"
          },
          {
            "editType" : "edit",
            "file" : "src/demos/com/jogamp/opengl/demos/graph/ui/UIShapeDemo01.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/demos/com/jogamp/opengl/demos/graph/ui/UIMediaGrid00.java"
        ],
        "commitId" : "4db23616aca2f191b2685311dc676fdac739338a",
        "timestamp" : 1704717631000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sgothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "GraphUI Demo UIMediaGrid00: Add letterBox option, defaults to true now\u000a",
        "date" : "2024-01-08 13:40:31 +0100",
        "id" : "4db23616aca2f191b2685311dc676fdac739338a",
        "msg" : "GraphUI Demo UIMediaGrid00: Add letterBox option, defaults to true now",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/demos/com/jogamp/opengl/demos/graph/ui/UIMediaGrid00.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/jogl/classes/jogamp/graph/curve/opengl/shader/functions.glsl"
        ],
        "commitId" : "c87e89959e40ee8411cccc16fe0a5708f54a6c9f",
        "timestamp" : 1704765358000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sgothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "Graph GLSL functions.glsl: Complete overload vec2 and vec3 variants; Fix 'and'/'or' semantic (swapped); Add EPSILON in clip_coord(..) and add is_inside(..) function\u000a\u000aComplete overload vec2 and vec3 variants\u000a\u000aFix 'and'/'or' semantic (swapped)\u000a- 'and' uses multiplication, i.e. all arguments must be > 0 (ideally 1)\u000a- 'or' uses addition, i.e. only one arguments must be > 0 (ideally 1)\u000a- both uses clamp [0..1]\u000a\u000aAdd EPSILON in clip_coord(..)\u000a- Only 'coord > high+EPSILON' is outside\u000a\u000aAdd is_inside(..) function\u000a- Similar to clip_coord(..) but returns float 0 or 1\u000a  instead of selecting color.\u000a",
        "date" : "2024-01-09 02:55:58 +0100",
        "id" : "c87e89959e40ee8411cccc16fe0a5708f54a6c9f",
        "msg" : "Graph GLSL functions.glsl: Complete overload vec2 and vec3 variants; Fix 'and'/'or' semantic (swapped); Add EPSILON in clip_coord(..) and add is_inside(..) function",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/jogamp/graph/curve/opengl/shader/functions.glsl"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/jogl/classes/jogamp/graph/curve/opengl/shader/curverenderer01-pass1-curve_weight.glsl",
          "src/jogl/classes/jogamp/graph/curve/opengl/shader/UniformNames.java",
          "src/jogl/classes/jogamp/graph/curve/opengl/shader/curverenderer01-pass1.vp",
          "src/jogl/classes/jogamp/graph/curve/opengl/shader/attributes.glsl",
          "src/jogl/classes/jogamp/graph/curve/opengl/shader/curverenderer01-pass1-curve_simple.glsl",
          "src/jogl/classes/jogamp/graph/curve/opengl/shader/varyings.glsl",
          "src/jogl/classes/jogamp/graph/curve/opengl/shader/curverenderer01-single.vp",
          "src/jogl/classes/jogamp/graph/curve/opengl/shader/uniforms.glsl"
        ],
        "commitId" : "f836fbd9201034010ecbf591348433f23920f527",
        "timestamp" : 1704765777000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sgothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "Graph Clipping: GLSL: Add `USE_AABBOX_CLIPPING`, i.e. clipping via AABBox min/max vec3 as convenient using Graph/GraphUI produced AABBox\u000a\u000aUSE_AABBOX_CLIPPING\u000a- Conditional compilation w/ macro 'USE_AABBOX_CLIPPING'\u000a- gcv_ClipBBoxCoord smooth varying setup in vertex shader\u000a- fragment shader clips via branch\u000a    if( is_inside(gcv_ClipBBoxCoord, gcu_ClipBBox[0], gcu_ClipBBox[1]) < 0.5 ) { CLIP }\u000a- clipping via discard or alpha=0 in case of buggy-discard.\u000a\u000aOther optimization:\u000a- Drop gcv_ColorTexExt, fragment-shader uses gcu_ColorTexBBox[2] directly (flat)\u000a- Simplified gcv_ColorTexCoord smooth varying equation in vertex shader.\u000a",
        "date" : "2024-01-09 03:02:57 +0100",
        "id" : "f836fbd9201034010ecbf591348433f23920f527",
        "msg" : "Graph Clipping: GLSL: Add `USE_AABBOX_CLIPPING`, i.e. clipping via AABBox min/max vec3 as convenient using Graph/GraphUI produced AABBox",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/jogamp/graph/curve/opengl/shader/UniformNames.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/jogamp/graph/curve/opengl/shader/attributes.glsl"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/jogamp/graph/curve/opengl/shader/curverenderer01-pass1.vp"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/jogamp/graph/curve/opengl/shader/varyings.glsl"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/jogamp/graph/curve/opengl/shader/curverenderer01-pass1-curve_simple.glsl"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/jogamp/graph/curve/opengl/shader/curverenderer01-single.vp"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/jogamp/graph/curve/opengl/shader/curverenderer01-pass1-curve_weight.glsl"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/jogamp/graph/curve/opengl/shader/uniforms.glsl"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/jogl/classes/com/jogamp/graph/curve/opengl/GLRegion.java",
          "src/jogl/classes/jogamp/graph/curve/opengl/VBORegionSPES2.java",
          "src/graphui/classes/com/jogamp/graph/ui/shapes/Rectangle.java",
          "src/demos/com/jogamp/opengl/demos/graph/ui/UIShapeClippingDemo00.java",
          "src/jogl/classes/com/jogamp/graph/curve/opengl/RenderState.java",
          "src/jogl/classes/jogamp/graph/curve/opengl/VBORegion2PMSAAES2.java",
          "src/jogl/classes/com/jogamp/graph/curve/opengl/RegionRenderer.java",
          "src/jogl/classes/jogamp/graph/curve/opengl/VBORegion2PVBAAES2.java",
          "src/jogl/classes/com/jogamp/opengl/util/texture/TextureSequence.java",
          "make/scripts/tests.sh"
        ],
        "commitId" : "bb11c498b7d4fe269e7273a1b164e46f3c7a3b50",
        "timestamp" : 1704766400000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sgothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "Graph Clipping: Initial Region impl of AABBox clipping using GLSL shader (Convenient using Graph/GraphUI produced AABBox)\u000a\u000aSimple demo, setting clip-bbox manually:\u000a- src/demos/com/jogamp/opengl/demos/graph/ui/UIShapeClippingDemo00.java\u000a\u000aTODO:\u000a- GLSL: Add missing Mv-multiplication of vertex-position -> gcv_ClipBBoxCoord\u000a-- AABBox min/max should be set pre-multiplied w/ Mv covering an independent area, not per Shape/Region.\u000a-- This to properly work with moving/scaling of each Shape/Region etc\u000a",
        "date" : "2024-01-09 03:13:20 +0100",
        "id" : "bb11c498b7d4fe269e7273a1b164e46f3c7a3b50",
        "msg" : "Graph Clipping: Initial Region impl of AABBox clipping using GLSL shader (Convenient using Graph/GraphUI produced AABBox)",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "make/scripts/tests.sh"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/com/jogamp/graph/curve/opengl/RenderState.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/com/jogamp/opengl/util/texture/TextureSequence.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/jogamp/graph/curve/opengl/VBORegion2PVBAAES2.java"
          },
          {
            "editType" : "add",
            "file" : "src/demos/com/jogamp/opengl/demos/graph/ui/UIShapeClippingDemo00.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/jogamp/graph/curve/opengl/VBORegionSPES2.java"
          },
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/com/jogamp/graph/ui/shapes/Rectangle.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/jogamp/graph/curve/opengl/VBORegion2PMSAAES2.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/com/jogamp/graph/curve/opengl/RegionRenderer.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/com/jogamp/graph/curve/opengl/GLRegion.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/jogl/classes/com/jogamp/graph/curve/opengl/RegionRenderer.java",
          "src/jogl/classes/jogamp/graph/curve/opengl/shader/curverenderer01-pass1.vp",
          "src/demos/com/jogamp/opengl/demos/graph/ui/UIShapeClippingDemo00.java",
          "src/jogl/classes/jogamp/graph/curve/opengl/shader/curverenderer01-single.vp",
          "src/jogl/classes/com/jogamp/graph/curve/opengl/RenderState.java",
          "make/scripts/tests.sh"
        ],
        "commitId" : "335dd0a493fff1435cad1cd22e4ac5a20d7df03a",
        "timestamp" : 1704767820000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sgothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "Graph Clipping: Add missing Modelview-Matrix (Mv) Multiplication / Consideration\u000a\u000a- GLSL vertex shader sets smooth varying 'gcv_ClipBBoxCoord' w/ Mv multiplied vertex-coord\u000a- RegionRenderer.setClipBBox(AABBox) expects a pre-multiplied Mv AABBox covering an independent area, not per Shape/Region.\u000a- This works as expected with moving/scaling of each Shape/Region etc\u000a",
        "date" : "2024-01-09 03:37:00 +0100",
        "id" : "335dd0a493fff1435cad1cd22e4ac5a20d7df03a",
        "msg" : "Graph Clipping: Add missing Modelview-Matrix (Mv) Multiplication / Consideration",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/com/jogamp/graph/curve/opengl/RenderState.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/jogamp/graph/curve/opengl/shader/curverenderer01-single.vp"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/jogamp/graph/curve/opengl/shader/curverenderer01-pass1.vp"
          },
          {
            "editType" : "edit",
            "file" : "make/scripts/tests.sh"
          },
          {
            "editType" : "edit",
            "file" : "src/demos/com/jogamp/opengl/demos/graph/ui/UIShapeClippingDemo00.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/com/jogamp/graph/curve/opengl/RegionRenderer.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/demos/com/jogamp/opengl/demos/graph/ui/UILayoutGrid01.java",
          "src/graphui/classes/com/jogamp/graph/ui/layout/BoxLayout.java",
          "src/graphui/classes/com/jogamp/graph/ui/Shape.java",
          "src/demos/com/jogamp/opengl/demos/graph/ui/UILayoutBox01.java",
          "src/demos/com/jogamp/opengl/demos/graph/ui/UILayoutBoxGridOffset01.java",
          "src/graphui/classes/com/jogamp/graph/ui/layout/Padding.java",
          "src/graphui/classes/com/jogamp/graph/ui/layout/Margin.java",
          "src/graphui/classes/com/jogamp/graph/ui/layout/GridLayout.java"
        ],
        "commitId" : "76a74ca56e2708c967b3e5aafaa24eb9603bbb99",
        "timestamp" : 1705033687000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sgothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "GraphUI Margin/Padding: Rename zeroSum*() -> zero*()\u000a",
        "date" : "2024-01-12 05:28:07 +0100",
        "id" : "76a74ca56e2708c967b3e5aafaa24eb9603bbb99",
        "msg" : "GraphUI Margin/Padding: Rename zeroSum*() -> zero*()",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/demos/com/jogamp/opengl/demos/graph/ui/UILayoutGrid01.java"
          },
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/com/jogamp/graph/ui/layout/Margin.java"
          },
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/com/jogamp/graph/ui/layout/Padding.java"
          },
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/com/jogamp/graph/ui/layout/BoxLayout.java"
          },
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/com/jogamp/graph/ui/Shape.java"
          },
          {
            "editType" : "edit",
            "file" : "src/demos/com/jogamp/opengl/demos/graph/ui/UILayoutBox01.java"
          },
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/com/jogamp/graph/ui/layout/GridLayout.java"
          },
          {
            "editType" : "edit",
            "file" : "src/demos/com/jogamp/opengl/demos/graph/ui/UILayoutBoxGridOffset01.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/jogl/classes/com/jogamp/math/geom/AABBox.java",
          "src/demos/com/jogamp/opengl/demos/graph/ui/UISceneDemo03.java"
        ],
        "commitId" : "9c4e97a896e4ce2491ac38bfbf0c21a527548cb3",
        "timestamp" : 1705033827000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sgothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "AABBox resize{Width, Height}(..): Positive argument shall always denote expansion\u000a",
        "date" : "2024-01-12 05:30:27 +0100",
        "id" : "9c4e97a896e4ce2491ac38bfbf0c21a527548cb3",
        "msg" : "AABBox resize{Width, Height}(..): Positive argument shall always denote expansion",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/com/jogamp/math/geom/AABBox.java"
          },
          {
            "editType" : "edit",
            "file" : "src/demos/com/jogamp/opengl/demos/graph/ui/UISceneDemo03.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/demos/com/jogamp/opengl/demos/graph/ui/UITypeDemo01.java",
          "src/demos/com/jogamp/opengl/demos/graph/ui/UIShapeDemo01.java"
        ],
        "commitId" : "4bc55e2f2e3603b43d6fdcb9786c61e32a64327f",
        "timestamp" : 1705033894000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sgothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "GraphUI Demos: Use CommandlineOptions properly\u000a",
        "date" : "2024-01-12 05:31:34 +0100",
        "id" : "4bc55e2f2e3603b43d6fdcb9786c61e32a64327f",
        "msg" : "GraphUI Demos: Use CommandlineOptions properly",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/demos/com/jogamp/opengl/demos/graph/ui/UITypeDemo01.java"
          },
          {
            "editType" : "edit",
            "file" : "src/demos/com/jogamp/opengl/demos/graph/ui/UIShapeDemo01.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/graphui/classes/com/jogamp/graph/ui/widgets/MediaPlayer.java",
          "src/demos/com/jogamp/opengl/demos/graph/ui/FontView01.java",
          "src/graphui/classes/com/jogamp/graph/ui/widgets/RangeSlider.java"
        ],
        "commitId" : "fa0703fda03f34468c9c8645a52d13536c366991",
        "timestamp" : 1705034198000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sgothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "GraphUI RangeSlider: Add unitSize param: Size of one unit (element) in sliding direction\u000a",
        "date" : "2024-01-12 05:36:38 +0100",
        "id" : "fa0703fda03f34468c9c8645a52d13536c366991",
        "msg" : "GraphUI RangeSlider: Add unitSize param: Size of one unit (element) in sliding direction",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/com/jogamp/graph/ui/widgets/MediaPlayer.java"
          },
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/com/jogamp/graph/ui/widgets/RangeSlider.java"
          },
          {
            "editType" : "edit",
            "file" : "src/demos/com/jogamp/opengl/demos/graph/ui/FontView01.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/jogl/classes/jogamp/graph/curve/opengl/VBORegion2PVBAAES2.java"
        ],
        "commitId" : "c6e83daaf04541907fa5ac36f1cd06c2c65e2882",
        "timestamp" : 1705034317000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sgothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "Graph VBORegion2PVBAAES2: Fix Rescale (MAX texSize): renderFboHeight shall use winHeight (typo)\u000a",
        "date" : "2024-01-12 05:38:37 +0100",
        "id" : "c6e83daaf04541907fa5ac36f1cd06c2c65e2882",
        "msg" : "Graph VBORegion2PVBAAES2: Fix Rescale (MAX texSize): renderFboHeight shall use winHeight (typo)",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/jogamp/graph/curve/opengl/VBORegion2PVBAAES2.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/jogl/classes/com/jogamp/math/Matrix4f.java"
        ],
        "commitId" : "b886aaabf6a9c2c2ab3d03a56c3c134307fbfba4",
        "timestamp" : 1705185108000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sgothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "Matrix4f: Fix minor API doc parem ref-name\u000a",
        "date" : "2024-01-13 23:31:48 +0100",
        "id" : "b886aaabf6a9c2c2ab3d03a56c3c134307fbfba4",
        "msg" : "Matrix4f: Fix minor API doc parem ref-name",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/com/jogamp/math/Matrix4f.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/jogl/classes/com/jogamp/opengl/util/GLReadBufferUtil.java"
        ],
        "commitId" : "3062f72c7b83cef71d8e6d471846449aba66d861",
        "timestamp" : 1705185239000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sgothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "GLReadBufferUtil: Allow passing a custom GL read-buffer name, useful to read FBO attachments (GL_COLOR_ATTACHMENTi)\u000a",
        "date" : "2024-01-13 23:33:59 +0100",
        "id" : "3062f72c7b83cef71d8e6d471846449aba66d861",
        "msg" : "GLReadBufferUtil: Allow passing a custom GL read-buffer name, useful to read FBO attachments (GL_COLOR_ATTACHMENTi)",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/com/jogamp/opengl/util/GLReadBufferUtil.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/jogl/classes/com/jogamp/graph/curve/opengl/GLRegion.java",
          "src/graphui/classes/com/jogamp/graph/ui/GraphShape.java",
          "src/demos/com/jogamp/opengl/demos/graph/GPURegionGLListener10.java",
          "src/jogl/classes/jogamp/graph/curve/opengl/shader/curverenderer01-pass2-vbaa_flipquad3.glsl",
          "src/jogl/classes/com/jogamp/opengl/util/texture/TextureSequence.java",
          "src/graphui/classes/com/jogamp/graph/ui/Scene.java",
          "src/graphui/classes/com/jogamp/graph/ui/Group.java",
          "src/jogl/classes/jogamp/graph/curve/opengl/shader/curverenderer01-pass2-vbaa_bforce_odd.glsl",
          "src/jogl/classes/jogamp/graph/curve/opengl/shader/curverenderer01-pass1.vp",
          "src/demos/com/jogamp/opengl/demos/graph/ui/UIShapeDemo01.java",
          "src/demos/com/jogamp/opengl/demos/graph/TextRendererGLELBase.java",
          "src/jogl/classes/com/jogamp/graph/curve/opengl/TextRegionUtil.java",
          "src/demos/com/jogamp/opengl/demos/graph/GPURegionGLListener00.java",
          "src/test/com/jogamp/opengl/test/junit/graph/GPURegionGLListener01.java",
          "src/jogl/classes/jogamp/graph/curve/opengl/VBORegionSPES2.java",
          "src/jogl/classes/jogamp/opengl/util/av/GLMediaPlayerImpl.java",
          "src/jogl/classes/jogamp/graph/curve/opengl/shader/curverenderer01-pass2-vbaa_bforce_even.glsl",
          "src/graphui/classes/com/jogamp/graph/ui/Shape.java",
          "src/test/com/jogamp/opengl/test/junit/graph/PerfTextRendererNEWT00.java",
          "src/test/com/jogamp/opengl/test/junit/graph/GPURegionGLListener10.java",
          "src/jogl/classes/com/jogamp/graph/curve/opengl/RegionRenderer.java",
          "src/jogl/classes/jogamp/graph/curve/opengl/VBORegion2PVBAAES2.java",
          "src/jogl/classes/jogamp/graph/curve/opengl/shader/curverenderer01-single.vp",
          "src/jogl/classes/com/jogamp/opengl/util/texture/ImageSequence.java",
          "src/jogl/classes/com/jogamp/graph/curve/Region.java",
          "src/demos/com/jogamp/opengl/demos/graph/GPURegionGLListener01.java",
          "src/jogl/classes/jogamp/graph/curve/opengl/shader/curverenderer01-pass2.vp",
          "src/jogl/classes/jogamp/graph/curve/opengl/shader/curverenderer01-pass2-msaa.glsl",
          "src/jogl/classes/com/jogamp/graph/curve/opengl/RenderState.java",
          "src/jogl/classes/jogamp/graph/curve/opengl/VBORegion2PMSAAES2.java",
          "src/jogl/classes/jogamp/opengl/util/av/impl/FFMPEGMediaPlayer.java",
          "src/demos/com/jogamp/opengl/demos/graph/ui/UITypeDemo01.java",
          "src/demos/com/jogamp/opengl/demos/graph/ui/UISceneDemo20.java"
        ],
        "commitId" : "6363ae5fb6975a6f2e7c1093ce81f25b699e3e61",
        "timestamp" : 1705202350000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sgothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "Graph/GraphUI: Revise Graph Region ShaderMapping, fix AABBox-Clipping for Pass2-AA, revise Pass2 AA Quality parameter ..\u000a\u000aMisc:\u000a- Graph VBORegion2PVBAAES2: Drop unused FBO rescale\u000a- Move MIN/MAX QUALITY/SAMPLE from GraphUI Scene -> Graph Region\u000a\u000a+++\u000a\u000aQuality -> Pass2 AA Quality\u000a- Drop quality field in region\u000a- Pass quality to GLRegion.draw(..) similar to sampleCount\u000a  for dynamic shader and switch\u000a- TODO: Pass quality parameter in TextRegionUtil's functions\u000a\u000aFix RegionRenderer Shader Mapping\u000a- Use ShaderKey class to properly implement the hash value and equals method\u000a- For this, TextureSequence.getTextureFragmentShaderHashID() has been added\u000a  to provide actual shader-snippet for the equals function\u000a- All required criterias are included in the hash value and equals method\u000a\u000aFix AABBox Clipping for Pass-2 AA\u000a- Clipping in pass2-AA must happen in pass2 on actual gcu_PMVMatrix01 (not ortho)\u000a\u000a+++\u000a\u000aGraphUI GraphShape\u000a- Rename: [get,set]{->AA}Quality()\u000a\u000aGraphUI Scene\u000a- Rename: mark{All->}ShapesDirty(), set{AllShapes->}Sharpness(), set{AllShapes->AA}Quality()\u000a- Fix setSampleCount(..), i.e. markStatesDirty() not markShapesDirty()\u000a- Fix setAAQuality(), markShapesDirty() and markStatesDirty(): Use forAll(..) to traverse through all shapes and groups.\u000a\u000aGraphUI Group\u000a- Add setFixedSize()\u000a- Add setClipOnBox()\u000a- Document setRelayoutOnDirtyShapes(), isShapeDirty()\u000a",
        "date" : "2024-01-14 04:19:10 +0100",
        "id" : "6363ae5fb6975a6f2e7c1093ce81f25b699e3e61",
        "msg" : "Graph/GraphUI: Revise Graph Region ShaderMapping, fix AABBox-Clipping for Pass2-AA, revise Pass2 AA Quality parameter ..",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/jogamp/opengl/util/av/GLMediaPlayerImpl.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/jogamp/graph/curve/opengl/VBORegionSPES2.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/jogamp/graph/curve/opengl/shader/curverenderer01-pass2-vbaa_flipquad3.glsl"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/jogamp/graph/curve/opengl/shader/curverenderer01-pass2-vbaa_bforce_odd.glsl"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/jogamp/graph/curve/opengl/shader/curverenderer01-pass1.vp"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/com/jogamp/graph/curve/opengl/GLRegion.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/jogamp/graph/curve/opengl/VBORegion2PVBAAES2.java"
          },
          {
            "editType" : "edit",
            "file" : "src/test/com/jogamp/opengl/test/junit/graph/GPURegionGLListener01.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/com/jogamp/graph/curve/opengl/RenderState.java"
          },
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/com/jogamp/graph/ui/Group.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/jogamp/graph/curve/opengl/VBORegion2PMSAAES2.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/jogamp/graph/curve/opengl/shader/curverenderer01-pass2.vp"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/com/jogamp/opengl/util/texture/TextureSequence.java"
          },
          {
            "editType" : "edit",
            "file" : "src/demos/com/jogamp/opengl/demos/graph/ui/UITypeDemo01.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/jogamp/graph/curve/opengl/shader/curverenderer01-single.vp"
          },
          {
            "editType" : "edit",
            "file" : "src/test/com/jogamp/opengl/test/junit/graph/PerfTextRendererNEWT00.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/jogamp/graph/curve/opengl/shader/curverenderer01-pass2-vbaa_bforce_even.glsl"
          },
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/com/jogamp/graph/ui/GraphShape.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/com/jogamp/graph/curve/opengl/TextRegionUtil.java"
          },
          {
            "editType" : "edit",
            "file" : "src/test/com/jogamp/opengl/test/junit/graph/GPURegionGLListener10.java"
          },
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/com/jogamp/graph/ui/Scene.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/jogamp/graph/curve/opengl/shader/curverenderer01-pass2-msaa.glsl"
          },
          {
            "editType" : "edit",
            "file" : "src/demos/com/jogamp/opengl/demos/graph/GPURegionGLListener10.java"
          },
          {
            "editType" : "edit",
            "file" : "src/demos/com/jogamp/opengl/demos/graph/TextRendererGLELBase.java"
          },
          {
            "editType" : "edit",
            "file" : "src/demos/com/jogamp/opengl/demos/graph/ui/UISceneDemo20.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/com/jogamp/opengl/util/texture/ImageSequence.java"
          },
          {
            "editType" : "edit",
            "file" : "src/demos/com/jogamp/opengl/demos/graph/ui/UIShapeDemo01.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/com/jogamp/graph/curve/Region.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/jogamp/opengl/util/av/impl/FFMPEGMediaPlayer.java"
          },
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/com/jogamp/graph/ui/Shape.java"
          },
          {
            "editType" : "edit",
            "file" : "src/demos/com/jogamp/opengl/demos/graph/GPURegionGLListener00.java"
          },
          {
            "editType" : "edit",
            "file" : "src/demos/com/jogamp/opengl/demos/graph/GPURegionGLListener01.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/com/jogamp/graph/curve/opengl/RegionRenderer.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/jogl/classes/com/jogamp/graph/curve/opengl/GLRegion.java",
          "src/graphui/classes/com/jogamp/graph/ui/GraphShape.java",
          "src/demos/com/jogamp/opengl/demos/graph/GPURegionGLListener10.java",
          "src/jogl/classes/jogamp/graph/curve/opengl/VBORegionSPES2.java",
          "src/test/com/jogamp/opengl/test/junit/graph/PerfTextRendererNEWT00.java",
          "src/jogl/classes/com/jogamp/graph/curve/opengl/RegionRenderer.java",
          "src/test/com/jogamp/opengl/test/junit/graph/GPURegionGLListener10.java",
          "src/jogl/classes/jogamp/graph/curve/opengl/VBORegion2PVBAAES2.java",
          "src/jogl/classes/com/jogamp/opengl/util/texture/TextureSequence.java",
          "src/jogl/classes/com/jogamp/opengl/util/texture/ImageSequence.java",
          "src/jogl/classes/com/jogamp/graph/curve/Region.java",
          "src/demos/com/jogamp/opengl/demos/graph/GPURegionGLListener01.java",
          "src/jogl/classes/jogamp/graph/curve/opengl/shader/curverenderer01-pass2.vp",
          "src/jogl/classes/jogamp/graph/curve/opengl/shader/curverenderer01-pass1.vp",
          "src/jogl/classes/com/jogamp/graph/curve/opengl/RenderState.java",
          "src/demos/com/jogamp/opengl/demos/graph/ui/UIShapeDemo01.java",
          "src/demos/com/jogamp/opengl/demos/graph/TextRendererGLELBase.java",
          "src/jogl/classes/jogamp/graph/curve/opengl/VBORegion2PMSAAES2.java",
          "LICENSE.txt",
          "src/demos/com/jogamp/opengl/demos/graph/ui/UITypeDemo01.java",
          "src/demos/com/jogamp/opengl/demos/graph/ui/UISceneDemo20.java",
          "src/jogl/classes/com/jogamp/graph/curve/opengl/TextRegionUtil.java",
          "src/demos/com/jogamp/opengl/demos/graph/GPURegionGLListener00.java",
          "src/test/com/jogamp/opengl/test/junit/graph/GPURegionGLListener01.java"
        ],
        "commitId" : "e0c5eed5149a868e202b128c990bb1a4c5259b2f",
        "timestamp" : 1705203095000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sgothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "Bump (c) -2024 for edited files + LICENSE.txt\u000a",
        "date" : "2024-01-14 04:31:35 +0100",
        "id" : "e0c5eed5149a868e202b128c990bb1a4c5259b2f",
        "msg" : "Bump (c) -2024 for edited files + LICENSE.txt",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/com/jogamp/opengl/util/texture/TextureSequence.java"
          },
          {
            "editType" : "edit",
            "file" : "src/demos/com/jogamp/opengl/demos/graph/TextRendererGLELBase.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/com/jogamp/graph/curve/opengl/RenderState.java"
          },
          {
            "editType" : "edit",
            "file" : "src/demos/com/jogamp/opengl/demos/graph/GPURegionGLListener01.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/com/jogamp/opengl/util/texture/ImageSequence.java"
          },
          {
            "editType" : "edit",
            "file" : "src/demos/com/jogamp/opengl/demos/graph/GPURegionGLListener00.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/com/jogamp/graph/curve/opengl/RegionRenderer.java"
          },
          {
            "editType" : "edit",
            "file" : "LICENSE.txt"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/com/jogamp/graph/curve/opengl/GLRegion.java"
          },
          {
            "editType" : "edit",
            "file" : "src/test/com/jogamp/opengl/test/junit/graph/GPURegionGLListener10.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/jogamp/graph/curve/opengl/shader/curverenderer01-pass1.vp"
          },
          {
            "editType" : "edit",
            "file" : "src/test/com/jogamp/opengl/test/junit/graph/GPURegionGLListener01.java"
          },
          {
            "editType" : "edit",
            "file" : "src/demos/com/jogamp/opengl/demos/graph/ui/UITypeDemo01.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/jogamp/graph/curve/opengl/VBORegion2PMSAAES2.java"
          },
          {
            "editType" : "edit",
            "file" : "src/demos/com/jogamp/opengl/demos/graph/ui/UISceneDemo20.java"
          },
          {
            "editType" : "edit",
            "file" : "src/test/com/jogamp/opengl/test/junit/graph/PerfTextRendererNEWT00.java"
          },
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/com/jogamp/graph/ui/GraphShape.java"
          },
          {
            "editType" : "edit",
            "file" : "src/demos/com/jogamp/opengl/demos/graph/GPURegionGLListener10.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/com/jogamp/graph/curve/Region.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/jogamp/graph/curve/opengl/shader/curverenderer01-pass2.vp"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/jogamp/graph/curve/opengl/VBORegionSPES2.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/com/jogamp/graph/curve/opengl/TextRegionUtil.java"
          },
          {
            "editType" : "edit",
            "file" : "src/demos/com/jogamp/opengl/demos/graph/ui/UIShapeDemo01.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/jogamp/graph/curve/opengl/VBORegion2PVBAAES2.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/demos/com/jogamp/opengl/demos/graph/ui/UIShapeDemo00.java",
          "make/scripts/tests.sh"
        ],
        "commitId" : "3ceb0c6e06b513690e2a4ab67c8aa34e9fbd5698",
        "timestamp" : 1705203154000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sgothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "GraphUI UIShapeDemo00: Simple Shape within Scene\u000a",
        "date" : "2024-01-14 04:32:34 +0100",
        "id" : "3ceb0c6e06b513690e2a4ab67c8aa34e9fbd5698",
        "msg" : "GraphUI UIShapeDemo00: Simple Shape within Scene",
        "paths" : [
          {
            "editType" : "add",
            "file" : "src/demos/com/jogamp/opengl/demos/graph/ui/UIShapeDemo00.java"
          },
          {
            "editType" : "edit",
            "file" : "make/scripts/tests.sh"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/graphui/classes/com/jogamp/graph/ui/widgets/RangeSlider.java"
        ],
        "commitId" : "0250b2e5a8cbf91e94d50fd9860c62b28a1fcc17",
        "timestamp" : 1705252511000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sgothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "GraphUI RangeSlider: Position page-sized knob (variant) with value at page-start position.\u000a",
        "date" : "2024-01-14 18:15:11 +0100",
        "id" : "0250b2e5a8cbf91e94d50fd9860c62b28a1fcc17",
        "msg" : "GraphUI RangeSlider: Position page-sized knob (variant) with value at page-start position.",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/com/jogamp/graph/ui/widgets/RangeSlider.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/graphui/classes/com/jogamp/graph/ui/widgets/RangeSlider.java"
        ],
        "commitId" : "9b8d1825cfb76454e42b196a93dc54d189a8a9a6",
        "timestamp" : 1705254495000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sgothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "GraphUI RangeSlider: Fix API doc for implementation detail\u000a",
        "date" : "2024-01-14 18:48:15 +0100",
        "id" : "9b8d1825cfb76454e42b196a93dc54d189a8a9a6",
        "msg" : "GraphUI RangeSlider: Fix API doc for implementation detail",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/com/jogamp/graph/ui/widgets/RangeSlider.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/jogl/classes/com/jogamp/graph/curve/opengl/GLRegion.java",
          "src/graphui/classes/com/jogamp/graph/ui/AnimGroup.java",
          "src/demos/com/jogamp/opengl/demos/graph/GPURegionGLListener10.java",
          "src/graphui/classes/com/jogamp/graph/ui/GraphShape.java",
          "src/demos/com/jogamp/opengl/demos/graph/GPURegionNewtDemo.java",
          "src/test/com/jogamp/opengl/test/junit/graph/TestTextRendererNEWT20.java",
          "src/demos/com/jogamp/opengl/demos/graph/ui/UISceneDemo01.java",
          "src/demos/com/jogamp/opengl/demos/util/CommandlineOptions.java",
          "src/demos/com/jogamp/opengl/demos/graph/GPUTextGLListener0A.java",
          "src/demos/com/jogamp/opengl/demos/graph/GPURendererListenerBase01.java",
          "src/graphui/classes/com/jogamp/graph/ui/Scene.java",
          "src/graphui/classes/com/jogamp/graph/ui/Group.java",
          "src/test/com/jogamp/opengl/test/junit/graph/TextRendererGLELBase.java",
          "src/test/com/jogamp/opengl/test/junit/graph/TestTextRendererNEWT01.java",
          "src/demos/com/jogamp/opengl/demos/graph/ui/UISceneDemo02.java",
          "src/demos/com/jogamp/opengl/demos/graph/ui/UIShapeDemo01.java",
          "src/demos/com/jogamp/opengl/demos/graph/ui/UIShapeDemo00.java",
          "src/demos/com/jogamp/opengl/demos/graph/TextRendererGLELBase.java",
          "src/demos/com/jogamp/opengl/demos/graph/GPUTextRendererListenerBase01.java",
          "src/jogl/classes/com/jogamp/graph/curve/opengl/TextRegionUtil.java",
          "src/demos/com/jogamp/opengl/demos/graph/GPURegionGLListener00.java",
          "src/test/com/jogamp/opengl/test/junit/graph/GPURegionGLListener01.java",
          "src/demos/com/jogamp/opengl/demos/graph/ui/UIGraphDemoU01a.java",
          "src/test/com/jogamp/opengl/test/junit/graph/TestTextRendererNEWT21.java",
          "src/graphui/classes/com/jogamp/graph/ui/Shape.java",
          "src/test/com/jogamp/opengl/test/junit/graph/GPURendererListenerBase01.java",
          "src/demos/com/jogamp/opengl/demos/graph/ui/UISceneDemo00.java",
          "src/test/com/jogamp/opengl/test/junit/graph/PerfTextRendererNEWT00.java",
          "src/test/com/jogamp/opengl/test/junit/graph/GPURegionGLListener10.java",
          "src/jogl/classes/com/jogamp/graph/curve/Region.java",
          "src/test/com/jogamp/opengl/test/junit/graph/GPUTextRendererListenerBase01.java",
          "src/demos/com/jogamp/opengl/demos/graph/ui/UISceneDemo03.java",
          "src/test/com/jogamp/opengl/test/junit/graph/TestTextRendererNEWTBugXXXX.java",
          "src/test/com/jogamp/opengl/test/junit/graph/TestRegionRendererNEWT01.java",
          "src/test/com/jogamp/opengl/test/junit/graph/FontViewListener01.java",
          "src/demos/com/jogamp/opengl/demos/graph/GPURegionGLListener01.java",
          "src/demos/com/jogamp/opengl/demos/graph/ui/FontView01.java",
          "src/demos/com/jogamp/opengl/demos/graph/GPUTextNewtDemo.java",
          "src/demos/com/jogamp/opengl/demos/graph/ui/UITypeDemo01.java",
          "src/demos/com/jogamp/opengl/demos/graph/ui/UISceneDemo20.java",
          "src/demos/com/jogamp/opengl/demos/graph/ui/UISceneDemo01b.java"
        ],
        "commitId" : "d7cb4a77b71cb3703ff7ac0667c5a97f29a5bdb4",
        "timestamp" : 1705290454000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sgothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "Graph/GraphUI AA-Quality (shader): Region: Add DEFAULT_AA_QUALITY and clipping funs for aaQuality/sampleCount; TextRegionUtil: Pass quality parameter in draw-functions\u000a\u000aRegion.DEFAULT_AA_QUALITY defaults to MAX_AA_QUALITY still\u000a- TODO: AA shader is subject to change ..\u000a\u000aRegion.draw(..) clips the quality param (save)\u000a\u000aTextRegionUtil: Pass quality parameter in draw-functions\u000a- Allowing to select the AA shader\u000a\u000aGraphUI Scene and some demos add the AA-quality param\u000ato the status line or screenshot-filename.\u000a- See Region.getRenderModeString(..)\u000a\u000a+++\u000a\u000aTestTextRendererNEWT20 and TestTextRendererNEWT21\u000anow iterate through all fonts, AA-quality shader and sample-sizes.\u000a\u000aMost demos and some more tests take AA-quality into acount,\u000ademos via CommandlineOptions.graphAAQuality\u000a",
        "date" : "2024-01-15 04:47:34 +0100",
        "id" : "d7cb4a77b71cb3703ff7ac0667c5a97f29a5bdb4",
        "msg" : "Graph/GraphUI AA-Quality (shader): Region: Add DEFAULT_AA_QUALITY and clipping funs for aaQuality/sampleCount; TextRegionUtil: Pass quality parameter in draw-functions",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/demos/com/jogamp/opengl/demos/graph/GPURegionGLListener10.java"
          },
          {
            "editType" : "edit",
            "file" : "src/demos/com/jogamp/opengl/demos/graph/GPURendererListenerBase01.java"
          },
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/com/jogamp/graph/ui/Scene.java"
          },
          {
            "editType" : "edit",
            "file" : "src/demos/com/jogamp/opengl/demos/graph/ui/UIShapeDemo01.java"
          },
          {
            "editType" : "edit",
            "file" : "src/demos/com/jogamp/opengl/demos/graph/ui/UITypeDemo01.java"
          },
          {
            "editType" : "edit",
            "file" : "src/demos/com/jogamp/opengl/demos/graph/ui/UISceneDemo02.java"
          },
          {
            "editType" : "edit",
            "file" : "src/demos/com/jogamp/opengl/demos/graph/ui/UISceneDemo03.java"
          },
          {
            "editType" : "edit",
            "file" : "src/demos/com/jogamp/opengl/demos/graph/ui/UISceneDemo20.java"
          },
          {
            "editType" : "edit",
            "file" : "src/test/com/jogamp/opengl/test/junit/graph/GPURegionGLListener10.java"
          },
          {
            "editType" : "edit",
            "file" : "src/test/com/jogamp/opengl/test/junit/graph/TestRegionRendererNEWT01.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/com/jogamp/graph/curve/Region.java"
          },
          {
            "editType" : "edit",
            "file" : "src/demos/com/jogamp/opengl/demos/graph/GPURegionNewtDemo.java"
          },
          {
            "editType" : "edit",
            "file" : "src/test/com/jogamp/opengl/test/junit/graph/GPURendererListenerBase01.java"
          },
          {
            "editType" : "edit",
            "file" : "src/demos/com/jogamp/opengl/demos/graph/GPUTextGLListener0A.java"
          },
          {
            "editType" : "edit",
            "file" : "src/demos/com/jogamp/opengl/demos/graph/ui/UIGraphDemoU01a.java"
          },
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/com/jogamp/graph/ui/Group.java"
          },
          {
            "editType" : "edit",
            "file" : "src/demos/com/jogamp/opengl/demos/graph/TextRendererGLELBase.java"
          },
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/com/jogamp/graph/ui/GraphShape.java"
          },
          {
            "editType" : "edit",
            "file" : "src/test/com/jogamp/opengl/test/junit/graph/TestTextRendererNEWT20.java"
          },
          {
            "editType" : "edit",
            "file" : "src/demos/com/jogamp/opengl/demos/util/CommandlineOptions.java"
          },
          {
            "editType" : "edit",
            "file" : "src/test/com/jogamp/opengl/test/junit/graph/TestTextRendererNEWTBugXXXX.java"
          },
          {
            "editType" : "edit",
            "file" : "src/test/com/jogamp/opengl/test/junit/graph/PerfTextRendererNEWT00.java"
          },
          {
            "editType" : "edit",
            "file" : "src/test/com/jogamp/opengl/test/junit/graph/TestTextRendererNEWT21.java"
          },
          {
            "editType" : "edit",
            "file" : "src/demos/com/jogamp/opengl/demos/graph/ui/UIShapeDemo00.java"
          },
          {
            "editType" : "edit",
            "file" : "src/demos/com/jogamp/opengl/demos/graph/ui/UISceneDemo01b.java"
          },
          {
            "editType" : "edit",
            "file" : "src/demos/com/jogamp/opengl/demos/graph/GPUTextNewtDemo.java"
          },
          {
            "editType" : "edit",
            "file" : "src/demos/com/jogamp/opengl/demos/graph/ui/UISceneDemo01.java"
          },
          {
            "editType" : "edit",
            "file" : "src/demos/com/jogamp/opengl/demos/graph/GPURegionGLListener01.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/com/jogamp/graph/curve/opengl/GLRegion.java"
          },
          {
            "editType" : "edit",
            "file" : "src/test/com/jogamp/opengl/test/junit/graph/GPUTextRendererListenerBase01.java"
          },
          {
            "editType" : "edit",
            "file" : "src/test/com/jogamp/opengl/test/junit/graph/TextRendererGLELBase.java"
          },
          {
            "editType" : "edit",
            "file" : "src/demos/com/jogamp/opengl/demos/graph/ui/FontView01.java"
          },
          {
            "editType" : "edit",
            "file" : "src/demos/com/jogamp/opengl/demos/graph/GPUTextRendererListenerBase01.java"
          },
          {
            "editType" : "edit",
            "file" : "src/demos/com/jogamp/opengl/demos/graph/ui/UISceneDemo00.java"
          },
          {
            "editType" : "edit",
            "file" : "src/test/com/jogamp/opengl/test/junit/graph/FontViewListener01.java"
          },
          {
            "editType" : "edit",
            "file" : "src/test/com/jogamp/opengl/test/junit/graph/TestTextRendererNEWT01.java"
          },
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/com/jogamp/graph/ui/Shape.java"
          },
          {
            "editType" : "edit",
            "file" : "src/test/com/jogamp/opengl/test/junit/graph/GPURegionGLListener01.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/com/jogamp/graph/curve/opengl/TextRegionUtil.java"
          },
          {
            "editType" : "edit",
            "file" : "src/demos/com/jogamp/opengl/demos/graph/GPURegionGLListener00.java"
          },
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/com/jogamp/graph/ui/AnimGroup.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/graphui/classes/com/jogamp/graph/ui/widgets/MediaPlayer.java",
          "src/demos/com/jogamp/opengl/demos/graph/ui/FontView01.java",
          "src/graphui/classes/com/jogamp/graph/ui/widgets/RangeSlider.java"
        ],
        "commitId" : "7f91a60a0f5d7043d44fd22639d27aaefa1dc1a4",
        "timestamp" : 1705290528000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sgothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "GraphUI RangeSlider: Add SliderAdapter (convenience) and use a listener-array (was 1 instance)\u000a",
        "date" : "2024-01-15 04:48:48 +0100",
        "id" : "7f91a60a0f5d7043d44fd22639d27aaefa1dc1a4",
        "msg" : "GraphUI RangeSlider: Add SliderAdapter (convenience) and use a listener-array (was 1 instance)",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/com/jogamp/graph/ui/widgets/RangeSlider.java"
          },
          {
            "editType" : "edit",
            "file" : "src/demos/com/jogamp/opengl/demos/graph/ui/FontView01.java"
          },
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/com/jogamp/graph/ui/widgets/MediaPlayer.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/test/com/jogamp/opengl/test/junit/graph/TestTextRendererNEWT20.java",
          "src/test/com/jogamp/opengl/test/junit/graph/TestTextRendererNEWT21.java",
          "src/test/com/jogamp/opengl/test/junit/graph/FontSet01.java"
        ],
        "commitId" : "90452c782a2de049aeaaddd81f27eadbdf29f0b4",
        "timestamp" : 1705291698000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sgothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "Graph Text Tests: TestTextRendererNEWT20, TestTextRendererNEWT21: Reduce sampleSet 3 -> 1 and fontSet 11 -> 7 to avoid footprint for default tests.\u000a",
        "date" : "2024-01-15 05:08:18 +0100",
        "id" : "90452c782a2de049aeaaddd81f27eadbdf29f0b4",
        "msg" : "Graph Text Tests: TestTextRendererNEWT20, TestTextRendererNEWT21: Reduce sampleSet 3 -> 1 and fontSet 11 -> 7 to avoid footprint for default tests.",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/test/com/jogamp/opengl/test/junit/graph/FontSet01.java"
          },
          {
            "editType" : "edit",
            "file" : "src/test/com/jogamp/opengl/test/junit/graph/TestTextRendererNEWT20.java"
          },
          {
            "editType" : "edit",
            "file" : "src/test/com/jogamp/opengl/test/junit/graph/TestTextRendererNEWT21.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/demos/com/jogamp/opengl/demos/graph/ui/FontView01.java",
          "src/graphui/classes/com/jogamp/graph/ui/widgets/RangeSlider.java"
        ],
        "commitId" : "31ef5df9c5868b2b8e4ce843a4bf0a6c3f5a9879",
        "timestamp" : 1705312473000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sgothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "GraphUI RangeSlider: [add,remove]{->Slider}Listener()\u000a",
        "date" : "2024-01-15 10:54:33 +0100",
        "id" : "31ef5df9c5868b2b8e4ce843a4bf0a6c3f5a9879",
        "msg" : "GraphUI RangeSlider: [add,remove]{->Slider}Listener()",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/com/jogamp/graph/ui/widgets/RangeSlider.java"
          },
          {
            "editType" : "edit",
            "file" : "src/demos/com/jogamp/opengl/demos/graph/ui/FontView01.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/graphui/classes/com/jogamp/graph/ui/widgets/MediaPlayer.java",
          "src/graphui/classes/com/jogamp/graph/ui/Shape.java",
          "src/graphui/classes/com/jogamp/graph/ui/widgets/RangeSlider.java"
        ],
        "commitId" : "2bd66b50f21fd21e2102ac75cf4ce6cf875aca4d",
        "timestamp" : 1705312929000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sgothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "GraphUI Shape: Add receiveKeyEvents() and receiveMouseEvents() allowing a Shape to receive forwarded events from another Shape; Added receive*Events() specialisation for RangeSlider\u000a\u000aForwarding events from shape to shape is useful, allowing inner shapes to send them to its group,\u000awhich itself may send it out towards an outer widget like RangeSlider.\u000a\u000aRangeSlider's receive*Events() specialisation receives desired events from the source to its barAndKnob and knob\u000ashapes, which are listening. It also suppresses the mouseClicked() event as it is only useful coming from itself.\u000a",
        "date" : "2024-01-15 11:02:09 +0100",
        "id" : "2bd66b50f21fd21e2102ac75cf4ce6cf875aca4d",
        "msg" : "GraphUI Shape: Add receiveKeyEvents() and receiveMouseEvents() allowing a Shape to receive forwarded events from another Shape; Added receive*Events() specialisation for RangeSlider",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/com/jogamp/graph/ui/widgets/MediaPlayer.java"
          },
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/com/jogamp/graph/ui/Shape.java"
          },
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/com/jogamp/graph/ui/widgets/RangeSlider.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/demos/com/jogamp/opengl/demos/util/CommandlineOptions.java"
        ],
        "commitId" : "a7cd8fd48d49fcd3cdff35b1fcdcc8903913fec0",
        "timestamp" : 1705312966000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sgothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "GraphUI Demos CommandlineOptions: Add ctor w/ graphAAQuality and graphAASamples\u000a",
        "date" : "2024-01-15 11:02:46 +0100",
        "id" : "a7cd8fd48d49fcd3cdff35b1fcdcc8903913fec0",
        "msg" : "GraphUI Demos CommandlineOptions: Add ctor w/ graphAAQuality and graphAASamples",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/demos/com/jogamp/opengl/demos/util/CommandlineOptions.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/graphui/classes/com/jogamp/graph/ui/widgets/RangedGroup.java",
          "make/scripts/tests.sh",
          "src/demos/com/jogamp/opengl/demos/graph/ui/FontView01.java"
        ],
        "commitId" : "447a98a0dcb7add50d77c1d8392e670bffb358ec",
        "timestamp" : 1705313572000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sgothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "GraphUI: Added RangedGroup Widget, displaying a clipped content Group with optional horizontal and/or vertical RangeSlider; FontView01 now uses RangedGroup scrolling GlyphGrid smooth per-pixel\u000a\u000aGraphUI: Added RangedGroup Widget, displaying a clipped content Group with optional horizontal and/or vertical RangeSlider\u000a- Utilizes Group.setClipBox() to enable clipping of its content to the Group's AABBox\u000a- Uses RangeSlider based on given contentSize\u000a\u000aFontView01 now uses RangedGroup scrolling GlyphGrid smooth per-pixel\u000a",
        "date" : "2024-01-15 11:12:52 +0100",
        "id" : "447a98a0dcb7add50d77c1d8392e670bffb358ec",
        "msg" : "GraphUI: Added RangedGroup Widget, displaying a clipped content Group with optional horizontal and/or vertical RangeSlider; FontView01 now uses RangedGroup scrolling GlyphGrid smooth per-pixel",
        "paths" : [
          {
            "editType" : "add",
            "file" : "src/graphui/classes/com/jogamp/graph/ui/widgets/RangedGroup.java"
          },
          {
            "editType" : "edit",
            "file" : "make/scripts/tests.sh"
          },
          {
            "editType" : "edit",
            "file" : "src/demos/com/jogamp/opengl/demos/graph/ui/FontView01.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/demos/com/jogamp/opengl/demos/graph/ui/FontView01.java"
        ],
        "commitId" : "7fac6c60d7af8a22a82d6702a3380fee2926b608",
        "timestamp" : 1705340152000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sgothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "GraphUI Demo FontView01: Remove using jogamp.graph.curve.opengl.VBORegion2PVBAAES2 perf-counter hooks (not committed)\u000a",
        "date" : "2024-01-15 18:35:52 +0100",
        "id" : "7fac6c60d7af8a22a82d6702a3380fee2926b608",
        "msg" : "GraphUI Demo FontView01: Remove using jogamp.graph.curve.opengl.VBORegion2PVBAAES2 perf-counter hooks (not committed)",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/demos/com/jogamp/opengl/demos/graph/ui/FontView01.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/jogl/classes/com/jogamp/math/geom/AABBox.java"
        ],
        "commitId" : "d778889f36bd6bee999ceb502c5f0ce265b014bf",
        "timestamp" : 1705357821000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sgothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "AABBox: Rename private fields low -> bl and hight -> tr for readability; Unroll getRayIntersection()'s 'find candidate planes'\u000a",
        "date" : "2024-01-15 23:30:21 +0100",
        "id" : "d778889f36bd6bee999ceb502c5f0ce265b014bf",
        "msg" : "AABBox: Rename private fields low -> bl and hight -> tr for readability; Unroll getRayIntersection()'s 'find candidate planes'",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/com/jogamp/math/geom/AABBox.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/jogl/classes/com/jogamp/math/geom/AABBox.java"
        ],
        "commitId" : "106142dfa4cdbf0579f8d07f23ca3c4897a5cc95",
        "timestamp" : 1705357880000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sgothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "AABBox: Add intersects(AABBox), contains(AABBox), scale(float, float, float) and scale2(float, float, float)\u000a",
        "date" : "2024-01-15 23:31:20 +0100",
        "id" : "106142dfa4cdbf0579f8d07f23ca3c4897a5cc95",
        "msg" : "AABBox: Add intersects(AABBox), contains(AABBox), scale(float, float, float) and scale2(float, float, float)",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/com/jogamp/math/geom/AABBox.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/graphui/classes/com/jogamp/graph/ui/Group.java"
        ],
        "commitId" : "0999b85e467c27737784a89f933d70863d027a36",
        "timestamp" : 1705359235000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sgothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "GraphUI Group Clipping setClip{OnBox->OnBounds}(): Add Vec3f cullingScale factor for the clip-box to discard rendering completely..; Add Group.setClipBBox(..)\u000a\u000aChanged Group.setClip{OnBox->OnBounds}():\u000a\u000aEnable AABBox clipping on getBounds() for this group and its shapes as follows:\u000a- Discard Shape rendering if completely outside of the 'clip-box * cullingScale'\u000a- Otherwise perform pixel-accurate clipping inside the shader on 'clip-box'\u000a\u000a+++\u000a\u000aAdded Group.setClipBBox():\u000a\u000aEnable AABBox clipping on explicit given pre-multiplied Mv-matrix 'clip-box as follows\u000a- Discard Shape rendering if completely outside of the 'clip-box * cullingScale'\u000a- Otherwise perform pixel-accurate clipping inside the shader on 'clip-box'\u000a",
        "date" : "2024-01-15 23:53:55 +0100",
        "id" : "0999b85e467c27737784a89f933d70863d027a36",
        "msg" : "GraphUI Group Clipping setClip{OnBox->OnBounds}(): Add Vec3f cullingScale factor for the clip-box to discard rendering completely..; Add Group.setClipBBox(..)",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/com/jogamp/graph/ui/Group.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/graphui/classes/com/jogamp/graph/ui/Group.java",
          "src/demos/com/jogamp/opengl/demos/graph/ui/FontView01.java",
          "src/graphui/classes/com/jogamp/graph/ui/widgets/RangedGroup.java"
        ],
        "commitId" : "f06fe57b0ae738870a61700ff2c65680102d9e73",
        "timestamp" : 1705361976000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sgothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "GraphUI Enhance Clipping: Drop pixel clipping if `clip-box >= clip-box*cullingScale` (Group). RangedGroup: Pass through `clipCullingScale` to cull fully outside shapes; Apply in FontView01 Demo..\u000a\u000aGroup.setClip{BBox, OnBounds}() set 'cullingScale' drops pixel clipping if `clip-box >= clip-box*cullingScale`.\u000a- Discard Shape rendering if completely outside of `clip-box*cullingScale`\u000a- Otherwise perform pixel-accurate clipping inside the shader within [`clip-box` .. `clip-box*cullingScale`]\u000a- If `clip-box >= clip-box*cullingScale` for all axis, no pixel-accurate clipping is performed as shapes are culled before\u000a\u000a+++\u000a\u000aRangedGroup: Pass through `clipCullingScale` allowing to cull fully outside shapes outside the 'box * clipCullingScale'\u000aand use pixel-accurate clipping from [box..box*clipCullingScale].\u000a\u000aUses content.setClipBBox(..) with Mv premul-mat clippedContent.getBounds() in drawImpl0() override\u000a\u000a+++\u000a\u000aFontView01 Demo\u000a- Using RangedGroup 'clipCullingScale' w/ culling >= 2*cell-size outside of clipping box (vertical only)\u000a- Allows to drop the manually coded setVisible() hack and simplifies overall usage!\u000a- This to not issue _initial_ rendering (draw) of all 14k+ Regions (Glyph-Count * 2) at once (resources, startup-performance)\u000a",
        "date" : "2024-01-16 00:39:36 +0100",
        "id" : "f06fe57b0ae738870a61700ff2c65680102d9e73",
        "msg" : "GraphUI Enhance Clipping: Drop pixel clipping if `clip-box >= clip-box*cullingScale` (Group). RangedGroup: Pass through `clipCullingScale` to cull fully outside shapes; Apply in FontView01 Demo..",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/com/jogamp/graph/ui/Group.java"
          },
          {
            "editType" : "edit",
            "file" : "src/demos/com/jogamp/opengl/demos/graph/ui/FontView01.java"
          },
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/com/jogamp/graph/ui/widgets/RangedGroup.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/graphui/classes/com/jogamp/graph/ui/widgets/RangedGroup.java"
        ],
        "commitId" : "33ec9480da3d414a4c973607970afa06b5ed79ca",
        "timestamp" : 1705363450000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sgothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "GraphUI RangedGroup.validateImpl(): Simplify updating contentPosZero\u000a",
        "date" : "2024-01-16 01:04:10 +0100",
        "id" : "33ec9480da3d414a4c973607970afa06b5ed79ca",
        "msg" : "GraphUI RangedGroup.validateImpl(): Simplify updating contentPosZero",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/com/jogamp/graph/ui/widgets/RangedGroup.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/jogl/classes/com/jogamp/graph/curve/opengl/GLRegion.java",
          "src/graphui/classes/com/jogamp/graph/ui/AnimGroup.java",
          "src/demos/com/jogamp/opengl/demos/graph/GPURegionGLListener10.java",
          "src/graphui/classes/com/jogamp/graph/ui/GraphShape.java",
          "src/test/com/jogamp/opengl/test/junit/graph/TestTextRendererNEWT20.java",
          "src/demos/com/jogamp/opengl/demos/av/MovieCube.java",
          "src/graphui/classes/com/jogamp/graph/ui/widgets/RangedGroup.java",
          "src/demos/com/jogamp/opengl/demos/graph/GPURendererListenerBase01.java",
          "src/graphui/classes/com/jogamp/graph/ui/shapes/MediaButton.java",
          "src/graphui/classes/com/jogamp/graph/ui/Scene.java",
          "src/demos/com/jogamp/opengl/demos/av/MovieSBSStereo.java",
          "src/graphui/classes/com/jogamp/graph/ui/shapes/Button.java",
          "src/graphui/classes/com/jogamp/graph/ui/Group.java",
          "src/graphui/classes/com/jogamp/graph/ui/shapes/GLButton.java",
          "src/test/com/jogamp/opengl/test/junit/graph/TextRendererGLELBase.java",
          "src/test/com/jogamp/opengl/test/junit/graph/TestTextRendererNEWT01.java",
          "src/demos/com/jogamp/opengl/demos/graph/ui/UISceneDemo02.java",
          "src/demos/com/jogamp/opengl/demos/graph/ui/UIShapeDemo01.java",
          "src/demos/com/jogamp/opengl/demos/graph/ui/UIShapeDemo00.java",
          "src/graphui/classes/com/jogamp/graph/ui/shapes/ImageButton.java",
          "src/demos/com/jogamp/opengl/demos/graph/TextRendererGLELBase.java",
          "src/demos/com/jogamp/opengl/demos/graph/GPUTextRendererListenerBase01.java",
          "src/jogl/classes/com/jogamp/graph/curve/opengl/TextRegionUtil.java",
          "src/demos/com/jogamp/opengl/demos/graph/GPURegionGLListener00.java",
          "src/test/com/jogamp/opengl/test/junit/graph/GPURegionGLListener01.java",
          "src/demos/com/jogamp/opengl/demos/graph/ui/UIGraphDemoU01a.java",
          "src/jogl/classes/jogamp/graph/curve/opengl/VBORegionSPES2.java",
          "src/demos/com/jogamp/opengl/demos/graph/ui/UIShapeClippingDemo00.java",
          "src/graphui/classes/com/jogamp/graph/ui/Shape.java",
          "src/test/com/jogamp/opengl/test/junit/graph/GPURendererListenerBase01.java",
          "src/test/com/jogamp/opengl/test/junit/graph/PerfTextRendererNEWT00.java",
          "src/test/com/jogamp/opengl/test/junit/graph/GPURegionGLListener10.java",
          "src/jogl/classes/com/jogamp/graph/curve/opengl/RegionRenderer.java",
          "src/graphui/classes/com/jogamp/graph/ui/shapes/Label.java",
          "src/jogl/classes/jogamp/graph/curve/opengl/VBORegion2PVBAAES2.java",
          "src/test/com/jogamp/opengl/test/junit/graph/GPUTextRendererListenerBase01.java",
          "src/jogl/classes/com/jogamp/graph/curve/Region.java",
          "src/demos/com/jogamp/opengl/demos/graph/ui/UISceneDemo03.java",
          "src/test/com/jogamp/opengl/test/junit/graph/TestTextRendererNEWTBugXXXX.java",
          "src/test/com/jogamp/opengl/test/junit/graph/FontViewListener01.java",
          "src/test/com/jogamp/opengl/test/junit/graph/TestRegionRendererNEWT01.java",
          "src/demos/com/jogamp/opengl/demos/graph/GPURegionGLListener01.java",
          "src/jogl/classes/com/jogamp/graph/curve/opengl/RenderState.java",
          "src/demos/com/jogamp/opengl/demos/av/MovieSimple.java",
          "src/jogl/classes/jogamp/graph/curve/opengl/VBORegion2PMSAAES2.java",
          "src/demos/com/jogamp/opengl/demos/graph/ui/UITypeDemo01.java",
          "src/demos/com/jogamp/opengl/demos/graph/ui/UISceneDemo20.java"
        ],
        "commitId" : "6b1979992a7da2573c420ce3eb22f35abcbd35b7",
        "timestamp" : 1705377744000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sgothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "Graph/GraphUI AA-Quality + SampleCount (shader): Push params down to RegionRenderer's RenderState usually rarely set from top of user API, reducing complexity.\u000a\u000aDiscussion:\u000a\u000aAlternative was to pass AA-Quality same as SampleCount from the top (e.g. GraphUI Scene),\u000ahowever, this convolutes the API even more.\u000aBoth parameter modify the resulting shader code in pass2 rendering (only).\u000a\u000aThe used 'renderMode' is still maintained within the Region,\u000asince it contains more dynamic states individual to each Region instance (color-texture, ..).\u000aThis despite 'renderMode' also changes the RenderState's shader program.\u000aIn the end, it really doesn't matter and is a choice of frequency - the pipeline is\u000ausually rendering from on OpenGL rendering thread sequentially.\u000aAA-Quality and SampleCount simply usually don't change that often\u000aand are set only once.\u000a",
        "date" : "2024-01-16 05:02:24 +0100",
        "id" : "6b1979992a7da2573c420ce3eb22f35abcbd35b7",
        "msg" : "Graph/GraphUI AA-Quality + SampleCount (shader): Push params down to RegionRenderer's RenderState usually rarely set from top of user API, reducing complexity.",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/demos/com/jogamp/opengl/demos/graph/ui/UISceneDemo20.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/com/jogamp/graph/curve/opengl/TextRegionUtil.java"
          },
          {
            "editType" : "edit",
            "file" : "src/demos/com/jogamp/opengl/demos/graph/TextRendererGLELBase.java"
          },
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/com/jogamp/graph/ui/shapes/ImageButton.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/jogamp/graph/curve/opengl/VBORegionSPES2.java"
          },
          {
            "editType" : "edit",
            "file" : "src/demos/com/jogamp/opengl/demos/graph/ui/UIGraphDemoU01a.java"
          },
          {
            "editType" : "edit",
            "file" : "src/demos/com/jogamp/opengl/demos/graph/ui/UISceneDemo03.java"
          },
          {
            "editType" : "edit",
            "file" : "src/demos/com/jogamp/opengl/demos/graph/ui/UIShapeDemo01.java"
          },
          {
            "editType" : "edit",
            "file" : "src/demos/com/jogamp/opengl/demos/graph/ui/UITypeDemo01.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/com/jogamp/graph/curve/opengl/GLRegion.java"
          },
          {
            "editType" : "edit",
            "file" : "src/demos/com/jogamp/opengl/demos/graph/GPURendererListenerBase01.java"
          },
          {
            "editType" : "edit",
            "file" : "src/test/com/jogamp/opengl/test/junit/graph/GPUTextRendererListenerBase01.java"
          },
          {
            "editType" : "edit",
            "file" : "src/demos/com/jogamp/opengl/demos/av/MovieSBSStereo.java"
          },
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/com/jogamp/graph/ui/shapes/Button.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/com/jogamp/graph/curve/opengl/RenderState.java"
          },
          {
            "editType" : "edit",
            "file" : "src/demos/com/jogamp/opengl/demos/av/MovieCube.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/com/jogamp/graph/curve/Region.java"
          },
          {
            "editType" : "edit",
            "file" : "src/demos/com/jogamp/opengl/demos/av/MovieSimple.java"
          },
          {
            "editType" : "edit",
            "file" : "src/test/com/jogamp/opengl/test/junit/graph/FontViewListener01.java"
          },
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/com/jogamp/graph/ui/Group.java"
          },
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/com/jogamp/graph/ui/Shape.java"
          },
          {
            "editType" : "edit",
            "file" : "src/demos/com/jogamp/opengl/demos/graph/GPURegionGLListener10.java"
          },
          {
            "editType" : "edit",
            "file" : "src/demos/com/jogamp/opengl/demos/graph/ui/UIShapeDemo00.java"
          },
          {
            "editType" : "edit",
            "file" : "src/test/com/jogamp/opengl/test/junit/graph/TestTextRendererNEWT01.java"
          },
          {
            "editType" : "edit",
            "file" : "src/demos/com/jogamp/opengl/demos/graph/GPURegionGLListener01.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/jogamp/graph/curve/opengl/VBORegion2PVBAAES2.java"
          },
          {
            "editType" : "edit",
            "file" : "src/test/com/jogamp/opengl/test/junit/graph/GPURegionGLListener10.java"
          },
          {
            "editType" : "edit",
            "file" : "src/demos/com/jogamp/opengl/demos/graph/GPURegionGLListener00.java"
          },
          {
            "editType" : "edit",
            "file" : "src/test/com/jogamp/opengl/test/junit/graph/GPURegionGLListener01.java"
          },
          {
            "editType" : "edit",
            "file" : "src/test/com/jogamp/opengl/test/junit/graph/TestRegionRendererNEWT01.java"
          },
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/com/jogamp/graph/ui/AnimGroup.java"
          },
          {
            "editType" : "edit",
            "file" : "src/test/com/jogamp/opengl/test/junit/graph/PerfTextRendererNEWT00.java"
          },
          {
            "editType" : "edit",
            "file" : "src/test/com/jogamp/opengl/test/junit/graph/TextRendererGLELBase.java"
          },
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/com/jogamp/graph/ui/Scene.java"
          },
          {
            "editType" : "edit",
            "file" : "src/test/com/jogamp/opengl/test/junit/graph/TestTextRendererNEWTBugXXXX.java"
          },
          {
            "editType" : "edit",
            "file" : "src/test/com/jogamp/opengl/test/junit/graph/GPURendererListenerBase01.java"
          },
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/com/jogamp/graph/ui/shapes/MediaButton.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/com/jogamp/graph/curve/opengl/RegionRenderer.java"
          },
          {
            "editType" : "edit",
            "file" : "src/demos/com/jogamp/opengl/demos/graph/ui/UISceneDemo02.java"
          },
          {
            "editType" : "edit",
            "file" : "src/demos/com/jogamp/opengl/demos/graph/ui/UIShapeClippingDemo00.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/jogamp/graph/curve/opengl/VBORegion2PMSAAES2.java"
          },
          {
            "editType" : "edit",
            "file" : "src/demos/com/jogamp/opengl/demos/graph/GPUTextRendererListenerBase01.java"
          },
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/com/jogamp/graph/ui/GraphShape.java"
          },
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/com/jogamp/graph/ui/widgets/RangedGroup.java"
          },
          {
            "editType" : "edit",
            "file" : "src/test/com/jogamp/opengl/test/junit/graph/TestTextRendererNEWT20.java"
          },
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/com/jogamp/graph/ui/shapes/Label.java"
          },
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/com/jogamp/graph/ui/shapes/GLButton.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/graphui/classes/com/jogamp/graph/ui/shapes/GLButton.java"
        ],
        "commitId" : "a8cf4cd506297cd05175e43eeefa4e6d7eabb960",
        "timestamp" : 1705379007000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sgothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "GraphUI GLButton: Filter out Region.AA_RENDERING_MASK in ctor, as GLEventListener renders into FBO at correct resolution.\u000a",
        "date" : "2024-01-16 05:23:27 +0100",
        "id" : "a8cf4cd506297cd05175e43eeefa4e6d7eabb960",
        "msg" : "GraphUI GLButton: Filter out Region.AA_RENDERING_MASK in ctor, as GLEventListener renders into FBO at correct resolution.",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/com/jogamp/graph/ui/shapes/GLButton.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/graphui/classes/com/jogamp/graph/ui/Group.java",
          "src/demos/com/jogamp/opengl/demos/graph/ui/FontView01.java",
          "src/graphui/classes/com/jogamp/graph/ui/widgets/RangedGroup.java"
        ],
        "commitId" : "3336d930e991679eadaa1ff4068cb8d23562b42c",
        "timestamp" : 1705388727000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sgothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "GraphUI Enhance Clipping: Drop 'cullingScale' param, a simple intersection-test against 'clipBox' to discard whole shapes if completely outside is enough.\u000a\u000aCommit f06fe57b0ae738870a61700ff2c65680102d9e73 turns out addition of using `clipbBox*cullingScale` for the AABBox contains test\u000awas not required to render the new Glyphs in the FontView01 demo 'in time'.\u000a\u000aA simple intersection-test against 'clipBox' to discard shapes if completely outside is enough,\u000ahence dropping the 'cullingScale' parameter - simplifying.\u000a",
        "date" : "2024-01-16 08:05:27 +0100",
        "id" : "3336d930e991679eadaa1ff4068cb8d23562b42c",
        "msg" : "GraphUI Enhance Clipping: Drop 'cullingScale' param, a simple intersection-test against 'clipBox' to discard whole shapes if completely outside is enough.",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/demos/com/jogamp/opengl/demos/graph/ui/FontView01.java"
          },
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/com/jogamp/graph/ui/widgets/RangedGroup.java"
          },
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/com/jogamp/graph/ui/Group.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "make/scripts/tests.sh",
          "src/demos/com/jogamp/opengl/demos/graph/ui/UIShapeClippingDemo00.java",
          "src/demos/com/jogamp/opengl/demos/graph/ui/UIShapeClippingDemo01.java"
        ],
        "commitId" : "f6ae0ff2e4bad67c929a53d705af02e7d92368bc",
        "timestamp" : 1705394188000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sgothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "GraphUI Clipping Demo: Adding a simple Shape within a clipping Group all driven by a Scene\u000a",
        "date" : "2024-01-16 09:36:28 +0100",
        "id" : "f6ae0ff2e4bad67c929a53d705af02e7d92368bc",
        "msg" : "GraphUI Clipping Demo: Adding a simple Shape within a clipping Group all driven by a Scene",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "make/scripts/tests.sh"
          },
          {
            "editType" : "edit",
            "file" : "src/demos/com/jogamp/opengl/demos/graph/ui/UIShapeClippingDemo00.java"
          },
          {
            "editType" : "add",
            "file" : "src/demos/com/jogamp/opengl/demos/graph/ui/UIShapeClippingDemo01.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/graphui/classes/com/jogamp/graph/ui/TooltipText.java",
          "src/graphui/classes/com/jogamp/graph/ui/TooltipShape.java",
          "src/graphui/classes/com/jogamp/graph/ui/Tooltip.java",
          "src/graphui/classes/com/jogamp/graph/ui/Scene.java",
          "src/graphui/classes/com/jogamp/graph/ui/Shape.java"
        ],
        "commitId" : "30369089cd02e9a0a4875c2a5f5958bcf497c701",
        "timestamp" : 1705620604000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sgothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "GraphUI Tooltip*: Generalize Tooltip base (more versatile) and add TooltipShape supporting general Shapes to be added\u000a",
        "date" : "2024-01-19 00:30:04 +0100",
        "id" : "30369089cd02e9a0a4875c2a5f5958bcf497c701",
        "msg" : "GraphUI Tooltip*: Generalize Tooltip base (more versatile) and add TooltipShape supporting general Shapes to be added",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/com/jogamp/graph/ui/Tooltip.java"
          },
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/com/jogamp/graph/ui/TooltipText.java"
          },
          {
            "editType" : "add",
            "file" : "src/graphui/classes/com/jogamp/graph/ui/TooltipShape.java"
          },
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/com/jogamp/graph/ui/Scene.java"
          },
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/com/jogamp/graph/ui/Shape.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/jogl/classes/com/jogamp/math/geom/AABBox.java"
        ],
        "commitId" : "7e582cbe21084e2b4b624761a411259da270ce26",
        "timestamp" : 1705641106000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sgothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "AABBox: Rename private fields {bl, tr} -> {lo, hi} denoting proper orientation in API doc\u000a\u000abr, tr wasn't sufficient as in commit d778889f36bd6bee999ceb502c5f0ce265b014bf\u000awhile working on Frustum, as it doesn't properly reflect axis order not z.\u000a\u000aHence going back to 'low' and 'high' semantics,\u000abut using same length identifier and emphasizing far (lo) < near (hi)\u000aof our model-view coordinate system.\u000a",
        "date" : "2024-01-19 06:11:46 +0100",
        "id" : "7e582cbe21084e2b4b624761a411259da270ce26",
        "msg" : "AABBox: Rename private fields {bl, tr} -> {lo, hi} denoting proper orientation in API doc",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/com/jogamp/math/geom/AABBox.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/jogl/classes/com/jogamp/math/geom/Frustum.java",
          "src/jogl/classes/com/jogamp/math/geom/Cube.java"
        ],
        "commitId" : "1040bed4ecc6f4598ea459f1073a9240583fc3c3",
        "timestamp" : 1705641106000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sgothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "Add Cube to Frustum Plane mapping, supporting transformation of object-space AABBox into model-view Cube to Frustum.Plane for culling (cpu) and clipping (gpu)\u000a",
        "date" : "2024-01-19 06:11:46 +0100",
        "id" : "1040bed4ecc6f4598ea459f1073a9240583fc3c3",
        "msg" : "Add Cube to Frustum Plane mapping, supporting transformation of object-space AABBox into model-view Cube to Frustum.Plane for culling (cpu) and clipping (gpu)",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/com/jogamp/math/geom/Frustum.java"
          },
          {
            "editType" : "add",
            "file" : "src/jogl/classes/com/jogamp/math/geom/Cube.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/graphui/classes/com/jogamp/graph/ui/Group.java",
          "src/jogl/classes/com/jogamp/math/Matrix4f.java",
          "src/jogl/classes/com/jogamp/math/geom/Frustum.java",
          "src/jogl/classes/com/jogamp/graph/curve/Region.java",
          "src/graphui/classes/com/jogamp/graph/ui/Scene.java",
          "src/jogl/classes/com/jogamp/math/util/PMVMatrix4f.java"
        ],
        "commitId" : "5cca51e32999a882e2a5f00cb45ecafc824ffd86",
        "timestamp" : 1705641106000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sgothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "Frustum: Revise code and its Plane definition to support Cube->Frustum as well as to extract planes for float[] vec4-shader uniforms.\u000a\u000acommit 1040bed4ecc6f4598ea459f1073a9240583fc3c3 added AABBox -> Cube -> Frustum mapping (incomplete)\u000aand requires Frustum.Plane.set(..) by normal and point-on-plane for distance.\u000a\u000aFrustum.isOutside(Cube) has been added, testing all its 8-points similar to AABBox.\u000a\u000aFurther all 6 Frustum.Plane shall be extracted to Vec4f and float[],\u000athe latter to pass the whole float[4*6] as a vec4[6] uniform array to the shader.\u000a\u000a+++\u000a\u000aConstructor, setter and getter have been adjusted accordingly.\u000a\u000aMost of the loops have been unrolled.\u000a\u000a+++\u000a\u000aMethod names to query Frustum, i.e. 'is*Outside(<Type>)'\u000ahave been reduced to 'isOutside(<Type>)'\u000awhere <Type> uniquely indenticates the purpose.\u000aHence only 'isSphereOutside()' is left over.\u000a",
        "date" : "2024-01-19 06:11:46 +0100",
        "id" : "5cca51e32999a882e2a5f00cb45ecafc824ffd86",
        "msg" : "Frustum: Revise code and its Plane definition to support Cube->Frustum as well as to extract planes for float[] vec4-shader uniforms.",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/com/jogamp/math/geom/Frustum.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/com/jogamp/math/Matrix4f.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/com/jogamp/graph/curve/Region.java"
          },
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/com/jogamp/graph/ui/Group.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/com/jogamp/math/util/PMVMatrix4f.java"
          },
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/com/jogamp/graph/ui/Scene.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/jogl/classes/jogamp/graph/curve/opengl/VBORegionSPES2.java",
          "src/jogl/classes/jogamp/graph/curve/opengl/shader/curverenderer01-pass1-curve_weight.glsl",
          "src/demos/com/jogamp/opengl/demos/graph/ui/UIShapeClippingDemo00.java",
          "src/jogl/classes/jogamp/graph/curve/opengl/shader/curverenderer01-pass2-vbaa_bforce_even.glsl",
          "src/jogl/classes/jogamp/graph/curve/opengl/shader/varyings.glsl",
          "src/graphui/classes/com/jogamp/graph/ui/widgets/RangedGroup.java",
          "src/jogl/classes/com/jogamp/graph/curve/opengl/RegionRenderer.java",
          "src/jogl/classes/jogamp/graph/curve/opengl/shader/curverenderer01-single.vp",
          "src/jogl/classes/jogamp/graph/curve/opengl/VBORegion2PVBAAES2.java",
          "src/jogl/classes/jogamp/graph/curve/opengl/shader/curverenderer01-pass2-vbaa_flipquad3.glsl",
          "src/graphui/classes/com/jogamp/graph/ui/Scene.java",
          "src/demos/com/jogamp/opengl/demos/graph/ui/UIShapeClippingDemo01.java",
          "src/graphui/classes/com/jogamp/graph/ui/Group.java",
          "src/jogl/classes/jogamp/graph/curve/opengl/shader/curverenderer01-pass2-msaa.glsl",
          "src/jogl/classes/jogamp/graph/curve/opengl/shader/curverenderer01-pass2.vp",
          "src/jogl/classes/jogamp/graph/curve/opengl/shader/UniformNames.java",
          "src/jogl/classes/jogamp/graph/curve/opengl/shader/curverenderer01-pass2-vbaa_bforce_odd.glsl",
          "src/jogl/classes/jogamp/graph/curve/opengl/shader/curverenderer01-pass1-curve_simple.glsl",
          "src/jogl/classes/com/jogamp/graph/curve/opengl/RenderState.java",
          "src/jogl/classes/jogamp/graph/curve/opengl/VBORegion2PMSAAES2.java",
          "src/jogl/classes/jogamp/graph/curve/opengl/shader/uniforms.glsl",
          "src/jogl/classes/jogamp/graph/curve/opengl/shader/functions.glsl"
        ],
        "commitId" : "c1531c3d99b19032040018b9414263b0d3000147",
        "timestamp" : 1705723298000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sgothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "Graph Clipping: Use Frustum Clipping using AABBox -> Mv transformed Cube -> Frustum mapping + GraphUI Support\u000a\u000aAABBox clipping naturally couldn't be transformed into 3D Model-View (Mv) Space,\u000aas it is axis aligned and only provided 2 points (min/max).\u000a\u000aTherefor we map the Group's AABBox to a 8-point Cube,\u000aperform the Mv-transformation and then produce the 6-plane Frustum.\u000a\u000aAs before, we cull fully outside shapes within the Group's draw method\u000aand perform fragment clipping with same Frustum planes in the shader.\u000a\u000aWith clipping enabled, the 3D z-axis getBounds() depth\u000awill be slightly increased for functional Frustum operation.\u000aThis is also done for setFixedSize(Vec2f).\u000a\u000aThe Frustum planes are copied to the Graph shader\u000avia float[4*6] -> uniform vec4  gcu_ClipFrustum[6]; // L, R, B, T, N, F each {n.x, n.y, n.z, d}\u000a\u000a+++\u000a\u000aConcludes related work of below commits\u000a- 1040bed4ecc6f4598ea459f1073a9240583fc3c3\u000a- 5cca51e32999a882e2a5f00cb45ecafc824ffd86\u000a",
        "date" : "2024-01-20 05:01:38 +0100",
        "id" : "c1531c3d99b19032040018b9414263b0d3000147",
        "msg" : "Graph Clipping: Use Frustum Clipping using AABBox -> Mv transformed Cube -> Frustum mapping + GraphUI Support",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/com/jogamp/graph/ui/widgets/RangedGroup.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/jogamp/graph/curve/opengl/shader/UniformNames.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/jogamp/graph/curve/opengl/VBORegionSPES2.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/com/jogamp/graph/curve/opengl/RenderState.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/jogamp/graph/curve/opengl/VBORegion2PMSAAES2.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/com/jogamp/graph/curve/opengl/RegionRenderer.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/jogamp/graph/curve/opengl/shader/curverenderer01-single.vp"
          },
          {
            "editType" : "edit",
            "file" : "src/demos/com/jogamp/opengl/demos/graph/ui/UIShapeClippingDemo00.java"
          },
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/com/jogamp/graph/ui/Group.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/jogamp/graph/curve/opengl/shader/curverenderer01-pass1-curve_simple.glsl"
          },
          {
            "editType" : "edit",
            "file" : "src/demos/com/jogamp/opengl/demos/graph/ui/UIShapeClippingDemo01.java"
          },
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/com/jogamp/graph/ui/Scene.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/jogamp/graph/curve/opengl/shader/curverenderer01-pass1-curve_weight.glsl"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/jogamp/graph/curve/opengl/shader/functions.glsl"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/jogamp/graph/curve/opengl/shader/curverenderer01-pass2-vbaa_bforce_odd.glsl"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/jogamp/graph/curve/opengl/shader/varyings.glsl"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/jogamp/graph/curve/opengl/shader/curverenderer01-pass2-msaa.glsl"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/jogamp/graph/curve/opengl/shader/curverenderer01-pass2-vbaa_bforce_even.glsl"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/jogamp/graph/curve/opengl/shader/curverenderer01-pass2.vp"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/jogamp/graph/curve/opengl/shader/uniforms.glsl"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/jogamp/graph/curve/opengl/VBORegion2PVBAAES2.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/jogamp/graph/curve/opengl/shader/curverenderer01-pass2-vbaa_flipquad3.glsl"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/graphui/classes/com/jogamp/graph/ui/Group.java",
          "src/graphui/classes/com/jogamp/graph/ui/Scene.java",
          "src/graphui/classes/jogamp/graph/ui/TreeTool.java"
        ],
        "commitId" : "cd47baa406818f99c6d7e7711b7c1d16357456f6",
        "timestamp" : 1705723455000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sgothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "GraphUI Graph/Scene: Reuse TreeTool for contains(), getShapeByID() and getShapeByName(), also adding full traversion (instead of a flat lookup)\u000a",
        "date" : "2024-01-20 05:04:15 +0100",
        "id" : "cd47baa406818f99c6d7e7711b7c1d16357456f6",
        "msg" : "GraphUI Graph/Scene: Reuse TreeTool for contains(), getShapeByID() and getShapeByName(), also adding full traversion (instead of a flat lookup)",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/com/jogamp/graph/ui/Scene.java"
          },
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/com/jogamp/graph/ui/Group.java"
          },
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/jogamp/graph/ui/TreeTool.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/graphui/classes/com/jogamp/graph/ui/layout/GridLayout.java",
          "src/graphui/classes/com/jogamp/graph/ui/Group.java",
          "src/graphui/classes/com/jogamp/graph/ui/layout/BoxLayout.java"
        ],
        "commitId" : "5e2160edfb53d8896e4f8f0ed43e59a8e963d991",
        "timestamp" : 1705723560000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sgothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "GraphUI Group/BoxLayout/GridLayout: Handle empty Group, i.e. detect zero-size and avoid scale=Infinity and zero-sized resulting AABBox\u000a",
        "date" : "2024-01-20 05:06:00 +0100",
        "id" : "5e2160edfb53d8896e4f8f0ed43e59a8e963d991",
        "msg" : "GraphUI Group/BoxLayout/GridLayout: Handle empty Group, i.e. detect zero-size and avoid scale=Infinity and zero-sized resulting AABBox",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/com/jogamp/graph/ui/layout/GridLayout.java"
          },
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/com/jogamp/graph/ui/Group.java"
          },
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/com/jogamp/graph/ui/layout/BoxLayout.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/graphui/classes/com/jogamp/graph/ui/Group.java"
        ],
        "commitId" : "5a24e0bbaaa0cdb61292e264b4919295fff40a2a",
        "timestamp" : 1705723630000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sgothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "GraphUI Group: Add ctor with most usable values, allowing injecting a Group as a one-liner in code\u000a",
        "date" : "2024-01-20 05:07:10 +0100",
        "id" : "5a24e0bbaaa0cdb61292e264b4919295fff40a2a",
        "msg" : "GraphUI Group: Add ctor with most usable values, allowing injecting a Group as a one-liner in code",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/com/jogamp/graph/ui/Group.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/graphui/classes/com/jogamp/graph/ui/TooltipShape.java",
          "src/graphui/classes/com/jogamp/graph/ui/Tooltip.java",
          "src/graphui/classes/com/jogamp/graph/ui/Scene.java",
          "src/graphui/classes/com/jogamp/graph/ui/Shape.java"
        ],
        "commitId" : "018f2633ba8f7106439ec70829d2444abf0c389b",
        "timestamp" : 1705723888000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sgothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "GraphUI Tooltip*: Allow user to trigger display via now(); Ensure TooltipShape.DestroyCallback gets passed the user provided Shape only\u000a",
        "date" : "2024-01-20 05:11:28 +0100",
        "id" : "018f2633ba8f7106439ec70829d2444abf0c389b",
        "msg" : "GraphUI Tooltip*: Allow user to trigger display via now(); Ensure TooltipShape.DestroyCallback gets passed the user provided Shape only",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/com/jogamp/graph/ui/TooltipShape.java"
          },
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/com/jogamp/graph/ui/Scene.java"
          },
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/com/jogamp/graph/ui/Shape.java"
          },
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/com/jogamp/graph/ui/Tooltip.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/graphui/classes/com/jogamp/graph/ui/widgets/RangeSlider.java"
        ],
        "commitId" : "af1ad04206b56b3e268d24ca9244face6b802e2c",
        "timestamp" : 1705723914000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sgothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "GraphUI RangeSlider: Keep Region.AA_RENDERING_MASK in renderModes\u000a",
        "date" : "2024-01-20 05:11:54 +0100",
        "id" : "af1ad04206b56b3e268d24ca9244face6b802e2c",
        "msg" : "GraphUI RangeSlider: Keep Region.AA_RENDERING_MASK in renderModes",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/com/jogamp/graph/ui/widgets/RangeSlider.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/demos/com/jogamp/opengl/demos/graph/ui/FontView01.java"
        ],
        "commitId" : "4a9f20330309a4a788e13ca7388b5663cd9f85c3",
        "timestamp" : 1705724066000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sgothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "GraphUI Demo Fontview: Demonstrate Clipping w/ rotation; Reuse GlyphShape for grid, info-box and tooltip\u000a\u000aAdded TooltipText for help and TooltipShape for GlyphShape.\u000a\u000aNotable: The actual {@link GlyphShape} created for the glyph-grid {@link Group}\u000ais reused as-is in the bigger info-grid as well as for the {@link TooltipShape}.\u000a\u000aThis is possible only if not modifying the scale or position of the {@link GlyphShape},\u000aachieved by simply wrapping it in a {@link Group}.\u000aThe latter gets scaled and translated when dropped\u000ainto a {@link Group} with {@link Group.Layout}.\u000a\u000aThis is a good example for a Directed Acyclic Graph (DAG).\u000a",
        "date" : "2024-01-20 05:14:26 +0100",
        "id" : "4a9f20330309a4a788e13ca7388b5663cd9f85c3",
        "msg" : "GraphUI Demo Fontview: Demonstrate Clipping w/ rotation; Reuse GlyphShape for grid, info-box and tooltip",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/demos/com/jogamp/opengl/demos/graph/ui/FontView01.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/demos/com/jogamp/opengl/demos/graph/ui/UIShapeClippingDemo00.java"
        ],
        "commitId" : "b69496fef8d802b4af7d00c9a8150984520e1b4c",
        "timestamp" : 1705801792000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sgothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "UIShapeClippingDemo00: Fix behavior, use shape as child and completely chain rendering in display()\u000a",
        "date" : "2024-01-21 02:49:52 +0100",
        "id" : "b69496fef8d802b4af7d00c9a8150984520e1b4c",
        "msg" : "UIShapeClippingDemo00: Fix behavior, use shape as child and completely chain rendering in display()",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/demos/com/jogamp/opengl/demos/graph/ui/UIShapeClippingDemo00.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/demos/com/jogamp/opengl/demos/graph/ui/FontView01.java",
          "src/demos/com/jogamp/opengl/demos/graph/ui/UIShapeClippingDemo01.java",
          "src/demos/com/jogamp/opengl/demos/graph/ui/UIShapeClippingDemo00.java"
        ],
        "commitId" : "93adc67938cfcf00fc5f5f5efb78cd6319ffdc31",
        "timestamp" : 1705814405000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sgothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "GraphUI Demos: Minor finetuning..\u000a",
        "date" : "2024-01-21 06:20:05 +0100",
        "id" : "93adc67938cfcf00fc5f5f5efb78cd6319ffdc31",
        "msg" : "GraphUI Demos: Minor finetuning..",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/demos/com/jogamp/opengl/demos/graph/ui/UIShapeClippingDemo01.java"
          },
          {
            "editType" : "edit",
            "file" : "src/demos/com/jogamp/opengl/demos/graph/ui/FontView01.java"
          },
          {
            "editType" : "edit",
            "file" : "src/demos/com/jogamp/opengl/demos/graph/ui/UIShapeClippingDemo00.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/jogl/classes/com/jogamp/graph/curve/opengl/RegionRenderer.java"
        ],
        "commitId" : "ffe4e670c9d35121934c6f3c95067d9c18aee386",
        "timestamp" : 1705898295000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sgothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "Bug 1488 - Graph RegionRenderer Shader Mapping: Revert to IntObjectHashMap and throw exception on shaderKey collision\u000a\u000aCommit 6363ae5fb6975a6f2e7c1093ce81f25b699e3e61 changed\u000aRegionRenderer.useShaderProgram()'s shader mapping using a new ShaderKey instance.\u000a\u000aSuch ShaderKey instance is created every time @ RegionRenderer.useShaderProgram()\u000ato retrieve the ShaderProgram from the HashMap<ShaderKey, Shader Program>.\u000aWhile this is most correct, creating the ShaderKey instance causes\u000aa lot of temp objects.\u000a\u000aShaderKey also uses the optional colorTexSeq shader code for equality test\u000ain case of hash-collisions.\u000a\u000aPrevious code simply ignored hash-collisions and used a 1:1 hashCode -> ShaderProgram mapping using our IntObjectHashMap.\u000aHowever, there was no test whether collision occur.\u000a\u000a+++\u000a\u000aSolution would be either\u000a1- Revert fully to the previous code just using an IntObjectHashMap,\u000a   but throwing a RuntimeException in case of hashCode collisions.\u000a   In case of a collisions, we would need to produce a better hashCode.\u000a   This is possible, as the underlying data is fully internal .. etc.\u000a\u000a2- Use the IntObjectHashMap as long there is no hashCode collision,\u000a   then revert back to HashMap<ShaderKey, Shader Program>.\u000a\u000a+++\u000a\u000aThis patch implements variant (1), so far no exception has been thrown on\u000amultiple demos w/ and w/o diff color-textures.\u000a",
        "date" : "2024-01-22 05:38:15 +0100",
        "id" : "ffe4e670c9d35121934c6f3c95067d9c18aee386",
        "msg" : "Bug 1488 - Graph RegionRenderer Shader Mapping: Revert to IntObjectHashMap and throw exception on shaderKey collision",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/com/jogamp/graph/curve/opengl/RegionRenderer.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/graphui/classes/com/jogamp/graph/ui/AnimGroup.java",
          "src/demos/com/jogamp/opengl/demos/graph/ui/UIGraphDemoU01a.java",
          "src/demos/com/jogamp/opengl/demos/graph/ui/UIShapeClippingDemo00.java",
          "src/demos/com/jogamp/opengl/demos/graph/ui/UILayoutGrid01.java",
          "src/graphui/classes/com/jogamp/graph/ui/layout/BoxLayout.java",
          "src/graphui/classes/com/jogamp/graph/ui/Shape.java",
          "src/graphui/classes/com/jogamp/graph/ui/layout/GridLayout.java",
          "src/demos/com/jogamp/opengl/demos/graph/ui/UISceneDemo03.java",
          "src/graphui/classes/com/jogamp/graph/ui/Scene.java",
          "src/demos/com/jogamp/opengl/demos/graph/ui/UIShapeClippingDemo01.java",
          "src/jogl/classes/com/jogamp/math/Quaternion.java",
          "src/graphui/classes/com/jogamp/graph/ui/Group.java",
          "src/demos/com/jogamp/opengl/demos/graph/ui/FontView01.java",
          "src/demos/com/jogamp/opengl/demos/graph/ui/UIShapeDemo01.java",
          "src/demos/com/jogamp/opengl/demos/graph/ui/UILayoutBox01.java",
          "src/demos/com/jogamp/opengl/demos/graph/ui/UITypeDemo01.java",
          "src/demos/com/jogamp/opengl/demos/graph/ui/UISceneDemo20.java",
          "src/demos/com/jogamp/opengl/demos/graph/ui/UISceneDemo01b.java"
        ],
        "commitId" : "a883f3e2e1563736df32573141fd5119f0678c92",
        "timestamp" : 1705899214000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sgothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "Bug 1490 - GraphUI Group: Resolve Performance Issues with Shape Mv Transform -> PMVMatrix4f\u000a\u000aShape.setTransformMv() is called for each renderer frame and for each shape,\u000ainvolving 6 Matrix4f.mul() and set*() operations.\u000a\u000aSince mutation of shape's position, rotation or scale is less frequent\u000athan rendering one frame (for all shapes),\u000ait is more efficient to maintain a local Matrix4f and update it\u000aon such single mutations.\u000a\u000aRendering then only needs to perform one Matrix4f.mul() operation\u000ausing this internal matrix.\u000a\u000a+++\u000a\u000aAlso changes name from setTransformMv(PMVMatrix4f) to applyMatToMv(PMVMatrix4f),\u000aas its name might be misleading.\u000a",
        "date" : "2024-01-22 05:53:34 +0100",
        "id" : "a883f3e2e1563736df32573141fd5119f0678c92",
        "msg" : "Bug 1490 - GraphUI Group: Resolve Performance Issues with Shape Mv Transform -> PMVMatrix4f",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/com/jogamp/graph/ui/Shape.java"
          },
          {
            "editType" : "edit",
            "file" : "src/demos/com/jogamp/opengl/demos/graph/ui/UISceneDemo01b.java"
          },
          {
            "editType" : "edit",
            "file" : "src/demos/com/jogamp/opengl/demos/graph/ui/UITypeDemo01.java"
          },
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/com/jogamp/graph/ui/AnimGroup.java"
          },
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/com/jogamp/graph/ui/Group.java"
          },
          {
            "editType" : "edit",
            "file" : "src/demos/com/jogamp/opengl/demos/graph/ui/UIShapeClippingDemo01.java"
          },
          {
            "editType" : "edit",
            "file" : "src/demos/com/jogamp/opengl/demos/graph/ui/UILayoutBox01.java"
          },
          {
            "editType" : "edit",
            "file" : "src/demos/com/jogamp/opengl/demos/graph/ui/UIShapeDemo01.java"
          },
          {
            "editType" : "edit",
            "file" : "src/demos/com/jogamp/opengl/demos/graph/ui/FontView01.java"
          },
          {
            "editType" : "edit",
            "file" : "src/demos/com/jogamp/opengl/demos/graph/ui/UISceneDemo03.java"
          },
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/com/jogamp/graph/ui/Scene.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/com/jogamp/math/Quaternion.java"
          },
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/com/jogamp/graph/ui/layout/GridLayout.java"
          },
          {
            "editType" : "edit",
            "file" : "src/demos/com/jogamp/opengl/demos/graph/ui/UILayoutGrid01.java"
          },
          {
            "editType" : "edit",
            "file" : "src/demos/com/jogamp/opengl/demos/graph/ui/UISceneDemo20.java"
          },
          {
            "editType" : "edit",
            "file" : "src/demos/com/jogamp/opengl/demos/graph/ui/UIShapeClippingDemo00.java"
          },
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/com/jogamp/graph/ui/layout/BoxLayout.java"
          },
          {
            "editType" : "edit",
            "file" : "src/demos/com/jogamp/opengl/demos/graph/ui/UIGraphDemoU01a.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/graphui/classes/com/jogamp/graph/ui/Group.java",
          "src/graphui/classes/com/jogamp/graph/ui/Scene.java"
        ],
        "commitId" : "bf096870c73898963558bef5c9d75760f9f76290",
        "timestamp" : 1705899750000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sgothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "Bug 1490 - GraphUI Performance: Group/Scene: Use temp sorted arrays\u000a\u000aGroup/Scene's uses temp arrays for Z oder sorting,\u000awhich should be maintained locally to avoid too many temp object creations.\u000a",
        "date" : "2024-01-22 06:02:30 +0100",
        "id" : "bf096870c73898963558bef5c9d75760f9f76290",
        "msg" : "Bug 1490 - GraphUI Performance: Group/Scene: Use temp sorted arrays",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/com/jogamp/graph/ui/Group.java"
          },
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/com/jogamp/graph/ui/Scene.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/graphui/classes/com/jogamp/graph/ui/Container.java",
          "src/demos/com/jogamp/opengl/demos/graph/ui/UILayoutGrid01.java",
          "src/graphui/classes/com/jogamp/graph/ui/Shape.java",
          "src/graphui/classes/com/jogamp/graph/ui/widgets/MediaPlayer.java",
          "src/graphui/classes/jogamp/graph/ui/TreeTool.java",
          "src/graphui/classes/com/jogamp/graph/ui/widgets/RangedGroup.java",
          "src/demos/com/jogamp/opengl/demos/graph/ui/UIMediaGrid01.java",
          "src/demos/com/jogamp/opengl/demos/graph/ui/UISceneDemo11.java",
          "src/demos/com/jogamp/opengl/demos/graph/ui/UISceneDemo03.java",
          "src/graphui/classes/com/jogamp/graph/ui/Scene.java",
          "src/test/com/jogamp/opengl/test/junit/graph/FontViewListener01.java",
          "src/graphui/classes/com/jogamp/graph/ui/Group.java",
          "src/demos/com/jogamp/opengl/demos/graph/ui/FontView01.java",
          "src/demos/com/jogamp/opengl/demos/graph/ui/UILayoutBox01.java",
          "src/demos/com/jogamp/opengl/demos/graph/ui/UILayoutBoxGridOffset01.java",
          "src/demos/com/jogamp/opengl/demos/graph/ui/UIMediaGrid00.java"
        ],
        "commitId" : "5f9fb7159fa33bc979e5050d384b6939658049bd",
        "timestamp" : 1705901725000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sgothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "Bug 1489 - GraphUI Group: Resolve Performance Regression in Scene.pickShape(): Drop invisible and clipped shapes\u000a\u000aAfter implementing Bug 1487 (Frustum Clipping/Culling) and using thousands of shapes within one Group mostly culled (outside of frustum),\u000aoverall mouse Scene.pickShape() caused tremendous lagging.\u000a\u000aThis is caused by Scene.pickShape() traversing through _all_ shapes,\u000arendered ones, invisible ones and culled ones.\u000a\u000a+++\u000a\u000aSolution is to have Scene and Group provide a pre-sorted list\u000aof actually rendered shapes, i.e. isVisible() and not culled.\u000a\u000aScene.pickShape() can now use this reduced and pre-sorted list\u000areducing the load considerably.\u000a\u000a+++\u000a\u000aFurther\u000a- cleanup TreeTool\u000a\u000a- rename Container methods:\u000a-- setFrustumCullingEnabled() -> setPMvCullingEnabled()\u000a-- isFrustumCullingEnabled() -> isPMvCullingEnabled()\u000a\u000a- supply Container with\u000a-- isCullingEnabled()\u000a-- List<Shape> getRenderedShapes()\u000a-- isOutside()\u000a-- isOutside2()\u000a-- forAllRendered()\u000a",
        "date" : "2024-01-22 06:35:25 +0100",
        "id" : "5f9fb7159fa33bc979e5050d384b6939658049bd",
        "msg" : "Bug 1489 - GraphUI Group: Resolve Performance Regression in Scene.pickShape(): Drop invisible and clipped shapes",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/com/jogamp/graph/ui/Container.java"
          },
          {
            "editType" : "edit",
            "file" : "src/demos/com/jogamp/opengl/demos/graph/ui/UISceneDemo03.java"
          },
          {
            "editType" : "edit",
            "file" : "src/demos/com/jogamp/opengl/demos/graph/ui/UILayoutBox01.java"
          },
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/jogamp/graph/ui/TreeTool.java"
          },
          {
            "editType" : "edit",
            "file" : "src/demos/com/jogamp/opengl/demos/graph/ui/UILayoutBoxGridOffset01.java"
          },
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/com/jogamp/graph/ui/widgets/MediaPlayer.java"
          },
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/com/jogamp/graph/ui/Shape.java"
          },
          {
            "editType" : "edit",
            "file" : "src/demos/com/jogamp/opengl/demos/graph/ui/FontView01.java"
          },
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/com/jogamp/graph/ui/Scene.java"
          },
          {
            "editType" : "edit",
            "file" : "src/demos/com/jogamp/opengl/demos/graph/ui/UIMediaGrid01.java"
          },
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/com/jogamp/graph/ui/Group.java"
          },
          {
            "editType" : "edit",
            "file" : "src/demos/com/jogamp/opengl/demos/graph/ui/UILayoutGrid01.java"
          },
          {
            "editType" : "edit",
            "file" : "src/demos/com/jogamp/opengl/demos/graph/ui/UIMediaGrid00.java"
          },
          {
            "editType" : "edit",
            "file" : "src/test/com/jogamp/opengl/test/junit/graph/FontViewListener01.java"
          },
          {
            "editType" : "edit",
            "file" : "src/demos/com/jogamp/opengl/demos/graph/ui/UISceneDemo11.java"
          },
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/com/jogamp/graph/ui/widgets/RangedGroup.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/graphui/classes/com/jogamp/graph/ui/Shape.java"
        ],
        "commitId" : "daf9ae20ebc45c851bc3b8384f4cee3cded8d9dc",
        "timestamp" : 1705901885000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sgothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "Bug 1490: Add missing rename Shape.transformMvTo() -> applyMatToMv(), an transformMvTo() was an intermediate rename (oops)\u000a",
        "date" : "2024-01-22 06:38:05 +0100",
        "id" : "daf9ae20ebc45c851bc3b8384f4cee3cded8d9dc",
        "msg" : "Bug 1490: Add missing rename Shape.transformMvTo() -> applyMatToMv(), an transformMvTo() was an intermediate rename (oops)",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/com/jogamp/graph/ui/Shape.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/jogl/classes/com/jogamp/graph/curve/opengl/RegionRenderer.java"
        ],
        "commitId" : "6cf158cc59e901b49ab54681e363d23492421a9d",
        "timestamp" : 1705902281000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sgothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "Bug 1488 - Graph RegionRenderer: Ensure shaderPrograms1 path is disabled using 'static final boolean useShaderPrograms0 = true'\u000a\u000aFor now, let's leave the dead shaderPrograms1 code path inside the class for further consideration.\u000a",
        "date" : "2024-01-22 06:44:41 +0100",
        "id" : "6cf158cc59e901b49ab54681e363d23492421a9d",
        "msg" : "Bug 1488 - Graph RegionRenderer: Ensure shaderPrograms1 path is disabled using 'static final boolean useShaderPrograms0 = true'",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/com/jogamp/graph/curve/opengl/RegionRenderer.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/graphui/classes/com/jogamp/graph/ui/Tooltip.java",
          "src/demos/com/jogamp/opengl/demos/graph/ui/FontView01.java",
          "src/graphui/classes/com/jogamp/graph/ui/TooltipShape.java"
        ],
        "commitId" : "6c11c32f4081e9029eeed281d317894bd179f1e3",
        "timestamp" : 1705909046000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sgothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "Simplify TooltipShape: Create own wrapper Group to not mutate user given Shape (if reused in DAG); Fix FontView01 TooltipShape instance, use NoOp DestroyCallback\u000a",
        "date" : "2024-01-22 08:37:26 +0100",
        "id" : "6c11c32f4081e9029eeed281d317894bd179f1e3",
        "msg" : "Simplify TooltipShape: Create own wrapper Group to not mutate user given Shape (if reused in DAG); Fix FontView01 TooltipShape instance, use NoOp DestroyCallback",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/demos/com/jogamp/opengl/demos/graph/ui/FontView01.java"
          },
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/com/jogamp/graph/ui/TooltipShape.java"
          },
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/com/jogamp/graph/ui/Tooltip.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/graphui/classes/com/jogamp/graph/ui/TooltipShape.java"
        ],
        "commitId" : "9b7ce6e69033d46a033af0538facad293054670a",
        "timestamp" : 1705641106000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sgothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "TooltipShape.destroyTip(): Only show warning instead of throwing a RuntimeException if tip couldn't be found within wrapper Group\u000a",
        "date" : "2024-01-19 06:11:46 +0100",
        "id" : "9b7ce6e69033d46a033af0538facad293054670a",
        "msg" : "TooltipShape.destroyTip(): Only show warning instead of throwing a RuntimeException if tip couldn't be found within wrapper Group",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/com/jogamp/graph/ui/TooltipShape.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/graphui/classes/com/jogamp/graph/ui/Scene.java"
        ],
        "commitId" : "19fac36ae64ffb219fb40449b537219d74a1f000",
        "timestamp" : 1705641106000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sgothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "Scene.dispatchMouseEventPickShape(): Reuse PMVMatrix4f, Ray and Vec3f within EDT, reducing temp objects on mouse moves\u000a",
        "date" : "2024-01-19 06:11:46 +0100",
        "id" : "19fac36ae64ffb219fb40449b537219d74a1f000",
        "msg" : "Scene.dispatchMouseEventPickShape(): Reuse PMVMatrix4f, Ray and Vec3f within EDT, reducing temp objects on mouse moves",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/com/jogamp/graph/ui/Scene.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/jogl/classes/com/jogamp/graph/curve/opengl/RegionRenderer.java"
        ],
        "commitId" : "1dcfdf71c09c6d774ac47012c05e09da4a085d7b",
        "timestamp" : 1705957319000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sgothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "Bug 1488 - Graph RegionRenderer: Use a more deterministic 64-bit shaderKey: [0-31] bit values and state, [32-63] colorTexSeqHash\u000a\u000aThis leaves only room for a key collision on the 32-bit colorTexSeqHash value\u000aand hence should be save within our shader-code environment.\u000a\u000a+        //  # |  s |\u000a+        //  0 |  1 | isTwoPass\u000a+        //  1 |  1 | pass1\u000a+        //  2 |  5 | ShaderModeSelector1\u000a+        //  7 |  1 | hasFrustumClipping\u000a+        //  8 |  1 | hasColorChannel\u000a+        //  9 |  1 | hasColorTexture\u000a+        // 32 | 32 | colorTexSeqHash\u000a+        long hash =             ( isTwoPass ? 1 : 0 );\u000a+        hash = ( hash << 1 ) | ( pass1 ? 1 : 0 ) ;\u000a+        hash = ( hash << 1 ) | sms.ordinal(); // incl. pass2Quality + sampleCount\u000a+        hash = ( hash << 5 ) | ( hasFrustumClipping ? 1 : 0 );\u000a+        hash = ( hash << 1 ) | ( hasColorChannel ? 1 : 0 );\u000a+        hash = ( hash << 1 ) | ( hasColorTexture ? 1 : 0 );\u000a+        hash = ( hash << 1 ) | ( ( colorTexSeqHash & 0xFFFFFFL ) << 32 );\u000a",
        "date" : "2024-01-22 22:01:59 +0100",
        "id" : "1dcfdf71c09c6d774ac47012c05e09da4a085d7b",
        "msg" : "Bug 1488 - Graph RegionRenderer: Use a more deterministic 64-bit shaderKey: [0-31] bit values and state, [32-63] colorTexSeqHash",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/com/jogamp/graph/curve/opengl/RegionRenderer.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/jogl/classes/jogamp/opengl/util/av/impl/FFMPEGMediaPlayer.java"
        ],
        "commitId" : "95e2519a0fc37d19d05bc0f4cc14f593eaae7dd9",
        "timestamp" : 1705957409000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sgothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "Bug 1488: FFMPEGMediaPlayer: Fix getTextureFragmentShaderHashID(), i.e. use actual tc_w_1 = (float)getWidth() / (float)texWidth value as hardcoded within the shader.\u000a",
        "date" : "2024-01-22 22:03:29 +0100",
        "id" : "95e2519a0fc37d19d05bc0f4cc14f593eaae7dd9",
        "msg" : "Bug 1488: FFMPEGMediaPlayer: Fix getTextureFragmentShaderHashID(), i.e. use actual tc_w_1 = (float)getWidth() / (float)texWidth value as hardcoded within the shader.",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/jogamp/opengl/util/av/impl/FFMPEGMediaPlayer.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/jogl/classes/jogamp/graph/curve/opengl/VBORegionSPES2.java"
        ],
        "commitId" : "234ca0c815a6261ac59c20ad30bf97eb997df63e",
        "timestamp" : 1705957439000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sgothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "VBORegionSPES2: Disable verbose flag in TextureSequence.setTexCoordBBox() .. oops\u000a",
        "date" : "2024-01-22 22:03:59 +0100",
        "id" : "234ca0c815a6261ac59c20ad30bf97eb997df63e",
        "msg" : "VBORegionSPES2: Disable verbose flag in TextureSequence.setTexCoordBBox() .. oops",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/jogamp/graph/curve/opengl/VBORegionSPES2.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/demos/com/jogamp/opengl/demos/graph/ui/UIMediaGrid01.java",
          "src/demos/com/jogamp/opengl/demos/graph/ui/UIMediaGrid00.java",
          "src/demos/com/jogamp/opengl/demos/graph/ui/FontView01.java"
        ],
        "commitId" : "48f907dc431817806f8bd766d98dcca59dc8290c",
        "timestamp" : 1705957471000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sgothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "GraphUI Demos: Minor fixes\u000a",
        "date" : "2024-01-22 22:04:31 +0100",
        "id" : "48f907dc431817806f8bd766d98dcca59dc8290c",
        "msg" : "GraphUI Demos: Minor fixes",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/demos/com/jogamp/opengl/demos/graph/ui/UIMediaGrid01.java"
          },
          {
            "editType" : "edit",
            "file" : "src/demos/com/jogamp/opengl/demos/graph/ui/UIMediaGrid00.java"
          },
          {
            "editType" : "edit",
            "file" : "src/demos/com/jogamp/opengl/demos/graph/ui/FontView01.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/graphui/classes/com/jogamp/graph/ui/Tooltip.java",
          "src/demos/com/jogamp/opengl/demos/graph/ui/FontView01.java"
        ],
        "commitId" : "a516c694031e77c0e94d30f769c66495c4bf72ea",
        "timestamp" : 1705641106000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sgothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "GraphUI Tooltip: Use delayMS for no time-based alarm (only used for now()); FontView01: Use TooltipShape for GlyphShape only with mouse click -> Tooltip.now()\u000a",
        "date" : "2024-01-19 06:11:46 +0100",
        "id" : "a516c694031e77c0e94d30f769c66495c4bf72ea",
        "msg" : "GraphUI Tooltip: Use delayMS for no time-based alarm (only used for now()); FontView01: Use TooltipShape for GlyphShape only with mouse click -> Tooltip.now()",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/demos/com/jogamp/opengl/demos/graph/ui/FontView01.java"
          },
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/com/jogamp/graph/ui/Tooltip.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/demos/com/jogamp/opengl/demos/graph/ui/FontView01.java",
          "src/graphui/classes/com/jogamp/graph/ui/widgets/RangedGroup.java",
          "src/graphui/classes/com/jogamp/graph/ui/widgets/RangeSlider.java",
          "src/demos/com/jogamp/opengl/demos/graph/ui/UIMediaGrid01.java"
        ],
        "commitId" : "95de4407faf91f30ccecb3af1aad4242172a6e0f",
        "timestamp" : 1705641106000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sgothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "GraphUI RangeSlider/RangedGroup: Fix overall integration, adding more API comments; UIMediaGrid01 now uses RangedGroup\u000a\u000aRangeSlider\u000a- Fix pageSize, i.e. allow valid content.getBounds() be pending @ validateImpl()\u000a\u000a- Clip value [0, maximum - pageSize]\u000a\u000a- Has to use Float.isFinite() to capture both, NaN and Infinity\u000a-- used for pageSize, determining whether slider uses pageSize rect-knob or position round-knob\u000a-- used for minMax, val, val_pct and temp range + pageSize_pct\u000a-- don't overwrite valid pageSize if leading to !isFinite()\u000a\u000a- Reuse setKnobSize() for ctor as well, where padding is be done once (FIXME?)\u000a\u000a- Tested via RangedGroup w/ UIMediaGrid01 and FontView0\u000a-- vertical slider, inverse and !inverse\u000a",
        "date" : "2024-01-19 06:11:46 +0100",
        "id" : "95de4407faf91f30ccecb3af1aad4242172a6e0f",
        "msg" : "GraphUI RangeSlider/RangedGroup: Fix overall integration, adding more API comments; UIMediaGrid01 now uses RangedGroup",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/demos/com/jogamp/opengl/demos/graph/ui/FontView01.java"
          },
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/com/jogamp/graph/ui/widgets/RangedGroup.java"
          },
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/com/jogamp/graph/ui/widgets/RangeSlider.java"
          },
          {
            "editType" : "edit",
            "file" : "src/demos/com/jogamp/opengl/demos/graph/ui/UIMediaGrid01.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/graphui/classes/com/jogamp/graph/ui/widgets/MediaPlayer.java"
        ],
        "commitId" : "4358310d3233f38d154c03ffbf1fed71891aeaf3",
        "timestamp" : 1705641106000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sgothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "GraphUI MediaPlayer: Fix Zoom behavior; Disable DEBUG output\u000a",
        "date" : "2024-01-19 06:11:46 +0100",
        "id" : "4358310d3233f38d154c03ffbf1fed71891aeaf3",
        "msg" : "GraphUI MediaPlayer: Fix Zoom behavior; Disable DEBUG output",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/com/jogamp/graph/ui/widgets/MediaPlayer.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/jogl/classes/jogamp/graph/font/JavaFontLoader.java",
          "src/jogl/classes/com/jogamp/graph/font/FontFactory.java",
          "src/demos/com/jogamp/opengl/demos/graph/GPUTextRendererListenerBase01.java",
          "src/test/com/jogamp/opengl/test/junit/graph/TestTextRendererNEWT20.java",
          "src/test/com/jogamp/opengl/test/junit/graph/GPUTextRendererListenerBase01.java",
          "src/demos/com/jogamp/opengl/demos/util/MiscUtils.java"
        ],
        "commitId" : "4cbf5297af18f541baa5cd5b85017b1a7a5c19c0",
        "timestamp" : 1706169620000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sgothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "Graph: Drop non-existing 'JAVA' font from FontFactory\u000a",
        "date" : "2024-01-25 09:00:20 +0100",
        "id" : "4cbf5297af18f541baa5cd5b85017b1a7a5c19c0",
        "msg" : "Graph: Drop non-existing 'JAVA' font from FontFactory",
        "paths" : [
          {
            "editType" : "delete",
            "file" : "src/jogl/classes/jogamp/graph/font/JavaFontLoader.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/com/jogamp/graph/font/FontFactory.java"
          },
          {
            "editType" : "edit",
            "file" : "src/test/com/jogamp/opengl/test/junit/graph/TestTextRendererNEWT20.java"
          },
          {
            "editType" : "edit",
            "file" : "src/test/com/jogamp/opengl/test/junit/graph/GPUTextRendererListenerBase01.java"
          },
          {
            "editType" : "edit",
            "file" : "src/demos/com/jogamp/opengl/demos/graph/GPUTextRendererListenerBase01.java"
          },
          {
            "editType" : "edit",
            "file" : "src/demos/com/jogamp/opengl/demos/util/MiscUtils.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/jogl/classes/com/jogamp/graph/curve/opengl/RegionRenderer.java"
        ],
        "commitId" : "b711ae5239b8581a197d468b2804cfeb8c4d6c94",
        "timestamp" : 1706170914000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sgothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "Bug 1488: Complete/Fix producing the 64-bit shaderKey: Use long values in bit-shift expressions and simplify it\u000a\u000acommit 1dcfdf71c09c6d774ac47012c05e09da4a085d7b\u000a- still used the 'hash code' bit shift pattern, not necessary -> simplified\u000a- the value as not ensured to be long, hence conversion occured\u000a\u000aThis caused Graph's MSAA not being picked up properly using the shaderKey.\u000a",
        "date" : "2024-01-25 09:21:54 +0100",
        "id" : "b711ae5239b8581a197d468b2804cfeb8c4d6c94",
        "msg" : "Bug 1488: Complete/Fix producing the 64-bit shaderKey: Use long values in bit-shift expressions and simplify it",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/com/jogamp/graph/curve/opengl/RegionRenderer.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/nativewindow/classes/com/jogamp/nativewindow/AbstractGraphicsDevice.java",
          "src/nativewindow/classes/com/jogamp/nativewindow/NativeWindowFactory.java",
          "src/nativewindow/classes/com/jogamp/nativewindow/x11/X11GraphicsDevice.java",
          "src/nativewindow/classes/com/jogamp/nativewindow/DefaultGraphicsDevice.java",
          "src/jogl/classes/jogamp/opengl/x11/glx/X11GLXContext.java",
          "src/nativewindow/classes/com/jogamp/nativewindow/egl/EGLGraphicsDevice.java"
        ],
        "commitId" : "76487cd34ba706bee6c122a1cbbc75f5639eb4a4",
        "timestamp" : 1706171511000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sgothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "NativeWindowFactory.createDevice(..) w/ unitID for cloning; DefaultGraphicsDevice: Move ownership (Object) code into base class ensuring same code\u000a\u000aNativeWindowFactory.createDevice(..) w/ unitID\u000a- Allows cloning a device instance with same parameter.\u000a\u000aDefaultGraphicsDevice: Move ownership (Object) code final into base class ensuring same code\u000a- Rename DefaultGraphicsDevice.swapDeviceHandleAndOwnership() -> swapHandleAndOwnership()\u000a",
        "date" : "2024-01-25 09:31:51 +0100",
        "id" : "76487cd34ba706bee6c122a1cbbc75f5639eb4a4",
        "msg" : "NativeWindowFactory.createDevice(..) w/ unitID for cloning; DefaultGraphicsDevice: Move ownership (Object) code into base class ensuring same code",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/nativewindow/classes/com/jogamp/nativewindow/x11/X11GraphicsDevice.java"
          },
          {
            "editType" : "edit",
            "file" : "src/nativewindow/classes/com/jogamp/nativewindow/AbstractGraphicsDevice.java"
          },
          {
            "editType" : "edit",
            "file" : "src/nativewindow/classes/com/jogamp/nativewindow/NativeWindowFactory.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/jogamp/opengl/x11/glx/X11GLXContext.java"
          },
          {
            "editType" : "edit",
            "file" : "src/nativewindow/classes/com/jogamp/nativewindow/DefaultGraphicsDevice.java"
          },
          {
            "editType" : "edit",
            "file" : "src/nativewindow/classes/com/jogamp/nativewindow/egl/EGLGraphicsDevice.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/jogl/classes/com/jogamp/opengl/GLEventListenerState.java"
        ],
        "commitId" : "18afa5200983bb158e631c81f2df1ca1a45cd882",
        "timestamp" : 1706172209000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sgothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "Bug 1491: Add missing rename DefaultGraphicsDevice.swap{Device->}HandleAndOwnership()\u000a",
        "date" : "2024-01-25 09:43:29 +0100",
        "id" : "18afa5200983bb158e631c81f2df1ca1a45cd882",
        "msg" : "Bug 1491: Add missing rename DefaultGraphicsDevice.swap{Device->}HandleAndOwnership()",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/com/jogamp/opengl/GLEventListenerState.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/jogl/classes/jogamp/opengl/util/av/impl/FFMPEGMediaPlayer.java"
        ],
        "commitId" : "78812de21182e32f86a823321b017f7f6cf52ae3",
        "timestamp" : 1706172612000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sgothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "Bug 1491: FFMPEGMediaPlayer: Lock moviePtr lifecycle phase in-between [initStreamImpl - destruction]\u000a\u000ainitStreamImpl() calls ffmpeg natives.setStream0(..), which in turn callsback to the GLMediaPlayerImpl\u000aand FFMPEGPlayer and hence requires a valid moviePtr. In total, it covers a longer time period.\u000a\u000aThis patch uses a moviePtrLock object avoiding destruction while within initStreamImpl.\u000a",
        "date" : "2024-01-25 09:50:12 +0100",
        "id" : "78812de21182e32f86a823321b017f7f6cf52ae3",
        "msg" : "Bug 1491: FFMPEGMediaPlayer: Lock moviePtr lifecycle phase in-between [initStreamImpl - destruction]",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/jogamp/opengl/util/av/impl/FFMPEGMediaPlayer.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/jogl/classes/jogamp/opengl/util/av/GLMediaPlayerImpl.java"
        ],
        "commitId" : "8fe39d3a524e5e580cf2667988965f1e27fed95b",
        "timestamp" : 1706172810000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sgothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "Bug 1491: GLMediaPlayerImpl: Use a shared *GraphicsDevice for all compatible shared GLContext, removing resource restrictions\u000a\u000aIn a use case with hundreds of GLMediaPlayer instances,\u000athis causes the application to bail out due to running out of resources.\u000a\u000a+++\u000a\u000aGLMediaPlayer exposes resource restrictions and locking related\u000awith the created off-thread shared GLContext\u000adue to its newly created NativeWindow *GraphicsDevice instance (on X11).\u000a\u000aOn the X11 platform, the *GraphicsDevice actually uses a native resource (X11 Display handle) and hence creating such device is costly and limited.\u000a\u000aTo operate an off-thread GLContext w/o actual X11 input handling,\u000ait is *NOT* required to use a new instance.\u000a\u000a+++\u000a\u000aFurther more, the device is using locking.\u000aTo operate an off-thread GLContext, it is *NOT* required to use locking on it\u000aas it does not perform actual X11 input handling etc.\u000aAll operations are performed on the shared GL context.\u000a\u000a+++\u000a\u000aSolution is to create a shared non-locking device clone\u000acompatible with the source.\u000aA share counter shall determine that the last one actually gets destructed.\u000aThe usual ..\u000a",
        "date" : "2024-01-25 09:53:30 +0100",
        "id" : "8fe39d3a524e5e580cf2667988965f1e27fed95b",
        "msg" : "Bug 1491: GLMediaPlayerImpl: Use a shared *GraphicsDevice for all compatible shared GLContext, removing resource restrictions",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/jogamp/opengl/util/av/GLMediaPlayerImpl.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/test/com/jogamp/opengl/test/junit/math/Matrix4fb.java",
          "src/jogl/classes/com/jogamp/math/Vec2f.java",
          "src/jogl/classes/com/jogamp/math/Matrix4f.java",
          "src/graphui/classes/com/jogamp/graph/ui/layout/BoxLayout.java",
          "src/graphui/classes/com/jogamp/graph/ui/Shape.java",
          "src/jogl/classes/com/jogamp/math/Vec3d.java",
          "src/jogl/classes/com/jogamp/math/Vec4f.java",
          "src/jogl/classes/com/jogamp/math/Vec3f.java",
          "src/graphui/classes/com/jogamp/graph/ui/layout/GridLayout.java",
          "src/jogl/classes/com/jogamp/math/geom/AABBox.java"
        ],
        "commitId" : "09c256e2f26938cc2015176e259164bd7421dbdd",
        "timestamp" : 1706228301000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sgothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "Math Vec*: Rename {scale->mul}(..) for non-scalar types (n-dim); Add div(..)\u000a",
        "date" : "2024-01-26 01:18:21 +0100",
        "id" : "09c256e2f26938cc2015176e259164bd7421dbdd",
        "msg" : "Math Vec*: Rename {scale->mul}(..) for non-scalar types (n-dim); Add div(..)",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/com/jogamp/graph/ui/layout/BoxLayout.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/com/jogamp/math/Vec3d.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/com/jogamp/math/Vec4f.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/com/jogamp/math/Vec3f.java"
          },
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/com/jogamp/graph/ui/Shape.java"
          },
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/com/jogamp/graph/ui/layout/GridLayout.java"
          },
          {
            "editType" : "edit",
            "file" : "src/test/com/jogamp/opengl/test/junit/math/Matrix4fb.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/com/jogamp/math/Vec2f.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/com/jogamp/math/Matrix4f.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/com/jogamp/math/geom/AABBox.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/graphui/classes/com/jogamp/graph/ui/layout/Padding.java",
          "src/graphui/classes/com/jogamp/graph/ui/layout/GridLayout.java",
          "src/graphui/classes/com/jogamp/graph/ui/layout/Margin.java",
          "src/graphui/classes/com/jogamp/graph/ui/layout/BoxLayout.java",
          "src/graphui/classes/com/jogamp/graph/ui/Shape.java",
          "src/graphui/classes/com/jogamp/graph/ui/layout/Gap.java"
        ],
        "commitId" : "ab29e3b34ea29d35b04ad2771ca20e49f1a59351",
        "timestamp" : 1706231218000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sgothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "GraphUI Layout: Emphasize whether a value/parameter is scaled or unscaled in API doc to ease usage\u000a",
        "date" : "2024-01-26 02:06:58 +0100",
        "id" : "ab29e3b34ea29d35b04ad2771ca20e49f1a59351",
        "msg" : "GraphUI Layout: Emphasize whether a value/parameter is scaled or unscaled in API doc to ease usage",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/com/jogamp/graph/ui/layout/Padding.java"
          },
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/com/jogamp/graph/ui/Shape.java"
          },
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/com/jogamp/graph/ui/layout/GridLayout.java"
          },
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/com/jogamp/graph/ui/layout/BoxLayout.java"
          },
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/com/jogamp/graph/ui/layout/Gap.java"
          },
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/com/jogamp/graph/ui/layout/Margin.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/graphui/classes/com/jogamp/graph/ui/Shape.java"
        ],
        "commitId" : "f57d165b3f6194918dfa7327188b96b79d601393",
        "timestamp" : 1706242231000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sgothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "GraphUI Shape: API doc for colors; add makeShapeDirty() on setColor(); add activeRGBAModulateOn.\u000a",
        "date" : "2024-01-26 05:10:31 +0100",
        "id" : "f57d165b3f6194918dfa7327188b96b79d601393",
        "msg" : "GraphUI Shape: API doc for colors; add makeShapeDirty() on setColor(); add activeRGBAModulateOn.",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/com/jogamp/graph/ui/Shape.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/graphui/classes/com/jogamp/graph/ui/widgets/RangeSlider.java"
        ],
        "commitId" : "4ef4dea6eee5873f1185ecfb283a4eff059b22c7",
        "timestamp" : 1706242339000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sgothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "GraphUI RangeSlider: Use a modulating color for rect page frame for visible response when active\u000a",
        "date" : "2024-01-26 05:12:19 +0100",
        "id" : "4ef4dea6eee5873f1185ecfb283a4eff059b22c7",
        "msg" : "GraphUI RangeSlider: Use a modulating color for rect page frame for visible response when active",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/com/jogamp/graph/ui/widgets/RangeSlider.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/graphui/classes/com/jogamp/graph/ui/widgets/MediaPlayer.java"
        ],
        "commitId" : "3d409f9ddde495f6a2cccbd06e4552acf134cbd7",
        "timestamp" : 1706242513000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sgothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "GraphUI MediaPlayer: Cleanup infoLabel layout; Add sticky HUD (always-on) button; Fix tooltip help; Make slower-speed reduce by half if <= 1\u000a",
        "date" : "2024-01-26 05:15:13 +0100",
        "id" : "3d409f9ddde495f6a2cccbd06e4552acf134cbd7",
        "msg" : "GraphUI MediaPlayer: Cleanup infoLabel layout; Add sticky HUD (always-on) button; Fix tooltip help; Make slower-speed reduce by half if <= 1",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/com/jogamp/graph/ui/widgets/MediaPlayer.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/demos/com/jogamp/opengl/demos/graph/ui/UIMediaGrid01.java",
          "src/demos/com/jogamp/opengl/demos/graph/ui/FontView01.java"
        ],
        "commitId" : "f981e929d29157b6128db6cccd585baf58049516",
        "timestamp" : 1706242666000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sgothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "GraphUI Demos: Bump FontView01 + UIMediaGrid01\u000a",
        "date" : "2024-01-26 05:17:46 +0100",
        "id" : "f981e929d29157b6128db6cccd585baf58049516",
        "msg" : "GraphUI Demos: Bump FontView01 + UIMediaGrid01",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/demos/com/jogamp/opengl/demos/graph/ui/FontView01.java"
          },
          {
            "editType" : "edit",
            "file" : "src/demos/com/jogamp/opengl/demos/graph/ui/UIMediaGrid01.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/jogl/classes/jogamp/opengl/util/av/GLMediaPlayerImpl.java",
          "src/jogl/classes/com/jogamp/opengl/util/av/GLMediaPlayer.java"
        ],
        "commitId" : "85ff5a8b745a0dd582d19871f685b7b0beb1af70",
        "timestamp" : 1706296129000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sgothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "GLMediaPlayer: Fix playing with single-threaded mode w/ texture-count 1\u000a",
        "date" : "2024-01-26 20:08:49 +0100",
        "id" : "85ff5a8b745a0dd582d19871f685b7b0beb1af70",
        "msg" : "GLMediaPlayer: Fix playing with single-threaded mode w/ texture-count 1",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/jogamp/opengl/util/av/GLMediaPlayerImpl.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/com/jogamp/opengl/util/av/GLMediaPlayer.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/jogl/classes/jogamp/opengl/util/av/GLMediaPlayerImpl.java"
        ],
        "commitId" : "68ca5b14966cb7eec9501c17dc8b3b465421a68e",
        "timestamp" : 1706317429000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sgothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "GLMediaPlayerImpl: Throw out video_queue_growth\u000a",
        "date" : "2024-01-27 02:03:49 +0100",
        "id" : "68ca5b14966cb7eec9501c17dc8b3b465421a68e",
        "msg" : "GLMediaPlayerImpl: Throw out video_queue_growth",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/jogamp/opengl/util/av/GLMediaPlayerImpl.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/jogl/classes/jogamp/opengl/util/av/GLMediaPlayerImpl.java",
          "src/demos/com/jogamp/opengl/demos/graph/ui/UIMediaGrid01.java",
          "src/graphui/classes/com/jogamp/graph/ui/widgets/MediaPlayer.java"
        ],
        "commitId" : "a8e382bf6ebc7d405ef2479dae97762d9b7e2967",
        "timestamp" : 1706321812000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sgothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "GraphUI MediaPlayer: seek from display-thread, don't act on SliderAdapter.clicked() as dragged is always called\u000a",
        "date" : "2024-01-27 03:16:52 +0100",
        "id" : "a8e382bf6ebc7d405ef2479dae97762d9b7e2967",
        "msg" : "GraphUI MediaPlayer: seek from display-thread, don't act on SliderAdapter.clicked() as dragged is always called",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/jogamp/opengl/util/av/GLMediaPlayerImpl.java"
          },
          {
            "editType" : "edit",
            "file" : "src/demos/com/jogamp/opengl/demos/graph/ui/UIMediaGrid01.java"
          },
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/com/jogamp/graph/ui/widgets/MediaPlayer.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/jogl/native/libav/ffmpeg_impl_template.c",
          "src/jogl/classes/com/jogamp/opengl/util/av/GLMediaPlayer.java",
          "src/jogl/native/libav/ffmpeg_tool.h",
          "src/jogl/classes/jogamp/opengl/util/av/GLMediaPlayerImpl.java",
          "src/jogl/native/libav/ffmpeg_static.c",
          "src/jogl/classes/jogamp/opengl/util/av/impl/FFMPEGv0400Natives.java",
          "src/demos/com/jogamp/opengl/demos/av/MovieCube.java",
          "src/jogl/classes/jogamp/opengl/android/av/AndroidGLMediaPlayerAPI14.java",
          "src/demos/com/jogamp/opengl/demos/graph/ui/UIMediaGrid01.java",
          "src/jogl/classes/jogamp/opengl/util/av/impl/FFMPEGv0500Natives.java",
          "src/demos/com/jogamp/opengl/demos/graph/ui/UISceneDemo03.java",
          "src/demos/com/jogamp/opengl/demos/av/MovieSBSStereo.java",
          "src/demos/com/jogamp/opengl/demos/graph/ui/UISceneDemo10.java",
          "src/jogl/classes/jogamp/opengl/util/av/impl/FFMPEGv0600Natives.java",
          "src/demos/com/jogamp/opengl/demos/av/CrossFadePlayer.java",
          "src/jogl/classes/jogamp/opengl/util/av/NullGLMediaPlayer.java",
          "src/demos/com/jogamp/opengl/demos/av/MovieSimple.java",
          "src/jogl/classes/jogamp/opengl/util/av/impl/FFMPEGMediaPlayer.java",
          "src/demos/com/jogamp/opengl/demos/graph/ui/UIMediaGrid00.java",
          "src/jogl/classes/jogamp/opengl/util/av/impl/OMXGLMediaPlayer.java",
          "src/jogl/classes/jogamp/opengl/util/av/impl/FFMPEGNatives.java",
          "src/demos/com/jogamp/opengl/demos/graph/ui/UISceneDemo20.java"
        ],
        "commitId" : "7fe9da9d2b5b7475ea3878b0a8d23f485bb19dff",
        "timestamp" : 1706337367000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sgothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "GLMediaPlayer: Add initial subtitle support, track audio/video/subtitle streams and languages and add convenient switchStream(..) entry.\u000a\u000aaudio/video/subtitle streams and language metadata is maintained by arrays holding the stream-IDs and language string identifier.\u000a\u000aImplementation added in FFMPEGPlayer for these data-sets.\u000a",
        "date" : "2024-01-27 07:36:07 +0100",
        "id" : "7fe9da9d2b5b7475ea3878b0a8d23f485bb19dff",
        "msg" : "GLMediaPlayer: Add initial subtitle support, track audio/video/subtitle streams and languages and add convenient switchStream(..) entry.",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/demos/com/jogamp/opengl/demos/graph/ui/UISceneDemo20.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/jogamp/opengl/util/av/impl/FFMPEGNatives.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/jogamp/opengl/util/av/GLMediaPlayerImpl.java"
          },
          {
            "editType" : "edit",
            "file" : "src/demos/com/jogamp/opengl/demos/graph/ui/UIMediaGrid00.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/jogamp/opengl/android/av/AndroidGLMediaPlayerAPI14.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/jogamp/opengl/util/av/NullGLMediaPlayer.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/jogamp/opengl/util/av/impl/OMXGLMediaPlayer.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/jogamp/opengl/util/av/impl/FFMPEGv0400Natives.java"
          },
          {
            "editType" : "edit",
            "file" : "src/demos/com/jogamp/opengl/demos/av/MovieCube.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/native/libav/ffmpeg_impl_template.c"
          },
          {
            "editType" : "edit",
            "file" : "src/demos/com/jogamp/opengl/demos/av/MovieSimple.java"
          },
          {
            "editType" : "edit",
            "file" : "src/demos/com/jogamp/opengl/demos/graph/ui/UIMediaGrid01.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/jogamp/opengl/util/av/impl/FFMPEGMediaPlayer.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/jogamp/opengl/util/av/impl/FFMPEGv0500Natives.java"
          },
          {
            "editType" : "edit",
            "file" : "src/demos/com/jogamp/opengl/demos/av/CrossFadePlayer.java"
          },
          {
            "editType" : "edit",
            "file" : "src/demos/com/jogamp/opengl/demos/graph/ui/UISceneDemo03.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/native/libav/ffmpeg_static.c"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/com/jogamp/opengl/util/av/GLMediaPlayer.java"
          },
          {
            "editType" : "edit",
            "file" : "src/demos/com/jogamp/opengl/demos/av/MovieSBSStereo.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/jogamp/opengl/util/av/impl/FFMPEGv0600Natives.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/native/libav/ffmpeg_tool.h"
          },
          {
            "editType" : "edit",
            "file" : "src/demos/com/jogamp/opengl/demos/graph/ui/UISceneDemo10.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/graphui/classes/com/jogamp/graph/ui/widgets/MediaPlayer.java"
        ],
        "commitId" : "0b908ee7fc80344118d3fa6d4d92ebb082968cb3",
        "timestamp" : 1706337429000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sgothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "GraphUI MediaPlayer Widget: Support switching audio and subtitle streams, show their language as a button - press to switch to next\u000a",
        "date" : "2024-01-27 07:37:09 +0100",
        "id" : "0b908ee7fc80344118d3fa6d4d92ebb082968cb3",
        "msg" : "GraphUI MediaPlayer Widget: Support switching audio and subtitle streams, show their language as a button - press to switch to next",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/com/jogamp/graph/ui/widgets/MediaPlayer.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/jogl/classes/com/jogamp/opengl/util/av/GLMediaPlayer.java",
          "src/jogl/native/libav/ffmpeg_impl_template.c",
          "src/jogl/native/libav/ffmpeg_static.c",
          "src/jogl/classes/jogamp/opengl/util/av/GLMediaPlayerImpl.java",
          "src/jogl/classes/jogamp/opengl/util/av/NullGLMediaPlayer.java",
          "src/graphui/classes/com/jogamp/graph/ui/widgets/MediaPlayer.java",
          "src/jogl/classes/jogamp/opengl/android/av/AndroidGLMediaPlayerAPI14.java"
        ],
        "commitId" : "b2bd320e2b688097f0d5171eb6e89e985909c7b7",
        "timestamp" : 1706338724000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sgothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "GLMediaPlayer: Support tile metadata\u000a",
        "date" : "2024-01-27 07:58:44 +0100",
        "id" : "b2bd320e2b688097f0d5171eb6e89e985909c7b7",
        "msg" : "GLMediaPlayer: Support tile metadata",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/jogamp/opengl/android/av/AndroidGLMediaPlayerAPI14.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/native/libav/ffmpeg_static.c"
          },
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/com/jogamp/graph/ui/widgets/MediaPlayer.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/jogamp/opengl/util/av/GLMediaPlayerImpl.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/com/jogamp/opengl/util/av/GLMediaPlayer.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/jogamp/opengl/util/av/NullGLMediaPlayer.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/native/libav/ffmpeg_impl_template.c"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/graphui/classes/com/jogamp/graph/ui/widgets/MediaPlayer.java"
        ],
        "commitId" : "ccf52ae58e55c09139fd44d4d7a6812f51adb15e",
        "timestamp" : 1706338922000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sgothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "GraphUI MediaPlayer: Bump Chapter tooltip scale\u000a",
        "date" : "2024-01-27 08:02:02 +0100",
        "id" : "ccf52ae58e55c09139fd44d4d7a6812f51adb15e",
        "msg" : "GraphUI MediaPlayer: Bump Chapter tooltip scale",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/com/jogamp/graph/ui/widgets/MediaPlayer.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/graphui/classes/com/jogamp/graph/ui/widgets/MediaPlayer.java"
        ],
        "commitId" : "298cfd3a0c36bcb7580f8fd3d02e470f36b50f10",
        "timestamp" : 1706340348000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sgothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "GraphUI MediaPlayer: Disable always DEBUG hack\u000a",
        "date" : "2024-01-27 08:25:48 +0100",
        "id" : "298cfd3a0c36bcb7580f8fd3d02e470f36b50f10",
        "msg" : "GraphUI MediaPlayer: Disable always DEBUG hack",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/com/jogamp/graph/ui/widgets/MediaPlayer.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/graphui/classes/com/jogamp/graph/ui/Group.java"
        ],
        "commitId" : "d46c8e7f5288fb07e632b063462a6c08bba91fb2",
        "timestamp" : 1706420124000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sgothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "GraphUI Group: Don't draw border is set invisible\u000a",
        "date" : "2024-01-28 06:35:24 +0100",
        "id" : "d46c8e7f5288fb07e632b063462a6c08bba91fb2",
        "msg" : "GraphUI Group: Don't draw border is set invisible",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/com/jogamp/graph/ui/Group.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/graphui/classes/com/jogamp/graph/ui/GraphShape.java",
          "src/graphui/classes/com/jogamp/graph/ui/widgets/MediaPlayer.java",
          "src/demos/com/jogamp/opengl/demos/graph/ui/UIMediaGrid01.java",
          "src/demos/com/jogamp/opengl/demos/util/MiscUtils.java",
          "src/graphui/classes/com/jogamp/graph/ui/Scene.java"
        ],
        "commitId" : "62a1f18e98df6783d487f7dfbbc83026b04a19b8",
        "timestamp" : 1706420369000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sgothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "GraphUI Misc Cleanup: Move get*Font() helper to Scene; Allow GraphShape.drawImpl0(..) override;\u000a",
        "date" : "2024-01-28 06:39:29 +0100",
        "id" : "62a1f18e98df6783d487f7dfbbc83026b04a19b8",
        "msg" : "GraphUI Misc Cleanup: Move get*Font() helper to Scene; Allow GraphShape.drawImpl0(..) override;",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/demos/com/jogamp/opengl/demos/graph/ui/UIMediaGrid01.java"
          },
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/com/jogamp/graph/ui/GraphShape.java"
          },
          {
            "editType" : "edit",
            "file" : "src/demos/com/jogamp/opengl/demos/util/MiscUtils.java"
          },
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/com/jogamp/graph/ui/Scene.java"
          },
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/com/jogamp/graph/ui/widgets/MediaPlayer.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/jogl/native/libav/ffmpeg_static.h",
          "src/jogl/classes/com/jogamp/opengl/util/av/ASSEventListener.java",
          "src/jogl/classes/com/jogamp/opengl/util/av/GLMediaPlayer.java",
          "src/jogl/native/libav/ffmpeg_impl_template.c",
          "src/jogl/native/libav/ffmpeg_tool.h",
          "src/jogl/classes/jogamp/opengl/util/av/impl/FFMPEGDynamicLibraryBundleInfo.java",
          "src/jogl/classes/jogamp/opengl/util/av/GLMediaPlayerImpl.java",
          "src/jogl/classes/com/jogamp/opengl/util/av/ASSEventLine.java",
          "src/jogl/native/libav/ffmpeg_static.c",
          "src/jogl/classes/jogamp/opengl/util/av/NullGLMediaPlayer.java",
          "src/jogl/classes/jogamp/opengl/util/av/impl/FFMPEGMediaPlayer.java",
          "src/jogl/classes/jogamp/opengl/android/av/AndroidGLMediaPlayerAPI14.java"
        ],
        "commitId" : "6c67d73dc6b9e49bdd406902e533be91db1a3b0a",
        "timestamp" : 1706420570000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sgothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "GLMediaPlayer/FFMPEGMediaPlayer: Add working subtitle (text + ass/saa) support via FFMpeg\u000a\u000aTODO:\u000a- We may want to refine subtitle PTS handling\u000a- We may want to support bitmapped subtitles\u000a",
        "date" : "2024-01-28 06:42:50 +0100",
        "id" : "6c67d73dc6b9e49bdd406902e533be91db1a3b0a",
        "msg" : "GLMediaPlayer/FFMPEGMediaPlayer: Add working subtitle (text + ass/saa) support via FFMpeg",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/jogamp/opengl/util/av/impl/FFMPEGMediaPlayer.java"
          },
          {
            "editType" : "add",
            "file" : "src/jogl/classes/com/jogamp/opengl/util/av/ASSEventListener.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/jogamp/opengl/util/av/GLMediaPlayerImpl.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/native/libav/ffmpeg_tool.h"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/com/jogamp/opengl/util/av/GLMediaPlayer.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/jogamp/opengl/util/av/impl/FFMPEGDynamicLibraryBundleInfo.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/native/libav/ffmpeg_static.h"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/jogamp/opengl/android/av/AndroidGLMediaPlayerAPI14.java"
          },
          {
            "editType" : "add",
            "file" : "src/jogl/classes/com/jogamp/opengl/util/av/ASSEventLine.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/jogamp/opengl/util/av/NullGLMediaPlayer.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/native/libav/ffmpeg_impl_template.c"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/native/libav/ffmpeg_static.c"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/graphui/classes/com/jogamp/graph/ui/widgets/MediaPlayer.java",
          "src/demos/com/jogamp/opengl/demos/graph/ui/UIMediaGrid01.java",
          "src/graphui/classes/com/jogamp/graph/ui/shapes/MediaButton.java"
        ],
        "commitId" : "f92f72adef6abc76dce7eecf6c058e8d43d3add9",
        "timestamp" : 1706420768000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sgothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "GraphUI MediaButton/MediaPlayer-Widget: Add working subtitle (text + ass/saa) support via GLMediaPlayer/FFMPEGMediaPlayer\u000a",
        "date" : "2024-01-28 06:46:08 +0100",
        "id" : "f92f72adef6abc76dce7eecf6c058e8d43d3add9",
        "msg" : "GraphUI MediaButton/MediaPlayer-Widget: Add working subtitle (text + ass/saa) support via GLMediaPlayer/FFMPEGMediaPlayer",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/com/jogamp/graph/ui/widgets/MediaPlayer.java"
          },
          {
            "editType" : "edit",
            "file" : "src/demos/com/jogamp/opengl/demos/graph/ui/UIMediaGrid01.java"
          },
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/com/jogamp/graph/ui/shapes/MediaButton.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/graphui/classes/com/jogamp/graph/ui/widgets/MediaPlayer.java"
        ],
        "commitId" : "36c3176264db381d23678ee5631bf4a3f1b86c7d",
        "timestamp" : 1706421100000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sgothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "GraphUI MediaPlayer: Remove debug message (Behavior to disable border if zoomSize == 1, full-screen)\u000a",
        "date" : "2024-01-28 06:51:40 +0100",
        "id" : "36c3176264db381d23678ee5631bf4a3f1b86c7d",
        "msg" : "GraphUI MediaPlayer: Remove debug message (Behavior to disable border if zoomSize == 1, full-screen)",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/com/jogamp/graph/ui/widgets/MediaPlayer.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/demos/com/jogamp/opengl/demos/graph/ui/UIMediaGrid01.java",
          "src/demos/com/jogamp/opengl/demos/graph/ui/FontView01.java"
        ],
        "commitId" : "d537f28ca05e1ae5d611cc3d30ca9c54137d599f",
        "timestamp" : 1706422692000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sgothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "GraphUI Demos: Disable debug toggles\u000a",
        "date" : "2024-01-28 07:18:12 +0100",
        "id" : "d537f28ca05e1ae5d611cc3d30ca9c54137d599f",
        "msg" : "GraphUI Demos: Disable debug toggles",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/demos/com/jogamp/opengl/demos/graph/ui/UIMediaGrid01.java"
          },
          {
            "editType" : "edit",
            "file" : "src/demos/com/jogamp/opengl/demos/graph/ui/FontView01.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/demos/com/jogamp/opengl/demos/graph/ui/UIMediaGrid00.java"
        ],
        "commitId" : "432339880fbf00d0003cd1ed4ac3c7d37d323c22",
        "timestamp" : 1706427746000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sgothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "GraphUI Demo UIMediaGrid00: Add missing patch from relocating getSymbolsFont()\u000a",
        "date" : "2024-01-28 08:42:26 +0100",
        "id" : "432339880fbf00d0003cd1ed4ac3c7d37d323c22",
        "msg" : "GraphUI Demo UIMediaGrid00: Add missing patch from relocating getSymbolsFont()",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/demos/com/jogamp/opengl/demos/graph/ui/UIMediaGrid00.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/jogl/native/libav/ffmpeg_impl_template.c"
        ],
        "commitId" : "0f30aa0995aed0afa610efd49ab8f7ea26fa6db0",
        "timestamp" : 1706428115000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sgothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "FFMPEGMediaPlayer (native): Set used sid to none if not selected (missed)\u000a",
        "date" : "2024-01-28 08:48:35 +0100",
        "id" : "0f30aa0995aed0afa610efd49ab8f7ea26fa6db0",
        "msg" : "FFMPEGMediaPlayer (native): Set used sid to none if not selected (missed)",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/jogl/native/libav/ffmpeg_impl_template.c"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/jogl/native/libav/ffmpeg_impl_template.c"
        ],
        "commitId" : "9aeff8cb3113729adcb5910061015a88ac827002",
        "timestamp" : 1706429268000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sgothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "FFMPEGMediaPlayer (native): Simplify subtitle handling in readNextPacket0()\u000a",
        "date" : "2024-01-28 09:07:48 +0100",
        "id" : "9aeff8cb3113729adcb5910061015a88ac827002",
        "msg" : "FFMPEGMediaPlayer (native): Simplify subtitle handling in readNextPacket0()",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/jogl/native/libav/ffmpeg_impl_template.c"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/graphui/classes/com/jogamp/graph/ui/shapes/MediaButton.java"
        ],
        "commitId" : "28e5b66e6e201259c6ad240552045314d2072595",
        "timestamp" : 1706429308000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sgothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "GraphUI MediaButton: Clear cached subtitle data on uninit and init from GLMediaPlayer\u000a",
        "date" : "2024-01-28 09:08:28 +0100",
        "id" : "28e5b66e6e201259c6ad240552045314d2072595",
        "msg" : "GraphUI MediaButton: Clear cached subtitle data on uninit and init from GLMediaPlayer",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/com/jogamp/graph/ui/shapes/MediaButton.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/demos/com/jogamp/opengl/demos/av/MovieSBSStereo.java",
          "src/demos/com/jogamp/opengl/demos/av/MovieCube.java",
          "src/demos/com/jogamp/opengl/demos/android/MovieCubeActivity0b.java",
          "src/graphui/classes/com/jogamp/graph/ui/shapes/MediaButton.java",
          "src/demos/com/jogamp/opengl/demos/android/MovieCubeActivity0a.java",
          "src/demos/com/jogamp/opengl/demos/av/MovieSimple.java"
        ],
        "commitId" : "c5bca1f0dba2540088e8e2a90d720fdbc4870b30",
        "timestamp" : 1706430011000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sgothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "Cleanup GLMediaPlayer.EventMask.Bit handling in GLMediaEventListener implementations: Either Uninit, Init, Pause or Play (exclusive)\u000a",
        "date" : "2024-01-28 09:20:11 +0100",
        "id" : "c5bca1f0dba2540088e8e2a90d720fdbc4870b30",
        "msg" : "Cleanup GLMediaPlayer.EventMask.Bit handling in GLMediaEventListener implementations: Either Uninit, Init, Pause or Play (exclusive)",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/demos/com/jogamp/opengl/demos/av/MovieCube.java"
          },
          {
            "editType" : "edit",
            "file" : "src/demos/com/jogamp/opengl/demos/av/MovieSimple.java"
          },
          {
            "editType" : "edit",
            "file" : "src/demos/com/jogamp/opengl/demos/android/MovieCubeActivity0a.java"
          },
          {
            "editType" : "edit",
            "file" : "src/demos/com/jogamp/opengl/demos/android/MovieCubeActivity0b.java"
          },
          {
            "editType" : "edit",
            "file" : "src/demos/com/jogamp/opengl/demos/av/MovieSBSStereo.java"
          },
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/com/jogamp/graph/ui/shapes/MediaButton.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/graphui/classes/com/jogamp/graph/ui/shapes/MediaButton.java",
          "src/jogl/native/libav/ffmpeg_impl_template.c"
        ],
        "commitId" : "3e95c1994d363bc137ffcf548fd3751ac500ac7b",
        "timestamp" : 1706475688000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sgothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "FFMPEGMediaPlayer/GraphUI MediaButton: AVSubtitles's start/end are relative to pts [ms] (fixed); Use ASSEventLine packets within proper pts only.\u000a",
        "date" : "2024-01-28 22:01:28 +0100",
        "id" : "3e95c1994d363bc137ffcf548fd3751ac500ac7b",
        "msg" : "FFMPEGMediaPlayer/GraphUI MediaButton: AVSubtitles's start/end are relative to pts [ms] (fixed); Use ASSEventLine packets within proper pts only.",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/com/jogamp/graph/ui/shapes/MediaButton.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/native/libav/ffmpeg_impl_template.c"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/jogl/native/libav/ffmpeg_static.h",
          "src/jogl/native/libav/ffmpeg_impl_template.c",
          "src/jogl/classes/jogamp/opengl/util/av/impl/FFMPEGv0600Natives.java",
          "src/jogl/native/libav/ffmpeg_tool.h",
          "src/jogl/native/libav/ffmpeg_static.c",
          "src/jogl/classes/jogamp/opengl/util/av/impl/FFMPEGv0400Natives.java",
          "src/jogl/classes/jogamp/opengl/util/av/impl/FFMPEGMediaPlayer.java",
          "src/jogl/classes/jogamp/opengl/util/av/impl/FFMPEGNatives.java",
          "src/jogl/classes/jogamp/opengl/util/av/impl/FFMPEGv0500Natives.java"
        ],
        "commitId" : "a19f810c9618e2fa6829f1c157d2e1a88ca178de",
        "timestamp" : 1706475918000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sgothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "FFMPEGPlayer: Prep for bitmap'ed subtitles: Use glEnable()/glBindTexture() func-ptr in native; readNextPacket0() passes video+subtitle texTarget and texID\u000a\u000aFor bitmap subtitles we need to push the bitmap into its own texture.\u000aHence readNextPacket0() must switch to used texture using glEnable() on !core and glBindTexture().\u000a",
        "date" : "2024-01-28 22:05:18 +0100",
        "id" : "a19f810c9618e2fa6829f1c157d2e1a88ca178de",
        "msg" : "FFMPEGPlayer: Prep for bitmap'ed subtitles: Use glEnable()/glBindTexture() func-ptr in native; readNextPacket0() passes video+subtitle texTarget and texID",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/jogl/native/libav/ffmpeg_static.c"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/native/libav/ffmpeg_impl_template.c"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/jogamp/opengl/util/av/impl/FFMPEGv0500Natives.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/jogamp/opengl/util/av/impl/FFMPEGv0600Natives.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/native/libav/ffmpeg_tool.h"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/jogamp/opengl/util/av/impl/FFMPEGv0400Natives.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/jogamp/opengl/util/av/impl/FFMPEGMediaPlayer.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/jogamp/opengl/util/av/impl/FFMPEGNatives.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/native/libav/ffmpeg_static.h"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/jogl/classes/jogamp/opengl/util/av/GLMediaPlayerImpl.java",
          "src/jogl/classes/com/jogamp/opengl/util/av/GLMediaPlayer.java"
        ],
        "commitId" : "670286747af423781aa4f54062aa34345d32a397",
        "timestamp" : 1706504915000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sgothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "GLMediaPlayer: Add getSubtitleCodec()\u000a",
        "date" : "2024-01-29 06:08:35 +0100",
        "id" : "670286747af423781aa4f54062aa34345d32a397",
        "msg" : "GLMediaPlayer: Add getSubtitleCodec()",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/jogamp/opengl/util/av/GLMediaPlayerImpl.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/com/jogamp/opengl/util/av/GLMediaPlayer.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/graphui/classes/com/jogamp/graph/ui/shapes/MediaButton.java",
          "src/graphui/classes/com/jogamp/graph/ui/widgets/MediaPlayer.java"
        ],
        "commitId" : "9a21e23b3296eb481bcb407d740e822ad11ac7cd",
        "timestamp" : 1706505065000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sgothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "GraphUI MediaButton: Add blending below subtitle, allow setting color/blending and subLineDY; MediaPlayer: Add full infoLine toggle with click on infoBox\u000a",
        "date" : "2024-01-29 06:11:05 +0100",
        "id" : "9a21e23b3296eb481bcb407d740e822ad11ac7cd",
        "msg" : "GraphUI MediaButton: Add blending below subtitle, allow setting color/blending and subLineDY; MediaPlayer: Add full infoLine toggle with click on infoBox",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/com/jogamp/graph/ui/shapes/MediaButton.java"
          },
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/com/jogamp/graph/ui/widgets/MediaPlayer.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/jogl/classes/com/jogamp/opengl/util/av/ASSEventListener.java",
          "src/jogl/classes/com/jogamp/opengl/util/av/SubtitleEventListener.java",
          "src/jogl/classes/com/jogamp/opengl/util/av/ASSEventLine.java",
          "src/jogl/classes/com/jogamp/opengl/util/av/SubASSEventLine.java",
          "src/jogl/classes/com/jogamp/opengl/util/av/SubEmptyEvent.java",
          "src/jogl/classes/com/jogamp/opengl/util/av/SubTextureEvent.java",
          "src/jogl/classes/com/jogamp/opengl/util/av/SubtitleEvent.java"
        ],
        "commitId" : "72065d9e2a9d6480c34afc9920071d5ed577d37a",
        "timestamp" : 1706695536000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sgothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "Bug 1494: Add SubTextureEvent & SubEmptyEvent; Add SubtitleEvent.release() provided by owner to take back borrowed resources (texture of bitmap subtitle)\u000a",
        "date" : "2024-01-31 11:05:36 +0100",
        "id" : "72065d9e2a9d6480c34afc9920071d5ed577d37a",
        "msg" : "Bug 1494: Add SubTextureEvent & SubEmptyEvent; Add SubtitleEvent.release() provided by owner to take back borrowed resources (texture of bitmap subtitle)",
        "paths" : [
          {
            "editType" : "delete",
            "file" : "src/jogl/classes/com/jogamp/opengl/util/av/ASSEventLine.java"
          },
          {
            "editType" : "add",
            "file" : "src/jogl/classes/com/jogamp/opengl/util/av/SubTextureEvent.java"
          },
          {
            "editType" : "add",
            "file" : "src/jogl/classes/com/jogamp/opengl/util/av/SubtitleEvent.java"
          },
          {
            "editType" : "delete",
            "file" : "src/jogl/classes/com/jogamp/opengl/util/av/ASSEventListener.java"
          },
          {
            "editType" : "add",
            "file" : "src/jogl/classes/com/jogamp/opengl/util/av/SubASSEventLine.java"
          },
          {
            "editType" : "add",
            "file" : "src/jogl/classes/com/jogamp/opengl/util/av/SubtitleEventListener.java"
          },
          {
            "editType" : "add",
            "file" : "src/jogl/classes/com/jogamp/opengl/util/av/SubEmptyEvent.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/jogl/native/libav/ffmpeg_static.h",
          "src/jogl/classes/com/jogamp/opengl/util/av/GLMediaPlayer.java",
          "src/demos/com/jogamp/opengl/demos/android/MovieCubeActivity0b.java",
          "src/jogl/native/libav/ffmpeg_static.c",
          "src/jogl/classes/jogamp/opengl/util/av/GLMediaPlayerImpl.java",
          "src/demos/com/jogamp/opengl/demos/android/MovieSimpleActivity1.java",
          "src/graphui/classes/com/jogamp/graph/ui/widgets/MediaPlayer.java",
          "src/demos/com/jogamp/opengl/demos/av/MovieCube.java",
          "src/demos/com/jogamp/opengl/demos/android/MovieSimpleActivity0.java",
          "src/graphui/classes/com/jogamp/graph/ui/shapes/MediaButton.java",
          "src/demos/com/jogamp/opengl/demos/android/MovieCubeActivity0a.java",
          "src/demos/com/jogamp/opengl/demos/graph/ui/UISceneDemo03.java",
          "src/demos/com/jogamp/opengl/demos/av/MovieSBSStereo.java",
          "src/demos/com/jogamp/opengl/demos/av/CrossFadePlayer.java",
          "src/demos/com/jogamp/opengl/demos/av/MovieSimple.java",
          "src/jogl/classes/jogamp/opengl/util/av/impl/FFMPEGMediaPlayer.java",
          "src/demos/com/jogamp/opengl/demos/graph/ui/UISceneDemo20.java"
        ],
        "commitId" : "b8b692e9cf3120d788ae912514f54948ddccacf5",
        "timestamp" : 1706696890000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sgothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "GLMediaPlayer: Split GLMediaFrameListener (rarely used) from GLMediaEventListener, easing listener callbacks; Prepare SubtitleEventListener generalization (Bug 1494)\u000a\u000aMoves pushSound(), pushSubtitle*() from FFMPEGMediaPlayer to GLMediaPlayerImpl,\u000aas it is handled in a generic way - even though currently only called by native FFMPEGMediaPlayer implementation.\u000a\u000aNote: This patch is incomplete, i.e. not even compile clean.\u000aBut choses as-is to semantically split the work to ease review.\u000a",
        "date" : "2024-01-31 11:28:10 +0100",
        "id" : "b8b692e9cf3120d788ae912514f54948ddccacf5",
        "msg" : "GLMediaPlayer: Split GLMediaFrameListener (rarely used) from GLMediaEventListener, easing listener callbacks; Prepare SubtitleEventListener generalization (Bug 1494)",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/demos/com/jogamp/opengl/demos/android/MovieCubeActivity0a.java"
          },
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/com/jogamp/graph/ui/shapes/MediaButton.java"
          },
          {
            "editType" : "edit",
            "file" : "src/demos/com/jogamp/opengl/demos/av/MovieSimple.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/native/libav/ffmpeg_static.h"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/com/jogamp/opengl/util/av/GLMediaPlayer.java"
          },
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/com/jogamp/graph/ui/widgets/MediaPlayer.java"
          },
          {
            "editType" : "edit",
            "file" : "src/demos/com/jogamp/opengl/demos/android/MovieSimpleActivity1.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/jogamp/opengl/util/av/impl/FFMPEGMediaPlayer.java"
          },
          {
            "editType" : "edit",
            "file" : "src/demos/com/jogamp/opengl/demos/av/CrossFadePlayer.java"
          },
          {
            "editType" : "edit",
            "file" : "src/demos/com/jogamp/opengl/demos/av/MovieSBSStereo.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/native/libav/ffmpeg_static.c"
          },
          {
            "editType" : "edit",
            "file" : "src/demos/com/jogamp/opengl/demos/android/MovieCubeActivity0b.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/jogamp/opengl/util/av/GLMediaPlayerImpl.java"
          },
          {
            "editType" : "edit",
            "file" : "src/demos/com/jogamp/opengl/demos/android/MovieSimpleActivity0.java"
          },
          {
            "editType" : "edit",
            "file" : "src/demos/com/jogamp/opengl/demos/graph/ui/UISceneDemo20.java"
          },
          {
            "editType" : "edit",
            "file" : "src/demos/com/jogamp/opengl/demos/graph/ui/UISceneDemo03.java"
          },
          {
            "editType" : "edit",
            "file" : "src/demos/com/jogamp/opengl/demos/av/MovieCube.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/demos/com/jogamp/opengl/demos/av/MovieSBSStereo.java",
          "src/graphui/classes/com/jogamp/graph/ui/widgets/MediaPlayer.java",
          "src/demos/com/jogamp/opengl/demos/av/MovieCube.java",
          "src/graphui/classes/com/jogamp/graph/ui/shapes/MediaButton.java",
          "src/demos/com/jogamp/opengl/demos/av/MovieSimple.java"
        ],
        "commitId" : "f93b6c570b94beab1656f0024bdc06a22b2431d6",
        "timestamp" : 1706697398000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sgothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "Utilize PTS.getCurrent() where applicable\u000a",
        "date" : "2024-01-31 11:36:38 +0100",
        "id" : "f93b6c570b94beab1656f0024bdc06a22b2431d6",
        "msg" : "Utilize PTS.getCurrent() where applicable",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/demos/com/jogamp/opengl/demos/av/MovieCube.java"
          },
          {
            "editType" : "edit",
            "file" : "src/demos/com/jogamp/opengl/demos/av/MovieSBSStereo.java"
          },
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/com/jogamp/graph/ui/shapes/MediaButton.java"
          },
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/com/jogamp/graph/ui/widgets/MediaPlayer.java"
          },
          {
            "editType" : "edit",
            "file" : "src/demos/com/jogamp/opengl/demos/av/MovieSimple.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/graphui/classes/com/jogamp/graph/ui/Shape.java"
        ],
        "commitId" : "03f24c544a70ebecc4e61c48425d361abc34d951",
        "timestamp" : 1706697851000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sgothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "Bug 1495: GraphUI Shape: Only updateMat() if marked dirty once in applyMatToMv() and getMat(*)\u000a\u000aIt is sufficient to mark the internal iMat dirty when mutating the source values (pos, ..) and calling updateMat() only once when used in applyMatToMv() and getMat(*).\u000a\u000aiMatIdent can also be set to true within updateMat() IF neither mutations occured, i.e. no translocation, scale or rotation.\u000a",
        "date" : "2024-01-31 11:44:11 +0100",
        "id" : "03f24c544a70ebecc4e61c48425d361abc34d951",
        "msg" : "Bug 1495: GraphUI Shape: Only updateMat() if marked dirty once in applyMatToMv() and getMat(*)",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/com/jogamp/graph/ui/Shape.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/graphui/classes/com/jogamp/graph/ui/Shape.java"
        ],
        "commitId" : "f7458c47338c90db19ef3f0143a268b60b1267a3",
        "timestamp" : 1706697988000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sgothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "Bug 1496 - GraphUI Shape: Allow markShapeDirty() and markStateDirty() to be lock free\u000a",
        "date" : "2024-01-31 11:46:28 +0100",
        "id" : "f7458c47338c90db19ef3f0143a268b60b1267a3",
        "msg" : "Bug 1496 - GraphUI Shape: Allow markShapeDirty() and markStateDirty() to be lock free",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/com/jogamp/graph/ui/Shape.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/graphui/classes/com/jogamp/graph/ui/shapes/Rectangle.java",
          "src/graphui/classes/com/jogamp/graph/ui/shapes/BaseButton.java",
          "src/jogl/classes/com/jogamp/opengl/util/texture/ImageSequence.java",
          "src/graphui/classes/com/jogamp/graph/ui/shapes/ImageButton.java"
        ],
        "commitId" : "5cf0d370dbc2b1f59102522d40f4875f7d77b1f7",
        "timestamp" : 1706698596000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sgothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "GraphUI: Only issue Shape.mark*Dirty() if values were updated or data available; JOGL ImageSequence: Add addFrame(GL, TextureFrame), remove*Frame() and isSequenceAnimating()\u000a",
        "date" : "2024-01-31 11:56:36 +0100",
        "id" : "5cf0d370dbc2b1f59102522d40f4875f7d77b1f7",
        "msg" : "GraphUI: Only issue Shape.mark*Dirty() if values were updated or data available; JOGL ImageSequence: Add addFrame(GL, TextureFrame), remove*Frame() and isSequenceAnimating()",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/com/jogamp/graph/ui/shapes/BaseButton.java"
          },
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/com/jogamp/graph/ui/shapes/Rectangle.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/com/jogamp/opengl/util/texture/ImageSequence.java"
          },
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/com/jogamp/graph/ui/shapes/ImageButton.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/jogl/classes/com/jogamp/opengl/util/texture/Texture.java",
          "src/jogl/classes/com/jogamp/math/Vec2f.java"
        ],
        "commitId" : "8d03e7e0b79cf5bd70fa45f524abb236787303ad",
        "timestamp" : 1706698688000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sgothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "Add Vec2f.set(Vec2i) and Vec2f(Vec2i); Add Texture.set(..) allowing a pending setup/update of texture and image dimensions\u000a",
        "date" : "2024-01-31 11:58:08 +0100",
        "id" : "8d03e7e0b79cf5bd70fa45f524abb236787303ad",
        "msg" : "Add Vec2f.set(Vec2i) and Vec2f(Vec2i); Add Texture.set(..) allowing a pending setup/update of texture and image dimensions",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/com/jogamp/math/Vec2f.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/com/jogamp/opengl/util/texture/Texture.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/demos/com/jogamp/opengl/demos/graph/ui/UISceneDemo01b.java",
          "src/demos/com/jogamp/opengl/demos/graph/ui/FontView01.java"
        ],
        "commitId" : "db2daee62669ee649a6cb1d8d99731c6b3d3a250",
        "timestamp" : 1706698773000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sgothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "GraphUI Demos: FontView01 can use scaling Lable ctor; UISceneDemo01b doesn't need to issue Shape.updateMat()\u000a",
        "date" : "2024-01-31 11:59:33 +0100",
        "id" : "db2daee62669ee649a6cb1d8d99731c6b3d3a250",
        "msg" : "GraphUI Demos: FontView01 can use scaling Lable ctor; UISceneDemo01b doesn't need to issue Shape.updateMat()",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/demos/com/jogamp/opengl/demos/graph/ui/UISceneDemo01b.java"
          },
          {
            "editType" : "edit",
            "file" : "src/demos/com/jogamp/opengl/demos/graph/ui/FontView01.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/jogl/classes/jogamp/graph/curve/opengl/shader/curverenderer01-pass1-curve_simple.glsl"
        ],
        "commitId" : "fe8f67563aa0bf2ff8f6e242c13f1d267c18b7f5",
        "timestamp" : 1706698875000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sgothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "Graph shader (pass1 simple): USE_COLOR_TEXTURE: Clip to vec4(0) color using alpha 0 instead of the debug color white vec4(1), which leads to the white seam if out of gcu_ColorTexBBox\u000a",
        "date" : "2024-01-31 12:01:15 +0100",
        "id" : "fe8f67563aa0bf2ff8f6e242c13f1d267c18b7f5",
        "msg" : "Graph shader (pass1 simple): USE_COLOR_TEXTURE: Clip to vec4(0) color using alpha 0 instead of the debug color white vec4(1), which leads to the white seam if out of gcu_ColorTexBBox",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/jogamp/graph/curve/opengl/shader/curverenderer01-pass1-curve_simple.glsl"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/graphui/classes/com/jogamp/graph/ui/Shape.java"
        ],
        "commitId" : "bb32e88ca0e8fa95b7d8503f5881fa256bf95e59",
        "timestamp" : 1706699727000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sgothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "Bug 1495: GraphUI Shape: Fix updateMat() API doc\u000a",
        "date" : "2024-01-31 12:15:27 +0100",
        "id" : "bb32e88ca0e8fa95b7d8503f5881fa256bf95e59",
        "msg" : "Bug 1495: GraphUI Shape: Fix updateMat() API doc",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/com/jogamp/graph/ui/Shape.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/jogl/classes/com/jogamp/opengl/util/av/VideoPixelFormat.java",
          "src/jogl/classes/jogamp/opengl/util/av/VideoPixelFormat.java",
          "src/jogl/classes/com/jogamp/opengl/util/av/SubBitmapEvent.java",
          "src/jogl/classes/com/jogamp/opengl/util/av/SubTextEventLine.java",
          "src/jogl/classes/com/jogamp/opengl/util/av/SubASSEventLine.java",
          "src/jogl/classes/com/jogamp/opengl/util/av/SubEmptyEvent.java",
          "src/jogl/classes/com/jogamp/opengl/util/av/CodecID.java",
          "src/jogl/classes/com/jogamp/opengl/util/av/SubTextureEvent.java",
          "src/jogl/classes/com/jogamp/opengl/util/av/SubtitleEvent.java"
        ],
        "commitId" : "9fe460aecf8509c8305416bb9d77aadf6165c677",
        "timestamp" : 1706791541000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sgothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "Bug 1494: Clarify SubtitleEvent class, adding general FFmpeg analog CodecID and hence also promoting VideoPixelFormat\u000a",
        "date" : "2024-02-01 13:45:41 +0100",
        "id" : "9fe460aecf8509c8305416bb9d77aadf6165c677",
        "msg" : "Bug 1494: Clarify SubtitleEvent class, adding general FFmpeg analog CodecID and hence also promoting VideoPixelFormat",
        "paths" : [
          {
            "editType" : "add",
            "file" : "src/jogl/classes/com/jogamp/opengl/util/av/VideoPixelFormat.java"
          },
          {
            "editType" : "add",
            "file" : "src/jogl/classes/com/jogamp/opengl/util/av/SubBitmapEvent.java"
          },
          {
            "editType" : "delete",
            "file" : "src/jogl/classes/com/jogamp/opengl/util/av/SubTextureEvent.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/com/jogamp/opengl/util/av/SubEmptyEvent.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/com/jogamp/opengl/util/av/SubtitleEvent.java"
          },
          {
            "editType" : "add",
            "file" : "src/jogl/classes/com/jogamp/opengl/util/av/CodecID.java"
          },
          {
            "editType" : "delete",
            "file" : "src/jogl/classes/com/jogamp/opengl/util/av/SubASSEventLine.java"
          },
          {
            "editType" : "delete",
            "file" : "src/jogl/classes/jogamp/opengl/util/av/VideoPixelFormat.java"
          },
          {
            "editType" : "add",
            "file" : "src/jogl/classes/com/jogamp/opengl/util/av/SubTextEventLine.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/jogl/classes/com/jogamp/math/Vec2f.java",
          "src/jogl/classes/com/jogamp/math/Vec2i.java",
          "src/jogl/classes/com/jogamp/math/Vec3d.java",
          "src/jogl/classes/com/jogamp/math/Vec4f.java",
          "src/jogl/classes/com/jogamp/math/Vec3f.java"
        ],
        "commitId" : "ca846bc67e6a074a182e97f29b3c34b90a12cac3",
        "timestamp" : 1706791587000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sgothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "Vec[234][ifd]: Add toArray(..) method\u000a",
        "date" : "2024-02-01 13:46:27 +0100",
        "id" : "ca846bc67e6a074a182e97f29b3c34b90a12cac3",
        "msg" : "Vec[234][ifd]: Add toArray(..) method",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/com/jogamp/math/Vec2f.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/com/jogamp/math/Vec2i.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/com/jogamp/math/Vec3f.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/com/jogamp/math/Vec4f.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/com/jogamp/math/Vec3d.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/jogl/classes/com/jogamp/opengl/util/av/GLMediaPlayer.java",
          "src/jogl/classes/jogamp/graph/curve/opengl/VBORegionSPES2.java",
          "src/jogl/classes/jogamp/graph/curve/opengl/shader/UniformNames.java",
          "src/jogl/classes/jogamp/graph/curve/opengl/shader/curverenderer01-pass1-curve_simple.glsl",
          "src/jogl/classes/jogamp/opengl/util/av/GLMediaPlayerImpl.java",
          "src/jogl/classes/jogamp/graph/curve/opengl/VBORegion2PMSAAES2.java",
          "src/graphui/classes/com/jogamp/graph/ui/shapes/TexSeqButton.java",
          "src/jogl/classes/jogamp/graph/curve/opengl/VBORegion2PVBAAES2.java",
          "src/jogl/classes/com/jogamp/opengl/util/texture/ImageSequence.java",
          "src/jogl/classes/com/jogamp/opengl/util/texture/TextureSequence.java",
          "src/jogl/classes/com/jogamp/graph/curve/Region.java",
          "src/jogl/classes/jogamp/graph/curve/opengl/shader/uniforms.glsl"
        ],
        "commitId" : "9ff736464e0d2762c424bab66bc6d03ccc6e6d11",
        "timestamp" : 1706798223000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sgothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "Bug 805: Graph/GraphUI TextureSequence Scale: Move Region.COLORTEXTURE_LETTERBOX_RENDERING_BIT to TextureSequence and add enabling/disabling of aratio adjustment + letter-box back-color\u000a\u000aTextureSequence color-texture params fetched from Graph VBORegion* and fed into shader.\u000a\u000aThis allows more flexibility in aspect-ratio adjustment as well as setting a clipping background color for\u000athe added letter-box space.\u000a",
        "date" : "2024-02-01 15:37:03 +0100",
        "id" : "9ff736464e0d2762c424bab66bc6d03ccc6e6d11",
        "msg" : "Bug 805: Graph/GraphUI TextureSequence Scale: Move Region.COLORTEXTURE_LETTERBOX_RENDERING_BIT to TextureSequence and add enabling/disabling of aratio adjustment + letter-box back-color",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/com/jogamp/opengl/util/texture/ImageSequence.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/com/jogamp/opengl/util/texture/TextureSequence.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/jogamp/graph/curve/opengl/shader/uniforms.glsl"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/com/jogamp/opengl/util/av/GLMediaPlayer.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/jogamp/graph/curve/opengl/VBORegionSPES2.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/jogamp/graph/curve/opengl/shader/curverenderer01-pass1-curve_simple.glsl"
          },
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/com/jogamp/graph/ui/shapes/TexSeqButton.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/com/jogamp/graph/curve/Region.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/jogamp/graph/curve/opengl/VBORegion2PMSAAES2.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/jogamp/opengl/util/av/GLMediaPlayerImpl.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/jogamp/graph/curve/opengl/VBORegion2PVBAAES2.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/jogamp/graph/curve/opengl/shader/UniformNames.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/jogl/classes/com/jogamp/opengl/util/av/GLMediaPlayer.java",
          "src/jogl/native/libav/ffmpeg_impl_template.c",
          "src/jogl/native/libav/ffmpeg_tool.h",
          "src/jogl/classes/com/jogamp/opengl/util/av/SubBitmapEvent.java",
          "src/jogl/classes/jogamp/opengl/util/av/impl/FFMPEGDynamicLibraryBundleInfo.java",
          "src/jogl/classes/jogamp/opengl/util/av/GLMediaPlayerImpl.java",
          "src/jogl/native/libav/ffmpeg_static.c",
          "src/jogl/classes/com/jogamp/opengl/util/av/SubTextEventLine.java",
          "src/jogl/classes/jogamp/opengl/util/av/impl/FFMPEGv0400Natives.java",
          "src/jogl/classes/com/jogamp/opengl/util/av/SubEmptyEvent.java",
          "src/graphui/classes/com/jogamp/graph/ui/widgets/MediaPlayer.java",
          "src/jogl/classes/jogamp/opengl/android/av/AndroidGLMediaPlayerAPI14.java",
          "src/graphui/classes/com/jogamp/graph/ui/shapes/MediaButton.java",
          "src/demos/com/jogamp/opengl/demos/graph/ui/UIMediaGrid01.java",
          "src/jogl/classes/jogamp/opengl/util/av/impl/FFMPEGv0500Natives.java",
          "src/jogl/classes/com/jogamp/opengl/util/av/SubtitleEvent.java",
          "src/jogl/classes/jogamp/opengl/util/av/impl/FFMPEGv0600Natives.java",
          "src/jogl/classes/jogamp/opengl/util/av/NullGLMediaPlayer.java",
          "src/jogl/classes/jogamp/opengl/util/av/impl/FFMPEGMediaPlayer.java",
          "src/jogl/classes/jogamp/opengl/util/av/impl/FFMPEGStaticNatives.java",
          "src/jogl/classes/jogamp/opengl/util/av/impl/OMXGLMediaPlayer.java",
          "src/jogl/classes/jogamp/opengl/util/av/impl/FFMPEGNatives.java",
          "src/jogl/classes/com/jogamp/opengl/util/av/SubTextEvent.java"
        ],
        "commitId" : "23cf5279472d3ae1b2d8d1904e6b1f1e7fd8f012",
        "timestamp" : 1706858869000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sgothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "Bug 1494 - GLMediaPlayer/GraphUI: Support Displaying Bitmap'ed Subtitles (PGS ..) via FFMPEGFMediaPlayer/FFmpeg\u000a\u000aFFMPEGFMediaPlayer related changes:\u000a- Add libswscale (6th FFmpeg lib used) for sws_getCachedContext(), sws_scale() and sws_freeContext(),\u000a  used natively to convert the palette'ed bitmap into RGBA colorspace -> GL texture\u000a\u000a- Handling AVSubtitleRect.type SUBTITLE_BITMAP\u000a-- only handled if libswscale is available\u000a-- config/adjust texture object\u000a-- sws_scale palette'ed bitmap to texture\u000a-- intermediate memory is cached, may be resized and free'ed at destroy\u000a-- texture objects are managed and passed from GLMediaPlayerImpl,\u000a   as they are also forwarded to player client via SubBitmapEvent\u000a\u000a- Passing the AVCodecID to GLMediaPlayerImpl, converted to our CodecID enum.\u000a\u000a- Unifying creation and opening of AVCodecContext with 'createOpenedAVCodecContext(..)'\u000a\u000a+++\u000a\u000aSubtitleEvent*\u000a- SubTextEvent now also handles ASS.Dialogue (FFmpeg 4)\u000a  besides ASS.Event (FFmpeg 5, 6, ..).\u000a\u000a+++\u000a\u000aGLMediaPlayerImpl\u000a- Added ringbuffer subTexFree, managing Texture for bitmap'ed subtitles\u000a-- Uses 1 bitmap-subtitle Texture per used textureCount in cache,\u000a   as one bitmap-subtile can be displayed per frame.\u000a   Could be potentially reduced to just 2 .. but resources used are\u000a   relatively low here.\u000a\u000a- Validating subTexFree + videoFramesFree usage,\u000a  use blocking get/put ringbuffer due to utilization from different threads.\u000a\u000a- Receives subtitle content from native getNextPacket0() via callback,\u000a  creates SubtitleEvent instance and passes it to a SubtitleEventListener - if exists.\u000a  (See MediaButton example)\u000a\u000a-- SubBitmapEvent also gets its special SubBitmapEvent.TextureOwner to handle client releasing\u000a   the event and allowing us to put back the Texture resource to 'subTexFree'.\u000a   This passing through of the Texture object is probably a weakness of this lifecycle\u000a   and requires the client to ensure SubtitleEvent.release() gets called.\u000a   See MediaButton example!\u000a\u000a- Exposing CodecID, allowing clients like MediaButton to handle SubtitleEvent content according to codec\u000a",
        "date" : "2024-02-02 08:27:49 +0100",
        "id" : "23cf5279472d3ae1b2d8d1904e6b1f1e7fd8f012",
        "msg" : "Bug 1494 - GLMediaPlayer/GraphUI: Support Displaying Bitmap'ed Subtitles (PGS ..) via FFMPEGFMediaPlayer/FFmpeg",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/com/jogamp/opengl/util/av/GLMediaPlayer.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/com/jogamp/opengl/util/av/SubBitmapEvent.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/native/libav/ffmpeg_tool.h"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/jogamp/opengl/util/av/GLMediaPlayerImpl.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/jogamp/opengl/util/av/impl/FFMPEGv0400Natives.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/jogamp/opengl/util/av/impl/FFMPEGMediaPlayer.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/native/libav/ffmpeg_impl_template.c"
          },
          {
            "editType" : "delete",
            "file" : "src/jogl/classes/com/jogamp/opengl/util/av/SubTextEventLine.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/com/jogamp/opengl/util/av/SubEmptyEvent.java"
          },
          {
            "editType" : "add",
            "file" : "src/jogl/classes/com/jogamp/opengl/util/av/SubTextEvent.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/jogamp/opengl/util/av/impl/OMXGLMediaPlayer.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/jogamp/opengl/util/av/impl/FFMPEGDynamicLibraryBundleInfo.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/native/libav/ffmpeg_static.c"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/com/jogamp/opengl/util/av/SubtitleEvent.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/jogamp/opengl/util/av/NullGLMediaPlayer.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/jogamp/opengl/util/av/impl/FFMPEGStaticNatives.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/jogamp/opengl/util/av/impl/FFMPEGv0500Natives.java"
          },
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/com/jogamp/graph/ui/shapes/MediaButton.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/jogamp/opengl/android/av/AndroidGLMediaPlayerAPI14.java"
          },
          {
            "editType" : "edit",
            "file" : "src/demos/com/jogamp/opengl/demos/graph/ui/UIMediaGrid01.java"
          },
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/com/jogamp/graph/ui/widgets/MediaPlayer.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/jogamp/opengl/util/av/impl/FFMPEGv0600Natives.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/jogamp/opengl/util/av/impl/FFMPEGNatives.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/jogl/classes/jogamp/opengl/util/av/GLMediaPlayerImpl.java"
        ],
        "commitId" : "0dd2b17f1dd484d22d68828bfb61558be09a4bfa",
        "timestamp" : 1706859089000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sgothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "GLMediaPlayerImpl: Allow one frame to be shown paused when issuing seek(), i.e. 'oneVideoFrameOnce'.\u000a\u000aThis allows a player to see the current seek'ed position while paused.\u000a",
        "date" : "2024-02-02 08:31:29 +0100",
        "id" : "0dd2b17f1dd484d22d68828bfb61558be09a4bfa",
        "msg" : "GLMediaPlayerImpl: Allow one frame to be shown paused when issuing seek(), i.e. 'oneVideoFrameOnce'.",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/jogamp/opengl/util/av/GLMediaPlayerImpl.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/jogl/classes/jogamp/opengl/util/av/GLMediaPlayerImpl.java"
        ],
        "commitId" : "1672233124e425e5446e1ae87974af248784be3c",
        "timestamp" : 1706859210000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sgothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "GLMediaPlayerImpl.StreamWorker: Don't grow videoFramesFree since having removed buffer grow in commit 68ca5b14966cb7eec9501c17dc8b3b465421a68e\u000a",
        "date" : "2024-02-02 08:33:30 +0100",
        "id" : "1672233124e425e5446e1ae87974af248784be3c",
        "msg" : "GLMediaPlayerImpl.StreamWorker: Don't grow videoFramesFree since having removed buffer grow in commit 68ca5b14966cb7eec9501c17dc8b3b465421a68e",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/jogamp/opengl/util/av/GLMediaPlayerImpl.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/jogl/classes/jogamp/opengl/util/av/GLMediaPlayerImpl.java",
          "src/jogl/classes/com/jogamp/opengl/util/av/GLMediaPlayer.java"
        ],
        "commitId" : "a676fb259c310246975f9c2f67f7a9795967f7bb",
        "timestamp" : 1706860072000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sgothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "GLMediaPlayer: Adjust API doc and certain names differentiating video (from subtititle) etc.\u000a",
        "date" : "2024-02-02 08:47:52 +0100",
        "id" : "a676fb259c310246975f9c2f67f7a9795967f7bb",
        "msg" : "GLMediaPlayer: Adjust API doc and certain names differentiating video (from subtititle) etc.",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/jogamp/opengl/util/av/GLMediaPlayerImpl.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/com/jogamp/opengl/util/av/GLMediaPlayer.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/jogl/classes/jogamp/opengl/util/av/GLMediaPlayerImpl.java"
        ],
        "commitId" : "1639bf159810895eb24791c8128a7b2c02d15a56",
        "timestamp" : 1706860275000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sgothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "GLMediaPlayerImpl: Disable subDEBUG flag\u000a",
        "date" : "2024-02-02 08:51:15 +0100",
        "id" : "1639bf159810895eb24791c8128a7b2c02d15a56",
        "msg" : "GLMediaPlayerImpl: Disable subDEBUG flag",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/jogamp/opengl/util/av/GLMediaPlayerImpl.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/jogl/classes/com/jogamp/graph/geom/Outline.java",
          "src/jogl/classes/com/jogamp/graph/geom/Vertex.java",
          "src/jogl/classes/jogamp/graph/curve/tess/CDTriangulator2DExpAddOn.java",
          "src/jogl/classes/jogamp/graph/curve/tess/CDTriangulator2D.java",
          "src/jogl/classes/com/jogamp/graph/geom/Triangle.java",
          "src/jogl/classes/com/jogamp/math/geom/plane/Path2F.java",
          "src/jogl/classes/com/jogamp/math/geom/plane/AffineTransform.java",
          "src/jogl/classes/com/jogamp/graph/curve/OutlineShape.java"
        ],
        "commitId" : "aa39750aa27fc4c65f34fbd599186b30e5005f59",
        "timestamp" : 1706865891000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sgothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "Remove Clonable and clone() in favor of explicit determined copy() and copy-ctor in com.jogamp.graph.* and com.jogamp.math.*\u000a",
        "date" : "2024-02-02 10:24:51 +0100",
        "id" : "aa39750aa27fc4c65f34fbd599186b30e5005f59",
        "msg" : "Remove Clonable and clone() in favor of explicit determined copy() and copy-ctor in com.jogamp.graph.* and com.jogamp.math.*",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/jogamp/graph/curve/tess/CDTriangulator2D.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/com/jogamp/graph/geom/Triangle.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/com/jogamp/math/geom/plane/AffineTransform.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/com/jogamp/math/geom/plane/Path2F.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/com/jogamp/graph/curve/OutlineShape.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/com/jogamp/graph/geom/Outline.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/com/jogamp/graph/geom/Vertex.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/jogamp/graph/curve/tess/CDTriangulator2DExpAddOn.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/jogl/classes/com/jogamp/graph/curve/OutlineShape.java"
        ],
        "commitId" : "5242c1392c39d3a4b0a95ebfdc72bcd93bf2f820",
        "timestamp" : 1706866429000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sgothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "OutlineShape: Earmark coloring task when triangulating ..\u000a",
        "date" : "2024-02-02 10:33:49 +0100",
        "id" : "5242c1392c39d3a4b0a95ebfdc72bcd93bf2f820",
        "msg" : "OutlineShape: Earmark coloring task when triangulating ..",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/com/jogamp/graph/curve/OutlineShape.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/graphui/classes/com/jogamp/graph/ui/widgets/MediaPlayer.java",
          "src/graphui/classes/com/jogamp/graph/ui/shapes/MediaButton.java",
          "src/graphui/classes/com/jogamp/graph/ui/layout/Alignment.java"
        ],
        "commitId" : "020f998cad685ce2267751196528b31ce939764c",
        "timestamp" : 1706872319000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sgothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "Bug 1493 - Text/ASS Subtitle via MediaButton/MediaPlayer Alignment defaults to CenterHoriz, also support Left.\u000a\u000aMediaButton: Also cleanup local vars in layout\u000a",
        "date" : "2024-02-02 12:11:59 +0100",
        "id" : "020f998cad685ce2267751196528b31ce939764c",
        "msg" : "Bug 1493 - Text/ASS Subtitle via MediaButton/MediaPlayer Alignment defaults to CenterHoriz, also support Left.",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/com/jogamp/graph/ui/widgets/MediaPlayer.java"
          },
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/com/jogamp/graph/ui/layout/Alignment.java"
          },
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/com/jogamp/graph/ui/shapes/MediaButton.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/jogl/classes/com/jogamp/opengl/util/av/GLMediaPlayer.java",
          "src/jogl/classes/com/jogamp/opengl/util/av/SubEmptyEvent.java",
          "src/jogl/classes/com/jogamp/opengl/util/av/SubBitmapEvent.java",
          "src/jogl/classes/jogamp/opengl/util/av/GLMediaPlayerImpl.java",
          "src/jogl/classes/com/jogamp/opengl/util/av/SubTextEvent.java",
          "src/jogl/classes/com/jogamp/opengl/util/av/SubtitleEvent.java"
        ],
        "commitId" : "7928ed90104f71fb53ae8201b3140b8e347b83ee",
        "timestamp" : 1706880312000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sgothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "Bug 1493: Supply language code to SubtitleEvent, perhaps allowsing player to select font for ASS/Text rendering; Remove GLMediaPlayer's getStreamLang() as replaced by getLang()\u000a",
        "date" : "2024-02-02 14:25:12 +0100",
        "id" : "7928ed90104f71fb53ae8201b3140b8e347b83ee",
        "msg" : "Bug 1493: Supply language code to SubtitleEvent, perhaps allowsing player to select font for ASS/Text rendering; Remove GLMediaPlayer's getStreamLang() as replaced by getLang()",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/com/jogamp/opengl/util/av/GLMediaPlayer.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/com/jogamp/opengl/util/av/SubBitmapEvent.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/com/jogamp/opengl/util/av/SubEmptyEvent.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/com/jogamp/opengl/util/av/SubTextEvent.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/com/jogamp/opengl/util/av/SubtitleEvent.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/jogamp/opengl/util/av/GLMediaPlayerImpl.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/demos/com/jogamp/opengl/demos/graph/ui/FontView01.java",
          "src/jogl/classes/com/jogamp/graph/font/Font.java",
          "src/jogl/classes/com/jogamp/graph/font/FontFactory.java",
          "src/graphui/classes/com/jogamp/graph/ui/widgets/MediaPlayer.java",
          "src/demos/com/jogamp/opengl/demos/graph/ui/UIMediaGrid00.java",
          "src/jogl/classes/jogamp/graph/font/typecast/TypecastFont.java",
          "src/demos/com/jogamp/opengl/demos/graph/ui/UIMediaGrid01.java",
          "src/graphui/classes/com/jogamp/graph/ui/shapes/MediaButton.java",
          "src/graphui/classes/com/jogamp/graph/ui/Scene.java"
        ],
        "commitId" : "4ba099b97df41be220c4b2816c728e6b8cc1b037",
        "timestamp" : 1706919250000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sgothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "Graph/GraphUI: Move getDefault*() to FontFactory and add {get,set}FallbackFont() + Font.getBestCoverage(..); Use fallback-font in MediaButton in case chosen font doesn't match (foreign languages, e.g. 'zho' Chinese .. )\u000a",
        "date" : "2024-02-03 01:14:10 +0100",
        "id" : "4ba099b97df41be220c4b2816c728e6b8cc1b037",
        "msg" : "Graph/GraphUI: Move getDefault*() to FontFactory and add {get,set}FallbackFont() + Font.getBestCoverage(..); Use fallback-font in MediaButton in case chosen font doesn't match (foreign languages, e.g. 'zho' Chinese .. )",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/jogamp/graph/font/typecast/TypecastFont.java"
          },
          {
            "editType" : "edit",
            "file" : "src/demos/com/jogamp/opengl/demos/graph/ui/UIMediaGrid00.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/com/jogamp/graph/font/Font.java"
          },
          {
            "editType" : "edit",
            "file" : "src/demos/com/jogamp/opengl/demos/graph/ui/UIMediaGrid01.java"
          },
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/com/jogamp/graph/ui/Scene.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/com/jogamp/graph/font/FontFactory.java"
          },
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/com/jogamp/graph/ui/widgets/MediaPlayer.java"
          },
          {
            "editType" : "edit",
            "file" : "src/demos/com/jogamp/opengl/demos/graph/ui/FontView01.java"
          },
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/com/jogamp/graph/ui/shapes/MediaButton.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/jogl/classes/jogamp/graph/font/typecast/ot/table/VdmxTable.java",
          "src/jogl/classes/jogamp/graph/font/typecast/ot/table/VheaTable.java",
          "src/jogl/classes/jogamp/graph/font/typecast/ot/table/CvtTable.java",
          "src/jogl/classes/jogamp/graph/font/typecast/ot/table/GlyfTable.java",
          "src/jogl/classes/jogamp/graph/font/typecast/ot/table/PostTable.java",
          "src/jogl/classes/jogamp/graph/font/typecast/ot/table/KernTable.java",
          "src/jogl/classes/jogamp/graph/font/typecast/ot/table/LocaTable.java",
          "src/jogl/classes/jogamp/graph/font/typecast/ot/Fixed.java",
          "src/jogl/classes/jogamp/graph/font/typecast/ot/table/GdefTable.java",
          "src/jogl/classes/jogamp/graph/font/typecast/ot/table/FpgmTable.java",
          "src/jogl/classes/jogamp/graph/font/typecast/ot/table/PrepTable.java",
          "src/jogl/classes/jogamp/graph/font/typecast/ot/table/MaxpTable.java",
          "src/jogl/classes/jogamp/graph/font/typecast/ot/table/VmtxTable.java",
          "src/jogl/classes/jogamp/graph/font/typecast/ot/table/HheaTable.java",
          "src/jogl/classes/jogamp/graph/font/typecast/ot/table/Table.java",
          "src/jogl/classes/jogamp/graph/font/typecast/ot/table/GaspTable.java",
          "src/jogl/classes/jogamp/graph/font/typecast/ot/table/LtshTable.java",
          "src/jogl/classes/jogamp/graph/font/typecast/ot/table/NameTable.java",
          "src/jogl/classes/jogamp/graph/font/typecast/ot/table/CpalTable.java",
          "src/jogl/classes/jogamp/graph/font/typecast/ot/table/BaseTable.java",
          "src/jogl/classes/jogamp/graph/font/typecast/ot/table/CffTable.java",
          "src/jogl/classes/jogamp/graph/font/typecast/ot/table/PcltTable.java",
          "src/jogl/classes/jogamp/graph/font/typecast/ot/table/HmtxTable.java",
          "src/jogl/classes/jogamp/graph/font/typecast/ot/table/GposTable.java",
          "src/jogl/classes/jogamp/graph/font/typecast/ot/table/Os2Table.java",
          "src/jogl/classes/jogamp/graph/font/typecast/ot/table/CmapTable.java",
          "src/jogl/classes/jogamp/graph/font/typecast/ot/table/SbixTable.java",
          "src/jogl/classes/jogamp/graph/font/typecast/ot/table/HdmxTable.java",
          "src/jogl/classes/jogamp/graph/font/typecast/ot/table/HeadTable.java",
          "src/jogl/classes/jogamp/graph/font/typecast/ot/table/GsubTable.java",
          "src/jogl/classes/jogamp/graph/font/typecast/ot/table/ColrTable.java",
          "src/jogl/classes/jogamp/graph/font/typecast/ot/table/DsigTable.java"
        ],
        "commitId" : "842d26748d6eaf7fde33dced3a33aef60f09d7d3",
        "timestamp" : 1706920920000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sgothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "Documentation for `HeadTable`\u000a\u000a* Added documentation to fields in `HeadTable` taken from\u000ahttps://docs.microsoft.com/en-us/typography/opentype/spec/head.\u000a* Added `LongDateTime` conversion of date values encoded as \"seconds\u000asince 1904\".\u000a* Added `getType()` API to `Table` interface.\u000a# Conflicts:\u000a#\u0009src/jogl/classes/jogamp/graph/font/typecast/ot/table/HdmxTable.java\u000a#\u0009src/jogl/classes/jogamp/graph/font/typecast/ot/table/HeadTable.java\u000a#\u0009src/jogl/classes/jogamp/graph/font/typecast/ot/table/LocaTable.java\u000a#\u0009src/jogl/classes/jogamp/graph/font/typecast/ot/table/SbixTable.java\u000a\u000aOriginal commit from typecast merge:\u000a\u000aFrom 43c20bb2e7644aef7002caeb93e1770be5cacaab Mon Sep 17 00:00:00 2001\u000aFrom: Bernhard Haumacher <haui@haumacher.de>\u000aDate: Sat, 9 May 2020 12:49:39 +0200\u000a",
        "date" : "2024-02-03 01:42:00 +0100",
        "id" : "842d26748d6eaf7fde33dced3a33aef60f09d7d3",
        "msg" : "Documentation for `HeadTable`",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/jogamp/graph/font/typecast/ot/table/DsigTable.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/jogamp/graph/font/typecast/ot/table/KernTable.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/jogamp/graph/font/typecast/ot/table/LocaTable.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/jogamp/graph/font/typecast/ot/table/GposTable.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/jogamp/graph/font/typecast/ot/table/VdmxTable.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/jogamp/graph/font/typecast/ot/table/LtshTable.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/jogamp/graph/font/typecast/ot/table/Os2Table.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/jogamp/graph/font/typecast/ot/table/FpgmTable.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/jogamp/graph/font/typecast/ot/table/HdmxTable.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/jogamp/graph/font/typecast/ot/Fixed.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/jogamp/graph/font/typecast/ot/table/GsubTable.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/jogamp/graph/font/typecast/ot/table/CffTable.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/jogamp/graph/font/typecast/ot/table/SbixTable.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/jogamp/graph/font/typecast/ot/table/Table.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/jogamp/graph/font/typecast/ot/table/GdefTable.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/jogamp/graph/font/typecast/ot/table/CmapTable.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/jogamp/graph/font/typecast/ot/table/GlyfTable.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/jogamp/graph/font/typecast/ot/table/PrepTable.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/jogamp/graph/font/typecast/ot/table/HeadTable.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/jogamp/graph/font/typecast/ot/table/BaseTable.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/jogamp/graph/font/typecast/ot/table/HmtxTable.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/jogamp/graph/font/typecast/ot/table/VheaTable.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/jogamp/graph/font/typecast/ot/table/NameTable.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/jogamp/graph/font/typecast/ot/table/PostTable.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/jogamp/graph/font/typecast/ot/table/ColrTable.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/jogamp/graph/font/typecast/ot/table/GaspTable.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/jogamp/graph/font/typecast/ot/table/CpalTable.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/jogamp/graph/font/typecast/ot/table/HheaTable.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/jogamp/graph/font/typecast/ot/table/PcltTable.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/jogamp/graph/font/typecast/ot/table/CvtTable.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/jogamp/graph/font/typecast/ot/table/VmtxTable.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/jogamp/graph/font/typecast/ot/table/MaxpTable.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/jogl/classes/jogamp/graph/font/typecast/ot/table/HeadTable.java"
        ],
        "commitId" : "d5880b4ba4a3fec40647960682aead03a977b9ad",
        "timestamp" : 1706921037000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sgothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "Added JavaDoc references, split version fields according to spec.\u000a",
        "date" : "2024-02-03 01:43:57 +0100",
        "id" : "d5880b4ba4a3fec40647960682aead03a977b9ad",
        "msg" : "Added JavaDoc references, split version fields according to spec.",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/jogamp/graph/font/typecast/ot/table/HeadTable.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/jogl/classes/jogamp/graph/font/typecast/ot/table/HeadTable.java",
          "src/jogl/classes/jogamp/graph/font/typecast/ot/Bits.java"
        ],
        "commitId" : "a71ee81c72baa1c4d6a58220df7733acca499166",
        "timestamp" : 1706921053000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sgothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "Getters for macStyle bits, enhanced docu for fontDirectionHint.\u000a",
        "date" : "2024-02-03 01:44:13 +0100",
        "id" : "a71ee81c72baa1c4d6a58220df7733acca499166",
        "msg" : "Getters for macStyle bits, enhanced docu for fontDirectionHint.",
        "paths" : [
          {
            "editType" : "add",
            "file" : "src/jogl/classes/jogamp/graph/font/typecast/ot/Bits.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/jogamp/graph/font/typecast/ot/table/HeadTable.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/jogl/classes/jogamp/graph/font/typecast/ot/table/Table.java",
          "src/jogl/classes/jogamp/graph/font/typecast/ot/Fmt.java",
          "src/jogl/classes/jogamp/graph/font/typecast/ot/table/GlyphDescription.java",
          "src/jogl/classes/jogamp/graph/font/typecast/ot/table/GlyfTable.java",
          "src/jogl/classes/jogamp/graph/font/typecast/ot/table/NameTable.java",
          "src/jogl/classes/jogamp/graph/font/typecast/ot/TTFont.java",
          "src/jogl/classes/jogamp/graph/font/typecast/ot/table/GlyfSimpleDescript.java",
          "src/jogl/classes/jogamp/graph/font/typecast/ot/Disassembler.java",
          "src/jogl/classes/jogamp/graph/font/typecast/ot/table/Program.java",
          "src/jogl/classes/jogamp/graph/font/typecast/ot/table/GlyfDescript.java",
          "src/jogl/classes/jogamp/graph/font/typecast/ot/Fixed_2_14.java",
          "src/jogl/classes/jogamp/graph/font/typecast/ot/TTGlyph.java",
          "src/jogl/classes/jogamp/graph/font/typecast/ot/table/GlyfCompositeDescript.java",
          "src/jogl/classes/jogamp/graph/font/typecast/ot/Bits.java",
          "src/jogl/classes/jogamp/graph/font/typecast/ot/OTFont.java",
          "src/jogl/classes/jogamp/graph/font/typecast/ot/table/NameRecord.java",
          "src/jogl/classes/jogamp/graph/font/typecast/ot/table/HeadTable.java",
          "src/jogl/classes/jogamp/graph/font/typecast/ot/table/VmtxTable.java",
          "src/jogl/classes/jogamp/graph/font/typecast/ot/table/GlyfCompositeComp.java"
        ],
        "commitId" : "a237a956fcc925e27d72ba49d242dcc1dc09072c",
        "timestamp" : 1706921902000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sgothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "Added documentation to the 'glyf' table and structures.\u000a\u000a* Completed missing toString() functions in some table.\u000a* Added dump() functionality to create a human readable description of\u000aall font tables with complete detail.\u000a* Fixed some signed/unsigned problems in the parser.\u000a# Conflicts:\u000a#\u0009src/jogl/classes/jogamp/graph/font/typecast/ot/OTFont.java\u000a#\u0009src/jogl/classes/jogamp/graph/font/typecast/ot/TTFont.java\u000a#\u0009src/jogl/classes/jogamp/graph/font/typecast/ot/table/GlyfCompositeDescript.java\u000a#\u0009src/jogl/classes/jogamp/graph/font/typecast/ot/table/GlyfDescript.java\u000a#\u0009src/jogl/classes/jogamp/graph/font/typecast/ot/table/NameTable.java\u000a#\u0009src/test/java/net/java/dev/typecast/ot/TTFontTest.java\u000a",
        "date" : "2024-02-03 01:58:22 +0100",
        "id" : "a237a956fcc925e27d72ba49d242dcc1dc09072c",
        "msg" : "Added documentation to the 'glyf' table and structures.",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/jogamp/graph/font/typecast/ot/Disassembler.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/jogamp/graph/font/typecast/ot/table/GlyfCompositeDescript.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/jogamp/graph/font/typecast/ot/table/VmtxTable.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/jogamp/graph/font/typecast/ot/TTGlyph.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/jogamp/graph/font/typecast/ot/table/GlyfCompositeComp.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/jogamp/graph/font/typecast/ot/OTFont.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/jogamp/graph/font/typecast/ot/table/GlyphDescription.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/jogamp/graph/font/typecast/ot/table/Table.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/jogamp/graph/font/typecast/ot/table/HeadTable.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/jogamp/graph/font/typecast/ot/table/GlyfDescript.java"
          },
          {
            "editType" : "add",
            "file" : "src/jogl/classes/jogamp/graph/font/typecast/ot/Fixed_2_14.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/jogamp/graph/font/typecast/ot/table/Program.java"
          },
          {
            "editType" : "add",
            "file" : "src/jogl/classes/jogamp/graph/font/typecast/ot/Fmt.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/jogamp/graph/font/typecast/ot/table/NameRecord.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/jogamp/graph/font/typecast/ot/table/GlyfTable.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/jogamp/graph/font/typecast/ot/table/GlyfSimpleDescript.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/jogamp/graph/font/typecast/ot/table/NameTable.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/jogamp/graph/font/typecast/ot/TTFont.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/jogamp/graph/font/typecast/ot/Bits.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/jogl/classes/jogamp/graph/font/typecast/ot/table/HmtxTable.java"
        ],
        "commitId" : "8f0c4a6b250a2afa4d5145bee39adbf443dfcbd8",
        "timestamp" : 1706921913000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sgothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "Added documentation to the HmtxTable.\u000a",
        "date" : "2024-02-03 01:58:33 +0100",
        "id" : "8f0c4a6b250a2afa4d5145bee39adbf443dfcbd8",
        "msg" : "Added documentation to the HmtxTable.",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/jogamp/graph/font/typecast/ot/table/HmtxTable.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/jogl/classes/jogamp/graph/font/typecast/ot/table/GlyfDescript.java",
          "src/jogl/classes/jogamp/graph/font/typecast/ot/table/GlyfTable.java",
          "src/jogl/classes/jogamp/graph/font/typecast/ot/TTFont.java",
          "src/jogl/classes/jogamp/graph/font/typecast/ot/OTFont.java",
          "src/jogl/classes/jogamp/graph/font/typecast/ot/table/TableDirectory.java"
        ],
        "commitId" : "5f2f0905a41d7f0477a1561243c61489066e9de4",
        "timestamp" : 1706921992000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sgothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "Added offset table as member to the font.\u000a\u000a* Include the offset table in the font's dump.\u000a* Simplified reading since the offset table now does not be read twice.\u000a# Conflicts:\u000a#\u0009src/jogl/classes/jogamp/graph/font/typecast/ot/OTFont.java\u000a#\u0009src/jogl/classes/jogamp/graph/font/typecast/ot/TTFont.java\u000a",
        "date" : "2024-02-03 01:59:52 +0100",
        "id" : "5f2f0905a41d7f0477a1561243c61489066e9de4",
        "msg" : "Added offset table as member to the font.",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/jogamp/graph/font/typecast/ot/table/GlyfTable.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/jogamp/graph/font/typecast/ot/OTFont.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/jogamp/graph/font/typecast/ot/table/TableDirectory.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/jogamp/graph/font/typecast/ot/table/GlyfDescript.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/jogamp/graph/font/typecast/ot/TTFont.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/jogl/classes/jogamp/graph/font/typecast/ot/table/CmapFormatUnknown.java"
        ],
        "commitId" : "468a75d6b84b0cdcbd860f8a52492725be8771d9",
        "timestamp" : 1706922040000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sgothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "Bugfix: Format 14 header of Cmap table is not skipped correctly.\u000a",
        "date" : "2024-02-03 02:00:40 +0100",
        "id" : "468a75d6b84b0cdcbd860f8a52492725be8771d9",
        "msg" : "Bugfix: Format 14 header of Cmap table is not skipped correctly.",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/jogamp/graph/font/typecast/ot/table/CmapFormatUnknown.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/jogl/classes/jogamp/graph/font/typecast/ot/table/CmapIndexEntry.java",
          "src/jogl/classes/jogamp/graph/font/typecast/ot/table/CmapFormat2.java",
          "src/jogl/classes/jogamp/graph/font/typecast/ot/table/CmapFormat4.java",
          "src/jogl/classes/jogamp/graph/font/typecast/ot/table/CmapTable.java",
          "src/jogl/classes/jogamp/graph/font/typecast/ot/table/CmapFormat.java",
          "src/jogl/classes/jogamp/graph/font/typecast/ot/table/CmapFormat6.java",
          "src/jogl/classes/jogamp/graph/font/typecast/ot/table/CmapFormat0.java",
          "src/jogl/classes/jogamp/graph/font/typecast/ot/table/CmapFormat12.java"
        ],
        "commitId" : "24a4f764c1f7b07c81a31991bf65808c2406e5bd",
        "timestamp" : 1706922045000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sgothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "Improved documentation of Cmap table.\u000a",
        "date" : "2024-02-03 02:00:45 +0100",
        "id" : "24a4f764c1f7b07c81a31991bf65808c2406e5bd",
        "msg" : "Improved documentation of Cmap table.",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/jogamp/graph/font/typecast/ot/table/CmapFormat12.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/jogamp/graph/font/typecast/ot/table/CmapFormat2.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/jogamp/graph/font/typecast/ot/table/CmapIndexEntry.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/jogamp/graph/font/typecast/ot/table/CmapFormat6.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/jogamp/graph/font/typecast/ot/table/CmapFormat0.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/jogamp/graph/font/typecast/ot/table/CmapTable.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/jogamp/graph/font/typecast/ot/table/CmapFormat4.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/jogamp/graph/font/typecast/ot/table/CmapFormat.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/jogl/classes/jogamp/graph/font/typecast/ot/table/LocaTable.java"
        ],
        "commitId" : "2a23fede0f8ee99ed958f0f547f2558da7662cd9",
        "timestamp" : 1706922049000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sgothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "Added documentation to the 'loca' table.\u000a",
        "date" : "2024-02-03 02:00:49 +0100",
        "id" : "2a23fede0f8ee99ed958f0f547f2558da7662cd9",
        "msg" : "Added documentation to the 'loca' table.",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/jogamp/graph/font/typecast/ot/table/LocaTable.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/jogl/classes/jogamp/graph/font/typecast/ot/table/Table.java",
          "src/jogl/classes/jogamp/graph/font/typecast/ot/TTFont.java",
          "src/jogl/classes/jogamp/graph/font/typecast/ot/table/TableDirectory.java",
          "src/jogl/classes/jogamp/graph/font/typecast/ot/table/SVGTable.java"
        ],
        "commitId" : "adc90be6effd090f217e2613d0dab13f9a1ad7c9",
        "timestamp" : 1706922053000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sgothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "Added support for reading the SVG table. # Conflicts: # src/jogl/classes/jogamp/graph/font/typecast/ot/TTFont.java # src/jogl/classes/jogamp/graph/font/typecast/ot/table/Table.java\u000a",
        "date" : "2024-02-03 02:00:53 +0100",
        "id" : "adc90be6effd090f217e2613d0dab13f9a1ad7c9",
        "msg" : "Added support for reading the SVG table. # Conflicts: # src/jogl/classes/jogamp/graph/font/typecast/ot/TTFont.java # src/jogl/classes/jogamp/graph/font/typecast/ot/table/Table.java",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/jogamp/graph/font/typecast/ot/table/TableDirectory.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/jogamp/graph/font/typecast/ot/table/Table.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/jogamp/graph/font/typecast/ot/TTFont.java"
          },
          {
            "editType" : "add",
            "file" : "src/jogl/classes/jogamp/graph/font/typecast/ot/table/SVGTable.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/jogl/classes/jogamp/graph/font/typecast/ot/table/CffTable.java"
        ],
        "commitId" : "5a4f663e9ce0b5df06ae99dd8f6b9809a2ce2bc4",
        "timestamp" : 1706923193000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sgothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "Added rudimentary documentation to the CFF table.\u000a",
        "date" : "2024-02-03 02:19:53 +0100",
        "id" : "5a4f663e9ce0b5df06ae99dd8f6b9809a2ce2bc4",
        "msg" : "Added rudimentary documentation to the CFF table.",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/jogamp/graph/font/typecast/ot/table/CffTable.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/jogl/classes/jogamp/graph/font/typecast/ot/table/CmapIndexEntry.java",
          "src/jogl/classes/jogamp/graph/font/typecast/ot/table/CmapFormat4.java",
          "src/jogl/classes/jogamp/graph/font/typecast/ot/table/CmapFormat2.java",
          "src/jogl/classes/jogamp/graph/font/typecast/ot/table/CmapTable.java",
          "src/jogl/classes/jogamp/graph/font/typecast/ot/table/CmapFormat.java",
          "src/jogl/classes/jogamp/graph/font/typecast/ot/table/CmapFormat6.java",
          "src/jogl/classes/jogamp/graph/font/typecast/ot/table/CmapFormat0.java",
          "src/jogl/classes/jogamp/graph/font/typecast/ot/table/CmapFormat12.java"
        ],
        "commitId" : "237de4e4c7e403c4bf0b014399e28b2f16d06df7",
        "timestamp" : 1706923210000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sgothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "Enhanced dump format of cmap table.\u000a",
        "date" : "2024-02-03 02:20:10 +0100",
        "id" : "237de4e4c7e403c4bf0b014399e28b2f16d06df7",
        "msg" : "Enhanced dump format of cmap table.",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/jogamp/graph/font/typecast/ot/table/CmapFormat4.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/jogamp/graph/font/typecast/ot/table/CmapFormat.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/jogamp/graph/font/typecast/ot/table/CmapFormat6.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/jogamp/graph/font/typecast/ot/table/CmapFormat0.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/jogamp/graph/font/typecast/ot/table/CmapIndexEntry.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/jogamp/graph/font/typecast/ot/table/CmapTable.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/jogamp/graph/font/typecast/ot/table/CmapFormat2.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/jogamp/graph/font/typecast/ot/table/CmapFormat12.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/jogl/classes/jogamp/graph/font/typecast/ot/table/HeadTable.java",
          "src/jogl/classes/jogamp/graph/font/typecast/ot/OTFont.java",
          "src/jogl/classes/jogamp/graph/font/typecast/ot/TTFont.java"
        ],
        "commitId" : "6c84171b109fb2de8400e20cab191e5801f3e6c6",
        "timestamp" : 1706923692000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sgothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "Hausmacher Merge: Complete merge part-1: Compile and test clean (pre-write-feature)\u000a\u000aBernhard Haumacher provided changes in May 2020 to the typecast project within his public branch https://github.com/haumacher/typecast\u000aThis merges the pre-write-feature work, which probably is incomplete.\u000a",
        "date" : "2024-02-03 02:28:12 +0100",
        "id" : "6c84171b109fb2de8400e20cab191e5801f3e6c6",
        "msg" : "Hausmacher Merge: Complete merge part-1: Compile and test clean (pre-write-feature)",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/jogamp/graph/font/typecast/ot/OTFont.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/jogamp/graph/font/typecast/ot/TTFont.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/jogamp/graph/font/typecast/ot/table/HeadTable.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/jogl/classes/jogamp/graph/font/typecast/ot/table/VdmxTable.java",
          "src/jogl/classes/jogamp/graph/font/typecast/ot/table/VheaTable.java",
          "src/jogl/classes/jogamp/graph/font/typecast/ot/table/Table.java",
          "src/jogl/classes/jogamp/graph/font/typecast/ot/table/NameTable.java",
          "src/jogl/classes/jogamp/graph/font/typecast/ot/TTFont.java",
          "src/jogl/classes/jogamp/graph/font/typecast/ot/Disassembler.java",
          "src/jogl/classes/jogamp/graph/font/typecast/ot/table/GlyfDescript.java",
          "src/jogl/classes/jogamp/graph/font/typecast/ot/table/LocaTable.java",
          "src/jogl/classes/jogamp/graph/font/typecast/ot/table/HmtxTable.java",
          "src/jogl/classes/jogamp/graph/font/typecast/ot/table/GlyfCompositeDescript.java",
          "src/jogl/classes/jogamp/graph/font/typecast/ot/table/CmapFormat2.java",
          "src/jogl/classes/jogamp/graph/font/typecast/ot/table/ID.java",
          "src/jogl/classes/jogamp/graph/font/typecast/ot/table/MaxpTable.java",
          "src/jogl/classes/jogamp/graph/font/typecast/ot/OTFont.java",
          "src/jogl/classes/jogamp/graph/font/typecast/ot/table/HdmxTable.java",
          "src/jogl/classes/jogamp/graph/font/typecast/ot/table/NameRecord.java",
          "src/jogl/classes/jogamp/graph/font/typecast/ot/table/HeadTable.java",
          "src/jogl/classes/jogamp/graph/font/typecast/ot/table/VmtxTable.java",
          "src/jogl/classes/jogamp/graph/font/typecast/ot/table/HheaTable.java"
        ],
        "commitId" : "fcf10b35daeab6356e389487a37196f14523df71",
        "timestamp" : 1706924694000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sgothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "Cleanup (static, final, whitespace, ..) post Hausmacher Merge\u000a",
        "date" : "2024-02-03 02:44:54 +0100",
        "id" : "fcf10b35daeab6356e389487a37196f14523df71",
        "msg" : "Cleanup (static, final, whitespace, ..) post Hausmacher Merge",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/jogamp/graph/font/typecast/ot/table/NameTable.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/jogamp/graph/font/typecast/ot/table/HheaTable.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/jogamp/graph/font/typecast/ot/table/VheaTable.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/jogamp/graph/font/typecast/ot/TTFont.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/jogamp/graph/font/typecast/ot/table/HeadTable.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/jogamp/graph/font/typecast/ot/table/NameRecord.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/jogamp/graph/font/typecast/ot/table/HmtxTable.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/jogamp/graph/font/typecast/ot/table/Table.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/jogamp/graph/font/typecast/ot/table/VmtxTable.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/jogamp/graph/font/typecast/ot/table/MaxpTable.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/jogamp/graph/font/typecast/ot/OTFont.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/jogamp/graph/font/typecast/ot/table/LocaTable.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/jogamp/graph/font/typecast/ot/table/HdmxTable.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/jogamp/graph/font/typecast/ot/table/GlyfDescript.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/jogamp/graph/font/typecast/ot/Disassembler.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/jogamp/graph/font/typecast/ot/table/CmapFormat2.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/jogamp/graph/font/typecast/ot/table/VdmxTable.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/jogamp/graph/font/typecast/ot/table/ID.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/jogamp/graph/font/typecast/ot/table/GlyfCompositeDescript.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/jogl/classes/jogamp/graph/font/typecast/ot/LongDateTime.java"
        ],
        "commitId" : "7cc0bf0d58a3e3f672ce2e4f179de21f1f67dc93",
        "timestamp" : 1706925343000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sgothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "Hausmacher Merge: Complete merge part-1 into JOGL from our typecast branch; Adding missing LongDateTime class\u000a\u000ahaumacher  https://github.com/haumacher/typecast\u000a\u000ahttps://jogamp.org/cgit/typecast.git/log/?h=jogl_patches\u000a\u000aStatus:\u000a- Compile clean\u000a- Graph/GraphUI Bring-Up OK\u000a- Fixes CJK ttf font parsing due to fixed Cmap table\u000a",
        "date" : "2024-02-03 02:55:43 +0100",
        "id" : "7cc0bf0d58a3e3f672ce2e4f179de21f1f67dc93",
        "msg" : "Hausmacher Merge: Complete merge part-1 into JOGL from our typecast branch; Adding missing LongDateTime class",
        "paths" : [
          {
            "editType" : "add",
            "file" : "src/jogl/classes/jogamp/graph/font/typecast/ot/LongDateTime.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/jogl/classes/jogamp/graph/font/typecast/ot/TTGlyph.java",
          "src/jogl/classes/jogamp/graph/font/typecast/ot/Fixed.java"
        ],
        "commitId" : "5acc02aee010d0bae0186bf906bd0c5e8abfb948",
        "timestamp" : 1706932514000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sgothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "Typecast: Cleanup: final\u000a",
        "date" : "2024-02-03 04:55:14 +0100",
        "id" : "5acc02aee010d0bae0186bf906bd0c5e8abfb948",
        "msg" : "Typecast: Cleanup: final",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/jogamp/graph/font/typecast/ot/TTGlyph.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/jogamp/graph/font/typecast/ot/Fixed.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/jogl/classes/jogamp/graph/font/typecast/ot/table/GlyfCompositeDescript.java"
        ],
        "commitId" : "8fcbeaa4e440e1bb8e51658f15a35d2a217dc0bc",
        "timestamp" : 1706932889000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sgothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "Typecast: Re-apply overwritten stability changes (NPE, redundancy)\u000a\u000a0e5e38478a6197b2dc65960c55bc831d6b4796a7 Sun Feb 12 00:54:40 2023 +0100\u000ad18df847b17a89fdc4b47fa9cfe010af1a61690b Sat Mar 1 16:48:48 2014 +0100\u000a",
        "date" : "2024-02-03 05:01:29 +0100",
        "id" : "8fcbeaa4e440e1bb8e51658f15a35d2a217dc0bc",
        "msg" : "Typecast: Re-apply overwritten stability changes (NPE, redundancy)",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/jogamp/graph/font/typecast/ot/table/GlyfCompositeDescript.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/test/com/jogamp/opengl/test/junit/graph/TextRendererGLELBase.java",
          "src/jogl/classes/com/jogamp/graph/curve/opengl/TextRegionUtil.java",
          "src/demos/com/jogamp/opengl/demos/graph/TextRendererGLELBase.java",
          "src/jogl/classes/com/jogamp/opengl/util/av/SubTextEvent.java"
        ],
        "commitId" : "6caed46dba2c8be34c3cb32dc6bddf31f98eac02",
        "timestamp" : 1707028401000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sgothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "Use new com.jogamp.common.util.StringUtil (GlueGen)\u000a",
        "date" : "2024-02-04 07:33:21 +0100",
        "id" : "6caed46dba2c8be34c3cb32dc6bddf31f98eac02",
        "msg" : "Use new com.jogamp.common.util.StringUtil (GlueGen)",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/demos/com/jogamp/opengl/demos/graph/TextRendererGLELBase.java"
          },
          {
            "editType" : "edit",
            "file" : "src/test/com/jogamp/opengl/test/junit/graph/TextRendererGLELBase.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/com/jogamp/graph/curve/opengl/TextRegionUtil.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/com/jogamp/opengl/util/av/SubTextEvent.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/graphui/classes/com/jogamp/graph/ui/TooltipText.java",
          "src/graphui/classes/com/jogamp/graph/ui/Tooltip.java"
        ],
        "commitId" : "5e24fc150f505fc5e08fc6c8cc9274ecea66b28b",
        "timestamp" : 1707028520000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sgothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "Tooltip[Text]: Use a slightly round button, change to grayscale colors matching our buildin-theme and have the tips placed just above center of the toop (not above it)\u000a",
        "date" : "2024-02-04 07:35:20 +0100",
        "id" : "5e24fc150f505fc5e08fc6c8cc9274ecea66b28b",
        "msg" : "Tooltip[Text]: Use a slightly round button, change to grayscale colors matching our buildin-theme and have the tips placed just above center of the toop (not above it)",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/com/jogamp/graph/ui/Tooltip.java"
          },
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/com/jogamp/graph/ui/TooltipText.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/graphui/classes/com/jogamp/graph/ui/widgets/RangedGroup.java"
        ],
        "commitId" : "5bf50ce8876df289c362aa270fbfabccd571f29e",
        "timestamp" : 1707028654000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sgothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "GraphUI RangedGroup: Keep position @ validate()\u000a\u000aPositional change could occurre in case the content has changed.\u000aHowever, our positional slider would not reflect this and the sliding view should stay stable.\u000a\u000aTest: UIMediaGrid01 having one player tile zoomed and returned.\u000a",
        "date" : "2024-02-04 07:37:34 +0100",
        "id" : "5bf50ce8876df289c362aa270fbfabccd571f29e",
        "msg" : "GraphUI RangedGroup: Keep position @ validate()",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/com/jogamp/graph/ui/widgets/RangedGroup.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/graphui/classes/com/jogamp/graph/ui/widgets/MediaPlayer.java",
          "src/graphui/classes/com/jogamp/graph/ui/shapes/TexSeqButton.java"
        ],
        "commitId" : "5770c2465e171dd191fbc09003476f5ad4c33e53",
        "timestamp" : 1707028806000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sgothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "GraphUI: Fix func-name, rename TexSeqButton.use{AspectRation->ARatio}Letterbox() matching TextureSequence\u000a",
        "date" : "2024-02-04 07:40:06 +0100",
        "id" : "5770c2465e171dd191fbc09003476f5ad4c33e53",
        "msg" : "GraphUI: Fix func-name, rename TexSeqButton.use{AspectRation->ARatio}Letterbox() matching TextureSequence",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/com/jogamp/graph/ui/shapes/TexSeqButton.java"
          },
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/com/jogamp/graph/ui/widgets/MediaPlayer.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/jogl/classes/com/jogamp/graph/font/Font.java"
        ],
        "commitId" : "37664c391b4d0bb4f0718726c543726ee30a13f8",
        "timestamp" : 1707028826000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sgothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "Graph Font: Pull up static function\u000a",
        "date" : "2024-02-04 07:40:26 +0100",
        "id" : "37664c391b4d0bb4f0718726c543726ee30a13f8",
        "msg" : "Graph Font: Pull up static function",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/com/jogamp/graph/font/Font.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/graphui/classes/com/jogamp/graph/ui/shapes/Button.java"
        ],
        "commitId" : "1967fd22d432e2b37f3d8de94dd7e07f166c05ba",
        "timestamp" : 1707028866000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sgothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "GraphUI Button: Fix API doc typo\u000a",
        "date" : "2024-02-04 07:41:06 +0100",
        "id" : "1967fd22d432e2b37f3d8de94dd7e07f166c05ba",
        "msg" : "GraphUI Button: Fix API doc typo",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/com/jogamp/graph/ui/shapes/Button.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/graphui/classes/com/jogamp/graph/ui/shapes/MediaButton.java"
        ],
        "commitId" : "119a9bf8c474ec8d7db11235f90a3e266c911e1e",
        "timestamp" : 1707029031000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sgothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "Bug 1493: Enhance Text/ASS subtitle layout: Split too wide text into multiple lines (max 4) fitting into box, trimming it beforehand\u000a\u000aNot always are Text/ASS subtitles well formed with newline character.\u000aUse new StringUtil to re-layout if their width doesn't fit into the box,\u000aby trimming all whitespace and splitting them into up-to 4 lines.\u000a",
        "date" : "2024-02-04 07:43:51 +0100",
        "id" : "119a9bf8c474ec8d7db11235f90a3e266c911e1e",
        "msg" : "Bug 1493: Enhance Text/ASS subtitle layout: Split too wide text into multiple lines (max 4) fitting into box, trimming it beforehand",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/com/jogamp/graph/ui/shapes/MediaButton.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/graphui/classes/com/jogamp/graph/ui/widgets/RangeSlider.java"
        ],
        "commitId" : "e4ddb70fcdf36beaccc991c8642f9343eb048057",
        "timestamp" : 1707049769000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sgothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "GraphUI RangeSlider: Active {Page -> Knob} Color modulation now affects the knob for round-knob and page-size knob\u000a",
        "date" : "2024-02-04 13:29:29 +0100",
        "id" : "e4ddb70fcdf36beaccc991c8642f9343eb048057",
        "msg" : "GraphUI RangeSlider: Active {Page -> Knob} Color modulation now affects the knob for round-knob and page-size knob",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/com/jogamp/graph/ui/widgets/RangeSlider.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/jogl/classes/com/jogamp/opengl/util/av/GLMediaPlayer.java"
        ],
        "commitId" : "d35a9d954fbe638546f95f0122b8c083ee4bd809",
        "timestamp" : 1707049860000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sgothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "GLMediaPlayer.Chapter: Add duration()\u000a",
        "date" : "2024-02-04 13:31:00 +0100",
        "id" : "d35a9d954fbe638546f95f0122b8c083ee4bd809",
        "msg" : "GLMediaPlayer.Chapter: Add duration()",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/com/jogamp/opengl/util/av/GLMediaPlayer.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/graphui/classes/com/jogamp/graph/ui/Container.java",
          "src/demos/com/jogamp/opengl/demos/graph/ui/UILayoutGrid01.java",
          "src/graphui/classes/com/jogamp/graph/ui/Shape.java",
          "src/graphui/classes/com/jogamp/graph/ui/widgets/MediaPlayer.java",
          "src/graphui/classes/jogamp/graph/ui/TreeTool.java",
          "src/graphui/classes/com/jogamp/graph/ui/widgets/RangedGroup.java",
          "src/demos/com/jogamp/opengl/demos/graph/ui/UIMediaGrid01.java",
          "src/demos/com/jogamp/opengl/demos/graph/ui/UISceneDemo11.java",
          "src/graphui/classes/com/jogamp/graph/ui/shapes/MediaButton.java",
          "src/graphui/classes/com/jogamp/graph/ui/Scene.java",
          "src/demos/com/jogamp/opengl/demos/graph/ui/UISceneDemo03.java",
          "src/graphui/classes/com/jogamp/graph/ui/shapes/Button.java",
          "src/graphui/classes/com/jogamp/graph/ui/Group.java",
          "src/demos/com/jogamp/opengl/demos/graph/ui/FontView01.java",
          "src/graphui/classes/com/jogamp/graph/ui/widgets/RangeSlider.java",
          "src/demos/com/jogamp/opengl/demos/graph/ui/UILayoutBox01.java",
          "src/demos/com/jogamp/opengl/demos/graph/ui/UILayoutBoxGridOffset01.java",
          "src/graphui/classes/com/jogamp/graph/ui/TooltipShape.java",
          "src/demos/com/jogamp/opengl/demos/graph/ui/UIMediaGrid00.java",
          "src/demos/com/jogamp/opengl/demos/graph/ui/UISceneDemo20.java"
        ],
        "commitId" : "ec5d278a51eaaf4062010df41cf23f884e4b715b",
        "timestamp" : 1707076160000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sgothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "GraphUI Cleanup: Use TreeTool directly (Reduce virtl-funcs);  Fix typos; Use PointerListener for onClicked(), add onHover();\u000a\u000aSubsequent commits will fix complete cleanup where code was changed mostly regarding other issues.\u000a",
        "date" : "2024-02-04 20:49:20 +0100",
        "id" : "ec5d278a51eaaf4062010df41cf23f884e4b715b",
        "msg" : "GraphUI Cleanup: Use TreeTool directly (Reduce virtl-funcs);  Fix typos; Use PointerListener for onClicked(), add onHover();",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/com/jogamp/graph/ui/widgets/RangeSlider.java"
          },
          {
            "editType" : "edit",
            "file" : "src/demos/com/jogamp/opengl/demos/graph/ui/FontView01.java"
          },
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/com/jogamp/graph/ui/TooltipShape.java"
          },
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/com/jogamp/graph/ui/shapes/Button.java"
          },
          {
            "editType" : "edit",
            "file" : "src/demos/com/jogamp/opengl/demos/graph/ui/UILayoutBoxGridOffset01.java"
          },
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/com/jogamp/graph/ui/Shape.java"
          },
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/com/jogamp/graph/ui/Scene.java"
          },
          {
            "editType" : "edit",
            "file" : "src/demos/com/jogamp/opengl/demos/graph/ui/UISceneDemo03.java"
          },
          {
            "editType" : "edit",
            "file" : "src/demos/com/jogamp/opengl/demos/graph/ui/UIMediaGrid00.java"
          },
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/jogamp/graph/ui/TreeTool.java"
          },
          {
            "editType" : "edit",
            "file" : "src/demos/com/jogamp/opengl/demos/graph/ui/UIMediaGrid01.java"
          },
          {
            "editType" : "edit",
            "file" : "src/demos/com/jogamp/opengl/demos/graph/ui/UISceneDemo11.java"
          },
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/com/jogamp/graph/ui/shapes/MediaButton.java"
          },
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/com/jogamp/graph/ui/Container.java"
          },
          {
            "editType" : "edit",
            "file" : "src/demos/com/jogamp/opengl/demos/graph/ui/UISceneDemo20.java"
          },
          {
            "editType" : "edit",
            "file" : "src/demos/com/jogamp/opengl/demos/graph/ui/UILayoutBox01.java"
          },
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/com/jogamp/graph/ui/Group.java"
          },
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/com/jogamp/graph/ui/widgets/RangedGroup.java"
          },
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/com/jogamp/graph/ui/widgets/MediaPlayer.java"
          },
          {
            "editType" : "edit",
            "file" : "src/demos/com/jogamp/opengl/demos/graph/ui/UILayoutGrid01.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/test/com/jogamp/opengl/test/junit/graph/FontViewListener01.java",
          "src/graphui/classes/com/jogamp/graph/ui/widgets/RangeSlider.java"
        ],
        "commitId" : "8df74578481431768b3c26294c6bd64ed7030ae5",
        "timestamp" : 1707076539000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sgothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "Bug 1498: GraphUI: Adopt RangedSlider to new picking (coming up), simplifies code.\u000a",
        "date" : "2024-02-04 20:55:39 +0100",
        "id" : "8df74578481431768b3c26294c6bd64ed7030ae5",
        "msg" : "Bug 1498: GraphUI: Adopt RangedSlider to new picking (coming up), simplifies code.",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/com/jogamp/graph/ui/widgets/RangeSlider.java"
          },
          {
            "editType" : "edit",
            "file" : "src/test/com/jogamp/opengl/test/junit/graph/FontViewListener01.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/graphui/classes/com/jogamp/graph/ui/Group.java",
          "src/graphui/classes/com/jogamp/graph/ui/widgets/MediaPlayer.java",
          "src/graphui/classes/jogamp/graph/ui/TreeTool.java",
          "src/graphui/classes/com/jogamp/graph/ui/Container.java",
          "src/graphui/classes/com/jogamp/graph/ui/Scene.java",
          "src/graphui/classes/com/jogamp/graph/ui/Shape.java"
        ],
        "commitId" : "43a7899fedf2a570d20b03848bf15710f30b7f26",
        "timestamp" : 1707130474000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sgothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "Bug 1498: Change Top-Level Widget Mode: Register a top-level Group in Scene, where its zOffset gets adjusted when activated..\u000a\u000a.. instead of having a non-working complicated callback orgy setup.\u000a\u000aThis also takes away the getAdjustedZ() overloading burden (or better uglyness) etc.\u000a\u000aHence Group's setWidgetMode(boolean) became:\u000a- enableTopLevelWidget(Scene)\u000a- disableTopLevelWidget()\u000a\u000aThe forwardActivation listener is still applied to all children\u000aas well as isActive() is also still overloaded for same required behavior.\u000a\u000aHowever, none of the children is set in 'widget mode'\u000aas well as the Group is simply added to (or removed from)\u000athe Scene's top-level Group list - the holder.\u000a\u000aScene's setActiveShape(Shape) and releaseActiveShape()\u000ahandle the top-level Group if affected,\u000ai.e. adding or zero'ing its ZOffset.\u000a",
        "date" : "2024-02-05 11:54:34 +0100",
        "id" : "43a7899fedf2a570d20b03848bf15710f30b7f26",
        "msg" : "Bug 1498: Change Top-Level Widget Mode: Register a top-level Group in Scene, where its zOffset gets adjusted when activated..",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/com/jogamp/graph/ui/Group.java"
          },
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/com/jogamp/graph/ui/Container.java"
          },
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/com/jogamp/graph/ui/widgets/MediaPlayer.java"
          },
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/com/jogamp/graph/ui/Shape.java"
          },
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/com/jogamp/graph/ui/Scene.java"
          },
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/jogamp/graph/ui/TreeTool.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/graphui/classes/com/jogamp/graph/ui/widgets/RangedGroup.java",
          "src/graphui/classes/com/jogamp/graph/ui/widgets/RangeSlider.java",
          "src/graphui/classes/com/jogamp/graph/ui/Scene.java",
          "src/graphui/classes/com/jogamp/graph/ui/Shape.java"
        ],
        "commitId" : "4b5de7337d2b335d512a0ff969222f038b734b8b",
        "timestamp" : 1707130982000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sgothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "Bug 1498: GraphUI: Fix Picking Traversal throughout Groups in Z-Descending Order, testing Children and fallback to Group if positive\u000a\u000aPicking algo in Z-Ascending order worked only by chance, as it picked up any bottom node.\u000a\u000a+++\u000a\u000aProper algo is in Z-Descending order to block occluded (child) nodes:\u000a\u000afor-all s : shapes\u000a  p1 = testPicking(s)\u000a  if ( s is Container ) {\u000a    p2 = testPicking(s.childs)\u000a    if( null != p2 ) {\u000a      p1 = p2; // override w/ child prio\u000a    }\u000a  }\u000a  return p1\u000a}\u000a\u000aFurther, testPicking(shape) shall only return a positive shape,\u000aif the event dispatching check (mouse-over, click, ..)\u000asignals end-of-traversal - as originally intended.\u000a\u000aOverall philosophy is to pick the 'deepest' child of a group\u000aif responding, otherwise the next higher interactive group.\u000a",
        "date" : "2024-02-05 12:03:02 +0100",
        "id" : "4b5de7337d2b335d512a0ff969222f038b734b8b",
        "msg" : "Bug 1498: GraphUI: Fix Picking Traversal throughout Groups in Z-Descending Order, testing Children and fallback to Group if positive",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/com/jogamp/graph/ui/Scene.java"
          },
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/com/jogamp/graph/ui/widgets/RangeSlider.java"
          },
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/com/jogamp/graph/ui/Shape.java"
          },
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/com/jogamp/graph/ui/widgets/RangedGroup.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/graphui/classes/com/jogamp/graph/ui/widgets/MediaPlayer.java"
        ],
        "commitId" : "347739f9589b1f846e2a0db33b554ff34b2ce984",
        "timestamp" : 1707131978000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sgothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "Bug 805: GraphUI MediaPlayer: Add 'Aspect Ratio Crop' Button; Have Chapter Pre/Next Buttons; Toggle HUD head info box (full or brief)\u000a",
        "date" : "2024-02-05 12:19:38 +0100",
        "id" : "347739f9589b1f846e2a0db33b554ff34b2ce984",
        "msg" : "Bug 805: GraphUI MediaPlayer: Add 'Aspect Ratio Crop' Button; Have Chapter Pre/Next Buttons; Toggle HUD head info box (full or brief)",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/com/jogamp/graph/ui/widgets/MediaPlayer.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/demos/com/jogamp/opengl/demos/graph/ui/UIMediaGrid01.java",
          "src/demos/com/jogamp/opengl/demos/graph/ui/UIMediaGrid00.java",
          "src/demos/com/jogamp/opengl/demos/graph/ui/FontView01.java"
        ],
        "commitId" : "6ec212e0348fc9028e2afc6a298c49890566bf2d",
        "timestamp" : 1707132044000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sgothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "Bug 805: GraphUI Demos: Adopt changes to FontView01 + UIMediaGrid01, dropping UIMediaGrid00\u000a",
        "date" : "2024-02-05 12:20:44 +0100",
        "id" : "6ec212e0348fc9028e2afc6a298c49890566bf2d",
        "msg" : "Bug 805: GraphUI Demos: Adopt changes to FontView01 + UIMediaGrid01, dropping UIMediaGrid00",
        "paths" : [
          {
            "editType" : "delete",
            "file" : "src/demos/com/jogamp/opengl/demos/graph/ui/UIMediaGrid00.java"
          },
          {
            "editType" : "edit",
            "file" : "src/demos/com/jogamp/opengl/demos/graph/ui/FontView01.java"
          },
          {
            "editType" : "edit",
            "file" : "src/demos/com/jogamp/opengl/demos/graph/ui/UIMediaGrid01.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/graphui/classes/com/jogamp/graph/ui/widgets/MediaPlayer.java"
        ],
        "commitId" : "80f226fffcab51f8e46caa48e9dd3a134ca87dd0",
        "timestamp" : 1707147897000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sgothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "GraphUI MediaPlayer: Elevate the ctrlSlider a little (and add it behind ctrlBlend) to remove the occlusion by the blending box\u000a",
        "date" : "2024-02-05 16:44:57 +0100",
        "id" : "80f226fffcab51f8e46caa48e9dd3a134ca87dd0",
        "msg" : "GraphUI MediaPlayer: Elevate the ctrlSlider a little (and add it behind ctrlBlend) to remove the occlusion by the blending box",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/com/jogamp/graph/ui/widgets/MediaPlayer.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/graphui/classes/com/jogamp/graph/ui/Group.java",
          "make/scripts/tests.sh",
          "src/graphui/classes/com/jogamp/graph/ui/Scene.java",
          "src/graphui/classes/com/jogamp/graph/ui/Shape.java"
        ],
        "commitId" : "0ac7b2e59d5b41302f8e0ec7596d8f44447cf0a1",
        "timestamp" : 1707148215000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sgothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "Bug 1498: Refine Top-Level Widget Mode: Handle active-state by Scene, simplify and reduce runtime costs\u000a\u000aRefines commit 43a7899fedf2a570d20b03848bf15710f30b7f26\u000a\u000aScene handles top-level active state via releaseActiveShape() and setActive(),\u000anow calling into setActiveTopLevel() -> dispatchActivationEvent().\u000a\u000aDrop child's addActivationListener(forwardActivation) and isActive() override.\u000a",
        "date" : "2024-02-05 16:50:15 +0100",
        "id" : "0ac7b2e59d5b41302f8e0ec7596d8f44447cf0a1",
        "msg" : "Bug 1498: Refine Top-Level Widget Mode: Handle active-state by Scene, simplify and reduce runtime costs",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "make/scripts/tests.sh"
          },
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/com/jogamp/graph/ui/Group.java"
          },
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/com/jogamp/graph/ui/Scene.java"
          },
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/com/jogamp/graph/ui/Shape.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/graphui/classes/com/jogamp/graph/ui/Group.java",
          "src/graphui/classes/jogamp/graph/ui/TreeTool.java",
          "src/graphui/classes/com/jogamp/graph/ui/Scene.java",
          "src/graphui/classes/com/jogamp/graph/ui/Shape.java"
        ],
        "commitId" : "eff91a9e29fc97d7e5051d9900e79ba9d044fb3a",
        "timestamp" : 1707150221000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sgothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "GraphUI: Add Shape.IO_DISCARDED and update it @ Scene/Group draw(); Prepare for experimental occlusion-culling\u000a\u000aTreeTool's cullShapes(), actually a naive dumm occlusion test (*RENAME IT*),\u000awould need to realize whether the shape/groups actually cover shapes below,\u000ai.e. are not on same Z-Axis and transparent.\u000a\u000aHence, this is disabled in code and we rely on the Z buffer still,\u000ajust an idea ..\u000a",
        "date" : "2024-02-05 17:23:41 +0100",
        "id" : "eff91a9e29fc97d7e5051d9900e79ba9d044fb3a",
        "msg" : "GraphUI: Add Shape.IO_DISCARDED and update it @ Scene/Group draw(); Prepare for experimental occlusion-culling",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/com/jogamp/graph/ui/Group.java"
          },
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/jogamp/graph/ui/TreeTool.java"
          },
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/com/jogamp/graph/ui/Shape.java"
          },
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/com/jogamp/graph/ui/Scene.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/jogl/classes/com/jogamp/opengl/util/av/GLMediaPlayer.java",
          "src/jogl/native/libav/ffmpeg_impl_template.c",
          "src/jogl/classes/jogamp/opengl/util/av/GLMediaPlayerImpl.java",
          "src/jogl/classes/jogamp/opengl/util/av/impl/FFMPEGv0400Natives.java",
          "src/jogl/classes/jogamp/opengl/android/av/AndroidGLMediaPlayerAPI14.java",
          "src/demos/com/jogamp/opengl/demos/graph/ui/UIMediaGrid01.java",
          "make/scripts/tests.sh",
          "src/jogl/classes/jogamp/opengl/util/av/impl/FFMPEGv0500Natives.java",
          "src/jogl/classes/jogamp/opengl/util/av/impl/FFMPEGv0600Natives.java",
          "src/jogl/classes/jogamp/opengl/util/av/NullGLMediaPlayer.java",
          "src/jogl/classes/jogamp/opengl/util/av/impl/FFMPEGMediaPlayer.java",
          "src/jogl/classes/jogamp/opengl/util/av/impl/OMXGLMediaPlayer.java",
          "src/jogl/classes/jogamp/opengl/util/av/impl/FFMPEGNatives.java"
        ],
        "commitId" : "9bf746d7c8d1e4a3b0c363b54fe9e7a96578228a",
        "timestamp" : 1707162976000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sgothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "Bug 1492: GLMediaPlayer: Add playStream(..) variant passing desired audio- and subtitle language\u000a",
        "date" : "2024-02-05 20:56:16 +0100",
        "id" : "9bf746d7c8d1e4a3b0c363b54fe9e7a96578228a",
        "msg" : "Bug 1492: GLMediaPlayer: Add playStream(..) variant passing desired audio- and subtitle language",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/jogamp/opengl/util/av/impl/FFMPEGNatives.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/com/jogamp/opengl/util/av/GLMediaPlayer.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/jogamp/opengl/util/av/impl/FFMPEGv0600Natives.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/jogamp/opengl/android/av/AndroidGLMediaPlayerAPI14.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/jogamp/opengl/util/av/impl/FFMPEGv0400Natives.java"
          },
          {
            "editType" : "edit",
            "file" : "make/scripts/tests.sh"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/jogamp/opengl/util/av/impl/OMXGLMediaPlayer.java"
          },
          {
            "editType" : "edit",
            "file" : "src/demos/com/jogamp/opengl/demos/graph/ui/UIMediaGrid01.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/jogamp/opengl/util/av/NullGLMediaPlayer.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/jogamp/opengl/util/av/impl/FFMPEGMediaPlayer.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/jogamp/opengl/util/av/impl/FFMPEGv0500Natives.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/native/libav/ffmpeg_impl_template.c"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/jogamp/opengl/util/av/GLMediaPlayerImpl.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/graphui/classes/com/jogamp/graph/ui/widgets/RangeSlider.java"
        ],
        "commitId" : "1d54666a16863d69a03345ab7ef4aaa3332a79ac",
        "timestamp" : 1707163006000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sgothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "GraphUI RangeSlider: Fix 'activeOldMod' -> static to member\u000a",
        "date" : "2024-02-05 20:56:46 +0100",
        "id" : "1d54666a16863d69a03345ab7ef4aaa3332a79ac",
        "msg" : "GraphUI RangeSlider: Fix 'activeOldMod' -> static to member",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/com/jogamp/graph/ui/widgets/RangeSlider.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/jogl/classes/jogamp/opengl/util/av/GLMediaPlayerImpl.java"
        ],
        "commitId" : "2c84a3f7bf97ecfe445cd33a14ac7f968deb3e5e",
        "timestamp" : 1707269158000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sgothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "GLMediaPlayerImpl: Fix playing one frame after seek() @ getNextTexture(), requires pause state (normal at play-state)\u000a",
        "date" : "2024-02-07 02:25:58 +0100",
        "id" : "2c84a3f7bf97ecfe445cd33a14ac7f968deb3e5e",
        "msg" : "GLMediaPlayerImpl: Fix playing one frame after seek() @ getNextTexture(), requires pause state (normal at play-state)",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/jogamp/opengl/util/av/GLMediaPlayerImpl.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/jogl/classes/jogamp/opengl/util/av/GLMediaPlayerImpl.java"
        ],
        "commitId" : "5bacb8e6887b55ab2053dc5ed76bebcc0743a45e",
        "timestamp" : 1707269219000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sgothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "GLMediaPlayerImpl: Adjust aid/sid to AUTO if alang/slang is given\u000a",
        "date" : "2024-02-07 02:26:59 +0100",
        "id" : "5bacb8e6887b55ab2053dc5ed76bebcc0743a45e",
        "msg" : "GLMediaPlayerImpl: Adjust aid/sid to AUTO if alang/slang is given",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/jogamp/opengl/util/av/GLMediaPlayerImpl.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/demos/com/jogamp/opengl/demos/graph/ui/FontView01.java",
          "src/demos/com/jogamp/opengl/demos/graph/ui/UISceneDemo10.java",
          "src/graphui/classes/com/jogamp/graph/ui/widgets/RangeSlider.java",
          "src/graphui/classes/com/jogamp/graph/ui/Shape.java",
          "src/graphui/classes/com/jogamp/graph/ui/widgets/MediaPlayer.java",
          "src/graphui/classes/com/jogamp/graph/ui/widgets/RangedGroup.java",
          "src/demos/com/jogamp/opengl/demos/graph/ui/UISceneDemo20.java",
          "src/demos/com/jogamp/opengl/demos/graph/ui/UIMediaGrid01.java"
        ],
        "commitId" : "29697eaac78bdc0c1a6cfb8547516c614dc1db8e",
        "timestamp" : 1707272727000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sgothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "GraphUI Shape: Add MouseEvent to MoveListener; RangeSlider: Add rel obj position + NEWT MouseEvent to listener, renamed {Slider->Change}Listener and add PeekListener for mouse-over events\u000a",
        "date" : "2024-02-07 03:25:27 +0100",
        "id" : "29697eaac78bdc0c1a6cfb8547516c614dc1db8e",
        "msg" : "GraphUI Shape: Add MouseEvent to MoveListener; RangeSlider: Add rel obj position + NEWT MouseEvent to listener, renamed {Slider->Change}Listener and add PeekListener for mouse-over events",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/demos/com/jogamp/opengl/demos/graph/ui/FontView01.java"
          },
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/com/jogamp/graph/ui/Shape.java"
          },
          {
            "editType" : "edit",
            "file" : "src/demos/com/jogamp/opengl/demos/graph/ui/UISceneDemo10.java"
          },
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/com/jogamp/graph/ui/widgets/MediaPlayer.java"
          },
          {
            "editType" : "edit",
            "file" : "src/demos/com/jogamp/opengl/demos/graph/ui/UISceneDemo20.java"
          },
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/com/jogamp/graph/ui/widgets/RangedGroup.java"
          },
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/com/jogamp/graph/ui/widgets/RangeSlider.java"
          },
          {
            "editType" : "edit",
            "file" : "src/demos/com/jogamp/opengl/demos/graph/ui/UIMediaGrid01.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/graphui/classes/com/jogamp/graph/ui/TooltipText.java",
          "src/graphui/classes/com/jogamp/graph/ui/TooltipShape.java",
          "src/graphui/classes/com/jogamp/graph/ui/Tooltip.java",
          "src/graphui/classes/com/jogamp/graph/ui/Scene.java"
        ],
        "commitId" : "250f8e76bc8a9ac55d2dc198c01dc88335cb9ecb",
        "timestamp" : 1707272882000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sgothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "GraphUI Tooltip*: Remove unused paramter in createTip() and clarify names\u000a",
        "date" : "2024-02-07 03:28:02 +0100",
        "id" : "250f8e76bc8a9ac55d2dc198c01dc88335cb9ecb",
        "msg" : "GraphUI Tooltip*: Remove unused paramter in createTip() and clarify names",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/com/jogamp/graph/ui/Scene.java"
          },
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/com/jogamp/graph/ui/Tooltip.java"
          },
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/com/jogamp/graph/ui/TooltipShape.java"
          },
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/com/jogamp/graph/ui/TooltipText.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/graphui/classes/com/jogamp/graph/ui/shapes/HUDShape.java"
        ],
        "commitId" : "35715d84f2c268f33b86814534ddcac70b883118",
        "timestamp" : 1707273103000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sgothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "GraphUI: Add HUDShape, a convenient HUD shape to be exposed in the scene using inner object size/pos, similar like TooltipShape\u000a",
        "date" : "2024-02-07 03:31:43 +0100",
        "id" : "35715d84f2c268f33b86814534ddcac70b883118",
        "msg" : "GraphUI: Add HUDShape, a convenient HUD shape to be exposed in the scene using inner object size/pos, similar like TooltipShape",
        "paths" : [
          {
            "editType" : "add",
            "file" : "src/graphui/classes/com/jogamp/graph/ui/shapes/HUDShape.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/demos/com/jogamp/opengl/demos/graph/ui/UIMediaGrid01.java",
          "src/graphui/classes/com/jogamp/graph/ui/widgets/MediaPlayer.java"
        ],
        "commitId" : "6e7f7b444691e2c0c56c9746e6a27d42d6e35a46",
        "timestamp" : 1707273194000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sgothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "GraphUI MediaPlayer: Add HUDShape on time-slider @ mouse-over with time-string and still-images (optional) .. using HUDShape\u000a",
        "date" : "2024-02-07 03:33:14 +0100",
        "id" : "6e7f7b444691e2c0c56c9746e6a27d42d6e35a46",
        "msg" : "GraphUI MediaPlayer: Add HUDShape on time-slider @ mouse-over with time-string and still-images (optional) .. using HUDShape",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/demos/com/jogamp/opengl/demos/graph/ui/UIMediaGrid01.java"
          },
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/com/jogamp/graph/ui/widgets/MediaPlayer.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/demos/com/jogamp/opengl/demos/util/CommandlineOptions.java",
          "src/demos/com/jogamp/opengl/demos/graph/ui/UIMediaGrid01.java",
          "src/demos/com/jogamp/opengl/demos/graph/ui/FontView01.java"
        ],
        "commitId" : "1e6b604393509e631d46fe72053ca813aee33a74",
        "timestamp" : 1707307656000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sgothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "GraphUI Demos FontView01 + UIMediaGrid01: Use FSAA 8 (GPU MSAA 8) as these demos utilize lots of smaller resources regions ...\u000a\u000a.. and this also brings us to the next required task: Resolve AA w/o supersampling right in our shader,\u000awhich is very well possible when extending the tessellated outline triangle's area.\u000a",
        "date" : "2024-02-07 13:07:36 +0100",
        "id" : "1e6b604393509e631d46fe72053ca813aee33a74",
        "msg" : "GraphUI Demos FontView01 + UIMediaGrid01: Use FSAA 8 (GPU MSAA 8) as these demos utilize lots of smaller resources regions ...",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/demos/com/jogamp/opengl/demos/graph/ui/FontView01.java"
          },
          {
            "editType" : "edit",
            "file" : "src/demos/com/jogamp/opengl/demos/graph/ui/UIMediaGrid01.java"
          },
          {
            "editType" : "edit",
            "file" : "src/demos/com/jogamp/opengl/demos/util/CommandlineOptions.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/jogl/classes/com/jogamp/graph/geom/Outline.java",
          "src/jogl/classes/com/jogamp/graph/curve/OutlineShape.java"
        ],
        "commitId" : "499d8474247053f47e1f217f5e78fc0f5397f2d9",
        "timestamp" : 1707677328000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sgothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "Graph: Outline[Shape]: Add print()\u000a",
        "date" : "2024-02-11 19:48:48 +0100",
        "id" : "499d8474247053f47e1f217f5e78fc0f5397f2d9",
        "msg" : "Graph: Outline[Shape]: Add print()",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/com/jogamp/graph/curve/OutlineShape.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/com/jogamp/graph/geom/Outline.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/jogl/classes/com/jogamp/math/VectorUtil.java",
          "src/jogl/classes/jogamp/graph/curve/opengl/VBORegionSPES2.java",
          "src/jogl/classes/jogamp/graph/curve/tess/CDTriangulator2D.java",
          "src/jogl/classes/jogamp/graph/curve/tess/Loop.java"
        ],
        "commitId" : "277ad1ba1453b7e2e0164f1a609482a36469b2ea",
        "timestamp" : 1707701473000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sgothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "Bug 1501: Graph Delaunay: Add double triAreaVec2() and isInCircleVec2() version, overcome float precision; Loop: Pass edgeType not Winding, simplify findClosestValidNeighbor() -> isValidNeighbor(); CDTriangulator2D.addCurve() enforces Winding.CCW on BOUNDARY null == loop case\u000a\u000aAdd double version of triAreaVec2() and isInCircleVec2() in VectorUtil, overcoming float precision limits\u000a- Analysis exposed float precision limits within isInCircleVec2()\u000a\u000aLoop: Pass edgeType not Winding, simplify findClosestValidNeighbor() -> isValidNeighbor()\u000a- Enhance code clarity\u000a\u000aCDTriangulator2D.addCurve() enforces Winding.CCW on BOUNDARY null == loop case\u000a",
        "date" : "2024-02-12 02:31:13 +0100",
        "id" : "277ad1ba1453b7e2e0164f1a609482a36469b2ea",
        "msg" : "Bug 1501: Graph Delaunay: Add double triAreaVec2() and isInCircleVec2() version, overcome float precision; Loop: Pass edgeType not Winding, simplify findClosestValidNeighbor() -> isValidNeighbor(); CDTriangulator2D.addCurve() enforces Winding.CCW on BOUNDARY null == loop case",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/jogamp/graph/curve/tess/CDTriangulator2D.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/com/jogamp/math/VectorUtil.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/jogamp/graph/curve/tess/Loop.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/jogamp/graph/curve/opengl/VBORegionSPES2.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/demos/com/jogamp/opengl/demos/graph/ui/UIShapeDemo02a.java",
          "src/demos/com/jogamp/opengl/demos/graph/ui/testshapes/Glyph03FreeMonoRegular_M.java"
        ],
        "commitId" : "bf882af1675f390500cc36c5396f75c394372d52",
        "timestamp" : 1707701619000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sgothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "Bug 1501: Graph: Add UIShapeDemo02a test for rectangular shape provoking tessellation issue / or use Glyph03FreeMonoRegular_M\u000a",
        "date" : "2024-02-12 02:33:39 +0100",
        "id" : "bf882af1675f390500cc36c5396f75c394372d52",
        "msg" : "Bug 1501: Graph: Add UIShapeDemo02a test for rectangular shape provoking tessellation issue / or use Glyph03FreeMonoRegular_M",
        "paths" : [
          {
            "editType" : "add",
            "file" : "src/demos/com/jogamp/opengl/demos/graph/ui/UIShapeDemo02a.java"
          },
          {
            "editType" : "edit",
            "file" : "src/demos/com/jogamp/opengl/demos/graph/ui/testshapes/Glyph03FreeMonoRegular_M.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/jogl/classes/com/jogamp/graph/geom/Outline.java",
          "src/jogl/classes/com/jogamp/math/VectorUtil.java",
          "src/jogl/classes/jogamp/graph/curve/tess/CDTriangulator2D.java",
          "src/jogl/classes/jogamp/graph/curve/tess/Loop.java",
          "src/jogl/classes/com/jogamp/graph/curve/OutlineShape.java"
        ],
        "commitId" : "a77b487a44124a9e55fa9a53d1f9c3ae20b9c3ba",
        "timestamp" : 1707715027000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sgothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "Bug 1501: Graph Delaunay: Use default winding outer-boundary:=CCW and inner-hole:=CW w/o using winding determination (might be incorrect)\u000a\u000aThis simplifies our code further and it has been validated that our polygon shoelace-algo for area >= 0 ? CCW\u000adoesn't produce correct results with all curves.\u000aHence rely on given winding depending on outer-boundary and inner-hole if CDTriangulator2D.FixedWindingRule == true (default and fixed).\u000a\u000aThis also removes the more costly winding shoelace calculus,\u000ahence Outline ctor only sets dirtyWinding:=true w/o calculating the winding.\u000a",
        "date" : "2024-02-12 06:17:07 +0100",
        "id" : "a77b487a44124a9e55fa9a53d1f9c3ae20b9c3ba",
        "msg" : "Bug 1501: Graph Delaunay: Use default winding outer-boundary:=CCW and inner-hole:=CW w/o using winding determination (might be incorrect)",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/com/jogamp/graph/curve/OutlineShape.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/com/jogamp/graph/geom/Outline.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/com/jogamp/math/VectorUtil.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/jogamp/graph/curve/tess/Loop.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/jogamp/graph/curve/tess/CDTriangulator2D.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/jogl/classes/jogamp/graph/font/fonts/symbols/MaterialIconsRound-Regular.ttf"
        ],
        "commitId" : "dcacff437e23d93f1fa835bc4fff0a73242e51f6",
        "timestamp" : 1707715115000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sgothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "Bug 1501 Graph Delaunay: Replace MaterialIconsRound-Regular.ttf with fixed winding direction (outer-bondary TTF CW (Graph CCW) and inner-hole TTF CCW (Graph CW)\u000a",
        "date" : "2024-02-12 06:18:35 +0100",
        "id" : "dcacff437e23d93f1fa835bc4fff0a73242e51f6",
        "msg" : "Bug 1501 Graph Delaunay: Replace MaterialIconsRound-Regular.ttf with fixed winding direction (outer-bondary TTF CW (Graph CCW) and inner-hole TTF CCW (Graph CW)",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/jogamp/graph/font/fonts/symbols/MaterialIconsRound-Regular.ttf"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/graphui/classes/com/jogamp/graph/ui/widgets/MediaPlayer.java",
          "src/demos/com/jogamp/opengl/demos/graph/ui/UIShapeClippingDemo00.java",
          "src/demos/com/jogamp/opengl/demos/graph/ui/UISceneDemo03.java",
          "src/demos/com/jogamp/opengl/demos/graph/ui/UIShapeClippingDemo01.java"
        ],
        "commitId" : "f3d181114f804661c92485864047291651880718",
        "timestamp" : 1707715403000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sgothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "Remove unused imports ...\u000a",
        "date" : "2024-02-12 06:23:23 +0100",
        "id" : "f3d181114f804661c92485864047291651880718",
        "msg" : "Remove unused imports ...",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/demos/com/jogamp/opengl/demos/graph/ui/UISceneDemo03.java"
          },
          {
            "editType" : "edit",
            "file" : "src/demos/com/jogamp/opengl/demos/graph/ui/UIShapeClippingDemo01.java"
          },
          {
            "editType" : "edit",
            "file" : "src/demos/com/jogamp/opengl/demos/graph/ui/UIShapeClippingDemo00.java"
          },
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/com/jogamp/graph/ui/widgets/MediaPlayer.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/jogl/classes/com/jogamp/math/VectorUtil.java"
        ],
        "commitId" : "c4f14aa011c567b54667ed2209c2f48363998644",
        "timestamp" : 1707716749000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sgothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "VectorUtil: Remove unused isInCircleVec2f() and triAreaVec2f(), now using *2d() variants\u000a",
        "date" : "2024-02-12 06:45:49 +0100",
        "id" : "c4f14aa011c567b54667ed2209c2f48363998644",
        "msg" : "VectorUtil: Remove unused isInCircleVec2f() and triAreaVec2f(), now using *2d() variants",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/com/jogamp/math/VectorUtil.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/jogl/classes/jogamp/graph/curve/tess/Loop.java"
        ],
        "commitId" : "e6dd773b249cbeb117a710a46133fa42f748f1d7",
        "timestamp" : 1707744990000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sgothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "Loop.isValidNeighborDbg(): Remove DEBUG branch, always true\u000a",
        "date" : "2024-02-12 14:36:30 +0100",
        "id" : "e6dd773b249cbeb117a710a46133fa42f748f1d7",
        "msg" : "Loop.isValidNeighborDbg(): Remove DEBUG branch, always true",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/jogamp/graph/curve/tess/Loop.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/jogl/classes/jogamp/graph/curve/opengl/VBORegionSPES2.java",
          "src/demos/com/jogamp/opengl/demos/graph/GPURegionGLListener10.java",
          "src/test/com/jogamp/opengl/test/junit/graph/PerfTextRendererNEWT00.java",
          "src/jogl/classes/com/jogamp/graph/curve/opengl/RegionRenderer.java",
          "src/test/com/jogamp/opengl/test/junit/graph/GPURegionGLListener10.java",
          "src/jogl/classes/jogamp/graph/curve/opengl/VBORegion2PVBAAES2.java",
          "src/test/com/jogamp/opengl/test/junit/graph/GPUTextRendererListenerBase01.java",
          "src/test/com/jogamp/opengl/test/junit/graph/TestTextRendererNEWTBugXXXX.java",
          "src/demos/com/jogamp/opengl/demos/graph/GPURegionGLListener01.java",
          "src/test/com/jogamp/opengl/test/junit/graph/TextRendererGLELBase.java",
          "src/test/com/jogamp/opengl/test/junit/graph/TestTextRendererNEWT01.java",
          "src/jogl/classes/com/jogamp/graph/curve/opengl/RenderState.java",
          "src/jogl/classes/jogamp/graph/curve/opengl/VBORegion2PMSAAES2.java",
          "src/demos/com/jogamp/opengl/demos/graph/TextRendererGLELBase.java",
          "src/demos/com/jogamp/opengl/demos/graph/GPUTextRendererListenerBase01.java",
          "src/demos/com/jogamp/opengl/demos/graph/ui/UISceneDemo20.java",
          "src/demos/com/jogamp/opengl/demos/graph/GPURegionGLListener00.java",
          "src/test/com/jogamp/opengl/test/junit/graph/GPURegionGLListener01.java"
        ],
        "commitId" : "65b3a230a53252f7c2cacd968b7afee6d43e7327",
        "timestamp" : 1707859026000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sgothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "Graph RenderState/RegionRenderer: Rename isHintMaskSet()->hintBitsSet(), setHintMask()->setHintBits(), clearHintMask()->clearHintBits()\u000a",
        "date" : "2024-02-13 22:17:06 +0100",
        "id" : "65b3a230a53252f7c2cacd968b7afee6d43e7327",
        "msg" : "Graph RenderState/RegionRenderer: Rename isHintMaskSet()->hintBitsSet(), setHintMask()->setHintBits(), clearHintMask()->clearHintBits()",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/demos/com/jogamp/opengl/demos/graph/ui/UISceneDemo20.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/jogamp/graph/curve/opengl/VBORegion2PMSAAES2.java"
          },
          {
            "editType" : "edit",
            "file" : "src/test/com/jogamp/opengl/test/junit/graph/GPUTextRendererListenerBase01.java"
          },
          {
            "editType" : "edit",
            "file" : "src/test/com/jogamp/opengl/test/junit/graph/PerfTextRendererNEWT00.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/com/jogamp/graph/curve/opengl/RegionRenderer.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/jogamp/graph/curve/opengl/VBORegionSPES2.java"
          },
          {
            "editType" : "edit",
            "file" : "src/test/com/jogamp/opengl/test/junit/graph/TextRendererGLELBase.java"
          },
          {
            "editType" : "edit",
            "file" : "src/demos/com/jogamp/opengl/demos/graph/GPURegionGLListener10.java"
          },
          {
            "editType" : "edit",
            "file" : "src/test/com/jogamp/opengl/test/junit/graph/TestTextRendererNEWTBugXXXX.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/com/jogamp/graph/curve/opengl/RenderState.java"
          },
          {
            "editType" : "edit",
            "file" : "src/demos/com/jogamp/opengl/demos/graph/TextRendererGLELBase.java"
          },
          {
            "editType" : "edit",
            "file" : "src/test/com/jogamp/opengl/test/junit/graph/GPURegionGLListener01.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/jogamp/graph/curve/opengl/VBORegion2PVBAAES2.java"
          },
          {
            "editType" : "edit",
            "file" : "src/demos/com/jogamp/opengl/demos/graph/GPURegionGLListener01.java"
          },
          {
            "editType" : "edit",
            "file" : "src/demos/com/jogamp/opengl/demos/graph/GPURegionGLListener00.java"
          },
          {
            "editType" : "edit",
            "file" : "src/demos/com/jogamp/opengl/demos/graph/GPUTextRendererListenerBase01.java"
          },
          {
            "editType" : "edit",
            "file" : "src/test/com/jogamp/opengl/test/junit/graph/GPURegionGLListener10.java"
          },
          {
            "editType" : "edit",
            "file" : "src/test/com/jogamp/opengl/test/junit/graph/TestTextRendererNEWT01.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/jogl/classes/jogamp/graph/curve/opengl/VBORegionSPES2.java",
          "src/demos/com/jogamp/opengl/demos/graph/ui/testshapes/Glyph03FreeMonoRegular_M.java",
          "src/demos/com/jogamp/opengl/demos/graph/ui/UIShapeDemo02a.java",
          "src/jogl/classes/com/jogamp/graph/curve/opengl/RenderState.java"
        ],
        "commitId" : "101ec44f9d6df7faa0695accccfd43f51e48e7a4",
        "timestamp" : 1707859145000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sgothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "Bug 1501: Graph RenderState add debug-bits, i.e. DEBUG_LINESTRIP used in VBORegionSPES2 to just render lines instead of the filled area -> Used in UIShapeDemo02a\u000a",
        "date" : "2024-02-13 22:19:05 +0100",
        "id" : "101ec44f9d6df7faa0695accccfd43f51e48e7a4",
        "msg" : "Bug 1501: Graph RenderState add debug-bits, i.e. DEBUG_LINESTRIP used in VBORegionSPES2 to just render lines instead of the filled area -> Used in UIShapeDemo02a",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/demos/com/jogamp/opengl/demos/graph/ui/testshapes/Glyph03FreeMonoRegular_M.java"
          },
          {
            "editType" : "edit",
            "file" : "src/demos/com/jogamp/opengl/demos/graph/ui/UIShapeDemo02a.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/com/jogamp/graph/curve/opengl/RenderState.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/jogamp/graph/curve/opengl/VBORegionSPES2.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/graphui/classes/com/jogamp/graph/ui/GraphShape.java",
          "src/graphui/classes/com/jogamp/graph/ui/widgets/RangedGroup.java",
          "src/demos/com/jogamp/opengl/demos/graph/ui/UISceneDemo20.java",
          "src/graphui/classes/com/jogamp/graph/ui/Scene.java",
          "src/graphui/classes/com/jogamp/graph/ui/Shape.java"
        ],
        "commitId" : "06e5b0503a0b32b8b1e5985a9da0d5373f8b7096",
        "timestamp" : 1707859315000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sgothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "Bug 1501: Graph Shape: onInit(ListenerBool) -> onDraw(DrawListener) w/ added capability for code injection to render\u000a\u000aBesides the one-shot on-init functionality, this allows us to re-render the shape differently.\u000a",
        "date" : "2024-02-13 22:21:55 +0100",
        "id" : "06e5b0503a0b32b8b1e5985a9da0d5373f8b7096",
        "msg" : "Bug 1501: Graph Shape: onInit(ListenerBool) -> onDraw(DrawListener) w/ added capability for code injection to render",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/com/jogamp/graph/ui/widgets/RangedGroup.java"
          },
          {
            "editType" : "edit",
            "file" : "src/demos/com/jogamp/opengl/demos/graph/ui/UISceneDemo20.java"
          },
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/com/jogamp/graph/ui/GraphShape.java"
          },
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/com/jogamp/graph/ui/Scene.java"
          },
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/com/jogamp/graph/ui/Shape.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/jogl/classes/com/jogamp/graph/geom/Outline.java",
          "src/jogl/classes/com/jogamp/math/VectorUtil.java",
          "src/jogl/classes/com/jogamp/graph/curve/OutlineShape.java"
        ],
        "commitId" : "220880f8105a35423a5c3dc3ea06147f9a8fd7e2",
        "timestamp" : 1707860806000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sgothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "VectorUtil: Consolidate names, remove unused float prevision variants (if any)\u000a",
        "date" : "2024-02-13 22:46:46 +0100",
        "id" : "220880f8105a35423a5c3dc3ea06147f9a8fd7e2",
        "msg" : "VectorUtil: Consolidate names, remove unused float prevision variants (if any)",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/com/jogamp/graph/geom/Outline.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/com/jogamp/math/VectorUtil.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/com/jogamp/graph/curve/OutlineShape.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/jogl/classes/com/jogamp/math/VectorUtil.java"
        ],
        "commitId" : "08f0d34424aab6a496a71fa5d83af6c407c7c569",
        "timestamp" : 1707861151000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sgothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "Bug 1501: VectorUtil: Deprecate prev line2line intersection tests, adding new impl; Add isConvex*() to determine whether a polyline is convex\u000a\u000aI had problems using the previous line2line intersection methods in my (and my son's) C++ gfxbox2 project, e.g. freefall01.\u000aHence I found a different solution, also using less operations:\u000a<https://jausoft.com/cgit/cs_class/gfxbox2.git/tree/include/pixel/pixel2f.hpp#n660>\u000a\u000aWhile adding intersection tests for our Delaunay (Bug 1501) .. I came across this issue again\u000aand hence swapped the implementation.\u000a",
        "date" : "2024-02-13 22:52:31 +0100",
        "id" : "08f0d34424aab6a496a71fa5d83af6c407c7c569",
        "msg" : "Bug 1501: VectorUtil: Deprecate prev line2line intersection tests, adding new impl; Add isConvex*() to determine whether a polyline is convex",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/com/jogamp/math/VectorUtil.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/jogl/classes/com/jogamp/graph/geom/Outline.java",
          "src/jogl/classes/com/jogamp/graph/curve/tess/Triangulator.java",
          "src/demos/com/jogamp/opengl/demos/graph/ui/FontView01.java",
          "src/jogl/classes/jogamp/graph/curve/tess/CDTriangulator2D.java",
          "src/jogl/classes/jogamp/graph/curve/tess/Loop.java",
          "src/jogl/classes/com/jogamp/graph/curve/OutlineShape.java"
        ],
        "commitId" : "949676fb8cac4d6aa626a375501e41a65a1a11fa",
        "timestamp" : 1707861781000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sgothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "Bug 1501: Apply intersection tests for non-convex shapes to reject new CCW  and non-circulcircle triangulation candidates in our Delaunay tessellator\u000a\u000a<https://jogamp.org/bugzilla//show_bug.cgi?id=1501#c6>\u000a\u000aThe used Delaunay tessellation works well with (almost) convex shapes.\u000aIn case e.g. a glyph gets to the extremes like 'M' in FreeMono\u000aor any other complex Chinese symbol - it may just simply happen\u000athat the new non-circumcircle triangle point crosses the inner (hope)\u000aor outer boundaries of the given polygon.\u000a\u000aApplying further constraint at Loop.cut() resolves most cases\u000aby rejecting the proposed CCW and non-circumcircle triangle candidate\u000aif its new two line-segments intersects with the original polygon.\u000a\u000aThis results in mostly proper rendered Chinese fonts and also\u000aFreeMono is now readable - overal remaining bugs in Glyphs is low.\u000a\u000a+++\u000a\u000aOf course, this intersection test is costly around >= O(log(n)*n) costs,\u000apractically adding a measured ~65% processing time.\u000aE.g. for FontView01 using FreeSerif.ttf\u000a- orig total took 1430.817638ms, per-glyph 0.2236ms, glyphs 6399\u000a- fix  total took 2377.337359ms, per-glyph 0.371517ms, glyphs 6399\u000a\u000aPure Glyph/Shape instantiation shows > 2x costs:\u000a 750 ms 100% convex (fake)\u000a1875 ms   0% convex (fake)\u000a1870 ms  13% convex 824/6399\u000a\u000a+++\u000a\u000aHence it is desired to either\u000a(1) Manually mark a polygon non-convex to add described intersection test for accuracy.\u000a    Also may be used to just drop the additional costs despite the lack of correctness.\u000a\u000aPROVIDED\u000a\u000a(2) Determine non-convex nature of a polygon with a and overall less expensive algorithm.\u000a    If considerably cheaper, this could reduce O(log(n) * n) -> O(n) or even O(log n).\u000a\u000aAdded convex/non-convex classification while ignoring off-curve points,\u000abut only ~13% of FreeSerif is pure convex,\u000ahence there is no benefit with this classification type.\u000a\u000aIt might be desired to attempt other classes, i.e.\u000abeing rendered in non-convex mode w/o intersection tests.\u000aSee\u000a- GENERALIZED DELAUNAY TRIANGULATIONS OF NON-CONVEX DOMAINS\u000a  https://deepblue.lib.umich.edu/bitstream/handle/2027.42/28782/0000614.pdf;sequence=1\u000a\u000a- https://en.wikipedia.org/wiki/List_of_self-intersecting_polygons\u000a- https://en.wikipedia.org/wiki/Complex_polygon\u000a",
        "date" : "2024-02-13 23:03:01 +0100",
        "id" : "949676fb8cac4d6aa626a375501e41a65a1a11fa",
        "msg" : "Bug 1501: Apply intersection tests for non-convex shapes to reject new CCW  and non-circulcircle triangulation candidates in our Delaunay tessellator",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/jogamp/graph/curve/tess/Loop.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/com/jogamp/graph/geom/Outline.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/com/jogamp/graph/curve/tess/Triangulator.java"
          },
          {
            "editType" : "edit",
            "file" : "src/demos/com/jogamp/opengl/demos/graph/ui/FontView01.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/com/jogamp/graph/curve/OutlineShape.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/jogamp/graph/curve/tess/CDTriangulator2D.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/demos/com/jogamp/opengl/demos/graph/ui/FontView01.java"
        ],
        "commitId" : "00b140e39d0181bc2f41500c1797108157e30164",
        "timestamp" : 1707862812000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sgothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "GraphUI Demo FontView01: Re-Enable snapshot via 's'\u000a",
        "date" : "2024-02-13 23:20:12 +0100",
        "id" : "00b140e39d0181bc2f41500c1797108157e30164",
        "msg" : "GraphUI Demo FontView01: Re-Enable snapshot via 's'",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/demos/com/jogamp/opengl/demos/graph/ui/FontView01.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "make/scripts/tests.sh"
        ],
        "commitId" : "c0133b46c0dfbd506a0ad11416fae3a09d64ec97",
        "timestamp" : 1707862842000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sgothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "Bump tests.sh script\u000a",
        "date" : "2024-02-13 23:20:42 +0100",
        "id" : "c0133b46c0dfbd506a0ad11416fae3a09d64ec97",
        "msg" : "Bump tests.sh script",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "make/scripts/tests.sh"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "make/scripts/tests.sh",
          "src/jogl/classes/jogamp/graph/curve/tess/CDTriangulator2D.java"
        ],
        "commitId" : "d4d4a797ab0e53db59dac1ea915825845861667e",
        "timestamp" : 1707865391000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sgothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "Bug 1501: Graph CDTriangulator2D: Add properties to enforce convex and non-convex treatment to simplify debugging etc\u000a",
        "date" : "2024-02-14 00:03:11 +0100",
        "id" : "d4d4a797ab0e53db59dac1ea915825845861667e",
        "msg" : "Bug 1501: Graph CDTriangulator2D: Add properties to enforce convex and non-convex treatment to simplify debugging etc",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "make/scripts/tests.sh"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/jogamp/graph/curve/tess/CDTriangulator2D.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/newt/classes/jogamp/newt/WindowImpl.java",
          "src/demos/com/jogamp/opengl/demos/graph/ui/UIShapeDemo01.java",
          "src/newt/classes/jogamp/newt/driver/macosx/WindowDriver.java",
          "src/newt/classes/jogamp/newt/driver/macosx/ScreenDriver.java",
          "src/newt/classes/jogamp/newt/MonitorModeProps.java",
          "src/jogl/classes/com/jogamp/math/VectorUtil.java",
          "src/newt/classes/jogamp/newt/driver/ios/ScreenDriver.java",
          "src/newt/classes/jogamp/newt/driver/ios/WindowDriver.java",
          "src/demos/com/jogamp/opengl/demos/graph/ui/UITypeDemo01.java",
          "src/demos/com/jogamp/opengl/demos/graph/ui/UISceneDemo20.java",
          "src/jogl/classes/com/jogamp/math/Quaternion.java"
        ],
        "commitId" : "716e59a9286ebf6c8a215957ab4a74a2a81315e4",
        "timestamp" : 1707921295000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sgothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "Use FloatUtil.isZero(a) w/ build-in FloatUtil.EPSILON directly instead of passing FloatUtil.EPSILON to explicit isZero(a, epsilon)\u000a",
        "date" : "2024-02-14 15:34:55 +0100",
        "id" : "716e59a9286ebf6c8a215957ab4a74a2a81315e4",
        "msg" : "Use FloatUtil.isZero(a) w/ build-in FloatUtil.EPSILON directly instead of passing FloatUtil.EPSILON to explicit isZero(a, epsilon)",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/newt/classes/jogamp/newt/driver/ios/ScreenDriver.java"
          },
          {
            "editType" : "edit",
            "file" : "src/newt/classes/jogamp/newt/driver/ios/WindowDriver.java"
          },
          {
            "editType" : "edit",
            "file" : "src/demos/com/jogamp/opengl/demos/graph/ui/UIShapeDemo01.java"
          },
          {
            "editType" : "edit",
            "file" : "src/newt/classes/jogamp/newt/driver/macosx/WindowDriver.java"
          },
          {
            "editType" : "edit",
            "file" : "src/demos/com/jogamp/opengl/demos/graph/ui/UITypeDemo01.java"
          },
          {
            "editType" : "edit",
            "file" : "src/newt/classes/jogamp/newt/WindowImpl.java"
          },
          {
            "editType" : "edit",
            "file" : "src/newt/classes/jogamp/newt/driver/macosx/ScreenDriver.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/com/jogamp/math/Quaternion.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/com/jogamp/math/VectorUtil.java"
          },
          {
            "editType" : "edit",
            "file" : "src/demos/com/jogamp/opengl/demos/graph/ui/UISceneDemo20.java"
          },
          {
            "editType" : "edit",
            "file" : "src/newt/classes/jogamp/newt/MonitorModeProps.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/jogl/classes/com/jogamp/math/FloatUtil.java",
          "src/test/com/jogamp/opengl/test/junit/math/TestFloatUtil01NOUI.java"
        ],
        "commitId" : "572688e736f22e5b23e2b3b19ba9d37770e8508c",
        "timestamp" : 1707932446000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sgothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "FloatUtil Epsilon ops: Generalize all epsilon operations by allowing passing a zero epsilon value to reduce complexity in upper math layers\u000a",
        "date" : "2024-02-14 18:40:46 +0100",
        "id" : "572688e736f22e5b23e2b3b19ba9d37770e8508c",
        "msg" : "FloatUtil Epsilon ops: Generalize all epsilon operations by allowing passing a zero epsilon value to reduce complexity in upper math layers",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/com/jogamp/math/FloatUtil.java"
          },
          {
            "editType" : "edit",
            "file" : "src/test/com/jogamp/opengl/test/junit/math/TestFloatUtil01NOUI.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/jogl/classes/com/jogamp/math/FloatUtil.java",
          "src/jogl/classes/com/jogamp/math/DoubleUtil.java"
        ],
        "commitId" : "b5a3a3d53dfbf1d9681ec288eaf788f9f058ba98",
        "timestamp" : 1707935375000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sgothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "DoubleUtil: Align Epsilon ops w/ FloatUtil\u000a",
        "date" : "2024-02-14 19:29:35 +0100",
        "id" : "b5a3a3d53dfbf1d9681ec288eaf788f9f058ba98",
        "msg" : "DoubleUtil: Align Epsilon ops w/ FloatUtil",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/com/jogamp/math/FloatUtil.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/com/jogamp/math/DoubleUtil.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/jogl/classes/com/jogamp/math/VectorUtil.java",
          "src/jogl/classes/jogamp/graph/curve/tess/Loop.java"
        ],
        "commitId" : "122297fb52849db477f4b85d83fb53c0af633903",
        "timestamp" : 1707938273000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sgothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "VectorUtil: Remove double InCircleDThreshold = DoubleUtil.EPSILON\u000a",
        "date" : "2024-02-14 20:17:53 +0100",
        "id" : "122297fb52849db477f4b85d83fb53c0af633903",
        "msg" : "VectorUtil: Remove double InCircleDThreshold = DoubleUtil.EPSILON",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/com/jogamp/math/VectorUtil.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/jogamp/graph/curve/tess/Loop.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/jogl/classes/com/jogamp/math/VectorUtil.java",
          "src/jogl/classes/jogamp/graph/curve/tess/Loop.java",
          "src/jogl/classes/com/jogamp/graph/curve/OutlineShape.java"
        ],
        "commitId" : "5488665474cc7b88577cedfca6416784f0fda3ba",
        "timestamp" : 1707938419000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sgothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "VectorUtil: Generalize *seg2segIntersection* w/ epsilon and doCollinear\u000a",
        "date" : "2024-02-14 20:20:19 +0100",
        "id" : "5488665474cc7b88577cedfca6416784f0fda3ba",
        "msg" : "VectorUtil: Generalize *seg2segIntersection* w/ epsilon and doCollinear",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/com/jogamp/graph/curve/OutlineShape.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/com/jogamp/math/VectorUtil.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/jogamp/graph/curve/tess/Loop.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/jogl/classes/com/jogamp/math/VectorUtil.java"
        ],
        "commitId" : "52277dc625b515ecc3ff0d26ca05428f3d973427",
        "timestamp" : 1707938457000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sgothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "VectorUtil.isConvex1(): Fix zero test and handle out-of-bounds\u000a",
        "date" : "2024-02-14 20:20:57 +0100",
        "id" : "52277dc625b515ecc3ff0d26ca05428f3d973427",
        "msg" : "VectorUtil.isConvex1(): Fix zero test and handle out-of-bounds",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/com/jogamp/math/VectorUtil.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/jogl/classes/com/jogamp/graph/geom/Outline.java",
          "src/jogl/classes/com/jogamp/graph/curve/tess/Triangulator.java",
          "src/jogl/classes/jogamp/graph/curve/tess/CDTriangulator2D.java",
          "src/demos/com/jogamp/opengl/demos/graph/ui/FontView01.java",
          "src/jogl/classes/jogamp/graph/curve/tess/Loop.java",
          "src/jogl/classes/com/jogamp/graph/curve/OutlineShape.java"
        ],
        "commitId" : "e4b49663f6c6f138a8718847b68d1d78fba8fe73",
        "timestamp" : 1707938604000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sgothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "Bug 1501: Refine convex == !complex: Use 'complex' term, have env-property toggle OutlineShape's isComplex() for visibility\u000a\u000aWe may use complex for other criteria than !convex, i.e. self-intersecting etc.\u000a",
        "date" : "2024-02-14 20:23:24 +0100",
        "id" : "e4b49663f6c6f138a8718847b68d1d78fba8fe73",
        "msg" : "Bug 1501: Refine convex == !complex: Use 'complex' term, have env-property toggle OutlineShape's isComplex() for visibility",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/jogamp/graph/curve/tess/CDTriangulator2D.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/com/jogamp/graph/geom/Outline.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/com/jogamp/graph/curve/tess/Triangulator.java"
          },
          {
            "editType" : "edit",
            "file" : "src/demos/com/jogamp/opengl/demos/graph/ui/FontView01.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/com/jogamp/graph/curve/OutlineShape.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/jogamp/graph/curve/tess/Loop.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "make/scripts/tests.sh"
        ],
        "commitId" : "c8a55eda5fac532c0a650a0c2c639a517794d7f2",
        "timestamp" : 1707938636000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sgothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "Bump tests.sh\u000a",
        "date" : "2024-02-14 20:23:56 +0100",
        "id" : "c8a55eda5fac532c0a650a0c2c639a517794d7f2",
        "msg" : "Bump tests.sh",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "make/scripts/tests.sh"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/jogl/classes/com/jogamp/math/VectorUtil.java",
          "src/jogl/classes/jogamp/graph/curve/tess/Loop.java",
          "src/jogl/classes/com/jogamp/graph/curve/OutlineShape.java"
        ],
        "commitId" : "b4d91c9df427122759df6b76ee06f535406f7074",
        "timestamp" : 1707940167000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sgothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "VectorUtil: Bring back specialized testSeg2segIntersection() w/ build-in FloatUtil.EPSILON epsilon and no collinear test\u000a\u000acommit 5488665474cc7b88577cedfca6416784f0fda3ba Generalize *seg2segIntersection* w/ epsilon and doCollinear\u000acaused a big performance hit about 1/3 due to added doCollinear case and manual epsilon adding branches\u000aand having the method being longer - probably not 'hotspot'ed.\u000a",
        "date" : "2024-02-14 20:49:27 +0100",
        "id" : "b4d91c9df427122759df6b76ee06f535406f7074",
        "msg" : "VectorUtil: Bring back specialized testSeg2segIntersection() w/ build-in FloatUtil.EPSILON epsilon and no collinear test",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/com/jogamp/math/VectorUtil.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/jogamp/graph/curve/tess/Loop.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/com/jogamp/graph/curve/OutlineShape.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/jogl/classes/com/jogamp/math/VectorUtil.java"
        ],
        "commitId" : "840ffdf17f7c985f271f080b602bc2426223dcb8",
        "timestamp" : 1707940234000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sgothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "VectorUtil: Add experimental isSelfIntersecting1() with O(n*n) complexity\u000a\u000aThis doesn't bring reliable results for Graph and also is pretty expensive.\u000a",
        "date" : "2024-02-14 20:50:34 +0100",
        "id" : "840ffdf17f7c985f271f080b602bc2426223dcb8",
        "msg" : "VectorUtil: Add experimental isSelfIntersecting1() with O(n*n) complexity",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/com/jogamp/math/VectorUtil.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/jogl/classes/jogamp/graph/curve/tess/Loop.java",
          "src/graphui/classes/jogamp/graph/ui/TreeTool.java",
          "src/jogl/classes/com/jogamp/graph/curve/OutlineShape.java"
        ],
        "commitId" : "57732e298fa7249e4b772108543f9aebbc6000ac",
        "timestamp" : 1707953281000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sgothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "Graph: Cleanup Loop & OutlineShape, more compact methods\u000a",
        "date" : "2024-02-15 00:28:01 +0100",
        "id" : "57732e298fa7249e4b772108543f9aebbc6000ac",
        "msg" : "Graph: Cleanup Loop & OutlineShape, more compact methods",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/jogamp/graph/ui/TreeTool.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/com/jogamp/graph/curve/OutlineShape.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/jogamp/graph/curve/tess/Loop.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/test/com/jogamp/opengl/test/junit/graph/GPUTextRendererListenerBase01.java",
          "src/test/com/jogamp/opengl/test/junit/graph/TestTextRendererNEWT20.java"
        ],
        "commitId" : "6b548c2408b08128a686eef49118d35543a3667d",
        "timestamp" : 1707969251000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sgothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "TestTextRendererNEWT20: Fix fontSet override at main + add some glyph info in demo text\u000a",
        "date" : "2024-02-15 04:54:11 +0100",
        "id" : "6b548c2408b08128a686eef49118d35543a3667d",
        "msg" : "TestTextRendererNEWT20: Fix fontSet override at main + add some glyph info in demo text",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/test/com/jogamp/opengl/test/junit/graph/GPUTextRendererListenerBase01.java"
          },
          {
            "editType" : "edit",
            "file" : "src/test/com/jogamp/opengl/test/junit/graph/TestTextRendererNEWT20.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/jogl/classes/jogamp/graph/font/typecast/TypecastGlyph.java"
        ],
        "commitId" : "e6b2367f47a0cf976d7eaa173de53474be61f4d5",
        "timestamp" : 1707969273000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sgothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "TypecastGlyph: Add complex/simple info in toString()\u000a",
        "date" : "2024-02-15 04:54:33 +0100",
        "id" : "e6b2367f47a0cf976d7eaa173de53474be61f4d5",
        "msg" : "TypecastGlyph: Add complex/simple info in toString()",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/jogamp/graph/font/typecast/TypecastGlyph.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/jogl/classes/com/jogamp/math/VectorUtil.java"
        ],
        "commitId" : "82288c112e910feae10ef3cfcded50e35395ed2b",
        "timestamp" : 1707969335000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sgothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "VectorUtil.isSelfIntersecting1(): Always use off-curve points\u000a",
        "date" : "2024-02-15 04:55:35 +0100",
        "id" : "82288c112e910feae10ef3cfcded50e35395ed2b",
        "msg" : "VectorUtil.isSelfIntersecting1(): Always use off-curve points",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/com/jogamp/math/VectorUtil.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/graphui/classes/com/jogamp/graph/ui/Group.java",
          "src/demos/com/jogamp/opengl/demos/graph/ui/FontView01.java",
          "src/demos/com/jogamp/opengl/demos/util/CommandlineOptions.java",
          "src/graphui/classes/jogamp/graph/ui/TreeTool.java",
          "src/demos/com/jogamp/opengl/demos/graph/ui/UIMediaGrid01.java",
          "src/demos/com/jogamp/opengl/demos/graph/ui/UISceneDemo20.java",
          "src/demos/com/jogamp/opengl/demos/graph/ui/UISceneDemo03.java",
          "src/graphui/classes/com/jogamp/graph/ui/Scene.java",
          "make/scripts/tests.sh"
        ],
        "commitId" : "8bb2f6dec8ab731b07387b947715fa1959c680e4",
        "timestamp" : 1708197970000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sgothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "Bug 1489: Lock-Free Double-Buffered 'renderedShapes' causes data-race between rendering & input-edt, use synchronized tripple-buffering\u000a\u000aTripple-buffering _almost_ produces zero data-race collisions,\u000ahowever .. it still does rarely -> hence synchronize on the used ArrayList<>.\u000aThis adds a minimal chance for blocking the input-EDT,\u000abut gives correct code & results.\u000a\u000aDouble-buffered 'renderedShapes' was introduced to resolve Bug 1489\u000ain commit 5f9fb7159fa33bc979e5050d384b6939658049bd\u000a\u000aThis solution is tested by passing '-swapInterval 0' via CommandlineOptions for FontView01, UIMediaGrid01 ..,\u000ai.e. rendering faster than picking and hence provoking the data-race condition.\u000a",
        "date" : "2024-02-17 20:26:10 +0100",
        "id" : "8bb2f6dec8ab731b07387b947715fa1959c680e4",
        "msg" : "Bug 1489: Lock-Free Double-Buffered 'renderedShapes' causes data-race between rendering & input-edt, use synchronized tripple-buffering",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/demos/com/jogamp/opengl/demos/graph/ui/UIMediaGrid01.java"
          },
          {
            "editType" : "edit",
            "file" : "src/demos/com/jogamp/opengl/demos/graph/ui/UISceneDemo03.java"
          },
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/com/jogamp/graph/ui/Scene.java"
          },
          {
            "editType" : "edit",
            "file" : "make/scripts/tests.sh"
          },
          {
            "editType" : "edit",
            "file" : "src/demos/com/jogamp/opengl/demos/graph/ui/FontView01.java"
          },
          {
            "editType" : "edit",
            "file" : "src/demos/com/jogamp/opengl/demos/graph/ui/UISceneDemo20.java"
          },
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/com/jogamp/graph/ui/Group.java"
          },
          {
            "editType" : "edit",
            "file" : "src/graphui/classes/jogamp/graph/ui/TreeTool.java"
          },
          {
            "editType" : "edit",
            "file" : "src/demos/com/jogamp/opengl/demos/util/CommandlineOptions.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/jogl/classes/com/jogamp/math/geom/AABBox.java",
          "src/jogl/classes/com/jogamp/math/FloatUtil.java",
          "src/test/com/jogamp/opengl/test/junit/math/TestFloatUtil01NOUI.java"
        ],
        "commitId" : "78f6de75d2645a8cc0c6df0f1f2d01d81645f3de",
        "timestamp" : 1714008014000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sgothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "FloatUtil: Add IEC559_SIGN_BIT; Align API doc and implementation w/ native jaulib, i.e. drop 0==epsilon case for performance\u000a",
        "date" : "2024-04-25 03:20:14 +0200",
        "id" : "78f6de75d2645a8cc0c6df0f1f2d01d81645f3de",
        "msg" : "FloatUtil: Add IEC559_SIGN_BIT; Align API doc and implementation w/ native jaulib, i.e. drop 0==epsilon case for performance",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/test/com/jogamp/opengl/test/junit/math/TestFloatUtil01NOUI.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/com/jogamp/math/geom/AABBox.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/com/jogamp/math/FloatUtil.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/test/com/jogamp/opengl/test/junit/math/Matrix4fb.java",
          "src/test/com/jogamp/opengl/test/junit/math/TestQuaternion01NOUI.java",
          "src/jogl/classes/com/jogamp/math/Matrix4f.java",
          "src/jogl/classes/com/jogamp/math/geom/Frustum.java",
          "src/jogl/classes/com/jogamp/math/util/PMVMatrix4f.java",
          "src/jogl/classes/com/jogamp/math/Quaternion.java",
          "src/demos/com/jogamp/opengl/demos/graph/ui/UIShapeClippingDemo01.java"
        ],
        "commitId" : "dd67c91abd2e5f549fe35f590f37c5d6c732a100",
        "timestamp" : 1714008471000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sgothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "Math: Align Frustum/Matrix dependency w/ native jaulib\u000a",
        "date" : "2024-04-25 03:27:51 +0200",
        "id" : "dd67c91abd2e5f549fe35f590f37c5d6c732a100",
        "msg" : "Math: Align Frustum/Matrix dependency w/ native jaulib",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/com/jogamp/math/Matrix4f.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/com/jogamp/math/Quaternion.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/com/jogamp/math/geom/Frustum.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/com/jogamp/math/util/PMVMatrix4f.java"
          },
          {
            "editType" : "edit",
            "file" : "src/demos/com/jogamp/opengl/demos/graph/ui/UIShapeClippingDemo01.java"
          },
          {
            "editType" : "edit",
            "file" : "src/test/com/jogamp/opengl/test/junit/math/Matrix4fb.java"
          },
          {
            "editType" : "edit",
            "file" : "src/test/com/jogamp/opengl/test/junit/math/TestQuaternion01NOUI.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/jogl/classes/com/jogamp/math/geom/AABBox.java"
        ],
        "commitId" : "33b1da5886a58feb9ee770f640f7bd07553c1bca",
        "timestamp" : 1714008563000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sgothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "Math: AABBox: Fix getRayIntersection(), i.e. setting the correct resulting component.\u000a",
        "date" : "2024-04-25 03:29:23 +0200",
        "id" : "33b1da5886a58feb9ee770f640f7bd07553c1bca",
        "msg" : "Math: AABBox: Fix getRayIntersection(), i.e. setting the correct resulting component.",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/com/jogamp/math/geom/AABBox.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/jogl/classes/com/jogamp/math/Recti.java"
        ],
        "commitId" : "74401be43ac786c395cd142967448637194c5394",
        "timestamp" : 1714008615000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sgothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "Math: Recti::size(): Change semantics: Return true if area is zero, not if x and y is zero\u000a",
        "date" : "2024-04-25 03:30:15 +0200",
        "id" : "74401be43ac786c395cd142967448637194c5394",
        "msg" : "Math: Recti::size(): Change semantics: Return true if area is zero, not if x and y is zero",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/com/jogamp/math/Recti.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/jogl/classes/com/jogamp/math/geom/plane/AffineTransform.java",
          "src/jogl/classes/com/jogamp/math/geom/AABBox.java"
        ],
        "commitId" : "3541b44659df4b021131270752fdf582d7f04f56",
        "timestamp" : 1714008642000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sgothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "Math: AABBox + AffineTransform: Make class final\u000a",
        "date" : "2024-04-25 03:30:42 +0200",
        "id" : "3541b44659df4b021131270752fdf582d7f04f56",
        "msg" : "Math: AABBox + AffineTransform: Make class final",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/com/jogamp/math/geom/AABBox.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/com/jogamp/math/geom/plane/AffineTransform.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/test/com/jogamp/opengl/test/junit/math/TestMatrix4f02MulNOUI.java",
          "make/scripts/tests.sh"
        ],
        "commitId" : "59420652c96956c7d9d4e501200ddbe91edc1c34",
        "timestamp" : 1714008661000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sgothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "TestMatrix4f02MulNOUI: Align w/ native jaulib\u000a",
        "date" : "2024-04-25 03:31:01 +0200",
        "id" : "59420652c96956c7d9d4e501200ddbe91edc1c34",
        "msg" : "TestMatrix4f02MulNOUI: Align w/ native jaulib",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/test/com/jogamp/opengl/test/junit/math/TestMatrix4f02MulNOUI.java"
          },
          {
            "editType" : "edit",
            "file" : "make/scripts/tests.sh"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/test/com/jogamp/opengl/test/junit/math/TestMatrix4f02MulNOUI.java",
          "src/test/com/jogamp/opengl/test/junit/math/TestMatrix4f03InversionNOUI.java"
        ],
        "commitId" : "48717894eddfe6111364416aa7755f7369f09ed6",
        "timestamp" : 1714091988000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sgothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "Math: Align mul + inv perf tests with native jaulib\u000a",
        "date" : "2024-04-26 02:39:48 +0200",
        "id" : "48717894eddfe6111364416aa7755f7369f09ed6",
        "msg" : "Math: Align mul + inv perf tests with native jaulib",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/test/com/jogamp/opengl/test/junit/math/TestMatrix4f03InversionNOUI.java"
          },
          {
            "editType" : "edit",
            "file" : "src/test/com/jogamp/opengl/test/junit/math/TestMatrix4f02MulNOUI.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/jogl/classes/com/jogamp/graph/geom/Outline.java"
        ],
        "commitId" : "95506f9e89377ab03d477a711aab2a12cdc1b1d8",
        "timestamp" : 1750481296000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sgothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "Graph: Fix Outline::setWinding: Clear DIRTY_WINDING bit\u000a",
        "date" : "2025-06-21 06:48:16 +0200",
        "id" : "95506f9e89377ab03d477a711aab2a12cdc1b1d8",
        "msg" : "Graph: Fix Outline::setWinding: Clear DIRTY_WINDING bit",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/com/jogamp/graph/geom/Outline.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/jogl/classes/com/jogamp/graph/curve/OutlineShape.java"
        ],
        "commitId" : "8362c7ba0bbd884e0b60358d4615e19d7ca7ff7f",
        "timestamp" : 1750481367000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sgothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "Graph: Fix OutlineShape::getBounds: validateBoundingBox() if DIRTY_BOUNDS\u000a",
        "date" : "2025-06-21 06:49:27 +0200",
        "id" : "8362c7ba0bbd884e0b60358d4615e19d7ca7ff7f",
        "msg" : "Graph: Fix OutlineShape::getBounds: validateBoundingBox() if DIRTY_BOUNDS",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/com/jogamp/graph/curve/OutlineShape.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/jogl/classes/com/jogamp/graph/curve/Region.java",
          "src/jogl/classes/com/jogamp/graph/curve/OutlineShape.java"
        ],
        "commitId" : "40c6e4a5b29e3d3476d3df05e81c38ac0c92a6b1",
        "timestamp" : 1750483891000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sgothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "Graph OutlineShape/Region: Enhance debug output\u000a",
        "date" : "2025-06-21 07:31:31 +0200",
        "id" : "40c6e4a5b29e3d3476d3df05e81c38ac0c92a6b1",
        "msg" : "Graph OutlineShape/Region: Enhance debug output",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/com/jogamp/graph/curve/Region.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/com/jogamp/graph/curve/OutlineShape.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/jogl/classes/com/jogamp/math/geom/AABBox.java"
        ],
        "commitId" : "aa1f82d1ff8b463d3d4a6b02fb244dcd666e952f",
        "timestamp" : 1750483891000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sgothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "AABBox: Optimize contains and intersect\u000a",
        "date" : "2025-06-21 07:31:31 +0200",
        "id" : "aa1f82d1ff8b463d3d4a6b02fb244dcd666e952f",
        "msg" : "AABBox: Optimize contains and intersect",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/com/jogamp/math/geom/AABBox.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/jogl/classes/com/jogamp/math/Matrix4f.java"
        ],
        "commitId" : "8b4afceed33ca9542eda3061b9f3613f3337ece8",
        "timestamp" : 1750483891000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sgothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "Matrix4f::mapWinToRay: Drop unused 2nd temp matrix\u000a",
        "date" : "2025-06-21 07:31:31 +0200",
        "id" : "8b4afceed33ca9542eda3061b9f3613f3337ece8",
        "msg" : "Matrix4f::mapWinToRay: Drop unused 2nd temp matrix",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/com/jogamp/math/Matrix4f.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/jogl/classes/com/jogamp/opengl/util/glsl/ShaderState.java"
        ],
        "commitId" : "1935dc12d313e7ce931a93a875d15a474b9283a3",
        "timestamp" : 1750483891000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sgothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "ShaderState::bindAttribLocation: Add missing glBindAttribLocation\u000a",
        "date" : "2025-06-21 07:31:31 +0200",
        "id" : "1935dc12d313e7ce931a93a875d15a474b9283a3",
        "msg" : "ShaderState::bindAttribLocation: Add missing glBindAttribLocation",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/com/jogamp/opengl/util/glsl/ShaderState.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/jogl/classes/jogamp/graph/curve/tess/HEdge.java"
        ],
        "commitId" : "2b38ed2745f3cb2ec8e75b5ad7046fe6d1d0c370",
        "timestamp" : 1750483892000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sgothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "Graph Hedge: Cleanup initialization\u000a",
        "date" : "2025-06-21 07:31:32 +0200",
        "id" : "2b38ed2745f3cb2ec8e75b5ad7046fe6d1d0c370",
        "msg" : "Graph Hedge: Cleanup initialization",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/jogamp/graph/curve/tess/HEdge.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/jogl/classes/jogamp/graph/curve/tess/HEdge.java",
          "src/jogl/classes/jogamp/graph/curve/tess/Loop.java"
        ],
        "commitId" : "c14664d9416f5c38271a12d4cd6dcea5dafee3d3",
        "timestamp" : 1750483892000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sgothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "Graph Hedge/Loop: Debug output\u000a",
        "date" : "2025-06-21 07:31:32 +0200",
        "id" : "c14664d9416f5c38271a12d4cd6dcea5dafee3d3",
        "msg" : "Graph Hedge/Loop: Debug output",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/jogamp/graph/curve/tess/HEdge.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/jogamp/graph/curve/tess/Loop.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "doc/HowToBuild.html"
        ],
        "commitId" : "54a45272ec32045a0ae5715e67980b52881ce2b0",
        "timestamp" : 1750483892000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sgothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "HowToBuild: Adjust Debian 12\u000a",
        "date" : "2025-06-21 07:31:32 +0200",
        "id" : "54a45272ec32045a0ae5715e67980b52881ce2b0",
        "msg" : "HowToBuild: Adjust Debian 12",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "doc/HowToBuild.html"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/demos/com/jogamp/opengl/demos/graph/GPURegionGLListener01.java"
        ],
        "commitId" : "7b81c1d0fb274311da578b9af1328a70143bdaef",
        "timestamp" : 1750483892000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sgothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "GPURegionGLListener01: Add debug output and createTestOutline01a\u000a",
        "date" : "2025-06-21 07:31:32 +0200",
        "id" : "7b81c1d0fb274311da578b9af1328a70143bdaef",
        "msg" : "GPURegionGLListener01: Add debug output and createTestOutline01a",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/demos/com/jogamp/opengl/demos/graph/GPURegionGLListener01.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          ".project"
        ],
        "commitId" : "76c2d1f0b07b97e00351eb2dbbd2c867de013fd3",
        "timestamp" : 1750483892000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sgothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "Eclipse bump\u000a",
        "date" : "2025-06-21 07:31:32 +0200",
        "id" : "76c2d1f0b07b97e00351eb2dbbd2c867de013fd3",
        "msg" : "Eclipse bump",
        "paths" : [
          {
            "editType" : "edit",
            "file" : ".project"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "make/scripts/tests.sh"
        ],
        "commitId" : "bcbd59e05d94d49c71f012a83c0d5aaf7d524878",
        "timestamp" : 1750483892000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sgothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "test script: bump\u000a",
        "date" : "2025-06-21 07:31:32 +0200",
        "id" : "bcbd59e05d94d49c71f012a83c0d5aaf7d524878",
        "msg" : "test script: bump",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "make/scripts/tests.sh"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/jogl/native/libav/ffmpeg_impl_template.c"
        ],
        "commitId" : "9235306911855d641310b8936ec2e0bff21b8d69",
        "timestamp" : 1750499222000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sgothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "ffmpeg: Use manually looked-up symbol for sws_freeContext\u000a",
        "date" : "2025-06-21 11:47:02 +0200",
        "id" : "9235306911855d641310b8936ec2e0bff21b8d69",
        "msg" : "ffmpeg: Use manually looked-up symbol for sws_freeContext",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/jogl/native/libav/ffmpeg_impl_template.c"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "make/scripts/tests.sh",
          "make/scripts/tests-win.bat",
          "make/scripts/tests-x64-dbg.bat"
        ],
        "commitId" : "bd8eae033b3f609bf57162109d6cdc11ec5921c9",
        "timestamp" : 1750499300000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sgothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "test script: align unix/win for testing NativeLibrary (Bug 1510)\u000a",
        "date" : "2025-06-21 11:48:20 +0200",
        "id" : "bd8eae033b3f609bf57162109d6cdc11ec5921c9",
        "msg" : "test script: align unix/win for testing NativeLibrary (Bug 1510)",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "make/scripts/tests.sh"
          },
          {
            "editType" : "edit",
            "file" : "make/scripts/tests-x64-dbg.bat"
          },
          {
            "editType" : "edit",
            "file" : "make/scripts/tests-win.bat"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "make/scripts/tests-osx-x64.sh",
          "make/scripts/test-fat-jars.sh",
          "make/scripts/tests-javaws-x64.bat",
          "make/scripts/make.jogl.all.macosx.sh",
          "make/scripts/tests-x64.bat",
          "make/scripts/make.jogl.all.win64.bat",
          "make/scripts/make.jogl.all.ios.amd64.sh",
          "make/scripts/make.jogl.all.ios.arm64.sh",
          "make/scripts/tests-osx-aarch64.sh",
          "make/scripts/tests-x64-dbg.bat"
        ],
        "commitId" : "6ad423fe31847b86d2d2dfa73ea1cf8a5d5056da",
        "timestamp" : 1750746957000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sgothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "Build/test: Use OpenJDK-21 per default\u000a",
        "date" : "2025-06-24 08:35:57 +0200",
        "id" : "6ad423fe31847b86d2d2dfa73ea1cf8a5d5056da",
        "msg" : "Build/test: Use OpenJDK-21 per default",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "make/scripts/make.jogl.all.macosx.sh"
          },
          {
            "editType" : "edit",
            "file" : "make/scripts/tests-osx-aarch64.sh"
          },
          {
            "editType" : "edit",
            "file" : "make/scripts/test-fat-jars.sh"
          },
          {
            "editType" : "edit",
            "file" : "make/scripts/tests-javaws-x64.bat"
          },
          {
            "editType" : "edit",
            "file" : "make/scripts/tests-osx-x64.sh"
          },
          {
            "editType" : "edit",
            "file" : "make/scripts/make.jogl.all.win64.bat"
          },
          {
            "editType" : "edit",
            "file" : "make/scripts/make.jogl.all.ios.arm64.sh"
          },
          {
            "editType" : "edit",
            "file" : "make/scripts/make.jogl.all.ios.amd64.sh"
          },
          {
            "editType" : "edit",
            "file" : "make/scripts/tests-x64-dbg.bat"
          },
          {
            "editType" : "edit",
            "file" : "make/scripts/tests-x64.bat"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "doc/Windows_Custom_OpenGL.md",
          "make/scripts/tests-x64-dbg.bat",
          "make/scripts/tests-x64.bat",
          "make/scripts/tests-win.bat"
        ],
        "commitId" : "ba91fa6450fa410fae79d7a8d4ab34bc0a127a4b",
        "timestamp" : 1750748096000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sgothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "doc: Using a custom OpenGL Library under Windows\u000a",
        "date" : "2025-06-24 08:54:56 +0200",
        "id" : "ba91fa6450fa410fae79d7a8d4ab34bc0a127a4b",
        "msg" : "doc: Using a custom OpenGL Library under Windows",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "make/scripts/tests-x64-dbg.bat"
          },
          {
            "editType" : "edit",
            "file" : "make/scripts/tests-x64.bat"
          },
          {
            "editType" : "add",
            "file" : "doc/Windows_Custom_OpenGL.md"
          },
          {
            "editType" : "edit",
            "file" : "make/scripts/tests-win.bat"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/jogl/classes/jogamp/opengl/windows/wgl/WindowsWGLGraphicsConfiguration.java",
          "src/jogl/classes/jogamp/opengl/windows/wgl/awt/WindowsAWTWGLGraphicsConfigurationFactory.java"
        ],
        "commitId" : "c10d5e47bdf5986d1f8f497fdaff7c61525aa5aa",
        "timestamp" : 1750749192000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sgothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "WindowsAWTWGLGraphicsConfigurationFactory::chooseGraphicsConfigurationImpl: Skip invalid PixelFormatID\u000a\u000aChange: `2nd Choice: Choose and match the GL Visual with AWT`\u000a- skip invalid PFD-ID, i.e. zero\u000a- add more verbose DEBUG output\u000a",
        "date" : "2025-06-24 09:13:12 +0200",
        "id" : "c10d5e47bdf5986d1f8f497fdaff7c61525aa5aa",
        "msg" : "WindowsAWTWGLGraphicsConfigurationFactory::chooseGraphicsConfigurationImpl: Skip invalid PixelFormatID",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/jogamp/opengl/windows/wgl/WindowsWGLGraphicsConfiguration.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/jogamp/opengl/windows/wgl/awt/WindowsAWTWGLGraphicsConfigurationFactory.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "make/scripts/make.jogl.all.solaris-x86.sh",
          "make/scripts/make.jogl.all.linux-x86.sh",
          "make/scripts/make.jogl.all.linux-x86_64-clang.sh",
          "make/scripts/make.jogl.all.ios.amd64.sh",
          "make/scripts/make.jogl.all.generic.sh",
          "make/scripts/make.jogl.all.ios.arm64.sh",
          "make/scripts/make.jogl.all.linux-x86_64.sh",
          "make/scripts/junit-linux-armv6hf-console.sh",
          "make/scripts/make.jogl.all.android-armv6-cross.sh",
          "make/scripts/make.jogl.all.macosx.sh",
          "make/scripts/make.jogl.all.win64.bat",
          "make/scripts/make.jogl.all.android-x86-cross.sh",
          "make/scripts/make.jogl.all.linux-x86-clang.sh",
          "make/scripts/junit-linux-x86_64-console.sh",
          "make/scripts/make.jogl.all.linux-aarch64-cross.sh",
          "make/scripts/make.jogl.all.android-aarch64-cross.sh",
          "make/scripts/make.jogl.all.solaris-x86_64.sh",
          "make/scripts/make.jogl.all.linux-armv6hf-cross.sh"
        ],
        "commitId" : "5c344e99f262af0430ea4d286ab6219095ad249e",
        "timestamp" : 1751123234000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sgothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "Use OpenJDK-21 and Java-11 source/target\u000a",
        "date" : "2025-06-28 17:07:14 +0200",
        "id" : "5c344e99f262af0430ea4d286ab6219095ad249e",
        "msg" : "Use OpenJDK-21 and Java-11 source/target",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "make/scripts/make.jogl.all.ios.amd64.sh"
          },
          {
            "editType" : "edit",
            "file" : "make/scripts/make.jogl.all.android-x86-cross.sh"
          },
          {
            "editType" : "edit",
            "file" : "make/scripts/make.jogl.all.linux-aarch64-cross.sh"
          },
          {
            "editType" : "edit",
            "file" : "make/scripts/make.jogl.all.macosx.sh"
          },
          {
            "editType" : "edit",
            "file" : "make/scripts/make.jogl.all.linux-x86_64-clang.sh"
          },
          {
            "editType" : "edit",
            "file" : "make/scripts/junit-linux-x86_64-console.sh"
          },
          {
            "editType" : "edit",
            "file" : "make/scripts/make.jogl.all.linux-x86.sh"
          },
          {
            "editType" : "edit",
            "file" : "make/scripts/make.jogl.all.win64.bat"
          },
          {
            "editType" : "edit",
            "file" : "make/scripts/make.jogl.all.android-aarch64-cross.sh"
          },
          {
            "editType" : "edit",
            "file" : "make/scripts/make.jogl.all.linux-x86_64.sh"
          },
          {
            "editType" : "edit",
            "file" : "make/scripts/make.jogl.all.linux-armv6hf-cross.sh"
          },
          {
            "editType" : "edit",
            "file" : "make/scripts/make.jogl.all.solaris-x86.sh"
          },
          {
            "editType" : "edit",
            "file" : "make/scripts/make.jogl.all.generic.sh"
          },
          {
            "editType" : "edit",
            "file" : "make/scripts/make.jogl.all.linux-x86-clang.sh"
          },
          {
            "editType" : "edit",
            "file" : "make/scripts/junit-linux-armv6hf-console.sh"
          },
          {
            "editType" : "edit",
            "file" : "make/scripts/make.jogl.all.android-armv6-cross.sh"
          },
          {
            "editType" : "edit",
            "file" : "make/scripts/make.jogl.all.solaris-x86_64.sh"
          },
          {
            "editType" : "edit",
            "file" : "make/scripts/make.jogl.all.ios.arm64.sh"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/test/com/jogamp/opengl/test/junit/jogl/acore/TestVersionSemanticsNOUI.java"
        ],
        "commitId" : "8ff64a9e2e306c8618033c7c96515c6043f2b63d",
        "timestamp" : 1751123286000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sgothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "Adopt to GlueGen's VersionSemanticsUtil changes\u000a",
        "date" : "2025-06-28 17:08:06 +0200",
        "id" : "8ff64a9e2e306c8618033c7c96515c6043f2b63d",
        "msg" : "Adopt to GlueGen's VersionSemanticsUtil changes",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/test/com/jogamp/opengl/test/junit/jogl/acore/TestVersionSemanticsNOUI.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "make/build-newt.xml"
        ],
        "commitId" : "3044cfc2eb4ddf909add4a0d915e1a0429772702",
        "timestamp" : 1751130717000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sgothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "Fix Android NEWT build: ANDROID_TOOLCHAIN_SYSROOT0 -> ANDROID_TOOLCHAIN_SYSROOT1\u000a",
        "date" : "2025-06-28 19:11:57 +0200",
        "id" : "3044cfc2eb4ddf909add4a0d915e1a0429772702",
        "msg" : "Fix Android NEWT build: ANDROID_TOOLCHAIN_SYSROOT0 -> ANDROID_TOOLCHAIN_SYSROOT1",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "make/build-newt.xml"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "make/build-common.xml",
          "make/build-test.xml"
        ],
        "commitId" : "0a307e574c422ccfa60b3abd93e69fcb79d01787",
        "timestamp" : 1751130748000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sgothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "GlueGen's uses japicmp.jar instead of semver.jar\u000a",
        "date" : "2025-06-28 19:12:28 +0200",
        "id" : "0a307e574c422ccfa60b3abd93e69fcb79d01787",
        "msg" : "GlueGen's uses japicmp.jar instead of semver.jar",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "make/build-test.xml"
          },
          {
            "editType" : "edit",
            "file" : "make/build-common.xml"
          }
        ]
      }
    ],
    "kind" : "git"
  },
  "culprits" : [
    {
      "absoluteUrl" : "https://jogamp.org/chuck/user/sven%20gothel",
      "fullName" : "Sven Gothel"
    },
    {
      "absoluteUrl" : "https://jogamp.org/chuck/user/sgothel",
      "fullName" : "Sven Gothel"
    }
  ]
}