Added support for Bindless texture extension,

64 bit uniforms, 64 bit buffers
Added new bindless texture example
This commit is contained in:
d-a-heitbrink
2017-01-13 09:56:42 -06:00
parent 18369bed2d
commit 3d2f4ea404
16 changed files with 171 additions and 10 deletions

View File

@@ -319,6 +319,22 @@ class OSG_EXPORT GLExtensions : public osg::Referenced
void (GL_APIENTRY * glUniform2uiv)( GLint location, GLsizei count, const GLuint *value );
void (GL_APIENTRY * glUniform3uiv)( GLint location, GLsizei count, const GLuint *value );
void (GL_APIENTRY * glUniform4uiv)( GLint location, GLsizei count, const GLuint *value );
void (GL_APIENTRY * glUniform1i64 )(GLint location, GLint64 x) ;
void (GL_APIENTRY * glUniform1i64v )(GLint location, GLsizei count, const GLint64* value) ;
void (GL_APIENTRY * glUniform1ui64 )(GLint location, GLuint64 x) ;
void (GL_APIENTRY * glUniform1ui64v)(GLint location, GLsizei count, const GLuint64* value) ;
void (GL_APIENTRY * glUniform2i64 )(GLint location, GLint64 x, GLint64 y) ;
void (GL_APIENTRY * glUniform2i64v )(GLint location, GLsizei count, const GLint64* value) ;
void (GL_APIENTRY * glUniform2ui64 )(GLint location, GLuint64 x, GLuint64 y) ;
void (GL_APIENTRY * glUniform2ui64v)(GLint location, GLsizei count, const GLuint64* value) ;
void (GL_APIENTRY * glUniform3i64 )(GLint location, GLint64 x, GLint64 y, GLint64 z) ;
void (GL_APIENTRY * glUniform3i64v )(GLint location, GLsizei count, const GLint64* value) ;
void (GL_APIENTRY * glUniform3ui64 )(GLint location, GLuint64 x, GLuint64 y, GLuint64 z) ;
void (GL_APIENTRY * glUniform3ui64v)(GLint location, GLsizei count, const GLuint64* value) ;
void (GL_APIENTRY * glUniform4i64 )(GLint location, GLint64 x, GLint64 y, GLint64 z, GLint64 w) ;
void (GL_APIENTRY * glUniform4i64v )(GLint location, GLsizei count, const GLint64* value) ;
void (GL_APIENTRY * glUniform4ui64 )(GLint location, GLuint64 x, GLuint64 y, GLuint64 z, GLuint64 w) ;
void (GL_APIENTRY * glUniform4ui64v)(GLint location, GLsizei count, const GLuint64* value) ;
GLuint (GL_APIENTRY * glGetHandleARB) (GLenum pname);
void (GL_APIENTRY * glGetUniformIndices)(GLuint program, GLsizei uniformCount, const GLchar* *uniformNames, GLuint *uniformIndices);
void (GL_APIENTRY * glGetActiveUniformsiv)(GLuint program, GLsizei uniformCount, const GLuint *uniformIndices, GLenum pname, GLint *params);
@@ -348,7 +364,11 @@ class OSG_EXPORT GLExtensions : public osg::Referenced
void (GL_APIENTRY * glUniformMatrix4x3dv)( GLint location, GLsizei count, GLboolean transpose, const GLdouble* value );
void (GL_APIENTRY * glGetActiveAtomicCounterBufferiv)( GLuint program, GLuint bufferIndex, GLenum pname, GLint* params );
void (GL_APIENTRY * glDispatchCompute)( GLuint numGroupsX, GLuint numGroupsY, GLuint numGroupsZ );
GLuint64EXT (GL_APIENTRY* glGetTextureHandle)(GLint texture);
void (GL_APIENTRY* glMakeTextureHandleResident)(GLuint64EXT handle);
void (GL_APIENTRY* glMakeTextureHandleNonResident)(GLuint64EXT handle);
void (GL_APIENTRY* glUniformHandleui64)(GLint location, GLuint64EXT handle);
GLboolean (GL_APIENTRY* glIsTextureHandleResident)(GLuint64EXT handle);
// Buffer Object extensions
bool isBufferObjectSupported;