木感想

常常思索 没有结果 来来去去 依稀记得

导航

比较DirectX2005

昨天用最新的Dx2005做程序,突然不会了。
过去十分熟悉的CD3DApplication和其他和好用的类都不见了。
失望之余,拿起Dx2005就开始编写程序。

程序框架很好写,初始化各种事件:
 DXUTSetCallbackDeviceCreated( OnCreateDevice );
 DXUTSetCallbackDeviceReset( OnResetDevice );
 DXUTSetCallbackDeviceLost( OnLostDevice );
 DXUTSetCallbackDeviceDestroyed( OnDestroyDevice );
 DXUTSetCallbackMsgProc( MsgProc );
 DXUTSetCallbackKeyboard( KeyboardProc );
 DXUTSetCallbackFrameRender( OnFrameRender );
 DXUTSetCallbackFrameMove( OnFrameMove );

这些都是新的,反正都还是Win32风格的事件回调等方法。

设置光标显示模式:
 DXUTSetCursorSettings( true, true );


初始化应用程序:
 InitApp();
在这里,添加各种控件,他们模仿MFC对一系列控件作了封装,当然,还是D3D制作出来的。
需要在后面的程序中,执行渲染处理。


//这里等于是初始化成员数据,他的数据都放在DXUTState里面。
//主要做的工作就是增加了很多关于版本,命令解析等方法。
 DXUTInit( true, true, true ); 

//这里,创建程序窗口,在CreateWindow之前作了很多工作。
 DXUTCreateWindow( L"D3D window" );

//各种设备。和过去的InitDeviceObjects()是一样的。
 DXUTCreateDevice( D3DADAPTER_DEFAULT, true, 640, 480, IsDeviceAcceptable, ModifyDeviceSettings );


//执行MsgProc这样的循环中。
 DXUTMainLoop();


//结束程序
 return DXUTGetExitCode();

可能写这个版本的D3D程序用不了多少行就完成了。
但是,效果并不理想。好像有更多东西被他们写了,我都不知道自己该怎么样继续写下去了。
而且,这个程序的运行,出奇的慢。可能控件已经消耗了大量资源。

对于新增加的一些类,我倒是觉得非常好用。
比如:CGrowableArray 比以前的CArrayList更强了
CDXUTTextHelper也很好用,只需要初始化一个ID3DXSprite,让文字画在上面就行了。

仔细看了一遍,还真发现了不少好东西。

今天下午,卸载了这个SDK,然后重新装上Dxsdk9-2003。
接着,哈哈,赶快拷贝2005里面的好东西。

2005取消了DXPlay这也是让我卸载的理由,他只说DP和微软网络总体结构有冲突(对抗)
可我还是要用DP,因为他真的很不错,写出来的服务器运行很稳定。
工作太忙了,先写到这里。

想来想去,最后还是决定自己写框架,从CreateWindow作起。
这样的选择感觉还不错,这几天代码进展的很不错,很多效果都能根据自己的想法来实现了。
如果,以后非要在窗体上搞个CD3DWnd类,那就参考MFC好好写一个d3d窗体类,让d3d像mfc一样好用。

posted on 2005-03-23 17:24  跌跌撞撞  阅读(1236)  评论(2)    收藏  举报