+GLenum get_gl_filter(TextureFilter filter)
+{
+ switch(filter)
+ {
+ case NEAREST: return GL_NEAREST;
+ case LINEAR: return GL_LINEAR;
+ case NEAREST_MIPMAP_NEAREST: return GL_NEAREST_MIPMAP_NEAREST;
+ case NEAREST_MIPMAP_LINEAR: return GL_NEAREST_MIPMAP_LINEAR;
+ case LINEAR_MIPMAP_NEAREST: return GL_LINEAR_MIPMAP_NEAREST;
+ case LINEAR_MIPMAP_LINEAR: return GL_LINEAR_MIPMAP_LINEAR;
+ default: throw invalid_argument("get_gl_filter");
+ }
+}
+
+GLenum get_gl_wrap(TextureWrap wrap)
+{
+ switch(wrap)
+ {
+ case REPEAT: return GL_REPEAT;
+ case CLAMP_TO_EDGE: return GL_CLAMP_TO_EDGE;
+ case CLAMP_TO_BORDER: return GL_CLAMP_TO_BORDER;
+ case MIRRORED_REPEAT: return GL_MIRRORED_REPEAT;
+ default: throw invalid_argument("get_gl_wrap");
+ }
+}
+