aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Add OpenGL 3.x compatibility profile GL3bc,Sven Gothel2009-10-1812-190/+388
| | | | | | | | | | | where 'bc' is not a religious remark, but simply means 'backward compatible' :) GL3bc := GL2 + GL3, hence the interface does not define any new values or methods. Moved GL3's 3.1 part from gl3.h to gl3ext.h, so it can be included in gl3bc.c, besides gl2.h.
* New iteration of check 'imageSizeInBytes':Sven Gothel2009-10-183-47/+50
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Premises: See http://www.glprogramming.com/red/chapter08.html "If the rectangle in memory is larger than the subrectangle that's being drawn or read, you need to specify the actual length (measured in pixels) of the larger rectangle with *ROW_LENGTH. " This equals ROW_LENGTH == SubPicture-Width + 'Dirt', ie the offset to go from one line to the next. "You also need to specify the number of rows and pixels to skip before starting to copy the data for the subrectangle. These numbers are set using the parameters *SKIP_ROWS and *SKIP_PIXELS, as shown in Figure 8-9. By default, both parameters are 0, so you start at the lower-left corner." This equals to a one time offset _before_ you start copy the data, ie with your DMA engine, using ROW_LENGTH and HEIGHT only. Compared to Mesa3D's implementation (proof): http://cgit.freedesktop.org/mesa/mesa/tree/src/glx/x11/pixelstore.c Line 78 - 200 PixelStore State Tracker: Store the values in the PixelStore structure. http://cgit.freedesktop.org/mesa/mesa/tree/src/glx/x11/pixel.c Line 82 - 155 Line 210: Start position is set one time using SKIP_* values the same way we do. Line 228: Jump to the first pixel in the newxt row, just using ROW_LENGTH Line 230: Jump to the first pixel in the next 'image' just using imageSize, rowsPerImage = IMAGE_HEIGHT>0?IMAGE_HEIGHT:height; groupsPerRow = ROW_LENGTH>0?ROW_LENGTH:width; groupSize = elementSize * components; rowSize = groupsPerRow * groupSize; imageSize = rowSize * rowsPerImage; changes: Removed redundand 'dimension' parameted, which is derived from depth and height, 1D == depth:1 height:1 2D == depth:1 height>1 nD == depth>1 height>1 Safe fail depth to >= 1 Safe fail height to >= 1D Take either the ROW_LENGTH / IMAGE_HEIGHT PixelStore value if > 0, or the given width / height.
* All tracker are aggregated in the GLContext nowSven Gothel2009-10-1720-91/+195
| | | | | | | | | | | | | | | and used within the GL*Impl. New GLStateTracker: - Tracking client/server states - Currently supports PixelStorei - Prologued in glPixelStorei and glGetIntegerv, the latter will return the tracked state if available and not call the GL method. Impacts performance and ES1 compatibility (supports ALIGNMENT). Fixed 'imageSizeInBytes' calculation: - skipPixels and skipRows is a static one time offset
* All tracker are aggregated in the GLContext nowSven Gothel2009-10-171-0/+211
| | | | | | | | | | | | | | | and used within the GL*Impl. New GLStateTracker: - Tracking client/server states - Currently supports PixelStorei - Prologued in glPixelStorei and glGetIntegerv, the latter will return the tracked state if available and not call the GL method. Impacts performance and ES1 compatibility (supports ALIGNMENT). Fixed 'imageSizeInBytes' calculation: - skipPixels and skipRows is a static one time offset
* GLProfile: usesNativeGLES[12] remove check with non impl GL2ES[12] ; Add ↵Sven Gothel2009-10-161-4/+19
| | | | usesNativeGL[23]
* Fix WindowsOffscreenWGLDrawableSven Gothel2009-10-165-2/+28
|
* Fix Solaris buildSven Gothel2009-10-152-20/+21
|
* Added a copy of the Wiki's FAQSven Gothel2009-10-121-0/+417
|
* X11 Display Lock completed (hope so)Sven Gothel2009-10-1211-146/+185
| | | | | | | | | | | | | | | | | | | | | | | | | | | | - JOGL GLXUtil - JOGL X11GLXDrawableFactory - JOGL X11GLXGraphicsConfigurationFactory - JOGL X11OffscreenGLXDrawable - NW X11GraphicsConfigurationFactory NEWT Display - Stop EDT immediatly from within EDT when destroying - NEWT Window - Remove obsolete 'disposeSurfaceHandle()' NEWT GLWindow destroy(): - Deep destruction (Window, Screen and Display) if owner, otherwise just the GLWindow/GLDrawable - Add 'sendDisposeEvent' flag, to allow avoiding sending dispose to all GLEventListeners in a critical shutdown, ie from within the browser. NEWT EDT - More fine grained locking - unlocked while event dispatching - double check locking - Fixed cases where we are running on the EDT ..
* NativeWindow X11: Lock/Unlock Display if using itSven Gothel2009-10-111-5/+12
|
* NEWT X11 Display Lock:Sven Gothel2009-10-1112-113/+151
| | | | | | | | | | | | | | | Integrate Display.lock/unlock, so the generic Window will call it. Specialized for X11Display, the only real impl of it. Fixes offscreen EDT usage .. GLProfile: Add isAWTAvailable() and isAWTJOGLAvailable() TextureIO: - Add NetPbmTextureWriter - Only use IIOTexture* if !isAWTJOGLAvailable() - Add write (TextureData, File)
* NEWT: Avoid NPE at destroy() ; DEBUG println ..Sven Gothel2009-10-102-4/+20
|
* NEWT: Add EventDispatchThread (EDT) pattern.Sven Gothel2009-10-1019-381/+723
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* Work on test webstart deploy scripts ..Sven Gothel2009-10-063-10/+63
|
* EGL more query config trials; Avoid NPE if no config is chosenSven Gothel2009-10-056-20/+50
|
* Fix On-/Offscreen and PBuffer.Sven Gothel2009-10-0517-43/+120
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* Fix: EGL set doublebuffer:=false for offscreenSven Gothel2009-10-051-0/+1
|
* GLDrawableFactory Cleanup (-> On- Offscreen and PBuffer)Sven Gothel2009-10-0520-381/+337
| | | | | | | | | | | | | | | | | | | | | | | | - 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.
* Add com.sun.opengl.util.texture.spi.NetPbmTextureWriterSven Gothel2009-10-041-0/+161
|
* EGL: Use surfaceHandle, not windowHandle (2) for eglSurfaceSven Gothel2009-10-041-2/+2
|
* EGLContext: Just debug lines ..Sven Gothel2009-10-041-3/+5
|
* FIX: EGL Config: on-/offscreen and pbuffer; Added EGL-PBuffer setSurfaceHandleSven Gothel2009-10-044-36/+50
|
* Fix Config: Set doublebuffer:=false if offscreen; NEWT: Fix KDWindow.Sven Gothel2009-10-047-1/+13
|
* Fix EGL SurfaceType query/setup [on-/offscreen, pbuffer] using ↵Sven Gothel2009-10-043-42/+54
| | | | EGLConfig/GLCapabilities
* Texture: Relax/Pending creation of texture ID, no context must be currentSven Gothel2009-10-031-17/+25
|
* Avoid NPE if no context currentSven Gothel2009-10-031-1/+1
|
* NativeWindow extends SurfaceUpdatedListener for 'surfaceUpdated' ↵Sven Gothel2009-10-038-37/+54
| | | | propagation. GLDrawableFactory.createGLDrawable() propagates NativeWindow to offscreen NullWindow.
* surfaceupdated:: NativeWindow: passing 'updater'; NEWT: adding event listenerSven Gothel2009-10-038-18/+113
|
* EGL Fix: Use the surface handle for creation, not the window handle; More ↵Sven Gothel2009-10-034-28/+53
| | | | fixedCaps.
* EGL debug fixes ..Sven Gothel2009-10-034-11/+28
|
* Offscreen/PBuffer capabilities cleanup ; Generic read drawable supportSven Gothel2009-10-0323-121/+291
|
* NEWT: Offscreen integrationSven Gothel2009-10-023-2/+95
|
* Pbuffer GLDrawableFactory integration (2)Sven Gothel2009-10-023-6/+60
|
* Proper PBuffer drawable abstractionSven Gothel2009-10-025-67/+63
|
* NEWT Intel GDL: Proper Pos/Size/FullscreenSven Gothel2009-10-022-23/+112
|
* NEWT Intel GDL: Surface Size tuning .. ; Add missing getSurfaceHandle()Sven Gothel2009-10-022-12/+25
|
* Allow custom user gluegen.compiler.xml ; NEWT: Example ↵Sven Gothel2009-10-024-18/+53
| | | | lib/gluegen.compiler.intelgdl.xml
* NativeWindowFactory:Sven Gothel2009-10-0225-103/+4781
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - 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-292-36/+57
|
* Oops .. fixed compile errorSven Gothel2009-09-251-1/+1
|
* Merge branch 'master' of ssh://jausoft.com/srv/scm/joglSven Gothel2009-09-251-0/+1
|\
| * test ..Sven Gothel2009-09-241-0/+1
| |
* | Fix MacOSX External GLContextSven Gothel2009-09-2511-182/+489
| |
* | Adding missing GL 3.0 reuse tokens ; Thanks to Koen Van den driesSven Gothel2009-09-251-0/+46
|/
* Let the GLCapabilityChooser run over the fallback fixed GLCapabilities [last ↵Sven Gothel2009-09-242-3/+14
| | | | resort]
* NEWT AWT: Use size/pos from external frameSven Gothel2009-09-141-0/+4
|
* Add local webstart test deploy scriptsSven Gothel2009-09-142-0/+126
|
* 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
|