pilas.fps

Package pilas :: Module fps |
[hide private]
[frames] | no frames]

# Source Code for Module pilas.fps

     1  # -*- encoding: utf-8 -*-
     2  from PyQt4 import QtCore
     3
     4 -class FPS(object):
     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          # TODO: Eliminar el argumento usar_modo_economico que no se está usando.
    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
    23 -    def actualizar(self):
    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              # wait
    41              return 0
    42
    43 -    def _procesar_fps(self, actual):
    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
    50 -    def obtener_cuadros_por_segundo(self):
    51          "Retorna la cantidad de cuadros por segundo."
    52          return self.cuadros_por_segundo
    53