فهرست منبع

fixed major memory bug in the viewer

Former-commit-id: fcb0b13a81ab5a0fe42a38a1be0114b322edffdb
Daniele Panozzo 7 سال پیش
والد
کامیت
39fe93600e
1فایلهای تغییر یافته به همراه3 افزوده شده و 3 حذف شده
  1. 3 3
      include/igl/viewer/OpenGL_state.cpp

+ 3 - 3
include/igl/viewer/OpenGL_state.cpp

@@ -115,7 +115,7 @@ IGL_INLINE void igl::viewer::OpenGL_state::set_data(const igl::viewer::ViewerDat
 
 
       if (dirty & ViewerData::DIRTY_AMBIENT)
       if (dirty & ViewerData::DIRTY_AMBIENT)
       {
       {
-        V_ambient_vbo.resize(3,data.F.rows()*3);
+        V_ambient_vbo.resize(4,data.F.rows()*3);
         for (unsigned i=0; i<data.F.rows();++i)
         for (unsigned i=0; i<data.F.rows();++i)
           for (unsigned j=0;j<3;++j)
           for (unsigned j=0;j<3;++j)
             V_ambient_vbo.col (i*3+j) = data.V_material_ambient.row(data.F(i,j)).transpose().cast<float>();
             V_ambient_vbo.col (i*3+j) = data.V_material_ambient.row(data.F(i,j)).transpose().cast<float>();
@@ -123,7 +123,7 @@ IGL_INLINE void igl::viewer::OpenGL_state::set_data(const igl::viewer::ViewerDat
 
 
       if (dirty & ViewerData::DIRTY_DIFFUSE)
       if (dirty & ViewerData::DIRTY_DIFFUSE)
       {
       {
-        V_diffuse_vbo.resize(3,data.F.rows()*3);
+        V_diffuse_vbo.resize(4,data.F.rows()*3);
         for (unsigned i=0; i<data.F.rows();++i)
         for (unsigned i=0; i<data.F.rows();++i)
           for (unsigned j=0;j<3;++j)
           for (unsigned j=0;j<3;++j)
             V_diffuse_vbo.col (i*3+j) = data.V_material_diffuse.row(data.F(i,j)).transpose().cast<float>();
             V_diffuse_vbo.col (i*3+j) = data.V_material_diffuse.row(data.F(i,j)).transpose().cast<float>();
@@ -131,7 +131,7 @@ IGL_INLINE void igl::viewer::OpenGL_state::set_data(const igl::viewer::ViewerDat
 
 
       if (dirty & ViewerData::DIRTY_SPECULAR)
       if (dirty & ViewerData::DIRTY_SPECULAR)
       {
       {
-        V_specular_vbo.resize(3,data.F.rows()*3);
+        V_specular_vbo.resize(4,data.F.rows()*3);
         for (unsigned i=0; i<data.F.rows();++i)
         for (unsigned i=0; i<data.F.rows();++i)
           for (unsigned j=0;j<3;++j)
           for (unsigned j=0;j<3;++j)
             V_specular_vbo.col(i*3+j) = data.V_material_specular.row(data.F(i,j)).transpose().cast<float>();
             V_specular_vbo.col(i*3+j) = data.V_material_specular.row(data.F(i,j)).transpose().cast<float>();