Ticket #2649: opengl_osd_fixes.diff
| File opengl_osd_fixes.diff, 2.3 KB (added by , 20 years ago) |
|---|
-
libs/libmythtv/openglvideo.cpp
145 145 { 146 146 inputTextures.push_back(yuv12tex); 147 147 inputTextures.push_back(alphatex); 148 AddFilter(kGLFilterResize); 148 149 } 149 150 } 150 151 else … … 804 805 OpenGLFilterType type = it->first; 805 806 OpenGLFilter *filter = it->second; 806 807 808 // skip colour conversion for osd already in frame buffer 809 if (!inputUpdated && type == kGLFilterYUV2RGBA) 810 { 811 inputs = filter->frameBufferTextures; 812 inputsize = videoSize; 813 continue; 814 } 815 807 816 // skip colour conversion for frames already in frame buffer 808 817 if (!inputUpdated && (frame == currentFrameNum) && 809 818 (type == kGLFilterYUV2RGB) && (frame != 0) && … … 968 977 } 969 978 970 979 // enable blending for osd 971 if (type == kGLFilter YUV2RGBA)980 if (type == kGLFilterResize && filters.count(kGLFilterYUV2RGBA)) 972 981 glEnable(GL_BLEND); 973 982 974 983 // draw quad … … 980 989 glEnd(); 981 990 982 991 // disable blending 983 if (type == kGLFilter YUV2RGBA)992 if (type == kGLFilterResize && filters.count(kGLFilterYUV2RGBA)) 984 993 glDisable(GL_BLEND); 985 994 986 995 // disable fragment program -
libs/libmythtv/videoout_xv.cpp
284 284 gl_videochain->GetViewPort()); 285 285 } 286 286 287 if (gl_osdchain && gl_osdchain != NULL) 288 { 289 gl_osdchain->SetMasterViewport(gl_videochain->GetViewPort()); 290 } 291 287 292 ok = CreateBuffers(VideoOutputSubType()); 288 293 } 289 294 … … 1252 1257 gl_osdchain = NULL; 1253 1258 gl_use_osd_opengl2 = false; 1254 1259 } 1260 else 1261 { 1262 if (gl_videochain && gl_videochain != NULL) 1263 { 1264 gl_osdchain->SetMasterViewport(gl_videochain->GetViewPort()); 1265 } 1266 } 1255 1267 1256 1268 gl_context->MakeCurrent(false); 1257 1269 }
