summaryrefslogtreecommitdiffstats
path: root/src/demos
Commit message (Collapse)AuthorAgeFilesLines
* GraphUI: Fix Scene.PMVMatrixSetup impl: Setup modelview before using ↵Sven Gothel2023-03-212-4/+8
| | | | setPlanBox(..)'s gluUnProject(..)
* GraphUI UISceneDemo20: Consolidate the actual implementation and main ↵Sven Gothel2023-03-214-229/+197
| | | | launcher to our new UISceneDemo naming series
* GraphUI UISceneDemo*: Stop animation loop if window got destroyedSven Gothel2023-03-212-4/+4
|
* GraphUI UISceneDemo*: Add windowResized() callback to update window title ↵Sven Gothel2023-03-213-5/+12
| | | | showing current surfaceSize
* GraphUI UISceneDemo*: Use lambdas for GLAutoDrawable.invoke(..) to reduce LOCSven Gothel2023-03-212-12/+6
| | | | GLAutoDrawable.invoke(..) API doc: Add semantics about GLRunnable return value.
* Graph: Cleanup Vertex.Factory referencing: Only bind to OutlineShape and use ↵Sven Gothel2023-03-2116-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 Gothel2023-03-205-40/+0
| | | | destroyImpl()
* Rename UISceneDemo{02->10}Sven Gothel2023-03-201-2/+2
|
* GraphUI Demos: Bring back GPUUISceneGLListener0A ..Sven Gothel2023-03-201-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 Gothel2023-03-201-22/+22
| | | | toggled off
* UISceneDemo02: The 'dirty' variant w/ listener (printf) attachedSven Gothel2023-03-201-250/+85
|
* UISceneDemo01: Use GLButton shape w/ animating and rotating gears and set up ↵Sven Gothel2023-03-201-180/+150
| | | | an own Scene.PMVMatrixSetup with a plane dimension of 100
* GraphUI Default Scene.PMVMatrixSetup: Scale (back) projection to have ↵Sven Gothel2023-03-201-4/+21
| | | | normalized plane dimensions, 1 for the greater of width and height
* Demos GearsES2: Expose view rotation vars and listenerSven Gothel2023-03-201-1/+14
|
* Demo MovieSimple: Default to useOrigScale=false, enable @ main w/ -orig_scaleSven Gothel2023-03-191-4/+4
|
* GraphUI: Add UISceneDemo00 for linear animation in one main function; ↵Sven Gothel2023-03-192-46/+192
| | | | UISceneDemo01 simply provides shape drag-move and -resize
* GraphUI Shape win<->obj/shape mapping: Return actual int[] or float[] result ↵Sven Gothel2023-03-194-75/+47
| | | | or null on error instead of boolean to easy API usage
* GraphUI UISceneDemo01: Fix disposal, use windowDestroyed() WindowListener to ↵Sven Gothel2023-03-191-2/+1
| | | | stop animator
* GraphUI UISceneDemo01: Res independent Shape, in Scene attached to GLWindow ↵Sven Gothel2023-03-191-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 Gothel2023-03-197-265/+675
| | | | clean)
* Graph UI: Adopt Shape implementations to Shape API changes (simplification)Sven Gothel2023-03-195-10/+10
|
* Fix MovieSimple regression of commit ↵Sven Gothel2023-03-194-5/+19
| | | | 00dbacc5af3531af50e77a02d534dc11e08de10f, 913b00f8b876e29af91677ef61b3eb35d6853e6e
* Graph: Make RenderState a composition of RegionRenderer, which also creates ↵Sven Gothel2023-03-1510-62/+40
| | | | and destroys it. Dropping this also from user (complexity).
* Demos: Minor cleanups; MovieSimple: Remove unused variables etc .. left over ↵Sven Gothel2023-03-154-23/+2
| | | | from transition to use TextureSequenceES2
* GraphUI: Scene/Shape: Decouple PMVMatrix operations (picking, obj<->win) by ↵Sven Gothel2023-03-154-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 UISceneDemo01Sven Gothel2023-03-151-14/+6
|
* GLMediaPlayer usage: Fix verbose strings, disable verbose in GraphUI demosSven Gothel2023-03-153-4/+4
|
* GraphUI: Rename UISceneDemo00 -> UISceneDemo01Sven Gothel2023-03-151-0/+0
|
* Graph: Have RegionRenderer.reshapeNotify(..) track x/y as well (vieport); ↵Sven Gothel2023-03-143-19/+18
| | | | GraphUI.Scene using RegionRenderer's viewport (no duplicate)
* GraphUI: Add a most simple Scene demo with one Shape.Sven Gothel2023-03-141-0/+358
|
* GPUUISceneGLListener0A: Simplify according to Scene class changes ↵Sven Gothel2023-03-142-129/+76
| | | | (view-based in model-space), have Scene manage resources in full.
* GraphUI: UIShapeDemo01.reshape(): Drop redundant glViewport(..) callSven Gothel2023-03-141-1/+0
|
* GraphUI: GLButton: Don't pass FBO size @ ctor, calculate true view-size @ ↵Sven Gothel2023-03-141-2/+1
| | | | 1st draw
* TextureSequence (API Change): Use setTextureLookupFunctionName(..) ↵Sven Gothel2023-03-143-3/+3
| | | | explicitly to set the name upfront, clarifying workflow. Impl: ImageSequence + GLMediaPlayerImpl
* GLMediaPlayer: Overhaul and simplify states, allow usage before stream ready ↵Sven Gothel2023-03-1313-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 fontsSven Gothel2023-03-111-10/+0
|
* Demos: Remove unused fontsSven Gothel2023-03-119-0/+0
|
* Cleanup Demos: Move demos to jogl-demos.jar (here Graph + AudioVideo), ready ↵Sven Gothel2023-03-1172-6/+13997
| | | | for easy deployment and test w/ junit/ant
* GLArrayData: Promote sealed() from GLArrayDataEditable, to correctly being ↵Sven Gothel2023-03-071-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()
* GLArrayData*: Shorten methods (*API Change*), use proper constructor and ↵Sven Gothel2023-02-241-1/+1
| | | | | | | | | | | | | finalize immutables, add growthFactor (default golden ratio 1.618), add getCapacity*() and printStats(..) The growthFactor becomes essential for better growth behavior and can be set via setGrowthFactor(). The other changes were merely to clean up the GLArrayData interface and its 4 implementations. Not great to change its API, but one name was misleading ['getComponentCount' -> 'getCompsPerEleme'], so overall .. readability is enhanced. Motivation for this change was the performance analysis and improvement of our Graph Curve Renderer.
* Bug 1406, Bug 1405: demos.Launcher0: Defaults to use multiple PointerIcons againSven Gothel2019-12-051-4/+4
| | | | launch script test-demo-launcher0.sh: Tested with '-Xcheck:jni'
* Bug 1406, Bug 1405: demos.Launcher0: Allow passing GLEventListener via ↵Sven Gothel2019-12-051-14/+34
| | | | '-demo classname'
* Bug 1406, Bug 1405: demos.Launcher0: No sleep w/o animator. VSYNC setting ↵Sven Gothel2019-12-041-1/+0
| | | | rules (launch script w/ key tracker)
* Bug 1406: demos.Launcher0: More code path reduction: useMultiplePointerIcon ↵Sven Gothel2019-12-041-4/+9
| | | | must be enabled via -pointerIcon
* Bug 1406: demos.Launcher0: More tests ..Sven Gothel2019-12-042-76/+14
| | | | | | | | | | | | Misc: - Remove unused SysExit.. - showFPS=true default - allow setting 'useDoubleBuffer' via '-single' - demos.es2.GearsES2: Don't be verbose on display even w/o animator IF '-noanim', issue glWindow.display() from main thread instead of using the animator thread otherwise. This shall test the swap buffering code in single threaded mode!
* Bug 1405: Provide stand alone demo launcher reducing complexitySven Gothel2019-12-042-0/+743
| | | | The launcher script also allows inflating classes and native libs to test impact on Raspberry Pi 3 Model B+.
* NEWT iOS: Support translucent windowsSven Gothel2019-07-082-1/+5
| | | | | | | and remove the redColor default background (debug only). IOSUtil.CreateUIWindow(..) also gets its 'visible' attribute, to be true only for demo Hello1 code - false for intended Proxy Surface Hook.
* NEWT iOS: Support Multi-Touch Events, PixelScale, ..Sven Gothel2019-07-082-50/+321
| | | | | | | | | | | | | | | | | Note: Two subsequent commit will add some required change in the native UIWindow/UIView creation methods to actually make the NEWT view being displayed ;-) The demo 'com.jogamp.opengl.demos.ios.Hello' demonstrated a standard NEWT application running on iOS. Previous NativeWindow wrap-around demo is preserved in 'com.jogamp.opengl.demos.ios.Hello1'. Tested on ipad 11'inch arm64 and x86_64 simulation: - Using GearsES2 demo - PixelScale 1f, 2f and 0f - last two using max pixel scale - Touch w/ GearsES2 works: -- 1 finger rotate -- 2 finger drag -- 2 finger pinch-zoom gesture detection
* iOS: Clean up promotion of EAGLLayer use down to FBObjectSven Gothel2019-06-241-8/+16
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Initial commit bba73bc096250a3c7fc036d84b1ea054d1b70b06 hacked its path using a context global EGLLayer instance attachement. The hack was good for the first demo, however, it forbid using other FBObjects etc on the way. Properly specifying FBObject.Attachment.StorageDefinition, allowing the user to inject code for selected FBO attachements to define their storage. This might be useful for different platforms as well - however, it is OS agnostic and instance specific now. In this sense, GLFBODrawableImpl, hosting FBObject, has a more specific instance of FBObject.Attachment.StorageDefinition for color-renderbuffer. It is passed along newly created color renderbuffer. GLDrawableFactoryImpl.createGLDrawable uses a derived interface, OnscreenFBOColorbufferStorageDefinition which is defined in IOSEAGLDrawableFactory and return by its getter. GLDrawableFactoryImpl.createGLDrawable is therefor platform agnostic again. Bottom line is, as more platforms will be added, these semi-public interfaces have to adapt to suit them all .. All this due to iOS architecture for 'onscreen rendering' using a FBO which shares its color renderbuffer storage with the EAGLLayer, associated with the UIView. A bit weird maybe in first sight, but efficient for creating cheap hardware design ;-) Only criticism here is that Apple didn't bother using EGL and an extension.
* iOS: Initial working commit supporting iOS (ipad pro 11)Sven Gothel2019-06-2334-0/+3690
using our OpenJFK 9 x86_64 and arm64 build. Test demo class is 'com.jogamp.opengl.demos.ios.Hello', residing in the new demo folder 'src/demos/com/jogamp/opengl/demos/ios/Hello.java'. This commit does not yet include a working NEWT specialization for iOS, but it shall followup soon. Instead this commit demonstrates JOGL operating on native UIWindow, UIView and CAEAGLLayer as provided by Nativewindow's IOSUtil. Test Video https://www.youtube.com/watch?v=Z4lUQNFTGMI +++ Notable bug: The FBO used and sharing the COLORBUFFER RENDERBUFFER memory resources with CAEAGLLayer to be displayed in the UIView seemingly cannot handle GL_DEPTH_COMPONENT16, GL_DEPTH_COMPONENT24 or GL_DEPTH_COMPONENT32 depth buffer - none at all (Device + Simulation). Therefor the default demo GLEventListener chosen here don't require a depth buffer ;-) This issue can hopefully be mitigated with other means than using a flat FBO sink similar to FBO multisampling.