画面の内容全体を変更する簡単なWindowsAPIはありません。ただし、これはデバイスドライバーレベルで実行できます。
それ以外の場合は、Windows APIのトリックに頼る必要があります。「偽の」ウィンドウをデスクトップ全体にループ状に配置します。偽のウィンドウのコンテンツを取得せずに画面のコンテンツ全体を取得し、処理を行ってモノクロ効果を取得してから、それを表示します。偽のウィンドウ。はい、それはハッキーで遅いですが、可能です。SetWindowsRgn
さらにハッキーなのは、マウスをクリックして偽のウィンドウ(多くの呼び出し)を「通過」するときです。
したがって、ここでのクロスプラットフォームとは、GDIを使用することを意味しますが、一部の古いDirectDraw APIは機能する可能性があります。その場合、ハードウェアオーバーレイを使用する時間がはるかに簡単になります(パフォーマンスが向上します)。実際にハードウェアオーバーレイをサポートしているカードの数はわかりませんが、新しいバージョンのWindowsが古いDirectDrawAPIをサポートしているかどうかはわかりません。
もう1つの可能性は、ビデオカードにC#、C ++、またはC APIがある場合、デバイスドライバーコードを記述せずに、カードで好きなことを実行できることです。
それからCUDAがありますが、私はまだそれを試していません。nVidiaボードでのストリーム処理用であることは知っていますが、ビデオディスプレイに簡単にバックドアできるのではないかと思います。