| dimedrol 
								Помогающий    Offline | 
								|  | «  : 23-04-2005 14:42 »  |  | 
 
 Доброго дня. Никак не мог придумать куда кинуть эту тему, решил сюда, если что не сердитесь..Давно не программировал гафику, а тут вот надобно написать небольшую оконную программку с OpenGL. Проблема в том что gl функции можно вызывать лишь в потоке создавшем gl контекст, а для рендеринга я использую отдельный поток, тк меня не устраивает idle от цикла обработки сообщений. Однако кучу команд надо вызывать в ответ на реакцию от различных контролов, те по сути в WndProc-ах различных диалогов, тут и возникает проблема.. Я бы мог организовать очередь в которую складывались бы запросы на нужное действие и которую разбирал бы рисующий поток, но хочется сделать по элегантней, не так громоздко, тк таких действий многовато.. В последний раз на gl писал под Win98, там придумал такой трюк:
 у рисующего потока подсматриваем содержимое сегментного регистра FS, и при необходимости выполнить работу "от лица" этого потока временно загружаем это значение в FS в другом потоке. В XP же у всех потоков в FS-одинаковое значение, различаются базовые адреса сегментов. Копирование содержимого сегментов ничего не дало..Вопрос собственно такой, а можно ли выполнить данные действия стандартными средствами, те сделать сабж?
 |