]> git.tdb.fi Git - libs/gl.git/blobdiff - source/core/texture.cpp
Refactor texture ID generation into a function
[libs/gl.git] / source / core / texture.cpp
index 3a4b1096f99cb2edee54137194f64cb3b805b808..3eb48b8b2eb426dafebd1791ab11d4fba09b4c63 100644 (file)
@@ -34,10 +34,8 @@ Texture::Texture(GLenum t, ResourceManager *m):
 {
        if(m)
                set_manager(m);
-       else if(ARB_direct_state_access)
-               glCreateTextures(target, 1, &id);
        else
-               glGenTextures(1, &id);
+               generate_id();
 }
 
 Texture::~Texture()
@@ -49,6 +47,16 @@ Texture::~Texture()
                glDeleteTextures(1, &id);
 }
 
+void Texture::generate_id()
+{
+       if(id)
+               throw invalid_operation("Texture::generate_id");
+       if(ARB_direct_state_access)
+               glCreateTextures(target, 1, &id);
+       else
+               glGenTextures(1, &id);
+}
+
 void Texture::set_format(PixelFormat fmt)
 {
        PixelComponents comp = get_components(fmt);