Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.08.08;
Скачать: CL | DM;

Вниз

OpenGL и WinApi   Найти похожие ветки 

 
parovoZZ ©   (2004-06-28 22:59) [0]

Решил поизучать графику. ВотЪ. И сразу возник тупик:
Почему вот это работает (т.е. функция  glDraw вызыается с максимально возможной частотой):
while not finished do
 begin
   if (PeekMessage(msg, 0, 0, 0, PM_REMOVE)) then
   begin
     if (msg.message = WM_QUIT) then    
       finished := True
     else
     begin                              
 TranslateMessage(msg);
       DispatchMessage(msg);
     end;
   end
   else
   begin
     glDraw();                          
     SwapBuffers(h_DC);                
     if (keys[VK_ESCAPE]) then          
       finished := True
     else
       ProcessKeys;                    
   end;
 end;
 glKillWnd(FALSE);
 Result := msg.wParam;
end;


а вот это нет (та же функция вызывается только тогда, когда мы что-то делаем)
begin
glCreateWnd (800, 600, false, 32);

While GetMessage (Msg, 0, 0, 0) do
 begin
  glDraw();
  SwapBuffers(h_DC);
 
  DispatchMessage (Msg);
 end;    
 glKillWnd(FALSE);
end.


 
Игорь Шевченко ©   (2004-06-28 23:40) [1]


> Почему вот это работает


Потому что кроме графики неплохо бы еще и windows поизучать. В первом случае функция вызывается, когда отсуствует обработка сообщений, во втором вообще черт знает что происходит


 
jack128 ©   (2004-06-28 23:46) [2]

ИМХО первый вариант - хуже. Создает иллюзию, что все нормально работает - но бред!!! И вообще - ходячий тормоз для системы.. На Королевстве Делфи были выложены примеры Краснова (сорри если фамилию спутал) - скачай и посмотри как он делает..


 
parovoZZ ©   (2004-06-29 21:00) [3]

Ну ясно, будем дальше изучать.


 
parovoZZ ©   (2004-07-01 00:17) [4]

...А он делает с помощью VCL. Не подходит, хочу WinApi.


 
jack128 ©   (2004-07-01 01:45) [5]


> ...А он делает с помощью VCL. Не подходит, хочу WinApi.
?? там почти все примеры даются в двух вариантах - на апи и всл..


 
parovoZZ ©   (2004-07-01 10:51) [6]

Спасиб, разобрался. Я так понял, что лучше всё делать с помощью таймера, а то что в цикле - это для получения максимальной скорости?



Страницы: 1 вся ветка

Текущий архив: 2004.08.08;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.022 c
14-1090508707
VictorT
2004-07-22 19:05
2004.08.08
Подцепил вирус, не могу вылечить, не знаю, что вообще за вирус...


8-1085061971
Nic2
2004-05-20 18:06
2004.08.08
JPG ---> GIF


8-1085311364
ттт
2004-05-23 15:22
2004.08.08
Как в Дельфи работать с изображениями серой градации


14-1090262286
X9
2004-07-19 22:38
2004.08.08
Lucent Win Modem в Mandrake Linux 9.1


14-1090374652
MSSQL
2004-07-21 05:50
2004.08.08
Музыка регионов