Commit: bdeceba5f68e5c7ecb184936af655d3060687106 Author: Antonioya Date: Sat Jul 28 17:58:27 2018 +0200 Branches: greasepencil-object https://developer.blender.org/rBbdeceba5f68e5c7ecb184936af655d3060687106
Add Lock to axis and opacity control to grid Now, the grid axis can be automatically set to the current lock axis =================================================================== M release/scripts/startup/bl_ui/space_view3d.py M source/blender/blenloader/intern/versioning_280.c M source/blender/draw/engines/gpencil/gpencil_draw_cache_impl.c M source/blender/editors/space_view3d/space_view3d.c M source/blender/makesdna/DNA_view3d_types.h M source/blender/makesrna/intern/rna_space.c =================================================================== diff --git a/release/scripts/startup/bl_ui/space_view3d.py b/release/scripts/startup/bl_ui/space_view3d.py index 10c15b6e8ce..f468042719a 100644 --- a/release/scripts/startup/bl_ui/space_view3d.py +++ b/release/scripts/startup/bl_ui/space_view3d.py @@ -4733,7 +4733,13 @@ class VIEW3D_PT_overlay_gpencil_options(Panel): sub.active = overlay.use_gpencil_paper sub.prop(overlay, "gpencil_paper_opacity", text="Fade 3D Objects") - layout.prop(overlay, "use_gpencil_grid", text="Show Plane Grid") + col = layout.column() + row = col.row() + row.prop(overlay, "use_gpencil_grid", text="") + sub = row.row() + sub.active = overlay.use_gpencil_grid + sub.prop(overlay, "gpencil_grid_opacity", text="Plane Grid") + if overlay.use_gpencil_grid: layout.prop(overlay, "gpencil_grid_scale") row = layout.row() diff --git a/source/blender/blenloader/intern/versioning_280.c b/source/blender/blenloader/intern/versioning_280.c index b7b549c96d7..65043b0afb5 100644 --- a/source/blender/blenloader/intern/versioning_280.c +++ b/source/blender/blenloader/intern/versioning_280.c @@ -993,6 +993,7 @@ void blo_do_versions_280(FileData *fd, Library *UNUSED(lib), Main *bmain) v3d->gpencil_grid_lines = GP_DEFAULT_GRID_LINES; // NUmber of lines v3d->gpencil_paper_opacity = 0.5f; v3d->gpencil_grid_axis = V3D_GP_GRID_AXIS_Y; + v3d->gpencil_grid_opacity = 0.9f; } } } diff --git a/source/blender/draw/engines/gpencil/gpencil_draw_cache_impl.c b/source/blender/draw/engines/gpencil/gpencil_draw_cache_impl.c index 1241c88b061..77e55861bf6 100644 --- a/source/blender/draw/engines/gpencil/gpencil_draw_cache_impl.c +++ b/source/blender/draw/engines/gpencil/gpencil_draw_cache_impl.c @@ -600,9 +600,9 @@ GPUBatch *DRW_gpencil_get_edlin_geom(bGPDstroke *gps, float alpha, short UNUSED( return GPU_batch_create_ex(GPU_PRIM_LINE_STRIP, vbo, NULL, GPU_BATCH_OWNS_VBO); } -static void set_grid_point(GPUVertBuf *vbo, int idx, uchar col_grid[3], +static void set_grid_point(GPUVertBuf *vbo, int idx, float col_grid[4], uint pos_id, uint color_id, - float v1, float v2, const int axis) + float v1, float v2, int axis) { GPU_vertbuf_attr_set(vbo, color_id, idx, col_grid); @@ -635,12 +635,12 @@ GPUBatch *DRW_gpencil_get_grid(void) { const DRWContextState *draw_ctx = DRW_context_state_get(); Scene *scene = draw_ctx->scene; + ToolSettings *ts = scene->toolsettings; View3D *v3d = draw_ctx->v3d; - uchar col_grid[3]; - UI_GetThemeColor3ubv(TH_GRID, col_grid); + float col_grid[4]; - /* verify we have something to draw */ + /* verify we have something to draw and valid values */ if (v3d->gpencil_grid_lines < 4) { v3d->gpencil_grid_lines = GP_DEFAULT_GRID_LINES; } @@ -649,11 +649,40 @@ GPUBatch *DRW_gpencil_get_grid(void) v3d->gpencil_grid_scale = 1.0f; } - if (v3d->gpencil_grid_axis == 0) { - v3d->gpencil_grid_axis |= V3D_GP_GRID_AXIS_Y; + if (v3d->gpencil_grid_opacity < 0.1f) { + v3d->gpencil_grid_opacity = 0.1f; + } + + UI_GetThemeColor3fv(TH_GRID, col_grid); + col_grid[3] = v3d->gpencil_grid_opacity; + + /* if use locked axis, copy value */ + int axis = v3d->gpencil_grid_axis; + if ((v3d->gpencil_grid_axis & V3D_GP_GRID_AXIS_LOCK) == 0) { + + axis = v3d->gpencil_grid_axis; + } + else { + switch (ts->gp_sculpt.lock_axis) { + case GP_LOCKAXIS_X: + { + axis = V3D_GP_GRID_AXIS_X; + break; + } + case GP_LOCKAXIS_NONE: + case GP_LOCKAXIS_Y: + { + axis = V3D_GP_GRID_AXIS_Y; + break; + } + case GP_LOCKAXIS_Z: + { + axis = V3D_GP_GRID_AXIS_Z; + break; + } + } } - const int axis = v3d->gpencil_grid_axis; const char *grid_unit = NULL; const int gridlines = v3d->gpencil_grid_lines / 2; const float grid_scale = v3d->gpencil_grid_scale * ED_scene_grid_scale(scene, &grid_unit); @@ -665,7 +694,7 @@ GPUBatch *DRW_gpencil_get_grid(void) static uint pos_id, color_id; if (format.attr_len == 0) { pos_id = GPU_vertformat_attr_add(&format, "pos", GPU_COMP_F32, 3, GPU_FETCH_FLOAT); - color_id = GPU_vertformat_attr_add(&format, "color", GPU_COMP_F32, 3, GPU_FETCH_FLOAT); + color_id = GPU_vertformat_attr_add(&format, "color", GPU_COMP_F32, 4, GPU_FETCH_FLOAT); } GPUVertBuf *vbo = GPU_vertbuf_create_with_format(&format); diff --git a/source/blender/editors/space_view3d/space_view3d.c b/source/blender/editors/space_view3d/space_view3d.c index 1fe3a39e49d..ff563cea353 100644 --- a/source/blender/editors/space_view3d/space_view3d.c +++ b/source/blender/editors/space_view3d/space_view3d.c @@ -346,6 +346,7 @@ static SpaceLink *view3d_new(const ScrArea *UNUSED(sa), const Scene *scene) v3d->gpencil_grid_lines = GP_DEFAULT_GRID_LINES; // NUmber of Lines v3d->gpencil_paper_opacity = 0.5f; v3d->gpencil_grid_axis = V3D_GP_GRID_AXIS_Y; + v3d->gpencil_grid_opacity = 0.9f; v3d->bundle_size = 0.2f; v3d->bundle_drawtype = OB_PLAINAXES; diff --git a/source/blender/makesdna/DNA_view3d_types.h b/source/blender/makesdna/DNA_view3d_types.h index f2b3fec81e6..9883587783d 100644 --- a/source/blender/makesdna/DNA_view3d_types.h +++ b/source/blender/makesdna/DNA_view3d_types.h @@ -271,6 +271,8 @@ typedef struct View3D { float gpencil_paper_opacity; int gpencil_grid_lines; int gpencil_grid_axis; + float gpencil_grid_opacity; + char pad6[4]; /* Stereoscopy settings */ short stereo3d_flag; @@ -493,9 +495,10 @@ enum { /* View3d.gpencil_grid_axis */ enum { - V3D_GP_GRID_AXIS_X = (1 << 1), - V3D_GP_GRID_AXIS_Y = (1 << 2), - V3D_GP_GRID_AXIS_Z = (1 << 3) + V3D_GP_GRID_AXIS_LOCK = (1 << 0), + V3D_GP_GRID_AXIS_X = (1 << 1), + V3D_GP_GRID_AXIS_Y = (1 << 2), + V3D_GP_GRID_AXIS_Z = (1 << 3), }; #endif diff --git a/source/blender/makesrna/intern/rna_space.c b/source/blender/makesrna/intern/rna_space.c index 061d48dfd7d..385306bb805 100644 --- a/source/blender/makesrna/intern/rna_space.c +++ b/source/blender/makesrna/intern/rna_space.c @@ -310,6 +310,7 @@ const EnumPropertyItem rna_enum_file_sort_items[] = { }; static const EnumPropertyItem rna_enum_gpencil_grid_axis_items[] = { + {V3D_GP_GRID_AXIS_LOCK, "LOCK", 0, "Lock", "Use current drawing locked axis" }, {V3D_GP_GRID_AXIS_X, "X", 0, "X", ""}, {V3D_GP_GRID_AXIS_Y, "Y", 0, "Y", ""}, {V3D_GP_GRID_AXIS_Z, "Z", 0, "Z", ""}, @@ -2894,6 +2895,13 @@ static void rna_def_space_view3d_overlay(BlenderRNA *brna) RNA_def_property_ui_text(prop, "Axis", "Axis to display grid"); RNA_def_property_update(prop, NC_SPACE | ND_SPACE_VIEW3D, NULL); + prop = RNA_def_property(srna, "gpencil_grid_opacity", PROP_FLOAT, PROP_NONE); + RNA_def_property_float_sdna(prop, NULL, "gpencil_grid_opacity"); + RNA_def_property_range(prop, 0.1f, 1.0f); + RNA_def_property_float_default(prop, 0.9f); + RNA_def_property_ui_text(prop, "Opacity", "Grid opacity"); + RNA_def_property_update(prop, NC_SPACE | ND_SPACE_VIEW3D, NULL); + /* Paper opacity factor */ prop = RNA_def_property(srna, "gpencil_paper_opacity", PROP_FLOAT, PROP_NONE); RNA_def_property_float_sdna(prop, NULL, "gpencil_paper_opacity"); _______________________________________________ Bf-blender-cvs mailing list Bf-blender-cvs@blender.org https://lists.blender.org/mailman/listinfo/bf-blender-cvs