summaryrefslogtreecommitdiffstatshomepage
path: root/src/osd/modules/render/bgfx/texture.cpp
diff options
context:
space:
mode:
author Aaron Giles <aaron@aarongiles.com>2021-09-10 09:39:10 -0700
committer Aaron Giles <aaron@aarongiles.com>2021-09-10 09:39:10 -0700
commitfedb40f712d34bb2b6904487ce88dd124e26c7f5 (patch)
tree3a539aa7f386b3c11ec76bdb266ca03a08039cfe /src/osd/modules/render/bgfx/texture.cpp
parente505ac97bd2de9100d02d37fc0270504bf60b531 (diff)
parenta99d2f3295c21e6ae97cbffce8cf025860bfa4d6 (diff)
Merge branch 'master' into time-experiments2
Diffstat (limited to 'src/osd/modules/render/bgfx/texture.cpp')
-rw-r--r--src/osd/modules/render/bgfx/texture.cpp16
1 files changed, 11 insertions, 5 deletions
diff --git a/src/osd/modules/render/bgfx/texture.cpp b/src/osd/modules/render/bgfx/texture.cpp
index 85f1d3645fb..a504c625415 100644
--- a/src/osd/modules/render/bgfx/texture.cpp
+++ b/src/osd/modules/render/bgfx/texture.cpp
@@ -15,6 +15,9 @@ bgfx_texture::bgfx_texture(std::string name, bgfx::TextureFormat::Enum format, u
, m_format(format)
, m_width(width)
, m_height(height)
+ , m_rowpixels(width)
+ , m_width_div_factor(1)
+ , m_width_mul_factor(1)
{
bgfx::TextureInfo info;
bgfx::calcTextureSize(info, width, height, 1, false, false, 1, format);
@@ -32,17 +35,20 @@ bgfx_texture::bgfx_texture(std::string name, bgfx::TextureFormat::Enum format, u
}
}
-bgfx_texture::bgfx_texture(std::string name, bgfx::TextureFormat::Enum format, uint16_t width, uint16_t height, const bgfx::Memory* data, uint32_t flags, uint16_t pitch, uint16_t rowpixels)
+bgfx_texture::bgfx_texture(std::string name, bgfx::TextureFormat::Enum format, uint16_t width, uint16_t height, const bgfx::Memory* data, uint32_t flags, uint16_t pitch, uint16_t rowpixels, int width_div_factor, int width_mul_factor)
: m_name(name)
, m_format(format)
, m_width(width)
, m_height(height)
, m_rowpixels(rowpixels ? rowpixels : width)
+ , m_width_div_factor(width_div_factor)
+ , m_width_mul_factor(width_mul_factor)
{
+ int adjusted_width = (m_rowpixels * m_width_mul_factor) / m_width_div_factor;
bgfx::TextureInfo info;
- bgfx::calcTextureSize(info, m_rowpixels, height, 1, false, false, 1, format);
- m_texture = bgfx::createTexture2D(m_rowpixels, height, false, 1, format, flags, nullptr);
- bgfx::updateTexture2D(m_texture, 0, 0, 0, 0, m_rowpixels, height, data, pitch);
+ bgfx::calcTextureSize(info, adjusted_width, height, 1, false, false, 1, format);
+ m_texture = bgfx::createTexture2D(adjusted_width, height, false, 1, format, flags, nullptr);
+ bgfx::updateTexture2D(m_texture, 0, 0, 0, 0, adjusted_width, height, data, pitch);
}
bgfx_texture::~bgfx_texture()
@@ -52,5 +58,5 @@ bgfx_texture::~bgfx_texture()
void bgfx_texture::update(const bgfx::Memory *data, uint16_t pitch)
{
- bgfx::updateTexture2D(m_texture, 0, 0, 0, 0, m_width, m_height, data, pitch);
+ bgfx::updateTexture2D(m_texture, 0, 0, 0, 0, (m_rowpixels * m_width_mul_factor) / m_width_div_factor, m_height, data, pitch);
}