Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorClément Foucault <foucault.clem@gmail.com>2019-02-22 06:03:22 +0300
committerClément Foucault <foucault.clem@gmail.com>2019-02-22 06:03:59 +0300
commit1381a4a948ac7e7e9e83cd83a2de370020a838ed (patch)
tree97b99cf7834912d6895fe4d1e0ebeccb326944d6 /source/blender/draw/modes/sculpt_mode.c
parente35b7e73267fc02817538cd67e72e5c278dec878 (diff)
Sculpt Overlay: Fix mask drawn as flat shaded when smooth shading enabled
Removes the flat shader variant since the attrib is specified for each vert loop in flat shaded mode. It was something leftover from the previous implementation.
Diffstat (limited to 'source/blender/draw/modes/sculpt_mode.c')
-rw-r--r--source/blender/draw/modes/sculpt_mode.c34
1 files changed, 1 insertions, 33 deletions
diff --git a/source/blender/draw/modes/sculpt_mode.c b/source/blender/draw/modes/sculpt_mode.c
index 546270f8a18..5d008a35a61 100644
--- a/source/blender/draw/modes/sculpt_mode.c
+++ b/source/blender/draw/modes/sculpt_mode.c
@@ -36,7 +36,6 @@
#include "draw_common.h"
extern char datatoc_sculpt_mask_vert_glsl[];
-extern char datatoc_gpu_shader_flat_color_frag_glsl[];
extern char datatoc_gpu_shader_3D_smooth_color_frag_glsl[];
/* *********** LISTS *********** */
@@ -93,7 +92,6 @@ static struct {
* Add sources to source/blender/draw/modes/shaders
* init in SCULPT_engine_init();
* free in SCULPT_engine_free(); */
- struct GPUShader *shader_flat;
struct GPUShader *shader_smooth;
} e_data = {NULL}; /* Engine data */
@@ -117,11 +115,6 @@ static void SCULPT_engine_init(void *vedata)
UNUSED_VARS(txl, fbl, stl);
- if (!e_data.shader_flat) {
- e_data.shader_flat = DRW_shader_create(datatoc_sculpt_mask_vert_glsl, NULL,
- datatoc_gpu_shader_flat_color_frag_glsl,
- "#define SHADE_FLAT");
- }
if (!e_data.shader_smooth) {
e_data.shader_smooth = DRW_shader_create(datatoc_sculpt_mask_vert_glsl, NULL,
datatoc_gpu_shader_3D_smooth_color_frag_glsl, NULL);
@@ -136,37 +129,16 @@ static void SCULPT_cache_init(void *vedata)
SCULPT_StorageList *stl = ((SCULPT_Data *)vedata)->stl;
if (!stl->g_data) {
- /* Alloc transient pointers */
stl->g_data = MEM_mallocN(sizeof(*stl->g_data), __func__);
}
{
- /* Create a pass */
DRWState state = DRW_STATE_WRITE_COLOR | DRW_STATE_DEPTH_EQUAL | DRW_STATE_MULTIPLY;
psl->pass = DRW_pass_create("Sculpt Pass", state);
-
- /* Create a shadingGroup using a function in draw_common.c or custom one */
- /*
- * stl->g_data->group = shgroup_dynlines_uniform_color(psl->pass, ts.colorWire);
- * -- or --
- * stl->g_data->group = DRW_shgroup_create(e_data.custom_shader, psl->pass);
- */
- stl->g_data->group_flat = DRW_shgroup_create(e_data.shader_flat, psl->pass);
stl->g_data->group_smooth = DRW_shgroup_create(e_data.shader_smooth, psl->pass);
}
}
-static bool object_is_flat(const Object *ob)
-{
- Mesh *me = ob->data;
- if (me->mpoly && me->mpoly[0].flag & ME_SMOOTH) {
- return false;
- }
- else {
- return true;
- }
-}
-
static void sculpt_draw_mask_cb(
DRWShadingGroup *shgroup,
void (*draw_fn)(DRWShadingGroup *shgroup, struct GPUBatch *geom),
@@ -206,10 +178,7 @@ static void SCULPT_cache_populate(void *vedata, Object *ob)
PBVH *pbvh = ob->sculpt->pbvh;
if (pbvh && pbvh_has_mask(pbvh)) {
- /* Get geometry cache */
- DRWShadingGroup *shgroup = object_is_flat(ob) ? stl->g_data->group_flat : stl->g_data->group_smooth;
-
- DRW_shgroup_call_generate_add(shgroup, sculpt_draw_mask_cb, ob, ob->obmat);
+ DRW_shgroup_call_generate_add(stl->g_data->group_smooth, sculpt_draw_mask_cb, ob, ob->obmat);
}
}
}
@@ -258,7 +227,6 @@ static void SCULPT_draw_scene(void *vedata)
* Mostly used for freeing shaders */
static void SCULPT_engine_free(void)
{
- DRW_SHADER_FREE_SAFE(e_data.shader_flat);
DRW_SHADER_FREE_SAFE(e_data.shader_smooth);
}