openMSX
Public Member Functions | Protected Attributes | Friends | List of all members
gl::Texture Class Reference

Most basic/generic texture: only contains a texture ID. More...

#include <GLUtil.hh>

Inheritance diagram for gl::Texture:
Inheritance graph
[legend]

Public Member Functions

 Texture (const Texture &)=delete
 
Textureoperator= (const Texture &)=delete
 
 Texture (bool interpolation=false, bool wrap=false)
 Allocate a openGL texture name and enable/disable interpolation. More...
 
 Texture (Null)
 Create null-handle (not yet allocate an openGL handle). More...
 
 ~Texture ()
 Release openGL texture name. More...
 
 Texture (Texture &&other) noexcept
 Move constructor and assignment. More...
 
Textureoperator= (Texture &&other) noexcept
 
void allocate ()
 Allocate an openGL texture name. More...
 
void reset ()
 Release openGL texture name. More...
 
GLuint get () const
 Returns the underlying openGL handler id. More...
 
void bind ()
 Makes this texture the active GL texture. More...
 
void setInterpolation (bool interpolation)
 Enable/disable bilinear interpolation for this texture. More...
 
void setWrapMode (bool wrap)
 

Protected Attributes

GLuint textureId
 

Friends

class FrameBufferObject
 

Detailed Description

Most basic/generic texture: only contains a texture ID.

Current implementation always assumes 2D textures.

Definition at line 39 of file GLUtil.hh.

Constructor & Destructor Documentation

◆ Texture() [1/4]

gl::Texture::Texture ( const Texture )
delete

◆ Texture() [2/4]

gl::Texture::Texture ( bool  interpolation = false,
bool  wrap = false 
)
explicit

Allocate a openGL texture name and enable/disable interpolation.

Definition at line 29 of file GLUtil.cc.

References allocate(), setInterpolation(), and setWrapMode().

◆ Texture() [3/4]

gl::Texture::Texture ( Null  )
inlineexplicit

Create null-handle (not yet allocate an openGL handle).

Definition at line 49 of file GLUtil.hh.

◆ ~Texture()

gl::Texture::~Texture ( )
inline

Release openGL texture name.

Definition at line 52 of file GLUtil.hh.

References reset().

◆ Texture() [4/4]

gl::Texture::Texture ( Texture &&  other)
inlinenoexcept

Move constructor and assignment.

Definition at line 55 of file GLUtil.hh.

Member Function Documentation

◆ allocate()

void gl::Texture::allocate ( )

Allocate an openGL texture name.

Definition at line 36 of file GLUtil.cc.

References textureId.

Referenced by Texture().

◆ bind()

void gl::Texture::bind ( )
inline

◆ get()

GLuint gl::Texture::get ( ) const
inline

Returns the underlying openGL handler id.

0 iff no openGL texture is allocated.

Definition at line 74 of file GLUtil.hh.

References textureId.

Referenced by openmsx::GLImage::draw().

◆ operator=() [1/2]

Texture & gl::Texture::operator= ( const Texture )
delete

◆ operator=() [2/2]

Texture & gl::Texture::operator= ( Texture &&  other)
inlinenoexcept

Definition at line 60 of file GLUtil.hh.

References std::swap(), and textureId.

◆ reset()

void gl::Texture::reset ( )

Release openGL texture name.

Definition at line 41 of file GLUtil.cc.

References textureId.

Referenced by ~Texture().

◆ setInterpolation()

void gl::Texture::setInterpolation ( bool  interpolation)

Enable/disable bilinear interpolation for this texture.

IOW selects between GL_NEAREST or GL_LINEAR filtering.

Definition at line 47 of file GLUtil.cc.

References bind().

Referenced by openmsx::GLPostProcessor::GLPostProcessor(), openmsx::GLHQLiteScaler::scaleImage(), openmsx::GLRGBScaler::scaleImage(), openmsx::GLSimpleScaler::scaleImage(), and Texture().

◆ setWrapMode()

void gl::Texture::setWrapMode ( bool  wrap)

Definition at line 55 of file GLUtil.cc.

References bind().

Referenced by Texture().

Friends And Related Function Documentation

◆ FrameBufferObject

friend class FrameBufferObject
friend

Definition at line 95 of file GLUtil.hh.

Member Data Documentation

◆ textureId

GLuint gl::Texture::textureId
protected

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