void EnsureResources(ICanvasResourceCreatorWithDpi resourceCreator, Size targetSize) { if (!needsResourceRecreation) { return; } if (textLayout != null) { textLayout.Dispose(); textGeometry.Dispose(); } textLayout = CreateTextLayout(resourceCreator, (float)targetSize.Width, (float)targetSize.Height); if (CurrentTextOutlineGranularityOption == TextOutlineGranularity.Layout) { textGeometry = CanvasGeometry.CreateText(textLayout); } else { GlyphRunsToGeometryConverter converter = new GlyphRunsToGeometryConverter(resourceCreator); textLayout.DrawToTextRenderer(converter, 0, 0); textGeometry = converter.GetGeometry(); } needsResourceRecreation = false; }
void EnsureResources(ICanvasResourceCreatorWithDpi resourceCreator, Size targetSize) { if (!needsResourceRecreation) return; if (textLayout != null) { textLayout.Dispose(); textGeometry.Dispose(); } textLayout = CreateTextLayout(resourceCreator, (float)targetSize.Width, (float)targetSize.Height); if (CurrentTextOutlineGranularityOption == TextOutlineGranularity.Layout) { textGeometry = CanvasGeometry.CreateText(textLayout); } else { GlyphRunsToGeometryConverter converter = new GlyphRunsToGeometryConverter(resourceCreator); textLayout.DrawToTextRenderer(converter, 0, 0); textGeometry = converter.GetGeometry(); } needsResourceRecreation = false; }