opengl - 如何将 OpenGL 显示(由 OpenGL 创建的窗口)设置为最大化?

标签 opengl lwjgl

我想将我的 OpenGL 显示设置为最大化。

如果我 setResizeable(true),我可以让用户手动执行此操作然后让玩家点击最大化按钮,即as a tester mentioned对用户来说是一个痛苦和不必要的步骤。

我可以将显示大小设置为与玩家屏幕相同的大小,但这看起来很奇怪,而且我不是在寻找全屏模式。

显然我已经可以全屏并设置显示大小,但我目前无法找到任何实际上允许我实际最大化显示的方法。

如果您不明白全屏和最大化( Meta Stack Overflow discussion )之间的区别,那么这里是 Maximized 的说明,这里是对 Fullscreen 的描述.

最佳答案

这篇评论太长了,所以我主要把它贴在这里:

最大化模式:

调用 CreateWindow 或 CreateWindowEx 时,使用 WS_MAZIMIZE .

 hwnd = CreateWindowEx(
        WS_EX_CLIENTEDGE,
        g_szClassName,
        "The title of my window",
        WS_MAZIMIZE,
        CW_USEDEFAULT, CW_USEDEFAULT, 240, 120,
        NULL, NULL, hInstance, NULL);

This thread如果您使用 GLUT,可能会感兴趣。

一个建议 here

I think you can maximize the window by setting the Display location to 0px,0px and getting the desktop DisplayMode via Display.getDesktopDisplayMode() and then setting this DisplayMode as new DisplayMode.



全屏模式:

setDisplayModeAndFullscreen
public static void setDisplayModeAndFullscreen(DisplayMode mode)
                                        throws LWJGLException
  • 设置上下文的模式。
  • 如果没有通过 create() 创建上下文,则调用 create() 时将应用该模式。
  • mode.isFullscreenCapable()true ,上下文将变成全屏上下文,显示模式切换到 getDisplayMode() 给出的模式.
  • mode.isFullscreenCapable()false ,上下文将成为窗口上下文,其维度在 getDisplayMode(). 返回的模式中给出。 native 光标位置也被重置。

  • 参数:
    mode - The new display mode to set. Must be non-null.
    Throws:
    LWJGLException - If the mode switch fails.
    

    找到 here .

    我还找到了 this这似乎是用可能的屏幕模式提交一个数组列表 - 但我不确定

    关于opengl - 如何将 OpenGL 显示(由 OpenGL 创建的窗口)设置为最大化?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26769496/

    相关文章:

    java - 如何在 OpenGL 中渲染具有不同颜色侧面的立方体?

    java - 固定(在世界坐标中)LWJGL 中的照明位置?

    c - OpenGL - 填充滑板四分之一管

    c# - 如何检查点是否在四面体中?

    c++ - GL_POINT_SPRITE_ARB 渲染问题

    Java 游戏在启动时崩溃两次,没有错误消息

    java - glDrawElements 上的 GL_INVALID_ENUM

    android - OpenGL ES单像素绘图android

    c++ - 是否有任何适用于延迟着色的独立于顺序的透明技术?

    c++ - 加载纹理时,此示例中是什么导致glTexSubImage1D()-GL_INVALID_VALUE错误?