summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorPetri Hintukainen <phintuka@users.sourceforge.net>2012-02-02 09:46:31 +0200
committerPetri Hintukainen <phintuka@users.sourceforge.net>2012-02-02 09:46:31 +0200
commit7dcb309c14e356571452986aece22ddffa8a3cf2 (patch)
tree6c9609a0930dc4b5bd2f9c505b3f21f481efd163 /src
parent01062a87c0acfe71f6f5be14dbeb9e0ab66ca7f0 (diff)
downloadxine-lib-7dcb309c14e356571452986aece22ddffa8a3cf2.tar.gz
xine-lib-7dcb309c14e356571452986aece22ddffa8a3cf2.tar.bz2
vo_opengl: quick-fix to enable OSD when using fragment shader for YUV conversion.
Proper (HW-accelerated) implementation would use OpenGL texture to blend the OSD directly to RGB video texture.
Diffstat (limited to 'src')
-rw-r--r--src/video_out/video_out_opengl.c14
1 files changed, 14 insertions, 0 deletions
diff --git a/src/video_out/video_out_opengl.c b/src/video_out/video_out_opengl.c
index 3f3000523..ef0e83530 100644
--- a/src/video_out/video_out_opengl.c
+++ b/src/video_out/video_out_opengl.c
@@ -1480,6 +1480,20 @@ static void opengl_overlay_blend (vo_driver_t *this_gen,
XUnlockDisplay (this->display);
}
} else {
+
+ if (!frame->rgb_dst) {
+ if (frame->format == XINE_IMGFMT_YV12) {
+ _x_blend_yuv(frame->vo_frame.base, overlay,
+ frame->width, frame->height, frame->vo_frame.pitches,
+ &this->alphablend_extra_data);
+ } else {
+ _x_blend_yuy2(frame->vo_frame.base[0], overlay,
+ frame->width, frame->height, frame->vo_frame.pitches[0],
+ &this->alphablend_extra_data);
+ }
+ return;
+ }
+
if (!overlay->rgb_clut || !overlay->hili_rgb_clut)
opengl_overlay_clut_yuv2rgb (this, overlay, frame);