关于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 上弄