| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
| |
winding direction (outer-bondary TTF CW (Graph CCW) and inner-hole TTF CCW (Graph CW)
|
|
|
|
|
|
|
|
|
|
|
| |
inner-hole:=CW w/o using winding determination (might be incorrect)
This simplifies our code further and it has been validated that our polygon shoelace-algo for area >= 0 ? CCW
doesn't produce correct results with all curves.
Hence rely on given winding depending on outer-boundary and inner-hole if CDTriangulator2D.FixedWindingRule == true (default and fixed).
This also removes the more costly winding shoelace calculus,
hence Outline ctor only sets dirtyWinding:=true w/o calculating the winding.
|
|
|
|
| |
tessellation issue / or use Glyph03FreeMonoRegular_M
|
|
|
|
|
|
|
|
|
|
|
|
| |
version, overcome float precision; Loop: Pass edgeType not Winding, simplify findClosestValidNeighbor() -> isValidNeighbor(); CDTriangulator2D.addCurve() enforces Winding.CCW on BOUNDARY null == loop case
Add double version of triAreaVec2() and isInCircleVec2() in VectorUtil, overcoming float precision limits
- Analysis exposed float precision limits within isInCircleVec2()
Loop: Pass edgeType not Winding, simplify findClosestValidNeighbor() -> isValidNeighbor()
- Enhance code clarity
CDTriangulator2D.addCurve() enforces Winding.CCW on BOUNDARY null == loop case
|
| |
|
|
|
|
|
|
|
| |
demos utilize lots of smaller resources regions ...
.. and this also brings us to the next required task: Resolve AA w/o supersampling right in our shader,
which is very well possible when extending the tessellated outline triangle's area.
|
|
|
|
| |
time-string and still-images (optional) .. using HUDShape
|
|
|
|
| |
using inner object size/pos, similar like TooltipShape
|
| |
|
|
|
|
| |
position + NEWT MouseEvent to listener, renamed {Slider->Change}Listener and add PeekListener for mouse-over events
|
| |
|
|
|
|
| |
requires pause state (normal at play-state)
|
| |
|
|
|
|
| |
and subtitle language
|
|
|
|
|
|
|
|
|
|
|
| |
for experimental occlusion-culling
TreeTool's cullShapes(), actually a naive dumm occlusion test (*RENAME IT*),
would need to realize whether the shape/groups actually cover shapes below,
i.e. are not on same Z-Axis and transparent.
Hence, this is disabled in code and we rely on the Z buffer still,
just an idea ..
|
|
|
|
|
|
|
|
|
|
|
| |
simplify and reduce runtime costs
Refines commit 43a7899fedf2a570d20b03848bf15710f30b7f26
Scene handles top-level active state via releaseActiveShape() and setActive(),
now calling into setActiveTopLevel() -> dispatchActivationEvent().
Drop child's addActivationListener(forwardActivation) and isActive() override.
|
|
|
|
| |
ctrlBlend) to remove the occlusion by the blending box
|
|
|
|
| |
dropping UIMediaGrid00
|
|
|
|
| |
Pre/Next Buttons; Toggle HUD head info box (full or brief)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Order, testing Children and fallback to Group if positive
Picking algo in Z-Ascending order worked only by chance, as it picked up any bottom node.
+++
Proper algo is in Z-Descending order to block occluded (child) nodes:
for-all s : shapes
p1 = testPicking(s)
if ( s is Container ) {
p2 = testPicking(s.childs)
if( null != p2 ) {
p1 = p2; // override w/ child prio
}
}
return p1
}
Further, testPicking(shape) shall only return a positive shape,
if the event dispatching check (mouse-over, click, ..)
signals end-of-traversal - as originally intended.
Overall philosophy is to pick the 'deepest' child of a group
if responding, otherwise the next higher interactive group.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
where its zOffset gets adjusted when activated..
.. instead of having a non-working complicated callback orgy setup.
This also takes away the getAdjustedZ() overloading burden (or better uglyness) etc.
Hence Group's setWidgetMode(boolean) became:
- enableTopLevelWidget(Scene)
- disableTopLevelWidget()
The forwardActivation listener is still applied to all children
as well as isActive() is also still overloaded for same required behavior.
However, none of the children is set in 'widget mode'
as well as the Group is simply added to (or removed from)
the Scene's top-level Group list - the holder.
Scene's setActiveShape(Shape) and releaseActiveShape()
handle the top-level Group if affected,
i.e. adding or zero'ing its ZOffset.
|
|
|
|
| |
code.
|
|
|
|
|
|
| |
PointerListener for onClicked(), add onHover();
Subsequent commits will fix complete cleanup where code was changed mostly regarding other issues.
|
| |
|
|
|
|
| |
knob for round-knob and page-size knob
|
|
|
|
|
|
|
|
| |
multiple lines (max 4) fitting into box, trimming it beforehand
Not always are Text/ASS subtitles well formed with newline character.
Use new StringUtil to re-layout if their width doesn't fit into the box,
by trimming all whitespace and splitting them into up-to 4 lines.
|
| |
|
| |
|
|
|
|
| |
TexSeqButton.use{AspectRation->ARatio}Letterbox() matching TextureSequence
|
|
|
|
|
|
|
| |
Positional change could occurre in case the content has changed.
However, our positional slider would not reflect this and the sliding view should stay stable.
Test: UIMediaGrid01 having one player tile zoomed and returned.
|
|
|
|
| |
matching our buildin-theme and have the tips placed just above center of the toop (not above it)
|
| |
|
|
|
|
|
| |
0e5e38478a6197b2dc65960c55bc831d6b4796a7 Sun Feb 12 00:54:40 2023 +0100
d18df847b17a89fdc4b47fa9cfe010af1a61690b Sat Mar 1 16:48:48 2014 +0100
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
| |
|
|
|
|
|
|
|
| |
(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.
|
| |
|
| |
|
|
|
|
| |
src/jogl/classes/jogamp/graph/font/typecast/ot/TTFont.java # src/jogl/classes/jogamp/graph/font/typecast/ot/table/Table.java
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
| |
* 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
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* 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
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* 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
|
|
|
|
| |
{get,set}FallbackFont() + Font.getBestCoverage(..); Use fallback-font in MediaButton in case chosen font doesn't match (foreign languages, e.g. 'zho' Chinese .. )
|