[PATCH 3/3] d2d1: Use d2d_point_set() in d2d_rectangle_geometry_init().
Henri Verbeet
hverbeet at codeweavers.com
Thu Dec 8 07:32:00 CST 2016
Signed-off-by: Henri Verbeet <hverbeet at codeweavers.com>
---
dlls/d2d1/d2d1_private.h | 6 ++++++
dlls/d2d1/geometry.c | 21 +++++++++++++--------
dlls/d2d1/render_target.c | 6 ------
3 files changed, 19 insertions(+), 14 deletions(-)
diff --git a/dlls/d2d1/d2d1_private.h b/dlls/d2d1/d2d1_private.h
index 2e05b80..5b494d5 100644
--- a/dlls/d2d1/d2d1_private.h
+++ b/dlls/d2d1/d2d1_private.h
@@ -382,6 +382,12 @@ static inline BOOL d2d_matrix_invert(D2D_MATRIX_3X2_F *dst, const D2D_MATRIX_3X2
return TRUE;
}
+static inline void d2d_point_set(D2D1_POINT_2F *dst, float x, float y)
+{
+ dst->x = x;
+ dst->y = y;
+}
+
static inline void d2d_point_transform(D2D1_POINT_2F *dst, const D2D1_MATRIX_3X2_F *matrix, float x, float y)
{
dst->x = x * matrix->_11 + y * matrix->_21 + matrix->_31;
diff --git a/dlls/d2d1/geometry.c b/dlls/d2d1/geometry.c
index 8bdd818..f0e1d08 100644
--- a/dlls/d2d1/geometry.c
+++ b/dlls/d2d1/geometry.c
@@ -2600,6 +2600,9 @@ static const struct ID2D1RectangleGeometryVtbl d2d_rectangle_geometry_vtbl =
HRESULT d2d_rectangle_geometry_init(struct d2d_geometry *geometry, ID2D1Factory *factory, const D2D1_RECT_F *rect)
{
+ D2D1_POINT_2F *fv;
+ float l, r, t, b;
+
d2d_geometry_init(geometry, factory, &identity, (ID2D1GeometryVtbl *)&d2d_rectangle_geometry_vtbl);
geometry->u.rectangle.rect = *rect;
@@ -2617,14 +2620,16 @@ HRESULT d2d_rectangle_geometry_init(struct d2d_geometry *geometry, ID2D1Factory
}
geometry->fill.face_count = 2;
- geometry->fill.vertices[0].x = min(rect->left, rect->right);
- geometry->fill.vertices[0].y = min(rect->top, rect->bottom);
- geometry->fill.vertices[1].x = min(rect->left, rect->right);
- geometry->fill.vertices[1].y = max(rect->top, rect->bottom);
- geometry->fill.vertices[2].x = max(rect->left, rect->right);
- geometry->fill.vertices[2].y = min(rect->top, rect->bottom);
- geometry->fill.vertices[3].x = max(rect->left, rect->right);
- geometry->fill.vertices[3].y = max(rect->top, rect->bottom);
+ l = min(rect->left, rect->right);
+ r = max(rect->left, rect->right);
+ t = min(rect->top, rect->bottom);
+ b = max(rect->top, rect->bottom);
+
+ fv = geometry->fill.vertices;
+ d2d_point_set(&fv[0], l, t);
+ d2d_point_set(&fv[1], l, b);
+ d2d_point_set(&fv[2], r, t);
+ d2d_point_set(&fv[3], r, b);
geometry->fill.faces[0].v[0] = 0;
geometry->fill.faces[0].v[1] = 2;
diff --git a/dlls/d2d1/render_target.c b/dlls/d2d1/render_target.c
index 74dbfb7..0a70897 100644
--- a/dlls/d2d1/render_target.c
+++ b/dlls/d2d1/render_target.c
@@ -42,12 +42,6 @@ static ID2D1Brush *d2d_draw_get_text_brush(struct d2d_draw_text_layout_ctx *cont
return context->brush;
}
-static void d2d_point_set(D2D1_POINT_2F *dst, float x, float y)
-{
- dst->x = x;
- dst->y = y;
-}
-
static void d2d_rect_expand(D2D1_RECT_F *dst, const D2D1_POINT_2F *point)
{
if (point->x < dst->left)
--
2.1.4
More information about the wine-patches
mailing list