microsoft / microsoft/terminal

If Shader modifies UV in Windows Terminal, it breaks WYSIWYG

Open
#20,419 1 comment 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Area-Rendering Issue-Task Priority-3 Product-Terminal
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

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.