News

Windows Terminal Text Rendering Revamp: 'We Were Wrong'

Windows Terminal Preview 1.13 is out with an updated settings UI design, a new "elevate" profile setting and a revamped text rendering engine, about which the dev team issued an apology.

Terminal users can now enable a new profile setting called experimental.useAtlasEngine to try out the new DxEngine-based "AtlasEngine" text renderer, instead of DirectWrite. An October 2021 pull request in the terminal's GitHub repo titled "Introduce AtlasEngine - A new text rendering prototype #11623" explains the idea.

"This commit introduces 'AtlasEngine,' a new text renderer based on DxEngine," it says. "But unlike it, DirectWrite and Direct2D are only used to rasterize glyphs. Blending and placing these glyphs into the target view is being done using Direct3D and a simple HLSL shader. Since this new renderer more aggressively assumes that the text is monospace, it simplifies the implementation: The viewport is divided into cells, and its data is stored as a simple matrix. Modifications to this matrix involve only simple pointer arithmetic and is easy to understand. But just like with DxEngine however, DirectWrite related code remains extremely complex and hard to understand."

Microsoft's Kayla Cinnamon, a program manager on the terminal team, introduced the v1.13 update in a Feb. 3 blog post, referencing a kerfuffle last summer about the team's decision to stick with the DirectWrite general purpose renderer when complaints arose about terrible performance.

Enabling AtlasEngine Preview
[Click on image for larger view.] Enabling AtlasEngine Preview (source: Microsoft).

"We were wrong," she said. "As such, we dedicate this experimental renderer to the community as an olive branch. We know we have so much more to learn, but we hope that you will accept our apology and understand we're humans behind this product with a capability and willingness to learn from our past mistakes. Thank you for sticking with us. We strive to make this an experience we can all learn from to not only improve ourselves, but to improve our product and delight you all."

The new AtlasEngine renderer is described as still being a work in progress, possibly unstable and missing features, but the team expects to improve it and make it the default upon reaching feature parity with the existing DirectWrite renderer.

As far as the updated settings UI design, it's now aligned with new Windows 11 style, using WinUI 2.6

The new elevate profile setting, meanwhile, lets users automatically launch a profile with elevated "Administrator" privileges.

Among other miscellaneous improvements are a customizable profile bell sound, new restoreLastClosed, exportBuffer and adjustOpacity actions, support for snap layouts in Windows 11 and more improvements, in addition to several bug fixes.

About the Author

David Ramel is an editor and writer at Converge 360.

comments powered by Disqus

Featured

  • Compare New GitHub Copilot Free Plan for Visual Studio/VS Code to Paid Plans

    The free plan restricts the number of completions, chat requests and access to AI models, being suitable for occasional users and small projects.

  • Diving Deep into .NET MAUI

    Ever since someone figured out that fiddling bits results in source code, developers have sought one codebase for all types of apps on all platforms, with Microsoft's latest attempt to further that effort being .NET MAUI.

  • Copilot AI Boosts Abound in New VS Code v1.96

    Microsoft improved on its new "Copilot Edit" functionality in the latest release of Visual Studio Code, v1.96, its open-source based code editor that has become the most popular in the world according to many surveys.

  • AdaBoost Regression Using C#

    Dr. James McCaffrey from Microsoft Research presents a complete end-to-end demonstration of the AdaBoost.R2 algorithm for regression problems (where the goal is to predict a single numeric value). The implementation follows the original source research paper closely, so you can use it as a guide for customization for specific scenarios.

  • Versioning and Documenting ASP.NET Core Services

    Building an API with ASP.NET Core is only half the job. If your API is going to live more than one release cycle, you're going to need to version it. If you have other people building clients for it, you're going to need to document it.

Subscribe on YouTube