| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Pass2-AA, revise Pass2 AA Quality parameter ..
Misc:
- Graph VBORegion2PVBAAES2: Drop unused FBO rescale
- Move MIN/MAX QUALITY/SAMPLE from GraphUI Scene -> Graph Region
+++
Quality -> Pass2 AA Quality
- Drop quality field in region
- Pass quality to GLRegion.draw(..) similar to sampleCount
for dynamic shader and switch
- TODO: Pass quality parameter in TextRegionUtil's functions
Fix RegionRenderer Shader Mapping
- Use ShaderKey class to properly implement the hash value and equals method
- For this, TextureSequence.getTextureFragmentShaderHashID() has been added
to provide actual shader-snippet for the equals function
- All required criterias are included in the hash value and equals method
Fix AABBox Clipping for Pass-2 AA
- Clipping in pass2-AA must happen in pass2 on actual gcu_PMVMatrix01 (not ortho)
+++
GraphUI GraphShape
- Rename: [get,set]{->AA}Quality()
GraphUI Scene
- Rename: mark{All->}ShapesDirty(), set{AllShapes->}Sharpness(), set{AllShapes->AA}Quality()
- Fix setSampleCount(..), i.e. markStatesDirty() not markShapesDirty()
- Fix setAAQuality(), markShapesDirty() and markStatesDirty(): Use forAll(..) to traverse through all shapes and groups.
GraphUI Group
- Add setFixedSize()
- Add setClipOnBox()
- Document setRelayoutOnDirtyShapes(), isShapeDirty()
|
|
|
|
| |
sliding direction
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
(Convenient using Graph/GraphUI produced AABBox)
Simple demo, setting clip-bbox manually:
- src/demos/com/jogamp/opengl/demos/graph/ui/UIShapeClippingDemo00.java
TODO:
- GLSL: Add missing Mv-multiplication of vertex-position -> gcv_ClipBBoxCoord
-- AABBox min/max should be set pre-multiplied w/ Mv covering an independent area, not per Shape/Region.
-- This to properly work with moving/scaling of each Shape/Region etc
|
|
|
|
|
|
|
|
|
|
| |
VBAA_RENDERING_BIT again
Dropping AA was added in commit eb99bfc27f9f49387cbb08471debcd4d61e4f745,
but non-planar rectangles need AA to avoid stairs.
Hence manually dropping some AA in MediaPlayer for blending rectangles.
RangeSlider already drops AA for its bars etc.
|
|
|
|
|
|
|
|
|
|
| |
Shape.setToolTip(Tooltip) for generic usage; Add TooltipText colors.
Shape also takes care of setting Tooltip's tool-Shape (itself),
simplifying Tooltip ctor and having it more independent from Scene/Shape.
Tooltip also drop Scene reference, as it shall be passed from Scene caller
at Tooltip.createTip(..)
|
|
|
|
| |
flexibility
|
|
|
|
| |
required to tick(), drop List<Tooltip>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
delay w/o mouse-move (1s)
For efficiency, all Tooltip instances is hooked to Scene via Shape as well as its
singleton pop-up HUD tip after delay and no mouse move.
TooltipText is a simple text Button implementation,
but other more fancy HUD tips can be implemented.
Shape adds
- 'public Tooltip setToolTip(final CharSequence text, final Font font, final float scaleY, final Scene scene)'
Demoed within MediaPlayer widget.
|
|
|
|
| |
(in sliding direction) for better visibility
|
| |
|
|
|
|
|
|
|
| |
single instance)
This allows listenting to activation of Group members, while Group is set to widget-mode.
For the latter, Group adds a forward listener to itself.
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Container.{add,remove*}Shape[s](); Remove Scene.setDebugBorderBox()
Simplify Shape/Scene
- Split scene.display()/shape.drawImpl0() and scene.displayGLSelect()/shape.drawToSelectImpl0()
Simplify Container (Scene/Group)
- {add,remove*}Shape[s](), i.e. drop unusual removeShape*() and simplify implementation
Scene
- Remove setDebugBorderBox()
|
|
|
|
|
|
| |
MediaPlayer), by simply overlay marks on bar
Knob color defaults to 0.80f, 0.80f, 0.80f, 0.7f, i.e. light-mode better matching MediaPlayer use-case.
|
| |
|
| |
|
|
|
|
|
|
|
|
| |
com.jogamp.common.av.PTS.millisToTimeStr(..)
Chapter metadata is now supported via our FFMPEGMediaPlayer implementation.
Added public method: 'Chapters[] GLMediaPlayer.getChapters()'
|
|
|
|
|
|
| |
'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).
|