[vlc-commits] vout:win32: use common macros to compute the width/height of a RECT
Steve Lhomme
git at videolan.org
Fri Mar 29 17:31:28 CET 2019
vlc | branch: master | Steve Lhomme <robux4 at ycbcr.xyz> | Fri Mar 22 08:29:20 2019 +0100| [617dfa22ef1ca12cf52ecefd719457eb69581129] | committer: Steve Lhomme
vout:win32: use common macros to compute the width/height of a RECT
> http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=617dfa22ef1ca12cf52ecefd719457eb69581129
---
modules/video_output/win32/common.c | 32 ++++++++++++++++----------------
modules/video_output/win32/common.h | 3 +++
modules/video_output/win32/d3d11_quad.c | 13 +++++--------
modules/video_output/win32/direct3d11.c | 3 ---
modules/video_output/win32/direct3d9.c | 8 ++++----
modules/video_output/win32/events.c | 4 ++--
modules/video_output/win32/glwin32.c | 4 ++--
modules/video_output/win32/wingdi.c | 6 ++----
8 files changed, 34 insertions(+), 39 deletions(-)
diff --git a/modules/video_output/win32/common.c b/modules/video_output/win32/common.c
index 071156671b..020dc5bc93 100644
--- a/modules/video_output/win32/common.c
+++ b/modules/video_output/win32/common.c
@@ -177,8 +177,8 @@ void UpdateRects(vout_display_t *vd, bool is_forced)
bool is_resized;
#if VLC_WINSTORE_APP
has_moved = false;
- is_resized = rect.right != (sys->rect_display.right - sys->rect_display.left) ||
- rect.bottom != (sys->rect_display.bottom - sys->rect_display.top);
+ is_resized = rect.right != RECTWidth(sys->rect_display) ||
+ rect.bottom != RECTHeight(sys->rect_display);
sys->rect_display = rect;
#else
if (sys->b_windowless)
@@ -238,8 +238,8 @@ void UpdateRects(vout_display_t *vd, bool is_forced)
rect_dest_clipped = rect_dest;
/* the 2 following lines are to fix a bug when clicking on the desktop */
- if ((rect_dest_clipped.right - rect_dest_clipped.left) == 0 ||
- (rect_dest_clipped.bottom - rect_dest_clipped.top) == 0) {
+ if (RECTWidth(rect_dest_clipped) == 0 ||
+ RECTHeight(rect_dest_clipped) == 0) {
#if !VLC_WINSTORE_APP
SetRectEmpty(&rect_src_clipped);
#endif
@@ -255,18 +255,18 @@ void UpdateRects(vout_display_t *vd, bool is_forced)
/* Clip the source image */
rect_src_clipped.left = source->i_x_offset +
(rect_dest_clipped.left - rect_dest.left) *
- source->i_visible_width / (rect_dest.right - rect_dest.left);
+ source->i_visible_width / RECTWidth(rect_dest);
rect_src_clipped.right = source->i_x_offset +
source->i_visible_width -
(rect_dest.right - rect_dest_clipped.right) *
- source->i_visible_width / (rect_dest.right - rect_dest.left);
+ source->i_visible_width / RECTWidth(rect_dest);
rect_src_clipped.top = source->i_y_offset +
(rect_dest_clipped.top - rect_dest.top) *
- source->i_visible_height / (rect_dest.bottom - rect_dest.top);
+ source->i_visible_height / RECTHeight(rect_dest);
rect_src_clipped.bottom = source->i_y_offset +
source->i_visible_height -
(rect_dest.bottom - rect_dest_clipped.bottom) *
- source->i_visible_height / (rect_dest.bottom - rect_dest.top);
+ source->i_visible_height / RECTHeight(rect_dest);
#ifndef NDEBUG
msg_Dbg(vd, "DirectXUpdateRects source"
@@ -347,8 +347,8 @@ void CommonManage(vout_display_t *vd)
* with the associated window (hvideownd)
*/
SetWindowPos(sys->hwnd, 0, 0, 0,
- rect_parent.right - rect_parent.left,
- rect_parent.bottom - rect_parent.top,
+ RECTWidth(rect_parent),
+ RECTHeight(rect_parent),
SWP_NOZORDER);
UpdateRects(vd, true);
@@ -414,8 +414,8 @@ static void CommonChangeThumbnailClip(vout_display_t *vd, bool show)
POINT client = {video.left, video.top};
if (ScreenToClient(hroot, &client))
{
- unsigned int width = video.right - video.left;
- unsigned int height = video.bottom - video.top;
+ unsigned int width = RECTWidth(video);
+ unsigned int height = RECTHeight(video);
video.left = client.x;
video.top = client.y;
video.right = video.left + width;
@@ -475,8 +475,8 @@ static int CommonControlSetFullscreen(vout_display_t *vd, bool is_fullscreen)
SetWindowPos(hwnd, 0,
mi.rcMonitor.left,
mi.rcMonitor.top,
- mi.rcMonitor.right - mi.rcMonitor.left,
- mi.rcMonitor.bottom - mi.rcMonitor.top,
+ RECTWidth(mi.rcMonitor),
+ RECTHeight(mi.rcMonitor),
SWP_NOZORDER|SWP_FRAMECHANGED);
} else {
/* Maximize non embedded window */
@@ -561,8 +561,8 @@ int CommonControl(vout_display_t *vd, int query, va_list args)
if (!cfg->is_fullscreen && !sys->b_windowless) {
AdjustWindowRect(&rect_window, EventThreadGetWindowStyle(sys->event), 0);
SetWindowPos(sys->hwnd, 0, 0, 0,
- rect_window.right - rect_window.left,
- rect_window.bottom - rect_window.top, SWP_NOMOVE);
+ RECTWidth(rect_window),
+ RECTHeight(rect_window), SWP_NOMOVE);
}
sys->vdcfg = *cfg;
UpdateRects(vd, false);
diff --git a/modules/video_output/win32/common.h b/modules/video_output/win32/common.h
index ae22061ac4..42df4b7f17 100644
--- a/modules/video_output/win32/common.h
+++ b/modules/video_output/win32/common.h
@@ -27,6 +27,9 @@
*****************************************************************************/
#include "events.h"
+#define RECTWidth(r) (LONG)((r).right - (r).left)
+#define RECTHeight(r) (LONG)((r).bottom - (r).top)
+
/*****************************************************************************
* vout_sys_t: video output method descriptor
*****************************************************************************
diff --git a/modules/video_output/win32/d3d11_quad.c b/modules/video_output/win32/d3d11_quad.c
index b1648cc342..6584c82154 100644
--- a/modules/video_output/win32/d3d11_quad.c
+++ b/modules/video_output/win32/d3d11_quad.c
@@ -36,6 +36,7 @@
#include <d3d11.h>
#include "d3d11_quad.h"
+#include "common.h"
#define SPHERE_SLICES 128
#define nbLatBands SPHERE_SLICES
@@ -412,8 +413,8 @@ static void SetupQuadFlat(d3d_vertex_t *dst_data, const RECT *output,
static void SetupQuadSphere(d3d_vertex_t *dst_data, const RECT *output,
const d3d_quad_t *quad, WORD *triangle_pos)
{
- const float scaleX = (float)(output->right - output->left) / quad->i_width;
- const float scaleY = (float)(output->bottom - output->top) / quad->i_height;
+ const float scaleX = (float)(RECTWidth(*output)) / quad->i_width;
+ const float scaleY = (float)(RECTHeight(*output)) / quad->i_height;
for (unsigned lat = 0; lat <= nbLatBands; lat++) {
float theta = lat * (float) M_PI / nbLatBands;
float sinTheta, cosTheta;
@@ -1067,14 +1068,10 @@ int D3D11_SetupQuad(vlc_object_t *o, d3d11_device_t *d3d_dev, const video_format
void D3D11_UpdateViewport(d3d_quad_t *quad, const RECT *rect, const d3d_format_t *display)
{
-#define RECTWidth(r) (LONG)((r)->right - (r)->left)
-#define RECTHeight(r) (LONG)((r)->bottom - (r)->top)
LONG srcAreaWidth, srcAreaHeight;
- srcAreaWidth = RECTWidth(rect);
- srcAreaHeight = RECTHeight(rect);
-#undef RECTWidth
-#undef RECTHeight
+ srcAreaWidth = RECTWidth(*rect);
+ srcAreaHeight = RECTHeight(*rect);
quad->cropViewport[0].TopLeftX = rect->left;
quad->cropViewport[0].TopLeftY = rect->top;
diff --git a/modules/video_output/win32/direct3d11.c b/modules/video_output/win32/direct3d11.c
index f2e28dd8d1..b7bdf9e0ad 100644
--- a/modules/video_output/win32/direct3d11.c
+++ b/modules/video_output/win32/direct3d11.c
@@ -127,9 +127,6 @@ struct vout_display_sys_t
bool (*resizeCb)(void* opaque, unsigned, unsigned);
};
-#define RECTWidth(r) (int)((r).right - (r).left)
-#define RECTHeight(r) (int)((r).bottom - (r).top)
-
static picture_pool_t *Pool(vout_display_t *, unsigned);
static void Prepare(vout_display_t *, picture_t *, subpicture_t *subpicture, vlc_tick_t);
diff --git a/modules/video_output/win32/direct3d9.c b/modules/video_output/win32/direct3d9.c
index bd534b3628..939369a200 100644
--- a/modules/video_output/win32/direct3d9.c
+++ b/modules/video_output/win32/direct3d9.c
@@ -934,8 +934,8 @@ static void Manage (vout_display_t *vd)
UINT width, height;
GetClientRect(p_sys->sys.hvideownd, &rect);
- width = rect.right-rect.left;
- height = rect.bottom-rect.top;
+ width = RECTWidth(rect);
+ height = RECTHeight(rect);
if (width != p_sys->pp.BackBufferWidth || height != p_sys->pp.BackBufferHeight)
{
@@ -1045,8 +1045,8 @@ static void Direct3D9ImportSubpicture(vout_display_t *vd,
/* Map the subpicture to sys->sys.rect_dest */
const RECT video = sys->sys.rect_dest;
- const float scale_w = (float)(video.right - video.left) / subpicture->i_original_picture_width;
- const float scale_h = (float)(video.bottom - video.top) / subpicture->i_original_picture_height;
+ const float scale_w = (float)(RECTWidth(video)) / subpicture->i_original_picture_width;
+ const float scale_h = (float)(RECTHeight(video)) / subpicture->i_original_picture_height;
RECT dst;
dst.left = video.left + scale_w * r->i_x,
diff --git a/modules/video_output/win32/events.c b/modules/video_output/win32/events.c
index 1edcf09d52..62c665e5e4 100644
--- a/modules/video_output/win32/events.c
+++ b/modules/video_output/win32/events.c
@@ -781,8 +781,8 @@ static int Win32VoutCreateWindow( event_thread_t *p_event )
(UINT)p_event->x, /* default X coordinate */
(!p_event->y) ? (UINT)CW_USEDEFAULT :
(UINT)p_event->y, /* default Y coordinate */
- rect_window.right - rect_window.left, /* window width */
- rect_window.bottom - rect_window.top, /* window height */
+ RECTWidth(rect_window), /* window width */
+ RECTHeight(rect_window), /* window height */
p_event->hparent, /* parent window */
NULL, /* no menu in this window */
hInstance, /* handle of this program instance */
diff --git a/modules/video_output/win32/glwin32.c b/modules/video_output/win32/glwin32.c
index 7d5cc3a080..78b70bbd90 100644
--- a/modules/video_output/win32/glwin32.c
+++ b/modules/video_output/win32/glwin32.c
@@ -245,8 +245,8 @@ static void Manage (vout_display_t *vd)
CommonManage(vd);
- const int width = sys->sys.rect_dest.right - sys->sys.rect_dest.left;
- const int height = sys->sys.rect_dest.bottom - sys->sys.rect_dest.top;
+ const int width = RECTWidth(sys->sys.rect_dest);
+ const int height = RECTHeight(sys->sys.rect_dest);
vlc_gl_Resize (sys->gl, width, height);
if (vlc_gl_MakeCurrent (sys->gl) != VLC_SUCCESS)
return;
diff --git a/modules/video_output/win32/wingdi.c b/modules/video_output/win32/wingdi.c
index e973eba37c..20535e1f8d 100644
--- a/modules/video_output/win32/wingdi.c
+++ b/modules/video_output/win32/wingdi.c
@@ -154,10 +154,8 @@ static void Display(vout_display_t *vd, picture_t *picture)
OffsetRect(&rect_dst, -rect_dest.left, -rect_dest.top);
SelectObject(sys->off_dc, sys->off_bitmap);
- if (rect_dest_clipped.right - rect_dest_clipped.left !=
- rect_src_clipped.right - rect_src_clipped.left ||
- rect_dest_clipped.bottom - rect_dest_clipped.top !=
- rect_src_clipped.bottom - rect_src_clipped.top) {
+ if (RECTWidth(rect_dest_clipped) != RECTWidth(rect_src_clipped) ||
+ RECTHeight(rect_dest_clipped) != RECTHeight(rect_src_clipped)) {
StretchBlt(hdc, rect_dst.left, rect_dst.top,
rect_dst.right, rect_dst.bottom,
sys->off_dc,
More information about the vlc-commits
mailing list