mirror of
https://github.com/curioustorvald/tsvm.git
synced 2026-03-10 21:21:51 +09:00
crt shader now has crosstalk sim
This commit is contained in:
@@ -269,7 +269,9 @@ class AudioAdapter(val vm: VM) : PeriBase(VM.PERITYPE_SOUND) {
|
||||
override fun dispose() {
|
||||
System.err.println("Dispose AudioAdapter")
|
||||
renderRunnables.forEach { it.stop() }
|
||||
renderThreads.forEach { it.interrupt() }
|
||||
writeQueueingRunnables.forEach { it.stop() }
|
||||
writeQueueingThreads.forEach { it.interrupt() }
|
||||
playheads.forEach { it.dispose() }
|
||||
sampleBin.destroy()
|
||||
pcmBin.destroy()
|
||||
@@ -432,8 +434,8 @@ class AudioAdapter(val vm: VM) : PeriBase(VM.PERITYPE_SOUND) {
|
||||
|
||||
fun dispose() {
|
||||
// audioDevice.dispose() is called by RenderRunnable.stop()
|
||||
// System.err.println("AudioDevice dispose ${parent.renderThreads[index]}")
|
||||
// try { audioDevice.dispose() } catch (e: GdxRuntimeException) { println(" "+ e.message) }
|
||||
System.err.println("AudioDevice dispose ${parent.renderThreads[index]}")
|
||||
try { audioDevice.dispose() } catch (e: GdxRuntimeException) { println(" "+ e.message) }
|
||||
}
|
||||
|
||||
companion object {
|
||||
|
||||
@@ -403,6 +403,16 @@ const mat4 yuv_to_rgb = mat4(
|
||||
0.0, 0.0, 0.0, 1.0
|
||||
);
|
||||
|
||||
const float ALFA = 0.2;
|
||||
const float BETA = 0.2;
|
||||
|
||||
const mat4 crosstalk_mat = mat4(
|
||||
1.0, 0.0, 0.0, 0.0,
|
||||
ALFA, 1.0, 0.0, 0.0,
|
||||
BETA, 0.0, 1.0, 0.0,
|
||||
0.0, 0.0, 0.0, 1.0
|
||||
);
|
||||
|
||||
const float gamma = 2.4;
|
||||
const float blurH = 0.8;
|
||||
const float blurV = 0.4;
|
||||
@@ -421,10 +431,12 @@ vec4 avr(vec4 a, vec4 b, float gam) {
|
||||
);
|
||||
}
|
||||
|
||||
vec4 grading(vec4 col, vec4 args) {
|
||||
vec4 grading(vec4 col0, vec4 args) {
|
||||
vec4 vel = vec4(1.0, 1.0 / args.y, 1.0 / args.z, 1.0);
|
||||
vec4 power = vec4(args.x, args.x, args.x, 1.0);
|
||||
|
||||
vec4 col = crosstalk_mat * col0;
|
||||
|
||||
vec4 sgn = sign(col);
|
||||
vec4 absval = abs(col);
|
||||
vec4 raised = pow(absval, vel);
|
||||
@@ -452,9 +464,9 @@ void main() {
|
||||
vec4 LRavr = avr(colourL, colourR, gamma);
|
||||
vec4 wgtavr = avr(LRavr, colourIn, gamma);
|
||||
|
||||
vec4 outCol = wgtavr * ((mod(gl_FragCoord.y, 2.0) >= 1.0) ? scanline : one);
|
||||
vec4 outCol = wgtavr;
|
||||
|
||||
fragColor = grading(outCol, gradingarg);
|
||||
fragColor = grading(outCol, gradingarg) * ((mod(gl_FragCoord.y, 2.0) >= 1.0) ? scanline : one);
|
||||
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user