| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
| |
performance & stability
|
| |
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
| |
in UISceneDemo03 via hard coded unicode symbol numbers
|
|
|
|
| |
Yeah, for good eyes only .. but enough to label the Greek alphabet :)
|
|
|
|
| |
For certain shapes the aspect-ratio shall be kept, e.g. MediaButton etc.
|
|
|
|
| |
use direct lambdas for all its other listener
|
|
|
|
| |
perfect minimum label-z-offset
|
|
|
|
|
|
|
| |
starting at 0/0 but at an offset
OK for centered or non-zoomed .. as used w/ FontView01 to show the underline space.
Sure, Fill (zoom) w/o center on offset shapes is tricky and a matter of definition and taste, but in general useless.
|
|
|
|
|
|
|
| |
aligning w/ PMVMatrix4f naming ..
Original name was simply setTransform(..), so now let's keep using the suffix denominating the matrix
while keep the main subject/verb upfront. Was an off reading ..
|
|
|
|
| |
use '-url YOUR_LOC' for file and URL. MovieSimple: Just use multiple '-url LOC' on commandline to determine window-count and so forth ..
|
|
|
|
| |
Group's getShapeCount() ..
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
| |
addGlyphs(..) loop; Add Margin on glyphShapeBox
|
| |
|
|
|
|
| |
UILayoutGrid01: Add Padding/Non-Padding comparison
|
|
|
|
|
|
|
|
| |
manual calculus (the goal)
In some cases we still query a previous added box for width or height though.
But in general, using the Group w/ Box- or GridLayout and Fill/Center relieves us from manually scaling things.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
scale. {Box,Grid}Layout: Always remove Bottom-Left delta and refine API doc of incl scale behavior
GraphUI BoxLayout: Margin is only ignored for center Alignment w/o Fill scale.
Margin outside of a shape is not scaled and hence must be considered
when using Fill scale.
{Box,Grid}Layout: Always remove Bottom-Left delta
Previously we were only dropping the negative extend.
However, since our scale and center algo uses the AABBox width and height,
which excludes the bottom-left delta, we have to drop such offset.
TODO: Otherwise, we would need adjust for the bottom-left extend
when NOT centering for each direction!
This might be a useful enhancement in case one likes to drop
shapes as-is w/o centering.
{Box,Grid}Layout: Refine API doc of incl scale behavior
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
behavior to BoxLayout and GridLayout.
For all:
- Padding is applied to each {@Shape} via {@link Shape#setPaddding(Padding)} if passed in constructor
BoxLayout:
- Optionally centered {@link Alignment.Bit#CenterHoriz horizontally}, {@link Alignment.Bit#CenterVert vertically} or {@link Alignment#Center both}.
- Optionally scaled to cell-size if given and {@link Alignment#Fill}
- Margin is ignored on dimension with center {@link Alignment}
- Not implemented {@link Alignment}: Top, Right, Bottom, Left
GridLayout:
- Optionally centered {@link Alignment.Bit#CenterHoriz horizontally}, {@link Alignment.Bit#CenterVert vertically} or {@link Alignment#Center both}.
- Optionally scaled to cell-size if given and {@link Alignment#Fill}
- Without cell-size behaves like a grid bag using individual shape sizes including padding
- Can be filled in {@link Order#COLUMN} or {@link Order#ROW} major-order.
- Not implemented {@link Alignment}: Top, Right, Bottom, Left
Changes to Group.Layout interface:
- Added preValidate(Shape) allowing to prepare the shape before validation, used to inject Padding
Changes to Margin:
- Removed the complex CENTER property and using Alignment in BoxLayout as well
Changes to BoxLayout:
- Using Alignment
+++
Tested via UILayoutBox01 and UILayoutGrid01,
try the tooltip by clicking on the group's description label.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
is an intrinsic + branch-less implementation
Expected implementation is
- return Float.intBitsToFloat(Float.floatToRawIntBits(a) & 0x7fffffff);
replacing old implementation
- return (a <= 0.0F) ? 0.0F - a : a;
.. also market as @IntrinsicCandidate
Hence we shall leave it to the JRE core-lib implementation...
|
|
|
|
| |
rename Button set{Label->Text}(..), adjust demo/text code
|
|
|
|
| |
DefaultPMVMatrixSetup w/o orthogonal alike scale-back but fully parametric
|
|
|
|
| |
[1..8]; Add clarity in Region; Demos CommandlineOptions adds actual graphAASamples set and utilized
|
| |
|
|
|
|
| |
<floar>' in seconds
|
|
|
|
|
|
|
|
| |
API Change **
Since this is an extra implementation of PMVMatrix and not of GLMatrixFunc, we shall use the default ISO dimension avoiding conversion.
This alsi redefined Graph's RegionRenderer.reshapePerspective() angle definition from degrees to radians
|
|
|
|
| |
Scene but manual GLEventListener etc, add a few Glyph tests
|
|
|
|
| |
the last element in container, the GlyphShape
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
glyphSymbol number, mouse-wheel scrolling, Fitting the font info, ..
- Add mouse-wheel scrolling, for one-line and with control for one page.
- Add left-column glyphSymbol number, for orientation while scrolling
- Fitting the font info, i.e. consider width + height
Refactoring further isolated the addGlyphs(..) functionality in same method, etc.
Used to test Graph's capabilitry to properly read, detect and visualize certain fonts.
Previous Graph fixes were triggered by this procedure,
i.e. commits
- 733cc5272cfed10fa07b707e29fd756f44581508
- 920e529516bb264f04138ed1caca80d4925e3773
- 7fd51917b0cc85c3dc3d07592093a62b213d1ea5
Further the proper detection of non-contour/whitespace
allows FontView to skip them and only show usably Glyphs without noise.
|
| |
|
|
|
|
| |
file-path>' using our GLMediaPlayer (FFmpeg + JOAL/OpenAL)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
providing sets of animated Shapes (GlyphShape or any other)
Hardcoding the whole animation process into user code is not feasible to allow a quick add-on.
GraphUI's new AnimGroup is a Group and allows to add multiple AnimGroup.Set of AnimGroup.ShapeData.
+++
AnimGroup.ShapeData holds the actual Shape and its start- and target position
as well as its active animation state and an optional user object attachment.
AnimGroup.Set holds a list of AnimGroup.ShapeData as well as the animation properties
and states like acceleration and velocity for translation and angular operations.
It also contains the AnimGroup.LerpFunc for linear interpolation of the next position
as called via AnimGroup.tick() over all sets.
AnimGroup.LerpFunc is intended to perform the linear interpolation for the next position,
either user provided or one of the provided may be used, i.e. TargetLerp, ScrollLerp and SineLerp.
To setup the start- and target position for each AnimGroup.ShapeData,
a AnimGroup.ShapeSetup is used - user implementated or one of the build-in
of AnimGroup.addGlyphSetHorizScroll01(..), AnimGroup.assGlyphSetRandom01(..).
+++
UISceneDemo03 consolidated UISceneDemo03 + UISceneDemo03b (deleted)
and shows the following AnimGroup capabilities:
- Two repetitive scrolling text lines. One text shorter than the line-width and one longer.
- One line of animated rectangles, rotating around their z-axis
- A text animation assembling one line of text,
each glyph coming from from a random 3D point moving to its destination all at once including rotation.
- One line of text with sine wave animation
|
|
|
|
| |
key-symbols F4, ESC and Q to trigger off-thread window.destroy()
|
| |
|
| |
|
|
|
|
|
|
| |
ensuring JOGL is completely initialized
Noteable: On MacOS 13.1 (aarch64) UISceneDemo20 won't show the window if NEWT is initialized before JOGL core via GLProfile.initSingleton().
|
| |
|
| |
|
| |
|
|
|
|
| |
AWT rendering thread support. Adopt it in tests and demos
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
To enjoy the UISceneDemo20 demo, joal shall exist at its usual location.
However, pass build if not available.
Also drop ant + junit from demos.
- Rename jogl-demo-android.{jar,apk} -> jogl-demos-android.{jar,apk}
- New demo classpath
- Add non-joal demo classpath
- Add joal demo classpath.
- Drop junit + ant from both
- Remove joal from junit compile path.
- Build test: demo compilation (Java + Android)
- Drop joal dependencies if not available
|
|
|
|
|
|
|
| |
colors within one region)
Note, commit bb6ee81bc5514663bb7b22224fcdd5ba34a51ac6
relaxes the requirement for using a color-channel.
|
|
|
|
| |
(and fwd 'em to RenderState aggregate)
|
| |
|
|
|
|
| |
texture unit after ctor
|
|
|
|
| |
avoid side-effects. Usually called @ GLEventListener.init(..)
|
|
|
|
| |
projection settings
|
|
|
|
| |
RegionRenderer.enable(..) merge '!enable' branch, fix API doc
|
|
|
|
|
|
|
|
|
|
|
| |
SimpleSineSynth Button and have MediaButton to produce mono-only for 3D sound
- Move SimpleSineSynth and MediaPlayer around for spatial 3D sound
- Shape's center is the Source position
- SimpleSineSynth controlls:
- click to enable
- scroll vertical -> frequency change
- scroll vertical + ctrl-key -> volume/amplitude change
|
| |
|