在项目解决方案中删除program.cs文件,在Form1.cs中添加如下代码:
保存,运行,你会看到一个蓝色的窗口,那就是我们创建的Direct3D程序了,怎么样?不是很难吧?
看了上面的代码,感觉是否有很多地方还不是很明白?那好,我们再来仔细分析这个程序的流程.
首先,我们知道,程序运行需要一个main()函数,通常main()函数是位于program.cs文件中的,现在我们要改写了它,把它移到Form1.cs中, 那它到底做了些什么事情呢?我们知道,它生成了一个Form1对象,然后调用form的InitializeGraphics()方法判断图形初始化是否成功,其实InitializeGraphics()方法的主要功能就是根据一些设定的设备参数以及根据当前机器的硬件性能来生成一个设备对象device,同时调用OnResetDevice(),OnResetDevice()的主要作用是对要渲染的对象进行初始化,当然,在这个InitializeGraphics()里,我们没有做详细的硬件检测,假想它的机器还不是那么可怜.然后main()函数调用了应用程序的Idle事件,表示在应用程序完成处理即将进入空闲状态时调用Render()方法,进行渲染,那我们再来看Render()做了什么:
device.Clear(ClearFlags.Target | ClearFlags.ZBuffer, Color.Blue, 1.0f, 0);
作用是:清除当前屏幕的对象和Z缓冲,并将屏幕的背景颜色设置为蓝色
device.BeginScene();//我要开始绘图了啊
device.EndScene();//我绘图结束了
device.Present();//作用是:将所绘制的对象显示在屏幕上
好了,现在大家该明白流程了:main()->初始化图形设备->对需要渲染的对象进行初始化->进行渲染
到目前为止,整个框架就建好了.剩下的就是如何在//.......处添加你要渲染的对象了,下次我们将重点讨论device.
转载自:http://www.cnblogs.com/1042Lyf/archive/2007/12/21/1009016.html
很完整的系列资料:深入Managed DirectX9 (强烈推荐)
http://dev.gameres.com/Program/Visual/DirectX/ManagedDirectX9_1.htm
补充Direct3D资料:
http://www.gesoftfactory.com/developer/