From 45a42f7c7f7fce4e6c7eb495591c438bdf0170a2 Mon Sep 17 00:00:00 2001 From: Sven Gothel Date: Thu, 22 Mar 2012 17:38:28 +0100 Subject: Reviewed JOGL GlueGen Tags: NIODirectOnly - Removed where not technically required. Added comment reasoning NIODirectOnly. Impacts code generation for the relaxed methods where NIODirectOnly tag is removed, i.e. it allows an array-backed Buffer object to be passed. --- make/config/jogl/cg-common.cfg | 1 + make/config/jogl/gl-common.cfg | 59 ++++++++++++++++++++---------------------- 2 files changed, 29 insertions(+), 31 deletions(-) diff --git a/make/config/jogl/cg-common.cfg b/make/config/jogl/cg-common.cfg index f21ece3fd..35805bf01 100644 --- a/make/config/jogl/cg-common.cfg +++ b/make/config/jogl/cg-common.cfg @@ -108,6 +108,7 @@ Import com.jogamp.opengl.cg.CgDynamicLibraryBundleInfo # # NIODirectOnly directives for routines requiring them for semantic reasons +# essential where the buffer lifecycle extends the function call # NIODirectOnly cgGLSetParameterPointer diff --git a/make/config/jogl/gl-common.cfg b/make/config/jogl/gl-common.cfg index 046ff1a79..d686c03f3 100644 --- a/make/config/jogl/gl-common.cfg +++ b/make/config/jogl/gl-common.cfg @@ -360,51 +360,48 @@ ReturnsString glGetStringi # # NIODirectOnly directives for vertex arrays and other core routines +# essential where the buffer lifecycle extends the function call +# or where a Buffer argument shall hold return values +# (no guarantee of pinpoint array memory access). +# The latter is not handled by GlueGen, and would be expensive! +# +# Note: API calls like glColorPointer(..) will not be exploded to +# multiple primitive arrays, since the pointer argument is 'void *'. # -NIODirectOnly glColorPointer -NIODirectOnly glEdgeFlagPointer +#NIO Review: No technical reason to constrain array access for these: +#NIODirectOnly glColorPointer +#NIODirectOnly glEdgeFlagPointer +#NIODirectOnly glIndexPointer +#NIODirectOnly glNormalPointer +#NIODirectOnly glTexCoordPointer +#NIODirectOnly glVertexPointer +#NIODirectOnly glVertexAttribPointer +#NIODirectOnly glFogCoordPointer +#NIODirectOnly glSecondaryColorPointer +NIODirectOnly glGetPointerv NIODirectOnly glFeedbackBuffer -NIODirectOnly glIndexPointer -NIODirectOnly glNormalPointer NIODirectOnly glSelectBuffer -NIODirectOnly glTexCoordPointer -NIODirectOnly glVertexPointer -# -# FIXME: we should probably be ignoring the "EXT" variants of these -# -NIODirectOnly glColorPointerEXT -NIODirectOnly glEdgeFlagPointerEXT -NIODirectOnly glIndexPointerEXT -NIODirectOnly glNormalPointerEXT -NIODirectOnly glTexCoordPointerEXT -NIODirectOnly glVertexPointerEXT +NIODirectOnly glGetBufferSubData + # # NIODirectOnly directives for other extensions # -NIODirectOnly glBinormalPointerEXT -NIODirectOnly glGetBufferSubDataARB -# FIXME: should add way to restrict argument to be a direct ByteBuffer +#NIO Review: No technical reason to constrain array access for these: +#NIODirectOnly glMatrixIndexPointerARB NIODirectOnly glGetProgramStringARB -NIODirectOnly glElementPointerATI -NIODirectOnly glElementPointerNV -NIODirectOnly glElementPointerAPPLE -NIODirectOnly glFogCoordPointer -NIODirectOnly glFogCoordPointerEXT -NIODirectOnly glMatrixIndexPointerARB NIODirectOnly glPixelDataRangeNV -NIODirectOnly glSecondaryColorPointer -NIODirectOnly glSecondaryColorPointerEXT -NIODirectOnly glTangentPointerEXT NIODirectOnly glVertexArrayRangeNV NIODirectOnly glVertexArrayRangeApple -NIODirectOnly glVertexAttribPointerARB -NIODirectOnly glVertexAttribPointerNV -NIODirectOnly glVertexWeightPointerEXT -NIODirectOnly glWeightPointerARB NIODirectOnly wglFreeMemoryNV NIODirectOnly glXFreeMemoryNV +# +# NIOOnly for a few API calls .. +# +NIOOnly glVertexAttribPointerNV +NIOOnly glVertexWeightPointerEXT + # Capacity of wglAllocateMemoryNV/glXAllocateMemoryNV return value is # same as value of first argument ReturnValueCapacity wglAllocateMemoryNV {0} -- cgit v1.2.3