| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
| |
|
|
|
|
| |
listener-array (was 1 instance)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
clipping funs for aaQuality/sampleCount; TextRegionUtil: Pass quality parameter in draw-functions
Region.DEFAULT_AA_QUALITY defaults to MAX_AA_QUALITY still
- TODO: AA shader is subject to change ..
Region.draw(..) clips the quality param (save)
TextRegionUtil: Pass quality parameter in draw-functions
- Allowing to select the AA shader
GraphUI Scene and some demos add the AA-quality param
to the status line or screenshot-filename.
- See Region.getRenderModeString(..)
+++
TestTextRendererNEWT20 and TestTextRendererNEWT21
now iterate through all fonts, AA-quality shader and sample-sizes.
Most demos and some more tests take AA-quality into acount,
demos via CommandlineOptions.graphAAQuality
|
| |
|
|
|
|
| |
page-start position.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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)
|
| |
|