-
Пишу программу, пишу, и дело наконец-то дошло до вывода графики на экран средствами OpenGL'a. Использовал стрые и проверенные функции инициализации контента и формата пикселей.
В других прогах работает, а в этой - нет :( Копировал инициализацию со 100% рабочих программ - эффекта 0.
Дебагерром проверил - заход на рисование по таймеру проихсодит. но вот беда - экран почему-то не очищается :( То есть на экране остается результат работы других программ :(
Исходники - в аттаче.
Собственно прорисовка идет в файле "vgui_class.pas" в процедуре "TVGUIBase.Paint".
Проблему описал здесь: http://forum.mirgames.ru/index.php?act=ST&f=22&t=5148&st=0
там же есть и исходники: http://forum.mirgames.ru/index.php?act=Attach&type=post&id=4870 -
@!!ex © (01.07.08 10:16) [1]Copy&Paste не рулит.
ищи проблему в инициализации. -
andreil (01.07.08 10:31) [2]Может кто поможет решить проблему?
Я нашел выход, но он оччень корявый: просто-напросто вызов процедуры рисования переместил в конец цикла обработки сообщений. Рисует нормально, но это не выход, тк раньше рисование было на таймере (MMSystem'овском). Может дело в таймере? -
grisme (01.07.08 12:18) [3]реорганизуй принцип Win32 приложения. Рисуй в параллельном потоке. Сообщения оставь на основной поток.
-
ТЕ надо сделать Thread для рисования? Это можно сделать :)
-
@!!ex © (01.07.08 21:59) [5]Только я делаю так:while not finished do begin
OSAL_UpdateWNDMessages(); //Обработка оконных сообщний
Environment.Render(); //Главный рендер
end;
? -
Я вывел в отдельный поток для удобства дальнейшей работы программы :)
Чуть что - одной диррективой компилятора этот поток становится "псевдо".
Все, тема закрыта.