summaryrefslogtreecommitdiffstats
path: root/video/out/vo_direct3d.c
diff options
context:
space:
mode:
Diffstat (limited to 'video/out/vo_direct3d.c')
-rw-r--r--video/out/vo_direct3d.c14
1 files changed, 9 insertions, 5 deletions
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;