GP: Allow 0 subdivisions for canvas grid

This commit is contained in:
Antonio Vazquez 2018-10-03 22:14:38 +02:00
parent 77787310ad
commit 77def38eab
2 changed files with 13 additions and 15 deletions

View File

@ -649,14 +649,11 @@ GPUBatch *DRW_gpencil_get_grid(void)
Scene *scene = draw_ctx->scene;
ToolSettings *ts = scene->toolsettings;
View3D *v3d = draw_ctx->v3d;
const bool do_center = (v3d->overlay.gpencil_grid_lines <= 0) ? false : true;
float col_grid[4];
/* verify we have something to draw and valid values */
if (v3d->overlay.gpencil_grid_lines < 1) {
v3d->overlay.gpencil_grid_lines = GP_DEFAULT_GRID_LINES;
}
if (v3d->overlay.gpencil_grid_scale == 0.0f) {
v3d->overlay.gpencil_grid_scale = 1.0f;
}
@ -696,7 +693,7 @@ GPUBatch *DRW_gpencil_get_grid(void)
}
const char *grid_unit = NULL;
const int gridlines = v3d->overlay.gpencil_grid_lines;
const int gridlines = (v3d->overlay.gpencil_grid_lines <= 0) ? 1 : v3d->overlay.gpencil_grid_lines;
const float grid_scale = v3d->overlay.gpencil_grid_scale * ED_scene_grid_scale(scene, &grid_unit);
const float grid = grid_scale;
const float space = (grid_scale / gridlines);
@ -737,15 +734,16 @@ GPUBatch *DRW_gpencil_get_grid(void)
idx++;
}
/* center lines */
set_grid_point(vbo, idx, col_grid, pos_id, color_id, -grid, 0.0f, axis);
idx++;
set_grid_point(vbo, idx, col_grid, pos_id, color_id, +grid, 0.0f, axis);
idx++;
set_grid_point(vbo, idx, col_grid, pos_id, color_id, 0.0f, -grid, axis);
idx++;
set_grid_point(vbo, idx, col_grid, pos_id, color_id, 0.0f, +grid, axis);
idx++;
if (do_center) {
set_grid_point(vbo, idx, col_grid, pos_id, color_id, -grid, 0.0f, axis);
idx++;
set_grid_point(vbo, idx, col_grid, pos_id, color_id, +grid, 0.0f, axis);
idx++;
set_grid_point(vbo, idx, col_grid, pos_id, color_id, 0.0f, -grid, axis);
idx++;
set_grid_point(vbo, idx, col_grid, pos_id, color_id, 0.0f, +grid, axis);
idx++;
}
return GPU_batch_create_ex(GPU_PRIM_LINES, vbo, NULL, GPU_BATCH_OWNS_VBO);
}

View File

@ -2970,7 +2970,7 @@ static void rna_def_space_view3d_overlay(BlenderRNA *brna)
prop = RNA_def_property(srna, "gpencil_grid_lines", PROP_INT, PROP_NONE);
RNA_def_property_int_sdna(prop, NULL, "overlay.gpencil_grid_lines");
RNA_def_property_range(prop, 1, INT_MAX);
RNA_def_property_range(prop, 0, INT_MAX);
RNA_def_property_int_default(prop, GP_DEFAULT_GRID_LINES);
RNA_def_property_ui_text(prop, "Subdivisions", "Number of subdivisions in each side of symmetry line");
RNA_def_property_update(prop, NC_SPACE | ND_SPACE_VIEW3D, NULL);