Moved extension function pointer initilization into a method, and the pointers from

being static to be local member variables.  This should avoid issues under Windows
with multiple graphics contexts have seperate entry points.
This commit is contained in:
Robert Osfield
2006-08-02 16:14:17 +00:00
parent 9f15e25451
commit 0336231321
2 changed files with 63 additions and 40 deletions

View File

@@ -999,6 +999,24 @@ class OSG_EXPORT State : public Referenced
mutable bool _isVertexBufferObjectSupported;
bool computeVertexBufferObjectSupported() const;
typedef void (APIENTRY * ActiveTextureProc) (GLenum texture);
typedef void (APIENTRY * FogCoordPointerProc) (GLenum type, GLsizei stride, const GLvoid *pointer);
typedef void (APIENTRY * SecondaryColorPointerProc) (GLint size, GLenum type, GLsizei stride, const GLvoid *pointer);
typedef void (APIENTRY * VertexAttribPointerProc) (unsigned int, GLint, GLenum, GLboolean normalized, GLsizei stride, const GLvoid *pointer);
typedef void (APIENTRY * EnableVertexAttribProc) (unsigned int);
typedef void (APIENTRY * DisableVertexAttribProc) (unsigned int);
bool _extensionProcsInitialized;
ActiveTextureProc _glClientActiveTexture;
ActiveTextureProc _glActiveTexture;
FogCoordPointerProc _glFogCoordPointer;
SecondaryColorPointerProc _glSecondaryColorPointer;
VertexAttribPointerProc _glVertexAttribPointer;
EnableVertexAttribProc _glEnableVertexAttribArray;
DisableVertexAttribProc _glDisableVertexAttribArray;
void initializeExtensionProcs();
};
inline void State::pushModeList(ModeMap& modeMap,const StateSet::ModeList& modeList)