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.
 
 Texture (Null)
 Create null-handle (not yet allocate an openGL handle).
 
 ~Texture ()
 Release openGL texture name.
 
 Texture (Texture &&other) noexcept
 Move constructor and assignment.
 
Textureoperator= (Texture &&other) noexcept
 
void allocate ()
 Allocate an openGL texture name.
 
void reset ()
 Release openGL texture name.
 
GLuint get () const
 Returns the underlying openGL handler id.
 
void * getImGui () const
 Return as a 'void*' (needed for 'Dear ImGui').
 
void bind () const
 Makes this texture the active GL texture.
 
void setInterpolation (bool interpolation)
 Enable/disable bilinear interpolation for this texture.
 
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 38 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 33 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 48 of file GLUtil.hh.

◆ ~Texture()

gl::Texture::~Texture ( )
inline

Release openGL texture name.

Definition at line 51 of file GLUtil.hh.

References reset().

◆ Texture() [4/4]

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

Move constructor and assignment.

Definition at line 54 of file GLUtil.hh.

Member Function Documentation

◆ allocate()

void gl::Texture::allocate ( )

Allocate an openGL texture name.

Definition at line 40 of file GLUtil.cc.

References textureId.

Referenced by Texture().

◆ bind()

void gl::Texture::bind ( ) const
inline

Makes this texture the active GL texture.

The other methods of this class and its subclasses will implicitly bind the texture, so you only need this method to explicitly bind this texture for use in GL function calls outside of this class.

Definition at line 87 of file GLUtil.hh.

References textureId.

Referenced by openmsx::GLImage::draw(), openmsx::GLScaler::execute(), openmsx::GLHQLiteScaler::GLHQLiteScaler(), openmsx::GLHQScaler::GLHQScaler(), openmsx::OffScreenSurface::OffScreenSurface(), openmsx::ImGuiCharacter::paint(), openmsx::ImGuiSpriteViewer::paint(), openmsx::GLSnow::paint(), gl::ColorTexture::resize(), openmsx::GLHQLiteScaler::scaleImage(), openmsx::GLHQScaler::scaleImage(), setInterpolation(), setWrapMode(), openmsx::GLHQLiteScaler::uploadBlock(), and openmsx::GLHQScaler::uploadBlock().

◆ get()

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

Returns the underlying openGL handler id.

0 iff no openGL texture is allocated.

Definition at line 73 of file GLUtil.hh.

References textureId.

Referenced by openmsx::GLImage::draw(), openmsx::ImGuiCharacter::paint(), and openmsx::ImGuiSpriteViewer::paint().

◆ getImGui()

void * gl::Texture::getImGui ( ) const
inline

Return as a 'void*' (needed for 'Dear ImGui').

Definition at line 77 of file GLUtil.hh.

References textureId.

Referenced by openmsx::ImGuiCharacter::paint(), and openmsx::ImGuiSpriteViewer::paint().

◆ operator=() [1/2]

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

◆ operator=() [2/2]

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

Definition at line 59 of file GLUtil.hh.

References textureId.

◆ reset()

void gl::Texture::reset ( )

Release openGL texture name.

Definition at line 45 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 62 of file GLUtil.cc.

References bind().

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

◆ setWrapMode()

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

Definition at line 70 of file GLUtil.cc.

References bind().

Referenced by Texture().

Friends And Related Symbol Documentation

◆ FrameBufferObject

friend class FrameBufferObject
friend

Definition at line 101 of file GLUtil.hh.

Member Data Documentation

◆ textureId

GLuint gl::Texture::textureId
protected

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