org.lwjgl.glfw.GLFW.glfwSetWindowMonitor()方法的使用及代码示例

x33g5p2x  于2022-01-20 转载在 其他  
字(6.5k)|赞(0)|评价(0)|浏览(264)

本文整理了Java中org.lwjgl.glfw.GLFW.glfwSetWindowMonitor()方法的一些代码示例,展示了GLFW.glfwSetWindowMonitor()的具体用法。这些代码示例主要来源于Github/Stackoverflow/Maven等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。GLFW.glfwSetWindowMonitor()方法的具体详情如下:
包路径:org.lwjgl.glfw.GLFW
类名称:GLFW
方法名:glfwSetWindowMonitor

GLFW.glfwSetWindowMonitor介绍

[英]Sets the mode, monitor, video mode and placement of a window.

This function sets the monitor that the window uses for full screen mode or, if the monitor is NULL, makes it windowed mode.

When setting a monitor, this function updates the width, height and refresh rate of the desired video mode and switches to the video mode closest to it. The window position is ignored when setting a monitor.

When the monitor is NULL, the position, width and height are used to place the window client area. The refresh rate is ignored when no monitor is specified.

If you only wish to update the resolution of a full screen window or the size of a windowed mode window, see #glfwSetWindowSize.

When a window transitions from full screen to windowed mode, this function restores any previous window settings such as whether it is decorated, floating, resizable, has size or aspect ratio limits, etc.

Notes:

  • This function must only be called from the main thread.
  • Wayland: The desired window position is ignored, as there is no way for an application to set this property.
  • Wayland: Setting the window to full screen will not attempt to change the mode, no matter what the requested size or refresh rate.
    [中]设置窗口的模式、监视器、视频模式和位置。
    此函数用于设置窗口用于全屏模式的监视器,如果监视器为空,则将其设置为窗口模式。
    设置监视器时,此功能更新所需视频模式的宽度、高度和刷新率,并切换到最接近的视频模式。设置监视器时忽略窗口位置。
    当监视器为空时,位置、宽度和高度用于放置窗口客户端区域。未指定监视器时,将忽略刷新率。
    如果您只想更新全屏窗口的分辨率或窗口模式窗口的大小,请参阅#glfwSetWindowSize。
    当窗口从全屏模式过渡到窗口模式时,此功能将恢复任何以前的窗口设置,如是否装饰、浮动、可调整大小、大小或纵横比限制等。
    笔记:
    *只能从主线程调用此函数。
    *Wayland:所需的窗口位置将被忽略,因为应用程序无法设置此属性。
    *Wayland:无论请求的大小或刷新率如何,将窗口设置为全屏都不会尝试更改模式。

代码示例

代码示例来源:origin: libgdx/libgdx

@Override
public boolean setWindowedMode(int width, int height) {
  window.getInput().resetPollingStates();
  if (!isFullscreen()) {
    GLFW.glfwSetWindowSize(window.getWindowHandle(), width, height);
  } else {
    if (displayModeBeforeFullscreen == null) {
      storeCurrentWindowPositionAndDisplayMode();
    }
      
    GLFW.glfwSetWindowMonitor(window.getWindowHandle(), 0,
        windowPosXBeforeFullscreen, windowPosYBeforeFullscreen, width, height,
        displayModeBeforeFullscreen.refreshRate);
  }
  updateFramebufferInfo();
  return true;
}

代码示例来源:origin: libgdx/libgdx

@Override
public boolean setWindowedMode(int width, int height) {
  window.getInput().resetPollingStates();
  if (!isFullscreen()) {
    GLFW.glfwSetWindowSize(window.getWindowHandle(), width, height);
  } else {
    if (displayModeBeforeFullscreen == null) {
      storeCurrentWindowPositionAndDisplayMode();
    }
      
    GLFW.glfwSetWindowMonitor(window.getWindowHandle(), 0,
        windowPosXBeforeFullscreen, windowPosYBeforeFullscreen, width, height,
        displayModeBeforeFullscreen.refreshRate);
  }
  updateFramebufferInfo();
  return true;
}

代码示例来源:origin: libgdx/libgdx

@Override
public boolean setFullscreenMode(DisplayMode displayMode) {
  window.getInput().resetPollingStates();
  Lwjgl3DisplayMode newMode = (Lwjgl3DisplayMode) displayMode;
  if (isFullscreen()) {
    Lwjgl3DisplayMode currentMode = (Lwjgl3DisplayMode) getDisplayMode();
    if (currentMode.getMonitor() == newMode.getMonitor() && currentMode.refreshRate == newMode.refreshRate) {
      // same monitor and refresh rate
      GLFW.glfwSetWindowSize(window.getWindowHandle(), newMode.width, newMode.height);
    } else {
      // different monitor and/or refresh rate
      GLFW.glfwSetWindowMonitor(window.getWindowHandle(), newMode.getMonitor(),
          0, 0, newMode.width, newMode.height, newMode.refreshRate);
    }
  } else {
    // store window position so we can restore it when switching from fullscreen to windowed later
    storeCurrentWindowPositionAndDisplayMode();
    
    // switch from windowed to fullscreen
    GLFW.glfwSetWindowMonitor(window.getWindowHandle(), newMode.getMonitor(),
        0, 0, newMode.width, newMode.height, newMode.refreshRate);
  }
  updateFramebufferInfo();
  return true;
}

代码示例来源:origin: libgdx/libgdx

@Override
public boolean setFullscreenMode(DisplayMode displayMode) {
  window.getInput().resetPollingStates();
  Lwjgl3DisplayMode newMode = (Lwjgl3DisplayMode) displayMode;
  if (isFullscreen()) {
    Lwjgl3DisplayMode currentMode = (Lwjgl3DisplayMode) getDisplayMode();
    if (currentMode.getMonitor() == newMode.getMonitor() && currentMode.refreshRate == newMode.refreshRate) {
      // same monitor and refresh rate
      GLFW.glfwSetWindowSize(window.getWindowHandle(), newMode.width, newMode.height);
    } else {
      // different monitor and/or refresh rate
      GLFW.glfwSetWindowMonitor(window.getWindowHandle(), newMode.getMonitor(),
          0, 0, newMode.width, newMode.height, newMode.refreshRate);
    }
  } else {
    // store window position so we can restore it when switching from fullscreen to windowed later
    storeCurrentWindowPositionAndDisplayMode();
    
    // switch from windowed to fullscreen
    GLFW.glfwSetWindowMonitor(window.getWindowHandle(), newMode.getMonitor(),
        0, 0, newMode.width, newMode.height, newMode.refreshRate);
  }
  updateFramebufferInfo();
  return true;
}

代码示例来源:origin: sriharshachilakapati/SilenceEngine

public void setMonitor(Monitor monitor, VideoMode videoMode)
{
  this.monitor = monitor;
  if (videoMode == null)
  {
    Vector2 size = getSize();
    videoMode = new VideoMode((int) size.x, (int) size.y, 32, 32, 32, 32);
  }
  glfwSetWindowMonitor(handle, monitor == null ? NULL : monitor.getHandle(), 0, 0, videoMode.getWidth(), videoMode.getHeight(), videoMode.getRefreshRate());
}

代码示例来源:origin: com.badlogicgames.gdx/gdx-backend-lwjgl3

@Override
public boolean setWindowedMode(int width, int height) {
  window.getInput().resetPollingStates();
  if (!isFullscreen()) {
    GLFW.glfwSetWindowSize(window.getWindowHandle(), width, height);
  } else {
    if (displayModeBeforeFullscreen == null) {
      storeCurrentWindowPositionAndDisplayMode();
    }
      
    GLFW.glfwSetWindowMonitor(window.getWindowHandle(), 0,
        windowPosXBeforeFullscreen, windowPosYBeforeFullscreen, width, height,
        displayModeBeforeFullscreen.refreshRate);
  }
  updateFramebufferInfo();
  return true;
}

代码示例来源:origin: com.badlogicgames.gdx/gdx-backend-lwjgl3

@Override
public boolean setFullscreenMode(DisplayMode displayMode) {
  window.getInput().resetPollingStates();
  Lwjgl3DisplayMode newMode = (Lwjgl3DisplayMode) displayMode;
  if (isFullscreen()) {
    Lwjgl3DisplayMode currentMode = (Lwjgl3DisplayMode) getDisplayMode();
    if (currentMode.getMonitor() == newMode.getMonitor() && currentMode.refreshRate == newMode.refreshRate) {
      // same monitor and refresh rate
      GLFW.glfwSetWindowSize(window.getWindowHandle(), newMode.width, newMode.height);
    } else {
      // different monitor and/or refresh rate
      GLFW.glfwSetWindowMonitor(window.getWindowHandle(), newMode.getMonitor(),
          0, 0, newMode.width, newMode.height, newMode.refreshRate);
    }
  } else {
    // store window position so we can restore it when switching from fullscreen to windowed later
    storeCurrentWindowPositionAndDisplayMode();
    
    // switch from windowed to fullscreen
    GLFW.glfwSetWindowMonitor(window.getWindowHandle(), newMode.getMonitor(),
        0, 0, newMode.width, newMode.height, newMode.refreshRate);
  }
  updateFramebufferInfo();
  return true;
}

相关文章

GLFW类方法