向D3D高手请教!

fastbit 2002-09-20 04:02:34
我创建了一个D3D设备:用的描述如下
d3dpp.BackBufferFormat = BackFmt;
d3dpp.BackBufferCount = 1;
d3dpp.MultiSampleType = D3DMULTISAMPLE_NONE;
d3dpp.SwapEffect = D3DSWAPEFFECT_DISCARD;
d3dpp.Windowed = FALSE;
d3dpp.EnableAutoDepthStencil = TRUE;
d3dpp.AutoDepthStencilFormat = D3DFMT_D16_LOCKABLE;
d3dpp.FullScreen_RefreshRateInHz = m_nFreshRate;
d3dpp.FullScreen_PresentationInterval = D3DPRESENT_INTERVAL_DEFAULT;
d3dpp.hDeviceWindow = m_hWnd;

然后又用getbackbuffer创建了一个surface引用
最后想用surface的lockrect方法得到显示缓冲区的地址却失败了,求救
代码如下
IDirect3DSurface8* pSurface = NULL;

if( FAILED(m_pD3DDevice->GetBackBuffer(0, D3DBACKBUFFER_TYPE_MONO, &pSurface)) )
return;

D3DLOCKED_RECT lockrect;
ZeroMemory(&lockrect, sizeof(lockrect));
if( FAILED( pSurface->LockRect(&lockrect, NULL, D3DLOCK_READONLY) ))
return;

...全文
45 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
弟十六 2002-09-20
  • 打赏
  • 举报
回复
先试试GetLastError,看看错误说明。我估计是前面的参数设置有问题,祝你好运。

8,304

社区成员

发帖
与我相关
我的任务
社区描述
游戏开发相关内容讨论专区
社区管理员
  • 游戏开发
  • 呆呆敲代码的小Y
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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