terminal/src/renderer
Chester Liu 94eab6e391
Skip glyph shaping analysis when the entire text is simple (#6206)
## Summary of the Pull Request

As the title suggests, this PR will make CustomTextLayout skip glyph shaping analysis when the entire text is detected as simple.

## References

My main reference is [DirectX Factor - Who’s Afraid of Glyph Runs?](https://docs.microsoft.com/en-us/archive/msdn-magazine/2013/november/directx-factor-who%e2%80%99s-afraid-of-glyph-runs)

And also #2959

## PR Checklist
* [x] Closes @skyline75489's continuous drive for perf gainz. 
* [x] CLA signed. 
* [x] Manual tests.
* [x] Nah on docs.
* [x] Discussed with core contributors in this PR.

## Detailed Description of the Pull Request / Additional comments

This can be seen as a followup of #2959. The idea is the same: make use of simple text (which makes up I think 95% of all terminal text) as much as possible.

The performance boost is huge. Cacafire is actually on fire this time (and remember I'm using 4K!). The frame rate is also boosted since more CPU time can be used for actual drawing.

Before:

![图片](https://user-images.githubusercontent.com/4710575/82913277-b21c3c00-9fa0-11ea-8785-a14b347bbcbd.png)

After:

![图片](https://user-images.githubusercontent.com/4710575/82912969-4afe8780-9fa0-11ea-8795-92617dde822f.png)

## Validation Steps Performed

Manually validated.
2020-06-01 18:36:28 +00:00
..
base Improve cluster construction performance (#5584) 2020-04-28 15:41:44 +00:00
dx Skip glyph shaping analysis when the entire text is simple (#6206) 2020-06-01 18:36:28 +00:00
gdi ci: run spell check in CI, fix remaining issues (#4799) 2020-03-25 11:02:53 -07:00
inc Show a double width cursor for double width characters (#5319) 2020-04-15 19:23:06 +00:00
uia Reduce CursorChanged Events for Accessibility (#5196) 2020-04-01 15:56:20 +00:00
vt Fix SGR indexed colors to distinguish Indexed256 color (and more) (#5834) 2020-05-27 22:34:45 +00:00
wddmcon Move ConPTY to use til::bitmap (#5024) 2020-03-23 15:57:54 +00:00
dirs Merged PR 4645239: [Git2Git] Merged PR 4644345: conhost: disable the DX renderer in inbox builds 2020-05-05 23:03:07 +00:00