DirectXGuide入门

http://tech.ddvip.com   2007年04月02日    社区交流

本文详细介绍DirectXGuide入门

  利用Class Wizard转到CDDTest的UpdateFrame()

  bool CDDTestApp::UpdateFrame(void) { // add your code here ! m_pDDDevice-$#@62;GetRenderSurface()-$#@62;Fill(0);

  return CDirectXApp::UpdateFrame(); }

  将m_pDDDevice-$#@62;GetRenderSurface()-$#@62;Fill(0);用以下代码替换:

  . . . . . . static BOOL bOdd = FALSE; if (bOdd) m_pDDDevice-$#@62;GetRenderSurface()-$#@62;Fill(0); else m_pDDDevice-$#@62;GetRenderSurface()-$#@62;Fill(0xFFFFFFFF); bOdd = !bOdd; . . . . . .

  运行后会怎么样?眼睛是不是很不舒服?不过不要紧,下一个教程会好受些。

  好象忘了什么?Flip()?哪有翻页动作?我怎么没看见?其实基本的动作DXGuide 都给你封装到基类里了,看到CDirectXApp::UpdateFrame()了没有?你将它改成m_pDirectDraw-$#@62;Flip()再运行看看,真对不起,又让你眼花了,下不为例。

  渲染页面

  前面讲到我们的渲染都是在Back buffer里完成的,渲染后再Flip到Front buffer 。那么如何取到Backbuffer呢?我们回到前面一个教程来看看,在前面有这样一句:m_pDDDevice-$#@62;GetRenderSurface()-$#@62;Fill(0);这里的(CDDDevice*)m_pDDDevice是你当前使用的显卡设备,CDDDevice主要用于枚举显示设备,也就是说DDGuide支持多显屏,这里暂不多加介绍,知道m_pDDDevice是什么就可以了。GetRenderSurface()返回的就是此显卡的Back buffer,返回值类型是CDDSurface*,Fill(DWORD)是CDDSurface是一个成员函数,用于在buffer里填充颜色。所以Fill(0)是在buffer里填充黑色,Fill(0xFFFFFFFF)是填充白色。看到这里大家应该知道,其实前一教程就已经做渲染操作了。下面我们来看看如何在buffer上做一些简单的渲染。

责编:豆豆技术应用

正在加载评论...