UI: use DPI scale for transform cursors
This commit is contained in:
@@ -1700,6 +1700,10 @@ static void drawArrow(ArrowDirection d, short offset, short length, short size)
|
||||
{
|
||||
immBegin(GPU_PRIM_LINES, 6);
|
||||
|
||||
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);
|
||||
|
||||
switch (d) {
|
||||
case LEFT:
|
||||
offset = -offset;
|
||||
@@ -1735,6 +1739,8 @@ static void drawArrow(ArrowDirection d, short offset, short length, short size)
|
||||
|
||||
static void drawArrowHead(ArrowDirection d, short size)
|
||||
{
|
||||
size = round_fl_to_short(UI_DPI_FAC * size);
|
||||
|
||||
immBegin(GPU_PRIM_LINES, 4);
|
||||
|
||||
switch (d) {
|
||||
@@ -1762,8 +1768,10 @@ static void drawArrowHead(ArrowDirection d, short size)
|
||||
immEnd();
|
||||
}
|
||||
|
||||
static void drawArc(float size, float angle_start, float angle_end, int segments)
|
||||
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;
|
||||
@@ -1816,6 +1824,9 @@ static void drawHelpline(bContext *UNUSED(C), int x, int y, void *customdata)
|
||||
tmval[i] += offset[i];
|
||||
}
|
||||
|
||||
GPU_line_smooth(true);
|
||||
GPU_blend(true);
|
||||
|
||||
GPU_matrix_push();
|
||||
|
||||
/* Dashed lines first. */
|
||||
@@ -1835,8 +1846,8 @@ static void drawHelpline(bContext *UNUSED(C), int x, int y, void *customdata)
|
||||
immUniform2f("viewport_size", viewport_size[2], viewport_size[3]);
|
||||
|
||||
immUniform1i("colors_len", 0); /* "simple" mode */
|
||||
immUniformThemeColor(TH_VIEW_OVERLAY);
|
||||
immUniform1f("dash_width", 6.0f);
|
||||
immUniformThemeColor3(TH_VIEW_OVERLAY);
|
||||
immUniform1f("dash_width", 6.0f * UI_DPI_FAC);
|
||||
immUniform1f("dash_factor", 0.5f);
|
||||
|
||||
immBegin(GPU_PRIM_LINES, 2);
|
||||
@@ -1855,7 +1866,7 @@ static void drawHelpline(bContext *UNUSED(C), int x, int y, void *customdata)
|
||||
|
||||
switch (t->helpline) {
|
||||
case HLP_SPRING:
|
||||
immUniformThemeColor(TH_VIEW_OVERLAY);
|
||||
immUniformThemeColor3(TH_VIEW_OVERLAY);
|
||||
|
||||
GPU_matrix_translate_3fv(mval);
|
||||
GPU_matrix_rotate_axis(-RAD2DEGF(atan2f(cent[0] - tmval[0], cent[1] - tmval[1])), 'Z');
|
||||
@@ -1865,7 +1876,7 @@ static void drawHelpline(bContext *UNUSED(C), int x, int y, void *customdata)
|
||||
drawArrow(DOWN, 5, 10, 5);
|
||||
break;
|
||||
case HLP_HARROW:
|
||||
immUniformThemeColor(TH_VIEW_OVERLAY);
|
||||
immUniformThemeColor3(TH_VIEW_OVERLAY);
|
||||
GPU_matrix_translate_3fv(mval);
|
||||
|
||||
GPU_line_width(3.0f);
|
||||
@@ -1873,7 +1884,7 @@ static void drawHelpline(bContext *UNUSED(C), int x, int y, void *customdata)
|
||||
drawArrow(LEFT, 5, 10, 5);
|
||||
break;
|
||||
case HLP_VARROW:
|
||||
immUniformThemeColor(TH_VIEW_OVERLAY);
|
||||
immUniformThemeColor3(TH_VIEW_OVERLAY);
|
||||
|
||||
GPU_matrix_translate_3fv(mval);
|
||||
|
||||
@@ -1883,7 +1894,7 @@ static void drawHelpline(bContext *UNUSED(C), int x, int y, void *customdata)
|
||||
break;
|
||||
case HLP_CARROW: {
|
||||
/* Draw arrow based on direction defined by custom-points. */
|
||||
immUniformThemeColor(TH_VIEW_OVERLAY);
|
||||
immUniformThemeColor3(TH_VIEW_OVERLAY);
|
||||
|
||||
GPU_matrix_translate_3fv(mval);
|
||||
|
||||
@@ -1907,16 +1918,16 @@ static void drawHelpline(bContext *UNUSED(C), int x, int y, void *customdata)
|
||||
float dx = tmval[0] - cent[0], dy = tmval[1] - cent[1];
|
||||
float angle = atan2f(dy, dx);
|
||||
float dist = hypotf(dx, dy);
|
||||
float delta_angle = min_ff(15.0f / dist, (float)M_PI / 4.0f);
|
||||
float spacing_angle = min_ff(5.0f / dist, (float)M_PI / 12.0f);
|
||||
float delta_angle = min_ff(15.0f / (dist / UI_DPI_FAC), (float)M_PI / 4.0f);
|
||||
float spacing_angle = min_ff(5.0f / (dist / UI_DPI_FAC), (float)M_PI / 12.0f);
|
||||
|
||||
immUniformThemeColor(TH_VIEW_OVERLAY);
|
||||
immUniformThemeColor3(TH_VIEW_OVERLAY);
|
||||
|
||||
GPU_matrix_translate_3f(cent[0] - tmval[0] + mval[0], cent[1] - tmval[1] + mval[1], 0);
|
||||
|
||||
GPU_line_width(3.0f);
|
||||
drawArc(dist, angle - delta_angle, angle - spacing_angle, 10);
|
||||
drawArc(dist, angle + spacing_angle, angle + delta_angle, 10);
|
||||
drawArc(angle - delta_angle, angle - spacing_angle, 10, dist);
|
||||
drawArc(angle + spacing_angle, angle + delta_angle, 10, dist);
|
||||
|
||||
GPU_matrix_push();
|
||||
|
||||
@@ -1960,6 +1971,9 @@ static void drawHelpline(bContext *UNUSED(C), int x, int y, void *customdata)
|
||||
|
||||
immUnbindProgram();
|
||||
GPU_matrix_pop();
|
||||
|
||||
GPU_line_smooth(false);
|
||||
GPU_blend(false);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user