Codice di esempio del terminale Windows

Esplorare alcuni codici di esempio ospitati nel repository di Windows Terminal, tra cui esempi di pixel shader .hlsl, una pseudo console Win32 di esempio EchoCon CONPTY, un esempio di console WPF GUIConsole destinata a .NET, un esempio MiniTerm che usa chiamate API PTY di base e una demo ReadConsoleInputStream per il monitoraggio degli eventi della console durante lo streaming dell'input dei caratteri.

Pixel Shader

Poiché le GPU offrono così tanta potenza di calcolo, è possibile eseguire grandi operazioni con pixel shader, ad esempio lo zoom frattale in tempo reale, i ray tracer e l'elaborazione delle immagini.

Terminale Windows consente agli utenti di utilizzare un pixel shader, che viene applicato al terminale aggiungendo la proprietà experimental.pixelShaderPath a un profilo nel file settings.json. Gli shader pixel vengono scritti in un linguaggio denominato HLSL, un linguaggio simile a C con alcune restrizioni.

Provare uno dei diversi esempi di pixel shader .hlsl forniti nel repository del terminale Windows: Pixel Shader.

Esempio di Terminal Pixel Shader Retro

App di esempio EchoCon ConPTY

Questa applicazione di esempio illustra come usare la pseudo console Win32 (ConPTY) con:

  1. Creazione di una pipe di ingresso e di una pipe di uscita
  2. Chiamare CreatePseudoConsole() per creare un'istanza ConPTY collegandola all'altra estremità delle pipe
  3. Generazione di un'istanza di ping.exe connessa a ConPTY
  4. Esecuzione di un thread che ascolta l'output da ping.exe, scrivendo il testo ricevuto nella Console

Visita il repository di Windows Terminal per trovare questo esempio di EchoCon ConPTY.

App di esempio GUIConsole

Questa applicazione di esempio fornisce uno scheletro di esempio di una console WPF personalizzata.

All'interno di questo esempio sono disponibili:

  • GUIConsole.WPF: un'applicazione WPF destinata a .NET 4.6.1 che crea una singola finestra WPF che funge da console e mantiene visibile la console sottostante.

  • GUIConsole.ConPTY: libreria .NET Standard 2.0 che gestisce la creazione della console e abilita il comportamento di pseudoconsole. Il file Terminal.cs contiene le parti visibili pubblicamente con cui l'applicazione WPF interagisce. Terminal.cs espone due elementi che consentono la lettura e la scrittura nella console:

    • ConsoleOutStream: fileStream collegato alla pipe di output della pseudoconsole. Questo flusso genera VT100.
    • WriteToPseudoConsole(input stringa): un metodo che accetta la stringa specificata e lo scrive nella pseudoconsole tramite la relativa pipe di input. Questo metodo accetta VT100.

Visitare il repository Terminale Windows per trovare questo esempio: GUIConsole.

App di esempio MiniTerm

Questo terminale sperimentale illustra le chiamate API di base (non destinate all'utilizzo reale) usando le API PTY di Microsoft. Viene scritto in C# e basato principalmente sugli esempi di codice nativo.

Visita il repository Terminale Windows per trovare questo esempio: MiniTerm.

ReadConsoleInputStream Demo

Questa demo mostra il monitoraggio asincrono degli eventi della console, come il mouse, il menu, lo stato attivo e il ridimensionamento del buffer o del riquadro di visualizzazione, tramite streaming simultaneo della vista di input dei caratteri dalla console. Questa funzionalità è particolarmente utile quando si utilizzano flussi VT100 e ConPTY.

Visita il repository terminale Windows per trovare questa demo: ReadConsoleInputStream Demo.