summaryrefslogtreecommitdiffstats
path: root/src/graphui
Commit message (Collapse)AuthorAgeFilesLines
* GraphUI Shape: Make access private where possible & reasonable, synchronize ↵Sven Gothel2023-03-226-42/+55
| | | | dirty and in draw(..) the whole dirty-validate() region.draw()
* GraphUI Scene: getStatusText(..) drop unset values, be more semantic ↵Sven Gothel2023-03-221-5/+19
| | | | sensitive (msaa -> smsaa)
* GraphUI Scene: Add removeShape*(GL2ES2..) variant w/ their destruction for ↵Sven Gothel2023-03-221-4/+18
| | | | convenience
* GraphUI Scene: Add optional frustum culling (default: disabled)Sven Gothel2023-03-221-13/+23
|
* GraphUI Shape.setTransform(): Remove 'wiggling' w/ origin, text issue came ↵Sven Gothel2023-03-211-12/+4
| | | | | | from Scene.PMVMatrixSetup bug, all shapes resize fine now. Scene.PMVMatrixSetup bug missed modelview initialition before gluUnProject(), fixed in commit 74e11bd9a49f61e49d3c73c4f9b87b4fb7fbaaf3.
* GraphUI: Fix Scene.PMVMatrixSetup impl: Setup modelview before using ↵Sven Gothel2023-03-211-2/+4
| | | | setPlanBox(..)'s gluUnProject(..)
* GraphUI Scene: Move reshape() below init from in-between display() implsSven Gothel2023-03-211-19/+19
|
* Graph: Cleanup Vertex.Factory referencing: Only bind to OutlineShape and use ↵Sven Gothel2023-03-2111-66/+36
| | | | | | | 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/Label: Allow validate(..) w/o current GL context, used by e.g. ↵Sven Gothel2023-03-202-13/+76
| | | | | | Label.setText(..) and getBounds(), preparations for more animation. Hence Shape.validate(..) is now synchronized, avoiding parallel resource modding from render- and other animating thread.
* GraphUI Shape: Provide empty default implementation for clearImpl() and ↵Sven Gothel2023-03-205-34/+4
| | | | destroyImpl()
* GraphUI Scene: Add getDefaultVertexFactory(), fix getRenderState() API doc ↵Sven Gothel2023-03-201-2/+6
| | | | (can't be null)
* GraphUI Label: Fix naming semantics: 'pixelScale' -> 'fontScale', i.e. ↵Sven Gothel2023-03-201-13/+33
| | | | font-scale factor, by which the em-sized type glyphs shall be scaled
* GraphUI Scene: Add [add|remove]Shapes(Collection) .. for convenienceSven Gothel2023-03-201-0/+7
|
* GraphUI Shape.setTransform(): Fix center semantics (half size) and consider ↵Sven Gothel2023-03-201-3/+18
| | | | origin (resolves multi-line text resize issues)
* GraphUI Scene: Move GLEventListener implementations reshape() and dispose() ↵Sven Gothel2023-03-201-48/+48
| | | | to the others, init(), display(). Ease review.
* GraphUI MediaButton: Only mark region dirty if already existsSven Gothel2023-03-201-1/+3
|
* GraphUI Default Scene.PMVMatrixSetup: Scale (back) projection to have ↵Sven Gothel2023-03-201-12/+38
| | | | normalized plane dimensions, 1 for the greater of width and height
* GraphUI Scene: Be quietSven Gothel2023-03-201-2/+0
|
* GraphUI GLButton: Add missing destroyImpl(..) to destroy the ImageSequence ↵Sven Gothel2023-03-201-0/+6
| | | | and FBO-GLAD
* GraphUI: Add UISceneDemo00 for linear animation in one main function; ↵Sven Gothel2023-03-191-0/+67
| | | | UISceneDemo01 simply provides shape drag-move and -resize
* GraphUI Shape win<->obj/shape mapping: Return actual int[] or float[] result ↵Sven Gothel2023-03-194-45/+105
| | | | or null on error instead of boolean to easy API usage
* Graph UI Shape: Remove debug println @ mouse drag releaseSven Gothel2023-03-191-1/+0
|
* Graph UI: Apply API changes to demos *WIP* (not all working yet, but compile ↵Sven Gothel2023-03-191-1/+1
| | | | clean)
* Graph UI: Adopt Shape implementations to Shape API changes (simplification)Sven Gothel2023-03-199-34/+28
|
* Graph UI Shape: Fix move and resize via 1-pointer mouse drag: Need to apply ↵Sven Gothel2023-03-191-32/+33
| | | | | | scale on drag-delta, operating on scaled-model-viewpoint Further, on resize, we have different sticky edges for either bottom-right or bottom-left drag resize.
* Graph UI Shape: Fix setTransform(): Take back unscaled-center 1st, then add ↵Sven Gothel2023-03-191-2/+4
| | | | back later (scaled); TODO: Add alignment features
* Graph Shape: Add onMove(Shape.Listener), allowing user to track Shape movementSven Gothel2023-03-191-2/+15
|
* Add Scene.PMVMatrixSetup for programmable PMVMatrix setup in Scene replacing ↵Sven Gothel2023-03-192-280/+301
| | | | | | | | | | | | | | | | | | | fixed projection params; Simplify API requirements .. Scene: - Add Scene.PMVMatrixSetup and use it throughout Scene/Shape for reshape(), setupMatrix() and Shape's win<->obj coordinate mappings. - Default Scene.PMVMatrixSetup is no more moving origin to bottom-left, kept at screen-center. - Add waitUntilDisplayer(), allowing to wait until 1st display is completed, ensuring certain states are well set (init, reshape and 1st display on Shapes, plane-box, ..) Shape: - Rename setPosition() -> moveTo() - Add getBounds(GLProfile) to retrieve AABBox before rendering, - Enhance validateImpl(..) to allow this mode @ initial validation (only)
* Graph Scene: RegionRenderer is owned and never nullSven Gothel2023-03-191-18/+6
|
* Graph Shape: Add missing drawGLSelect(..)Sven Gothel2023-03-191-0/+5
|
* Graph Shape: Mark methods final and enhance API docSven Gothel2023-03-191-28/+55
|
* Graph Scene: Customize clearColor + clearMask used @ display(..), i.e. ↵Sven Gothel2023-03-191-3/+35
| | | | either use custom setting or avoid it at all for seamless client renderer integration
* Graph: Scene: Add experimental pickShapeGL(..), i.e. glSelect (Not working ↵Sven Gothel2023-03-191-10/+117
| | | | correctly with all renderModes yet, inactive; Not good on text)
* Graph: Make RenderState a composition of RegionRenderer, which also creates ↵Sven Gothel2023-03-151-2/+1
| | | | and destroys it. Dropping this also from user (complexity).
* GraphUI: Scene/Shape: Decouple PMVMatrix operations (picking, obj<->win) by ↵Sven Gothel2023-03-153-111/+149
| | | | | | | | 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()
* GLMediaPlayer usage: Fix verbose strings, disable verbose in GraphUI demosSven Gothel2023-03-151-2/+2
|
* Graph: Have RegionRenderer.reshapeNotify(..) track x/y as well (vieport); ↵Sven Gothel2023-03-142-55/+121
| | | | GraphUI.Scene using RegionRenderer's viewport (no duplicate)
* GraphUI: Label: Rename pixelSize -> pixelScale, since we are view-based or ↵Sven Gothel2023-03-141-9/+10
| | | | in model-space.
* GraphUI: MediaButton: No need to re-create GLRegion (anymore), just ↵Sven Gothel2023-03-141-5/+1
| | | | markShapeDirty() to force reupload of texture-coordinates; Also don't mute audio, user shall configure the GLMediaPlayer...
* GraphUI: Button: Allow user to configure 2-pass label z-offsetSven Gothel2023-03-141-2/+10
|
* GraphUI: GLButton: Don't pass FBO size @ ctor, calculate true view-size @ ↵Sven Gothel2023-03-141-4/+11
| | | | 1st draw
* GraphUI: Scene: Add simplified ctor w/ user defined zNear, zFar and ↵Sven Gothel2023-03-142-54/+191
| | | | sceneDistance; Expose the scene-plane AABBox and add surfaceToObjSize() to compute surface-size in object coords.
* GraphUI: MediaButton: Adapt GLMediaPlayer changes: Ready right away and ↵Sven Gothel2023-03-131-9/+12
| | | | reset on Init: GLMediaPlayer.initGL() + recreate GLRegion
* GraphUI: Cleanup 1-pointer zoom, add generic PinchToZoom-Gesture for ↵Sven Gothel2023-03-132-48/+88
| | | | 2-pointer zoom; Scene: Align method names..
* GraphUI: Use pre-calc'ing buffer sizes for Label shapeSven Gothel2023-03-131-0/+7
|
* GLMediaPlayer: Overhaul and simplify states, allow usage before stream ready ↵Sven Gothel2023-03-131-2/+2
| | | | | | | | | | | | | | | 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
* GraphUI: Shape: Add build-in resize w/ 1-pointer-click and drag in 1/4th ↵Sven Gothel2023-03-112-45/+121
| | | | bottom-left or bottom-right corner. Rename translate -> position.
* GraphUI: Add package.html (dummy)Sven Gothel2023-03-101-0/+33
|
* GraphUI: Promote API to JOGL via graphui.jar or within any jogl-all*.jar (WIP)Sven Gothel2023-03-1012-0/+2671
Root package is 'com.jogamp.graph.ui.gl', i.e. a sub-package of Graph denoting UI and OpenGL usage. Implementation will stay small, hence relative files size costs are minimal. Source and build is in parallel to nativewindow, jogl and newt and has a dependency to all of them. The NEWT dependencies are merely the input listener ..