| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
| |
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.
|
|
|
|
| |
TypecastFont
|
| |
|
|
|
|
|
|
| |
non-contour/whitespace Glyphs (detect and allow to skip 'em)
We also drop shapes for both, but for id 0 (unknown).
|
|
|
|
|
|
| |
report error but do not crash.
This behavior has been evaluated with a few fonts and the WIP FontView01 demo application.
|
| |
|
|
|
|
| |
file-path>' using our GLMediaPlayer (FFmpeg + JOAL/OpenAL)
|
|
|
|
|
|
|
|
|
| |
0.0001f, have to check if working on all platforms (TODO)
Otherwise, we have to resolve the 'one Region' for the Button (backgroung shape + text on top)
implementation with two OutlineShapes.
As of now, we use the z-offset of the text above background to avoid z-fighting.
This is like a manual application of glPolygonOffset(..) directly on the produced vertices.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
| |
tests for now
|
|
|
|
|
|
|
|
|
| |
ctor using Vec3f low and high
intersects2DRegion(..) got the passed width and height wrong,
i.e. given object low position >= this-low position
and given object high position including width/height <= this-high position
is required to match for intersection.
|
| |
|
| |
|
|
|
|
| |
allowing off-thread mutation
|
| |
|
|
|
|
| |
complete PMVMatrix, use it in getSurfaceSize(..), shapeToWinCoord(..) and winToShapeCoord(..)
|
|
|
|
| |
variants
|
| |
|
| |
|
|
|
|
| |
key-symbols F4, ESC and Q to trigger off-thread window.destroy()
|
| |
|
|
|
|
|
|
|
|
|
| |
addNotify(), leading to proper initialization sequence when re-adding panel.
The proper initialization sequence subsequently also leads to proper glViewport initialization,
see commit d17d807a76ba9cb940542264fcad9cf71c7ec585
No side-effects expected, just ensuring same code-path compared to initial addNotify().
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
GLEventListener.reshape(..) when re-adding GLJPanel
When re-adding GLJPanel on Windows glViewport()
is not called through
- GLJPanel.Updater.display()
- GLDrawableHelper.reshape()
- GLDrawableHelper.setViewportAndClear()
Instead the following sequence is called due to sendReshape == false:
- GLJPanel.Updater.display()
- GLDrawableHelper.display() ** missing glViewport(..) **
This bug is not visible on X11 or MacOS since the glViewport
is only set to a different user value on Windows ...
|
| |
|
|
|
|
|
|
| |
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().
|
| |
|
|
|
|
| |
TODO: Full cleanup perhaps
|
|
|
|
|
|
|
|
|
| |
over ownership and allows destroy() to delete it, otherwise not. Fixes GraphUI's GLButton.
GraphUI's GLButton uses the offscreen's FBO texture and hence can't pass over ownership of the texture.
Hence the Texture instance is created w/o handing over ownership!
GLMediaPlayerImpl does hand over ownership of the generated and passed texture to the Texture ctor.
|
| |
|
| |
|
|
|
|
| |
AWT rendering thread support. Adopt it in tests and demos
|
|
|
|
| |
gap) for test case to compare pixel-by-pixel
|
|
|
|
| |
color-channel again, was enforced to be set in commit bb6ee81bc5514663bb7b22224fcdd5ba34a51ac6
|
|
|
|
| |
shall handle null streamWorker, i.e. when using NullGLMediaPlayer
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
| |
Also tested with Sofr-HiDPI on Linux using GDK_SCALE=2
|
|
|
|
|
|
|
| |
colors within one region)
Note, commit bb6ee81bc5514663bb7b22224fcdd5ba34a51ac6
relaxes the requirement for using a color-channel.
|
|
|
|
|
|
|
|
|
|
| |
Either fill color-channel with value if used and set static-color to white - or just set static color channel with value.
Have the given rgbaColor to definitely setting the text color regardless whether a color channel is used or not.
Note: Using a color-channel is more expensive (color value per vertex) and should only be required if mixing
colors within one region!
Also removes potential side-effects if color-channel is used but user forgets to set the static value properly.
|
|
|
|
|
|
|
|
|
|
|
|
| |
color-channel is used and no static-color set
Commit a973324a75b55b722caa755a7a573be849d997e4 was setting the alpha to 1,
which avoids the 'discard' in the shader.
This at least gave us a black color ;-)
However, the shader modulates the color, i.e. color-channel * color-static,
therefor we need an all-white color-static as default
if user only sets the color-channel.
|
|
|
|
| |
Remove potential leak
|
|
|
|
| |
(and fwd 'em to RenderState aggregate)
|
| |
|
|
|
|
| |
texture unit after ctor
|
|
|
|
| |
avoid side-effects. Usually called @ GLEventListener.init(..)
|
|
|
|
|
|
| |
rendering if no static color has been set
Shader either uses just colorStatic or multiplies it w/ the color-stream value
|
|
|
|
| |
(default texture unit is 0)
|
|
|
|
| |
projection settings
|
| |
|