X-Git-Url: http://git.tdb.fi/?p=libs%2Fgl.git;a=blobdiff_plain;f=source%2Ftexture3d.h;h=a0e96f4247aa7a90507aa39f9ebb86f94deb2f40;hp=b4260e88a0119930f3364c55d76d7399e88e8b76;hb=f14435e58bfa0fa697a06ba9a454bb30cd37d9d8;hpb=a361efc05fcad11b2918f3cd7abdebe794b131d8 diff --git a/source/texture3d.h b/source/texture3d.h index b4260e88..a0e96f42 100644 --- a/source/texture3d.h +++ b/source/texture3d.h @@ -1,14 +1,8 @@ -/* $Id$ - -This file is part of libmspgl -Copyright © 2007 Mikko Rasa, Mikkosoft Productions -Distributed under the LGPL -*/ - #ifndef MSP_GL_TEXTURE3D_H_ #define MSP_GL_TEXTURE3D_H_ #include +#include "datatype.h" #include "pixelformat.h" #include "texture.h" @@ -19,20 +13,24 @@ class Texture3D: public Texture { private: PixelFormat ifmt; - sizei width; - sizei height; - sizei depth; - int border; + unsigned width; + unsigned height; + unsigned depth; + unsigned allocated; public: Texture3D(); - void storage(PixelFormat, sizei, sizei, sizei, int); - void image(int, PixelFormat, GLenum, const void *); - void sub_image(int, int, int, sizei, sizei, sizei, PixelFormat, GLenum, const void *); - void load_image(const std::string &fn, int dp=-1); - sizei get_width() const { return width; } - sizei get_height() const { return height; } - sizei get_depth() const { return depth; } + void storage(PixelFormat, unsigned, unsigned, unsigned); + void allocate(unsigned); + void image(unsigned, PixelFormat, DataType, const void *); + void sub_image(unsigned, int, int, int, unsigned, unsigned, unsigned, PixelFormat, DataType, const void *); + void load_image(const std::string &fn, int dp = -1); + unsigned get_width() const { return width; } + unsigned get_height() const { return height; } + unsigned get_depth() const { return depth; } +private: + void require_storage(); + void get_level_size(unsigned, unsigned &, unsigned &, unsigned &); }; } // namespace GL