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