add ThemeEngine and DefaultThemeEngine

This commit is contained in:
2020-10-29 22:15:59 +08:00
parent e17c910b50
commit e5dd5720e6
6 changed files with 57 additions and 37 deletions

View File

@@ -32,7 +32,9 @@ namespace hgl
const uint width=power_to_2(w);
const uint height=power_to_2(h);
return device->CreateColorRenderTarget(width,height,format);
FramebufferInfo fbi(format,w,h);
return device->CreateRenderTarget(&fbi);
}
bool ThemeEngine::Registry(Form *f,const VkFormat format)
@@ -47,8 +49,8 @@ namespace hgl
RenderTarget *rt=CreateRenderTarget(size.x,size.y,format);
if(!rt)return(false);
ThemeForm *tf=new ThemeForm(f,rt);
ThemeForm *tf=CreateForm(f,rt);
form_list.Add(f,tf);
@@ -103,12 +105,24 @@ namespace hgl
tf->Resize(w,h);
return(true);
}
void ThemeEngine::Render(Form *f)
bool ThemeEngine::Render(Form *f)
{
if(!f)return;
if(!f)return(false);
const Vector2f &size=f->GetSize();
if(size.x==0&&size.y==0)return(false);
ThemeForm *tf;
if(!form_list.Get(f,tf))
return(false);
tf->BeginRender();
tf->EndRender();
}
}//namespace gui
}//namespace hgl