65 if (bgfx::isValid(mTextureHandle))
66 bgfx::destroy(mTextureHandle);
67 if (bgfx::isValid(mUniformHandle))
68 bgfx::destroy(mUniformHandle);
96 swap(mTextureHandle,
other.mTextureHandle);
97 swap(mUniformHandle,
other.mUniformHandle);
109 return bgfx::isValid(mTextureHandle) && bgfx::isValid(mUniformHandle);
127 const bgfx::Memory* texture,
129 const std::string& samplerName,
132 bgfx::TextureFormat::Enum format = bgfx::TextureFormat::RGBA8,
133 uint flags = BGFX_TEXTURE_NONE)
135 if (bgfx::isValid(mTextureHandle))
136 bgfx::destroy(mTextureHandle);
137 if (bgfx::isValid(mUniformHandle))
138 bgfx::destroy(mUniformHandle);
140 mTextureHandle = bgfx::createTexture2D(
141 sizes.
x(), sizes.
y(), hasMips, nLayers, format, flags, texture);
142 mUniformHandle = bgfx::createUniform(
143 samplerName.c_str(), bgfx::UniformType::Sampler);
146 void bind(uint stage)
const
148 if (bgfx::isValid(mTextureHandle) && bgfx::isValid(mUniformHandle)) {
149 bgfx::setTexture(stage, mUniformHandle, mTextureHandle);
Definition texture_unit.h:34
~TextureUnit()
Destructor.
Definition texture_unit.h:63
bool isValid() const
Check if the TextureUnit is valid.
Definition texture_unit.h:107
TextureUnit & operator=(TextureUnit &&other) noexcept
Move assignment operator.
Definition texture_unit.h:82
void swap(TextureUnit &other)
Swap the content of this object with another TextureUnit object.
Definition texture_unit.h:93
TextureUnit(TextureUnit &&other) noexcept
Move constructor.
Definition texture_unit.h:56