diff options
Diffstat (limited to 'src/osd/modules/render/bgfx/effect.h')
-rw-r--r-- | src/osd/modules/render/bgfx/effect.h | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/src/osd/modules/render/bgfx/effect.h b/src/osd/modules/render/bgfx/effect.h new file mode 100644 index 00000000000..e87f418022e --- /dev/null +++ b/src/osd/modules/render/bgfx/effect.h @@ -0,0 +1,40 @@ +// license:BSD-3-Clause +// copyright-holders:Ryan Holtz +//============================================================ +// +// effect.h - BGFX shader material to be applied to a mesh +// +//============================================================ + +#pragma once + +#ifndef __DRAWBGFX_EFFECT__ +#define __DRAWBGFX_EFFECT__ + +#include <bgfx/bgfx.h> + +#include <string> +#include <vector> +#include <map> + +#include "uniform.h" + +class bgfx_effect +{ +public: + bgfx_effect(uint64_t state, bgfx::ShaderHandle vertexShader, bgfx::ShaderHandle fragmentShader, std::vector<bgfx_uniform*> uniforms); + ~bgfx_effect(); + + void submit(int view); + + // Getters + bgfx_uniform* uniform(std::string name); + bgfx::ProgramHandle get_program() const { return m_program_handle; } + +private: + uint64_t m_state; + bgfx::ProgramHandle m_program_handle; + std::map<std::string, bgfx_uniform*> m_uniforms; +}; + +#endif // __DRAWBGFX_EFFECT__
\ No newline at end of file |