#ifndef __TOGL_SHADERSPROC
#define __TOGL_SHADERSPROC

#include "common.h"

#if defined(HAVE_LIBGLM) && (defined(HAVE_LIBGL) || defined(HAVE_LIBOSMESA))
#define GLEW_NO_GLU
#include <GL/glew.h>
#endif

#ifdef HAVE_LIBGLM
#include "glmCommon.h"
#endif

#include <string>

extern int GLSLversion;

typedef std::pair<std::string, int> ShaderfileModePair;

#ifdef HAVE_GL
GLuint compileAndLinkShader(
  std::vector<ShaderfileModePair> const& shaders,
  std::vector<std::string> const& defineflags, bool ssbo=true,
  bool interlock=false, bool compute=false, bool test=false);

GLuint createShaderFile(std::string file, int shaderType,
                        std::vector<std::string> const& constflags,
                        bool ssbo, bool interlock, bool compute, bool test);

enum attrib {positionAttrib=0,normalAttrib,materialAttrib,colorAttrib,
             widthAttrib};
#endif

#endif
