Init Idea project
This commit is contained in:
parent
8150b5fe03
commit
a4c28e7eea
|
@ -0,0 +1,3 @@
|
||||||
|
# Default ignored files
|
||||||
|
/shelf/
|
||||||
|
/workspace.xml
|
|
@ -0,0 +1 @@
|
||||||
|
<html>Simple <b>Java</b> application that includes a class with <code>main()</code> method</html>
|
|
@ -0,0 +1,6 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<project version="4">
|
||||||
|
<component name="Encoding">
|
||||||
|
<file url="PROJECT" charset="UTF-8" />
|
||||||
|
</component>
|
||||||
|
</project>
|
|
@ -0,0 +1,13 @@
|
||||||
|
<component name="libraryTable">
|
||||||
|
<library name="lwjgl-release-3.2">
|
||||||
|
<CLASSES>
|
||||||
|
<root url="file://$USER_HOME$/Downloads/lwjgl-release-3.2.3-custom" />
|
||||||
|
</CLASSES>
|
||||||
|
<JAVADOC />
|
||||||
|
<SOURCES>
|
||||||
|
<root url="file://$USER_HOME$/Downloads/lwjgl-release-3.2.3-custom" />
|
||||||
|
</SOURCES>
|
||||||
|
<jarDirectory url="file://$USER_HOME$/Downloads/lwjgl-release-3.2.3-custom" recursive="false" />
|
||||||
|
<jarDirectory url="file://$USER_HOME$/Downloads/lwjgl-release-3.2.3-custom" recursive="false" type="SOURCES" />
|
||||||
|
</library>
|
||||||
|
</component>
|
|
@ -0,0 +1,9 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<project version="4">
|
||||||
|
<component name="ProjectKey">
|
||||||
|
<option name="state" value="project://e2804f05-5315-4fc6-a121-c522a6c26470" />
|
||||||
|
</component>
|
||||||
|
<component name="ProjectRootManager" version="2" languageLevel="JDK_14" default="true" project-jdk-name="15" project-jdk-type="JavaSDK">
|
||||||
|
<output url="file://$PROJECT_DIR$/out" />
|
||||||
|
</component>
|
||||||
|
</project>
|
|
@ -0,0 +1,8 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<project version="4">
|
||||||
|
<component name="ProjectModuleManager">
|
||||||
|
<modules>
|
||||||
|
<module fileurl="file://$PROJECT_DIR$/OpenGL app.iml" filepath="$PROJECT_DIR$/OpenGL app.iml" />
|
||||||
|
</modules>
|
||||||
|
</component>
|
||||||
|
</project>
|
|
@ -0,0 +1,3 @@
|
||||||
|
<template>
|
||||||
|
<input-field default="com.company">IJ_BASE_PACKAGE</input-field>
|
||||||
|
</template>
|
|
@ -0,0 +1,12 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<module type="JAVA_MODULE" version="4">
|
||||||
|
<component name="NewModuleRootManager" inherit-compiler-output="true">
|
||||||
|
<exclude-output />
|
||||||
|
<content url="file://$MODULE_DIR$">
|
||||||
|
<sourceFolder url="file://$MODULE_DIR$/src" isTestSource="false" />
|
||||||
|
</content>
|
||||||
|
<orderEntry type="inheritedJdk" />
|
||||||
|
<orderEntry type="sourceFolder" forTests="false" />
|
||||||
|
<orderEntry type="library" name="lwjgl-release-3.2" level="project" />
|
||||||
|
</component>
|
||||||
|
</module>
|
Binary file not shown.
|
@ -0,0 +1,86 @@
|
||||||
|
package site.rekovalev;
|
||||||
|
|
||||||
|
import org.lwjgl.*;
|
||||||
|
import org.lwjgl.glfw.*;
|
||||||
|
import org.lwjgl.opengl.*;
|
||||||
|
|
||||||
|
import static org.lwjgl.glfw.Callbacks.*;
|
||||||
|
import static org.lwjgl.glfw.GLFW.*;
|
||||||
|
import static org.lwjgl.opengl.GL11.*;
|
||||||
|
import static org.lwjgl.system.MemoryUtil.*;
|
||||||
|
|
||||||
|
public class Main {
|
||||||
|
|
||||||
|
private long window;
|
||||||
|
private int width = 800,
|
||||||
|
height = 600;
|
||||||
|
|
||||||
|
public void run() {
|
||||||
|
System.out.println("<i> Hello LWJGL " + Version.getVersion() + "!");
|
||||||
|
|
||||||
|
init();
|
||||||
|
loop();
|
||||||
|
|
||||||
|
glfwFreeCallbacks(window);
|
||||||
|
glfwDestroyWindow(window);
|
||||||
|
|
||||||
|
// Уничтожение GLFW и очистка
|
||||||
|
glfwTerminate();
|
||||||
|
glfwSetErrorCallback(null).free();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void init() {
|
||||||
|
// Вывод ошибок в STDERR
|
||||||
|
GLFWErrorCallback.createPrint(System.err).set();
|
||||||
|
|
||||||
|
// Инициализация glfw
|
||||||
|
if ( !glfwInit() )
|
||||||
|
throw new IllegalStateException("<!> Ошибка инициализации GLFW");
|
||||||
|
|
||||||
|
// Конфиги
|
||||||
|
glfwDefaultWindowHints(); //загрузка стандартных значений параметров
|
||||||
|
glfwWindowHint(GLFW_RESIZABLE, GLFW_FALSE); // Отключение возможности изменения размера окна
|
||||||
|
|
||||||
|
// Создание окна
|
||||||
|
this.window = glfwCreateWindow(this.width, this.height, "Тестовое окно", NULL, NULL);
|
||||||
|
if ( this.window == NULL )
|
||||||
|
throw new RuntimeException("<!> Ошибка создания окна");
|
||||||
|
|
||||||
|
// Лямбда-функция для обработки нажатия кнопок
|
||||||
|
glfwSetKeyCallback(window, (window, key, scancode, action, mods) -> {
|
||||||
|
if ( key == GLFW_KEY_ESCAPE && action == GLFW_RELEASE )
|
||||||
|
glfwSetWindowShouldClose(window, true); // Создает событие запроса на закрытие
|
||||||
|
});
|
||||||
|
|
||||||
|
glfwMakeContextCurrent(window);// Делаем контекст OpenGL
|
||||||
|
|
||||||
|
glfwSwapInterval(1); // Вертикальная синхронизация
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
private void loop() {
|
||||||
|
// Требуется для LWJGL использующего GLFW
|
||||||
|
// LWJGL определяет контекст для текущего потока и привязывает GL функции к нему.
|
||||||
|
GL.createCapabilities();
|
||||||
|
|
||||||
|
|
||||||
|
glClearColor(1.0f, 0.0f, 0.0f, 0.0f); // Цвет очистки
|
||||||
|
|
||||||
|
|
||||||
|
while ( !glfwWindowShouldClose(window) ) { //Цикл до события закрытия окна
|
||||||
|
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); // Очистка буферов
|
||||||
|
|
||||||
|
/*
|
||||||
|
* код тут
|
||||||
|
*/
|
||||||
|
|
||||||
|
glfwSwapBuffers(window); // перенос COLOR_BUFFER на окно
|
||||||
|
glfwPollEvents(); // обработка очереди событий
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void main(String[] args) {
|
||||||
|
new Main().run();
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
Loading…
Reference in New Issue