|
|
我写的dx程序 全屏运行 d3dpresent_parameters.Windowed=false;没有问题 一点都不卡,但是一但改乘 true用窗口运行 就非常卡 不知道为什么??
我图象设备属性是这样设置的:
D3DPRESENT_PARAMETERS d3dpresent_parameters;
ZeroMemory(&d3dpresent_parameters,sizeof(d3dpresent_parameters));
d3dpresent_parameters.BackBufferWidth=800;
d3dpresent_parameters.BackBufferHeight=600;
d3dpresent_parameters.BackBufferFormat=d3ddisplaymode.Format;
d3dpresent_parameters.BackBufferCount=1;
d3dpresent_parameters.hDeviceWindow=hwnd;
d3dpresent_parameters.Windowed=false;//改变是否全屏幕
d3dpresent_parameters.SwapEffect=D3DSWAPEFFECT_FLIP;
d3dpresent_parameters.PresentationInterval=D3DPRESENT_INTERVAL_DEFAULT;
d3dpresent_parameters.EnableAutoDepthStencil=true;
d3dpresent_parameters.AutoDepthStencilFormat=D3DFMT_D16;
投影矩阵是这样设置的:
D3DXMATRIX projection;
D3DXMatrixPerspectiveFovLH(&projection,D3DX_PI/4,float(fullview.Width)/float(fullview.Height), 1.0f,1000.0f);
direct3ddevice->SetTransform(D3DTS_PROJECTION,&projection);
direct3ddevice->SetRenderState(D3DRS_NORMALIZENORMALS,true);
direct3ddevice->SetSamplerState(0,D3DSAMP_MAGFILTER,D3DTEXF_LINEAR);
direct3ddevice->SetSamplerState(0,D3DSAMP_MINFILTER,D3DTEXF_LINEAR);
direct3ddevice->SetSamplerState(0,D3DSAMP_MIPFILTER,D3DTEXF_POINT);
direct3ddevice->SetRenderState(D3DRS_LIGHTING,false);
创建窗口用的是:hwnd=CreateWindow("3d","3d game",WS_OVERLAPPEDWINDOW,0,0,800,600,NULL,NULL,hinstance,NULL);
请高手帮忙看看 出了什么问题 全屏没问题 一旦窗口运行就会很卡!!!
|
|