我搜索了很长时间以寻找在带有Retina显示屏的MacBook Pro上运行简单LWJGL应用程序的解决方案。问题是Retina显示屏闪烁。但我刚刚发现了无提示的提示。
您知道任何代码解决方案来处理这个问题吗?例如,更改视口或其他内容?
我有什么要添加到以下代码中?
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();
}
}
答案 0 :(得分:1)
你真的试图渲染任何东西吗?
听起来后端缓冲区包含垃圾数据,并且您不会在该循环中绘制任何内容。每次调用Display.update()
时,它都会翻转后缓冲区,如果你没有在上面绘制,那么你就会得到垃圾数据的闪烁。
尝试类似:
while(!Display.isCloseRequested()) {
GL11.glClear(GL11.GL_COLOR_BUFFER_BIT | GL11.GL_DEPTH_BUFFER_BIT);
GL11.glEnd();
Display.update();
}
在翻转后缓冲区之前清除显示。
一般情况下,如果你实际上没有显示任何内容,那么你就会看到图形驱动程序和内存的奇思妙想,最终会出现在屏幕上。如果我使用了您的代码,我会在窗口中看到以下内容: