summaryrefslogtreecommitdiffstatshomepage
path: root/src/osd/modules/render/bgfx/target.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/osd/modules/render/bgfx/target.cpp')
-rw-r--r--src/osd/modules/render/bgfx/target.cpp26
1 files changed, 26 insertions, 0 deletions
diff --git a/src/osd/modules/render/bgfx/target.cpp b/src/osd/modules/render/bgfx/target.cpp
new file mode 100644
index 00000000000..b8026060b04
--- /dev/null
+++ b/src/osd/modules/render/bgfx/target.cpp
@@ -0,0 +1,26 @@
+// license:BSD-3-Clause
+// copyright-holders:Ryan Holtz
+//============================================================
+//
+// target.cpp - Render target abstraction for BGFX layer
+//
+//============================================================
+
+#include "target.h"
+
+bgfx_target::bgfx_target(std::string name, bgfx::TextureFormat::Enum format, uint32_t width, uint32_t height, bool filter)
+ : bgfx_texture(name, format, width, height, nullptr, BGFX_TEXTURE_U_CLAMP | BGFX_TEXTURE_V_CLAMP | (filter ? 0 : (BGFX_TEXTURE_MIN_POINT | BGFX_TEXTURE_MAG_POINT | BGFX_TEXTURE_MIP_POINT)))
+{
+ m_target = bgfx::createFrameBuffer(1, &m_handle, false);
+}
+
+bgfx_target::bgfx_target(std::string name, void *handle, uint32_t width, uint32_t height)
+ : bgfx_texture(name, bgfx::TextureFormat::RGBA8, width, height, nullptr, BGFX_TEXTURE_U_CLAMP | BGFX_TEXTURE_V_CLAMP | BGFX_TEXTURE_MIN_POINT | BGFX_TEXTURE_MAG_POINT | BGFX_TEXTURE_MIP_POINT)
+{
+ m_target = bgfx::createFrameBuffer(handle, width, height);
+}
+
+bgfx_target::~bgfx_target()
+{
+ bgfx::destroyFrameBuffer(m_target);
+}