]> git.tdb.fi Git - libs/gl.git/blobdiff - source/texture3d.cpp
Implement 2D array textures
[libs/gl.git] / source / texture3d.cpp
index 8b014aee0c262fb811444c1c44a1fba0083df21e..8cb26e7f76713bf44932f25744aea5d31be4defd 100644 (file)
@@ -11,6 +11,15 @@ using namespace std;
 namespace Msp {
 namespace GL {
 
+Texture3D::Texture3D(GLenum t):
+       Texture(t),
+       ifmt(RGB),
+       width(0),
+       height(0),
+       depth(0),
+       allocated(0)
+{ }
+
 Texture3D::Texture3D():
        Texture(GL_TEXTURE_3D),
        ifmt(RGB),
@@ -161,7 +170,8 @@ void Texture3D::get_level_size(unsigned level, unsigned &w, unsigned &h, unsigne
 {
        w >>= level;
        h >>= level;
-       d >>= level;
+       if(target!=GL_TEXTURE_2D_ARRAY)
+               d >>= level;
 
        if(!w && (h || d))
                w = 1;