2008-11-11 2 views
2

Я разрабатываю приложение с двумя окнами:Смешать opengl и directdraw в разных окнах того же приложения?

  • Окна 1: оказывает прямые поверхности DRAW
  • Окно 2: Я бы как иметь это делать чисто OpenGL называет

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

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

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

ответ

0

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

+1

У вас может быть два процесса с одним и тем же исполняемым файлом: просто используйте разную условную ветвь в дочернем процессе. – 2008-12-31 20:46:06

0

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

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

1

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

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

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

Смежные вопросы