diff options
author | Petri Hintukainen <phintuka@users.sourceforge.net> | 2012-02-02 09:46:31 +0200 |
---|---|---|
committer | Petri Hintukainen <phintuka@users.sourceforge.net> | 2012-02-02 09:46:31 +0200 |
commit | 7dcb309c14e356571452986aece22ddffa8a3cf2 (patch) | |
tree | 6c9609a0930dc4b5bd2f9c505b3f21f481efd163 /src | |
parent | 01062a87c0acfe71f6f5be14dbeb9e0ab66ca7f0 (diff) | |
download | xine-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.c | 14 |
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); |