这是个例子里的overlay初始化部分,希望对你有用 DDPIXELFORMAT ddPixelFormat;
DDCAPS caps;
ZeroMemory(&caps, sizeof(DDCAPS));
caps.dwSize = sizeof(DDCAPS); if (m_pDD->GetCaps(&caps, NULL)==DD_OK)
{
if (caps.dwCaps & DDCAPS_OVERLAY)
{
ddPixelFormat.dwFlags = DDPF_FOURCC;
ddPixelFormat.dwFourCC = mmioFOURCC('Y','U','Y','2');
ddPixelFormat.dwYUVBitCount = 16; ZeroMemory(&ddsd, sizeof(DDSURFACEDESC2));
ddsd.dwSize = sizeof(DDSURFACEDESC2);
ddsd.dwFlags = DDSD_CAPS | DDSD_WIDTH | DDSD_HEIGHT | DDSD_PIXELFORMAT;
ddsd.ddsCaps.dwCaps = DDSCAPS_OVERLAY | DDSCAPS_VIDEOMEMORY;
ddsd.dwWidth = MPEG2GetWidth();
ddsd.dwHeight = MPEG2GetHeight(); memcpy(&(ddsd.ddpfPixelFormat), &ddPixelFormat, sizeof(DDPIXELFORMAT)); if(FAILED(m_pDD->CreateSurface(&ddsd, &m_pddsOverlay, NULL)))
return FALSE; } else {
MessageBox(hWnd,GET_ERR(31),GST(ERROR_SECTION),MB_OK);
return FALSE;
} }
DDCAPS caps;
ZeroMemory(&caps, sizeof(DDCAPS));
caps.dwSize = sizeof(DDCAPS); if (m_pDD->GetCaps(&caps, NULL)==DD_OK)
{
if (caps.dwCaps & DDCAPS_OVERLAY)
{
ddPixelFormat.dwFlags = DDPF_FOURCC;
ddPixelFormat.dwFourCC = mmioFOURCC('Y','U','Y','2');
ddPixelFormat.dwYUVBitCount = 16; ZeroMemory(&ddsd, sizeof(DDSURFACEDESC2));
ddsd.dwSize = sizeof(DDSURFACEDESC2);
ddsd.dwFlags = DDSD_CAPS | DDSD_WIDTH | DDSD_HEIGHT | DDSD_PIXELFORMAT;
ddsd.ddsCaps.dwCaps = DDSCAPS_OVERLAY | DDSCAPS_VIDEOMEMORY;
ddsd.dwWidth = MPEG2GetWidth();
ddsd.dwHeight = MPEG2GetHeight(); memcpy(&(ddsd.ddpfPixelFormat), &ddPixelFormat, sizeof(DDPIXELFORMAT)); if(FAILED(m_pDD->CreateSurface(&ddsd, &m_pddsOverlay, NULL)))
return FALSE; } else {
MessageBox(hWnd,GET_ERR(31),GST(ERROR_SECTION),MB_OK);
return FALSE;
} }
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货