Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Потоки и OpenGL

4.7K
05 октября 2004 года
kelz
42 / / 21.06.2004
Есть несколько окошек в которых что нибудь рисуется, есть поток который постоянно занимается обновлением картинки в этих окошках, точнее он вызывает функции отрисовки из объектов содержащих те самые окошки. Первым делом функция рисования вызывает wglMakeCurrent(hdc,hglrc) .
Так вот создалось первое окно, получились и создались контексты hdc и hglrc, инициализировались параметры opengl и адрес функции отрисовки сообщается потоку. Результат - отрицательный: wglMakeCurrent возвращает false, GetLastError - 170 (The requested resource is in use) - в окошке понятное дело рисуется лажа всякая.
Далее создается второе окно - описанная ситуация начинает твориться с ним, а с первым все вдруг становиться в порядке
Создаем третье окно - второе с первым работают, третье - нет.
Два дня бьюсь не могу победить эту фичу.
Поток вызывает ф-ю отрисовки между функциями EnterCriticalSection, LeaveCriticalSection, так что дело не должно быть в неправильной синхронизации (хотя... кто знает?) Может кто пнет в нужном направлении?
8.2K
05 октября 2004 года
DigitalWolF
12 / / 28.08.2004
Не уверен что всё правильно понял, но кроме того что перед отрисовкой вызывать wglMakeCurrent(hdc,hglrc) надо еще после отрисовки вызывать wglMakeCurrent(0,0) чтобы освободить контекст, потому что RenderingContext может быть Current только для одного потока одновременно.
4.7K
07 октября 2004 года
kelz
42 / / 21.06.2004
Цитата:
Originally posted by DigitalWolF
... надо еще после отрисовки вызывать wglMakeCurrent(0,0) чтобы освободить контекст...


Не знаю, я никогда не вызывал ее и все работало.
Перенес тело потока в ф-ю Execute VCL класса TThread, вместо критической секции - Synchronize и все заработало так как надо. А в чем была проблема так и не разобрался

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог