C# DirectX编程设置全屏和PresentParameters参数
見此;
https://blog.csdn.net/bcbobo21cn/article/details/44890937
D3D初始化時首先設(shè)置了PresentParameters參數(shù);暫時沒有此參數(shù)的C#參考;參閱C++相關(guān)定義看一下;
此參數(shù),定義后臺緩存表面的參數(shù)(包括深度模板緩存是否定義和像素格式);在C++中是一個結(jié)構(gòu)體;
typedef structD3DPRESENT_PARAMETERS {
? UINT ? ? ? ? ? ? ? ?BackBufferWidth; // 窗口模式可以為0,全屏模式是EnumAdapterModes的一個返回值
? UINT ? ? ? ? ? ? ? ?BackBufferHeight;//同上
? D3DFORMAT ?BackBufferFormat;//窗口模式可用D3DFMT_UNKNOWN,全屏模式是CheckDeviceType的返回值
? UINT ? ? ? ? ? ? ? ?BackBufferCount;//賦值0將是1,D3DSWAPEFFECT_COPY交換表現(xiàn)只能是一個后臺緩存,一般為1
? D3DMULTISAMPLE_TYPE ? ? ?MultiSampleType;// D3DWAPEFFECT_DISCARD下才能用多重采樣,否則都是D3DMULTSAMPLE_NONE
? DWORD ? ? ? ? ? ? ? MultiSampleQuality;//要用CheckDeviceMultiSampleType,值[0,CheckDeviceMultiSampleType-1]
? D3DSWAPEFFECT ? ? ? ?SwapEffect;// D3DSWAPEFFECT_COPY只能在后臺緩存?zhèn)€數(shù)是1,一般用D3DSWAPEFFECT__DISCARD
? HWND ? ? ? ? ? ? ? ?hDeviceWindow;//窗口模式下可以為NULL,全屏模式下是CreateDevice的hFocusWindow
? BOOL ? ? ? ? ? ? ? ?Windowed;//窗口模式,還是全屏模式
? BOOL ? ? ? ? ? ? ? ?EnableAutoDepthStencil;// depth-stencil Buffer會自動設(shè)置為渲染目標(biāo),reset時自動重新創(chuàng)建
? D3DFORMAT ? ? ? ? ? AutoDepthStencilFormat;//CheckDepthStencilMatch的返回值
? DWORD ? ? ? ? ? ? ? Flags;//一般用D3DPRESENTFLAG__DISCARD_DEPTHSTENCIL
? UINT ? ? ? ? ? ? ? ?FullScreen_RefreshRateInHz;// FPS,窗口模式下必須為0(會添加),全屏模式是EnumAdapterModes返回值
? UINT ? ? ? ? ? ? ? ?PresentationInterval;//一般用D3DPRESENT_INTERVAL_DEFAULT也就是D3DPRESENT_INTERVAL_ONE
} D3DPRESENT_PARAMETERS,*LPD3DPRESENT_PARAMETERS;
按參數(shù)的定義,如果?presentParams.Windowed = true 則運行在窗口模式,如果為false則運行在全屏模式;改為false看一下;
? ? 提示出錯的語句是,
? ??device = new Device(0, DeviceType.Hardware, this, CreateFlags.SoftwareVertexProcessing, presentParams);
看上去這句也沒什么可以改動的;如果把第三個參數(shù)改為null也是一樣的錯;
如果還是?presentParams.Windowed = true,并設(shè)置窗體的屬性為如下,
? ? 把TopMost設(shè)成true?
? ? 把FormBorderStyle設(shè)成none?
? ? 把WindowsState設(shè)Maximized?
則窗體會顯示為全屏;但可能還是有問題,下回再看;
總結(jié)
以上是生活随笔為你收集整理的C# DirectX编程设置全屏和PresentParameters参数的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: VC++开发简单DLL并调用
- 下一篇: Cesium - 转换obj模型为3D