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上做一些简单的渲染。
责编:豆豆技术应用