我有一个表面(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混合。
我在这里错过了什么?谢谢