private void initDisplay(Config config, LwjglDisplayDevice lwjglDisplay) {
try {
lwjglDisplay.setFullscreen(config.getRendering().isFullscreen(), false);
RenderingConfig rc = config.getRendering();
Display.setLocation(rc.getWindowPosX(), rc.getWindowPosY());
Display.setTitle("Terasology" + " | " + "Pre Alpha");
try {
String root = "org/terasology/icons/";
ClassLoader classLoader = getClass().getClassLoader();
BufferedImage icon16 = ImageIO.read(classLoader.getResourceAsStream(root + "gooey_sweet_16.png"));
BufferedImage icon32 = ImageIO.read(classLoader.getResourceAsStream(root + "gooey_sweet_32.png"));
BufferedImage icon64 = ImageIO.read(classLoader.getResourceAsStream(root + "gooey_sweet_64.png"));
BufferedImage icon128 = ImageIO.read(classLoader.getResourceAsStream(root + "gooey_sweet_128.png"));
Display.setIcon(new ByteBuffer[]{
new ImageIOImageData().imageToByteBuffer(icon16, false, false, null),
new ImageIOImageData().imageToByteBuffer(icon32, false, false, null),
new ImageIOImageData().imageToByteBuffer(icon64, false, false, null),
new ImageIOImageData().imageToByteBuffer(icon128, false, false, null)
});
} catch (IOException | IllegalArgumentException e) {
logger.warn("Could not set icon", e);
}
if (config.getRendering().getDebug().isEnabled()) {
try {
ContextAttribs ctxAttribs = new ContextAttribs().withDebug(true);
Display.create(config.getRendering().getPixelFormat(), ctxAttribs);
GL43.glDebugMessageCallback(new KHRDebugCallback(new DebugCallback()));
} catch (LWJGLException e) {
logger.warn("Unable to create an OpenGL debug context. Maybe your graphics card does not support it.", e);
Display.create(rc.getPixelFormat()); // Create a normal context instead
}
} else {
Display.create(rc.getPixelFormat());
}
Display.setVSyncEnabled(rc.isVSync());
} catch (LWJGLException e) {
throw new RuntimeException("Can not initialize graphics device.", e);
}
}