From af667643a0a7939c2cdb0d5e1451f45e376a0449 Mon Sep 17 00:00:00 2001 From: wm4 Date: Thu, 21 May 2015 19:27:54 +0200 Subject: video: do not align source position to 2 vo_direct3d still seems to require this (tested on Windows 8.1 with Intel graphics). Do it in vo_direct3d instead of messing with all VOs. --- video/out/vo_direct3d.c | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) (limited to 'video/out/vo_direct3d.c') diff --git a/video/out/vo_direct3d.c b/video/out/vo_direct3d.c index 54a92699e7..e3b366b5ca 100644 --- a/video/out/vo_direct3d.c +++ b/video/out/vo_direct3d.c @@ -887,6 +887,9 @@ static uint32_t d3d_draw_frame(d3d_priv *priv) if (!priv->have_image) goto render_osd; + RECT rm = priv->fs_movie_rect; + RECT rs = priv->fs_panscan_rect; + if (priv->use_textures) { for (n = 0; n < priv->plane_count; n++) { @@ -894,9 +897,6 @@ static uint32_t d3d_draw_frame(d3d_priv *priv) d3dtex_get_render_texture(priv, &priv->planes[n].texture)); } - RECT rm = priv->fs_movie_rect; - RECT rs = priv->fs_panscan_rect; - vertex_video vb[] = { { rm.left, rm.top, 0.0f}, { rm.right, rm.top, 0.0f}, @@ -941,11 +941,15 @@ static uint32_t d3d_draw_frame(d3d_priv *priv) } } else { + rs.left &= ~(ULONG)1; + rs.top &= ~(ULONG)1; + rs.right &= ~(ULONG)1; + rs.bottom &= ~(ULONG)1; if (FAILED(IDirect3DDevice9_StretchRect(priv->d3d_device, priv->d3d_surface, - &priv->fs_panscan_rect, + &rs, priv->d3d_backbuf, - &priv->fs_movie_rect, + &rm, D3DTEXF_LINEAR))) { MP_ERR(priv, "Copying frame to the backbuffer failed.\n"); return VO_ERROR; -- cgit v1.2.3