summaryrefslogtreecommitdiffstats
path: root/video/out/opengl/formats.c
diff options
context:
space:
mode:
authorwm4 <wm4@nowhere>2017-02-17 15:46:11 +0100
committerwm4 <wm4@nowhere>2017-02-17 16:28:31 +0100
commit9c54b224d8cdf05dcb1df73b6e8af1c868eca053 (patch)
treea6ca4c84a7a11af899b05e888d11cc1da18e3efb /video/out/opengl/formats.c
parentb5eb326dcb88a309f3b89dc7309f226f2488eb63 (diff)
downloadmpv-9c54b224d8cdf05dcb1df73b6e8af1c868eca053.tar.bz2
mpv-9c54b224d8cdf05dcb1df73b6e8af1c868eca053.tar.xz
vo_opengl: handle GL_LUMINANCE_ALPHA and integer textures differently
GL_LUMINANCE_ALPHA is the only reason why per-plane swizzles exist. Remove per-plane swizzles (again), and regrettably handle them as special cases (again). Carry along the logical texture format (called gl_format in some parts of the code, including the new one). We also don't need a use_integer flag, since the new gl_format member implies whether it's an integer texture. (Yes, the there are separate logical GL formats for integer textures. This aspect of the OpenGL API is hysteric at best.) This should change nothing about actual rendering logic and GL API usage.
Diffstat (limited to 'video/out/opengl/formats.c')
-rw-r--r--video/out/opengl/formats.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/video/out/opengl/formats.c b/video/out/opengl/formats.c
index 2e3dad0cbc..547c290874 100644
--- a/video/out/opengl/formats.c
+++ b/video/out/opengl/formats.c
@@ -221,6 +221,11 @@ GLenum gl_integer_format_to_base(GLenum format)
return 0;
}
+bool gl_is_integer_format(GLenum format)
+{
+ return !!gl_integer_format_to_base(format);
+}
+
// Return the number of bytes per component this format implies.
// Returns 0 for formats with non-byte alignments and formats which
// merge multiple components (like GL_UNSIGNED_SHORT_5_6_5).