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

关于DDraw中 Overlay 设置关键色的有关问题

2012-03-09 
关于DDraw中 Overlay 设置关键色的问题!问题描述:用DDraw的overlay页面显示YUV的视频.窗口背景用RGB(0,5,0

关于DDraw中 Overlay 设置关键色的问题!
问题描述:    
用DDraw的overlay页面显示YUV的视频.窗口背景用RGB(0,     5,     0)黑色,这个颜色作为关键色.图像只有在背景为这个颜色的窗口中可以显示,超出窗口将看不见视频图像.可是我用LPDIRECTDRAW7-> SetColorKey设置设置overlay页面,源关键色和目标关键色都试过了,在LPDIRECTDRAW7-> UpdateOverlay     显示时加上     DDOVER_KEYDEST         DDOVER_KEYDESTOVERRIDE         DDOVER_KEYSRC         DDOVER_KEYSRCOVERRIDE     标志都会报错.只用DDOVER_SHOW就可以显示,加上以上任一标志就会报错.我没辙了,望各位大侠教我正确的设置方法.    
 
部分代码:    
//     创建主表面    
ZeroMemory(&ddsd,     sizeof(ddsd));    
ddsd.dwSize                     =     sizeof(ddsd);    
ddsd.dwFlags                   =     DDSD_CAPS;    
ddsd.ddsCaps.dwCaps     =     DDSCAPS_PRIMARYSURFACE;    
 
hRet     =     lpDD-> CreateSurface(&ddsd,     lpDDSPrimary,     NULL);    
if(hRet     !=     DD_OK)             return;    
 
ddsd.dwSize     =     sizeof(ddsd);    
ddsd.dwFlags     =     DDSD_CAPS         ¦     DDSD_HEIGHT         ¦     DDSD_WIDTH         ¦     DDSD_PIXELFORMAT;    
ddsd.ddsCaps.dwCaps     =     DDSCAPS_VIDEOMEMORY         ¦     DDSCAPS_OVERLAY;    
ddsd.dwWidth     =     352;    
ddsd.dwHeight     =     288;    
ddsd.ddpfPixelFormat     =     PixelFormat;    
 
hRet     =     lpDD-> CreateSurface(&ddsd,     lpDDSOverLay,     NULL);    
if(hRet     !=     DD_OK)             return;    
 
Color.dwColorSpaceLowValue       =     RGB(0,     5,     0)         Color.dwColorSpaceHighValue     =     RGB(10,   15,   10);    
lpDDSOverLay-> SetColorKey(DDCKEY_SRCOVERLAY,     &Color);    
 
 
lpDDSOverLay-> UpdateOverlay(&scRect,     lpDDSPrimary,     &dcRect,     DDOVER_SHOW         ¦     DDOVER_KEYSRC,     NULL);    


[解决办法]
学习,帮顶。
[解决办法]
正在学习中,不过 是在wince 上弄

热点排行