Библиотека LWJGL использует свое собственное легковесное окно (известное как Display) и имеет свою собственную систему ввода (input system). Это обеспечивает скорость, малый контекст отрисовки, низкую задержку ввода и является прочным основанием для построения современных игр.
Класс Display это наиболее важный класс LWJGL. Он создает и управляет нативным окном на котором отображается все графическое содержание .
Класс Display имеет 3 метода о которых нужно знать:
Code
create()
update()
destroy()
Метод Display.create(); создает нативное окно Display. Что бы задать размер Display-устанавливают DisplayMode. Для простоты мы не будем касаться полноэкранного режима в этом туториале. DisplayMode устанавливается перед вызовом Display.create() и завершается указанием ширины и высоты Display следующим образом:
Code
//указываем размер окна, пусть width=800, а height=600.
Display.setDisplayMode(newDisplayMode(width,height));
//создаем Display.
Display.create();
Этот код создает нативный Display нужного размера. Теперь методы OpenGL могут быть вызваны для старта отрисовки на Display.
LWJGL использует двойную буфферизацию и все будет отрисовано в закадровом буфере. Когда вызывается Display.update(); он соединяет буферы и делает отрисовку видимой. Обычно этот метод вызывается один раз в кадр внутри цикла рендеринга. Этот метод также опрашивает клавиатуру и мышь.
Метод Display.destroy(); уничтожает нативный Display (закрывает его) и очищает все используемые им ресурсы.
Метод Display.isCloseRequested(); возвращает true когда нажата клавиша закрытия нативного окна. Это используется в примере ниже для выхода из цикла рендеринга.
Code
import org.lwjgl.LWJGLException;
import org.lwjgl.opengl.Display;
import org.lwjgl.opengl.DisplayMode;
//создаем класс DisplayExample
public class DisplayExample {
//стартируем...
public void start() {
//создаем исключение
try {
//указываем размер окна Display
Display.setDisplayMode(new DisplayMode(800,600));
//создаем Display
Display.create();
} catch (LWJGLException e) {
e.printStackTrace();
System.exit(0);
}
//здесь мы потом настроим OpenGL
while (!Display.isCloseRequested()) {
//здесь мы потом будем рисовать OpenGL
Display.update();
}
Display.destroy();
}
public static void main(String[] argv) {
//обратите внимание на то, что DisplayExample-главный класс, если поменяете название класса,
//программа работать не будет.
//название должно совпадать
DisplayExample displayExample = new DisplayExample();
//запускаем DisplayExample
displayExample.start();
}
}