Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

OpenGL и WinApi


parovoZZ ©   (2004-06-28 22:59:00) 

Решил поизучать графику. ВотЪ. И сразу возник тупик:
Почему вот это работает (т.е. функция  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.


parovoZZ   (2004-07-01 10:51:00) [1]

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


jack128   (2004-07-01 01:45:00) [2]


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


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

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


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

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


jack128   (2004-06-28 23:46:00) [5]

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


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


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


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


Наверх

Титульная страница Поиск, карта сайта Написать письмо