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; 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); text_render=CreateTextRender(device,fs,device_render_pass,ubo_camera_info);
if(!text_render) if(!text_render)

View File

@ -51,7 +51,11 @@ namespace hgl
public: public:
TextRenderable *CreateRenderable();
TextRenderable *CreateRenderable(const UTF16String &str); TextRenderable *CreateRenderable(const UTF16String &str);
bool Layout(TextRenderable *tr,const UTF16String &str);
RenderableInstance *CreateRenderableInstance(TextRenderable *text_render_obj); RenderableInstance *CreateRenderableInstance(TextRenderable *text_render_obj);
};//class TextRender };//class TextRender
@ -68,7 +72,7 @@ namespace hgl
* @param name * @param name
* @param size * @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); return(true);
} }
TextRenderable *TextRender::CreateRenderable(const UTF16String &str)
{
return db->CreateTextRenderable(material);
}
TextRenderable *TextRender::CreateRenderable(const UTF16String &str) TextRenderable *TextRender::CreateRenderable(const UTF16String &str)
{ {
TextRenderable *tr=db->CreateTextRenderable(material); TextRenderable *tr=db->CreateTextRenderable(material);
if(tl_engine->SimpleLayout(tr,tile_font,str)<=0) if(tl_engine->SimpleLayout(tr,tile_font,str)<=0)
{ return(tr);
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) RenderableInstance *TextRender::CreateRenderableInstance(TextRenderable *text_render_obj)
{ {
return db->CreateRenderableInstance(text_render_obj,material_instance,pipeline); return db->CreateRenderableInstance(text_render_obj,material_instance,pipeline);
@ -171,7 +184,7 @@ namespace hgl
return font_source; 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); Font fnt(name,0,size);