From 7623b120ac33ab7553c210e1883d9a153794a04b Mon Sep 17 00:00:00 2001 From: minjaesong Date: Sun, 24 Sep 2023 16:45:55 +0900 Subject: [PATCH] scrolling credit text outside of text area would not move the scrollbar --- .../modulebasegame/ui/UITitleWallOfText.kt | 4 +--- src/shaders/blendSkyboxStars.frag | 16 +++++++++++++++- 2 files changed, 16 insertions(+), 4 deletions(-) diff --git a/src/net/torvald/terrarum/modulebasegame/ui/UITitleWallOfText.kt b/src/net/torvald/terrarum/modulebasegame/ui/UITitleWallOfText.kt index 500ea393b..49512a158 100644 --- a/src/net/torvald/terrarum/modulebasegame/ui/UITitleWallOfText.kt +++ b/src/net/torvald/terrarum/modulebasegame/ui/UITitleWallOfText.kt @@ -25,9 +25,6 @@ open class UITitleWallOfText(private val text: List) : UICanvas() { width, height ).also { it.setWallOfText(text) - it.scrolledListener = { x, y -> - scrollbar?.scrolledForce(5*x, 5*y) - } } private val scrollbar: UIItemVertSlider? = if (true) { @@ -62,6 +59,7 @@ open class UITitleWallOfText(private val text: List) : UICanvas() { override fun scrolled(amountX: Float, amountY: Float): Boolean { textArea.scrolled(amountX, amountY) + scrollbar?.scrolledForce(5*amountX, 5*amountY) return true } diff --git a/src/shaders/blendSkyboxStars.frag b/src/shaders/blendSkyboxStars.frag index ca56b18a1..d09e623ba 100644 --- a/src/shaders/blendSkyboxStars.frag +++ b/src/shaders/blendSkyboxStars.frag @@ -2,7 +2,7 @@ #ifdef GL_ES precision mediump float; #endif - +#define srgbmix(c1, c2, control) unlinearise(mix(linearise(c1), linearise(c2), (control))) // wow this is slow... in vec4 v_color; in vec2 v_texCoords; @@ -119,6 +119,20 @@ vec4 random(vec2 p) { ); } // TODO the "grain" needs to be larger +vec4 linearise(vec4 c) { + bvec3 cutoff = lessThan(c.rgb, vec3(0.04045)); + vec3 higher = pow((c.rgb + vec3(0.055))/vec3(1.055), vec3(2.4)); + vec3 lower = c.rgb / vec3(12.92); + return vec4(mix(higher, lower, cutoff), c.a); +} + +vec4 unlinearise(vec4 c) { + bvec3 cutoff = lessThan(c.rgb, vec3(0.0031308)); + vec3 higher = vec3(1.055) * pow(c.rgb, vec3(1.0 / 2.4)) - vec3(0.055); + vec3 lower = c.rgb * vec3(12.92); + return vec4(mix(higher, lower, cutoff), c.a); +} + // draw call to this function must use UV coord of (0,0,1,1)! void main(void) { vec4 colorTexA = texture(u_texture, mix(uvA.xy, uvA.zw, v_texCoords));