光速的完成了ProduceSystem的client和srv后,数了数,3000行,2周,一个累字了得。。。。休息了两天后,钢哥给我说,来看看聊天面板的帧动画和外置聊天窗口。- -, 最蛋疼的外置聊天窗口还是要做~~诶,之前看过一下此版本的外置窗口实现,纯WIN32 GDI~怎一个痛苦了得,帧动画到时用引擎现成的接口封装完毕~~~但是外置的就很痛苦了,于是就想,外置的窗口不都是win32吗,好,改成3D窗口的试试,改成了,就可以用现成的底层引擎支持~~~~~。 刚开始,看了看源代码,看到了 由游戏的主WinMain传入进来的hWnd和hInstance建立了一个wc窗口风格,然后下面的就是直接调用API Creat(...); 来创建的窗口,看看了Creat的返回参数,OK , HWND, 保存了这个返回值在用 // 初始化3D窗口
if( FAILED( m_pD3D->CreateDevice( D3DADAPTER_DEFAULT,
OK, 顺利成功,直接顺利渲染出3D窗口,但是过程万多不容易。。。。啊,但是貌似引擎底层是主游戏里的D3Ddevice来初始化很多资源的,怎么办?外部的gTalkDecvice 根本就不用。。。 达人出现,一开发引擎的同事给我说就用主游戏里的D3Ddevice来渲染外部窗口~~ (这么凶?)。。。上代码:
// .h IDirect3DSwapChain9 *m_pD3dSwapChain9;
// .cpp
D3DPRESENT_PARAMETERS d3dpp;
GetD3dDevice()->CreateAdditionalSwapChain( &d3dpp, &m_pD3dSwapChain9 ); // 渲染 // GetD3dDevice() 获取主游戏3D设备句柄 if( NULL == m_pD3dSwapChain9 ) GetD3dDevice()->EndScene(); m_pD3dSwapChain9->Present( NULL, NULL, NULL, NULL, NULL);
哦也,顺利在外部窗口上渲染出3D界面,而引擎现在也可以使用部分套件,移植GUI。。努力,膜拜达人同事+1.hehe,我们游戏的外置窗口一定要比其它游戏丰富了!呵呵 |
|
来自: SamBookshelf > 《DirectX》