openMSX
|
Most basic/generic texture: only contains a texture ID. More...
#include <GLUtil.hh>
Public Member Functions | |
Texture (const Texture &)=delete | |
Texture & | operator= (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. | |
Texture & | operator= (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 |
Most basic/generic texture: only contains a texture ID.
Current implementation always assumes 2D textures.
|
delete |
|
explicit |
Allocate a openGL texture name and enable/disable interpolation.
Definition at line 33 of file GLUtil.cc.
References allocate(), setInterpolation(), and setWrapMode().
|
inlineexplicit |
|
inline |
|
inlinenoexcept |
void gl::Texture::allocate | ( | ) |
|
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().
|
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().
|
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().
void gl::Texture::reset | ( | ) |
Release openGL texture name.
Definition at line 45 of file GLUtil.cc.
References textureId.
Referenced by ~Texture().
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().
void gl::Texture::setWrapMode | ( | bool | wrap | ) |
|
friend |
|
protected |
Definition at line 99 of file GLUtil.hh.
Referenced by allocate(), bind(), gl::FrameBufferObject::FrameBufferObject(), get(), getImGui(), operator=(), and reset().