diff --git a/Source/Engine/UI/TextRender.cpp b/Source/Engine/UI/TextRender.cpp index 951da2316..6b2988b7a 100644 --- a/Source/Engine/UI/TextRender.cpp +++ b/Source/Engine/UI/TextRender.cpp @@ -190,6 +190,10 @@ void TextRender::UpdateLayout() _buffersDirty = true; // Init draw chunks data + Array> materials; + materials.Resize(_drawChunks.Count()); + for (int32 i = 0; i < materials.Count(); i++) + materials[i] = _drawChunks[i].Material; DrawChunk drawChunk; drawChunk.Actor = this; drawChunk.StartIndex = 0; @@ -242,10 +246,12 @@ void TextRender::UpdateLayout() } // Setup material - drawChunk.Material = Content::CreateVirtualAsset(); + if (_drawChunks.Count() < materials.Count()) + drawChunk.Material = materials[_drawChunks.Count()]; + else + drawChunk.Material = Content::CreateVirtualAsset(); drawChunk.Material->SetBaseMaterial(Material.Get()); - for (auto& param : drawChunk.Material->Params) - param.SetIsOverride(false); + drawChunk.Material->ResetParameters(); // Set the font parameter static StringView FontParamName = TEXT("Font");