mirror of
https://github.com/curioustorvald/Terrarum.git
synced 2026-06-12 19:44:05 +09:00
123 lines
3.9 KiB
Kotlin
123 lines
3.9 KiB
Kotlin
package net.torvald.terrarum
|
|
|
|
import com.badlogic.gdx.ApplicationAdapter
|
|
import com.badlogic.gdx.Gdx
|
|
import com.badlogic.gdx.backends.lwjgl.LwjglApplication
|
|
import com.badlogic.gdx.backends.lwjgl.LwjglApplicationConfiguration
|
|
import com.badlogic.gdx.graphics.*
|
|
import com.badlogic.gdx.graphics.g2d.SpriteBatch
|
|
import com.badlogic.gdx.graphics.glutils.ShaderProgram
|
|
import net.torvald.terrarumsansbitmap.gdx.GameFontBase
|
|
|
|
/**
|
|
* Created by minjaesong on 2017-08-11.
|
|
*/
|
|
fun main(args: Array<String>) { // LWJGL 3 won't work? java.lang.VerifyError
|
|
val config = LwjglApplicationConfiguration()
|
|
//config.useGL30 = true
|
|
config.vSyncEnabled = false
|
|
config.resizable = false
|
|
config.width = 1072
|
|
config.height = 742
|
|
config.foregroundFPS = 9999
|
|
LwjglApplication(ShitOnGlsl, config)
|
|
}
|
|
|
|
object ShitOnGlsl : ApplicationAdapter() {
|
|
|
|
lateinit var shader: ShaderProgram
|
|
lateinit var font: GameFontBase
|
|
|
|
lateinit var fullscreenQuad: Mesh
|
|
|
|
lateinit var camera: OrthographicCamera
|
|
|
|
lateinit var batch: SpriteBatch
|
|
|
|
lateinit var fucktex: Texture
|
|
|
|
lateinit var testTex: Texture
|
|
|
|
override fun create() {
|
|
ShaderProgram.pedantic = false
|
|
|
|
shader = ShaderProgram(Gdx.files.internal("assets/4096.vert"), Gdx.files.internal("assets/crt.frag"))
|
|
|
|
|
|
font = GameFontBase("assets/graphics/fonts/terrarum-sans-bitmap", flipY = false)
|
|
|
|
|
|
if (!shader.isCompiled) {
|
|
Gdx.app.log("Shader", shader.log)
|
|
System.exit(1)
|
|
}
|
|
|
|
|
|
|
|
fullscreenQuad = Mesh(
|
|
true, 4, 6,
|
|
VertexAttribute.Position(),
|
|
VertexAttribute.ColorUnpacked(),
|
|
VertexAttribute.TexCoords(0)
|
|
)
|
|
|
|
fullscreenQuad.setVertices(floatArrayOf(
|
|
0f, 0f, 0f, 1f, 1f, 1f, 1f, 0f, 1f,
|
|
Gdx.graphics.width.toFloat(), 0f, 0f, 1f, 1f, 1f, 1f, 1f, 1f,
|
|
Gdx.graphics.width.toFloat(), Gdx.graphics.height.toFloat(), 0f, 1f, 1f, 1f, 1f, 1f, 0f,
|
|
0f, Gdx.graphics.height.toFloat(), 0f, 1f, 1f, 1f, 1f, 0f, 0f
|
|
))
|
|
fullscreenQuad.setIndices(shortArrayOf(0, 1, 2, 2, 3, 0))
|
|
|
|
|
|
camera = OrthographicCamera(Gdx.graphics.width.toFloat(), Gdx.graphics.height.toFloat())
|
|
camera.setToOrtho(true, Gdx.graphics.width.toFloat(), Gdx.graphics.height.toFloat())
|
|
camera.update()
|
|
|
|
|
|
batch = SpriteBatch()
|
|
|
|
fucktex = Texture(Gdx.files.internal("assets/graphics/ortho_line_tex_2px.tga"))
|
|
testTex = Texture(Gdx.files.internal("assets/test_texture.tga"))
|
|
}
|
|
|
|
|
|
override fun render() {
|
|
Gdx.graphics.setTitle("ShitOnGlsl — F: ${Gdx.graphics.framesPerSecond}")
|
|
|
|
Gdx.gl.glClearColor(.094f, .094f, .094f, 0f)
|
|
Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT)
|
|
|
|
|
|
|
|
batch.inUse {
|
|
|
|
batch.shader = shader
|
|
|
|
//shader.setUniformMatrix("u_projTrans", camera.combined)
|
|
//shader.setUniformi("u_texture", 0)
|
|
shader.setUniformf("resolution", 1072f, 742f)
|
|
shader.setUniformf("circleCentrePoint", Gdx.graphics.width / 2f, Gdx.graphics.height / 2f)
|
|
shader.setUniformf("colorCentrePoint", Gdx.graphics.width / 2f, Gdx.graphics.height / 2f)
|
|
shader.setUniformf("circleSize", 200f)
|
|
|
|
//batch.draw(fucktex, 0f, 0f, Gdx.graphics.width.toFloat(), Gdx.graphics.height.toFloat())
|
|
batch.draw(testTex, 0f, 0f)
|
|
|
|
}
|
|
|
|
|
|
/*shader.begin()
|
|
shader.setUniformMatrix("u_projTrans", batch.projectionMatrix)
|
|
shader.setUniformi("u_texture", 0)
|
|
shader.setUniformf("circleCentrePoint", Gdx.graphics.width / 2f, Gdx.graphics.height / 2f)
|
|
shader.setUniformf("colorCentrePoint", Gdx.graphics.width / 2f, Gdx.graphics.height / 2f)
|
|
shader.setUniformf("circleSize", 200f)
|
|
fullscreenQuad.render(shader, GL20.GL_TRIANGLES)
|
|
shader.end()*/
|
|
}
|
|
|
|
override fun dispose() {
|
|
shader.dispose()
|
|
}
|
|
} |