DirectDraw7::CreateSurface failed!

无言猪 2010-04-23 02:38:23
直接贴代码,在我的机器上能创建成功,别人机器上不行,还有就是如何判断显卡是否直接显示YUV图像
if (FAILED(DirectDrawCreateEx(NULL, (void **)&g_lpDDraw, IID_IDirectDraw7, NULL)))
{
AfxMessageBox("Create DirectDraw failed!");
return;
}
g_lpDDraw->SetCooperativeLevel(GetDlgItem(IDC_PLAYWND)->m_hWnd, DDSCL_NORMAL);

DDSURFACEDESC2 ddsd;
memset(&ddsd, 0, sizeof(ddsd));
ddsd.dwSize = sizeof(ddsd);
ddsd.dwFlags = DDSD_CAPS;
ddsd.ddsCaps.dwCaps = DDSCAPS_PRIMARYSURFACE;
if (FAILED(g_lpDDraw->CreateSurface(&ddsd, &g_lpDDSurfacePrimary, NULL)))
{
AfxMessageBox("Create Primary Surface failed!");
_close(g_fdread);
g_fdread = -1;
g_lpDDraw->Release();
g_lpDDraw = NULL;
return;
}

DDPIXELFORMAT ddpf;
memset(&ddpf, 0, sizeof(ddpf));
ddpf.dwSize = sizeof(ddpf);
g_lpDDSurfacePrimary->GetPixelFormat(&ddpf);
ddpf.dwFlags = DDPF_FOURCC;
ddpf.dwFourCC = mmioFOURCC('I', '4', '2', '0');

memset(&ddsd, 0, sizeof(ddsd));
ddsd.dwSize = sizeof(ddsd);
ddsd.dwFlags = DDSD_CAPS | DDSD_HEIGHT | DDSD_WIDTH | DDSD_PIXELFORMAT;
ddsd.ddsCaps.dwCaps = DDSCAPS_OFFSCREENPLAIN | DDSCAPS_VIDEOMEMORY;
ddsd.dwHeight = 288;
ddsd.dwWidth = 352;
ddsd.ddpfPixelFormat = ddpf;
if (FAILED(g_lpDDraw->CreateSurface(&ddsd, &g_lpDDSurfaceOffscreen, NULL))) //这里就会失败
{
AfxMessageBox("Create offscreen Surface failed!");
}
...全文
257 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
xingshi310 2010-04-23
  • 打赏
  • 举报
回复
显卡不支持?
刚刚凉 2010-04-23
  • 打赏
  • 举报
回复
GetLastError

19,468

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 图形处理/算法
社区管理员
  • 图形处理/算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧