splited function at TextRender

This commit is contained in:
hyzboy 2022-02-17 20:02:59 +08:00
parent 1ab3e5241f
commit 1d457c5d58
3 changed files with 24 additions and 7 deletions

View File

@ -53,7 +53,7 @@ private:
{
UTF16String str;
FontSource *fs=CreateFontSource(OS_TEXT("微软雅黑"),12);
FontSource *fs=AcquireFontSource(OS_TEXT("微软雅黑"),12);
text_render=CreateTextRender(device,fs,device_render_pass,ubo_camera_info);
if(!text_render)

View File

@ -51,7 +51,11 @@ namespace hgl
public:
TextRenderable *CreateRenderable();
TextRenderable *CreateRenderable(const UTF16String &str);
bool Layout(TextRenderable *tr,const UTF16String &str);
RenderableInstance *CreateRenderableInstance(TextRenderable *text_render_obj);
};//class TextRender
@ -68,7 +72,7 @@ namespace hgl
* @param name
* @param size
*/
FontSource *CreateFontSource(const os_char *name,const uint32_t size);
FontSource *AcquireFontSource(const os_char *name,const uint32_t size);
/**
* .

View File

@ -138,19 +138,32 @@ namespace hgl
return(true);
}
TextRenderable *TextRender::CreateRenderable(const UTF16String &str)
{
return db->CreateTextRenderable(material);
}
TextRenderable *TextRender::CreateRenderable(const UTF16String &str)
{
TextRenderable *tr=db->CreateTextRenderable(material);
if(tl_engine->SimpleLayout(tr,tile_font,str)<=0)
{
delete tr;
return(nullptr);
}
return(tr);
return tr;
}
bool TextRender::Layout(TextRenderable *tr,const UTF16String &str)
{
if(!tr)
return(false);
if(tl_engine->SimpleLayout(tr,tile_font,str)<=0)
return(false);
return true;
}
RenderableInstance *TextRender::CreateRenderableInstance(TextRenderable *text_render_obj)
{
return db->CreateRenderableInstance(text_render_obj,material_instance,pipeline);
@ -171,7 +184,7 @@ namespace hgl
return font_source;
}
FontSource *CreateFontSource(const os_char *name,const uint32_t size)
FontSource *AcquireFontSource(const os_char *name,const uint32_t size)
{
Font fnt(name,0,size);