为什么CreateSurface在有点电脑上能成功,有的电脑上不能成功呢? 大家帮忙看看啊!

huaguli 2008-02-26 11:54:02
DDSURFACEDESC ddsd;
LPDIRECTDRAWSURFACE surface;
BOOL bAlloc = TRUE;

memset (&ddsd, 0, sizeof (DDSURFACEDESC));
ddsd.dwSize = sizeof (DDSURFACEDESC);
ddsd.ddpfPixelFormat.dwSize = sizeof (DDPIXELFORMAT);
ddsd.dwFlags = DDSD_HEIGHT | DDSD_WIDTH | DDSD_CAPS;
ddsd.dwHeight = m_Height;
ddsd.dwWidth = m_Width;
ddsd.ddpfPixelFormat.dwFlags = DDPF_FOURCC;
#if USE_YV12
ddsd.ddpfPixelFormat.dwFourCC = FOURCC_YV12;
#else
ddsd.ddpfPixelFormat.dwFourCC = mmioFOURCC('U','Y','V','Y');
#endif
ddsd.dwFlags |= DDSD_PIXELFORMAT;
ddsd.ddsCaps.dwCaps = DDSCAPS_OVERLAY | DDSCAPS_VIDEOMEMORY;
#if USE_OVERLAY_TRIPLE_BUFFERING
ddsd.dwFlags |= DDSD_BACKBUFFERCOUNT;
ddsd.ddsCaps.dwCaps |= DDSCAPS_COMPLEX | DDSCAPS_FLIP;
#endif
//ddsd.dwBackBufferCount = 2;

surface = NULL; //// AllocSurface (&ddsd);
if (surface == NULL)
{
#ifdef _DEBUG
OutputDebugString( "Alloc Overlay Surface failed ! " );
#endif //_DEBUG
ddsd.dwFlags = DDSD_CAPS | DDSD_HEIGHT | DDSD_WIDTH ;
ddsd.ddsCaps.dwCaps = DDSCAPS_OFFSCREENPLAIN ;
ddsd.dwHeight = m_Height;
ddsd.dwWidth = m_Width;
ddsd.dwFlags |= DDSD_PIXELFORMAT;
ddsd.ddpfPixelFormat.dwSize = sizeof(ddsd.ddpfPixelFormat);
ddsd.ddpfPixelFormat.dwFlags = DDPF_FOURCC ;
ddsd.ddpfPixelFormat.dwFourCC = mmioFOURCC('U','Y','V','Y');
if (DD_OK != m_pDDraw->CreateSurface (pddsd,&surface, NULL))
return NULL;
...全文
327 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
jhs1982419 2008-02-29
  • 打赏
  • 举报
回复
没做过,帮顶下。
bluetooth_2001 2008-02-27
  • 打赏
  • 举报
回复
YUV表面对于不同的型号显卡,支持不一样的。

我们的程序离屏表面本来是用DDPF_YUV,后来发现有些显卡不支持,于是全部改为了DDPF_RGB。将YUV动态换算成RGB。

另外,我们是create成功,blt失败。
xt_kd 2008-02-27
  • 打赏
  • 举报
回复
看不懂,路过
菜牛 2008-02-26
  • 打赏
  • 举报
回复
你应该先判断所需要的位面格式是否被你的电脑支持。
wuchuncai 2008-02-26
  • 打赏
  • 举报
回复
DX的版本、显卡对DX的支持每个机器可能不一样。
my_girlf 2008-02-26
  • 打赏
  • 举报
回复
http://www.codesky.net/article/doc/200309/2003090721352282.htm
my_girlf 2008-02-26
  • 打赏
  • 举报
回复
ddsd.ddsCaps.dwCaps = DDSCAPS_OFFSCREENPLAIN;//这个是离屏页面
在创建离屏页面前应该先创建主页面

16,471

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

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