[Bf-blender-cvs] [130ebfe43c9] master: Cleanup: simplify transform cursor DPI scaling

Campbell Barton noreply at git.blender.org
Fri Dec 20 08:24:17 CET 2019


Commit: 130ebfe43c92a051ad73d7f6e74ce8f00c421750
Author: Campbell Barton
Date:   Fri Dec 20 18:20:43 2019 +1100
Branches: master
https://developer.blender.org/rB130ebfe43c92a051ad73d7f6e74ce8f00c421750

Cleanup: simplify transform cursor DPI scaling

===================================================================

M	source/blender/editors/transform/transform_draw_cursors.c

===================================================================

diff --git a/source/blender/editors/transform/transform_draw_cursors.c b/source/blender/editors/transform/transform_draw_cursors.c
index b5df1e4e98b..dc2ebdca56a 100644
--- a/source/blender/editors/transform/transform_draw_cursors.c
+++ b/source/blender/editors/transform/transform_draw_cursors.c
@@ -38,27 +38,33 @@
 #include "transform.h"
 #include "transform_draw_cursors.h" /* Own include. */
 
-typedef enum {
+enum eArrowDirection {
   UP,
   DOWN,
   LEFT,
   RIGHT,
-} ArrowDirection;
+};
+
+struct ArrowDims {
+  int offset;
+  int length;
+  int size;
+};
 
 #define POS_INDEX 0
 /* NOTE: this --^ is a bit hackish, but simplifies GPUVertFormat usage among functions
  * private to this file  - merwin
  */
 
-static void drawArrow(ArrowDirection d, short offset, short length, short size)
+static void drawArrow(enum eArrowDirection dir, const struct ArrowDims *arrow_dims)
 {
-  immBegin(GPU_PRIM_LINES, 6);
+  int offset = arrow_dims->offset;
+  int length = arrow_dims->length;
+  int size = arrow_dims->size;
 
-  offset = round_fl_to_short(UI_DPI_FAC * offset);
-  length = round_fl_to_short(UI_DPI_FAC * length);
-  size = round_fl_to_short(UI_DPI_FAC * size);
+  immBegin(GPU_PRIM_LINES, 6);
 
-  switch (d) {
+  switch (dir) {
     case LEFT:
       offset = -offset;
       length = -length;
@@ -91,13 +97,11 @@ static void drawArrow(ArrowDirection d, short offset, short length, short size)
   immEnd();
 }
 
-static void drawArrowHead(ArrowDirection d, short size)
+static void drawArrowHead(enum eArrowDirection dir, int size)
 {
-  size = round_fl_to_short(UI_DPI_FAC * size);
-
   immBegin(GPU_PRIM_LINES, 4);
 
-  switch (d) {
+  switch (dir) {
     case LEFT:
       size = -size;
       ATTR_FALLTHROUGH;
@@ -124,8 +128,6 @@ static void drawArrowHead(ArrowDirection d, short size)
 
 static void drawArc(float angle_start, float angle_end, int segments, float size)
 {
-  segments = round_fl_to_int(segments * UI_DPI_FAC);
-
   float delta = (angle_end - angle_start) / segments;
   float angle;
   int a;
@@ -163,12 +165,14 @@ void transform_draw_cursor_draw(bContext *UNUSED(C), int x, int y, void *customd
   TransInfo *t = (TransInfo *)customdata;
 
   if (t->helpline != HLP_NONE) {
-    float cent[2];
-    const float mval[3] = {
-        x,
-        y,
-        0.0f,
+    struct ArrowDims arrow_dims = {
+        .offset = 5 * UI_DPI_FAC,
+        .length = 10 * UI_DPI_FAC,
+        .size = 5 * UI_DPI_FAC,
     };
+
+    float cent[2];
+    const float mval[3] = {x, y, 0.0f};
     float tmval[2] = {
         (float)t->mval[0],
         (float)t->mval[1],
@@ -234,16 +238,16 @@ void transform_draw_cursor_draw(bContext *UNUSED(C), int x, int y, void *customd
         GPU_matrix_rotate_axis(-RAD2DEGF(atan2f(cent[0] - tmval[0], cent[1] - tmval[1])), 'Z');
 
         GPU_line_width(3.0f);
-        drawArrow(UP, 5, 10, 5);
-        drawArrow(DOWN, 5, 10, 5);
+        drawArrow(UP, &arrow_dims);
+        drawArrow(DOWN, &arrow_dims);
         break;
       case HLP_HARROW:
         immUniformThemeColor3(TH_VIEW_OVERLAY);
         GPU_matrix_translate_3fv(mval);
 
         GPU_line_width(3.0f);
-        drawArrow(RIGHT, 5, 10, 5);
-        drawArrow(LEFT, 5, 10, 5);
+        drawArrow(RIGHT, &arrow_dims);
+        drawArrow(LEFT, &arrow_dims);
         break;
       case HLP_VARROW:
         immUniformThemeColor3(TH_VIEW_OVERLAY);
@@ -251,8 +255,8 @@ void transform_draw_cursor_draw(bContext *UNUSED(C), int x, int y, void *customd
         GPU_matrix_translate_3fv(mval);
 
         GPU_line_width(3.0f);
-        drawArrow(UP, 5, 10, 5);
-        drawArrow(DOWN, 5, 10, 5);
+        drawArrow(UP, &arrow_dims);
+        drawArrow(DOWN, &arrow_dims);
         break;
       case HLP_CARROW: {
         /* Draw arrow based on direction defined by custom-points. */
@@ -270,8 +274,8 @@ void transform_draw_cursor_draw(bContext *UNUSED(C), int x, int y, void *customd
 
         GPU_matrix_rotate_axis(RAD2DEGF(angle), 'Z');
 
-        drawArrow(UP, 5, 10, 5);
-        drawArrow(DOWN, 5, 10, 5);
+        drawArrow(UP, &arrow_dims);
+        drawArrow(DOWN, &arrow_dims);
 
         GPU_matrix_pop();
         break;
@@ -297,7 +301,7 @@ void transform_draw_cursor_draw(bContext *UNUSED(C), int x, int y, void *customd
             cosf(angle - delta_angle) * dist, sinf(angle - delta_angle) * dist, 0);
         GPU_matrix_rotate_axis(RAD2DEGF(angle - delta_angle), 'Z');
 
-        drawArrowHead(DOWN, 5);
+        drawArrowHead(DOWN, arrow_dims.size);
 
         GPU_matrix_pop();
 
@@ -305,7 +309,7 @@ void transform_draw_cursor_draw(bContext *UNUSED(C), int x, int y, void *customd
             cosf(angle + delta_angle) * dist, sinf(angle + delta_angle) * dist, 0);
         GPU_matrix_rotate_axis(RAD2DEGF(angle + delta_angle), 'Z');
 
-        drawArrowHead(UP, 5);
+        drawArrowHead(UP, arrow_dims.size);
         break;
       }
       case HLP_TRACKBALL: {
@@ -319,14 +323,14 @@ void transform_draw_cursor_draw(bContext *UNUSED(C), int x, int y, void *customd
         UI_make_axis_color(col, col2, 'X');
         immUniformColor3ubv(col2);
 
-        drawArrow(RIGHT, 5, 10, 5);
-        drawArrow(LEFT, 5, 10, 5);
+        drawArrow(RIGHT, &arrow_dims);
+        drawArrow(LEFT, &arrow_dims);
 
         UI_make_axis_color(col, col2, 'Y');
         immUniformColor3ubv(col2);
 
-        drawArrow(UP, 5, 10, 5);
-        drawArrow(DOWN, 5, 10, 5);
+        drawArrow(UP, &arrow_dims);
+        drawArrow(DOWN, &arrow_dims);
         break;
       }
     }



More information about the Bf-blender-cvs mailing list