Я пытаюсь создать инструмент, который будет рисовать фигуру в openGL, а затем изменить значения свойств этой фигуры в форме окна.Поэтому, если моя форма представляет собой прямоугольник, я создам форму, которая позволит пользователю контролировать размер, цвет и т. Д. Прямоугольника.Я написал код openGL на управляемом c ++ и форму на c #, и, поскольку некоторые из этих фигур стали более сложными, я решил создать для них списки отображения (как для повышения производительности, так и для прогнозирования).
Я определяю список отображения в конструкторе для фигуры и вызываю списки отображения в методе рендеринга.
Моя проблема в том, что мои списки отображения не запускаются вообще.Части, которые я отображаю вне списка отображения, будут отображаться, но части внутри списка отображения не будут отображаться.
Вот пример кода моего процесса:
//c# side
GLRectangle rect
public CSharpRectangle() {
rect = new GLRectangle();
}
//managed c++ side
public GLRectangle() {
width = 50;
height = 50;
//initialize more values
rectDL = glGenLists(1);
glNewList(rectDL, GL_COMPILE);
renderRect();
glEndList();
}
public render() {
//Draw border
glBegin(GL_LINE_LOOP);
glVertex2f(0, 0);
glVertex2f(width, 0);
glVertex2f(width, height);
glVertex2f(0, height);
glEnd();
//Draw interior
glCallList(rectDL);
}
private renderRect() {
glRectf(0,0,width,height);
}
В этом примере будет отрисована граница прямоугольника, но сам прямоугольник не будет отрисован ... если язамените список отображения просто вызовом метода, прямоугольник будет отображаться нормально.Кто-нибудь знает, почему это может происходить?