使用DirectX的API的话可以给游戏窗口设置指定的显示器和全屏独占模式,但是如果使用OpenGL的API就比较遗憾不能直接设置。
以下内容基于Windows系统。
如果使用OpenGL渲染,第一步当然是创建窗口,如果想要设置全屏模式,需要做以下几步操作:
一、把窗口设为无边框
二、把窗口坐标设置到屏幕左上角,窗口大小设为跟屏幕同样大小
三、如果有必要调整屏幕刷新率,要需要调用 ChangeDisplaySettingsEx 函数
四、窗口必须有焦点并且是激活的。
关于OpenGL全屏独占模式,经过我在某404网站的努力搜索,得到如下的结论:
一、如果OpenGL窗口要使用全屏独占模式,首先得按上面的几步来做。
二、不断调用 wglSwapBuffers 之后,显卡驱动可能就会认为你的全屏OpenGL窗口需要加速渲染,然后把你的窗口设置为全屏独占模式。
三、能不能用全屏独占还得看显卡驱动的心情。
以下是多显示器测试的一点代码:
// ConsoleApplication1.cpp : This file contains the ‘main’ function. Program execution begins and ends there.
//
#include “pch.h”
#include
#include
#include
struct UsableMode
{
// 分辨率宽度(像素)
DWORD dmPelsWidth;
// 分辨率高度(像素)
DWORD dmPelsHeight;
// 颜色深度(位)
DWORD dmBitsPerPel;
// 刷新率(Hz)