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 "pixelformat.h"
19 Two-dimensional texture class. This is the most common type of texture.
21 class Texture2D: public Texture
33 Defines the texture storage. This function may only be successfully called
36 void storage(PixelFormat fmt, sizei wd, sizei ht, int brd);
39 Uploads an image to the texture. storage() must have been called prior to
40 this, and the image must have dimensions conforming to the specified
43 void image(int level, PixelFormat fmt, GLenum type, const void *data);
46 Uploads a sub-image into the texture. Unlike full image upload, there are
47 no constraints on the size of the sub-image.
49 void sub_image(int level, int x, int y, sizei wd, sizei ht, PixelFormat fmt, GLenum type, const void *data);
52 Loads an image from a file and uploads it to the texture. If storage() has
53 not been called, the storage format will be set to match the loaded image.
55 void load_image(const std::string &fn);
57 sizei get_width() const { return width; }
58 sizei get_height() const { return height; }