我有一個表面(OffScreenPlain或RenderTarget與D3DFMT_A8R8G8B8),我從第三方函數複製像素(ARGB)到,。在像素複製之前,位由LockRect訪問。D3D9阿爾法在表面上的混合
這個表面然後是StretchRect到Backbuffer這是(D3DFMT_A8R8G8B8)。 Surface和Backbuffer是不同的尺寸。過濾設置爲D3DTEXF_NONE。
剛剛創建D3D設備後,我設置以下繪製狀態設置
D3DRS_ALPHABLENDENABLE -> TRUE
D3DRS_BLENDOP -> D3DBLENDOP_ADD
D3DRS_SRCBLEND -> D3DBLEND_SRCALPHA
D3DRS_DESTBLEND -> D3DBLEND_INVSRCALPHA
但我看不出有任何alpha混合發生。我已驗證alpha是以像素指定的。
我已經做了一個簡單的測試,通過創建一個頂點緩衝區和繪製一個三角形(DrawPrimitive)顯示與alpha混合。
在此測試表面中,先是StretchRect,然後是DrawPrimitive,並且表面內容顯示時不顯示alpha混合,而三角形顯示爲alpha混合。
我在這裏錯過了什麼?謝謝