ПрограммированиеФорумГрафика

wglShareList и миф рендера в несколько окон (комментарии) (3 стр)

Страницы: 1 2 3
#30
12:23, 22 окт 2013

MrShoor
> У меня все окна в одном потоке, я многопоточного рендера вообще стараюсь
> избегать, ибо карточка как правило все равно одна.
Нигде и никогда в этой теме я не упоминал многопоточность.

MrShoor
Данная тема про то, что не надо работать с многооконными системами через wglShareLists и не более того. :)

#31
12:26, 22 окт 2013

Данная тема про то, что не надо работать с многооконными системами через wglShareLists и не более того. :)

Но лучше вообще не работать с многими окнами, а по возможности создавать одно окно, и рендерить в разные его части. Классический пример как делать ненадо: http://www.gamedev.ru/code/forum/?id=181895&page=2#m16

#32
12:29, 22 окт 2013

MrShoor
> по возможности создавать одно окно, и рендерить в разные его части.
эээ. не согласен. :)
но ок, мнение имеет право на существование.

#33
12:39, 22 окт 2013

@!!ex
> > Ну то есть ты утверждаешь, что 8 раз сменить рендер контекст и делать 8 раз
> > SwapBuffers быстрее, чем 8 раз сменить glViewport и сделать 1 раз
> > SwapBuffers?
> > Ха ха.
> не быстрее. ровно столько же по времени.
не верю.

#34
13:19, 22 окт 2013

@!!ex
Ну не может быть медленным вывод на 1окно, но в просто его разные области через разные viewport быть медленнее переключения контекстов и свапбуферов. Делал приложение, где как в максе экран на 4 части разделен через вьювпорты, все летало, а вот при лишних свапбуферах фпс начинает проседать.

#35
16:00, 22 окт 2013

Еретик
Твой пример не совсем тоже самое.
Работа на физически разных мониторах по разному реализована.
По факту некоторые драйвера все равно делают отдельный бэк буфер и отдельный своп на каждои из мониторов. В этой ситуации фактически делать одно огромное окно или несколько отельных - не имеет никакой разницы.

#36
17:23, 22 окт 2013

MrShoor
>>Но лучше вообще не работать с многими окнами, а по возможности создавать одно окно, и рендерить в разные его части.
Многооконный рендер нужен например для серьезного редактора.
Разбиение вида на 4 (верх, лево, право, перспектива) естественно делается в одном окне при помощи glViewport, но для игрового редактора такое редко нужно, а вот многооконность нужна.
Ибо приятно открыть карту поставить там объекты, а потом открыть редактор объекта на втором мониторе и поднастраивая его параметры видеть изменения в 2х окнах и редакторах сразу.

#37
17:54, 22 окт 2013

@!!ex
> wglMakeCurrent занимает 0мс
Вот поэтому я и написал, что совет отнюдь не полезный. wglMakeCurrent в зависимости от различных условий может занимать от 0 до десятков миллисекунд.

#38
17:58, 22 окт 2013

eXmire
Суть совета(для тех, кто не понял): не использовать wglShareLists

#39
12:09, 24 окт 2013

Тоже нагревался не раз на  wglShareLists
Поэтому давно юзаю один RC на разные DC - работает изумительно.

Тут вы зачем-то обсуждаете два RC без шаринга ресурсов - но это же отдельный вопрос.
Я вот столкнулся именно с проблемой wglShareLists - просто невозможно было выполнить условие её исползования (чето там про предварительную загрузку или создание)

Прошло более 2 лет
#40
13:08, 22 фев 2016

Извиняюсь - поднимаю старую тему...
И всё таки интересует легальность данного способа. На большей части машин прокатывает, но у меня есть ноутбук (даже два: с XP и W7) - на котором приложение падает с крахом при попытке создать ещё одно окно для рендеринга. В ноуте используется встроенная графика на Celeron T и отсутствует большинство расширений OpenGL. Падает и на Windows XP и на Windows 7. Причину не выяснял - там не установлен необходимый софт, использовал чисто для испытаний. Рендеринг прекращается, как только создаётся второе окно и при завершении софта - куча утечек объектов созданных мной (видимо умирает поток рендера и объекты не освобождаются).

Страницы: 1 2 3
ПрограммированиеФорумГрафика

Тема в архиве.