[mutter] clutter/rect: Add utility function to scale the rectangle
- From: Marco Trevisan <marcotrevi src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [mutter] clutter/rect: Add utility function to scale the rectangle
- Date: Fri, 1 Mar 2019 18:52:09 +0000 (UTC)
commit 9d9d455bba31a5b0737e02f930f0b186d196b33c
Author: Marco Trevisan (TreviƱo) <mail 3v1n0 net>
Date: Fri Mar 1 14:38:23 2019 +0100
clutter/rect: Add utility function to scale the rectangle
Scale coordinates and size of the rectangle by the passed value.
https://gitlab.gnome.org/GNOME/mutter/merge_requests/3
clutter/clutter/clutter-base-types.c | 34 ++++++++++++++++++++++++++++++----
clutter/clutter/clutter-types.h | 4 ++++
2 files changed, 34 insertions(+), 4 deletions(-)
---
diff --git a/clutter/clutter/clutter-base-types.c b/clutter/clutter/clutter-base-types.c
index f7ad5261e..aeb25c90e 100644
--- a/clutter/clutter/clutter-base-types.c
+++ b/clutter/clutter/clutter-base-types.c
@@ -1146,14 +1146,40 @@ clutter_rect_inset (ClutterRect *rect,
rect->size.height = 0.f;
}
+/**
+ * clutter_rect_scale:
+ * @rect: a #ClutterRect
+ * @s_x: an horizontal scale value
+ * @s_y: a vertical scale value
+ *
+ * Scale the rectangle coordinates and size by @s_x horizontally and
+ * @s_y vertically.
+ */
+void
+clutter_rect_scale (ClutterRect *rect,
+ float s_x,
+ float s_y)
+{
+ g_return_if_fail (rect != NULL);
+ g_return_if_fail (s_x > 0.f);
+ g_return_if_fail (s_y > 0.f);
+
+ clutter_rect_normalize_internal (rect);
+
+ rect->origin.x *= s_x;
+ rect->origin.y *= s_y;
+ rect->size.width *= s_x;
+ rect->size.height *= s_y;
+}
+
/**
* clutter_rect_clamp_to_pixel:
* @rect: a #ClutterRect
*
- * Rounds the origin of @rect downwards to the nearest integer, and rounds
- * the size of @rect upwards to the nearest integer, so that @rect is
- * updated to the smallest rectangle capable of fully containing the
- * original, fractional rectangle.
+ * Rounds the origin of @rect downwards to the nearest integer, and recompute the
+ * the size using the @rect origin and size rounded upwards to the nearest integer,
+ * so that @rect is updated to the smallest rectangle capable of fully containing
+ * the original, fractional rectangle in the coordinates space.
*
* Since: 1.12
*/
diff --git a/clutter/clutter/clutter-types.h b/clutter/clutter/clutter-types.h
index 74582ec26..0f0fb1c2a 100644
--- a/clutter/clutter/clutter-types.h
+++ b/clutter/clutter/clutter-types.h
@@ -361,6 +361,10 @@ void clutter_rect_inset (ClutterRect *rect
float d_x,
float d_y);
CLUTTER_EXPORT
+void clutter_rect_scale (ClutterRect *rect,
+ float s_x,
+ float s_y);
+CLUTTER_EXPORT
void clutter_rect_clamp_to_pixel (ClutterRect *rect);
CLUTTER_EXPORT
float clutter_rect_get_x (ClutterRect *rect);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]