如何使用Win32 API的DEVMODE扩展OpenGL全屏应用程序?

时间:2014-05-04 23:33:29

标签: c++ opengl

我正在尝试将800x600屏幕拉伸到全屏尺寸。我目前在800x600部分周围有黑色边框。我正在使用OpenGL的Win32 API。

进入全屏时调用:

    DEVMODE dmScreenSettings;

    memset(&dmScreenSettings, 0, sizeof(dmScreenSettings));
    dmScreenSettings.dmSize = sizeof(dmScreenSettings);
    dmScreenSettings.dmPelsWidth = win->width;
    dmScreenSettings.dmPelsHeight = win->height;
    dmScreenSettings.dmBitsPerPel = SCREEN_BPP; 
    dmScreenSettings.dmFields = DM_BITSPERPEL | DM_PELSWIDTH | DM_PELSHEIGHT;

有没有办法用DEVMODE拉伸?

注意:有一个.dmScale成员,但我没有运气。

1 个答案:

答案 0 :(得分:0)

请勿更改显示设备模式。这样做会改变进入屏幕的物理信号,并可能弄乱用户Desktop的图标排列。用户不喜欢这样,不要冒犯用户。

如果只需要拉伸显示,请调整窗口大小以覆盖整个屏幕,并使用glViewport和投影矩阵的相应值。如果您发布绘图函数源代码,我可以给您更多建议。