|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectcom.jogamp.opengl.GLRendererQuirks
public class GLRendererQuirks
GLRendererQuirks contains information of known bugs of various GL renderer. This information allows us to workaround them.
Using centralized quirk identifier enables us to locate code dealing w/ it and hence eases it's maintenance.
Some GL_VENDOR
and GL_RENDERER
strings are
listed here
Field Summary | |
---|---|
static int |
COUNT
Number of quirks known. |
static int |
DontCloseX11Display
Closing X11 displays may cause JVM crashes or X11 errors with some buggy drivers while being used in concert w/ OpenGL. |
static int |
GLFlushBeforeRelease
The OpenGL Context needs a glFlush() before releasing it, otherwise driver may freeze:
OSX < 10.7.3 - NVidia Driver. |
static int |
GLNonCompliant
Non compliant GL context due to a buggy implementation not suitable for use. |
static int |
GLSLBuggyDiscard
GLSL discard command leads to undefined behavior or won't get compiled if being used. |
static int |
NeedCurrCtx4ARBCreateContext
Need current GL Context when calling new ARB CreateContext function, otherwise driver crashes the VM. |
static int |
NeedCurrCtx4ARBPixFmtQueries
Need current GL Context when calling new ARB pixel format query functions, otherwise driver crashes the VM. |
static int |
NoDoubleBufferedBitmap
On Windows no double buffered bitmaps are guaranteed to be available. |
static int |
NoDoubleBufferedPBuffer
Crashes XServer when using double buffered PBuffer with GL_RENDERER: Mesa DRI Intel(R) Sandybridge Desktop Mesa DRI Intel(R) Ivybridge Mobile - 3.0 Mesa 8.0.4 Gallium 0.4 on AMD CYPRESS For now, it is safe to disable it w/ hw-acceleration. |
static int |
NoFullFBOSupport
No full FBO support, i.e. |
static int |
NoOffscreenBitmap
No offscreen bitmap available, currently true for JOGL's OSX implementation. |
static int |
NoSetSwapInterval
Crashes application when trying to set EGL swap interval on Android 4.0.3 / Pandaboard ES / PowerVR SGX 540 |
static int |
NoSetSwapIntervalPostRetarget
SIGSEGV on setSwapInterval() after changing the context's drawable w/ 'Mesa 8.0.4' dri2SetSwapInterval/DRI2 (soft & intel) |
Constructor Summary | |
---|---|
GLRendererQuirks(int[] quirks,
int offset,
int len)
|
|
GLRendererQuirks(List<Integer> quirks)
|
Method Summary | |
---|---|
boolean |
exist(int quirk)
|
String |
toString()
|
static String |
toString(int quirk)
|
StringBuilder |
toString(StringBuilder sb)
|
static void |
validateQuirk(int quirk)
|
Methods inherited from class java.lang.Object |
---|
equals, getClass, hashCode, notify, notifyAll, wait, wait, wait |
Field Detail |
---|
public static final int NoDoubleBufferedPBuffer
public static final int NoDoubleBufferedBitmap
public static final int NoSetSwapInterval
public static final int NoOffscreenBitmap
public static final int NoSetSwapIntervalPostRetarget
public static final int GLSLBuggyDiscard
discard
command leads to undefined behavior or won't get compiled if being used. Appears to have happened on Nvidia Tegra2, but seems to be fine now. FIXME: Constrain version.
public static final int GLNonCompliant
Mesa >= 9.0 (?), Intel driver, OpenGL 3.1 compatibility context is not compliant:
GL_RENDERER: 'Mesa .* Intel(R) Sandybridge Desktop'
Mesa >= 9.0 (?), AMD driver, OpenGL 3.1 core and compatibility context is not compliant:
GL_RENDERER: 'Gallium 0.4 on AMD RS880'
public static final int GLFlushBeforeRelease
glFlush()
before releasing it, otherwise driver may freeze:
public static final int DontCloseX11Display
Some drivers may require X11 displays to be closed in the same order as they were created, some may not allow them to be closed at all while resources are being used somehow.
Drivers known exposing such bug:
Mesa X11
, not with GLX/DRI renderer.
See Bug 515 - https://jogamp.org/bugzilla/show_bug.cgi?id=515
and X11Util.ATI_HAS_XCLOSEDISPLAY_BUG
.
See Bug 705 - https://jogamp.org/bugzilla/show_bug.cgi?id=705
public static final int NeedCurrCtx4ARBPixFmtQueries
Drivers known exposing such bug:
See Bug 480 - https://jogamp.org/bugzilla/show_bug.cgi?id=480
public static final int NeedCurrCtx4ARBCreateContext
Drivers known exposing such bug:
12.102.3.0
( amd_catalyst_13.5_mobility_beta2 )
See Bug 706 - https://jogamp.org/bugzilla/show_bug.cgi?id=706
See Bug 520 - https://jogamp.org/bugzilla/show_bug.cgi?id=520
public static final int NoFullFBOSupport
jogl.fbo.force.min
.
public static final int COUNT
Constructor Detail |
---|
public GLRendererQuirks(int[] quirks, int offset, int len) throws IllegalArgumentException
quirks
- an array of valid quirksoffset
- offset in quirks array to start readinglen
- number of quirks to read from offset within quirks array
IllegalArgumentException
- if one of the quirks is out of rangepublic GLRendererQuirks(List<Integer> quirks) throws IllegalArgumentException
quirks
- a list of valid quirks
IllegalArgumentException
- if one of the quirks is out of rangeMethod Detail |
---|
public final boolean exist(int quirk) throws IllegalArgumentException
quirk
- the quirk to be tested
IllegalArgumentException
- if quirk is out of rangepublic final StringBuilder toString(StringBuilder sb)
public final String toString()
toString
in class Object
public static void validateQuirk(int quirk) throws IllegalArgumentException
quirk
- the quirk to be validated, i.e. whether it is out of range
IllegalArgumentException
- if quirk is out of rangepublic static final String toString(int quirk) throws IllegalArgumentException
quirk
- the quirk to be converted to String
IllegalArgumentException
- if quirk is out of range
|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |