ピクセル シェーダー .hlsl サンプル、EchoCon ConPTY サンプル Win32 擬似コンソール、.NET を対象とする GUIConsole サンプル WPF コンソール、基本的な PTY API 呼び出しを使用した MiniTerm サンプル、文字入力のストリーミング中にコンソール イベントを監視するための ReadConsoleInputStream デモなど、Windows ターミナル リポジトリでホストされているサンプル コードの一部について説明します。
ピクセル シェーダー
GPU は非常に多くのコンピューティング能力を提供するため、リアルタイムのフラクタル ズーム、レイ トレーサー、画像処理など、ピクセル シェーダーを使用して優れた処理を行うことができます。
Windows ターミナルを使用すると、ユーザーは、settings.json ファイル内のプロファイルに experimental.pixelShaderPath プロパティを追加することによって、ターミナルに適用されるピクセル シェーダーを提供できます。 ピクセル シェーダーは HLSL と呼ばれる言語で記述されます。これは、いくつかの制限がある C に似た言語です。
Windows ターミナル リポジトリで提供されているピクセル シェーダー .hlsl サンプルのいずれかを試してください: ピクセル シェーダー。
EchoCon ConPTY サンプル アプリ
このサンプル アプリケーションでは、次の方法で Win32 擬似コンソール (ConPTY) を使用する方法を示します。
- 入力パイプと出力パイプの作成
- CreatePseudoConsole() を呼び出して、パイプのもう一方の端に接続された ConPTY インスタンスを作成する
- ConPTY に接続されている ping.exe のインスタンスを生成する
- ping.exeからの出力をリッスンするスレッドを実行し、受信したテキストをコンソールに書き込む
Windows ターミナル リポジトリにアクセスして、 EchoCon ConPTY サンプル アプリのサンプルを見つけます。
GUIConsole サンプル アプリ
このサンプル アプリケーションでは、カスタム WPF コンソールのスケルトンの例を示します。
このサンプルでは、次の内容を確認できます。
GUIConsole.WPF: .NET 4.6.1 を対象とする WPF アプリケーション。コンソールとして機能し、基になるコンソールを表示し続ける単一の WPF ウィンドウを作成します。
GUIConsole.ConPTY: コンソールの作成を処理し、擬似コンソールの動作を有効にする .NET Standard 2.0 ライブラリ。 Terminal.cs ファイルには、WPF アプリケーションが利用する公開される部分が含まれています。 Terminal.csは、コンソールからの読み取りと書き込みを可能にする 2 つのことを公開します。
-
ConsoleOutStream: 疑似コンソールの出力パイプに接続された FileStream。 このストリームは VT100 を出力します。 -
WriteToPseudoConsole(文字列入力): 指定された文字列を受け取り、その入力パイプを介して擬似コンソールに書き込むメソッド。 このメソッドは VT100 を受け入れます。
-
Windows ターミナル リポジトリにアクセスして、 GUIConsole のサンプルを見つけます。
MiniTerm サンプル アプリ
この試験段階のターミナルでは、Microsoft の PTY API を使用した基本的な API 呼び出し ("実際の" 使用を想定していません) を示します。 これは C# で記述されており、ネイティブ コードの例に基づいています。
Windows ターミナル リポジトリにアクセスして、 MiniTerm のサンプルを見つけます。
ReadConsoleInputStream デモ
このデモでは、マウス、メニュー、フォーカス、バッファーやビューポートのサイズ変更などのコンソール イベントを非同期で監視しながら、本体から文字入力ビューを同時にストリーミングする方法を示します。 この機能は、VT100 ストリームと ConPTY を使用する場合に特に便利です。
Windows ターミナル リポジトリにアクセスして、次のデモを見つけます: ReadConsoleInputStream Demo。
Windows Terminal