Office 2013 がどのように機能するかを理解しようとしています - 画面にコンテンツを描画する部分です。これまでの私の調査結果:
- Office は を使用して、Wic ベースのビットマップを作成してい
CreateWicBitmapRenderTarget
ます。 - このレンダー ターゲットを使用して、Office はさまざまな描画方法を使用します。期待どおり、BeginDraw/EndDraw でこれらの呼び出しをラップします。
- Office は DrawGlyphRun メソッドを使用して、ドキュメントのテキストを Wic ビットマップ上に描画します (つまり、DrawGlyphRun の This ポインターは、CreateWicBitmapRenderTarget から返されるポインターです)。
この時点で、Office がどのように継続するのか混乱しています。だから私の質問は:
Wic ベースのレンダー ターゲットを画面にコピーするには、どのような方法がありますか?
最後に、Office はスワップ チェーンを使用していると確信しています (おそらくCreateSwapChain
Windows 7 とCreateSwapChainForHwnd
Windows 8 で作成されています)。CreateBitmapFromWicBitmap
やなどのさまざまな「疑わしい」関数をステップCreateBitmapFromDxgiSurface
実行していますが、API 呼び出しの完全なチェーンを理解していません。
編集 (MooseBoys への回答): これは、画面にピクセルを配置するための一般的な質問ではありません。ピクセルは既に 1 つの RenderTarget (CreateWicBitmapRenderTarget で作成され、BeginDraw/DrawGlyphRun/EndDraw で描画されたレンダー ターゲット) にあり、これらのピクセルを別の RenderTarget (実際の画面上のレンダー ターゲット) に移動したいと考えています。GDC の世界では、ある hdc から別の hdc にピクセルを移動する BitBlt のようなものを探します。D2Dの世界のプロトコルは何だろう。