3 This file is part of libmspgl
4 Copyright © 2007 Mikko Rasa, Mikkosoft Productions
5 Distributed under the LGPL
8 #ifndef MSP_GL_TEXTURE2D_H_
9 #define MSP_GL_TEXTURE2D_H_
12 #include <msp/datafile/loader.h>
13 #include "pixelformat.h"
22 Two-dimensional texture class. This is the most common type of texture.
24 class Texture2D: public Texture
27 class Loader: public Texture::Loader
32 void image_data(const std::string &);
33 void raw_data(const std::string &);
34 void storage(PixelFormat, unsigned, unsigned, unsigned);
47 Defines the texture storage. This function may only be successfully called
50 void storage(PixelFormat fmt, sizei wd, sizei ht, int brd);
53 Uploads an image to the texture. storage() must have been called prior to
54 this, and the image must have dimensions conforming to the specified
57 void image(int level, PixelFormat fmt, DataType type, const void *data);
60 Uploads a sub-image into the texture. Unlike full image upload, there are
61 no constraints on the size of the sub-image.
63 void sub_image(int level, int x, int y, sizei wd, sizei ht, PixelFormat fmt, DataType type, const void *data);
66 Loads an image from a file and uploads it to the texture. If storage() has
67 not been called, the storage format will be set to match the loaded image.
69 void load_image(const std::string &fn);
71 sizei get_width() const { return width; }
72 sizei get_height() const { return height; }
75 void image(const Image &);