diff options
Diffstat (limited to 'video/out/gl_video.c')
-rw-r--r-- | video/out/gl_video.c | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/video/out/gl_video.c b/video/out/gl_video.c index 126decf4e7..8541559b90 100644 --- a/video/out/gl_video.c +++ b/video/out/gl_video.c @@ -632,7 +632,14 @@ static void update_uniforms(struct gl_video *p, GLuint program) } else { mp_get_yuv2rgb_coeffs(&cparams, m); } - gl->UniformMatrix4x3fv(loc, 1, GL_TRUE, &m[0][0]); + float transposed[3][3]; + for (int a = 0; a < 3; a++) { + for (int b = 0; b < 3; b++) + transposed[a][b] = m[b][a]; + } + gl->UniformMatrix3fv(loc, 1, GL_FALSE, &transposed[0][0]); + loc = gl->GetUniformLocation(program, "colormatrix_c"); + gl->Uniform3f(loc, m[0][3], m[1][3], m[2][3]); } gl->Uniform1f(gl->GetUniformLocation(program, "input_gamma"), |