Вы уверены, что правильно определили понтеров?(я имею в виду метод, которым аргументы передаются в функцию)
Например, glEnable
определяется следующим образом:
GL_API void GL_APIENTRY glEnable (GLenum cap);
, где GL_API - KHRONOS_APICALL:
#if defined(_WIN32) && !defined(__SCITECH_SNAP__)
# define KHRONOS_APICALL __declspec(dllimport)
#elif defined (__SYMBIAN32__)
# define KHRONOS_APICALL IMPORT_C
#elif defined(__ANDROID__)
# define KHRONOS_APICALL __attribute__((visibility("default")))
#else
# define KHRONOS_APICALL
#endif
, а GL_APIENTRY - KHRONOS_APIENTRY:
#if defined(_WIN32) && !defined(_WIN32_WCE) && !defined(__SCITECH_SNAP__)
/* Win32 but not WinCE */
# define KHRONOS_APIENTRY __stdcall
#else
# define KHRONOS_APIENTRY
#endif
Таким образом, вы не должны добавлять __stdcall
к объявлениям указателя, т.е. функции GLES используют значение по умолчанию__cdecl
соглашение (а не __fastcall
).