MOved SampleMaski::Extensions into osg::GL2Extensions

git-svn-id: http://svn.openscenegraph.org/osg/OpenSceneGraph/trunk@14577 16af8721-9629-0410-8352-f15c8da7e697
This commit is contained in:
Robert Osfield
2014-12-07 17:31:49 +00:00
parent 9b03b3f8ce
commit bc424bc54f
5 changed files with 36 additions and 178 deletions

View File

@@ -805,33 +805,8 @@ class OSG_EXPORT GL2Extensions : public osg::Referenced
void (GL_APIENTRY * glMultiTexCoord2dv) (GLenum target,const GLdouble* coord);
void (GL_APIENTRY * glMultiTexCoord3dv) (GLenum target,const GLdouble* coord);
void (GL_APIENTRY * glMultiTexCoord4dv) (GLenum target,const GLdouble* coord);
#if 0
void (GL_APIENTRY * glVertexAttrib1s) (unsigned int index, GLshort s);
void (GL_APIENTRY * glVertexAttrib1f) (unsigned int index, GLfloat f);
void (GL_APIENTRY * glVertexAttrib1d) (unsigned int index, GLdouble f);
void (GL_APIENTRY * glVertexAttrib2fv) (unsigned int index, const GLfloat * v);
void (GL_APIENTRY * glVertexAttrib3fv) (unsigned int index, const GLfloat * v);
void (GL_APIENTRY * glVertexAttrib4fv) (unsigned int index, const GLfloat * v);
void (GL_APIENTRY * glVertexAttrib2dv) (unsigned int index, const GLdouble * v);
void (GL_APIENTRY * glVertexAttrib3dv) (unsigned int index, const GLdouble * v);
void (GL_APIENTRY * glVertexAttrib4dv) (unsigned int index, const GLdouble * v);
void (GL_APIENTRY * glVertexAttrib4ubv) (unsigned int index, const GLubyte * v);
void (GL_APIENTRY * glVertexAttrib4Nubv) (unsigned int index, const GLubyte * v);
void (GL_APIENTRY * glGenBuffers) (GLsizei n, GLuint *buffers);
void (GL_APIENTRY * glBindBuffer (GLenum target, GLuint buffer);
void (GL_APIENTRY * glBufferData (GLenum target, GLsizeiptr size, const GLvoid *data, GLenum usage);
void (GL_APIENTRY * glBufferSubData (GLenum target, GLintptr offset, GLsizeiptr size, const GLvoid *data);
void (GL_APIENTRY * glDeleteBuffers (GLsizei n, const GLuint *buffers);
GLboolean (GL_APIENTRY * glIsBuffer (GLuint buffer);
void (GL_APIENTRY * glGetBufferSubData (GLenum target, GLintptr offset, GLsizeiptr size, GLvoid *data);
GLvoid* (GL_APIENTRY * glMapBuffer (GLenum target, GLenum access);
GLboolean (GL_APIENTRY * glUnmapBuffer (GLenum target);
void (GL_APIENTRY * glGetBufferParameteriv (GLenum target, GLenum pname, GLint *params);
void (GL_APIENTRY * glGetBufferPointerv (GLenum target, GLenum pname, GLvoid* *params);
#endif
// Occlusion Query extensions
void (GL_APIENTRY * glGenOcclusionQueries) ( GLsizei n, GLuint *ids );
void (GL_APIENTRY * glDeleteOcclusionQueries) ( GLsizei n, const GLuint *ids );
GLboolean (GL_APIENTRY * glIsOcclusionQuery) ( GLuint id );
@@ -852,6 +827,14 @@ class OSG_EXPORT GL2Extensions : public osg::Referenced
void (GL_APIENTRY * glGetQueryObjectui64v) (GLuint id, GLenum pname, GLuint64 *params);
void (GL_APIENTRY * glGetInteger64v) (GLenum pname, GLint64 *params);
// SampleMaski functionality
bool isOpenGL32upported;
bool isTextureMultisampleSupported;
bool isSampleMaskiSupported;
void (GL_APIENTRY * glSampleMaski) (GLuint maskNumber, GLbitfield mask);
};
}

View File

@@ -18,7 +18,7 @@
namespace osg {
/**
/**
* osg::SampleMaski does nothing if OpenGL 3.2 or ARB_texture_multisample are not available.
*/
class OSG_EXPORT SampleMaski : public StateAttribute
@@ -34,54 +34,13 @@ class OSG_EXPORT SampleMaski : public StateAttribute
/** return -1 if *this < *rhs, 0 if *this==*rhs, 1 if *this>*rhs.*/
virtual int compare(const StateAttribute& sa) const;
inline void setMask(unsigned int mask, unsigned int maskNumber = 0u ) { _sampleMask[maskNumber] = mask; }
inline unsigned int getMask(unsigned int maskNumber = 0u) const { return _sampleMask[maskNumber]; }
virtual void apply(State& state) const;
public:
/** Extensions class which encapsulates the querying of extensions and
* associated function pointers, and provide convenience wrappers to
* check for the extensions or use the associated functions.
*/
class OSG_EXPORT Extensions : public osg::Referenced
{
public:
Extensions(unsigned int contextID);
Extensions(const Extensions& rhs);
void lowestCommonDenominator(const Extensions& rhs);
void setupGLExtensions(unsigned int contextID);
bool isOpenGL32upported() const { return _isOpenGL32upported; }
bool isTextureMultisampleSupported() const { return _isTextureMultisampleSupported; }
bool isSampleMaskiSupported() const { return _isSampleMaskiSupported; }
void glSampleMaski(GLuint maskNumber, GLbitfield mask) const;
protected:
~Extensions() {}
bool _isOpenGL32upported;
bool _isTextureMultisampleSupported;
bool _isSampleMaskiSupported;
typedef void (GL_APIENTRY * SampleMaski) ( GLuint maskNumber, GLbitfield mask );
SampleMaski _glSampleMaski;
};
static Extensions* getExtensions(unsigned int contextID,bool createIfNotInitalized);
static void setExtensions(unsigned int contextID,Extensions* extensions);
protected:
virtual ~SampleMaski();