aboutsummaryrefslogtreecommitdiffstats
path: root/src/jogl
Commit message (Collapse)AuthorAgeFilesLines
* Bug 1452: PMVMatrix4f: Drop redundant unused mulWith*(Vec*...) 'v_out = M * ↵Sven Gothel2023-09-231-102/+0
| | | | v_in', user can simply get the desired matrix and apply its mulVec*(..) operation
* GLMediaPlayerImpl: Replace StreamWorker thread management with GlueGen's new ↵Sven Gothel2023-09-221-222/+97
| | | | WorkerThread, helping to simplify code
* Bug 1452 - Decouple math functionality to 'com.jogamp.math' to be toolkit ↵Sven Gothel2023-09-2080-1440/+2571
| | | | | | | | | | | | | | | | | | | | agnostic (PMVMatrix, Matrix4f, Vec4f, ..) Math functionality (PMVMatrix, Matrix4f, Vec4f, ..) - shall be used toolkit agnostic, e.g. independent from OpenGL - shall be reused within our upcoming Vulkan implementation - may also move outside of JOGL, i.e. GlueGen or within its own package to be reused for other purposed. The 'com.jogamp.opengl.util.PMVMatrix' currently also used to feed in GLUniformData via the toolkit agnostic SyncAction and SyncBuffer shall also be split to a toolkit agnostic variant. An OpenGL PMVMatrix specialization implementing GLMatrixFunc can still exist, being derived from the toolkit agnostic base implementation. +++ Initial commit .. compile clean, passing most unit tests.
* Debug.debugExplicit(): Define and use explicit symbol debug flag; Use it for ↵Sven Gothel2023-09-168-12/+25
| | | | certain debug output to keep most silence for debugAll()
* FloatUtil.abs(a): Mark as deprecated, use Math.abs(a) directly. We assume it ↵Sven Gothel2023-09-044-13/+20
| | | | | | | | | | | | | | | | 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 Enhance: API doc; Scene/Button Z-offset and -epsilon; Push temp ↵Sven Gothel2023-09-041-0/+5
| | | | AffineTransform to local method; Simplify BaseButton setCorner(0) -> setPerp(); Protected abstract ctor ..
* FloatUtil.isEqual(..): Rename raw {isEqual->isEqualRaw}(a,b) varianr w/o ↵Sven Gothel2023-09-039-22/+84
| | | | | | EPSILON; Add isEqual(a,b) w/ default EPSILON; Use it where applicable Also add isEqual2(a,b) w/o corner cases (NaN, Inf) used for comparison in Graph Outline, OutlineShape and later GraphUI Shape.
* GraphUI Scene: Pass sampleCount in ctor variant and refine API doc, clip to ↵Sven Gothel2023-09-031-1/+12
| | | | [1..8]; Add clarity in Region; Demos CommandlineOptions adds actual graphAASamples set and utilized
* PMVMatrix.gluPerspective(): Redfine angle in radians instead of degrees ** ↵Sven Gothel2023-09-022-6/+18
| | | | | | | | 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
* Graph Font + Glyph: Fix whitespace definition: Include 'no original ↵Sven Gothel2023-09-012-20/+26
| | | | | | | | | | | | | | underlying shape' and add API doc Regression was introduced with commit 920e529516bb264f04138ed1caca80d4925e3773 'Robust detetection and API definition of non-contour/whitespace Glyphs'. Issue was mistaken a glyph as undefined if not having an underlying shape, which is true for some fonts (e.g. 'space'). +++ Also Use post table's name if no underlying shape exists.
* Graph Font: Make TypecastRenderer.DEBUG package private to be used by ↵Sven Gothel2023-08-281-1/+1
| | | | TypecastFont
* Graph Font + Glyph: More robust detetection and API definition of ↵Sven Gothel2023-08-286-63/+171
| | | | | | non-contour/whitespace Glyphs (detect and allow to skip 'em) We also drop shapes for both, but for id 0 (unknown).
* Graph Loop: Make initFromPolyline() and locateClosestVertex() more robust, ↵Sven Gothel2023-08-284-12/+34
| | | | | | report error but do not crash. This behavior has been evaluated with a few fonts and the WIP FontView01 demo application.
* AABBox: Fix intersects2DRegion(..), add resize{Height, Width}(..) and AABBox ↵Sven Gothel2023-08-271-4/+57
| | | | | | | | | ctor using Vec3f low and high intersects2DRegion(..) got the passed width and height wrong, i.e. given object low position >= this-low position and given object high position including width/height <= this-high position is required to match for intersection.
* Vec3f: Add UNIX_X and UNIX_X_NEG, enhance API docSven Gothel2023-08-271-2/+4
|
* Quaternion: Add rotateByAngleNormalAxis(..) variant using Vec3f axisSven Gothel2023-08-271-1/+18
|
* AABBox: Add set(AABBox)Sven Gothel2023-08-251-0/+13
|
* Vec[234]f: Add scale(Vec[234]f s) variant for convenienceSven Gothel2023-08-233-0/+9
|
* Bug 1310: Reset GLJPanel states @ dispose(..) and always reshapeImpl(..) @ ↵v2.5.0Sven Gothel2023-08-181-7/+30
| | | | | | | | | addNotify(), leading to proper initialization sequence when re-adding panel. The proper initialization sequence subsequently also leads to proper glViewport initialization, see commit d17d807a76ba9cb940542264fcad9cf71c7ec585 No side-effects expected, just ensuring same code-path compared to initial addNotify().
* GraphUIDemoArgs: Issue GLProfile.initSingleton() once in static init block, ↵Sven Gothel2023-08-131-1/+1
| | | | | | 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().
* Minor cleanup of imports, etc: FBObject, GLContext*, Texture, ..Sven Gothel2023-08-137-58/+36
| | | | TODO: Full cleanup perhaps
* Texture ctor w/ external textureID: Pass `ownsTextureID` where true hands ↵Sven Gothel2023-08-132-11/+38
| | | | | | | | | 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.
* Animator*: Add ctor variants passing modeBits directly, i.e. enable/disable ↵Sven Gothel2023-08-133-37/+177
| | | | AWT rendering thread support. Adopt it in tests and demos
* Graph TextRegionUtil.drawString3D(..): Allow null `rgbaColor` w/o ↵Sven Gothel2023-08-121-6/+12
| | | | color-channel again, was enforced to be set in commit bb6ee81bc5514663bb7b22224fcdd5ba34a51ac6
* GLMediaPlayer: Show more reasonable DEBUG output in factory; Impl initGL(GL) ↵Sven Gothel2023-08-112-6/+26
| | | | shall handle null streamWorker, i.e. when using NullGLMediaPlayer
* Graph TextRegionUtil.drawString3D(..): Redefine 'rgbaColor' semantics: ↵Sven Gothel2023-08-021-3/+24
| | | | | | | | | | Either fill color-channel with value if used and set static-color to white - or just set static color channel with value. Have the given rgbaColor to definitely setting the text color regardless whether a color channel is used or not. Note: Using a color-channel is more expensive (color value per vertex) and should only be required if mixing colors within one region! Also removes potential side-effects if color-channel is used but user forgets to set the static value properly.
* Graph RenderState: Initialize colorStatic w/ all white (1,1,1,1) if ↵Sven Gothel2023-08-021-1/+1
| | | | | | | | | | | | color-channel is used and no static-color set Commit a973324a75b55b722caa755a7a573be849d997e4 was setting the alpha to 1, which avoids the 'discard' in the shader. This at least gave us a black color ;-) However, the shader modulates the color, i.e. color-channel * color-static, therefor we need an all-white color-static as default if user only sets the color-channel.
* Graph RegionRenderer.destroy(): Detach RenderState from GL instanceSven Gothel2023-08-021-0/+1
| | | | Remove potential leak
* Graph: Simplify RegionRenderer API by exposing common RenderState methods ↵Sven Gothel2023-08-021-16/+34
| | | | (and fwd 'em to RenderState aggregate)
* Graph Add {GLRegion, GraphShape}.setTextureUnit(int): Allowing to set ↵Sven Gothel2023-08-014-0/+18
| | | | texture unit after ctor
* Graph RegionRendered.init(..): Disable renderer (and shader programs etc) to ↵Sven Gothel2023-08-011-5/+3
| | | | avoid side-effects. Usually called @ GLEventListener.init(..)
* Graph RenderState: Initialize colorStatic w/ alpha=1 to avoid invisible ↵Sven Gothel2023-08-011-1/+1
| | | | | | rendering if no static color has been set Shader either uses just colorStatic or multiplies it w/ the color-stream value
* Graph GLRegion.create(..): Expose variant with custom pass2TexUnit for VBAA ↵Sven Gothel2023-08-011-5/+23
| | | | (default texture unit is 0)
* GLStateTracker: Add tracking of blending states (part-1)Sven Gothel2023-08-011-2/+129
|
* GLStateTracker: Encapsulate PixelStateMap for PixelStorei states (prepare ↵Sven Gothel2023-08-011-44/+69
| | | | for tracking of blending states)
* Graph: Minor cleanup: TextRegionUtil: Fix API doc references; ↵Sven Gothel2023-08-012-7/+6
| | | | RegionRenderer.enable(..) merge '!enable' branch, fix API doc
* Add {GL, GLContext}.getDefaultDrawBuffer() to complement getDefaultReadBuffer()Sven Gothel2023-07-156-28/+98
|
* NativeSignatureJavaMethodBindingEmitter: Adopt to GlueGen changesSven Gothel2023-07-101-41/+40
|
* Adopt to GlueGen commit 952e0c1f83c9e0583a97d39988a6ba1428911c8cSven Gothel2023-06-163-207/+205
| | | | | | | | | To limit growing code due to GlueGen's more capable new `Struct` emitter (more supported setter), `Struct` with intended read-only access have been marked `ImmutableAccess` in their GlueGen config file. Produced code with above setting compared with pre-GlueGen change is reduced while also having dropped all of the JNI calls retrieving `Struct` values. Only calls to function-pointer produced JNI methods, of course.
* Use DPI scaling to scale drawn fonts.Glenn Burkhardt2023-06-041-1/+14
|
* GLMediaPlayer: Add setAudioChannelLimit(..), correlating with ↵Sven Gothel2023-05-233-1/+29
| | | | | | | AudioSink.setChannelLimit() .. May be utilized to enforce 1 channel (mono) downsampling in combination with JOAL/OpenAL to experience spatial 3D position effects.
* *MediaPlayer: Adop to JOAL 39a32fd56de313c31bd197ee6022288e97f9729aSven Gothel2023-05-212-2/+6
|
* Relocate 'jar/atomic/jogl-fonts-p0.jar' -> 'jar/jogl-fonts-p0.jar' to ↵Sven Gothel2023-05-201-2/+1
| | | | | | | simplify inclusion in distribution; UbuntuFontLoader's Uri is patched accordingly. This font jar file is actually not an atomic in the sense it being aggregated to e.g. jogl-all.jar or even a fat jar. Hence it is more suitable to have it all visible in the top-dir next to the main jars.
* FFMPEGMediaPlayer: Adjust to AudioFormat changesSven Gothel2023-05-201-2/+2
|
* FFMPEGMediaPlayer: AudioFormat is now a stand-alone class (gluegen ↵Sven Gothel2023-05-181-2/+2
| | | | 2b339721a4d6dd4f3af129a4654375b15c7ea340)
* Common av classes (*AudioSink, ..) are promoted to gluegen (commit ↵Sven Gothel2023-05-1713-2020/+12
| | | | 270172bcbd91f96d4a38a3d73e23d744f57a25b8) and joal (commit 03f4bb63ce8a358b1c2ef303480e1887d72ecb2e)
* HiDPI: Revise AWT GLCanvas/GLJPanel ScalableSurface: No setSurfaceScale(), ↵Sven Gothel2023-05-152-116/+118
| | | | | | | | | | | have AWT toolkit define pixelScale only (simplification) This aligns with Glenn's initial AWT patch commit e5e7514d649cd7dd28bbb8e04b72338dc09c2c83, i.e. removing redundancies... Tested on Linux, Windows and MacOS w/ GLCanvas, GLJPanel and GLWindow using pixelScale values: - Linux: 1, 2 - Windows: 1, 1.25, 2 - MacOS: 1, 2
* Fix GLMediaPlayerImpl.initGL(GL): Allow null==gl and audio-only mode ↵Sven Gothel2023-05-091-16/+33
| | | | (regression to initial implementation)
* GLMediaPlayer: Replace GLMediaEventListener.EVENT_CHANGE_* 'int event_mask' ↵Sven Gothel2023-05-092-80/+156
| | | | with EventMask.Bit/EventMask
* MacOSXCGLDrawableFactory.canCreateGLPbuffer(): Disabled for MacOS >= 10.13 ↵Sven Gothel2023-05-062-2/+6
| | | | | | (High Sierra) This expands blocking Pbuffer on MacOS, see commit 1562a6d4c71b27378612306f825c2530c938f859