По крайней мере, на большинстве систем (например, Windows, MacOS) система окон создает виртуальный рабочий стол с различными мониторами, отображаемыми на разные части рабочего стола. Если вы хотите, вы можете (например) создать одно большое окно, которое будет охватывать все три экрана. Если вы установите это окно для использования OpenGL, почти все, что использует OpenGL (почти наверняка, включая Ogre3D), будет работать нормально, хотя в некоторых случаях создание такого разрешения вывода может налагать графическую карту на то, что она немного медленнее, чем обычно ,
Если вы хотите иметь дело с отдельным окном на каждом дисплее, все может быть немного сложнее. Сам OpenGL не пытается (даже попытаться) определить, как обрабатывать отображение в нескольких окнах - это зависит от набора функций для конкретной платформы. Например, в Windows у вас есть контекст рендеринга для каждого окна, и вам нужно использовать WGLMakeCurrent
, чтобы выбрать, какой контекст визуализации вы рисуете в любой момент времени.
Если память используется, порт Windows Ogre3D поддерживает несколько контекстов рендеринга, поэтому это тоже не должно быть проблемой. Я ожидаю, что он может работать с несколькими окнами и в других системах, но я не использовал его ни в каких других системах, поэтому я не могу сказать с какой-либо определенностью.
Мое ближайшее предположение, однако, заключается в том, что поддержка трех мониторов будет почти несущественной в ваших общих усилиях по развитию. Конечно, это делает означает, что вы (можете сказать своему начальнику) нуждаются в установке тройного монитора для разработки и тестирования, что, конечно же, не плохо! :-)
Редактировать: OpenGL сам не указывает ничего о полноэкранных окнах и обычных окнах. Если память служит, по крайней мере, для Windows, чтобы получить полноэкранное приложение, вы используете ChangeDisplaySettings
с CDS_FULLSCREEEN
. После этого он рассматривает практически весь виртуальный рабочий стол как одно окно. Я не помню, чтобы сделать это с несколькими мониторами, поэтому я не могу сказать много с какой-либо большой уверенностью.
Здравствуй, Джерри, ты за свой ответ. Это не обязательно отдельное окно для каждого дисплея, потому что оно должно быть полноэкранным для каждого дисплея (я не уверен, что этот вид вывода зависит от окна или обходит систему окон). Каково твое мнение? – user16120
То же самое верно для LINUX: если вы используете несколько мониторов, вы обычно используете Xinerama, который создает один огромный виртуальный экран. – Tilo