aboutsummaryrefslogtreecommitdiffstats
path: root/src/demos/com/jogamp/opengl
Commit message (Collapse)AuthorAgeFilesLines
* GraphUI Layout Tests: Use blue for group border and black for shape border; ↵Sven Gothel2023-09-192-32/+70
| | | | UILayoutGrid01: Add Padding/Non-Padding comparison
* FontView01: Have all layout performed by our Box/Grid-Layout classes w/o ↵Sven Gothel2023-09-171-147/+259
| | | | | | | | manual calculus (the goal) In some cases we still query a previous added box for width or height though. But in general, using the Group w/ Box- or GridLayout and Fill/Center relieves us from manually scaling things.
* GraphUI BoxLayout: Margin is only ignored for center Alignment w/o Fill ↵Sven Gothel2023-09-161-2/+10
| | | | | | | | | | | | | | | | | | | | | 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
* GraphUI Layout: Fix BoxLayout scale, margin and padding; Add same padding ↵Sven Gothel2023-09-053-391/+640
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* FloatUtil.abs(a): Mark as deprecated, use Math.abs(a) directly. We assume it ↵Sven Gothel2023-09-042-2/+2
| | | | | | | | | | | | | | | | is an intrinsic + branch-less implementation Expected implementation is - return Float.intBitsToFloat(Float.floatToRawIntBits(a) & 0x7fffffff); replacing old implementation - return (a <= 0.0F) ? 0.0F - a : a; .. also market as @IntrinsicCandidate Hence we shall leave it to the JRE core-lib implementation...
* GraphUI: Button/Label: Complete String -> CharSequence type change for text, ↵Sven Gothel2023-09-047-18/+11
| | | | rename Button set{Label->Text}(..), adjust demo/text code
* GraphUI Scene: Generalize its interface PMVMatrixSetup and usage of its ↵Sven Gothel2023-09-039-190/+76
| | | | DefaultPMVMatrixSetup w/o orthogonal alike scale-back but fully parametric
* GraphUI Scene: Pass sampleCount in ctor variant and refine API doc, clip to ↵Sven Gothel2023-09-0310-20/+34
| | | | [1..8]; Add clarity in Region; Demos CommandlineOptions adds actual graphAASamples set and utilized
* GraphUI Demos: Proper use of CommandlineOptionsSven Gothel2023-09-024-34/+18
|
* Demos: CommandlineOptions: Add total_duration command line option '-duration ↵Sven Gothel2023-09-021-14/+19
| | | | <floar>' in seconds
* PMVMatrix.gluPerspective(): Redfine angle in radians instead of degrees ** ↵Sven Gothel2023-09-028-10/+13
| | | | | | | | 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
* GraphUI Demo: Rename UISceneDemoU01a -> UIGraphDemoU01a, not using GraphUI's ↵Sven Gothel2023-09-011-4/+24
| | | | Scene but manual GLEventListener etc, add a few Glyph tests
* GraphUI Demo FontView01: Fix '-showUnderline', i.e. glyphListener shall use ↵Sven Gothel2023-08-281-1/+1
| | | | the last element in container, the GlyphShape
* GraphUI Demo FontView01: Enhance usability and refactor: Add left-column ↵Sven Gothel2023-08-281-78/+206
| | | | | | | | | | | | | | | | | | | | glyphSymbol number, mouse-wheel scrolling, Fitting the font info, .. - Add mouse-wheel scrolling, for one-line and with control for one page. - Add left-column glyphSymbol number, for orientation while scrolling - Fitting the font info, i.e. consider width + height Refactoring further isolated the addGlyphs(..) functionality in same method, etc. Used to test Graph's capabilitry to properly read, detect and visualize certain fonts. Previous Graph fixes were triggered by this procedure, i.e. commits - 733cc5272cfed10fa07b707e29fd756f44581508 - 920e529516bb264f04138ed1caca80d4925e3773 - 7fd51917b0cc85c3dc3d07592093a62b213d1ea5 Further the proper detection of non-contour/whitespace allows FontView to skip them and only show usably Glyphs without noise.
* UISceneDemo03: Detail demo description, add blog entrySven Gothel2023-08-271-3/+7
|
* GraphUI Demo: UISceneDemo03: Add optional audio (only) via '-audio <URL or ↵Sven Gothel2023-08-271-4/+108
| | | | file-path>' using our GLMediaPlayer (FFmpeg + JOAL/OpenAL)
* GraphUI: Extract generalized AnimGroup functionality from UISceneDemo03*, ↵Sven Gothel2023-08-276-781/+524
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* Demos: Use Runnable lambda for window.destroy() off-thread and use ↵Sven Gothel2023-08-2310-57/+37
| | | | key-symbols F4, ESC and Q to trigger off-thread window.destroy()
* UISceneDemo03b: Add a little more customization ..Sven Gothel2023-08-191-6/+23
|
* Demos: ..demos.graph.ui.util.GraphUIDemoArgs -> ..demos.util.CommandlineOptionsSven Gothel2023-08-1316-34/+33
|
* GraphUIDemoArgs: Issue GLProfile.initSingleton() once in static init block, ↵Sven Gothel2023-08-131-0/+4
| | | | | | ensuring JOGL is completely initialized Noteable: On MacOS 13.1 (aarch64) UISceneDemo20 won't show the window if NEWT is initialized before JOGL core via GLProfile.initSingleton().
* UISceneDemo20: Fix info/debug text title GPUUISceneGLListener0A -> UISceneDemo20Sven Gothel2023-08-131-7/+8
|
* GraphUIDemoArgs: Add GL4 coreSven Gothel2023-08-131-0/+2
|
* Demos: Add main() to GearsES2, .. allowing to be used for simple bringup testsSven Gothel2023-08-133-12/+166
|
* Animator*: Add ctor variants passing modeBits directly, i.e. enable/disable ↵Sven Gothel2023-08-1326-29/+32
| | | | AWT rendering thread support. Adopt it in tests and demos
* Untangle joal from build requirements as introduced via new jogl-demosSven Gothel2023-08-073-6/+4
| | | | | | | | | | | | | | | | | | To enjoy the UISceneDemo20 demo, joal shall exist at its usual location. However, pass build if not available. Also drop ant + junit from demos. - Rename jogl-demo-android.{jar,apk} -> jogl-demos-android.{jar,apk} - New demo classpath - Add non-joal demo classpath - Add joal demo classpath. - Drop junit + ant from both - Remove joal from junit compile path. - Build test: demo compilation (Java + Android) - Drop joal dependencies if not available
* Graph / GraphUI Demos: Don't use the color-channel if not required (mixing ↵Sven Gothel2023-08-026-14/+17
| | | | | | | colors within one region) Note, commit bb6ee81bc5514663bb7b22224fcdd5ba34a51ac6 relaxes the requirement for using a color-channel.
* Graph: Simplify RegionRenderer API by exposing common RenderState methods ↵Sven Gothel2023-08-028-41/+39
| | | | (and fwd 'em to RenderState aggregate)
* UISceneDemoU01a: Destory textRegion @ disposeSven Gothel2023-08-011-0/+1
|
* Graph Add {GLRegion, GraphShape}.setTextureUnit(int): Allowing to set ↵Sven Gothel2023-08-011-8/+18
| | | | texture unit after ctor
* Graph RegionRendered.init(..): Disable renderer (and shader programs etc) to ↵Sven Gothel2023-08-011-4/+3
| | | | avoid side-effects. Usually called @ GLEventListener.init(..)
* Add Graph/GraphUI UISceneDemoU01a, showcase integration and multiple ↵Sven Gothel2023-08-011-0/+351
| | | | projection settings
* Graph: Minor cleanup: TextRegionUtil: Fix API doc references; ↵Sven Gothel2023-08-011-1/+0
| | | | RegionRenderer.enable(..) merge '!enable' branch, fix API doc
* GraphUI UISceneDemo20: Add OpenAL spatial 3D sound features: Add ↵Sven Gothel2023-05-231-5/+219
| | | | | | | | | | | SimpleSineSynth Button and have MediaButton to produce mono-only for 3D sound - Move SimpleSineSynth and MediaPlayer around for spatial 3D sound - Shape's center is the Source position - SimpleSineSynth controlls: - click to enable - scroll vertical -> frequency change - scroll vertical + ctrl-key -> volume/amplitude change
* MovieCube: Restart @ EOSSven Gothel2023-05-182-9/+18
|
* Common av classes (*AudioSink, ..) are promoted to gluegen (commit ↵Sven Gothel2023-05-171-1/+1
| | | | 270172bcbd91f96d4a38a3d73e23d744f57a25b8) and joal (commit 03f4bb63ce8a358b1c2ef303480e1887d72ecb2e)
* Fix MovieSimpleActivity1: Adjust to GLMediaPlayer API change (commit ↵Sven Gothel2023-05-151-11/+12
| | | | | | 9a7b9768e2e018a33ca44a170f372fee84c26a27) Was missing ..
* GLMediaPlayer: Replace GLMediaEventListener.EVENT_CHANGE_* 'int event_mask' ↵Sven Gothel2023-05-097-70/+59
| | | | with EventMask.Bit/EventMask
* GraphUI Working GridLayout w/ and w/o cell-size and alignment; Added BoxLayout.Sven Gothel2023-04-297-97/+698
|
* GraphUI GraphShape: Apply {update->reset}GLRegion()Sven Gothel2023-04-285-5/+5
| | | | See commit 386f9652e0169b0aa7f6ead1bf230d5d67d00a38
* GraphUI GraphShape: createGLRegion() -> updateGLRegion(), called by ↵Sven Gothel2023-04-207-16/+35
| | | | | | | | | | | | | | | | | | | | | | 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.
* Graph GLRegion/TextRegionUtil: Enhance pre-determination of buffer-size, ↵Sven Gothel2023-04-207-17/+15
| | | | | | | | | | increase default initial 16->64 (unsued) - Region.countOutlineShape(..) now returns unpatched 3*triangle value for indices, avoiding grow - TextRegionUtil.addStringToRegion() uses countStringRegion(..) per default - Added GLRegion.create(.., OutlineShape) for convenience, using Region.countOutlineShape(..) - Refined API doc -
* Graph OutlineShape.get{Outline->}VectexCount() renamedSven Gothel2023-04-201-1/+1
|
* GraphUI {Round->Base}Button, denoting perpendicular or round corners (aka ↵Sven Gothel2023-04-192-12/+12
| | | | | | | | 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!) -
* GraphUI: Add BoxLayout and Margin, todo: Have GridLayout properly use Gap w/ ↵Sven Gothel2023-04-181-0/+225
| | | | Padding and alignment (Margin?) (CSS alike)
* GraphUI Padding: Use CSS alike ctor semantics, hence swizzle ctor argumentsSven Gothel2023-04-183-48/+5
|
* Graph + GraphUI: Consolidate Vertex: Drop SVertex and factory, use Vec[234]f ↵Sven Gothel2023-04-1811-14/+15
| | | | | | | | | | | 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()
* GraphUI Demos: Move GraphUIDemoArgs to sub-package utilSven Gothel2023-04-189-2/+9
|
* GraphUI Demo FontView01: Add font-name and selected glyphID to screenshot ↵Sven Gothel2023-04-141-4/+8
| | | | filename (documentation)
* GraphUI Demo FontView01: Add screenshot per selected GlyphSven Gothel2023-04-141-6/+9
|