+++ /dev/null
-/* $Id$
-
-This file is part of libmspgl
-Copyright © 2007 Mikko Rasa, Mikkosoft Productions
-Distributed under the LGPL
-*/
-
-#include <set>
-#include <GL/gl.h>
-#ifndef WIN32
-#include <GL/glx.h>
-#endif
-#include <msp/strings/utils.h>
-#include "arb_shader_objects.h"
-#include "arb_vertex_shader.h"
-#include "except.h"
-#include "extension.h"
-
-using namespace std;
-
-namespace Msp {
-namespace GL {
-
-bool is_supported(const string &ext)
-{
- static set<string> extensions;
- static bool init_done=false;
-
- if(!init_done)
- {
- if(const char *gl_ext=reinterpret_cast<const char *>(glGetString(GL_EXTENSIONS)))
- {
- vector<string> exts=split(gl_ext);
- extensions.insert(exts.begin(), exts.end());
- }
-
- /* XXX Conceptually a bit weird place for this, but I couldn't really come up
- with anything better that would still be transparent. */
- if(extensions.count("GL_ARB_shader_objects"))
- init_arb_shader_objects();
- if(extensions.count("GL_ARB_vertex_shader"))
- init_arb_vertex_shader();
-
- init_done=true;
- }
-
- return extensions.count(ext);
-}
-
-void require_extension(const string &ext)
-{
- if(!is_supported(ext))
- throw UnsupportedExtension(ext+" is not supported");
-}
-
-ExtFunc *get_proc_address(const string &name)
-{
-#ifndef WIN32
- return glXGetProcAddress(reinterpret_cast<const GLubyte *>(name.c_str()));
-#endif
-}
-
-} // namespace GL
-} // namespace Msp