]> git.tdb.fi Git - libs/gl.git/blobdiff - source/texturecube.cpp
Prefer explicit mipmap generation with glGenerateMipmap
[libs/gl.git] / source / texturecube.cpp
index 54a008ca50930054ee6c99507c27c032f4ff4e6c..a9961af90a3900660f2e2c71a5a46be8820f6441 100644 (file)
@@ -79,9 +79,9 @@ void TextureCube::image(TextureCubeFace face, unsigned level, PixelFormat fmt, D
 
        BindRestore _bind(this);
        if(ARB_texture_storage)
-               sub_image(face, level, 0, 0, s, s, fmt, type, data);
-       else
-               glTexImage2D(face, level, ifmt, s, s, 0, fmt, type, data);
+               return sub_image(face, level, 0, 0, s, s, fmt, type, data);
+
+       glTexImage2D(face, level, ifmt, s, s, 0, fmt, type, data);
 
        // XXX Allocation should be tracked per-face, but we'll run out of bits
        allocated |= 1<<level;
@@ -102,6 +102,9 @@ void TextureCube::sub_image(TextureCubeFace face, unsigned level, int x, int y,
 
        BindRestore _bind(this);
        glTexSubImage2D(face, level, x, y, wd, ht, fmt, type, data);
+
+       if(gen_mipmap && level==0)
+               auto_generate_mipmap();
 }
 
 void TextureCube::image(TextureCubeFace face, const Graphics::Image &img, bool srgb)