X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Fcore%2Ftexture3d.cpp;h=0125dd0930a16a8a5dbc6cb5fe3c025cfdaddab9;hb=1d8cad55b56c072dc7a59e98015d824094f812ea;hp=0fb26ccd6e2606eea34f24cc30fc5e9209ae08c8;hpb=160e9eea29bd10034733d59507fa1bcca36be401;p=libs%2Fgl.git diff --git a/source/core/texture3d.cpp b/source/core/texture3d.cpp index 0fb26ccd..0125dd09 100644 --- a/source/core/texture3d.cpp +++ b/source/core/texture3d.cpp @@ -8,16 +8,7 @@ namespace Msp { namespace GL { Texture3D::Texture3D(unsigned t): - Texture3DBackend(t), - width(0), - height(0), - depth(0) -{ } - -Texture3D::Texture3D(): - width(0), - height(0), - depth(0) + Texture3DBackend(t) { } void Texture3D::storage(PixelFormat fmt, unsigned wd, unsigned ht, unsigned dp, unsigned lv) @@ -48,11 +39,11 @@ void Texture3D::image(unsigned level, const void *data) return sub_image(level, 0, 0, 0, size.x, size.y, size.z, data); } -void Texture3D::sub_image(unsigned level, int x, int y, int z, unsigned wd, unsigned ht, unsigned dp, const void *data) +void Texture3D::sub_image(unsigned level, unsigned x, unsigned y, unsigned z, unsigned wd, unsigned ht, unsigned dp, const void *data) { if(width==0 || height==0 || depth==0) throw invalid_operation("Texture3D::sub_image"); - if(level>=levels) + if(level>=levels || x>width || x+wd>width || y>height || y+ht>height || z>depth || z+dp>depth) throw out_of_range("Texture3D::sub_image"); Texture3DBackend::sub_image(level, x, y, z, wd, ht, dp, data);