vlc | branch: master | Steve Lhomme <[email protected]> | Mon Mar 25 12:30:52 2019 +0100| [7edcc8245f02aab204084c3fd48c0b6eca35bf1d] | committer: Steve Lhomme
direct3d9: render the texture at 0,0 in the viewport We don't need to do a special case in common code. > http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=7edcc8245f02aab204084c3fd48c0b6eca35bf1d --- modules/video_output/win32/common.c | 2 +- modules/video_output/win32/direct3d9.c | 15 +++++++++++---- 2 files changed, 12 insertions(+), 5 deletions(-) diff --git a/modules/video_output/win32/common.c b/modules/video_output/win32/common.c index db0b7f2319..349f7c668c 100644 --- a/modules/video_output/win32/common.c +++ b/modules/video_output/win32/common.c @@ -211,7 +211,7 @@ void UpdateRects(vout_display_t *vd, vout_display_sys_win32_t *sys, bool is_forc #define rect_dest sys->rect_dest RECT before_rect_dest = rect_dest; /* Destination image position and dimensions */ -#if (defined(MODULE_NAME_IS_direct3d9) || defined(MODULE_NAME_IS_direct3d11)) && !VLC_WINSTORE_APP +#if defined(MODULE_NAME_IS_direct3d11) && !VLC_WINSTORE_APP rect_dest.left = 0; rect_dest.right = place.width; rect_dest.top = 0; diff --git a/modules/video_output/win32/direct3d9.c b/modules/video_output/win32/direct3d9.c index b936226cf6..90c06797b5 100644 --- a/modules/video_output/win32/direct3d9.c +++ b/modules/video_output/win32/direct3d9.c @@ -483,8 +483,14 @@ static int Direct3D9ImportPicture(vout_display_t *vd, .top = 0, .bottom = vd->source.i_height, }; + RECT rect_dst = { + .left = 0, + .right = RECTWidth(sys->sys.rect_dest), + .top = 0, + .bottom = RECTHeight(sys->sys.rect_dest), + }; Direct3D9SetupVertices(region->vertex, &rect_src, ©_rect, - &vd->sys->sys.rect_dest, 255, vd->source.orientation); + &rect_dst, 255, vd->source.orientation); return VLC_SUCCESS; } @@ -1060,9 +1066,9 @@ static void Direct3D9ImportSubpicture(vout_display_t *vd, const float scale_h = (float)(RECTHeight(video)) / subpicture->i_original_picture_height; RECT dst; - dst.left = video.left + scale_w * r->i_x, + dst.left = scale_w * r->i_x, dst.right = dst.left + scale_w * r->fmt.i_visible_width, - dst.top = video.top + scale_h * r->i_y, + dst.top = scale_h * r->i_y, dst.bottom = dst.top + scale_h * r->fmt.i_visible_height; RECT src; @@ -1331,7 +1337,8 @@ static void Swap(void *opaque) // Present the back buffer contents to the display // No stretching should happen here ! - const RECT src = sys->sys.rect_dest; + RECT src = sys->sys.rect_dest; + OffsetRect(&src, -src.left, -src.top); HRESULT hr; if (sys->hd3d.use_ex) { _______________________________________________ vlc-commits mailing list [email protected] https://mailman.videolan.org/listinfo/vlc-commits
