0
嘗試使用GLU對多邊形進行鑲嵌時存在問題。頂點回調總是回調gluTessVertex定義的最後一個頂點。看起來存儲在GLdouble v [3]中的值在for循環的每次迭代中都獲得GC'd。我如何存儲每個GLdouble v [3],以便它不會被GC'd?在循環外存儲C++數組
for(int i = 0; i < vtxcnt; i++)
{
float lon = dbls[i * 2];
float lat = dbls[(i * 2)+1];
GLdouble v[3] = {lon, lat, 0.0f};
gluTessVertex(tess, v, v);
}
*編輯:這似乎是解決這個問題... *
GLdouble *vtxs = new GLdouble[vtxcnt * 3];
for(int i = 0; i < vtxcnt; i++)
{
lon = dbls[i * 2];
lat = dbls[(i * 2)+1];
vtxs[(i * 3) + 0] = (double)lon;
vtxs[(i * 3) + 1] = (double)lat;
vtxs[(i * 3) + 2] = (double)0;
gluTessVertex(tess, &vtxs[(i * 3) + 0], &vtxs[(i * 3) + 0]);
}
標準C++根本沒有垃圾收集器。 – Mat