aboutsummaryrefslogtreecommitdiffstats
path: root/src/jogl/classes/jogamp/graph/font
Commit message (Collapse)AuthorAgeFilesLines
* TypecastGlyph: Add complex/simple info in toString()Sven Göthel2024-02-151-2/+2
|
* Bug 1501 Graph Delaunay: Replace MaterialIconsRound-Regular.ttf with fixed ↵Sven Göthel2024-02-121-0/+0
| | | | winding direction (outer-bondary TTF CW (Graph CCW) and inner-hole TTF CCW (Graph CW)
* Typecast: Re-apply overwritten stability changes (NPE, redundancy)Sven Göthel2024-02-031-11/+12
| | | | | 0e5e38478a6197b2dc65960c55bc831d6b4796a7 Sun Feb 12 00:54:40 2023 +0100 d18df847b17a89fdc4b47fa9cfe010af1a61690b Sat Mar 1 16:48:48 2014 +0100
* Typecast: Cleanup: finalSven Göthel2024-02-032-18/+19
|
* Hausmacher Merge: Complete merge part-1 into JOGL from our typecast branch; ↵Sven Göthel2024-02-031-0/+65
| | | | | | | | | | | | | Adding missing LongDateTime class haumacher https://github.com/haumacher/typecast https://jogamp.org/cgit/typecast.git/log/?h=jogl_patches Status: - Compile clean - Graph/GraphUI Bring-Up OK - Fixes CJK ttf font parsing due to fixed Cmap table
* Cleanup (static, final, whitespace, ..) post Hausmacher MergeSven Göthel2024-02-0319-426/+433
|
* Hausmacher Merge: Complete merge part-1: Compile and test clean ↵Sven Göthel2024-02-033-28/+32
| | | | | | | (pre-write-feature) Bernhard Haumacher provided changes in May 2020 to the typecast project within his public branch https://github.com/haumacher/typecast This merges the pre-write-feature work, which probably is incomplete.
* Enhanced dump format of cmap table.Bernhard Haumacher2024-02-038-36/+77
|
* Added rudimentary documentation to the CFF table.Bernhard Haumacher2024-02-031-1/+35
|
* Added support for reading the SVG table. # Conflicts: # ↵Bernhard Haumacher2024-02-034-48/+363
| | | | src/jogl/classes/jogamp/graph/font/typecast/ot/TTFont.java # src/jogl/classes/jogamp/graph/font/typecast/ot/table/Table.java
* Added documentation to the 'loca' table.Bernhard Haumacher2024-02-031-5/+33
|
* Improved documentation of Cmap table.Bernhard Haumacher2024-02-038-6/+331
|
* Bugfix: Format 14 header of Cmap table is not skipped correctly.Bernhard Haumacher2024-02-031-2/+1
|
* Added offset table as member to the font.Bernhard Haumacher2024-02-035-17/+52
| | | | | | | | * Include the offset table in the font's dump. * Simplified reading since the offset table now does not be read twice. # Conflicts: # src/jogl/classes/jogamp/graph/font/typecast/ot/OTFont.java # src/jogl/classes/jogamp/graph/font/typecast/ot/TTFont.java
* Added documentation to the HmtxTable.Bernhard Haumacher2024-02-031-12/+148
|
* Added documentation to the 'glyf' table and structures.Bernhard Haumacher2024-02-0319-152/+989
| | | | | | | | | | | | | | * Completed missing toString() functions in some table. * Added dump() functionality to create a human readable description of all font tables with complete detail. * Fixed some signed/unsigned problems in the parser. # Conflicts: # src/jogl/classes/jogamp/graph/font/typecast/ot/OTFont.java # src/jogl/classes/jogamp/graph/font/typecast/ot/TTFont.java # src/jogl/classes/jogamp/graph/font/typecast/ot/table/GlyfCompositeDescript.java # src/jogl/classes/jogamp/graph/font/typecast/ot/table/GlyfDescript.java # src/jogl/classes/jogamp/graph/font/typecast/ot/table/NameTable.java # src/test/java/net/java/dev/typecast/ot/TTFontTest.java
* Getters for macStyle bits, enhanced docu for fontDirectionHint.Bernhard Haumacher2024-02-032-16/+150
|
* Added JavaDoc references, split version fields according to spec.Bernhard Haumacher2024-02-031-6/+100
|
* Documentation for `HeadTable`Bernhard Haumacher2024-02-0332-55/+439
| | | | | | | | | | | | | | | | | | | * Added documentation to fields in `HeadTable` taken from https://docs.microsoft.com/en-us/typography/opentype/spec/head. * Added `LongDateTime` conversion of date values encoded as "seconds since 1904". * Added `getType()` API to `Table` interface. # Conflicts: # 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/LocaTable.java # src/jogl/classes/jogamp/graph/font/typecast/ot/table/SbixTable.java Original commit from typecast merge: From 43c20bb2e7644aef7002caeb93e1770be5cacaab Mon Sep 17 00:00:00 2001 From: Bernhard Haumacher <[email protected]> Date: Sat, 9 May 2020 12:49:39 +0200
* Graph/GraphUI: Move getDefault*() to FontFactory and add ↵Sven Göthel2024-02-031-0/+11
| | | | {get,set}FallbackFont() + Font.getBestCoverage(..); Use fallback-font in MediaButton in case chosen font doesn't match (foreign languages, e.g. 'zho' Chinese .. )
* Graph: Drop non-existing 'JAVA' font from FontFactorySven Göthel2024-01-251-185/+0
|
* Bug 1463 - Graph Font: Whitespace or undefined Glyphs shall not cover (any) ↵Sven Gothel2023-09-261-4/+7
| | | | | | | | | | | | | | | | | | height exceeding overall CharSequence TypecastFont using `metrics.getAscentFU() - metrics.getDescentFU()` for ascent used for all undefined and whitespace Glyphs w/o a spatial outline, leads to a potential exceeding height compared to the actual used bounding box of the rendered text. This in turn leads to layout issues, e.g. button labels are placed too low. Solution: - Whitespace/Undefined: Drop full height 'metrics.getAscentFU() - metrics.getDescentFU()', b/c of non-existing shape height. - Otherwise, layout on AABBox or created empty shape would pick up such default hhea-table ascent which might exceed actual string height. Sideeffect would be if user relies on height of a whitespace. However, knowing this fact - a user may always pick the hhea-table's ascent metric values as exposed in Font and Font.Metric. This resolves remaining layout issues, including button labels.
* Bug 1462 - Graph Font: Add name + codepoint to ID and Glyph mapping plus ↵Sven Gothel2023-09-242-116/+215
| | | | | | | | | traversing through all Glyphs See UISceneDemo03 new Button(options.renderModes, fontSymbols, " "+fontSymbols.getUTF16String("pause")+" ", buttonWidth, buttonHeight); // pause Unicode codepoint symbol is also contained in FontGlyph
* Graph Fonts: Add 'Material Icons Round-Regular' (APL-2 license) and use it ↵Sven Gothel2023-09-243-0/+86
| | | | in UISceneDemo03 via hard coded unicode symbol numbers
* Graph Fonts UbuntuFontLoader: Factor out FontLoaderImpl and have get(..) ↵Sven Gothel2023-09-242-103/+139
| | | | synchronized for static fontMap field access
* Graph Fonts: Remove not required text files from Ubuntu fontsSven Gothel2023-09-243-409/+0
|
* Bug 1452 - Decouple math functionality to 'com.jogamp.math' to be toolkit ↵Sven Gothel2023-09-207-8/+8
| | | | | | | | | | | | | | | | | | | | agnostic (PMVMatrix, Matrix4f, Vec4f, ..) Math functionality (PMVMatrix, Matrix4f, Vec4f, ..) - shall be used toolkit agnostic, e.g. independent from OpenGL - shall be reused within our upcoming Vulkan implementation - may also move outside of JOGL, i.e. GlueGen or within its own package to be reused for other purposed. The 'com.jogamp.opengl.util.PMVMatrix' currently also used to feed in GLUniformData via the toolkit agnostic SyncAction and SyncBuffer shall also be split to a toolkit agnostic variant. An OpenGL PMVMatrix specialization implementing GLMatrixFunc can still exist, being derived from the toolkit agnostic base implementation. +++ Initial commit .. compile clean, passing most unit tests.
* Graph Font + Glyph: Fix whitespace definition: Include 'no original ↵Sven Gothel2023-09-011-7/+9
| | | | | | | | | | | | | | underlying shape' and add API doc Regression was introduced with commit 920e529516bb264f04138ed1caca80d4925e3773 'Robust detetection and API definition of non-contour/whitespace Glyphs'. Issue was mistaken a glyph as undefined if not having an underlying shape, which is true for some fonts (e.g. 'space'). +++ Also Use post table's name if no underlying shape exists.
* Graph Font: Make TypecastRenderer.DEBUG package private to be used by ↵Sven Gothel2023-08-281-1/+1
| | | | TypecastFont
* Graph Font + Glyph: More robust detetection and API definition of ↵Sven Gothel2023-08-282-55/+109
| | | | | | non-contour/whitespace Glyphs (detect and allow to skip 'em) We also drop shapes for both, but for id 0 (unknown).
* Relocate 'jar/atomic/jogl-fonts-p0.jar' -> 'jar/jogl-fonts-p0.jar' to ↵Sven Gothel2023-05-201-2/+1
| | | | | | | simplify inclusion in distribution; UbuntuFontLoader's Uri is patched accordingly. This font jar file is actually not an atomic in the sense it being aggregated to e.g. jogl-all.jar or even a fat jar. Hence it is more suitable to have it all visible in the top-dir next to the main jars.
* Graph OutlineShape.get{Outline->}VectexCount() renamedSven Gothel2023-04-201-1/+1
|
* Graph Font.getGlyphShapeBounds(): Use variant w/ 2 temp AffineTransform ↵Sven Gothel2023-04-181-4/+5
| | | | matching getGlyphBounds()
* Graph + GraphUI: Consolidate Vertex: Drop SVertex and factory, use Vec[234]f ↵Sven Gothel2023-04-182-8/+7
| | | | | | | | | | | instead of float[] and remove unused VectorUtil methods After Matrix4f consolidation and proving same or better performance on non array types, this enhances code readability, simplifies API, reduces bugs and may improve performance. GraphUI: - Have RoundButton as a functional class to make a round or rectangular backdrop, i.e. impl. addShapeToRegion() via reused addRoundShapeToRegion()
* Typecast Font.getGlyph(..): Fix Glyph case w/ 0 getOutlineVectexCount() -> ↵Sven Gothel2023-04-141-4/+14
| | | | isWhiteSpace = true, use emptyShape
* Typecast Font.Glyph: Expose isUndefined(), i.e. name == ".notdef"Sven Gothel2023-04-141-0/+3
|
* Typecast: Expose (new) getGlyphCount(): GlyfTable.getSize() -> ↵Sven Gothel2023-04-144-1/+13
| | | | (OTFont,Font).getGlyphCount()
* Typecast GlyfTable: Use `final` qualifier (cleanup)Sven Gothel2023-04-141-14/+14
|
* Graph TypecastFont: Avoid PostTable (out-of-bounds) for glyph_name when not ↵Sven Gothel2023-04-141-3/+7
| | | | even a Glyph was mapped to the ID
* Math: Complete Matrix4f w/ Vec[234]f and adopt it throughout Quaternion, ↵Sven Gothel2023-04-053-8/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | Ray, AABBox, Frustum, Stereo*, ... adding hook to PMVMatrix Motivation was to simplify matrix + vector math usage, ease review and avoid usage bugs. Matrix4f implementation uses dedicated float fields instead of an array. Performance didn't increase much, as JVM >= 11(?) has some optimizations to drop the array bounds check. AMD64 + OpenJDK17 - Matrix4f.mul(a, b) got a roughly ~10% enhancement over FloatUtil.multMatrix(a, b, dest) - Matrix4f.mul(b) roughly ~3% slower than FloatUtil.multMatrix(a, b, dest) - FloatUtil.multMatrix(a, a_off, b, b_off, dest) is considerable slower than all - Matrix4f.invert(..) roughly ~3% slower than FloatUtil.invertMatrix(..) RaspberryPi 4b aarch64 + OpenJDK17 - Matrix4f.mul(a, b) got a roughly ~10% enhancement over FloatUtil.multMatrix(a, b, dest) - Matrix4f.mul(b) roughly ~20% slower than FloatUtil.multMatrix(a, b) - FloatUtil.multMatrix(a, a_off, b, b_off, dest) is considerable slower than all - Matrix4f.invert(..) roughly ~4% slower than FloatUtil.invertMatrix(..) Conclusion - Matrix4f.mul(b) needs to be revised (esp for aarch64) - Matrix4f.invert(..) should also not be slower ..
* Graph Font: TypecastFont: getGlyphBoundsFU() + processString(): If ↵Sven Gothel2023-03-281-4/+6
| | | | isWhitespace() continue w/ AABBox resize, but don't earmark this (whitespace) glyph for next left_glyph (kerning).
* Graph Font.GlyphVisitor*: Pass 'char symbol' to visitor, passing full ↵Sven Gothel2023-03-281-5/+3
| | | | text-processing information
* Graph Font.Glyph: Add getFont() (the owner)Sven Gothel2023-03-281-0/+5
|
* Graph Font: Rename getBBox*() -> getBounds*() to preserve a common semantic nameSven Gothel2023-03-273-8/+8
|
* Graph: Fix Font.getGlyphBoundsFU(): FU of advance is requested here.Sven Gothel2023-03-271-1/+1
| | | | Regression from commit a5d593478afa2298282a0624b2490fde84c3a292
* Graph Font Processing: Use Font.GlyphVisitor instead of ↵Sven Gothel2023-03-221-9/+15
| | | | OutlineShape.Visitor, allowing to use the Glyph (information).
* Graph Font Processing: Produce a 'whitespace' Glyph w/ an OutlineShape (box) ↵Sven Gothel2023-03-223-5/+76
| | | | to allow better handling of such non-contour symbols.
* Graph: Cleanup Vertex.Factory referencing: Only bind to OutlineShape and use ↵Sven Gothel2023-03-211-11/+8
| | | | | | | its default. GraphUI: Always use default. Graph RegionRenderer, its RenderState as well as GraphUI's Scene don't need to have knowledge of Vertex.Factory, which is only used within OutlineShape and its 'inner geom workings'.
* Graph: Font: Add equals() + hash() API doc; GraphUI's Label*.setText(): Only ↵Sven Gothel2023-03-081-2/+1
| | | | modify values if text and/or font differs, skipping markShapeDirty() saves performance.
* Graph Perf: Add Region.countOutlineShape(), Font.processString(Visitor2,..), ↵Sven Gothel2023-03-071-5/+18
| | | | TextRegionUtil.countStringRegion() allowing to use Region.setBufferCapacity()