DirectX 呈现参数窗口=假不起作用
DirectX Present Parameters Windowed=false not working
我正在尝试制作一个游戏。 我正在使用 directx 9 来执行此操作,并且在尝试进入全屏模式时遇到一些问题。 我做了一个函数来启动所有当前参数。 一切都很好,除了当我使窗口=假(即我将全屏设置为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驱动程序都支持此分辨率。
但是,对分辨率进行硬编码不是一个可靠的解决方案,遵循D3DPRESENT_PARAMETERS
文档中所述的建议并使用EnumAdapterModes
函数获取设备的有效分辨率和显示格式的列表更为实用。
相关文章:
- 代码编译但不起作用!cmd窗口只是理想和理想,但什么也没发生
- Gtk::带有set_icon_name的窗口图标集在 wayland 上不起作用
- Opencv在2013年第5季度不起作用.应用程序总是在窗口中崩溃
- 命名窗口正在显示,但不起作用
- SDL2 窗口在失焦时不起作用
- 为什么 OpenService() 在我检查窗口服务状态时不起作用?
- gtkmm 和多窗口不起作用
- 为什么 random() 在窗口中不起作用
- DirectX 呈现参数窗口=假不起作用
- 窗口处于全屏模式时,QT连接不起作用
- 窗口可防止多个实例代码不起作用
- 创建窗口不起作用,但不提供错误消息
- SFML 通过构造函数获取另一个类的窗口不起作用
- gtkmm 2.4 开罗时钟示例在修改为在 HBox 内部而不是主窗口内绘制时不起作用
- 创建窗口不起作用
- 设置控制台信息窗口大小调整不起作用 c++
- opencv 3.0 findContours函数在窗口中不起作用
- 在C++的窗口中打开文件对话框>过滤器不起作用
- freeeglut窗口init + glow 3.0上下文创建不起作用
- QProgress 新窗口中的栏不起作用