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