aboutsummaryrefslogtreecommitdiffstats
path: root/src/nativewindow
Commit message (Collapse)AuthorAgeFilesLines
* Code cleanup: override, imports, StringBuilder, ..Sven Gothel2011-02-267-16/+13
|
* Clean/Fix: Threading CodeSven Gothel2011-02-264-21/+40
| | | | | | - Remove unsafe double checked locking - Annotate safe double checked locking (volatile) - use 'static final' if possible
* changes due to code cleanup in gluegen.Michael Bien2011-02-266-14/+19
| | | | | | - StringBuffer -> StringBuilder - ReflectionUtil.getBaseName -> class.getSimpleName() - cleanup imports, generics and @Override for all touched classes
* NativeWindow NativeSurface lock/unlock Surface cleanup ; NEWT WindowImpl ↵Sven Gothel2011-02-222-30/+25
| | | | | | | | | lock/unlock Surface fix - Rename lock to surfaceLock to determine it's use - NEWT's WindowImpl windowLock usage is not sufficient for lock/unlock surface. Using distinguished surfaceLock for proper recursion count on lock/unlock surface.
* NativeWindow/SWT: Rename SWTMisc -> SWTAccessor; Add to nativewindow.core.jarSven Gothel2011-02-221-1/+1
|
* NativeWindow/SWT: Add SWTMisc utility allowing platform independent accessSven Gothel2011-02-221-0/+112
|
* NativeWindow ProxySurface Abstraction and lock/unlock Surface cleanupSven Gothel2011-02-225-184/+328
| | | | | | | | | | | | | - ProxySurface -> abstract javax.media.nativewindow.ProxySurface, implemented by jogamp.nativewindow.WrappedSurface, just wrapping surface handle jogamp.nativewindow.windows.GDISurface, using HWND and get/release HDC on lock/unlock - Unifying NativeSurface's lockSurface/unlockSurface implementations - NEWT's WindowImpl - NativeWindow's ProxySurface, WrappedWindow, GDIWindow and JAWTWindow - wingdi/GDI: Add 'WindowFromDC' and 'GetClientRect' to GDI
* Spec Doc update/fixSven Gothel2011-02-101-1/+2
|
* Fix: Java 1.5 warningsSven Gothel2011-02-094-10/+10
|
* Spec: Bump Java version to 1.5Sven Gothel2011-02-091-22/+26
|
* Move implementation private files from com.jogamp.<module>.impl. to ↵Sven Gothel2011-02-0935-121/+121
| | | | | | | | | | | | | | | 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.
* Move implementation private files from com.jogamp.<module>.impl. to ↵Sven Gothel2011-02-0823-0/+0
| | | | | | | | | | | | | | | jogamp.<module> (1/2) - rename task - 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.
* GLCapabilities enhancements: Choosing, All-Available, Data Handling (X11, ↵Sven Gothel2011-01-316-31/+90
| | | | | | | | | | | | | | | | | | | | | | | | | | WGL and EGL) - GLDrawableFactory exposes: public final List/*GLCapabilitiesImmutable*/ getAvailableCapabilities(AbstractGraphicsDevice device) - GLCapabilities platform specialization containing native ids (XVisual/FBConfig, PFD, EGLConfig, ..) - GLCapabilities setPbuffer(true) disables onscreen - Capabilities setOnscreen(true) disables pbuffer - Capabilities implements Comparable - *Capabilities: enhanced 'toString(..)' - CapabilitiesChooser.chooseCapabilities: 'CapabilitiesImmutable[] available' -> 'List /*<CapabilitiesImmutable>*/ available' - VersionApplet, GLCanvas.main, GLWindow.main, GLProfile/debug: dumps all available GLCaps - WGLGLCapabilities: proper non-displayeble (pbuffer) pfdid handling TODO: ES/EGL test with emulation
* Fix: GLX exception message / sorted importsSven Gothel2011-01-311-1/+2
|
* Cleanup / DebugSven Gothel2010-12-232-2/+13
|
* JOGL/NEWT: Introduce WindowClosingProtocol (solves Bug/Request 444)Sven Gothel2010-12-194-1/+301
| | | | | | | | | | | | | | | | | Similar to JFrame's closing behavior, the following components window closing follow the new WindowClosingProtocol: - GLCanvas - GLJPanel - NEWT Window, GLWindow - NEWT NewtCanvasAWT The implementation obeys either 1) the user value set by this interface, 2) an underlying toolkit set user value (JFrame, ..) 3) or it's default, eg. {@link #DO_NOTHING_ON_CLOSE DO_NOTHING_ON_CLOSE} within an AWT environment. If none of the above determines the operation, this protocol default behavior {@link #DISPOSE_ON_CLOSE DISPOSE_ON_CLOSE} shall be used.
* Debug/Cleanup: toString: print base classname only; Misc ..Sven Gothel2010-12-197-7/+14
|
* NativeWindow Debug: Early stack trace info w/ thread nameSven Gothel2010-12-181-3/+7
|
* Fix WGL Bitmap Offscreen DrawableSven Gothel2010-12-161-1/+9
| | | | | | | | | | | In conjunction with the gluegen investigation (gluegen: fbdedff789077b5ffa07811590f771b6f9a4f3a7), on Windows the type LONG is always 32bit, hence we have to declare: typedef __int32 LONG; Besides, WGL_DRAW_TO_PBUFFER_ARB and WGL_DRAW_TO_BITMAP_ARB were missing in the WGL/ARB attribute query, and the latter was not set in caps -> attributes. Added fail safe exception for null chosen caps, if X11/WGL algo fails to determine.
* JAWTUtil: Fix case when init is run on AWT EDT (which is odd, ie not using ↵Sven Gothel2010-12-151-11/+16
| | | | GLProfile.initSingleton(..)
* Fix API doc: firstUIActionOnProcessSven Gothel2010-12-121-31/+73
|
* NativeWindow: Move RegisteredClass to private impl packageSven Gothel2010-12-122-3/+2
|
* JAWTUtil: Eager initialization of AWT desktop propsSven Gothel2010-12-121-0/+25
| | | | | Triggers immediate AWT property resolution. Would reproduce any javaws / AWT race condition.
* Windows RegisterClass: Use new RegisteredClassFactory (window class), Misc.Sven Gothel2010-12-128-124/+433
| | | | | | | | | | | | | | | | | 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.
* Cleanup GLGraphicsConfiguration[Factory] implementations (X11/WGL)Sven Gothel2010-12-104-24/+131
| | | | | | | | | | | | | | | | | - AWT/WGL: - Using sun.awt.Win32GraphicsConfig via reflection, if supported, else we may fail. - Preselection of PFD as follows: - 1st choice is to create our own AWT GraphicsConfig (GC) based on PFD/GLCaps, ignoring WGL_SUPPORT_GDI_ARB, PFD_SUPPORT_GDI - 2nd choice is to use AWT PFD pool of GC's - else we fail -> use NewtCanvasAWT instead (TODO: Other JDK/AWT implementations ?) - Set PFD will be performed at setRealized(..) - SharedContext (X11/WGL) is synchronized to allow multithreaded access, if required - Simplified and unified (X11/WGL) GraphicsConfigurationFactory - WGL 'external' drawables will be determined with given arguments right away
* NativeWindow: Expose lock test/get methods and constructor with HDCSven Gothel2010-12-091-2/+17
|
* GDI: Fix CreateDummyWindow: Use local getModuleHandle(NULL) and synchronize ↵Sven Gothel2010-12-091-30/+33
| | | | factory method.
* X11 DummyWindow: Pass size and set size in proxySven Gothel2010-12-042-8/+7
|
* Cleanup GLDrawableFactory API and platform ImplementationsSven Gothel2010-12-033-7/+13
| | | | | | | | | | | | | | | | | | | | | | | - Finish API change using the AbstractGraphicsDevice, which denotes the target device for the desired NativeSurface / GLDrawable. The AbstractGraphicsDevice argument may be null to reflect the platform's default device. Clarified API documentation. This move is necessary to make the API coherent. - createOffscreenDrawable(..) may create a Pbuffer drawable if caps and supported. This unifies the functionality with createGLDrawable(..). Further more, a Pbuffer drawable is an offscreen as well. - added createOffscreenSurface(..) following the same behavior as createOffscreenDrawable(..), this is a convenient native offscreen surface factory entry. - removed createGLPbufferDrawable(..), use createOffscreenDrawable(..), since it is redundant! Implementation Details: - EGLDrawableFactory holds a shared native EGLGraphicsDevice, being used by the offscreen EGL drawable (no more multiple creation).
* minor cleanupSven Gothel2010-11-281-2/+1
|
* Refined VersionInfo usageSven Gothel2010-11-251-0/+2
|
* NativeWindow/Windows: Fix CreateDummyWindow gluegen and usageSven Gothel2010-11-221-1/+1
| | | | NativeWindow+JOGL/Windows: Complete Opaque types
* NativeWindow: Fix XSynchronize gluegenSven Gothel2010-11-221-2/+2
|
* Merge branch 'master' of github.com:sgothel/joglMichael Bien2010-11-184-76/+41
|\
| * JOGL/AWT: Fix ~ 2 year old regressions: Choose & Use GraphicsConfiguration ↵Sven Gothel2010-11-181-9/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | for Canvas. ; Adding FSAA test. Canvas/X11: The Canvas GraphicsConfiguraton should be chosen before the native peer is being created. Choosing AWT GraphicsConfiguration (all platforms): Don't filter our capabilities with 'AWTGraphicsConfiguration.setupCapabilitiesRGBABits(capsChosen, gc)', not necessary (see above) and it would remove ourrequired alpha channel. Canvas display(): Don't render if drawable is not realized (yet).
| * NativeWindow JAWT Impl: Fix: Remove double unlock of locks if JAWT lock failed.Sven Gothel2010-11-183-67/+39
| |
* | print platform info additional to the module info.Michael Bien2010-11-181-0/+1
| |
* | modifications due to changes in GlueGen's VersionUtil.getManifest().Michael Bien2010-11-181-3/+2
|/ | | | made references created in double checked locks volatile.
* Finishing Immutable changes including GLCapabiltiesImmutable.Sven Gothel2010-11-179-38/+99
|
* Merge branch 'pulled'Sven Gothel2010-11-177-24/+113
|\
| * Implement CapabilitiesImmutable to indicate that getRequestedCapabilities() ↵Steve Vaughan2010-11-177-24/+109
| | | | | | | | and getChosenCapabilities() return immutable instances. Add cloneCapabilities() to create a mutable clone of an immutable set of capabilities.
| * Clone Capabilities on input, providing a local copy when requested. This ↵Steve Vaughan2010-11-161-4/+8
| | | | | | | | | | | | eliminates the cloning that was occuring for each swap buffer call. This is the first step in implementing immutable Capabilities.
* | cleanup importsSven Gothel2010-11-171-5/+0
| |
* | JAWTWindow: Avoid AWTTreeLock, cleanup.Sven Gothel2010-11-174-31/+83
| | | | | | | | | | | | | | Use native implementation for getLocationOnScreen() if available. If unavailable call AWT's implementation only in case the AWT TreeLock is hold by this thread. Finalize methods ..
* | Moving NEWT X11Window GetRelativeLocation() native implementation to ↵Sven Gothel2010-11-172-14/+72
| | | | | | | | NativeWindow X11.
* | Move GDI GlueGen wrapping from JOGL -> NativeWindow (following X11). Moving ↵Sven Gothel2010-11-171-0/+152
|/ | | | NEWT WindowsWindow GetRelativeLocation() native implementation to GDI as well.
* X11: Make X11 error handler quiet where we expect an X11 error, ie OpenGL 4 ↵Sven Gothel2010-11-162-8/+12
| | | | not available ..
* NativeWindow AbstractGraphicsDevice: Add 'unitID' attribute and getUniqueID()Sven Gothel2010-11-1512-68/+99
| | | | | | | | | | Preparation to support multiple devices on one machine, hence adding the unitID a unique ID/index of the associated GPU, or GPU affinity. Adding getUniqueID() to return a cached semantic unique string id for the device. This was removed from the temp. impl in JOGL's GLContext, added unitID. All other changes just adapt to the above.
* NativeWindow: Add constructor to AbstractGraphicsDevice derivations,Sven Gothel2010-11-144-2/+44
| | | | allowing to spec the connection without an actual native peer.
* NEWT: Add optional eager native initialization ; Proper exception handlingSven Gothel2010-11-141-0/+6
| | | | | | | | | | 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.