Windows ターミナル サンプル コード
ピクセル シェーダー .hlsl サンプル、EchoCon ConPTY サンプル Win32 疑似コンソール、.NET をターゲットとする GUIConsole サンプル WPF コンソール、基本的な PTY API 呼び出しを使用した MiniTerm サンプル、文字入力をストリーミングしながらコンソール イベントを監視する ReadConsoleInputStream デモなど、Windows ターミナル リポジトリにホストされているいくつかのサンプル コードについて説明します。
GPU の膨大な計算能力のおかげで、ピクセル シェーダーを使って、リアルタイムのフラクタル ズーム、レイ トレーシング、画像処理など、素晴らしいことを行えます。
Windows ターミナル ユーザーは、settings.json ファイルのプロファイルに experimental.pixelShaderPath
プロパティを追加することで、ターミナルにピクセル シェーダーを適用させることができます。 ピクセル シェーダーは、C 言語に似た HLSL と呼ばれる言語で記述されており、制限事項がいくつかあります。
Windows ターミナル リポジトリで提供されている次のようなピクセル シェーダー .hlsl サンプルを試してみてください: ピクセル シェーダー。
このサンプル アプリケーションでは、次のような Win32 擬似コンソール (ConPTY) の使用方法を示します。
- 入力パイプと出力パイプを作成する
- CreatePseudoConsole() を呼び出して、パイプのもう一方の端に接続された ConPTY インスタンスを作成する
- ConPTY に接続された ping.exe のインスタンスを生成する
- 受信したテキストをコンソールに書き込み、ping.exe の出力をリッスンするスレッドを実行する
Windows ターミナル リポジトリにアクセスして、このサンプルを確認してください: EchoCon ConPTY サンプル アプリ。
このサンプル アプリケーションでは、カスタム 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。
この試験的なターミナルは、Microsoft の PTY API を使用して、基本的な API 呼び出しを実演するものです ("実際の" 使用を意図したものではありません)。 C# で記述され、ネイティブ コードの例に大きく基づいています。
Windows ターミナル リポジトリにアクセスして、このサンプルを確認してください: MiniTerm。
コンソールから文字入力ビューを同時にストリーミングしながら、コンソール イベント (マウス、メニュー、フォーカス、バッファ/ビューポートのサイズ変更など) を非同期に監視するデモです。 VT100 ストリームや ConPTY を使用する際に特に便利な機能です。
Windows ターミナル リポジトリにアクセスして、このデモを確認してください: ReadConsoleInputStream デモ。
Windows Terminal に関するフィードバック
Windows Terminal はオープンソース プロジェクトです。 フィードバックを提供するにはリンクを選択します。