| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
| |
[1..8]; Add clarity in Region; Demos CommandlineOptions adds actual graphAASamples set and utilized
|
|
|
|
|
|
|
|
| |
API Change **
Since this is an extra implementation of PMVMatrix and not of GLMatrixFunc, we shall use the default ISO dimension avoiding conversion.
This alsi redefined Graph's RegionRenderer.reshapePerspective() angle definition from degrees to radians
|
| |
|
|
|
|
|
|
| |
non-contour/whitespace Glyphs (detect and allow to skip 'em)
We also drop shapes for both, but for id 0 (unknown).
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
| |
allowing off-thread mutation
|
|
|
|
| |
complete PMVMatrix, use it in getSurfaceSize(..), shapeToWinCoord(..) and winToShapeCoord(..)
|
|
|
|
| |
variants
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
| |
(and fwd 'em to RenderState aggregate)
|
|
|
|
| |
texture unit after ctor
|
|
|
|
| |
returns the whole Recti viewport of the shape
|
|
|
|
| |
draw(..) until it returns true.
|
|
|
|
| |
forAll(..), should be setup before call by user
|
| |
|
|
|
|
| |
with EventMask.Bit/EventMask
|
|
|
|
| |
don't use PMVMatrix for computation
|
| |
|
| |
|
|
|
|
| |
toString() just drop no-border and no-padding.
|
| |
|
| |
|
| |
|
|
|
|
| |
original color, adjust defaults accordingly
|
|
|
|
| |
bounds. Account for both (seperately) and add border rendering to Group as well.
|
|
|
|
| |
See commit 386f9652e0169b0aa7f6ead1bf230d5d67d00a38
|
| |
|
|
|
|
| |
if (rect) border is present
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
addShapeToRegion() impl to utilize OutlineShape -> GLRegion ctor w/ proper buffer-size
This way we avoid unnecessary buffer growth and allow creation of 'always' fitting buffer sizes.
+++
Update or freshly create the GLRegion, while allocating its buffers with given initial `vertexCount` and `indexCount`.
Method shall be invoked by the addShapeToRegion(GLProfile, GL2ES2) implementation before actually adding the OutlineShape to the GLRegion.
addShapeToRegion(GLProfile, GL2ES2) is capable to determine initial `vertexCount` and `indexCount` buffer sizes,
as it composes the OutlineShapes to be added.
updateGLRegion(GLProfile, GL2ES2, TextureSequence, OutlineShape) maybe used for convenience.
In case GLRegion is `null`, a new instance is being created.
In case the GLRegion already exists, it will be either cleared if the GL2ES2 `gl` instance is not `null`
or earmarked for deletion at a later time and a new instance is being created.
|
|
|
|
| |
(16) + Label-Text to avoid buffer grow
|
|
|
|
|
|
|
|
| |
rectangle or oval shape)
- Button + BaseButton setter also pass this for chaining
- Button {twoPassLabel->label}ZOffset, investigate whether z-offset still required (not if blending is enabled!)
-
|
|
|
|
| |
Padding and alignment (Margin?) (CSS alike)
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
instead of float[] and remove unused VectorUtil methods
After Matrix4f consolidation and proving same or better performance on non array types,
this enhances code readability, simplifies API, reduces bugs and may improve performance.
GraphUI:
- Have RoundButton as a functional class to make a round or rectangular backdrop,
i.e. impl. addShapeToRegion() via reused addRoundShapeToRegion()
|
|
|
|
|
|
|
| |
Shape.ZAscendingComparator
- fixes z-order issue, as we shall do same approach as in Scene.display()
- fixes mutated container issue if a Shape gets removed or added to original List
|
|
|
|
| |
removeShape(index) variant; Group.(add|remove)Shape(..) markShapeDirty() to recompute bbox and layout.
|
| |
|
|
|
|
| |
applicable, restructure screenshot(..) by using nextScreenshotFile(..) - all using default tech representation
|
|
|
|
| |
call. FontView stays open and issues a screenshot.
|
|
|
|
| |
shape to cell (like GlyphShape w/ underline)
|
| |
|
| |
|
|
|
|
| |
by Shape spec
|
|
|
|
|
|
|
|
|
|
| |
UISceneDemo20 with button Groups
All layout magic is simply performed in Group.Layout.layout(..) @ validate, incl. updating the
bounding box to have the padding included.
This demonstrates GraphUI's capability to be used with correct layout,
i.e. its pure matrix based position, scale and rotation.
|
|
|
|
| |
potential side-effects - fixing forSortedAll(..)
|
| |
|
| |
|
|
|
|
|
|
| |
1st visit Shape, only therafter (if false) traverse into Container
This is required to allow actions on a Container itself.
|
|
|
|
| |
before gluUnProjectRay(..)
|