通过lwjgl获得显示设备当前分辨率、可支持分辨率列表

1 篇文章 0 订阅

利用lwjgl获得当前屏幕设备可支持分辨率列表根据版本不同方法也有很大的变化

lwjgl-2.X.X

在lwjgl-2.X.X版本中DisplayDisplayMode可被用来获得当前屏幕设备可支持分辨率列表

import org.junit.Test;
import org.lwjgl.LWJGLException;
import org.lwjgl.opengl.Display;
import org.lwjgl.opengl.DisplayMode;

public class TestReslution {
    @Test
    public void display() {
        try {
            // 获得可支持分辨率集合
            DisplayMode[] modes = Display.getAvailableDisplayModes();
            for (DisplayMode mode : modes) {
                int width = mode.getWidth();
                int height = mode.getHeight();
                System.out.printf("%sx%s,%sHz %s色 %n", mode.width(), mode.height(), mode.getFrequency(), mode.getBitsPerPixel());
            }
            // 获得当前分辨率
            DisplayMode mode = Display.getDisplayMode();
            System.out.printf("%sx%s,%sHz %s色 %n", mode.width(), mode.height(), mode.getFrequency(), mode.getBitsPerPixel());
        } catch (LWJGLException e) {
            e.printStackTrace();
        }
    }
}
lwjgl-3.X.X

在lwjgl-3.X.X版本中DisplayDisplayMode已经找不到这两个类了,所以,获得当前屏幕设备可支持分辨率列表也有很大不同。用来替代该方法的是:在lwjgl-glfw-3.X.X.jar包下的两个类GLFWGLFWVidMode

import org.junit.Test;
import org.lwjgl.glfw.GLFW;
import org.lwjgl.glfw.GLFWVidMode;

public class TestReslution {
    @Test
    public void display() {
        GLFW.glfwInit();
        // 获得屏幕设备的编号
        long monitor = GLFW.glfwGetPrimaryMonitor();
        // 获得分辨率对象
        GLFWVidMode.Buffer modes = GLFW.glfwGetVideoModes(monitor);
        // 遍历循环分辨率
        while (modes.hasRemaining()) {
            GLFWVidMode mode = modes.get();
            System.out.printf("%sx%s,%sHz 红%s,绿%s,蓝%s %n", mode.width(), mode.height(), mode.refreshRate(), mode.redBits(), mode.greenBits(), mode.blueBits());
        }
        // 获得当前分辨率
        GLFWVidMode mode = GLFW.glfwGetVideoMode(monitor);
        System.out.printf("%sx%s,%sHz 红%s,绿%s,蓝%s %n", mode.width(), mode.height(), mode.refreshRate(), mode.redBits(), mode.greenBits(), mode.blueBits());
    }
}
总结

从上述代码中可以看出
1. 在3.x.x版本可以支持分不同屏幕设备获得不同的分辨率列表
2. 在3.x.x版本中色彩划分也更细致到RGB

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值