Commit: 7119a0f67dc56c4684981878a37bc57488b9dff2
Author: Antony Riakiotakis
Date:   Mon Jun 22 15:18:04 2015 +0200
Branches: master
https://developer.blender.org/rB7119a0f67dc56c4684981878a37bc57488b9dff2

Fix T45136, only draw edges if there's something to draw.

===================================================================

M       source/blender/blenkernel/intern/cdderivedmesh.c

===================================================================

diff --git a/source/blender/blenkernel/intern/cdderivedmesh.c 
b/source/blender/blenkernel/intern/cdderivedmesh.c
index c0489a9..002d302 100644
--- a/source/blender/blenkernel/intern/cdderivedmesh.c
+++ b/source/blender/blenkernel/intern/cdderivedmesh.c
@@ -392,7 +392,7 @@ static void cdDM_drawUVEdges(DerivedMesh *dm)
 static void cdDM_drawEdges(DerivedMesh *dm, bool drawLooseEdges, bool 
drawAllEdges)
 {
        CDDerivedMesh *cddm = (CDDerivedMesh *) dm;
-       
+       GPUDrawObject *gdo;
        if (cddm->pbvh && cddm->pbvh_draw &&
            BKE_pbvh_type(cddm->pbvh) == PBVH_BMESH)
        {
@@ -402,15 +402,18 @@ static void cdDM_drawEdges(DerivedMesh *dm, bool 
drawLooseEdges, bool drawAllEdg
        }
        
        GPU_edge_setup(dm);
-       if (drawAllEdges && drawLooseEdges) {
-               GPU_buffer_draw_elements(dm->drawObject->edges, GL_LINES, 0, 
dm->drawObject->totedge * 2);
-       }
-       else if (drawAllEdges) {
-               GPU_buffer_draw_elements(dm->drawObject->edges, GL_LINES, 0, 
dm->drawObject->loose_edge_offset * 2);
-       }
-       else {
-               GPU_buffer_draw_elements(dm->drawObject->edges, GL_LINES, 0, 
dm->drawObject->tot_edge_drawn * 2);
-               GPU_buffer_draw_elements(dm->drawObject->edges, GL_LINES, 
dm->drawObject->loose_edge_offset * 2, dm->drawObject->tot_loose_edge_drawn * 
2);
+       gdo = dm->drawObject;
+       if (gdo->edges && gdo->points) {
+               if (drawAllEdges && drawLooseEdges) {
+                       GPU_buffer_draw_elements(gdo->edges, GL_LINES, 0, 
gdo->totedge * 2);
+               }
+               else if (drawAllEdges) {
+                       GPU_buffer_draw_elements(gdo->edges, GL_LINES, 0, 
gdo->loose_edge_offset * 2);
+               }
+               else {
+                       GPU_buffer_draw_elements(gdo->edges, GL_LINES, 0, 
gdo->tot_edge_drawn * 2);
+                       GPU_buffer_draw_elements(gdo->edges, GL_LINES, 
gdo->loose_edge_offset * 2, dm->drawObject->tot_loose_edge_drawn * 2);
+               }
        }
        GPU_buffer_unbind();
 }

_______________________________________________
Bf-blender-cvs mailing list
[email protected]
http://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to