1
2 from PyQt4 import QtCore
3
5 """Representa un controlador de tiempo para el mainloop de pilas."""
6
7 - def __init__(self, fps, usar_modo_economico):
8 """Inicia el administrador de cuadros por segundo.
9
10 :param fps: Cantidad de cuadros por segundo esperados.
11 :param usar_modo_economico: Si vale True intenta reducir la cantidad de recursos utilizados.
12 """
13
14 self.cuadros_por_segundo = "??"
15 self.frecuencia = 1000.0 / fps
16 self.timer = QtCore.QTime()
17 self.timer.start()
18 self.siguiente = self.timer.elapsed() + self.frecuencia
19 self.cuadros = 0
20 self.ultimo_reporte_fps = 0
21 self.cuadros_por_segundo_numerico = 0
22
24 actual = self.timer.elapsed()
25
26 if actual > self.siguiente:
27 cantidad = 0
28
29 while actual > self.siguiente:
30 self.siguiente += self.frecuencia
31 cantidad += 1
32 self._procesar_fps(actual)
33
34 if cantidad > 10:
35 cantidad = 10
36
37 self.cuadros += 1
38 return cantidad
39 else:
40
41 return 0
42
44 if actual - self.ultimo_reporte_fps > 1000.0:
45 self.ultimo_reporte_fps += 1000.0
46 self.cuadros_por_segundo = str(self.cuadros)
47 self.cuadros_por_segundo_numerico = self.cuadros
48 self.cuadros = 0
49
51 "Retorna la cantidad de cuadros por segundo."
52 return self.cuadros_por_segundo
53