Я пытаюсь создать инструмент, который будет нарисовать форму в 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);
}
В этом примере, граница прямоугольника будет оказана, но сам прямоугольник не будет оказан ... если я заменю список отображения с просто вызовом метода, прямоугольник отображается отлично. Кто-нибудь знает, почему это может произойти?
Не могли бы вы также указать функцию renderRect? Это может быть полезно. – Dany
Добавлен метод renderRect. – eternalking