Open
Description
The Direct3D based text renderer is the default, but the Direct2D based on is used when the device has a GPU without support for shader model 4 (usually GPUs below feature level 10.1), or no GPU at all (for instance when connecting to headless, GPU-less servers over RDP).
In that case the following differences occur, because the Direct2D text renderer is less feature-complete:
- The margins around the viewport ("gutters") are drawn in the same background color as the nearest cell and not in the overall background color of the terminal. This is because Direct2D lacks support for
D3D11_TEXTURE_ADDRESS_BORDER
which we'd need when drawing the background bitmap. - Text on top of the cursor is not always visible / readable. Intersecting glyphs with the cursor rectangle was deemed too difficult and CPU intensive to implement for now. Direct2D doesn't expose the boundaries of each individual glyph in a glyph run after all.
- Ligatures spanning cells with different foreground colors are drawn in the color of the first cell. Same as for the previous point, intersecting and splitting up glyphs is non-trivial with Direct2D and might hurt performance.
- Box drawing glyphs are not clipped to their cells, and so they might overlap to produce unsightly results like this:
This has the same problem as cursors/ligatures. - Soft font support. This would be easy to add in a future version if need be.