サードパーティの関数からピクセル(ARGB)をコピーするサーフェス(OffScreenPlainまたはD3DFMT_A8R8G8B8のRenderTarget)があります。ピクセルコピーの前に、ビットはLockRectによってアクセスされます。
このサーフェスは、(D3DFMT_A8R8G8B8)であるバックバッファーへのStretchRectになります。サーフェスとバックバッファは異なる寸法です。フィルタリングはD3DTEXF_NONEに設定されます。
d3dデバイスを作成した直後に、次のRenderState設定を設定しました
D3DRS_ALPHABLENDENABLE -> TRUE
D3DRS_BLENDOP -> D3DBLENDOP_ADD
D3DRS_SRCBLEND -> D3DBLEND_SRCALPHA
D3DRS_DESTBLEND -> D3DBLEND_INVSRCALPHA
しかし、アルファブレンディングは発生していません。アルファがピクセルで指定されていることを確認しました。
頂点バッファーを作成し、アルファブレンディングで表示される三角形(DrawPrimitive)を描画することにより、簡単なテストを行いました。
このテストサーフェスでは、最初にStretchRect、次にDrawPrimitiveがあり、サーフェスコンテンツはアルファブレンディングなしで表示され、三角形はアルファブレンディングありで表示されます。
ここで何が欠けていますか?ありがとう