package org engine import org lwjgl LWJGLException import org lwjgl op

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
package org.engine;
import org.lwjgl.LWJGLException;
import org.lwjgl.opengl.Display;
import org.lwjgl.opengl.DisplayMode;
import org.lwjgl.opengl.GL11;
import org.lwjgl.opengl.PixelFormat;
public class GLEngine {
private int width; // ширина окна
private int height; // высота окна
private String title; // заголовок окна
// позиция треугольника на экране
private int x;
private int y;
public GLEngine(String title, int width, int height, int x, int y) { // конструктор класса
this.width = width;
this.height = height;
this.title = title;
this.x = x;
this.y = y;
}
private void initGL() throws LWJGLException {
PixelFormat pf = new PixelFormat(); // создаём формат пикселей
Display.setDisplayMode(new DisplayMode(width, height)); // задаём размер экрана
Display.setTitle(title); // задаём заголовок экрана
Display.create(pf); // создаём окно с заданным форматом пикселей
// создаём проекцию матрицы на ось
GL11.glMatrixMode(GL11.GL_PROJECTION);
GL11.glLoadIdentity();
GL11.glOrtho(0, width, 0, height, 1, -1);
GL11.glMatrixMode(GL11.GL_MODELVIEW);
}
public void start() throws LWJGLException {
initGL();
while (!Display.isCloseRequested()) { // пока окно не закрыто
render(); // рисуем
Display.update(); // обновляем экран
}
Display.destroy(); // уничтожаем окно
}
public void render() {
GL11.glClear(GL11.GL_COLOR_BUFFER_BIT | GL11.GL_DEPTH_BUFFER_BIT); // устанавливаем буферизацию для окна
// рисуем треугольник
GL11.glBegin(GL11.GL_TRIANGLES);
GL11.glColor3f(0.0f, 0.0f, 1.0f);
GL11.glVertex2f(x, y );
GL11.glColor3f(0.0f, 1.0f, 0.0f);
GL11.glVertex2f(x + 150, y + 150);
GL11.glColor3f(1.0f, 0.0f, 0.0f);
GL11.glVertex2f(x - 150, y + 150);
GL11.glEnd();
}
}