| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
|
|
| |
'page size' of covered view. Resolve color-setup.
Tested with FontView01
|
|
|
|
| |
caller, reducing specification
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
MediaPlayer} and new RangeSlider
- A widget specifies specific UI semantics including individual controls.
- Being a {@link Group}, implementations provide shape(s) and its instance can be added to the user's scene.
- Due to the specific nature of widgets,
individual controls/listener may be provided with semantic values.
+++
MediaPlayer exposes a RangeSlider for current position (view and control).
|
|
|
|
| |
AA_RENDERING_MASK from renderModes (not necessary for a rect)
|
| |
|
| |
|
| |
|
| |
|
|
|
|
| |
controls), used in demos UIMediaGrid0[01]
|
|
|
|
|
|
|
|
| |
Group.replaceShape(..) allows replacing a shape w/o disturbing a layout, e.g. to zoom one element
by taking it out of a grid-group and placing it on-top of the Scene while using a placeholder in the grid
until returned.
Shape.getParent() - depending on use-case (w/o DAG) - allows access and control of a shape's Group.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
traversion for most inner interactive shape; ...
Pick shall complete traversion for most inner interactive shape
- Shape::dispatchMouseEvent() is only invoked for interactive shapes, impl. simplified.
- Remove 'Scene::dispatchMouseEvent(..)', use 'Scene::dispatchMouseEventPickShape(..)' for given use cases
- Scene::dispatchMouseEventForShape(..) used for mouseDragged() only,
i.e. using activeShape.
+++
This allows a 'group widget' being used, allowing to click on inner shapes like a button.
|
|
|
|
|
|
|
|
|
| |
visible UI widget element (activation, visibility)
Enabled widget behavior for a group causes
- the whole group to be shown on top on (mouse over) activation of one of its elements via getAdjustedZ()
- this group's onActivation(Listener) to handle all it's elements activation events
- isActive() of this group and its sub-groups to return true if one of its elements is active
|
|
|
|
|
|
|
| |
getAdjustedZ()
getAdjustedZ() simply returns `position.z() * getScale().z() + zOffset`,
i.e. with added zOffset reflecting activation status (renders shape/group on top).
|
| |
|
| |
|
|
|
|
| |
default ctor
|
| |
|
|
|
|
|
|
|
|
|
| |
texture (effiency, less artifacts)
2-pass Graph-AA is not desired for video textures to enhance efficiency and reduce artifacts.
Consider using 'mPlayer.setTextureMinMagFilter( new int[] { GL.GL_LINEAR, GL.GL_LINEAR } )'
of passed GLMediaPlayer instance to use bilinear filtering for different sizes.
|
|
|
|
|
| |
Note that invisible shapes are still considered for picking/activation.
To completely mute the shape, issue {@link #setInteractive(boolean)} as well.
|
|
|
|
| |
active; Add isContainer() to avoid rfeflection
|
|
|
|
| |
details of the translation
|
| |
|
| |
|
|
|
|
| |
GLEventListener (API)
|
| |
|
|
|
|
| |
methods accordingly
|
|
|
|
|
|
|
|
| |
allowing to properly take-down user resources at dispose(GLAutoDrawable)
Used for UISceneDemo20 to stop and release SimpleSineSynth and its ALAudioSink.
The latter causes a bad exit (crash at OpenAL32.dll) on OpenJDK's Window Binary if not stopped!
|
|
|
|
|
|
|
|
| |
'mouseOver' (mouseDragged)
When using a mouse, Scene activates a Shape if mouse is over it (mouseOver).
Hence don't de-activate such Shape via mouse-button clicked or released.
|
| |
|
|
|
|
|
|
|
|
|
|
| |
for sorting w/o actually modifying the position (enogh to be painted on top and for selection)
Also use a simplified comparison using only float relational operations w/o NaN/Inf bit-stuff or epsilon,
as it should be accurate enough for this cause.
This shall also resolve Bug 1454, as we no more modify the position directly
but the local zOffset field .. but this has to be seen (data race).
|
|
|
|
| |
dirty. Only issue validate on childs if theyre shape is dirty
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
aspect-ratio, letter-boxed or zoomed (config) + Bug 1466 Fix color mixing
Bug 1465: Region currently simply bloats a given texture to its region AABBox,
which renders textures with the wrong aspect ratio.
Add facility to program the texture-coordinates to either letter-box
or scaled-up (and cut) true aspect-ratio.
Default shall be zoom (scale-up and cut),
but user shall be able to set a flag in the Region for letter-box.
Have the shader clip texture coordinates properly,
best w/o branching to soothe performance.
See functions.glsl
+++
Bug 1466: Current color mix: texture * color_channel * color_static
is useless in GraphUI.
color_static shall modulate the texture, which works.
But in case of color_channel (attribute/varying)
we want it to be mixed so it can become the more dominant color
for e.g. a border.
Desired is:
color = vec4( mix( tex.rgb * gcu_ColorStatic.rgb, gcv_Color.rgb, gcv_Color.a ),
mix( tex.a * gcu_ColorStatic.a, 1, gcv_Color.a) );
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
symbols (see setFixedLabelSize()),
This allows convenient instantiation of a Button changing its text (or symbol) when toggled, e.g.:
UISceneDemo03:
+ final Button button = new Button(options.renderModes, fontSymbols,
+ fontSymbols.getUTF16String("play_arrow"), fontSymbols.getUTF16String("pause"),
+ buttonWidth, buttonHeight, buttonZOffset);
+ button.setSpacing(symSpacing, fixedSymSize);
+++
setFixedLabelSize(..):
Sets fixed label font size clipped to range [0 .. 1], defaults to {@code 0, 0}.
Use {@code w=0, h=1} when using single symbols from fixed sized symbol fonts!
Use {@link #setSpacing(Vec2f, Vec2f)} to also set spacing.
The fixed label font size is used as the denominator when scaling.{@code max(fixedLabelSize, fontLabelSize)},
hence reasonable values are either {@code 1} to enable using the given font-size
for the axis or {@code 0} to scale up/down the font to match the button box less spacing for the axis.
|
| |
|
|
|
|
| |
experience, add overridable toggleNotify(..) allowing implementations to react before listener.
|
|
|
|
| |
See commit e5eadcdaa615dbeb762885b50435a1f79d6ca895
|
| |
|
|
|
|
| |
to preserver footprint ..
|
|
|
|
| |
debugging purposes
|
| |
|
|
|
|
|
|
|
|
|
| |
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
|
| |
|
|
|
|
| |
For certain shapes the aspect-ratio shall be kept, e.g. MediaButton etc.
|
|
|
|
| |
setter/getter
|
| |
|
|
|
|
|
|
|
|
|
| |
Listener
We already track this state within Scene, i.e. a shape is marked active when pointer is over it and released from active-duty when pointer left.
Scene shall notify the Shape so it can track this state locally
and also forward this event to the user via the typical Shape.Listener callback.
|
| |
|
|
|
|
| |
given, calculated by caller
|