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 &);
45 Defines the texture storage. This function may only be successfully called
48 void storage(PixelFormat fmt, sizei wd, sizei ht, int brd);
51 Uploads an image to the texture. storage() must have been called prior to
52 this, and the image must have dimensions conforming to the specified
55 void image(int level, PixelFormat fmt, GLenum type, const void *data);
58 Uploads a sub-image into the texture. Unlike full image upload, there are
59 no constraints on the size of the sub-image.
61 void sub_image(int level, int x, int y, sizei wd, sizei ht, PixelFormat fmt, GLenum type, const void *data);
64 Loads an image from a file and uploads it to the texture. If storage() has
65 not been called, the storage format will be set to match the loaded image.
67 void load_image(const std::string &fn);
69 sizei get_width() const { return width; }
70 sizei get_height() const { return height; }
73 void image(const Image &);