vlc | branch: master | Felix Abecassis <felix.abecas...@gmail.com> | Thu Feb 13 16:29:24 2014 +0100| [ed673d837c4f23137d5d280099c427860ced1ee6] | committer: Jean-Baptiste Kempf
Direct3D: do not use pixel shader when rendering subpictures Signed-off-by: Jean-Baptiste Kempf <j...@videolan.org> > http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=ed673d837c4f23137d5d280099c427860ced1ee6 --- modules/video_output/msw/direct3d.c | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/modules/video_output/msw/direct3d.c b/modules/video_output/msw/direct3d.c index 4b3aae8..e80cbf7 100644 --- a/modules/video_output/msw/direct3d.c +++ b/modules/video_output/msw/direct3d.c @@ -1519,7 +1519,8 @@ static void Direct3DImportSubpicture(vout_display_t *vd, } static int Direct3DRenderRegion(vout_display_t *vd, - d3d_region_t *region) + d3d_region_t *region, + bool use_pixel_shader) { vout_display_sys_t *sys = vd->sys; @@ -1555,7 +1556,10 @@ static int Direct3DRenderRegion(vout_display_t *vd, } if (sys->d3dx_shader) { - hr = IDirect3DDevice9_SetPixelShader(d3ddev, sys->d3dx_shader); + if (use_pixel_shader) + hr = IDirect3DDevice9_SetPixelShader(d3ddev, sys->d3dx_shader); + else /* Disable any existing pixel shader. */ + hr = IDirect3DDevice9_SetPixelShader(d3ddev, NULL); if (FAILED(hr)) { msg_Dbg(vd, "%s:%d (hr=0x%0lX)", __FUNCTION__, __LINE__, hr); return -1; @@ -1618,14 +1622,14 @@ static void Direct3DRenderScene(vout_display_t *vd, return; } - Direct3DRenderRegion(vd, picture); + Direct3DRenderRegion(vd, picture, true); if (subpicture_count > 0) IDirect3DDevice9_SetRenderState(d3ddev, D3DRS_ALPHABLENDENABLE, TRUE); for (int i = 0; i < subpicture_count; i++) { d3d_region_t *r = &subpicture[i]; if (r->texture) - Direct3DRenderRegion(vd, r); + Direct3DRenderRegion(vd, r, false); } if (subpicture_count > 0) IDirect3DDevice9_SetRenderState(d3ddev, D3DRS_ALPHABLENDENABLE, FALSE); _______________________________________________ vlc-commits mailing list vlc-commits@videolan.org https://mailman.videolan.org/listinfo/vlc-commits