diff options
author | Antonio Vazquez <blendergit@gmail.com> | 2019-09-18 18:56:23 +0300 |
---|---|---|
committer | Antonio Vazquez <blendergit@gmail.com> | 2019-09-18 21:55:38 +0300 |
commit | 6f7a64b57fcb235461146b6953ed7a30166c4a56 (patch) | |
tree | 96b78e59ac376488f5c3324a5d813b142c9a33f4 /source/blender/draw/engines/gpencil/gpencil_draw_utils.c | |
parent | e7fde3a0f3b62f913a66c445bcdf4ee0b9a501f1 (diff) |
GPencil: Create blank texture only once by engine
This texture is used for missing textures as replace.
Differential Revision: https://developer.blender.org/D5845
Diffstat (limited to 'source/blender/draw/engines/gpencil/gpencil_draw_utils.c')
-rw-r--r-- | source/blender/draw/engines/gpencil/gpencil_draw_utils.c | 26 |
1 files changed, 17 insertions, 9 deletions
diff --git a/source/blender/draw/engines/gpencil/gpencil_draw_utils.c b/source/blender/draw/engines/gpencil/gpencil_draw_utils.c index 19a28031ce0..4ff613b2714 100644 --- a/source/blender/draw/engines/gpencil/gpencil_draw_utils.c +++ b/source/blender/draw/engines/gpencil/gpencil_draw_utils.c @@ -414,7 +414,8 @@ static void set_wireframe_color(Object *ob, } /* create shading group for filling */ -static DRWShadingGroup *gpencil_shgroup_fill_create(GPENCIL_Data *vedata, +static DRWShadingGroup *gpencil_shgroup_fill_create(GPENCIL_e_data *e_data, + GPENCIL_Data *vedata, DRWPass *pass, GPUShader *shader, Object *ob, @@ -543,7 +544,7 @@ static DRWShadingGroup *gpencil_shgroup_fill_create(GPENCIL_Data *vedata, } else { /* if no texture defined, need a blank texture to avoid errors in draw manager */ - DRW_shgroup_uniform_texture(grp, "myTexture", stl->g_data->gpencil_blank_texture); + DRW_shgroup_uniform_texture(grp, "myTexture", e_data->gpencil_blank_texture); stl->shgroups[id].texture_clamp = 0; DRW_shgroup_uniform_int(grp, "texture_clamp", &stl->shgroups[id].texture_clamp, 1); } @@ -563,7 +564,8 @@ bool gpencil_onion_active(bGPdata *gpd) } /* create shading group for strokes */ -DRWShadingGroup *gpencil_shgroup_stroke_create(GPENCIL_Data *vedata, +DRWShadingGroup *gpencil_shgroup_stroke_create(GPENCIL_e_data *e_data, + GPENCIL_Data *vedata, DRWPass *pass, GPUShader *shader, Object *ob, @@ -722,14 +724,15 @@ DRWShadingGroup *gpencil_shgroup_stroke_create(GPENCIL_Data *vedata, } else { /* if no texture defined, need a blank texture to avoid errors in draw manager */ - DRW_shgroup_uniform_texture(grp, "myTexture", stl->g_data->gpencil_blank_texture); + DRW_shgroup_uniform_texture(grp, "myTexture", e_data->gpencil_blank_texture); } return grp; } /* create shading group for points */ -static DRWShadingGroup *gpencil_shgroup_point_create(GPENCIL_Data *vedata, +static DRWShadingGroup *gpencil_shgroup_point_create(GPENCIL_e_data *e_data, + GPENCIL_Data *vedata, DRWPass *pass, GPUShader *shader, Object *ob, @@ -894,7 +897,7 @@ static DRWShadingGroup *gpencil_shgroup_point_create(GPENCIL_Data *vedata, } else { /* if no texture defined, need a blank texture to avoid errors in draw manager */ - DRW_shgroup_uniform_texture(grp, "myTexture", stl->g_data->gpencil_blank_texture); + DRW_shgroup_uniform_texture(grp, "myTexture", e_data->gpencil_blank_texture); } return grp; @@ -1588,6 +1591,7 @@ void gpencil_populate_buffer_strokes(GPENCIL_e_data *e_data, if (gpd->runtime.sbuffer_used > 1) { if ((gp_style) && (gp_style->mode == GP_STYLE_MODE_LINE)) { stl->g_data->shgrps_drawing_stroke = gpencil_shgroup_stroke_create( + e_data, vedata, psl->drawing_pass, e_data->gpencil_stroke_sh, @@ -1613,6 +1617,7 @@ void gpencil_populate_buffer_strokes(GPENCIL_e_data *e_data, } else { stl->g_data->shgrps_drawing_stroke = gpencil_shgroup_point_create( + e_data, vedata, psl->drawing_pass, e_data->gpencil_point_sh, @@ -1800,7 +1805,8 @@ static void gpencil_shgroups_create(GPENCIL_e_data *e_data, case eGpencilBatchGroupType_Stroke: { const int len = elm->vertex_idx - start_stroke; - shgrp = gpencil_shgroup_stroke_create(vedata, + shgrp = gpencil_shgroup_stroke_create(e_data, + vedata, stroke_pass, e_data->gpencil_stroke_sh, ob, @@ -1838,7 +1844,8 @@ static void gpencil_shgroups_create(GPENCIL_e_data *e_data, case eGpencilBatchGroupType_Point: { const int len = elm->vertex_idx - start_point; - shgrp = gpencil_shgroup_point_create(vedata, + shgrp = gpencil_shgroup_point_create(e_data, + vedata, stroke_pass, e_data->gpencil_point_sh, ob, @@ -1865,7 +1872,8 @@ static void gpencil_shgroups_create(GPENCIL_e_data *e_data, case eGpencilBatchGroupType_Fill: { const int len = elm->vertex_idx - start_fill; - shgrp = gpencil_shgroup_fill_create(vedata, + shgrp = gpencil_shgroup_fill_create(e_data, + vedata, stroke_pass, e_data->gpencil_fill_sh, ob, |