Creates an openGL texture from an Image. More...

Public Member Functions

 OpenGLTexture ()
 
 ~OpenGLTexture ()
 
void loadImage (const Image &image)
 Creates a texture from the given image. More...
 
void loadARGB (const PixelARGB *pixels, int width, int height)
 Creates a texture from a raw array of pixels. More...
 
void loadARGBFlipped (const PixelARGB *pixels, int width, int height)
 Creates a texture from a raw array of pixels. More...
 
void loadAlpha (const uint8 *pixels, int width, int height)
 Creates an alpha-channel texture from an array of alpha values. More...
 
void release ()
 Frees the texture, if there is one. More...
 
void bind () const
 Binds the texture to the currently active openGL context. More...
 
void unbind () const
 Unbinds the texture to the currently active openGL context. More...
 
GLuint getTextureID () const noexcept
 Returns the GL texture ID number. More...
 
int getWidth () const noexcept
 
int getHeight () const noexcept
 

Static Public Member Functions

static bool isValidSize (int width, int height)
 Returns true if a texture can be created with the given size. More...
 

Detailed Description

Creates an openGL texture from an Image.

Constructor & Destructor Documentation

◆ OpenGLTexture()

OpenGLTexture::OpenGLTexture ( )

◆ ~OpenGLTexture()

OpenGLTexture::~OpenGLTexture ( )

Member Function Documentation

◆ loadImage()

void OpenGLTexture::loadImage ( const Image image)

Creates a texture from the given image.

Note that if the image's dimensions aren't a power-of-two, the texture may be created with a larger size.

The image will be arranged so that its top-left corner is at texture coordinate (0, 1).

◆ loadARGB()

void OpenGLTexture::loadARGB ( const PixelARGB pixels,
int  width,
int  height 
)

Creates a texture from a raw array of pixels.

If width and height are not powers-of-two, the texture will be created with a larger size, and only the subsection (0, 0, width, height) will be initialised. The data is sent directly to the OpenGL driver without being flipped vertically, so the first pixel will be mapped onto texture coordinate (0, 0).

◆ loadARGBFlipped()

void OpenGLTexture::loadARGBFlipped ( const PixelARGB pixels,
int  width,
int  height 
)

Creates a texture from a raw array of pixels.

This is like loadARGB, but will vertically flip the data so that the first pixel ends up at texture coordinate (0, 1), and if the width and height are not powers-of-two, it will compensate by using a larger texture size.

◆ loadAlpha()

void OpenGLTexture::loadAlpha ( const uint8 pixels,
int  width,
int  height 
)

Creates an alpha-channel texture from an array of alpha values.

If width and height are not powers-of-two, the texture will be created with a larger size, and only the subsection (0, 0, width, height) will be initialised. The data is sent directly to the OpenGL driver without being flipped vertically, so the first pixel will be mapped onto texture coordinate (0, 0).

◆ release()

void OpenGLTexture::release ( )

Frees the texture, if there is one.

◆ bind()

void OpenGLTexture::bind ( ) const

Binds the texture to the currently active openGL context.

◆ unbind()

void OpenGLTexture::unbind ( ) const

Unbinds the texture to the currently active openGL context.

◆ getTextureID()

GLuint OpenGLTexture::getTextureID ( ) const
noexcept

Returns the GL texture ID number.

◆ getWidth()

int OpenGLTexture::getWidth ( ) const
noexcept

◆ getHeight()

int OpenGLTexture::getHeight ( ) const
noexcept

◆ isValidSize()

static bool OpenGLTexture::isValidSize ( int  width,
int  height 
)
static

Returns true if a texture can be created with the given size.

Some systems may require that the sizes are powers-of-two.


The documentation for this class was generated from the following file: