X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Ftexture2d.cpp;h=4d3dac037291137856d28a77926e9517ac9475de;hb=4a577ddc946bd279d7bc4942a2ce4c46c7ef5d35;hp=41763586c7dcfc9e81572907b44d00069e5dbf70;hpb=1acb01fb3c23439444a22fb9a9167ff6dd67611c;p=libs%2Fgl.git diff --git a/source/texture2d.cpp b/source/texture2d.cpp index 41763586..4d3dac03 100644 --- a/source/texture2d.cpp +++ b/source/texture2d.cpp @@ -1,4 +1,3 @@ -#include #include "bindable.h" #include "buffer.h" #include "error.h" @@ -40,12 +39,20 @@ Texture2D::Texture2D(ResourceManager *m): allocated(0) { } +Texture2D::~Texture2D() +{ + set_manager(0); +} + void Texture2D::storage(PixelFormat fmt, unsigned wd, unsigned ht) { if(width>0) throw invalid_operation("Texture2D::storage"); if(wd==0 || ht==0) throw invalid_argument("Texture2D::storage"); + + if(MSP_sized_internal_formats) + fmt = get_sized_pixelformat(fmt); require_pixelformat(fmt); ifmt = fmt; @@ -58,7 +65,8 @@ void Texture2D::allocate(unsigned level) if(allocated&(1<