Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | GraphUI: Add GlyphShape representing a single Font.Glyph as a GraphShape; ↵ | Sven Gothel | 2023-03-30 | 2 | -111/+198 |
| | | | | | | | | | | | | | | | | | | Use w/ UISceneDemo03 Type Animation... A list of GlyphShape can be created via GlyphShape.processString(..), which preserves all details incl. intended original unscaled position and its kerning. Whitespace or contourless Glyphs are dropped. A GlyphShape is represented in font em-size [0..1] unscaled. +++ UISceneDemo03 Type Animation - Using GlyphShape and apply scaling via its Shape.setScale() - Recalc fontScale per used text - Refined 'arrival' criteria and smoothing out near target w/ speed-up rotation - Using GraphUIDemoArgs to parse common commandline demo options | ||||
* | GraphUI Demo UISceneDemo03: Add kerning and compensate on label 0/0 origin ↵ | Sven Gothel | 2023-03-28 | 1 | -8/+22 |
| | | | | using Glyph bounds minY() | ||||
* | GraphUI Demo UISceneDemo02: Use em-sized label w/ scale. | Sven Gothel | 2023-03-28 | 1 | -8/+8 |
| | |||||
* | GraphUI: Decouple GraphShape from Shape, i.e. allow future Shape w/o ↵ | Sven Gothel | 2023-03-28 | 6 | -91/+99 |
| | | | | Graph/GLRegion | ||||
* | GraphUI Demos: Remove unused GPUUISceneTextAnim01 | Sven Gothel | 2023-03-28 | 1 | -303/+0 |
| | |||||
* | Graph FontScale: Simplify names, fix API doc and add unit test | Sven Gothel | 2023-03-28 | 4 | -4/+4 |
| | |||||
* | Graph Font: Rename getBBox*() -> getBounds*() to preserve a common semantic name | Sven Gothel | 2023-03-27 | 1 | -1/+1 |
| | |||||
* | GraphUI Demos: (Text) Type Animation ... | Sven Gothel | 2023-03-22 | 2 | -0/+697 |
| | |||||
* | UISceneDemo0[01]: Useless minor editing (can't move animator lower as sadly ↵ | Sven Gothel | 2023-03-22 | 2 | -2/+1 |
| | | | | used in our window dtor event handler) | ||||
* | Graph Font Processing: Use Font.GlyphVisitor instead of ↵ | Sven Gothel | 2023-03-22 | 1 | -4/+4 |
| | | | | OutlineShape.Visitor, allowing to use the Glyph (information). | ||||
* | GraphUI Demos: Adopt to shapesSharpness -> oshapesSharpness rename | Sven Gothel | 2023-03-22 | 7 | -7/+7 |
| | |||||
* | GraphUI: Fix Scene.PMVMatrixSetup impl: Setup modelview before using ↵ | Sven Gothel | 2023-03-21 | 2 | -4/+8 |
| | | | | setPlanBox(..)'s gluUnProject(..) | ||||
* | GraphUI UISceneDemo20: Consolidate the actual implementation and main ↵ | Sven Gothel | 2023-03-21 | 4 | -229/+197 |
| | | | | launcher to our new UISceneDemo naming series | ||||
* | GraphUI UISceneDemo*: Stop animation loop if window got destroyed | Sven Gothel | 2023-03-21 | 2 | -4/+4 |
| | |||||
* | GraphUI UISceneDemo*: Add windowResized() callback to update window title ↵ | Sven Gothel | 2023-03-21 | 3 | -5/+12 |
| | | | | showing current surfaceSize | ||||
* | GraphUI UISceneDemo*: Use lambdas for GLAutoDrawable.invoke(..) to reduce LOC | Sven Gothel | 2023-03-21 | 2 | -12/+6 |
| | | | | GLAutoDrawable.invoke(..) API doc: Add semantics about GLRunnable return value. | ||||
* | Graph: Cleanup Vertex.Factory referencing: Only bind to OutlineShape and use ↵ | Sven Gothel | 2023-03-21 | 16 | -101/+73 |
| | | | | | | | its default. GraphUI: Always use default. Graph RegionRenderer, its RenderState as well as GraphUI's Scene don't need to have knowledge of Vertex.Factory, which is only used within OutlineShape and its 'inner geom workings'. | ||||
* | GraphUI Shape: Provide empty default implementation for clearImpl() and ↵ | Sven Gothel | 2023-03-20 | 5 | -40/+0 |
| | | | | destroyImpl() | ||||
* | Rename UISceneDemo{02->10} | Sven Gothel | 2023-03-20 | 1 | -2/+2 |
| | |||||
* | GraphUI Demos: Bring back GPUUISceneGLListener0A .. | Sven Gothel | 2023-03-20 | 1 | -71/+104 |
| | | | | | | | | | | | | | | | | | | | | - Contrary to UISceneDemo0[01], here we - Call the Scene GLEventListener methods manually - Issue glClear* ourselves - Using own PMVMatrixSetup - gluPerspective like Scene's default - no normal scale to 1, keep distance to near plane for rotation effects. We scale Shapes - translate origin to bottom-left - Scale Button not by screen-size but Scene.getBounds() dimension, hence issue setupUI() from reshape() and not from init() - GLButton: Using additional view-rotation like UISceneDemo01 - Multi-line text labels resize issues are - Supposed sticky-edge is moving (Sticky-edge are the opposites of the picked drag point) | ||||
* | GraphUI UISceneDemo01: Stop rotating animation if GLButton animation is ↵ | Sven Gothel | 2023-03-20 | 1 | -22/+22 |
| | | | | toggled off | ||||
* | UISceneDemo02: The 'dirty' variant w/ listener (printf) attached | Sven Gothel | 2023-03-20 | 1 | -250/+85 |
| | |||||
* | UISceneDemo01: Use GLButton shape w/ animating and rotating gears and set up ↵ | Sven Gothel | 2023-03-20 | 1 | -180/+150 |
| | | | | an own Scene.PMVMatrixSetup with a plane dimension of 100 | ||||
* | GraphUI Default Scene.PMVMatrixSetup: Scale (back) projection to have ↵ | Sven Gothel | 2023-03-20 | 1 | -4/+21 |
| | | | | normalized plane dimensions, 1 for the greater of width and height | ||||
* | Demos GearsES2: Expose view rotation vars and listener | Sven Gothel | 2023-03-20 | 1 | -1/+14 |
| | |||||
* | Demo MovieSimple: Default to useOrigScale=false, enable @ main w/ -orig_scale | Sven Gothel | 2023-03-19 | 1 | -4/+4 |
| | |||||
* | GraphUI: Add UISceneDemo00 for linear animation in one main function; ↵ | Sven Gothel | 2023-03-19 | 2 | -46/+192 |
| | | | | UISceneDemo01 simply provides shape drag-move and -resize | ||||
* | GraphUI Shape win<->obj/shape mapping: Return actual int[] or float[] result ↵ | Sven Gothel | 2023-03-19 | 4 | -75/+47 |
| | | | | or null on error instead of boolean to easy API usage | ||||
* | GraphUI UISceneDemo01: Fix disposal, use windowDestroyed() WindowListener to ↵ | Sven Gothel | 2023-03-19 | 1 | -2/+1 |
| | | | | stop animator | ||||
* | GraphUI UISceneDemo01: Res independent Shape, in Scene attached to GLWindow ↵ | Sven Gothel | 2023-03-19 | 1 | -19/+14 |
| | | | | showing simple linear Shape movement w/ listener attached | ||||
* | Graph UI: Apply API changes to demos *WIP* (not all working yet, but compile ↵ | Sven Gothel | 2023-03-19 | 7 | -265/+675 |
| | | | | clean) | ||||
* | Graph UI: Adopt Shape implementations to Shape API changes (simplification) | Sven Gothel | 2023-03-19 | 5 | -10/+10 |
| | |||||
* | Fix MovieSimple regression of commit ↵ | Sven Gothel | 2023-03-19 | 4 | -5/+19 |
| | | | | 00dbacc5af3531af50e77a02d534dc11e08de10f, 913b00f8b876e29af91677ef61b3eb35d6853e6e | ||||
* | Graph: Make RenderState a composition of RegionRenderer, which also creates ↵ | Sven Gothel | 2023-03-15 | 10 | -62/+40 |
| | | | | and destroys it. Dropping this also from user (complexity). | ||||
* | Demos: Minor cleanups; MovieSimple: Remove unused variables etc .. left over ↵ | Sven Gothel | 2023-03-15 | 4 | -23/+2 |
| | | | | from transition to use TextureSequenceES2 | ||||
* | GraphUI: Scene/Shape: Decouple PMVMatrix operations (picking, obj<->win) by ↵ | Sven Gothel | 2023-03-15 | 4 | -73/+71 |
| | | | | | | | | using a local instance, enable performing on any thread (not using a blocking GL renderer thread) Shape got 2 win<->obj and size-retrieval variants: (a) using given PMVMatrix and viewport (b) using a local PMVMatrix w/ Scene's viewport and using Scene's setupMatrix() | ||||
* | GraphUI: Complete rename of UISceneDemo01 | Sven Gothel | 2023-03-15 | 1 | -14/+6 |
| | |||||
* | GLMediaPlayer usage: Fix verbose strings, disable verbose in GraphUI demos | Sven Gothel | 2023-03-15 | 3 | -4/+4 |
| | |||||
* | GraphUI: Rename UISceneDemo00 -> UISceneDemo01 | Sven Gothel | 2023-03-15 | 1 | -0/+0 |
| | |||||
* | Graph: Have RegionRenderer.reshapeNotify(..) track x/y as well (vieport); ↵ | Sven Gothel | 2023-03-14 | 3 | -19/+18 |
| | | | | GraphUI.Scene using RegionRenderer's viewport (no duplicate) | ||||
* | GraphUI: Add a most simple Scene demo with one Shape. | Sven Gothel | 2023-03-14 | 1 | -0/+358 |
| | |||||
* | GPUUISceneGLListener0A: Simplify according to Scene class changes ↵ | Sven Gothel | 2023-03-14 | 2 | -129/+76 |
| | | | | (view-based in model-space), have Scene manage resources in full. | ||||
* | GraphUI: UIShapeDemo01.reshape(): Drop redundant glViewport(..) call | Sven Gothel | 2023-03-14 | 1 | -1/+0 |
| | |||||
* | GraphUI: GLButton: Don't pass FBO size @ ctor, calculate true view-size @ ↵ | Sven Gothel | 2023-03-14 | 1 | -2/+1 |
| | | | | 1st draw | ||||
* | TextureSequence (API Change): Use setTextureLookupFunctionName(..) ↵ | Sven Gothel | 2023-03-14 | 3 | -3/+3 |
| | | | | explicitly to set the name upfront, clarifying workflow. Impl: ImageSequence + GLMediaPlayerImpl | ||||
* | GLMediaPlayer: Overhaul and simplify states, allow usage before stream ready ↵ | Sven Gothel | 2023-03-13 | 13 | -472/+576 |
| | | | | | | | | | | | | | | | showing test-texture. Adding stop(); (API Change) - allow multiple initGL(..) @ uninitialized and initialized - allows usage before stream is ready - using a test-texture @ uninitialized - adding stop() API change - initStream() -> playStream() - play() -> resume() FFMPEG: Added 'ready' check for robustness | ||||
* | Demos: FontSetDemos: Remove remove fonts | Sven Gothel | 2023-03-11 | 1 | -10/+0 |
| | |||||
* | Demos: Remove unused fonts | Sven Gothel | 2023-03-11 | 9 | -0/+0 |
| | |||||
* | Cleanup Demos: Move demos to jogl-demos.jar (here Graph + AudioVideo), ready ↵ | Sven Gothel | 2023-03-11 | 72 | -6/+13997 |
| | | | | for easy deployment and test w/ junit/ant | ||||
* | GLArrayData: Promote sealed() from GLArrayDataEditable, to correctly being ↵ | Sven Gothel | 2023-03-07 | 1 | -1/+1 |
| | | | | | | | | | | | | | | | | | | | | | | | used for getElemCount() instead of 0==position, ... (API change) API Change - sealed() moved up from GLArrayDataEditable -> GLArrayData - GLArrayDataWrapper is sealed by default - getSizeInBytes() -> getByteCount() - Semantics of getElemCount() and getByteCount() - Correctly use sealed() to switch from position to limit - instead of 0==position Aligned method names: - getElemCount() - elemPosition() - remainingElems() - getElemCapacity() to corresponding byte counts: - getByteCount() - bytePosition() - remainingBytes() - getByteCapacity() |