0
루프의 MEX 파일 (matlab)에서 다음 함수를 호출했습니다. glColor3f에서 메모리 누수가 발생합니다. 메모리가 계속 증가합니다. 그것을 해결할 생각은 없습니까?glColor3f가 메모리 누수를 일으키는 이유
static GLuint createDisplayListWithColor(double *fM, int fNum, double *vM, int vNum, GLfloat *ColorM, int colorNum)
{
GLuint theShape;
int i;
double *fp;
int vIndex, fNum2, vNum2;
fNum2 = fNum * 2;
vNum2 = vNum * 2;
theShape = glGenLists (1);
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glNewList(theShape, GL_COMPILE);
glBegin (GL_TRIANGLES);
for (i = 1; i <= fNum; i++) {
fp = fM + i-1;
vIndex = (int)fp[0] - 1;
glColor3f(ColorM[vIndex], ColorM[vIndex + vNum], ColorM[vIndex + vNum2]);
glVertex3d(vM[vIndex], vM[vIndex + vNum], vM[vIndex + vNum2]);
vIndex = (int)fp[fNum] - 1;
glColor3f(ColorM[vIndex], ColorM[vIndex + vNum], ColorM[vIndex + vNum2]);
glVertex3d(vM[vIndex], vM[vIndex + vNum], vM[vIndex + vNum2]);
vIndex = (int)fp[fNum2] - 1;
glColor3f(ColorM[vIndex], ColorM[vIndex + vNum], ColorM[vIndex + vNum2]);
glVertex3d(vM[vIndex], vM[vIndex + vNum], vM[vIndex + vNum2]);
}
glEnd();
glutSwapBuffers();
glEndList();
return theShape;
}
작동합니다. 고마워요! – user2613981
@ user2613981 : BTW : glutSwapBuffers는 목록 컴파일에서 의미가 없습니다. SwapBuffers는 OpenGL 작업이 아닙니다. – datenwolf