diff options
Diffstat (limited to 'source/blender/draw/intern/mesh_extractors/extract_mesh_vbo_edit_data.cc')
-rw-r--r-- | source/blender/draw/intern/mesh_extractors/extract_mesh_vbo_edit_data.cc | 15 |
1 files changed, 11 insertions, 4 deletions
diff --git a/source/blender/draw/intern/mesh_extractors/extract_mesh_vbo_edit_data.cc b/source/blender/draw/intern/mesh_extractors/extract_mesh_vbo_edit_data.cc index 3cc1375329e..0002b95c867 100644 --- a/source/blender/draw/intern/mesh_extractors/extract_mesh_vbo_edit_data.cc +++ b/source/blender/draw/intern/mesh_extractors/extract_mesh_vbo_edit_data.cc @@ -72,11 +72,11 @@ static void mesh_render_data_edge_flag(const MeshRenderData *mr, } } - /* Use a byte for value range */ - if (mr->crease_ofs != -1) { - float crease = BM_ELEM_CD_GET_FLOAT(eed, mr->crease_ofs); + /* Use half a byte for value range */ + if (mr->edge_crease_ofs != -1) { + float crease = BM_ELEM_CD_GET_FLOAT(eed, mr->edge_crease_ofs); if (crease > 0) { - eattr->crease = (uchar)(crease * 255.0f); + eattr->crease = (uchar)ceil(crease * 15.0f); } } /* Use a byte for value range */ @@ -107,6 +107,13 @@ static void mesh_render_data_vert_flag(const MeshRenderData *mr, if (BM_elem_flag_test(eve, BM_ELEM_SELECT)) { eattr->e_flag |= VFLAG_VERT_SELECTED; } + /* Use half a byte for value range */ + if (mr->vert_crease_ofs != -1) { + float crease = BM_ELEM_CD_GET_FLOAT(eve, mr->vert_crease_ofs); + if (crease > 0) { + eattr->crease |= (uchar)ceil(crease * 15.0f) << 4; + } + } } static GPUVertFormat *get_edit_data_format() |