8,303
社区成员
发帖
与我相关
我的任务
分享
//******************************************************************//
HRESULT AlphaBlendToBack(DXSURFACE* pSur,int nPosX,int nPosY,UINT deep)
{
HRESULT hr;
HDC hSrcDC = NULL;
HDC hDesDC = NULL;
if( FAILED( hr = pSur->pdds->GetDC( &hSrcDC ) ) )
return hr;
if( FAILED( hr = g_pBackBuffer->GetDC( &hDesDC ) ) )
return hr;
//--------------------------调用AlphaBlend()----------------------//
BLENDFUNCTION blend;
blend.AlphaFormat = NULL;
blend.BlendFlags = 0;
blend.BlendOp = NULL;
blend.SourceConstantAlpha = deep;
::AlphaBlend(hDesDC,nPosX,nPosY,pSur->nWidth,pSur->nHeight,
hSrcDC,0,0,pSur->nWidth,pSur->nHeight,blend);
//-------------------------------End-----------------------------//
if( FAILED( hr = pSur->pdds->ReleaseDC( hSrcDC ) ) )
return hr;
if( FAILED( hr = g_pBackBuffer->ReleaseDC( hDesDC ) ) )
return hr;
return S_OK;
}
//******************************************************************//