/************************************************************************ Test the availability of various OpenGL extensions by Michael Garland, 2001. $Id: t-glext.cxx 426 2004-09-27 04:34:55Z garland $ ************************************************************************/ #include #include #include #include using namespace std; class GUI : public MxGUI { public: virtual void setup_for_drawing(); }; GUI gui; static void dump_string(ostream &out, const string& str) { const char *ws = " \t\n\r"; string::size_type start, end; start = 0; end = str.find_first_of(ws, start); while( end!=string::npos ) { out << " " << str.substr(start, end-start) << endl; start = str.find_first_not_of(ws, end); end = str.find_first_of(ws, start); } } void GUI::setup_for_drawing() { ofstream log("glext.txt"); string gl_extensions = (char *)glGetString(GL_EXTENSIONS); log << "OpenGL extensions" << endl << "-----------------" << endl; dump_string(log, gl_extensions); log << endl << endl; #ifdef HAVE_GL_WGLEXT_H PFNWGLGETEXTENSIONSSTRINGARBPROC wglGetExtensionsStringARB = (PFNWGLGETEXTENSIONSSTRINGARBPROC) wglGetProcAddress("wglGetExtensionsStringARB"); if( !wglGetExtensionsStringARB ) { log << "Couldn't find wglGetExtensionsStringARB." << endl; exit(-1); } else { string wgl_extensions = wglGetExtensionsStringARB(wglGetCurrentDC()); log << "WGL extensions" << endl << "--------------" << endl; dump_string(log, wgl_extensions); } #endif exit(0); } int main(int argc, char **argv) { gui.initialize(argc, argv); return gui.run(); }