fullscreen DXGI DX11

these days i am fullfilling full screen

https://github.com/rufelt/simpled3d11window

put this one  in phyreengine interfaced3d11

http://www.rastertek.com/dx11tut03.html

this link is useful to understand the initialize dx

https://msdn.microsoft.com/en-us/library/windows/desktop/ee417025(v=vs.85).aspx

this is docs in msdn

终于可以输入中文了。。。。。

做了个fake full screen

真全屏会卡在swapchain-present那里 应该是多线程的缘故

------------------------

基本就是用winapi做的 

这个问题是,去掉边框。。

LONG lExStyle = GetWindowLong(hwnd, GWL_EXSTYLE);
lExStyle &= ~(WS_EX_DLGMODALFRAME | WS_EX_CLIENTEDGE | WS_EX_STATICEDGE);
SetWindowLong(hwnd, GWL_EXSTYLE, lExStyle);

http://stackoverflow.com/questions/2398746/removing-window-border

createwindow 的窗体由style决定,用这个方式可以在运行时改变窗体style 

用changeDisplaySetting(,CDS_FULLSCREEN);

具体查msdn

下一个问题是

从全屏模式设置回窗口模式

 ---------------------------------------------------------

项目就用假全屏对付过去了实时切换

ChangeDisplaySettings(NULL,CDS_RESET);

DEVMODE dmScreenSettings;
memset (&dmScreenSettings, 0, sizeof (dmScreenSettings));
dmScreenSettings.dmSize = sizeof (dmScreenSettings);   
dmScreenSettings.dmPelsWidth = 1280;
dmScreenSettings.dmPelsHeight = 720;    
dmScreenSettings.dmBitsPerPel = 32;      
dmScreenSettings.dmFields = DM_BITSPERPEL | DM_PELSWIDTH | DM_PELSHEIGHT;

ChangeDisplaySettings(&dmScreenSettings,CDS_FULLSCREEN);

再设置下窗口模式就可以了

http://stackoverflow.com/questions/3549148/fullscreen-management-with-winapi

----------------------------------------------------------------------------------

但是,这就是一个win的程序啊,根据程序员的道德修养,我还在写真全屏,希望会有进展。。。。

posted on 2015-03-25 20:03  minggoddess  阅读(502)  评论(0编辑  收藏  举报