summaryrefslogtreecommitdiffstats
path: root/video/out/opengl/utils.c
diff options
context:
space:
mode:
Diffstat (limited to 'video/out/opengl/utils.c')
-rw-r--r--video/out/opengl/utils.c14
1 files changed, 13 insertions, 1 deletions
diff --git a/video/out/opengl/utils.c b/video/out/opengl/utils.c
index ac36bdffc4..0026090df9 100644
--- a/video/out/opengl/utils.c
+++ b/video/out/opengl/utils.c
@@ -435,6 +435,18 @@ void gl_transform_ortho(struct gl_transform *t, float x0, float x1,
t->t[1] = -(y1 + y0) / (y1 - y0);
}
+// Apply the effects of one transformation to another, transforming it in the
+// process. In other words: post-composes t onto x
+void gl_transform_trans(struct gl_transform t, struct gl_transform *x)
+{
+ float x00 = x->m[0][0], x01 = x->m[0][1], x10 = x->m[1][0], x11 = x->m[1][1];
+ x->m[0][0] = t.m[0][0] * x00 + t.m[0][1] * x10;
+ x->m[1][0] = t.m[0][0] * x01 + t.m[0][1] * x11;
+ x->m[0][1] = t.m[1][0] * x00 + t.m[1][1] * x10;
+ x->m[1][1] = t.m[1][0] * x01 + t.m[1][1] * x11;
+ gl_transform_vec(t, &x->t[0], &x->t[1]);
+}
+
static void GLAPIENTRY gl_debug_cb(GLenum source, GLenum type, GLuint id,
GLenum severity, GLsizei length,
const GLchar *message, const void *userParam)
@@ -462,7 +474,7 @@ void gl_set_debug_logger(GL *gl, struct mp_log *log)
}
}
-#define SC_ENTRIES 16
+#define SC_ENTRIES 32
#define SC_UNIFORM_ENTRIES 20
enum uniform_type {