Index: source/blender/blenkernel/intern/cdderivedmesh.c =================================================================== --- source/blender/blenkernel/intern/cdderivedmesh.c (revision 47539) +++ source/blender/blenkernel/intern/cdderivedmesh.c (working copy) @@ -415,16 +418,24 @@ if (GPU_buffer_legacy(dm)) { DEBUG_VBO("Using legacy code. cdDM_drawEdges\n"); glBegin(GL_LINES); for (i = 0; i < dm->numEdgeData; i++, medge++) { - if ((drawAllEdges || (medge->flag & ME_EDGEDRAW)) && - (drawLooseEdges || !(medge->flag & ME_LOOSEEDGE))) - { - glVertex3fv(mvert[medge->v1].co); - glVertex3fv(mvert[medge->v2].co); + #define is_visible (drawAllEdges || (medge->flag & ME_EDGEDRAW)) + #define is_not_loose (drawLooseEdges || !(medge->flag & ME_LOOSEEDGE)) + #define is_interesting (medge->flag & (ME_SEAM|ME_SHARP)) + + if ((is_visible && is_not_loose) || is_interesting) { + gpuVertex3fv(mvert[medge->v1].co); + gpuVertex3fv(mvert[medge->v2].co); } + + #undef is_visible + #undef is_not_loose + #undef is_interesting } glEnd(); } else { /* use OpenGL VBOs or Vertex Arrays instead for better, faster rendering */ int prevstart = 0;