]> git.tdb.fi Git - libs/gl.git/blobdiff - source/texture1d.cpp
Use explicit mipmap generation if necessary
[libs/gl.git] / source / texture1d.cpp
index bcebca49565131eb738ba471af992cbe0e05c1a9..accd0e0c06c76a4bfe0b91f828cc840c5becff49 100644 (file)
@@ -1,3 +1,4 @@
+#include <msp/gl/extensions/msp_texture1d.h>
 #include "bindable.h"
 #include "error.h"
 #include "texture1d.h"
@@ -9,9 +10,12 @@ namespace GL {
 
 Texture1D::Texture1D():
        Texture(GL_TEXTURE_1D),
+       ifmt(RGB),
        width(0),
        allocated(0)
-{ }
+{
+       static Require _req(MSP_texture1D);
+}
 
 void Texture1D::storage(PixelFormat fmt, unsigned wd)
 {
@@ -46,6 +50,7 @@ void Texture1D::image(unsigned level, PixelFormat fmt, DataType type, const void
        allocated |= 1<<level;
        if(gen_mipmap && level==0)
        {
+               auto_generate_mipmap();
                for(; w; w>>=1, ++level) ;
                allocated |= (1<<level)-1;
        }
@@ -56,5 +61,10 @@ unsigned Texture1D::get_level_size(unsigned level)
        return width>>level;
 }
 
+UInt64 Texture1D::get_data_size() const
+{
+       return id ? width*get_pixel_size(ifmt) : 0;
+}
+
 } // namespace GL
 } // namespace Msp