| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
select (pick) in Z descending order
Picking (select) a shape shall process all shapes in Z descending order,
i.e. top shape first. This is a bug currently.
Note: Picking (selecting) a shape using a (mouse-)pointer device
is active by mouse-moved and not only mouse-clicked.
Therefor, we select shapes by mouse-over.
The active selected shape shall have an elevated Z offset to be rendered on top
of the others on same plane.
- This avoids them being rendered below others while moving them around etc.
- This also avoids flickering of overlapping shapes with mouse over.
- This stabilizes the UI experience
|
|
|
|
|
|
|
| |
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 ..
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
commit 5d6e8a367c03644740187e500c6de5d3ac039d5e
- pmv.glMatrixMode(GLMatrixFunc.GL_PROJECTION);
- pmv.glLoadIdentity();
- pmv.gluPerspective(angle, ratio, zNear, zFar);
- pmv.glTranslatef(0f, 0f, scene_dist);
+ pmv.loadPIdentity();
+ pmv.perspectiveP(angle, ratio, zNear, zFar);
+ pmv.translateMv(0f, 0f, scene_dist);
^^
Was projection matrix.
Fixed.
Note: resolved via TraceGL and comparing output -> P matrix differed,
here translation.
|
|
|
|
| |
at least add an empty region to avoid an NPE
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
| |
- Remove the negative or positive delta on centered axis.
- Only remove negative offset of non-centered axis (i.e. underline)
|
| |
|
|
|
|
| |
requested and avoid double-add.
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
| |
required (hasBorder() and null border yet)
This avoid changing the RenderMode and hence actual shader rendering the item.
|
|
|
|
| |
on all group member to allow validate to function
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
| |
|
| |
|
|
|
|
| |
Add border-color in toString() if hasBorder()
|
|
|
|
| |
GLAutoDrawable.invoke(..)
|
|
|
|
| |
has no border yet, i.e. don't override
|
| |
|
| |
|
|
|
|
| |
rename Button set{Label->Text}(..), adjust demo/text code
|
|
|
|
| |
renderModes, allowing the latter to be adjusted e.g. in case a color-channel is required
|
|
|
|
| |
AffineTransform to local method; Simplify BaseButton setCorner(0) -> setPerp(); Protected abstract ctor ..
|