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

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

VSync


Evgeniy_K ©   (2004-06-28 20:06:00) 

У меня был полнооконный режим 800x600. Я сделал оконный и прописал
"переключение страниц" через блиттинг. У меня FPS вырос с 75 до 130.
Как-то подозрительно. Сначала думал из-за того, что окно занимает не
всю область экрана. Тогда я сделал окно 1024x768. И по-прежнему FPS
большой. С чем это может быть связано? По логике он должен быть меньше
да и везде так написано. Окно следующее:

function windowinit(caption:pchar; width, height: dword): hwnd;
var
 wc: twndclass;
begin
 zeromemory(@wc,sizeof(twndclass));
 with wc do begin
   lpfnWndProc:= @wndproc;
   style:= CS_VREDRAW or CS_HREDRAW;
   hInstance:= hinstance;
   hIcon:= loadicon(0,IDI_APPLICATION);
   hCursor:= loadcursor(0,IDC_ARROW);
   hbrBackground:= getstockobject(LTGRAY_BRUSH );
   lpszClassName:= caption;
 end;
 if registerclass(wc) = 0 then begin
   messagebox(0,'reg class - incorrect','',mb_ok);
   result:=0;
   exit;
 end;
 result:= createwindow(caption, caption,
                       WS_POPUP,
                       0, 0,
                       width, height,
                       0, 0,
                       wc.hInstance, nil);
end;


Sapersky   (2004-08-04 01:41:00) [1]

а нафига это надо :)

Для тестирования скорости (производительности приложения/железа) это надо. В принципе, можно замерять не время между кадрами, а только время рендеринга. Но это муторнее, к тому же, лучше, когда скорость "на глаз" соответствует измеряемой.

Ну и ещё вариант - если всё очень уж тормозит, можно таким образом выжать немного дополнительных FPS.

всё начинает очень противно мигать, смотреть невозможно.

Оно, случаем, не прямо на primary рисуется? :)


NikeOLD   (2004-08-03 22:19:00) [2]

А нафига надо было отключать?
Если у тебя мигает, то и других может. Мне бы это очень не понравилось - стер бы игру сразу же.


cyborg   (2004-08-03 21:13:00) [3]


>  [10] MANGOL   (03.08.04 20:58)
>
> > cyborg ©   (03.08.04 20:36)
>
>
> Не понял... что, так и должно мигать?
> а нафига это надо :)


Почитай чего нибудь по теме "как показывает кинескоп".


MANGOL   (2004-08-03 20:58:00) [4]


> cyborg ©   (03.08.04 20:36)


Не понял... что, так и должно мигать?
а нафига это надо :)


cyborg   (2004-08-03 20:36:00) [5]


> [8] MANGOL   (03.08.04 20:35)

Это отключённая видеосинхронизация ;)


MANGOL   (2004-08-03 20:35:00) [6]

А вот у меня если отключить синхронизацию, всё начинает очень противно мигать, смотреть невозможно.
Что это? Можно ли это как-то исправить?


NikeOLD   (2004-08-03 20:10:00) [7]

..._DONOTWAIT  - когда результат операции не важен, т.е. не отрендерилось и хрен на него
..._WAIT - чтобы рендерилось с гарантией


Evgeniy_K   (2004-08-03 19:25:00) [8]

Тогда вопрос, когда лучше использовать ..._DONOTWAIT, а когда ..._WAIT


Xerx   (2004-07-16 04:18:00) [9]

>Magikan
А ты можешь с описанием переменных?


Magikan   (2004-07-15 03:30:00) [10]


 wglSwapIntervalEXT2:=wglSwapIntervalEXT_Func(SDL_GL_GetProcAddress('wglSwapIntervalEXT'));
 if @wglSwapIntervalEXT2<>nil then
   wglSwapIntervalEXT2(0);


kerby   (2004-06-29 08:11:00) [11]

Sync    : wglSwapIntervalEXT(1);
NoSync  : wglSwapIntervalEXT(0);


rs.falcon   (2004-06-28 21:47:00) [12]

Сразу вопрос, а как включить или выключить синхронизацию в OpenGL ?


Sapersky   (2004-06-28 20:55:00) [13]

См. название собственного вопроса :)

Отключить в полноэкранном режиме -
FPrimarySurface.Flip(FBackBuffer, DDFLIP_NOVSYNC or DDFLIP_DONOTWAIT);


Наверх

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