]> git.tdb.fi Git - libs/gl.git/blobdiff - source/texture2d.cpp
Additional overloads for creating pipelines
[libs/gl.git] / source / texture2d.cpp
index 75b84ec7bbe5747c17ee47b137ba56df33e9101e..7ce18d00a9fa075b5df6b2a5ea1dac741411165f 100644 (file)
@@ -95,7 +95,7 @@ void Texture2D::image(unsigned level, PixelFormat fmt, DataType type, const void
                return sub_image(level, 0, 0, w, h, fmt, type, data);
 
        BindRestore _bind(this);
-       glTexImage2D(target, level, ifmt, w, h, 0, fmt, type, data);
+       glTexImage2D(target, level, ifmt, w, h, 0, get_upload_format(fmt), type, data);
 
        allocated |= 1<<level;
        if(gen_mipmap && level==0)
@@ -113,6 +113,7 @@ void Texture2D::sub_image(unsigned level, int x, int y, unsigned wd, unsigned ht
        Conditional<BindRestore> _bind(!ARB_direct_state_access, this);
        allocate(level);
 
+       fmt = get_upload_format(fmt);
        if(ARB_direct_state_access)
                glTextureSubImage2D(id, level, x, y, wd, ht, fmt, type, data);
        else
@@ -171,7 +172,7 @@ Resource::AsyncLoader *Texture2D::load(IO::Seekable &io, const Resources *res)
 
 UInt64 Texture2D::get_data_size() const
 {
-       return id ? width*height*get_component_count(ifmt) : 0;
+       return id ? width*height*get_pixel_size(ifmt) : 0;
 }
 
 void Texture2D::unload()