diff options
author | Sven Gothel <[email protected]> | 2012-10-29 15:42:44 +0100 |
---|---|---|
committer | Sven Gothel <[email protected]> | 2012-10-29 15:42:44 +0100 |
commit | b961225542227ec30f4b79c4425384e7e161437c (patch) | |
tree | e7407002e0558291ae27618fa2ef49cb81011ad2 /src/jogl/classes/javax/media/opengl/GLContext.java | |
parent | 3c8a814d7fb536f298507413f290309ed7c0f24e (diff) |
GLRendererQuirks.RequiresBoundVAO: Removed, it _is_ in the GL 3.2 core spec - Setting up default VAO for all GL >= 3.2 core ctx.
Refines commit 9b6448b1d54716fd455c0cad0c6133c0edeb3bb8
Due to GL 3.2 core spec: E.2. DEPRECATED AND REMOVED FEATURES (p 331)
"There is no more default VAO buffer 0 bound, hence generating and binding one
to avoid INVALID_OPERATION at VertexAttribPointer."
More clear is GL 4.3 core spec: 10.4 (p 307):
"An INVALID_OPERATION error is generated by any commands which
modify, draw from, or query vertex array state when no vertex array is bound.
This occurs in the initial GL state, and may occur as a result of BindVertexAr-
ray or a side effect of DeleteVertexArrays."
+++
I just have read (same spec) 2.10 (p 46/47):
"An INVALID_OPERATION error is generated if any of the *Pointer commands
specifying the location and organization of vertex array data are called while zero
is bound to the ARRAY_BUFFER buffer object binding point, and the pointer argu-
ment is not NULL."
.. which only constraints the *Pointer command use to _VBO_, not forcing a VAO.
+++
Diffstat (limited to 'src/jogl/classes/javax/media/opengl/GLContext.java')
-rw-r--r-- | src/jogl/classes/javax/media/opengl/GLContext.java | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/src/jogl/classes/javax/media/opengl/GLContext.java b/src/jogl/classes/javax/media/opengl/GLContext.java index ddb222bfe..de10a2815 100644 --- a/src/jogl/classes/javax/media/opengl/GLContext.java +++ b/src/jogl/classes/javax/media/opengl/GLContext.java @@ -814,6 +814,12 @@ public abstract class GLContext { && 0 != (ctxOptions & (CTX_PROFILE_COMPAT|CTX_PROFILE_CORE)); } + /** Indicates whether this profile is capable of GL4 (core only). <p>Includes [ GL4 ].</p> */ + public final boolean isGL4core() { + return ctxMajorVersion>=4 && 0 != (ctxOptions & CTX_IS_ARB_CREATED) + && 0 != (ctxOptions & CTX_PROFILE_CORE); + } + /** @see GLProfile#isGL3bc() */ public final boolean isGL3bc() { return ( ctxMajorVersion>3 || ctxMajorVersion==3 && ctxMinorVersion>=1 ) @@ -828,6 +834,13 @@ public abstract class GLContext { && 0 != (ctxOptions & (CTX_PROFILE_COMPAT|CTX_PROFILE_CORE)); } + /** Indicates whether this profile is capable of GL3 (core only). <p>Includes [ GL4, GL3 ].</p> */ + public final boolean isGL3core() { + return ( ctxMajorVersion>3 || ctxMajorVersion==3 && ctxMinorVersion>=1 ) + && 0 != (ctxOptions & CTX_IS_ARB_CREATED) + && 0 != (ctxOptions & CTX_PROFILE_CORE); + } + /** @see GLProfile#isGL2() */ public final boolean isGL2() { return ctxMajorVersion>=1 && 0!=(ctxOptions & CTX_PROFILE_COMPAT); |