Я разрабатываю приложение с двумя окнами:
Я не хочу смешивать OpenGL и DirectDraw в одном окне.
Из FAQ по Open GL (http://www.opengl.org/resources/faq/technical/mswindows.htm) я вижу, что вы не можете смешивать вызовы API в одном окне.
Итак, мой вопрос: может ли одно приложение иметь окно, выполняющее прямую отрисовку, а другое - OpenGL?





Наихудший случай: пусть ваша основная порождение программы выполняет один тип рендеринга (скажем, DirectDraw). Пусть он порождает процесс, который выполняет другой тип (OpenGL). Общайтесь между ними с помощью труб. Это потребует наличия двух процессов, и это может быть своего рода обходным решением, но, по крайней мере, это будет работать.
@JudgeMaygarden: Верно, я имел в виду «два процесса»
Хммм ... Я изолировал материал OpenGL от одного потока. Это то, что вы имели ввиду? Или, я думаю, вы говорите начать новый процесс.
Проблема: я вижу сбой кода DirectDraw на BLT. Это случайно, но я обеспокоен тем, что материал OpenGL убивает его.
Не должно возникнуть проблем с запуском обоих в одном процессе, за исключением, конечно, ошибок в видеодрайвере ICD.
Вероятно, самый быстрый способ узнать об этом - это закомментировать код OpenGL и проверить, продолжает ли приложение сбой.
Или заставьте свой код OpenGL использовать реализацию Microsoft - это программное обеспечение, основанное на XP и Direct3D на основе Vista, - которое не должно иметь конфликтов. Если проблема с ddraw все еще существует, скорее всего, это не ошибка OGL.
У вас может быть два процесса с одним и тем же исполняемым файлом: просто используйте другую условную ветвь в дочернем процессе.