| Commit message (Collapse) | Author | Age | Files | Lines |
|\ |
|
| |
| |
| |
| |
| |
| |
| |
| | |
Changes the Type_Widget.java constructor to allocate a normal
buffer instead of a direct buffer. Apparently JVMs can't
allocate small direct buffers efficiently, and since Type_Widget
is called inside tight loops millions of times, we can't afford
to do it this way. This commit restores it to how it was in JOGL 1.
|
| |
| |
| |
| |
| |
| |
| |
| | |
This bug caused the right sides of GLJPanels not to render if the
panel is wider than its height (all pixels with x > height would
be black). Wrote a unit test to sense the problem by reading
an unrendered pixel back out of the frame, then fixed the typo
in GLDrawableFactoryImpl.java that caused the error.
|
| | |
|
| | |
|
| |
| |
| |
| | |
w/o whitespace)
|
| |
| |
| |
| | |
GL2ES2, GLES2, GL2ES1, GLES1
|
| | |
|
| | |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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
|
|/ |
|
| |
|
| |
|
|
|
|
| |
(96a0e0706258824c1dd524d4cbd7682a904b84f4)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Windows for javaws/applets.
It has been observed that for some combinations, eg:
- Windows 7 64bit (other variants may apply too)
- NVIDIA 8600M GT
- 260.99
the NVIDIA setting of 'Threaded optimization' := 'auto' (default) causes the JVM to simply crash
in case of javaws and [jnlp] applets.
'Threaded Optimization' := 'off' works reliable
'Threaded Optimization' := 'on' never works with javaws and applets on the above configuration
A user could workaround this by setting 'Threaded Optimization' := 'off',
however, this would disable many users on the spot,
since you cannot ask the average user for such a task, if she only wants to see a web page.
This patch 'fixes' the 'auto' mode by running the eager GL profile initialization
within a block of single CPU affinity:
SetProcessAffinityMask(pid, 1);
try {
initProfilesForDeviceImpl(device);
} finally {
SetProcessAffinityMask(pid, sysValue);
}
Hopefully we can remove this hack with a driver fix.
However this workaround is as little invasive as possible.
|
|
|
|
|
|
|
|
| |
GLProfile.initProfilesForDevice: use either desktop or egl factory on one device
GLProfile.DEBUG: Print proper factory instance, full device
JoglVersion.getGLInfo: Print only availability of used device, otherwise we could kick off initialization
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
| |
|
| |
|
|
|
|
| |
(X11 error on nvidia); reenable GLJPanel test
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
| |
It seems necessary to use off thread shared resources (dummy window, drawable and context)
to keep them alive in Java Webstart.
|
|
|
|
| |
redundant, since it's static DC
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- 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
|
|
|
|
|
|
|
|
|
| |
key for cached table, since
the GLX/WGL/etc function entry pointers are GL profile agnostic.
Hence createContextARBImpl(..) (WGL/GLX) does not need a sharedContext,
but just can issue the inexpensive updateGLXProcAddressTable(..) call.
|
|
|
|
| |
release HDC
|
| |
|
| |
|
|
|
|
|
|
|
|
| |
WindowsWGLGraphicsConfiguration:
If updateGraphicsConfigurationARB fails, continue with updateGraphicsConfigurationGDI
WindowsDummyWGLDrawable:
Utilize proper GraphicsConfiguration selection using updateGraphicsConfiguration()
|
|
|
|
| |
to all GLEventListeners at destroy()
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- 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).
|
|
|
|
| |
since the drawable may realize itself with the display() call. This situation appears with an AWT GLCanvas
|
|
|
|
| |
desired behavior and is more compliant with other APIs
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Read Drawable feature reflects the make context current API
having a seperate read drawable next to the write drawable (default).
glXMakeContextCurrent(write, read, ..)
On X11 a ready drawable is only supported for GLX >= 1.3,
on Windows only if extension WGL_ARB_make_current_read is available,
on EGL it's always supported, on OSX not at all.
API cleanup GLContext:
changes: setGLDrawableRead(GLDrawable) -> setGLReadDrawable(GLDrawable)
new: isGLReadDrawableAvailable()
new: getGLExtensionsString();
Access qualifier cleanup.
GLContextImpl: GLVersionNumber moved out.
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
| |
SUCCESS
|
| |
|
|
|
|
| |
(boolean)success instead.
|