mirror of
https://github.com/Theaninova/BeatMapLanguage.git
synced 2025-12-10 08:06:14 +00:00
Started making use of LWJGL
This commit is contained in:
4
.idea/encodings.xml
generated
Normal file
4
.idea/encodings.xml
generated
Normal file
@@ -0,0 +1,4 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="Encoding" addBOMForNewFiles="with NO BOM" />
|
||||
</project>
|
||||
9
.idea/libraries/lwjgl.xml
generated
Normal file
9
.idea/libraries/lwjgl.xml
generated
Normal file
@@ -0,0 +1,9 @@
|
||||
<component name="libraryTable">
|
||||
<library name="lwjgl">
|
||||
<CLASSES>
|
||||
<root url="jar:///home/wulkanat/Downloads/lwjgl/lwjgl.jar!/" />
|
||||
</CLASSES>
|
||||
<JAVADOC />
|
||||
<SOURCES />
|
||||
</library>
|
||||
</component>
|
||||
9
.idea/libraries/lwjgl_glfw.xml
generated
Normal file
9
.idea/libraries/lwjgl_glfw.xml
generated
Normal file
@@ -0,0 +1,9 @@
|
||||
<component name="libraryTable">
|
||||
<library name="lwjgl-glfw">
|
||||
<CLASSES>
|
||||
<root url="jar:///home/wulkanat/Downloads/lwjgl-3.2.0/lwjgl-glfw/lwjgl-glfw.jar!/" />
|
||||
</CLASSES>
|
||||
<JAVADOC />
|
||||
<SOURCES />
|
||||
</library>
|
||||
</component>
|
||||
9
.idea/libraries/lwjgl_glfw_natives_linux.xml
generated
Normal file
9
.idea/libraries/lwjgl_glfw_natives_linux.xml
generated
Normal file
@@ -0,0 +1,9 @@
|
||||
<component name="libraryTable">
|
||||
<library name="lwjgl-glfw-natives-linux">
|
||||
<CLASSES>
|
||||
<root url="jar:///home/wulkanat/Downloads/lwjgl-3.2.0/lwjgl-glfw/lwjgl-glfw-natives-linux.jar!/" />
|
||||
</CLASSES>
|
||||
<JAVADOC />
|
||||
<SOURCES />
|
||||
</library>
|
||||
</component>
|
||||
9
.idea/libraries/lwjgl_jawt.xml
generated
Normal file
9
.idea/libraries/lwjgl_jawt.xml
generated
Normal file
@@ -0,0 +1,9 @@
|
||||
<component name="libraryTable">
|
||||
<library name="lwjgl-jawt">
|
||||
<CLASSES>
|
||||
<root url="jar:///home/wulkanat/Downloads/lwjgl-3.2.0/lwjgl-jawt/lwjgl-jawt.jar!/" />
|
||||
</CLASSES>
|
||||
<JAVADOC />
|
||||
<SOURCES />
|
||||
</library>
|
||||
</component>
|
||||
9
.idea/libraries/lwjgl_jemalloc.xml
generated
Normal file
9
.idea/libraries/lwjgl_jemalloc.xml
generated
Normal file
@@ -0,0 +1,9 @@
|
||||
<component name="libraryTable">
|
||||
<library name="lwjgl-jemalloc">
|
||||
<CLASSES>
|
||||
<root url="jar:///home/wulkanat/Downloads/lwjgl-3.2.0/lwjgl-jemalloc/lwjgl-jemalloc.jar!/" />
|
||||
</CLASSES>
|
||||
<JAVADOC />
|
||||
<SOURCES />
|
||||
</library>
|
||||
</component>
|
||||
9
.idea/libraries/lwjgl_jemalloc_natives_linux.xml
generated
Normal file
9
.idea/libraries/lwjgl_jemalloc_natives_linux.xml
generated
Normal file
@@ -0,0 +1,9 @@
|
||||
<component name="libraryTable">
|
||||
<library name="lwjgl-jemalloc-natives-linux">
|
||||
<CLASSES>
|
||||
<root url="jar:///home/wulkanat/Downloads/lwjgl-3.2.0/lwjgl-jemalloc/lwjgl-jemalloc-natives-linux.jar!/" />
|
||||
</CLASSES>
|
||||
<JAVADOC />
|
||||
<SOURCES />
|
||||
</library>
|
||||
</component>
|
||||
9
.idea/libraries/lwjgl_natives_linux.xml
generated
Normal file
9
.idea/libraries/lwjgl_natives_linux.xml
generated
Normal file
@@ -0,0 +1,9 @@
|
||||
<component name="libraryTable">
|
||||
<library name="lwjgl-natives-linux">
|
||||
<CLASSES>
|
||||
<root url="jar:///home/wulkanat/Downloads/lwjgl/lwjgl-natives-linux.jar!/" />
|
||||
</CLASSES>
|
||||
<JAVADOC />
|
||||
<SOURCES />
|
||||
</library>
|
||||
</component>
|
||||
9
.idea/libraries/lwjgl_opengl.xml
generated
Normal file
9
.idea/libraries/lwjgl_opengl.xml
generated
Normal file
@@ -0,0 +1,9 @@
|
||||
<component name="libraryTable">
|
||||
<library name="lwjgl-opengl">
|
||||
<CLASSES>
|
||||
<root url="jar:///home/wulkanat/Downloads/lwjgl-3.2.0/lwjgl-opengl/lwjgl-opengl.jar!/" />
|
||||
</CLASSES>
|
||||
<JAVADOC />
|
||||
<SOURCES />
|
||||
</library>
|
||||
</component>
|
||||
9
.idea/libraries/lwjgl_opengl_natives_linux.xml
generated
Normal file
9
.idea/libraries/lwjgl_opengl_natives_linux.xml
generated
Normal file
@@ -0,0 +1,9 @@
|
||||
<component name="libraryTable">
|
||||
<library name="lwjgl-opengl-natives-linux">
|
||||
<CLASSES>
|
||||
<root url="jar:///home/wulkanat/Downloads/lwjgl-3.2.0/lwjgl-opengl/lwjgl-opengl-natives-linux.jar!/" />
|
||||
</CLASSES>
|
||||
<JAVADOC />
|
||||
<SOURCES />
|
||||
</library>
|
||||
</component>
|
||||
9
.idea/libraries/lwjgl_rpmalloc.xml
generated
Normal file
9
.idea/libraries/lwjgl_rpmalloc.xml
generated
Normal file
@@ -0,0 +1,9 @@
|
||||
<component name="libraryTable">
|
||||
<library name="lwjgl-rpmalloc">
|
||||
<CLASSES>
|
||||
<root url="jar:///home/wulkanat/Downloads/lwjgl-3.2.0/lwjgl-rpmalloc/lwjgl-rpmalloc.jar!/" />
|
||||
</CLASSES>
|
||||
<JAVADOC />
|
||||
<SOURCES />
|
||||
</library>
|
||||
</component>
|
||||
9
.idea/libraries/lwjgl_rpmalloc_natives_linux.xml
generated
Normal file
9
.idea/libraries/lwjgl_rpmalloc_natives_linux.xml
generated
Normal file
@@ -0,0 +1,9 @@
|
||||
<component name="libraryTable">
|
||||
<library name="lwjgl-rpmalloc-natives-linux">
|
||||
<CLASSES>
|
||||
<root url="jar:///home/wulkanat/Downloads/lwjgl-3.2.0/lwjgl-rpmalloc/lwjgl-rpmalloc-natives-linux.jar!/" />
|
||||
</CLASSES>
|
||||
<JAVADOC />
|
||||
<SOURCES />
|
||||
</library>
|
||||
</component>
|
||||
11
Bsl.iml
11
Bsl.iml
@@ -8,5 +8,16 @@
|
||||
<orderEntry type="inheritedJdk" />
|
||||
<orderEntry type="sourceFolder" forTests="false" />
|
||||
<orderEntry type="library" name="KotlinJavaRuntime" level="project" />
|
||||
<orderEntry type="library" name="lwjgl-opengl" level="project" />
|
||||
<orderEntry type="library" name="lwjgl-opengl-natives-linux" level="project" />
|
||||
<orderEntry type="library" name="lwjgl-glfw" level="project" />
|
||||
<orderEntry type="library" name="lwjgl-glfw-natives-linux" level="project" />
|
||||
<orderEntry type="library" name="lwjgl-jemalloc" level="project" />
|
||||
<orderEntry type="library" name="lwjgl-jemalloc-natives-linux" level="project" />
|
||||
<orderEntry type="library" name="lwjgl-jawt" level="project" />
|
||||
<orderEntry type="library" name="lwjgl-rpmalloc" level="project" />
|
||||
<orderEntry type="library" name="lwjgl-rpmalloc-natives-linux" level="project" />
|
||||
<orderEntry type="library" name="lwjgl" level="project" />
|
||||
<orderEntry type="library" name="lwjgl-natives-linux" level="project" />
|
||||
</component>
|
||||
</module>
|
||||
123
src/LWJGL_Main.kt
Normal file
123
src/LWJGL_Main.kt
Normal file
@@ -0,0 +1,123 @@
|
||||
import org.lwjgl.*
|
||||
import org.lwjgl.glfw.*
|
||||
import org.lwjgl.opengl.*
|
||||
import org.lwjgl.system.*
|
||||
|
||||
import java.nio.*
|
||||
|
||||
import com.sun.org.apache.xml.internal .utils.StringBufferPool.free
|
||||
import java.time.Clock.system
|
||||
import javax.swing.Spring.height
|
||||
import javax.swing.Spring.width
|
||||
import org.lwjgl.glfw.Callbacks.*
|
||||
import org.lwjgl.glfw.GLFW.*
|
||||
import org.lwjgl.opengl.GL11.*
|
||||
import org.lwjgl.system.MemoryStack.*
|
||||
import org.lwjgl.system.MemoryUtil.*
|
||||
|
||||
class LWJGL_Main {
|
||||
|
||||
// The window handle
|
||||
private var window: Long = 0
|
||||
|
||||
fun run() {
|
||||
System.out.println("Hello LWJGL " + Version.getVersion() + "!")
|
||||
|
||||
init()
|
||||
loop()
|
||||
|
||||
// Free the window callbacks and destroy the window
|
||||
glfwFreeCallbacks(window)
|
||||
glfwDestroyWindow(window)
|
||||
|
||||
// Terminate GLFW and free the error callback
|
||||
glfwTerminate()
|
||||
glfwSetErrorCallback(null)!!.free()
|
||||
}
|
||||
|
||||
private fun init() {
|
||||
// Setup an error callback. The default implementation
|
||||
// will print the error message in System.err.
|
||||
GLFWErrorCallback.createPrint(System.err).set()
|
||||
|
||||
// Initialize GLFW. Most GLFW functions will not work before doing this.
|
||||
if (!glfwInit())
|
||||
throw IllegalStateException("Unable to initialize GLFW")
|
||||
|
||||
// Configure GLFW
|
||||
glfwDefaultWindowHints() // optional, the current window hints are already the default
|
||||
glfwWindowHint(GLFW_VISIBLE, GLFW_FALSE) // the window will stay hidden after creation
|
||||
glfwWindowHint(GLFW_RESIZABLE, GLFW_TRUE) // the window will be resizable
|
||||
|
||||
// Create the window
|
||||
window = glfwCreateWindow(300, 300, "Hello World!", NULL, NULL)
|
||||
if (window == NULL)
|
||||
throw RuntimeException("Failed to create the GLFW window")
|
||||
|
||||
// Setup a key callback. It will be called every time a key is pressed, repeated or released.
|
||||
glfwSetKeyCallback(window) { window, key, scancode, action, mods ->
|
||||
if (key === GLFW_KEY_ESCAPE && action === GLFW_RELEASE)
|
||||
glfwSetWindowShouldClose(window, true) // We will detect this in the rendering loop
|
||||
}
|
||||
|
||||
// Get the thread stack and push a new frame
|
||||
stackPush().use({ stack ->
|
||||
val pWidth = stack.mallocInt(1) // int*
|
||||
val pHeight = stack.mallocInt(1) // int*
|
||||
|
||||
// Get the window size passed to glfwCreateWindow
|
||||
glfwGetWindowSize(window, pWidth, pHeight)
|
||||
|
||||
// Get the resolution of the primary monitor
|
||||
val vidmode = glfwGetVideoMode(glfwGetPrimaryMonitor())
|
||||
|
||||
// Center the window
|
||||
glfwSetWindowPos(
|
||||
window,
|
||||
(vidmode!!.width() - pWidth.get(0)) / 2,
|
||||
(vidmode.height() - pHeight.get(0)) / 2
|
||||
)
|
||||
}) // the stack frame is popped automatically
|
||||
|
||||
// Make the OpenGL context current
|
||||
glfwMakeContextCurrent(window)
|
||||
// Enable v-sync
|
||||
glfwSwapInterval(1)
|
||||
|
||||
// Make the window visible
|
||||
glfwShowWindow(window)
|
||||
}
|
||||
|
||||
private fun loop() {
|
||||
// This line is critical for LWJGL's interoperation with GLFW's
|
||||
// OpenGL context, or any context that is managed externally.
|
||||
// LWJGL detects the context that is current in the current thread,
|
||||
// creates the GLCapabilities instance and makes the OpenGL
|
||||
// bindings available for use.
|
||||
GL.createCapabilities()
|
||||
|
||||
// Set the clear color
|
||||
glClearColor(1.0f, 0.0f, 0.0f, 0.0f)
|
||||
|
||||
// Run the rendering loop until the user has attempted to close
|
||||
// the window or has pressed the ESCAPE key.
|
||||
while (!glfwWindowShouldClose(window)) {
|
||||
glClear(GL_COLOR_BUFFER_BIT or GL_DEPTH_BUFFER_BIT) // clear the framebuffer
|
||||
|
||||
glfwSwapBuffers(window) // swap the color buffers
|
||||
|
||||
// Poll for window events. The key callback above will only be
|
||||
// invoked during this call.
|
||||
glfwPollEvents()
|
||||
}
|
||||
}
|
||||
|
||||
companion object {
|
||||
|
||||
@JvmStatic
|
||||
fun main(args: Array<String>) {
|
||||
LWJGL_Main().run()
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user