summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Fix for AWT GLCcanvas DPI scaling. Forum thread ↵Glenn Burkhardt2023-03-062-1/+8
| | | | https://forum.jogamp.org/DPI-scaling-not-working-td4042206.html
* Adapt to GlueGen dropping Platform.currentTimeMicros(), use ↵Sven Gothel2023-03-062-22/+26
| | | | Platform.currentTimeMillis()
* Graph: Use PerfCounterCtrl interface and Instant/Duration & ↵Sven Gothel2023-03-064-171/+223
| | | | Clock.getMonotonicTime() ...
* NEWT DRM EGL/GBM: WindowDriver: Don't issue glFinish() here, as ↵Sven Gothel2023-03-061-2/+2
| | | | eglSwapBuffers(..) already performs this task (TODO: More Tests!)
* TestTextRendererNEWT00: Add '-perf' mode using new perf counter, testing on ↵Sven Gothel2023-03-061-25/+162
| | | | PC and raspi-aarch64 ..
* Graph: Font: Add perf counter (w/ API)Sven Gothel2023-03-062-2/+81
|
* Graph: Region: Add perf counter (w/ API); Utilize put[34][sif](..); Fix ↵Sven Gothel2023-03-065-108/+353
| | | | | | | | | | | | | | | indices growBufferSize(); Add GLRegion.create(..) w/ initial vertices/indices count; Up default[VI]Count; Following heuristcs were found, hence we might want to calculate these for each font (TODO): /** * Heuristics with TestTextRendererNEWT00 text_1 + text_2 = 1334 chars * - FreeSans ~ vertices 64/char, indices 33/char * - Ubuntu Light ~ vertices 100/char, indices 50/char * - FreeSerif ~ vertices 115/char, indices 61/char * * Now let's assume a minimum of 10 chars will be rendered */
* scripts/tests.sh: add testmobile launch w/ JOGAMP_MOBILE_CLASSPATHSven Gothel2023-03-062-20/+35
| | | | Also add commented-out FlightRecording, not yet usefull - lacking depth for our methods.
* GLArrayData: year-rangeSven Gothel2023-03-061-1/+1
|
* GLArrayData*: Minor edits: API doc, space and year-rangeSven Gothel2023-03-063-5/+5
|
* GLArrayDataEditable: Clarify API doc on clear*(..) and rewind()Sven Gothel2023-03-061-2/+54
|
* GLArrayDataClient: Minor toString() and DEBUG output fixesSven Gothel2023-03-061-3/+3
|
* GLArrayData[Editable,Client]: Add put[34][bsif](..) and array put[bsif](..) ↵Sven Gothel2023-03-062-0/+101
| | | | | | | | variants for flexibility/performance Notable: The array-put is slower than small range single-puts, e.g. put3i(..). Uses GlueGen's Buffers change commit 69b748925038b7d44fa6318536642b426e3d3e38
* NEWT Screen: Allow injection of global (single) monitor size in [mm] via ↵Sven Gothel2023-03-0510-27/+76
| | | | | | | | newt.ws.mmwidth and newt.ws.mmheight property This is essential on bare-metal devices where the screen DRM/GBM driver does not provide the screen-size (in mm). Otherwise we would have resolution/(size_mm=0) infinity density and none of our graph font demos would work, as we compute pixel-em-size based using dpi and pixel-pt-size.
* FFMPEGMediaPlayer: Cleanup API doc FFmpeg versionsSven Gothel2023-03-051-4/+4
|
* GLDrawableFactory: Fix typos and mention 'surfaceless' in ↵Sven Gothel2023-03-041-3/+3
| | | | createDummyDrawable(..)
* make/scripts/tests.sh: Update for my personal unit-test runsSven Gothel2023-03-041-35/+25
|
* GLDrawableFactoryImpl:createDummyDrawable(): Similar to ↵Sven Gothel2023-03-042-13/+16
| | | | | | createOffscreenDrawable() prefer createSurfacelessImpl() over createDummySurfaceImpl() to reduce resources (no actual window) This enhances the 'dummy drawable' use-case implementation, i.e. for shared context.
* GLDrawableFactoryImpl:createMutableSurfaceImpl(..): Pass orig ↵Sven Gothel2023-03-046-40/+42
| | | | AbstractGraphicsDevice to allow EGLDrawableFactory to use the original device's native-dislay-ID for sharing resources.
* GLDrawableFactoryImpl:createDummySurfaceImpl() and createSurfacelessImpl(): ↵Sven Gothel2023-03-047-69/+91
| | | | | | | Pass orig AbstractGraphicsDevice to allow EGLDrawableFactory to use the original device's native-dislay-ID for sharing resources. EGLDrawableFactory to use the original device's native-dislay-ID for sharing resources, e.g. GLContext. EGL 1.4 requires same native-display-ID of share-list context and newly created context!
* EGLGraphicsDevice: Cleanup and enhance API doc for clarity ...Sven Gothel2023-03-045-37/+140
|
* GLProfile::initProfilesForDeviceCritical(): initLock.addOwner(t) only if t ↵Sven Gothel2023-03-041-8/+21
| | | | is not orig-owner
* GLMediaPlayerImpl: destroyImpl(..) @ initGL(..) exception: Don't wait for ↵Sven Gothel2023-03-041-5/+8
| | | | streamWorker stop result (-> deadlock)
* Drop redundant NativeWindowFactory.getDefaultToolkitLock(type, deviceHandle) ↵Sven Gothel2023-03-024-25/+8
| | | | variant
* GLProfile.isValidArrayDataType() add missing accepted types for ES3/GL3+ but ↵Sven Gothel2023-03-022-24/+74
| | | | | | dropping its usage (GLArrayDataWrapper validation) Skip GLProfile based index, comps, type validation, might not be future proof.
* Reformat README.txt -> README.md, add list of work items and call for ↵Sven Gothel2023-03-012-19/+45
| | | | sponsorship.
* JOGL Homepage: Rearrange, add MeteoInfo and Sweet Home 3DSven Gothel2023-02-283-89/+86
|
* FFmpeg: Fix using 'av_channel_layout_uninit', use own loaded linked ↵Sven Gothel2023-02-261-1/+1
| | | | 'sp_av_channel_layout_uninit'
* Windows test scripts: Inject FFmpeg 5.1.2 and Mesa3D (disabled ↵Sven Gothel2023-02-264-16/+13
| | | | C:\Windows\System32\opengl32.dll)
* Movie* Demos: Add screenshots w/ 'S' key; Cleanup screenshot filename ↵Sven Gothel2023-02-255-16/+80
| | | | creation in other demos.
* Graph Region: Fix printBufferStats(..) overrideSven Gothel2023-02-243-3/+3
|
* Graph Region: Address overflow issue using GL2ES3 integer indices (WIP...); ↵Sven Gothel2023-02-2430-175/+354
| | | | | | | | | | | | | | | Ease GLArrayData* buffer growth. Using integer indices, i.e. GL_UNSIGNED_INT, requires us to pass a GLProfile 'hint' to the GLRegion ctor. Region.max_indices is computed in this regard and used in Region.addOutlineShape(). TODO: If exceeding max_indices, the code path needs some work. Buffer growth is eased via GLArrayData using its golden growth ratio and manually triggering growth before processing all triangles in Region.addOutlineShape(). +++ TextRegionUtil static drawText() won't clear passed Region anymore, caller has to do this if so intended.
* GLArrayData*: Expose reserve() for total elementCount and growIfNeeded() for ↵Sven Gothel2023-02-242-37/+69
| | | | additional components ...
* GLArrayData*: Shorten methods (*API Change*), use proper constructor and ↵Sven Gothel2023-02-2419-285/+309
| | | | | | | | | | | | | finalize immutables, add growthFactor (default golden ratio 1.618), add getCapacity*() and printStats(..) The growthFactor becomes essential for better growth behavior and can be set via setGrowthFactor(). The other changes were merely to clean up the GLArrayData interface and its 4 implementations. Not great to change its API, but one name was misleading ['getComponentCount' -> 'getCompsPerEleme'], so overall .. readability is enhanced. Motivation for this change was the performance analysis and improvement of our Graph Curve Renderer.
* Graph Font: Fix TypecastRenderer TTF corner-case: Prefer initial segment's ↵Sven Gothel2023-02-231-36/+68
| | | | | | | | | | moveTo (start) to be onCurve One of the FreeSerif fonts starts a new segment with two off-curves, where the mid-point is not onCurve. Here we have to test whether the previous (point-1 or in code: point_m) is onCurve and simply start our 'turtle' making the shape there ..
* Eclipse: Add CDT nature to edit C/C++ filesSven Gothel2023-02-232-0/+84
|
* FFMPEGMediaPlayer: Add implementation update for FFmpeg version 4.* (Debian ↵Sven Gothel2023-02-2317-839/+665
| | | | | | | | | | | | | | | | | | | | | | | 11), 5.* (Debian 12) and 6.* (Current Development trunk) From here on, libav support has been dropped. Required FFmpeg libraries to be fully matched by their major runtime- and compiletime-versions are: - avcodec - avformat - avutil - swresample Library avdevice is optional and only used for video input devices (camera). Library avresample has been removed, since FFmpeg dropped it as well in version 6.* and swresample is preferred for lower versions. The matching major-versions of each library to the FFmpeg version is documented within FFMPEGMediaPlayer class API-doc. Each implementation version uses the non-deprecated FFmpeg code-path and compilation using matching header files is warning-free.
* FFMPEGMediaPlayer: Replace old FFmpeg header w/ FFmpeg version 4.3, 5.1 and ↵Sven Gothel2023-02-23515-42234/+78223
| | | | 6.0 (major version counts for binary compatibility)
* Graph UI: Update demos, move pure demo code from demos/ui -> demos, rename ↵Sven Gothel2023-02-2312-129/+1431
| | | | test-shapes
* Graph: Update demos ..Sven Gothel2023-02-196-120/+177
|
* Graph TextRegionUtil: Fix HashMap (font,text)->GLRegion: Preserve key data ↵Sven Gothel2023-02-191-20/+40
| | | | | | (fontName, text) for equals Otherwise we would need to use a mostly collision free secure hash algo, Black2b-512 or sha256/512
* Graph TypecastFont: Add hashCode() and equals(), feed TypecastGlyph w/ ↵Sven Gothel2023-02-191-3/+20
| | | | LeftSideBearings
* Graph Font.Glyph: Cleanup: Remove Font and getScale() from interface ↵Sven Gothel2023-02-192-88/+50
| | | | (redundant), add getLeftSideBearings*() from htmx table; Flatten TypecastGlyph impl by merging its Metrics, add equal() complementing hashCode()
* Graph Font: Add more DEBUG info ..Sven Gothel2023-02-191-3/+32
|
* Graph Font: Simplify CmapFormat selection (cmap symbol -> glyph-idx), just ↵Sven Gothel2023-02-191-51/+24
| | | | use Unicode and if not available use a symbol font
* Graph Font: Add 'name' to Glyph; Drop erroneous Glyph ID_SPACE, ID_CR manual ↵Sven Gothel2023-02-193-52/+43
| | | | | | | | | | | | | | mapping, rely on no-shape for 'space' non-contour. Drop erroneous Glyph ID_SPACE, ID_CR to rely on no-shape for 'space' non-contour resolves different cmap-mappings of fonts, not following 'some std'. Hence getGlyph(glyph_id) no more uses the `font.getGlyph(Glyph.ID_UNKNOWN)` shape, but a null-shape as intended and using the hmtx and hhea table values for asvance and bounds. This fixes 'space' spacing in general and specifically FreeSerif-Regular and the like. This path also simplifies processing/layout of glyphs in process(..) and get*BoundsFU(..).
* Graph Font.Metrics: Use unchanges sign of (+) ascent, (-) descent and (+) ↵Sven Gothel2023-02-195-33/+325
| | | | lineGap, document them properly and fix Font.getLineHeightFU()
* Rename VectorUtil.ccw(..) -> isCCW(..)Sven Gothel2023-02-173-4/+5
|
* Graph Overflow Bug: Reorder TestTextRendererNEWT* tests from simple to ↵Sven Gothel2023-02-176-793/+809
| | | | complex example code, ascending
* Graph UI: Fix UIShape's PMVMatrix handling of getSurfaceSize, objToWinCoord ↵Sven Gothel2023-02-176-24/+69
| | | | and winToObjCoord (expect all set, no doubling); GLEventListenerButton: Resize FBO to screen-size for proper 1:1 quality