Subversion Repositories Kolibri OS

Rev

Blame | Last modification | View Log | Download | RSS feed

  1. ;include '../../../../../KOSfuncs.inc'
  2.  
  3. ;x,y - êîîðäèíàòû âûâîäà FPS íà îêíî
  4. ;âîçâðàùàåò âðåìß â ñîòûõ äîëßõ ñåêóíäû çàòðà÷èâàåìîå íà 1 öèêë
  5.  
  6. time1 dd 0 ;int
  7. time2 dd 0 ;int
  8. fps1 dd 0 ;int
  9. timerend dd 0 ;int
  10.  
  11. ;ôóíêöèß îïðåäåëåíèß FPS
  12. proc Fps uses ebx ecx edx esi, x:dword, y:dword
  13. locals
  14.         tr dd ?
  15. endl
  16.  
  17.         ;îïðåäåëßåì âðåìß ïðîøåäøåå ñ ìîìåíòà çàïóñêà ñèñòåìû
  18.         mcall SF_SYSTEM_GET,SSF_TIME_COUNT
  19.         mov [time1],eax
  20.  
  21.         cmp dword[timerend],0
  22.         jne @f
  23.                 mov eax,[time1]
  24.                 mov [time2],eax
  25.                 mov [timerend],eax
  26.         @@:
  27.        
  28.         mov eax,[time1]
  29.         sub eax,[timerend]
  30.         mov [tr],eax
  31.  
  32.         mov eax,[time1]
  33.         sub eax,[time2]
  34.         cmp eax,100 ;åñëè ïðîøëî ìåíåå 1 ñåêóíäû
  35.         jge .else
  36.                 inc dword[fps1] ;óâåëè÷èâàåì ñ÷åò÷èê fps
  37.                 jmp @f
  38.         .else:
  39.                 ;âûâîäèì ÷èñëî fps
  40.                 mov ebx,[x]
  41.                 shl ebx,16
  42.                 add ebx,23
  43.                 mov ecx,[y]
  44.                 shl ecx,16
  45.                 add ecx,7
  46.                 mcall SF_DRAW_RECT,,,0x00555555
  47.                 mov edx,[x]
  48.                 shl edx,16
  49.                 add edx,[y]
  50.                 mcall SF_DRAW_NUMBER,4 shl 16,[fps1],,0xfafafa
  51.                 mov dword[fps1],0
  52.                 mov eax,[time1]
  53.                 mov [time2],eax
  54.         @@:
  55.        
  56.         mov eax,[time1]
  57.         mov [timerend],eax
  58.         mov eax,[tr]
  59.         ret
  60. endp
  61.