Главная страница
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.025 c
1-1090434297
GanibalLector
2004-07-21 22:24
2004.08.08
ШТРИХ-КОД


1-1090875187
ANT
2004-07-27 00:53
2004.08.08
Размер имеет значение!


3-1089724493
Helga
2004-07-13 17:14
2004.08.08
Мастера! помогите девушке разобраться с Rave report!


14-1090360772
matt
2004-07-21 01:59
2004.08.08
Зеленый чай


3-1089799454
Эдик Дятлов
2004-07-14 14:04
2004.08.08
Как сохранить и восстановить базу Sybase Anywhere 7.0