gpt4 book ai didi

c++ - DirectX 当前参数 Windowed=false 不工作

转载 作者:行者123 更新时间:2023-11-28 01:51:11 25 4
gpt4 key购买 nike

我正在尝试制作游戏。我正在使用 directx 9 这样做,但在尝试进入全屏模式时遇到了一些问题。我做了一个初始化所有当前参数的函数。一切都很好,除非我使 windowed = false(即我将全屏设置为 true)。

这是我当前的参数变量:D3DPRESENT_PARAMETERS d3dpp;

这里是 d3dpp 变量的代码。大多数(如果不是全部)代码都来自查尔斯·凯利 (Charles Kelley) 的一本名为 Programming 2d Games 的书。

void Graphics::initD3Dpp()
{
try {
ZeroMemory(&d3dpp, sizeof(d3dpp));

d3dpp.BackBufferWidth = width;
d3dpp.BackBufferHeight = height;
if (fullscreen)
d3dpp.BackBufferFormat = D3DFMT_X8R8G8B8;
else
d3dpp.BackBufferFormat = D3DFMT_UNKNOWN;
d3dpp.BackBufferCount = 1;
d3dpp.SwapEffect = D3DSWAPEFFECT_DISCARD;
d3dpp.hDeviceWindow = mainhwnd;
d3dpp.Windowed = (!fullscreen); //THIS LINE RIGHT HERE IS THE ISSUE
d3dpp.PresentationInterval = D3DPRESENT_INTERVAL_IMMEDIATE;
}
catch (...)
{
throw(GameError(gameErrorNS::FATAL_ERROR,
"Error initializing D3D presentation parameters"));

}

}

我不明白为什么 .windowed 对我不起作用。如果您需要更多背景信息,请询问我。

最佳答案

根据评论,您建议您使用的是 600x480。非常怀疑这是您系统支持的分辨率,更有可能的是,您打算使用 640x480。据我所知,基本上每个 D3D9 驱动程序都支持此分辨率。

但是,对分辨率进行硬编码并不是一个可靠的解决方案,遵循 documentation 中所述的建议更为实用。对于 D3DPRESENT_PARAMETERS,并使用 EnumAdapterModes函数,获取设备的有效分辨率和显示格式列表。

关于c++ - DirectX 当前参数 Windowed=false 不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42964103/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com