ULRE/src/GUI/DefaultThemeEngine.h

44 lines
1.0 KiB
C
Raw Normal View History

2020-10-14 22:05:24 +08:00
#pragma once
#include<hgl/gui/ThemeEngine.h>
#include<hgl/graph/vulkan/VKMaterialInstance.h>
2020-10-19 22:26:42 +08:00
#include<hgl/type/Map.h>
2020-10-14 22:05:24 +08:00
namespace hgl
{
namespace gui
{
using namespace hgl::graph;
2020-10-19 22:26:42 +08:00
class Form; ///<窗体
2020-10-14 22:05:24 +08:00
/**
* GUI主题引擎
*/
class DefaultThemeEngine:public ThemeEngine
{
2020-10-19 22:26:42 +08:00
struct IForm
{
Form *form; ///<窗体控件
vulkan::RenderTarget *rt; ///<渲染目标
};//
MapObject<Form *,IForm> form_list;
struct
{
vulkan::Material * m;
vulkan::MaterialInstance * mi;
}panel;
2020-10-14 22:05:24 +08:00
public:
bool Init() override;
void Clear() override;
2020-10-19 22:26:42 +08:00
bool Registry(Form *);
void Unregistry(Form *);
void Render(Form *);
2020-10-14 22:05:24 +08:00
};//class DefaultThemeEngine:public ThemeEngine
}//namespace gui
}//namespace hgl