summaryrefslogtreecommitdiffstats
path: root/video/out/gl_video.h
diff options
context:
space:
mode:
authorwm4 <wm4@nowhere>2015-09-07 21:09:06 +0200
committerwm4 <wm4@nowhere>2015-09-07 21:18:30 +0200
commit0eb72d786c2c39e6c53b4f065912e433639b0fb9 (patch)
tree309b4241dec94d12d725b108ecb4a52dc251ef15 /video/out/gl_video.h
parent8a9c9e0ede8a39fd7d9bbef5cc5d6b2e166b7366 (diff)
downloadmpv-0eb72d786c2c39e6c53b4f065912e433639b0fb9.tar.bz2
mpv-0eb72d786c2c39e6c53b4f065912e433639b0fb9.tar.xz
vo_opengl: restore single pass optimization as separate code path
The single path optimization, rendering the video in one shader pass and without FBO indirections, was removed soem commits ago. It didn't have a place in this code, and caused considerable complexity and maintenance issues. On the other hand, it still has some worth, such as for use with extremely crappy hardware (GLES only or OpenGL 2.1 without FBO extension). Ideally, these use cases would be handled by a separate VO (say, vo_gles). While cleaner, this would still cause code duplication and other complexity. The third option is making the single-pass optimization a completely separate code path, with most vo_opengl features disabled. While this does duplicate some functionality (such as "unpacking" the video data from textures), it's also relatively unintrusive, and the high quality code path doesn't need to take it into account at all. On another positive node, this "dumb-mode" could be forced in other cases where OpenGL 2.1 is not enough, and where we don't want to care about versions this old.
Diffstat (limited to 'video/out/gl_video.h')
-rw-r--r--video/out/gl_video.h1
1 files changed, 1 insertions, 0 deletions
diff --git a/video/out/gl_video.h b/video/out/gl_video.h
index ef6ed76554..e8f8ffa030 100644
--- a/video/out/gl_video.h
+++ b/video/out/gl_video.h
@@ -71,6 +71,7 @@ struct gl_video_opts {
char *scale_shader;
char **pre_shaders;
char **post_shaders;
+ int dumb_mode;
};
extern const struct m_sub_options gl_video_conf;