Я пытаюсь сделать движок с несколькими экземплярами в C ++ с оболочкой для C #.
В сделал движок таким образом, что есть функция типа CreateEngine, которая принимает в качестве параметра дескриптор окна или элемента управленияна котором я хочу инициализировать движок.
В C # я создал пользовательский элемент управления, который инициализирует opengl для рисования и имеет событие рендеринга.
Если я создаю только один экземпляр элемента управления, все работает нормально, но потом, когда ясоздайте другое, помещенное в другое окно, второе мигает черным (чередует чистый цвет экрана с черным, хотя в моем коде нет ссылки на черный).Никто из них ничего не рисует.Вместо этого они просто очищают цвет экрана.Первый элемент управления очищает пространство до синего, а второй - до красного (теоретически).Поскольку рисовать нечего, я не думаю, что мне нужно делиться списками wgl или чем-то другим (я все равно сделал это, но комментирование этой части кода ничего не решит).
Некоторые думают, что заметили: я не совсем OpenGL n00b, но это меня действительно озадачивает.Я также проверил все, что я знаю в этой области.Проблема появляется только тогда, когда больше экземпляров элемента управления.В C # я переписал событие OnPaint, очистив область просмотра, и аннулировал его каждые 33 миллисекунды.Я также переписал OnPaintBackground, так как это, кажется, вызывает проблемы с мерцанием.