два simpleOpenGlControl в одном проекте
Задача: Построить в одном проекте в двух разных simpleOpenGlControl две поверхности(например два цилиндра).
Делаю поверхности, если по отдельности то всё замечательно сроит, но вместе одну поверхность никак не хочет строить, заметил что не строит ту которая идет первая:
public Form1()
{
InitializeComponent();
simpleOpenGlControl1.InitializeContexts();//тут пусто
simpleOpenGlControl2.InitializeContexts();//эту построит
}
В чём проблема подскажите пожалуйста.
А вообще поверхность строю вот так:
//Фоновая заливка
Gl.glClear(Gl.GL_COLOR_BUFFER_BIT | Gl.GL_DEPTH_BUFFER_BIT);
// задание матричного режима, GL_MODELVIEW - объектно-видовая матрица
Gl.glMatrixMode(Gl.GL_MODELVIEW);
Gl.glLoadIdentity(); // очистка матрицы
/*
* помещение текущей матрицы в стек матриц
* Таким образом осуществляется перемещение отрисовываемой сферы в пространстве,
* не изменяя матрицу, отвечающую за положение камеры (наблюдателя).
* Если не использовать такой подход, то с каждым визуализированным кадром,
* камера будет перемещаться, и скоро ее вообще нельзя будет найти.
*/
Gl.glPushMatrix();
// перемещение объекта на 6 едениц по оси Z
Gl.glTranslated(0, 0, -6);
// поворот сцены на 45 градусов по двум осям X и Y
Gl.glRotated(45, 1, 1, 0);
Gl.glColor3d(0, 1, 0); // устанавливаем цвет объекта
// отрисовка сферы с помощью библиотеки FreeGLUT
Glut.glutWireSphere(2, 32, 32);
// возврат сохраненной в стеке матрицы
Gl.glPopMatrix();
// ожидание, пока библиотека OpenGL завершит визуализацию кадра, очистка буфера
Gl.glFlush();
Подозреваю что тут надо смотреть в сторону многопоточности, но как это реализовать не могу понять