Commit: c438ca96bae6983e10e2bca438c035abbdb350d8 Author: Antonioya Date: Tue Dec 11 15:22:16 2018 +0100 Branches: greasepencil-object https://developer.blender.org/rBc438ca96bae6983e10e2bca438c035abbdb350d8
GP: Fix control points size when change zoom Also replaced the shader used. =================================================================== M source/blender/draw/engines/gpencil/gpencil_draw_cache_impl.c M source/blender/draw/engines/gpencil/gpencil_draw_utils.c =================================================================== 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 82c62684e3f..89b08966e9d 100644 --- a/source/blender/draw/engines/gpencil/gpencil_draw_cache_impl.c +++ b/source/blender/draw/engines/gpencil/gpencil_draw_cache_impl.c @@ -391,12 +391,11 @@ GPUBatch *DRW_gpencil_get_buffer_ctrlpoint_geom(bGPdata *gpd) int totpoints = gpd->runtime.tot_cp_points; static GPUVertFormat format = { 0 }; - static uint pos_id, color_id, thickness_id, uvdata_id; + static uint pos_id, color_id, size_id; if (format.attr_len == 0) { pos_id = GPU_vertformat_attr_add(&format, "pos", GPU_COMP_F32, 3, GPU_FETCH_FLOAT); + size_id = GPU_vertformat_attr_add(&format, "size", GPU_COMP_F32, 1, GPU_FETCH_FLOAT); color_id = GPU_vertformat_attr_add(&format, "color", GPU_COMP_F32, 4, GPU_FETCH_FLOAT); - thickness_id = GPU_vertformat_attr_add(&format, "thickness", GPU_COMP_F32, 1, GPU_FETCH_FLOAT); - uvdata_id = GPU_vertformat_attr_add(&format, "uvdata", GPU_COMP_F32, 2, GPU_FETCH_FLOAT); } GPUVertBuf *vbo = GPU_vertbuf_create_with_format(&format); @@ -410,13 +409,9 @@ GPUBatch *DRW_gpencil_get_buffer_ctrlpoint_geom(bGPdata *gpd) color[3] = 0.8f; GPU_vertbuf_attr_set(vbo, color_id, idx, color); - /* transfer both values using the same shader variable */ - float uvdata[2] = { 0.0f, 0.0f }; - GPU_vertbuf_attr_set(vbo, uvdata_id, idx, uvdata); - - /* scale size to get more visible points */ - float size = cp->size * 8.0f; - GPU_vertbuf_attr_set(vbo, thickness_id, idx, &size); + /* scale size */ + float size = cp->size * 0.8f; + GPU_vertbuf_attr_set(vbo, size_id, idx, &size); GPU_vertbuf_attr_set(vbo, pos_id, idx, &cp->x); idx++; diff --git a/source/blender/draw/engines/gpencil/gpencil_draw_utils.c b/source/blender/draw/engines/gpencil/gpencil_draw_utils.c index c9b4def0124..04acd89d9ac 100644 --- a/source/blender/draw/engines/gpencil/gpencil_draw_utils.c +++ b/source/blender/draw/engines/gpencil/gpencil_draw_utils.c @@ -560,39 +560,6 @@ static DRWShadingGroup *DRW_gpencil_shgroup_point_create( return grp; } -/* create shading group for control points */ -static DRWShadingGroup *DRW_gpencil_shgroup_ctrlpoint_create( - GPENCIL_e_data *e_data, GPENCIL_Data *vedata, DRWPass *pass, GPUShader *shader, Object *ob, - bGPdata *gpd) -{ - GPENCIL_StorageList *stl = ((GPENCIL_Data *)vedata)->stl; - const float *viewport_size = DRW_viewport_size_get(); - - /* e_data.gpencil_stroke_sh */ - DRWShadingGroup *grp = DRW_shgroup_create(shader, pass); - - DRW_shgroup_uniform_vec2(grp, "Viewport", viewport_size, 1); - DRW_shgroup_uniform_float(grp, "pixsize", stl->storage->pixsize, 1); - - stl->storage->obj_scale = 1.0f; - stl->storage->keep_size = 0; - stl->storage->pixfactor = GP_DEFAULT_PIX_FACTOR; - stl->storage->mode = GP_STYLE_STROKE_STYLE_SOLID; - DRW_shgroup_uniform_float(grp, "objscale", &stl->storage->obj_scale, 1); - const int keep = 1; - DRW_shgroup_uniform_int(grp, "keep_size", &keep, 1); - DRW_shgroup_uniform_int(grp, "color_type", &stl->storage->color_type, 1); - DRW_shgroup_uniform_int(grp, "mode", &stl->storage->mode, 1); - DRW_shgroup_uniform_float(grp, "pixfactor", &stl->storage->pixfactor, 1); - - /* for drawing always on on predefined z-depth */ - DRW_shgroup_uniform_int(grp, "xraymode", &stl->storage->xray, 1); - - DRW_shgroup_uniform_texture(grp, "myTexture", e_data->gpencil_blank_texture); - - return grp; -} - /* add fill vertex info */ static void gpencil_add_fill_vertexdata( GpencilBatchCache *cache, @@ -1295,8 +1262,8 @@ void DRW_gpencil_populate_buffer_strokes(GPENCIL_e_data *e_data, void *vedata, T ((gpd->runtime.sbuffer_sflag & GP_STROKE_ERASER) == 0)) { - DRWShadingGroup *shgrp = DRW_gpencil_shgroup_ctrlpoint_create( - e_data, vedata, psl->drawing_pass, e_data->gpencil_point_sh, NULL, gpd); + DRWShadingGroup *shgrp = DRW_shgroup_create( + e_data->gpencil_edit_point_sh, psl->drawing_pass); /* clean previous version of the batch */ if (stl->storage->buffer_ctrlpoint) { _______________________________________________ Bf-blender-cvs mailing list Bf-blender-cvs@blender.org https://lists.blender.org/mailman/listinfo/bf-blender-cvs