Java - LWJGL - OS X 视网膜支持

标签 java lwjgl retina-display

我寻找了一个在配备 Retina 显示屏的 MacBook Pro 上运行简单 LWJGL 应用程序的解决方案。问题是 Retina 显示屏闪烁。但我只是发现了无信息的提示。

你知道有什么代码解决方案可以处理这个问题吗?例如更改视口(viewport)或其他什么?

我需要在下面的代码中添加什么?

import org.lwjgl.LWJGLException;
import org.lwjgl.opengl.Display;
import org.lwjgl.opengl.DisplayMode;
import org.lwjgl.opengl.GL11;

public class MainDisplay {
    final int DISPLAY_WIDTH = 640;
    final int DISPLAY_HEIGHT = 480;

    public void start() {
        try {
            Display.setDisplayMode(new DisplayMode(DISPLAY_WIDTH, DISPLAY_HEIGHT));
            Display.create();
        }
        catch(LWJGLException exception) {
            exception.printStackTrace();
        }

        while(!Display.isCloseRequested()) {
            Display.update();
        }

        Display.destroy();
    }
}

最佳答案

你真的尝试过渲染任何东西吗?

听起来后台缓冲区包含垃圾数据,并且您没有在该循环中绘制任何内容。每次调用 Display.update() 时,它都会翻转后台缓冲区,如果您没有在其上绘制,则会看到闪烁的垃圾数据。

尝试如下:

while(!Display.isCloseRequested()) {
    GL11.glClear(GL11.GL_COLOR_BUFFER_BIT | GL11.GL_DEPTH_BUFFER_BIT);
    GL11.glEnd();
    Display.update();
}

在翻转后台缓冲区之前清除显示。

一般来说,如果您实际上没有显示任何内容,那么您将受到图形驱动程序和内存的影响,决定屏幕上最终显示的内容。如果我使用您的代码,我会在窗口中看到以下内容:

Garbage Display Output

关于Java - LWJGL - OS X 视网膜支持,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19895287/

相关文章:

java - Gradle 和 Lwjgl 3 Native

css - Safari 中的响应列

macos - 视网膜问题 (OS X)

javascript - 视网膜显示屏上的 Chartjs v2 存在标签大小问题(文本太大)

java - 在未附加到 Activity 的 Fragment 中调用 Activity 方法

java - Jersey REST 调用中的复杂查询

java - 无输出程序

java - 按多个值分组

Java LWGJL opengl 缓冲区数据

java - 如何为单个对象添加连续 LOD?