首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 嵌入开发 > WinCE >

Overlay如若同时使用colorKey和Alpha特性

2012-08-02 
Overlay如果同时使用colorKey和Alpha特性最近做一项目要达到 “把图像的背景色过虑,同时把剩余部分进行一个

Overlay如果同时使用colorKey和Alpha特性
最近做一项目
要达到 “把图像的背景色过虑,同时把剩余部分进行一个透明叠加”的效果
我采用Overlay实现叠图功能,但没办法同时达到以上效果。

不知各位大侠可以高见!

代码如下
  //设置显示标志
dwUpdateFlags = DDOVER_SHOW;

memset(&stOvfx, 0, sizeof(stOvfx));
stOvfx.dwSize = sizeof(stOvfx);
//检测硬件是否支持关键色
 if(m_stDDCaps.dwOverlayCaps & DDOVERLAYCAPS_CKEYSRC)
 {
 //激活关键色参数
 dwUpdateFlags |= DDOVER_KEYSRCOVERRIDE;
 
 stOvfx.dckSrcColorkey.dwColorSpaceLowValue = 0; //黑色作为关键色
 stOvfx.dckSrcColorkey.dwColorSpaceHighValue = 0;
 }
//检测硬件是否支持overlay alpha
 if (m_stDDCaps.dwOverlayCaps & DDOVERLAYCAPS_ALPHACONSTANT)
 {
 //激活alpha参数
 dwUpdateFlags |= DDOVER_ALPHACONSTOVERRIDE;
 
 stOvfx.dwAlphaConstBitDepth = 8;
 stOvfx.dwAlphaConst = nTrans;
 }

//根据标志显示覆盖表面
hRet = m_pDDSOverlay->UpdateOverlay(&m_SrcRect, m_pDDSPrimary, &m_DstRect, dwUpdateFlags, &stOvfx);
if(hRet != DD_OK)
{
ReleaseAllObjects();
return FALSE;
}

代码中同时设置DDOVER_KEYSRCOVERRIDE和DDOVER_ALPHACONSTOVERRIDE时,UpdateOverlay返回失败

[解决办法]

探讨

woshi_ziyu(麦田里的守望者):

你好!
返回的是不可用参数(DDERR_INVALIDPARAMS)
但是
//检测硬件是否支持关键色
if(m_stDDCaps.dwOverlayCaps & DDOVERLAYCAPS_CKEYSRC)
{
//激活关键色参数
dwUpdateFlags |= DDOVE……

热点排行