X-Git-Url: http://git.tdb.fi/?p=libs%2Fgl.git;a=blobdiff_plain;f=source%2Fcore%2Ftexture1d.h;h=16c88a1830a969b9f7625d97b6690e4d99267d82;hp=c4230d3162d08e85d2ae046d94250f22c9a3578a;hb=8e58fc4da8443cb67fe4cd70d6f68de2be73011d;hpb=be6ffe96ecb4707599fe1a6f620c348760213d46 diff --git a/source/core/texture1d.h b/source/core/texture1d.h index c4230d31..16c88a18 100644 --- a/source/core/texture1d.h +++ b/source/core/texture1d.h @@ -7,6 +7,9 @@ namespace Msp { namespace GL { +/** +One-dimensional texture, consisting of a single row of texels. +*/ class Texture1D: public Texture1DBackend { friend Texture1DBackend; @@ -20,7 +23,6 @@ public: private: void init(); - void raw_data(const std::string &); void storage(PixelFormat, unsigned); void storage_levels(PixelFormat, unsigned, unsigned); }; @@ -30,10 +32,18 @@ private: unsigned levels = 0; public: - void storage(PixelFormat, unsigned, unsigned = 0); + /** Sets storage format and size and allocates memory for the texture. If + lv is zero, a complete mipmap pyramid is automatically created. Storage + cannot be changed once set. */ + void storage(PixelFormat, unsigned wd, unsigned lv = 0); + + virtual void image(unsigned level, const void *); + + /** Replaces a range of texels in the texture. Allocated storage must + exist. The image data is interpreted according to the storage format and + the range must be fully inside the selected mipmap level. */ + void sub_image(unsigned level, unsigned x, unsigned wd, const void *); - void image(unsigned, const void *); - void sub_image(unsigned, int, unsigned, const void *); virtual void image(const Graphics::Image &, unsigned = 0); unsigned get_width() const { return width; } @@ -41,11 +51,6 @@ public: private: unsigned get_n_levels() const; unsigned get_level_size(unsigned) const; - -public: - virtual AsyncLoader *load(IO::Seekable &, const Resources * = 0) { return 0; } - virtual std::size_t get_data_size() const; - virtual void unload() { } }; } // namespace GL