prep for draw glow

This commit is contained in:
minjaesong
2017-07-09 20:29:35 +09:00
parent c96fb5e017
commit 06cab5effc
8 changed files with 253 additions and 123 deletions

View File

@@ -34,6 +34,8 @@ import java.util.*
const val GAME_NAME = "Terrarum"
fun main(args: Array<String>) {
Terrarum // invoke
val config = LwjglApplicationConfiguration()
config.foregroundFPS = Terrarum.RENDER_FPS
config.backgroundFPS = Terrarum.RENDER_FPS
@@ -45,6 +47,8 @@ fun main(args: Array<String>) {
config.foregroundFPS = RENDER_FPS
config.title = GAME_NAME
println("usevsync = ${Terrarum.USE_VSYNC}")
// the game must run on same speed regardless of the display FPS;
// "Terrarum.TARGET_INTERNAL_FPS" denotes "execute as if FPS was set to this value"
@@ -234,6 +238,8 @@ object Terrarum : ApplicationAdapter() {
lateinit var shaderBlur: ShaderProgram
lateinit var shaderRGBOnly: ShaderProgram
lateinit var shaderAOnly: ShaderProgram
lateinit var shader4096: ShaderProgram
lateinit var shader4096Bayer: ShaderProgram
@@ -304,6 +310,11 @@ object Terrarum : ApplicationAdapter() {
shader4096Bayer.end()
shaderRGBOnly = ShaderProgram(Gdx.files.internal("assets/4096.vert"), Gdx.files.internal("assets/rgbonly.frag"))
shaderAOnly = ShaderProgram(Gdx.files.internal("assets/4096.vert"), Gdx.files.internal("assets/aonly.frag"))
ModMgr // invoke Module Manager, will also invoke BlockCodex
ItemCodex // invoke Item Codex
@@ -583,12 +594,6 @@ fun blendNormal() {
Gdx.gl.glBlendEquation(GL20.GL_FUNC_ADD) // batch.flush does not touch blend equation
}
fun blendLightenOnly() {
Terrarum.batch.enableBlending()
Terrarum.batch.setBlendFunction(GL20.GL_ONE, GL20.GL_ONE)
Gdx.gl.glBlendEquation(GL30.GL_MAX) // batch.flush does not touch blend equation
}
fun blendScreen() {
Terrarum.batch.enableBlending()
Terrarum.batch.setBlendFunction(GL20.GL_ONE, GL20.GL_ONE_MINUS_SRC_COLOR)
@@ -599,14 +604,14 @@ object BlendMode {
const val SCREEN = "GL_BLEND screen"
const val MULTIPLY = "GL_BLEND multiply"
const val NORMAL = "GL_BLEND normal"
const val MAX = "GL_MAX"
//const val MAX = "GL_MAX"
fun resolve(mode: String) {
when (mode) {
SCREEN -> blendScreen()
MULTIPLY -> blendMul()
NORMAL -> blendNormal()
MAX -> blendLightenOnly()
//MAX -> blendLightenOnly()
else -> throw Error("Unknown blend mode: $mode")
}
}