microsoft / microsoft/terminal
If Shader modifies UV in Windows Terminal, it breaks WYSIWYG
Nobody has claimed this yet.
- Dominant language
- C++
- Stars
- 105k
- Forks
- 9.6k
- Avg merge
- 3d 17h
- Merged PRs (30d)
- 29
Description
### Description of the new feature
## Problem
There are so many terminal shaders that would modify the output UV,
CRT is the most famous shader which has the curved screen effect.
But if modified, Windows Terminal's application code doesn't respect these shader-modified UV, and when I try to visually select some text, I usually select the wrong text.
It makes it hard for users to enable beautifule UV-bent shader effect in Windows Terminal.
## Expected feature
Windows Terminal's applications code respect shaders' modified UV, and allow me to visually select the correct text. E.g., Windows Terminal can do the mapping between the User_Screen_Input_Coord ⇄ Shader_Modified_Screen_Coord.
## Reproduce
1. download https://github.com/Hammster/windows-terminal-shaders
enable shaders which modifiy UVs used, e.g., crt.hlsl (with ENABLE_CURVE on and you can adjust CURVE_INTENSITY)
(how to enable shaders: https://github.com/microsoft/terminal/blob/main/samples/PixelShaders/README.md)
2. run a new Windows Terminal window, ensure the shader is applied.
### Proposed technical implementation details
_No response_
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with samples/PixelShaders/README.md and reproduce the issue using the external crt.hlsl shader with ENABLE_CURVE enabled. Trace where Windows Terminal converts user screen coordinates for visual selection; done when selection matches the shader-modified display coordinates.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- cpp
- Domain
- computer-graphics, desktop
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100