mirror of
https://github.com/Theaninova/BeatMapLanguage.git
synced 2025-12-11 00:26: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="inheritedJdk" />
|
||||||
<orderEntry type="sourceFolder" forTests="false" />
|
<orderEntry type="sourceFolder" forTests="false" />
|
||||||
<orderEntry type="library" name="KotlinJavaRuntime" level="project" />
|
<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>
|
</component>
|
||||||
</module>
|
</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