00 Usando Allegro



Puede leer en readme.txt una introducción general, detalles de copyright e información sobre cómo compilar Allegro.

Todas las funciones, variables y estructuras de datos de Allegro están definidas en allegro.h. Debe incluir este fichero en sus programas, y enlazarlos con liballeg.a. Para hacer esto debe:

- Poner la siguiente línea al comienzo de todos sus programas C o C++ que usen Allegro:

#include <allegro.h>

- Si compila desde la línea de comando o con un makefile, añada '-lalleg' el final del comando gcc, ejemplo:

gcc foo.c -o foo.exe -lalleg

- Si usa Rhide, vaya al menú Options/Libraries, escriba 'alleg' en el primer espacio libre, y marque el recuadro que está al lado.

- Si no esta usando algunas partes de la funcionalidad de Allegro, puede reducir ligeramente los tiempos de compilación definiendo cualquiera de los siguientes símbolos de preprocesador antes de la inclusión de allegro.h:

alleg_mouse_unused
alleg_timer_unused
alleg_keyboard_unused
alleg_joystick_unused
alleg_gfx_driver_unused
alleg_palette_unused
alleg_graphics_unused
alleg_vidmem_unused
alleg_flic_unused
alleg_sound_unused
alleg_file_unused
alleg_datafile_unused
alleg_math_unused
alleg_gui_unused

Por favor, ¡tenga en cuenta que estos defines no afectarán el tamaño de su ejecutable! Lea al final de este fichero información sobre cómo quitar código no usado en la fase de enlazado del programa.

int allegro_init();
Inicializa la biblioteca de funciones Allegro. No hace mucho a parte de ajustar algunas variables globales, proteger memoria, e instalar allegro_exit() como una rutina atexit(), pero debe llamar esta función antes de cualquier otra. Devuelve cero si no hubo problemas (por el momento no puede fallar, por lo que no hace falta comprobar el valor devuelto).

void allegro_exit();
Cierra el sistema Allegro. Esto incluye devolver el sistema al modo texto y desinstalar todas las rutinas de ratón, teclado o temporización que estuviesen instaladas. Normalmente no tiene que molestarse en hacer una llamada explícita a esta función, ya que allegro_init() la instala como una función atexit(), por lo que será llamada automáticamente cuando su programa finalice.

extern char allegro_id[];
Cadena de texto que contiene la fecha y número de versión de la biblioteca de funciones, en caso de que quiera enseñar estos datos en alguna parte.

extern char allegro_error[];
Cadena de texto usada por set_gfx_mode() e install_sound() para indicar mensajes de error. Si éstas funciones fallan y quiere decirle al usuario porqué, éste es el lugar en el que se encuentra una descripción del problema.

extern int os_type;
Variable ajustada por allegro_init() a uno de los siguientes valores:

      OSTYPE_UNKNOWN    - desconocido, o MSDOS normal
      OSTYPE_WIN3       - Windows 3.1 o versiones previas
      OSTYPE_WIN95      - Windows 95
      OSTYPE_WIN98      - Windows 98
      OSTYPE_WINNT      - Windows NT
      OSTYPE_OS2        - OS/2
      OSTYPE_WARP       - OS/2 Warp 3
      OSTYPE_DOSEMU     - Linux DOSEMU
      OSTYPE_OPENDOS    - Caldera OpenDOS

extern int windows_version, windows_sub_version;
Estas son ajustadas por allegro_init(), usando int 0x2F, ax=0x1600 para detectar la presencia de Windows. Bajo windows 3.1, windows_version será 3, bajo win95 será 4, bajo NT será 0x100, y si windows no está presente, ambos valores serán cero. Bajo Linux DOSEMU, ambos valores serán -1.

void check_cpu();
Detecta el tipo de CPU, ajustando las siguientes variables globales:

extern char cpu_vendor[];
Ajustado por check_cpu() al nombre del vendedor de la CPU si se conoce.

extern int cpu_family;
Ajustado por check_cpu() al tipo de CPU: 3=386, 4=486, 5=Pentium, 6=PPro, etc.

extern int cpu_model;
Ajustado por check_cpu() al submodelo de la CPU. En un 386 (cpu_family==3), cero indica un chip DX, 2 un SX, 4 un SL, y 15 desconocido. En un 486 (cpu_family==4), cero o uno indica un chip DX, 2 un SX, 3 un 487 (SX) o 486 DX, 4 un SL, 5 un SX2, 7 un DX2 write-back enhaced, 8 un DX4 o DX4 overdrive, 14 un Cyrix, y 15 desconocido. En un chip Pentium (cpu_family==5), 1 indica un Pentium (510\66, 567\66), 2 es un Pentium P54C, 3 es un Pentium overdrive, 5 es un Pentium overdrive para IntelDX4, 14 es un Cyrix, y 15 desconocido.

extern int cpu_fpu;
Ajustado por check_cpu() a TRUE o FALSE, dependiendo de si una unidad de aritmética en coma flotante está disponible o no.

extern int cpu_mmx;
Ajustado por check_cpu() a TRUE o FALSE, dependiendo de si el conjunto de instrucciones MMX está disponible o no.

extern int cpu_3dnow;
Ajustado por check_cpu() a TRUE o FALSE, dependiendo de si el conjunto de instrucciones 3DNow! está disponible o no.

extern int cpu_cpuid;
Ajustado por check_cpu() a TRUE o FALSE, dependiendo de si la instrucción "cpuid" está disponible o no (si está ajustada, otras variables de CPU son 100% de confianza, de otro modo puede haber errores en la detección).




Volver al Indice