aboutsummaryrefslogtreecommitdiffstats
path: root/src/newt/classes
Commit message (Collapse)AuthorAgeFilesLines
* NEWT: Add EventDispatchThread (EDT) pattern.Sven Gothel2009-10-1013-334/+530
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Due to limitations on Windows, we need to standardize the one thread for - window creation, and - event dispatching This was already mentioned in the previous implementation but while integrating into another threading model (Plugin3), it turned out that manual managing the thread is too much of a burden. NEWT now uses a EDT per Display and Thread as the default, where Display creation, Window creation and event dispatching is 'pipelined' into. This can be switched off: NewtFactory.setUseEDT(boolean onoff); and queried via: NewtFactory.useEDT(); Note this EDT impl. does not implicate a global lock or whatsoever. The experimantal semantics of a current GL context for input event dispatching is removed, i.e. the GL context is no more made current for mouse/key listener. This reduces the complexity and allows the proper impl. of the external dispatch via EDT .. for example. Removed: GLWindow: setEventHandlerMode(int) .. etc X11Display: XLockDisplay/XUnlockDisplay needed to be utilized to allow the new multithreading (EDT/Render) Display usage. X11Window: lockSurface/unlockSurface locks X11Display as well .. +++++ NEWT: 'getSurfaceHandle()' semantics changed. To allow usage of the surfaceHandle for OS where it is allocated thread local (MS-Windows), it shall be aquired/released while lockSurface/unlockSurface. This is done in the Windows Window implementation. GLWindow can no more query 'getSurfaceHandle()' to verify if 'setRealized()' was successful. NEWT: Window surface lock is recursive and blocking now, as it shall be.
* Fix On-/Offscreen and PBuffer.Sven Gothel2009-10-051-0/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Demos are working again: demos.jrefract.JRefract - X11, Win32, OSX -Dsun.java2d.opengl=true demos.jrefract.JRefract - X11, Win32 demos.readbuffer.Main [-GL2,-GL2ES1] -test 0 demos.es1.RedSquare - X11, Win32, OSX, EGL demos.readbuffer.Main [-GL2,-GL2ES1] -test [12] demos.es1.RedSquare - X11, Win32 - OSX not, because of the missing feature of attaching a read surface. - EGL not, because the emulation I used didn't support attaching a read surface. Emulation bug .. probably .. MacOSXWindowSystemInterface.m createContext(): - Verify if passed surface handle _is_ a view, now it could be a pbuffer etc .. handle as well. Cleanup GLDrawableImpl.setRealized(boolean realized) - Calls setRealizedImpl() (implementation) now, and only if new stated differs .. - setRealizedImpl() fixed for: MacOSXPbufferCGLDrawable: recreate/destroy WindowsOffscreenWGLDrawable: recreate/destroy WindowsPbufferWGLDrawable: no-recreate/destroy X11OffscreenGLXDrawable: recreate/destroy X11PbufferGLXDrawable: recreate/destroy WindowsWGLContext: - wglMakeContextCurrent(): uses isFunctionAvailable .. - create(): Uses WGL.MakeCurrent() and releases the created context, due to unavailable MakeContextCurrent extensions before updating the procaddress tables.
* GLDrawableFactory Cleanup (-> On- Offscreen and PBuffer)Sven Gothel2009-10-052-4/+22
| | | | | | | | | | | | | | | | | | | | | | | | - Base all PBuffer/Offscreen GLDrawable creators on a prev. created 'NativeWindow + SurfaceChangeable' instance. Simplifies implementation path. This also removes the almost cyclic referencing of GLWindow -> OffscreenWindow GLWindow -> Drawable -> NullWindow -> OffscreenWindow Now it is just GLWindow -> OffscreenWindow GLWindow -> Drawable -> OffscreenWindow - createGLDrawable() shall be used for all types now, especially if you want to pass the offscreen NativeWindow and benefit from the surfaceChangedListener etc .. - Add public createOffscreenDrawable(..) - EGLDrawable: - Query surface only if not 0 - [re]create surface only if needed, using 'ownEGL*' flag for destruction only.
* Fix Config: Set doublebuffer:=false if offscreen; NEWT: Fix KDWindow.Sven Gothel2009-10-041-1/+1
|
* NativeWindow extends SurfaceUpdatedListener for 'surfaceUpdated' ↵Sven Gothel2009-10-033-54/+17
| | | | propagation. GLDrawableFactory.createGLDrawable() propagates NativeWindow to offscreen NullWindow.
* surfaceupdated:: NativeWindow: passing 'updater'; NEWT: adding event listenerSven Gothel2009-10-034-14/+105
|
* Offscreen/PBuffer capabilities cleanup ; Generic read drawable supportSven Gothel2009-10-031-0/+7
|
* NEWT: Offscreen integrationSven Gothel2009-10-022-1/+95
|
* NEWT Intel GDL: Proper Pos/Size/FullscreenSven Gothel2009-10-021-16/+54
|
* NEWT Intel GDL: Surface Size tuning .. ; Add missing getSurfaceHandle()Sven Gothel2009-10-021-2/+8
|
* NativeWindowFactory:Sven Gothel2009-10-0210-68/+381
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - If property 'nativewindow.ws.name' is set, use it as the custom windowing type returned by getNativeWindowType(true) NEWT: - Using NativeWindowFactory's property 'nativewindow.ws.name' as a package name for custom NEWT windowing imlementations, ie: -Dnativewindow.ws.name=com.sun.javafx.newt.intel.gdl -Dnativewindow.ws.name=com.sun.javafx.newt.broadcom.egl This allows far more flexibility to add custom impl. - Add Intel-GDL, define property 'useIntelGDL' to build the native part. Intel GDL is impl in the package 'com.sun.javafx.newt.intel.gdl' JOGL: - All impl. of 'createGLDrawable(..)', which were actually creating onscreen drawable only, were renamed to 'createOnscreenDrawable(..)'. - GLDrawableFactoryImpl impl. 'createGLDrawable(..)' now and dispatches to the actual create* methods in respect to the Capabilities, ie onscreen, pbuffer and offscreen. - GLDrawableFactory: - If using a native ES profile -> EGLDrawableFactory - If existing native OS factory -> Use that .. - Else -> Use EGLDrawableFactory, if available
* NEWT: Fix X11 ConfigureEvent ; X11Window don't propagate pos change if parentedSven Gothel2009-09-291-13/+25
|
* NEWT AWT: Use size/pos from external frameSven Gothel2009-09-141-0/+4
|
* NEWT: More elegant custom constructor type verification and setting by ↵Sven Gothel2009-09-142-34/+107
| | | | Window class impl. ; AWTWindow allow pure Container in cstr, ie an Applet
* Newt.AWT: avoid npeSven Gothel2009-09-131-2/+4
|
* NEWT: remove redundant test codeSven Gothel2009-09-131-3/+0
|
* NEWT: native parenting Win32 OKSven Gothel2009-09-131-6/+11
|
* Newt: MacOSX child clipping tests (failed)Sven Gothel2009-09-121-2/+2
|
* Newt: native window parenting MacOSX: OK (but parent clipping is missing) ; ↵Sven Gothel2009-09-123-19/+30
| | | | X11: windowResize event handled
* NEWT: Native window parenting (X11: OK); AWTWindow external Frame OKSven Gothel2009-09-124-16/+73
|
* NEWT: Basic/Naive window parenting support ; NEWT GLWindow: remove ambigous ↵Sven Gothel2009-09-129-40/+56
| | | | create functions, ie with Window and Capabilities arguments
* newt: one more attempt to commit insets-related changestrembovetski2009-08-204-5/+104
|
* newt: additional insets support for GL and AWT Windowtrembovetski2009-08-202-1/+23
|
* newt: added support for window insets. Only implemented for Windows and MacOS.trembovetski2009-08-201-0/+96
| | | | | Also clarified the meaning of setSize/getWidth/getHeight - they are assumed to be the size of the client area, excluding decorations.
* newt: added expose/paint event notification needed for passive rendering. ↵trembovetski2009-08-143-0/+158
| | | | Currently only implemented on Windows.
* Oops: Accidently removed AWT Display selection in NEWTSven Gothel2009-08-011-0/+2
|
* GL3 Related:Sven Gothel2009-08-011-1/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | - Fix glGetStringi's return type to String - Fix ExtensionAvailabilityCache: GL3's glGetStringi for GL_EXTENSIONS Ensure to add GL_VERSION_2_0 in case version >= 3.0 Ensure to not exceed version 3.0 for non GL3.1 context. In case of GL 3.1, do not include GL_VERSIONS below 3.0, since this is a forward compatible context. - Add Prologue to glGetString, where the ExtensionCache is being used for GL_EXTENSIONS - if already initialized. This feature adds backward compatibility for GL3 context on GL_EXTENSION. +++ General: Add GLPipelineFactory, a convenient pipeline factory for Debug/Trace and custom ones .. Change 'void setGL(GL)' to 'GL setGL(GL)', and let it return the successful set GL, or null.
* Gluegen:Sven Gothel2009-07-311-1/+6
| | | | | | | | | | | | | | | | | | | | | | | | - Fix array element type name and const qualifier JOGL: - GL3: Set ArgumentIsString for GL3.1 methods - JAR file creation: Add 'filesonly' option - GLU: Static check of available impl., better fallback for GL2 without GLUgl2. - WGL: (Performance + Java2D/GL FBO works again) - Refactor WGL_ARB_pixel_format's HDC -> GLCapabilities: HDC2Caps - Revert change where we always create a dummy drawable/context for WGL selection (HDC2Caps). In case of no multisampling, use PFD2Caps only. - Update config using HDC2Caps (WGL_ARB_pixel_format) after context creation, if not done already -> updateCapabilitiesByWGL(). - profile.jogl: Add debug jars
* Fix: Check if windowHandle is already createdsg2158892009-07-303-20/+26
|
* Add BroadcomEGL verbose messagessg2158892009-07-291-1/+1
|
* Fix: doxygen-all-pub.cfg; Add NativeWindow: surfaceSwap() and ↵sg2158892009-07-293-2/+30
| | | | surfaceUpdated(); BroadcomEGL: Use custom surfaceSwap(); GLDrawableImpl's: Utilize NativeWindow's surfaceSwap() and surfaceUpdated(); Fix common enum of GL2ES1 and GL2GL3, merge them in GL
* Fixed GL* documentation. Moved common GL functions to GLBase. Moved ↵sg2158892009-07-291-1/+5
| | | | glAllocateMemoryNV to GL2GL3 only. Add GL2GL3 interface. Fix some GL2 signatures. BroadcomEGL disable custom setSize().
* NEWT: Remove loading of non-existing nativewindow lib; BroadcomEGL: use ↵sg2158892009-07-282-3/+10
| | | | libEGL(EglUtil) and libGLES_CM(nexus), setSize to screen-size on creation, more debug output
* Cleanup ..sg2158892009-07-281-0/+3
|
* Fix BroadcomEGL: Proper EGLGraphicsConfiguration at creation timesg2158892009-07-281-4/+8
|
* Add Custom NativeWindow Type 'BroadcomEGL' ↵sg2158892009-07-277-23/+212
| | | | (-Dnativewindow.ws.name=BroadcomEGL): 1st Draft of supporting broadcom's proprietary EGL mapping
* mips changesMorris Meyer2009-07-273-1/+90
|
* Push custom loadLibrary handling down to NativeWindow NativeLibLoaderBase; ↵Sven Gothel2009-07-041-75/+0
| | | | | | X11AWTGLXGraphicsConfigurationFactory: Encapsule whole block in lock/unlock to minimize context switch git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/svn-server-sync/jogl/trunk@2021 232f8b59-042b-4e1e-8c03-345bb8c30851
* Local property access package-private (no qualifiers)Sven Gothel2009-07-041-4/+4
| | | | git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/svn-server-sync/jogl/trunk@2020 232f8b59-042b-4e1e-8c03-345bb8c30851
* Fix property query. Thx to Ken pointing this out.Sven Gothel2009-07-033-21/+60
| | | | git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/svn-server-sync/jogl/trunk@2018 232f8b59-042b-4e1e-8c03-345bb8c30851
* Fix property handling ; Adding jnlp. aliasing for propertiesSven Gothel2009-07-035-34/+32
| | | | git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/svn-server-sync/jogl/trunk@2016 232f8b59-042b-4e1e-8c03-345bb8c30851
* Fix NEWT static singleton initSven Gothel2009-06-184-36/+16
| | | | git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/svn-server-sync/jogl/trunk@1991 232f8b59-042b-4e1e-8c03-345bb8c30851
* - Fix: X11 locking Sven Gothel2009-06-182-7/+17
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The current thread default display or the given display is being used, hence it is no more required to use a ToolkitLock for X11 without AWT. Removed X11 ToolkitLock in case of X11 without AWT, which is being detected with the absence of the classes java.awt.Component _AND_ javax.media.nativewindow.awt.AWTGraphicsDevice or with the system property java.awt.headless=true Only in the Java2D/Swing case, one 'leaking' Display is created within canCreateGLPbuffer(). - Workaround for Hotsport bugs #4395095, #6852404 4395095 JNI access to java.nio DirectBuffer constructor/accessor 6852404 Race condition in JNI Direct Buffer access and creation routines - Added build.xml -Dbuild.noarchives=true property to skip the time consuming creation of zip archives. git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/svn-server-sync/jogl/trunk@1988 232f8b59-042b-4e1e-8c03-345bb8c30851
* - Add: GLProfile.get(name) return default if name=="GL" as well (or if null)Sven Gothel2009-06-1719-341/+825
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - Add: NEWT pumpMessages/dispatchMessages - Handled by the Display implementation for all windows - Windows .. OK - MacOSX .. OK - X11 .. OK - Added Atom Property handling to attach java window object to window - Removed the eventMask for dispatching messages, since dispatching is for all windows now. (Wasn't impl. for all platforms anyways) - All init static code will funnel in the Display.initSingletion(), to ensure a proper init order for all platforms. - Display creation is unique for (name,thread). Handling a TLS mapping of display-names to Displays. - GLWindow: autoSwapBufferMode and eventHandlerMode are static members - Tested with experimental tagged GLWindow.setRunPumpMessages()/runCurrentThreadPumpMessage(), 1 thread - 4 windows, etc .. java demos.es2.RedSquare -1thread -onepump -GL2 -GL2 -GL2 -GL2 No benefit .. However .. the implementation is more correct now, due to the display/current-thread message pumping. - Fix: Window.sendMouseEvent() bounds check - Fix: MacWindow has proper nsView locking now, local to the window instance. locked in lockSurface besides general window manipulation. - Fix: JAWT utilized JAWTUtil.init() to init libraries - NativeLibLoaderBase.loadNativeWindow("awt") call was missing. (Visible on MacOSX + AWT) - Fix: GLXUtil proper locking - Fix: X11Util proper locking git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/svn-server-sync/jogl/trunk@1976 232f8b59-042b-4e1e-8c03-345bb8c30851
* Copied JOGL_2_SANDBOX r1957 on to trunk; JOGL_2_SANDBOX branch is now closedKenneth Russel2009-06-1533-0/+5919
git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/svn-server-sync/jogl/trunk@1959 232f8b59-042b-4e1e-8c03-345bb8c30851