Смешать opengl и directdraw в разных окнах одного и того же приложения? - PullRequest
2 голосов
/ 12 ноября 2008

Я разрабатываю приложение с двумя окнами:

  • Окно 1: визуализация поверхностей прямого рисования
  • Окно 2: я бы хотел бы , чтобы он делал чистые вызовы OpenGL

Я не хочу смешивать OpenGL и DirectDraw в одном окне.

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

Итак, мой вопрос: может ли одно приложение иметь окно, выполняющее прямое рисование, а другое - OpenGL?

Ответы [ 3 ]

1 голос
/ 13 ноября 2008

Не должно быть проблем с запуском обоих в одном и том же процессе, исключая, конечно, ошибки в видеодрайвере ICD.

Вероятно, самый быстрый способ узнать это - закомментировать код OpenGL и проверить, все равно ли происходит сбой приложения.

Или вынудите ваш OpenGL-код использовать реализацию Microsoft - это программное обеспечение на базе XP и Direct3D на основе Vista - которое не должно иметь конфликтов. Если проблема с ddraw все еще существует, скорее всего, это не ошибка OGL.

0 голосов
/ 12 ноября 2008

Хмммм ..... Я выделил материал OpenGL для одного потока. Это то, что вы имели ввиду? Или, я думаю, вы говорите начать новый процесс.

Проблема в том, что я вижу сбой кода DirectDraw на BLT. Это случайно, но я обеспокоен тем, что материал OpenGL убивает его.

0 голосов
/ 12 ноября 2008

Наихудший случай: ваша основная программа запускает рендеринг одного типа (скажем, DirectDraw). Пусть он породит процесс, который выполняет другой тип (OpenGL). Общайтесь между двумя с помощью труб. Это потребует от вас двух процессов, и это может быть чем-то вроде обходного пути, но это будет по крайней мере работать.

...