UI: Node Grid Adjustments for Line Width #111640

Merged
Harley Acheson merged 2 commits from Harley/blender:NodeGrid into main 2023-08-29 06:33:30 +02:00
3 changed files with 13 additions and 6 deletions

View File

@ -30,7 +30,7 @@ enum NodeBorder {
}; };
ENUM_OPERATORS(NodeBorder, NODE_RIGHT) ENUM_OPERATORS(NodeBorder, NODE_RIGHT)
#define NODE_GRID_STEP_SIZE U.widget_unit /* Based on the grid nodes snap to. */ #define NODE_GRID_STEP_SIZE (20.0f * UI_SCALE_FAC) /* Based on the grid nodes snap to. */
#define NODE_EDGE_PAN_INSIDE_PAD 2 #define NODE_EDGE_PAN_INSIDE_PAD 2
#define NODE_EDGE_PAN_OUTSIDE_PAD 0 /* Disable clamping for node panning, use whole screen. */ #define NODE_EDGE_PAN_OUTSIDE_PAD 0 /* Disable clamping for node panning, use whole screen. */
#define NODE_EDGE_PAN_SPEED_RAMP 1 #define NODE_EDGE_PAN_SPEED_RAMP 1

View File

@ -1308,7 +1308,7 @@ void UI_view2d_dot_grid_draw(const View2D *v2d,
immBindBuiltinProgram(GPU_SHADER_3D_FLAT_COLOR); immBindBuiltinProgram(GPU_SHADER_3D_FLAT_COLOR);
/* Scaling the dots fully with the zoom looks too busy, but a bit of size variation is nice. */ /* Scaling the dots fully with the zoom looks too busy, but a bit of size variation is nice. */
const float min_point_size = 2.0f * UI_SCALE_FAC; const float min_point_size = 2.0f * U.pixelsize;
const float point_size_factor = 1.5f; const float point_size_factor = 1.5f;
const float max_point_size = point_size_factor * min_point_size; const float max_point_size = point_size_factor * min_point_size;
@ -1330,6 +1330,9 @@ void UI_view2d_dot_grid_draw(const View2D *v2d,
const float point_size_draw = ceilf( const float point_size_draw = ceilf(
clamp_f(point_size_precise, min_point_size, max_point_size)); clamp_f(point_size_precise, min_point_size, max_point_size));
/* Offset point by this amount to better align centers as size changes. */
const float point_size_offset = (point_size_draw / 2.0f) - U.pixelsize;
/* To compensate the for the clamped point_size we adjust the alpha to make the overall /* To compensate the for the clamped point_size we adjust the alpha to make the overall
* brightness of the grid background more consistent. */ * brightness of the grid background more consistent. */
const float alpha = pow2f(point_size_precise / point_size_draw); const float alpha = pow2f(point_size_precise / point_size_draw);
@ -1353,10 +1356,14 @@ void UI_view2d_dot_grid_draw(const View2D *v2d,
const float step = min_step * level_scale; const float step = min_step * level_scale;
int count_x; int count_x;
float start_x; float start_x;
grid_axis_start_and_count(step, v2d->cur.xmin, v2d->cur.xmax, &start_x, &count_x);
/* Count points that fit in viewport minus space for the scrollbars. */
Harley marked this conversation as resolved
Review

Could you split the 1.5 and 1.2 values to separate const float variables with descriptive names (if possible!) :)

Also, the parentheses are necessary, order of operations makes multiplication happen first.

Could you split the 1.5 and 1.2 values to separate `const float` variables with descriptive names (if possible!) :) Also, the parentheses are necessary, order of operations makes multiplication happen first.
Review

It got much nicer when I found some scrollbar size defines that work better and are self-explanatory.

It got much nicer when I found some scrollbar size defines that work better and are self-explanatory.
grid_axis_start_and_count(
step, v2d->cur.xmin, v2d->cur.xmax - V2D_SCROLL_WIDTH, &start_x, &count_x);
int count_y; int count_y;
float start_y; float start_y;
grid_axis_start_and_count(step, v2d->cur.ymin, v2d->cur.ymax, &start_y, &count_y); grid_axis_start_and_count(
step, v2d->cur.ymin + V2D_SCROLL_HEIGHT, v2d->cur.ymax, &start_y, &count_y);
if (count_x == 0 || count_y == 0) { if (count_x == 0 || count_y == 0) {
continue; continue;
} }
@ -1371,7 +1378,7 @@ void UI_view2d_dot_grid_draw(const View2D *v2d,
for (int i_x = 0; i_x < count_x; i_x++) { for (int i_x = 0; i_x < count_x; i_x++) {
const float x = start_x + step * i_x; const float x = start_x + step * i_x;
immAttr4fv(color_id, color); immAttr4fv(color_id, color);
immVertex2f(pos, x, y); immVertex2f(pos, x + point_size_offset, y + point_size_offset);
} }
} }

View File

@ -130,7 +130,7 @@ struct TreeDrawContext {
float ED_node_grid_size() float ED_node_grid_size()
{ {
return U.widget_unit; return NODE_GRID_STEP_SIZE;
} }
void ED_node_tree_update(const bContext *C) void ED_node_tree_update(const bContext *C)