From cbd7bf1d65a253381b0775d57c0c949c75aef008 Mon Sep 17 00:00:00 2001 From: Sven Gothel Date: Fri, 31 May 2013 11:16:01 +0200 Subject: GLVersionNumber.createVendorVersion(): Only test match result and potentially continue matching if having a pattern-match (don't loop for-ever). --- .../com/jogamp/opengl/GLRendererQuirks.java | 42 ++++++++++++++++++++-- 1 file changed, 40 insertions(+), 2 deletions(-) (limited to 'src/jogl/classes/com/jogamp/opengl/GLRendererQuirks.java') diff --git a/src/jogl/classes/com/jogamp/opengl/GLRendererQuirks.java b/src/jogl/classes/com/jogamp/opengl/GLRendererQuirks.java index 78bd62e42..36893f5ec 100644 --- a/src/jogl/classes/com/jogamp/opengl/GLRendererQuirks.java +++ b/src/jogl/classes/com/jogamp/opengl/GLRendererQuirks.java @@ -27,6 +27,8 @@ */ package com.jogamp.opengl; +import java.util.List; + /** * GLRendererQuirks contains information of known bugs of various GL renderer. * This information allows us to workaround them. @@ -151,14 +153,36 @@ public class GLRendererQuirks { */ public static final int NeedCurrCtx4ARBCreateContext = 10; + /** + * No full FBO support, i.e. not compliant w/ + * . + * Drivers known exposing such bug: + * + * Quirk can also be enabled via property: jogl.fbo.force.min. + */ + public static final int NoFullFBOSupport = 11; + /** Number of quirks known. */ - public static final int COUNT = 11; + public static final int COUNT = 12; private static final String[] _names = new String[] { "NoDoubleBufferedPBuffer", "NoDoubleBufferedBitmap", "NoSetSwapInterval", "NoOffscreenBitmap", "NoSetSwapIntervalPostRetarget", "GLSLBuggyDiscard", "GLNonCompliant", "GLFlushBeforeRelease", "DontCloseX11Display", - "NeedCurrCtx4ARBPixFmtQueries", "NeedCurrCtx4ARBCreateContext" + "NeedCurrCtx4ARBPixFmtQueries", "NeedCurrCtx4ARBCreateContext", + "NoFullFBOSupport" }; private final int _bitmask; @@ -182,6 +206,20 @@ public class GLRendererQuirks { _bitmask = bitmask; } + /** + * @param quirks a list of valid quirks + * @throws IllegalArgumentException if one of the quirks is out of range + */ + public GLRendererQuirks(List quirks) throws IllegalArgumentException { + int bitmask = 0; + for(int i=0; i