Init Idea project

This commit is contained in:
parent 8150b5fe03
commit a4c28e7eea
10 changed files with 141 additions and 0 deletions

3
.idea/.gitignore vendored Normal file
View File

@ -0,0 +1,3 @@
# Default ignored files
/shelf/
/workspace.xml

1
.idea/description.html Normal file
View File

@ -0,0 +1 @@
<html>Simple <b>Java</b> application that includes a class with <code>main()</code> method</html>

6
.idea/encodings.xml Normal file
View File

@ -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>

View File

@ -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>

9
.idea/misc.xml Normal file
View File

@ -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>

8
.idea/modules.xml Normal file
View File

@ -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>

View File

@ -0,0 +1,3 @@
<template>
<input-field default="com.company">IJ_BASE_PACKAGE</input-field>
</template>

12
OpenGL app.iml Normal file
View File

@ -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.

View File

@ -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();
}
}