このページは大阪弁化フィルタによって翻訳生成されたんですわ。

翻訳前ページへ


cantidades de pila, no puede hacer llamadas al sistema operativo o usar funciones de la biblioteca de C, o contener c?igo con operaciones en coma flotante, y debe ejecutarse r疳idamente. No intente hacer cosas complicadas con su temporizador: como regla general deber? ajustar un par de valores y actuar en consecuencia de 駸tos dentro de su bucle de control principal.

En un entorno DOS en modo protegido como djgpp, la memoria es virtualizada LOCK_FUNCTION(nombre_de_funcion) pueden ser usadas para simplificar esta tarea. Por ejemplo, si quiere que su temporizador incremente una variable de contador, deber? escribir:

      volatile int contador;

      void mi_temporizador()
      {
         contador++;
      }

      END_OF_FUNCTION(mi_temporizador);
y en su c?igo de inicio deber? bloquear la memoria de esta manera:
      LOCK_VARIABLE(contador);
      LOCK_FUNCTION(mi_temporizador);
Obviamente esto puede ser extra? si usa estructuras de datos complicadas y llama otras funciones desde su temporizador, por lo que deber? crear sus temporizadores tan simples como pueda.
Relacionado con: install_timer, remove_int, install_int.
Relacionado con: install_int, install_int_ex.
Relacionado con: install_timer, remove_param_int, install_param_int_ex, del puntero void especificado. Para desactivar este temporizador, use remove_param_int() en vez de remove_int().
Relacionado con: install_timer, remove_param_int, install_param_int, install_int_ex.
void remove_param_int(void (*proc)(void *), void *param);
Como remove_int(), pero se usa con las rutinas de temporizaci? que tienen par疥etros. Si hay m疽 de una copia de la misma rutina activa a la vez, install_param_int, install_param_int_ex, remove_int.
int timer_can_simulate_retrace()
Comprueba si es posible sincronizar el m?ulo de temporizaci? con el retrazo del monitor, dependiendo del entorno y plataforma actual (por el momento esto s?o es posible ejecut疣do un el programa en modo DOS puro y en una resoluci? VGA o modo-X). Devuelve distinto de cero si la simulaci? es posible.
Relacionado con: timer_simulate_retrace, timer_is_using_retrace.
void timer_simulate_retrace(int enable);
El controlador DOS de temporizaci? puede ser usado para simular interrupciones de retrazo vertical. Una interrupci? de retrazo puede ser extremadamente ?il para implementar una animacion suave, pero desafortunadamente el hardware de la VGA no puede hacerlo. La Ega lo pod? hacer, y algunas SVGA pueden pero no completamente, y de forma no suficientemente estandarizada para que sea ?il. Allegro soluciona esto programando el reloj para que genere una unterrupci? cuando crea que va tarjetas, pero no en otras, y tiene conflictos con la mayor? de las implementaciones VESA. La simulaci? de retrazo s?o es fiable en el modo 13 de la VGA y en el modo-X.

- La simulaci? de retrazo no funciona bajo win95, porque win95 devuelve basura cuando intento leer el tiempo transcurrido del PIT. Si alguien sabe c?o solucionar esto, 。que por favor me mande un email!

- La simulaci? de retrazo conlleva mucha espera del controlador de idea dejar al usuario la posibilidad de desactivarlo.

La simulaci? de retrazo debe ser activada antes de usar las funciones de triple buffer en resoluciones del modo-X. Esto puede ser ?il tambi駭 como una simple detecci? de retrazo, ya que leer vsync() puede hacer que enable_triple_buffer, install_timer, retrace_count, retrace_proc, request_scroll, vsync, timer_can_simulate_retrace,

Relacionado con: timer_simulate_retrace, timer_can_simulate_retrace.
(ignorando los retrazos). Esto le permite controlar la velocidad de su programa sin tener que instalar funciones de temporizaci? propias.

La velocidad del retrazo depende del modo gr畴ico. En el modo 13h y resoluciones en modo-X de 200/400 l?eas hay 70 retrazos por segundo, y en modos-X de 240/480 l?eas hay 60. Puede ser tan bajo como 50 (en modo 376x282) o tan alto como 92 (en modo 400x300).

Relacionado con: timer_simulate_retrace, retrace_proc.
extern void (*retrace_proc)();
hacer manipulaciones de paleta, ya que el triple buffering puede hacerse con la funci? request_scroll(), y la variable retrace_count puede ser usada para temporizar su c?igo. Si quiere alterar la paleta dentro de retrace_proc, debe usar la funci? inline _set_color() en vez de la corriente set_color() o set_palette(), y no deber? intentar alterar m疽 de dos o tres colores de la paleta en un mismo retrazo.
Relacionado con: _set_color, timer_simulate_retrace, timer_is_using_retrace, retrace_count.
void rest(long time);
Una vez que Allegro reprograma el reloj, la funci? est疣dar delay() no
Relacionado con: install_timer, rest.

Volver al Indice