if you write in header file
static PFNGLGETERRORPROC glGetError;
every c/cpp
have own private copy of glGetError
and it not conflict with other because it static
– so different cpp
files use different versions of glGetError
– in one cpp unit you init one version and it !=0, when you enter to another cpp unit – you worked with uninit version , ant it 0. when you return to original unit – again != 0;
so problem with bad declaration.
you need declare it as
extern PFNGLGETERRORPROC glGetError;
in .h
file and as
PFNGLGETERRORPROC glGetError;
in any single cpp. file.
or declare it as
__declspec(selectany) PFNGLGETERRORPROC glGetError;
2
solved Function Pointers stored in global variables get set to 0 when entering function, and get back to previous state when exiting function