| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
proper utilization.
- VisualIDHolder: Update documentation (Exception case, etc)
- NativeVisualID -> VisualIDHolder (public)
- incl. generic Comparator
- better doc and enum values
- VID_UNDEFINED == 0
- methods shall not throw exception, but return UNDEFINED
- CapabilitiesImmutable extends VisualIDHolder
- All Capabilties impl.
- use VID_UNDEFINED for undef. value
- use final private (immutable) fields
- AbstractGraphicsConfiguration extends VisualIDHolder
- X11 CreateDummyWindow takes (int) visualID
|
|
|
|
|
|
|
| |
common name win32 (same as stub_include)
Utilizing dlopen/dlsym in an efficient way relaxes the platform requirement of having Xinerama available.
This allows using Nokia N9 MeeGo out of the box.
|
| |
|
|
|
|
|
|
|
|
|
|
| |
- allocate CALayer w/ invoking init:
[[CALayer alloc] init]
- attach CALayer to JAWTSurfaceLayer w/o autorelease:
surfaceLayers.layer = layer; // already incr. retain count
- destroy CALayer @ JAWTWindow destroy
|
|
|
|
| |
removeAnimationForKey: kCAOnOrderIn, kCAOnOrderOut, kCATransition]' doesn't work
|
|
|
|
| |
sizeof(platformInfo)==0
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
| |
DestroyNSWindow0
The CALayer animations (add/remove/swap) confused somewhat rendering (layer position) and
even triggered a deallocation sometimes.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
XLockDisplay/XUnlockDisplay shall only be used if XInitThreads() was successful,
otherwise it has no effect (X11 spec).
- Only issue XInitThreads() if firstX11ActionOnProcess==true,
store result to determing whether we can utilize XLockDisplay/XUnlockDisplay.
- If we cannot utilize XLockDisplay/XUnlockDisplay, use RecursiveLock
- NativeWindowFactory: Only return AWTToolkitLock or X11JAWTToolkitLock if explicitly requested
|
|
|
|
|
|
|
|
|
| |
AttachJAWTSurfaceLayer() OSXUtil -> MacOSXJAWTWindow
Threading/sync issue when creating a NEWT window, which issues a Java callback from native code (positionChanged()).
The latter requires a location validation w/ getLocationOnScreen() involved.
Hence getLocationOnScreen() shall not lock the JAWT native resources,
since it may not be ready yet (-> threading/sync issue).
|
|
|
|
|
|
| |
reparenting
Test: enable NEWT 'onscreen' case
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
attach/detach our GL one
- it seems to be more stable, having one root CALayer attached to the JAWT_SurfaceView forever
- tackles crach at GL layer destruction
- proper release of all GL layer resources
- now final [gl-layer dealloc] happens at very destruction of JAWT object,
even though it was removed from root-layer earlier (and all other references)
- see comment in MacOSXWindowSystemInterface-pbuffer.m :: createNSOpenGLLayer(..)
- at least no more crash .. and resource release ASAP, but the GL-layer itself (see above)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
JAWTWindow:
- Add comment about caller of cstr, since it uses reflection
- Field 'config' is of type AWTGraphicsConfiguration, validate and type it
- Impl. NativeSurfaceHolder/NativeWindowHolder 'hooks'
MacOSXJAWTWindow:
- Use agnostic JAWTUtil.isJAWTVersionUsingOffscreenLayer()
to determine 'isOffscreenLayeredSurface'.
We may promote this notion to JAWTWindow, which already holds 'isApplet'
- lockSurface() case 'isOffscreenLayeredSurface':
- Create dummy NSWindow (OSXUtil) for getWindowHandle()
- Fix chosen caps: offscreen
|
|
|
|
|
|
|
|
|
| |
- attributes +NSOpenGLPFANoRecovery +NSOpenGLPFAAccelerated
- use SurfaceUpdateListener() to notify layer
- swapBufferImpl() adapt to 0038e2d41825c22bdd18a7b86a8229a3fab674a3
- pbuffer: don't enforce POT tex-size to surface size, but pbuffer only
- FIXME: Check POT pbuffer/tex-size for X11/Win32/.. !
-
|
|
|
|
|
|
|
|
|
| |
- Use proper OSX types for NS/CGL prototypes (gluegen) and impl.
- Impl layeredSurface (native):
- OSXUtil: NSView backing creation
- OSXUtil: AttachJAWTSurfaceLayer
- CGL: NSOpenGLLayer type impl. and hook
|
| |
|
|
|
|
|
|
|
|
| |
flags (-d32/-d64) ; glxext.h uses 'gl-64bit-types.h'
Cleanup dependencies and linker args
- JOGL/NEWT: remove Xxf86vm dependency
- NativeWindow Solaris: Use std 'Xinerama' and 'xf86vmode'
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
for SWT access/calls
Adding OSXUtil: RunOnMainThread(), IsMainThread()
- Issuing a native call where the user Runnable is to be performed on the main thread
- Enable query if we are on the main thread.
Utilizing those for SWT access/calls
- Using the above to call all SWT functions on the main thread if required (incomplete)
TODO/Issues:
- JOGL OSX CGL Context fails, ie expecting NS, but having CGL
|
| |
|
|
|
|
| |
MainThread Thread name[s]
|
|
|
|
| |
bottom-left to our top-left origin.
|
|
|
|
| |
for 'GetLocationOnScreen()'
|
| |
|
|
|
|
|
|
|
| |
https://jogamp.org/bugzilla/show_bug.cgi?id=517
- Adding some Windows DWM entries to GDI (manual) for translucency support
- Add translucency setting in WindowsWGLGraphicsConfiguration*
|
|
|
|
| |
NativeWindow X11 Error Handler: If quiet do not print message on stderr.
|
| |
|
|
|
|
|
|
|
|
|
|
| |
of XineramaQueryScreens()
- Reenable creating own XDisplay for AWT components, which reduces/removes hang
in subsequent XQueryExtension call (fetchScreens .. XineramaEnabled())
- Impl. use XineramaIsActive() instead of XineramaQueryScreens()
Reducing memory allocation, XFree call (which was missing anyways)
|
|
|
|
|
|
|
|
|
| |
trace), cleanup
- X11 Error Handler: if throwing JVM stack trace or fatal JVM error
query proper JNIEnv for running thread and attach thread to JVM if necessary.
- NEWT/X11: Proper XEvent polling documentation, cleanup window creation event mask
|
|
|
|
|
|
|
| |
.. (remove local copy)
- Use them for gluegen code generation
- Use them for native compilation (cc)
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
jogamp.<module> (2/2) - edit files
- com.jogamp.opengl.impl -> jogamp.opengl
- com.jogamp.opengl.util.glsl.fixedfunc.impl -> jogamp.opengl.util.glsl.fixedfunc
- com.jogamp.nativewindow.impl -> jogamp.nativewindow
- com.jogamp.newt.impl -> jogamp.newt
This sorts implementation details from the top level, ie skipping the public 'com',
allowing a better seperation of public classes and implementation details
and also reduces strings.
This approach of public/private seperation is also used in the OpenJDK.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This solves the issue when an applet is started/stop and started again,
or another applet runs in the same JVM.
Also soves the issue for multiple JVMs.
RegisteredClassFactory can be instanced to manage one shared window class,
currently in use for GDI's dummy window and NEWT.
A class base name and a window proc handle must be passed in the factory cstr.
Before registering, the class is tested if already exists,
eg another applet in the same JVM.
If registration fails, the class name will iterate until successful or MAX_INT reached,
eg if multiple JVMs are running.
Added NativeWindow Common Native Code.
|
|
|
|
| |
factory method.
|
| |
|
|
|
|
| |
NativeWindow+JOGL/Windows: Complete Opaque types
|
|
|
|
| |
NativeWindow X11.
|
|
|
|
| |
NEWT WindowsWindow GetRelativeLocation() native implementation to GDI as well.
|
|
|
|
| |
not available ..
|
|
|
|
|
|
|
|
|
|
| |
NEWT: Add optional eager native initialization
of Display and Screen to overcome a possible chicken/egg situation.
This is useful to be able to request the AbstractGraphicsDevice, via getGraphicsDevice().
Otherwise the abstract device won't be available before
the dependent components (Screen and Window) are realized.
Throw NativeWindowException in case native creation failed.
|
|
|
|
| |
prorietary extutil.h
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
| |
DEBUG strings w/ thread name
nativewindow.TraceLock -> nativewindow.debug.ToolkitLock.TraceLock
Sync Xmisc (DummyWindow) with NEWT's creation
test scripts: awt and non-awt usage
|
|
|
|
|
|
|
|
|
|
|
| |
Analysis of glXMakeCurrent freeze on ATI fglrx 8.78.6
- Workaround in TestGLWindows01NEWT: same create/destroy order
- Prove bug with simple native test app: jogl/test/native/displayMultiple02.c
Misc:
- Reverted d52181032830acdd5e4069a41ccd0daff5922d8a, ie reenable x11IOErrorHandler (nativewindow)
- GLDrawableHelper: methods -> final
- X11Util.NamedDisplay: remove unused RecursiveLock, Cloneable
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Changed GLProfile/NativeWindowFactory/.. initialization methodology:
GLProfile:
public static synchronized void initSingleton(final boolean firstUIActionOnProcess);
NativeWindowFactory:
public static synchronized void initSingleton(final boolean firstUIActionOnProcess);
+++
Introducing NativeWindow ToolkitLock, implementations are
NullToolkitLock
JAWTToolkitLock
X11JAWTToolkitLock
X11ToolkitLock
AbstractGraphicsDevice provides generic global toolkit locking methods,
implemented by the ToolkitLock interface.
ToolkitLock's are aggregated in NativeWindow's DefaultGraphicsDevice
to implement it's superclass lock()/unlock() methods.
This enables a device specific locking strategy, ie on X11/AWT utilizing
JAWT && X11 locking, and maybe none for others (NEWT).
No locking is required for X11 / AWT, in case the above mentioned
initialization happened as a 'firstUIActionOnProcess'.
The ToolkitLock factory is currently a hardcoded part of NativeWindowFactory.
We may have to allow 3rd party NativeWindow implementations
to register custom ones.
+++
com.jogamp.opengl.impl.GLDrawableImpl cleanup:
Dealing with all locking code, providing all public methods. Exceptions are commented.
Specializations x11/windows/.. only contains platform code.
Pulled down access qualifiers if possible public -> protected.
com.jogamp.nativewindow.impl.x11.X11Util
Wrapping all X11Lib method with the new locking code.
com.jogamp.nativewindow.impl.jawt.JAWTUtil
Utilize global SunToolkit.awtLock() is available,
the fallback to global JAWT.lock().
The latter just invokes the first.
javax.media.nativewindow.awt.AWTGraphicsDevice
setHandle(long handle) -> setSubType(String type, long handle)
which also resets the ToolkitLock respecting the new type.
This ensures correct locking after the sub type has been determined,
ie AWT using an X11 peer.
+++
Misc Changes done on the way ..
GLCanvas:
Fixed inversed this.drawableHelper.isExternalAnimatorAnimating() condition,
which disabled normal repaint.
GLJPanel:
Removed drawableHelper.isExternalAnimatorAnimating() condition,
which disabled painting, since the animation thread just updates the source image.
NEWT WindowImpl:
When reparenting back to parent and 'refit' child if it's size exceeds it's parent.
More 'Fix: Memory consumption' commit 6ced17f0325d5719e992b246ffd156e5b39694b4.
NEWTEvent:
Removed code to evaluate the 'system event' attribute, need to find a better approach.
|