Cleanup: Use new BLI_rct utilities to ensure valid rectangles
authorJulian Eisel <eiseljulian@gmail.com>
Tue, 14 Jan 2020 18:04:27 +0000 (19:04 +0100)
committerJulian Eisel <eiseljulian@gmail.com>
Tue, 14 Jan 2020 18:08:51 +0000 (19:08 +0100)
Technically this does a slight change to the check in wm_window.c: The
assert now also allows zero width/height rectangles.

source/blender/blenlib/intern/rct.c
source/blender/editors/screen/area.c
source/blender/windowmanager/intern/wm_window.c

index 5fb33072231902b0973ad79958d506acda63d656..8fab4ed8e6abb4de840662288fbe7945f2cd2c2f 100644 (file)
@@ -439,42 +439,22 @@ void BLI_rcti_union(rcti *rct1, const rcti *rct2)
 
 void BLI_rctf_init(rctf *rect, float xmin, float xmax, float ymin, float ymax)
 {
-  if (xmin <= xmax) {
-    rect->xmin = xmin;
-    rect->xmax = xmax;
-  }
-  else {
-    rect->xmax = xmin;
-    rect->xmin = xmax;
-  }
-  if (ymin <= ymax) {
-    rect->ymin = ymin;
-    rect->ymax = ymax;
-  }
-  else {
-    rect->ymax = ymin;
-    rect->ymin = ymax;
-  }
+  rect->xmin = xmin;
+  rect->xmax = xmax;
+  rect->ymin = ymin;
+  rect->ymax = ymax;
+
+  BLI_rctf_sanitize(rect);
 }
 
 void BLI_rcti_init(rcti *rect, int xmin, int xmax, int ymin, int ymax)
 {
-  if (xmin <= xmax) {
-    rect->xmin = xmin;
-    rect->xmax = xmax;
-  }
-  else {
-    rect->xmax = xmin;
-    rect->xmin = xmax;
-  }
-  if (ymin <= ymax) {
-    rect->ymin = ymin;
-    rect->ymax = ymax;
-  }
-  else {
-    rect->ymax = ymin;
-    rect->ymin = ymax;
-  }
+  rect->xmin = xmin;
+  rect->xmax = xmax;
+  rect->ymin = ymin;
+  rect->ymax = ymax;
+
+  BLI_rcti_sanitize(rect);
 }
 
 /**
index 29626fb6a8f25d964cc799b1afdc093cc5cee2bf..3c5400bd021ebc2fbd1ee97bae98b95b58764ae5 100644 (file)
@@ -1438,9 +1438,8 @@ static void region_rect_recursive(
       }
 
       /* Fix any negative dimensions. This can happen when a quad split 3d view gets to small. (see
-       * T72200). BLI_rcti_init() sanitizes, making sure min values are <= max values. */
-      BLI_rcti_init(
-          &ar->winrct, ar->winrct.xmin, ar->winrct.xmax, ar->winrct.ymin, ar->winrct.ymax);
+       * T72200). */
+      BLI_rcti_sanitize(&ar->winrct);
 
       quad++;
     }
@@ -2902,7 +2901,7 @@ void ED_region_info_draw(ARegion *ar,
                          float fill_color[4],
                          const bool full_redraw)
 {
-  ED_region_info_draw_multiline(ar, (const char * [2]){text, NULL}, fill_color, full_redraw);
+  ED_region_info_draw_multiline(ar, (const char *[2]){text, NULL}, fill_color, full_redraw);
 }
 
 #define MAX_METADATA_STR 1024
index a711b35e2c9b497557a0ce3dc797b0b1ecfd80ff..e7b6d65a3f917bfab9146795f34219a91a189873 100644 (file)
@@ -2191,8 +2191,8 @@ void WM_window_screen_rect_calc(const wmWindow *win, rcti *r_rect)
     }
   }
 
-  BLI_assert(screen_rect.xmin < screen_rect.xmax);
-  BLI_assert(screen_rect.ymin < screen_rect.ymax);
+  BLI_assert(BLI_rcti_is_valid(&screen_rect));
+
   *r_rect = screen_rect;
 }