crt-like shader

This commit is contained in:
minjaesong
2024-08-13 16:23:53 +09:00
parent 7b2c4a338d
commit 4a0c161038
5 changed files with 137 additions and 17 deletions

View File

@@ -4,6 +4,7 @@ import com.badlogic.gdx.graphics.Color
import com.badlogic.gdx.graphics.Texture
import com.badlogic.gdx.graphics.g2d.SpriteBatch
import com.badlogic.gdx.graphics.glutils.FrameBuffer
import com.badlogic.gdx.graphics.glutils.ShaderProgram
import net.torvald.terrarum.modulecomputers.virtualcomputer.tvd.toUlong
import net.torvald.tsvm.TsvmTextureRegionPack
import net.torvald.tsvm.VM
@@ -41,6 +42,7 @@ class CLCDDisplay(assetsRoot: String, vm: VM) : GraphicsAdapter(assetsRoot, vm,
xoff: Float,
yoff: Float,
flipY: Boolean,
shader: ShaderProgram?,
uiFBO: FrameBuffer?
) {
batch.shader = null
@@ -48,7 +50,7 @@ class CLCDDisplay(assetsRoot: String, vm: VM) : GraphicsAdapter(assetsRoot, vm,
batch.color = Color.WHITE
batch.draw(machine, xoff, yoff)
}
super.render(delta, batch, xoff+60, yoff+90, flipY, uiFBO)
super.render(delta, batch, xoff+60, yoff+90, flipY, shader, uiFBO)
}

View File

@@ -4,6 +4,7 @@ import com.badlogic.gdx.graphics.Color
import com.badlogic.gdx.graphics.Texture
import com.badlogic.gdx.graphics.g2d.SpriteBatch
import com.badlogic.gdx.graphics.glutils.FrameBuffer
import com.badlogic.gdx.graphics.glutils.ShaderProgram
import net.torvald.terrarum.modulecomputers.virtualcomputer.tvd.toUlong
import net.torvald.tsvm.TsvmTextureRegionPack
import net.torvald.tsvm.VM
@@ -36,6 +37,7 @@ class CharacterLCDdisplay(assetsRoot: String, vm: VM) : GraphicsAdapter(assetsRo
xoff: Float,
yoff: Float,
flipY: Boolean,
shader: ShaderProgram?,
uiFBO: FrameBuffer?
) {
batch.shader = null
@@ -44,9 +46,9 @@ class CharacterLCDdisplay(assetsRoot: String, vm: VM) : GraphicsAdapter(assetsRo
batch.draw(machine, xoff, yoff)
}
if (!flipY)
super.render(delta, batch, xoff+74, yoff+102, flipY, uiFBO)
super.render(delta, batch, xoff+74, yoff+102, flipY, shader, uiFBO)
else
super.render(delta, batch, xoff+74, yoff+72, flipY, uiFBO)
super.render(delta, batch, xoff+74, yoff+72, flipY, shader, uiFBO)
// draw BMS and RTC
val batPerc = "89"

View File

@@ -10,6 +10,7 @@ import com.badlogic.gdx.graphics.g2d.Gdx2DPixmap
import com.badlogic.gdx.graphics.g2d.SpriteBatch
import com.badlogic.gdx.graphics.g2d.TextureRegion
import com.badlogic.gdx.graphics.glutils.FrameBuffer
import com.badlogic.gdx.graphics.glutils.ShaderProgram
import com.badlogic.gdx.math.Matrix4
import com.badlogic.gdx.utils.Disposable
import com.badlogic.gdx.utils.GdxRuntimeException
@@ -1039,7 +1040,7 @@ open class GraphicsAdapter(private val assetsRoot: String, val vm: VM, val confi
private val isRefSize = (WIDTH == 560 && HEIGHT == 448)
open fun render(delta: Float, uiBatch: SpriteBatch, xoff: Float, yoff: Float, flipY: Boolean = false, uiFBO: FrameBuffer? = null) {
open fun render(delta: Float, uiBatch: SpriteBatch, xoff: Float, yoff: Float, flipY: Boolean = false, shader: ShaderProgram? = null, uiFBO: FrameBuffer? = null) {
uiFBO?.end()
@@ -1346,7 +1347,7 @@ open class GraphicsAdapter(private val assetsRoot: String, val vm: VM, val confi
uiFBO?.begin()
uiBatch.inUse {
uiBatch.shader = null
uiBatch.shader = shader
//Gdx.gl.glClearColor(0f, 0f, 0f, 0f)
//Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT)
blendNormal(uiBatch)

View File

@@ -4,6 +4,7 @@ import com.badlogic.gdx.graphics.Color
import com.badlogic.gdx.graphics.GL20
import com.badlogic.gdx.graphics.g2d.SpriteBatch
import com.badlogic.gdx.graphics.glutils.FrameBuffer
import com.badlogic.gdx.graphics.glutils.ShaderProgram
import net.torvald.tsvm.VM
import net.torvald.tsvm.kB
import kotlin.math.absoluteValue
@@ -60,10 +61,11 @@ open class TexticsAdapterBase(assetsRoot: String, vm: VM, config: AdapterConfig)
xoff: Float,
yoff: Float,
flipY: Boolean,
shader: ShaderProgram?,
uiFBO: FrameBuffer?
) {
super.render(delta, batch, xoff, yoff, flipY, uiFBO)
super.render(delta, batch, xoff, yoff, flipY, shader, uiFBO)
batch.inUse {
batch.enableBlending()