Direct3Dで描いたバックバッファのHDC(デバイスコンテキストハンドル)を持ってきてBitBltでウィンドウに送るときのメモ。
LPDIRECT3DDEVICE9にGetBackBufferを設定
LPDIRECT3DDEVICE9 pDevice; ~ pDevice->GetBackBuffer(0,0,D3DBACKBUFFER_TYPE_MONO,&pBackBuffer);
HDCを設定
HDC hDC; // ウィンドウのHDC HDC hCompatDC; // Direct3DのほうのHDC ~ // ウィンドウのアップデート処理( UpdateWindow (hWnd); ) // ウィンドウのデバイスコンテキストハンドルを取得する hDC = GetDC(hWnd); // メモリデバイスコンテキストを作成する hCompatDC = CreateCompatibleDC(hDC); ~
画面に送る
LPDIRECT3DSURFACE9 pBackBuffer = NULL; ~ // 描画処理の後 // D3Dで描いたバックバッファを持ってくる pBackBuffer->GetDC(&hCompatDC); // BitBltでウィンドウにバックバッファを送る BitBlt( hDC, 0, 0, WINDOW_WIDTH, WINDOW_HEIGHT, hCompatDC, 0, 0, SRCCOPY ); // バックバッファを初期化 pBackBuffer->ReleaseDC(hCompatDC); ~