diff options
Diffstat (limited to 'src/osd/modules/render/bgfx/effect.h')
-rw-r--r-- | src/osd/modules/render/bgfx/effect.h | 22 |
1 files changed, 13 insertions, 9 deletions
diff --git a/src/osd/modules/render/bgfx/effect.h b/src/osd/modules/render/bgfx/effect.h index 02ef9fd4f54..07646e6302e 100644 --- a/src/osd/modules/render/bgfx/effect.h +++ b/src/osd/modules/render/bgfx/effect.h @@ -6,32 +6,36 @@ // //============================================================ -#pragma once +#ifndef MAME_RENDER_BGFX_EFFECT_H +#define MAME_RENDER_BGFX_EFFECT_H -#ifndef __DRAWBGFX_EFFECT__ -#define __DRAWBGFX_EFFECT__ +#pragma once #include <bgfx/bgfx.h> -#include <vector> #include <map> +#include <memory> #include <string> +#include <vector> + class bgfx_uniform; class bgfx_effect { public: - bgfx_effect(uint64_t state, bgfx::ShaderHandle vertex_shader, bgfx::ShaderHandle fragment_shader, std::vector<bgfx_uniform*> uniforms); + bgfx_effect(std::string &&name, uint64_t state, bgfx::ShaderHandle vertex_shader, bgfx::ShaderHandle fragment_shader, std::vector<std::unique_ptr<bgfx_uniform> > &uniforms); ~bgfx_effect(); - void submit(int view, uint64_t blend = 0L); - bgfx_uniform* uniform(std::string name); + void submit(int view, uint64_t blend = ~0ULL); + bgfx_uniform *uniform(const std::string &name); + bool is_valid() const { return m_program_handle.idx != bgfx::kInvalidHandle; } private: + std::string m_name; uint64_t m_state; bgfx::ProgramHandle m_program_handle; - std::map<std::string, bgfx_uniform*> m_uniforms; + std::map<std::string, std::unique_ptr<bgfx_uniform> > m_uniforms; }; -#endif // __DRAWBGFX_EFFECT__ +#endif // MAME_RENDER_BGFX_EFFECT_H |