From 61b2a8afaf012e28ef14ad946ee0bb8319232aa6 Mon Sep 17 00:00:00 2001 From: MooglyGuy Date: Sun, 13 Oct 2019 20:55:11 +0200 Subject: -bgfx: Do texture format conversion via a full-screen GPU pass. [Ryan Holtz] --- src/osd/modules/render/bgfx/texture.cpp | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) (limited to 'src/osd/modules/render/bgfx/texture.cpp') diff --git a/src/osd/modules/render/bgfx/texture.cpp b/src/osd/modules/render/bgfx/texture.cpp index ecbf51121ab..7b6747e0c54 100644 --- a/src/osd/modules/render/bgfx/texture.cpp +++ b/src/osd/modules/render/bgfx/texture.cpp @@ -32,7 +32,7 @@ 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) +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) : m_name(name) , m_format(format) , m_width(width) @@ -40,10 +40,16 @@ bgfx_texture::bgfx_texture(std::string name, bgfx::TextureFormat::Enum format, u { bgfx::TextureInfo info; bgfx::calcTextureSize(info, width, height, 1, false, false, 1, format); - m_texture = bgfx::createTexture2D(width, height, false, 1, format, flags, data); + m_texture = bgfx::createTexture2D(width, height, false, 1, format, flags, nullptr); + bgfx::updateTexture2D(m_texture, 0, 0, 0, 0, width, height, data, pitch); } bgfx_texture::~bgfx_texture() { bgfx::destroy(m_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); +} -- cgit v1.2.3-70-g09d2