Index: trunk/src/gl/gl_device.cc
===================================================================
--- trunk/src/gl/gl_device.cc	(revision 45)
+++ trunk/src/gl/gl_device.cc	(revision 49)
@@ -67,7 +67,7 @@
 }
 
-texture2d* gl_device::create_texture2d( ivec2 size, texture2d::format aformat, texture2d::datatype adatatype, texture2d_sampler sampler, void* data /*= nullptr */ )
+texture2d* gl_device::create_texture2d( ivec2 size, image_format aformat, type adatatype, sampler asampler, void* data /*= nullptr */ )
 {
-	return new gl_texture2d( size, aformat, adatatype, sampler, data );
+	return new gl_texture2d( size, aformat, adatatype, asampler, data );
 }
 
Index: trunk/src/gl/gl_enum.cc
===================================================================
--- trunk/src/gl/gl_enum.cc	(revision 45)
+++ trunk/src/gl/gl_enum.cc	(revision 49)
@@ -134,47 +134,36 @@
 }
 
-unsigned int nv::texture_format_to_enum( texture2d::format format )
+unsigned int nv::image_format_to_enum( image_format format )
 {
 	switch( format )
 	{
-	case texture2d::RGB  : return GL_RGB;
-	case texture2d::RGBA : return GL_RGBA;
-	default : return 0; // TODO: throw!
-	}
-}
-
-unsigned int nv::texture_datatype_to_enum( texture2d::datatype datatype )
-{
-	switch( datatype )
-	{
-	case texture2d::UINT   : return GL_UNSIGNED_INT;
-	case texture2d::UBYTE  : return GL_UNSIGNED_BYTE;
-	case texture2d::FLOAT  : return GL_FLOAT;
-	default : return 0; // TODO: throw!
-	}
-}
-
-unsigned int nv::texture_filter_to_enum( texture2d_sampler::filter filter )
+	case RGB  : return GL_RGB;
+	case RGBA : return GL_RGBA;
+	default : return 0; // TODO: throw!
+	}
+}
+
+unsigned int nv::sampler_filter_to_enum( sampler::filter filter )
 {
 	switch( filter )
 	{
-	case texture2d_sampler::LINEAR                 : return GL_LINEAR;
-	case texture2d_sampler::NEAREST                : return GL_NEAREST;
-	case texture2d_sampler::NEAREST_MIPMAP_NEAREST : return GL_NEAREST_MIPMAP_NEAREST;
-	case texture2d_sampler::LINEAR_MIPMAP_NEAREST  : return GL_LINEAR_MIPMAP_NEAREST;
-	case texture2d_sampler::NEAREST_MIPMAP_LINEAR  : return GL_NEAREST_MIPMAP_LINEAR;
-	case texture2d_sampler::LINEAR_MIPMAP_LINEAR   : return GL_LINEAR_MIPMAP_LINEAR;
-	default : return 0; // TODO: throw!
-	}
-}
-
-unsigned int nv::texture_wrap_to_enum( texture2d_sampler::wrap wrap )
+	case sampler::LINEAR                 : return GL_LINEAR;
+	case sampler::NEAREST                : return GL_NEAREST;
+	case sampler::NEAREST_MIPMAP_NEAREST : return GL_NEAREST_MIPMAP_NEAREST;
+	case sampler::LINEAR_MIPMAP_NEAREST  : return GL_LINEAR_MIPMAP_NEAREST;
+	case sampler::NEAREST_MIPMAP_LINEAR  : return GL_NEAREST_MIPMAP_LINEAR;
+	case sampler::LINEAR_MIPMAP_LINEAR   : return GL_LINEAR_MIPMAP_LINEAR;
+	default : return 0; // TODO: throw!
+	}
+}
+
+unsigned int nv::sampler_wrap_to_enum( sampler::wrap wrap )
 {
 	switch( wrap )
 	{
-	case texture2d_sampler::CLAMP_TO_EDGE   : return GL_CLAMP_TO_EDGE;
-	case texture2d_sampler::CLAMP_TO_BORDER : return GL_CLAMP_TO_BORDER;
-	case texture2d_sampler::MIRRORED_REPEAT : return GL_MIRRORED_REPEAT;
-	case texture2d_sampler::REPEAT          : return GL_REPEAT;
+	case sampler::CLAMP_TO_EDGE   : return GL_CLAMP_TO_EDGE;
+	case sampler::CLAMP_TO_BORDER : return GL_CLAMP_TO_BORDER;
+	case sampler::MIRRORED_REPEAT : return GL_MIRRORED_REPEAT;
+	case sampler::REPEAT          : return GL_REPEAT;
 	default : return 0; // TODO: throw!
 	}
Index: trunk/src/gl/gl_texture2d.cc
===================================================================
--- trunk/src/gl/gl_texture2d.cc	(revision 45)
+++ trunk/src/gl/gl_texture2d.cc	(revision 49)
@@ -10,13 +10,13 @@
 using namespace nv;
 
-nv::gl_texture2d::gl_texture2d( ivec2 size, format aformat, datatype adatatype, texture2d_sampler sampler, void* data /*= nullptr */ )
-	: texture2d( size, aformat, adatatype, sampler ), m_name()
+nv::gl_texture2d::gl_texture2d( ivec2 size, image_format aformat, type adatatype, sampler asampler, void* data /*= nullptr */ )
+	: texture2d( size, aformat, adatatype, asampler ), m_name()
 {
 	glBindTexture( GL_TEXTURE_2D, m_name.get_value() );
 
-	glTexParameteri( GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, nv::texture_filter_to_enum( m_sampler.filter_min ) );
-	glTexParameteri( GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, nv::texture_filter_to_enum( m_sampler.filter_max ) );
-	glTexParameteri( GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, nv::texture_wrap_to_enum( m_sampler.wrap_s) );
-	glTexParameteri( GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, nv::texture_wrap_to_enum( m_sampler.wrap_t) );
+	glTexParameteri( GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, nv::sampler_filter_to_enum( m_sampler.filter_min ) );
+	glTexParameteri( GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, nv::sampler_filter_to_enum( m_sampler.filter_max ) );
+	glTexParameteri( GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, nv::sampler_wrap_to_enum( m_sampler.wrap_s) );
+	glTexParameteri( GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, nv::sampler_wrap_to_enum( m_sampler.wrap_t) );
 
 	glBindTexture( GL_TEXTURE_2D, 0 );
@@ -31,5 +31,5 @@
 {
 	glBindTexture( GL_TEXTURE_2D, m_name.get_value() );
-	glTexImage2D( GL_TEXTURE_2D, 0, nv::texture_format_to_enum(m_format), m_size.x, m_size.y, 0, nv::texture_format_to_enum(m_format), nv::texture_datatype_to_enum(m_datatype), data );
+	glTexImage2D( GL_TEXTURE_2D, 0, nv::image_format_to_enum(m_format), m_size.x, m_size.y, 0, nv::image_format_to_enum(m_format), nv::type_to_gl_enum(m_datatype), data );
 	glBindTexture( GL_TEXTURE_2D, 0 );
 }
