|
|
定义一个表面:
LPDIRECT3DSURFACE9 surf;
利用下面的函数加载一张图片到surf时:
D3DXLoadSurfaceFromFile( surf, NULL, NULL, sFileName, NULL, D3DX_DEFAULT, ColorKey, NULL );
可以通过ColorKey参数来指定透明色,假设我指定为红色。
获得后备缓冲区:
g_pD3DDevice->GetBackBuffer( 0, 0, D3DBACKBUFFER_TYPE_MONO, &backsurf );
然后利用下面的函数将surf拷贝到backsurf:
g_pD3DDevice->StretchRect( srcSurf, &sr, backsurf, &dr, D3DTEXF_NONE );
这时问题出现了:图片的背景色(红色)并没有透明,而是变成了黑色,覆盖了backsurf中原来的图像。
以前网上好像有人问过类似的问题,但是我没找到最后的解决办法。哪位知道请告诉小弟,不胜感激! |
|