Commit: eacc4ae31690f4f2026db5424b78b1e1d5166ee7 Author: Antonioya Date: Fri Jul 27 16:58:51 2018 +0200 Branches: greasepencil-object https://developer.blender.org/rBeacc4ae31690f4f2026db5424b78b1e1d5166ee7
Separate Paper and Grid and rename =================================================================== M release/scripts/startup/bl_ui/space_view3d.py M source/blender/draw/engines/gpencil/gpencil_engine.c M source/blender/draw/engines/gpencil/gpencil_engine.h M source/blender/draw/engines/gpencil/shaders/gpencil_paper_frag.glsl =================================================================== diff --git a/release/scripts/startup/bl_ui/space_view3d.py b/release/scripts/startup/bl_ui/space_view3d.py index 847b0944bd9..e397f8171ac 100644 --- a/release/scripts/startup/bl_ui/space_view3d.py +++ b/release/scripts/startup/bl_ui/space_view3d.py @@ -4726,15 +4726,15 @@ class VIEW3D_PT_overlay_gpencil_options(Panel): view = context.space_data overlay = view.overlay - layout.prop(overlay, "use_gpencil_paper", text="Drawing Paper") + layout.prop(overlay, "use_gpencil_paper", text="Fade 3D Objects") if overlay.use_gpencil_paper: layout.prop(overlay, "gpencil_paper_color", text="Color") layout.prop(overlay, "gpencil_paper_opacity", text="Opacity") - layout.prop(overlay, "use_gpencil_grid", text="Display Paper Grid") - if overlay.use_gpencil_grid: - layout.prop(overlay, "gpencil_grid_size", text="") + layout.prop(overlay, "use_gpencil_grid", text="Show Plane Grid") + if overlay.use_gpencil_grid: + layout.prop(overlay, "gpencil_grid_size", text="") layout.prop(overlay, "use_gpencil_onion_skin", text="Onion Skin") diff --git a/source/blender/draw/engines/gpencil/gpencil_engine.c b/source/blender/draw/engines/gpencil/gpencil_engine.c index 5e8c9da57f8..3b13886b14a 100644 --- a/source/blender/draw/engines/gpencil/gpencil_engine.c +++ b/source/blender/draw/engines/gpencil/gpencil_engine.c @@ -436,6 +436,16 @@ void GPENCIL_cache_init(void *vedata) stl->storage->gridsize[0] = (float)v3d->gpencil_grid_size[0]; stl->storage->gridsize[1] = (float)v3d->gpencil_grid_size[1]; DRW_shgroup_uniform_vec2(paper_shgrp, "size", &stl->storage->gridsize[0], 1); + + /* paper can be only grid */ + if (v3d->flag3 & V3D_GP_SHOW_PAPER) { + stl->storage->usepaper = 1; + } + else { + stl->storage->usepaper = 0; + } + DRW_shgroup_uniform_int(paper_shgrp, "usepaper", &stl->storage->usepaper, 1); + if (v3d->flag3 & V3D_GP_SHOW_GRID) { stl->storage->uselines = 1; } @@ -606,7 +616,7 @@ void GPENCIL_draw_scene(void *ved) /* paper pass to display a confortable area to draw over complex scenes with geometry */ if ((!is_render) && (obact) && (obact->type == OB_GPENCIL)) { if (((v3d->flag2 & V3D_RENDER_OVERRIDE) == 0) && - (v3d->flag3 & V3D_GP_SHOW_PAPER) && + ((v3d->flag3 & V3D_GP_SHOW_PAPER) || (v3d->flag3 & V3D_GP_SHOW_GRID)) && (stl->g_data->gp_cache_used > 0)) { DRW_draw_pass(psl->paper_pass); diff --git a/source/blender/draw/engines/gpencil/gpencil_engine.h b/source/blender/draw/engines/gpencil/gpencil_engine.h index 325d77b6a7f..0ea831b9384 100644 --- a/source/blender/draw/engines/gpencil/gpencil_engine.h +++ b/source/blender/draw/engines/gpencil/gpencil_engine.h @@ -107,6 +107,7 @@ typedef struct GPENCIL_Storage { int playing; bool is_render; bool is_mat_preview; + int usepaper; int uselines; float gridsize[2]; float gridcolor[3]; diff --git a/source/blender/draw/engines/gpencil/shaders/gpencil_paper_frag.glsl b/source/blender/draw/engines/gpencil/shaders/gpencil_paper_frag.glsl index 7036a3287f9..4c4c616a5b4 100644 --- a/source/blender/draw/engines/gpencil/shaders/gpencil_paper_frag.glsl +++ b/source/blender/draw/engines/gpencil/shaders/gpencil_paper_frag.glsl @@ -1,5 +1,6 @@ uniform vec2 size; uniform vec4 color; +uniform int usepaper; uniform int uselines; uniform vec3 gridcolor; @@ -21,6 +22,11 @@ void main() vec2 coord = vec2(dx * floor(uv.x / dx), dy * floor(uv.y / dy)); vec4 outcolor = vec4(color); + /* if paper is disabled, the paper must be full transparent */ + if (usepaper == 0) { + outcolor.a = 0; + } + if (uselines == 1) { float difx = uv.x - (floor(uv.x / dx) * dx); if (difx == 0.5) { _______________________________________________ Bf-blender-cvs mailing list Bf-blender-cvs@blender.org https://lists.blender.org/mailman/listinfo/bf-blender-cvs