問題タブ [direct-composition]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c++ - ウィンドウの位置に基づいてビットマップを直接 X トリミングし、それをウィンドウにレンダリングする
DirectX
とを使用するプロジェクトに取り組んでいましたDirect Composition
。Windows アクリルぼかしのような同様の効果を作成しようとしています。直接合成を使用して、特定の入力にぼかし効果、彩度、ブレンドを適用することができました。Windowsアクリルぼかしは、ウィンドウの背後のコンテンツをぼかしの入力として使用しますが、win32では不可能なので、ぼかし機能の入力としてデスクトップの背景を使用することにしました. しかし、問題は、ウィンドウの位置に基づいて背景をトリミングできたことですが、ウィンドウを新しい位置に移動すると、新しいウィンドウに基づいてビットマップがトリミングされRECT
ますが、新しい位置に移動するときにちらつきがあります。
プレビューは次のとおりです。
実際のウィンドウのスクリーンショットは次のとおりです。
ここで、赤いボックスには、ウィンドウ RECT を使用して飽和およびトリミングされたビットマップが含まれています (色の違いを参照してください)。
問題を再現するための簡単なコードを次に示します。
Please don't forget to replace "C:/Users/selas/Downloads/wallpaper.jpg" with your desktop wallpaper
注: サンプル ビデオは実際に編集されたものであり、私が得た出力ではありません。
c++ - IDCompositionGaussianBlurEffect 使用時の白枠
私の主な目標は、Windows 用の C++ で Windows UWP 設定 UI のようなアクリル効果を作成することです。バックビジュアルを作成するために、私はプライベート API DwmpCreateSharedVirtualDesktopVisual を使用しています。これは機能します。しかし、IDCompositionGaussianBlurEffect を使用して、次の画像のように白い境界線を生成する rootvisual にガウス効果を適用すると、ルート ビジュアルをスケーリングしたり、境界線を非表示にするために変換したりするなど、いくつかのことを試しましたが、うまくいきません。