@document_title=Información sobre compatibilidad a nivel de API
@
@!indent
______ ___ ___
/\ _ \ /\_ \ /\_ \
\ \ \L\ \\//\ \ \//\ \ __ __ _ __ ___
\ \ __ \ \ \ \ \ \ \ /'__`\ /'_ `\/\`'__\/ __`\
\ \ \/\ \ \_\ \_ \_\ \_/\ __//\ \L\ \ \ \//\ \L\ \
\ \_\ \_\/\____\/\____\ \____\ \____ \ \_\\ \____/
\/_/\/_/\/____/\/____/\/____/\/___L\ \/_/ \/___/
/\____/
\_/__/
Información sobre compatibilidad a nivel de API.
Lea en readme.txt una visión más general.
@indent
@
@heading
Introducción
Una vez Allegro 4.0 sea lanzado, planeamos mantener compatibilidad a nivel
de interfaz de programación (API, Application Programming Interface) para
el resto de las series 4.0.x. Por ejemplo, eso significa que podrá
compilar su programa escrito para la versión 4.0 con la versión 4.0.23 o
la 4.2.1 de la librería. No obstante, para corregir algunas
inconsistencias de la API 4.0, podríamos hacer excepciones a esta regla y
romper la compatibilidad estricta en algunos casos. Pero esto se garantiza
que no ocurrirá en aquellas series donde el número mayor y menor son
fijos; en otras palabras, dos versiones que difieran una de la otra
únicamente por el (tercer) número de revisión serán compatibles a nivel de
API.
@heading
Cambios entre las series 4.0.x y 4.1.x
-
El parámetro 'aspect' de get_camera_matrix() y get_camera_matrix_f() es
estrictamente conforme con la documentación; en particular, poniéndolo a 1
obliga a las funciones a que no escalen. Este no era el caso antes, porque
las funciones multiplicaban este valor por 4/3.
-
Menús creados de un array DIALOG (usando d_menu_proc para el puntero proc)
ahora usan correctamente los campos w y h como tamaños mínimos para sus
dimensiones inclusivas (al igual que el resto de los elementos GUI).
Antes, dibujarían un borde fuera de esta dimensión (1 pixel que
sobreescribiría otros elementos GUI), y una 'sombra' adicional abajo a la
derecha (2 pixels que sobreescribirían otros elementos GUI).
-
La variable 'retrace_count' y la función callback 'retrace_proc'
respetarán la velocidad de refresco de la pantalla (si es conocida) cuando
el simulador de retrazo no esté instalado. Este no era el caso antes,
excepto bajo Windows.
-
El valor por defecto de la variable de configuración del ratón
'emulate_three' se ha cambiado a 'no' en todos los casos (incluso si tiene
un ratón de sólo dos botones).
-
El bit COLORCONV_KEEP_TRANS es ahora estrictamente conforme con la
documentación; Esto antes no era así, porque era ignorado cuando se
cargaban bitmaps desde ficheros de datos. fixup_datafile también fue
modificado para preservar la transparencia cuando se active este bit, lo
cual no era garantizado previamente en raras ocasiones.
-
create_sub_bitmap() es ahora menos tolerante cuando recibe parámetros
incorrectos. Por ejemplo, compensaba los valores negativos del origen y
devolvía NULL si el bitmap padre era NULL. Estos casos ahora tienen
aserciones en la versión de depuración de la librería, pero no se
comprueban en la versión optimizada.
-
install_allegro() y allegro_init() ahora devuelven un código de error si
son incapaces de iniciar el driver del sistema. Previamente simplemente
abortarían la ejecución del programa. Por consiguiente ahora debería
verificar sus valores de retorno.